summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2021-12-19 15:15:11 +0200
committerEfraim Flashner <efraim@flashner.co.il>2021-12-19 15:15:11 +0200
commit6ccf8ea81f95963c0b7f945648106576008ee105 (patch)
treef39f596e6c3e98ff1e9f1de0ad41c977e9dd37c1 /gnu
parentfcaed5b81e893f34d77527fbef389ca628ca882d (diff)
parent9f916d14765b00309c742fcbff0cfabdd10dcf05 (diff)
downloadguix-6ccf8ea81f95963c0b7f945648106576008ee105.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu')
-rw-r--r--gnu/bootloader.scm16
-rw-r--r--gnu/bootloader/grub.scm3
-rw-r--r--gnu/build/bootloader.scm1
-rw-r--r--gnu/build/chromium-extension.scm169
-rw-r--r--gnu/build/file-systems.scm354
-rw-r--r--gnu/build/hurd-boot.scm12
-rw-r--r--gnu/build/linux-boot.scm97
-rw-r--r--gnu/build/linux-modules.scm10
-rw-r--r--gnu/build/marionette.scm72
-rw-r--r--gnu/build/secret-service.scm17
-rw-r--r--gnu/ci.scm73
-rw-r--r--gnu/home.scm106
-rw-r--r--gnu/home/services.scm530
-rw-r--r--gnu/home/services/fontutils.scm65
-rw-r--r--gnu/home/services/mcron.scm115
-rw-r--r--gnu/home/services/shells.scm689
-rw-r--r--gnu/home/services/shepherd.scm134
-rw-r--r--gnu/home/services/symlink-manager.scm247
-rw-r--r--gnu/home/services/utils.scm105
-rw-r--r--gnu/home/services/xdg.scm477
-rw-r--r--gnu/image.scm16
-rw-r--r--gnu/installer.scm1
-rw-r--r--gnu/installer/newt/partition.scm6
-rw-r--r--gnu/installer/parted.scm76
-rw-r--r--gnu/local.mk215
-rw-r--r--gnu/packages/accessibility.scm27
-rw-r--r--gnu/packages/acl.scm26
-rw-r--r--gnu/packages/ada.scm7
-rw-r--r--gnu/packages/admin.scm696
-rw-r--r--gnu/packages/adns.scm34
-rw-r--r--gnu/packages/agda.scm93
-rw-r--r--gnu/packages/aidc.scm101
-rw-r--r--gnu/packages/algebra.scm235
-rw-r--r--gnu/packages/android.scm151
-rw-r--r--gnu/packages/animation.scm23
-rw-r--r--gnu/packages/antivirus.scm10
-rw-r--r--gnu/packages/apr.scm11
-rw-r--r--gnu/packages/arcan.scm29
-rw-r--r--gnu/packages/aspell.scm15
-rw-r--r--gnu/packages/assembly.scm44
-rw-r--r--gnu/packages/astronomy.scm386
-rw-r--r--gnu/packages/audio.scm1332
-rw-r--r--gnu/packages/augeas.scm6
-rw-r--r--gnu/packages/authentication.scm26
-rw-r--r--gnu/packages/autogen.scm6
-rw-r--r--gnu/packages/autotools.scm25
-rw-r--r--gnu/packages/aux-files/emacs/guix-emacs.el34
-rw-r--r--gnu/packages/aux-files/linux-libre/4.14-i686.conf10
-rw-r--r--gnu/packages/aux-files/linux-libre/4.14-x86_64.conf10
-rw-r--r--gnu/packages/aux-files/linux-libre/4.19-i686.conf10
-rw-r--r--gnu/packages/aux-files/linux-libre/4.19-x86_64.conf10
-rw-r--r--gnu/packages/aux-files/linux-libre/4.4-i686.conf10
-rw-r--r--gnu/packages/aux-files/linux-libre/4.4-x86_64.conf10
-rw-r--r--gnu/packages/aux-files/linux-libre/5.10-i686.conf10
-rw-r--r--gnu/packages/aux-files/linux-libre/5.10-x86_64.conf10
-rw-r--r--gnu/packages/aux-files/linux-libre/5.13-arm.conf10037
-rw-r--r--gnu/packages/aux-files/linux-libre/5.13-arm64.conf10391
-rw-r--r--gnu/packages/aux-files/linux-libre/5.13-i686.conf10883
-rw-r--r--gnu/packages/aux-files/linux-libre/5.13-x86_64.conf10953
-rw-r--r--gnu/packages/aux-files/linux-libre/5.15-arm.conf (renamed from gnu/packages/aux-files/linux-libre/5.14-arm.conf)247
-rw-r--r--gnu/packages/aux-files/linux-libre/5.15-arm64.conf (renamed from gnu/packages/aux-files/linux-libre/5.14-arm64.conf)312
-rw-r--r--gnu/packages/aux-files/linux-libre/5.15-i686.conf (renamed from gnu/packages/aux-files/linux-libre/5.14-i686.conf)290
-rw-r--r--gnu/packages/aux-files/linux-libre/5.15-x86_64.conf (renamed from gnu/packages/aux-files/linux-libre/5.14-x86_64.conf)315
-rw-r--r--gnu/packages/aux-files/linux-libre/5.4-i686.conf10
-rw-r--r--gnu/packages/aux-files/linux-libre/5.4-x86_64.conf10
-rw-r--r--gnu/packages/aux-files/python/sitecustomize.py28
-rw-r--r--gnu/packages/avr.scm3
-rw-r--r--gnu/packages/axoloti.scm7
-rw-r--r--gnu/packages/backup.scm261
-rw-r--r--gnu/packages/base.scm149
-rw-r--r--gnu/packages/bash.scm25
-rw-r--r--gnu/packages/batik.scm11
-rw-r--r--gnu/packages/bdw-gc.scm4
-rw-r--r--gnu/packages/benchmark.scm100
-rw-r--r--gnu/packages/bioconductor.scm9531
-rw-r--r--gnu/packages/bioinformatics.scm5561
-rw-r--r--gnu/packages/bison.scm10
-rw-r--r--gnu/packages/bittorrent.scm142
-rw-r--r--gnu/packages/boost.scm32
-rw-r--r--gnu/packages/bootloaders.scm86
-rw-r--r--gnu/packages/browser-extensions.scm39
-rw-r--r--gnu/packages/build-tools.scm136
-rw-r--r--gnu/packages/busybox.scm32
-rw-r--r--gnu/packages/c.scm276
-rw-r--r--gnu/packages/calcurse.scm4
-rw-r--r--gnu/packages/calendar.scm88
-rw-r--r--gnu/packages/ccache.scm47
-rw-r--r--gnu/packages/cdrom.scm141
-rw-r--r--gnu/packages/cedille.scm6
-rw-r--r--gnu/packages/certs.scm30
-rw-r--r--gnu/packages/check.scm455
-rw-r--r--gnu/packages/chemistry.scm130
-rw-r--r--gnu/packages/chez.scm34
-rw-r--r--gnu/packages/chicken.scm15
-rw-r--r--gnu/packages/chromium.scm176
-rw-r--r--gnu/packages/ci.scm58
-rw-r--r--gnu/packages/cinnamon.scm34
-rw-r--r--gnu/packages/clojure.scm2
-rw-r--r--gnu/packages/cluster.scm45
-rw-r--r--gnu/packages/cmake.scm33
-rw-r--r--gnu/packages/cobol.scm6
-rw-r--r--gnu/packages/code.scm141
-rw-r--r--gnu/packages/commencement.scm7
-rw-r--r--gnu/packages/compression.scm294
-rw-r--r--gnu/packages/compton.scm62
-rw-r--r--gnu/packages/configuration-management.scm100
-rw-r--r--gnu/packages/conky.scm26
-rw-r--r--gnu/packages/connman.scm38
-rw-r--r--gnu/packages/convmv.scm4
-rw-r--r--gnu/packages/cook.scm22
-rw-r--r--gnu/packages/coq.scm371
-rw-r--r--gnu/packages/cpp.scm354
-rw-r--r--gnu/packages/cran.scm9375
-rw-r--r--gnu/packages/crates-graphics.scm136
-rw-r--r--gnu/packages/crates-gtk.scm52
-rw-r--r--gnu/packages/crates-io.scm7016
-rw-r--r--gnu/packages/crypto.scm311
-rw-r--r--gnu/packages/cryptsetup.scm14
-rw-r--r--gnu/packages/cups.scm62
-rw-r--r--gnu/packages/curl.scm55
-rw-r--r--gnu/packages/cvassistant.scm4
-rw-r--r--gnu/packages/cybersecurity.scm39
-rw-r--r--gnu/packages/cyrus-sasl.scm11
-rw-r--r--gnu/packages/databases.scm1100
-rw-r--r--gnu/packages/datamash.scm4
-rw-r--r--gnu/packages/datastructures.scm13
-rw-r--r--gnu/packages/dav.scm65
-rw-r--r--gnu/packages/dbm.scm25
-rw-r--r--gnu/packages/dc.scm14
-rw-r--r--gnu/packages/debian.scm133
-rw-r--r--gnu/packages/debug.scm137
-rw-r--r--gnu/packages/dejagnu.scm2
-rw-r--r--gnu/packages/dhall.scm116
-rw-r--r--gnu/packages/dico.scm2
-rw-r--r--gnu/packages/dictionaries.scm37
-rw-r--r--gnu/packages/diffoscope.scm231
-rw-r--r--gnu/packages/direct-connect.scm16
-rw-r--r--gnu/packages/disk.scm251
-rw-r--r--gnu/packages/display-managers.scm74
-rw-r--r--gnu/packages/distributed.scm23
-rw-r--r--gnu/packages/django.scm406
-rw-r--r--gnu/packages/djvu.scm58
-rw-r--r--gnu/packages/dlang.scm544
-rw-r--r--gnu/packages/dns.scm340
-rw-r--r--gnu/packages/docbook.scm89
-rw-r--r--gnu/packages/docker.scm67
-rw-r--r--gnu/packages/documentation.scm32
-rw-r--r--gnu/packages/dunst.scm38
-rw-r--r--gnu/packages/dvtm.scm2
-rw-r--r--gnu/packages/easyrpg.scm39
-rw-r--r--gnu/packages/ebook.scm107
-rw-r--r--gnu/packages/ed.scm2
-rw-r--r--gnu/packages/education.scm209
-rw-r--r--gnu/packages/efi.scm22
-rw-r--r--gnu/packages/electronics.scm60
-rw-r--r--gnu/packages/elf.scm14
-rw-r--r--gnu/packages/elixir.scm19
-rw-r--r--gnu/packages/elm.scm56
-rw-r--r--gnu/packages/emacs-xyz.scm5413
-rw-r--r--gnu/packages/emacs.scm81
-rw-r--r--gnu/packages/embedded.scm221
-rw-r--r--gnu/packages/emulators.scm447
-rw-r--r--gnu/packages/enchant.scm23
-rw-r--r--gnu/packages/engineering.scm870
-rw-r--r--gnu/packages/enlightenment.scm90
-rw-r--r--gnu/packages/entr.scm4
-rw-r--r--gnu/packages/erlang.scm8
-rw-r--r--gnu/packages/esolangs.scm11
-rw-r--r--gnu/packages/fabric-management.scm49
-rw-r--r--gnu/packages/fcitx.scm11
-rw-r--r--gnu/packages/fcitx5.scm61
-rw-r--r--gnu/packages/file-systems.scm253
-rw-r--r--gnu/packages/file.scm15
-rw-r--r--gnu/packages/finance.scm780
-rw-r--r--gnu/packages/firmware.scm50
-rw-r--r--gnu/packages/flashing-tools.scm127
-rw-r--r--gnu/packages/flex.scm5
-rw-r--r--gnu/packages/fltk.scm8
-rw-r--r--gnu/packages/fonts.scm207
-rw-r--r--gnu/packages/fontutils.scm181
-rw-r--r--gnu/packages/forth.scm2
-rw-r--r--gnu/packages/fpga.scm90
-rw-r--r--gnu/packages/freedesktop.scm700
-rw-r--r--gnu/packages/freeipmi.scm2
-rw-r--r--gnu/packages/fribidi.scm2
-rw-r--r--gnu/packages/ftp.scm58
-rw-r--r--gnu/packages/fvwm.scm20
-rw-r--r--gnu/packages/game-development.scm543
-rw-r--r--gnu/packages/games.scm2789
-rw-r--r--gnu/packages/gawk.scm16
-rw-r--r--gnu/packages/gcc.scm62
-rw-r--r--gnu/packages/gd.scm11
-rw-r--r--gnu/packages/gdb.scm152
-rw-r--r--gnu/packages/genealogy.scm44
-rw-r--r--gnu/packages/genimage.scm249
-rw-r--r--gnu/packages/geo.scm992
-rw-r--r--gnu/packages/gettext.scm44
-rw-r--r--gnu/packages/ghostscript.scm12
-rw-r--r--gnu/packages/gimp.scm157
-rw-r--r--gnu/packages/gkrellm.scm2
-rw-r--r--gnu/packages/gl.scm158
-rw-r--r--gnu/packages/glib.scm286
-rw-r--r--gnu/packages/gnome-xyz.scm225
-rw-r--r--gnu/packages/gnome.scm5007
-rw-r--r--gnu/packages/gnu-pw-mgr.scm2
-rw-r--r--gnu/packages/gnucash.scm27
-rw-r--r--gnu/packages/gnunet.scm30
-rw-r--r--gnu/packages/gnupg.scm248
-rw-r--r--gnu/packages/gnustep.scm37
-rw-r--r--gnu/packages/gnuzilla.scm681
-rw-r--r--gnu/packages/gobby.scm27
-rw-r--r--gnu/packages/golang.scm953
-rw-r--r--gnu/packages/gpodder.scm57
-rw-r--r--gnu/packages/gps.scm75
-rw-r--r--gnu/packages/graph.scm128
-rw-r--r--gnu/packages/graphics.scm593
-rw-r--r--gnu/packages/graphviz.scm146
-rw-r--r--gnu/packages/groff.scm8
-rw-r--r--gnu/packages/groovy.scm2
-rw-r--r--gnu/packages/gsasl.scm16
-rw-r--r--gnu/packages/gstreamer.scm401
-rw-r--r--gnu/packages/gtk.scm1085
-rw-r--r--gnu/packages/guile-wm.scm12
-rw-r--r--gnu/packages/guile-xyz.scm1346
-rw-r--r--gnu/packages/guile.scm107
-rw-r--r--gnu/packages/gv.scm2
-rw-r--r--gnu/packages/gxmessage.scm5
-rw-r--r--gnu/packages/hardware.scm213
-rw-r--r--gnu/packages/haskell-apps.scm624
-rw-r--r--gnu/packages/haskell-check.scm546
-rw-r--r--gnu/packages/haskell-crypto.scm291
-rw-r--r--gnu/packages/haskell-web.scm1459
-rw-r--r--gnu/packages/haskell-xyz.scm7310
-rw-r--r--gnu/packages/haskell.scm43
-rw-r--r--gnu/packages/hexedit.scm11
-rw-r--r--gnu/packages/hugs.scm2
-rw-r--r--gnu/packages/hurd.scm64
-rw-r--r--gnu/packages/hyperledger.scm29
-rw-r--r--gnu/packages/i2p.scm5
-rw-r--r--gnu/packages/ibus.scm88
-rw-r--r--gnu/packages/icu4c.scm6
-rw-r--r--gnu/packages/idris.scm86
-rw-r--r--gnu/packages/idutils.scm7
-rw-r--r--gnu/packages/image-processing.scm275
-rw-r--r--gnu/packages/image-viewers.scm330
-rw-r--r--gnu/packages/image.scm244
-rw-r--r--gnu/packages/imagemagick.scm8
-rw-r--r--gnu/packages/inklingreader.scm8
-rw-r--r--gnu/packages/inkscape.scm112
-rw-r--r--gnu/packages/installers.scm2
-rw-r--r--gnu/packages/instrumentation.scm234
-rw-r--r--gnu/packages/ipfs.scm157
-rw-r--r--gnu/packages/irc.scm218
-rw-r--r--gnu/packages/jami.scm83
-rw-r--r--gnu/packages/java-compression.scm9
-rw-r--r--gnu/packages/java-graphics.scm10
-rw-r--r--gnu/packages/java-maths.scm2
-rw-r--r--gnu/packages/java.scm1272
-rw-r--r--gnu/packages/javascript.scm178
-rw-r--r--gnu/packages/jemalloc.scm2
-rw-r--r--gnu/packages/jose.scm6
-rw-r--r--gnu/packages/jrnl.scm18
-rw-r--r--gnu/packages/julia-jll.scm719
-rw-r--r--gnu/packages/julia-xyz.scm1675
-rw-r--r--gnu/packages/julia.scm226
-rw-r--r--gnu/packages/jupyter.scm238
-rw-r--r--gnu/packages/kawa.scm2
-rw-r--r--gnu/packages/kde-frameworks.scm1572
-rw-r--r--gnu/packages/kde-internet.scm421
-rw-r--r--gnu/packages/kde-multimedia.scm555
-rw-r--r--gnu/packages/kde-pim.scm1732
-rw-r--r--gnu/packages/kde-plasma.scm99
-rw-r--r--gnu/packages/kde-systemtools.scm282
-rw-r--r--gnu/packages/kde-utils.scm406
-rw-r--r--gnu/packages/kde.scm739
-rw-r--r--gnu/packages/kerberos.scm97
-rw-r--r--gnu/packages/key-mon.scm4
-rw-r--r--gnu/packages/kodi.scm17
-rw-r--r--gnu/packages/language.scm83
-rw-r--r--gnu/packages/lean.scm2
-rw-r--r--gnu/packages/lego.scm11
-rw-r--r--gnu/packages/less.scm14
-rw-r--r--gnu/packages/lesstif.scm5
-rw-r--r--gnu/packages/libcanberra.scm6
-rw-r--r--gnu/packages/libedit.scm2
-rw-r--r--gnu/packages/libevent.scm61
-rw-r--r--gnu/packages/libffi.scm13
-rw-r--r--gnu/packages/libftdi.scm2
-rw-r--r--gnu/packages/libidn.scm2
-rw-r--r--gnu/packages/libphidget.scm2
-rw-r--r--gnu/packages/libreoffice.scm222
-rw-r--r--gnu/packages/libusb.scm85
-rw-r--r--gnu/packages/license.scm48
-rw-r--r--gnu/packages/lighting.scm19
-rw-r--r--gnu/packages/linphone.scm57
-rw-r--r--gnu/packages/linux.scm1829
-rw-r--r--gnu/packages/lirc.scm10
-rw-r--r--gnu/packages/lisp-check.scm822
-rw-r--r--gnu/packages/lisp-xyz.scm5001
-rw-r--r--gnu/packages/lisp.scm64
-rw-r--r--gnu/packages/llvm.scm677
-rw-r--r--gnu/packages/logging.scm18
-rw-r--r--gnu/packages/logo.scm2
-rw-r--r--gnu/packages/lout.scm2
-rw-r--r--gnu/packages/lsof.scm140
-rw-r--r--gnu/packages/lua.scm111
-rw-r--r--gnu/packages/lxde.scm190
-rw-r--r--gnu/packages/lxqt.scm533
-rw-r--r--gnu/packages/machine-learning.scm747
-rw-r--r--gnu/packages/magic-wormhole.scm52
-rw-r--r--gnu/packages/mail.scm1155
-rw-r--r--gnu/packages/make-bootstrap.scm406
-rw-r--r--gnu/packages/man.scm46
-rw-r--r--gnu/packages/markup.scm66
-rw-r--r--gnu/packages/mastodon.scm69
-rw-r--r--gnu/packages/mate.scm716
-rw-r--r--gnu/packages/maths.scm1419
-rw-r--r--gnu/packages/matrix.scm231
-rw-r--r--gnu/packages/maven-parent-pom.scm35
-rw-r--r--gnu/packages/maven.scm861
-rw-r--r--gnu/packages/mc.scm17
-rw-r--r--gnu/packages/mcrypt.scm6
-rw-r--r--gnu/packages/medical.scm4
-rw-r--r--gnu/packages/mercury.scm6
-rw-r--r--gnu/packages/mes.scm5
-rw-r--r--gnu/packages/messaging.scm1087
-rw-r--r--gnu/packages/microcom.scm9
-rw-r--r--gnu/packages/minetest.scm49
-rw-r--r--gnu/packages/moe.scm4
-rw-r--r--gnu/packages/monitoring.scm118
-rw-r--r--gnu/packages/mono.scm2
-rw-r--r--gnu/packages/moreutils.scm19
-rw-r--r--gnu/packages/mp3.scm70
-rw-r--r--gnu/packages/mpd.scm197
-rw-r--r--gnu/packages/mpi.scm29
-rw-r--r--gnu/packages/mtools.scm4
-rw-r--r--gnu/packages/multiprecision.scm60
-rw-r--r--gnu/packages/music.scm1794
-rw-r--r--gnu/packages/nano.scm7
-rw-r--r--gnu/packages/ncdu.scm2
-rw-r--r--gnu/packages/ncurses.scm8
-rw-r--r--gnu/packages/nettle.scm4
-rw-r--r--gnu/packages/networking.scm858
-rw-r--r--gnu/packages/nfs.scm8
-rw-r--r--gnu/packages/nickle.scm2
-rw-r--r--gnu/packages/nicotine.scm4
-rw-r--r--gnu/packages/node-xyz.scm67
-rw-r--r--gnu/packages/node.scm106
-rw-r--r--gnu/packages/noweb.scm2
-rw-r--r--gnu/packages/nss.scm41
-rw-r--r--gnu/packages/ntp.scm22
-rw-r--r--gnu/packages/nvi.scm5
-rw-r--r--gnu/packages/ocaml.scm1992
-rw-r--r--gnu/packages/ocr.scm6
-rw-r--r--gnu/packages/onc-rpc.scm9
-rw-r--r--gnu/packages/openbox.scm27
-rw-r--r--gnu/packages/opencl.scm32
-rw-r--r--gnu/packages/opencog.scm31
-rw-r--r--gnu/packages/openkinect.scm14
-rw-r--r--gnu/packages/openldap.scm60
-rw-r--r--gnu/packages/openpgp.scm14
-rw-r--r--gnu/packages/openstack.scm351
-rw-r--r--gnu/packages/orange.scm89
-rw-r--r--gnu/packages/orpheus.scm14
-rw-r--r--gnu/packages/ots.scm5
-rw-r--r--gnu/packages/package-management.scm472
-rw-r--r--gnu/packages/pantheon.scm17
-rw-r--r--gnu/packages/parallel.scm46
-rw-r--r--gnu/packages/pascal.scm71
-rw-r--r--gnu/packages/password-utils.scm130
-rw-r--r--gnu/packages/patches/abseil-cpp-fix-gtest.patch16
-rw-r--r--gnu/packages/patches/agg-2.5-gcc8.patch14
-rw-r--r--gnu/packages/patches/alpine-fix-privacy-policy-crash.patch39
-rw-r--r--gnu/packages/patches/awesome-4.3-fno-common.patch178
-rw-r--r--gnu/packages/patches/aws-c-auth-install-private-headers.patch19
-rw-r--r--gnu/packages/patches/aws-c-cal-cmake-prefix.patch13
-rw-r--r--gnu/packages/patches/aws-c-event-stream-cmake-prefix.patch13
-rw-r--r--gnu/packages/patches/aws-c-io-cmake-prefix.patch13
-rw-r--r--gnu/packages/patches/aws-c-io-disable-networking-tests.patch81
-rw-r--r--gnu/packages/patches/aws-checksums-cmake-prefix.patch13
-rw-r--r--gnu/packages/patches/bear-disable-preinstall-tests.patch40
-rw-r--r--gnu/packages/patches/bind-re-add-attr-constructor-priority.patch57
-rw-r--r--gnu/packages/patches/cabal-install-base16-bytestring1.0.patch29
-rw-r--r--gnu/packages/patches/cabal-install-ghc8.10.patch393
-rw-r--r--gnu/packages/patches/cdrkit-libre-cross-compile.patch32
-rw-r--r--gnu/packages/patches/ceph-boost-compat.patch18
-rw-r--r--gnu/packages/patches/ceph-rocksdb-compat.patch303
-rw-r--r--gnu/packages/patches/clang-10.0-libc-search-path.patch93
-rw-r--r--gnu/packages/patches/clang-11.0-libc-search-path.patch101
-rw-r--r--gnu/packages/patches/clang-12-tools-extra-directory.patch16
-rw-r--r--gnu/packages/patches/clang-12.0-libc-search-path.patch84
-rw-r--r--gnu/packages/patches/clang-7.0-libc-search-path.patch82
-rw-r--r--gnu/packages/patches/clang-8.0-libc-search-path.patch94
-rw-r--r--gnu/packages/patches/clang-9.0-libc-search-path.patch90
-rw-r--r--gnu/packages/patches/cling-use-shared-library.patch329
-rw-r--r--gnu/packages/patches/coq-fix-envvars.patch139
-rw-r--r--gnu/packages/patches/cpufrequtils-fix-aclocal.patch46
-rw-r--r--gnu/packages/patches/curl-7.77-tls-priority-string.patch98
-rw-r--r--gnu/packages/patches/diffoscope-fix-llvm-test.patch28
-rw-r--r--gnu/packages/patches/diffutils-fix-signal-processing.patch58
-rw-r--r--gnu/packages/patches/diffutils-gets-undeclared.patch71
-rw-r--r--gnu/packages/patches/disarchive-cross-compilation.patch77
-rw-r--r--gnu/packages/patches/dynaconf-unvendor-deps.patch179
-rw-r--r--gnu/packages/patches/elogind-revert-polkit-detection.patch41
-rw-r--r--gnu/packages/patches/emacs-exwm-fix-fullscreen-states.patch39
-rw-r--r--gnu/packages/patches/emacs-telega-path-placeholder.patch49
-rw-r--r--gnu/packages/patches/emacs-telega-test-env.patch30
-rw-r--r--gnu/packages/patches/evolution-CVE-2020-11879.patch122
-rw-r--r--gnu/packages/patches/evolution-data-server-CVE-2020-14928.patch115
-rw-r--r--gnu/packages/patches/evolution-data-server-CVE-2020-16117.patch28
-rw-r--r--gnu/packages/patches/evolution-data-server-libical-compat.patch36
-rw-r--r--gnu/packages/patches/evolution-data-server-locales.patch33
-rw-r--r--gnu/packages/patches/evolution-data-server-printableoptions.patch57
-rw-r--r--gnu/packages/patches/evolution-printableoptions.patch57
-rw-r--r--gnu/packages/patches/farstream-gupnp.patch140
-rw-r--r--gnu/packages/patches/flatpak-fix-path.patch29
-rw-r--r--gnu/packages/patches/freecad-boost-serialization.patch27
-rw-r--r--gnu/packages/patches/freecad-vtk9.patch827
-rw-r--r--gnu/packages/patches/ganeti-deterministic-manual.patch16
-rw-r--r--gnu/packages/patches/ganeti-drbd-compat.patch166
-rw-r--r--gnu/packages/patches/ganeti-haskell-compat.patch18
-rw-r--r--gnu/packages/patches/ganeti-os-disk-size.patch17
-rw-r--r--gnu/packages/patches/ganeti-sphinx-compat.patch24
-rw-r--r--gnu/packages/patches/gcc-5-fix-powerpc64le-build.patch64
-rw-r--r--gnu/packages/patches/gd-Revert-fix-303-gdlib.pc.patch (renamed from gnu/packages/patches/gd-Revert-fix-303-gdlib.pc-use-Requires-instead-of-Libs.patch)0
-rw-r--r--gnu/packages/patches/gdb-fix-gnu-nat-build.patch254
-rw-r--r--gnu/packages/patches/gdb-hurd.patch69
-rw-r--r--gnu/packages/patches/gdm-default-session.patch37
-rw-r--r--gnu/packages/patches/gdm-elogind-support.patch211
-rw-r--r--gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch24
-rw-r--r--gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch22
-rw-r--r--gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch35
-rw-r--r--gnu/packages/patches/geary-CVE-2020-24661.patch133
-rw-r--r--gnu/packages/patches/geeqie-clutter.patch35
-rw-r--r--gnu/packages/patches/genimage-mke2fs-test.patch40
-rw-r--r--gnu/packages/patches/genimage-signedness.patch24
-rw-r--r--gnu/packages/patches/ghc-diff-swap-cover-args.patch20
-rw-r--r--gnu/packages/patches/ghc-haddock-api-fix-haddock.patch54
-rw-r--r--gnu/packages/patches/ghc-hpack-fix-tests.patch193
-rw-r--r--gnu/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch27
-rw-r--r--gnu/packages/patches/ghc-microlens-aeson-fix-tests.patch27
-rw-r--r--gnu/packages/patches/ghc-pandoc-fix-html-tests.patch92
-rw-r--r--gnu/packages/patches/ghc-pandoc-fix-latex-test.patch31
-rw-r--r--gnu/packages/patches/glib-networking-32-bit-time.patch61
-rw-r--r--gnu/packages/patches/gnome-boxes-add-guix-logo.patch32
-rw-r--r--gnu/packages/patches/gnome-online-miners-tracker-3.patch1505
-rw-r--r--gnu/packages/patches/gnome-screenshot-meson-0.60.patch39
-rw-r--r--gnu/packages/patches/gnome-session-support-elogind.patch73
-rw-r--r--gnu/packages/patches/gnome-shell-CVE-2020-17489.patch46
-rw-r--r--gnu/packages/patches/gnome-shell-disable-test.patch25
-rw-r--r--gnu/packages/patches/gnome-shell-theme.patch51
-rw-r--r--gnu/packages/patches/gnome-todo-delete-esource-duplicate.patch10
-rw-r--r--gnu/packages/patches/go-github-com-golang-snappy-32bit-test.patch53
-rw-r--r--gnu/packages/patches/grfcodec-gcc-compat.patch31
-rw-r--r--gnu/packages/patches/gst-libav-64channels-stack-corruption.patch31
-rw-r--r--gnu/packages/patches/gst-plugins-bad-fix-overflow.patch263
-rw-r--r--gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch40
-rw-r--r--gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch174
-rw-r--r--gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch22
-rw-r--r--gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch119
-rw-r--r--gnu/packages/patches/gtk2-fix-builder-test.patch94
-rw-r--r--gnu/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch51
-rw-r--r--gnu/packages/patches/guile-email-fix-tests.patch35
-rw-r--r--gnu/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch78
-rw-r--r--gnu/packages/patches/gvfs-add-support-for-libplist-2.2.patch34
-rw-r--r--gnu/packages/patches/hedgewars-network-bsd.patch150
-rw-r--r--gnu/packages/patches/helm-fix-gcc-9-build.patch140
-rw-r--r--gnu/packages/patches/hexchat-add-libera-chat.patch76
-rw-r--r--gnu/packages/patches/i3status-rust-enable-unstable-features.patch20
-rw-r--r--gnu/packages/patches/i7z-gcc-10.patch23
-rw-r--r--gnu/packages/patches/icecat-makeicecat.patch133
-rw-r--r--gnu/packages/patches/idris-build-with-haskeline-0.8.patch85
-rw-r--r--gnu/packages/patches/idris-build-with-megaparsec-9.patch27
-rw-r--r--gnu/packages/patches/inkscape-1.1-fix-build-witch-gcc7.5.patch24
-rw-r--r--gnu/packages/patches/json-c-CVE-2020-12762.patch193
-rw-r--r--gnu/packages/patches/jsoncpp-pkg-config-version.patch24
-rw-r--r--gnu/packages/patches/julia-allow-parallel-build.patch32
-rw-r--r--gnu/packages/patches/ldc-bootstrap-disable-tests.patch72
-rw-r--r--gnu/packages/patches/ldc-disable-phobos-tests.patch22
-rw-r--r--gnu/packages/patches/lib2geom-fix-tests.patch192
-rw-r--r--gnu/packages/patches/libblockdev-glib-compat.patch61
-rw-r--r--gnu/packages/patches/libcacard-unknown-variable.patch50
-rw-r--r--gnu/packages/patches/libunwind-julia-fix-GCC10-fno-common.patch40
-rw-r--r--gnu/packages/patches/llvm-3.6-fix-build-with-gcc-10.patch13
-rw-r--r--gnu/packages/patches/mariadb-CVE-2021-27928.patch642
-rw-r--r--gnu/packages/patches/mariadb-cmake-compat.patch17
-rw-r--r--gnu/packages/patches/mathjax-disable-webpack.patch23
-rw-r--r--gnu/packages/patches/mathjax-no-a11y.patch286
-rw-r--r--gnu/packages/patches/mesa-skip-tests.patch28
-rw-r--r--gnu/packages/patches/meson-allow-dirs-outside-of-prefix.patch20
-rw-r--r--gnu/packages/patches/metabat-fix-compilation.patch39
-rw-r--r--gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch2
-rw-r--r--gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch25
-rw-r--r--gnu/packages/patches/mixxx-system-googletest-benchmark.patch43
-rw-r--r--gnu/packages/patches/monero-use-system-miniupnpc.patch12
-rw-r--r--gnu/packages/patches/mupdf-CVE-2021-3407.patch51
-rw-r--r--gnu/packages/patches/mupdf-fix-linkage.patch27
-rw-r--r--gnu/packages/patches/network-manager-meson.patch21
-rw-r--r--gnu/packages/patches/network-manager-plugin-path.patch69
-rw-r--r--gnu/packages/patches/ngless-unliftio.patch66
-rw-r--r--gnu/packages/patches/nnpack-system-libraries.patch205
-rw-r--r--gnu/packages/patches/ntfs-3g-CVE-2019-9755.patch72
-rw-r--r--gnu/packages/patches/ocaml-cairo2-caml_ba_array-fix.patch68
-rw-r--r--gnu/packages/patches/ocaml-ppx-variants-ppxlib-api-change.patch42
-rw-r--r--gnu/packages/patches/ocaml-qcheck-fix-test-whitespace.patch24
-rw-r--r--gnu/packages/patches/p11-kit-hurd.patch46
-rw-r--r--gnu/packages/patches/php-bug-74093-test.patch48
-rw-r--r--gnu/packages/patches/php-openssl_x509_checkpurpose_basic.patch108
-rw-r--r--gnu/packages/patches/pigx-bsseq-no-citeproc.patch33
-rw-r--r--gnu/packages/patches/pigx-chipseq-no-citeproc.patch33
-rw-r--r--gnu/packages/patches/pigx-rnaseq-no-citeproc.patch33
-rw-r--r--gnu/packages/patches/pigx-sars-cov2-ww-no-citeproc.patch33
-rw-r--r--gnu/packages/patches/pigx-scrnaseq-no-citeproc.patch33
-rw-r--r--gnu/packages/patches/pitivi-fix-build-with-meson-0.60.patch46
-rw-r--r--gnu/packages/patches/polkit-CVE-2021-3560.patch21
-rw-r--r--gnu/packages/patches/polkit-configure-elogind.patch15
-rw-r--r--gnu/packages/patches/polkit-use-duktape.patch5030
-rw-r--r--gnu/packages/patches/ppsspp-disable-upgrade-and-gold.patch4
-rw-r--r--gnu/packages/patches/purescript-relax-dependencies.patch40
-rw-r--r--gnu/packages/patches/python-magic-python-bytecode.patch19
-rw-r--r--gnu/packages/patches/python-peachpy-determinism.patch25
-rw-r--r--gnu/packages/patches/python-poppler-qt5-fix-build.patch116
-rw-r--r--gnu/packages/patches/python-pyflakes-test-location.patch42
-rw-r--r--gnu/packages/patches/python-pytorch-system-libraries.patch178
-rw-r--r--gnu/packages/patches/python-versioneer-guix-support.patch35
-rw-r--r--gnu/packages/patches/python-werkzeug-tests.patch58
-rw-r--r--gnu/packages/patches/qemu-fix-agent-paths.patch66
-rw-r--r--gnu/packages/patches/qemu-meson-compat.patch27
-rw-r--r--gnu/packages/patches/qemu-sphinx-compat.patch18
-rw-r--r--gnu/packages/patches/racket-minimal-backport-1629887.patch28
-rw-r--r--gnu/packages/patches/range-v3-build-with-gcc10.patch122
-rw-r--r--gnu/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch32
-rw-r--r--gnu/packages/patches/rust-adblock-ignore-live-tests.patch69
-rw-r--r--gnu/packages/patches/rust-openssl-sys-no-vendor.patch2
-rw-r--r--gnu/packages/patches/rust-reproducible-builds.patch25
-rw-r--r--gnu/packages/patches/rust-shell2batch-lint-fix.patch25
-rw-r--r--gnu/packages/patches/rust-wl-clipboard-rs-newer-wl.patch26
-rw-r--r--gnu/packages/patches/rustc-1.39.0-src.patch99
-rw-r--r--gnu/packages/patches/sbcl-aserve-add-HTML-5-elements.patch63
-rw-r--r--gnu/packages/patches/sbcl-aserve-fix-rfe12668.patch43
-rw-r--r--gnu/packages/patches/sbcl-burgled-batteries3-fix-signals.patch70
-rw-r--r--gnu/packages/patches/sbcl-png-fix-sbcl-compatibility.patch60
-rw-r--r--gnu/packages/patches/scalapack-blacs-mpi-deprecations.patch170
-rw-r--r--gnu/packages/patches/scalapack-gcc-10-compilation.patch5684
-rw-r--r--gnu/packages/patches/sendgmail-accept-ignored-gsuite-flag.patch39
-rw-r--r--gnu/packages/patches/sendgmail-remove-domain-restriction.patch34
-rw-r--r--gnu/packages/patches/spice-vdagent-glib-2.68.patch112
-rw-r--r--gnu/packages/patches/sssd-collision-with-external-nss-symbol.patch71
-rw-r--r--gnu/packages/patches/strace-readlink-tests.patch46
-rw-r--r--gnu/packages/patches/syslinux-gcc10.patch87
-rw-r--r--gnu/packages/patches/syslinux-strip-gnu-property.patch31
-rw-r--r--gnu/packages/patches/telepathy-glib-channel-memory-leak.patch19
-rw-r--r--gnu/packages/patches/tor-sandbox-i686.patch36
-rw-r--r--gnu/packages/patches/transmission-remote-gtk-fix-appstream.patch61
-rw-r--r--gnu/packages/patches/trytond-add-egg-modules-to-path.patch22
-rw-r--r--gnu/packages/patches/trytond-add-guix_trytond_path.patch26
-rw-r--r--gnu/packages/patches/u-boot-allow-disabling-openssl.patch164
-rw-r--r--gnu/packages/patches/u-boot-rk3399-enable-emmc-phy.patch26
-rw-r--r--gnu/packages/patches/udiskie-no-appindicator.patch155
-rw-r--r--gnu/packages/patches/ungoogled-chromium-RUNPATH.patch22
-rw-r--r--gnu/packages/patches/ungoogled-chromium-accelerated-video-decode.patch18
-rw-r--r--gnu/packages/patches/ungoogled-chromium-ffmpeg-compat.patch68
-rw-r--r--gnu/packages/patches/ungoogled-chromium-system-nspr.patch54
-rw-r--r--gnu/packages/patches/webkitgtk-bind-all-fonts.patch2
-rw-r--r--gnu/packages/patches/xf86-video-mach64-bool-to-boolean.patch79
-rw-r--r--gnu/packages/patches/xf86-video-nouveau-fixup-ABI.patch64
-rw-r--r--gnu/packages/patches/xf86-video-qxl-fix-build.patch101
-rw-r--r--gnu/packages/patches/xgboost-use-system-dmlc-core.patch34
-rw-r--r--gnu/packages/patches/yggdrasil-extra-config.patch78
-rw-r--r--gnu/packages/patches/zig-disable-libc-note-test.patch31
-rw-r--r--gnu/packages/patches/zig-use-system-paths.patch143
-rw-r--r--gnu/packages/patchutils.scm69
-rw-r--r--gnu/packages/patool.scm118
-rw-r--r--gnu/packages/pciutils.scm3
-rw-r--r--gnu/packages/pcre.scm15
-rw-r--r--gnu/packages/pdf.scm265
-rw-r--r--gnu/packages/pem.scm2
-rw-r--r--gnu/packages/pep.scm31
-rw-r--r--gnu/packages/perl-check.scm238
-rw-r--r--gnu/packages/perl-compression.scm11
-rw-r--r--gnu/packages/perl-maths.scm10
-rw-r--r--gnu/packages/perl-web.scm11
-rw-r--r--gnu/packages/perl.scm1685
-rw-r--r--gnu/packages/perl6.scm44
-rw-r--r--gnu/packages/phabricator.scm8
-rw-r--r--gnu/packages/photo.scm121
-rw-r--r--gnu/packages/php.scm14
-rw-r--r--gnu/packages/piet.scm13
-rw-r--r--gnu/packages/pkg-config.scm5
-rw-r--r--gnu/packages/plan9.scm3
-rw-r--r--gnu/packages/plotutils.scm147
-rw-r--r--gnu/packages/poedit.scm21
-rw-r--r--gnu/packages/polkit.scm137
-rw-r--r--gnu/packages/popt.scm2
-rw-r--r--gnu/packages/presentation.scm17
-rw-r--r--gnu/packages/pretty-print.scm38
-rw-r--r--gnu/packages/profiling.scm41
-rw-r--r--gnu/packages/protobuf.scm57
-rw-r--r--gnu/packages/pulseaudio.scm179
-rw-r--r--gnu/packages/pumpio.scm4
-rw-r--r--gnu/packages/pure.scm4
-rw-r--r--gnu/packages/purescript.scm216
-rw-r--r--gnu/packages/pv.scm23
-rw-r--r--gnu/packages/python-build.scm216
-rw-r--r--gnu/packages/python-check.scm630
-rw-r--r--gnu/packages/python-compression.scm145
-rw-r--r--gnu/packages/python-crypto.scm272
-rw-r--r--gnu/packages/python-science.scm380
-rw-r--r--gnu/packages/python-web.scm1925
-rw-r--r--gnu/packages/python-xyz.scm7709
-rw-r--r--gnu/packages/python.scm48
-rw-r--r--gnu/packages/qt.scm338
-rw-r--r--gnu/packages/racket.scm21
-rw-r--r--gnu/packages/radio.scm793
-rw-r--r--gnu/packages/rails.scm179
-rw-r--r--gnu/packages/ratpoison.scm3
-rw-r--r--gnu/packages/rcm.scm3
-rw-r--r--gnu/packages/rdesktop.scm25
-rw-r--r--gnu/packages/rdf.scm71
-rw-r--r--gnu/packages/re2c.scm2
-rw-r--r--gnu/packages/readline.scm8
-rw-r--r--gnu/packages/rednotebook.scm6
-rw-r--r--gnu/packages/robotics.scm35
-rw-r--r--gnu/packages/rocm.scm23
-rw-r--r--gnu/packages/rpc.scm35
-rw-r--r--gnu/packages/rpm.scm50
-rw-r--r--gnu/packages/rrdtool.scm13
-rw-r--r--gnu/packages/rsync.scm21
-rw-r--r--gnu/packages/ruby.scm1757
-rw-r--r--gnu/packages/rust-apps.scm475
-rw-r--r--gnu/packages/rust.scm582
-rw-r--r--gnu/packages/sagemath.scm46
-rw-r--r--gnu/packages/samba.scm127
-rw-r--r--gnu/packages/sawfish.scm32
-rw-r--r--gnu/packages/scanner.scm8
-rw-r--r--gnu/packages/scheme.scm128
-rw-r--r--gnu/packages/screen.scm3
-rw-r--r--gnu/packages/scribus.scm4
-rw-r--r--gnu/packages/scsi.scm7
-rw-r--r--gnu/packages/sdl.scm146
-rw-r--r--gnu/packages/search.scm223
-rw-r--r--gnu/packages/security-token.scm257
-rw-r--r--gnu/packages/selinux.scm11
-rw-r--r--gnu/packages/sequoia.scm21
-rw-r--r--gnu/packages/serialization.scm116
-rw-r--r--gnu/packages/serveez.scm13
-rw-r--r--gnu/packages/shells.scm106
-rw-r--r--gnu/packages/shellutils.scm252
-rw-r--r--gnu/packages/simh.scm2
-rw-r--r--gnu/packages/simulation.scm46
-rw-r--r--gnu/packages/skarnet.scm66
-rw-r--r--gnu/packages/skribilo.scm24
-rw-r--r--gnu/packages/slang.scm22
-rw-r--r--gnu/packages/smalltalk.scm34
-rw-r--r--gnu/packages/sml.scm267
-rw-r--r--gnu/packages/solidity.scm4
-rw-r--r--gnu/packages/speech.scm60
-rw-r--r--gnu/packages/sphinx.scm328
-rw-r--r--gnu/packages/spice.scm125
-rw-r--r--gnu/packages/spreadsheet.scm119
-rw-r--r--gnu/packages/sqlite.scm16
-rw-r--r--gnu/packages/ssh.scm194
-rw-r--r--gnu/packages/sssd.scm129
-rw-r--r--gnu/packages/stalonetray.scm2
-rw-r--r--gnu/packages/statistics.scm2089
-rw-r--r--gnu/packages/stb.scm2
-rw-r--r--gnu/packages/stenography.scm20
-rw-r--r--gnu/packages/storage.scm68
-rw-r--r--gnu/packages/suckless.scm188
-rw-r--r--gnu/packages/swig.scm12
-rw-r--r--gnu/packages/sync.scm114
-rw-r--r--gnu/packages/syncthing.scm79
-rw-r--r--gnu/packages/syndication.scm201
-rw-r--r--gnu/packages/synergy.scm2
-rw-r--r--gnu/packages/task-management.scm88
-rw-r--r--gnu/packages/task-runners.scm2
-rw-r--r--gnu/packages/tbb.scm82
-rw-r--r--gnu/packages/tcl.scm44
-rw-r--r--gnu/packages/telegram.scm51
-rw-r--r--gnu/packages/telephony.scm163
-rw-r--r--gnu/packages/terminals.scm246
-rw-r--r--gnu/packages/tex.scm946
-rw-r--r--gnu/packages/texinfo.scm18
-rw-r--r--gnu/packages/text-editors.scm163
-rw-r--r--gnu/packages/textutils.scm40
-rw-r--r--gnu/packages/time.scm78
-rw-r--r--gnu/packages/tls.scm282
-rw-r--r--gnu/packages/tmux.scm16
-rw-r--r--gnu/packages/tor.scm182
-rw-r--r--gnu/packages/toys.scm23
-rw-r--r--gnu/packages/tryton.scm3851
-rw-r--r--gnu/packages/tv.scm26
-rw-r--r--gnu/packages/uglifyjs.scm3
-rw-r--r--gnu/packages/unicode.scm2
-rw-r--r--gnu/packages/upnp.scm8
-rw-r--r--gnu/packages/usb-modeswitch.scm9
-rw-r--r--gnu/packages/uucp.scm23
-rw-r--r--gnu/packages/valgrind.scm2
-rw-r--r--gnu/packages/version-control.scm511
-rw-r--r--gnu/packages/video.scm1257
-rw-r--r--gnu/packages/vim.scm344
-rw-r--r--gnu/packages/virtualization.scm666
-rw-r--r--gnu/packages/visidata.scm64
-rw-r--r--gnu/packages/vlang.scm6
-rw-r--r--gnu/packages/vnc.scm125
-rw-r--r--gnu/packages/vpn.scm226
-rw-r--r--gnu/packages/vulkan.scm64
-rw-r--r--gnu/packages/w3m.scm14
-rw-r--r--gnu/packages/wdiff.scm6
-rw-r--r--gnu/packages/web-browsers.scm255
-rw-r--r--gnu/packages/web.scm1671
-rw-r--r--gnu/packages/webkit.scm64
-rw-r--r--gnu/packages/wget.scm27
-rw-r--r--gnu/packages/wine.scm39
-rw-r--r--gnu/packages/wireservice.scm12
-rw-r--r--gnu/packages/wm.scm830
-rw-r--r--gnu/packages/wordnet.scm3
-rw-r--r--gnu/packages/wv.scm9
-rw-r--r--gnu/packages/wxwidgets.scm30
-rw-r--r--gnu/packages/xdisorg.scm603
-rw-r--r--gnu/packages/xfce.scm584
-rw-r--r--gnu/packages/xfig.scm11
-rw-r--r--gnu/packages/xiph.scm98
-rw-r--r--gnu/packages/xml.scm294
-rw-r--r--gnu/packages/xnee.scm18
-rw-r--r--gnu/packages/xorg.scm1633
-rw-r--r--gnu/packages/zig.scm104
-rw-r--r--gnu/packages/zile.scm4
-rw-r--r--gnu/packages/zwave.scm9
-rw-r--r--gnu/platform.scm38
-rw-r--r--gnu/platforms/arm.scm36
-rw-r--r--gnu/platforms/hurd.scm28
-rw-r--r--gnu/services.scm8
-rw-r--r--gnu/services/admin.scm2
-rw-r--r--gnu/services/auditd.scm2
-rw-r--r--gnu/services/authentication.scm4
-rw-r--r--gnu/services/avahi.scm2
-rw-r--r--gnu/services/base.scm533
-rw-r--r--gnu/services/cgit.scm4
-rw-r--r--gnu/services/configuration.scm96
-rw-r--r--gnu/services/cuirass.scm6
-rw-r--r--gnu/services/cups.scm8
-rw-r--r--gnu/services/databases.scm10
-rw-r--r--gnu/services/dbus.scm19
-rw-r--r--gnu/services/desktop.scm20
-rw-r--r--gnu/services/dns.scm12
-rw-r--r--gnu/services/docker.scm14
-rw-r--r--gnu/services/file-sharing.scm2
-rw-r--r--gnu/services/ganeti.scm24
-rw-r--r--gnu/services/getmail.scm2
-rw-r--r--gnu/services/hurd.scm4
-rw-r--r--gnu/services/lirc.scm2
-rw-r--r--gnu/services/mail.scm6
-rw-r--r--gnu/services/mcron.scm2
-rw-r--r--gnu/services/messaging.scm4
-rw-r--r--gnu/services/monitoring.scm6
-rw-r--r--gnu/services/networking.scm10
-rw-r--r--gnu/services/nix.scm2
-rw-r--r--gnu/services/pm.scm4
-rw-r--r--gnu/services/rsync.scm7
-rw-r--r--gnu/services/science.scm2
-rw-r--r--gnu/services/shepherd.scm2
-rw-r--r--gnu/services/sound.scm4
-rw-r--r--gnu/services/ssh.scm15
-rw-r--r--gnu/services/syncthing.scm2
-rw-r--r--gnu/services/telephony.scm8
-rw-r--r--gnu/services/version-control.scm4
-rw-r--r--gnu/services/virtualization.scm99
-rw-r--r--gnu/services/vpn.scm6
-rw-r--r--gnu/services/web.scm27
-rw-r--r--gnu/services/xorg.scm48
-rw-r--r--gnu/system.scm77
-rw-r--r--gnu/system/examples/desktop.tmpl7
-rw-r--r--gnu/system/file-systems.scm91
-rw-r--r--gnu/system/hurd.scm16
-rw-r--r--gnu/system/image.scm112
-rw-r--r--gnu/system/images/hurd.scm9
-rw-r--r--gnu/system/images/novena.scm6
-rw-r--r--gnu/system/images/pine64.scm6
-rw-r--r--gnu/system/images/pinebook-pro.scm6
-rw-r--r--gnu/system/images/rock64.scm8
-rw-r--r--gnu/system/install.scm5
-rw-r--r--gnu/system/linux-initrd.scm25
-rw-r--r--gnu/system/mapped-devices.scm10
-rw-r--r--gnu/system/uuid.scm9
-rw-r--r--gnu/system/vm.scm5
-rw-r--r--gnu/tests/audio.scm7
-rw-r--r--gnu/tests/base.scm45
-rw-r--r--gnu/tests/ci.scm9
-rw-r--r--gnu/tests/cups.scm7
-rw-r--r--gnu/tests/databases.scm24
-rw-r--r--gnu/tests/desktop.scm9
-rw-r--r--gnu/tests/dict.scm9
-rw-r--r--gnu/tests/docker.scm14
-rw-r--r--gnu/tests/file-sharing.scm7
-rw-r--r--gnu/tests/ganeti.scm39
-rw-r--r--gnu/tests/guix.scm14
-rw-r--r--gnu/tests/install.scm91
-rw-r--r--gnu/tests/ldap.scm7
-rw-r--r--gnu/tests/linux-modules.scm11
-rw-r--r--gnu/tests/mail.scm30
-rw-r--r--gnu/tests/messaging.scm23
-rw-r--r--gnu/tests/monitoring.scm15
-rw-r--r--gnu/tests/networking.scm179
-rw-r--r--gnu/tests/nfs.scm23
-rw-r--r--gnu/tests/package-management.scm8
-rw-r--r--gnu/tests/reconfigure.scm21
-rw-r--r--gnu/tests/rsync.scm7
-rw-r--r--gnu/tests/security-token.scm7
-rw-r--r--gnu/tests/singularity.scm9
-rw-r--r--gnu/tests/ssh.scm9
-rw-r--r--gnu/tests/telephony.scm7
-rw-r--r--gnu/tests/version-control.scm33
-rw-r--r--gnu/tests/virtualization.scm16
-rw-r--r--gnu/tests/web.scm43
815 files changed, 115779 insertions, 117945 deletions
diff --git a/gnu/bootloader.scm b/gnu/bootloader.scm
index d1c72c0c85..9cf5457873 100644
--- a/gnu/bootloader.scm
+++ b/gnu/bootloader.scm
@@ -183,8 +183,13 @@ record."
 ;; The <bootloader-configuration> record contains bootloader independant
 ;; configuration used to fill bootloader configuration file.
 
-(define-syntax-rule (warn-target-field-deprecation value)
-  (%warn-target-field-deprecation value (current-source-location)))
+(define-with-syntax-properties (warn-target-field-deprecation
+                                (value properties))
+  (when value
+    (warning (source-properties->location properties)
+             (G_ "the 'target' field is deprecated, please use 'targets' \
+instead~%")))
+  value)
 
 (define-record-type* <bootloader-configuration>
   bootloader-configuration make-bootloader-configuration
@@ -213,13 +218,6 @@ record."
   (serial-speed       bootloader-configuration-serial-speed ;integer | #f
                       (default #f)))
 
-(define (%warn-target-field-deprecation value location)
-  (when value
-    (warning (source-properties->location location)
-             (G_ "the 'target' field is deprecated, please use 'targets' \
-instead~%")))
-  value)
-
 (define-deprecated (bootloader-configuration-target config)
   bootloader-configuration-targets
   (%bootloader-configuration-target config))
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index d8e888ff40..42f71aa4db 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -415,8 +415,7 @@ menuentry ~s {
           ;; Other type of devices aren't implemented.
           #~()))
     (let ((devices (map crypto-device->cryptomount store-crypto-devices))
-          ;; XXX: Add luks2 when grub 2.06 is packaged.
-          (modules #~(format port "insmod luks~%")))
+          (modules #~(format port "insmod luks~%insmod luks2~%")))
       (if (null? devices)
           devices
           (cons modules devices))))
diff --git a/gnu/build/bootloader.scm b/gnu/build/bootloader.scm
index 3916930c89..9a89fe55cb 100644
--- a/gnu/build/bootloader.scm
+++ b/gnu/build/bootloader.scm
@@ -94,6 +94,7 @@ load the Grub bootloader located in the 'Guix_image' root partition."
         ;; (not eliminate it).
         (format port
                 "insmod part_msdos~@
+               insmod part_gpt~@
                search --set=root --label Guix_image~@
                configfile /boot/grub/grub.cfg~%")))
     (install-efi grub-efi grub-config esp)
diff --git a/gnu/build/chromium-extension.scm b/gnu/build/chromium-extension.scm
index d65df09f37..656034b80f 100644
--- a/gnu/build/chromium-extension.scm
+++ b/gnu/build/chromium-extension.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -17,13 +17,8 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu build chromium-extension)
-  #:use-module (gcrypt base16)
-  #:use-module ((gcrypt hash) #:prefix hash:)
-  #:use-module (ice-9 iconv)
   #:use-module (guix gexp)
   #:use-module (guix packages)
-  #:use-module (gnu packages base)
-  #:use-module (gnu packages check)
   #:use-module (gnu packages chromium)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages tls)
@@ -39,28 +34,30 @@
 
 (define (make-signing-key seed)
   "Return a derivation for a deterministic PKCS #8 private key using SEED."
+  (computed-file
+   (string-append seed "-signing-key.pem")
+   (with-extensions (list guile-gcrypt)
+     #~(begin
+         (use-modules (gcrypt base16) (gcrypt hash) (ice-9 iconv))
+         (let* ((sha256sum (bytevector->base16-string
+                            (sha256 (string->bytevector #$seed "UTF-8"))))
+                ;; certtool.c wants a 56 byte seed for a 2048 bit key.
+                (key-size 2048)
+                (normalized-seed (string-take sha256sum 56)))
 
-  (define sha256sum
-    (bytevector->base16-string (hash:sha256 (string->bytevector seed "UTF-8"))))
-
-  ;; certtool.c wants a 56 byte seed for a 2048 bit key.
-  (define size 2048)
-  (define normalized-seed (string-take sha256sum 56))
-
-  (computed-file (string-append seed "-signing-key.pem")
-                 #~(system* #$(file-append gnutls "/bin/certtool")
-                            "--generate-privkey"
-                            "--key-type=rsa"
-                            "--pkcs8"
-                            ;; Use the provable FIPS-PUB186-4 algorithm for
-                            ;; deterministic results.
-                            "--provable"
-                            "--password="
-                            "--no-text"
-                            (string-append "--bits=" #$(number->string size))
-                            (string-append "--seed=" #$normalized-seed)
-                            "--outfile" #$output)
-                 #:local-build? #t))
+           (system* #$(file-append gnutls "/bin/certtool")
+                    "--generate-privkey"
+                    "--key-type=rsa"
+                    "--pkcs8"
+                    ;; Use the provable FIPS-PUB186-4 algorithm for
+                    ;; deterministic results.
+                    "--provable"
+                    "--password="
+                    "--no-text"
+                    (string-append "--bits=" (number->string key-size))
+                    (string-append "--seed=" normalized-seed)
+                    "--outfile" #$output))))
+   #:local-build? #t))
 
 (define* (make-crx signing-key package #:optional (package-output "out"))
   "Create a signed \".crx\" file from the unpacked Chromium extension residing
@@ -68,9 +65,9 @@ in PACKAGE-OUTPUT of PACKAGE.  The extension will be signed with SIGNING-KEY."
   (define name (package-name package))
   (define version (package-version package))
 
-  (with-imported-modules '((guix build utils))
-    (computed-file
-     (string-append name "-" version ".crx")
+  (computed-file
+   (string-append name "-" version ".crx")
+   (with-imported-modules '((guix build utils))
      #~(begin
          ;; This is not great.  We pull Xorg and Chromium just to Zip and
          ;; sign an extension.  This should be implemented with something
@@ -78,27 +75,24 @@ in PACKAGE-OUTPUT of PACKAGE.  The extension will be signed with SIGNING-KEY."
          (use-modules (guix build utils))
          (let ((chromium #$(file-append ungoogled-chromium "/bin/chromium"))
                (xvfb #$(file-append xorg-server "/bin/Xvfb"))
-               (packdir "/tmp/extension"))
-           (mkdir-p (dirname packdir))
-           (copy-recursively (ungexp package package-output) packdir)
+               (packdir (string-append (getcwd) "/extension")))
+           (mkdir packdir)
+           (copy-recursively (ungexp package package-output) packdir
+                             ;; Ensure consistent file modification times.
+                             #:keep-mtime? #t)
            (system (string-append xvfb " :1 &"))
            (setenv "DISPLAY" ":1")
            (sleep 2)                    ;give Xorg some time to initialize...
            ;; Chromium stores the current time in the .crx Zip archive.
            ;; Use a fixed timestamp for deterministic behavior.
-           ;; FIXME (core-updates): faketime is missing an absolute reference
-           ;; to 'date', hence the need to set PATH.
-           (setenv "PATH" #$(file-append coreutils "/bin"))
-           (invoke #$(file-append libfaketime "/bin/faketime")
-                   "2000-01-01 00:00:00"
-                   chromium
+           (invoke chromium
                    "--user-data-dir=/tmp/signing-profile"
                    (string-append "--pack-extension=" packdir)
                    (string-append "--pack-extension-key=" #$signing-key))
-           (copy-file (string-append packdir ".crx") #$output)))
-     #:local-build? #t)))
+           (copy-file (string-append packdir ".crx") #$output))))
+   #:local-build? #t))
 
-(define* (crx->chromium-json crx version)
+(define (crx->chromium-json crx version)
   "Return a derivation that creates a Chromium JSON settings file for the
 extension given as CRX.  VERSION is used to signify the CRX version, and
 must match the version listed in the extension manifest.json."
@@ -127,66 +121,47 @@ format."
                             "--outder")
                  #:local-build? #t))
 
-(define (chromium-json->profile-object json signing-key)
-  "Return a derivation that installs JSON to the directory searched by
-Chromium, using a file name (aka extension ID) derived from SIGNING-KEY."
-  (define der (signing-key->public-der signing-key))
-
+(define (file-sha256sum file)
   (with-extensions (list guile-gcrypt)
-    (with-imported-modules '((guix build utils))
-      (computed-file
-       "chromium-extension"
-       #~(begin
-           (use-modules (guix build utils)
-                        (gcrypt base16)
-                        (gcrypt hash))
-           (define (base16-string->chromium-base16 str)
-             ;; Translate STR, a hexadecimal string, to a Chromium-style
-             ;; representation using the letters a-p (where a=0, p=15).
-             (define s1 "0123456789abcdef")
-             (define s2 "abcdefghijklmnop")
-             (let loop ((chars (string->list str))
-                        (converted '()))
-               (if (null? chars)
-                   (list->string (reverse converted))
-                   (loop (cdr chars)
-                         (cons (string-ref s2 (string-index s1 (car chars)))
-                               converted)))))
-
-           (let* ((checksum (bytevector->base16-string (file-sha256 #$der)))
-                  (file-name (base16-string->chromium-base16
-                              (string-take checksum 32)))
-                  (extension-directory (string-append #$output
-                                                      "/share/chromium/extensions")))
-             (mkdir-p extension-directory)
-             (symlink #$json (string-append extension-directory "/"
-                                            file-name ".json"))))
-       #:local-build? #t))))
+    #~(begin
+        (use-modules (gcrypt base16) (gcrypt hash))
+        (bytevector->base16-string (file-sha256 #$file)))))
 
-(define* (make-chromium-extension p #:optional (output "out"))
-  "Create a Chromium extension from package P and return a package that,
-when installed, will make the extension contained in P available as a
-Chromium browser extension.  OUTPUT specifies which output of P to use."
-  (let* ((pname (package-name p))
-         (version (package-version p))
-         (signing-key (make-signing-key pname)))
+(define* (make-chromium-extension pkg #:optional (pkg-output "out"))
+  "Create a Chromium extension from package PKG and return a package that,
+when installed, will make the extension contained in PKG available as a
+Chromium browser extension.  PKG-OUTPUT specifies which output of PKG to use."
+  (let* ((name (package-name pkg))
+         (version (package-version pkg))
+         (private-key (make-signing-key name))
+         (public-key (signing-key->public-der private-key))
+         (checksum (file-sha256sum public-key))
+         (crx (make-crx private-key pkg pkg-output))
+         (json (crx->chromium-json crx version)))
     (package
-      (inherit p)
-      (name (string-append pname "-chromium"))
+      (inherit pkg)
+      (name (string-append name "-chromium"))
       (source #f)
-      (build-system trivial-build-system)
       (native-inputs '())
-      (inputs
-       `(("extension" ,(chromium-json->profile-object
-                        (crx->chromium-json (make-crx signing-key p output)
-                                            version)
-                        signing-key))))
+      (inputs '())
       (propagated-inputs '())
       (outputs '("out"))
+      (build-system trivial-build-system)
       (arguments
-       '(#:modules ((guix build utils))
-         #:builder
-         (begin
-           (use-modules (guix build utils))
-           (copy-recursively (assoc-ref %build-inputs "extension")
-                             (assoc-ref %outputs "out"))))))))
+       (list #:modules '((guix build utils))
+             #:builder
+             #~(begin
+                 (use-modules (guix build utils))
+                 (define (base16-char->chromium-base16 char)
+                   ;; Translate CHAR, a hexadecimal character, to a Chromium-style
+                   ;; representation using the letters a-p (where a=0, p=15).
+                   (string-ref "abcdefghijklmnop"
+                               (string-index "0123456789abcdef" char)))
+                 (let ((file-name (string-map base16-char->chromium-base16
+                                              (string-take #$checksum 32)))
+                       (extension-directory
+                        (string-append #$output
+                                       "/share/chromium/extensions")))
+                   (mkdir-p extension-directory)
+                   (symlink #$json (string-append extension-directory "/"
+                                                  file-name ".json")))))))))
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index 4eeb81cf26..d95340df83 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -29,6 +29,8 @@
   #:use-module (guix build bournish)
   #:use-module ((guix build syscalls)
                 #:hide (file-system-type))
+  #:use-module (guix diagnostics)
+  #:use-module (guix i18n)
   #:use-module (rnrs io ports)
   #:use-module (rnrs bytevectors)
   #:use-module (ice-9 match)
@@ -54,7 +56,9 @@
 
             mount-flags->bit-mask
             check-file-system
-            mount-file-system))
+            mount-file-system
+
+            swap-space->flags-bit-mask))
 
 ;;; Commentary:
 ;;;
@@ -166,14 +170,23 @@ if DEVICE does not contain an ext2 file system."
   (sub-bytevector sblock 104 16))
 
 (define (ext2-superblock-volume-name sblock)
-  "Return the volume name of SBLOCK as a string of at most 16 characters, or
-#f if SBLOCK has no volume name."
+  "Return the volume name of ext2 superblock SBLOCK as a string of at most 16
+characters, or #f if SBLOCK has no volume name."
   (null-terminated-latin1->string (sub-bytevector sblock 120 16)))
 
-(define (check-ext2-file-system device)
-  "Return the health of an ext2 file system on DEVICE."
+(define (check-ext2-file-system device force? repair)
+  "Return the health of an unmounted ext2 file system on DEVICE.  If FORCE? is
+true, check the file system even if it's marked as clean.  If REPAIR is false,
+do not write to the file system to fix errors.  If it's #t, fix all
+errors.  Otherwise, fix only those considered safe to repair automatically."
   (match (status:exit-val
-          (system* "e2fsck" "-v" "-p" "-C" "0" device))
+          (apply system* `("e2fsck" "-v" "-C" "0"
+                           ,@(if force? '("-f") '())
+                           ,@(match repair
+                               (#f '("-n"))
+                               (#t '("-y"))
+                               (_  '("-p")))
+                           ,device)))
     (0 'pass)
     (1 'errors-corrected)
     (2 'reboot-required)
@@ -218,6 +231,36 @@ if DEVICE does not contain an linux-swap file system."
   "Return the label of Linux-swap superblock SBLOCK as a string."
   (null-terminated-latin1->string
    (sub-bytevector sblock (+ 1024 4 4 4 16) 16)))
+
+(define (swap-space->flags-bit-mask swap)
+  "Return the number suitable for the 'flags' argument of 'mount'
+that corresponds to the swap-space SWAP."
+  (define prio-flag
+    (let ((p (swap-space-priority swap))
+          (max (ash SWAP_FLAG_PRIO_MASK (- SWAP_FLAG_PRIO_SHIFT))))
+      (if p
+          (logior SWAP_FLAG_PREFER
+                  (ash (cond
+                        ((< p 0)
+                         (begin (warning
+                                 (G_ "Given swap priority ~a is
+negative, defaulting to 0.~%") p)
+                                0))
+                        ((> p max)
+                         (begin (warning
+                                 (G_ "Limiting swap priority ~a to
+~a.~%")
+                                 p max)
+                                max))
+                        (else p))
+                       SWAP_FLAG_PRIO_SHIFT))
+          0)))
+  (define delayed-flag
+    (if (swap-space-discard? swap)
+        SWAP_FLAG_DISCARD
+        0))
+  (logior prio-flag delayed-flag))
+
 
 
 ;;;
@@ -256,19 +299,27 @@ bytevector."
   (sub-bytevector sblock 56 16))
 
 (define (bcachefs-superblock-volume-name sblock)
-  "Return the volume name of SBLOCK as a string of at most 32 characters, or
-#f if SBLOCK has no volume name."
+  "Return the volume name of bcachefs superblock SBLOCK as a string of at most
+32 characters, or #f if SBLOCK has no volume name."
   (null-terminated-latin1->string (sub-bytevector sblock 72 32)))
 
-(define (check-bcachefs-file-system device)
-  "Return the health of a bcachefs file system on DEVICE."
+(define (check-bcachefs-file-system device force? repair)
+  "Return the health of an unmounted bcachefs file system on DEVICE.  If FORCE?
+is true, check the file system even if it's marked as clean.  If REPAIR is
+false, do not write to the file system to fix errors.  If it's #t, fix all
+errors. Otherwise, fix only those considered safe to repair automatically."
   (let ((ignored-bits (logior 2))       ; DEVICE was mounted read-only
         (status
          ;; A number, or #f on abnormal termination (e.g., assertion failure).
          (status:exit-val
-          (apply system* "bcachefs" "fsck" "-p" "-v"
-                 ;; Make each multi-device member a separate argument.
-                 (string-split device #\:)))))
+          (apply system* `("bcachefs" "fsck" "-v"
+                           ,@(if force? '("-f") '())
+                           ,@(match repair
+                               (#f '("-n"))
+                               (#t '("-y"))
+                               (_  '("-p")))
+                           ;; Make each multi-device member a separate argument.
+                           ,@(string-split device #\:))))))
     (match (and=> status (cut logand <> (lognot ignored-bits)))
       (0 'pass)
       (1 'errors-corrected)
@@ -300,16 +351,33 @@ if DEVICE does not contain a btrfs file system."
   (sub-bytevector sblock 32 16))
 
 (define (btrfs-superblock-volume-name sblock)
-  "Return the volume name of SBLOCK as a string of at most 256 characters, or
-#f if SBLOCK has no volume name."
+  "Return the volume name of btrfs superblock SBLOCK as a string of at most 256
+characters, or #f if SBLOCK has no volume name."
   (null-terminated-latin1->string (sub-bytevector sblock 299 256)))
 
-(define (check-btrfs-file-system device)
-  "Return the health of a btrfs file system on DEVICE."
-  (match (status:exit-val
-          (system* "btrfs" "device" "scan"))
-    (0 'pass)
-    (_ 'fatal-error)))
+(define (check-btrfs-file-system device force? repair)
+  "Return the health of an unmounted btrfs file system on DEVICE.  If FORCE? is
+false, return 'PASS unconditionally as btrfs claims no need for off-line checks.
+When FORCE? is true, do perform a real check.  This is not recommended!  See
+@uref{https://bugzilla.redhat.com/show_bug.cgi?id=625967#c8}.  If REPAIR is
+false, do not write to DEVICE.  If it's #t, fix any errors found.  Otherwise,
+fix only those considered safe to repair automatically."
+  (if force?
+      (match (status:exit-val
+              (apply system* `("btrfs" "check" "--progress"
+                               ;; Btrfs's ‘--force’ is not relevant to us here.
+                               ,@(match repair
+                                   ;; Upstream considers ALL repairs dangerous
+                                   ;; and will warn the user at run time.
+                                   (#t '("--repair"))
+                                   (_  '("--readonly" ; a no-op for clarity
+                                         ;; A 466G file system with 180G used is
+                                         ;; enough to kill btrfs with 6G of RAM.
+                                         "--mode" "lowmem")))
+                               ,device)))
+        (0 'pass)
+        (_ 'fatal-error))
+      'pass))
 
 
 ;;;
@@ -333,15 +401,22 @@ if DEVICE does not contain a btrfs file system."
   (sub-bytevector sblock 67 4))
 
 (define (fat32-superblock-volume-name sblock)
-  "Return the volume name of SBLOCK as a string of at most 11 characters, or
-#f if SBLOCK has no volume name.  The volume name is a latin1 string.
-Trailing spaces are trimmed."
+  "Return the volume name of fat superblock SBLOCK as a string of at most 11
+characters, or #f if SBLOCK has no volume name.  The volume name is a latin1
+string.  Trailing spaces are trimmed."
   (string-trim-right (latin1->string (sub-bytevector sblock 71 11) (lambda (c) #f)) #\space))
 
-(define (check-fat-file-system device)
-  "Return the health of a fat file system on DEVICE."
+(define (check-fat-file-system device force? repair)
+  "Return the health of an unmounted FAT file system on DEVICE.  FORCE? is
+ignored: a full file system scan is always performed.  If REPAIR is false, do
+not write to the file system to fix errors. Otherwise, automatically fix them
+using the least destructive approach."
   (match (status:exit-val
-          (system* "fsck.vfat" "-v" "-a" device))
+          (apply system* `("fsck.vfat" "-v"
+                           ,@(match repair
+                               (#f '("-n"))
+                               (_  '("-a"))) ; no 'safe/#t distinction
+                           ,device)))
     (0 'pass)
     (1 'errors-corrected)
     (_ 'fatal-error)))
@@ -366,9 +441,9 @@ Trailing spaces are trimmed."
   (sub-bytevector sblock 39 4))
 
 (define (fat16-superblock-volume-name sblock)
-  "Return the volume name of SBLOCK as a string of at most 11 characters, or
-#f if SBLOCK has no volume name.  The volume name is a latin1 string.
-Trailing spaces are trimmed."
+  "Return the volume name of fat superblock SBLOCK as a string of at most 11
+characters, or #f if SBLOCK has no volume name.  The volume name is a latin1
+string.  Trailing spaces are trimmed."
   (string-trim-right (latin1->string (sub-bytevector sblock 43 11)
                                      (lambda (c) #f))
                      #\space))
@@ -427,8 +502,8 @@ SBLOCK as a bytevector.  If that's not set, returns the creation time."
     (sub-bytevector time 0 16))) ; strips GMT offset.
 
 (define (iso9660-superblock-volume-name sblock)
-  "Return the volume name of SBLOCK as a string.  The volume name is an ASCII
-string.  Trailing spaces are trimmed."
+  "Return the volume name of iso9660 superblock SBLOCK as a string.  The volume
+name is an ASCII string.  Trailing spaces are trimmed."
   ;; Note: Valid characters are of the set "[0-9][A-Z]_" (ECMA-119 Appendix A)
   (string-trim-right (latin1->string (sub-bytevector sblock 40 32)
                                      (lambda (c) #f)) #\space))
@@ -459,14 +534,32 @@ if DEVICE does not contain a JFS file system."
   (sub-bytevector sblock 136 16))
 
 (define (jfs-superblock-volume-name sblock)
-  "Return the volume name of SBLOCK as a string of at most 16 characters, or
-#f if SBLOCK has no volume name."
+  "Return the volume name of JFS superblock SBLOCK as a string of at most 16
+characters, or #f if SBLOCK has no volume name."
   (null-terminated-latin1->string (sub-bytevector sblock 152 16)))
 
-(define (check-jfs-file-system device)
-  "Return the health of a JFS file system on DEVICE."
+(define (check-jfs-file-system device force? repair)
+  "Return the health of an unmounted JFS file system on DEVICE.  If FORCE? is
+true, check the file system even if it's marked as clean.  If REPAIR is false,
+do not write to the file system to fix errors, and replay the transaction log
+only if FORCE?  is true. Otherwise, replay the transaction log before checking
+and automatically fix found errors."
   (match (status:exit-val
-          (system* "jfs_fsck" "-p" "-v" device))
+          (apply system*
+                 `("jfs_fsck" "-v"
+                   ;; The ‘LEVEL’ logic is convoluted.  To quote fsck/xchkdsk.c
+                   ;; (‘-p’, ‘-a’, and ‘-r’ are aliases in every way):
+                   ;; “If -f was chosen, have it override [-p] by [forcing] a
+                   ;;  check regardless of the outcome after the log is
+                   ;;  replayed”.
+                   ;; “If -n is specified by itself, don't replay the journal.
+                   ;;  If -n is specified with [-p], replay the journal but
+                   ;;  don't make any other changes”.
+                   ,@(if force? '("-f") '())
+                   ,@(match repair
+                       (#f '("-n"))
+                       (_  '("-p"))) ; no 'safe/#t distinction
+                   ,device)))
     (0 'pass)
     (1 'errors-corrected)
     (2 'reboot-required)
@@ -511,18 +604,28 @@ if DEVICE does not contain an F2FS file system."
                   16))
 
 (define (f2fs-superblock-volume-name sblock)
-  "Return the volume name of SBLOCK as a string of at most 512 characters, or
-#f if SBLOCK has no volume name."
+  "Return the volume name of F2FS superblock SBLOCK as a string of at most 512
+characters, or #f if SBLOCK has no volume name."
   (null-terminated-utf16->string
    (sub-bytevector sblock (- (+ #x470 12) #x400) 512)
    %f2fs-endianness))
 
-(define (check-f2fs-file-system device)
-  "Return the health of a F2FS file system on DEVICE."
+(define (check-f2fs-file-system device force? repair)
+  "Return the health of an unmuounted F2FS file system on DEVICE.  If FORCE? is
+true, check the file system even if it's marked as clean.  If either FORCE? or
+REPAIR are true, automatically fix found errors."
+  ;; There's no ‘-n’ equivalent (‘--dry-run’ does not disable writes).
+  ;; ’-y’ is an alias of ‘-f’.  The man page is bad: read main.c.
+  (when (and force? (not repair))
+    (format (current-error-port)
+            "warning: forced check of F2FS ~a implies repairing any errors~%"
+            device))
   (match (status:exit-val
-          (system* "fsck.f2fs" "-p" device))
-    ;; 0 and -1 are the only two possibilities
-    ;; (according to the manpage)
+          (apply system* `("fsck.f2fs"
+                           ,@(if force? '("-f") '())
+                           ,@(if repair '("-p") '("--dry-run"))
+                           ,device)))
+    ;; 0 and -1 are the only two possibilities according to the man page.
     (0 'pass)
     (_ 'fatal-error)))
 
@@ -600,14 +703,82 @@ if DEVICE does not contain a NTFS file system."
 ;; in the BOOT SECTOR like the UUID, but in the MASTER FILE TABLE, which seems
 ;; way harder to access.
 
-(define (check-ntfs-file-system device)
-  "Return the health of a NTFS file system on DEVICE."
+(define (check-ntfs-file-system device force? repair)
+  "Return the health of an unmounted NTFS file system on DEVICE.  FORCE? is
+ignored: a full check is always performed.  Repair is not possible: if REPAIR is
+true and the volume has been repaired by an external tool, clear the volume
+dirty flag to indicate that it's now safe to mount."
   (match (status:exit-val
-          (system* "ntfsfix" device))
+          (apply system* `("ntfsfix"
+                           ,@(if repair '("--clear-dirty") '("--no-action"))
+                           ,device)))
     (0 'pass)
     (_ 'fatal-error)))
 
 
+
+;;;
+;;; XFS file systems.
+;;;
+
+;; <https://git.kernel.org/pub/scm/fs/xfs/xfs-documentation.git/tree/design/XFS_Filesystem_Structure/allocation_groups.asciidoc>
+
+(define-syntax %xfs-endianness
+  ;; Endianness of XFS file systems.
+  (identifier-syntax (endianness big)))
+
+(define (xfs-superblock? sblock)
+  "Return #t when SBLOCK is an XFS superblock."
+  (bytevector=? (sub-bytevector sblock 0 4)
+                (string->utf8 "XFSB")))
+
+(define (read-xfs-superblock device)
+  "Return the raw contents of DEVICE's XFS superblock as a bytevector, or #f
+if DEVICE does not contain an XFS file system."
+  (read-superblock device 0 120 xfs-superblock?))
+
+(define (xfs-superblock-uuid sblock)
+  "Return the UUID of XFS superblock SBLOCK as a 16-byte bytevector."
+  (sub-bytevector sblock 32 16))
+
+(define (xfs-superblock-volume-name sblock)
+  "Return the volume name of XFS superblock SBLOCK as a string of at most 12
+characters, or #f if SBLOCK has no volume name."
+  (null-terminated-latin1->string (sub-bytevector sblock 108 12)))
+
+(define (check-xfs-file-system device force? repair)
+  "Return the health of an unmounted XFS file system on DEVICE.  If FORCE? is
+false, return 'PASS unconditionally as XFS claims no need for off-line checks.
+When FORCE? is true, do perform a thorough check.  If REPAIR is false, do not
+write to DEVICE.  If it's #t, replay the log, check, and fix any errors found.
+Otherwise, only replay the log, and check without attempting further repairs."
+  (define (xfs_repair)
+    (status:exit-val
+     (apply system* `("xfs_repair" "-Pv"
+                      ,@(match repair
+                          (#t '("-e"))
+                          (_  '("-n"))) ; will miss some errors
+                      ,device))))
+  (if force?
+      ;; xfs_repair fails with exit status 2 if the log is dirty, which is
+      ;; likely in situations where you're running xfs_repair.  Only the kernel
+      ;; can replay the log by {,un}mounting it cleanly.
+      (match (let ((status (xfs_repair)))
+               (if (and repair (eq? 2 status))
+                   (let ((target "/replay-XFS-log"))
+                     ;; The kernel helpfully prints a ‘Mounting…’ notice for us.
+                     (mkdir target)
+                     (mount device target "xfs")
+                     (umount target)
+                     (rmdir target)
+                     (xfs_repair))
+                   status))
+        (0 'pass)
+        (4 'errors-corrected)
+        (_ 'fatal-error))
+      'pass))
+
+
 ;;;
 ;;; Partition lookup.
 ;;;
@@ -700,7 +871,9 @@ partition field reader that returned a value."
         (partition-field-reader read-jfs-superblock
                                 jfs-superblock-volume-name)
         (partition-field-reader read-f2fs-superblock
-                                f2fs-superblock-volume-name)))
+                                f2fs-superblock-volume-name)
+        (partition-field-reader read-xfs-superblock
+                                xfs-superblock-volume-name)))
 
 (define %partition-uuid-readers
   (list (partition-field-reader read-iso9660-superblock
@@ -722,7 +895,9 @@ partition field reader that returned a value."
         (partition-field-reader read-f2fs-superblock
                                 f2fs-superblock-uuid)
         (partition-field-reader read-ntfs-superblock
-                                ntfs-superblock-uuid)))
+                                ntfs-superblock-uuid)
+        (partition-field-reader read-xfs-superblock
+                                xfs-superblock-uuid)))
 
 (define read-partition-label
   (cut read-partition-field <> %partition-label-readers))
@@ -816,8 +991,13 @@ containing ':/')."
               (uuid-bytevector spec)
               uuid->string))))
 
-(define (check-file-system device type)
-  "Run a file system check of TYPE on DEVICE."
+(define (check-file-system device type force? repair)
+  "Check an unmounted TYPE file system on DEVICE.  Do nothing but warn if it is
+mounted.  If FORCE? is true, check even when considered unnecessary.  If REPAIR
+is false, try not to write to DEVICE at all.  If it's #t, try to fix all errors
+found.  Otherwise, fix only those considered safe to repair automatically.  Not
+all TYPEs support all values or combinations of FORCE? and REPAIR.  Don't throw
+an exception in such cases but perform the nearest sane action."
   (define check-procedure
     (cond
      ((string-prefix? "ext" type) check-ext2-file-system)
@@ -828,36 +1008,44 @@ containing ':/')."
      ((string-prefix? "f2fs" type) check-f2fs-file-system)
      ((string-prefix? "ntfs" type) check-ntfs-file-system)
      ((string-prefix? "nfs" type) (const 'pass))
+     ((string-prefix? "xfs" type) check-xfs-file-system)
      (else #f)))
 
   (if check-procedure
-      (match (check-procedure device)
-        ('pass
-         #t)
-        ('errors-corrected
-         (format (current-error-port)
-                 "File system check corrected errors on ~a; continuing~%"
-                 device))
-        ('reboot-required
-         (format (current-error-port)
-                 "File system check corrected errors on ~a; rebooting~%"
-                 device)
-         (sleep 3)
-         (reboot))
-        ('fatal-error
-         (format (current-error-port) "File system check on ~a failed~%"
-                 device)
-
-         ;; Spawn a REPL only if someone would be able to interact with it.
-         (when (isatty? (current-input-port))
-           (format (current-error-port) "Spawning Bourne-like REPL.~%")
-
-           ;; 'current-output-port' is typically connected to /dev/klog (in
-           ;; PID 1), but here we want to make sure we talk directly to the
-           ;; user.
-           (with-output-to-file "/dev/console"
-             (lambda ()
-               (start-repl %bournish-language))))))
+      (let ((mount (find (lambda (mount)
+                           (string=? device (mount-source mount)))
+                         (mounts))))
+        (if mount
+            (format (current-error-port)
+                    "Refusing to check ~a file system already mounted at ~a~%"
+                    device (mount-point mount))
+            (match (check-procedure device force? repair)
+              ('pass
+               #t)
+              ('errors-corrected
+               (format (current-error-port)
+                       "File system check corrected errors on ~a; continuing~%"
+                       device))
+              ('reboot-required
+               (format (current-error-port)
+                       "File system check corrected errors on ~a; rebooting~%"
+                       device)
+               (sleep 3)
+               (reboot))
+              ('fatal-error
+               (format (current-error-port) "File system check on ~a failed~%"
+                       device)
+
+               ;; Spawn a REPL only if someone might interact with it.
+               (when (isatty? (current-input-port))
+                 (format (current-error-port) "Spawning Bourne-like REPL.~%")
+
+                 ;; 'current-output-port' is typically connected to /dev/klog
+                 ;; (in PID 1), but here we want to make sure we talk directly
+                 ;; to the user.
+                 (with-output-to-file "/dev/console"
+                   (lambda ()
+                     (start-repl %bournish-language))))))))
       (format (current-error-port)
               "No file system check procedure for ~a; skipping~%"
               device)))
@@ -886,7 +1074,11 @@ corresponds to the symbols listed in FLAGS."
       (()
        0))))
 
-(define* (mount-file-system fs #:key (root "/root"))
+(define* (mount-file-system fs #:key (root "/root")
+                            (check? (file-system-check? fs))
+                            (skip-check-if-clean?
+                             (file-system-skip-check-if-clean? fs))
+                            (repair (file-system-repair fs)))
   "Mount the file system described by FS, a <file-system> object, under ROOT."
 
   (define (mount-nfs source mount-point type flags options)
@@ -924,8 +1116,8 @@ corresponds to the symbols listed in FLAGS."
                                (file-system-mount-flags (statfs source)))
                               0)))
          (options (file-system-options fs)))
-    (when (file-system-check? fs)
-      (check-file-system source type))
+    (when check?
+      (check-file-system source type (not skip-check-if-clean?) repair))
 
     (catch 'system-error
       (lambda ()
diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm
index e66d4d1ba8..ac36bd17d4 100644
--- a/gnu/build/hurd-boot.scm
+++ b/gnu/build/hurd-boot.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -185,13 +185,9 @@ set."
       ("servers/crash-suspend"   ("/hurd/crash" "--suspend"))
       ("servers/password"        ("/hurd/password"))
       ("servers/socket/1"        ("/hurd/pflocal"))
-      ("servers/socket/2"        ("/hurd/pfinet"
-                                  "--interface" "eth0"
-                                  "--address"
-                                  "10.0.2.15" ;the default QEMU guest IP
-                                  "--netmask" "255.255.255.0"
-                                  "--gateway" "10.0.2.2"
-                                  "--ipv6" "/servers/socket/16"))
+      ;; /servers/socket/2 and /26 are created by 'static-networking-service'.
+      ;; XXX: Spawn pfinet without arguments on these nodes so that a DHCP
+      ;; client has someone to talk to?
       ("proc"                    ("/hurd/procfs" "--stat-mode=444"))))
 
   (define devices
diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm
index 95d0a1fe79..8efe6e5f9c 100644
--- a/gnu/build/linux-boot.scm
+++ b/gnu/build/linux-boot.scm
@@ -25,6 +25,7 @@
   #:autoload   (system repl repl) (start-repl)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-9)
+  #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match)
   #:use-module (ice-9 rdelim)
@@ -44,7 +45,6 @@
             make-static-device-nodes
             configure-qemu-networking
 
-            device-number
             boot-system))
 
 ;;; Commentary:
@@ -134,14 +134,9 @@ succeeds.  Return nothing otherwise.  The kernel logs any details to dmesg."
            ;; is found on the command line; our canonicalize-device-spec gives
            ;; up after 20 seconds.  We could emulate the former by looping…
            (device (canonicalize-device-spec spec))
-           (rdev (stat:rdev (stat device)))
-           ;; For backwards compatibility, device numbering is a baroque affair.
-           ;; This is the full 64-bit scheme used by glibc's <sys/sysmacros.h>.
-           (major (logior (ash (logand #x00000000000fff00 rdev) -8)
-                          (ash (logand #xfffff00000000000 rdev) -32)))
-           (minor (logior      (logand #x00000000000000ff rdev)
-                          (ash (logand #x00000ffffff00000 rdev) -12))))
-      (format #f "~a:~a" major minor)))
+           (rdev (stat:rdev (stat device))))
+      (let-values (((major minor) (device-number->major+minor rdev)))
+        (format #f "~a:~a" major minor))))
 
   ;; Write the resume DEVICE to this magic file, using the MAJOR:MINOR device
   ;; numbers if possible.  The kernel will immediately try to resume from it.
@@ -392,11 +387,6 @@ networking values.)  Return #t if INTERFACE is up, #f otherwise."
 
     (logand (network-interface-flags sock interface) IFF_UP)))
 
-(define (device-number major minor)
-  "Return the device number for the device with MAJOR and MINOR, for use as
-the last argument of `mknod'."
-  (+ (* major 256) minor))
-
 (define (pidof program)
   "Return the PID of the first presumed instance of PROGRAM."
   (let ((program (basename program)))
@@ -408,12 +398,17 @@ the last argument of `mknod'."
 
 (define* (mount-root-file-system root type
                                  #:key volatile-root? (flags 0) options
-                                 check?)
+                                 check? skip-check-if-clean? repair)
   "Mount the root file system of type TYPE at device ROOT. If VOLATILE-ROOT? is
 true, mount ROOT read-only and make it an overlay with a writable tmpfs using
 the kernel built-in overlayfs. FLAGS and OPTIONS indicates the options to use
 to mount ROOT, and behave the same as for the `mount' procedure.
-If CHECK? is true, first run ROOT's fsck tool (if any) non-interactively."
+
+If CHECK? is true, first run ROOT's fsck tool (if any) non-interactively.
+If SKIP-CHECK-IF-CLEAN? is true, ask fsck to return immediately if ROOT is
+marked as clean.  If REPAIR is true, fsck may write to ROOT to perform repairs.
+If REPAIR is also 'PREEN, ask fsck to perform only those repairs that it
+considers safe."
 
   (if volatile-root?
       (begin
@@ -435,7 +430,7 @@ If CHECK? is true, first run ROOT's fsck tool (if any) non-interactively."
                "lowerdir=/real-root,upperdir=/rw-root/upper,workdir=/rw-root/work"))
       (begin
         (when check?
-          (check-file-system root type))
+          (check-file-system root type (not skip-check-if-clean?) repair))
         (mount root "/root" type flags options)))
 
   ;; Make sure /root/etc/mtab is a symlink to /proc/self/mounts.
@@ -536,21 +531,36 @@ upon error."
       (mount-essential-file-systems)
       (let* ((args    (linux-command-line))
              (to-load (find-long-option "--load" args))
-             (root-fs (find root-mount-point? mounts))
-             (root-fs-type (or (and=> root-fs file-system-type)
-                               "ext4"))
-             (root-fs-device (and=> root-fs file-system-device))
-             (root-fs-flags (mount-flags->bit-mask
-                             (or (and=> root-fs file-system-flags)
-                                 '())))
-             (root-options (if root-fs
-                               (file-system-options root-fs)
-                               #f))
-             ;; --root takes precedence over the 'device' field of the root
-             ;; <file-system> record.
-             (root-device (or (and=> (find-long-option "--root" args)
-                                     device-string->file-system-device)
-                              root-fs-device)))
+             ;; If present, ‘--root’ on the kernel command line takes precedence
+             ;; over the ‘device’ field of the root <file-system> record.
+             (root-device (and=> (find-long-option "--root" args)
+                                 device-string->file-system-device))
+             (root-fs (or (find root-mount-point? mounts)
+                          ;; Fall back to fictitious defaults.
+                          (file-system (device (or root-device "/dev/root"))
+                                       (mount-point "/")
+                                       (type "ext4"))))
+             (fsck.mode (find-long-option "fsck.mode" args)))
+
+        (define (check? fs)
+          (match fsck.mode
+            ("skip"  #f)
+            ("force" #t)
+            (_ (file-system-check? fs)))) ; assume "auto"
+
+        (define (skip-check-if-clean? fs)
+          (match fsck.mode
+            ("force" #f)
+            (_ (file-system-skip-check-if-clean? fs))))
+
+        (define (repair fs)
+          (let ((arg (find-long-option "fsck.repair" args)))
+            (if arg
+                (match arg
+                  ("no"  #f)
+                  ("yes" #t)
+                  (_ 'preen))
+                (file-system-repair fs))))
 
         (when (member "--repl" args)
           (start-repl))
@@ -606,17 +616,24 @@ upon error."
 
         (if root-device
             (mount-root-file-system (canonicalize-device-spec root-device)
-                                    root-fs-type
+                                    (file-system-type root-fs)
                                     #:volatile-root? volatile-root?
-                                    #:flags root-fs-flags
-                                    #:options root-options
-                                    #:check? (if root-fs
-                                                 (file-system-check? root-fs)
-                                                 #t))
+                                    #:flags (mount-flags->bit-mask
+                                             (file-system-flags root-fs))
+                                    #:options (file-system-options root-fs)
+                                    #:check? (check? root-fs)
+                                    #:skip-check-if-clean?
+                                    (skip-check-if-clean? root-fs)
+                                    #:repair (repair root-fs))
             (mount "none" "/root" "tmpfs"))
 
-        ;; Mount the specified file systems.
-        (for-each mount-file-system
+        ;; Mount the specified non-root file systems.
+        (for-each (lambda (fs)
+                    (mount-file-system fs
+                                       #:check? (check? fs)
+                                       #:skip-check-if-clean?
+                                       (skip-check-if-clean? fs)
+                                       #:repair (repair fs)))
                   (remove root-mount-point? mounts))
 
         (setenv "EXT2FS_NO_MTAB_OK" #f)
diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm
index 3a47322065..053720574b 100644
--- a/gnu/build/linux-modules.scm
+++ b/gnu/build/linux-modules.scm
@@ -354,11 +354,13 @@ appears in BLACK-LIST are not loaded."
              (close-fdes fd)
              #t)
            (lambda args
-             ;; If this module was already loaded and we're in modprobe style, ignore
-             ;; the error.
              (when fd (close-fdes fd))
-             (or (and recursive? (= EEXIST (system-error-errno args)))
-                 (apply throw args)))))))
+             (let ((errno (system-error-errno args)))
+               (or (and recursive?      ; we're operating in ‘modprobe’ style
+                        (member errno
+                                (list EEXIST    ; already loaded
+                                      EINVAL))) ; unsupported by hardware
+                   (apply throw args))))))))
 
 (define (load-linux-modules-from-directory modules directory)
   "Load MODULES and their dependencies from DIRECTORY, a directory containing
diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm
index fe754cd147..0ebe535526 100644
--- a/gnu/build/marionette.scm
+++ b/gnu/build/marionette.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -20,6 +20,7 @@
 (define-module (gnu build marionette)
   #:use-module (srfi srfi-9)
   #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-64)
   #:use-module (rnrs io ports)
   #:use-module (ice-9 match)
   #:use-module (ice-9 popen)
@@ -33,7 +34,9 @@
             marionette-screen-text
             wait-for-screen-text
             %qwerty-us-keystrokes
-            marionette-type))
+            marionette-type
+
+            system-test-runner))
 
 ;;; Commentary:
 ;;;
@@ -358,4 +361,69 @@ to actual keystrokes."
   (for-each (cut marionette-control <> marionette)
             (string->keystroke-commands str keystrokes)))
 
+
+;;;
+;;; Test helper.
+;;;
+
+(define* (system-test-runner #:optional log-directory)
+  "Return a SRFI-64 test runner that calls 'exit' upon 'test-end'.  When
+LOG-DIRECTORY is specified, create log file within it."
+  (let ((runner  (test-runner-simple)))
+    ;; Log to a file under LOG-DIRECTORY.
+    (test-runner-on-group-begin! runner
+      (let ((on-begin (test-runner-on-group-begin runner)))
+        (lambda (runner suite-name count)
+          (when log-directory
+            (catch 'system-error
+              (lambda ()
+                (mkdir log-directory))
+              (lambda args
+                (unless (= (system-error-errno args) EEXIST)
+                  (apply throw args))))
+            (set! test-log-to-file
+                  (string-append log-directory "/" suite-name ".log")))
+          (on-begin runner suite-name count))))
+
+    ;; The default behavior on 'test-end' is to only write a line if the test
+    ;; failed.  Arrange to also write a line on success.
+    (test-runner-on-test-end! runner
+      (let ((on-end (test-runner-on-test-end runner)))
+        (lambda (runner)
+          (let* ((kind      (test-result-ref runner 'result-kind))
+                 (results   (test-result-alist runner))
+                 (test-name (assq-ref results 'test-name)))
+            (unless (memq kind '(fail xpass))
+              (format (current-output-port) "~a: ~a~%"
+                      (string-upcase (symbol->string kind))
+                      test-name)))
+
+          (on-end runner))))
+
+    ;; On 'test-end', display test results and exit with zero if and only if
+    ;; there were no test failures.
+    (test-runner-on-final! runner
+      (lambda (runner)
+        (let ((success? (= (test-runner-fail-count runner) 0)))
+          (test-on-final-simple runner)
+
+          (when (not success?)
+            (let* ((log-port (test-runner-aux-value runner))
+                   (log-file (port-filename log-port)))
+              (format (current-error-port)
+                      "\nTests failed, dumping log file '~a'.\n\n"
+                      log-file)
+
+              ;; At this point LOG-PORT is not closed yet; flush it.
+              (force-output log-port)
+
+              ;; Brute force to avoid dependency on (guix build utils) for
+              ;; 'dump-port'.
+              (let ((content (call-with-input-file log-file
+                               get-bytevector-all)))
+                (put-bytevector (current-error-port) content))))
+
+          (exit success?))))
+    runner))
+
 ;;; marionette.scm ends here
diff --git a/gnu/build/secret-service.scm b/gnu/build/secret-service.scm
index 46dcf1b9c3..4e183e11e8 100644
--- a/gnu/build/secret-service.scm
+++ b/gnu/build/secret-service.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -111,6 +111,15 @@ wait for at most HANDSHAKE-TIMEOUT seconds for handshake to complete.  Return
        (close-port sock)
        #f))))
 
+(define (delete-file* file)
+  "Ensure FILE does not exist."
+  (catch 'system-error
+    (lambda ()
+      (delete-file file))
+    (lambda args
+      (unless (= ENOENT (system-error-errno args))
+        (apply throw args)))))
+
 (define (secret-service-receive-secrets port)
   "Listen to local PORT and wait for a secret service client to send secrets.
 Write them to the file system.  Return the list of files installed on success,
@@ -170,6 +179,12 @@ and #f otherwise."
                    (log "installing file '~a' (~a bytes)...~%"
                         file size)
                    (mkdir-p (dirname file))
+
+                   ;; It could be that FILE already exists, for instance
+                   ;; because it has been created by a service's activation
+                   ;; snippet (e.g., SSH host keys).  Delete it.
+                   (delete-file* file)
+
                    (call-with-output-file file
                      (lambda (output)
                        (dump port output size)
diff --git a/gnu/ci.scm b/gnu/ci.scm
index 15a4815ff4..6039af8f07 100644
--- a/gnu/ci.scm
+++ b/gnu/ci.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
@@ -85,7 +85,7 @@
 (define* (derivation->job name drv
                           #:key
                           (max-silent-time 3600)
-                          (timeout 3600))
+                          (timeout (* 5 3600)))
   "Return a Cuirass job called NAME and describing DRV.
 
 MAX-SILENT-TIME and TIMEOUT are build options passed to the daemon when
@@ -140,7 +140,7 @@ SYSTEM."
   ;; chain.)
   (list gcc-8 gcc-9 gcc-10 gcc-11 glibc binutils
         gmp mpfr mpc coreutils findutils diffutils patch sed grep
-        gawk gnu-gettext hello guile-2.2 guile-3.0 zlib gzip xz
+        gawk gnu-gettext hello guile-2.2 guile-3.0 zlib gzip xz guix
         %bootstrap-binaries-tarball
         %binutils-bootstrap-tarball
         (%glibc-bootstrap-tarball)
@@ -301,20 +301,16 @@ otherwise use the IMAGE name."
 
 (define channel-build-system
   ;; Build system used to "convert" a channel instance to a package.
-  (let* ((build (lambda* (store name inputs
-                                #:key source commit system
-                                #:allow-other-keys)
-                  (run-with-store store
-                    ;; SOURCE can be a lowerable object such as <local-file>
-                    ;; or a file name.  Adjust accordingly.
-                    (mlet* %store-monad ((source (if (string? source)
-                                                     (return source)
-                                                     (lower-object source)))
-                                         (instance
-                                          -> (checkout->channel-instance
-                                              source #:commit commit)))
-                      (channel-instances->derivation (list instance)))
-                    #:system system)))
+  (let* ((build (lambda* (name inputs
+                               #:key source commit system
+                               #:allow-other-keys)
+                  (mlet* %store-monad ((source (if (string? source)
+                                                   (return source)
+                                                   (lower-object source)))
+                                       (instance
+                                        -> (checkout->channel-instance
+                                            source #:commit commit)))
+                    (channel-instances->derivation (list instance)))))
          (lower (lambda* (name #:key system source commit
                                #:allow-other-keys)
                   (bag
@@ -447,19 +443,40 @@ valid."
               (map channel-url channels)))
        arguments))
 
-(define (manifests->packages store manifests)
-  "Return the list of packages found in MANIFESTS."
+(define (manifests->jobs store manifests)
+  "Return the list of jobs for the entries in MANIFESTS, a list of file
+names."
   (define (load-manifest manifest)
     (save-module-excursion
      (lambda ()
        (set-current-module (make-user-module '((guix profiles) (gnu))))
        (primitive-load manifest))))
 
-  (delete-duplicates!
-   (map manifest-entry-item
-        (append-map (compose manifest-entries
-                             load-manifest)
-                    manifests))))
+  (define (manifest-entry-job-name entry)
+    (string-append (manifest-entry-name entry) "-"
+                   (manifest-entry-version entry)))
+
+  (define (manifest-entry->job entry)
+    (let* ((obj (manifest-entry-item entry))
+           (drv (parameterize ((%graft? #f))
+                  (run-with-store store
+                    (lower-object obj))))
+           (max-silent-time (or (and (package? obj)
+                                     (assoc-ref (package-properties obj)
+                                                'max-silent-time))
+                                3600))
+           (timeout (or (and (package? obj)
+                             (assoc-ref (package-properties obj) 'timeout))
+                        (* 5 3600))))
+      (derivation->job (manifest-entry-job-name entry) drv
+                       #:max-silent-time max-silent-time
+                       #:timeout timeout)))
+
+  (map manifest-entry->job
+       (delete-duplicates
+        (append-map (compose manifest-entries load-manifest)
+                    manifests)
+        manifest-entry=?)))
 
 (define (arguments->systems arguments)
   "Return the systems list from ARGUMENTS."
@@ -572,12 +589,8 @@ valid."
                  packages)))
          (('manifests . rest)
           ;; Build packages in the list of manifests.
-          (let* ((manifests (arguments->manifests rest channels))
-                 (packages (manifests->packages store manifests)))
-            (map (lambda (package)
-                   (package-job store (job-name package)
-                                package system))
-                 packages)))
+          (let ((manifests (arguments->manifests rest channels)))
+            (manifests->jobs store manifests)))
          (else
           (error "unknown subset" subset))))
      systems)))
diff --git a/gnu/home.scm b/gnu/home.scm
new file mode 100644
index 0000000000..d8134693e5
--- /dev/null
+++ b/gnu/home.scm
@@ -0,0 +1,106 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
+;;;
+;;; 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 home)
+  #:use-module (gnu home services)
+  #:use-module (gnu home services symlink-manager)
+  #:use-module (gnu home services shells)
+  #:use-module (gnu home services xdg)
+  #:use-module (gnu home services fontutils)
+  #:use-module (gnu services)
+  #:use-module (guix records)
+  #:use-module (guix diagnostics)
+
+  #:export (home-environment
+            home-environment?
+            this-home-environment
+
+            home-environment-derivation
+            home-environment-user-services
+            home-environment-essential-services
+            home-environment-services
+            home-environment-location
+
+            home-environment-with-provenance))
+
+;;; Comment:
+;;;
+;;; This module provides a <home-environment> record for managing
+;;; per-user packages and configuration files in the similar way as
+;;; <operating-system> do for system packages and configuration files.
+;;;
+;;; Code:
+
+(define-record-type* <home-environment> home-environment
+  make-home-environment
+  home-environment?
+  this-home-environment
+
+  (packages           home-environment-packages            ; list of (PACKAGE OUTPUT...)
+                      (default '()))
+
+  (essential-services home-environment-essential-services  ; list of services
+                      (thunked)
+                      (default (home-environment-default-essential-services
+                                this-home-environment)))
+
+  (services           home-environment-user-services
+                      (default '()))
+
+  (location           home-environment-location            ; <location>
+                      (default (and=> (current-source-location)
+                                      source-properties->location))
+                      (innate)))
+
+(define (home-environment-default-essential-services he)
+  "Return the list of essential services for home environment."
+  (list
+   (service home-run-on-first-login-service-type)
+   (service home-activation-service-type)
+   (service home-environment-variables-service-type)
+
+   (service home-symlink-manager-service-type)
+
+   (service home-fontconfig-service-type)
+   (service home-xdg-base-directories-service-type)
+   (service home-shell-profile-service-type)
+
+   (service home-service-type)
+   (service home-profile-service-type (home-environment-packages he))))
+
+(define* (home-environment-services he)
+  "Return all the services of home environment."
+  (instantiate-missing-services
+   (append (home-environment-user-services he)
+           (home-environment-essential-services he))))
+
+(define* (home-environment-derivation he)
+  "Return a derivation that builds OS."
+  (let* ((services         (home-environment-services he))
+         (home (fold-services services
+                              #:target-type home-service-type)))
+    (service-value home)))
+
+(define* (home-environment-with-provenance he config-file)
+  "Return a variant of HE that stores its own provenance information,
+including CONFIG-FILE, if available.  This is achieved by adding an instance
+of HOME-PROVENANCE-SERVICE-TYPE to its services."
+  (home-environment
+    (inherit he)
+    (services (cons (service home-provenance-service-type config-file)
+                    (home-environment-user-services he)))))
diff --git a/gnu/home/services.scm b/gnu/home/services.scm
new file mode 100644
index 0000000000..1aeca95e5a
--- /dev/null
+++ b/gnu/home/services.scm
@@ -0,0 +1,530 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;;
+;;; 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 home services)
+  #:use-module (gnu services)
+  #:use-module (guix channels)
+  #:use-module (guix monads)
+  #:use-module (guix store)
+  #:use-module (guix gexp)
+  #:use-module (guix profiles)
+  #:use-module (guix sets)
+  #:use-module (guix ui)
+  #:use-module (guix discovery)
+  #:use-module (guix diagnostics)
+
+  #:use-module (srfi srfi-1)
+  #:use-module (ice-9 match)
+
+  #:export (home-service-type
+            home-profile-service-type
+            home-environment-variables-service-type
+            home-files-service-type
+            home-run-on-first-login-service-type
+            home-activation-service-type
+            home-run-on-change-service-type
+            home-provenance-service-type
+
+            fold-home-service-types)
+
+  #:re-export (service
+               service-type
+               service-extension))
+
+;;; Comment:
+;;;
+;;; This module is similar to (gnu system services) module, but
+;;; provides Home Services, which are supposed to be used for building
+;;; home-environment.
+;;;
+;;; Home Services use the same extension as System Services.  Consult
+;;; (gnu system services) module or manual for more information.
+;;;
+;;; home-service-type is a root of home services DAG.
+;;;
+;;; home-profile-service-type is almost the same as profile-service-type, at least
+;;; for now.
+;;;
+;;; home-environment-variables-service-type generates a @file{setup-environment}
+;;; shell script, which is expected to be sourced by login shell or other program,
+;;; which starts early and spawns all other processes.  Home services for shells
+;;; automatically add code for sourcing this file, if person do not use those home
+;;; services they have to source this script manually in their's shell *profile
+;;; file (details described in the manual).
+;;;
+;;; home-files-service-type is similar to etc-service-type, but doesn't extend
+;;; home-activation, because deploy mechanism for config files is pluggable and
+;;; can be different for different home environments: The default one is called
+;;; symlink-manager (will be introudced in a separate patch series), which creates
+;;; links for various dotfiles (like $XDG_CONFIG_HOME/$APP/...) to store, but is
+;;; possible to implement alternative approaches like read-only home from Julien's
+;;; guix-home-manager.
+;;;
+;;; home-run-on-first-login-service-type provides an @file{on-first-login} guile
+;;; script, which runs provided gexps once, when user makes first login.  It can
+;;; be used to start user's Shepherd and maybe some other process.  It relies on
+;;; assumption that /run/user/$UID will be created on login by some login
+;;; manager (elogind for example).
+;;;
+;;; home-activation-service-type provides an @file{activate} guile script, which
+;;; do three main things:
+;;;
+;;; - Sets environment variables to the values declared in
+;;; @file{setup-environment} shell script.  It's necessary, because user can set
+;;; for example XDG_CONFIG_HOME and it should be respected by activation gexp of
+;;; symlink-manager.
+;;;
+;;; - Sets GUIX_NEW_HOME and possibly GUIX_OLD_HOME vars to paths in the store.
+;;; Later those variables can be used by activation gexps, for example by
+;;; symlink-manager or run-on-change services.
+;;;
+;;; - Run all activation gexps provided by other home services.
+;;;
+;;; home-run-on-change-service-type allows to trigger actions during
+;;; activation if file or directory specified by pattern is changed.
+;;;
+;;; Code:
+
+
+(define (home-derivation entries mextensions)
+  "Return as a monadic value the derivation of the 'home'
+directory containing the given entries."
+  (mlet %store-monad ((extensions (mapm/accumulate-builds identity
+                                                          mextensions)))
+    (lower-object
+     (file-union "home" (append entries (concatenate extensions))))))
+
+(define home-service-type
+  ;; This is the ultimate service type, the root of the home service
+  ;; DAG.  The service of this type is extended by monadic name/item
+  ;; pairs.  These items end up in the "home-environment directory" as
+  ;; returned by 'home-environment-derivation'.
+  (service-type (name 'home)
+                (extensions '())
+                (compose identity)
+                (extend home-derivation)
+                (default-value '())
+                (description
+                 "Build the home environment top-level directory,
+which in turn refers to everything the home environment needs: its
+packages, configuration files, activation script, and so on.")))
+
+(define (packages->profile-entry packages)
+  "Return a system entry for the profile containing PACKAGES."
+  ;; XXX: 'mlet' is needed here for one reason: to get the proper
+  ;; '%current-target' and '%current-target-system' bindings when
+  ;; 'packages->manifest' is called, and thus when the 'package-inputs'
+  ;; etc. procedures are called on PACKAGES.  That way, conditionals in those
+  ;; inputs see the "correct" value of these two parameters.  See
+  ;; <https://issues.guix.gnu.org/44952>.
+  (mlet %store-monad ((_ (current-target-system)))
+    (return `(("profile" ,(profile
+                           (content (packages->manifest
+                                     (map identity
+                                     ;;(options->transformation transformations)
+                                     (delete-duplicates packages eq?))))))))))
+
+;; MAYBE: Add a list of transformations for packages.  It's better to
+;; place it in home-profile-service-type to affect all profile
+;; packages and prevent conflicts, when other packages relies on
+;; non-transformed version of package.
+(define home-profile-service-type
+  (service-type (name 'home-profile)
+                (extensions
+                 (list (service-extension home-service-type
+                                          packages->profile-entry)))
+                (compose concatenate)
+                (extend append)
+                (description
+                 "This is the @dfn{home profile} and can be found in
+@file{~/.guix-home/profile}.  It contains packages and
+configuration files that the user has declared in their
+@code{home-environment} record.")))
+
+(define (environment-variables->setup-environment-script vars)
+  "Return a file that can be sourced by a POSIX compliant shell which
+initializes the environment.  The file will source the home
+environment profile, set some default environment variables, and set
+environment variables provided in @code{vars}.  @code{vars} is a list
+of pairs (@code{(key . value)}), @code{key} is a string and
+@code{value} is a string or gexp.
+
+If value is @code{#f} variable will be omitted.
+If value is @code{#t} variable will be just exported.
+For any other, value variable will be set to the @code{value} and
+exported."
+  (define (warn-about-duplicate-defenitions)
+    (fold
+     (lambda (x acc)
+       (when (equal? (car x) (car acc))
+         (warning
+          (G_ "duplicate definition for `~a' environment variable ~%") (car x)))
+       x)
+     (cons "" "")
+     (sort vars (lambda (a b)
+                  (string<? (car a) (car b))))))
+
+  (warn-about-duplicate-defenitions)
+  (with-monad
+   %store-monad
+   (return
+    `(("setup-environment"
+       ;; TODO: It's necessary to source ~/.guix-profile too
+       ;; on foreign distros
+       ,(apply mixed-text-file "setup-environment"
+               "\
+HOME_ENVIRONMENT=$HOME/.guix-home
+GUIX_PROFILE=\"$HOME_ENVIRONMENT/profile\"
+PROFILE_FILE=\"$HOME_ENVIRONMENT/profile/etc/profile\"
+[ -f $PROFILE_FILE ] && . $PROFILE_FILE
+
+case $XDG_DATA_DIRS in
+  *$HOME_ENVIRONMENT/profile/share*) ;;
+  *) export XDG_DATA_DIRS=$HOME_ENVIRONMENT/profile/share:$XDG_DATA_DIRS ;;
+esac
+case $MANPATH in
+  *$HOME_ENVIRONMENT/profile/share/man*) ;;
+  *) export MANPATH=$HOME_ENVIRONMENT/profile/share/man:$MANPATH
+esac
+case $INFOPATH in
+  *$HOME_ENVIRONMENT/profile/share/info*) ;;
+  *) export INFOPATH=$HOME_ENVIRONMENT/profile/share/info:$INFOPATH ;;
+esac
+case $XDG_CONFIG_DIRS in
+  *$HOME_ENVIRONMENT/profile/etc/xdg*) ;;
+  *) export XDG_CONFIG_DIRS=$HOME_ENVIRONMENT/profile/etc/xdg:$XDG_CONFIG_DIRS ;;
+esac
+case $XCURSOR_PATH in
+  *$HOME_ENVIRONMENT/profile/share/icons*) ;;
+  *) export XCURSOR_PATH=$HOME_ENVIRONMENT/profile/share/icons:$XCURSOR_PATH ;;
+esac
+
+"
+
+               (append-map
+                (match-lambda
+                  ((key . #f)
+                   '())
+                  ((key . #t)
+                   (list "export " key "\n"))
+                  ((key . value)
+                   (list "export " key "=" value "\n")))
+                vars)))))))
+
+(define home-environment-variables-service-type
+  (service-type (name 'home-environment-variables)
+                (extensions
+                 (list (service-extension
+                        home-service-type
+                        environment-variables->setup-environment-script)))
+                (compose concatenate)
+                (extend append)
+                (default-value '())
+                (description "Set the environment variables.")))
+
+(define (files->files-directory files)
+  "Return a @code{files} directory that contains FILES."
+  (define (assert-no-duplicates files)
+    (let loop ((files files)
+               (seen (set)))
+      (match files
+        (() #t)
+        (((file _) rest ...)
+         (when (set-contains? seen file)
+           (raise (formatted-message (G_ "duplicate '~a' entry for files/")
+                                     file)))
+         (loop rest (set-insert file seen))))))
+
+  ;; Detect duplicates early instead of letting them through, eventually
+  ;; leading to a build failure of "files.drv".
+  (assert-no-duplicates files)
+
+  (file-union "files" files))
+
+(define (files-entry files)
+  "Return an entry for the @file{~/.guix-home/files}
+directory containing FILES."
+  (with-monad %store-monad
+    (return `(("files" ,(files->files-directory files))))))
+
+(define home-files-service-type
+  (service-type (name 'home-files)
+                (extensions
+                 (list (service-extension home-service-type
+                                          files-entry)))
+                (compose concatenate)
+                (extend append)
+                (default-value '())
+                (description "Configuration files for programs that
+will be put in @file{~/.guix-home/files}.")))
+
+(define (compute-on-first-login-script _ gexps)
+  (program-file
+   "on-first-login"
+   #~(let* ((xdg-runtime-dir (or (getenv "XDG_RUNTIME_DIR")
+                                 (format #f "/run/user/~a" (getuid))))
+            (flag-file-path (string-append
+                             xdg-runtime-dir "/on-first-login-executed"))
+            (touch (lambda (file-name)
+                     (call-with-output-file file-name (const #t)))))
+       ;; XDG_RUNTIME_DIR dissapears on logout, that means such trick
+       ;; allows to launch on-first-login script on first login only
+       ;; after complete logout/reboot.
+       (if (file-exists? xdg-runtime-dir)
+           (unless (file-exists? flag-file-path)
+             (begin #$@gexps (touch flag-file-path)))
+           (display "XDG_RUNTIME_DIR doesn't exists, on-first-login script
+won't execute anything.  You can check if xdg runtime directory exists,
+XDG_RUNTIME_DIR variable is set to appropriate value and manually execute the
+script by running '$HOME/.guix-home/on-first-login'")))))
+
+(define (on-first-login-script-entry on-first-login)
+  "Return, as a monadic value, an entry for the on-first-login script
+in the home environment directory."
+  (with-monad %store-monad
+    (return `(("on-first-login" ,on-first-login)))))
+
+(define home-run-on-first-login-service-type
+  (service-type (name 'home-run-on-first-login)
+                (extensions
+                 (list (service-extension
+                        home-service-type
+                        on-first-login-script-entry)))
+                (compose identity)
+                (extend compute-on-first-login-script)
+                (default-value #f)
+                (description "Run gexps on first user login.  Can be
+extended with one gexp.")))
+
+
+(define (compute-activation-script init-gexp gexps)
+  (gexp->script
+   "activate"
+   #~(let* ((he-init-file (lambda (he) (string-append he "/setup-environment")))
+            (he-path (string-append (getenv "HOME") "/.guix-home"))
+            (new-home-env (getenv "GUIX_NEW_HOME"))
+            (new-home (or new-home-env
+                          ;; Path of the activation file if called interactively
+                          (dirname (car (command-line)))))
+            (old-home-env (getenv "GUIX_OLD_HOME"))
+            (old-home (or old-home-env
+                          (if (file-exists? (he-init-file he-path))
+                              (readlink he-path)
+                              #f))))
+       (if (file-exists? (he-init-file new-home))
+           (let* ((port   ((@ (ice-9 popen) open-input-pipe)
+                           (format #f "source ~a && env -0"
+                                   (he-init-file new-home))))
+                  (result ((@ (ice-9 rdelim) read-delimited) "" port))
+                  (vars (map (lambda (x)
+                               (let ((si (string-index x #\=)))
+                                 (cons (string-take x si)
+                                       (string-drop x (1+ si)))))
+                             ((@ (srfi srfi-1) remove)
+                              string-null?
+                              (string-split result #\nul)))))
+             (close-port port)
+             (map (lambda (x) (setenv (car x) (cdr x))) vars)
+
+             (setenv "GUIX_NEW_HOME" new-home)
+             (setenv "GUIX_OLD_HOME" old-home)
+
+             #$@gexps
+
+             ;; Do not unset env variable if it was set outside.
+             (unless new-home-env (setenv "GUIX_NEW_HOME" #f))
+             (unless old-home-env (setenv "GUIX_OLD_HOME" #f)))
+           (format #t "\
+Activation script was either called or loaded by file from this directory:
+~a
+It doesn't seem that home environment is somewhere around.
+Make sure that you call ./activate by symlink from -home store item.\n"
+                   new-home)))))
+
+(define (activation-script-entry m-activation)
+  "Return, as a monadic value, an entry for the activation script
+in the home environment directory."
+  (mlet %store-monad ((activation m-activation))
+    (return `(("activate" ,activation)))))
+
+(define home-activation-service-type
+  (service-type (name 'home-activation)
+                (extensions
+                 (list (service-extension
+                        home-service-type
+                        activation-script-entry)))
+                (compose identity)
+                (extend compute-activation-script)
+                (default-value #f)
+                (description "Run gexps to activate the current
+generation of home environment and update the state of the home
+directory.  @command{activate} script automatically called during
+reconfiguration or generation switching.  This service can be extended
+with one gexp, but many times, and all gexps must be idempotent.")))
+
+
+;;;
+;;; On-change.
+;;;
+
+(define (compute-on-change-gexp eval-gexps? pattern-gexp-tuples)
+  #~(begin
+      (define (equal-regulars? file1 file2)
+        "Check if FILE1 and FILE2 are bit for bit identical."
+        (let* ((cmp-binary #$(file-append
+                              (@ (gnu packages base) diffutils) "/bin/cmp"))
+               (stats1     (lstat file1))
+               (stats2     (lstat file2)))
+          (cond
+           ((= (stat:ino stats1) (stat:ino stats2))         #t)
+           ((not (= (stat:size stats1) (stat:size stats2))) #f)
+
+           (else (= (system* cmp-binary file1 file2) 0)))))
+
+      (define (equal-symlinks? symlink1 symlink2)
+        "Check if SYMLINK1 and SYMLINK2 are pointing to the same target."
+        (string=? (readlink symlink1) (readlink symlink2)))
+
+      (define (equal-directories? dir1 dir2)
+        "Check if DIR1 and DIR2 have the same content."
+        (define (ordinary-file file)
+          (not (or (string=? file ".")
+                   (string=? file ".."))))
+        (let* ((files1 (scandir dir1 ordinary-file))
+               (files2 (scandir dir2 ordinary-file)))
+          (if (equal? files1 files2)
+              (map (lambda (file)
+                     (equal-files?
+                      (string-append dir1 "/" file)
+                      (string-append dir2 "/" file)))
+                   files1)
+              #f)))
+
+      (define (equal-files? file1 file2)
+        "Compares files, symlinks or directories of the same type."
+        (case (file-type file1)
+          ((directory) (equal-directories? file1 file2))
+          ((symlink) (equal-symlinks? file1 file2))
+          ((regular) (equal-regulars? file1 file2))
+          (else
+           (display "The file type is unsupported by on-change service.\n")
+           #f)))
+
+      (define (file-type file)
+        (stat:type (lstat file)))
+
+      (define (something-changed? file1 file2)
+        (cond
+         ((and (not (file-exists? file1))
+               (not (file-exists? file2))) #f)
+         ((or  (not (file-exists? file1))
+               (not (file-exists? file2))) #t)
+
+         ((not (eq? (file-type file1) (file-type file2))) #t)
+
+         (else
+          (not (equal-files? file1 file2)))))
+
+      (define expressions-to-eval
+        (map
+         (lambda (x)
+           (let* ((file1 (string-append
+                          (or (getenv "GUIX_OLD_HOME")
+                              "/gnu/store/non-existing-generation")
+                          "/" (car x)))
+                  (file2 (string-append (getenv "GUIX_NEW_HOME") "/" (car x)))
+                  (_ (format #t "Comparing ~a and\n~10t~a..." file1 file2))
+                  (any-changes? (something-changed? file1 file2))
+                  (_ (format #t " done (~a)\n"
+                             (if any-changes? "changed" "same"))))
+             (if any-changes? (cadr x) "")))
+         '#$pattern-gexp-tuples))
+
+      (if #$eval-gexps?
+          (begin
+            (display "Evaling on-change gexps.\n\n")
+            (for-each primitive-eval expressions-to-eval)
+            (display "On-change gexps evaluation finished.\n\n"))
+          (display "\
+On-change gexps won't be evaluated, disabled by service
+configuration.\n"))))
+
+(define home-run-on-change-service-type
+  (service-type (name 'home-run-on-change)
+                (extensions
+                 (list (service-extension
+                        home-activation-service-type
+                        identity)))
+                (compose concatenate)
+                (extend compute-on-change-gexp)
+                (default-value #t)
+                (description "\
+G-expressions to run if the specified files have changed since the
+last generation.  The extension should be a list of lists where the
+first element is the pattern for file or directory that expected to be
+changed, and the second element is the G-expression to be evaluated.")))
+
+
+;;;
+;;; Provenance tracking.
+;;;
+
+(define home-provenance-service-type
+  (service-type
+   (name 'home-provenance)
+   (extensions
+    (list (service-extension
+           home-service-type
+           (service-extension-compute
+            (first (service-type-extensions provenance-service-type))))))
+   (default-value #f)                ;the HE config file
+   (description "\
+Store provenance information about the home environment in the home
+environment itself: the channels used when building the home
+environment, and its configuration file, when available.")))
+
+(define sexp->home-provenance sexp->system-provenance)
+(define home-provenance system-provenance)
+
+
+;;;
+;;; Searching
+;;;
+
+(define (parent-directory directory)
+  "Get the parent directory of DIRECTORY"
+  (string-join (drop-right (string-split directory #\/) 1) "/"))
+
+(define %guix-home-root-directory
+  ;; Absolute file name of the module hierarchy.
+  (parent-directory
+   (dirname (dirname (search-path %load-path "gnu/home/services.scm")))))
+
+(define %service-type-path
+  ;; Search path for service types.
+  (make-parameter `((,%guix-home-root-directory . "gnu/home/services"))))
+
+(define (all-home-service-modules)
+  "Return the default set of `home service' modules."
+  (cons (resolve-interface '(gnu home services))
+        (all-modules (%service-type-path)
+                     #:warn warn-about-load-error)))
+
+(define* (fold-home-service-types proc seed)
+  (fold-service-types proc seed (all-home-service-modules)))
diff --git a/gnu/home/services/fontutils.scm b/gnu/home/services/fontutils.scm
new file mode 100644
index 0000000000..772904367d
--- /dev/null
+++ b/gnu/home/services/fontutils.scm
@@ -0,0 +1,65 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;;
+;;; 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 home services fontutils)
+  #:use-module (gnu home services)
+  #:use-module (gnu packages fontutils)
+  #:use-module (guix gexp)
+
+  #:export (home-fontconfig-service-type))
+
+;;; Commentary:
+;;;
+;;; Services related to fonts.  home-fontconfig service provides
+;;; fontconfig configuration, which allows fc-* utilities to find
+;;; fonts in Guix Home's profile and regenerates font cache on
+;;; activation.
+;;;
+;;; Code:
+
+(define (add-fontconfig-config-file he-symlink-path)
+  `(("config/fontconfig/fonts.conf"
+     ,(mixed-text-file
+       "fonts.conf"
+       "<?xml version='1.0'?>
+<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
+<fontconfig>
+  <dir>~/.guix-home/profile/share/fonts</dir>
+</fontconfig>"))))
+
+(define (regenerate-font-cache-gexp _)
+  `(("profile/share/fonts"
+     ,#~(system* #$(file-append fontconfig "/bin/fc-cache") "-fv"))))
+
+(define home-fontconfig-service-type
+  (service-type (name 'home-fontconfig)
+                (extensions
+                 (list (service-extension
+                        home-files-service-type
+                        add-fontconfig-config-file)
+                       (service-extension
+                        home-run-on-change-service-type
+                        regenerate-font-cache-gexp)
+                       (service-extension
+                        home-profile-service-type
+                        (const (list fontconfig)))))
+                (default-value #f)
+                (description
+                 "Provides configuration file for fontconfig and make
+fc-* utilities aware of font packages installed in Guix Home's profile.")))
diff --git a/gnu/home/services/mcron.scm b/gnu/home/services/mcron.scm
new file mode 100644
index 0000000000..0b3dbb810b
--- /dev/null
+++ b/gnu/home/services/mcron.scm
@@ -0,0 +1,115 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;;
+;;; 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 home services mcron)
+  #:use-module (gnu packages guile-xyz)
+  #:use-module (gnu home services)
+  #:use-module (gnu services shepherd)
+  #:use-module (gnu home services shepherd)
+  #:use-module (guix records)
+  #:use-module (guix gexp)
+  #:use-module (srfi srfi-1)
+  #:use-module (ice-9 match)
+
+  #:export (home-mcron-configuration
+            home-mcron-service-type))
+
+;;; Commentary:
+;;
+;; Service for the GNU mcron cron job manager.
+;;
+;; Example configuration, the first job runs mbsync once every ten
+;; minutes, the second one writes "Mcron service" to ~/mcron-file once
+;; every minute.
+;;
+;; (service home-mcron-service-type
+;;            (home-mcron-configuration
+;;             (jobs (list #~(job '(next-minute
+;;                                  (range 0 60 10))
+;;                                (lambda ()
+;;                                  (system* "mbsync" "--all")))
+;;                         #~(job next-minute-from
+;;                                (lambda ()
+;;                                  (call-with-output-file (string-append (getenv "HOME")
+;;                                                                        "/mcron-file")
+;;                                    (lambda (port)
+;;                                      (display "Mcron service" port)))))))))
+;;
+;;; Code:
+
+(define-record-type* <home-mcron-configuration> home-mcron-configuration
+  make-home-mcron-configuration
+  home-mcron-configuration?
+  (package home-mcron-configuration-package ; package
+           (default mcron))
+  (jobs home-mcron-configuration-jobs   ; list of jobs
+        (default '())))
+
+(define job-files (@@ (gnu services mcron) job-files))
+(define shepherd-schedule-action
+  (@@ (gnu services mcron) shepherd-schedule-action))
+
+(define home-mcron-shepherd-services
+  (match-lambda
+    (($ <home-mcron-configuration> mcron '()) ; no jobs to run
+     '())
+    (($ <home-mcron-configuration> mcron jobs)
+     (let ((files (job-files mcron jobs)))
+       (list (shepherd-service
+              (documentation "User cron jobs.")
+              (provision '(mcron))
+              (modules `((srfi srfi-1)
+                         (srfi srfi-26)
+                         (ice-9 popen)            ; for the 'schedule' action
+                         (ice-9 rdelim)
+                         (ice-9 match)
+                         ,@%default-modules))
+              (start #~(make-forkexec-constructor
+                        (list #$(file-append mcron "/bin/mcron") #$@files)
+                        #:log-file (string-append
+                                    (or (getenv "XDG_LOG_HOME")
+                                        (format #f "~a/.local/var/log"
+                                                (getenv "HOME")))
+                                    "/mcron.log")))
+              (stop #~(make-kill-destructor))
+              (actions
+               (list (shepherd-schedule-action mcron files)))))))))
+
+(define home-mcron-profile (compose list home-mcron-configuration-package))
+
+(define (home-mcron-extend config jobs)
+  (home-mcron-configuration
+   (inherit config)
+   (jobs (append (home-mcron-configuration-jobs config)
+                 jobs))))
+
+(define home-mcron-service-type
+  (service-type (name 'home-mcron)
+                (extensions
+                 (list (service-extension
+                        home-shepherd-service-type
+                        home-mcron-shepherd-services)
+                       (service-extension
+                        home-profile-service-type
+                        home-mcron-profile)))
+                (compose concatenate)
+                (extend home-mcron-extend)
+                (default-value (home-mcron-configuration))
+                (description
+                 "Install and configure the GNU mcron cron job manager.")))
diff --git a/gnu/home/services/shells.scm b/gnu/home/services/shells.scm
new file mode 100644
index 0000000000..ca7f4ac0ad
--- /dev/null
+++ b/gnu/home/services/shells.scm
@@ -0,0 +1,689 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;;
+;;; 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 home services shells)
+  #:use-module (gnu services configuration)
+  #:use-module (gnu home services utils)
+  #:use-module (gnu home services)
+  #:use-module (gnu packages shells)
+  #:use-module (gnu packages bash)
+  #:use-module (guix gexp)
+  #:use-module (guix packages)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
+  #:use-module (ice-9 match)
+
+  #:export (home-shell-profile-service-type
+            home-shell-profile-configuration
+
+            home-bash-service-type
+            home-bash-configuration
+            home-bash-extension
+
+            home-zsh-service-type
+            home-zsh-configuration
+            home-zsh-extension
+
+            home-fish-service-type
+            home-fish-configuration
+            home-fish-extension))
+
+;;; Commentary:
+;;;
+;;; This module contains shell related services like Zsh.
+;;;
+;;; Code:
+
+
+;;;
+;;; Shell profile.
+;;;
+
+(define path? string?)
+(define (serialize-path field-name val) val)
+
+(define-configuration home-shell-profile-configuration
+  (profile
+   (text-config '())
+   "\
+@code{home-shell-profile} is instantiated automatically by
+@code{home-environment}, DO NOT create this service manually, it can
+only be extended.
+
+@code{profile} is a list of file-like objects, which will go to
+@file{~/.profile}.  By default @file{~/.profile} contains the
+initialization code, which have to be evaluated by login shell to make
+home-environment's profile available to the user, but other commands
+can be added to the file if it is really necessary.
+
+In most cases shell's configuration files are preferred places for
+user's customizations.  Extend home-shell-profile service only if you
+really know what you do."))
+
+(define (add-shell-profile-file config)
+  `(("profile"
+     ,(mixed-text-file
+       "shell-profile"
+       "\
+HOME_ENVIRONMENT=$HOME/.guix-home
+. $HOME_ENVIRONMENT/setup-environment
+$HOME_ENVIRONMENT/on-first-login\n"
+       (serialize-configuration
+        config
+        (filter-configuration-fields
+         home-shell-profile-configuration-fields '(profile)))))))
+
+(define (add-profile-extensions config extensions)
+  (home-shell-profile-configuration
+   (inherit config)
+   (profile
+    (append (home-shell-profile-configuration-profile config)
+            extensions))))
+
+(define home-shell-profile-service-type
+  (service-type (name 'home-shell-profile)
+                (extensions
+                 (list (service-extension
+                        home-files-service-type
+                        add-shell-profile-file)))
+                (compose concatenate)
+                (extend add-profile-extensions)
+                (default-value (home-shell-profile-configuration))
+                (description "Create @file{~/.profile}, which is used
+for environment initialization of POSIX compliant login shells.  This
+service type can be extended with a list of file-like objects.")))
+
+(define (serialize-boolean field-name val) "")
+(define (serialize-posix-env-vars field-name val)
+  #~(string-append
+     #$@(map
+         (match-lambda
+           ((key . #f)
+            "")
+           ((key . #t)
+            #~(string-append "export " #$key "\n"))
+           ((key . value)
+            #~(string-append "export " #$key "=" #$value "\n")))
+         val)))
+
+
+;;;
+;;; Zsh.
+;;;
+
+(define-configuration home-zsh-configuration
+  (package
+    (package zsh)
+    "The Zsh package to use.")
+  (xdg-flavor?
+   (boolean #t)
+   "Place all the configs to @file{$XDG_CONFIG_HOME/zsh}.  Makes
+@file{~/.zshenv} to set @env{ZDOTDIR} to @file{$XDG_CONFIG_HOME/zsh}.
+Shell startup process will continue with
+@file{$XDG_CONFIG_HOME/zsh/.zshenv}.")
+  (environment-variables
+   (alist '())
+   "Association list of environment variables to set for the Zsh session."
+   serialize-posix-env-vars)
+  (zshenv
+   (text-config '())
+   "List of file-like objects, which will be added to @file{.zshenv}.
+Used for setting user's shell environment variables.  Must not contain
+commands assuming the presence of tty or producing output.  Will be
+read always.  Will be read before any other file in @env{ZDOTDIR}.")
+  (zprofile
+   (text-config '())
+   "List of file-like objects, which will be added to @file{.zprofile}.
+Used for executing user's commands at start of login shell (In most
+cases the shell started on tty just after login).  Will be read before
+@file{.zlogin}.")
+  (zshrc
+   (text-config '())
+   "List of file-like objects, which will be added to @file{.zshrc}.
+Used for executing user's commands at start of interactive shell (The
+shell for interactive usage started by typing @code{zsh} or by
+terminal app or any other program).")
+  (zlogin
+   (text-config '())
+   "List of file-like objects, which will be added to @file{.zlogin}.
+Used for executing user's commands at the end of starting process of
+login shell.")
+  (zlogout
+   (text-config '())
+   "List of file-like objects, which will be added to @file{.zlogout}.
+Used for executing user's commands at the exit of login shell.  It
+won't be read in some cases (if the shell terminates by exec'ing
+another process for example)."))
+
+(define (add-zsh-configuration config)
+  (let* ((xdg-flavor? (home-zsh-configuration-xdg-flavor? config)))
+
+    (define prefix-file
+      (cut string-append
+        (if xdg-flavor?
+            "config/zsh/."
+            "") <>))
+
+    (define (filter-fields field)
+      (filter-configuration-fields home-zsh-configuration-fields
+                                   (list field)))
+
+    (define (serialize-field field)
+      (serialize-configuration
+       config
+       (filter-fields field)))
+
+    (define (file-if-not-empty field)
+      (let ((file-name (symbol->string field))
+            (field-obj (car (filter-fields field))))
+        (if (not (null? ((configuration-field-getter field-obj) config)))
+            `(,(prefix-file file-name)
+              ,(mixed-text-file
+                file-name
+                (serialize-field field)))
+            '())))
+
+    (filter
+     (compose not null?)
+     `(,(if xdg-flavor?
+            `("zshenv"
+              ,(mixed-text-file
+                "auxiliary-zshenv"
+                (if xdg-flavor?
+                    "source ${XDG_CONFIG_HOME:-$HOME/.config}/zsh/.zshenv\n"
+                    "")))
+            '())
+       (,(prefix-file "zshenv")
+        ,(mixed-text-file
+          "zshenv"
+          (if xdg-flavor?
+              "export ZDOTDIR=${XDG_CONFIG_HOME:-$HOME/.config}/zsh\n"
+              "")
+          (serialize-field 'zshenv)
+          (serialize-field 'environment-variables)))
+       (,(prefix-file "zprofile")
+        ,(mixed-text-file
+          "zprofile"
+          "\
+# Setups system and user profiles and related variables
+source /etc/profile
+# Setups home environment profile
+source ~/.profile
+
+# It's only necessary if zsh is a login shell, otherwise profiles will
+# be already sourced by bash
+"
+          (serialize-field 'zprofile)))
+
+       ,@(list (file-if-not-empty 'zshrc)
+               (file-if-not-empty 'zlogin)
+               (file-if-not-empty 'zlogout))))))
+
+(define (add-zsh-packages config)
+  (list (home-zsh-configuration-package config)))
+
+(define-configuration/no-serialization home-zsh-extension
+  (environment-variables
+   (alist '())
+   "Association list of environment variables to set.")
+  (zshrc
+   (text-config '())
+   "List of file-like objects.")
+  (zshenv
+   (text-config '())
+   "List of file-like objects.")
+  (zprofile
+   (text-config '())
+   "List of file-like objects.")
+  (zlogin
+   (text-config '())
+   "List of file-like objects.")
+  (zlogout
+   (text-config '())
+   "List of file-like objects."))
+
+(define (home-zsh-extensions original-config extension-configs)
+  (home-zsh-configuration
+   (inherit original-config)
+   (environment-variables
+    (append (home-zsh-configuration-environment-variables original-config)
+            (append-map
+             home-zsh-extension-environment-variables extension-configs)))
+   (zshrc
+    (append (home-zsh-configuration-zshrc original-config)
+            (append-map
+             home-zsh-extension-zshrc extension-configs)))
+   (zshenv
+    (append (home-zsh-configuration-zshenv original-config)
+            (append-map
+             home-zsh-extension-zshenv extension-configs)))
+   (zprofile
+    (append (home-zsh-configuration-zprofile original-config)
+            (append-map
+             home-zsh-extension-zprofile extension-configs)))
+   (zlogin
+    (append (home-zsh-configuration-zlogin original-config)
+            (append-map
+             home-zsh-extension-zlogin extension-configs)))
+   (zlogout
+    (append (home-zsh-configuration-zlogout original-config)
+            (append-map
+             home-zsh-extension-zlogout extension-configs)))))
+
+(define home-zsh-service-type
+  (service-type (name 'home-zsh)
+                (extensions
+                 (list (service-extension
+                        home-files-service-type
+                        add-zsh-configuration)
+                       (service-extension
+                        home-profile-service-type
+                        add-zsh-packages)))
+                (compose identity)
+                (extend home-zsh-extensions)
+                (default-value (home-zsh-configuration))
+                (description "Install and configure Zsh.")))
+
+
+;;;
+;;; Bash.
+;;;
+
+(define (bash-serialize-aliases field-name val)
+  #~(string-append
+     #$@(map
+         (match-lambda
+           ((key . #f)
+            "")
+           ((key . #t)
+            #~(string-append "alias " #$key "\n"))
+           ((key . value)
+            #~(string-append "alias " #$key "=\"" #$value "\"\n")))
+         val)))
+
+(define-configuration home-bash-configuration
+  (package
+   (package bash)
+   "The Bash package to use.")
+  (guix-defaults?
+   (boolean #t)
+   "Add sane defaults like reading @file{/etc/bashrc} and coloring the output of
+@command{ls} to the end of the @file{.bashrc} file.")
+  (environment-variables
+   (alist '())
+   "Association list of environment variables to set for the Bash session.  The
+rules for the @code{home-environment-variables-service-type} apply
+here (@pxref{Essential Home Services}).  The contents of this field will be
+added after the contents of the @code{bash-profile} field."
+   serialize-posix-env-vars)
+  (aliases
+   (alist '())
+   "Association list of aliases to set for the Bash session.  The aliases will be
+defined after the contents of the @code{bashrc} field has been put in the
+@file{.bashrc} file.  The alias will automatically be quoted, so something line
+this:
+
+@lisp
+'((\"ls\" . \"ls -alF\"))
+@end lisp
+
+turns into
+
+@example
+alias ls=\"ls -alF\"
+@end example"
+   bash-serialize-aliases)
+  (bash-profile
+   (text-config '())
+   "List of file-like objects, which will be added to @file{.bash_profile}.
+Used for executing user's commands at start of login shell (In most
+cases the shell started on tty just after login).  @file{.bash_login}
+won't be ever read, because @file{.bash_profile} always present.")
+  (bashrc
+   (text-config '())
+   "List of file-like objects, which will be added to @file{.bashrc}.
+Used for executing user's commands at start of interactive shell (The
+shell for interactive usage started by typing @code{bash} or by
+terminal app or any other program).")
+  (bash-logout
+   (text-config '())
+   "List of file-like objects, which will be added to @file{.bash_logout}.
+Used for executing user's commands at the exit of login shell.  It
+won't be read in some cases (if the shell terminates by exec'ing
+another process for example)."))
+
+;; TODO: Use value from (gnu system shadow)
+(define guix-bashrc
+  "\
+# Bash initialization for interactive non-login shells and
+# for remote shells (info \"(bash) Bash Startup Files\").
+
+# Export 'SHELL' to child processes.  Programs such as 'screen'
+# honor it and otherwise use /bin/sh.
+export SHELL
+
+if [[ $- != *i* ]]
+then
+    # We are being invoked from a non-interactive shell.  If this
+    # is an SSH session (as in \"ssh host command\"), source
+    # /etc/profile so we get PATH and other essential variables.
+    [[ -n \"$SSH_CLIENT\" ]] && source /etc/profile
+
+    # Don't do anything else.
+    return
+fi
+
+# Source the system-wide file.
+if [[ -e /etc/bashrc ]]; then
+    source /etc/bashrc
+fi
+
+# Adjust the prompt depending on whether we're in 'guix environment'.
+if [ -n \"$GUIX_ENVIRONMENT\" ]
+then
+    PS1='\\u@\\h \\w [env]\\$ '
+else
+    PS1='\\u@\\h \\w\\$ '
+fi
+alias ls='ls -p --color=auto'
+alias ll='ls -l'
+alias grep='grep --color=auto'\n")
+
+(define (add-bash-configuration config)
+  (define (filter-fields field)
+    (filter-configuration-fields home-bash-configuration-fields
+                                 (list field)))
+
+  (define (serialize-field field)
+    (serialize-configuration
+     config
+     (filter-fields field)))
+
+  (define* (file-if-not-empty field #:optional (extra-content #f))
+    (let ((file-name (symbol->string field))
+          (field-obj (car (filter-fields field))))
+      (if (or extra-content
+              (not (null? ((configuration-field-getter field-obj) config))))
+          `(,(object->snake-case-string file-name)
+            ,(apply mixed-text-file
+                    (object->snake-case-string file-name)
+                    (append (or extra-content '())
+                        (list (serialize-field field)))))
+          '())))
+
+  (filter
+   (compose not null?)
+   `(("bash_profile"
+      ,(mixed-text-file
+        "bash_profile"
+        "\
+# Setups system and user profiles and related variables
+# /etc/profile will be sourced by bash automatically
+# Setups home environment profile
+if [ -f ~/.profile ]; then source ~/.profile; fi
+
+# Honor per-interactive-shell startup file
+if [ -f ~/.bashrc ]; then source ~/.bashrc; fi
+"
+        (serialize-field 'bash-profile)
+        (serialize-field 'environment-variables)))
+
+     ,@(list (file-if-not-empty
+              'bashrc
+              (if (home-bash-configuration-guix-defaults? config)
+                  (list (serialize-field 'aliases) guix-bashrc)
+                  (list (serialize-field 'alises))))
+             (file-if-not-empty 'bash-logout)))))
+
+(define (add-bash-packages config)
+  (list (home-bash-configuration-package config)))
+
+(define-configuration/no-serialization home-bash-extension
+  (environment-variables
+   (alist '())
+   "Additional environment variables to set.  These will be combined with the
+environment variables from other extensions and the base service to form one
+coherent block of environment variables.")
+  (aliases
+   (alist '())
+   "Additional aliases to set.  These will be combined with the aliases from
+other extensions and the base service.")
+  (bash-profile
+   (text-config '())
+   "Additional text blocks to add to @file{.bash_profile}, which will be combined
+with text blocks from other extensions and the base service.")
+  (bashrc
+   (text-config '())
+   "Additional text blocks to add to @file{.bashrc}, which will be combined
+with text blocks from other extensions and the base service.")
+  (bash-logout
+   (text-config '())
+   "Additional text blocks to add to @file{.bash_logout}, which will be combined
+with text blocks from other extensions and the base service."))
+
+(define (home-bash-extensions original-config extension-configs)
+  (match original-config
+    (($ <home-bash-configuration> _ _ _ environment-variables aliases
+                                  bash-profile bashrc bash-logout)
+     (home-bash-configuration
+      (inherit original-config)
+      (environment-variables
+       (append environment-variables
+               (append-map
+                home-bash-extension-environment-variables extension-configs)))
+      (aliases
+       (append aliases
+               (append-map
+                home-bash-extension-aliases extension-configs)))
+      (bash-profile
+       (append bash-profile
+               (append-map
+                home-bash-extension-bash-profile extension-configs)))
+      (bashrc
+       (append bashrc
+               (append-map
+                home-bash-extension-bashrc extension-configs)))
+      (bash-logout
+       (append bash-logout
+               (append-map
+                home-bash-extension-bash-logout extension-configs)))))))
+
+(define home-bash-service-type
+  (service-type (name 'home-bash)
+                (extensions
+                 (list (service-extension
+                        home-files-service-type
+                        add-bash-configuration)
+                       (service-extension
+                        home-profile-service-type
+                        add-bash-packages)))
+                (compose identity)
+                (extend home-bash-extensions)
+                (default-value (home-bash-configuration))
+                (description "Install and configure GNU Bash.")))
+
+
+;;;
+;;; Fish.
+;;;
+
+(define (serialize-fish-aliases field-name val)
+  #~(string-append
+     #$@(map (match-lambda
+               ((key . value)
+                #~(string-append "alias " #$key " \"" #$value "\"\n"))
+               (_ ""))
+             val)))
+
+(define (serialize-fish-abbreviations field-name val)
+  #~(string-append
+     #$@(map (match-lambda
+               ((key . value)
+                #~(string-append "abbr --add " #$key " " #$value "\n"))
+               (_ ""))
+             val)))
+
+(define (serialize-fish-env-vars field-name val)
+  #~(string-append
+     #$@(map (match-lambda
+               ((key . #f)
+                "")
+               ((key . #t)
+                #~(string-append "set " #$key "\n"))
+               ((key . value)
+                #~(string-append "set " #$key " "  #$value "\n")))
+             val)))
+
+(define-configuration home-fish-configuration
+  (package
+    (package fish)
+    "The Fish package to use.")
+  (config
+   (text-config '())
+   "List of file-like objects, which will be added to
+@file{$XDG_CONFIG_HOME/fish/config.fish}.")
+  (environment-variables
+   (alist '())
+   "Association list of environment variables to set in Fish."
+   serialize-fish-env-vars)
+  (aliases
+   (alist '())
+   "Association list of aliases for Fish, both the key and the value
+should be a string.  An alias is just a simple function that wraps a
+command, If you want something more akin to @dfn{aliases} in POSIX
+shells, see the @code{abbreviations} field."
+   serialize-fish-aliases)
+  (abbreviations
+   (alist '())
+   "Association list of abbreviations for Fish.  These are words that,
+when typed in the shell, will automatically expand to the full text."
+   serialize-fish-abbreviations))
+
+(define (fish-files-service config)
+  `(("config/fish/config.fish"
+     ,(mixed-text-file
+       "fish-config.fish"
+       #~(string-append "\
+# if we haven't sourced the login config, do it
+status --is-login; and not set -q __fish_login_config_sourced
+and begin
+
+  set --prepend fish_function_path "
+                        #$fish-foreign-env
+                        "/share/fish/functions
+  fenv source $HOME/.profile
+  set -e fish_function_path[1]
+
+  set -g __fish_login_config_sourced 1
+
+end\n\n")
+       (serialize-configuration
+        config
+        home-fish-configuration-fields)))))
+
+(define (fish-profile-service config)
+  (list (home-fish-configuration-package config)))
+
+(define-configuration/no-serialization home-fish-extension
+  (config
+   (text-config '())
+   "List of file-like objects for extending the Fish initialization file.")
+  (environment-variables
+   (alist '())
+   "Association list of environment variables to set.")
+  (aliases
+   (alist '())
+   "Association list of Fish aliases.")
+  (abbreviations
+   (alist '())
+   "Association list of Fish abbreviations."))
+
+(define (home-fish-extensions original-config extension-configs)
+  (home-fish-configuration
+   (inherit original-config)
+   (config
+    (append (home-fish-configuration-config original-config)
+            (append-map
+             home-fish-extension-config extension-configs)))
+   (environment-variables
+    (append (home-fish-configuration-environment-variables original-config)
+            (append-map
+             home-fish-extension-environment-variables extension-configs)))
+   (aliases
+    (append (home-fish-configuration-aliases original-config)
+            (append-map
+             home-fish-extension-aliases extension-configs)))
+   (abbreviations
+    (append (home-fish-configuration-abbreviations original-config)
+            (append-map
+             home-fish-extension-abbreviations extension-configs)))))
+
+;; TODO: Support for generating completion files
+;; TODO: Support for installing plugins
+(define home-fish-service-type
+  (service-type (name 'home-fish)
+                (extensions
+                 (list (service-extension
+                        home-files-service-type
+                        fish-files-service)
+                       (service-extension
+                        home-profile-service-type
+                        fish-profile-service)))
+                (compose identity)
+                (extend home-fish-extensions)
+                (default-value (home-fish-configuration))
+                (description "\
+Install and configure Fish, the friendly interactive shell.")))
+
+
+(define (generate-home-shell-profile-documentation)
+  (generate-documentation
+   `((home-shell-profile-configuration
+      ,home-shell-profile-configuration-fields))
+   'home-shell-profile-configuration))
+
+(define (generate-home-bash-documentation)
+  (string-append
+   (generate-documentation
+    `((home-bash-configuration
+       ,home-bash-configuration-fields))
+    'home-bash-configuration)
+   "\n\n"
+   (generate-documentation
+    `((home-bash-extension
+       ,home-bash-extension-fields))
+    'home-bash-extension)))
+
+(define (generate-home-zsh-documentation)
+  (generate-documentation
+   `((home-zsh-configuration
+      ,home-zsh-configuration-fields))
+   'home-zsh-configuration))
+
+(define (generate-home-fish-documentation)
+  (string-append
+   (generate-documentation
+    `((home-fish-configuration
+       ,home-fish-configuration-fields))
+    'home-fish-configuration)
+   "\n\n"
+   (generate-documentation
+    `((home-fish-extension
+       ,home-fish-extension-fields))
+    'home-fish-extension)))
diff --git a/gnu/home/services/shepherd.scm b/gnu/home/services/shepherd.scm
new file mode 100644
index 0000000000..7a9cc064bb
--- /dev/null
+++ b/gnu/home/services/shepherd.scm
@@ -0,0 +1,134 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;;
+;;; 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 home services shepherd)
+  #:use-module (gnu home services)
+  #:use-module (gnu packages admin)
+  #:use-module (gnu services shepherd)
+  #:use-module (guix sets)
+  #:use-module (guix gexp)
+  #:use-module (guix records)
+
+  #:use-module (srfi srfi-1)
+
+  #:export (home-shepherd-service-type
+            home-shepherd-configuration)
+  #:re-export (shepherd-service
+               shepherd-action))
+
+(define-record-type* <home-shepherd-configuration>
+  home-shepherd-configuration make-home-shepherd-configuration
+  home-shepherd-configuration?
+  (shepherd home-shepherd-configuration-shepherd
+            (default shepherd)) ; package
+  (auto-start? home-shepherd-configuration-auto-start?
+               (default #t))
+  (services home-shepherd-configuration-services
+            (default '())))
+
+(define (home-shepherd-configuration-file services shepherd)
+  "Return the shepherd configuration file for SERVICES.  SHEPHERD is used
+as shepherd package."
+  (assert-valid-graph services)
+
+  (let ((files (map shepherd-service-file services))
+        ;; TODO: Add compilation of services, it can improve start
+        ;; time.
+        ;; (scm->go (cute scm->go <> shepherd))
+        )
+    (define config
+      #~(begin
+          (use-modules (srfi srfi-34)
+                       (system repl error-handling))
+          (apply
+           register-services
+           (map
+            (lambda (file) (load file))
+            '#$files))
+          (action 'root 'daemonize)
+          (format #t "Starting services...~%")
+          (for-each
+           (lambda (service) (start service))
+           '#$(append-map shepherd-service-provision
+                          (filter shepherd-service-auto-start?
+                                  services)))
+          (newline)))
+
+    (scheme-file "shepherd.conf" config)))
+
+(define (launch-shepherd-gexp config)
+  (let* ((shepherd (home-shepherd-configuration-shepherd config))
+         (services (home-shepherd-configuration-services config)))
+    (if (home-shepherd-configuration-auto-start? config)
+        (with-imported-modules '((guix build utils))
+          #~(let ((log-dir (or (getenv "XDG_LOG_HOME")
+                               (format #f "~a/.local/var/log" (getenv "HOME")))))
+              ((@ (guix build utils) mkdir-p) log-dir)
+              (system*
+               #$(file-append shepherd "/bin/shepherd")
+               "--logfile"
+               (string-append
+                log-dir
+                "/shepherd.log")
+               "--config"
+               #$(home-shepherd-configuration-file services shepherd))))
+        #~"")))
+
+(define (reload-configuration-gexp config)
+  (let* ((shepherd (home-shepherd-configuration-shepherd config))
+         (services (home-shepherd-configuration-services config)))
+    #~(system*
+       #$(file-append shepherd "/bin/herd")
+       "load" "root"
+       #$(home-shepherd-configuration-file services shepherd))))
+
+(define (ensure-shepherd-gexp config)
+  #~(if (file-exists?
+         (string-append
+          (or (getenv "XDG_RUNTIME_DIR")
+              (format #f "/run/user/~a" (getuid)))
+          "/shepherd/socket"))
+        #$(reload-configuration-gexp config)
+        #$(launch-shepherd-gexp config)))
+
+(define-public home-shepherd-service-type
+  (service-type (name 'home-shepherd)
+                (extensions
+                 (list (service-extension
+                        home-run-on-first-login-service-type
+                        launch-shepherd-gexp)
+                       (service-extension
+                        home-activation-service-type
+                        ensure-shepherd-gexp)
+                       (service-extension
+                        home-profile-service-type
+                        (lambda (config)
+                          `(,(home-shepherd-configuration-shepherd config))))))
+                (compose concatenate)
+                (extend
+                 (lambda (config extra-services)
+                   (home-shepherd-configuration
+                    (inherit config)
+                    (services
+                     (append (home-shepherd-configuration-services config)
+                             extra-services)))))
+                (default-value (home-shepherd-configuration))
+                (description "Configure and install userland Shepherd.")))
+
+
diff --git a/gnu/home/services/symlink-manager.scm b/gnu/home/services/symlink-manager.scm
new file mode 100644
index 0000000000..f4251e1e6a
--- /dev/null
+++ b/gnu/home/services/symlink-manager.scm
@@ -0,0 +1,247 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;;
+;;; 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 home services symlink-manager)
+  #:use-module (gnu home services)
+  #:use-module (guix gexp)
+
+  #:export (home-symlink-manager-service-type))
+
+;;; Comment:
+;;;
+;;; symlink-manager cares about configuration files: it backs up files
+;;; created by user, removes symlinks and directories created by a
+;;; previous generation, and creates new directories and symlinks to
+;;; configuration files according to the content of files/ directory
+;;; (created by home-files-service) of the current home environment
+;;; generation.
+;;;
+;;; Code:
+
+(define (update-symlinks-script)
+  (program-file
+   "update-symlinks"
+   #~(begin
+       (use-modules (ice-9 ftw)
+                    (ice-9 curried-definitions)
+                    (ice-9 match)
+                    (srfi srfi-1))
+       (define ((simplify-file-tree parent) file)
+         "Convert the result produced by `file-system-tree' to less
+verbose and more suitable for further processing format.
+
+Extract dir/file info from stat and compose a relative path to the
+root of the file tree.
+
+Sample output:
+
+((dir . \".\")
+ ((dir . \"config\")
+  ((dir . \"config/fontconfig\")
+   (file . \"config/fontconfig/fonts.conf\"))
+  ((dir . \"config/isync\")
+   (file . \"config/isync/mbsyncrc\"))))
+"
+         (match file
+           ((name stat) `(file . ,(string-append parent name)))
+           ((name stat children ...)
+            (cons `(dir . ,(string-append parent name))
+                  (map (simplify-file-tree
+                        (if (equal? name ".")
+                            ""
+                            (string-append parent name "/")))
+                       children)))))
+
+       (define ((file-tree-traverse preordering) node)
+         "Traverses the file tree in different orders, depending on PREORDERING.
+
+if PREORDERING is @code{#t} resulting list will contain directories
+before files located in those directories, otherwise directory will
+appear only after all nested items already listed."
+         (let ((prepend (lambda (a b) (append b a))))
+           (match node
+             (('file . path) (list node))
+             ((('dir . path) . rest)
+              ((if preordering append prepend)
+               (list (cons 'dir path))
+               (append-map (file-tree-traverse preordering) rest))))))
+
+       (use-modules (guix build utils))
+
+       (let* ((config-home    (or (getenv "XDG_CONFIG_HOME")
+                                  (string-append (getenv "HOME") "/.config")))
+
+              (he-path (string-append (getenv "HOME") "/.guix-home"))
+              (new-he-path (string-append he-path ".new"))
+              (new-home (getenv "GUIX_NEW_HOME"))
+              (old-home (getenv "GUIX_OLD_HOME"))
+
+              (new-files-path (string-append new-home "/files"))
+              ;; Trailing dot is required, because files itself is symlink and
+              ;; to make file-system-tree works it should be a directory.
+              (new-files-dir-path (string-append new-files-path "/."))
+
+              (home-path (getenv "HOME"))
+              (backup-dir (string-append home-path "/"
+                                         (number->string (current-time))
+                                         "-guix-home-legacy-configs-backup"))
+
+              (old-tree (if old-home
+                          ((simplify-file-tree "")
+                           (file-system-tree
+                            (string-append old-home "/files/.")))
+                          #f))
+              (new-tree ((simplify-file-tree "")
+                         (file-system-tree new-files-dir-path)))
+
+              (get-source-path
+               (lambda (path)
+                 (readlink (string-append new-files-path "/" path))))
+
+              (get-target-path
+               (lambda (path)
+                 (string-append home-path "/." path)))
+
+              (get-backup-path
+               (lambda (path)
+                 (string-append backup-dir "/." path)))
+
+              (directory?
+               (lambda (path)
+                 (equal? (stat:type (stat path)) 'directory)))
+
+              (empty-directory?
+               (lambda (dir)
+                 (equal? (scandir dir) '("." ".."))))
+
+              (symlink-to-store?
+               (lambda (path)
+                 (and
+                  (equal? (stat:type (lstat path)) 'symlink)
+                  (store-file-name? (readlink path)))))
+
+              (backup-file
+               (lambda (path)
+                 (mkdir-p backup-dir)
+                 (format #t "Backing up ~a..." (get-target-path path))
+                 (mkdir-p (dirname (get-backup-path path)))
+                 (rename-file (get-target-path path) (get-backup-path path))
+                 (display " done\n")))
+
+              (cleanup-symlinks
+               (lambda ()
+                 (let ((to-delete ((file-tree-traverse #f) old-tree)))
+                   (display
+                    "Cleaning up symlinks from previous home-environment.\n\n")
+                   (map
+                    (match-lambda
+                      (('dir . ".")
+                       (display "Cleanup finished.\n\n"))
+
+                      (('dir . path)
+                       (if (and
+                            (file-exists? (get-target-path path))
+                            (directory? (get-target-path path))
+                            (empty-directory? (get-target-path path)))
+                           (begin
+                             (format #t "Removing ~a..."
+                                     (get-target-path path))
+                             (rmdir (get-target-path path))
+                             (display " done\n"))
+                           (format
+                            #t "Skipping ~a (not an empty directory)... done\n"
+                            (get-target-path path))))
+
+                      (('file . path)
+                       (when (file-exists? (get-target-path path))
+                         ;; DO NOT remove the file if it is no longer
+                         ;; a symlink to the store, it will be backed
+                         ;; up later during create-symlinks phase.
+                         (if (symlink-to-store? (get-target-path path))
+                             (begin
+                               (format #t "Removing ~a..." (get-target-path path))
+                               (delete-file (get-target-path path))
+                               (display " done\n"))
+                             (format
+                              #t
+                              "Skipping ~a (not a symlink to store)... done\n"
+                              (get-target-path path))))))
+                    to-delete))))
+
+              (create-symlinks
+               (lambda ()
+                 (let ((to-create ((file-tree-traverse #t) new-tree)))
+                   (map
+                    (match-lambda
+                      (('dir . ".")
+                       (display
+                        "New symlinks to home-environment will be created soon.\n")
+                       (format
+                        #t "All conflicting files will go to ~a.\n\n" backup-dir))
+
+                      (('dir . path)
+                       (let ((target-path (get-target-path path)))
+                         (when (and (file-exists? target-path)
+                                    (not (directory? target-path)))
+                           (backup-file path))
+
+                         (if (file-exists? target-path)
+                             (format
+                              #t "Skipping   ~a (directory already exists)... done\n"
+                              target-path)
+                             (begin
+                               (format #t "Creating   ~a..." target-path)
+                               (mkdir target-path)
+                               (display " done\n")))))
+
+                      (('file . path)
+                       (when (file-exists? (get-target-path path))
+                         (backup-file path))
+                       (format #t "Symlinking ~a -> ~a..."
+                               (get-target-path path) (get-source-path path))
+                       (symlink (get-source-path path) (get-target-path path))
+                       (display " done\n")))
+                    to-create)))))
+
+         (when old-tree
+           (cleanup-symlinks))
+
+         (create-symlinks)
+
+         (symlink new-home new-he-path)
+         (rename-file new-he-path he-path)
+
+         (display " done\nFinished updating symlinks.\n\n")))))
+
+
+(define (update-symlinks-gexp _)
+  #~(primitive-load #$(update-symlinks-script)))
+
+(define home-symlink-manager-service-type
+  (service-type (name 'home-symlink-manager)
+                (extensions
+                 (list
+                  (service-extension
+                   home-activation-service-type
+                   update-symlinks-gexp)))
+                (default-value #f)
+                (description "Provide an @code{update-symlinks}
+script, which creates symlinks to configuration files and directories
+on every activation.  If an existing file would be overwritten by a
+symlink, backs up that file first.")))
diff --git a/gnu/home/services/utils.scm b/gnu/home/services/utils.scm
new file mode 100644
index 0000000000..3ce32f80c0
--- /dev/null
+++ b/gnu/home/services/utils.scm
@@ -0,0 +1,105 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
+;;;
+;;; 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 home services utils)
+  #:use-module (ice-9 string-fun)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
+
+  #:export (maybe-object->string
+            object->snake-case-string
+            object->camel-case-string
+            list->human-readable-list))
+
+(define (maybe-object->string object)
+  "Like @code{object->string} but don't do anything if OBJECT already is
+a string."
+  (if (string? object)
+      object
+      (object->string object)))
+
+;; Snake case: <https://en.wikipedia.org/wiki/Snake_case>
+(define* (object->snake-case-string object #:optional (style 'lower))
+  "Convert the object OBJECT to the equivalent string in ``snake
+case''.  STYLE can be three `@code{lower}', `@code{upper}', or
+`@code{capitalize}', defaults to `@code{lower}'.
+
+@example
+(object->snake-case-string 'variable-name 'upper)
+@result{} \"VARIABLE_NAME\" @end example"
+  (if (not (member style '(lower upper capitalize)))
+      (error 'invalid-style (format #f "~a is not a valid style" style))
+      (let ((stringified (maybe-object->string object)))
+        (string-replace-substring
+         (cond
+          ((equal? style 'lower) stringified)
+          ((equal? style 'upper) (string-upcase stringified))
+          (else (string-capitalize stringified)))
+         "-" "_"))))
+
+(define* (object->camel-case-string object #:optional (style 'lower))
+  "Convert the object OBJECT to the equivalent string in ``camel case''.
+STYLE can be three `@code{lower}', `@code{upper}', defaults to
+`@code{lower}'.
+
+@example
+(object->camel-case-string 'variable-name 'upper)
+@result{} \"VariableName\"
+@end example"
+  (if (not (member style '(lower upper)))
+      (error 'invalid-style (format #f "~a is not a valid style" style))
+      (let ((stringified (maybe-object->string object)))
+        (cond
+         ((eq? style 'upper)
+          (string-concatenate
+           (map string-capitalize
+                (string-split stringified (cut eqv? <> #\-)))))
+         ((eq? style 'lower)
+          (let ((splitted-string (string-split stringified (cut eqv? <> #\-))))
+            (string-concatenate
+             (cons (first splitted-string)
+                   (map string-capitalize
+                        (cdr splitted-string))))))))))
+
+(define* (list->human-readable-list lst
+                                    #:key
+                                    (cumulative? #f)
+                                    (proc identity))
+  "Turn a list LST into a sequence of terms readable by humans.
+If CUMULATIVE? is @code{#t}, use ``and'', otherwise use ``or'' before
+the last term.
+
+PROC is a procedure to apply to each of the elements of a list before
+turning them into a single human readable string.
+
+@example
+(list->human-readable-list '(1 4 9) #:cumulative? #t #:proc sqrt)
+@result{} \"1, 2, and 3\"
+@end example
+
+yields:"
+  (let* ((word (if cumulative? "and " "or "))
+         (init (append (drop-right lst 1))))
+    (format #f "~a" (string-append
+                     (string-join
+                      (map (compose maybe-object->string proc) init)
+                      ", " 'suffix)
+                     word
+                     (maybe-object->string (proc (last lst)))))))
+
diff --git a/gnu/home/services/xdg.scm b/gnu/home/services/xdg.scm
new file mode 100644
index 0000000000..d230dd7665
--- /dev/null
+++ b/gnu/home/services/xdg.scm
@@ -0,0 +1,477 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;;
+;;; 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 home services xdg)
+  #:use-module (gnu services configuration)
+  #:use-module (gnu home services)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu home services utils)
+  #:use-module (guix gexp)
+  #:use-module (guix records)
+  #:use-module (guix i18n)
+  #:use-module (guix diagnostics)
+
+  #:use-module (ice-9 match)
+  #:use-module (srfi srfi-1)
+  #:use-module (rnrs enums)
+
+  #:export (home-xdg-base-directories-service-type
+            home-xdg-base-directories-configuration
+            home-xdg-base-directories-configuration?
+
+            home-xdg-user-directories-service-type
+            home-xdg-user-directories-configuration
+            home-xdg-user-directories-configuration?
+
+            xdg-desktop-action
+            xdg-desktop-entry
+            home-xdg-mime-applications-service-type
+            home-xdg-mime-applications-configuration))
+
+;;; Commentary:
+;;
+;; This module contains services related to XDG directories and
+;; applications.
+;;
+;; - XDG base directories
+;; - XDG user directories
+;; - XDG MIME applications
+;;
+;;; Code:
+
+
+;;;
+;;; XDG base directories.
+;;;
+
+(define (serialize-path field-name val) "")
+(define path? string?)
+
+(define-configuration home-xdg-base-directories-configuration
+  (cache-home
+   (path "$HOME/.cache")
+   "Base directory for programs to store user-specific non-essential
+(cached) data.  Files in this directory can be deleted anytime without
+loss of important data.")
+  (config-home
+   (path "$HOME/.config")
+   "Base directory for programs to store configuration files.
+Some programs store here log or state files, but it's not desired,
+this directory should contain static configurations.")
+  (data-home
+   (path "$HOME/.local/share")
+   "Base directory for programs to store architecture independent
+read-only shared data, analogus to @file{/usr/share}, but for user.")
+  (runtime-dir
+   (path "${XDG_RUNTIME_DIR:-/run/user/$UID}")
+   "Base directory for programs to store user-specific runtime files,
+like sockets.")
+  (log-home
+   (path "$HOME/.local/var/log")
+   "Base directory for programs to store log files, analogus to
+@file{/var/log}, but for user.  It is not a part of XDG Base Directory
+Specification, but helps to make implementation of home services more
+consistent.")
+  (state-home
+   (path "$HOME/.local/var/lib")
+   "Base directory for programs to store state files, like databases,
+analogus to @file{/var/lib}, but for user.  It is not a part of XDG
+Base Directory Specification, but helps to make implementation of home
+services more consistent."))
+
+(define (home-xdg-base-directories-environment-variables-service config)
+  (map
+   (lambda (field)
+     (cons (format
+            #f "XDG_~a"
+            (object->snake-case-string (configuration-field-name field) 'upper))
+           ((configuration-field-getter field) config)))
+   home-xdg-base-directories-configuration-fields))
+
+(define (ensure-xdg-base-dirs-on-activation config)
+  #~(map (lambda (xdg-base-dir-variable)
+           ((@@ (guix build utils) mkdir-p)
+            (getenv
+             xdg-base-dir-variable)))
+         '#$(map (lambda (field)
+                   (format
+                    #f "XDG_~a"
+                    (object->snake-case-string
+                     (configuration-field-name field) 'upper)))
+                 home-xdg-base-directories-configuration-fields)))
+
+(define (last-extension-or-cfg config extensions)
+  "Picks configuration value from last provided extension.  If there
+are no extensions use configuration instead."
+  (or (and (not (null? extensions)) (last extensions)) config))
+
+(define home-xdg-base-directories-service-type
+  (service-type (name 'home-xdg-base-directories)
+                (extensions
+                 (list (service-extension
+                        home-environment-variables-service-type
+                        home-xdg-base-directories-environment-variables-service)
+                       (service-extension
+                        home-activation-service-type
+                        ensure-xdg-base-dirs-on-activation)))
+                (default-value (home-xdg-base-directories-configuration))
+                (compose identity)
+                (extend last-extension-or-cfg)
+                (description "Configure XDG base directories.  This
+service introduces two additional variables @env{XDG_STATE_HOME},
+@env{XDG_LOG_HOME}.  They are not a part of XDG specification, at
+least yet, but are convenient to have, it improves the consistency
+between different home services.  The services of this service-type is
+instantiated by default, to provide non-default value, extend the
+service-type (using @code{simple-service} for example).")))
+
+(define (generate-home-xdg-base-directories-documentation)
+  (generate-documentation
+   `((home-xdg-base-directories-configuration
+      ,home-xdg-base-directories-configuration-fields))
+   'home-xdg-base-directories-configuration))
+
+
+;;;
+;;; XDG user directories.
+;;;
+
+(define (serialize-string field-name val)
+  ;; The path has to be quoted
+  (format #f "XDG_~a_DIR=\"~a\"\n"
+          (object->snake-case-string field-name 'upper) val))
+
+(define-configuration home-xdg-user-directories-configuration
+  (desktop
+   (string "$HOME/Desktop")
+   "Default ``desktop'' directory, this is what you see on your
+desktop when using a desktop environment,
+e.g. GNOME (@pxref{XWindow,,,guix.info}).")
+  (documents
+   (string "$HOME/Documents")
+   "Default directory to put documents like PDFs.")
+  (download
+   (string "$HOME/Downloads")
+   "Default directory downloaded files, this is where your Web-broser
+will put downloaded files in.")
+  (music
+   (string "$HOME/Music")
+   "Default directory for audio files.")
+  (pictures
+   (string "$HOME/Pictures")
+   "Default directory for pictures and images.")
+  (publicshare
+   (string "$HOME/Public")
+   "Default directory for shared files, which can be accessed by other
+users on local machine or via network.")
+  (templates
+   (string "$HOME/Templates")
+   "Default directory for templates.  They can be used by graphical
+file manager or other apps for creating new files with some
+pre-populated content.")
+  (videos
+   (string "$HOME/Videos")
+   "Default directory for videos."))
+
+(define (home-xdg-user-directories-files-service config)
+  `(("config/user-dirs.conf"
+     ,(mixed-text-file
+       "user-dirs.conf"
+       "enabled=False\n"))
+    ("config/user-dirs.dirs"
+     ,(mixed-text-file
+       "user-dirs.dirs"
+      (serialize-configuration
+       config
+       home-xdg-user-directories-configuration-fields)))))
+
+(define (home-xdg-user-directories-activation-service config)
+  (let ((dirs (map (lambda (field)
+                     ((configuration-field-getter field) config))
+                   home-xdg-user-directories-configuration-fields)))
+    #~(let ((ensure-dir
+             (lambda (path)
+               (mkdir-p
+                ((@@ (ice-9 string-fun) string-replace-substring)
+                 path "$HOME" (getenv "HOME"))))))
+        (display "Creating XDG user directories...")
+        (map ensure-dir '#$dirs)
+        (display " done\n"))))
+
+(define home-xdg-user-directories-service-type
+  (service-type (name 'home-xdg-user-directories)
+                (extensions
+                 (list (service-extension
+                        home-files-service-type
+                        home-xdg-user-directories-files-service)
+                       (service-extension
+                        home-activation-service-type
+                        home-xdg-user-directories-activation-service)))
+                (default-value (home-xdg-user-directories-configuration))
+                (description "Configure XDG user directories.  To
+disable a directory, point it to the $HOME.")))
+
+(define (generate-home-xdg-user-directories-documentation)
+  (generate-documentation
+   `((home-xdg-user-directories-configuration
+     ,home-xdg-user-directories-configuration-fields))
+   'home-xdg-user-directories-configuration))
+
+
+;;;
+;;; XDG MIME applications.
+;;;
+
+;; Example config
+;;
+;;  (home-xdg-mime-applications-configuration
+;;   (added '((x-scheme-handler/magnet . torrent.desktop)))
+;;   (default '((inode/directory . file.desktop)))
+;;   (removed '((inode/directory . thunar.desktop)))
+;;   (desktop-entries
+;;    (list (xdg-desktop-entry
+;;           (file "file")
+;;           (name "File manager")
+;;           (type 'application)
+;;           (config
+;;            '((exec . "emacsclient -c -a emacs %u"))))
+;;          (xdg-desktop-entry
+;;           (file "text")
+;;           (name "Text editor")
+;;           (type 'application)
+;;           (config
+;;            '((exec . "emacsclient -c -a emacs %u")))
+;;           (actions
+;;            (list (xdg-desktop-action
+;;                   (action 'create)
+;;                   (name "Create an action")
+;;                   (config
+;;                    '((exec . "echo hi"))))))))))
+
+;; See
+;; <https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html>
+;; <https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-latest.html>
+
+(define (serialize-alist field-name val)
+  (define (serialize-mimelist-entry key val)
+    (let ((val (cond
+                ((list? val)
+                 (string-join (map maybe-object->string val) ";"))
+                ((or (string? val) (symbol? val))
+                 val)
+                (else (raise (formatted-message
+                              (G_ "\
+The value of an XDG MIME entry must be a list, string or symbol, was given ~a")
+                              val))))))
+      (format #f "~a=~a\n" key val)))
+
+  (define (merge-duplicates alist acc)
+    "Merge values that have the same key.
+
+@example
+(merge-duplicates '((key1 . value1)
+                    (key2 . value2)
+                    (key1 . value3)
+                    (key1 . value4)) '())
+
+@result{} ((key1 . (value4 value3 value1)) (key2 . value2))
+@end example"
+    (cond
+     ((null? alist) acc)
+     (else (let* ((head (first alist))
+                  (tail (cdr alist))
+                  (key (first head))
+                  (value (cdr head))
+                  (duplicate? (assoc key acc))
+                  (ensure-list (lambda (x)
+                                 (if (list? x) x (list x)))))
+             (if duplicate?
+                 ;; XXX: This will change the order of things,
+                 ;; though, it shouldn't be a problem for XDG MIME.
+                 (merge-duplicates
+                  tail
+                  (alist-cons key
+                              (cons value (ensure-list (cdr duplicate?)))
+                              (alist-delete key acc)))
+                 (merge-duplicates tail (cons head acc)))))))
+
+  (string-append (if (equal? field-name 'default)
+                     "\n[Default Applications]\n"
+                     (format #f "\n[~a Associations]\n"
+                             (string-capitalize (symbol->string field-name))))
+                 (generic-serialize-alist string-append
+                                          serialize-mimelist-entry
+                                          (merge-duplicates val '()))))
+
+(define xdg-desktop-types (make-enumeration
+                           '(application
+                             link
+                             directory)))
+
+(define (xdg-desktop-type? type)
+  (unless (enum-set-member? type xdg-desktop-types)
+    (raise (formatted-message
+            (G_ "XDG desktop type must be of of ~a, was given: ~a")
+            (list->human-readable-list (enum-set->list xdg-desktop-types))
+            type))))
+
+;; TODO: Add proper docs for this
+;; XXX: 'define-configuration' require that fields have a default
+;; value.
+(define-record-type* <xdg-desktop-action>
+  xdg-desktop-action make-xdg-desktop-action
+  xdg-desktop-action?
+  (action xdg-desktop-action-action)  ; symbol
+  (name   xdg-desktop-action-name)    ; string
+  (config xdg-desktop-action-config   ; alist
+          (default '())))
+
+(define-record-type* <xdg-desktop-entry>
+  xdg-desktop-entry make-xdg-desktop-entry
+  xdg-desktop-entry?
+  ;; ".desktop" will automatically be added
+  (file    xdg-desktop-entry-file)    ; string
+  (name    xdg-desktop-entry-name)    ; string
+  (type    xdg-desktop-entry-type)    ; xdg-desktop-type
+  (config  xdg-desktop-entry-config   ; alist
+           (default '()))
+  (actions xdg-desktop-entry-actions  ; list of <xdg-desktop-action>
+           (default '())))
+
+(define desktop-entries? (list-of xdg-desktop-entry?))
+(define (serialize-desktop-entries field-name val) "")
+
+(define (serialize-xdg-desktop-entry entry)
+  "Return a tuple of the file name for ENTRY and the serialized
+configuration."
+  (define (format-config key val)
+    (let ((val (cond
+                ((list? val)
+                 (string-join (map maybe-object->string val) ";"))
+                ((boolean? val)
+                 (if val "true" "false"))
+                (else val)))
+          (key (string-capitalize (maybe-object->string key))))
+      (list (if (string-suffix? key "?")
+                (string-drop-right key (- (string-length key) 1))
+                key)
+            "=" val "\n")))
+
+  (define (serialize-alist config)
+    (generic-serialize-alist identity format-config config))
+
+  (define (serialize-xdg-desktop-action action)
+    (match action
+      (($ <xdg-desktop-action> action name config)
+       `(,(format #f "[Desktop Action ~a]\n"
+                  (string-capitalize (maybe-object->string action)))
+         ,(format #f "Name=~a\n" name)
+         ,@(serialize-alist config)))))
+
+  (match entry
+    (($ <xdg-desktop-entry> file name type config actions)
+     (list (if (string-suffix? file ".desktop")
+               file
+               (string-append file ".desktop"))
+           `("[Desktop Entry]\n"
+             ,(format #f "Name=~a\n" name)
+             ,(format #f "Type=~a\n"
+                      (string-capitalize (symbol->string type)))
+             ,@(serialize-alist config)
+             ,@(append-map serialize-xdg-desktop-action actions))))))
+
+(define-configuration home-xdg-mime-applications-configuration
+  (added
+   (alist '())
+   "An association list of MIME types and desktop entries which indicate
+that the application should used to open the specified MIME type.  The
+value has to be string, symbol, or list of strings or symbols, this
+applies to the `@code{default}', and `@code{removed}' fields as well.")
+  (default
+    (alist '())
+    "An association list of MIME types and desktop entries which indicate
+that the application should be the default for opening the specified
+MIME type.")
+  (removed
+   (alist '())
+   "An association list of MIME types and desktop entries which indicate
+that the application cannot open the specified MIME type.")
+  (desktop-entries
+   (desktop-entries '())
+   "A list of XDG desktop entries to create.  See
+@code{xdg-desktop-entry}."))
+
+(define (home-xdg-mime-applications-files-service config)
+  (define (add-xdg-desktop-entry-file entry)
+    (let ((file (first entry))
+          (config (second entry)))
+      (list (format #f "local/share/applications/~a" file)
+          (apply mixed-text-file
+                 (format #f "xdg-desktop-~a-entry" file)
+                 config))))
+
+  (append
+   `(("config/mimeapps.list"
+      ,(mixed-text-file
+        "xdg-mime-appplications"
+        (serialize-configuration
+         config
+         home-xdg-mime-applications-configuration-fields))))
+   (map (compose add-xdg-desktop-entry-file serialize-xdg-desktop-entry)
+        (home-xdg-mime-applications-configuration-desktop-entries config))))
+
+(define (home-xdg-mime-applications-extension old-config extension-configs)
+  (define (extract-fields config)
+    ;; return '(added default removed desktop-entries)
+    (list (home-xdg-mime-applications-configuration-added config)
+          (home-xdg-mime-applications-configuration-default config)
+          (home-xdg-mime-applications-configuration-removed config)
+          (home-xdg-mime-applications-configuration-desktop-entries config)))
+
+  (define (append-configs elem acc)
+    (list (append (first elem) (first acc))
+          (append (second elem) (second acc))
+          (append (third elem) (third acc))
+          (append (fourth elem) (fourth acc))))
+
+  ;; TODO: Implement procedure to check for duplicates without
+  ;; sacrificing performance.
+  ;;
+  ;; Combine all the alists from 'added', 'default' and 'removed'
+  ;; into one big alist.
+  (let ((folded-configs (fold append-configs
+                              (extract-fields old-config)
+                              (map extract-fields extension-configs))))
+    (home-xdg-mime-applications-configuration
+     (added (first folded-configs))
+     (default (second folded-configs))
+     (removed (third folded-configs))
+     (desktop-entries (fourth folded-configs)))))
+
+(define home-xdg-mime-applications-service-type
+  (service-type (name 'home-xdg-mime-applications)
+                (extensions
+                 (list (service-extension
+                        home-files-service-type
+                        home-xdg-mime-applications-files-service)))
+                (compose identity)
+                (extend home-xdg-mime-applications-extension)
+                (default-value (home-xdg-mime-applications-configuration))
+                (description
+                 "Configure XDG MIME applications, and XDG desktop entries.")))
diff --git a/gnu/image.scm b/gnu/image.scm
index 75d489490d..1c954af8cf 100644
--- a/gnu/image.scm
+++ b/gnu/image.scm
@@ -17,6 +17,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu image)
+  #:use-module (gnu platform)
   #:use-module (guix records)
   #:export (partition
             partition?
@@ -34,9 +35,10 @@
             image?
             image-name
             image-format
-            image-target
+            image-platform
             image-size
             image-operating-system
+            image-partition-table-type
             image-partitions
             image-compression?
             image-volatile-root?
@@ -47,7 +49,8 @@
             image-type-name
             image-type-constructor
 
-            os->image))
+            os->image
+            os+platform->image))
 
 
 ;;;
@@ -78,12 +81,14 @@
   (name               image-name ;symbol
                       (default #f))
   (format             image-format) ;symbol
-  (target             image-target
+  (platform           image-platform ;<platform>
                       (default #f))
   (size               image-size  ;size in bytes as integer
                       (default 'guess))
   (operating-system   image-operating-system  ;<operating-system>
                       (default #f))
+  (partition-table-type image-partition-table-type ; 'mbr or 'gpt
+                      (default 'mbr))
   (partitions         image-partitions ;list of <partition>
                       (default '()))
   (compression?       image-compression? ;boolean
@@ -112,3 +117,8 @@
 (define* (os->image os #:key type)
   (let ((constructor (image-type-constructor type)))
     (constructor os)))
+
+(define* (os+platform->image os platform #:key type)
+  (image
+   (inherit (os->image os #:type type))
+   (platform platform)))
diff --git a/gnu/installer.scm b/gnu/installer.scm
index d2be4b34f9..600fb76de0 100644
--- a/gnu/installer.scm
+++ b/gnu/installer.scm
@@ -330,6 +330,7 @@ selected keymap."
                        btrfs-progs
                        jfsutils ;jfs_mkfs
                        ntfs-3g ;mkfs.ntfs
+                       xfsprogs ;mkfs.xfs
                        kbd ;chvt
                        guix ;guix system init call
                        util-linux ;mkwap
diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm
index fe30953a41..70c11ed8ad 100644
--- a/gnu/installer/newt/partition.scm
+++ b/gnu/installer/newt/partition.scm
@@ -131,7 +131,11 @@ Be careful, all data on the disk will be lost.")
   (run-listbox-selection-page
    #:info-text (G_ "Please select the file-system type for this partition.")
    #:title (G_ "File-system type")
-   #:listbox-items '(ext4 btrfs fat16 fat32 jfs ntfs swap)
+   #:listbox-items '(btrfs ext4 jfs xfs
+                           swap
+                           ;; These lack basic Unix features.  Their only use
+                           ;; on GNU is for interoperation, e.g., with UEFI.
+                           fat32 fat16 ntfs)
    #:listbox-item->text user-fs-type-name
    #:sort-listbox-items? #f
    #:button-text (G_ "Exit")
diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm
index c000b1dec2..289cd660fd 100644
--- a/gnu/installer/parted.scm
+++ b/gnu/installer/parted.scm
@@ -26,6 +26,7 @@
   #:use-module ((gnu build file-systems)
                 #:select (canonicalize-device-spec
                           find-partition-by-label
+                          find-partition-by-uuid
                           read-partition-uuid
                           read-luks-partition-uuid))
   #:use-module ((gnu build linux-boot)
@@ -231,6 +232,7 @@ inferior to MAX-SIZE, #f otherwise."
     ((fat32) "fat32")
     ((jfs)   "jfs")
     ((ntfs)  "ntfs")
+    ((xfs)   "xfs")
     ((swap)  "linux-swap")))
 
 (define (user-fs-type->mount-type fs-type)
@@ -241,7 +243,8 @@ inferior to MAX-SIZE, #f otherwise."
     ((fat16) "vfat")
     ((fat32) "vfat")
     ((jfs)   "jfs")
-    ((ntfs)  "ntfs")))
+    ((ntfs)  "ntfs")
+    ((xfs)   "xfs")))
 
 (define (partition-filesystem-user-type partition)
   "Return the filesystem type of PARTITION, to be stored in the FS-TYPE field
@@ -256,6 +259,7 @@ of <user-partition> record."
             ((string=? name "fat32") 'fat32)
             ((string=? name "jfs") 'jfs)
             ((string=? name "ntfs") 'ntfs)
+            ((string=? name "xfs") 'xfs)
             ((or (string=? name "swsusp")
                  (string=? name "linux-swap(v0)")
                  (string=? name "linux-swap(v1)"))
@@ -342,35 +346,38 @@ fail. See rereadpt function in wipefs.c of util-linux for an explanation."
   (with-null-output-ports
    (invoke "dmsetup" "remove_all")))
 
-(define (installation-device)
-  "Return the installation device path."
+(define (installer-root-partition-path)
+  "Return the root partition path, or #f if it could not be detected."
   (let* ((cmdline (linux-command-line))
          (root (find-long-option "--root" cmdline)))
     (and root
-         (canonicalize-device-spec (uuid root)))))
+         (or (and (access? root F_OK) root)
+             (find-partition-by-label root)
+             (and=> (uuid root)
+                    find-partition-by-uuid)))))
 
 (define (non-install-devices)
   "Return all the available devices, except the install device."
-  (define (read-only? device)
-    (dynamic-wind
-    (lambda ()
-      (device-open device))
-    (lambda ()
-      (device-read-only? device))
-    (lambda ()
-      (device-close device))))
-
-  ;; If parted reports that a device is read-only it is probably the
-  ;; installation device. However, as this detection does not always work,
-  ;; compare the device path to the installation device path read from the
-  ;; command line.
-  (let ((install-device (installation-device)))
-    (remove (lambda (device)
-              (let ((file-name (device-path device)))
-                (or (read-only? device)
-                    (and install-device
-                         (string=? file-name install-device)))))
-            (devices))))
+
+  (define the-installer-root-partition-path
+    (installer-root-partition-path))
+
+  ;; Read partition table of device and compare each path to the one
+  ;; we're booting from to determine if it is the installation
+  ;; device.
+  (define (installation-device? device)
+    ;; When using CDROM based installation, the root partition path may be the
+    ;; device path.
+    (or (string=? the-installer-root-partition-path
+                  (device-path device))
+        (let ((disk (disk-new device)))
+          (and disk
+               (any (lambda (partition)
+                      (string=? the-installer-root-partition-path
+                                (partition-get-path partition)))
+                    (disk-partitions disk))))))
+
+  (remove installation-device? (devices)))
 
 
 ;;
@@ -895,7 +902,7 @@ partition."
                 (format #f "Unable to create partition ~a~%" name)))))))))
 
 (define (force-user-partitions-formatting user-partitions)
-  "Set the NEED-FORMATING? fields to #t on all <user-partition> records of
+  "Set the NEED-FORMATTING? fields to #t on all <user-partition> records of
 USER-PARTITIONS list and return the updated list."
   (map (lambda (p)
          (user-partition
@@ -1125,6 +1132,11 @@ bit bucket."
   (with-null-output-ports
    (invoke "mkfs.ntfs" "-F" "-f" partition)))
 
+(define (create-xfs-file-system partition)
+  "Create an XFS file-system for PARTITION file-name."
+  (with-null-output-ports
+   (invoke "mkfs.xfs" "-f" partition)))
+
 (define (create-swap-partition partition)
   "Set up swap area on PARTITION file-name."
   (with-null-output-ports
@@ -1169,7 +1181,7 @@ USER-PARTITION if it is encrypted, or the plain file-name otherwise."
 
 (define (format-user-partitions user-partitions)
   "Format the <user-partition> records in USER-PARTITIONS list with
-NEED-FORMATING? field set to #t."
+NEED-FORMATTING? field set to #t."
   (for-each
    (lambda (user-partition)
      (let* ((need-formatting?
@@ -1206,6 +1218,10 @@ NEED-FORMATING? field set to #t."
           (and need-formatting?
                (not (eq? type 'extended))
                (create-ntfs-file-system file-name)))
+         ((xfs)
+          (and need-formatting?
+               (not (eq? type 'extended))
+               (create-xfs-file-system file-name)))
          ((swap)
           (create-swap-partition file-name))
          (else
@@ -1402,9 +1418,11 @@ USER-PARTITIONS, or return nothing."
             (let* ((uuids (map (lambda (file)
                                  (uuid->string (read-partition-uuid file)))
                                swap-devices)))
-              `((swap-devices (list ,@(map (lambda (uuid)
-                                             `(uuid ,uuid))
-                                           uuids))))))
+              `((swap-devices
+                 (list ,@(map (lambda (uuid)
+                                `(swap-space
+                                  (target (uuid ,uuid))))
+                              uuids))))))
       ,@(if (null? encrypted-partitions)
             '()
             `((mapped-devices
diff --git a/gnu/local.mk b/gnu/local.mk
index aa5690b198..0bae6ffa63 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -11,7 +11,7 @@
 # Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 # Copyright © 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com>
 # Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
-# Copyright © 2016, 2017, 2018, 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+# Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 # Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 # Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 # Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -45,6 +45,8 @@
 # Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
 # Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
 # Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz>
+# Copyright © 2021 Andrew Tropin <andrew@trop.in>
+# Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
 #
 # This file is part of GNU Guix.
 #
@@ -73,7 +75,17 @@ GNU_SYSTEM_MODULES =				\
   %D%/bootloader/u-boot.scm                     \
   %D%/bootloader/depthcharge.scm                \
   %D%/ci.scm					\
+  %D%/home.scm					\
+  %D%/home/services.scm			\
+  %D%/home/services/symlink-manager.scm		\
+  %D%/home/services/fontutils.scm		\
+  %D%/home/services/shells.scm			\
+  %D%/home/services/shepherd.scm		\
+  %D%/home/services/mcron.scm			\
+  %D%/home/services/utils.scm			\
+  %D%/home/services/xdg.scm			\
   %D%/image.scm					\
+  %D%/platform.scm				\
   %D%/packages.scm				\
   %D%/packages/abduco.scm			\
   %D%/packages/abiword.scm			\
@@ -297,6 +309,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/inklingreader.scm		\
   %D%/packages/inkscape.scm			\
   %D%/packages/installers.scm			\
+  %D%/packages/instrumentation.scm		\
   %D%/packages/ipfs.scm			\
   %D%/packages/irc.scm  			\
   %D%/packages/irods.scm  			\
@@ -435,6 +448,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/parallel.scm			\
   %D%/packages/pascal.scm			\
   %D%/packages/password-utils.scm		\
+  %D%/packages/patool.scm			\
   %D%/packages/patchutils.scm			\
   %D%/packages/pciutils.scm			\
   %D%/packages/pcre.scm				\
@@ -508,6 +522,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/sawfish.scm			\
   %D%/packages/scanner.scm			\
   %D%/packages/scheme.scm			\
+  %D%/packages/spreadsheet.scm			\
   %D%/packages/screen.scm			\
   %D%/packages/scribus.scm			\
   %D%/packages/scsi.scm				\
@@ -575,7 +590,6 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/video.scm			\
   %D%/packages/vim.scm				\
   %D%/packages/virtualization.scm		\
-  %D%/packages/visidata.scm			\
   %D%/packages/vlang.scm			\
   %D%/packages/vnc.scm				\
   %D%/packages/vpn.scm				\
@@ -600,9 +614,13 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/xdisorg.scm			\
   %D%/packages/xorg.scm				\
   %D%/packages/xfce.scm				\
+  %D%/packages/zig.scm				\
   %D%/packages/zile.scm				\
   %D%/packages/zwave.scm			\
 						\
+  %D%/platforms/arm.scm		                \
+  %D%/platforms/hurd.scm	                \
+						\
   %D%/services.scm				\
   %D%/services/admin.scm			\
   %D%/services/audio.scm                        \
@@ -807,7 +825,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/abcl-fix-build-xml.patch	\
   %D%/packages/patches/ableton-link-system-libraries-debian.patch	\
   %D%/packages/patches/abiword-explictly-cast-bools.patch	\
-  %D%/packages/patches/abseil-cpp-fix-gtest.patch		\
   %D%/packages/patches/abseil-cpp-fix-strerror_test.patch	\
   %D%/packages/patches/adb-add-libraries.patch			\
   %D%/packages/patches/adb-libssl_11-compatibility.patch	\
@@ -820,10 +837,12 @@ dist_patch_DATA =						\
   %D%/packages/patches/aegisub-boost68.patch			\
   %D%/packages/patches/aegisub-make43.patch			\
   %D%/packages/patches/agg-am_c_prototype.patch			\
+  %D%/packages/patches/agg-2.5-gcc8.patch			\
   %D%/packages/patches/akonadi-paths.patch		\
   %D%/packages/patches/akonadi-not-relocatable.patch		\
   %D%/packages/patches/akonadi-timestamps.patch		\
   %D%/packages/patches/allegro-mesa-18.2.5-and-later.patch	\
+  %D%/packages/patches/alpine-fix-privacy-policy-crash.patch	\
   %D%/packages/patches/anki-mpv-args.patch			\
   %D%/packages/patches/antiword-CVE-2014-8123.patch			\
   %D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch	\
@@ -856,11 +875,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/avahi-localstatedir.patch		\
   %D%/packages/patches/avidemux-install-to-lib.patch		\
   %D%/packages/patches/awesome-reproducible-png.patch		\
-  %D%/packages/patches/aws-c-cal-cmake-prefix.patch		\
-  %D%/packages/patches/aws-c-event-stream-cmake-prefix.patch  \
-  %D%/packages/patches/aws-c-io-cmake-prefix.patch		\
-  %D%/packages/patches/aws-c-io-disable-networking-tests.patch		\
-  %D%/packages/patches/aws-checksums-cmake-prefix.patch		\
+  %D%/packages/patches/awesome-4.3-fno-common.patch		\
+  %D%/packages/patches/aws-c-auth-install-private-headers.patch	\
   %D%/packages/patches/azr3.patch				\
   %D%/packages/patches/bash-reproducible-linux-pgrp-pipe.patch	\
   %D%/packages/patches/bash-completion-directories.patch	\
@@ -869,7 +885,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/bazaar-CVE-2017-14176.patch		\
   %D%/packages/patches/bc-fix-cross-compilation.patch		\
   %D%/packages/patches/bdb-5.3-atomics-on-gcc-9.patch		\
-  %D%/packages/patches/bear-disable-preinstall-tests.patch	\
+  %D%/packages/patches/bind-re-add-attr-constructor-priority.patch	\
   %D%/packages/patches/brightnessctl-elogind-support.patch	\
   %D%/packages/patches/bsd-games-2.17-64bit.patch		\
   %D%/packages/patches/bsd-games-add-configure-config.patch	\
@@ -899,6 +915,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/blender-2.79-python-3.8-fix.patch	\
   %D%/packages/patches/bpftrace-disable-bfd-disasm.patch	\
   %D%/packages/patches/byobu-writable-status.patch		\
+  %D%/packages/patches/cabal-install-base16-bytestring1.0.patch		\
+  %D%/packages/patches/cabal-install-ghc8.10.patch		\
   %D%/packages/patches/cairo-CVE-2018-19876.patch		\
   %D%/packages/patches/cairo-CVE-2020-35492.patch		\
   %D%/packages/patches/calibre-no-updates-dialog.patch		\
@@ -908,8 +926,11 @@ dist_patch_DATA =						\
   %D%/packages/patches/catdoc-CVE-2017-11110.patch		\
   %D%/packages/patches/circos-remove-findbin.patch		\
   %D%/packages/patches/cdparanoia-fpic.patch			\
+  %D%/packages/patches/cdrkit-libre-cross-compile.patch	\
   %D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch 	\
   %D%/packages/patches/ceph-disable-cpu-optimizations.patch	\
+  %D%/packages/patches/ceph-boost-compat.patch			\
+  %D%/packages/patches/ceph-rocksdb-compat.patch		\
   %D%/packages/patches/cheese-vala-update.patch		        \
   %D%/packages/patches/chez-scheme-build-util-paths-backport.patch      \
   %D%/packages/patches/chmlib-inttypes.patch			\
@@ -921,10 +942,11 @@ dist_patch_DATA =						\
   %D%/packages/patches/clang-3.8-libc-search-path.patch		\
   %D%/packages/patches/clang-6.0-libc-search-path.patch		\
   %D%/packages/patches/clang-7.0-libc-search-path.patch		\
+  %D%/packages/patches/clang-8.0-libc-search-path.patch		\
   %D%/packages/patches/clang-9.0-libc-search-path.patch		\
   %D%/packages/patches/clang-10.0-libc-search-path.patch	\
   %D%/packages/patches/clang-11.0-libc-search-path.patch	\
-  %D%/packages/patches/clang-12-tools-extra-directory.patch	\
+  %D%/packages/patches/clang-12.0-libc-search-path.patch	\
   %D%/packages/patches/clang-runtime-asan-build-fixes.patch	\
   %D%/packages/patches/clang-runtime-esan-build-fixes.patch	\
   %D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch	\
@@ -933,6 +955,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/clang-runtime-3.8-libsanitizer-mode-field.patch	\
   %D%/packages/patches/classpath-aarch64-support.patch		\
   %D%/packages/patches/classpath-miscompilation.patch		\
+  %D%/packages/patches/cling-use-shared-library.patch		\
   %D%/packages/patches/clucene-pkgconfig.patch			\
   %D%/packages/patches/cmake-curl-certificates.patch		\
   %D%/packages/patches/coda-use-system-libs.patch		\
@@ -940,15 +963,14 @@ dist_patch_DATA =						\
   %D%/packages/patches/combinatorial-blas-awpm.patch		\
   %D%/packages/patches/combinatorial-blas-io-fix.patch		\
   %D%/packages/patches/coreutils-gnulib-tests.patch		\
+  %D%/packages/patches/coq-fix-envvars.patch			\
   %D%/packages/patches/coreutils-ls.patch			\
-  %D%/packages/patches/cpufrequtils-fix-aclocal.patch		\
   %D%/packages/patches/cpuinfo-system-libraries.patch		\
   %D%/packages/patches/crawl-upgrade-saves.patch		\
   %D%/packages/patches/crda-optional-gcrypt.patch		\
   %D%/packages/patches/clucene-contribs-lib.patch               \
   %D%/packages/patches/cube-nocheck.patch			\
   %D%/packages/patches/curl-use-ssl-cert-env.patch		\
-  %D%/packages/patches/curl-7.77-tls-priority-string.patch	\
   %D%/packages/patches/cursynth-wave-rand.patch			\
   %D%/packages/patches/cvs-CVE-2017-12836.patch		\
   %D%/packages/patches/cyrus-sasl-ac-try-run-fix.patch		\
@@ -968,8 +990,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/desmume-gcc6-fixes.patch			\
   %D%/packages/patches/desmume-gcc7-fixes.patch			\
   %D%/packages/patches/dfu-programmer-fix-libusb.patch		\
-  %D%/packages/patches/diffutils-gets-undeclared.patch		\
-  %D%/packages/patches/disarchive-cross-compilation.patch	\
+  %D%/packages/patches/diffoscope-fix-llvm-test.patch		\
+  %D%/packages/patches/diffutils-fix-signal-processing.patch	\
   %D%/packages/patches/dkimproxy-add-ipv6-support.patch		\
   %D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch	\
   %D%/packages/patches/docbook-xsl-support-old-url.patch	\
@@ -981,6 +1003,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/dstat-skip-devices-without-io.patch	\
   %D%/packages/patches/dune-istl-2.7-fix-non-mpi-tests.patch	\
   %D%/packages/patches/dvd+rw-tools-add-include.patch 		\
+  %D%/packages/patches/dynaconf-unvendor-deps.patch		\
   %D%/packages/patches/ecl-16-format-directive-limit.patch	\
   %D%/packages/patches/ecl-16-ignore-stderr-write-error.patch	\
   %D%/packages/patches/ecl-16-libffi.patch			\
@@ -993,8 +1016,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/elixir-path-length.patch			\
   %D%/packages/patches/elm-compiler-disable-reactor.patch	\
   %D%/packages/patches/elm-compiler-fix-map-key.patch		\
+  %D%/packages/patches/elogind-revert-polkit-detection.patch	\
   %D%/packages/patches/emacs-exec-path.patch			\
-  %D%/packages/patches/emacs-exwm-fix-fullscreen-states.patch	\
   %D%/packages/patches/emacs-fix-scheme-indent-function.patch	\
   %D%/packages/patches/emacs-ignore-empty-xim-styles.patch	\
   %D%/packages/patches/emacs-json-reformat-fix-tests.patch	\
@@ -1011,16 +1034,10 @@ dist_patch_DATA =						\
   %D%/packages/patches/esmtp-add-lesmtp.patch		\
   %D%/packages/patches/eudev-rules-directory.patch		\
   %D%/packages/patches/evilwm-lost-focus-bug.patch		\
-  %D%/packages/patches/evolution-CVE-2020-11879.patch		\
-  %D%/packages/patches/evolution-printableoptions.patch		\
-  %D%/packages/patches/evolution-data-server-CVE-2020-14928.patch	\
-  %D%/packages/patches/evolution-data-server-CVE-2020-16117.patch	\
-  %D%/packages/patches/evolution-data-server-printableoptions.patch	\
-  %D%/packages/patches/evolution-data-server-locales.patch	\
-  %D%/packages/patches/evolution-data-server-libical-compat.patch	\
   %D%/packages/patches/exercism-disable-self-update.patch	\
   %D%/packages/patches/extempore-unbundle-external-dependencies.patch	\
   %D%/packages/patches/extundelete-e2fsprogs-1.44.patch		\
+  %D%/packages/patches/farstream-gupnp.patch                         \
   %D%/packages/patches/farstream-make.patch                          \
   %D%/packages/patches/fastcap-mulGlobal.patch			\
   %D%/packages/patches/fastcap-mulSetup.patch			\
@@ -1035,6 +1052,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/fifo-map-remove-catch.hpp.patch		\
   %D%/packages/patches/findutils-localstatedir.patch		\
   %D%/packages/patches/flann-cmake-3.11.patch			\
+  %D%/packages/patches/flatpak-fix-path.patch			\
   %D%/packages/patches/fontconfig-cache-ignore-mtime.patch	\
   %D%/packages/patches/foobillard++-pkg-config.patch		\
   %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch	\
@@ -1042,19 +1060,20 @@ dist_patch_DATA =						\
   %D%/packages/patches/fp16-system-libraries.patch		\
   %D%/packages/patches/fpc-reproducibility.patch		\
   %D%/packages/patches/fplll-std-fenv.patch     		\
+  %D%/packages/patches/freecad-boost-serialization.patch	\
+  %D%/packages/patches/freecad-vtk9.patch			\
   %D%/packages/patches/freedink-engine-fix-sdl-hints.patch	\
   %D%/packages/patches/freeglut-gcc-compat.patch		\
   %D%/packages/patches/freeimage-unbundle.patch		\
   %D%/packages/patches/fuse-overlapping-headers.patch				\
   %D%/packages/patches/fxdiv-system-libraries.patch		\
   %D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch	\
-  %D%/packages/patches/ganeti-deterministic-manual.patch	\
   %D%/packages/patches/ganeti-disable-version-symlinks.patch	\
-  %D%/packages/patches/ganeti-drbd-compat.patch			\
+  %D%/packages/patches/ganeti-haskell-compat.patch		\
   %D%/packages/patches/ganeti-haskell-pythondir.patch		\
-  %D%/packages/patches/ganeti-os-disk-size.patch		\
   %D%/packages/patches/ganeti-shepherd-master-failover.patch	\
   %D%/packages/patches/ganeti-shepherd-support.patch		\
+  %D%/packages/patches/ganeti-sphinx-compat.patch		\
   %D%/packages/patches/gash-utils-ls-test.patch			\
   %D%/packages/patches/gawk-shell.patch				\
   %D%/packages/patches/gcc-arm-bug-71399.patch			\
@@ -1063,6 +1082,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gcc-boot-2.95.3.patch			\
   %D%/packages/patches/gcc-boot-4.6.4.patch			\
   %D%/packages/patches/gcc-cross-environment-variables.patch	\
+  %D%/packages/patches/gcc-cross-gxx-include-dir.patch          \
   %D%/packages/patches/gcc-fix-texi2pod.patch			\
   %D%/packages/patches/gcc-4.8-libsanitizer-fix.patch		\
   %D%/packages/patches/gcc-4.9-libsanitizer-fix.patch		\
@@ -1080,6 +1100,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gcc-4.9.3-mingw-gthr-default.patch	\
   %D%/packages/patches/gcc-5-hurd.patch				\
   %D%/packages/patches/gcc-5.0-libvtv-runpath.patch		\
+  %D%/packages/patches/gcc-5-fix-powerpc64le-build.patch	\
   %D%/packages/patches/gcc-5-source-date-epoch-1.patch		\
   %D%/packages/patches/gcc-5-source-date-epoch-2.patch		\
   %D%/packages/patches/gcc-6-arm-none-eabi-multilib.patch	\
@@ -1094,23 +1115,23 @@ dist_patch_DATA =						\
   %D%/packages/patches/gcc-8-strmov-store-file-names.patch	\
   %D%/packages/patches/gcc-9-asan-fix-limits-include.patch	\
   %D%/packages/patches/gcc-9-strmov-store-file-names.patch	\
-  %D%/packages/patches/gdb-hurd.patch				\
+  %D%/packages/patches/gcc-10-cross-environment-variables.patch \
   %D%/packages/patches/gd-fix-tests-on-i686.patch		\
   %D%/packages/patches/gd-brect-bounds.patch			\
-  %D%/packages/patches/gd-Revert-fix-303-gdlib.pc-use-Requires-instead-of-Libs.patch	\
+  %D%/packages/patches/gd-Revert-fix-303-gdlib.pc.patch		\
+  %D%/packages/patches/gdb-fix-gnu-nat-build.patch		\
   %D%/packages/patches/gdm-default-session.patch		\
-  %D%/packages/patches/geary-CVE-2020-24661.patch		\
-  %D%/packages/patches/genimage-signedness.patch		\
+  %D%/packages/patches/gdm-elogind-support.patch		\
+  %D%/packages/patches/gdm-remove-hardcoded-xwayland-path.patch	\
+  %D%/packages/patches/gdm-wayland-session-wrapper-from-env.patch	\
+  %D%/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch	\
+  %D%/packages/patches/geeqie-clutter.patch			\
+  %D%/packages/patches/genimage-mke2fs-test.patch		\
   %D%/packages/patches/geoclue-config.patch			\
   %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch	\
   %D%/packages/patches/ghc-testsuite-dlopen-pie.patch		\
-  %D%/packages/patches/ghc-diff-swap-cover-args.patch		\
-  %D%/packages/patches/ghc-haddock-api-fix-haddock.patch	\
-  %D%/packages/patches/ghc-hpack-fix-tests.patch		\
-  %D%/packages/patches/ghc-microlens-aeson-fix-tests.patch	\
+  %D%/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch	\
   %D%/packages/patches/ghc-monad-par-fix-tests.patch		\
-  %D%/packages/patches/ghc-pandoc-fix-html-tests.patch		\
-  %D%/packages/patches/ghc-pandoc-fix-latex-test.patch		\
   %D%/packages/patches/ghostscript-no-header-id.patch		\
   %D%/packages/patches/ghostscript-no-header-uuid.patch		\
   %D%/packages/patches/ghostscript-no-header-creationdate.patch \
@@ -1119,6 +1140,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/glade-test-widget-null-icon.patch	\
   %D%/packages/patches/glib-appinfo-watch.patch			\
   %D%/packages/patches/glib-networking-gnutls-binding.patch	\
+  %D%/packages/patches/glib-networking-32-bit-time.patch	\
   %D%/packages/patches/glib-skip-failing-test.patch		\
   %D%/packages/patches/glibc-CVE-2018-11236.patch		\
   %D%/packages/patches/glibc-CVE-2018-11237.patch		\
@@ -1156,11 +1178,11 @@ dist_patch_DATA =						\
   %D%/packages/patches/gmp-arm-asm-nothumb.patch		\
   %D%/packages/patches/gmp-faulty-test.patch			\
   %D%/packages/patches/gnash-fix-giflib-version.patch	        \
-  %D%/packages/patches/gnome-shell-theme.patch			\
-  %D%/packages/patches/gnome-shell-disable-test.patch		\
-  %D%/packages/patches/gnome-shell-CVE-2020-17489.patch		\
+  %D%/packages/patches/gnome-boxes-add-guix-logo.patch		\
+  %D%/packages/patches/gnome-online-miners-tracker-3.patch	\
+  %D%/packages/patches/gnome-screenshot-meson-0.60.patch	\
   %D%/packages/patches/gnome-settings-daemon-gc.patch		\
-  %D%/packages/patches/gnome-todo-delete-esource-duplicate.patch \
+  %D%/packages/patches/gnome-session-support-elogind.patch      \
   %D%/packages/patches/gnome-tweaks-search-paths.patch		\
   %D%/packages/patches/gnupg-default-pinentry.patch		\
   %D%/packages/patches/gnupg-1-build-with-gcc10.patch		\
@@ -1171,6 +1193,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gobject-introspection-cc.patch		\
   %D%/packages/patches/gobject-introspection-girepository.patch	\
   %D%/packages/patches/go-fix-script-tests.patch			\
+  %D%/packages/patches/go-github-com-golang-snappy-32bit-test.patch \
   %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			\
@@ -1179,19 +1202,14 @@ dist_patch_DATA =						\
   %D%/packages/patches/gpsbabel-fix-i686-test.patch		\
   %D%/packages/patches/grantlee-merge-theme-dirs.patch		\
   %D%/packages/patches/grep-timing-sensitive-test.patch		\
+  %D%/packages/patches/grfcodec-gcc-compat.patch		\
   %D%/packages/patches/grocsvs-dont-use-admiral.patch		\
   %D%/packages/patches/gromacs-tinyxml2.patch			\
   %D%/packages/patches/groovy-add-exceptionutilsgenerator.patch	\
   %D%/packages/patches/grub-efi-fat-serial-number.patch		\
   %D%/packages/patches/grub-setup-root.patch			\
   %D%/packages/patches/gspell-dash-test.patch			\
-  %D%/packages/patches/gst-libav-64channels-stack-corruption.patch	\
-  %D%/packages/patches/gst-plugins-bad-fix-overflow.patch	\
-  %D%/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch	\
   %D%/packages/patches/gst-plugins-good-fix-test.patch		\
-  %D%/packages/patches/gst-plugins-good-CVE-2021-3497.patch	\
-  %D%/packages/patches/gst-plugins-good-CVE-2021-3498.patch	\
-  %D%/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch	\
   %D%/packages/patches/guile-1.8-cpp-4.5.patch			\
   %D%/packages/patches/guile-2.2-skip-oom-test.patch            \
   %D%/packages/patches/guile-2.2-skip-so-test.patch             \
@@ -1203,20 +1221,23 @@ dist_patch_DATA =						\
   %D%/packages/patches/guile-3.0-linux-syscalls.patch		\
   %D%/packages/patches/guile-fibers-destroy-peer-schedulers.patch \
   %D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch	\
+  %D%/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch \
   %D%/packages/patches/guile-present-coding.patch		\
   %D%/packages/patches/guile-rsvg-pkgconfig.patch		\
   %D%/packages/patches/guile-emacs-fix-configure.patch		\
+  %D%/packages/patches/guile-email-fix-tests.patch		\
   %D%/packages/patches/guile-ssh-fix-test-suite.patch		\
   %D%/packages/patches/guile-ssh-read-error.patch		\
+  %D%/packages/patches/gtk2-fix-builder-test.patch		\
   %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch	\
   %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \
   %D%/packages/patches/gtk2-theme-paths.patch			\
   %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch	\
   %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
   %D%/packages/patches/gtk-doc-respect-xml-catalog.patch	 \
+  %D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch    \
   %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
   %D%/packages/patches/gtksourceview-2-add-default-directory.patch \
-  %D%/packages/patches/gvfs-add-support-for-libplist-2.2.patch	\
   %D%/packages/patches/gzdoom-search-in-installed-share.patch	\
   %D%/packages/patches/gzdoom-find-system-libgme.patch	\
   %D%/packages/patches/hdf4-architectures.patch 		\
@@ -1231,21 +1252,26 @@ dist_patch_DATA =						\
   %D%/packages/patches/hdf-eos5-remove-gctp.patch		\
   %D%/packages/patches/hdf-eos5-fix-szip.patch			\
   %D%/packages/patches/hdf-eos5-fortrantests.patch		\
-  %D%/packages/patches/hexchat-add-libera-chat.patch		\
+  %D%/packages/patches/hedgewars-network-bsd.patch		\
+  %D%/packages/patches/helm-fix-gcc-9-build.patch		\
   %D%/packages/patches/http-parser-CVE-2020-8287.patch		\
   %D%/packages/patches/hubbub-sort-entities.patch		\
   %D%/packages/patches/hurd-cross.patch				\
   %D%/packages/patches/hurd-xattr.patch				\
   %D%/packages/patches/hydra-disable-darcs-test.patch		\
+  %D%/packages/patches/i7z-gcc-10.patch				\
   %D%/packages/patches/icecat-makeicecat.patch			\
   %D%/packages/patches/icecat-avoid-bundled-libraries.patch	\
   %D%/packages/patches/icecat-use-older-reveal-hidden-html.patch	\
   %D%/packages/patches/icecat-use-system-graphite2+harfbuzz.patch	\
   %D%/packages/patches/icecat-use-system-media-libs.patch	\
   %D%/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch	\
+  %D%/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch\
   %D%/packages/patches/id3lib-CVE-2007-4460.patch			\
   %D%/packages/patches/id3lib-UTF16-writing-bug.patch			\
   %D%/packages/patches/idris-disable-test.patch			\
+  %D%/packages/patches/idris-build-with-haskeline-0.8.patch	\
+  %D%/packages/patches/idris-build-with-megaparsec-9.patch	\
   %D%/packages/patches/ilmbase-fix-tests.patch			\
   %D%/packages/patches/imagemagick-CVE-2020-27829.patch		\
   %D%/packages/patches/imagemagick-ReadDCMImage-fix.patch	\
@@ -1253,7 +1279,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch	\
   %D%/packages/patches/inkscape-poppler-0.76.patch		\
   %D%/packages/patches/instead-use-games-path.patch		\
-  %D%/packages/patches/inkscape-1.1-fix-build-witch-gcc7.5.patch	\
   %D%/packages/patches/intel-xed-fix-nondeterminism.patch	\
   %D%/packages/patches/intltool-perl-compatibility.patch	\
   %D%/packages/patches/iputils-libcap-compat.patch		\
@@ -1261,9 +1286,9 @@ dist_patch_DATA =						\
   %D%/packages/patches/irrlicht-use-system-libs.patch		\
   %D%/packages/patches/isc-dhcp-gcc-compat.patch		\
   %D%/packages/patches/isl-0.11.1-aarch64-support.patch	\
-  %D%/packages/patches/json-c-CVE-2020-12762.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		\
   %D%/packages/patches/jacal-fix-texinfo.patch			\
   %D%/packages/patches/jamvm-1.5.1-aarch64-support.patch	\
   %D%/packages/patches/jamvm-1.5.1-armv7-support.patch	\
@@ -1288,12 +1313,13 @@ dist_patch_DATA =						\
   %D%/packages/patches/jfsutils-include-systypes.patch		\
   %D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch	\
   %D%/packages/patches/julia-tracker-16-compat.patch		\
+  %D%/packages/patches/julia-allow-parallel-build.patch		\
   %D%/packages/patches/kdbusaddons-kinit-file-name.patch	\
-  %D%/packages/patches/libblockdev-glib-compat.patch		\
   %D%/packages/patches/libffi-3.3-powerpc-fixes.patch		\
   %D%/packages/patches/libffi-float128-powerpc64le.patch	\
   %D%/packages/patches/librime-fix-build-with-gcc10.patch	\
   %D%/packages/patches/libvirt-add-install-prefix.patch	\
+  %D%/packages/patches/libvirt-create-machine-cgroup.patch      \
   %D%/packages/patches/libziparchive-add-includes.patch		\
   %D%/packages/patches/localed-xorg-keyboard.patch		\
   %D%/packages/patches/kdiagram-Fix-missing-link-libraries.patch \
@@ -1325,12 +1351,9 @@ dist_patch_DATA =						\
   %D%/packages/patches/lcalc-default-parameters-2.patch		\
   %D%/packages/patches/lcalc-lcommon-h.patch    		\
   %D%/packages/patches/lcalc-using-namespace-std.patch 		\
-  %D%/packages/patches/ldc-bootstrap-disable-tests.patch	\
-  %D%/packages/patches/ldc-disable-phobos-tests.patch		\
   %D%/packages/patches/ldns-drill-examples.patch		\
   %D%/packages/patches/leela-zero-gtest.patch			\
   %D%/packages/patches/less-hurd-path-max.patch			\
-  %D%/packages/patches/lib2geom-fix-tests.patch			\
   %D%/packages/patches/liba52-enable-pic.patch			\
   %D%/packages/patches/liba52-link-with-libm.patch		\
   %D%/packages/patches/liba52-set-soname.patch			\
@@ -1340,7 +1363,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/libbonobo-activation-test-race.patch	\
   %D%/packages/patches/libcaca-CVE-2021-3410-pt1.patch		\
   %D%/packages/patches/libcaca-CVE-2021-3410-pt2.patch		\
-  %D%/packages/patches/libcacard-unknown-variable.patch		\
   %D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \
   %D%/packages/patches/libcanberra-wayland-crash.patch \
   %D%/packages/patches/libcroco-CVE-2020-12825.patch		\
@@ -1379,6 +1401,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/libtirpc-hurd.patch			\
   %D%/packages/patches/libtommath-fix-linkage.patch		\
   %D%/packages/patches/libtool-skip-tests2.patch		\
+  %D%/packages/patches/libunwind-julia-fix-GCC10-fno-common.patch \
   %D%/packages/patches/libusb-0.1-disable-tests.patch		\
   %D%/packages/patches/libusb-for-axoloti.patch			\
   %D%/packages/patches/libutils-add-includes.patch		\
@@ -1405,6 +1428,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/lirc-reproducible-build.patch		\
   %D%/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch	\
   %D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch	\
+  %D%/packages/patches/llvm-3.6-fix-build-with-gcc-10.patch	\
   %D%/packages/patches/llvm-9-fix-bitcast-miscompilation.patch	\
   %D%/packages/patches/llvm-9-fix-lpad-miscompilation.patch	\
   %D%/packages/patches/llvm-9-fix-scev-miscompilation.patch	\
@@ -1426,10 +1450,10 @@ dist_patch_DATA =						\
   %D%/packages/patches/mailutils-variable-lookup.patch		\
   %D%/packages/patches/make-impure-dirs.patch			\
   %D%/packages/patches/marble-qt-add-qt-headers.patch		\
-  %D%/packages/patches/mariadb-CVE-2021-27928.patch		\
-  %D%/packages/patches/mariadb-cmake-compat.patch		\
   %D%/packages/patches/mars-install.patch			\
   %D%/packages/patches/mars-sfml-2.3.patch			\
+  %D%/packages/patches/mathjax-disable-webpack.patch			\
+  %D%/packages/patches/mathjax-no-a11y.patch			\
   %D%/packages/patches/maxima-defsystem-mkdir.patch		\
   %D%/packages/patches/maven-enforcer-api-fix-old-dependencies.patch	\
   %D%/packages/patches/maven-generate-component-xml.patch		\
@@ -1443,7 +1467,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/mesa-opencl-all-targets.patch		\
   %D%/packages/patches/mesa-skip-tests.patch			\
   %D%/packages/patches/mescc-tools-boot.patch			\
-  %D%/packages/patches/metabat-fix-compilation.patch		\
+  %D%/packages/patches/meson-allow-dirs-outside-of-prefix.patch	\
   %D%/packages/patches/mhash-keygen-test-segfault.patch		\
   %D%/packages/patches/minetest-add-MINETEST_MOD_PATH.patch	\
   %D%/packages/patches/mingw-w64-6.0.0-gcc.patch		\
@@ -1452,6 +1476,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/minisat-friend-declaration.patch		\
   %D%/packages/patches/minisat-install.patch			\
   %D%/packages/patches/mit-krb5-hurd.patch			\
+  %D%/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch	\
+  %D%/packages/patches/mixxx-system-googletest-benchmark.patch	\
   %D%/packages/patches/mpc123-initialize-ao.patch		\
   %D%/packages/patches/mpg321-CVE-2019-14247.patch		\
   %D%/packages/patches/mpg321-gcc-10.patch			\
@@ -1471,8 +1497,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/mumps-shared-libseq.patch		\
   %D%/packages/patches/mumps-shared-mumps.patch			\
   %D%/packages/patches/mumps-shared-pord.patch			\
-  %D%/packages/patches/mupdf-fix-linkage.patch			\
-  %D%/packages/patches/mupdf-CVE-2021-3407.patch		\
   %D%/packages/patches/mupen64plus-ui-console-notice.patch	\
   %D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch    \
   %D%/packages/patches/musl-cross-locale.patch			\
@@ -1491,21 +1515,22 @@ dist_patch_DATA =						\
   %D%/packages/patches/nettle-3.5-CVE-2021-3580-pt2.patch	\
   %D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch	\
   %D%/packages/patches/ngircd-handle-zombies.patch		\
+  %D%/packages/patches/ngless-unliftio.patch		\
   %D%/packages/patches/network-manager-plugin-path.patch	\
+  %D%/packages/patches/network-manager-meson.patch		\
   %D%/packages/patches/nginx-socket-cloexec.patch		\
+  %D%/packages/patches/nnpack-system-libraries.patch		\
   %D%/packages/patches/nsis-env-passthru.patch			\
   %D%/packages/patches/nsis-source-date-epoch.patch		\
   %D%/packages/patches/nss-getcwd-nonnull.patch			\
   %D%/packages/patches/nss-increase-test-timeout.patch		\
   %D%/packages/patches/nss-3.56-pkgconfig.patch			\
-  %D%/packages/patches/ntfs-3g-CVE-2019-9755.patch		\
   %D%/packages/patches/nvi-assume-preserve-path.patch		\
   %D%/packages/patches/nvi-dbpagesize-binpower.patch		\
   %D%/packages/patches/nvi-db4.patch				\
   %D%/packages/patches/nyacc-binary-literals.patch		\
   %D%/packages/patches/obs-modules-location.patch		\
   %D%/packages/patches/ocaml-bitstring-fix-configure.patch \
-  %D%/packages/patches/ocaml-cairo2-caml_ba_array-fix.patch     \
   %D%/packages/patches/ocaml-CVE-2015-8869.patch		\
   %D%/packages/patches/ocaml-Add-a-.file-directive.patch	\
   %D%/packages/patches/ocaml-enable-ocamldoc-reproducibility.patch	\
@@ -1515,7 +1540,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch	\
   %D%/packages/patches/ocaml-multiple-definitions.patch		\
   %D%/packages/patches/ocaml-4.09-multiple-definitions.patch	\
-  %D%/packages/patches/ocaml-ppx-variants-ppxlib-api-change.patch	\
+  %D%/packages/patches/ocaml-qcheck-fix-test-whitespace.patch	\
   %D%/packages/patches/omake-fix-non-determinism.patch	\
   %D%/packages/patches/oneko-remove-nonfree-characters.patch	\
   %D%/packages/patches/onnx-optimizer-system-library.patch	\
@@ -1528,6 +1553,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/opencv-rgbd-aarch64-test-fix.patch	\
   %D%/packages/patches/openfoam-4.1-cleanup.patch			\
   %D%/packages/patches/openjdk-10-idlj-reproducibility.patch	\
+  %D%/packages/patches/openjdk-14-builtins.patch                \
   %D%/packages/patches/openmpi-mtl-priorities.patch		\
   %D%/packages/patches/openssh-hurd.patch			\
   %D%/packages/patches/openresolv-restartcmd-guix.patch	\
@@ -1548,11 +1574,13 @@ dist_patch_DATA =						\
   %D%/packages/patches/pango-skip-libthai-test.patch		\
   %D%/packages/patches/pciutils-hurd-configure.patch		\
   %D%/packages/patches/pciutils-hurd-fix.patch			\
+  %D%/packages/patches/pitivi-fix-build-with-meson-0.60.patch	\
   %D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \
   %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch		\
   %D%/packages/patches/pthreadpool-system-libraries.patch	\
   %D%/packages/patches/python-chai-drop-python2.patch		\
   %D%/packages/patches/python-random2-getrandbits-test.patch		\
+  %D%/packages/patches/python-poppler-qt5-fix-build.patch	\
   %D%/packages/patches/sdcc-disable-non-free-code.patch		\
   %D%/packages/patches/sdl-pango-api_additions.patch		\
   %D%/packages/patches/sdl-pango-blit_overflow.patch		\
@@ -1562,7 +1590,10 @@ dist_patch_DATA =						\
   %D%/packages/patches/sdl-pango-sans-serif.patch		\
   %D%/packages/patches/smalltalk-multiplication-overflow.patch	\
   %D%/packages/patches/sqlite-hurd.patch			\
+  %D%/packages/patches/sssd-collision-with-external-nss-symbol.patch	\
+  %D%/packages/patches/strace-readlink-tests.patch		\
   %D%/packages/patches/sunxi-tools-remove-sys-io.patch	\
+  %D%/packages/patches/p11-kit-hurd.patch			\
   %D%/packages/patches/patchutils-test-perms.patch		\
   %D%/packages/patches/patch-hurd-path-max.patch		\
   %D%/packages/patches/perl-autosplit-default-time.patch	\
@@ -1576,9 +1607,16 @@ dist_patch_DATA =						\
   %D%/packages/patches/perl-reproducible-build-date.patch	\
   %D%/packages/patches/perl-www-curl-fix-struct-void.patch	\
   %D%/packages/patches/perl-www-curl-remove-symbol.patch	\
+  %D%/packages/patches/php-bug-74093-test.patch \
+  %D%/packages/patches/php-openssl_x509_checkpurpose_basic.patch	\
   %D%/packages/patches/picard-fix-id3-rename-test.patch		\
   %D%/packages/patches/picprog-non-intel-support.patch		\
   %D%/packages/patches/pidgin-add-search-path.patch		\
+  %D%/packages/patches/pigx-bsseq-no-citeproc.patch		\
+  %D%/packages/patches/pigx-chipseq-no-citeproc.patch		\
+  %D%/packages/patches/pigx-rnaseq-no-citeproc.patch		\
+  %D%/packages/patches/pigx-sars-cov2-ww-no-citeproc.patch	\
+  %D%/packages/patches/pigx-scrnaseq-no-citeproc.patch		\
   %D%/packages/patches/pinball-system-ltdl.patch		\
   %D%/packages/patches/pingus-boost-headers.patch		\
   %D%/packages/patches/pingus-sdl-libs-config.patch		\
@@ -1591,7 +1629,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/plib-CVE-2011-4620.patch		\
   %D%/packages/patches/plib-CVE-2012-4552.patch		\
   %D%/packages/patches/plotutils-spline-test.patch		\
-  %D%/packages/patches/polkit-CVE-2021-3560.patch		\
+  %D%/packages/patches/polkit-configure-elogind.patch		\
+  %D%/packages/patches/polkit-use-duktape.patch			\
   %D%/packages/patches/portaudio-audacity-compat.patch		\
   %D%/packages/patches/portmidi-modular-build.patch		\
   %D%/packages/patches/postgresql-disable-resolve_symlinks.patch	\
@@ -1605,7 +1644,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/pulseaudio-fix-mult-test.patch		\
   %D%/packages/patches/pulseaudio-longer-test-timeout.patch	\
   %D%/packages/patches/pulseview-qt515-compat.patch		\
-  %D%/packages/patches/purescript-relax-dependencies.patch	\
   %D%/packages/patches/pybugz-encode-error.patch		\
   %D%/packages/patches/pybugz-stty.patch			\
   %D%/packages/patches/pygpgme-disable-problematic-tests.patch  \
@@ -1628,6 +1666,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-aionotify-0.2.0-py3.8.patch	\
   %D%/packages/patches/python-argcomplete-1.11.1-fish31.patch	\
   %D%/packages/patches/python-axolotl-AES-fix.patch		\
+  %D%/packages/patches/python-babel-fix-parse-future-test.patch \
   %D%/packages/patches/python-cross-compile.patch		\
   %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
   %D%/packages/patches/python-configobj-setuptools.patch	\
@@ -1636,10 +1675,13 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-fixtures-remove-monkeypatch-test.patch	\
   %D%/packages/patches/python-flask-restful-werkzeug-compat.patch	\
   %D%/packages/patches/python-keras-integration-test.patch	\
+  %D%/packages/patches/python-peachpy-determinism.patch	\
   %D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
   %D%/packages/patches/python-pyfakefs-remove-bad-test.patch	\
+  %D%/packages/patches/python-pyflakes-test-location.patch	\
   %D%/packages/patches/python-flint-includes.patch		\
   %D%/packages/patches/python-libxml2-utf8.patch		\
+  %D%/packages/patches/python-magic-python-bytecode.patch	\
   %D%/packages/patches/python-matplotlib-run-under-wayland-gtk3.patch	\
   %D%/packages/patches/python-memcached-syntax-warnings.patch	\
   %D%/packages/patches/python-mox3-python3.6-compat.patch	\
@@ -1662,13 +1704,14 @@ dist_patch_DATA =						\
   %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	\
   %D%/packages/patches/python-waitress-fix-tests.patch		\
+  %D%/packages/patches/python-werkzeug-tests.patch		\
   %D%/packages/patches/qemu-build-info-manual.patch		\
   %D%/packages/patches/qemu-CVE-2021-20203.patch		\
-  %D%/packages/patches/qemu-meson-compat.patch			\
-  %D%/packages/patches/qemu-sphinx-compat.patch			\
   %D%/packages/patches/qemu-glibc-2.27.patch 			\
   %D%/packages/patches/qemu-glibc-2.30.patch 			\
+  %D%/packages/patches/qemu-fix-agent-paths.patch 		\
   %D%/packages/patches/qpdfview-qt515-compat.patch		\
   %D%/packages/patches/qrcodegen-cpp-make-install.patch		\
   %D%/packages/patches/qt4-ldflags.patch			\
@@ -1685,6 +1728,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/qtwebkit-fix-building-with-icu-68.patch	\
   %D%/packages/patches/qtwebkit-fix-building-with-glib-2.68.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		\
@@ -1701,7 +1745,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/ripperx-missing-file.patch		\
   %D%/packages/patches/rpcbind-CVE-2017-8779.patch		\
   %D%/packages/patches/rtags-separate-rct.patch			\
-  %D%/packages/patches/racket-minimal-backport-1629887.patch    \
   %D%/packages/patches/racket-minimal-sh-via-rktio.patch	\
   %D%/packages/patches/remake-impure-dirs.patch			\
   %D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch	\
@@ -1715,16 +1758,24 @@ dist_patch_DATA =						\
   %D%/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch \
   %D%/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch \
   %D%/packages/patches/ruby-sanitize-system-libxml.patch	\
+  %D%/packages/patches/rustc-1.39.0-src.patch			\
+  %D%/packages/patches/rust-adblock-ignore-live-tests.patch		\
   %D%/packages/patches/rust-coresimd-doctest.patch		\
+  %D%/packages/patches/i3status-rust-enable-unstable-features.patch	\
   %D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch	\
   %D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch	\
   %D%/packages/patches/rust-nettle-disable-vendor.patch		 \
   %D%/packages/patches/rust-nettle-sys-disable-vendor.patch	 \
-  %D%/packages/patches/rust-reproducible-builds.patch		 \
   %D%/packages/patches/rust-openssl-sys-no-vendor.patch	\
+  %D%/packages/patches/rust-shell2batch-lint-fix.patch		\
+  %D%/packages/patches/rust-wl-clipboard-rs-newer-wl.patch      \
   %D%/packages/patches/sbc-fix-build-non-x86.patch		\
+  %D%/packages/patches/sbcl-aserve-add-HTML-5-elements.patch	\
+  %D%/packages/patches/sbcl-aserve-fix-rfe12668.patch	\
+  %D%/packages/patches/sbcl-burgled-batteries3-fix-signals.patch	\
   %D%/packages/patches/sbcl-clml-fix-types.patch		\
-  %D%/packages/patches/scalapack-blacs-mpi-deprecations.patch	\
+  %D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch	\
+  %D%/packages/patches/scalapack-gcc-10-compilation.patch	\
   %D%/packages/patches/scheme48-tests.patch			\
   %D%/packages/patches/scotch-build-parallelism.patch		\
   %D%/packages/patches/scotch-integer-declarations.patch	\
@@ -1732,6 +1783,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/screen-hurd-path-max.patch		\
   %D%/packages/patches/sdl-libx11-1.6.patch			\
   %D%/packages/patches/seed-webkit.patch			\
+  %D%/packages/patches/sendgmail-accept-ignored-gsuite-flag.patch	\
+  %D%/packages/patches/sendgmail-remove-domain-restriction.patch	\
   %D%/packages/patches/seq24-rename-mutex.patch			\
   %D%/packages/patches/serf-python3.patch			\
   %D%/packages/patches/shakespeare-spl-fix-grammar.patch		\
@@ -1744,11 +1797,15 @@ dist_patch_DATA =						\
   %D%/packages/patches/slim-reset.patch				\
   %D%/packages/patches/slim-login.patch				\
   %D%/packages/patches/slim-display.patch			\
+  %D%/packages/patches/syslinux-gcc10.patch			\
+  %D%/packages/patches/syslinux-strip-gnu-property.patch	\
   %D%/packages/patches/snappy-add-O2-flag-in-CmakeLists.txt.patch	\
   %D%/packages/patches/snappy-add-inline-for-GCC.patch		\
   %D%/packages/patches/sphinxbase-fix-doxygen.patch		\
+  %D%/packages/patches/spice-vdagent-glib-2.68.patch		\
   %D%/packages/patches/sssd-fix-samba.patch			\
   %D%/packages/patches/sssd-system-directories.patch		\
+  %D%/packages/patches/streamlink-update-test.patch             \
   %D%/packages/patches/steghide-fixes.patch			\
   %D%/packages/patches/suitesparse-mongoose-cmake.patch		\
   %D%/packages/patches/superlu-dist-awpm-grid.patch		\
@@ -1774,7 +1831,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/teensy-loader-cli-help.patch		\
   %D%/packages/patches/texinfo-5-perl-compat.patch		\
   %D%/packages/patches/telegram-purple-adjust-test.patch	\
-  %D%/packages/patches/telepathy-glib-channel-memory-leak.patch	\
   %D%/packages/patches/texi2html-document-encoding.patch	\
   %D%/packages/patches/texi2html-i18n.patch			\
   %D%/packages/patches/thefuck-test-environ.patch		\
@@ -1787,20 +1843,27 @@ dist_patch_DATA =						\
   %D%/packages/patches/tk-find-library.patch			\
   %D%/packages/patches/tla2tools-build-xml.patch		\
   %D%/packages/patches/tlf-support-hamlib-4.2+.patch		\
+  %D%/packages/patches/tor-sandbox-i686.patch			\
   %D%/packages/patches/transcode-ffmpeg.patch	\
   %D%/packages/patches/transmission-honor-localedir.patch	\
-  %D%/packages/patches/transmission-remote-gtk-fix-appstream.patch	\
+  %D%/packages/patches/trytond-add-egg-modules-to-path.patch	\
+  %D%/packages/patches/trytond-add-guix_trytond_path.patch	\
   %D%/packages/patches/ttf2eot-cstddef.patch			\
   %D%/packages/patches/tup-unbundle-dependencies.patch		\
   %D%/packages/patches/tuxpaint-stamps-path.patch		\
   %D%/packages/patches/twinkle-bcg729.patch			\
+  %D%/packages/patches/u-boot-allow-disabling-openssl.patch	\
   %D%/packages/patches/u-boot-nintendo-nes-serial.patch		\
   %D%/packages/patches/u-boot-rockchip-inno-usb.patch		\
   %D%/packages/patches/u-boot-sifive-prevent-reloc-initrd-fdt.patch	\
   %D%/packages/patches/u-boot-riscv64-fix-extlinux.patch	\
+  %D%/packages/patches/u-boot-rk3399-enable-emmc-phy.patch	\
   %D%/packages/patches/ucx-tcp-iface-ioctl.patch		\
-  %D%/packages/patches/udiskie-no-appindicator.patch		\
+  %D%/packages/patches/ungoogled-chromium-accelerated-video-decode.patch	\
   %D%/packages/patches/ungoogled-chromium-extension-search-path.patch	\
+  %D%/packages/patches/ungoogled-chromium-ffmpeg-compat.patch	\
+  %D%/packages/patches/ungoogled-chromium-RUNPATH.patch		\
+  %D%/packages/patches/ungoogled-chromium-system-nspr.patch	\
   %D%/packages/patches/unison-fix-ocaml-4.08.patch		\
   %D%/packages/patches/unknown-horizons-python-3.8-distro.patch	\
   %D%/packages/patches/unzip-CVE-2014-8139.patch		\
@@ -1870,13 +1933,17 @@ dist_patch_DATA =						\
   %D%/packages/patches/wpa-supplicant-CVE-2021-30004.patch	\
   %D%/packages/patches/x265-arm-flags.patch			\
   %D%/packages/patches/xf86-video-ark-remove-mibstore.patch	\
+  %D%/packages/patches/xf86-video-mach64-bool-to-boolean.patch	\
   %D%/packages/patches/xf86-video-mach64-glibc-2.20.patch	\
+  %D%/packages/patches/xf86-video-nouveau-fixup-ABI.patch	\
+  %D%/packages/patches/xf86-video-qxl-fix-build.patch	\
   %D%/packages/patches/xf86-video-savage-xorg-compat.patch 	\
   %D%/packages/patches/xf86-video-siliconmotion-fix-ftbfs.patch \
   %D%/packages/patches/xf86-video-tga-remove-mibstore.patch	\
   %D%/packages/patches/xf86-video-voodoo-pcitag.patch		\
   %D%/packages/patches/xfce4-panel-plugins.patch		\
   %D%/packages/patches/xfce4-settings-defaults.patch		\
+  %D%/packages/patches/xgboost-use-system-dmlc-core.patch       \
   %D%/packages/patches/xmonad-dynamic-linking.patch		\
   %D%/packages/patches/xnnpack-system-libraries.patch		\
   %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch		\
@@ -1894,7 +1961,9 @@ dist_patch_DATA =						\
   %D%/packages/patches/ytfzf-programs.patch        \
   %D%/packages/patches/ytfzf-updates.patch        \
   %D%/packages/patches/ytnef-CVE-2021-3403.patch	\
-  %D%/packages/patches/ytnef-CVE-2021-3404.patch
+  %D%/packages/patches/ytnef-CVE-2021-3404.patch	\
+  %D%/packages/patches/zig-disable-libc-note-test.patch         \
+  %D%/packages/patches/zig-use-system-paths.patch
 
 MISC_DISTRO_FILES =				\
   %D%/packages/ld-wrapper.in
diff --git a/gnu/packages/accessibility.scm b/gnu/packages/accessibility.scm
index f3bd094c92..000f007015 100644
--- a/gnu/packages/accessibility.scm
+++ b/gnu/packages/accessibility.scm
@@ -182,7 +182,6 @@ terminals.")
        ("icu" ,icu4c)
        ("libbraille" ,libbraille)
        ("libpcre2" ,pcre2)
-       ("linux-headers" ,linux-libre-headers)
        ("louis" ,liblouis)
        ("ncurses" ,ncurses)
        ("polkit" ,polkit)
@@ -223,19 +222,17 @@ incorporated.")
                                "--without-docs"
                                "--with-notification")))
     (inputs
-     `(("libxml2" ,libxml2)
-       ("libglade" ,libglade)
-       ("librsvg" ,librsvg)
-       ("gstreamer" ,gstreamer)
-       ("cairo" ,cairo)
-       ("gtk+" ,gtk+)
-       ("libxtst" ,libxtst)
-       ("libxcomposite" ,libxcomposite)
-       ("libnotify" ,libnotify)))
+     (list libxml2
+           libglade
+           librsvg
+           gstreamer
+           cairo
+           gtk+
+           libxtst
+           libxcomposite
+           libnotify))
     (native-inputs
-     `(("gettext-minimal" ,gettext-minimal)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list gettext-minimal intltool pkg-config))
     (home-page "http://florence.sourceforge.net/")
     (synopsis "Extensible, scalable virtual keyboard for X11")
     (description
@@ -268,9 +265,9 @@ available to help to click.")
                   "14pyzc4ws1mj859xs9n4x83wzxxvd3bh5bdxzr6nv267xwx1mq68"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (inputs
-       `(("hidapi" ,hidapi)))
+       (list hidapi))
       (arguments
        `(#:tests? #f ; no tests
          #:make-flags (list (string-append "CC=" ,(cc-for-target)))
diff --git a/gnu/packages/acl.scm b/gnu/packages/acl.scm
index c2de62657f..da6dead3c2 100644
--- a/gnu/packages/acl.scm
+++ b/gnu/packages/acl.scm
@@ -86,7 +86,7 @@
                ((".*test/cp\\.test.*") "")
                ((".*test/setfacl-X\\.test.*") ""))
              #t)))))
-    (inputs `(("attr" ,attr)))
+    (inputs (list attr))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("perl" ,perl)))
@@ -114,23 +114,23 @@
        (modify-phases %standard-phases
          (add-after 'unpack 'disable-tests
            (lambda* (#:key outputs inputs #:allow-other-keys)
-             ;; These tests operate on real files, but our tempfs does not support
-             ;; ACLs
+             ;; These tests operate on real files, but our tmpfs does not support
+             ;; ACLs.
              (substitute* "tests/test_acls.py"
                (("( *)def test_applyto(_extended(_mixed)?)?" match indent)
-                (string-append indent "@pytest.mark.skip(reason=\"guix\")\n" match)))
-             #t))
+                (string-append indent "@pytest.mark.skip(reason=\"guix\")\n"
+                               match)))))
          (replace 'check
            (lambda* (#:key inputs outputs tests? #:allow-other-keys)
              (when tests?
                (add-installed-pythonpath inputs outputs)
-               (invoke "pytest" "tests"))
-               #t)))))
-    (inputs `(("acl" ,acl)))
-    (native-inputs `(("python-pytest" ,python-pytest)))
+               (invoke "pytest" "tests")))))))
+    (inputs (list acl))
+    (native-inputs (list python-pytest))
     (home-page "https://pylibacl.k1024.org/")
-    (synopsis "POSIX.1e ACLs for python")
-    (description "Python 3.4+ extension module that allows you to manipulate
-the POSIX.1e Access Control Lists present in some OS/file-systems
-combinations.")
+    (synopsis "POSIX.1e @acronym{ACLs, access control lists} for Python")
+    (description
+     "This Python extension module manipulates the POSIX.1e @acronym{ACLs,
+Access Control Lists} available on many file systems.  These allow more
+fine-grained access control than traditional user/group permissions.")
     (license lgpl2.1+)))
diff --git a/gnu/packages/ada.scm b/gnu/packages/ada.scm
index 8f8b68d80d..a3bba245ec 100644
--- a/gnu/packages/ada.scm
+++ b/gnu/packages/ada.scm
@@ -134,7 +134,7 @@
                                    (find-files "share" ".")))
                  #t)))))))
     (native-inputs
-     `(("sed" ,sed)))
+     (list sed))
     (home-page (string-append "https://web.archive.org/web/20140902150609/"
                               "http://www2.informatik.uni-stuttgart.de/iste/ps/"
                               "ada-software/html/dos_ada.html"))
@@ -167,10 +167,7 @@ level.")
                 (file-name (string-append name "-" version "-checkout"))))
       (build-system python-build-system)
       (propagated-inputs
-       `(("python2-docutils" ,python2-docutils)
-         ("python2-enum34" ,python2-enum34)
-         ("python2-funcy" ,python2-funcy)
-         ("python2-mako" ,python2-mako)))
+       (list python2-docutils python2-enum34 python2-funcy python2-mako))
       (arguments
        `(#:python ,python-2
          #:tests? #f))           ; Tests would requite gprbuild (Ada).
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 78b37c04d7..72b0b4ee72 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -45,6 +45,7 @@
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -129,6 +130,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages polkit)
   #:use-module (gnu packages popt)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-crypto)
@@ -178,13 +180,9 @@
                 "supath=/run/setuid-programs/su"))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+-2)))
+     (list glib gtk+-2))
     (synopsis "Graphical front end for @command{su}")
     (description
      "Ktsuss stands for ``Keep the @command{su} simple, stupid''.
@@ -206,16 +204,15 @@ simplicity in mind.")
         (base32 "15xp47sz7kk1ciffw3f5xw2jg2mb2lqrbr3q6p4bkbz5dap9iy8p"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (inputs
-     `(("libgcrypt" ,libgcrypt)
-       ("libgpg-error" ,libgpg-error)
-       ("libmhash" ,libmhash)
-       ("pcre:static" ,pcre "static")
-       ("pcre" ,pcre)
-       ("zlib:static" ,zlib "static")
-       ("zlib" ,zlib)))
+     (list libgcrypt
+           libgpg-error
+           libmhash
+           `(,pcre "static")
+           pcre
+           `(,zlib "static")
+           zlib))
     (synopsis "File and directory integrity checker")
     (description
      "AIDE (Advanced Intrusion Detection Environment) is a file and directory
@@ -242,10 +239,9 @@ usual file attributes can be checked for inconsistencies.")
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list pkg-config which))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (arguments
      `(#:tests? #f                      ; no test suite
        #:make-flags
@@ -290,17 +286,15 @@ and provides a \"top-like\" mode (monitoring).")
      '(#:configure-flags '("--localstatedir=/var")
        #:make-flags '("GUILE_AUTO_COMPILE=0")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-
-       ;; This is the Guile we use as a cross-compiler...
-       ("guile" ,guile-3.0)))
+     (list pkg-config
+           ;; This is the Guile we use as a cross-compiler...
+           guile-3.0))
     (inputs
      ;; ... and this is the one that appears in shebangs when cross-compiling.
-     `(("guile" ,guile-3.0)
-
-       ;; The 'shepherd' command uses Readline when used interactively.  It's
-       ;; an unusual use case though, so we don't propagate it.
-       ("guile-readline" ,guile-readline)))
+     (list guile-3.0
+           ;; The 'shepherd' command uses Readline when used interactively.  It's
+           ;; an unusual use case though, so we don't propagate it.
+           guile-readline))
     (synopsis "System service manager")
     (description
      "The GNU Shepherd is a daemon-managing daemon, meaning that it supervises
@@ -315,25 +309,18 @@ interface and is based on GNU Guile.")
     (inherit shepherd)
     (name "guile2.2-shepherd")
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("guile" ,guile-2.2)))
+     (list pkg-config guile-2.2))
     (inputs
-     `(("guile" ,guile-2.2)
-       ("guile2.2-readline" ,guile2.2-readline)))))
-
-(define-public guile3.0-shepherd
-  (deprecated-package "guile3.0-shepherd" shepherd))
+     (list guile-2.2 guile2.2-readline))))
 
 (define-public guile2.0-shepherd
   (package
     (inherit shepherd)
     (name "guile2.0-shepherd")
     (native-inputs
-     `(("help2man" ,help2man)
-       ("pkg-config" ,pkg-config)
-       ("guile" ,guile-2.0)))
+     (list help2man pkg-config guile-2.0))
     (inputs
-     `(("guile" ,guile-2.0)))
+     (list guile-2.0))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -410,8 +397,7 @@ inspired by @command{vi}.")
                                       ,(dirname (which "readlink"))))))
              #t)))))
     (inputs
-     `(("python" ,python)
-       ("util-linux" ,util-linux))) ; contains sfdisk for growpart
+     (list python util-linux)) ; contains sfdisk for growpart
     (home-page "https://launchpad.net/cloud-utils")
     (synopsis "Set of utilities for cloud computing environments")
     (description
@@ -645,7 +631,7 @@ console.")
 (define-public htop
   (package
     (name "htop")
-    (version "3.0.5")
+    (version "3.1.2")
     (source
      (origin
        (method git-fetch)
@@ -653,15 +639,13 @@ console.")
              (url "https://github.com/htop-dev/htop")
              (commit version)))
        (sha256
-        (base32 "10lp6cbfvigzp6pq5nwj3s3l4vs7cv92krz2r08nwrz8vl6rqdzp"))
+        (base32 "024qhrlmqgwmn6bwb5yiff9bhhdabryiphzx8y654k8r8vqi59j4"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("python" ,python-minimal-wrapper)))     ; for scripts/MakeHeader.py
+     (list autoconf automake python-minimal-wrapper))     ; for scripts/MakeHeader.py
     (home-page "https://htop.dev")
     (synopsis "Interactive process viewer")
     (description
@@ -705,7 +689,7 @@ memory, disks, network and processes.")
         (base32 "1fwmiwvs8ax9az3hbp1p79x6m3wq73pn3vkbhcg9jvps4wv8wcwb"))))
     (build-system python-build-system)
     (inputs
-     `(("python-psutil" ,python-psutil)))
+     (list python-psutil))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -835,6 +819,7 @@ hostname.")
        '(,@(if (hurd-target?)
              '()
              '("--with-libpam"))
+          "shadow_cv_logdir=/var/log"
           "ac_cv_func_setpgrp_void=yes")
 
        #:phases
@@ -931,7 +916,7 @@ login, passwd, su, groupadd, and useradd.")
                (mkdir-p man8))
              #t)))
        #:tests? #f))                              ; no tests
-    (inputs `(("shadow" ,shadow)))
+    (inputs (list shadow))
 
     (home-page "https://sourceforge.net/projects/mingetty")
     (synopsis "Getty for the text console")
@@ -980,8 +965,7 @@ to allow automatic login and starting any app.")
                                (map (cut string-append etc "/" <>)
                                     '("services" "protocols" "rpc")))
                      #t))))
-    (native-inputs `(("tar" ,tar)
-                     ("xz" ,xz)))
+    (native-inputs (list tar xz))
     (synopsis "IANA protocol, port, and RPC number assignments")
     (description
      "This package provides the /etc/services, /etc/protocols, and /etc/rpc
@@ -1023,7 +1007,7 @@ would need and has several interesting built-in capabilities.")
 (define-public netcat-openbsd
   (package
     (name "netcat-openbsd")
-    (version "1.217-2")
+    (version "1.218-2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1032,7 +1016,7 @@ would need and has several interesting built-in capabilities.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "19sr52ix14w344pv13ppb0c1wyg5dxhic1fw2q0s3qfmx57b9hhp"))))
+                "1rj4nx0jdism1idc4fghahqbafhv72cpk7zlyq9czgvbps10d1kh"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no test suite
@@ -1044,8 +1028,7 @@ would need and has several interesting built-in capabilities.")
          (add-before 'build 'patch
            (lambda _
              (setenv "QUILT_PATCHES" "debian/patches")
-             (invoke "quilt" "push" "-a")
-             #t))
+             (invoke "quilt" "push" "-a")))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -1056,11 +1039,9 @@ would need and has several interesting built-in capabilities.")
                (install-file "nc" bin)
                (install-file "nc.1" man)
                (install-file "debian/copyright" doc)
-               (copy-recursively "debian/examples" examples)
-               #t))))))
-    (inputs `(("libbsd" ,libbsd)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("quilt" ,quilt)))
+               (copy-recursively "debian/examples" examples)))))))
+    (inputs (list libbsd))
+    (native-inputs (list pkg-config quilt))
     (home-page "https://packages.debian.org/sid/netcat-openbsd")
     (synopsis "Read and write data over TCP/IP")
     (description
@@ -1142,7 +1123,7 @@ recursive runs on the generated subnets.  (also IPv6)
                       (let ((out (assoc-ref outputs "out")))
                         (install-file "prips"
                                       (string-append out "/bin"))))))))
-    (native-inputs `(("perl-test-harness" ,perl-test-harness)))
+    (native-inputs (list perl-test-harness))
     (synopsis "Tool that prints the IP addresses in a given range")
     (description "Prips can be used to print all of the IP addresses in
  a given range.  This allows the enhancement of tools only work
@@ -1163,8 +1144,7 @@ recursive runs on the generated subnets.  (also IPv6)
                "053hfp7s66lnilm1ii4jrjmy44wpa2cwwh6f0sl8cyz0mm813x4b"))))
     (build-system gnu-build-system)
     (arguments '(#:configure-flags '("alive_cv_nice_ping=yes")))
-    (inputs `(("guile" ,guile-2.0)
-              ("inetutils" ,inetutils)))
+    (inputs (list guile-2.0 inetutils))
     (home-page "https://www.gnu.org/software/alive/")
     (synopsis "Autologin and keep-alive daemon")
     (description
@@ -1175,7 +1155,7 @@ connection alive.")
 (define-public isc-dhcp
   (let* ((bind-major-version "9")
          (bind-minor-version "11")
-         (bind-patch-version "32")
+         (bind-patch-version "36")
          (bind-release-type "")         ; for patch release, use "-P"
          (bind-release-version "")      ; for patch release, e.g. "6"
          (bind-version (string-append bind-major-version
@@ -1292,8 +1272,7 @@ connection alive.")
                            (list inetutils net-tools coreutils sed))))))))))
 
       (native-inputs
-       `(("perl" ,perl)
-         ("file" ,file)))
+       (list perl file))
 
       (inputs `(("inetutils" ,inetutils)
                 ("bash" ,bash-minimal)
@@ -1311,7 +1290,7 @@ connection alive.")
                                         "/bind-" bind-version ".tar.gz"))
                     (sha256
                      (base32
-                      "0hhkb4d14hvly2751cxl2s2xyim3bri8qaisgkcm456xfi5wpy6b"))))
+                      "108nh7hha4r0lb5hf1fn7lqaascvhsrghpz6afm5lf9vf2vgqly9"))))
 
                 ("coreutils*" ,coreutils)
                 ("sed*" ,sed)))
@@ -1340,12 +1319,12 @@ tools: server, client, and relay agent.")
         (base32 "1df827m3vkjq2bcs5y9wg2cygvpdwl8ppl446qqhyym584gz54nl"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("bison" ,bison)
-       ("check" ,check)
-       ("flex" ,flex)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf
+           automake
+           bison
+           check
+           flex
+           pkg-config))
     (arguments
      `(#:configure-flags '("--with-check")))
     (home-page "https://radvd.litech.org/")
@@ -1370,8 +1349,7 @@ message.  These messages are required for IPv6 stateless autoconfiguration.")
                 "1m5x26vlbymp90k1qh0w3nj2nxzyvfrmfmwpj17k81dgri55ya7d"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (arguments
      ;; There are some tests in testprogs/, but no automated test suite.
      `(#:tests? #f
@@ -1405,9 +1383,8 @@ network statistics collection, security monitoring, network debugging, etc.")
                (base32
                 "1ghfs5gifzrk3813zf9zalfbjs70wg6llz6q31k180r7zf2nkcvr"))))
     (build-system gnu-build-system)
-    (inputs `(("libpcap" ,libpcap)
-              ("openssl" ,openssl)))
-    (native-inputs `(("perl" ,perl)))        ; for tests
+    (inputs (list libpcap openssl))
+    (native-inputs (list perl))        ; for tests
     (home-page "https://www.tcpdump.org/")
     (synopsis "Network packet analyzer")
     (description
@@ -1430,11 +1407,9 @@ through the network interface controller.")
                 "1855np7c4b0bqzhf1l1dyzxb90fpnvrirdisajhci5am6als31z9"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("ncurses" ,ncurses)
-       ("libpcap" ,libpcap)))
+     (list glib ncurses libpcap))
     (home-page
      "https://web.archive.org/web/20160703195221/http://jnettop.kubs.info/wiki/")
     (synopsis "Visualize network traffic by bandwidth use")
@@ -1503,26 +1478,26 @@ by bandwidth they use.")
                   (find-files "." ".*")))
                #t))))))
     (native-inputs
-     `(("perl-cpan-changes" ,perl-cpan-changes)
-       ("perl-file-slurp" ,perl-file-slurp)
-       ("perl-file-which" ,perl-file-which)
-       ("perl-module-build" ,perl-module-build)
-       ("perl-readonly" ,perl-readonly)
-       ("perl-test-differences" ,perl-test-differences)
-       ("perl-test-distmanifest" ,perl-test-distmanifest)
-       ("perl-test-perltidy" ,perl-test-perltidy)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)
-       ("perl-test-trap" ,perl-test-trap)
-       ("perltidy" ,perltidy)))
+     (list perl-cpan-changes
+           perl-file-slurp
+           perl-file-which
+           perl-module-build
+           perl-readonly
+           perl-test-differences
+           perl-test-distmanifest
+           perl-test-perltidy
+           perl-test-pod
+           perl-test-pod-coverage
+           perl-test-trap
+           perltidy))
     (inputs
-     `(("perl-exception-class" ,perl-exception-class)
-       ("perl-sort-naturally" ,perl-sort-naturally)
-       ("perl-tk" ,perl-tk)
-       ("perl-try-tiny" ,perl-try-tiny)
-       ("perl-x11-protocol" ,perl-x11-protocol)
-       ("perl-x11-protocol-other" ,perl-x11-protocol-other)
-       ("xterm" ,xterm)))
+     (list perl-exception-class
+           perl-sort-naturally
+           perl-tk
+           perl-try-tiny
+           perl-x11-protocol
+           perl-x11-protocol-other
+           xterm))
     ;; The clusterssh.sourceforge.net address requires login to view
     (home-page "https://sourceforge.net/projects/clusterssh/")
     (synopsis "Secure concurrent multi-server terminal control")
@@ -1532,6 +1507,53 @@ console window to allow commands to be interactively run on multiple servers
 over ssh connections.")
     (license license:gpl2+)))
 
+(define-public realmd
+  (package
+    (name "realmd")
+    (version "0.17.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/freedesktop/realmd")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1c6q2a86kk2f1akzc36nh52hfwsmmc0mbp6ayyjxj4zsyk9zx5bf"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("--with-systemd-unit-dir=no"
+                           "--with-systemd-journal=no"
+                           "--with-distro=GNU guix"
+                           "--disable-doc")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'fix-service
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; GNU Guix does not have service config file, therefore we remove
+             ;; the line that copies the file.
+             (substitute* "Makefile"
+               ((".*/service/realmd-.*") "")))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("glib-bin" ,glib "bin")
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python)))
+    (inputs
+     (list glib mit-krb5 openldap polkit))
+    (synopsis "DBus service for network authentication")
+    (description "This package provides an on demand system DBus service.
+It allows callers to configure network authentication and domain membership
+in a standard way.  Realmd discovers information about the domain or realm
+automatically and does not require complicated configuration in order to join
+a domain or realm.  Dbus system service that manages discovery and enrollment in
+realms/domains like Active Directory or IPA.")
+    (home-page "https://www.freedesktop.org/software/realmd/")
+    (license license:lgpl2.1+)))
+
 (define-public rename
   (package
     (name "rename")
@@ -1562,9 +1584,7 @@ over ssh connections.")
                   (find-files "." ".*")))
                #t))))))
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-module-build perl-test-pod perl-test-pod-coverage))
     (home-page "https://metacpan.org/pod/distribution/File-Rename/rename.PL")
     (synopsis "Perl extension for renaming multiple files")
     (description
@@ -1646,9 +1666,7 @@ at once based on a Perl regular expression.")
                   (add-after 'install 'install-info
                     (lambda _
                       (invoke "make" "install-info"))))))
-    (native-inputs `(("texinfo" ,texinfo)
-                     ("automake" ,automake)
-                     ("util-linux" ,util-linux))) ; for 'cal'
+    (native-inputs (list texinfo automake util-linux)) ; for 'cal'
     (inputs `(("coreutils*" ,coreutils)
               ("mailutils" ,mailutils)))
     (home-page "https://www.gnu.org/software/rottlog/")
@@ -1664,7 +1682,7 @@ system administrator.")
 (define-public sudo
   (package
     (name "sudo")
-    (version "1.9.8")
+    (version "1.9.8p2")
     (source (origin
               (method url-fetch)
               (uri
@@ -1674,12 +1692,11 @@ system administrator.")
                                     version ".tar.gz")))
               (sha256
                (base32
-                "1rlln9nb3lvg4qlkp0c9qxjflx36rf16mflg0sps2kl0k7lmswzi"))
+                "0b8gd15l2g22w4fhhz0gzmq5c8370klanmy2c1p3px6yly6qnfwy"))
               (modules '((guix build utils)))
               (snippet
                '(begin
-                  (delete-file-recursively "lib/zlib")
-                  #t))))
+                  (delete-file-recursively "lib/zlib")))))
     (build-system gnu-build-system)
     (outputs (list "out"))
     (arguments
@@ -1732,14 +1749,13 @@ system administrator.")
              ;; not the task of the build system, and fails.
              (substitute* "plugins/sudoers/Makefile.in"
                (("^pre-install:" match)
-                (string-append match "\ndisabled-" match)))
-             #t)))
+                (string-append match "\ndisabled-" match))))))
 
        ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but
        ;; the chroot's /etc/passwd doesn't have it.  Turn off the tests.
        #:tests? #f))
     (native-inputs
-     `(("groff" ,groff)))
+     (list groff))
     (inputs
      `(("coreutils" ,coreutils)
        ,@(if (hurd-target?)
@@ -1803,7 +1819,7 @@ commands and their arguments.")
        (list (string-append "CC=" ,(cc-for-target)))
        #:tests? #f))                 ; no test suite
     (native-inputs
-     `(("bison" ,bison)))
+     (list bison))
     (home-page "https://github.com/Duncaen/OpenDoas")
     (synopsis "Portable version of OpenBSD's doas command")
     (description "Doas is a minimal replacement for the venerable sudo.  It was
@@ -1898,11 +1914,9 @@ features of sudo with a fraction of the codebase.")
                                         "/lib"))
       #:tests? #f))
     (inputs
-     `(("readline" ,readline)
-       ("libnl" ,libnl)
-       ("openssl" ,openssl)))
+     (list readline libnl openssl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://w1.fi/wpa_supplicant/")
     (synopsis "Connecting to WPA and WPA2-protected wireless networks")
     (description
@@ -1923,8 +1937,8 @@ command.")
 (define-public wpa-supplicant
   (package (inherit wpa-supplicant-minimal)
     (name "wpa-supplicant")
-    (inputs `(("dbus" ,dbus)
-              ,@(package-inputs wpa-supplicant-minimal)))
+    (inputs (modify-inputs (package-inputs wpa-supplicant-minimal)
+              (prepend dbus)))
     (arguments
      (substitute-keyword-arguments (package-arguments wpa-supplicant-minimal)
        ((#:phases phases)
@@ -1950,14 +1964,12 @@ command.")
   (package
     (inherit wpa-supplicant)
     (name "wpa-supplicant-gui")
-    (inputs `(("qtbase" ,qtbase-5)
-              ("qtsvg" ,qtsvg)
-              ,@(package-inputs wpa-supplicant)))
+    (inputs (modify-inputs (package-inputs wpa-supplicant)
+              (prepend qtbase-5 qtsvg)))
     (native-inputs
      ;; For icons.
-     `(("imagemagick" ,imagemagick)
-       ("inkscape" ,inkscape)
-       ,@(package-native-inputs wpa-supplicant)))
+     (modify-inputs (package-native-inputs wpa-supplicant)
+       (prepend imagemagick inkscape)))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-after 'unpack 'chdir
@@ -2049,11 +2061,10 @@ command.")
                          (string-append "LIBDIR=" (assoc-ref %outputs "out")
                                         "/lib"))
       #:tests? #f))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
 
     ;; There's an optional dependency on SQLite.
-    (inputs `(("openssl" ,openssl)
-              ("libnl" ,libnl)))
+    (inputs (list openssl libnl))
     (home-page "https://w1.fi/hostapd/")
     (synopsis "Daemon for Wi-Fi access points and authentication servers")
     (description
@@ -2138,18 +2149,17 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
 (define-public acpica
   (package
     (name "acpica")
-    (version "20210730")
+    (version "20210930")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "https://acpica.org/sites/acpica/files/acpica-unix-"
+                    "https://acpica.org/sites/acpica/files/acpica-unix2-"
                     version ".tar.gz"))
               (sha256
                (base32
-                "1pmm977nyl3bs71ipzcl4dh30qm8x9wm2p2ml0m62rl62kai832a"))))
+                "06wsrl1118sl9z76p9sh53zvzv5hpm82qks896d8slx5dgnzrrll"))))
     (build-system gnu-build-system)
-    (native-inputs `(("flex" ,flex)
-                     ("bison" ,bison)))
+    (native-inputs (list flex bison))
     (arguments
      `(#:make-flags (list (string-append "PREFIX=" %output)
                           (string-append "CC=" ,(cc-for-target))
@@ -2174,17 +2184,16 @@ development, not the kernel implementation of ACPI.")
 (define-public s-tui
   (package
     (name "s-tui")
-    (version "1.1.1")
+    (version "1.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "s-tui" version))
        (sha256
-        (base32 "1clk59wf6v1lq33h4x5qwxvz5ng9mfkp1s6ynxa58w2raq8dbmy5"))))
+        (base32 "1l2ik5iwmb8vxa2aqdy62zfy3zfzbpq5a0pgpka2vvlw9ivpqy5p"))))
     (build-system python-build-system)
     (inputs
-     `(("python-psutil" ,python-psutil)
-       ("python-urwid" ,python-urwid)))
+     (list python-psutil python-urwid))
     (home-page "https://github.com/amanusk/s-tui")
     (synopsis "Interactive terminal stress test and monitoring tool")
     (description
@@ -2195,15 +2204,17 @@ utilization, temperature and power.")
 (define-public stress
   (package
     (name "stress")
-    (version "1.0.4")
+    (version "1.0.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://debian/pool/main/s/stress/stress_"
                                   version ".orig.tar.gz"))
               (sha256
                (base32
-                "0nw210jajk38m3y7h8s130ps2qsbz7j75wab07hi2r3hlz14yzh5"))))
+                "09shpd85g8dvpiw0mnwykss676g0s7lbi8ab37xjinb5lfff960p"))))
     (build-system gnu-build-system)
+    (native-inputs
+     (list autoconf automake))
     (home-page "https://packages.debian.org/sid/stress")
     (synopsis "Impose load on and stress test a computer system")
     (description
@@ -2221,7 +2232,7 @@ system is under heavy load.")
 (define-public detox
   (package
     (name "detox")
-    (version "1.4.2")
+    (version "1.4.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2230,12 +2241,10 @@ system is under heavy load.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0q16dvjbry573j4ayh9dwskdh1dxx8dk4rj94w6f2dcv4ww37is1"))))
+                "116bgpbkh3c96h6vq0880rmnpb5kbnnlvvkpsrcib6928bj8lfvi"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("flex" ,flex)))
+     (list autoconf automake flex))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-after 'unpack 'delete-configure
@@ -2269,14 +2278,14 @@ characters can be replaced as well, as can UTF-8 characters.")
                 "1zlh44w67py416hkvw6nrfmjickc2d43v51vcli5p374d5sw84ql"))))
     (build-system gnu-build-system)
     (inputs
-     `(("ntfs-3g" ,ntfs-3g)
-       ("util-linux" ,util-linux "lib")
-       ("openssl" ,openssl)
-       ;; FIXME: add reiserfs.
-       ("zlib" ,zlib)
-       ("e2fsprogs" ,e2fsprogs)
-       ("libjpeg" ,libjpeg-turbo)
-       ("ncurses" ,ncurses)))
+     (list ntfs-3g
+           `(,util-linux "lib")
+           openssl
+           ;; FIXME: add reiserfs.
+           zlib
+           e2fsprogs
+           libjpeg-turbo
+           ncurses))
     (home-page "https://www.cgsecurity.org/wiki/TestDisk")
     (synopsis "Data recovery tool")
     (description
@@ -2425,7 +2434,7 @@ various ways that may be running with too much privilege.")
                (base32
                 "1mlc25sd5rgj5xmzcllci47inmfdw7cp185fday6hc9rwqkqmnaw"))))
     (build-system gnu-build-system)
-    (inputs `(("libcap-ng" ,libcap-ng)))
+    (inputs (list libcap-ng))
     (home-page "https://www.smartmontools.org/")
     (synopsis "S.M.A.R.T. harddisk control and monitoring tools")
     (description
@@ -2450,8 +2459,7 @@ degradation and failure.")
         (base32 "1g9p50xhi2sp0hqxml4w2k0kq9jv988q2yxm347z5349dlxvap6d"))))
     (build-system gnu-build-system)
     (inputs
-     `(("ncurses" ,ncurses)
-       ("pcre2" ,pcre2)))
+     (list ncurses pcre2))
     (home-page "https://github.com/adrianlopezroche/fdupes")
     (synopsis "Identify duplicate files")
     (description
@@ -2498,14 +2506,13 @@ of supported upstream metrics systems simultaneously.")
 (define-public ansible-core
   (package
     (name "ansible-core")
-    (version "2.11.4")
+    (version "2.11.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ansible-core" version))
        (sha256
-        (base32
-         "0jgahcv2pyc5ky0wir55a1h9q9d6rgqj60rqmvlpbj76vz1agsi2"))))
+        (base32 "0fih7nxszni8imi5sywsifd976v77ydhip43pzg7dd65qy1h5mck"))))
     (build-system python-build-system)
     (arguments
      `(#:modules ((guix build python-build-system)
@@ -2545,7 +2552,7 @@ sys.argv[0] = re.sub(r'\\.([^/]*)-real$', r'\\1', sys.argv[0])
            (lambda _
              (substitute* "test/lib/ansible_test/_internal/ansible_util.py"
                (("PYTHONPATH=get_ansible_python_path\\(args\\)" all)
-                (string-append all "+ ':' + os.environ['PYTHONPATH']")))))
+                (string-append all "+ ':' + os.environ['GUIX_PYTHONPATH']")))))
          (add-after 'unpack 'patch-paths
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (substitute* "lib/ansible/module_utils/compat/selinux.py"
@@ -2582,27 +2589,24 @@ sys.argv[0] = re.sub(r'\\.([^/]*)-real$', r'\\1', sys.argv[0])
                ;; devel/test/utils/shippable/shippable.sh.
                (invoke "ansible-test" "units" "-v")))))))
     (native-inputs
-     `(("openssh" ,openssh)
-       ("openssl" ,openssl)
-       ("python-mock" ,python-mock)
-       ("python-pycrypto" ,python-pycrypto)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-forked" ,python-pytest-forked)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-pytest-xdist" ,python-pytest-xdist)
-       ("python-pytz" ,python-pytz)))
+     (list openssh
+           openssl
+           python-mock
+           python-pycrypto
+           python-pytest
+           python-pytest-forked
+           python-pytest-mock
+           python-pytest-xdist
+           python-pytz))
     (inputs                    ;optional dependencies captured in wrap scripts
-     `(("libselinux" ,libselinux)
-       ("python-paramiko" ,python-paramiko)
-       ("python-passlib" ,python-passlib)
-       ("python-pexpect" ,python-pexpect)
-       ("sshpass" ,sshpass)))
+     (list libselinux python-paramiko python-passlib python-pexpect
+           sshpass))
     (propagated-inputs      ;core dependencies listed in egg-info/requires.txt
-     `(("python-cryptography" ,python-cryptography)
-       ("python-jinja2" ,python-jinja2)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-packaging" ,python-packaging) ;for version number parsing
-       ("python-resolvelib" ,python-resolvelib-0.5)))
+     (list python-cryptography
+           python-jinja2
+           python-pyyaml
+           python-packaging ;for version number parsing
+           python-resolvelib-0.5))
     (home-page "https://www.ansible.com/")
     (synopsis "Radically simple IT automation")
     (description "Ansible aims to be a radically simple IT automation system.
@@ -2629,16 +2633,16 @@ provides the following commands:
 (define-public ansible
   (package
     (name "ansible")
-    (version "4.4.0")
+    (version "4.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ansible" version))
        (sha256
-        (base32 "031n22j0lsmh69x6i6gkva81j68b4yzh1pbg3q2h4bknl85q46ag"))))
+        (base32 "0aab9id6dqfw2111r731c7y1p77dpzczynmgl4d989p3a7n54z0b"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("ansible-core" ,ansible-core)))
+     (list ansible-core))
     ;; The Ansible collections are found by ansible-core via PYTHONPATH; the
     ;; following search path ensures that they are found even when Python is
     ;; not present in the profile.
@@ -2648,7 +2652,7 @@ provides the following commands:
      ;; variable in the tests/cpan.scm test.
      (list (search-path-specification
             (variable "PYTHONPATH")
-            (files (list "lib/python3.8/site-packages")))))
+            (files (list "lib/python3.9/site-packages")))))
     (home-page "https://www.ansible.com/")
     (synopsis "Radically simple IT automation")
     (description "Ansible aims to be a radically simple IT automation system.
@@ -2678,18 +2682,17 @@ modules and plugins that extend Ansible.")
                         "debops-debops-defaults-fall-back-to-less.patch"))))
     (build-system python-build-system)
     (native-inputs
-     `(("git" ,git)))
+     (list git))
     (inputs
-     `(("ansible" ,ansible)
-       ("encfs" ,encfs)
-       ("fuse" ,fuse)
-       ("util-linux" ,util-linux)  ;; for umount
-       ("findutils" ,findutils)
-       ("gnupg" ,gnupg)
-       ("which" ,which)))
+     (list ansible
+           encfs
+           fuse
+           util-linux ;; for umount
+           findutils
+           gnupg
+           which))
     (propagated-inputs
-     `(("python-future" ,python-future)
-       ("python-distro" ,python-distro)))
+     (list python-future python-distro))
     (arguments
      `(#:tests? #f
        #:phases
@@ -2840,8 +2843,7 @@ limits.")
         (base32 "1rgpsh70manr2dydna9da4x7p8ahii7dgdgwir5fka340n1wrcws"))))
     (build-system gnu-build-system)
     (native-inputs                      ; for tests
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-mock python-pytest))
     (inputs
      `(("python" ,python-wrapper)))
     (arguments
@@ -2914,8 +2916,10 @@ the command line.")
                 "15sgkdyijb7vbxpxjavh5qm5nvyii3fqcg9mzvw7fx8s6zmfwczp"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libpcap" ,libpcap)
-        ("ncurses" ,ncurses)))
+      (list libpcap ncurses))
+    (arguments
+      ;; Fix build failure with GCC 10
+     '(#:configure-flags '("CFLAGS=-O2 -g -fcommon")))
     (synopsis "Monitor network usage")
     (description "Iftop does for network usage what @command{top} does
 for CPU usage.  It listens to network traffic on a named interface and
@@ -2946,8 +2950,7 @@ displays a table of current bandwidth usage by pairs of hosts.")
                      ""))
                   #t))))
     (inputs
-     `(("openssl" ,openssl)
-       ("libgcrypt" ,libgcrypt)))
+     (list openssl libgcrypt))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -2989,41 +2992,39 @@ platform-specific methods.")
   (package
     (name "audit")
     (home-page "https://people.redhat.com/sgrubb/audit/")
-    (version "3.0.4")
+    (version "3.0.6")
     (source (origin
               (method url-fetch)
               (uri (string-append home-page "audit-" version ".tar.gz"))
               (sha256
                (base32
-                "1xlcvc2g7qrbnin5pw0bacalva5ldjw97yi6nr17g0yjp4jyhnlc"))))
+                "0pnc9wzslks9p6kxw0llp1n8h8yg0frcxl3x84fl0hisa5vlvr63"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list "--with-python=no"
                                "--disable-static")))
     (inputs
-     `(("openldap" ,openldap)
-       ("gnutls" ,gnutls)
-       ("sasl" ,cyrus-sasl)))
+     (list openldap gnutls cyrus-sasl))
     (synopsis "User-space component to the Linux auditing system")
     (description
-     "auditd is the user-space component to the Linux auditing system, which
-allows logging of system calls made by user-land processes.  It's responsible
-for writing audit records to the disk.  Viewing the logs is done with the
-@code{ausearch} or @code{aureport} utilities.  Configuring the audit rules is
-done with the @code{auditctl} utility.")
+     "This is the user-space component to the Linux auditing system, which
+allows logging of system calls made by user-land processes.  @command{auditd} is
+responsible for writing audit records to the disk.  Viewing the logs is done
+with the @code{ausearch} or @code{aureport} utilities.  Configuring the audit
+rules is done with the @code{auditctl} utility.")
     (license license:gpl2+)))
 
 (define-public nmap
   (package
     (name "nmap")
-    (version "7.91")
+    (version "7.92")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://nmap.org/dist/nmap-" version
                                   ".tar.bz2"))
               (sha256
                (base32
-                "001kb5xadqswyw966k2lqi6jr6zz605jpp9w4kmm272if184pk0q"))
+                "18bifn67kz2wxkbnfwcrin2xrhc6qf4p2bvxfqb2a2vbi8pryix5"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -3034,8 +3035,7 @@ done with the @code{auditctl} utility.")
                               "libpcap"
                               "libpcre"
                               ;; Remove pre-compiled binares.
-                              "mswin32"))
-                  #t))))
+                              "mswin32"))))))
     (build-system gnu-build-system)
     (inputs
      `(("openssl" ,openssl)
@@ -3057,8 +3057,7 @@ done with the @code{auditctl} utility.")
            (lambda _
              (substitute* "Makefile"
                ;; Do not attempt to build lua.
-               (("build-dnet build-lua") "build-dnet"))
-             #t))
+               (("build-dnet build-lua") "build-dnet"))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (define (make out . args)
@@ -3081,8 +3080,7 @@ done with the @code{auditctl} utility.")
                (make ndiff "install-ndiff")
                (wrap-program (string-append ndiff "/bin/ndiff")
                  `("GUIX_PYTHONPATH" prefix
-                   (,(python-path ndiff)))))
-             #t))
+                   (,(python-path ndiff)))))))
          ;; These are the tests that do not require network access.
          (replace 'check
            (lambda _ (invoke "make"
@@ -3099,7 +3097,7 @@ tool.  It is also useful for tasks such as network inventory, managing service
 upgrade schedules, and monitoring host or service uptime.  It also provides an
 advanced netcat implementation (ncat), a utility for comparing scan
 results (ndiff), and a packet generation and response analysis tool (nping).")
-    ;; See <https://github.com/nmap/nmap/issues/2199#issuecomment-792048244>.
+    ;; See <https://github.com/nmap/nmap/issues/2199#issuecomment-894812634>.
     ;; This package uses nmap's bundled versions of libdnet and liblinear, which
     ;; both use a 3-clause BSD license.
     (license (list license:nmap license:bsd-3))))
@@ -3158,7 +3156,7 @@ throughput (in the same interval).")
 (define-public thefuck
   (package
     (name "thefuck")
-    (version "3.30")
+    (version "3.31")
     (source
      (origin
        (method git-fetch)
@@ -3167,7 +3165,7 @@ throughput (in the same interval).")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0fnf78956pwhb9cgv1jmgypnkma5xzflkivfrkfiadbgin848yfg"))
+        (base32 "05h60gxky57nalc2hdkpg8wqyg16432x9gcb9wnwblplk98998kq"))
        (patches (search-patches "thefuck-test-environ.patch"))))
     (build-system python-build-system)
     (arguments
@@ -3180,19 +3178,15 @@ throughput (in the same interval).")
              (add-installed-pythonpath inputs outputs)
              ;; Some tests need write access to $HOME.
              (setenv "HOME" "/tmp")
-             (invoke "py.test" "-v")
-             #t)))))
+             ;; Even with that, this function tries to mkdir /.config.
+             (substitute* "tests/test_utils.py"
+               (("settings\\.init\\(\\)") ""))
+             (invoke "py.test" "-v"))))))
     (propagated-inputs
-     `(("python-colorama" ,python-colorama)
-       ("python-decorator" ,python-decorator)
-       ("python-psutil" ,python-psutil)
-       ("python-pyte" ,python-pyte)
-       ("python-six" ,python-six)))
+     (list python-colorama python-decorator python-psutil python-pyte
+           python-six))
     (native-inputs
-     `(("go" ,go)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-mock" ,python-pytest-mock)))
+     (list go python-mock python-pytest python-pytest-mock))
     (home-page "https://github.com/nvbn/thefuck")
     (synopsis "Correct mistyped console command")
     (description
@@ -3203,13 +3197,13 @@ a new command using the matched rule, and runs it.")
 (define-public di
   (package
     (name "di")
-    (version "4.50")
+    (version "4.51")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/diskinfo-di/di-" version ".tar.gz"))
        (sha256
-        (base32 "0aj9ldkvmj8fmrk685vd2gagz0q8lwsn2nfbx6r6mza94mn8pw42"))))
+        (base32 "1fv12j9b9sw6p38lcbzcw87zl5qp1aa7a4a4jn3449zz9af15ckr"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; obscure test failures
@@ -3219,8 +3213,7 @@ a new command using the matched rule, and runs it.")
          (add-before 'build 'setup-environment
            (lambda* (#:key outputs #:allow-other-keys)
              (setenv "CC" ,(cc-for-target))
-             (setenv "prefix" (assoc-ref outputs "out"))
-             #t)))
+             (setenv "prefix" (assoc-ref outputs "out")))))
        #:make-flags (list "--environment-overrides")))
     (home-page "https://gentoo.com/di/")
     (synopsis "Advanced df like disk information utility")
@@ -3258,7 +3251,7 @@ produce uniform output across heterogeneous networks.")
        ("gettext" ,gettext-minimal)
        ("libnotify" ,libnotify)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Lightweight battery icon for the system tray")
     (description "cbatticon is a lightweight battery icon that displays
 the status of your battery in the system tray.")
@@ -3289,9 +3282,9 @@ the status of your battery in the system tray.")
          #:make-flags (list (string-append "PREFIX="
                                            (assoc-ref %outputs "out")))))
       (inputs
-       `(("libx11" ,libx11)))
+       (list libx11))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (synopsis "Scriptable launcher menu")
       (description "Interrobang is a scriptable launcher menu with a customizable
 shortcut syntax and completion options.")
@@ -3328,11 +3321,9 @@ shortcut syntax and completion options.")
                (("pam-util/vector\n")  ""))
              #t)))))
     (inputs
-     `(("linux-pam" ,linux-pam)
-       ("mit-krb5" ,mit-krb5)))
+     (list linux-pam mit-krb5))
     (native-inputs
-     `(("perl" ,perl)
-       ("perl-test-pod" ,perl-test-pod))) ; required for tests
+     (list perl perl-test-pod)) ; required for tests
     (synopsis "Kerberos PAM module")
     (description
      "Pam-krb5 is a Kerberos PAM module for either MIT Kerberos or Heimdal.
@@ -3409,10 +3400,9 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
     (source
      (sunxi-tools-source version))
     (native-inputs
-     `(("sunxi-target-tools" ,sunxi-target-tools)
-       ("pkg-config" ,pkg-config)))
+     (list sunxi-target-tools pkg-config))
     (inputs
-     `(("libusb" ,libusb)))
+     (list libusb))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests exist
@@ -3519,6 +3509,7 @@ buffers.")
 (define-public igt-gpu-tools
   (package
     (name "igt-gpu-tools")
+    ;; You should very likely remove the 'fix-meson.build phase when upgrading.
     (version "1.26")
     (source
      (origin
@@ -3531,20 +3522,30 @@ buffers.")
         (base32 "0m124pqv7zna25jnvk566c4kk628jr0w8mgnp8mr5xqz9cprgczm"))))
     (build-system meson-build-system)
     (arguments
-     `(#:tests? #f))            ; many of the tests try to load kernel modules
+     `(#:tests? #f              ; many of the tests try to load kernel modules
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'find-rst2man.py
+           (lambda _
+             (substitute* "man/meson.build"
+               (("'rst2man'") "'rst2man.py'"))))
+         (add-after 'unpack 'fix-meson.build
+           ;; Fix ‘ERROR: Function does not take positional arguments.’
+           (lambda _
+             (substitute* "lib/meson.build"
+               (("f\\.underscorify\\(f\\)")
+                "f.underscorify()")))))))
     (inputs
-     `(("cairo" ,cairo)
-       ("elfutils" ,elfutils)           ; libdw
-       ("eudev" ,eudev)
-       ("kmod" ,kmod)
-       ("libdrm" ,libdrm)
-       ("libpciaccess" ,libpciaccess)
-       ("libunwind" ,libunwind)
-       ("procps" ,procps)))
+     (list cairo
+           elfutils ; libdw
+           eudev
+           kmod
+           libdrm
+           libpciaccess
+           libunwind
+           procps))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("pkg-config" ,pkg-config)))
+     (list bison flex pkg-config python-docutils))
     (home-page "https://gitlab.freedesktop.org/drm/igt-gpu-tools")
     (synopsis "Tools for development and testing of the Intel DRM driver")
     (description "IGT GPU Tools is a collection of tools for development and
@@ -3618,8 +3619,7 @@ you are running, what theme or icon set you are using, etc.")
                          (string-append out "/share/doc/" ,name "-" ,version))
            (substitute* (string-append out "/bin/screenfetch")
              (("/usr/bin/env bash")
-              (string-append (assoc-ref %build-inputs "bash")
-                             "/bin/bash")))
+              (search-input-file %build-inputs "/bin/bash")))
            (wrap-program
                (string-append out "/bin/screenfetch")
              `("PATH" ":" prefix
@@ -3629,14 +3629,11 @@ you are running, what theme or icon set you are using, etc.")
                                 (assoc-ref %build-inputs "xprop") "/bin"))))
            (substitute* (string-append out "/bin/screenfetch")
              (("#!#f")
-              (string-append "#!" (assoc-ref %build-inputs "bash")
-                             "/bin/bash")))))))
+              (string-append "#!"
+                             (search-input-file %build-inputs
+                                                "/bin/bash"))))))))
     (inputs
-     `(("bash" ,bash)
-       ("bc" ,bc)
-       ("scrot" ,scrot)
-       ("xdpyinfo" ,xdpyinfo)
-       ("xprop" ,xprop)))
+     (list bash bc scrot xdpyinfo xprop))
     (home-page "https://github.com/KittyKatt/screenFetch")
     (synopsis "System information script")
     (description "Bash screenshot information tool which can be used to
@@ -3672,7 +3669,7 @@ everyone's screenshots nowadays.")
                   (output (assoc-ref %outputs "out"))
                   (bindir (string-append output "/bin"))
                   (docdir (string-append output "/share/doc/ufetch-" ,version))
-                  (tput (string-append (assoc-ref %build-inputs "tput") "/bin/tput")))
+                  (tput   (search-input-file %build-inputs "/bin/tput")))
              (install-file (string-append source "/LICENSE") docdir)
              (setenv "PATH" (string-append (assoc-ref %build-inputs "bash") "/bin"))
              (mkdir-p bindir)
@@ -3709,7 +3706,7 @@ everyone's screenshots nowadays.")
                  (base32
                   "1md40av6i3xvvwig5jzhy4kf3s5sgxxk35r0vcyrjd8qyndk927l"))))
       (build-system trivial-build-system)
-      (inputs `(("bash" ,bash)))
+      (inputs (list bash))
       (arguments
        `(#:modules ((guix build utils))
          #:builder
@@ -3735,20 +3732,19 @@ information tool.")
 (define-public nnn
   (package
     (name "nnn")
-    (version "4.1.1")
+    (version "4.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/jarun/nnn/releases/download/v"
                            version "/nnn-v" version ".tar.gz"))
        (sha256
-        (base32 "1fnf35s3b2nfp18s712n5vhg6idx4rfgwdfv74nc2933v9l2dq7h"))))
+        (base32 "0lqn7pyy8c1vy29vn8ad4x23cw67cy1d21ghns6f3w9a1h7kyjp0"))))
     (build-system gnu-build-system)
     (inputs
-     `(("ncurses" ,ncurses)
-       ("readline" ,readline)))
+     (list ncurses readline))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:tests? #f                      ; no tests
        #:phases
@@ -3797,18 +3793,14 @@ hard-coded.")
            (lambda _
              (setenv "NO_CONFIGURE" "yet"))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("autoconf-archive" ,autoconf-archive)
-       ("automake" ,automake)
-       ("glib" ,glib "bin")             ; for glib-genmarshal, etc.
-       ("gtk-doc" ,gtk-doc)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf
+           autoconf-archive
+           automake
+           `(,glib "bin") ; for glib-genmarshal, etc.
+           gtk-doc
+           pkg-config))
     (inputs
-     `(("dbus-glib" ,dbus-glib)
-       ("libevdev" ,libevdev)
-       ("libxml2" ,libxml2)
-       ("upower" ,upower)
-       ("xz" ,xz)))
+     (list dbus-glib libevdev libxml2 upower xz))
     (home-page "https://01.org/linux-thermal-daemon/")
     (synopsis "CPU scaling for thermal management")
     (description "The Linux Thermal Daemon helps monitor and control temperature
@@ -3832,7 +3824,7 @@ on systems running the Linux kernel.")
         (base32 "0q0c7bsf0pbl8napry1qyg0gl4pd8wn872h4mz9b56dx4rx90vqg"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libpcap" ,libpcap)))
+     (list libpcap))
     (arguments
      `(#:test-target "regress"
        #:make-flags
@@ -3912,12 +3904,12 @@ late.")
                   #t))))
     (build-system gnu-build-system)
     (inputs
-     `(("mpi" ,openmpi)
-       ("munge" ,munge)
-       ("boost" ,boost)
-       ("libelf" ,libelf)
-       ("libgcrypt" ,libgcrypt)
-       ("libgpg-error" ,libgpg-error)))
+     (list openmpi
+           munge
+           boost
+           libelf
+           libgcrypt
+           libgpg-error))
     (synopsis "Infrastructue for large scale tool daemon launching")
     (description
      "LaunchMON is a software infrastructure that enables HPC run-time
@@ -3964,7 +3956,7 @@ Python loading in HPC environments.")
   (let ((real-name "inxi"))
     (package
       (name "inxi-minimal")
-      (version "3.3.06-1")
+      (version "3.3.11-1")
       (source
        (origin
          (method git-fetch)
@@ -3973,14 +3965,14 @@ Python loading in HPC environments.")
                (commit version)))
          (file-name (git-file-name real-name version))
          (sha256
-          (base32 "1qk40iyrdp52vmbiqwxicvlcycm2v2bf1gg4lzq0b4619sd6d1m7"))))
+          (base32 "1nk3q2xg0myykq1myasxhvhhr0vk8qv3m7pb3icw81r3ydasnls0"))))
       (build-system trivial-build-system)
       (inputs
        `(("bash" ,bash-minimal)
          ("perl" ,perl)
          ("procps" ,procps)))
       (native-inputs
-       `(("gzip" ,gzip)))
+       (list gzip))
       (arguments
        `(#:modules ((guix build utils))
          #:builder
@@ -4025,8 +4017,7 @@ Python loading in HPC environments.")
                           %build-inputs)))))
              (invoke "gzip" "inxi.1")
              (install-file "inxi.1.gz"
-                           (string-append %output "/share/man/man1")))
-           #t)))
+                           (string-append %output "/share/man/man1"))))))
       (home-page "https://smxi.org/docs/inxi.htm")
       (synopsis "Full-featured system information script")
       (description "Inxi is a system information script that can display
@@ -4087,11 +4078,9 @@ support forum.  It runs with the @code{/exec} command in most IRC clients.")
         (base32 "1sm99423hh90kr4wdjqi9sdrrpk65j2vz2hzj65zcxfxyr6khjci"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("cairo" ,cairo)
-       ("libpng" ,libpng)
-       ("libx11" ,libx11)))
+     (list cairo libpng libx11))
     (home-page "https://gitlab.com/mildlyparallel/pscircle")
     (synopsis "Visualize Linux processes in a form of radial tree")
     (description
@@ -4125,15 +4114,12 @@ support forum.  It runs with the @code{/exec} command in most IRC clients.")
                 (("= find_library") "= "))
                #t))))))
     (inputs
-     `(("eudev" ,eudev)))
+     (list eudev))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (native-inputs
-     `(("python-docutils" ,python-docutils)
-       ("python-hypothesis" ,python-hypothesis)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-sphinx" ,python-sphinx)))
+     (list python-docutils python-hypothesis python-mock python-pytest
+           python-sphinx))
     (home-page "https://pyudev.readthedocs.io/")
     (synopsis "Python udev binding")
     (description "This package provides @code{udev} bindings for Python.")
@@ -4154,7 +4140,7 @@ support forum.  It runs with the @code{/exec} command in most IRC clients.")
         (base32 "08da6apzfkfjwasn4dxrlfxqfx7arl28apdzac5nvm0fhvws0dxk"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (arguments
      `(#:tests? #f                      ; no tests
        #:make-flags
@@ -4174,7 +4160,7 @@ cache of unix and unix-like systems.")
 (define-public solaar
   (package
     (name "solaar")
-    (version "1.0.6")
+    (version "1.0.7")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4183,7 +4169,7 @@ cache of unix and unix-like systems.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "04zclzfc31l2fj5shcsngnmcvcmmhnc567l3wb9yfhs8k39k9kb2"))))
+                "0k7mjdfvf28fay50b2hs2z4qk6s23h71wvl8777idlrz5i5f43j5"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -4192,15 +4178,14 @@ cache of unix and unix-like systems.")
            (lambda _
              (setenv "PYTHONPATH" "lib"))))))
     (propagated-inputs
-     `(("python-pygobject" ,python-pygobject)
-       ("python-pyudev" ,python-pyudev)
-
-       ;; For GUI.
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-psutil" ,python-psutil)
-       ("python-xlib" ,python-xlib)
-       ("gtk+" ,gtk+)
-       ("python-pygobject" ,python-pygobject)))
+     (list python-pygobject
+           python-pyudev
+           ;; For GUI.
+           python-pyyaml
+           python-psutil
+           python-xlib
+           gtk+
+           python-pygobject))
     (home-page "https://pwr-solaar.github.io/Solaar/")
     (synopsis "Linux devices manager for the Logitech Unifying Receiver")
     (description "This package provides tools to manage clients of the
@@ -4211,7 +4196,7 @@ Logitech Unifying Receiver.")
   (package
     (name "lynis")
     ;; Also update the ‘lynis-sdk’ input to the commit matching this release.
-    (version "3.0.5")
+    (version "3.0.6")
     (source
      (origin
        (method git-fetch)
@@ -4220,15 +4205,14 @@ Logitech Unifying Receiver.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "11kl54hbvjl7q2i1jz8a726vlkdmknvbp4zac3j4fgljg27qp410"))
+        (base32 "1a1n8alcq6zil1rwk9940cg3x2nz3igcxfad99505pdh7ccz9324"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; Remove proprietary plugins. As of now, all plugins supplied with
            ;; lynis are proprietary. In the future, if free plugins are
            ;; provided, whitelist them from deletion.
-           (for-each delete-file (find-files "plugins"))
-           #t))))
+           (for-each delete-file (find-files "plugins"))))))
     (build-system gnu-build-system)
     (native-inputs
      `(;; For tests
@@ -4237,10 +4221,10 @@ Logitech Unifying Receiver.")
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/CISOfy/lynis-sdk")
-                 (commit "99f79c4deb4cb2221d7fccfe82baf58c0a55b9e7")))
+                 (commit "1c4e5f60a03e29a1525ca9ec17c793461058253d")))
            (file-name (git-file-name "lynis-sdk" version))
            (sha256
-            (base32 "1nc2rhzj6l08d2mnjrzkm4mxla1mjkddcxl8n05c1kdz9ycn6cpl"))))))
+            (base32 "060k8k1q4c7nvrv3cwscxq8md2v75q3nrwwim1hgfw20divw3npy"))))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -4251,8 +4235,7 @@ Logitech Unifying Receiver.")
                 (string-append (assoc-ref outputs "out") "/share/lynis")))
              (substitute* "include/functions"
                (("/usr/local/etc/lynis")
-                (string-append (assoc-ref outputs "out") "/etc/lynis")))
-             #t))
+                (string-append (assoc-ref outputs "out") "/etc/lynis")))))
          (delete 'build)
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
@@ -4263,8 +4246,7 @@ Logitech Unifying Receiver.")
                 (lambda (dir)
                   (copy-recursively dir (string-append out "/share/lynis/" dir)))
                 (list "db" "include" "plugins"))
-               (install-file "lynis.8" (string-append out "/share/man/man8"))
-               #t)))
+               (install-file "lynis.8" (string-append out "/share/man/man8")))))
          (replace 'check
            (lambda* (#:key inputs #:allow-other-keys)
              (copy-recursively (assoc-ref inputs "lynis-sdk") "../lynis-sdk")
@@ -4301,7 +4283,7 @@ possible configuration issues.")
          "1x2fyd7wdqlj1r76ilal06cl2wmbz0ws6i3ys204sbjh1cj6dcl7"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libpcap" ,libpcap)))
+     (list libpcap))
     (arguments
      `(#:tests? #f ;; No tests.
        #:configure-flags (list (string-append "--with-pcap-includes="
@@ -4331,8 +4313,7 @@ tcpdump and snoop.")
         (base32 "0832nh2qf9pisgwnbgx6hkylx5d7i416l19y3ly4ifv7k1p7mxqa"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list perl pkg-config))
     (inputs
      `(("cryptsetup" ,cryptsetup)
        ("libhx" ,libhx)
@@ -4395,9 +4376,7 @@ supplied by the user when logging in.")
         (base32 "0rwvyyrdnw43pixp8h51rncq2inc9pbbj1j2191y5si00pjw34zr"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pygments" ,python-pygments)
-       ("python-ruamel.yaml" ,python-ruamel.yaml)
-       ("python-xmltodict" ,python-xmltodict)))
+     (list python-pygments python-ruamel.yaml python-xmltodict))
     (home-page "https://github.com/kellyjonbrazil/jc")
     (synopsis "Convert the output of command-line tools to JSON")
     (description "@code{jc} JSONifies the output of many CLI tools and
@@ -4407,7 +4386,7 @@ file-types for easier parsing in scripts.")
 (define-public jtbl
   (package
     (name "jtbl")
-    (version "1.1.6")
+    (version "1.1.7")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4416,10 +4395,10 @@ file-types for easier parsing in scripts.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1zzd7rd63xva50f22d1rfja4r302aizrafarhwm67vv181swvdya"))))
+                "19i21fqz2m40cds9pb17brjxkczqagmx2f7mfb0xdvbygaply5wz"))))
     (build-system python-build-system)
     (inputs
-     `(("python-tabulate" ,python-tabulate)))
+     (list python-tabulate))
     (home-page "https://github.com/kellyjonbrazil/jtbl")
     (synopsis "Command-line tool to print JSON data as a table in the terminal")
     (description "@code{jtbl} accepts piped JSON data from stdin and outputs a
@@ -4473,7 +4452,7 @@ text table representation to stdout.")
                            "\nPATH=" (getenv "PATH"))))
          ;; check phase
          (setenv "TERM" "linux") ;set to tty for test
-         (invoke (string-append (assoc-ref %build-inputs "bats") "/bin/bats")
+         (invoke (search-input-file %build-inputs "/bin/bats")
                  "test")
          ;; install phase
          (install-file "hosts" (string-append %output "/bin"))
@@ -4517,10 +4496,9 @@ entries, providing commands to add, remove, comment, and search.")
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libnl" ,libnl)
-       ("libpcap" ,libpcap)))
+     (list libnl libpcap))
     (arguments
      `(#:tests? #f ; None exist
        #:make-flags
@@ -4679,7 +4657,7 @@ disk utilization, priority, username, state, and exit code.")
                (install-file "novena-eeprom" out-bin)
                (install-file "novena-eeprom.8" out-share-man)))))))
     (inputs
-     `(("i2c-tools" ,i2c-tools)))
+     (list i2c-tools))
     (synopsis "Novena EEPROM editor")
     (description "This package provides an editor for the Novena EEPROM.
 Novena boards contain a device-dependent descriptive EEPROM that defines
@@ -4731,7 +4709,7 @@ the XMODEM/YMODEM/ZMODEM file transfer protocols.")
         (base32 "0sdamjzvmf6cxhjmd1rjvn7zm6k10fp5n6vabyxd3yl30cgrxw2i"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (arguments
      `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
                           (string-append "PREFIX=" (assoc-ref %outputs "out")))
@@ -4762,7 +4740,7 @@ setup, maintenance, supervision, or any long-running processes.")
                   "058x04yp6bc77hbl3qchqm7pa8f9vqfl9jryr88m8pzl7kvpif54"))))
       (build-system trivial-build-system)
       (inputs
-       `(("lua" ,lua)))
+       (list lua))
       (arguments
        `(#:modules ((guix build utils))
          #:builder
@@ -4790,3 +4768,31 @@ setup, maintenance, supervision, or any long-running processes.")
       (description "Utility to convert @code{lsof} output to a graph showing
 FIFO and UNIX interprocess communication.")
       (license license:bsd-2))))
+
+(define-public runitor
+  (package
+    (name "runitor")
+    (version "0.8.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/bdd/runitor")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32 "0vjfbyrbp5ywgzdz9j3x0qgjvnq7nw7193x8v9yy6k2cih1zsacn"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:unpack-path "bdd.fi/x/runitor"
+       #:go ,go-1.17
+       #:build-flags '(,(string-append "-ldflags=-X main.Version=" version))
+       #:import-path "bdd.fi/x/runitor/cmd/runitor"
+       #:install-source? #f))
+    (home-page "https://github.com/bdd/runitor")
+    (synopsis "Command runner with healthchecks.io integration")
+    (description
+      "Runitor runs the supplied command, captures its output, and based on its
+exit code reports successful or failed execution to
+@url{https://healthchecks.io,https://healthchecks.io} or your private instance.")
+    (license license:bsd-0)))
diff --git a/gnu/packages/adns.scm b/gnu/packages/adns.scm
index 1b71d0107c..5703016549 100644
--- a/gnu/packages/adns.scm
+++ b/gnu/packages/adns.scm
@@ -52,7 +52,7 @@
        ;; XXX: Tests expect real name resolution to work.
        #:tests? #f))
     (native-inputs
-     `(("m4" ,m4)))
+     (list m4))
     (home-page "https://www.gnu.org/software/adns/")
     (synopsis "Asynchronous DNS client library and utilities")
     (description
@@ -65,7 +65,7 @@ scripts.")
 (define-public c-ares
   (package
     (name "c-ares")
-    (version "1.17.1")
+    (version "1.17.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -73,17 +73,19 @@ scripts.")
                     ".tar.gz"))
               (sha256
                (base32
-                "0h7wjfnk2092glqcp9mqaax7xx0s13m501z1gi0gsjl2vvvd0gfp"))))
+                "0gcincjvpll2qmlc906jx6mfq97s87mgi0zby0753ki0rr2ch0s8"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     '(;; FIXME: Some tests require network access
+       #:tests? #f
+       #:phases
        (modify-phases %standard-phases
          (add-before 'check 'filter-live-tests
            (lambda _
              ;; Filter tests that require internet access.
              (setenv "GTEST_FILTER" "-*.Live*:*.FamilyV4*"))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://c-ares.haxx.se/")
     (synopsis "C library for asynchronous DNS requests")
     (description
@@ -107,3 +109,25 @@ multiple clients and programs with graphical user interfaces.")
      (arguments
       `(;; XXX: Tests require name resolution (the normal variant runs no tests).
         #:tests? #f)))))
+
+(define-public c-ares-for-node
+  (hidden-package
+   (package
+     (inherit c-ares)
+     (name "c-ares")
+     (version "1.18.1")
+     (source (origin
+               (method url-fetch)
+               (uri (string-append
+                     "https://c-ares.haxx.se/download/" name "-" version
+                     ".tar.gz"))
+               (sha256
+                (base32
+                 "1kxviskwsaa7dcgscvssxa8ps88pdq7kq4z93gxvz7sam2l54z8s"))))
+     (arguments
+      '(#:phases
+        (modify-phases %standard-phases
+          (add-before 'check 'filter-live-tests
+            (lambda _
+              ;; Filter tests that require internet access.
+              (setenv "GTEST_FILTER" "-*.Live*:*.FamilyV4*")))))))))
diff --git a/gnu/packages/agda.scm b/gnu/packages/agda.scm
index 7b0cdd0d89..4dd6366247 100644
--- a/gnu/packages/agda.scm
+++ b/gnu/packages/agda.scm
@@ -37,7 +37,7 @@
 (define-public agda
   (package
     (name "agda")
-    (version "2.6.0.1")
+    (version "2.6.2.1")
     (source
      (origin
        (method url-fetch)
@@ -45,33 +45,31 @@
              "https://hackage.haskell.org/package/Agda/Agda-"
              version ".tar.gz"))
        (sha256
-        (base32
-         "1s600ry1qwizr3ynyj05rvlx7jdcw9a1viyc0ycjamm5sjf8mf3v"))))
+        (base32 "03dw7jfqr3ffik6avigm525djqh2gn5c3qwnb2h6298zkr9lch9w"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-alex" ,ghc-alex)
-       ("ghc-async" ,ghc-async)
-       ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-boxes" ,ghc-boxes)
-       ("ghc-data-hash" ,ghc-data-hash)
-       ("ghc-edisoncore" ,ghc-edisoncore)
-       ("ghc-edit-distance" ,ghc-edit-distance)
-       ("ghc-equivalence" ,ghc-equivalence)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-filemanip" ,ghc-filemanip)
-       ("ghc-geniplate-mirror" ,ghc-geniplate-mirror)
-       ("ghc-gitrev" ,ghc-gitrev)
-       ("ghc-happy" ,ghc-happy)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-hashtables" ,ghc-hashtables)
-       ("ghc-ieee754" ,ghc-ieee754)
-       ("ghc-murmur-hash" ,ghc-murmur-hash)
-       ("ghc-uri-encode" ,ghc-uri-encode)
-       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
-       ("ghc-strict" ,ghc-strict)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-zlib" ,ghc-zlib)))
+     (list ghc-aeson
+           ghc-alex
+           ghc-async
+           ghc-blaze-html
+           ghc-boxes
+           ghc-case-insensitive
+           ghc-data-hash
+           ghc-edit-distance
+           ghc-equivalence
+           ghc-gitrev
+           ghc-happy
+           ghc-hashable
+           ghc-hashtables
+           ghc-monad-control
+           ghc-murmur-hash
+           ghc-parallel
+           ghc-regex-tdfa
+           ghc-split
+           ghc-strict
+           ghc-unordered-containers
+           ghc-uri-encode
+           ghc-zlib))
     (arguments
      `(#:modules ((guix build haskell-build-system)
                   (guix build utils)
@@ -82,50 +80,13 @@
          ;; This allows us to call the 'agda' binary before installing.
          (add-after 'unpack 'set-ld-library-path
            (lambda _
-             (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/dist/build"))
-             #t))
-         ;; FIXME: This is a copy of the standard configure phase with a tiny
-         ;; difference: this package needs the -package-db flag to be passed
-         ;; to "runhaskell" in addition to the "configure" action, because
-         ;; Setup.hs depends on filemanip.  Without this option the Setup.hs
-         ;; file cannot be evaluated.  The haskell-build-system should be
-         ;; changed to pass "-package-db" to "runhaskell" in any case.
-         (replace 'configure
-           (lambda* (#:key outputs inputs tests? (configure-flags '())
-                     #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (name-version (strip-store-file-name out))
-                    (ghc-path (getenv "GHC_PACKAGE_PATH"))
-                    (params
-                     `(,(string-append "--prefix=" out)
-                       ,(string-append "--libdir=" out "/lib")
-                       ,(string-append "--docdir=" out
-                                       "/share/doc/" name-version)
-                       "--libsubdir=$compiler/$pkg-$version"
-                       "--package-db=../package.conf.d"
-                       "--global"
-                       ,@(if tests?
-                             '("--enable-tests")
-                             '())
-                       ;; Build and link with shared libraries
-                       "--enable-shared"
-                       "--enable-executable-dynamic"
-                       "--ghc-option=-fPIC"
-                       ,(string-append "--ghc-option=-optl=-Wl,-rpath=" out
-                                       "/lib/$compiler/$pkg-$version")
-                       ,@configure-flags)))
-               (unsetenv "GHC_PACKAGE_PATH")
-               (apply invoke "runhaskell" "-package-db=../package.conf.d"
-                      "Setup.hs" "configure" params)
-               (setenv "GHC_PACKAGE_PATH" ghc-path)
-               #t)))
+             (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/dist/build"))))
          (add-after 'compile 'agda-compile
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (agda-compiler (string-append out "/bin/agda")))
                (for-each (cut invoke agda-compiler <>)
-                         (find-files (string-append out "/share") "\\.agda$"))
-               #t))))))
+                         (find-files (string-append out "/share") "\\.agda$"))))))))
     (home-page "https://wiki.portal.chalmers.se/agda/")
     (synopsis
      "Dependently typed functional programming language and proof assistant")
@@ -175,7 +136,7 @@ Agda.  It also aids the input of Unicode characters.")))
                 "0dlis6v6nzbscf713cmwlx8h9n2gxghci8y21qak3hp18gkxdp0g"))))
     (build-system gnu-build-system)
     (inputs
-     `(("agda" ,agda)))
+     (list agda))
     (arguments
      `(#:parallel-build? #f
        #:phases
diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm
index 21fc1957a2..5482261a59 100644
--- a/gnu/packages/aidc.scm
+++ b/gnu/packages/aidc.scm
@@ -38,54 +38,57 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages video)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu))
 
 (define-public zxing-cpp
-  (package
+  ;; Use the master branch as it includes unreleased build system improvements
+  ;; allowing to use system libraries (instead of attempting to fetch them
+  ;; from the Internet).
+  (let ((revision "0")
+        (commit "00783db7aa3bcf8620a301854ac71c0ceaaca0c1"))
+    (package
+      (name "zxing-cpp")
+      (version (git-version "1.2.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/nu-book/zxing-cpp")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1yl2cpaqiv1g4nq9v0xfj1vd5faz55k4541vz6hsffvcxgn9nmc5"))))
+      (build-system cmake-build-system)
+      (native-inputs
+       (list fmt googletest))
+      (synopsis "C++ port of ZXing")
+      (description "ZXing-CPP is a barcode scanning library.")
+      (home-page "https://github.com/nu-book/zxing-cpp")
+      (license license:asl2.0))))
+
+;;; This older variant is kept for gst-plugins-bad (see:
+;;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1684).
+(define-public zxing-cpp-1.2
+  (package/inherit zxing-cpp
     (name "zxing-cpp")
-    (version "1.0.8")
-    (source
-     (origin
-       (method git-fetch)
-       (uri
-        (git-reference
-         (url "https://github.com/nu-book/zxing-cpp")
-         (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "011sq8wcjfxbnd8sj6bf2fgkamlp8gj6q835g61c952npvwsnl71"))))
-    (native-inputs
-     `(("googletest-source" ,(package-source googletest))))
-    (build-system cmake-build-system)
-    (arguments
-     `(#:out-of-source? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'unpack-googletest
-           ;; Copy the googletest sources to where the CMake build expects them.
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((source (assoc-ref inputs "googletest-source"))
-                   (target "test/unit/googletest-src"))
-               (mkdir-p target)
-               (copy-recursively source target)
-               ;; Disable downloading via ExternalProject.
-               (substitute* "test/unit/CMakeLists.txt.in"
-                (("ExternalProject_Add\\(") "message("))
-               #t)))
-         (replace 'check
-           (lambda _
-             (with-directory-excursion "test/unit"
-               (invoke "cmake" ".")
-               (invoke "make")
-               (invoke "./ZXingUnitTest"))
-             #t)))))
-    (synopsis "C++ port of ZXing")
-    (description "ZXing-CPP is a barcode scanning library.")
-    (home-page "https://github.com/nu-book/zxing-cpp")
-    (license license:asl2.0)))
+    (version "1.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/nu-book/zxing-cpp")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1gjj9c7h634rrmmgzbc7cxjqsxdq0paj6113k02ncjm1s9abk7ik"))))
+    ;; Disable tests to avoid bundled dependencies.
+    (arguments '(#:tests? #f
+                 #:configure-flags '("-DBUILD_BLACKBOX_TESTS=OFF")))
+    (native-inputs '())))
 
 (define-public barcode
   (package
@@ -99,6 +102,9 @@
                (base32
                 "1indapql5fjz0bysyc88cmc54y8phqrbi7c76p71fgjp45jcyzp8"))))
     (build-system gnu-build-system)
+    (arguments
+      ;; Fix build with GCC 10.
+     '(#:configure-flags '("CFLAGS=-fcommon")))
     (synopsis "Convert text strings to printed bars in various standards")
     (description "GNU Barcode is a flexible tool to produce printed barcodes
 from text strings.  It supports a variety of encoding standards and sizing
@@ -129,8 +135,8 @@ formats.")
                (with-directory-excursion "tests"
                  (invoke "./test_basic.sh")))
              #t)))))
-    (inputs `(("libpng" ,libpng)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list libpng))
+    (native-inputs (list pkg-config))
     (synopsis "Encode data into a QR Code symbol")
     (description "Libqrencode is a C library for encoding data in a QR Code
 symbol, a kind of 2D symbology that can be scanned by handy terminals such as
@@ -157,10 +163,7 @@ characters, and is highly robust.")
      ;; XXX Test suite is broken: https://github.com/dmtx/libdmtx/issues/22
      `(#:tests? #f))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (home-page "https://github.com/dmtx")
     (synopsis "Library for reading and writing Data Matrix 2D barcodes")
     (description "libdmtx is software for reading and writing Data Matrix 2D
@@ -209,9 +212,7 @@ C/C++ programs to use its capabilities without restrictions or overhead.")
        ("v4l-utils" ,v4l-utils)))
     (propagated-inputs
      ;; These are in 'requires' field of .pc files.
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("qtbase" ,qtbase-5)))
+     (list glib gtk+ qtbase-5))
     (synopsis "Bar code reader")
     (description
      "ZBar can read barcodes from various sources, such as video streams,
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 97bc7c9824..79785bd463 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -12,7 +12,7 @@
 ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
-;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2021 Lars-Dominik Braun <ldb@leibniz-psychology.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -42,6 +42,7 @@
   #:use-module (gnu packages ed)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fltk)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages image)
@@ -89,9 +90,7 @@
               "1545vgizpypqi2rrriad0ybqv0qwbn9zr0ibxpk00gha9ihv7acx"))))
    (build-system gnu-build-system)
    (propagated-inputs
-     `(("gmp" ,gmp)
-       ("mpfr" ,mpfr)
-       ("mpc"  ,mpc))) ; Header files are included by mpfrcx.h.
+     (list gmp mpfr mpc)) ; Header files are included by mpfrcx.h.
    (synopsis "Arithmetic of polynomials over arbitrary precision numbers")
    (description
     "Mpfrcx is a library for the arithmetic of univariate polynomials over
@@ -138,10 +137,9 @@ greatest common divisor operations.")
               "0qq6b1kwb1byj8ws33ya5awq0ilkpm32037pi1l4cf2737fg9m42"))))
    (build-system gnu-build-system)
    (propagated-inputs
-     `(("mpfrcx" ,mpfrcx)
-       ("zlib" ,zlib))) ; Header files included from cm_common.h.
+     (list mpfrcx zlib)) ; Header files included from cm_common.h.
    (inputs
-     `(("pari-gp"  ,pari-gp)))
+     (list pari-gp))
    (synopsis "CM constructions for elliptic curves")
    (description
     "The CM software implements the construction of ring class fields of
@@ -168,13 +166,9 @@ line applications.")
               (patches (search-patches "fplll-std-fenv.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (propagated-inputs ; header files pulled in by fplll/defs.h
-     `(("gmp" ,gmp)
-       ("mpfr" ,mpfr)))
+     (list gmp mpfr))
     (home-page "https://github.com/fplll/fplll")
     (synopsis "Library for LLL-reduction of euclidean lattices")
     (description
@@ -219,16 +213,10 @@ the real span of the lattice.")
          "1a25iibihph626jl4wbs4b77xc4a2c4nfc2ypscf9wpani3dnhjf"))))
     (build-system python-build-system)
     (inputs
-     `(("fplll" ,fplll)
-       ("gmp" ,gmp)
-       ("mpfr" ,mpfr)
-       ("pari-gp" ,pari-gp)))
+     (list fplll gmp mpfr pari-gp))
     (propagated-inputs
-     `(("cysignals" ,python-cysignals)
-       ("cython" ,python-cython)
-       ("flake8" ,python-flake8)
-       ("numpy" ,python-numpy)
-       ("pytest" ,python-pytest)))
+     (list python-cysignals python-cython python-flake8 python-numpy
+           python-pytest))
     (home-page "https://github.com/fplll/fpylll")
     (synopsis "Python interface for fplll")
     (description "fpylll is a Python wrapper for fplll.")
@@ -237,7 +225,7 @@ the real span of the lattice.")
 (define-public pari-gp
   (package
     (name "pari-gp")
-    (version "2.13.2")
+    (version "2.13.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -245,15 +233,12 @@ the real span of the lattice.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "095s7vdlsxmxa0n0l1a082m6gjaypqfqkaj99z8j7dx0ji89hy8n"))))
+                "1jm1cz1687cz8pl8lgvmyk3l33cms1xbayv38ca4z1f60qb7zfnc"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("texlive" ,(texlive-updmap.cfg
                     (list texlive-amsfonts)))))
-    (inputs `(("gmp" ,gmp)
-              ("libx11" ,libx11)
-              ("perl" ,perl)
-              ("readline" ,readline)))
+    (inputs (list gmp libx11 perl readline))
     (arguments
      '(#:make-flags '("all")
        #:test-target "dobench"
@@ -289,8 +274,8 @@ PARI is also available as a C library to allow for faster computations.")
               (base32
                 "039ip7qkwwv46wrcdrz7y12m30kazzkjr44kqbc0h137g4wzd7zf"))))
    (build-system gnu-build-system)
-   (native-inputs `(("perl" ,perl)))
-   (inputs `(("pari-gp" ,pari-gp)))
+   (native-inputs (list perl))
+   (inputs (list pari-gp))
    (arguments
     '(#:configure-flags
       (list (string-append "--with-paricfg="
@@ -324,12 +309,12 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
               "1ws2yhzxmm2l5xqqqcjcimmg40f9qq5l9i6d4i5434an9v9s8531"))))
    (build-system gnu-build-system)
    (inputs
-     `(("gmp" ,gmp)
-       ("mpfr" ,mpfr)
-       ("mpc" ,mpc)
-       ("mpfrcx" ,mpfrcx)
-       ("fplll" ,fplll)
-       ("pari-gp"  ,pari-gp)))
+     (list gmp
+           mpfr
+           mpc
+           mpfrcx
+           fplll
+           pari-gp))
    (synopsis "Igusa class polynomial computations")
    (description
     "The CMH software computes Igusa (genus 2) class polynomials, which
@@ -343,7 +328,7 @@ precision.")
 (define-public giac
   (package
     (name "giac")
-    (version "1.7.0-31")
+    (version "1.7.0-43")
     (source
      (origin
        (method url-fetch)
@@ -355,7 +340,7 @@ precision.")
                            "~parisse/debian/dists/stable/main/source/"
                            "giac_" version ".tar.gz"))
        (sha256
-        (base32 "19vjyijlm3hb758h6nk70k41zw9wrbg6vwfx4r4rgvrb1myy5kpl"))))
+        (base32 "0zsa506isvmixwwg0xgvxhlns6i75jsc3qjzcrny4fl11hkj9xw5"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((ice-9 ftw)
@@ -431,19 +416,18 @@ or text interfaces) or as a C++ library.")
 (define-public flint
   (package
    (name "flint")
-   (version "2.6.3")
+   (version "2.8.4")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "http://flintlib.org/flint-" version ".tar.gz"))
       (sha256
-       (base32 "1qrf6hzbbmg7mhkhbb0bab8z2xpdnba5cj4kmmf72lzs0457a6nf"))))
+       (base32 "1gp4wm2s8c27g2hh53d09cys62da1bsxfwbcsj9cd7cfikm95pv1"))))
    (build-system gnu-build-system)
    (inputs
-    `(("ntl" ,ntl)))
+    (list ntl))
    (propagated-inputs
-    `(("gmp" ,gmp)
-      ("mpfr" ,mpfr))) ; header files from both are included by flint/arith.h
+    (list gmp mpfr)) ; header files from both are included by flint/arith.h
    (arguments
     `(#:parallel-tests? #f              ; seems to be necessary on arm
       #:phases
@@ -485,7 +469,7 @@ fast arithmetic.")
 (define-public arb
   (package
     (name "arb")
-    (version "2.18.1")
+    (version "2.21.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -494,13 +478,12 @@ fast arithmetic.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "15fx3dcbzgwddw9p1nysmx0dbh058afv5m8cj5pdjkcmcl7kw7z9"))))
+                "1lmcl122qy6mr1g1y65bm7dk9fj0sym7gzmvar5vdgk7ln03c5iq"))))
     (build-system gnu-build-system)
     (propagated-inputs
-     `(("flint" ,flint)))               ; flint.h is included by arf.h
+     (list flint))               ; flint.h is included by arf.h
     (inputs
-     `(("gmp" ,gmp)
-       ("mpfr" ,mpfr)))
+     (list gmp mpfr))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -542,12 +525,11 @@ real and complex numbers, with automatic, rigorous error control.")
               (patches (search-patches "python-flint-includes.patch"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (inputs
-     `(("arb" ,arb)
-       ("flint" ,flint)))
+     (list arb flint))
     (synopsis "Python module wrapping ARB and FLINT")
     (description
      "Python-flint is a Python extension module wrapping FLINT
@@ -576,11 +558,9 @@ these types and other mathematical functions.")
                 #t))))
    (build-system gnu-build-system)
    (native-inputs
-    `(("libtool" ,libtool)
-      ("perl" ,perl))) ; for configuration
+    (list libtool perl)) ; for configuration
    (inputs
-    `(("gmp" ,gmp)
-      ("gf2x" ,gf2x)))
+    (list gmp gf2x))
    (arguments
     `(#:phases
       (modify-phases %standard-phases
@@ -609,7 +589,7 @@ matrices, and polynomials over the integers and over finite fields.")
 (define-public singular
   (package
    (name "singular")
-   (version "4.1.3p2")
+   (version "4.2.1")
    (source
     (origin
       (method url-fetch)
@@ -618,17 +598,16 @@ matrices, and polynomials over the integers and over finite fields.")
                       "Singular/SOURCES/"
                       (string-join
                        (string-split
-                        (string-trim-right version #\p
-                                           0 (1- (string-length version)))
+                        (let ((index (string-index version #\p)))
+                          (if index (string-take version index)
+                                    version))
                         #\.) "-")
                       "/singular-" version ".tar.gz"))
              (sha256 (base32
-                      "1524yrni7gh0hir5ckridq671q5s6avfjdsdyahj51kzdl3wcypf"))))
+                      "13gy1gdng8zijwlr1fn5sixw53z0zf9czzlg0vh1dcc59zw6v998"))))
    (build-system gnu-build-system)
    (native-inputs
-    `(("doxygen" ,doxygen)
-      ("graphviz" ,graphviz)
-      ("perl" ,perl)))
+    (list doxygen graphviz perl))
    (inputs
     `(("cddlib" ,cddlib)
       ("gmp" ,gmp)
@@ -667,7 +646,7 @@ geometry and singularity theory.")
                       "0hxs24c2m3mh0nq1zz63z3sb7dhy1rilg2s1igwwcb26x3pb7xqc"))))
    (build-system gnu-build-system)
    (inputs
-    `(("gmp" ,gmp)))
+    (list gmp))
    (arguments
     `(#:configure-flags '("--enable-shared"
                           ;; Disable specific assembly routines, which depend
@@ -697,13 +676,9 @@ binary.")
              (patches (search-patches "bc-fix-cross-compilation.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("ed" ,ed)
-       ("flex" ,flex)
-       ("texinfo" ,texinfo)))
+     (list automake autoconf ed flex texinfo))
     (inputs
-     `(("readline" ,readline)))
+     (list readline))
     (arguments
      '(#:configure-flags
        (list "--with-readline")
@@ -783,7 +758,7 @@ a C program.")
          ;; available on the user's machine when that package is built on a
          ;; different machine.
          "ax_cv_c_flags__mtune_native=no")))
-    (native-inputs `(("perl" ,perl)))
+    (native-inputs (list perl))
     (home-page "http://fftw.org")
     (synopsis "Computing the discrete Fourier transform")
     (description
@@ -854,8 +829,7 @@ cosine/ sine transforms or DCT/DST).")
                             "**/SparseVectorTest.java"
                             "**/DenseVectorTest.java")))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (home-page "http://la4j.org/")
     (synopsis "Java library that provides Linear Algebra primitives and algorithms")
     (description "The la4j library is a Java library that provides Linear
@@ -892,7 +866,7 @@ the la4j library are:
        #:tests? #f ; tests are not included in the release archive
        #:jdk ,icedtea-8))
     (propagated-inputs
-     `(("java-commons-math3" ,java-commons-math3)))
+     (list java-commons-math3))
     (home-page "https://gitlab.com/ICM-VisLab/JLargeArrays")
     (synopsis "Library of one-dimensional arrays that can store up to 263 elements")
     (description "JLargeArrays is a Java library of one-dimensional arrays
@@ -917,8 +891,7 @@ that can store up to 263 elements.")
        #:tests? #f ; tests are not included in the release archive
        #:jdk ,icedtea-8))
     (propagated-inputs
-     `(("java-commons-math3" ,java-commons-math3)
-       ("java-jlargearrays" ,java-jlargearrays)))
+     (list java-commons-math3 java-jlargearrays))
     (home-page "https://github.com/wendykierp/JTransforms")
     (synopsis "Multithreaded FFT library written in pure Java")
     (description "JTransforms is a multithreaded FFT library written in pure
@@ -942,7 +915,7 @@ Sine Transform} (DST) and @dfn{Discrete Hartley Transform} (DHT).")
                 "00bch77a6qgnw6vzsjn2a42n8n683ih3xm0wpr454jxa15hw78vf"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("perl" ,perl)))                   ; for pod2man
+     (list perl))                   ; for pod2man
     (home-page "https://jugit.fz-juelich.de/mlz/lmfit")
     (synopsis "Levenberg-Marquardt minimization and least-squares fitting")
     (description "lmfit is a C library for Levenberg-Marquardt least-squares
@@ -975,10 +948,7 @@ algorithms from the FORTRAN library MINPACK.")
          "-DWITH_SYMENGINE_THREAD_SAFE=on"
          "-DBUILD_SHARED_LIBS=on")))    ;also build libsymengine
     (inputs
-     `(("flint" ,flint)
-       ("gmp" ,gmp)
-       ("mpc" ,mpc)
-       ("mpfr" ,mpfr)))
+     (list flint gmp mpc mpfr))
     (home-page "https://github.com/symengine/symengine")
     (synopsis "Fast symbolic manipulation library")
     (description
@@ -987,6 +957,35 @@ Optional thin wrappers allow usage of the library from other languages.")
     (license (list license:expat        ;SymEngine
                    license:bsd-3))))    ;3rd party code
 
+(define-public ginac
+  (package
+    (name "ginac")
+    (version "1.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.ginac.de/ginac-"
+                           version ".tar.bz2"))
+       (sha256
+        (base32 "1az1ypfcny4jdz0mic1kywwa9nynr547cl5s7zpn2w0qdfymssgi"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags (list "--disable-static")))
+    (native-inputs
+     `(("bison" ,bison)
+       ("flex" ,flex)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper))) ; Python is required
+    (inputs
+     (list cln readline))
+    (home-page "https://www.ginac.de/")
+    (synopsis "Library for symbolic computation")
+    (description "GiNaC is a C++ library for symbolic computation.  Contrary
+to other CAS it does not try to provide extensive algebraic capabilities and a
+simple programming language but instead accepts a given language (C++) and
+extends it by a set of algebraic capabilities.")
+    (license license:gpl2+)))
+
 (define-public eigen
   (package
     (name "eigen")
@@ -1068,8 +1067,9 @@ features, and more.")
                  '(begin
                     (substitute* "unsupported/CMakeLists.txt"
                       (("add_subdirectory\\(test.*")
-                       "# Do not build the tests for unsupported features.\n"))
-                    #t)))))))
+                       "# Do not build the tests for unsupported features.\n"))))))
+      (native-inputs
+       (list gcc-7)))))
 
 (define-public eigen-for-tensorflow-lite
   ;; This commit was taken from
@@ -1113,8 +1113,7 @@ features, and more.")
               (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("googletest" ,googletest)
-       ("xtl" ,xtl)))
+     (list googletest xtl))
     (arguments
      `(#:configure-flags
        '("-DBUILD_TESTS=ON")
@@ -1195,9 +1194,7 @@ xtensor provides:
            #t))))
     (build-system gnu-build-system)
     (inputs
-     `(("gmp" ,gmp)
-       ("readline" ,readline)
-       ("zlib" ,zlib)))
+     (list gmp readline zlib))
     (arguments
      `(#:modules ((ice-9 ftw)
                   (srfi srfi-26)
@@ -1284,9 +1281,7 @@ objects.")
               "0q1wdiwqj6fsbifaayb1zkp20bz8a1my81sqjsail577jmzwi07w"))))
    (build-system gnu-build-system)
    (inputs
-    `(("boost" ,boost)
-      ("gmp" ,gmp)
-      ("mpfr" ,mpfr)))
+    (list boost gmp mpfr))
    (arguments
     `(#:phases
       (modify-phases %standard-phases
@@ -1327,11 +1322,9 @@ for the Coq proof assistant.")
                 "11wz57q6ijsvfs5r82masxgr319as92syi78lnl9lgdblpc6xigk"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (propagated-inputs
-     `(("gmp" ,gmp))) ; gmp++.h includes gmpxx.h
+     (list gmp)) ; gmp++.h includes gmpxx.h
     (synopsis "Algebraic computations with exact rings and fields")
     (description
      "Givaro is a C++ library implementing the basic arithmetic of various
@@ -1358,14 +1351,11 @@ compound objects, such as vectors, matrices and univariate polynomials.")
                 "1ynbjd72qrwp0b4kpn0p5d7gddpvj8dlb5fwdxajr5pvkvi3if74"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("openblas" ,openblas)))
+     (list openblas))
     (propagated-inputs
-     `(("givaro" ,givaro))) ; required according to the .pc file
+     (list givaro)) ; required according to the .pc file
     (arguments
      `(#:configure-flags
        (list (string-append "--with-blas-libs="
@@ -1401,12 +1391,9 @@ algebra, such as the row echelon form.")
               (patches (search-patches "linbox-fix-pkgconfig.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (propagated-inputs
-     `(("fflas-ffpack" ,fflas-ffpack)))
+     (list fflas-ffpack))
     (synopsis "C++ library for linear algebra over exact rings")
     (description
      "LinBox is a C++ template library for exact linear algebra computation
@@ -1430,12 +1417,9 @@ finite fields.")
                 "0xfg6pffbn8r1s0y7bn9b8i55l00d41dkmhrpf7pwk53qa3achd3"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("libpng" ,libpng)))
+     (list libpng))
     (synopsis "Arithmetic of dense matrices over F_2")
     (description "M4RI is a library for fast arithmetic with dense matrices
 over F2.  The name M4RI comes from the first implemented algorithm: The
@@ -1520,11 +1504,9 @@ polynomials, and the representation theory of Hecke algebras of type A_n.")
                 "0r8lv46qx5mkz5kp3ay2jnsp0mbhlqr5z2z220wdk73wdshcznss"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (inputs
-     `(("m4ri" ,m4ri)))
+     (list m4ri))
     (synopsis "Arithmetic of dense matrices over F_{2^e}")
     (description "M4RI is a library for fast arithmetic with dense matrices
 over finite fields of characteristic 2.  So it extends the functionality
@@ -1547,12 +1529,9 @@ of M4RI from F_2 to F_{2^e}.")
                 "1gw27lqc3f525n8qdcmr2nyn16y9g10z9f6dnmckyyxcdzvhq35n"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (inputs
-     `(("ntl" ,ntl)
-       ("pari-gp" ,pari-gp)))
+     (list ntl pari-gp))
     (synopsis "Ranks of elliptic curves and modular symbols")
     (description "The eclib package includes mwrank (for 2-descent on
 elliptic curves over Q) and modular symbol code; it has been written by
@@ -1577,9 +1556,7 @@ John Cremona to compute his elliptic curve database.")
               (patches (search-patches "lrcalc-includes.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1689,12 +1666,12 @@ no more than about 20 bits long).")
               "11290ivi9h665cxi8f1shlavhy10vzb8s28m57hrcgnxyxqmhx0m"))))
    (build-system gnu-build-system)
    (inputs
-    `(("fplll" ,fplll)
-      ("gmp" ,gmp)
-      ("gnuplot" ,gnuplot)
-      ("libxml2" ,libxml2)
-      ("mpfi" ,mpfi)
-      ("mpfr" ,mpfr)))
+    (list fplll
+          gmp
+          gnuplot
+          libxml2
+          mpfi
+          mpfr))
    (arguments
     `(#:configure-flags
       (list (string-append "--docdir=${datadir}/doc/sollya-" ,version))
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index 448e2dfbac..5fa4e6c8e9 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -4,12 +4,11 @@
 ;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2017, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019, 2020 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Sergey Trofimov <sarg@sarg.org.ru>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
@@ -312,7 +311,7 @@ various Android core host applications.")
          (add-after 'unpack 'enter-source
            (lambda _ (chdir "libsparse") #t)))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://developer.android.com/")
     (synopsis "Android platform sparse library")
     (description "@code{android-libsparse} is a library in common use by the
@@ -343,11 +342,9 @@ various Android core host applications.")
                                  (string-append out "/include/ziparchive"))
                #t))))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (native-inputs
-     `(("android-libbase" ,android-libbase)
-       ("android-libutils" ,android-libutils)
-       ("android-liblog" ,android-liblog)))
+     (list android-libbase android-libutils android-liblog))
     (home-page "https://developer.android.com/")
     (synopsis "Android platform ZIP library")
     (description "@code{android-libziparchive} is a library in common use by the
@@ -390,10 +387,7 @@ various Android core host applications.")
              (install-file "diagnose_usb.h" (string-append (assoc-ref outputs "out") "/include"))
              #t)))))
     (inputs
-     `(("android-libbase" ,android-libbase)
-       ("android-libcutils" ,android-libcutils)
-       ("android-liblog" ,android-liblog)
-       ("openssl" ,openssl)))
+     (list android-libbase android-libcutils android-liblog openssl))
     (home-page "https://developer.android.com/studio/command-line/adb.html")
     (synopsis "Android Debug Bridge")
     (description
@@ -512,11 +506,11 @@ that is safe to use for user space.  It also includes
               (("#ifdef HOST") "#ifdef XXX"))
              #t)))))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (native-inputs
-     `(("android-bionic-uapi" ,android-bionic-uapi)
-       ;; pcre is inlined by our package.
-       ("pcre" ,pcre)))
+     (list android-bionic-uapi
+           ;; pcre is inlined by our package.
+           pcre))
     (home-page "https://developer.android.com/")
     (synopsis "Android version of the SELinux libraries and utilities")
     (description
@@ -562,11 +556,8 @@ the core SELinux management utilities.")
                (copy-recursively "." (string-append out "/include")))
              #t)))))
     (inputs
-     `(("android-libcutils" ,android-libcutils)
-       ("android-liblog" ,android-liblog)
-       ("android-libselinux" ,android-libselinux)
-       ("android-libsparse" ,android-libsparse)
-       ("zlib" ,zlib)))
+     (list android-libcutils android-liblog android-libselinux
+           android-libsparse zlib))
     (native-inputs
      `(("android-core" ,(android-platform-system-core version))))
     (home-page "https://developer.android.com/")
@@ -604,11 +595,8 @@ Android core.")
                (install-file "mkf2fsuserimg.sh" bin)
                #t))))))
     (inputs
-     `(("f2fs-tools" ,f2fs-tools-1.7)
-       ("android-libselinux" ,android-libselinux)
-       ("android-libsparse" ,android-libsparse)
-       ("android-libcutils" ,android-libcutils)
-       ("zlib" ,zlib)))
+     (list f2fs-tools-1.7 android-libselinux android-libsparse
+           android-libcutils zlib))
     (home-page "https://developer.android.com/")
     (synopsis "Android f2fs utils")
     (description "@code{android-f2fs-utils} is a library in common use by the
@@ -645,8 +633,7 @@ file system.")
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (copy-recursively "../include/utils" (string-append (assoc-ref outputs "out") "/include/utils")))))))
     (inputs
-     `(("android-safe-iop" ,android-safe-iop)
-       ("android-libcutils" ,android-libcutils)))
+     (list android-safe-iop android-libcutils))
     (native-inputs
      `(("android-bionic-uapi" ,android-bionic-uapi)
        ("android-liblog" ,android-liblog)
@@ -672,7 +659,8 @@ file system.")
          (add-after 'enter-source 'patch-source
            (lambda _
              (substitute* "Android.mk"
-              (("libext4_utils_host") "libext4_utils_host libselinux libpcre"))
+               (("libext4_utils_host") "libext4_utils_host libselinux libpcre")
+               (("\\$\\(shell git .*\\)") ,version))
              #t))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
@@ -682,22 +670,22 @@ file system.")
                (install-file "fastboot" bin)
                #t))))))
     (inputs
-     `(("adb" ,adb)
-       ("android-safe-iop" ,android-safe-iop)
-       ("android-ext4-utils" ,android-ext4-utils)
-       ("android-f2fs-utils" ,android-f2fs-utils)
-       ("android-libbase" ,android-libbase)
-       ("android-libcutils" ,android-libcutils)
-       ("android-liblog" ,android-liblog)
-       ("android-libutils" ,android-libutils)
-       ("android-libsparse" ,android-libsparse)
-       ("android-libziparchive" ,android-libziparchive)
-       ("android-libselinux" ,android-libselinux)
-       ("pcre" ,pcre)
-       ("mkbootimg" ,mkbootimg)
-       ("zlib" ,zlib)))
+     (list adb
+           android-safe-iop
+           android-ext4-utils
+           android-f2fs-utils
+           android-libbase
+           android-libcutils
+           android-liblog
+           android-libutils
+           android-libsparse
+           android-libziparchive
+           android-libselinux
+           pcre
+           mkbootimg
+           zlib))
     (native-inputs
-     `(("xz" ,xz)))
+     (list xz))
     (home-page "https://developer.android.com/studio/command-line/")
     (synopsis "Android image flasher")
     (description
@@ -707,7 +695,7 @@ file system.")
 (define-public android-udev-rules
   (package
     (name "android-udev-rules")
-    (version "20200613")
+    (version "20210501")
     (source
      (origin
        (method git-fetch)
@@ -716,7 +704,7 @@ file system.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0cf5br8x6iwxc1cifv0i1klw7skgs8hghdx6qlqby68kyqg81bb2"))))
+        (base32 "0pl1wfd7k9vz8mvy2jb2icc5f11c5p07aixpyhjs6gi5cyaywm5f"))))
     (build-system trivial-build-system)
     (native-inputs `(("source" ,source)))
     (arguments
@@ -726,8 +714,7 @@ file system.")
          (use-modules (guix build utils))
          (let ((source (assoc-ref %build-inputs "source")))
            (install-file (string-append source "/51-android.rules")
-                         (string-append %output "/lib/udev/rules.d"))
-           #t))))
+                         (string-append %output "/lib/udev/rules.d"))))))
     (home-page "https://github.com/M0Rf30/android-udev-rules")
     (synopsis "udev rules for Android devices")
     (description "Provides a set of udev rules to allow using Android devices
@@ -898,21 +885,18 @@ safest way, on a file image.")
              (invoke "nosetests" "--with-coverage" "--with-timer"
                      "--timer-top-n" "50"))))))
     (native-inputs
-     `(("python-codecov" ,python-codecov)
-       ("python-coverage" ,python-coverage)
-       ("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)
-       ("python-nose-timer" ,python-nose-timer)))
+     (list python-codecov python-coverage python-mock python-nose
+           python-nose-timer))
     (propagated-inputs
-     `(("python-asn1crypto" ,python-asn1crypto)
-       ("python-colorama" ,python-colorama)
-       ("python-future" ,python-future)
-       ("python-ipython" ,python-ipython)
-       ("python-lxml" ,python-lxml)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-networkx" ,python-networkx)
-       ("python-pygments" ,python-pygments)
-       ("python-pyperclip" ,python-pyperclip)))
+     (list python-asn1crypto
+           python-colorama
+           python-future
+           python-ipython
+           python-lxml
+           python-matplotlib
+           python-networkx
+           python-pygments
+           python-pyperclip))
     (home-page "https://github.com/androguard/androguard")
     (synopsis "Python tool to play with Android files")
     (description
@@ -947,28 +931,25 @@ useful for reverse engineering, analysis of Android applications and more.")
                (("docker-py >= 1.9, < 2.0") "docker >= 1.9"))
              #t)))))
     (propagated-inputs
-     `(("python-androguard" ,python-androguard)
-       ("python-apache-libcloud" ,python-apache-libcloud)
-       ("python-clint" ,python-clint)
-       ("python-defusedxml" ,python-defusedxml)
-       ("python-docker" ,python-docker)
-       ("python-gitpython" ,python-gitpython)
-       ("python-mwclient" ,python-mwclient)
-       ("python-paramiko" ,python-paramiko)
-       ("python-pillow" ,python-pillow)
-       ("python-pyasn1" ,python-pyasn1)
-       ("python-pyasn1-modules" ,python-pyasn1-modules)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-qrcode" ,python-qrcode)
-       ("python-ruamel.yaml" ,python-ruamel.yaml)
-       ("python-requests" ,python-requests)
-       ("python-vagrant" ,python-vagrant)))
+     (list python-androguard
+           python-apache-libcloud
+           python-clint
+           python-defusedxml
+           python-docker
+           python-gitpython
+           python-mwclient
+           python-paramiko
+           python-pillow
+           python-pyasn1
+           python-pyasn1-modules
+           python-pyyaml
+           python-qrcode
+           python-ruamel.yaml
+           python-requests
+           python-vagrant))
     (native-inputs
-     `(("python-babel" ,python-babel)
-       ("python-bcrypt" ,python-bcrypt)
-       ("python-docker-pycreds" ,python-docker-pycreds)
-       ("python-pynacl" ,python-pynacl)
-       ("python-websocket-client" ,python-websocket-client)))
+     (list python-babel python-bcrypt python-docker-pycreds python-pynacl
+           python-websocket-client))
     (home-page "https://f-droid.org")
     (synopsis "F-Droid server tools")
     (description
@@ -997,7 +978,7 @@ main repository.")
        #:tests? #f  ; TODO: Inputs missing.
        #:install-source? #f))
     (inputs
-     `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
+     (list go-github-com-kr-pretty))
     ;(native-inputs
     ; `(("go-github-com-rogpeppe-go-internal-testscript"
     ;    ,go-github-com-rogpeppe-go-internal-testscript)))
@@ -1050,7 +1031,7 @@ connected devices via ADB.")
                  (mkdir-p (string-append out "/bin/"))
                  (copy-file "enjarify.sh" (string-append out "/bin/enjarify"))
                  #t))))))
-    (native-inputs `(("openjdk" ,openjdk12)))
+    (native-inputs (list openjdk12))
     (synopsis "Translate Dalvik bytecode to equivalent Java bytecode")
     (description "Android applications are Java programs that run on a
 customized virtual machine, which is part of the Android operating system, the
diff --git a/gnu/packages/animation.scm b/gnu/packages/animation.scm
index 6f116af63c..c281772563 100644
--- a/gnu/packages/animation.scm
+++ b/gnu/packages/animation.scm
@@ -82,8 +82,7 @@
         "-Dlog=true"
         "-Dtest=true")))
     (native-inputs
-     `(("googletest" ,googletest)
-       ("pkg-config" ,pkg-config)))
+     (list googletest pkg-config))
     (synopsis "Lottie Animation Library")
     (description "Rlottie is a platform independent standalone c++ library for
 rendering vector based animations and art in realtime.")
@@ -179,11 +178,10 @@ C++ @dfn{Standard Template Library} (STL).")
        ("libxml++" ,libxml++)
        ("libsigc++" ,libsigc++)
        ("mlt" ,mlt-6)
-       ("openexr" ,openexr)
+       ("openexr" ,openexr-2)
        ("pango" ,pango)))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (home-page "https://www.synfig.org")
     (synopsis "Vector-based 2D animation renderer")
     (description
@@ -225,13 +223,9 @@ for tweening, preventing the need to hand-draw each frame.")
                  `("XDG_DATA_DIRS" ":" prefix (,gtk-share)))
                #t))))))
     (inputs
-     `(("gtkmm" ,gtkmm)
-       ("gtk+" ,gtk+)
-       ("libsigc++" ,libsigc++)
-       ("synfig" ,synfig)))
+     (list gtkmm-3 gtk+ libsigc++ synfig))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (home-page "https://www.synfig.org")
     (synopsis "Vector-based 2D animation package (GUI)")
     (description
@@ -454,7 +448,7 @@ language.")
          ("qtmultimedia" ,qtmultimedia)
          ("libsndfile" ,libsndfile)))
       (native-inputs
-       `(("qttools" ,qttools)))
+       (list qttools))
       (home-page "https://www.lostmarble.com/papagayo/")
       (synopsis "Lip-syncing for animations")
       (description
@@ -480,10 +474,7 @@ waveform until they line up with the proper sounds.")
                 "0b1nwiwyg01087q318vymg4si76dw41ykxbn2zwd6dqbxzbpr1dh"))))
     (build-system gnu-build-system)
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtxmlpatterns" ,qtxmlpatterns)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtsvg" ,qtsvg)))
+     (list qtbase-5 qtxmlpatterns qtmultimedia qtsvg))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/antivirus.scm b/gnu/packages/antivirus.scm
index 368b0efde7..80126a5b59 100644
--- a/gnu/packages/antivirus.scm
+++ b/gnu/packages/antivirus.scm
@@ -66,11 +66,11 @@
                                "clamav-config-llvm-libs.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("check" ,check)                 ; for tests
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf
+           automake
+           check ; for tests
+           libtool
+           pkg-config))
     (inputs
      `(("bzip2" ,bzip2)
        ("libcurl" ,curl)
diff --git a/gnu/packages/apr.scm b/gnu/packages/apr.scm
index 1a4a1c6304..3b4968089b 100644
--- a/gnu/packages/apr.scm
+++ b/gnu/packages/apr.scm
@@ -30,14 +30,14 @@
 (define-public apr
   (package
     (name "apr")
-    (version "1.6.5")
+    (version "1.7.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://apache/apr/apr-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "01d1n1ql66bxsjx0wyzazmkqdqdmr0is6a7lwyy5kzy4z7yajz56"))
+               "1spp6r2a3xcl5yajm9safhzyilsdzgagc2dadif8x6z9nbq4iqg2"))
              (patches
               (search-patches "apr-skip-getservbyname-test.patch"))
              (patch-flags '("-p0"))))
@@ -48,8 +48,7 @@
      ;; Thus, build sequentially.
      '(#:parallel-build? #f
        #:parallel-tests? #f))
-    (inputs `(("perl" ,perl)
-              ("libltdl" ,libltdl)))
+    (inputs (list perl libltdl))
     (home-page "http://apr.apache.org/")
     (synopsis "The Apache Portable Runtime Library")
     (description
@@ -75,9 +74,9 @@ around or take advantage of platform-specific deficiencies or features.")
                "0nq3s1yn13vplgl6qfm09f7n0wm08malff9s59bqf9nid9xjzqfk"))))
     (build-system gnu-build-system)
     (inputs
-     `(("apr" ,apr)))
+     (list apr))
     (propagated-inputs
-     `(("expat" ,expat)))
+     (list expat))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/arcan.scm b/gnu/packages/arcan.scm
index 721cd7fd70..c25d64903c 100644
--- a/gnu/packages/arcan.scm
+++ b/gnu/packages/arcan.scm
@@ -151,8 +151,7 @@
                              (base32
                               "0dcxcnqjkyyqdr2yk84mprvkncy5g172kfs6vc4zrkklsbkr8yi2"))))))
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("ruby" ,ruby)))               ; For documentation and testing
+       (list pkg-config ruby))               ; For documentation and testing
       (home-page "https://arcan-fe.com")
       (synopsis "Display server, multimedia framework and game engine (egl-dri)")
       (description "Arcan is a development framework for creating virtually
@@ -171,9 +170,9 @@ engine programmable using Lua.")
     (inherit arcan)
     (name "arcan-sdl")
     (inputs
-     `(("sdl" ,sdl)
-       ,@(fold alist-delete (package-inputs arcan)
-               '("libdrm"))))
+     (modify-inputs (package-inputs arcan)
+       (delete "libdrm")
+       (prepend sdl)))
     (arguments
      `(,@(ensure-keyword-arguments
           (package-arguments arcan)
@@ -219,11 +218,7 @@ engine programmable using Lua.")
            ,(string-append "--with-xkb-output="
                            "/tmp"))))   ; FIXME: Copied from xorg
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("util-macros" ,util-macros)))
+       (list pkg-config autoconf automake libtool util-macros))
       (inputs
        `(("arcan" ,arcan)
          ("font-util" ,font-util)
@@ -251,14 +246,14 @@ as a window under Arcan.")
     (inherit arcan)
     (name "arcan-wayland")
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("arcan" ,arcan)
-       ("libseccomp" ,libseccomp)
-       ("libxkbcommon" ,libxkbcommon)
-       ("mesa" ,mesa)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+     (list arcan
+           libseccomp
+           libxkbcommon
+           mesa
+           wayland
+           wayland-protocols))
     (arguments
      `(#:tests? #f
        #:phases
diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm
index a86984b28c..753f65642d 100644
--- a/gnu/packages/aspell.scm
+++ b/gnu/packages/aspell.scm
@@ -73,7 +73,7 @@
                   (string-append "\"filter-path" middle
                                  "\"" libdir "\"")))
                #t))))))
-    (inputs `(("perl" ,perl)))
+    (inputs (list perl))
 
     (native-search-paths
      ;; This is a Guix-specific environment variable that takes a single
@@ -131,8 +131,7 @@ dictionaries, including personal ones.")
          (list (string-append "dictdir=" out "/lib/aspell")
                (string-append "datadir=" out "/lib/aspell")))
        #:tests? #f))
-    (native-inputs `(("aspell" ,aspell)
-                     ("which" ,which)))
+    (native-inputs (list aspell which))
     (synopsis (string-append full-name " dictionary for GNU Aspell")) ; XXX: i18n
     (description
      "This package provides a dictionary for the GNU Aspell spell checker.")
@@ -389,10 +388,7 @@ dictionaries, including personal ones.")
                (base32
                 "11lkrnhwrf5mvrrq45k4mads3n9aswgac8dc25ba61c75alxb5rs"))))
     (native-inputs
-     `(("tar" ,tar)
-       ("gzip" ,gzip)
-       ("perl" ,perl)
-       ("aspell" ,aspell)))
+     (list tar gzip perl aspell))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -522,10 +518,9 @@ under permissive licensing terms.  See the 'Copyright' file."))))
                    (format port "#define MAN45DIR \"~a/share/man/man5\"~%" out))))
              #t)))))
     (inputs
-     `(("grep" ,grep)
-       ("ncurses" ,ncurses)))
+     (list grep ncurses))
     (native-inputs
-     `(("bison" ,bison)))
+     (list bison))
     (synopsis "Interactive spell-checking tool for Unix")
     (description "Ispell is an interactive spell-checking tool supporting many
 European languages.")
diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm
index e5cdce0bd4..23351a2dd2 100644
--- a/gnu/packages/assembly.scm
+++ b/gnu/packages/assembly.scm
@@ -68,8 +68,8 @@
                (base32
                 "0gqand86b0r86k3h46dh560lykxmxqqywz5m55kgjfq7q4lngbrw"))))
     (build-system gnu-build-system)
-    (native-inputs `(("perl" ,perl)  ;for doc and test target
-                     ("texinfo" ,texinfo)))
+    (native-inputs (list perl ;for doc and test target
+                         texinfo))
     (arguments
      `(#:test-target "test"
        #:phases
@@ -140,7 +140,7 @@ debugging information in STABS, DWARF 2, and CodeView 8 formats.")
               (base32
                "1jgxbq2cm51dzi3zhz38mmgwdcgs328mfl8iviw8dxn6dn36p1gd"))))
     (build-system gnu-build-system)
-    (native-inputs `(("zlib" ,zlib)))
+    (native-inputs (list zlib))
     (arguments
      ;; Some tests fail when run in parallel.
      `(#:parallel-tests? #f))
@@ -181,14 +181,14 @@ speed on x86, NEON on ARM, etc.).")
 (define-public fasm
   (package
     (name "fasm")
-    (version "1.73.27")
+    (version "1.73.28")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://flatassembler.net/fasm-"
                            version ".tgz"))
        (sha256
-        (base32 "1cghiks49ql77b9l4mwrnlk76kai0fm0z22j71kbdlxngwvlh0b8"))))
+        (base32 "14ljh0ngdaqlwzsr0l70k09r2d520lqpgswl388p84gxhnsfplcy"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests exist
@@ -207,8 +207,7 @@ speed on x86, NEON on ARM, etc.).")
          (replace 'install
            (lambda _
              (let ((out (assoc-ref %outputs "out")))
-               (install-file "fasm" (string-append out "/bin")))
-             #t)))))
+               (install-file "fasm" (string-append out "/bin"))))))))
     (supported-systems '("x86_64-linux" "i686-linux"))
     (synopsis "Assembler for x86 processors")
     (description
@@ -271,15 +270,15 @@ assembler, a C compiler and a linker.  The assembler uses Intel syntax
                   "0p6wklslkkp3s4aisj3w5a53bagqn5fy4m6088ppd4fcfxgqkrcd"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("bison" ,bison)
-         ("flex" ,flex)
-         ("help2man" ,help2man)
-         ("gettext" ,gettext-minimal)
-         ("libtool" ,libtool)
-         ("makeinfo" ,texinfo)
-         ("pkg-config" ,pkg-config)))
+       (list autoconf
+             automake
+             bison
+             flex
+             help2man
+             gettext-minimal
+             libtool
+             texinfo
+             pkg-config))
       (home-page "https://www.gnu.org/software/libjit/")
       (synopsis "Just-In-Time compilation library")
       (description
@@ -324,12 +323,9 @@ runtime")
                       ,(string-append "PREFIX="
                                       (assoc-ref %outputs "out")))))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("pkg-config" ,pkg-config)
-       ("util-linux" ,util-linux)))
+     (list bison flex pkg-config util-linux))
     (inputs
-     `(("libpng" ,libpng)))
+     (list libpng))
     (home-page "https://github.com/gbdev/rgbds")
     (synopsis "Rednex Game Boy Development System")
     (description
@@ -387,14 +383,14 @@ Supported architectures are:
 (define-public xa
   (package
     (name "xa")
-    (version "2.3.11")
+    (version "2.3.12")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.floodgap.com/retrotech/xa"
                                   "/dists/xa-" version ".tar.gz"))
               (sha256
                (base32
-                "0b81r7mvzqxgnbbmhixcnrf9nc72v1nqaw19k67221g3k561dwij"))))
+                "0107zdwc2rzlp26pyx7gns4lqmiyg68nmpgwrg36yrrd04v1bzgq"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f   ; TODO: custom test harness, not sure how it works
@@ -402,7 +398,7 @@ Supported architectures are:
        (modify-phases %standard-phases
          (delete 'configure))            ; no "configure" script
        #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))))
-    (native-inputs `(("perl" ,perl)))
+    (native-inputs (list perl))
     (home-page "https://www.floodgap.com/retrotech/xa/")
     (synopsis "Two-pass portable cross-assembler")
     (description
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 5d6efc5827..d88a0ef739 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -6,6 +6,9 @@
 ;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
 ;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,6 +34,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
@@ -55,7 +59,9 @@
   #:use-module (gnu packages qt)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages video)
+  #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xiph)
+  #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
@@ -96,6 +102,70 @@ in FITS files.")
     (license (license:non-copyleft "file://License.txt"
                           "See License.txt in the distribution."))))
 
+(define-public python-fitsio
+  (package
+    (name "python-fitsio")
+    (version "1.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "fitsio" version))
+       (sha256
+        (base32 "1llql2i6xr9lkdl81jx5nvz80kspamvira90546y32ldy551hq1l"))
+       (modules '((guix build utils)))
+       (snippet
+        ;; Remove the bundled cfitsio
+        `(begin
+           (delete-file-recursively "cfitsio3490")
+           (substitute* "MANIFEST.in"
+             (("recursive-include cfitsio3490.*$\n") ""))
+           #t))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unbundle-cfitsio
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((cfitsio (assoc-ref inputs "cfitsio"))
+                    (includedir (string-append "\"" cfitsio "/include\""))
+                    (libdir (string-append "\"" cfitsio "/lib\"")))
+               ;; Use Guix' cfitsio instead of the bundled one
+               (substitute* "setup.py"
+                 (("self.use_system_fitsio = False") "pass")
+                 (("self.system_fitsio_includedir = None") "pass")
+                 (("self.system_fitsio_libdir = None") "pass")
+                 (("self.use_system_fitsio") "True")
+                 (("self.system_fitsio_includedir") includedir)
+                 (("self.system_fitsio_libdir") libdir)))))
+         (add-after 'unpack 'skip-bzip2-test
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; The bzip2 test fails because Guix' cfitsio
+             ;; is built without bzip2 support.
+             (substitute* "fitsio/test.py"
+               (("'SKIP_BZIP_TEST' in os.environ") "True")))))))
+    (propagated-inputs
+     (list python-numpy cfitsio))
+    (home-page "https://github.com/esheldon/fitsio")
+    (synopsis
+     "Python library to read from and write to FITS files")
+    (description
+     "This package provides a Python library for reading from and writing
+to @acronym{FITS, Flexible Image Transport System} files using the
+CFITSIO library.  Among other things, it can
+
+@itemize
+@item read and write image, binary, and ascii table extensions;
+
+@item read arbitrary subsets of tables in a lazy manner;
+
+@item query the rows and columns of a table;
+
+@item read and write header keywords;
+
+@item read and write Gzip files.
+@end itemize")
+    (license license:gpl2+)))
+
 (define-public qfits
   (package
     (name "qfits")
@@ -130,10 +200,7 @@ for reading and writing.")
         (base32 "0nh12dr7gk4ki55lz95pkm4fpf7kazirra3zax9pab6v4qql4hlw"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("automake" ,automake)
-       ("autoreconf" ,autoconf)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list automake autoconf libtool pkg-config))
     (home-page "https://github.com/liberfa/erfa")
     (synopsis "Essential Routines for Fundamental Astronomy")
     (description
@@ -179,7 +246,7 @@ feature detection and cosmetic corrections.")
        (sha256
         (base32 "1536gmcpm6pckn9xrb6j8s4pm1vryjhzvhfaj9wx3jwxcpbdy0dw"))))
     (inputs
-     `(("cfitsio" ,cfitsio)))
+     (list cfitsio))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -228,7 +295,7 @@ astronomical image-processing packages like Drizzle, Swarp or SExtractor.")
 (define-public gnuastro
   (package
     (name "gnuastro")
-    (version "0.15")
+    (version "0.16")
     (source
      (origin
        (method url-fetch)
@@ -236,7 +303,7 @@ astronomical image-processing packages like Drizzle, Swarp or SExtractor.")
                            version ".tar.lz"))
        (sha256
         (base32
-         "1jjr3ixxbpsr5m4s7ahh12ymcnlvjzwcp02ya16b1lvzrz1wmhy4"))))
+         "07xr0r5dmjpnrz7ylf7k3vmjjna2jafi16lfvkqwxj9fyssmz207"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")))
@@ -250,8 +317,7 @@ astronomical image-processing packages like Drizzle, Swarp or SExtractor.")
        ("wcslib" ,wcslib)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("libtool" ,libtool)
-       ("lzip" ,lzip)))
+     (list libtool lzip))
     (home-page "https://www.gnu.org/software/gnuastro/")
     (synopsis "Astronomy utilities")
     (description "The GNU Astronomy Utilities (Gnuastro) is a suite of
@@ -289,9 +355,7 @@ programs for the manipulation and analysis of astronomical data.")
         (string-append
          "--with-fftw-incdir=" (assoc-ref %build-inputs "fftw") "/include"))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (inputs
      `(("openblas" ,openblas)
        ("fftw" ,fftwf)))
@@ -383,11 +447,9 @@ astronomical fields.  SkyMaker is part of the EFIGI
                (copy-recursively "lang" lang))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
      (inputs
-      `(("gtkmm" ,gtkmm)
-        ("libskry" ,libskry)
-        ("ffmpeg" ,ffmpeg)))
+      (list gtkmm-3 libskry ffmpeg))
      (home-page "https://github.com/GreatAttractor/stackistry")
      (synopsis "Astronomical lucky imaging/image stacking tool")
      (description
@@ -412,12 +474,12 @@ deconvolution).  Such post-processing is not performed by Stackistry.")
         (base32 "049jlc8vx06pad5h2syrmf7f1l346yr5iraai0wkn8s8pk30j8q7"))))
     (build-system cmake-build-system)
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtlocation" ,qtlocation)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtscript" ,qtscript)
-       ("qtserialport" ,qtserialport)
-       ("zlib" ,zlib)))
+     (list qtbase-5
+           qtlocation
+           qtmultimedia
+           qtscript
+           qtserialport
+           zlib))
     (native-inputs
      `(("gettext" ,gettext-minimal)     ; xgettext is used at compile time
        ("perl" ,perl)                   ; for pod2man
@@ -515,12 +577,12 @@ any arbitrary astrometric projection defined in the WCS standard.")
          ;; maybe required?
          ("mesa" ,mesa)
          ;; optional: fmtlib, Eigen3;
-         ("fmt" ,fmt)
+         ("fmt" ,fmt-7)
          ("eigen" ,eigen)
          ;; glut: for glut interface
          ("freeglut" ,freeglut)))
       (propagated-inputs
-       `(("lua" ,lua)))
+       (list lua))
       (arguments
        `(#:configure-flags '("-DENABLE_GLUT=ON" "-DENABLE_QT=OFF")
          #:tests? #f))                            ;no tests
@@ -547,6 +609,96 @@ accurately in real time at any rate desired.")
      `(#:configure-flags '("-DENABLE_GTK=ON" "-DENABLE_QT=OFF")
        #:tests? #f))))
 
+(define-public python-astropy
+  (package
+    (name "python-astropy")
+    (version "4.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "astropy" version))
+       (sha256
+        (base32 "0lfd6n7v7kas4wvacddnwgccax3ks908735dzilg7dsf7ci52f9d"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove Python bundles.
+           (with-directory-excursion "astropy/extern"
+             (for-each delete-file-recursively '("ply" "configobj")))
+           ;; Remove cextern bundles and leave the wcslib bundle.  Astropy
+           ;; upgrades to different versions of wcslib every few releases
+           ;; and tests break every upgrade.
+           ;; TODO: unbundle wcslib.
+           (with-directory-excursion "cextern"
+             (for-each delete-file-recursively '("cfitsio" "expat")))
+           #t))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'preparations
+           (lambda _
+             ;; Use our own libraries in place of bundles, with the
+             ;; exception of wcslib.
+             (setenv "ASTROPY_USE_SYSTEM_CFITSIO" "1")
+             (setenv "ASTROPY_USE_SYSTEM_EXPAT" "1")
+             ;; Some tests require a writable home.
+             (setenv "HOME" "/tmp")
+             ;; Relax xfail tests.
+             (substitute* "setup.cfg"
+               (("xfail_strict = true") "xfail_strict = false"))
+             ;; Replace all references to external ply.
+             (let ((ply-files '("coordinates/angle_formats.py"
+                                "utils/parsing.py")))
+               (with-directory-excursion "astropy"
+                 (map (lambda (file)
+                        (substitute* file (("astropy.extern.ply")
+                                           "ply")))
+                      ply-files)))
+             ;; Replace reference to external configobj.
+             (with-directory-excursion "astropy/config"
+               (substitute* "configuration.py"
+                 (("from astropy.extern.configobj ") "")))))
+         ;; This file is opened in both install and check phases.
+         (add-before 'install 'writable-compiler
+           (lambda _ (make-file-writable "astropy/_compiler.c")))
+         (add-before 'check 'writable-compiler
+           (lambda _ (make-file-writable "astropy/_compiler.c")))
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               ;; Extensions have to be rebuilt before running the tests.
+               (invoke "python" "setup.py" "build_ext" "--inplace")
+               (invoke "python" "-m" "pytest" "--pyargs" "astropy"
+                       ;; Skip tests that need remote data.
+                       "-m" "not remote_data")))))))
+    (native-inputs
+     (list pkg-config
+           python-coverage
+           python-cython
+           python-extension-helpers
+           python-ipython
+           python-jplephem
+           python-objgraph
+           python-pytest
+           python-pytest-astropy
+           python-pytest-xdist
+           python-setuptools-scm
+           python-sgp4
+           python-skyfield))
+    (inputs
+     (list cfitsio expat))
+    (propagated-inputs
+     (list python-configobj python-numpy python-ply python-pyerfa))
+    (home-page "https://www.astropy.org/")
+    (synopsis "Core package for Astronomy in Python")
+    (description
+     "Astropy is a single core package for Astronomy in Python.  It contains
+much of the core functionality and some common tools needed for performing
+astronomy and astrophysics.")
+    (license license:bsd-3)))
+
 (define-public libnova
   (package
     (name "libnova")
@@ -571,9 +723,7 @@ accurately in real time at any rate desired.")
                (("/bin/sh") (which "sh")))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (synopsis "Celestial mechanics, astrometry and astrodynamics library")
     (description "Libnova is a general purpose, double precision, Celestial
 Mechanics, Astrometry and Astrodynamics library.")
@@ -614,7 +764,7 @@ Mechanics, Astrometry and Astrodynamics library.")
                (copy-recursively "include" include))
              #t)))))
     (inputs
-     `(("ffmpeg" ,ffmpeg)))
+     (list ffmpeg))
     (home-page "https://github.com/GreatAttractor/libskry")
     (synopsis "Astronimical lucky imaging library")
     (description
@@ -720,7 +870,7 @@ on FITS files:
          "xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("libx11" ,libx11)
        ("libxscrnsaver" ,libxscrnsaver)
@@ -768,12 +918,9 @@ Mercator, Mollweide, Peters, polyconic, orthographic and rectangular.")
        ("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("curl" ,curl)
-       ("glib" ,glib)
-       ("goocanvas" ,goocanvas)
-       ("gtk+" ,gtk+)))
+     (list curl glib goocanvas gtk+))
     (arguments
-     `(#:configure-flags '("CFLAGS=-fcommon")
+     `(#:configure-flags '("CFLAGS=-O2 -g -fcommon")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-tests
@@ -826,10 +973,57 @@ provide you with detailed information about each pass.")
 It can be used to calculate the trajectory of satellites.")
       (license license:asl2.0))))
 
+(define-public imppg
+  (package
+    (name "imppg")
+    (version "0.6.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/GreatAttractor/imppg")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "04synbmyz0hkipl1cdc26nr42r57v494yjw8pi4jx0jrxrawgj9h"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ;no test provided
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (mkdir-p "build")
+             (chdir "build")
+             (invoke
+              "cmake"
+              "-G" "Unix Makefiles"
+              "-DCMAKE_BUILD_TYPE=Release"
+              (string-append "-DCMAKE_INSTALL_PREFIX=" (assoc-ref outputs "out"))
+              ".."))))))
+    (native-inputs
+     (list boost pkg-config))
+    (inputs
+     (list cfitsio freeimage glew wxwidgets))
+    (home-page "https://github.com/GreatAttractor/imppg")
+    (synopsis "Astronomical Image Post-Proccessor (ImPPG)")
+    (description
+     "ImPPG performs Lucy-Richardson deconvolution, unsharp masking,
+brightness normalization and tone curve adjustment.  It can also apply
+previously specified processing settings to multiple images.  All operations
+are performed using 32-bit floating-point arithmetic.
+
+Supported input formats: FITS, BMP, JPEG, PNG, TIFF (most of bit depths and
+compression methods), TGA and more.  Images are processed in grayscale and can
+be saved as: BMP 8-bit; PNG 8-bit; TIFF 8-bit, 16-bit, 32-bit
+floating-point (no compression, LZW- or ZIP-compressed), FITS 8-bit, 16-bit,
+32-bit floating-point.")
+    (license license:gpl3+)))
+
 (define-public indi
   (package
     (name "indi")
-    (version "1.9.1")
+    (version "1.9.3")
     (source
      (origin
        (method git-fetch)
@@ -838,7 +1032,7 @@ It can be used to calculate the trajectory of satellites.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0zhsm60hgnmy9lvwckijf6f6yikbvdbxy2qlgclv09p14lgr6wd9"))))
+        (base32 "0c7md288d3g2vf0m1ai6x2l4j4rmlasc4rya92phvd4ynf8vcki2"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -860,17 +1054,17 @@ It can be used to calculate the trajectory of satellites.")
              (let ((out (assoc-ref outputs "out")))
                (mkdir-p (string-append out "/lib/udev/rules.d"))))))))
     (native-inputs
-     `(("googletest" ,googletest)))
+     (list googletest))
     (inputs
-     `(("cfitsio" ,cfitsio)
-       ("curl" ,curl)
-       ("fftw" ,fftw)
-       ("gsl" ,gsl)
-       ("libjpeg-turbo" ,libjpeg-turbo)
-       ("libnova" ,libnova)
-       ("libtiff" ,libtiff)
-       ("libusb" ,libusb)
-       ("zlib" ,zlib)))
+     (list cfitsio
+           curl
+           fftw
+           gsl
+           libjpeg-turbo
+           libnova
+           libtiff
+           libusb
+           zlib))
     (home-page "https://www.indilib.org")
     (synopsis "Library for astronimical intrumentation control")
     (description
@@ -884,31 +1078,88 @@ more.")
                    license:lgpl2.0+
                    license:lgpl2.1+))))
 
+(define-public sunclock
+  (let ((commit "f4106eb0a81f7594726d6b2859efd8fc64cc1225")
+        (revision "1"))
+    (package
+      (name "sunclock")
+      (version (git-version "3.57" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/nongiach/Sunclock")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1rczdpmhvfw57b9r793vq8vqlbdhlkgj52fxwrdfl6cwj95a9kv2"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:make-flags
+         (list (string-append "DESTDIR=" %output)
+               ;; Fix incorrect argument given to gcc. Error message:
+               ;; "gcc: error: DefaultGcc2AMD64Opt: No such file or directory"
+               "CDEBUGFLAGS=")
+         #:phases
+         (modify-phases %standard-phases
+           (replace 'configure
+             (lambda _
+               (chdir "sunclock-3.57")
+               (substitute* "Imakefile"
+                 (("^MANDIR=/X11R6/man/man1")
+                  "MANDIR=/share/man/man1")
+                 (("^BINDIR=/X11R6/bin")
+                  "BINDIR=/bin")
+                 ;; Disable ZLIB support for vmf files because zlib implements
+                 ;; `gzgetc` as a macro instead of a function, which results in
+                 ;; a compilation error.
+                 ((" -DZLIB") "")
+                 ((" -lz") "")
+                 (("cd \\$\\(DESTDIR\\)\\$\\(SHAREDIR\\)/earthmaps/vmf ; \
+gzip -f \\*.vmf")
+                  ""))
+               ;; Generate Makefile.
+               (invoke "xmkmf"))))
+         #:tests? #f))  ; No check target.
+      (inputs
+       (list libjpeg-turbo libpng libx11 libxpm))
+      (native-inputs
+       (list imake))
+      (home-page "https://github.com/nongiach/Sunclock")
+      (synopsis
+       "Map of the Earth that shows which portion is illuminated by the Sun")
+      (description
+       "Sunclock displays a map of the Earth and shows which portion is
+illuminated by the Sun.  It can commute between two states, the \"clock window\"
+and the \"map window\".  The clock window displays a small map of the Earth and
+therefore occupies little space on the screen, while the \"map window\" displays
+a large map and offers more advanced functions: local time of cities, Sun and
+Moon position, etc.")
+      (license license:gpl2+))))
+
 (define-public python-jplephem
   (package
     (name "python-jplephem")
-    (version "2.15")
+    (version "2.16")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "jplephem" version))
        (sha256
-        (base32 "1ca3dswsslij79qg6dcijjz4l0fj6nzmxld8z93v45ahlkhps0g0"))))
+        (base32 "1xvivnsywjaf5lxn3kyg2jhhq393gcwkjrl634m8dn52ypidrcdb"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (setenv "PYTHONPATH"
-                       (string-append "./build/lib:"
-                                      (getenv "PYTHONPATH")))
-               (setenv "PATH" (string-append out "/bin:"
-                                             (getenv "PATH")))
-               (invoke "python" "-m" "unittest" "discover" "-s" "test")))))))
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (let ((out (assoc-ref outputs "out")))
+                 (add-installed-pythonpath inputs outputs)
+                 (setenv "PATH" (string-append out "/bin:" (getenv "PATH")))
+                 (invoke "python" "-m" "unittest" "discover" "-s" "test"))))))))
     (inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (home-page "https://github.com/brandon-rhodes/python-jplephem")
     (synopsis "Python version of NASA DE4xx ephemerides")
     (description
@@ -941,12 +1192,13 @@ JPL ephemerides use to predict raw (x,y,z) planetary positions.")
              (setenv "PYERFA_USE_SYSTEM_LIBERFA" "1")
              #t)))))
     (native-inputs
-     `(("pytest" ,python-pytest)
-       ("setuptools-scm" ,python-setuptools-scm)
-       ("pytest-doctestplus" ,python-pytest-doctestplus)))
+     `(("pytest-doctestplus" ,python-pytest-doctestplus)
+       ("python-pytest" ,python-pytest)
+       ("python-setuptools-scm" ,python-setuptools-scm)))
     (inputs
-     `(("liberfa" ,erfa)
-       ("numpy" ,python-numpy)))
+     `(("liberfa" ,erfa)))
+    (propagated-inputs
+     (list python-numpy))
     (home-page "https://github.com/liberfa/pyerfa")
     (synopsis "Python bindings for ERFA")
     (description
@@ -969,10 +1221,9 @@ functions, so that they can be called with scalar or array inputs.")
         (base32 "0wxdqn92q1grv8k7xi7h88ac6wnznw4xh5bdlz1vz6za2dgsyj4m"))))
     (build-system python-build-system)
     (native-inputs
-     `(("cython" ,python-cython)
-       ("pytest" ,python-pytest)))
+     (list python-cython python-pytest))
     (inputs
-     `(("numpy" ,python-numpy)))
+     (list python-numpy))
     (home-page "https://github.com/kbarbary/sep")
     (synopsis "Astronomical source extraction and photometry library")
     (description
@@ -1056,10 +1307,7 @@ astronomical images, especially when there is no WCS information available.")
      ;; framework https://github.com/brandon-rhodes/assay
      `(#:tests? #f))
     (inputs
-     `(("python-certifi" ,python-certifi)
-       ("python-jplephem" ,python-jplephem)
-       ("python-numpy" ,python-numpy)
-       ("python-sgp4" ,python-sgp4)))
+     (list python-certifi python-jplephem python-numpy python-sgp4))
     (home-page "https://rhodesmill.org/skyfield/")
     (synopsis "Astronomy for Python")
     (description
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 0770e3de20..05c6354e45 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -15,7 +15,7 @@
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
+;;; Copyright © 2018, 2021 Thorsten Wilms <t_w_@freenet.de>
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2018 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2019, 2021 Pierre Langlois <pierre.langlois@gmx.com>
@@ -34,6 +34,8 @@
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
+;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -107,6 +109,7 @@
   #:use-module (gnu packages readline)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages serialization)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages telephony)
   #:use-module (gnu packages linphone)
   #:use-module (gnu packages linux)
@@ -302,6 +305,50 @@ Linux kernel.")
     (home-page "https://github.com/tinyalsa/tinyalsa")
     (license (license:non-copyleft "file:///NOTICE"))))
 
+(define-public libgme
+  (package
+    (name "libgme")
+    (version "0.6.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://bitbucket.org/mpyne/game-music-emu/"
+                                  "downloads/game-music-emu-" version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "07857vdkak306d9s5g6fhmjyxk7vijzjhkmqb15s7ihfxx9lx8xb"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:tests? #f))                    ; no check target
+    (home-page "https://bitbucket.org/mpyne/game-music-emu")
+    (synopsis "Video game music file playback library")
+    (description
+     "Game-music-emu is a collection of video game music file emulators that
+support the following formats and systems:
+@table @code
+@item AY
+ZX Spectrum/Asmtrad CPC
+@item GBS
+Nintendo Game Boy
+@item GYM
+Sega Genesis/Mega Drive
+@item HES
+NEC TurboGrafx-16/PC Engine
+@item KSS
+MSX Home Computer/other Z80 systems (doesn't support FM sound)
+@item NSF/NSFE
+Nintendo NES/Famicom (with VRC 6, Namco 106, and FME-7 sound)
+@item SAP
+Atari systems using POKEY sound chip
+@item SPC
+Super Nintendo/Super Famicom
+@item VGM/VGZ
+Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro
+@end table")
+    (license (list license:lgpl2.1+
+                   ;; demo and player directories are under the Expat license
+                   license:expat))))
+
 (define-public libopenmpt
   (package
     (name "libopenmpt")
@@ -328,9 +375,7 @@ Linux kernel.")
                (for-each delete-file (find-files lib "\\.a$"))
                #t))))))
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen perl pkg-config))
     (inputs
      `(("alsa" ,alsa-lib)
        ("flac" ,flac)
@@ -367,12 +412,11 @@ library.  It is based on the player code of the Open ModPlug Tracker project.")
          "libofa-ftbfs-2.diff"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("curl" ,curl)
-       ("expat" ,expat)))
+     (list curl expat))
     (propagated-inputs
-     `(("fftw" ,fftw)))
+     (list fftw))
     (synopsis "Open Fingerprint Architecture")
     (description "LibOFA is an audio fingerprint library, created and provided
 by MusicIP.")
@@ -393,10 +437,7 @@ by MusicIP.")
         (base32 "1lmj0dib3mjp84jhxc5ddvydkzzhb0gfrdh3ikcidjlcb378ghxd"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (synopsis "Freeware Advanced Audio Coder")
     (description "FAAC is an MPEG-4 and MPEG-2 AAC encoder.")
     (home-page "https://www.audiocoding.com/faac.html")
@@ -423,9 +464,9 @@ by MusicIP.")
     (arguments
      `(#:tests? #f))       ; XXX: LibTiMidity could not be initialised
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("ao" ,ao)))
+     (list ao))
     (synopsis "MIDI to WAVE converter library")
     (description "LibTiMidity is a MIDI to WAVE converter library that uses
 Gravis Ultrasound-compatible patch files to generate digital audio data from
@@ -490,18 +531,17 @@ implementation of Adaptive Multi Rate Narrowband and Wideband
                 "056dn6b9c5nsw2jdww7z1kxrjqqfvxjzxhsd5x9gi4wkwyiv21nz"))))
     (build-system gnu-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to
-       ;; license incompatibility.
-       ("clalsadrv" ,clalsadrv)
-       ("fftw" ,fftw)
-       ("jack" ,jack-1)
-       ("ladspa" ,ladspa)
-       ("liblo" ,liblo)
-       ("qtbase" ,qtbase-5)))
+     (list alsa-lib
+           ;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to
+           ;; license incompatibility.
+           clalsadrv
+           fftw
+           jack-1
+           ladspa
+           liblo
+           qtbase-5))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (home-page "http://alsamodular.sourceforge.net/")
     (synopsis "Realtime modular synthesizer and effect processor")
     (description
@@ -536,13 +576,9 @@ Filter) modules follow the convention of 1V / Octave.")
         "--enable-avcodec")
        #:python ,python-2))
     (inputs
-     `(("jack" ,jack-1)
-       ("libsndfile" ,libsndfile)
-       ("libsamplerate" ,libsamplerate)
-       ("fftwf" ,fftwf)
-       ("ffmpeg" ,ffmpeg))) ; for libavcodec
+     (list jack-1 libsndfile libsamplerate fftwf ffmpeg)) ; for libavcodec
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://aubio.org/")
     (synopsis "Library for audio labelling")
     (description
@@ -571,7 +607,7 @@ streams from live audio.")
 (define-public ardour
   (package
     (name "ardour")
-    (version "6.8")
+    (version "6.9")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -589,7 +625,7 @@ namespace ARDOUR { const char* revision = \"" version "\" ; const char* date = \
                     #t)))
               (sha256
                (base32
-                "16x7bkzbrk0rgywq5vrkhf2z3jj08jw1bvaq9vwlf2b4h4sd7i4s"))
+                "0vlcbd70y0an881zv87kc3akmaiz4w7whsy3yaiiqqjww35jg1mm"))
               (file-name (string-append name "-" version))))
     (build-system waf-build-system)
     (arguments
@@ -626,48 +662,48 @@ namespace ARDOUR { const char* revision = \"" version "\" ; const char* date = \
              #t)))
        #:test-target "test"))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("atkmm" ,atkmm)
-       ("aubio" ,aubio)
-       ("boost" ,boost)
-       ("cairomm" ,cairomm)
-       ("curl" ,curl)
-       ("dbus" ,dbus)
-       ("eudev" ,eudev)
-       ("fftw" ,fftw)
-       ("fftwf" ,fftwf)
-       ("flac" ,flac)
-       ("glibmm" ,glibmm)
-       ("gtkmm" ,gtkmm-2)
-       ("jack" ,jack-1)
-       ("libarchive" ,libarchive)
-       ("libart-lgpl" ,libart-lgpl)
-       ("libgnomecanvasmm" ,libgnomecanvasmm)
-       ("liblo" ,liblo)
-       ("libogg" ,libogg)
-       ("libsamplerate" ,libsamplerate)
-       ("libsndfile" ,libsndfile)
-       ("libusb" ,libusb)
-       ("libvorbis" ,libvorbis)
-       ("libwebsockets" ,libwebsockets)
-       ("libxml2" ,libxml2)
-       ("lilv" ,lilv)
-       ("lrdf" ,lrdf)
-       ("lv2" ,lv2)
-       ("openssl" ,openssl)  ; Required by libwebsockets.
-       ("pangomm" ,pangomm)
-       ("python-rdflib" ,python-rdflib)
-       ("pulseaudio" ,pulseaudio)
-       ("readline" ,readline)
-       ("redland" ,redland)
-       ("rubberband" ,rubberband)
-       ("serd" ,serd)
-       ("sord" ,sord)
-       ("soundtouch" ,soundtouch)
-       ("sratom" ,sratom)
-       ("suil" ,suil)
-       ("taglib" ,taglib)
-       ("vamp" ,vamp)))
+     (list alsa-lib
+           atkmm
+           aubio
+           boost
+           cairomm
+           curl
+           dbus
+           eudev
+           fftw
+           fftwf
+           flac
+           glibmm
+           gtkmm-2
+           jack-1
+           libarchive
+           libart-lgpl
+           libgnomecanvasmm
+           liblo
+           libogg
+           libsamplerate
+           libsndfile
+           libusb
+           libvorbis
+           libwebsockets
+           libxml2
+           lilv
+           lrdf
+           lv2
+           openssl ; Required by libwebsockets.
+           pangomm
+           python-rdflib
+           pulseaudio
+           readline
+           redland
+           rubberband
+           serd
+           sord
+           soundtouch
+           sratom
+           suil
+           taglib
+           vamp))
     (native-inputs
      `(("cppunit" ,cppunit)
        ("gettext" ,gettext-minimal)
@@ -723,27 +759,27 @@ engineers, musicians, soundtrack editors and composers.")
            #t))))
     (build-system cmake-build-system)
     (inputs
-     `(("wxwidgets" ,wxwidgets)
-       ("gtk+" ,gtk+)
-       ("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("expat" ,expat)
-       ("ffmpeg" ,ffmpeg)
-       ("lame" ,lame)
-       ("flac" ,flac)
-       ("libid3tag" ,libid3tag)
-       ("libmad" ,libmad)
-       ;;("libsbsms" ,libsbsms)         ;bundled version is modified
-       ("libsndfile" ,libsndfile)
-       ("soundtouch" ,soundtouch)
-       ("soxr" ,soxr)                   ;replaces libsamplerate
-       ("twolame" ,twolame)
-       ("vamp" ,vamp)
-       ("libvorbis" ,libvorbis)
-       ("lv2" ,lv2)
-       ("lilv" ,lilv)                   ;for lv2
-       ("suil" ,suil)                   ;for lv2
-       ("portmidi" ,portmidi)))
+     (list wxwidgets
+           gtk+
+           alsa-lib
+           jack-1
+           expat
+           ffmpeg
+           lame
+           flac
+           libid3tag
+           libmad
+           ;;("libsbsms" ,libsbsms)         ;bundled version is modified
+           libsndfile
+           soundtouch
+           soxr ;replaces libsamplerate
+           twolame
+           vamp
+           libvorbis
+           lv2
+           lilv ;for lv2
+           suil ;for lv2
+           portmidi))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -844,7 +880,7 @@ tools.")
                                       "CVE-2017-6831" "CVE-2017-6833"))))
     (build-system gnu-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)))
+     (list alsa-lib))
     (home-page "https://audiofile.68k.org/")
     (synopsis "Library to handle various audio file formats")
     (description "This is an open-source version of SGI's audiofile library.
@@ -885,7 +921,7 @@ G.711 mu-law and A-law.")
                 (string-append (assoc-ref outputs "out") "/lib/ladspa")))
              #t)))))
     (inputs
-     `(("ladspa" ,ladspa)))
+     (list ladspa))
     (home-page "http://tombaran.info/autotalent.html")
     (synopsis "Pitch-correction LADSPA audio plugin")
     (description
@@ -924,12 +960,9 @@ formant warp.")
                (utime "azr3.1" early-1980 early-1980))
              #t)))))
     (inputs
-     `(("gtkmm" ,gtkmm-2)
-       ("lvtk" ,lvtk)
-       ("jack" ,jack-1)
-       ("lash" ,lash)))
+     (list gtkmm-2 lvtk jack-1 lash))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://ll-plugins.nongnu.org/azr3/")
     (synopsis "Tonewheel organ synthesizer")
     (description
@@ -953,18 +986,18 @@ plugins are provided.")
                 "17x4hylgq4dn9qycsdacfxy64f5cv57n2qgkvsdp524gnqzw4az3"))))
     (build-system gnu-build-system)
     (inputs
-     `(("fluidsynth" ,fluidsynth)
-       ("expat" ,expat)
-       ("glib" ,glib)
-       ("gtk" ,gtk+-2)
-       ("cairo" ,cairo)
-       ("lash" ,lash)
-       ("jack" ,jack-1)
-       ("lv2" ,lv2)
-       ("ladspa" ,ladspa)
-       ("fftw" ,fftw)))
+     (list fluidsynth
+           expat
+           glib
+           gtk+-2
+           cairo
+           lash
+           jack-1
+           lv2
+           ladspa
+           fftw))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (native-search-paths
      (list (search-path-specification
             (variable "LV2_PATH")
@@ -1009,7 +1042,7 @@ tools (analyzer, mono/stereo tools, crossovers).")
                (("/usr/local")(assoc-ref outputs "out")))
              #t)))))
     (inputs
-     `(("lv2" ,lv2)))
+     (list lv2))
     ;; home-page of the original LADSPA version: http://quitte.de/dsp/caps.html
     (home-page "https://github.com/moddevices/caps-lv2")
     (synopsis "LV2 port of the CAPS audio plugin collection")
@@ -1049,13 +1082,9 @@ generators of mostly elementary and occasionally exotic nature.")
                (("_LV2UI_Descriptor") "LV2UI_Descriptor"))
              #t)))))
     (inputs
-     `(("cairo" ,cairo)
-       ("fftwf" ,fftwf)
-       ("lv2" ,lv2)
-       ("ntk" ,ntk)
-       ("zita-resampler" ,zita-resampler)))
+     (list cairo fftwf lv2 ntk zita-resampler))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://ssj71.github.io/infamousPlugins")
     (synopsis "LV2 plugins for live use")
     (description
@@ -1081,16 +1110,16 @@ envelope follower, distortion effects, tape effects and more.")
     (arguments
      '(#:tests? #f))                    ; no included tests
     (inputs
-     `(("boost" ,boost)
-       ("libvorbis" ,libvorbis)
-       ("soxr" ,soxr)
-       ("alsa-lib" ,alsa-lib)
-       ("avahi" ,avahi)
-       ("pulseaudio" ,pulseaudio)
-       ("flac" ,flac)
-       ("opus" ,opus)))
+     (list boost
+           libvorbis
+           soxr
+           alsa-lib
+           avahi
+           pulseaudio
+           flac
+           opus))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/badaix/snapcast")
     (synopsis "Synchronous multiroom audio player")
     (description
@@ -1112,16 +1141,15 @@ synchronized with the server to play synced audio.")
                (base32
                 "1c98z2xxz9pgcb4dg99gz8qrylh5cnag0j18a52d88ifsy24isvq"))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gettext-minimal) ;for autopoint
-       ("libtool" ,libtool)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list autoconf
+           automake
+           gettext-minimal ;for autopoint
+           libtool
+           perl
+           pkg-config
+           which))
     (inputs
-     `(("fftwf" ,fftwf)
-       ("perl-xml-parser" ,perl-xml-parser)))
+     (list fftwf perl-xml-parser))
     (build-system gnu-build-system)
     (home-page "http://plugin.org.uk")
     (synopsis "The SWH Plugins package for the LADSPA plugin system")
@@ -1159,11 +1187,9 @@ synchronized with the server to play synced audio.")
                (("install:") "install: install-system"))
              #t)))))
     (inputs
-     `(("lv2" ,lv2)
-       ("fftwf" ,fftwf)))
+     (list lv2 fftwf))
     (native-inputs
-     `(("libxslt" ,libxslt)
-       ("pkg-config" ,pkg-config)))
+     (list libxslt pkg-config))
     (home-page "http://plugin.org.uk")
     (synopsis "SWH plugins in LV2 format")
     (description
@@ -1173,6 +1199,38 @@ flanger), ringmodulator, distortion, filters, pitchshift, oscillators,
 emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
     (license license:gpl3+)))
 
+(define-public libdjinterop
+  (package
+    (name "libdjinterop")
+    (version "0.16.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/xsco/libdjinterop")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "16nrqpr90vb9ggmp9j73m0hspd7pmfdhh0g6iyp8vd7kx7g17qnk"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; crate_test writes a database file to the source tree.
+         (add-after 'unpack 'make-git-checkout-writable
+           (lambda _
+             (for-each make-file-writable (find-files ".")))))))
+    (native-inputs
+     (list boost pkg-config))
+    (inputs
+     (list sqlite zlib))
+    (home-page "https://github.com/xsco/libdjinterop")
+    (synopsis "C++ library for access to DJ record libraries")
+    (description
+     "@code{libdjinterop} is a C++ library that allows access to database
+formats used to store information about DJ record libraries.")
+    (license license:lgpl3+)))
+
 (define-public tao
   (package
     (name "tao")
@@ -1258,18 +1316,15 @@ object library.")
         (base32 "1sr9knfhbm2m0wpkjq2l5n471vnl51wy4p6j4m95zqybimzb4s2j"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("gettext" ,gettext-minimal)
-       ("zlib" ,zlib)))
+     (list bison flex gettext-minimal zlib))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("boost" ,boost)
-       ("jack" ,jack-1)
-       ("ladspa" ,ladspa)
-       ("liblo" ,liblo)
-       ("libsndfile" ,libsndfile)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib
+           boost
+           jack-1
+           ladspa
+           liblo
+           libsndfile
+           pulseaudio))
     (home-page "https://csound.com/")
     (synopsis "Sound and music computing system")
     (description
@@ -1343,8 +1398,7 @@ language and software synthesizer.")
          ;; no configure script
          (delete 'configure))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("fftw" ,fftw)))
+     (list alsa-lib fftw))
     (home-page "https://kokkinizita.linuxaudio.org")
     (synopsis "C++ wrapper around the ALSA API")
     (description
@@ -1691,15 +1745,15 @@ follower.")
                 "LIB_SUFFIX \"\""))
              #t)))))
     (inputs
-     `(("libsndfile" ,libsndfile)
-       ("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("ladspa" ,ladspa)
-       ("lash" ,lash)
-       ("readline" ,readline)
-       ("glib" ,glib)))
+     (list libsndfile
+           alsa-lib
+           jack-1
+           ladspa
+           lash
+           readline
+           glib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.fluidsynth.org/")
     (synopsis "SoundFont synthesizer")
     (description
@@ -1779,7 +1833,7 @@ also play midifiles using a Soundfont.")
                        (find-files "architecture/max-msp" ".*"))
              #t)))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://faust.grame.fr/")
     (synopsis "Signal processing language")
     (description
@@ -1811,11 +1865,7 @@ also play midifiles using a Soundfont.")
        ("ctags" ,emacs-minimal)  ; for ctags
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("libsndfile" ,libsndfile)
-       ("libmicrohttpd" ,libmicrohttpd)
-       ("ncurses" ,ncurses)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))))
+     (list libsndfile libmicrohttpd ncurses openssl zlib))))
 
 (define-public freepats
   (package
@@ -1847,8 +1897,7 @@ also play midifiles using a Soundfont.")
                      (copy-recursively "." out)
                      #t))))
     (native-inputs
-     `(("tar" ,tar)
-       ("bzip2" ,bzip2)))
+     (list tar bzip2))
     (home-page "http://freepats.zenvoid.org")
     (synopsis "GUS compatible patches for MIDI players")
     (description
@@ -1877,21 +1926,21 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
         ;; Add the output lib directory to the RUNPATH.
         (string-append "--ldflags=-Wl,-rpath=" %output "/lib"))))
     (inputs
-     `(("libsndfile" ,libsndfile)
-       ("boost" ,boost)
-       ("curl" ,curl)
-       ("avahi" ,avahi)
-       ("eigen" ,eigen)
-       ("lv2" ,lv2)
-       ("lilv" ,lilv)
-       ("ladspa" ,ladspa)
-       ("jack" ,jack-1)
-       ("gtkmm" ,gtkmm)
-       ("gtk+" ,gtk+)
-       ("fftwf" ,fftwf)
-       ("lrdf" ,lrdf)
-       ("zita-resampler" ,zita-resampler)
-       ("zita-convolver" ,zita-convolver)))
+     (list libsndfile
+           boost
+           curl
+           avahi
+           eigen
+           lv2
+           lilv
+           ladspa
+           jack-1
+           gtkmm-3
+           gtk+
+           fftwf
+           lrdf
+           zita-resampler
+           zita-convolver))
     (native-inputs
      `(("gperf" ,gperf)
        ("faust" ,faust)
@@ -1943,21 +1992,21 @@ auto-wah.")
                   #t))))
     (build-system gnu-build-system)
     (inputs
-     `(("alsa-utils" ,alsa-utils)
-       ("fltk" ,fltk)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxfixes" ,libxfixes)
-       ("libxft" ,libxft)
-       ("libxrender" ,libxrender)
-       ("libxpm" ,libxpm)
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("jack" ,jack-1)
-       ("alsa-lib" ,alsa-lib)
-       ("libsndfile" ,libsndfile)
-       ("libsamplerate" ,libsamplerate)
-       ("zlib" ,zlib)))
+     (list alsa-utils
+           fltk
+           libx11
+           libxext
+           libxfixes
+           libxft
+           libxrender
+           libxpm
+           fontconfig
+           freetype
+           jack-1
+           alsa-lib
+           libsndfile
+           libsamplerate
+           zlib))
     (home-page "http://rakarrack.sourceforge.net/")
     (synopsis "Audio effects processor")
     (description
@@ -2002,14 +2051,14 @@ well suited to all musical instruments and vocals.")
                (("_LV2UI_Descriptor") "LV2UI_Descriptor"))
              #t)))))
     (inputs
-     `(("libsndfile" ,libsndfile)
-       ("libsamplerate" ,libsamplerate)
-       ("lv2" ,lv2)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+-2)
-       ("zita-convolver" ,zita-convolver)))
+     (list libsndfile
+           libsamplerate
+           lv2
+           glib
+           gtk+-2
+           zita-convolver))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (native-search-paths
      (list (search-path-specification
             (variable "LV2_PATH")
@@ -2046,15 +2095,14 @@ especially for creating reverb effects.  It supports impulse responses with 1,
                         (("libnn=lib64") "libnn=lib"))
                       #t)))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("readline" ,readline)))
+     (list alsa-lib readline))
     ;; uuid.h is included in the JACK type headers
     ;; db.h is included in the libjack metadata headers
     (propagated-inputs
      `(("libuuid" ,util-linux "lib")
        ("bdb" ,bdb)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://jackaudio.org/")
     (synopsis "JACK audio connection kit")
     (description
@@ -2113,29 +2161,29 @@ synchronous execution of all clients, and low latency operation.")
                  `("GUIX_PYTHONPATH" ":" prefix (,path))))
              #t)))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("dbus" ,dbus)
-       ("expat" ,expat)
-       ("libsamplerate" ,libsamplerate)
-       ("opus" ,opus)
-       ("python-dbus" ,python-dbus)
-       ("readline" ,readline)))
+     (list alsa-lib
+           dbus
+           expat
+           libsamplerate
+           opus
+           python-dbus
+           readline))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
     (license (list license:gpl2+ license:lgpl2.1+))))
 
 (define-public jalv
   (package
     (name "jalv")
-    (version "1.6.4")
+    (version "1.6.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.drobilla.net/jalv-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "1wwfn7yzbs37s2rdlfjgks63svd5g14yyzd2gdl7h0z12qncwsy2"))))
+                "05lycfq0f06zjp5xqvzjz9hx9kmqx72yng1lghh76hv63dw43lcj"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
@@ -2150,7 +2198,7 @@ synchronous execution of all clients, and low latency operation.")
        ("qtbase" ,qtbase-5)
        ("jack" ,jack-1)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://drobilla.net/software/jalv/")
     (synopsis "Simple LV2 host for JACK")
     (description
@@ -2246,11 +2294,9 @@ to be plugged into a wide range of audio synthesis and recording packages.")
     ;; According to pkg-config, packages depending on lash also need to have
     ;; at least the following packages declared as inputs.
     (propagated-inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("dbus" ,dbus)
-       ("libxml2" ,libxml2)))
+     (list alsa-lib dbus libxml2))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.nongnu.org/lash/")
     (synopsis "Audio application session manager")
     (description
@@ -2272,8 +2318,8 @@ connections between them.")
                (base32
                 "1mcc4gjkmphczjybnsrip3gq1f974knzys7x49bv197xk3fn8wdr"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("libsndfile" ,libsndfile)))
+    (native-inputs (list pkg-config))
+    (inputs (list libsndfile))
     (home-page "https://sourceforge.net/projects/bs2b/")
     (synopsis "Bauer stereophonic-to-binaural DSP")
     (description
@@ -2296,9 +2342,8 @@ essential distortions.")
                (base32
                 "1b4aipbj1ba5k99gbc7gmgy14sywyrjd8rpyqj5l905j0mjv8jg2"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("ladspa" ,ladspa)
-              ("libbs2b" ,libbs2b)))
+    (native-inputs (list pkg-config))
+    (inputs (list ladspa libbs2b))
     (home-page "https://sourceforge.net/projects/bs2b/")
     (synopsis "Bauer stereophonic-to-binaural DSP - LADSPA plugin")
     (description "The Bauer stereophonic-to-binaural DSP (bs2b) library and
@@ -2358,11 +2403,9 @@ implementation of the Open Sound Control (@dfn{OSC}) protocol.")
                (rename-file (string-append inc "/RtAudio.h")
                             (string-append inc "/rtaudio/RtAudio.h"))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib jack-1 pulseaudio))
     (synopsis "Common API for real-time audio I/O")
     (description
      "RtAudio is a set of C++ classes that provides a common API for real-time
@@ -2398,7 +2441,7 @@ compensation, (de)interleaving, and byte-swapping
          "0x7vdsigm7xgvyg3shd3lj113m8zqj2pxmrgdyj66kmnw0qdxgwk"))))
     (build-system python-build-system)
     (inputs
-     `(("portaudio" ,portaudio)))
+     (list portaudio))
     (home-page "https://people.csail.mit.edu/hubert/pyaudio/")
     (synopsis "Bindings for PortAudio v19")
     (description "This package provides bindings for PortAudio v19, the
@@ -2422,9 +2465,9 @@ cross-platform audio input/output stream library.")
     (build-system python-build-system)
     (arguments `(#:tests? #f)) ;no tests
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (inputs
-     `(("liblo" ,liblo)))
+     (list liblo))
     (home-page "http://das.nasophon.de/pyliblo/")
     (synopsis "Python bindings for liblo")
     (description
@@ -2450,11 +2493,9 @@ included are the command line utilities @code{send_osc} and @code{dump_osc}.")
          "0yqhrfz7xkvqrwdxdx2ydy4h467sk7z3gf984y1x2cq7cm1gy329"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-cffi" ,python-cffi)
-       ("python-numpy" ,python-numpy)
-       ("libsndfile" ,libsndfile)))
+     (list python-cffi python-numpy libsndfile))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (arguments
      `(#:tests? #f ; missing OGG support
        #:phases
@@ -2505,15 +2546,15 @@ files.")
             "12wf17abn3psbsg2r2lk0xdnk8n5cd5rrvjlpxjnjfhd09n7qqgm"))))
     (build-system python-build-system)
     (propagated-inputs
-      `(("python-cffi" ,python-cffi)
-        ("python-cython" ,python-cython)
-        ("python-numpy" ,python-numpy)
-        ("python-progressbar2" ,python-progressbar2)
-        ("python-pycparser" ,python-pycparser)
-        ("python-python3-midi" ,python-python3-midi)
-        ("python-soundfile" ,python-soundfile)))
+      (list python-cffi
+            python-cython
+            python-numpy
+            python-progressbar2
+            python-pycparser
+            python-python3-midi
+            python-soundfile))
     (native-inputs
-     `(("libsndfile" ,libsndfile)))
+     (list libsndfile))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2533,14 +2574,14 @@ frequencies.  This data is then formatted to MIDI and written to disk.")
 (define-public lilv
   (package
     (name "lilv")
-    (version "0.24.10")
+    (version "0.24.12")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.drobilla.net/lilv-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "1565zy0yz46cf2f25pi46msdnzkj6bbhml9gfigdpjnsdlyskfyi"))))
+               "0qchfsyrsrp2pdpd59025kllycr04ddpzd03ha1iz70ci687g8r6"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
@@ -2550,24 +2591,18 @@ frequencies.  This data is then formatted to MIDI and written to disk.")
           (lambda* (#:key outputs #:allow-other-keys)
             (setenv "LDFLAGS"
                     (string-append "-Wl,-rpath="
-                                   (assoc-ref outputs "out") "/lib"))
-            #t))
+                                   (assoc-ref outputs "out") "/lib"))))
          (add-after 'unpack 'full-store-path-to-shared-library
            (lambda* (#:key outputs #:allow-other-keys)
              (with-directory-excursion "bindings/python"
                (substitute* "lilv.py"
                  (("liblilv-0.so") (string-append (assoc-ref outputs "out")
-                                                  "/lib/liblilv-0.so"))))
-             #t)))))
+                                                  "/lib/liblilv-0.so")))))))))
     ;; Required by lilv-0.pc.
     (propagated-inputs
-     `(("lv2" ,lv2)
-       ("serd" ,serd)
-       ("sord" ,sord)
-       ("sratom" ,sratom)))
+     (list lv2 serd sord sratom))
     (native-inputs
-     `(("python" ,python)
-       ("pkg-config" ,pkg-config)))
+     (list python pkg-config))
     (home-page "https://drobilla.net/software/lilv")
     (synopsis "Library to simplify use of LV2 plugins in applications")
     (description
@@ -2579,23 +2614,23 @@ significantly faster and have minimal dependencies.")
 (define-public lv2
   (package
     (name "lv2")
-    (version "1.18.0")
+    (version "1.18.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://lv2plug.in/spec/lv2-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "0gs7401xz23q9vajqr31aa2db8dvssgyh5zrvr4ipa6wig7yb8wh"))))
+               "0pp0n9x1rg8d4fw853z9cvfifjdi4bl85yjxxddqa1acfjy1z2af"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
        #:configure-flags '("--no-plugins")))
     (inputs
      ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
-     `(("libsndfile" ,libsndfile)))
+     (list libsndfile))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://lv2plug.in/")
     (synopsis "LV2 audio plugin specification")
     (description
@@ -2626,10 +2661,9 @@ software.")
        #:tests? #f ; no check target
        #:phases (modify-phases %standard-phases (delete 'configure))))
     (inputs
-     `(("lv2" ,lv2)
-       ("lvtk" ,lvtk)))
+     (list lv2 lvtk))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (native-search-paths
      (list (search-path-specification
             (variable "LV2_PATH")
@@ -2674,11 +2708,9 @@ software.")
                             (assoc-ref %build-inputs "boost")
                             "/include"))))
     (inputs
-     `(("boost" ,boost)
-       ("gtkmm" ,gtkmm-2)
-       ("lv2" ,lv2)))
+     (list boost gtkmm-2 lv2))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/lvtk/lvtk")
     (synopsis "C++ libraries for LV2 plugins")
     (description
@@ -2721,8 +2753,7 @@ lv2-c++-tools.")
                               "\")")))
             #t)))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib pulseaudio))
     (synopsis "3D audio API")
     (description
      "OpenAL provides capabilities for playing audio in a virtual 3D
@@ -2754,7 +2785,7 @@ buffers, and audio capture.")
     (arguments
      `(#:tests? #f))  ; no check target
     (inputs
-     `(("openal" ,openal)))
+     (list openal))
     (synopsis "Free implementation of OpenAL's ALUT standard")
     (description "freealut is the OpenAL Utility Toolkit.")
     (home-page "https://kcat.strangesoft.net/openal.html")
@@ -2763,7 +2794,7 @@ buffers, and audio capture.")
 (define-public patchage
   (package
     (name "patchage")
-    (version "1.0.2")
+    (version "1.0.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.drobilla.net/patchage-"
@@ -2771,22 +2802,21 @@ buffers, and audio capture.")
                                   ".tar.bz2"))
               (sha256
                (base32
-                "0dk3fiac10m83mwss3026yz7ygc47c2iw924cwwnh2fyydc9bsy6"))))
+                "0gbakiw3mikgbvy3pssrmqmn7z5c7kp4vyaxj5rs4jnkscxgw9vw"))))
     (build-system waf-build-system)
     (arguments
-     `(#:tests? #f                      ; no check target
-       #:python ,python-2))
+     `(#:tests? #f))                    ; no check target
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("boost" ,boost)
-       ("jack" ,jack-1)
-       ("ganv" ,ganv)
-       ("glibmm" ,glibmm)
-       ("gtkmm" ,gtkmm-2)
-       ("dbus-glib" ,dbus-glib)))
+     (list alsa-lib
+           boost
+           jack-1
+           ganv
+           glibmm
+           gtkmm-2
+           dbus-glib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (home-page "https://drobilla.net/software/patchage/")
+     (list pkg-config))
+    (home-page "https://drobilla.net/software/patchage.html")
     (synopsis "Modular patch bay for audio and MIDI systems")
     (description
      "Patchage is a modular patch bay for audio and MIDI systems based on JACK
@@ -2809,14 +2839,9 @@ and ALSA.")
     (arguments
      `(#:configure-flags '("--disable-static")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list autoconf automake libtool pkg-config which))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib pulseaudio))
     (synopsis "Portable C audio library")
     (description
      "The Portable C Audio Library (pcaudiolib) provides a C@tie{}API to
@@ -2829,26 +2854,21 @@ different audio devices such as ALSA or PulseAudio.")
 (define-public qjackctl
   (package
     (name "qjackctl")
-    (version "0.9.4")
+    (version "0.9.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
                                   version "/qjackctl-" version ".tar.gz"))
               (sha256
                (base32
-                "186rg3j67rac9ds1r7gnrib2d0smgv15cmr5gwb7v83mywcp1gzy"))))
+                "1g61xwsxsndwlnh4547vl7jfcf4kqlbb4394jq2m8qbbzk51b6rv"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f))                    ; no check target
     (inputs
-     `(("jack" ,jack-1)
-       ("alsa-lib" ,alsa-lib)
-       ("portaudio" ,portaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+     (list jack-1 alsa-lib portaudio qtbase-5 qtx11extras))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (home-page "https://qjackctl.sourceforge.io/")
     (synopsis "Jack server control application")
     (description "Control a Jack server.  Allows you to plug various sources
@@ -2878,11 +2898,9 @@ into various outputs and to start, stop and configure jackd")
                      (string-append "PREFIX="
                                     (assoc-ref outputs "out"))))))))
     (native-inputs
-     `(("qtbase" ,qtbase-5))) ; for qmake
+     (list qtbase-5)) ; for qmake
     (inputs
-     `(("jack" ,jack-1)
-       ("libsndfile" ,libsndfile)
-       ("qtbase" ,qtbase-5)))
+     (list jack-1 libsndfile qtbase-5))
     (home-page "https://sourceforge.net/projects/qjackrcd/")
     (synopsis "Stereo audio recorder for JACK")
     (description "QJackRcd is a simple graphical stereo recorder for JACK
@@ -2893,51 +2911,52 @@ background file post-processing.")
 (define-public supercollider
   (package
     (name "supercollider")
-    (version "3.11.2")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/supercollider/supercollider")
-                    (commit (string-append "Version-" version))
-                    ;; for nova-simd, nova-tt, hidapi, TLSF, oscpack
-                    (recursive? #t)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1gi7nrmjmbnjndqkmhfrkk0jchrzvnhl3f6gp6n5wgdd4mxbgxgw"))
-              (modules '((guix build utils)
-                         (ice-9 ftw)))
-              (snippet
-               ;; The build system doesn't allow us to unbundle the following
-               ;; libraries.  hidapi is also heavily patched and upstream not
-               ;; actively maintained.
-               '(let ((keep-dirs '("nova-simd" "nova-tt" "hidapi"
-                                   "TLSF-2.4.6" "oscpack_1_1_0" "." "..")))
-                  (with-directory-excursion "./external_libraries"
-                    (for-each
-                     delete-file-recursively
-                     (scandir "."
-                              (lambda (x)
-                                (and (eq? (stat:type (stat x)) 'directory)
-                                     (not (member (basename x) keep-dirs)))))))
-                  ;; To find the Guix provided ableton-link library.
-                  (substitute* "lang/CMakeLists.txt"
-                    (("include\\(\\.\\./external_libraries/link/\
+    (version "3.12.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/supercollider/supercollider")
+             (commit (string-append "Version-" version))
+             ;; for nova-simd, nova-tt, hidapi, TLSF, oscpack
+             (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0id522338a464j1slcspajwc7klypbc9qpigw5mqjhrw970wij5z"))
+       (modules '((guix build utils)
+                  (ice-9 ftw)))
+       (snippet
+        ;; The build system doesn't allow us to unbundle the following
+        ;; libraries.  hidapi is also heavily patched and upstream not
+        ;; actively maintained.
+        '(let ((keep-dirs '("nova-simd" "nova-tt" "hidapi"
+                            "TLSF-2.4.6" "oscpack_1_1_0" "." "..")))
+           (with-directory-excursion "./external_libraries"
+             (for-each
+              delete-file-recursively
+              (scandir "."
+                       (lambda (x)
+                         (and (eq? (stat:type (stat x)) 'directory)
+                              (not (member (basename x) keep-dirs)))))))
+           ;; To find the Guix provided ableton-link library.
+           (substitute* "lang/CMakeLists.txt"
+             (("include\\(\\.\\./external_libraries/link/\
 AbletonLinkConfig\\.cmake\\)")
-                     "find_package(AbletonLink NAMES AbletonLink ableton-link \
-link REQUIRED)"))
-                  #t))))
+              "find_package(AbletonLink NAMES AbletonLink ableton-link \
+link REQUIRED)"))))))
     (build-system cmake-build-system)
     (outputs
-     '("out"   ;core language
-       "ide")) ;qt ide
+     '("out"                            ;core language
+       "ide"))                          ;qt ide
     (arguments
-     `(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
-                           "-DSC_QT=ON" "-DCMAKE_BUILD_TYPE=Release"
+     `(#:configure-flags '("-DSYSTEM_BOOST=ON"
+                           "-DSYSTEM_YAMLCPP=ON"
+                           "-DSC_QT=ON"
+                           "-DCMAKE_BUILD_TYPE=Release"
                            "-DFORTIFY=ON"
-                           ;"-DLIBSCSYNTH=ON"   ; TODO: Re-enable?
-                           "-DSC_EL=off") ;scel is packaged individually as
-                                          ;emacs-scel
+                           ;; "-DLIBSCSYNTH=ON"   ; TODO: Re-enable?
+                           "-DSC_EL=OFF") ;scel is packaged individually as emacs-scel
        #:phases
        (modify-phases %standard-phases
          ;; HOME must be defined otherwise supercollider throws a "ERROR:
@@ -2945,8 +2964,7 @@ link REQUIRED)"))
          ;; The graphical tests also hang without it.
          (add-after 'unpack 'set-home-directory
            (lambda _
-             (setenv "HOME" (getcwd))
-             #t))
+             (setenv "HOME" (getcwd))))
          (add-after 'unpack 'patch-scclass-dir
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -2957,13 +2975,11 @@ link REQUIRED)"))
                  (((string-append
                     "SC_Filesystem::instance\\(\\)\\.getDirectory"
                     "\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME"))
-                  (string-append "Path(\"" scclass-dir "\")")))
-               #t)))
+                  (string-append "Path(\"" scclass-dir "\")"))))))
          (add-before 'build 'prepare-x
            (lambda _
              (system "Xvfb &")
-             (setenv "DISPLAY" ":0")
-             #t))
+             (setenv "DISPLAY" ":0")))
          (add-before 'install 'install-ide
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -2971,33 +2987,28 @@ link REQUIRED)"))
                     (scide "editors/sc-ide/scide"))
                (install-file scide
                              (string-append ide "/bin"))
-               (delete-file scide)
-               #t))))))
+               (delete-file scide)))))))
     (native-inputs
-     `(("ableton-link" ,ableton-link)
-       ("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)
-       ("xorg-server" ,xorg-server-for-tests)))
-    (inputs
-     `(("jack" ,jack-1)
-       ("libsndfile" ,libsndfile)
-       ("fftw" ,fftw)
-       ("libxt" ,libxt)
-       ("readline" ,readline)           ;readline support for sclang's CLI
-       ("alsa" ,alsa-lib)               ;for sclang's MIDI interface
-       ("eudev" ,eudev)                 ;for user interactions with devices
-       ("avahi" ,avahi)                 ;zeroconf service discovery support
-       ("icu4c" ,icu4c)
-       ("boost" ,boost)
-       ("boost-sync" ,boost-sync)
-       ("yaml-cpp" ,yaml-cpp)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)
-       ("qtwebchannel" ,qtwebchannel)
-       ("qtwebsockets" ,qtwebsockets)))
+     (list ableton-link pkg-config qttools xorg-server-for-tests))
+    (inputs (list jack-1
+                  libsndfile
+                  fftw
+                  libxt
+                  readline              ;readline support for sclang's CLI
+                  alsa-lib              ;for sclang's MIDI interface
+                  eudev                 ;for user interactions with devices
+                  avahi                 ;zeroconf service discovery support
+                  icu4c
+                  boost
+                  boost-sync
+                  yaml-cpp
+                  qtbase-5
+                  qtdeclarative
+                  qtsvg
+                  qtwebchannel
+                  qtwebsockets))
     (propagated-inputs                  ;to get native-search-path
-     `(("qtwebengine" ,qtwebengine)))
+     (list qtwebengine))
     (home-page "https://github.com/supercollider/supercollider")
     (synopsis "Synthesis engine and programming language")
     (description "SuperCollider is a synthesis engine (@code{scsynth} or
@@ -3010,6 +3021,28 @@ for \"realtime\" in the index of the Guix manual to learn how to achieve this
 using Guix System.")
     (license license:gpl2+)))
 
+(define-public libshout-idjc
+  (package
+    (name "libshout-idjc")
+    (version "2.4.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/libshoutidjc.idjc.p"
+                           "/libshout-idjc-" version ".tar.gz"))
+       (sha256
+        (base32 "1r9z8ggxylr2ab0isaljbm574rplnlcb12758j994h54nh2vikwb"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list libogg libtheora libvorbis speex))
+    (home-page "http://idjc.sourceforge.net/")
+    (synopsis "Broadcast streaming library with IDJC extensions")
+    (description "This package provides libshout plus IDJC extensions.")
+    ;; GNU Library (not Lesser) General Public License.
+    (license license:lgpl2.0+)))
+
 (define-public raul
   (package
     (name "raul")
@@ -3026,10 +3059,9 @@ using Guix System.")
      `(#:python ,python-2
        #:tests? #f)) ; no check target
     (inputs
-     `(("glib" ,glib)
-       ("boost" ,boost)))
+     (list glib boost))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://drobilla.net/software/raul/")
     (synopsis "Real-time audio utility library")
     (description
@@ -3067,10 +3099,7 @@ aimed at audio/musical applications.")
                        "074zj8ydp05yy1hjcglfv3hkvj4cm50f9nralka1992pm6yf8yvy"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("libtool" ,libtool)))
+     (list autoconf automake pkg-config libtool))
     (synopsis "Sampling rate conversion and filter design utilities")
     (description "This package contains the @command{resample} and
 @command{windowfilter} command line utilities.  The @command{resample} command
@@ -3107,11 +3136,9 @@ filters using the so-called @emph{window method}.")
                ((".*cp -f \\$\\(JNI_TARGET\\).*") ""))
              #t)))))
     (inputs
-     `(("ladspa" ,ladspa)
-       ("libsamplerate" ,libsamplerate)
-       ("vamp" ,vamp)))
+     (list ladspa libsamplerate vamp))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://breakfastquay.com/rubberband/")
     (synopsis "Audio time-stretching and pitch-shifting library")
     (description
@@ -3133,13 +3160,9 @@ tempo and pitch of an audio recording independently of one another.")
                 "1k962ljpnwyjw9jjiky2372khhri1wqvrj5qsalfpys31xqzw31p"))))
     (build-system gnu-build-system)
     (inputs
-     `(("jack" ,jack-1)
-       ("alsa-lib" ,alsa-lib)))
+     (list jack-1 alsa-lib))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (home-page "https://www.music.mcgill.ca/~gary/rtmidi")
     (synopsis "Cross-platform MIDI library for C++")
     (description
@@ -3163,11 +3186,9 @@ input/output.")
     (arguments `(#:tests? #f))          ;no check target
     (propagated-inputs
      ;; In Requires of sratom-0.pc.
-     `(("lv2" ,lv2)
-       ("serd" ,serd)
-       ("sord" ,sord)))
+     (list lv2 serd sord))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://drobilla.net/software/sratom/")
     (synopsis "Library for serialising LV2 atoms to/from RDF")
     (description
@@ -3195,7 +3216,7 @@ the Turtle syntax.")
        ("gtk+" ,gtk+)
        ("qt" ,qtbase-5)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://drobilla.net/software/suil/")
     (synopsis "Library for loading and wrapping LV2 plugin UIs")
     (description
@@ -3212,7 +3233,7 @@ Suil currently supports every combination of Gtk, Qt, and X11.")
 (define-public libebur128
   (package
     (name "libebur128")
-    (version "1.2.4")
+    (version "1.2.6")
     (source
      (origin
        (method git-fetch)
@@ -3221,7 +3242,7 @@ Suil currently supports every combination of Gtk, Qt, and X11.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0n81rnm8dm1zmibkr2v3q79rsd609y0dbbsrbay18njcjva88p0g"))))
+        (base32 "0xkpz5rzz1j1srhprbh89669gw8z5f1njpvcnxqgf7qax69vd8sh"))))
     (build-system cmake-build-system)
     (arguments
      `(;; Tests require proprietary .wav files. See
@@ -3271,17 +3292,17 @@ for loudness normalisation.")
                                                "/share/freepats/freepats.cfg")))))
              #t)))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("ao" ,ao)
-       ("flac" ,flac)
-       ("jack" ,jack-1)
-       ("libogg" ,libogg)
-       ("libvorbis" ,libvorbis)
-       ("speex" ,speex)
-       ("ncurses" ,ncurses)
-       ("freepats" ,freepats)))
+     (list alsa-lib
+           ao
+           flac
+           jack-1
+           libogg
+           libvorbis
+           speex
+           ncurses
+           freepats))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://timidity.sourceforge.net/")
     (synopsis "Software synthesizer for playing MIDI files")
     (description
@@ -3319,9 +3340,9 @@ disks as various audio file formats.")
                                (string-append out "/lib/libvamp-hostsdk.la"))))
              #t)))))
     (inputs
-     `(("libsndfile" ,libsndfile)))
+     (list libsndfile))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://vamp-plugins.org")
     (synopsis "Modular and extensible audio processing system")
     (description
@@ -3344,7 +3365,7 @@ analysis plugins or audio feature extraction plugins.")
        (sha256
         (base32 "1vmf84iy4dkwxv887grnlsfk43fmhd9gbg26gc2kgcv40sbkvayf"))))
     (build-system gnu-build-system)
-    (native-inputs `(("automake" ,automake)))
+    (native-inputs (list automake))
     (arguments
      `(#:configure-flags
        ;; Disable the use of SSE unless on x86_64.
@@ -3375,6 +3396,31 @@ stretching and pitch scaling of audio.  This package contains the library.")
     ;; containing gpl2.
     (license license:gpl2)))
 
+(define-public libkeyfinder
+  (package
+    (name "libkeyfinder")
+    (version "2.2.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mixxxdj/libkeyfinder")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1623kirmxhmvmhx7f8lbzk0f18w2hrhwlkzl8l4aa906lfqffdp2"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     (list catch-framework2))
+    (inputs
+     (list fftw))
+    (home-page "https://mixxxdj.github.io/libkeyfinder/")
+    (synopsis "Musical key detection for digital audio")
+    (description
+     "@code{libkeyfinder} is a small C++11 library for estimating the musical
+key of digital audio.")
+    (license license:gpl3+)))
+
 (define-public wavpack
   (package
     (name "wavpack")
@@ -3461,10 +3507,9 @@ Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT).")
                 "17i8fc7x7yn3z1x963xp9iv108gxfakxmdgmpv3mlm438w3n3g8x"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libxmp" ,libxmp)
-       ("pulseaudio" ,pulseaudio)))
+     (list libxmp pulseaudio))
     (home-page "http://xmp.sourceforge.net/")
     (synopsis "Extended module player")
     (description
@@ -3488,10 +3533,7 @@ Tracker 3 S3M and Impulse Tracker IT files.")
         (base32 "12i6yg8vvqwyk412lxl2krbfby6hnxld8qxy0k4m5xp4g94jiq4p"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("file" ,file)))
+     (list autoconf automake libtool file))
     (home-page "https://www.surina.net/soundtouch/")
     (synopsis
      "Audio processing library for changing tempo, pitch and playback rate")
@@ -3520,18 +3562,18 @@ control functionality, or just for playing around with the sound effects.")
        ;; bug reports.
        '("--with-distro=Guix System Distribution")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("ao" ,ao)
-       ("flac" ,flac)
-       ("lame" ,lame)
-       ("libid3tag" ,libid3tag)
-       ("libltdl" ,libltdl)
-       ("libmad" ,libmad)
-       ("libpng" ,libpng)
-       ("libvorbis" ,libvorbis)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib
+           ao
+           flac
+           lame
+           libid3tag
+           libltdl
+           libmad
+           libpng
+           libvorbis
+           pulseaudio))
     (home-page "http://sox.sourceforge.net")
     (synopsis "Sound processing utility")
     (description
@@ -3577,10 +3619,9 @@ conversion.  It may be used, for example, to resample PCM-encoded audio.")
         (base32 "0zf8sxqb02w07ah55b1y7ab643zmpbhn62spa9pqra0rc17l4dfc"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libsndfile" ,libsndfile)))
+     (list libsndfile))
     (native-inputs
-     `(("perl" ,perl)
-       ("which" ,which)))               ;used in tests/test.pl
+     (list perl which))               ;used in tests/test.pl
     (home-page "https://www.twolame.org/")
     (synopsis "MPEG Audio Layer 2 (MP2) encoder")
     (description
@@ -3606,15 +3647,11 @@ portions of LAME.")
     (build-system gnu-build-system)
     (inputs
      ;; TODO: Add ASIHPI.
-     `(("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)))
+     (list alsa-lib jack-1))
     ;; Autoreconf is necessary because the audacity-compat patch modifies .in
     ;; files.
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (arguments
      '(#:tests? #f                      ;no 'check' target
        #:parallel-build? #f             ;fails on some systems
@@ -3667,12 +3704,9 @@ interface.")
     (arguments
      `(#:tests? #f))                    ; no "check" phase
     (native-inputs
-     `(("qttools" ,qttools)
-       ("pkg-config" ,pkg-config)))
+     (list qttools pkg-config))
     (inputs
-     `(("fluidsynth" ,fluidsynth)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+     (list fluidsynth qtbase-5 qtx11extras))
     (home-page "https://qsynth.sourceforge.io")
     (synopsis "Graphical user interface for FluidSynth")
     (description
@@ -3695,13 +3729,13 @@ synthesizer written in C++.")
         (base32 "0gspmr3klwnq98h17p5hc6ifygya4p80g4g8r7a1qavm3mv19waf"))))
     (build-system gnu-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("ao" ,ao)
-       ("libsamplerate" ,libsamplerate)
-       ("openal" ,openal)
-       ("portaudio" ,portaudio)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib
+           jack-1
+           ao
+           libsamplerate
+           openal
+           portaudio
+           pulseaudio))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -3739,12 +3773,9 @@ with a much different focus than most other audio daemons.")
        (list (string-append "docdir=" (assoc-ref %outputs "out")
                             "/share/doc/xjackfreak"))))
     (inputs
-     `(("jack" ,jack-1)
-       ("libx11" ,libx11)
-       ("libxt" ,libxt)
-       ("libxext" ,libxext)))
+     (list jack-1 libx11 libxt libxext))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/johnhldavis/xjackfreak")
     (synopsis "JACK audio frequency analyzer and display")
     (description
@@ -3796,7 +3827,7 @@ result.")
              #t))
          ;; no configure script
          (delete 'configure))))
-    (inputs `(("fftwf" ,fftwf)))
+    (inputs (list fftwf))
     (home-page "https://kokkinizita.linuxaudio.org")
     (synopsis "Fast, partitioned convolution engine library")
     (description
@@ -3894,8 +3925,7 @@ provide high-quality sample rate conversion.")
           ;; no configure script
           (delete 'configure))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("fftw" ,fftw)))
+     (list alsa-lib fftw))
     (home-page "https://kokkinizita.linuxaudio.org")
     (synopsis "C++ wrapper around the ALSA API")
     (description
@@ -3921,10 +3951,7 @@ point audio data.")
     (build-system gnu-build-system)
     ;; The source checkout is not bootstrapped.
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("flex" ,flex)
-       ("bison" ,bison)))
+     (list autoconf automake flex bison))
     (synopsis "Cue and toc file parsers and utilities")
     (description "Cuetools is a set of programs that are useful for manipulating
 and using CUE sheet (cue) files and Table of Contents (toc) files.  CUE and TOC
@@ -3933,6 +3960,33 @@ machine-readable ASCII format.")
     (home-page "https://github.com/svend/cuetools")
     (license license:gpl2+)))
 
+(define-public mp3guessenc
+  (package
+    (name "mp3guessenc")
+    (version "0.27.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/mp3guessenc/mp3guessenc-"
+                           (version-major+minor version) "/mp3guessenc-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1fa3sbwwn4p2v1749lzy040bfy1xfd574mf2frwgg9ikgk3vlb3c"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)))) ; no configure phase
+    (home-page "https://mp3guessenc.sourceforge.io")
+    (synopsis "Analyze MPEG layer I/II/III files")
+    (description "mp3guessenc is a command line utility that tries to detect the
+encoder used for an MPEG Layer III (MP3) file, as well as scan any MPEG audio
+file (any layer) and print a lot of useful information.")
+    (license license:lgpl2.1+)))
+
 (define-public shntool
   (package
     (name "shntool")
@@ -4023,8 +4077,7 @@ with support for HD extensions.")
               ,home-page))
            #t))))
     (build-system gnu-build-system)
-    (inputs `(("ffmpeg" ,ffmpeg)
-              ("sox" ,sox)))
+    (inputs (list ffmpeg sox))
     (synopsis "Tool to adjust loudness of media files")
     (description
      "BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its
@@ -4131,7 +4184,7 @@ code, used in @code{libtoxcore}.")
     (arguments
      `(#:tests? #f))                   ; tests require access to ALSA devices.
     (inputs
-     `(("alsa-lib" ,alsa-lib)))
+     (list alsa-lib))
     (home-page "https://larsimmisch.github.io/pyalsaaudio/")
     (synopsis "ALSA wrappers for Python")
     (description
@@ -4190,20 +4243,17 @@ kbps at 24 bit/96 kHz.")
                             (assoc-ref %outputs "out")
                             "/etc/dbus-1/system.d"))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("bluez" ,bluez)
-       ("dbus" ,dbus)
-       ("glib" ,glib)
-       ("ldacbt" ,ldacbt)
-       ("libbsd" ,libbsd)
-       ("ncurses" ,ncurses)
-       ("ortp" ,ortp)
-       ("sbc" ,sbc)))
+     (list alsa-lib
+           bluez
+           dbus
+           glib
+           ldacbt
+           libbsd
+           ncurses
+           ortp
+           sbc))
     (home-page "https://github.com/Arkq/bluez-alsa")
     (synopsis "Bluetooth ALSA backend")
     (description "This project is a rebirth of a direct integration between
@@ -4252,23 +4302,23 @@ on the ALSA software PCM plugin.")
                (copy-recursively "pix" (string-append doc "/pix"))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("fftw" ,fftw)
-       ("flac" ,flac)
-       ("gmp" ,gmp)
-       ("gsl" ,gsl)
-       ("gtk+" ,gtk+)
-       ("jack" ,jack-1)
-       ("libsamplerate" ,libsamplerate)
-       ("mpc" ,mpc)
-       ("mpfr" ,mpfr)
-       ("mpg123" ,mpg123)
-       ("speex" ,speex)
-       ("timidity++" ,timidity++)
-       ("vorbis-tools" ,vorbis-tools)
-       ("wavpack" ,wavpack)))
+     (list alsa-lib
+           fftw
+           flac
+           gmp
+           gsl
+           gtk+
+           jack-1
+           libsamplerate
+           mpc
+           mpfr
+           mpg123
+           speex
+           timidity++
+           vorbis-tools
+           wavpack))
     (synopsis "Sound editor")
     (home-page "https://ccrma.stanford.edu/software/snd/")
     (description
@@ -4296,10 +4346,9 @@ the Snd sources), Ruby, or Forth.")
        (list (string-append "--prefix=" (assoc-ref %outputs "out")
                             "/lib/lv2"))))
     (inputs
-     `(("lv2" ,lv2)
-       ("fftwf" ,fftwf)))
+     (list lv2 fftwf))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/lucianodato/noise-repellent")
     (synopsis "LV2 plugin for broadband noise reduction")
     (description "Noise Repellent is an LV2 plugin to reduce noise.  It has
@@ -4364,12 +4413,9 @@ the following features:
                    (invoke "make")
                    (setenv "CFLAGS" old-CFLAGS))))))))
       (inputs
-       `(("lv2" ,lv2)))
+       (list lv2))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("pkg-config" ,pkg-config)))
+       (list autoconf automake libtool pkg-config))
       (home-page "https://github.com/werman/noise-suppression-for-voice")
       (synopsis "Speech denoise LV2 plugin based on Xiph's RNNoise library")
       (description "RNNoise is a library that uses deep learning to apply
@@ -4393,12 +4439,10 @@ an LV2 audio plugin.")
     (build-system cmake-build-system)
     (native-inputs
      ;; TODO: Try using the latest googletest for versions > 1.8.
-     `( ;; ("googletest" ,googletest-1.8)
-       ("which" ,which)))
+     (list ;; ("googletest" ,googletest-1.8)
+           which))
     (inputs
-     `(("fftw" ,fftw)
-       ("ncurses" ,ncurses)
-       ("pulseaudio" ,pulseaudio)))
+     (list fftw ncurses pulseaudio))
     (arguments
      '(#:tests? #f
        ;; XXX Enable tests after patching them to use the system googletest.
@@ -4438,13 +4482,9 @@ representations.")
                 "1mziklmqifhnb4kg9ia2r56r8wjn6xp40bkpf484hsgqvnrccl86"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (inputs
-     `(("fftw" ,fftw)
-       ("ncurses" ,ncurses)
-       ("pulseaudio" ,pulseaudio)))
+     (list fftw ncurses pulseaudio))
     (arguments
      `(#:configure-flags
        (list (string-append "PREFIX=" %output)
@@ -4525,9 +4565,7 @@ using ALSA, MPD, PulseAudio, or a FIFO buffer as its input.")
           "1fkrnzs78fmj11n9z3l0w53i2fl16jcfiyavwidck9bzmkmsf486"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (home-page "https://github.com/mstorsjo/fdk-aac")
     (synopsis "Fraunhofer FDK AAC library")
     (description "FDK is a library for encoding and decoding Advanced Audio
@@ -4543,7 +4581,7 @@ library supports sample rates up to 96 kHz and up to eight channels (7.1
 (define-public libopenshot-audio
   (package
     (name "libopenshot-audio")
-    (version "0.2.0")
+    (version "0.2.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4552,16 +4590,16 @@ library supports sample rates up to 96 kHz and up to eight channels (7.1
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "13if0m5mvlqly8gmbhschzb9papkgp3yqivklhb949dhy16m8zgf"))))
+                "03dygh85riljk7dpn5a5a0d22a2kz45fs13gzwqgnbzzr1k17p2y"))))
     (build-system cmake-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ;; The following are for JUCE GUI components:
-       ("libx11" ,libx11)
-       ("freetype" ,freetype)
-       ("libxrandr" ,libxrandr)
-       ("libxinerama" ,libxinerama)
-       ("libxcursor" ,libxcursor)))
+     (list alsa-lib
+           ;; The following are for JUCE GUI components:
+           libx11
+           freetype
+           libxrandr
+           libxinerama
+           libxcursor))
     (arguments
      `(#:tests? #f                      ;there are no tests
        #:configure-flags
@@ -4578,7 +4616,7 @@ library.")
 (define-public faudio
   (package
     (name "faudio")
-    (version "21.07")
+    (version "21.10")
     (source
      (origin
        (method git-fetch)
@@ -4587,15 +4625,13 @@ library.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0v76pvsna7dx8nb53s7x2vfpws27wi3p34l7af5niqvyh0gl4mzr"))))
+        (base32 "0l9bicg8v1shsyq9k48zh4wv5kwfs6lfjmm9blzd13xrgmhd07w2"))))
     (arguments
      '(#:tests? #f                      ; No tests.
        #:configure-flags '("-DGSTREAMER=ON")))
     (build-system cmake-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("gstreamer" ,gstreamer)
-              ("gst-plugins-base" ,gst-plugins-base)
-              ("sdl2" ,sdl2)))
+    (native-inputs (list pkg-config))
+    (inputs (list gstreamer gst-plugins-base sdl2))
     (home-page "https://github.com/FNA-XNA/FAudio")
     (synopsis "XAudio reimplementation")
     (description "FAudio is an XAudio reimplementation that focuses solely on
@@ -4620,12 +4656,9 @@ developing fully accurate DirectX Audio runtime libraries.")
          "1gq519c0imsh57zklyi0f8h64l3ai48lh672c834470z8c6kvbfi"))))
     (build-system gnu-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("gtk+" ,gtk+-2)
-       ("libsndfile" ,libsndfile)
-       ("portaudio" ,portaudio)))
+     (list alsa-lib gtk+-2 libsndfile portaudio))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://gnaural.sourceforge.net/")
     (synopsis "Binaural beat synthesizer")
     (description "Gnaural is a programmable auditory binaural beat synthesizer
@@ -4648,15 +4681,15 @@ other Gnaural instances, allowing synchronous sessions between many users.")
                (base32
                 "05yq7lggxygrkd76yiqby3msrgdn082p0qlvmzzv9xbw8hmyra76"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("lame" ,lame)
-              ("libvorbis" ,libvorbis)
-              ("opus" ,opus)
-              ("twolame" ,twolame)
-              ("alsa-lib" ,alsa-lib)
-              ("pulseaudio" ,pulseaudio)
-              ("jack" ,jack-1)
-              ("libsamplerate" ,libsamplerate)))
+    (native-inputs (list pkg-config))
+    (inputs (list lame
+                  libvorbis
+                  opus
+                  twolame
+                  alsa-lib
+                  pulseaudio
+                  jack-1
+                  libsamplerate))
     (arguments
      `(#:configure-flags
        (list (string-append "--with-lame-prefix="
@@ -4685,8 +4718,7 @@ stream to one or more IceCast and/or ShoutCast servers.")
     (arguments
      `(#:parallel-tests? #f))           ;tests fail otherwise
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen pkg-config))
     (synopsis "Encode or decode Linear/Longitudinal Time Code (LTC) audio")
     (description "Libltc is a POSIX-C Library for handling
 @dfn{Linear/Longitudinal Time Code} (LTC) data.")
@@ -4750,11 +4782,9 @@ supports both of ID3v1/v2 and APEv2 tags.")
     (arguments
      `(#:tests? #f)) ;no tests included
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib jack-1 pulseaudio))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://libsound.io")
     (synopsis "C library for real-time audio input and output")
     (description "@code{libsoundio} is a C library providing audio input and
@@ -4765,23 +4795,23 @@ workstations as well as consumer software such as music players.")
 (define-public redkite
   (package
     (name "redkite")
-    (version "1.3.0")
+    (version "1.3.1")                     ;marked unmaintained as of Oct. 2021
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://gitlab.com/iurie-sw/redkite")
+             (url "https://github.com/free-sm/redkite")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "16j9zp5i7svq3g38rfb6h257qfgnd2brrxi7cjd2pdax9xxwj40y"))))
+        (base32 "1zb2k2a4m7z2ravqrjn8fq8lic20wbr2m8kja3p3113jsk7j9zvd"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ;no tests included
     (propagated-inputs
-     `(("cairo" ,cairo)))
+     (list cairo))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Small GUI toolkit")
     (description "Redkite is a small GUI toolkit developed in C++17 and
 inspired from other well known GUI toolkits such as Qt and GTK.  It is
@@ -4794,7 +4824,7 @@ as is the case with audio plugins.")
 (define-public carla
   (package
     (name "carla")
-    (version "2.1.1")
+    (version "2.4.1")
     (source
      (origin
        (method git-fetch)
@@ -4804,8 +4834,7 @@ as is the case with audio plugins.")
          (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0c3y4a6cgi4bv1mg57i3qn5ia6pqjqlaylvkapj6bmpsw71ig22g"))))
+        (base32 "01ngkmfcxyg1bb4qmfvlkkjbx4lx62akxqhizl8zmqnhfcy4p9bx"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no "check" target
@@ -4853,7 +4882,7 @@ as is the case with audio plugins.")
        ;; For WRAP-SCRIPT above.
        ("guile" ,guile-2.2)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://kx.studio/Applications:Carla")
     (synopsis "Audio plugin host")
     (description "Carla is a modular audio plugin host, with features like
@@ -4874,22 +4903,22 @@ default and preferred audio driver but also supports native drivers like ALSA.")
               (sha256
                (base32 "1m7njfjdb7sqf0lhgc4swihgdr4snkg8v02wcly08wb5ar2fr2s6"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     ;; It would be nice to add mikmod to inputs if that gets packaged
     ;; eventually.
-    (inputs `(("alsa-lib" ,alsa-lib)
-              ("jack" ,jack-1)
-              ("mpg123" ,mpg123)
-              ("lame" ,lame)
-              ("vorbis-tools" ,vorbis-tools)
-              ("faad2" ,faad2)
-              ("flac" ,flac)
-              ("timidity++" ,timidity++)
-              ("libsndfile" ,libsndfile)
-              ("libsamplerate" ,libsamplerate)
-              ("ncurses" ,ncurses)
-              ("ladspa" ,ladspa)
-              ("lilv" ,lilv)))
+    (inputs (list alsa-lib
+                  jack-1
+                  mpg123
+                  lame
+                  vorbis-tools
+                  faad2
+                  flac
+                  timidity++
+                  libsndfile
+                  libsamplerate
+                  ncurses
+                  ladspa
+                  lilv))
     (home-page "https://nosignal.fi/ecasound/index.php")
     (synopsis "Multitrack audio processing")
     (description "Ecasound is a software package designed for multitrack audio
@@ -4926,10 +4955,9 @@ in the package.")
       ;; Build the tests.
       `("-Dtests=true")))
    (inputs
-    `(("libsamplerate" ,libsamplerate)
-      ("libsndfile" ,libsndfile)))
+    (list libsamplerate libsndfile))
    (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
    (synopsis "Library for reading and resampling audio files")
    (description "libaudec is a wrapper library over ffmpeg, sndfile and
 libsamplerate for reading and resampling audio files, based on Robin Gareus'
@@ -4957,11 +4985,9 @@ libsamplerate for reading and resampling audio files, based on Robin Gareus'
        `("-Delf-tests=true" ; for checking symbol visibility
          "-Donline-tests=true"))) ; for checking URI existence
     (inputs
-      `(("curl" ,curl)
-        ("libelf" ,libelf)
-        ("lilv" ,lilv)))
+      (list curl libelf lilv))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (synopsis "LV2 plugin lint tool")
     (description "lv2lint is an LV2 lint-like tool that checks whether a
 given plugin and its UI(s) match up with the provided metadata and adhere
@@ -4992,11 +5018,9 @@ to well-known best practices.")
       (modify-phases %standard-phases
         (delete 'configure))))
     (inputs
-      `(("jalv" ,jalv)
-        ("lilv" ,lilv)))
+      (list jalv lilv))
     (native-inputs
-      `(("help2man" ,help2man)
-        ("pkg-config" ,pkg-config)))
+      (list help2man pkg-config))
     (synopsis "Documentation generator for LV2 plugins")
     (description
       "lv2toweb allows the user to create an xhtml page with information
@@ -5021,12 +5045,11 @@ with the provided metadata and adhere to well-known best practices.")
          "07xl3cmdaf7k9mm58m93cn8i1jvgimmiifdw1w7v2jl88nx60pm1"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     ;; These are listed as propagated inputs because they are dependencies
     ;; in pkgconfig.
     (propagated-inputs
-     `(("cairo" ,cairo)
-       ("libx11" ,libx11)))
+     (list cairo libx11))
     (synopsis "GUI toolkit for LV2 plugins")
     (description "ZToolkit (Ztk) is a cross-platform GUI toolkit heavily
 inspired by GTK.  It handles events and low level drawing on behalf of
@@ -5057,8 +5080,7 @@ minimum.")
      `(("glib:bin" ,glib "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("glib" ,glib)
-       ("libsndfile" ,libsndfile)))
+     (list glib libsndfile))
     (home-page "http://www.swamiproject.org/")
     (synopsis "Instrument file software library")
     (description
@@ -5129,9 +5151,7 @@ currently operate on IEEE-754 single-precision floating-point numbers.")
         (base32 "1jpvr7bra8srz8jvnlbmhf8andbaavq5v01qjnp2f61za93rzwba"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("bc" ,bc)
-       ("octave" ,octave)
-       ("valgrind" ,valgrind)))
+     (list bc octave valgrind))
     (arguments
      `(#:tests? #f ; TODO: Fix tests (paths, graphic toolkit, octave modules).
        #:phases
@@ -5177,7 +5197,7 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.")
 (define-public ableton-link
   (package
     (name "ableton-link")
-    (version "3.0.2")
+    (version "3.0.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -5186,7 +5206,7 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0262vm0v7hmqjhqx5xikh529p3c065p1yld6ymaiz74yq1dnnjir"))
+                "1wplqj11ww64gmw2kzlxpvfs3v04m2036f7k5ndm34zcv12b91fa"))
               (modules '((guix build utils)))
               (patches
                (search-patches "ableton-link-system-libraries-debian.patch"))
@@ -5198,23 +5218,22 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.")
                     (("root_dir,") "root_dir, os.pardir,"))
                   ;; Unbundle dependencies.
                   (delete-file-recursively "third_party")
-                  (delete-file-recursively "modules")
-                  #t))))
+                  (delete-file-recursively "modules")))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("catch" ,catch-framework)
-       ("python" ,python)       ;for running tests
-       ("portaudio" ,portaudio) ;for portaudio examples
-       ("qtbase" ,qtbase-5)       ;for Qt examples
-       ("qtdeclarative" ,qtdeclarative)
-       ("qttools" ,qttools)))
+     (list catch-framework
+           python ;for running tests
+           portaudio ;for portaudio examples
+           qtbase-5 ;for Qt examples
+           qtdeclarative
+           qttools))
     (inputs
-     `(("jack" ,jack-1)                       ;for JACK examples
-       ("qtquickcontrols" ,qtquickcontrols))) ;for Qt examples
+     (list jack-1 ;for JACK examples
+           qtquickcontrols)) ;for Qt examples
     (propagated-inputs
      ;; This is because include/ableton/platforms/asio/AsioWrapper.hpp
      ;; contains '#include <asio.hpp>'.
-     `(("asio" ,asio)))
+     (list asio))
     (arguments
      `(#:configure-flags
        '("-DLINK_BUILD_QT_EXAMPLES=ON"
@@ -5222,18 +5241,15 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.")
        #:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let* ((python (search-input-file inputs "/bin/python3"))
-                    (run-tests (string-append "../ableton-link-"
-                                              ,version
-                                              "-checkout/ci/run-tests.py")))
-               (invoke python run-tests "--target" "LinkCoreTest")
-               (invoke python run-tests "--target" "LinkDiscoveryTest"))))
+           (lambda* (#:key inputs tests? #:allow-other-keys)
+             (when tests?
+               (let* ((python (search-input-file inputs "/bin/python3"))
+                      (run-tests "../source/ci/run-tests.py"))
+                 (invoke python run-tests "--target" "LinkCoreTest")
+                 (invoke python run-tests "--target" "LinkDiscoveryTest")))))
          (add-before 'install 'patch-cmake
            (lambda* (#:key inputs #:allow-other-keys)
-             (let* ((source (string-append "../ableton-link-"
-                                                ,version
-                                                "-checkout/")))
+             (let* ((source "../source/"))
                (substitute* (string-append source
                                            "cmake_include/AsioStandaloneConfig.cmake")
                  (((string-append "\\$\\{CMAKE_CURRENT_LIST_DIR\\}/\\.\\./"
@@ -5244,14 +5260,13 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.")
                  (("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include")
                   "${CMAKE_CURRENT_LIST_DIR}/../../../include")
                  (("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include/ableton/Link\\.hpp")
-                  "${CMAKE_CURRENT_LIST_DIR}/../../../include/ableton/Link.hpp"))
-               #t)))
+                  "${CMAKE_CURRENT_LIST_DIR}/../../../include/ableton/Link.hpp")))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin"))
                     (lib-cmake (string-append out "/lib/cmake/ableton-link"))
-                    (source (string-append "../ableton-link-" ,version "-checkout")))
+                    (source "../source"))
                (for-each (lambda (test-file)
                            (delete-file test-file))
                          '("bin/LinkDiscoveryTest" "bin/LinkCoreTest"))
@@ -5262,8 +5277,7 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.")
                              lib-cmake)
                (install-file (string-append source
                                             "/cmake_include/AsioStandaloneConfig.cmake")
-                             (string-append lib-cmake "/cmake_include"))
-               #t))))))
+                             (string-append lib-cmake "/cmake_include"))))))))
     (home-page "https://github.com/Ableton/link")
     (synopsis "Synchronize musical beat, tempo, and phase across multiple applications")
     (description
@@ -5277,14 +5291,14 @@ while still staying in time.")
 (define-public butt
   (package
     (name "butt")
-    (version "0.1.31")
+    (version "0.1.32")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/butt/butt/butt-"
                                   version "/butt-" version ".tar.gz"))
               (sha256
                (base32
-                "19zvdi5vr6vqnrpc60jir7550nz9a5x1c61lh13355cdny2zp28z"))
+                "1qwllkx9p1gb3syhbbck3agrk375m82l18fb81aqygi4g3dg3s9r"))
               (modules '((guix build utils)))
               (snippet
                '(substitute* "src/butt.cpp"
@@ -5325,7 +5339,7 @@ while still staying in time.")
                                         version "_manual.pdf"))
                     (sha256
                      (base32
-                      "0a0kgd069whfp1v8xgw6qm67w02n8b7b4h5ay5665wgq947hxanp"))))))
+                      "0g70jyyxbx5nin3xs9q9zf878b2kyy7rn8gn9w91x1ychbjd6dhh"))))))
     (home-page "https://danielnoethen.de/butt/")
     (synopsis "Audio streaming tool")
     (description "Butt is a tool to stream audio to a ShoutCast or
@@ -5368,7 +5382,7 @@ Icecast server.")
                          (list "/bin" "/share/man/man1" "/share/man/man5"))
                (apply invoke "make" "sysinstall" make-flags)))))))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (native-inputs
      `(("groff" ,groff-minimal)         ; for nroff
        ("util-linux" ,util-linux)))     ; for col
@@ -5379,6 +5393,56 @@ generator, generating audio signals out of Linux's /dev/dsp audio
 device.  There is support for mono and/or stereo and 8 or 16 bit samples.")
     (license license:gpl2)))
 
+(define-public python-pysox
+  ;; PyPi does not include the data folder containing audio files for testing.
+  (let ((commit "3d0053381c24ae3490f759d4de87194b85789d36")
+        (revision "0"))
+    (package
+      (name "python-pysox")
+      (version (git-version "1.4.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/rabitt/pysox")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0i62jx92vfpcr2z7lp69yzqdi9idfs3pifl3rzm2akc2c4cr1mac"))))
+      (build-system python-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-sox
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let* ((sox-store-path (assoc-ref inputs "sox"))
+                      (sox-bin (string-append sox-store-path "/bin/sox")))
+                 (substitute* "sox/__init__.py"
+                   (("sox -h")
+                    (string-append sox-bin " -h")))
+                 (substitute* "sox/core.py"
+                   (("\\['sox")
+                    (string-append "['" sox-bin))))))
+           (replace 'check
+             (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+               (when tests?
+                 (add-installed-pythonpath inputs outputs)
+                 (invoke "pytest")))))))
+      (propagated-inputs
+       (list python-numpy python-typing-extensions))
+      (native-inputs
+       (list sox python-pytest python-pytest-cov python-soundfile))
+      (home-page "https://github.com/rabitt/pysox")
+      (synopsis "Python wrapper around SoX")
+      (description "@code{python-pysox} is a wrapper around the @command{sox}
+command line tool.  The API offers @code{Transformer} and @code{Combiner}
+classes that allow the user to incrementally build up effects and audio
+manipulations.  @code{python-pysox} also provides methods for querying audio
+information such as sample rate, determining whether an audio file is silent,
+and much more.")
+      (license license:bsd-3))))
+
 (define-public mda-lv2
   (package
     (name "mda-lv2")
@@ -5397,9 +5461,9 @@ device.  There is support for mono and/or stereo and 8 or 16 bit samples.")
        (list (string-append "--prefix="
                             (assoc-ref %outputs "out")))))
     (inputs
-     `(("lv2" ,lv2)))
+     (list lv2))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (native-search-paths
      (list (search-path-specification
             (variable "LV2_PATH")
diff --git a/gnu/packages/augeas.scm b/gnu/packages/augeas.scm
index b3c4803e04..2fd933604c 100644
--- a/gnu/packages/augeas.scm
+++ b/gnu/packages/augeas.scm
@@ -44,11 +44,11 @@
     (build-system gnu-build-system)
     ;; Marked as "required" in augeas.pc.
     (propagated-inputs
-     `(("libxml2" ,libxml2)))
+     (list libxml2))
     (inputs
-     `(("readline" ,readline)))
+     (list readline))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://augeas.net")
     (synopsis "Edit configuration files programmatically")
     (description
diff --git a/gnu/packages/authentication.scm b/gnu/packages/authentication.scm
index a8070f4789..f5fba35031 100644
--- a/gnu/packages/authentication.scm
+++ b/gnu/packages/authentication.scm
@@ -59,14 +59,11 @@
                (for-each delete-file (find-files lib "\\.a$"))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-
-       ;; XXX: Perhaps this should be propagated from xmlsec.
-       ("libltdl" ,libltdl)))
+     (list pkg-config
+           ;; XXX: Perhaps this should be propagated from xmlsec.
+           libltdl))
     (inputs
-     `(("linux-pam" ,linux-pam)
-       ("openssl" ,openssl)
-       ("xmlsec-openssl" ,xmlsec-openssl)))
+     (list linux-pam openssl xmlsec-openssl))
     (home-page "https://www.nongnu.org/oath-toolkit/")
     (synopsis "One-time password (OTP) components")
     (description
@@ -111,16 +108,9 @@ data.")
        ;; The pam_test fails because ykclient fails to build a Curl handle.
        '(#:make-flags '("TESTS=util_test")))
       (inputs
-       `(("linux-pam" ,linux-pam)
-         ("libyubikey" ,libyubikey)
-         ("ykclient" ,ykclient)
-         ("yubikey-personalization" ,yubikey-personalization)))
+       (list linux-pam libyubikey ykclient yubikey-personalization))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("asciidoc" ,asciidoc)
-         ("pkg-config" ,pkg-config)))
+       (list autoconf automake libtool asciidoc pkg-config))
       (home-page "https://developers.yubico.com/yubico-pam")
       (synopsis "Yubico pluggable authentication module")
       (description "The Yubico PAM module provides an easy way to integrate the
@@ -141,9 +131,9 @@ YubiKey into your existing user authentication infrastructure.")
         (base32 "1mdj1wj0adcnx354fs17928yn2xfr1hj5mfraq282dagi873sqw3"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("linux-pam" ,linux-pam)))
+     (list linux-pam))
     (home-page "http://pamtester.sourceforge.net/")
     (synopsis "Utility for testing pluggable authentication modules (PAM) facility")
     (description
diff --git a/gnu/packages/autogen.scm b/gnu/packages/autogen.scm
index 968337ad8d..1fe742bbae 100644
--- a/gnu/packages/autogen.scm
+++ b/gnu/packages/autogen.scm
@@ -42,10 +42,8 @@
        (sha256
         (base32 "16mlbdys8q4ckxlvxyhwkdnh1ay9f6g0cyp1kylkpalgnik398gq"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("which" ,which)))
-    (inputs `(("guile" ,guile-2.2)
-              ("perl" ,perl)))          ; for doc generator mdoc
+    (native-inputs (list pkg-config which))
+    (inputs (list guile-2.2 perl))          ; for doc generator mdoc
     (arguments
      '(#:configure-flags
        ;; XXX Needed to build 5.18.16.  ./configure fails without it:
diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
index 3154e584a2..fbde262499 100644
--- a/gnu/packages/autotools.scm
+++ b/gnu/packages/autotools.scm
@@ -63,8 +63,7 @@
        ("perl" ,perl)
        ("m4" ,m4)))
     (native-inputs
-     `(("perl" ,perl)
-       ("m4" ,m4)))
+     (list perl m4))
     (arguments
      `(;; XXX: testsuite: 209 and 279 failed.  The latter is an impurity.  It
        ;; should use our own "cpp" instead of "/lib/cpp".
@@ -313,7 +312,7 @@ contributed as free software by the community.")
                (base32
                 "0gv7g61ja9q9zg1m30k4snqwwy1kq7b4df6sb7d2qra7kbdq8af1"))))
     (build-system gnu-build-system)
-    (inputs `(("perl" ,perl)))
+    (inputs (list perl))
     (synopsis "Process generated build logs")
     (description "Autobuild is a package that processes build logs generated
 when building software.  Autobuild is primarily focused on packages using
@@ -438,6 +437,20 @@ intuitive format and then Automake works with Autoconf to produce a robust
 Makefile, simplifying the entire process for the developer.")
     (license gpl2+)))                      ; some files are under GPLv3+
 
+(define-public automake-1.16.5
+  (package
+    (inherit automake)
+    (version "1.16.5")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnu/automake/automake-"
+                                 version ".tar.xz"))
+             (sha256
+              (base32
+                "0sdl32qxdy7m06iggmkkvf7j520rmmgbsjzbm7fgnxwxdp6mh7gh"))
+             (patches
+              (search-patches "automake-skip-amhello-tests.patch"))))))
+
 (define-public libtool
   (package
     (name "libtool")
@@ -451,7 +464,7 @@ Makefile, simplifying the entire process for the developer.")
                 "0vxj52zm709125gwv9qqlw02silj8bnjnh4y07arrz60r31ai1vw"))
               (patches (search-patches "libtool-skip-tests2.patch"))))
     (build-system gnu-build-system)
-    (propagated-inputs `(("m4" ,m4)))
+    (propagated-inputs (list m4))
     (native-inputs `(("m4" ,m4)
                      ("perl" ,perl)
                      ;; XXX: this shouldn't be necessary, but without it test
@@ -548,7 +561,7 @@ complexity of working with shared libraries across platforms.")
                           (install-file "doc/config.sub.1" man1)
                           #t))))))
       (native-inputs
-       `(("help2man" ,help2man)))
+       (list help2man))
       (home-page "https://savannah.gnu.org/projects/config")
       (synopsis "Ubiquitous config.guess and config.sub scripts")
       (description "The `config.guess' script tries to guess a canonical system triple,
@@ -604,7 +617,7 @@ configuration in nearly all GNU packages (and many others).")
                (("/usr/bin/env python") (which "python3")))
              #t)))))
     (inputs
-     `(("python" ,python-3)))
+     (list python-3))
     (synopsis "@command{configure} interface for Python-based packages")
     (description
      "GNU pyconfigure provides template files for easily implementing
diff --git a/gnu/packages/aux-files/emacs/guix-emacs.el b/gnu/packages/aux-files/emacs/guix-emacs.el
index ca9146c535..eff44bfe90 100644
--- a/gnu/packages/aux-files/emacs/guix-emacs.el
+++ b/gnu/packages/aux-files/emacs/guix-emacs.el
@@ -26,6 +26,7 @@
 
 ;;; Code:
 (require 'seq)
+(declare-function package-load-descriptor "package" (pkg-dir))
 
 (defvar guix-emacs-autoloads-regexp
   (rx (* any) "-autoloads.el" (zero-or-one "c") string-end)
@@ -39,6 +40,12 @@ The files in the list do not have extensions (.el, .elc)."
                        (directory-files directory 'full-name
                                         guix-emacs-autoloads-regexp))))
 
+(defun guix-emacs--non-core-load-path ()
+  ;; Filter out core Elisp directories, which are already handled by Emacs.
+  (seq-filter (lambda (dir)
+                (string-match-p "/share/emacs/site-lisp" dir))
+              load-path))
+
 ;;;###autoload
 (defun guix-emacs-autoload-packages ()
   "Autoload Emacs packages found in EMACSLOADPATH.
@@ -46,18 +53,29 @@ The files in the list do not have extensions (.el, .elc)."
 'Autoload' means to load the 'autoloads' files matching
 `guix-emacs-autoloads-regexp'."
   (interactive)
-  (let* ((emacs-non-core-load-path-directories
-          ;; Filter out core Elisp directories, which are already autoloaded
-          ;; by Emacs.
-          (seq-filter (lambda (dir)
-                        (string-match-p "/share/emacs/site-lisp" dir))
-                      load-path))
-         (autoloads (mapcan #'guix-emacs-find-autoloads
-                            emacs-non-core-load-path-directories)))
+  (let ((autoloads (mapcan #'guix-emacs-find-autoloads
+                           (guix-emacs--non-core-load-path))))
     (mapc (lambda (f)
             (load f 'noerror))
           autoloads)))
 
+;;;###autoload
+(defun guix-emacs-load-package-descriptors ()
+  "Load descriptors for packages found in EMACSLOADPATH via subdirs.el."
+  (dolist (dir (guix-emacs--non-core-load-path))
+    (let ((subdirs-file (expand-file-name "subdirs.el" dir)))
+     (when (file-exists-p subdirs-file)
+      (with-temp-buffer
+        (insert-file-contents subdirs-file)
+        (goto-char (point-min))
+        (let ((subdirs (read (current-buffer))))
+          (and (equal (car-safe subdirs) 'normal-top-level-add-to-load-path)
+               (equal (car-safe (cadr subdirs)) 'list)
+               (dolist (subdir (cdadr subdirs))
+                 (let ((pkg-dir (expand-file-name subdir dir)))
+                   (when (file-directory-p pkg-dir)
+                     (package-load-descriptor pkg-dir)))))))))))
+
 (provide 'guix-emacs)
 
 ;;; guix-emacs.el ends here
diff --git a/gnu/packages/aux-files/linux-libre/4.14-i686.conf b/gnu/packages/aux-files/linux-libre/4.14-i686.conf
index 16a7817115..b7a07b5fe3 100644
--- a/gnu/packages/aux-files/linux-libre/4.14-i686.conf
+++ b/gnu/packages/aux-files/linux-libre/4.14-i686.conf
@@ -938,7 +938,7 @@ CONFIG_RAPIDIO_CPS_XX=m
 CONFIG_RAPIDIO_TSI568=m
 CONFIG_RAPIDIO_CPS_GEN2=m
 CONFIG_RAPIDIO_RXS_GEN3=m
-# CONFIG_X86_SYSFB is not set
+CONFIG_X86_SYSFB=y
 
 #
 # Executable file formats / Emulations
@@ -8495,7 +8495,13 @@ CONFIG_ISCSI_IBFT_FIND=y
 CONFIG_ISCSI_IBFT=m
 CONFIG_FW_CFG_SYSFS=m
 # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
+CONFIG_GOOGLE_FIRMWARE=y
+# CONFIG_GOOGLE_SMI is not set
+CONFIG_GOOGLE_COREBOOT_TABLE=y
+# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
+CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
+# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
+# CONFIG_GOOGLE_VPD is not set
 
 #
 # EFI (Extensible Firmware Interface) Support
diff --git a/gnu/packages/aux-files/linux-libre/4.14-x86_64.conf b/gnu/packages/aux-files/linux-libre/4.14-x86_64.conf
index 74b1f2cc18..db11c2f6e8 100644
--- a/gnu/packages/aux-files/linux-libre/4.14-x86_64.conf
+++ b/gnu/packages/aux-files/linux-libre/4.14-x86_64.conf
@@ -928,7 +928,7 @@ CONFIG_RAPIDIO_CPS_XX=m
 CONFIG_RAPIDIO_TSI568=m
 CONFIG_RAPIDIO_CPS_GEN2=m
 CONFIG_RAPIDIO_RXS_GEN3=m
-# CONFIG_X86_SYSFB is not set
+CONFIG_X86_SYSFB=y
 
 #
 # Executable file formats / Emulations
@@ -8332,7 +8332,13 @@ CONFIG_ISCSI_IBFT_FIND=y
 CONFIG_ISCSI_IBFT=m
 CONFIG_FW_CFG_SYSFS=m
 # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
+CONFIG_GOOGLE_FIRMWARE=y
+# CONFIG_GOOGLE_SMI is not set
+CONFIG_GOOGLE_COREBOOT_TABLE=y
+# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
+CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
+# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
+# CONFIG_GOOGLE_VPD is not set
 
 #
 # EFI (Extensible Firmware Interface) Support
diff --git a/gnu/packages/aux-files/linux-libre/4.19-i686.conf b/gnu/packages/aux-files/linux-libre/4.19-i686.conf
index 0e6637325d..5deee8206d 100644
--- a/gnu/packages/aux-files/linux-libre/4.19-i686.conf
+++ b/gnu/packages/aux-files/linux-libre/4.19-i686.conf
@@ -713,7 +713,7 @@ CONFIG_RAPIDIO_CPS_XX=m
 CONFIG_RAPIDIO_TSI568=m
 CONFIG_RAPIDIO_CPS_GEN2=m
 CONFIG_RAPIDIO_RXS_GEN3=m
-# CONFIG_X86_SYSFB is not set
+CONFIG_X86_SYSFB=y
 
 #
 # Binary Emulations
@@ -737,7 +737,13 @@ CONFIG_ISCSI_IBFT_FIND=y
 CONFIG_ISCSI_IBFT=m
 CONFIG_FW_CFG_SYSFS=m
 # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
+CONFIG_GOOGLE_FIRMWARE=y
+# CONFIG_GOOGLE_SMI is not set
+CONFIG_GOOGLE_COREBOOT_TABLE=y
+# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
+CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
+# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
+# CONFIG_GOOGLE_VPD is not set
 
 #
 # EFI (Extensible Firmware Interface) Support
diff --git a/gnu/packages/aux-files/linux-libre/4.19-x86_64.conf b/gnu/packages/aux-files/linux-libre/4.19-x86_64.conf
index 36636ebb8d..b76fdc9148 100644
--- a/gnu/packages/aux-files/linux-libre/4.19-x86_64.conf
+++ b/gnu/packages/aux-files/linux-libre/4.19-x86_64.conf
@@ -684,7 +684,7 @@ CONFIG_RAPIDIO_CPS_XX=m
 CONFIG_RAPIDIO_TSI568=m
 CONFIG_RAPIDIO_CPS_GEN2=m
 CONFIG_RAPIDIO_RXS_GEN3=m
-# CONFIG_X86_SYSFB is not set
+CONFIG_X86_SYSFB=y
 
 #
 # Binary Emulations
@@ -714,7 +714,13 @@ CONFIG_ISCSI_IBFT_FIND=y
 CONFIG_ISCSI_IBFT=m
 CONFIG_FW_CFG_SYSFS=m
 # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
+CONFIG_GOOGLE_FIRMWARE=y
+# CONFIG_GOOGLE_SMI is not set
+CONFIG_GOOGLE_COREBOOT_TABLE=y
+# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
+CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
+# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
+# CONFIG_GOOGLE_VPD is not set
 
 #
 # EFI (Extensible Firmware Interface) Support
diff --git a/gnu/packages/aux-files/linux-libre/4.4-i686.conf b/gnu/packages/aux-files/linux-libre/4.4-i686.conf
index 32442eb55a..03aef7abfc 100644
--- a/gnu/packages/aux-files/linux-libre/4.4-i686.conf
+++ b/gnu/packages/aux-files/linux-libre/4.4-i686.conf
@@ -825,7 +825,7 @@ CONFIG_RAPIDIO_TSI57X=m
 CONFIG_RAPIDIO_CPS_XX=m
 CONFIG_RAPIDIO_TSI568=m
 CONFIG_RAPIDIO_CPS_GEN2=m
-# CONFIG_X86_SYSFB is not set
+CONFIG_X86_SYSFB=y
 
 #
 # Executable file formats / Emulations
@@ -7679,7 +7679,13 @@ CONFIG_DMI_SYSFS=m
 CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
 CONFIG_ISCSI_IBFT_FIND=y
 CONFIG_ISCSI_IBFT=m
-# CONFIG_GOOGLE_FIRMWARE is not set
+CONFIG_GOOGLE_FIRMWARE=y
+# CONFIG_GOOGLE_SMI is not set
+CONFIG_GOOGLE_COREBOOT_TABLE=y
+# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
+CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
+# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
+# CONFIG_GOOGLE_VPD is not set
 
 #
 # EFI (Extensible Firmware Interface) Support
diff --git a/gnu/packages/aux-files/linux-libre/4.4-x86_64.conf b/gnu/packages/aux-files/linux-libre/4.4-x86_64.conf
index adfb848f5b..0c7852ba48 100644
--- a/gnu/packages/aux-files/linux-libre/4.4-x86_64.conf
+++ b/gnu/packages/aux-files/linux-libre/4.4-x86_64.conf
@@ -795,7 +795,7 @@ CONFIG_RAPIDIO_TSI57X=m
 CONFIG_RAPIDIO_CPS_XX=m
 CONFIG_RAPIDIO_TSI568=m
 CONFIG_RAPIDIO_CPS_GEN2=m
-# CONFIG_X86_SYSFB is not set
+CONFIG_X86_SYSFB=y
 
 #
 # Executable file formats / Emulations
@@ -7461,7 +7461,13 @@ CONFIG_DMI_SYSFS=m
 CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
 CONFIG_ISCSI_IBFT_FIND=y
 CONFIG_ISCSI_IBFT=m
-# CONFIG_GOOGLE_FIRMWARE is not set
+CONFIG_GOOGLE_FIRMWARE=y
+# CONFIG_GOOGLE_SMI is not set
+CONFIG_GOOGLE_COREBOOT_TABLE=y
+# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
+CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
+# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
+# CONFIG_GOOGLE_VPD is not set
 
 #
 # EFI (Extensible Firmware Interface) Support
diff --git a/gnu/packages/aux-files/linux-libre/5.10-i686.conf b/gnu/packages/aux-files/linux-libre/5.10-i686.conf
index cb1fdc37ad..d24bbbcaa2 100644
--- a/gnu/packages/aux-files/linux-libre/5.10-i686.conf
+++ b/gnu/packages/aux-files/linux-libre/5.10-i686.conf
@@ -650,7 +650,7 @@ CONFIG_ALIX=y
 CONFIG_NET5501=y
 CONFIG_GEOS=y
 CONFIG_AMD_NB=y
-# CONFIG_X86_SYSFB is not set
+CONFIG_X86_SYSFB=y
 # end of Bus options (PCI etc.)
 
 #
@@ -674,7 +674,13 @@ CONFIG_ISCSI_IBFT_FIND=y
 CONFIG_ISCSI_IBFT=m
 CONFIG_FW_CFG_SYSFS=m
 # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
+CONFIG_GOOGLE_FIRMWARE=y
+# CONFIG_GOOGLE_SMI is not set
+CONFIG_GOOGLE_COREBOOT_TABLE=y
+# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
+CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
+# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
+# CONFIG_GOOGLE_VPD is not set
 
 #
 # EFI (Extensible Firmware Interface) Support
diff --git a/gnu/packages/aux-files/linux-libre/5.10-x86_64.conf b/gnu/packages/aux-files/linux-libre/5.10-x86_64.conf
index cd61860af9..3a905e6286 100644
--- a/gnu/packages/aux-files/linux-libre/5.10-x86_64.conf
+++ b/gnu/packages/aux-files/linux-libre/5.10-x86_64.conf
@@ -643,7 +643,7 @@ CONFIG_MMCONF_FAM10H=y
 # CONFIG_ISA_BUS is not set
 CONFIG_ISA_DMA_API=y
 CONFIG_AMD_NB=y
-# CONFIG_X86_SYSFB is not set
+CONFIG_X86_SYSFB=y
 # end of Bus options (PCI etc.)
 
 #
@@ -670,7 +670,13 @@ CONFIG_ISCSI_IBFT_FIND=y
 CONFIG_ISCSI_IBFT=m
 CONFIG_FW_CFG_SYSFS=m
 # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
+CONFIG_GOOGLE_FIRMWARE=y
+# CONFIG_GOOGLE_SMI is not set
+CONFIG_GOOGLE_COREBOOT_TABLE=y
+# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
+CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
+# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
+# CONFIG_GOOGLE_VPD is not set
 
 #
 # EFI (Extensible Firmware Interface) Support
diff --git a/gnu/packages/aux-files/linux-libre/5.13-arm.conf b/gnu/packages/aux-files/linux-libre/5.13-arm.conf
deleted file mode 100644
index 6803b79b24..0000000000
--- a/gnu/packages/aux-files/linux-libre/5.13-arm.conf
+++ /dev/null
@@ -1,10037 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/arm 5.13.1 Kernel Configuration
-#
-CONFIG_CC_VERSION_TEXT="gcc (Debian 8.3.0-6) 8.3.0"
-CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=80300
-CONFIG_CLANG_VERSION=0
-CONFIG_AS_IS_GNU=y
-CONFIG_AS_VERSION=23101
-CONFIG_LD_IS_BFD=y
-CONFIG_LD_VERSION=23101
-CONFIG_LLD_VERSION=0
-CONFIG_CC_HAS_ASM_GOTO=y
-CONFIG_CC_HAS_ASM_INLINE=y
-CONFIG_IRQ_WORK=y
-CONFIG_BUILDTIME_TABLE_SORT=y
-
-#
-# General setup
-#
-CONFIG_INIT_ENV_ARG_LIMIT=32
-# CONFIG_COMPILE_TEST is not set
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_BUILD_SALT=""
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_XZ=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_HAVE_KERNEL_LZ4=y
-# CONFIG_KERNEL_GZIP is not set
-# CONFIG_KERNEL_LZMA is not set
-CONFIG_KERNEL_XZ=y
-# CONFIG_KERNEL_LZO is not set
-# CONFIG_KERNEL_LZ4 is not set
-CONFIG_DEFAULT_INIT=""
-CONFIG_DEFAULT_HOSTNAME="(none)"
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-CONFIG_WATCH_QUEUE=y
-CONFIG_CROSS_MEMORY_ATTACH=y
-# CONFIG_USELIB is not set
-CONFIG_AUDIT=y
-CONFIG_HAVE_ARCH_AUDITSYSCALL=y
-CONFIG_AUDITSYSCALL=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
-CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
-CONFIG_GENERIC_IRQ_MIGRATION=y
-CONFIG_GENERIC_IRQ_INJECTION=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_IRQ_DOMAIN_HIERARCHY=y
-CONFIG_IRQ_FASTEOI_HIERARCHY_HANDLERS=y
-CONFIG_GENERIC_IRQ_IPI=y
-CONFIG_GENERIC_MSI_IRQ=y
-CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
-CONFIG_HANDLE_DOMAIN_IRQ=y
-CONFIG_IRQ_FORCED_THREADING=y
-CONFIG_SPARSE_IRQ=y
-# CONFIG_GENERIC_IRQ_DEBUGFS is not set
-# end of IRQ subsystem
-
-CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_ARCH_HAS_TICK_BROADCAST=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-
-#
-# Timers subsystem
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ_COMMON=y
-# CONFIG_HZ_PERIODIC is not set
-CONFIG_NO_HZ_IDLE=y
-# CONFIG_NO_HZ_FULL is not set
-# CONFIG_NO_HZ is not set
-CONFIG_HIGH_RES_TIMERS=y
-# end of Timers subsystem
-
-CONFIG_BPF=y
-CONFIG_HAVE_EBPF_JIT=y
-
-#
-# BPF subsystem
-#
-CONFIG_BPF_SYSCALL=y
-CONFIG_BPF_JIT=y
-# CONFIG_BPF_JIT_ALWAYS_ON is not set
-# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
-# CONFIG_BPF_PRELOAD is not set
-CONFIG_BPF_LSM=y
-# end of BPF subsystem
-
-# CONFIG_PREEMPT_NONE is not set
-CONFIG_PREEMPT_VOLUNTARY=y
-# CONFIG_PREEMPT is not set
-
-#
-# CPU/Task time and stats accounting
-#
-CONFIG_TICK_CPU_ACCOUNTING=y
-# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
-# CONFIG_IRQ_TIME_ACCOUNTING is not set
-CONFIG_SCHED_THERMAL_PRESSURE=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_PSI=y
-# CONFIG_PSI_DEFAULT_DISABLED is not set
-# end of CPU/Task time and stats accounting
-
-CONFIG_CPU_ISOLATION=y
-
-#
-# RCU Subsystem
-#
-CONFIG_TREE_RCU=y
-# CONFIG_RCU_EXPERT is not set
-CONFIG_SRCU=y
-CONFIG_TREE_SRCU=y
-CONFIG_TASKS_RCU_GENERIC=y
-CONFIG_TASKS_RUDE_RCU=y
-CONFIG_TASKS_TRACE_RCU=y
-CONFIG_RCU_STALL_COMMON=y
-CONFIG_RCU_NEED_SEGCBLIST=y
-# end of RCU Subsystem
-
-CONFIG_BUILD_BIN2C=y
-# CONFIG_IKCONFIG is not set
-# CONFIG_IKHEADERS is not set
-CONFIG_LOG_BUF_SHIFT=17
-CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
-CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
-CONFIG_GENERIC_SCHED_CLOCK=y
-
-#
-# Scheduler features
-#
-# CONFIG_UCLAMP_TASK is not set
-# end of Scheduler features
-
-CONFIG_CGROUPS=y
-CONFIG_PAGE_COUNTER=y
-CONFIG_MEMCG=y
-CONFIG_MEMCG_SWAP=y
-CONFIG_MEMCG_KMEM=y
-CONFIG_BLK_CGROUP=y
-CONFIG_CGROUP_WRITEBACK=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_CFS_BANDWIDTH=y
-# CONFIG_RT_GROUP_SCHED is not set
-CONFIG_CGROUP_PIDS=y
-# CONFIG_CGROUP_RDMA is not set
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CPUSETS=y
-CONFIG_PROC_PID_CPUSET=y
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_CGROUP_PERF=y
-# CONFIG_CGROUP_BPF is not set
-CONFIG_CGROUP_MISC=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_SOCK_CGROUP_DATA=y
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_SCHED_AUTOGROUP=y
-# CONFIG_SYSFS_DEPRECATED is not set
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_RD_XZ=y
-CONFIG_RD_LZO=y
-CONFIG_RD_LZ4=y
-CONFIG_RD_ZSTD=y
-CONFIG_BOOT_CONFIG=y
-CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_LD_ORPHAN_WARN=y
-CONFIG_SYSCTL=y
-CONFIG_HAVE_UID16=y
-CONFIG_EXPERT=y
-CONFIG_UID16=y
-CONFIG_MULTIUSER=y
-# CONFIG_SGETMASK_SYSCALL is not set
-# CONFIG_SYSFS_SYSCALL is not set
-CONFIG_FHANDLE=y
-CONFIG_POSIX_TIMERS=y
-CONFIG_PRINTK=y
-CONFIG_PRINTK_NMI=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_FUTEX_PI=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_IO_URING=y
-CONFIG_ADVISE_SYSCALLS=y
-CONFIG_MEMBARRIER=y
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_ALL is not set
-CONFIG_KALLSYMS_BASE_RELATIVE=y
-CONFIG_USERFAULTFD=y
-CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
-CONFIG_KCMP=y
-CONFIG_RSEQ=y
-# CONFIG_DEBUG_RSEQ is not set
-# CONFIG_EMBEDDED is not set
-CONFIG_HAVE_PERF_EVENTS=y
-CONFIG_PERF_USE_VMALLOC=y
-# CONFIG_PC104 is not set
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
-# end of Kernel Performance Events And Counters
-
-CONFIG_VM_EVENT_COUNTERS=y
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_SLOB is not set
-CONFIG_SLAB_MERGE_DEFAULT=y
-CONFIG_SLAB_FREELIST_RANDOM=y
-CONFIG_SLAB_FREELIST_HARDENED=y
-CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
-CONFIG_SYSTEM_DATA_VERIFICATION=y
-CONFIG_PROFILING=y
-CONFIG_TRACEPOINTS=y
-# end of General setup
-
-CONFIG_ARM=y
-CONFIG_ARM_HAS_SG_CHAIN=y
-CONFIG_ARM_DMA_USE_IOMMU=y
-CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_HAVE_PROC_CPU=y
-CONFIG_NO_IOPORT_MAP=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_ARCH_HAS_BANDGAP=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_ZONE_DMA=y
-CONFIG_ARCH_SUPPORTS_UPROBES=y
-CONFIG_FIQ=y
-CONFIG_ARM_PATCH_PHYS_VIRT=y
-CONFIG_GENERIC_BUG=y
-CONFIG_PGTABLE_LEVELS=2
-
-#
-# System Type
-#
-CONFIG_MMU=y
-CONFIG_ARCH_MMAP_RND_BITS_MIN=8
-CONFIG_ARCH_MMAP_RND_BITS_MAX=16
-CONFIG_ARCH_MULTIPLATFORM=y
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_DOVE is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C24XX is not set
-# CONFIG_ARCH_OMAP1 is not set
-
-#
-# Multiple platform selection
-#
-
-#
-# CPU Core family selection
-#
-# CONFIG_ARCH_MULTI_V6 is not set
-CONFIG_ARCH_MULTI_V7=y
-CONFIG_ARCH_MULTI_V6_V7=y
-# end of Multiple platform selection
-
-CONFIG_ARCH_VIRT=y
-# CONFIG_ARCH_ACTIONS is not set
-# CONFIG_ARCH_ALPINE is not set
-# CONFIG_ARCH_ARTPEC is not set
-# CONFIG_ARCH_ASPEED is not set
-# CONFIG_ARCH_AT91 is not set
-CONFIG_ARCH_BCM=y
-
-#
-# IPROC architected SoCs
-#
-# CONFIG_ARCH_BCM_CYGNUS is not set
-# CONFIG_ARCH_BCM_HR2 is not set
-# CONFIG_ARCH_BCM_NSP is not set
-# CONFIG_ARCH_BCM_5301X is not set
-
-#
-# KONA architected SoCs
-#
-# CONFIG_ARCH_BCM_281XX is not set
-# CONFIG_ARCH_BCM_21664 is not set
-# CONFIG_ARCH_BCM_23550 is not set
-
-#
-# Other Architectures
-#
-CONFIG_ARCH_BCM2835=y
-# CONFIG_ARCH_BCM_53573 is not set
-# CONFIG_ARCH_BCM_63XX is not set
-# CONFIG_ARCH_BRCMSTB is not set
-# CONFIG_ARCH_BERLIN is not set
-# CONFIG_ARCH_DIGICOLOR is not set
-CONFIG_ARCH_EXYNOS=y
-CONFIG_S5P_DEV_MFC=y
-# CONFIG_ARCH_EXYNOS3 is not set
-CONFIG_ARCH_EXYNOS4=y
-CONFIG_ARCH_EXYNOS5=y
-
-#
-# Exynos SoCs
-#
-CONFIG_CPU_EXYNOS4210=y
-CONFIG_SOC_EXYNOS4412=y
-CONFIG_SOC_EXYNOS5250=y
-CONFIG_SOC_EXYNOS5260=y
-CONFIG_SOC_EXYNOS5410=y
-CONFIG_SOC_EXYNOS5420=y
-CONFIG_SOC_EXYNOS5800=y
-CONFIG_EXYNOS_MCPM=y
-CONFIG_EXYNOS_CPU_SUSPEND=y
-CONFIG_ARCH_HIGHBANK=y
-# CONFIG_ARCH_HISI is not set
-CONFIG_ARCH_MXC=y
-CONFIG_MXC_TZIC=y
-CONFIG_HAVE_IMX_ANATOP=y
-CONFIG_HAVE_IMX_GPC=y
-CONFIG_HAVE_IMX_MMDC=y
-CONFIG_HAVE_IMX_SRC=y
-
-#
-# Cortex-A platforms
-#
-CONFIG_SOC_IMX5=y
-# CONFIG_SOC_IMX50 is not set
-CONFIG_SOC_IMX51=y
-CONFIG_SOC_IMX53=y
-CONFIG_SOC_IMX6=y
-CONFIG_SOC_IMX6Q=y
-# CONFIG_SOC_IMX6SL is not set
-# CONFIG_SOC_IMX6SLL is not set
-# CONFIG_SOC_IMX6SX is not set
-# CONFIG_SOC_IMX6UL is not set
-# CONFIG_SOC_LS1021A is not set
-
-#
-# Cortex-A/Cortex-M asymmetric multiprocessing platforms
-#
-# CONFIG_SOC_IMX7D is not set
-# CONFIG_SOC_IMX7ULP is not set
-# CONFIG_SOC_VF610 is not set
-# CONFIG_ARCH_KEYSTONE is not set
-# CONFIG_ARCH_MEDIATEK is not set
-# CONFIG_ARCH_MESON is not set
-# CONFIG_ARCH_MILBEAUT is not set
-# CONFIG_ARCH_MMP is not set
-CONFIG_ARCH_MSTARV7=y
-CONFIG_MACH_INFINITY=y
-CONFIG_MACH_MERCURY=y
-CONFIG_ARCH_MVEBU=y
-CONFIG_MACH_MVEBU_ANY=y
-CONFIG_MACH_MVEBU_V7=y
-CONFIG_MACH_ARMADA_370=y
-CONFIG_MACH_ARMADA_375=y
-CONFIG_MACH_ARMADA_38X=y
-CONFIG_MACH_ARMADA_39X=y
-CONFIG_MACH_ARMADA_XP=y
-# CONFIG_MACH_DOVE is not set
-# CONFIG_ARCH_NPCM is not set
-CONFIG_ARCH_OMAP=y
-
-#
-# TI OMAP Common Features
-#
-
-#
-# OMAP Feature Selections
-#
-CONFIG_POWER_AVS_OMAP=y
-CONFIG_POWER_AVS_OMAP_CLASS3=y
-CONFIG_OMAP_RESET_CLOCKS=y
-CONFIG_OMAP_32K_TIMER=y
-# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
-# end of TI OMAP Common Features
-
-CONFIG_MACH_OMAP_GENERIC=y
-
-#
-# TI OMAP/AM/DM/DRA Family
-#
-CONFIG_OMAP_HWMOD=y
-CONFIG_ARCH_OMAP3=y
-CONFIG_ARCH_OMAP4=y
-CONFIG_SOC_OMAP5=y
-CONFIG_SOC_AM33XX=y
-# CONFIG_SOC_AM43XX is not set
-CONFIG_SOC_DRA7XX=y
-CONFIG_ARCH_OMAP2PLUS=y
-CONFIG_OMAP_INTERCONNECT_BARRIER=y
-
-#
-# TI OMAP2/3/4 Specific Features
-#
-CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
-CONFIG_SOC_HAS_OMAP2_SDRC=y
-CONFIG_SOC_HAS_REALTIME_COUNTER=y
-CONFIG_SOC_OMAP3430=y
-CONFIG_SOC_TI81XX=y
-CONFIG_OMAP_PACKAGE_CBB=y
-
-#
-# OMAP Legacy Platform Data Board Type
-#
-CONFIG_MACH_OMAP3517EVM=y
-CONFIG_MACH_OMAP3_PANDORA=y
-# CONFIG_OMAP3_SDRC_AC_TIMING is not set
-# end of TI OMAP2/3/4 Specific Features
-
-# CONFIG_OMAP5_ERRATA_801819 is not set
-# end of TI OMAP/AM/DM/DRA Family
-
-# CONFIG_ARCH_QCOM is not set
-# CONFIG_ARCH_RDA is not set
-CONFIG_ARCH_REALTEK=y
-# CONFIG_ARCH_REALVIEW is not set
-CONFIG_ARCH_ROCKCHIP=y
-# CONFIG_ARCH_S5PV210 is not set
-# CONFIG_ARCH_RENESAS is not set
-CONFIG_ARCH_INTEL_SOCFPGA=y
-# CONFIG_SOCFPGA_SUSPEND is not set
-# CONFIG_PLAT_SPEAR is not set
-# CONFIG_ARCH_STI is not set
-# CONFIG_ARCH_STM32 is not set
-CONFIG_ARCH_SUNXI=y
-CONFIG_MACH_SUN4I=y
-CONFIG_MACH_SUN5I=y
-CONFIG_MACH_SUN6I=y
-CONFIG_MACH_SUN7I=y
-CONFIG_MACH_SUN8I=y
-CONFIG_MACH_SUN9I=y
-CONFIG_ARCH_SUNXI_MC_SMP=y
-CONFIG_ARCH_TEGRA=y
-# CONFIG_ARCH_UNIPHIER is not set
-# CONFIG_ARCH_U8500 is not set
-CONFIG_ARCH_VEXPRESS=y
-CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
-# CONFIG_ARCH_VEXPRESS_DCSCB is not set
-# CONFIG_ARCH_VEXPRESS_SPC is not set
-# CONFIG_ARCH_VEXPRESS_TC2_PM is not set
-CONFIG_ARCH_VT8500=y
-CONFIG_ARCH_WM8850=y
-# CONFIG_ARCH_ZYNQ is not set
-CONFIG_PLAT_ORION=y
-CONFIG_PLAT_VERSATILE=y
-
-#
-# Processor Type
-#
-CONFIG_CPU_PJ4B=y
-CONFIG_CPU_V7=y
-CONFIG_CPU_THUMB_CAPABLE=y
-CONFIG_CPU_32v6K=y
-CONFIG_CPU_32v7=y
-CONFIG_CPU_ABRT_EV7=y
-CONFIG_CPU_PABRT_V7=y
-CONFIG_CPU_CACHE_V7=y
-CONFIG_CPU_CACHE_VIPT=y
-CONFIG_CPU_COPY_V6=y
-CONFIG_CPU_TLB_V7=y
-CONFIG_CPU_HAS_ASID=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-
-#
-# Processor Features
-#
-# CONFIG_ARM_LPAE is not set
-CONFIG_ARM_THUMB=y
-CONFIG_ARM_THUMBEE=y
-CONFIG_ARM_VIRT_EXT=y
-CONFIG_SWP_EMULATE=y
-# CONFIG_CPU_BIG_ENDIAN is not set
-# CONFIG_CPU_ICACHE_DISABLE is not set
-# CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND is not set
-# CONFIG_CPU_BPREDICT_DISABLE is not set
-CONFIG_CPU_SPECTRE=y
-CONFIG_HARDEN_BRANCH_PREDICTOR=y
-CONFIG_KUSER_HELPERS=y
-CONFIG_VDSO=y
-CONFIG_OUTER_CACHE=y
-CONFIG_OUTER_CACHE_SYNC=y
-CONFIG_CACHE_FEROCEON_L2=y
-# CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set
-CONFIG_MIGHT_HAVE_CACHE_L2X0=y
-CONFIG_CACHE_L2X0=y
-# CONFIG_CACHE_L2X0_PMU is not set
-CONFIG_PL310_ERRATA_588369=y
-CONFIG_PL310_ERRATA_727915=y
-CONFIG_PL310_ERRATA_753970=y
-CONFIG_PL310_ERRATA_769419=y
-CONFIG_ARM_L1_CACHE_SHIFT_6=y
-CONFIG_ARM_L1_CACHE_SHIFT=6
-CONFIG_ARM_DMA_MEM_BUFFERABLE=y
-CONFIG_ARM_HEAVY_MB=y
-CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
-CONFIG_DEBUG_ALIGN_RODATA=y
-CONFIG_IWMMXT=y
-CONFIG_PJ4B_ERRATA_4742=y
-CONFIG_ARM_ERRATA_430973=y
-CONFIG_ARM_ERRATA_643719=y
-CONFIG_ARM_ERRATA_720789=y
-CONFIG_ARM_ERRATA_754322=y
-CONFIG_ARM_ERRATA_754327=y
-CONFIG_ARM_ERRATA_764369=y
-CONFIG_ARM_ERRATA_775420=y
-CONFIG_ARM_ERRATA_798181=y
-CONFIG_ARM_ERRATA_773022=y
-# CONFIG_ARM_ERRATA_818325_852422 is not set
-# CONFIG_ARM_ERRATA_821420 is not set
-# CONFIG_ARM_ERRATA_825619 is not set
-CONFIG_ARM_ERRATA_857271=y
-# CONFIG_ARM_ERRATA_852421 is not set
-# CONFIG_ARM_ERRATA_852423 is not set
-CONFIG_ARM_ERRATA_857272=y
-# end of System Type
-
-#
-# Bus support
-#
-CONFIG_ARM_ERRATA_814220=y
-# end of Bus support
-
-#
-# Kernel Features
-#
-CONFIG_HAVE_SMP=y
-CONFIG_SMP=y
-CONFIG_SMP_ON_UP=y
-CONFIG_ARM_CPU_TOPOLOGY=y
-# CONFIG_SCHED_MC is not set
-# CONFIG_SCHED_SMT is not set
-CONFIG_HAVE_ARM_SCU=y
-CONFIG_HAVE_ARM_ARCH_TIMER=y
-CONFIG_HAVE_ARM_TWD=y
-CONFIG_MCPM=y
-# CONFIG_BIG_LITTLE is not set
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_3G_OPT is not set
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_NR_CPUS=8
-CONFIG_HOTPLUG_CPU=y
-CONFIG_ARM_PSCI=y
-CONFIG_ARCH_NR_GPIO=2048
-CONFIG_HZ_FIXED=0
-# CONFIG_HZ_100 is not set
-# CONFIG_HZ_200 is not set
-CONFIG_HZ_250=y
-# CONFIG_HZ_300 is not set
-# CONFIG_HZ_500 is not set
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ=250
-CONFIG_SCHED_HRTICK=y
-# CONFIG_THUMB2_KERNEL is not set
-CONFIG_ARM_PATCH_IDIV=y
-CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_HIGHMEM=y
-CONFIG_HIGHPTE=y
-CONFIG_CPU_SW_DOMAIN_PAN=y
-CONFIG_HW_PERF_EVENTS=y
-CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
-# CONFIG_ARM_MODULE_PLTS is not set
-CONFIG_FORCE_MAX_ZONEORDER=12
-CONFIG_ALIGNMENT_TRAP=y
-# CONFIG_UACCESS_WITH_MEMCPY is not set
-CONFIG_PARAVIRT=y
-# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
-CONFIG_XEN_DOM0=y
-CONFIG_XEN=y
-# end of Kernel Features
-
-#
-# Boot options
-#
-CONFIG_USE_OF=y
-CONFIG_ATAGS=y
-# CONFIG_DEPRECATED_PARAM_STRUCT is not set
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_ARM_APPENDED_DTB=y
-CONFIG_ARM_ATAG_DTB_COMPAT=y
-CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
-# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set
-CONFIG_CMDLINE=""
-CONFIG_KEXEC=y
-CONFIG_ATAGS_PROC=y
-# CONFIG_CRASH_DUMP is not set
-CONFIG_AUTO_ZRELADDR=y
-CONFIG_EFI_STUB=y
-CONFIG_EFI=y
-CONFIG_DMI=y
-# end of Boot options
-
-#
-# CPU Power Management
-#
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_GOV_ATTR_SET=y
-CONFIG_CPU_FREQ_GOV_COMMON=y
-CONFIG_CPU_FREQ_STAT=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=m
-CONFIG_CPU_FREQ_GOV_USERSPACE=m
-CONFIG_CPU_FREQ_GOV_ONDEMAND=m
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
-CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
-
-#
-# CPU frequency scaling drivers
-#
-CONFIG_CPUFREQ_DT=m
-CONFIG_CPUFREQ_DT_PLATDEV=y
-CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=m
-CONFIG_ARM_ARMADA_37XX_CPUFREQ=m
-CONFIG_ARM_ARMADA_8K_CPUFREQ=m
-CONFIG_ARM_HIGHBANK_CPUFREQ=m
-CONFIG_ARM_IMX6Q_CPUFREQ=m
-CONFIG_ARM_IMX_CPUFREQ_DT=m
-CONFIG_ARM_OMAP2PLUS_CPUFREQ=y
-CONFIG_ARM_RASPBERRYPI_CPUFREQ=m
-CONFIG_ARM_SCMI_CPUFREQ=m
-CONFIG_ARM_TEGRA20_CPUFREQ=m
-CONFIG_ARM_TEGRA124_CPUFREQ=y
-# CONFIG_ARM_TI_CPUFREQ is not set
-# end of CPU Frequency scaling
-
-#
-# CPU Idle
-#
-# CONFIG_CPU_IDLE is not set
-CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED=y
-# end of CPU Idle
-# end of CPU Power Management
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_VFP=y
-CONFIG_VFPv3=y
-CONFIG_NEON=y
-# CONFIG_KERNEL_MODE_NEON is not set
-# end of Floating point emulation
-
-#
-# Power management options
-#
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_SUSPEND_SKIP_SYNC is not set
-CONFIG_HIBERNATE_CALLBACKS=y
-CONFIG_HIBERNATION=y
-CONFIG_HIBERNATION_SNAPSHOT_DEV=y
-CONFIG_PM_STD_PARTITION=""
-CONFIG_PM_SLEEP=y
-CONFIG_PM_SLEEP_SMP=y
-# CONFIG_PM_AUTOSLEEP is not set
-# CONFIG_PM_WAKELOCKS is not set
-CONFIG_PM=y
-CONFIG_PM_DEBUG=y
-CONFIG_PM_ADVANCED_DEBUG=y
-# CONFIG_PM_TEST_SUSPEND is not set
-CONFIG_PM_SLEEP_DEBUG=y
-CONFIG_APM_EMULATION=y
-CONFIG_PM_CLK=y
-CONFIG_PM_GENERIC_DOMAINS=y
-# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
-CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
-CONFIG_PM_GENERIC_DOMAINS_OF=y
-CONFIG_CPU_PM=y
-CONFIG_ENERGY_MODEL=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARM_CPU_SUSPEND=y
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-# end of Power management options
-
-#
-# Firmware Drivers
-#
-CONFIG_ARM_SCMI_PROTOCOL=y
-CONFIG_ARM_SCMI_POWER_DOMAIN=m
-# CONFIG_ARM_SCPI_PROTOCOL is not set
-# CONFIG_FIRMWARE_MEMMAP is not set
-CONFIG_DMIID=y
-CONFIG_DMI_SYSFS=y
-CONFIG_RASPBERRYPI_FIRMWARE=y
-CONFIG_TRUSTED_FOUNDATIONS=y
-# CONFIG_TURRIS_MOX_RWTM is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
-
-#
-# EFI (Extensible Firmware Interface) Support
-#
-CONFIG_EFI_ESRT=y
-CONFIG_EFI_PARAMS_FROM_FDT=y
-CONFIG_EFI_RUNTIME_WRAPPERS=y
-CONFIG_EFI_GENERIC_STUB=y
-CONFIG_EFI_ARMSTUB_DTB_LOADER=y
-CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
-# CONFIG_EFI_BOOTLOADER_CONTROL is not set
-# CONFIG_EFI_CAPSULE_LOADER is not set
-# CONFIG_EFI_TEST is not set
-CONFIG_RESET_ATTACK_MITIGATION=y
-# CONFIG_EFI_DISABLE_PCI_DMA is not set
-# end of EFI (Extensible Firmware Interface) Support
-
-# CONFIG_IMX_DSP is not set
-# CONFIG_IMX_SCU is not set
-CONFIG_ARM_PSCI_FW=y
-CONFIG_HAVE_ARM_SMCCC=y
-CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y
-CONFIG_ARM_SMCCC_SOC_ID=y
-
-#
-# Tegra firmware driver
-#
-# CONFIG_TEGRA_IVC is not set
-# end of Tegra firmware driver
-# end of Firmware Drivers
-
-CONFIG_ARM_CRYPTO=y
-CONFIG_CRYPTO_SHA1_ARM=m
-CONFIG_CRYPTO_SHA256_ARM=m
-CONFIG_CRYPTO_SHA512_ARM=m
-CONFIG_CRYPTO_BLAKE2S_ARM=m
-CONFIG_CRYPTO_AES_ARM=m
-CONFIG_CRYPTO_CHACHA20_NEON=m
-CONFIG_CRYPTO_POLY1305_ARM=m
-
-#
-# General architecture-dependent options
-#
-CONFIG_CRASH_CORE=y
-CONFIG_KEXEC_CORE=y
-CONFIG_SET_FS=y
-CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
-# CONFIG_STATIC_KEYS_SELFTEST is not set
-CONFIG_OPTPROBES=y
-CONFIG_UPROBES=y
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_ARCH_USE_BUILTIN_BSWAP=y
-CONFIG_KRETPROBES=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_OPTPROBES=y
-CONFIG_HAVE_NMI=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_CONTIGUOUS=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_GENERIC_IDLE_POLL_SETUP=y
-CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
-CONFIG_ARCH_HAS_KEEPINITRD=y
-CONFIG_ARCH_HAS_SET_MEMORY=y
-CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
-CONFIG_ARCH_32BIT_OFF_T=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_RSEQ=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-CONFIG_HAVE_PERF_REGS=y
-CONFIG_HAVE_PERF_USER_STACK_DUMP=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
-CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
-CONFIG_HAVE_ARCH_SECCOMP=y
-CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
-CONFIG_SECCOMP=y
-CONFIG_SECCOMP_FILTER=y
-# CONFIG_SECCOMP_CACHE_DEBUG is not set
-CONFIG_HAVE_STACKPROTECTOR=y
-CONFIG_STACKPROTECTOR=y
-CONFIG_STACKPROTECTOR_STRONG=y
-CONFIG_LTO_NONE=y
-CONFIG_HAVE_CONTEXT_TRACKING=y
-CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
-CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
-CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
-CONFIG_MODULES_USE_ELF_REL=y
-CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
-CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
-CONFIG_HAVE_EXIT_THREAD=y
-CONFIG_ARCH_MMAP_RND_BITS=8
-CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
-CONFIG_CLONE_BACKWARDS=y
-CONFIG_OLD_SIGSUSPEND3=y
-CONFIG_OLD_SIGACTION=y
-CONFIG_COMPAT_32BIT_TIME=y
-CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
-CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
-CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
-CONFIG_STRICT_KERNEL_RWX=y
-CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
-CONFIG_STRICT_MODULE_RWX=y
-CONFIG_ARCH_HAS_PHYS_TO_DMA=y
-# CONFIG_LOCK_EVENT_COUNTS is not set
-CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
-CONFIG_HAVE_ARCH_PFN_VALID=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
-# end of GCOV-based kernel profiling
-
-CONFIG_HAVE_GCC_PLUGINS=y
-# end of General architecture-dependent options
-
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_MODULE_FORCE_LOAD=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-# CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS_NONE is not set
-CONFIG_MODULE_COMPRESS_GZIP=y
-# CONFIG_MODULE_COMPRESS_XZ is not set
-# CONFIG_MODULE_COMPRESS_ZSTD is not set
-# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
-CONFIG_MODPROBE_PATH="/run/current-system/profile/bin/modprobe"
-# CONFIG_TRIM_UNUSED_KSYMS is not set
-CONFIG_MODULES_TREE_LOOKUP=y
-CONFIG_BLOCK=y
-CONFIG_BLK_RQ_ALLOC_TIME=y
-CONFIG_BLK_SCSI_REQUEST=y
-CONFIG_BLK_CGROUP_RWSTAT=y
-CONFIG_BLK_DEV_BSG=y
-CONFIG_BLK_DEV_BSGLIB=y
-CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_BLK_DEV_INTEGRITY_T10=y
-# CONFIG_BLK_DEV_ZONED is not set
-CONFIG_BLK_DEV_THROTTLING=y
-# CONFIG_BLK_DEV_THROTTLING_LOW is not set
-# CONFIG_BLK_CMDLINE_PARSER is not set
-CONFIG_BLK_WBT=y
-# CONFIG_BLK_CGROUP_IOLATENCY is not set
-CONFIG_BLK_CGROUP_IOCOST=y
-CONFIG_BLK_WBT_MQ=y
-CONFIG_BLK_DEBUG_FS=y
-# CONFIG_BLK_SED_OPAL is not set
-CONFIG_BLK_INLINE_ENCRYPTION=y
-CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_AIX_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-CONFIG_KARMA_PARTITION=y
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
-# CONFIG_CMDLINE_PARTITION is not set
-# end of Partition Types
-
-CONFIG_BLK_MQ_PCI=y
-CONFIG_BLK_MQ_VIRTIO=y
-CONFIG_BLK_MQ_RDMA=y
-CONFIG_BLK_PM=y
-
-#
-# IO Schedulers
-#
-CONFIG_MQ_IOSCHED_DEADLINE=y
-CONFIG_MQ_IOSCHED_KYBER=m
-CONFIG_IOSCHED_BFQ=m
-CONFIG_BFQ_GROUP_IOSCHED=y
-# CONFIG_BFQ_CGROUP_DEBUG is not set
-# end of IO Schedulers
-
-CONFIG_PADATA=y
-CONFIG_ASN1=y
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-CONFIG_INLINE_READ_UNLOCK=y
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-CONFIG_INLINE_WRITE_UNLOCK=y
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
-CONFIG_MUTEX_SPIN_ON_OWNER=y
-CONFIG_RWSEM_SPIN_ON_OWNER=y
-CONFIG_LOCK_SPIN_ON_OWNER=y
-CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
-CONFIG_FREEZER=y
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_ELF_FDPIC is not set
-CONFIG_ELFCORE=y
-CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-CONFIG_BINFMT_SCRIPT=y
-CONFIG_ARCH_HAS_BINFMT_FLAT=y
-# CONFIG_BINFMT_FLAT is not set
-CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
-CONFIG_BINFMT_MISC=m
-CONFIG_COREDUMP=y
-# end of Executable file formats
-
-#
-# Memory Management options
-#
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_ARCH_KEEP_MEMBLOCK=y
-CONFIG_MEMORY_ISOLATION=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_MEMORY_BALLOON=y
-CONFIG_BALLOON_COMPACTION=y
-CONFIG_COMPACTION=y
-CONFIG_PAGE_REPORTING=y
-CONFIG_MIGRATION=y
-CONFIG_CONTIG_ALLOC=y
-CONFIG_BOUNCE=y
-CONFIG_MMU_NOTIFIER=y
-CONFIG_KSM=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-# CONFIG_CLEANCACHE is not set
-CONFIG_FRONTSWAP=y
-CONFIG_CMA=y
-# CONFIG_CMA_DEBUG is not set
-# CONFIG_CMA_DEBUGFS is not set
-CONFIG_CMA_SYSFS=y
-CONFIG_CMA_AREAS=7
-CONFIG_ZSWAP=y
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
-CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set
-CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lzo"
-CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
-# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set
-# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set
-CONFIG_ZSWAP_ZPOOL_DEFAULT="zbud"
-# CONFIG_ZSWAP_DEFAULT_ON is not set
-CONFIG_ZPOOL=y
-CONFIG_ZBUD=y
-# CONFIG_Z3FOLD is not set
-CONFIG_ZSMALLOC=m
-# CONFIG_ZSMALLOC_STAT is not set
-CONFIG_GENERIC_EARLY_IOREMAP=y
-# CONFIG_IDLE_PAGE_TRACKING is not set
-CONFIG_HMM_MIRROR=y
-# CONFIG_PERCPU_STATS is not set
-# CONFIG_GUP_TEST is not set
-CONFIG_KMAP_LOCAL=y
-# end of Memory Management options
-
-CONFIG_NET=y
-CONFIG_NET_INGRESS=y
-CONFIG_NET_EGRESS=y
-CONFIG_NET_REDIRECT=y
-CONFIG_SKB_EXTENSIONS=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
-CONFIG_UNIX_SCM=y
-CONFIG_UNIX_DIAG=m
-# CONFIG_TLS is not set
-CONFIG_XFRM=y
-CONFIG_XFRM_ALGO=m
-CONFIG_XFRM_USER=m
-CONFIG_XFRM_INTERFACE=m
-CONFIG_XFRM_SUB_POLICY=y
-CONFIG_XFRM_MIGRATE=y
-# CONFIG_XFRM_STATISTICS is not set
-CONFIG_XFRM_AH=m
-CONFIG_XFRM_ESP=m
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=m
-CONFIG_NET_KEY_MIGRATE=y
-# CONFIG_SMC is not set
-CONFIG_XDP_SOCKETS=y
-CONFIG_XDP_SOCKETS_DIAG=m
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_FIB_TRIE_STATS=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_ROUTE_CLASSID=y
-# CONFIG_IP_PNP is not set
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE_DEMUX=m
-CONFIG_NET_IP_TUNNEL=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE_COMMON=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-CONFIG_SYN_COOKIES=y
-CONFIG_NET_IPVTI=m
-CONFIG_NET_UDP_TUNNEL=m
-CONFIG_NET_FOU=m
-CONFIG_NET_FOU_IP_TUNNELS=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-# CONFIG_INET_ESP_OFFLOAD is not set
-# CONFIG_INET_ESPINTCP is not set
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_DIAG=m
-CONFIG_INET_TCP_DIAG=m
-CONFIG_INET_UDP_DIAG=m
-# CONFIG_INET_RAW_DIAG is not set
-CONFIG_INET_DIAG_DESTROY=y
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_NV=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-CONFIG_TCP_CONG_DCTCP=m
-CONFIG_TCP_CONG_CDG=m
-CONFIG_TCP_CONG_BBR=m
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-CONFIG_IPV6_OPTIMISTIC_DAD=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-# CONFIG_INET6_ESP_OFFLOAD is not set
-# CONFIG_INET6_ESPINTCP is not set
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=y
-CONFIG_IPV6_ILA=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_IPV6_VTI=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_GRE=m
-CONFIG_IPV6_FOU=m
-CONFIG_IPV6_FOU_TUNNEL=m
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_IPV6_SUBTREES=y
-CONFIG_IPV6_MROUTE=y
-CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IPV6_PIMSM_V2=y
-# CONFIG_IPV6_SEG6_LWTUNNEL is not set
-# CONFIG_IPV6_SEG6_HMAC is not set
-# CONFIG_IPV6_RPL_LWTUNNEL is not set
-# CONFIG_NETLABEL is not set
-CONFIG_MPTCP=y
-CONFIG_INET_MPTCP_DIAG=m
-CONFIG_MPTCP_IPV6=y
-CONFIG_NETWORK_SECMARK=y
-CONFIG_NET_PTP_CLASSIFY=y
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-CONFIG_NETFILTER=y
-CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=m
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_INGRESS=y
-CONFIG_NETFILTER_NETLINK=m
-CONFIG_NETFILTER_FAMILY_BRIDGE=y
-CONFIG_NETFILTER_FAMILY_ARP=y
-CONFIG_NETFILTER_NETLINK_ACCT=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NETFILTER_NETLINK_OSF=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_LOG_SYSLOG=m
-CONFIG_NETFILTER_CONNCOUNT=m
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_ZONES=y
-CONFIG_NF_CONNTRACK_PROCFS=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CONNTRACK_TIMEOUT=y
-CONFIG_NF_CONNTRACK_TIMESTAMP=y
-CONFIG_NF_CONNTRACK_LABELS=y
-CONFIG_NF_CT_PROTO_DCCP=y
-CONFIG_NF_CT_PROTO_GRE=y
-CONFIG_NF_CT_PROTO_SCTP=y
-CONFIG_NF_CT_PROTO_UDPLITE=y
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_BROADCAST=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_SNMP=m
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NF_CT_NETLINK_TIMEOUT=m
-CONFIG_NF_CT_NETLINK_HELPER=m
-CONFIG_NETFILTER_NETLINK_GLUE_CT=y
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_AMANDA=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_NF_NAT_TFTP=m
-CONFIG_NF_NAT_REDIRECT=y
-CONFIG_NF_NAT_MASQUERADE=y
-CONFIG_NETFILTER_SYNPROXY=m
-CONFIG_NF_TABLES=m
-CONFIG_NF_TABLES_INET=y
-CONFIG_NF_TABLES_NETDEV=y
-CONFIG_NFT_NUMGEN=m
-CONFIG_NFT_CT=m
-CONFIG_NFT_FLOW_OFFLOAD=m
-CONFIG_NFT_COUNTER=m
-CONFIG_NFT_CONNLIMIT=m
-CONFIG_NFT_LOG=m
-CONFIG_NFT_LIMIT=m
-CONFIG_NFT_MASQ=m
-CONFIG_NFT_REDIR=m
-CONFIG_NFT_NAT=m
-CONFIG_NFT_TUNNEL=m
-CONFIG_NFT_OBJREF=m
-CONFIG_NFT_QUEUE=m
-CONFIG_NFT_QUOTA=m
-CONFIG_NFT_REJECT=m
-CONFIG_NFT_REJECT_INET=m
-CONFIG_NFT_COMPAT=m
-CONFIG_NFT_HASH=m
-CONFIG_NFT_FIB=m
-CONFIG_NFT_FIB_INET=m
-CONFIG_NFT_XFRM=m
-CONFIG_NFT_SOCKET=m
-CONFIG_NFT_OSF=m
-CONFIG_NFT_TPROXY=m
-CONFIG_NFT_SYNPROXY=m
-CONFIG_NF_DUP_NETDEV=m
-CONFIG_NFT_DUP_NETDEV=m
-CONFIG_NFT_FWD_NETDEV=m
-CONFIG_NFT_FIB_NETDEV=m
-CONFIG_NFT_REJECT_NETDEV=m
-CONFIG_NF_FLOW_TABLE_INET=m
-CONFIG_NF_FLOW_TABLE=m
-CONFIG_NETFILTER_XTABLES=m
-
-#
-# Xtables combined modules
-#
-CONFIG_NETFILTER_XT_MARK=m
-CONFIG_NETFILTER_XT_CONNMARK=m
-CONFIG_NETFILTER_XT_SET=m
-
-#
-# Xtables targets
-#
-CONFIG_NETFILTER_XT_TARGET_AUDIT=m
-CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
-CONFIG_NETFILTER_XT_TARGET_CT=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_HL=m
-CONFIG_NETFILTER_XT_TARGET_HMARK=m
-CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
-CONFIG_NETFILTER_XT_TARGET_LED=m
-CONFIG_NETFILTER_XT_TARGET_LOG=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_NAT=m
-CONFIG_NETFILTER_XT_TARGET_NETMAP=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
-CONFIG_NETFILTER_XT_TARGET_RATEEST=m
-CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
-CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
-CONFIG_NETFILTER_XT_TARGET_TEE=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
-
-#
-# Xtables matches
-#
-CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
-CONFIG_NETFILTER_XT_MATCH_BPF=m
-CONFIG_NETFILTER_XT_MATCH_CGROUP=m
-CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_CPU=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=m
-CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-CONFIG_NETFILTER_XT_MATCH_ECN=m
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_HL=m
-CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
-CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
-CONFIG_NETFILTER_XT_MATCH_IPVS=m
-CONFIG_NETFILTER_XT_MATCH_L2TP=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-CONFIG_NETFILTER_XT_MATCH_NFACCT=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
-CONFIG_NETFILTER_XT_MATCH_OWNER=m
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_RATEEST=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_SOCKET=m
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_TIME=m
-CONFIG_NETFILTER_XT_MATCH_U32=m
-# end of Core Netfilter Configuration
-
-CONFIG_IP_SET=m
-CONFIG_IP_SET_MAX=256
-CONFIG_IP_SET_BITMAP_IP=m
-CONFIG_IP_SET_BITMAP_IPMAC=m
-CONFIG_IP_SET_BITMAP_PORT=m
-CONFIG_IP_SET_HASH_IP=m
-CONFIG_IP_SET_HASH_IPMARK=m
-CONFIG_IP_SET_HASH_IPPORT=m
-CONFIG_IP_SET_HASH_IPPORTIP=m
-CONFIG_IP_SET_HASH_IPPORTNET=m
-# CONFIG_IP_SET_HASH_IPMAC is not set
-CONFIG_IP_SET_HASH_MAC=m
-CONFIG_IP_SET_HASH_NETPORTNET=m
-CONFIG_IP_SET_HASH_NET=m
-CONFIG_IP_SET_HASH_NETNET=m
-CONFIG_IP_SET_HASH_NETPORT=m
-CONFIG_IP_SET_HASH_NETIFACE=m
-CONFIG_IP_SET_LIST_SET=m
-CONFIG_IP_VS=m
-CONFIG_IP_VS_IPV6=y
-# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
-
-#
-# IPVS transport protocol load balancing support
-#
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_AH_ESP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-CONFIG_IP_VS_PROTO_SCTP=y
-
-#
-# IPVS scheduler
-#
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_FO=m
-CONFIG_IP_VS_OVF=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_MH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-CONFIG_IP_VS_TWOS=m
-
-#
-# IPVS SH scheduler
-#
-CONFIG_IP_VS_SH_TAB_BITS=8
-
-#
-# IPVS MH scheduler
-#
-CONFIG_IP_VS_MH_TAB_INDEX=12
-
-#
-# IPVS application helper
-#
-CONFIG_IP_VS_FTP=m
-CONFIG_IP_VS_NFCT=y
-CONFIG_IP_VS_PE_SIP=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_SOCKET_IPV4=m
-CONFIG_NF_TPROXY_IPV4=m
-CONFIG_NF_TABLES_IPV4=y
-CONFIG_NFT_REJECT_IPV4=m
-CONFIG_NFT_DUP_IPV4=m
-CONFIG_NFT_FIB_IPV4=m
-CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
-CONFIG_NF_DUP_IPV4=m
-CONFIG_NF_LOG_ARP=m
-CONFIG_NF_LOG_IPV4=m
-CONFIG_NF_REJECT_IPV4=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_RPFILTER=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_SYNPROXY=m
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_SECURITY=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-# end of IP: Netfilter Configuration
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_SOCKET_IPV6=m
-CONFIG_NF_TPROXY_IPV6=m
-CONFIG_NF_TABLES_IPV6=y
-CONFIG_NFT_REJECT_IPV6=m
-CONFIG_NFT_DUP_IPV6=m
-CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
-CONFIG_NF_DUP_IPV6=m
-CONFIG_NF_REJECT_IPV6=m
-CONFIG_NF_LOG_IPV6=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_RPFILTER=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_MATCH_SRH=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_TARGET_SYNPROXY=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-CONFIG_IP6_NF_SECURITY=m
-CONFIG_IP6_NF_NAT=m
-CONFIG_IP6_NF_TARGET_MASQUERADE=m
-CONFIG_IP6_NF_TARGET_NPT=m
-# end of IPv6: Netfilter Configuration
-
-CONFIG_NF_DEFRAG_IPV6=m
-CONFIG_NF_TABLES_BRIDGE=m
-CONFIG_NFT_BRIDGE_META=m
-CONFIG_NFT_BRIDGE_REJECT=m
-CONFIG_NF_CONNTRACK_BRIDGE=m
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_ARP=m
-CONFIG_BRIDGE_EBT_IP=m
-CONFIG_BRIDGE_EBT_IP6=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_MARK=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_VLAN=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_LOG=m
-CONFIG_BRIDGE_EBT_NFLOG=m
-# CONFIG_BPFILTER is not set
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-
-#
-# DCCP CCIDs Configuration
-#
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-CONFIG_IP_DCCP_CCID3=y
-# CONFIG_IP_DCCP_CCID3_DEBUG is not set
-CONFIG_IP_DCCP_TFRC_LIB=y
-# end of DCCP CCIDs Configuration
-
-#
-# DCCP Kernel Hacking
-#
-# CONFIG_IP_DCCP_DEBUG is not set
-# end of DCCP Kernel Hacking
-
-CONFIG_IP_SCTP=m
-# CONFIG_SCTP_DBG_OBJCNT is not set
-CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
-CONFIG_SCTP_COOKIE_HMAC_MD5=y
-CONFIG_SCTP_COOKIE_HMAC_SHA1=y
-CONFIG_INET_SCTP_DIAG=m
-CONFIG_RDS=m
-CONFIG_RDS_RDMA=m
-CONFIG_RDS_TCP=m
-# CONFIG_RDS_DEBUG is not set
-CONFIG_TIPC=m
-CONFIG_TIPC_MEDIA_IB=y
-CONFIG_TIPC_MEDIA_UDP=y
-CONFIG_TIPC_CRYPTO=y
-CONFIG_TIPC_DIAG=m
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-CONFIG_ATM_LANE=m
-CONFIG_ATM_MPOA=m
-CONFIG_ATM_BR2684=m
-# CONFIG_ATM_BR2684_IPFILTER is not set
-CONFIG_L2TP=m
-CONFIG_L2TP_DEBUGFS=m
-CONFIG_L2TP_V3=y
-CONFIG_L2TP_IP=m
-CONFIG_L2TP_ETH=m
-CONFIG_STP=m
-CONFIG_GARP=m
-CONFIG_MRP=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-CONFIG_BRIDGE_VLAN_FILTERING=y
-CONFIG_BRIDGE_MRP=y
-CONFIG_BRIDGE_CFM=y
-CONFIG_NET_DSA=m
-CONFIG_NET_DSA_TAG_8021Q=m
-CONFIG_NET_DSA_TAG_AR9331=m
-CONFIG_NET_DSA_TAG_BRCM_COMMON=m
-CONFIG_NET_DSA_TAG_BRCM=m
-CONFIG_NET_DSA_TAG_BRCM_LEGACY=m
-CONFIG_NET_DSA_TAG_BRCM_PREPEND=m
-CONFIG_NET_DSA_TAG_HELLCREEK=m
-CONFIG_NET_DSA_TAG_GSWIP=m
-CONFIG_NET_DSA_TAG_DSA_COMMON=m
-CONFIG_NET_DSA_TAG_DSA=m
-CONFIG_NET_DSA_TAG_EDSA=m
-CONFIG_NET_DSA_TAG_MTK=m
-CONFIG_NET_DSA_TAG_KSZ=m
-CONFIG_NET_DSA_TAG_RTL4_A=m
-CONFIG_NET_DSA_TAG_OCELOT=m
-CONFIG_NET_DSA_TAG_OCELOT_8021Q=m
-CONFIG_NET_DSA_TAG_QCA=m
-CONFIG_NET_DSA_TAG_LAN9303=m
-CONFIG_NET_DSA_TAG_SJA1105=m
-CONFIG_NET_DSA_TAG_TRAILER=m
-CONFIG_NET_DSA_TAG_XRS700X=m
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-CONFIG_VLAN_8021Q_MVRP=y
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-CONFIG_LLC2=m
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=m
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-CONFIG_PHONET=m
-CONFIG_6LOWPAN=m
-# CONFIG_6LOWPAN_DEBUGFS is not set
-CONFIG_6LOWPAN_NHC=m
-CONFIG_6LOWPAN_NHC_DEST=m
-CONFIG_6LOWPAN_NHC_FRAGMENT=m
-CONFIG_6LOWPAN_NHC_HOP=m
-CONFIG_6LOWPAN_NHC_IPV6=m
-CONFIG_6LOWPAN_NHC_MOBILITY=m
-CONFIG_6LOWPAN_NHC_ROUTING=m
-CONFIG_6LOWPAN_NHC_UDP=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m
-CONFIG_6LOWPAN_GHC_UDP=m
-CONFIG_6LOWPAN_GHC_ICMPV6=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
-CONFIG_IEEE802154=m
-# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
-CONFIG_IEEE802154_SOCKET=m
-CONFIG_IEEE802154_6LOWPAN=m
-CONFIG_MAC802154=m
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_MULTIQ=m
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFB=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_CBS=m
-CONFIG_NET_SCH_ETF=m
-CONFIG_NET_SCH_TAPRIO=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_DRR=m
-CONFIG_NET_SCH_MQPRIO=m
-CONFIG_NET_SCH_SKBPRIO=m
-CONFIG_NET_SCH_CHOKE=m
-CONFIG_NET_SCH_QFQ=m
-CONFIG_NET_SCH_CODEL=m
-CONFIG_NET_SCH_FQ_CODEL=m
-CONFIG_NET_SCH_CAKE=m
-CONFIG_NET_SCH_FQ=m
-CONFIG_NET_SCH_HHF=m
-CONFIG_NET_SCH_PIE=m
-CONFIG_NET_SCH_FQ_PIE=m
-CONFIG_NET_SCH_INGRESS=m
-CONFIG_NET_SCH_PLUG=m
-CONFIG_NET_SCH_ETS=m
-# CONFIG_NET_SCH_DEFAULT is not set
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-CONFIG_CLS_U32_PERF=y
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_FLOW=m
-CONFIG_NET_CLS_CGROUP=m
-CONFIG_NET_CLS_BPF=m
-CONFIG_NET_CLS_FLOWER=m
-CONFIG_NET_CLS_MATCHALL=m
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_EMATCH_TEXT=m
-CONFIG_NET_EMATCH_CANID=m
-CONFIG_NET_EMATCH_IPSET=m
-CONFIG_NET_EMATCH_IPT=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-# CONFIG_NET_ACT_SAMPLE is not set
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-CONFIG_NET_ACT_SKBEDIT=m
-CONFIG_NET_ACT_CSUM=m
-CONFIG_NET_ACT_MPLS=m
-CONFIG_NET_ACT_VLAN=m
-CONFIG_NET_ACT_BPF=m
-CONFIG_NET_ACT_CONNMARK=m
-CONFIG_NET_ACT_CTINFO=m
-CONFIG_NET_ACT_SKBMOD=m
-CONFIG_NET_ACT_IFE=m
-CONFIG_NET_ACT_TUNNEL_KEY=m
-CONFIG_NET_ACT_CT=m
-CONFIG_NET_ACT_GATE=m
-CONFIG_NET_IFE_SKBMARK=m
-CONFIG_NET_IFE_SKBPRIO=m
-CONFIG_NET_IFE_SKBTCINDEX=m
-# CONFIG_NET_TC_SKB_EXT is not set
-CONFIG_NET_SCH_FIFO=y
-CONFIG_DCB=y
-CONFIG_DNS_RESOLVER=m
-CONFIG_BATMAN_ADV=m
-# CONFIG_BATMAN_ADV_BATMAN_V is not set
-CONFIG_BATMAN_ADV_BLA=y
-CONFIG_BATMAN_ADV_DAT=y
-CONFIG_BATMAN_ADV_NC=y
-CONFIG_BATMAN_ADV_MCAST=y
-# CONFIG_BATMAN_ADV_DEBUG is not set
-# CONFIG_BATMAN_ADV_TRACING is not set
-CONFIG_OPENVSWITCH=m
-CONFIG_OPENVSWITCH_GRE=m
-CONFIG_OPENVSWITCH_VXLAN=m
-CONFIG_OPENVSWITCH_GENEVE=m
-CONFIG_VSOCKETS=m
-CONFIG_VSOCKETS_DIAG=m
-CONFIG_VSOCKETS_LOOPBACK=m
-CONFIG_VIRTIO_VSOCKETS=m
-CONFIG_VIRTIO_VSOCKETS_COMMON=m
-CONFIG_NETLINK_DIAG=m
-CONFIG_MPLS=y
-CONFIG_NET_MPLS_GSO=y
-CONFIG_MPLS_ROUTING=m
-CONFIG_MPLS_IPTUNNEL=m
-CONFIG_NET_NSH=m
-# CONFIG_HSR is not set
-CONFIG_NET_SWITCHDEV=y
-CONFIG_NET_L3_MASTER_DEV=y
-CONFIG_QRTR=m
-CONFIG_QRTR_TUN=m
-CONFIG_QRTR_MHI=m
-# CONFIG_NET_NCSI is not set
-CONFIG_PCPU_DEV_REFCNT=y
-CONFIG_RPS=y
-CONFIG_RFS_ACCEL=y
-CONFIG_SOCK_RX_QUEUE_MAPPING=y
-CONFIG_XPS=y
-CONFIG_CGROUP_NET_PRIO=y
-CONFIG_CGROUP_NET_CLASSID=y
-CONFIG_NET_RX_BUSY_POLL=y
-CONFIG_BQL=y
-CONFIG_NET_FLOW_LIMIT=y
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-CONFIG_NET_DROP_MONITOR=y
-# end of Network testing
-# end of Networking options
-
-# CONFIG_HAMRADIO is not set
-CONFIG_CAN=m
-CONFIG_CAN_RAW=m
-CONFIG_CAN_BCM=m
-CONFIG_CAN_GW=m
-CONFIG_CAN_J1939=m
-CONFIG_CAN_ISOTP=m
-
-#
-# CAN Device Drivers
-#
-CONFIG_CAN_VCAN=m
-# CONFIG_CAN_VXCAN is not set
-CONFIG_CAN_SLCAN=m
-CONFIG_CAN_DEV=m
-CONFIG_CAN_CALC_BITTIMING=y
-# CONFIG_CAN_FLEXCAN is not set
-# CONFIG_CAN_GRCAN is not set
-CONFIG_CAN_KVASER_PCIEFD=m
-CONFIG_CAN_SUN4I=m
-# CONFIG_CAN_TI_HECC is not set
-# CONFIG_CAN_C_CAN is not set
-# CONFIG_CAN_CC770 is not set
-# CONFIG_CAN_IFI_CANFD is not set
-# CONFIG_CAN_M_CAN is not set
-# CONFIG_CAN_PEAK_PCIEFD is not set
-# CONFIG_CAN_RCAR is not set
-# CONFIG_CAN_RCAR_CANFD is not set
-CONFIG_CAN_SJA1000=m
-CONFIG_CAN_EMS_PCI=m
-CONFIG_CAN_F81601=m
-CONFIG_CAN_KVASER_PCI=m
-CONFIG_CAN_PEAK_PCI=m
-CONFIG_CAN_PEAK_PCIEC=y
-CONFIG_CAN_PLX_PCI=m
-CONFIG_CAN_SJA1000_ISA=m
-# CONFIG_CAN_SJA1000_PLATFORM is not set
-CONFIG_CAN_SOFTING=m
-
-#
-# CAN SPI interfaces
-#
-# CONFIG_CAN_HI311X is not set
-# CONFIG_CAN_MCP251X is not set
-CONFIG_CAN_MCP251XFD=m
-# CONFIG_CAN_MCP251XFD_SANITY is not set
-# end of CAN SPI interfaces
-
-#
-# CAN USB interfaces
-#
-CONFIG_CAN_8DEV_USB=m
-CONFIG_CAN_EMS_USB=m
-CONFIG_CAN_ESD_USB2=m
-CONFIG_CAN_ETAS_ES58X=m
-CONFIG_CAN_GS_USB=m
-CONFIG_CAN_KVASER_USB=m
-# CONFIG_CAN_MCBA_USB is not set
-CONFIG_CAN_PEAK_USB=m
-CONFIG_CAN_UCAN=m
-# end of CAN USB interfaces
-
-# CONFIG_CAN_DEBUG_DEVICES is not set
-# end of CAN Device Drivers
-
-CONFIG_BT=m
-CONFIG_BT_BREDR=y
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-CONFIG_BT_HS=y
-CONFIG_BT_LE=y
-CONFIG_BT_6LOWPAN=m
-# CONFIG_BT_LEDS is not set
-CONFIG_BT_MSFTEXT=y
-CONFIG_BT_AOSPEXT=y
-CONFIG_BT_DEBUGFS=y
-# CONFIG_BT_SELFTEST is not set
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_INTEL=m
-CONFIG_BT_BCM=m
-CONFIG_BT_RTL=m
-CONFIG_BT_HCIBTUSB=m
-# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set
-CONFIG_BT_HCIBTUSB_BCM=y
-CONFIG_BT_HCIBTUSB_MTK=y
-CONFIG_BT_HCIBTUSB_RTL=y
-CONFIG_BT_HCIBTSDIO=m
-# CONFIG_BT_HCIUART is not set
-# CONFIG_BT_HCIBCM203X is not set
-# CONFIG_BT_HCIBPA10X is not set
-# CONFIG_BT_HCIBFUSB is not set
-# CONFIG_BT_HCIVHCI is not set
-CONFIG_BT_MRVL=m
-CONFIG_BT_MRVL_SDIO=m
-CONFIG_BT_ATH3K=m
-CONFIG_BT_MTKSDIO=m
-CONFIG_BT_HCIRSI=m
-CONFIG_BT_VIRTIO=m
-# end of Bluetooth device drivers
-
-CONFIG_AF_RXRPC=m
-CONFIG_AF_RXRPC_IPV6=y
-# CONFIG_AF_RXRPC_INJECT_LOSS is not set
-# CONFIG_AF_RXRPC_DEBUG is not set
-CONFIG_RXKAD=y
-# CONFIG_AF_KCM is not set
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
-CONFIG_WEXT_PRIV=y
-CONFIG_CFG80211=m
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
-CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
-CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
-CONFIG_CFG80211_DEFAULT_PS=y
-# CONFIG_CFG80211_DEBUGFS is not set
-CONFIG_CFG80211_CRDA_SUPPORT=y
-CONFIG_CFG80211_WEXT=y
-CONFIG_CFG80211_WEXT_EXPORT=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-CONFIG_MAC80211_MESH=y
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_DEBUGFS is not set
-# CONFIG_MAC80211_MESSAGE_TRACING is not set
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
-CONFIG_RFKILL=m
-CONFIG_RFKILL_LEDS=y
-CONFIG_RFKILL_INPUT=y
-# CONFIG_RFKILL_GPIO is not set
-CONFIG_NET_9P=m
-CONFIG_NET_9P_VIRTIO=m
-# CONFIG_NET_9P_XEN is not set
-CONFIG_NET_9P_RDMA=m
-# CONFIG_NET_9P_DEBUG is not set
-# CONFIG_CAIF is not set
-CONFIG_CEPH_LIB=m
-# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
-# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
-CONFIG_NFC=m
-CONFIG_NFC_DIGITAL=m
-# CONFIG_NFC_NCI is not set
-# CONFIG_NFC_HCI is not set
-
-#
-# Near Field Communication (NFC) devices
-#
-# CONFIG_NFC_TRF7970A is not set
-CONFIG_NFC_SIM=m
-CONFIG_NFC_PORT100=m
-CONFIG_NFC_PN533=m
-CONFIG_NFC_PN533_USB=m
-# CONFIG_NFC_PN533_I2C is not set
-# CONFIG_NFC_ST95HF is not set
-# end of Near Field Communication (NFC) devices
-
-# CONFIG_PSAMPLE is not set
-CONFIG_NET_IFE=m
-CONFIG_LWTUNNEL=y
-CONFIG_LWTUNNEL_BPF=y
-CONFIG_DST_CACHE=y
-CONFIG_GRO_CELLS=y
-CONFIG_NET_SELFTESTS=y
-CONFIG_NET_SOCK_MSG=y
-CONFIG_NET_DEVLINK=y
-CONFIG_PAGE_POOL=y
-CONFIG_FAILOVER=m
-CONFIG_ETHTOOL_NETLINK=y
-
-#
-# Device Drivers
-#
-CONFIG_ARM_AMBA=y
-CONFIG_TEGRA_AHB=y
-CONFIG_HAVE_PCI=y
-CONFIG_PCI=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_PCI_DOMAINS_GENERIC=y
-CONFIG_PCI_SYSCALL=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_PCIEAER=y
-CONFIG_PCIEAER_INJECT=m
-# CONFIG_PCIE_ECRC is not set
-CONFIG_PCIEASPM=y
-CONFIG_PCIEASPM_DEFAULT=y
-# CONFIG_PCIEASPM_POWERSAVE is not set
-# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
-# CONFIG_PCIEASPM_PERFORMANCE is not set
-CONFIG_PCIE_PME=y
-CONFIG_PCIE_DPC=y
-CONFIG_PCIE_PTM=y
-CONFIG_PCI_MSI=y
-CONFIG_PCI_MSI_IRQ_DOMAIN=y
-CONFIG_PCI_QUIRKS=y
-# CONFIG_PCI_DEBUG is not set
-CONFIG_PCI_STUB=m
-CONFIG_PCI_ECAM=y
-CONFIG_PCI_BRIDGE_EMUL=y
-# CONFIG_PCI_IOV is not set
-# CONFIG_PCI_PRI is not set
-# CONFIG_PCI_PASID is not set
-CONFIG_PCI_LABEL=y
-# CONFIG_PCIE_BUS_TUNE_OFF is not set
-CONFIG_PCIE_BUS_DEFAULT=y
-# CONFIG_PCIE_BUS_SAFE is not set
-# CONFIG_PCIE_BUS_PERFORMANCE is not set
-# CONFIG_PCIE_BUS_PEER2PEER is not set
-# CONFIG_HOTPLUG_PCI is not set
-
-#
-# PCI controller drivers
-#
-CONFIG_PCI_MVEBU=y
-# CONFIG_PCI_FTPCI100 is not set
-CONFIG_PCI_TEGRA=y
-CONFIG_PCI_HOST_COMMON=y
-CONFIG_PCI_HOST_GENERIC=y
-# CONFIG_PCIE_XILINX is not set
-# CONFIG_PCI_V3_SEMI is not set
-# CONFIG_PCIE_ALTERA is not set
-CONFIG_PCIE_ROCKCHIP=y
-CONFIG_PCIE_ROCKCHIP_HOST=m
-CONFIG_PCIE_BRCMSTB=m
-# CONFIG_PCIE_MICROCHIP_HOST is not set
-
-#
-# DesignWare PCI Core Support
-#
-CONFIG_PCIE_DW=y
-CONFIG_PCIE_DW_HOST=y
-CONFIG_PCI_DRA7XX=y
-CONFIG_PCI_DRA7XX_HOST=y
-# CONFIG_PCIE_DW_PLAT_HOST is not set
-CONFIG_PCI_EXYNOS=m
-CONFIG_PCI_IMX6=y
-# CONFIG_PCI_LAYERSCAPE is not set
-# CONFIG_PCIE_ARMADA_8K is not set
-# CONFIG_PCI_MESON is not set
-# end of DesignWare PCI Core Support
-
-#
-# Mobiveil PCIe Core Support
-#
-# end of Mobiveil PCIe Core Support
-
-#
-# Cadence PCIe controllers support
-#
-CONFIG_PCIE_CADENCE=y
-CONFIG_PCIE_CADENCE_HOST=y
-CONFIG_PCIE_CADENCE_PLAT=y
-CONFIG_PCIE_CADENCE_PLAT_HOST=y
-# CONFIG_PCI_J721E_HOST is not set
-# end of Cadence PCIe controllers support
-# end of PCI controller drivers
-
-#
-# PCI Endpoint
-#
-# CONFIG_PCI_ENDPOINT is not set
-# end of PCI Endpoint
-
-#
-# PCI switch controller drivers
-#
-# CONFIG_PCI_SW_SWITCHTEC is not set
-# end of PCI switch controller drivers
-
-CONFIG_CXL_BUS=m
-CONFIG_CXL_MEM=m
-# CONFIG_CXL_MEM_RAW_COMMANDS is not set
-# CONFIG_PCCARD is not set
-# CONFIG_RAPIDIO is not set
-
-#
-# Generic Driver Options
-#
-CONFIG_AUXILIARY_BUS=y
-# CONFIG_UEVENT_HELPER is not set
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-
-#
-# Firmware loader
-#
-CONFIG_FW_LOADER=y
-CONFIG_FW_LOADER_PAGED_BUF=y
-CONFIG_EXTRA_FIRMWARE=""
-CONFIG_FW_LOADER_USER_HELPER=y
-# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-CONFIG_FW_LOADER_COMPRESS=y
-CONFIG_FW_CACHE=y
-# end of Firmware loader
-
-CONFIG_WANT_DEV_COREDUMP=y
-CONFIG_ALLOW_DEV_COREDUMP=y
-CONFIG_DEV_COREDUMP=y
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
-# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
-CONFIG_SYS_HYPERVISOR=y
-CONFIG_GENERIC_CPU_AUTOPROBE=y
-CONFIG_SOC_BUS=y
-CONFIG_REGMAP=y
-CONFIG_REGMAP_AC97=m
-CONFIG_REGMAP_I2C=y
-CONFIG_REGMAP_SPI=y
-CONFIG_REGMAP_W1=m
-CONFIG_REGMAP_MMIO=y
-CONFIG_REGMAP_IRQ=y
-CONFIG_REGMAP_SCCB=m
-CONFIG_DMA_SHARED_BUFFER=y
-# CONFIG_DMA_FENCE_TRACE is not set
-CONFIG_GENERIC_ARCH_TOPOLOGY=y
-# end of Generic Driver Options
-
-#
-# Bus devices
-#
-CONFIG_ARM_CCI=y
-CONFIG_ARM_CCI400_COMMON=y
-CONFIG_ARM_CCI400_PORT_CTRL=y
-# CONFIG_BRCMSTB_GISB_ARB is not set
-# CONFIG_MOXTET is not set
-# CONFIG_IMX_WEIM is not set
-CONFIG_MVEBU_MBUS=y
-CONFIG_OMAP_INTERCONNECT=y
-CONFIG_OMAP_OCP2SCP=m
-CONFIG_SIMPLE_PM_BUS=y
-CONFIG_SUN50I_DE2_BUS=y
-CONFIG_SUNXI_RSB=y
-# CONFIG_TEGRA_GMI is not set
-CONFIG_TI_PWMSS=y
-CONFIG_TI_SYSC=y
-CONFIG_VEXPRESS_CONFIG=y
-CONFIG_MHI_BUS=m
-# CONFIG_MHI_BUS_DEBUG is not set
-CONFIG_MHI_BUS_PCI_GENERIC=m
-# end of Bus devices
-
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-CONFIG_GNSS=m
-CONFIG_MTD=y
-# CONFIG_MTD_TESTS is not set
-
-#
-# Partition parsers
-#
-CONFIG_MTD_AR7_PARTS=m
-# CONFIG_MTD_CMDLINE_PARTS is not set
-CONFIG_MTD_OF_PARTS=m
-# CONFIG_MTD_AFS_PARTS is not set
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# end of Partition parsers
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-CONFIG_RFD_FTL=m
-CONFIG_SSFDC=m
-# CONFIG_SM_FTL is not set
-CONFIG_MTD_OOPS=m
-CONFIG_MTD_SWAP=m
-# CONFIG_MTD_PARTITIONED_MASTER is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=m
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=m
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-CONFIG_MTD_CFI_INTELEXT=m
-CONFIG_MTD_CFI_AMDSTD=m
-CONFIG_MTD_CFI_STAA=m
-CONFIG_MTD_CFI_UTIL=m
-CONFIG_MTD_RAM=m
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-# end of RAM/ROM/Flash chip drivers
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-CONFIG_MTD_PHYSMAP=m
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-# CONFIG_MTD_PHYSMAP_OF is not set
-CONFIG_MTD_PHYSMAP_GPIO_ADDR=y
-CONFIG_MTD_PCI=m
-CONFIG_MTD_INTEL_VR_NOR=m
-CONFIG_MTD_PLATRAM=m
-# end of Mapping drivers for chip access
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_PMC551 is not set
-CONFIG_MTD_DATAFLASH=m
-# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-# CONFIG_MTD_DATAFLASH_OTP is not set
-# CONFIG_MTD_MCHP23K256 is not set
-CONFIG_MTD_SST25L=m
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOCG3 is not set
-# end of Self-contained MTD device drivers
-
-#
-# NAND
-#
-CONFIG_MTD_NAND_CORE=y
-CONFIG_MTD_ONENAND=y
-CONFIG_MTD_ONENAND_VERIFY_WRITE=y
-# CONFIG_MTD_ONENAND_GENERIC is not set
-CONFIG_MTD_ONENAND_OMAP2=m
-# CONFIG_MTD_ONENAND_SAMSUNG is not set
-# CONFIG_MTD_ONENAND_OTP is not set
-CONFIG_MTD_ONENAND_2X_PROGRAM=y
-CONFIG_MTD_RAW_NAND=m
-
-#
-# Raw/parallel NAND flash controllers
-#
-# CONFIG_MTD_NAND_DENALI_PCI is not set
-# CONFIG_MTD_NAND_DENALI_DT is not set
-CONFIG_MTD_NAND_OMAP2=m
-# CONFIG_MTD_NAND_OMAP_BCH is not set
-CONFIG_MTD_NAND_CAFE=m
-CONFIG_MTD_NAND_ORION=m
-CONFIG_MTD_NAND_MARVELL=m
-# CONFIG_MTD_NAND_BRCMNAND is not set
-CONFIG_MTD_NAND_GPMI_NAND=m
-CONFIG_MTD_NAND_MXC=m
-CONFIG_MTD_NAND_SUNXI=m
-CONFIG_MTD_NAND_MXIC=m
-CONFIG_MTD_NAND_TEGRA=m
-# CONFIG_MTD_NAND_GPIO is not set
-# CONFIG_MTD_NAND_PLATFORM is not set
-CONFIG_MTD_NAND_CADENCE=m
-CONFIG_MTD_NAND_ARASAN=m
-# CONFIG_MTD_NAND_INTEL_LGM is not set
-CONFIG_MTD_NAND_ROCKCHIP=m
-
-#
-# Misc
-#
-CONFIG_MTD_SM_COMMON=m
-CONFIG_MTD_NAND_NANDSIM=m
-CONFIG_MTD_NAND_RICOH=m
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-CONFIG_MTD_SPI_NAND=m
-
-#
-# ECC engine support
-#
-CONFIG_MTD_NAND_ECC=y
-CONFIG_MTD_NAND_ECC_SW_HAMMING=y
-# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
-# CONFIG_MTD_NAND_ECC_SW_BCH is not set
-# end of ECC engine support
-# end of NAND
-
-#
-# LPDDR & LPDDR2 PCM memory drivers
-#
-CONFIG_MTD_LPDDR=m
-CONFIG_MTD_QINFO_PROBE=m
-# CONFIG_MTD_LPDDR2_NVM is not set
-# end of LPDDR & LPDDR2 PCM memory drivers
-
-CONFIG_MTD_SPI_NOR=m
-CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
-# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set
-CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y
-# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set
-CONFIG_MTD_UBI=m
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_LIMIT=20
-# CONFIG_MTD_UBI_FASTMAP is not set
-# CONFIG_MTD_UBI_GLUEBI is not set
-CONFIG_MTD_UBI_BLOCK=y
-CONFIG_MTD_HYPERBUS=m
-CONFIG_DTC=y
-CONFIG_OF=y
-# CONFIG_OF_UNITTEST is not set
-CONFIG_OF_FLATTREE=y
-CONFIG_OF_EARLY_FLATTREE=y
-CONFIG_OF_KOBJ=y
-CONFIG_OF_DYNAMIC=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_IRQ=y
-CONFIG_OF_NET=y
-CONFIG_OF_RESERVED_MEM=y
-CONFIG_OF_RESOLVE=y
-CONFIG_OF_OVERLAY=y
-CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
-CONFIG_PARPORT=m
-# CONFIG_PARPORT_PC is not set
-# CONFIG_PARPORT_AX88796 is not set
-CONFIG_PARPORT_1284=y
-CONFIG_PARPORT_NOT_PC=y
-CONFIG_BLK_DEV=y
-CONFIG_BLK_DEV_NULL_BLK=m
-CONFIG_CDROM=m
-CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
-CONFIG_ZRAM=m
-CONFIG_ZRAM_DEF_COMP_LZORLE=y
-# CONFIG_ZRAM_DEF_COMP_ZSTD is not set
-# CONFIG_ZRAM_DEF_COMP_LZ4 is not set
-# CONFIG_ZRAM_DEF_COMP_LZO is not set
-# CONFIG_ZRAM_DEF_COMP_LZ4HC is not set
-CONFIG_ZRAM_DEF_COMP="lzo-rle"
-# CONFIG_ZRAM_WRITEBACK is not set
-# CONFIG_ZRAM_MEMORY_TRACKING is not set
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-CONFIG_BLK_DEV_DRBD=m
-# CONFIG_DRBD_FAULT_INJECTION is not set
-CONFIG_BLK_DEV_NBD=m
-# CONFIG_BLK_DEV_SX8 is not set
-CONFIG_BLK_DEV_RAM=m
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=16384
-# CONFIG_CDROM_PKTCDVD is not set
-CONFIG_ATA_OVER_ETH=m
-CONFIG_XEN_BLKDEV_FRONTEND=m
-CONFIG_XEN_BLKDEV_BACKEND=m
-CONFIG_VIRTIO_BLK=m
-CONFIG_BLK_DEV_RBD=m
-# CONFIG_BLK_DEV_RSXX is not set
-CONFIG_BLK_DEV_RNBD=y
-CONFIG_BLK_DEV_RNBD_CLIENT=m
-CONFIG_BLK_DEV_RNBD_SERVER=m
-
-#
-# NVME Support
-#
-CONFIG_NVME_CORE=y
-CONFIG_BLK_DEV_NVME=y
-# CONFIG_NVME_MULTIPATH is not set
-CONFIG_NVME_HWMON=y
-CONFIG_NVME_FABRICS=m
-CONFIG_NVME_RDMA=m
-# CONFIG_NVME_FC is not set
-# CONFIG_NVME_TCP is not set
-CONFIG_NVME_TARGET=m
-# CONFIG_NVME_TARGET_PASSTHRU is not set
-# CONFIG_NVME_TARGET_LOOP is not set
-CONFIG_NVME_TARGET_RDMA=m
-# CONFIG_NVME_TARGET_FC is not set
-# CONFIG_NVME_TARGET_TCP is not set
-# end of NVME Support
-
-#
-# Misc devices
-#
-CONFIG_SENSORS_LIS3LV02D=m
-CONFIG_AD525X_DPOT=m
-CONFIG_AD525X_DPOT_I2C=m
-CONFIG_AD525X_DPOT_SPI=m
-# CONFIG_DUMMY_IRQ is not set
-# CONFIG_PHANTOM is not set
-CONFIG_TIFM_CORE=m
-CONFIG_TIFM_7XX1=m
-CONFIG_ICS932S401=m
-CONFIG_ENCLOSURE_SERVICES=m
-# CONFIG_HP_ILO is not set
-CONFIG_APDS9802ALS=m
-CONFIG_ISL29003=m
-CONFIG_ISL29020=m
-CONFIG_SENSORS_TSL2550=m
-CONFIG_SENSORS_BH1770=m
-CONFIG_SENSORS_APDS990X=m
-CONFIG_HMC6352=m
-CONFIG_DS1682=m
-# CONFIG_LATTICE_ECP3_CONFIG is not set
-CONFIG_SRAM=y
-CONFIG_SRAM_EXEC=y
-CONFIG_DW_XDATA_PCIE=m
-# CONFIG_PCI_ENDPOINT_TEST is not set
-CONFIG_XILINX_SDFEC=m
-CONFIG_MISC_RTSX=m
-CONFIG_HISI_HIKEY_USB=m
-CONFIG_C2PORT=m
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=m
-CONFIG_EEPROM_AT25=m
-CONFIG_EEPROM_LEGACY=m
-CONFIG_EEPROM_MAX6875=m
-CONFIG_EEPROM_93CX6=m
-# CONFIG_EEPROM_93XX46 is not set
-# CONFIG_EEPROM_IDT_89HPESX is not set
-# CONFIG_EEPROM_EE1004 is not set
-# end of EEPROM support
-
-CONFIG_CB710_CORE=m
-# CONFIG_CB710_DEBUG is not set
-CONFIG_CB710_DEBUG_ASSUMPTIONS=y
-
-#
-# Texas Instruments shared transport line discipline
-#
-CONFIG_TI_ST=m
-# end of Texas Instruments shared transport line discipline
-
-# CONFIG_SENSORS_LIS3_SPI is not set
-CONFIG_SENSORS_LIS3_I2C=m
-CONFIG_ALTERA_STAPL=m
-# CONFIG_ECHO is not set
-CONFIG_BCM_VK=m
-CONFIG_BCM_VK_TTY=y
-CONFIG_MISC_ALCOR_PCI=m
-CONFIG_MISC_RTSX_PCI=m
-CONFIG_MISC_RTSX_USB=m
-# CONFIG_HABANA_AI is not set
-CONFIG_UACCE=m
-# CONFIG_PVPANIC is not set
-# end of Misc devices
-
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=m
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=m
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_NETLINK=y
-# CONFIG_SCSI_PROC_FS is not set
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=m
-CONFIG_CHR_DEV_ST=m
-CONFIG_BLK_DEV_SR=m
-CONFIG_CHR_DEV_SG=m
-CONFIG_CHR_DEV_SCH=m
-CONFIG_SCSI_ENCLOSURE=m
-CONFIG_SCSI_CONSTANTS=y
-CONFIG_SCSI_LOGGING=y
-CONFIG_SCSI_SCAN_ASYNC=y
-
-#
-# SCSI Transports
-#
-CONFIG_SCSI_SPI_ATTRS=m
-CONFIG_SCSI_FC_ATTRS=m
-CONFIG_SCSI_ISCSI_ATTRS=m
-CONFIG_SCSI_SAS_ATTRS=m
-CONFIG_SCSI_SAS_LIBSAS=m
-CONFIG_SCSI_SAS_ATA=y
-CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SRP_ATTRS=m
-# end of SCSI Transports
-
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ISCSI_TCP=m
-CONFIG_ISCSI_BOOT_SYSFS=m
-CONFIG_SCSI_CXGB3_ISCSI=m
-CONFIG_SCSI_CXGB4_ISCSI=m
-CONFIG_SCSI_BNX2_ISCSI=m
-CONFIG_SCSI_BNX2X_FCOE=m
-CONFIG_BE2ISCSI=m
-# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-CONFIG_SCSI_HPSA=m
-# CONFIG_SCSI_3W_9XXX is not set
-CONFIG_SCSI_3W_SAS=m
-CONFIG_SCSI_ACARD=m
-# CONFIG_SCSI_AACRAID is not set
-# CONFIG_SCSI_AIC7XXX is not set
-# CONFIG_SCSI_AIC79XX is not set
-# CONFIG_SCSI_AIC94XX is not set
-CONFIG_SCSI_MVSAS=m
-# CONFIG_SCSI_MVSAS_DEBUG is not set
-# CONFIG_SCSI_MVSAS_TASKLET is not set
-CONFIG_SCSI_MVUMI=m
-CONFIG_SCSI_ADVANSYS=m
-# CONFIG_SCSI_ARCMSR is not set
-CONFIG_SCSI_ESAS2R=m
-# CONFIG_MEGARAID_NEWGEN is not set
-# CONFIG_MEGARAID_LEGACY is not set
-# CONFIG_MEGARAID_SAS is not set
-CONFIG_SCSI_MPT3SAS=m
-CONFIG_SCSI_MPT2SAS_MAX_SGE=128
-CONFIG_SCSI_MPT3SAS_MAX_SGE=128
-CONFIG_SCSI_MPT2SAS=m
-CONFIG_SCSI_SMARTPQI=m
-CONFIG_SCSI_UFSHCD=m
-CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
-# CONFIG_SCSI_UFS_BSG is not set
-CONFIG_SCSI_UFS_CRYPTO=y
-# CONFIG_SCSI_HPTIOP is not set
-# CONFIG_SCSI_MYRB is not set
-# CONFIG_SCSI_MYRS is not set
-CONFIG_XEN_SCSI_FRONTEND=m
-CONFIG_LIBFC=m
-CONFIG_LIBFCOE=m
-CONFIG_FCOE=m
-CONFIG_SCSI_SNIC=m
-# CONFIG_SCSI_SNIC_DEBUG_FS is not set
-CONFIG_SCSI_DMX3191D=m
-CONFIG_SCSI_FDOMAIN=m
-CONFIG_SCSI_FDOMAIN_PCI=m
-# CONFIG_SCSI_IPS is not set
-# CONFIG_SCSI_INITIO is not set
-# CONFIG_SCSI_INIA100 is not set
-CONFIG_SCSI_STEX=m
-# CONFIG_SCSI_SYM53C8XX_2 is not set
-# CONFIG_SCSI_IPR is not set
-# CONFIG_SCSI_QLOGIC_1280 is not set
-# CONFIG_SCSI_QLA_FC is not set
-# CONFIG_SCSI_QLA_ISCSI is not set
-# CONFIG_QEDI is not set
-# CONFIG_QEDF is not set
-CONFIG_SCSI_LPFC=m
-# CONFIG_SCSI_LPFC_DEBUG_FS is not set
-# CONFIG_SCSI_DC395x is not set
-CONFIG_SCSI_AM53C974=m
-# CONFIG_SCSI_NSP32 is not set
-CONFIG_SCSI_WD719X=m
-# CONFIG_SCSI_DEBUG is not set
-CONFIG_SCSI_PMCRAID=m
-CONFIG_SCSI_PM8001=m
-CONFIG_SCSI_BFA_FC=m
-CONFIG_SCSI_VIRTIO=m
-CONFIG_SCSI_CHELSIO_FCOE=m
-CONFIG_SCSI_DH=y
-CONFIG_SCSI_DH_RDAC=m
-CONFIG_SCSI_DH_HP_SW=m
-CONFIG_SCSI_DH_EMC=m
-CONFIG_SCSI_DH_ALUA=m
-# end of SCSI device support
-
-CONFIG_HAVE_PATA_PLATFORM=y
-CONFIG_ATA=m
-CONFIG_SATA_HOST=y
-CONFIG_PATA_TIMINGS=y
-CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_ATA_FORCE=y
-CONFIG_SATA_PMP=y
-
-#
-# Controllers with non-SFF native interface
-#
-CONFIG_SATA_AHCI=m
-CONFIG_SATA_MOBILE_LPM_POLICY=0
-CONFIG_SATA_AHCI_PLATFORM=m
-# CONFIG_AHCI_DM816 is not set
-CONFIG_AHCI_IMX=m
-# CONFIG_AHCI_CEVA is not set
-CONFIG_AHCI_MVEBU=m
-CONFIG_AHCI_SUNXI=m
-CONFIG_AHCI_TEGRA=m
-# CONFIG_AHCI_QORIQ is not set
-# CONFIG_SATA_INIC162X is not set
-CONFIG_SATA_ACARD_AHCI=m
-CONFIG_SATA_SIL24=m
-CONFIG_ATA_SFF=y
-
-#
-# SFF controllers with custom DMA interface
-#
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
-CONFIG_SATA_SX4=m
-CONFIG_ATA_BMDMA=y
-
-#
-# SATA SFF controllers with BMDMA
-#
-CONFIG_ATA_PIIX=m
-# CONFIG_SATA_DWC is not set
-CONFIG_SATA_HIGHBANK=m
-CONFIG_SATA_MV=m
-CONFIG_SATA_NV=m
-CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SIL=m
-CONFIG_SATA_SIS=m
-CONFIG_SATA_SVW=m
-CONFIG_SATA_ULI=m
-CONFIG_SATA_VIA=m
-CONFIG_SATA_VITESSE=m
-
-#
-# PATA SFF controllers with BMDMA
-#
-# CONFIG_PATA_ALI is not set
-# CONFIG_PATA_AMD is not set
-CONFIG_PATA_ARTOP=m
-# CONFIG_PATA_ATIIXP is not set
-CONFIG_PATA_ATP867X=m
-CONFIG_PATA_CMD64X=m
-# CONFIG_PATA_CYPRESS is not set
-# CONFIG_PATA_EFAR is not set
-# CONFIG_PATA_HPT366 is not set
-# CONFIG_PATA_HPT37X is not set
-# CONFIG_PATA_HPT3X2N is not set
-# CONFIG_PATA_HPT3X3 is not set
-CONFIG_PATA_IMX=m
-CONFIG_PATA_IT8213=m
-CONFIG_PATA_IT821X=m
-CONFIG_PATA_JMICRON=m
-CONFIG_PATA_MARVELL=m
-# CONFIG_PATA_NETCELL is not set
-CONFIG_PATA_NINJA32=m
-# CONFIG_PATA_NS87415 is not set
-# CONFIG_PATA_OLDPIIX is not set
-# CONFIG_PATA_OPTIDMA is not set
-# CONFIG_PATA_PDC2027X is not set
-# CONFIG_PATA_PDC_OLD is not set
-# CONFIG_PATA_RADISYS is not set
-CONFIG_PATA_RDC=m
-CONFIG_PATA_SCH=m
-# CONFIG_PATA_SERVERWORKS is not set
-# CONFIG_PATA_SIL680 is not set
-CONFIG_PATA_SIS=m
-CONFIG_PATA_TOSHIBA=m
-# CONFIG_PATA_TRIFLEX is not set
-# CONFIG_PATA_VIA is not set
-# CONFIG_PATA_WINBOND is not set
-
-#
-# PIO-only SFF controllers
-#
-# CONFIG_PATA_CMD640_PCI is not set
-# CONFIG_PATA_MPIIX is not set
-# CONFIG_PATA_NS87410 is not set
-# CONFIG_PATA_OPTI is not set
-CONFIG_PATA_PLATFORM=m
-CONFIG_PATA_OF_PLATFORM=m
-# CONFIG_PATA_RZ1000 is not set
-
-#
-# Generic fallback / legacy drivers
-#
-CONFIG_ATA_GENERIC=m
-# CONFIG_PATA_LEGACY is not set
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-# CONFIG_MD_CLUSTER is not set
-CONFIG_BCACHE=m
-# CONFIG_BCACHE_DEBUG is not set
-# CONFIG_BCACHE_CLOSURES_DEBUG is not set
-# CONFIG_BCACHE_ASYNC_REGISTRATION is not set
-CONFIG_BLK_DEV_DM_BUILTIN=y
-CONFIG_BLK_DEV_DM=m
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_BUFIO=m
-# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
-CONFIG_DM_BIO_PRISON=m
-CONFIG_DM_PERSISTENT_DATA=m
-CONFIG_DM_UNSTRIPED=m
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_THIN_PROVISIONING=m
-CONFIG_DM_CACHE=m
-CONFIG_DM_CACHE_SMQ=m
-# CONFIG_DM_WRITECACHE is not set
-# CONFIG_DM_EBS is not set
-CONFIG_DM_ERA=m
-CONFIG_DM_CLONE=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_LOG_USERSPACE=m
-CONFIG_DM_RAID=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_QL=m
-CONFIG_DM_MULTIPATH_ST=m
-CONFIG_DM_MULTIPATH_HST=m
-CONFIG_DM_MULTIPATH_IOA=m
-CONFIG_DM_DELAY=m
-CONFIG_DM_DUST=m
-CONFIG_DM_UEVENT=y
-CONFIG_DM_FLAKEY=m
-CONFIG_DM_VERITY=m
-CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y
-# CONFIG_DM_VERITY_FEC is not set
-CONFIG_DM_SWITCH=m
-CONFIG_DM_LOG_WRITES=m
-# CONFIG_DM_INTEGRITY is not set
-CONFIG_TARGET_CORE=m
-CONFIG_TCM_IBLOCK=m
-CONFIG_TCM_FILEIO=m
-CONFIG_TCM_PSCSI=m
-CONFIG_TCM_USER2=m
-CONFIG_LOOPBACK_TARGET=m
-CONFIG_TCM_FC=m
-CONFIG_ISCSI_TARGET=m
-CONFIG_ISCSI_TARGET_CXGB4=m
-CONFIG_SBP_TARGET=m
-CONFIG_FUSION=y
-CONFIG_FUSION_SPI=m
-CONFIG_FUSION_FC=m
-CONFIG_FUSION_SAS=m
-CONFIG_FUSION_MAX_SGE=128
-CONFIG_FUSION_CTL=m
-# CONFIG_FUSION_LOGGING is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-CONFIG_FIREWIRE=m
-CONFIG_FIREWIRE_OHCI=m
-CONFIG_FIREWIRE_SBP2=m
-CONFIG_FIREWIRE_NET=m
-CONFIG_FIREWIRE_NOSY=m
-# end of IEEE 1394 (FireWire) support
-
-CONFIG_NETDEVICES=y
-CONFIG_MII=m
-CONFIG_NET_CORE=y
-CONFIG_BONDING=m
-CONFIG_DUMMY=m
-CONFIG_WIREGUARD=m
-# CONFIG_WIREGUARD_DEBUG is not set
-CONFIG_EQUALIZER=m
-# CONFIG_NET_FC is not set
-CONFIG_IFB=m
-CONFIG_NET_TEAM=m
-CONFIG_NET_TEAM_MODE_BROADCAST=m
-CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
-CONFIG_NET_TEAM_MODE_RANDOM=m
-CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
-CONFIG_NET_TEAM_MODE_LOADBALANCE=m
-CONFIG_MACVLAN=m
-CONFIG_MACVTAP=m
-CONFIG_IPVLAN_L3S=y
-CONFIG_IPVLAN=m
-# CONFIG_IPVTAP is not set
-CONFIG_VXLAN=m
-CONFIG_GENEVE=m
-CONFIG_BAREUDP=m
-CONFIG_GTP=m
-CONFIG_MACSEC=m
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_TUN=m
-CONFIG_TAP=m
-# CONFIG_TUN_VNET_CROSS_LE is not set
-CONFIG_VETH=m
-CONFIG_VIRTIO_NET=m
-CONFIG_NLMON=m
-CONFIG_NET_VRF=m
-CONFIG_VSOCKMON=m
-CONFIG_MHI_NET=m
-# CONFIG_ARCNET is not set
-CONFIG_ATM_DRIVERS=y
-CONFIG_ATM_DUMMY=m
-# CONFIG_ATM_TCP is not set
-# CONFIG_ATM_LANAI is not set
-# CONFIG_ATM_ENI is not set
-CONFIG_ATM_NICSTAR=m
-CONFIG_ATM_NICSTAR_USE_SUNI=y
-CONFIG_ATM_NICSTAR_USE_IDT77105=y
-# CONFIG_ATM_IDT77252 is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-# CONFIG_ATM_FORE200E_USE_TASKLET is not set
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-# CONFIG_ATM_HE is not set
-CONFIG_ATM_SOLOS=m
-
-#
-# Distributed Switch Architecture drivers
-#
-CONFIG_B53=m
-# CONFIG_B53_SPI_DRIVER is not set
-CONFIG_B53_MDIO_DRIVER=m
-# CONFIG_B53_MMAP_DRIVER is not set
-# CONFIG_B53_SRAB_DRIVER is not set
-# CONFIG_B53_SERDES is not set
-CONFIG_NET_DSA_BCM_SF2=m
-# CONFIG_NET_DSA_LOOP is not set
-CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK=m
-# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
-# CONFIG_NET_DSA_MT7530 is not set
-CONFIG_NET_DSA_MV88E6060=m
-# CONFIG_NET_DSA_MICROCHIP_KSZ9477 is not set
-# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
-CONFIG_NET_DSA_MV88E6XXX=m
-# CONFIG_NET_DSA_MV88E6XXX_PTP is not set
-CONFIG_NET_DSA_MSCC_FELIX=m
-CONFIG_NET_DSA_MSCC_SEVILLE=m
-CONFIG_NET_DSA_AR9331=m
-CONFIG_NET_DSA_SJA1105=m
-CONFIG_NET_DSA_SJA1105_PTP=y
-# CONFIG_NET_DSA_SJA1105_TAS is not set
-CONFIG_NET_DSA_XRS700X=m
-CONFIG_NET_DSA_XRS700X_I2C=m
-CONFIG_NET_DSA_XRS700X_MDIO=m
-# CONFIG_NET_DSA_QCA8K is not set
-CONFIG_NET_DSA_REALTEK_SMI=m
-# CONFIG_NET_DSA_SMSC_LAN9303_I2C is not set
-# CONFIG_NET_DSA_SMSC_LAN9303_MDIO is not set
-CONFIG_NET_DSA_VITESSE_VSC73XX=m
-CONFIG_NET_DSA_VITESSE_VSC73XX_SPI=m
-CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM=m
-# end of Distributed Switch Architecture drivers
-
-CONFIG_ETHERNET=y
-CONFIG_MDIO=m
-CONFIG_NET_VENDOR_3COM=y
-CONFIG_TYPHOON=m
-CONFIG_NET_VENDOR_ADAPTEC=y
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_NET_VENDOR_AGERE=y
-CONFIG_ET131X=m
-CONFIG_NET_VENDOR_ALACRITECH=y
-# CONFIG_SLICOSS is not set
-CONFIG_NET_VENDOR_ALLWINNER=y
-CONFIG_SUN4I_EMAC=m
-CONFIG_NET_VENDOR_ALTEON=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-# CONFIG_ALTERA_TSE is not set
-CONFIG_NET_VENDOR_AMAZON=y
-CONFIG_ENA_ETHERNET=m
-CONFIG_NET_VENDOR_AMD=y
-# CONFIG_AMD8111_ETH is not set
-CONFIG_PCNET32=m
-CONFIG_NET_VENDOR_AQUANTIA=y
-CONFIG_AQTION=m
-# CONFIG_NET_VENDOR_ARC is not set
-CONFIG_NET_VENDOR_ATHEROS=y
-CONFIG_ATL2=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_ALX=m
-CONFIG_NET_VENDOR_BROADCOM=y
-# CONFIG_B44 is not set
-# CONFIG_BCMGENET is not set
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_TIGON3=m
-CONFIG_TIGON3_HWMON=y
-CONFIG_BNX2X=m
-# CONFIG_SYSTEMPORT is not set
-CONFIG_BNXT=m
-CONFIG_BNXT_FLOWER_OFFLOAD=y
-# CONFIG_BNXT_DCB is not set
-CONFIG_BNXT_HWMON=y
-CONFIG_NET_VENDOR_BROCADE=y
-CONFIG_BNA=m
-CONFIG_NET_VENDOR_CADENCE=y
-# CONFIG_MACB is not set
-CONFIG_NET_CALXEDA_XGMAC=m
-CONFIG_NET_VENDOR_CAVIUM=y
-CONFIG_NET_VENDOR_CHELSIO=y
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3=m
-CONFIG_CHELSIO_T4=m
-CONFIG_CHELSIO_T4_DCB=y
-CONFIG_CHELSIO_T4_FCOE=y
-CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_LIB=m
-CONFIG_CHELSIO_INLINE_CRYPTO=y
-CONFIG_NET_VENDOR_CIRRUS=y
-# CONFIG_CS89x0 is not set
-CONFIG_NET_VENDOR_CISCO=y
-CONFIG_ENIC=m
-CONFIG_NET_VENDOR_CORTINA=y
-CONFIG_GEMINI_ETHERNET=m
-# CONFIG_DM9000 is not set
-# CONFIG_DNET is not set
-CONFIG_NET_VENDOR_DEC=y
-CONFIG_NET_TULIP=y
-CONFIG_DE2104X=m
-CONFIG_DE2104X_DSL=0
-CONFIG_TULIP=m
-# CONFIG_TULIP_MWI is not set
-# CONFIG_TULIP_MMIO is not set
-CONFIG_TULIP_NAPI=y
-CONFIG_TULIP_NAPI_HW_MITIGATION=y
-CONFIG_WINBOND_840=m
-CONFIG_DM9102=m
-CONFIG_ULI526X=m
-CONFIG_NET_VENDOR_DLINK=y
-CONFIG_DL2K=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_NET_VENDOR_EMULEX=y
-CONFIG_BE2NET=m
-CONFIG_BE2NET_HWMON=y
-CONFIG_BE2NET_BE2=y
-CONFIG_BE2NET_BE3=y
-CONFIG_BE2NET_LANCER=y
-CONFIG_BE2NET_SKYHAWK=y
-CONFIG_NET_VENDOR_EZCHIP=y
-# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set
-CONFIG_NET_VENDOR_FARADAY=y
-# CONFIG_FTMAC100 is not set
-# CONFIG_FTGMAC100 is not set
-CONFIG_NET_VENDOR_FREESCALE=y
-CONFIG_FEC=y
-# CONFIG_FSL_PQ_MDIO is not set
-# CONFIG_FSL_XGMAC_MDIO is not set
-# CONFIG_GIANFAR is not set
-# CONFIG_FSL_DPAA2_SWITCH is not set
-CONFIG_FSL_ENETC=m
-CONFIG_FSL_ENETC_VF=m
-CONFIG_FSL_ENETC_IERB=m
-CONFIG_FSL_ENETC_MDIO=m
-CONFIG_FSL_ENETC_PTP_CLOCK=m
-CONFIG_FSL_ENETC_QOS=y
-CONFIG_NET_VENDOR_GOOGLE=y
-CONFIG_GVE=m
-CONFIG_NET_VENDOR_HISILICON=y
-# CONFIG_HIX5HD2_GMAC is not set
-# CONFIG_HISI_FEMAC is not set
-# CONFIG_HIP04_ETH is not set
-# CONFIG_HNS_DSAF is not set
-# CONFIG_HNS_ENET is not set
-# CONFIG_HNS3 is not set
-CONFIG_NET_VENDOR_HUAWEI=y
-CONFIG_NET_VENDOR_I825XX=y
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_E100=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IGB=m
-CONFIG_IGB_HWMON=y
-CONFIG_IGBVF=m
-CONFIG_IXGB=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_HWMON=y
-CONFIG_IXGBE_DCB=y
-CONFIG_IXGBEVF=m
-CONFIG_I40E=m
-CONFIG_I40E_DCB=y
-CONFIG_IAVF=m
-CONFIG_I40EVF=m
-# CONFIG_ICE is not set
-# CONFIG_FM10K is not set
-# CONFIG_IGC is not set
-CONFIG_NET_VENDOR_MICROSOFT=y
-CONFIG_JME=m
-CONFIG_NET_VENDOR_MARVELL=y
-# CONFIG_MV643XX_ETH is not set
-CONFIG_MVMDIO=m
-# CONFIG_MVNETA_BM_ENABLE is not set
-CONFIG_MVNETA=m
-CONFIG_MVPP2=m
-# CONFIG_MVPP2_PTP is not set
-CONFIG_SKGE=m
-# CONFIG_SKGE_DEBUG is not set
-CONFIG_SKGE_GENESIS=y
-CONFIG_SKY2=m
-# CONFIG_SKY2_DEBUG is not set
-CONFIG_PRESTERA=m
-CONFIG_PRESTERA_PCI=m
-CONFIG_NET_VENDOR_MELLANOX=y
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_EN_DCB=y
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_MLX4_CORE_GEN2=y
-CONFIG_MLX5_CORE=m
-# CONFIG_MLX5_FPGA is not set
-CONFIG_MLX5_CORE_EN=y
-CONFIG_MLX5_EN_ARFS=y
-CONFIG_MLX5_EN_RXNFC=y
-CONFIG_MLX5_MPFS=y
-CONFIG_MLX5_ESWITCH=y
-CONFIG_MLX5_CLS_ACT=y
-CONFIG_MLX5_TC_SAMPLE=y
-CONFIG_MLX5_CORE_EN_DCB=y
-# CONFIG_MLX5_CORE_IPOIB is not set
-CONFIG_MLX5_SW_STEERING=y
-CONFIG_MLX5_SF=y
-CONFIG_MLX5_SF_MANAGER=y
-# CONFIG_MLXSW_CORE is not set
-# CONFIG_MLXFW is not set
-CONFIG_NET_VENDOR_MICREL=y
-# CONFIG_KS8842 is not set
-# CONFIG_KS8851 is not set
-# CONFIG_KS8851_MLL is not set
-CONFIG_KSZ884X_PCI=m
-CONFIG_NET_VENDOR_MICROCHIP=y
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-# CONFIG_ENCX24J600 is not set
-# CONFIG_LAN743X is not set
-CONFIG_NET_VENDOR_MICROSEMI=y
-CONFIG_MSCC_OCELOT_SWITCH_LIB=m
-CONFIG_MSCC_OCELOT_SWITCH=m
-CONFIG_NET_VENDOR_MYRI=y
-CONFIG_MYRI10GE=m
-CONFIG_FEALNX=m
-CONFIG_NET_VENDOR_NATSEMI=y
-CONFIG_NATSEMI=m
-CONFIG_NS83820=m
-CONFIG_NET_VENDOR_NETERION=y
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_NET_VENDOR_NETRONOME=y
-CONFIG_NFP=m
-# CONFIG_NFP_APP_FLOWER is not set
-CONFIG_NFP_APP_ABM_NIC=y
-# CONFIG_NFP_DEBUG is not set
-CONFIG_NET_VENDOR_NI=y
-# CONFIG_NI_XGE_MANAGEMENT_ENET is not set
-CONFIG_NET_VENDOR_8390=y
-# CONFIG_AX88796 is not set
-CONFIG_NE2K_PCI=m
-CONFIG_NET_VENDOR_NVIDIA=y
-# CONFIG_FORCEDETH is not set
-CONFIG_NET_VENDOR_OKI=y
-# CONFIG_ETHOC is not set
-CONFIG_NET_VENDOR_PACKET_ENGINES=y
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_NET_VENDOR_PENSANDO=y
-CONFIG_NET_VENDOR_QLOGIC=y
-CONFIG_QLA3XXX=m
-CONFIG_QLCNIC=m
-CONFIG_QLCNIC_DCB=y
-CONFIG_QLCNIC_HWMON=y
-CONFIG_NETXEN_NIC=m
-CONFIG_QED=m
-CONFIG_QEDE=m
-CONFIG_NET_VENDOR_QUALCOMM=y
-# CONFIG_QCA7000_SPI is not set
-# CONFIG_QCOM_EMAC is not set
-CONFIG_RMNET=m
-CONFIG_NET_VENDOR_RDC=y
-CONFIG_R6040=m
-CONFIG_NET_VENDOR_REALTEK=y
-CONFIG_8139CP=m
-CONFIG_8139TOO=m
-# CONFIG_8139TOO_PIO is not set
-CONFIG_8139TOO_TUNE_TWISTER=y
-CONFIG_8139TOO_8129=y
-# CONFIG_8139_OLD_RX_RESET is not set
-CONFIG_R8169=m
-CONFIG_NET_VENDOR_RENESAS=y
-CONFIG_NET_VENDOR_ROCKER=y
-# CONFIG_ROCKER is not set
-CONFIG_NET_VENDOR_SAMSUNG=y
-# CONFIG_SXGBE_ETH is not set
-# CONFIG_NET_VENDOR_SEEQ is not set
-CONFIG_NET_VENDOR_SOLARFLARE=y
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_SFC_MCDI_MON=y
-CONFIG_SFC_MCDI_LOGGING=y
-CONFIG_SFC_FALCON=m
-CONFIG_SFC_FALCON_MTD=y
-CONFIG_NET_VENDOR_SILAN=y
-CONFIG_SC92031=m
-CONFIG_NET_VENDOR_SIS=y
-# CONFIG_SIS900 is not set
-CONFIG_SIS190=m
-CONFIG_NET_VENDOR_SMSC=y
-CONFIG_SMC91X=m
-CONFIG_EPIC100=m
-CONFIG_SMC911X=m
-CONFIG_SMSC911X=m
-CONFIG_SMSC9420=m
-CONFIG_NET_VENDOR_SOCIONEXT=y
-CONFIG_NET_VENDOR_STMICRO=y
-CONFIG_STMMAC_ETH=m
-# CONFIG_STMMAC_SELFTESTS is not set
-CONFIG_STMMAC_PLATFORM=m
-# CONFIG_DWMAC_DWC_QOS_ETH is not set
-CONFIG_DWMAC_GENERIC=m
-CONFIG_DWMAC_ROCKCHIP=m
-CONFIG_DWMAC_SOCFPGA=m
-CONFIG_DWMAC_SUNXI=m
-CONFIG_DWMAC_SUN8I=m
-CONFIG_DWMAC_IMX8=m
-# CONFIG_DWMAC_INTEL_PLAT is not set
-# CONFIG_STMMAC_PCI is not set
-CONFIG_NET_VENDOR_SUN=y
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNGEM is not set
-CONFIG_CASSINI=m
-CONFIG_NIU=m
-CONFIG_NET_VENDOR_SYNOPSYS=y
-# CONFIG_DWC_XLGMAC is not set
-CONFIG_NET_VENDOR_TEHUTI=y
-CONFIG_TEHUTI=m
-CONFIG_NET_VENDOR_TI=y
-CONFIG_TI_DAVINCI_EMAC=m
-CONFIG_TI_DAVINCI_MDIO=m
-CONFIG_TI_CPSW_PHY_SEL=y
-CONFIG_TI_CPSW=m
-CONFIG_TI_CPSW_SWITCHDEV=m
-# CONFIG_TI_CPTS is not set
-CONFIG_TLAN=m
-CONFIG_NET_VENDOR_VIA=y
-# CONFIG_VIA_RHINE is not set
-CONFIG_VIA_VELOCITY=m
-CONFIG_NET_VENDOR_WIZNET=y
-# CONFIG_WIZNET_W5100 is not set
-# CONFIG_WIZNET_W5300 is not set
-CONFIG_NET_VENDOR_XILINX=y
-CONFIG_XILINX_EMACLITE=m
-CONFIG_XILINX_AXI_EMAC=m
-CONFIG_XILINX_LL_TEMAC=m
-CONFIG_FDDI=y
-CONFIG_DEFXX=m
-CONFIG_SKFP=m
-# CONFIG_HIPPI is not set
-CONFIG_PHYLINK=m
-CONFIG_PHYLIB=y
-CONFIG_SWPHY=y
-# CONFIG_LED_TRIGGER_PHY is not set
-CONFIG_FIXED_PHY=y
-CONFIG_SFP=m
-
-#
-# MII PHY device drivers
-#
-CONFIG_AMD_PHY=m
-CONFIG_ADIN_PHY=m
-CONFIG_AQUANTIA_PHY=m
-CONFIG_AX88796B_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_BCM54140_PHY=m
-CONFIG_BCM7XXX_PHY=m
-CONFIG_BCM84881_PHY=m
-CONFIG_BCM87XX_PHY=m
-CONFIG_BCM_NET_PHYLIB=m
-CONFIG_CICADA_PHY=m
-# CONFIG_CORTINA_PHY is not set
-CONFIG_DAVICOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_LXT_PHY=m
-# CONFIG_INTEL_XWAY_PHY is not set
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_MARVELL_PHY=m
-# CONFIG_MARVELL_10G_PHY is not set
-CONFIG_MARVELL_88X2222_PHY=m
-CONFIG_MICREL_PHY=m
-CONFIG_MICROCHIP_PHY=m
-CONFIG_MICROCHIP_T1_PHY=m
-CONFIG_MICROSEMI_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_NXP_C45_TJA11XX_PHY=m
-CONFIG_NXP_TJA11XX_PHY=m
-CONFIG_AT803X_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_RENESAS_PHY=m
-CONFIG_ROCKCHIP_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_STE10XP=m
-CONFIG_TERANETICS_PHY=m
-CONFIG_DP83822_PHY=m
-CONFIG_DP83TC811_PHY=m
-CONFIG_DP83848_PHY=m
-CONFIG_DP83867_PHY=m
-CONFIG_DP83869_PHY=m
-CONFIG_VITESSE_PHY=m
-# CONFIG_XILINX_GMII2RGMII is not set
-# CONFIG_MICREL_KS8995MA is not set
-CONFIG_MDIO_DEVICE=y
-CONFIG_MDIO_BUS=y
-CONFIG_OF_MDIO=y
-CONFIG_MDIO_DEVRES=y
-CONFIG_MDIO_SUN4I=y
-# CONFIG_MDIO_BITBANG is not set
-CONFIG_MDIO_BCM_UNIMAC=m
-# CONFIG_MDIO_HISI_FEMAC is not set
-CONFIG_MDIO_I2C=m
-CONFIG_MDIO_MVUSB=m
-# CONFIG_MDIO_MSCC_MIIM is not set
-# CONFIG_MDIO_IPQ4019 is not set
-CONFIG_MDIO_IPQ8064=m
-
-#
-# MDIO Multiplexers
-#
-CONFIG_MDIO_BUS_MUX=m
-# CONFIG_MDIO_BUS_MUX_GPIO is not set
-# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
-# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
-
-#
-# PCS device drivers
-#
-CONFIG_PCS_XPCS=m
-CONFIG_PCS_LYNX=m
-# end of PCS device drivers
-
-# CONFIG_PLIP is not set
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOATM=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOL2TP=m
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_SLIP=m
-CONFIG_SLHC=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-
-#
-# Host-side USB support is needed for USB Network Adapter support
-#
-CONFIG_USB_NET_DRIVERS=m
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_RTL8152=m
-CONFIG_USB_LAN78XX=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_AX88179_178A=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_CDC_EEM=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_HUAWEI_CDC_NCM=m
-CONFIG_USB_NET_CDC_MBIM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SR9700=m
-CONFIG_USB_NET_SR9800=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_NET_QMI_WWAN=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_USB_NET_CH9200=m
-CONFIG_USB_NET_AQC111=m
-CONFIG_USB_RTL8153_ECM=m
-CONFIG_WLAN=y
-CONFIG_WLAN_VENDOR_ADMTEK=y
-CONFIG_ADM8211=m
-CONFIG_ATH_COMMON=m
-CONFIG_WLAN_VENDOR_ATH=y
-# CONFIG_ATH_DEBUG is not set
-CONFIG_ATH5K=m
-# CONFIG_ATH5K_DEBUG is not set
-# CONFIG_ATH5K_TRACER is not set
-CONFIG_ATH5K_PCI=y
-CONFIG_ATH9K_HW=m
-CONFIG_ATH9K_COMMON=m
-CONFIG_ATH9K_BTCOEX_SUPPORT=y
-CONFIG_ATH9K=m
-CONFIG_ATH9K_PCI=y
-# CONFIG_ATH9K_AHB is not set
-# CONFIG_ATH9K_DEBUGFS is not set
-# CONFIG_ATH9K_DYNACK is not set
-# CONFIG_ATH9K_WOW is not set
-CONFIG_ATH9K_RFKILL=y
-# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
-CONFIG_ATH9K_PCOEM=y
-CONFIG_ATH9K_PCI_NO_EEPROM=m
-CONFIG_ATH9K_HTC=m
-# CONFIG_ATH9K_HTC_DEBUGFS is not set
-# CONFIG_ATH9K_HWRNG is not set
-CONFIG_CARL9170=m
-CONFIG_CARL9170_LEDS=y
-CONFIG_CARL9170_WPC=y
-# CONFIG_CARL9170_HWRNG is not set
-CONFIG_ATH6KL=m
-CONFIG_ATH6KL_SDIO=m
-CONFIG_ATH6KL_USB=m
-# CONFIG_ATH6KL_DEBUG is not set
-# CONFIG_ATH6KL_TRACING is not set
-CONFIG_AR5523=m
-CONFIG_WIL6210=m
-CONFIG_WIL6210_ISR_COR=y
-CONFIG_WIL6210_TRACING=y
-CONFIG_WIL6210_DEBUGFS=y
-CONFIG_ATH10K=m
-CONFIG_ATH10K_CE=y
-CONFIG_ATH10K_PCI=m
-# CONFIG_ATH10K_AHB is not set
-# CONFIG_ATH10K_SDIO is not set
-CONFIG_ATH10K_USB=m
-# CONFIG_ATH10K_DEBUG is not set
-# CONFIG_ATH10K_DEBUGFS is not set
-# CONFIG_ATH10K_TRACING is not set
-# CONFIG_WCN36XX is not set
-CONFIG_ATH11K=m
-CONFIG_ATH11K_PCI=m
-# CONFIG_ATH11K_DEBUG is not set
-# CONFIG_ATH11K_TRACING is not set
-CONFIG_WLAN_VENDOR_ATMEL=y
-# CONFIG_ATMEL is not set
-CONFIG_AT76C50X_USB=m
-CONFIG_WLAN_VENDOR_BROADCOM=y
-CONFIG_B43=m
-CONFIG_B43_BCMA=y
-CONFIG_B43_SSB=y
-CONFIG_B43_BUSES_BCMA_AND_SSB=y
-# CONFIG_B43_BUSES_BCMA is not set
-# CONFIG_B43_BUSES_SSB is not set
-CONFIG_B43_PCI_AUTOSELECT=y
-CONFIG_B43_PCICORE_AUTOSELECT=y
-CONFIG_B43_SDIO=y
-CONFIG_B43_BCMA_PIO=y
-CONFIG_B43_PIO=y
-CONFIG_B43_PHY_G=y
-CONFIG_B43_PHY_N=y
-CONFIG_B43_PHY_LP=y
-CONFIG_B43_PHY_HT=y
-CONFIG_B43_LEDS=y
-CONFIG_B43_HWRNG=y
-# CONFIG_B43_DEBUG is not set
-CONFIG_B43LEGACY=m
-CONFIG_B43LEGACY_PCI_AUTOSELECT=y
-CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
-CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_HWRNG=y
-CONFIG_B43LEGACY_DEBUG=y
-CONFIG_B43LEGACY_DMA=y
-CONFIG_B43LEGACY_PIO=y
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# CONFIG_B43LEGACY_DMA_MODE is not set
-# CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMSMAC=m
-CONFIG_BRCMFMAC=m
-CONFIG_BRCMFMAC_PROTO_BCDC=y
-CONFIG_BRCMFMAC_PROTO_MSGBUF=y
-CONFIG_BRCMFMAC_SDIO=y
-CONFIG_BRCMFMAC_USB=y
-CONFIG_BRCMFMAC_PCIE=y
-# CONFIG_BRCM_TRACING is not set
-# CONFIG_BRCMDBG is not set
-CONFIG_WLAN_VENDOR_CISCO=y
-CONFIG_WLAN_VENDOR_INTEL=y
-# CONFIG_IPW2100 is not set
-CONFIG_IPW2200=m
-CONFIG_IPW2200_MONITOR=y
-CONFIG_IPW2200_RADIOTAP=y
-CONFIG_IPW2200_PROMISCUOUS=y
-CONFIG_IPW2200_QOS=y
-# CONFIG_IPW2200_DEBUG is not set
-CONFIG_LIBIPW=m
-# CONFIG_LIBIPW_DEBUG is not set
-CONFIG_IWLEGACY=m
-CONFIG_IWL4965=m
-CONFIG_IWL3945=m
-
-#
-# iwl3945 / iwl4965 Debugging Options
-#
-# CONFIG_IWLEGACY_DEBUG is not set
-# end of iwl3945 / iwl4965 Debugging Options
-
-CONFIG_IWLWIFI=m
-CONFIG_IWLWIFI_LEDS=y
-CONFIG_IWLDVM=m
-CONFIG_IWLMVM=m
-CONFIG_IWLWIFI_OPMODE_MODULAR=y
-# CONFIG_IWLWIFI_BCAST_FILTERING is not set
-
-#
-# Debugging Options
-#
-# CONFIG_IWLWIFI_DEBUG is not set
-# CONFIG_IWLWIFI_DEVICE_TRACING is not set
-# end of Debugging Options
-
-CONFIG_WLAN_VENDOR_INTERSIL=y
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-# CONFIG_HERMES is not set
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-CONFIG_P54_PCI=m
-# CONFIG_P54_SPI is not set
-CONFIG_P54_LEDS=y
-# CONFIG_PRISM54 is not set
-CONFIG_WLAN_VENDOR_MARVELL=y
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_SDIO=m
-# CONFIG_LIBERTAS_SPI is not set
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_LIBERTAS_MESH=y
-CONFIG_LIBERTAS_THINFIRM=m
-# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM_USB=m
-# CONFIG_MWIFIEX is not set
-CONFIG_MWL8K=m
-CONFIG_WLAN_VENDOR_MEDIATEK=y
-CONFIG_MT7601U=m
-# CONFIG_MT76x0U is not set
-# CONFIG_MT76x0E is not set
-# CONFIG_MT76x2E is not set
-# CONFIG_MT76x2U is not set
-# CONFIG_MT7603E is not set
-# CONFIG_MT7615E is not set
-# CONFIG_MT7663U is not set
-# CONFIG_MT7663S is not set
-# CONFIG_MT7915E is not set
-# CONFIG_MT7921E is not set
-CONFIG_WLAN_VENDOR_MICROCHIP=y
-# CONFIG_WILC1000_SDIO is not set
-# CONFIG_WILC1000_SPI is not set
-CONFIG_WLAN_VENDOR_RALINK=y
-CONFIG_RT2X00=m
-CONFIG_RT2400PCI=m
-CONFIG_RT2500PCI=m
-CONFIG_RT61PCI=m
-CONFIG_RT2800PCI=m
-CONFIG_RT2800PCI_RT33XX=y
-CONFIG_RT2800PCI_RT35XX=y
-CONFIG_RT2800PCI_RT53XX=y
-CONFIG_RT2800PCI_RT3290=y
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT33XX=y
-CONFIG_RT2800USB_RT35XX=y
-CONFIG_RT2800USB_RT3573=y
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_RT55XX=y
-# CONFIG_RT2800USB_UNKNOWN is not set
-CONFIG_RT2800_LIB=m
-CONFIG_RT2800_LIB_MMIO=m
-CONFIG_RT2X00_LIB_MMIO=m
-CONFIG_RT2X00_LIB_PCI=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_LEDS=y
-# CONFIG_RT2X00_DEBUG is not set
-CONFIG_WLAN_VENDOR_REALTEK=y
-CONFIG_RTL8180=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-CONFIG_RTL_CARDS=m
-CONFIG_RTL8192CE=m
-CONFIG_RTL8192SE=m
-CONFIG_RTL8192DE=m
-CONFIG_RTL8723AE=m
-CONFIG_RTL8723BE=m
-CONFIG_RTL8188EE=m
-CONFIG_RTL8192EE=m
-CONFIG_RTL8821AE=m
-CONFIG_RTL8192CU=m
-CONFIG_RTLWIFI=m
-CONFIG_RTLWIFI_PCI=m
-CONFIG_RTLWIFI_USB=m
-# CONFIG_RTLWIFI_DEBUG is not set
-CONFIG_RTL8192C_COMMON=m
-CONFIG_RTL8723_COMMON=m
-CONFIG_RTLBTCOEXIST=m
-CONFIG_RTL8XXXU=m
-# CONFIG_RTL8XXXU_UNTESTED is not set
-# CONFIG_RTW88 is not set
-CONFIG_WLAN_VENDOR_RSI=y
-CONFIG_RSI_91X=m
-CONFIG_RSI_DEBUGFS=y
-# CONFIG_RSI_SDIO is not set
-CONFIG_RSI_USB=m
-CONFIG_RSI_COEX=y
-CONFIG_WLAN_VENDOR_ST=y
-# CONFIG_CW1200 is not set
-CONFIG_WLAN_VENDOR_TI=y
-CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL12XX=m
-CONFIG_WL18XX=m
-CONFIG_WLCORE=m
-CONFIG_WLCORE_SPI=m
-CONFIG_WLCORE_SDIO=m
-CONFIG_WILINK_PLATFORM_DATA=y
-CONFIG_WLAN_VENDOR_ZYDAS=y
-# CONFIG_USB_ZD1201 is not set
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_WLAN_VENDOR_QUANTENNA=y
-# CONFIG_QTNFMAC_PCIE is not set
-CONFIG_MAC80211_HWSIM=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-CONFIG_VIRT_WIFI=m
-# CONFIG_WAN is not set
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKELB=m
-CONFIG_IEEE802154_AT86RF230=m
-# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
-CONFIG_IEEE802154_MRF24J40=m
-CONFIG_IEEE802154_CC2520=m
-CONFIG_IEEE802154_ATUSB=m
-CONFIG_IEEE802154_ADF7242=m
-# CONFIG_IEEE802154_CA8210 is not set
-# CONFIG_IEEE802154_MCR20A is not set
-# CONFIG_IEEE802154_HWSIM is not set
-CONFIG_WWAN=y
-CONFIG_WWAN_CORE=y
-CONFIG_MHI_WWAN_CTRL=m
-CONFIG_XEN_NETDEV_FRONTEND=m
-CONFIG_XEN_NETDEV_BACKEND=m
-# CONFIG_VMXNET3 is not set
-CONFIG_USB4_NET=m
-CONFIG_NETDEVSIM=m
-CONFIG_NET_FAILOVER=m
-# CONFIG_ISDN is not set
-# CONFIG_NVM is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_LEDS=y
-CONFIG_INPUT_FF_MEMLESS=m
-CONFIG_INPUT_SPARSEKMAP=m
-CONFIG_INPUT_MATRIXKMAP=m
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-CONFIG_INPUT_EVDEV=m
-# CONFIG_INPUT_EVBUG is not set
-# CONFIG_INPUT_APMPOWER is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ADC is not set
-CONFIG_KEYBOARD_ADP5588=m
-# CONFIG_KEYBOARD_ADP5589 is not set
-CONFIG_KEYBOARD_ATKBD=y
-CONFIG_KEYBOARD_QT1050=m
-# CONFIG_KEYBOARD_QT1070 is not set
-CONFIG_KEYBOARD_QT2160=m
-# CONFIG_KEYBOARD_DLINK_DIR685 is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-CONFIG_KEYBOARD_GPIO=y
-# CONFIG_KEYBOARD_GPIO_POLLED is not set
-# CONFIG_KEYBOARD_TCA6416 is not set
-# CONFIG_KEYBOARD_TCA8418 is not set
-# CONFIG_KEYBOARD_MATRIX is not set
-CONFIG_KEYBOARD_LM8323=m
-# CONFIG_KEYBOARD_LM8333 is not set
-CONFIG_KEYBOARD_MAX7359=m
-# CONFIG_KEYBOARD_MCS is not set
-# CONFIG_KEYBOARD_MPR121 is not set
-CONFIG_KEYBOARD_SNVS_PWRKEY=m
-CONFIG_KEYBOARD_IMX=m
-# CONFIG_KEYBOARD_NEWTON is not set
-CONFIG_KEYBOARD_TEGRA=m
-CONFIG_KEYBOARD_OPENCORES=m
-# CONFIG_KEYBOARD_SAMSUNG is not set
-CONFIG_KEYBOARD_STOWAWAY=m
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_STMPE is not set
-CONFIG_KEYBOARD_SUN4I_LRADC=m
-CONFIG_KEYBOARD_IQS62X=m
-CONFIG_KEYBOARD_OMAP4=m
-# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
-CONFIG_KEYBOARD_TWL4030=m
-# CONFIG_KEYBOARD_XTKBD is not set
-CONFIG_KEYBOARD_CROS_EC=m
-# CONFIG_KEYBOARD_CAP11XX is not set
-# CONFIG_KEYBOARD_BCM is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=m
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_BYD=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
-CONFIG_MOUSE_PS2_CYPRESS=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-CONFIG_MOUSE_PS2_ELANTECH=y
-CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
-CONFIG_MOUSE_PS2_SENTELIC=y
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-CONFIG_MOUSE_PS2_FOCALTECH=y
-CONFIG_MOUSE_PS2_SMBUS=y
-# CONFIG_MOUSE_SERIAL is not set
-CONFIG_MOUSE_APPLETOUCH=m
-# CONFIG_MOUSE_BCM5974 is not set
-# CONFIG_MOUSE_CYAPA is not set
-CONFIG_MOUSE_ELAN_I2C=m
-CONFIG_MOUSE_ELAN_I2C_I2C=y
-# CONFIG_MOUSE_ELAN_I2C_SMBUS is not set
-# CONFIG_MOUSE_VSXXXAA is not set
-# CONFIG_MOUSE_GPIO is not set
-CONFIG_MOUSE_SYNAPTICS_I2C=m
-CONFIG_MOUSE_SYNAPTICS_USB=m
-# CONFIG_INPUT_JOYSTICK is not set
-CONFIG_INPUT_TABLET=y
-CONFIG_TABLET_USB_ACECAD=m
-CONFIG_TABLET_USB_AIPTEK=m
-CONFIG_TABLET_USB_HANWANG=m
-CONFIG_TABLET_USB_KBTAB=m
-CONFIG_TABLET_USB_PEGASUS=m
-CONFIG_TABLET_SERIAL_WACOM4=m
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_ADS7846=m
-CONFIG_TOUCHSCREEN_AD7877=m
-CONFIG_TOUCHSCREEN_AD7879=m
-CONFIG_TOUCHSCREEN_AD7879_I2C=m
-# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
-CONFIG_TOUCHSCREEN_ADC=m
-# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
-CONFIG_TOUCHSCREEN_ATMEL_MXT=m
-# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
-# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
-# CONFIG_TOUCHSCREEN_BU21013 is not set
-# CONFIG_TOUCHSCREEN_BU21029 is not set
-# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
-# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set
-# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
-# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
-# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set
-# CONFIG_TOUCHSCREEN_DA9052 is not set
-CONFIG_TOUCHSCREEN_DYNAPRO=m
-CONFIG_TOUCHSCREEN_HAMPSHIRE=m
-# CONFIG_TOUCHSCREEN_EETI is not set
-# CONFIG_TOUCHSCREEN_EGALAX is not set
-# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set
-CONFIG_TOUCHSCREEN_EXC3000=m
-CONFIG_TOUCHSCREEN_FUJITSU=m
-CONFIG_TOUCHSCREEN_GOODIX=m
-CONFIG_TOUCHSCREEN_HIDEEP=m
-CONFIG_TOUCHSCREEN_HYCON_HY46XX=m
-# CONFIG_TOUCHSCREEN_ILI210X is not set
-CONFIG_TOUCHSCREEN_ILITEK=m
-CONFIG_TOUCHSCREEN_S6SY761=m
-CONFIG_TOUCHSCREEN_GUNZE=m
-# CONFIG_TOUCHSCREEN_EKTF2127 is not set
-# CONFIG_TOUCHSCREEN_ELAN is not set
-CONFIG_TOUCHSCREEN_ELO=m
-CONFIG_TOUCHSCREEN_WACOM_W8001=m
-# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
-# CONFIG_TOUCHSCREEN_MAX11801 is not set
-CONFIG_TOUCHSCREEN_MCS5000=m
-# CONFIG_TOUCHSCREEN_MMS114 is not set
-# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
-# CONFIG_TOUCHSCREEN_MSG2638 is not set
-CONFIG_TOUCHSCREEN_MTOUCH=m
-# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set
-CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MK712=m
-CONFIG_TOUCHSCREEN_PENMOUNT=m
-# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
-CONFIG_TOUCHSCREEN_RASPBERRYPI_FW=m
-CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
-CONFIG_TOUCHSCREEN_TOUCHWIN=m
-CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
-# CONFIG_TOUCHSCREEN_PIXCIR is not set
-# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
-CONFIG_TOUCHSCREEN_WM97XX=m
-CONFIG_TOUCHSCREEN_WM9705=y
-CONFIG_TOUCHSCREEN_WM9712=y
-CONFIG_TOUCHSCREEN_WM9713=y
-CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-CONFIG_TOUCHSCREEN_MC13783=m
-CONFIG_TOUCHSCREEN_USB_EGALAX=y
-CONFIG_TOUCHSCREEN_USB_PANJIT=y
-CONFIG_TOUCHSCREEN_USB_3M=y
-CONFIG_TOUCHSCREEN_USB_ITM=y
-CONFIG_TOUCHSCREEN_USB_ETURBO=y
-CONFIG_TOUCHSCREEN_USB_GUNZE=y
-CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
-CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
-CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
-CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
-CONFIG_TOUCHSCREEN_USB_GOTOP=y
-CONFIG_TOUCHSCREEN_USB_JASTEC=y
-CONFIG_TOUCHSCREEN_USB_ELO=y
-CONFIG_TOUCHSCREEN_USB_E2I=y
-CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
-CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
-CONFIG_TOUCHSCREEN_USB_NEXIO=y
-CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
-CONFIG_TOUCHSCREEN_TOUCHIT213=m
-# CONFIG_TOUCHSCREEN_TS4800 is not set
-# CONFIG_TOUCHSCREEN_TSC_SERIO is not set
-CONFIG_TOUCHSCREEN_TSC200X_CORE=m
-# CONFIG_TOUCHSCREEN_TSC2004 is not set
-CONFIG_TOUCHSCREEN_TSC2005=m
-CONFIG_TOUCHSCREEN_TSC2007=m
-# CONFIG_TOUCHSCREEN_TSC2007_IIO is not set
-# CONFIG_TOUCHSCREEN_RM_TS is not set
-# CONFIG_TOUCHSCREEN_SILEAD is not set
-# CONFIG_TOUCHSCREEN_SIS_I2C is not set
-# CONFIG_TOUCHSCREEN_ST1232 is not set
-# CONFIG_TOUCHSCREEN_STMFTS is not set
-CONFIG_TOUCHSCREEN_STMPE=m
-CONFIG_TOUCHSCREEN_SUN4I=m
-CONFIG_TOUCHSCREEN_SUR40=m
-# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set
-# CONFIG_TOUCHSCREEN_SX8654 is not set
-CONFIG_TOUCHSCREEN_TPS6507X=m
-# CONFIG_TOUCHSCREEN_ZET6223 is not set
-# CONFIG_TOUCHSCREEN_ZFORCE is not set
-# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
-# CONFIG_TOUCHSCREEN_IQS5XX is not set
-CONFIG_TOUCHSCREEN_ZINITIX=m
-CONFIG_INPUT_MISC=y
-# CONFIG_INPUT_AD714X is not set
-# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
-# CONFIG_INPUT_BMA150 is not set
-# CONFIG_INPUT_E3X0_BUTTON is not set
-# CONFIG_INPUT_MC13783_PWRBUTTON is not set
-CONFIG_INPUT_MMA8450=m
-# CONFIG_INPUT_GPIO_BEEPER is not set
-# CONFIG_INPUT_GPIO_DECODER is not set
-# CONFIG_INPUT_GPIO_VIBRA is not set
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-# CONFIG_INPUT_KXTJ9 is not set
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_CM109=m
-# CONFIG_INPUT_REGULATOR_HAPTIC is not set
-CONFIG_INPUT_AXP20X_PEK=m
-CONFIG_INPUT_TWL4030_PWRBUTTON=m
-CONFIG_INPUT_TWL4030_VIBRA=m
-CONFIG_INPUT_TWL6040_VIBRA=m
-CONFIG_INPUT_UINPUT=m
-# CONFIG_INPUT_PALMAS_PWRBUTTON is not set
-# CONFIG_INPUT_PCF8574 is not set
-# CONFIG_INPUT_PWM_BEEPER is not set
-# CONFIG_INPUT_PWM_VIBRA is not set
-CONFIG_INPUT_RK805_PWRKEY=m
-# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
-# CONFIG_INPUT_DA7280_HAPTICS is not set
-# CONFIG_INPUT_DA9052_ONKEY is not set
-# CONFIG_INPUT_ADXL34X is not set
-# CONFIG_INPUT_IMS_PCU is not set
-# CONFIG_INPUT_IQS269A is not set
-# CONFIG_INPUT_IQS626A is not set
-# CONFIG_INPUT_CMA3000 is not set
-CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
-# CONFIG_INPUT_DRV260X_HAPTICS is not set
-# CONFIG_INPUT_DRV2665_HAPTICS is not set
-# CONFIG_INPUT_DRV2667_HAPTICS is not set
-CONFIG_RMI4_CORE=m
-# CONFIG_RMI4_I2C is not set
-# CONFIG_RMI4_SPI is not set
-# CONFIG_RMI4_SMB is not set
-CONFIG_RMI4_F03=y
-CONFIG_RMI4_F03_SERIO=m
-CONFIG_RMI4_2D_SENSOR=y
-CONFIG_RMI4_F11=y
-CONFIG_RMI4_F12=y
-CONFIG_RMI4_F30=y
-# CONFIG_RMI4_F34 is not set
-CONFIG_RMI4_F3A=y
-# CONFIG_RMI4_F54 is not set
-# CONFIG_RMI4_F55 is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_SERPORT=y
-# CONFIG_SERIO_PARKBD is not set
-CONFIG_SERIO_AMBAKMI=m
-# CONFIG_SERIO_PCIPS2 is not set
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-CONFIG_SERIO_ALTERA_PS2=m
-# CONFIG_SERIO_PS2MULT is not set
-# CONFIG_SERIO_ARC_PS2 is not set
-# CONFIG_SERIO_APBPS2 is not set
-CONFIG_SERIO_SUN4I_PS2=m
-CONFIG_SERIO_GPIO_PS2=m
-# CONFIG_USERIO is not set
-# CONFIG_GAMEPORT is not set
-# end of Hardware I/O ports
-# end of Input device support
-
-#
-# Character devices
-#
-CONFIG_TTY=y
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_VT_CONSOLE_SLEEP=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_LDISC_AUTOLOAD=y
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_EARLYCON=y
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
-CONFIG_SERIAL_8250_16550A_VARIANTS=y
-# CONFIG_SERIAL_8250_FINTEK is not set
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_DMA=y
-CONFIG_SERIAL_8250_PCI=y
-CONFIG_SERIAL_8250_EXAR=y
-CONFIG_SERIAL_8250_NR_UARTS=4
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-# CONFIG_SERIAL_8250_EXTENDED is not set
-# CONFIG_SERIAL_8250_ASPEED_VUART is not set
-CONFIG_SERIAL_8250_DWLIB=y
-CONFIG_SERIAL_8250_FSL=y
-CONFIG_SERIAL_8250_DW=y
-# CONFIG_SERIAL_8250_EM is not set
-# CONFIG_SERIAL_8250_RT288X is not set
-# CONFIG_SERIAL_8250_OMAP is not set
-CONFIG_SERIAL_8250_TEGRA=y
-CONFIG_SERIAL_OF_PLATFORM=y
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_AMBA_PL010=y
-CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
-CONFIG_SERIAL_AMBA_PL011=y
-CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
-# CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set
-CONFIG_SERIAL_SAMSUNG=y
-CONFIG_SERIAL_SAMSUNG_UARTS_4=y
-CONFIG_SERIAL_SAMSUNG_UARTS=4
-CONFIG_SERIAL_SAMSUNG_CONSOLE=y
-CONFIG_SERIAL_TEGRA=y
-# CONFIG_SERIAL_MAX3100 is not set
-# CONFIG_SERIAL_MAX310X is not set
-CONFIG_SERIAL_IMX=y
-CONFIG_SERIAL_IMX_CONSOLE=y
-CONFIG_SERIAL_IMX_EARLYCON=y
-# CONFIG_SERIAL_UARTLITE is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-CONFIG_SERIAL_VT8500=y
-CONFIG_SERIAL_VT8500_CONSOLE=y
-CONFIG_SERIAL_OMAP=y
-CONFIG_SERIAL_OMAP_CONSOLE=y
-# CONFIG_SERIAL_SIFIVE is not set
-# CONFIG_SERIAL_SCCNXP is not set
-# CONFIG_SERIAL_SC16IS7XX is not set
-# CONFIG_SERIAL_BCM63XX is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_XILINX_PS_UART is not set
-CONFIG_SERIAL_ARC=y
-CONFIG_SERIAL_ARC_CONSOLE=y
-CONFIG_SERIAL_ARC_NR_PORTS=1
-CONFIG_SERIAL_RP2=m
-CONFIG_SERIAL_RP2_NR_UARTS=32
-# CONFIG_SERIAL_FSL_LPUART is not set
-# CONFIG_SERIAL_FSL_LINFLEXUART is not set
-# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
-# CONFIG_SERIAL_ST_ASC is not set
-# CONFIG_SERIAL_SPRD is not set
-# CONFIG_SERIAL_MVEBU_UART is not set
-# end of Serial drivers
-
-CONFIG_SERIAL_MCTRL_GPIO=y
-# CONFIG_SERIAL_NONSTANDARD is not set
-CONFIG_N_GSM=m
-CONFIG_NOZOMI=m
-CONFIG_NULL_TTY=m
-CONFIG_HVC_DRIVER=y
-CONFIG_HVC_IRQ=y
-CONFIG_HVC_XEN=y
-CONFIG_HVC_XEN_FRONTEND=y
-# CONFIG_HVC_DCC is not set
-# CONFIG_SERIAL_DEV_BUS is not set
-CONFIG_TTY_PRINTK=m
-CONFIG_TTY_PRINTK_LEVEL=6
-# CONFIG_PRINTER is not set
-# CONFIG_PPDEV is not set
-CONFIG_VIRTIO_CONSOLE=m
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_IPMB_DEVICE_INTERFACE=m
-CONFIG_HW_RANDOM=m
-# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-CONFIG_HW_RANDOM_BA431=m
-CONFIG_HW_RANDOM_BCM2835=m
-CONFIG_HW_RANDOM_IPROC_RNG200=m
-CONFIG_HW_RANDOM_OMAP=m
-CONFIG_HW_RANDOM_OMAP3_ROM=m
-CONFIG_HW_RANDOM_VIRTIO=m
-CONFIG_HW_RANDOM_EXYNOS=m
-CONFIG_HW_RANDOM_CCTRNG=m
-CONFIG_HW_RANDOM_XIPHERA=m
-# CONFIG_APPLICOM is not set
-CONFIG_DEVMEM=y
-# CONFIG_RAW_DRIVER is not set
-CONFIG_DEVPORT=y
-CONFIG_TCG_TPM=y
-# CONFIG_TCG_TIS is not set
-# CONFIG_TCG_TIS_SPI is not set
-CONFIG_TCG_TIS_I2C_CR50=m
-# CONFIG_TCG_TIS_I2C_ATMEL is not set
-# CONFIG_TCG_TIS_I2C_INFINEON is not set
-# CONFIG_TCG_TIS_I2C_NUVOTON is not set
-# CONFIG_TCG_XEN is not set
-# CONFIG_TCG_VTPM_PROXY is not set
-# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
-# CONFIG_TCG_TIS_ST33ZP24_SPI is not set
-# CONFIG_XILLYBUS is not set
-# end of Character devices
-
-# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_MUX=y
-
-#
-# Multiplexer I2C Chip support
-#
-CONFIG_I2C_ARB_GPIO_CHALLENGE=m
-# CONFIG_I2C_MUX_GPIO is not set
-# CONFIG_I2C_MUX_GPMUX is not set
-# CONFIG_I2C_MUX_LTC4306 is not set
-# CONFIG_I2C_MUX_PCA9541 is not set
-CONFIG_I2C_MUX_PCA954x=m
-# CONFIG_I2C_MUX_PINCTRL is not set
-# CONFIG_I2C_MUX_REG is not set
-# CONFIG_I2C_DEMUX_PINCTRL is not set
-# CONFIG_I2C_MUX_MLXCPLD is not set
-# end of Multiplexer I2C Chip support
-
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_SMBUS=m
-CONFIG_I2C_ALGOBIT=y
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# PC SMBus host controller drivers
-#
-# CONFIG_I2C_ALI1535 is not set
-# CONFIG_I2C_ALI1563 is not set
-# CONFIG_I2C_ALI15X3 is not set
-# CONFIG_I2C_AMD756 is not set
-# CONFIG_I2C_AMD8111 is not set
-# CONFIG_I2C_I801 is not set
-CONFIG_I2C_ISCH=m
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_NVIDIA_GPU is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-CONFIG_I2C_ALTERA=m
-CONFIG_I2C_BCM2835=m
-CONFIG_I2C_BRCMSTB=m
-# CONFIG_I2C_CBUS_GPIO is not set
-# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
-# CONFIG_I2C_DESIGNWARE_PCI is not set
-# CONFIG_I2C_EMEV2 is not set
-CONFIG_I2C_EXYNOS5=m
-CONFIG_I2C_GPIO=y
-# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
-CONFIG_I2C_IMX=m
-# CONFIG_I2C_IMX_LPI2C is not set
-CONFIG_I2C_MV64XXX=m
-# CONFIG_I2C_NOMADIK is not set
-CONFIG_I2C_OCORES=m
-CONFIG_I2C_OMAP=y
-CONFIG_I2C_PCA_PLATFORM=m
-# CONFIG_I2C_PXA is not set
-CONFIG_I2C_RK3X=m
-CONFIG_HAVE_S3C2410_I2C=y
-CONFIG_I2C_S3C2410=y
-CONFIG_I2C_SIMTEC=m
-CONFIG_I2C_SUN6I_P2WI=m
-CONFIG_I2C_TEGRA=y
-CONFIG_I2C_VERSATILE=m
-# CONFIG_I2C_WMT is not set
-# CONFIG_I2C_XILINX is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-CONFIG_I2C_DIOLAN_U2C=m
-CONFIG_I2C_CP2615=m
-# CONFIG_I2C_PARPORT is not set
-CONFIG_I2C_ROBOTFUZZ_OSIF=m
-CONFIG_I2C_TAOS_EVM=m
-CONFIG_I2C_TINY_USB=m
-CONFIG_I2C_VIPERBOARD=m
-
-#
-# Other I2C/SMBus bus drivers
-#
-CONFIG_I2C_CROS_EC_TUNNEL=m
-# end of I2C Hardware Bus support
-
-# CONFIG_I2C_STUB is not set
-CONFIG_I2C_SLAVE=y
-CONFIG_I2C_SLAVE_EEPROM=m
-# CONFIG_I2C_SLAVE_TESTUNIT is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# end of I2C support
-
-# CONFIG_I3C is not set
-CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-CONFIG_SPI_MEM=y
-
-#
-# SPI Master Controller Drivers
-#
-# CONFIG_SPI_ALTERA is not set
-# CONFIG_SPI_ARMADA_3700 is not set
-# CONFIG_SPI_AXI_SPI_ENGINE is not set
-CONFIG_SPI_BCM2835=m
-CONFIG_SPI_BCM2835AUX=m
-# CONFIG_SPI_BCM_QSPI is not set
-CONFIG_SPI_BITBANG=y
-CONFIG_SPI_BUTTERFLY=m
-# CONFIG_SPI_CADENCE is not set
-# CONFIG_SPI_CADENCE_QUADSPI is not set
-# CONFIG_SPI_DESIGNWARE is not set
-# CONFIG_SPI_FSL_LPSPI is not set
-# CONFIG_SPI_FSL_QUADSPI is not set
-# CONFIG_SPI_NXP_FLEXSPI is not set
-CONFIG_SPI_GPIO=y
-CONFIG_SPI_IMX=m
-CONFIG_SPI_LM70_LLP=m
-# CONFIG_SPI_FSL_SPI is not set
-# CONFIG_SPI_OC_TINY is not set
-CONFIG_SPI_OMAP24XX=m
-CONFIG_SPI_TI_QSPI=m
-CONFIG_SPI_ORION=m
-CONFIG_SPI_PL022=m
-# CONFIG_SPI_PXA2XX is not set
-CONFIG_SPI_ROCKCHIP=m
-# CONFIG_SPI_S3C64XX is not set
-# CONFIG_SPI_SC18IS602 is not set
-# CONFIG_SPI_SIFIVE is not set
-CONFIG_SPI_SUN4I=m
-CONFIG_SPI_SUN6I=m
-CONFIG_SPI_MXIC=m
-# CONFIG_SPI_TEGRA210_QUAD is not set
-CONFIG_SPI_TEGRA114=m
-CONFIG_SPI_TEGRA20_SFLASH=m
-# CONFIG_SPI_TEGRA20_SLINK is not set
-# CONFIG_SPI_XCOMM is not set
-# CONFIG_SPI_XILINX is not set
-# CONFIG_SPI_ZYNQMP_GQSPI is not set
-# CONFIG_SPI_AMD is not set
-
-#
-# SPI Multiplexer support
-#
-CONFIG_SPI_MUX=m
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_SPIDEV=y
-# CONFIG_SPI_LOOPBACK_TEST is not set
-# CONFIG_SPI_TLE62X0 is not set
-# CONFIG_SPI_SLAVE is not set
-CONFIG_SPI_DYNAMIC=y
-# CONFIG_SPMI is not set
-CONFIG_HSI=m
-CONFIG_HSI_BOARDINFO=y
-
-#
-# HSI controllers
-#
-CONFIG_OMAP_SSI=m
-
-#
-# HSI clients
-#
-CONFIG_NOKIA_MODEM=m
-CONFIG_CMT_SPEECH=m
-CONFIG_SSI_PROTOCOL=m
-# CONFIG_HSI_CHAR is not set
-CONFIG_PPS=y
-# CONFIG_PPS_DEBUG is not set
-
-#
-# PPS clients support
-#
-# CONFIG_PPS_CLIENT_KTIMER is not set
-CONFIG_PPS_CLIENT_LDISC=m
-CONFIG_PPS_CLIENT_PARPORT=m
-# CONFIG_PPS_CLIENT_GPIO is not set
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-CONFIG_PTP_1588_CLOCK=y
-CONFIG_PTP_1588_CLOCK_QORIQ=m
-
-#
-# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
-#
-CONFIG_PTP_1588_CLOCK_KVM=m
-CONFIG_PTP_1588_CLOCK_IDT82P33=m
-CONFIG_PTP_1588_CLOCK_IDTCM=m
-CONFIG_PTP_1588_CLOCK_OCP=m
-# end of PTP clock support
-
-CONFIG_PINCTRL=y
-CONFIG_GENERIC_PINCTRL_GROUPS=y
-CONFIG_PINMUX=y
-CONFIG_GENERIC_PINMUX_FUNCTIONS=y
-CONFIG_PINCONF=y
-CONFIG_GENERIC_PINCONF=y
-# CONFIG_DEBUG_PINCTRL is not set
-CONFIG_PINCTRL_AS3722=y
-CONFIG_PINCTRL_AXP209=m
-CONFIG_PINCTRL_MCP23S08_I2C=m
-CONFIG_PINCTRL_MCP23S08_SPI=m
-CONFIG_PINCTRL_MCP23S08=m
-CONFIG_PINCTRL_ROCKCHIP=y
-CONFIG_PINCTRL_SINGLE=y
-# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_STMFX is not set
-CONFIG_PINCTRL_PALMAS=y
-CONFIG_PINCTRL_RK805=m
-# CONFIG_PINCTRL_OCELOT is not set
-# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set
-CONFIG_PINCTRL_BCM2835=y
-CONFIG_PINCTRL_IMX=y
-CONFIG_PINCTRL_IMX51=y
-CONFIG_PINCTRL_IMX53=y
-CONFIG_PINCTRL_IMX6Q=y
-CONFIG_PINCTRL_IMX8MM=y
-CONFIG_PINCTRL_IMX8MN=y
-CONFIG_PINCTRL_IMX8MP=y
-CONFIG_PINCTRL_IMX8MQ=y
-CONFIG_PINCTRL_MVEBU=y
-CONFIG_PINCTRL_ARMADA_370=y
-CONFIG_PINCTRL_ARMADA_375=y
-CONFIG_PINCTRL_ARMADA_38X=y
-CONFIG_PINCTRL_ARMADA_39X=y
-CONFIG_PINCTRL_ARMADA_XP=y
-
-#
-# Renesas pinctrl drivers
-#
-# end of Renesas pinctrl drivers
-
-CONFIG_PINCTRL_SAMSUNG=y
-CONFIG_PINCTRL_EXYNOS=y
-CONFIG_PINCTRL_EXYNOS_ARM=y
-CONFIG_PINCTRL_SUNXI=y
-CONFIG_PINCTRL_SUN4I_A10=y
-CONFIG_PINCTRL_SUN5I=y
-CONFIG_PINCTRL_SUN6I_A31=y
-CONFIG_PINCTRL_SUN6I_A31_R=y
-CONFIG_PINCTRL_SUN8I_A23=y
-CONFIG_PINCTRL_SUN8I_A33=y
-CONFIG_PINCTRL_SUN8I_A83T=y
-CONFIG_PINCTRL_SUN8I_A83T_R=y
-CONFIG_PINCTRL_SUN8I_A23_R=y
-CONFIG_PINCTRL_SUN8I_H3=y
-CONFIG_PINCTRL_SUN8I_H3_R=y
-CONFIG_PINCTRL_SUN8I_V3S=y
-CONFIG_PINCTRL_SUN9I_A80=y
-CONFIG_PINCTRL_SUN9I_A80_R=y
-# CONFIG_PINCTRL_SUN50I_A64 is not set
-# CONFIG_PINCTRL_SUN50I_A64_R is not set
-# CONFIG_PINCTRL_SUN50I_A100 is not set
-# CONFIG_PINCTRL_SUN50I_A100_R is not set
-# CONFIG_PINCTRL_SUN50I_H5 is not set
-# CONFIG_PINCTRL_SUN50I_H6 is not set
-# CONFIG_PINCTRL_SUN50I_H6_R is not set
-# CONFIG_PINCTRL_SUN50I_H616 is not set
-# CONFIG_PINCTRL_SUN50I_H616_R is not set
-CONFIG_PINCTRL_TEGRA=y
-CONFIG_PINCTRL_TEGRA124=y
-CONFIG_PINCTRL_TEGRA_XUSB=y
-CONFIG_PINCTRL_TI_IODELAY=y
-CONFIG_PINCTRL_WMT=y
-CONFIG_PINCTRL_WM8850=y
-CONFIG_PINCTRL_MADERA=m
-CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
-CONFIG_GPIOLIB=y
-CONFIG_GPIOLIB_FASTPATH_LIMIT=512
-CONFIG_OF_GPIO=y
-CONFIG_GPIOLIB_IRQCHIP=y
-# CONFIG_DEBUG_GPIO is not set
-CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_CDEV=y
-CONFIG_GPIO_CDEV_V1=y
-CONFIG_GPIO_GENERIC=y
-
-#
-# Memory mapped GPIO drivers
-#
-# CONFIG_GPIO_74XX_MMIO is not set
-# CONFIG_GPIO_ALTERA is not set
-CONFIG_GPIO_RASPBERRYPI_EXP=m
-CONFIG_GPIO_CADENCE=m
-# CONFIG_GPIO_DWAPB is not set
-# CONFIG_GPIO_EXAR is not set
-# CONFIG_GPIO_FTGPIO010 is not set
-CONFIG_GPIO_GENERIC_PLATFORM=y
-# CONFIG_GPIO_GRGPIO is not set
-# CONFIG_GPIO_HLWD is not set
-CONFIG_GPIO_LOGICVC=m
-CONFIG_GPIO_MB86S7X=m
-# CONFIG_GPIO_MPC8XXX is not set
-CONFIG_GPIO_MVEBU=y
-CONFIG_GPIO_MXC=y
-CONFIG_GPIO_OMAP=y
-CONFIG_GPIO_PL061=y
-# CONFIG_GPIO_SAMA5D2_PIOBU is not set
-CONFIG_GPIO_SIFIVE=y
-# CONFIG_GPIO_SYSCON is not set
-CONFIG_GPIO_TEGRA=y
-# CONFIG_GPIO_TS4800 is not set
-CONFIG_GPIO_XILINX=m
-# CONFIG_GPIO_ZEVIO is not set
-# CONFIG_GPIO_AMD_FCH is not set
-CONFIG_GPIO_MSC313=y
-# end of Memory mapped GPIO drivers
-
-#
-# I2C GPIO expanders
-#
-# CONFIG_GPIO_ADP5588 is not set
-# CONFIG_GPIO_ADNP is not set
-# CONFIG_GPIO_GW_PLD is not set
-# CONFIG_GPIO_MAX7300 is not set
-# CONFIG_GPIO_MAX732X is not set
-CONFIG_GPIO_PCA953X=m
-CONFIG_GPIO_PCA953X_IRQ=y
-CONFIG_GPIO_PCA9570=m
-CONFIG_GPIO_PCF857X=m
-# CONFIG_GPIO_TPIC2810 is not set
-# CONFIG_GPIO_TS4900 is not set
-# end of I2C GPIO expanders
-
-#
-# MFD GPIO expanders
-#
-CONFIG_GPIO_BD70528=m
-CONFIG_GPIO_BD71815=m
-CONFIG_GPIO_BD71828=m
-CONFIG_GPIO_BD9571MWV=m
-CONFIG_GPIO_DA9052=m
-# CONFIG_HTC_EGPIO is not set
-CONFIG_GPIO_MADERA=m
-CONFIG_GPIO_PALMAS=y
-# CONFIG_GPIO_STMPE is not set
-CONFIG_GPIO_TWL4030=y
-CONFIG_GPIO_TWL6040=y
-# end of MFD GPIO expanders
-
-#
-# PCI GPIO expanders
-#
-# CONFIG_GPIO_PCI_IDIO_16 is not set
-# CONFIG_GPIO_PCIE_IDIO_24 is not set
-# CONFIG_GPIO_RDC321X is not set
-# end of PCI GPIO expanders
-
-#
-# SPI GPIO expanders
-#
-# CONFIG_GPIO_74X164 is not set
-CONFIG_GPIO_MAX3191X=m
-# CONFIG_GPIO_MAX7301 is not set
-# CONFIG_GPIO_MC33880 is not set
-# CONFIG_GPIO_PISOSR is not set
-# CONFIG_GPIO_XRA1403 is not set
-# end of SPI GPIO expanders
-
-#
-# USB GPIO expanders
-#
-CONFIG_GPIO_VIPERBOARD=m
-# end of USB GPIO expanders
-
-#
-# Virtual GPIO drivers
-#
-CONFIG_GPIO_AGGREGATOR=m
-# CONFIG_GPIO_MOCKUP is not set
-# end of Virtual GPIO drivers
-
-CONFIG_W1=m
-CONFIG_W1_CON=y
-
-#
-# 1-wire Bus Masters
-#
-# CONFIG_W1_MASTER_MATROX is not set
-CONFIG_W1_MASTER_DS2490=m
-CONFIG_W1_MASTER_DS2482=m
-# CONFIG_W1_MASTER_MXC is not set
-# CONFIG_W1_MASTER_DS1WM is not set
-CONFIG_W1_MASTER_GPIO=m
-CONFIG_HDQ_MASTER_OMAP=m
-# CONFIG_W1_MASTER_SGI is not set
-# end of 1-wire Bus Masters
-
-#
-# 1-wire Slaves
-#
-CONFIG_W1_SLAVE_THERM=m
-CONFIG_W1_SLAVE_SMEM=m
-# CONFIG_W1_SLAVE_DS2405 is not set
-# CONFIG_W1_SLAVE_DS2408 is not set
-# CONFIG_W1_SLAVE_DS2413 is not set
-# CONFIG_W1_SLAVE_DS2406 is not set
-# CONFIG_W1_SLAVE_DS2423 is not set
-CONFIG_W1_SLAVE_DS2805=m
-CONFIG_W1_SLAVE_DS2430=m
-CONFIG_W1_SLAVE_DS2431=m
-CONFIG_W1_SLAVE_DS2433=m
-# CONFIG_W1_SLAVE_DS2433_CRC is not set
-# CONFIG_W1_SLAVE_DS2438 is not set
-# CONFIG_W1_SLAVE_DS250X is not set
-# CONFIG_W1_SLAVE_DS2780 is not set
-# CONFIG_W1_SLAVE_DS2781 is not set
-# CONFIG_W1_SLAVE_DS28E04 is not set
-CONFIG_W1_SLAVE_DS28E17=m
-# end of 1-wire Slaves
-
-CONFIG_POWER_RESET=y
-CONFIG_POWER_RESET_AS3722=y
-# CONFIG_POWER_RESET_BRCMKONA is not set
-# CONFIG_POWER_RESET_BRCMSTB is not set
-CONFIG_POWER_RESET_GPIO=y
-CONFIG_POWER_RESET_GPIO_RESTART=y
-# CONFIG_POWER_RESET_LINKSTATION is not set
-# CONFIG_POWER_RESET_LTC2952 is not set
-# CONFIG_POWER_RESET_QNAP is not set
-CONFIG_POWER_RESET_REGULATOR=y
-CONFIG_POWER_RESET_RESTART=y
-# CONFIG_POWER_RESET_VERSATILE is not set
-CONFIG_POWER_RESET_VEXPRESS=y
-CONFIG_POWER_RESET_SYSCON=y
-CONFIG_POWER_RESET_SYSCON_POWEROFF=y
-CONFIG_REBOOT_MODE=m
-# CONFIG_SYSCON_REBOOT_MODE is not set
-CONFIG_NVMEM_REBOOT_MODE=m
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-CONFIG_POWER_SUPPLY_HWMON=y
-# CONFIG_PDA_POWER is not set
-# CONFIG_APM_POWER is not set
-# CONFIG_GENERIC_ADC_BATTERY is not set
-# CONFIG_TEST_POWER is not set
-CONFIG_CHARGER_ADP5061=m
-CONFIG_BATTERY_CW2015=m
-# CONFIG_BATTERY_DS2760 is not set
-# CONFIG_BATTERY_DS2780 is not set
-# CONFIG_BATTERY_DS2781 is not set
-# CONFIG_BATTERY_DS2782 is not set
-CONFIG_BATTERY_SBS=m
-# CONFIG_CHARGER_SBS is not set
-CONFIG_MANAGER_SBS=m
-CONFIG_BATTERY_BQ27XXX=m
-CONFIG_BATTERY_BQ27XXX_I2C=m
-CONFIG_BATTERY_BQ27XXX_HDQ=m
-# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set
-# CONFIG_BATTERY_DA9052 is not set
-CONFIG_CHARGER_AXP20X=m
-CONFIG_BATTERY_AXP20X=m
-CONFIG_AXP20X_POWER=m
-CONFIG_AXP288_FUEL_GAUGE=m
-# CONFIG_BATTERY_MAX17040 is not set
-# CONFIG_BATTERY_MAX17042 is not set
-CONFIG_BATTERY_MAX1721X=m
-CONFIG_BATTERY_TWL4030_MADC=m
-CONFIG_BATTERY_RX51=m
-CONFIG_CHARGER_ISP1704=m
-# CONFIG_CHARGER_MAX8903 is not set
-CONFIG_CHARGER_TWL4030=m
-# CONFIG_CHARGER_LP8727 is not set
-CONFIG_CHARGER_GPIO=m
-# CONFIG_CHARGER_MANAGER is not set
-# CONFIG_CHARGER_LT3651 is not set
-# CONFIG_CHARGER_LTC4162L is not set
-# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
-CONFIG_CHARGER_BQ2415X=m
-# CONFIG_CHARGER_BQ24190 is not set
-# CONFIG_CHARGER_BQ24257 is not set
-# CONFIG_CHARGER_BQ24735 is not set
-# CONFIG_CHARGER_BQ2515X is not set
-# CONFIG_CHARGER_BQ25890 is not set
-# CONFIG_CHARGER_BQ25980 is not set
-# CONFIG_CHARGER_BQ256XX is not set
-# CONFIG_CHARGER_SMB347 is not set
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
-# CONFIG_BATTERY_GOLDFISH is not set
-# CONFIG_CHARGER_RT9455 is not set
-CONFIG_CHARGER_CROS_USBPD=m
-# CONFIG_CHARGER_UCS1002 is not set
-# CONFIG_CHARGER_BD70528 is not set
-CONFIG_CHARGER_BD99954=m
-CONFIG_HWMON=y
-CONFIG_HWMON_VID=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-# CONFIG_SENSORS_AD7314 is not set
-CONFIG_SENSORS_AD7414=m
-CONFIG_SENSORS_AD7418=m
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-CONFIG_SENSORS_ADM1029=m
-# CONFIG_SENSORS_ADM1031 is not set
-CONFIG_SENSORS_ADM1177=m
-CONFIG_SENSORS_ADM9240=m
-# CONFIG_SENSORS_ADT7310 is not set
-# CONFIG_SENSORS_ADT7410 is not set
-CONFIG_SENSORS_ADT7411=m
-CONFIG_SENSORS_ADT7462=m
-CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7475=m
-CONFIG_SENSORS_AHT10=m
-# CONFIG_SENSORS_AS370 is not set
-CONFIG_SENSORS_ASC7621=m
-CONFIG_SENSORS_AXI_FAN_CONTROL=m
-CONFIG_SENSORS_ARM_SCMI=m
-# CONFIG_SENSORS_ASPEED is not set
-CONFIG_SENSORS_ATXP1=m
-CONFIG_SENSORS_CORSAIR_CPRO=m
-CONFIG_SENSORS_CORSAIR_PSU=m
-CONFIG_SENSORS_DRIVETEMP=m
-CONFIG_SENSORS_DS620=m
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_DA9052_ADC is not set
-CONFIG_SENSORS_I5K_AMB=m
-# CONFIG_SENSORS_F71805F is not set
-CONFIG_SENSORS_F71882FG=m
-CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_MC13783_ADC=m
-CONFIG_SENSORS_FTSTEUTATES=m
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-CONFIG_SENSORS_G760A=m
-CONFIG_SENSORS_G762=m
-CONFIG_SENSORS_GPIO_FAN=m
-# CONFIG_SENSORS_HIH6130 is not set
-# CONFIG_SENSORS_IIO_HWMON is not set
-# CONFIG_SENSORS_IT87 is not set
-CONFIG_SENSORS_JC42=m
-# CONFIG_SENSORS_POWR1220 is not set
-CONFIG_SENSORS_LINEAGE=m
-# CONFIG_SENSORS_LTC2945 is not set
-CONFIG_SENSORS_LTC2947=m
-CONFIG_SENSORS_LTC2947_I2C=m
-CONFIG_SENSORS_LTC2947_SPI=m
-# CONFIG_SENSORS_LTC2990 is not set
-# CONFIG_SENSORS_LTC2992 is not set
-CONFIG_SENSORS_LTC4151=m
-CONFIG_SENSORS_LTC4215=m
-# CONFIG_SENSORS_LTC4222 is not set
-CONFIG_SENSORS_LTC4245=m
-# CONFIG_SENSORS_LTC4260 is not set
-CONFIG_SENSORS_LTC4261=m
-CONFIG_SENSORS_MAX1111=m
-CONFIG_SENSORS_MAX127=m
-CONFIG_SENSORS_MAX16065=m
-# CONFIG_SENSORS_MAX1619 is not set
-CONFIG_SENSORS_MAX1668=m
-# CONFIG_SENSORS_MAX197 is not set
-# CONFIG_SENSORS_MAX31722 is not set
-CONFIG_SENSORS_MAX31730=m
-CONFIG_SENSORS_MAX6621=m
-CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
-CONFIG_SENSORS_MAX6650=m
-# CONFIG_SENSORS_MAX6697 is not set
-# CONFIG_SENSORS_MAX31790 is not set
-# CONFIG_SENSORS_MCP3021 is not set
-# CONFIG_SENSORS_TC654 is not set
-# CONFIG_SENSORS_TPS23861 is not set
-# CONFIG_SENSORS_MR75203 is not set
-CONFIG_SENSORS_ADCXX=m
-# CONFIG_SENSORS_LM63 is not set
-CONFIG_SENSORS_LM70=m
-CONFIG_SENSORS_LM73=m
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-CONFIG_SENSORS_LM93=m
-# CONFIG_SENSORS_LM95234 is not set
-CONFIG_SENSORS_LM95241=m
-CONFIG_SENSORS_LM95245=m
-# CONFIG_SENSORS_PC87360 is not set
-CONFIG_SENSORS_PC87427=m
-CONFIG_SENSORS_NTC_THERMISTOR=m
-CONFIG_SENSORS_NCT6683=m
-CONFIG_SENSORS_NCT6775=m
-# CONFIG_SENSORS_NCT7802 is not set
-# CONFIG_SENSORS_NCT7904 is not set
-# CONFIG_SENSORS_NPCM7XX is not set
-# CONFIG_SENSORS_NZXT_KRAKEN2 is not set
-# CONFIG_SENSORS_OCC_P8_I2C is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_PMBUS is not set
-CONFIG_SENSORS_PWM_FAN=m
-CONFIG_SENSORS_RASPBERRYPI_HWMON=m
-CONFIG_SENSORS_SBTSI=m
-# CONFIG_SENSORS_SHT15 is not set
-CONFIG_SENSORS_SHT21=m
-# CONFIG_SENSORS_SHT3x is not set
-# CONFIG_SENSORS_SHTC1 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-CONFIG_SENSORS_DME1737=m
-CONFIG_SENSORS_EMC1403=m
-CONFIG_SENSORS_EMC2103=m
-CONFIG_SENSORS_EMC6W201=m
-# CONFIG_SENSORS_SMSC47M1 is not set
-CONFIG_SENSORS_SMSC47M192=m
-# CONFIG_SENSORS_SMSC47B397 is not set
-CONFIG_SENSORS_SCH56XX_COMMON=m
-CONFIG_SENSORS_SCH5627=m
-# CONFIG_SENSORS_SCH5636 is not set
-# CONFIG_SENSORS_STTS751 is not set
-CONFIG_SENSORS_SMM665=m
-# CONFIG_SENSORS_ADC128D818 is not set
-CONFIG_SENSORS_ADS7828=m
-CONFIG_SENSORS_ADS7871=m
-CONFIG_SENSORS_AMC6821=m
-# CONFIG_SENSORS_INA209 is not set
-# CONFIG_SENSORS_INA2XX is not set
-# CONFIG_SENSORS_INA3221 is not set
-# CONFIG_SENSORS_TC74 is not set
-CONFIG_SENSORS_THMC50=m
-CONFIG_SENSORS_TMP102=m
-# CONFIG_SENSORS_TMP103 is not set
-# CONFIG_SENSORS_TMP108 is not set
-CONFIG_SENSORS_TMP401=m
-CONFIG_SENSORS_TMP421=m
-CONFIG_SENSORS_TMP513=m
-# CONFIG_SENSORS_VEXPRESS is not set
-# CONFIG_SENSORS_VIA686A is not set
-CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_VT8231=m
-CONFIG_SENSORS_W83773G=m
-# CONFIG_SENSORS_W83781D is not set
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83795=m
-# CONFIG_SENSORS_W83795_FANCTRL is not set
-# CONFIG_SENSORS_W83L785TS is not set
-CONFIG_SENSORS_W83L786NG=m
-# CONFIG_SENSORS_W83627HF is not set
-CONFIG_SENSORS_W83627EHF=m
-CONFIG_THERMAL=y
-CONFIG_THERMAL_NETLINK=y
-# CONFIG_THERMAL_STATISTICS is not set
-CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
-CONFIG_THERMAL_HWMON=y
-CONFIG_THERMAL_OF=y
-# CONFIG_THERMAL_WRITABLE_TRIPS is not set
-CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
-# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
-# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
-CONFIG_THERMAL_GOV_FAIR_SHARE=y
-CONFIG_THERMAL_GOV_STEP_WISE=y
-# CONFIG_THERMAL_GOV_BANG_BANG is not set
-# CONFIG_THERMAL_GOV_USER_SPACE is not set
-# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
-CONFIG_CPU_THERMAL=y
-CONFIG_CPU_FREQ_THERMAL=y
-# CONFIG_DEVFREQ_THERMAL is not set
-# CONFIG_THERMAL_EMULATION is not set
-# CONFIG_THERMAL_MMIO is not set
-# CONFIG_IMX_THERMAL is not set
-CONFIG_IMX8MM_THERMAL=m
-CONFIG_SUN8I_THERMAL=m
-CONFIG_ROCKCHIP_THERMAL=m
-CONFIG_ARMADA_THERMAL=y
-
-#
-# Broadcom thermal drivers
-#
-CONFIG_BCM2711_THERMAL=m
-CONFIG_BCM2835_THERMAL=m
-# end of Broadcom thermal drivers
-
-#
-# Texas Instruments thermal drivers
-#
-CONFIG_TI_SOC_THERMAL=m
-CONFIG_TI_THERMAL=y
-# CONFIG_OMAP3_THERMAL is not set
-CONFIG_OMAP4_THERMAL=y
-CONFIG_OMAP5_THERMAL=y
-CONFIG_DRA752_THERMAL=y
-# end of Texas Instruments thermal drivers
-
-#
-# Samsung thermal drivers
-#
-CONFIG_EXYNOS_THERMAL=y
-# end of Samsung thermal drivers
-
-#
-# NVIDIA Tegra thermal drivers
-#
-CONFIG_TEGRA_SOCTHERM=y
-# end of NVIDIA Tegra thermal drivers
-
-# CONFIG_GENERIC_ADC_THERMAL is not set
-CONFIG_KHADAS_MCU_FAN_THERMAL=m
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_CORE=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
-CONFIG_WATCHDOG_OPEN_TIMEOUT=0
-CONFIG_WATCHDOG_SYSFS=y
-
-#
-# Watchdog Pretimeout Governors
-#
-# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set
-
-#
-# Watchdog Device Drivers
-#
-CONFIG_SOFT_WATCHDOG=m
-CONFIG_BD70528_WATCHDOG=m
-CONFIG_BD957XMUF_WATCHDOG=m
-CONFIG_DA9052_WATCHDOG=m
-# CONFIG_GPIO_WATCHDOG is not set
-# CONFIG_XILINX_WATCHDOG is not set
-# CONFIG_ZIIRAVE_WATCHDOG is not set
-CONFIG_ARM_SP805_WATCHDOG=m
-# CONFIG_ARMADA_37XX_WATCHDOG is not set
-# CONFIG_CADENCE_WATCHDOG is not set
-CONFIG_FTWDT010_WATCHDOG=m
-CONFIG_S3C2410_WATCHDOG=m
-CONFIG_DW_WATCHDOG=m
-CONFIG_OMAP_WATCHDOG=m
-CONFIG_ORION_WATCHDOG=m
-CONFIG_SUNXI_WATCHDOG=m
-CONFIG_TWL4030_WATCHDOG=m
-# CONFIG_TS4800_WATCHDOG is not set
-# CONFIG_MAX63XX_WATCHDOG is not set
-CONFIG_IMX2_WDT=m
-CONFIG_IMX7ULP_WDT=m
-CONFIG_TEGRA_WATCHDOG=m
-CONFIG_ARM_SMC_WATCHDOG=m
-CONFIG_RTD119X_WATCHDOG=y
-# CONFIG_ALIM7101_WDT is not set
-# CONFIG_I6300ESB_WDT is not set
-CONFIG_BCM2835_WDT=m
-# CONFIG_MEN_A21_WDT is not set
-CONFIG_XEN_WDT=m
-
-#
-# PCI-based Watchdog Cards
-#
-# CONFIG_PCIPCWATCHDOG is not set
-# CONFIG_WDTPCI is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-CONFIG_SSB=m
-CONFIG_SSB_SPROM=y
-CONFIG_SSB_BLOCKIO=y
-CONFIG_SSB_PCIHOST_POSSIBLE=y
-CONFIG_SSB_PCIHOST=y
-CONFIG_SSB_B43_PCI_BRIDGE=y
-CONFIG_SSB_SDIOHOST_POSSIBLE=y
-CONFIG_SSB_SDIOHOST=y
-CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
-CONFIG_SSB_DRIVER_PCICORE=y
-# CONFIG_SSB_DRIVER_GPIO is not set
-CONFIG_BCMA_POSSIBLE=y
-CONFIG_BCMA=m
-CONFIG_BCMA_BLOCKIO=y
-CONFIG_BCMA_HOST_PCI_POSSIBLE=y
-CONFIG_BCMA_HOST_PCI=y
-# CONFIG_BCMA_HOST_SOC is not set
-CONFIG_BCMA_DRIVER_PCI=y
-# CONFIG_BCMA_DRIVER_GMAC_CMN is not set
-# CONFIG_BCMA_DRIVER_GPIO is not set
-# CONFIG_BCMA_DEBUG is not set
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=y
-# CONFIG_MFD_ALTERA_A10SR is not set
-# CONFIG_MFD_ALTERA_SYSMGR is not set
-# CONFIG_MFD_ACT8945A is not set
-# CONFIG_MFD_SUN4I_GPADC is not set
-# CONFIG_MFD_AS3711 is not set
-CONFIG_MFD_AS3722=y
-# CONFIG_PMIC_ADP5520 is not set
-# CONFIG_MFD_AAT2870_CORE is not set
-# CONFIG_MFD_ATMEL_FLEXCOM is not set
-# CONFIG_MFD_ATMEL_HLCDC is not set
-# CONFIG_MFD_BCM590XX is not set
-CONFIG_MFD_BD9571MWV=m
-# CONFIG_MFD_AC100 is not set
-CONFIG_MFD_AXP20X=y
-CONFIG_MFD_AXP20X_I2C=y
-# CONFIG_MFD_AXP20X_RSB is not set
-CONFIG_MFD_CROS_EC_DEV=m
-CONFIG_MFD_MADERA=m
-CONFIG_MFD_MADERA_I2C=m
-CONFIG_MFD_MADERA_SPI=m
-# CONFIG_MFD_CS47L15 is not set
-# CONFIG_MFD_CS47L35 is not set
-# CONFIG_MFD_CS47L85 is not set
-# CONFIG_MFD_CS47L90 is not set
-# CONFIG_MFD_CS47L92 is not set
-# CONFIG_MFD_ASIC3 is not set
-# CONFIG_PMIC_DA903X is not set
-CONFIG_PMIC_DA9052=y
-CONFIG_MFD_DA9052_SPI=y
-CONFIG_MFD_DA9052_I2C=y
-# CONFIG_MFD_DA9055 is not set
-# CONFIG_MFD_DA9062 is not set
-# CONFIG_MFD_DA9063 is not set
-# CONFIG_MFD_DA9150 is not set
-# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
-# CONFIG_MFD_GATEWORKS_GSC is not set
-CONFIG_MFD_MC13XXX=m
-CONFIG_MFD_MC13XXX_SPI=m
-CONFIG_MFD_MC13XXX_I2C=m
-CONFIG_MFD_MP2629=m
-# CONFIG_MFD_HI6421_PMIC is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_HTC_I2CPLD is not set
-# CONFIG_LPC_ICH is not set
-CONFIG_LPC_SCH=m
-# CONFIG_MFD_INTEL_PMT is not set
-CONFIG_MFD_IQS62X=m
-# CONFIG_MFD_JANZ_CMODIO is not set
-# CONFIG_MFD_KEMPLD is not set
-# CONFIG_MFD_88PM800 is not set
-# CONFIG_MFD_88PM805 is not set
-# CONFIG_MFD_88PM860X is not set
-# CONFIG_MFD_MAX14577 is not set
-# CONFIG_MFD_MAX77620 is not set
-# CONFIG_MFD_MAX77650 is not set
-CONFIG_MFD_MAX77686=y
-# CONFIG_MFD_MAX77693 is not set
-# CONFIG_MFD_MAX77843 is not set
-# CONFIG_MFD_MAX8907 is not set
-# CONFIG_MFD_MAX8925 is not set
-# CONFIG_MFD_MAX8997 is not set
-# CONFIG_MFD_MAX8998 is not set
-CONFIG_MFD_MT6360=m
-# CONFIG_MFD_MT6397 is not set
-# CONFIG_MFD_MENF21BMC is not set
-# CONFIG_EZX_PCAP is not set
-# CONFIG_MFD_CPCAP is not set
-CONFIG_MFD_VIPERBOARD=m
-# CONFIG_MFD_NTXEC is not set
-# CONFIG_MFD_RETU is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_UCB1400_CORE is not set
-# CONFIG_MFD_PM8XXX is not set
-# CONFIG_MFD_RDC321X is not set
-# CONFIG_MFD_RT5033 is not set
-# CONFIG_MFD_RC5T583 is not set
-CONFIG_MFD_RK808=y
-# CONFIG_MFD_RN5T618 is not set
-CONFIG_MFD_SEC_CORE=y
-# CONFIG_MFD_SI476X_CORE is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_MFD_SKY81452 is not set
-CONFIG_MFD_STMPE=y
-
-#
-# STMicroelectronics STMPE Interface Drivers
-#
-CONFIG_STMPE_I2C=y
-# CONFIG_STMPE_SPI is not set
-# end of STMicroelectronics STMPE Interface Drivers
-
-CONFIG_MFD_SUN6I_PRCM=y
-CONFIG_MFD_SYSCON=y
-CONFIG_MFD_TI_AM335X_TSCADC=m
-# CONFIG_MFD_LP3943 is not set
-# CONFIG_MFD_LP8788 is not set
-# CONFIG_MFD_TI_LMU is not set
-CONFIG_MFD_OMAP_USB_HOST=y
-CONFIG_MFD_PALMAS=y
-# CONFIG_TPS6105X is not set
-# CONFIG_TPS65010 is not set
-# CONFIG_TPS6507X is not set
-# CONFIG_MFD_TPS65086 is not set
-# CONFIG_MFD_TPS65090 is not set
-# CONFIG_MFD_TPS65217 is not set
-# CONFIG_MFD_TI_LP873X is not set
-# CONFIG_MFD_TI_LP87565 is not set
-# CONFIG_MFD_TPS65218 is not set
-# CONFIG_MFD_TPS6586X is not set
-# CONFIG_MFD_TPS65910 is not set
-# CONFIG_MFD_TPS65912_I2C is not set
-# CONFIG_MFD_TPS65912_SPI is not set
-# CONFIG_MFD_TPS80031 is not set
-CONFIG_TWL4030_CORE=y
-CONFIG_TWL4030_POWER=y
-CONFIG_MFD_TWL4030_AUDIO=y
-CONFIG_TWL6040_CORE=y
-# CONFIG_MFD_WL1273_CORE is not set
-# CONFIG_MFD_LM3533 is not set
-# CONFIG_MFD_TC3589X is not set
-# CONFIG_MFD_T7L66XB is not set
-# CONFIG_MFD_TC6387XB is not set
-# CONFIG_MFD_TC6393XB is not set
-# CONFIG_MFD_TQMX86 is not set
-# CONFIG_MFD_VX855 is not set
-# CONFIG_MFD_LOCHNAGAR is not set
-# CONFIG_MFD_ARIZONA_I2C is not set
-# CONFIG_MFD_ARIZONA_SPI is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X_I2C is not set
-# CONFIG_MFD_WM831X_SPI is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_WM8994 is not set
-CONFIG_MFD_ROHM_BD718XX=m
-CONFIG_MFD_ROHM_BD70528=m
-CONFIG_MFD_ROHM_BD71828=m
-CONFIG_MFD_ROHM_BD957XMUF=m
-# CONFIG_MFD_STPMIC1 is not set
-# CONFIG_MFD_STMFX is not set
-# CONFIG_MFD_ATC260X_I2C is not set
-CONFIG_MFD_KHADAS_MCU=m
-CONFIG_MFD_VEXPRESS_SYSREG=y
-# CONFIG_MFD_INTEL_M10_BMC is not set
-# end of Multifunction device drivers
-
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
-# CONFIG_REGULATOR_88PG86X is not set
-CONFIG_REGULATOR_ACT8865=m
-# CONFIG_REGULATOR_AD5398 is not set
-CONFIG_REGULATOR_ANATOP=m
-CONFIG_REGULATOR_ARIZONA_LDO1=m
-CONFIG_REGULATOR_ARIZONA_MICSUPP=m
-CONFIG_REGULATOR_ARM_SCMI=m
-CONFIG_REGULATOR_AS3722=y
-CONFIG_REGULATOR_AXP20X=m
-CONFIG_REGULATOR_BD70528=m
-CONFIG_REGULATOR_BD71815=m
-CONFIG_REGULATOR_BD71828=m
-CONFIG_REGULATOR_BD718XX=m
-CONFIG_REGULATOR_BD9571MWV=m
-CONFIG_REGULATOR_BD957XMUF=m
-CONFIG_REGULATOR_CROS_EC=m
-CONFIG_REGULATOR_DA9052=m
-CONFIG_REGULATOR_DA9121=m
-# CONFIG_REGULATOR_DA9210 is not set
-# CONFIG_REGULATOR_DA9211 is not set
-CONFIG_REGULATOR_FAN53555=m
-CONFIG_REGULATOR_FAN53880=m
-CONFIG_REGULATOR_GPIO=m
-# CONFIG_REGULATOR_ISL9305 is not set
-# CONFIG_REGULATOR_ISL6271A is not set
-# CONFIG_REGULATOR_LP3971 is not set
-# CONFIG_REGULATOR_LP3972 is not set
-# CONFIG_REGULATOR_LP872X is not set
-# CONFIG_REGULATOR_LP8755 is not set
-# CONFIG_REGULATOR_LTC3589 is not set
-# CONFIG_REGULATOR_LTC3676 is not set
-# CONFIG_REGULATOR_MAX1586 is not set
-# CONFIG_REGULATOR_MAX8649 is not set
-# CONFIG_REGULATOR_MAX8660 is not set
-# CONFIG_REGULATOR_MAX8952 is not set
-# CONFIG_REGULATOR_MAX8973 is not set
-CONFIG_REGULATOR_MAX77686=m
-# CONFIG_REGULATOR_MAX77802 is not set
-# CONFIG_REGULATOR_MAX77826 is not set
-CONFIG_REGULATOR_MC13XXX_CORE=m
-CONFIG_REGULATOR_MC13783=m
-CONFIG_REGULATOR_MC13892=m
-# CONFIG_REGULATOR_MCP16502 is not set
-CONFIG_REGULATOR_MP5416=m
-CONFIG_REGULATOR_MP8859=m
-CONFIG_REGULATOR_MP886X=m
-CONFIG_REGULATOR_MPQ7920=m
-# CONFIG_REGULATOR_MT6311 is not set
-CONFIG_REGULATOR_MT6360=m
-CONFIG_REGULATOR_PALMAS=y
-CONFIG_REGULATOR_PBIAS=m
-CONFIG_REGULATOR_PCA9450=m
-CONFIG_REGULATOR_PF8X00=m
-CONFIG_REGULATOR_PFUZE100=m
-# CONFIG_REGULATOR_PV88060 is not set
-# CONFIG_REGULATOR_PV88080 is not set
-# CONFIG_REGULATOR_PV88090 is not set
-# CONFIG_REGULATOR_PWM is not set
-CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
-CONFIG_REGULATOR_RK808=m
-CONFIG_REGULATOR_ROHM=m
-CONFIG_REGULATOR_RT4801=m
-CONFIG_REGULATOR_RTMV20=m
-CONFIG_REGULATOR_S2MPA01=m
-CONFIG_REGULATOR_S2MPS11=m
-CONFIG_REGULATOR_S5M8767=m
-CONFIG_REGULATOR_SLG51000=m
-CONFIG_REGULATOR_TI_ABB=m
-CONFIG_REGULATOR_SY8106A=m
-CONFIG_REGULATOR_SY8824X=m
-CONFIG_REGULATOR_SY8827N=m
-# CONFIG_REGULATOR_TPS51632 is not set
-# CONFIG_REGULATOR_TPS62360 is not set
-# CONFIG_REGULATOR_TPS65023 is not set
-# CONFIG_REGULATOR_TPS6507X is not set
-# CONFIG_REGULATOR_TPS65132 is not set
-# CONFIG_REGULATOR_TPS6524X is not set
-CONFIG_REGULATOR_TWL4030=y
-# CONFIG_REGULATOR_VCTRL is not set
-CONFIG_REGULATOR_VEXPRESS=m
-CONFIG_RC_CORE=y
-CONFIG_RC_MAP=m
-CONFIG_LIRC=y
-# CONFIG_BPF_LIRC_MODE2 is not set
-CONFIG_RC_DECODERS=y
-CONFIG_IR_NEC_DECODER=m
-CONFIG_IR_RC5_DECODER=m
-CONFIG_IR_RC6_DECODER=m
-CONFIG_IR_JVC_DECODER=m
-CONFIG_IR_SONY_DECODER=m
-CONFIG_IR_SANYO_DECODER=m
-CONFIG_IR_SHARP_DECODER=m
-CONFIG_IR_MCE_KBD_DECODER=m
-CONFIG_IR_XMP_DECODER=m
-CONFIG_IR_IMON_DECODER=m
-CONFIG_IR_RCMM_DECODER=m
-CONFIG_RC_DEVICES=y
-CONFIG_RC_ATI_REMOTE=m
-# CONFIG_IR_HIX5HD2 is not set
-CONFIG_IR_IMON=m
-CONFIG_IR_IMON_RAW=m
-CONFIG_IR_MCEUSB=m
-CONFIG_IR_REDRAT3=m
-# CONFIG_IR_SPI is not set
-CONFIG_IR_STREAMZAP=m
-CONFIG_IR_IGORPLUGUSB=m
-CONFIG_IR_IGUANA=m
-CONFIG_IR_TTUSBIR=m
-# CONFIG_IR_RX51 is not set
-CONFIG_RC_LOOPBACK=m
-CONFIG_IR_GPIO_CIR=m
-CONFIG_IR_GPIO_TX=m
-CONFIG_IR_PWM_TX=m
-CONFIG_IR_SUNXI=m
-# CONFIG_IR_SERIAL is not set
-# CONFIG_IR_SIR is not set
-CONFIG_RC_XBOX_DVD=m
-CONFIG_IR_TOY=m
-CONFIG_CEC_CORE=m
-CONFIG_CEC_NOTIFIER=y
-# CONFIG_MEDIA_CEC_RC is not set
-CONFIG_MEDIA_CEC_SUPPORT=y
-CONFIG_CEC_CH7322=m
-CONFIG_CEC_CROS_EC=m
-CONFIG_CEC_SAMSUNG_S5P=m
-CONFIG_CEC_TEGRA=m
-CONFIG_USB_PULSE8_CEC=m
-CONFIG_USB_RAINSHADOW_CEC=m
-CONFIG_MEDIA_SUPPORT=y
-# CONFIG_MEDIA_SUPPORT_FILTER is not set
-CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
-
-#
-# Media device types
-#
-CONFIG_MEDIA_CAMERA_SUPPORT=y
-CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
-CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
-CONFIG_MEDIA_RADIO_SUPPORT=y
-CONFIG_MEDIA_SDR_SUPPORT=y
-CONFIG_MEDIA_PLATFORM_SUPPORT=y
-CONFIG_MEDIA_TEST_SUPPORT=y
-# end of Media device types
-
-#
-# Media core support
-#
-CONFIG_VIDEO_DEV=y
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_DVB_CORE=y
-# end of Media core support
-
-#
-# Video4Linux options
-#
-CONFIG_VIDEO_V4L2=y
-CONFIG_VIDEO_V4L2_I2C=y
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-CONFIG_VIDEO_TUNER=m
-CONFIG_V4L2_MEM2MEM_DEV=m
-CONFIG_V4L2_FWNODE=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_DMA_SG=m
-CONFIG_VIDEOBUF_VMALLOC=m
-# end of Video4Linux options
-
-#
-# Media controller options
-#
-CONFIG_MEDIA_CONTROLLER_DVB=y
-CONFIG_MEDIA_CONTROLLER_REQUEST_API=y
-
-#
-# Please notice that the enabled Media controller Request API is EXPERIMENTAL
-#
-# end of Media controller options
-
-#
-# Digital TV options
-#
-# CONFIG_DVB_MMAP is not set
-CONFIG_DVB_NET=y
-CONFIG_DVB_MAX_ADAPTERS=8
-CONFIG_DVB_DYNAMIC_MINORS=y
-# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
-# CONFIG_DVB_ULE_DEBUG is not set
-# end of Digital TV options
-
-#
-# Media drivers
-#
-CONFIG_TTPCI_EEPROM=m
-CONFIG_MEDIA_USB_SUPPORT=y
-
-#
-# Webcam devices
-#
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
-CONFIG_USB_GSPCA_BENQ=m
-CONFIG_USB_GSPCA_CONEX=m
-CONFIG_USB_GSPCA_CPIA1=m
-CONFIG_USB_GSPCA_DTCS033=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_USB_GSPCA_JL2005BCD=m
-CONFIG_USB_GSPCA_KINECT=m
-CONFIG_USB_GSPCA_KONICA=m
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_USB_GSPCA_SE401=m
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-CONFIG_USB_GSPCA_SPCA1528=m
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_USB_GSPCA_STK014=m
-CONFIG_USB_GSPCA_STK1135=m
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-CONFIG_USB_GSPCA_TOPRO=m
-CONFIG_USB_GSPCA_TOUPTEK=m
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_VICAM=m
-CONFIG_USB_GSPCA_XIRLINK_CIT=m
-CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_USB_PWC=m
-# CONFIG_USB_PWC_DEBUG is not set
-CONFIG_USB_PWC_INPUT_EVDEV=y
-CONFIG_VIDEO_CPIA2=m
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-CONFIG_VIDEO_USBTV=m
-
-#
-# Analog TV USB devices
-#
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-CONFIG_VIDEO_PVRUSB2_DVB=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-CONFIG_VIDEO_HDPVR=m
-CONFIG_VIDEO_STK1160_COMMON=m
-CONFIG_VIDEO_STK1160=m
-CONFIG_VIDEO_GO7007=m
-CONFIG_VIDEO_GO7007_USB=m
-CONFIG_VIDEO_GO7007_LOADER=m
-CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
-
-#
-# Analog/digital TV USB devices
-#
-CONFIG_VIDEO_AU0828=m
-CONFIG_VIDEO_AU0828_V4L2=y
-CONFIG_VIDEO_AU0828_RC=y
-CONFIG_VIDEO_CX231XX=m
-CONFIG_VIDEO_CX231XX_RC=y
-CONFIG_VIDEO_CX231XX_ALSA=m
-CONFIG_VIDEO_CX231XX_DVB=m
-# CONFIG_VIDEO_TM6000 is not set
-
-#
-# Digital TV USB devices
-#
-CONFIG_DVB_USB=m
-# CONFIG_DVB_USB_DEBUG is not set
-CONFIG_DVB_USB_DIB3000MC=m
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_DVB_USB_CXUSB_ANALOG=y
-CONFIG_DVB_USB_M920X=m
-CONFIG_DVB_USB_DIGITV=m
-CONFIG_DVB_USB_VP7045=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-CONFIG_DVB_USB_PCTV452E=m
-CONFIG_DVB_USB_DW2102=m
-CONFIG_DVB_USB_CINERGY_T2=m
-CONFIG_DVB_USB_DTV5100=m
-CONFIG_DVB_USB_AZ6027=m
-CONFIG_DVB_USB_TECHNISAT_USB2=m
-CONFIG_DVB_USB_V2=m
-CONFIG_DVB_USB_AF9015=m
-CONFIG_DVB_USB_AF9035=m
-CONFIG_DVB_USB_ANYSEE=m
-CONFIG_DVB_USB_AU6610=m
-CONFIG_DVB_USB_AZ6007=m
-CONFIG_DVB_USB_CE6230=m
-CONFIG_DVB_USB_EC168=m
-CONFIG_DVB_USB_GL861=m
-CONFIG_DVB_USB_LME2510=m
-CONFIG_DVB_USB_MXL111SF=m
-CONFIG_DVB_USB_RTL28XXU=m
-CONFIG_DVB_USB_DVBSKY=m
-# CONFIG_DVB_USB_ZD1301 is not set
-CONFIG_DVB_TTUSB_BUDGET=m
-CONFIG_DVB_TTUSB_DEC=m
-CONFIG_SMS_USB_DRV=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
-# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
-CONFIG_DVB_AS102=m
-
-#
-# Webcam, TV (analog/digital) USB devices
-#
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_V4L2=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_EM28XX_DVB=m
-CONFIG_VIDEO_EM28XX_RC=m
-
-#
-# Software defined radio USB devices
-#
-CONFIG_USB_AIRSPY=m
-CONFIG_USB_HACKRF=m
-CONFIG_USB_MSI2500=m
-CONFIG_MEDIA_PCI_SUPPORT=y
-
-#
-# Media capture support
-#
-CONFIG_VIDEO_SOLO6X10=m
-CONFIG_VIDEO_TW5864=m
-CONFIG_VIDEO_TW68=m
-CONFIG_VIDEO_TW686X=m
-
-#
-# Media capture/analog TV support
-#
-CONFIG_VIDEO_IVTV=m
-# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set
-CONFIG_VIDEO_IVTV_ALSA=m
-CONFIG_VIDEO_FB_IVTV=m
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_MXB=m
-CONFIG_VIDEO_DT3155=m
-
-#
-# Media capture/analog/hybrid TV support
-#
-CONFIG_VIDEO_CX18=m
-CONFIG_VIDEO_CX18_ALSA=m
-CONFIG_VIDEO_CX23885=m
-CONFIG_MEDIA_ALTERA_CI=m
-# CONFIG_VIDEO_CX25821 is not set
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_CX88_ALSA=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-CONFIG_VIDEO_CX88_DVB=m
-CONFIG_VIDEO_CX88_ENABLE_VP3054=y
-CONFIG_VIDEO_CX88_VP3054=m
-CONFIG_VIDEO_CX88_MPEG=m
-CONFIG_VIDEO_BT848=m
-CONFIG_DVB_BT8XX=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_ALSA=m
-CONFIG_VIDEO_SAA7134_RC=y
-CONFIG_VIDEO_SAA7134_DVB=m
-# CONFIG_VIDEO_SAA7134_GO7007 is not set
-CONFIG_VIDEO_SAA7164=m
-CONFIG_VIDEO_COBALT=m
-
-#
-# Media digital TV PCI Adapters
-#
-CONFIG_DVB_AV7110_IR=y
-CONFIG_DVB_AV7110=m
-CONFIG_DVB_AV7110_OSD=y
-CONFIG_DVB_BUDGET_CORE=m
-CONFIG_DVB_BUDGET=m
-CONFIG_DVB_BUDGET_CI=m
-CONFIG_DVB_BUDGET_AV=m
-CONFIG_DVB_BUDGET_PATCH=m
-CONFIG_DVB_B2C2_FLEXCOP_PCI=m
-# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set
-CONFIG_DVB_PLUTO2=m
-CONFIG_DVB_DM1105=m
-CONFIG_DVB_PT1=m
-CONFIG_DVB_PT3=m
-CONFIG_MANTIS_CORE=m
-CONFIG_DVB_MANTIS=m
-CONFIG_DVB_HOPPER=m
-CONFIG_DVB_NGENE=m
-CONFIG_DVB_DDBRIDGE=m
-# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set
-CONFIG_DVB_SMIPCIE=m
-CONFIG_DVB_NETUP_UNIDVB=m
-CONFIG_RADIO_ADAPTERS=y
-CONFIG_RADIO_TEA575X=m
-CONFIG_RADIO_SI470X=y
-CONFIG_USB_SI470X=m
-# CONFIG_I2C_SI470X is not set
-CONFIG_RADIO_SI4713=m
-# CONFIG_USB_SI4713 is not set
-# CONFIG_PLATFORM_SI4713 is not set
-CONFIG_I2C_SI4713=m
-CONFIG_USB_MR800=m
-# CONFIG_USB_DSBR is not set
-# CONFIG_RADIO_MAXIRADIO is not set
-CONFIG_RADIO_SHARK=m
-CONFIG_RADIO_SHARK2=m
-CONFIG_USB_KEENE=m
-CONFIG_USB_RAREMONO=m
-CONFIG_USB_MA901=m
-# CONFIG_RADIO_TEA5764 is not set
-# CONFIG_RADIO_SAA7706H is not set
-# CONFIG_RADIO_TEF6862 is not set
-# CONFIG_RADIO_WL1273 is not set
-CONFIG_RADIO_WL128X=m
-CONFIG_MEDIA_COMMON_OPTIONS=y
-
-#
-# common driver options
-#
-CONFIG_VIDEO_CX2341X=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_CYPRESS_FIRMWARE=m
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_V4L2=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_DMA_CONTIG=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-CONFIG_VIDEOBUF2_DMA_SG=m
-CONFIG_VIDEOBUF2_DVB=m
-CONFIG_DVB_B2C2_FLEXCOP=m
-CONFIG_VIDEO_SAA7146=m
-CONFIG_VIDEO_SAA7146_VV=m
-CONFIG_SMS_SIANO_MDTV=m
-CONFIG_SMS_SIANO_RC=y
-# CONFIG_SMS_SIANO_DEBUGFS is not set
-CONFIG_VIDEO_V4L2_TPG=m
-CONFIG_V4L_PLATFORM_DRIVERS=y
-CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_VIDEO_CADENCE=y
-CONFIG_VIDEO_CADENCE_CSI2RX=m
-CONFIG_VIDEO_CADENCE_CSI2TX=m
-CONFIG_VIDEO_ASPEED=m
-# CONFIG_VIDEO_MUX is not set
-CONFIG_VIDEO_OMAP3=m
-# CONFIG_VIDEO_OMAP3_DEBUG is not set
-# CONFIG_VIDEO_ROCKCHIP_ISP1 is not set
-# CONFIG_VIDEO_SAMSUNG_EXYNOS4_IS is not set
-# CONFIG_VIDEO_XILINX is not set
-CONFIG_VIDEO_SUN4I_CSI=m
-CONFIG_VIDEO_SUN6I_CSI=m
-# CONFIG_VIDEO_TI_CAL is not set
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-# CONFIG_VIDEO_CODA is not set
-CONFIG_VIDEO_IMX_PXP=m
-# CONFIG_VIDEO_IMX8_JPEG is not set
-# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set
-# CONFIG_VIDEO_SAMSUNG_S5P_G2D is not set
-# CONFIG_VIDEO_SAMSUNG_S5P_JPEG is not set
-# CONFIG_VIDEO_SAMSUNG_S5P_MFC is not set
-# CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC is not set
-CONFIG_VIDEO_ROCKCHIP_RGA=m
-CONFIG_VIDEO_TI_VPE=m
-# CONFIG_VIDEO_TI_VPE_DEBUG is not set
-CONFIG_VIDEO_SUN8I_DEINTERLACE=m
-CONFIG_VIDEO_SUN8I_ROTATE=m
-CONFIG_VIDEO_TI_VPDMA=m
-CONFIG_VIDEO_TI_SC=m
-CONFIG_VIDEO_TI_CSC=m
-# CONFIG_DVB_PLATFORM_DRIVERS is not set
-# CONFIG_SDR_PLATFORM_DRIVERS is not set
-
-#
-# MMC/SDIO DVB adapters
-#
-CONFIG_SMS_SDIO_DRV=m
-CONFIG_V4L_TEST_DRIVERS=y
-# CONFIG_VIDEO_VIMC is not set
-CONFIG_VIDEO_VIVID=m
-CONFIG_VIDEO_VIVID_CEC=y
-CONFIG_VIDEO_VIVID_MAX_DEVS=64
-# CONFIG_VIDEO_VIM2M is not set
-# CONFIG_VIDEO_VICODEC is not set
-# CONFIG_DVB_TEST_DRIVERS is not set
-
-#
-# FireWire (IEEE 1394) Adapters
-#
-CONFIG_DVB_FIREDTV=m
-CONFIG_DVB_FIREDTV_INPUT=y
-# end of Media drivers
-
-#
-# Media ancillary drivers
-#
-CONFIG_MEDIA_ATTACH=y
-
-#
-# IR I2C driver auto-selected by 'Autoselect ancillary drivers'
-#
-CONFIG_VIDEO_IR_I2C=y
-
-#
-# Audio decoders, processors and mixers
-#
-CONFIG_VIDEO_TVAUDIO=m
-CONFIG_VIDEO_TDA7432=m
-CONFIG_VIDEO_TDA9840=m
-CONFIG_VIDEO_TDA1997X=m
-CONFIG_VIDEO_TEA6415C=m
-CONFIG_VIDEO_TEA6420=m
-CONFIG_VIDEO_MSP3400=m
-CONFIG_VIDEO_CS3308=m
-CONFIG_VIDEO_CS5345=m
-CONFIG_VIDEO_CS53L32A=m
-CONFIG_VIDEO_TLV320AIC23B=m
-CONFIG_VIDEO_UDA1342=m
-CONFIG_VIDEO_WM8775=m
-CONFIG_VIDEO_WM8739=m
-CONFIG_VIDEO_VP27SMPX=m
-CONFIG_VIDEO_SONY_BTF_MPX=m
-# end of Audio decoders, processors and mixers
-
-#
-# RDS decoders
-#
-CONFIG_VIDEO_SAA6588=m
-# end of RDS decoders
-
-#
-# Video decoders
-#
-CONFIG_VIDEO_ADV7180=m
-CONFIG_VIDEO_ADV7183=m
-CONFIG_VIDEO_ADV748X=m
-CONFIG_VIDEO_ADV7604=m
-CONFIG_VIDEO_ADV7604_CEC=y
-CONFIG_VIDEO_ADV7842=m
-CONFIG_VIDEO_ADV7842_CEC=y
-CONFIG_VIDEO_BT819=m
-CONFIG_VIDEO_BT856=m
-CONFIG_VIDEO_BT866=m
-CONFIG_VIDEO_KS0127=m
-CONFIG_VIDEO_ML86V7667=m
-CONFIG_VIDEO_SAA7110=m
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_TC358743=m
-CONFIG_VIDEO_TC358743_CEC=y
-CONFIG_VIDEO_TVP514X=m
-CONFIG_VIDEO_TVP5150=m
-CONFIG_VIDEO_TVP7002=m
-CONFIG_VIDEO_TW2804=m
-CONFIG_VIDEO_TW9903=m
-CONFIG_VIDEO_TW9906=m
-CONFIG_VIDEO_TW9910=m
-CONFIG_VIDEO_VPX3220=m
-CONFIG_VIDEO_MAX9286=m
-
-#
-# Video and audio decoders
-#
-CONFIG_VIDEO_SAA717X=m
-CONFIG_VIDEO_CX25840=m
-# end of Video decoders
-
-#
-# Video encoders
-#
-CONFIG_VIDEO_SAA7127=m
-CONFIG_VIDEO_SAA7185=m
-CONFIG_VIDEO_ADV7170=m
-CONFIG_VIDEO_ADV7175=m
-CONFIG_VIDEO_ADV7343=m
-CONFIG_VIDEO_ADV7393=m
-CONFIG_VIDEO_ADV7511=m
-CONFIG_VIDEO_ADV7511_CEC=y
-CONFIG_VIDEO_AD9389B=m
-CONFIG_VIDEO_AK881X=m
-CONFIG_VIDEO_THS8200=m
-# end of Video encoders
-
-#
-# Video improvement chips
-#
-CONFIG_VIDEO_UPD64031A=m
-CONFIG_VIDEO_UPD64083=m
-# end of Video improvement chips
-
-#
-# Audio/Video compression chips
-#
-CONFIG_VIDEO_SAA6752HS=m
-# end of Audio/Video compression chips
-
-#
-# SDR tuner chips
-#
-CONFIG_SDR_MAX2175=m
-# end of SDR tuner chips
-
-#
-# Miscellaneous helper chips
-#
-CONFIG_VIDEO_THS7303=m
-CONFIG_VIDEO_M52790=m
-CONFIG_VIDEO_I2C=m
-CONFIG_VIDEO_ST_MIPID02=m
-# end of Miscellaneous helper chips
-
-#
-# Camera sensor devices
-#
-CONFIG_VIDEO_APTINA_PLL=m
-CONFIG_VIDEO_CCS_PLL=m
-CONFIG_VIDEO_HI556=m
-CONFIG_VIDEO_IMX214=m
-CONFIG_VIDEO_IMX219=m
-CONFIG_VIDEO_IMX258=m
-CONFIG_VIDEO_IMX274=m
-CONFIG_VIDEO_IMX290=m
-CONFIG_VIDEO_IMX319=m
-CONFIG_VIDEO_IMX334=m
-CONFIG_VIDEO_IMX355=m
-CONFIG_VIDEO_OV02A10=m
-CONFIG_VIDEO_OV2640=m
-CONFIG_VIDEO_OV2659=m
-CONFIG_VIDEO_OV2680=m
-CONFIG_VIDEO_OV2685=m
-CONFIG_VIDEO_OV5640=m
-CONFIG_VIDEO_OV5645=m
-CONFIG_VIDEO_OV5647=m
-CONFIG_VIDEO_OV5648=m
-CONFIG_VIDEO_OV6650=m
-CONFIG_VIDEO_OV5670=m
-CONFIG_VIDEO_OV5675=m
-CONFIG_VIDEO_OV5695=m
-CONFIG_VIDEO_OV7251=m
-CONFIG_VIDEO_OV772X=m
-CONFIG_VIDEO_OV7640=m
-CONFIG_VIDEO_OV7670=m
-CONFIG_VIDEO_OV7740=m
-CONFIG_VIDEO_OV8856=m
-CONFIG_VIDEO_OV8865=m
-CONFIG_VIDEO_OV9640=m
-CONFIG_VIDEO_OV9650=m
-CONFIG_VIDEO_OV13858=m
-CONFIG_VIDEO_VS6624=m
-CONFIG_VIDEO_MT9M001=m
-CONFIG_VIDEO_MT9M032=m
-CONFIG_VIDEO_MT9M111=m
-CONFIG_VIDEO_MT9P031=m
-CONFIG_VIDEO_MT9T001=m
-CONFIG_VIDEO_MT9T112=m
-CONFIG_VIDEO_MT9V011=m
-CONFIG_VIDEO_MT9V032=m
-CONFIG_VIDEO_MT9V111=m
-CONFIG_VIDEO_SR030PC30=m
-CONFIG_VIDEO_NOON010PC30=m
-CONFIG_VIDEO_M5MOLS=m
-CONFIG_VIDEO_MAX9271_LIB=m
-CONFIG_VIDEO_RDACM20=m
-CONFIG_VIDEO_RDACM21=m
-CONFIG_VIDEO_RJ54N1=m
-CONFIG_VIDEO_S5K6AA=m
-CONFIG_VIDEO_S5K6A3=m
-CONFIG_VIDEO_S5K4ECGX=m
-CONFIG_VIDEO_S5K5BAF=m
-CONFIG_VIDEO_CCS=m
-CONFIG_VIDEO_ET8EK8=m
-CONFIG_VIDEO_S5C73M3=m
-# end of Camera sensor devices
-
-#
-# Lens drivers
-#
-CONFIG_VIDEO_AD5820=m
-CONFIG_VIDEO_AK7375=m
-CONFIG_VIDEO_DW9714=m
-CONFIG_VIDEO_DW9768=m
-CONFIG_VIDEO_DW9807_VCM=m
-# end of Lens drivers
-
-#
-# Flash devices
-#
-CONFIG_VIDEO_ADP1653=m
-CONFIG_VIDEO_LM3560=m
-CONFIG_VIDEO_LM3646=m
-# end of Flash devices
-
-#
-# SPI helper chips
-#
-CONFIG_VIDEO_GS1662=m
-# end of SPI helper chips
-
-#
-# Media SPI Adapters
-#
-# CONFIG_CXD2880_SPI_DRV is not set
-# end of Media SPI Adapters
-
-CONFIG_MEDIA_TUNER=y
-
-#
-# Customize TV tuners
-#
-CONFIG_MEDIA_TUNER_SIMPLE=y
-CONFIG_MEDIA_TUNER_TDA18250=m
-CONFIG_MEDIA_TUNER_TDA8290=y
-CONFIG_MEDIA_TUNER_TDA827X=y
-CONFIG_MEDIA_TUNER_TDA18271=y
-CONFIG_MEDIA_TUNER_TDA9887=y
-CONFIG_MEDIA_TUNER_TEA5761=y
-CONFIG_MEDIA_TUNER_TEA5767=y
-CONFIG_MEDIA_TUNER_MSI001=m
-CONFIG_MEDIA_TUNER_MT20XX=y
-CONFIG_MEDIA_TUNER_MT2060=m
-CONFIG_MEDIA_TUNER_MT2063=m
-CONFIG_MEDIA_TUNER_MT2266=m
-CONFIG_MEDIA_TUNER_MT2131=m
-CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=y
-CONFIG_MEDIA_TUNER_XC5000=y
-CONFIG_MEDIA_TUNER_XC4000=y
-CONFIG_MEDIA_TUNER_MXL5005S=m
-CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=y
-CONFIG_MEDIA_TUNER_MAX2165=m
-CONFIG_MEDIA_TUNER_TDA18218=m
-CONFIG_MEDIA_TUNER_FC0011=m
-CONFIG_MEDIA_TUNER_FC0012=m
-CONFIG_MEDIA_TUNER_FC0013=m
-CONFIG_MEDIA_TUNER_TDA18212=m
-CONFIG_MEDIA_TUNER_E4000=m
-CONFIG_MEDIA_TUNER_FC2580=m
-CONFIG_MEDIA_TUNER_M88RS6000T=m
-CONFIG_MEDIA_TUNER_TUA9001=m
-CONFIG_MEDIA_TUNER_SI2157=m
-CONFIG_MEDIA_TUNER_IT913X=m
-CONFIG_MEDIA_TUNER_R820T=m
-CONFIG_MEDIA_TUNER_MXL301RF=m
-CONFIG_MEDIA_TUNER_QM1D1C0042=m
-CONFIG_MEDIA_TUNER_QM1D1B0004=m
-# end of Customize TV tuners
-
-#
-# Customise DVB Frontends
-#
-
-#
-# Multistandard (satellite) frontends
-#
-CONFIG_DVB_STB0899=m
-CONFIG_DVB_STB6100=m
-CONFIG_DVB_STV090x=m
-CONFIG_DVB_STV0910=m
-CONFIG_DVB_STV6110x=m
-CONFIG_DVB_STV6111=m
-CONFIG_DVB_MXL5XX=m
-CONFIG_DVB_M88DS3103=m
-
-#
-# Multistandard (cable + terrestrial) frontends
-#
-CONFIG_DVB_DRXK=m
-CONFIG_DVB_TDA18271C2DD=m
-CONFIG_DVB_SI2165=m
-CONFIG_DVB_MN88472=m
-CONFIG_DVB_MN88473=m
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_CX24110=m
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_ZL10036=m
-CONFIG_DVB_ZL10039=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0288=m
-CONFIG_DVB_STB6000=m
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_STV6110=m
-CONFIG_DVB_STV0900=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_TDA8261=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TUNER_CX24113=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TUA6100=m
-CONFIG_DVB_CX24116=m
-CONFIG_DVB_CX24117=m
-CONFIG_DVB_CX24120=m
-CONFIG_DVB_SI21XX=m
-CONFIG_DVB_TS2020=m
-CONFIG_DVB_DS3000=m
-CONFIG_DVB_MB86A16=m
-CONFIG_DVB_TDA10071=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_SP887X=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_S5H1432=m
-CONFIG_DVB_DRXD=m
-CONFIG_DVB_L64781=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_DIB3000MB=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_DVB_DIB7000P=m
-CONFIG_DVB_DIB9000=m
-CONFIG_DVB_TDA10048=m
-CONFIG_DVB_AF9013=m
-CONFIG_DVB_EC100=m
-CONFIG_DVB_STV0367=m
-CONFIG_DVB_CXD2820R=m
-CONFIG_DVB_CXD2841ER=m
-CONFIG_DVB_RTL2830=m
-CONFIG_DVB_RTL2832=m
-CONFIG_DVB_RTL2832_SDR=m
-CONFIG_DVB_SI2168=m
-CONFIG_DVB_AS102_FE=m
-CONFIG_DVB_ZD1301_DEMOD=m
-CONFIG_DVB_GP8PSK_FE=m
-CONFIG_DVB_CXD2880=m
-
-#
-# DVB-C (cable) frontends
-#
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
-CONFIG_DVB_NXT200X=m
-CONFIG_DVB_OR51211=m
-CONFIG_DVB_OR51132=m
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-CONFIG_DVB_LGDT3305=m
-CONFIG_DVB_LGDT3306A=m
-CONFIG_DVB_LG2160=m
-CONFIG_DVB_S5H1409=m
-CONFIG_DVB_AU8522=m
-CONFIG_DVB_AU8522_DTV=m
-CONFIG_DVB_AU8522_V4L=m
-CONFIG_DVB_S5H1411=m
-CONFIG_DVB_MXL692=m
-
-#
-# ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_S921=m
-CONFIG_DVB_DIB8000=m
-CONFIG_DVB_MB86A20S=m
-
-#
-# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_TC90522=m
-CONFIG_DVB_MN88443X=m
-
-#
-# Digital terrestrial only tuners/PLL
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TUNER_DIB0070=m
-CONFIG_DVB_TUNER_DIB0090=m
-
-#
-# SEC control devices for DVB-S
-#
-CONFIG_DVB_DRX39XYJ=m
-CONFIG_DVB_LNBH25=m
-CONFIG_DVB_LNBH29=m
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_LNBP22=m
-CONFIG_DVB_ISL6405=m
-CONFIG_DVB_ISL6421=m
-CONFIG_DVB_ISL6423=m
-CONFIG_DVB_A8293=m
-CONFIG_DVB_LGS8GL5=m
-CONFIG_DVB_LGS8GXX=m
-CONFIG_DVB_ATBM8830=m
-CONFIG_DVB_TDA665x=m
-CONFIG_DVB_IX2505V=m
-CONFIG_DVB_M88RS2000=m
-CONFIG_DVB_AF9033=m
-CONFIG_DVB_HORUS3A=m
-CONFIG_DVB_ASCOT2E=m
-CONFIG_DVB_HELENE=m
-
-#
-# Common Interface (EN50221) controller drivers
-#
-CONFIG_DVB_CXD2099=m
-CONFIG_DVB_SP2=m
-# end of Customise DVB Frontends
-
-#
-# Tools to develop new frontends
-#
-CONFIG_DVB_DUMMY_FE=m
-# end of Media ancillary drivers
-
-#
-# Graphics support
-#
-CONFIG_VGA_ARB=y
-CONFIG_VGA_ARB_MAX_GPUS=16
-# CONFIG_TEGRA_HOST1X is not set
-CONFIG_IMX_IPUV3_CORE=m
-CONFIG_DRM=m
-CONFIG_DRM_MIPI_DBI=m
-CONFIG_DRM_MIPI_DSI=y
-# CONFIG_DRM_DP_AUX_CHARDEV is not set
-# CONFIG_DRM_DEBUG_SELFTEST is not set
-CONFIG_DRM_KMS_HELPER=m
-CONFIG_DRM_KMS_FB_HELPER=y
-# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set
-CONFIG_DRM_FBDEV_EMULATION=y
-CONFIG_DRM_FBDEV_OVERALLOC=100
-# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
-CONFIG_DRM_LOAD_EDID_FIRMWARE=y
-# CONFIG_DRM_DP_CEC is not set
-CONFIG_DRM_TTM=m
-CONFIG_DRM_VRAM_HELPER=m
-CONFIG_DRM_TTM_HELPER=m
-CONFIG_DRM_GEM_CMA_HELPER=y
-CONFIG_DRM_KMS_CMA_HELPER=y
-CONFIG_DRM_GEM_SHMEM_HELPER=y
-CONFIG_DRM_SCHED=m
-
-#
-# I2C encoder or helper chips
-#
-# CONFIG_DRM_I2C_CH7006 is not set
-# CONFIG_DRM_I2C_SIL164 is not set
-CONFIG_DRM_I2C_NXP_TDA998X=m
-CONFIG_DRM_I2C_NXP_TDA9950=m
-# end of I2C encoder or helper chips
-
-#
-# ARM devices
-#
-# CONFIG_DRM_HDLCD is not set
-# CONFIG_DRM_MALI_DISPLAY is not set
-# CONFIG_DRM_KOMEDA is not set
-# end of ARM devices
-
-# CONFIG_DRM_RADEON is not set
-# CONFIG_DRM_AMDGPU is not set
-# CONFIG_DRM_NOUVEAU is not set
-CONFIG_DRM_VGEM=m
-# CONFIG_DRM_VKMS is not set
-CONFIG_DRM_EXYNOS=m
-
-#
-# CRTCs
-#
-CONFIG_DRM_EXYNOS_FIMD=y
-# CONFIG_DRM_EXYNOS5433_DECON is not set
-# CONFIG_DRM_EXYNOS7_DECON is not set
-CONFIG_DRM_EXYNOS_MIXER=y
-# CONFIG_DRM_EXYNOS_VIDI is not set
-
-#
-# Encoders and Bridges
-#
-# CONFIG_DRM_EXYNOS_DPI is not set
-CONFIG_DRM_EXYNOS_DSI=y
-CONFIG_DRM_EXYNOS_DP=y
-CONFIG_DRM_EXYNOS_HDMI=y
-
-#
-# Sub-drivers
-#
-# CONFIG_DRM_EXYNOS_G2D is not set
-# CONFIG_DRM_EXYNOS_FIMC is not set
-# CONFIG_DRM_EXYNOS_ROTATOR is not set
-# CONFIG_DRM_EXYNOS_SCALER is not set
-# CONFIG_DRM_EXYNOS_GSC is not set
-CONFIG_DRM_ROCKCHIP=m
-CONFIG_ROCKCHIP_ANALOGIX_DP=y
-# CONFIG_ROCKCHIP_CDN_DP is not set
-CONFIG_ROCKCHIP_DW_HDMI=y
-CONFIG_ROCKCHIP_DW_MIPI_DSI=y
-# CONFIG_ROCKCHIP_INNO_HDMI is not set
-# CONFIG_ROCKCHIP_LVDS is not set
-# CONFIG_ROCKCHIP_RGB is not set
-CONFIG_ROCKCHIP_RK3066_HDMI=y
-CONFIG_DRM_UDL=m
-# CONFIG_DRM_AST is not set
-# CONFIG_DRM_MGAG200 is not set
-# CONFIG_DRM_ARMADA is not set
-# CONFIG_DRM_RCAR_DW_HDMI is not set
-# CONFIG_DRM_RCAR_LVDS is not set
-# CONFIG_DRM_SUN4I is not set
-CONFIG_DRM_OMAP=m
-# CONFIG_OMAP2_DSS_DEBUG is not set
-# CONFIG_OMAP2_DSS_DEBUGFS is not set
-CONFIG_OMAP2_DSS_DPI=y
-CONFIG_OMAP2_DSS_VENC=y
-CONFIG_OMAP2_DSS_HDMI_COMMON=y
-CONFIG_OMAP4_DSS_HDMI=y
-CONFIG_OMAP4_DSS_HDMI_CEC=y
-CONFIG_OMAP5_DSS_HDMI=y
-CONFIG_OMAP2_DSS_SDI=y
-CONFIG_OMAP2_DSS_DSI=y
-CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
-CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y
-CONFIG_DRM_TILCDC=m
-CONFIG_DRM_QXL=m
-CONFIG_DRM_BOCHS=m
-CONFIG_DRM_VIRTIO_GPU=m
-CONFIG_DRM_MSM=m
-CONFIG_DRM_MSM_GPU_STATE=y
-# CONFIG_DRM_MSM_REGISTER_LOGGING is not set
-# CONFIG_DRM_MSM_GPU_SUDO is not set
-CONFIG_DRM_MSM_DP=y
-CONFIG_DRM_MSM_DSI=y
-CONFIG_DRM_MSM_DSI_28NM_PHY=y
-CONFIG_DRM_MSM_DSI_20NM_PHY=y
-CONFIG_DRM_MSM_DSI_28NM_8960_PHY=y
-CONFIG_DRM_MSM_DSI_14NM_PHY=y
-CONFIG_DRM_MSM_DSI_10NM_PHY=y
-CONFIG_DRM_MSM_DSI_7NM_PHY=y
-# CONFIG_DRM_FSL_DCU is not set
-# CONFIG_DRM_TEGRA is not set
-# CONFIG_DRM_STM is not set
-CONFIG_DRM_PANEL=y
-
-#
-# Display Panels
-#
-# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set
-CONFIG_DRM_PANEL_ARM_VERSATILE=m
-CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596=m
-CONFIG_DRM_PANEL_BOE_HIMAX8279D=m
-CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m
-CONFIG_DRM_PANEL_DSI_CM=m
-# CONFIG_DRM_PANEL_LVDS is not set
-CONFIG_DRM_PANEL_SIMPLE=m
-CONFIG_DRM_PANEL_ELIDA_KD35T133=m
-CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m
-# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set
-CONFIG_DRM_PANEL_ILITEK_IL9322=m
-CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
-# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
-# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
-# CONFIG_DRM_PANEL_KHADAS_TS050 is not set
-# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
-# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set
-CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829=m
-# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
-# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
-# CONFIG_DRM_PANEL_LG_LG4573 is not set
-# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
-CONFIG_DRM_PANEL_NOVATEK_NT35510=m
-# CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set
-# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
-CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
-# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
-# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set
-CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS=m
-# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
-CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
-# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
-# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
-# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set
-CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m
-# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_SOFEF00 is not set
-# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set
-# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
-# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
-# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
-# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
-# CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set
-# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
-CONFIG_DRM_PANEL_SONY_ACX424AKP=m
-# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
-# CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set
-# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
-# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
-# CONFIG_DRM_PANEL_TPO_TPG110 is not set
-# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
-# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set
-CONFIG_DRM_PANEL_XINPENG_XPP055C272=m
-# end of Display Panels
-
-CONFIG_DRM_BRIDGE=y
-CONFIG_DRM_PANEL_BRIDGE=y
-
-#
-# Display Interface Bridges
-#
-CONFIG_DRM_CDNS_DSI=m
-CONFIG_DRM_CHIPONE_ICN6211=m
-CONFIG_DRM_CHRONTEL_CH7033=m
-CONFIG_DRM_DISPLAY_CONNECTOR=m
-CONFIG_DRM_LONTIUM_LT8912B=m
-CONFIG_DRM_LONTIUM_LT9611=m
-CONFIG_DRM_LONTIUM_LT9611UXC=m
-CONFIG_DRM_LVDS_CODEC=m
-# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
-CONFIG_DRM_NWL_MIPI_DSI=m
-# CONFIG_DRM_NXP_PTN3460 is not set
-# CONFIG_DRM_PARADE_PS8622 is not set
-CONFIG_DRM_PARADE_PS8640=m
-# CONFIG_DRM_SIL_SII8620 is not set
-# CONFIG_DRM_SII902X is not set
-# CONFIG_DRM_SII9234 is not set
-CONFIG_DRM_SIMPLE_BRIDGE=m
-# CONFIG_DRM_THINE_THC63LVD1024 is not set
-CONFIG_DRM_TOSHIBA_TC358762=m
-# CONFIG_DRM_TOSHIBA_TC358764 is not set
-# CONFIG_DRM_TOSHIBA_TC358767 is not set
-CONFIG_DRM_TOSHIBA_TC358768=m
-CONFIG_DRM_TOSHIBA_TC358775=m
-# CONFIG_DRM_TI_TFP410 is not set
-# CONFIG_DRM_TI_SN65DSI86 is not set
-CONFIG_DRM_TI_TPD12S015=m
-CONFIG_DRM_ANALOGIX_ANX6345=m
-# CONFIG_DRM_ANALOGIX_ANX78XX is not set
-CONFIG_DRM_ANALOGIX_DP=m
-# CONFIG_DRM_ANALOGIX_ANX7625 is not set
-# CONFIG_DRM_I2C_ADV7511 is not set
-CONFIG_DRM_CDNS_MHDP8546=m
-CONFIG_DRM_DW_HDMI=m
-# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
-# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
-CONFIG_DRM_DW_HDMI_CEC=m
-CONFIG_DRM_DW_MIPI_DSI=m
-# end of Display Interface Bridges
-
-# CONFIG_DRM_STI is not set
-CONFIG_DRM_IMX=m
-# CONFIG_DRM_IMX_PARALLEL_DISPLAY is not set
-# CONFIG_DRM_IMX_TVE is not set
-CONFIG_DRM_IMX_LDB=m
-CONFIG_DRM_IMX_HDMI=m
-CONFIG_DRM_V3D=m
-CONFIG_DRM_VC4=m
-# CONFIG_DRM_VC4_HDMI_CEC is not set
-CONFIG_DRM_ETNAVIV=m
-CONFIG_DRM_ETNAVIV_THERMAL=y
-# CONFIG_DRM_MXSFB is not set
-# CONFIG_DRM_ARCPGU is not set
-CONFIG_DRM_CIRRUS_QEMU=m
-CONFIG_DRM_GM12U320=m
-# CONFIG_TINYDRM_HX8357D is not set
-# CONFIG_TINYDRM_ILI9225 is not set
-# CONFIG_TINYDRM_ILI9341 is not set
-CONFIG_TINYDRM_ILI9486=m
-# CONFIG_TINYDRM_MI0283QT is not set
-# CONFIG_TINYDRM_REPAPER is not set
-# CONFIG_TINYDRM_ST7586 is not set
-# CONFIG_TINYDRM_ST7735R is not set
-# CONFIG_DRM_PL111 is not set
-# CONFIG_DRM_TVE200 is not set
-# CONFIG_DRM_XEN_FRONTEND is not set
-CONFIG_DRM_LIMA=m
-CONFIG_DRM_PANFROST=m
-CONFIG_DRM_MCDE=m
-CONFIG_DRM_TIDSS=m
-CONFIG_DRM_GUD=m
-CONFIG_DRM_LEGACY=y
-# CONFIG_DRM_TDFX is not set
-# CONFIG_DRM_R128 is not set
-# CONFIG_DRM_MGA is not set
-CONFIG_DRM_VIA=m
-CONFIG_DRM_SAVAGE=m
-CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
-
-#
-# Frame buffer Devices
-#
-CONFIG_FB_CMDLINE=y
-CONFIG_FB_NOTIFY=y
-CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
-CONFIG_FB_DDC=m
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-CONFIG_FB_SYS_FILLRECT=y
-CONFIG_FB_SYS_COPYAREA=y
-CONFIG_FB_SYS_IMAGEBLIT=y
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=y
-CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_SVGALIB=m
-CONFIG_FB_BACKLIGHT=m
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_CIRRUS is not set
-# CONFIG_FB_PM2 is not set
-CONFIG_FB_ARMCLCD=y
-# CONFIG_FB_IMX is not set
-# CONFIG_FB_CYBER2000 is not set
-# CONFIG_FB_ASILIANT is not set
-# CONFIG_FB_IMSTT is not set
-# CONFIG_FB_UVESA is not set
-CONFIG_FB_EFI=y
-# CONFIG_FB_OPENCORES is not set
-# CONFIG_FB_S1D13XXX is not set
-CONFIG_FB_NVIDIA=m
-# CONFIG_FB_NVIDIA_I2C is not set
-# CONFIG_FB_NVIDIA_DEBUG is not set
-CONFIG_FB_NVIDIA_BACKLIGHT=y
-CONFIG_FB_RIVA=m
-# CONFIG_FB_RIVA_I2C is not set
-# CONFIG_FB_RIVA_DEBUG is not set
-CONFIG_FB_RIVA_BACKLIGHT=y
-# CONFIG_FB_I740 is not set
-# CONFIG_FB_MATROX is not set
-# CONFIG_FB_RADEON is not set
-# CONFIG_FB_ATY128 is not set
-# CONFIG_FB_ATY is not set
-CONFIG_FB_S3=m
-CONFIG_FB_S3_DDC=y
-# CONFIG_FB_SAVAGE is not set
-# CONFIG_FB_SIS is not set
-# CONFIG_FB_NEOMAGIC is not set
-# CONFIG_FB_KYRO is not set
-CONFIG_FB_3DFX=m
-# CONFIG_FB_3DFX_ACCEL is not set
-CONFIG_FB_3DFX_I2C=y
-# CONFIG_FB_VOODOO1 is not set
-CONFIG_FB_VT8623=m
-# CONFIG_FB_TRIDENT is not set
-CONFIG_FB_ARK=m
-CONFIG_FB_PM3=m
-# CONFIG_FB_CARMINE is not set
-CONFIG_FB_VT8500=y
-CONFIG_FB_WM8505=y
-# CONFIG_FB_WMT_GE_ROPS is not set
-CONFIG_FB_SMSCUFX=m
-CONFIG_FB_UDL=m
-# CONFIG_FB_IBM_GXT4500 is not set
-# CONFIG_FB_DA8XX is not set
-# CONFIG_FB_VIRTUAL is not set
-CONFIG_XEN_FBDEV_FRONTEND=y
-# CONFIG_FB_METRONOME is not set
-CONFIG_FB_MB862XX=m
-CONFIG_FB_MB862XX_PCI_GDC=y
-CONFIG_FB_MB862XX_I2C=y
-CONFIG_FB_MX3=y
-CONFIG_FB_SIMPLE=y
-# CONFIG_FB_SSD1307 is not set
-# CONFIG_FB_SM712 is not set
-# end of Frame buffer Devices
-
-#
-# Backlight & LCD device support
-#
-# CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_KTD253=m
-CONFIG_BACKLIGHT_PWM=m
-# CONFIG_BACKLIGHT_DA9052 is not set
-CONFIG_BACKLIGHT_QCOM_WLED=m
-# CONFIG_BACKLIGHT_ADP8860 is not set
-# CONFIG_BACKLIGHT_ADP8870 is not set
-# CONFIG_BACKLIGHT_LM3630A is not set
-# CONFIG_BACKLIGHT_LM3639 is not set
-# CONFIG_BACKLIGHT_LP855X is not set
-CONFIG_BACKLIGHT_PANDORA=m
-CONFIG_BACKLIGHT_GPIO=m
-# CONFIG_BACKLIGHT_LV5207LP is not set
-# CONFIG_BACKLIGHT_BD6107 is not set
-# CONFIG_BACKLIGHT_ARCXCNN is not set
-CONFIG_BACKLIGHT_LED=m
-# end of Backlight & LCD device support
-
-CONFIG_VGASTATE=m
-CONFIG_VIDEOMODE_HELPERS=y
-CONFIG_HDMI=y
-
-#
-# Console display driver support
-#
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
-# end of Console display driver support
-
-# CONFIG_LOGO is not set
-# end of Graphics support
-
-CONFIG_SOUND=m
-CONFIG_SOUND_OSS_CORE=y
-# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_PCM_ELD=y
-CONFIG_SND_PCM_IEC958=y
-CONFIG_SND_DMAENGINE_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_SEQ_DEVICE=m
-CONFIG_SND_RAWMIDI=m
-CONFIG_SND_JACK=y
-CONFIG_SND_JACK_INPUT_DEV=y
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-CONFIG_SND_PCM_TIMER=y
-CONFIG_SND_HRTIMER=m
-CONFIG_SND_DYNAMIC_MINORS=y
-CONFIG_SND_MAX_CARDS=32
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_PROC_FS=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_VMASTER=y
-CONFIG_SND_CTL_LED=m
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_SEQ_DUMMY=m
-# CONFIG_SND_SEQUENCER_OSS is not set
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-CONFIG_SND_SEQ_MIDI_EVENT=m
-CONFIG_SND_SEQ_MIDI=m
-CONFIG_SND_SEQ_MIDI_EMUL=m
-CONFIG_SND_SEQ_VIRMIDI=m
-CONFIG_SND_MPU401_UART=m
-CONFIG_SND_OPL3_LIB=m
-CONFIG_SND_OPL3_LIB_SEQ=m
-CONFIG_SND_AC97_CODEC=m
-CONFIG_SND_DRIVERS=y
-# CONFIG_SND_DUMMY is not set
-CONFIG_SND_ALOOP=m
-# CONFIG_SND_VIRMIDI is not set
-# CONFIG_SND_MTPAV is not set
-CONFIG_SND_MTS64=m
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-CONFIG_SND_PORTMAN2X4=m
-CONFIG_SND_AC97_POWER_SAVE=y
-CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
-CONFIG_SND_PCI=y
-CONFIG_SND_AD1889=m
-CONFIG_SND_ALS300=m
-CONFIG_SND_ALI5451=m
-# CONFIG_SND_ATIIXP is not set
-# CONFIG_SND_ATIIXP_MODEM is not set
-# CONFIG_SND_AU8810 is not set
-# CONFIG_SND_AU8820 is not set
-# CONFIG_SND_AU8830 is not set
-# CONFIG_SND_AW2 is not set
-CONFIG_SND_AZT3328=m
-# CONFIG_SND_BT87X is not set
-# CONFIG_SND_CA0106 is not set
-# CONFIG_SND_CMIPCI is not set
-CONFIG_SND_OXYGEN_LIB=m
-CONFIG_SND_OXYGEN=m
-# CONFIG_SND_CS4281 is not set
-# CONFIG_SND_CS46XX is not set
-CONFIG_SND_CTXFI=m
-CONFIG_SND_DARLA20=m
-CONFIG_SND_GINA20=m
-CONFIG_SND_LAYLA20=m
-CONFIG_SND_DARLA24=m
-CONFIG_SND_GINA24=m
-CONFIG_SND_LAYLA24=m
-CONFIG_SND_MONA=m
-CONFIG_SND_MIA=m
-CONFIG_SND_ECHO3G=m
-CONFIG_SND_INDIGO=m
-CONFIG_SND_INDIGOIO=m
-CONFIG_SND_INDIGODJ=m
-CONFIG_SND_INDIGOIOX=m
-CONFIG_SND_INDIGODJX=m
-CONFIG_SND_EMU10K1=m
-CONFIG_SND_EMU10K1_SEQ=m
-CONFIG_SND_EMU10K1X=m
-# CONFIG_SND_ENS1370 is not set
-# CONFIG_SND_ENS1371 is not set
-CONFIG_SND_ES1938=m
-CONFIG_SND_ES1968=m
-CONFIG_SND_ES1968_INPUT=y
-CONFIG_SND_ES1968_RADIO=y
-# CONFIG_SND_FM801 is not set
-# CONFIG_SND_HDSP is not set
-CONFIG_SND_HDSPM=m
-CONFIG_SND_ICE1712=m
-# CONFIG_SND_ICE1724 is not set
-# CONFIG_SND_INTEL8X0 is not set
-# CONFIG_SND_INTEL8X0M is not set
-# CONFIG_SND_KORG1212 is not set
-CONFIG_SND_LOLA=m
-CONFIG_SND_MAESTRO3=m
-CONFIG_SND_MAESTRO3_INPUT=y
-# CONFIG_SND_MIXART is not set
-# CONFIG_SND_NM256 is not set
-CONFIG_SND_PCXHR=m
-CONFIG_SND_RIPTIDE=m
-# CONFIG_SND_RME32 is not set
-# CONFIG_SND_RME96 is not set
-# CONFIG_SND_RME9652 is not set
-CONFIG_SND_SONICVIBES=m
-CONFIG_SND_TRIDENT=m
-# CONFIG_SND_VIA82XX is not set
-# CONFIG_SND_VIA82XX_MODEM is not set
-CONFIG_SND_VIRTUOSO=m
-# CONFIG_SND_VX222 is not set
-# CONFIG_SND_YMFPCI is not set
-
-#
-# HD-Audio
-#
-CONFIG_SND_HDA=m
-CONFIG_SND_HDA_GENERIC_LEDS=y
-# CONFIG_SND_HDA_INTEL is not set
-CONFIG_SND_HDA_TEGRA=m
-CONFIG_SND_HDA_HWDEP=y
-CONFIG_SND_HDA_RECONFIG=y
-CONFIG_SND_HDA_INPUT_BEEP=y
-CONFIG_SND_HDA_INPUT_BEEP_MODE=1
-CONFIG_SND_HDA_PATCH_LOADER=y
-CONFIG_SND_HDA_CODEC_REALTEK=m
-CONFIG_SND_HDA_CODEC_ANALOG=m
-CONFIG_SND_HDA_CODEC_SIGMATEL=m
-CONFIG_SND_HDA_CODEC_VIA=m
-CONFIG_SND_HDA_CODEC_HDMI=m
-CONFIG_SND_HDA_CODEC_CIRRUS=m
-CONFIG_SND_HDA_CODEC_CONEXANT=m
-CONFIG_SND_HDA_CODEC_CA0110=m
-CONFIG_SND_HDA_CODEC_CA0132=m
-CONFIG_SND_HDA_CODEC_CA0132_DSP=y
-CONFIG_SND_HDA_CODEC_CMEDIA=m
-CONFIG_SND_HDA_CODEC_SI3054=m
-CONFIG_SND_HDA_GENERIC=m
-CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
-# end of HD-Audio
-
-CONFIG_SND_HDA_CORE=m
-CONFIG_SND_HDA_DSP_LOADER=y
-CONFIG_SND_HDA_ALIGNED_MMIO=y
-CONFIG_SND_HDA_PREALLOC_SIZE=2048
-CONFIG_SND_ARM=y
-# CONFIG_SND_ARMAACI is not set
-CONFIG_SND_SPI=y
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
-CONFIG_SND_USB_UA101=m
-CONFIG_SND_USB_CAIAQ=m
-CONFIG_SND_USB_CAIAQ_INPUT=y
-CONFIG_SND_USB_6FIRE=m
-CONFIG_SND_USB_HIFACE=m
-CONFIG_SND_BCD2000=m
-CONFIG_SND_USB_LINE6=m
-CONFIG_SND_USB_POD=m
-CONFIG_SND_USB_PODHD=m
-CONFIG_SND_USB_TONEPORT=m
-CONFIG_SND_USB_VARIAX=m
-CONFIG_SND_FIREWIRE=y
-CONFIG_SND_FIREWIRE_LIB=m
-CONFIG_SND_DICE=m
-CONFIG_SND_OXFW=m
-CONFIG_SND_ISIGHT=m
-CONFIG_SND_FIREWORKS=m
-CONFIG_SND_BEBOB=m
-CONFIG_SND_FIREWIRE_DIGI00X=m
-CONFIG_SND_FIREWIRE_TASCAM=m
-# CONFIG_SND_FIREWIRE_MOTU is not set
-# CONFIG_SND_FIREFACE is not set
-CONFIG_SND_SOC=m
-CONFIG_SND_SOC_AC97_BUS=y
-CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
-CONFIG_SND_SOC_ADI=m
-CONFIG_SND_SOC_ADI_AXI_I2S=m
-CONFIG_SND_SOC_ADI_AXI_SPDIF=m
-# CONFIG_SND_SOC_AMD_ACP is not set
-# CONFIG_SND_ATMEL_SOC is not set
-CONFIG_SND_BCM2835_SOC_I2S=m
-CONFIG_SND_BCM63XX_I2S_WHISTLER=m
-# CONFIG_SND_DESIGNWARE_I2S is not set
-
-#
-# SoC Audio for Freescale CPUs
-#
-
-#
-# Common SoC Audio options for Freescale CPUs:
-#
-CONFIG_SND_SOC_FSL_ASRC=m
-CONFIG_SND_SOC_FSL_SAI=m
-CONFIG_SND_SOC_FSL_MQS=m
-CONFIG_SND_SOC_FSL_AUDMIX=m
-CONFIG_SND_SOC_FSL_SSI=m
-CONFIG_SND_SOC_FSL_SPDIF=m
-# CONFIG_SND_SOC_FSL_ESAI is not set
-CONFIG_SND_SOC_FSL_MICFIL=m
-CONFIG_SND_SOC_FSL_EASRC=m
-CONFIG_SND_SOC_FSL_XCVR=m
-CONFIG_SND_SOC_FSL_AUD2HTX=m
-CONFIG_SND_SOC_IMX_PCM_DMA=m
-CONFIG_SND_SOC_IMX_AUDMUX=m
-CONFIG_SND_IMX_SOC=m
-CONFIG_SND_SOC_IMX_PCM_FIQ=m
-
-#
-# SoC Audio support for Freescale i.MX boards:
-#
-CONFIG_SND_SOC_EUKREA_TLV320=m
-CONFIG_SND_SOC_IMX_ES8328=m
-CONFIG_SND_SOC_IMX_SGTL5000=m
-CONFIG_SND_SOC_IMX_SPDIF=m
-# CONFIG_SND_SOC_FSL_ASOC_CARD is not set
-CONFIG_SND_SOC_IMX_AUDMIX=m
-CONFIG_SND_SOC_IMX_HDMI=m
-# end of SoC Audio for Freescale CPUs
-
-# CONFIG_SND_I2S_HI6210_I2S is not set
-# CONFIG_SND_KIRKWOOD_SOC is not set
-# CONFIG_SND_SOC_IMG is not set
-# CONFIG_SND_SOC_MTK_BTCVSD is not set
-CONFIG_SND_SOC_ROCKCHIP=m
-CONFIG_SND_SOC_ROCKCHIP_I2S=m
-# CONFIG_SND_SOC_ROCKCHIP_PDM is not set
-CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
-CONFIG_SND_SOC_ROCKCHIP_MAX98090=m
-CONFIG_SND_SOC_ROCKCHIP_RT5645=m
-# CONFIG_SND_SOC_RK3288_HDMI_ANALOG is not set
-# CONFIG_SND_SOC_RK3399_GRU_SOUND is not set
-# CONFIG_SND_SOC_SAMSUNG is not set
-# CONFIG_SND_SOC_SOF_TOPLEVEL is not set
-
-#
-# STMicroelectronics STM32 SOC audio support
-#
-# end of STMicroelectronics STM32 SOC audio support
-
-#
-# Allwinner SoC Audio support
-#
-CONFIG_SND_SUN4I_CODEC=m
-# CONFIG_SND_SUN8I_CODEC is not set
-# CONFIG_SND_SUN8I_CODEC_ANALOG is not set
-# CONFIG_SND_SUN4I_I2S is not set
-CONFIG_SND_SUN4I_SPDIF=m
-# end of Allwinner SoC Audio support
-
-CONFIG_SND_SOC_TEGRA=m
-CONFIG_SND_SOC_TEGRA20_AC97=m
-CONFIG_SND_SOC_TEGRA20_DAS=m
-CONFIG_SND_SOC_TEGRA20_I2S=m
-CONFIG_SND_SOC_TEGRA20_SPDIF=m
-CONFIG_SND_SOC_TEGRA30_AHUB=m
-CONFIG_SND_SOC_TEGRA30_I2S=m
-# CONFIG_SND_SOC_TEGRA210_AHUB is not set
-# CONFIG_SND_SOC_TEGRA210_DMIC is not set
-# CONFIG_SND_SOC_TEGRA210_I2S is not set
-# CONFIG_SND_SOC_TEGRA186_DSPK is not set
-# CONFIG_SND_SOC_TEGRA210_ADMAIF is not set
-CONFIG_SND_SOC_TEGRA_RT5640=m
-CONFIG_SND_SOC_TEGRA_WM8753=m
-CONFIG_SND_SOC_TEGRA_WM8903=m
-CONFIG_SND_SOC_TEGRA_WM9712=m
-CONFIG_SND_SOC_TEGRA_TRIMSLICE=m
-CONFIG_SND_SOC_TEGRA_ALC5632=m
-CONFIG_SND_SOC_TEGRA_MAX98090=m
-CONFIG_SND_SOC_TEGRA_RT5677=m
-# CONFIG_SND_SOC_TEGRA_SGTL5000 is not set
-
-#
-# Audio support for Texas Instruments SoCs
-#
-CONFIG_SND_SOC_TI_EDMA_PCM=m
-CONFIG_SND_SOC_TI_SDMA_PCM=m
-CONFIG_SND_SOC_TI_UDMA_PCM=m
-
-#
-# Texas Instruments DAI support for:
-#
-CONFIG_SND_SOC_DAVINCI_MCASP=m
-CONFIG_SND_SOC_OMAP_DMIC=m
-CONFIG_SND_SOC_OMAP_MCBSP=m
-CONFIG_SND_SOC_OMAP_MCPDM=m
-
-#
-# Audio support for boards with Texas Instruments SoCs
-#
-CONFIG_SND_SOC_NOKIA_RX51=m
-CONFIG_SND_SOC_OMAP3_PANDORA=m
-CONFIG_SND_SOC_OMAP3_TWL4030=m
-CONFIG_SND_SOC_OMAP_ABE_TWL6040=m
-CONFIG_SND_SOC_OMAP_HDMI=m
-# end of Audio support for Texas Instruments SoCs
-
-# CONFIG_SND_SOC_XILINX_I2S is not set
-# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
-# CONFIG_SND_SOC_XILINX_SPDIF is not set
-# CONFIG_SND_SOC_XTFPGA_I2S is not set
-CONFIG_SND_SOC_I2C_AND_SPI=m
-
-#
-# CODEC drivers
-#
-# CONFIG_SND_SOC_AC97_CODEC is not set
-# CONFIG_SND_SOC_ADAU1372_I2C is not set
-# CONFIG_SND_SOC_ADAU1372_SPI is not set
-# CONFIG_SND_SOC_ADAU1701 is not set
-# CONFIG_SND_SOC_ADAU1761_I2C is not set
-# CONFIG_SND_SOC_ADAU1761_SPI is not set
-# CONFIG_SND_SOC_ADAU7002 is not set
-CONFIG_SND_SOC_ADAU7118=m
-CONFIG_SND_SOC_ADAU7118_HW=m
-CONFIG_SND_SOC_ADAU7118_I2C=m
-# CONFIG_SND_SOC_AK4104 is not set
-# CONFIG_SND_SOC_AK4118 is not set
-# CONFIG_SND_SOC_AK4458 is not set
-# CONFIG_SND_SOC_AK4554 is not set
-# CONFIG_SND_SOC_AK4613 is not set
-# CONFIG_SND_SOC_AK4642 is not set
-# CONFIG_SND_SOC_AK5386 is not set
-# CONFIG_SND_SOC_AK5558 is not set
-# CONFIG_SND_SOC_ALC5623 is not set
-CONFIG_SND_SOC_ALC5632=m
-# CONFIG_SND_SOC_BD28623 is not set
-# CONFIG_SND_SOC_BT_SCO is not set
-CONFIG_SND_SOC_CROS_EC_CODEC=m
-# CONFIG_SND_SOC_CS35L32 is not set
-# CONFIG_SND_SOC_CS35L33 is not set
-# CONFIG_SND_SOC_CS35L34 is not set
-# CONFIG_SND_SOC_CS35L35 is not set
-# CONFIG_SND_SOC_CS35L36 is not set
-# CONFIG_SND_SOC_CS42L42 is not set
-# CONFIG_SND_SOC_CS42L51_I2C is not set
-# CONFIG_SND_SOC_CS42L52 is not set
-# CONFIG_SND_SOC_CS42L56 is not set
-# CONFIG_SND_SOC_CS42L73 is not set
-# CONFIG_SND_SOC_CS4234 is not set
-# CONFIG_SND_SOC_CS4265 is not set
-# CONFIG_SND_SOC_CS4270 is not set
-# CONFIG_SND_SOC_CS4271_I2C is not set
-# CONFIG_SND_SOC_CS4271_SPI is not set
-# CONFIG_SND_SOC_CS42XX8_I2C is not set
-# CONFIG_SND_SOC_CS43130 is not set
-# CONFIG_SND_SOC_CS4341 is not set
-# CONFIG_SND_SOC_CS4349 is not set
-# CONFIG_SND_SOC_CS53L30 is not set
-# CONFIG_SND_SOC_CX2072X is not set
-CONFIG_SND_SOC_DA7213=m
-CONFIG_SND_SOC_DMIC=m
-CONFIG_SND_SOC_HDMI_CODEC=m
-# CONFIG_SND_SOC_ES7134 is not set
-# CONFIG_SND_SOC_ES7241 is not set
-# CONFIG_SND_SOC_ES8316 is not set
-CONFIG_SND_SOC_ES8328=m
-CONFIG_SND_SOC_ES8328_I2C=m
-CONFIG_SND_SOC_ES8328_SPI=m
-# CONFIG_SND_SOC_GTM601 is not set
-# CONFIG_SND_SOC_INNO_RK3036 is not set
-# CONFIG_SND_SOC_MAX98088 is not set
-CONFIG_SND_SOC_MAX98090=m
-# CONFIG_SND_SOC_MAX98357A is not set
-# CONFIG_SND_SOC_MAX98504 is not set
-# CONFIG_SND_SOC_MAX9867 is not set
-# CONFIG_SND_SOC_MAX98927 is not set
-CONFIG_SND_SOC_MAX98373=m
-CONFIG_SND_SOC_MAX98373_I2C=m
-# CONFIG_SND_SOC_MAX98390 is not set
-# CONFIG_SND_SOC_MAX9860 is not set
-# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
-# CONFIG_SND_SOC_PCM1681 is not set
-# CONFIG_SND_SOC_PCM1789_I2C is not set
-# CONFIG_SND_SOC_PCM179X_I2C is not set
-# CONFIG_SND_SOC_PCM179X_SPI is not set
-# CONFIG_SND_SOC_PCM186X_I2C is not set
-# CONFIG_SND_SOC_PCM186X_SPI is not set
-# CONFIG_SND_SOC_PCM3060_I2C is not set
-# CONFIG_SND_SOC_PCM3060_SPI is not set
-# CONFIG_SND_SOC_PCM3168A_I2C is not set
-# CONFIG_SND_SOC_PCM3168A_SPI is not set
-# CONFIG_SND_SOC_PCM5102A is not set
-# CONFIG_SND_SOC_PCM512x_I2C is not set
-# CONFIG_SND_SOC_PCM512x_SPI is not set
-CONFIG_SND_SOC_RK3328=m
-CONFIG_SND_SOC_RL6231=m
-# CONFIG_SND_SOC_RT5616 is not set
-# CONFIG_SND_SOC_RT5631 is not set
-CONFIG_SND_SOC_RT5640=m
-CONFIG_SND_SOC_RT5645=m
-# CONFIG_SND_SOC_RT5659 is not set
-CONFIG_SND_SOC_RT5677=m
-CONFIG_SND_SOC_RT5677_SPI=m
-CONFIG_SND_SOC_SGTL5000=m
-# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set
-# CONFIG_SND_SOC_SIMPLE_MUX is not set
-# CONFIG_SND_SOC_SPDIF is not set
-# CONFIG_SND_SOC_SSM2305 is not set
-# CONFIG_SND_SOC_SSM2602_SPI is not set
-# CONFIG_SND_SOC_SSM2602_I2C is not set
-# CONFIG_SND_SOC_SSM4567 is not set
-# CONFIG_SND_SOC_STA32X is not set
-# CONFIG_SND_SOC_STA350 is not set
-# CONFIG_SND_SOC_STI_SAS is not set
-# CONFIG_SND_SOC_TAS2552 is not set
-# CONFIG_SND_SOC_TAS2562 is not set
-# CONFIG_SND_SOC_TAS2764 is not set
-# CONFIG_SND_SOC_TAS2770 is not set
-# CONFIG_SND_SOC_TAS5086 is not set
-# CONFIG_SND_SOC_TAS571X is not set
-# CONFIG_SND_SOC_TAS5720 is not set
-# CONFIG_SND_SOC_TAS6424 is not set
-# CONFIG_SND_SOC_TDA7419 is not set
-# CONFIG_SND_SOC_TFA9879 is not set
-CONFIG_SND_SOC_TLV320AIC23=m
-CONFIG_SND_SOC_TLV320AIC23_I2C=m
-# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
-# CONFIG_SND_SOC_TLV320AIC31XX is not set
-# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set
-# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set
-CONFIG_SND_SOC_TLV320AIC3X=m
-# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set
-# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set
-# CONFIG_SND_SOC_TLV320ADCX140 is not set
-CONFIG_SND_SOC_TS3A227E=m
-# CONFIG_SND_SOC_TSCS42XX is not set
-# CONFIG_SND_SOC_TSCS454 is not set
-CONFIG_SND_SOC_TWL4030=m
-CONFIG_SND_SOC_TWL6040=m
-# CONFIG_SND_SOC_UDA1334 is not set
-# CONFIG_SND_SOC_WM8510 is not set
-# CONFIG_SND_SOC_WM8523 is not set
-# CONFIG_SND_SOC_WM8524 is not set
-# CONFIG_SND_SOC_WM8580 is not set
-# CONFIG_SND_SOC_WM8711 is not set
-# CONFIG_SND_SOC_WM8728 is not set
-# CONFIG_SND_SOC_WM8731 is not set
-# CONFIG_SND_SOC_WM8737 is not set
-# CONFIG_SND_SOC_WM8741 is not set
-# CONFIG_SND_SOC_WM8750 is not set
-CONFIG_SND_SOC_WM8753=m
-# CONFIG_SND_SOC_WM8770 is not set
-# CONFIG_SND_SOC_WM8776 is not set
-# CONFIG_SND_SOC_WM8782 is not set
-# CONFIG_SND_SOC_WM8804_I2C is not set
-# CONFIG_SND_SOC_WM8804_SPI is not set
-CONFIG_SND_SOC_WM8903=m
-CONFIG_SND_SOC_WM8904=m
-# CONFIG_SND_SOC_WM8960 is not set
-# CONFIG_SND_SOC_WM8962 is not set
-# CONFIG_SND_SOC_WM8974 is not set
-# CONFIG_SND_SOC_WM8978 is not set
-# CONFIG_SND_SOC_WM8985 is not set
-CONFIG_SND_SOC_WM9712=m
-# CONFIG_SND_SOC_ZL38060 is not set
-# CONFIG_SND_SOC_ZX_AUD96P22 is not set
-# CONFIG_SND_SOC_MAX9759 is not set
-# CONFIG_SND_SOC_MT6351 is not set
-# CONFIG_SND_SOC_MT6358 is not set
-# CONFIG_SND_SOC_MT6660 is not set
-# CONFIG_SND_SOC_NAU8315 is not set
-# CONFIG_SND_SOC_NAU8540 is not set
-# CONFIG_SND_SOC_NAU8810 is not set
-# CONFIG_SND_SOC_NAU8822 is not set
-# CONFIG_SND_SOC_NAU8824 is not set
-CONFIG_SND_SOC_TPA6130A2=m
-# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set
-# CONFIG_SND_SOC_LPASS_VA_MACRO is not set
-# CONFIG_SND_SOC_LPASS_RX_MACRO is not set
-# CONFIG_SND_SOC_LPASS_TX_MACRO is not set
-# end of CODEC drivers
-
-CONFIG_SND_SIMPLE_CARD_UTILS=m
-CONFIG_SND_SIMPLE_CARD=m
-# CONFIG_SND_AUDIO_GRAPH_CARD is not set
-CONFIG_SND_SYNTH_EMUX=m
-# CONFIG_SND_XEN_FRONTEND is not set
-# CONFIG_SND_VIRTIO is not set
-CONFIG_AC97_BUS=m
-
-#
-# HID support
-#
-CONFIG_HID=m
-CONFIG_HID_BATTERY_STRENGTH=y
-CONFIG_HIDRAW=y
-CONFIG_UHID=m
-CONFIG_HID_GENERIC=m
-
-#
-# Special HID drivers
-#
-CONFIG_HID_A4TECH=m
-# CONFIG_HID_ACCUTOUCH is not set
-CONFIG_HID_ACRUX=m
-CONFIG_HID_ACRUX_FF=y
-CONFIG_HID_APPLE=m
-# CONFIG_HID_APPLEIR is not set
-CONFIG_HID_ASUS=m
-CONFIG_HID_AUREAL=m
-CONFIG_HID_BELKIN=m
-CONFIG_HID_BETOP_FF=m
-# CONFIG_HID_BIGBEN_FF is not set
-CONFIG_HID_CHERRY=m
-CONFIG_HID_CHICONY=m
-CONFIG_HID_CORSAIR=m
-CONFIG_HID_COUGAR=m
-CONFIG_HID_MACALLY=m
-CONFIG_HID_PRODIKEYS=m
-CONFIG_HID_CMEDIA=m
-CONFIG_HID_CP2112=m
-CONFIG_HID_CREATIVE_SB0540=m
-CONFIG_HID_CYPRESS=m
-CONFIG_HID_DRAGONRISE=m
-CONFIG_DRAGONRISE_FF=y
-CONFIG_HID_EMS_FF=m
-# CONFIG_HID_ELAN is not set
-CONFIG_HID_ELECOM=m
-CONFIG_HID_ELO=m
-CONFIG_HID_EZKEY=m
-CONFIG_HID_FT260=m
-CONFIG_HID_GEMBIRD=m
-# CONFIG_HID_GFRM is not set
-CONFIG_HID_GLORIOUS=m
-CONFIG_HID_HOLTEK=m
-CONFIG_HOLTEK_FF=y
-# CONFIG_HID_GOOGLE_HAMMER is not set
-# CONFIG_HID_VIVALDI is not set
-# CONFIG_HID_GT683R is not set
-CONFIG_HID_KEYTOUCH=m
-CONFIG_HID_KYE=m
-CONFIG_HID_UCLOGIC=m
-CONFIG_HID_WALTOP=m
-# CONFIG_HID_VIEWSONIC is not set
-CONFIG_HID_GYRATION=m
-CONFIG_HID_ICADE=m
-# CONFIG_HID_ITE is not set
-CONFIG_HID_JABRA=m
-CONFIG_HID_TWINHAN=m
-CONFIG_HID_KENSINGTON=m
-CONFIG_HID_LCPOWER=m
-CONFIG_HID_LED=m
-CONFIG_HID_LENOVO=m
-CONFIG_HID_LOGITECH=m
-CONFIG_HID_LOGITECH_DJ=m
-CONFIG_HID_LOGITECH_HIDPP=m
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIRUMBLEPAD2_FF=y
-CONFIG_LOGIG940_FF=y
-CONFIG_LOGIWHEELS_FF=y
-CONFIG_HID_MAGICMOUSE=m
-# CONFIG_HID_MALTRON is not set
-# CONFIG_HID_MAYFLASH is not set
-# CONFIG_HID_REDRAGON is not set
-CONFIG_HID_MICROSOFT=m
-CONFIG_HID_MONTEREY=m
-CONFIG_HID_MULTITOUCH=m
-# CONFIG_HID_NTI is not set
-CONFIG_HID_NTRIG=m
-CONFIG_HID_ORTEK=m
-CONFIG_HID_PANTHERLORD=m
-CONFIG_PANTHERLORD_FF=y
-CONFIG_HID_PENMOUNT=m
-CONFIG_HID_PETALYNX=m
-CONFIG_HID_PICOLCD=m
-CONFIG_HID_PICOLCD_FB=y
-CONFIG_HID_PICOLCD_BACKLIGHT=y
-CONFIG_HID_PICOLCD_LEDS=y
-CONFIG_HID_PICOLCD_CIR=y
-CONFIG_HID_PLANTRONICS=m
-CONFIG_HID_PLAYSTATION=m
-CONFIG_PLAYSTATION_FF=y
-CONFIG_HID_PRIMAX=m
-# CONFIG_HID_RETRODE is not set
-CONFIG_HID_ROCCAT=m
-CONFIG_HID_SAITEK=m
-CONFIG_HID_SAMSUNG=m
-CONFIG_HID_SEMITEK=m
-CONFIG_HID_SONY=m
-CONFIG_SONY_FF=y
-CONFIG_HID_SPEEDLINK=m
-# CONFIG_HID_STEAM is not set
-CONFIG_HID_STEELSERIES=m
-CONFIG_HID_SUNPLUS=m
-CONFIG_HID_RMI=m
-CONFIG_HID_GREENASIA=m
-CONFIG_GREENASIA_FF=y
-CONFIG_HID_SMARTJOYPLUS=m
-CONFIG_SMARTJOYPLUS_FF=y
-CONFIG_HID_TIVO=m
-CONFIG_HID_TOPSEED=m
-CONFIG_HID_THINGM=m
-CONFIG_HID_THRUSTMASTER=m
-CONFIG_THRUSTMASTER_FF=y
-# CONFIG_HID_UDRAW_PS3 is not set
-CONFIG_HID_U2FZERO=m
-CONFIG_HID_WACOM=m
-CONFIG_HID_WIIMOTE=m
-CONFIG_HID_XINMO=m
-CONFIG_HID_ZEROPLUS=m
-CONFIG_ZEROPLUS_FF=y
-CONFIG_HID_ZYDACRON=m
-CONFIG_HID_SENSOR_HUB=m
-CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
-CONFIG_HID_ALPS=m
-CONFIG_HID_MCP2221=m
-# end of Special HID drivers
-
-#
-# USB HID support
-#
-CONFIG_USB_HID=m
-CONFIG_HID_PID=y
-CONFIG_USB_HIDDEV=y
-
-#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-# end of USB HID Boot Protocol drivers
-# end of USB HID support
-
-#
-# I2C HID support
-#
-# CONFIG_I2C_HID_OF is not set
-# CONFIG_I2C_HID_OF_GOODIX is not set
-# end of I2C HID support
-# end of HID support
-
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-CONFIG_USB_LED_TRIG=y
-CONFIG_USB_ULPI_BUS=m
-CONFIG_USB_CONN_GPIO=m
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB=m
-CONFIG_USB_PCI=y
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEFAULT_PERSIST=y
-# CONFIG_USB_FEW_INIT_RETRIES is not set
-CONFIG_USB_DYNAMIC_MINORS=y
-# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_PRODUCTLIST is not set
-# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set
-CONFIG_USB_LEDS_TRIGGER_USBPORT=m
-CONFIG_USB_AUTOSUSPEND_DELAY=2
-CONFIG_USB_MON=m
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-CONFIG_USB_XHCI_HCD=m
-# CONFIG_USB_XHCI_DBGCAP is not set
-CONFIG_USB_XHCI_PCI=m
-# CONFIG_USB_XHCI_PCI_RENESAS is not set
-CONFIG_USB_XHCI_PLATFORM=m
-CONFIG_USB_XHCI_MVEBU=m
-CONFIG_USB_XHCI_TEGRA=m
-CONFIG_USB_EHCI_HCD=m
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_EHCI_PCI=m
-CONFIG_USB_EHCI_FSL=m
-CONFIG_USB_EHCI_HCD_OMAP=m
-CONFIG_USB_EHCI_HCD_ORION=m
-CONFIG_USB_EHCI_TEGRA=m
-CONFIG_USB_EHCI_EXYNOS=m
-CONFIG_USB_EHCI_HCD_PLATFORM=m
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_FOTG210_HCD is not set
-# CONFIG_USB_MAX3421_HCD is not set
-CONFIG_USB_OHCI_HCD=m
-CONFIG_USB_OHCI_HCD_OMAP3=m
-CONFIG_USB_OHCI_HCD_PCI=m
-# CONFIG_USB_OHCI_HCD_SSB is not set
-CONFIG_USB_OHCI_EXYNOS=m
-CONFIG_USB_OHCI_HCD_PLATFORM=m
-# CONFIG_USB_UHCI_HCD is not set
-CONFIG_USB_UHCI_SUPPORT_NON_PCI_HC=y
-CONFIG_USB_UHCI_PLATFORM=y
-CONFIG_USB_U132_HCD=m
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_HCD_BCMA is not set
-# CONFIG_USB_HCD_SSB is not set
-# CONFIG_USB_HCD_TEST_MODE is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=m
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_REALTEK=m
-CONFIG_REALTEK_AUTOPM=y
-CONFIG_USB_STORAGE_DATAFAB=m
-CONFIG_USB_STORAGE_FREECOM=m
-CONFIG_USB_STORAGE_ISD200=m
-CONFIG_USB_STORAGE_USBAT=m
-CONFIG_USB_STORAGE_SDDR09=m
-CONFIG_USB_STORAGE_SDDR55=m
-CONFIG_USB_STORAGE_JUMPSHOT=m
-CONFIG_USB_STORAGE_ALAUDA=m
-CONFIG_USB_STORAGE_ONETOUCH=m
-CONFIG_USB_STORAGE_KARMA=m
-CONFIG_USB_STORAGE_CYPRESS_ATACB=m
-CONFIG_USB_STORAGE_ENE_UB6250=m
-CONFIG_USB_UAS=m
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-# CONFIG_USBIP_CORE is not set
-CONFIG_USB_CDNS_SUPPORT=m
-CONFIG_USB_CDNS3=m
-# CONFIG_USB_CDNS3_GADGET is not set
-# CONFIG_USB_CDNS3_HOST is not set
-CONFIG_USB_CDNS3_IMX=m
-CONFIG_USB_MUSB_HDRC=m
-# CONFIG_USB_MUSB_HOST is not set
-# CONFIG_USB_MUSB_GADGET is not set
-CONFIG_USB_MUSB_DUAL_ROLE=y
-
-#
-# Platform Glue Layer
-#
-CONFIG_USB_MUSB_SUNXI=m
-CONFIG_USB_MUSB_TUSB6010=m
-CONFIG_USB_MUSB_OMAP2PLUS=m
-CONFIG_USB_MUSB_AM35X=m
-CONFIG_USB_MUSB_DSPS=m
-
-#
-# MUSB DMA mode
-#
-# CONFIG_MUSB_PIO_ONLY is not set
-CONFIG_USB_INVENTRA_DMA=y
-CONFIG_USB_TI_CPPI41_DMA=y
-CONFIG_USB_TUSB_OMAP_DMA=y
-CONFIG_USB_DWC3=m
-# CONFIG_USB_DWC3_ULPI is not set
-# CONFIG_USB_DWC3_HOST is not set
-# CONFIG_USB_DWC3_GADGET is not set
-CONFIG_USB_DWC3_DUAL_ROLE=y
-
-#
-# Platform Glue Driver Support
-#
-CONFIG_USB_DWC3_OMAP=m
-CONFIG_USB_DWC3_EXYNOS=m
-CONFIG_USB_DWC3_HAPS=m
-CONFIG_USB_DWC3_OF_SIMPLE=m
-CONFIG_USB_DWC2=m
-# CONFIG_USB_DWC2_HOST is not set
-
-#
-# Gadget/Dual-role mode requires USB Gadget support to be enabled
-#
-# CONFIG_USB_DWC2_PERIPHERAL is not set
-CONFIG_USB_DWC2_DUAL_ROLE=y
-# CONFIG_USB_DWC2_PCI is not set
-# CONFIG_USB_DWC2_DEBUG is not set
-# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
-CONFIG_USB_CHIPIDEA=m
-CONFIG_USB_CHIPIDEA_UDC=y
-CONFIG_USB_CHIPIDEA_HOST=y
-CONFIG_USB_CHIPIDEA_PCI=m
-CONFIG_USB_CHIPIDEA_MSM=m
-CONFIG_USB_CHIPIDEA_IMX=m
-CONFIG_USB_CHIPIDEA_GENERIC=m
-CONFIG_USB_CHIPIDEA_TEGRA=m
-# CONFIG_USB_ISP1760 is not set
-
-#
-# USB port drivers
-#
-# CONFIG_USB_USS720 is not set
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_SIMPLE=m
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP210X=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_F81232=m
-# CONFIG_USB_SERIAL_F8153X is not set
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-CONFIG_USB_SERIAL_KEYSPAN=m
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_METRO=m
-CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7715_PARPORT=y
-CONFIG_USB_SERIAL_MOS7840=m
-CONFIG_USB_SERIAL_MXUPORT=m
-CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_QCAUX=m
-CONFIG_USB_SERIAL_QUALCOMM=m
-CONFIG_USB_SERIAL_SPCP8X5=m
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-CONFIG_USB_SERIAL_SYMBOL=m
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_WWAN=m
-CONFIG_USB_SERIAL_OPTION=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_SERIAL_OPTICON=m
-CONFIG_USB_SERIAL_XSENS_MT=m
-CONFIG_USB_SERIAL_WISHBONE=m
-CONFIG_USB_SERIAL_SSU100=m
-CONFIG_USB_SERIAL_QT2=m
-# CONFIG_USB_SERIAL_UPD78F0730 is not set
-# CONFIG_USB_SERIAL_XR is not set
-CONFIG_USB_SERIAL_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_ADUTUX=m
-CONFIG_USB_SEVSEG=m
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_LCD=m
-CONFIG_USB_CYPRESS_CY7C63=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
-CONFIG_USB_APPLEDISPLAY=m
-CONFIG_APPLE_MFI_FASTCHARGE=m
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_LD=m
-CONFIG_USB_TRANCEVIBRATOR=m
-CONFIG_USB_IOWARRIOR=m
-CONFIG_USB_TEST=m
-CONFIG_USB_EHSET_TEST_FIXTURE=m
-CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_YUREX=m
-CONFIG_USB_EZUSB_FX2=m
-# CONFIG_USB_HUB_USB251XB is not set
-CONFIG_USB_HSIC_USB3503=m
-# CONFIG_USB_HSIC_USB4604 is not set
-# CONFIG_USB_LINK_LAYER_TEST is not set
-CONFIG_USB_CHAOSKEY=m
-# CONFIG_USB_ATM is not set
-
-#
-# USB Physical Layer drivers
-#
-CONFIG_USB_PHY=y
-CONFIG_NOP_USB_XCEIV=m
-CONFIG_AM335X_CONTROL_USB=m
-CONFIG_AM335X_PHY_USB=m
-CONFIG_TWL6030_USB=m
-# CONFIG_USB_GPIO_VBUS is not set
-# CONFIG_USB_ISP1301 is not set
-CONFIG_USB_MXS_PHY=m
-CONFIG_USB_TEGRA_PHY=m
-CONFIG_USB_ULPI=y
-CONFIG_USB_ULPI_VIEWPORT=y
-# end of USB Physical Layer drivers
-
-CONFIG_USB_GADGET=m
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-# CONFIG_USB_GADGET_DEBUG_FS is not set
-CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
-# CONFIG_U_SERIAL_CONSOLE is not set
-
-#
-# USB Peripheral Controller
-#
-# CONFIG_USB_FUSB300 is not set
-# CONFIG_USB_FOTG210_UDC is not set
-# CONFIG_USB_GR_UDC is not set
-# CONFIG_USB_R8A66597 is not set
-# CONFIG_USB_PXA27X is not set
-# CONFIG_USB_MV_UDC is not set
-# CONFIG_USB_MV_U3D is not set
-# CONFIG_USB_SNP_UDC_PLAT is not set
-# CONFIG_USB_M66592 is not set
-# CONFIG_USB_BDC_UDC is not set
-# CONFIG_USB_AMD5536UDC is not set
-# CONFIG_USB_NET2272 is not set
-CONFIG_USB_NET2280=m
-# CONFIG_USB_GOKU is not set
-# CONFIG_USB_EG20T is not set
-# CONFIG_USB_GADGET_XILINX is not set
-CONFIG_USB_MAX3420_UDC=m
-CONFIG_USB_TEGRA_XUDC=m
-# CONFIG_USB_DUMMY_HCD is not set
-# end of USB Peripheral Controller
-
-CONFIG_USB_LIBCOMPOSITE=m
-CONFIG_USB_F_ACM=m
-CONFIG_USB_F_SS_LB=m
-CONFIG_USB_U_SERIAL=m
-CONFIG_USB_U_ETHER=m
-CONFIG_USB_U_AUDIO=m
-CONFIG_USB_F_SERIAL=m
-CONFIG_USB_F_OBEX=m
-CONFIG_USB_F_NCM=m
-CONFIG_USB_F_ECM=m
-CONFIG_USB_F_PHONET=m
-CONFIG_USB_F_EEM=m
-CONFIG_USB_F_SUBSET=m
-CONFIG_USB_F_RNDIS=m
-CONFIG_USB_F_MASS_STORAGE=m
-CONFIG_USB_F_FS=m
-CONFIG_USB_F_UAC1=m
-CONFIG_USB_F_UAC2=m
-CONFIG_USB_F_UVC=m
-CONFIG_USB_F_MIDI=m
-CONFIG_USB_F_HID=m
-CONFIG_USB_F_PRINTER=m
-CONFIG_USB_CONFIGFS=m
-CONFIG_USB_CONFIGFS_SERIAL=y
-CONFIG_USB_CONFIGFS_ACM=y
-CONFIG_USB_CONFIGFS_OBEX=y
-CONFIG_USB_CONFIGFS_NCM=y
-CONFIG_USB_CONFIGFS_ECM=y
-CONFIG_USB_CONFIGFS_ECM_SUBSET=y
-CONFIG_USB_CONFIGFS_RNDIS=y
-CONFIG_USB_CONFIGFS_EEM=y
-CONFIG_USB_CONFIGFS_PHONET=y
-CONFIG_USB_CONFIGFS_MASS_STORAGE=y
-CONFIG_USB_CONFIGFS_F_LB_SS=y
-CONFIG_USB_CONFIGFS_F_FS=y
-CONFIG_USB_CONFIGFS_F_UAC1=y
-# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
-CONFIG_USB_CONFIGFS_F_UAC2=y
-CONFIG_USB_CONFIGFS_F_MIDI=y
-CONFIG_USB_CONFIGFS_F_HID=y
-CONFIG_USB_CONFIGFS_F_UVC=y
-CONFIG_USB_CONFIGFS_F_PRINTER=y
-# CONFIG_USB_CONFIGFS_F_TCM is not set
-
-#
-# USB Gadget precomposed configurations
-#
-# CONFIG_USB_ZERO is not set
-# CONFIG_USB_AUDIO is not set
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_RNDIS=y
-# CONFIG_USB_ETH_EEM is not set
-# CONFIG_USB_G_NCM is not set
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FUNCTIONFS=m
-CONFIG_USB_FUNCTIONFS_ETH=y
-CONFIG_USB_FUNCTIONFS_RNDIS=y
-CONFIG_USB_FUNCTIONFS_GENERIC=y
-# CONFIG_USB_MASS_STORAGE is not set
-# CONFIG_USB_GADGET_TARGET is not set
-CONFIG_USB_G_SERIAL=m
-# CONFIG_USB_MIDI_GADGET is not set
-# CONFIG_USB_G_PRINTER is not set
-# CONFIG_USB_CDC_COMPOSITE is not set
-CONFIG_USB_G_NOKIA=m
-# CONFIG_USB_G_ACM_MS is not set
-# CONFIG_USB_G_MULTI is not set
-# CONFIG_USB_G_HID is not set
-# CONFIG_USB_G_DBGP is not set
-# CONFIG_USB_G_WEBCAM is not set
-CONFIG_USB_RAW_GADGET=m
-# end of USB Gadget precomposed configurations
-
-# CONFIG_TYPEC is not set
-CONFIG_USB_ROLE_SWITCH=m
-CONFIG_MMC=y
-CONFIG_PWRSEQ_EMMC=y
-# CONFIG_PWRSEQ_SD8787 is not set
-CONFIG_PWRSEQ_SIMPLE=y
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_MINORS=256
-CONFIG_SDIO_UART=m
-# CONFIG_MMC_TEST is not set
-CONFIG_MMC_CRYPTO=y
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_ARMMMCI=m
-CONFIG_MMC_STM32_SDMMC=y
-CONFIG_MMC_SDHCI=m
-CONFIG_MMC_SDHCI_IO_ACCESSORS=y
-CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=y
-CONFIG_MMC_SDHCI_PLTFM=m
-# CONFIG_MMC_SDHCI_OF_ARASAN is not set
-# CONFIG_MMC_SDHCI_OF_ASPEED is not set
-# CONFIG_MMC_SDHCI_OF_AT91 is not set
-# CONFIG_MMC_SDHCI_OF_ESDHC is not set
-# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
-# CONFIG_MMC_SDHCI_CADENCE is not set
-CONFIG_MMC_SDHCI_ESDHC_IMX=m
-CONFIG_MMC_SDHCI_TEGRA=m
-CONFIG_MMC_SDHCI_S3C=m
-CONFIG_MMC_SDHCI_PXAV3=m
-# CONFIG_MMC_SDHCI_S3C_DMA is not set
-# CONFIG_MMC_SDHCI_F_SDH30 is not set
-# CONFIG_MMC_SDHCI_MILBEAUT is not set
-CONFIG_MMC_SDHCI_IPROC=m
-CONFIG_MMC_OMAP=m
-CONFIG_MMC_OMAP_HS=m
-CONFIG_MMC_ALCOR=m
-# CONFIG_MMC_MXC is not set
-CONFIG_MMC_TIFM_SD=m
-CONFIG_MMC_MVSDIO=m
-CONFIG_MMC_SPI=m
-CONFIG_MMC_CB710=m
-CONFIG_MMC_VIA_SDMMC=m
-CONFIG_MMC_DW=m
-CONFIG_MMC_DW_PLTFM=m
-# CONFIG_MMC_DW_BLUEFIELD is not set
-CONFIG_MMC_DW_EXYNOS=m
-# CONFIG_MMC_DW_HI3798CV200 is not set
-# CONFIG_MMC_DW_K3 is not set
-# CONFIG_MMC_DW_PCI is not set
-CONFIG_MMC_DW_ROCKCHIP=m
-CONFIG_MMC_VUB300=m
-CONFIG_MMC_USHC=m
-CONFIG_MMC_WMT=m
-# CONFIG_MMC_USDHI6ROL0 is not set
-CONFIG_MMC_REALTEK_PCI=m
-CONFIG_MMC_REALTEK_USB=m
-CONFIG_MMC_SUNXI=m
-CONFIG_MMC_CQHCI=m
-CONFIG_MMC_HSQ=m
-CONFIG_MMC_TOSHIBA_PCI=m
-CONFIG_MMC_BCM2835=m
-# CONFIG_MMC_MTK is not set
-# CONFIG_MMC_SDHCI_XENON is not set
-# CONFIG_MMC_SDHCI_OMAP is not set
-CONFIG_MMC_SDHCI_AM654=m
-CONFIG_MEMSTICK=m
-# CONFIG_MEMSTICK_DEBUG is not set
-
-#
-# MemoryStick drivers
-#
-# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
-CONFIG_MSPRO_BLOCK=m
-# CONFIG_MS_BLOCK is not set
-
-#
-# MemoryStick Host Controller Drivers
-#
-CONFIG_MEMSTICK_TIFM_MS=m
-CONFIG_MEMSTICK_JMICRON_38X=m
-CONFIG_MEMSTICK_R592=m
-CONFIG_MEMSTICK_REALTEK_PCI=m
-CONFIG_MEMSTICK_REALTEK_USB=m
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-# CONFIG_LEDS_CLASS_FLASH is not set
-CONFIG_LEDS_CLASS_MULTICOLOR=m
-# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
-
-#
-# LED drivers
-#
-# CONFIG_LEDS_AN30259A is not set
-# CONFIG_LEDS_AW2013 is not set
-# CONFIG_LEDS_BCM6328 is not set
-# CONFIG_LEDS_BCM6358 is not set
-# CONFIG_LEDS_CR0014114 is not set
-# CONFIG_LEDS_EL15203000 is not set
-# CONFIG_LEDS_TURRIS_OMNIA is not set
-# CONFIG_LEDS_LM3530 is not set
-# CONFIG_LEDS_LM3532 is not set
-# CONFIG_LEDS_LM3642 is not set
-# CONFIG_LEDS_LM3692X is not set
-# CONFIG_LEDS_PCA9532 is not set
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_LP3944=m
-# CONFIG_LEDS_LP3952 is not set
-CONFIG_LEDS_LP50XX=m
-CONFIG_LEDS_LP55XX_COMMON=m
-# CONFIG_LEDS_LP5521 is not set
-CONFIG_LEDS_LP5523=m
-# CONFIG_LEDS_LP5562 is not set
-# CONFIG_LEDS_LP8501 is not set
-# CONFIG_LEDS_LP8860 is not set
-CONFIG_LEDS_PCA955X=m
-# CONFIG_LEDS_PCA955X_GPIO is not set
-# CONFIG_LEDS_PCA963X is not set
-CONFIG_LEDS_DA9052=m
-CONFIG_LEDS_DAC124S085=m
-CONFIG_LEDS_PWM=m
-CONFIG_LEDS_REGULATOR=m
-CONFIG_LEDS_BD2802=m
-CONFIG_LEDS_LT3593=m
-CONFIG_LEDS_MC13783=m
-CONFIG_LEDS_NS2=y
-CONFIG_LEDS_TCA6507=m
-# CONFIG_LEDS_TLC591XX is not set
-# CONFIG_LEDS_LM355x is not set
-# CONFIG_LEDS_IS31FL319X is not set
-# CONFIG_LEDS_IS31FL32XX is not set
-
-#
-# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
-#
-# CONFIG_LEDS_BLINKM is not set
-# CONFIG_LEDS_SYSCON is not set
-# CONFIG_LEDS_MLXREG is not set
-# CONFIG_LEDS_USER is not set
-CONFIG_LEDS_SPI_BYTE=m
-CONFIG_LEDS_TI_LMU_COMMON=m
-CONFIG_LEDS_LM3697=m
-
-#
-# Flash and Torch LED drivers
-#
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_ONESHOT=m
-CONFIG_LEDS_TRIGGER_DISK=y
-CONFIG_LEDS_TRIGGER_MTD=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-CONFIG_LEDS_TRIGGER_BACKLIGHT=m
-CONFIG_LEDS_TRIGGER_CPU=y
-CONFIG_LEDS_TRIGGER_ACTIVITY=m
-CONFIG_LEDS_TRIGGER_GPIO=m
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-CONFIG_LEDS_TRIGGER_TRANSIENT=m
-CONFIG_LEDS_TRIGGER_CAMERA=m
-CONFIG_LEDS_TRIGGER_PANIC=y
-# CONFIG_LEDS_TRIGGER_NETDEV is not set
-# CONFIG_LEDS_TRIGGER_PATTERN is not set
-CONFIG_LEDS_TRIGGER_AUDIO=m
-CONFIG_LEDS_TRIGGER_TTY=m
-CONFIG_ACCESSIBILITY=y
-CONFIG_A11Y_BRAILLE_CONSOLE=y
-
-#
-# Speakup console speech
-#
-CONFIG_SPEAKUP=m
-CONFIG_SPEAKUP_SYNTH_ACNTSA=m
-CONFIG_SPEAKUP_SYNTH_APOLLO=m
-CONFIG_SPEAKUP_SYNTH_AUDPTR=m
-CONFIG_SPEAKUP_SYNTH_BNS=m
-CONFIG_SPEAKUP_SYNTH_DECTLK=m
-CONFIG_SPEAKUP_SYNTH_DECEXT=m
-CONFIG_SPEAKUP_SYNTH_LTLK=m
-CONFIG_SPEAKUP_SYNTH_SOFT=m
-CONFIG_SPEAKUP_SYNTH_SPKOUT=m
-CONFIG_SPEAKUP_SYNTH_TXPRT=m
-CONFIG_SPEAKUP_SYNTH_DUMMY=m
-# end of Speakup console speech
-
-CONFIG_INFINIBAND=m
-CONFIG_INFINIBAND_USER_MAD=m
-CONFIG_INFINIBAND_USER_ACCESS=m
-CONFIG_INFINIBAND_USER_MEM=y
-CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
-CONFIG_INFINIBAND_ADDR_TRANS=y
-CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
-CONFIG_INFINIBAND_MTHCA=m
-CONFIG_INFINIBAND_MTHCA_DEBUG=y
-CONFIG_INFINIBAND_CXGB4=m
-CONFIG_INFINIBAND_I40IW=m
-CONFIG_MLX4_INFINIBAND=m
-CONFIG_MLX5_INFINIBAND=m
-CONFIG_INFINIBAND_OCRDMA=m
-CONFIG_INFINIBAND_IPOIB=m
-CONFIG_INFINIBAND_IPOIB_CM=y
-CONFIG_INFINIBAND_IPOIB_DEBUG=y
-# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
-CONFIG_INFINIBAND_SRP=m
-CONFIG_INFINIBAND_SRPT=m
-CONFIG_INFINIBAND_ISER=m
-CONFIG_INFINIBAND_ISERT=m
-CONFIG_INFINIBAND_RTRS=m
-CONFIG_INFINIBAND_RTRS_CLIENT=m
-CONFIG_INFINIBAND_RTRS_SERVER=m
-CONFIG_EDAC_ATOMIC_SCRUB=y
-CONFIG_EDAC_SUPPORT=y
-# CONFIG_EDAC is not set
-CONFIG_RTC_LIB=y
-CONFIG_RTC_MC146818_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-CONFIG_RTC_SYSTOHC=y
-CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-CONFIG_RTC_NVMEM=y
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_ABB5ZES3 is not set
-# CONFIG_RTC_DRV_ABEOZ9 is not set
-# CONFIG_RTC_DRV_ABX80X is not set
-CONFIG_RTC_DRV_AS3722=y
-CONFIG_RTC_DRV_DS1307=y
-# CONFIG_RTC_DRV_DS1307_CENTURY is not set
-# CONFIG_RTC_DRV_DS1374 is not set
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_HYM8563 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-CONFIG_RTC_DRV_MAX77686=y
-CONFIG_RTC_DRV_RK808=y
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_ISL12022 is not set
-# CONFIG_RTC_DRV_ISL12026 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-CONFIG_RTC_DRV_PCF8523=y
-# CONFIG_RTC_DRV_PCF85063 is not set
-# CONFIG_RTC_DRV_PCF85363 is not set
-CONFIG_RTC_DRV_PCF8563=y
-# CONFIG_RTC_DRV_PCF8583 is not set
-# CONFIG_RTC_DRV_M41T80 is not set
-CONFIG_RTC_DRV_BD70528=m
-# CONFIG_RTC_DRV_BQ32K is not set
-CONFIG_RTC_DRV_TWL4030=y
-CONFIG_RTC_DRV_PALMAS=y
-# CONFIG_RTC_DRV_S35390A is not set
-# CONFIG_RTC_DRV_FM3130 is not set
-# CONFIG_RTC_DRV_RX8010 is not set
-# CONFIG_RTC_DRV_RX8581 is not set
-# CONFIG_RTC_DRV_RX8025 is not set
-# CONFIG_RTC_DRV_EM3027 is not set
-# CONFIG_RTC_DRV_RV3028 is not set
-# CONFIG_RTC_DRV_RV3032 is not set
-# CONFIG_RTC_DRV_RV8803 is not set
-CONFIG_RTC_DRV_S5M=y
-# CONFIG_RTC_DRV_SD3078 is not set
-
-#
-# SPI RTC drivers
-#
-# CONFIG_RTC_DRV_M41T93 is not set
-# CONFIG_RTC_DRV_M41T94 is not set
-# CONFIG_RTC_DRV_DS1302 is not set
-# CONFIG_RTC_DRV_DS1305 is not set
-# CONFIG_RTC_DRV_DS1343 is not set
-# CONFIG_RTC_DRV_DS1347 is not set
-# CONFIG_RTC_DRV_DS1390 is not set
-# CONFIG_RTC_DRV_MAX6916 is not set
-# CONFIG_RTC_DRV_R9701 is not set
-# CONFIG_RTC_DRV_RX4581 is not set
-# CONFIG_RTC_DRV_RS5C348 is not set
-# CONFIG_RTC_DRV_MAX6902 is not set
-# CONFIG_RTC_DRV_PCF2123 is not set
-# CONFIG_RTC_DRV_MCP795 is not set
-CONFIG_RTC_I2C_AND_SPI=y
-
-#
-# SPI and I2C RTC drivers
-#
-# CONFIG_RTC_DRV_DS3232 is not set
-# CONFIG_RTC_DRV_PCF2127 is not set
-# CONFIG_RTC_DRV_RV3029C2 is not set
-# CONFIG_RTC_DRV_RX6110 is not set
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=m
-# CONFIG_RTC_DRV_DS1286 is not set
-# CONFIG_RTC_DRV_DS1511 is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_DS1685_FAMILY is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_DS2404 is not set
-CONFIG_RTC_DRV_DA9052=y
-CONFIG_RTC_DRV_EFI=y
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T35 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_MSM6242 is not set
-# CONFIG_RTC_DRV_BQ4802 is not set
-# CONFIG_RTC_DRV_RP5C01 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-# CONFIG_RTC_DRV_ZYNQMP is not set
-CONFIG_RTC_DRV_CROS_EC=m
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_RTC_DRV_IMXDI=y
-CONFIG_RTC_DRV_OMAP=y
-CONFIG_HAVE_S3C_RTC=y
-# CONFIG_RTC_DRV_S3C is not set
-CONFIG_RTC_DRV_PL030=y
-CONFIG_RTC_DRV_PL031=y
-CONFIG_RTC_DRV_VT8500=y
-CONFIG_RTC_DRV_SUN6I=y
-CONFIG_RTC_DRV_SUNXI=y
-CONFIG_RTC_DRV_MV=y
-CONFIG_RTC_DRV_ARMADA38X=y
-# CONFIG_RTC_DRV_CADENCE is not set
-# CONFIG_RTC_DRV_FTRTC010 is not set
-CONFIG_RTC_DRV_MC13XXX=m
-CONFIG_RTC_DRV_TEGRA=y
-CONFIG_RTC_DRV_MXC=y
-CONFIG_RTC_DRV_MXC_V2=m
-CONFIG_RTC_DRV_SNVS=y
-# CONFIG_RTC_DRV_R7301 is not set
-CONFIG_RTC_DRV_RTD119X=y
-
-#
-# HID Sensor RTC drivers
-#
-# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
-# CONFIG_RTC_DRV_GOLDFISH is not set
-CONFIG_DMADEVICES=y
-# CONFIG_DMADEVICES_DEBUG is not set
-
-#
-# DMA Devices
-#
-CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
-CONFIG_DMA_ENGINE=y
-CONFIG_DMA_VIRTUAL_CHANNELS=y
-CONFIG_DMA_OF=y
-CONFIG_ALTERA_MSGDMA=m
-CONFIG_AMBA_PL08X=y
-# CONFIG_AXI_DMAC is not set
-CONFIG_DMA_BCM2835=y
-CONFIG_DMA_SUN4I=y
-CONFIG_DMA_SUN6I=m
-# CONFIG_DW_AXI_DMAC is not set
-# CONFIG_FSL_EDMA is not set
-# CONFIG_FSL_QDMA is not set
-CONFIG_IMX_DMA=y
-CONFIG_IMX_SDMA=y
-# CONFIG_INTEL_IDMA64 is not set
-CONFIG_MV_XOR=y
-CONFIG_MXS_DMA=y
-CONFIG_MX3_IPU=y
-CONFIG_MX3_IPU_IRQS=4
-# CONFIG_NBPFAXI_DMA is not set
-CONFIG_PL330_DMA=y
-CONFIG_PLX_DMA=m
-CONFIG_TEGRA20_APB_DMA=y
-CONFIG_XILINX_ZYNQMP_DPDMA=m
-# CONFIG_QCOM_HIDMA_MGMT is not set
-# CONFIG_QCOM_HIDMA is not set
-# CONFIG_DW_DMAC is not set
-# CONFIG_DW_DMAC_PCI is not set
-CONFIG_DW_EDMA=m
-CONFIG_DW_EDMA_PCIE=m
-CONFIG_SF_PDMA=m
-CONFIG_TI_CPPI41=m
-CONFIG_TI_EDMA=y
-CONFIG_DMA_OMAP=y
-CONFIG_TI_DMA_CROSSBAR=y
-
-#
-# DMA Clients
-#
-CONFIG_ASYNC_TX_DMA=y
-# CONFIG_DMATEST is not set
-CONFIG_DMA_ENGINE_RAID=y
-
-#
-# DMABUF options
-#
-CONFIG_SYNC_FILE=y
-# CONFIG_SW_SYNC is not set
-# CONFIG_UDMABUF is not set
-# CONFIG_DMABUF_MOVE_NOTIFY is not set
-# CONFIG_DMABUF_DEBUG is not set
-# CONFIG_DMABUF_SELFTESTS is not set
-# CONFIG_DMABUF_HEAPS is not set
-# end of DMABUF options
-
-# CONFIG_AUXDISPLAY is not set
-# CONFIG_PANEL is not set
-CONFIG_UIO=m
-CONFIG_UIO_CIF=m
-# CONFIG_UIO_PDRV_GENIRQ is not set
-# CONFIG_UIO_DMEM_GENIRQ is not set
-CONFIG_UIO_AEC=m
-CONFIG_UIO_SERCOS3=m
-CONFIG_UIO_PCI_GENERIC=m
-CONFIG_UIO_NETX=m
-# CONFIG_UIO_PRUSS is not set
-CONFIG_UIO_MF624=m
-# CONFIG_VFIO is not set
-CONFIG_IRQ_BYPASS_MANAGER=m
-CONFIG_VIRT_DRIVERS=y
-CONFIG_VIRTIO=m
-CONFIG_VIRTIO_PCI_LIB=m
-CONFIG_VIRTIO_MENU=y
-CONFIG_VIRTIO_PCI=m
-CONFIG_VIRTIO_PCI_LEGACY=y
-CONFIG_VIRTIO_VDPA=m
-CONFIG_VIRTIO_BALLOON=m
-CONFIG_VIRTIO_INPUT=m
-CONFIG_VIRTIO_MMIO=m
-# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
-CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
-CONFIG_VDPA=m
-# CONFIG_VDPA_SIM is not set
-CONFIG_IFCVF=m
-CONFIG_MLX5_VDPA=y
-CONFIG_MLX5_VDPA_NET=m
-# CONFIG_VP_VDPA is not set
-CONFIG_VHOST_IOTLB=m
-CONFIG_VHOST=m
-CONFIG_VHOST_MENU=y
-CONFIG_VHOST_NET=m
-CONFIG_VHOST_SCSI=m
-CONFIG_VHOST_VSOCK=m
-CONFIG_VHOST_VDPA=m
-# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
-
-#
-# Microsoft Hyper-V guest support
-#
-# end of Microsoft Hyper-V guest support
-
-#
-# Xen driver support
-#
-CONFIG_XEN_BALLOON=y
-CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
-CONFIG_XEN_DEV_EVTCHN=m
-CONFIG_XEN_BACKEND=y
-CONFIG_XENFS=m
-CONFIG_XEN_COMPAT_XENFS=y
-CONFIG_XEN_SYS_HYPERVISOR=y
-CONFIG_XEN_XENBUS_FRONTEND=y
-CONFIG_XEN_GNTDEV=m
-CONFIG_XEN_GRANT_DEV_ALLOC=m
-# CONFIG_XEN_GRANT_DMA_ALLOC is not set
-CONFIG_SWIOTLB_XEN=y
-CONFIG_XEN_PVCALLS_FRONTEND=m
-# CONFIG_XEN_PVCALLS_BACKEND is not set
-CONFIG_XEN_SCSI_BACKEND=m
-CONFIG_XEN_PRIVCMD=m
-CONFIG_XEN_EFI=y
-CONFIG_XEN_AUTO_XLATE=y
-# end of Xen driver support
-
-# CONFIG_GREYBUS is not set
-# CONFIG_COMEDI is not set
-CONFIG_STAGING=y
-# CONFIG_PRISM2_USB is not set
-# CONFIG_RTL8192U is not set
-# CONFIG_RTLLIB is not set
-# CONFIG_RTL8723BS is not set
-CONFIG_R8712U=m
-CONFIG_R8188EU=m
-CONFIG_88EU_AP_MODE=y
-# CONFIG_RTS5208 is not set
-# CONFIG_VT6655 is not set
-# CONFIG_VT6656 is not set
-
-#
-# IIO staging drivers
-#
-
-#
-# Accelerometers
-#
-# CONFIG_ADIS16203 is not set
-# CONFIG_ADIS16240 is not set
-# end of Accelerometers
-
-#
-# Analog to digital converters
-#
-# CONFIG_AD7816 is not set
-# CONFIG_AD7280 is not set
-# end of Analog to digital converters
-
-#
-# Analog digital bi-direction converters
-#
-# CONFIG_ADT7316 is not set
-# end of Analog digital bi-direction converters
-
-#
-# Capacitance to digital converters
-#
-# CONFIG_AD7746 is not set
-# end of Capacitance to digital converters
-
-#
-# Direct Digital Synthesis
-#
-# CONFIG_AD9832 is not set
-# CONFIG_AD9834 is not set
-# end of Direct Digital Synthesis
-
-#
-# Network Analyzer, Impedance Converters
-#
-# CONFIG_AD5933 is not set
-# end of Network Analyzer, Impedance Converters
-
-#
-# Active energy metering IC
-#
-# CONFIG_ADE7854 is not set
-# end of Active energy metering IC
-
-#
-# Resolver to digital converters
-#
-# CONFIG_AD2S1210 is not set
-# end of Resolver to digital converters
-# end of IIO staging drivers
-
-# CONFIG_FB_SM750 is not set
-# CONFIG_MFD_NVEC is not set
-# CONFIG_STAGING_MEDIA is not set
-
-#
-# Android
-#
-# end of Android
-
-# CONFIG_STAGING_BOARD is not set
-# CONFIG_LTE_GDM724X is not set
-# CONFIG_FIREWIRE_SERIAL is not set
-# CONFIG_GS_FPGABOOT is not set
-# CONFIG_UNISYSSPAR is not set
-# CONFIG_FB_TFT is not set
-# CONFIG_KS7010 is not set
-CONFIG_BCM_VIDEOCORE=y
-# CONFIG_BCM2835_VCHIQ is not set
-# CONFIG_SND_BCM2835 is not set
-# CONFIG_VIDEO_BCM2835 is not set
-CONFIG_PI433=m
-# CONFIG_XIL_AXIS_FIFO is not set
-# CONFIG_FIELDBUS_DEV is not set
-# CONFIG_KPC2000 is not set
-CONFIG_QLGE=m
-CONFIG_WFX=m
-# CONFIG_GOLDFISH is not set
-CONFIG_CHROME_PLATFORMS=y
-CONFIG_CROS_EC=m
-CONFIG_CROS_EC_I2C=m
-CONFIG_CROS_EC_SPI=m
-CONFIG_CROS_EC_PROTO=y
-CONFIG_CROS_EC_CHARDEV=m
-# CONFIG_CROS_EC_LIGHTBAR is not set
-CONFIG_CROS_EC_VBC=m
-CONFIG_CROS_EC_DEBUGFS=m
-CONFIG_CROS_EC_SENSORHUB=m
-CONFIG_CROS_EC_SYSFS=m
-CONFIG_CROS_USBPD_LOGGER=m
-CONFIG_CROS_USBPD_NOTIFY=m
-# CONFIG_MELLANOX_PLATFORM is not set
-CONFIG_HAVE_CLK=y
-CONFIG_CLKDEV_LOOKUP=y
-CONFIG_HAVE_CLK_PREPARE=y
-CONFIG_COMMON_CLK=y
-
-#
-# Clock driver for ARM Reference designs
-#
-CONFIG_ICST=y
-CONFIG_CLK_SP810=y
-CONFIG_CLK_VEXPRESS_OSC=y
-# end of Clock driver for ARM Reference designs
-
-CONFIG_COMMON_CLK_MAX77686=m
-CONFIG_COMMON_CLK_MAX9485=m
-CONFIG_COMMON_CLK_RK808=m
-CONFIG_COMMON_CLK_SCMI=m
-CONFIG_COMMON_CLK_SI5341=m
-# CONFIG_COMMON_CLK_SI5351 is not set
-# CONFIG_COMMON_CLK_SI514 is not set
-# CONFIG_COMMON_CLK_SI544 is not set
-# CONFIG_COMMON_CLK_SI570 is not set
-# CONFIG_COMMON_CLK_CDCE706 is not set
-# CONFIG_COMMON_CLK_CDCE925 is not set
-# CONFIG_COMMON_CLK_CS2000_CP is not set
-CONFIG_COMMON_CLK_S2MPS11=m
-CONFIG_CLK_TWL6040=m
-CONFIG_COMMON_CLK_AXI_CLKGEN=m
-CONFIG_COMMON_CLK_PALMAS=m
-# CONFIG_COMMON_CLK_PWM is not set
-# CONFIG_COMMON_CLK_VC5 is not set
-# CONFIG_COMMON_CLK_BD718XX is not set
-# CONFIG_COMMON_CLK_FIXED_MMIO is not set
-CONFIG_CLK_BCM2711_DVP=y
-# CONFIG_CLK_BCM2835 is not set
-CONFIG_CLK_RASPBERRYPI=m
-CONFIG_MXC_CLK=y
-CONFIG_CLK_IMX5=y
-CONFIG_CLK_IMX6Q=y
-# CONFIG_CLK_IMX8MM is not set
-# CONFIG_CLK_IMX8MN is not set
-# CONFIG_CLK_IMX8MP is not set
-# CONFIG_CLK_IMX8MQ is not set
-CONFIG_MSTAR_MSC313_MPLL=y
-CONFIG_MVEBU_CLK_COMMON=y
-CONFIG_MVEBU_CLK_CPU=y
-CONFIG_MVEBU_CLK_COREDIV=y
-CONFIG_ARMADA_AP_CP_HELPER=y
-CONFIG_ARMADA_370_CLK=y
-CONFIG_ARMADA_375_CLK=y
-CONFIG_ARMADA_38X_CLK=y
-CONFIG_ARMADA_39X_CLK=y
-CONFIG_ARMADA_XP_CLK=y
-CONFIG_ARMADA_AP_CPU_CLK=y
-CONFIG_COMMON_CLK_ROCKCHIP=y
-CONFIG_CLK_RV110X=y
-CONFIG_CLK_RK3036=y
-CONFIG_CLK_RK312X=y
-CONFIG_CLK_RK3188=y
-CONFIG_CLK_RK322X=y
-CONFIG_CLK_RK3288=y
-CONFIG_COMMON_CLK_SAMSUNG=y
-CONFIG_EXYNOS_4_COMMON_CLK=y
-CONFIG_EXYNOS_5250_COMMON_CLK=y
-CONFIG_EXYNOS_5260_COMMON_CLK=y
-CONFIG_EXYNOS_5410_COMMON_CLK=y
-CONFIG_EXYNOS_5420_COMMON_CLK=y
-CONFIG_EXYNOS_AUDSS_CLK_CON=y
-CONFIG_EXYNOS_CLKOUT=y
-CONFIG_CLK_INTEL_SOCFPGA=y
-CONFIG_CLK_INTEL_SOCFPGA32=y
-CONFIG_CLK_SUNXI=y
-CONFIG_CLK_SUNXI_CLOCKS=y
-CONFIG_CLK_SUNXI_PRCM_SUN6I=y
-CONFIG_CLK_SUNXI_PRCM_SUN8I=y
-CONFIG_CLK_SUNXI_PRCM_SUN9I=y
-CONFIG_SUNXI_CCU=y
-CONFIG_SUN4I_A10_CCU=y
-CONFIG_SUN5I_CCU=y
-CONFIG_SUN6I_A31_CCU=y
-CONFIG_SUN8I_A23_CCU=y
-CONFIG_SUN8I_A33_CCU=y
-CONFIG_SUN8I_A83T_CCU=y
-CONFIG_SUN8I_H3_CCU=y
-CONFIG_SUN8I_V3S_CCU=y
-# CONFIG_SUN8I_DE2_CCU is not set
-CONFIG_SUN8I_R40_CCU=y
-CONFIG_SUN9I_A80_CCU=y
-CONFIG_SUN8I_R_CCU=y
-CONFIG_TEGRA_CLK_DFLL=y
-CONFIG_TEGRA124_CLK_EMC=y
-CONFIG_COMMON_CLK_TI_ADPLL=y
-# CONFIG_XILINX_VCU is not set
-# CONFIG_HWSPINLOCK is not set
-
-#
-# Clock Source drivers
-#
-CONFIG_TIMER_OF=y
-CONFIG_TIMER_PROBE=y
-CONFIG_OMAP_DM_TIMER=y
-CONFIG_CLKSRC_MMIO=y
-CONFIG_BCM2835_TIMER=y
-CONFIG_DW_APB_TIMER=y
-CONFIG_DW_APB_TIMER_OF=y
-CONFIG_ROCKCHIP_TIMER=y
-CONFIG_ARMADA_370_XP_TIMER=y
-CONFIG_SUN4I_TIMER=y
-CONFIG_SUN5I_HSTIMER=y
-CONFIG_TEGRA_TIMER=y
-CONFIG_VT8500_TIMER=y
-CONFIG_CLKSRC_TI_32K=y
-CONFIG_ARM_ARCH_TIMER=y
-CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
-CONFIG_ARM_GLOBAL_TIMER=y
-CONFIG_ARM_TIMER_SP804=y
-CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y
-CONFIG_CLKSRC_EXYNOS_MCT=y
-CONFIG_CLKSRC_SAMSUNG_PWM=y
-CONFIG_CLKSRC_VERSATILE=y
-CONFIG_CLKSRC_IMX_GPT=y
-# CONFIG_MICROCHIP_PIT64B is not set
-# end of Clock Source drivers
-
-CONFIG_MAILBOX=y
-# CONFIG_ARM_MHU is not set
-# CONFIG_ARM_MHU_V2 is not set
-CONFIG_IMX_MBOX=m
-# CONFIG_PLATFORM_MHU is not set
-CONFIG_PL320_MBOX=y
-# CONFIG_ARMADA_37XX_RWTM_MBOX is not set
-CONFIG_OMAP2PLUS_MBOX=y
-CONFIG_OMAP_MBOX_KFIFO_SIZE=256
-# CONFIG_ROCKCHIP_MBOX is not set
-# CONFIG_ALTERA_MBOX is not set
-CONFIG_BCM2835_MBOX=y
-# CONFIG_MAILBOX_TEST is not set
-# CONFIG_TEGRA_HSP_MBOX is not set
-CONFIG_SUN6I_MSGBOX=m
-CONFIG_IOMMU_API=y
-CONFIG_IOMMU_SUPPORT=y
-
-#
-# Generic IOMMU Pagetable Support
-#
-CONFIG_IOMMU_IO_PGTABLE=y
-CONFIG_IOMMU_IO_PGTABLE_LPAE=y
-# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
-# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
-# end of Generic IOMMU Pagetable Support
-
-# CONFIG_IOMMU_DEBUGFS is not set
-# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
-CONFIG_OF_IOMMU=y
-CONFIG_OMAP_IOMMU=y
-# CONFIG_OMAP_IOMMU_DEBUG is not set
-CONFIG_ROCKCHIP_IOMMU=y
-# CONFIG_SUN50I_IOMMU is not set
-CONFIG_TEGRA_IOMMU_SMMU=y
-# CONFIG_EXYNOS_IOMMU is not set
-# CONFIG_ARM_SMMU is not set
-
-#
-# Remoteproc drivers
-#
-# CONFIG_REMOTEPROC is not set
-# end of Remoteproc drivers
-
-#
-# Rpmsg drivers
-#
-# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
-# CONFIG_RPMSG_VIRTIO is not set
-# end of Rpmsg drivers
-
-# CONFIG_SOUNDWIRE is not set
-
-#
-# SOC (System On Chip) specific Drivers
-#
-
-#
-# Amlogic SoC drivers
-#
-# end of Amlogic SoC drivers
-
-#
-# Broadcom SoC drivers
-#
-CONFIG_BCM2835_POWER=y
-CONFIG_RASPBERRYPI_POWER=y
-# CONFIG_SOC_BRCMSTB is not set
-# end of Broadcom SoC drivers
-
-#
-# NXP/Freescale QorIQ SoC drivers
-#
-# CONFIG_QUICC_ENGINE is not set
-CONFIG_FSL_RCPM=y
-# end of NXP/Freescale QorIQ SoC drivers
-
-#
-# i.MX SoC drivers
-#
-CONFIG_IMX_GPCV2_PM_DOMAINS=y
-CONFIG_SOC_IMX8M=y
-# end of i.MX SoC drivers
-
-#
-# Enable LiteX SoC Builder specific drivers
-#
-# CONFIG_LITEX_SOC_CONTROLLER is not set
-# end of Enable LiteX SoC Builder specific drivers
-
-#
-# Qualcomm SoC drivers
-#
-CONFIG_QCOM_QMI_HELPERS=m
-# end of Qualcomm SoC drivers
-
-CONFIG_ROCKCHIP_GRF=y
-CONFIG_ROCKCHIP_IODOMAIN=m
-CONFIG_ROCKCHIP_PM_DOMAINS=y
-CONFIG_SOC_SAMSUNG=y
-CONFIG_EXYNOS_ASV_ARM=y
-CONFIG_EXYNOS_CHIPID=y
-CONFIG_EXYNOS_PMU=y
-CONFIG_EXYNOS_PMU_ARM_DRIVERS=y
-CONFIG_EXYNOS_PM_DOMAINS=y
-CONFIG_EXYNOS_REGULATOR_COUPLER=y
-CONFIG_SUNXI_MBUS=y
-CONFIG_SUNXI_SRAM=y
-# CONFIG_ARCH_TEGRA_2x_SOC is not set
-# CONFIG_ARCH_TEGRA_3x_SOC is not set
-# CONFIG_ARCH_TEGRA_114_SOC is not set
-CONFIG_ARCH_TEGRA_124_SOC=y
-CONFIG_SOC_TEGRA_FUSE=y
-CONFIG_SOC_TEGRA_FLOWCTRL=y
-CONFIG_SOC_TEGRA_PMC=y
-# CONFIG_SOC_TI is not set
-
-#
-# Xilinx SoC drivers
-#
-# end of Xilinx SoC drivers
-# end of SOC (System On Chip) specific Drivers
-
-CONFIG_PM_DEVFREQ=y
-
-#
-# DEVFREQ Governors
-#
-CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
-# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
-# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
-CONFIG_DEVFREQ_GOV_USERSPACE=m
-# CONFIG_DEVFREQ_GOV_PASSIVE is not set
-
-#
-# DEVFREQ Drivers
-#
-# CONFIG_ARM_EXYNOS_BUS_DEVFREQ is not set
-CONFIG_ARM_IMX_BUS_DEVFREQ=m
-CONFIG_ARM_IMX8M_DDRC_DEVFREQ=m
-CONFIG_ARM_TEGRA_DEVFREQ=m
-# CONFIG_ARM_RK3399_DMC_DEVFREQ is not set
-# CONFIG_PM_DEVFREQ_EVENT is not set
-CONFIG_EXTCON=y
-
-#
-# Extcon Device Drivers
-#
-# CONFIG_EXTCON_ADC_JACK is not set
-CONFIG_EXTCON_FSA9480=m
-# CONFIG_EXTCON_GPIO is not set
-# CONFIG_EXTCON_MAX3355 is not set
-CONFIG_EXTCON_PALMAS=m
-CONFIG_EXTCON_PTN5150=m
-# CONFIG_EXTCON_RT8973A is not set
-# CONFIG_EXTCON_SM5502 is not set
-CONFIG_EXTCON_USB_GPIO=m
-CONFIG_EXTCON_USBC_CROS_EC=m
-CONFIG_EXTCON_USBC_TUSB320=m
-CONFIG_MEMORY=y
-CONFIG_DDR=y
-# CONFIG_ARM_PL172_MPMC is not set
-CONFIG_TI_EMIF=m
-CONFIG_OMAP_GPMC=y
-# CONFIG_OMAP_GPMC_DEBUG is not set
-CONFIG_TI_EMIF_SRAM=m
-CONFIG_MVEBU_DEVBUS=y
-CONFIG_PL353_SMC=y
-CONFIG_SAMSUNG_MC=y
-CONFIG_EXYNOS_SROM=y
-CONFIG_TEGRA_MC=y
-CONFIG_TEGRA124_EMC=y
-CONFIG_IIO=m
-CONFIG_IIO_BUFFER=y
-CONFIG_IIO_BUFFER_CB=m
-CONFIG_IIO_BUFFER_DMA=m
-CONFIG_IIO_BUFFER_DMAENGINE=m
-# CONFIG_IIO_BUFFER_HW_CONSUMER is not set
-CONFIG_IIO_KFIFO_BUF=m
-CONFIG_IIO_TRIGGERED_BUFFER=m
-# CONFIG_IIO_CONFIGFS is not set
-CONFIG_IIO_TRIGGER=y
-CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
-# CONFIG_IIO_SW_DEVICE is not set
-# CONFIG_IIO_SW_TRIGGER is not set
-# CONFIG_IIO_TRIGGERED_EVENT is not set
-
-#
-# Accelerometers
-#
-# CONFIG_ADIS16201 is not set
-# CONFIG_ADIS16209 is not set
-# CONFIG_ADXL345_I2C is not set
-# CONFIG_ADXL345_SPI is not set
-# CONFIG_ADXL372_SPI is not set
-# CONFIG_ADXL372_I2C is not set
-# CONFIG_BMA180 is not set
-# CONFIG_BMA220 is not set
-CONFIG_BMA400=m
-CONFIG_BMA400_I2C=m
-CONFIG_BMA400_SPI=m
-# CONFIG_BMC150_ACCEL is not set
-# CONFIG_BMI088_ACCEL is not set
-# CONFIG_DA280 is not set
-# CONFIG_DA311 is not set
-# CONFIG_DMARD06 is not set
-# CONFIG_DMARD09 is not set
-# CONFIG_DMARD10 is not set
-CONFIG_HID_SENSOR_ACCEL_3D=m
-CONFIG_IIO_ST_ACCEL_3AXIS=m
-CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
-CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
-# CONFIG_KXSD9 is not set
-# CONFIG_KXCJK1013 is not set
-# CONFIG_MC3230 is not set
-# CONFIG_MMA7455_I2C is not set
-# CONFIG_MMA7455_SPI is not set
-# CONFIG_MMA7660 is not set
-CONFIG_MMA8452=m
-# CONFIG_MMA9551 is not set
-# CONFIG_MMA9553 is not set
-# CONFIG_MXC4005 is not set
-# CONFIG_MXC6255 is not set
-# CONFIG_SCA3000 is not set
-# CONFIG_STK8312 is not set
-# CONFIG_STK8BA50 is not set
-# end of Accelerometers
-
-#
-# Analog to digital converters
-#
-CONFIG_AD7091R5=m
-# CONFIG_AD7124 is not set
-# CONFIG_AD7192 is not set
-# CONFIG_AD7266 is not set
-# CONFIG_AD7291 is not set
-# CONFIG_AD7292 is not set
-# CONFIG_AD7298 is not set
-# CONFIG_AD7476 is not set
-# CONFIG_AD7606_IFACE_PARALLEL is not set
-# CONFIG_AD7606_IFACE_SPI is not set
-# CONFIG_AD7766 is not set
-# CONFIG_AD7768_1 is not set
-# CONFIG_AD7780 is not set
-# CONFIG_AD7791 is not set
-# CONFIG_AD7793 is not set
-# CONFIG_AD7887 is not set
-# CONFIG_AD7923 is not set
-# CONFIG_AD7949 is not set
-# CONFIG_AD799X is not set
-# CONFIG_ADI_AXI_ADC is not set
-CONFIG_AXP20X_ADC=m
-CONFIG_AXP288_ADC=m
-# CONFIG_CC10001_ADC is not set
-# CONFIG_ENVELOPE_DETECTOR is not set
-CONFIG_EXYNOS_ADC=m
-# CONFIG_HI8435 is not set
-# CONFIG_HX711 is not set
-# CONFIG_INA2XX_ADC is not set
-# CONFIG_IMX7D_ADC is not set
-CONFIG_LTC2471=m
-# CONFIG_LTC2485 is not set
-# CONFIG_LTC2496 is not set
-# CONFIG_LTC2497 is not set
-# CONFIG_MAX1027 is not set
-# CONFIG_MAX11100 is not set
-# CONFIG_MAX1118 is not set
-# CONFIG_MAX1241 is not set
-# CONFIG_MAX1363 is not set
-# CONFIG_MAX9611 is not set
-# CONFIG_MCP320X is not set
-# CONFIG_MCP3422 is not set
-# CONFIG_MCP3911 is not set
-# CONFIG_MEDIATEK_MT6360_ADC is not set
-# CONFIG_MP2629_ADC is not set
-# CONFIG_NAU7802 is not set
-# CONFIG_PALMAS_GPADC is not set
-CONFIG_ROCKCHIP_SARADC=m
-CONFIG_SD_ADC_MODULATOR=m
-# CONFIG_STMPE_ADC is not set
-# CONFIG_SUN4I_GPADC is not set
-# CONFIG_TI_ADC081C is not set
-# CONFIG_TI_ADC0832 is not set
-# CONFIG_TI_ADC084S021 is not set
-# CONFIG_TI_ADC12138 is not set
-# CONFIG_TI_ADC108S102 is not set
-# CONFIG_TI_ADC128S052 is not set
-# CONFIG_TI_ADC161S626 is not set
-# CONFIG_TI_ADS1015 is not set
-# CONFIG_TI_ADS7950 is not set
-# CONFIG_TI_ADS8344 is not set
-# CONFIG_TI_ADS8688 is not set
-# CONFIG_TI_ADS124S08 is not set
-# CONFIG_TI_ADS131E08 is not set
-CONFIG_TI_AM335X_ADC=m
-# CONFIG_TI_TLC4541 is not set
-CONFIG_TWL4030_MADC=m
-# CONFIG_TWL6030_GPADC is not set
-# CONFIG_VF610_ADC is not set
-CONFIG_VIPERBOARD_ADC=m
-CONFIG_XILINX_XADC=m
-# end of Analog to digital converters
-
-#
-# Analog Front Ends
-#
-# CONFIG_IIO_RESCALE is not set
-# end of Analog Front Ends
-
-#
-# Amplifiers
-#
-# CONFIG_AD8366 is not set
-# CONFIG_HMC425 is not set
-# end of Amplifiers
-
-#
-# Capacitance to digital converters
-#
-# CONFIG_AD7150 is not set
-# end of Capacitance to digital converters
-
-#
-# Chemical Sensors
-#
-# CONFIG_ATLAS_PH_SENSOR is not set
-# CONFIG_ATLAS_EZO_SENSOR is not set
-# CONFIG_BME680 is not set
-CONFIG_CCS811=m
-# CONFIG_IAQCORE is not set
-CONFIG_SCD30_CORE=m
-CONFIG_SCD30_I2C=m
-# CONFIG_SENSIRION_SGP30 is not set
-# CONFIG_SPS30 is not set
-# CONFIG_VZ89X is not set
-# end of Chemical Sensors
-
-# CONFIG_IIO_CROS_EC_SENSORS_CORE is not set
-
-#
-# Hid Sensor IIO Common
-#
-CONFIG_HID_SENSOR_IIO_COMMON=m
-CONFIG_HID_SENSOR_IIO_TRIGGER=m
-# end of Hid Sensor IIO Common
-
-#
-# IIO SCMI Sensors
-#
-CONFIG_IIO_SCMI=m
-# end of IIO SCMI Sensors
-
-#
-# SSP Sensor Common
-#
-# CONFIG_IIO_SSP_SENSORHUB is not set
-# end of SSP Sensor Common
-
-CONFIG_IIO_ST_SENSORS_I2C=m
-CONFIG_IIO_ST_SENSORS_SPI=m
-CONFIG_IIO_ST_SENSORS_CORE=m
-
-#
-# Digital to analog converters
-#
-# CONFIG_AD5064 is not set
-# CONFIG_AD5360 is not set
-# CONFIG_AD5380 is not set
-# CONFIG_AD5421 is not set
-# CONFIG_AD5446 is not set
-# CONFIG_AD5449 is not set
-# CONFIG_AD5592R is not set
-# CONFIG_AD5593R is not set
-# CONFIG_AD5504 is not set
-# CONFIG_AD5624R_SPI is not set
-# CONFIG_AD5686_SPI is not set
-# CONFIG_AD5696_I2C is not set
-# CONFIG_AD5755 is not set
-# CONFIG_AD5758 is not set
-# CONFIG_AD5761 is not set
-# CONFIG_AD5764 is not set
-# CONFIG_AD5766 is not set
-# CONFIG_AD5770R is not set
-# CONFIG_AD5791 is not set
-# CONFIG_AD7303 is not set
-# CONFIG_AD8801 is not set
-# CONFIG_DPOT_DAC is not set
-# CONFIG_DS4424 is not set
-# CONFIG_LTC1660 is not set
-# CONFIG_LTC2632 is not set
-# CONFIG_M62332 is not set
-# CONFIG_MAX517 is not set
-# CONFIG_MAX5821 is not set
-# CONFIG_MCP4725 is not set
-# CONFIG_MCP4922 is not set
-# CONFIG_TI_DAC082S085 is not set
-# CONFIG_TI_DAC5571 is not set
-# CONFIG_TI_DAC7311 is not set
-# CONFIG_TI_DAC7612 is not set
-# CONFIG_VF610_DAC is not set
-# end of Digital to analog converters
-
-#
-# IIO dummy driver
-#
-# end of IIO dummy driver
-
-#
-# Frequency Synthesizers DDS/PLL
-#
-
-#
-# Clock Generator/Distribution
-#
-# CONFIG_AD9523 is not set
-# end of Clock Generator/Distribution
-
-#
-# Phase-Locked Loop (PLL) frequency synthesizers
-#
-# CONFIG_ADF4350 is not set
-CONFIG_ADF4371=m
-# end of Phase-Locked Loop (PLL) frequency synthesizers
-# end of Frequency Synthesizers DDS/PLL
-
-#
-# Digital gyroscope sensors
-#
-# CONFIG_ADIS16080 is not set
-# CONFIG_ADIS16130 is not set
-# CONFIG_ADIS16136 is not set
-# CONFIG_ADIS16260 is not set
-# CONFIG_ADXRS290 is not set
-# CONFIG_ADXRS450 is not set
-# CONFIG_BMG160 is not set
-# CONFIG_FXAS21002C is not set
-CONFIG_HID_SENSOR_GYRO_3D=m
-# CONFIG_MPU3050_I2C is not set
-# CONFIG_IIO_ST_GYRO_3AXIS is not set
-# CONFIG_ITG3200 is not set
-# end of Digital gyroscope sensors
-
-#
-# Health Sensors
-#
-
-#
-# Heart Rate Monitors
-#
-# CONFIG_AFE4403 is not set
-# CONFIG_AFE4404 is not set
-# CONFIG_MAX30100 is not set
-# CONFIG_MAX30102 is not set
-# end of Heart Rate Monitors
-# end of Health Sensors
-
-#
-# Humidity sensors
-#
-# CONFIG_AM2315 is not set
-# CONFIG_DHT11 is not set
-# CONFIG_HDC100X is not set
-# CONFIG_HDC2010 is not set
-# CONFIG_HID_SENSOR_HUMIDITY is not set
-# CONFIG_HTS221 is not set
-# CONFIG_HTU21 is not set
-# CONFIG_SI7005 is not set
-# CONFIG_SI7020 is not set
-# end of Humidity sensors
-
-#
-# Inertial measurement units
-#
-# CONFIG_ADIS16400 is not set
-# CONFIG_ADIS16460 is not set
-# CONFIG_ADIS16475 is not set
-# CONFIG_ADIS16480 is not set
-# CONFIG_BMI160_I2C is not set
-# CONFIG_BMI160_SPI is not set
-# CONFIG_FXOS8700_I2C is not set
-# CONFIG_FXOS8700_SPI is not set
-# CONFIG_KMX61 is not set
-CONFIG_INV_ICM42600=m
-CONFIG_INV_ICM42600_I2C=m
-CONFIG_INV_ICM42600_SPI=m
-# CONFIG_INV_MPU6050_I2C is not set
-# CONFIG_INV_MPU6050_SPI is not set
-# CONFIG_IIO_ST_LSM6DSX is not set
-# end of Inertial measurement units
-
-#
-# Light sensors
-#
-# CONFIG_ADJD_S311 is not set
-# CONFIG_ADUX1020 is not set
-# CONFIG_AL3010 is not set
-# CONFIG_AL3320A is not set
-# CONFIG_APDS9300 is not set
-# CONFIG_APDS9960 is not set
-# CONFIG_AS73211 is not set
-# CONFIG_BH1750 is not set
-CONFIG_BH1780=m
-# CONFIG_CM32181 is not set
-# CONFIG_CM3232 is not set
-# CONFIG_CM3323 is not set
-# CONFIG_CM3605 is not set
-# CONFIG_CM36651 is not set
-# CONFIG_GP2AP002 is not set
-# CONFIG_GP2AP020A00F is not set
-# CONFIG_IQS621_ALS is not set
-# CONFIG_SENSORS_ISL29018 is not set
-# CONFIG_SENSORS_ISL29028 is not set
-# CONFIG_ISL29125 is not set
-CONFIG_HID_SENSOR_ALS=m
-CONFIG_HID_SENSOR_PROX=m
-# CONFIG_JSA1212 is not set
-# CONFIG_RPR0521 is not set
-# CONFIG_LTR501 is not set
-# CONFIG_LV0104CS is not set
-# CONFIG_MAX44000 is not set
-# CONFIG_MAX44009 is not set
-# CONFIG_NOA1305 is not set
-# CONFIG_OPT3001 is not set
-# CONFIG_PA12203001 is not set
-# CONFIG_SI1133 is not set
-# CONFIG_SI1145 is not set
-# CONFIG_STK3310 is not set
-# CONFIG_ST_UVIS25 is not set
-# CONFIG_TCS3414 is not set
-# CONFIG_TCS3472 is not set
-CONFIG_SENSORS_TSL2563=m
-# CONFIG_TSL2583 is not set
-# CONFIG_TSL2772 is not set
-# CONFIG_TSL4531 is not set
-# CONFIG_US5182D is not set
-# CONFIG_VCNL4000 is not set
-# CONFIG_VCNL4035 is not set
-# CONFIG_VEML6030 is not set
-# CONFIG_VEML6070 is not set
-# CONFIG_VL6180 is not set
-# CONFIG_ZOPT2201 is not set
-# end of Light sensors
-
-#
-# Magnetometer sensors
-#
-# CONFIG_AK8974 is not set
-# CONFIG_AK8975 is not set
-# CONFIG_AK09911 is not set
-# CONFIG_BMC150_MAGN_I2C is not set
-# CONFIG_BMC150_MAGN_SPI is not set
-# CONFIG_MAG3110 is not set
-CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
-# CONFIG_MMC35240 is not set
-# CONFIG_IIO_ST_MAGN_3AXIS is not set
-# CONFIG_SENSORS_HMC5843_I2C is not set
-# CONFIG_SENSORS_HMC5843_SPI is not set
-# CONFIG_SENSORS_RM3100_I2C is not set
-# CONFIG_SENSORS_RM3100_SPI is not set
-# CONFIG_YAMAHA_YAS530 is not set
-# end of Magnetometer sensors
-
-#
-# Multiplexers
-#
-# CONFIG_IIO_MUX is not set
-# end of Multiplexers
-
-#
-# Inclinometer sensors
-#
-CONFIG_HID_SENSOR_INCLINOMETER_3D=m
-CONFIG_HID_SENSOR_DEVICE_ROTATION=m
-# end of Inclinometer sensors
-
-#
-# Triggers - standalone
-#
-# CONFIG_IIO_INTERRUPT_TRIGGER is not set
-# CONFIG_IIO_SYSFS_TRIGGER is not set
-# end of Triggers - standalone
-
-#
-# Linear and angular position sensors
-#
-# CONFIG_IQS624_POS is not set
-# CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE is not set
-# end of Linear and angular position sensors
-
-#
-# Digital potentiometers
-#
-# CONFIG_AD5272 is not set
-# CONFIG_DS1803 is not set
-# CONFIG_MAX5432 is not set
-# CONFIG_MAX5481 is not set
-# CONFIG_MAX5487 is not set
-# CONFIG_MCP4018 is not set
-# CONFIG_MCP4131 is not set
-# CONFIG_MCP4531 is not set
-# CONFIG_MCP41010 is not set
-# CONFIG_TPL0102 is not set
-# end of Digital potentiometers
-
-#
-# Digital potentiostats
-#
-# CONFIG_LMP91000 is not set
-# end of Digital potentiostats
-
-#
-# Pressure sensors
-#
-# CONFIG_ABP060MG is not set
-# CONFIG_BMP280 is not set
-# CONFIG_DLHL60D is not set
-CONFIG_DPS310=m
-CONFIG_HID_SENSOR_PRESS=m
-# CONFIG_HP03 is not set
-# CONFIG_ICP10100 is not set
-# CONFIG_MPL115_I2C is not set
-# CONFIG_MPL115_SPI is not set
-# CONFIG_MPL3115 is not set
-# CONFIG_MS5611 is not set
-# CONFIG_MS5637 is not set
-# CONFIG_IIO_ST_PRESS is not set
-# CONFIG_T5403 is not set
-# CONFIG_HP206C is not set
-# CONFIG_ZPA2326 is not set
-# end of Pressure sensors
-
-#
-# Lightning sensors
-#
-# CONFIG_AS3935 is not set
-# end of Lightning sensors
-
-#
-# Proximity and distance sensors
-#
-CONFIG_CROS_EC_MKBP_PROXIMITY=m
-# CONFIG_ISL29501 is not set
-# CONFIG_LIDAR_LITE_V2 is not set
-# CONFIG_MB1232 is not set
-# CONFIG_PING is not set
-# CONFIG_RFD77402 is not set
-# CONFIG_SRF04 is not set
-# CONFIG_SX9310 is not set
-# CONFIG_SX9500 is not set
-# CONFIG_SRF08 is not set
-# CONFIG_VCNL3020 is not set
-# CONFIG_VL53L0X_I2C is not set
-# end of Proximity and distance sensors
-
-#
-# Resolver to digital converters
-#
-# CONFIG_AD2S90 is not set
-# CONFIG_AD2S1200 is not set
-# end of Resolver to digital converters
-
-#
-# Temperature sensors
-#
-# CONFIG_IQS620AT_TEMP is not set
-# CONFIG_LTC2983 is not set
-# CONFIG_MAXIM_THERMOCOUPLE is not set
-# CONFIG_HID_SENSOR_TEMP is not set
-# CONFIG_MLX90614 is not set
-# CONFIG_MLX90632 is not set
-# CONFIG_TMP006 is not set
-# CONFIG_TMP007 is not set
-# CONFIG_TSYS01 is not set
-# CONFIG_TSYS02D is not set
-# CONFIG_MAX31856 is not set
-# end of Temperature sensors
-
-# CONFIG_NTB is not set
-# CONFIG_VME_BUS is not set
-CONFIG_PWM=y
-CONFIG_PWM_SYSFS=y
-# CONFIG_PWM_DEBUG is not set
-CONFIG_PWM_ATMEL_TCB=m
-CONFIG_PWM_BCM2835=m
-# CONFIG_PWM_CROS_EC is not set
-CONFIG_PWM_DWC=m
-# CONFIG_PWM_FSL_FTM is not set
-# CONFIG_PWM_IMX1 is not set
-# CONFIG_PWM_IMX27 is not set
-CONFIG_PWM_IMX_TPM=m
-# CONFIG_PWM_IQS620A is not set
-CONFIG_PWM_OMAP_DMTIMER=m
-# CONFIG_PWM_PCA9685 is not set
-# CONFIG_PWM_RASPBERRYPI_POE is not set
-CONFIG_PWM_ROCKCHIP=m
-CONFIG_PWM_SAMSUNG=m
-# CONFIG_PWM_STMPE is not set
-CONFIG_PWM_SUN4I=m
-CONFIG_PWM_TEGRA=m
-CONFIG_PWM_TIECAP=m
-CONFIG_PWM_TIEHRPWM=m
-CONFIG_PWM_TWL=m
-CONFIG_PWM_TWL_LED=m
-CONFIG_PWM_VT8500=m
-
-#
-# IRQ chip support
-#
-CONFIG_IRQCHIP=y
-CONFIG_ARM_GIC=y
-CONFIG_ARM_GIC_MAX_NR=1
-CONFIG_ARM_GIC_V2M=y
-CONFIG_GIC_NON_BANKED=y
-CONFIG_ARM_GIC_V3=y
-CONFIG_ARM_GIC_V3_ITS=y
-CONFIG_ARM_GIC_V3_ITS_PCI=y
-CONFIG_ARMADA_370_XP_IRQ=y
-# CONFIG_AL_FIC is not set
-CONFIG_BRCMSTB_L2_IRQ=y
-CONFIG_MADERA_IRQ=m
-CONFIG_OMAP_IRQCHIP=y
-# CONFIG_TS4800_IRQ is not set
-CONFIG_IRQ_CROSSBAR=y
-CONFIG_PARTITION_PERCPU=y
-CONFIG_IMX_IRQSTEER=y
-CONFIG_IMX_INTMUX=y
-CONFIG_EXYNOS_IRQ_COMBINER=y
-CONFIG_MST_IRQ=y
-# end of IRQ chip support
-
-# CONFIG_IPACK_BUS is not set
-CONFIG_ARCH_HAS_RESET_CONTROLLER=y
-CONFIG_RESET_CONTROLLER=y
-CONFIG_RESET_BRCMSTB_RESCAL=y
-CONFIG_RESET_INTEL_GW=y
-# CONFIG_RESET_RASPBERRYPI is not set
-CONFIG_RESET_SCMI=y
-CONFIG_RESET_SIMPLE=y
-CONFIG_RESET_SOCFPGA=y
-CONFIG_RESET_SUNXI=y
-# CONFIG_RESET_TI_SYSCON is not set
-
-#
-# PHY Subsystem
-#
-CONFIG_GENERIC_PHY=y
-CONFIG_GENERIC_PHY_MIPI_DPHY=y
-CONFIG_PHY_SUN4I_USB=m
-CONFIG_PHY_SUN6I_MIPI_DPHY=m
-CONFIG_PHY_SUN9I_USB=m
-CONFIG_PHY_SUN50I_USB3=m
-# CONFIG_BCM_KONA_USB2_PHY is not set
-CONFIG_PHY_CADENCE_TORRENT=m
-# CONFIG_PHY_CADENCE_DPHY is not set
-# CONFIG_PHY_CADENCE_SIERRA is not set
-# CONFIG_PHY_CADENCE_SALVO is not set
-# CONFIG_PHY_FSL_IMX8MQ_USB is not set
-CONFIG_PHY_MIXEL_MIPI_DPHY=m
-CONFIG_ARMADA375_USBCLUSTER_PHY=y
-CONFIG_PHY_MVEBU_A3700_COMPHY=m
-CONFIG_PHY_MVEBU_A3700_UTMI=m
-CONFIG_PHY_MVEBU_A38X_COMPHY=m
-CONFIG_PHY_MVEBU_CP110_COMPHY=m
-CONFIG_PHY_MVEBU_CP110_UTMI=m
-# CONFIG_PHY_PXA_28NM_HSIC is not set
-# CONFIG_PHY_PXA_28NM_USB2 is not set
-# CONFIG_PHY_CPCAP_USB is not set
-# CONFIG_PHY_MAPPHONE_MDM6600 is not set
-# CONFIG_PHY_OCELOT_SERDES is not set
-CONFIG_PHY_QCOM_USB_HS=m
-CONFIG_PHY_QCOM_USB_HSIC=m
-CONFIG_PHY_ROCKCHIP_DP=m
-# CONFIG_PHY_ROCKCHIP_DPHY_RX0 is not set
-CONFIG_PHY_ROCKCHIP_EMMC=m
-# CONFIG_PHY_ROCKCHIP_INNO_HDMI is not set
-# CONFIG_PHY_ROCKCHIP_INNO_USB2 is not set
-# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set
-# CONFIG_PHY_ROCKCHIP_PCIE is not set
-# CONFIG_PHY_ROCKCHIP_TYPEC is not set
-CONFIG_PHY_ROCKCHIP_USB=m
-CONFIG_PHY_EXYNOS_DP_VIDEO=m
-CONFIG_PHY_EXYNOS_MIPI_VIDEO=m
-# CONFIG_PHY_EXYNOS_PCIE is not set
-CONFIG_PHY_SAMSUNG_UFS=m
-CONFIG_PHY_SAMSUNG_USB2=m
-CONFIG_PHY_EXYNOS4210_USB2=y
-CONFIG_PHY_EXYNOS4X12_USB2=y
-CONFIG_PHY_EXYNOS5250_USB2=y
-CONFIG_PHY_EXYNOS5_USBDRD=m
-CONFIG_PHY_EXYNOS5250_SATA=m
-CONFIG_PHY_TEGRA_XUSB=m
-# CONFIG_PHY_DM816X_USB is not set
-CONFIG_OMAP_CONTROL_PHY=m
-CONFIG_OMAP_USB2=m
-CONFIG_TI_PIPE3=m
-CONFIG_PHY_TUSB1210=m
-CONFIG_TWL4030_USB=m
-CONFIG_PHY_TI_GMII_SEL=m
-# end of PHY Subsystem
-
-# CONFIG_POWERCAP is not set
-# CONFIG_MCB is not set
-
-#
-# Performance monitor support
-#
-# CONFIG_ARM_CCI_PMU is not set
-# CONFIG_ARM_CCN is not set
-CONFIG_ARM_PMU=y
-CONFIG_FSL_IMX8_DDR_PMU=m
-# end of Performance monitor support
-
-CONFIG_RAS=y
-CONFIG_USB4=m
-# CONFIG_USB4_DEBUGFS_WRITE is not set
-# CONFIG_USB4_DMA_TEST is not set
-
-#
-# Android
-#
-# CONFIG_ANDROID is not set
-# end of Android
-
-CONFIG_DAX=m
-CONFIG_NVMEM=y
-CONFIG_NVMEM_SYSFS=y
-# CONFIG_NVMEM_IMX_IIM is not set
-CONFIG_NVMEM_IMX_OCOTP=m
-CONFIG_ROCKCHIP_EFUSE=m
-CONFIG_ROCKCHIP_OTP=m
-CONFIG_NVMEM_SUNXI_SID=m
-CONFIG_NVMEM_SNVS_LPGPR=m
-CONFIG_NVMEM_RMEM=m
-
-#
-# HW tracing support
-#
-# CONFIG_STM is not set
-# CONFIG_INTEL_TH is not set
-# end of HW tracing support
-
-# CONFIG_FPGA is not set
-# CONFIG_FSI is not set
-# CONFIG_TEE is not set
-CONFIG_MULTIPLEXER=m
-
-#
-# Multiplexer drivers
-#
-# CONFIG_MUX_ADG792A is not set
-# CONFIG_MUX_ADGS1408 is not set
-# CONFIG_MUX_GPIO is not set
-# CONFIG_MUX_MMIO is not set
-# end of Multiplexer drivers
-
-CONFIG_PM_OPP=y
-# CONFIG_SIOX is not set
-# CONFIG_SLIMBUS is not set
-CONFIG_INTERCONNECT=y
-CONFIG_INTERCONNECT_IMX=m
-# CONFIG_INTERCONNECT_IMX8MM is not set
-# CONFIG_INTERCONNECT_IMX8MN is not set
-# CONFIG_INTERCONNECT_IMX8MQ is not set
-CONFIG_INTERCONNECT_SAMSUNG=y
-CONFIG_INTERCONNECT_EXYNOS=m
-CONFIG_COUNTER=m
-CONFIG_INTERRUPT_CNT=m
-CONFIG_TI_EQEP=m
-CONFIG_FTM_QUADDEC=m
-CONFIG_MICROCHIP_TCB_CAPTURE=m
-# CONFIG_MOST is not set
-# end of Device Drivers
-
-#
-# File systems
-#
-CONFIG_DCACHE_WORD_ACCESS=y
-CONFIG_VALIDATE_FS_PARSER=y
-CONFIG_FS_IOMAP=y
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT3_FS is not set
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_USE_FOR_EXT2=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD2=y
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-# CONFIG_JFS_DEBUG is not set
-# CONFIG_JFS_STATISTICS is not set
-CONFIG_XFS_FS=m
-CONFIG_XFS_SUPPORT_V4=y
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-# CONFIG_XFS_ONLINE_SCRUB is not set
-# CONFIG_XFS_WARN is not set
-# CONFIG_XFS_DEBUG is not set
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=y
-CONFIG_OCFS2_FS=m
-CONFIG_OCFS2_FS_O2CB=m
-CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
-CONFIG_OCFS2_FS_STATS=y
-CONFIG_OCFS2_DEBUG_MASKLOG=y
-# CONFIG_OCFS2_DEBUG_FS is not set
-CONFIG_BTRFS_FS=m
-CONFIG_BTRFS_FS_POSIX_ACL=y
-# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
-# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
-# CONFIG_BTRFS_DEBUG is not set
-# CONFIG_BTRFS_ASSERT is not set
-# CONFIG_BTRFS_FS_REF_VERIFY is not set
-CONFIG_NILFS2_FS=m
-CONFIG_F2FS_FS=m
-CONFIG_F2FS_STAT_FS=y
-CONFIG_F2FS_FS_XATTR=y
-CONFIG_F2FS_FS_POSIX_ACL=y
-CONFIG_F2FS_FS_SECURITY=y
-# CONFIG_F2FS_CHECK_FS is not set
-# CONFIG_F2FS_FAULT_INJECTION is not set
-# CONFIG_F2FS_FS_COMPRESSION is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-CONFIG_EXPORTFS_BLOCK_OPS=y
-CONFIG_FILE_LOCKING=y
-CONFIG_MANDATORY_FILE_LOCKING=y
-# CONFIG_FS_ENCRYPTION is not set
-CONFIG_FS_VERITY=y
-# CONFIG_FS_VERITY_DEBUG is not set
-# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_FANOTIFY=y
-CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-CONFIG_PRINT_QUOTA_WARNING=y
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=m
-CONFIG_QFMT_V1=m
-CONFIG_QFMT_V2=m
-CONFIG_QUOTACTL=y
-CONFIG_AUTOFS4_FS=m
-CONFIG_AUTOFS_FS=m
-CONFIG_FUSE_FS=m
-CONFIG_CUSE=m
-CONFIG_VIRTIO_FS=m
-CONFIG_OVERLAY_FS=m
-# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
-# CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW is not set
-# CONFIG_OVERLAY_FS_INDEX is not set
-# CONFIG_OVERLAY_FS_METACOPY is not set
-
-#
-# Caches
-#
-CONFIG_NETFS_SUPPORT=m
-# CONFIG_NETFS_STATS is not set
-CONFIG_FSCACHE=m
-CONFIG_FSCACHE_STATS=y
-# CONFIG_FSCACHE_HISTOGRAM is not set
-# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
-CONFIG_CACHEFILES=m
-# CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
-# end of Caches
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-# end of CD-ROM/DVD Filesystems
-
-#
-# DOS/FAT/EXFAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-# CONFIG_FAT_DEFAULT_UTF8 is not set
-CONFIG_EXFAT_FS=m
-CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-# CONFIG_NTFS_RW is not set
-# end of DOS/FAT/EXFAT/NT Filesystems
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_PROC_CHILDREN=y
-CONFIG_KERNFS=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-CONFIG_MEMFD_CREATE=y
-CONFIG_CONFIGFS_FS=m
-CONFIG_EFIVAR_FS=m
-# end of Pseudo filesystems
-
-CONFIG_MISC_FILESYSTEMS=y
-# CONFIG_ORANGEFS_FS is not set
-CONFIG_ADFS_FS=m
-# CONFIG_ADFS_FS_RW is not set
-CONFIG_AFFS_FS=m
-CONFIG_ECRYPT_FS=m
-CONFIG_ECRYPT_FS_MESSAGING=y
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-CONFIG_BEFS_FS=m
-# CONFIG_BEFS_DEBUG is not set
-CONFIG_BFS_FS=m
-CONFIG_EFS_FS=m
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-CONFIG_JFFS2_SUMMARY=y
-CONFIG_JFFS2_FS_XATTR=y
-CONFIG_JFFS2_FS_POSIX_ACL=y
-CONFIG_JFFS2_FS_SECURITY=y
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_LZO=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_JFFS2_CMODE_NONE is not set
-CONFIG_JFFS2_CMODE_PRIORITY=y
-# CONFIG_JFFS2_CMODE_SIZE is not set
-# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
-CONFIG_UBIFS_FS=m
-CONFIG_UBIFS_FS_ADVANCED_COMPR=y
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-CONFIG_UBIFS_FS_ZSTD=y
-# CONFIG_UBIFS_ATIME_SUPPORT is not set
-CONFIG_UBIFS_FS_XATTR=y
-CONFIG_UBIFS_FS_SECURITY=y
-CONFIG_UBIFS_FS_AUTHENTICATION=y
-# CONFIG_CRAMFS is not set
-CONFIG_SQUASHFS=m
-CONFIG_SQUASHFS_FILE_CACHE=y
-# CONFIG_SQUASHFS_FILE_DIRECT is not set
-CONFIG_SQUASHFS_DECOMP_SINGLE=y
-# CONFIG_SQUASHFS_DECOMP_MULTI is not set
-# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
-CONFIG_SQUASHFS_XATTR=y
-CONFIG_SQUASHFS_ZLIB=y
-# CONFIG_SQUASHFS_LZ4 is not set
-CONFIG_SQUASHFS_LZO=y
-CONFIG_SQUASHFS_XZ=y
-# CONFIG_SQUASHFS_ZSTD is not set
-# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-CONFIG_VXFS_FS=m
-CONFIG_MINIX_FS=m
-CONFIG_OMFS_FS=m
-CONFIG_HPFS_FS=m
-CONFIG_QNX4FS_FS=m
-CONFIG_QNX6FS_FS=m
-# CONFIG_QNX6FS_DEBUG is not set
-CONFIG_ROMFS_FS=m
-# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
-# CONFIG_ROMFS_BACKED_BY_MTD is not set
-CONFIG_ROMFS_BACKED_BY_BOTH=y
-CONFIG_ROMFS_ON_BLOCK=y
-CONFIG_ROMFS_ON_MTD=y
-# CONFIG_PSTORE is not set
-CONFIG_SYSV_FS=m
-CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_UFS_DEBUG is not set
-CONFIG_EROFS_FS=m
-# CONFIG_EROFS_FS_DEBUG is not set
-CONFIG_EROFS_FS_XATTR=y
-CONFIG_EROFS_FS_POSIX_ACL=y
-CONFIG_EROFS_FS_SECURITY=y
-# CONFIG_EROFS_FS_ZIP is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=m
-CONFIG_NFS_V2=m
-CONFIG_NFS_V3=m
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=m
-CONFIG_NFS_SWAP=y
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_V4_2=y
-CONFIG_PNFS_FILE_LAYOUT=m
-CONFIG_PNFS_BLOCK=m
-CONFIG_PNFS_FLEXFILE_LAYOUT=m
-CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
-# CONFIG_NFS_V4_1_MIGRATION is not set
-CONFIG_NFS_V4_SECURITY_LABEL=y
-CONFIG_NFS_FSCACHE=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-CONFIG_NFS_DEBUG=y
-# CONFIG_NFS_DISABLE_UDP_SUPPORT is not set
-# CONFIG_NFS_V4_2_READ_PLUS is not set
-CONFIG_NFSD=m
-CONFIG_NFSD_V2_ACL=y
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_PNFS=y
-CONFIG_NFSD_BLOCKLAYOUT=y
-# CONFIG_NFSD_SCSILAYOUT is not set
-# CONFIG_NFSD_FLEXFILELAYOUT is not set
-# CONFIG_NFSD_V4_2_INTER_SSC is not set
-CONFIG_NFSD_V4_SECURITY_LABEL=y
-CONFIG_GRACE_PERIOD=m
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_ACL_SUPPORT=m
-CONFIG_NFS_COMMON=y
-CONFIG_NFS_V4_2_SSC_HELPER=y
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
-CONFIG_SUNRPC_BACKCHANNEL=y
-CONFIG_SUNRPC_SWAP=y
-CONFIG_RPCSEC_GSS_KRB5=m
-CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y
-CONFIG_SUNRPC_DEBUG=y
-CONFIG_SUNRPC_XPRT_RDMA=m
-CONFIG_CEPH_FS=m
-CONFIG_CEPH_FSCACHE=y
-CONFIG_CEPH_FS_POSIX_ACL=y
-CONFIG_CEPH_FS_SECURITY_LABEL=y
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS2 is not set
-CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
-CONFIG_CIFS_WEAK_PW_HASH=y
-CONFIG_CIFS_UPCALL=y
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-CONFIG_CIFS_DEBUG=y
-# CONFIG_CIFS_DEBUG2 is not set
-# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
-CONFIG_CIFS_DFS_UPCALL=y
-CONFIG_CIFS_SWN_UPCALL=y
-# CONFIG_CIFS_SMB_DIRECT is not set
-CONFIG_CIFS_FSCACHE=y
-CONFIG_CODA_FS=m
-CONFIG_AFS_FS=m
-# CONFIG_AFS_DEBUG is not set
-CONFIG_AFS_FSCACHE=y
-# CONFIG_AFS_DEBUG_CURSOR is not set
-CONFIG_9P_FS=m
-CONFIG_9P_FSCACHE=y
-CONFIG_9P_FS_POSIX_ACL=y
-CONFIG_9P_FS_SECURITY=y
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_MAC_ROMAN=m
-CONFIG_NLS_MAC_CELTIC=m
-CONFIG_NLS_MAC_CENTEURO=m
-CONFIG_NLS_MAC_CROATIAN=m
-CONFIG_NLS_MAC_CYRILLIC=m
-CONFIG_NLS_MAC_GAELIC=m
-CONFIG_NLS_MAC_GREEK=m
-CONFIG_NLS_MAC_ICELAND=m
-CONFIG_NLS_MAC_INUIT=m
-CONFIG_NLS_MAC_ROMANIAN=m
-CONFIG_NLS_MAC_TURKISH=m
-CONFIG_NLS_UTF8=m
-CONFIG_DLM=m
-CONFIG_DLM_DEBUG=y
-# CONFIG_UNICODE is not set
-CONFIG_IO_WQ=y
-# end of File systems
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-CONFIG_KEYS_REQUEST_CACHE=y
-# CONFIG_PERSISTENT_KEYRINGS is not set
-# CONFIG_TRUSTED_KEYS is not set
-# CONFIG_ENCRYPTED_KEYS is not set
-# CONFIG_KEY_DH_OPERATIONS is not set
-CONFIG_KEY_NOTIFICATIONS=y
-CONFIG_SECURITY_DMESG_RESTRICT=y
-CONFIG_SECURITY=y
-CONFIG_SECURITYFS=y
-CONFIG_SECURITY_NETWORK=y
-# CONFIG_SECURITY_INFINIBAND is not set
-CONFIG_SECURITY_NETWORK_XFRM=y
-CONFIG_SECURITY_PATH=y
-CONFIG_LSM_MMAP_MIN_ADDR=32768
-CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
-CONFIG_HARDENED_USERCOPY=y
-CONFIG_HARDENED_USERCOPY_FALLBACK=y
-# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
-CONFIG_FORTIFY_SOURCE=y
-# CONFIG_STATIC_USERMODEHELPER is not set
-CONFIG_SECURITY_SELINUX=y
-# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
-# CONFIG_SECURITY_SELINUX_DISABLE is not set
-CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_AVC_STATS=y
-CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
-CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
-CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
-# CONFIG_SECURITY_SMACK is not set
-CONFIG_SECURITY_TOMOYO=y
-CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
-CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
-# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
-CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
-CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
-# CONFIG_SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING is not set
-CONFIG_SECURITY_APPARMOR=y
-CONFIG_SECURITY_APPARMOR_HASH=y
-CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
-# CONFIG_SECURITY_APPARMOR_DEBUG is not set
-# CONFIG_SECURITY_LOADPIN is not set
-CONFIG_SECURITY_YAMA=y
-# CONFIG_SECURITY_SAFESETID is not set
-# CONFIG_SECURITY_LOCKDOWN_LSM is not set
-CONFIG_SECURITY_LANDLOCK=y
-CONFIG_INTEGRITY=y
-CONFIG_INTEGRITY_SIGNATURE=y
-CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
-CONFIG_INTEGRITY_TRUSTED_KEYRING=y
-CONFIG_INTEGRITY_AUDIT=y
-CONFIG_IMA=y
-CONFIG_IMA_MEASURE_PCR_IDX=10
-CONFIG_IMA_LSM_RULES=y
-# CONFIG_IMA_TEMPLATE is not set
-CONFIG_IMA_NG_TEMPLATE=y
-# CONFIG_IMA_SIG_TEMPLATE is not set
-CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
-# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
-CONFIG_IMA_DEFAULT_HASH_SHA256=y
-CONFIG_IMA_DEFAULT_HASH="sha256"
-# CONFIG_IMA_WRITE_POLICY is not set
-# CONFIG_IMA_READ_POLICY is not set
-CONFIG_IMA_APPRAISE=y
-# CONFIG_IMA_ARCH_POLICY is not set
-# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
-CONFIG_IMA_APPRAISE_BOOTPARAM=y
-# CONFIG_IMA_APPRAISE_MODSIG is not set
-CONFIG_IMA_TRUSTED_KEYRING=y
-# CONFIG_IMA_BLACKLIST_KEYRING is not set
-# CONFIG_IMA_LOAD_X509 is not set
-CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=y
-CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS=y
-# CONFIG_EVM is not set
-# CONFIG_DEFAULT_SECURITY_SELINUX is not set
-# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
-CONFIG_DEFAULT_SECURITY_APPARMOR=y
-# CONFIG_DEFAULT_SECURITY_DAC is not set
-CONFIG_LSM="yama,loadpin,safesetid,integrity,apparmor,selinux,smack,tomoyo"
-
-#
-# Kernel hardening options
-#
-
-#
-# Memory initialization
-#
-CONFIG_INIT_STACK_NONE=y
-CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
-# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
-# end of Memory initialization
-# end of Kernel hardening options
-# end of Security options
-
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_SKCIPHER=y
-CONFIG_CRYPTO_SKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=m
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_RNG_DEFAULT=m
-CONFIG_CRYPTO_AKCIPHER2=y
-CONFIG_CRYPTO_AKCIPHER=y
-CONFIG_CRYPTO_KPP2=y
-CONFIG_CRYPTO_KPP=m
-CONFIG_CRYPTO_ACOMP2=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-CONFIG_CRYPTO_USER=m
-# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
-# CONFIG_CRYPTO_MANAGER_EXTRA_TESTS is not set
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_NULL2=y
-CONFIG_CRYPTO_PCRYPT=m
-# CONFIG_CRYPTO_CRYPTD is not set
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_TEST=m
-CONFIG_CRYPTO_ENGINE=m
-
-#
-# Public-key cryptography
-#
-CONFIG_CRYPTO_RSA=y
-# CONFIG_CRYPTO_DH is not set
-CONFIG_CRYPTO_ECC=m
-CONFIG_CRYPTO_ECDH=m
-CONFIG_CRYPTO_ECDSA=m
-CONFIG_CRYPTO_ECRDSA=m
-CONFIG_CRYPTO_SM2=m
-CONFIG_CRYPTO_CURVE25519=m
-
-#
-# Authenticated Encryption with Associated Data
-#
-CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_GCM=m
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_SEQIV=m
-CONFIG_CRYPTO_ECHAINIV=m
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=m
-CONFIG_CRYPTO_CFB=m
-CONFIG_CRYPTO_CTR=m
-CONFIG_CRYPTO_CTS=m
-CONFIG_CRYPTO_ECB=m
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_OFB=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=m
-# CONFIG_CRYPTO_KEYWRAP is not set
-CONFIG_CRYPTO_NHPOLY1305=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_ESSIV=m
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_CMAC=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CRC32=m
-CONFIG_CRYPTO_XXHASH=m
-CONFIG_CRYPTO_BLAKE2B=m
-CONFIG_CRYPTO_BLAKE2S=m
-CONFIG_CRYPTO_CRCT10DIF=y
-CONFIG_CRYPTO_GHASH=m
-CONFIG_CRYPTO_POLY1305=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=m
-# CONFIG_CRYPTO_SHA3 is not set
-CONFIG_CRYPTO_SM3=m
-CONFIG_CRYPTO_STREEBOG=m
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-# CONFIG_CRYPTO_AES_TI is not set
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_BLOWFISH_COMMON=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST_COMMON=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_CHACHA20=m
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_SM4=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_LZO=y
-# CONFIG_CRYPTO_842 is not set
-CONFIG_CRYPTO_LZ4=m
-CONFIG_CRYPTO_LZ4HC=m
-CONFIG_CRYPTO_ZSTD=m
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_DRBG_MENU=m
-CONFIG_CRYPTO_DRBG_HMAC=y
-# CONFIG_CRYPTO_DRBG_HASH is not set
-# CONFIG_CRYPTO_DRBG_CTR is not set
-CONFIG_CRYPTO_DRBG=m
-CONFIG_CRYPTO_JITTERENTROPY=m
-CONFIG_CRYPTO_USER_API=m
-CONFIG_CRYPTO_USER_API_HASH=m
-CONFIG_CRYPTO_USER_API_SKCIPHER=m
-CONFIG_CRYPTO_USER_API_RNG=m
-# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
-CONFIG_CRYPTO_USER_API_AEAD=m
-CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
-# CONFIG_CRYPTO_STATS is not set
-CONFIG_CRYPTO_HASH_INFO=y
-
-#
-# Crypto library routines
-#
-CONFIG_CRYPTO_LIB_AES=y
-CONFIG_CRYPTO_LIB_ARC4=m
-CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=m
-CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=m
-CONFIG_CRYPTO_LIB_BLAKE2S=m
-CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
-CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
-CONFIG_CRYPTO_LIB_CHACHA=m
-CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
-CONFIG_CRYPTO_LIB_CURVE25519=m
-CONFIG_CRYPTO_LIB_DES=m
-CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9
-CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m
-CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
-CONFIG_CRYPTO_LIB_POLY1305=m
-CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
-CONFIG_CRYPTO_LIB_SHA256=y
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_ALLWINNER=y
-CONFIG_CRYPTO_DEV_SUN4I_SS=m
-CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y
-# CONFIG_CRYPTO_DEV_SUN4I_SS_DEBUG is not set
-CONFIG_CRYPTO_DEV_SUN8I_CE=m
-# CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG is not set
-CONFIG_CRYPTO_DEV_SUN8I_CE_HASH=y
-CONFIG_CRYPTO_DEV_SUN8I_CE_PRNG=y
-CONFIG_CRYPTO_DEV_SUN8I_CE_TRNG=y
-CONFIG_CRYPTO_DEV_SUN8I_SS=m
-# CONFIG_CRYPTO_DEV_SUN8I_SS_DEBUG is not set
-CONFIG_CRYPTO_DEV_SUN8I_SS_PRNG=y
-CONFIG_CRYPTO_DEV_SUN8I_SS_HASH=y
-# CONFIG_CRYPTO_DEV_FSL_CAAM is not set
-# CONFIG_CRYPTO_DEV_OMAP is not set
-# CONFIG_CRYPTO_DEV_SAHARA is not set
-# CONFIG_CRYPTO_DEV_EXYNOS_RNG is not set
-# CONFIG_CRYPTO_DEV_S5P is not set
-CONFIG_CRYPTO_DEV_ATMEL_I2C=m
-CONFIG_CRYPTO_DEV_ATMEL_ECC=m
-CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m
-# CONFIG_CRYPTO_DEV_MXS_DCP is not set
-CONFIG_CRYPTO_DEV_MARVELL=m
-CONFIG_CRYPTO_DEV_MARVELL_CESA=m
-# CONFIG_CRYPTO_DEV_ROCKCHIP is not set
-CONFIG_CRYPTO_DEV_CHELSIO=m
-CONFIG_CRYPTO_DEV_VIRTIO=m
-# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
-# CONFIG_CRYPTO_DEV_CCREE is not set
-CONFIG_CRYPTO_DEV_AMLOGIC_GXL=m
-# CONFIG_CRYPTO_DEV_AMLOGIC_GXL_DEBUG is not set
-CONFIG_ASYMMETRIC_KEY_TYPE=y
-CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
-CONFIG_X509_CERTIFICATE_PARSER=y
-CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
-CONFIG_PKCS7_MESSAGE_PARSER=y
-# CONFIG_PKCS7_TEST_KEY is not set
-# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set
-
-#
-# Certificates for signature checking
-#
-CONFIG_SYSTEM_TRUSTED_KEYRING=y
-CONFIG_SYSTEM_TRUSTED_KEYS=""
-# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
-# CONFIG_SECONDARY_TRUSTED_KEYRING is not set
-# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
-# end of Certificates for signature checking
-
-CONFIG_BINARY_PRINTF=y
-
-#
-# Library routines
-#
-CONFIG_RAID6_PQ=m
-CONFIG_RAID6_PQ_BENCHMARK=y
-CONFIG_LINEAR_RANGES=y
-CONFIG_PACKING=y
-CONFIG_BITREVERSE=y
-CONFIG_HAVE_ARCH_BITREVERSE=y
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GENERIC_NET_UTILS=y
-CONFIG_CORDIC=m
-CONFIG_PRIME_NUMBERS=m
-CONFIG_RATIONAL=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_STMP_DEVICE=y
-CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
-CONFIG_CRC_CCITT=m
-CONFIG_CRC16=y
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC32=y
-# CONFIG_CRC32_SELFTEST is not set
-CONFIG_CRC32_SLICEBY8=y
-# CONFIG_CRC32_SLICEBY4 is not set
-# CONFIG_CRC32_SARWATE is not set
-# CONFIG_CRC32_BIT is not set
-CONFIG_CRC64=m
-# CONFIG_CRC4 is not set
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=m
-CONFIG_CRC8=m
-CONFIG_XXHASH=y
-CONFIG_AUDIT_GENERIC=y
-# CONFIG_RANDOM32_SELFTEST is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_LZ4_COMPRESS=m
-CONFIG_LZ4HC_COMPRESS=m
-CONFIG_LZ4_DECOMPRESS=y
-CONFIG_ZSTD_COMPRESS=m
-CONFIG_ZSTD_DECOMPRESS=y
-CONFIG_XZ_DEC=y
-# CONFIG_XZ_DEC_X86 is not set
-# CONFIG_XZ_DEC_POWERPC is not set
-# CONFIG_XZ_DEC_IA64 is not set
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-# CONFIG_XZ_DEC_SPARC is not set
-CONFIG_XZ_DEC_BCJ=y
-# CONFIG_XZ_DEC_TEST is not set
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_BZIP2=y
-CONFIG_DECOMPRESS_LZMA=y
-CONFIG_DECOMPRESS_XZ=y
-CONFIG_DECOMPRESS_LZO=y
-CONFIG_DECOMPRESS_LZ4=y
-CONFIG_DECOMPRESS_ZSTD=y
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_REED_SOLOMON=m
-CONFIG_REED_SOLOMON_DEC16=y
-CONFIG_BCH=m
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_INTERVAL_TREE=y
-CONFIG_ASSOCIATIVE_ARRAY=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_DMA=y
-CONFIG_DMA_OPS=y
-CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_ARCH_DMA_ADDR_T_64BIT=y
-CONFIG_DMA_DECLARE_COHERENT=y
-CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
-CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
-CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
-CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
-CONFIG_SWIOTLB=y
-CONFIG_DMA_NONCOHERENT_MMAP=y
-CONFIG_DMA_REMAP=y
-CONFIG_DMA_CMA=y
-CONFIG_DMA_PERNUMA_CMA=y
-
-#
-# Default contiguous memory area size:
-#
-CONFIG_CMA_SIZE_MBYTES=16
-CONFIG_CMA_SIZE_SEL_MBYTES=y
-# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
-# CONFIG_CMA_SIZE_SEL_MIN is not set
-# CONFIG_CMA_SIZE_SEL_MAX is not set
-CONFIG_CMA_ALIGNMENT=8
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_DMA_MAP_BENCHMARK is not set
-CONFIG_SGL_ALLOC=y
-CONFIG_CHECK_SIGNATURE=y
-CONFIG_CPU_RMAP=y
-CONFIG_DQL=y
-CONFIG_GLOB=y
-# CONFIG_GLOB_SELFTEST is not set
-CONFIG_NLATTR=y
-CONFIG_LRU_CACHE=m
-CONFIG_CLZ_TAB=y
-CONFIG_IRQ_POLL=y
-CONFIG_MPILIB=y
-CONFIG_SIGNATURE=y
-CONFIG_DIMLIB=y
-CONFIG_LIBFDT=y
-CONFIG_OID_REGISTRY=y
-CONFIG_UCS2_STRING=y
-CONFIG_HAVE_GENERIC_VDSO=y
-CONFIG_GENERIC_GETTIMEOFDAY=y
-CONFIG_GENERIC_VDSO_32=y
-CONFIG_FONT_SUPPORT=y
-CONFIG_FONTS=y
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-# CONFIG_FONT_6x11 is not set
-# CONFIG_FONT_7x14 is not set
-# CONFIG_FONT_PEARL_8x8 is not set
-# CONFIG_FONT_ACORN_8x8 is not set
-# CONFIG_FONT_MINI_4x6 is not set
-CONFIG_FONT_6x10=y
-# CONFIG_FONT_10x18 is not set
-# CONFIG_FONT_SUN8x16 is not set
-# CONFIG_FONT_SUN12x22 is not set
-CONFIG_FONT_TER16x32=y
-CONFIG_FONT_6x8=y
-CONFIG_SG_SPLIT=y
-CONFIG_SG_POOL=y
-CONFIG_SBITMAP=y
-# CONFIG_STRING_SELFTEST is not set
-# end of Library routines
-
-CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
-
-#
-# Kernel hacking
-#
-
-#
-# printk and dmesg options
-#
-CONFIG_PRINTK_TIME=y
-# CONFIG_PRINTK_CALLER is not set
-CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
-CONFIG_CONSOLE_LOGLEVEL_QUIET=4
-CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
-CONFIG_BOOT_PRINTK_DELAY=y
-CONFIG_DYNAMIC_DEBUG=y
-CONFIG_DYNAMIC_DEBUG_CORE=y
-CONFIG_SYMBOLIC_ERRNAME=y
-CONFIG_DEBUG_BUGVERBOSE=y
-# end of printk and dmesg options
-
-#
-# Compile-time checks and compiler options
-#
-CONFIG_DEBUG_INFO=y
-# CONFIG_DEBUG_INFO_REDUCED is not set
-# CONFIG_DEBUG_INFO_COMPRESSED is not set
-# CONFIG_DEBUG_INFO_SPLIT is not set
-CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
-# CONFIG_DEBUG_INFO_DWARF4 is not set
-# CONFIG_DEBUG_INFO_DWARF5 is not set
-# CONFIG_DEBUG_INFO_BTF is not set
-# CONFIG_GDB_SCRIPTS is not set
-CONFIG_FRAME_WARN=1024
-CONFIG_STRIP_ASM_SYMS=y
-# CONFIG_READABLE_ASM is not set
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_SECTION_MISMATCH_WARN_ONLY=y
-# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set
-CONFIG_ARCH_WANT_FRAME_POINTERS=y
-CONFIG_FRAME_POINTER=y
-# CONFIG_VMLINUX_MAP is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# end of Compile-time checks and compiler options
-
-#
-# Generic Kernel Debugging Instruments
-#
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x01b6
-CONFIG_MAGIC_SYSRQ_SERIAL=y
-CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE=""
-CONFIG_DEBUG_FS=y
-CONFIG_DEBUG_FS_ALLOW_ALL=y
-# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set
-# CONFIG_DEBUG_FS_ALLOW_NONE is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-# CONFIG_UBSAN is not set
-# end of Generic Kernel Debugging Instruments
-
-CONFIG_DEBUG_KERNEL=y
-CONFIG_DEBUG_MISC=y
-
-#
-# Memory Debugging
-#
-CONFIG_PAGE_EXTENSION=y
-# CONFIG_PAGE_OWNER is not set
-CONFIG_PAGE_POISONING=y
-# CONFIG_DEBUG_PAGE_REF is not set
-# CONFIG_DEBUG_RODATA_TEST is not set
-CONFIG_DEBUG_WX=y
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_DEBUG_SLAB is not set
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-CONFIG_SCHED_STACK_END_CHECK=y
-# CONFIG_DEBUG_VM is not set
-CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
-# CONFIG_DEBUG_VIRTUAL is not set
-CONFIG_DEBUG_MEMORY_INIT=y
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
-# CONFIG_DEBUG_KMAP_LOCAL is not set
-# CONFIG_DEBUG_HIGHMEM is not set
-CONFIG_HAVE_ARCH_KASAN=y
-CONFIG_CC_HAS_KASAN_GENERIC=y
-CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
-# CONFIG_KASAN is not set
-# end of Memory Debugging
-
-# CONFIG_DEBUG_SHIRQ is not set
-
-#
-# Debug Oops, Lockups and Hangs
-#
-# CONFIG_PANIC_ON_OOPS is not set
-CONFIG_PANIC_ON_OOPS_VALUE=0
-CONFIG_PANIC_TIMEOUT=0
-CONFIG_LOCKUP_DETECTOR=y
-CONFIG_SOFTLOCKUP_DETECTOR=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-# CONFIG_WQ_WATCHDOG is not set
-# CONFIG_TEST_LOCKUP is not set
-# end of Debug Oops, Lockups and Hangs
-
-#
-# Scheduler Debugging
-#
-CONFIG_SCHED_DEBUG=y
-CONFIG_SCHED_INFO=y
-CONFIG_SCHEDSTATS=y
-# end of Scheduler Debugging
-
-# CONFIG_DEBUG_TIMEKEEPING is not set
-
-#
-# Lock Debugging (spinlocks, mutexes, etc...)
-#
-CONFIG_LOCK_DEBUGGING_SUPPORT=y
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
-# CONFIG_DEBUG_RWSEMS is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_LOCK_TORTURE_TEST is not set
-# CONFIG_WW_MUTEX_SELFTEST is not set
-# CONFIG_SCF_TORTURE_TEST is not set
-# end of Lock Debugging (spinlocks, mutexes, etc...)
-
-# CONFIG_DEBUG_IRQFLAGS is not set
-CONFIG_STACKTRACE=y
-# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
-# CONFIG_DEBUG_KOBJECT is not set
-
-#
-# Debug kernel data structures
-#
-CONFIG_DEBUG_LIST=y
-# CONFIG_DEBUG_PLIST is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-CONFIG_BUG_ON_DATA_CORRUPTION=y
-# end of Debug kernel data structures
-
-# CONFIG_DEBUG_CREDENTIALS is not set
-
-#
-# RCU Debugging
-#
-# CONFIG_RCU_SCALE_TEST is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_REF_SCALE_TEST is not set
-CONFIG_RCU_CPU_STALL_TIMEOUT=21
-# CONFIG_RCU_TRACE is not set
-# CONFIG_RCU_EQS_DEBUG is not set
-# end of RCU Debugging
-
-# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
-# CONFIG_LATENCYTOP is not set
-CONFIG_NOP_TRACER=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_TRACER_MAX_TRACE=y
-CONFIG_TRACE_CLOCK=y
-CONFIG_RING_BUFFER=y
-CONFIG_EVENT_TRACING=y
-CONFIG_CONTEXT_SWITCH_TRACER=y
-CONFIG_TRACING=y
-CONFIG_GENERIC_TRACER=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-# CONFIG_BOOTTIME_TRACING is not set
-CONFIG_FUNCTION_TRACER=y
-CONFIG_FUNCTION_GRAPH_TRACER=y
-CONFIG_DYNAMIC_FTRACE=y
-CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
-# CONFIG_FUNCTION_PROFILER is not set
-CONFIG_STACK_TRACER=y
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_HWLAT_TRACER is not set
-CONFIG_FTRACE_SYSCALLS=y
-CONFIG_TRACER_SNAPSHOT=y
-# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-CONFIG_BLK_DEV_IO_TRACE=y
-CONFIG_KPROBE_EVENTS=y
-# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
-CONFIG_UPROBE_EVENTS=y
-CONFIG_BPF_EVENTS=y
-CONFIG_DYNAMIC_EVENTS=y
-CONFIG_PROBE_EVENTS=y
-CONFIG_FTRACE_MCOUNT_RECORD=y
-CONFIG_FTRACE_MCOUNT_USE_CC=y
-CONFIG_SYNTH_EVENTS=y
-# CONFIG_HIST_TRIGGERS is not set
-# CONFIG_TRACE_EVENT_INJECT is not set
-# CONFIG_TRACEPOINT_BENCHMARK is not set
-# CONFIG_RING_BUFFER_BENCHMARK is not set
-# CONFIG_TRACE_EVAL_MAP_FILE is not set
-# CONFIG_FTRACE_RECORD_RECURSION is not set
-# CONFIG_FTRACE_STARTUP_TEST is not set
-# CONFIG_RING_BUFFER_STARTUP_TEST is not set
-# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set
-# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
-# CONFIG_SYNTH_EVENT_GEN_TEST is not set
-# CONFIG_KPROBE_EVENT_GEN_TEST is not set
-# CONFIG_SAMPLES is not set
-CONFIG_STRICT_DEVMEM=y
-CONFIG_IO_STRICT_DEVMEM=y
-
-#
-# arm Debugging
-#
-CONFIG_ARM_PTDUMP_CORE=y
-# CONFIG_ARM_PTDUMP_DEBUGFS is not set
-CONFIG_UNWINDER_FRAME_POINTER=y
-# CONFIG_DEBUG_USER is not set
-# CONFIG_DEBUG_LL is not set
-CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
-CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
-# CONFIG_ARM_KPROBES_TEST is not set
-# CONFIG_PID_IN_CONTEXTIDR is not set
-# CONFIG_CORESIGHT is not set
-# end of arm Debugging
-
-#
-# Kernel Testing and Coverage
-#
-# CONFIG_KUNIT is not set
-CONFIG_NOTIFIER_ERROR_INJECTION=m
-CONFIG_PM_NOTIFIER_ERROR_INJECT=m
-# CONFIG_OF_RECONFIG_NOTIFIER_ERROR_INJECT is not set
-# CONFIG_NETDEV_NOTIFIER_ERROR_INJECT is not set
-# CONFIG_FAULT_INJECTION is not set
-CONFIG_ARCH_HAS_KCOV=y
-CONFIG_CC_HAS_SANCOV_TRACE_PC=y
-# CONFIG_KCOV is not set
-CONFIG_RUNTIME_TESTING_MENU=y
-# CONFIG_LKDTM is not set
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_TEST_MIN_HEAP is not set
-# CONFIG_TEST_SORT is not set
-# CONFIG_TEST_DIV64 is not set
-# CONFIG_KPROBES_SANITY_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_RBTREE_TEST is not set
-# CONFIG_REED_SOLOMON_TEST is not set
-# CONFIG_INTERVAL_TREE_TEST is not set
-# CONFIG_PERCPU_TEST is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
-# CONFIG_ASYNC_RAID6_TEST is not set
-# CONFIG_TEST_HEXDUMP is not set
-# CONFIG_TEST_STRING_HELPERS is not set
-CONFIG_TEST_STRSCPY=m
-# CONFIG_TEST_KSTRTOX is not set
-# CONFIG_TEST_PRINTF is not set
-# CONFIG_TEST_BITMAP is not set
-# CONFIG_TEST_UUID is not set
-CONFIG_TEST_XARRAY=m
-# CONFIG_TEST_OVERFLOW is not set
-# CONFIG_TEST_RHASHTABLE is not set
-# CONFIG_TEST_HASH is not set
-# CONFIG_TEST_IDA is not set
-# CONFIG_TEST_LKM is not set
-CONFIG_TEST_BITOPS=m
-CONFIG_TEST_VMALLOC=m
-CONFIG_TEST_USER_COPY=m
-CONFIG_TEST_BPF=m
-CONFIG_TEST_BLACKHOLE_DEV=m
-CONFIG_FIND_BIT_BENCHMARK=m
-CONFIG_TEST_FIRMWARE=m
-# CONFIG_TEST_SYSCTL is not set
-# CONFIG_TEST_UDELAY is not set
-CONFIG_TEST_STATIC_KEYS=m
-# CONFIG_TEST_KMOD is not set
-# CONFIG_TEST_MEMCAT_P is not set
-# CONFIG_TEST_STACKINIT is not set
-# CONFIG_TEST_MEMINIT is not set
-# CONFIG_TEST_FREE_PAGES is not set
-CONFIG_ARCH_USE_MEMTEST=y
-# CONFIG_MEMTEST is not set
-# end of Kernel Testing and Coverage
-# end of Kernel hacking
diff --git a/gnu/packages/aux-files/linux-libre/5.13-arm64.conf b/gnu/packages/aux-files/linux-libre/5.13-arm64.conf
deleted file mode 100644
index dfb312508d..0000000000
--- a/gnu/packages/aux-files/linux-libre/5.13-arm64.conf
+++ /dev/null
@@ -1,10391 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/arm64 5.13.1 Kernel Configuration
-#
-CONFIG_CC_VERSION_TEXT="gcc (Debian 8.3.0-6) 8.3.0"
-CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=80300
-CONFIG_CLANG_VERSION=0
-CONFIG_AS_IS_GNU=y
-CONFIG_AS_VERSION=23101
-CONFIG_LD_IS_BFD=y
-CONFIG_LD_VERSION=23101
-CONFIG_LLD_VERSION=0
-CONFIG_CC_CAN_LINK=y
-CONFIG_CC_CAN_LINK_STATIC=y
-CONFIG_CC_HAS_ASM_GOTO=y
-CONFIG_CC_HAS_ASM_INLINE=y
-CONFIG_IRQ_WORK=y
-CONFIG_BUILDTIME_TABLE_SORT=y
-CONFIG_THREAD_INFO_IN_TASK=y
-
-#
-# General setup
-#
-CONFIG_INIT_ENV_ARG_LIMIT=32
-# CONFIG_COMPILE_TEST is not set
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_BUILD_SALT=""
-CONFIG_DEFAULT_INIT=""
-CONFIG_DEFAULT_HOSTNAME="(none)"
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-CONFIG_WATCH_QUEUE=y
-CONFIG_CROSS_MEMORY_ATTACH=y
-# CONFIG_USELIB is not set
-CONFIG_AUDIT=y
-CONFIG_HAVE_ARCH_AUDITSYSCALL=y
-CONFIG_AUDITSYSCALL=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
-CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
-CONFIG_GENERIC_IRQ_MIGRATION=y
-CONFIG_GENERIC_IRQ_INJECTION=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_IRQ_DOMAIN_HIERARCHY=y
-CONFIG_IRQ_FASTEOI_HIERARCHY_HANDLERS=y
-CONFIG_GENERIC_IRQ_IPI=y
-CONFIG_GENERIC_MSI_IRQ=y
-CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
-CONFIG_IRQ_MSI_IOMMU=y
-CONFIG_HANDLE_DOMAIN_IRQ=y
-CONFIG_IRQ_FORCED_THREADING=y
-CONFIG_SPARSE_IRQ=y
-# CONFIG_GENERIC_IRQ_DEBUGFS is not set
-# end of IRQ subsystem
-
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_ARCH_HAS_TICK_BROADCAST=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-
-#
-# Timers subsystem
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ_COMMON=y
-# CONFIG_HZ_PERIODIC is not set
-CONFIG_NO_HZ_IDLE=y
-# CONFIG_NO_HZ_FULL is not set
-# CONFIG_NO_HZ is not set
-CONFIG_HIGH_RES_TIMERS=y
-# end of Timers subsystem
-
-CONFIG_BPF=y
-CONFIG_HAVE_EBPF_JIT=y
-CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
-
-#
-# BPF subsystem
-#
-CONFIG_BPF_SYSCALL=y
-CONFIG_BPF_JIT=y
-# CONFIG_BPF_JIT_ALWAYS_ON is not set
-CONFIG_BPF_JIT_DEFAULT_ON=y
-# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
-# CONFIG_BPF_PRELOAD is not set
-CONFIG_BPF_LSM=y
-# end of BPF subsystem
-
-# CONFIG_PREEMPT_NONE is not set
-CONFIG_PREEMPT_VOLUNTARY=y
-# CONFIG_PREEMPT is not set
-
-#
-# CPU/Task time and stats accounting
-#
-CONFIG_TICK_CPU_ACCOUNTING=y
-# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
-# CONFIG_IRQ_TIME_ACCOUNTING is not set
-CONFIG_SCHED_THERMAL_PRESSURE=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_PSI=y
-# CONFIG_PSI_DEFAULT_DISABLED is not set
-# end of CPU/Task time and stats accounting
-
-CONFIG_CPU_ISOLATION=y
-
-#
-# RCU Subsystem
-#
-CONFIG_TREE_RCU=y
-# CONFIG_RCU_EXPERT is not set
-CONFIG_SRCU=y
-CONFIG_TREE_SRCU=y
-CONFIG_TASKS_RCU_GENERIC=y
-CONFIG_TASKS_RUDE_RCU=y
-CONFIG_TASKS_TRACE_RCU=y
-CONFIG_RCU_STALL_COMMON=y
-CONFIG_RCU_NEED_SEGCBLIST=y
-# end of RCU Subsystem
-
-CONFIG_BUILD_BIN2C=y
-# CONFIG_IKCONFIG is not set
-# CONFIG_IKHEADERS is not set
-CONFIG_LOG_BUF_SHIFT=17
-CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
-CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
-CONFIG_GENERIC_SCHED_CLOCK=y
-
-#
-# Scheduler features
-#
-# CONFIG_UCLAMP_TASK is not set
-# end of Scheduler features
-
-CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
-CONFIG_CC_HAS_INT128=y
-CONFIG_ARCH_SUPPORTS_INT128=y
-CONFIG_NUMA_BALANCING=y
-CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
-CONFIG_CGROUPS=y
-CONFIG_PAGE_COUNTER=y
-CONFIG_MEMCG=y
-CONFIG_MEMCG_SWAP=y
-CONFIG_MEMCG_KMEM=y
-CONFIG_BLK_CGROUP=y
-CONFIG_CGROUP_WRITEBACK=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_CFS_BANDWIDTH=y
-# CONFIG_RT_GROUP_SCHED is not set
-CONFIG_CGROUP_PIDS=y
-# CONFIG_CGROUP_RDMA is not set
-CONFIG_CGROUP_FREEZER=y
-# CONFIG_CGROUP_HUGETLB is not set
-CONFIG_CPUSETS=y
-CONFIG_PROC_PID_CPUSET=y
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_CGROUP_PERF=y
-CONFIG_CGROUP_BPF=y
-CONFIG_CGROUP_MISC=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_SOCK_CGROUP_DATA=y
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_TIME_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_SCHED_AUTOGROUP=y
-# CONFIG_SYSFS_DEPRECATED is not set
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_RD_XZ=y
-CONFIG_RD_LZO=y
-CONFIG_RD_LZ4=y
-CONFIG_RD_ZSTD=y
-CONFIG_BOOT_CONFIG=y
-CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_LD_ORPHAN_WARN=y
-CONFIG_SYSCTL=y
-CONFIG_HAVE_UID16=y
-CONFIG_SYSCTL_EXCEPTION_TRACE=y
-CONFIG_EXPERT=y
-CONFIG_UID16=y
-CONFIG_MULTIUSER=y
-# CONFIG_SGETMASK_SYSCALL is not set
-# CONFIG_SYSFS_SYSCALL is not set
-CONFIG_FHANDLE=y
-CONFIG_POSIX_TIMERS=y
-CONFIG_PRINTK=y
-CONFIG_PRINTK_NMI=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_FUTEX_PI=y
-CONFIG_HAVE_FUTEX_CMPXCHG=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_IO_URING=y
-CONFIG_ADVISE_SYSCALLS=y
-CONFIG_HAVE_ARCH_USERFAULTFD_MINOR=y
-CONFIG_MEMBARRIER=y
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_ALL is not set
-CONFIG_KALLSYMS_BASE_RELATIVE=y
-CONFIG_USERFAULTFD=y
-CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
-CONFIG_KCMP=y
-CONFIG_RSEQ=y
-# CONFIG_DEBUG_RSEQ is not set
-# CONFIG_EMBEDDED is not set
-CONFIG_HAVE_PERF_EVENTS=y
-# CONFIG_PC104 is not set
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
-# end of Kernel Performance Events And Counters
-
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLUB_DEBUG=y
-# CONFIG_COMPAT_BRK is not set
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-# CONFIG_SLOB is not set
-CONFIG_SLAB_MERGE_DEFAULT=y
-CONFIG_SLAB_FREELIST_RANDOM=y
-CONFIG_SLAB_FREELIST_HARDENED=y
-CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
-CONFIG_SLUB_CPU_PARTIAL=y
-CONFIG_SYSTEM_DATA_VERIFICATION=y
-CONFIG_PROFILING=y
-CONFIG_TRACEPOINTS=y
-# end of General setup
-
-CONFIG_ARM64=y
-CONFIG_64BIT=y
-CONFIG_MMU=y
-CONFIG_ARM64_PAGE_SHIFT=12
-CONFIG_ARM64_CONT_PTE_SHIFT=4
-CONFIG_ARM64_CONT_PMD_SHIFT=4
-CONFIG_ARCH_MMAP_RND_BITS_MIN=18
-CONFIG_ARCH_MMAP_RND_BITS_MAX=33
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CSUM=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_ZONE_DMA=y
-CONFIG_ZONE_DMA32=y
-CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
-CONFIG_SMP=y
-CONFIG_KERNEL_MODE_NEON=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_PGTABLE_LEVELS=4
-CONFIG_ARCH_SUPPORTS_UPROBES=y
-CONFIG_ARCH_PROC_KCORE_TEXT=y
-CONFIG_BROKEN_GAS_INST=y
-
-#
-# Platform selection
-#
-# CONFIG_ARCH_ACTIONS is not set
-CONFIG_ARCH_SUNXI=y
-# CONFIG_ARCH_ALPINE is not set
-CONFIG_ARCH_APPLE=y
-CONFIG_ARCH_BCM2835=y
-CONFIG_ARCH_BCM4908=y
-# CONFIG_ARCH_BCM_IPROC is not set
-# CONFIG_ARCH_BERLIN is not set
-CONFIG_ARCH_BITMAIN=y
-# CONFIG_ARCH_BRCMSTB is not set
-# CONFIG_ARCH_EXYNOS is not set
-# CONFIG_ARCH_SPARX5 is not set
-# CONFIG_ARCH_K3 is not set
-# CONFIG_ARCH_LAYERSCAPE is not set
-# CONFIG_ARCH_LG1K is not set
-CONFIG_ARCH_HISI=y
-CONFIG_ARCH_KEEMBAY=y
-# CONFIG_ARCH_MEDIATEK is not set
-CONFIG_ARCH_MESON=y
-CONFIG_ARCH_MVEBU=y
-CONFIG_ARCH_MXC=y
-CONFIG_ARCH_QCOM=y
-# CONFIG_ARCH_REALTEK is not set
-# CONFIG_ARCH_RENESAS is not set
-CONFIG_ARCH_ROCKCHIP=y
-# CONFIG_ARCH_S32 is not set
-CONFIG_ARCH_SEATTLE=y
-CONFIG_ARCH_INTEL_SOCFPGA=y
-CONFIG_ARCH_SYNQUACER=y
-CONFIG_ARCH_TEGRA=y
-# CONFIG_ARCH_SPRD is not set
-CONFIG_ARCH_THUNDER=y
-CONFIG_ARCH_THUNDER2=y
-# CONFIG_ARCH_UNIPHIER is not set
-CONFIG_ARCH_VEXPRESS=y
-CONFIG_ARCH_VISCONTI=y
-CONFIG_ARCH_XGENE=y
-# CONFIG_ARCH_ZYNQMP is not set
-# end of Platform selection
-
-#
-# Kernel Features
-#
-
-#
-# ARM errata workarounds via the alternatives framework
-#
-CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y
-CONFIG_ARM64_ERRATUM_826319=y
-CONFIG_ARM64_ERRATUM_827319=y
-CONFIG_ARM64_ERRATUM_824069=y
-CONFIG_ARM64_ERRATUM_819472=y
-CONFIG_ARM64_ERRATUM_832075=y
-CONFIG_ARM64_ERRATUM_834220=y
-CONFIG_ARM64_ERRATUM_845719=y
-CONFIG_ARM64_ERRATUM_843419=y
-CONFIG_ARM64_ERRATUM_1024718=y
-CONFIG_ARM64_ERRATUM_1418040=y
-CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y
-CONFIG_ARM64_ERRATUM_1165522=y
-CONFIG_ARM64_ERRATUM_1319367=y
-CONFIG_ARM64_ERRATUM_1530923=y
-CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y
-CONFIG_ARM64_ERRATUM_1286807=y
-CONFIG_ARM64_ERRATUM_1463225=y
-CONFIG_ARM64_ERRATUM_1542419=y
-CONFIG_ARM64_ERRATUM_1508412=y
-CONFIG_CAVIUM_ERRATUM_22375=y
-CONFIG_CAVIUM_ERRATUM_23144=y
-CONFIG_CAVIUM_ERRATUM_23154=y
-CONFIG_CAVIUM_ERRATUM_27456=y
-CONFIG_CAVIUM_ERRATUM_30115=y
-CONFIG_CAVIUM_TX2_ERRATUM_219=y
-CONFIG_FUJITSU_ERRATUM_010001=y
-CONFIG_HISILICON_ERRATUM_161600802=y
-CONFIG_QCOM_FALKOR_ERRATUM_1003=y
-CONFIG_QCOM_FALKOR_ERRATUM_1009=y
-CONFIG_QCOM_QDF2400_ERRATUM_0065=y
-CONFIG_QCOM_FALKOR_ERRATUM_E1041=y
-CONFIG_NVIDIA_CARMEL_CNP_ERRATUM=y
-CONFIG_SOCIONEXT_SYNQUACER_PREITS=y
-# end of ARM errata workarounds via the alternatives framework
-
-CONFIG_ARM64_4K_PAGES=y
-# CONFIG_ARM64_16K_PAGES is not set
-# CONFIG_ARM64_64K_PAGES is not set
-# CONFIG_ARM64_VA_BITS_39 is not set
-CONFIG_ARM64_VA_BITS_48=y
-CONFIG_ARM64_VA_BITS=48
-CONFIG_ARM64_PA_BITS_48=y
-CONFIG_ARM64_PA_BITS=48
-# CONFIG_CPU_BIG_ENDIAN is not set
-CONFIG_CPU_LITTLE_ENDIAN=y
-CONFIG_SCHED_MC=y
-# CONFIG_SCHED_SMT is not set
-CONFIG_NR_CPUS=256
-CONFIG_HOTPLUG_CPU=y
-CONFIG_NUMA=y
-CONFIG_NODES_SHIFT=2
-CONFIG_USE_PERCPU_NUMA_NODE_ID=y
-CONFIG_HAVE_SETUP_PER_CPU_AREA=y
-CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
-CONFIG_HOLES_IN_ZONE=y
-# CONFIG_HZ_100 is not set
-CONFIG_HZ_250=y
-# CONFIG_HZ_300 is not set
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ=250
-CONFIG_SCHED_HRTICK=y
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_HW_PERF_EVENTS=y
-CONFIG_ARCH_HAS_FILTER_PGPROT=y
-CONFIG_PARAVIRT=y
-# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
-CONFIG_KEXEC=y
-CONFIG_KEXEC_FILE=y
-# CONFIG_KEXEC_SIG is not set
-CONFIG_CRASH_DUMP=y
-CONFIG_TRANS_TABLE=y
-CONFIG_XEN_DOM0=y
-CONFIG_XEN=y
-CONFIG_FORCE_MAX_ZONEORDER=11
-CONFIG_UNMAP_KERNEL_AT_EL0=y
-CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
-# CONFIG_ARM64_SW_TTBR0_PAN is not set
-CONFIG_ARM64_TAGGED_ADDR_ABI=y
-CONFIG_COMPAT=y
-CONFIG_KUSER_HELPERS=y
-CONFIG_ARMV8_DEPRECATED=y
-CONFIG_SWP_EMULATION=y
-CONFIG_CP15_BARRIER_EMULATION=y
-CONFIG_SETEND_EMULATION=y
-
-#
-# ARMv8.1 architectural features
-#
-CONFIG_ARM64_HW_AFDBM=y
-CONFIG_ARM64_PAN=y
-CONFIG_ARM64_USE_LSE_ATOMICS=y
-# end of ARMv8.1 architectural features
-
-#
-# ARMv8.2 architectural features
-#
-CONFIG_ARM64_PMEM=y
-CONFIG_ARM64_RAS_EXTN=y
-CONFIG_ARM64_CNP=y
-# end of ARMv8.2 architectural features
-
-#
-# ARMv8.3 architectural features
-#
-# end of ARMv8.3 architectural features
-
-#
-# ARMv8.4 architectural features
-#
-CONFIG_ARM64_AMU_EXTN=y
-# end of ARMv8.4 architectural features
-
-#
-# ARMv8.5 architectural features
-#
-CONFIG_ARM64_BTI=y
-CONFIG_ARM64_E0PD=y
-CONFIG_ARCH_RANDOM=y
-# end of ARMv8.5 architectural features
-
-#
-# ARMv8.7 architectural features
-#
-CONFIG_ARM64_EPAN=y
-# end of ARMv8.7 architectural features
-
-CONFIG_ARM64_SVE=y
-CONFIG_ARM64_MODULE_PLTS=y
-# CONFIG_ARM64_PSEUDO_NMI is not set
-CONFIG_RELOCATABLE=y
-CONFIG_RANDOMIZE_BASE=y
-CONFIG_RANDOMIZE_MODULE_REGION_FULL=y
-# end of Kernel Features
-
-#
-# Boot options
-#
-CONFIG_ARM64_ACPI_PARKING_PROTOCOL=y
-CONFIG_CMDLINE=""
-CONFIG_EFI_STUB=y
-CONFIG_EFI=y
-CONFIG_DMI=y
-# end of Boot options
-
-CONFIG_SYSVIPC_COMPAT=y
-
-#
-# Power management options
-#
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_SUSPEND_SKIP_SYNC is not set
-CONFIG_HIBERNATE_CALLBACKS=y
-CONFIG_HIBERNATION=y
-CONFIG_HIBERNATION_SNAPSHOT_DEV=y
-CONFIG_PM_STD_PARTITION=""
-CONFIG_PM_SLEEP=y
-CONFIG_PM_SLEEP_SMP=y
-# CONFIG_PM_AUTOSLEEP is not set
-# CONFIG_PM_WAKELOCKS is not set
-CONFIG_PM=y
-CONFIG_PM_DEBUG=y
-CONFIG_PM_ADVANCED_DEBUG=y
-# CONFIG_PM_TEST_SUSPEND is not set
-CONFIG_PM_SLEEP_DEBUG=y
-# CONFIG_DPM_WATCHDOG is not set
-CONFIG_PM_CLK=y
-CONFIG_PM_GENERIC_DOMAINS=y
-# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
-CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
-CONFIG_PM_GENERIC_DOMAINS_OF=y
-CONFIG_CPU_PM=y
-CONFIG_ENERGY_MODEL=y
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_ARCH_HIBERNATION_HEADER=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-# end of Power management options
-
-#
-# CPU Power Management
-#
-
-#
-# CPU Idle
-#
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-CONFIG_CPU_IDLE_GOV_TEO=y
-CONFIG_DT_IDLE_STATES=y
-
-#
-# ARM CPU Idle Drivers
-#
-CONFIG_ARM_CPUIDLE=y
-# CONFIG_ARM_PSCI_CPUIDLE is not set
-# end of ARM CPU Idle Drivers
-# end of CPU Idle
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_GOV_ATTR_SET=y
-CONFIG_CPU_FREQ_GOV_COMMON=y
-CONFIG_CPU_FREQ_STAT=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=m
-CONFIG_CPU_FREQ_GOV_USERSPACE=m
-CONFIG_CPU_FREQ_GOV_ONDEMAND=m
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
-CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
-
-#
-# CPU frequency scaling drivers
-#
-CONFIG_CPUFREQ_DT=m
-CONFIG_CPUFREQ_DT_PLATDEV=y
-CONFIG_ACPI_CPPC_CPUFREQ=m
-CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=m
-# CONFIG_ARM_ARMADA_37XX_CPUFREQ is not set
-# CONFIG_ARM_ARMADA_8K_CPUFREQ is not set
-CONFIG_ARM_IMX_CPUFREQ_DT=m
-# CONFIG_ARM_QCOM_CPUFREQ_HW is not set
-CONFIG_ARM_RASPBERRYPI_CPUFREQ=m
-CONFIG_ARM_SCMI_CPUFREQ=m
-CONFIG_ARM_TEGRA20_CPUFREQ=m
-CONFIG_ARM_TEGRA124_CPUFREQ=y
-# CONFIG_ARM_TEGRA186_CPUFREQ is not set
-CONFIG_ARM_TEGRA194_CPUFREQ=m
-# end of CPU Frequency scaling
-# end of CPU Power Management
-
-#
-# Firmware Drivers
-#
-CONFIG_ARM_SCMI_PROTOCOL=y
-CONFIG_ARM_SCMI_POWER_DOMAIN=m
-# CONFIG_ARM_SCPI_PROTOCOL is not set
-# CONFIG_ARM_SDE_INTERFACE is not set
-# CONFIG_FIRMWARE_MEMMAP is not set
-CONFIG_DMIID=y
-CONFIG_DMI_SYSFS=y
-CONFIG_ISCSI_IBFT=m
-CONFIG_RASPBERRYPI_FIRMWARE=y
-# CONFIG_FW_CFG_SYSFS is not set
-CONFIG_INTEL_STRATIX10_SERVICE=m
-CONFIG_INTEL_STRATIX10_RSU=m
-CONFIG_QCOM_SCM=y
-# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set
-# CONFIG_TURRIS_MOX_RWTM is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
-
-#
-# EFI (Extensible Firmware Interface) Support
-#
-CONFIG_EFI_ESRT=y
-CONFIG_EFI_VARS_PSTORE=m
-# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
-CONFIG_EFI_SOFT_RESERVE=y
-CONFIG_EFI_PARAMS_FROM_FDT=y
-CONFIG_EFI_RUNTIME_WRAPPERS=y
-CONFIG_EFI_GENERIC_STUB=y
-CONFIG_EFI_ARMSTUB_DTB_LOADER=y
-CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
-# CONFIG_EFI_BOOTLOADER_CONTROL is not set
-# CONFIG_EFI_CAPSULE_LOADER is not set
-# CONFIG_EFI_TEST is not set
-# CONFIG_RESET_ATTACK_MITIGATION is not set
-# CONFIG_EFI_DISABLE_PCI_DMA is not set
-# end of EFI (Extensible Firmware Interface) Support
-
-CONFIG_EFI_EARLYCON=y
-CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
-# CONFIG_IMX_DSP is not set
-CONFIG_IMX_SCU=y
-CONFIG_IMX_SCU_PD=y
-CONFIG_MESON_SM=y
-CONFIG_ARM_PSCI_FW=y
-# CONFIG_ARM_PSCI_CHECKER is not set
-CONFIG_HAVE_ARM_SMCCC=y
-CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y
-CONFIG_ARM_SMCCC_SOC_ID=y
-
-#
-# Tegra firmware driver
-#
-CONFIG_TEGRA_IVC=y
-CONFIG_TEGRA_BPMP=y
-# end of Tegra firmware driver
-# end of Firmware Drivers
-
-CONFIG_ARCH_SUPPORTS_ACPI=y
-CONFIG_ACPI=y
-CONFIG_ACPI_GENERIC_GSI=y
-CONFIG_ACPI_CCA_REQUIRED=y
-# CONFIG_ACPI_DEBUGGER is not set
-CONFIG_ACPI_SPCR_TABLE=y
-# CONFIG_ACPI_EC_DEBUGFS is not set
-CONFIG_ACPI_AC=m
-CONFIG_ACPI_BATTERY=m
-CONFIG_ACPI_BUTTON=y
-CONFIG_ACPI_FAN=y
-CONFIG_ACPI_TAD=m
-# CONFIG_ACPI_DOCK is not set
-CONFIG_ACPI_PROCESSOR_IDLE=y
-CONFIG_ACPI_MCFG=y
-CONFIG_ACPI_CPPC_LIB=y
-CONFIG_ACPI_PROCESSOR=y
-# CONFIG_ACPI_IPMI is not set
-CONFIG_ACPI_HOTPLUG_CPU=y
-CONFIG_ACPI_THERMAL=y
-CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
-CONFIG_ACPI_TABLE_UPGRADE=y
-# CONFIG_ACPI_DEBUG is not set
-# CONFIG_ACPI_PCI_SLOT is not set
-CONFIG_ACPI_CONTAINER=y
-# CONFIG_ACPI_HED is not set
-# CONFIG_ACPI_CUSTOM_METHOD is not set
-# CONFIG_ACPI_BGRT is not set
-CONFIG_ACPI_REDUCED_HARDWARE_ONLY=y
-CONFIG_ACPI_NFIT=y
-# CONFIG_NFIT_SECURITY_DEBUG is not set
-CONFIG_ACPI_NUMA=y
-CONFIG_ACPI_HMAT=y
-CONFIG_HAVE_ACPI_APEI=y
-# CONFIG_ACPI_APEI is not set
-# CONFIG_ACPI_CONFIGFS is not set
-CONFIG_ACPI_IORT=y
-CONFIG_ACPI_GTDT=y
-CONFIG_ACPI_PPTT=y
-# CONFIG_PMIC_OPREGION is not set
-CONFIG_IRQ_BYPASS_MANAGER=y
-CONFIG_VIRTUALIZATION=y
-CONFIG_KVM=y
-CONFIG_HAVE_KVM_IRQCHIP=y
-CONFIG_HAVE_KVM_IRQFD=y
-CONFIG_HAVE_KVM_IRQ_ROUTING=y
-CONFIG_HAVE_KVM_EVENTFD=y
-CONFIG_KVM_MMIO=y
-CONFIG_HAVE_KVM_MSI=y
-CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
-CONFIG_KVM_VFIO=y
-CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL=y
-CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
-CONFIG_HAVE_KVM_IRQ_BYPASS=y
-CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=y
-CONFIG_ARM64_CRYPTO=y
-CONFIG_CRYPTO_SHA256_ARM64=m
-# CONFIG_CRYPTO_SHA512_ARM64 is not set
-CONFIG_CRYPTO_SHA1_ARM64_CE=m
-CONFIG_CRYPTO_SHA2_ARM64_CE=m
-# CONFIG_CRYPTO_SHA512_ARM64_CE is not set
-# CONFIG_CRYPTO_SHA3_ARM64 is not set
-# CONFIG_CRYPTO_SM3_ARM64_CE is not set
-# CONFIG_CRYPTO_SM4_ARM64_CE is not set
-CONFIG_CRYPTO_GHASH_ARM64_CE=m
-# CONFIG_CRYPTO_CRCT10DIF_ARM64_CE is not set
-CONFIG_CRYPTO_AES_ARM64=m
-CONFIG_CRYPTO_AES_ARM64_CE=m
-CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
-CONFIG_CRYPTO_AES_ARM64_CE_BLK=m
-# CONFIG_CRYPTO_AES_ARM64_NEON_BLK is not set
-CONFIG_CRYPTO_CHACHA20_NEON=m
-CONFIG_CRYPTO_POLY1305_NEON=m
-CONFIG_CRYPTO_NHPOLY1305_NEON=m
-# CONFIG_CRYPTO_AES_ARM64_BS is not set
-
-#
-# General architecture-dependent options
-#
-CONFIG_CRASH_CORE=y
-CONFIG_KEXEC_CORE=y
-CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
-# CONFIG_STATIC_KEYS_SELFTEST is not set
-CONFIG_UPROBES=y
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_KRETPROBES=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
-CONFIG_HAVE_NMI=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_CONTIGUOUS=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_GENERIC_IDLE_POLL_SETUP=y
-CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
-CONFIG_ARCH_HAS_KEEPINITRD=y
-CONFIG_ARCH_HAS_SET_MEMORY=y
-CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
-CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
-CONFIG_HAVE_ASM_MODVERSIONS=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_RSEQ=y
-CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-CONFIG_HAVE_PERF_REGS=y
-CONFIG_HAVE_PERF_USER_STACK_DUMP=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
-CONFIG_MMU_GATHER_TABLE_FREE=y
-CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
-CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
-CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
-CONFIG_HAVE_CMPXCHG_LOCAL=y
-CONFIG_HAVE_CMPXCHG_DOUBLE=y
-CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
-CONFIG_HAVE_ARCH_SECCOMP=y
-CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
-CONFIG_SECCOMP=y
-CONFIG_SECCOMP_FILTER=y
-# CONFIG_SECCOMP_CACHE_DEBUG is not set
-CONFIG_HAVE_ARCH_STACKLEAK=y
-CONFIG_HAVE_STACKPROTECTOR=y
-CONFIG_STACKPROTECTOR=y
-CONFIG_STACKPROTECTOR_STRONG=y
-CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
-CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
-CONFIG_LTO_NONE=y
-CONFIG_ARCH_SUPPORTS_CFI_CLANG=y
-CONFIG_HAVE_CONTEXT_TRACKING=y
-CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
-CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
-CONFIG_HAVE_MOVE_PUD=y
-CONFIG_HAVE_MOVE_PMD=y
-CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
-CONFIG_HAVE_ARCH_HUGE_VMAP=y
-CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
-CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
-CONFIG_MODULES_USE_ELF_RELA=y
-CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
-CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
-CONFIG_ARCH_MMAP_RND_BITS=18
-CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11
-CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
-CONFIG_CLONE_BACKWARDS=y
-CONFIG_OLD_SIGSUSPEND3=y
-CONFIG_COMPAT_OLD_SIGACTION=y
-CONFIG_COMPAT_32BIT_TIME=y
-CONFIG_HAVE_ARCH_VMAP_STACK=y
-CONFIG_VMAP_STACK=y
-CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y
-CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y
-CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
-CONFIG_STRICT_KERNEL_RWX=y
-CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
-CONFIG_STRICT_MODULE_RWX=y
-CONFIG_HAVE_ARCH_COMPILER_H=y
-CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
-CONFIG_ARCH_USE_MEMREMAP_PROT=y
-# CONFIG_LOCK_EVENT_COUNTS is not set
-CONFIG_ARCH_HAS_RELR=y
-CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
-CONFIG_HAVE_ARCH_PFN_VALID=y
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
-# end of GCOV-based kernel profiling
-
-CONFIG_HAVE_GCC_PLUGINS=y
-# end of General architecture-dependent options
-
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_MODULE_FORCE_LOAD=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-CONFIG_ASM_MODVERSIONS=y
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-# CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS_NONE is not set
-CONFIG_MODULE_COMPRESS_GZIP=y
-# CONFIG_MODULE_COMPRESS_XZ is not set
-# CONFIG_MODULE_COMPRESS_ZSTD is not set
-# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
-CONFIG_MODPROBE_PATH="/run/current-system/profile/bin/modprobe"
-# CONFIG_TRIM_UNUSED_KSYMS is not set
-CONFIG_MODULES_TREE_LOOKUP=y
-CONFIG_BLOCK=y
-CONFIG_BLK_RQ_ALLOC_TIME=y
-CONFIG_BLK_SCSI_REQUEST=y
-CONFIG_BLK_CGROUP_RWSTAT=y
-CONFIG_BLK_DEV_BSG=y
-CONFIG_BLK_DEV_BSGLIB=y
-CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_BLK_DEV_INTEGRITY_T10=m
-# CONFIG_BLK_DEV_ZONED is not set
-CONFIG_BLK_DEV_THROTTLING=y
-# CONFIG_BLK_DEV_THROTTLING_LOW is not set
-# CONFIG_BLK_CMDLINE_PARSER is not set
-CONFIG_BLK_WBT=y
-# CONFIG_BLK_CGROUP_IOLATENCY is not set
-CONFIG_BLK_CGROUP_IOCOST=y
-CONFIG_BLK_WBT_MQ=y
-CONFIG_BLK_DEBUG_FS=y
-CONFIG_BLK_SED_OPAL=y
-CONFIG_BLK_INLINE_ENCRYPTION=y
-CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_AIX_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-CONFIG_KARMA_PARTITION=y
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
-# CONFIG_CMDLINE_PARTITION is not set
-# end of Partition Types
-
-CONFIG_BLOCK_COMPAT=y
-CONFIG_BLK_MQ_PCI=y
-CONFIG_BLK_MQ_VIRTIO=y
-CONFIG_BLK_MQ_RDMA=y
-CONFIG_BLK_PM=y
-
-#
-# IO Schedulers
-#
-CONFIG_MQ_IOSCHED_DEADLINE=y
-CONFIG_MQ_IOSCHED_KYBER=m
-CONFIG_IOSCHED_BFQ=m
-CONFIG_BFQ_GROUP_IOSCHED=y
-# CONFIG_BFQ_CGROUP_DEBUG is not set
-# end of IO Schedulers
-
-CONFIG_PREEMPT_NOTIFIERS=y
-CONFIG_PADATA=y
-CONFIG_ASN1=y
-CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y
-CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=y
-CONFIG_ARCH_INLINE_SPIN_LOCK=y
-CONFIG_ARCH_INLINE_SPIN_LOCK_BH=y
-CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=y
-CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=y
-CONFIG_ARCH_INLINE_SPIN_UNLOCK=y
-CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=y
-CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=y
-CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=y
-CONFIG_ARCH_INLINE_READ_LOCK=y
-CONFIG_ARCH_INLINE_READ_LOCK_BH=y
-CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y
-CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y
-CONFIG_ARCH_INLINE_READ_UNLOCK=y
-CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y
-CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y
-CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y
-CONFIG_ARCH_INLINE_WRITE_LOCK=y
-CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y
-CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y
-CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y
-CONFIG_ARCH_INLINE_WRITE_UNLOCK=y
-CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y
-CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y
-CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y
-CONFIG_INLINE_SPIN_TRYLOCK=y
-CONFIG_INLINE_SPIN_TRYLOCK_BH=y
-CONFIG_INLINE_SPIN_LOCK=y
-CONFIG_INLINE_SPIN_LOCK_BH=y
-CONFIG_INLINE_SPIN_LOCK_IRQ=y
-CONFIG_INLINE_SPIN_LOCK_IRQSAVE=y
-CONFIG_INLINE_SPIN_UNLOCK_BH=y
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE=y
-CONFIG_INLINE_READ_LOCK=y
-CONFIG_INLINE_READ_LOCK_BH=y
-CONFIG_INLINE_READ_LOCK_IRQ=y
-CONFIG_INLINE_READ_LOCK_IRQSAVE=y
-CONFIG_INLINE_READ_UNLOCK=y
-CONFIG_INLINE_READ_UNLOCK_BH=y
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-CONFIG_INLINE_READ_UNLOCK_IRQRESTORE=y
-CONFIG_INLINE_WRITE_LOCK=y
-CONFIG_INLINE_WRITE_LOCK_BH=y
-CONFIG_INLINE_WRITE_LOCK_IRQ=y
-CONFIG_INLINE_WRITE_LOCK_IRQSAVE=y
-CONFIG_INLINE_WRITE_UNLOCK=y
-CONFIG_INLINE_WRITE_UNLOCK_BH=y
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y
-CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
-CONFIG_MUTEX_SPIN_ON_OWNER=y
-CONFIG_RWSEM_SPIN_ON_OWNER=y
-CONFIG_LOCK_SPIN_ON_OWNER=y
-CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
-CONFIG_QUEUED_SPINLOCKS=y
-CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
-CONFIG_QUEUED_RWLOCKS=y
-CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
-CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
-CONFIG_FREEZER=y
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_COMPAT_BINFMT_ELF=y
-CONFIG_ARCH_BINFMT_ELF_STATE=y
-CONFIG_ARCH_HAVE_ELF_PROT=y
-CONFIG_ARCH_USE_GNU_PROPERTY=y
-CONFIG_ELFCORE=y
-CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-CONFIG_BINFMT_SCRIPT=y
-CONFIG_BINFMT_MISC=m
-CONFIG_COREDUMP=y
-# end of Executable file formats
-
-#
-# Memory Management options
-#
-CONFIG_SPARSEMEM=y
-CONFIG_NEED_MULTIPLE_NODES=y
-CONFIG_SPARSEMEM_EXTREME=y
-CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
-CONFIG_SPARSEMEM_VMEMMAP=y
-CONFIG_HAVE_FAST_GUP=y
-CONFIG_ARCH_KEEP_MEMBLOCK=y
-CONFIG_MEMORY_ISOLATION=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-# CONFIG_MEMORY_HOTPLUG is not set
-CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
-CONFIG_MEMORY_BALLOON=y
-CONFIG_BALLOON_COMPACTION=y
-CONFIG_COMPACTION=y
-CONFIG_PAGE_REPORTING=y
-CONFIG_MIGRATION=y
-CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
-CONFIG_ARCH_ENABLE_THP_MIGRATION=y
-CONFIG_CONTIG_ALLOC=y
-CONFIG_PHYS_ADDR_T_64BIT=y
-CONFIG_MMU_NOTIFIER=y
-CONFIG_KSM=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
-CONFIG_MEMORY_FAILURE=y
-CONFIG_HWPOISON_INJECT=m
-CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
-# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
-# CONFIG_CLEANCACHE is not set
-CONFIG_FRONTSWAP=y
-CONFIG_CMA=y
-# CONFIG_CMA_DEBUG is not set
-# CONFIG_CMA_DEBUGFS is not set
-CONFIG_CMA_SYSFS=y
-CONFIG_CMA_AREAS=7
-CONFIG_ZSWAP=y
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
-CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set
-CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lzo"
-CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
-# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set
-# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set
-CONFIG_ZSWAP_ZPOOL_DEFAULT="zbud"
-# CONFIG_ZSWAP_DEFAULT_ON is not set
-CONFIG_ZPOOL=y
-CONFIG_ZBUD=y
-# CONFIG_Z3FOLD is not set
-CONFIG_ZSMALLOC=m
-# CONFIG_ZSMALLOC_STAT is not set
-CONFIG_GENERIC_EARLY_IOREMAP=y
-# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
-# CONFIG_IDLE_PAGE_TRACKING is not set
-CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
-CONFIG_ARCH_HAS_PTE_DEVMAP=y
-CONFIG_HMM_MIRROR=y
-# CONFIG_PERCPU_STATS is not set
-# CONFIG_GUP_TEST is not set
-# CONFIG_READ_ONLY_THP_FOR_FS is not set
-CONFIG_ARCH_HAS_PTE_SPECIAL=y
-# end of Memory Management options
-
-CONFIG_NET=y
-CONFIG_COMPAT_NETLINK_MESSAGES=y
-CONFIG_NET_INGRESS=y
-CONFIG_NET_EGRESS=y
-CONFIG_NET_REDIRECT=y
-CONFIG_SKB_EXTENSIONS=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
-CONFIG_UNIX_SCM=y
-CONFIG_UNIX_DIAG=m
-# CONFIG_TLS is not set
-CONFIG_XFRM=y
-CONFIG_XFRM_OFFLOAD=y
-CONFIG_XFRM_ALGO=m
-CONFIG_XFRM_USER=m
-CONFIG_XFRM_INTERFACE=m
-CONFIG_XFRM_SUB_POLICY=y
-CONFIG_XFRM_MIGRATE=y
-# CONFIG_XFRM_STATISTICS is not set
-CONFIG_XFRM_AH=m
-CONFIG_XFRM_ESP=m
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=m
-CONFIG_NET_KEY_MIGRATE=y
-# CONFIG_SMC is not set
-CONFIG_XDP_SOCKETS=y
-CONFIG_XDP_SOCKETS_DIAG=m
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_FIB_TRIE_STATS=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_ROUTE_CLASSID=y
-# CONFIG_IP_PNP is not set
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE_DEMUX=m
-CONFIG_NET_IP_TUNNEL=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE_COMMON=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-CONFIG_SYN_COOKIES=y
-CONFIG_NET_IPVTI=m
-CONFIG_NET_UDP_TUNNEL=m
-CONFIG_NET_FOU=m
-CONFIG_NET_FOU_IP_TUNNELS=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_ESP_OFFLOAD=m
-# CONFIG_INET_ESPINTCP is not set
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_DIAG=m
-CONFIG_INET_TCP_DIAG=m
-CONFIG_INET_UDP_DIAG=m
-# CONFIG_INET_RAW_DIAG is not set
-CONFIG_INET_DIAG_DESTROY=y
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_NV=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-CONFIG_TCP_CONG_DCTCP=m
-CONFIG_TCP_CONG_CDG=m
-CONFIG_TCP_CONG_BBR=m
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-CONFIG_IPV6_OPTIMISTIC_DAD=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_ESP_OFFLOAD=m
-# CONFIG_INET6_ESPINTCP is not set
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=y
-CONFIG_IPV6_ILA=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_IPV6_VTI=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_GRE=m
-CONFIG_IPV6_FOU=m
-CONFIG_IPV6_FOU_TUNNEL=m
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_IPV6_SUBTREES=y
-CONFIG_IPV6_MROUTE=y
-CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IPV6_PIMSM_V2=y
-CONFIG_IPV6_SEG6_LWTUNNEL=y
-CONFIG_IPV6_SEG6_HMAC=y
-CONFIG_IPV6_SEG6_BPF=y
-# CONFIG_IPV6_RPL_LWTUNNEL is not set
-# CONFIG_NETLABEL is not set
-CONFIG_MPTCP=y
-CONFIG_INET_MPTCP_DIAG=m
-CONFIG_MPTCP_IPV6=y
-CONFIG_NETWORK_SECMARK=y
-CONFIG_NET_PTP_CLASSIFY=y
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-CONFIG_NETFILTER=y
-CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=m
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_INGRESS=y
-CONFIG_NETFILTER_NETLINK=m
-CONFIG_NETFILTER_FAMILY_BRIDGE=y
-CONFIG_NETFILTER_FAMILY_ARP=y
-CONFIG_NETFILTER_NETLINK_ACCT=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NETFILTER_NETLINK_OSF=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_LOG_SYSLOG=m
-CONFIG_NETFILTER_CONNCOUNT=m
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_ZONES=y
-CONFIG_NF_CONNTRACK_PROCFS=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CONNTRACK_TIMEOUT=y
-CONFIG_NF_CONNTRACK_TIMESTAMP=y
-CONFIG_NF_CONNTRACK_LABELS=y
-CONFIG_NF_CT_PROTO_DCCP=y
-CONFIG_NF_CT_PROTO_GRE=y
-CONFIG_NF_CT_PROTO_SCTP=y
-CONFIG_NF_CT_PROTO_UDPLITE=y
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_BROADCAST=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_SNMP=m
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NF_CT_NETLINK_TIMEOUT=m
-CONFIG_NF_CT_NETLINK_HELPER=m
-CONFIG_NETFILTER_NETLINK_GLUE_CT=y
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_AMANDA=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_NF_NAT_TFTP=m
-CONFIG_NF_NAT_REDIRECT=y
-CONFIG_NF_NAT_MASQUERADE=y
-CONFIG_NETFILTER_SYNPROXY=m
-CONFIG_NF_TABLES=m
-CONFIG_NF_TABLES_INET=y
-CONFIG_NF_TABLES_NETDEV=y
-CONFIG_NFT_NUMGEN=m
-CONFIG_NFT_CT=m
-# CONFIG_NFT_FLOW_OFFLOAD is not set
-CONFIG_NFT_COUNTER=m
-CONFIG_NFT_CONNLIMIT=m
-CONFIG_NFT_LOG=m
-CONFIG_NFT_LIMIT=m
-CONFIG_NFT_MASQ=m
-CONFIG_NFT_REDIR=m
-CONFIG_NFT_NAT=m
-CONFIG_NFT_TUNNEL=m
-CONFIG_NFT_OBJREF=m
-CONFIG_NFT_QUEUE=m
-CONFIG_NFT_QUOTA=m
-CONFIG_NFT_REJECT=m
-CONFIG_NFT_REJECT_INET=m
-CONFIG_NFT_COMPAT=m
-CONFIG_NFT_HASH=m
-CONFIG_NFT_FIB=m
-CONFIG_NFT_FIB_INET=m
-CONFIG_NFT_XFRM=m
-CONFIG_NFT_SOCKET=m
-CONFIG_NFT_OSF=m
-CONFIG_NFT_TPROXY=m
-CONFIG_NFT_SYNPROXY=m
-CONFIG_NF_DUP_NETDEV=m
-CONFIG_NFT_DUP_NETDEV=m
-CONFIG_NFT_FWD_NETDEV=m
-CONFIG_NFT_FIB_NETDEV=m
-CONFIG_NFT_REJECT_NETDEV=m
-CONFIG_NF_FLOW_TABLE_INET=m
-CONFIG_NF_FLOW_TABLE=m
-CONFIG_NETFILTER_XTABLES=m
-CONFIG_NETFILTER_XTABLES_COMPAT=y
-
-#
-# Xtables combined modules
-#
-CONFIG_NETFILTER_XT_MARK=m
-CONFIG_NETFILTER_XT_CONNMARK=m
-CONFIG_NETFILTER_XT_SET=m
-
-#
-# Xtables targets
-#
-CONFIG_NETFILTER_XT_TARGET_AUDIT=m
-CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
-CONFIG_NETFILTER_XT_TARGET_CT=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_HL=m
-CONFIG_NETFILTER_XT_TARGET_HMARK=m
-CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
-CONFIG_NETFILTER_XT_TARGET_LED=m
-CONFIG_NETFILTER_XT_TARGET_LOG=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_NAT=m
-CONFIG_NETFILTER_XT_TARGET_NETMAP=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
-CONFIG_NETFILTER_XT_TARGET_RATEEST=m
-CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
-CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
-CONFIG_NETFILTER_XT_TARGET_TEE=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
-
-#
-# Xtables matches
-#
-CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
-CONFIG_NETFILTER_XT_MATCH_BPF=m
-CONFIG_NETFILTER_XT_MATCH_CGROUP=m
-CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_CPU=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=m
-CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-CONFIG_NETFILTER_XT_MATCH_ECN=m
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_HL=m
-CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
-CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
-CONFIG_NETFILTER_XT_MATCH_IPVS=m
-CONFIG_NETFILTER_XT_MATCH_L2TP=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-CONFIG_NETFILTER_XT_MATCH_NFACCT=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
-CONFIG_NETFILTER_XT_MATCH_OWNER=m
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_RATEEST=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_SOCKET=m
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_TIME=m
-CONFIG_NETFILTER_XT_MATCH_U32=m
-# end of Core Netfilter Configuration
-
-CONFIG_IP_SET=m
-CONFIG_IP_SET_MAX=256
-CONFIG_IP_SET_BITMAP_IP=m
-CONFIG_IP_SET_BITMAP_IPMAC=m
-CONFIG_IP_SET_BITMAP_PORT=m
-CONFIG_IP_SET_HASH_IP=m
-CONFIG_IP_SET_HASH_IPMARK=m
-CONFIG_IP_SET_HASH_IPPORT=m
-CONFIG_IP_SET_HASH_IPPORTIP=m
-CONFIG_IP_SET_HASH_IPPORTNET=m
-CONFIG_IP_SET_HASH_IPMAC=m
-CONFIG_IP_SET_HASH_MAC=m
-CONFIG_IP_SET_HASH_NETPORTNET=m
-CONFIG_IP_SET_HASH_NET=m
-CONFIG_IP_SET_HASH_NETNET=m
-CONFIG_IP_SET_HASH_NETPORT=m
-CONFIG_IP_SET_HASH_NETIFACE=m
-CONFIG_IP_SET_LIST_SET=m
-CONFIG_IP_VS=m
-CONFIG_IP_VS_IPV6=y
-# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
-
-#
-# IPVS transport protocol load balancing support
-#
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_AH_ESP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-CONFIG_IP_VS_PROTO_SCTP=y
-
-#
-# IPVS scheduler
-#
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_FO=m
-CONFIG_IP_VS_OVF=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_MH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-CONFIG_IP_VS_TWOS=m
-
-#
-# IPVS SH scheduler
-#
-CONFIG_IP_VS_SH_TAB_BITS=8
-
-#
-# IPVS MH scheduler
-#
-CONFIG_IP_VS_MH_TAB_INDEX=12
-
-#
-# IPVS application helper
-#
-CONFIG_IP_VS_FTP=m
-CONFIG_IP_VS_NFCT=y
-CONFIG_IP_VS_PE_SIP=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_SOCKET_IPV4=m
-CONFIG_NF_TPROXY_IPV4=m
-CONFIG_NF_TABLES_IPV4=y
-CONFIG_NFT_REJECT_IPV4=m
-CONFIG_NFT_DUP_IPV4=m
-CONFIG_NFT_FIB_IPV4=m
-CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
-CONFIG_NF_DUP_IPV4=m
-CONFIG_NF_LOG_ARP=m
-CONFIG_NF_LOG_IPV4=m
-CONFIG_NF_REJECT_IPV4=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_RPFILTER=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_SYNPROXY=m
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_SECURITY=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-# end of IP: Netfilter Configuration
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_SOCKET_IPV6=m
-CONFIG_NF_TPROXY_IPV6=m
-CONFIG_NF_TABLES_IPV6=y
-CONFIG_NFT_REJECT_IPV6=m
-CONFIG_NFT_DUP_IPV6=m
-CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
-CONFIG_NF_DUP_IPV6=m
-CONFIG_NF_REJECT_IPV6=m
-CONFIG_NF_LOG_IPV6=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_RPFILTER=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_MATCH_SRH=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_TARGET_SYNPROXY=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-CONFIG_IP6_NF_SECURITY=m
-CONFIG_IP6_NF_NAT=m
-CONFIG_IP6_NF_TARGET_MASQUERADE=m
-CONFIG_IP6_NF_TARGET_NPT=m
-# end of IPv6: Netfilter Configuration
-
-CONFIG_NF_DEFRAG_IPV6=m
-CONFIG_NF_TABLES_BRIDGE=m
-CONFIG_NFT_BRIDGE_META=m
-CONFIG_NFT_BRIDGE_REJECT=m
-CONFIG_NF_CONNTRACK_BRIDGE=m
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_ARP=m
-CONFIG_BRIDGE_EBT_IP=m
-CONFIG_BRIDGE_EBT_IP6=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_MARK=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_VLAN=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_LOG=m
-CONFIG_BRIDGE_EBT_NFLOG=m
-# CONFIG_BPFILTER is not set
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-
-#
-# DCCP CCIDs Configuration
-#
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-CONFIG_IP_DCCP_CCID3=y
-# CONFIG_IP_DCCP_CCID3_DEBUG is not set
-CONFIG_IP_DCCP_TFRC_LIB=y
-# end of DCCP CCIDs Configuration
-
-#
-# DCCP Kernel Hacking
-#
-# CONFIG_IP_DCCP_DEBUG is not set
-# end of DCCP Kernel Hacking
-
-CONFIG_IP_SCTP=m
-# CONFIG_SCTP_DBG_OBJCNT is not set
-CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
-CONFIG_SCTP_COOKIE_HMAC_MD5=y
-CONFIG_SCTP_COOKIE_HMAC_SHA1=y
-CONFIG_INET_SCTP_DIAG=m
-CONFIG_RDS=m
-CONFIG_RDS_RDMA=m
-CONFIG_RDS_TCP=m
-# CONFIG_RDS_DEBUG is not set
-CONFIG_TIPC=m
-CONFIG_TIPC_MEDIA_IB=y
-CONFIG_TIPC_MEDIA_UDP=y
-CONFIG_TIPC_CRYPTO=y
-CONFIG_TIPC_DIAG=m
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-CONFIG_ATM_LANE=m
-CONFIG_ATM_MPOA=m
-CONFIG_ATM_BR2684=m
-# CONFIG_ATM_BR2684_IPFILTER is not set
-CONFIG_L2TP=m
-CONFIG_L2TP_DEBUGFS=m
-CONFIG_L2TP_V3=y
-CONFIG_L2TP_IP=m
-CONFIG_L2TP_ETH=m
-CONFIG_STP=m
-CONFIG_GARP=m
-CONFIG_MRP=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-CONFIG_BRIDGE_VLAN_FILTERING=y
-CONFIG_BRIDGE_MRP=y
-CONFIG_BRIDGE_CFM=y
-CONFIG_NET_DSA=m
-CONFIG_NET_DSA_TAG_8021Q=m
-CONFIG_NET_DSA_TAG_AR9331=m
-CONFIG_NET_DSA_TAG_BRCM_COMMON=m
-CONFIG_NET_DSA_TAG_BRCM=m
-CONFIG_NET_DSA_TAG_BRCM_LEGACY=m
-CONFIG_NET_DSA_TAG_BRCM_PREPEND=m
-CONFIG_NET_DSA_TAG_HELLCREEK=m
-CONFIG_NET_DSA_TAG_GSWIP=m
-CONFIG_NET_DSA_TAG_DSA_COMMON=m
-CONFIG_NET_DSA_TAG_DSA=m
-CONFIG_NET_DSA_TAG_EDSA=m
-CONFIG_NET_DSA_TAG_MTK=m
-CONFIG_NET_DSA_TAG_KSZ=m
-CONFIG_NET_DSA_TAG_RTL4_A=m
-CONFIG_NET_DSA_TAG_OCELOT=m
-CONFIG_NET_DSA_TAG_OCELOT_8021Q=m
-CONFIG_NET_DSA_TAG_QCA=m
-CONFIG_NET_DSA_TAG_LAN9303=m
-CONFIG_NET_DSA_TAG_SJA1105=m
-CONFIG_NET_DSA_TAG_TRAILER=m
-CONFIG_NET_DSA_TAG_XRS700X=m
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-CONFIG_VLAN_8021Q_MVRP=y
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-CONFIG_LLC2=m
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=m
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-CONFIG_PHONET=m
-CONFIG_6LOWPAN=m
-# CONFIG_6LOWPAN_DEBUGFS is not set
-CONFIG_6LOWPAN_NHC=m
-CONFIG_6LOWPAN_NHC_DEST=m
-CONFIG_6LOWPAN_NHC_FRAGMENT=m
-CONFIG_6LOWPAN_NHC_HOP=m
-CONFIG_6LOWPAN_NHC_IPV6=m
-CONFIG_6LOWPAN_NHC_MOBILITY=m
-CONFIG_6LOWPAN_NHC_ROUTING=m
-CONFIG_6LOWPAN_NHC_UDP=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m
-CONFIG_6LOWPAN_GHC_UDP=m
-CONFIG_6LOWPAN_GHC_ICMPV6=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
-CONFIG_IEEE802154=m
-# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
-CONFIG_IEEE802154_SOCKET=m
-CONFIG_IEEE802154_6LOWPAN=m
-CONFIG_MAC802154=m
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_MULTIQ=m
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFB=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-# CONFIG_NET_SCH_CBS is not set
-CONFIG_NET_SCH_ETF=m
-CONFIG_NET_SCH_TAPRIO=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_DRR=m
-CONFIG_NET_SCH_MQPRIO=m
-CONFIG_NET_SCH_SKBPRIO=m
-CONFIG_NET_SCH_CHOKE=m
-CONFIG_NET_SCH_QFQ=m
-CONFIG_NET_SCH_CODEL=m
-CONFIG_NET_SCH_FQ_CODEL=m
-CONFIG_NET_SCH_CAKE=m
-CONFIG_NET_SCH_FQ=m
-CONFIG_NET_SCH_HHF=m
-CONFIG_NET_SCH_PIE=m
-CONFIG_NET_SCH_FQ_PIE=m
-CONFIG_NET_SCH_INGRESS=m
-CONFIG_NET_SCH_PLUG=m
-CONFIG_NET_SCH_ETS=m
-# CONFIG_NET_SCH_DEFAULT is not set
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-CONFIG_CLS_U32_PERF=y
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_FLOW=m
-CONFIG_NET_CLS_CGROUP=m
-CONFIG_NET_CLS_BPF=m
-CONFIG_NET_CLS_FLOWER=m
-CONFIG_NET_CLS_MATCHALL=m
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_EMATCH_TEXT=m
-CONFIG_NET_EMATCH_CANID=m
-CONFIG_NET_EMATCH_IPSET=m
-CONFIG_NET_EMATCH_IPT=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_SAMPLE=m
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-CONFIG_NET_ACT_SKBEDIT=m
-CONFIG_NET_ACT_CSUM=m
-CONFIG_NET_ACT_MPLS=m
-CONFIG_NET_ACT_VLAN=m
-CONFIG_NET_ACT_BPF=m
-CONFIG_NET_ACT_CONNMARK=m
-CONFIG_NET_ACT_CTINFO=m
-CONFIG_NET_ACT_SKBMOD=m
-CONFIG_NET_ACT_IFE=m
-CONFIG_NET_ACT_TUNNEL_KEY=m
-CONFIG_NET_ACT_CT=m
-CONFIG_NET_ACT_GATE=m
-CONFIG_NET_IFE_SKBMARK=m
-CONFIG_NET_IFE_SKBPRIO=m
-CONFIG_NET_IFE_SKBTCINDEX=m
-# CONFIG_NET_TC_SKB_EXT is not set
-CONFIG_NET_SCH_FIFO=y
-CONFIG_DCB=y
-CONFIG_DNS_RESOLVER=m
-CONFIG_BATMAN_ADV=m
-# CONFIG_BATMAN_ADV_BATMAN_V is not set
-CONFIG_BATMAN_ADV_BLA=y
-CONFIG_BATMAN_ADV_DAT=y
-CONFIG_BATMAN_ADV_NC=y
-CONFIG_BATMAN_ADV_MCAST=y
-# CONFIG_BATMAN_ADV_DEBUG is not set
-# CONFIG_BATMAN_ADV_TRACING is not set
-CONFIG_OPENVSWITCH=m
-CONFIG_OPENVSWITCH_GRE=m
-CONFIG_OPENVSWITCH_VXLAN=m
-CONFIG_OPENVSWITCH_GENEVE=m
-CONFIG_VSOCKETS=m
-CONFIG_VSOCKETS_DIAG=m
-CONFIG_VSOCKETS_LOOPBACK=m
-CONFIG_VIRTIO_VSOCKETS=m
-CONFIG_VIRTIO_VSOCKETS_COMMON=m
-CONFIG_NETLINK_DIAG=m
-CONFIG_MPLS=y
-CONFIG_NET_MPLS_GSO=y
-CONFIG_MPLS_ROUTING=m
-CONFIG_MPLS_IPTUNNEL=m
-CONFIG_NET_NSH=m
-# CONFIG_HSR is not set
-CONFIG_NET_SWITCHDEV=y
-CONFIG_NET_L3_MASTER_DEV=y
-CONFIG_QRTR=m
-CONFIG_QRTR_SMD=m
-CONFIG_QRTR_TUN=m
-CONFIG_QRTR_MHI=m
-# CONFIG_NET_NCSI is not set
-CONFIG_PCPU_DEV_REFCNT=y
-CONFIG_RPS=y
-CONFIG_RFS_ACCEL=y
-CONFIG_SOCK_RX_QUEUE_MAPPING=y
-CONFIG_XPS=y
-CONFIG_CGROUP_NET_PRIO=y
-CONFIG_CGROUP_NET_CLASSID=y
-CONFIG_NET_RX_BUSY_POLL=y
-CONFIG_BQL=y
-# CONFIG_BPF_STREAM_PARSER is not set
-CONFIG_NET_FLOW_LIMIT=y
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-CONFIG_NET_DROP_MONITOR=y
-# end of Network testing
-# end of Networking options
-
-# CONFIG_HAMRADIO is not set
-CONFIG_CAN=m
-CONFIG_CAN_RAW=m
-CONFIG_CAN_BCM=m
-CONFIG_CAN_GW=m
-CONFIG_CAN_J1939=m
-CONFIG_CAN_ISOTP=m
-
-#
-# CAN Device Drivers
-#
-CONFIG_CAN_VCAN=m
-# CONFIG_CAN_VXCAN is not set
-CONFIG_CAN_SLCAN=m
-CONFIG_CAN_DEV=m
-CONFIG_CAN_CALC_BITTIMING=y
-CONFIG_CAN_FLEXCAN=m
-# CONFIG_CAN_GRCAN is not set
-CONFIG_CAN_KVASER_PCIEFD=m
-# CONFIG_CAN_XILINXCAN is not set
-# CONFIG_CAN_C_CAN is not set
-# CONFIG_CAN_CC770 is not set
-# CONFIG_CAN_IFI_CANFD is not set
-# CONFIG_CAN_M_CAN is not set
-# CONFIG_CAN_PEAK_PCIEFD is not set
-CONFIG_CAN_SJA1000=m
-CONFIG_CAN_EMS_PCI=m
-CONFIG_CAN_F81601=m
-CONFIG_CAN_KVASER_PCI=m
-CONFIG_CAN_PEAK_PCI=m
-CONFIG_CAN_PEAK_PCIEC=y
-CONFIG_CAN_PLX_PCI=m
-CONFIG_CAN_SJA1000_ISA=m
-# CONFIG_CAN_SJA1000_PLATFORM is not set
-CONFIG_CAN_SOFTING=m
-
-#
-# CAN SPI interfaces
-#
-# CONFIG_CAN_HI311X is not set
-# CONFIG_CAN_MCP251X is not set
-CONFIG_CAN_MCP251XFD=m
-# CONFIG_CAN_MCP251XFD_SANITY is not set
-# end of CAN SPI interfaces
-
-#
-# CAN USB interfaces
-#
-CONFIG_CAN_8DEV_USB=m
-CONFIG_CAN_EMS_USB=m
-CONFIG_CAN_ESD_USB2=m
-CONFIG_CAN_ETAS_ES58X=m
-CONFIG_CAN_GS_USB=m
-CONFIG_CAN_KVASER_USB=m
-# CONFIG_CAN_MCBA_USB is not set
-CONFIG_CAN_PEAK_USB=m
-CONFIG_CAN_UCAN=m
-# end of CAN USB interfaces
-
-# CONFIG_CAN_DEBUG_DEVICES is not set
-# end of CAN Device Drivers
-
-CONFIG_BT=m
-CONFIG_BT_BREDR=y
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-CONFIG_BT_HS=y
-CONFIG_BT_LE=y
-CONFIG_BT_6LOWPAN=m
-CONFIG_BT_LEDS=y
-CONFIG_BT_MSFTEXT=y
-CONFIG_BT_AOSPEXT=y
-CONFIG_BT_DEBUGFS=y
-# CONFIG_BT_SELFTEST is not set
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_INTEL=m
-CONFIG_BT_BCM=m
-CONFIG_BT_RTL=m
-CONFIG_BT_QCA=m
-CONFIG_BT_HCIBTUSB=m
-# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set
-CONFIG_BT_HCIBTUSB_BCM=y
-CONFIG_BT_HCIBTUSB_MTK=y
-CONFIG_BT_HCIBTUSB_RTL=y
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_SERDEV=y
-CONFIG_BT_HCIUART_H4=y
-# CONFIG_BT_HCIUART_NOKIA is not set
-# CONFIG_BT_HCIUART_BCSP is not set
-CONFIG_BT_HCIUART_ATH3K=y
-CONFIG_BT_HCIUART_LL=y
-CONFIG_BT_HCIUART_3WIRE=y
-CONFIG_BT_HCIUART_INTEL=y
-CONFIG_BT_HCIUART_RTL=y
-CONFIG_BT_HCIUART_QCA=y
-CONFIG_BT_HCIUART_AG6XX=y
-CONFIG_BT_HCIUART_MRVL=y
-# CONFIG_BT_HCIBCM203X is not set
-# CONFIG_BT_HCIBPA10X is not set
-# CONFIG_BT_HCIBFUSB is not set
-# CONFIG_BT_HCIVHCI is not set
-CONFIG_BT_MRVL=m
-CONFIG_BT_MRVL_SDIO=m
-CONFIG_BT_ATH3K=m
-CONFIG_BT_MTKSDIO=m
-CONFIG_BT_MTKUART=m
-CONFIG_BT_QCOMSMD=m
-CONFIG_BT_HCIRSI=m
-CONFIG_BT_VIRTIO=m
-# end of Bluetooth device drivers
-
-CONFIG_AF_RXRPC=m
-CONFIG_AF_RXRPC_IPV6=y
-# CONFIG_AF_RXRPC_INJECT_LOSS is not set
-# CONFIG_AF_RXRPC_DEBUG is not set
-CONFIG_RXKAD=y
-# CONFIG_AF_KCM is not set
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
-CONFIG_WEXT_PRIV=y
-CONFIG_CFG80211=m
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
-CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
-CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
-CONFIG_CFG80211_DEFAULT_PS=y
-# CONFIG_CFG80211_DEBUGFS is not set
-CONFIG_CFG80211_CRDA_SUPPORT=y
-CONFIG_CFG80211_WEXT=y
-CONFIG_CFG80211_WEXT_EXPORT=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-CONFIG_MAC80211_MESH=y
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_DEBUGFS is not set
-# CONFIG_MAC80211_MESSAGE_TRACING is not set
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
-CONFIG_RFKILL=m
-CONFIG_RFKILL_LEDS=y
-CONFIG_RFKILL_INPUT=y
-# CONFIG_RFKILL_GPIO is not set
-CONFIG_NET_9P=m
-CONFIG_NET_9P_VIRTIO=m
-# CONFIG_NET_9P_XEN is not set
-CONFIG_NET_9P_RDMA=m
-# CONFIG_NET_9P_DEBUG is not set
-# CONFIG_CAIF is not set
-CONFIG_CEPH_LIB=m
-# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
-# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
-CONFIG_NFC=m
-CONFIG_NFC_DIGITAL=m
-# CONFIG_NFC_NCI is not set
-# CONFIG_NFC_HCI is not set
-
-#
-# Near Field Communication (NFC) devices
-#
-# CONFIG_NFC_TRF7970A is not set
-CONFIG_NFC_SIM=m
-CONFIG_NFC_PORT100=m
-CONFIG_NFC_PN533=m
-CONFIG_NFC_PN533_USB=m
-# CONFIG_NFC_PN533_I2C is not set
-# CONFIG_NFC_PN532_UART is not set
-# CONFIG_NFC_ST95HF is not set
-# end of Near Field Communication (NFC) devices
-
-CONFIG_PSAMPLE=m
-CONFIG_NET_IFE=m
-CONFIG_LWTUNNEL=y
-CONFIG_LWTUNNEL_BPF=y
-CONFIG_DST_CACHE=y
-CONFIG_GRO_CELLS=y
-CONFIG_NET_SELFTESTS=m
-CONFIG_NET_SOCK_MSG=y
-CONFIG_NET_DEVLINK=y
-CONFIG_PAGE_POOL=y
-CONFIG_FAILOVER=m
-CONFIG_ETHTOOL_NETLINK=y
-
-#
-# Device Drivers
-#
-CONFIG_ARM_AMBA=y
-CONFIG_TEGRA_AHB=y
-CONFIG_HAVE_PCI=y
-CONFIG_PCI=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_PCI_DOMAINS_GENERIC=y
-CONFIG_PCI_SYSCALL=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_HOTPLUG_PCI_PCIE=y
-CONFIG_PCIEAER=y
-CONFIG_PCIEAER_INJECT=m
-# CONFIG_PCIE_ECRC is not set
-CONFIG_PCIEASPM=y
-CONFIG_PCIEASPM_DEFAULT=y
-# CONFIG_PCIEASPM_POWERSAVE is not set
-# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
-# CONFIG_PCIEASPM_PERFORMANCE is not set
-CONFIG_PCIE_PME=y
-CONFIG_PCIE_DPC=y
-CONFIG_PCIE_PTM=y
-# CONFIG_PCIE_EDR is not set
-CONFIG_PCI_MSI=y
-CONFIG_PCI_MSI_IRQ_DOMAIN=y
-CONFIG_PCI_QUIRKS=y
-# CONFIG_PCI_DEBUG is not set
-CONFIG_PCI_REALLOC_ENABLE_AUTO=y
-CONFIG_PCI_STUB=m
-# CONFIG_PCI_PF_STUB is not set
-CONFIG_PCI_ATS=y
-CONFIG_PCI_ECAM=y
-CONFIG_PCI_BRIDGE_EMUL=y
-CONFIG_PCI_IOV=y
-# CONFIG_PCI_PRI is not set
-# CONFIG_PCI_PASID is not set
-CONFIG_PCI_LABEL=y
-# CONFIG_PCIE_BUS_TUNE_OFF is not set
-CONFIG_PCIE_BUS_DEFAULT=y
-# CONFIG_PCIE_BUS_SAFE is not set
-# CONFIG_PCIE_BUS_PERFORMANCE is not set
-# CONFIG_PCIE_BUS_PEER2PEER is not set
-CONFIG_HOTPLUG_PCI=y
-CONFIG_HOTPLUG_PCI_ACPI=y
-CONFIG_HOTPLUG_PCI_ACPI_IBM=m
-CONFIG_HOTPLUG_PCI_CPCI=y
-CONFIG_HOTPLUG_PCI_SHPC=y
-
-#
-# PCI controller drivers
-#
-CONFIG_PCI_AARDVARK=y
-# CONFIG_PCI_FTPCI100 is not set
-CONFIG_PCI_TEGRA=y
-CONFIG_PCI_HOST_COMMON=y
-CONFIG_PCI_HOST_GENERIC=y
-# CONFIG_PCIE_XILINX is not set
-CONFIG_PCI_XGENE=y
-CONFIG_PCI_XGENE_MSI=y
-# CONFIG_PCIE_ALTERA is not set
-CONFIG_PCI_HOST_THUNDER_PEM=y
-CONFIG_PCI_HOST_THUNDER_ECAM=y
-CONFIG_PCIE_ROCKCHIP=y
-CONFIG_PCIE_ROCKCHIP_HOST=m
-CONFIG_PCIE_BRCMSTB=m
-CONFIG_PCIE_MICROCHIP_HOST=y
-
-#
-# DesignWare PCI Core Support
-#
-CONFIG_PCIE_DW=y
-CONFIG_PCIE_DW_HOST=y
-# CONFIG_PCIE_DW_PLAT_HOST is not set
-CONFIG_PCI_IMX6=y
-CONFIG_PCI_HISI=y
-CONFIG_PCIE_QCOM=y
-CONFIG_PCIE_ARMADA_8K=y
-CONFIG_PCIE_KIRIN=y
-# CONFIG_PCIE_HISI_STB is not set
-# CONFIG_PCI_MESON is not set
-CONFIG_PCIE_TEGRA194=m
-CONFIG_PCIE_TEGRA194_HOST=m
-# CONFIG_PCIE_AL is not set
-# end of DesignWare PCI Core Support
-
-#
-# Mobiveil PCIe Core Support
-#
-# end of Mobiveil PCIe Core Support
-
-#
-# Cadence PCIe controllers support
-#
-# CONFIG_PCIE_CADENCE_PLAT_HOST is not set
-# CONFIG_PCI_J721E_HOST is not set
-# end of Cadence PCIe controllers support
-# end of PCI controller drivers
-
-#
-# PCI Endpoint
-#
-# CONFIG_PCI_ENDPOINT is not set
-# end of PCI Endpoint
-
-#
-# PCI switch controller drivers
-#
-# CONFIG_PCI_SW_SWITCHTEC is not set
-# end of PCI switch controller drivers
-
-CONFIG_CXL_BUS=y
-CONFIG_CXL_MEM=m
-# CONFIG_CXL_MEM_RAW_COMMANDS is not set
-# CONFIG_PCCARD is not set
-# CONFIG_RAPIDIO is not set
-
-#
-# Generic Driver Options
-#
-CONFIG_AUXILIARY_BUS=y
-# CONFIG_UEVENT_HELPER is not set
-CONFIG_DEVTMPFS=y
-# CONFIG_DEVTMPFS_MOUNT is not set
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-
-#
-# Firmware loader
-#
-CONFIG_FW_LOADER=y
-CONFIG_FW_LOADER_PAGED_BUF=y
-CONFIG_EXTRA_FIRMWARE=""
-CONFIG_FW_LOADER_USER_HELPER=y
-# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-CONFIG_FW_LOADER_COMPRESS=y
-CONFIG_FW_CACHE=y
-# end of Firmware loader
-
-CONFIG_WANT_DEV_COREDUMP=y
-CONFIG_ALLOW_DEV_COREDUMP=y
-CONFIG_DEV_COREDUMP=y
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
-CONFIG_HMEM_REPORTING=y
-# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
-CONFIG_SYS_HYPERVISOR=y
-CONFIG_GENERIC_CPU_AUTOPROBE=y
-CONFIG_GENERIC_CPU_VULNERABILITIES=y
-CONFIG_SOC_BUS=y
-CONFIG_REGMAP=y
-CONFIG_REGMAP_I2C=y
-CONFIG_REGMAP_SPI=m
-CONFIG_REGMAP_SPMI=y
-CONFIG_REGMAP_MMIO=y
-CONFIG_REGMAP_IRQ=y
-CONFIG_REGMAP_SCCB=m
-CONFIG_DMA_SHARED_BUFFER=y
-# CONFIG_DMA_FENCE_TRACE is not set
-CONFIG_GENERIC_ARCH_TOPOLOGY=y
-CONFIG_GENERIC_ARCH_NUMA=y
-# end of Generic Driver Options
-
-#
-# Bus devices
-#
-# CONFIG_BRCMSTB_GISB_ARB is not set
-CONFIG_MOXTET=m
-# CONFIG_HISILICON_LPC is not set
-# CONFIG_IMX_WEIM is not set
-CONFIG_QCOM_EBI2=y
-# CONFIG_SIMPLE_PM_BUS is not set
-CONFIG_SUN50I_DE2_BUS=y
-CONFIG_SUNXI_RSB=y
-CONFIG_TEGRA_ACONNECT=y
-# CONFIG_TEGRA_GMI is not set
-CONFIG_VEXPRESS_CONFIG=y
-# CONFIG_FSL_MC_BUS is not set
-CONFIG_MHI_BUS=m
-# CONFIG_MHI_BUS_DEBUG is not set
-CONFIG_MHI_BUS_PCI_GENERIC=m
-# end of Bus devices
-
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-CONFIG_GNSS=m
-CONFIG_GNSS_SERIAL=m
-CONFIG_GNSS_MTK_SERIAL=m
-CONFIG_GNSS_SIRF_SERIAL=m
-CONFIG_GNSS_UBX_SERIAL=m
-CONFIG_MTD=m
-# CONFIG_MTD_TESTS is not set
-
-#
-# Partition parsers
-#
-CONFIG_MTD_AR7_PARTS=m
-# CONFIG_MTD_CMDLINE_PARTS is not set
-CONFIG_MTD_OF_PARTS=m
-CONFIG_MTD_OF_PARTS_BCM4908=y
-CONFIG_MTD_OF_PARTS_LINKSYS_NS=y
-# CONFIG_MTD_AFS_PARTS is not set
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# end of Partition parsers
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-CONFIG_RFD_FTL=m
-CONFIG_SSFDC=m
-# CONFIG_SM_FTL is not set
-CONFIG_MTD_OOPS=m
-CONFIG_MTD_PSTORE=m
-CONFIG_MTD_SWAP=m
-# CONFIG_MTD_PARTITIONED_MASTER is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=m
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=m
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-CONFIG_MTD_CFI_INTELEXT=m
-CONFIG_MTD_CFI_AMDSTD=m
-CONFIG_MTD_CFI_STAA=m
-CONFIG_MTD_CFI_UTIL=m
-CONFIG_MTD_RAM=m
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-# end of RAM/ROM/Flash chip drivers
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-# CONFIG_MTD_PHYSMAP is not set
-CONFIG_MTD_PCI=m
-CONFIG_MTD_INTEL_VR_NOR=m
-CONFIG_MTD_PLATRAM=m
-# end of Mapping drivers for chip access
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_PMC551 is not set
-CONFIG_MTD_DATAFLASH=m
-# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-# CONFIG_MTD_DATAFLASH_OTP is not set
-# CONFIG_MTD_MCHP23K256 is not set
-CONFIG_MTD_SST25L=m
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOCG3 is not set
-# end of Self-contained MTD device drivers
-
-#
-# NAND
-#
-CONFIG_MTD_NAND_CORE=m
-CONFIG_MTD_ONENAND=m
-CONFIG_MTD_ONENAND_VERIFY_WRITE=y
-# CONFIG_MTD_ONENAND_GENERIC is not set
-# CONFIG_MTD_ONENAND_OTP is not set
-CONFIG_MTD_ONENAND_2X_PROGRAM=y
-CONFIG_MTD_RAW_NAND=m
-
-#
-# Raw/parallel NAND flash controllers
-#
-CONFIG_MTD_NAND_DENALI=m
-# CONFIG_MTD_NAND_DENALI_PCI is not set
-CONFIG_MTD_NAND_DENALI_DT=m
-# CONFIG_MTD_NAND_CAFE is not set
-CONFIG_MTD_NAND_MARVELL=m
-CONFIG_MTD_NAND_BRCMNAND=m
-CONFIG_MTD_NAND_MXC=m
-CONFIG_MTD_NAND_SUNXI=m
-CONFIG_MTD_NAND_HISI504=m
-CONFIG_MTD_NAND_QCOM=m
-CONFIG_MTD_NAND_MXIC=m
-CONFIG_MTD_NAND_TEGRA=m
-CONFIG_MTD_NAND_MESON=m
-CONFIG_MTD_NAND_GPIO=m
-CONFIG_MTD_NAND_PLATFORM=m
-CONFIG_MTD_NAND_CADENCE=m
-CONFIG_MTD_NAND_ARASAN=m
-# CONFIG_MTD_NAND_INTEL_LGM is not set
-CONFIG_MTD_NAND_ROCKCHIP=m
-
-#
-# Misc
-#
-CONFIG_MTD_SM_COMMON=m
-CONFIG_MTD_NAND_NANDSIM=m
-CONFIG_MTD_NAND_RICOH=m
-CONFIG_MTD_NAND_DISKONCHIP=m
-# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
-CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
-# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
-CONFIG_MTD_SPI_NAND=m
-
-#
-# ECC engine support
-#
-CONFIG_MTD_NAND_ECC=y
-CONFIG_MTD_NAND_ECC_SW_HAMMING=y
-# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
-# CONFIG_MTD_NAND_ECC_SW_BCH is not set
-# end of ECC engine support
-# end of NAND
-
-#
-# LPDDR & LPDDR2 PCM memory drivers
-#
-CONFIG_MTD_LPDDR=m
-CONFIG_MTD_QINFO_PROBE=m
-# end of LPDDR & LPDDR2 PCM memory drivers
-
-CONFIG_MTD_SPI_NOR=m
-CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
-# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set
-CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y
-# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set
-CONFIG_SPI_HISI_SFC=m
-CONFIG_MTD_UBI=m
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_LIMIT=20
-# CONFIG_MTD_UBI_FASTMAP is not set
-# CONFIG_MTD_UBI_GLUEBI is not set
-CONFIG_MTD_UBI_BLOCK=y
-CONFIG_MTD_HYPERBUS=m
-CONFIG_HBMC_AM654=m
-CONFIG_DTC=y
-CONFIG_OF=y
-# CONFIG_OF_UNITTEST is not set
-CONFIG_OF_FLATTREE=y
-CONFIG_OF_EARLY_FLATTREE=y
-CONFIG_OF_KOBJ=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_IRQ=y
-CONFIG_OF_NET=y
-CONFIG_OF_RESERVED_MEM=y
-# CONFIG_OF_OVERLAY is not set
-CONFIG_OF_NUMA=y
-CONFIG_PARPORT=m
-# CONFIG_PARPORT_AX88796 is not set
-CONFIG_PARPORT_1284=y
-CONFIG_PARPORT_NOT_PC=y
-CONFIG_PNP=y
-# CONFIG_PNP_DEBUG_MESSAGES is not set
-
-#
-# Protocols
-#
-CONFIG_PNPACPI=y
-CONFIG_BLK_DEV=y
-CONFIG_BLK_DEV_NULL_BLK=m
-CONFIG_CDROM=m
-CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
-CONFIG_ZRAM=m
-CONFIG_ZRAM_DEF_COMP_LZORLE=y
-# CONFIG_ZRAM_DEF_COMP_ZSTD is not set
-# CONFIG_ZRAM_DEF_COMP_LZ4 is not set
-# CONFIG_ZRAM_DEF_COMP_LZO is not set
-# CONFIG_ZRAM_DEF_COMP_LZ4HC is not set
-CONFIG_ZRAM_DEF_COMP="lzo-rle"
-# CONFIG_ZRAM_WRITEBACK is not set
-# CONFIG_ZRAM_MEMORY_TRACKING is not set
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-CONFIG_BLK_DEV_DRBD=m
-# CONFIG_DRBD_FAULT_INJECTION is not set
-CONFIG_BLK_DEV_NBD=m
-# CONFIG_BLK_DEV_SX8 is not set
-CONFIG_BLK_DEV_RAM=m
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=16384
-# CONFIG_CDROM_PKTCDVD is not set
-CONFIG_ATA_OVER_ETH=m
-CONFIG_XEN_BLKDEV_FRONTEND=m
-CONFIG_XEN_BLKDEV_BACKEND=m
-CONFIG_VIRTIO_BLK=m
-CONFIG_BLK_DEV_RBD=m
-# CONFIG_BLK_DEV_RSXX is not set
-CONFIG_BLK_DEV_RNBD=y
-CONFIG_BLK_DEV_RNBD_CLIENT=m
-CONFIG_BLK_DEV_RNBD_SERVER=m
-
-#
-# NVME Support
-#
-CONFIG_NVME_CORE=m
-CONFIG_BLK_DEV_NVME=m
-CONFIG_NVME_MULTIPATH=y
-CONFIG_NVME_HWMON=y
-CONFIG_NVME_FABRICS=m
-CONFIG_NVME_RDMA=m
-CONFIG_NVME_FC=m
-CONFIG_NVME_TCP=m
-CONFIG_NVME_TARGET=m
-# CONFIG_NVME_TARGET_PASSTHRU is not set
-# CONFIG_NVME_TARGET_LOOP is not set
-CONFIG_NVME_TARGET_RDMA=m
-CONFIG_NVME_TARGET_FC=m
-# CONFIG_NVME_TARGET_FCLOOP is not set
-CONFIG_NVME_TARGET_TCP=m
-# end of NVME Support
-
-#
-# Misc devices
-#
-CONFIG_SENSORS_LIS3LV02D=m
-CONFIG_AD525X_DPOT=m
-CONFIG_AD525X_DPOT_I2C=m
-CONFIG_AD525X_DPOT_SPI=m
-# CONFIG_DUMMY_IRQ is not set
-# CONFIG_PHANTOM is not set
-CONFIG_TIFM_CORE=m
-CONFIG_TIFM_7XX1=m
-CONFIG_ICS932S401=m
-CONFIG_ENCLOSURE_SERVICES=m
-# CONFIG_HP_ILO is not set
-CONFIG_QCOM_COINCELL=m
-# CONFIG_QCOM_FASTRPC is not set
-CONFIG_APDS9802ALS=m
-CONFIG_ISL29003=m
-CONFIG_ISL29020=m
-CONFIG_SENSORS_TSL2550=m
-CONFIG_SENSORS_BH1770=m
-CONFIG_SENSORS_APDS990X=m
-CONFIG_HMC6352=m
-CONFIG_DS1682=m
-# CONFIG_LATTICE_ECP3_CONFIG is not set
-CONFIG_SRAM=y
-CONFIG_DW_XDATA_PCIE=m
-# CONFIG_PCI_ENDPOINT_TEST is not set
-CONFIG_XILINX_SDFEC=m
-CONFIG_MISC_RTSX=m
-CONFIG_HISI_HIKEY_USB=m
-CONFIG_C2PORT=m
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=m
-CONFIG_EEPROM_AT25=m
-CONFIG_EEPROM_LEGACY=m
-CONFIG_EEPROM_MAX6875=m
-CONFIG_EEPROM_93CX6=m
-# CONFIG_EEPROM_93XX46 is not set
-# CONFIG_EEPROM_IDT_89HPESX is not set
-# CONFIG_EEPROM_EE1004 is not set
-# end of EEPROM support
-
-CONFIG_CB710_CORE=m
-# CONFIG_CB710_DEBUG is not set
-CONFIG_CB710_DEBUG_ASSUMPTIONS=y
-
-#
-# Texas Instruments shared transport line discipline
-#
-CONFIG_TI_ST=m
-# end of Texas Instruments shared transport line discipline
-
-CONFIG_SENSORS_LIS3_I2C=m
-CONFIG_ALTERA_STAPL=m
-# CONFIG_GENWQE is not set
-# CONFIG_ECHO is not set
-CONFIG_BCM_VK=m
-CONFIG_BCM_VK_TTY=y
-CONFIG_MISC_ALCOR_PCI=m
-CONFIG_MISC_RTSX_PCI=m
-CONFIG_MISC_RTSX_USB=m
-CONFIG_HABANA_AI=m
-CONFIG_UACCE=m
-CONFIG_PVPANIC=y
-CONFIG_PVPANIC_MMIO=m
-CONFIG_PVPANIC_PCI=m
-# end of Misc devices
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=m
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=m
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_NETLINK=y
-# CONFIG_SCSI_PROC_FS is not set
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=m
-CONFIG_CHR_DEV_ST=m
-CONFIG_BLK_DEV_SR=m
-CONFIG_CHR_DEV_SG=m
-CONFIG_CHR_DEV_SCH=m
-CONFIG_SCSI_ENCLOSURE=m
-CONFIG_SCSI_CONSTANTS=y
-CONFIG_SCSI_LOGGING=y
-CONFIG_SCSI_SCAN_ASYNC=y
-
-#
-# SCSI Transports
-#
-CONFIG_SCSI_SPI_ATTRS=m
-CONFIG_SCSI_FC_ATTRS=m
-CONFIG_SCSI_ISCSI_ATTRS=m
-CONFIG_SCSI_SAS_ATTRS=m
-CONFIG_SCSI_SAS_LIBSAS=m
-CONFIG_SCSI_SAS_ATA=y
-CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SRP_ATTRS=m
-# end of SCSI Transports
-
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ISCSI_TCP=m
-CONFIG_ISCSI_BOOT_SYSFS=m
-CONFIG_SCSI_CXGB3_ISCSI=m
-CONFIG_SCSI_CXGB4_ISCSI=m
-CONFIG_SCSI_BNX2_ISCSI=m
-CONFIG_SCSI_BNX2X_FCOE=m
-CONFIG_BE2ISCSI=m
-CONFIG_BLK_DEV_3W_XXXX_RAID=m
-CONFIG_SCSI_HPSA=m
-CONFIG_SCSI_3W_9XXX=m
-CONFIG_SCSI_3W_SAS=m
-CONFIG_SCSI_ACARD=m
-CONFIG_SCSI_AACRAID=m
-CONFIG_SCSI_AIC7XXX=m
-CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
-CONFIG_AIC7XXX_RESET_DELAY_MS=15000
-CONFIG_AIC7XXX_DEBUG_ENABLE=y
-CONFIG_AIC7XXX_DEBUG_MASK=0
-CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
-CONFIG_SCSI_AIC79XX=m
-CONFIG_AIC79XX_CMDS_PER_DEVICE=32
-CONFIG_AIC79XX_RESET_DELAY_MS=15000
-CONFIG_AIC79XX_DEBUG_ENABLE=y
-CONFIG_AIC79XX_DEBUG_MASK=0
-CONFIG_AIC79XX_REG_PRETTY_PRINT=y
-CONFIG_SCSI_AIC94XX=m
-# CONFIG_AIC94XX_DEBUG is not set
-CONFIG_SCSI_HISI_SAS=m
-CONFIG_SCSI_HISI_SAS_PCI=m
-# CONFIG_SCSI_HISI_SAS_DEBUGFS_DEFAULT_ENABLE is not set
-CONFIG_SCSI_MVSAS=m
-# CONFIG_SCSI_MVSAS_DEBUG is not set
-# CONFIG_SCSI_MVSAS_TASKLET is not set
-CONFIG_SCSI_MVUMI=m
-CONFIG_SCSI_ADVANSYS=m
-# CONFIG_SCSI_ARCMSR is not set
-CONFIG_SCSI_ESAS2R=m
-# CONFIG_MEGARAID_NEWGEN is not set
-# CONFIG_MEGARAID_LEGACY is not set
-CONFIG_MEGARAID_SAS=m
-CONFIG_SCSI_MPT3SAS=m
-CONFIG_SCSI_MPT2SAS_MAX_SGE=128
-CONFIG_SCSI_MPT3SAS_MAX_SGE=128
-CONFIG_SCSI_MPT2SAS=m
-CONFIG_SCSI_SMARTPQI=m
-CONFIG_SCSI_UFSHCD=m
-CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
-# CONFIG_SCSI_UFS_BSG is not set
-CONFIG_SCSI_UFS_CRYPTO=y
-CONFIG_SCSI_HPTIOP=m
-# CONFIG_SCSI_MYRB is not set
-# CONFIG_SCSI_MYRS is not set
-CONFIG_XEN_SCSI_FRONTEND=m
-CONFIG_LIBFC=m
-CONFIG_LIBFCOE=m
-CONFIG_FCOE=m
-CONFIG_SCSI_SNIC=m
-# CONFIG_SCSI_SNIC_DEBUG_FS is not set
-CONFIG_SCSI_DMX3191D=m
-CONFIG_SCSI_FDOMAIN=m
-CONFIG_SCSI_FDOMAIN_PCI=m
-# CONFIG_SCSI_IPS is not set
-# CONFIG_SCSI_INITIO is not set
-# CONFIG_SCSI_INIA100 is not set
-CONFIG_SCSI_STEX=m
-CONFIG_SCSI_SYM53C8XX_2=m
-CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
-CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
-CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
-CONFIG_SCSI_SYM53C8XX_MMIO=y
-# CONFIG_SCSI_IPR is not set
-# CONFIG_SCSI_QLOGIC_1280 is not set
-CONFIG_SCSI_QLA_FC=m
-CONFIG_TCM_QLA2XXX=m
-# CONFIG_TCM_QLA2XXX_DEBUG is not set
-CONFIG_SCSI_QLA_ISCSI=m
-# CONFIG_QEDI is not set
-# CONFIG_QEDF is not set
-CONFIG_SCSI_LPFC=m
-# CONFIG_SCSI_LPFC_DEBUG_FS is not set
-# CONFIG_SCSI_DC395x is not set
-# CONFIG_SCSI_AM53C974 is not set
-CONFIG_SCSI_WD719X=m
-# CONFIG_SCSI_DEBUG is not set
-CONFIG_SCSI_PMCRAID=m
-CONFIG_SCSI_PM8001=m
-CONFIG_SCSI_BFA_FC=m
-CONFIG_SCSI_VIRTIO=m
-CONFIG_SCSI_CHELSIO_FCOE=m
-CONFIG_SCSI_DH=y
-CONFIG_SCSI_DH_RDAC=m
-CONFIG_SCSI_DH_HP_SW=m
-CONFIG_SCSI_DH_EMC=m
-CONFIG_SCSI_DH_ALUA=m
-# end of SCSI device support
-
-CONFIG_HAVE_PATA_PLATFORM=y
-CONFIG_ATA=m
-CONFIG_SATA_HOST=y
-CONFIG_PATA_TIMINGS=y
-CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_ATA_FORCE=y
-CONFIG_ATA_ACPI=y
-CONFIG_SATA_ZPODD=y
-CONFIG_SATA_PMP=y
-
-#
-# Controllers with non-SFF native interface
-#
-CONFIG_SATA_AHCI=m
-CONFIG_SATA_MOBILE_LPM_POLICY=0
-CONFIG_SATA_AHCI_PLATFORM=m
-CONFIG_AHCI_IMX=m
-# CONFIG_AHCI_CEVA is not set
-CONFIG_AHCI_MVEBU=m
-# CONFIG_AHCI_SUNXI is not set
-CONFIG_AHCI_TEGRA=m
-CONFIG_AHCI_XGENE=m
-# CONFIG_AHCI_QORIQ is not set
-CONFIG_SATA_AHCI_SEATTLE=m
-# CONFIG_SATA_INIC162X is not set
-CONFIG_SATA_ACARD_AHCI=m
-CONFIG_SATA_SIL24=m
-CONFIG_ATA_SFF=y
-
-#
-# SFF controllers with custom DMA interface
-#
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
-CONFIG_SATA_SX4=m
-CONFIG_ATA_BMDMA=y
-
-#
-# SATA SFF controllers with BMDMA
-#
-CONFIG_ATA_PIIX=m
-# CONFIG_SATA_DWC is not set
-CONFIG_SATA_MV=m
-CONFIG_SATA_NV=m
-CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SIL=m
-CONFIG_SATA_SIS=m
-CONFIG_SATA_SVW=m
-CONFIG_SATA_ULI=m
-CONFIG_SATA_VIA=m
-CONFIG_SATA_VITESSE=m
-
-#
-# PATA SFF controllers with BMDMA
-#
-# CONFIG_PATA_ALI is not set
-# CONFIG_PATA_AMD is not set
-CONFIG_PATA_ARTOP=m
-# CONFIG_PATA_ATIIXP is not set
-CONFIG_PATA_ATP867X=m
-CONFIG_PATA_CMD64X=m
-# CONFIG_PATA_CYPRESS is not set
-# CONFIG_PATA_EFAR is not set
-# CONFIG_PATA_HPT366 is not set
-# CONFIG_PATA_HPT37X is not set
-# CONFIG_PATA_HPT3X2N is not set
-# CONFIG_PATA_HPT3X3 is not set
-# CONFIG_PATA_IMX is not set
-CONFIG_PATA_IT8213=m
-CONFIG_PATA_IT821X=m
-CONFIG_PATA_JMICRON=m
-CONFIG_PATA_MARVELL=m
-# CONFIG_PATA_NETCELL is not set
-CONFIG_PATA_NINJA32=m
-# CONFIG_PATA_NS87415 is not set
-# CONFIG_PATA_OLDPIIX is not set
-# CONFIG_PATA_OPTIDMA is not set
-# CONFIG_PATA_PDC2027X is not set
-# CONFIG_PATA_PDC_OLD is not set
-# CONFIG_PATA_RADISYS is not set
-CONFIG_PATA_RDC=m
-CONFIG_PATA_SCH=m
-# CONFIG_PATA_SERVERWORKS is not set
-# CONFIG_PATA_SIL680 is not set
-CONFIG_PATA_SIS=m
-CONFIG_PATA_TOSHIBA=m
-# CONFIG_PATA_TRIFLEX is not set
-# CONFIG_PATA_VIA is not set
-# CONFIG_PATA_WINBOND is not set
-
-#
-# PIO-only SFF controllers
-#
-# CONFIG_PATA_CMD640_PCI is not set
-# CONFIG_PATA_MPIIX is not set
-# CONFIG_PATA_NS87410 is not set
-# CONFIG_PATA_OPTI is not set
-# CONFIG_PATA_PLATFORM is not set
-# CONFIG_PATA_RZ1000 is not set
-
-#
-# Generic fallback / legacy drivers
-#
-# CONFIG_PATA_ACPI is not set
-CONFIG_ATA_GENERIC=m
-# CONFIG_PATA_LEGACY is not set
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-# CONFIG_MD_CLUSTER is not set
-CONFIG_BCACHE=m
-# CONFIG_BCACHE_DEBUG is not set
-# CONFIG_BCACHE_CLOSURES_DEBUG is not set
-# CONFIG_BCACHE_ASYNC_REGISTRATION is not set
-CONFIG_BLK_DEV_DM_BUILTIN=y
-CONFIG_BLK_DEV_DM=m
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_BUFIO=m
-# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
-CONFIG_DM_BIO_PRISON=m
-CONFIG_DM_PERSISTENT_DATA=m
-# CONFIG_DM_UNSTRIPED is not set
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_THIN_PROVISIONING=m
-CONFIG_DM_CACHE=m
-CONFIG_DM_CACHE_SMQ=m
-CONFIG_DM_WRITECACHE=m
-# CONFIG_DM_EBS is not set
-CONFIG_DM_ERA=m
-CONFIG_DM_CLONE=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_LOG_USERSPACE=m
-CONFIG_DM_RAID=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_QL=m
-CONFIG_DM_MULTIPATH_ST=m
-CONFIG_DM_MULTIPATH_HST=m
-CONFIG_DM_MULTIPATH_IOA=m
-CONFIG_DM_DELAY=m
-CONFIG_DM_DUST=m
-CONFIG_DM_UEVENT=y
-CONFIG_DM_FLAKEY=m
-CONFIG_DM_VERITY=m
-CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y
-# CONFIG_DM_VERITY_FEC is not set
-CONFIG_DM_SWITCH=m
-CONFIG_DM_LOG_WRITES=m
-# CONFIG_DM_INTEGRITY is not set
-CONFIG_TARGET_CORE=m
-CONFIG_TCM_IBLOCK=m
-CONFIG_TCM_FILEIO=m
-CONFIG_TCM_PSCSI=m
-CONFIG_TCM_USER2=m
-CONFIG_LOOPBACK_TARGET=m
-CONFIG_TCM_FC=m
-CONFIG_ISCSI_TARGET=m
-CONFIG_ISCSI_TARGET_CXGB4=m
-CONFIG_SBP_TARGET=m
-CONFIG_FUSION=y
-CONFIG_FUSION_SPI=m
-CONFIG_FUSION_FC=m
-CONFIG_FUSION_SAS=m
-CONFIG_FUSION_MAX_SGE=128
-CONFIG_FUSION_CTL=m
-# CONFIG_FUSION_LOGGING is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-CONFIG_FIREWIRE=m
-CONFIG_FIREWIRE_OHCI=m
-CONFIG_FIREWIRE_SBP2=m
-CONFIG_FIREWIRE_NET=m
-CONFIG_FIREWIRE_NOSY=m
-# end of IEEE 1394 (FireWire) support
-
-CONFIG_NETDEVICES=y
-CONFIG_MII=m
-CONFIG_NET_CORE=y
-CONFIG_BONDING=m
-CONFIG_DUMMY=m
-CONFIG_WIREGUARD=m
-# CONFIG_WIREGUARD_DEBUG is not set
-CONFIG_EQUALIZER=m
-# CONFIG_NET_FC is not set
-CONFIG_IFB=m
-CONFIG_NET_TEAM=m
-CONFIG_NET_TEAM_MODE_BROADCAST=m
-CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
-CONFIG_NET_TEAM_MODE_RANDOM=m
-CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
-CONFIG_NET_TEAM_MODE_LOADBALANCE=m
-CONFIG_MACVLAN=m
-CONFIG_MACVTAP=m
-CONFIG_IPVLAN_L3S=y
-CONFIG_IPVLAN=m
-CONFIG_IPVTAP=m
-CONFIG_VXLAN=m
-CONFIG_GENEVE=m
-CONFIG_BAREUDP=m
-CONFIG_GTP=m
-CONFIG_MACSEC=m
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_TUN=m
-CONFIG_TAP=m
-# CONFIG_TUN_VNET_CROSS_LE is not set
-CONFIG_VETH=m
-CONFIG_VIRTIO_NET=m
-CONFIG_NLMON=m
-CONFIG_NET_VRF=m
-# CONFIG_VSOCKMON is not set
-CONFIG_MHI_NET=m
-# CONFIG_ARCNET is not set
-CONFIG_ATM_DRIVERS=y
-CONFIG_ATM_DUMMY=m
-# CONFIG_ATM_TCP is not set
-# CONFIG_ATM_LANAI is not set
-# CONFIG_ATM_ENI is not set
-CONFIG_ATM_NICSTAR=m
-CONFIG_ATM_NICSTAR_USE_SUNI=y
-CONFIG_ATM_NICSTAR_USE_IDT77105=y
-# CONFIG_ATM_IDT77252 is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-# CONFIG_ATM_FORE200E_USE_TASKLET is not set
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-# CONFIG_ATM_HE is not set
-CONFIG_ATM_SOLOS=m
-
-#
-# Distributed Switch Architecture drivers
-#
-# CONFIG_B53 is not set
-# CONFIG_NET_DSA_BCM_SF2 is not set
-# CONFIG_NET_DSA_LOOP is not set
-CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK=m
-# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
-# CONFIG_NET_DSA_MT7530 is not set
-CONFIG_NET_DSA_MV88E6060=m
-# CONFIG_NET_DSA_MICROCHIP_KSZ9477 is not set
-# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
-CONFIG_NET_DSA_MV88E6XXX=m
-# CONFIG_NET_DSA_MV88E6XXX_PTP is not set
-CONFIG_NET_DSA_MSCC_FELIX=m
-CONFIG_NET_DSA_MSCC_SEVILLE=m
-CONFIG_NET_DSA_AR9331=m
-CONFIG_NET_DSA_SJA1105=m
-CONFIG_NET_DSA_SJA1105_PTP=y
-# CONFIG_NET_DSA_SJA1105_TAS is not set
-CONFIG_NET_DSA_XRS700X=m
-CONFIG_NET_DSA_XRS700X_I2C=m
-CONFIG_NET_DSA_XRS700X_MDIO=m
-# CONFIG_NET_DSA_QCA8K is not set
-CONFIG_NET_DSA_REALTEK_SMI=m
-# CONFIG_NET_DSA_SMSC_LAN9303_I2C is not set
-# CONFIG_NET_DSA_SMSC_LAN9303_MDIO is not set
-CONFIG_NET_DSA_VITESSE_VSC73XX=m
-CONFIG_NET_DSA_VITESSE_VSC73XX_SPI=m
-CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM=m
-# end of Distributed Switch Architecture drivers
-
-CONFIG_ETHERNET=y
-CONFIG_MDIO=m
-CONFIG_NET_VENDOR_3COM=y
-CONFIG_VORTEX=m
-CONFIG_TYPHOON=m
-CONFIG_NET_VENDOR_ADAPTEC=y
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_NET_VENDOR_AGERE=y
-CONFIG_ET131X=m
-CONFIG_NET_VENDOR_ALACRITECH=y
-# CONFIG_SLICOSS is not set
-CONFIG_NET_VENDOR_ALLWINNER=y
-# CONFIG_SUN4I_EMAC is not set
-CONFIG_NET_VENDOR_ALTEON=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-# CONFIG_ALTERA_TSE is not set
-CONFIG_NET_VENDOR_AMAZON=y
-CONFIG_ENA_ETHERNET=m
-CONFIG_NET_VENDOR_AMD=y
-# CONFIG_AMD8111_ETH is not set
-CONFIG_PCNET32=m
-CONFIG_AMD_XGBE=m
-# CONFIG_AMD_XGBE_DCB is not set
-CONFIG_NET_XGENE=m
-CONFIG_NET_XGENE_V2=m
-CONFIG_NET_VENDOR_AQUANTIA=y
-CONFIG_AQTION=m
-# CONFIG_NET_VENDOR_ARC is not set
-CONFIG_NET_VENDOR_ATHEROS=y
-CONFIG_ATL2=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_ALX=m
-CONFIG_NET_VENDOR_BROADCOM=y
-# CONFIG_B44 is not set
-# CONFIG_BCM4908_ENET is not set
-# CONFIG_BCMGENET is not set
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_TIGON3=m
-CONFIG_TIGON3_HWMON=y
-CONFIG_BNX2X=m
-CONFIG_BNX2X_SRIOV=y
-# CONFIG_SYSTEMPORT is not set
-CONFIG_BNXT=m
-CONFIG_BNXT_SRIOV=y
-CONFIG_BNXT_FLOWER_OFFLOAD=y
-# CONFIG_BNXT_DCB is not set
-CONFIG_BNXT_HWMON=y
-CONFIG_NET_VENDOR_BROCADE=y
-CONFIG_BNA=m
-CONFIG_NET_VENDOR_CADENCE=y
-# CONFIG_MACB is not set
-CONFIG_NET_VENDOR_CAVIUM=y
-CONFIG_THUNDER_NIC_PF=m
-CONFIG_THUNDER_NIC_VF=m
-CONFIG_THUNDER_NIC_BGX=m
-CONFIG_THUNDER_NIC_RGX=m
-CONFIG_CAVIUM_PTP=y
-CONFIG_LIQUIDIO=m
-# CONFIG_LIQUIDIO_VF is not set
-CONFIG_NET_VENDOR_CHELSIO=y
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3=m
-CONFIG_CHELSIO_T4=m
-CONFIG_CHELSIO_T4_DCB=y
-CONFIG_CHELSIO_T4_FCOE=y
-CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_LIB=m
-CONFIG_CHELSIO_INLINE_CRYPTO=y
-# CONFIG_CHELSIO_IPSEC_INLINE is not set
-CONFIG_NET_VENDOR_CISCO=y
-CONFIG_ENIC=m
-CONFIG_NET_VENDOR_CORTINA=y
-# CONFIG_GEMINI_ETHERNET is not set
-# CONFIG_DNET is not set
-CONFIG_NET_VENDOR_DEC=y
-CONFIG_NET_TULIP=y
-CONFIG_DE2104X=m
-CONFIG_DE2104X_DSL=0
-CONFIG_TULIP=m
-# CONFIG_TULIP_MWI is not set
-# CONFIG_TULIP_MMIO is not set
-CONFIG_TULIP_NAPI=y
-CONFIG_TULIP_NAPI_HW_MITIGATION=y
-CONFIG_WINBOND_840=m
-CONFIG_DM9102=m
-CONFIG_ULI526X=m
-CONFIG_NET_VENDOR_DLINK=y
-CONFIG_DL2K=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_NET_VENDOR_EMULEX=y
-CONFIG_BE2NET=m
-CONFIG_BE2NET_HWMON=y
-CONFIG_BE2NET_BE2=y
-CONFIG_BE2NET_BE3=y
-CONFIG_BE2NET_LANCER=y
-CONFIG_BE2NET_SKYHAWK=y
-CONFIG_NET_VENDOR_EZCHIP=y
-# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set
-CONFIG_NET_VENDOR_FREESCALE=y
-CONFIG_FEC=m
-CONFIG_FSL_PQ_MDIO=m
-CONFIG_FSL_XGMAC_MDIO=m
-CONFIG_GIANFAR=m
-CONFIG_FSL_DPAA2_SWITCH=m
-CONFIG_FSL_ENETC=m
-CONFIG_FSL_ENETC_VF=m
-CONFIG_FSL_ENETC_IERB=m
-CONFIG_FSL_ENETC_MDIO=m
-CONFIG_FSL_ENETC_PTP_CLOCK=m
-CONFIG_FSL_ENETC_QOS=y
-CONFIG_NET_VENDOR_GOOGLE=y
-CONFIG_GVE=m
-CONFIG_NET_VENDOR_HISILICON=y
-CONFIG_HIX5HD2_GMAC=m
-CONFIG_HISI_FEMAC=m
-CONFIG_HIP04_ETH=m
-CONFIG_HI13X1_GMAC=y
-CONFIG_HNS_MDIO=m
-CONFIG_HNS=m
-CONFIG_HNS_DSAF=m
-CONFIG_HNS_ENET=m
-# CONFIG_HNS3 is not set
-CONFIG_NET_VENDOR_HUAWEI=y
-CONFIG_HINIC=m
-CONFIG_NET_VENDOR_I825XX=y
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_E100=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IGB=m
-CONFIG_IGB_HWMON=y
-CONFIG_IGBVF=m
-CONFIG_IXGB=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_HWMON=y
-CONFIG_IXGBE_DCB=y
-CONFIG_IXGBE_IPSEC=y
-CONFIG_IXGBEVF=m
-CONFIG_IXGBEVF_IPSEC=y
-CONFIG_I40E=m
-CONFIG_I40E_DCB=y
-# CONFIG_I40EVF is not set
-# CONFIG_ICE is not set
-# CONFIG_FM10K is not set
-# CONFIG_IGC is not set
-CONFIG_NET_VENDOR_MICROSOFT=y
-CONFIG_JME=m
-CONFIG_NET_VENDOR_MARVELL=y
-CONFIG_MVMDIO=m
-CONFIG_MVNETA=m
-CONFIG_MVPP2=m
-CONFIG_MVPP2_PTP=y
-CONFIG_SKGE=m
-# CONFIG_SKGE_DEBUG is not set
-CONFIG_SKGE_GENESIS=y
-CONFIG_SKY2=m
-# CONFIG_SKY2_DEBUG is not set
-CONFIG_OCTEONTX2_MBOX=m
-# CONFIG_OCTEONTX2_AF is not set
-CONFIG_OCTEONTX2_PF=m
-CONFIG_OCTEONTX2_VF=m
-CONFIG_PRESTERA=m
-CONFIG_PRESTERA_PCI=m
-CONFIG_NET_VENDOR_MELLANOX=y
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_EN_DCB=y
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_MLX4_CORE_GEN2=y
-CONFIG_MLX5_CORE=m
-CONFIG_MLX5_ACCEL=y
-# CONFIG_MLX5_FPGA is not set
-CONFIG_MLX5_CORE_EN=y
-CONFIG_MLX5_EN_ARFS=y
-CONFIG_MLX5_EN_RXNFC=y
-CONFIG_MLX5_MPFS=y
-CONFIG_MLX5_ESWITCH=y
-CONFIG_MLX5_CLS_ACT=y
-CONFIG_MLX5_TC_SAMPLE=y
-CONFIG_MLX5_CORE_EN_DCB=y
-# CONFIG_MLX5_CORE_IPOIB is not set
-CONFIG_MLX5_IPSEC=y
-CONFIG_MLX5_EN_IPSEC=y
-CONFIG_MLX5_SW_STEERING=y
-CONFIG_MLX5_SF=y
-CONFIG_MLX5_SF_MANAGER=y
-# CONFIG_MLXSW_CORE is not set
-# CONFIG_MLXFW is not set
-CONFIG_NET_VENDOR_MICREL=y
-# CONFIG_KS8842 is not set
-# CONFIG_KS8851 is not set
-# CONFIG_KS8851_MLL is not set
-CONFIG_KSZ884X_PCI=m
-CONFIG_NET_VENDOR_MICROCHIP=y
-# CONFIG_ENC28J60 is not set
-# CONFIG_ENCX24J600 is not set
-# CONFIG_LAN743X is not set
-CONFIG_NET_VENDOR_MICROSEMI=y
-CONFIG_MSCC_OCELOT_SWITCH_LIB=m
-CONFIG_MSCC_OCELOT_SWITCH=m
-CONFIG_NET_VENDOR_MYRI=y
-CONFIG_MYRI10GE=m
-CONFIG_FEALNX=m
-CONFIG_NET_VENDOR_NATSEMI=y
-CONFIG_NATSEMI=m
-CONFIG_NS83820=m
-CONFIG_NET_VENDOR_NETERION=y
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_NET_VENDOR_NETRONOME=y
-CONFIG_NFP=m
-CONFIG_NFP_APP_FLOWER=y
-CONFIG_NFP_APP_ABM_NIC=y
-# CONFIG_NFP_DEBUG is not set
-CONFIG_NET_VENDOR_NI=y
-# CONFIG_NI_XGE_MANAGEMENT_ENET is not set
-CONFIG_NET_VENDOR_8390=y
-CONFIG_NE2K_PCI=m
-CONFIG_NET_VENDOR_NVIDIA=y
-# CONFIG_FORCEDETH is not set
-CONFIG_NET_VENDOR_OKI=y
-# CONFIG_ETHOC is not set
-CONFIG_NET_VENDOR_PACKET_ENGINES=y
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_NET_VENDOR_PENSANDO=y
-CONFIG_IONIC=m
-CONFIG_NET_VENDOR_QLOGIC=y
-CONFIG_QLA3XXX=m
-CONFIG_QLCNIC=m
-CONFIG_QLCNIC_SRIOV=y
-CONFIG_QLCNIC_DCB=y
-CONFIG_QLCNIC_HWMON=y
-CONFIG_NETXEN_NIC=m
-CONFIG_QED=m
-CONFIG_QED_LL2=y
-CONFIG_QED_SRIOV=y
-CONFIG_QEDE=m
-CONFIG_QED_RDMA=y
-CONFIG_QED_OOO=y
-CONFIG_NET_VENDOR_QUALCOMM=y
-# CONFIG_QCA7000_SPI is not set
-# CONFIG_QCA7000_UART is not set
-CONFIG_QCOM_EMAC=m
-# CONFIG_RMNET is not set
-CONFIG_NET_VENDOR_RDC=y
-CONFIG_R6040=m
-CONFIG_NET_VENDOR_REALTEK=y
-CONFIG_8139CP=m
-CONFIG_8139TOO=m
-# CONFIG_8139TOO_PIO is not set
-CONFIG_8139TOO_TUNE_TWISTER=y
-CONFIG_8139TOO_8129=y
-# CONFIG_8139_OLD_RX_RESET is not set
-CONFIG_R8169=m
-CONFIG_NET_VENDOR_RENESAS=y
-CONFIG_NET_VENDOR_ROCKER=y
-# CONFIG_ROCKER is not set
-CONFIG_NET_VENDOR_SAMSUNG=y
-# CONFIG_SXGBE_ETH is not set
-# CONFIG_NET_VENDOR_SEEQ is not set
-CONFIG_NET_VENDOR_SOLARFLARE=y
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_SFC_MCDI_MON=y
-CONFIG_SFC_SRIOV=y
-CONFIG_SFC_MCDI_LOGGING=y
-CONFIG_SFC_FALCON=m
-CONFIG_SFC_FALCON_MTD=y
-CONFIG_NET_VENDOR_SILAN=y
-CONFIG_SC92031=m
-CONFIG_NET_VENDOR_SIS=y
-# CONFIG_SIS900 is not set
-CONFIG_SIS190=m
-CONFIG_NET_VENDOR_SMSC=y
-CONFIG_SMC91X=m
-CONFIG_EPIC100=m
-CONFIG_SMSC911X=m
-CONFIG_SMSC9420=m
-CONFIG_NET_VENDOR_SOCIONEXT=y
-CONFIG_SNI_NETSEC=m
-CONFIG_NET_VENDOR_STMICRO=y
-CONFIG_STMMAC_ETH=m
-# CONFIG_STMMAC_SELFTESTS is not set
-CONFIG_STMMAC_PLATFORM=m
-# CONFIG_DWMAC_DWC_QOS_ETH is not set
-CONFIG_DWMAC_GENERIC=m
-CONFIG_DWMAC_IPQ806X=m
-CONFIG_DWMAC_MESON=m
-CONFIG_DWMAC_QCOM_ETHQOS=m
-CONFIG_DWMAC_ROCKCHIP=m
-CONFIG_DWMAC_SOCFPGA=m
-CONFIG_DWMAC_SUNXI=m
-CONFIG_DWMAC_SUN8I=m
-CONFIG_DWMAC_IMX8=m
-# CONFIG_DWMAC_INTEL_PLAT is not set
-CONFIG_DWMAC_VISCONTI=m
-# CONFIG_STMMAC_PCI is not set
-CONFIG_NET_VENDOR_SUN=y
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNGEM is not set
-CONFIG_CASSINI=m
-CONFIG_NIU=m
-CONFIG_NET_VENDOR_SYNOPSYS=y
-# CONFIG_DWC_XLGMAC is not set
-CONFIG_NET_VENDOR_TEHUTI=y
-CONFIG_TEHUTI=m
-CONFIG_NET_VENDOR_TI=y
-# CONFIG_TI_CPSW_PHY_SEL is not set
-CONFIG_TLAN=m
-CONFIG_NET_VENDOR_VIA=y
-# CONFIG_VIA_RHINE is not set
-CONFIG_VIA_VELOCITY=m
-CONFIG_NET_VENDOR_WIZNET=y
-# CONFIG_WIZNET_W5100 is not set
-# CONFIG_WIZNET_W5300 is not set
-CONFIG_NET_VENDOR_XILINX=y
-CONFIG_XILINX_EMACLITE=m
-CONFIG_XILINX_AXI_EMAC=m
-CONFIG_XILINX_LL_TEMAC=m
-CONFIG_FDDI=y
-CONFIG_DEFXX=m
-CONFIG_SKFP=m
-# CONFIG_HIPPI is not set
-# CONFIG_NET_SB1000 is not set
-CONFIG_PHYLINK=m
-CONFIG_PHYLIB=m
-CONFIG_SWPHY=y
-# CONFIG_LED_TRIGGER_PHY is not set
-CONFIG_FIXED_PHY=m
-# CONFIG_SFP is not set
-
-#
-# MII PHY device drivers
-#
-CONFIG_AMD_PHY=m
-CONFIG_MESON_GXL_PHY=m
-CONFIG_ADIN_PHY=m
-CONFIG_AQUANTIA_PHY=m
-CONFIG_AX88796B_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_BCM54140_PHY=m
-# CONFIG_BCM7XXX_PHY is not set
-CONFIG_BCM84881_PHY=m
-CONFIG_BCM87XX_PHY=m
-CONFIG_BCM_NET_PHYLIB=m
-CONFIG_CICADA_PHY=m
-# CONFIG_CORTINA_PHY is not set
-CONFIG_DAVICOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_LXT_PHY=m
-# CONFIG_INTEL_XWAY_PHY is not set
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_MARVELL_PHY=m
-CONFIG_MARVELL_10G_PHY=m
-CONFIG_MARVELL_88X2222_PHY=m
-CONFIG_MICREL_PHY=m
-CONFIG_MICROCHIP_PHY=m
-CONFIG_MICROCHIP_T1_PHY=m
-CONFIG_MICROSEMI_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_NXP_C45_TJA11XX_PHY=m
-CONFIG_NXP_TJA11XX_PHY=m
-CONFIG_AT803X_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_REALTEK_PHY=m
-# CONFIG_RENESAS_PHY is not set
-# CONFIG_ROCKCHIP_PHY is not set
-CONFIG_SMSC_PHY=m
-CONFIG_STE10XP=m
-CONFIG_TERANETICS_PHY=m
-# CONFIG_DP83822_PHY is not set
-CONFIG_DP83TC811_PHY=m
-CONFIG_DP83848_PHY=m
-CONFIG_DP83867_PHY=m
-CONFIG_DP83869_PHY=m
-CONFIG_VITESSE_PHY=m
-# CONFIG_XILINX_GMII2RGMII is not set
-# CONFIG_MICREL_KS8995MA is not set
-CONFIG_MDIO_DEVICE=m
-CONFIG_MDIO_BUS=m
-CONFIG_OF_MDIO=m
-CONFIG_MDIO_DEVRES=m
-# CONFIG_MDIO_SUN4I is not set
-CONFIG_MDIO_XGENE=m
-# CONFIG_MDIO_BITBANG is not set
-# CONFIG_MDIO_BCM_UNIMAC is not set
-CONFIG_MDIO_CAVIUM=m
-CONFIG_MDIO_HISI_FEMAC=m
-CONFIG_MDIO_MVUSB=m
-CONFIG_MDIO_MSCC_MIIM=m
-# CONFIG_MDIO_OCTEON is not set
-# CONFIG_MDIO_IPQ4019 is not set
-CONFIG_MDIO_IPQ8064=m
-CONFIG_MDIO_THUNDER=m
-
-#
-# MDIO Multiplexers
-#
-CONFIG_MDIO_BUS_MUX=m
-CONFIG_MDIO_BUS_MUX_MESON_G12A=m
-# CONFIG_MDIO_BUS_MUX_GPIO is not set
-# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
-CONFIG_MDIO_BUS_MUX_MMIOREG=m
-
-#
-# PCS device drivers
-#
-CONFIG_PCS_XPCS=m
-CONFIG_PCS_LYNX=m
-# end of PCS device drivers
-
-# CONFIG_PLIP is not set
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOATM=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOL2TP=m
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_SLIP=m
-CONFIG_SLHC=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-
-#
-# Host-side USB support is needed for USB Network Adapter support
-#
-CONFIG_USB_NET_DRIVERS=m
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_RTL8152=m
-CONFIG_USB_LAN78XX=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_AX88179_178A=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_CDC_EEM=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_HUAWEI_CDC_NCM=m
-CONFIG_USB_NET_CDC_MBIM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SR9700=m
-CONFIG_USB_NET_SR9800=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_NET_QMI_WWAN=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_USB_NET_CH9200=m
-CONFIG_USB_NET_AQC111=m
-CONFIG_USB_RTL8153_ECM=m
-CONFIG_WLAN=y
-CONFIG_WLAN_VENDOR_ADMTEK=y
-CONFIG_ADM8211=m
-CONFIG_ATH_COMMON=m
-CONFIG_WLAN_VENDOR_ATH=y
-# CONFIG_ATH_DEBUG is not set
-CONFIG_ATH5K=m
-# CONFIG_ATH5K_DEBUG is not set
-# CONFIG_ATH5K_TRACER is not set
-CONFIG_ATH5K_PCI=y
-CONFIG_ATH9K_HW=m
-CONFIG_ATH9K_COMMON=m
-CONFIG_ATH9K_BTCOEX_SUPPORT=y
-CONFIG_ATH9K=m
-CONFIG_ATH9K_PCI=y
-# CONFIG_ATH9K_AHB is not set
-# CONFIG_ATH9K_DEBUGFS is not set
-# CONFIG_ATH9K_DYNACK is not set
-# CONFIG_ATH9K_WOW is not set
-CONFIG_ATH9K_RFKILL=y
-# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
-CONFIG_ATH9K_PCOEM=y
-CONFIG_ATH9K_PCI_NO_EEPROM=m
-CONFIG_ATH9K_HTC=m
-# CONFIG_ATH9K_HTC_DEBUGFS is not set
-# CONFIG_ATH9K_HWRNG is not set
-CONFIG_CARL9170=m
-CONFIG_CARL9170_LEDS=y
-CONFIG_CARL9170_WPC=y
-# CONFIG_CARL9170_HWRNG is not set
-CONFIG_ATH6KL=m
-CONFIG_ATH6KL_SDIO=m
-CONFIG_ATH6KL_USB=m
-# CONFIG_ATH6KL_DEBUG is not set
-# CONFIG_ATH6KL_TRACING is not set
-CONFIG_AR5523=m
-CONFIG_WIL6210=m
-CONFIG_WIL6210_ISR_COR=y
-CONFIG_WIL6210_TRACING=y
-CONFIG_WIL6210_DEBUGFS=y
-CONFIG_ATH10K=m
-CONFIG_ATH10K_CE=y
-CONFIG_ATH10K_PCI=m
-# CONFIG_ATH10K_AHB is not set
-# CONFIG_ATH10K_SDIO is not set
-# CONFIG_ATH10K_USB is not set
-# CONFIG_ATH10K_SNOC is not set
-# CONFIG_ATH10K_DEBUG is not set
-# CONFIG_ATH10K_DEBUGFS is not set
-# CONFIG_ATH10K_TRACING is not set
-CONFIG_WCN36XX=m
-# CONFIG_WCN36XX_DEBUGFS is not set
-CONFIG_ATH11K=m
-CONFIG_ATH11K_PCI=m
-# CONFIG_ATH11K_DEBUG is not set
-# CONFIG_ATH11K_TRACING is not set
-CONFIG_WLAN_VENDOR_ATMEL=y
-# CONFIG_ATMEL is not set
-CONFIG_AT76C50X_USB=m
-CONFIG_WLAN_VENDOR_BROADCOM=y
-CONFIG_B43=m
-CONFIG_B43_BCMA=y
-CONFIG_B43_SSB=y
-CONFIG_B43_BUSES_BCMA_AND_SSB=y
-# CONFIG_B43_BUSES_BCMA is not set
-# CONFIG_B43_BUSES_SSB is not set
-CONFIG_B43_PCI_AUTOSELECT=y
-CONFIG_B43_PCICORE_AUTOSELECT=y
-CONFIG_B43_SDIO=y
-CONFIG_B43_BCMA_PIO=y
-CONFIG_B43_PIO=y
-CONFIG_B43_PHY_G=y
-CONFIG_B43_PHY_N=y
-CONFIG_B43_PHY_LP=y
-CONFIG_B43_PHY_HT=y
-CONFIG_B43_LEDS=y
-CONFIG_B43_HWRNG=y
-# CONFIG_B43_DEBUG is not set
-CONFIG_B43LEGACY=m
-CONFIG_B43LEGACY_PCI_AUTOSELECT=y
-CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
-CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_HWRNG=y
-CONFIG_B43LEGACY_DEBUG=y
-CONFIG_B43LEGACY_DMA=y
-CONFIG_B43LEGACY_PIO=y
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# CONFIG_B43LEGACY_DMA_MODE is not set
-# CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMSMAC=m
-CONFIG_BRCMFMAC=m
-CONFIG_BRCMFMAC_PROTO_BCDC=y
-CONFIG_BRCMFMAC_PROTO_MSGBUF=y
-CONFIG_BRCMFMAC_SDIO=y
-CONFIG_BRCMFMAC_USB=y
-CONFIG_BRCMFMAC_PCIE=y
-# CONFIG_BRCM_TRACING is not set
-# CONFIG_BRCMDBG is not set
-CONFIG_WLAN_VENDOR_CISCO=y
-CONFIG_WLAN_VENDOR_INTEL=y
-# CONFIG_IPW2100 is not set
-CONFIG_IPW2200=m
-CONFIG_IPW2200_MONITOR=y
-CONFIG_IPW2200_RADIOTAP=y
-CONFIG_IPW2200_PROMISCUOUS=y
-CONFIG_IPW2200_QOS=y
-# CONFIG_IPW2200_DEBUG is not set
-CONFIG_LIBIPW=m
-# CONFIG_LIBIPW_DEBUG is not set
-CONFIG_IWLEGACY=m
-CONFIG_IWL4965=m
-CONFIG_IWL3945=m
-
-#
-# iwl3945 / iwl4965 Debugging Options
-#
-# CONFIG_IWLEGACY_DEBUG is not set
-# end of iwl3945 / iwl4965 Debugging Options
-
-CONFIG_IWLWIFI=m
-CONFIG_IWLWIFI_LEDS=y
-CONFIG_IWLDVM=m
-CONFIG_IWLMVM=m
-CONFIG_IWLWIFI_OPMODE_MODULAR=y
-# CONFIG_IWLWIFI_BCAST_FILTERING is not set
-
-#
-# Debugging Options
-#
-# CONFIG_IWLWIFI_DEBUG is not set
-# CONFIG_IWLWIFI_DEVICE_TRACING is not set
-# end of Debugging Options
-
-CONFIG_WLAN_VENDOR_INTERSIL=y
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-# CONFIG_HERMES is not set
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-CONFIG_P54_PCI=m
-# CONFIG_P54_SPI is not set
-CONFIG_P54_LEDS=y
-# CONFIG_PRISM54 is not set
-CONFIG_WLAN_VENDOR_MARVELL=y
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_SDIO=m
-# CONFIG_LIBERTAS_SPI is not set
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_LIBERTAS_MESH=y
-CONFIG_LIBERTAS_THINFIRM=m
-# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM_USB=m
-# CONFIG_MWIFIEX is not set
-CONFIG_MWL8K=m
-CONFIG_WLAN_VENDOR_MEDIATEK=y
-CONFIG_MT7601U=m
-# CONFIG_MT76x0U is not set
-# CONFIG_MT76x0E is not set
-# CONFIG_MT76x2E is not set
-# CONFIG_MT76x2U is not set
-# CONFIG_MT7603E is not set
-# CONFIG_MT7615E is not set
-# CONFIG_MT7663U is not set
-# CONFIG_MT7663S is not set
-# CONFIG_MT7915E is not set
-# CONFIG_MT7921E is not set
-CONFIG_WLAN_VENDOR_MICROCHIP=y
-# CONFIG_WILC1000_SDIO is not set
-# CONFIG_WILC1000_SPI is not set
-CONFIG_WLAN_VENDOR_RALINK=y
-CONFIG_RT2X00=m
-CONFIG_RT2400PCI=m
-CONFIG_RT2500PCI=m
-CONFIG_RT61PCI=m
-CONFIG_RT2800PCI=m
-CONFIG_RT2800PCI_RT33XX=y
-CONFIG_RT2800PCI_RT35XX=y
-CONFIG_RT2800PCI_RT53XX=y
-CONFIG_RT2800PCI_RT3290=y
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT33XX=y
-CONFIG_RT2800USB_RT35XX=y
-CONFIG_RT2800USB_RT3573=y
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_RT55XX=y
-# CONFIG_RT2800USB_UNKNOWN is not set
-CONFIG_RT2800_LIB=m
-CONFIG_RT2800_LIB_MMIO=m
-CONFIG_RT2X00_LIB_MMIO=m
-CONFIG_RT2X00_LIB_PCI=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_LEDS=y
-# CONFIG_RT2X00_DEBUG is not set
-CONFIG_WLAN_VENDOR_REALTEK=y
-CONFIG_RTL8180=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-CONFIG_RTL_CARDS=m
-CONFIG_RTL8192CE=m
-CONFIG_RTL8192SE=m
-CONFIG_RTL8192DE=m
-CONFIG_RTL8723AE=m
-CONFIG_RTL8723BE=m
-CONFIG_RTL8188EE=m
-CONFIG_RTL8192EE=m
-CONFIG_RTL8821AE=m
-CONFIG_RTL8192CU=m
-CONFIG_RTLWIFI=m
-CONFIG_RTLWIFI_PCI=m
-CONFIG_RTLWIFI_USB=m
-# CONFIG_RTLWIFI_DEBUG is not set
-CONFIG_RTL8192C_COMMON=m
-CONFIG_RTL8723_COMMON=m
-CONFIG_RTLBTCOEXIST=m
-CONFIG_RTL8XXXU=m
-# CONFIG_RTL8XXXU_UNTESTED is not set
-CONFIG_RTW88=m
-CONFIG_RTW88_CORE=m
-CONFIG_RTW88_PCI=m
-CONFIG_RTW88_8822B=m
-CONFIG_RTW88_8822C=m
-CONFIG_RTW88_8723D=m
-CONFIG_RTW88_8821C=m
-CONFIG_RTW88_8822BE=m
-CONFIG_RTW88_8822CE=m
-CONFIG_RTW88_8723DE=m
-CONFIG_RTW88_8821CE=m
-# CONFIG_RTW88_DEBUG is not set
-# CONFIG_RTW88_DEBUGFS is not set
-CONFIG_WLAN_VENDOR_RSI=y
-CONFIG_RSI_91X=m
-CONFIG_RSI_DEBUGFS=y
-# CONFIG_RSI_SDIO is not set
-CONFIG_RSI_USB=m
-CONFIG_RSI_COEX=y
-CONFIG_WLAN_VENDOR_ST=y
-# CONFIG_CW1200 is not set
-CONFIG_WLAN_VENDOR_TI=y
-CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL12XX=m
-CONFIG_WL18XX=m
-CONFIG_WLCORE=m
-CONFIG_WLCORE_SPI=m
-CONFIG_WLCORE_SDIO=m
-CONFIG_WILINK_PLATFORM_DATA=y
-CONFIG_WLAN_VENDOR_ZYDAS=y
-# CONFIG_USB_ZD1201 is not set
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_WLAN_VENDOR_QUANTENNA=y
-CONFIG_QTNFMAC=m
-CONFIG_QTNFMAC_PCIE=m
-CONFIG_MAC80211_HWSIM=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-CONFIG_VIRT_WIFI=m
-# CONFIG_WAN is not set
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKELB=m
-CONFIG_IEEE802154_AT86RF230=m
-# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
-CONFIG_IEEE802154_MRF24J40=m
-CONFIG_IEEE802154_CC2520=m
-CONFIG_IEEE802154_ATUSB=m
-CONFIG_IEEE802154_ADF7242=m
-# CONFIG_IEEE802154_CA8210 is not set
-CONFIG_IEEE802154_MCR20A=m
-# CONFIG_IEEE802154_HWSIM is not set
-CONFIG_WWAN=y
-CONFIG_WWAN_CORE=y
-CONFIG_MHI_WWAN_CTRL=m
-CONFIG_XEN_NETDEV_FRONTEND=m
-CONFIG_XEN_NETDEV_BACKEND=m
-# CONFIG_VMXNET3 is not set
-# CONFIG_FUJITSU_ES is not set
-CONFIG_USB4_NET=m
-# CONFIG_NETDEVSIM is not set
-CONFIG_NET_FAILOVER=m
-# CONFIG_ISDN is not set
-# CONFIG_NVM is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_LEDS=y
-CONFIG_INPUT_FF_MEMLESS=m
-CONFIG_INPUT_SPARSEKMAP=m
-CONFIG_INPUT_MATRIXKMAP=m
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-CONFIG_INPUT_EVDEV=m
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ADC is not set
-CONFIG_KEYBOARD_ADP5588=m
-# CONFIG_KEYBOARD_ADP5589 is not set
-CONFIG_KEYBOARD_ATKBD=y
-CONFIG_KEYBOARD_QT1050=m
-# CONFIG_KEYBOARD_QT1070 is not set
-CONFIG_KEYBOARD_QT2160=m
-# CONFIG_KEYBOARD_DLINK_DIR685 is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-CONFIG_KEYBOARD_GPIO=m
-# CONFIG_KEYBOARD_GPIO_POLLED is not set
-# CONFIG_KEYBOARD_TCA6416 is not set
-# CONFIG_KEYBOARD_TCA8418 is not set
-# CONFIG_KEYBOARD_MATRIX is not set
-CONFIG_KEYBOARD_LM8323=m
-# CONFIG_KEYBOARD_LM8333 is not set
-CONFIG_KEYBOARD_MAX7359=m
-# CONFIG_KEYBOARD_MCS is not set
-# CONFIG_KEYBOARD_MPR121 is not set
-CONFIG_KEYBOARD_SNVS_PWRKEY=m
-CONFIG_KEYBOARD_IMX=m
-CONFIG_KEYBOARD_IMX_SC_KEY=m
-# CONFIG_KEYBOARD_NEWTON is not set
-CONFIG_KEYBOARD_TEGRA=m
-CONFIG_KEYBOARD_OPENCORES=m
-# CONFIG_KEYBOARD_SAMSUNG is not set
-CONFIG_KEYBOARD_STOWAWAY=m
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_SUN4I_LRADC is not set
-CONFIG_KEYBOARD_IQS62X=m
-# CONFIG_KEYBOARD_OMAP4 is not set
-# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-# CONFIG_KEYBOARD_CROS_EC is not set
-# CONFIG_KEYBOARD_CAP11XX is not set
-# CONFIG_KEYBOARD_BCM is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=y
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_BYD=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
-CONFIG_MOUSE_PS2_CYPRESS=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-CONFIG_MOUSE_PS2_ELANTECH=y
-CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
-CONFIG_MOUSE_PS2_SENTELIC=y
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-CONFIG_MOUSE_PS2_FOCALTECH=y
-CONFIG_MOUSE_PS2_SMBUS=y
-# CONFIG_MOUSE_SERIAL is not set
-# CONFIG_MOUSE_APPLETOUCH is not set
-# CONFIG_MOUSE_BCM5974 is not set
-# CONFIG_MOUSE_CYAPA is not set
-# CONFIG_MOUSE_ELAN_I2C is not set
-# CONFIG_MOUSE_VSXXXAA is not set
-# CONFIG_MOUSE_GPIO is not set
-CONFIG_MOUSE_SYNAPTICS_I2C=m
-CONFIG_MOUSE_SYNAPTICS_USB=m
-# CONFIG_INPUT_JOYSTICK is not set
-CONFIG_INPUT_TABLET=y
-CONFIG_TABLET_USB_ACECAD=m
-CONFIG_TABLET_USB_AIPTEK=m
-CONFIG_TABLET_USB_HANWANG=m
-CONFIG_TABLET_USB_KBTAB=m
-CONFIG_TABLET_USB_PEGASUS=m
-CONFIG_TABLET_SERIAL_WACOM4=m
-# CONFIG_INPUT_TOUCHSCREEN is not set
-CONFIG_INPUT_MISC=y
-# CONFIG_INPUT_AD714X is not set
-CONFIG_INPUT_ATC260X_ONKEY=m
-# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
-# CONFIG_INPUT_BMA150 is not set
-# CONFIG_INPUT_E3X0_BUTTON is not set
-CONFIG_INPUT_PM8941_PWRKEY=m
-# CONFIG_INPUT_PM8XXX_VIBRATOR is not set
-# CONFIG_INPUT_MMA8450 is not set
-# CONFIG_INPUT_GPIO_BEEPER is not set
-# CONFIG_INPUT_GPIO_DECODER is not set
-# CONFIG_INPUT_GPIO_VIBRA is not set
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-# CONFIG_INPUT_KXTJ9 is not set
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_CM109=m
-# CONFIG_INPUT_REGULATOR_HAPTIC is not set
-CONFIG_INPUT_AXP20X_PEK=m
-CONFIG_INPUT_UINPUT=m
-# CONFIG_INPUT_PCF8574 is not set
-# CONFIG_INPUT_PWM_BEEPER is not set
-# CONFIG_INPUT_PWM_VIBRA is not set
-# CONFIG_INPUT_RK805_PWRKEY is not set
-# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
-CONFIG_INPUT_DA7280_HAPTICS=m
-# CONFIG_INPUT_ADXL34X is not set
-# CONFIG_INPUT_IMS_PCU is not set
-CONFIG_INPUT_IQS269A=m
-CONFIG_INPUT_IQS626A=m
-# CONFIG_INPUT_CMA3000 is not set
-CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
-# CONFIG_INPUT_SOC_BUTTON_ARRAY is not set
-# CONFIG_INPUT_DRV260X_HAPTICS is not set
-# CONFIG_INPUT_DRV2665_HAPTICS is not set
-# CONFIG_INPUT_DRV2667_HAPTICS is not set
-CONFIG_INPUT_HISI_POWERKEY=m
-CONFIG_RMI4_CORE=m
-# CONFIG_RMI4_I2C is not set
-# CONFIG_RMI4_SPI is not set
-# CONFIG_RMI4_SMB is not set
-CONFIG_RMI4_F03=y
-CONFIG_RMI4_F03_SERIO=m
-CONFIG_RMI4_2D_SENSOR=y
-CONFIG_RMI4_F11=y
-CONFIG_RMI4_F12=y
-CONFIG_RMI4_F30=y
-# CONFIG_RMI4_F34 is not set
-CONFIG_RMI4_F3A=y
-# CONFIG_RMI4_F54 is not set
-# CONFIG_RMI4_F55 is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_SERPORT=y
-# CONFIG_SERIO_PARKBD is not set
-# CONFIG_SERIO_AMBAKMI is not set
-# CONFIG_SERIO_PCIPS2 is not set
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-CONFIG_SERIO_ALTERA_PS2=m
-# CONFIG_SERIO_PS2MULT is not set
-# CONFIG_SERIO_ARC_PS2 is not set
-# CONFIG_SERIO_APBPS2 is not set
-# CONFIG_SERIO_SUN4I_PS2 is not set
-# CONFIG_SERIO_GPIO_PS2 is not set
-# CONFIG_USERIO is not set
-# CONFIG_GAMEPORT is not set
-# end of Hardware I/O ports
-# end of Input device support
-
-#
-# Character devices
-#
-CONFIG_TTY=y
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_VT_CONSOLE_SLEEP=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_LDISC_AUTOLOAD=y
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_EARLYCON=y
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
-CONFIG_SERIAL_8250_PNP=y
-CONFIG_SERIAL_8250_16550A_VARIANTS=y
-# CONFIG_SERIAL_8250_FINTEK is not set
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_DMA=y
-CONFIG_SERIAL_8250_PCI=y
-CONFIG_SERIAL_8250_EXAR=y
-CONFIG_SERIAL_8250_NR_UARTS=4
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-CONFIG_SERIAL_8250_EXTENDED=y
-# CONFIG_SERIAL_8250_MANY_PORTS is not set
-# CONFIG_SERIAL_8250_ASPEED_VUART is not set
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-# CONFIG_SERIAL_8250_DETECT_IRQ is not set
-# CONFIG_SERIAL_8250_RSA is not set
-CONFIG_SERIAL_8250_DWLIB=y
-CONFIG_SERIAL_8250_BCM2835AUX=y
-CONFIG_SERIAL_8250_FSL=y
-CONFIG_SERIAL_8250_DW=y
-# CONFIG_SERIAL_8250_RT288X is not set
-CONFIG_SERIAL_8250_TEGRA=y
-CONFIG_SERIAL_OF_PLATFORM=y
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_AMBA_PL010=y
-CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
-CONFIG_SERIAL_AMBA_PL011=y
-CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
-# CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set
-CONFIG_SERIAL_MESON=y
-CONFIG_SERIAL_MESON_CONSOLE=y
-CONFIG_SERIAL_SAMSUNG=m
-CONFIG_SERIAL_SAMSUNG_UARTS_4=y
-CONFIG_SERIAL_SAMSUNG_UARTS=4
-CONFIG_SERIAL_TEGRA=y
-CONFIG_SERIAL_TEGRA_TCU=m
-# CONFIG_SERIAL_MAX3100 is not set
-# CONFIG_SERIAL_MAX310X is not set
-CONFIG_SERIAL_IMX=m
-CONFIG_SERIAL_IMX_CONSOLE=m
-CONFIG_SERIAL_IMX_EARLYCON=y
-# CONFIG_SERIAL_UARTLITE is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-CONFIG_SERIAL_MSM=y
-CONFIG_SERIAL_MSM_CONSOLE=y
-CONFIG_SERIAL_QCOM_GENI=m
-# CONFIG_SERIAL_QCOM_GENI_CONSOLE is not set
-# CONFIG_SERIAL_SIFIVE is not set
-# CONFIG_SERIAL_SCCNXP is not set
-# CONFIG_SERIAL_SC16IS7XX is not set
-# CONFIG_SERIAL_BCM63XX is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_XILINX_PS_UART is not set
-# CONFIG_SERIAL_ARC is not set
-CONFIG_SERIAL_RP2=m
-CONFIG_SERIAL_RP2_NR_UARTS=32
-# CONFIG_SERIAL_FSL_LPUART is not set
-# CONFIG_SERIAL_FSL_LINFLEXUART is not set
-# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
-# CONFIG_SERIAL_SPRD is not set
-CONFIG_SERIAL_MVEBU_UART=y
-CONFIG_SERIAL_MVEBU_CONSOLE=y
-# end of Serial drivers
-
-CONFIG_SERIAL_MCTRL_GPIO=y
-# CONFIG_SERIAL_NONSTANDARD is not set
-CONFIG_N_GSM=m
-CONFIG_NOZOMI=m
-CONFIG_NULL_TTY=m
-CONFIG_HVC_DRIVER=y
-CONFIG_HVC_IRQ=y
-CONFIG_HVC_XEN=y
-CONFIG_HVC_XEN_FRONTEND=y
-# CONFIG_HVC_DCC is not set
-CONFIG_SERIAL_DEV_BUS=m
-CONFIG_TTY_PRINTK=m
-CONFIG_TTY_PRINTK_LEVEL=6
-# CONFIG_PRINTER is not set
-# CONFIG_PPDEV is not set
-CONFIG_VIRTIO_CONSOLE=m
-CONFIG_IPMI_HANDLER=m
-CONFIG_IPMI_DMI_DECODE=y
-CONFIG_IPMI_PLAT_DATA=y
-# CONFIG_IPMI_PANIC_EVENT is not set
-CONFIG_IPMI_DEVICE_INTERFACE=m
-CONFIG_IPMI_SI=m
-CONFIG_IPMI_SSIF=m
-# CONFIG_IPMI_WATCHDOG is not set
-# CONFIG_IPMI_POWEROFF is not set
-CONFIG_IPMB_DEVICE_INTERFACE=m
-CONFIG_HW_RANDOM=m
-# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-CONFIG_HW_RANDOM_BA431=m
-CONFIG_HW_RANDOM_BCM2835=m
-CONFIG_HW_RANDOM_IPROC_RNG200=m
-# CONFIG_HW_RANDOM_OMAP is not set
-CONFIG_HW_RANDOM_VIRTIO=m
-CONFIG_HW_RANDOM_HISI=m
-CONFIG_HW_RANDOM_XGENE=m
-CONFIG_HW_RANDOM_MESON=m
-CONFIG_HW_RANDOM_CAVIUM=m
-CONFIG_HW_RANDOM_OPTEE=m
-CONFIG_HW_RANDOM_CCTRNG=m
-CONFIG_HW_RANDOM_XIPHERA=m
-# CONFIG_APPLICOM is not set
-CONFIG_DEVMEM=y
-# CONFIG_RAW_DRIVER is not set
-CONFIG_DEVPORT=y
-# CONFIG_TCG_TPM is not set
-# CONFIG_XILLYBUS is not set
-# end of Character devices
-
-# CONFIG_RANDOM_TRUST_CPU is not set
-# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_ACPI_I2C_OPREGION=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_MUX=m
-
-#
-# Multiplexer I2C Chip support
-#
-# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
-# CONFIG_I2C_MUX_GPIO is not set
-# CONFIG_I2C_MUX_GPMUX is not set
-# CONFIG_I2C_MUX_LTC4306 is not set
-# CONFIG_I2C_MUX_PCA9541 is not set
-# CONFIG_I2C_MUX_PCA954x is not set
-# CONFIG_I2C_MUX_PINCTRL is not set
-# CONFIG_I2C_MUX_REG is not set
-# CONFIG_I2C_DEMUX_PINCTRL is not set
-# CONFIG_I2C_MUX_MLXCPLD is not set
-# end of Multiplexer I2C Chip support
-
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_SMBUS=m
-CONFIG_I2C_ALGOBIT=m
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# PC SMBus host controller drivers
-#
-# CONFIG_I2C_ALI1535 is not set
-# CONFIG_I2C_ALI1563 is not set
-# CONFIG_I2C_ALI15X3 is not set
-# CONFIG_I2C_AMD756 is not set
-# CONFIG_I2C_AMD8111 is not set
-# CONFIG_I2C_AMD_MP2 is not set
-# CONFIG_I2C_HIX5HD2 is not set
-# CONFIG_I2C_I801 is not set
-CONFIG_I2C_ISCH=m
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_NVIDIA_GPU is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-
-#
-# ACPI drivers
-#
-# CONFIG_I2C_SCMI is not set
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-CONFIG_I2C_ALTERA=m
-CONFIG_I2C_BCM2835=m
-CONFIG_I2C_BRCMSTB=m
-# CONFIG_I2C_CADENCE is not set
-# CONFIG_I2C_CBUS_GPIO is not set
-CONFIG_I2C_DESIGNWARE_CORE=m
-# CONFIG_I2C_DESIGNWARE_SLAVE is not set
-CONFIG_I2C_DESIGNWARE_PLATFORM=m
-# CONFIG_I2C_DESIGNWARE_PCI is not set
-# CONFIG_I2C_EMEV2 is not set
-# CONFIG_I2C_GPIO is not set
-CONFIG_I2C_HISI=m
-CONFIG_I2C_IMX=m
-CONFIG_I2C_IMX_LPI2C=m
-CONFIG_I2C_MESON=m
-CONFIG_I2C_MV64XXX=m
-# CONFIG_I2C_NOMADIK is not set
-CONFIG_I2C_OCORES=m
-CONFIG_I2C_PCA_PLATFORM=m
-CONFIG_I2C_PXA=m
-# CONFIG_I2C_PXA_SLAVE is not set
-# CONFIG_I2C_QCOM_CCI is not set
-CONFIG_I2C_QCOM_GENI=m
-CONFIG_I2C_QUP=m
-CONFIG_I2C_RK3X=m
-CONFIG_I2C_SIMTEC=m
-CONFIG_I2C_SYNQUACER=m
-CONFIG_I2C_TEGRA=m
-CONFIG_I2C_TEGRA_BPMP=y
-# CONFIG_I2C_VERSATILE is not set
-CONFIG_I2C_THUNDERX=m
-# CONFIG_I2C_XILINX is not set
-CONFIG_I2C_XLP9XX=m
-
-#
-# External I2C/SMBus adapter drivers
-#
-CONFIG_I2C_DIOLAN_U2C=m
-CONFIG_I2C_CP2615=m
-# CONFIG_I2C_PARPORT is not set
-CONFIG_I2C_ROBOTFUZZ_OSIF=m
-CONFIG_I2C_TAOS_EVM=m
-CONFIG_I2C_TINY_USB=m
-CONFIG_I2C_VIPERBOARD=m
-
-#
-# Other I2C/SMBus bus drivers
-#
-CONFIG_I2C_CROS_EC_TUNNEL=m
-CONFIG_I2C_XGENE_SLIMPRO=m
-# end of I2C Hardware Bus support
-
-# CONFIG_I2C_STUB is not set
-CONFIG_I2C_SLAVE=y
-CONFIG_I2C_SLAVE_EEPROM=m
-# CONFIG_I2C_SLAVE_TESTUNIT is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# end of I2C support
-
-CONFIG_I3C=m
-CONFIG_CDNS_I3C_MASTER=m
-CONFIG_DW_I3C_MASTER=m
-CONFIG_SVC_I3C_MASTER=m
-# CONFIG_MIPI_I3C_HCI is not set
-CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-CONFIG_SPI_MEM=y
-
-#
-# SPI Master Controller Drivers
-#
-# CONFIG_SPI_ALTERA is not set
-CONFIG_SPI_ARMADA_3700=m
-# CONFIG_SPI_AXI_SPI_ENGINE is not set
-CONFIG_SPI_BCM2835=m
-CONFIG_SPI_BCM2835AUX=m
-CONFIG_SPI_BITBANG=m
-CONFIG_SPI_BUTTERFLY=m
-# CONFIG_SPI_CADENCE is not set
-# CONFIG_SPI_CADENCE_QUADSPI is not set
-# CONFIG_SPI_DESIGNWARE is not set
-CONFIG_SPI_FSL_LPSPI=m
-CONFIG_SPI_FSL_QUADSPI=m
-CONFIG_SPI_HISI_KUNPENG=m
-CONFIG_SPI_HISI_SFC_V3XX=m
-CONFIG_SPI_NXP_FLEXSPI=m
-# CONFIG_SPI_GPIO is not set
-CONFIG_SPI_IMX=m
-CONFIG_SPI_LM70_LLP=m
-# CONFIG_SPI_FSL_SPI is not set
-# CONFIG_SPI_MESON_SPICC is not set
-CONFIG_SPI_MESON_SPIFC=m
-# CONFIG_SPI_OC_TINY is not set
-# CONFIG_SPI_ORION is not set
-# CONFIG_SPI_PL022 is not set
-# CONFIG_SPI_PXA2XX is not set
-CONFIG_SPI_ROCKCHIP=m
-# CONFIG_SPI_QCOM_QSPI is not set
-CONFIG_SPI_QUP=m
-# CONFIG_SPI_QCOM_GENI is not set
-# CONFIG_SPI_SC18IS602 is not set
-# CONFIG_SPI_SIFIVE is not set
-# CONFIG_SPI_SUN4I is not set
-# CONFIG_SPI_SUN6I is not set
-CONFIG_SPI_SYNQUACER=m
-# CONFIG_SPI_MXIC is not set
-CONFIG_SPI_TEGRA210_QUAD=m
-CONFIG_SPI_TEGRA114=m
-CONFIG_SPI_TEGRA20_SFLASH=m
-CONFIG_SPI_TEGRA20_SLINK=m
-CONFIG_SPI_THUNDERX=m
-# CONFIG_SPI_XCOMM is not set
-# CONFIG_SPI_XILINX is not set
-CONFIG_SPI_XLP=m
-# CONFIG_SPI_ZYNQMP_GQSPI is not set
-CONFIG_SPI_AMD=m
-
-#
-# SPI Multiplexer support
-#
-CONFIG_SPI_MUX=m
-
-#
-# SPI Protocol Masters
-#
-# CONFIG_SPI_SPIDEV is not set
-# CONFIG_SPI_LOOPBACK_TEST is not set
-# CONFIG_SPI_TLE62X0 is not set
-# CONFIG_SPI_SLAVE is not set
-CONFIG_SPI_DYNAMIC=y
-CONFIG_SPMI=y
-CONFIG_SPMI_MSM_PMIC_ARB=y
-# CONFIG_HSI is not set
-CONFIG_PPS=y
-# CONFIG_PPS_DEBUG is not set
-
-#
-# PPS clients support
-#
-# CONFIG_PPS_CLIENT_KTIMER is not set
-CONFIG_PPS_CLIENT_LDISC=m
-CONFIG_PPS_CLIENT_PARPORT=m
-# CONFIG_PPS_CLIENT_GPIO is not set
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-CONFIG_PTP_1588_CLOCK=y
-CONFIG_PTP_1588_CLOCK_QORIQ=m
-
-#
-# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
-#
-CONFIG_PTP_1588_CLOCK_KVM=m
-CONFIG_PTP_1588_CLOCK_IDT82P33=m
-CONFIG_PTP_1588_CLOCK_IDTCM=m
-CONFIG_PTP_1588_CLOCK_OCP=m
-# end of PTP clock support
-
-CONFIG_PINCTRL=y
-CONFIG_GENERIC_PINCTRL_GROUPS=y
-CONFIG_PINMUX=y
-CONFIG_GENERIC_PINMUX_FUNCTIONS=y
-CONFIG_PINCONF=y
-CONFIG_GENERIC_PINCONF=y
-# CONFIG_DEBUG_PINCTRL is not set
-CONFIG_PINCTRL_AXP209=m
-CONFIG_PINCTRL_AMD=y
-CONFIG_PINCTRL_BM1880=y
-# CONFIG_PINCTRL_MCP23S08 is not set
-CONFIG_PINCTRL_ROCKCHIP=y
-CONFIG_PINCTRL_SINGLE=y
-# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_STMFX is not set
-CONFIG_PINCTRL_MAX77620=y
-# CONFIG_PINCTRL_RK805 is not set
-# CONFIG_PINCTRL_OCELOT is not set
-# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set
-CONFIG_PINCTRL_BCM2835=y
-CONFIG_PINCTRL_IMX=y
-CONFIG_PINCTRL_IMX_SCU=y
-CONFIG_PINCTRL_IMX8MM=y
-CONFIG_PINCTRL_IMX8MN=y
-CONFIG_PINCTRL_IMX8MP=y
-CONFIG_PINCTRL_IMX8MQ=y
-CONFIG_PINCTRL_IMX8QM=y
-CONFIG_PINCTRL_IMX8QXP=y
-CONFIG_PINCTRL_IMX8DXL=y
-CONFIG_PINCTRL_MVEBU=y
-CONFIG_PINCTRL_ARMADA_AP806=y
-CONFIG_PINCTRL_ARMADA_CP110=y
-CONFIG_PINCTRL_ARMADA_37XX=y
-CONFIG_PINCTRL_MSM=y
-# CONFIG_PINCTRL_APQ8064 is not set
-# CONFIG_PINCTRL_APQ8084 is not set
-# CONFIG_PINCTRL_IPQ4019 is not set
-# CONFIG_PINCTRL_IPQ8064 is not set
-# CONFIG_PINCTRL_IPQ8074 is not set
-# CONFIG_PINCTRL_IPQ6018 is not set
-CONFIG_PINCTRL_MSM8226=m
-# CONFIG_PINCTRL_MSM8660 is not set
-# CONFIG_PINCTRL_MSM8960 is not set
-# CONFIG_PINCTRL_MDM9615 is not set
-# CONFIG_PINCTRL_MSM8X74 is not set
-CONFIG_PINCTRL_MSM8916=y
-# CONFIG_PINCTRL_MSM8953 is not set
-# CONFIG_PINCTRL_MSM8976 is not set
-# CONFIG_PINCTRL_MSM8994 is not set
-CONFIG_PINCTRL_MSM8996=y
-# CONFIG_PINCTRL_MSM8998 is not set
-# CONFIG_PINCTRL_QCS404 is not set
-# CONFIG_PINCTRL_QDF2XXX is not set
-CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
-CONFIG_PINCTRL_QCOM_SSBI_PMIC=y
-# CONFIG_PINCTRL_SC7180 is not set
-# CONFIG_PINCTRL_SC7280 is not set
-# CONFIG_PINCTRL_SC8180X is not set
-# CONFIG_PINCTRL_SDM660 is not set
-# CONFIG_PINCTRL_SDM845 is not set
-# CONFIG_PINCTRL_SDX55 is not set
-CONFIG_PINCTRL_SM8150=m
-CONFIG_PINCTRL_SM8250=m
-# CONFIG_PINCTRL_SM8350 is not set
-# CONFIG_PINCTRL_LPASS_LPI is not set
-
-#
-# Renesas pinctrl drivers
-#
-# end of Renesas pinctrl drivers
-
-CONFIG_PINCTRL_SUNXI=y
-# CONFIG_PINCTRL_SUN4I_A10 is not set
-# CONFIG_PINCTRL_SUN5I is not set
-# CONFIG_PINCTRL_SUN6I_A31 is not set
-# CONFIG_PINCTRL_SUN6I_A31_R is not set
-# CONFIG_PINCTRL_SUN8I_A23 is not set
-# CONFIG_PINCTRL_SUN8I_A33 is not set
-# CONFIG_PINCTRL_SUN8I_A83T is not set
-# CONFIG_PINCTRL_SUN8I_A83T_R is not set
-# CONFIG_PINCTRL_SUN8I_A23_R is not set
-# CONFIG_PINCTRL_SUN8I_H3 is not set
-CONFIG_PINCTRL_SUN8I_H3_R=y
-# CONFIG_PINCTRL_SUN8I_V3S is not set
-# CONFIG_PINCTRL_SUN9I_A80 is not set
-# CONFIG_PINCTRL_SUN9I_A80_R is not set
-CONFIG_PINCTRL_SUN50I_A64=y
-CONFIG_PINCTRL_SUN50I_A64_R=y
-CONFIG_PINCTRL_SUN50I_A100=y
-CONFIG_PINCTRL_SUN50I_A100_R=y
-CONFIG_PINCTRL_SUN50I_H5=y
-CONFIG_PINCTRL_SUN50I_H6=y
-CONFIG_PINCTRL_SUN50I_H6_R=y
-CONFIG_PINCTRL_SUN50I_H616=y
-CONFIG_PINCTRL_SUN50I_H616_R=y
-CONFIG_PINCTRL_TEGRA=y
-CONFIG_PINCTRL_TEGRA124=y
-CONFIG_PINCTRL_TEGRA210=y
-CONFIG_PINCTRL_TEGRA194=y
-CONFIG_PINCTRL_TEGRA_XUSB=y
-CONFIG_PINCTRL_MESON=y
-CONFIG_PINCTRL_MESON_GXBB=y
-CONFIG_PINCTRL_MESON_GXL=y
-CONFIG_PINCTRL_MESON8_PMX=y
-CONFIG_PINCTRL_MESON_AXG=y
-CONFIG_PINCTRL_MESON_AXG_PMX=y
-CONFIG_PINCTRL_MESON_G12A=y
-CONFIG_PINCTRL_MESON_A1=y
-CONFIG_PINCTRL_MADERA=m
-CONFIG_PINCTRL_VISCONTI=y
-CONFIG_PINCTRL_TMPV7700=y
-CONFIG_GPIOLIB=y
-CONFIG_GPIOLIB_FASTPATH_LIMIT=512
-CONFIG_OF_GPIO=y
-CONFIG_GPIO_ACPI=y
-CONFIG_GPIOLIB_IRQCHIP=y
-# CONFIG_DEBUG_GPIO is not set
-CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_CDEV=y
-CONFIG_GPIO_CDEV_V1=y
-CONFIG_GPIO_GENERIC=y
-
-#
-# Memory mapped GPIO drivers
-#
-# CONFIG_GPIO_74XX_MMIO is not set
-# CONFIG_GPIO_ALTERA is not set
-# CONFIG_GPIO_AMDPT is not set
-CONFIG_GPIO_RASPBERRYPI_EXP=m
-CONFIG_GPIO_CADENCE=m
-# CONFIG_GPIO_DWAPB is not set
-# CONFIG_GPIO_EXAR is not set
-# CONFIG_GPIO_FTGPIO010 is not set
-CONFIG_GPIO_GENERIC_PLATFORM=y
-# CONFIG_GPIO_GRGPIO is not set
-CONFIG_GPIO_HISI=m
-# CONFIG_GPIO_HLWD is not set
-CONFIG_GPIO_LOGICVC=m
-CONFIG_GPIO_MB86S7X=m
-CONFIG_GPIO_MVEBU=y
-CONFIG_GPIO_MXC=y
-CONFIG_GPIO_PL061=y
-# CONFIG_GPIO_SAMA5D2_PIOBU is not set
-CONFIG_GPIO_SIFIVE=y
-# CONFIG_GPIO_SYSCON is not set
-CONFIG_GPIO_TEGRA=y
-CONFIG_GPIO_TEGRA186=y
-# CONFIG_GPIO_THUNDERX is not set
-CONFIG_GPIO_VISCONTI=m
-CONFIG_GPIO_XGENE=y
-CONFIG_GPIO_XGENE_SB=m
-CONFIG_GPIO_XILINX=m
-CONFIG_GPIO_XLP=y
-# CONFIG_GPIO_AMD_FCH is not set
-# end of Memory mapped GPIO drivers
-
-#
-# I2C GPIO expanders
-#
-# CONFIG_GPIO_ADP5588 is not set
-# CONFIG_GPIO_ADNP is not set
-# CONFIG_GPIO_GW_PLD is not set
-# CONFIG_GPIO_MAX7300 is not set
-# CONFIG_GPIO_MAX732X is not set
-CONFIG_GPIO_PCA953X=y
-CONFIG_GPIO_PCA953X_IRQ=y
-CONFIG_GPIO_PCA9570=m
-# CONFIG_GPIO_PCF857X is not set
-# CONFIG_GPIO_TPIC2810 is not set
-# end of I2C GPIO expanders
-
-#
-# MFD GPIO expanders
-#
-CONFIG_GPIO_BD70528=m
-CONFIG_GPIO_BD71815=m
-CONFIG_GPIO_BD71828=m
-CONFIG_GPIO_MADERA=m
-CONFIG_GPIO_MAX77620=y
-CONFIG_GPIO_WM8994=m
-# end of MFD GPIO expanders
-
-#
-# PCI GPIO expanders
-#
-# CONFIG_GPIO_PCI_IDIO_16 is not set
-# CONFIG_GPIO_PCIE_IDIO_24 is not set
-# CONFIG_GPIO_RDC321X is not set
-# end of PCI GPIO expanders
-
-#
-# SPI GPIO expanders
-#
-# CONFIG_GPIO_74X164 is not set
-# CONFIG_GPIO_MAX3191X is not set
-# CONFIG_GPIO_MAX7301 is not set
-# CONFIG_GPIO_MC33880 is not set
-# CONFIG_GPIO_PISOSR is not set
-# CONFIG_GPIO_XRA1403 is not set
-CONFIG_GPIO_MOXTET=m
-# end of SPI GPIO expanders
-
-#
-# USB GPIO expanders
-#
-CONFIG_GPIO_VIPERBOARD=m
-# end of USB GPIO expanders
-
-#
-# Virtual GPIO drivers
-#
-CONFIG_GPIO_AGGREGATOR=m
-# CONFIG_GPIO_MOCKUP is not set
-# end of Virtual GPIO drivers
-
-CONFIG_W1=m
-CONFIG_W1_CON=y
-
-#
-# 1-wire Bus Masters
-#
-# CONFIG_W1_MASTER_MATROX is not set
-CONFIG_W1_MASTER_DS2490=m
-CONFIG_W1_MASTER_DS2482=m
-CONFIG_W1_MASTER_MXC=m
-# CONFIG_W1_MASTER_DS1WM is not set
-CONFIG_W1_MASTER_GPIO=m
-# CONFIG_W1_MASTER_SGI is not set
-# end of 1-wire Bus Masters
-
-#
-# 1-wire Slaves
-#
-CONFIG_W1_SLAVE_THERM=m
-CONFIG_W1_SLAVE_SMEM=m
-CONFIG_W1_SLAVE_DS2405=m
-CONFIG_W1_SLAVE_DS2408=m
-CONFIG_W1_SLAVE_DS2408_READBACK=y
-CONFIG_W1_SLAVE_DS2413=m
-CONFIG_W1_SLAVE_DS2406=m
-CONFIG_W1_SLAVE_DS2423=m
-CONFIG_W1_SLAVE_DS2805=m
-CONFIG_W1_SLAVE_DS2430=m
-CONFIG_W1_SLAVE_DS2431=m
-CONFIG_W1_SLAVE_DS2433=m
-# CONFIG_W1_SLAVE_DS2433_CRC is not set
-CONFIG_W1_SLAVE_DS2438=m
-# CONFIG_W1_SLAVE_DS250X is not set
-CONFIG_W1_SLAVE_DS2780=m
-CONFIG_W1_SLAVE_DS2781=m
-CONFIG_W1_SLAVE_DS28E04=m
-CONFIG_W1_SLAVE_DS28E17=m
-# end of 1-wire Slaves
-
-CONFIG_POWER_RESET=y
-CONFIG_POWER_RESET_ATC260X=m
-# CONFIG_POWER_RESET_BRCMSTB is not set
-# CONFIG_POWER_RESET_GPIO is not set
-# CONFIG_POWER_RESET_GPIO_RESTART is not set
-CONFIG_POWER_RESET_HISI=y
-# CONFIG_POWER_RESET_LINKSTATION is not set
-CONFIG_POWER_RESET_MSM=y
-CONFIG_POWER_RESET_QCOM_PON=m
-# CONFIG_POWER_RESET_LTC2952 is not set
-CONFIG_POWER_RESET_REGULATOR=y
-# CONFIG_POWER_RESET_RESTART is not set
-CONFIG_POWER_RESET_VEXPRESS=y
-CONFIG_POWER_RESET_XGENE=y
-CONFIG_POWER_RESET_SYSCON=y
-CONFIG_POWER_RESET_SYSCON_POWEROFF=y
-CONFIG_REBOOT_MODE=m
-# CONFIG_SYSCON_REBOOT_MODE is not set
-CONFIG_NVMEM_REBOOT_MODE=m
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-CONFIG_POWER_SUPPLY_HWMON=y
-# CONFIG_PDA_POWER is not set
-# CONFIG_GENERIC_ADC_BATTERY is not set
-# CONFIG_TEST_POWER is not set
-CONFIG_CHARGER_ADP5061=m
-CONFIG_BATTERY_CW2015=m
-# CONFIG_BATTERY_DS2760 is not set
-# CONFIG_BATTERY_DS2780 is not set
-# CONFIG_BATTERY_DS2781 is not set
-# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_SBS is not set
-# CONFIG_CHARGER_SBS is not set
-# CONFIG_MANAGER_SBS is not set
-CONFIG_BATTERY_BQ27XXX=m
-# CONFIG_BATTERY_BQ27XXX_I2C is not set
-CONFIG_BATTERY_BQ27XXX_HDQ=m
-CONFIG_CHARGER_AXP20X=m
-CONFIG_BATTERY_AXP20X=m
-CONFIG_AXP20X_POWER=m
-CONFIG_AXP288_FUEL_GAUGE=m
-# CONFIG_BATTERY_MAX17040 is not set
-# CONFIG_BATTERY_MAX17042 is not set
-# CONFIG_BATTERY_MAX1721X is not set
-# CONFIG_CHARGER_ISP1704 is not set
-# CONFIG_CHARGER_MAX8903 is not set
-# CONFIG_CHARGER_LP8727 is not set
-CONFIG_CHARGER_GPIO=m
-# CONFIG_CHARGER_MANAGER is not set
-# CONFIG_CHARGER_LT3651 is not set
-# CONFIG_CHARGER_LTC4162L is not set
-# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
-CONFIG_CHARGER_QCOM_SMBB=m
-# CONFIG_CHARGER_BQ2415X is not set
-# CONFIG_CHARGER_BQ24190 is not set
-# CONFIG_CHARGER_BQ24257 is not set
-# CONFIG_CHARGER_BQ24735 is not set
-# CONFIG_CHARGER_BQ2515X is not set
-# CONFIG_CHARGER_BQ25890 is not set
-# CONFIG_CHARGER_BQ25980 is not set
-# CONFIG_CHARGER_BQ256XX is not set
-# CONFIG_CHARGER_SMB347 is not set
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
-CONFIG_BATTERY_GOLDFISH=m
-# CONFIG_CHARGER_RT9455 is not set
-CONFIG_CHARGER_CROS_USBPD=m
-# CONFIG_CHARGER_UCS1002 is not set
-# CONFIG_CHARGER_BD70528 is not set
-CONFIG_CHARGER_BD99954=m
-CONFIG_HWMON=y
-CONFIG_HWMON_VID=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-# CONFIG_SENSORS_AD7314 is not set
-CONFIG_SENSORS_AD7414=m
-CONFIG_SENSORS_AD7418=m
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-CONFIG_SENSORS_ADM1029=m
-# CONFIG_SENSORS_ADM1031 is not set
-CONFIG_SENSORS_ADM1177=m
-CONFIG_SENSORS_ADM9240=m
-# CONFIG_SENSORS_ADT7310 is not set
-# CONFIG_SENSORS_ADT7410 is not set
-CONFIG_SENSORS_ADT7411=m
-CONFIG_SENSORS_ADT7462=m
-CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7475=m
-CONFIG_SENSORS_AHT10=m
-# CONFIG_SENSORS_AS370 is not set
-CONFIG_SENSORS_ASC7621=m
-CONFIG_SENSORS_AXI_FAN_CONTROL=m
-CONFIG_SENSORS_ARM_SCMI=m
-# CONFIG_SENSORS_ASPEED is not set
-CONFIG_SENSORS_ATXP1=m
-CONFIG_SENSORS_CORSAIR_CPRO=m
-CONFIG_SENSORS_CORSAIR_PSU=m
-CONFIG_SENSORS_DRIVETEMP=m
-CONFIG_SENSORS_DS620=m
-# CONFIG_SENSORS_DS1621 is not set
-CONFIG_SENSORS_I5K_AMB=m
-# CONFIG_SENSORS_F71805F is not set
-CONFIG_SENSORS_F71882FG=m
-CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_FTSTEUTATES=m
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-CONFIG_SENSORS_G760A=m
-# CONFIG_SENSORS_G762 is not set
-# CONFIG_SENSORS_GPIO_FAN is not set
-# CONFIG_SENSORS_HIH6130 is not set
-CONFIG_SENSORS_IBMAEM=m
-CONFIG_SENSORS_IBMPEX=m
-# CONFIG_SENSORS_IIO_HWMON is not set
-# CONFIG_SENSORS_IT87 is not set
-CONFIG_SENSORS_JC42=m
-# CONFIG_SENSORS_POWR1220 is not set
-CONFIG_SENSORS_LINEAGE=m
-# CONFIG_SENSORS_LTC2945 is not set
-CONFIG_SENSORS_LTC2947=m
-CONFIG_SENSORS_LTC2947_I2C=m
-CONFIG_SENSORS_LTC2947_SPI=m
-# CONFIG_SENSORS_LTC2990 is not set
-# CONFIG_SENSORS_LTC2992 is not set
-CONFIG_SENSORS_LTC4151=m
-CONFIG_SENSORS_LTC4215=m
-# CONFIG_SENSORS_LTC4222 is not set
-CONFIG_SENSORS_LTC4245=m
-# CONFIG_SENSORS_LTC4260 is not set
-CONFIG_SENSORS_LTC4261=m
-CONFIG_SENSORS_MAX1111=m
-CONFIG_SENSORS_MAX127=m
-CONFIG_SENSORS_MAX16065=m
-# CONFIG_SENSORS_MAX1619 is not set
-CONFIG_SENSORS_MAX1668=m
-# CONFIG_SENSORS_MAX197 is not set
-# CONFIG_SENSORS_MAX31722 is not set
-CONFIG_SENSORS_MAX31730=m
-# CONFIG_SENSORS_MAX6621 is not set
-CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
-CONFIG_SENSORS_MAX6650=m
-# CONFIG_SENSORS_MAX6697 is not set
-# CONFIG_SENSORS_MAX31790 is not set
-# CONFIG_SENSORS_MCP3021 is not set
-# CONFIG_SENSORS_TC654 is not set
-CONFIG_SENSORS_TPS23861=m
-# CONFIG_SENSORS_MR75203 is not set
-CONFIG_SENSORS_ADCXX=m
-# CONFIG_SENSORS_LM63 is not set
-CONFIG_SENSORS_LM70=m
-CONFIG_SENSORS_LM73=m
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-CONFIG_SENSORS_LM93=m
-# CONFIG_SENSORS_LM95234 is not set
-CONFIG_SENSORS_LM95241=m
-CONFIG_SENSORS_LM95245=m
-# CONFIG_SENSORS_PC87360 is not set
-CONFIG_SENSORS_PC87427=m
-CONFIG_SENSORS_NTC_THERMISTOR=m
-CONFIG_SENSORS_NCT6683=m
-CONFIG_SENSORS_NCT6775=m
-# CONFIG_SENSORS_NCT7802 is not set
-# CONFIG_SENSORS_NCT7904 is not set
-# CONFIG_SENSORS_NPCM7XX is not set
-CONFIG_SENSORS_NZXT_KRAKEN2=m
-# CONFIG_SENSORS_OCC_P8_I2C is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_PMBUS is not set
-# CONFIG_SENSORS_PWM_FAN is not set
-CONFIG_SENSORS_RASPBERRYPI_HWMON=m
-CONFIG_SENSORS_SBTSI=m
-# CONFIG_SENSORS_SHT15 is not set
-CONFIG_SENSORS_SHT21=m
-# CONFIG_SENSORS_SHT3x is not set
-# CONFIG_SENSORS_SHTC1 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-CONFIG_SENSORS_DME1737=m
-CONFIG_SENSORS_EMC1403=m
-CONFIG_SENSORS_EMC2103=m
-CONFIG_SENSORS_EMC6W201=m
-# CONFIG_SENSORS_SMSC47M1 is not set
-CONFIG_SENSORS_SMSC47M192=m
-# CONFIG_SENSORS_SMSC47B397 is not set
-CONFIG_SENSORS_SCH56XX_COMMON=m
-CONFIG_SENSORS_SCH5627=m
-# CONFIG_SENSORS_SCH5636 is not set
-# CONFIG_SENSORS_STTS751 is not set
-CONFIG_SENSORS_SMM665=m
-# CONFIG_SENSORS_ADC128D818 is not set
-CONFIG_SENSORS_ADS7828=m
-CONFIG_SENSORS_ADS7871=m
-CONFIG_SENSORS_AMC6821=m
-# CONFIG_SENSORS_INA209 is not set
-# CONFIG_SENSORS_INA2XX is not set
-# CONFIG_SENSORS_INA3221 is not set
-# CONFIG_SENSORS_TC74 is not set
-CONFIG_SENSORS_THMC50=m
-CONFIG_SENSORS_TMP102=m
-# CONFIG_SENSORS_TMP103 is not set
-# CONFIG_SENSORS_TMP108 is not set
-CONFIG_SENSORS_TMP401=m
-CONFIG_SENSORS_TMP421=m
-CONFIG_SENSORS_TMP513=m
-# CONFIG_SENSORS_VEXPRESS is not set
-# CONFIG_SENSORS_VIA686A is not set
-CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_VT8231=m
-# CONFIG_SENSORS_W83773G is not set
-# CONFIG_SENSORS_W83781D is not set
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83795=m
-# CONFIG_SENSORS_W83795_FANCTRL is not set
-# CONFIG_SENSORS_W83L785TS is not set
-CONFIG_SENSORS_W83L786NG=m
-# CONFIG_SENSORS_W83627HF is not set
-CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_XGENE=m
-
-#
-# ACPI drivers
-#
-# CONFIG_SENSORS_ACPI_POWER is not set
-CONFIG_THERMAL=y
-CONFIG_THERMAL_NETLINK=y
-# CONFIG_THERMAL_STATISTICS is not set
-CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
-CONFIG_THERMAL_HWMON=y
-CONFIG_THERMAL_OF=y
-# CONFIG_THERMAL_WRITABLE_TRIPS is not set
-CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
-# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
-# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
-CONFIG_THERMAL_GOV_FAIR_SHARE=y
-CONFIG_THERMAL_GOV_STEP_WISE=y
-# CONFIG_THERMAL_GOV_BANG_BANG is not set
-# CONFIG_THERMAL_GOV_USER_SPACE is not set
-# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
-CONFIG_CPU_THERMAL=y
-CONFIG_CPU_FREQ_THERMAL=y
-# CONFIG_DEVFREQ_THERMAL is not set
-# CONFIG_THERMAL_EMULATION is not set
-# CONFIG_THERMAL_MMIO is not set
-CONFIG_HISI_THERMAL=m
-CONFIG_IMX_THERMAL=m
-CONFIG_IMX_SC_THERMAL=m
-CONFIG_IMX8MM_THERMAL=m
-# CONFIG_MAX77620_THERMAL is not set
-# CONFIG_QORIQ_THERMAL is not set
-CONFIG_SUN8I_THERMAL=m
-CONFIG_ROCKCHIP_THERMAL=m
-CONFIG_ARMADA_THERMAL=m
-CONFIG_AMLOGIC_THERMAL=y
-
-#
-# Broadcom thermal drivers
-#
-CONFIG_BCM2711_THERMAL=m
-CONFIG_BCM2835_THERMAL=m
-# end of Broadcom thermal drivers
-
-#
-# NVIDIA Tegra thermal drivers
-#
-CONFIG_TEGRA_SOCTHERM=y
-# CONFIG_TEGRA_BPMP_THERMAL is not set
-# end of NVIDIA Tegra thermal drivers
-
-# CONFIG_GENERIC_ADC_THERMAL is not set
-
-#
-# Qualcomm thermal drivers
-#
-CONFIG_QCOM_TSENS=m
-CONFIG_QCOM_SPMI_ADC_TM5=m
-CONFIG_QCOM_SPMI_TEMP_ALARM=m
-# end of Qualcomm thermal drivers
-
-CONFIG_KHADAS_MCU_FAN_THERMAL=m
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_CORE=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
-CONFIG_WATCHDOG_OPEN_TIMEOUT=0
-CONFIG_WATCHDOG_SYSFS=y
-
-#
-# Watchdog Pretimeout Governors
-#
-# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set
-
-#
-# Watchdog Device Drivers
-#
-CONFIG_SOFT_WATCHDOG=m
-CONFIG_BD70528_WATCHDOG=m
-CONFIG_BD957XMUF_WATCHDOG=m
-CONFIG_GPIO_WATCHDOG=m
-# CONFIG_WDAT_WDT is not set
-# CONFIG_XILINX_WATCHDOG is not set
-# CONFIG_ZIIRAVE_WATCHDOG is not set
-CONFIG_ARM_SP805_WATCHDOG=m
-CONFIG_ARM_SBSA_WATCHDOG=m
-# CONFIG_ARMADA_37XX_WATCHDOG is not set
-# CONFIG_CADENCE_WATCHDOG is not set
-CONFIG_DW_WATCHDOG=m
-CONFIG_SUNXI_WATCHDOG=m
-# CONFIG_MAX63XX_WATCHDOG is not set
-# CONFIG_MAX77620_WATCHDOG is not set
-CONFIG_IMX2_WDT=m
-CONFIG_IMX_SC_WDT=m
-CONFIG_IMX7ULP_WDT=m
-CONFIG_TEGRA_WATCHDOG=m
-CONFIG_QCOM_WDT=m
-CONFIG_MESON_GXBB_WATCHDOG=m
-CONFIG_MESON_WATCHDOG=m
-CONFIG_ARM_SMC_WATCHDOG=m
-CONFIG_PM8916_WATCHDOG=m
-CONFIG_VISCONTI_WATCHDOG=m
-# CONFIG_ALIM7101_WDT is not set
-# CONFIG_I6300ESB_WDT is not set
-CONFIG_BCM2835_WDT=m
-# CONFIG_MEN_A21_WDT is not set
-CONFIG_XEN_WDT=m
-
-#
-# PCI-based Watchdog Cards
-#
-# CONFIG_PCIPCWATCHDOG is not set
-# CONFIG_WDTPCI is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-# CONFIG_KEEMBAY_WATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-CONFIG_SSB=m
-CONFIG_SSB_SPROM=y
-CONFIG_SSB_BLOCKIO=y
-CONFIG_SSB_PCIHOST_POSSIBLE=y
-CONFIG_SSB_PCIHOST=y
-CONFIG_SSB_B43_PCI_BRIDGE=y
-CONFIG_SSB_SDIOHOST_POSSIBLE=y
-CONFIG_SSB_SDIOHOST=y
-CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
-CONFIG_SSB_DRIVER_PCICORE=y
-# CONFIG_SSB_DRIVER_GPIO is not set
-CONFIG_BCMA_POSSIBLE=y
-CONFIG_BCMA=m
-CONFIG_BCMA_BLOCKIO=y
-CONFIG_BCMA_HOST_PCI_POSSIBLE=y
-CONFIG_BCMA_HOST_PCI=y
-# CONFIG_BCMA_HOST_SOC is not set
-CONFIG_BCMA_DRIVER_PCI=y
-# CONFIG_BCMA_DRIVER_GMAC_CMN is not set
-# CONFIG_BCMA_DRIVER_GPIO is not set
-# CONFIG_BCMA_DEBUG is not set
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=y
-# CONFIG_MFD_ALTERA_A10SR is not set
-CONFIG_MFD_ALTERA_SYSMGR=y
-# CONFIG_MFD_ACT8945A is not set
-# CONFIG_MFD_SUN4I_GPADC is not set
-# CONFIG_MFD_AS3711 is not set
-# CONFIG_MFD_AS3722 is not set
-# CONFIG_PMIC_ADP5520 is not set
-# CONFIG_MFD_AAT2870_CORE is not set
-# CONFIG_MFD_ATMEL_FLEXCOM is not set
-# CONFIG_MFD_ATMEL_HLCDC is not set
-# CONFIG_MFD_BCM590XX is not set
-# CONFIG_MFD_BD9571MWV is not set
-# CONFIG_MFD_AC100 is not set
-CONFIG_MFD_AXP20X=m
-# CONFIG_MFD_AXP20X_I2C is not set
-CONFIG_MFD_AXP20X_RSB=m
-CONFIG_MFD_CROS_EC_DEV=y
-CONFIG_MFD_MADERA=m
-CONFIG_MFD_MADERA_I2C=m
-CONFIG_MFD_MADERA_SPI=m
-# CONFIG_MFD_CS47L15 is not set
-# CONFIG_MFD_CS47L35 is not set
-# CONFIG_MFD_CS47L85 is not set
-# CONFIG_MFD_CS47L90 is not set
-# CONFIG_MFD_CS47L92 is not set
-# CONFIG_PMIC_DA903X is not set
-# CONFIG_MFD_DA9052_SPI is not set
-# CONFIG_MFD_DA9052_I2C is not set
-# CONFIG_MFD_DA9055 is not set
-# CONFIG_MFD_DA9062 is not set
-# CONFIG_MFD_DA9063 is not set
-# CONFIG_MFD_DA9150 is not set
-# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_GATEWORKS_GSC is not set
-# CONFIG_MFD_MC13XXX_SPI is not set
-# CONFIG_MFD_MC13XXX_I2C is not set
-CONFIG_MFD_MP2629=m
-# CONFIG_MFD_HI6421_PMIC is not set
-CONFIG_MFD_HI655X_PMIC=m
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_HTC_I2CPLD is not set
-# CONFIG_LPC_ICH is not set
-CONFIG_LPC_SCH=m
-# CONFIG_MFD_INTEL_PMT is not set
-CONFIG_MFD_IQS62X=m
-# CONFIG_MFD_JANZ_CMODIO is not set
-# CONFIG_MFD_KEMPLD is not set
-# CONFIG_MFD_88PM800 is not set
-# CONFIG_MFD_88PM805 is not set
-# CONFIG_MFD_88PM860X is not set
-# CONFIG_MFD_MAX14577 is not set
-CONFIG_MFD_MAX77620=y
-# CONFIG_MFD_MAX77650 is not set
-# CONFIG_MFD_MAX77686 is not set
-# CONFIG_MFD_MAX77693 is not set
-# CONFIG_MFD_MAX77843 is not set
-# CONFIG_MFD_MAX8907 is not set
-# CONFIG_MFD_MAX8925 is not set
-# CONFIG_MFD_MAX8997 is not set
-# CONFIG_MFD_MAX8998 is not set
-CONFIG_MFD_MT6360=m
-# CONFIG_MFD_MT6397 is not set
-# CONFIG_MFD_MENF21BMC is not set
-# CONFIG_EZX_PCAP is not set
-# CONFIG_MFD_CPCAP is not set
-CONFIG_MFD_VIPERBOARD=m
-CONFIG_MFD_NTXEC=m
-# CONFIG_MFD_RETU is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_UCB1400_CORE is not set
-CONFIG_MFD_QCOM_RPM=m
-CONFIG_MFD_SPMI_PMIC=m
-# CONFIG_MFD_RDC321X is not set
-# CONFIG_MFD_RT5033 is not set
-# CONFIG_MFD_RC5T583 is not set
-CONFIG_MFD_RK808=m
-# CONFIG_MFD_RN5T618 is not set
-# CONFIG_MFD_SEC_CORE is not set
-# CONFIG_MFD_SI476X_CORE is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_MFD_SKY81452 is not set
-# CONFIG_MFD_STMPE is not set
-CONFIG_MFD_SUN6I_PRCM=y
-CONFIG_MFD_SYSCON=y
-# CONFIG_MFD_TI_AM335X_TSCADC is not set
-# CONFIG_MFD_LP3943 is not set
-# CONFIG_MFD_LP8788 is not set
-# CONFIG_MFD_TI_LMU is not set
-# CONFIG_MFD_PALMAS is not set
-# CONFIG_TPS6105X is not set
-# CONFIG_TPS65010 is not set
-# CONFIG_TPS6507X is not set
-# CONFIG_MFD_TPS65086 is not set
-# CONFIG_MFD_TPS65090 is not set
-# CONFIG_MFD_TPS65217 is not set
-# CONFIG_MFD_TI_LP873X is not set
-# CONFIG_MFD_TI_LP87565 is not set
-# CONFIG_MFD_TPS65218 is not set
-# CONFIG_MFD_TPS6586X is not set
-# CONFIG_MFD_TPS65910 is not set
-# CONFIG_MFD_TPS65912_I2C is not set
-# CONFIG_MFD_TPS65912_SPI is not set
-# CONFIG_MFD_TPS80031 is not set
-# CONFIG_TWL4030_CORE is not set
-# CONFIG_TWL6040_CORE is not set
-# CONFIG_MFD_WL1273_CORE is not set
-# CONFIG_MFD_LM3533 is not set
-# CONFIG_MFD_TC3589X is not set
-# CONFIG_MFD_TQMX86 is not set
-# CONFIG_MFD_VX855 is not set
-# CONFIG_MFD_LOCHNAGAR is not set
-# CONFIG_MFD_ARIZONA_I2C is not set
-# CONFIG_MFD_ARIZONA_SPI is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X_I2C is not set
-# CONFIG_MFD_WM831X_SPI is not set
-# CONFIG_MFD_WM8350_I2C is not set
-CONFIG_MFD_WM8994=m
-CONFIG_MFD_ROHM_BD718XX=m
-CONFIG_MFD_ROHM_BD70528=m
-CONFIG_MFD_ROHM_BD71828=m
-CONFIG_MFD_ROHM_BD957XMUF=m
-# CONFIG_MFD_STPMIC1 is not set
-# CONFIG_MFD_STMFX is not set
-CONFIG_MFD_ATC260X=m
-CONFIG_MFD_ATC260X_I2C=m
-CONFIG_MFD_KHADAS_MCU=m
-CONFIG_MFD_VEXPRESS_SYSREG=y
-# CONFIG_RAVE_SP_CORE is not set
-# CONFIG_MFD_INTEL_M10_BMC is not set
-# end of Multifunction device drivers
-
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_FIXED_VOLTAGE=m
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
-# CONFIG_REGULATOR_88PG86X is not set
-# CONFIG_REGULATOR_ACT8865 is not set
-# CONFIG_REGULATOR_AD5398 is not set
-# CONFIG_REGULATOR_ANATOP is not set
-CONFIG_REGULATOR_ARIZONA_LDO1=m
-CONFIG_REGULATOR_ARIZONA_MICSUPP=m
-CONFIG_REGULATOR_ARM_SCMI=m
-CONFIG_REGULATOR_ATC260X=m
-CONFIG_REGULATOR_AXP20X=m
-CONFIG_REGULATOR_BD70528=m
-CONFIG_REGULATOR_BD71815=m
-CONFIG_REGULATOR_BD71828=m
-CONFIG_REGULATOR_BD718XX=m
-CONFIG_REGULATOR_BD957XMUF=m
-CONFIG_REGULATOR_CROS_EC=m
-CONFIG_REGULATOR_DA9121=m
-# CONFIG_REGULATOR_DA9210 is not set
-# CONFIG_REGULATOR_DA9211 is not set
-CONFIG_REGULATOR_FAN53555=m
-CONFIG_REGULATOR_FAN53880=m
-CONFIG_REGULATOR_GPIO=m
-CONFIG_REGULATOR_HI655X=m
-CONFIG_REGULATOR_HI6421V600=m
-# CONFIG_REGULATOR_ISL9305 is not set
-# CONFIG_REGULATOR_ISL6271A is not set
-# CONFIG_REGULATOR_LP3971 is not set
-# CONFIG_REGULATOR_LP3972 is not set
-# CONFIG_REGULATOR_LP872X is not set
-# CONFIG_REGULATOR_LP8755 is not set
-# CONFIG_REGULATOR_LTC3589 is not set
-# CONFIG_REGULATOR_LTC3676 is not set
-# CONFIG_REGULATOR_MAX1586 is not set
-CONFIG_REGULATOR_MAX77620=m
-# CONFIG_REGULATOR_MAX8649 is not set
-# CONFIG_REGULATOR_MAX8660 is not set
-# CONFIG_REGULATOR_MAX8952 is not set
-# CONFIG_REGULATOR_MAX8973 is not set
-# CONFIG_REGULATOR_MAX77826 is not set
-# CONFIG_REGULATOR_MCP16502 is not set
-CONFIG_REGULATOR_MP5416=m
-CONFIG_REGULATOR_MP8859=m
-CONFIG_REGULATOR_MP886X=m
-CONFIG_REGULATOR_MPQ7920=m
-# CONFIG_REGULATOR_MT6311 is not set
-# CONFIG_REGULATOR_MT6315 is not set
-CONFIG_REGULATOR_MT6360=m
-CONFIG_REGULATOR_PCA9450=m
-CONFIG_REGULATOR_PF8X00=m
-# CONFIG_REGULATOR_PFUZE100 is not set
-# CONFIG_REGULATOR_PV88060 is not set
-# CONFIG_REGULATOR_PV88080 is not set
-# CONFIG_REGULATOR_PV88090 is not set
-CONFIG_REGULATOR_PWM=m
-CONFIG_REGULATOR_QCOM_RPM=m
-CONFIG_REGULATOR_QCOM_SMD_RPM=m
-CONFIG_REGULATOR_QCOM_SPMI=m
-CONFIG_REGULATOR_QCOM_USB_VBUS=m
-CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
-CONFIG_REGULATOR_RK808=m
-CONFIG_REGULATOR_ROHM=m
-CONFIG_REGULATOR_RT4801=m
-CONFIG_REGULATOR_RTMV20=m
-CONFIG_REGULATOR_SLG51000=m
-CONFIG_REGULATOR_SY8106A=m
-CONFIG_REGULATOR_SY8824X=m
-CONFIG_REGULATOR_SY8827N=m
-# CONFIG_REGULATOR_TPS51632 is not set
-# CONFIG_REGULATOR_TPS62360 is not set
-# CONFIG_REGULATOR_TPS65023 is not set
-# CONFIG_REGULATOR_TPS6507X is not set
-# CONFIG_REGULATOR_TPS65132 is not set
-# CONFIG_REGULATOR_TPS6524X is not set
-# CONFIG_REGULATOR_VCTRL is not set
-# CONFIG_REGULATOR_VEXPRESS is not set
-# CONFIG_REGULATOR_VQMMC_IPQ4019 is not set
-CONFIG_REGULATOR_WM8994=m
-CONFIG_REGULATOR_QCOM_LABIBB=m
-CONFIG_RC_CORE=m
-CONFIG_RC_MAP=m
-CONFIG_LIRC=y
-CONFIG_RC_DECODERS=y
-CONFIG_IR_NEC_DECODER=m
-CONFIG_IR_RC5_DECODER=m
-CONFIG_IR_RC6_DECODER=m
-CONFIG_IR_JVC_DECODER=m
-CONFIG_IR_SONY_DECODER=m
-CONFIG_IR_SANYO_DECODER=m
-CONFIG_IR_SHARP_DECODER=m
-CONFIG_IR_MCE_KBD_DECODER=m
-CONFIG_IR_XMP_DECODER=m
-CONFIG_IR_IMON_DECODER=m
-CONFIG_IR_RCMM_DECODER=m
-CONFIG_RC_DEVICES=y
-CONFIG_RC_ATI_REMOTE=m
-CONFIG_IR_ENE=m
-# CONFIG_IR_HIX5HD2 is not set
-CONFIG_IR_IMON=m
-CONFIG_IR_IMON_RAW=m
-CONFIG_IR_MCEUSB=m
-# CONFIG_IR_ITE_CIR is not set
-# CONFIG_IR_FINTEK is not set
-# CONFIG_IR_MESON is not set
-# CONFIG_IR_NUVOTON is not set
-CONFIG_IR_REDRAT3=m
-# CONFIG_IR_SPI is not set
-CONFIG_IR_STREAMZAP=m
-CONFIG_IR_IGORPLUGUSB=m
-CONFIG_IR_IGUANA=m
-CONFIG_IR_TTUSBIR=m
-CONFIG_RC_LOOPBACK=m
-# CONFIG_IR_GPIO_CIR is not set
-# CONFIG_IR_GPIO_TX is not set
-# CONFIG_IR_PWM_TX is not set
-# CONFIG_IR_SUNXI is not set
-# CONFIG_IR_SERIAL is not set
-# CONFIG_IR_SIR is not set
-CONFIG_RC_XBOX_DVD=m
-CONFIG_IR_TOY=m
-CONFIG_CEC_CORE=m
-CONFIG_CEC_NOTIFIER=y
-# CONFIG_MEDIA_CEC_RC is not set
-CONFIG_MEDIA_CEC_SUPPORT=y
-CONFIG_CEC_CH7322=m
-CONFIG_CEC_CROS_EC=m
-CONFIG_CEC_MESON_AO=m
-CONFIG_CEC_MESON_G12A_AO=m
-CONFIG_CEC_TEGRA=m
-CONFIG_USB_PULSE8_CEC=m
-CONFIG_USB_RAINSHADOW_CEC=m
-CONFIG_MEDIA_SUPPORT=m
-# CONFIG_MEDIA_SUPPORT_FILTER is not set
-CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
-
-#
-# Media device types
-#
-CONFIG_MEDIA_CAMERA_SUPPORT=y
-CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
-CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
-CONFIG_MEDIA_RADIO_SUPPORT=y
-CONFIG_MEDIA_SDR_SUPPORT=y
-CONFIG_MEDIA_PLATFORM_SUPPORT=y
-CONFIG_MEDIA_TEST_SUPPORT=y
-# end of Media device types
-
-#
-# Media core support
-#
-CONFIG_VIDEO_DEV=m
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_DVB_CORE=m
-# end of Media core support
-
-#
-# Video4Linux options
-#
-CONFIG_VIDEO_V4L2=m
-CONFIG_VIDEO_V4L2_I2C=y
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-CONFIG_VIDEO_TUNER=m
-CONFIG_V4L2_JPEG_HELPER=m
-CONFIG_V4L2_MEM2MEM_DEV=m
-CONFIG_V4L2_FWNODE=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_DMA_SG=m
-CONFIG_VIDEOBUF_VMALLOC=m
-# end of Video4Linux options
-
-#
-# Media controller options
-#
-CONFIG_MEDIA_CONTROLLER_DVB=y
-CONFIG_MEDIA_CONTROLLER_REQUEST_API=y
-
-#
-# Please notice that the enabled Media controller Request API is EXPERIMENTAL
-#
-# end of Media controller options
-
-#
-# Digital TV options
-#
-# CONFIG_DVB_MMAP is not set
-CONFIG_DVB_NET=y
-CONFIG_DVB_MAX_ADAPTERS=16
-CONFIG_DVB_DYNAMIC_MINORS=y
-# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
-# CONFIG_DVB_ULE_DEBUG is not set
-# end of Digital TV options
-
-#
-# Media drivers
-#
-CONFIG_TTPCI_EEPROM=m
-CONFIG_MEDIA_USB_SUPPORT=y
-
-#
-# Webcam devices
-#
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
-CONFIG_USB_GSPCA_BENQ=m
-CONFIG_USB_GSPCA_CONEX=m
-CONFIG_USB_GSPCA_CPIA1=m
-CONFIG_USB_GSPCA_DTCS033=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_USB_GSPCA_JL2005BCD=m
-CONFIG_USB_GSPCA_KINECT=m
-CONFIG_USB_GSPCA_KONICA=m
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_USB_GSPCA_SE401=m
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-CONFIG_USB_GSPCA_SPCA1528=m
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_USB_GSPCA_STK014=m
-CONFIG_USB_GSPCA_STK1135=m
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-CONFIG_USB_GSPCA_TOPRO=m
-CONFIG_USB_GSPCA_TOUPTEK=m
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_VICAM=m
-CONFIG_USB_GSPCA_XIRLINK_CIT=m
-CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_USB_PWC=m
-# CONFIG_USB_PWC_DEBUG is not set
-CONFIG_USB_PWC_INPUT_EVDEV=y
-CONFIG_VIDEO_CPIA2=m
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-CONFIG_VIDEO_USBTV=m
-
-#
-# Analog TV USB devices
-#
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-CONFIG_VIDEO_PVRUSB2_DVB=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-CONFIG_VIDEO_HDPVR=m
-CONFIG_VIDEO_STK1160_COMMON=m
-CONFIG_VIDEO_STK1160=m
-CONFIG_VIDEO_GO7007=m
-CONFIG_VIDEO_GO7007_USB=m
-CONFIG_VIDEO_GO7007_LOADER=m
-CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
-
-#
-# Analog/digital TV USB devices
-#
-CONFIG_VIDEO_AU0828=m
-CONFIG_VIDEO_AU0828_V4L2=y
-CONFIG_VIDEO_AU0828_RC=y
-CONFIG_VIDEO_CX231XX=m
-CONFIG_VIDEO_CX231XX_RC=y
-CONFIG_VIDEO_CX231XX_ALSA=m
-CONFIG_VIDEO_CX231XX_DVB=m
-# CONFIG_VIDEO_TM6000 is not set
-
-#
-# Digital TV USB devices
-#
-CONFIG_DVB_USB=m
-# CONFIG_DVB_USB_DEBUG is not set
-CONFIG_DVB_USB_DIB3000MC=m
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_DVB_USB_CXUSB_ANALOG=y
-CONFIG_DVB_USB_M920X=m
-CONFIG_DVB_USB_DIGITV=m
-CONFIG_DVB_USB_VP7045=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-CONFIG_DVB_USB_PCTV452E=m
-CONFIG_DVB_USB_DW2102=m
-CONFIG_DVB_USB_CINERGY_T2=m
-CONFIG_DVB_USB_DTV5100=m
-CONFIG_DVB_USB_AZ6027=m
-CONFIG_DVB_USB_TECHNISAT_USB2=m
-CONFIG_DVB_USB_V2=m
-CONFIG_DVB_USB_AF9015=m
-CONFIG_DVB_USB_AF9035=m
-CONFIG_DVB_USB_ANYSEE=m
-CONFIG_DVB_USB_AU6610=m
-CONFIG_DVB_USB_AZ6007=m
-CONFIG_DVB_USB_CE6230=m
-CONFIG_DVB_USB_EC168=m
-CONFIG_DVB_USB_GL861=m
-CONFIG_DVB_USB_LME2510=m
-CONFIG_DVB_USB_MXL111SF=m
-CONFIG_DVB_USB_RTL28XXU=m
-CONFIG_DVB_USB_DVBSKY=m
-# CONFIG_DVB_USB_ZD1301 is not set
-CONFIG_DVB_TTUSB_BUDGET=m
-CONFIG_DVB_TTUSB_DEC=m
-CONFIG_SMS_USB_DRV=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
-# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
-CONFIG_DVB_AS102=m
-
-#
-# Webcam, TV (analog/digital) USB devices
-#
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_V4L2=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_EM28XX_DVB=m
-CONFIG_VIDEO_EM28XX_RC=m
-
-#
-# Software defined radio USB devices
-#
-CONFIG_USB_AIRSPY=m
-CONFIG_USB_HACKRF=m
-CONFIG_USB_MSI2500=m
-CONFIG_MEDIA_PCI_SUPPORT=y
-
-#
-# Media capture support
-#
-CONFIG_VIDEO_SOLO6X10=m
-CONFIG_VIDEO_TW5864=m
-CONFIG_VIDEO_TW68=m
-CONFIG_VIDEO_TW686X=m
-
-#
-# Media capture/analog TV support
-#
-CONFIG_VIDEO_IVTV=m
-# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set
-CONFIG_VIDEO_IVTV_ALSA=m
-CONFIG_VIDEO_FB_IVTV=m
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_MXB=m
-CONFIG_VIDEO_DT3155=m
-
-#
-# Media capture/analog/hybrid TV support
-#
-CONFIG_VIDEO_CX18=m
-CONFIG_VIDEO_CX18_ALSA=m
-CONFIG_VIDEO_CX23885=m
-CONFIG_MEDIA_ALTERA_CI=m
-# CONFIG_VIDEO_CX25821 is not set
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_CX88_ALSA=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-CONFIG_VIDEO_CX88_DVB=m
-CONFIG_VIDEO_CX88_ENABLE_VP3054=y
-CONFIG_VIDEO_CX88_VP3054=m
-CONFIG_VIDEO_CX88_MPEG=m
-CONFIG_VIDEO_BT848=m
-CONFIG_DVB_BT8XX=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_ALSA=m
-CONFIG_VIDEO_SAA7134_RC=y
-CONFIG_VIDEO_SAA7134_DVB=m
-# CONFIG_VIDEO_SAA7134_GO7007 is not set
-CONFIG_VIDEO_SAA7164=m
-
-#
-# Media digital TV PCI Adapters
-#
-CONFIG_DVB_AV7110_IR=y
-CONFIG_DVB_AV7110=m
-CONFIG_DVB_AV7110_OSD=y
-CONFIG_DVB_BUDGET_CORE=m
-CONFIG_DVB_BUDGET=m
-CONFIG_DVB_BUDGET_CI=m
-CONFIG_DVB_BUDGET_AV=m
-CONFIG_DVB_BUDGET_PATCH=m
-CONFIG_DVB_B2C2_FLEXCOP_PCI=m
-# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set
-CONFIG_DVB_PLUTO2=m
-CONFIG_DVB_DM1105=m
-CONFIG_DVB_PT1=m
-CONFIG_DVB_PT3=m
-CONFIG_MANTIS_CORE=m
-CONFIG_DVB_MANTIS=m
-CONFIG_DVB_HOPPER=m
-CONFIG_DVB_NGENE=m
-CONFIG_DVB_DDBRIDGE=m
-# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set
-CONFIG_DVB_SMIPCIE=m
-CONFIG_DVB_NETUP_UNIDVB=m
-CONFIG_RADIO_ADAPTERS=y
-CONFIG_RADIO_TEA575X=m
-CONFIG_RADIO_SI470X=m
-CONFIG_USB_SI470X=m
-# CONFIG_I2C_SI470X is not set
-# CONFIG_RADIO_SI4713 is not set
-CONFIG_USB_MR800=m
-# CONFIG_USB_DSBR is not set
-# CONFIG_RADIO_MAXIRADIO is not set
-CONFIG_RADIO_SHARK=m
-CONFIG_RADIO_SHARK2=m
-CONFIG_USB_KEENE=m
-CONFIG_USB_RAREMONO=m
-CONFIG_USB_MA901=m
-# CONFIG_RADIO_TEA5764 is not set
-# CONFIG_RADIO_SAA7706H is not set
-# CONFIG_RADIO_TEF6862 is not set
-# CONFIG_RADIO_WL1273 is not set
-# CONFIG_RADIO_WL128X is not set
-CONFIG_MEDIA_COMMON_OPTIONS=y
-
-#
-# common driver options
-#
-CONFIG_VIDEO_CX2341X=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_CYPRESS_FIRMWARE=m
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_V4L2=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_DMA_CONTIG=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-CONFIG_VIDEOBUF2_DMA_SG=m
-CONFIG_VIDEOBUF2_DVB=m
-CONFIG_DVB_B2C2_FLEXCOP=m
-CONFIG_VIDEO_SAA7146=m
-CONFIG_VIDEO_SAA7146_VV=m
-CONFIG_SMS_SIANO_MDTV=m
-CONFIG_SMS_SIANO_RC=y
-# CONFIG_SMS_SIANO_DEBUGFS is not set
-CONFIG_VIDEO_V4L2_TPG=m
-CONFIG_V4L_PLATFORM_DRIVERS=y
-CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_VIDEO_CADENCE=y
-CONFIG_VIDEO_CADENCE_CSI2RX=m
-CONFIG_VIDEO_CADENCE_CSI2TX=m
-# CONFIG_VIDEO_ASPEED is not set
-CONFIG_VIDEO_MUX=m
-CONFIG_VIDEO_QCOM_CAMSS=m
-CONFIG_VIDEO_ROCKCHIP_ISP1=m
-# CONFIG_VIDEO_XILINX is not set
-# CONFIG_VIDEO_SUN4I_CSI is not set
-# CONFIG_VIDEO_SUN6I_CSI is not set
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-CONFIG_VIDEO_CODA=m
-CONFIG_VIDEO_IMX_PXP=m
-CONFIG_VIDEO_IMX8_JPEG=m
-CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
-CONFIG_VIDEO_MESON_GE2D=m
-CONFIG_VIDEO_ROCKCHIP_RGA=m
-CONFIG_VIDEO_SUN8I_DEINTERLACE=m
-CONFIG_VIDEO_SUN8I_ROTATE=m
-# CONFIG_DVB_PLATFORM_DRIVERS is not set
-# CONFIG_SDR_PLATFORM_DRIVERS is not set
-
-#
-# MMC/SDIO DVB adapters
-#
-CONFIG_SMS_SDIO_DRV=m
-CONFIG_V4L_TEST_DRIVERS=y
-# CONFIG_VIDEO_VIMC is not set
-CONFIG_VIDEO_VIVID=m
-CONFIG_VIDEO_VIVID_CEC=y
-CONFIG_VIDEO_VIVID_MAX_DEVS=64
-# CONFIG_VIDEO_VIM2M is not set
-# CONFIG_VIDEO_VICODEC is not set
-# CONFIG_DVB_TEST_DRIVERS is not set
-
-#
-# FireWire (IEEE 1394) Adapters
-#
-CONFIG_DVB_FIREDTV=m
-CONFIG_DVB_FIREDTV_INPUT=y
-# end of Media drivers
-
-#
-# Media ancillary drivers
-#
-CONFIG_MEDIA_ATTACH=y
-
-#
-# IR I2C driver auto-selected by 'Autoselect ancillary drivers'
-#
-CONFIG_VIDEO_IR_I2C=m
-
-#
-# Audio decoders, processors and mixers
-#
-CONFIG_VIDEO_TVAUDIO=m
-CONFIG_VIDEO_TDA7432=m
-CONFIG_VIDEO_TDA9840=m
-CONFIG_VIDEO_TDA1997X=m
-CONFIG_VIDEO_TEA6415C=m
-CONFIG_VIDEO_TEA6420=m
-CONFIG_VIDEO_MSP3400=m
-CONFIG_VIDEO_CS3308=m
-CONFIG_VIDEO_CS5345=m
-CONFIG_VIDEO_CS53L32A=m
-CONFIG_VIDEO_TLV320AIC23B=m
-CONFIG_VIDEO_UDA1342=m
-CONFIG_VIDEO_WM8775=m
-CONFIG_VIDEO_WM8739=m
-CONFIG_VIDEO_VP27SMPX=m
-CONFIG_VIDEO_SONY_BTF_MPX=m
-# end of Audio decoders, processors and mixers
-
-#
-# RDS decoders
-#
-CONFIG_VIDEO_SAA6588=m
-# end of RDS decoders
-
-#
-# Video decoders
-#
-CONFIG_VIDEO_ADV7180=m
-CONFIG_VIDEO_ADV7183=m
-CONFIG_VIDEO_ADV748X=m
-CONFIG_VIDEO_ADV7604=m
-CONFIG_VIDEO_ADV7604_CEC=y
-CONFIG_VIDEO_ADV7842=m
-CONFIG_VIDEO_ADV7842_CEC=y
-CONFIG_VIDEO_BT819=m
-CONFIG_VIDEO_BT856=m
-CONFIG_VIDEO_BT866=m
-CONFIG_VIDEO_KS0127=m
-CONFIG_VIDEO_ML86V7667=m
-CONFIG_VIDEO_SAA7110=m
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_TC358743=m
-CONFIG_VIDEO_TC358743_CEC=y
-CONFIG_VIDEO_TVP514X=m
-CONFIG_VIDEO_TVP5150=m
-CONFIG_VIDEO_TVP7002=m
-CONFIG_VIDEO_TW2804=m
-CONFIG_VIDEO_TW9903=m
-CONFIG_VIDEO_TW9906=m
-CONFIG_VIDEO_TW9910=m
-CONFIG_VIDEO_VPX3220=m
-CONFIG_VIDEO_MAX9286=m
-
-#
-# Video and audio decoders
-#
-CONFIG_VIDEO_SAA717X=m
-CONFIG_VIDEO_CX25840=m
-# end of Video decoders
-
-#
-# Video encoders
-#
-CONFIG_VIDEO_SAA7127=m
-CONFIG_VIDEO_SAA7185=m
-CONFIG_VIDEO_ADV7170=m
-CONFIG_VIDEO_ADV7175=m
-CONFIG_VIDEO_ADV7343=m
-CONFIG_VIDEO_ADV7393=m
-CONFIG_VIDEO_AD9389B=m
-CONFIG_VIDEO_AK881X=m
-CONFIG_VIDEO_THS8200=m
-# end of Video encoders
-
-#
-# Video improvement chips
-#
-CONFIG_VIDEO_UPD64031A=m
-CONFIG_VIDEO_UPD64083=m
-# end of Video improvement chips
-
-#
-# Audio/Video compression chips
-#
-CONFIG_VIDEO_SAA6752HS=m
-# end of Audio/Video compression chips
-
-#
-# SDR tuner chips
-#
-CONFIG_SDR_MAX2175=m
-# end of SDR tuner chips
-
-#
-# Miscellaneous helper chips
-#
-CONFIG_VIDEO_THS7303=m
-CONFIG_VIDEO_M52790=m
-CONFIG_VIDEO_I2C=m
-CONFIG_VIDEO_ST_MIPID02=m
-# end of Miscellaneous helper chips
-
-#
-# Camera sensor devices
-#
-CONFIG_VIDEO_APTINA_PLL=m
-CONFIG_VIDEO_CCS_PLL=m
-CONFIG_VIDEO_HI556=m
-CONFIG_VIDEO_IMX214=m
-CONFIG_VIDEO_IMX219=m
-CONFIG_VIDEO_IMX258=m
-CONFIG_VIDEO_IMX274=m
-CONFIG_VIDEO_IMX290=m
-CONFIG_VIDEO_IMX319=m
-CONFIG_VIDEO_IMX334=m
-CONFIG_VIDEO_IMX355=m
-CONFIG_VIDEO_OV02A10=m
-CONFIG_VIDEO_OV2640=m
-CONFIG_VIDEO_OV2659=m
-CONFIG_VIDEO_OV2680=m
-CONFIG_VIDEO_OV2685=m
-CONFIG_VIDEO_OV2740=m
-CONFIG_VIDEO_OV5640=m
-CONFIG_VIDEO_OV5645=m
-CONFIG_VIDEO_OV5647=m
-CONFIG_VIDEO_OV5648=m
-CONFIG_VIDEO_OV6650=m
-CONFIG_VIDEO_OV5670=m
-CONFIG_VIDEO_OV5675=m
-CONFIG_VIDEO_OV5695=m
-CONFIG_VIDEO_OV7251=m
-CONFIG_VIDEO_OV772X=m
-CONFIG_VIDEO_OV7640=m
-CONFIG_VIDEO_OV7670=m
-CONFIG_VIDEO_OV7740=m
-CONFIG_VIDEO_OV8856=m
-CONFIG_VIDEO_OV8865=m
-CONFIG_VIDEO_OV9640=m
-CONFIG_VIDEO_OV9650=m
-CONFIG_VIDEO_OV9734=m
-CONFIG_VIDEO_OV13858=m
-CONFIG_VIDEO_VS6624=m
-CONFIG_VIDEO_MT9M001=m
-CONFIG_VIDEO_MT9M032=m
-CONFIG_VIDEO_MT9M111=m
-CONFIG_VIDEO_MT9P031=m
-CONFIG_VIDEO_MT9T001=m
-CONFIG_VIDEO_MT9T112=m
-CONFIG_VIDEO_MT9V011=m
-CONFIG_VIDEO_MT9V032=m
-CONFIG_VIDEO_MT9V111=m
-CONFIG_VIDEO_SR030PC30=m
-CONFIG_VIDEO_NOON010PC30=m
-CONFIG_VIDEO_M5MOLS=m
-CONFIG_VIDEO_MAX9271_LIB=m
-CONFIG_VIDEO_RDACM20=m
-CONFIG_VIDEO_RDACM21=m
-CONFIG_VIDEO_RJ54N1=m
-CONFIG_VIDEO_S5K6AA=m
-CONFIG_VIDEO_S5K6A3=m
-CONFIG_VIDEO_S5K4ECGX=m
-CONFIG_VIDEO_S5K5BAF=m
-CONFIG_VIDEO_CCS=m
-CONFIG_VIDEO_ET8EK8=m
-CONFIG_VIDEO_S5C73M3=m
-# end of Camera sensor devices
-
-#
-# Lens drivers
-#
-CONFIG_VIDEO_AD5820=m
-CONFIG_VIDEO_AK7375=m
-CONFIG_VIDEO_DW9714=m
-CONFIG_VIDEO_DW9768=m
-CONFIG_VIDEO_DW9807_VCM=m
-# end of Lens drivers
-
-#
-# Flash devices
-#
-CONFIG_VIDEO_ADP1653=m
-CONFIG_VIDEO_LM3560=m
-CONFIG_VIDEO_LM3646=m
-# end of Flash devices
-
-#
-# SPI helper chips
-#
-CONFIG_VIDEO_GS1662=m
-# end of SPI helper chips
-
-#
-# Media SPI Adapters
-#
-CONFIG_CXD2880_SPI_DRV=m
-# end of Media SPI Adapters
-
-CONFIG_MEDIA_TUNER=m
-
-#
-# Customize TV tuners
-#
-CONFIG_MEDIA_TUNER_SIMPLE=m
-CONFIG_MEDIA_TUNER_TDA18250=m
-CONFIG_MEDIA_TUNER_TDA8290=m
-CONFIG_MEDIA_TUNER_TDA827X=m
-CONFIG_MEDIA_TUNER_TDA18271=m
-CONFIG_MEDIA_TUNER_TDA9887=m
-CONFIG_MEDIA_TUNER_TEA5761=m
-CONFIG_MEDIA_TUNER_TEA5767=m
-CONFIG_MEDIA_TUNER_MSI001=m
-CONFIG_MEDIA_TUNER_MT20XX=m
-CONFIG_MEDIA_TUNER_MT2060=m
-CONFIG_MEDIA_TUNER_MT2063=m
-CONFIG_MEDIA_TUNER_MT2266=m
-CONFIG_MEDIA_TUNER_MT2131=m
-CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_XC4000=m
-CONFIG_MEDIA_TUNER_MXL5005S=m
-CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=m
-CONFIG_MEDIA_TUNER_MAX2165=m
-CONFIG_MEDIA_TUNER_TDA18218=m
-CONFIG_MEDIA_TUNER_FC0011=m
-CONFIG_MEDIA_TUNER_FC0012=m
-CONFIG_MEDIA_TUNER_FC0013=m
-CONFIG_MEDIA_TUNER_TDA18212=m
-CONFIG_MEDIA_TUNER_E4000=m
-CONFIG_MEDIA_TUNER_FC2580=m
-CONFIG_MEDIA_TUNER_M88RS6000T=m
-CONFIG_MEDIA_TUNER_TUA9001=m
-CONFIG_MEDIA_TUNER_SI2157=m
-CONFIG_MEDIA_TUNER_IT913X=m
-CONFIG_MEDIA_TUNER_R820T=m
-CONFIG_MEDIA_TUNER_MXL301RF=m
-CONFIG_MEDIA_TUNER_QM1D1C0042=m
-CONFIG_MEDIA_TUNER_QM1D1B0004=m
-# end of Customize TV tuners
-
-#
-# Customise DVB Frontends
-#
-
-#
-# Multistandard (satellite) frontends
-#
-CONFIG_DVB_STB0899=m
-CONFIG_DVB_STB6100=m
-CONFIG_DVB_STV090x=m
-CONFIG_DVB_STV0910=m
-CONFIG_DVB_STV6110x=m
-CONFIG_DVB_STV6111=m
-CONFIG_DVB_MXL5XX=m
-CONFIG_DVB_M88DS3103=m
-
-#
-# Multistandard (cable + terrestrial) frontends
-#
-CONFIG_DVB_DRXK=m
-CONFIG_DVB_TDA18271C2DD=m
-CONFIG_DVB_SI2165=m
-CONFIG_DVB_MN88472=m
-CONFIG_DVB_MN88473=m
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_CX24110=m
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_ZL10036=m
-CONFIG_DVB_ZL10039=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0288=m
-CONFIG_DVB_STB6000=m
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_STV6110=m
-CONFIG_DVB_STV0900=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_TDA8261=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TUNER_CX24113=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TUA6100=m
-CONFIG_DVB_CX24116=m
-CONFIG_DVB_CX24117=m
-CONFIG_DVB_CX24120=m
-CONFIG_DVB_SI21XX=m
-CONFIG_DVB_TS2020=m
-CONFIG_DVB_DS3000=m
-CONFIG_DVB_MB86A16=m
-CONFIG_DVB_TDA10071=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_SP887X=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_S5H1432=m
-CONFIG_DVB_DRXD=m
-CONFIG_DVB_L64781=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_DIB3000MB=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_DVB_DIB7000P=m
-CONFIG_DVB_DIB9000=m
-CONFIG_DVB_TDA10048=m
-CONFIG_DVB_AF9013=m
-CONFIG_DVB_EC100=m
-CONFIG_DVB_STV0367=m
-CONFIG_DVB_CXD2820R=m
-CONFIG_DVB_CXD2841ER=m
-CONFIG_DVB_RTL2830=m
-CONFIG_DVB_RTL2832=m
-CONFIG_DVB_RTL2832_SDR=m
-CONFIG_DVB_SI2168=m
-CONFIG_DVB_AS102_FE=m
-CONFIG_DVB_ZD1301_DEMOD=m
-CONFIG_DVB_GP8PSK_FE=m
-CONFIG_DVB_CXD2880=m
-
-#
-# DVB-C (cable) frontends
-#
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
-CONFIG_DVB_NXT200X=m
-CONFIG_DVB_OR51211=m
-CONFIG_DVB_OR51132=m
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-CONFIG_DVB_LGDT3305=m
-CONFIG_DVB_LGDT3306A=m
-CONFIG_DVB_LG2160=m
-CONFIG_DVB_S5H1409=m
-CONFIG_DVB_AU8522=m
-CONFIG_DVB_AU8522_DTV=m
-CONFIG_DVB_AU8522_V4L=m
-CONFIG_DVB_S5H1411=m
-CONFIG_DVB_MXL692=m
-
-#
-# ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_S921=m
-CONFIG_DVB_DIB8000=m
-CONFIG_DVB_MB86A20S=m
-
-#
-# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_TC90522=m
-CONFIG_DVB_MN88443X=m
-
-#
-# Digital terrestrial only tuners/PLL
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TUNER_DIB0070=m
-CONFIG_DVB_TUNER_DIB0090=m
-
-#
-# SEC control devices for DVB-S
-#
-CONFIG_DVB_DRX39XYJ=m
-CONFIG_DVB_LNBH25=m
-CONFIG_DVB_LNBH29=m
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_LNBP22=m
-CONFIG_DVB_ISL6405=m
-CONFIG_DVB_ISL6421=m
-CONFIG_DVB_ISL6423=m
-CONFIG_DVB_A8293=m
-CONFIG_DVB_LGS8GL5=m
-CONFIG_DVB_LGS8GXX=m
-CONFIG_DVB_ATBM8830=m
-CONFIG_DVB_TDA665x=m
-CONFIG_DVB_IX2505V=m
-CONFIG_DVB_M88RS2000=m
-CONFIG_DVB_AF9033=m
-CONFIG_DVB_HORUS3A=m
-CONFIG_DVB_ASCOT2E=m
-CONFIG_DVB_HELENE=m
-
-#
-# Common Interface (EN50221) controller drivers
-#
-CONFIG_DVB_CXD2099=m
-CONFIG_DVB_SP2=m
-# end of Customise DVB Frontends
-
-#
-# Tools to develop new frontends
-#
-CONFIG_DVB_DUMMY_FE=m
-# end of Media ancillary drivers
-
-#
-# Graphics support
-#
-CONFIG_VGA_ARB=y
-CONFIG_VGA_ARB_MAX_GPUS=16
-CONFIG_TEGRA_HOST1X=m
-CONFIG_TEGRA_HOST1X_FIREWALL=y
-CONFIG_DRM=m
-CONFIG_DRM_MIPI_DBI=m
-CONFIG_DRM_MIPI_DSI=y
-CONFIG_DRM_DP_AUX_CHARDEV=y
-# CONFIG_DRM_DEBUG_SELFTEST is not set
-CONFIG_DRM_KMS_HELPER=m
-CONFIG_DRM_KMS_FB_HELPER=y
-# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set
-CONFIG_DRM_FBDEV_EMULATION=y
-CONFIG_DRM_FBDEV_OVERALLOC=100
-# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
-CONFIG_DRM_LOAD_EDID_FIRMWARE=y
-# CONFIG_DRM_DP_CEC is not set
-CONFIG_DRM_TTM=m
-CONFIG_DRM_VRAM_HELPER=m
-CONFIG_DRM_TTM_HELPER=m
-CONFIG_DRM_GEM_CMA_HELPER=y
-CONFIG_DRM_KMS_CMA_HELPER=y
-CONFIG_DRM_GEM_SHMEM_HELPER=y
-CONFIG_DRM_SCHED=m
-
-#
-# I2C encoder or helper chips
-#
-# CONFIG_DRM_I2C_CH7006 is not set
-# CONFIG_DRM_I2C_SIL164 is not set
-# CONFIG_DRM_I2C_NXP_TDA998X is not set
-# CONFIG_DRM_I2C_NXP_TDA9950 is not set
-# end of I2C encoder or helper chips
-
-#
-# ARM devices
-#
-CONFIG_DRM_HDLCD=m
-# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set
-CONFIG_DRM_MALI_DISPLAY=m
-CONFIG_DRM_KOMEDA=m
-# end of ARM devices
-
-CONFIG_DRM_RADEON=m
-# CONFIG_DRM_RADEON_USERPTR is not set
-CONFIG_DRM_AMDGPU=m
-CONFIG_DRM_AMDGPU_SI=y
-CONFIG_DRM_AMDGPU_CIK=y
-CONFIG_DRM_AMDGPU_USERPTR=y
-
-#
-# ACP (Audio CoProcessor) Configuration
-#
-# CONFIG_DRM_AMD_ACP is not set
-# end of ACP (Audio CoProcessor) Configuration
-
-#
-# Display Engine Configuration
-#
-CONFIG_DRM_AMD_DC=y
-# CONFIG_DRM_AMD_DC_HDCP is not set
-CONFIG_DRM_AMD_DC_SI=y
-# end of Display Engine Configuration
-
-# CONFIG_HSA_AMD is not set
-CONFIG_DRM_NOUVEAU=m
-# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
-CONFIG_NOUVEAU_PLATFORM_DRIVER=y
-CONFIG_NOUVEAU_DEBUG=5
-CONFIG_NOUVEAU_DEBUG_DEFAULT=3
-# CONFIG_NOUVEAU_DEBUG_MMU is not set
-# CONFIG_NOUVEAU_DEBUG_PUSH is not set
-CONFIG_DRM_NOUVEAU_BACKLIGHT=y
-# CONFIG_DRM_KMB_DISPLAY is not set
-CONFIG_DRM_VGEM=m
-# CONFIG_DRM_VKMS is not set
-CONFIG_DRM_ROCKCHIP=m
-CONFIG_ROCKCHIP_ANALOGIX_DP=y
-CONFIG_ROCKCHIP_CDN_DP=y
-CONFIG_ROCKCHIP_DW_HDMI=y
-CONFIG_ROCKCHIP_DW_MIPI_DSI=y
-CONFIG_ROCKCHIP_INNO_HDMI=y
-CONFIG_ROCKCHIP_LVDS=y
-CONFIG_ROCKCHIP_RGB=y
-CONFIG_ROCKCHIP_RK3066_HDMI=y
-CONFIG_DRM_UDL=m
-CONFIG_DRM_AST=m
-# CONFIG_DRM_MGAG200 is not set
-# CONFIG_DRM_RCAR_DW_HDMI is not set
-# CONFIG_DRM_RCAR_LVDS is not set
-# CONFIG_DRM_SUN4I is not set
-CONFIG_DRM_QXL=m
-CONFIG_DRM_BOCHS=m
-CONFIG_DRM_VIRTIO_GPU=m
-CONFIG_DRM_MSM=m
-CONFIG_DRM_MSM_GPU_STATE=y
-# CONFIG_DRM_MSM_REGISTER_LOGGING is not set
-# CONFIG_DRM_MSM_GPU_SUDO is not set
-CONFIG_DRM_MSM_HDMI_HDCP=y
-CONFIG_DRM_MSM_DP=y
-CONFIG_DRM_MSM_DSI=y
-CONFIG_DRM_MSM_DSI_28NM_PHY=y
-CONFIG_DRM_MSM_DSI_20NM_PHY=y
-CONFIG_DRM_MSM_DSI_28NM_8960_PHY=y
-CONFIG_DRM_MSM_DSI_14NM_PHY=y
-CONFIG_DRM_MSM_DSI_10NM_PHY=y
-CONFIG_DRM_MSM_DSI_7NM_PHY=y
-CONFIG_DRM_TEGRA=m
-# CONFIG_DRM_TEGRA_DEBUG is not set
-CONFIG_DRM_TEGRA_STAGING=y
-CONFIG_DRM_PANEL=y
-
-#
-# Display Panels
-#
-# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set
-CONFIG_DRM_PANEL_ARM_VERSATILE=m
-CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596=m
-CONFIG_DRM_PANEL_BOE_HIMAX8279D=m
-CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m
-CONFIG_DRM_PANEL_DSI_CM=m
-# CONFIG_DRM_PANEL_LVDS is not set
-CONFIG_DRM_PANEL_SIMPLE=m
-CONFIG_DRM_PANEL_ELIDA_KD35T133=m
-CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m
-# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set
-# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
-# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set
-# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
-# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
-CONFIG_DRM_PANEL_KHADAS_TS050=m
-# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
-# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set
-CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829=m
-# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
-# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
-# CONFIG_DRM_PANEL_LG_LG4573 is not set
-# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
-CONFIG_DRM_PANEL_NOVATEK_NT35510=m
-# CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set
-# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
-CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
-# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
-# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set
-CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS=m
-# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
-# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
-# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
-# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
-# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set
-CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m
-# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_SOFEF00 is not set
-# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set
-# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
-# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
-# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
-# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
-# CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set
-# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
-CONFIG_DRM_PANEL_SONY_ACX424AKP=m
-# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
-# CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set
-# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
-# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
-# CONFIG_DRM_PANEL_TPO_TPG110 is not set
-# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
-# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set
-CONFIG_DRM_PANEL_XINPENG_XPP055C272=m
-# end of Display Panels
-
-CONFIG_DRM_BRIDGE=y
-CONFIG_DRM_PANEL_BRIDGE=y
-
-#
-# Display Interface Bridges
-#
-CONFIG_DRM_CDNS_DSI=m
-CONFIG_DRM_CHIPONE_ICN6211=m
-CONFIG_DRM_CHRONTEL_CH7033=m
-CONFIG_DRM_DISPLAY_CONNECTOR=m
-CONFIG_DRM_LONTIUM_LT8912B=m
-CONFIG_DRM_LONTIUM_LT9611=m
-CONFIG_DRM_LONTIUM_LT9611UXC=m
-CONFIG_DRM_LVDS_CODEC=m
-# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
-CONFIG_DRM_NWL_MIPI_DSI=m
-# CONFIG_DRM_NXP_PTN3460 is not set
-# CONFIG_DRM_PARADE_PS8622 is not set
-CONFIG_DRM_PARADE_PS8640=m
-# CONFIG_DRM_SIL_SII8620 is not set
-# CONFIG_DRM_SII902X is not set
-# CONFIG_DRM_SII9234 is not set
-CONFIG_DRM_SIMPLE_BRIDGE=m
-# CONFIG_DRM_THINE_THC63LVD1024 is not set
-CONFIG_DRM_TOSHIBA_TC358762=m
-# CONFIG_DRM_TOSHIBA_TC358764 is not set
-# CONFIG_DRM_TOSHIBA_TC358767 is not set
-# CONFIG_DRM_TOSHIBA_TC358768 is not set
-CONFIG_DRM_TOSHIBA_TC358775=m
-# CONFIG_DRM_TI_TFP410 is not set
-# CONFIG_DRM_TI_SN65DSI86 is not set
-CONFIG_DRM_TI_TPD12S015=m
-CONFIG_DRM_ANALOGIX_ANX6345=m
-# CONFIG_DRM_ANALOGIX_ANX78XX is not set
-CONFIG_DRM_ANALOGIX_DP=m
-CONFIG_DRM_ANALOGIX_ANX7625=m
-CONFIG_DRM_I2C_ADV7511=m
-CONFIG_DRM_I2C_ADV7511_AUDIO=y
-CONFIG_DRM_I2C_ADV7511_CEC=y
-CONFIG_DRM_CDNS_MHDP8546=m
-CONFIG_DRM_DW_HDMI=m
-# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
-# CONFIG_DRM_DW_HDMI_CEC is not set
-CONFIG_DRM_DW_MIPI_DSI=m
-# end of Display Interface Bridges
-
-CONFIG_DRM_IMX_DCSS=m
-CONFIG_DRM_VC4=m
-# CONFIG_DRM_VC4_HDMI_CEC is not set
-CONFIG_DRM_ETNAVIV=m
-CONFIG_DRM_ETNAVIV_THERMAL=y
-CONFIG_DRM_HISI_HIBMC=m
-CONFIG_DRM_HISI_KIRIN=m
-# CONFIG_DRM_MXSFB is not set
-CONFIG_DRM_MESON=m
-CONFIG_DRM_MESON_DW_HDMI=m
-# CONFIG_DRM_ARCPGU is not set
-CONFIG_DRM_CIRRUS_QEMU=m
-CONFIG_DRM_GM12U320=m
-# CONFIG_TINYDRM_HX8357D is not set
-# CONFIG_TINYDRM_ILI9225 is not set
-# CONFIG_TINYDRM_ILI9341 is not set
-CONFIG_TINYDRM_ILI9486=m
-# CONFIG_TINYDRM_MI0283QT is not set
-# CONFIG_TINYDRM_REPAPER is not set
-# CONFIG_TINYDRM_ST7586 is not set
-# CONFIG_TINYDRM_ST7735R is not set
-# CONFIG_DRM_PL111 is not set
-CONFIG_DRM_XEN=y
-CONFIG_DRM_XEN_FRONTEND=m
-CONFIG_DRM_LIMA=m
-CONFIG_DRM_PANFROST=m
-CONFIG_DRM_TIDSS=m
-CONFIG_DRM_GUD=m
-CONFIG_DRM_LEGACY=y
-# CONFIG_DRM_TDFX is not set
-# CONFIG_DRM_R128 is not set
-# CONFIG_DRM_MGA is not set
-CONFIG_DRM_VIA=m
-CONFIG_DRM_SAVAGE=m
-CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
-
-#
-# Frame buffer Devices
-#
-CONFIG_FB_CMDLINE=y
-CONFIG_FB_NOTIFY=y
-CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
-CONFIG_FB_DDC=m
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-CONFIG_FB_SYS_FILLRECT=y
-CONFIG_FB_SYS_COPYAREA=y
-CONFIG_FB_SYS_IMAGEBLIT=y
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=y
-CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_SVGALIB=m
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_CIRRUS is not set
-# CONFIG_FB_PM2 is not set
-CONFIG_FB_ARMCLCD=y
-CONFIG_FB_IMX=m
-# CONFIG_FB_CYBER2000 is not set
-# CONFIG_FB_ASILIANT is not set
-# CONFIG_FB_IMSTT is not set
-# CONFIG_FB_UVESA is not set
-CONFIG_FB_EFI=y
-# CONFIG_FB_OPENCORES is not set
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_NVIDIA is not set
-# CONFIG_FB_RIVA is not set
-# CONFIG_FB_I740 is not set
-# CONFIG_FB_MATROX is not set
-# CONFIG_FB_RADEON is not set
-# CONFIG_FB_ATY128 is not set
-# CONFIG_FB_ATY is not set
-CONFIG_FB_S3=m
-CONFIG_FB_S3_DDC=y
-# CONFIG_FB_SAVAGE is not set
-# CONFIG_FB_SIS is not set
-# CONFIG_FB_NEOMAGIC is not set
-# CONFIG_FB_KYRO is not set
-CONFIG_FB_3DFX=m
-# CONFIG_FB_3DFX_ACCEL is not set
-CONFIG_FB_3DFX_I2C=y
-# CONFIG_FB_VOODOO1 is not set
-CONFIG_FB_VT8623=m
-# CONFIG_FB_TRIDENT is not set
-CONFIG_FB_ARK=m
-CONFIG_FB_PM3=m
-# CONFIG_FB_CARMINE is not set
-CONFIG_FB_SMSCUFX=m
-CONFIG_FB_UDL=m
-# CONFIG_FB_IBM_GXT4500 is not set
-# CONFIG_FB_VIRTUAL is not set
-CONFIG_XEN_FBDEV_FRONTEND=y
-# CONFIG_FB_METRONOME is not set
-CONFIG_FB_MB862XX=m
-CONFIG_FB_MB862XX_PCI_GDC=y
-CONFIG_FB_MB862XX_I2C=y
-# CONFIG_FB_MX3 is not set
-CONFIG_FB_SIMPLE=y
-# CONFIG_FB_SSD1307 is not set
-# CONFIG_FB_SM712 is not set
-# end of Frame buffer Devices
-
-#
-# Backlight & LCD device support
-#
-CONFIG_LCD_CLASS_DEVICE=m
-CONFIG_LCD_L4F00242T03=m
-CONFIG_LCD_LMS283GF05=m
-CONFIG_LCD_LTV350QV=m
-CONFIG_LCD_ILI922X=m
-CONFIG_LCD_ILI9320=m
-CONFIG_LCD_TDO24M=m
-CONFIG_LCD_VGG2432A4=m
-CONFIG_LCD_PLATFORM=m
-CONFIG_LCD_AMS369FG06=m
-CONFIG_LCD_LMS501KF03=m
-CONFIG_LCD_HX8357=m
-CONFIG_LCD_OTM3225A=m
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_KTD253=m
-CONFIG_BACKLIGHT_PWM=m
-CONFIG_BACKLIGHT_QCOM_WLED=m
-# CONFIG_BACKLIGHT_ADP8860 is not set
-# CONFIG_BACKLIGHT_ADP8870 is not set
-# CONFIG_BACKLIGHT_LM3630A is not set
-# CONFIG_BACKLIGHT_LM3639 is not set
-CONFIG_BACKLIGHT_LP855X=m
-# CONFIG_BACKLIGHT_GPIO is not set
-# CONFIG_BACKLIGHT_LV5207LP is not set
-# CONFIG_BACKLIGHT_BD6107 is not set
-# CONFIG_BACKLIGHT_ARCXCNN is not set
-CONFIG_BACKLIGHT_LED=m
-# end of Backlight & LCD device support
-
-CONFIG_VGASTATE=m
-CONFIG_VIDEOMODE_HELPERS=y
-CONFIG_HDMI=y
-
-#
-# Console display driver support
-#
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_DUMMY_CONSOLE_COLUMNS=80
-CONFIG_DUMMY_CONSOLE_ROWS=25
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
-# end of Console display driver support
-
-# CONFIG_LOGO is not set
-# end of Graphics support
-
-CONFIG_SOUND=m
-CONFIG_SOUND_OSS_CORE=y
-# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_PCM_ELD=y
-CONFIG_SND_PCM_IEC958=y
-CONFIG_SND_DMAENGINE_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_SEQ_DEVICE=m
-CONFIG_SND_RAWMIDI=m
-CONFIG_SND_COMPRESS_OFFLOAD=m
-CONFIG_SND_JACK=y
-CONFIG_SND_JACK_INPUT_DEV=y
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-CONFIG_SND_PCM_TIMER=y
-CONFIG_SND_HRTIMER=m
-CONFIG_SND_DYNAMIC_MINORS=y
-CONFIG_SND_MAX_CARDS=32
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_PROC_FS=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_VMASTER=y
-CONFIG_SND_CTL_LED=m
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_SEQ_DUMMY=m
-# CONFIG_SND_SEQUENCER_OSS is not set
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-CONFIG_SND_SEQ_MIDI_EVENT=m
-CONFIG_SND_SEQ_MIDI=m
-CONFIG_SND_SEQ_MIDI_EMUL=m
-CONFIG_SND_SEQ_VIRMIDI=m
-CONFIG_SND_MPU401_UART=m
-CONFIG_SND_OPL3_LIB=m
-CONFIG_SND_OPL3_LIB_SEQ=m
-CONFIG_SND_AC97_CODEC=m
-CONFIG_SND_DRIVERS=y
-# CONFIG_SND_DUMMY is not set
-CONFIG_SND_ALOOP=m
-# CONFIG_SND_VIRMIDI is not set
-# CONFIG_SND_MTPAV is not set
-CONFIG_SND_MTS64=m
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-CONFIG_SND_PORTMAN2X4=m
-CONFIG_SND_AC97_POWER_SAVE=y
-CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
-CONFIG_SND_PCI=y
-CONFIG_SND_AD1889=m
-CONFIG_SND_ALS300=m
-CONFIG_SND_ALI5451=m
-# CONFIG_SND_ATIIXP is not set
-# CONFIG_SND_ATIIXP_MODEM is not set
-# CONFIG_SND_AU8810 is not set
-# CONFIG_SND_AU8820 is not set
-# CONFIG_SND_AU8830 is not set
-# CONFIG_SND_AW2 is not set
-CONFIG_SND_AZT3328=m
-# CONFIG_SND_BT87X is not set
-# CONFIG_SND_CA0106 is not set
-# CONFIG_SND_CMIPCI is not set
-CONFIG_SND_OXYGEN_LIB=m
-CONFIG_SND_OXYGEN=m
-# CONFIG_SND_CS4281 is not set
-# CONFIG_SND_CS46XX is not set
-CONFIG_SND_CTXFI=m
-CONFIG_SND_DARLA20=m
-CONFIG_SND_GINA20=m
-CONFIG_SND_LAYLA20=m
-CONFIG_SND_DARLA24=m
-CONFIG_SND_GINA24=m
-CONFIG_SND_LAYLA24=m
-CONFIG_SND_MONA=m
-CONFIG_SND_MIA=m
-CONFIG_SND_ECHO3G=m
-CONFIG_SND_INDIGO=m
-CONFIG_SND_INDIGOIO=m
-CONFIG_SND_INDIGODJ=m
-CONFIG_SND_INDIGOIOX=m
-CONFIG_SND_INDIGODJX=m
-CONFIG_SND_EMU10K1=m
-CONFIG_SND_EMU10K1_SEQ=m
-CONFIG_SND_EMU10K1X=m
-# CONFIG_SND_ENS1370 is not set
-# CONFIG_SND_ENS1371 is not set
-CONFIG_SND_ES1938=m
-CONFIG_SND_ES1968=m
-CONFIG_SND_ES1968_INPUT=y
-CONFIG_SND_ES1968_RADIO=y
-# CONFIG_SND_FM801 is not set
-# CONFIG_SND_HDSP is not set
-CONFIG_SND_HDSPM=m
-CONFIG_SND_ICE1712=m
-# CONFIG_SND_ICE1724 is not set
-# CONFIG_SND_INTEL8X0 is not set
-# CONFIG_SND_INTEL8X0M is not set
-# CONFIG_SND_KORG1212 is not set
-CONFIG_SND_LOLA=m
-CONFIG_SND_LX6464ES=m
-CONFIG_SND_MAESTRO3=m
-CONFIG_SND_MAESTRO3_INPUT=y
-# CONFIG_SND_MIXART is not set
-# CONFIG_SND_NM256 is not set
-CONFIG_SND_PCXHR=m
-CONFIG_SND_RIPTIDE=m
-# CONFIG_SND_RME32 is not set
-# CONFIG_SND_RME96 is not set
-# CONFIG_SND_RME9652 is not set
-CONFIG_SND_SONICVIBES=m
-CONFIG_SND_TRIDENT=m
-# CONFIG_SND_VIA82XX is not set
-# CONFIG_SND_VIA82XX_MODEM is not set
-CONFIG_SND_VIRTUOSO=m
-# CONFIG_SND_VX222 is not set
-# CONFIG_SND_YMFPCI is not set
-
-#
-# HD-Audio
-#
-CONFIG_SND_HDA=m
-CONFIG_SND_HDA_GENERIC_LEDS=y
-CONFIG_SND_HDA_INTEL=m
-CONFIG_SND_HDA_TEGRA=m
-CONFIG_SND_HDA_HWDEP=y
-CONFIG_SND_HDA_RECONFIG=y
-CONFIG_SND_HDA_INPUT_BEEP=y
-CONFIG_SND_HDA_INPUT_BEEP_MODE=1
-CONFIG_SND_HDA_PATCH_LOADER=y
-CONFIG_SND_HDA_CODEC_REALTEK=m
-CONFIG_SND_HDA_CODEC_ANALOG=m
-CONFIG_SND_HDA_CODEC_SIGMATEL=m
-CONFIG_SND_HDA_CODEC_VIA=m
-CONFIG_SND_HDA_CODEC_HDMI=m
-CONFIG_SND_HDA_CODEC_CIRRUS=m
-CONFIG_SND_HDA_CODEC_CONEXANT=m
-CONFIG_SND_HDA_CODEC_CA0110=m
-CONFIG_SND_HDA_CODEC_CA0132=m
-CONFIG_SND_HDA_CODEC_CA0132_DSP=y
-CONFIG_SND_HDA_CODEC_CMEDIA=m
-CONFIG_SND_HDA_CODEC_SI3054=m
-CONFIG_SND_HDA_GENERIC=m
-CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
-CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM=y
-# end of HD-Audio
-
-CONFIG_SND_HDA_CORE=m
-CONFIG_SND_HDA_DSP_LOADER=y
-CONFIG_SND_HDA_ALIGNED_MMIO=y
-CONFIG_SND_HDA_COMPONENT=y
-CONFIG_SND_HDA_PREALLOC_SIZE=2048
-CONFIG_SND_INTEL_NHLT=y
-CONFIG_SND_INTEL_DSP_CONFIG=m
-CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m
-CONFIG_SND_SPI=y
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
-CONFIG_SND_USB_UA101=m
-CONFIG_SND_USB_CAIAQ=m
-CONFIG_SND_USB_CAIAQ_INPUT=y
-CONFIG_SND_USB_6FIRE=m
-CONFIG_SND_USB_HIFACE=m
-CONFIG_SND_BCD2000=m
-CONFIG_SND_USB_LINE6=m
-CONFIG_SND_USB_POD=m
-CONFIG_SND_USB_PODHD=m
-CONFIG_SND_USB_TONEPORT=m
-CONFIG_SND_USB_VARIAX=m
-CONFIG_SND_FIREWIRE=y
-CONFIG_SND_FIREWIRE_LIB=m
-CONFIG_SND_DICE=m
-CONFIG_SND_OXFW=m
-CONFIG_SND_ISIGHT=m
-CONFIG_SND_FIREWORKS=m
-CONFIG_SND_BEBOB=m
-CONFIG_SND_FIREWIRE_DIGI00X=m
-CONFIG_SND_FIREWIRE_TASCAM=m
-# CONFIG_SND_FIREWIRE_MOTU is not set
-# CONFIG_SND_FIREFACE is not set
-CONFIG_SND_SOC=m
-CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
-CONFIG_SND_SOC_COMPRESS=y
-CONFIG_SND_SOC_ADI=m
-CONFIG_SND_SOC_ADI_AXI_I2S=m
-CONFIG_SND_SOC_ADI_AXI_SPDIF=m
-# CONFIG_SND_SOC_AMD_ACP is not set
-# CONFIG_SND_ATMEL_SOC is not set
-CONFIG_SND_BCM2835_SOC_I2S=m
-CONFIG_SND_BCM63XX_I2S_WHISTLER=m
-# CONFIG_SND_DESIGNWARE_I2S is not set
-
-#
-# SoC Audio for Freescale CPUs
-#
-
-#
-# Common SoC Audio options for Freescale CPUs:
-#
-# CONFIG_SND_SOC_FSL_ASRC is not set
-CONFIG_SND_SOC_FSL_SAI=m
-CONFIG_SND_SOC_FSL_MQS=m
-CONFIG_SND_SOC_FSL_AUDMIX=m
-CONFIG_SND_SOC_FSL_SSI=m
-CONFIG_SND_SOC_FSL_SPDIF=m
-CONFIG_SND_SOC_FSL_ESAI=m
-CONFIG_SND_SOC_FSL_MICFIL=m
-CONFIG_SND_SOC_FSL_XCVR=m
-CONFIG_SND_SOC_FSL_AUD2HTX=m
-CONFIG_SND_SOC_FSL_RPMSG=m
-CONFIG_SND_SOC_IMX_PCM_DMA=m
-CONFIG_SND_SOC_IMX_AUDIO_RPMSG=m
-CONFIG_SND_SOC_IMX_PCM_RPMSG=m
-CONFIG_SND_SOC_IMX_AUDMUX=m
-CONFIG_SND_IMX_SOC=m
-
-#
-# SoC Audio support for Freescale i.MX boards:
-#
-CONFIG_SND_SOC_IMX_ES8328=m
-CONFIG_SND_SOC_IMX_SGTL5000=m
-CONFIG_SND_SOC_IMX_SPDIF=m
-CONFIG_SND_SOC_FSL_ASOC_CARD=m
-CONFIG_SND_SOC_IMX_AUDMIX=m
-CONFIG_SND_SOC_IMX_HDMI=m
-CONFIG_SND_SOC_IMX_RPMSG=m
-# end of SoC Audio for Freescale CPUs
-
-CONFIG_SND_I2S_HI6210_I2S=m
-# CONFIG_SND_KIRKWOOD_SOC is not set
-# CONFIG_SND_SOC_IMG is not set
-CONFIG_SND_SOC_INTEL_KEEMBAY=m
-# CONFIG_SND_SOC_MTK_BTCVSD is not set
-
-#
-# ASoC support for Amlogic platforms
-#
-CONFIG_SND_MESON_AIU=m
-# CONFIG_SND_MESON_AXG_FRDDR is not set
-# CONFIG_SND_MESON_AXG_TODDR is not set
-# CONFIG_SND_MESON_AXG_TDMIN is not set
-# CONFIG_SND_MESON_AXG_TDMOUT is not set
-# CONFIG_SND_MESON_AXG_SOUND_CARD is not set
-# CONFIG_SND_MESON_AXG_SPDIFOUT is not set
-# CONFIG_SND_MESON_AXG_SPDIFIN is not set
-# CONFIG_SND_MESON_AXG_PDM is not set
-CONFIG_SND_MESON_CODEC_GLUE=m
-# CONFIG_SND_MESON_GX_SOUND_CARD is not set
-# CONFIG_SND_MESON_G12A_TOACODEC is not set
-# CONFIG_SND_MESON_G12A_TOHDMITX is not set
-CONFIG_SND_SOC_MESON_T9015=m
-# end of ASoC support for Amlogic platforms
-
-CONFIG_SND_SOC_QCOM=m
-CONFIG_SND_SOC_LPASS_CPU=m
-CONFIG_SND_SOC_LPASS_HDMI=m
-CONFIG_SND_SOC_LPASS_PLATFORM=m
-CONFIG_SND_SOC_LPASS_APQ8016=m
-CONFIG_SND_SOC_LPASS_SC7180=m
-# CONFIG_SND_SOC_STORM is not set
-CONFIG_SND_SOC_APQ8016_SBC=m
-CONFIG_SND_SOC_QCOM_COMMON=m
-CONFIG_SND_SOC_QDSP6_COMMON=m
-CONFIG_SND_SOC_QDSP6_CORE=m
-CONFIG_SND_SOC_QDSP6_AFE=m
-CONFIG_SND_SOC_QDSP6_AFE_DAI=m
-CONFIG_SND_SOC_QDSP6_AFE_CLOCKS=m
-CONFIG_SND_SOC_QDSP6_ADM=m
-CONFIG_SND_SOC_QDSP6_ROUTING=m
-CONFIG_SND_SOC_QDSP6_ASM=m
-CONFIG_SND_SOC_QDSP6_ASM_DAI=m
-CONFIG_SND_SOC_QDSP6=m
-CONFIG_SND_SOC_MSM8996=m
-CONFIG_SND_SOC_SC7180=m
-CONFIG_SND_SOC_ROCKCHIP=m
-CONFIG_SND_SOC_ROCKCHIP_I2S=m
-CONFIG_SND_SOC_ROCKCHIP_PDM=m
-CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
-CONFIG_SND_SOC_ROCKCHIP_MAX98090=m
-CONFIG_SND_SOC_ROCKCHIP_RT5645=m
-CONFIG_SND_SOC_RK3288_HDMI_ANALOG=m
-CONFIG_SND_SOC_RK3399_GRU_SOUND=m
-# CONFIG_SND_SOC_SOF_TOPLEVEL is not set
-
-#
-# STMicroelectronics STM32 SOC audio support
-#
-# end of STMicroelectronics STM32 SOC audio support
-
-#
-# Allwinner SoC Audio support
-#
-# CONFIG_SND_SUN4I_CODEC is not set
-# CONFIG_SND_SUN8I_CODEC is not set
-# CONFIG_SND_SUN8I_CODEC_ANALOG is not set
-# CONFIG_SND_SUN50I_CODEC_ANALOG is not set
-# CONFIG_SND_SUN4I_I2S is not set
-# CONFIG_SND_SUN4I_SPDIF is not set
-# end of Allwinner SoC Audio support
-
-CONFIG_SND_SOC_TEGRA=m
-# CONFIG_SND_SOC_TEGRA20_AC97 is not set
-# CONFIG_SND_SOC_TEGRA20_DAS is not set
-# CONFIG_SND_SOC_TEGRA20_I2S is not set
-CONFIG_SND_SOC_TEGRA20_SPDIF=m
-# CONFIG_SND_SOC_TEGRA30_AHUB is not set
-# CONFIG_SND_SOC_TEGRA30_I2S is not set
-# CONFIG_SND_SOC_TEGRA210_AHUB is not set
-# CONFIG_SND_SOC_TEGRA210_DMIC is not set
-# CONFIG_SND_SOC_TEGRA210_I2S is not set
-# CONFIG_SND_SOC_TEGRA186_DSPK is not set
-# CONFIG_SND_SOC_TEGRA210_ADMAIF is not set
-CONFIG_SND_SOC_TEGRA_RT5640=m
-CONFIG_SND_SOC_TEGRA_WM8753=m
-CONFIG_SND_SOC_TEGRA_WM8903=m
-# CONFIG_SND_SOC_TEGRA_WM9712 is not set
-CONFIG_SND_SOC_TEGRA_TRIMSLICE=m
-CONFIG_SND_SOC_TEGRA_ALC5632=m
-CONFIG_SND_SOC_TEGRA_MAX98090=m
-CONFIG_SND_SOC_TEGRA_RT5677=m
-# CONFIG_SND_SOC_TEGRA_SGTL5000 is not set
-CONFIG_SND_SOC_XILINX_I2S=m
-# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
-# CONFIG_SND_SOC_XILINX_SPDIF is not set
-# CONFIG_SND_SOC_XTFPGA_I2S is not set
-CONFIG_SND_SOC_I2C_AND_SPI=m
-
-#
-# CODEC drivers
-#
-CONFIG_SND_SOC_WM_HUBS=m
-# CONFIG_SND_SOC_AC97_CODEC is not set
-CONFIG_SND_SOC_ADAU_UTILS=m
-CONFIG_SND_SOC_ADAU1372=m
-CONFIG_SND_SOC_ADAU1372_I2C=m
-CONFIG_SND_SOC_ADAU1372_SPI=m
-# CONFIG_SND_SOC_ADAU1701 is not set
-# CONFIG_SND_SOC_ADAU1761_I2C is not set
-# CONFIG_SND_SOC_ADAU1761_SPI is not set
-CONFIG_SND_SOC_ADAU7002=m
-CONFIG_SND_SOC_ADAU7118=m
-CONFIG_SND_SOC_ADAU7118_HW=m
-CONFIG_SND_SOC_ADAU7118_I2C=m
-# CONFIG_SND_SOC_AK4104 is not set
-# CONFIG_SND_SOC_AK4118 is not set
-# CONFIG_SND_SOC_AK4458 is not set
-# CONFIG_SND_SOC_AK4554 is not set
-# CONFIG_SND_SOC_AK4613 is not set
-# CONFIG_SND_SOC_AK4642 is not set
-# CONFIG_SND_SOC_AK5386 is not set
-# CONFIG_SND_SOC_AK5558 is not set
-# CONFIG_SND_SOC_ALC5623 is not set
-CONFIG_SND_SOC_ALC5632=m
-# CONFIG_SND_SOC_BD28623 is not set
-# CONFIG_SND_SOC_BT_SCO is not set
-CONFIG_SND_SOC_CROS_EC_CODEC=m
-# CONFIG_SND_SOC_CS35L32 is not set
-# CONFIG_SND_SOC_CS35L33 is not set
-# CONFIG_SND_SOC_CS35L34 is not set
-# CONFIG_SND_SOC_CS35L35 is not set
-# CONFIG_SND_SOC_CS35L36 is not set
-# CONFIG_SND_SOC_CS42L42 is not set
-# CONFIG_SND_SOC_CS42L51_I2C is not set
-# CONFIG_SND_SOC_CS42L52 is not set
-# CONFIG_SND_SOC_CS42L56 is not set
-# CONFIG_SND_SOC_CS42L73 is not set
-# CONFIG_SND_SOC_CS4234 is not set
-# CONFIG_SND_SOC_CS4265 is not set
-# CONFIG_SND_SOC_CS4270 is not set
-# CONFIG_SND_SOC_CS4271_I2C is not set
-# CONFIG_SND_SOC_CS4271_SPI is not set
-# CONFIG_SND_SOC_CS42XX8_I2C is not set
-# CONFIG_SND_SOC_CS43130 is not set
-# CONFIG_SND_SOC_CS4341 is not set
-# CONFIG_SND_SOC_CS4349 is not set
-# CONFIG_SND_SOC_CS53L30 is not set
-# CONFIG_SND_SOC_CX2072X is not set
-# CONFIG_SND_SOC_DA7213 is not set
-CONFIG_SND_SOC_DA7219=m
-CONFIG_SND_SOC_DMIC=m
-CONFIG_SND_SOC_HDMI_CODEC=m
-# CONFIG_SND_SOC_ES7134 is not set
-# CONFIG_SND_SOC_ES7241 is not set
-# CONFIG_SND_SOC_ES8316 is not set
-CONFIG_SND_SOC_ES8328=m
-CONFIG_SND_SOC_ES8328_I2C=m
-CONFIG_SND_SOC_ES8328_SPI=m
-# CONFIG_SND_SOC_GTM601 is not set
-# CONFIG_SND_SOC_INNO_RK3036 is not set
-# CONFIG_SND_SOC_MAX98088 is not set
-CONFIG_SND_SOC_MAX98090=m
-CONFIG_SND_SOC_MAX98357A=m
-# CONFIG_SND_SOC_MAX98504 is not set
-# CONFIG_SND_SOC_MAX9867 is not set
-CONFIG_SND_SOC_MAX98927=m
-CONFIG_SND_SOC_MAX98373=m
-CONFIG_SND_SOC_MAX98373_I2C=m
-# CONFIG_SND_SOC_MAX98390 is not set
-# CONFIG_SND_SOC_MAX9860 is not set
-# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
-# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
-# CONFIG_SND_SOC_PCM1681 is not set
-# CONFIG_SND_SOC_PCM1789_I2C is not set
-# CONFIG_SND_SOC_PCM179X_I2C is not set
-# CONFIG_SND_SOC_PCM179X_SPI is not set
-# CONFIG_SND_SOC_PCM186X_I2C is not set
-# CONFIG_SND_SOC_PCM186X_SPI is not set
-# CONFIG_SND_SOC_PCM3060_I2C is not set
-# CONFIG_SND_SOC_PCM3060_SPI is not set
-# CONFIG_SND_SOC_PCM3168A_I2C is not set
-# CONFIG_SND_SOC_PCM3168A_SPI is not set
-# CONFIG_SND_SOC_PCM5102A is not set
-# CONFIG_SND_SOC_PCM512x_I2C is not set
-# CONFIG_SND_SOC_PCM512x_SPI is not set
-CONFIG_SND_SOC_RK3328=m
-CONFIG_SND_SOC_RL6231=m
-CONFIG_SND_SOC_RT5514=m
-CONFIG_SND_SOC_RT5514_SPI=m
-# CONFIG_SND_SOC_RT5616 is not set
-# CONFIG_SND_SOC_RT5631 is not set
-CONFIG_SND_SOC_RT5640=m
-CONFIG_SND_SOC_RT5645=m
-# CONFIG_SND_SOC_RT5659 is not set
-CONFIG_SND_SOC_RT5677=m
-CONFIG_SND_SOC_RT5677_SPI=m
-CONFIG_SND_SOC_RT5682=m
-CONFIG_SND_SOC_RT5682_I2C=m
-CONFIG_SND_SOC_SGTL5000=m
-CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
-CONFIG_SND_SOC_SIMPLE_MUX=m
-# CONFIG_SND_SOC_SPDIF is not set
-# CONFIG_SND_SOC_SSM2305 is not set
-# CONFIG_SND_SOC_SSM2602_SPI is not set
-# CONFIG_SND_SOC_SSM2602_I2C is not set
-# CONFIG_SND_SOC_SSM4567 is not set
-# CONFIG_SND_SOC_STA32X is not set
-# CONFIG_SND_SOC_STA350 is not set
-# CONFIG_SND_SOC_STI_SAS is not set
-# CONFIG_SND_SOC_TAS2552 is not set
-# CONFIG_SND_SOC_TAS2562 is not set
-# CONFIG_SND_SOC_TAS2764 is not set
-# CONFIG_SND_SOC_TAS2770 is not set
-# CONFIG_SND_SOC_TAS5086 is not set
-# CONFIG_SND_SOC_TAS571X is not set
-# CONFIG_SND_SOC_TAS5720 is not set
-# CONFIG_SND_SOC_TAS6424 is not set
-# CONFIG_SND_SOC_TDA7419 is not set
-# CONFIG_SND_SOC_TFA9879 is not set
-CONFIG_SND_SOC_TLV320AIC23=m
-CONFIG_SND_SOC_TLV320AIC23_I2C=m
-# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
-# CONFIG_SND_SOC_TLV320AIC31XX is not set
-# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set
-# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set
-CONFIG_SND_SOC_TLV320AIC3X=m
-CONFIG_SND_SOC_TLV320AIC3X_I2C=m
-CONFIG_SND_SOC_TLV320AIC3X_SPI=m
-# CONFIG_SND_SOC_TLV320ADCX140 is not set
-CONFIG_SND_SOC_TS3A227E=m
-# CONFIG_SND_SOC_TSCS42XX is not set
-# CONFIG_SND_SOC_TSCS454 is not set
-# CONFIG_SND_SOC_UDA1334 is not set
-# CONFIG_SND_SOC_WM8510 is not set
-# CONFIG_SND_SOC_WM8523 is not set
-# CONFIG_SND_SOC_WM8524 is not set
-# CONFIG_SND_SOC_WM8580 is not set
-# CONFIG_SND_SOC_WM8711 is not set
-# CONFIG_SND_SOC_WM8728 is not set
-# CONFIG_SND_SOC_WM8731 is not set
-# CONFIG_SND_SOC_WM8737 is not set
-# CONFIG_SND_SOC_WM8741 is not set
-# CONFIG_SND_SOC_WM8750 is not set
-CONFIG_SND_SOC_WM8753=m
-# CONFIG_SND_SOC_WM8770 is not set
-# CONFIG_SND_SOC_WM8776 is not set
-# CONFIG_SND_SOC_WM8782 is not set
-# CONFIG_SND_SOC_WM8804_I2C is not set
-# CONFIG_SND_SOC_WM8804_SPI is not set
-CONFIG_SND_SOC_WM8903=m
-CONFIG_SND_SOC_WM8904=m
-# CONFIG_SND_SOC_WM8960 is not set
-# CONFIG_SND_SOC_WM8962 is not set
-# CONFIG_SND_SOC_WM8974 is not set
-# CONFIG_SND_SOC_WM8978 is not set
-# CONFIG_SND_SOC_WM8985 is not set
-CONFIG_SND_SOC_WM8994=m
-# CONFIG_SND_SOC_ZL38060 is not set
-# CONFIG_SND_SOC_ZX_AUD96P22 is not set
-# CONFIG_SND_SOC_MAX9759 is not set
-# CONFIG_SND_SOC_MT6351 is not set
-# CONFIG_SND_SOC_MT6358 is not set
-# CONFIG_SND_SOC_MT6660 is not set
-# CONFIG_SND_SOC_NAU8315 is not set
-# CONFIG_SND_SOC_NAU8540 is not set
-# CONFIG_SND_SOC_NAU8810 is not set
-# CONFIG_SND_SOC_NAU8822 is not set
-# CONFIG_SND_SOC_NAU8824 is not set
-# CONFIG_SND_SOC_TPA6130A2 is not set
-# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set
-# CONFIG_SND_SOC_LPASS_VA_MACRO is not set
-# CONFIG_SND_SOC_LPASS_RX_MACRO is not set
-# CONFIG_SND_SOC_LPASS_TX_MACRO is not set
-# end of CODEC drivers
-
-CONFIG_SND_SIMPLE_CARD_UTILS=m
-# CONFIG_SND_SIMPLE_CARD is not set
-# CONFIG_SND_AUDIO_GRAPH_CARD is not set
-CONFIG_SND_SYNTH_EMUX=m
-# CONFIG_SND_XEN_FRONTEND is not set
-CONFIG_SND_VIRTIO=m
-CONFIG_AC97_BUS=m
-
-#
-# HID support
-#
-CONFIG_HID=m
-CONFIG_HID_BATTERY_STRENGTH=y
-CONFIG_HIDRAW=y
-CONFIG_UHID=m
-CONFIG_HID_GENERIC=m
-
-#
-# Special HID drivers
-#
-CONFIG_HID_A4TECH=m
-# CONFIG_HID_ACCUTOUCH is not set
-CONFIG_HID_ACRUX=m
-CONFIG_HID_ACRUX_FF=y
-CONFIG_HID_APPLE=m
-# CONFIG_HID_APPLEIR is not set
-CONFIG_HID_ASUS=m
-CONFIG_HID_AUREAL=m
-CONFIG_HID_BELKIN=m
-CONFIG_HID_BETOP_FF=m
-# CONFIG_HID_BIGBEN_FF is not set
-CONFIG_HID_CHERRY=m
-CONFIG_HID_CHICONY=m
-CONFIG_HID_CORSAIR=m
-CONFIG_HID_COUGAR=m
-CONFIG_HID_MACALLY=m
-CONFIG_HID_PRODIKEYS=m
-CONFIG_HID_CMEDIA=m
-CONFIG_HID_CP2112=m
-CONFIG_HID_CREATIVE_SB0540=m
-CONFIG_HID_CYPRESS=m
-CONFIG_HID_DRAGONRISE=m
-CONFIG_DRAGONRISE_FF=y
-CONFIG_HID_EMS_FF=m
-# CONFIG_HID_ELAN is not set
-CONFIG_HID_ELECOM=m
-CONFIG_HID_ELO=m
-CONFIG_HID_EZKEY=m
-CONFIG_HID_FT260=m
-CONFIG_HID_GEMBIRD=m
-# CONFIG_HID_GFRM is not set
-CONFIG_HID_GLORIOUS=m
-CONFIG_HID_HOLTEK=m
-CONFIG_HOLTEK_FF=y
-# CONFIG_HID_GOOGLE_HAMMER is not set
-CONFIG_HID_VIVALDI=m
-# CONFIG_HID_GT683R is not set
-CONFIG_HID_KEYTOUCH=m
-CONFIG_HID_KYE=m
-CONFIG_HID_UCLOGIC=m
-CONFIG_HID_WALTOP=m
-# CONFIG_HID_VIEWSONIC is not set
-CONFIG_HID_GYRATION=m
-CONFIG_HID_ICADE=m
-# CONFIG_HID_ITE is not set
-# CONFIG_HID_JABRA is not set
-CONFIG_HID_TWINHAN=m
-CONFIG_HID_KENSINGTON=m
-CONFIG_HID_LCPOWER=m
-CONFIG_HID_LED=m
-CONFIG_HID_LENOVO=m
-CONFIG_HID_LOGITECH=m
-CONFIG_HID_LOGITECH_DJ=m
-CONFIG_HID_LOGITECH_HIDPP=m
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIRUMBLEPAD2_FF=y
-CONFIG_LOGIG940_FF=y
-CONFIG_LOGIWHEELS_FF=y
-CONFIG_HID_MAGICMOUSE=m
-CONFIG_HID_MALTRON=m
-# CONFIG_HID_MAYFLASH is not set
-# CONFIG_HID_REDRAGON is not set
-CONFIG_HID_MICROSOFT=m
-CONFIG_HID_MONTEREY=m
-CONFIG_HID_MULTITOUCH=m
-# CONFIG_HID_NTI is not set
-CONFIG_HID_NTRIG=m
-CONFIG_HID_ORTEK=m
-CONFIG_HID_PANTHERLORD=m
-CONFIG_PANTHERLORD_FF=y
-CONFIG_HID_PENMOUNT=m
-CONFIG_HID_PETALYNX=m
-CONFIG_HID_PICOLCD=m
-CONFIG_HID_PICOLCD_FB=y
-CONFIG_HID_PICOLCD_BACKLIGHT=y
-# CONFIG_HID_PICOLCD_LCD is not set
-CONFIG_HID_PICOLCD_LEDS=y
-CONFIG_HID_PICOLCD_CIR=y
-CONFIG_HID_PLANTRONICS=m
-CONFIG_HID_PLAYSTATION=m
-CONFIG_PLAYSTATION_FF=y
-CONFIG_HID_PRIMAX=m
-# CONFIG_HID_RETRODE is not set
-CONFIG_HID_ROCCAT=m
-CONFIG_HID_SAITEK=m
-CONFIG_HID_SAMSUNG=m
-CONFIG_HID_SEMITEK=m
-CONFIG_HID_SONY=m
-CONFIG_SONY_FF=y
-CONFIG_HID_SPEEDLINK=m
-# CONFIG_HID_STEAM is not set
-CONFIG_HID_STEELSERIES=m
-CONFIG_HID_SUNPLUS=m
-CONFIG_HID_RMI=m
-CONFIG_HID_GREENASIA=m
-CONFIG_GREENASIA_FF=y
-CONFIG_HID_SMARTJOYPLUS=m
-CONFIG_SMARTJOYPLUS_FF=y
-CONFIG_HID_TIVO=m
-CONFIG_HID_TOPSEED=m
-CONFIG_HID_THINGM=m
-CONFIG_HID_THRUSTMASTER=m
-CONFIG_THRUSTMASTER_FF=y
-# CONFIG_HID_UDRAW_PS3 is not set
-CONFIG_HID_U2FZERO=m
-CONFIG_HID_WACOM=m
-CONFIG_HID_WIIMOTE=m
-CONFIG_HID_XINMO=m
-CONFIG_HID_ZEROPLUS=m
-CONFIG_ZEROPLUS_FF=y
-CONFIG_HID_ZYDACRON=m
-CONFIG_HID_SENSOR_HUB=m
-CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
-CONFIG_HID_ALPS=m
-CONFIG_HID_MCP2221=m
-# end of Special HID drivers
-
-#
-# USB HID support
-#
-CONFIG_USB_HID=m
-CONFIG_HID_PID=y
-CONFIG_USB_HIDDEV=y
-
-#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-# end of USB HID Boot Protocol drivers
-# end of USB HID support
-
-#
-# I2C HID support
-#
-CONFIG_I2C_HID_ACPI=m
-CONFIG_I2C_HID_OF=m
-CONFIG_I2C_HID_OF_GOODIX=m
-# end of I2C HID support
-
-CONFIG_I2C_HID_CORE=m
-
-#
-# Surface System Aggregator Module HID support
-#
-CONFIG_SURFACE_KBD=m
-# end of Surface System Aggregator Module HID support
-
-CONFIG_SURFACE_HID_CORE=m
-# end of HID support
-
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-CONFIG_USB_LED_TRIG=y
-CONFIG_USB_ULPI_BUS=m
-CONFIG_USB_CONN_GPIO=m
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB=m
-CONFIG_USB_PCI=y
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEFAULT_PERSIST=y
-# CONFIG_USB_FEW_INIT_RETRIES is not set
-CONFIG_USB_DYNAMIC_MINORS=y
-# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_PRODUCTLIST is not set
-# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set
-CONFIG_USB_LEDS_TRIGGER_USBPORT=m
-CONFIG_USB_AUTOSUSPEND_DELAY=2
-CONFIG_USB_MON=m
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-CONFIG_USB_XHCI_HCD=m
-# CONFIG_USB_XHCI_DBGCAP is not set
-CONFIG_USB_XHCI_PCI=m
-# CONFIG_USB_XHCI_PCI_RENESAS is not set
-CONFIG_USB_XHCI_PLATFORM=m
-CONFIG_USB_XHCI_HISTB=m
-# CONFIG_USB_XHCI_MVEBU is not set
-CONFIG_USB_XHCI_TEGRA=m
-CONFIG_USB_EHCI_HCD=m
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_EHCI_PCI=m
-CONFIG_USB_EHCI_FSL=m
-CONFIG_USB_EHCI_HCD_ORION=m
-CONFIG_USB_EHCI_TEGRA=m
-CONFIG_USB_EHCI_HCD_PLATFORM=m
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_FOTG210_HCD is not set
-# CONFIG_USB_MAX3421_HCD is not set
-CONFIG_USB_OHCI_HCD=m
-CONFIG_USB_OHCI_HCD_PCI=m
-# CONFIG_USB_OHCI_HCD_SSB is not set
-CONFIG_USB_OHCI_HCD_PLATFORM=m
-# CONFIG_USB_UHCI_HCD is not set
-CONFIG_USB_U132_HCD=m
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_HCD_BCMA is not set
-# CONFIG_USB_HCD_SSB is not set
-# CONFIG_USB_HCD_TEST_MODE is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=m
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_REALTEK=m
-CONFIG_REALTEK_AUTOPM=y
-CONFIG_USB_STORAGE_DATAFAB=m
-CONFIG_USB_STORAGE_FREECOM=m
-CONFIG_USB_STORAGE_ISD200=m
-CONFIG_USB_STORAGE_USBAT=m
-CONFIG_USB_STORAGE_SDDR09=m
-CONFIG_USB_STORAGE_SDDR55=m
-CONFIG_USB_STORAGE_JUMPSHOT=m
-CONFIG_USB_STORAGE_ALAUDA=m
-CONFIG_USB_STORAGE_ONETOUCH=m
-CONFIG_USB_STORAGE_KARMA=m
-CONFIG_USB_STORAGE_CYPRESS_ATACB=m
-CONFIG_USB_STORAGE_ENE_UB6250=m
-CONFIG_USB_UAS=m
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-CONFIG_USBIP_CORE=m
-CONFIG_USBIP_VHCI_HCD=m
-CONFIG_USBIP_VHCI_HC_PORTS=15
-CONFIG_USBIP_VHCI_NR_HCS=8
-CONFIG_USBIP_HOST=m
-CONFIG_USBIP_VUDC=m
-# CONFIG_USBIP_DEBUG is not set
-CONFIG_USB_CDNS_SUPPORT=m
-CONFIG_USB_CDNS_HOST=y
-CONFIG_USB_CDNS3=m
-# CONFIG_USB_CDNS3_GADGET is not set
-# CONFIG_USB_CDNS3_HOST is not set
-CONFIG_USB_CDNS3_PCI_WRAP=m
-CONFIG_USB_CDNS3_IMX=m
-CONFIG_USB_CDNSP_PCI=m
-CONFIG_USB_CDNSP_GADGET=y
-CONFIG_USB_CDNSP_HOST=y
-CONFIG_USB_MUSB_HDRC=m
-# CONFIG_USB_MUSB_HOST is not set
-# CONFIG_USB_MUSB_GADGET is not set
-CONFIG_USB_MUSB_DUAL_ROLE=y
-
-#
-# Platform Glue Layer
-#
-CONFIG_USB_MUSB_SUNXI=m
-
-#
-# MUSB DMA mode
-#
-# CONFIG_MUSB_PIO_ONLY is not set
-CONFIG_USB_DWC3=m
-# CONFIG_USB_DWC3_ULPI is not set
-# CONFIG_USB_DWC3_HOST is not set
-# CONFIG_USB_DWC3_GADGET is not set
-CONFIG_USB_DWC3_DUAL_ROLE=y
-
-#
-# Platform Glue Driver Support
-#
-CONFIG_USB_DWC3_PCI=m
-CONFIG_USB_DWC3_HAPS=m
-CONFIG_USB_DWC3_MESON_G12A=m
-CONFIG_USB_DWC3_OF_SIMPLE=m
-CONFIG_USB_DWC3_QCOM=m
-CONFIG_USB_DWC3_IMX8MP=m
-CONFIG_USB_DWC2=m
-# CONFIG_USB_DWC2_HOST is not set
-
-#
-# Gadget/Dual-role mode requires USB Gadget support to be enabled
-#
-# CONFIG_USB_DWC2_PERIPHERAL is not set
-CONFIG_USB_DWC2_DUAL_ROLE=y
-# CONFIG_USB_DWC2_PCI is not set
-# CONFIG_USB_DWC2_DEBUG is not set
-# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
-CONFIG_USB_CHIPIDEA=m
-CONFIG_USB_CHIPIDEA_UDC=y
-CONFIG_USB_CHIPIDEA_HOST=y
-CONFIG_USB_CHIPIDEA_PCI=m
-CONFIG_USB_CHIPIDEA_MSM=m
-CONFIG_USB_CHIPIDEA_IMX=m
-CONFIG_USB_CHIPIDEA_GENERIC=m
-CONFIG_USB_CHIPIDEA_TEGRA=m
-CONFIG_USB_ISP1760=m
-CONFIG_USB_ISP1760_HCD=y
-CONFIG_USB_ISP1761_UDC=y
-# CONFIG_USB_ISP1760_HOST_ROLE is not set
-# CONFIG_USB_ISP1760_GADGET_ROLE is not set
-CONFIG_USB_ISP1760_DUAL_ROLE=y
-
-#
-# USB port drivers
-#
-# CONFIG_USB_USS720 is not set
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_SIMPLE=m
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP210X=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_F81232=m
-# CONFIG_USB_SERIAL_F8153X is not set
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-CONFIG_USB_SERIAL_KEYSPAN=m
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_METRO=m
-CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7715_PARPORT=y
-CONFIG_USB_SERIAL_MOS7840=m
-CONFIG_USB_SERIAL_MXUPORT=m
-CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_QCAUX=m
-CONFIG_USB_SERIAL_QUALCOMM=m
-CONFIG_USB_SERIAL_SPCP8X5=m
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-CONFIG_USB_SERIAL_SYMBOL=m
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_WWAN=m
-CONFIG_USB_SERIAL_OPTION=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_SERIAL_OPTICON=m
-CONFIG_USB_SERIAL_XSENS_MT=m
-CONFIG_USB_SERIAL_WISHBONE=m
-CONFIG_USB_SERIAL_SSU100=m
-CONFIG_USB_SERIAL_QT2=m
-# CONFIG_USB_SERIAL_UPD78F0730 is not set
-CONFIG_USB_SERIAL_XR=m
-CONFIG_USB_SERIAL_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_ADUTUX=m
-CONFIG_USB_SEVSEG=m
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_LCD=m
-CONFIG_USB_CYPRESS_CY7C63=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
-CONFIG_USB_APPLEDISPLAY=m
-CONFIG_APPLE_MFI_FASTCHARGE=m
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_LD=m
-CONFIG_USB_TRANCEVIBRATOR=m
-CONFIG_USB_IOWARRIOR=m
-CONFIG_USB_TEST=m
-CONFIG_USB_EHSET_TEST_FIXTURE=m
-CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_YUREX=m
-CONFIG_USB_EZUSB_FX2=m
-# CONFIG_USB_HUB_USB251XB is not set
-CONFIG_USB_HSIC_USB3503=m
-# CONFIG_USB_HSIC_USB4604 is not set
-# CONFIG_USB_LINK_LAYER_TEST is not set
-CONFIG_USB_CHAOSKEY=m
-# CONFIG_USB_ATM is not set
-
-#
-# USB Physical Layer drivers
-#
-CONFIG_USB_PHY=y
-CONFIG_NOP_USB_XCEIV=m
-# CONFIG_USB_GPIO_VBUS is not set
-# CONFIG_USB_ISP1301 is not set
-CONFIG_USB_MXS_PHY=m
-CONFIG_USB_TEGRA_PHY=m
-CONFIG_USB_ULPI=y
-CONFIG_USB_ULPI_VIEWPORT=y
-# end of USB Physical Layer drivers
-
-CONFIG_USB_GADGET=m
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-# CONFIG_USB_GADGET_DEBUG_FS is not set
-CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
-# CONFIG_U_SERIAL_CONSOLE is not set
-
-#
-# USB Peripheral Controller
-#
-# CONFIG_USB_FOTG210_UDC is not set
-# CONFIG_USB_GR_UDC is not set
-# CONFIG_USB_R8A66597 is not set
-# CONFIG_USB_PXA27X is not set
-# CONFIG_USB_MV_UDC is not set
-# CONFIG_USB_MV_U3D is not set
-# CONFIG_USB_SNP_UDC_PLAT is not set
-# CONFIG_USB_M66592 is not set
-# CONFIG_USB_BDC_UDC is not set
-# CONFIG_USB_AMD5536UDC is not set
-# CONFIG_USB_NET2272 is not set
-CONFIG_USB_NET2280=m
-# CONFIG_USB_GOKU is not set
-# CONFIG_USB_EG20T is not set
-# CONFIG_USB_GADGET_XILINX is not set
-CONFIG_USB_MAX3420_UDC=m
-CONFIG_USB_TEGRA_XUDC=m
-# CONFIG_USB_DUMMY_HCD is not set
-# end of USB Peripheral Controller
-
-CONFIG_USB_LIBCOMPOSITE=m
-CONFIG_USB_F_ACM=m
-CONFIG_USB_F_SS_LB=m
-CONFIG_USB_U_SERIAL=m
-CONFIG_USB_U_ETHER=m
-CONFIG_USB_U_AUDIO=m
-CONFIG_USB_F_SERIAL=m
-CONFIG_USB_F_OBEX=m
-CONFIG_USB_F_NCM=m
-CONFIG_USB_F_ECM=m
-CONFIG_USB_F_PHONET=m
-CONFIG_USB_F_EEM=m
-CONFIG_USB_F_SUBSET=m
-CONFIG_USB_F_RNDIS=m
-CONFIG_USB_F_MASS_STORAGE=m
-CONFIG_USB_F_FS=m
-CONFIG_USB_F_UAC1=m
-CONFIG_USB_F_UAC2=m
-CONFIG_USB_F_UVC=m
-CONFIG_USB_F_MIDI=m
-CONFIG_USB_F_HID=m
-CONFIG_USB_F_PRINTER=m
-CONFIG_USB_CONFIGFS=m
-CONFIG_USB_CONFIGFS_SERIAL=y
-CONFIG_USB_CONFIGFS_ACM=y
-CONFIG_USB_CONFIGFS_OBEX=y
-CONFIG_USB_CONFIGFS_NCM=y
-CONFIG_USB_CONFIGFS_ECM=y
-CONFIG_USB_CONFIGFS_ECM_SUBSET=y
-CONFIG_USB_CONFIGFS_RNDIS=y
-CONFIG_USB_CONFIGFS_EEM=y
-CONFIG_USB_CONFIGFS_PHONET=y
-CONFIG_USB_CONFIGFS_MASS_STORAGE=y
-CONFIG_USB_CONFIGFS_F_LB_SS=y
-CONFIG_USB_CONFIGFS_F_FS=y
-CONFIG_USB_CONFIGFS_F_UAC1=y
-# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
-CONFIG_USB_CONFIGFS_F_UAC2=y
-CONFIG_USB_CONFIGFS_F_MIDI=y
-CONFIG_USB_CONFIGFS_F_HID=y
-CONFIG_USB_CONFIGFS_F_UVC=y
-CONFIG_USB_CONFIGFS_F_PRINTER=y
-# CONFIG_USB_CONFIGFS_F_TCM is not set
-
-#
-# USB Gadget precomposed configurations
-#
-# CONFIG_USB_ZERO is not set
-# CONFIG_USB_AUDIO is not set
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_RNDIS=y
-# CONFIG_USB_ETH_EEM is not set
-# CONFIG_USB_G_NCM is not set
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FUNCTIONFS=m
-CONFIG_USB_FUNCTIONFS_ETH=y
-CONFIG_USB_FUNCTIONFS_RNDIS=y
-CONFIG_USB_FUNCTIONFS_GENERIC=y
-# CONFIG_USB_MASS_STORAGE is not set
-# CONFIG_USB_GADGET_TARGET is not set
-CONFIG_USB_G_SERIAL=m
-# CONFIG_USB_MIDI_GADGET is not set
-# CONFIG_USB_G_PRINTER is not set
-# CONFIG_USB_CDC_COMPOSITE is not set
-# CONFIG_USB_G_NOKIA is not set
-# CONFIG_USB_G_ACM_MS is not set
-# CONFIG_USB_G_MULTI is not set
-# CONFIG_USB_G_HID is not set
-# CONFIG_USB_G_DBGP is not set
-# CONFIG_USB_G_WEBCAM is not set
-CONFIG_USB_RAW_GADGET=m
-# end of USB Gadget precomposed configurations
-
-CONFIG_TYPEC=m
-CONFIG_TYPEC_TCPM=m
-CONFIG_TYPEC_TCPCI=m
-CONFIG_TYPEC_RT1711H=m
-CONFIG_TYPEC_MT6360=m
-CONFIG_TYPEC_TCPCI_MAXIM=m
-CONFIG_TYPEC_FUSB302=m
-CONFIG_TYPEC_UCSI=m
-CONFIG_UCSI_CCG=m
-CONFIG_UCSI_ACPI=m
-CONFIG_TYPEC_TPS6598X=m
-CONFIG_TYPEC_HD3SS3220=m
-CONFIG_TYPEC_STUSB160X=m
-CONFIG_TYPEC_QCOM_PMIC=m
-
-#
-# USB Type-C Multiplexer/DeMultiplexer Switch support
-#
-CONFIG_TYPEC_MUX_PI3USB30532=m
-# end of USB Type-C Multiplexer/DeMultiplexer Switch support
-
-#
-# USB Type-C Alternate Mode drivers
-#
-CONFIG_TYPEC_DP_ALTMODE=m
-CONFIG_TYPEC_NVIDIA_ALTMODE=m
-# end of USB Type-C Alternate Mode drivers
-
-CONFIG_USB_ROLE_SWITCH=m
-CONFIG_MMC=y
-CONFIG_PWRSEQ_EMMC=y
-# CONFIG_PWRSEQ_SD8787 is not set
-CONFIG_PWRSEQ_SIMPLE=y
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_MINORS=256
-CONFIG_SDIO_UART=m
-# CONFIG_MMC_TEST is not set
-CONFIG_MMC_CRYPTO=y
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_ARMMMCI=m
-CONFIG_MMC_QCOM_DML=y
-CONFIG_MMC_STM32_SDMMC=y
-CONFIG_MMC_SDHCI=m
-CONFIG_MMC_SDHCI_IO_ACCESSORS=y
-CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=y
-CONFIG_MMC_SDHCI_ACPI=m
-CONFIG_MMC_SDHCI_PLTFM=m
-CONFIG_MMC_SDHCI_OF_ARASAN=m
-CONFIG_MMC_SDHCI_OF_ASPEED=m
-# CONFIG_MMC_SDHCI_OF_AT91 is not set
-CONFIG_MMC_SDHCI_OF_ESDHC=m
-# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
-# CONFIG_MMC_SDHCI_CADENCE is not set
-CONFIG_MMC_SDHCI_ESDHC_IMX=m
-CONFIG_MMC_SDHCI_TEGRA=m
-# CONFIG_MMC_SDHCI_PXAV3 is not set
-CONFIG_MMC_SDHCI_F_SDH30=m
-# CONFIG_MMC_SDHCI_MILBEAUT is not set
-CONFIG_MMC_SDHCI_IPROC=m
-CONFIG_MMC_MESON_GX=m
-# CONFIG_MMC_MESON_MX_SDIO is not set
-CONFIG_MMC_ALCOR=m
-CONFIG_MMC_SDHCI_MSM=m
-CONFIG_MMC_MXC=m
-CONFIG_MMC_TIFM_SD=m
-CONFIG_MMC_SPI=m
-CONFIG_MMC_CB710=m
-CONFIG_MMC_VIA_SDMMC=m
-CONFIG_MMC_DW=m
-CONFIG_MMC_DW_PLTFM=m
-# CONFIG_MMC_DW_BLUEFIELD is not set
-# CONFIG_MMC_DW_EXYNOS is not set
-# CONFIG_MMC_DW_HI3798CV200 is not set
-CONFIG_MMC_DW_K3=m
-# CONFIG_MMC_DW_PCI is not set
-CONFIG_MMC_DW_ROCKCHIP=m
-CONFIG_MMC_VUB300=m
-CONFIG_MMC_USHC=m
-# CONFIG_MMC_USDHI6ROL0 is not set
-CONFIG_MMC_REALTEK_PCI=m
-CONFIG_MMC_REALTEK_USB=m
-CONFIG_MMC_SUNXI=m
-CONFIG_MMC_CQHCI=m
-CONFIG_MMC_HSQ=m
-CONFIG_MMC_TOSHIBA_PCI=m
-CONFIG_MMC_BCM2835=m
-# CONFIG_MMC_MTK is not set
-CONFIG_MMC_SDHCI_XENON=m
-# CONFIG_MMC_SDHCI_OMAP is not set
-CONFIG_MMC_SDHCI_AM654=m
-CONFIG_MEMSTICK=m
-# CONFIG_MEMSTICK_DEBUG is not set
-
-#
-# MemoryStick drivers
-#
-# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
-CONFIG_MSPRO_BLOCK=m
-# CONFIG_MS_BLOCK is not set
-
-#
-# MemoryStick Host Controller Drivers
-#
-CONFIG_MEMSTICK_TIFM_MS=m
-CONFIG_MEMSTICK_JMICRON_38X=m
-CONFIG_MEMSTICK_R592=m
-CONFIG_MEMSTICK_REALTEK_PCI=m
-CONFIG_MEMSTICK_REALTEK_USB=m
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-# CONFIG_LEDS_CLASS_FLASH is not set
-CONFIG_LEDS_CLASS_MULTICOLOR=m
-CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y
-
-#
-# LED drivers
-#
-# CONFIG_LEDS_AN30259A is not set
-# CONFIG_LEDS_AW2013 is not set
-# CONFIG_LEDS_BCM6328 is not set
-# CONFIG_LEDS_BCM6358 is not set
-# CONFIG_LEDS_CR0014114 is not set
-# CONFIG_LEDS_EL15203000 is not set
-# CONFIG_LEDS_LM3530 is not set
-# CONFIG_LEDS_LM3532 is not set
-# CONFIG_LEDS_LM3642 is not set
-# CONFIG_LEDS_LM3692X is not set
-# CONFIG_LEDS_PCA9532 is not set
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_LP3944=m
-# CONFIG_LEDS_LP3952 is not set
-# CONFIG_LEDS_LP50XX is not set
-CONFIG_LEDS_LP55XX_COMMON=m
-# CONFIG_LEDS_LP5521 is not set
-# CONFIG_LEDS_LP5523 is not set
-# CONFIG_LEDS_LP5562 is not set
-# CONFIG_LEDS_LP8501 is not set
-# CONFIG_LEDS_LP8860 is not set
-CONFIG_LEDS_PCA955X=m
-# CONFIG_LEDS_PCA955X_GPIO is not set
-# CONFIG_LEDS_PCA963X is not set
-CONFIG_LEDS_DAC124S085=m
-CONFIG_LEDS_PWM=m
-CONFIG_LEDS_REGULATOR=m
-CONFIG_LEDS_BD2802=m
-CONFIG_LEDS_LT3593=m
-# CONFIG_LEDS_TCA6507 is not set
-# CONFIG_LEDS_TLC591XX is not set
-# CONFIG_LEDS_LM355x is not set
-# CONFIG_LEDS_IS31FL319X is not set
-# CONFIG_LEDS_IS31FL32XX is not set
-
-#
-# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
-#
-# CONFIG_LEDS_BLINKM is not set
-# CONFIG_LEDS_SYSCON is not set
-# CONFIG_LEDS_MLXREG is not set
-# CONFIG_LEDS_USER is not set
-CONFIG_LEDS_SPI_BYTE=m
-CONFIG_LEDS_TI_LMU_COMMON=m
-CONFIG_LEDS_LM3697=m
-
-#
-# Flash and Torch LED drivers
-#
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_ONESHOT=m
-CONFIG_LEDS_TRIGGER_DISK=y
-CONFIG_LEDS_TRIGGER_MTD=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-CONFIG_LEDS_TRIGGER_BACKLIGHT=m
-CONFIG_LEDS_TRIGGER_CPU=y
-# CONFIG_LEDS_TRIGGER_ACTIVITY is not set
-CONFIG_LEDS_TRIGGER_GPIO=m
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-CONFIG_LEDS_TRIGGER_TRANSIENT=m
-CONFIG_LEDS_TRIGGER_CAMERA=m
-CONFIG_LEDS_TRIGGER_PANIC=y
-# CONFIG_LEDS_TRIGGER_NETDEV is not set
-# CONFIG_LEDS_TRIGGER_PATTERN is not set
-CONFIG_LEDS_TRIGGER_AUDIO=m
-CONFIG_LEDS_TRIGGER_TTY=m
-CONFIG_ACCESSIBILITY=y
-CONFIG_A11Y_BRAILLE_CONSOLE=y
-
-#
-# Speakup console speech
-#
-CONFIG_SPEAKUP=m
-CONFIG_SPEAKUP_SYNTH_ACNTSA=m
-CONFIG_SPEAKUP_SYNTH_APOLLO=m
-CONFIG_SPEAKUP_SYNTH_AUDPTR=m
-CONFIG_SPEAKUP_SYNTH_BNS=m
-CONFIG_SPEAKUP_SYNTH_DECTLK=m
-CONFIG_SPEAKUP_SYNTH_DECEXT=m
-CONFIG_SPEAKUP_SYNTH_LTLK=m
-CONFIG_SPEAKUP_SYNTH_SOFT=m
-CONFIG_SPEAKUP_SYNTH_SPKOUT=m
-CONFIG_SPEAKUP_SYNTH_TXPRT=m
-CONFIG_SPEAKUP_SYNTH_DUMMY=m
-# end of Speakup console speech
-
-CONFIG_INFINIBAND=m
-CONFIG_INFINIBAND_USER_MAD=m
-CONFIG_INFINIBAND_USER_ACCESS=m
-CONFIG_INFINIBAND_USER_MEM=y
-CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
-CONFIG_INFINIBAND_ADDR_TRANS=y
-CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
-CONFIG_INFINIBAND_VIRT_DMA=y
-CONFIG_INFINIBAND_MTHCA=m
-CONFIG_INFINIBAND_MTHCA_DEBUG=y
-CONFIG_INFINIBAND_CXGB4=m
-CONFIG_INFINIBAND_EFA=m
-CONFIG_INFINIBAND_I40IW=m
-CONFIG_MLX4_INFINIBAND=m
-CONFIG_MLX5_INFINIBAND=m
-CONFIG_INFINIBAND_OCRDMA=m
-# CONFIG_INFINIBAND_HNS is not set
-# CONFIG_INFINIBAND_BNXT_RE is not set
-CONFIG_INFINIBAND_QEDR=m
-CONFIG_RDMA_RXE=m
-CONFIG_RDMA_SIW=m
-CONFIG_INFINIBAND_IPOIB=m
-CONFIG_INFINIBAND_IPOIB_CM=y
-CONFIG_INFINIBAND_IPOIB_DEBUG=y
-# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
-CONFIG_INFINIBAND_SRP=m
-CONFIG_INFINIBAND_SRPT=m
-CONFIG_INFINIBAND_ISER=m
-CONFIG_INFINIBAND_ISERT=m
-CONFIG_INFINIBAND_RTRS=m
-CONFIG_INFINIBAND_RTRS_CLIENT=m
-CONFIG_INFINIBAND_RTRS_SERVER=m
-CONFIG_EDAC_SUPPORT=y
-CONFIG_EDAC=y
-CONFIG_EDAC_LEGACY_SYSFS=y
-# CONFIG_EDAC_DEBUG is not set
-CONFIG_EDAC_THUNDERX=m
-CONFIG_EDAC_ALTERA=y
-CONFIG_EDAC_ALTERA_SDRAM=y
-CONFIG_EDAC_ALTERA_OCRAM=y
-CONFIG_EDAC_ALTERA_ETHERNET=y
-CONFIG_EDAC_ALTERA_NAND=y
-CONFIG_EDAC_ALTERA_USB=y
-CONFIG_EDAC_ALTERA_SDMMC=y
-CONFIG_EDAC_XGENE=m
-# CONFIG_EDAC_QCOM is not set
-CONFIG_EDAC_DMC520=m
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-CONFIG_RTC_SYSTOHC=y
-CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-CONFIG_RTC_NVMEM=y
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_ABB5ZES3 is not set
-# CONFIG_RTC_DRV_ABEOZ9 is not set
-# CONFIG_RTC_DRV_ABX80X is not set
-CONFIG_RTC_DRV_DS1307=y
-# CONFIG_RTC_DRV_DS1307_CENTURY is not set
-# CONFIG_RTC_DRV_DS1374 is not set
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_HYM8563 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-CONFIG_RTC_DRV_MAX77686=y
-CONFIG_RTC_DRV_RK808=m
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_ISL12022 is not set
-# CONFIG_RTC_DRV_ISL12026 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-# CONFIG_RTC_DRV_PCF8523 is not set
-# CONFIG_RTC_DRV_PCF85063 is not set
-# CONFIG_RTC_DRV_PCF85363 is not set
-# CONFIG_RTC_DRV_PCF8563 is not set
-# CONFIG_RTC_DRV_PCF8583 is not set
-# CONFIG_RTC_DRV_M41T80 is not set
-CONFIG_RTC_DRV_BD70528=m
-# CONFIG_RTC_DRV_BQ32K is not set
-# CONFIG_RTC_DRV_S35390A is not set
-# CONFIG_RTC_DRV_FM3130 is not set
-# CONFIG_RTC_DRV_RX8010 is not set
-# CONFIG_RTC_DRV_RX8581 is not set
-# CONFIG_RTC_DRV_RX8025 is not set
-# CONFIG_RTC_DRV_EM3027 is not set
-# CONFIG_RTC_DRV_RV3028 is not set
-# CONFIG_RTC_DRV_RV3032 is not set
-# CONFIG_RTC_DRV_RV8803 is not set
-# CONFIG_RTC_DRV_SD3078 is not set
-
-#
-# SPI RTC drivers
-#
-# CONFIG_RTC_DRV_M41T93 is not set
-# CONFIG_RTC_DRV_M41T94 is not set
-# CONFIG_RTC_DRV_DS1302 is not set
-# CONFIG_RTC_DRV_DS1305 is not set
-# CONFIG_RTC_DRV_DS1343 is not set
-# CONFIG_RTC_DRV_DS1347 is not set
-# CONFIG_RTC_DRV_DS1390 is not set
-# CONFIG_RTC_DRV_MAX6916 is not set
-# CONFIG_RTC_DRV_R9701 is not set
-# CONFIG_RTC_DRV_RX4581 is not set
-# CONFIG_RTC_DRV_RS5C348 is not set
-# CONFIG_RTC_DRV_MAX6902 is not set
-# CONFIG_RTC_DRV_PCF2123 is not set
-# CONFIG_RTC_DRV_MCP795 is not set
-CONFIG_RTC_I2C_AND_SPI=y
-
-#
-# SPI and I2C RTC drivers
-#
-# CONFIG_RTC_DRV_DS3232 is not set
-# CONFIG_RTC_DRV_PCF2127 is not set
-# CONFIG_RTC_DRV_RV3029C2 is not set
-# CONFIG_RTC_DRV_RX6110 is not set
-
-#
-# Platform RTC drivers
-#
-# CONFIG_RTC_DRV_DS1286 is not set
-# CONFIG_RTC_DRV_DS1511 is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_DS1685_FAMILY is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_DS2404 is not set
-CONFIG_RTC_DRV_EFI=y
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T35 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_MSM6242 is not set
-# CONFIG_RTC_DRV_BQ4802 is not set
-# CONFIG_RTC_DRV_RP5C01 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-# CONFIG_RTC_DRV_ZYNQMP is not set
-# CONFIG_RTC_DRV_CROS_EC is not set
-# CONFIG_RTC_DRV_NTXEC is not set
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_RTC_DRV_IMXDI=m
-CONFIG_RTC_DRV_MESON_VRTC=m
-# CONFIG_RTC_DRV_PL030 is not set
-CONFIG_RTC_DRV_PL031=y
-CONFIG_RTC_DRV_SUN6I=y
-CONFIG_RTC_DRV_MV=m
-CONFIG_RTC_DRV_ARMADA38X=m
-CONFIG_RTC_DRV_CADENCE=m
-# CONFIG_RTC_DRV_FTRTC010 is not set
-CONFIG_RTC_DRV_PM8XXX=m
-CONFIG_RTC_DRV_TEGRA=y
-CONFIG_RTC_DRV_MXC=m
-CONFIG_RTC_DRV_MXC_V2=m
-# CONFIG_RTC_DRV_SNVS is not set
-CONFIG_RTC_DRV_IMX_SC=m
-CONFIG_RTC_DRV_XGENE=y
-# CONFIG_RTC_DRV_R7301 is not set
-
-#
-# HID Sensor RTC drivers
-#
-# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
-# CONFIG_RTC_DRV_GOLDFISH is not set
-CONFIG_DMADEVICES=y
-# CONFIG_DMADEVICES_DEBUG is not set
-
-#
-# DMA Devices
-#
-CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
-CONFIG_DMA_ENGINE=y
-CONFIG_DMA_VIRTUAL_CHANNELS=y
-CONFIG_DMA_ACPI=y
-CONFIG_DMA_OF=y
-# CONFIG_ALTERA_MSGDMA is not set
-# CONFIG_AMBA_PL08X is not set
-# CONFIG_AXI_DMAC is not set
-# CONFIG_BCM_SBA_RAID is not set
-CONFIG_DMA_BCM2835=y
-CONFIG_DMA_SUN6I=m
-# CONFIG_DW_AXI_DMAC is not set
-# CONFIG_FSL_EDMA is not set
-CONFIG_FSL_QDMA=m
-CONFIG_HISI_DMA=m
-CONFIG_IMX_DMA=m
-CONFIG_IMX_SDMA=m
-# CONFIG_INTEL_IDMA64 is not set
-CONFIG_K3_DMA=m
-CONFIG_MV_XOR=y
-CONFIG_MV_XOR_V2=y
-# CONFIG_MXS_DMA is not set
-CONFIG_MX3_IPU=y
-CONFIG_MX3_IPU_IRQS=4
-CONFIG_PL330_DMA=m
-CONFIG_PLX_DMA=m
-CONFIG_TEGRA20_APB_DMA=y
-CONFIG_TEGRA210_ADMA=y
-CONFIG_XGENE_DMA=m
-# CONFIG_XILINX_DMA is not set
-# CONFIG_XILINX_ZYNQMP_DMA is not set
-CONFIG_XILINX_ZYNQMP_DPDMA=m
-CONFIG_QCOM_BAM_DMA=m
-CONFIG_QCOM_GPI_DMA=m
-CONFIG_QCOM_HIDMA_MGMT=m
-CONFIG_QCOM_HIDMA=m
-# CONFIG_DW_DMAC is not set
-# CONFIG_DW_DMAC_PCI is not set
-CONFIG_DW_EDMA=m
-CONFIG_DW_EDMA_PCIE=m
-CONFIG_SF_PDMA=m
-
-#
-# DMA Clients
-#
-CONFIG_ASYNC_TX_DMA=y
-# CONFIG_DMATEST is not set
-CONFIG_DMA_ENGINE_RAID=y
-
-#
-# DMABUF options
-#
-CONFIG_SYNC_FILE=y
-# CONFIG_SW_SYNC is not set
-# CONFIG_UDMABUF is not set
-# CONFIG_DMABUF_MOVE_NOTIFY is not set
-# CONFIG_DMABUF_DEBUG is not set
-# CONFIG_DMABUF_SELFTESTS is not set
-# CONFIG_DMABUF_HEAPS is not set
-# end of DMABUF options
-
-# CONFIG_AUXDISPLAY is not set
-# CONFIG_PANEL is not set
-CONFIG_UIO=m
-CONFIG_UIO_CIF=m
-# CONFIG_UIO_PDRV_GENIRQ is not set
-# CONFIG_UIO_DMEM_GENIRQ is not set
-CONFIG_UIO_AEC=m
-CONFIG_UIO_SERCOS3=m
-CONFIG_UIO_PCI_GENERIC=m
-CONFIG_UIO_NETX=m
-# CONFIG_UIO_PRUSS is not set
-CONFIG_UIO_MF624=m
-CONFIG_VFIO_IOMMU_TYPE1=m
-CONFIG_VFIO_VIRQFD=m
-CONFIG_VFIO=m
-CONFIG_VFIO_NOIOMMU=y
-CONFIG_VFIO_PCI=m
-CONFIG_VFIO_PCI_MMAP=y
-CONFIG_VFIO_PCI_INTX=y
-# CONFIG_VFIO_PLATFORM is not set
-# CONFIG_VFIO_MDEV is not set
-CONFIG_VIRT_DRIVERS=y
-CONFIG_VIRTIO=m
-CONFIG_VIRTIO_PCI_LIB=m
-CONFIG_VIRTIO_MENU=y
-CONFIG_VIRTIO_PCI=m
-CONFIG_VIRTIO_PCI_LEGACY=y
-CONFIG_VIRTIO_VDPA=m
-CONFIG_VIRTIO_PMEM=m
-CONFIG_VIRTIO_BALLOON=m
-CONFIG_VIRTIO_INPUT=m
-CONFIG_VIRTIO_MMIO=m
-# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
-CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
-CONFIG_VDPA=m
-# CONFIG_VDPA_SIM is not set
-CONFIG_IFCVF=m
-CONFIG_MLX5_VDPA=y
-CONFIG_MLX5_VDPA_NET=m
-CONFIG_VP_VDPA=m
-CONFIG_VHOST_IOTLB=m
-CONFIG_VHOST=m
-CONFIG_VHOST_MENU=y
-CONFIG_VHOST_NET=m
-CONFIG_VHOST_SCSI=m
-CONFIG_VHOST_VSOCK=m
-CONFIG_VHOST_VDPA=m
-# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
-
-#
-# Microsoft Hyper-V guest support
-#
-# end of Microsoft Hyper-V guest support
-
-#
-# Xen driver support
-#
-CONFIG_XEN_BALLOON=y
-CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
-CONFIG_XEN_DEV_EVTCHN=m
-CONFIG_XEN_BACKEND=y
-CONFIG_XENFS=m
-CONFIG_XEN_COMPAT_XENFS=y
-CONFIG_XEN_SYS_HYPERVISOR=y
-CONFIG_XEN_XENBUS_FRONTEND=y
-CONFIG_XEN_GNTDEV=m
-CONFIG_XEN_GRANT_DEV_ALLOC=m
-# CONFIG_XEN_GRANT_DMA_ALLOC is not set
-CONFIG_SWIOTLB_XEN=y
-# CONFIG_XEN_PVCALLS_FRONTEND is not set
-# CONFIG_XEN_PVCALLS_BACKEND is not set
-CONFIG_XEN_SCSI_BACKEND=m
-CONFIG_XEN_PRIVCMD=m
-CONFIG_XEN_EFI=y
-CONFIG_XEN_AUTO_XLATE=y
-CONFIG_XEN_FRONT_PGDIR_SHBUF=m
-# end of Xen driver support
-
-# CONFIG_GREYBUS is not set
-# CONFIG_COMEDI is not set
-CONFIG_STAGING=y
-# CONFIG_PRISM2_USB is not set
-# CONFIG_RTL8192U is not set
-# CONFIG_RTLLIB is not set
-CONFIG_RTL8723BS=m
-CONFIG_R8712U=m
-CONFIG_R8188EU=m
-CONFIG_88EU_AP_MODE=y
-# CONFIG_RTS5208 is not set
-# CONFIG_VT6655 is not set
-# CONFIG_VT6656 is not set
-
-#
-# IIO staging drivers
-#
-
-#
-# Accelerometers
-#
-# CONFIG_ADIS16203 is not set
-# CONFIG_ADIS16240 is not set
-# end of Accelerometers
-
-#
-# Analog to digital converters
-#
-# CONFIG_AD7816 is not set
-# CONFIG_AD7280 is not set
-# end of Analog to digital converters
-
-#
-# Analog digital bi-direction converters
-#
-# CONFIG_ADT7316 is not set
-# end of Analog digital bi-direction converters
-
-#
-# Capacitance to digital converters
-#
-# CONFIG_AD7746 is not set
-# end of Capacitance to digital converters
-
-#
-# Direct Digital Synthesis
-#
-# CONFIG_AD9832 is not set
-# CONFIG_AD9834 is not set
-# end of Direct Digital Synthesis
-
-#
-# Network Analyzer, Impedance Converters
-#
-# CONFIG_AD5933 is not set
-# end of Network Analyzer, Impedance Converters
-
-#
-# Active energy metering IC
-#
-# CONFIG_ADE7854 is not set
-# end of Active energy metering IC
-
-#
-# Resolver to digital converters
-#
-# CONFIG_AD2S1210 is not set
-# end of Resolver to digital converters
-# end of IIO staging drivers
-
-# CONFIG_FB_SM750 is not set
-# CONFIG_MFD_NVEC is not set
-# CONFIG_STAGING_MEDIA is not set
-
-#
-# Android
-#
-# end of Android
-
-# CONFIG_STAGING_BOARD is not set
-# CONFIG_LTE_GDM724X is not set
-# CONFIG_FIREWIRE_SERIAL is not set
-# CONFIG_GS_FPGABOOT is not set
-# CONFIG_UNISYSSPAR is not set
-# CONFIG_FB_TFT is not set
-# CONFIG_KS7010 is not set
-CONFIG_BCM_VIDEOCORE=y
-# CONFIG_BCM2835_VCHIQ is not set
-# CONFIG_SND_BCM2835 is not set
-# CONFIG_VIDEO_BCM2835 is not set
-# CONFIG_PI433 is not set
-# CONFIG_XIL_AXIS_FIFO is not set
-# CONFIG_FIELDBUS_DEV is not set
-# CONFIG_KPC2000 is not set
-CONFIG_QLGE=m
-CONFIG_WFX=m
-CONFIG_PHY_HI3670_USB=m
-CONFIG_SPMI_HISI3670=m
-CONFIG_MFD_HI6421_SPMI=m
-# CONFIG_GOLDFISH is not set
-CONFIG_CHROME_PLATFORMS=y
-CONFIG_CHROMEOS_TBMC=m
-CONFIG_CROS_EC=y
-CONFIG_CROS_EC_I2C=m
-CONFIG_CROS_EC_RPMSG=m
-CONFIG_CROS_EC_SPI=m
-CONFIG_CROS_EC_PROTO=y
-CONFIG_CROS_KBD_LED_BACKLIGHT=m
-CONFIG_CROS_EC_CHARDEV=m
-CONFIG_CROS_EC_LIGHTBAR=m
-CONFIG_CROS_EC_VBC=m
-CONFIG_CROS_EC_DEBUGFS=m
-CONFIG_CROS_EC_SENSORHUB=m
-CONFIG_CROS_EC_SYSFS=m
-CONFIG_CROS_EC_TYPEC=m
-CONFIG_CROS_USBPD_LOGGER=m
-CONFIG_CROS_USBPD_NOTIFY=m
-# CONFIG_MELLANOX_PLATFORM is not set
-CONFIG_SURFACE_PLATFORMS=y
-CONFIG_SURFACE_3_BUTTON=m
-CONFIG_SURFACE_3_POWER_OPREGION=m
-# CONFIG_SURFACE_ACPI_NOTIFY is not set
-# CONFIG_SURFACE_AGGREGATOR_CDEV is not set
-# CONFIG_SURFACE_AGGREGATOR_REGISTRY is not set
-CONFIG_SURFACE_DTX=m
-CONFIG_SURFACE_GPE=m
-CONFIG_SURFACE_HOTPLUG=m
-# CONFIG_SURFACE_PRO3_BUTTON is not set
-CONFIG_SURFACE_AGGREGATOR=m
-CONFIG_SURFACE_AGGREGATOR_BUS=y
-# CONFIG_SURFACE_AGGREGATOR_ERROR_INJECTION is not set
-CONFIG_HAVE_CLK=y
-CONFIG_CLKDEV_LOOKUP=y
-CONFIG_HAVE_CLK_PREPARE=y
-CONFIG_COMMON_CLK=y
-
-#
-# Clock driver for ARM Reference designs
-#
-CONFIG_ICST=y
-CONFIG_CLK_SP810=y
-CONFIG_CLK_VEXPRESS_OSC=y
-# end of Clock driver for ARM Reference designs
-
-# CONFIG_COMMON_CLK_MAX77686 is not set
-CONFIG_COMMON_CLK_MAX9485=m
-CONFIG_COMMON_CLK_RK808=m
-CONFIG_COMMON_CLK_HI655X=m
-CONFIG_COMMON_CLK_SCMI=m
-CONFIG_COMMON_CLK_SI5341=m
-# CONFIG_COMMON_CLK_SI5351 is not set
-# CONFIG_COMMON_CLK_SI514 is not set
-# CONFIG_COMMON_CLK_SI544 is not set
-# CONFIG_COMMON_CLK_SI570 is not set
-CONFIG_COMMON_CLK_BM1880=y
-# CONFIG_COMMON_CLK_CDCE706 is not set
-# CONFIG_COMMON_CLK_CDCE925 is not set
-# CONFIG_COMMON_CLK_CS2000_CP is not set
-CONFIG_COMMON_CLK_AXI_CLKGEN=m
-CONFIG_COMMON_CLK_XGENE=y
-# CONFIG_COMMON_CLK_PWM is not set
-# CONFIG_COMMON_CLK_VC5 is not set
-# CONFIG_COMMON_CLK_BD718XX is not set
-# CONFIG_COMMON_CLK_FIXED_MMIO is not set
-CONFIG_CLK_BCM2711_DVP=y
-# CONFIG_CLK_BCM2835 is not set
-CONFIG_CLK_RASPBERRYPI=m
-CONFIG_COMMON_CLK_HI3516CV300=y
-CONFIG_COMMON_CLK_HI3519=y
-CONFIG_COMMON_CLK_HI3660=y
-CONFIG_COMMON_CLK_HI3670=y
-CONFIG_COMMON_CLK_HI3798CV200=y
-CONFIG_COMMON_CLK_HI6220=y
-CONFIG_RESET_HISI=y
-CONFIG_STUB_CLK_HI6220=y
-# CONFIG_STUB_CLK_HI3660 is not set
-CONFIG_MXC_CLK=y
-CONFIG_MXC_CLK_SCU=y
-CONFIG_CLK_IMX8MM=y
-CONFIG_CLK_IMX8MN=y
-CONFIG_CLK_IMX8MP=y
-CONFIG_CLK_IMX8MQ=y
-CONFIG_CLK_IMX8QXP=y
-
-#
-# Clock support for Amlogic platforms
-#
-CONFIG_COMMON_CLK_MESON_REGMAP=y
-CONFIG_COMMON_CLK_MESON_DUALDIV=y
-CONFIG_COMMON_CLK_MESON_MPLL=y
-CONFIG_COMMON_CLK_MESON_PHASE=m
-CONFIG_COMMON_CLK_MESON_PLL=y
-CONFIG_COMMON_CLK_MESON_SCLK_DIV=m
-CONFIG_COMMON_CLK_MESON_VID_PLL_DIV=y
-CONFIG_COMMON_CLK_MESON_AO_CLKC=y
-CONFIG_COMMON_CLK_MESON_EE_CLKC=y
-CONFIG_COMMON_CLK_MESON_CPU_DYNDIV=y
-CONFIG_COMMON_CLK_GXBB=y
-CONFIG_COMMON_CLK_AXG=y
-CONFIG_COMMON_CLK_AXG_AUDIO=m
-CONFIG_COMMON_CLK_G12A=y
-# end of Clock support for Amlogic platforms
-
-CONFIG_ARMADA_AP_CP_HELPER=y
-CONFIG_ARMADA_37XX_CLK=y
-CONFIG_ARMADA_AP806_SYSCON=y
-CONFIG_ARMADA_CP110_SYSCON=y
-CONFIG_QCOM_GDSC=y
-CONFIG_QCOM_RPMCC=y
-CONFIG_COMMON_CLK_QCOM=y
-CONFIG_QCOM_A53PLL=y
-CONFIG_QCOM_A7PLL=m
-CONFIG_QCOM_CLK_APCS_MSM8916=m
-CONFIG_QCOM_CLK_APCC_MSM8996=m
-CONFIG_QCOM_CLK_APCS_SDX55=m
-CONFIG_QCOM_CLK_RPM=m
-CONFIG_QCOM_CLK_SMD_RPM=m
-# CONFIG_APQ_GCC_8084 is not set
-# CONFIG_APQ_MMCC_8084 is not set
-# CONFIG_IPQ_APSS_PLL is not set
-# CONFIG_IPQ_APSS_6018 is not set
-# CONFIG_IPQ_GCC_4019 is not set
-# CONFIG_IPQ_GCC_6018 is not set
-# CONFIG_IPQ_GCC_806X is not set
-# CONFIG_IPQ_LCC_806X is not set
-# CONFIG_IPQ_GCC_8074 is not set
-# CONFIG_MSM_GCC_8660 is not set
-CONFIG_MSM_GCC_8916=y
-# CONFIG_MSM_GCC_8939 is not set
-# CONFIG_MSM_GCC_8960 is not set
-# CONFIG_MSM_LCC_8960 is not set
-# CONFIG_MDM_GCC_9615 is not set
-# CONFIG_MDM_LCC_9615 is not set
-# CONFIG_MSM_MMCC_8960 is not set
-# CONFIG_MSM_GCC_8974 is not set
-# CONFIG_MSM_MMCC_8974 is not set
-# CONFIG_MSM_GCC_8994 is not set
-CONFIG_MSM_GCC_8996=y
-CONFIG_MSM_MMCC_8996=y
-# CONFIG_MSM_GCC_8998 is not set
-# CONFIG_MSM_GPUCC_8998 is not set
-# CONFIG_MSM_MMCC_8998 is not set
-# CONFIG_QCS_GCC_404 is not set
-# CONFIG_SC_CAMCC_7180 is not set
-# CONFIG_SC_DISPCC_7180 is not set
-CONFIG_SC_GCC_7180=m
-CONFIG_SC_GCC_7280=m
-CONFIG_SC_GCC_8180X=m
-CONFIG_SC_LPASS_CORECC_7180=m
-# CONFIG_SC_GPUCC_7180 is not set
-# CONFIG_SC_MSS_7180 is not set
-# CONFIG_SC_VIDEOCC_7180 is not set
-# CONFIG_SDM_CAMCC_845 is not set
-CONFIG_SDM_GCC_660=m
-CONFIG_SDM_MMCC_660=m
-CONFIG_SDM_GPUCC_660=m
-# CONFIG_QCS_TURING_404 is not set
-# CONFIG_QCS_Q6SSTOP_404 is not set
-CONFIG_SDM_GCC_845=m
-CONFIG_SDM_GPUCC_845=m
-CONFIG_SDM_VIDEOCC_845=m
-CONFIG_SDM_DISPCC_845=m
-CONFIG_SDM_LPASSCC_845=m
-CONFIG_SDX_GCC_55=m
-# CONFIG_SM_GCC_8150 is not set
-# CONFIG_SM_GCC_8250 is not set
-CONFIG_SM_GCC_8350=m
-# CONFIG_SM_GPUCC_8150 is not set
-# CONFIG_SM_GPUCC_8250 is not set
-# CONFIG_SM_VIDEOCC_8150 is not set
-# CONFIG_SM_VIDEOCC_8250 is not set
-# CONFIG_SPMI_PMIC_CLKDIV is not set
-# CONFIG_QCOM_HFPLL is not set
-# CONFIG_KPSS_XCC is not set
-# CONFIG_CLK_GFM_LPASS_SM8250 is not set
-CONFIG_COMMON_CLK_ROCKCHIP=y
-CONFIG_CLK_PX30=y
-CONFIG_CLK_RK3308=y
-CONFIG_CLK_RK3328=y
-CONFIG_CLK_RK3368=y
-CONFIG_CLK_RK3399=y
-CONFIG_CLK_RK3568=y
-CONFIG_CLK_INTEL_SOCFPGA=y
-CONFIG_CLK_INTEL_SOCFPGA64=y
-CONFIG_CLK_SUNXI=y
-CONFIG_CLK_SUNXI_CLOCKS=y
-CONFIG_CLK_SUNXI_PRCM_SUN6I=y
-CONFIG_CLK_SUNXI_PRCM_SUN8I=y
-CONFIG_CLK_SUNXI_PRCM_SUN9I=y
-CONFIG_SUNXI_CCU=y
-CONFIG_SUN50I_A64_CCU=y
-CONFIG_SUN50I_A100_CCU=y
-CONFIG_SUN50I_A100_R_CCU=y
-CONFIG_SUN50I_H6_CCU=y
-CONFIG_SUN50I_H616_CCU=y
-CONFIG_SUN50I_H6_R_CCU=y
-# CONFIG_SUN8I_A83T_CCU is not set
-CONFIG_SUN8I_H3_CCU=y
-CONFIG_SUN8I_DE2_CCU=y
-CONFIG_SUN8I_R_CCU=y
-CONFIG_CLK_TEGRA_BPMP=y
-CONFIG_TEGRA_CLK_DFLL=y
-# CONFIG_XILINX_VCU is not set
-# CONFIG_HWSPINLOCK is not set
-
-#
-# Clock Source drivers
-#
-CONFIG_TIMER_OF=y
-CONFIG_TIMER_ACPI=y
-CONFIG_TIMER_PROBE=y
-CONFIG_CLKSRC_MMIO=y
-CONFIG_ROCKCHIP_TIMER=y
-CONFIG_TEGRA_TIMER=y
-CONFIG_ARM_ARCH_TIMER=y
-CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
-CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
-CONFIG_FSL_ERRATUM_A008585=y
-CONFIG_HISILICON_ERRATUM_161010101=y
-CONFIG_ARM64_ERRATUM_858921=y
-CONFIG_SUN50I_ERRATUM_UNKNOWN1=y
-CONFIG_ARM_TIMER_SP804=y
-CONFIG_TIMER_IMX_SYS_CTR=y
-# CONFIG_MICROCHIP_PIT64B is not set
-# end of Clock Source drivers
-
-CONFIG_MAILBOX=y
-# CONFIG_ARM_MHU is not set
-# CONFIG_ARM_MHU_V2 is not set
-CONFIG_IMX_MBOX=m
-# CONFIG_PLATFORM_MHU is not set
-# CONFIG_PL320_MBOX is not set
-CONFIG_ARMADA_37XX_RWTM_MBOX=m
-# CONFIG_ROCKCHIP_MBOX is not set
-CONFIG_PCC=y
-# CONFIG_ALTERA_MBOX is not set
-CONFIG_BCM2835_MBOX=y
-# CONFIG_HI3660_MBOX is not set
-CONFIG_HI6220_MBOX=y
-# CONFIG_MAILBOX_TEST is not set
-CONFIG_QCOM_APCS_IPC=m
-CONFIG_TEGRA_HSP_MBOX=y
-CONFIG_XGENE_SLIMPRO_MBOX=m
-CONFIG_SUN6I_MSGBOX=m
-CONFIG_QCOM_IPCC=y
-CONFIG_IOMMU_IOVA=y
-CONFIG_IOASID=y
-CONFIG_IOMMU_API=y
-CONFIG_IOMMU_SUPPORT=y
-
-#
-# Generic IOMMU Pagetable Support
-#
-CONFIG_IOMMU_IO_PGTABLE=y
-CONFIG_IOMMU_IO_PGTABLE_LPAE=y
-# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
-# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
-# end of Generic IOMMU Pagetable Support
-
-# CONFIG_IOMMU_DEBUGFS is not set
-# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
-CONFIG_OF_IOMMU=y
-CONFIG_IOMMU_DMA=y
-CONFIG_IOMMU_SVA_LIB=y
-CONFIG_ROCKCHIP_IOMMU=y
-CONFIG_SUN50I_IOMMU=y
-CONFIG_TEGRA_IOMMU_SMMU=y
-CONFIG_ARM_SMMU=y
-# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
-CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y
-CONFIG_ARM_SMMU_V3=y
-CONFIG_ARM_SMMU_V3_SVA=y
-CONFIG_QCOM_IOMMU=y
-CONFIG_VIRTIO_IOMMU=m
-
-#
-# Remoteproc drivers
-#
-# CONFIG_REMOTEPROC is not set
-# end of Remoteproc drivers
-
-#
-# Rpmsg drivers
-#
-CONFIG_RPMSG=m
-# CONFIG_RPMSG_CHAR is not set
-CONFIG_RPMSG_NS=m
-CONFIG_RPMSG_QCOM_GLINK=m
-CONFIG_RPMSG_QCOM_GLINK_RPM=m
-# CONFIG_RPMSG_VIRTIO is not set
-# end of Rpmsg drivers
-
-# CONFIG_SOUNDWIRE is not set
-
-#
-# SOC (System On Chip) specific Drivers
-#
-
-#
-# Amlogic SoC drivers
-#
-CONFIG_MESON_CANVAS=m
-CONFIG_MESON_CLK_MEASURE=y
-CONFIG_MESON_GX_SOCINFO=y
-CONFIG_MESON_GX_PM_DOMAINS=y
-CONFIG_MESON_EE_PM_DOMAINS=y
-CONFIG_MESON_SECURE_PM_DOMAINS=y
-# end of Amlogic SoC drivers
-
-#
-# Broadcom SoC drivers
-#
-CONFIG_BCM2835_POWER=y
-CONFIG_RASPBERRYPI_POWER=y
-CONFIG_SOC_BRCMSTB=y
-CONFIG_BCM_PMB=y
-# end of Broadcom SoC drivers
-
-#
-# NXP/Freescale QorIQ SoC drivers
-#
-# CONFIG_QUICC_ENGINE is not set
-CONFIG_FSL_GUTS=y
-CONFIG_FSL_RCPM=y
-# end of NXP/Freescale QorIQ SoC drivers
-
-#
-# i.MX SoC drivers
-#
-CONFIG_IMX_GPCV2_PM_DOMAINS=y
-CONFIG_SOC_IMX8M=y
-# end of i.MX SoC drivers
-
-#
-# Enable LiteX SoC Builder specific drivers
-#
-# CONFIG_LITEX_SOC_CONTROLLER is not set
-# end of Enable LiteX SoC Builder specific drivers
-
-#
-# Qualcomm SoC drivers
-#
-CONFIG_QCOM_AOSS_QMP=m
-CONFIG_QCOM_COMMAND_DB=y
-CONFIG_QCOM_CPR=m
-CONFIG_QCOM_GENI_SE=m
-CONFIG_QCOM_GSBI=m
-CONFIG_QCOM_LLCC=m
-CONFIG_QCOM_KRYO_L2_ACCESSORS=y
-CONFIG_QCOM_MDT_LOADER=m
-# CONFIG_QCOM_OCMEM is not set
-CONFIG_QCOM_PDR_HELPERS=m
-CONFIG_QCOM_QMI_HELPERS=m
-# CONFIG_QCOM_RMTFS_MEM is not set
-# CONFIG_QCOM_RPMH is not set
-CONFIG_QCOM_RPMPD=m
-CONFIG_QCOM_SMD_RPM=m
-CONFIG_QCOM_WCNSS_CTRL=m
-CONFIG_QCOM_APR=m
-# end of Qualcomm SoC drivers
-
-CONFIG_ROCKCHIP_GRF=y
-CONFIG_ROCKCHIP_IODOMAIN=m
-CONFIG_ROCKCHIP_PM_DOMAINS=y
-CONFIG_SUNXI_MBUS=y
-CONFIG_SUNXI_SRAM=y
-CONFIG_ARCH_TEGRA_132_SOC=y
-CONFIG_ARCH_TEGRA_210_SOC=y
-# CONFIG_ARCH_TEGRA_186_SOC is not set
-CONFIG_ARCH_TEGRA_194_SOC=y
-CONFIG_ARCH_TEGRA_234_SOC=y
-CONFIG_SOC_TEGRA_FUSE=y
-CONFIG_SOC_TEGRA_FLOWCTRL=y
-CONFIG_SOC_TEGRA_PMC=y
-CONFIG_SOC_TEGRA_POWERGATE_BPMP=y
-# CONFIG_SOC_TI is not set
-
-#
-# Xilinx SoC drivers
-#
-# end of Xilinx SoC drivers
-# end of SOC (System On Chip) specific Drivers
-
-CONFIG_PM_DEVFREQ=y
-
-#
-# DEVFREQ Governors
-#
-CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
-# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
-# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
-CONFIG_DEVFREQ_GOV_USERSPACE=m
-# CONFIG_DEVFREQ_GOV_PASSIVE is not set
-
-#
-# DEVFREQ Drivers
-#
-CONFIG_ARM_IMX_BUS_DEVFREQ=m
-CONFIG_ARM_IMX8M_DDRC_DEVFREQ=m
-CONFIG_ARM_TEGRA_DEVFREQ=m
-# CONFIG_ARM_RK3399_DMC_DEVFREQ is not set
-# CONFIG_PM_DEVFREQ_EVENT is not set
-CONFIG_EXTCON=y
-
-#
-# Extcon Device Drivers
-#
-# CONFIG_EXTCON_ADC_JACK is not set
-CONFIG_EXTCON_FSA9480=m
-# CONFIG_EXTCON_GPIO is not set
-# CONFIG_EXTCON_MAX3355 is not set
-CONFIG_EXTCON_PTN5150=m
-CONFIG_EXTCON_QCOM_SPMI_MISC=m
-# CONFIG_EXTCON_RT8973A is not set
-# CONFIG_EXTCON_SM5502 is not set
-CONFIG_EXTCON_USB_GPIO=m
-# CONFIG_EXTCON_USBC_CROS_EC is not set
-CONFIG_EXTCON_USBC_TUSB320=m
-CONFIG_MEMORY=y
-# CONFIG_ARM_PL172_MPMC is not set
-CONFIG_TEGRA_MC=y
-CONFIG_TEGRA210_EMC_TABLE=y
-CONFIG_TEGRA210_EMC=m
-CONFIG_IIO=m
-CONFIG_IIO_BUFFER=y
-# CONFIG_IIO_BUFFER_CB is not set
-CONFIG_IIO_BUFFER_DMA=m
-CONFIG_IIO_BUFFER_DMAENGINE=m
-# CONFIG_IIO_BUFFER_HW_CONSUMER is not set
-CONFIG_IIO_KFIFO_BUF=m
-CONFIG_IIO_TRIGGERED_BUFFER=m
-# CONFIG_IIO_CONFIGFS is not set
-CONFIG_IIO_TRIGGER=y
-CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
-# CONFIG_IIO_SW_DEVICE is not set
-# CONFIG_IIO_SW_TRIGGER is not set
-CONFIG_IIO_TRIGGERED_EVENT=m
-
-#
-# Accelerometers
-#
-# CONFIG_ADIS16201 is not set
-# CONFIG_ADIS16209 is not set
-# CONFIG_ADXL345_I2C is not set
-# CONFIG_ADXL345_SPI is not set
-# CONFIG_ADXL372_SPI is not set
-# CONFIG_ADXL372_I2C is not set
-# CONFIG_BMA180 is not set
-# CONFIG_BMA220 is not set
-CONFIG_BMA400=m
-CONFIG_BMA400_I2C=m
-CONFIG_BMA400_SPI=m
-# CONFIG_BMC150_ACCEL is not set
-# CONFIG_BMI088_ACCEL is not set
-# CONFIG_DA280 is not set
-# CONFIG_DA311 is not set
-# CONFIG_DMARD06 is not set
-# CONFIG_DMARD09 is not set
-# CONFIG_DMARD10 is not set
-CONFIG_HID_SENSOR_ACCEL_3D=m
-# CONFIG_IIO_ST_ACCEL_3AXIS is not set
-# CONFIG_KXSD9 is not set
-# CONFIG_KXCJK1013 is not set
-# CONFIG_MC3230 is not set
-# CONFIG_MMA7455_I2C is not set
-# CONFIG_MMA7455_SPI is not set
-# CONFIG_MMA7660 is not set
-# CONFIG_MMA8452 is not set
-# CONFIG_MMA9551 is not set
-# CONFIG_MMA9553 is not set
-# CONFIG_MXC4005 is not set
-# CONFIG_MXC6255 is not set
-# CONFIG_SCA3000 is not set
-# CONFIG_STK8312 is not set
-# CONFIG_STK8BA50 is not set
-# end of Accelerometers
-
-#
-# Analog to digital converters
-#
-CONFIG_AD_SIGMA_DELTA=m
-CONFIG_AD7091R5=m
-CONFIG_AD7124=m
-# CONFIG_AD7192 is not set
-# CONFIG_AD7266 is not set
-# CONFIG_AD7291 is not set
-# CONFIG_AD7292 is not set
-# CONFIG_AD7298 is not set
-# CONFIG_AD7476 is not set
-# CONFIG_AD7606_IFACE_PARALLEL is not set
-# CONFIG_AD7606_IFACE_SPI is not set
-# CONFIG_AD7766 is not set
-# CONFIG_AD7768_1 is not set
-# CONFIG_AD7780 is not set
-# CONFIG_AD7791 is not set
-# CONFIG_AD7793 is not set
-# CONFIG_AD7887 is not set
-# CONFIG_AD7923 is not set
-# CONFIG_AD7949 is not set
-# CONFIG_AD799X is not set
-# CONFIG_ADI_AXI_ADC is not set
-CONFIG_AXP20X_ADC=m
-CONFIG_AXP288_ADC=m
-# CONFIG_CC10001_ADC is not set
-# CONFIG_ENVELOPE_DETECTOR is not set
-# CONFIG_HI8435 is not set
-# CONFIG_HX711 is not set
-# CONFIG_INA2XX_ADC is not set
-CONFIG_IMX7D_ADC=m
-# CONFIG_LTC2471 is not set
-# CONFIG_LTC2485 is not set
-# CONFIG_LTC2496 is not set
-# CONFIG_LTC2497 is not set
-# CONFIG_MAX1027 is not set
-# CONFIG_MAX11100 is not set
-# CONFIG_MAX1118 is not set
-# CONFIG_MAX1241 is not set
-# CONFIG_MAX1363 is not set
-# CONFIG_MAX9611 is not set
-# CONFIG_MCP320X is not set
-# CONFIG_MCP3422 is not set
-# CONFIG_MCP3911 is not set
-# CONFIG_MEDIATEK_MT6360_ADC is not set
-CONFIG_MESON_SARADC=m
-# CONFIG_MP2629_ADC is not set
-# CONFIG_NAU7802 is not set
-CONFIG_QCOM_VADC_COMMON=m
-CONFIG_QCOM_SPMI_IADC=m
-CONFIG_QCOM_SPMI_VADC=m
-# CONFIG_QCOM_SPMI_ADC5 is not set
-# CONFIG_ROCKCHIP_SARADC is not set
-# CONFIG_SD_ADC_MODULATOR is not set
-# CONFIG_TI_ADC081C is not set
-# CONFIG_TI_ADC0832 is not set
-# CONFIG_TI_ADC084S021 is not set
-# CONFIG_TI_ADC12138 is not set
-# CONFIG_TI_ADC108S102 is not set
-# CONFIG_TI_ADC128S052 is not set
-# CONFIG_TI_ADC161S626 is not set
-# CONFIG_TI_ADS1015 is not set
-# CONFIG_TI_ADS7950 is not set
-# CONFIG_TI_ADS8344 is not set
-# CONFIG_TI_ADS8688 is not set
-# CONFIG_TI_ADS124S08 is not set
-# CONFIG_TI_ADS131E08 is not set
-# CONFIG_TI_TLC4541 is not set
-# CONFIG_VF610_ADC is not set
-CONFIG_VIPERBOARD_ADC=m
-CONFIG_XILINX_XADC=m
-# end of Analog to digital converters
-
-#
-# Analog Front Ends
-#
-# CONFIG_IIO_RESCALE is not set
-# end of Analog Front Ends
-
-#
-# Amplifiers
-#
-# CONFIG_AD8366 is not set
-# CONFIG_HMC425 is not set
-# end of Amplifiers
-
-#
-# Capacitance to digital converters
-#
-# CONFIG_AD7150 is not set
-# end of Capacitance to digital converters
-
-#
-# Chemical Sensors
-#
-# CONFIG_ATLAS_PH_SENSOR is not set
-# CONFIG_ATLAS_EZO_SENSOR is not set
-# CONFIG_BME680 is not set
-# CONFIG_CCS811 is not set
-# CONFIG_IAQCORE is not set
-# CONFIG_PMS7003 is not set
-CONFIG_SCD30_CORE=m
-CONFIG_SCD30_I2C=m
-CONFIG_SCD30_SERIAL=m
-# CONFIG_SENSIRION_SGP30 is not set
-# CONFIG_SPS30 is not set
-# CONFIG_VZ89X is not set
-# end of Chemical Sensors
-
-# CONFIG_IIO_CROS_EC_SENSORS_CORE is not set
-
-#
-# Hid Sensor IIO Common
-#
-CONFIG_HID_SENSOR_IIO_COMMON=m
-CONFIG_HID_SENSOR_IIO_TRIGGER=m
-# end of Hid Sensor IIO Common
-
-#
-# IIO SCMI Sensors
-#
-CONFIG_IIO_SCMI=m
-# end of IIO SCMI Sensors
-
-#
-# SSP Sensor Common
-#
-# CONFIG_IIO_SSP_SENSORHUB is not set
-# end of SSP Sensor Common
-
-#
-# Digital to analog converters
-#
-# CONFIG_AD5064 is not set
-# CONFIG_AD5360 is not set
-# CONFIG_AD5380 is not set
-# CONFIG_AD5421 is not set
-CONFIG_AD5446=m
-# CONFIG_AD5449 is not set
-# CONFIG_AD5592R is not set
-# CONFIG_AD5593R is not set
-# CONFIG_AD5504 is not set
-# CONFIG_AD5624R_SPI is not set
-# CONFIG_AD5686_SPI is not set
-# CONFIG_AD5696_I2C is not set
-# CONFIG_AD5755 is not set
-# CONFIG_AD5758 is not set
-# CONFIG_AD5761 is not set
-# CONFIG_AD5764 is not set
-# CONFIG_AD5766 is not set
-# CONFIG_AD5770R is not set
-# CONFIG_AD5791 is not set
-# CONFIG_AD7303 is not set
-# CONFIG_AD8801 is not set
-# CONFIG_DPOT_DAC is not set
-# CONFIG_DS4424 is not set
-# CONFIG_LTC1660 is not set
-# CONFIG_LTC2632 is not set
-# CONFIG_M62332 is not set
-# CONFIG_MAX517 is not set
-# CONFIG_MAX5821 is not set
-# CONFIG_MCP4725 is not set
-# CONFIG_MCP4922 is not set
-# CONFIG_TI_DAC082S085 is not set
-# CONFIG_TI_DAC5571 is not set
-# CONFIG_TI_DAC7311 is not set
-# CONFIG_TI_DAC7612 is not set
-# CONFIG_VF610_DAC is not set
-# end of Digital to analog converters
-
-#
-# IIO dummy driver
-#
-# end of IIO dummy driver
-
-#
-# Frequency Synthesizers DDS/PLL
-#
-
-#
-# Clock Generator/Distribution
-#
-# CONFIG_AD9523 is not set
-# end of Clock Generator/Distribution
-
-#
-# Phase-Locked Loop (PLL) frequency synthesizers
-#
-# CONFIG_ADF4350 is not set
-CONFIG_ADF4371=m
-# end of Phase-Locked Loop (PLL) frequency synthesizers
-# end of Frequency Synthesizers DDS/PLL
-
-#
-# Digital gyroscope sensors
-#
-# CONFIG_ADIS16080 is not set
-# CONFIG_ADIS16130 is not set
-# CONFIG_ADIS16136 is not set
-# CONFIG_ADIS16260 is not set
-CONFIG_ADXRS290=m
-# CONFIG_ADXRS450 is not set
-# CONFIG_BMG160 is not set
-# CONFIG_FXAS21002C is not set
-CONFIG_HID_SENSOR_GYRO_3D=m
-# CONFIG_MPU3050_I2C is not set
-# CONFIG_IIO_ST_GYRO_3AXIS is not set
-# CONFIG_ITG3200 is not set
-# end of Digital gyroscope sensors
-
-#
-# Health Sensors
-#
-
-#
-# Heart Rate Monitors
-#
-# CONFIG_AFE4403 is not set
-# CONFIG_AFE4404 is not set
-# CONFIG_MAX30100 is not set
-# CONFIG_MAX30102 is not set
-# end of Heart Rate Monitors
-# end of Health Sensors
-
-#
-# Humidity sensors
-#
-# CONFIG_AM2315 is not set
-CONFIG_DHT11=m
-# CONFIG_HDC100X is not set
-CONFIG_HDC2010=m
-# CONFIG_HID_SENSOR_HUMIDITY is not set
-# CONFIG_HTS221 is not set
-# CONFIG_HTU21 is not set
-# CONFIG_SI7005 is not set
-# CONFIG_SI7020 is not set
-# end of Humidity sensors
-
-#
-# Inertial measurement units
-#
-# CONFIG_ADIS16400 is not set
-# CONFIG_ADIS16460 is not set
-# CONFIG_ADIS16475 is not set
-# CONFIG_ADIS16480 is not set
-# CONFIG_BMI160_I2C is not set
-# CONFIG_BMI160_SPI is not set
-# CONFIG_FXOS8700_I2C is not set
-# CONFIG_FXOS8700_SPI is not set
-# CONFIG_KMX61 is not set
-CONFIG_INV_ICM42600=m
-CONFIG_INV_ICM42600_I2C=m
-CONFIG_INV_ICM42600_SPI=m
-# CONFIG_INV_MPU6050_I2C is not set
-# CONFIG_INV_MPU6050_SPI is not set
-# CONFIG_IIO_ST_LSM6DSX is not set
-# end of Inertial measurement units
-
-#
-# Light sensors
-#
-CONFIG_ACPI_ALS=m
-# CONFIG_ADJD_S311 is not set
-# CONFIG_ADUX1020 is not set
-# CONFIG_AL3010 is not set
-# CONFIG_AL3320A is not set
-# CONFIG_APDS9300 is not set
-# CONFIG_APDS9960 is not set
-CONFIG_AS73211=m
-# CONFIG_BH1750 is not set
-CONFIG_BH1780=m
-# CONFIG_CM32181 is not set
-# CONFIG_CM3232 is not set
-# CONFIG_CM3323 is not set
-# CONFIG_CM3605 is not set
-# CONFIG_CM36651 is not set
-# CONFIG_GP2AP002 is not set
-# CONFIG_GP2AP020A00F is not set
-# CONFIG_IQS621_ALS is not set
-# CONFIG_SENSORS_ISL29018 is not set
-# CONFIG_SENSORS_ISL29028 is not set
-# CONFIG_ISL29125 is not set
-CONFIG_HID_SENSOR_ALS=m
-CONFIG_HID_SENSOR_PROX=m
-# CONFIG_JSA1212 is not set
-# CONFIG_RPR0521 is not set
-# CONFIG_LTR501 is not set
-# CONFIG_LV0104CS is not set
-# CONFIG_MAX44000 is not set
-# CONFIG_MAX44009 is not set
-# CONFIG_NOA1305 is not set
-# CONFIG_OPT3001 is not set
-# CONFIG_PA12203001 is not set
-# CONFIG_SI1133 is not set
-# CONFIG_SI1145 is not set
-# CONFIG_STK3310 is not set
-# CONFIG_ST_UVIS25 is not set
-# CONFIG_TCS3414 is not set
-# CONFIG_TCS3472 is not set
-# CONFIG_SENSORS_TSL2563 is not set
-# CONFIG_TSL2583 is not set
-# CONFIG_TSL2772 is not set
-# CONFIG_TSL4531 is not set
-# CONFIG_US5182D is not set
-# CONFIG_VCNL4000 is not set
-# CONFIG_VCNL4035 is not set
-# CONFIG_VEML6030 is not set
-# CONFIG_VEML6070 is not set
-# CONFIG_VL6180 is not set
-# CONFIG_ZOPT2201 is not set
-# end of Light sensors
-
-#
-# Magnetometer sensors
-#
-# CONFIG_AK8974 is not set
-# CONFIG_AK8975 is not set
-# CONFIG_AK09911 is not set
-# CONFIG_BMC150_MAGN_I2C is not set
-# CONFIG_BMC150_MAGN_SPI is not set
-# CONFIG_MAG3110 is not set
-CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
-# CONFIG_MMC35240 is not set
-# CONFIG_IIO_ST_MAGN_3AXIS is not set
-# CONFIG_SENSORS_HMC5843_I2C is not set
-# CONFIG_SENSORS_HMC5843_SPI is not set
-# CONFIG_SENSORS_RM3100_I2C is not set
-# CONFIG_SENSORS_RM3100_SPI is not set
-# CONFIG_YAMAHA_YAS530 is not set
-# end of Magnetometer sensors
-
-#
-# Multiplexers
-#
-# CONFIG_IIO_MUX is not set
-# end of Multiplexers
-
-#
-# Inclinometer sensors
-#
-CONFIG_HID_SENSOR_INCLINOMETER_3D=m
-CONFIG_HID_SENSOR_DEVICE_ROTATION=m
-# end of Inclinometer sensors
-
-#
-# Triggers - standalone
-#
-# CONFIG_IIO_INTERRUPT_TRIGGER is not set
-# CONFIG_IIO_SYSFS_TRIGGER is not set
-# end of Triggers - standalone
-
-#
-# Linear and angular position sensors
-#
-# CONFIG_IQS624_POS is not set
-CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE=m
-# end of Linear and angular position sensors
-
-#
-# Digital potentiometers
-#
-# CONFIG_AD5272 is not set
-# CONFIG_DS1803 is not set
-# CONFIG_MAX5432 is not set
-# CONFIG_MAX5481 is not set
-# CONFIG_MAX5487 is not set
-# CONFIG_MCP4018 is not set
-# CONFIG_MCP4131 is not set
-# CONFIG_MCP4531 is not set
-# CONFIG_MCP41010 is not set
-# CONFIG_TPL0102 is not set
-# end of Digital potentiometers
-
-#
-# Digital potentiostats
-#
-# CONFIG_LMP91000 is not set
-# end of Digital potentiostats
-
-#
-# Pressure sensors
-#
-# CONFIG_ABP060MG is not set
-# CONFIG_BMP280 is not set
-# CONFIG_DLHL60D is not set
-CONFIG_DPS310=m
-CONFIG_HID_SENSOR_PRESS=m
-# CONFIG_HP03 is not set
-# CONFIG_ICP10100 is not set
-# CONFIG_MPL115_I2C is not set
-# CONFIG_MPL115_SPI is not set
-# CONFIG_MPL3115 is not set
-# CONFIG_MS5611 is not set
-# CONFIG_MS5637 is not set
-# CONFIG_IIO_ST_PRESS is not set
-# CONFIG_T5403 is not set
-# CONFIG_HP206C is not set
-# CONFIG_ZPA2326 is not set
-# end of Pressure sensors
-
-#
-# Lightning sensors
-#
-# CONFIG_AS3935 is not set
-# end of Lightning sensors
-
-#
-# Proximity and distance sensors
-#
-CONFIG_CROS_EC_MKBP_PROXIMITY=m
-# CONFIG_ISL29501 is not set
-# CONFIG_LIDAR_LITE_V2 is not set
-# CONFIG_MB1232 is not set
-# CONFIG_PING is not set
-# CONFIG_RFD77402 is not set
-# CONFIG_SRF04 is not set
-# CONFIG_SX9310 is not set
-# CONFIG_SX9500 is not set
-# CONFIG_SRF08 is not set
-# CONFIG_VCNL3020 is not set
-# CONFIG_VL53L0X_I2C is not set
-# end of Proximity and distance sensors
-
-#
-# Resolver to digital converters
-#
-# CONFIG_AD2S90 is not set
-# CONFIG_AD2S1200 is not set
-# end of Resolver to digital converters
-
-#
-# Temperature sensors
-#
-# CONFIG_IQS620AT_TEMP is not set
-# CONFIG_LTC2983 is not set
-# CONFIG_MAXIM_THERMOCOUPLE is not set
-# CONFIG_HID_SENSOR_TEMP is not set
-# CONFIG_MLX90614 is not set
-# CONFIG_MLX90632 is not set
-# CONFIG_TMP006 is not set
-# CONFIG_TMP007 is not set
-# CONFIG_TSYS01 is not set
-# CONFIG_TSYS02D is not set
-# CONFIG_MAX31856 is not set
-# end of Temperature sensors
-
-# CONFIG_NTB is not set
-# CONFIG_VME_BUS is not set
-CONFIG_PWM=y
-CONFIG_PWM_SYSFS=y
-# CONFIG_PWM_DEBUG is not set
-CONFIG_PWM_ATMEL_TCB=m
-CONFIG_PWM_BCM2835=m
-# CONFIG_PWM_CROS_EC is not set
-CONFIG_PWM_DWC=m
-# CONFIG_PWM_FSL_FTM is not set
-# CONFIG_PWM_HIBVT is not set
-# CONFIG_PWM_IMX1 is not set
-# CONFIG_PWM_IMX27 is not set
-# CONFIG_PWM_IMX_TPM is not set
-# CONFIG_PWM_IQS620A is not set
-# CONFIG_PWM_KEEMBAY is not set
-CONFIG_PWM_MESON=m
-CONFIG_PWM_NTXEC=m
-# CONFIG_PWM_PCA9685 is not set
-CONFIG_PWM_RASPBERRYPI_POE=m
-CONFIG_PWM_ROCKCHIP=m
-CONFIG_PWM_SUN4I=m
-CONFIG_PWM_TEGRA=m
-CONFIG_PWM_VISCONTI=m
-
-#
-# IRQ chip support
-#
-CONFIG_IRQCHIP=y
-CONFIG_ARM_GIC=y
-CONFIG_ARM_GIC_PM=y
-CONFIG_ARM_GIC_MAX_NR=1
-CONFIG_ARM_GIC_V2M=y
-CONFIG_ARM_GIC_V3=y
-CONFIG_ARM_GIC_V3_ITS=y
-CONFIG_ARM_GIC_V3_ITS_PCI=y
-# CONFIG_AL_FIC is not set
-CONFIG_BRCMSTB_L2_IRQ=y
-CONFIG_HISILICON_IRQ_MBIGEN=y
-CONFIG_MADERA_IRQ=m
-CONFIG_IMX_GPCV2=y
-CONFIG_MVEBU_GICP=y
-CONFIG_MVEBU_ICU=y
-CONFIG_MVEBU_ODMI=y
-CONFIG_MVEBU_PIC=y
-CONFIG_MVEBU_SEI=y
-CONFIG_PARTITION_PERCPU=y
-CONFIG_QCOM_IRQ_COMBINER=y
-CONFIG_MESON_IRQ_GPIO=y
-# CONFIG_QCOM_PDC is not set
-CONFIG_IMX_IRQSTEER=y
-CONFIG_IMX_INTMUX=y
-CONFIG_APPLE_AIC=y
-# end of IRQ chip support
-
-# CONFIG_IPACK_BUS is not set
-CONFIG_ARCH_HAS_RESET_CONTROLLER=y
-CONFIG_RESET_CONTROLLER=y
-CONFIG_RESET_BRCMSTB_RESCAL=y
-CONFIG_RESET_IMX7=y
-CONFIG_RESET_INTEL_GW=y
-CONFIG_RESET_MESON=y
-# CONFIG_RESET_MESON_AUDIO_ARB is not set
-# CONFIG_RESET_QCOM_AOSS is not set
-# CONFIG_RESET_QCOM_PDC is not set
-CONFIG_RESET_RASPBERRYPI=m
-CONFIG_RESET_SCMI=y
-CONFIG_RESET_SIMPLE=y
-CONFIG_RESET_SUNXI=y
-# CONFIG_RESET_TI_SYSCON is not set
-CONFIG_COMMON_RESET_HI3660=y
-CONFIG_COMMON_RESET_HI6220=y
-CONFIG_RESET_TEGRA_BPMP=y
-
-#
-# PHY Subsystem
-#
-CONFIG_GENERIC_PHY=y
-CONFIG_GENERIC_PHY_MIPI_DPHY=y
-CONFIG_PHY_XGENE=m
-CONFIG_PHY_SUN4I_USB=m
-# CONFIG_PHY_SUN6I_MIPI_DPHY is not set
-# CONFIG_PHY_SUN9I_USB is not set
-CONFIG_PHY_SUN50I_USB3=m
-CONFIG_PHY_MESON8B_USB2=m
-CONFIG_PHY_MESON_GXL_USB2=y
-CONFIG_PHY_MESON_G12A_USB2=y
-CONFIG_PHY_MESON_G12A_USB3_PCIE=y
-CONFIG_PHY_MESON_AXG_PCIE=y
-CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG=y
-CONFIG_PHY_MESON_AXG_MIPI_DPHY=m
-# CONFIG_BCM_KONA_USB2_PHY is not set
-CONFIG_PHY_BRCM_USB=m
-CONFIG_PHY_CADENCE_TORRENT=m
-# CONFIG_PHY_CADENCE_DPHY is not set
-# CONFIG_PHY_CADENCE_SIERRA is not set
-CONFIG_PHY_CADENCE_SALVO=m
-CONFIG_PHY_FSL_IMX8MQ_USB=m
-CONFIG_PHY_MIXEL_MIPI_DPHY=m
-CONFIG_PHY_HI6220_USB=m
-CONFIG_PHY_HI3660_USB=m
-# CONFIG_PHY_HISTB_COMBPHY is not set
-# CONFIG_PHY_HISI_INNO_USB2 is not set
-CONFIG_PHY_MVEBU_A3700_COMPHY=m
-CONFIG_PHY_MVEBU_A3700_UTMI=m
-CONFIG_PHY_MVEBU_A38X_COMPHY=m
-CONFIG_PHY_MVEBU_CP110_COMPHY=m
-CONFIG_PHY_MVEBU_CP110_UTMI=m
-# CONFIG_PHY_PXA_28NM_HSIC is not set
-# CONFIG_PHY_PXA_28NM_USB2 is not set
-# CONFIG_PHY_CPCAP_USB is not set
-# CONFIG_PHY_MAPPHONE_MDM6600 is not set
-# CONFIG_PHY_OCELOT_SERDES is not set
-CONFIG_PHY_QCOM_APQ8064_SATA=m
-CONFIG_PHY_QCOM_IPQ4019_USB=m
-CONFIG_PHY_QCOM_IPQ806X_SATA=m
-CONFIG_PHY_QCOM_PCIE2=m
-CONFIG_PHY_QCOM_QMP=m
-CONFIG_PHY_QCOM_QUSB2=m
-CONFIG_PHY_QCOM_USB_HS=m
-CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2=m
-CONFIG_PHY_QCOM_USB_HSIC=m
-CONFIG_PHY_QCOM_USB_HS_28NM=m
-CONFIG_PHY_QCOM_USB_SS=m
-# CONFIG_PHY_QCOM_IPQ806X_USB is not set
-CONFIG_PHY_ROCKCHIP_DP=m
-CONFIG_PHY_ROCKCHIP_DPHY_RX0=m
-CONFIG_PHY_ROCKCHIP_EMMC=m
-CONFIG_PHY_ROCKCHIP_INNO_HDMI=m
-CONFIG_PHY_ROCKCHIP_INNO_USB2=m
-# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set
-CONFIG_PHY_ROCKCHIP_PCIE=m
-CONFIG_PHY_ROCKCHIP_TYPEC=m
-CONFIG_PHY_ROCKCHIP_USB=m
-# CONFIG_PHY_SAMSUNG_USB2 is not set
-CONFIG_PHY_TEGRA_XUSB=m
-CONFIG_PHY_TEGRA194_P2U=m
-CONFIG_PHY_TUSB1210=m
-# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set
-# CONFIG_PHY_INTEL_KEEMBAY_USB is not set
-# end of PHY Subsystem
-
-# CONFIG_POWERCAP is not set
-# CONFIG_MCB is not set
-
-#
-# Performance monitor support
-#
-# CONFIG_ARM_CCI_PMU is not set
-# CONFIG_ARM_CCN is not set
-# CONFIG_ARM_CMN is not set
-CONFIG_ARM_PMU=y
-CONFIG_ARM_PMU_ACPI=y
-CONFIG_ARM_SMMU_V3_PMU=m
-# CONFIG_ARM_DSU_PMU is not set
-CONFIG_FSL_IMX8_DDR_PMU=m
-# CONFIG_QCOM_L2_PMU is not set
-# CONFIG_QCOM_L3_PMU is not set
-CONFIG_THUNDERX2_PMU=m
-# CONFIG_XGENE_PMU is not set
-# CONFIG_ARM_SPE_PMU is not set
-CONFIG_ARM_DMC620_PMU=m
-# CONFIG_HISI_PMU is not set
-# end of Performance monitor support
-
-CONFIG_RAS=y
-CONFIG_USB4=m
-# CONFIG_USB4_DEBUGFS_WRITE is not set
-# CONFIG_USB4_DMA_TEST is not set
-
-#
-# Android
-#
-# CONFIG_ANDROID is not set
-# end of Android
-
-CONFIG_LIBNVDIMM=y
-CONFIG_BLK_DEV_PMEM=y
-CONFIG_ND_BLK=y
-CONFIG_ND_CLAIM=y
-CONFIG_ND_BTT=y
-CONFIG_BTT=y
-CONFIG_OF_PMEM=y
-CONFIG_DAX_DRIVER=y
-CONFIG_DAX=y
-CONFIG_DEV_DAX=m
-CONFIG_DEV_DAX_HMEM=m
-CONFIG_DEV_DAX_HMEM_DEVICES=y
-CONFIG_NVMEM=y
-CONFIG_NVMEM_SYSFS=y
-CONFIG_NVMEM_IMX_IIM=m
-CONFIG_NVMEM_IMX_OCOTP=m
-CONFIG_NVMEM_IMX_OCOTP_SCU=m
-CONFIG_QCOM_QFPROM=m
-CONFIG_NVMEM_SPMI_SDAM=m
-CONFIG_ROCKCHIP_EFUSE=m
-CONFIG_ROCKCHIP_OTP=m
-CONFIG_NVMEM_SUNXI_SID=m
-# CONFIG_MESON_EFUSE is not set
-# CONFIG_MESON_MX_EFUSE is not set
-CONFIG_NVMEM_SNVS_LPGPR=m
-CONFIG_NVMEM_RMEM=m
-
-#
-# HW tracing support
-#
-# CONFIG_STM is not set
-# CONFIG_INTEL_TH is not set
-# end of HW tracing support
-
-# CONFIG_FPGA is not set
-# CONFIG_FSI is not set
-CONFIG_TEE=m
-
-#
-# TEE drivers
-#
-CONFIG_OPTEE=m
-CONFIG_OPTEE_SHM_NUM_PRIV_PAGES=1
-# end of TEE drivers
-
-CONFIG_MULTIPLEXER=m
-
-#
-# Multiplexer drivers
-#
-CONFIG_MUX_ADG792A=m
-CONFIG_MUX_ADGS1408=m
-CONFIG_MUX_GPIO=m
-CONFIG_MUX_MMIO=m
-# end of Multiplexer drivers
-
-CONFIG_PM_OPP=y
-# CONFIG_SIOX is not set
-# CONFIG_SLIMBUS is not set
-CONFIG_INTERCONNECT=y
-CONFIG_INTERCONNECT_IMX=m
-CONFIG_INTERCONNECT_IMX8MM=m
-CONFIG_INTERCONNECT_IMX8MN=m
-CONFIG_INTERCONNECT_IMX8MQ=m
-CONFIG_INTERCONNECT_QCOM=y
-CONFIG_INTERCONNECT_QCOM_MSM8916=m
-CONFIG_INTERCONNECT_QCOM_MSM8939=m
-# CONFIG_INTERCONNECT_QCOM_MSM8974 is not set
-CONFIG_INTERCONNECT_QCOM_OSM_L3=m
-# CONFIG_INTERCONNECT_QCOM_QCS404 is not set
-CONFIG_INTERCONNECT_QCOM_SDM660=m
-CONFIG_INTERCONNECT_QCOM_SMD_RPM=m
-# CONFIG_COUNTER is not set
-# CONFIG_MOST is not set
-# end of Device Drivers
-
-#
-# File systems
-#
-CONFIG_DCACHE_WORD_ACCESS=y
-CONFIG_VALIDATE_FS_PARSER=y
-CONFIG_FS_IOMAP=y
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT3_FS is not set
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_USE_FOR_EXT2=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD2=y
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-# CONFIG_JFS_DEBUG is not set
-# CONFIG_JFS_STATISTICS is not set
-CONFIG_XFS_FS=m
-CONFIG_XFS_SUPPORT_V4=y
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-# CONFIG_XFS_ONLINE_SCRUB is not set
-# CONFIG_XFS_WARN is not set
-# CONFIG_XFS_DEBUG is not set
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=y
-CONFIG_OCFS2_FS=m
-CONFIG_OCFS2_FS_O2CB=m
-CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
-CONFIG_OCFS2_FS_STATS=y
-CONFIG_OCFS2_DEBUG_MASKLOG=y
-# CONFIG_OCFS2_DEBUG_FS is not set
-CONFIG_BTRFS_FS=m
-CONFIG_BTRFS_FS_POSIX_ACL=y
-# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
-# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
-# CONFIG_BTRFS_DEBUG is not set
-# CONFIG_BTRFS_ASSERT is not set
-# CONFIG_BTRFS_FS_REF_VERIFY is not set
-CONFIG_NILFS2_FS=m
-CONFIG_F2FS_FS=m
-CONFIG_F2FS_STAT_FS=y
-CONFIG_F2FS_FS_XATTR=y
-CONFIG_F2FS_FS_POSIX_ACL=y
-CONFIG_F2FS_FS_SECURITY=y
-# CONFIG_F2FS_CHECK_FS is not set
-# CONFIG_F2FS_FAULT_INJECTION is not set
-# CONFIG_F2FS_FS_COMPRESSION is not set
-CONFIG_FS_DAX=y
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-CONFIG_EXPORTFS_BLOCK_OPS=y
-CONFIG_FILE_LOCKING=y
-CONFIG_MANDATORY_FILE_LOCKING=y
-# CONFIG_FS_ENCRYPTION is not set
-CONFIG_FS_VERITY=y
-# CONFIG_FS_VERITY_DEBUG is not set
-# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_FANOTIFY=y
-CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-CONFIG_PRINT_QUOTA_WARNING=y
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=m
-CONFIG_QFMT_V1=m
-CONFIG_QFMT_V2=m
-CONFIG_QUOTACTL=y
-CONFIG_AUTOFS4_FS=m
-CONFIG_AUTOFS_FS=m
-CONFIG_FUSE_FS=m
-CONFIG_CUSE=m
-CONFIG_VIRTIO_FS=m
-CONFIG_FUSE_DAX=y
-CONFIG_OVERLAY_FS=m
-# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
-CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
-# CONFIG_OVERLAY_FS_INDEX is not set
-# CONFIG_OVERLAY_FS_XINO_AUTO is not set
-# CONFIG_OVERLAY_FS_METACOPY is not set
-
-#
-# Caches
-#
-CONFIG_NETFS_SUPPORT=m
-# CONFIG_NETFS_STATS is not set
-CONFIG_FSCACHE=m
-CONFIG_FSCACHE_STATS=y
-# CONFIG_FSCACHE_HISTOGRAM is not set
-# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
-CONFIG_CACHEFILES=m
-# CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
-# end of Caches
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-# end of CD-ROM/DVD Filesystems
-
-#
-# DOS/FAT/EXFAT/NT Filesystems
-#
-CONFIG_FAT_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
-CONFIG_FAT_DEFAULT_UTF8=y
-CONFIG_EXFAT_FS=m
-CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-# CONFIG_NTFS_RW is not set
-# end of DOS/FAT/EXFAT/NT Filesystems
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_PROC_VMCORE=y
-# CONFIG_PROC_VMCORE_DEVICE_DUMP is not set
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_PROC_CHILDREN=y
-CONFIG_KERNFS=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-# CONFIG_TMPFS_INODE64 is not set
-CONFIG_ARCH_SUPPORTS_HUGETLBFS=y
-CONFIG_HUGETLBFS=y
-CONFIG_HUGETLB_PAGE=y
-CONFIG_MEMFD_CREATE=y
-CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
-CONFIG_CONFIGFS_FS=m
-CONFIG_EFIVAR_FS=m
-# end of Pseudo filesystems
-
-CONFIG_MISC_FILESYSTEMS=y
-# CONFIG_ORANGEFS_FS is not set
-CONFIG_ADFS_FS=m
-# CONFIG_ADFS_FS_RW is not set
-CONFIG_AFFS_FS=m
-CONFIG_ECRYPT_FS=m
-CONFIG_ECRYPT_FS_MESSAGING=y
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-CONFIG_BEFS_FS=m
-# CONFIG_BEFS_DEBUG is not set
-CONFIG_BFS_FS=m
-CONFIG_EFS_FS=m
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-CONFIG_JFFS2_SUMMARY=y
-CONFIG_JFFS2_FS_XATTR=y
-CONFIG_JFFS2_FS_POSIX_ACL=y
-CONFIG_JFFS2_FS_SECURITY=y
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_LZO=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_JFFS2_CMODE_NONE is not set
-CONFIG_JFFS2_CMODE_PRIORITY=y
-# CONFIG_JFFS2_CMODE_SIZE is not set
-# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
-CONFIG_UBIFS_FS=m
-CONFIG_UBIFS_FS_ADVANCED_COMPR=y
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-CONFIG_UBIFS_FS_ZSTD=y
-# CONFIG_UBIFS_ATIME_SUPPORT is not set
-CONFIG_UBIFS_FS_XATTR=y
-CONFIG_UBIFS_FS_SECURITY=y
-CONFIG_UBIFS_FS_AUTHENTICATION=y
-# CONFIG_CRAMFS is not set
-CONFIG_SQUASHFS=m
-CONFIG_SQUASHFS_FILE_CACHE=y
-# CONFIG_SQUASHFS_FILE_DIRECT is not set
-CONFIG_SQUASHFS_DECOMP_SINGLE=y
-# CONFIG_SQUASHFS_DECOMP_MULTI is not set
-# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
-CONFIG_SQUASHFS_XATTR=y
-CONFIG_SQUASHFS_ZLIB=y
-CONFIG_SQUASHFS_LZ4=y
-CONFIG_SQUASHFS_LZO=y
-CONFIG_SQUASHFS_XZ=y
-CONFIG_SQUASHFS_ZSTD=y
-# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-CONFIG_VXFS_FS=m
-CONFIG_MINIX_FS=m
-CONFIG_OMFS_FS=m
-CONFIG_HPFS_FS=m
-CONFIG_QNX4FS_FS=m
-CONFIG_QNX6FS_FS=m
-# CONFIG_QNX6FS_DEBUG is not set
-CONFIG_ROMFS_FS=m
-# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
-# CONFIG_ROMFS_BACKED_BY_MTD is not set
-CONFIG_ROMFS_BACKED_BY_BOTH=y
-CONFIG_ROMFS_ON_BLOCK=y
-CONFIG_ROMFS_ON_MTD=y
-CONFIG_PSTORE=y
-CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
-CONFIG_PSTORE_DEFLATE_COMPRESS=m
-# CONFIG_PSTORE_LZO_COMPRESS is not set
-# CONFIG_PSTORE_LZ4_COMPRESS is not set
-# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
-# CONFIG_PSTORE_842_COMPRESS is not set
-# CONFIG_PSTORE_ZSTD_COMPRESS is not set
-CONFIG_PSTORE_COMPRESS=y
-CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
-CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
-# CONFIG_PSTORE_CONSOLE is not set
-# CONFIG_PSTORE_PMSG is not set
-# CONFIG_PSTORE_FTRACE is not set
-CONFIG_PSTORE_RAM=m
-CONFIG_PSTORE_ZONE=m
-CONFIG_PSTORE_BLK=m
-CONFIG_PSTORE_BLK_BLKDEV=""
-CONFIG_PSTORE_BLK_KMSG_SIZE=64
-CONFIG_PSTORE_BLK_MAX_REASON=2
-CONFIG_SYSV_FS=m
-CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_UFS_DEBUG is not set
-CONFIG_EROFS_FS=m
-# CONFIG_EROFS_FS_DEBUG is not set
-CONFIG_EROFS_FS_XATTR=y
-CONFIG_EROFS_FS_POSIX_ACL=y
-CONFIG_EROFS_FS_SECURITY=y
-# CONFIG_EROFS_FS_ZIP is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=m
-CONFIG_NFS_V2=m
-CONFIG_NFS_V3=m
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=m
-CONFIG_NFS_SWAP=y
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_V4_2=y
-CONFIG_PNFS_FILE_LAYOUT=m
-CONFIG_PNFS_BLOCK=m
-CONFIG_PNFS_FLEXFILE_LAYOUT=m
-CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
-# CONFIG_NFS_V4_1_MIGRATION is not set
-CONFIG_NFS_V4_SECURITY_LABEL=y
-CONFIG_NFS_FSCACHE=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-CONFIG_NFS_DEBUG=y
-# CONFIG_NFS_DISABLE_UDP_SUPPORT is not set
-# CONFIG_NFS_V4_2_READ_PLUS is not set
-CONFIG_NFSD=m
-CONFIG_NFSD_V2_ACL=y
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_PNFS=y
-CONFIG_NFSD_BLOCKLAYOUT=y
-# CONFIG_NFSD_SCSILAYOUT is not set
-# CONFIG_NFSD_FLEXFILELAYOUT is not set
-# CONFIG_NFSD_V4_2_INTER_SSC is not set
-CONFIG_NFSD_V4_SECURITY_LABEL=y
-CONFIG_GRACE_PERIOD=m
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_ACL_SUPPORT=m
-CONFIG_NFS_COMMON=y
-CONFIG_NFS_V4_2_SSC_HELPER=y
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
-CONFIG_SUNRPC_BACKCHANNEL=y
-CONFIG_SUNRPC_SWAP=y
-CONFIG_RPCSEC_GSS_KRB5=m
-CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y
-CONFIG_SUNRPC_DEBUG=y
-CONFIG_SUNRPC_XPRT_RDMA=m
-CONFIG_CEPH_FS=m
-CONFIG_CEPH_FSCACHE=y
-CONFIG_CEPH_FS_POSIX_ACL=y
-CONFIG_CEPH_FS_SECURITY_LABEL=y
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS2 is not set
-CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
-CONFIG_CIFS_WEAK_PW_HASH=y
-CONFIG_CIFS_UPCALL=y
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-CONFIG_CIFS_DEBUG=y
-# CONFIG_CIFS_DEBUG2 is not set
-# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
-CONFIG_CIFS_DFS_UPCALL=y
-CONFIG_CIFS_SWN_UPCALL=y
-# CONFIG_CIFS_SMB_DIRECT is not set
-CONFIG_CIFS_FSCACHE=y
-CONFIG_CODA_FS=m
-CONFIG_AFS_FS=m
-# CONFIG_AFS_DEBUG is not set
-CONFIG_AFS_FSCACHE=y
-# CONFIG_AFS_DEBUG_CURSOR is not set
-CONFIG_9P_FS=m
-CONFIG_9P_FSCACHE=y
-CONFIG_9P_FS_POSIX_ACL=y
-CONFIG_9P_FS_SECURITY=y
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_MAC_ROMAN=m
-CONFIG_NLS_MAC_CELTIC=m
-CONFIG_NLS_MAC_CENTEURO=m
-CONFIG_NLS_MAC_CROATIAN=m
-CONFIG_NLS_MAC_CYRILLIC=m
-CONFIG_NLS_MAC_GAELIC=m
-CONFIG_NLS_MAC_GREEK=m
-CONFIG_NLS_MAC_ICELAND=m
-CONFIG_NLS_MAC_INUIT=m
-CONFIG_NLS_MAC_ROMANIAN=m
-CONFIG_NLS_MAC_TURKISH=m
-CONFIG_NLS_UTF8=m
-CONFIG_DLM=m
-CONFIG_DLM_DEBUG=y
-# CONFIG_UNICODE is not set
-CONFIG_IO_WQ=y
-# end of File systems
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-CONFIG_KEYS_REQUEST_CACHE=y
-# CONFIG_PERSISTENT_KEYRINGS is not set
-# CONFIG_ENCRYPTED_KEYS is not set
-# CONFIG_KEY_DH_OPERATIONS is not set
-CONFIG_KEY_NOTIFICATIONS=y
-CONFIG_SECURITY_DMESG_RESTRICT=y
-CONFIG_SECURITY=y
-CONFIG_SECURITYFS=y
-CONFIG_SECURITY_NETWORK=y
-# CONFIG_SECURITY_INFINIBAND is not set
-CONFIG_SECURITY_NETWORK_XFRM=y
-CONFIG_SECURITY_PATH=y
-CONFIG_LSM_MMAP_MIN_ADDR=32768
-CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
-CONFIG_HARDENED_USERCOPY=y
-CONFIG_HARDENED_USERCOPY_FALLBACK=y
-# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
-# CONFIG_FORTIFY_SOURCE is not set
-# CONFIG_STATIC_USERMODEHELPER is not set
-CONFIG_SECURITY_SELINUX=y
-# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
-# CONFIG_SECURITY_SELINUX_DISABLE is not set
-CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_AVC_STATS=y
-CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
-CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
-CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
-# CONFIG_SECURITY_SMACK is not set
-CONFIG_SECURITY_TOMOYO=y
-CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
-CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
-# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
-CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
-CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
-# CONFIG_SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING is not set
-CONFIG_SECURITY_APPARMOR=y
-CONFIG_SECURITY_APPARMOR_HASH=y
-CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
-# CONFIG_SECURITY_APPARMOR_DEBUG is not set
-# CONFIG_SECURITY_LOADPIN is not set
-CONFIG_SECURITY_YAMA=y
-# CONFIG_SECURITY_SAFESETID is not set
-# CONFIG_SECURITY_LOCKDOWN_LSM is not set
-CONFIG_SECURITY_LANDLOCK=y
-CONFIG_INTEGRITY=y
-CONFIG_INTEGRITY_SIGNATURE=y
-CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
-CONFIG_INTEGRITY_TRUSTED_KEYRING=y
-CONFIG_INTEGRITY_AUDIT=y
-# CONFIG_IMA is not set
-# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set
-# CONFIG_EVM is not set
-# CONFIG_DEFAULT_SECURITY_SELINUX is not set
-# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
-CONFIG_DEFAULT_SECURITY_APPARMOR=y
-# CONFIG_DEFAULT_SECURITY_DAC is not set
-CONFIG_LSM="yama,loadpin,safesetid,integrity,apparmor,selinux,smack,tomoyo"
-
-#
-# Kernel hardening options
-#
-
-#
-# Memory initialization
-#
-CONFIG_INIT_STACK_NONE=y
-CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
-# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
-# end of Memory initialization
-# end of Kernel hardening options
-# end of Security options
-
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_SKCIPHER=y
-CONFIG_CRYPTO_SKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=m
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_RNG_DEFAULT=m
-CONFIG_CRYPTO_AKCIPHER2=y
-CONFIG_CRYPTO_AKCIPHER=y
-CONFIG_CRYPTO_KPP2=y
-CONFIG_CRYPTO_KPP=m
-CONFIG_CRYPTO_ACOMP2=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-CONFIG_CRYPTO_USER=m
-# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
-# CONFIG_CRYPTO_MANAGER_EXTRA_TESTS is not set
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_NULL2=y
-CONFIG_CRYPTO_PCRYPT=m
-CONFIG_CRYPTO_CRYPTD=m
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_TEST=m
-CONFIG_CRYPTO_SIMD=m
-CONFIG_CRYPTO_ENGINE=m
-
-#
-# Public-key cryptography
-#
-CONFIG_CRYPTO_RSA=y
-CONFIG_CRYPTO_DH=m
-CONFIG_CRYPTO_ECC=m
-CONFIG_CRYPTO_ECDH=m
-CONFIG_CRYPTO_ECDSA=m
-CONFIG_CRYPTO_ECRDSA=m
-CONFIG_CRYPTO_SM2=m
-CONFIG_CRYPTO_CURVE25519=m
-
-#
-# Authenticated Encryption with Associated Data
-#
-CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_GCM=m
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS128_SIMD=y
-CONFIG_CRYPTO_SEQIV=m
-CONFIG_CRYPTO_ECHAINIV=m
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=m
-CONFIG_CRYPTO_CFB=m
-CONFIG_CRYPTO_CTR=m
-CONFIG_CRYPTO_CTS=m
-CONFIG_CRYPTO_ECB=m
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_OFB=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=m
-# CONFIG_CRYPTO_KEYWRAP is not set
-CONFIG_CRYPTO_NHPOLY1305=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_ESSIV=m
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_CMAC=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CRC32=m
-CONFIG_CRYPTO_XXHASH=m
-CONFIG_CRYPTO_BLAKE2B=m
-CONFIG_CRYPTO_BLAKE2S=m
-CONFIG_CRYPTO_CRCT10DIF=y
-CONFIG_CRYPTO_GHASH=m
-CONFIG_CRYPTO_POLY1305=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_SM3=m
-CONFIG_CRYPTO_STREEBOG=m
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-# CONFIG_CRYPTO_AES_TI is not set
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_BLOWFISH_COMMON=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST_COMMON=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_CHACHA20=m
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_SM4=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_LZO=y
-# CONFIG_CRYPTO_842 is not set
-CONFIG_CRYPTO_LZ4=m
-CONFIG_CRYPTO_LZ4HC=m
-CONFIG_CRYPTO_ZSTD=m
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_DRBG_MENU=m
-CONFIG_CRYPTO_DRBG_HMAC=y
-# CONFIG_CRYPTO_DRBG_HASH is not set
-# CONFIG_CRYPTO_DRBG_CTR is not set
-CONFIG_CRYPTO_DRBG=m
-CONFIG_CRYPTO_JITTERENTROPY=m
-CONFIG_CRYPTO_USER_API=m
-CONFIG_CRYPTO_USER_API_HASH=m
-CONFIG_CRYPTO_USER_API_SKCIPHER=m
-CONFIG_CRYPTO_USER_API_RNG=m
-# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
-CONFIG_CRYPTO_USER_API_AEAD=m
-CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
-# CONFIG_CRYPTO_STATS is not set
-CONFIG_CRYPTO_HASH_INFO=y
-
-#
-# Crypto library routines
-#
-CONFIG_CRYPTO_LIB_AES=y
-CONFIG_CRYPTO_LIB_ARC4=m
-CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=m
-CONFIG_CRYPTO_LIB_BLAKE2S=m
-CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
-CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
-CONFIG_CRYPTO_LIB_CHACHA=m
-CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
-CONFIG_CRYPTO_LIB_CURVE25519=m
-CONFIG_CRYPTO_LIB_DES=m
-CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9
-CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m
-CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
-CONFIG_CRYPTO_LIB_POLY1305=m
-CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
-CONFIG_CRYPTO_LIB_SHA256=y
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_ALLWINNER=y
-CONFIG_CRYPTO_DEV_SUN4I_SS=m
-# CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG is not set
-# CONFIG_CRYPTO_DEV_SUN4I_SS_DEBUG is not set
-CONFIG_CRYPTO_DEV_SUN8I_CE=m
-# CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG is not set
-# CONFIG_CRYPTO_DEV_SUN8I_CE_HASH is not set
-# CONFIG_CRYPTO_DEV_SUN8I_CE_PRNG is not set
-# CONFIG_CRYPTO_DEV_SUN8I_CE_TRNG is not set
-CONFIG_CRYPTO_DEV_SUN8I_SS=m
-# CONFIG_CRYPTO_DEV_SUN8I_SS_DEBUG is not set
-# CONFIG_CRYPTO_DEV_SUN8I_SS_PRNG is not set
-# CONFIG_CRYPTO_DEV_SUN8I_SS_HASH is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM_COMMON=m
-CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC=m
-CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC=m
-CONFIG_CRYPTO_DEV_FSL_CAAM=m
-# CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM_JR=m
-CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
-# CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
-CONFIG_CRYPTO_DEV_SAHARA=m
-CONFIG_CRYPTO_DEV_ATMEL_I2C=m
-CONFIG_CRYPTO_DEV_ATMEL_ECC=m
-CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m
-# CONFIG_CRYPTO_DEV_CCP is not set
-# CONFIG_CRYPTO_DEV_MXS_DCP is not set
-CONFIG_CRYPTO_DEV_CPT=m
-CONFIG_CAVIUM_CPT=m
-CONFIG_CRYPTO_DEV_NITROX=m
-CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
-CONFIG_CRYPTO_DEV_MARVELL=m
-CONFIG_CRYPTO_DEV_MARVELL_CESA=m
-# CONFIG_CRYPTO_DEV_OCTEONTX_CPT is not set
-CONFIG_CRYPTO_DEV_OCTEONTX2_CPT=m
-# CONFIG_CRYPTO_DEV_CAVIUM_ZIP is not set
-CONFIG_CRYPTO_DEV_QCE=m
-CONFIG_CRYPTO_DEV_QCE_SKCIPHER=y
-CONFIG_CRYPTO_DEV_QCE_SHA=y
-CONFIG_CRYPTO_DEV_QCE_ENABLE_ALL=y
-# CONFIG_CRYPTO_DEV_QCE_ENABLE_SKCIPHER is not set
-# CONFIG_CRYPTO_DEV_QCE_ENABLE_SHA is not set
-CONFIG_CRYPTO_DEV_QCE_SW_MAX_LEN=512
-CONFIG_CRYPTO_DEV_QCOM_RNG=m
-# CONFIG_CRYPTO_DEV_ROCKCHIP is not set
-CONFIG_CRYPTO_DEV_CHELSIO=m
-CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DEV_SAFEXCEL=m
-# CONFIG_CRYPTO_DEV_CCREE is not set
-CONFIG_CRYPTO_DEV_HISI_SEC=m
-CONFIG_CRYPTO_DEV_HISI_SEC2=m
-CONFIG_CRYPTO_DEV_HISI_QM=m
-CONFIG_CRYPTO_DEV_HISI_ZIP=m
-CONFIG_CRYPTO_DEV_HISI_HPRE=m
-CONFIG_CRYPTO_DEV_HISI_TRNG=m
-CONFIG_CRYPTO_DEV_AMLOGIC_GXL=m
-# CONFIG_CRYPTO_DEV_AMLOGIC_GXL_DEBUG is not set
-# CONFIG_CRYPTO_DEV_KEEMBAY_OCS_AES_SM4 is not set
-# CONFIG_CRYPTO_DEV_KEEMBAY_OCS_HCU is not set
-CONFIG_ASYMMETRIC_KEY_TYPE=y
-CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
-CONFIG_X509_CERTIFICATE_PARSER=y
-CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
-CONFIG_PKCS7_MESSAGE_PARSER=y
-# CONFIG_PKCS7_TEST_KEY is not set
-# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set
-
-#
-# Certificates for signature checking
-#
-CONFIG_SYSTEM_TRUSTED_KEYRING=y
-CONFIG_SYSTEM_TRUSTED_KEYS=""
-# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
-# CONFIG_SECONDARY_TRUSTED_KEYRING is not set
-# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
-# end of Certificates for signature checking
-
-CONFIG_BINARY_PRINTF=y
-
-#
-# Library routines
-#
-CONFIG_RAID6_PQ=m
-CONFIG_RAID6_PQ_BENCHMARK=y
-CONFIG_LINEAR_RANGES=y
-CONFIG_PACKING=y
-CONFIG_BITREVERSE=y
-CONFIG_HAVE_ARCH_BITREVERSE=y
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GENERIC_NET_UTILS=y
-CONFIG_GENERIC_FIND_FIRST_BIT=y
-CONFIG_CORDIC=m
-CONFIG_PRIME_NUMBERS=m
-CONFIG_RATIONAL=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_STMP_DEVICE=y
-CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
-CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
-CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
-# CONFIG_INDIRECT_PIO is not set
-CONFIG_CRC_CCITT=m
-CONFIG_CRC16=y
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC32=y
-# CONFIG_CRC32_SELFTEST is not set
-CONFIG_CRC32_SLICEBY8=y
-# CONFIG_CRC32_SLICEBY4 is not set
-# CONFIG_CRC32_SARWATE is not set
-# CONFIG_CRC32_BIT is not set
-CONFIG_CRC64=m
-# CONFIG_CRC4 is not set
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=m
-CONFIG_CRC8=y
-CONFIG_XXHASH=y
-CONFIG_AUDIT_GENERIC=y
-CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
-CONFIG_AUDIT_COMPAT_GENERIC=y
-# CONFIG_RANDOM32_SELFTEST is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_LZ4_COMPRESS=m
-CONFIG_LZ4HC_COMPRESS=m
-CONFIG_LZ4_DECOMPRESS=y
-CONFIG_ZSTD_COMPRESS=m
-CONFIG_ZSTD_DECOMPRESS=y
-CONFIG_XZ_DEC=y
-# CONFIG_XZ_DEC_X86 is not set
-# CONFIG_XZ_DEC_POWERPC is not set
-# CONFIG_XZ_DEC_IA64 is not set
-# CONFIG_XZ_DEC_ARM is not set
-# CONFIG_XZ_DEC_ARMTHUMB is not set
-# CONFIG_XZ_DEC_SPARC is not set
-# CONFIG_XZ_DEC_TEST is not set
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_BZIP2=y
-CONFIG_DECOMPRESS_LZMA=y
-CONFIG_DECOMPRESS_XZ=y
-CONFIG_DECOMPRESS_LZO=y
-CONFIG_DECOMPRESS_LZ4=y
-CONFIG_DECOMPRESS_ZSTD=y
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_REED_SOLOMON=m
-CONFIG_REED_SOLOMON_ENC8=y
-CONFIG_REED_SOLOMON_DEC8=y
-CONFIG_REED_SOLOMON_DEC16=y
-CONFIG_BCH=m
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_BTREE=y
-CONFIG_INTERVAL_TREE=y
-CONFIG_XARRAY_MULTI=y
-CONFIG_ASSOCIATIVE_ARRAY=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT_MAP=y
-CONFIG_HAS_DMA=y
-CONFIG_DMA_OPS=y
-CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_ARCH_DMA_ADDR_T_64BIT=y
-CONFIG_DMA_DECLARE_COHERENT=y
-CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
-CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
-CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
-CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
-CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
-CONFIG_SWIOTLB=y
-CONFIG_DMA_NONCOHERENT_MMAP=y
-CONFIG_DMA_COHERENT_POOL=y
-CONFIG_DMA_REMAP=y
-CONFIG_DMA_DIRECT_REMAP=y
-CONFIG_DMA_CMA=y
-CONFIG_DMA_PERNUMA_CMA=y
-
-#
-# Default contiguous memory area size:
-#
-CONFIG_CMA_SIZE_MBYTES=64
-CONFIG_CMA_SIZE_SEL_MBYTES=y
-# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
-# CONFIG_CMA_SIZE_SEL_MIN is not set
-# CONFIG_CMA_SIZE_SEL_MAX is not set
-CONFIG_CMA_ALIGNMENT=8
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_DMA_MAP_BENCHMARK is not set
-CONFIG_SGL_ALLOC=y
-CONFIG_CHECK_SIGNATURE=y
-CONFIG_CPU_RMAP=y
-CONFIG_DQL=y
-CONFIG_GLOB=y
-# CONFIG_GLOB_SELFTEST is not set
-CONFIG_NLATTR=y
-CONFIG_LRU_CACHE=m
-CONFIG_CLZ_TAB=y
-CONFIG_IRQ_POLL=y
-CONFIG_MPILIB=y
-CONFIG_SIGNATURE=y
-CONFIG_DIMLIB=y
-CONFIG_LIBFDT=y
-CONFIG_OID_REGISTRY=y
-CONFIG_UCS2_STRING=y
-CONFIG_HAVE_GENERIC_VDSO=y
-CONFIG_GENERIC_GETTIMEOFDAY=y
-CONFIG_GENERIC_VDSO_TIME_NS=y
-CONFIG_FONT_SUPPORT=y
-CONFIG_FONTS=y
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-# CONFIG_FONT_6x11 is not set
-# CONFIG_FONT_7x14 is not set
-# CONFIG_FONT_PEARL_8x8 is not set
-# CONFIG_FONT_ACORN_8x8 is not set
-# CONFIG_FONT_MINI_4x6 is not set
-CONFIG_FONT_6x10=y
-# CONFIG_FONT_10x18 is not set
-# CONFIG_FONT_SUN8x16 is not set
-# CONFIG_FONT_SUN12x22 is not set
-CONFIG_FONT_TER16x32=y
-CONFIG_FONT_6x8=y
-CONFIG_SG_SPLIT=y
-CONFIG_SG_POOL=y
-CONFIG_ARCH_HAS_PMEM_API=y
-CONFIG_MEMREGION=y
-CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
-CONFIG_ARCH_STACKWALK=y
-CONFIG_SBITMAP=y
-# CONFIG_STRING_SELFTEST is not set
-# end of Library routines
-
-CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
-
-#
-# Kernel hacking
-#
-
-#
-# printk and dmesg options
-#
-CONFIG_PRINTK_TIME=y
-# CONFIG_PRINTK_CALLER is not set
-CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
-CONFIG_CONSOLE_LOGLEVEL_QUIET=4
-CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
-CONFIG_BOOT_PRINTK_DELAY=y
-CONFIG_DYNAMIC_DEBUG=y
-CONFIG_DYNAMIC_DEBUG_CORE=y
-CONFIG_SYMBOLIC_ERRNAME=y
-CONFIG_DEBUG_BUGVERBOSE=y
-# end of printk and dmesg options
-
-#
-# Compile-time checks and compiler options
-#
-CONFIG_DEBUG_INFO=y
-# CONFIG_DEBUG_INFO_REDUCED is not set
-# CONFIG_DEBUG_INFO_COMPRESSED is not set
-# CONFIG_DEBUG_INFO_SPLIT is not set
-CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
-# CONFIG_DEBUG_INFO_DWARF4 is not set
-# CONFIG_DEBUG_INFO_DWARF5 is not set
-# CONFIG_DEBUG_INFO_BTF is not set
-# CONFIG_GDB_SCRIPTS is not set
-CONFIG_FRAME_WARN=2048
-CONFIG_STRIP_ASM_SYMS=y
-# CONFIG_READABLE_ASM is not set
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_SECTION_MISMATCH_WARN_ONLY=y
-# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set
-CONFIG_ARCH_WANT_FRAME_POINTERS=y
-CONFIG_FRAME_POINTER=y
-# CONFIG_VMLINUX_MAP is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# end of Compile-time checks and compiler options
-
-#
-# Generic Kernel Debugging Instruments
-#
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x01b6
-CONFIG_MAGIC_SYSRQ_SERIAL=y
-CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE=""
-CONFIG_DEBUG_FS=y
-CONFIG_DEBUG_FS_ALLOW_ALL=y
-# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set
-# CONFIG_DEBUG_FS_ALLOW_NONE is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
-# CONFIG_UBSAN is not set
-# end of Generic Kernel Debugging Instruments
-
-CONFIG_DEBUG_KERNEL=y
-CONFIG_DEBUG_MISC=y
-
-#
-# Memory Debugging
-#
-CONFIG_PAGE_EXTENSION=y
-# CONFIG_DEBUG_PAGEALLOC is not set
-# CONFIG_PAGE_OWNER is not set
-CONFIG_PAGE_POISONING=y
-# CONFIG_DEBUG_PAGE_REF is not set
-# CONFIG_DEBUG_RODATA_TEST is not set
-CONFIG_ARCH_HAS_DEBUG_WX=y
-# CONFIG_DEBUG_WX is not set
-CONFIG_GENERIC_PTDUMP=y
-# CONFIG_PTDUMP_DEBUGFS is not set
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-CONFIG_SCHED_STACK_END_CHECK=y
-CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
-# CONFIG_DEBUG_VM is not set
-CONFIG_DEBUG_VM_PGTABLE=y
-CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
-# CONFIG_DEBUG_VIRTUAL is not set
-CONFIG_DEBUG_MEMORY_INIT=y
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
-CONFIG_HAVE_ARCH_KASAN=y
-CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y
-CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
-CONFIG_CC_HAS_KASAN_GENERIC=y
-CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
-# CONFIG_KASAN is not set
-CONFIG_HAVE_ARCH_KFENCE=y
-CONFIG_KFENCE=y
-CONFIG_KFENCE_STATIC_KEYS=y
-CONFIG_KFENCE_SAMPLE_INTERVAL=0
-CONFIG_KFENCE_NUM_OBJECTS=255
-CONFIG_KFENCE_STRESS_TEST_FAULTS=0
-# end of Memory Debugging
-
-# CONFIG_DEBUG_SHIRQ is not set
-
-#
-# Debug Oops, Lockups and Hangs
-#
-# CONFIG_PANIC_ON_OOPS is not set
-CONFIG_PANIC_ON_OOPS_VALUE=0
-CONFIG_PANIC_TIMEOUT=0
-CONFIG_LOCKUP_DETECTOR=y
-CONFIG_SOFTLOCKUP_DETECTOR=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-# CONFIG_WQ_WATCHDOG is not set
-# CONFIG_TEST_LOCKUP is not set
-# end of Debug Oops, Lockups and Hangs
-
-#
-# Scheduler Debugging
-#
-CONFIG_SCHED_DEBUG=y
-CONFIG_SCHED_INFO=y
-CONFIG_SCHEDSTATS=y
-# end of Scheduler Debugging
-
-# CONFIG_DEBUG_TIMEKEEPING is not set
-
-#
-# Lock Debugging (spinlocks, mutexes, etc...)
-#
-CONFIG_LOCK_DEBUGGING_SUPPORT=y
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
-# CONFIG_DEBUG_RWSEMS is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_LOCK_TORTURE_TEST is not set
-# CONFIG_WW_MUTEX_SELFTEST is not set
-# CONFIG_SCF_TORTURE_TEST is not set
-# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
-# end of Lock Debugging (spinlocks, mutexes, etc...)
-
-# CONFIG_DEBUG_IRQFLAGS is not set
-CONFIG_STACKTRACE=y
-# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
-# CONFIG_DEBUG_KOBJECT is not set
-
-#
-# Debug kernel data structures
-#
-CONFIG_DEBUG_LIST=y
-# CONFIG_DEBUG_PLIST is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-CONFIG_BUG_ON_DATA_CORRUPTION=y
-# end of Debug kernel data structures
-
-# CONFIG_DEBUG_CREDENTIALS is not set
-
-#
-# RCU Debugging
-#
-# CONFIG_RCU_SCALE_TEST is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_REF_SCALE_TEST is not set
-CONFIG_RCU_CPU_STALL_TIMEOUT=21
-# CONFIG_RCU_TRACE is not set
-# CONFIG_RCU_EQS_DEBUG is not set
-# end of RCU Debugging
-
-# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
-# CONFIG_LATENCYTOP is not set
-CONFIG_NOP_TRACER=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_TRACER_MAX_TRACE=y
-CONFIG_TRACE_CLOCK=y
-CONFIG_RING_BUFFER=y
-CONFIG_EVENT_TRACING=y
-CONFIG_CONTEXT_SWITCH_TRACER=y
-CONFIG_TRACING=y
-CONFIG_GENERIC_TRACER=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-# CONFIG_BOOTTIME_TRACING is not set
-CONFIG_FUNCTION_TRACER=y
-CONFIG_FUNCTION_GRAPH_TRACER=y
-CONFIG_DYNAMIC_FTRACE=y
-CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
-# CONFIG_FUNCTION_PROFILER is not set
-CONFIG_STACK_TRACER=y
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_HWLAT_TRACER is not set
-CONFIG_FTRACE_SYSCALLS=y
-CONFIG_TRACER_SNAPSHOT=y
-# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-# CONFIG_PROFILE_ALL_BRANCHES is not set
-CONFIG_BLK_DEV_IO_TRACE=y
-CONFIG_KPROBE_EVENTS=y
-# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
-CONFIG_UPROBE_EVENTS=y
-CONFIG_BPF_EVENTS=y
-CONFIG_DYNAMIC_EVENTS=y
-CONFIG_PROBE_EVENTS=y
-# CONFIG_BPF_KPROBE_OVERRIDE is not set
-CONFIG_FTRACE_MCOUNT_RECORD=y
-CONFIG_FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY=y
-CONFIG_SYNTH_EVENTS=y
-# CONFIG_HIST_TRIGGERS is not set
-# CONFIG_TRACE_EVENT_INJECT is not set
-# CONFIG_TRACEPOINT_BENCHMARK is not set
-# CONFIG_RING_BUFFER_BENCHMARK is not set
-# CONFIG_TRACE_EVAL_MAP_FILE is not set
-# CONFIG_FTRACE_RECORD_RECURSION is not set
-# CONFIG_FTRACE_STARTUP_TEST is not set
-# CONFIG_RING_BUFFER_STARTUP_TEST is not set
-# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set
-# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
-# CONFIG_SYNTH_EVENT_GEN_TEST is not set
-# CONFIG_KPROBE_EVENT_GEN_TEST is not set
-# CONFIG_SAMPLES is not set
-CONFIG_STRICT_DEVMEM=y
-CONFIG_IO_STRICT_DEVMEM=y
-
-#
-# arm64 Debugging
-#
-# CONFIG_PID_IN_CONTEXTIDR is not set
-# CONFIG_DEBUG_EFI is not set
-# CONFIG_ARM64_RELOC_TEST is not set
-# CONFIG_CORESIGHT is not set
-# end of arm64 Debugging
-
-#
-# Kernel Testing and Coverage
-#
-# CONFIG_KUNIT is not set
-CONFIG_NOTIFIER_ERROR_INJECTION=m
-CONFIG_PM_NOTIFIER_ERROR_INJECT=m
-# CONFIG_NETDEV_NOTIFIER_ERROR_INJECT is not set
-CONFIG_FUNCTION_ERROR_INJECTION=y
-# CONFIG_FAULT_INJECTION is not set
-CONFIG_ARCH_HAS_KCOV=y
-CONFIG_CC_HAS_SANCOV_TRACE_PC=y
-# CONFIG_KCOV is not set
-CONFIG_RUNTIME_TESTING_MENU=y
-# CONFIG_LKDTM is not set
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_TEST_MIN_HEAP is not set
-# CONFIG_TEST_SORT is not set
-# CONFIG_TEST_DIV64 is not set
-# CONFIG_KPROBES_SANITY_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_RBTREE_TEST is not set
-# CONFIG_REED_SOLOMON_TEST is not set
-# CONFIG_INTERVAL_TREE_TEST is not set
-# CONFIG_PERCPU_TEST is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
-# CONFIG_ASYNC_RAID6_TEST is not set
-# CONFIG_TEST_HEXDUMP is not set
-# CONFIG_TEST_STRING_HELPERS is not set
-CONFIG_TEST_STRSCPY=m
-# CONFIG_TEST_KSTRTOX is not set
-# CONFIG_TEST_PRINTF is not set
-# CONFIG_TEST_BITMAP is not set
-# CONFIG_TEST_UUID is not set
-CONFIG_TEST_XARRAY=m
-# CONFIG_TEST_OVERFLOW is not set
-# CONFIG_TEST_RHASHTABLE is not set
-# CONFIG_TEST_HASH is not set
-# CONFIG_TEST_IDA is not set
-# CONFIG_TEST_LKM is not set
-CONFIG_TEST_BITOPS=m
-CONFIG_TEST_VMALLOC=m
-CONFIG_TEST_USER_COPY=m
-CONFIG_TEST_BPF=m
-CONFIG_TEST_BLACKHOLE_DEV=m
-# CONFIG_FIND_BIT_BENCHMARK is not set
-CONFIG_TEST_FIRMWARE=m
-# CONFIG_TEST_SYSCTL is not set
-# CONFIG_TEST_UDELAY is not set
-CONFIG_TEST_STATIC_KEYS=m
-# CONFIG_TEST_KMOD is not set
-# CONFIG_TEST_MEMCAT_P is not set
-# CONFIG_TEST_STACKINIT is not set
-# CONFIG_TEST_MEMINIT is not set
-# CONFIG_TEST_FREE_PAGES is not set
-CONFIG_ARCH_USE_MEMTEST=y
-# CONFIG_MEMTEST is not set
-# end of Kernel Testing and Coverage
-# end of Kernel hacking
diff --git a/gnu/packages/aux-files/linux-libre/5.13-i686.conf b/gnu/packages/aux-files/linux-libre/5.13-i686.conf
deleted file mode 100644
index 209c597464..0000000000
--- a/gnu/packages/aux-files/linux-libre/5.13-i686.conf
+++ /dev/null
@@ -1,10883 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/i386 5.13.1 Kernel Configuration
-#
-CONFIG_CC_VERSION_TEXT="gcc (Debian 8.3.0-6) 8.3.0"
-CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=80300
-CONFIG_CLANG_VERSION=0
-CONFIG_AS_IS_GNU=y
-CONFIG_AS_VERSION=23101
-CONFIG_LD_IS_BFD=y
-CONFIG_LD_VERSION=23101
-CONFIG_LLD_VERSION=0
-CONFIG_CC_HAS_ASM_GOTO=y
-CONFIG_CC_HAS_ASM_INLINE=y
-CONFIG_IRQ_WORK=y
-CONFIG_BUILDTIME_TABLE_SORT=y
-CONFIG_THREAD_INFO_IN_TASK=y
-
-#
-# General setup
-#
-CONFIG_INIT_ENV_ARG_LIMIT=32
-# CONFIG_COMPILE_TEST is not set
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_BUILD_SALT=""
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_BZIP2=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_XZ=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_HAVE_KERNEL_LZ4=y
-CONFIG_HAVE_KERNEL_ZSTD=y
-CONFIG_KERNEL_GZIP=y
-# CONFIG_KERNEL_BZIP2 is not set
-# CONFIG_KERNEL_LZMA is not set
-# CONFIG_KERNEL_XZ is not set
-# CONFIG_KERNEL_LZO is not set
-# CONFIG_KERNEL_LZ4 is not set
-# CONFIG_KERNEL_ZSTD is not set
-CONFIG_DEFAULT_INIT=""
-CONFIG_DEFAULT_HOSTNAME="(none)"
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-CONFIG_WATCH_QUEUE=y
-CONFIG_CROSS_MEMORY_ATTACH=y
-CONFIG_USELIB=y
-CONFIG_AUDIT=y
-CONFIG_HAVE_ARCH_AUDITSYSCALL=y
-CONFIG_AUDITSYSCALL=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_GENERIC_IRQ_MIGRATION=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_IRQ_DOMAIN_HIERARCHY=y
-CONFIG_GENERIC_MSI_IRQ=y
-CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
-CONFIG_IRQ_MSI_IOMMU=y
-CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y
-CONFIG_GENERIC_IRQ_RESERVATION_MODE=y
-CONFIG_IRQ_FORCED_THREADING=y
-CONFIG_SPARSE_IRQ=y
-# CONFIG_GENERIC_IRQ_DEBUGFS is not set
-# end of IRQ subsystem
-
-CONFIG_CLOCKSOURCE_WATCHDOG=y
-CONFIG_ARCH_CLOCKSOURCE_INIT=y
-CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
-CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
-
-#
-# Timers subsystem
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ_COMMON=y
-# CONFIG_HZ_PERIODIC is not set
-CONFIG_NO_HZ_IDLE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-# end of Timers subsystem
-
-CONFIG_BPF=y
-CONFIG_HAVE_EBPF_JIT=y
-
-#
-# BPF subsystem
-#
-CONFIG_BPF_SYSCALL=y
-# CONFIG_BPF_JIT is not set
-# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
-# CONFIG_BPF_PRELOAD is not set
-# end of BPF subsystem
-
-# CONFIG_PREEMPT_NONE is not set
-CONFIG_PREEMPT_VOLUNTARY=y
-# CONFIG_PREEMPT is not set
-
-#
-# CPU/Task time and stats accounting
-#
-CONFIG_TICK_CPU_ACCOUNTING=y
-# CONFIG_IRQ_TIME_ACCOUNTING is not set
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_PSI=y
-# CONFIG_PSI_DEFAULT_DISABLED is not set
-# end of CPU/Task time and stats accounting
-
-CONFIG_CPU_ISOLATION=y
-
-#
-# RCU Subsystem
-#
-CONFIG_TREE_RCU=y
-# CONFIG_RCU_EXPERT is not set
-CONFIG_SRCU=y
-CONFIG_TREE_SRCU=y
-CONFIG_TASKS_RCU_GENERIC=y
-CONFIG_TASKS_RUDE_RCU=y
-CONFIG_TASKS_TRACE_RCU=y
-CONFIG_RCU_STALL_COMMON=y
-CONFIG_RCU_NEED_SEGCBLIST=y
-# end of RCU Subsystem
-
-CONFIG_BUILD_BIN2C=y
-# CONFIG_IKCONFIG is not set
-# CONFIG_IKHEADERS is not set
-CONFIG_LOG_BUF_SHIFT=18
-CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
-CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
-CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
-
-#
-# Scheduler features
-#
-# CONFIG_UCLAMP_TASK is not set
-# end of Scheduler features
-
-CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
-CONFIG_CGROUPS=y
-CONFIG_PAGE_COUNTER=y
-CONFIG_MEMCG=y
-CONFIG_MEMCG_SWAP=y
-CONFIG_MEMCG_KMEM=y
-CONFIG_BLK_CGROUP=y
-CONFIG_CGROUP_WRITEBACK=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_CFS_BANDWIDTH=y
-# CONFIG_RT_GROUP_SCHED is not set
-CONFIG_CGROUP_PIDS=y
-# CONFIG_CGROUP_RDMA is not set
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CGROUP_HUGETLB=y
-CONFIG_CPUSETS=y
-CONFIG_PROC_PID_CPUSET=y
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_CGROUP_PERF=y
-CONFIG_CGROUP_BPF=y
-CONFIG_CGROUP_MISC=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_SOCK_CGROUP_DATA=y
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_TIME_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_SCHED_AUTOGROUP=y
-# CONFIG_SYSFS_DEPRECATED is not set
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_RD_XZ=y
-CONFIG_RD_LZO=y
-CONFIG_RD_LZ4=y
-CONFIG_RD_ZSTD=y
-CONFIG_BOOT_CONFIG=y
-CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_LD_ORPHAN_WARN=y
-CONFIG_SYSCTL=y
-CONFIG_HAVE_UID16=y
-CONFIG_SYSCTL_EXCEPTION_TRACE=y
-CONFIG_HAVE_PCSPKR_PLATFORM=y
-CONFIG_EXPERT=y
-CONFIG_UID16=y
-CONFIG_MULTIUSER=y
-CONFIG_SGETMASK_SYSCALL=y
-CONFIG_SYSFS_SYSCALL=y
-CONFIG_FHANDLE=y
-CONFIG_POSIX_TIMERS=y
-CONFIG_PRINTK=y
-CONFIG_PRINTK_NMI=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_PCSPKR_PLATFORM=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_FUTEX_PI=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_IO_URING=y
-CONFIG_ADVISE_SYSCALLS=y
-CONFIG_MEMBARRIER=y
-CONFIG_KALLSYMS=y
-CONFIG_KALLSYMS_ALL=y
-CONFIG_KALLSYMS_BASE_RELATIVE=y
-CONFIG_USERFAULTFD=y
-CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
-CONFIG_KCMP=y
-CONFIG_RSEQ=y
-# CONFIG_DEBUG_RSEQ is not set
-# CONFIG_EMBEDDED is not set
-CONFIG_HAVE_PERF_EVENTS=y
-# CONFIG_PC104 is not set
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
-# end of Kernel Performance Events And Counters
-
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLUB_DEBUG=y
-# CONFIG_COMPAT_BRK is not set
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-# CONFIG_SLOB is not set
-CONFIG_SLAB_MERGE_DEFAULT=y
-CONFIG_SLAB_FREELIST_RANDOM=y
-CONFIG_SLAB_FREELIST_HARDENED=y
-CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
-CONFIG_SLUB_CPU_PARTIAL=y
-CONFIG_SYSTEM_DATA_VERIFICATION=y
-CONFIG_PROFILING=y
-CONFIG_TRACEPOINTS=y
-# end of General setup
-
-CONFIG_X86_32=y
-CONFIG_FORCE_DYNAMIC_FTRACE=y
-CONFIG_X86=y
-CONFIG_INSTRUCTION_DECODER=y
-CONFIG_OUTPUT_FORMAT="elf32-i386"
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_MMU=y
-CONFIG_ARCH_MMAP_RND_BITS_MIN=8
-CONFIG_ARCH_MMAP_RND_BITS_MAX=16
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
-CONFIG_GENERIC_ISA_DMA=y
-CONFIG_GENERIC_BUG=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_ARCH_HAS_CPU_RELAX=y
-CONFIG_ARCH_HAS_FILTER_PGPROT=y
-CONFIG_HAVE_SETUP_PER_CPU_AREA=y
-CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
-CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
-CONFIG_HAVE_INTEL_TXT=y
-CONFIG_X86_32_SMP=y
-CONFIG_ARCH_SUPPORTS_UPROBES=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_PGTABLE_LEVELS=3
-CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
-
-#
-# Processor type and features
-#
-# CONFIG_ZONE_DMA is not set
-CONFIG_SMP=y
-CONFIG_X86_FEATURE_NAMES=y
-CONFIG_X86_MPPARSE=y
-# CONFIG_GOLDFISH is not set
-CONFIG_RETPOLINE=y
-# CONFIG_X86_CPU_RESCTRL is not set
-# CONFIG_X86_BIGSMP is not set
-CONFIG_X86_EXTENDED_PLATFORM=y
-# CONFIG_X86_GOLDFISH is not set
-# CONFIG_X86_INTEL_MID is not set
-CONFIG_X86_INTEL_QUARK=y
-CONFIG_X86_INTEL_LPSS=y
-CONFIG_X86_AMD_PLATFORM_DEVICE=y
-CONFIG_IOSF_MBI=y
-CONFIG_IOSF_MBI_DEBUG=y
-CONFIG_X86_RDC321X=y
-CONFIG_X86_32_NON_STANDARD=y
-CONFIG_STA2X11=y
-CONFIG_X86_32_IRIS=m
-CONFIG_SCHED_OMIT_FRAME_POINTER=y
-CONFIG_HYPERVISOR_GUEST=y
-CONFIG_PARAVIRT=y
-# CONFIG_PARAVIRT_DEBUG is not set
-CONFIG_PARAVIRT_SPINLOCKS=y
-CONFIG_X86_HV_CALLBACK_VECTOR=y
-CONFIG_XEN=y
-CONFIG_XEN_PVHVM=y
-CONFIG_XEN_PVHVM_SMP=y
-CONFIG_XEN_PVHVM_GUEST=y
-CONFIG_XEN_SAVE_RESTORE=y
-# CONFIG_XEN_DEBUG_FS is not set
-CONFIG_XEN_PVH=y
-CONFIG_KVM_GUEST=y
-CONFIG_ARCH_CPUIDLE_HALTPOLL=y
-CONFIG_PVH=y
-# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
-CONFIG_PARAVIRT_CLOCK=y
-# CONFIG_M486SX is not set
-# CONFIG_M486 is not set
-# CONFIG_M586 is not set
-# CONFIG_M586TSC is not set
-# CONFIG_M586MMX is not set
-CONFIG_M686=y
-# CONFIG_MPENTIUMII is not set
-# CONFIG_MPENTIUMIII is not set
-# CONFIG_MPENTIUMM is not set
-# CONFIG_MPENTIUM4 is not set
-# CONFIG_MK6 is not set
-# CONFIG_MK7 is not set
-# CONFIG_MK8 is not set
-# CONFIG_MCRUSOE is not set
-# CONFIG_MEFFICEON is not set
-# CONFIG_MWINCHIPC6 is not set
-# CONFIG_MWINCHIP3D is not set
-# CONFIG_MELAN is not set
-# CONFIG_MGEODEGX1 is not set
-# CONFIG_MGEODE_LX is not set
-# CONFIG_MCYRIXIII is not set
-# CONFIG_MVIAC3_2 is not set
-# CONFIG_MVIAC7 is not set
-# CONFIG_MCORE2 is not set
-# CONFIG_MATOM is not set
-CONFIG_X86_GENERIC=y
-CONFIG_X86_INTERNODE_CACHE_SHIFT=6
-CONFIG_X86_L1_CACHE_SHIFT=6
-CONFIG_X86_INTEL_USERCOPY=y
-CONFIG_X86_USE_PPRO_CHECKSUM=y
-CONFIG_X86_TSC=y
-CONFIG_X86_CMPXCHG64=y
-CONFIG_X86_CMOV=y
-CONFIG_X86_MINIMUM_CPU_FAMILY=6
-CONFIG_X86_DEBUGCTLMSR=y
-CONFIG_IA32_FEAT_CTL=y
-CONFIG_X86_VMX_FEATURE_NAMES=y
-CONFIG_PROCESSOR_SELECT=y
-CONFIG_CPU_SUP_INTEL=y
-CONFIG_CPU_SUP_CYRIX_32=y
-CONFIG_CPU_SUP_AMD=y
-CONFIG_CPU_SUP_HYGON=y
-CONFIG_CPU_SUP_CENTAUR=y
-CONFIG_CPU_SUP_TRANSMETA_32=y
-CONFIG_CPU_SUP_UMC_32=y
-CONFIG_CPU_SUP_ZHAOXIN=y
-CONFIG_HPET_TIMER=y
-CONFIG_HPET_EMULATE_RTC=y
-CONFIG_DMI=y
-CONFIG_NR_CPUS_RANGE_BEGIN=2
-CONFIG_NR_CPUS_RANGE_END=8
-CONFIG_NR_CPUS_DEFAULT=8
-CONFIG_NR_CPUS=8
-CONFIG_SCHED_SMT=y
-CONFIG_SCHED_MC=y
-CONFIG_SCHED_MC_PRIO=y
-CONFIG_X86_LOCAL_APIC=y
-CONFIG_X86_IO_APIC=y
-CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
-CONFIG_X86_MCE=y
-# CONFIG_X86_MCELOG_LEGACY is not set
-CONFIG_X86_MCE_INTEL=y
-CONFIG_X86_MCE_AMD=y
-# CONFIG_X86_ANCIENT_MCE is not set
-CONFIG_X86_MCE_THRESHOLD=y
-# CONFIG_X86_MCE_INJECT is not set
-
-#
-# Performance monitoring
-#
-CONFIG_PERF_EVENTS_INTEL_UNCORE=y
-CONFIG_PERF_EVENTS_INTEL_RAPL=y
-CONFIG_PERF_EVENTS_INTEL_CSTATE=y
-CONFIG_PERF_EVENTS_AMD_POWER=m
-# end of Performance monitoring
-
-# CONFIG_X86_LEGACY_VM86 is not set
-CONFIG_X86_16BIT=y
-CONFIG_X86_ESPFIX32=y
-CONFIG_X86_IOPL_IOPERM=y
-# CONFIG_TOSHIBA is not set
-CONFIG_I8K=m
-CONFIG_X86_REBOOTFIXUPS=y
-CONFIG_MICROCODE=y
-CONFIG_MICROCODE_INTEL=y
-CONFIG_MICROCODE_AMD=y
-CONFIG_MICROCODE_OLD_INTERFACE=y
-CONFIG_X86_MSR=m
-CONFIG_X86_CPUID=m
-# CONFIG_NOHIGHMEM is not set
-# CONFIG_HIGHMEM4G is not set
-CONFIG_HIGHMEM64G=y
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_HIGHMEM=y
-CONFIG_X86_PAE=y
-# CONFIG_X86_CPA_STATISTICS is not set
-CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_ILLEGAL_POINTER_VALUE=0
-CONFIG_X86_PMEM_LEGACY_DEVICE=y
-CONFIG_X86_PMEM_LEGACY=y
-CONFIG_HIGHPTE=y
-CONFIG_X86_CHECK_BIOS_CORRUPTION=y
-CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
-CONFIG_X86_RESERVE_LOW=64
-CONFIG_MTRR=y
-CONFIG_MTRR_SANITIZER=y
-CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
-CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
-CONFIG_X86_PAT=y
-CONFIG_ARCH_USES_PG_UNCACHED=y
-CONFIG_ARCH_RANDOM=y
-CONFIG_X86_SMAP=y
-CONFIG_X86_UMIP=y
-CONFIG_X86_INTEL_TSX_MODE_OFF=y
-# CONFIG_X86_INTEL_TSX_MODE_ON is not set
-# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
-CONFIG_EFI=y
-CONFIG_EFI_STUB=y
-# CONFIG_HZ_100 is not set
-CONFIG_HZ_250=y
-# CONFIG_HZ_300 is not set
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ=250
-CONFIG_SCHED_HRTICK=y
-CONFIG_KEXEC=y
-CONFIG_CRASH_DUMP=y
-CONFIG_KEXEC_JUMP=y
-CONFIG_PHYSICAL_START=0x1000000
-CONFIG_RELOCATABLE=y
-CONFIG_RANDOMIZE_BASE=y
-CONFIG_X86_NEED_RELOCS=y
-CONFIG_PHYSICAL_ALIGN=0x1000000
-CONFIG_HOTPLUG_CPU=y
-# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_COMPAT_VDSO is not set
-# CONFIG_CMDLINE_BOOL is not set
-CONFIG_MODIFY_LDT_SYSCALL=y
-# end of Processor type and features
-
-CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
-
-#
-# Power management and ACPI options
-#
-CONFIG_ARCH_HIBERNATION_HEADER=y
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_SUSPEND_SKIP_SYNC is not set
-CONFIG_HIBERNATE_CALLBACKS=y
-CONFIG_HIBERNATION=y
-CONFIG_HIBERNATION_SNAPSHOT_DEV=y
-CONFIG_PM_STD_PARTITION=""
-CONFIG_PM_SLEEP=y
-CONFIG_PM_SLEEP_SMP=y
-# CONFIG_PM_AUTOSLEEP is not set
-CONFIG_PM_WAKELOCKS=y
-CONFIG_PM_WAKELOCKS_LIMIT=100
-CONFIG_PM_WAKELOCKS_GC=y
-CONFIG_PM=y
-CONFIG_PM_DEBUG=y
-CONFIG_PM_ADVANCED_DEBUG=y
-# CONFIG_PM_TEST_SUSPEND is not set
-CONFIG_PM_SLEEP_DEBUG=y
-# CONFIG_DPM_WATCHDOG is not set
-CONFIG_PM_TRACE=y
-CONFIG_PM_TRACE_RTC=y
-CONFIG_PM_CLK=y
-CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
-# CONFIG_ENERGY_MODEL is not set
-CONFIG_ARCH_SUPPORTS_ACPI=y
-CONFIG_ACPI=y
-CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
-CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
-CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
-# CONFIG_ACPI_DEBUGGER is not set
-CONFIG_ACPI_SPCR_TABLE=y
-CONFIG_ACPI_SLEEP=y
-CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
-CONFIG_ACPI_EC_DEBUGFS=m
-CONFIG_ACPI_AC=m
-CONFIG_ACPI_BATTERY=m
-CONFIG_ACPI_BUTTON=y
-CONFIG_ACPI_VIDEO=m
-CONFIG_ACPI_FAN=y
-CONFIG_ACPI_TAD=m
-CONFIG_ACPI_DOCK=y
-CONFIG_ACPI_CPU_FREQ_PSS=y
-CONFIG_ACPI_PROCESSOR_CSTATE=y
-CONFIG_ACPI_PROCESSOR_IDLE=y
-CONFIG_ACPI_PROCESSOR=y
-CONFIG_ACPI_IPMI=m
-CONFIG_ACPI_HOTPLUG_CPU=y
-CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
-CONFIG_ACPI_THERMAL=y
-CONFIG_ACPI_PLATFORM_PROFILE=m
-CONFIG_ACPI_CUSTOM_DSDT_FILE=""
-CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
-CONFIG_ACPI_TABLE_UPGRADE=y
-# CONFIG_ACPI_DEBUG is not set
-CONFIG_ACPI_PCI_SLOT=y
-CONFIG_ACPI_CONTAINER=y
-CONFIG_ACPI_HOTPLUG_IOAPIC=y
-CONFIG_ACPI_SBS=m
-CONFIG_ACPI_HED=y
-# CONFIG_ACPI_CUSTOM_METHOD is not set
-CONFIG_ACPI_BGRT=y
-# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
-CONFIG_HAVE_ACPI_APEI=y
-CONFIG_HAVE_ACPI_APEI_NMI=y
-CONFIG_ACPI_APEI=y
-CONFIG_ACPI_APEI_GHES=y
-CONFIG_ACPI_APEI_PCIEAER=y
-CONFIG_ACPI_APEI_EINJ=m
-# CONFIG_ACPI_APEI_ERST_DEBUG is not set
-CONFIG_ACPI_DPTF=y
-CONFIG_DPTF_POWER=m
-CONFIG_DPTF_PCH_FIVR=m
-CONFIG_ACPI_WATCHDOG=y
-CONFIG_ACPI_EXTLOG=m
-CONFIG_ACPI_CONFIGFS=m
-# CONFIG_PMIC_OPREGION is not set
-CONFIG_X86_PM_TIMER=y
-CONFIG_X86_APM_BOOT=y
-CONFIG_APM=m
-# CONFIG_APM_IGNORE_USER_SUSPEND is not set
-# CONFIG_APM_DO_ENABLE is not set
-# CONFIG_APM_CPU_IDLE is not set
-# CONFIG_APM_DISPLAY_BLANK is not set
-# CONFIG_APM_ALLOW_INTS is not set
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_GOV_ATTR_SET=y
-CONFIG_CPU_FREQ_GOV_COMMON=y
-CONFIG_CPU_FREQ_STAT=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
-
-#
-# CPU frequency scaling drivers
-#
-CONFIG_X86_INTEL_PSTATE=y
-CONFIG_X86_PCC_CPUFREQ=y
-CONFIG_X86_ACPI_CPUFREQ=y
-CONFIG_X86_ACPI_CPUFREQ_CPB=y
-CONFIG_X86_POWERNOW_K6=m
-CONFIG_X86_POWERNOW_K7=m
-CONFIG_X86_POWERNOW_K7_ACPI=y
-CONFIG_X86_POWERNOW_K8=y
-CONFIG_X86_AMD_FREQ_SENSITIVITY=m
-CONFIG_X86_GX_SUSPMOD=m
-CONFIG_X86_SPEEDSTEP_CENTRINO=y
-CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
-CONFIG_X86_SPEEDSTEP_ICH=y
-CONFIG_X86_SPEEDSTEP_SMI=y
-CONFIG_X86_P4_CLOCKMOD=m
-CONFIG_X86_CPUFREQ_NFORCE2=y
-CONFIG_X86_LONGRUN=m
-CONFIG_X86_LONGHAUL=m
-# CONFIG_X86_E_POWERSAVER is not set
-
-#
-# shared options
-#
-CONFIG_X86_SPEEDSTEP_LIB=y
-CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
-# end of CPU Frequency scaling
-
-#
-# CPU Idle
-#
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-CONFIG_CPU_IDLE_GOV_TEO=y
-CONFIG_CPU_IDLE_GOV_HALTPOLL=y
-CONFIG_HALTPOLL_CPUIDLE=m
-# end of CPU Idle
-
-CONFIG_INTEL_IDLE=y
-# end of Power management and ACPI options
-
-#
-# Bus options (PCI etc.)
-#
-# CONFIG_PCI_GOBIOS is not set
-# CONFIG_PCI_GOMMCONFIG is not set
-# CONFIG_PCI_GODIRECT is not set
-CONFIG_PCI_GOANY=y
-CONFIG_PCI_BIOS=y
-CONFIG_PCI_DIRECT=y
-CONFIG_PCI_MMCONFIG=y
-CONFIG_PCI_XEN=y
-# CONFIG_PCI_CNB20LE_QUIRK is not set
-# CONFIG_ISA_BUS is not set
-CONFIG_ISA_DMA_API=y
-CONFIG_ISA=y
-CONFIG_SCx200=m
-CONFIG_SCx200HR_TIMER=m
-CONFIG_ALIX=y
-CONFIG_NET5501=y
-CONFIG_GEOS=y
-CONFIG_AMD_NB=y
-# CONFIG_X86_SYSFB is not set
-# end of Bus options (PCI etc.)
-
-#
-# Binary Emulations
-#
-CONFIG_COMPAT_32=y
-# end of Binary Emulations
-
-CONFIG_HAVE_ATOMIC_IOMAP=y
-
-#
-# Firmware Drivers
-#
-CONFIG_EDD=y
-CONFIG_EDD_OFF=y
-CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_DMIID=y
-CONFIG_DMI_SYSFS=m
-CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
-CONFIG_ISCSI_IBFT_FIND=y
-CONFIG_ISCSI_IBFT=m
-CONFIG_FW_CFG_SYSFS=m
-# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
-
-#
-# EFI (Extensible Firmware Interface) Support
-#
-CONFIG_EFI_VARS=y
-CONFIG_EFI_ESRT=y
-CONFIG_EFI_VARS_PSTORE=m
-# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
-CONFIG_EFI_RUNTIME_MAP=y
-# CONFIG_EFI_FAKE_MEMMAP is not set
-CONFIG_EFI_RUNTIME_WRAPPERS=y
-CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
-CONFIG_EFI_BOOTLOADER_CONTROL=m
-CONFIG_EFI_CAPSULE_LOADER=y
-CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH=y
-# CONFIG_EFI_TEST is not set
-CONFIG_APPLE_PROPERTIES=y
-CONFIG_RESET_ATTACK_MITIGATION=y
-# CONFIG_EFI_RCI2_TABLE is not set
-# CONFIG_EFI_DISABLE_PCI_DMA is not set
-# end of EFI (Extensible Firmware Interface) Support
-
-CONFIG_UEFI_CPER=y
-CONFIG_UEFI_CPER_X86=y
-CONFIG_EFI_DEV_PATH_PARSER=y
-CONFIG_EFI_EARLYCON=y
-CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
-
-#
-# Tegra firmware driver
-#
-# end of Tegra firmware driver
-# end of Firmware Drivers
-
-CONFIG_HAVE_KVM=y
-CONFIG_HAVE_KVM_IRQCHIP=y
-CONFIG_HAVE_KVM_IRQFD=y
-CONFIG_HAVE_KVM_IRQ_ROUTING=y
-CONFIG_HAVE_KVM_EVENTFD=y
-CONFIG_KVM_MMIO=y
-CONFIG_KVM_ASYNC_PF=y
-CONFIG_HAVE_KVM_MSI=y
-CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
-CONFIG_KVM_VFIO=y
-CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
-CONFIG_HAVE_KVM_IRQ_BYPASS=y
-CONFIG_HAVE_KVM_NO_POLL=y
-CONFIG_KVM_XFER_TO_GUEST_WORK=y
-CONFIG_VIRTUALIZATION=y
-CONFIG_KVM=m
-CONFIG_KVM_WERROR=y
-CONFIG_KVM_INTEL=m
-CONFIG_KVM_AMD=m
-CONFIG_KVM_XEN=y
-# CONFIG_KVM_MMU_AUDIT is not set
-CONFIG_AS_AVX512=y
-CONFIG_AS_SHA1_NI=y
-CONFIG_AS_SHA256_NI=y
-CONFIG_AS_TPAUSE=y
-
-#
-# General architecture-dependent options
-#
-CONFIG_CRASH_CORE=y
-CONFIG_KEXEC_CORE=y
-CONFIG_HOTPLUG_SMT=y
-CONFIG_GENERIC_ENTRY=y
-CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
-# CONFIG_STATIC_KEYS_SELFTEST is not set
-# CONFIG_STATIC_CALL_SELFTEST is not set
-CONFIG_OPTPROBES=y
-CONFIG_KPROBES_ON_FTRACE=y
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_ARCH_USE_BUILTIN_BSWAP=y
-CONFIG_KRETPROBES=y
-CONFIG_USER_RETURN_NOTIFIER=y
-CONFIG_HAVE_IOREMAP_PROT=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_OPTPROBES=y
-CONFIG_HAVE_KPROBES_ON_FTRACE=y
-CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
-CONFIG_HAVE_NMI=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_CONTIGUOUS=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
-CONFIG_ARCH_HAS_SET_MEMORY=y
-CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
-CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
-CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
-CONFIG_ARCH_32BIT_OFF_T=y
-CONFIG_HAVE_ASM_MODVERSIONS=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_RSEQ=y
-CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
-CONFIG_HAVE_USER_RETURN_NOTIFIER=y
-CONFIG_HAVE_PERF_EVENTS_NMI=y
-CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y
-CONFIG_HAVE_PERF_REGS=y
-CONFIG_HAVE_PERF_USER_STACK_DUMP=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
-CONFIG_MMU_GATHER_TABLE_FREE=y
-CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
-CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
-CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
-CONFIG_HAVE_CMPXCHG_LOCAL=y
-CONFIG_HAVE_CMPXCHG_DOUBLE=y
-CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
-CONFIG_HAVE_ARCH_SECCOMP=y
-CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
-CONFIG_SECCOMP=y
-CONFIG_SECCOMP_FILTER=y
-# CONFIG_SECCOMP_CACHE_DEBUG is not set
-CONFIG_HAVE_ARCH_STACKLEAK=y
-CONFIG_HAVE_STACKPROTECTOR=y
-CONFIG_STACKPROTECTOR=y
-CONFIG_STACKPROTECTOR_STRONG=y
-CONFIG_LTO_NONE=y
-CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
-CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
-CONFIG_HAVE_MOVE_PUD=y
-CONFIG_HAVE_MOVE_PMD=y
-CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
-CONFIG_HAVE_ARCH_HUGE_VMAP=y
-CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
-CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
-CONFIG_MODULES_USE_ELF_REL=y
-CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
-CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
-CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
-CONFIG_HAVE_EXIT_THREAD=y
-CONFIG_ARCH_MMAP_RND_BITS=8
-CONFIG_ISA_BUS_API=y
-CONFIG_CLONE_BACKWARDS=y
-CONFIG_OLD_SIGSUSPEND3=y
-CONFIG_OLD_SIGACTION=y
-CONFIG_COMPAT_32BIT_TIME=y
-CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y
-CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y
-CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
-CONFIG_STRICT_KERNEL_RWX=y
-CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
-CONFIG_STRICT_MODULE_RWX=y
-CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
-CONFIG_ARCH_USE_MEMREMAP_PROT=y
-# CONFIG_LOCK_EVENT_COUNTS is not set
-CONFIG_ARCH_HAS_MEM_ENCRYPT=y
-CONFIG_HAVE_STATIC_CALL=y
-CONFIG_HAVE_PREEMPT_DYNAMIC=y
-CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
-CONFIG_ARCH_SPLIT_ARG64=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
-# end of GCOV-based kernel profiling
-
-CONFIG_HAVE_GCC_PLUGINS=y
-# end of General architecture-dependent options
-
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-# CONFIG_MODULE_FORCE_LOAD is not set
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-CONFIG_MODVERSIONS=y
-CONFIG_ASM_MODVERSIONS=y
-CONFIG_MODULE_SRCVERSION_ALL=y
-# CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS_NONE is not set
-CONFIG_MODULE_COMPRESS_GZIP=y
-# CONFIG_MODULE_COMPRESS_XZ is not set
-# CONFIG_MODULE_COMPRESS_ZSTD is not set
-# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
-CONFIG_MODPROBE_PATH="/run/current-system/profile/bin/modprobe"
-# CONFIG_TRIM_UNUSED_KSYMS is not set
-CONFIG_MODULES_TREE_LOOKUP=y
-CONFIG_BLOCK=y
-CONFIG_BLK_RQ_ALLOC_TIME=y
-CONFIG_BLK_SCSI_REQUEST=y
-CONFIG_BLK_CGROUP_RWSTAT=y
-CONFIG_BLK_DEV_BSG=y
-CONFIG_BLK_DEV_BSGLIB=y
-CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_BLK_DEV_INTEGRITY_T10=y
-CONFIG_BLK_DEV_ZONED=y
-CONFIG_BLK_DEV_THROTTLING=y
-# CONFIG_BLK_DEV_THROTTLING_LOW is not set
-CONFIG_BLK_CMDLINE_PARSER=y
-CONFIG_BLK_WBT=y
-# CONFIG_BLK_CGROUP_IOLATENCY is not set
-CONFIG_BLK_CGROUP_IOCOST=y
-CONFIG_BLK_WBT_MQ=y
-CONFIG_BLK_DEBUG_FS=y
-CONFIG_BLK_DEBUG_FS_ZONED=y
-# CONFIG_BLK_SED_OPAL is not set
-CONFIG_BLK_INLINE_ENCRYPTION=y
-CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-CONFIG_AIX_PARTITION=y
-CONFIG_OSF_PARTITION=y
-CONFIG_AMIGA_PARTITION=y
-CONFIG_ATARI_PARTITION=y
-CONFIG_MAC_PARTITION=y
-CONFIG_MSDOS_PARTITION=y
-CONFIG_BSD_DISKLABEL=y
-CONFIG_MINIX_SUBPARTITION=y
-CONFIG_SOLARIS_X86_PARTITION=y
-CONFIG_UNIXWARE_DISKLABEL=y
-CONFIG_LDM_PARTITION=y
-# CONFIG_LDM_DEBUG is not set
-CONFIG_SGI_PARTITION=y
-CONFIG_ULTRIX_PARTITION=y
-CONFIG_SUN_PARTITION=y
-CONFIG_KARMA_PARTITION=y
-CONFIG_EFI_PARTITION=y
-CONFIG_SYSV68_PARTITION=y
-CONFIG_CMDLINE_PARTITION=y
-# end of Partition Types
-
-CONFIG_BLK_MQ_PCI=y
-CONFIG_BLK_MQ_VIRTIO=y
-CONFIG_BLK_MQ_RDMA=y
-CONFIG_BLK_PM=y
-
-#
-# IO Schedulers
-#
-CONFIG_MQ_IOSCHED_DEADLINE=y
-CONFIG_MQ_IOSCHED_KYBER=m
-CONFIG_IOSCHED_BFQ=m
-# CONFIG_BFQ_GROUP_IOSCHED is not set
-# end of IO Schedulers
-
-CONFIG_PREEMPT_NOTIFIERS=y
-CONFIG_PADATA=y
-CONFIG_ASN1=y
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-CONFIG_INLINE_READ_UNLOCK=y
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-CONFIG_INLINE_WRITE_UNLOCK=y
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
-CONFIG_MUTEX_SPIN_ON_OWNER=y
-CONFIG_RWSEM_SPIN_ON_OWNER=y
-CONFIG_LOCK_SPIN_ON_OWNER=y
-CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
-CONFIG_QUEUED_SPINLOCKS=y
-CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
-CONFIG_QUEUED_RWLOCKS=y
-CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
-CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y
-CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
-CONFIG_FREEZER=y
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_ELFCORE=y
-CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-CONFIG_BINFMT_SCRIPT=y
-CONFIG_BINFMT_MISC=m
-CONFIG_COREDUMP=y
-# end of Executable file formats
-
-#
-# Memory Management options
-#
-CONFIG_SELECT_MEMORY_MODEL=y
-# CONFIG_FLATMEM_MANUAL is not set
-CONFIG_SPARSEMEM_MANUAL=y
-CONFIG_SPARSEMEM=y
-CONFIG_SPARSEMEM_STATIC=y
-CONFIG_HAVE_FAST_GUP=y
-CONFIG_MEMORY_ISOLATION=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
-CONFIG_MEMORY_BALLOON=y
-CONFIG_BALLOON_COMPACTION=y
-CONFIG_COMPACTION=y
-CONFIG_PAGE_REPORTING=y
-CONFIG_MIGRATION=y
-CONFIG_CONTIG_ALLOC=y
-CONFIG_PHYS_ADDR_T_64BIT=y
-CONFIG_BOUNCE=y
-CONFIG_VIRT_TO_BUS=y
-CONFIG_MMU_NOTIFIER=y
-CONFIG_KSM=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
-CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
-# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
-CONFIG_CLEANCACHE=y
-CONFIG_FRONTSWAP=y
-CONFIG_CMA=y
-# CONFIG_CMA_DEBUG is not set
-# CONFIG_CMA_DEBUGFS is not set
-CONFIG_CMA_SYSFS=y
-CONFIG_CMA_AREAS=7
-CONFIG_ZSWAP=y
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
-CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set
-CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lzo"
-CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
-# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set
-# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set
-CONFIG_ZSWAP_ZPOOL_DEFAULT="zbud"
-# CONFIG_ZSWAP_DEFAULT_ON is not set
-CONFIG_ZPOOL=y
-CONFIG_ZBUD=y
-CONFIG_Z3FOLD=m
-CONFIG_ZSMALLOC=y
-# CONFIG_ZSMALLOC_STAT is not set
-CONFIG_GENERIC_EARLY_IOREMAP=y
-CONFIG_IDLE_PAGE_TRACKING=y
-CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
-CONFIG_HMM_MIRROR=y
-CONFIG_VMAP_PFN=y
-# CONFIG_PERCPU_STATS is not set
-# CONFIG_GUP_TEST is not set
-CONFIG_GUP_GET_PTE_LOW_HIGH=y
-# CONFIG_READ_ONLY_THP_FOR_FS is not set
-CONFIG_ARCH_HAS_PTE_SPECIAL=y
-CONFIG_MAPPING_DIRTY_HELPERS=y
-CONFIG_KMAP_LOCAL=y
-# end of Memory Management options
-
-CONFIG_NET=y
-CONFIG_NET_INGRESS=y
-CONFIG_NET_EGRESS=y
-CONFIG_NET_REDIRECT=y
-CONFIG_SKB_EXTENSIONS=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
-CONFIG_UNIX_SCM=y
-CONFIG_UNIX_DIAG=m
-CONFIG_TLS=m
-# CONFIG_TLS_DEVICE is not set
-# CONFIG_TLS_TOE is not set
-CONFIG_XFRM=y
-CONFIG_XFRM_OFFLOAD=y
-CONFIG_XFRM_ALGO=m
-CONFIG_XFRM_USER=m
-CONFIG_XFRM_INTERFACE=m
-# CONFIG_XFRM_SUB_POLICY is not set
-# CONFIG_XFRM_MIGRATE is not set
-CONFIG_XFRM_STATISTICS=y
-CONFIG_XFRM_AH=m
-CONFIG_XFRM_ESP=m
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=m
-# CONFIG_NET_KEY_MIGRATE is not set
-# CONFIG_SMC is not set
-CONFIG_XDP_SOCKETS=y
-CONFIG_XDP_SOCKETS_DIAG=m
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_FIB_TRIE_STATS=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_ROUTE_CLASSID=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-# CONFIG_IP_PNP_BOOTP is not set
-# CONFIG_IP_PNP_RARP is not set
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE_DEMUX=m
-CONFIG_NET_IP_TUNNEL=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE_COMMON=y
-CONFIG_IP_MROUTE=y
-# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-CONFIG_SYN_COOKIES=y
-CONFIG_NET_IPVTI=m
-CONFIG_NET_UDP_TUNNEL=m
-CONFIG_NET_FOU=m
-CONFIG_NET_FOU_IP_TUNNELS=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_ESP_OFFLOAD=m
-# CONFIG_INET_ESPINTCP is not set
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_DIAG=m
-CONFIG_INET_TCP_DIAG=m
-CONFIG_INET_UDP_DIAG=m
-CONFIG_INET_RAW_DIAG=m
-# CONFIG_INET_DIAG_DESTROY is not set
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_NV=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-CONFIG_TCP_CONG_DCTCP=m
-CONFIG_TCP_CONG_CDG=m
-CONFIG_TCP_CONG_BBR=m
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_ESP_OFFLOAD=m
-# CONFIG_INET6_ESPINTCP is not set
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=m
-CONFIG_IPV6_ILA=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_IPV6_VTI=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_GRE=m
-CONFIG_IPV6_FOU=m
-CONFIG_IPV6_FOU_TUNNEL=m
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_IPV6_SUBTREES=y
-CONFIG_IPV6_MROUTE=y
-CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IPV6_PIMSM_V2=y
-# CONFIG_IPV6_SEG6_LWTUNNEL is not set
-# CONFIG_IPV6_SEG6_HMAC is not set
-# CONFIG_IPV6_RPL_LWTUNNEL is not set
-CONFIG_NETLABEL=y
-CONFIG_MPTCP=y
-CONFIG_INET_MPTCP_DIAG=m
-CONFIG_MPTCP_IPV6=y
-CONFIG_NETWORK_SECMARK=y
-CONFIG_NET_PTP_CLASSIFY=y
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-CONFIG_NETFILTER=y
-CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=m
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_INGRESS=y
-CONFIG_NETFILTER_NETLINK=m
-CONFIG_NETFILTER_FAMILY_BRIDGE=y
-CONFIG_NETFILTER_FAMILY_ARP=y
-CONFIG_NETFILTER_NETLINK_ACCT=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NETFILTER_NETLINK_OSF=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_LOG_SYSLOG=m
-CONFIG_NETFILTER_CONNCOUNT=m
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_ZONES=y
-# CONFIG_NF_CONNTRACK_PROCFS is not set
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CONNTRACK_TIMEOUT=y
-CONFIG_NF_CONNTRACK_TIMESTAMP=y
-CONFIG_NF_CONNTRACK_LABELS=y
-CONFIG_NF_CT_PROTO_DCCP=y
-CONFIG_NF_CT_PROTO_GRE=y
-CONFIG_NF_CT_PROTO_SCTP=y
-CONFIG_NF_CT_PROTO_UDPLITE=y
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_BROADCAST=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_SNMP=m
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NF_CT_NETLINK_TIMEOUT=m
-CONFIG_NF_CT_NETLINK_HELPER=m
-CONFIG_NETFILTER_NETLINK_GLUE_CT=y
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_AMANDA=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_NF_NAT_TFTP=m
-CONFIG_NF_NAT_REDIRECT=y
-CONFIG_NF_NAT_MASQUERADE=y
-CONFIG_NETFILTER_SYNPROXY=m
-CONFIG_NF_TABLES=m
-CONFIG_NF_TABLES_INET=y
-CONFIG_NF_TABLES_NETDEV=y
-CONFIG_NFT_NUMGEN=m
-CONFIG_NFT_CT=m
-CONFIG_NFT_FLOW_OFFLOAD=m
-CONFIG_NFT_COUNTER=m
-CONFIG_NFT_CONNLIMIT=m
-CONFIG_NFT_LOG=m
-CONFIG_NFT_LIMIT=m
-CONFIG_NFT_MASQ=m
-CONFIG_NFT_REDIR=m
-CONFIG_NFT_NAT=m
-CONFIG_NFT_TUNNEL=m
-CONFIG_NFT_OBJREF=m
-CONFIG_NFT_QUEUE=m
-CONFIG_NFT_QUOTA=m
-CONFIG_NFT_REJECT=m
-CONFIG_NFT_REJECT_INET=m
-CONFIG_NFT_COMPAT=m
-CONFIG_NFT_HASH=m
-CONFIG_NFT_FIB=m
-CONFIG_NFT_FIB_INET=m
-CONFIG_NFT_XFRM=m
-CONFIG_NFT_SOCKET=m
-CONFIG_NFT_OSF=m
-CONFIG_NFT_TPROXY=m
-CONFIG_NFT_SYNPROXY=m
-CONFIG_NF_DUP_NETDEV=m
-CONFIG_NFT_DUP_NETDEV=m
-CONFIG_NFT_FWD_NETDEV=m
-CONFIG_NFT_FIB_NETDEV=m
-CONFIG_NFT_REJECT_NETDEV=m
-CONFIG_NF_FLOW_TABLE_INET=m
-CONFIG_NF_FLOW_TABLE=m
-CONFIG_NETFILTER_XTABLES=m
-
-#
-# Xtables combined modules
-#
-CONFIG_NETFILTER_XT_MARK=m
-CONFIG_NETFILTER_XT_CONNMARK=m
-CONFIG_NETFILTER_XT_SET=m
-
-#
-# Xtables targets
-#
-CONFIG_NETFILTER_XT_TARGET_AUDIT=m
-CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
-CONFIG_NETFILTER_XT_TARGET_CT=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_HL=m
-CONFIG_NETFILTER_XT_TARGET_HMARK=m
-CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
-CONFIG_NETFILTER_XT_TARGET_LED=m
-CONFIG_NETFILTER_XT_TARGET_LOG=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_NAT=m
-CONFIG_NETFILTER_XT_TARGET_NETMAP=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
-CONFIG_NETFILTER_XT_TARGET_RATEEST=m
-CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
-CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
-CONFIG_NETFILTER_XT_TARGET_TEE=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
-
-#
-# Xtables matches
-#
-CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
-CONFIG_NETFILTER_XT_MATCH_BPF=m
-CONFIG_NETFILTER_XT_MATCH_CGROUP=m
-CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_CPU=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=m
-CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-CONFIG_NETFILTER_XT_MATCH_ECN=m
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_HL=m
-CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
-CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
-CONFIG_NETFILTER_XT_MATCH_IPVS=m
-CONFIG_NETFILTER_XT_MATCH_L2TP=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-CONFIG_NETFILTER_XT_MATCH_NFACCT=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
-CONFIG_NETFILTER_XT_MATCH_OWNER=m
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_RATEEST=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_SOCKET=m
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_TIME=m
-CONFIG_NETFILTER_XT_MATCH_U32=m
-# end of Core Netfilter Configuration
-
-CONFIG_IP_SET=m
-CONFIG_IP_SET_MAX=256
-CONFIG_IP_SET_BITMAP_IP=m
-CONFIG_IP_SET_BITMAP_IPMAC=m
-CONFIG_IP_SET_BITMAP_PORT=m
-CONFIG_IP_SET_HASH_IP=m
-CONFIG_IP_SET_HASH_IPMARK=m
-CONFIG_IP_SET_HASH_IPPORT=m
-CONFIG_IP_SET_HASH_IPPORTIP=m
-CONFIG_IP_SET_HASH_IPPORTNET=m
-CONFIG_IP_SET_HASH_IPMAC=m
-CONFIG_IP_SET_HASH_MAC=m
-CONFIG_IP_SET_HASH_NETPORTNET=m
-CONFIG_IP_SET_HASH_NET=m
-CONFIG_IP_SET_HASH_NETNET=m
-CONFIG_IP_SET_HASH_NETPORT=m
-CONFIG_IP_SET_HASH_NETIFACE=m
-CONFIG_IP_SET_LIST_SET=m
-CONFIG_IP_VS=m
-CONFIG_IP_VS_IPV6=y
-# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
-
-#
-# IPVS transport protocol load balancing support
-#
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_AH_ESP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-CONFIG_IP_VS_PROTO_SCTP=y
-
-#
-# IPVS scheduler
-#
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_FO=m
-CONFIG_IP_VS_OVF=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_MH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-CONFIG_IP_VS_TWOS=m
-
-#
-# IPVS SH scheduler
-#
-CONFIG_IP_VS_SH_TAB_BITS=8
-
-#
-# IPVS MH scheduler
-#
-CONFIG_IP_VS_MH_TAB_INDEX=12
-
-#
-# IPVS application helper
-#
-CONFIG_IP_VS_FTP=m
-CONFIG_IP_VS_NFCT=y
-CONFIG_IP_VS_PE_SIP=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_SOCKET_IPV4=m
-CONFIG_NF_TPROXY_IPV4=m
-CONFIG_NF_TABLES_IPV4=y
-CONFIG_NFT_REJECT_IPV4=m
-CONFIG_NFT_DUP_IPV4=m
-CONFIG_NFT_FIB_IPV4=m
-CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
-CONFIG_NF_DUP_IPV4=m
-CONFIG_NF_LOG_ARP=m
-CONFIG_NF_LOG_IPV4=m
-CONFIG_NF_REJECT_IPV4=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_RPFILTER=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_SYNPROXY=m
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_SECURITY=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-# end of IP: Netfilter Configuration
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_SOCKET_IPV6=m
-CONFIG_NF_TPROXY_IPV6=m
-CONFIG_NF_TABLES_IPV6=y
-CONFIG_NFT_REJECT_IPV6=m
-CONFIG_NFT_DUP_IPV6=m
-CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
-CONFIG_NF_DUP_IPV6=m
-CONFIG_NF_REJECT_IPV6=m
-CONFIG_NF_LOG_IPV6=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_RPFILTER=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_MATCH_SRH=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_TARGET_SYNPROXY=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-CONFIG_IP6_NF_SECURITY=m
-CONFIG_IP6_NF_NAT=m
-CONFIG_IP6_NF_TARGET_MASQUERADE=m
-CONFIG_IP6_NF_TARGET_NPT=m
-# end of IPv6: Netfilter Configuration
-
-CONFIG_NF_DEFRAG_IPV6=m
-
-#
-# DECnet: Netfilter Configuration
-#
-CONFIG_DECNET_NF_GRABULATOR=m
-# end of DECnet: Netfilter Configuration
-
-CONFIG_NF_TABLES_BRIDGE=m
-CONFIG_NFT_BRIDGE_META=m
-CONFIG_NFT_BRIDGE_REJECT=m
-CONFIG_NF_CONNTRACK_BRIDGE=m
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_ARP=m
-CONFIG_BRIDGE_EBT_IP=m
-CONFIG_BRIDGE_EBT_IP6=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_MARK=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_VLAN=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_LOG=m
-CONFIG_BRIDGE_EBT_NFLOG=m
-# CONFIG_BPFILTER is not set
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-
-#
-# DCCP CCIDs Configuration
-#
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-# CONFIG_IP_DCCP_CCID3 is not set
-# end of DCCP CCIDs Configuration
-
-#
-# DCCP Kernel Hacking
-#
-# CONFIG_IP_DCCP_DEBUG is not set
-# end of DCCP Kernel Hacking
-
-CONFIG_IP_SCTP=m
-# CONFIG_SCTP_DBG_OBJCNT is not set
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
-CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
-CONFIG_SCTP_COOKIE_HMAC_MD5=y
-CONFIG_SCTP_COOKIE_HMAC_SHA1=y
-CONFIG_INET_SCTP_DIAG=m
-CONFIG_RDS=m
-CONFIG_RDS_RDMA=m
-CONFIG_RDS_TCP=m
-# CONFIG_RDS_DEBUG is not set
-CONFIG_TIPC=m
-CONFIG_TIPC_MEDIA_IB=y
-CONFIG_TIPC_MEDIA_UDP=y
-CONFIG_TIPC_CRYPTO=y
-CONFIG_TIPC_DIAG=m
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-CONFIG_ATM_LANE=m
-CONFIG_ATM_MPOA=m
-CONFIG_ATM_BR2684=m
-# CONFIG_ATM_BR2684_IPFILTER is not set
-CONFIG_L2TP=m
-CONFIG_L2TP_DEBUGFS=m
-CONFIG_L2TP_V3=y
-CONFIG_L2TP_IP=m
-CONFIG_L2TP_ETH=m
-CONFIG_STP=m
-CONFIG_GARP=m
-CONFIG_MRP=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-CONFIG_BRIDGE_VLAN_FILTERING=y
-CONFIG_BRIDGE_MRP=y
-CONFIG_BRIDGE_CFM=y
-CONFIG_NET_DSA=m
-CONFIG_NET_DSA_TAG_8021Q=m
-CONFIG_NET_DSA_TAG_AR9331=m
-CONFIG_NET_DSA_TAG_BRCM_COMMON=m
-CONFIG_NET_DSA_TAG_BRCM=m
-CONFIG_NET_DSA_TAG_BRCM_LEGACY=m
-CONFIG_NET_DSA_TAG_BRCM_PREPEND=m
-CONFIG_NET_DSA_TAG_HELLCREEK=m
-CONFIG_NET_DSA_TAG_GSWIP=m
-CONFIG_NET_DSA_TAG_DSA_COMMON=m
-CONFIG_NET_DSA_TAG_DSA=m
-CONFIG_NET_DSA_TAG_EDSA=m
-CONFIG_NET_DSA_TAG_MTK=m
-CONFIG_NET_DSA_TAG_KSZ=m
-CONFIG_NET_DSA_TAG_RTL4_A=m
-CONFIG_NET_DSA_TAG_OCELOT=m
-CONFIG_NET_DSA_TAG_OCELOT_8021Q=m
-CONFIG_NET_DSA_TAG_QCA=m
-CONFIG_NET_DSA_TAG_LAN9303=m
-CONFIG_NET_DSA_TAG_SJA1105=m
-CONFIG_NET_DSA_TAG_TRAILER=m
-CONFIG_NET_DSA_TAG_XRS700X=m
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-CONFIG_VLAN_8021Q_MVRP=y
-CONFIG_DECNET=m
-# CONFIG_DECNET_ROUTER is not set
-CONFIG_LLC=m
-CONFIG_LLC2=m
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=m
-CONFIG_LTPC=m
-CONFIG_COPS=m
-CONFIG_COPS_DAYNA=y
-CONFIG_COPS_TANGENT=y
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-CONFIG_X25=m
-CONFIG_LAPB=m
-CONFIG_PHONET=m
-CONFIG_6LOWPAN=m
-# CONFIG_6LOWPAN_DEBUGFS is not set
-CONFIG_6LOWPAN_NHC=m
-CONFIG_6LOWPAN_NHC_DEST=m
-CONFIG_6LOWPAN_NHC_FRAGMENT=m
-CONFIG_6LOWPAN_NHC_HOP=m
-CONFIG_6LOWPAN_NHC_IPV6=m
-CONFIG_6LOWPAN_NHC_MOBILITY=m
-CONFIG_6LOWPAN_NHC_ROUTING=m
-CONFIG_6LOWPAN_NHC_UDP=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m
-CONFIG_6LOWPAN_GHC_UDP=m
-CONFIG_6LOWPAN_GHC_ICMPV6=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
-CONFIG_IEEE802154=m
-CONFIG_IEEE802154_NL802154_EXPERIMENTAL=y
-CONFIG_IEEE802154_SOCKET=m
-CONFIG_IEEE802154_6LOWPAN=m
-CONFIG_MAC802154=m
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_MULTIQ=m
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFB=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_CBS=m
-CONFIG_NET_SCH_ETF=m
-CONFIG_NET_SCH_TAPRIO=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_DRR=m
-CONFIG_NET_SCH_MQPRIO=m
-CONFIG_NET_SCH_SKBPRIO=m
-CONFIG_NET_SCH_CHOKE=m
-CONFIG_NET_SCH_QFQ=m
-CONFIG_NET_SCH_CODEL=m
-CONFIG_NET_SCH_FQ_CODEL=m
-CONFIG_NET_SCH_CAKE=m
-CONFIG_NET_SCH_FQ=m
-CONFIG_NET_SCH_HHF=m
-CONFIG_NET_SCH_PIE=m
-CONFIG_NET_SCH_FQ_PIE=m
-CONFIG_NET_SCH_INGRESS=m
-CONFIG_NET_SCH_PLUG=m
-CONFIG_NET_SCH_ETS=m
-# CONFIG_NET_SCH_DEFAULT is not set
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-# CONFIG_CLS_U32_PERF is not set
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_FLOW=m
-CONFIG_NET_CLS_CGROUP=m
-CONFIG_NET_CLS_BPF=m
-CONFIG_NET_CLS_FLOWER=m
-CONFIG_NET_CLS_MATCHALL=m
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_EMATCH_TEXT=m
-CONFIG_NET_EMATCH_CANID=m
-CONFIG_NET_EMATCH_IPSET=m
-CONFIG_NET_EMATCH_IPT=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_SAMPLE=m
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-CONFIG_NET_ACT_SKBEDIT=m
-CONFIG_NET_ACT_CSUM=m
-CONFIG_NET_ACT_MPLS=m
-CONFIG_NET_ACT_VLAN=m
-CONFIG_NET_ACT_BPF=m
-CONFIG_NET_ACT_CONNMARK=m
-CONFIG_NET_ACT_CTINFO=m
-CONFIG_NET_ACT_SKBMOD=m
-CONFIG_NET_ACT_IFE=m
-CONFIG_NET_ACT_TUNNEL_KEY=m
-CONFIG_NET_ACT_CT=m
-CONFIG_NET_ACT_GATE=m
-CONFIG_NET_IFE_SKBMARK=m
-CONFIG_NET_IFE_SKBPRIO=m
-CONFIG_NET_IFE_SKBTCINDEX=m
-# CONFIG_NET_TC_SKB_EXT is not set
-CONFIG_NET_SCH_FIFO=y
-CONFIG_DCB=y
-CONFIG_DNS_RESOLVER=y
-CONFIG_BATMAN_ADV=m
-# CONFIG_BATMAN_ADV_BATMAN_V is not set
-CONFIG_BATMAN_ADV_BLA=y
-CONFIG_BATMAN_ADV_DAT=y
-CONFIG_BATMAN_ADV_NC=y
-CONFIG_BATMAN_ADV_MCAST=y
-# CONFIG_BATMAN_ADV_DEBUG is not set
-# CONFIG_BATMAN_ADV_TRACING is not set
-CONFIG_OPENVSWITCH=m
-CONFIG_OPENVSWITCH_GRE=m
-CONFIG_OPENVSWITCH_VXLAN=m
-CONFIG_OPENVSWITCH_GENEVE=m
-CONFIG_VSOCKETS=m
-CONFIG_VSOCKETS_DIAG=m
-CONFIG_VSOCKETS_LOOPBACK=m
-CONFIG_VMWARE_VMCI_VSOCKETS=m
-CONFIG_VIRTIO_VSOCKETS=m
-CONFIG_VIRTIO_VSOCKETS_COMMON=m
-CONFIG_HYPERV_VSOCKETS=m
-CONFIG_NETLINK_DIAG=m
-CONFIG_MPLS=y
-CONFIG_NET_MPLS_GSO=m
-CONFIG_MPLS_ROUTING=m
-CONFIG_MPLS_IPTUNNEL=m
-CONFIG_NET_NSH=m
-CONFIG_HSR=m
-CONFIG_NET_SWITCHDEV=y
-CONFIG_NET_L3_MASTER_DEV=y
-CONFIG_QRTR=m
-CONFIG_QRTR_SMD=m
-CONFIG_QRTR_TUN=m
-CONFIG_QRTR_MHI=m
-CONFIG_NET_NCSI=y
-# CONFIG_NCSI_OEM_CMD_GET_MAC is not set
-CONFIG_PCPU_DEV_REFCNT=y
-CONFIG_RPS=y
-CONFIG_RFS_ACCEL=y
-CONFIG_SOCK_RX_QUEUE_MAPPING=y
-CONFIG_XPS=y
-CONFIG_CGROUP_NET_PRIO=y
-CONFIG_CGROUP_NET_CLASSID=y
-CONFIG_NET_RX_BUSY_POLL=y
-CONFIG_BQL=y
-# CONFIG_BPF_STREAM_PARSER is not set
-CONFIG_NET_FLOW_LIMIT=y
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-# CONFIG_NET_DROP_MONITOR is not set
-# end of Network testing
-# end of Networking options
-
-CONFIG_HAMRADIO=y
-
-#
-# Packet Radio protocols
-#
-CONFIG_AX25=m
-CONFIG_AX25_DAMA_SLAVE=y
-CONFIG_NETROM=m
-CONFIG_ROSE=m
-
-#
-# AX.25 network device drivers
-#
-CONFIG_MKISS=m
-CONFIG_6PACK=m
-CONFIG_BPQETHER=m
-CONFIG_SCC=m
-# CONFIG_SCC_DELAY is not set
-# CONFIG_SCC_TRXECHO is not set
-CONFIG_BAYCOM_SER_FDX=m
-CONFIG_BAYCOM_SER_HDX=m
-CONFIG_BAYCOM_PAR=m
-CONFIG_BAYCOM_EPP=m
-CONFIG_YAM=m
-# end of AX.25 network device drivers
-
-CONFIG_CAN=m
-CONFIG_CAN_RAW=m
-CONFIG_CAN_BCM=m
-CONFIG_CAN_GW=m
-CONFIG_CAN_J1939=m
-CONFIG_CAN_ISOTP=m
-
-#
-# CAN Device Drivers
-#
-CONFIG_CAN_VCAN=m
-CONFIG_CAN_VXCAN=m
-CONFIG_CAN_SLCAN=m
-CONFIG_CAN_DEV=m
-CONFIG_CAN_CALC_BITTIMING=y
-CONFIG_CAN_JANZ_ICAN3=m
-CONFIG_CAN_KVASER_PCIEFD=m
-CONFIG_PCH_CAN=m
-CONFIG_CAN_C_CAN=m
-CONFIG_CAN_C_CAN_PLATFORM=m
-CONFIG_CAN_C_CAN_PCI=m
-CONFIG_CAN_CC770=m
-CONFIG_CAN_CC770_ISA=m
-CONFIG_CAN_CC770_PLATFORM=m
-CONFIG_CAN_IFI_CANFD=m
-CONFIG_CAN_M_CAN=m
-CONFIG_CAN_M_CAN_PCI=m
-CONFIG_CAN_M_CAN_PLATFORM=m
-CONFIG_CAN_M_CAN_TCAN4X5X=m
-CONFIG_CAN_PEAK_PCIEFD=m
-CONFIG_CAN_SJA1000=m
-CONFIG_CAN_EMS_PCI=m
-CONFIG_CAN_EMS_PCMCIA=m
-CONFIG_CAN_F81601=m
-CONFIG_CAN_KVASER_PCI=m
-CONFIG_CAN_PEAK_PCI=m
-CONFIG_CAN_PEAK_PCIEC=y
-CONFIG_CAN_PEAK_PCMCIA=m
-CONFIG_CAN_PLX_PCI=m
-CONFIG_CAN_SJA1000_ISA=m
-CONFIG_CAN_SJA1000_PLATFORM=m
-CONFIG_CAN_TSCAN1=m
-CONFIG_CAN_SOFTING=m
-CONFIG_CAN_SOFTING_CS=m
-
-#
-# CAN SPI interfaces
-#
-CONFIG_CAN_HI311X=m
-CONFIG_CAN_MCP251X=m
-CONFIG_CAN_MCP251XFD=m
-# CONFIG_CAN_MCP251XFD_SANITY is not set
-# end of CAN SPI interfaces
-
-#
-# CAN USB interfaces
-#
-CONFIG_CAN_8DEV_USB=m
-CONFIG_CAN_EMS_USB=m
-CONFIG_CAN_ESD_USB2=m
-CONFIG_CAN_ETAS_ES58X=m
-CONFIG_CAN_GS_USB=m
-CONFIG_CAN_KVASER_USB=m
-CONFIG_CAN_MCBA_USB=m
-CONFIG_CAN_PEAK_USB=m
-CONFIG_CAN_UCAN=m
-# end of CAN USB interfaces
-
-# CONFIG_CAN_DEBUG_DEVICES is not set
-# end of CAN Device Drivers
-
-CONFIG_BT=m
-CONFIG_BT_BREDR=y
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_CMTP=m
-CONFIG_BT_HIDP=m
-CONFIG_BT_HS=y
-CONFIG_BT_LE=y
-CONFIG_BT_6LOWPAN=m
-# CONFIG_BT_LEDS is not set
-CONFIG_BT_MSFTEXT=y
-CONFIG_BT_AOSPEXT=y
-CONFIG_BT_DEBUGFS=y
-# CONFIG_BT_SELFTEST is not set
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_INTEL=m
-CONFIG_BT_BCM=m
-CONFIG_BT_RTL=m
-CONFIG_BT_QCA=m
-CONFIG_BT_HCIBTUSB=m
-# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set
-CONFIG_BT_HCIBTUSB_BCM=y
-CONFIG_BT_HCIBTUSB_MTK=y
-CONFIG_BT_HCIBTUSB_RTL=y
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_SERDEV=y
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_NOKIA=m
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_BT_HCIUART_ATH3K=y
-CONFIG_BT_HCIUART_LL=y
-CONFIG_BT_HCIUART_3WIRE=y
-CONFIG_BT_HCIUART_INTEL=y
-CONFIG_BT_HCIUART_BCM=y
-CONFIG_BT_HCIUART_RTL=y
-CONFIG_BT_HCIUART_QCA=y
-CONFIG_BT_HCIUART_AG6XX=y
-CONFIG_BT_HCIUART_MRVL=y
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-CONFIG_BT_HCIDTL1=m
-CONFIG_BT_HCIBT3C=m
-CONFIG_BT_HCIBLUECARD=m
-CONFIG_BT_HCIVHCI=m
-CONFIG_BT_MRVL=m
-CONFIG_BT_MRVL_SDIO=m
-CONFIG_BT_ATH3K=m
-CONFIG_BT_MTKSDIO=m
-CONFIG_BT_MTKUART=m
-CONFIG_BT_HCIRSI=m
-CONFIG_BT_VIRTIO=m
-# end of Bluetooth device drivers
-
-CONFIG_AF_RXRPC=m
-CONFIG_AF_RXRPC_IPV6=y
-# CONFIG_AF_RXRPC_INJECT_LOSS is not set
-# CONFIG_AF_RXRPC_DEBUG is not set
-# CONFIG_RXKAD is not set
-CONFIG_AF_KCM=m
-CONFIG_STREAM_PARSER=y
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
-CONFIG_WEXT_PRIV=y
-CONFIG_CFG80211=m
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
-CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
-CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
-CONFIG_CFG80211_DEFAULT_PS=y
-CONFIG_CFG80211_DEBUGFS=y
-CONFIG_CFG80211_CRDA_SUPPORT=y
-CONFIG_CFG80211_WEXT=y
-CONFIG_CFG80211_WEXT_EXPORT=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-CONFIG_MAC80211_MESH=y
-CONFIG_MAC80211_LEDS=y
-CONFIG_MAC80211_DEBUGFS=y
-CONFIG_MAC80211_MESSAGE_TRACING=y
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
-CONFIG_RFKILL=y
-CONFIG_RFKILL_LEDS=y
-CONFIG_RFKILL_INPUT=y
-CONFIG_RFKILL_GPIO=m
-CONFIG_NET_9P=m
-CONFIG_NET_9P_VIRTIO=m
-CONFIG_NET_9P_XEN=m
-CONFIG_NET_9P_RDMA=m
-# CONFIG_NET_9P_DEBUG is not set
-CONFIG_CAIF=m
-# CONFIG_CAIF_DEBUG is not set
-CONFIG_CAIF_NETDEV=m
-CONFIG_CAIF_USB=m
-CONFIG_CEPH_LIB=m
-# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
-CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y
-CONFIG_NFC=m
-CONFIG_NFC_DIGITAL=m
-CONFIG_NFC_NCI=m
-CONFIG_NFC_NCI_SPI=m
-CONFIG_NFC_NCI_UART=m
-CONFIG_NFC_HCI=m
-CONFIG_NFC_SHDLC=y
-
-#
-# Near Field Communication (NFC) devices
-#
-CONFIG_NFC_TRF7970A=m
-CONFIG_NFC_SIM=m
-CONFIG_NFC_PORT100=m
-CONFIG_NFC_VIRTUAL_NCI=m
-CONFIG_NFC_FDP=m
-CONFIG_NFC_FDP_I2C=m
-CONFIG_NFC_PN544=m
-CONFIG_NFC_PN544_I2C=m
-CONFIG_NFC_PN533=m
-CONFIG_NFC_PN533_USB=m
-CONFIG_NFC_PN533_I2C=m
-CONFIG_NFC_PN532_UART=m
-CONFIG_NFC_MICROREAD=m
-CONFIG_NFC_MICROREAD_I2C=m
-CONFIG_NFC_MRVL=m
-CONFIG_NFC_MRVL_USB=m
-CONFIG_NFC_MRVL_UART=m
-CONFIG_NFC_MRVL_I2C=m
-CONFIG_NFC_MRVL_SPI=m
-CONFIG_NFC_ST21NFCA=m
-CONFIG_NFC_ST21NFCA_I2C=m
-CONFIG_NFC_ST_NCI=m
-CONFIG_NFC_ST_NCI_I2C=m
-CONFIG_NFC_ST_NCI_SPI=m
-CONFIG_NFC_NXP_NCI=m
-CONFIG_NFC_NXP_NCI_I2C=m
-CONFIG_NFC_S3FWRN5=m
-CONFIG_NFC_S3FWRN5_I2C=m
-CONFIG_NFC_S3FWRN82_UART=m
-CONFIG_NFC_ST95HF=m
-# end of Near Field Communication (NFC) devices
-
-CONFIG_PSAMPLE=m
-CONFIG_NET_IFE=m
-CONFIG_LWTUNNEL=y
-CONFIG_LWTUNNEL_BPF=y
-CONFIG_DST_CACHE=y
-CONFIG_GRO_CELLS=y
-CONFIG_NET_SELFTESTS=y
-CONFIG_NET_SOCK_MSG=y
-CONFIG_NET_DEVLINK=y
-CONFIG_PAGE_POOL=y
-CONFIG_FAILOVER=y
-CONFIG_ETHTOOL_NETLINK=y
-
-#
-# Device Drivers
-#
-CONFIG_HAVE_EISA=y
-# CONFIG_EISA is not set
-CONFIG_HAVE_PCI=y
-CONFIG_PCI=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_HOTPLUG_PCI_PCIE=y
-CONFIG_PCIEAER=y
-# CONFIG_PCIEAER_INJECT is not set
-# CONFIG_PCIE_ECRC is not set
-CONFIG_PCIEASPM=y
-CONFIG_PCIEASPM_DEFAULT=y
-# CONFIG_PCIEASPM_POWERSAVE is not set
-# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
-# CONFIG_PCIEASPM_PERFORMANCE is not set
-CONFIG_PCIE_PME=y
-CONFIG_PCIE_DPC=y
-CONFIG_PCIE_PTM=y
-# CONFIG_PCIE_EDR is not set
-CONFIG_PCI_MSI=y
-CONFIG_PCI_MSI_IRQ_DOMAIN=y
-CONFIG_PCI_QUIRKS=y
-# CONFIG_PCI_DEBUG is not set
-CONFIG_PCI_REALLOC_ENABLE_AUTO=y
-CONFIG_PCI_STUB=m
-# CONFIG_PCI_PF_STUB is not set
-CONFIG_XEN_PCIDEV_FRONTEND=m
-CONFIG_PCI_ATS=y
-CONFIG_PCI_LOCKLESS_CONFIG=y
-CONFIG_PCI_IOV=y
-CONFIG_PCI_PRI=y
-CONFIG_PCI_PASID=y
-CONFIG_PCI_LABEL=y
-# CONFIG_PCIE_BUS_TUNE_OFF is not set
-CONFIG_PCIE_BUS_DEFAULT=y
-# CONFIG_PCIE_BUS_SAFE is not set
-# CONFIG_PCIE_BUS_PERFORMANCE is not set
-# CONFIG_PCIE_BUS_PEER2PEER is not set
-CONFIG_HOTPLUG_PCI=y
-CONFIG_HOTPLUG_PCI_COMPAQ=m
-CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y
-CONFIG_HOTPLUG_PCI_IBM=m
-CONFIG_HOTPLUG_PCI_ACPI=y
-CONFIG_HOTPLUG_PCI_ACPI_IBM=m
-CONFIG_HOTPLUG_PCI_CPCI=y
-CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
-CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
-CONFIG_HOTPLUG_PCI_SHPC=y
-
-#
-# PCI controller drivers
-#
-
-#
-# DesignWare PCI Core Support
-#
-# CONFIG_PCIE_DW_PLAT_HOST is not set
-# CONFIG_PCI_MESON is not set
-# end of DesignWare PCI Core Support
-
-#
-# Mobiveil PCIe Core Support
-#
-# end of Mobiveil PCIe Core Support
-
-#
-# Cadence PCIe controllers support
-#
-# end of Cadence PCIe controllers support
-# end of PCI controller drivers
-
-#
-# PCI Endpoint
-#
-# CONFIG_PCI_ENDPOINT is not set
-# end of PCI Endpoint
-
-#
-# PCI switch controller drivers
-#
-CONFIG_PCI_SW_SWITCHTEC=m
-# end of PCI switch controller drivers
-
-CONFIG_CXL_BUS=m
-CONFIG_CXL_MEM=m
-# CONFIG_CXL_MEM_RAW_COMMANDS is not set
-CONFIG_PCCARD=m
-CONFIG_PCMCIA=m
-CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_CARDBUS=y
-
-#
-# PC-card bridges
-#
-CONFIG_YENTA=m
-CONFIG_YENTA_O2=y
-CONFIG_YENTA_RICOH=y
-CONFIG_YENTA_TI=y
-CONFIG_YENTA_ENE_TUNE=y
-CONFIG_YENTA_TOSHIBA=y
-CONFIG_PD6729=m
-CONFIG_I82092=m
-CONFIG_I82365=m
-CONFIG_TCIC=m
-CONFIG_PCMCIA_PROBE=y
-CONFIG_PCCARD_NONSTATIC=y
-CONFIG_RAPIDIO=y
-CONFIG_RAPIDIO_TSI721=m
-CONFIG_RAPIDIO_DISC_TIMEOUT=30
-# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
-CONFIG_RAPIDIO_DMA_ENGINE=y
-# CONFIG_RAPIDIO_DEBUG is not set
-CONFIG_RAPIDIO_ENUM_BASIC=m
-CONFIG_RAPIDIO_CHMAN=m
-CONFIG_RAPIDIO_MPORT_CDEV=m
-
-#
-# RapidIO Switch drivers
-#
-CONFIG_RAPIDIO_TSI57X=m
-CONFIG_RAPIDIO_CPS_XX=m
-CONFIG_RAPIDIO_TSI568=m
-CONFIG_RAPIDIO_CPS_GEN2=m
-CONFIG_RAPIDIO_RXS_GEN3=m
-# end of RapidIO Switch drivers
-
-#
-# Generic Driver Options
-#
-CONFIG_AUXILIARY_BUS=y
-CONFIG_UEVENT_HELPER=y
-CONFIG_UEVENT_HELPER_PATH=""
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-# CONFIG_STANDALONE is not set
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-
-#
-# Firmware loader
-#
-CONFIG_FW_LOADER=y
-CONFIG_FW_LOADER_PAGED_BUF=y
-CONFIG_EXTRA_FIRMWARE=""
-CONFIG_FW_LOADER_USER_HELPER=y
-# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-CONFIG_FW_LOADER_COMPRESS=y
-CONFIG_FW_CACHE=y
-# end of Firmware loader
-
-CONFIG_WANT_DEV_COREDUMP=y
-CONFIG_ALLOW_DEV_COREDUMP=y
-CONFIG_DEV_COREDUMP=y
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
-# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
-CONFIG_SYS_HYPERVISOR=y
-CONFIG_GENERIC_CPU_AUTOPROBE=y
-CONFIG_GENERIC_CPU_VULNERABILITIES=y
-CONFIG_REGMAP=y
-CONFIG_REGMAP_I2C=y
-CONFIG_REGMAP_SPI=y
-CONFIG_REGMAP_SPMI=m
-CONFIG_REGMAP_W1=m
-CONFIG_REGMAP_MMIO=y
-CONFIG_REGMAP_IRQ=y
-CONFIG_REGMAP_SCCB=m
-CONFIG_REGMAP_I3C=m
-CONFIG_REGMAP_SPI_AVMM=m
-CONFIG_DMA_SHARED_BUFFER=y
-# CONFIG_DMA_FENCE_TRACE is not set
-# end of Generic Driver Options
-
-#
-# Bus devices
-#
-CONFIG_MHI_BUS=m
-# CONFIG_MHI_BUS_DEBUG is not set
-CONFIG_MHI_BUS_PCI_GENERIC=m
-# end of Bus devices
-
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-CONFIG_GNSS=m
-CONFIG_GNSS_SERIAL=m
-CONFIG_GNSS_MTK_SERIAL=m
-CONFIG_GNSS_SIRF_SERIAL=m
-CONFIG_GNSS_UBX_SERIAL=m
-CONFIG_MTD=m
-# CONFIG_MTD_TESTS is not set
-
-#
-# Partition parsers
-#
-CONFIG_MTD_AR7_PARTS=m
-CONFIG_MTD_CMDLINE_PARTS=m
-CONFIG_MTD_REDBOOT_PARTS=m
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-# end of Partition parsers
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
-CONFIG_FTL=m
-CONFIG_NFTL=m
-CONFIG_NFTL_RW=y
-CONFIG_INFTL=m
-CONFIG_RFD_FTL=m
-CONFIG_SSFDC=m
-CONFIG_SM_FTL=m
-CONFIG_MTD_OOPS=m
-CONFIG_MTD_PSTORE=m
-CONFIG_MTD_SWAP=m
-# CONFIG_MTD_PARTITIONED_MASTER is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=m
-CONFIG_MTD_JEDECPROBE=m
-CONFIG_MTD_GEN_PROBE=m
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-CONFIG_MTD_CFI_INTELEXT=m
-CONFIG_MTD_CFI_AMDSTD=m
-CONFIG_MTD_CFI_STAA=m
-CONFIG_MTD_CFI_UTIL=m
-CONFIG_MTD_RAM=m
-CONFIG_MTD_ROM=m
-CONFIG_MTD_ABSENT=m
-# end of RAM/ROM/Flash chip drivers
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-CONFIG_MTD_PHYSMAP=m
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-CONFIG_MTD_PHYSMAP_GPIO_ADDR=y
-CONFIG_MTD_SBC_GXX=m
-CONFIG_MTD_SCx200_DOCFLASH=m
-CONFIG_MTD_AMD76XROM=m
-CONFIG_MTD_ICHXROM=m
-CONFIG_MTD_ESB2ROM=m
-CONFIG_MTD_CK804XROM=m
-CONFIG_MTD_SCB2_FLASH=m
-CONFIG_MTD_NETtel=m
-CONFIG_MTD_L440GX=m
-CONFIG_MTD_PCI=m
-CONFIG_MTD_PCMCIA=m
-# CONFIG_MTD_PCMCIA_ANONYMOUS is not set
-CONFIG_MTD_INTEL_VR_NOR=m
-CONFIG_MTD_PLATRAM=m
-# end of Mapping drivers for chip access
-
-#
-# Self-contained MTD device drivers
-#
-CONFIG_MTD_PMC551=m
-# CONFIG_MTD_PMC551_BUGFIX is not set
-# CONFIG_MTD_PMC551_DEBUG is not set
-CONFIG_MTD_DATAFLASH=m
-# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-CONFIG_MTD_DATAFLASH_OTP=y
-CONFIG_MTD_MCHP23K256=m
-CONFIG_MTD_SST25L=m
-CONFIG_MTD_SLRAM=m
-CONFIG_MTD_PHRAM=m
-CONFIG_MTD_MTDRAM=m
-CONFIG_MTDRAM_TOTAL_SIZE=4096
-CONFIG_MTDRAM_ERASE_SIZE=128
-CONFIG_MTD_BLOCK2MTD=m
-
-#
-# Disk-On-Chip Device Drivers
-#
-CONFIG_MTD_DOCG3=m
-CONFIG_BCH_CONST_M=14
-CONFIG_BCH_CONST_T=4
-# end of Self-contained MTD device drivers
-
-#
-# NAND
-#
-CONFIG_MTD_NAND_CORE=m
-CONFIG_MTD_ONENAND=m
-CONFIG_MTD_ONENAND_VERIFY_WRITE=y
-CONFIG_MTD_ONENAND_GENERIC=m
-# CONFIG_MTD_ONENAND_OTP is not set
-CONFIG_MTD_ONENAND_2X_PROGRAM=y
-CONFIG_MTD_RAW_NAND=m
-
-#
-# Raw/parallel NAND flash controllers
-#
-CONFIG_MTD_NAND_DENALI=m
-CONFIG_MTD_NAND_DENALI_PCI=m
-CONFIG_MTD_NAND_CAFE=m
-CONFIG_MTD_NAND_CS553X=m
-CONFIG_MTD_NAND_MXIC=m
-CONFIG_MTD_NAND_GPIO=m
-CONFIG_MTD_NAND_PLATFORM=m
-CONFIG_MTD_NAND_ARASAN=m
-
-#
-# Misc
-#
-CONFIG_MTD_SM_COMMON=m
-CONFIG_MTD_NAND_NANDSIM=m
-CONFIG_MTD_NAND_RICOH=m
-CONFIG_MTD_NAND_DISKONCHIP=m
-# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
-CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
-# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
-CONFIG_MTD_SPI_NAND=m
-
-#
-# ECC engine support
-#
-CONFIG_MTD_NAND_ECC=y
-CONFIG_MTD_NAND_ECC_SW_HAMMING=y
-# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
-# CONFIG_MTD_NAND_ECC_SW_BCH is not set
-# end of ECC engine support
-# end of NAND
-
-#
-# LPDDR & LPDDR2 PCM memory drivers
-#
-CONFIG_MTD_LPDDR=m
-CONFIG_MTD_QINFO_PROBE=m
-# end of LPDDR & LPDDR2 PCM memory drivers
-
-CONFIG_MTD_SPI_NOR=m
-CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
-# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set
-CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y
-# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set
-CONFIG_SPI_INTEL_SPI=m
-CONFIG_SPI_INTEL_SPI_PCI=m
-CONFIG_SPI_INTEL_SPI_PLATFORM=m
-CONFIG_MTD_UBI=m
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_LIMIT=20
-CONFIG_MTD_UBI_FASTMAP=y
-CONFIG_MTD_UBI_GLUEBI=m
-CONFIG_MTD_UBI_BLOCK=y
-CONFIG_MTD_HYPERBUS=m
-# CONFIG_OF is not set
-CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
-CONFIG_PARPORT=m
-CONFIG_PARPORT_PC=m
-CONFIG_PARPORT_SERIAL=m
-CONFIG_PARPORT_PC_FIFO=y
-# CONFIG_PARPORT_PC_SUPERIO is not set
-CONFIG_PARPORT_PC_PCMCIA=m
-CONFIG_PARPORT_AX88796=m
-CONFIG_PARPORT_1284=y
-CONFIG_PARPORT_NOT_PC=y
-CONFIG_PNP=y
-# CONFIG_PNP_DEBUG_MESSAGES is not set
-
-#
-# Protocols
-#
-CONFIG_ISAPNP=y
-CONFIG_PNPBIOS=y
-CONFIG_PNPBIOS_PROC_FS=y
-CONFIG_PNPACPI=y
-CONFIG_BLK_DEV=y
-CONFIG_BLK_DEV_NULL_BLK=m
-CONFIG_BLK_DEV_FD=m
-CONFIG_CDROM=y
-CONFIG_PARIDE=m
-
-#
-# Parallel IDE high-level drivers
-#
-CONFIG_PARIDE_PD=m
-CONFIG_PARIDE_PCD=m
-CONFIG_PARIDE_PF=m
-CONFIG_PARIDE_PT=m
-CONFIG_PARIDE_PG=m
-
-#
-# Parallel IDE protocol modules
-#
-CONFIG_PARIDE_ATEN=m
-CONFIG_PARIDE_BPCK=m
-CONFIG_PARIDE_BPCK6=m
-CONFIG_PARIDE_COMM=m
-CONFIG_PARIDE_DSTR=m
-CONFIG_PARIDE_FIT2=m
-CONFIG_PARIDE_FIT3=m
-CONFIG_PARIDE_EPAT=m
-CONFIG_PARIDE_EPATC8=y
-CONFIG_PARIDE_EPIA=m
-CONFIG_PARIDE_FRIQ=m
-CONFIG_PARIDE_FRPW=m
-CONFIG_PARIDE_KBIC=m
-CONFIG_PARIDE_KTTI=m
-CONFIG_PARIDE_ON20=m
-CONFIG_PARIDE_ON26=m
-CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
-CONFIG_ZRAM=m
-CONFIG_ZRAM_DEF_COMP_LZORLE=y
-# CONFIG_ZRAM_DEF_COMP_ZSTD is not set
-# CONFIG_ZRAM_DEF_COMP_LZ4 is not set
-# CONFIG_ZRAM_DEF_COMP_LZO is not set
-# CONFIG_ZRAM_DEF_COMP_LZ4HC is not set
-# CONFIG_ZRAM_DEF_COMP_842 is not set
-CONFIG_ZRAM_DEF_COMP="lzo-rle"
-# CONFIG_ZRAM_WRITEBACK is not set
-# CONFIG_ZRAM_MEMORY_TRACKING is not set
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-CONFIG_BLK_DEV_DRBD=m
-# CONFIG_DRBD_FAULT_INJECTION is not set
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_SX8=m
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=65536
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-CONFIG_ATA_OVER_ETH=m
-CONFIG_XEN_BLKDEV_FRONTEND=y
-CONFIG_XEN_BLKDEV_BACKEND=m
-CONFIG_VIRTIO_BLK=y
-CONFIG_BLK_DEV_RBD=m
-CONFIG_BLK_DEV_RSXX=m
-CONFIG_BLK_DEV_RNBD=y
-CONFIG_BLK_DEV_RNBD_CLIENT=m
-CONFIG_BLK_DEV_RNBD_SERVER=m
-
-#
-# NVME Support
-#
-CONFIG_NVME_CORE=y
-CONFIG_BLK_DEV_NVME=y
-# CONFIG_NVME_MULTIPATH is not set
-CONFIG_NVME_HWMON=y
-CONFIG_NVME_FABRICS=m
-CONFIG_NVME_RDMA=m
-CONFIG_NVME_FC=m
-CONFIG_NVME_TCP=m
-CONFIG_NVME_TARGET=m
-# CONFIG_NVME_TARGET_PASSTHRU is not set
-CONFIG_NVME_TARGET_LOOP=m
-CONFIG_NVME_TARGET_RDMA=m
-CONFIG_NVME_TARGET_FC=m
-CONFIG_NVME_TARGET_FCLOOP=m
-CONFIG_NVME_TARGET_TCP=m
-# end of NVME Support
-
-#
-# Misc devices
-#
-CONFIG_SENSORS_LIS3LV02D=m
-CONFIG_AD525X_DPOT=m
-CONFIG_AD525X_DPOT_I2C=m
-CONFIG_AD525X_DPOT_SPI=m
-CONFIG_DUMMY_IRQ=m
-CONFIG_IBM_ASM=m
-CONFIG_PHANTOM=m
-CONFIG_TIFM_CORE=m
-CONFIG_TIFM_7XX1=m
-CONFIG_ICS932S401=m
-CONFIG_ENCLOSURE_SERVICES=m
-# CONFIG_CS5535_MFGPT is not set
-CONFIG_HP_ILO=m
-CONFIG_APDS9802ALS=m
-CONFIG_ISL29003=m
-CONFIG_ISL29020=m
-CONFIG_SENSORS_TSL2550=m
-CONFIG_SENSORS_BH1770=m
-CONFIG_SENSORS_APDS990X=m
-CONFIG_HMC6352=m
-CONFIG_DS1682=m
-CONFIG_VMWARE_BALLOON=m
-CONFIG_PCH_PHUB=m
-CONFIG_LATTICE_ECP3_CONFIG=m
-CONFIG_SRAM=y
-CONFIG_DW_XDATA_PCIE=m
-# CONFIG_PCI_ENDPOINT_TEST is not set
-CONFIG_XILINX_SDFEC=m
-CONFIG_MISC_RTSX=m
-CONFIG_C2PORT=m
-CONFIG_C2PORT_DURAMAR_2150=m
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=m
-CONFIG_EEPROM_AT25=m
-CONFIG_EEPROM_LEGACY=m
-CONFIG_EEPROM_MAX6875=m
-CONFIG_EEPROM_93CX6=m
-CONFIG_EEPROM_93XX46=m
-CONFIG_EEPROM_IDT_89HPESX=m
-CONFIG_EEPROM_EE1004=m
-# end of EEPROM support
-
-CONFIG_CB710_CORE=m
-# CONFIG_CB710_DEBUG is not set
-CONFIG_CB710_DEBUG_ASSUMPTIONS=y
-
-#
-# Texas Instruments shared transport line discipline
-#
-CONFIG_TI_ST=m
-# end of Texas Instruments shared transport line discipline
-
-CONFIG_SENSORS_LIS3_I2C=m
-CONFIG_ALTERA_STAPL=m
-# CONFIG_INTEL_MEI is not set
-# CONFIG_INTEL_MEI_ME is not set
-# CONFIG_INTEL_MEI_TXE is not set
-# CONFIG_INTEL_MEI_HDCP is not set
-CONFIG_VMWARE_VMCI=m
-CONFIG_ECHO=m
-CONFIG_BCM_VK=m
-CONFIG_BCM_VK_TTY=y
-CONFIG_MISC_ALCOR_PCI=m
-CONFIG_MISC_RTSX_PCI=m
-CONFIG_MISC_RTSX_USB=m
-CONFIG_HABANA_AI=m
-CONFIG_UACCE=m
-CONFIG_PVPANIC=y
-CONFIG_PVPANIC_MMIO=m
-CONFIG_PVPANIC_PCI=m
-# end of Misc devices
-
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_NETLINK=y
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-CONFIG_CHR_DEV_ST=m
-CONFIG_BLK_DEV_SR=y
-CONFIG_CHR_DEV_SG=y
-CONFIG_CHR_DEV_SCH=m
-CONFIG_SCSI_ENCLOSURE=m
-CONFIG_SCSI_CONSTANTS=y
-CONFIG_SCSI_LOGGING=y
-CONFIG_SCSI_SCAN_ASYNC=y
-
-#
-# SCSI Transports
-#
-CONFIG_SCSI_SPI_ATTRS=m
-CONFIG_SCSI_FC_ATTRS=m
-CONFIG_SCSI_ISCSI_ATTRS=m
-CONFIG_SCSI_SAS_ATTRS=m
-CONFIG_SCSI_SAS_LIBSAS=m
-CONFIG_SCSI_SAS_ATA=y
-CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SRP_ATTRS=m
-# end of SCSI Transports
-
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ISCSI_TCP=m
-CONFIG_ISCSI_BOOT_SYSFS=m
-CONFIG_SCSI_CXGB3_ISCSI=m
-CONFIG_SCSI_CXGB4_ISCSI=m
-CONFIG_SCSI_BNX2_ISCSI=m
-CONFIG_SCSI_BNX2X_FCOE=m
-CONFIG_BE2ISCSI=m
-CONFIG_BLK_DEV_3W_XXXX_RAID=m
-CONFIG_SCSI_HPSA=m
-CONFIG_SCSI_3W_9XXX=m
-CONFIG_SCSI_3W_SAS=m
-CONFIG_SCSI_ACARD=m
-CONFIG_SCSI_AHA152X=m
-CONFIG_SCSI_AHA1542=m
-CONFIG_SCSI_AACRAID=m
-CONFIG_SCSI_AIC7XXX=m
-CONFIG_AIC7XXX_CMDS_PER_DEVICE=8
-CONFIG_AIC7XXX_RESET_DELAY_MS=5000
-# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
-CONFIG_AIC7XXX_DEBUG_MASK=0
-CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
-CONFIG_SCSI_AIC79XX=m
-CONFIG_AIC79XX_CMDS_PER_DEVICE=32
-CONFIG_AIC79XX_RESET_DELAY_MS=5000
-# CONFIG_AIC79XX_DEBUG_ENABLE is not set
-CONFIG_AIC79XX_DEBUG_MASK=0
-CONFIG_AIC79XX_REG_PRETTY_PRINT=y
-CONFIG_SCSI_AIC94XX=m
-# CONFIG_AIC94XX_DEBUG is not set
-CONFIG_SCSI_MVSAS=m
-# CONFIG_SCSI_MVSAS_DEBUG is not set
-# CONFIG_SCSI_MVSAS_TASKLET is not set
-CONFIG_SCSI_MVUMI=m
-CONFIG_SCSI_DPT_I2O=m
-CONFIG_SCSI_ADVANSYS=m
-CONFIG_SCSI_ARCMSR=m
-CONFIG_SCSI_ESAS2R=m
-CONFIG_MEGARAID_NEWGEN=y
-CONFIG_MEGARAID_MM=m
-CONFIG_MEGARAID_MAILBOX=m
-CONFIG_MEGARAID_LEGACY=m
-CONFIG_MEGARAID_SAS=m
-CONFIG_SCSI_MPT3SAS=m
-CONFIG_SCSI_MPT2SAS_MAX_SGE=128
-CONFIG_SCSI_MPT3SAS_MAX_SGE=128
-CONFIG_SCSI_MPT2SAS=m
-CONFIG_SCSI_SMARTPQI=m
-CONFIG_SCSI_UFSHCD=m
-CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
-CONFIG_SCSI_UFSHCD_PLATFORM=m
-CONFIG_SCSI_UFS_CDNS_PLATFORM=m
-# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
-# CONFIG_SCSI_UFS_BSG is not set
-CONFIG_SCSI_UFS_CRYPTO=y
-CONFIG_SCSI_HPTIOP=m
-CONFIG_SCSI_BUSLOGIC=m
-CONFIG_SCSI_FLASHPOINT=y
-CONFIG_SCSI_MYRB=m
-CONFIG_SCSI_MYRS=m
-CONFIG_VMWARE_PVSCSI=m
-CONFIG_XEN_SCSI_FRONTEND=m
-CONFIG_HYPERV_STORAGE=m
-CONFIG_LIBFC=m
-CONFIG_LIBFCOE=m
-CONFIG_FCOE=m
-CONFIG_FCOE_FNIC=m
-CONFIG_SCSI_SNIC=m
-# CONFIG_SCSI_SNIC_DEBUG_FS is not set
-CONFIG_SCSI_DMX3191D=m
-CONFIG_SCSI_FDOMAIN=m
-CONFIG_SCSI_FDOMAIN_PCI=m
-CONFIG_SCSI_FDOMAIN_ISA=m
-CONFIG_SCSI_ISCI=m
-CONFIG_SCSI_GENERIC_NCR5380=m
-CONFIG_SCSI_IPS=m
-CONFIG_SCSI_INITIO=m
-CONFIG_SCSI_INIA100=m
-CONFIG_SCSI_PPA=m
-CONFIG_SCSI_IMM=m
-# CONFIG_SCSI_IZIP_EPP16 is not set
-# CONFIG_SCSI_IZIP_SLOW_CTR is not set
-CONFIG_SCSI_STEX=m
-CONFIG_SCSI_SYM53C8XX_2=m
-CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
-CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
-CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
-CONFIG_SCSI_SYM53C8XX_MMIO=y
-CONFIG_SCSI_IPR=m
-CONFIG_SCSI_IPR_TRACE=y
-CONFIG_SCSI_IPR_DUMP=y
-CONFIG_SCSI_QLOGIC_FAS=m
-CONFIG_SCSI_QLOGIC_1280=m
-CONFIG_SCSI_QLA_FC=m
-CONFIG_TCM_QLA2XXX=m
-# CONFIG_TCM_QLA2XXX_DEBUG is not set
-CONFIG_SCSI_QLA_ISCSI=m
-CONFIG_QEDI=m
-CONFIG_QEDF=m
-CONFIG_SCSI_LPFC=m
-# CONFIG_SCSI_LPFC_DEBUG_FS is not set
-CONFIG_SCSI_DC395x=m
-CONFIG_SCSI_AM53C974=m
-CONFIG_SCSI_NSP32=m
-CONFIG_SCSI_WD719X=m
-CONFIG_SCSI_DEBUG=m
-CONFIG_SCSI_PMCRAID=m
-CONFIG_SCSI_PM8001=m
-CONFIG_SCSI_BFA_FC=m
-CONFIG_SCSI_VIRTIO=m
-CONFIG_SCSI_CHELSIO_FCOE=m
-CONFIG_SCSI_LOWLEVEL_PCMCIA=y
-CONFIG_PCMCIA_AHA152X=m
-CONFIG_PCMCIA_FDOMAIN=m
-CONFIG_PCMCIA_NINJA_SCSI=m
-CONFIG_PCMCIA_QLOGIC=m
-CONFIG_PCMCIA_SYM53C500=m
-CONFIG_SCSI_DH=y
-CONFIG_SCSI_DH_RDAC=m
-CONFIG_SCSI_DH_HP_SW=m
-CONFIG_SCSI_DH_EMC=m
-CONFIG_SCSI_DH_ALUA=m
-# end of SCSI device support
-
-CONFIG_ATA=y
-CONFIG_SATA_HOST=y
-CONFIG_PATA_TIMINGS=y
-CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_ATA_FORCE=y
-CONFIG_ATA_ACPI=y
-CONFIG_SATA_ZPODD=y
-CONFIG_SATA_PMP=y
-
-#
-# Controllers with non-SFF native interface
-#
-CONFIG_SATA_AHCI=m
-CONFIG_SATA_MOBILE_LPM_POLICY=0
-CONFIG_SATA_AHCI_PLATFORM=m
-CONFIG_SATA_INIC162X=m
-CONFIG_SATA_ACARD_AHCI=m
-CONFIG_SATA_SIL24=m
-CONFIG_ATA_SFF=y
-
-#
-# SFF controllers with custom DMA interface
-#
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
-CONFIG_SATA_SX4=m
-CONFIG_ATA_BMDMA=y
-
-#
-# SATA SFF controllers with BMDMA
-#
-CONFIG_ATA_PIIX=y
-CONFIG_SATA_DWC=m
-# CONFIG_SATA_DWC_OLD_DMA is not set
-# CONFIG_SATA_DWC_DEBUG is not set
-CONFIG_SATA_MV=m
-CONFIG_SATA_NV=m
-CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SIL=m
-CONFIG_SATA_SIS=m
-CONFIG_SATA_SVW=m
-CONFIG_SATA_ULI=m
-CONFIG_SATA_VIA=m
-CONFIG_SATA_VITESSE=m
-
-#
-# PATA SFF controllers with BMDMA
-#
-CONFIG_PATA_ALI=m
-CONFIG_PATA_AMD=m
-CONFIG_PATA_ARTOP=m
-CONFIG_PATA_ATIIXP=m
-CONFIG_PATA_ATP867X=m
-CONFIG_PATA_CMD64X=m
-CONFIG_PATA_CS5520=m
-CONFIG_PATA_CS5530=m
-CONFIG_PATA_CS5535=m
-CONFIG_PATA_CS5536=m
-CONFIG_PATA_CYPRESS=m
-CONFIG_PATA_EFAR=m
-CONFIG_PATA_HPT366=m
-CONFIG_PATA_HPT37X=m
-CONFIG_PATA_HPT3X2N=m
-CONFIG_PATA_HPT3X3=m
-# CONFIG_PATA_HPT3X3_DMA is not set
-CONFIG_PATA_IT8213=m
-CONFIG_PATA_IT821X=m
-CONFIG_PATA_JMICRON=m
-CONFIG_PATA_MARVELL=m
-CONFIG_PATA_NETCELL=m
-CONFIG_PATA_NINJA32=m
-CONFIG_PATA_NS87415=m
-CONFIG_PATA_OLDPIIX=m
-CONFIG_PATA_OPTIDMA=m
-CONFIG_PATA_PDC2027X=m
-CONFIG_PATA_PDC_OLD=m
-CONFIG_PATA_RADISYS=m
-CONFIG_PATA_RDC=m
-CONFIG_PATA_SC1200=m
-CONFIG_PATA_SCH=m
-CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_SIL680=m
-CONFIG_PATA_SIS=y
-CONFIG_PATA_TOSHIBA=m
-CONFIG_PATA_TRIFLEX=m
-CONFIG_PATA_VIA=m
-CONFIG_PATA_WINBOND=m
-
-#
-# PIO-only SFF controllers
-#
-CONFIG_PATA_CMD640_PCI=m
-CONFIG_PATA_ISAPNP=m
-CONFIG_PATA_MPIIX=m
-CONFIG_PATA_NS87410=m
-CONFIG_PATA_OPTI=m
-CONFIG_PATA_PCMCIA=m
-CONFIG_PATA_PLATFORM=m
-CONFIG_PATA_QDI=m
-CONFIG_PATA_RZ1000=m
-CONFIG_PATA_WINBOND_VLB=m
-
-#
-# Generic fallback / legacy drivers
-#
-CONFIG_PATA_ACPI=m
-CONFIG_ATA_GENERIC=y
-CONFIG_PATA_LEGACY=m
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=y
-CONFIG_MD_AUTODETECT=y
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-CONFIG_MD_CLUSTER=m
-CONFIG_BCACHE=m
-# CONFIG_BCACHE_DEBUG is not set
-# CONFIG_BCACHE_CLOSURES_DEBUG is not set
-# CONFIG_BCACHE_ASYNC_REGISTRATION is not set
-CONFIG_BLK_DEV_DM_BUILTIN=y
-CONFIG_BLK_DEV_DM=y
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_BUFIO=m
-# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
-CONFIG_DM_BIO_PRISON=m
-CONFIG_DM_PERSISTENT_DATA=m
-CONFIG_DM_UNSTRIPED=m
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_THIN_PROVISIONING=m
-CONFIG_DM_CACHE=m
-CONFIG_DM_CACHE_SMQ=m
-CONFIG_DM_WRITECACHE=m
-# CONFIG_DM_EBS is not set
-CONFIG_DM_ERA=m
-CONFIG_DM_CLONE=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_LOG_USERSPACE=m
-CONFIG_DM_RAID=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_QL=m
-CONFIG_DM_MULTIPATH_ST=m
-CONFIG_DM_MULTIPATH_HST=m
-CONFIG_DM_MULTIPATH_IOA=m
-CONFIG_DM_DELAY=m
-CONFIG_DM_DUST=m
-# CONFIG_DM_INIT is not set
-CONFIG_DM_UEVENT=y
-CONFIG_DM_FLAKEY=m
-CONFIG_DM_VERITY=m
-CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y
-# CONFIG_DM_VERITY_FEC is not set
-CONFIG_DM_SWITCH=m
-CONFIG_DM_LOG_WRITES=m
-CONFIG_DM_INTEGRITY=m
-CONFIG_DM_ZONED=m
-CONFIG_TARGET_CORE=m
-CONFIG_TCM_IBLOCK=m
-CONFIG_TCM_FILEIO=m
-CONFIG_TCM_PSCSI=m
-CONFIG_TCM_USER2=m
-CONFIG_LOOPBACK_TARGET=m
-CONFIG_TCM_FC=m
-CONFIG_ISCSI_TARGET=m
-CONFIG_ISCSI_TARGET_CXGB4=m
-CONFIG_SBP_TARGET=m
-CONFIG_FUSION=y
-CONFIG_FUSION_SPI=m
-CONFIG_FUSION_FC=m
-CONFIG_FUSION_SAS=m
-CONFIG_FUSION_MAX_SGE=128
-CONFIG_FUSION_CTL=m
-CONFIG_FUSION_LAN=m
-CONFIG_FUSION_LOGGING=y
-
-#
-# IEEE 1394 (FireWire) support
-#
-CONFIG_FIREWIRE=m
-CONFIG_FIREWIRE_OHCI=m
-CONFIG_FIREWIRE_SBP2=m
-CONFIG_FIREWIRE_NET=m
-CONFIG_FIREWIRE_NOSY=m
-# end of IEEE 1394 (FireWire) support
-
-CONFIG_MACINTOSH_DRIVERS=y
-CONFIG_MAC_EMUMOUSEBTN=m
-CONFIG_NETDEVICES=y
-CONFIG_MII=m
-CONFIG_NET_CORE=y
-CONFIG_BONDING=m
-CONFIG_DUMMY=m
-CONFIG_WIREGUARD=m
-# CONFIG_WIREGUARD_DEBUG is not set
-CONFIG_EQUALIZER=m
-CONFIG_NET_FC=y
-CONFIG_IFB=m
-CONFIG_NET_TEAM=m
-CONFIG_NET_TEAM_MODE_BROADCAST=m
-CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
-CONFIG_NET_TEAM_MODE_RANDOM=m
-CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
-CONFIG_NET_TEAM_MODE_LOADBALANCE=m
-CONFIG_MACVLAN=m
-CONFIG_MACVTAP=m
-CONFIG_IPVLAN_L3S=y
-CONFIG_IPVLAN=m
-CONFIG_IPVTAP=m
-CONFIG_VXLAN=m
-CONFIG_GENEVE=m
-CONFIG_BAREUDP=m
-CONFIG_GTP=m
-CONFIG_MACSEC=m
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_NTB_NETDEV=m
-CONFIG_RIONET=m
-CONFIG_RIONET_TX_SIZE=128
-CONFIG_RIONET_RX_SIZE=128
-CONFIG_TUN=y
-CONFIG_TAP=m
-# CONFIG_TUN_VNET_CROSS_LE is not set
-CONFIG_VETH=m
-CONFIG_VIRTIO_NET=y
-CONFIG_NLMON=m
-CONFIG_NET_VRF=m
-CONFIG_VSOCKMON=m
-CONFIG_MHI_NET=m
-CONFIG_SUNGEM_PHY=m
-CONFIG_ARCNET=m
-CONFIG_ARCNET_1201=m
-CONFIG_ARCNET_1051=m
-CONFIG_ARCNET_RAW=m
-CONFIG_ARCNET_CAP=m
-CONFIG_ARCNET_COM90xx=m
-CONFIG_ARCNET_COM90xxIO=m
-CONFIG_ARCNET_RIM_I=m
-CONFIG_ARCNET_COM20020=m
-CONFIG_ARCNET_COM20020_ISA=m
-CONFIG_ARCNET_COM20020_PCI=m
-CONFIG_ARCNET_COM20020_CS=m
-CONFIG_ATM_DRIVERS=y
-CONFIG_ATM_DUMMY=m
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-# CONFIG_ATM_ENI_DEBUG is not set
-# CONFIG_ATM_ENI_TUNE_BURST is not set
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-# CONFIG_ATM_NICSTAR_USE_SUNI is not set
-# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-# CONFIG_ATM_FORE200E_USE_TASKLET is not set
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-CONFIG_ATM_HE=m
-CONFIG_ATM_HE_USE_SUNI=y
-CONFIG_ATM_SOLOS=m
-CONFIG_CAIF_DRIVERS=y
-CONFIG_CAIF_TTY=m
-CONFIG_CAIF_HSI=m
-CONFIG_CAIF_VIRTIO=m
-
-#
-# Distributed Switch Architecture drivers
-#
-CONFIG_B53=m
-CONFIG_B53_SPI_DRIVER=m
-CONFIG_B53_MDIO_DRIVER=m
-CONFIG_B53_MMAP_DRIVER=m
-CONFIG_B53_SRAB_DRIVER=m
-CONFIG_B53_SERDES=m
-CONFIG_NET_DSA_BCM_SF2=m
-# CONFIG_NET_DSA_LOOP is not set
-CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK=m
-CONFIG_NET_DSA_LANTIQ_GSWIP=m
-CONFIG_NET_DSA_MT7530=m
-CONFIG_NET_DSA_MV88E6060=m
-CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON=m
-CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
-CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C=m
-CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
-CONFIG_NET_DSA_MICROCHIP_KSZ8795=m
-CONFIG_NET_DSA_MICROCHIP_KSZ8795_SPI=m
-CONFIG_NET_DSA_MICROCHIP_KSZ8863_SMI=m
-CONFIG_NET_DSA_MV88E6XXX=m
-# CONFIG_NET_DSA_MV88E6XXX_PTP is not set
-CONFIG_NET_DSA_MSCC_SEVILLE=m
-CONFIG_NET_DSA_AR9331=m
-CONFIG_NET_DSA_SJA1105=m
-CONFIG_NET_DSA_SJA1105_PTP=y
-# CONFIG_NET_DSA_SJA1105_TAS is not set
-CONFIG_NET_DSA_XRS700X=m
-CONFIG_NET_DSA_XRS700X_I2C=m
-CONFIG_NET_DSA_XRS700X_MDIO=m
-CONFIG_NET_DSA_QCA8K=m
-CONFIG_NET_DSA_REALTEK_SMI=m
-CONFIG_NET_DSA_SMSC_LAN9303=m
-CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
-CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
-CONFIG_NET_DSA_VITESSE_VSC73XX=m
-CONFIG_NET_DSA_VITESSE_VSC73XX_SPI=m
-CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM=m
-# end of Distributed Switch Architecture drivers
-
-CONFIG_ETHERNET=y
-CONFIG_MDIO=m
-CONFIG_NET_VENDOR_3COM=y
-CONFIG_EL3=m
-CONFIG_3C515=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_3C589=m
-CONFIG_VORTEX=m
-CONFIG_TYPHOON=m
-CONFIG_NET_VENDOR_ADAPTEC=y
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_NET_VENDOR_AGERE=y
-CONFIG_ET131X=m
-CONFIG_NET_VENDOR_ALACRITECH=y
-CONFIG_SLICOSS=m
-CONFIG_NET_VENDOR_ALTEON=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_ALTERA_TSE=m
-CONFIG_NET_VENDOR_AMAZON=y
-CONFIG_ENA_ETHERNET=m
-CONFIG_NET_VENDOR_AMD=y
-CONFIG_AMD8111_ETH=m
-CONFIG_LANCE=m
-CONFIG_PCNET32=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_NI65=m
-CONFIG_AMD_XGBE=m
-# CONFIG_AMD_XGBE_DCB is not set
-CONFIG_AMD_XGBE_HAVE_ECC=y
-CONFIG_NET_VENDOR_AQUANTIA=y
-CONFIG_AQTION=m
-CONFIG_NET_VENDOR_ARC=y
-CONFIG_NET_VENDOR_ATHEROS=y
-CONFIG_ATL2=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_ALX=m
-CONFIG_NET_VENDOR_BROADCOM=y
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_BCMGENET=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_TIGON3=m
-CONFIG_TIGON3_HWMON=y
-CONFIG_BNX2X=m
-CONFIG_BNX2X_SRIOV=y
-# CONFIG_SYSTEMPORT is not set
-CONFIG_BNXT=m
-CONFIG_BNXT_SRIOV=y
-CONFIG_BNXT_FLOWER_OFFLOAD=y
-# CONFIG_BNXT_DCB is not set
-CONFIG_BNXT_HWMON=y
-CONFIG_NET_VENDOR_BROCADE=y
-CONFIG_BNA=m
-CONFIG_NET_VENDOR_CADENCE=y
-CONFIG_MACB=m
-CONFIG_MACB_USE_HWSTAMP=y
-CONFIG_MACB_PCI=m
-CONFIG_NET_VENDOR_CAVIUM=y
-CONFIG_NET_VENDOR_CHELSIO=y
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3=m
-CONFIG_CHELSIO_T4=m
-CONFIG_CHELSIO_T4_DCB=y
-CONFIG_CHELSIO_T4_FCOE=y
-CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_LIB=m
-CONFIG_CHELSIO_INLINE_CRYPTO=y
-# CONFIG_CHELSIO_IPSEC_INLINE is not set
-CONFIG_NET_VENDOR_CIRRUS=y
-CONFIG_CS89x0=m
-CONFIG_CS89x0_PLATFORM=y
-CONFIG_NET_VENDOR_CISCO=y
-CONFIG_ENIC=m
-# CONFIG_NET_VENDOR_CORTINA is not set
-CONFIG_CX_ECAT=m
-CONFIG_DNET=m
-CONFIG_NET_VENDOR_DEC=y
-CONFIG_NET_TULIP=y
-CONFIG_DE2104X=m
-CONFIG_DE2104X_DSL=0
-CONFIG_TULIP=m
-# CONFIG_TULIP_MWI is not set
-# CONFIG_TULIP_MMIO is not set
-# CONFIG_TULIP_NAPI is not set
-CONFIG_DE4X5=m
-CONFIG_WINBOND_840=m
-CONFIG_DM9102=m
-CONFIG_ULI526X=m
-CONFIG_PCMCIA_XIRCOM=m
-CONFIG_NET_VENDOR_DLINK=y
-CONFIG_DL2K=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_NET_VENDOR_EMULEX=y
-CONFIG_BE2NET=m
-CONFIG_BE2NET_HWMON=y
-CONFIG_BE2NET_BE2=y
-CONFIG_BE2NET_BE3=y
-CONFIG_BE2NET_LANCER=y
-CONFIG_BE2NET_SKYHAWK=y
-CONFIG_NET_VENDOR_EZCHIP=y
-CONFIG_NET_VENDOR_FUJITSU=y
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_NET_VENDOR_GOOGLE=y
-CONFIG_GVE=m
-CONFIG_NET_VENDOR_HUAWEI=y
-CONFIG_HINIC=m
-CONFIG_NET_VENDOR_I825XX=y
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_E100=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_E1000E_HWTS=y
-CONFIG_IGB=m
-CONFIG_IGB_HWMON=y
-CONFIG_IGBVF=m
-CONFIG_IXGB=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_HWMON=y
-CONFIG_IXGBE_DCB=y
-CONFIG_IXGBE_IPSEC=y
-CONFIG_IXGBEVF=m
-CONFIG_IXGBEVF_IPSEC=y
-CONFIG_I40E=m
-CONFIG_I40E_DCB=y
-CONFIG_IAVF=m
-CONFIG_I40EVF=m
-CONFIG_ICE=m
-CONFIG_FM10K=m
-CONFIG_IGC=m
-CONFIG_NET_VENDOR_MICROSOFT=y
-CONFIG_JME=m
-CONFIG_NET_VENDOR_MARVELL=y
-CONFIG_MVMDIO=m
-CONFIG_SKGE=m
-# CONFIG_SKGE_DEBUG is not set
-CONFIG_SKGE_GENESIS=y
-CONFIG_SKY2=m
-# CONFIG_SKY2_DEBUG is not set
-CONFIG_PRESTERA=m
-CONFIG_PRESTERA_PCI=m
-CONFIG_NET_VENDOR_MELLANOX=y
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_EN_DCB=y
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_MLX4_CORE_GEN2=y
-CONFIG_MLX5_CORE=m
-CONFIG_MLX5_ACCEL=y
-# CONFIG_MLX5_FPGA is not set
-CONFIG_MLX5_CORE_EN=y
-CONFIG_MLX5_EN_ARFS=y
-CONFIG_MLX5_EN_RXNFC=y
-CONFIG_MLX5_MPFS=y
-CONFIG_MLX5_ESWITCH=y
-CONFIG_MLX5_CLS_ACT=y
-CONFIG_MLX5_TC_SAMPLE=y
-CONFIG_MLX5_CORE_EN_DCB=y
-# CONFIG_MLX5_CORE_IPOIB is not set
-CONFIG_MLX5_IPSEC=y
-CONFIG_MLX5_EN_IPSEC=y
-CONFIG_MLX5_SW_STEERING=y
-CONFIG_MLX5_SF=y
-CONFIG_MLX5_SF_MANAGER=y
-CONFIG_MLXSW_CORE=m
-CONFIG_MLXSW_CORE_HWMON=y
-CONFIG_MLXSW_CORE_THERMAL=y
-CONFIG_MLXSW_PCI=m
-CONFIG_MLXSW_I2C=m
-CONFIG_MLXSW_SWITCHIB=m
-CONFIG_MLXSW_SWITCHX2=m
-CONFIG_MLXSW_SPECTRUM=m
-CONFIG_MLXSW_SPECTRUM_DCB=y
-CONFIG_MLXSW_MINIMAL=m
-CONFIG_MLXFW=m
-CONFIG_NET_VENDOR_MICREL=y
-CONFIG_KS8842=m
-CONFIG_KS8851=m
-CONFIG_KS8851_MLL=m
-CONFIG_KSZ884X_PCI=m
-CONFIG_NET_VENDOR_MICROCHIP=y
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_ENCX24J600=m
-CONFIG_LAN743X=m
-CONFIG_NET_VENDOR_MICROSEMI=y
-CONFIG_MSCC_OCELOT_SWITCH_LIB=m
-CONFIG_NET_VENDOR_MYRI=y
-CONFIG_MYRI10GE=m
-CONFIG_FEALNX=m
-CONFIG_NET_VENDOR_NATSEMI=y
-CONFIG_NATSEMI=m
-CONFIG_NS83820=m
-CONFIG_NET_VENDOR_NETERION=y
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_NET_VENDOR_NETRONOME=y
-CONFIG_NFP=m
-# CONFIG_NFP_APP_FLOWER is not set
-CONFIG_NFP_APP_ABM_NIC=y
-# CONFIG_NFP_DEBUG is not set
-CONFIG_NET_VENDOR_NI=y
-CONFIG_NI_XGE_MANAGEMENT_ENET=m
-CONFIG_NET_VENDOR_8390=y
-CONFIG_PCMCIA_AXNET=m
-CONFIG_NE2000=m
-CONFIG_NE2K_PCI=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_ULTRA=m
-CONFIG_WD80x3=m
-CONFIG_NET_VENDOR_NVIDIA=y
-CONFIG_FORCEDETH=m
-CONFIG_NET_VENDOR_OKI=y
-CONFIG_PCH_GBE=m
-CONFIG_ETHOC=m
-CONFIG_NET_VENDOR_PACKET_ENGINES=y
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_NET_VENDOR_PENSANDO=y
-CONFIG_NET_VENDOR_QLOGIC=y
-CONFIG_QLA3XXX=m
-CONFIG_QLCNIC=m
-CONFIG_QLCNIC_SRIOV=y
-CONFIG_QLCNIC_DCB=y
-CONFIG_QLCNIC_HWMON=y
-CONFIG_NETXEN_NIC=m
-CONFIG_QED=m
-CONFIG_QED_LL2=y
-CONFIG_QED_SRIOV=y
-CONFIG_QEDE=m
-CONFIG_QED_ISCSI=y
-CONFIG_QED_FCOE=y
-CONFIG_QED_OOO=y
-CONFIG_NET_VENDOR_QUALCOMM=y
-CONFIG_QCOM_EMAC=m
-CONFIG_RMNET=m
-CONFIG_NET_VENDOR_RDC=y
-CONFIG_R6040=m
-CONFIG_NET_VENDOR_REALTEK=y
-CONFIG_ATP=m
-CONFIG_8139CP=m
-CONFIG_8139TOO=m
-CONFIG_8139TOO_PIO=y
-# CONFIG_8139TOO_TUNE_TWISTER is not set
-CONFIG_8139TOO_8129=y
-# CONFIG_8139_OLD_RX_RESET is not set
-CONFIG_R8169=m
-CONFIG_NET_VENDOR_RENESAS=y
-CONFIG_NET_VENDOR_ROCKER=y
-CONFIG_ROCKER=m
-CONFIG_NET_VENDOR_SAMSUNG=y
-CONFIG_SXGBE_ETH=m
-CONFIG_NET_VENDOR_SEEQ=y
-CONFIG_NET_VENDOR_SOLARFLARE=y
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_SFC_MCDI_MON=y
-CONFIG_SFC_SRIOV=y
-CONFIG_SFC_MCDI_LOGGING=y
-CONFIG_SFC_FALCON=m
-CONFIG_SFC_FALCON_MTD=y
-CONFIG_NET_VENDOR_SILAN=y
-CONFIG_SC92031=m
-CONFIG_NET_VENDOR_SIS=y
-CONFIG_SIS900=m
-CONFIG_SIS190=m
-CONFIG_NET_VENDOR_SMSC=y
-CONFIG_SMC9194=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_EPIC100=m
-CONFIG_SMSC911X=m
-CONFIG_SMSC9420=m
-# CONFIG_NET_VENDOR_SOCIONEXT is not set
-CONFIG_NET_VENDOR_STMICRO=y
-CONFIG_STMMAC_ETH=m
-# CONFIG_STMMAC_SELFTESTS is not set
-CONFIG_STMMAC_PLATFORM=m
-CONFIG_DWMAC_GENERIC=m
-CONFIG_DWMAC_INTEL=m
-# CONFIG_STMMAC_PCI is not set
-CONFIG_NET_VENDOR_SUN=y
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
-CONFIG_NIU=m
-CONFIG_NET_VENDOR_SYNOPSYS=y
-CONFIG_DWC_XLGMAC=m
-CONFIG_DWC_XLGMAC_PCI=m
-CONFIG_NET_VENDOR_TEHUTI=y
-CONFIG_TEHUTI=m
-CONFIG_NET_VENDOR_TI=y
-# CONFIG_TI_CPSW_PHY_SEL is not set
-CONFIG_TLAN=m
-CONFIG_NET_VENDOR_VIA=y
-CONFIG_VIA_RHINE=m
-CONFIG_VIA_RHINE_MMIO=y
-CONFIG_VIA_VELOCITY=m
-CONFIG_NET_VENDOR_WIZNET=y
-CONFIG_WIZNET_W5100=m
-CONFIG_WIZNET_W5300=m
-# CONFIG_WIZNET_BUS_DIRECT is not set
-# CONFIG_WIZNET_BUS_INDIRECT is not set
-CONFIG_WIZNET_BUS_ANY=y
-# CONFIG_WIZNET_W5100_SPI is not set
-CONFIG_NET_VENDOR_XILINX=y
-CONFIG_XILINX_EMACLITE=m
-CONFIG_XILINX_AXI_EMAC=m
-CONFIG_XILINX_LL_TEMAC=m
-CONFIG_NET_VENDOR_XIRCOM=y
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_FDDI=y
-CONFIG_DEFXX=m
-CONFIG_SKFP=m
-# CONFIG_HIPPI is not set
-CONFIG_NET_SB1000=m
-CONFIG_PHYLINK=m
-CONFIG_PHYLIB=y
-CONFIG_SWPHY=y
-# CONFIG_LED_TRIGGER_PHY is not set
-CONFIG_FIXED_PHY=y
-CONFIG_SFP=m
-
-#
-# MII PHY device drivers
-#
-CONFIG_AMD_PHY=m
-CONFIG_ADIN_PHY=m
-CONFIG_AQUANTIA_PHY=m
-CONFIG_AX88796B_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_BCM54140_PHY=m
-CONFIG_BCM7XXX_PHY=m
-CONFIG_BCM84881_PHY=m
-CONFIG_BCM87XX_PHY=m
-CONFIG_BCM_NET_PHYLIB=m
-CONFIG_CICADA_PHY=m
-CONFIG_CORTINA_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_INTEL_XWAY_PHY=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_MARVELL_PHY=m
-CONFIG_MARVELL_10G_PHY=m
-CONFIG_MARVELL_88X2222_PHY=m
-CONFIG_MICREL_PHY=m
-CONFIG_MICROCHIP_PHY=m
-CONFIG_MICROCHIP_T1_PHY=m
-CONFIG_MICROSEMI_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_NXP_C45_TJA11XX_PHY=m
-CONFIG_NXP_TJA11XX_PHY=m
-CONFIG_AT803X_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_RENESAS_PHY=m
-CONFIG_ROCKCHIP_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_STE10XP=m
-CONFIG_TERANETICS_PHY=m
-CONFIG_DP83822_PHY=m
-CONFIG_DP83TC811_PHY=m
-CONFIG_DP83848_PHY=m
-CONFIG_DP83867_PHY=m
-CONFIG_DP83869_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_XILINX_GMII2RGMII=m
-CONFIG_MICREL_KS8995MA=m
-CONFIG_MDIO_DEVICE=y
-CONFIG_MDIO_BUS=y
-CONFIG_MDIO_DEVRES=y
-CONFIG_MDIO_BITBANG=m
-CONFIG_MDIO_BCM_UNIMAC=m
-CONFIG_MDIO_GPIO=m
-CONFIG_MDIO_I2C=m
-CONFIG_MDIO_MVUSB=m
-CONFIG_MDIO_MSCC_MIIM=m
-
-#
-# MDIO Multiplexers
-#
-
-#
-# PCS device drivers
-#
-CONFIG_PCS_XPCS=m
-CONFIG_PCS_LYNX=m
-# end of PCS device drivers
-
-CONFIG_PLIP=m
-CONFIG_PPP=y
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOATM=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOL2TP=m
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_SLIP=m
-CONFIG_SLHC=y
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-CONFIG_USB_NET_DRIVERS=m
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_RTL8152=m
-CONFIG_USB_LAN78XX=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_AX88179_178A=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_CDC_EEM=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_HUAWEI_CDC_NCM=m
-CONFIG_USB_NET_CDC_MBIM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SR9700=m
-CONFIG_USB_NET_SR9800=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_NET_QMI_WWAN=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_USB_NET_CH9200=m
-CONFIG_USB_NET_AQC111=m
-CONFIG_USB_RTL8153_ECM=m
-CONFIG_WLAN=y
-CONFIG_WLAN_VENDOR_ADMTEK=y
-CONFIG_ADM8211=m
-CONFIG_ATH_COMMON=m
-CONFIG_WLAN_VENDOR_ATH=y
-# CONFIG_ATH_DEBUG is not set
-CONFIG_ATH5K=m
-# CONFIG_ATH5K_DEBUG is not set
-# CONFIG_ATH5K_TRACER is not set
-CONFIG_ATH5K_PCI=y
-CONFIG_ATH9K_HW=m
-CONFIG_ATH9K_COMMON=m
-CONFIG_ATH9K_COMMON_DEBUG=y
-CONFIG_ATH9K_BTCOEX_SUPPORT=y
-CONFIG_ATH9K=m
-CONFIG_ATH9K_PCI=y
-CONFIG_ATH9K_AHB=y
-CONFIG_ATH9K_DEBUGFS=y
-CONFIG_ATH9K_STATION_STATISTICS=y
-# CONFIG_ATH9K_DYNACK is not set
-CONFIG_ATH9K_WOW=y
-CONFIG_ATH9K_RFKILL=y
-CONFIG_ATH9K_CHANNEL_CONTEXT=y
-CONFIG_ATH9K_PCOEM=y
-CONFIG_ATH9K_PCI_NO_EEPROM=m
-CONFIG_ATH9K_HTC=m
-CONFIG_ATH9K_HTC_DEBUGFS=y
-CONFIG_ATH9K_HWRNG=y
-# CONFIG_ATH9K_COMMON_SPECTRAL is not set
-CONFIG_CARL9170=m
-CONFIG_CARL9170_LEDS=y
-# CONFIG_CARL9170_DEBUGFS is not set
-CONFIG_CARL9170_WPC=y
-CONFIG_CARL9170_HWRNG=y
-CONFIG_ATH6KL=m
-CONFIG_ATH6KL_SDIO=m
-CONFIG_ATH6KL_USB=m
-# CONFIG_ATH6KL_DEBUG is not set
-# CONFIG_ATH6KL_TRACING is not set
-CONFIG_AR5523=m
-CONFIG_WIL6210=m
-CONFIG_WIL6210_ISR_COR=y
-CONFIG_WIL6210_TRACING=y
-CONFIG_WIL6210_DEBUGFS=y
-CONFIG_ATH10K=m
-CONFIG_ATH10K_CE=y
-CONFIG_ATH10K_PCI=m
-CONFIG_ATH10K_SDIO=m
-CONFIG_ATH10K_USB=m
-# CONFIG_ATH10K_DEBUG is not set
-CONFIG_ATH10K_DEBUGFS=y
-# CONFIG_ATH10K_SPECTRAL is not set
-CONFIG_ATH10K_TRACING=y
-CONFIG_WCN36XX=m
-# CONFIG_WCN36XX_DEBUGFS is not set
-CONFIG_ATH11K=m
-CONFIG_ATH11K_PCI=m
-# CONFIG_ATH11K_DEBUG is not set
-# CONFIG_ATH11K_DEBUGFS is not set
-# CONFIG_ATH11K_TRACING is not set
-CONFIG_WLAN_VENDOR_ATMEL=y
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_PCMCIA_ATMEL=m
-CONFIG_AT76C50X_USB=m
-CONFIG_WLAN_VENDOR_BROADCOM=y
-CONFIG_B43=m
-CONFIG_B43_BCMA=y
-CONFIG_B43_SSB=y
-CONFIG_B43_BUSES_BCMA_AND_SSB=y
-# CONFIG_B43_BUSES_BCMA is not set
-# CONFIG_B43_BUSES_SSB is not set
-CONFIG_B43_PCI_AUTOSELECT=y
-CONFIG_B43_PCICORE_AUTOSELECT=y
-# CONFIG_B43_SDIO is not set
-CONFIG_B43_BCMA_PIO=y
-CONFIG_B43_PIO=y
-CONFIG_B43_PHY_G=y
-CONFIG_B43_PHY_N=y
-CONFIG_B43_PHY_LP=y
-CONFIG_B43_PHY_HT=y
-CONFIG_B43_LEDS=y
-CONFIG_B43_HWRNG=y
-# CONFIG_B43_DEBUG is not set
-CONFIG_B43LEGACY=m
-CONFIG_B43LEGACY_PCI_AUTOSELECT=y
-CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
-CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_HWRNG=y
-# CONFIG_B43LEGACY_DEBUG is not set
-CONFIG_B43LEGACY_DMA=y
-CONFIG_B43LEGACY_PIO=y
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# CONFIG_B43LEGACY_DMA_MODE is not set
-# CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMSMAC=m
-CONFIG_BRCMFMAC=m
-CONFIG_BRCMFMAC_PROTO_BCDC=y
-CONFIG_BRCMFMAC_PROTO_MSGBUF=y
-CONFIG_BRCMFMAC_SDIO=y
-CONFIG_BRCMFMAC_USB=y
-CONFIG_BRCMFMAC_PCIE=y
-CONFIG_BRCM_TRACING=y
-# CONFIG_BRCMDBG is not set
-CONFIG_WLAN_VENDOR_CISCO=y
-CONFIG_AIRO=m
-CONFIG_AIRO_CS=m
-CONFIG_WLAN_VENDOR_INTEL=y
-CONFIG_IPW2100=m
-CONFIG_IPW2100_MONITOR=y
-# CONFIG_IPW2100_DEBUG is not set
-CONFIG_IPW2200=m
-CONFIG_IPW2200_MONITOR=y
-CONFIG_IPW2200_RADIOTAP=y
-CONFIG_IPW2200_PROMISCUOUS=y
-CONFIG_IPW2200_QOS=y
-# CONFIG_IPW2200_DEBUG is not set
-CONFIG_LIBIPW=m
-# CONFIG_LIBIPW_DEBUG is not set
-CONFIG_IWLEGACY=m
-CONFIG_IWL4965=m
-CONFIG_IWL3945=m
-
-#
-# iwl3945 / iwl4965 Debugging Options
-#
-# CONFIG_IWLEGACY_DEBUG is not set
-CONFIG_IWLEGACY_DEBUGFS=y
-# end of iwl3945 / iwl4965 Debugging Options
-
-CONFIG_IWLWIFI=m
-CONFIG_IWLWIFI_LEDS=y
-CONFIG_IWLDVM=m
-CONFIG_IWLMVM=m
-CONFIG_IWLWIFI_OPMODE_MODULAR=y
-# CONFIG_IWLWIFI_BCAST_FILTERING is not set
-
-#
-# Debugging Options
-#
-# CONFIG_IWLWIFI_DEBUG is not set
-CONFIG_IWLWIFI_DEBUGFS=y
-CONFIG_IWLWIFI_DEVICE_TRACING=y
-# end of Debugging Options
-
-CONFIG_WLAN_VENDOR_INTERSIL=y
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-CONFIG_HOSTAP_FIRMWARE_NVRAM=y
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
-CONFIG_HERMES=m
-# CONFIG_HERMES_PRISM is not set
-CONFIG_HERMES_CACHE_FW_ON_INIT=y
-CONFIG_PLX_HERMES=m
-CONFIG_TMD_HERMES=m
-CONFIG_NORTEL_HERMES=m
-CONFIG_PCMCIA_HERMES=m
-CONFIG_PCMCIA_SPECTRUM=m
-CONFIG_ORINOCO_USB=m
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-CONFIG_P54_PCI=m
-CONFIG_P54_SPI=m
-# CONFIG_P54_SPI_DEFAULT_EEPROM is not set
-CONFIG_P54_LEDS=y
-# CONFIG_PRISM54 is not set
-CONFIG_WLAN_VENDOR_MARVELL=y
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_CS=m
-CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_LIBERTAS_MESH=y
-CONFIG_LIBERTAS_THINFIRM=m
-# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_MWIFIEX=m
-CONFIG_MWIFIEX_SDIO=m
-CONFIG_MWIFIEX_PCIE=m
-CONFIG_MWIFIEX_USB=m
-CONFIG_MWL8K=m
-CONFIG_WLAN_VENDOR_MEDIATEK=y
-CONFIG_MT7601U=m
-# CONFIG_MT76x0U is not set
-# CONFIG_MT76x0E is not set
-# CONFIG_MT76x2E is not set
-# CONFIG_MT76x2U is not set
-# CONFIG_MT7603E is not set
-# CONFIG_MT7615E is not set
-# CONFIG_MT7663U is not set
-# CONFIG_MT7663S is not set
-# CONFIG_MT7915E is not set
-# CONFIG_MT7921E is not set
-CONFIG_WLAN_VENDOR_MICROCHIP=y
-CONFIG_WILC1000=m
-CONFIG_WILC1000_SDIO=m
-CONFIG_WILC1000_SPI=m
-# CONFIG_WILC1000_HW_OOB_INTR is not set
-CONFIG_WLAN_VENDOR_RALINK=y
-CONFIG_RT2X00=m
-CONFIG_RT2400PCI=m
-CONFIG_RT2500PCI=m
-CONFIG_RT61PCI=m
-CONFIG_RT2800PCI=m
-CONFIG_RT2800PCI_RT33XX=y
-CONFIG_RT2800PCI_RT35XX=y
-CONFIG_RT2800PCI_RT53XX=y
-CONFIG_RT2800PCI_RT3290=y
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT33XX=y
-CONFIG_RT2800USB_RT35XX=y
-CONFIG_RT2800USB_RT3573=y
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_RT55XX=y
-CONFIG_RT2800USB_UNKNOWN=y
-CONFIG_RT2800_LIB=m
-CONFIG_RT2800_LIB_MMIO=m
-CONFIG_RT2X00_LIB_MMIO=m
-CONFIG_RT2X00_LIB_PCI=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_LEDS=y
-# CONFIG_RT2X00_LIB_DEBUGFS is not set
-# CONFIG_RT2X00_DEBUG is not set
-CONFIG_WLAN_VENDOR_REALTEK=y
-CONFIG_RTL8180=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-CONFIG_RTL_CARDS=m
-CONFIG_RTL8192CE=m
-CONFIG_RTL8192SE=m
-CONFIG_RTL8192DE=m
-CONFIG_RTL8723AE=m
-CONFIG_RTL8723BE=m
-CONFIG_RTL8188EE=m
-CONFIG_RTL8192EE=m
-CONFIG_RTL8821AE=m
-CONFIG_RTL8192CU=m
-CONFIG_RTLWIFI=m
-CONFIG_RTLWIFI_PCI=m
-CONFIG_RTLWIFI_USB=m
-# CONFIG_RTLWIFI_DEBUG is not set
-CONFIG_RTL8192C_COMMON=m
-CONFIG_RTL8723_COMMON=m
-CONFIG_RTLBTCOEXIST=m
-CONFIG_RTL8XXXU=m
-CONFIG_RTL8XXXU_UNTESTED=y
-# CONFIG_RTW88 is not set
-CONFIG_WLAN_VENDOR_RSI=y
-CONFIG_RSI_91X=m
-# CONFIG_RSI_DEBUGFS is not set
-CONFIG_RSI_SDIO=m
-CONFIG_RSI_USB=m
-CONFIG_RSI_COEX=y
-CONFIG_WLAN_VENDOR_ST=y
-CONFIG_CW1200=m
-CONFIG_CW1200_WLAN_SDIO=m
-CONFIG_CW1200_WLAN_SPI=m
-CONFIG_WLAN_VENDOR_TI=y
-CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL12XX=m
-CONFIG_WL18XX=m
-CONFIG_WLCORE=m
-CONFIG_WLCORE_SDIO=m
-CONFIG_WILINK_PLATFORM_DATA=y
-CONFIG_WLAN_VENDOR_ZYDAS=y
-CONFIG_USB_ZD1201=m
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_WLAN_VENDOR_QUANTENNA=y
-CONFIG_QTNFMAC=m
-CONFIG_QTNFMAC_PCIE=m
-CONFIG_PCMCIA_RAYCS=m
-CONFIG_PCMCIA_WL3501=m
-CONFIG_MAC80211_HWSIM=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-CONFIG_VIRT_WIFI=m
-CONFIG_WAN=y
-CONFIG_HOSTESS_SV11=m
-CONFIG_COSA=m
-CONFIG_LANMEDIA=m
-CONFIG_SEALEVEL_4021=m
-CONFIG_HDLC=m
-CONFIG_HDLC_RAW=m
-CONFIG_HDLC_RAW_ETH=m
-CONFIG_HDLC_CISCO=m
-CONFIG_HDLC_FR=m
-CONFIG_HDLC_PPP=m
-CONFIG_HDLC_X25=m
-CONFIG_PCI200SYN=m
-CONFIG_WANXL=m
-CONFIG_PC300TOO=m
-CONFIG_N2=m
-CONFIG_C101=m
-CONFIG_FARSYNC=m
-CONFIG_LAPBETHER=m
-CONFIG_SBNI=m
-# CONFIG_SBNI_MULTILINE is not set
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKELB=m
-CONFIG_IEEE802154_AT86RF230=m
-CONFIG_IEEE802154_AT86RF230_DEBUGFS=y
-CONFIG_IEEE802154_MRF24J40=m
-CONFIG_IEEE802154_CC2520=m
-CONFIG_IEEE802154_ATUSB=m
-CONFIG_IEEE802154_ADF7242=m
-CONFIG_IEEE802154_CA8210=m
-# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
-CONFIG_IEEE802154_MCR20A=m
-# CONFIG_IEEE802154_HWSIM is not set
-CONFIG_WWAN=y
-CONFIG_WWAN_CORE=y
-CONFIG_MHI_WWAN_CTRL=m
-CONFIG_XEN_NETDEV_FRONTEND=y
-CONFIG_XEN_NETDEV_BACKEND=m
-CONFIG_VMXNET3=m
-CONFIG_FUJITSU_ES=m
-CONFIG_USB4_NET=m
-CONFIG_HYPERV_NET=m
-CONFIG_NETDEVSIM=m
-CONFIG_NET_FAILOVER=y
-CONFIG_ISDN=y
-CONFIG_ISDN_CAPI=y
-CONFIG_CAPI_TRACE=y
-CONFIG_ISDN_CAPI_MIDDLEWARE=y
-CONFIG_MISDN=m
-CONFIG_MISDN_DSP=m
-CONFIG_MISDN_L1OIP=m
-
-#
-# mISDN hardware drivers
-#
-CONFIG_MISDN_HFCPCI=m
-CONFIG_MISDN_HFCMULTI=m
-CONFIG_MISDN_HFCUSB=m
-CONFIG_MISDN_AVMFRITZ=m
-CONFIG_MISDN_SPEEDFAX=m
-CONFIG_MISDN_INFINEON=m
-CONFIG_MISDN_W6692=m
-CONFIG_MISDN_NETJET=m
-CONFIG_MISDN_HDLC=m
-CONFIG_MISDN_IPAC=m
-CONFIG_MISDN_ISAR=m
-CONFIG_NVM=y
-CONFIG_NVM_PBLK=m
-# CONFIG_NVM_PBLK_DEBUG is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_LEDS=m
-CONFIG_INPUT_FF_MEMLESS=m
-CONFIG_INPUT_SPARSEKMAP=m
-CONFIG_INPUT_MATRIXKMAP=m
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ADC=m
-CONFIG_KEYBOARD_ADP5520=m
-CONFIG_KEYBOARD_ADP5588=m
-CONFIG_KEYBOARD_ADP5589=m
-CONFIG_KEYBOARD_APPLESPI=m
-CONFIG_KEYBOARD_ATKBD=y
-CONFIG_KEYBOARD_QT1050=m
-CONFIG_KEYBOARD_QT1070=m
-CONFIG_KEYBOARD_QT2160=m
-CONFIG_KEYBOARD_DLINK_DIR685=m
-CONFIG_KEYBOARD_LKKBD=m
-CONFIG_KEYBOARD_GPIO=m
-CONFIG_KEYBOARD_GPIO_POLLED=m
-CONFIG_KEYBOARD_TCA6416=m
-CONFIG_KEYBOARD_TCA8418=m
-CONFIG_KEYBOARD_MATRIX=m
-CONFIG_KEYBOARD_LM8323=m
-CONFIG_KEYBOARD_LM8333=m
-CONFIG_KEYBOARD_MAX7359=m
-CONFIG_KEYBOARD_MCS=m
-CONFIG_KEYBOARD_MPR121=m
-CONFIG_KEYBOARD_NEWTON=m
-CONFIG_KEYBOARD_OPENCORES=m
-CONFIG_KEYBOARD_SAMSUNG=m
-CONFIG_KEYBOARD_STOWAWAY=m
-CONFIG_KEYBOARD_SUNKBD=m
-CONFIG_KEYBOARD_IQS62X=m
-CONFIG_KEYBOARD_TM2_TOUCHKEY=m
-CONFIG_KEYBOARD_TWL4030=m
-CONFIG_KEYBOARD_XTKBD=m
-CONFIG_KEYBOARD_CROS_EC=m
-CONFIG_KEYBOARD_MTK_PMIC=m
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=m
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_BYD=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
-CONFIG_MOUSE_PS2_CYPRESS=y
-CONFIG_MOUSE_PS2_LIFEBOOK=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-CONFIG_MOUSE_PS2_ELANTECH=y
-CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
-CONFIG_MOUSE_PS2_SENTELIC=y
-CONFIG_MOUSE_PS2_TOUCHKIT=y
-CONFIG_MOUSE_PS2_FOCALTECH=y
-CONFIG_MOUSE_PS2_VMMOUSE=y
-CONFIG_MOUSE_PS2_SMBUS=y
-CONFIG_MOUSE_SERIAL=m
-CONFIG_MOUSE_APPLETOUCH=m
-CONFIG_MOUSE_BCM5974=m
-CONFIG_MOUSE_CYAPA=m
-CONFIG_MOUSE_ELAN_I2C=m
-CONFIG_MOUSE_ELAN_I2C_I2C=y
-CONFIG_MOUSE_ELAN_I2C_SMBUS=y
-# CONFIG_MOUSE_INPORT is not set
-CONFIG_MOUSE_LOGIBM=m
-CONFIG_MOUSE_PC110PAD=m
-CONFIG_MOUSE_VSXXXAA=m
-CONFIG_MOUSE_GPIO=m
-CONFIG_MOUSE_SYNAPTICS_I2C=m
-CONFIG_MOUSE_SYNAPTICS_USB=m
-CONFIG_INPUT_JOYSTICK=y
-CONFIG_JOYSTICK_ANALOG=m
-CONFIG_JOYSTICK_A3D=m
-CONFIG_JOYSTICK_ADC=m
-CONFIG_JOYSTICK_ADI=m
-CONFIG_JOYSTICK_COBRA=m
-CONFIG_JOYSTICK_GF2K=m
-CONFIG_JOYSTICK_GRIP=m
-CONFIG_JOYSTICK_GRIP_MP=m
-CONFIG_JOYSTICK_GUILLEMOT=m
-CONFIG_JOYSTICK_INTERACT=m
-CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_TMDC=m
-CONFIG_JOYSTICK_IFORCE=m
-CONFIG_JOYSTICK_IFORCE_USB=m
-CONFIG_JOYSTICK_IFORCE_232=m
-CONFIG_JOYSTICK_WARRIOR=m
-CONFIG_JOYSTICK_MAGELLAN=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_STINGER=m
-CONFIG_JOYSTICK_TWIDJOY=m
-CONFIG_JOYSTICK_ZHENHUA=m
-CONFIG_JOYSTICK_DB9=m
-CONFIG_JOYSTICK_GAMECON=m
-CONFIG_JOYSTICK_TURBOGRAFX=m
-CONFIG_JOYSTICK_AS5011=m
-CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_XPAD_FF=y
-CONFIG_JOYSTICK_XPAD_LEDS=y
-CONFIG_JOYSTICK_WALKERA0701=m
-CONFIG_JOYSTICK_PSXPAD_SPI=m
-# CONFIG_JOYSTICK_PSXPAD_SPI_FF is not set
-CONFIG_JOYSTICK_PXRC=m
-CONFIG_JOYSTICK_FSIA6B=m
-CONFIG_INPUT_TABLET=y
-CONFIG_TABLET_USB_ACECAD=m
-CONFIG_TABLET_USB_AIPTEK=m
-CONFIG_TABLET_USB_HANWANG=m
-CONFIG_TABLET_USB_KBTAB=m
-CONFIG_TABLET_USB_PEGASUS=m
-CONFIG_TABLET_SERIAL_WACOM4=m
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_88PM860X=m
-CONFIG_TOUCHSCREEN_ADS7846=m
-CONFIG_TOUCHSCREEN_AD7877=m
-CONFIG_TOUCHSCREEN_AD7879=m
-CONFIG_TOUCHSCREEN_AD7879_I2C=m
-CONFIG_TOUCHSCREEN_AD7879_SPI=m
-CONFIG_TOUCHSCREEN_ADC=m
-CONFIG_TOUCHSCREEN_ATMEL_MXT=m
-# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
-CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
-CONFIG_TOUCHSCREEN_BU21013=m
-CONFIG_TOUCHSCREEN_BU21029=m
-CONFIG_TOUCHSCREEN_CHIPONE_ICN8505=m
-CONFIG_TOUCHSCREEN_CY8CTMA140=m
-CONFIG_TOUCHSCREEN_CY8CTMG110=m
-CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
-CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
-CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
-CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
-CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
-CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
-CONFIG_TOUCHSCREEN_DA9034=m
-CONFIG_TOUCHSCREEN_DA9052=m
-CONFIG_TOUCHSCREEN_DYNAPRO=m
-CONFIG_TOUCHSCREEN_HAMPSHIRE=m
-CONFIG_TOUCHSCREEN_EETI=m
-CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
-CONFIG_TOUCHSCREEN_EXC3000=m
-CONFIG_TOUCHSCREEN_FUJITSU=m
-CONFIG_TOUCHSCREEN_GOODIX=m
-CONFIG_TOUCHSCREEN_HIDEEP=m
-CONFIG_TOUCHSCREEN_HYCON_HY46XX=m
-CONFIG_TOUCHSCREEN_ILI210X=m
-CONFIG_TOUCHSCREEN_ILITEK=m
-CONFIG_TOUCHSCREEN_S6SY761=m
-CONFIG_TOUCHSCREEN_GUNZE=m
-CONFIG_TOUCHSCREEN_EKTF2127=m
-CONFIG_TOUCHSCREEN_ELAN=m
-CONFIG_TOUCHSCREEN_ELO=m
-CONFIG_TOUCHSCREEN_WACOM_W8001=m
-CONFIG_TOUCHSCREEN_WACOM_I2C=m
-CONFIG_TOUCHSCREEN_MAX11801=m
-CONFIG_TOUCHSCREEN_MCS5000=m
-CONFIG_TOUCHSCREEN_MMS114=m
-CONFIG_TOUCHSCREEN_MELFAS_MIP4=m
-CONFIG_TOUCHSCREEN_MSG2638=m
-CONFIG_TOUCHSCREEN_MTOUCH=m
-CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MK712=m
-CONFIG_TOUCHSCREEN_HTCPEN=m
-CONFIG_TOUCHSCREEN_PENMOUNT=m
-CONFIG_TOUCHSCREEN_EDT_FT5X06=m
-CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
-CONFIG_TOUCHSCREEN_TOUCHWIN=m
-CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
-CONFIG_TOUCHSCREEN_UCB1400=m
-CONFIG_TOUCHSCREEN_PIXCIR=m
-CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
-CONFIG_TOUCHSCREEN_WM831X=m
-CONFIG_TOUCHSCREEN_WM97XX=m
-CONFIG_TOUCHSCREEN_WM9705=y
-CONFIG_TOUCHSCREEN_WM9712=y
-CONFIG_TOUCHSCREEN_WM9713=y
-CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-CONFIG_TOUCHSCREEN_MC13783=m
-CONFIG_TOUCHSCREEN_USB_EGALAX=y
-CONFIG_TOUCHSCREEN_USB_PANJIT=y
-CONFIG_TOUCHSCREEN_USB_3M=y
-CONFIG_TOUCHSCREEN_USB_ITM=y
-CONFIG_TOUCHSCREEN_USB_ETURBO=y
-CONFIG_TOUCHSCREEN_USB_GUNZE=y
-CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
-CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
-CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
-CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
-CONFIG_TOUCHSCREEN_USB_GOTOP=y
-CONFIG_TOUCHSCREEN_USB_JASTEC=y
-CONFIG_TOUCHSCREEN_USB_ELO=y
-CONFIG_TOUCHSCREEN_USB_E2I=y
-CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
-CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
-CONFIG_TOUCHSCREEN_USB_NEXIO=y
-CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
-CONFIG_TOUCHSCREEN_TOUCHIT213=m
-CONFIG_TOUCHSCREEN_TSC_SERIO=m
-CONFIG_TOUCHSCREEN_TSC200X_CORE=m
-CONFIG_TOUCHSCREEN_TSC2004=m
-CONFIG_TOUCHSCREEN_TSC2005=m
-CONFIG_TOUCHSCREEN_TSC2007=m
-# CONFIG_TOUCHSCREEN_TSC2007_IIO is not set
-CONFIG_TOUCHSCREEN_PCAP=m
-CONFIG_TOUCHSCREEN_RM_TS=m
-CONFIG_TOUCHSCREEN_SILEAD=m
-CONFIG_TOUCHSCREEN_SIS_I2C=m
-CONFIG_TOUCHSCREEN_ST1232=m
-CONFIG_TOUCHSCREEN_STMFTS=m
-CONFIG_TOUCHSCREEN_SUR40=m
-CONFIG_TOUCHSCREEN_SURFACE3_SPI=m
-CONFIG_TOUCHSCREEN_SX8654=m
-CONFIG_TOUCHSCREEN_TPS6507X=m
-CONFIG_TOUCHSCREEN_ZET6223=m
-CONFIG_TOUCHSCREEN_ZFORCE=m
-CONFIG_TOUCHSCREEN_ROHM_BU21023=m
-CONFIG_TOUCHSCREEN_IQS5XX=m
-CONFIG_TOUCHSCREEN_ZINITIX=m
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_88PM860X_ONKEY=m
-CONFIG_INPUT_88PM80X_ONKEY=m
-CONFIG_INPUT_AD714X=m
-CONFIG_INPUT_AD714X_I2C=m
-CONFIG_INPUT_AD714X_SPI=m
-CONFIG_INPUT_ARIZONA_HAPTICS=m
-CONFIG_INPUT_ATC260X_ONKEY=m
-CONFIG_INPUT_BMA150=m
-CONFIG_INPUT_E3X0_BUTTON=m
-CONFIG_INPUT_PCSPKR=m
-CONFIG_INPUT_MAX77693_HAPTIC=m
-CONFIG_INPUT_MAX8925_ONKEY=m
-CONFIG_INPUT_MAX8997_HAPTIC=m
-CONFIG_INPUT_MC13783_PWRBUTTON=m
-CONFIG_INPUT_MMA8450=m
-CONFIG_INPUT_APANEL=m
-CONFIG_INPUT_GPIO_BEEPER=m
-CONFIG_INPUT_GPIO_DECODER=m
-CONFIG_INPUT_GPIO_VIBRA=m
-CONFIG_INPUT_WISTRON_BTNS=m
-CONFIG_INPUT_ATLAS_BTNS=m
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-CONFIG_INPUT_KXTJ9=m
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_CM109=m
-CONFIG_INPUT_REGULATOR_HAPTIC=m
-CONFIG_INPUT_RETU_PWRBUTTON=m
-CONFIG_INPUT_AXP20X_PEK=m
-CONFIG_INPUT_TWL4030_PWRBUTTON=m
-CONFIG_INPUT_TWL4030_VIBRA=m
-CONFIG_INPUT_TWL6040_VIBRA=m
-CONFIG_INPUT_UINPUT=y
-CONFIG_INPUT_PALMAS_PWRBUTTON=m
-CONFIG_INPUT_PCF50633_PMU=m
-CONFIG_INPUT_PCF8574=m
-CONFIG_INPUT_PWM_BEEPER=m
-CONFIG_INPUT_PWM_VIBRA=m
-CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_DA7280_HAPTICS=m
-CONFIG_INPUT_DA9052_ONKEY=m
-CONFIG_INPUT_DA9055_ONKEY=m
-CONFIG_INPUT_DA9063_ONKEY=m
-CONFIG_INPUT_WM831X_ON=m
-CONFIG_INPUT_PCAP=m
-CONFIG_INPUT_ADXL34X=m
-CONFIG_INPUT_ADXL34X_I2C=m
-CONFIG_INPUT_ADXL34X_SPI=m
-CONFIG_INPUT_IMS_PCU=m
-CONFIG_INPUT_IQS269A=m
-CONFIG_INPUT_IQS626A=m
-CONFIG_INPUT_CMA3000=m
-CONFIG_INPUT_CMA3000_I2C=m
-CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
-CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
-CONFIG_INPUT_SOC_BUTTON_ARRAY=m
-CONFIG_INPUT_DRV260X_HAPTICS=m
-CONFIG_INPUT_DRV2665_HAPTICS=m
-CONFIG_INPUT_DRV2667_HAPTICS=m
-CONFIG_INPUT_RAVE_SP_PWRBUTTON=m
-CONFIG_RMI4_CORE=m
-CONFIG_RMI4_I2C=m
-CONFIG_RMI4_SPI=m
-CONFIG_RMI4_SMB=m
-CONFIG_RMI4_F03=y
-CONFIG_RMI4_F03_SERIO=m
-CONFIG_RMI4_2D_SENSOR=y
-CONFIG_RMI4_F11=y
-CONFIG_RMI4_F12=y
-CONFIG_RMI4_F30=y
-# CONFIG_RMI4_F34 is not set
-CONFIG_RMI4_F3A=y
-# CONFIG_RMI4_F54 is not set
-CONFIG_RMI4_F55=y
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
-CONFIG_SERIO_I8042=y
-CONFIG_SERIO_SERPORT=m
-CONFIG_SERIO_CT82C710=m
-CONFIG_SERIO_PARKBD=m
-CONFIG_SERIO_PCIPS2=m
-CONFIG_SERIO_LIBPS2=y
-CONFIG_SERIO_RAW=m
-CONFIG_SERIO_ALTERA_PS2=m
-CONFIG_SERIO_PS2MULT=m
-CONFIG_SERIO_ARC_PS2=m
-CONFIG_HYPERV_KEYBOARD=m
-CONFIG_SERIO_GPIO_PS2=m
-CONFIG_USERIO=m
-CONFIG_GAMEPORT=m
-CONFIG_GAMEPORT_NS558=m
-CONFIG_GAMEPORT_L4=m
-CONFIG_GAMEPORT_EMU10K1=m
-CONFIG_GAMEPORT_FM801=m
-# end of Hardware I/O ports
-# end of Input device support
-
-#
-# Character devices
-#
-CONFIG_TTY=y
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_VT_CONSOLE_SLEEP=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=0
-CONFIG_LDISC_AUTOLOAD=y
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_EARLYCON=y
-CONFIG_SERIAL_8250=y
-# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
-CONFIG_SERIAL_8250_PNP=y
-# CONFIG_SERIAL_8250_16550A_VARIANTS is not set
-# CONFIG_SERIAL_8250_FINTEK is not set
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_DMA=y
-CONFIG_SERIAL_8250_PCI=y
-CONFIG_SERIAL_8250_EXAR=m
-CONFIG_SERIAL_8250_CS=m
-CONFIG_SERIAL_8250_MEN_MCB=m
-CONFIG_SERIAL_8250_NR_UARTS=48
-CONFIG_SERIAL_8250_RUNTIME_UARTS=32
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_FOURPORT=m
-CONFIG_SERIAL_8250_ACCENT=m
-CONFIG_SERIAL_8250_BOCA=m
-CONFIG_SERIAL_8250_EXAR_ST16C554=m
-CONFIG_SERIAL_8250_HUB6=m
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-# CONFIG_SERIAL_8250_DETECT_IRQ is not set
-CONFIG_SERIAL_8250_RSA=y
-CONFIG_SERIAL_8250_DWLIB=y
-CONFIG_SERIAL_8250_DW=m
-CONFIG_SERIAL_8250_RT288X=y
-CONFIG_SERIAL_8250_LPSS=m
-CONFIG_SERIAL_8250_MID=m
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_KGDB_NMI=y
-CONFIG_SERIAL_MAX3100=m
-CONFIG_SERIAL_MAX310X=y
-CONFIG_SERIAL_UARTLITE=m
-CONFIG_SERIAL_UARTLITE_NR_UARTS=1
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_CONSOLE_POLL=y
-CONFIG_SERIAL_JSM=m
-CONFIG_SERIAL_LANTIQ=m
-CONFIG_SERIAL_SCCNXP=y
-CONFIG_SERIAL_SCCNXP_CONSOLE=y
-CONFIG_SERIAL_SC16IS7XX_CORE=m
-CONFIG_SERIAL_SC16IS7XX=m
-CONFIG_SERIAL_SC16IS7XX_I2C=y
-CONFIG_SERIAL_SC16IS7XX_SPI=y
-CONFIG_SERIAL_TIMBERDALE=m
-# CONFIG_SERIAL_BCM63XX is not set
-CONFIG_SERIAL_ALTERA_JTAGUART=m
-CONFIG_SERIAL_ALTERA_UART=m
-CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
-CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
-CONFIG_SERIAL_PCH_UART=m
-CONFIG_SERIAL_ARC=m
-CONFIG_SERIAL_ARC_NR_PORTS=1
-CONFIG_SERIAL_RP2=m
-CONFIG_SERIAL_RP2_NR_UARTS=32
-CONFIG_SERIAL_FSL_LPUART=m
-CONFIG_SERIAL_FSL_LINFLEXUART=m
-CONFIG_SERIAL_MEN_Z135=m
-# CONFIG_SERIAL_SPRD is not set
-# end of Serial drivers
-
-CONFIG_SERIAL_MCTRL_GPIO=y
-CONFIG_SERIAL_NONSTANDARD=y
-CONFIG_MOXA_INTELLIO=m
-CONFIG_MOXA_SMARTIO=m
-CONFIG_SYNCLINK_GT=m
-CONFIG_N_HDLC=m
-CONFIG_N_GSM=m
-CONFIG_NOZOMI=m
-CONFIG_NULL_TTY=m
-CONFIG_HVC_DRIVER=y
-CONFIG_HVC_IRQ=y
-CONFIG_HVC_XEN=y
-CONFIG_HVC_XEN_FRONTEND=y
-CONFIG_SERIAL_DEV_BUS=y
-CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
-CONFIG_TTY_PRINTK=y
-CONFIG_TTY_PRINTK_LEVEL=6
-CONFIG_PRINTER=m
-# CONFIG_LP_CONSOLE is not set
-CONFIG_PPDEV=m
-CONFIG_VIRTIO_CONSOLE=m
-CONFIG_IPMI_HANDLER=m
-CONFIG_IPMI_DMI_DECODE=y
-CONFIG_IPMI_PLAT_DATA=y
-# CONFIG_IPMI_PANIC_EVENT is not set
-CONFIG_IPMI_DEVICE_INTERFACE=m
-CONFIG_IPMI_SI=m
-CONFIG_IPMI_SSIF=m
-CONFIG_IPMI_WATCHDOG=m
-CONFIG_IPMI_POWEROFF=m
-CONFIG_IPMB_DEVICE_INTERFACE=m
-CONFIG_HW_RANDOM=y
-CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_INTEL=m
-CONFIG_HW_RANDOM_AMD=m
-CONFIG_HW_RANDOM_BA431=m
-CONFIG_HW_RANDOM_GEODE=m
-CONFIG_HW_RANDOM_VIA=m
-CONFIG_HW_RANDOM_VIRTIO=m
-CONFIG_HW_RANDOM_XIPHERA=m
-CONFIG_DTLK=m
-CONFIG_APPLICOM=m
-CONFIG_SONYPI=m
-
-#
-# PCMCIA character devices
-#
-CONFIG_SYNCLINK_CS=m
-CONFIG_CARDMAN_4000=m
-CONFIG_CARDMAN_4040=m
-CONFIG_SCR24X=m
-CONFIG_IPWIRELESS=m
-# end of PCMCIA character devices
-
-CONFIG_MWAVE=m
-CONFIG_SCx200_GPIO=m
-CONFIG_PC8736x_GPIO=m
-CONFIG_NSC_GPIO=m
-CONFIG_DEVMEM=y
-CONFIG_NVRAM=m
-CONFIG_RAW_DRIVER=m
-CONFIG_MAX_RAW_DEVS=256
-CONFIG_DEVPORT=y
-CONFIG_HPET=y
-CONFIG_HPET_MMAP=y
-CONFIG_HPET_MMAP_DEFAULT=y
-CONFIG_HANGCHECK_TIMER=m
-CONFIG_TCG_TPM=y
-CONFIG_HW_RANDOM_TPM=y
-CONFIG_TCG_TIS_CORE=y
-CONFIG_TCG_TIS=y
-CONFIG_TCG_TIS_SPI=m
-# CONFIG_TCG_TIS_SPI_CR50 is not set
-# CONFIG_TCG_TIS_I2C_CR50 is not set
-CONFIG_TCG_TIS_I2C_ATMEL=m
-CONFIG_TCG_TIS_I2C_INFINEON=m
-CONFIG_TCG_TIS_I2C_NUVOTON=m
-CONFIG_TCG_NSC=m
-CONFIG_TCG_ATMEL=m
-CONFIG_TCG_INFINEON=m
-CONFIG_TCG_XEN=m
-CONFIG_TCG_CRB=y
-CONFIG_TCG_VTPM_PROXY=m
-CONFIG_TCG_TIS_ST33ZP24=m
-CONFIG_TCG_TIS_ST33ZP24_I2C=m
-CONFIG_TCG_TIS_ST33ZP24_SPI=m
-CONFIG_TELCLOCK=m
-CONFIG_XILLYBUS=m
-CONFIG_XILLYBUS_PCIE=m
-# end of Character devices
-
-# CONFIG_RANDOM_TRUST_CPU is not set
-# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_ACPI_I2C_OPREGION=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_MUX=m
-
-#
-# Multiplexer I2C Chip support
-#
-CONFIG_I2C_MUX_GPIO=m
-CONFIG_I2C_MUX_LTC4306=m
-CONFIG_I2C_MUX_PCA9541=m
-CONFIG_I2C_MUX_PCA954x=m
-CONFIG_I2C_MUX_REG=m
-CONFIG_I2C_MUX_MLXCPLD=m
-# end of Multiplexer I2C Chip support
-
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_SMBUS=m
-CONFIG_I2C_ALGOBIT=m
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# PC SMBus host controller drivers
-#
-CONFIG_I2C_ALI1535=m
-CONFIG_I2C_ALI1563=m
-CONFIG_I2C_ALI15X3=m
-CONFIG_I2C_AMD756=m
-CONFIG_I2C_AMD756_S4882=m
-CONFIG_I2C_AMD8111=m
-CONFIG_I2C_AMD_MP2=m
-CONFIG_I2C_I801=m
-CONFIG_I2C_ISCH=m
-CONFIG_I2C_ISMT=m
-CONFIG_I2C_PIIX4=m
-CONFIG_I2C_CHT_WC=m
-CONFIG_I2C_NFORCE2=m
-CONFIG_I2C_NFORCE2_S4985=m
-CONFIG_I2C_NVIDIA_GPU=m
-CONFIG_I2C_SIS5595=m
-CONFIG_I2C_SIS630=m
-CONFIG_I2C_SIS96X=m
-CONFIG_I2C_VIA=m
-CONFIG_I2C_VIAPRO=m
-
-#
-# ACPI drivers
-#
-CONFIG_I2C_SCMI=m
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-CONFIG_I2C_CBUS_GPIO=m
-CONFIG_I2C_DESIGNWARE_CORE=y
-# CONFIG_I2C_DESIGNWARE_SLAVE is not set
-CONFIG_I2C_DESIGNWARE_PLATFORM=y
-CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
-CONFIG_I2C_DESIGNWARE_PCI=m
-CONFIG_I2C_EG20T=m
-CONFIG_I2C_EMEV2=m
-CONFIG_I2C_GPIO=m
-# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
-CONFIG_I2C_KEMPLD=m
-CONFIG_I2C_OCORES=m
-CONFIG_I2C_PCA_PLATFORM=m
-CONFIG_I2C_SIMTEC=m
-CONFIG_I2C_XILINX=m
-
-#
-# External I2C/SMBus adapter drivers
-#
-CONFIG_I2C_DIOLAN_U2C=m
-CONFIG_I2C_DLN2=m
-CONFIG_I2C_CP2615=m
-CONFIG_I2C_PARPORT=m
-CONFIG_I2C_ROBOTFUZZ_OSIF=m
-CONFIG_I2C_TAOS_EVM=m
-CONFIG_I2C_TINY_USB=m
-CONFIG_I2C_VIPERBOARD=m
-
-#
-# Other I2C/SMBus bus drivers
-#
-CONFIG_I2C_PCA_ISA=m
-CONFIG_I2C_CROS_EC_TUNNEL=m
-CONFIG_SCx200_ACB=m
-# end of I2C Hardware Bus support
-
-CONFIG_I2C_STUB=m
-CONFIG_I2C_SLAVE=y
-CONFIG_I2C_SLAVE_EEPROM=m
-# CONFIG_I2C_SLAVE_TESTUNIT is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# end of I2C support
-
-CONFIG_I3C=m
-CONFIG_CDNS_I3C_MASTER=m
-CONFIG_DW_I3C_MASTER=m
-CONFIG_SVC_I3C_MASTER=m
-# CONFIG_MIPI_I3C_HCI is not set
-CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-CONFIG_SPI_MEM=y
-
-#
-# SPI Master Controller Drivers
-#
-CONFIG_SPI_ALTERA=m
-CONFIG_SPI_ALTERA_CORE=m
-CONFIG_SPI_ALTERA_DFL=m
-CONFIG_SPI_AXI_SPI_ENGINE=m
-CONFIG_SPI_BITBANG=m
-CONFIG_SPI_BUTTERFLY=m
-CONFIG_SPI_CADENCE=m
-CONFIG_SPI_DESIGNWARE=m
-# CONFIG_SPI_DW_DMA is not set
-CONFIG_SPI_DW_PCI=m
-CONFIG_SPI_DW_MMIO=m
-CONFIG_SPI_DLN2=m
-CONFIG_SPI_NXP_FLEXSPI=m
-CONFIG_SPI_GPIO=m
-CONFIG_SPI_LM70_LLP=m
-CONFIG_SPI_LANTIQ_SSC=m
-CONFIG_SPI_OC_TINY=m
-CONFIG_SPI_PXA2XX=m
-CONFIG_SPI_PXA2XX_PCI=m
-CONFIG_SPI_ROCKCHIP=m
-CONFIG_SPI_SC18IS602=m
-CONFIG_SPI_SIFIVE=m
-CONFIG_SPI_MXIC=m
-CONFIG_SPI_TOPCLIFF_PCH=m
-CONFIG_SPI_XCOMM=m
-# CONFIG_SPI_XILINX is not set
-CONFIG_SPI_ZYNQMP_GQSPI=m
-CONFIG_SPI_AMD=m
-
-#
-# SPI Multiplexer support
-#
-CONFIG_SPI_MUX=m
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_SPIDEV=m
-# CONFIG_SPI_LOOPBACK_TEST is not set
-CONFIG_SPI_TLE62X0=m
-# CONFIG_SPI_SLAVE is not set
-CONFIG_SPI_DYNAMIC=y
-CONFIG_SPMI=m
-CONFIG_HSI=m
-CONFIG_HSI_BOARDINFO=y
-
-#
-# HSI controllers
-#
-
-#
-# HSI clients
-#
-CONFIG_HSI_CHAR=m
-CONFIG_PPS=m
-# CONFIG_PPS_DEBUG is not set
-
-#
-# PPS clients support
-#
-# CONFIG_PPS_CLIENT_KTIMER is not set
-CONFIG_PPS_CLIENT_LDISC=m
-CONFIG_PPS_CLIENT_PARPORT=m
-CONFIG_PPS_CLIENT_GPIO=m
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-CONFIG_PTP_1588_CLOCK=m
-
-#
-# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
-#
-CONFIG_PTP_1588_CLOCK_PCH=m
-CONFIG_PTP_1588_CLOCK_KVM=m
-CONFIG_PTP_1588_CLOCK_IDT82P33=m
-CONFIG_PTP_1588_CLOCK_IDTCM=m
-# CONFIG_PTP_1588_CLOCK_VMW is not set
-CONFIG_PTP_1588_CLOCK_OCP=m
-# end of PTP clock support
-
-CONFIG_PINCTRL=y
-CONFIG_PINMUX=y
-CONFIG_PINCONF=y
-CONFIG_GENERIC_PINCONF=y
-# CONFIG_DEBUG_PINCTRL is not set
-CONFIG_PINCTRL_AMD=y
-# CONFIG_PINCTRL_DA9062 is not set
-CONFIG_PINCTRL_MCP23S08_I2C=m
-CONFIG_PINCTRL_MCP23S08_SPI=m
-CONFIG_PINCTRL_MCP23S08=m
-CONFIG_PINCTRL_SX150X=y
-CONFIG_PINCTRL_BAYTRAIL=y
-CONFIG_PINCTRL_CHERRYVIEW=m
-CONFIG_PINCTRL_LYNXPOINT=m
-CONFIG_PINCTRL_INTEL=y
-CONFIG_PINCTRL_ALDERLAKE=m
-CONFIG_PINCTRL_BROXTON=m
-CONFIG_PINCTRL_CANNONLAKE=m
-CONFIG_PINCTRL_CEDARFORK=m
-CONFIG_PINCTRL_DENVERTON=m
-CONFIG_PINCTRL_ELKHARTLAKE=m
-CONFIG_PINCTRL_EMMITSBURG=m
-CONFIG_PINCTRL_GEMINILAKE=m
-CONFIG_PINCTRL_ICELAKE=m
-CONFIG_PINCTRL_JASPERLAKE=m
-CONFIG_PINCTRL_LAKEFIELD=m
-CONFIG_PINCTRL_LEWISBURG=m
-CONFIG_PINCTRL_SUNRISEPOINT=m
-CONFIG_PINCTRL_TIGERLAKE=m
-
-#
-# Renesas pinctrl drivers
-#
-# end of Renesas pinctrl drivers
-
-CONFIG_PINCTRL_MADERA=m
-CONFIG_GPIOLIB=y
-CONFIG_GPIOLIB_FASTPATH_LIMIT=512
-CONFIG_GPIO_ACPI=y
-CONFIG_GPIOLIB_IRQCHIP=y
-# CONFIG_DEBUG_GPIO is not set
-CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_CDEV=y
-CONFIG_GPIO_CDEV_V1=y
-CONFIG_GPIO_GENERIC=m
-CONFIG_GPIO_MAX730X=m
-
-#
-# Memory mapped GPIO drivers
-#
-CONFIG_GPIO_AMDPT=m
-CONFIG_GPIO_DWAPB=m
-CONFIG_GPIO_EXAR=m
-CONFIG_GPIO_GENERIC_PLATFORM=m
-CONFIG_GPIO_ICH=m
-CONFIG_GPIO_MB86S7X=m
-CONFIG_GPIO_MENZ127=m
-CONFIG_GPIO_STA2X11=y
-CONFIG_GPIO_VX855=m
-CONFIG_GPIO_AMD_FCH=m
-# end of Memory mapped GPIO drivers
-
-#
-# Port-mapped I/O GPIO drivers
-#
-CONFIG_GPIO_F7188X=m
-CONFIG_GPIO_IT87=m
-CONFIG_GPIO_SCH=m
-CONFIG_GPIO_SCH311X=m
-CONFIG_GPIO_WINBOND=m
-CONFIG_GPIO_WS16C48=m
-# end of Port-mapped I/O GPIO drivers
-
-#
-# I2C GPIO expanders
-#
-CONFIG_GPIO_ADP5588=m
-CONFIG_GPIO_MAX7300=m
-CONFIG_GPIO_MAX732X=m
-CONFIG_GPIO_PCA953X=m
-CONFIG_GPIO_PCA953X_IRQ=y
-CONFIG_GPIO_PCA9570=m
-CONFIG_GPIO_PCF857X=m
-CONFIG_GPIO_TPIC2810=m
-# end of I2C GPIO expanders
-
-#
-# MFD GPIO expanders
-#
-CONFIG_GPIO_ADP5520=m
-CONFIG_GPIO_ARIZONA=m
-CONFIG_GPIO_BD9571MWV=m
-CONFIG_GPIO_CRYSTAL_COVE=m
-CONFIG_GPIO_CS5535=m
-CONFIG_GPIO_DA9052=m
-CONFIG_GPIO_DA9055=m
-CONFIG_GPIO_DLN2=m
-CONFIG_GPIO_JANZ_TTL=m
-CONFIG_GPIO_KEMPLD=m
-CONFIG_GPIO_LP3943=m
-CONFIG_GPIO_LP873X=m
-CONFIG_GPIO_MADERA=m
-CONFIG_GPIO_PALMAS=y
-CONFIG_GPIO_RC5T583=y
-CONFIG_GPIO_TIMBERDALE=y
-CONFIG_GPIO_TPS65086=m
-CONFIG_GPIO_TPS6586X=y
-CONFIG_GPIO_TPS65910=y
-CONFIG_GPIO_TPS65912=m
-CONFIG_GPIO_TQMX86=m
-CONFIG_GPIO_TWL4030=m
-CONFIG_GPIO_TWL6040=m
-CONFIG_GPIO_UCB1400=m
-CONFIG_GPIO_WHISKEY_COVE=m
-CONFIG_GPIO_WM831X=m
-CONFIG_GPIO_WM8350=m
-CONFIG_GPIO_WM8994=m
-# end of MFD GPIO expanders
-
-#
-# PCI GPIO expanders
-#
-CONFIG_GPIO_AMD8111=m
-CONFIG_GPIO_ML_IOH=m
-CONFIG_GPIO_PCH=m
-CONFIG_GPIO_PCI_IDIO_16=m
-CONFIG_GPIO_PCIE_IDIO_24=m
-CONFIG_GPIO_RDC321X=m
-# end of PCI GPIO expanders
-
-#
-# SPI GPIO expanders
-#
-CONFIG_GPIO_MAX3191X=m
-CONFIG_GPIO_MAX7301=m
-CONFIG_GPIO_MC33880=m
-CONFIG_GPIO_PISOSR=m
-CONFIG_GPIO_XRA1403=m
-# end of SPI GPIO expanders
-
-#
-# USB GPIO expanders
-#
-CONFIG_GPIO_VIPERBOARD=m
-# end of USB GPIO expanders
-
-#
-# Virtual GPIO drivers
-#
-CONFIG_GPIO_AGGREGATOR=m
-# CONFIG_GPIO_MOCKUP is not set
-# end of Virtual GPIO drivers
-
-CONFIG_W1=m
-CONFIG_W1_CON=y
-
-#
-# 1-wire Bus Masters
-#
-CONFIG_W1_MASTER_MATROX=m
-CONFIG_W1_MASTER_DS2490=m
-CONFIG_W1_MASTER_DS2482=m
-CONFIG_W1_MASTER_DS1WM=m
-CONFIG_W1_MASTER_GPIO=m
-CONFIG_W1_MASTER_SGI=m
-# end of 1-wire Bus Masters
-
-#
-# 1-wire Slaves
-#
-CONFIG_W1_SLAVE_THERM=m
-CONFIG_W1_SLAVE_SMEM=m
-CONFIG_W1_SLAVE_DS2405=m
-CONFIG_W1_SLAVE_DS2408=m
-CONFIG_W1_SLAVE_DS2408_READBACK=y
-CONFIG_W1_SLAVE_DS2413=m
-CONFIG_W1_SLAVE_DS2406=m
-CONFIG_W1_SLAVE_DS2423=m
-CONFIG_W1_SLAVE_DS2805=m
-CONFIG_W1_SLAVE_DS2430=m
-CONFIG_W1_SLAVE_DS2431=m
-CONFIG_W1_SLAVE_DS2433=m
-# CONFIG_W1_SLAVE_DS2433_CRC is not set
-CONFIG_W1_SLAVE_DS2438=m
-CONFIG_W1_SLAVE_DS250X=m
-CONFIG_W1_SLAVE_DS2780=m
-CONFIG_W1_SLAVE_DS2781=m
-CONFIG_W1_SLAVE_DS28E04=m
-CONFIG_W1_SLAVE_DS28E17=m
-# end of 1-wire Slaves
-
-CONFIG_POWER_RESET=y
-CONFIG_POWER_RESET_ATC260X=m
-# CONFIG_POWER_RESET_MT6323 is not set
-CONFIG_POWER_RESET_RESTART=y
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-CONFIG_POWER_SUPPLY_HWMON=y
-CONFIG_PDA_POWER=m
-CONFIG_GENERIC_ADC_BATTERY=m
-CONFIG_MAX8925_POWER=m
-CONFIG_WM831X_BACKUP=m
-CONFIG_WM831X_POWER=m
-CONFIG_WM8350_POWER=m
-CONFIG_TEST_POWER=m
-CONFIG_BATTERY_88PM860X=m
-CONFIG_CHARGER_ADP5061=m
-CONFIG_BATTERY_CW2015=m
-CONFIG_BATTERY_DS2760=m
-CONFIG_BATTERY_DS2780=m
-CONFIG_BATTERY_DS2781=m
-CONFIG_BATTERY_DS2782=m
-CONFIG_BATTERY_SBS=m
-CONFIG_CHARGER_SBS=m
-CONFIG_MANAGER_SBS=m
-CONFIG_BATTERY_BQ27XXX=m
-CONFIG_BATTERY_BQ27XXX_I2C=m
-CONFIG_BATTERY_BQ27XXX_HDQ=m
-# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set
-CONFIG_BATTERY_DA9030=m
-CONFIG_BATTERY_DA9052=m
-CONFIG_CHARGER_DA9150=m
-CONFIG_BATTERY_DA9150=m
-CONFIG_CHARGER_AXP20X=m
-CONFIG_BATTERY_AXP20X=m
-CONFIG_AXP20X_POWER=m
-CONFIG_AXP288_CHARGER=m
-CONFIG_AXP288_FUEL_GAUGE=m
-CONFIG_BATTERY_MAX17040=m
-CONFIG_BATTERY_MAX17042=m
-CONFIG_BATTERY_MAX1721X=m
-CONFIG_BATTERY_TWL4030_MADC=m
-CONFIG_CHARGER_88PM860X=m
-CONFIG_CHARGER_PCF50633=m
-CONFIG_BATTERY_RX51=m
-CONFIG_CHARGER_ISP1704=m
-CONFIG_CHARGER_MAX8903=m
-CONFIG_CHARGER_TWL4030=m
-CONFIG_CHARGER_LP8727=m
-CONFIG_CHARGER_LP8788=m
-CONFIG_CHARGER_GPIO=m
-CONFIG_CHARGER_MANAGER=y
-CONFIG_CHARGER_LT3651=m
-CONFIG_CHARGER_LTC4162L=m
-CONFIG_CHARGER_MAX14577=m
-CONFIG_CHARGER_MAX77693=m
-CONFIG_CHARGER_MAX8997=m
-CONFIG_CHARGER_MAX8998=m
-CONFIG_CHARGER_MP2629=m
-CONFIG_CHARGER_BQ2415X=m
-CONFIG_CHARGER_BQ24190=m
-CONFIG_CHARGER_BQ24257=m
-CONFIG_CHARGER_BQ24735=m
-CONFIG_CHARGER_BQ2515X=m
-CONFIG_CHARGER_BQ25890=m
-CONFIG_CHARGER_BQ25980=m
-CONFIG_CHARGER_BQ256XX=m
-CONFIG_CHARGER_SMB347=m
-CONFIG_CHARGER_TPS65090=m
-CONFIG_BATTERY_GAUGE_LTC2941=m
-CONFIG_BATTERY_GOLDFISH=m
-CONFIG_BATTERY_RT5033=m
-CONFIG_CHARGER_RT9455=m
-CONFIG_CHARGER_CROS_USBPD=m
-CONFIG_CHARGER_BD99954=m
-CONFIG_CHARGER_WILCO=m
-CONFIG_HWMON=y
-CONFIG_HWMON_VID=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-CONFIG_SENSORS_ABITUGURU=m
-CONFIG_SENSORS_ABITUGURU3=m
-CONFIG_SENSORS_AD7314=m
-CONFIG_SENSORS_AD7414=m
-CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADM1021=m
-CONFIG_SENSORS_ADM1025=m
-CONFIG_SENSORS_ADM1026=m
-CONFIG_SENSORS_ADM1029=m
-CONFIG_SENSORS_ADM1031=m
-CONFIG_SENSORS_ADM1177=m
-CONFIG_SENSORS_ADM9240=m
-CONFIG_SENSORS_ADT7X10=m
-CONFIG_SENSORS_ADT7310=m
-CONFIG_SENSORS_ADT7410=m
-CONFIG_SENSORS_ADT7411=m
-CONFIG_SENSORS_ADT7462=m
-CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7475=m
-CONFIG_SENSORS_AHT10=m
-CONFIG_SENSORS_AS370=m
-CONFIG_SENSORS_ASC7621=m
-CONFIG_SENSORS_AXI_FAN_CONTROL=m
-CONFIG_SENSORS_K8TEMP=m
-CONFIG_SENSORS_K10TEMP=m
-CONFIG_SENSORS_FAM15H_POWER=m
-CONFIG_SENSORS_APPLESMC=m
-CONFIG_SENSORS_ASB100=m
-CONFIG_SENSORS_ASPEED=m
-CONFIG_SENSORS_ATXP1=m
-CONFIG_SENSORS_CORSAIR_CPRO=m
-CONFIG_SENSORS_CORSAIR_PSU=m
-CONFIG_SENSORS_DRIVETEMP=y
-CONFIG_SENSORS_DS620=m
-CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_DELL_SMM=m
-CONFIG_SENSORS_DA9052_ADC=m
-CONFIG_SENSORS_DA9055=m
-CONFIG_SENSORS_I5K_AMB=m
-CONFIG_SENSORS_F71805F=m
-CONFIG_SENSORS_F71882FG=m
-CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_MC13783_ADC=m
-CONFIG_SENSORS_FSCHMD=m
-CONFIG_SENSORS_FTSTEUTATES=m
-CONFIG_SENSORS_GL518SM=m
-CONFIG_SENSORS_GL520SM=m
-CONFIG_SENSORS_G760A=m
-CONFIG_SENSORS_G762=m
-CONFIG_SENSORS_HIH6130=m
-CONFIG_SENSORS_IBMAEM=m
-CONFIG_SENSORS_IBMPEX=m
-CONFIG_SENSORS_IIO_HWMON=m
-CONFIG_SENSORS_I5500=m
-CONFIG_SENSORS_CORETEMP=m
-CONFIG_SENSORS_IT87=m
-CONFIG_SENSORS_JC42=m
-CONFIG_SENSORS_POWR1220=m
-CONFIG_SENSORS_LINEAGE=m
-CONFIG_SENSORS_LTC2945=m
-CONFIG_SENSORS_LTC2947=m
-CONFIG_SENSORS_LTC2947_I2C=m
-CONFIG_SENSORS_LTC2947_SPI=m
-CONFIG_SENSORS_LTC2990=m
-CONFIG_SENSORS_LTC2992=m
-CONFIG_SENSORS_LTC4151=m
-CONFIG_SENSORS_LTC4215=m
-CONFIG_SENSORS_LTC4222=m
-CONFIG_SENSORS_LTC4245=m
-CONFIG_SENSORS_LTC4260=m
-CONFIG_SENSORS_LTC4261=m
-CONFIG_SENSORS_MAX1111=m
-CONFIG_SENSORS_MAX127=m
-CONFIG_SENSORS_MAX16065=m
-CONFIG_SENSORS_MAX1619=m
-CONFIG_SENSORS_MAX1668=m
-CONFIG_SENSORS_MAX197=m
-CONFIG_SENSORS_MAX31722=m
-CONFIG_SENSORS_MAX31730=m
-CONFIG_SENSORS_MAX6621=m
-CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
-CONFIG_SENSORS_MAX6650=m
-CONFIG_SENSORS_MAX6697=m
-CONFIG_SENSORS_MAX31790=m
-CONFIG_SENSORS_MCP3021=m
-CONFIG_SENSORS_TC654=m
-CONFIG_SENSORS_TPS23861=m
-CONFIG_SENSORS_MENF21BMC_HWMON=m
-CONFIG_SENSORS_MR75203=m
-CONFIG_SENSORS_ADCXX=m
-CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM70=m
-CONFIG_SENSORS_LM73=m
-CONFIG_SENSORS_LM75=m
-CONFIG_SENSORS_LM77=m
-CONFIG_SENSORS_LM78=m
-CONFIG_SENSORS_LM80=m
-CONFIG_SENSORS_LM83=m
-CONFIG_SENSORS_LM85=m
-CONFIG_SENSORS_LM87=m
-CONFIG_SENSORS_LM90=m
-CONFIG_SENSORS_LM92=m
-CONFIG_SENSORS_LM93=m
-CONFIG_SENSORS_LM95234=m
-CONFIG_SENSORS_LM95241=m
-CONFIG_SENSORS_LM95245=m
-CONFIG_SENSORS_PC87360=m
-CONFIG_SENSORS_PC87427=m
-CONFIG_SENSORS_NTC_THERMISTOR=m
-CONFIG_SENSORS_NCT6683=m
-CONFIG_SENSORS_NCT6775=m
-CONFIG_SENSORS_NCT7802=m
-CONFIG_SENSORS_NCT7904=m
-CONFIG_SENSORS_NPCM7XX=m
-CONFIG_SENSORS_NZXT_KRAKEN2=m
-CONFIG_SENSORS_PCF8591=m
-CONFIG_PMBUS=m
-CONFIG_SENSORS_PMBUS=m
-CONFIG_SENSORS_ADM1266=m
-CONFIG_SENSORS_ADM1275=m
-CONFIG_SENSORS_BEL_PFE=m
-CONFIG_SENSORS_BPA_RS600=m
-CONFIG_SENSORS_FSP_3Y=m
-CONFIG_SENSORS_IBM_CFFPS=m
-CONFIG_SENSORS_INSPUR_IPSPS=m
-CONFIG_SENSORS_IR35221=m
-CONFIG_SENSORS_IR36021=m
-CONFIG_SENSORS_IR38064=m
-CONFIG_SENSORS_IRPS5401=m
-CONFIG_SENSORS_ISL68137=m
-CONFIG_SENSORS_LM25066=m
-CONFIG_SENSORS_LTC2978=m
-CONFIG_SENSORS_LTC2978_REGULATOR=y
-CONFIG_SENSORS_LTC3815=m
-CONFIG_SENSORS_MAX15301=m
-CONFIG_SENSORS_MAX16064=m
-CONFIG_SENSORS_MAX16601=m
-CONFIG_SENSORS_MAX20730=m
-CONFIG_SENSORS_MAX20751=m
-CONFIG_SENSORS_MAX31785=m
-CONFIG_SENSORS_MAX34440=m
-CONFIG_SENSORS_MAX8688=m
-CONFIG_SENSORS_MP2975=m
-CONFIG_SENSORS_PM6764TR=m
-CONFIG_SENSORS_PXE1610=m
-CONFIG_SENSORS_Q54SJ108A2=m
-CONFIG_SENSORS_STPDDC60=m
-CONFIG_SENSORS_TPS40422=m
-CONFIG_SENSORS_TPS53679=m
-CONFIG_SENSORS_UCD9000=m
-CONFIG_SENSORS_UCD9200=m
-CONFIG_SENSORS_XDPE122=m
-CONFIG_SENSORS_ZL6100=m
-CONFIG_SENSORS_SBTSI=m
-CONFIG_SENSORS_SHT15=m
-CONFIG_SENSORS_SHT21=m
-CONFIG_SENSORS_SHT3x=m
-CONFIG_SENSORS_SHTC1=m
-CONFIG_SENSORS_SIS5595=m
-CONFIG_SENSORS_DME1737=m
-CONFIG_SENSORS_EMC1403=m
-CONFIG_SENSORS_EMC2103=m
-CONFIG_SENSORS_EMC6W201=m
-CONFIG_SENSORS_SMSC47M1=m
-CONFIG_SENSORS_SMSC47M192=m
-CONFIG_SENSORS_SMSC47B397=m
-CONFIG_SENSORS_SCH56XX_COMMON=m
-CONFIG_SENSORS_SCH5627=m
-CONFIG_SENSORS_SCH5636=m
-CONFIG_SENSORS_STTS751=m
-CONFIG_SENSORS_SMM665=m
-CONFIG_SENSORS_ADC128D818=m
-CONFIG_SENSORS_ADS7828=m
-CONFIG_SENSORS_ADS7871=m
-CONFIG_SENSORS_AMC6821=m
-CONFIG_SENSORS_INA209=m
-CONFIG_SENSORS_INA2XX=m
-CONFIG_SENSORS_INA3221=m
-CONFIG_SENSORS_TC74=m
-CONFIG_SENSORS_THMC50=m
-CONFIG_SENSORS_TMP102=m
-CONFIG_SENSORS_TMP103=m
-CONFIG_SENSORS_TMP108=m
-CONFIG_SENSORS_TMP401=m
-CONFIG_SENSORS_TMP421=m
-CONFIG_SENSORS_TMP513=m
-CONFIG_SENSORS_VIA_CPUTEMP=m
-CONFIG_SENSORS_VIA686A=m
-CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_VT8231=m
-CONFIG_SENSORS_W83773G=m
-CONFIG_SENSORS_W83781D=m
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83795=m
-# CONFIG_SENSORS_W83795_FANCTRL is not set
-CONFIG_SENSORS_W83L785TS=m
-CONFIG_SENSORS_W83L786NG=m
-CONFIG_SENSORS_W83627HF=m
-CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_WM831X=m
-CONFIG_SENSORS_WM8350=m
-CONFIG_SENSORS_XGENE=m
-CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
-
-#
-# ACPI drivers
-#
-CONFIG_SENSORS_ACPI_POWER=m
-CONFIG_SENSORS_ATK0110=m
-CONFIG_THERMAL=y
-CONFIG_THERMAL_NETLINK=y
-# CONFIG_THERMAL_STATISTICS is not set
-CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
-CONFIG_THERMAL_HWMON=y
-CONFIG_THERMAL_WRITABLE_TRIPS=y
-CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
-# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
-# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
-CONFIG_THERMAL_GOV_FAIR_SHARE=y
-CONFIG_THERMAL_GOV_STEP_WISE=y
-CONFIG_THERMAL_GOV_BANG_BANG=y
-CONFIG_THERMAL_GOV_USER_SPACE=y
-CONFIG_DEVFREQ_THERMAL=y
-CONFIG_THERMAL_EMULATION=y
-
-#
-# Intel thermal drivers
-#
-CONFIG_INTEL_POWERCLAMP=m
-CONFIG_X86_THERMAL_VECTOR=y
-CONFIG_X86_PKG_TEMP_THERMAL=m
-CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
-CONFIG_INTEL_SOC_DTS_THERMAL=m
-CONFIG_INTEL_QUARK_DTS_THERMAL=m
-
-#
-# ACPI INT340X thermal drivers
-#
-CONFIG_INT340X_THERMAL=m
-CONFIG_ACPI_THERMAL_REL=m
-CONFIG_INT3406_THERMAL=m
-# end of ACPI INT340X thermal drivers
-
-CONFIG_INTEL_BXT_PMIC_THERMAL=m
-CONFIG_INTEL_PCH_THERMAL=m
-CONFIG_INTEL_TCC_COOLING=m
-# end of Intel thermal drivers
-
-CONFIG_GENERIC_ADC_THERMAL=m
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_CORE=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
-CONFIG_WATCHDOG_OPEN_TIMEOUT=0
-CONFIG_WATCHDOG_SYSFS=y
-
-#
-# Watchdog Pretimeout Governors
-#
-# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set
-
-#
-# Watchdog Device Drivers
-#
-CONFIG_SOFT_WATCHDOG=m
-CONFIG_DA9052_WATCHDOG=m
-CONFIG_DA9055_WATCHDOG=m
-CONFIG_DA9063_WATCHDOG=m
-CONFIG_DA9062_WATCHDOG=m
-CONFIG_MENF21BMC_WATCHDOG=m
-CONFIG_MENZ069_WATCHDOG=m
-CONFIG_WDAT_WDT=m
-CONFIG_WM831X_WATCHDOG=m
-CONFIG_WM8350_WATCHDOG=m
-CONFIG_XILINX_WATCHDOG=m
-CONFIG_ZIIRAVE_WATCHDOG=m
-CONFIG_RAVE_SP_WATCHDOG=m
-CONFIG_CADENCE_WATCHDOG=m
-CONFIG_DW_WATCHDOG=m
-CONFIG_TWL4030_WATCHDOG=m
-CONFIG_MAX63XX_WATCHDOG=m
-CONFIG_RETU_WATCHDOG=m
-CONFIG_ACQUIRE_WDT=m
-CONFIG_ADVANTECH_WDT=m
-CONFIG_ALIM1535_WDT=m
-CONFIG_ALIM7101_WDT=m
-CONFIG_EBC_C384_WDT=m
-CONFIG_F71808E_WDT=m
-CONFIG_SP5100_TCO=m
-CONFIG_SBC_FITPC2_WATCHDOG=m
-CONFIG_EUROTECH_WDT=m
-CONFIG_IB700_WDT=m
-CONFIG_IBMASR=m
-CONFIG_WAFER_WDT=m
-CONFIG_I6300ESB_WDT=m
-CONFIG_IE6XX_WDT=m
-CONFIG_ITCO_WDT=m
-CONFIG_ITCO_VENDOR_SUPPORT=y
-CONFIG_IT8712F_WDT=m
-CONFIG_IT87_WDT=m
-CONFIG_HP_WATCHDOG=m
-CONFIG_HPWDT_NMI_DECODING=y
-CONFIG_KEMPLD_WDT=m
-CONFIG_SC1200_WDT=m
-CONFIG_SCx200_WDT=m
-CONFIG_PC87413_WDT=m
-CONFIG_NV_TCO=m
-CONFIG_RDC321X_WDT=m
-CONFIG_60XX_WDT=m
-CONFIG_SBC8360_WDT=m
-CONFIG_SBC7240_WDT=m
-CONFIG_CPU5_WDT=m
-CONFIG_SMSC_SCH311X_WDT=m
-CONFIG_SMSC37B787_WDT=m
-CONFIG_TQMX86_WDT=m
-CONFIG_VIA_WDT=m
-CONFIG_W83627HF_WDT=m
-CONFIG_W83877F_WDT=m
-CONFIG_W83977F_WDT=m
-CONFIG_MACHZ_WDT=m
-CONFIG_SBC_EPX_C3_WATCHDOG=m
-CONFIG_NI903X_WDT=m
-CONFIG_NIC7018_WDT=m
-CONFIG_MEN_A21_WDT=m
-CONFIG_XEN_WDT=m
-
-#
-# ISA-based Watchdog Cards
-#
-CONFIG_PCWATCHDOG=m
-CONFIG_MIXCOMWD=m
-CONFIG_WDT=m
-
-#
-# PCI-based Watchdog Cards
-#
-CONFIG_PCIPCWATCHDOG=m
-CONFIG_WDTPCI=m
-
-#
-# USB-based Watchdog Cards
-#
-CONFIG_USBPCWATCHDOG=m
-CONFIG_SSB_POSSIBLE=y
-CONFIG_SSB=m
-CONFIG_SSB_SPROM=y
-CONFIG_SSB_BLOCKIO=y
-CONFIG_SSB_PCIHOST_POSSIBLE=y
-CONFIG_SSB_PCIHOST=y
-CONFIG_SSB_B43_PCI_BRIDGE=y
-CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
-# CONFIG_SSB_PCMCIAHOST is not set
-CONFIG_SSB_SDIOHOST_POSSIBLE=y
-CONFIG_SSB_SDIOHOST=y
-CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
-CONFIG_SSB_DRIVER_PCICORE=y
-CONFIG_SSB_DRIVER_GPIO=y
-CONFIG_BCMA_POSSIBLE=y
-CONFIG_BCMA=m
-CONFIG_BCMA_BLOCKIO=y
-CONFIG_BCMA_HOST_PCI_POSSIBLE=y
-CONFIG_BCMA_HOST_PCI=y
-CONFIG_BCMA_HOST_SOC=y
-CONFIG_BCMA_DRIVER_PCI=y
-CONFIG_BCMA_SFLASH=y
-CONFIG_BCMA_DRIVER_GMAC_CMN=y
-CONFIG_BCMA_DRIVER_GPIO=y
-# CONFIG_BCMA_DEBUG is not set
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=y
-CONFIG_MFD_CS5535=m
-CONFIG_MFD_AS3711=y
-CONFIG_PMIC_ADP5520=y
-CONFIG_MFD_AAT2870_CORE=y
-CONFIG_MFD_BCM590XX=m
-CONFIG_MFD_BD9571MWV=m
-CONFIG_MFD_AXP20X=m
-CONFIG_MFD_AXP20X_I2C=m
-CONFIG_MFD_CROS_EC_DEV=m
-CONFIG_MFD_MADERA=m
-CONFIG_MFD_MADERA_I2C=m
-CONFIG_MFD_MADERA_SPI=m
-# CONFIG_MFD_CS47L15 is not set
-# CONFIG_MFD_CS47L35 is not set
-# CONFIG_MFD_CS47L85 is not set
-# CONFIG_MFD_CS47L90 is not set
-# CONFIG_MFD_CS47L92 is not set
-CONFIG_PMIC_DA903X=y
-CONFIG_PMIC_DA9052=y
-CONFIG_MFD_DA9052_SPI=y
-CONFIG_MFD_DA9052_I2C=y
-CONFIG_MFD_DA9055=y
-CONFIG_MFD_DA9062=m
-CONFIG_MFD_DA9063=y
-CONFIG_MFD_DA9150=m
-CONFIG_MFD_DLN2=m
-CONFIG_MFD_MC13XXX=m
-CONFIG_MFD_MC13XXX_SPI=m
-CONFIG_MFD_MC13XXX_I2C=m
-CONFIG_MFD_MP2629=m
-CONFIG_HTC_PASIC3=m
-CONFIG_HTC_I2CPLD=y
-CONFIG_MFD_INTEL_QUARK_I2C_GPIO=m
-CONFIG_LPC_ICH=m
-CONFIG_LPC_SCH=m
-CONFIG_INTEL_SOC_PMIC=y
-CONFIG_INTEL_SOC_PMIC_BXTWC=m
-CONFIG_INTEL_SOC_PMIC_CHTWC=y
-CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
-CONFIG_INTEL_SOC_PMIC_MRFLD=m
-CONFIG_MFD_INTEL_LPSS=m
-CONFIG_MFD_INTEL_LPSS_ACPI=m
-CONFIG_MFD_INTEL_LPSS_PCI=m
-CONFIG_MFD_INTEL_PMC_BXT=m
-CONFIG_MFD_INTEL_PMT=m
-CONFIG_MFD_IQS62X=m
-CONFIG_MFD_JANZ_CMODIO=m
-CONFIG_MFD_KEMPLD=m
-CONFIG_MFD_88PM800=m
-CONFIG_MFD_88PM805=m
-CONFIG_MFD_88PM860X=y
-CONFIG_MFD_MAX14577=y
-CONFIG_MFD_MAX77693=y
-CONFIG_MFD_MAX77843=y
-CONFIG_MFD_MAX8907=m
-CONFIG_MFD_MAX8925=y
-CONFIG_MFD_MAX8997=y
-CONFIG_MFD_MAX8998=y
-CONFIG_MFD_MT6360=m
-CONFIG_MFD_MT6397=m
-CONFIG_MFD_MENF21BMC=m
-CONFIG_EZX_PCAP=y
-CONFIG_MFD_VIPERBOARD=m
-CONFIG_MFD_RETU=m
-CONFIG_MFD_PCF50633=m
-CONFIG_PCF50633_ADC=m
-CONFIG_PCF50633_GPIO=m
-CONFIG_UCB1400_CORE=m
-CONFIG_MFD_RDC321X=m
-CONFIG_MFD_RT5033=m
-CONFIG_MFD_RC5T583=y
-CONFIG_MFD_SEC_CORE=y
-CONFIG_MFD_SI476X_CORE=m
-CONFIG_MFD_SM501=m
-CONFIG_MFD_SM501_GPIO=y
-CONFIG_MFD_SKY81452=m
-CONFIG_MFD_STA2X11=y
-CONFIG_MFD_SYSCON=y
-CONFIG_MFD_TI_AM335X_TSCADC=m
-CONFIG_MFD_LP3943=m
-CONFIG_MFD_LP8788=y
-CONFIG_MFD_TI_LMU=m
-CONFIG_MFD_PALMAS=y
-CONFIG_TPS6105X=m
-CONFIG_TPS65010=m
-CONFIG_TPS6507X=m
-CONFIG_MFD_TPS65086=m
-CONFIG_MFD_TPS65090=y
-# CONFIG_MFD_TPS68470 is not set
-CONFIG_MFD_TI_LP873X=m
-CONFIG_MFD_TPS6586X=y
-CONFIG_MFD_TPS65910=y
-CONFIG_MFD_TPS65912=y
-CONFIG_MFD_TPS65912_I2C=y
-CONFIG_MFD_TPS65912_SPI=y
-CONFIG_MFD_TPS80031=y
-CONFIG_TWL4030_CORE=y
-CONFIG_MFD_TWL4030_AUDIO=y
-CONFIG_TWL6040_CORE=y
-CONFIG_MFD_WL1273_CORE=m
-CONFIG_MFD_LM3533=m
-CONFIG_MFD_TIMBERDALE=m
-CONFIG_MFD_TQMX86=m
-CONFIG_MFD_VX855=m
-CONFIG_MFD_ARIZONA=y
-CONFIG_MFD_ARIZONA_I2C=m
-CONFIG_MFD_ARIZONA_SPI=m
-CONFIG_MFD_CS47L24=y
-CONFIG_MFD_WM5102=y
-CONFIG_MFD_WM5110=y
-CONFIG_MFD_WM8997=y
-CONFIG_MFD_WM8998=y
-CONFIG_MFD_WM8400=y
-CONFIG_MFD_WM831X=y
-CONFIG_MFD_WM831X_I2C=y
-CONFIG_MFD_WM831X_SPI=y
-CONFIG_MFD_WM8350=y
-CONFIG_MFD_WM8350_I2C=y
-CONFIG_MFD_WM8994=m
-CONFIG_MFD_ATC260X=m
-CONFIG_MFD_ATC260X_I2C=m
-CONFIG_RAVE_SP_CORE=m
-CONFIG_MFD_INTEL_M10_BMC=m
-# end of Multifunction device drivers
-
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_FIXED_VOLTAGE=m
-CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
-CONFIG_REGULATOR_USERSPACE_CONSUMER=m
-CONFIG_REGULATOR_88PG86X=m
-CONFIG_REGULATOR_88PM800=m
-CONFIG_REGULATOR_88PM8607=m
-CONFIG_REGULATOR_ACT8865=m
-CONFIG_REGULATOR_AD5398=m
-CONFIG_REGULATOR_AAT2870=m
-CONFIG_REGULATOR_ARIZONA_LDO1=m
-CONFIG_REGULATOR_ARIZONA_MICSUPP=m
-CONFIG_REGULATOR_AS3711=m
-CONFIG_REGULATOR_ATC260X=m
-CONFIG_REGULATOR_AXP20X=m
-CONFIG_REGULATOR_BCM590XX=m
-CONFIG_REGULATOR_BD9571MWV=m
-CONFIG_REGULATOR_DA903X=m
-CONFIG_REGULATOR_DA9052=m
-CONFIG_REGULATOR_DA9055=m
-CONFIG_REGULATOR_DA9062=m
-CONFIG_REGULATOR_DA9210=m
-CONFIG_REGULATOR_DA9211=m
-CONFIG_REGULATOR_FAN53555=m
-CONFIG_REGULATOR_GPIO=m
-CONFIG_REGULATOR_ISL9305=m
-CONFIG_REGULATOR_ISL6271A=m
-CONFIG_REGULATOR_LM363X=m
-CONFIG_REGULATOR_LP3971=m
-CONFIG_REGULATOR_LP3972=m
-CONFIG_REGULATOR_LP872X=m
-CONFIG_REGULATOR_LP8755=m
-CONFIG_REGULATOR_LP8788=m
-CONFIG_REGULATOR_LTC3589=m
-CONFIG_REGULATOR_LTC3676=m
-CONFIG_REGULATOR_MAX14577=m
-CONFIG_REGULATOR_MAX1586=m
-CONFIG_REGULATOR_MAX8649=m
-CONFIG_REGULATOR_MAX8660=m
-CONFIG_REGULATOR_MAX8907=m
-CONFIG_REGULATOR_MAX8925=m
-CONFIG_REGULATOR_MAX8952=m
-CONFIG_REGULATOR_MAX8997=m
-CONFIG_REGULATOR_MAX8998=m
-CONFIG_REGULATOR_MAX77693=m
-CONFIG_REGULATOR_MAX77826=m
-CONFIG_REGULATOR_MC13XXX_CORE=m
-CONFIG_REGULATOR_MC13783=m
-CONFIG_REGULATOR_MC13892=m
-CONFIG_REGULATOR_MP8859=m
-CONFIG_REGULATOR_MT6311=m
-CONFIG_REGULATOR_MT6315=m
-CONFIG_REGULATOR_MT6323=m
-CONFIG_REGULATOR_MT6358=m
-CONFIG_REGULATOR_MT6360=m
-CONFIG_REGULATOR_MT6397=m
-CONFIG_REGULATOR_PALMAS=m
-CONFIG_REGULATOR_PCA9450=m
-CONFIG_REGULATOR_PCAP=m
-CONFIG_REGULATOR_PCF50633=m
-CONFIG_REGULATOR_PV88060=m
-CONFIG_REGULATOR_PV88080=m
-CONFIG_REGULATOR_PV88090=m
-CONFIG_REGULATOR_PWM=m
-CONFIG_REGULATOR_QCOM_SPMI=m
-CONFIG_REGULATOR_QCOM_USB_VBUS=m
-CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
-CONFIG_REGULATOR_RC5T583=m
-CONFIG_REGULATOR_RT4801=m
-CONFIG_REGULATOR_RT5033=m
-CONFIG_REGULATOR_RTMV20=m
-CONFIG_REGULATOR_S2MPA01=m
-CONFIG_REGULATOR_S2MPS11=m
-CONFIG_REGULATOR_S5M8767=m
-CONFIG_REGULATOR_SKY81452=m
-CONFIG_REGULATOR_SLG51000=m
-CONFIG_REGULATOR_TPS51632=m
-CONFIG_REGULATOR_TPS6105X=m
-CONFIG_REGULATOR_TPS62360=m
-CONFIG_REGULATOR_TPS65023=m
-CONFIG_REGULATOR_TPS6507X=m
-CONFIG_REGULATOR_TPS65086=m
-CONFIG_REGULATOR_TPS65090=m
-CONFIG_REGULATOR_TPS65132=m
-CONFIG_REGULATOR_TPS6524X=m
-CONFIG_REGULATOR_TPS6586X=m
-CONFIG_REGULATOR_TPS65910=m
-CONFIG_REGULATOR_TPS65912=m
-CONFIG_REGULATOR_TPS80031=m
-CONFIG_REGULATOR_TWL4030=m
-CONFIG_REGULATOR_WM831X=m
-CONFIG_REGULATOR_WM8350=m
-CONFIG_REGULATOR_WM8400=m
-CONFIG_REGULATOR_WM8994=m
-CONFIG_REGULATOR_QCOM_LABIBB=m
-CONFIG_RC_CORE=m
-CONFIG_RC_MAP=m
-CONFIG_LIRC=y
-CONFIG_RC_DECODERS=y
-CONFIG_IR_NEC_DECODER=m
-CONFIG_IR_RC5_DECODER=m
-CONFIG_IR_RC6_DECODER=m
-CONFIG_IR_JVC_DECODER=m
-CONFIG_IR_SONY_DECODER=m
-CONFIG_IR_SANYO_DECODER=m
-CONFIG_IR_SHARP_DECODER=m
-CONFIG_IR_MCE_KBD_DECODER=m
-CONFIG_IR_XMP_DECODER=m
-CONFIG_IR_IMON_DECODER=m
-CONFIG_IR_RCMM_DECODER=m
-CONFIG_RC_DEVICES=y
-CONFIG_RC_ATI_REMOTE=m
-CONFIG_IR_ENE=m
-CONFIG_IR_IMON=m
-CONFIG_IR_IMON_RAW=m
-CONFIG_IR_MCEUSB=m
-CONFIG_IR_ITE_CIR=m
-CONFIG_IR_FINTEK=m
-CONFIG_IR_NUVOTON=m
-CONFIG_IR_REDRAT3=m
-CONFIG_IR_STREAMZAP=m
-CONFIG_IR_WINBOND_CIR=m
-CONFIG_IR_IGORPLUGUSB=m
-CONFIG_IR_IGUANA=m
-CONFIG_IR_TTUSBIR=m
-CONFIG_RC_LOOPBACK=m
-CONFIG_IR_SERIAL=m
-CONFIG_IR_SERIAL_TRANSMITTER=y
-CONFIG_IR_SIR=m
-CONFIG_RC_XBOX_DVD=m
-CONFIG_IR_TOY=m
-CONFIG_CEC_CORE=m
-CONFIG_CEC_NOTIFIER=y
-# CONFIG_MEDIA_CEC_RC is not set
-CONFIG_MEDIA_CEC_SUPPORT=y
-CONFIG_CEC_CH7322=m
-CONFIG_CEC_CROS_EC=m
-CONFIG_CEC_SECO=m
-CONFIG_CEC_SECO_RC=y
-CONFIG_USB_PULSE8_CEC=m
-CONFIG_USB_RAINSHADOW_CEC=m
-CONFIG_MEDIA_SUPPORT=m
-# CONFIG_MEDIA_SUPPORT_FILTER is not set
-CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
-
-#
-# Media device types
-#
-CONFIG_MEDIA_CAMERA_SUPPORT=y
-CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
-CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
-CONFIG_MEDIA_RADIO_SUPPORT=y
-CONFIG_MEDIA_SDR_SUPPORT=y
-CONFIG_MEDIA_PLATFORM_SUPPORT=y
-CONFIG_MEDIA_TEST_SUPPORT=y
-# end of Media device types
-
-#
-# Media core support
-#
-CONFIG_VIDEO_DEV=m
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_DVB_CORE=m
-# end of Media core support
-
-#
-# Video4Linux options
-#
-CONFIG_VIDEO_V4L2=m
-CONFIG_VIDEO_V4L2_I2C=y
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-CONFIG_VIDEO_TUNER=m
-CONFIG_V4L2_MEM2MEM_DEV=m
-CONFIG_V4L2_FLASH_LED_CLASS=m
-CONFIG_V4L2_FWNODE=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_DMA_SG=m
-CONFIG_VIDEOBUF_VMALLOC=m
-# end of Video4Linux options
-
-#
-# Media controller options
-#
-CONFIG_MEDIA_CONTROLLER_DVB=y
-CONFIG_MEDIA_CONTROLLER_REQUEST_API=y
-
-#
-# Please notice that the enabled Media controller Request API is EXPERIMENTAL
-#
-# end of Media controller options
-
-#
-# Digital TV options
-#
-# CONFIG_DVB_MMAP is not set
-CONFIG_DVB_NET=y
-CONFIG_DVB_MAX_ADAPTERS=8
-CONFIG_DVB_DYNAMIC_MINORS=y
-# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
-# CONFIG_DVB_ULE_DEBUG is not set
-# end of Digital TV options
-
-#
-# Media drivers
-#
-CONFIG_TTPCI_EEPROM=m
-CONFIG_MEDIA_USB_SUPPORT=y
-
-#
-# Webcam devices
-#
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
-CONFIG_USB_GSPCA_BENQ=m
-CONFIG_USB_GSPCA_CONEX=m
-CONFIG_USB_GSPCA_CPIA1=m
-CONFIG_USB_GSPCA_DTCS033=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_USB_GSPCA_JL2005BCD=m
-CONFIG_USB_GSPCA_KINECT=m
-CONFIG_USB_GSPCA_KONICA=m
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_USB_GSPCA_SE401=m
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-CONFIG_USB_GSPCA_SPCA1528=m
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_USB_GSPCA_STK014=m
-CONFIG_USB_GSPCA_STK1135=m
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-CONFIG_USB_GSPCA_TOPRO=m
-CONFIG_USB_GSPCA_TOUPTEK=m
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_VICAM=m
-CONFIG_USB_GSPCA_XIRLINK_CIT=m
-CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_USB_PWC=m
-# CONFIG_USB_PWC_DEBUG is not set
-CONFIG_USB_PWC_INPUT_EVDEV=y
-CONFIG_VIDEO_CPIA2=m
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-CONFIG_VIDEO_USBTV=m
-
-#
-# Analog TV USB devices
-#
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-CONFIG_VIDEO_PVRUSB2_DVB=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-CONFIG_VIDEO_HDPVR=m
-CONFIG_VIDEO_STK1160_COMMON=m
-CONFIG_VIDEO_STK1160=m
-CONFIG_VIDEO_GO7007=m
-CONFIG_VIDEO_GO7007_USB=m
-CONFIG_VIDEO_GO7007_LOADER=m
-CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
-
-#
-# Analog/digital TV USB devices
-#
-CONFIG_VIDEO_AU0828=m
-CONFIG_VIDEO_AU0828_V4L2=y
-CONFIG_VIDEO_AU0828_RC=y
-CONFIG_VIDEO_CX231XX=m
-CONFIG_VIDEO_CX231XX_RC=y
-CONFIG_VIDEO_CX231XX_ALSA=m
-CONFIG_VIDEO_CX231XX_DVB=m
-CONFIG_VIDEO_TM6000=m
-CONFIG_VIDEO_TM6000_ALSA=m
-CONFIG_VIDEO_TM6000_DVB=m
-
-#
-# Digital TV USB devices
-#
-CONFIG_DVB_USB=m
-# CONFIG_DVB_USB_DEBUG is not set
-CONFIG_DVB_USB_DIB3000MC=m
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_DVB_USB_CXUSB_ANALOG=y
-CONFIG_DVB_USB_M920X=m
-CONFIG_DVB_USB_DIGITV=m
-CONFIG_DVB_USB_VP7045=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-CONFIG_DVB_USB_PCTV452E=m
-CONFIG_DVB_USB_DW2102=m
-CONFIG_DVB_USB_CINERGY_T2=m
-CONFIG_DVB_USB_DTV5100=m
-CONFIG_DVB_USB_AZ6027=m
-CONFIG_DVB_USB_TECHNISAT_USB2=m
-CONFIG_DVB_USB_V2=m
-CONFIG_DVB_USB_AF9015=m
-CONFIG_DVB_USB_AF9035=m
-CONFIG_DVB_USB_ANYSEE=m
-CONFIG_DVB_USB_AU6610=m
-CONFIG_DVB_USB_AZ6007=m
-CONFIG_DVB_USB_CE6230=m
-CONFIG_DVB_USB_EC168=m
-CONFIG_DVB_USB_GL861=m
-CONFIG_DVB_USB_LME2510=m
-CONFIG_DVB_USB_MXL111SF=m
-CONFIG_DVB_USB_RTL28XXU=m
-CONFIG_DVB_USB_DVBSKY=m
-CONFIG_DVB_USB_ZD1301=m
-CONFIG_DVB_TTUSB_BUDGET=m
-CONFIG_DVB_TTUSB_DEC=m
-CONFIG_SMS_USB_DRV=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
-# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
-CONFIG_DVB_AS102=m
-
-#
-# Webcam, TV (analog/digital) USB devices
-#
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_V4L2=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_EM28XX_DVB=m
-CONFIG_VIDEO_EM28XX_RC=m
-
-#
-# Software defined radio USB devices
-#
-CONFIG_USB_AIRSPY=m
-CONFIG_USB_HACKRF=m
-CONFIG_USB_MSI2500=m
-CONFIG_MEDIA_PCI_SUPPORT=y
-
-#
-# Media capture support
-#
-CONFIG_VIDEO_MEYE=m
-CONFIG_VIDEO_SOLO6X10=m
-CONFIG_STA2X11_VIP=m
-CONFIG_VIDEO_TW5864=m
-CONFIG_VIDEO_TW68=m
-CONFIG_VIDEO_TW686X=m
-
-#
-# Media capture/analog TV support
-#
-CONFIG_VIDEO_IVTV=m
-# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set
-CONFIG_VIDEO_IVTV_ALSA=m
-CONFIG_VIDEO_FB_IVTV=m
-# CONFIG_VIDEO_FB_IVTV_FORCE_PAT is not set
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_MXB=m
-CONFIG_VIDEO_DT3155=m
-
-#
-# Media capture/analog/hybrid TV support
-#
-CONFIG_VIDEO_CX18=m
-CONFIG_VIDEO_CX18_ALSA=m
-CONFIG_VIDEO_CX23885=m
-CONFIG_MEDIA_ALTERA_CI=m
-CONFIG_VIDEO_CX25821=m
-CONFIG_VIDEO_CX25821_ALSA=m
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_CX88_ALSA=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-CONFIG_VIDEO_CX88_DVB=m
-CONFIG_VIDEO_CX88_ENABLE_VP3054=y
-CONFIG_VIDEO_CX88_VP3054=m
-CONFIG_VIDEO_CX88_MPEG=m
-CONFIG_VIDEO_BT848=m
-CONFIG_DVB_BT8XX=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_ALSA=m
-CONFIG_VIDEO_SAA7134_RC=y
-CONFIG_VIDEO_SAA7134_DVB=m
-CONFIG_VIDEO_SAA7134_GO7007=m
-CONFIG_VIDEO_SAA7164=m
-CONFIG_VIDEO_COBALT=m
-
-#
-# Media digital TV PCI Adapters
-#
-CONFIG_DVB_AV7110_IR=y
-CONFIG_DVB_AV7110=m
-CONFIG_DVB_AV7110_OSD=y
-CONFIG_DVB_BUDGET_CORE=m
-CONFIG_DVB_BUDGET=m
-CONFIG_DVB_BUDGET_CI=m
-CONFIG_DVB_BUDGET_AV=m
-CONFIG_DVB_BUDGET_PATCH=m
-CONFIG_DVB_B2C2_FLEXCOP_PCI=m
-# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set
-CONFIG_DVB_PLUTO2=m
-CONFIG_DVB_DM1105=m
-CONFIG_DVB_PT1=m
-CONFIG_DVB_PT3=m
-CONFIG_MANTIS_CORE=m
-CONFIG_DVB_MANTIS=m
-CONFIG_DVB_HOPPER=m
-CONFIG_DVB_NGENE=m
-CONFIG_DVB_DDBRIDGE=m
-# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set
-CONFIG_DVB_SMIPCIE=m
-CONFIG_DVB_NETUP_UNIDVB=m
-CONFIG_VIDEO_IPU3_CIO2=m
-CONFIG_CIO2_BRIDGE=y
-CONFIG_RADIO_ADAPTERS=y
-CONFIG_RADIO_TEA575X=m
-CONFIG_RADIO_SI470X=m
-CONFIG_USB_SI470X=m
-CONFIG_I2C_SI470X=m
-CONFIG_RADIO_SI4713=m
-CONFIG_USB_SI4713=m
-CONFIG_PLATFORM_SI4713=m
-CONFIG_I2C_SI4713=m
-CONFIG_RADIO_SI476X=m
-CONFIG_USB_MR800=m
-CONFIG_USB_DSBR=m
-CONFIG_RADIO_MAXIRADIO=m
-CONFIG_RADIO_SHARK=m
-CONFIG_RADIO_SHARK2=m
-CONFIG_USB_KEENE=m
-CONFIG_USB_RAREMONO=m
-CONFIG_USB_MA901=m
-CONFIG_RADIO_TEA5764=m
-CONFIG_RADIO_SAA7706H=m
-CONFIG_RADIO_TEF6862=m
-CONFIG_RADIO_TIMBERDALE=m
-CONFIG_RADIO_WL1273=m
-CONFIG_RADIO_WL128X=m
-CONFIG_V4L_RADIO_ISA_DRIVERS=y
-CONFIG_RADIO_ISA=m
-CONFIG_RADIO_CADET=m
-CONFIG_RADIO_RTRACK=m
-CONFIG_RADIO_RTRACK2=m
-CONFIG_RADIO_AZTECH=m
-CONFIG_RADIO_GEMTEK=m
-CONFIG_RADIO_MIROPCM20=m
-CONFIG_RADIO_SF16FMI=m
-CONFIG_RADIO_SF16FMR2=m
-CONFIG_RADIO_TERRATEC=m
-CONFIG_RADIO_TRUST=m
-CONFIG_RADIO_TYPHOON=m
-CONFIG_RADIO_ZOLTRIX=m
-CONFIG_MEDIA_COMMON_OPTIONS=y
-
-#
-# common driver options
-#
-CONFIG_VIDEO_CX2341X=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_CYPRESS_FIRMWARE=m
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_V4L2=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_DMA_CONTIG=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-CONFIG_VIDEOBUF2_DMA_SG=m
-CONFIG_VIDEOBUF2_DVB=m
-CONFIG_DVB_B2C2_FLEXCOP=m
-CONFIG_VIDEO_SAA7146=m
-CONFIG_VIDEO_SAA7146_VV=m
-CONFIG_SMS_SIANO_MDTV=m
-CONFIG_SMS_SIANO_RC=y
-CONFIG_SMS_SIANO_DEBUGFS=y
-CONFIG_VIDEO_V4L2_TPG=m
-CONFIG_V4L_PLATFORM_DRIVERS=y
-CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_VIDEO_VIA_CAMERA=m
-CONFIG_VIDEO_CADENCE=y
-CONFIG_VIDEO_CADENCE_CSI2RX=m
-CONFIG_VIDEO_CADENCE_CSI2TX=m
-CONFIG_VIDEO_ASPEED=m
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
-CONFIG_DVB_PLATFORM_DRIVERS=y
-CONFIG_SDR_PLATFORM_DRIVERS=y
-
-#
-# MMC/SDIO DVB adapters
-#
-CONFIG_SMS_SDIO_DRV=m
-CONFIG_V4L_TEST_DRIVERS=y
-# CONFIG_VIDEO_VIMC is not set
-CONFIG_VIDEO_VIVID=m
-CONFIG_VIDEO_VIVID_CEC=y
-CONFIG_VIDEO_VIVID_MAX_DEVS=64
-CONFIG_VIDEO_VIM2M=m
-CONFIG_VIDEO_VICODEC=m
-# CONFIG_DVB_TEST_DRIVERS is not set
-
-#
-# FireWire (IEEE 1394) Adapters
-#
-CONFIG_DVB_FIREDTV=m
-CONFIG_DVB_FIREDTV_INPUT=y
-# end of Media drivers
-
-#
-# Media ancillary drivers
-#
-CONFIG_MEDIA_ATTACH=y
-
-#
-# IR I2C driver auto-selected by 'Autoselect ancillary drivers'
-#
-CONFIG_VIDEO_IR_I2C=m
-
-#
-# Audio decoders, processors and mixers
-#
-CONFIG_VIDEO_TVAUDIO=m
-CONFIG_VIDEO_TDA7432=m
-CONFIG_VIDEO_TDA9840=m
-CONFIG_VIDEO_TDA1997X=m
-CONFIG_VIDEO_TEA6415C=m
-CONFIG_VIDEO_TEA6420=m
-CONFIG_VIDEO_MSP3400=m
-CONFIG_VIDEO_CS3308=m
-CONFIG_VIDEO_CS5345=m
-CONFIG_VIDEO_CS53L32A=m
-CONFIG_VIDEO_TLV320AIC23B=m
-CONFIG_VIDEO_UDA1342=m
-CONFIG_VIDEO_WM8775=m
-CONFIG_VIDEO_WM8739=m
-CONFIG_VIDEO_VP27SMPX=m
-CONFIG_VIDEO_SONY_BTF_MPX=m
-# end of Audio decoders, processors and mixers
-
-#
-# RDS decoders
-#
-CONFIG_VIDEO_SAA6588=m
-# end of RDS decoders
-
-#
-# Video decoders
-#
-CONFIG_VIDEO_ADV7180=m
-CONFIG_VIDEO_ADV7183=m
-CONFIG_VIDEO_ADV7604=m
-CONFIG_VIDEO_ADV7604_CEC=y
-CONFIG_VIDEO_ADV7842=m
-CONFIG_VIDEO_ADV7842_CEC=y
-CONFIG_VIDEO_BT819=m
-CONFIG_VIDEO_BT856=m
-CONFIG_VIDEO_BT866=m
-CONFIG_VIDEO_KS0127=m
-CONFIG_VIDEO_ML86V7667=m
-CONFIG_VIDEO_SAA7110=m
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_TC358743=m
-CONFIG_VIDEO_TC358743_CEC=y
-CONFIG_VIDEO_TVP514X=m
-CONFIG_VIDEO_TVP5150=m
-CONFIG_VIDEO_TVP7002=m
-CONFIG_VIDEO_TW2804=m
-CONFIG_VIDEO_TW9903=m
-CONFIG_VIDEO_TW9906=m
-CONFIG_VIDEO_TW9910=m
-CONFIG_VIDEO_VPX3220=m
-
-#
-# Video and audio decoders
-#
-CONFIG_VIDEO_SAA717X=m
-CONFIG_VIDEO_CX25840=m
-# end of Video decoders
-
-#
-# Video encoders
-#
-CONFIG_VIDEO_SAA7127=m
-CONFIG_VIDEO_SAA7185=m
-CONFIG_VIDEO_ADV7170=m
-CONFIG_VIDEO_ADV7175=m
-CONFIG_VIDEO_ADV7343=m
-CONFIG_VIDEO_ADV7393=m
-CONFIG_VIDEO_ADV7511=m
-CONFIG_VIDEO_ADV7511_CEC=y
-CONFIG_VIDEO_AD9389B=m
-CONFIG_VIDEO_AK881X=m
-CONFIG_VIDEO_THS8200=m
-# end of Video encoders
-
-#
-# Video improvement chips
-#
-CONFIG_VIDEO_UPD64031A=m
-CONFIG_VIDEO_UPD64083=m
-# end of Video improvement chips
-
-#
-# Audio/Video compression chips
-#
-CONFIG_VIDEO_SAA6752HS=m
-# end of Audio/Video compression chips
-
-#
-# SDR tuner chips
-#
-CONFIG_SDR_MAX2175=m
-# end of SDR tuner chips
-
-#
-# Miscellaneous helper chips
-#
-CONFIG_VIDEO_THS7303=m
-CONFIG_VIDEO_M52790=m
-CONFIG_VIDEO_I2C=m
-CONFIG_VIDEO_ST_MIPID02=m
-# end of Miscellaneous helper chips
-
-#
-# Camera sensor devices
-#
-CONFIG_VIDEO_APTINA_PLL=m
-CONFIG_VIDEO_CCS_PLL=m
-CONFIG_VIDEO_HI556=m
-CONFIG_VIDEO_IMX214=m
-CONFIG_VIDEO_IMX219=m
-CONFIG_VIDEO_IMX258=m
-CONFIG_VIDEO_IMX274=m
-CONFIG_VIDEO_IMX290=m
-CONFIG_VIDEO_IMX319=m
-CONFIG_VIDEO_IMX355=m
-CONFIG_VIDEO_OV02A10=m
-CONFIG_VIDEO_OV2640=m
-CONFIG_VIDEO_OV2659=m
-CONFIG_VIDEO_OV2680=m
-CONFIG_VIDEO_OV2685=m
-CONFIG_VIDEO_OV2740=m
-CONFIG_VIDEO_OV5647=m
-CONFIG_VIDEO_OV5648=m
-CONFIG_VIDEO_OV6650=m
-CONFIG_VIDEO_OV5670=m
-CONFIG_VIDEO_OV5675=m
-CONFIG_VIDEO_OV5695=m
-CONFIG_VIDEO_OV7251=m
-CONFIG_VIDEO_OV772X=m
-CONFIG_VIDEO_OV7640=m
-CONFIG_VIDEO_OV7670=m
-CONFIG_VIDEO_OV7740=m
-CONFIG_VIDEO_OV8856=m
-CONFIG_VIDEO_OV8865=m
-CONFIG_VIDEO_OV9640=m
-CONFIG_VIDEO_OV9650=m
-CONFIG_VIDEO_OV9734=m
-CONFIG_VIDEO_OV13858=m
-CONFIG_VIDEO_VS6624=m
-CONFIG_VIDEO_MT9M001=m
-CONFIG_VIDEO_MT9M032=m
-CONFIG_VIDEO_MT9M111=m
-CONFIG_VIDEO_MT9P031=m
-CONFIG_VIDEO_MT9T001=m
-CONFIG_VIDEO_MT9T112=m
-CONFIG_VIDEO_MT9V011=m
-CONFIG_VIDEO_MT9V032=m
-CONFIG_VIDEO_MT9V111=m
-CONFIG_VIDEO_SR030PC30=m
-CONFIG_VIDEO_NOON010PC30=m
-CONFIG_VIDEO_M5MOLS=m
-CONFIG_VIDEO_MAX9271_LIB=m
-CONFIG_VIDEO_RDACM20=m
-CONFIG_VIDEO_RDACM21=m
-CONFIG_VIDEO_RJ54N1=m
-CONFIG_VIDEO_S5K6AA=m
-CONFIG_VIDEO_S5K6A3=m
-CONFIG_VIDEO_S5K4ECGX=m
-CONFIG_VIDEO_S5K5BAF=m
-CONFIG_VIDEO_CCS=m
-CONFIG_VIDEO_ET8EK8=m
-CONFIG_VIDEO_S5C73M3=m
-# end of Camera sensor devices
-
-#
-# Lens drivers
-#
-CONFIG_VIDEO_AD5820=m
-CONFIG_VIDEO_AK7375=m
-CONFIG_VIDEO_DW9714=m
-CONFIG_VIDEO_DW9768=m
-CONFIG_VIDEO_DW9807_VCM=m
-# end of Lens drivers
-
-#
-# Flash devices
-#
-CONFIG_VIDEO_ADP1653=m
-CONFIG_VIDEO_LM3560=m
-CONFIG_VIDEO_LM3646=m
-# end of Flash devices
-
-#
-# SPI helper chips
-#
-CONFIG_VIDEO_GS1662=m
-# end of SPI helper chips
-
-#
-# Media SPI Adapters
-#
-CONFIG_CXD2880_SPI_DRV=m
-# end of Media SPI Adapters
-
-CONFIG_MEDIA_TUNER=m
-
-#
-# Customize TV tuners
-#
-CONFIG_MEDIA_TUNER_SIMPLE=m
-CONFIG_MEDIA_TUNER_TDA18250=m
-CONFIG_MEDIA_TUNER_TDA8290=m
-CONFIG_MEDIA_TUNER_TDA827X=m
-CONFIG_MEDIA_TUNER_TDA18271=m
-CONFIG_MEDIA_TUNER_TDA9887=m
-CONFIG_MEDIA_TUNER_TEA5761=m
-CONFIG_MEDIA_TUNER_TEA5767=m
-CONFIG_MEDIA_TUNER_MSI001=m
-CONFIG_MEDIA_TUNER_MT20XX=m
-CONFIG_MEDIA_TUNER_MT2060=m
-CONFIG_MEDIA_TUNER_MT2063=m
-CONFIG_MEDIA_TUNER_MT2266=m
-CONFIG_MEDIA_TUNER_MT2131=m
-CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_XC4000=m
-CONFIG_MEDIA_TUNER_MXL5005S=m
-CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=m
-CONFIG_MEDIA_TUNER_MAX2165=m
-CONFIG_MEDIA_TUNER_TDA18218=m
-CONFIG_MEDIA_TUNER_FC0011=m
-CONFIG_MEDIA_TUNER_FC0012=m
-CONFIG_MEDIA_TUNER_FC0013=m
-CONFIG_MEDIA_TUNER_TDA18212=m
-CONFIG_MEDIA_TUNER_E4000=m
-CONFIG_MEDIA_TUNER_FC2580=m
-CONFIG_MEDIA_TUNER_M88RS6000T=m
-CONFIG_MEDIA_TUNER_TUA9001=m
-CONFIG_MEDIA_TUNER_SI2157=m
-CONFIG_MEDIA_TUNER_IT913X=m
-CONFIG_MEDIA_TUNER_R820T=m
-CONFIG_MEDIA_TUNER_MXL301RF=m
-CONFIG_MEDIA_TUNER_QM1D1C0042=m
-CONFIG_MEDIA_TUNER_QM1D1B0004=m
-# end of Customize TV tuners
-
-#
-# Customise DVB Frontends
-#
-
-#
-# Multistandard (satellite) frontends
-#
-CONFIG_DVB_STB0899=m
-CONFIG_DVB_STB6100=m
-CONFIG_DVB_STV090x=m
-CONFIG_DVB_STV0910=m
-CONFIG_DVB_STV6110x=m
-CONFIG_DVB_STV6111=m
-CONFIG_DVB_MXL5XX=m
-CONFIG_DVB_M88DS3103=m
-
-#
-# Multistandard (cable + terrestrial) frontends
-#
-CONFIG_DVB_DRXK=m
-CONFIG_DVB_TDA18271C2DD=m
-CONFIG_DVB_SI2165=m
-CONFIG_DVB_MN88472=m
-CONFIG_DVB_MN88473=m
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_CX24110=m
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_ZL10036=m
-CONFIG_DVB_ZL10039=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0288=m
-CONFIG_DVB_STB6000=m
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_STV6110=m
-CONFIG_DVB_STV0900=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_TDA8261=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TUNER_CX24113=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TUA6100=m
-CONFIG_DVB_CX24116=m
-CONFIG_DVB_CX24117=m
-CONFIG_DVB_CX24120=m
-CONFIG_DVB_SI21XX=m
-CONFIG_DVB_TS2020=m
-CONFIG_DVB_DS3000=m
-CONFIG_DVB_MB86A16=m
-CONFIG_DVB_TDA10071=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_SP887X=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_S5H1432=m
-CONFIG_DVB_DRXD=m
-CONFIG_DVB_L64781=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_DIB3000MB=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_DVB_DIB7000P=m
-CONFIG_DVB_DIB9000=m
-CONFIG_DVB_TDA10048=m
-CONFIG_DVB_AF9013=m
-CONFIG_DVB_EC100=m
-CONFIG_DVB_STV0367=m
-CONFIG_DVB_CXD2820R=m
-CONFIG_DVB_CXD2841ER=m
-CONFIG_DVB_RTL2830=m
-CONFIG_DVB_RTL2832=m
-CONFIG_DVB_RTL2832_SDR=m
-CONFIG_DVB_SI2168=m
-CONFIG_DVB_AS102_FE=m
-CONFIG_DVB_ZD1301_DEMOD=m
-CONFIG_DVB_GP8PSK_FE=m
-CONFIG_DVB_CXD2880=m
-
-#
-# DVB-C (cable) frontends
-#
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
-CONFIG_DVB_NXT200X=m
-CONFIG_DVB_OR51211=m
-CONFIG_DVB_OR51132=m
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-CONFIG_DVB_LGDT3305=m
-CONFIG_DVB_LGDT3306A=m
-CONFIG_DVB_LG2160=m
-CONFIG_DVB_S5H1409=m
-CONFIG_DVB_AU8522=m
-CONFIG_DVB_AU8522_DTV=m
-CONFIG_DVB_AU8522_V4L=m
-CONFIG_DVB_S5H1411=m
-CONFIG_DVB_MXL692=m
-
-#
-# ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_S921=m
-CONFIG_DVB_DIB8000=m
-CONFIG_DVB_MB86A20S=m
-
-#
-# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_TC90522=m
-CONFIG_DVB_MN88443X=m
-
-#
-# Digital terrestrial only tuners/PLL
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TUNER_DIB0070=m
-CONFIG_DVB_TUNER_DIB0090=m
-
-#
-# SEC control devices for DVB-S
-#
-CONFIG_DVB_DRX39XYJ=m
-CONFIG_DVB_LNBH25=m
-CONFIG_DVB_LNBH29=m
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_LNBP22=m
-CONFIG_DVB_ISL6405=m
-CONFIG_DVB_ISL6421=m
-CONFIG_DVB_ISL6423=m
-CONFIG_DVB_A8293=m
-CONFIG_DVB_LGS8GL5=m
-CONFIG_DVB_LGS8GXX=m
-CONFIG_DVB_ATBM8830=m
-CONFIG_DVB_TDA665x=m
-CONFIG_DVB_IX2505V=m
-CONFIG_DVB_M88RS2000=m
-CONFIG_DVB_AF9033=m
-CONFIG_DVB_HORUS3A=m
-CONFIG_DVB_ASCOT2E=m
-CONFIG_DVB_HELENE=m
-
-#
-# Common Interface (EN50221) controller drivers
-#
-CONFIG_DVB_CXD2099=m
-CONFIG_DVB_SP2=m
-# end of Customise DVB Frontends
-
-#
-# Tools to develop new frontends
-#
-CONFIG_DVB_DUMMY_FE=m
-# end of Media ancillary drivers
-
-#
-# Graphics support
-#
-CONFIG_AGP=y
-CONFIG_AGP_ALI=m
-CONFIG_AGP_ATI=m
-CONFIG_AGP_AMD=y
-CONFIG_AGP_AMD64=y
-CONFIG_AGP_INTEL=y
-CONFIG_AGP_NVIDIA=y
-CONFIG_AGP_SIS=m
-CONFIG_AGP_SWORKS=m
-CONFIG_AGP_VIA=y
-CONFIG_AGP_EFFICEON=m
-CONFIG_INTEL_GTT=y
-CONFIG_VGA_ARB=y
-CONFIG_VGA_ARB_MAX_GPUS=16
-CONFIG_VGA_SWITCHEROO=y
-CONFIG_DRM=m
-CONFIG_DRM_MIPI_DBI=m
-CONFIG_DRM_MIPI_DSI=y
-# CONFIG_DRM_DP_AUX_CHARDEV is not set
-# CONFIG_DRM_DEBUG_SELFTEST is not set
-CONFIG_DRM_KMS_HELPER=m
-CONFIG_DRM_KMS_FB_HELPER=y
-# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set
-CONFIG_DRM_FBDEV_EMULATION=y
-CONFIG_DRM_FBDEV_OVERALLOC=100
-# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
-CONFIG_DRM_LOAD_EDID_FIRMWARE=y
-# CONFIG_DRM_DP_CEC is not set
-CONFIG_DRM_TTM=m
-CONFIG_DRM_VRAM_HELPER=m
-CONFIG_DRM_TTM_HELPER=m
-CONFIG_DRM_GEM_CMA_HELPER=y
-CONFIG_DRM_KMS_CMA_HELPER=y
-CONFIG_DRM_GEM_SHMEM_HELPER=y
-CONFIG_DRM_SCHED=m
-
-#
-# I2C encoder or helper chips
-#
-CONFIG_DRM_I2C_CH7006=m
-CONFIG_DRM_I2C_SIL164=m
-CONFIG_DRM_I2C_NXP_TDA998X=m
-CONFIG_DRM_I2C_NXP_TDA9950=m
-# end of I2C encoder or helper chips
-
-#
-# ARM devices
-#
-# end of ARM devices
-
-CONFIG_DRM_RADEON=m
-# CONFIG_DRM_RADEON_USERPTR is not set
-CONFIG_DRM_AMDGPU=m
-# CONFIG_DRM_AMDGPU_SI is not set
-# CONFIG_DRM_AMDGPU_CIK is not set
-CONFIG_DRM_AMDGPU_USERPTR=y
-
-#
-# ACP (Audio CoProcessor) Configuration
-#
-# CONFIG_DRM_AMD_ACP is not set
-# end of ACP (Audio CoProcessor) Configuration
-
-#
-# Display Engine Configuration
-#
-CONFIG_DRM_AMD_DC=y
-CONFIG_DRM_AMD_DC_DCN=y
-# CONFIG_DRM_AMD_DC_HDCP is not set
-CONFIG_DRM_AMD_DC_SI=y
-# CONFIG_DEBUG_KERNEL_DC is not set
-CONFIG_DRM_AMD_SECURE_DISPLAY=y
-# end of Display Engine Configuration
-
-CONFIG_DRM_NOUVEAU=m
-# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
-CONFIG_NOUVEAU_DEBUG=5
-CONFIG_NOUVEAU_DEBUG_DEFAULT=3
-# CONFIG_NOUVEAU_DEBUG_MMU is not set
-# CONFIG_NOUVEAU_DEBUG_PUSH is not set
-CONFIG_DRM_NOUVEAU_BACKLIGHT=y
-CONFIG_DRM_I915=m
-CONFIG_DRM_I915_FORCE_PROBE=""
-CONFIG_DRM_I915_CAPTURE_ERROR=y
-CONFIG_DRM_I915_COMPRESS_ERROR=y
-CONFIG_DRM_I915_USERPTR=y
-
-#
-# drm/i915 Debugging
-#
-# CONFIG_DRM_I915_WERROR is not set
-# CONFIG_DRM_I915_DEBUG is not set
-# CONFIG_DRM_I915_DEBUG_MMIO is not set
-# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
-# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
-# CONFIG_DRM_I915_DEBUG_GUC is not set
-# CONFIG_DRM_I915_SELFTEST is not set
-# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
-# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
-# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
-# end of drm/i915 Debugging
-
-#
-# drm/i915 Profile Guided Optimisation
-#
-CONFIG_DRM_I915_REQUEST_TIMEOUT=20000
-CONFIG_DRM_I915_FENCE_TIMEOUT=10000
-CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
-CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
-CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
-CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
-CONFIG_DRM_I915_STOP_TIMEOUT=100
-CONFIG_DRM_I915_TIMESLICE_DURATION=1
-# end of drm/i915 Profile Guided Optimisation
-
-CONFIG_DRM_VGEM=m
-# CONFIG_DRM_VKMS is not set
-CONFIG_DRM_VMWGFX=m
-CONFIG_DRM_VMWGFX_FBCON=y
-CONFIG_DRM_GMA500=m
-CONFIG_DRM_UDL=m
-CONFIG_DRM_AST=m
-# CONFIG_DRM_MGAG200 is not set
-CONFIG_DRM_QXL=m
-CONFIG_DRM_BOCHS=m
-CONFIG_DRM_VIRTIO_GPU=m
-CONFIG_DRM_PANEL=y
-
-#
-# Display Panels
-#
-# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
-# end of Display Panels
-
-CONFIG_DRM_BRIDGE=y
-CONFIG_DRM_PANEL_BRIDGE=y
-
-#
-# Display Interface Bridges
-#
-CONFIG_DRM_ANALOGIX_ANX78XX=m
-CONFIG_DRM_ANALOGIX_DP=m
-# end of Display Interface Bridges
-
-# CONFIG_DRM_ETNAVIV is not set
-CONFIG_DRM_CIRRUS_QEMU=m
-CONFIG_DRM_GM12U320=m
-CONFIG_TINYDRM_HX8357D=m
-CONFIG_TINYDRM_ILI9225=m
-CONFIG_TINYDRM_ILI9341=m
-CONFIG_TINYDRM_ILI9486=m
-CONFIG_TINYDRM_MI0283QT=m
-CONFIG_TINYDRM_REPAPER=m
-CONFIG_TINYDRM_ST7586=m
-CONFIG_TINYDRM_ST7735R=m
-CONFIG_DRM_XEN=y
-CONFIG_DRM_XEN_FRONTEND=m
-CONFIG_DRM_VBOXVIDEO=m
-CONFIG_DRM_GUD=m
-# CONFIG_DRM_LEGACY is not set
-CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
-
-#
-# Frame buffer Devices
-#
-CONFIG_FB_CMDLINE=y
-CONFIG_FB_NOTIFY=y
-CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
-CONFIG_FB_DDC=m
-CONFIG_FB_BOOT_VESA_SUPPORT=y
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-CONFIG_FB_SYS_FILLRECT=m
-CONFIG_FB_SYS_COPYAREA=m
-CONFIG_FB_SYS_IMAGEBLIT=m
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=m
-CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_HECUBA=m
-CONFIG_FB_SVGALIB=m
-CONFIG_FB_BACKLIGHT=m
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-CONFIG_FB_CIRRUS=m
-CONFIG_FB_PM2=m
-CONFIG_FB_PM2_FIFO_DISCONNECT=y
-CONFIG_FB_CYBER2000=m
-CONFIG_FB_CYBER2000_DDC=y
-CONFIG_FB_ARC=m
-CONFIG_FB_ASILIANT=y
-CONFIG_FB_IMSTT=y
-CONFIG_FB_VGA16=m
-CONFIG_FB_UVESA=m
-CONFIG_FB_VESA=y
-CONFIG_FB_EFI=y
-CONFIG_FB_N411=m
-CONFIG_FB_HGA=m
-CONFIG_FB_OPENCORES=m
-CONFIG_FB_S1D13XXX=m
-# CONFIG_FB_NVIDIA is not set
-CONFIG_FB_RIVA=m
-CONFIG_FB_RIVA_I2C=y
-# CONFIG_FB_RIVA_DEBUG is not set
-CONFIG_FB_RIVA_BACKLIGHT=y
-CONFIG_FB_I740=m
-CONFIG_FB_I810=m
-# CONFIG_FB_I810_GTF is not set
-CONFIG_FB_LE80578=m
-CONFIG_FB_CARILLO_RANCH=m
-CONFIG_FB_INTEL=m
-# CONFIG_FB_INTEL_DEBUG is not set
-CONFIG_FB_INTEL_I2C=y
-CONFIG_FB_MATROX=m
-CONFIG_FB_MATROX_MILLENIUM=y
-CONFIG_FB_MATROX_MYSTIQUE=y
-CONFIG_FB_MATROX_G=y
-CONFIG_FB_MATROX_I2C=m
-CONFIG_FB_MATROX_MAVEN=m
-CONFIG_FB_RADEON=m
-CONFIG_FB_RADEON_I2C=y
-CONFIG_FB_RADEON_BACKLIGHT=y
-# CONFIG_FB_RADEON_DEBUG is not set
-CONFIG_FB_ATY128=m
-CONFIG_FB_ATY128_BACKLIGHT=y
-CONFIG_FB_ATY=m
-CONFIG_FB_ATY_CT=y
-# CONFIG_FB_ATY_GENERIC_LCD is not set
-CONFIG_FB_ATY_GX=y
-CONFIG_FB_ATY_BACKLIGHT=y
-CONFIG_FB_S3=m
-CONFIG_FB_S3_DDC=y
-CONFIG_FB_SAVAGE=m
-CONFIG_FB_SAVAGE_I2C=y
-# CONFIG_FB_SAVAGE_ACCEL is not set
-CONFIG_FB_SIS=m
-CONFIG_FB_SIS_300=y
-CONFIG_FB_SIS_315=y
-CONFIG_FB_VIA=m
-# CONFIG_FB_VIA_DIRECT_PROCFS is not set
-CONFIG_FB_VIA_X_COMPATIBILITY=y
-CONFIG_FB_NEOMAGIC=m
-CONFIG_FB_KYRO=m
-CONFIG_FB_3DFX=m
-# CONFIG_FB_3DFX_ACCEL is not set
-# CONFIG_FB_3DFX_I2C is not set
-CONFIG_FB_VOODOO1=m
-CONFIG_FB_VT8623=m
-CONFIG_FB_TRIDENT=m
-CONFIG_FB_ARK=m
-CONFIG_FB_PM3=m
-CONFIG_FB_CARMINE=m
-CONFIG_FB_CARMINE_DRAM_EVAL=y
-# CONFIG_CARMINE_DRAM_CUSTOM is not set
-CONFIG_FB_GEODE=y
-CONFIG_FB_GEODE_LX=m
-CONFIG_FB_GEODE_GX=m
-CONFIG_FB_GEODE_GX1=m
-CONFIG_FB_SM501=m
-CONFIG_FB_SMSCUFX=m
-CONFIG_FB_UDL=m
-CONFIG_FB_IBM_GXT4500=m
-# CONFIG_FB_VIRTUAL is not set
-CONFIG_XEN_FBDEV_FRONTEND=m
-CONFIG_FB_METRONOME=m
-CONFIG_FB_MB862XX=m
-CONFIG_FB_MB862XX_PCI_GDC=y
-CONFIG_FB_MB862XX_I2C=y
-CONFIG_FB_HYPERV=m
-CONFIG_FB_SIMPLE=y
-CONFIG_FB_SM712=m
-# end of Frame buffer Devices
-
-#
-# Backlight & LCD device support
-#
-CONFIG_LCD_CLASS_DEVICE=m
-CONFIG_LCD_L4F00242T03=m
-CONFIG_LCD_LMS283GF05=m
-CONFIG_LCD_LTV350QV=m
-CONFIG_LCD_ILI922X=m
-CONFIG_LCD_ILI9320=m
-CONFIG_LCD_TDO24M=m
-CONFIG_LCD_VGG2432A4=m
-CONFIG_LCD_PLATFORM=m
-CONFIG_LCD_AMS369FG06=m
-CONFIG_LCD_LMS501KF03=m
-CONFIG_LCD_HX8357=m
-CONFIG_LCD_OTM3225A=m
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_KTD253=m
-CONFIG_BACKLIGHT_LM3533=m
-CONFIG_BACKLIGHT_CARILLO_RANCH=m
-CONFIG_BACKLIGHT_PWM=m
-CONFIG_BACKLIGHT_DA903X=m
-CONFIG_BACKLIGHT_DA9052=m
-CONFIG_BACKLIGHT_MAX8925=m
-CONFIG_BACKLIGHT_APPLE=m
-CONFIG_BACKLIGHT_QCOM_WLED=m
-CONFIG_BACKLIGHT_SAHARA=m
-CONFIG_BACKLIGHT_WM831X=m
-CONFIG_BACKLIGHT_ADP5520=m
-CONFIG_BACKLIGHT_ADP8860=m
-CONFIG_BACKLIGHT_ADP8870=m
-CONFIG_BACKLIGHT_88PM860X=m
-CONFIG_BACKLIGHT_PCF50633=m
-CONFIG_BACKLIGHT_AAT2870=m
-CONFIG_BACKLIGHT_LM3630A=m
-CONFIG_BACKLIGHT_LM3639=m
-CONFIG_BACKLIGHT_LP855X=m
-CONFIG_BACKLIGHT_LP8788=m
-CONFIG_BACKLIGHT_PANDORA=m
-CONFIG_BACKLIGHT_SKY81452=m
-CONFIG_BACKLIGHT_AS3711=m
-CONFIG_BACKLIGHT_GPIO=m
-CONFIG_BACKLIGHT_LV5207LP=m
-CONFIG_BACKLIGHT_BD6107=m
-CONFIG_BACKLIGHT_ARCXCNN=m
-CONFIG_BACKLIGHT_RAVE_SP=m
-# end of Backlight & LCD device support
-
-CONFIG_VGASTATE=m
-CONFIG_VIDEOMODE_HELPERS=y
-CONFIG_HDMI=y
-
-#
-# Console display driver support
-#
-CONFIG_VGA_CONSOLE=y
-CONFIG_MDA_CONSOLE=m
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_DUMMY_CONSOLE_COLUMNS=80
-CONFIG_DUMMY_CONSOLE_ROWS=25
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
-# end of Console display driver support
-
-CONFIG_LOGO=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-# CONFIG_LOGO_LINUX_CLUT224 is not set
-# end of Graphics support
-
-CONFIG_SOUND=m
-CONFIG_SOUND_OSS_CORE=y
-# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_PCM_ELD=y
-CONFIG_SND_PCM_IEC958=y
-CONFIG_SND_DMAENGINE_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_SEQ_DEVICE=m
-CONFIG_SND_RAWMIDI=m
-CONFIG_SND_COMPRESS_OFFLOAD=m
-CONFIG_SND_JACK=y
-CONFIG_SND_JACK_INPUT_DEV=y
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-CONFIG_SND_PCM_TIMER=y
-CONFIG_SND_HRTIMER=m
-CONFIG_SND_DYNAMIC_MINORS=y
-CONFIG_SND_MAX_CARDS=32
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_PROC_FS=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_VMASTER=y
-CONFIG_SND_DMA_SGBUF=y
-CONFIG_SND_CTL_LED=m
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_SEQ_DUMMY=m
-# CONFIG_SND_SEQUENCER_OSS is not set
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-CONFIG_SND_SEQ_MIDI_EVENT=m
-CONFIG_SND_SEQ_MIDI=m
-CONFIG_SND_SEQ_MIDI_EMUL=m
-CONFIG_SND_SEQ_VIRMIDI=m
-CONFIG_SND_MPU401_UART=m
-CONFIG_SND_OPL3_LIB=m
-CONFIG_SND_OPL4_LIB=m
-CONFIG_SND_OPL3_LIB_SEQ=m
-CONFIG_SND_OPL4_LIB_SEQ=m
-CONFIG_SND_VX_LIB=m
-CONFIG_SND_AC97_CODEC=m
-CONFIG_SND_DRIVERS=y
-CONFIG_SND_PCSP=m
-CONFIG_SND_DUMMY=m
-CONFIG_SND_ALOOP=m
-CONFIG_SND_VIRMIDI=m
-CONFIG_SND_MTPAV=m
-CONFIG_SND_MTS64=m
-CONFIG_SND_SERIAL_U16550=m
-CONFIG_SND_MPU401=m
-CONFIG_SND_PORTMAN2X4=m
-CONFIG_SND_AC97_POWER_SAVE=y
-CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
-CONFIG_SND_WSS_LIB=m
-CONFIG_SND_SB_COMMON=m
-CONFIG_SND_SB8_DSP=m
-CONFIG_SND_SB16_DSP=m
-CONFIG_SND_ISA=y
-CONFIG_SND_ADLIB=m
-CONFIG_SND_AD1816A=m
-CONFIG_SND_AD1848=m
-CONFIG_SND_ALS100=m
-CONFIG_SND_AZT1605=m
-CONFIG_SND_AZT2316=m
-CONFIG_SND_AZT2320=m
-CONFIG_SND_CMI8328=m
-CONFIG_SND_CMI8330=m
-CONFIG_SND_CS4231=m
-CONFIG_SND_CS4236=m
-CONFIG_SND_ES1688=m
-CONFIG_SND_ES18XX=m
-CONFIG_SND_SC6000=m
-CONFIG_SND_GUSCLASSIC=m
-CONFIG_SND_GUSEXTREME=m
-CONFIG_SND_GUSMAX=m
-CONFIG_SND_INTERWAVE=m
-CONFIG_SND_INTERWAVE_STB=m
-CONFIG_SND_JAZZ16=m
-CONFIG_SND_OPL3SA2=m
-CONFIG_SND_OPTI92X_AD1848=m
-CONFIG_SND_OPTI92X_CS4231=m
-CONFIG_SND_OPTI93X=m
-CONFIG_SND_MIRO=m
-CONFIG_SND_SB8=m
-CONFIG_SND_SB16=m
-CONFIG_SND_SBAWE=m
-CONFIG_SND_SBAWE_SEQ=m
-CONFIG_SND_SB16_CSP=y
-CONFIG_SND_SSCAPE=m
-CONFIG_SND_WAVEFRONT=m
-CONFIG_SND_MSND_PINNACLE=m
-CONFIG_SND_MSND_CLASSIC=m
-CONFIG_SND_PCI=y
-CONFIG_SND_AD1889=m
-CONFIG_SND_ALS4000=m
-CONFIG_SND_ASIHPI=m
-CONFIG_SND_ATIIXP=m
-CONFIG_SND_ATIIXP_MODEM=m
-CONFIG_SND_AU8810=m
-CONFIG_SND_AU8820=m
-CONFIG_SND_AU8830=m
-CONFIG_SND_AW2=m
-CONFIG_SND_BT87X=m
-# CONFIG_SND_BT87X_OVERCLOCK is not set
-CONFIG_SND_CA0106=m
-CONFIG_SND_CMIPCI=m
-CONFIG_SND_OXYGEN_LIB=m
-CONFIG_SND_OXYGEN=m
-CONFIG_SND_CS4281=m
-CONFIG_SND_CS46XX=m
-CONFIG_SND_CS46XX_NEW_DSP=y
-CONFIG_SND_CS5530=m
-CONFIG_SND_CS5535AUDIO=m
-CONFIG_SND_CTXFI=m
-CONFIG_SND_DARLA20=m
-CONFIG_SND_GINA20=m
-CONFIG_SND_LAYLA20=m
-CONFIG_SND_DARLA24=m
-CONFIG_SND_GINA24=m
-CONFIG_SND_LAYLA24=m
-CONFIG_SND_MONA=m
-CONFIG_SND_MIA=m
-CONFIG_SND_ECHO3G=m
-CONFIG_SND_INDIGO=m
-CONFIG_SND_INDIGOIO=m
-CONFIG_SND_INDIGODJ=m
-CONFIG_SND_INDIGOIOX=m
-CONFIG_SND_INDIGODJX=m
-CONFIG_SND_ENS1370=m
-CONFIG_SND_ENS1371=m
-CONFIG_SND_FM801=m
-CONFIG_SND_FM801_TEA575X_BOOL=y
-CONFIG_SND_HDSP=m
-CONFIG_SND_HDSPM=m
-CONFIG_SND_ICE1724=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
-CONFIG_SND_KORG1212=m
-CONFIG_SND_LOLA=m
-CONFIG_SND_LX6464ES=m
-CONFIG_SND_MIXART=m
-CONFIG_SND_NM256=m
-CONFIG_SND_PCXHR=m
-CONFIG_SND_RIPTIDE=m
-CONFIG_SND_RME32=m
-CONFIG_SND_RME96=m
-CONFIG_SND_RME9652=m
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
-CONFIG_SND_VIRTUOSO=m
-CONFIG_SND_VX222=m
-CONFIG_SND_YMFPCI=m
-
-#
-# HD-Audio
-#
-CONFIG_SND_HDA=m
-CONFIG_SND_HDA_GENERIC_LEDS=y
-CONFIG_SND_HDA_INTEL=m
-CONFIG_SND_HDA_HWDEP=y
-CONFIG_SND_HDA_RECONFIG=y
-CONFIG_SND_HDA_INPUT_BEEP=y
-CONFIG_SND_HDA_INPUT_BEEP_MODE=0
-CONFIG_SND_HDA_PATCH_LOADER=y
-CONFIG_SND_HDA_CODEC_REALTEK=m
-CONFIG_SND_HDA_CODEC_ANALOG=m
-CONFIG_SND_HDA_CODEC_SIGMATEL=m
-CONFIG_SND_HDA_CODEC_VIA=m
-CONFIG_SND_HDA_CODEC_HDMI=m
-CONFIG_SND_HDA_CODEC_CIRRUS=m
-CONFIG_SND_HDA_CODEC_CONEXANT=m
-CONFIG_SND_HDA_CODEC_CA0110=m
-CONFIG_SND_HDA_CODEC_CA0132=m
-CONFIG_SND_HDA_CODEC_CA0132_DSP=y
-CONFIG_SND_HDA_CODEC_CMEDIA=m
-CONFIG_SND_HDA_CODEC_SI3054=m
-CONFIG_SND_HDA_GENERIC=m
-CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
-CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM=y
-# end of HD-Audio
-
-CONFIG_SND_HDA_CORE=m
-CONFIG_SND_HDA_DSP_LOADER=y
-CONFIG_SND_HDA_COMPONENT=y
-CONFIG_SND_HDA_I915=y
-CONFIG_SND_HDA_EXT_CORE=m
-CONFIG_SND_HDA_PREALLOC_SIZE=0
-CONFIG_SND_INTEL_NHLT=y
-CONFIG_SND_INTEL_DSP_CONFIG=m
-CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m
-CONFIG_SND_INTEL_BYT_PREFER_SOF=y
-CONFIG_SND_SPI=y
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
-CONFIG_SND_USB_UA101=m
-CONFIG_SND_USB_USX2Y=m
-CONFIG_SND_USB_CAIAQ=m
-CONFIG_SND_USB_CAIAQ_INPUT=y
-CONFIG_SND_USB_US122L=m
-CONFIG_SND_USB_6FIRE=m
-CONFIG_SND_USB_HIFACE=m
-CONFIG_SND_BCD2000=m
-CONFIG_SND_USB_LINE6=m
-CONFIG_SND_USB_POD=m
-CONFIG_SND_USB_PODHD=m
-CONFIG_SND_USB_TONEPORT=m
-CONFIG_SND_USB_VARIAX=m
-CONFIG_SND_FIREWIRE=y
-CONFIG_SND_FIREWIRE_LIB=m
-CONFIG_SND_DICE=m
-CONFIG_SND_OXFW=m
-CONFIG_SND_ISIGHT=m
-CONFIG_SND_FIREWORKS=m
-CONFIG_SND_BEBOB=m
-CONFIG_SND_FIREWIRE_DIGI00X=m
-CONFIG_SND_FIREWIRE_TASCAM=m
-CONFIG_SND_FIREWIRE_MOTU=m
-CONFIG_SND_FIREFACE=m
-CONFIG_SND_PCMCIA=y
-CONFIG_SND_VXPOCKET=m
-CONFIG_SND_PDAUDIOCF=m
-CONFIG_SND_SOC=m
-CONFIG_SND_SOC_AC97_BUS=y
-CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
-CONFIG_SND_SOC_COMPRESS=y
-CONFIG_SND_SOC_TOPOLOGY=y
-CONFIG_SND_SOC_ACPI=m
-CONFIG_SND_SOC_ADI=m
-CONFIG_SND_SOC_ADI_AXI_I2S=m
-CONFIG_SND_SOC_ADI_AXI_SPDIF=m
-CONFIG_SND_SOC_AMD_ACP=m
-CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m
-CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m
-CONFIG_SND_SOC_AMD_ACP3x=m
-CONFIG_SND_SOC_AMD_RV_RT5682_MACH=m
-CONFIG_SND_SOC_AMD_RENOIR=m
-CONFIG_SND_SOC_AMD_RENOIR_MACH=m
-CONFIG_SND_ATMEL_SOC=m
-CONFIG_SND_BCM63XX_I2S_WHISTLER=m
-CONFIG_SND_DESIGNWARE_I2S=m
-# CONFIG_SND_DESIGNWARE_PCM is not set
-
-#
-# SoC Audio for Freescale CPUs
-#
-
-#
-# Common SoC Audio options for Freescale CPUs:
-#
-CONFIG_SND_SOC_FSL_ASRC=m
-CONFIG_SND_SOC_FSL_SAI=m
-CONFIG_SND_SOC_FSL_MQS=m
-CONFIG_SND_SOC_FSL_AUDMIX=m
-CONFIG_SND_SOC_FSL_SSI=m
-CONFIG_SND_SOC_FSL_SPDIF=m
-CONFIG_SND_SOC_FSL_ESAI=m
-CONFIG_SND_SOC_FSL_MICFIL=m
-CONFIG_SND_SOC_FSL_EASRC=m
-CONFIG_SND_SOC_FSL_XCVR=m
-CONFIG_SND_SOC_FSL_RPMSG=m
-CONFIG_SND_SOC_IMX_AUDMUX=m
-# end of SoC Audio for Freescale CPUs
-
-CONFIG_SND_I2S_HI6210_I2S=m
-# CONFIG_SND_SOC_IMG is not set
-CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
-CONFIG_SND_SOC_INTEL_SST=m
-CONFIG_SND_SOC_INTEL_CATPT=m
-CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
-CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
-CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m
-CONFIG_SND_SOC_INTEL_SKYLAKE=m
-CONFIG_SND_SOC_INTEL_SKL=m
-CONFIG_SND_SOC_INTEL_APL=m
-CONFIG_SND_SOC_INTEL_KBL=m
-CONFIG_SND_SOC_INTEL_GLK=m
-CONFIG_SND_SOC_INTEL_CNL=m
-CONFIG_SND_SOC_INTEL_CFL=m
-CONFIG_SND_SOC_INTEL_CML_H=m
-CONFIG_SND_SOC_INTEL_CML_LP=m
-CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m
-CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m
-CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
-CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
-CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
-CONFIG_SND_SOC_INTEL_MACH=y
-# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
-CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
-CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
-CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
-CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
-CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
-CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
-CONFIG_SND_SOC_INTEL_BYTCR_WM5102_MACH=m
-CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
-CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
-CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
-CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
-CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH=m
-CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
-CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
-CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
-CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
-CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
-CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
-CONFIG_SND_SOC_INTEL_DA7219_MAX98357A_GENERIC=m
-CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON=m
-CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
-CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
-CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH=m
-CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m
-CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m
-CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m
-CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH=m
-CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH=m
-CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
-CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH=m
-CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
-CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
-CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
-CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
-CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
-CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m
-CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH=m
-CONFIG_SND_SOC_MTK_BTCVSD=m
-CONFIG_SND_SOC_SOF_TOPLEVEL=y
-CONFIG_SND_SOC_SOF_PCI_DEV=m
-CONFIG_SND_SOC_SOF_PCI=m
-CONFIG_SND_SOC_SOF_ACPI=m
-CONFIG_SND_SOC_SOF_ACPI_DEV=m
-# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set
-# CONFIG_SND_SOC_SOF_DEVELOPER_SUPPORT is not set
-CONFIG_SND_SOC_SOF=m
-CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y
-CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
-CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m
-CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m
-CONFIG_SND_SOC_SOF_INTEL_COMMON=m
-CONFIG_SND_SOC_SOF_BAYTRAIL=m
-CONFIG_SND_SOC_SOF_BROADWELL=m
-CONFIG_SND_SOC_SOF_MERRIFIELD=m
-CONFIG_SND_SOC_SOF_INTEL_APL=m
-CONFIG_SND_SOC_SOF_APOLLOLAKE=m
-CONFIG_SND_SOC_SOF_GEMINILAKE=m
-CONFIG_SND_SOC_SOF_INTEL_CNL=m
-CONFIG_SND_SOC_SOF_CANNONLAKE=m
-CONFIG_SND_SOC_SOF_COFFEELAKE=m
-CONFIG_SND_SOC_SOF_COMETLAKE=m
-CONFIG_SND_SOC_SOF_INTEL_ICL=m
-CONFIG_SND_SOC_SOF_ICELAKE=m
-CONFIG_SND_SOC_SOF_JASPERLAKE=m
-CONFIG_SND_SOC_SOF_INTEL_TGL=m
-CONFIG_SND_SOC_SOF_TIGERLAKE=m
-CONFIG_SND_SOC_SOF_ELKHARTLAKE=m
-CONFIG_SND_SOC_SOF_ALDERLAKE=m
-CONFIG_SND_SOC_SOF_HDA_COMMON=m
-CONFIG_SND_SOC_SOF_HDA_LINK=y
-CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
-# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
-CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m
-CONFIG_SND_SOC_SOF_HDA=m
-CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=m
-CONFIG_SND_SOC_SOF_XTENSA=m
-
-#
-# STMicroelectronics STM32 SOC audio support
-#
-# end of STMicroelectronics STM32 SOC audio support
-
-CONFIG_SND_SOC_XILINX_I2S=m
-# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
-# CONFIG_SND_SOC_XILINX_SPDIF is not set
-CONFIG_SND_SOC_XTFPGA_I2S=m
-CONFIG_SND_SOC_I2C_AND_SPI=m
-
-#
-# CODEC drivers
-#
-CONFIG_SND_SOC_ARIZONA=m
-CONFIG_SND_SOC_WM_ADSP=m
-CONFIG_SND_SOC_AC97_CODEC=m
-CONFIG_SND_SOC_ADAU_UTILS=m
-CONFIG_SND_SOC_ADAU1372=m
-CONFIG_SND_SOC_ADAU1372_I2C=m
-CONFIG_SND_SOC_ADAU1372_SPI=m
-CONFIG_SND_SOC_ADAU1701=m
-CONFIG_SND_SOC_ADAU17X1=m
-CONFIG_SND_SOC_ADAU1761=m
-CONFIG_SND_SOC_ADAU1761_I2C=m
-CONFIG_SND_SOC_ADAU1761_SPI=m
-CONFIG_SND_SOC_ADAU7002=m
-CONFIG_SND_SOC_ADAU7118=m
-CONFIG_SND_SOC_ADAU7118_HW=m
-CONFIG_SND_SOC_ADAU7118_I2C=m
-CONFIG_SND_SOC_AK4104=m
-CONFIG_SND_SOC_AK4118=m
-CONFIG_SND_SOC_AK4458=m
-CONFIG_SND_SOC_AK4554=m
-CONFIG_SND_SOC_AK4613=m
-CONFIG_SND_SOC_AK4642=m
-CONFIG_SND_SOC_AK5386=m
-CONFIG_SND_SOC_AK5558=m
-CONFIG_SND_SOC_ALC5623=m
-CONFIG_SND_SOC_BD28623=m
-CONFIG_SND_SOC_BT_SCO=m
-CONFIG_SND_SOC_CROS_EC_CODEC=m
-CONFIG_SND_SOC_CS35L32=m
-CONFIG_SND_SOC_CS35L33=m
-CONFIG_SND_SOC_CS35L34=m
-CONFIG_SND_SOC_CS35L35=m
-CONFIG_SND_SOC_CS35L36=m
-CONFIG_SND_SOC_CS42L42=m
-CONFIG_SND_SOC_CS42L51=m
-CONFIG_SND_SOC_CS42L51_I2C=m
-CONFIG_SND_SOC_CS42L52=m
-CONFIG_SND_SOC_CS42L56=m
-CONFIG_SND_SOC_CS42L73=m
-CONFIG_SND_SOC_CS4234=m
-CONFIG_SND_SOC_CS4265=m
-CONFIG_SND_SOC_CS4270=m
-CONFIG_SND_SOC_CS4271=m
-CONFIG_SND_SOC_CS4271_I2C=m
-CONFIG_SND_SOC_CS4271_SPI=m
-CONFIG_SND_SOC_CS42XX8=m
-CONFIG_SND_SOC_CS42XX8_I2C=m
-CONFIG_SND_SOC_CS43130=m
-CONFIG_SND_SOC_CS4341=m
-CONFIG_SND_SOC_CS4349=m
-CONFIG_SND_SOC_CS53L30=m
-CONFIG_SND_SOC_CX2072X=m
-CONFIG_SND_SOC_DA7213=m
-CONFIG_SND_SOC_DA7219=m
-CONFIG_SND_SOC_DMIC=m
-CONFIG_SND_SOC_HDMI_CODEC=m
-CONFIG_SND_SOC_ES7134=m
-CONFIG_SND_SOC_ES7241=m
-CONFIG_SND_SOC_ES8316=m
-CONFIG_SND_SOC_ES8328=m
-CONFIG_SND_SOC_ES8328_I2C=m
-CONFIG_SND_SOC_ES8328_SPI=m
-CONFIG_SND_SOC_GTM601=m
-CONFIG_SND_SOC_HDAC_HDMI=m
-CONFIG_SND_SOC_HDAC_HDA=m
-CONFIG_SND_SOC_INNO_RK3036=m
-CONFIG_SND_SOC_MAX98088=m
-CONFIG_SND_SOC_MAX98090=m
-CONFIG_SND_SOC_MAX98357A=m
-CONFIG_SND_SOC_MAX98504=m
-CONFIG_SND_SOC_MAX9867=m
-CONFIG_SND_SOC_MAX98927=m
-CONFIG_SND_SOC_MAX98373=m
-CONFIG_SND_SOC_MAX98373_I2C=m
-CONFIG_SND_SOC_MAX98390=m
-CONFIG_SND_SOC_MAX9860=m
-CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
-CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
-CONFIG_SND_SOC_PCM1681=m
-CONFIG_SND_SOC_PCM1789=m
-CONFIG_SND_SOC_PCM1789_I2C=m
-CONFIG_SND_SOC_PCM179X=m
-CONFIG_SND_SOC_PCM179X_I2C=m
-CONFIG_SND_SOC_PCM179X_SPI=m
-CONFIG_SND_SOC_PCM186X=m
-CONFIG_SND_SOC_PCM186X_I2C=m
-CONFIG_SND_SOC_PCM186X_SPI=m
-CONFIG_SND_SOC_PCM3060=m
-CONFIG_SND_SOC_PCM3060_I2C=m
-CONFIG_SND_SOC_PCM3060_SPI=m
-CONFIG_SND_SOC_PCM3168A=m
-CONFIG_SND_SOC_PCM3168A_I2C=m
-CONFIG_SND_SOC_PCM3168A_SPI=m
-CONFIG_SND_SOC_PCM5102A=m
-CONFIG_SND_SOC_PCM512x=m
-CONFIG_SND_SOC_PCM512x_I2C=m
-CONFIG_SND_SOC_PCM512x_SPI=m
-# CONFIG_SND_SOC_RK3328 is not set
-CONFIG_SND_SOC_RL6231=m
-CONFIG_SND_SOC_RL6347A=m
-CONFIG_SND_SOC_RT286=m
-CONFIG_SND_SOC_RT298=m
-CONFIG_SND_SOC_RT1011=m
-CONFIG_SND_SOC_RT1015=m
-CONFIG_SND_SOC_RT1015P=m
-CONFIG_SND_SOC_RT5514=m
-CONFIG_SND_SOC_RT5514_SPI=m
-CONFIG_SND_SOC_RT5616=m
-CONFIG_SND_SOC_RT5631=m
-CONFIG_SND_SOC_RT5640=m
-CONFIG_SND_SOC_RT5645=m
-CONFIG_SND_SOC_RT5651=m
-CONFIG_SND_SOC_RT5659=m
-CONFIG_SND_SOC_RT5660=m
-CONFIG_SND_SOC_RT5663=m
-CONFIG_SND_SOC_RT5670=m
-CONFIG_SND_SOC_RT5677=m
-CONFIG_SND_SOC_RT5677_SPI=m
-CONFIG_SND_SOC_RT5682=m
-CONFIG_SND_SOC_RT5682_I2C=m
-CONFIG_SND_SOC_SGTL5000=m
-CONFIG_SND_SOC_SI476X=m
-CONFIG_SND_SOC_SIGMADSP=m
-CONFIG_SND_SOC_SIGMADSP_I2C=m
-CONFIG_SND_SOC_SIGMADSP_REGMAP=m
-CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
-CONFIG_SND_SOC_SIMPLE_MUX=m
-CONFIG_SND_SOC_SPDIF=m
-CONFIG_SND_SOC_SSM2305=m
-CONFIG_SND_SOC_SSM2602=m
-CONFIG_SND_SOC_SSM2602_SPI=m
-CONFIG_SND_SOC_SSM2602_I2C=m
-CONFIG_SND_SOC_SSM4567=m
-CONFIG_SND_SOC_STA32X=m
-CONFIG_SND_SOC_STA350=m
-CONFIG_SND_SOC_STI_SAS=m
-CONFIG_SND_SOC_TAS2552=m
-CONFIG_SND_SOC_TAS2562=m
-CONFIG_SND_SOC_TAS2764=m
-CONFIG_SND_SOC_TAS2770=m
-CONFIG_SND_SOC_TAS5086=m
-CONFIG_SND_SOC_TAS571X=m
-CONFIG_SND_SOC_TAS5720=m
-CONFIG_SND_SOC_TAS6424=m
-CONFIG_SND_SOC_TDA7419=m
-CONFIG_SND_SOC_TFA9879=m
-CONFIG_SND_SOC_TLV320AIC23=m
-CONFIG_SND_SOC_TLV320AIC23_I2C=m
-CONFIG_SND_SOC_TLV320AIC23_SPI=m
-CONFIG_SND_SOC_TLV320AIC31XX=m
-CONFIG_SND_SOC_TLV320AIC32X4=m
-CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
-CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
-CONFIG_SND_SOC_TLV320AIC3X=m
-CONFIG_SND_SOC_TLV320AIC3X_I2C=m
-CONFIG_SND_SOC_TLV320AIC3X_SPI=m
-CONFIG_SND_SOC_TLV320ADCX140=m
-CONFIG_SND_SOC_TS3A227E=m
-CONFIG_SND_SOC_TSCS42XX=m
-CONFIG_SND_SOC_TSCS454=m
-CONFIG_SND_SOC_UDA1334=m
-CONFIG_SND_SOC_WM5102=m
-CONFIG_SND_SOC_WM8510=m
-CONFIG_SND_SOC_WM8523=m
-CONFIG_SND_SOC_WM8524=m
-CONFIG_SND_SOC_WM8580=m
-CONFIG_SND_SOC_WM8711=m
-CONFIG_SND_SOC_WM8728=m
-CONFIG_SND_SOC_WM8731=m
-CONFIG_SND_SOC_WM8737=m
-CONFIG_SND_SOC_WM8741=m
-CONFIG_SND_SOC_WM8750=m
-CONFIG_SND_SOC_WM8753=m
-CONFIG_SND_SOC_WM8770=m
-CONFIG_SND_SOC_WM8776=m
-CONFIG_SND_SOC_WM8782=m
-CONFIG_SND_SOC_WM8804=m
-CONFIG_SND_SOC_WM8804_I2C=m
-CONFIG_SND_SOC_WM8804_SPI=m
-CONFIG_SND_SOC_WM8903=m
-CONFIG_SND_SOC_WM8904=m
-CONFIG_SND_SOC_WM8960=m
-CONFIG_SND_SOC_WM8962=m
-CONFIG_SND_SOC_WM8974=m
-CONFIG_SND_SOC_WM8978=m
-CONFIG_SND_SOC_WM8985=m
-CONFIG_SND_SOC_ZL38060=m
-CONFIG_SND_SOC_ZX_AUD96P22=m
-CONFIG_SND_SOC_MAX9759=m
-CONFIG_SND_SOC_MT6351=m
-CONFIG_SND_SOC_MT6358=m
-CONFIG_SND_SOC_MT6660=m
-CONFIG_SND_SOC_NAU8315=m
-CONFIG_SND_SOC_NAU8540=m
-CONFIG_SND_SOC_NAU8810=m
-CONFIG_SND_SOC_NAU8822=m
-CONFIG_SND_SOC_NAU8824=m
-CONFIG_SND_SOC_NAU8825=m
-CONFIG_SND_SOC_TPA6130A2=m
-CONFIG_SND_SOC_LPASS_WSA_MACRO=m
-CONFIG_SND_SOC_LPASS_VA_MACRO=m
-CONFIG_SND_SOC_LPASS_RX_MACRO=m
-CONFIG_SND_SOC_LPASS_TX_MACRO=m
-# end of CODEC drivers
-
-CONFIG_SND_SIMPLE_CARD_UTILS=m
-CONFIG_SND_SIMPLE_CARD=m
-CONFIG_SND_X86=y
-CONFIG_HDMI_LPE_AUDIO=m
-CONFIG_SND_SYNTH_EMUX=m
-CONFIG_SND_XEN_FRONTEND=m
-CONFIG_SND_VIRTIO=m
-CONFIG_AC97_BUS=m
-
-#
-# HID support
-#
-CONFIG_HID=m
-CONFIG_HID_BATTERY_STRENGTH=y
-CONFIG_HIDRAW=y
-CONFIG_UHID=m
-CONFIG_HID_GENERIC=m
-
-#
-# Special HID drivers
-#
-CONFIG_HID_A4TECH=m
-CONFIG_HID_ACCUTOUCH=m
-CONFIG_HID_ACRUX=m
-CONFIG_HID_ACRUX_FF=y
-CONFIG_HID_APPLE=m
-CONFIG_HID_APPLEIR=m
-CONFIG_HID_ASUS=m
-CONFIG_HID_AUREAL=m
-CONFIG_HID_BELKIN=m
-CONFIG_HID_BETOP_FF=m
-CONFIG_HID_BIGBEN_FF=m
-CONFIG_HID_CHERRY=m
-CONFIG_HID_CHICONY=m
-CONFIG_HID_CORSAIR=m
-CONFIG_HID_COUGAR=m
-CONFIG_HID_MACALLY=m
-CONFIG_HID_PRODIKEYS=m
-CONFIG_HID_CMEDIA=m
-CONFIG_HID_CP2112=m
-CONFIG_HID_CREATIVE_SB0540=m
-CONFIG_HID_CYPRESS=m
-CONFIG_HID_DRAGONRISE=m
-CONFIG_DRAGONRISE_FF=y
-CONFIG_HID_EMS_FF=m
-CONFIG_HID_ELAN=m
-CONFIG_HID_ELECOM=m
-CONFIG_HID_ELO=m
-CONFIG_HID_EZKEY=m
-CONFIG_HID_FT260=m
-CONFIG_HID_GEMBIRD=m
-CONFIG_HID_GFRM=m
-CONFIG_HID_GLORIOUS=m
-CONFIG_HID_HOLTEK=m
-CONFIG_HOLTEK_FF=y
-CONFIG_HID_GOOGLE_HAMMER=m
-CONFIG_HID_VIVALDI=m
-CONFIG_HID_GT683R=m
-CONFIG_HID_KEYTOUCH=m
-CONFIG_HID_KYE=m
-CONFIG_HID_UCLOGIC=m
-CONFIG_HID_WALTOP=m
-CONFIG_HID_VIEWSONIC=m
-CONFIG_HID_GYRATION=m
-CONFIG_HID_ICADE=m
-CONFIG_HID_ITE=m
-CONFIG_HID_JABRA=m
-CONFIG_HID_TWINHAN=m
-CONFIG_HID_KENSINGTON=m
-CONFIG_HID_LCPOWER=m
-CONFIG_HID_LED=m
-CONFIG_HID_LENOVO=m
-CONFIG_HID_LOGITECH=m
-CONFIG_HID_LOGITECH_DJ=m
-CONFIG_HID_LOGITECH_HIDPP=m
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIRUMBLEPAD2_FF=y
-CONFIG_LOGIG940_FF=y
-CONFIG_LOGIWHEELS_FF=y
-CONFIG_HID_MAGICMOUSE=m
-CONFIG_HID_MALTRON=m
-CONFIG_HID_MAYFLASH=m
-CONFIG_HID_REDRAGON=m
-CONFIG_HID_MICROSOFT=m
-CONFIG_HID_MONTEREY=m
-CONFIG_HID_MULTITOUCH=m
-CONFIG_HID_NTI=m
-CONFIG_HID_NTRIG=m
-CONFIG_HID_ORTEK=m
-CONFIG_HID_PANTHERLORD=m
-CONFIG_PANTHERLORD_FF=y
-CONFIG_HID_PENMOUNT=m
-CONFIG_HID_PETALYNX=m
-CONFIG_HID_PICOLCD=m
-CONFIG_HID_PICOLCD_FB=y
-CONFIG_HID_PICOLCD_BACKLIGHT=y
-CONFIG_HID_PICOLCD_LCD=y
-CONFIG_HID_PICOLCD_LEDS=y
-CONFIG_HID_PICOLCD_CIR=y
-CONFIG_HID_PLANTRONICS=m
-CONFIG_HID_PLAYSTATION=m
-CONFIG_PLAYSTATION_FF=y
-CONFIG_HID_PRIMAX=m
-CONFIG_HID_RETRODE=m
-CONFIG_HID_ROCCAT=m
-CONFIG_HID_SAITEK=m
-CONFIG_HID_SAMSUNG=m
-CONFIG_HID_SEMITEK=m
-CONFIG_HID_SONY=m
-CONFIG_SONY_FF=y
-CONFIG_HID_SPEEDLINK=m
-CONFIG_HID_STEAM=m
-CONFIG_HID_STEELSERIES=m
-CONFIG_HID_SUNPLUS=m
-CONFIG_HID_RMI=m
-CONFIG_HID_GREENASIA=m
-CONFIG_GREENASIA_FF=y
-CONFIG_HID_HYPERV_MOUSE=m
-CONFIG_HID_SMARTJOYPLUS=m
-CONFIG_SMARTJOYPLUS_FF=y
-CONFIG_HID_TIVO=m
-CONFIG_HID_TOPSEED=m
-CONFIG_HID_THINGM=m
-CONFIG_HID_THRUSTMASTER=m
-CONFIG_THRUSTMASTER_FF=y
-CONFIG_HID_UDRAW_PS3=m
-CONFIG_HID_U2FZERO=m
-CONFIG_HID_WACOM=m
-CONFIG_HID_WIIMOTE=m
-CONFIG_HID_XINMO=m
-CONFIG_HID_ZEROPLUS=m
-CONFIG_ZEROPLUS_FF=y
-CONFIG_HID_ZYDACRON=m
-CONFIG_HID_SENSOR_HUB=m
-CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
-CONFIG_HID_ALPS=m
-CONFIG_HID_MCP2221=m
-# end of Special HID drivers
-
-#
-# USB HID support
-#
-CONFIG_USB_HID=m
-CONFIG_HID_PID=y
-CONFIG_USB_HIDDEV=y
-
-#
-# USB HID Boot Protocol drivers
-#
-CONFIG_USB_KBD=m
-CONFIG_USB_MOUSE=m
-# end of USB HID Boot Protocol drivers
-# end of USB HID support
-
-#
-# I2C HID support
-#
-CONFIG_I2C_HID_ACPI=m
-# end of I2C HID support
-
-CONFIG_I2C_HID_CORE=m
-# end of HID support
-
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-CONFIG_USB_LED_TRIG=y
-CONFIG_USB_ULPI_BUS=m
-CONFIG_USB_CONN_GPIO=m
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB=y
-CONFIG_USB_PCI=y
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEFAULT_PERSIST=y
-# CONFIG_USB_FEW_INIT_RETRIES is not set
-CONFIG_USB_DYNAMIC_MINORS=y
-# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_PRODUCTLIST is not set
-# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set
-CONFIG_USB_LEDS_TRIGGER_USBPORT=m
-CONFIG_USB_AUTOSUSPEND_DELAY=2
-CONFIG_USB_MON=m
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_C67X00_HCD=m
-CONFIG_USB_XHCI_HCD=y
-# CONFIG_USB_XHCI_DBGCAP is not set
-CONFIG_USB_XHCI_PCI=y
-# CONFIG_USB_XHCI_PCI_RENESAS is not set
-CONFIG_USB_XHCI_PLATFORM=m
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_EHCI_PCI=y
-# CONFIG_USB_EHCI_FSL is not set
-CONFIG_USB_EHCI_HCD_PLATFORM=y
-CONFIG_USB_OXU210HP_HCD=m
-CONFIG_USB_ISP116X_HCD=m
-CONFIG_USB_FOTG210_HCD=m
-CONFIG_USB_MAX3421_HCD=m
-CONFIG_USB_OHCI_HCD=y
-CONFIG_USB_OHCI_HCD_PCI=y
-CONFIG_USB_OHCI_HCD_PLATFORM=y
-CONFIG_USB_UHCI_HCD=y
-CONFIG_USB_U132_HCD=m
-CONFIG_USB_SL811_HCD=m
-CONFIG_USB_SL811_HCD_ISO=y
-CONFIG_USB_SL811_CS=m
-CONFIG_USB_R8A66597_HCD=m
-CONFIG_USB_HCD_BCMA=m
-CONFIG_USB_HCD_SSB=m
-# CONFIG_USB_HCD_TEST_MODE is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=m
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_REALTEK=m
-CONFIG_REALTEK_AUTOPM=y
-CONFIG_USB_STORAGE_DATAFAB=m
-CONFIG_USB_STORAGE_FREECOM=m
-CONFIG_USB_STORAGE_ISD200=m
-CONFIG_USB_STORAGE_USBAT=m
-CONFIG_USB_STORAGE_SDDR09=m
-CONFIG_USB_STORAGE_SDDR55=m
-CONFIG_USB_STORAGE_JUMPSHOT=m
-CONFIG_USB_STORAGE_ALAUDA=m
-CONFIG_USB_STORAGE_ONETOUCH=m
-CONFIG_USB_STORAGE_KARMA=m
-CONFIG_USB_STORAGE_CYPRESS_ATACB=m
-CONFIG_USB_STORAGE_ENE_UB6250=m
-CONFIG_USB_UAS=m
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-CONFIG_USBIP_CORE=m
-CONFIG_USBIP_VHCI_HCD=m
-CONFIG_USBIP_VHCI_HC_PORTS=8
-CONFIG_USBIP_VHCI_NR_HCS=1
-CONFIG_USBIP_HOST=m
-CONFIG_USBIP_VUDC=m
-# CONFIG_USBIP_DEBUG is not set
-CONFIG_USB_CDNS_SUPPORT=m
-CONFIG_USB_CDNS_HOST=y
-CONFIG_USB_CDNS3=m
-# CONFIG_USB_CDNS3_GADGET is not set
-# CONFIG_USB_CDNS3_HOST is not set
-CONFIG_USB_CDNS3_PCI_WRAP=m
-CONFIG_USB_CDNSP_PCI=m
-CONFIG_USB_CDNSP_GADGET=y
-CONFIG_USB_CDNSP_HOST=y
-CONFIG_USB_MUSB_HDRC=m
-# CONFIG_USB_MUSB_HOST is not set
-# CONFIG_USB_MUSB_GADGET is not set
-CONFIG_USB_MUSB_DUAL_ROLE=y
-
-#
-# Platform Glue Layer
-#
-
-#
-# MUSB DMA mode
-#
-CONFIG_MUSB_PIO_ONLY=y
-CONFIG_USB_DWC3=m
-CONFIG_USB_DWC3_ULPI=y
-# CONFIG_USB_DWC3_HOST is not set
-# CONFIG_USB_DWC3_GADGET is not set
-CONFIG_USB_DWC3_DUAL_ROLE=y
-
-#
-# Platform Glue Driver Support
-#
-CONFIG_USB_DWC3_PCI=m
-CONFIG_USB_DWC3_HAPS=m
-CONFIG_USB_DWC2=y
-CONFIG_USB_DWC2_HOST=y
-
-#
-# Gadget/Dual-role mode requires USB Gadget support to be enabled
-#
-CONFIG_USB_DWC2_PCI=m
-# CONFIG_USB_DWC2_DEBUG is not set
-# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
-CONFIG_USB_CHIPIDEA=m
-CONFIG_USB_CHIPIDEA_UDC=y
-CONFIG_USB_CHIPIDEA_HOST=y
-CONFIG_USB_CHIPIDEA_PCI=m
-CONFIG_USB_CHIPIDEA_MSM=m
-CONFIG_USB_CHIPIDEA_GENERIC=m
-CONFIG_USB_ISP1760=m
-CONFIG_USB_ISP1760_HCD=y
-CONFIG_USB_ISP1761_UDC=y
-# CONFIG_USB_ISP1760_HOST_ROLE is not set
-# CONFIG_USB_ISP1760_GADGET_ROLE is not set
-CONFIG_USB_ISP1760_DUAL_ROLE=y
-
-#
-# USB port drivers
-#
-CONFIG_USB_USS720=m
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_SIMPLE=m
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP210X=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_F81232=m
-CONFIG_USB_SERIAL_F8153X=m
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-CONFIG_USB_SERIAL_KEYSPAN=m
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_METRO=m
-CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7715_PARPORT=y
-CONFIG_USB_SERIAL_MOS7840=m
-CONFIG_USB_SERIAL_MXUPORT=m
-CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_QCAUX=m
-CONFIG_USB_SERIAL_QUALCOMM=m
-CONFIG_USB_SERIAL_SPCP8X5=m
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-CONFIG_USB_SERIAL_SYMBOL=m
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_WWAN=m
-CONFIG_USB_SERIAL_OPTION=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_SERIAL_OPTICON=m
-CONFIG_USB_SERIAL_XSENS_MT=m
-CONFIG_USB_SERIAL_WISHBONE=m
-CONFIG_USB_SERIAL_SSU100=m
-CONFIG_USB_SERIAL_QT2=m
-CONFIG_USB_SERIAL_UPD78F0730=m
-CONFIG_USB_SERIAL_XR=m
-CONFIG_USB_SERIAL_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_ADUTUX=m
-CONFIG_USB_SEVSEG=m
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_LCD=m
-CONFIG_USB_CYPRESS_CY7C63=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
-CONFIG_USB_APPLEDISPLAY=m
-CONFIG_APPLE_MFI_FASTCHARGE=m
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_LD=m
-CONFIG_USB_TRANCEVIBRATOR=m
-CONFIG_USB_IOWARRIOR=m
-CONFIG_USB_TEST=m
-CONFIG_USB_EHSET_TEST_FIXTURE=m
-CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_YUREX=m
-CONFIG_USB_EZUSB_FX2=m
-CONFIG_USB_HUB_USB251XB=m
-CONFIG_USB_HSIC_USB3503=m
-CONFIG_USB_HSIC_USB4604=m
-CONFIG_USB_LINK_LAYER_TEST=m
-CONFIG_USB_CHAOSKEY=m
-CONFIG_USB_ATM=m
-CONFIG_USB_SPEEDTOUCH=m
-CONFIG_USB_CXACRU=m
-CONFIG_USB_UEAGLEATM=m
-CONFIG_USB_XUSBATM=m
-
-#
-# USB Physical Layer drivers
-#
-CONFIG_USB_PHY=y
-CONFIG_NOP_USB_XCEIV=m
-CONFIG_USB_GPIO_VBUS=m
-CONFIG_TAHVO_USB=m
-CONFIG_TAHVO_USB_HOST_BY_DEFAULT=y
-CONFIG_USB_ISP1301=m
-# end of USB Physical Layer drivers
-
-CONFIG_USB_GADGET=m
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-# CONFIG_USB_GADGET_DEBUG_FS is not set
-CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
-# CONFIG_U_SERIAL_CONSOLE is not set
-
-#
-# USB Peripheral Controller
-#
-CONFIG_USB_FOTG210_UDC=m
-CONFIG_USB_GR_UDC=m
-CONFIG_USB_R8A66597=m
-CONFIG_USB_PXA27X=m
-CONFIG_USB_MV_UDC=m
-CONFIG_USB_MV_U3D=m
-CONFIG_USB_SNP_CORE=m
-# CONFIG_USB_M66592 is not set
-CONFIG_USB_BDC_UDC=m
-CONFIG_USB_AMD5536UDC=m
-CONFIG_USB_NET2272=m
-CONFIG_USB_NET2272_DMA=y
-CONFIG_USB_NET2280=m
-CONFIG_USB_GOKU=m
-CONFIG_USB_EG20T=m
-CONFIG_USB_MAX3420_UDC=m
-# CONFIG_USB_DUMMY_HCD is not set
-# end of USB Peripheral Controller
-
-CONFIG_USB_LIBCOMPOSITE=m
-CONFIG_USB_F_ACM=m
-CONFIG_USB_F_SS_LB=m
-CONFIG_USB_U_SERIAL=m
-CONFIG_USB_U_ETHER=m
-CONFIG_USB_U_AUDIO=m
-CONFIG_USB_F_SERIAL=m
-CONFIG_USB_F_OBEX=m
-CONFIG_USB_F_NCM=m
-CONFIG_USB_F_ECM=m
-CONFIG_USB_F_PHONET=m
-CONFIG_USB_F_EEM=m
-CONFIG_USB_F_SUBSET=m
-CONFIG_USB_F_RNDIS=m
-CONFIG_USB_F_MASS_STORAGE=m
-CONFIG_USB_F_FS=m
-CONFIG_USB_F_UAC1=m
-CONFIG_USB_F_UAC2=m
-CONFIG_USB_F_UVC=m
-CONFIG_USB_F_MIDI=m
-CONFIG_USB_F_HID=m
-CONFIG_USB_F_PRINTER=m
-CONFIG_USB_F_TCM=m
-CONFIG_USB_CONFIGFS=m
-CONFIG_USB_CONFIGFS_SERIAL=y
-CONFIG_USB_CONFIGFS_ACM=y
-CONFIG_USB_CONFIGFS_OBEX=y
-CONFIG_USB_CONFIGFS_NCM=y
-CONFIG_USB_CONFIGFS_ECM=y
-CONFIG_USB_CONFIGFS_ECM_SUBSET=y
-CONFIG_USB_CONFIGFS_RNDIS=y
-CONFIG_USB_CONFIGFS_EEM=y
-CONFIG_USB_CONFIGFS_PHONET=y
-CONFIG_USB_CONFIGFS_MASS_STORAGE=y
-CONFIG_USB_CONFIGFS_F_LB_SS=y
-CONFIG_USB_CONFIGFS_F_FS=y
-CONFIG_USB_CONFIGFS_F_UAC1=y
-# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
-CONFIG_USB_CONFIGFS_F_UAC2=y
-CONFIG_USB_CONFIGFS_F_MIDI=y
-CONFIG_USB_CONFIGFS_F_HID=y
-CONFIG_USB_CONFIGFS_F_UVC=y
-CONFIG_USB_CONFIGFS_F_PRINTER=y
-# CONFIG_USB_CONFIGFS_F_TCM is not set
-
-#
-# USB Gadget precomposed configurations
-#
-CONFIG_USB_ZERO=m
-CONFIG_USB_AUDIO=m
-CONFIG_GADGET_UAC1=y
-# CONFIG_GADGET_UAC1_LEGACY is not set
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_RNDIS=y
-CONFIG_USB_ETH_EEM=y
-CONFIG_USB_G_NCM=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FUNCTIONFS=m
-CONFIG_USB_FUNCTIONFS_ETH=y
-CONFIG_USB_FUNCTIONFS_RNDIS=y
-CONFIG_USB_FUNCTIONFS_GENERIC=y
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_GADGET_TARGET=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_MIDI_GADGET=m
-CONFIG_USB_G_PRINTER=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_USB_G_NOKIA=m
-CONFIG_USB_G_ACM_MS=m
-# CONFIG_USB_G_MULTI is not set
-CONFIG_USB_G_HID=m
-CONFIG_USB_G_DBGP=m
-# CONFIG_USB_G_DBGP_PRINTK is not set
-CONFIG_USB_G_DBGP_SERIAL=y
-CONFIG_USB_G_WEBCAM=m
-CONFIG_USB_RAW_GADGET=m
-# end of USB Gadget precomposed configurations
-
-CONFIG_TYPEC=m
-CONFIG_TYPEC_TCPM=m
-CONFIG_TYPEC_TCPCI=m
-CONFIG_TYPEC_RT1711H=m
-CONFIG_TYPEC_MT6360=m
-CONFIG_TYPEC_TCPCI_MAXIM=m
-CONFIG_TYPEC_FUSB302=m
-CONFIG_TYPEC_UCSI=m
-CONFIG_UCSI_CCG=m
-CONFIG_UCSI_ACPI=m
-CONFIG_TYPEC_TPS6598X=m
-CONFIG_TYPEC_HD3SS3220=m
-CONFIG_TYPEC_STUSB160X=m
-
-#
-# USB Type-C Multiplexer/DeMultiplexer Switch support
-#
-CONFIG_TYPEC_MUX_PI3USB30532=m
-CONFIG_TYPEC_MUX_INTEL_PMC=m
-# end of USB Type-C Multiplexer/DeMultiplexer Switch support
-
-#
-# USB Type-C Alternate Mode drivers
-#
-CONFIG_TYPEC_DP_ALTMODE=m
-CONFIG_TYPEC_NVIDIA_ALTMODE=m
-# end of USB Type-C Alternate Mode drivers
-
-CONFIG_USB_ROLE_SWITCH=y
-CONFIG_USB_ROLES_INTEL_XHCI=m
-CONFIG_MMC=y
-CONFIG_MMC_BLOCK=m
-CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_SDIO_UART=m
-# CONFIG_MMC_TEST is not set
-CONFIG_MMC_CRYPTO=y
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_SDHCI=m
-CONFIG_MMC_SDHCI_IO_ACCESSORS=y
-CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=y
-CONFIG_MMC_SDHCI_ACPI=m
-CONFIG_MMC_SDHCI_PLTFM=m
-CONFIG_MMC_SDHCI_F_SDH30=m
-CONFIG_MMC_WBSD=m
-CONFIG_MMC_ALCOR=m
-CONFIG_MMC_TIFM_SD=m
-CONFIG_MMC_SPI=m
-CONFIG_MMC_SDRICOH_CS=m
-CONFIG_MMC_CB710=m
-CONFIG_MMC_VIA_SDMMC=m
-CONFIG_MMC_VUB300=m
-CONFIG_MMC_USHC=m
-CONFIG_MMC_USDHI6ROL0=m
-CONFIG_MMC_REALTEK_PCI=m
-CONFIG_MMC_REALTEK_USB=m
-CONFIG_MMC_CQHCI=m
-CONFIG_MMC_HSQ=m
-CONFIG_MMC_TOSHIBA_PCI=m
-CONFIG_MMC_MTK=m
-CONFIG_MMC_SDHCI_XENON=m
-CONFIG_MEMSTICK=m
-# CONFIG_MEMSTICK_DEBUG is not set
-
-#
-# MemoryStick drivers
-#
-# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
-CONFIG_MSPRO_BLOCK=m
-CONFIG_MS_BLOCK=m
-
-#
-# MemoryStick Host Controller Drivers
-#
-CONFIG_MEMSTICK_TIFM_MS=m
-CONFIG_MEMSTICK_JMICRON_38X=m
-CONFIG_MEMSTICK_R592=m
-CONFIG_MEMSTICK_REALTEK_PCI=m
-CONFIG_MEMSTICK_REALTEK_USB=m
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_CLASS_FLASH=m
-CONFIG_LEDS_CLASS_MULTICOLOR=m
-# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
-
-#
-# LED drivers
-#
-CONFIG_LEDS_88PM860X=m
-CONFIG_LEDS_APU=m
-CONFIG_LEDS_AS3645A=m
-CONFIG_LEDS_LM3530=m
-CONFIG_LEDS_LM3532=m
-CONFIG_LEDS_LM3533=m
-CONFIG_LEDS_LM3642=m
-CONFIG_LEDS_LM3601X=m
-CONFIG_LEDS_MT6323=m
-CONFIG_LEDS_NET48XX=m
-CONFIG_LEDS_WRAP=m
-CONFIG_LEDS_PCA9532=m
-CONFIG_LEDS_PCA9532_GPIO=y
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_LP3944=m
-CONFIG_LEDS_LP3952=m
-CONFIG_LEDS_LP50XX=m
-CONFIG_LEDS_LP8788=m
-CONFIG_LEDS_CLEVO_MAIL=m
-CONFIG_LEDS_PCA955X=m
-# CONFIG_LEDS_PCA955X_GPIO is not set
-CONFIG_LEDS_PCA963X=m
-CONFIG_LEDS_WM831X_STATUS=m
-CONFIG_LEDS_WM8350=m
-CONFIG_LEDS_DA903X=m
-CONFIG_LEDS_DA9052=m
-CONFIG_LEDS_DAC124S085=m
-CONFIG_LEDS_PWM=m
-CONFIG_LEDS_REGULATOR=m
-CONFIG_LEDS_BD2802=m
-CONFIG_LEDS_INTEL_SS4200=m
-CONFIG_LEDS_ADP5520=m
-CONFIG_LEDS_MC13783=m
-CONFIG_LEDS_TCA6507=m
-CONFIG_LEDS_TLC591XX=m
-CONFIG_LEDS_MAX8997=m
-CONFIG_LEDS_LM355x=m
-CONFIG_LEDS_OT200=m
-CONFIG_LEDS_MENF21BMC=m
-
-#
-# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
-#
-CONFIG_LEDS_BLINKM=m
-CONFIG_LEDS_MLXCPLD=m
-CONFIG_LEDS_MLXREG=m
-CONFIG_LEDS_USER=m
-CONFIG_LEDS_NIC78BX=m
-CONFIG_LEDS_TI_LMU_COMMON=m
-CONFIG_LEDS_LM36274=m
-CONFIG_LEDS_TPS6105X=m
-CONFIG_LEDS_SGM3140=m
-
-#
-# Flash and Torch LED drivers
-#
-# CONFIG_LEDS_RT8515 is not set
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_ONESHOT=m
-CONFIG_LEDS_TRIGGER_DISK=y
-# CONFIG_LEDS_TRIGGER_MTD is not set
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-CONFIG_LEDS_TRIGGER_BACKLIGHT=m
-CONFIG_LEDS_TRIGGER_CPU=y
-CONFIG_LEDS_TRIGGER_ACTIVITY=m
-CONFIG_LEDS_TRIGGER_GPIO=m
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-CONFIG_LEDS_TRIGGER_TRANSIENT=m
-CONFIG_LEDS_TRIGGER_CAMERA=m
-CONFIG_LEDS_TRIGGER_PANIC=y
-CONFIG_LEDS_TRIGGER_NETDEV=m
-CONFIG_LEDS_TRIGGER_PATTERN=m
-CONFIG_LEDS_TRIGGER_AUDIO=m
-CONFIG_LEDS_TRIGGER_TTY=m
-# CONFIG_ACCESSIBILITY is not set
-CONFIG_INFINIBAND=m
-CONFIG_INFINIBAND_USER_MAD=m
-CONFIG_INFINIBAND_USER_ACCESS=m
-CONFIG_INFINIBAND_USER_MEM=y
-CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
-CONFIG_INFINIBAND_ADDR_TRANS=y
-CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
-CONFIG_INFINIBAND_MTHCA=m
-# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
-CONFIG_INFINIBAND_CXGB4=m
-CONFIG_INFINIBAND_I40IW=m
-CONFIG_MLX4_INFINIBAND=m
-CONFIG_MLX5_INFINIBAND=m
-CONFIG_INFINIBAND_OCRDMA=m
-CONFIG_INFINIBAND_VMWARE_PVRDMA=m
-CONFIG_INFINIBAND_USNIC=m
-CONFIG_INFINIBAND_IPOIB=m
-CONFIG_INFINIBAND_IPOIB_CM=y
-# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
-CONFIG_INFINIBAND_SRP=m
-CONFIG_INFINIBAND_SRPT=m
-CONFIG_INFINIBAND_ISER=m
-CONFIG_INFINIBAND_ISERT=m
-CONFIG_INFINIBAND_RTRS=m
-CONFIG_INFINIBAND_RTRS_CLIENT=m
-CONFIG_INFINIBAND_RTRS_SERVER=m
-CONFIG_EDAC_ATOMIC_SCRUB=y
-CONFIG_EDAC_SUPPORT=y
-CONFIG_EDAC=y
-# CONFIG_EDAC_LEGACY_SYSFS is not set
-# CONFIG_EDAC_DEBUG is not set
-CONFIG_EDAC_DECODE_MCE=m
-CONFIG_EDAC_GHES=y
-CONFIG_EDAC_AMD64=m
-CONFIG_EDAC_AMD76X=m
-CONFIG_EDAC_E7XXX=m
-CONFIG_EDAC_E752X=m
-CONFIG_EDAC_I82875P=m
-CONFIG_EDAC_I82975X=m
-CONFIG_EDAC_I3000=m
-CONFIG_EDAC_I3200=m
-CONFIG_EDAC_IE31200=m
-CONFIG_EDAC_X38=m
-CONFIG_EDAC_I5400=m
-CONFIG_EDAC_I7CORE=m
-CONFIG_EDAC_I82860=m
-CONFIG_EDAC_R82600=m
-CONFIG_EDAC_I5000=m
-CONFIG_EDAC_I5100=m
-CONFIG_EDAC_I7300=m
-CONFIG_RTC_LIB=y
-CONFIG_RTC_MC146818_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-CONFIG_RTC_SYSTOHC=y
-CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-CONFIG_RTC_NVMEM=y
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-CONFIG_RTC_DRV_88PM860X=m
-CONFIG_RTC_DRV_88PM80X=m
-CONFIG_RTC_DRV_ABB5ZES3=m
-CONFIG_RTC_DRV_ABEOZ9=m
-CONFIG_RTC_DRV_ABX80X=m
-CONFIG_RTC_DRV_DS1307=m
-# CONFIG_RTC_DRV_DS1307_CENTURY is not set
-CONFIG_RTC_DRV_DS1374=m
-CONFIG_RTC_DRV_DS1374_WDT=y
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_LP8788=m
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_MAX8907=m
-CONFIG_RTC_DRV_MAX8925=m
-CONFIG_RTC_DRV_MAX8998=m
-CONFIG_RTC_DRV_MAX8997=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-CONFIG_RTC_DRV_ISL12022=m
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PCF8523=m
-CONFIG_RTC_DRV_PCF85063=m
-CONFIG_RTC_DRV_PCF85363=m
-CONFIG_RTC_DRV_PCF8563=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-CONFIG_RTC_DRV_M41T80_WDT=y
-CONFIG_RTC_DRV_BQ32K=m
-CONFIG_RTC_DRV_PALMAS=m
-CONFIG_RTC_DRV_TPS6586X=m
-CONFIG_RTC_DRV_TPS65910=m
-CONFIG_RTC_DRV_TPS80031=m
-CONFIG_RTC_DRV_RC5T583=m
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8010=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
-CONFIG_RTC_DRV_EM3027=m
-CONFIG_RTC_DRV_RV3028=m
-CONFIG_RTC_DRV_RV3032=m
-CONFIG_RTC_DRV_RV8803=m
-CONFIG_RTC_DRV_S5M=m
-CONFIG_RTC_DRV_SD3078=m
-
-#
-# SPI RTC drivers
-#
-CONFIG_RTC_DRV_M41T93=m
-CONFIG_RTC_DRV_M41T94=m
-CONFIG_RTC_DRV_DS1302=m
-CONFIG_RTC_DRV_DS1305=m
-CONFIG_RTC_DRV_DS1343=m
-CONFIG_RTC_DRV_DS1347=m
-CONFIG_RTC_DRV_DS1390=m
-CONFIG_RTC_DRV_MAX6916=m
-CONFIG_RTC_DRV_R9701=m
-CONFIG_RTC_DRV_RX4581=m
-CONFIG_RTC_DRV_RS5C348=m
-CONFIG_RTC_DRV_MAX6902=m
-CONFIG_RTC_DRV_PCF2123=m
-CONFIG_RTC_DRV_MCP795=m
-CONFIG_RTC_I2C_AND_SPI=y
-
-#
-# SPI and I2C RTC drivers
-#
-CONFIG_RTC_DRV_DS3232=m
-CONFIG_RTC_DRV_DS3232_HWMON=y
-CONFIG_RTC_DRV_PCF2127=m
-CONFIG_RTC_DRV_RV3029C2=m
-CONFIG_RTC_DRV_RV3029_HWMON=y
-CONFIG_RTC_DRV_RX6110=m
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=y
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_DS1685_FAMILY=m
-CONFIG_RTC_DRV_DS1685=y
-# CONFIG_RTC_DRV_DS1689 is not set
-# CONFIG_RTC_DRV_DS17285 is not set
-# CONFIG_RTC_DRV_DS17485 is not set
-# CONFIG_RTC_DRV_DS17885 is not set
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_DS2404=m
-CONFIG_RTC_DRV_DA9052=m
-CONFIG_RTC_DRV_DA9055=m
-CONFIG_RTC_DRV_DA9063=m
-CONFIG_RTC_DRV_STK17TA8=m
-CONFIG_RTC_DRV_M48T86=m
-CONFIG_RTC_DRV_M48T35=m
-CONFIG_RTC_DRV_M48T59=m
-CONFIG_RTC_DRV_MSM6242=m
-CONFIG_RTC_DRV_BQ4802=m
-CONFIG_RTC_DRV_RP5C01=m
-CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_WM831X=m
-CONFIG_RTC_DRV_WM8350=m
-CONFIG_RTC_DRV_PCF50633=m
-CONFIG_RTC_DRV_CROS_EC=m
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_RTC_DRV_FTRTC010=m
-CONFIG_RTC_DRV_PCAP=m
-CONFIG_RTC_DRV_MC13XXX=m
-CONFIG_RTC_DRV_MT6397=m
-
-#
-# HID Sensor RTC drivers
-#
-CONFIG_RTC_DRV_HID_SENSOR_TIME=m
-CONFIG_RTC_DRV_GOLDFISH=m
-CONFIG_RTC_DRV_WILCO_EC=m
-CONFIG_DMADEVICES=y
-# CONFIG_DMADEVICES_DEBUG is not set
-
-#
-# DMA Devices
-#
-CONFIG_DMA_ENGINE=y
-CONFIG_DMA_VIRTUAL_CHANNELS=y
-CONFIG_DMA_ACPI=y
-CONFIG_ALTERA_MSGDMA=m
-CONFIG_INTEL_IDMA64=m
-CONFIG_PCH_DMA=m
-CONFIG_PLX_DMA=m
-CONFIG_TIMB_DMA=m
-CONFIG_QCOM_HIDMA_MGMT=m
-CONFIG_QCOM_HIDMA=m
-CONFIG_DW_DMAC_CORE=m
-CONFIG_DW_DMAC=m
-CONFIG_DW_DMAC_PCI=m
-CONFIG_DW_EDMA=m
-CONFIG_DW_EDMA_PCIE=m
-CONFIG_HSU_DMA=m
-CONFIG_SF_PDMA=m
-CONFIG_INTEL_LDMA=y
-
-#
-# DMA Clients
-#
-CONFIG_ASYNC_TX_DMA=y
-# CONFIG_DMATEST is not set
-
-#
-# DMABUF options
-#
-CONFIG_SYNC_FILE=y
-# CONFIG_SW_SYNC is not set
-# CONFIG_UDMABUF is not set
-# CONFIG_DMABUF_MOVE_NOTIFY is not set
-# CONFIG_DMABUF_DEBUG is not set
-# CONFIG_DMABUF_SELFTESTS is not set
-# CONFIG_DMABUF_HEAPS is not set
-# end of DMABUF options
-
-CONFIG_AUXDISPLAY=y
-CONFIG_CHARLCD=m
-CONFIG_HD44780_COMMON=m
-CONFIG_HD44780=m
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
-CONFIG_KS0108_DELAY=2
-CONFIG_CFAG12864B=m
-CONFIG_CFAG12864B_RATE=20
-CONFIG_IMG_ASCII_LCD=m
-CONFIG_LCD2S=m
-CONFIG_PARPORT_PANEL=m
-CONFIG_PANEL_PARPORT=0
-CONFIG_PANEL_PROFILE=5
-# CONFIG_PANEL_CHANGE_MESSAGE is not set
-# CONFIG_CHARLCD_BL_OFF is not set
-# CONFIG_CHARLCD_BL_ON is not set
-CONFIG_CHARLCD_BL_FLASH=y
-CONFIG_PANEL=m
-CONFIG_UIO=m
-CONFIG_UIO_CIF=m
-CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_DMEM_GENIRQ=m
-CONFIG_UIO_AEC=m
-CONFIG_UIO_SERCOS3=m
-CONFIG_UIO_PCI_GENERIC=m
-CONFIG_UIO_NETX=m
-CONFIG_UIO_PRUSS=m
-CONFIG_UIO_MF624=m
-CONFIG_UIO_HV_GENERIC=m
-CONFIG_UIO_DFL=m
-CONFIG_VFIO_IOMMU_TYPE1=m
-CONFIG_VFIO_VIRQFD=m
-CONFIG_VFIO=m
-CONFIG_VFIO_NOIOMMU=y
-CONFIG_VFIO_PCI=m
-CONFIG_VFIO_PCI_VGA=y
-CONFIG_VFIO_PCI_MMAP=y
-CONFIG_VFIO_PCI_INTX=y
-CONFIG_VFIO_PCI_IGD=y
-CONFIG_VFIO_MDEV=m
-CONFIG_VFIO_MDEV_DEVICE=m
-CONFIG_IRQ_BYPASS_MANAGER=m
-CONFIG_VIRT_DRIVERS=y
-CONFIG_VBOXGUEST=m
-CONFIG_NITRO_ENCLAVES=m
-CONFIG_VIRTIO=y
-CONFIG_VIRTIO_PCI_LIB=y
-CONFIG_VIRTIO_MENU=y
-CONFIG_VIRTIO_PCI=y
-CONFIG_VIRTIO_PCI_LEGACY=y
-CONFIG_VIRTIO_VDPA=m
-CONFIG_VIRTIO_PMEM=m
-CONFIG_VIRTIO_BALLOON=y
-CONFIG_VIRTIO_INPUT=m
-CONFIG_VIRTIO_MMIO=y
-CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
-CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
-CONFIG_VDPA=m
-# CONFIG_VDPA_SIM is not set
-CONFIG_IFCVF=m
-CONFIG_MLX5_VDPA=y
-CONFIG_MLX5_VDPA_NET=m
-CONFIG_VP_VDPA=m
-CONFIG_VHOST_IOTLB=m
-CONFIG_VHOST_RING=m
-CONFIG_VHOST=m
-CONFIG_VHOST_MENU=y
-CONFIG_VHOST_NET=m
-CONFIG_VHOST_SCSI=m
-CONFIG_VHOST_VSOCK=m
-CONFIG_VHOST_VDPA=m
-# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
-
-#
-# Microsoft Hyper-V guest support
-#
-CONFIG_HYPERV=m
-CONFIG_HYPERV_TIMER=y
-CONFIG_HYPERV_UTILS=m
-CONFIG_HYPERV_BALLOON=m
-# end of Microsoft Hyper-V guest support
-
-#
-# Xen driver support
-#
-CONFIG_XEN_BALLOON=y
-CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
-CONFIG_XEN_DEV_EVTCHN=m
-CONFIG_XEN_BACKEND=y
-CONFIG_XENFS=m
-CONFIG_XEN_COMPAT_XENFS=y
-CONFIG_XEN_SYS_HYPERVISOR=y
-CONFIG_XEN_XENBUS_FRONTEND=y
-CONFIG_XEN_GNTDEV=m
-CONFIG_XEN_GRANT_DEV_ALLOC=m
-# CONFIG_XEN_GRANT_DMA_ALLOC is not set
-CONFIG_SWIOTLB_XEN=y
-CONFIG_XEN_PCIDEV_BACKEND=m
-CONFIG_XEN_PVCALLS_FRONTEND=m
-# CONFIG_XEN_PVCALLS_BACKEND is not set
-CONFIG_XEN_SCSI_BACKEND=m
-CONFIG_XEN_PRIVCMD=m
-CONFIG_XEN_AUTO_XLATE=y
-CONFIG_XEN_ACPI=y
-CONFIG_XEN_FRONT_PGDIR_SHBUF=m
-# end of Xen driver support
-
-# CONFIG_GREYBUS is not set
-CONFIG_COMEDI=m
-# CONFIG_COMEDI_DEBUG is not set
-CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048
-CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480
-CONFIG_COMEDI_MISC_DRIVERS=y
-CONFIG_COMEDI_BOND=m
-CONFIG_COMEDI_TEST=m
-CONFIG_COMEDI_PARPORT=m
-CONFIG_COMEDI_SSV_DNP=m
-CONFIG_COMEDI_ISA_DRIVERS=y
-CONFIG_COMEDI_PCL711=m
-CONFIG_COMEDI_PCL724=m
-CONFIG_COMEDI_PCL726=m
-CONFIG_COMEDI_PCL730=m
-CONFIG_COMEDI_PCL812=m
-CONFIG_COMEDI_PCL816=m
-CONFIG_COMEDI_PCL818=m
-CONFIG_COMEDI_PCM3724=m
-CONFIG_COMEDI_AMPLC_DIO200_ISA=m
-CONFIG_COMEDI_AMPLC_PC236_ISA=m
-CONFIG_COMEDI_AMPLC_PC263_ISA=m
-CONFIG_COMEDI_RTI800=m
-CONFIG_COMEDI_RTI802=m
-CONFIG_COMEDI_DAC02=m
-CONFIG_COMEDI_DAS16M1=m
-CONFIG_COMEDI_DAS08_ISA=m
-CONFIG_COMEDI_DAS16=m
-CONFIG_COMEDI_DAS800=m
-CONFIG_COMEDI_DAS1800=m
-CONFIG_COMEDI_DAS6402=m
-CONFIG_COMEDI_DT2801=m
-CONFIG_COMEDI_DT2811=m
-CONFIG_COMEDI_DT2814=m
-CONFIG_COMEDI_DT2815=m
-CONFIG_COMEDI_DT2817=m
-CONFIG_COMEDI_DT282X=m
-CONFIG_COMEDI_DMM32AT=m
-CONFIG_COMEDI_FL512=m
-CONFIG_COMEDI_AIO_AIO12_8=m
-CONFIG_COMEDI_AIO_IIRO_16=m
-CONFIG_COMEDI_II_PCI20KC=m
-CONFIG_COMEDI_C6XDIGIO=m
-CONFIG_COMEDI_MPC624=m
-CONFIG_COMEDI_ADQ12B=m
-CONFIG_COMEDI_NI_AT_A2150=m
-CONFIG_COMEDI_NI_AT_AO=m
-CONFIG_COMEDI_NI_ATMIO=m
-CONFIG_COMEDI_NI_ATMIO16D=m
-CONFIG_COMEDI_NI_LABPC_ISA=m
-CONFIG_COMEDI_PCMAD=m
-CONFIG_COMEDI_PCMDA12=m
-CONFIG_COMEDI_PCMMIO=m
-CONFIG_COMEDI_PCMUIO=m
-CONFIG_COMEDI_MULTIQ3=m
-CONFIG_COMEDI_S526=m
-CONFIG_COMEDI_PCI_DRIVERS=m
-CONFIG_COMEDI_8255_PCI=m
-CONFIG_COMEDI_ADDI_WATCHDOG=m
-CONFIG_COMEDI_ADDI_APCI_1032=m
-CONFIG_COMEDI_ADDI_APCI_1500=m
-CONFIG_COMEDI_ADDI_APCI_1516=m
-CONFIG_COMEDI_ADDI_APCI_1564=m
-CONFIG_COMEDI_ADDI_APCI_16XX=m
-CONFIG_COMEDI_ADDI_APCI_2032=m
-CONFIG_COMEDI_ADDI_APCI_2200=m
-CONFIG_COMEDI_ADDI_APCI_3120=m
-CONFIG_COMEDI_ADDI_APCI_3501=m
-CONFIG_COMEDI_ADDI_APCI_3XXX=m
-CONFIG_COMEDI_ADL_PCI6208=m
-CONFIG_COMEDI_ADL_PCI7X3X=m
-CONFIG_COMEDI_ADL_PCI8164=m
-CONFIG_COMEDI_ADL_PCI9111=m
-CONFIG_COMEDI_ADL_PCI9118=m
-CONFIG_COMEDI_ADV_PCI1710=m
-CONFIG_COMEDI_ADV_PCI1720=m
-CONFIG_COMEDI_ADV_PCI1723=m
-CONFIG_COMEDI_ADV_PCI1724=m
-CONFIG_COMEDI_ADV_PCI1760=m
-CONFIG_COMEDI_ADV_PCI_DIO=m
-CONFIG_COMEDI_AMPLC_DIO200_PCI=m
-CONFIG_COMEDI_AMPLC_PC236_PCI=m
-CONFIG_COMEDI_AMPLC_PC263_PCI=m
-CONFIG_COMEDI_AMPLC_PCI224=m
-CONFIG_COMEDI_AMPLC_PCI230=m
-CONFIG_COMEDI_CONTEC_PCI_DIO=m
-CONFIG_COMEDI_DAS08_PCI=m
-CONFIG_COMEDI_DT3000=m
-CONFIG_COMEDI_DYNA_PCI10XX=m
-CONFIG_COMEDI_GSC_HPDI=m
-CONFIG_COMEDI_MF6X4=m
-CONFIG_COMEDI_ICP_MULTI=m
-CONFIG_COMEDI_DAQBOARD2000=m
-CONFIG_COMEDI_JR3_PCI=m
-CONFIG_COMEDI_KE_COUNTER=m
-CONFIG_COMEDI_CB_PCIDAS64=m
-CONFIG_COMEDI_CB_PCIDAS=m
-CONFIG_COMEDI_CB_PCIDDA=m
-CONFIG_COMEDI_CB_PCIMDAS=m
-CONFIG_COMEDI_CB_PCIMDDA=m
-CONFIG_COMEDI_ME4000=m
-CONFIG_COMEDI_ME_DAQ=m
-CONFIG_COMEDI_NI_6527=m
-CONFIG_COMEDI_NI_65XX=m
-CONFIG_COMEDI_NI_660X=m
-CONFIG_COMEDI_NI_670X=m
-CONFIG_COMEDI_NI_LABPC_PCI=m
-CONFIG_COMEDI_NI_PCIDIO=m
-CONFIG_COMEDI_NI_PCIMIO=m
-CONFIG_COMEDI_RTD520=m
-CONFIG_COMEDI_S626=m
-CONFIG_COMEDI_MITE=m
-CONFIG_COMEDI_NI_TIOCMD=m
-CONFIG_COMEDI_PCMCIA_DRIVERS=m
-CONFIG_COMEDI_CB_DAS16_CS=m
-CONFIG_COMEDI_DAS08_CS=m
-CONFIG_COMEDI_NI_DAQ_700_CS=m
-CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
-CONFIG_COMEDI_NI_LABPC_CS=m
-CONFIG_COMEDI_NI_MIO_CS=m
-CONFIG_COMEDI_QUATECH_DAQP_CS=m
-CONFIG_COMEDI_USB_DRIVERS=m
-CONFIG_COMEDI_DT9812=m
-CONFIG_COMEDI_NI_USB6501=m
-CONFIG_COMEDI_USBDUX=m
-CONFIG_COMEDI_USBDUXFAST=m
-CONFIG_COMEDI_USBDUXSIGMA=m
-CONFIG_COMEDI_VMK80XX=m
-CONFIG_COMEDI_8254=m
-CONFIG_COMEDI_8255=m
-CONFIG_COMEDI_8255_SA=m
-CONFIG_COMEDI_KCOMEDILIB=m
-CONFIG_COMEDI_AMPLC_DIO200=m
-CONFIG_COMEDI_AMPLC_PC236=m
-CONFIG_COMEDI_DAS08=m
-CONFIG_COMEDI_ISADMA=m
-CONFIG_COMEDI_NI_LABPC=m
-CONFIG_COMEDI_NI_LABPC_ISADMA=m
-CONFIG_COMEDI_NI_TIO=m
-CONFIG_COMEDI_NI_ROUTING=m
-# CONFIG_COMEDI_TESTS is not set
-CONFIG_STAGING=y
-CONFIG_PRISM2_USB=m
-CONFIG_RTL8192U=m
-CONFIG_RTLLIB=m
-CONFIG_RTLLIB_CRYPTO_CCMP=m
-CONFIG_RTLLIB_CRYPTO_TKIP=m
-CONFIG_RTLLIB_CRYPTO_WEP=m
-CONFIG_RTL8192E=m
-CONFIG_RTL8723BS=m
-CONFIG_R8712U=m
-CONFIG_R8188EU=m
-CONFIG_88EU_AP_MODE=y
-CONFIG_RTS5208=m
-CONFIG_VT6655=m
-CONFIG_VT6656=m
-
-#
-# IIO staging drivers
-#
-
-#
-# Accelerometers
-#
-CONFIG_ADIS16203=m
-CONFIG_ADIS16240=m
-# end of Accelerometers
-
-#
-# Analog to digital converters
-#
-CONFIG_AD7816=m
-CONFIG_AD7280=m
-# end of Analog to digital converters
-
-#
-# Analog digital bi-direction converters
-#
-CONFIG_ADT7316=m
-CONFIG_ADT7316_SPI=m
-CONFIG_ADT7316_I2C=m
-# end of Analog digital bi-direction converters
-
-#
-# Capacitance to digital converters
-#
-CONFIG_AD7746=m
-# end of Capacitance to digital converters
-
-#
-# Direct Digital Synthesis
-#
-CONFIG_AD9832=m
-CONFIG_AD9834=m
-# end of Direct Digital Synthesis
-
-#
-# Network Analyzer, Impedance Converters
-#
-CONFIG_AD5933=m
-# end of Network Analyzer, Impedance Converters
-
-#
-# Active energy metering IC
-#
-CONFIG_ADE7854=m
-CONFIG_ADE7854_I2C=m
-CONFIG_ADE7854_SPI=m
-# end of Active energy metering IC
-
-#
-# Resolver to digital converters
-#
-CONFIG_AD2S1210=m
-# end of Resolver to digital converters
-# end of IIO staging drivers
-
-CONFIG_FB_SM750=m
-CONFIG_STAGING_MEDIA=y
-CONFIG_INTEL_ATOMISP=y
-# CONFIG_VIDEO_ZORAN is not set
-CONFIG_VIDEO_IPU3_IMGU=m
-
-#
-# Android
-#
-# end of Android
-
-CONFIG_LTE_GDM724X=m
-CONFIG_FIREWIRE_SERIAL=m
-CONFIG_FWTTY_MAX_TOTAL_PORTS=64
-CONFIG_FWTTY_MAX_CARD_PORTS=32
-CONFIG_GS_FPGABOOT=m
-CONFIG_UNISYSSPAR=y
-CONFIG_FB_TFT=m
-CONFIG_FB_TFT_AGM1264K_FL=m
-CONFIG_FB_TFT_BD663474=m
-CONFIG_FB_TFT_HX8340BN=m
-CONFIG_FB_TFT_HX8347D=m
-CONFIG_FB_TFT_HX8353D=m
-CONFIG_FB_TFT_HX8357D=m
-CONFIG_FB_TFT_ILI9163=m
-CONFIG_FB_TFT_ILI9320=m
-CONFIG_FB_TFT_ILI9325=m
-CONFIG_FB_TFT_ILI9340=m
-CONFIG_FB_TFT_ILI9341=m
-CONFIG_FB_TFT_ILI9481=m
-CONFIG_FB_TFT_ILI9486=m
-CONFIG_FB_TFT_PCD8544=m
-CONFIG_FB_TFT_RA8875=m
-CONFIG_FB_TFT_S6D02A1=m
-CONFIG_FB_TFT_S6D1121=m
-CONFIG_FB_TFT_SEPS525=m
-CONFIG_FB_TFT_SH1106=m
-CONFIG_FB_TFT_SSD1289=m
-CONFIG_FB_TFT_SSD1305=m
-CONFIG_FB_TFT_SSD1306=m
-CONFIG_FB_TFT_SSD1331=m
-CONFIG_FB_TFT_SSD1351=m
-CONFIG_FB_TFT_ST7735R=m
-CONFIG_FB_TFT_ST7789V=m
-CONFIG_FB_TFT_TINYLCD=m
-CONFIG_FB_TFT_TLS8204=m
-CONFIG_FB_TFT_UC1611=m
-CONFIG_FB_TFT_UC1701=m
-CONFIG_FB_TFT_UPD161704=m
-CONFIG_FB_TFT_WATTEROTT=m
-CONFIG_MOST_COMPONENTS=m
-CONFIG_MOST_NET=m
-CONFIG_MOST_VIDEO=m
-CONFIG_MOST_I2C=m
-CONFIG_KS7010=m
-# CONFIG_PI433 is not set
-CONFIG_FIELDBUS_DEV=m
-# CONFIG_KPC2000 is not set
-CONFIG_QLGE=m
-CONFIG_WFX=m
-# CONFIG_SPMI_HISI3670 is not set
-CONFIG_X86_PLATFORM_DEVICES=y
-CONFIG_ACPI_WMI=m
-CONFIG_WMI_BMOF=m
-CONFIG_HUAWEI_WMI=m
-CONFIG_INTEL_WMI_SBL_FW_UPDATE=m
-CONFIG_INTEL_WMI_THUNDERBOLT=m
-CONFIG_MXM_WMI=m
-CONFIG_PEAQ_WMI=m
-CONFIG_XIAOMI_WMI=m
-CONFIG_GIGABYTE_WMI=m
-CONFIG_ACERHDF=m
-CONFIG_ACER_WIRELESS=m
-CONFIG_ACER_WMI=m
-CONFIG_AMD_PMC=m
-CONFIG_ADV_SWBUTTON=m
-CONFIG_APPLE_GMUX=m
-CONFIG_ASUS_LAPTOP=m
-CONFIG_ASUS_WIRELESS=m
-CONFIG_ASUS_WMI=m
-CONFIG_ASUS_NB_WMI=m
-CONFIG_EEEPC_LAPTOP=m
-CONFIG_EEEPC_WMI=m
-CONFIG_X86_PLATFORM_DRIVERS_DELL=y
-CONFIG_ALIENWARE_WMI=m
-CONFIG_DCDBAS=m
-CONFIG_DELL_LAPTOP=m
-CONFIG_DELL_RBU=m
-CONFIG_DELL_RBTN=m
-CONFIG_DELL_SMBIOS=m
-CONFIG_DELL_SMBIOS_WMI=y
-CONFIG_DELL_SMBIOS_SMM=y
-CONFIG_DELL_SMO8800=m
-CONFIG_DELL_WMI=m
-CONFIG_DELL_WMI_AIO=m
-CONFIG_DELL_WMI_DESCRIPTOR=m
-CONFIG_DELL_WMI_LED=m
-CONFIG_DELL_WMI_SYSMAN=m
-CONFIG_AMILO_RFKILL=m
-CONFIG_FUJITSU_LAPTOP=m
-CONFIG_FUJITSU_TABLET=m
-CONFIG_GPD_POCKET_FAN=m
-CONFIG_HP_ACCEL=m
-CONFIG_HP_WIRELESS=m
-CONFIG_HP_WMI=m
-CONFIG_TC1100_WMI=m
-CONFIG_IBM_RTL=m
-CONFIG_IDEAPAD_LAPTOP=m
-CONFIG_SENSORS_HDAPS=m
-CONFIG_THINKPAD_ACPI=m
-CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
-CONFIG_THINKPAD_ACPI_DEBUGFACILITIES=y
-# CONFIG_THINKPAD_ACPI_DEBUG is not set
-# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
-CONFIG_THINKPAD_ACPI_VIDEO=y
-CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
-CONFIG_INTEL_ATOMISP2_LED=m
-CONFIG_INTEL_CHT_INT33FE=m
-CONFIG_INTEL_HID_EVENT=m
-CONFIG_INTEL_INT0002_VGPIO=m
-CONFIG_INTEL_MENLOW=m
-CONFIG_INTEL_OAKTRAIL=m
-CONFIG_INTEL_VBTN=m
-CONFIG_MSI_LAPTOP=m
-CONFIG_MSI_WMI=m
-CONFIG_PCENGINES_APU2=m
-CONFIG_SAMSUNG_LAPTOP=m
-CONFIG_SAMSUNG_Q10=m
-CONFIG_ACPI_TOSHIBA=m
-CONFIG_TOSHIBA_BT_RFKILL=m
-CONFIG_TOSHIBA_HAPS=m
-CONFIG_TOSHIBA_WMI=m
-CONFIG_ACPI_CMPC=m
-CONFIG_COMPAL_LAPTOP=m
-CONFIG_LG_LAPTOP=m
-CONFIG_PANASONIC_LAPTOP=m
-CONFIG_SONY_LAPTOP=m
-CONFIG_SONYPI_COMPAT=y
-CONFIG_SYSTEM76_ACPI=m
-CONFIG_TOPSTAR_LAPTOP=m
-CONFIG_I2C_MULTI_INSTANTIATE=m
-# CONFIG_MLX_PLATFORM is not set
-# CONFIG_TOUCHSCREEN_DMI is not set
-CONFIG_INTEL_IMR=y
-CONFIG_INTEL_IPS=m
-CONFIG_INTEL_RST=m
-CONFIG_INTEL_SMARTCONNECT=m
-CONFIG_INTEL_BXTWC_PMIC_TMU=m
-CONFIG_INTEL_CHTDC_TI_PWRBTN=m
-CONFIG_INTEL_MRFLD_PWRBTN=m
-CONFIG_INTEL_PMC_CORE=y
-CONFIG_INTEL_PMT_CLASS=m
-CONFIG_INTEL_PMT_TELEMETRY=m
-CONFIG_INTEL_PMT_CRASHLOG=m
-CONFIG_INTEL_PUNIT_IPC=m
-CONFIG_INTEL_SCU_IPC=y
-CONFIG_INTEL_SCU=y
-CONFIG_INTEL_SCU_PCI=y
-CONFIG_INTEL_SCU_PLATFORM=m
-CONFIG_INTEL_SCU_IPC_UTIL=m
-CONFIG_PMC_ATOM=y
-CONFIG_CHROME_PLATFORMS=y
-CONFIG_CHROMEOS_LAPTOP=m
-CONFIG_CHROMEOS_PSTORE=m
-CONFIG_CHROMEOS_TBMC=m
-CONFIG_CROS_EC=m
-CONFIG_CROS_EC_I2C=m
-CONFIG_CROS_EC_SPI=m
-CONFIG_CROS_EC_LPC=m
-CONFIG_CROS_EC_PROTO=y
-CONFIG_CROS_KBD_LED_BACKLIGHT=m
-CONFIG_CROS_EC_CHARDEV=m
-CONFIG_CROS_EC_LIGHTBAR=m
-CONFIG_CROS_EC_DEBUGFS=m
-CONFIG_CROS_EC_SENSORHUB=m
-CONFIG_CROS_EC_SYSFS=m
-CONFIG_CROS_EC_TYPEC=m
-CONFIG_CROS_USBPD_LOGGER=m
-CONFIG_CROS_USBPD_NOTIFY=m
-CONFIG_WILCO_EC=m
-# CONFIG_WILCO_EC_DEBUGFS is not set
-CONFIG_WILCO_EC_EVENTS=m
-CONFIG_WILCO_EC_TELEMETRY=m
-# CONFIG_MELLANOX_PLATFORM is not set
-# CONFIG_SURFACE_PLATFORMS is not set
-CONFIG_HAVE_CLK=y
-CONFIG_CLKDEV_LOOKUP=y
-CONFIG_HAVE_CLK_PREPARE=y
-CONFIG_COMMON_CLK=y
-CONFIG_COMMON_CLK_WM831X=m
-CONFIG_COMMON_CLK_MAX9485=m
-CONFIG_COMMON_CLK_SI5341=m
-CONFIG_COMMON_CLK_SI5351=m
-CONFIG_COMMON_CLK_SI544=m
-CONFIG_COMMON_CLK_CDCE706=m
-CONFIG_COMMON_CLK_CS2000_CP=m
-CONFIG_COMMON_CLK_S2MPS11=m
-CONFIG_CLK_TWL6040=m
-CONFIG_COMMON_CLK_PALMAS=m
-CONFIG_COMMON_CLK_PWM=m
-CONFIG_XILINX_VCU=m
-# CONFIG_HWSPINLOCK is not set
-
-#
-# Clock Source drivers
-#
-CONFIG_CLKSRC_I8253=y
-CONFIG_CLKEVT_I8253=y
-CONFIG_I8253_LOCK=y
-CONFIG_CLKBLD_I8253=y
-# end of Clock Source drivers
-
-CONFIG_MAILBOX=y
-CONFIG_PCC=y
-CONFIG_ALTERA_MBOX=m
-CONFIG_IOMMU_IOVA=y
-CONFIG_IOASID=y
-CONFIG_IOMMU_API=y
-CONFIG_IOMMU_SUPPORT=y
-
-#
-# Generic IOMMU Pagetable Support
-#
-# end of Generic IOMMU Pagetable Support
-
-# CONFIG_IOMMU_DEBUGFS is not set
-# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
-CONFIG_IOMMU_DMA=y
-CONFIG_DMAR_TABLE=y
-CONFIG_INTEL_IOMMU=y
-# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
-CONFIG_INTEL_IOMMU_FLOPPY_WA=y
-# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
-CONFIG_HYPERV_IOMMU=y
-
-#
-# Remoteproc drivers
-#
-# CONFIG_REMOTEPROC is not set
-# end of Remoteproc drivers
-
-#
-# Rpmsg drivers
-#
-CONFIG_RPMSG=m
-# CONFIG_RPMSG_CHAR is not set
-CONFIG_RPMSG_NS=m
-CONFIG_RPMSG_QCOM_GLINK=m
-CONFIG_RPMSG_QCOM_GLINK_RPM=m
-CONFIG_RPMSG_VIRTIO=m
-# end of Rpmsg drivers
-
-# CONFIG_SOUNDWIRE is not set
-
-#
-# SOC (System On Chip) specific Drivers
-#
-
-#
-# Amlogic SoC drivers
-#
-# end of Amlogic SoC drivers
-
-#
-# Broadcom SoC drivers
-#
-# end of Broadcom SoC drivers
-
-#
-# NXP/Freescale QorIQ SoC drivers
-#
-# end of NXP/Freescale QorIQ SoC drivers
-
-#
-# i.MX SoC drivers
-#
-# end of i.MX SoC drivers
-
-#
-# Enable LiteX SoC Builder specific drivers
-#
-# end of Enable LiteX SoC Builder specific drivers
-
-#
-# Qualcomm SoC drivers
-#
-CONFIG_QCOM_QMI_HELPERS=m
-# end of Qualcomm SoC drivers
-
-CONFIG_SOC_TI=y
-
-#
-# Xilinx SoC drivers
-#
-# end of Xilinx SoC drivers
-# end of SOC (System On Chip) specific Drivers
-
-CONFIG_PM_DEVFREQ=y
-
-#
-# DEVFREQ Governors
-#
-CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
-CONFIG_DEVFREQ_GOV_PERFORMANCE=y
-CONFIG_DEVFREQ_GOV_POWERSAVE=y
-CONFIG_DEVFREQ_GOV_USERSPACE=y
-CONFIG_DEVFREQ_GOV_PASSIVE=m
-
-#
-# DEVFREQ Drivers
-#
-CONFIG_PM_DEVFREQ_EVENT=y
-CONFIG_EXTCON=y
-
-#
-# Extcon Device Drivers
-#
-CONFIG_EXTCON_ADC_JACK=m
-CONFIG_EXTCON_AXP288=m
-CONFIG_EXTCON_FSA9480=m
-CONFIG_EXTCON_GPIO=m
-CONFIG_EXTCON_INTEL_INT3496=m
-CONFIG_EXTCON_INTEL_CHT_WC=m
-CONFIG_EXTCON_INTEL_MRFLD=m
-CONFIG_EXTCON_MAX14577=m
-CONFIG_EXTCON_MAX3355=m
-CONFIG_EXTCON_MAX77693=m
-CONFIG_EXTCON_MAX77843=m
-CONFIG_EXTCON_MAX8997=m
-CONFIG_EXTCON_PALMAS=m
-CONFIG_EXTCON_PTN5150=m
-CONFIG_EXTCON_RT8973A=m
-CONFIG_EXTCON_SM5502=m
-CONFIG_EXTCON_USB_GPIO=m
-CONFIG_EXTCON_USBC_CROS_EC=m
-CONFIG_EXTCON_USBC_TUSB320=m
-CONFIG_MEMORY=y
-CONFIG_FPGA_DFL_EMIF=m
-CONFIG_IIO=m
-CONFIG_IIO_BUFFER=y
-CONFIG_IIO_BUFFER_CB=m
-CONFIG_IIO_BUFFER_DMA=m
-CONFIG_IIO_BUFFER_DMAENGINE=m
-CONFIG_IIO_BUFFER_HW_CONSUMER=m
-CONFIG_IIO_KFIFO_BUF=m
-CONFIG_IIO_TRIGGERED_BUFFER=m
-CONFIG_IIO_CONFIGFS=m
-CONFIG_IIO_TRIGGER=y
-CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
-CONFIG_IIO_SW_DEVICE=m
-CONFIG_IIO_SW_TRIGGER=m
-CONFIG_IIO_TRIGGERED_EVENT=m
-
-#
-# Accelerometers
-#
-CONFIG_ADIS16201=m
-CONFIG_ADIS16209=m
-CONFIG_ADXL372=m
-CONFIG_ADXL372_SPI=m
-CONFIG_ADXL372_I2C=m
-CONFIG_BMA220=m
-CONFIG_BMA400=m
-CONFIG_BMA400_I2C=m
-CONFIG_BMA400_SPI=m
-CONFIG_BMC150_ACCEL=m
-CONFIG_BMC150_ACCEL_I2C=m
-CONFIG_BMC150_ACCEL_SPI=m
-CONFIG_BMI088_ACCEL=m
-CONFIG_BMI088_ACCEL_SPI=m
-CONFIG_DA280=m
-CONFIG_DA311=m
-CONFIG_DMARD09=m
-CONFIG_DMARD10=m
-CONFIG_HID_SENSOR_ACCEL_3D=m
-CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m
-CONFIG_IIO_ST_ACCEL_3AXIS=m
-CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
-CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
-CONFIG_KXSD9=m
-CONFIG_KXSD9_SPI=m
-CONFIG_KXSD9_I2C=m
-CONFIG_KXCJK1013=m
-CONFIG_MC3230=m
-CONFIG_MMA7455=m
-CONFIG_MMA7455_I2C=m
-CONFIG_MMA7455_SPI=m
-CONFIG_MMA7660=m
-CONFIG_MMA8452=m
-CONFIG_MMA9551_CORE=m
-CONFIG_MMA9551=m
-CONFIG_MMA9553=m
-CONFIG_MXC4005=m
-CONFIG_MXC6255=m
-CONFIG_SCA3000=m
-CONFIG_STK8312=m
-CONFIG_STK8BA50=m
-# end of Accelerometers
-
-#
-# Analog to digital converters
-#
-CONFIG_AD_SIGMA_DELTA=m
-CONFIG_AD7091R5=m
-CONFIG_AD7124=m
-CONFIG_AD7192=m
-CONFIG_AD7266=m
-CONFIG_AD7291=m
-CONFIG_AD7292=m
-CONFIG_AD7298=m
-CONFIG_AD7476=m
-CONFIG_AD7606=m
-CONFIG_AD7606_IFACE_PARALLEL=m
-CONFIG_AD7606_IFACE_SPI=m
-CONFIG_AD7766=m
-CONFIG_AD7768_1=m
-CONFIG_AD7780=m
-CONFIG_AD7791=m
-CONFIG_AD7793=m
-CONFIG_AD7887=m
-CONFIG_AD7923=m
-CONFIG_AD7949=m
-CONFIG_AD799X=m
-CONFIG_AXP20X_ADC=m
-CONFIG_AXP288_ADC=m
-CONFIG_CC10001_ADC=m
-CONFIG_DA9150_GPADC=m
-CONFIG_DLN2_ADC=m
-CONFIG_HI8435=m
-CONFIG_HX711=m
-CONFIG_INA2XX_ADC=m
-CONFIG_INTEL_MRFLD_ADC=m
-CONFIG_LP8788_ADC=m
-CONFIG_LTC2471=m
-CONFIG_LTC2485=m
-CONFIG_LTC2496=m
-CONFIG_LTC2497=m
-CONFIG_MAX1027=m
-CONFIG_MAX11100=m
-CONFIG_MAX1118=m
-CONFIG_MAX1241=m
-CONFIG_MAX1363=m
-CONFIG_MAX9611=m
-CONFIG_MCP320X=m
-CONFIG_MCP3422=m
-CONFIG_MCP3911=m
-# CONFIG_MEDIATEK_MT6360_ADC is not set
-CONFIG_MEN_Z188_ADC=m
-CONFIG_MP2629_ADC=m
-CONFIG_NAU7802=m
-CONFIG_PALMAS_GPADC=m
-CONFIG_QCOM_VADC_COMMON=m
-CONFIG_QCOM_SPMI_IADC=m
-CONFIG_QCOM_SPMI_VADC=m
-CONFIG_QCOM_SPMI_ADC5=m
-CONFIG_TI_ADC081C=m
-CONFIG_TI_ADC0832=m
-CONFIG_TI_ADC084S021=m
-CONFIG_TI_ADC12138=m
-CONFIG_TI_ADC108S102=m
-CONFIG_TI_ADC128S052=m
-CONFIG_TI_ADC161S626=m
-CONFIG_TI_ADS1015=m
-CONFIG_TI_ADS7950=m
-CONFIG_TI_ADS131E08=m
-CONFIG_TI_AM335X_ADC=m
-CONFIG_TI_TLC4541=m
-CONFIG_TWL4030_MADC=m
-CONFIG_TWL6030_GPADC=m
-CONFIG_VIPERBOARD_ADC=m
-CONFIG_XILINX_XADC=m
-# end of Analog to digital converters
-
-#
-# Analog Front Ends
-#
-# end of Analog Front Ends
-
-#
-# Amplifiers
-#
-CONFIG_AD8366=m
-CONFIG_HMC425=m
-# end of Amplifiers
-
-#
-# Capacitance to digital converters
-#
-CONFIG_AD7150=m
-# end of Capacitance to digital converters
-
-#
-# Chemical Sensors
-#
-CONFIG_ATLAS_PH_SENSOR=m
-CONFIG_ATLAS_EZO_SENSOR=m
-CONFIG_BME680=m
-CONFIG_BME680_I2C=m
-CONFIG_BME680_SPI=m
-CONFIG_CCS811=m
-CONFIG_IAQCORE=m
-CONFIG_PMS7003=m
-CONFIG_SCD30_CORE=m
-CONFIG_SCD30_I2C=m
-CONFIG_SCD30_SERIAL=m
-CONFIG_SENSIRION_SGP30=m
-CONFIG_SPS30=m
-CONFIG_VZ89X=m
-# end of Chemical Sensors
-
-CONFIG_IIO_CROS_EC_SENSORS_CORE=m
-CONFIG_IIO_CROS_EC_SENSORS=m
-CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE=m
-
-#
-# Hid Sensor IIO Common
-#
-CONFIG_HID_SENSOR_IIO_COMMON=m
-CONFIG_HID_SENSOR_IIO_TRIGGER=m
-# end of Hid Sensor IIO Common
-
-CONFIG_IIO_MS_SENSORS_I2C=m
-
-#
-# IIO SCMI Sensors
-#
-# end of IIO SCMI Sensors
-
-#
-# SSP Sensor Common
-#
-CONFIG_IIO_SSP_SENSORS_COMMONS=m
-CONFIG_IIO_SSP_SENSORHUB=m
-# end of SSP Sensor Common
-
-CONFIG_IIO_ST_SENSORS_I2C=m
-CONFIG_IIO_ST_SENSORS_SPI=m
-CONFIG_IIO_ST_SENSORS_CORE=m
-
-#
-# Digital to analog converters
-#
-CONFIG_AD5064=m
-CONFIG_AD5360=m
-CONFIG_AD5380=m
-CONFIG_AD5421=m
-CONFIG_AD5446=m
-CONFIG_AD5449=m
-CONFIG_AD5592R_BASE=m
-CONFIG_AD5592R=m
-CONFIG_AD5593R=m
-CONFIG_AD5504=m
-CONFIG_AD5624R_SPI=m
-CONFIG_AD5686=m
-CONFIG_AD5686_SPI=m
-CONFIG_AD5696_I2C=m
-CONFIG_AD5755=m
-CONFIG_AD5758=m
-CONFIG_AD5761=m
-CONFIG_AD5764=m
-CONFIG_AD5766=m
-CONFIG_AD5770R=m
-CONFIG_AD5791=m
-CONFIG_AD7303=m
-CONFIG_AD8801=m
-CONFIG_DS4424=m
-CONFIG_LTC1660=m
-CONFIG_LTC2632=m
-CONFIG_M62332=m
-CONFIG_MAX517=m
-CONFIG_MCP4725=m
-CONFIG_MCP4922=m
-CONFIG_TI_DAC082S085=m
-CONFIG_TI_DAC5571=m
-CONFIG_TI_DAC7311=m
-CONFIG_TI_DAC7612=m
-# end of Digital to analog converters
-
-#
-# IIO dummy driver
-#
-CONFIG_IIO_SIMPLE_DUMMY=m
-# CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set
-# CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set
-# end of IIO dummy driver
-
-#
-# Frequency Synthesizers DDS/PLL
-#
-
-#
-# Clock Generator/Distribution
-#
-CONFIG_AD9523=m
-# end of Clock Generator/Distribution
-
-#
-# Phase-Locked Loop (PLL) frequency synthesizers
-#
-CONFIG_ADF4350=m
-CONFIG_ADF4371=m
-# end of Phase-Locked Loop (PLL) frequency synthesizers
-# end of Frequency Synthesizers DDS/PLL
-
-#
-# Digital gyroscope sensors
-#
-CONFIG_ADIS16080=m
-CONFIG_ADIS16130=m
-CONFIG_ADIS16136=m
-CONFIG_ADIS16260=m
-CONFIG_ADXRS290=m
-CONFIG_ADXRS450=m
-CONFIG_BMG160=m
-CONFIG_BMG160_I2C=m
-CONFIG_BMG160_SPI=m
-CONFIG_FXAS21002C=m
-CONFIG_FXAS21002C_I2C=m
-CONFIG_FXAS21002C_SPI=m
-CONFIG_HID_SENSOR_GYRO_3D=m
-CONFIG_MPU3050=m
-CONFIG_MPU3050_I2C=m
-CONFIG_IIO_ST_GYRO_3AXIS=m
-CONFIG_IIO_ST_GYRO_I2C_3AXIS=m
-CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
-CONFIG_ITG3200=m
-# end of Digital gyroscope sensors
-
-#
-# Health Sensors
-#
-
-#
-# Heart Rate Monitors
-#
-CONFIG_AFE4403=m
-CONFIG_AFE4404=m
-CONFIG_MAX30100=m
-CONFIG_MAX30102=m
-# end of Heart Rate Monitors
-# end of Health Sensors
-
-#
-# Humidity sensors
-#
-CONFIG_AM2315=m
-CONFIG_DHT11=m
-CONFIG_HDC100X=m
-CONFIG_HDC2010=m
-CONFIG_HID_SENSOR_HUMIDITY=m
-CONFIG_HTS221=m
-CONFIG_HTS221_I2C=m
-CONFIG_HTS221_SPI=m
-CONFIG_HTU21=m
-CONFIG_SI7005=m
-CONFIG_SI7020=m
-# end of Humidity sensors
-
-#
-# Inertial measurement units
-#
-CONFIG_ADIS16400=m
-CONFIG_ADIS16460=m
-CONFIG_ADIS16475=m
-CONFIG_ADIS16480=m
-CONFIG_BMI160=m
-CONFIG_BMI160_I2C=m
-CONFIG_BMI160_SPI=m
-CONFIG_FXOS8700=m
-CONFIG_FXOS8700_I2C=m
-CONFIG_FXOS8700_SPI=m
-CONFIG_KMX61=m
-CONFIG_INV_ICM42600=m
-CONFIG_INV_ICM42600_I2C=m
-CONFIG_INV_ICM42600_SPI=m
-CONFIG_INV_MPU6050_IIO=m
-CONFIG_INV_MPU6050_I2C=m
-CONFIG_INV_MPU6050_SPI=m
-CONFIG_IIO_ST_LSM6DSX=m
-CONFIG_IIO_ST_LSM6DSX_I2C=m
-CONFIG_IIO_ST_LSM6DSX_SPI=m
-CONFIG_IIO_ST_LSM6DSX_I3C=m
-# end of Inertial measurement units
-
-CONFIG_IIO_ADIS_LIB=m
-CONFIG_IIO_ADIS_LIB_BUFFER=y
-
-#
-# Light sensors
-#
-CONFIG_ACPI_ALS=m
-CONFIG_ADJD_S311=m
-CONFIG_ADUX1020=m
-CONFIG_AL3010=m
-CONFIG_AL3320A=m
-CONFIG_APDS9300=m
-CONFIG_APDS9960=m
-CONFIG_AS73211=m
-CONFIG_BH1750=m
-CONFIG_BH1780=m
-CONFIG_CM32181=m
-CONFIG_CM3232=m
-CONFIG_CM3323=m
-CONFIG_CM36651=m
-CONFIG_IIO_CROS_EC_LIGHT_PROX=m
-CONFIG_GP2AP002=m
-CONFIG_GP2AP020A00F=m
-CONFIG_IQS621_ALS=m
-CONFIG_SENSORS_ISL29018=m
-CONFIG_SENSORS_ISL29028=m
-CONFIG_ISL29125=m
-CONFIG_HID_SENSOR_ALS=m
-CONFIG_HID_SENSOR_PROX=m
-CONFIG_JSA1212=m
-CONFIG_RPR0521=m
-CONFIG_SENSORS_LM3533=m
-CONFIG_LTR501=m
-CONFIG_LV0104CS=m
-CONFIG_MAX44000=m
-CONFIG_MAX44009=m
-CONFIG_NOA1305=m
-CONFIG_OPT3001=m
-CONFIG_PA12203001=m
-CONFIG_SI1133=m
-CONFIG_SI1145=m
-CONFIG_STK3310=m
-CONFIG_ST_UVIS25=m
-CONFIG_ST_UVIS25_I2C=m
-CONFIG_ST_UVIS25_SPI=m
-CONFIG_TCS3414=m
-CONFIG_TCS3472=m
-CONFIG_SENSORS_TSL2563=m
-CONFIG_TSL2583=m
-CONFIG_TSL2772=m
-CONFIG_TSL4531=m
-CONFIG_US5182D=m
-CONFIG_VCNL4000=m
-CONFIG_VCNL4035=m
-CONFIG_VEML6030=m
-CONFIG_VEML6070=m
-CONFIG_VL6180=m
-CONFIG_ZOPT2201=m
-# end of Light sensors
-
-#
-# Magnetometer sensors
-#
-CONFIG_AK8975=m
-CONFIG_AK09911=m
-CONFIG_BMC150_MAGN=m
-CONFIG_BMC150_MAGN_I2C=m
-CONFIG_BMC150_MAGN_SPI=m
-CONFIG_MAG3110=m
-CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
-CONFIG_MMC35240=m
-CONFIG_IIO_ST_MAGN_3AXIS=m
-CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
-CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
-CONFIG_SENSORS_HMC5843=m
-CONFIG_SENSORS_HMC5843_I2C=m
-CONFIG_SENSORS_HMC5843_SPI=m
-CONFIG_SENSORS_RM3100=m
-CONFIG_SENSORS_RM3100_I2C=m
-CONFIG_SENSORS_RM3100_SPI=m
-CONFIG_YAMAHA_YAS530=m
-# end of Magnetometer sensors
-
-#
-# Multiplexers
-#
-# end of Multiplexers
-
-#
-# Inclinometer sensors
-#
-CONFIG_HID_SENSOR_INCLINOMETER_3D=m
-CONFIG_HID_SENSOR_DEVICE_ROTATION=m
-# end of Inclinometer sensors
-
-#
-# Triggers - standalone
-#
-CONFIG_IIO_HRTIMER_TRIGGER=m
-CONFIG_IIO_INTERRUPT_TRIGGER=m
-CONFIG_IIO_TIGHTLOOP_TRIGGER=m
-CONFIG_IIO_SYSFS_TRIGGER=m
-# end of Triggers - standalone
-
-#
-# Linear and angular position sensors
-#
-CONFIG_IQS624_POS=m
-CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE=m
-# end of Linear and angular position sensors
-
-#
-# Digital potentiometers
-#
-CONFIG_AD5272=m
-CONFIG_DS1803=m
-CONFIG_MAX5432=m
-CONFIG_MAX5481=m
-CONFIG_MAX5487=m
-CONFIG_MCP4018=m
-CONFIG_MCP4131=m
-CONFIG_MCP4531=m
-CONFIG_MCP41010=m
-CONFIG_TPL0102=m
-# end of Digital potentiometers
-
-#
-# Digital potentiostats
-#
-CONFIG_LMP91000=m
-# end of Digital potentiostats
-
-#
-# Pressure sensors
-#
-CONFIG_ABP060MG=m
-CONFIG_BMP280=m
-CONFIG_BMP280_I2C=m
-CONFIG_BMP280_SPI=m
-CONFIG_IIO_CROS_EC_BARO=m
-CONFIG_DLHL60D=m
-CONFIG_DPS310=m
-CONFIG_HID_SENSOR_PRESS=m
-CONFIG_HP03=m
-CONFIG_ICP10100=m
-CONFIG_MPL115=m
-CONFIG_MPL115_I2C=m
-CONFIG_MPL115_SPI=m
-CONFIG_MPL3115=m
-CONFIG_MS5611=m
-CONFIG_MS5611_I2C=m
-CONFIG_MS5611_SPI=m
-CONFIG_MS5637=m
-CONFIG_IIO_ST_PRESS=m
-CONFIG_IIO_ST_PRESS_I2C=m
-CONFIG_IIO_ST_PRESS_SPI=m
-CONFIG_T5403=m
-CONFIG_HP206C=m
-CONFIG_ZPA2326=m
-CONFIG_ZPA2326_I2C=m
-CONFIG_ZPA2326_SPI=m
-# end of Pressure sensors
-
-#
-# Lightning sensors
-#
-CONFIG_AS3935=m
-# end of Lightning sensors
-
-#
-# Proximity and distance sensors
-#
-CONFIG_CROS_EC_MKBP_PROXIMITY=m
-CONFIG_ISL29501=m
-CONFIG_LIDAR_LITE_V2=m
-CONFIG_MB1232=m
-CONFIG_PING=m
-CONFIG_RFD77402=m
-CONFIG_SRF04=m
-CONFIG_SX9310=m
-CONFIG_SX9500=m
-CONFIG_SRF08=m
-CONFIG_VCNL3020=m
-CONFIG_VL53L0X_I2C=m
-# end of Proximity and distance sensors
-
-#
-# Resolver to digital converters
-#
-CONFIG_AD2S90=m
-CONFIG_AD2S1200=m
-# end of Resolver to digital converters
-
-#
-# Temperature sensors
-#
-CONFIG_IQS620AT_TEMP=m
-CONFIG_LTC2983=m
-CONFIG_MAXIM_THERMOCOUPLE=m
-CONFIG_HID_SENSOR_TEMP=m
-CONFIG_MLX90614=m
-CONFIG_MLX90632=m
-CONFIG_TMP006=m
-CONFIG_TMP007=m
-CONFIG_TSYS01=m
-CONFIG_TSYS02D=m
-CONFIG_MAX31856=m
-# end of Temperature sensors
-
-CONFIG_NTB=m
-CONFIG_NTB_MSI=y
-CONFIG_NTB_IDT=m
-CONFIG_NTB_EPF=m
-CONFIG_NTB_SWITCHTEC=m
-CONFIG_NTB_PINGPONG=m
-CONFIG_NTB_TOOL=m
-CONFIG_NTB_PERF=m
-CONFIG_NTB_MSI_TEST=m
-CONFIG_NTB_TRANSPORT=m
-CONFIG_VME_BUS=y
-
-#
-# VME Bridge Drivers
-#
-CONFIG_VME_CA91CX42=m
-CONFIG_VME_TSI148=m
-# CONFIG_VME_FAKE is not set
-
-#
-# VME Board Drivers
-#
-CONFIG_VMIVME_7805=m
-
-#
-# VME Device Drivers
-#
-CONFIG_VME_USER=m
-CONFIG_PWM=y
-CONFIG_PWM_SYSFS=y
-# CONFIG_PWM_DEBUG is not set
-CONFIG_PWM_CRC=y
-CONFIG_PWM_CROS_EC=m
-CONFIG_PWM_DWC=m
-CONFIG_PWM_IQS620A=m
-CONFIG_PWM_LP3943=m
-CONFIG_PWM_LPSS=m
-CONFIG_PWM_LPSS_PCI=m
-CONFIG_PWM_LPSS_PLATFORM=m
-CONFIG_PWM_PCA9685=m
-CONFIG_PWM_TWL=m
-CONFIG_PWM_TWL_LED=m
-
-#
-# IRQ chip support
-#
-CONFIG_MADERA_IRQ=m
-# end of IRQ chip support
-
-CONFIG_IPACK_BUS=m
-CONFIG_BOARD_TPCI200=m
-CONFIG_SERIAL_IPOCTAL=m
-CONFIG_RESET_CONTROLLER=y
-# CONFIG_RESET_BRCMSTB_RESCAL is not set
-CONFIG_RESET_TI_SYSCON=m
-
-#
-# PHY Subsystem
-#
-CONFIG_GENERIC_PHY=y
-CONFIG_USB_LGM_PHY=m
-CONFIG_BCM_KONA_USB2_PHY=m
-CONFIG_PHY_PXA_28NM_HSIC=m
-CONFIG_PHY_PXA_28NM_USB2=m
-CONFIG_PHY_CPCAP_USB=m
-CONFIG_PHY_QCOM_USB_HS=m
-CONFIG_PHY_QCOM_USB_HSIC=m
-CONFIG_PHY_SAMSUNG_USB2=m
-CONFIG_PHY_TUSB1210=m
-CONFIG_PHY_INTEL_LGM_EMMC=m
-# end of PHY Subsystem
-
-CONFIG_POWERCAP=y
-CONFIG_INTEL_RAPL_CORE=m
-CONFIG_INTEL_RAPL=m
-# CONFIG_IDLE_INJECT is not set
-# CONFIG_DTPM is not set
-CONFIG_MCB=m
-CONFIG_MCB_PCI=m
-CONFIG_MCB_LPC=m
-
-#
-# Performance monitor support
-#
-# end of Performance monitor support
-
-CONFIG_RAS=y
-CONFIG_USB4=m
-# CONFIG_USB4_DEBUGFS_WRITE is not set
-# CONFIG_USB4_DMA_TEST is not set
-
-#
-# Android
-#
-# CONFIG_ANDROID is not set
-# end of Android
-
-CONFIG_LIBNVDIMM=y
-CONFIG_BLK_DEV_PMEM=m
-CONFIG_ND_BLK=m
-CONFIG_ND_CLAIM=y
-CONFIG_ND_BTT=m
-CONFIG_BTT=y
-CONFIG_NVDIMM_KEYS=y
-CONFIG_DAX_DRIVER=y
-CONFIG_DAX=y
-CONFIG_DEV_DAX=m
-CONFIG_NVMEM=y
-CONFIG_NVMEM_SYSFS=y
-CONFIG_NVMEM_SPMI_SDAM=m
-CONFIG_RAVE_SP_EEPROM=m
-CONFIG_NVMEM_RMEM=m
-
-#
-# HW tracing support
-#
-CONFIG_STM=m
-CONFIG_STM_PROTO_BASIC=m
-CONFIG_STM_PROTO_SYS_T=m
-CONFIG_STM_DUMMY=m
-CONFIG_STM_SOURCE_CONSOLE=m
-CONFIG_STM_SOURCE_HEARTBEAT=m
-CONFIG_STM_SOURCE_FTRACE=m
-CONFIG_INTEL_TH=m
-CONFIG_INTEL_TH_PCI=m
-CONFIG_INTEL_TH_ACPI=m
-CONFIG_INTEL_TH_GTH=m
-CONFIG_INTEL_TH_STH=m
-CONFIG_INTEL_TH_MSU=m
-CONFIG_INTEL_TH_PTI=m
-# CONFIG_INTEL_TH_DEBUG is not set
-# end of HW tracing support
-
-CONFIG_FPGA=m
-CONFIG_ALTERA_PR_IP_CORE=m
-CONFIG_FPGA_MGR_ALTERA_PS_SPI=m
-CONFIG_FPGA_MGR_ALTERA_CVP=m
-CONFIG_FPGA_MGR_XILINX_SPI=m
-CONFIG_FPGA_MGR_MACHXO2_SPI=m
-CONFIG_FPGA_BRIDGE=m
-CONFIG_ALTERA_FREEZE_BRIDGE=m
-CONFIG_XILINX_PR_DECOUPLER=m
-CONFIG_FPGA_REGION=m
-CONFIG_FPGA_DFL=m
-CONFIG_FPGA_DFL_FME=m
-CONFIG_FPGA_DFL_FME_MGR=m
-CONFIG_FPGA_DFL_FME_BRIDGE=m
-CONFIG_FPGA_DFL_FME_REGION=m
-CONFIG_FPGA_DFL_AFU=m
-CONFIG_FPGA_DFL_NIOS_INTEL_PAC_N3000=m
-CONFIG_FPGA_DFL_PCI=m
-CONFIG_TEE=m
-
-#
-# TEE drivers
-#
-# end of TEE drivers
-
-CONFIG_MULTIPLEXER=m
-
-#
-# Multiplexer drivers
-#
-CONFIG_MUX_ADG792A=m
-CONFIG_MUX_ADGS1408=m
-CONFIG_MUX_GPIO=m
-# end of Multiplexer drivers
-
-CONFIG_PM_OPP=y
-# CONFIG_SIOX is not set
-# CONFIG_SLIMBUS is not set
-# CONFIG_INTERCONNECT is not set
-CONFIG_COUNTER=m
-CONFIG_INTERRUPT_CNT=m
-CONFIG_MOST=m
-CONFIG_MOST_USB_HDM=m
-CONFIG_MOST_CDEV=m
-CONFIG_MOST_SND=m
-# end of Device Drivers
-
-#
-# File systems
-#
-CONFIG_DCACHE_WORD_ACCESS=y
-CONFIG_VALIDATE_FS_PARSER=y
-CONFIG_FS_IOMAP=y
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT3_FS is not set
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_USE_FOR_EXT2=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD2=y
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-# CONFIG_JFS_DEBUG is not set
-CONFIG_JFS_STATISTICS=y
-CONFIG_XFS_FS=m
-CONFIG_XFS_SUPPORT_V4=y
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-# CONFIG_XFS_ONLINE_SCRUB is not set
-# CONFIG_XFS_WARN is not set
-# CONFIG_XFS_DEBUG is not set
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=y
-CONFIG_OCFS2_FS=m
-CONFIG_OCFS2_FS_O2CB=m
-CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
-CONFIG_OCFS2_FS_STATS=y
-CONFIG_OCFS2_DEBUG_MASKLOG=y
-# CONFIG_OCFS2_DEBUG_FS is not set
-CONFIG_BTRFS_FS=m
-CONFIG_BTRFS_FS_POSIX_ACL=y
-# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
-# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
-# CONFIG_BTRFS_DEBUG is not set
-# CONFIG_BTRFS_ASSERT is not set
-# CONFIG_BTRFS_FS_REF_VERIFY is not set
-CONFIG_NILFS2_FS=m
-CONFIG_F2FS_FS=m
-CONFIG_F2FS_STAT_FS=y
-CONFIG_F2FS_FS_XATTR=y
-CONFIG_F2FS_FS_POSIX_ACL=y
-CONFIG_F2FS_FS_SECURITY=y
-# CONFIG_F2FS_CHECK_FS is not set
-# CONFIG_F2FS_FAULT_INJECTION is not set
-# CONFIG_F2FS_FS_COMPRESSION is not set
-CONFIG_ZONEFS_FS=m
-CONFIG_FS_DAX=y
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-# CONFIG_EXPORTFS_BLOCK_OPS is not set
-CONFIG_FILE_LOCKING=y
-CONFIG_MANDATORY_FILE_LOCKING=y
-# CONFIG_FS_ENCRYPTION is not set
-CONFIG_FS_VERITY=y
-# CONFIG_FS_VERITY_DEBUG is not set
-# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_FANOTIFY=y
-CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=m
-CONFIG_QFMT_V1=m
-CONFIG_QFMT_V2=m
-CONFIG_QUOTACTL=y
-CONFIG_AUTOFS4_FS=m
-CONFIG_AUTOFS_FS=m
-CONFIG_FUSE_FS=y
-CONFIG_CUSE=m
-CONFIG_VIRTIO_FS=m
-CONFIG_FUSE_DAX=y
-CONFIG_OVERLAY_FS=m
-# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
-# CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW is not set
-# CONFIG_OVERLAY_FS_INDEX is not set
-# CONFIG_OVERLAY_FS_METACOPY is not set
-
-#
-# Caches
-#
-CONFIG_NETFS_SUPPORT=m
-# CONFIG_NETFS_STATS is not set
-CONFIG_FSCACHE=m
-CONFIG_FSCACHE_STATS=y
-# CONFIG_FSCACHE_HISTOGRAM is not set
-# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
-CONFIG_CACHEFILES=m
-# CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
-# end of Caches
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-# end of CD-ROM/DVD Filesystems
-
-#
-# DOS/FAT/EXFAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-# CONFIG_FAT_DEFAULT_UTF8 is not set
-CONFIG_EXFAT_FS=m
-CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-# CONFIG_NTFS_RW is not set
-# end of DOS/FAT/EXFAT/NT Filesystems
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_PROC_VMCORE=y
-# CONFIG_PROC_VMCORE_DEVICE_DUMP is not set
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_PROC_CHILDREN=y
-CONFIG_PROC_PID_ARCH_STATUS=y
-CONFIG_KERNFS=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-CONFIG_HUGETLBFS=y
-CONFIG_HUGETLB_PAGE=y
-CONFIG_MEMFD_CREATE=y
-CONFIG_CONFIGFS_FS=m
-CONFIG_EFIVAR_FS=y
-# end of Pseudo filesystems
-
-CONFIG_MISC_FILESYSTEMS=y
-CONFIG_ORANGEFS_FS=m
-CONFIG_ADFS_FS=m
-# CONFIG_ADFS_FS_RW is not set
-CONFIG_AFFS_FS=m
-CONFIG_ECRYPT_FS=y
-CONFIG_ECRYPT_FS_MESSAGING=y
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-CONFIG_BEFS_FS=m
-# CONFIG_BEFS_DEBUG is not set
-CONFIG_BFS_FS=m
-CONFIG_EFS_FS=m
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-# CONFIG_JFFS2_SUMMARY is not set
-CONFIG_JFFS2_FS_XATTR=y
-CONFIG_JFFS2_FS_POSIX_ACL=y
-CONFIG_JFFS2_FS_SECURITY=y
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_LZO=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_JFFS2_CMODE_NONE is not set
-# CONFIG_JFFS2_CMODE_PRIORITY is not set
-# CONFIG_JFFS2_CMODE_SIZE is not set
-CONFIG_JFFS2_CMODE_FAVOURLZO=y
-CONFIG_UBIFS_FS=m
-# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-CONFIG_UBIFS_FS_ZSTD=y
-CONFIG_UBIFS_ATIME_SUPPORT=y
-CONFIG_UBIFS_FS_XATTR=y
-CONFIG_UBIFS_FS_SECURITY=y
-CONFIG_UBIFS_FS_AUTHENTICATION=y
-CONFIG_CRAMFS=m
-CONFIG_CRAMFS_BLOCKDEV=y
-# CONFIG_CRAMFS_MTD is not set
-CONFIG_SQUASHFS=m
-# CONFIG_SQUASHFS_FILE_CACHE is not set
-CONFIG_SQUASHFS_FILE_DIRECT=y
-# CONFIG_SQUASHFS_DECOMP_SINGLE is not set
-# CONFIG_SQUASHFS_DECOMP_MULTI is not set
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
-CONFIG_SQUASHFS_XATTR=y
-CONFIG_SQUASHFS_ZLIB=y
-CONFIG_SQUASHFS_LZ4=y
-CONFIG_SQUASHFS_LZO=y
-CONFIG_SQUASHFS_XZ=y
-# CONFIG_SQUASHFS_ZSTD is not set
-# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-CONFIG_VXFS_FS=m
-CONFIG_MINIX_FS=m
-CONFIG_OMFS_FS=m
-CONFIG_HPFS_FS=m
-CONFIG_QNX4FS_FS=m
-CONFIG_QNX6FS_FS=m
-# CONFIG_QNX6FS_DEBUG is not set
-CONFIG_ROMFS_FS=m
-CONFIG_ROMFS_BACKED_BY_BLOCK=y
-# CONFIG_ROMFS_BACKED_BY_MTD is not set
-# CONFIG_ROMFS_BACKED_BY_BOTH is not set
-CONFIG_ROMFS_ON_BLOCK=y
-CONFIG_PSTORE=y
-CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
-CONFIG_PSTORE_DEFLATE_COMPRESS=m
-# CONFIG_PSTORE_LZO_COMPRESS is not set
-# CONFIG_PSTORE_LZ4_COMPRESS is not set
-# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
-# CONFIG_PSTORE_842_COMPRESS is not set
-# CONFIG_PSTORE_ZSTD_COMPRESS is not set
-CONFIG_PSTORE_COMPRESS=y
-CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
-CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
-# CONFIG_PSTORE_CONSOLE is not set
-# CONFIG_PSTORE_PMSG is not set
-# CONFIG_PSTORE_FTRACE is not set
-CONFIG_PSTORE_RAM=m
-CONFIG_PSTORE_ZONE=m
-CONFIG_PSTORE_BLK=m
-CONFIG_PSTORE_BLK_BLKDEV=""
-CONFIG_PSTORE_BLK_KMSG_SIZE=64
-CONFIG_PSTORE_BLK_MAX_REASON=2
-CONFIG_SYSV_FS=m
-CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_UFS_DEBUG is not set
-CONFIG_EROFS_FS=m
-# CONFIG_EROFS_FS_DEBUG is not set
-CONFIG_EROFS_FS_XATTR=y
-CONFIG_EROFS_FS_POSIX_ACL=y
-CONFIG_EROFS_FS_SECURITY=y
-# CONFIG_EROFS_FS_ZIP is not set
-CONFIG_VBOXSF_FS=m
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=m
-CONFIG_NFS_V2=m
-CONFIG_NFS_V3=m
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=m
-CONFIG_NFS_SWAP=y
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_V4_2=y
-CONFIG_PNFS_FILE_LAYOUT=m
-CONFIG_PNFS_BLOCK=m
-CONFIG_PNFS_FLEXFILE_LAYOUT=m
-CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
-CONFIG_NFS_V4_1_MIGRATION=y
-CONFIG_NFS_V4_SECURITY_LABEL=y
-CONFIG_NFS_FSCACHE=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-CONFIG_NFS_DEBUG=y
-# CONFIG_NFS_DISABLE_UDP_SUPPORT is not set
-# CONFIG_NFS_V4_2_READ_PLUS is not set
-CONFIG_NFSD=m
-CONFIG_NFSD_V2_ACL=y
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-# CONFIG_NFSD_BLOCKLAYOUT is not set
-# CONFIG_NFSD_SCSILAYOUT is not set
-# CONFIG_NFSD_FLEXFILELAYOUT is not set
-# CONFIG_NFSD_V4_2_INTER_SSC is not set
-CONFIG_NFSD_V4_SECURITY_LABEL=y
-CONFIG_GRACE_PERIOD=m
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_ACL_SUPPORT=m
-CONFIG_NFS_COMMON=y
-CONFIG_NFS_V4_2_SSC_HELPER=y
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
-CONFIG_SUNRPC_BACKCHANNEL=y
-CONFIG_SUNRPC_SWAP=y
-CONFIG_RPCSEC_GSS_KRB5=m
-CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y
-CONFIG_SUNRPC_DEBUG=y
-CONFIG_SUNRPC_XPRT_RDMA=m
-CONFIG_CEPH_FS=m
-CONFIG_CEPH_FSCACHE=y
-CONFIG_CEPH_FS_POSIX_ACL=y
-CONFIG_CEPH_FS_SECURITY_LABEL=y
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS2 is not set
-CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
-CONFIG_CIFS_WEAK_PW_HASH=y
-CONFIG_CIFS_UPCALL=y
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-CONFIG_CIFS_DEBUG=y
-# CONFIG_CIFS_DEBUG2 is not set
-# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
-CONFIG_CIFS_DFS_UPCALL=y
-CONFIG_CIFS_SWN_UPCALL=y
-# CONFIG_CIFS_SMB_DIRECT is not set
-CONFIG_CIFS_FSCACHE=y
-CONFIG_CODA_FS=m
-CONFIG_AFS_FS=m
-# CONFIG_AFS_DEBUG is not set
-CONFIG_AFS_FSCACHE=y
-# CONFIG_AFS_DEBUG_CURSOR is not set
-CONFIG_9P_FS=m
-CONFIG_9P_FSCACHE=y
-CONFIG_9P_FS_POSIX_ACL=y
-CONFIG_9P_FS_SECURITY=y
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_MAC_ROMAN=m
-CONFIG_NLS_MAC_CELTIC=m
-CONFIG_NLS_MAC_CENTEURO=m
-CONFIG_NLS_MAC_CROATIAN=m
-CONFIG_NLS_MAC_CYRILLIC=m
-CONFIG_NLS_MAC_GAELIC=m
-CONFIG_NLS_MAC_GREEK=m
-CONFIG_NLS_MAC_ICELAND=m
-CONFIG_NLS_MAC_INUIT=m
-CONFIG_NLS_MAC_ROMANIAN=m
-CONFIG_NLS_MAC_TURKISH=m
-CONFIG_NLS_UTF8=m
-CONFIG_DLM=m
-# CONFIG_DLM_DEBUG is not set
-# CONFIG_UNICODE is not set
-CONFIG_IO_WQ=y
-# end of File systems
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-CONFIG_KEYS_REQUEST_CACHE=y
-CONFIG_PERSISTENT_KEYRINGS=y
-CONFIG_TRUSTED_KEYS=y
-CONFIG_ENCRYPTED_KEYS=y
-CONFIG_KEY_DH_OPERATIONS=y
-CONFIG_KEY_NOTIFICATIONS=y
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-CONFIG_SECURITY=y
-CONFIG_SECURITY_WRITABLE_HOOKS=y
-CONFIG_SECURITYFS=y
-CONFIG_SECURITY_NETWORK=y
-CONFIG_PAGE_TABLE_ISOLATION=y
-# CONFIG_SECURITY_INFINIBAND is not set
-CONFIG_SECURITY_NETWORK_XFRM=y
-CONFIG_SECURITY_PATH=y
-CONFIG_INTEL_TXT=y
-CONFIG_LSM_MMAP_MIN_ADDR=0
-CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
-CONFIG_HARDENED_USERCOPY=y
-CONFIG_HARDENED_USERCOPY_FALLBACK=y
-# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
-CONFIG_FORTIFY_SOURCE=y
-# CONFIG_STATIC_USERMODEHELPER is not set
-CONFIG_SECURITY_SELINUX=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
-CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_AVC_STATS=y
-CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
-CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
-CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
-CONFIG_SECURITY_SMACK=y
-# CONFIG_SECURITY_SMACK_BRINGUP is not set
-CONFIG_SECURITY_SMACK_NETFILTER=y
-# CONFIG_SECURITY_SMACK_APPEND_SIGNALS is not set
-CONFIG_SECURITY_TOMOYO=y
-CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
-CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
-# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
-CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
-CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
-# CONFIG_SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING is not set
-CONFIG_SECURITY_APPARMOR=y
-CONFIG_SECURITY_APPARMOR_HASH=y
-CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
-# CONFIG_SECURITY_APPARMOR_DEBUG is not set
-# CONFIG_SECURITY_LOADPIN is not set
-CONFIG_SECURITY_YAMA=y
-# CONFIG_SECURITY_SAFESETID is not set
-# CONFIG_SECURITY_LOCKDOWN_LSM is not set
-CONFIG_SECURITY_LANDLOCK=y
-CONFIG_INTEGRITY=y
-CONFIG_INTEGRITY_SIGNATURE=y
-CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
-CONFIG_INTEGRITY_TRUSTED_KEYRING=y
-CONFIG_INTEGRITY_AUDIT=y
-CONFIG_IMA=y
-CONFIG_IMA_MEASURE_PCR_IDX=10
-CONFIG_IMA_LSM_RULES=y
-# CONFIG_IMA_TEMPLATE is not set
-CONFIG_IMA_NG_TEMPLATE=y
-# CONFIG_IMA_SIG_TEMPLATE is not set
-CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
-CONFIG_IMA_DEFAULT_HASH_SHA1=y
-# CONFIG_IMA_DEFAULT_HASH_SHA256 is not set
-# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
-CONFIG_IMA_DEFAULT_HASH="sha1"
-# CONFIG_IMA_WRITE_POLICY is not set
-# CONFIG_IMA_READ_POLICY is not set
-CONFIG_IMA_APPRAISE=y
-# CONFIG_IMA_ARCH_POLICY is not set
-# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
-CONFIG_IMA_APPRAISE_BOOTPARAM=y
-# CONFIG_IMA_APPRAISE_MODSIG is not set
-CONFIG_IMA_TRUSTED_KEYRING=y
-CONFIG_IMA_BLACKLIST_KEYRING=y
-# CONFIG_IMA_LOAD_X509 is not set
-CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=y
-CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS=y
-# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set
-CONFIG_EVM=y
-CONFIG_EVM_ATTR_FSUUID=y
-CONFIG_EVM_EXTRA_SMACK_XATTRS=y
-# CONFIG_EVM_ADD_XATTRS is not set
-# CONFIG_EVM_LOAD_X509 is not set
-# CONFIG_DEFAULT_SECURITY_SELINUX is not set
-# CONFIG_DEFAULT_SECURITY_SMACK is not set
-# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
-CONFIG_DEFAULT_SECURITY_APPARMOR=y
-# CONFIG_DEFAULT_SECURITY_DAC is not set
-CONFIG_LSM="yama,loadpin,safesetid,integrity,apparmor,selinux,smack,tomoyo"
-
-#
-# Kernel hardening options
-#
-
-#
-# Memory initialization
-#
-CONFIG_INIT_STACK_NONE=y
-CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
-# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
-# end of Memory initialization
-# end of Kernel hardening options
-# end of Security options
-
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=y
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_SKCIPHER=y
-CONFIG_CRYPTO_SKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=y
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_RNG_DEFAULT=y
-CONFIG_CRYPTO_AKCIPHER2=y
-CONFIG_CRYPTO_AKCIPHER=y
-CONFIG_CRYPTO_KPP2=y
-CONFIG_CRYPTO_KPP=y
-CONFIG_CRYPTO_ACOMP2=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-CONFIG_CRYPTO_USER=m
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-CONFIG_CRYPTO_GF128MUL=y
-CONFIG_CRYPTO_NULL=y
-CONFIG_CRYPTO_NULL2=y
-CONFIG_CRYPTO_PCRYPT=m
-CONFIG_CRYPTO_CRYPTD=m
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_TEST=m
-CONFIG_CRYPTO_SIMD=m
-CONFIG_CRYPTO_ENGINE=m
-
-#
-# Public-key cryptography
-#
-CONFIG_CRYPTO_RSA=y
-CONFIG_CRYPTO_DH=y
-CONFIG_CRYPTO_ECC=m
-CONFIG_CRYPTO_ECDH=m
-CONFIG_CRYPTO_ECDSA=m
-CONFIG_CRYPTO_ECRDSA=m
-CONFIG_CRYPTO_SM2=m
-CONFIG_CRYPTO_CURVE25519=m
-
-#
-# Authenticated Encryption with Associated Data
-#
-CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_GCM=y
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_SEQIV=y
-CONFIG_CRYPTO_ECHAINIV=m
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CFB=m
-CONFIG_CRYPTO_CTR=y
-CONFIG_CRYPTO_CTS=m
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_OFB=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=m
-CONFIG_CRYPTO_KEYWRAP=m
-CONFIG_CRYPTO_NHPOLY1305=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_ESSIV=m
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_CMAC=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CRC32C_INTEL=y
-CONFIG_CRYPTO_CRC32=m
-CONFIG_CRYPTO_CRC32_PCLMUL=m
-CONFIG_CRYPTO_XXHASH=m
-CONFIG_CRYPTO_BLAKE2B=m
-CONFIG_CRYPTO_BLAKE2S=m
-CONFIG_CRYPTO_CRCT10DIF=y
-CONFIG_CRYPTO_GHASH=y
-CONFIG_CRYPTO_POLY1305=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_SM3=m
-CONFIG_CRYPTO_STREEBOG=m
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_AES_TI=m
-CONFIG_CRYPTO_AES_NI_INTEL=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_BLOWFISH_COMMON=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST_COMMON=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_CHACHA20=m
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_SERPENT_SSE2_586=m
-CONFIG_CRYPTO_SM4=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-CONFIG_CRYPTO_TWOFISH_586=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_LZO=y
-CONFIG_CRYPTO_842=m
-CONFIG_CRYPTO_LZ4=m
-CONFIG_CRYPTO_LZ4HC=m
-CONFIG_CRYPTO_ZSTD=m
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_DRBG_MENU=y
-CONFIG_CRYPTO_DRBG_HMAC=y
-CONFIG_CRYPTO_DRBG_HASH=y
-CONFIG_CRYPTO_DRBG_CTR=y
-CONFIG_CRYPTO_DRBG=y
-CONFIG_CRYPTO_JITTERENTROPY=y
-CONFIG_CRYPTO_USER_API=m
-CONFIG_CRYPTO_USER_API_HASH=m
-CONFIG_CRYPTO_USER_API_SKCIPHER=m
-CONFIG_CRYPTO_USER_API_RNG=m
-# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
-CONFIG_CRYPTO_USER_API_AEAD=m
-CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
-# CONFIG_CRYPTO_STATS is not set
-CONFIG_CRYPTO_HASH_INFO=y
-
-#
-# Crypto library routines
-#
-CONFIG_CRYPTO_LIB_AES=y
-CONFIG_CRYPTO_LIB_ARC4=m
-CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=m
-CONFIG_CRYPTO_LIB_BLAKE2S=m
-CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
-CONFIG_CRYPTO_LIB_CHACHA=m
-CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
-CONFIG_CRYPTO_LIB_CURVE25519=m
-CONFIG_CRYPTO_LIB_DES=m
-CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1
-CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
-CONFIG_CRYPTO_LIB_POLY1305=m
-CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
-CONFIG_CRYPTO_LIB_SHA256=y
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_PADLOCK=y
-CONFIG_CRYPTO_DEV_PADLOCK_AES=m
-CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
-CONFIG_CRYPTO_DEV_GEODE=m
-CONFIG_CRYPTO_DEV_ATMEL_I2C=m
-CONFIG_CRYPTO_DEV_ATMEL_ECC=m
-CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m
-CONFIG_CRYPTO_DEV_CCP=y
-CONFIG_CRYPTO_DEV_CCP_DD=m
-CONFIG_CRYPTO_DEV_SP_CCP=y
-CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
-# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
-CONFIG_CRYPTO_DEV_QAT=m
-CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
-CONFIG_CRYPTO_DEV_QAT_C3XXX=m
-CONFIG_CRYPTO_DEV_QAT_C62X=m
-CONFIG_CRYPTO_DEV_QAT_4XXX=m
-CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
-CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
-CONFIG_CRYPTO_DEV_QAT_C62XVF=m
-CONFIG_CRYPTO_DEV_CHELSIO=m
-CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DEV_SAFEXCEL=m
-CONFIG_CRYPTO_DEV_AMLOGIC_GXL=m
-# CONFIG_CRYPTO_DEV_AMLOGIC_GXL_DEBUG is not set
-CONFIG_ASYMMETRIC_KEY_TYPE=y
-CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
-CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m
-CONFIG_X509_CERTIFICATE_PARSER=y
-CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
-CONFIG_TPM_KEY_PARSER=m
-CONFIG_PKCS7_MESSAGE_PARSER=y
-# CONFIG_PKCS7_TEST_KEY is not set
-# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set
-
-#
-# Certificates for signature checking
-#
-CONFIG_SYSTEM_TRUSTED_KEYRING=y
-CONFIG_SYSTEM_TRUSTED_KEYS=""
-# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
-# CONFIG_SECONDARY_TRUSTED_KEYRING is not set
-# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
-# end of Certificates for signature checking
-
-CONFIG_BINARY_PRINTF=y
-
-#
-# Library routines
-#
-CONFIG_RAID6_PQ=m
-CONFIG_RAID6_PQ_BENCHMARK=y
-CONFIG_LINEAR_RANGES=y
-CONFIG_PACKING=y
-CONFIG_BITREVERSE=y
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GENERIC_NET_UTILS=y
-CONFIG_GENERIC_FIND_FIRST_BIT=y
-CONFIG_CORDIC=m
-CONFIG_PRIME_NUMBERS=m
-CONFIG_RATIONAL=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_GENERIC_IOMAP=y
-CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
-CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
-CONFIG_CRC_CCITT=y
-CONFIG_CRC16=y
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC32=y
-# CONFIG_CRC32_SELFTEST is not set
-CONFIG_CRC32_SLICEBY8=y
-# CONFIG_CRC32_SLICEBY4 is not set
-# CONFIG_CRC32_SARWATE is not set
-# CONFIG_CRC32_BIT is not set
-CONFIG_CRC64=m
-# CONFIG_CRC4 is not set
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=m
-CONFIG_CRC8=m
-CONFIG_XXHASH=y
-CONFIG_AUDIT_GENERIC=y
-# CONFIG_RANDOM32_SELFTEST is not set
-CONFIG_842_COMPRESS=m
-CONFIG_842_DECOMPRESS=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_LZ4_COMPRESS=m
-CONFIG_LZ4HC_COMPRESS=m
-CONFIG_LZ4_DECOMPRESS=y
-CONFIG_ZSTD_COMPRESS=m
-CONFIG_ZSTD_DECOMPRESS=y
-CONFIG_XZ_DEC=y
-CONFIG_XZ_DEC_X86=y
-CONFIG_XZ_DEC_POWERPC=y
-CONFIG_XZ_DEC_IA64=y
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-CONFIG_XZ_DEC_SPARC=y
-CONFIG_XZ_DEC_BCJ=y
-CONFIG_XZ_DEC_TEST=m
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_BZIP2=y
-CONFIG_DECOMPRESS_LZMA=y
-CONFIG_DECOMPRESS_XZ=y
-CONFIG_DECOMPRESS_LZO=y
-CONFIG_DECOMPRESS_LZ4=y
-CONFIG_DECOMPRESS_ZSTD=y
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_REED_SOLOMON=m
-CONFIG_REED_SOLOMON_ENC8=y
-CONFIG_REED_SOLOMON_DEC8=y
-CONFIG_REED_SOLOMON_DEC16=y
-CONFIG_BCH=m
-CONFIG_BCH_CONST_PARAMS=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_BTREE=y
-CONFIG_INTERVAL_TREE=y
-CONFIG_XARRAY_MULTI=y
-CONFIG_ASSOCIATIVE_ARRAY=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT_MAP=y
-CONFIG_HAS_DMA=y
-CONFIG_DMA_OPS=y
-CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_ARCH_DMA_ADDR_T_64BIT=y
-CONFIG_SWIOTLB=y
-CONFIG_DMA_CMA=y
-CONFIG_DMA_PERNUMA_CMA=y
-
-#
-# Default contiguous memory area size:
-#
-CONFIG_CMA_SIZE_MBYTES=0
-CONFIG_CMA_SIZE_SEL_MBYTES=y
-# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
-# CONFIG_CMA_SIZE_SEL_MIN is not set
-# CONFIG_CMA_SIZE_SEL_MAX is not set
-CONFIG_CMA_ALIGNMENT=8
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_DMA_MAP_BENCHMARK is not set
-CONFIG_SGL_ALLOC=y
-CONFIG_CHECK_SIGNATURE=y
-CONFIG_CPU_RMAP=y
-CONFIG_DQL=y
-CONFIG_GLOB=y
-# CONFIG_GLOB_SELFTEST is not set
-CONFIG_NLATTR=y
-CONFIG_LRU_CACHE=m
-CONFIG_CLZ_TAB=y
-CONFIG_IRQ_POLL=y
-CONFIG_MPILIB=y
-CONFIG_SIGNATURE=y
-CONFIG_DIMLIB=y
-CONFIG_OID_REGISTRY=y
-CONFIG_UCS2_STRING=y
-CONFIG_HAVE_GENERIC_VDSO=y
-CONFIG_GENERIC_GETTIMEOFDAY=y
-CONFIG_GENERIC_VDSO_32=y
-CONFIG_GENERIC_VDSO_TIME_NS=y
-CONFIG_FONT_SUPPORT=y
-CONFIG_FONTS=y
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-# CONFIG_FONT_6x11 is not set
-# CONFIG_FONT_7x14 is not set
-# CONFIG_FONT_PEARL_8x8 is not set
-# CONFIG_FONT_ACORN_8x8 is not set
-# CONFIG_FONT_MINI_4x6 is not set
-CONFIG_FONT_6x10=y
-# CONFIG_FONT_10x18 is not set
-# CONFIG_FONT_SUN8x16 is not set
-# CONFIG_FONT_SUN12x22 is not set
-CONFIG_FONT_TER16x32=y
-CONFIG_FONT_6x8=y
-CONFIG_SG_POOL=y
-CONFIG_MEMREGION=y
-CONFIG_ARCH_STACKWALK=y
-CONFIG_SBITMAP=y
-CONFIG_PARMAN=m
-CONFIG_OBJAGG=m
-# CONFIG_STRING_SELFTEST is not set
-# end of Library routines
-
-CONFIG_PLDMFW=y
-CONFIG_ASN1_ENCODER=y
-
-#
-# Kernel hacking
-#
-
-#
-# printk and dmesg options
-#
-CONFIG_PRINTK_TIME=y
-# CONFIG_PRINTK_CALLER is not set
-CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
-CONFIG_CONSOLE_LOGLEVEL_QUIET=4
-CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
-CONFIG_BOOT_PRINTK_DELAY=y
-CONFIG_DYNAMIC_DEBUG=y
-CONFIG_DYNAMIC_DEBUG_CORE=y
-CONFIG_SYMBOLIC_ERRNAME=y
-CONFIG_DEBUG_BUGVERBOSE=y
-# end of printk and dmesg options
-
-#
-# Compile-time checks and compiler options
-#
-# CONFIG_DEBUG_INFO is not set
-CONFIG_FRAME_WARN=1024
-# CONFIG_STRIP_ASM_SYMS is not set
-# CONFIG_READABLE_ASM is not set
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_SECTION_MISMATCH_WARN_ONLY=y
-# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set
-CONFIG_FRAME_POINTER=y
-# CONFIG_VMLINUX_MAP is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# end of Compile-time checks and compiler options
-
-#
-# Generic Kernel Debugging Instruments
-#
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
-CONFIG_MAGIC_SYSRQ_SERIAL=y
-CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE=""
-CONFIG_DEBUG_FS=y
-CONFIG_DEBUG_FS_ALLOW_ALL=y
-# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set
-# CONFIG_DEBUG_FS_ALLOW_NONE is not set
-CONFIG_HAVE_ARCH_KGDB=y
-CONFIG_KGDB=y
-CONFIG_KGDB_HONOUR_BLOCKLIST=y
-CONFIG_KGDB_SERIAL_CONSOLE=y
-# CONFIG_KGDB_TESTS is not set
-CONFIG_KGDB_LOW_LEVEL_TRAP=y
-CONFIG_KGDB_KDB=y
-CONFIG_KDB_DEFAULT_ENABLE=0x1
-CONFIG_KDB_KEYBOARD=y
-CONFIG_KDB_CONTINUE_CATASTROPHIC=0
-CONFIG_ARCH_HAS_EARLY_DEBUG=y
-CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
-# CONFIG_UBSAN is not set
-# end of Generic Kernel Debugging Instruments
-
-CONFIG_DEBUG_KERNEL=y
-CONFIG_DEBUG_MISC=y
-
-#
-# Memory Debugging
-#
-CONFIG_PAGE_EXTENSION=y
-# CONFIG_DEBUG_PAGEALLOC is not set
-# CONFIG_PAGE_OWNER is not set
-# CONFIG_PAGE_POISONING is not set
-# CONFIG_DEBUG_PAGE_REF is not set
-# CONFIG_DEBUG_RODATA_TEST is not set
-CONFIG_ARCH_HAS_DEBUG_WX=y
-# CONFIG_DEBUG_WX is not set
-CONFIG_GENERIC_PTDUMP=y
-# CONFIG_PTDUMP_DEBUGFS is not set
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-CONFIG_SCHED_STACK_END_CHECK=y
-# CONFIG_DEBUG_VM is not set
-CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
-# CONFIG_DEBUG_VIRTUAL is not set
-# CONFIG_DEBUG_MEMORY_INIT is not set
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
-# CONFIG_DEBUG_KMAP_LOCAL is not set
-CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y
-# CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set
-# CONFIG_DEBUG_HIGHMEM is not set
-CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
-# CONFIG_DEBUG_STACKOVERFLOW is not set
-CONFIG_CC_HAS_KASAN_GENERIC=y
-CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
-CONFIG_HAVE_ARCH_KFENCE=y
-CONFIG_KFENCE=y
-CONFIG_KFENCE_STATIC_KEYS=y
-CONFIG_KFENCE_SAMPLE_INTERVAL=0
-CONFIG_KFENCE_NUM_OBJECTS=255
-CONFIG_KFENCE_STRESS_TEST_FAULTS=0
-# end of Memory Debugging
-
-# CONFIG_DEBUG_SHIRQ is not set
-
-#
-# Debug Oops, Lockups and Hangs
-#
-# CONFIG_PANIC_ON_OOPS is not set
-CONFIG_PANIC_ON_OOPS_VALUE=0
-CONFIG_PANIC_TIMEOUT=0
-CONFIG_LOCKUP_DETECTOR=y
-CONFIG_SOFTLOCKUP_DETECTOR=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-CONFIG_HARDLOCKUP_DETECTOR_PERF=y
-CONFIG_HARDLOCKUP_DETECTOR=y
-# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-# CONFIG_WQ_WATCHDOG is not set
-# CONFIG_TEST_LOCKUP is not set
-# end of Debug Oops, Lockups and Hangs
-
-#
-# Scheduler Debugging
-#
-CONFIG_SCHED_DEBUG=y
-CONFIG_SCHED_INFO=y
-CONFIG_SCHEDSTATS=y
-# end of Scheduler Debugging
-
-# CONFIG_DEBUG_TIMEKEEPING is not set
-
-#
-# Lock Debugging (spinlocks, mutexes, etc...)
-#
-CONFIG_LOCK_DEBUGGING_SUPPORT=y
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
-# CONFIG_DEBUG_RWSEMS is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-CONFIG_LOCK_TORTURE_TEST=m
-CONFIG_WW_MUTEX_SELFTEST=m
-# CONFIG_SCF_TORTURE_TEST is not set
-# end of Lock Debugging (spinlocks, mutexes, etc...)
-
-# CONFIG_DEBUG_IRQFLAGS is not set
-CONFIG_STACKTRACE=y
-# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
-# CONFIG_DEBUG_KOBJECT is not set
-
-#
-# Debug kernel data structures
-#
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_DEBUG_PLIST is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_BUG_ON_DATA_CORRUPTION is not set
-# end of Debug kernel data structures
-
-# CONFIG_DEBUG_CREDENTIALS is not set
-
-#
-# RCU Debugging
-#
-CONFIG_TORTURE_TEST=m
-# CONFIG_RCU_SCALE_TEST is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_REF_SCALE_TEST is not set
-CONFIG_RCU_CPU_STALL_TIMEOUT=60
-# CONFIG_RCU_TRACE is not set
-# CONFIG_RCU_EQS_DEBUG is not set
-# end of RCU Debugging
-
-# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
-# CONFIG_LATENCYTOP is not set
-CONFIG_USER_STACKTRACE_SUPPORT=y
-CONFIG_NOP_TRACER=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
-CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_HAVE_FENTRY=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_TRACER_MAX_TRACE=y
-CONFIG_TRACE_CLOCK=y
-CONFIG_RING_BUFFER=y
-CONFIG_EVENT_TRACING=y
-CONFIG_CONTEXT_SWITCH_TRACER=y
-CONFIG_TRACING=y
-CONFIG_GENERIC_TRACER=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-# CONFIG_BOOTTIME_TRACING is not set
-CONFIG_FUNCTION_TRACER=y
-CONFIG_FUNCTION_GRAPH_TRACER=y
-CONFIG_DYNAMIC_FTRACE=y
-CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
-CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
-CONFIG_FUNCTION_PROFILER=y
-CONFIG_STACK_TRACER=y
-# CONFIG_IRQSOFF_TRACER is not set
-CONFIG_SCHED_TRACER=y
-# CONFIG_HWLAT_TRACER is not set
-CONFIG_MMIOTRACE=y
-CONFIG_FTRACE_SYSCALLS=y
-CONFIG_TRACER_SNAPSHOT=y
-# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-CONFIG_BLK_DEV_IO_TRACE=y
-CONFIG_KPROBE_EVENTS=y
-# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
-CONFIG_UPROBE_EVENTS=y
-CONFIG_BPF_EVENTS=y
-CONFIG_DYNAMIC_EVENTS=y
-CONFIG_PROBE_EVENTS=y
-# CONFIG_BPF_KPROBE_OVERRIDE is not set
-CONFIG_FTRACE_MCOUNT_RECORD=y
-CONFIG_FTRACE_MCOUNT_USE_CC=y
-CONFIG_SYNTH_EVENTS=y
-# CONFIG_HIST_TRIGGERS is not set
-# CONFIG_TRACE_EVENT_INJECT is not set
-# CONFIG_TRACEPOINT_BENCHMARK is not set
-# CONFIG_RING_BUFFER_BENCHMARK is not set
-# CONFIG_TRACE_EVAL_MAP_FILE is not set
-# CONFIG_FTRACE_RECORD_RECURSION is not set
-# CONFIG_FTRACE_STARTUP_TEST is not set
-# CONFIG_RING_BUFFER_STARTUP_TEST is not set
-# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set
-# CONFIG_MMIOTRACE_TEST is not set
-# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
-# CONFIG_SYNTH_EVENT_GEN_TEST is not set
-# CONFIG_KPROBE_EVENT_GEN_TEST is not set
-# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
-# CONFIG_SAMPLES is not set
-CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
-CONFIG_STRICT_DEVMEM=y
-CONFIG_IO_STRICT_DEVMEM=y
-
-#
-# x86 Debugging
-#
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
-CONFIG_EARLY_PRINTK_USB=y
-# CONFIG_X86_VERBOSE_BOOTUP is not set
-CONFIG_EARLY_PRINTK=y
-CONFIG_EARLY_PRINTK_DBGP=y
-# CONFIG_EARLY_PRINTK_USB_XDBC is not set
-# CONFIG_EFI_PGT_DUMP is not set
-# CONFIG_DEBUG_TLBFLUSH is not set
-CONFIG_HAVE_MMIOTRACE_SUPPORT=y
-# CONFIG_X86_DECODER_SELFTEST is not set
-# CONFIG_IO_DELAY_0X80 is not set
-CONFIG_IO_DELAY_0XED=y
-# CONFIG_IO_DELAY_UDELAY is not set
-# CONFIG_IO_DELAY_NONE is not set
-# CONFIG_DEBUG_BOOT_PARAMS is not set
-# CONFIG_CPA_DEBUG is not set
-# CONFIG_DEBUG_ENTRY is not set
-# CONFIG_DEBUG_NMI_SELFTEST is not set
-# CONFIG_DEBUG_IMR_SELFTEST is not set
-CONFIG_X86_DEBUG_FPU=y
-CONFIG_PUNIT_ATOM_DEBUG=m
-CONFIG_UNWINDER_FRAME_POINTER=y
-# CONFIG_UNWINDER_GUESS is not set
-# end of x86 Debugging
-
-#
-# Kernel Testing and Coverage
-#
-# CONFIG_KUNIT is not set
-CONFIG_NOTIFIER_ERROR_INJECTION=m
-CONFIG_PM_NOTIFIER_ERROR_INJECT=m
-CONFIG_NETDEV_NOTIFIER_ERROR_INJECT=m
-CONFIG_FUNCTION_ERROR_INJECTION=y
-# CONFIG_FAULT_INJECTION is not set
-CONFIG_CC_HAS_SANCOV_TRACE_PC=y
-CONFIG_RUNTIME_TESTING_MENU=y
-# CONFIG_LKDTM is not set
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_TEST_MIN_HEAP is not set
-# CONFIG_TEST_SORT is not set
-# CONFIG_TEST_DIV64 is not set
-# CONFIG_KPROBES_SANITY_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_RBTREE_TEST is not set
-# CONFIG_REED_SOLOMON_TEST is not set
-CONFIG_INTERVAL_TREE_TEST=m
-CONFIG_PERCPU_TEST=m
-# CONFIG_ATOMIC64_SELFTEST is not set
-CONFIG_ASYNC_RAID6_TEST=m
-CONFIG_TEST_HEXDUMP=m
-CONFIG_TEST_STRING_HELPERS=m
-CONFIG_TEST_STRSCPY=m
-CONFIG_TEST_KSTRTOX=m
-CONFIG_TEST_PRINTF=m
-CONFIG_TEST_BITMAP=m
-CONFIG_TEST_UUID=m
-CONFIG_TEST_XARRAY=m
-CONFIG_TEST_OVERFLOW=m
-CONFIG_TEST_RHASHTABLE=m
-CONFIG_TEST_HASH=m
-CONFIG_TEST_IDA=m
-CONFIG_TEST_PARMAN=m
-CONFIG_TEST_LKM=m
-CONFIG_TEST_BITOPS=m
-CONFIG_TEST_VMALLOC=m
-CONFIG_TEST_USER_COPY=m
-CONFIG_TEST_BPF=m
-CONFIG_TEST_BLACKHOLE_DEV=m
-CONFIG_FIND_BIT_BENCHMARK=m
-CONFIG_TEST_FIRMWARE=m
-# CONFIG_TEST_SYSCTL is not set
-CONFIG_TEST_UDELAY=m
-CONFIG_TEST_STATIC_KEYS=m
-# CONFIG_TEST_KMOD is not set
-# CONFIG_TEST_MEMCAT_P is not set
-CONFIG_TEST_OBJAGG=m
-# CONFIG_TEST_STACKINIT is not set
-# CONFIG_TEST_MEMINIT is not set
-# CONFIG_TEST_FREE_PAGES is not set
-# CONFIG_TEST_FPU is not set
-CONFIG_ARCH_USE_MEMTEST=y
-CONFIG_MEMTEST=y
-# CONFIG_HYPERV_TESTING is not set
-# end of Kernel Testing and Coverage
-# end of Kernel hacking
diff --git a/gnu/packages/aux-files/linux-libre/5.13-x86_64.conf b/gnu/packages/aux-files/linux-libre/5.13-x86_64.conf
deleted file mode 100644
index b07a37a85d..0000000000
--- a/gnu/packages/aux-files/linux-libre/5.13-x86_64.conf
+++ /dev/null
@@ -1,10953 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.13.1 Kernel Configuration
-#
-CONFIG_CC_VERSION_TEXT="gcc (Debian 8.3.0-6) 8.3.0"
-CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=80300
-CONFIG_CLANG_VERSION=0
-CONFIG_AS_IS_GNU=y
-CONFIG_AS_VERSION=23101
-CONFIG_LD_IS_BFD=y
-CONFIG_LD_VERSION=23101
-CONFIG_LLD_VERSION=0
-CONFIG_CC_CAN_LINK=y
-CONFIG_CC_CAN_LINK_STATIC=y
-CONFIG_CC_HAS_ASM_GOTO=y
-CONFIG_CC_HAS_ASM_INLINE=y
-CONFIG_IRQ_WORK=y
-CONFIG_BUILDTIME_TABLE_SORT=y
-CONFIG_THREAD_INFO_IN_TASK=y
-
-#
-# General setup
-#
-CONFIG_INIT_ENV_ARG_LIMIT=32
-# CONFIG_COMPILE_TEST is not set
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_BUILD_SALT=""
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_BZIP2=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_XZ=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_HAVE_KERNEL_LZ4=y
-CONFIG_HAVE_KERNEL_ZSTD=y
-CONFIG_KERNEL_GZIP=y
-# CONFIG_KERNEL_BZIP2 is not set
-# CONFIG_KERNEL_LZMA is not set
-# CONFIG_KERNEL_XZ is not set
-# CONFIG_KERNEL_LZO is not set
-# CONFIG_KERNEL_LZ4 is not set
-# CONFIG_KERNEL_ZSTD is not set
-CONFIG_DEFAULT_INIT=""
-CONFIG_DEFAULT_HOSTNAME="(none)"
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-CONFIG_WATCH_QUEUE=y
-CONFIG_CROSS_MEMORY_ATTACH=y
-CONFIG_USELIB=y
-CONFIG_AUDIT=y
-CONFIG_HAVE_ARCH_AUDITSYSCALL=y
-CONFIG_AUDITSYSCALL=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_GENERIC_IRQ_MIGRATION=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_IRQ_DOMAIN_HIERARCHY=y
-CONFIG_GENERIC_MSI_IRQ=y
-CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
-CONFIG_IRQ_MSI_IOMMU=y
-CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y
-CONFIG_GENERIC_IRQ_RESERVATION_MODE=y
-CONFIG_IRQ_FORCED_THREADING=y
-CONFIG_SPARSE_IRQ=y
-# CONFIG_GENERIC_IRQ_DEBUGFS is not set
-# end of IRQ subsystem
-
-CONFIG_CLOCKSOURCE_WATCHDOG=y
-CONFIG_ARCH_CLOCKSOURCE_INIT=y
-CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
-CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
-
-#
-# Timers subsystem
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ_COMMON=y
-# CONFIG_HZ_PERIODIC is not set
-CONFIG_NO_HZ_IDLE=y
-# CONFIG_NO_HZ_FULL is not set
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-# end of Timers subsystem
-
-CONFIG_BPF=y
-CONFIG_HAVE_EBPF_JIT=y
-CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
-
-#
-# BPF subsystem
-#
-CONFIG_BPF_SYSCALL=y
-# CONFIG_BPF_JIT is not set
-# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
-# CONFIG_BPF_PRELOAD is not set
-# end of BPF subsystem
-
-# CONFIG_PREEMPT_NONE is not set
-CONFIG_PREEMPT_VOLUNTARY=y
-# CONFIG_PREEMPT is not set
-
-#
-# CPU/Task time and stats accounting
-#
-CONFIG_TICK_CPU_ACCOUNTING=y
-# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
-# CONFIG_IRQ_TIME_ACCOUNTING is not set
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_PSI=y
-# CONFIG_PSI_DEFAULT_DISABLED is not set
-# end of CPU/Task time and stats accounting
-
-CONFIG_CPU_ISOLATION=y
-
-#
-# RCU Subsystem
-#
-CONFIG_TREE_RCU=y
-# CONFIG_RCU_EXPERT is not set
-CONFIG_SRCU=y
-CONFIG_TREE_SRCU=y
-CONFIG_TASKS_RCU_GENERIC=y
-CONFIG_TASKS_RUDE_RCU=y
-CONFIG_TASKS_TRACE_RCU=y
-CONFIG_RCU_STALL_COMMON=y
-CONFIG_RCU_NEED_SEGCBLIST=y
-# end of RCU Subsystem
-
-CONFIG_BUILD_BIN2C=y
-# CONFIG_IKCONFIG is not set
-# CONFIG_IKHEADERS is not set
-CONFIG_LOG_BUF_SHIFT=18
-CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
-CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
-CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
-
-#
-# Scheduler features
-#
-# CONFIG_UCLAMP_TASK is not set
-# end of Scheduler features
-
-CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
-CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
-CONFIG_CC_HAS_INT128=y
-CONFIG_ARCH_SUPPORTS_INT128=y
-CONFIG_NUMA_BALANCING=y
-CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
-CONFIG_CGROUPS=y
-CONFIG_PAGE_COUNTER=y
-CONFIG_MEMCG=y
-CONFIG_MEMCG_SWAP=y
-CONFIG_MEMCG_KMEM=y
-CONFIG_BLK_CGROUP=y
-CONFIG_CGROUP_WRITEBACK=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_CFS_BANDWIDTH=y
-# CONFIG_RT_GROUP_SCHED is not set
-CONFIG_CGROUP_PIDS=y
-# CONFIG_CGROUP_RDMA is not set
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CGROUP_HUGETLB=y
-CONFIG_CPUSETS=y
-CONFIG_PROC_PID_CPUSET=y
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_CGROUP_PERF=y
-CONFIG_CGROUP_BPF=y
-CONFIG_CGROUP_MISC=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_SOCK_CGROUP_DATA=y
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_TIME_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_SCHED_AUTOGROUP=y
-# CONFIG_SYSFS_DEPRECATED is not set
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_RD_XZ=y
-CONFIG_RD_LZO=y
-CONFIG_RD_LZ4=y
-CONFIG_RD_ZSTD=y
-CONFIG_BOOT_CONFIG=y
-CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_LD_ORPHAN_WARN=y
-CONFIG_SYSCTL=y
-CONFIG_HAVE_UID16=y
-CONFIG_SYSCTL_EXCEPTION_TRACE=y
-CONFIG_HAVE_PCSPKR_PLATFORM=y
-CONFIG_EXPERT=y
-CONFIG_UID16=y
-CONFIG_MULTIUSER=y
-CONFIG_SGETMASK_SYSCALL=y
-CONFIG_SYSFS_SYSCALL=y
-CONFIG_FHANDLE=y
-CONFIG_POSIX_TIMERS=y
-CONFIG_PRINTK=y
-CONFIG_PRINTK_NMI=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_PCSPKR_PLATFORM=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_FUTEX_PI=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_IO_URING=y
-CONFIG_ADVISE_SYSCALLS=y
-CONFIG_HAVE_ARCH_USERFAULTFD_WP=y
-CONFIG_HAVE_ARCH_USERFAULTFD_MINOR=y
-CONFIG_MEMBARRIER=y
-CONFIG_KALLSYMS=y
-CONFIG_KALLSYMS_ALL=y
-CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
-CONFIG_KALLSYMS_BASE_RELATIVE=y
-CONFIG_USERFAULTFD=y
-CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
-CONFIG_KCMP=y
-CONFIG_RSEQ=y
-# CONFIG_DEBUG_RSEQ is not set
-# CONFIG_EMBEDDED is not set
-CONFIG_HAVE_PERF_EVENTS=y
-# CONFIG_PC104 is not set
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
-# end of Kernel Performance Events And Counters
-
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLUB_DEBUG=y
-# CONFIG_COMPAT_BRK is not set
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-# CONFIG_SLOB is not set
-CONFIG_SLAB_MERGE_DEFAULT=y
-CONFIG_SLAB_FREELIST_RANDOM=y
-CONFIG_SLAB_FREELIST_HARDENED=y
-CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
-CONFIG_SLUB_CPU_PARTIAL=y
-CONFIG_SYSTEM_DATA_VERIFICATION=y
-CONFIG_PROFILING=y
-CONFIG_TRACEPOINTS=y
-# end of General setup
-
-CONFIG_64BIT=y
-CONFIG_X86_64=y
-CONFIG_X86=y
-CONFIG_INSTRUCTION_DECODER=y
-CONFIG_OUTPUT_FORMAT="elf64-x86-64"
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_MMU=y
-CONFIG_ARCH_MMAP_RND_BITS_MIN=28
-CONFIG_ARCH_MMAP_RND_BITS_MAX=32
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
-CONFIG_GENERIC_ISA_DMA=y
-CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_ARCH_HAS_CPU_RELAX=y
-CONFIG_ARCH_HAS_FILTER_PGPROT=y
-CONFIG_HAVE_SETUP_PER_CPU_AREA=y
-CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
-CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
-CONFIG_ZONE_DMA32=y
-CONFIG_AUDIT_ARCH=y
-CONFIG_HAVE_INTEL_TXT=y
-CONFIG_X86_64_SMP=y
-CONFIG_ARCH_SUPPORTS_UPROBES=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_PGTABLE_LEVELS=4
-CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
-
-#
-# Processor type and features
-#
-# CONFIG_ZONE_DMA is not set
-CONFIG_SMP=y
-CONFIG_X86_FEATURE_NAMES=y
-CONFIG_X86_X2APIC=y
-CONFIG_X86_MPPARSE=y
-# CONFIG_GOLDFISH is not set
-CONFIG_RETPOLINE=y
-# CONFIG_X86_CPU_RESCTRL is not set
-CONFIG_X86_EXTENDED_PLATFORM=y
-CONFIG_X86_NUMACHIP=y
-# CONFIG_X86_VSMP is not set
-# CONFIG_X86_UV is not set
-# CONFIG_X86_GOLDFISH is not set
-# CONFIG_X86_INTEL_MID is not set
-CONFIG_X86_INTEL_LPSS=y
-CONFIG_X86_AMD_PLATFORM_DEVICE=y
-CONFIG_IOSF_MBI=y
-CONFIG_IOSF_MBI_DEBUG=y
-CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
-CONFIG_SCHED_OMIT_FRAME_POINTER=y
-CONFIG_HYPERVISOR_GUEST=y
-CONFIG_PARAVIRT=y
-CONFIG_PARAVIRT_XXL=y
-# CONFIG_PARAVIRT_DEBUG is not set
-CONFIG_PARAVIRT_SPINLOCKS=y
-CONFIG_X86_HV_CALLBACK_VECTOR=y
-CONFIG_XEN=y
-CONFIG_XEN_PV=y
-CONFIG_XEN_512GB=y
-CONFIG_XEN_PV_SMP=y
-CONFIG_XEN_DOM0=y
-CONFIG_XEN_PVHVM=y
-CONFIG_XEN_PVHVM_SMP=y
-CONFIG_XEN_PVHVM_GUEST=y
-CONFIG_XEN_SAVE_RESTORE=y
-# CONFIG_XEN_DEBUG_FS is not set
-CONFIG_XEN_PVH=y
-CONFIG_KVM_GUEST=y
-CONFIG_ARCH_CPUIDLE_HALTPOLL=y
-CONFIG_PVH=y
-# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
-CONFIG_PARAVIRT_CLOCK=y
-CONFIG_JAILHOUSE_GUEST=y
-# CONFIG_ACRN_GUEST is not set
-# CONFIG_MK8 is not set
-# CONFIG_MPSC is not set
-# CONFIG_MCORE2 is not set
-# CONFIG_MATOM is not set
-CONFIG_GENERIC_CPU=y
-CONFIG_X86_INTERNODE_CACHE_SHIFT=6
-CONFIG_X86_L1_CACHE_SHIFT=6
-CONFIG_X86_TSC=y
-CONFIG_X86_CMPXCHG64=y
-CONFIG_X86_CMOV=y
-CONFIG_X86_MINIMUM_CPU_FAMILY=64
-CONFIG_X86_DEBUGCTLMSR=y
-CONFIG_IA32_FEAT_CTL=y
-CONFIG_X86_VMX_FEATURE_NAMES=y
-CONFIG_PROCESSOR_SELECT=y
-CONFIG_CPU_SUP_INTEL=y
-CONFIG_CPU_SUP_AMD=y
-CONFIG_CPU_SUP_HYGON=y
-CONFIG_CPU_SUP_CENTAUR=y
-CONFIG_CPU_SUP_ZHAOXIN=y
-CONFIG_HPET_TIMER=y
-CONFIG_HPET_EMULATE_RTC=y
-CONFIG_DMI=y
-CONFIG_GART_IOMMU=y
-# CONFIG_MAXSMP is not set
-CONFIG_NR_CPUS_RANGE_BEGIN=2
-CONFIG_NR_CPUS_RANGE_END=512
-CONFIG_NR_CPUS_DEFAULT=64
-CONFIG_NR_CPUS=256
-CONFIG_SCHED_SMT=y
-CONFIG_SCHED_MC=y
-CONFIG_SCHED_MC_PRIO=y
-CONFIG_X86_LOCAL_APIC=y
-CONFIG_X86_IO_APIC=y
-CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
-CONFIG_X86_MCE=y
-# CONFIG_X86_MCELOG_LEGACY is not set
-CONFIG_X86_MCE_INTEL=y
-CONFIG_X86_MCE_AMD=y
-CONFIG_X86_MCE_THRESHOLD=y
-# CONFIG_X86_MCE_INJECT is not set
-
-#
-# Performance monitoring
-#
-CONFIG_PERF_EVENTS_INTEL_UNCORE=y
-CONFIG_PERF_EVENTS_INTEL_RAPL=y
-CONFIG_PERF_EVENTS_INTEL_CSTATE=y
-CONFIG_PERF_EVENTS_AMD_POWER=m
-# end of Performance monitoring
-
-CONFIG_X86_16BIT=y
-CONFIG_X86_ESPFIX64=y
-CONFIG_X86_VSYSCALL_EMULATION=y
-CONFIG_X86_IOPL_IOPERM=y
-CONFIG_I8K=m
-CONFIG_MICROCODE=y
-CONFIG_MICROCODE_INTEL=y
-CONFIG_MICROCODE_AMD=y
-CONFIG_MICROCODE_OLD_INTERFACE=y
-CONFIG_X86_MSR=m
-CONFIG_X86_CPUID=m
-# CONFIG_X86_5LEVEL is not set
-CONFIG_X86_DIRECT_GBPAGES=y
-# CONFIG_X86_CPA_STATISTICS is not set
-# CONFIG_AMD_MEM_ENCRYPT is not set
-CONFIG_NUMA=y
-CONFIG_AMD_NUMA=y
-CONFIG_X86_64_ACPI_NUMA=y
-# CONFIG_NUMA_EMU is not set
-CONFIG_NODES_SHIFT=6
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_DEFAULT=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_ARCH_MEMORY_PROBE=y
-CONFIG_ARCH_PROC_KCORE_TEXT=y
-CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
-CONFIG_X86_PMEM_LEGACY_DEVICE=y
-CONFIG_X86_PMEM_LEGACY=y
-CONFIG_X86_CHECK_BIOS_CORRUPTION=y
-CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
-CONFIG_X86_RESERVE_LOW=64
-CONFIG_MTRR=y
-CONFIG_MTRR_SANITIZER=y
-CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
-CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
-CONFIG_X86_PAT=y
-CONFIG_ARCH_USES_PG_UNCACHED=y
-CONFIG_ARCH_RANDOM=y
-CONFIG_X86_SMAP=y
-CONFIG_X86_UMIP=y
-CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y
-CONFIG_X86_INTEL_TSX_MODE_OFF=y
-# CONFIG_X86_INTEL_TSX_MODE_ON is not set
-# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
-CONFIG_X86_SGX=y
-CONFIG_EFI=y
-CONFIG_EFI_STUB=y
-CONFIG_EFI_MIXED=y
-# CONFIG_HZ_100 is not set
-CONFIG_HZ_250=y
-# CONFIG_HZ_300 is not set
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ=250
-CONFIG_SCHED_HRTICK=y
-CONFIG_KEXEC=y
-CONFIG_KEXEC_FILE=y
-CONFIG_ARCH_HAS_KEXEC_PURGATORY=y
-# CONFIG_KEXEC_SIG is not set
-CONFIG_CRASH_DUMP=y
-CONFIG_KEXEC_JUMP=y
-CONFIG_PHYSICAL_START=0x1000000
-CONFIG_RELOCATABLE=y
-CONFIG_RANDOMIZE_BASE=y
-CONFIG_X86_NEED_RELOCS=y
-CONFIG_PHYSICAL_ALIGN=0x1000000
-CONFIG_DYNAMIC_MEMORY_LAYOUT=y
-CONFIG_RANDOMIZE_MEMORY=y
-CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa
-CONFIG_HOTPLUG_CPU=y
-# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_COMPAT_VDSO is not set
-# CONFIG_LEGACY_VSYSCALL_EMULATE is not set
-# CONFIG_LEGACY_VSYSCALL_XONLY is not set
-CONFIG_LEGACY_VSYSCALL_NONE=y
-# CONFIG_CMDLINE_BOOL is not set
-CONFIG_MODIFY_LDT_SYSCALL=y
-CONFIG_HAVE_LIVEPATCH=y
-CONFIG_LIVEPATCH=y
-# end of Processor type and features
-
-CONFIG_ARCH_HAS_ADD_PAGES=y
-CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
-CONFIG_USE_PERCPU_NUMA_NODE_ID=y
-
-#
-# Power management and ACPI options
-#
-CONFIG_ARCH_HIBERNATION_HEADER=y
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_SUSPEND_SKIP_SYNC is not set
-CONFIG_HIBERNATE_CALLBACKS=y
-CONFIG_HIBERNATION=y
-CONFIG_HIBERNATION_SNAPSHOT_DEV=y
-CONFIG_PM_STD_PARTITION=""
-CONFIG_PM_SLEEP=y
-CONFIG_PM_SLEEP_SMP=y
-# CONFIG_PM_AUTOSLEEP is not set
-CONFIG_PM_WAKELOCKS=y
-CONFIG_PM_WAKELOCKS_LIMIT=100
-CONFIG_PM_WAKELOCKS_GC=y
-CONFIG_PM=y
-CONFIG_PM_DEBUG=y
-CONFIG_PM_ADVANCED_DEBUG=y
-# CONFIG_PM_TEST_SUSPEND is not set
-CONFIG_PM_SLEEP_DEBUG=y
-# CONFIG_DPM_WATCHDOG is not set
-CONFIG_PM_TRACE=y
-CONFIG_PM_TRACE_RTC=y
-CONFIG_PM_CLK=y
-CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
-# CONFIG_ENERGY_MODEL is not set
-CONFIG_ARCH_SUPPORTS_ACPI=y
-CONFIG_ACPI=y
-CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
-CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
-CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
-# CONFIG_ACPI_DEBUGGER is not set
-CONFIG_ACPI_SPCR_TABLE=y
-CONFIG_ACPI_FPDT=y
-CONFIG_ACPI_LPIT=y
-CONFIG_ACPI_SLEEP=y
-CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
-CONFIG_ACPI_EC_DEBUGFS=m
-CONFIG_ACPI_AC=m
-CONFIG_ACPI_BATTERY=m
-CONFIG_ACPI_BUTTON=y
-CONFIG_ACPI_VIDEO=m
-CONFIG_ACPI_FAN=y
-CONFIG_ACPI_TAD=m
-CONFIG_ACPI_DOCK=y
-CONFIG_ACPI_CPU_FREQ_PSS=y
-CONFIG_ACPI_PROCESSOR_CSTATE=y
-CONFIG_ACPI_PROCESSOR_IDLE=y
-CONFIG_ACPI_CPPC_LIB=y
-CONFIG_ACPI_PROCESSOR=y
-CONFIG_ACPI_IPMI=m
-CONFIG_ACPI_HOTPLUG_CPU=y
-CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
-CONFIG_ACPI_THERMAL=y
-CONFIG_ACPI_PLATFORM_PROFILE=m
-CONFIG_ACPI_CUSTOM_DSDT_FILE=""
-CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
-CONFIG_ACPI_TABLE_UPGRADE=y
-# CONFIG_ACPI_DEBUG is not set
-CONFIG_ACPI_PCI_SLOT=y
-CONFIG_ACPI_CONTAINER=y
-CONFIG_ACPI_HOTPLUG_MEMORY=y
-CONFIG_ACPI_HOTPLUG_IOAPIC=y
-CONFIG_ACPI_SBS=m
-CONFIG_ACPI_HED=y
-# CONFIG_ACPI_CUSTOM_METHOD is not set
-CONFIG_ACPI_BGRT=y
-# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
-CONFIG_ACPI_NFIT=m
-# CONFIG_NFIT_SECURITY_DEBUG is not set
-CONFIG_ACPI_NUMA=y
-CONFIG_ACPI_HMAT=y
-CONFIG_HAVE_ACPI_APEI=y
-CONFIG_HAVE_ACPI_APEI_NMI=y
-CONFIG_ACPI_APEI=y
-CONFIG_ACPI_APEI_GHES=y
-CONFIG_ACPI_APEI_PCIEAER=y
-CONFIG_ACPI_APEI_MEMORY_FAILURE=y
-CONFIG_ACPI_APEI_EINJ=m
-# CONFIG_ACPI_APEI_ERST_DEBUG is not set
-CONFIG_ACPI_DPTF=y
-CONFIG_DPTF_POWER=m
-CONFIG_DPTF_PCH_FIVR=m
-CONFIG_ACPI_WATCHDOG=y
-CONFIG_ACPI_EXTLOG=m
-CONFIG_ACPI_ADXL=y
-CONFIG_ACPI_CONFIGFS=m
-# CONFIG_PMIC_OPREGION is not set
-CONFIG_X86_PM_TIMER=y
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_GOV_ATTR_SET=y
-CONFIG_CPU_FREQ_GOV_COMMON=y
-CONFIG_CPU_FREQ_STAT=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
-
-#
-# CPU frequency scaling drivers
-#
-CONFIG_X86_INTEL_PSTATE=y
-CONFIG_X86_PCC_CPUFREQ=y
-CONFIG_X86_ACPI_CPUFREQ=y
-CONFIG_X86_ACPI_CPUFREQ_CPB=y
-CONFIG_X86_POWERNOW_K8=y
-CONFIG_X86_AMD_FREQ_SENSITIVITY=m
-CONFIG_X86_SPEEDSTEP_CENTRINO=y
-CONFIG_X86_P4_CLOCKMOD=m
-
-#
-# shared options
-#
-CONFIG_X86_SPEEDSTEP_LIB=m
-# end of CPU Frequency scaling
-
-#
-# CPU Idle
-#
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-CONFIG_CPU_IDLE_GOV_TEO=y
-CONFIG_CPU_IDLE_GOV_HALTPOLL=y
-CONFIG_HALTPOLL_CPUIDLE=m
-# end of CPU Idle
-
-CONFIG_INTEL_IDLE=y
-# end of Power management and ACPI options
-
-#
-# Bus options (PCI etc.)
-#
-CONFIG_PCI_DIRECT=y
-CONFIG_PCI_MMCONFIG=y
-CONFIG_PCI_XEN=y
-CONFIG_MMCONF_FAM10H=y
-# CONFIG_PCI_CNB20LE_QUIRK is not set
-# CONFIG_ISA_BUS is not set
-CONFIG_ISA_DMA_API=y
-CONFIG_AMD_NB=y
-# CONFIG_X86_SYSFB is not set
-# end of Bus options (PCI etc.)
-
-#
-# Binary Emulations
-#
-CONFIG_IA32_EMULATION=y
-CONFIG_X86_X32=y
-CONFIG_COMPAT_32=y
-CONFIG_COMPAT=y
-CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
-CONFIG_SYSVIPC_COMPAT=y
-# end of Binary Emulations
-
-#
-# Firmware Drivers
-#
-CONFIG_EDD=y
-CONFIG_EDD_OFF=y
-CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_DMIID=y
-CONFIG_DMI_SYSFS=m
-CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
-CONFIG_ISCSI_IBFT_FIND=y
-CONFIG_ISCSI_IBFT=m
-CONFIG_FW_CFG_SYSFS=m
-# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
-
-#
-# EFI (Extensible Firmware Interface) Support
-#
-CONFIG_EFI_VARS=y
-CONFIG_EFI_ESRT=y
-CONFIG_EFI_VARS_PSTORE=m
-# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
-CONFIG_EFI_RUNTIME_MAP=y
-# CONFIG_EFI_FAKE_MEMMAP is not set
-CONFIG_EFI_SOFT_RESERVE=y
-CONFIG_EFI_RUNTIME_WRAPPERS=y
-CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
-CONFIG_EFI_BOOTLOADER_CONTROL=m
-# CONFIG_EFI_CAPSULE_LOADER is not set
-# CONFIG_EFI_TEST is not set
-CONFIG_APPLE_PROPERTIES=y
-CONFIG_RESET_ATTACK_MITIGATION=y
-# CONFIG_EFI_RCI2_TABLE is not set
-# CONFIG_EFI_DISABLE_PCI_DMA is not set
-# end of EFI (Extensible Firmware Interface) Support
-
-CONFIG_UEFI_CPER=y
-CONFIG_UEFI_CPER_X86=y
-CONFIG_EFI_DEV_PATH_PARSER=y
-CONFIG_EFI_EARLYCON=y
-CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
-
-#
-# Tegra firmware driver
-#
-# end of Tegra firmware driver
-# end of Firmware Drivers
-
-CONFIG_HAVE_KVM=y
-CONFIG_HAVE_KVM_IRQCHIP=y
-CONFIG_HAVE_KVM_IRQFD=y
-CONFIG_HAVE_KVM_IRQ_ROUTING=y
-CONFIG_HAVE_KVM_EVENTFD=y
-CONFIG_KVM_MMIO=y
-CONFIG_KVM_ASYNC_PF=y
-CONFIG_HAVE_KVM_MSI=y
-CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
-CONFIG_KVM_VFIO=y
-CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
-CONFIG_KVM_COMPAT=y
-CONFIG_HAVE_KVM_IRQ_BYPASS=y
-CONFIG_HAVE_KVM_NO_POLL=y
-CONFIG_KVM_XFER_TO_GUEST_WORK=y
-CONFIG_VIRTUALIZATION=y
-CONFIG_KVM=m
-CONFIG_KVM_WERROR=y
-CONFIG_KVM_INTEL=m
-CONFIG_X86_SGX_KVM=y
-CONFIG_KVM_AMD=m
-CONFIG_KVM_AMD_SEV=y
-CONFIG_KVM_XEN=y
-# CONFIG_KVM_MMU_AUDIT is not set
-CONFIG_AS_AVX512=y
-CONFIG_AS_SHA1_NI=y
-CONFIG_AS_SHA256_NI=y
-CONFIG_AS_TPAUSE=y
-
-#
-# General architecture-dependent options
-#
-CONFIG_CRASH_CORE=y
-CONFIG_KEXEC_CORE=y
-CONFIG_HOTPLUG_SMT=y
-CONFIG_GENERIC_ENTRY=y
-CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
-# CONFIG_STATIC_KEYS_SELFTEST is not set
-# CONFIG_STATIC_CALL_SELFTEST is not set
-CONFIG_OPTPROBES=y
-CONFIG_KPROBES_ON_FTRACE=y
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_ARCH_USE_BUILTIN_BSWAP=y
-CONFIG_KRETPROBES=y
-CONFIG_USER_RETURN_NOTIFIER=y
-CONFIG_HAVE_IOREMAP_PROT=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_OPTPROBES=y
-CONFIG_HAVE_KPROBES_ON_FTRACE=y
-CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
-CONFIG_HAVE_NMI=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_CONTIGUOUS=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
-CONFIG_ARCH_HAS_SET_MEMORY=y
-CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
-CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
-CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
-CONFIG_HAVE_ASM_MODVERSIONS=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_RSEQ=y
-CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
-CONFIG_HAVE_USER_RETURN_NOTIFIER=y
-CONFIG_HAVE_PERF_EVENTS_NMI=y
-CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y
-CONFIG_HAVE_PERF_REGS=y
-CONFIG_HAVE_PERF_USER_STACK_DUMP=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
-CONFIG_MMU_GATHER_TABLE_FREE=y
-CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
-CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
-CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
-CONFIG_HAVE_CMPXCHG_LOCAL=y
-CONFIG_HAVE_CMPXCHG_DOUBLE=y
-CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
-CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
-CONFIG_HAVE_ARCH_SECCOMP=y
-CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
-CONFIG_SECCOMP=y
-CONFIG_SECCOMP_FILTER=y
-# CONFIG_SECCOMP_CACHE_DEBUG is not set
-CONFIG_HAVE_ARCH_STACKLEAK=y
-CONFIG_HAVE_STACKPROTECTOR=y
-CONFIG_STACKPROTECTOR=y
-CONFIG_STACKPROTECTOR_STRONG=y
-CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
-CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
-CONFIG_LTO_NONE=y
-CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
-CONFIG_HAVE_CONTEXT_TRACKING=y
-CONFIG_HAVE_CONTEXT_TRACKING_OFFSTACK=y
-CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
-CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
-CONFIG_HAVE_MOVE_PUD=y
-CONFIG_HAVE_MOVE_PMD=y
-CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
-CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y
-CONFIG_HAVE_ARCH_HUGE_VMAP=y
-CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
-CONFIG_HAVE_ARCH_SOFT_DIRTY=y
-CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
-CONFIG_MODULES_USE_ELF_RELA=y
-CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
-CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
-CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
-CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
-CONFIG_HAVE_EXIT_THREAD=y
-CONFIG_ARCH_MMAP_RND_BITS=28
-CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
-CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y
-CONFIG_HAVE_STACK_VALIDATION=y
-CONFIG_HAVE_RELIABLE_STACKTRACE=y
-CONFIG_ISA_BUS_API=y
-CONFIG_OLD_SIGSUSPEND3=y
-CONFIG_COMPAT_OLD_SIGACTION=y
-CONFIG_COMPAT_32BIT_TIME=y
-CONFIG_HAVE_ARCH_VMAP_STACK=y
-CONFIG_VMAP_STACK=y
-CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y
-CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y
-CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
-CONFIG_STRICT_KERNEL_RWX=y
-CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
-CONFIG_STRICT_MODULE_RWX=y
-CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
-CONFIG_ARCH_USE_MEMREMAP_PROT=y
-# CONFIG_LOCK_EVENT_COUNTS is not set
-CONFIG_ARCH_HAS_MEM_ENCRYPT=y
-CONFIG_HAVE_STATIC_CALL=y
-CONFIG_HAVE_STATIC_CALL_INLINE=y
-CONFIG_HAVE_PREEMPT_DYNAMIC=y
-CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
-CONFIG_ARCH_HAS_ELFCORE_COMPAT=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
-# end of GCOV-based kernel profiling
-
-CONFIG_HAVE_GCC_PLUGINS=y
-# end of General architecture-dependent options
-
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-# CONFIG_MODULE_FORCE_LOAD is not set
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-CONFIG_MODVERSIONS=y
-CONFIG_ASM_MODVERSIONS=y
-CONFIG_MODULE_SRCVERSION_ALL=y
-# CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS_NONE is not set
-CONFIG_MODULE_COMPRESS_GZIP=y
-# CONFIG_MODULE_COMPRESS_XZ is not set
-# CONFIG_MODULE_COMPRESS_ZSTD is not set
-# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
-CONFIG_MODPROBE_PATH="/run/current-system/profile/bin/modprobe"
-# CONFIG_TRIM_UNUSED_KSYMS is not set
-CONFIG_MODULES_TREE_LOOKUP=y
-CONFIG_BLOCK=y
-CONFIG_BLK_RQ_ALLOC_TIME=y
-CONFIG_BLK_SCSI_REQUEST=y
-CONFIG_BLK_CGROUP_RWSTAT=y
-CONFIG_BLK_DEV_BSG=y
-CONFIG_BLK_DEV_BSGLIB=y
-CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_BLK_DEV_INTEGRITY_T10=y
-CONFIG_BLK_DEV_ZONED=y
-CONFIG_BLK_DEV_THROTTLING=y
-# CONFIG_BLK_DEV_THROTTLING_LOW is not set
-CONFIG_BLK_CMDLINE_PARSER=y
-CONFIG_BLK_WBT=y
-# CONFIG_BLK_CGROUP_IOLATENCY is not set
-CONFIG_BLK_CGROUP_IOCOST=y
-CONFIG_BLK_WBT_MQ=y
-CONFIG_BLK_DEBUG_FS=y
-CONFIG_BLK_DEBUG_FS_ZONED=y
-# CONFIG_BLK_SED_OPAL is not set
-CONFIG_BLK_INLINE_ENCRYPTION=y
-CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-CONFIG_AIX_PARTITION=y
-CONFIG_OSF_PARTITION=y
-CONFIG_AMIGA_PARTITION=y
-CONFIG_ATARI_PARTITION=y
-CONFIG_MAC_PARTITION=y
-CONFIG_MSDOS_PARTITION=y
-CONFIG_BSD_DISKLABEL=y
-CONFIG_MINIX_SUBPARTITION=y
-CONFIG_SOLARIS_X86_PARTITION=y
-CONFIG_UNIXWARE_DISKLABEL=y
-CONFIG_LDM_PARTITION=y
-# CONFIG_LDM_DEBUG is not set
-CONFIG_SGI_PARTITION=y
-CONFIG_ULTRIX_PARTITION=y
-CONFIG_SUN_PARTITION=y
-CONFIG_KARMA_PARTITION=y
-CONFIG_EFI_PARTITION=y
-CONFIG_SYSV68_PARTITION=y
-CONFIG_CMDLINE_PARTITION=y
-# end of Partition Types
-
-CONFIG_BLOCK_COMPAT=y
-CONFIG_BLK_MQ_PCI=y
-CONFIG_BLK_MQ_VIRTIO=y
-CONFIG_BLK_MQ_RDMA=y
-CONFIG_BLK_PM=y
-
-#
-# IO Schedulers
-#
-CONFIG_MQ_IOSCHED_DEADLINE=y
-CONFIG_MQ_IOSCHED_KYBER=m
-CONFIG_IOSCHED_BFQ=m
-# CONFIG_BFQ_GROUP_IOSCHED is not set
-# end of IO Schedulers
-
-CONFIG_PREEMPT_NOTIFIERS=y
-CONFIG_PADATA=y
-CONFIG_ASN1=y
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-CONFIG_INLINE_READ_UNLOCK=y
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-CONFIG_INLINE_WRITE_UNLOCK=y
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
-CONFIG_MUTEX_SPIN_ON_OWNER=y
-CONFIG_RWSEM_SPIN_ON_OWNER=y
-CONFIG_LOCK_SPIN_ON_OWNER=y
-CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
-CONFIG_QUEUED_SPINLOCKS=y
-CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
-CONFIG_QUEUED_RWLOCKS=y
-CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
-CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y
-CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
-CONFIG_FREEZER=y
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_COMPAT_BINFMT_ELF=y
-CONFIG_ELFCORE=y
-CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-CONFIG_BINFMT_SCRIPT=y
-CONFIG_BINFMT_MISC=m
-CONFIG_COREDUMP=y
-# end of Executable file formats
-
-#
-# Memory Management options
-#
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_SPARSEMEM_MANUAL=y
-CONFIG_SPARSEMEM=y
-CONFIG_NEED_MULTIPLE_NODES=y
-CONFIG_SPARSEMEM_EXTREME=y
-CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
-CONFIG_SPARSEMEM_VMEMMAP=y
-CONFIG_HAVE_FAST_GUP=y
-CONFIG_NUMA_KEEP_MEMINFO=y
-CONFIG_MEMORY_ISOLATION=y
-CONFIG_HAVE_BOOTMEM_INFO_NODE=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-CONFIG_MEMORY_HOTPLUG=y
-CONFIG_MEMORY_HOTPLUG_SPARSE=y
-# CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set
-CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
-CONFIG_MEMORY_HOTREMOVE=y
-CONFIG_MHP_MEMMAP_ON_MEMORY=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
-CONFIG_MEMORY_BALLOON=y
-CONFIG_BALLOON_COMPACTION=y
-CONFIG_COMPACTION=y
-CONFIG_PAGE_REPORTING=y
-CONFIG_MIGRATION=y
-CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
-CONFIG_ARCH_ENABLE_THP_MIGRATION=y
-CONFIG_CONTIG_ALLOC=y
-CONFIG_PHYS_ADDR_T_64BIT=y
-CONFIG_VIRT_TO_BUS=y
-CONFIG_MMU_NOTIFIER=y
-CONFIG_KSM=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
-CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
-CONFIG_MEMORY_FAILURE=y
-CONFIG_HWPOISON_INJECT=m
-CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
-# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
-CONFIG_ARCH_WANTS_THP_SWAP=y
-CONFIG_THP_SWAP=y
-CONFIG_CLEANCACHE=y
-CONFIG_FRONTSWAP=y
-CONFIG_CMA=y
-# CONFIG_CMA_DEBUG is not set
-# CONFIG_CMA_DEBUGFS is not set
-CONFIG_CMA_SYSFS=y
-CONFIG_CMA_AREAS=7
-CONFIG_MEM_SOFT_DIRTY=y
-CONFIG_ZSWAP=y
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
-CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set
-CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lzo"
-CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
-# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set
-# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set
-CONFIG_ZSWAP_ZPOOL_DEFAULT="zbud"
-# CONFIG_ZSWAP_DEFAULT_ON is not set
-CONFIG_ZPOOL=y
-CONFIG_ZBUD=y
-CONFIG_Z3FOLD=m
-CONFIG_ZSMALLOC=y
-# CONFIG_ZSMALLOC_STAT is not set
-CONFIG_GENERIC_EARLY_IOREMAP=y
-# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
-CONFIG_IDLE_PAGE_TRACKING=y
-CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
-CONFIG_ARCH_HAS_PTE_DEVMAP=y
-CONFIG_ZONE_DEVICE=y
-CONFIG_DEV_PAGEMAP_OPS=y
-CONFIG_HMM_MIRROR=y
-# CONFIG_DEVICE_PRIVATE is not set
-CONFIG_VMAP_PFN=y
-CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
-CONFIG_ARCH_HAS_PKEYS=y
-# CONFIG_PERCPU_STATS is not set
-# CONFIG_GUP_TEST is not set
-# CONFIG_READ_ONLY_THP_FOR_FS is not set
-CONFIG_ARCH_HAS_PTE_SPECIAL=y
-CONFIG_MAPPING_DIRTY_HELPERS=y
-# end of Memory Management options
-
-CONFIG_NET=y
-CONFIG_WANT_COMPAT_NETLINK_MESSAGES=y
-CONFIG_COMPAT_NETLINK_MESSAGES=y
-CONFIG_NET_INGRESS=y
-CONFIG_NET_EGRESS=y
-CONFIG_NET_REDIRECT=y
-CONFIG_SKB_EXTENSIONS=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
-CONFIG_UNIX_SCM=y
-CONFIG_UNIX_DIAG=m
-CONFIG_TLS=m
-# CONFIG_TLS_DEVICE is not set
-# CONFIG_TLS_TOE is not set
-CONFIG_XFRM=y
-CONFIG_XFRM_OFFLOAD=y
-CONFIG_XFRM_ALGO=m
-CONFIG_XFRM_USER=m
-CONFIG_XFRM_USER_COMPAT=m
-CONFIG_XFRM_INTERFACE=m
-# CONFIG_XFRM_SUB_POLICY is not set
-# CONFIG_XFRM_MIGRATE is not set
-CONFIG_XFRM_STATISTICS=y
-CONFIG_XFRM_AH=m
-CONFIG_XFRM_ESP=m
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=m
-# CONFIG_NET_KEY_MIGRATE is not set
-# CONFIG_SMC is not set
-CONFIG_XDP_SOCKETS=y
-CONFIG_XDP_SOCKETS_DIAG=m
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_FIB_TRIE_STATS=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_ROUTE_CLASSID=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-# CONFIG_IP_PNP_BOOTP is not set
-# CONFIG_IP_PNP_RARP is not set
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE_DEMUX=m
-CONFIG_NET_IP_TUNNEL=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE_COMMON=y
-CONFIG_IP_MROUTE=y
-# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-CONFIG_SYN_COOKIES=y
-CONFIG_NET_IPVTI=m
-CONFIG_NET_UDP_TUNNEL=m
-CONFIG_NET_FOU=m
-CONFIG_NET_FOU_IP_TUNNELS=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_ESP_OFFLOAD=m
-# CONFIG_INET_ESPINTCP is not set
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_DIAG=m
-CONFIG_INET_TCP_DIAG=m
-CONFIG_INET_UDP_DIAG=m
-CONFIG_INET_RAW_DIAG=m
-# CONFIG_INET_DIAG_DESTROY is not set
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_NV=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-CONFIG_TCP_CONG_DCTCP=m
-CONFIG_TCP_CONG_CDG=m
-CONFIG_TCP_CONG_BBR=m
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_ESP_OFFLOAD=m
-# CONFIG_INET6_ESPINTCP is not set
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=m
-CONFIG_IPV6_ILA=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_IPV6_VTI=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_GRE=m
-CONFIG_IPV6_FOU=m
-CONFIG_IPV6_FOU_TUNNEL=m
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_IPV6_SUBTREES=y
-CONFIG_IPV6_MROUTE=y
-CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IPV6_PIMSM_V2=y
-# CONFIG_IPV6_SEG6_LWTUNNEL is not set
-# CONFIG_IPV6_SEG6_HMAC is not set
-# CONFIG_IPV6_RPL_LWTUNNEL is not set
-CONFIG_NETLABEL=y
-CONFIG_MPTCP=y
-CONFIG_INET_MPTCP_DIAG=m
-CONFIG_MPTCP_IPV6=y
-CONFIG_NETWORK_SECMARK=y
-CONFIG_NET_PTP_CLASSIFY=y
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-CONFIG_NETFILTER=y
-CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=m
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_INGRESS=y
-CONFIG_NETFILTER_NETLINK=m
-CONFIG_NETFILTER_FAMILY_BRIDGE=y
-CONFIG_NETFILTER_FAMILY_ARP=y
-CONFIG_NETFILTER_NETLINK_ACCT=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NETFILTER_NETLINK_OSF=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_LOG_SYSLOG=m
-CONFIG_NETFILTER_CONNCOUNT=m
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_ZONES=y
-# CONFIG_NF_CONNTRACK_PROCFS is not set
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CONNTRACK_TIMEOUT=y
-CONFIG_NF_CONNTRACK_TIMESTAMP=y
-CONFIG_NF_CONNTRACK_LABELS=y
-CONFIG_NF_CT_PROTO_DCCP=y
-CONFIG_NF_CT_PROTO_GRE=y
-CONFIG_NF_CT_PROTO_SCTP=y
-CONFIG_NF_CT_PROTO_UDPLITE=y
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_BROADCAST=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_SNMP=m
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NF_CT_NETLINK_TIMEOUT=m
-CONFIG_NF_CT_NETLINK_HELPER=m
-CONFIG_NETFILTER_NETLINK_GLUE_CT=y
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_AMANDA=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_NF_NAT_TFTP=m
-CONFIG_NF_NAT_REDIRECT=y
-CONFIG_NF_NAT_MASQUERADE=y
-CONFIG_NETFILTER_SYNPROXY=m
-CONFIG_NF_TABLES=m
-CONFIG_NF_TABLES_INET=y
-CONFIG_NF_TABLES_NETDEV=y
-CONFIG_NFT_NUMGEN=m
-CONFIG_NFT_CT=m
-CONFIG_NFT_FLOW_OFFLOAD=m
-CONFIG_NFT_COUNTER=m
-CONFIG_NFT_CONNLIMIT=m
-CONFIG_NFT_LOG=m
-CONFIG_NFT_LIMIT=m
-CONFIG_NFT_MASQ=m
-CONFIG_NFT_REDIR=m
-CONFIG_NFT_NAT=m
-CONFIG_NFT_TUNNEL=m
-CONFIG_NFT_OBJREF=m
-CONFIG_NFT_QUEUE=m
-CONFIG_NFT_QUOTA=m
-CONFIG_NFT_REJECT=m
-CONFIG_NFT_REJECT_INET=m
-CONFIG_NFT_COMPAT=m
-CONFIG_NFT_HASH=m
-CONFIG_NFT_FIB=m
-CONFIG_NFT_FIB_INET=m
-CONFIG_NFT_XFRM=m
-CONFIG_NFT_SOCKET=m
-CONFIG_NFT_OSF=m
-CONFIG_NFT_TPROXY=m
-CONFIG_NFT_SYNPROXY=m
-CONFIG_NF_DUP_NETDEV=m
-CONFIG_NFT_DUP_NETDEV=m
-CONFIG_NFT_FWD_NETDEV=m
-CONFIG_NFT_FIB_NETDEV=m
-CONFIG_NFT_REJECT_NETDEV=m
-CONFIG_NF_FLOW_TABLE_INET=m
-CONFIG_NF_FLOW_TABLE=m
-CONFIG_NETFILTER_XTABLES=m
-CONFIG_NETFILTER_XTABLES_COMPAT=y
-
-#
-# Xtables combined modules
-#
-CONFIG_NETFILTER_XT_MARK=m
-CONFIG_NETFILTER_XT_CONNMARK=m
-CONFIG_NETFILTER_XT_SET=m
-
-#
-# Xtables targets
-#
-CONFIG_NETFILTER_XT_TARGET_AUDIT=m
-CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
-CONFIG_NETFILTER_XT_TARGET_CT=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_HL=m
-CONFIG_NETFILTER_XT_TARGET_HMARK=m
-CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
-CONFIG_NETFILTER_XT_TARGET_LED=m
-CONFIG_NETFILTER_XT_TARGET_LOG=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_NAT=m
-CONFIG_NETFILTER_XT_TARGET_NETMAP=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
-CONFIG_NETFILTER_XT_TARGET_RATEEST=m
-CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
-CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
-CONFIG_NETFILTER_XT_TARGET_TEE=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
-
-#
-# Xtables matches
-#
-CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
-CONFIG_NETFILTER_XT_MATCH_BPF=m
-CONFIG_NETFILTER_XT_MATCH_CGROUP=m
-CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_CPU=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=m
-CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-CONFIG_NETFILTER_XT_MATCH_ECN=m
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_HL=m
-CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
-CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
-CONFIG_NETFILTER_XT_MATCH_IPVS=m
-CONFIG_NETFILTER_XT_MATCH_L2TP=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-CONFIG_NETFILTER_XT_MATCH_NFACCT=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
-CONFIG_NETFILTER_XT_MATCH_OWNER=m
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_RATEEST=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_SOCKET=m
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_TIME=m
-CONFIG_NETFILTER_XT_MATCH_U32=m
-# end of Core Netfilter Configuration
-
-CONFIG_IP_SET=m
-CONFIG_IP_SET_MAX=256
-CONFIG_IP_SET_BITMAP_IP=m
-CONFIG_IP_SET_BITMAP_IPMAC=m
-CONFIG_IP_SET_BITMAP_PORT=m
-CONFIG_IP_SET_HASH_IP=m
-CONFIG_IP_SET_HASH_IPMARK=m
-CONFIG_IP_SET_HASH_IPPORT=m
-CONFIG_IP_SET_HASH_IPPORTIP=m
-CONFIG_IP_SET_HASH_IPPORTNET=m
-CONFIG_IP_SET_HASH_IPMAC=m
-CONFIG_IP_SET_HASH_MAC=m
-CONFIG_IP_SET_HASH_NETPORTNET=m
-CONFIG_IP_SET_HASH_NET=m
-CONFIG_IP_SET_HASH_NETNET=m
-CONFIG_IP_SET_HASH_NETPORT=m
-CONFIG_IP_SET_HASH_NETIFACE=m
-CONFIG_IP_SET_LIST_SET=m
-CONFIG_IP_VS=m
-CONFIG_IP_VS_IPV6=y
-# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
-
-#
-# IPVS transport protocol load balancing support
-#
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_AH_ESP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-CONFIG_IP_VS_PROTO_SCTP=y
-
-#
-# IPVS scheduler
-#
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_FO=m
-CONFIG_IP_VS_OVF=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_MH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-CONFIG_IP_VS_TWOS=m
-
-#
-# IPVS SH scheduler
-#
-CONFIG_IP_VS_SH_TAB_BITS=8
-
-#
-# IPVS MH scheduler
-#
-CONFIG_IP_VS_MH_TAB_INDEX=12
-
-#
-# IPVS application helper
-#
-CONFIG_IP_VS_FTP=m
-CONFIG_IP_VS_NFCT=y
-CONFIG_IP_VS_PE_SIP=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_SOCKET_IPV4=m
-CONFIG_NF_TPROXY_IPV4=m
-CONFIG_NF_TABLES_IPV4=y
-CONFIG_NFT_REJECT_IPV4=m
-CONFIG_NFT_DUP_IPV4=m
-CONFIG_NFT_FIB_IPV4=m
-CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
-CONFIG_NF_DUP_IPV4=m
-CONFIG_NF_LOG_ARP=m
-CONFIG_NF_LOG_IPV4=m
-CONFIG_NF_REJECT_IPV4=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_RPFILTER=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_SYNPROXY=m
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_SECURITY=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-# end of IP: Netfilter Configuration
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_SOCKET_IPV6=m
-CONFIG_NF_TPROXY_IPV6=m
-CONFIG_NF_TABLES_IPV6=y
-CONFIG_NFT_REJECT_IPV6=m
-CONFIG_NFT_DUP_IPV6=m
-CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
-CONFIG_NF_DUP_IPV6=m
-CONFIG_NF_REJECT_IPV6=m
-CONFIG_NF_LOG_IPV6=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_RPFILTER=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_MATCH_SRH=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_TARGET_SYNPROXY=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-CONFIG_IP6_NF_SECURITY=m
-CONFIG_IP6_NF_NAT=m
-CONFIG_IP6_NF_TARGET_MASQUERADE=m
-CONFIG_IP6_NF_TARGET_NPT=m
-# end of IPv6: Netfilter Configuration
-
-CONFIG_NF_DEFRAG_IPV6=m
-
-#
-# DECnet: Netfilter Configuration
-#
-CONFIG_DECNET_NF_GRABULATOR=m
-# end of DECnet: Netfilter Configuration
-
-CONFIG_NF_TABLES_BRIDGE=m
-CONFIG_NFT_BRIDGE_META=m
-CONFIG_NFT_BRIDGE_REJECT=m
-CONFIG_NF_CONNTRACK_BRIDGE=m
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_ARP=m
-CONFIG_BRIDGE_EBT_IP=m
-CONFIG_BRIDGE_EBT_IP6=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_MARK=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_VLAN=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_LOG=m
-CONFIG_BRIDGE_EBT_NFLOG=m
-# CONFIG_BPFILTER is not set
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-
-#
-# DCCP CCIDs Configuration
-#
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-# CONFIG_IP_DCCP_CCID3 is not set
-# end of DCCP CCIDs Configuration
-
-#
-# DCCP Kernel Hacking
-#
-# CONFIG_IP_DCCP_DEBUG is not set
-# end of DCCP Kernel Hacking
-
-CONFIG_IP_SCTP=m
-# CONFIG_SCTP_DBG_OBJCNT is not set
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
-CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
-CONFIG_SCTP_COOKIE_HMAC_MD5=y
-CONFIG_SCTP_COOKIE_HMAC_SHA1=y
-CONFIG_INET_SCTP_DIAG=m
-CONFIG_RDS=m
-CONFIG_RDS_RDMA=m
-CONFIG_RDS_TCP=m
-# CONFIG_RDS_DEBUG is not set
-CONFIG_TIPC=m
-CONFIG_TIPC_MEDIA_IB=y
-CONFIG_TIPC_MEDIA_UDP=y
-CONFIG_TIPC_CRYPTO=y
-CONFIG_TIPC_DIAG=m
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-CONFIG_ATM_LANE=m
-CONFIG_ATM_MPOA=m
-CONFIG_ATM_BR2684=m
-# CONFIG_ATM_BR2684_IPFILTER is not set
-CONFIG_L2TP=m
-CONFIG_L2TP_DEBUGFS=m
-CONFIG_L2TP_V3=y
-CONFIG_L2TP_IP=m
-CONFIG_L2TP_ETH=m
-CONFIG_STP=m
-CONFIG_GARP=m
-CONFIG_MRP=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-CONFIG_BRIDGE_VLAN_FILTERING=y
-CONFIG_BRIDGE_MRP=y
-CONFIG_BRIDGE_CFM=y
-CONFIG_NET_DSA=m
-CONFIG_NET_DSA_TAG_8021Q=m
-CONFIG_NET_DSA_TAG_AR9331=m
-CONFIG_NET_DSA_TAG_BRCM_COMMON=m
-CONFIG_NET_DSA_TAG_BRCM=m
-CONFIG_NET_DSA_TAG_BRCM_LEGACY=m
-CONFIG_NET_DSA_TAG_BRCM_PREPEND=m
-CONFIG_NET_DSA_TAG_HELLCREEK=m
-CONFIG_NET_DSA_TAG_GSWIP=m
-CONFIG_NET_DSA_TAG_DSA_COMMON=m
-CONFIG_NET_DSA_TAG_DSA=m
-CONFIG_NET_DSA_TAG_EDSA=m
-CONFIG_NET_DSA_TAG_MTK=m
-CONFIG_NET_DSA_TAG_KSZ=m
-CONFIG_NET_DSA_TAG_RTL4_A=m
-CONFIG_NET_DSA_TAG_OCELOT=m
-CONFIG_NET_DSA_TAG_OCELOT_8021Q=m
-CONFIG_NET_DSA_TAG_QCA=m
-CONFIG_NET_DSA_TAG_LAN9303=m
-CONFIG_NET_DSA_TAG_SJA1105=m
-CONFIG_NET_DSA_TAG_TRAILER=m
-CONFIG_NET_DSA_TAG_XRS700X=m
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-CONFIG_VLAN_8021Q_MVRP=y
-CONFIG_DECNET=m
-# CONFIG_DECNET_ROUTER is not set
-CONFIG_LLC=m
-CONFIG_LLC2=m
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=m
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-CONFIG_X25=m
-CONFIG_LAPB=m
-CONFIG_PHONET=m
-CONFIG_6LOWPAN=m
-# CONFIG_6LOWPAN_DEBUGFS is not set
-CONFIG_6LOWPAN_NHC=m
-CONFIG_6LOWPAN_NHC_DEST=m
-CONFIG_6LOWPAN_NHC_FRAGMENT=m
-CONFIG_6LOWPAN_NHC_HOP=m
-CONFIG_6LOWPAN_NHC_IPV6=m
-CONFIG_6LOWPAN_NHC_MOBILITY=m
-CONFIG_6LOWPAN_NHC_ROUTING=m
-CONFIG_6LOWPAN_NHC_UDP=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m
-CONFIG_6LOWPAN_GHC_UDP=m
-CONFIG_6LOWPAN_GHC_ICMPV6=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
-CONFIG_IEEE802154=m
-CONFIG_IEEE802154_NL802154_EXPERIMENTAL=y
-CONFIG_IEEE802154_SOCKET=m
-CONFIG_IEEE802154_6LOWPAN=m
-CONFIG_MAC802154=m
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_MULTIQ=m
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFB=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_CBS=m
-CONFIG_NET_SCH_ETF=m
-CONFIG_NET_SCH_TAPRIO=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_DRR=m
-CONFIG_NET_SCH_MQPRIO=m
-CONFIG_NET_SCH_SKBPRIO=m
-CONFIG_NET_SCH_CHOKE=m
-CONFIG_NET_SCH_QFQ=m
-CONFIG_NET_SCH_CODEL=m
-CONFIG_NET_SCH_FQ_CODEL=m
-CONFIG_NET_SCH_CAKE=m
-CONFIG_NET_SCH_FQ=m
-CONFIG_NET_SCH_HHF=m
-CONFIG_NET_SCH_PIE=m
-CONFIG_NET_SCH_FQ_PIE=m
-CONFIG_NET_SCH_INGRESS=m
-CONFIG_NET_SCH_PLUG=m
-CONFIG_NET_SCH_ETS=m
-# CONFIG_NET_SCH_DEFAULT is not set
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-# CONFIG_CLS_U32_PERF is not set
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_FLOW=m
-CONFIG_NET_CLS_CGROUP=m
-CONFIG_NET_CLS_BPF=m
-CONFIG_NET_CLS_FLOWER=m
-CONFIG_NET_CLS_MATCHALL=m
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_EMATCH_TEXT=m
-CONFIG_NET_EMATCH_CANID=m
-CONFIG_NET_EMATCH_IPSET=m
-CONFIG_NET_EMATCH_IPT=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_SAMPLE=m
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-CONFIG_NET_ACT_SKBEDIT=m
-CONFIG_NET_ACT_CSUM=m
-CONFIG_NET_ACT_MPLS=m
-CONFIG_NET_ACT_VLAN=m
-CONFIG_NET_ACT_BPF=m
-CONFIG_NET_ACT_CONNMARK=m
-CONFIG_NET_ACT_CTINFO=m
-CONFIG_NET_ACT_SKBMOD=m
-CONFIG_NET_ACT_IFE=m
-CONFIG_NET_ACT_TUNNEL_KEY=m
-CONFIG_NET_ACT_CT=m
-CONFIG_NET_ACT_GATE=m
-CONFIG_NET_IFE_SKBMARK=m
-CONFIG_NET_IFE_SKBPRIO=m
-CONFIG_NET_IFE_SKBTCINDEX=m
-# CONFIG_NET_TC_SKB_EXT is not set
-CONFIG_NET_SCH_FIFO=y
-CONFIG_DCB=y
-CONFIG_DNS_RESOLVER=y
-CONFIG_BATMAN_ADV=m
-# CONFIG_BATMAN_ADV_BATMAN_V is not set
-CONFIG_BATMAN_ADV_BLA=y
-CONFIG_BATMAN_ADV_DAT=y
-CONFIG_BATMAN_ADV_NC=y
-CONFIG_BATMAN_ADV_MCAST=y
-# CONFIG_BATMAN_ADV_DEBUG is not set
-# CONFIG_BATMAN_ADV_TRACING is not set
-CONFIG_OPENVSWITCH=m
-CONFIG_OPENVSWITCH_GRE=m
-CONFIG_OPENVSWITCH_VXLAN=m
-CONFIG_OPENVSWITCH_GENEVE=m
-CONFIG_VSOCKETS=m
-CONFIG_VSOCKETS_DIAG=m
-CONFIG_VSOCKETS_LOOPBACK=m
-CONFIG_VMWARE_VMCI_VSOCKETS=m
-CONFIG_VIRTIO_VSOCKETS=m
-CONFIG_VIRTIO_VSOCKETS_COMMON=m
-CONFIG_HYPERV_VSOCKETS=m
-CONFIG_NETLINK_DIAG=m
-CONFIG_MPLS=y
-CONFIG_NET_MPLS_GSO=m
-CONFIG_MPLS_ROUTING=m
-CONFIG_MPLS_IPTUNNEL=m
-CONFIG_NET_NSH=m
-CONFIG_HSR=m
-CONFIG_NET_SWITCHDEV=y
-CONFIG_NET_L3_MASTER_DEV=y
-CONFIG_QRTR=m
-CONFIG_QRTR_SMD=m
-CONFIG_QRTR_TUN=m
-CONFIG_QRTR_MHI=m
-CONFIG_NET_NCSI=y
-# CONFIG_NCSI_OEM_CMD_GET_MAC is not set
-CONFIG_PCPU_DEV_REFCNT=y
-CONFIG_RPS=y
-CONFIG_RFS_ACCEL=y
-CONFIG_SOCK_RX_QUEUE_MAPPING=y
-CONFIG_XPS=y
-CONFIG_CGROUP_NET_PRIO=y
-CONFIG_CGROUP_NET_CLASSID=y
-CONFIG_NET_RX_BUSY_POLL=y
-CONFIG_BQL=y
-# CONFIG_BPF_STREAM_PARSER is not set
-CONFIG_NET_FLOW_LIMIT=y
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-# CONFIG_NET_DROP_MONITOR is not set
-# end of Network testing
-# end of Networking options
-
-CONFIG_HAMRADIO=y
-
-#
-# Packet Radio protocols
-#
-CONFIG_AX25=m
-CONFIG_AX25_DAMA_SLAVE=y
-CONFIG_NETROM=m
-CONFIG_ROSE=m
-
-#
-# AX.25 network device drivers
-#
-CONFIG_MKISS=m
-CONFIG_6PACK=m
-CONFIG_BPQETHER=m
-CONFIG_BAYCOM_SER_FDX=m
-CONFIG_BAYCOM_SER_HDX=m
-CONFIG_BAYCOM_PAR=m
-CONFIG_YAM=m
-# end of AX.25 network device drivers
-
-CONFIG_CAN=m
-CONFIG_CAN_RAW=m
-CONFIG_CAN_BCM=m
-CONFIG_CAN_GW=m
-CONFIG_CAN_J1939=m
-CONFIG_CAN_ISOTP=m
-
-#
-# CAN Device Drivers
-#
-CONFIG_CAN_VCAN=m
-CONFIG_CAN_VXCAN=m
-CONFIG_CAN_SLCAN=m
-CONFIG_CAN_DEV=m
-CONFIG_CAN_CALC_BITTIMING=y
-CONFIG_CAN_JANZ_ICAN3=m
-CONFIG_CAN_KVASER_PCIEFD=m
-CONFIG_CAN_C_CAN=m
-CONFIG_CAN_C_CAN_PLATFORM=m
-CONFIG_CAN_C_CAN_PCI=m
-CONFIG_CAN_CC770=m
-CONFIG_CAN_CC770_ISA=m
-CONFIG_CAN_CC770_PLATFORM=m
-CONFIG_CAN_IFI_CANFD=m
-CONFIG_CAN_M_CAN=m
-CONFIG_CAN_M_CAN_PCI=m
-CONFIG_CAN_M_CAN_PLATFORM=m
-CONFIG_CAN_M_CAN_TCAN4X5X=m
-CONFIG_CAN_PEAK_PCIEFD=m
-CONFIG_CAN_SJA1000=m
-CONFIG_CAN_EMS_PCI=m
-CONFIG_CAN_EMS_PCMCIA=m
-CONFIG_CAN_F81601=m
-CONFIG_CAN_KVASER_PCI=m
-CONFIG_CAN_PEAK_PCI=m
-CONFIG_CAN_PEAK_PCIEC=y
-CONFIG_CAN_PEAK_PCMCIA=m
-CONFIG_CAN_PLX_PCI=m
-CONFIG_CAN_SJA1000_ISA=m
-CONFIG_CAN_SJA1000_PLATFORM=m
-CONFIG_CAN_SOFTING=m
-CONFIG_CAN_SOFTING_CS=m
-
-#
-# CAN SPI interfaces
-#
-CONFIG_CAN_HI311X=m
-CONFIG_CAN_MCP251X=m
-CONFIG_CAN_MCP251XFD=m
-# CONFIG_CAN_MCP251XFD_SANITY is not set
-# end of CAN SPI interfaces
-
-#
-# CAN USB interfaces
-#
-CONFIG_CAN_8DEV_USB=m
-CONFIG_CAN_EMS_USB=m
-CONFIG_CAN_ESD_USB2=m
-CONFIG_CAN_ETAS_ES58X=m
-CONFIG_CAN_GS_USB=m
-CONFIG_CAN_KVASER_USB=m
-CONFIG_CAN_MCBA_USB=m
-CONFIG_CAN_PEAK_USB=m
-CONFIG_CAN_UCAN=m
-# end of CAN USB interfaces
-
-# CONFIG_CAN_DEBUG_DEVICES is not set
-# end of CAN Device Drivers
-
-CONFIG_BT=m
-CONFIG_BT_BREDR=y
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_CMTP=m
-CONFIG_BT_HIDP=m
-CONFIG_BT_HS=y
-CONFIG_BT_LE=y
-CONFIG_BT_6LOWPAN=m
-# CONFIG_BT_LEDS is not set
-CONFIG_BT_MSFTEXT=y
-CONFIG_BT_AOSPEXT=y
-CONFIG_BT_DEBUGFS=y
-# CONFIG_BT_SELFTEST is not set
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_INTEL=m
-CONFIG_BT_BCM=m
-CONFIG_BT_RTL=m
-CONFIG_BT_QCA=m
-CONFIG_BT_HCIBTUSB=m
-# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set
-CONFIG_BT_HCIBTUSB_BCM=y
-CONFIG_BT_HCIBTUSB_MTK=y
-CONFIG_BT_HCIBTUSB_RTL=y
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_SERDEV=y
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_NOKIA=m
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_BT_HCIUART_ATH3K=y
-CONFIG_BT_HCIUART_LL=y
-CONFIG_BT_HCIUART_3WIRE=y
-CONFIG_BT_HCIUART_INTEL=y
-CONFIG_BT_HCIUART_BCM=y
-CONFIG_BT_HCIUART_RTL=y
-CONFIG_BT_HCIUART_QCA=y
-CONFIG_BT_HCIUART_AG6XX=y
-CONFIG_BT_HCIUART_MRVL=y
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-CONFIG_BT_HCIDTL1=m
-CONFIG_BT_HCIBT3C=m
-CONFIG_BT_HCIBLUECARD=m
-CONFIG_BT_HCIVHCI=m
-CONFIG_BT_MRVL=m
-CONFIG_BT_MRVL_SDIO=m
-CONFIG_BT_ATH3K=m
-CONFIG_BT_MTKSDIO=m
-CONFIG_BT_MTKUART=m
-CONFIG_BT_HCIRSI=m
-CONFIG_BT_VIRTIO=m
-# end of Bluetooth device drivers
-
-CONFIG_AF_RXRPC=m
-CONFIG_AF_RXRPC_IPV6=y
-# CONFIG_AF_RXRPC_INJECT_LOSS is not set
-# CONFIG_AF_RXRPC_DEBUG is not set
-# CONFIG_RXKAD is not set
-CONFIG_AF_KCM=m
-CONFIG_STREAM_PARSER=y
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
-CONFIG_WEXT_PRIV=y
-CONFIG_CFG80211=m
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
-CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
-CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
-CONFIG_CFG80211_DEFAULT_PS=y
-CONFIG_CFG80211_DEBUGFS=y
-CONFIG_CFG80211_CRDA_SUPPORT=y
-CONFIG_CFG80211_WEXT=y
-CONFIG_CFG80211_WEXT_EXPORT=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-CONFIG_MAC80211_MESH=y
-CONFIG_MAC80211_LEDS=y
-CONFIG_MAC80211_DEBUGFS=y
-CONFIG_MAC80211_MESSAGE_TRACING=y
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
-CONFIG_RFKILL=y
-CONFIG_RFKILL_LEDS=y
-CONFIG_RFKILL_INPUT=y
-CONFIG_RFKILL_GPIO=m
-CONFIG_NET_9P=m
-CONFIG_NET_9P_VIRTIO=m
-CONFIG_NET_9P_XEN=m
-CONFIG_NET_9P_RDMA=m
-# CONFIG_NET_9P_DEBUG is not set
-CONFIG_CAIF=m
-# CONFIG_CAIF_DEBUG is not set
-CONFIG_CAIF_NETDEV=m
-CONFIG_CAIF_USB=m
-CONFIG_CEPH_LIB=m
-# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
-CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y
-CONFIG_NFC=m
-CONFIG_NFC_DIGITAL=m
-CONFIG_NFC_NCI=m
-CONFIG_NFC_NCI_SPI=m
-CONFIG_NFC_NCI_UART=m
-CONFIG_NFC_HCI=m
-CONFIG_NFC_SHDLC=y
-
-#
-# Near Field Communication (NFC) devices
-#
-CONFIG_NFC_TRF7970A=m
-CONFIG_NFC_SIM=m
-CONFIG_NFC_PORT100=m
-CONFIG_NFC_VIRTUAL_NCI=m
-CONFIG_NFC_FDP=m
-CONFIG_NFC_FDP_I2C=m
-CONFIG_NFC_PN544=m
-CONFIG_NFC_PN544_I2C=m
-CONFIG_NFC_PN533=m
-CONFIG_NFC_PN533_USB=m
-CONFIG_NFC_PN533_I2C=m
-CONFIG_NFC_PN532_UART=m
-CONFIG_NFC_MICROREAD=m
-CONFIG_NFC_MICROREAD_I2C=m
-CONFIG_NFC_MRVL=m
-CONFIG_NFC_MRVL_USB=m
-CONFIG_NFC_MRVL_UART=m
-CONFIG_NFC_MRVL_I2C=m
-CONFIG_NFC_MRVL_SPI=m
-CONFIG_NFC_ST21NFCA=m
-CONFIG_NFC_ST21NFCA_I2C=m
-CONFIG_NFC_ST_NCI=m
-CONFIG_NFC_ST_NCI_I2C=m
-CONFIG_NFC_ST_NCI_SPI=m
-CONFIG_NFC_NXP_NCI=m
-CONFIG_NFC_NXP_NCI_I2C=m
-CONFIG_NFC_S3FWRN5=m
-CONFIG_NFC_S3FWRN5_I2C=m
-CONFIG_NFC_S3FWRN82_UART=m
-CONFIG_NFC_ST95HF=m
-# end of Near Field Communication (NFC) devices
-
-CONFIG_PSAMPLE=m
-CONFIG_NET_IFE=m
-CONFIG_LWTUNNEL=y
-CONFIG_LWTUNNEL_BPF=y
-CONFIG_DST_CACHE=y
-CONFIG_GRO_CELLS=y
-CONFIG_NET_SELFTESTS=y
-CONFIG_NET_SOCK_MSG=y
-CONFIG_NET_DEVLINK=y
-CONFIG_PAGE_POOL=y
-CONFIG_FAILOVER=y
-CONFIG_ETHTOOL_NETLINK=y
-
-#
-# Device Drivers
-#
-CONFIG_HAVE_EISA=y
-# CONFIG_EISA is not set
-CONFIG_HAVE_PCI=y
-CONFIG_PCI=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_HOTPLUG_PCI_PCIE=y
-CONFIG_PCIEAER=y
-# CONFIG_PCIEAER_INJECT is not set
-# CONFIG_PCIE_ECRC is not set
-CONFIG_PCIEASPM=y
-CONFIG_PCIEASPM_DEFAULT=y
-# CONFIG_PCIEASPM_POWERSAVE is not set
-# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
-# CONFIG_PCIEASPM_PERFORMANCE is not set
-CONFIG_PCIE_PME=y
-CONFIG_PCIE_DPC=y
-CONFIG_PCIE_PTM=y
-# CONFIG_PCIE_EDR is not set
-CONFIG_PCI_MSI=y
-CONFIG_PCI_MSI_IRQ_DOMAIN=y
-CONFIG_PCI_QUIRKS=y
-# CONFIG_PCI_DEBUG is not set
-CONFIG_PCI_REALLOC_ENABLE_AUTO=y
-CONFIG_PCI_STUB=m
-# CONFIG_PCI_PF_STUB is not set
-CONFIG_XEN_PCIDEV_FRONTEND=m
-CONFIG_PCI_ATS=y
-CONFIG_PCI_LOCKLESS_CONFIG=y
-CONFIG_PCI_IOV=y
-CONFIG_PCI_PRI=y
-CONFIG_PCI_PASID=y
-# CONFIG_PCI_P2PDMA is not set
-CONFIG_PCI_LABEL=y
-CONFIG_PCI_HYPERV=m
-# CONFIG_PCIE_BUS_TUNE_OFF is not set
-CONFIG_PCIE_BUS_DEFAULT=y
-# CONFIG_PCIE_BUS_SAFE is not set
-# CONFIG_PCIE_BUS_PERFORMANCE is not set
-# CONFIG_PCIE_BUS_PEER2PEER is not set
-CONFIG_HOTPLUG_PCI=y
-CONFIG_HOTPLUG_PCI_ACPI=y
-CONFIG_HOTPLUG_PCI_ACPI_IBM=m
-CONFIG_HOTPLUG_PCI_CPCI=y
-CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
-CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
-CONFIG_HOTPLUG_PCI_SHPC=y
-
-#
-# PCI controller drivers
-#
-CONFIG_VMD=m
-CONFIG_PCI_HYPERV_INTERFACE=m
-
-#
-# DesignWare PCI Core Support
-#
-# CONFIG_PCIE_DW_PLAT_HOST is not set
-# CONFIG_PCI_MESON is not set
-# end of DesignWare PCI Core Support
-
-#
-# Mobiveil PCIe Core Support
-#
-# end of Mobiveil PCIe Core Support
-
-#
-# Cadence PCIe controllers support
-#
-# end of Cadence PCIe controllers support
-# end of PCI controller drivers
-
-#
-# PCI Endpoint
-#
-# CONFIG_PCI_ENDPOINT is not set
-# end of PCI Endpoint
-
-#
-# PCI switch controller drivers
-#
-CONFIG_PCI_SW_SWITCHTEC=m
-# end of PCI switch controller drivers
-
-CONFIG_CXL_BUS=m
-CONFIG_CXL_MEM=m
-# CONFIG_CXL_MEM_RAW_COMMANDS is not set
-CONFIG_PCCARD=m
-CONFIG_PCMCIA=m
-CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_CARDBUS=y
-
-#
-# PC-card bridges
-#
-CONFIG_YENTA=m
-CONFIG_YENTA_O2=y
-CONFIG_YENTA_RICOH=y
-CONFIG_YENTA_TI=y
-CONFIG_YENTA_ENE_TUNE=y
-CONFIG_YENTA_TOSHIBA=y
-CONFIG_PD6729=m
-CONFIG_I82092=m
-CONFIG_PCCARD_NONSTATIC=y
-CONFIG_RAPIDIO=y
-CONFIG_RAPIDIO_TSI721=m
-CONFIG_RAPIDIO_DISC_TIMEOUT=30
-# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
-CONFIG_RAPIDIO_DMA_ENGINE=y
-# CONFIG_RAPIDIO_DEBUG is not set
-CONFIG_RAPIDIO_ENUM_BASIC=m
-CONFIG_RAPIDIO_CHMAN=m
-CONFIG_RAPIDIO_MPORT_CDEV=m
-
-#
-# RapidIO Switch drivers
-#
-CONFIG_RAPIDIO_TSI57X=m
-CONFIG_RAPIDIO_CPS_XX=m
-CONFIG_RAPIDIO_TSI568=m
-CONFIG_RAPIDIO_CPS_GEN2=m
-CONFIG_RAPIDIO_RXS_GEN3=m
-# end of RapidIO Switch drivers
-
-#
-# Generic Driver Options
-#
-CONFIG_AUXILIARY_BUS=y
-CONFIG_UEVENT_HELPER=y
-CONFIG_UEVENT_HELPER_PATH=""
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-# CONFIG_STANDALONE is not set
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-
-#
-# Firmware loader
-#
-CONFIG_FW_LOADER=y
-CONFIG_FW_LOADER_PAGED_BUF=y
-CONFIG_EXTRA_FIRMWARE=""
-CONFIG_FW_LOADER_USER_HELPER=y
-# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-CONFIG_FW_LOADER_COMPRESS=y
-CONFIG_FW_CACHE=y
-# end of Firmware loader
-
-CONFIG_WANT_DEV_COREDUMP=y
-CONFIG_ALLOW_DEV_COREDUMP=y
-CONFIG_DEV_COREDUMP=y
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
-CONFIG_HMEM_REPORTING=y
-# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
-CONFIG_SYS_HYPERVISOR=y
-CONFIG_GENERIC_CPU_AUTOPROBE=y
-CONFIG_GENERIC_CPU_VULNERABILITIES=y
-CONFIG_REGMAP=y
-CONFIG_REGMAP_I2C=y
-CONFIG_REGMAP_SPI=y
-CONFIG_REGMAP_SPMI=m
-CONFIG_REGMAP_W1=m
-CONFIG_REGMAP_MMIO=y
-CONFIG_REGMAP_IRQ=y
-CONFIG_REGMAP_SOUNDWIRE=m
-CONFIG_REGMAP_SOUNDWIRE_MBQ=m
-CONFIG_REGMAP_SCCB=m
-CONFIG_REGMAP_I3C=m
-CONFIG_REGMAP_SPI_AVMM=m
-CONFIG_DMA_SHARED_BUFFER=y
-# CONFIG_DMA_FENCE_TRACE is not set
-# end of Generic Driver Options
-
-#
-# Bus devices
-#
-CONFIG_MHI_BUS=m
-# CONFIG_MHI_BUS_DEBUG is not set
-CONFIG_MHI_BUS_PCI_GENERIC=m
-# end of Bus devices
-
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-CONFIG_GNSS=m
-CONFIG_GNSS_SERIAL=m
-CONFIG_GNSS_MTK_SERIAL=m
-CONFIG_GNSS_SIRF_SERIAL=m
-CONFIG_GNSS_UBX_SERIAL=m
-CONFIG_MTD=m
-# CONFIG_MTD_TESTS is not set
-
-#
-# Partition parsers
-#
-CONFIG_MTD_AR7_PARTS=m
-CONFIG_MTD_CMDLINE_PARTS=m
-CONFIG_MTD_REDBOOT_PARTS=m
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-# end of Partition parsers
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
-CONFIG_FTL=m
-CONFIG_NFTL=m
-CONFIG_NFTL_RW=y
-CONFIG_INFTL=m
-CONFIG_RFD_FTL=m
-CONFIG_SSFDC=m
-CONFIG_SM_FTL=m
-CONFIG_MTD_OOPS=m
-CONFIG_MTD_PSTORE=m
-CONFIG_MTD_SWAP=m
-# CONFIG_MTD_PARTITIONED_MASTER is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=m
-CONFIG_MTD_JEDECPROBE=m
-CONFIG_MTD_GEN_PROBE=m
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-CONFIG_MTD_CFI_INTELEXT=m
-CONFIG_MTD_CFI_AMDSTD=m
-CONFIG_MTD_CFI_STAA=m
-CONFIG_MTD_CFI_UTIL=m
-CONFIG_MTD_RAM=m
-CONFIG_MTD_ROM=m
-CONFIG_MTD_ABSENT=m
-# end of RAM/ROM/Flash chip drivers
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-CONFIG_MTD_PHYSMAP=m
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-CONFIG_MTD_PHYSMAP_GPIO_ADDR=y
-CONFIG_MTD_SBC_GXX=m
-CONFIG_MTD_AMD76XROM=m
-CONFIG_MTD_ICHXROM=m
-CONFIG_MTD_ESB2ROM=m
-CONFIG_MTD_CK804XROM=m
-CONFIG_MTD_SCB2_FLASH=m
-CONFIG_MTD_NETtel=m
-CONFIG_MTD_L440GX=m
-CONFIG_MTD_PCI=m
-CONFIG_MTD_PCMCIA=m
-# CONFIG_MTD_PCMCIA_ANONYMOUS is not set
-CONFIG_MTD_INTEL_VR_NOR=m
-CONFIG_MTD_PLATRAM=m
-# end of Mapping drivers for chip access
-
-#
-# Self-contained MTD device drivers
-#
-CONFIG_MTD_PMC551=m
-# CONFIG_MTD_PMC551_BUGFIX is not set
-# CONFIG_MTD_PMC551_DEBUG is not set
-CONFIG_MTD_DATAFLASH=m
-# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-CONFIG_MTD_DATAFLASH_OTP=y
-CONFIG_MTD_MCHP23K256=m
-CONFIG_MTD_SST25L=m
-CONFIG_MTD_SLRAM=m
-CONFIG_MTD_PHRAM=m
-CONFIG_MTD_MTDRAM=m
-CONFIG_MTDRAM_TOTAL_SIZE=4096
-CONFIG_MTDRAM_ERASE_SIZE=128
-CONFIG_MTD_BLOCK2MTD=m
-
-#
-# Disk-On-Chip Device Drivers
-#
-CONFIG_MTD_DOCG3=m
-CONFIG_BCH_CONST_M=14
-CONFIG_BCH_CONST_T=4
-# end of Self-contained MTD device drivers
-
-#
-# NAND
-#
-CONFIG_MTD_NAND_CORE=m
-CONFIG_MTD_ONENAND=m
-CONFIG_MTD_ONENAND_VERIFY_WRITE=y
-CONFIG_MTD_ONENAND_GENERIC=m
-# CONFIG_MTD_ONENAND_OTP is not set
-CONFIG_MTD_ONENAND_2X_PROGRAM=y
-CONFIG_MTD_RAW_NAND=m
-
-#
-# Raw/parallel NAND flash controllers
-#
-CONFIG_MTD_NAND_DENALI=m
-CONFIG_MTD_NAND_DENALI_PCI=m
-CONFIG_MTD_NAND_CAFE=m
-CONFIG_MTD_NAND_MXIC=m
-CONFIG_MTD_NAND_GPIO=m
-CONFIG_MTD_NAND_PLATFORM=m
-CONFIG_MTD_NAND_ARASAN=m
-
-#
-# Misc
-#
-CONFIG_MTD_SM_COMMON=m
-CONFIG_MTD_NAND_NANDSIM=m
-CONFIG_MTD_NAND_RICOH=m
-CONFIG_MTD_NAND_DISKONCHIP=m
-# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
-CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
-# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
-CONFIG_MTD_SPI_NAND=m
-
-#
-# ECC engine support
-#
-CONFIG_MTD_NAND_ECC=y
-CONFIG_MTD_NAND_ECC_SW_HAMMING=y
-# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
-# CONFIG_MTD_NAND_ECC_SW_BCH is not set
-# end of ECC engine support
-# end of NAND
-
-#
-# LPDDR & LPDDR2 PCM memory drivers
-#
-CONFIG_MTD_LPDDR=m
-CONFIG_MTD_QINFO_PROBE=m
-# end of LPDDR & LPDDR2 PCM memory drivers
-
-CONFIG_MTD_SPI_NOR=m
-CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
-# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set
-CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y
-# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set
-CONFIG_SPI_INTEL_SPI=m
-CONFIG_SPI_INTEL_SPI_PCI=m
-CONFIG_SPI_INTEL_SPI_PLATFORM=m
-CONFIG_MTD_UBI=m
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_LIMIT=20
-CONFIG_MTD_UBI_FASTMAP=y
-CONFIG_MTD_UBI_GLUEBI=m
-CONFIG_MTD_UBI_BLOCK=y
-CONFIG_MTD_HYPERBUS=m
-# CONFIG_OF is not set
-CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
-CONFIG_PARPORT=m
-CONFIG_PARPORT_PC=m
-CONFIG_PARPORT_SERIAL=m
-CONFIG_PARPORT_PC_FIFO=y
-# CONFIG_PARPORT_PC_SUPERIO is not set
-CONFIG_PARPORT_PC_PCMCIA=m
-CONFIG_PARPORT_AX88796=m
-CONFIG_PARPORT_1284=y
-CONFIG_PARPORT_NOT_PC=y
-CONFIG_PNP=y
-# CONFIG_PNP_DEBUG_MESSAGES is not set
-
-#
-# Protocols
-#
-CONFIG_PNPACPI=y
-CONFIG_BLK_DEV=y
-CONFIG_BLK_DEV_NULL_BLK=m
-CONFIG_BLK_DEV_FD=m
-CONFIG_CDROM=y
-CONFIG_PARIDE=m
-
-#
-# Parallel IDE high-level drivers
-#
-CONFIG_PARIDE_PD=m
-CONFIG_PARIDE_PCD=m
-CONFIG_PARIDE_PF=m
-CONFIG_PARIDE_PT=m
-CONFIG_PARIDE_PG=m
-
-#
-# Parallel IDE protocol modules
-#
-CONFIG_PARIDE_ATEN=m
-CONFIG_PARIDE_BPCK=m
-CONFIG_PARIDE_COMM=m
-CONFIG_PARIDE_DSTR=m
-CONFIG_PARIDE_FIT2=m
-CONFIG_PARIDE_FIT3=m
-CONFIG_PARIDE_EPAT=m
-CONFIG_PARIDE_EPATC8=y
-CONFIG_PARIDE_EPIA=m
-CONFIG_PARIDE_FRIQ=m
-CONFIG_PARIDE_FRPW=m
-CONFIG_PARIDE_KBIC=m
-CONFIG_PARIDE_KTTI=m
-CONFIG_PARIDE_ON20=m
-CONFIG_PARIDE_ON26=m
-CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
-CONFIG_ZRAM=m
-CONFIG_ZRAM_DEF_COMP_LZORLE=y
-# CONFIG_ZRAM_DEF_COMP_ZSTD is not set
-# CONFIG_ZRAM_DEF_COMP_LZ4 is not set
-# CONFIG_ZRAM_DEF_COMP_LZO is not set
-# CONFIG_ZRAM_DEF_COMP_LZ4HC is not set
-# CONFIG_ZRAM_DEF_COMP_842 is not set
-CONFIG_ZRAM_DEF_COMP="lzo-rle"
-# CONFIG_ZRAM_WRITEBACK is not set
-# CONFIG_ZRAM_MEMORY_TRACKING is not set
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-CONFIG_BLK_DEV_DRBD=m
-# CONFIG_DRBD_FAULT_INJECTION is not set
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_SX8=m
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=65536
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-CONFIG_ATA_OVER_ETH=m
-CONFIG_XEN_BLKDEV_FRONTEND=y
-CONFIG_XEN_BLKDEV_BACKEND=m
-CONFIG_VIRTIO_BLK=y
-CONFIG_BLK_DEV_RBD=m
-CONFIG_BLK_DEV_RSXX=m
-CONFIG_BLK_DEV_RNBD=y
-CONFIG_BLK_DEV_RNBD_CLIENT=m
-CONFIG_BLK_DEV_RNBD_SERVER=m
-
-#
-# NVME Support
-#
-CONFIG_NVME_CORE=y
-CONFIG_BLK_DEV_NVME=y
-# CONFIG_NVME_MULTIPATH is not set
-CONFIG_NVME_HWMON=y
-CONFIG_NVME_FABRICS=m
-CONFIG_NVME_RDMA=m
-CONFIG_NVME_FC=m
-CONFIG_NVME_TCP=m
-CONFIG_NVME_TARGET=m
-# CONFIG_NVME_TARGET_PASSTHRU is not set
-CONFIG_NVME_TARGET_LOOP=m
-CONFIG_NVME_TARGET_RDMA=m
-CONFIG_NVME_TARGET_FC=m
-CONFIG_NVME_TARGET_FCLOOP=m
-CONFIG_NVME_TARGET_TCP=m
-# end of NVME Support
-
-#
-# Misc devices
-#
-CONFIG_SENSORS_LIS3LV02D=m
-CONFIG_AD525X_DPOT=m
-CONFIG_AD525X_DPOT_I2C=m
-CONFIG_AD525X_DPOT_SPI=m
-CONFIG_DUMMY_IRQ=m
-CONFIG_IBM_ASM=m
-CONFIG_PHANTOM=m
-CONFIG_TIFM_CORE=m
-CONFIG_TIFM_7XX1=m
-CONFIG_ICS932S401=m
-CONFIG_ENCLOSURE_SERVICES=m
-CONFIG_HP_ILO=m
-CONFIG_APDS9802ALS=m
-CONFIG_ISL29003=m
-CONFIG_ISL29020=m
-CONFIG_SENSORS_TSL2550=m
-CONFIG_SENSORS_BH1770=m
-CONFIG_SENSORS_APDS990X=m
-CONFIG_HMC6352=m
-CONFIG_DS1682=m
-CONFIG_VMWARE_BALLOON=m
-CONFIG_LATTICE_ECP3_CONFIG=m
-CONFIG_SRAM=y
-CONFIG_DW_XDATA_PCIE=m
-# CONFIG_PCI_ENDPOINT_TEST is not set
-CONFIG_XILINX_SDFEC=m
-CONFIG_MISC_RTSX=m
-CONFIG_C2PORT=m
-CONFIG_C2PORT_DURAMAR_2150=m
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=m
-CONFIG_EEPROM_AT25=m
-CONFIG_EEPROM_LEGACY=m
-CONFIG_EEPROM_MAX6875=m
-CONFIG_EEPROM_93CX6=m
-CONFIG_EEPROM_93XX46=m
-CONFIG_EEPROM_IDT_89HPESX=m
-CONFIG_EEPROM_EE1004=m
-# end of EEPROM support
-
-CONFIG_CB710_CORE=m
-# CONFIG_CB710_DEBUG is not set
-CONFIG_CB710_DEBUG_ASSUMPTIONS=y
-
-#
-# Texas Instruments shared transport line discipline
-#
-CONFIG_TI_ST=m
-# end of Texas Instruments shared transport line discipline
-
-CONFIG_SENSORS_LIS3_I2C=m
-CONFIG_ALTERA_STAPL=m
-# CONFIG_INTEL_MEI is not set
-# CONFIG_INTEL_MEI_ME is not set
-# CONFIG_INTEL_MEI_TXE is not set
-# CONFIG_INTEL_MEI_HDCP is not set
-CONFIG_VMWARE_VMCI=m
-CONFIG_GENWQE=m
-CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0
-CONFIG_ECHO=m
-CONFIG_BCM_VK=m
-CONFIG_BCM_VK_TTY=y
-CONFIG_MISC_ALCOR_PCI=m
-CONFIG_MISC_RTSX_PCI=m
-CONFIG_MISC_RTSX_USB=m
-CONFIG_HABANA_AI=m
-CONFIG_UACCE=m
-CONFIG_PVPANIC=y
-CONFIG_PVPANIC_MMIO=m
-CONFIG_PVPANIC_PCI=m
-# end of Misc devices
-
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_NETLINK=y
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-CONFIG_CHR_DEV_ST=m
-CONFIG_BLK_DEV_SR=y
-CONFIG_CHR_DEV_SG=y
-CONFIG_CHR_DEV_SCH=m
-CONFIG_SCSI_ENCLOSURE=m
-CONFIG_SCSI_CONSTANTS=y
-CONFIG_SCSI_LOGGING=y
-CONFIG_SCSI_SCAN_ASYNC=y
-
-#
-# SCSI Transports
-#
-CONFIG_SCSI_SPI_ATTRS=m
-CONFIG_SCSI_FC_ATTRS=m
-CONFIG_SCSI_ISCSI_ATTRS=m
-CONFIG_SCSI_SAS_ATTRS=m
-CONFIG_SCSI_SAS_LIBSAS=m
-CONFIG_SCSI_SAS_ATA=y
-CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SRP_ATTRS=m
-# end of SCSI Transports
-
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ISCSI_TCP=m
-CONFIG_ISCSI_BOOT_SYSFS=m
-CONFIG_SCSI_CXGB3_ISCSI=m
-CONFIG_SCSI_CXGB4_ISCSI=m
-CONFIG_SCSI_BNX2_ISCSI=m
-CONFIG_SCSI_BNX2X_FCOE=m
-CONFIG_BE2ISCSI=m
-CONFIG_BLK_DEV_3W_XXXX_RAID=m
-CONFIG_SCSI_HPSA=m
-CONFIG_SCSI_3W_9XXX=m
-CONFIG_SCSI_3W_SAS=m
-CONFIG_SCSI_ACARD=m
-CONFIG_SCSI_AACRAID=m
-CONFIG_SCSI_AIC7XXX=m
-CONFIG_AIC7XXX_CMDS_PER_DEVICE=8
-CONFIG_AIC7XXX_RESET_DELAY_MS=5000
-# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
-CONFIG_AIC7XXX_DEBUG_MASK=0
-CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
-CONFIG_SCSI_AIC79XX=m
-CONFIG_AIC79XX_CMDS_PER_DEVICE=32
-CONFIG_AIC79XX_RESET_DELAY_MS=5000
-# CONFIG_AIC79XX_DEBUG_ENABLE is not set
-CONFIG_AIC79XX_DEBUG_MASK=0
-CONFIG_AIC79XX_REG_PRETTY_PRINT=y
-CONFIG_SCSI_AIC94XX=m
-# CONFIG_AIC94XX_DEBUG is not set
-CONFIG_SCSI_MVSAS=m
-# CONFIG_SCSI_MVSAS_DEBUG is not set
-# CONFIG_SCSI_MVSAS_TASKLET is not set
-CONFIG_SCSI_MVUMI=m
-CONFIG_SCSI_DPT_I2O=m
-CONFIG_SCSI_ADVANSYS=m
-CONFIG_SCSI_ARCMSR=m
-CONFIG_SCSI_ESAS2R=m
-CONFIG_MEGARAID_NEWGEN=y
-CONFIG_MEGARAID_MM=m
-CONFIG_MEGARAID_MAILBOX=m
-CONFIG_MEGARAID_LEGACY=m
-CONFIG_MEGARAID_SAS=m
-CONFIG_SCSI_MPT3SAS=m
-CONFIG_SCSI_MPT2SAS_MAX_SGE=128
-CONFIG_SCSI_MPT3SAS_MAX_SGE=128
-CONFIG_SCSI_MPT2SAS=m
-CONFIG_SCSI_SMARTPQI=m
-CONFIG_SCSI_UFSHCD=m
-CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
-CONFIG_SCSI_UFSHCD_PLATFORM=m
-CONFIG_SCSI_UFS_CDNS_PLATFORM=m
-# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
-# CONFIG_SCSI_UFS_BSG is not set
-CONFIG_SCSI_UFS_CRYPTO=y
-CONFIG_SCSI_HPTIOP=m
-CONFIG_SCSI_BUSLOGIC=m
-CONFIG_SCSI_FLASHPOINT=y
-CONFIG_SCSI_MYRB=m
-CONFIG_SCSI_MYRS=m
-CONFIG_VMWARE_PVSCSI=m
-CONFIG_XEN_SCSI_FRONTEND=m
-CONFIG_HYPERV_STORAGE=m
-CONFIG_LIBFC=m
-CONFIG_LIBFCOE=m
-CONFIG_FCOE=m
-CONFIG_FCOE_FNIC=m
-CONFIG_SCSI_SNIC=m
-# CONFIG_SCSI_SNIC_DEBUG_FS is not set
-CONFIG_SCSI_DMX3191D=m
-CONFIG_SCSI_FDOMAIN=m
-CONFIG_SCSI_FDOMAIN_PCI=m
-CONFIG_SCSI_ISCI=m
-CONFIG_SCSI_IPS=m
-CONFIG_SCSI_INITIO=m
-CONFIG_SCSI_INIA100=m
-CONFIG_SCSI_PPA=m
-CONFIG_SCSI_IMM=m
-# CONFIG_SCSI_IZIP_EPP16 is not set
-# CONFIG_SCSI_IZIP_SLOW_CTR is not set
-CONFIG_SCSI_STEX=m
-CONFIG_SCSI_SYM53C8XX_2=m
-CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
-CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
-CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
-CONFIG_SCSI_SYM53C8XX_MMIO=y
-CONFIG_SCSI_IPR=m
-CONFIG_SCSI_IPR_TRACE=y
-CONFIG_SCSI_IPR_DUMP=y
-CONFIG_SCSI_QLOGIC_1280=m
-CONFIG_SCSI_QLA_FC=m
-CONFIG_TCM_QLA2XXX=m
-# CONFIG_TCM_QLA2XXX_DEBUG is not set
-CONFIG_SCSI_QLA_ISCSI=m
-CONFIG_QEDI=m
-CONFIG_QEDF=m
-CONFIG_SCSI_LPFC=m
-# CONFIG_SCSI_LPFC_DEBUG_FS is not set
-CONFIG_SCSI_DC395x=m
-CONFIG_SCSI_AM53C974=m
-CONFIG_SCSI_WD719X=m
-CONFIG_SCSI_DEBUG=m
-CONFIG_SCSI_PMCRAID=m
-CONFIG_SCSI_PM8001=m
-CONFIG_SCSI_BFA_FC=m
-CONFIG_SCSI_VIRTIO=m
-CONFIG_SCSI_CHELSIO_FCOE=m
-CONFIG_SCSI_LOWLEVEL_PCMCIA=y
-CONFIG_PCMCIA_AHA152X=m
-CONFIG_PCMCIA_FDOMAIN=m
-CONFIG_PCMCIA_QLOGIC=m
-CONFIG_PCMCIA_SYM53C500=m
-CONFIG_SCSI_DH=y
-CONFIG_SCSI_DH_RDAC=m
-CONFIG_SCSI_DH_HP_SW=m
-CONFIG_SCSI_DH_EMC=m
-CONFIG_SCSI_DH_ALUA=m
-# end of SCSI device support
-
-CONFIG_ATA=y
-CONFIG_SATA_HOST=y
-CONFIG_PATA_TIMINGS=y
-CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_ATA_FORCE=y
-CONFIG_ATA_ACPI=y
-CONFIG_SATA_ZPODD=y
-CONFIG_SATA_PMP=y
-
-#
-# Controllers with non-SFF native interface
-#
-CONFIG_SATA_AHCI=m
-CONFIG_SATA_MOBILE_LPM_POLICY=0
-CONFIG_SATA_AHCI_PLATFORM=m
-CONFIG_SATA_INIC162X=m
-CONFIG_SATA_ACARD_AHCI=m
-CONFIG_SATA_SIL24=m
-CONFIG_ATA_SFF=y
-
-#
-# SFF controllers with custom DMA interface
-#
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
-CONFIG_SATA_SX4=m
-CONFIG_ATA_BMDMA=y
-
-#
-# SATA SFF controllers with BMDMA
-#
-CONFIG_ATA_PIIX=y
-CONFIG_SATA_DWC=m
-# CONFIG_SATA_DWC_OLD_DMA is not set
-# CONFIG_SATA_DWC_DEBUG is not set
-CONFIG_SATA_MV=m
-CONFIG_SATA_NV=m
-CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SIL=m
-CONFIG_SATA_SIS=m
-CONFIG_SATA_SVW=m
-CONFIG_SATA_ULI=m
-CONFIG_SATA_VIA=m
-CONFIG_SATA_VITESSE=m
-
-#
-# PATA SFF controllers with BMDMA
-#
-CONFIG_PATA_ALI=m
-CONFIG_PATA_AMD=m
-CONFIG_PATA_ARTOP=m
-CONFIG_PATA_ATIIXP=m
-CONFIG_PATA_ATP867X=m
-CONFIG_PATA_CMD64X=m
-CONFIG_PATA_CYPRESS=m
-CONFIG_PATA_EFAR=m
-CONFIG_PATA_HPT366=m
-CONFIG_PATA_HPT37X=m
-CONFIG_PATA_HPT3X2N=m
-CONFIG_PATA_HPT3X3=m
-# CONFIG_PATA_HPT3X3_DMA is not set
-CONFIG_PATA_IT8213=m
-CONFIG_PATA_IT821X=m
-CONFIG_PATA_JMICRON=m
-CONFIG_PATA_MARVELL=m
-CONFIG_PATA_NETCELL=m
-CONFIG_PATA_NINJA32=m
-CONFIG_PATA_NS87415=m
-CONFIG_PATA_OLDPIIX=m
-CONFIG_PATA_OPTIDMA=m
-CONFIG_PATA_PDC2027X=m
-CONFIG_PATA_PDC_OLD=m
-CONFIG_PATA_RADISYS=m
-CONFIG_PATA_RDC=m
-CONFIG_PATA_SCH=m
-CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_SIL680=m
-CONFIG_PATA_SIS=y
-CONFIG_PATA_TOSHIBA=m
-CONFIG_PATA_TRIFLEX=m
-CONFIG_PATA_VIA=m
-CONFIG_PATA_WINBOND=m
-
-#
-# PIO-only SFF controllers
-#
-CONFIG_PATA_CMD640_PCI=m
-CONFIG_PATA_MPIIX=m
-CONFIG_PATA_NS87410=m
-CONFIG_PATA_OPTI=m
-CONFIG_PATA_PCMCIA=m
-CONFIG_PATA_PLATFORM=m
-CONFIG_PATA_RZ1000=m
-
-#
-# Generic fallback / legacy drivers
-#
-CONFIG_PATA_ACPI=m
-CONFIG_ATA_GENERIC=y
-CONFIG_PATA_LEGACY=m
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=y
-CONFIG_MD_AUTODETECT=y
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-CONFIG_MD_CLUSTER=m
-CONFIG_BCACHE=m
-# CONFIG_BCACHE_DEBUG is not set
-# CONFIG_BCACHE_CLOSURES_DEBUG is not set
-# CONFIG_BCACHE_ASYNC_REGISTRATION is not set
-CONFIG_BLK_DEV_DM_BUILTIN=y
-CONFIG_BLK_DEV_DM=y
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_BUFIO=m
-# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
-CONFIG_DM_BIO_PRISON=m
-CONFIG_DM_PERSISTENT_DATA=m
-CONFIG_DM_UNSTRIPED=m
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_THIN_PROVISIONING=m
-CONFIG_DM_CACHE=m
-CONFIG_DM_CACHE_SMQ=m
-CONFIG_DM_WRITECACHE=m
-# CONFIG_DM_EBS is not set
-CONFIG_DM_ERA=m
-CONFIG_DM_CLONE=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_LOG_USERSPACE=m
-CONFIG_DM_RAID=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_QL=m
-CONFIG_DM_MULTIPATH_ST=m
-CONFIG_DM_MULTIPATH_HST=m
-CONFIG_DM_MULTIPATH_IOA=m
-CONFIG_DM_DELAY=m
-CONFIG_DM_DUST=m
-# CONFIG_DM_INIT is not set
-CONFIG_DM_UEVENT=y
-CONFIG_DM_FLAKEY=m
-CONFIG_DM_VERITY=m
-CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y
-# CONFIG_DM_VERITY_FEC is not set
-CONFIG_DM_SWITCH=m
-CONFIG_DM_LOG_WRITES=m
-CONFIG_DM_INTEGRITY=m
-CONFIG_DM_ZONED=m
-CONFIG_TARGET_CORE=m
-CONFIG_TCM_IBLOCK=m
-CONFIG_TCM_FILEIO=m
-CONFIG_TCM_PSCSI=m
-CONFIG_TCM_USER2=m
-CONFIG_LOOPBACK_TARGET=m
-CONFIG_TCM_FC=m
-CONFIG_ISCSI_TARGET=m
-CONFIG_ISCSI_TARGET_CXGB4=m
-CONFIG_SBP_TARGET=m
-CONFIG_FUSION=y
-CONFIG_FUSION_SPI=m
-CONFIG_FUSION_FC=m
-CONFIG_FUSION_SAS=m
-CONFIG_FUSION_MAX_SGE=128
-CONFIG_FUSION_CTL=m
-CONFIG_FUSION_LAN=m
-CONFIG_FUSION_LOGGING=y
-
-#
-# IEEE 1394 (FireWire) support
-#
-CONFIG_FIREWIRE=m
-CONFIG_FIREWIRE_OHCI=m
-CONFIG_FIREWIRE_SBP2=m
-CONFIG_FIREWIRE_NET=m
-CONFIG_FIREWIRE_NOSY=m
-# end of IEEE 1394 (FireWire) support
-
-CONFIG_MACINTOSH_DRIVERS=y
-CONFIG_MAC_EMUMOUSEBTN=m
-CONFIG_NETDEVICES=y
-CONFIG_MII=m
-CONFIG_NET_CORE=y
-CONFIG_BONDING=m
-CONFIG_DUMMY=m
-CONFIG_WIREGUARD=m
-# CONFIG_WIREGUARD_DEBUG is not set
-CONFIG_EQUALIZER=m
-CONFIG_NET_FC=y
-CONFIG_IFB=m
-CONFIG_NET_TEAM=m
-CONFIG_NET_TEAM_MODE_BROADCAST=m
-CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
-CONFIG_NET_TEAM_MODE_RANDOM=m
-CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
-CONFIG_NET_TEAM_MODE_LOADBALANCE=m
-CONFIG_MACVLAN=m
-CONFIG_MACVTAP=m
-CONFIG_IPVLAN_L3S=y
-CONFIG_IPVLAN=m
-CONFIG_IPVTAP=m
-CONFIG_VXLAN=m
-CONFIG_GENEVE=m
-CONFIG_BAREUDP=m
-CONFIG_GTP=m
-CONFIG_MACSEC=m
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_NTB_NETDEV=m
-CONFIG_RIONET=m
-CONFIG_RIONET_TX_SIZE=128
-CONFIG_RIONET_RX_SIZE=128
-CONFIG_TUN=y
-CONFIG_TAP=m
-# CONFIG_TUN_VNET_CROSS_LE is not set
-CONFIG_VETH=m
-CONFIG_VIRTIO_NET=y
-CONFIG_NLMON=m
-CONFIG_NET_VRF=m
-CONFIG_VSOCKMON=m
-CONFIG_MHI_NET=m
-CONFIG_SUNGEM_PHY=m
-CONFIG_ARCNET=m
-CONFIG_ARCNET_1201=m
-CONFIG_ARCNET_1051=m
-CONFIG_ARCNET_RAW=m
-CONFIG_ARCNET_CAP=m
-CONFIG_ARCNET_COM90xx=m
-CONFIG_ARCNET_COM90xxIO=m
-CONFIG_ARCNET_RIM_I=m
-CONFIG_ARCNET_COM20020=m
-CONFIG_ARCNET_COM20020_PCI=m
-CONFIG_ARCNET_COM20020_CS=m
-CONFIG_ATM_DRIVERS=y
-CONFIG_ATM_DUMMY=m
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-# CONFIG_ATM_ENI_DEBUG is not set
-# CONFIG_ATM_ENI_TUNE_BURST is not set
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-# CONFIG_ATM_NICSTAR_USE_SUNI is not set
-# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-# CONFIG_ATM_FORE200E_USE_TASKLET is not set
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-CONFIG_ATM_HE=m
-CONFIG_ATM_HE_USE_SUNI=y
-CONFIG_ATM_SOLOS=m
-CONFIG_CAIF_DRIVERS=y
-CONFIG_CAIF_TTY=m
-CONFIG_CAIF_HSI=m
-CONFIG_CAIF_VIRTIO=m
-
-#
-# Distributed Switch Architecture drivers
-#
-CONFIG_B53=m
-CONFIG_B53_SPI_DRIVER=m
-CONFIG_B53_MDIO_DRIVER=m
-CONFIG_B53_MMAP_DRIVER=m
-CONFIG_B53_SRAB_DRIVER=m
-CONFIG_B53_SERDES=m
-CONFIG_NET_DSA_BCM_SF2=m
-# CONFIG_NET_DSA_LOOP is not set
-CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK=m
-CONFIG_NET_DSA_LANTIQ_GSWIP=m
-CONFIG_NET_DSA_MT7530=m
-CONFIG_NET_DSA_MV88E6060=m
-CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON=m
-CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
-CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C=m
-CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
-CONFIG_NET_DSA_MICROCHIP_KSZ8795=m
-CONFIG_NET_DSA_MICROCHIP_KSZ8795_SPI=m
-CONFIG_NET_DSA_MICROCHIP_KSZ8863_SMI=m
-CONFIG_NET_DSA_MV88E6XXX=m
-# CONFIG_NET_DSA_MV88E6XXX_PTP is not set
-CONFIG_NET_DSA_MSCC_SEVILLE=m
-CONFIG_NET_DSA_AR9331=m
-CONFIG_NET_DSA_SJA1105=m
-CONFIG_NET_DSA_SJA1105_PTP=y
-# CONFIG_NET_DSA_SJA1105_TAS is not set
-CONFIG_NET_DSA_XRS700X=m
-CONFIG_NET_DSA_XRS700X_I2C=m
-CONFIG_NET_DSA_XRS700X_MDIO=m
-CONFIG_NET_DSA_QCA8K=m
-CONFIG_NET_DSA_REALTEK_SMI=m
-CONFIG_NET_DSA_SMSC_LAN9303=m
-CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
-CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
-CONFIG_NET_DSA_VITESSE_VSC73XX=m
-CONFIG_NET_DSA_VITESSE_VSC73XX_SPI=m
-CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM=m
-# end of Distributed Switch Architecture drivers
-
-CONFIG_ETHERNET=y
-CONFIG_MDIO=m
-CONFIG_NET_VENDOR_3COM=y
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_3C589=m
-CONFIG_VORTEX=m
-CONFIG_TYPHOON=m
-CONFIG_NET_VENDOR_ADAPTEC=y
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_NET_VENDOR_AGERE=y
-CONFIG_ET131X=m
-CONFIG_NET_VENDOR_ALACRITECH=y
-CONFIG_SLICOSS=m
-CONFIG_NET_VENDOR_ALTEON=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_ALTERA_TSE=m
-CONFIG_NET_VENDOR_AMAZON=y
-CONFIG_ENA_ETHERNET=m
-CONFIG_NET_VENDOR_AMD=y
-CONFIG_AMD8111_ETH=m
-CONFIG_PCNET32=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_AMD_XGBE=m
-# CONFIG_AMD_XGBE_DCB is not set
-CONFIG_AMD_XGBE_HAVE_ECC=y
-CONFIG_NET_VENDOR_AQUANTIA=y
-CONFIG_AQTION=m
-CONFIG_NET_VENDOR_ARC=y
-CONFIG_NET_VENDOR_ATHEROS=y
-CONFIG_ATL2=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_ALX=m
-CONFIG_NET_VENDOR_BROADCOM=y
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_BCMGENET=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_TIGON3=m
-CONFIG_TIGON3_HWMON=y
-CONFIG_BNX2X=m
-CONFIG_BNX2X_SRIOV=y
-# CONFIG_SYSTEMPORT is not set
-CONFIG_BNXT=m
-CONFIG_BNXT_SRIOV=y
-CONFIG_BNXT_FLOWER_OFFLOAD=y
-# CONFIG_BNXT_DCB is not set
-CONFIG_BNXT_HWMON=y
-CONFIG_NET_VENDOR_BROCADE=y
-CONFIG_BNA=m
-CONFIG_NET_VENDOR_CADENCE=y
-CONFIG_MACB=m
-CONFIG_MACB_USE_HWSTAMP=y
-CONFIG_MACB_PCI=m
-CONFIG_NET_VENDOR_CAVIUM=y
-CONFIG_THUNDER_NIC_PF=m
-CONFIG_THUNDER_NIC_VF=m
-CONFIG_THUNDER_NIC_BGX=m
-CONFIG_THUNDER_NIC_RGX=m
-CONFIG_CAVIUM_PTP=m
-CONFIG_LIQUIDIO=m
-CONFIG_LIQUIDIO_VF=m
-CONFIG_NET_VENDOR_CHELSIO=y
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3=m
-CONFIG_CHELSIO_T4=m
-CONFIG_CHELSIO_T4_DCB=y
-CONFIG_CHELSIO_T4_FCOE=y
-CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_LIB=m
-CONFIG_CHELSIO_INLINE_CRYPTO=y
-# CONFIG_CHELSIO_IPSEC_INLINE is not set
-CONFIG_NET_VENDOR_CISCO=y
-CONFIG_ENIC=m
-# CONFIG_NET_VENDOR_CORTINA is not set
-CONFIG_CX_ECAT=m
-CONFIG_DNET=m
-CONFIG_NET_VENDOR_DEC=y
-CONFIG_NET_TULIP=y
-CONFIG_DE2104X=m
-CONFIG_DE2104X_DSL=0
-CONFIG_TULIP=m
-# CONFIG_TULIP_MWI is not set
-# CONFIG_TULIP_MMIO is not set
-# CONFIG_TULIP_NAPI is not set
-CONFIG_DE4X5=m
-CONFIG_WINBOND_840=m
-CONFIG_DM9102=m
-CONFIG_ULI526X=m
-CONFIG_PCMCIA_XIRCOM=m
-CONFIG_NET_VENDOR_DLINK=y
-CONFIG_DL2K=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_NET_VENDOR_EMULEX=y
-CONFIG_BE2NET=m
-CONFIG_BE2NET_HWMON=y
-CONFIG_BE2NET_BE2=y
-CONFIG_BE2NET_BE3=y
-CONFIG_BE2NET_LANCER=y
-CONFIG_BE2NET_SKYHAWK=y
-CONFIG_NET_VENDOR_EZCHIP=y
-CONFIG_NET_VENDOR_FUJITSU=y
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_NET_VENDOR_GOOGLE=y
-CONFIG_GVE=m
-CONFIG_NET_VENDOR_HUAWEI=y
-CONFIG_HINIC=m
-CONFIG_NET_VENDOR_I825XX=y
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_E100=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_E1000E_HWTS=y
-CONFIG_IGB=m
-CONFIG_IGB_HWMON=y
-CONFIG_IGB_DCA=y
-CONFIG_IGBVF=m
-CONFIG_IXGB=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_HWMON=y
-CONFIG_IXGBE_DCA=y
-CONFIG_IXGBE_DCB=y
-CONFIG_IXGBE_IPSEC=y
-CONFIG_IXGBEVF=m
-CONFIG_IXGBEVF_IPSEC=y
-CONFIG_I40E=m
-CONFIG_I40E_DCB=y
-CONFIG_IAVF=m
-CONFIG_I40EVF=m
-CONFIG_ICE=m
-CONFIG_FM10K=m
-CONFIG_IGC=m
-CONFIG_NET_VENDOR_MICROSOFT=y
-CONFIG_MICROSOFT_MANA=m
-CONFIG_JME=m
-CONFIG_NET_VENDOR_MARVELL=y
-CONFIG_MVMDIO=m
-CONFIG_SKGE=m
-# CONFIG_SKGE_DEBUG is not set
-CONFIG_SKGE_GENESIS=y
-CONFIG_SKY2=m
-# CONFIG_SKY2_DEBUG is not set
-CONFIG_PRESTERA=m
-CONFIG_PRESTERA_PCI=m
-CONFIG_NET_VENDOR_MELLANOX=y
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_EN_DCB=y
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_MLX4_CORE_GEN2=y
-CONFIG_MLX5_CORE=m
-CONFIG_MLX5_ACCEL=y
-# CONFIG_MLX5_FPGA is not set
-CONFIG_MLX5_CORE_EN=y
-CONFIG_MLX5_EN_ARFS=y
-CONFIG_MLX5_EN_RXNFC=y
-CONFIG_MLX5_MPFS=y
-CONFIG_MLX5_ESWITCH=y
-CONFIG_MLX5_CLS_ACT=y
-CONFIG_MLX5_TC_SAMPLE=y
-CONFIG_MLX5_CORE_EN_DCB=y
-# CONFIG_MLX5_CORE_IPOIB is not set
-CONFIG_MLX5_IPSEC=y
-CONFIG_MLX5_EN_IPSEC=y
-CONFIG_MLX5_SW_STEERING=y
-CONFIG_MLX5_SF=y
-CONFIG_MLX5_SF_MANAGER=y
-CONFIG_MLXSW_CORE=m
-CONFIG_MLXSW_CORE_HWMON=y
-CONFIG_MLXSW_CORE_THERMAL=y
-CONFIG_MLXSW_PCI=m
-CONFIG_MLXSW_I2C=m
-CONFIG_MLXSW_SWITCHIB=m
-CONFIG_MLXSW_SWITCHX2=m
-CONFIG_MLXSW_SPECTRUM=m
-CONFIG_MLXSW_SPECTRUM_DCB=y
-CONFIG_MLXSW_MINIMAL=m
-CONFIG_MLXFW=m
-CONFIG_NET_VENDOR_MICREL=y
-CONFIG_KS8842=m
-CONFIG_KS8851=m
-CONFIG_KS8851_MLL=m
-CONFIG_KSZ884X_PCI=m
-CONFIG_NET_VENDOR_MICROCHIP=y
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_ENCX24J600=m
-CONFIG_LAN743X=m
-CONFIG_NET_VENDOR_MICROSEMI=y
-CONFIG_MSCC_OCELOT_SWITCH_LIB=m
-CONFIG_NET_VENDOR_MYRI=y
-CONFIG_MYRI10GE=m
-CONFIG_MYRI10GE_DCA=y
-CONFIG_FEALNX=m
-CONFIG_NET_VENDOR_NATSEMI=y
-CONFIG_NATSEMI=m
-CONFIG_NS83820=m
-CONFIG_NET_VENDOR_NETERION=y
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_NET_VENDOR_NETRONOME=y
-CONFIG_NFP=m
-# CONFIG_NFP_APP_FLOWER is not set
-CONFIG_NFP_APP_ABM_NIC=y
-# CONFIG_NFP_DEBUG is not set
-CONFIG_NET_VENDOR_NI=y
-CONFIG_NI_XGE_MANAGEMENT_ENET=m
-CONFIG_NET_VENDOR_8390=y
-CONFIG_PCMCIA_AXNET=m
-CONFIG_NE2K_PCI=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_NET_VENDOR_NVIDIA=y
-CONFIG_FORCEDETH=m
-CONFIG_NET_VENDOR_OKI=y
-CONFIG_ETHOC=m
-CONFIG_NET_VENDOR_PACKET_ENGINES=y
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_NET_VENDOR_PENSANDO=y
-CONFIG_IONIC=m
-CONFIG_NET_VENDOR_QLOGIC=y
-CONFIG_QLA3XXX=m
-CONFIG_QLCNIC=m
-CONFIG_QLCNIC_SRIOV=y
-CONFIG_QLCNIC_DCB=y
-CONFIG_QLCNIC_HWMON=y
-CONFIG_NETXEN_NIC=m
-CONFIG_QED=m
-CONFIG_QED_LL2=y
-CONFIG_QED_SRIOV=y
-CONFIG_QEDE=m
-CONFIG_QED_RDMA=y
-CONFIG_QED_ISCSI=y
-CONFIG_QED_FCOE=y
-CONFIG_QED_OOO=y
-CONFIG_NET_VENDOR_QUALCOMM=y
-CONFIG_QCOM_EMAC=m
-CONFIG_RMNET=m
-CONFIG_NET_VENDOR_RDC=y
-CONFIG_R6040=m
-CONFIG_NET_VENDOR_REALTEK=y
-CONFIG_ATP=m
-CONFIG_8139CP=m
-CONFIG_8139TOO=m
-CONFIG_8139TOO_PIO=y
-# CONFIG_8139TOO_TUNE_TWISTER is not set
-CONFIG_8139TOO_8129=y
-# CONFIG_8139_OLD_RX_RESET is not set
-CONFIG_R8169=m
-CONFIG_NET_VENDOR_RENESAS=y
-CONFIG_NET_VENDOR_ROCKER=y
-CONFIG_ROCKER=m
-CONFIG_NET_VENDOR_SAMSUNG=y
-CONFIG_SXGBE_ETH=m
-CONFIG_NET_VENDOR_SEEQ=y
-CONFIG_NET_VENDOR_SOLARFLARE=y
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_SFC_MCDI_MON=y
-CONFIG_SFC_SRIOV=y
-CONFIG_SFC_MCDI_LOGGING=y
-CONFIG_SFC_FALCON=m
-CONFIG_SFC_FALCON_MTD=y
-CONFIG_NET_VENDOR_SILAN=y
-CONFIG_SC92031=m
-CONFIG_NET_VENDOR_SIS=y
-CONFIG_SIS900=m
-CONFIG_SIS190=m
-CONFIG_NET_VENDOR_SMSC=y
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_EPIC100=m
-CONFIG_SMSC911X=m
-CONFIG_SMSC9420=m
-# CONFIG_NET_VENDOR_SOCIONEXT is not set
-CONFIG_NET_VENDOR_STMICRO=y
-CONFIG_STMMAC_ETH=m
-# CONFIG_STMMAC_SELFTESTS is not set
-CONFIG_STMMAC_PLATFORM=m
-CONFIG_DWMAC_GENERIC=m
-CONFIG_DWMAC_INTEL=m
-# CONFIG_STMMAC_PCI is not set
-CONFIG_NET_VENDOR_SUN=y
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
-CONFIG_NIU=m
-CONFIG_NET_VENDOR_SYNOPSYS=y
-CONFIG_DWC_XLGMAC=m
-CONFIG_DWC_XLGMAC_PCI=m
-CONFIG_NET_VENDOR_TEHUTI=y
-CONFIG_TEHUTI=m
-CONFIG_NET_VENDOR_TI=y
-# CONFIG_TI_CPSW_PHY_SEL is not set
-CONFIG_TLAN=m
-CONFIG_NET_VENDOR_VIA=y
-CONFIG_VIA_RHINE=m
-CONFIG_VIA_RHINE_MMIO=y
-CONFIG_VIA_VELOCITY=m
-CONFIG_NET_VENDOR_WIZNET=y
-CONFIG_WIZNET_W5100=m
-CONFIG_WIZNET_W5300=m
-# CONFIG_WIZNET_BUS_DIRECT is not set
-# CONFIG_WIZNET_BUS_INDIRECT is not set
-CONFIG_WIZNET_BUS_ANY=y
-# CONFIG_WIZNET_W5100_SPI is not set
-CONFIG_NET_VENDOR_XILINX=y
-CONFIG_XILINX_EMACLITE=m
-CONFIG_XILINX_AXI_EMAC=m
-CONFIG_XILINX_LL_TEMAC=m
-CONFIG_NET_VENDOR_XIRCOM=y
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_FDDI=y
-CONFIG_DEFXX=m
-CONFIG_SKFP=m
-# CONFIG_HIPPI is not set
-CONFIG_NET_SB1000=m
-CONFIG_PHYLINK=m
-CONFIG_PHYLIB=y
-CONFIG_SWPHY=y
-# CONFIG_LED_TRIGGER_PHY is not set
-CONFIG_FIXED_PHY=y
-CONFIG_SFP=m
-
-#
-# MII PHY device drivers
-#
-CONFIG_AMD_PHY=m
-CONFIG_ADIN_PHY=m
-CONFIG_AQUANTIA_PHY=m
-CONFIG_AX88796B_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_BCM54140_PHY=m
-CONFIG_BCM7XXX_PHY=m
-CONFIG_BCM84881_PHY=m
-CONFIG_BCM87XX_PHY=m
-CONFIG_BCM_NET_PHYLIB=m
-CONFIG_CICADA_PHY=m
-CONFIG_CORTINA_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_INTEL_XWAY_PHY=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_MARVELL_PHY=m
-CONFIG_MARVELL_10G_PHY=m
-CONFIG_MARVELL_88X2222_PHY=m
-CONFIG_MICREL_PHY=m
-CONFIG_MICROCHIP_PHY=m
-CONFIG_MICROCHIP_T1_PHY=m
-CONFIG_MICROSEMI_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_NXP_C45_TJA11XX_PHY=m
-CONFIG_NXP_TJA11XX_PHY=m
-CONFIG_AT803X_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_RENESAS_PHY=m
-CONFIG_ROCKCHIP_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_STE10XP=m
-CONFIG_TERANETICS_PHY=m
-CONFIG_DP83822_PHY=m
-CONFIG_DP83TC811_PHY=m
-CONFIG_DP83848_PHY=m
-CONFIG_DP83867_PHY=m
-CONFIG_DP83869_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_XILINX_GMII2RGMII=m
-CONFIG_MICREL_KS8995MA=m
-CONFIG_MDIO_DEVICE=y
-CONFIG_MDIO_BUS=y
-CONFIG_MDIO_DEVRES=y
-CONFIG_MDIO_BITBANG=m
-CONFIG_MDIO_BCM_UNIMAC=m
-CONFIG_MDIO_CAVIUM=m
-CONFIG_MDIO_GPIO=m
-CONFIG_MDIO_I2C=m
-CONFIG_MDIO_MVUSB=m
-CONFIG_MDIO_MSCC_MIIM=m
-CONFIG_MDIO_THUNDER=m
-
-#
-# MDIO Multiplexers
-#
-
-#
-# PCS device drivers
-#
-CONFIG_PCS_XPCS=m
-CONFIG_PCS_LYNX=m
-# end of PCS device drivers
-
-CONFIG_PLIP=m
-CONFIG_PPP=y
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOATM=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOL2TP=m
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_SLIP=m
-CONFIG_SLHC=y
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-CONFIG_USB_NET_DRIVERS=m
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_RTL8152=m
-CONFIG_USB_LAN78XX=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_AX88179_178A=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_CDC_EEM=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_HUAWEI_CDC_NCM=m
-CONFIG_USB_NET_CDC_MBIM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SR9700=m
-CONFIG_USB_NET_SR9800=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_NET_QMI_WWAN=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_USB_NET_CH9200=m
-CONFIG_USB_NET_AQC111=m
-CONFIG_USB_RTL8153_ECM=m
-CONFIG_WLAN=y
-CONFIG_WLAN_VENDOR_ADMTEK=y
-CONFIG_ADM8211=m
-CONFIG_ATH_COMMON=m
-CONFIG_WLAN_VENDOR_ATH=y
-# CONFIG_ATH_DEBUG is not set
-CONFIG_ATH5K=m
-# CONFIG_ATH5K_DEBUG is not set
-# CONFIG_ATH5K_TRACER is not set
-CONFIG_ATH5K_PCI=y
-CONFIG_ATH9K_HW=m
-CONFIG_ATH9K_COMMON=m
-CONFIG_ATH9K_COMMON_DEBUG=y
-CONFIG_ATH9K_BTCOEX_SUPPORT=y
-CONFIG_ATH9K=m
-CONFIG_ATH9K_PCI=y
-CONFIG_ATH9K_AHB=y
-CONFIG_ATH9K_DEBUGFS=y
-CONFIG_ATH9K_STATION_STATISTICS=y
-# CONFIG_ATH9K_DYNACK is not set
-CONFIG_ATH9K_WOW=y
-CONFIG_ATH9K_RFKILL=y
-CONFIG_ATH9K_CHANNEL_CONTEXT=y
-CONFIG_ATH9K_PCOEM=y
-CONFIG_ATH9K_PCI_NO_EEPROM=m
-CONFIG_ATH9K_HTC=m
-CONFIG_ATH9K_HTC_DEBUGFS=y
-CONFIG_ATH9K_HWRNG=y
-# CONFIG_ATH9K_COMMON_SPECTRAL is not set
-CONFIG_CARL9170=m
-CONFIG_CARL9170_LEDS=y
-# CONFIG_CARL9170_DEBUGFS is not set
-CONFIG_CARL9170_WPC=y
-CONFIG_CARL9170_HWRNG=y
-CONFIG_ATH6KL=m
-CONFIG_ATH6KL_SDIO=m
-CONFIG_ATH6KL_USB=m
-# CONFIG_ATH6KL_DEBUG is not set
-# CONFIG_ATH6KL_TRACING is not set
-CONFIG_AR5523=m
-CONFIG_WIL6210=m
-CONFIG_WIL6210_ISR_COR=y
-CONFIG_WIL6210_TRACING=y
-CONFIG_WIL6210_DEBUGFS=y
-CONFIG_ATH10K=m
-CONFIG_ATH10K_CE=y
-CONFIG_ATH10K_PCI=m
-CONFIG_ATH10K_SDIO=m
-CONFIG_ATH10K_USB=m
-# CONFIG_ATH10K_DEBUG is not set
-CONFIG_ATH10K_DEBUGFS=y
-# CONFIG_ATH10K_SPECTRAL is not set
-CONFIG_ATH10K_TRACING=y
-CONFIG_WCN36XX=m
-# CONFIG_WCN36XX_DEBUGFS is not set
-CONFIG_ATH11K=m
-CONFIG_ATH11K_PCI=m
-# CONFIG_ATH11K_DEBUG is not set
-# CONFIG_ATH11K_DEBUGFS is not set
-# CONFIG_ATH11K_TRACING is not set
-CONFIG_WLAN_VENDOR_ATMEL=y
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_PCMCIA_ATMEL=m
-CONFIG_AT76C50X_USB=m
-CONFIG_WLAN_VENDOR_BROADCOM=y
-CONFIG_B43=m
-CONFIG_B43_BCMA=y
-CONFIG_B43_SSB=y
-CONFIG_B43_BUSES_BCMA_AND_SSB=y
-# CONFIG_B43_BUSES_BCMA is not set
-# CONFIG_B43_BUSES_SSB is not set
-CONFIG_B43_PCI_AUTOSELECT=y
-CONFIG_B43_PCICORE_AUTOSELECT=y
-# CONFIG_B43_SDIO is not set
-CONFIG_B43_BCMA_PIO=y
-CONFIG_B43_PIO=y
-CONFIG_B43_PHY_G=y
-CONFIG_B43_PHY_N=y
-CONFIG_B43_PHY_LP=y
-CONFIG_B43_PHY_HT=y
-CONFIG_B43_LEDS=y
-CONFIG_B43_HWRNG=y
-# CONFIG_B43_DEBUG is not set
-CONFIG_B43LEGACY=m
-CONFIG_B43LEGACY_PCI_AUTOSELECT=y
-CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
-CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_HWRNG=y
-# CONFIG_B43LEGACY_DEBUG is not set
-CONFIG_B43LEGACY_DMA=y
-CONFIG_B43LEGACY_PIO=y
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# CONFIG_B43LEGACY_DMA_MODE is not set
-# CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMSMAC=m
-CONFIG_BRCMFMAC=m
-CONFIG_BRCMFMAC_PROTO_BCDC=y
-CONFIG_BRCMFMAC_PROTO_MSGBUF=y
-CONFIG_BRCMFMAC_SDIO=y
-CONFIG_BRCMFMAC_USB=y
-CONFIG_BRCMFMAC_PCIE=y
-CONFIG_BRCM_TRACING=y
-# CONFIG_BRCMDBG is not set
-CONFIG_WLAN_VENDOR_CISCO=y
-CONFIG_AIRO=m
-CONFIG_AIRO_CS=m
-CONFIG_WLAN_VENDOR_INTEL=y
-CONFIG_IPW2100=m
-CONFIG_IPW2100_MONITOR=y
-# CONFIG_IPW2100_DEBUG is not set
-CONFIG_IPW2200=m
-CONFIG_IPW2200_MONITOR=y
-CONFIG_IPW2200_RADIOTAP=y
-CONFIG_IPW2200_PROMISCUOUS=y
-CONFIG_IPW2200_QOS=y
-# CONFIG_IPW2200_DEBUG is not set
-CONFIG_LIBIPW=m
-# CONFIG_LIBIPW_DEBUG is not set
-CONFIG_IWLEGACY=m
-CONFIG_IWL4965=m
-CONFIG_IWL3945=m
-
-#
-# iwl3945 / iwl4965 Debugging Options
-#
-# CONFIG_IWLEGACY_DEBUG is not set
-CONFIG_IWLEGACY_DEBUGFS=y
-# end of iwl3945 / iwl4965 Debugging Options
-
-CONFIG_IWLWIFI=m
-CONFIG_IWLWIFI_LEDS=y
-CONFIG_IWLDVM=m
-CONFIG_IWLMVM=m
-CONFIG_IWLWIFI_OPMODE_MODULAR=y
-# CONFIG_IWLWIFI_BCAST_FILTERING is not set
-
-#
-# Debugging Options
-#
-# CONFIG_IWLWIFI_DEBUG is not set
-CONFIG_IWLWIFI_DEBUGFS=y
-CONFIG_IWLWIFI_DEVICE_TRACING=y
-# end of Debugging Options
-
-CONFIG_WLAN_VENDOR_INTERSIL=y
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-CONFIG_HOSTAP_FIRMWARE_NVRAM=y
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
-CONFIG_HERMES=m
-# CONFIG_HERMES_PRISM is not set
-CONFIG_HERMES_CACHE_FW_ON_INIT=y
-CONFIG_PLX_HERMES=m
-CONFIG_TMD_HERMES=m
-CONFIG_NORTEL_HERMES=m
-CONFIG_PCMCIA_HERMES=m
-CONFIG_PCMCIA_SPECTRUM=m
-CONFIG_ORINOCO_USB=m
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-CONFIG_P54_PCI=m
-CONFIG_P54_SPI=m
-# CONFIG_P54_SPI_DEFAULT_EEPROM is not set
-CONFIG_P54_LEDS=y
-# CONFIG_PRISM54 is not set
-CONFIG_WLAN_VENDOR_MARVELL=y
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_CS=m
-CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_LIBERTAS_MESH=y
-CONFIG_LIBERTAS_THINFIRM=m
-# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_MWIFIEX=m
-CONFIG_MWIFIEX_SDIO=m
-CONFIG_MWIFIEX_PCIE=m
-CONFIG_MWIFIEX_USB=m
-CONFIG_MWL8K=m
-CONFIG_WLAN_VENDOR_MEDIATEK=y
-CONFIG_MT7601U=m
-# CONFIG_MT76x0U is not set
-# CONFIG_MT76x0E is not set
-# CONFIG_MT76x2E is not set
-# CONFIG_MT76x2U is not set
-# CONFIG_MT7603E is not set
-# CONFIG_MT7615E is not set
-# CONFIG_MT7663U is not set
-# CONFIG_MT7663S is not set
-# CONFIG_MT7915E is not set
-# CONFIG_MT7921E is not set
-CONFIG_WLAN_VENDOR_MICROCHIP=y
-CONFIG_WILC1000=m
-CONFIG_WILC1000_SDIO=m
-CONFIG_WILC1000_SPI=m
-# CONFIG_WILC1000_HW_OOB_INTR is not set
-CONFIG_WLAN_VENDOR_RALINK=y
-CONFIG_RT2X00=m
-CONFIG_RT2400PCI=m
-CONFIG_RT2500PCI=m
-CONFIG_RT61PCI=m
-CONFIG_RT2800PCI=m
-CONFIG_RT2800PCI_RT33XX=y
-CONFIG_RT2800PCI_RT35XX=y
-CONFIG_RT2800PCI_RT53XX=y
-CONFIG_RT2800PCI_RT3290=y
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT33XX=y
-CONFIG_RT2800USB_RT35XX=y
-CONFIG_RT2800USB_RT3573=y
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_RT55XX=y
-CONFIG_RT2800USB_UNKNOWN=y
-CONFIG_RT2800_LIB=m
-CONFIG_RT2800_LIB_MMIO=m
-CONFIG_RT2X00_LIB_MMIO=m
-CONFIG_RT2X00_LIB_PCI=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_LEDS=y
-# CONFIG_RT2X00_LIB_DEBUGFS is not set
-# CONFIG_RT2X00_DEBUG is not set
-CONFIG_WLAN_VENDOR_REALTEK=y
-CONFIG_RTL8180=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-CONFIG_RTL_CARDS=m
-CONFIG_RTL8192CE=m
-CONFIG_RTL8192SE=m
-CONFIG_RTL8192DE=m
-CONFIG_RTL8723AE=m
-CONFIG_RTL8723BE=m
-CONFIG_RTL8188EE=m
-CONFIG_RTL8192EE=m
-CONFIG_RTL8821AE=m
-CONFIG_RTL8192CU=m
-CONFIG_RTLWIFI=m
-CONFIG_RTLWIFI_PCI=m
-CONFIG_RTLWIFI_USB=m
-# CONFIG_RTLWIFI_DEBUG is not set
-CONFIG_RTL8192C_COMMON=m
-CONFIG_RTL8723_COMMON=m
-CONFIG_RTLBTCOEXIST=m
-CONFIG_RTL8XXXU=m
-CONFIG_RTL8XXXU_UNTESTED=y
-CONFIG_RTW88=m
-CONFIG_RTW88_CORE=m
-CONFIG_RTW88_PCI=m
-CONFIG_RTW88_8822B=m
-CONFIG_RTW88_8822C=m
-CONFIG_RTW88_8723D=m
-CONFIG_RTW88_8821C=m
-CONFIG_RTW88_8822BE=m
-CONFIG_RTW88_8822CE=m
-CONFIG_RTW88_8723DE=m
-CONFIG_RTW88_8821CE=m
-# CONFIG_RTW88_DEBUG is not set
-# CONFIG_RTW88_DEBUGFS is not set
-CONFIG_WLAN_VENDOR_RSI=y
-CONFIG_RSI_91X=m
-# CONFIG_RSI_DEBUGFS is not set
-CONFIG_RSI_SDIO=m
-CONFIG_RSI_USB=m
-CONFIG_RSI_COEX=y
-CONFIG_WLAN_VENDOR_ST=y
-CONFIG_CW1200=m
-CONFIG_CW1200_WLAN_SDIO=m
-CONFIG_CW1200_WLAN_SPI=m
-CONFIG_WLAN_VENDOR_TI=y
-CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL12XX=m
-CONFIG_WL18XX=m
-CONFIG_WLCORE=m
-CONFIG_WLCORE_SDIO=m
-CONFIG_WILINK_PLATFORM_DATA=y
-CONFIG_WLAN_VENDOR_ZYDAS=y
-CONFIG_USB_ZD1201=m
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_WLAN_VENDOR_QUANTENNA=y
-CONFIG_QTNFMAC=m
-CONFIG_QTNFMAC_PCIE=m
-CONFIG_PCMCIA_RAYCS=m
-CONFIG_PCMCIA_WL3501=m
-CONFIG_MAC80211_HWSIM=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-CONFIG_VIRT_WIFI=m
-CONFIG_WAN=y
-CONFIG_LANMEDIA=m
-CONFIG_HDLC=m
-CONFIG_HDLC_RAW=m
-CONFIG_HDLC_RAW_ETH=m
-CONFIG_HDLC_CISCO=m
-CONFIG_HDLC_FR=m
-CONFIG_HDLC_PPP=m
-CONFIG_HDLC_X25=m
-CONFIG_PCI200SYN=m
-CONFIG_WANXL=m
-CONFIG_PC300TOO=m
-CONFIG_FARSYNC=m
-CONFIG_LAPBETHER=m
-CONFIG_SBNI=m
-# CONFIG_SBNI_MULTILINE is not set
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKELB=m
-CONFIG_IEEE802154_AT86RF230=m
-CONFIG_IEEE802154_AT86RF230_DEBUGFS=y
-CONFIG_IEEE802154_MRF24J40=m
-CONFIG_IEEE802154_CC2520=m
-CONFIG_IEEE802154_ATUSB=m
-CONFIG_IEEE802154_ADF7242=m
-CONFIG_IEEE802154_CA8210=m
-# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
-CONFIG_IEEE802154_MCR20A=m
-# CONFIG_IEEE802154_HWSIM is not set
-CONFIG_WWAN=y
-CONFIG_WWAN_CORE=y
-CONFIG_MHI_WWAN_CTRL=m
-CONFIG_XEN_NETDEV_FRONTEND=y
-CONFIG_XEN_NETDEV_BACKEND=m
-CONFIG_VMXNET3=m
-CONFIG_FUJITSU_ES=m
-CONFIG_USB4_NET=m
-CONFIG_HYPERV_NET=m
-CONFIG_NETDEVSIM=m
-CONFIG_NET_FAILOVER=y
-CONFIG_ISDN=y
-CONFIG_ISDN_CAPI=y
-CONFIG_CAPI_TRACE=y
-CONFIG_ISDN_CAPI_MIDDLEWARE=y
-CONFIG_MISDN=m
-CONFIG_MISDN_DSP=m
-CONFIG_MISDN_L1OIP=m
-
-#
-# mISDN hardware drivers
-#
-CONFIG_MISDN_HFCPCI=m
-CONFIG_MISDN_HFCMULTI=m
-CONFIG_MISDN_HFCUSB=m
-CONFIG_MISDN_AVMFRITZ=m
-CONFIG_MISDN_SPEEDFAX=m
-CONFIG_MISDN_INFINEON=m
-CONFIG_MISDN_W6692=m
-CONFIG_MISDN_NETJET=m
-CONFIG_MISDN_HDLC=m
-CONFIG_MISDN_IPAC=m
-CONFIG_MISDN_ISAR=m
-CONFIG_NVM=y
-CONFIG_NVM_PBLK=m
-# CONFIG_NVM_PBLK_DEBUG is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_LEDS=m
-CONFIG_INPUT_FF_MEMLESS=m
-CONFIG_INPUT_SPARSEKMAP=m
-CONFIG_INPUT_MATRIXKMAP=m
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ADC=m
-CONFIG_KEYBOARD_ADP5520=m
-CONFIG_KEYBOARD_ADP5588=m
-CONFIG_KEYBOARD_ADP5589=m
-CONFIG_KEYBOARD_APPLESPI=m
-CONFIG_KEYBOARD_ATKBD=y
-CONFIG_KEYBOARD_QT1050=m
-CONFIG_KEYBOARD_QT1070=m
-CONFIG_KEYBOARD_QT2160=m
-CONFIG_KEYBOARD_DLINK_DIR685=m
-CONFIG_KEYBOARD_LKKBD=m
-CONFIG_KEYBOARD_GPIO=m
-CONFIG_KEYBOARD_GPIO_POLLED=m
-CONFIG_KEYBOARD_TCA6416=m
-CONFIG_KEYBOARD_TCA8418=m
-CONFIG_KEYBOARD_MATRIX=m
-CONFIG_KEYBOARD_LM8323=m
-CONFIG_KEYBOARD_LM8333=m
-CONFIG_KEYBOARD_MAX7359=m
-CONFIG_KEYBOARD_MCS=m
-CONFIG_KEYBOARD_MPR121=m
-CONFIG_KEYBOARD_NEWTON=m
-CONFIG_KEYBOARD_OPENCORES=m
-CONFIG_KEYBOARD_SAMSUNG=m
-CONFIG_KEYBOARD_STOWAWAY=m
-CONFIG_KEYBOARD_SUNKBD=m
-CONFIG_KEYBOARD_IQS62X=m
-CONFIG_KEYBOARD_TM2_TOUCHKEY=m
-CONFIG_KEYBOARD_TWL4030=m
-CONFIG_KEYBOARD_XTKBD=m
-CONFIG_KEYBOARD_CROS_EC=m
-CONFIG_KEYBOARD_MTK_PMIC=m
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=m
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_BYD=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
-CONFIG_MOUSE_PS2_CYPRESS=y
-CONFIG_MOUSE_PS2_LIFEBOOK=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-CONFIG_MOUSE_PS2_ELANTECH=y
-CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
-CONFIG_MOUSE_PS2_SENTELIC=y
-CONFIG_MOUSE_PS2_TOUCHKIT=y
-CONFIG_MOUSE_PS2_FOCALTECH=y
-CONFIG_MOUSE_PS2_VMMOUSE=y
-CONFIG_MOUSE_PS2_SMBUS=y
-CONFIG_MOUSE_SERIAL=m
-CONFIG_MOUSE_APPLETOUCH=m
-CONFIG_MOUSE_BCM5974=m
-CONFIG_MOUSE_CYAPA=m
-CONFIG_MOUSE_ELAN_I2C=m
-CONFIG_MOUSE_ELAN_I2C_I2C=y
-CONFIG_MOUSE_ELAN_I2C_SMBUS=y
-CONFIG_MOUSE_VSXXXAA=m
-CONFIG_MOUSE_GPIO=m
-CONFIG_MOUSE_SYNAPTICS_I2C=m
-CONFIG_MOUSE_SYNAPTICS_USB=m
-CONFIG_INPUT_JOYSTICK=y
-CONFIG_JOYSTICK_ANALOG=m
-CONFIG_JOYSTICK_A3D=m
-CONFIG_JOYSTICK_ADC=m
-CONFIG_JOYSTICK_ADI=m
-CONFIG_JOYSTICK_COBRA=m
-CONFIG_JOYSTICK_GF2K=m
-CONFIG_JOYSTICK_GRIP=m
-CONFIG_JOYSTICK_GRIP_MP=m
-CONFIG_JOYSTICK_GUILLEMOT=m
-CONFIG_JOYSTICK_INTERACT=m
-CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_TMDC=m
-CONFIG_JOYSTICK_IFORCE=m
-CONFIG_JOYSTICK_IFORCE_USB=m
-CONFIG_JOYSTICK_IFORCE_232=m
-CONFIG_JOYSTICK_WARRIOR=m
-CONFIG_JOYSTICK_MAGELLAN=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_STINGER=m
-CONFIG_JOYSTICK_TWIDJOY=m
-CONFIG_JOYSTICK_ZHENHUA=m
-CONFIG_JOYSTICK_DB9=m
-CONFIG_JOYSTICK_GAMECON=m
-CONFIG_JOYSTICK_TURBOGRAFX=m
-CONFIG_JOYSTICK_AS5011=m
-CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_XPAD_FF=y
-CONFIG_JOYSTICK_XPAD_LEDS=y
-CONFIG_JOYSTICK_WALKERA0701=m
-CONFIG_JOYSTICK_PSXPAD_SPI=m
-# CONFIG_JOYSTICK_PSXPAD_SPI_FF is not set
-CONFIG_JOYSTICK_PXRC=m
-CONFIG_JOYSTICK_FSIA6B=m
-CONFIG_INPUT_TABLET=y
-CONFIG_TABLET_USB_ACECAD=m
-CONFIG_TABLET_USB_AIPTEK=m
-CONFIG_TABLET_USB_HANWANG=m
-CONFIG_TABLET_USB_KBTAB=m
-CONFIG_TABLET_USB_PEGASUS=m
-CONFIG_TABLET_SERIAL_WACOM4=m
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_88PM860X=m
-CONFIG_TOUCHSCREEN_ADS7846=m
-CONFIG_TOUCHSCREEN_AD7877=m
-CONFIG_TOUCHSCREEN_AD7879=m
-CONFIG_TOUCHSCREEN_AD7879_I2C=m
-CONFIG_TOUCHSCREEN_AD7879_SPI=m
-CONFIG_TOUCHSCREEN_ADC=m
-CONFIG_TOUCHSCREEN_ATMEL_MXT=m
-# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
-CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
-CONFIG_TOUCHSCREEN_BU21013=m
-CONFIG_TOUCHSCREEN_BU21029=m
-CONFIG_TOUCHSCREEN_CHIPONE_ICN8505=m
-CONFIG_TOUCHSCREEN_CY8CTMA140=m
-CONFIG_TOUCHSCREEN_CY8CTMG110=m
-CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
-CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
-CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
-CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
-CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
-CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
-CONFIG_TOUCHSCREEN_DA9034=m
-CONFIG_TOUCHSCREEN_DA9052=m
-CONFIG_TOUCHSCREEN_DYNAPRO=m
-CONFIG_TOUCHSCREEN_HAMPSHIRE=m
-CONFIG_TOUCHSCREEN_EETI=m
-CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
-CONFIG_TOUCHSCREEN_EXC3000=m
-CONFIG_TOUCHSCREEN_FUJITSU=m
-CONFIG_TOUCHSCREEN_GOODIX=m
-CONFIG_TOUCHSCREEN_HIDEEP=m
-CONFIG_TOUCHSCREEN_HYCON_HY46XX=m
-CONFIG_TOUCHSCREEN_ILI210X=m
-CONFIG_TOUCHSCREEN_ILITEK=m
-CONFIG_TOUCHSCREEN_S6SY761=m
-CONFIG_TOUCHSCREEN_GUNZE=m
-CONFIG_TOUCHSCREEN_EKTF2127=m
-CONFIG_TOUCHSCREEN_ELAN=m
-CONFIG_TOUCHSCREEN_ELO=m
-CONFIG_TOUCHSCREEN_WACOM_W8001=m
-CONFIG_TOUCHSCREEN_WACOM_I2C=m
-CONFIG_TOUCHSCREEN_MAX11801=m
-CONFIG_TOUCHSCREEN_MCS5000=m
-CONFIG_TOUCHSCREEN_MMS114=m
-CONFIG_TOUCHSCREEN_MELFAS_MIP4=m
-CONFIG_TOUCHSCREEN_MSG2638=m
-CONFIG_TOUCHSCREEN_MTOUCH=m
-CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MK712=m
-CONFIG_TOUCHSCREEN_PENMOUNT=m
-CONFIG_TOUCHSCREEN_EDT_FT5X06=m
-CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
-CONFIG_TOUCHSCREEN_TOUCHWIN=m
-CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
-CONFIG_TOUCHSCREEN_UCB1400=m
-CONFIG_TOUCHSCREEN_PIXCIR=m
-CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
-CONFIG_TOUCHSCREEN_WM831X=m
-CONFIG_TOUCHSCREEN_WM97XX=m
-CONFIG_TOUCHSCREEN_WM9705=y
-CONFIG_TOUCHSCREEN_WM9712=y
-CONFIG_TOUCHSCREEN_WM9713=y
-CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-CONFIG_TOUCHSCREEN_MC13783=m
-CONFIG_TOUCHSCREEN_USB_EGALAX=y
-CONFIG_TOUCHSCREEN_USB_PANJIT=y
-CONFIG_TOUCHSCREEN_USB_3M=y
-CONFIG_TOUCHSCREEN_USB_ITM=y
-CONFIG_TOUCHSCREEN_USB_ETURBO=y
-CONFIG_TOUCHSCREEN_USB_GUNZE=y
-CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
-CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
-CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
-CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
-CONFIG_TOUCHSCREEN_USB_GOTOP=y
-CONFIG_TOUCHSCREEN_USB_JASTEC=y
-CONFIG_TOUCHSCREEN_USB_ELO=y
-CONFIG_TOUCHSCREEN_USB_E2I=y
-CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
-CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
-CONFIG_TOUCHSCREEN_USB_NEXIO=y
-CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
-CONFIG_TOUCHSCREEN_TOUCHIT213=m
-CONFIG_TOUCHSCREEN_TSC_SERIO=m
-CONFIG_TOUCHSCREEN_TSC200X_CORE=m
-CONFIG_TOUCHSCREEN_TSC2004=m
-CONFIG_TOUCHSCREEN_TSC2005=m
-CONFIG_TOUCHSCREEN_TSC2007=m
-# CONFIG_TOUCHSCREEN_TSC2007_IIO is not set
-CONFIG_TOUCHSCREEN_PCAP=m
-CONFIG_TOUCHSCREEN_RM_TS=m
-CONFIG_TOUCHSCREEN_SILEAD=m
-CONFIG_TOUCHSCREEN_SIS_I2C=m
-CONFIG_TOUCHSCREEN_ST1232=m
-CONFIG_TOUCHSCREEN_STMFTS=m
-CONFIG_TOUCHSCREEN_SUR40=m
-CONFIG_TOUCHSCREEN_SURFACE3_SPI=m
-CONFIG_TOUCHSCREEN_SX8654=m
-CONFIG_TOUCHSCREEN_TPS6507X=m
-CONFIG_TOUCHSCREEN_ZET6223=m
-CONFIG_TOUCHSCREEN_ZFORCE=m
-CONFIG_TOUCHSCREEN_ROHM_BU21023=m
-CONFIG_TOUCHSCREEN_IQS5XX=m
-CONFIG_TOUCHSCREEN_ZINITIX=m
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_88PM860X_ONKEY=m
-CONFIG_INPUT_88PM80X_ONKEY=m
-CONFIG_INPUT_AD714X=m
-CONFIG_INPUT_AD714X_I2C=m
-CONFIG_INPUT_AD714X_SPI=m
-CONFIG_INPUT_ARIZONA_HAPTICS=m
-CONFIG_INPUT_ATC260X_ONKEY=m
-CONFIG_INPUT_BMA150=m
-CONFIG_INPUT_E3X0_BUTTON=m
-CONFIG_INPUT_PCSPKR=m
-CONFIG_INPUT_MAX77693_HAPTIC=m
-CONFIG_INPUT_MAX8925_ONKEY=m
-CONFIG_INPUT_MAX8997_HAPTIC=m
-CONFIG_INPUT_MC13783_PWRBUTTON=m
-CONFIG_INPUT_MMA8450=m
-CONFIG_INPUT_APANEL=m
-CONFIG_INPUT_GPIO_BEEPER=m
-CONFIG_INPUT_GPIO_DECODER=m
-CONFIG_INPUT_GPIO_VIBRA=m
-CONFIG_INPUT_ATLAS_BTNS=m
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-CONFIG_INPUT_KXTJ9=m
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_CM109=m
-CONFIG_INPUT_REGULATOR_HAPTIC=m
-CONFIG_INPUT_RETU_PWRBUTTON=m
-CONFIG_INPUT_AXP20X_PEK=m
-CONFIG_INPUT_TWL4030_PWRBUTTON=m
-CONFIG_INPUT_TWL4030_VIBRA=m
-CONFIG_INPUT_TWL6040_VIBRA=m
-CONFIG_INPUT_UINPUT=y
-CONFIG_INPUT_PALMAS_PWRBUTTON=m
-CONFIG_INPUT_PCF50633_PMU=m
-CONFIG_INPUT_PCF8574=m
-CONFIG_INPUT_PWM_BEEPER=m
-CONFIG_INPUT_PWM_VIBRA=m
-CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_DA7280_HAPTICS=m
-CONFIG_INPUT_DA9052_ONKEY=m
-CONFIG_INPUT_DA9055_ONKEY=m
-CONFIG_INPUT_DA9063_ONKEY=m
-CONFIG_INPUT_WM831X_ON=m
-CONFIG_INPUT_PCAP=m
-CONFIG_INPUT_ADXL34X=m
-CONFIG_INPUT_ADXL34X_I2C=m
-CONFIG_INPUT_ADXL34X_SPI=m
-CONFIG_INPUT_IMS_PCU=m
-CONFIG_INPUT_IQS269A=m
-CONFIG_INPUT_IQS626A=m
-CONFIG_INPUT_CMA3000=m
-CONFIG_INPUT_CMA3000_I2C=m
-CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
-CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
-CONFIG_INPUT_SOC_BUTTON_ARRAY=m
-CONFIG_INPUT_DRV260X_HAPTICS=m
-CONFIG_INPUT_DRV2665_HAPTICS=m
-CONFIG_INPUT_DRV2667_HAPTICS=m
-CONFIG_INPUT_RAVE_SP_PWRBUTTON=m
-CONFIG_RMI4_CORE=m
-CONFIG_RMI4_I2C=m
-CONFIG_RMI4_SPI=m
-CONFIG_RMI4_SMB=m
-CONFIG_RMI4_F03=y
-CONFIG_RMI4_F03_SERIO=m
-CONFIG_RMI4_2D_SENSOR=y
-CONFIG_RMI4_F11=y
-CONFIG_RMI4_F12=y
-CONFIG_RMI4_F30=y
-# CONFIG_RMI4_F34 is not set
-CONFIG_RMI4_F3A=y
-# CONFIG_RMI4_F54 is not set
-CONFIG_RMI4_F55=y
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
-CONFIG_SERIO_I8042=y
-CONFIG_SERIO_SERPORT=m
-CONFIG_SERIO_CT82C710=m
-CONFIG_SERIO_PARKBD=m
-CONFIG_SERIO_PCIPS2=m
-CONFIG_SERIO_LIBPS2=y
-CONFIG_SERIO_RAW=m
-CONFIG_SERIO_ALTERA_PS2=m
-CONFIG_SERIO_PS2MULT=m
-CONFIG_SERIO_ARC_PS2=m
-CONFIG_HYPERV_KEYBOARD=m
-CONFIG_SERIO_GPIO_PS2=m
-CONFIG_USERIO=m
-CONFIG_GAMEPORT=m
-CONFIG_GAMEPORT_NS558=m
-CONFIG_GAMEPORT_L4=m
-CONFIG_GAMEPORT_EMU10K1=m
-CONFIG_GAMEPORT_FM801=m
-# end of Hardware I/O ports
-# end of Input device support
-
-#
-# Character devices
-#
-CONFIG_TTY=y
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_VT_CONSOLE_SLEEP=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=0
-CONFIG_LDISC_AUTOLOAD=y
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_EARLYCON=y
-CONFIG_SERIAL_8250=y
-# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
-CONFIG_SERIAL_8250_PNP=y
-# CONFIG_SERIAL_8250_16550A_VARIANTS is not set
-# CONFIG_SERIAL_8250_FINTEK is not set
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_DMA=y
-CONFIG_SERIAL_8250_PCI=y
-CONFIG_SERIAL_8250_EXAR=m
-CONFIG_SERIAL_8250_CS=m
-CONFIG_SERIAL_8250_MEN_MCB=m
-CONFIG_SERIAL_8250_NR_UARTS=48
-CONFIG_SERIAL_8250_RUNTIME_UARTS=32
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-# CONFIG_SERIAL_8250_DETECT_IRQ is not set
-CONFIG_SERIAL_8250_RSA=y
-CONFIG_SERIAL_8250_DWLIB=y
-CONFIG_SERIAL_8250_DW=m
-CONFIG_SERIAL_8250_RT288X=y
-CONFIG_SERIAL_8250_LPSS=m
-CONFIG_SERIAL_8250_MID=m
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_KGDB_NMI=y
-CONFIG_SERIAL_MAX3100=m
-CONFIG_SERIAL_MAX310X=y
-CONFIG_SERIAL_UARTLITE=m
-CONFIG_SERIAL_UARTLITE_NR_UARTS=1
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_CONSOLE_POLL=y
-CONFIG_SERIAL_JSM=m
-CONFIG_SERIAL_LANTIQ=m
-CONFIG_SERIAL_SCCNXP=y
-CONFIG_SERIAL_SCCNXP_CONSOLE=y
-CONFIG_SERIAL_SC16IS7XX_CORE=m
-CONFIG_SERIAL_SC16IS7XX=m
-CONFIG_SERIAL_SC16IS7XX_I2C=y
-CONFIG_SERIAL_SC16IS7XX_SPI=y
-# CONFIG_SERIAL_BCM63XX is not set
-CONFIG_SERIAL_ALTERA_JTAGUART=m
-CONFIG_SERIAL_ALTERA_UART=m
-CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
-CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
-CONFIG_SERIAL_ARC=m
-CONFIG_SERIAL_ARC_NR_PORTS=1
-CONFIG_SERIAL_RP2=m
-CONFIG_SERIAL_RP2_NR_UARTS=32
-CONFIG_SERIAL_FSL_LPUART=m
-CONFIG_SERIAL_FSL_LINFLEXUART=m
-CONFIG_SERIAL_MEN_Z135=m
-# CONFIG_SERIAL_SPRD is not set
-# end of Serial drivers
-
-CONFIG_SERIAL_MCTRL_GPIO=y
-CONFIG_SERIAL_NONSTANDARD=y
-CONFIG_MOXA_INTELLIO=m
-CONFIG_MOXA_SMARTIO=m
-CONFIG_SYNCLINK_GT=m
-CONFIG_N_HDLC=m
-CONFIG_N_GSM=m
-CONFIG_NOZOMI=m
-CONFIG_NULL_TTY=m
-CONFIG_HVC_DRIVER=y
-CONFIG_HVC_IRQ=y
-CONFIG_HVC_XEN=y
-CONFIG_HVC_XEN_FRONTEND=y
-CONFIG_SERIAL_DEV_BUS=y
-CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
-CONFIG_TTY_PRINTK=y
-CONFIG_TTY_PRINTK_LEVEL=6
-CONFIG_PRINTER=m
-# CONFIG_LP_CONSOLE is not set
-CONFIG_PPDEV=m
-CONFIG_VIRTIO_CONSOLE=m
-CONFIG_IPMI_HANDLER=m
-CONFIG_IPMI_DMI_DECODE=y
-CONFIG_IPMI_PLAT_DATA=y
-# CONFIG_IPMI_PANIC_EVENT is not set
-CONFIG_IPMI_DEVICE_INTERFACE=m
-CONFIG_IPMI_SI=m
-CONFIG_IPMI_SSIF=m
-CONFIG_IPMI_WATCHDOG=m
-CONFIG_IPMI_POWEROFF=m
-CONFIG_IPMB_DEVICE_INTERFACE=m
-CONFIG_HW_RANDOM=y
-CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_INTEL=m
-CONFIG_HW_RANDOM_AMD=m
-CONFIG_HW_RANDOM_BA431=m
-CONFIG_HW_RANDOM_VIA=m
-CONFIG_HW_RANDOM_VIRTIO=m
-CONFIG_HW_RANDOM_XIPHERA=m
-CONFIG_APPLICOM=m
-
-#
-# PCMCIA character devices
-#
-CONFIG_SYNCLINK_CS=m
-CONFIG_CARDMAN_4000=m
-CONFIG_CARDMAN_4040=m
-CONFIG_SCR24X=m
-CONFIG_IPWIRELESS=m
-# end of PCMCIA character devices
-
-CONFIG_MWAVE=m
-CONFIG_DEVMEM=y
-CONFIG_NVRAM=m
-CONFIG_RAW_DRIVER=m
-CONFIG_MAX_RAW_DEVS=256
-CONFIG_DEVPORT=y
-CONFIG_HPET=y
-CONFIG_HPET_MMAP=y
-CONFIG_HPET_MMAP_DEFAULT=y
-CONFIG_HANGCHECK_TIMER=m
-CONFIG_TCG_TPM=y
-CONFIG_HW_RANDOM_TPM=y
-CONFIG_TCG_TIS_CORE=y
-CONFIG_TCG_TIS=y
-CONFIG_TCG_TIS_SPI=m
-# CONFIG_TCG_TIS_SPI_CR50 is not set
-# CONFIG_TCG_TIS_I2C_CR50 is not set
-CONFIG_TCG_TIS_I2C_ATMEL=m
-CONFIG_TCG_TIS_I2C_INFINEON=m
-CONFIG_TCG_TIS_I2C_NUVOTON=m
-CONFIG_TCG_NSC=m
-CONFIG_TCG_ATMEL=m
-CONFIG_TCG_INFINEON=m
-CONFIG_TCG_XEN=m
-CONFIG_TCG_CRB=y
-CONFIG_TCG_VTPM_PROXY=m
-CONFIG_TCG_TIS_ST33ZP24=m
-CONFIG_TCG_TIS_ST33ZP24_I2C=m
-CONFIG_TCG_TIS_ST33ZP24_SPI=m
-CONFIG_TELCLOCK=m
-CONFIG_XILLYBUS=m
-CONFIG_XILLYBUS_PCIE=m
-# end of Character devices
-
-# CONFIG_RANDOM_TRUST_CPU is not set
-# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_ACPI_I2C_OPREGION=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_MUX=m
-
-#
-# Multiplexer I2C Chip support
-#
-CONFIG_I2C_MUX_GPIO=m
-CONFIG_I2C_MUX_LTC4306=m
-CONFIG_I2C_MUX_PCA9541=m
-CONFIG_I2C_MUX_PCA954x=m
-CONFIG_I2C_MUX_REG=m
-CONFIG_I2C_MUX_MLXCPLD=m
-# end of Multiplexer I2C Chip support
-
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_SMBUS=m
-CONFIG_I2C_ALGOBIT=m
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# PC SMBus host controller drivers
-#
-CONFIG_I2C_ALI1535=m
-CONFIG_I2C_ALI1563=m
-CONFIG_I2C_ALI15X3=m
-CONFIG_I2C_AMD756=m
-CONFIG_I2C_AMD756_S4882=m
-CONFIG_I2C_AMD8111=m
-CONFIG_I2C_AMD_MP2=m
-CONFIG_I2C_I801=m
-CONFIG_I2C_ISCH=m
-CONFIG_I2C_ISMT=m
-CONFIG_I2C_PIIX4=m
-CONFIG_I2C_CHT_WC=m
-CONFIG_I2C_NFORCE2=m
-CONFIG_I2C_NFORCE2_S4985=m
-CONFIG_I2C_NVIDIA_GPU=m
-CONFIG_I2C_SIS5595=m
-CONFIG_I2C_SIS630=m
-CONFIG_I2C_SIS96X=m
-CONFIG_I2C_VIA=m
-CONFIG_I2C_VIAPRO=m
-
-#
-# ACPI drivers
-#
-CONFIG_I2C_SCMI=m
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-CONFIG_I2C_CBUS_GPIO=m
-CONFIG_I2C_DESIGNWARE_CORE=y
-# CONFIG_I2C_DESIGNWARE_SLAVE is not set
-CONFIG_I2C_DESIGNWARE_PLATFORM=y
-CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
-CONFIG_I2C_DESIGNWARE_PCI=m
-CONFIG_I2C_EMEV2=m
-CONFIG_I2C_GPIO=m
-# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
-CONFIG_I2C_KEMPLD=m
-CONFIG_I2C_OCORES=m
-CONFIG_I2C_PCA_PLATFORM=m
-CONFIG_I2C_SIMTEC=m
-CONFIG_I2C_XILINX=m
-
-#
-# External I2C/SMBus adapter drivers
-#
-CONFIG_I2C_DIOLAN_U2C=m
-CONFIG_I2C_DLN2=m
-CONFIG_I2C_CP2615=m
-CONFIG_I2C_PARPORT=m
-CONFIG_I2C_ROBOTFUZZ_OSIF=m
-CONFIG_I2C_TAOS_EVM=m
-CONFIG_I2C_TINY_USB=m
-CONFIG_I2C_VIPERBOARD=m
-
-#
-# Other I2C/SMBus bus drivers
-#
-CONFIG_I2C_MLXCPLD=m
-CONFIG_I2C_CROS_EC_TUNNEL=m
-# end of I2C Hardware Bus support
-
-CONFIG_I2C_STUB=m
-CONFIG_I2C_SLAVE=y
-CONFIG_I2C_SLAVE_EEPROM=m
-# CONFIG_I2C_SLAVE_TESTUNIT is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# end of I2C support
-
-CONFIG_I3C=m
-CONFIG_CDNS_I3C_MASTER=m
-CONFIG_DW_I3C_MASTER=m
-CONFIG_SVC_I3C_MASTER=m
-# CONFIG_MIPI_I3C_HCI is not set
-CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-CONFIG_SPI_MEM=y
-
-#
-# SPI Master Controller Drivers
-#
-CONFIG_SPI_ALTERA=m
-CONFIG_SPI_ALTERA_CORE=m
-CONFIG_SPI_ALTERA_DFL=m
-CONFIG_SPI_AXI_SPI_ENGINE=m
-CONFIG_SPI_BITBANG=m
-CONFIG_SPI_BUTTERFLY=m
-CONFIG_SPI_CADENCE=m
-CONFIG_SPI_DESIGNWARE=m
-# CONFIG_SPI_DW_DMA is not set
-CONFIG_SPI_DW_PCI=m
-CONFIG_SPI_DW_MMIO=m
-CONFIG_SPI_DLN2=m
-CONFIG_SPI_NXP_FLEXSPI=m
-CONFIG_SPI_GPIO=m
-CONFIG_SPI_LM70_LLP=m
-CONFIG_SPI_LANTIQ_SSC=m
-CONFIG_SPI_OC_TINY=m
-CONFIG_SPI_PXA2XX=m
-CONFIG_SPI_PXA2XX_PCI=m
-CONFIG_SPI_ROCKCHIP=m
-CONFIG_SPI_SC18IS602=m
-CONFIG_SPI_SIFIVE=m
-CONFIG_SPI_MXIC=m
-CONFIG_SPI_XCOMM=m
-# CONFIG_SPI_XILINX is not set
-CONFIG_SPI_ZYNQMP_GQSPI=m
-CONFIG_SPI_AMD=m
-
-#
-# SPI Multiplexer support
-#
-CONFIG_SPI_MUX=m
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_SPIDEV=m
-# CONFIG_SPI_LOOPBACK_TEST is not set
-CONFIG_SPI_TLE62X0=m
-# CONFIG_SPI_SLAVE is not set
-CONFIG_SPI_DYNAMIC=y
-CONFIG_SPMI=m
-CONFIG_HSI=m
-CONFIG_HSI_BOARDINFO=y
-
-#
-# HSI controllers
-#
-
-#
-# HSI clients
-#
-CONFIG_HSI_CHAR=m
-CONFIG_PPS=m
-# CONFIG_PPS_DEBUG is not set
-
-#
-# PPS clients support
-#
-# CONFIG_PPS_CLIENT_KTIMER is not set
-CONFIG_PPS_CLIENT_LDISC=m
-CONFIG_PPS_CLIENT_PARPORT=m
-CONFIG_PPS_CLIENT_GPIO=m
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-CONFIG_PTP_1588_CLOCK=m
-
-#
-# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
-#
-CONFIG_PTP_1588_CLOCK_KVM=m
-CONFIG_PTP_1588_CLOCK_IDT82P33=m
-CONFIG_PTP_1588_CLOCK_IDTCM=m
-# CONFIG_PTP_1588_CLOCK_VMW is not set
-CONFIG_PTP_1588_CLOCK_OCP=m
-# end of PTP clock support
-
-CONFIG_PINCTRL=y
-CONFIG_PINMUX=y
-CONFIG_PINCONF=y
-CONFIG_GENERIC_PINCONF=y
-# CONFIG_DEBUG_PINCTRL is not set
-CONFIG_PINCTRL_AMD=y
-# CONFIG_PINCTRL_DA9062 is not set
-CONFIG_PINCTRL_MCP23S08_I2C=m
-CONFIG_PINCTRL_MCP23S08_SPI=m
-CONFIG_PINCTRL_MCP23S08=m
-CONFIG_PINCTRL_SX150X=y
-CONFIG_PINCTRL_BAYTRAIL=y
-CONFIG_PINCTRL_CHERRYVIEW=m
-CONFIG_PINCTRL_LYNXPOINT=m
-CONFIG_PINCTRL_INTEL=y
-CONFIG_PINCTRL_ALDERLAKE=m
-CONFIG_PINCTRL_BROXTON=m
-CONFIG_PINCTRL_CANNONLAKE=m
-CONFIG_PINCTRL_CEDARFORK=m
-CONFIG_PINCTRL_DENVERTON=m
-CONFIG_PINCTRL_ELKHARTLAKE=m
-CONFIG_PINCTRL_EMMITSBURG=m
-CONFIG_PINCTRL_GEMINILAKE=m
-CONFIG_PINCTRL_ICELAKE=m
-CONFIG_PINCTRL_JASPERLAKE=m
-CONFIG_PINCTRL_LAKEFIELD=m
-CONFIG_PINCTRL_LEWISBURG=m
-CONFIG_PINCTRL_SUNRISEPOINT=m
-CONFIG_PINCTRL_TIGERLAKE=m
-
-#
-# Renesas pinctrl drivers
-#
-# end of Renesas pinctrl drivers
-
-CONFIG_PINCTRL_MADERA=m
-CONFIG_GPIOLIB=y
-CONFIG_GPIOLIB_FASTPATH_LIMIT=512
-CONFIG_GPIO_ACPI=y
-CONFIG_GPIOLIB_IRQCHIP=y
-# CONFIG_DEBUG_GPIO is not set
-CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_CDEV=y
-CONFIG_GPIO_CDEV_V1=y
-CONFIG_GPIO_GENERIC=m
-CONFIG_GPIO_MAX730X=m
-
-#
-# Memory mapped GPIO drivers
-#
-CONFIG_GPIO_AMDPT=m
-CONFIG_GPIO_DWAPB=m
-CONFIG_GPIO_EXAR=m
-CONFIG_GPIO_GENERIC_PLATFORM=m
-CONFIG_GPIO_ICH=m
-CONFIG_GPIO_MB86S7X=m
-CONFIG_GPIO_MENZ127=m
-CONFIG_GPIO_VX855=m
-CONFIG_GPIO_AMD_FCH=m
-# end of Memory mapped GPIO drivers
-
-#
-# Port-mapped I/O GPIO drivers
-#
-CONFIG_GPIO_F7188X=m
-CONFIG_GPIO_IT87=m
-CONFIG_GPIO_SCH=m
-CONFIG_GPIO_SCH311X=m
-CONFIG_GPIO_WINBOND=m
-CONFIG_GPIO_WS16C48=m
-# end of Port-mapped I/O GPIO drivers
-
-#
-# I2C GPIO expanders
-#
-CONFIG_GPIO_ADP5588=m
-CONFIG_GPIO_MAX7300=m
-CONFIG_GPIO_MAX732X=m
-CONFIG_GPIO_PCA953X=m
-CONFIG_GPIO_PCA953X_IRQ=y
-CONFIG_GPIO_PCA9570=m
-CONFIG_GPIO_PCF857X=m
-CONFIG_GPIO_TPIC2810=m
-# end of I2C GPIO expanders
-
-#
-# MFD GPIO expanders
-#
-CONFIG_GPIO_ADP5520=m
-CONFIG_GPIO_ARIZONA=m
-CONFIG_GPIO_BD9571MWV=m
-CONFIG_GPIO_CRYSTAL_COVE=m
-CONFIG_GPIO_DA9052=m
-CONFIG_GPIO_DA9055=m
-CONFIG_GPIO_DLN2=m
-CONFIG_GPIO_JANZ_TTL=m
-CONFIG_GPIO_KEMPLD=m
-CONFIG_GPIO_LP3943=m
-CONFIG_GPIO_LP873X=m
-CONFIG_GPIO_MADERA=m
-CONFIG_GPIO_PALMAS=y
-CONFIG_GPIO_RC5T583=y
-CONFIG_GPIO_TPS65086=m
-CONFIG_GPIO_TPS6586X=y
-CONFIG_GPIO_TPS65910=y
-CONFIG_GPIO_TPS65912=m
-CONFIG_GPIO_TQMX86=m
-CONFIG_GPIO_TWL4030=m
-CONFIG_GPIO_TWL6040=m
-CONFIG_GPIO_UCB1400=m
-CONFIG_GPIO_WHISKEY_COVE=m
-CONFIG_GPIO_WM831X=m
-CONFIG_GPIO_WM8350=m
-CONFIG_GPIO_WM8994=m
-# end of MFD GPIO expanders
-
-#
-# PCI GPIO expanders
-#
-CONFIG_GPIO_AMD8111=m
-CONFIG_GPIO_ML_IOH=m
-CONFIG_GPIO_PCI_IDIO_16=m
-CONFIG_GPIO_PCIE_IDIO_24=m
-CONFIG_GPIO_RDC321X=m
-# end of PCI GPIO expanders
-
-#
-# SPI GPIO expanders
-#
-CONFIG_GPIO_MAX3191X=m
-CONFIG_GPIO_MAX7301=m
-CONFIG_GPIO_MC33880=m
-CONFIG_GPIO_PISOSR=m
-CONFIG_GPIO_XRA1403=m
-# end of SPI GPIO expanders
-
-#
-# USB GPIO expanders
-#
-CONFIG_GPIO_VIPERBOARD=m
-# end of USB GPIO expanders
-
-#
-# Virtual GPIO drivers
-#
-CONFIG_GPIO_AGGREGATOR=m
-# CONFIG_GPIO_MOCKUP is not set
-# end of Virtual GPIO drivers
-
-CONFIG_W1=m
-CONFIG_W1_CON=y
-
-#
-# 1-wire Bus Masters
-#
-CONFIG_W1_MASTER_MATROX=m
-CONFIG_W1_MASTER_DS2490=m
-CONFIG_W1_MASTER_DS2482=m
-CONFIG_W1_MASTER_DS1WM=m
-CONFIG_W1_MASTER_GPIO=m
-CONFIG_W1_MASTER_SGI=m
-# end of 1-wire Bus Masters
-
-#
-# 1-wire Slaves
-#
-CONFIG_W1_SLAVE_THERM=m
-CONFIG_W1_SLAVE_SMEM=m
-CONFIG_W1_SLAVE_DS2405=m
-CONFIG_W1_SLAVE_DS2408=m
-CONFIG_W1_SLAVE_DS2408_READBACK=y
-CONFIG_W1_SLAVE_DS2413=m
-CONFIG_W1_SLAVE_DS2406=m
-CONFIG_W1_SLAVE_DS2423=m
-CONFIG_W1_SLAVE_DS2805=m
-CONFIG_W1_SLAVE_DS2430=m
-CONFIG_W1_SLAVE_DS2431=m
-CONFIG_W1_SLAVE_DS2433=m
-# CONFIG_W1_SLAVE_DS2433_CRC is not set
-CONFIG_W1_SLAVE_DS2438=m
-CONFIG_W1_SLAVE_DS250X=m
-CONFIG_W1_SLAVE_DS2780=m
-CONFIG_W1_SLAVE_DS2781=m
-CONFIG_W1_SLAVE_DS28E04=m
-CONFIG_W1_SLAVE_DS28E17=m
-# end of 1-wire Slaves
-
-CONFIG_POWER_RESET=y
-CONFIG_POWER_RESET_ATC260X=m
-# CONFIG_POWER_RESET_MT6323 is not set
-CONFIG_POWER_RESET_RESTART=y
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-CONFIG_POWER_SUPPLY_HWMON=y
-CONFIG_PDA_POWER=m
-CONFIG_GENERIC_ADC_BATTERY=m
-CONFIG_MAX8925_POWER=m
-CONFIG_WM831X_BACKUP=m
-CONFIG_WM831X_POWER=m
-CONFIG_WM8350_POWER=m
-CONFIG_TEST_POWER=m
-CONFIG_BATTERY_88PM860X=m
-CONFIG_CHARGER_ADP5061=m
-CONFIG_BATTERY_CW2015=m
-CONFIG_BATTERY_DS2760=m
-CONFIG_BATTERY_DS2780=m
-CONFIG_BATTERY_DS2781=m
-CONFIG_BATTERY_DS2782=m
-CONFIG_BATTERY_SBS=m
-CONFIG_CHARGER_SBS=m
-CONFIG_MANAGER_SBS=m
-CONFIG_BATTERY_BQ27XXX=m
-CONFIG_BATTERY_BQ27XXX_I2C=m
-CONFIG_BATTERY_BQ27XXX_HDQ=m
-# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set
-CONFIG_BATTERY_DA9030=m
-CONFIG_BATTERY_DA9052=m
-CONFIG_CHARGER_DA9150=m
-CONFIG_BATTERY_DA9150=m
-CONFIG_CHARGER_AXP20X=m
-CONFIG_BATTERY_AXP20X=m
-CONFIG_AXP20X_POWER=m
-CONFIG_AXP288_CHARGER=m
-CONFIG_AXP288_FUEL_GAUGE=m
-CONFIG_BATTERY_MAX17040=m
-CONFIG_BATTERY_MAX17042=m
-CONFIG_BATTERY_MAX1721X=m
-CONFIG_BATTERY_TWL4030_MADC=m
-CONFIG_CHARGER_88PM860X=m
-CONFIG_CHARGER_PCF50633=m
-CONFIG_BATTERY_RX51=m
-CONFIG_CHARGER_ISP1704=m
-CONFIG_CHARGER_MAX8903=m
-CONFIG_CHARGER_TWL4030=m
-CONFIG_CHARGER_LP8727=m
-CONFIG_CHARGER_LP8788=m
-CONFIG_CHARGER_GPIO=m
-CONFIG_CHARGER_MANAGER=y
-CONFIG_CHARGER_LT3651=m
-CONFIG_CHARGER_LTC4162L=m
-CONFIG_CHARGER_MAX14577=m
-CONFIG_CHARGER_MAX77693=m
-CONFIG_CHARGER_MAX8997=m
-CONFIG_CHARGER_MAX8998=m
-CONFIG_CHARGER_MP2629=m
-CONFIG_CHARGER_BQ2415X=m
-CONFIG_CHARGER_BQ24190=m
-CONFIG_CHARGER_BQ24257=m
-CONFIG_CHARGER_BQ24735=m
-CONFIG_CHARGER_BQ2515X=m
-CONFIG_CHARGER_BQ25890=m
-CONFIG_CHARGER_BQ25980=m
-CONFIG_CHARGER_BQ256XX=m
-CONFIG_CHARGER_SMB347=m
-CONFIG_CHARGER_TPS65090=m
-CONFIG_BATTERY_GAUGE_LTC2941=m
-CONFIG_BATTERY_GOLDFISH=m
-CONFIG_BATTERY_RT5033=m
-CONFIG_CHARGER_RT9455=m
-CONFIG_CHARGER_CROS_USBPD=m
-CONFIG_CHARGER_BD99954=m
-CONFIG_CHARGER_WILCO=m
-CONFIG_BATTERY_SURFACE=m
-CONFIG_CHARGER_SURFACE=m
-CONFIG_HWMON=y
-CONFIG_HWMON_VID=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-CONFIG_SENSORS_ABITUGURU=m
-CONFIG_SENSORS_ABITUGURU3=m
-CONFIG_SENSORS_AD7314=m
-CONFIG_SENSORS_AD7414=m
-CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADM1021=m
-CONFIG_SENSORS_ADM1025=m
-CONFIG_SENSORS_ADM1026=m
-CONFIG_SENSORS_ADM1029=m
-CONFIG_SENSORS_ADM1031=m
-CONFIG_SENSORS_ADM1177=m
-CONFIG_SENSORS_ADM9240=m
-CONFIG_SENSORS_ADT7X10=m
-CONFIG_SENSORS_ADT7310=m
-CONFIG_SENSORS_ADT7410=m
-CONFIG_SENSORS_ADT7411=m
-CONFIG_SENSORS_ADT7462=m
-CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7475=m
-CONFIG_SENSORS_AHT10=m
-CONFIG_SENSORS_AS370=m
-CONFIG_SENSORS_ASC7621=m
-CONFIG_SENSORS_AXI_FAN_CONTROL=m
-CONFIG_SENSORS_K8TEMP=m
-CONFIG_SENSORS_K10TEMP=m
-CONFIG_SENSORS_FAM15H_POWER=m
-CONFIG_SENSORS_APPLESMC=m
-CONFIG_SENSORS_ASB100=m
-CONFIG_SENSORS_ASPEED=m
-CONFIG_SENSORS_ATXP1=m
-CONFIG_SENSORS_CORSAIR_CPRO=m
-CONFIG_SENSORS_CORSAIR_PSU=m
-CONFIG_SENSORS_DRIVETEMP=y
-CONFIG_SENSORS_DS620=m
-CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_DELL_SMM=m
-CONFIG_SENSORS_DA9052_ADC=m
-CONFIG_SENSORS_DA9055=m
-CONFIG_SENSORS_I5K_AMB=m
-CONFIG_SENSORS_F71805F=m
-CONFIG_SENSORS_F71882FG=m
-CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_MC13783_ADC=m
-CONFIG_SENSORS_FSCHMD=m
-CONFIG_SENSORS_FTSTEUTATES=m
-CONFIG_SENSORS_GL518SM=m
-CONFIG_SENSORS_GL520SM=m
-CONFIG_SENSORS_G760A=m
-CONFIG_SENSORS_G762=m
-CONFIG_SENSORS_HIH6130=m
-CONFIG_SENSORS_IBMAEM=m
-CONFIG_SENSORS_IBMPEX=m
-CONFIG_SENSORS_IIO_HWMON=m
-CONFIG_SENSORS_I5500=m
-CONFIG_SENSORS_CORETEMP=m
-CONFIG_SENSORS_IT87=m
-CONFIG_SENSORS_JC42=m
-CONFIG_SENSORS_POWR1220=m
-CONFIG_SENSORS_LINEAGE=m
-CONFIG_SENSORS_LTC2945=m
-CONFIG_SENSORS_LTC2947=m
-CONFIG_SENSORS_LTC2947_I2C=m
-CONFIG_SENSORS_LTC2947_SPI=m
-CONFIG_SENSORS_LTC2990=m
-CONFIG_SENSORS_LTC2992=m
-CONFIG_SENSORS_LTC4151=m
-CONFIG_SENSORS_LTC4215=m
-CONFIG_SENSORS_LTC4222=m
-CONFIG_SENSORS_LTC4245=m
-CONFIG_SENSORS_LTC4260=m
-CONFIG_SENSORS_LTC4261=m
-CONFIG_SENSORS_MAX1111=m
-CONFIG_SENSORS_MAX127=m
-CONFIG_SENSORS_MAX16065=m
-CONFIG_SENSORS_MAX1619=m
-CONFIG_SENSORS_MAX1668=m
-CONFIG_SENSORS_MAX197=m
-CONFIG_SENSORS_MAX31722=m
-CONFIG_SENSORS_MAX31730=m
-CONFIG_SENSORS_MAX6621=m
-CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
-CONFIG_SENSORS_MAX6650=m
-CONFIG_SENSORS_MAX6697=m
-CONFIG_SENSORS_MAX31790=m
-CONFIG_SENSORS_MCP3021=m
-CONFIG_SENSORS_TC654=m
-CONFIG_SENSORS_TPS23861=m
-CONFIG_SENSORS_MENF21BMC_HWMON=m
-CONFIG_SENSORS_MR75203=m
-CONFIG_SENSORS_ADCXX=m
-CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM70=m
-CONFIG_SENSORS_LM73=m
-CONFIG_SENSORS_LM75=m
-CONFIG_SENSORS_LM77=m
-CONFIG_SENSORS_LM78=m
-CONFIG_SENSORS_LM80=m
-CONFIG_SENSORS_LM83=m
-CONFIG_SENSORS_LM85=m
-CONFIG_SENSORS_LM87=m
-CONFIG_SENSORS_LM90=m
-CONFIG_SENSORS_LM92=m
-CONFIG_SENSORS_LM93=m
-CONFIG_SENSORS_LM95234=m
-CONFIG_SENSORS_LM95241=m
-CONFIG_SENSORS_LM95245=m
-CONFIG_SENSORS_PC87360=m
-CONFIG_SENSORS_PC87427=m
-CONFIG_SENSORS_NTC_THERMISTOR=m
-CONFIG_SENSORS_NCT6683=m
-CONFIG_SENSORS_NCT6775=m
-CONFIG_SENSORS_NCT7802=m
-CONFIG_SENSORS_NCT7904=m
-CONFIG_SENSORS_NPCM7XX=m
-CONFIG_SENSORS_NZXT_KRAKEN2=m
-CONFIG_SENSORS_PCF8591=m
-CONFIG_PMBUS=m
-CONFIG_SENSORS_PMBUS=m
-CONFIG_SENSORS_ADM1266=m
-CONFIG_SENSORS_ADM1275=m
-CONFIG_SENSORS_BEL_PFE=m
-CONFIG_SENSORS_BPA_RS600=m
-CONFIG_SENSORS_FSP_3Y=m
-CONFIG_SENSORS_IBM_CFFPS=m
-CONFIG_SENSORS_INSPUR_IPSPS=m
-CONFIG_SENSORS_IR35221=m
-CONFIG_SENSORS_IR36021=m
-CONFIG_SENSORS_IR38064=m
-CONFIG_SENSORS_IRPS5401=m
-CONFIG_SENSORS_ISL68137=m
-CONFIG_SENSORS_LM25066=m
-CONFIG_SENSORS_LTC2978=m
-CONFIG_SENSORS_LTC2978_REGULATOR=y
-CONFIG_SENSORS_LTC3815=m
-CONFIG_SENSORS_MAX15301=m
-CONFIG_SENSORS_MAX16064=m
-CONFIG_SENSORS_MAX16601=m
-CONFIG_SENSORS_MAX20730=m
-CONFIG_SENSORS_MAX20751=m
-CONFIG_SENSORS_MAX31785=m
-CONFIG_SENSORS_MAX34440=m
-CONFIG_SENSORS_MAX8688=m
-CONFIG_SENSORS_MP2975=m
-CONFIG_SENSORS_PM6764TR=m
-CONFIG_SENSORS_PXE1610=m
-CONFIG_SENSORS_Q54SJ108A2=m
-CONFIG_SENSORS_STPDDC60=m
-CONFIG_SENSORS_TPS40422=m
-CONFIG_SENSORS_TPS53679=m
-CONFIG_SENSORS_UCD9000=m
-CONFIG_SENSORS_UCD9200=m
-CONFIG_SENSORS_XDPE122=m
-CONFIG_SENSORS_ZL6100=m
-CONFIG_SENSORS_SBTSI=m
-CONFIG_SENSORS_SHT15=m
-CONFIG_SENSORS_SHT21=m
-CONFIG_SENSORS_SHT3x=m
-CONFIG_SENSORS_SHTC1=m
-CONFIG_SENSORS_SIS5595=m
-CONFIG_SENSORS_DME1737=m
-CONFIG_SENSORS_EMC1403=m
-CONFIG_SENSORS_EMC2103=m
-CONFIG_SENSORS_EMC6W201=m
-CONFIG_SENSORS_SMSC47M1=m
-CONFIG_SENSORS_SMSC47M192=m
-CONFIG_SENSORS_SMSC47B397=m
-CONFIG_SENSORS_SCH56XX_COMMON=m
-CONFIG_SENSORS_SCH5627=m
-CONFIG_SENSORS_SCH5636=m
-CONFIG_SENSORS_STTS751=m
-CONFIG_SENSORS_SMM665=m
-CONFIG_SENSORS_ADC128D818=m
-CONFIG_SENSORS_ADS7828=m
-CONFIG_SENSORS_ADS7871=m
-CONFIG_SENSORS_AMC6821=m
-CONFIG_SENSORS_INA209=m
-CONFIG_SENSORS_INA2XX=m
-CONFIG_SENSORS_INA3221=m
-CONFIG_SENSORS_TC74=m
-CONFIG_SENSORS_THMC50=m
-CONFIG_SENSORS_TMP102=m
-CONFIG_SENSORS_TMP103=m
-CONFIG_SENSORS_TMP108=m
-CONFIG_SENSORS_TMP401=m
-CONFIG_SENSORS_TMP421=m
-CONFIG_SENSORS_TMP513=m
-CONFIG_SENSORS_VIA_CPUTEMP=m
-CONFIG_SENSORS_VIA686A=m
-CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_VT8231=m
-CONFIG_SENSORS_W83773G=m
-CONFIG_SENSORS_W83781D=m
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83795=m
-# CONFIG_SENSORS_W83795_FANCTRL is not set
-CONFIG_SENSORS_W83L785TS=m
-CONFIG_SENSORS_W83L786NG=m
-CONFIG_SENSORS_W83627HF=m
-CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_WM831X=m
-CONFIG_SENSORS_WM8350=m
-CONFIG_SENSORS_XGENE=m
-CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
-
-#
-# ACPI drivers
-#
-CONFIG_SENSORS_ACPI_POWER=m
-CONFIG_SENSORS_ATK0110=m
-CONFIG_THERMAL=y
-CONFIG_THERMAL_NETLINK=y
-# CONFIG_THERMAL_STATISTICS is not set
-CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
-CONFIG_THERMAL_HWMON=y
-CONFIG_THERMAL_WRITABLE_TRIPS=y
-CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
-# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
-# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
-CONFIG_THERMAL_GOV_FAIR_SHARE=y
-CONFIG_THERMAL_GOV_STEP_WISE=y
-CONFIG_THERMAL_GOV_BANG_BANG=y
-CONFIG_THERMAL_GOV_USER_SPACE=y
-CONFIG_DEVFREQ_THERMAL=y
-CONFIG_THERMAL_EMULATION=y
-
-#
-# Intel thermal drivers
-#
-CONFIG_INTEL_POWERCLAMP=m
-CONFIG_X86_THERMAL_VECTOR=y
-CONFIG_X86_PKG_TEMP_THERMAL=m
-CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
-CONFIG_INTEL_SOC_DTS_THERMAL=m
-
-#
-# ACPI INT340X thermal drivers
-#
-CONFIG_INT340X_THERMAL=m
-CONFIG_ACPI_THERMAL_REL=m
-CONFIG_INT3406_THERMAL=m
-CONFIG_PROC_THERMAL_MMIO_RAPL=m
-# end of ACPI INT340X thermal drivers
-
-CONFIG_INTEL_BXT_PMIC_THERMAL=m
-CONFIG_INTEL_PCH_THERMAL=m
-CONFIG_INTEL_TCC_COOLING=m
-# end of Intel thermal drivers
-
-CONFIG_GENERIC_ADC_THERMAL=m
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_CORE=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
-CONFIG_WATCHDOG_OPEN_TIMEOUT=0
-CONFIG_WATCHDOG_SYSFS=y
-
-#
-# Watchdog Pretimeout Governors
-#
-# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set
-
-#
-# Watchdog Device Drivers
-#
-CONFIG_SOFT_WATCHDOG=m
-CONFIG_DA9052_WATCHDOG=m
-CONFIG_DA9055_WATCHDOG=m
-CONFIG_DA9063_WATCHDOG=m
-CONFIG_DA9062_WATCHDOG=m
-CONFIG_MENF21BMC_WATCHDOG=m
-CONFIG_MENZ069_WATCHDOG=m
-CONFIG_WDAT_WDT=m
-CONFIG_WM831X_WATCHDOG=m
-CONFIG_WM8350_WATCHDOG=m
-CONFIG_XILINX_WATCHDOG=m
-CONFIG_ZIIRAVE_WATCHDOG=m
-CONFIG_RAVE_SP_WATCHDOG=m
-CONFIG_CADENCE_WATCHDOG=m
-CONFIG_DW_WATCHDOG=m
-CONFIG_TWL4030_WATCHDOG=m
-CONFIG_MAX63XX_WATCHDOG=m
-CONFIG_RETU_WATCHDOG=m
-CONFIG_ACQUIRE_WDT=m
-CONFIG_ADVANTECH_WDT=m
-CONFIG_ALIM1535_WDT=m
-CONFIG_ALIM7101_WDT=m
-CONFIG_EBC_C384_WDT=m
-CONFIG_F71808E_WDT=m
-CONFIG_SP5100_TCO=m
-CONFIG_SBC_FITPC2_WATCHDOG=m
-CONFIG_EUROTECH_WDT=m
-CONFIG_IB700_WDT=m
-CONFIG_IBMASR=m
-CONFIG_WAFER_WDT=m
-CONFIG_I6300ESB_WDT=m
-CONFIG_IE6XX_WDT=m
-CONFIG_ITCO_WDT=m
-CONFIG_ITCO_VENDOR_SUPPORT=y
-CONFIG_IT8712F_WDT=m
-CONFIG_IT87_WDT=m
-CONFIG_HP_WATCHDOG=m
-CONFIG_HPWDT_NMI_DECODING=y
-CONFIG_KEMPLD_WDT=m
-CONFIG_SC1200_WDT=m
-CONFIG_PC87413_WDT=m
-CONFIG_NV_TCO=m
-CONFIG_60XX_WDT=m
-CONFIG_CPU5_WDT=m
-CONFIG_SMSC_SCH311X_WDT=m
-CONFIG_SMSC37B787_WDT=m
-CONFIG_TQMX86_WDT=m
-CONFIG_VIA_WDT=m
-CONFIG_W83627HF_WDT=m
-CONFIG_W83877F_WDT=m
-CONFIG_W83977F_WDT=m
-CONFIG_MACHZ_WDT=m
-CONFIG_SBC_EPX_C3_WATCHDOG=m
-CONFIG_NI903X_WDT=m
-CONFIG_NIC7018_WDT=m
-CONFIG_MEN_A21_WDT=m
-CONFIG_XEN_WDT=m
-
-#
-# PCI-based Watchdog Cards
-#
-CONFIG_PCIPCWATCHDOG=m
-CONFIG_WDTPCI=m
-
-#
-# USB-based Watchdog Cards
-#
-CONFIG_USBPCWATCHDOG=m
-CONFIG_SSB_POSSIBLE=y
-CONFIG_SSB=m
-CONFIG_SSB_SPROM=y
-CONFIG_SSB_BLOCKIO=y
-CONFIG_SSB_PCIHOST_POSSIBLE=y
-CONFIG_SSB_PCIHOST=y
-CONFIG_SSB_B43_PCI_BRIDGE=y
-CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
-# CONFIG_SSB_PCMCIAHOST is not set
-CONFIG_SSB_SDIOHOST_POSSIBLE=y
-CONFIG_SSB_SDIOHOST=y
-CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
-CONFIG_SSB_DRIVER_PCICORE=y
-CONFIG_SSB_DRIVER_GPIO=y
-CONFIG_BCMA_POSSIBLE=y
-CONFIG_BCMA=m
-CONFIG_BCMA_BLOCKIO=y
-CONFIG_BCMA_HOST_PCI_POSSIBLE=y
-CONFIG_BCMA_HOST_PCI=y
-CONFIG_BCMA_HOST_SOC=y
-CONFIG_BCMA_DRIVER_PCI=y
-CONFIG_BCMA_SFLASH=y
-CONFIG_BCMA_DRIVER_GMAC_CMN=y
-CONFIG_BCMA_DRIVER_GPIO=y
-# CONFIG_BCMA_DEBUG is not set
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=y
-CONFIG_MFD_AS3711=y
-CONFIG_PMIC_ADP5520=y
-CONFIG_MFD_AAT2870_CORE=y
-CONFIG_MFD_BCM590XX=m
-CONFIG_MFD_BD9571MWV=m
-CONFIG_MFD_AXP20X=m
-CONFIG_MFD_AXP20X_I2C=m
-CONFIG_MFD_CROS_EC_DEV=m
-CONFIG_MFD_MADERA=m
-CONFIG_MFD_MADERA_I2C=m
-CONFIG_MFD_MADERA_SPI=m
-# CONFIG_MFD_CS47L15 is not set
-# CONFIG_MFD_CS47L35 is not set
-# CONFIG_MFD_CS47L85 is not set
-# CONFIG_MFD_CS47L90 is not set
-# CONFIG_MFD_CS47L92 is not set
-CONFIG_PMIC_DA903X=y
-CONFIG_PMIC_DA9052=y
-CONFIG_MFD_DA9052_SPI=y
-CONFIG_MFD_DA9052_I2C=y
-CONFIG_MFD_DA9055=y
-CONFIG_MFD_DA9062=m
-CONFIG_MFD_DA9063=y
-CONFIG_MFD_DA9150=m
-CONFIG_MFD_DLN2=m
-CONFIG_MFD_MC13XXX=m
-CONFIG_MFD_MC13XXX_SPI=m
-CONFIG_MFD_MC13XXX_I2C=m
-CONFIG_MFD_MP2629=m
-CONFIG_HTC_PASIC3=m
-CONFIG_HTC_I2CPLD=y
-CONFIG_MFD_INTEL_QUARK_I2C_GPIO=m
-CONFIG_LPC_ICH=m
-CONFIG_LPC_SCH=m
-CONFIG_INTEL_SOC_PMIC=y
-CONFIG_INTEL_SOC_PMIC_BXTWC=m
-CONFIG_INTEL_SOC_PMIC_CHTWC=y
-CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
-CONFIG_INTEL_SOC_PMIC_MRFLD=m
-CONFIG_MFD_INTEL_LPSS=m
-CONFIG_MFD_INTEL_LPSS_ACPI=m
-CONFIG_MFD_INTEL_LPSS_PCI=m
-CONFIG_MFD_INTEL_PMC_BXT=m
-CONFIG_MFD_INTEL_PMT=m
-CONFIG_MFD_IQS62X=m
-CONFIG_MFD_JANZ_CMODIO=m
-CONFIG_MFD_KEMPLD=m
-CONFIG_MFD_88PM800=m
-CONFIG_MFD_88PM805=m
-CONFIG_MFD_88PM860X=y
-CONFIG_MFD_MAX14577=y
-CONFIG_MFD_MAX77693=y
-CONFIG_MFD_MAX77843=y
-CONFIG_MFD_MAX8907=m
-CONFIG_MFD_MAX8925=y
-CONFIG_MFD_MAX8997=y
-CONFIG_MFD_MAX8998=y
-CONFIG_MFD_MT6360=m
-CONFIG_MFD_MT6397=m
-CONFIG_MFD_MENF21BMC=m
-CONFIG_EZX_PCAP=y
-CONFIG_MFD_VIPERBOARD=m
-CONFIG_MFD_RETU=m
-CONFIG_MFD_PCF50633=m
-CONFIG_PCF50633_ADC=m
-CONFIG_PCF50633_GPIO=m
-CONFIG_UCB1400_CORE=m
-CONFIG_MFD_RDC321X=m
-CONFIG_MFD_RT5033=m
-CONFIG_MFD_RC5T583=y
-CONFIG_MFD_SEC_CORE=y
-CONFIG_MFD_SI476X_CORE=m
-CONFIG_MFD_SM501=m
-CONFIG_MFD_SM501_GPIO=y
-CONFIG_MFD_SKY81452=m
-CONFIG_MFD_SYSCON=y
-CONFIG_MFD_TI_AM335X_TSCADC=m
-CONFIG_MFD_LP3943=m
-CONFIG_MFD_LP8788=y
-CONFIG_MFD_TI_LMU=m
-CONFIG_MFD_PALMAS=y
-CONFIG_TPS6105X=m
-CONFIG_TPS65010=m
-CONFIG_TPS6507X=m
-CONFIG_MFD_TPS65086=m
-CONFIG_MFD_TPS65090=y
-# CONFIG_MFD_TPS68470 is not set
-CONFIG_MFD_TI_LP873X=m
-CONFIG_MFD_TPS6586X=y
-CONFIG_MFD_TPS65910=y
-CONFIG_MFD_TPS65912=y
-CONFIG_MFD_TPS65912_I2C=y
-CONFIG_MFD_TPS65912_SPI=y
-CONFIG_MFD_TPS80031=y
-CONFIG_TWL4030_CORE=y
-CONFIG_MFD_TWL4030_AUDIO=y
-CONFIG_TWL6040_CORE=y
-CONFIG_MFD_WL1273_CORE=m
-CONFIG_MFD_LM3533=m
-CONFIG_MFD_TQMX86=m
-CONFIG_MFD_VX855=m
-CONFIG_MFD_ARIZONA=y
-CONFIG_MFD_ARIZONA_I2C=m
-CONFIG_MFD_ARIZONA_SPI=m
-CONFIG_MFD_CS47L24=y
-CONFIG_MFD_WM5102=y
-CONFIG_MFD_WM5110=y
-CONFIG_MFD_WM8997=y
-CONFIG_MFD_WM8998=y
-CONFIG_MFD_WM8400=y
-CONFIG_MFD_WM831X=y
-CONFIG_MFD_WM831X_I2C=y
-CONFIG_MFD_WM831X_SPI=y
-CONFIG_MFD_WM8350=y
-CONFIG_MFD_WM8350_I2C=y
-CONFIG_MFD_WM8994=m
-CONFIG_MFD_ATC260X=m
-CONFIG_MFD_ATC260X_I2C=m
-CONFIG_RAVE_SP_CORE=m
-CONFIG_MFD_INTEL_M10_BMC=m
-# end of Multifunction device drivers
-
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_FIXED_VOLTAGE=m
-CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
-CONFIG_REGULATOR_USERSPACE_CONSUMER=m
-CONFIG_REGULATOR_88PG86X=m
-CONFIG_REGULATOR_88PM800=m
-CONFIG_REGULATOR_88PM8607=m
-CONFIG_REGULATOR_ACT8865=m
-CONFIG_REGULATOR_AD5398=m
-CONFIG_REGULATOR_AAT2870=m
-CONFIG_REGULATOR_ARIZONA_LDO1=m
-CONFIG_REGULATOR_ARIZONA_MICSUPP=m
-CONFIG_REGULATOR_AS3711=m
-CONFIG_REGULATOR_ATC260X=m
-CONFIG_REGULATOR_AXP20X=m
-CONFIG_REGULATOR_BCM590XX=m
-CONFIG_REGULATOR_BD9571MWV=m
-CONFIG_REGULATOR_DA903X=m
-CONFIG_REGULATOR_DA9052=m
-CONFIG_REGULATOR_DA9055=m
-CONFIG_REGULATOR_DA9062=m
-CONFIG_REGULATOR_DA9210=m
-CONFIG_REGULATOR_DA9211=m
-CONFIG_REGULATOR_FAN53555=m
-CONFIG_REGULATOR_GPIO=m
-CONFIG_REGULATOR_ISL9305=m
-CONFIG_REGULATOR_ISL6271A=m
-CONFIG_REGULATOR_LM363X=m
-CONFIG_REGULATOR_LP3971=m
-CONFIG_REGULATOR_LP3972=m
-CONFIG_REGULATOR_LP872X=m
-CONFIG_REGULATOR_LP8755=m
-CONFIG_REGULATOR_LP8788=m
-CONFIG_REGULATOR_LTC3589=m
-CONFIG_REGULATOR_LTC3676=m
-CONFIG_REGULATOR_MAX14577=m
-CONFIG_REGULATOR_MAX1586=m
-CONFIG_REGULATOR_MAX8649=m
-CONFIG_REGULATOR_MAX8660=m
-CONFIG_REGULATOR_MAX8907=m
-CONFIG_REGULATOR_MAX8925=m
-CONFIG_REGULATOR_MAX8952=m
-CONFIG_REGULATOR_MAX8997=m
-CONFIG_REGULATOR_MAX8998=m
-CONFIG_REGULATOR_MAX77693=m
-CONFIG_REGULATOR_MAX77826=m
-CONFIG_REGULATOR_MC13XXX_CORE=m
-CONFIG_REGULATOR_MC13783=m
-CONFIG_REGULATOR_MC13892=m
-CONFIG_REGULATOR_MP8859=m
-CONFIG_REGULATOR_MT6311=m
-CONFIG_REGULATOR_MT6315=m
-CONFIG_REGULATOR_MT6323=m
-CONFIG_REGULATOR_MT6358=m
-CONFIG_REGULATOR_MT6360=m
-CONFIG_REGULATOR_MT6397=m
-CONFIG_REGULATOR_PALMAS=m
-CONFIG_REGULATOR_PCA9450=m
-CONFIG_REGULATOR_PCAP=m
-CONFIG_REGULATOR_PCF50633=m
-CONFIG_REGULATOR_PV88060=m
-CONFIG_REGULATOR_PV88080=m
-CONFIG_REGULATOR_PV88090=m
-CONFIG_REGULATOR_PWM=m
-CONFIG_REGULATOR_QCOM_SPMI=m
-CONFIG_REGULATOR_QCOM_USB_VBUS=m
-CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
-CONFIG_REGULATOR_RC5T583=m
-CONFIG_REGULATOR_RT4801=m
-CONFIG_REGULATOR_RT5033=m
-CONFIG_REGULATOR_RTMV20=m
-CONFIG_REGULATOR_S2MPA01=m
-CONFIG_REGULATOR_S2MPS11=m
-CONFIG_REGULATOR_S5M8767=m
-CONFIG_REGULATOR_SKY81452=m
-CONFIG_REGULATOR_SLG51000=m
-CONFIG_REGULATOR_TPS51632=m
-CONFIG_REGULATOR_TPS6105X=m
-CONFIG_REGULATOR_TPS62360=m
-CONFIG_REGULATOR_TPS65023=m
-CONFIG_REGULATOR_TPS6507X=m
-CONFIG_REGULATOR_TPS65086=m
-CONFIG_REGULATOR_TPS65090=m
-CONFIG_REGULATOR_TPS65132=m
-CONFIG_REGULATOR_TPS6524X=m
-CONFIG_REGULATOR_TPS6586X=m
-CONFIG_REGULATOR_TPS65910=m
-CONFIG_REGULATOR_TPS65912=m
-CONFIG_REGULATOR_TPS80031=m
-CONFIG_REGULATOR_TWL4030=m
-CONFIG_REGULATOR_WM831X=m
-CONFIG_REGULATOR_WM8350=m
-CONFIG_REGULATOR_WM8400=m
-CONFIG_REGULATOR_WM8994=m
-CONFIG_REGULATOR_QCOM_LABIBB=m
-CONFIG_RC_CORE=m
-CONFIG_RC_MAP=m
-CONFIG_LIRC=y
-CONFIG_RC_DECODERS=y
-CONFIG_IR_NEC_DECODER=m
-CONFIG_IR_RC5_DECODER=m
-CONFIG_IR_RC6_DECODER=m
-CONFIG_IR_JVC_DECODER=m
-CONFIG_IR_SONY_DECODER=m
-CONFIG_IR_SANYO_DECODER=m
-CONFIG_IR_SHARP_DECODER=m
-CONFIG_IR_MCE_KBD_DECODER=m
-CONFIG_IR_XMP_DECODER=m
-CONFIG_IR_IMON_DECODER=m
-CONFIG_IR_RCMM_DECODER=m
-CONFIG_RC_DEVICES=y
-CONFIG_RC_ATI_REMOTE=m
-CONFIG_IR_ENE=m
-CONFIG_IR_IMON=m
-CONFIG_IR_IMON_RAW=m
-CONFIG_IR_MCEUSB=m
-CONFIG_IR_ITE_CIR=m
-CONFIG_IR_FINTEK=m
-CONFIG_IR_NUVOTON=m
-CONFIG_IR_REDRAT3=m
-CONFIG_IR_STREAMZAP=m
-CONFIG_IR_WINBOND_CIR=m
-CONFIG_IR_IGORPLUGUSB=m
-CONFIG_IR_IGUANA=m
-CONFIG_IR_TTUSBIR=m
-CONFIG_RC_LOOPBACK=m
-CONFIG_IR_SERIAL=m
-CONFIG_IR_SERIAL_TRANSMITTER=y
-CONFIG_IR_SIR=m
-CONFIG_RC_XBOX_DVD=m
-CONFIG_IR_TOY=m
-CONFIG_CEC_CORE=m
-CONFIG_CEC_NOTIFIER=y
-# CONFIG_MEDIA_CEC_RC is not set
-CONFIG_MEDIA_CEC_SUPPORT=y
-CONFIG_CEC_CH7322=m
-CONFIG_CEC_CROS_EC=m
-CONFIG_CEC_SECO=m
-CONFIG_CEC_SECO_RC=y
-CONFIG_USB_PULSE8_CEC=m
-CONFIG_USB_RAINSHADOW_CEC=m
-CONFIG_MEDIA_SUPPORT=m
-# CONFIG_MEDIA_SUPPORT_FILTER is not set
-CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
-
-#
-# Media device types
-#
-CONFIG_MEDIA_CAMERA_SUPPORT=y
-CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
-CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
-CONFIG_MEDIA_RADIO_SUPPORT=y
-CONFIG_MEDIA_SDR_SUPPORT=y
-CONFIG_MEDIA_PLATFORM_SUPPORT=y
-CONFIG_MEDIA_TEST_SUPPORT=y
-# end of Media device types
-
-#
-# Media core support
-#
-CONFIG_VIDEO_DEV=m
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_DVB_CORE=m
-# end of Media core support
-
-#
-# Video4Linux options
-#
-CONFIG_VIDEO_V4L2=m
-CONFIG_VIDEO_V4L2_I2C=y
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-CONFIG_VIDEO_TUNER=m
-CONFIG_V4L2_MEM2MEM_DEV=m
-CONFIG_V4L2_FLASH_LED_CLASS=m
-CONFIG_V4L2_FWNODE=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_DMA_SG=m
-CONFIG_VIDEOBUF_VMALLOC=m
-# end of Video4Linux options
-
-#
-# Media controller options
-#
-CONFIG_MEDIA_CONTROLLER_DVB=y
-CONFIG_MEDIA_CONTROLLER_REQUEST_API=y
-
-#
-# Please notice that the enabled Media controller Request API is EXPERIMENTAL
-#
-# end of Media controller options
-
-#
-# Digital TV options
-#
-# CONFIG_DVB_MMAP is not set
-CONFIG_DVB_NET=y
-CONFIG_DVB_MAX_ADAPTERS=8
-CONFIG_DVB_DYNAMIC_MINORS=y
-# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
-# CONFIG_DVB_ULE_DEBUG is not set
-# end of Digital TV options
-
-#
-# Media drivers
-#
-CONFIG_TTPCI_EEPROM=m
-CONFIG_MEDIA_USB_SUPPORT=y
-
-#
-# Webcam devices
-#
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
-CONFIG_USB_GSPCA_BENQ=m
-CONFIG_USB_GSPCA_CONEX=m
-CONFIG_USB_GSPCA_CPIA1=m
-CONFIG_USB_GSPCA_DTCS033=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_USB_GSPCA_JL2005BCD=m
-CONFIG_USB_GSPCA_KINECT=m
-CONFIG_USB_GSPCA_KONICA=m
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_USB_GSPCA_SE401=m
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-CONFIG_USB_GSPCA_SPCA1528=m
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_USB_GSPCA_STK014=m
-CONFIG_USB_GSPCA_STK1135=m
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-CONFIG_USB_GSPCA_TOPRO=m
-CONFIG_USB_GSPCA_TOUPTEK=m
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_VICAM=m
-CONFIG_USB_GSPCA_XIRLINK_CIT=m
-CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_USB_PWC=m
-# CONFIG_USB_PWC_DEBUG is not set
-CONFIG_USB_PWC_INPUT_EVDEV=y
-CONFIG_VIDEO_CPIA2=m
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-CONFIG_VIDEO_USBTV=m
-
-#
-# Analog TV USB devices
-#
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-CONFIG_VIDEO_PVRUSB2_DVB=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-CONFIG_VIDEO_HDPVR=m
-CONFIG_VIDEO_STK1160_COMMON=m
-CONFIG_VIDEO_STK1160=m
-CONFIG_VIDEO_GO7007=m
-CONFIG_VIDEO_GO7007_USB=m
-CONFIG_VIDEO_GO7007_LOADER=m
-CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
-
-#
-# Analog/digital TV USB devices
-#
-CONFIG_VIDEO_AU0828=m
-CONFIG_VIDEO_AU0828_V4L2=y
-CONFIG_VIDEO_AU0828_RC=y
-CONFIG_VIDEO_CX231XX=m
-CONFIG_VIDEO_CX231XX_RC=y
-CONFIG_VIDEO_CX231XX_ALSA=m
-CONFIG_VIDEO_CX231XX_DVB=m
-CONFIG_VIDEO_TM6000=m
-CONFIG_VIDEO_TM6000_ALSA=m
-CONFIG_VIDEO_TM6000_DVB=m
-
-#
-# Digital TV USB devices
-#
-CONFIG_DVB_USB=m
-# CONFIG_DVB_USB_DEBUG is not set
-CONFIG_DVB_USB_DIB3000MC=m
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_DVB_USB_CXUSB_ANALOG=y
-CONFIG_DVB_USB_M920X=m
-CONFIG_DVB_USB_DIGITV=m
-CONFIG_DVB_USB_VP7045=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-CONFIG_DVB_USB_PCTV452E=m
-CONFIG_DVB_USB_DW2102=m
-CONFIG_DVB_USB_CINERGY_T2=m
-CONFIG_DVB_USB_DTV5100=m
-CONFIG_DVB_USB_AZ6027=m
-CONFIG_DVB_USB_TECHNISAT_USB2=m
-CONFIG_DVB_USB_V2=m
-CONFIG_DVB_USB_AF9015=m
-CONFIG_DVB_USB_AF9035=m
-CONFIG_DVB_USB_ANYSEE=m
-CONFIG_DVB_USB_AU6610=m
-CONFIG_DVB_USB_AZ6007=m
-CONFIG_DVB_USB_CE6230=m
-CONFIG_DVB_USB_EC168=m
-CONFIG_DVB_USB_GL861=m
-CONFIG_DVB_USB_LME2510=m
-CONFIG_DVB_USB_MXL111SF=m
-CONFIG_DVB_USB_RTL28XXU=m
-CONFIG_DVB_USB_DVBSKY=m
-CONFIG_DVB_USB_ZD1301=m
-CONFIG_DVB_TTUSB_BUDGET=m
-CONFIG_DVB_TTUSB_DEC=m
-CONFIG_SMS_USB_DRV=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
-# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
-CONFIG_DVB_AS102=m
-
-#
-# Webcam, TV (analog/digital) USB devices
-#
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_V4L2=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_EM28XX_DVB=m
-CONFIG_VIDEO_EM28XX_RC=m
-
-#
-# Software defined radio USB devices
-#
-CONFIG_USB_AIRSPY=m
-CONFIG_USB_HACKRF=m
-CONFIG_USB_MSI2500=m
-CONFIG_MEDIA_PCI_SUPPORT=y
-
-#
-# Media capture support
-#
-CONFIG_VIDEO_MEYE=m
-CONFIG_VIDEO_SOLO6X10=m
-CONFIG_VIDEO_TW5864=m
-CONFIG_VIDEO_TW68=m
-CONFIG_VIDEO_TW686X=m
-
-#
-# Media capture/analog TV support
-#
-CONFIG_VIDEO_IVTV=m
-# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set
-CONFIG_VIDEO_IVTV_ALSA=m
-CONFIG_VIDEO_FB_IVTV=m
-# CONFIG_VIDEO_FB_IVTV_FORCE_PAT is not set
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_MXB=m
-CONFIG_VIDEO_DT3155=m
-
-#
-# Media capture/analog/hybrid TV support
-#
-CONFIG_VIDEO_CX18=m
-CONFIG_VIDEO_CX18_ALSA=m
-CONFIG_VIDEO_CX23885=m
-CONFIG_MEDIA_ALTERA_CI=m
-CONFIG_VIDEO_CX25821=m
-CONFIG_VIDEO_CX25821_ALSA=m
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_CX88_ALSA=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-CONFIG_VIDEO_CX88_DVB=m
-CONFIG_VIDEO_CX88_ENABLE_VP3054=y
-CONFIG_VIDEO_CX88_VP3054=m
-CONFIG_VIDEO_CX88_MPEG=m
-CONFIG_VIDEO_BT848=m
-CONFIG_DVB_BT8XX=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_ALSA=m
-CONFIG_VIDEO_SAA7134_RC=y
-CONFIG_VIDEO_SAA7134_DVB=m
-CONFIG_VIDEO_SAA7134_GO7007=m
-CONFIG_VIDEO_SAA7164=m
-CONFIG_VIDEO_COBALT=m
-
-#
-# Media digital TV PCI Adapters
-#
-CONFIG_DVB_AV7110_IR=y
-CONFIG_DVB_AV7110=m
-CONFIG_DVB_AV7110_OSD=y
-CONFIG_DVB_BUDGET_CORE=m
-CONFIG_DVB_BUDGET=m
-CONFIG_DVB_BUDGET_CI=m
-CONFIG_DVB_BUDGET_AV=m
-CONFIG_DVB_BUDGET_PATCH=m
-CONFIG_DVB_B2C2_FLEXCOP_PCI=m
-# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set
-CONFIG_DVB_PLUTO2=m
-CONFIG_DVB_DM1105=m
-CONFIG_DVB_PT1=m
-CONFIG_DVB_PT3=m
-CONFIG_MANTIS_CORE=m
-CONFIG_DVB_MANTIS=m
-CONFIG_DVB_HOPPER=m
-CONFIG_DVB_NGENE=m
-CONFIG_DVB_DDBRIDGE=m
-# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set
-CONFIG_DVB_SMIPCIE=m
-CONFIG_DVB_NETUP_UNIDVB=m
-CONFIG_VIDEO_IPU3_CIO2=m
-CONFIG_CIO2_BRIDGE=y
-CONFIG_RADIO_ADAPTERS=y
-CONFIG_RADIO_TEA575X=m
-CONFIG_RADIO_SI470X=m
-CONFIG_USB_SI470X=m
-CONFIG_I2C_SI470X=m
-CONFIG_RADIO_SI4713=m
-CONFIG_USB_SI4713=m
-CONFIG_PLATFORM_SI4713=m
-CONFIG_I2C_SI4713=m
-CONFIG_RADIO_SI476X=m
-CONFIG_USB_MR800=m
-CONFIG_USB_DSBR=m
-CONFIG_RADIO_MAXIRADIO=m
-CONFIG_RADIO_SHARK=m
-CONFIG_RADIO_SHARK2=m
-CONFIG_USB_KEENE=m
-CONFIG_USB_RAREMONO=m
-CONFIG_USB_MA901=m
-CONFIG_RADIO_TEA5764=m
-CONFIG_RADIO_SAA7706H=m
-CONFIG_RADIO_TEF6862=m
-CONFIG_RADIO_WL1273=m
-CONFIG_RADIO_WL128X=m
-CONFIG_MEDIA_COMMON_OPTIONS=y
-
-#
-# common driver options
-#
-CONFIG_VIDEO_CX2341X=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_CYPRESS_FIRMWARE=m
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_V4L2=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_DMA_CONTIG=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-CONFIG_VIDEOBUF2_DMA_SG=m
-CONFIG_VIDEOBUF2_DVB=m
-CONFIG_DVB_B2C2_FLEXCOP=m
-CONFIG_VIDEO_SAA7146=m
-CONFIG_VIDEO_SAA7146_VV=m
-CONFIG_SMS_SIANO_MDTV=m
-CONFIG_SMS_SIANO_RC=y
-CONFIG_SMS_SIANO_DEBUGFS=y
-CONFIG_VIDEO_V4L2_TPG=m
-CONFIG_V4L_PLATFORM_DRIVERS=y
-CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_VIDEO_VIA_CAMERA=m
-CONFIG_VIDEO_CADENCE=y
-CONFIG_VIDEO_CADENCE_CSI2RX=m
-CONFIG_VIDEO_CADENCE_CSI2TX=m
-CONFIG_VIDEO_ASPEED=m
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
-CONFIG_DVB_PLATFORM_DRIVERS=y
-CONFIG_SDR_PLATFORM_DRIVERS=y
-
-#
-# MMC/SDIO DVB adapters
-#
-CONFIG_SMS_SDIO_DRV=m
-CONFIG_V4L_TEST_DRIVERS=y
-# CONFIG_VIDEO_VIMC is not set
-CONFIG_VIDEO_VIVID=m
-CONFIG_VIDEO_VIVID_CEC=y
-CONFIG_VIDEO_VIVID_MAX_DEVS=64
-CONFIG_VIDEO_VIM2M=m
-CONFIG_VIDEO_VICODEC=m
-# CONFIG_DVB_TEST_DRIVERS is not set
-
-#
-# FireWire (IEEE 1394) Adapters
-#
-CONFIG_DVB_FIREDTV=m
-CONFIG_DVB_FIREDTV_INPUT=y
-# end of Media drivers
-
-#
-# Media ancillary drivers
-#
-CONFIG_MEDIA_ATTACH=y
-
-#
-# IR I2C driver auto-selected by 'Autoselect ancillary drivers'
-#
-CONFIG_VIDEO_IR_I2C=m
-
-#
-# Audio decoders, processors and mixers
-#
-CONFIG_VIDEO_TVAUDIO=m
-CONFIG_VIDEO_TDA7432=m
-CONFIG_VIDEO_TDA9840=m
-CONFIG_VIDEO_TDA1997X=m
-CONFIG_VIDEO_TEA6415C=m
-CONFIG_VIDEO_TEA6420=m
-CONFIG_VIDEO_MSP3400=m
-CONFIG_VIDEO_CS3308=m
-CONFIG_VIDEO_CS5345=m
-CONFIG_VIDEO_CS53L32A=m
-CONFIG_VIDEO_TLV320AIC23B=m
-CONFIG_VIDEO_UDA1342=m
-CONFIG_VIDEO_WM8775=m
-CONFIG_VIDEO_WM8739=m
-CONFIG_VIDEO_VP27SMPX=m
-CONFIG_VIDEO_SONY_BTF_MPX=m
-# end of Audio decoders, processors and mixers
-
-#
-# RDS decoders
-#
-CONFIG_VIDEO_SAA6588=m
-# end of RDS decoders
-
-#
-# Video decoders
-#
-CONFIG_VIDEO_ADV7180=m
-CONFIG_VIDEO_ADV7183=m
-CONFIG_VIDEO_ADV7604=m
-CONFIG_VIDEO_ADV7604_CEC=y
-CONFIG_VIDEO_ADV7842=m
-CONFIG_VIDEO_ADV7842_CEC=y
-CONFIG_VIDEO_BT819=m
-CONFIG_VIDEO_BT856=m
-CONFIG_VIDEO_BT866=m
-CONFIG_VIDEO_KS0127=m
-CONFIG_VIDEO_ML86V7667=m
-CONFIG_VIDEO_SAA7110=m
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_TC358743=m
-CONFIG_VIDEO_TC358743_CEC=y
-CONFIG_VIDEO_TVP514X=m
-CONFIG_VIDEO_TVP5150=m
-CONFIG_VIDEO_TVP7002=m
-CONFIG_VIDEO_TW2804=m
-CONFIG_VIDEO_TW9903=m
-CONFIG_VIDEO_TW9906=m
-CONFIG_VIDEO_TW9910=m
-CONFIG_VIDEO_VPX3220=m
-
-#
-# Video and audio decoders
-#
-CONFIG_VIDEO_SAA717X=m
-CONFIG_VIDEO_CX25840=m
-# end of Video decoders
-
-#
-# Video encoders
-#
-CONFIG_VIDEO_SAA7127=m
-CONFIG_VIDEO_SAA7185=m
-CONFIG_VIDEO_ADV7170=m
-CONFIG_VIDEO_ADV7175=m
-CONFIG_VIDEO_ADV7343=m
-CONFIG_VIDEO_ADV7393=m
-CONFIG_VIDEO_ADV7511=m
-CONFIG_VIDEO_ADV7511_CEC=y
-CONFIG_VIDEO_AD9389B=m
-CONFIG_VIDEO_AK881X=m
-CONFIG_VIDEO_THS8200=m
-# end of Video encoders
-
-#
-# Video improvement chips
-#
-CONFIG_VIDEO_UPD64031A=m
-CONFIG_VIDEO_UPD64083=m
-# end of Video improvement chips
-
-#
-# Audio/Video compression chips
-#
-CONFIG_VIDEO_SAA6752HS=m
-# end of Audio/Video compression chips
-
-#
-# SDR tuner chips
-#
-CONFIG_SDR_MAX2175=m
-# end of SDR tuner chips
-
-#
-# Miscellaneous helper chips
-#
-CONFIG_VIDEO_THS7303=m
-CONFIG_VIDEO_M52790=m
-CONFIG_VIDEO_I2C=m
-CONFIG_VIDEO_ST_MIPID02=m
-# end of Miscellaneous helper chips
-
-#
-# Camera sensor devices
-#
-CONFIG_VIDEO_APTINA_PLL=m
-CONFIG_VIDEO_CCS_PLL=m
-CONFIG_VIDEO_HI556=m
-CONFIG_VIDEO_IMX214=m
-CONFIG_VIDEO_IMX219=m
-CONFIG_VIDEO_IMX258=m
-CONFIG_VIDEO_IMX274=m
-CONFIG_VIDEO_IMX290=m
-CONFIG_VIDEO_IMX319=m
-CONFIG_VIDEO_IMX355=m
-CONFIG_VIDEO_OV02A10=m
-CONFIG_VIDEO_OV2640=m
-CONFIG_VIDEO_OV2659=m
-CONFIG_VIDEO_OV2680=m
-CONFIG_VIDEO_OV2685=m
-CONFIG_VIDEO_OV2740=m
-CONFIG_VIDEO_OV5647=m
-CONFIG_VIDEO_OV5648=m
-CONFIG_VIDEO_OV6650=m
-CONFIG_VIDEO_OV5670=m
-CONFIG_VIDEO_OV5675=m
-CONFIG_VIDEO_OV5695=m
-CONFIG_VIDEO_OV7251=m
-CONFIG_VIDEO_OV772X=m
-CONFIG_VIDEO_OV7640=m
-CONFIG_VIDEO_OV7670=m
-CONFIG_VIDEO_OV7740=m
-CONFIG_VIDEO_OV8856=m
-CONFIG_VIDEO_OV8865=m
-CONFIG_VIDEO_OV9640=m
-CONFIG_VIDEO_OV9650=m
-CONFIG_VIDEO_OV9734=m
-CONFIG_VIDEO_OV13858=m
-CONFIG_VIDEO_VS6624=m
-CONFIG_VIDEO_MT9M001=m
-CONFIG_VIDEO_MT9M032=m
-CONFIG_VIDEO_MT9M111=m
-CONFIG_VIDEO_MT9P031=m
-CONFIG_VIDEO_MT9T001=m
-CONFIG_VIDEO_MT9T112=m
-CONFIG_VIDEO_MT9V011=m
-CONFIG_VIDEO_MT9V032=m
-CONFIG_VIDEO_MT9V111=m
-CONFIG_VIDEO_SR030PC30=m
-CONFIG_VIDEO_NOON010PC30=m
-CONFIG_VIDEO_M5MOLS=m
-CONFIG_VIDEO_MAX9271_LIB=m
-CONFIG_VIDEO_RDACM20=m
-CONFIG_VIDEO_RDACM21=m
-CONFIG_VIDEO_RJ54N1=m
-CONFIG_VIDEO_S5K6AA=m
-CONFIG_VIDEO_S5K6A3=m
-CONFIG_VIDEO_S5K4ECGX=m
-CONFIG_VIDEO_S5K5BAF=m
-CONFIG_VIDEO_CCS=m
-CONFIG_VIDEO_ET8EK8=m
-CONFIG_VIDEO_S5C73M3=m
-# end of Camera sensor devices
-
-#
-# Lens drivers
-#
-CONFIG_VIDEO_AD5820=m
-CONFIG_VIDEO_AK7375=m
-CONFIG_VIDEO_DW9714=m
-CONFIG_VIDEO_DW9768=m
-CONFIG_VIDEO_DW9807_VCM=m
-# end of Lens drivers
-
-#
-# Flash devices
-#
-CONFIG_VIDEO_ADP1653=m
-CONFIG_VIDEO_LM3560=m
-CONFIG_VIDEO_LM3646=m
-# end of Flash devices
-
-#
-# SPI helper chips
-#
-CONFIG_VIDEO_GS1662=m
-# end of SPI helper chips
-
-#
-# Media SPI Adapters
-#
-CONFIG_CXD2880_SPI_DRV=m
-# end of Media SPI Adapters
-
-CONFIG_MEDIA_TUNER=m
-
-#
-# Customize TV tuners
-#
-CONFIG_MEDIA_TUNER_SIMPLE=m
-CONFIG_MEDIA_TUNER_TDA18250=m
-CONFIG_MEDIA_TUNER_TDA8290=m
-CONFIG_MEDIA_TUNER_TDA827X=m
-CONFIG_MEDIA_TUNER_TDA18271=m
-CONFIG_MEDIA_TUNER_TDA9887=m
-CONFIG_MEDIA_TUNER_TEA5761=m
-CONFIG_MEDIA_TUNER_TEA5767=m
-CONFIG_MEDIA_TUNER_MSI001=m
-CONFIG_MEDIA_TUNER_MT20XX=m
-CONFIG_MEDIA_TUNER_MT2060=m
-CONFIG_MEDIA_TUNER_MT2063=m
-CONFIG_MEDIA_TUNER_MT2266=m
-CONFIG_MEDIA_TUNER_MT2131=m
-CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_XC4000=m
-CONFIG_MEDIA_TUNER_MXL5005S=m
-CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=m
-CONFIG_MEDIA_TUNER_MAX2165=m
-CONFIG_MEDIA_TUNER_TDA18218=m
-CONFIG_MEDIA_TUNER_FC0011=m
-CONFIG_MEDIA_TUNER_FC0012=m
-CONFIG_MEDIA_TUNER_FC0013=m
-CONFIG_MEDIA_TUNER_TDA18212=m
-CONFIG_MEDIA_TUNER_E4000=m
-CONFIG_MEDIA_TUNER_FC2580=m
-CONFIG_MEDIA_TUNER_M88RS6000T=m
-CONFIG_MEDIA_TUNER_TUA9001=m
-CONFIG_MEDIA_TUNER_SI2157=m
-CONFIG_MEDIA_TUNER_IT913X=m
-CONFIG_MEDIA_TUNER_R820T=m
-CONFIG_MEDIA_TUNER_MXL301RF=m
-CONFIG_MEDIA_TUNER_QM1D1C0042=m
-CONFIG_MEDIA_TUNER_QM1D1B0004=m
-# end of Customize TV tuners
-
-#
-# Customise DVB Frontends
-#
-
-#
-# Multistandard (satellite) frontends
-#
-CONFIG_DVB_STB0899=m
-CONFIG_DVB_STB6100=m
-CONFIG_DVB_STV090x=m
-CONFIG_DVB_STV0910=m
-CONFIG_DVB_STV6110x=m
-CONFIG_DVB_STV6111=m
-CONFIG_DVB_MXL5XX=m
-CONFIG_DVB_M88DS3103=m
-
-#
-# Multistandard (cable + terrestrial) frontends
-#
-CONFIG_DVB_DRXK=m
-CONFIG_DVB_TDA18271C2DD=m
-CONFIG_DVB_SI2165=m
-CONFIG_DVB_MN88472=m
-CONFIG_DVB_MN88473=m
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_CX24110=m
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_ZL10036=m
-CONFIG_DVB_ZL10039=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0288=m
-CONFIG_DVB_STB6000=m
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_STV6110=m
-CONFIG_DVB_STV0900=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_TDA8261=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TUNER_CX24113=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TUA6100=m
-CONFIG_DVB_CX24116=m
-CONFIG_DVB_CX24117=m
-CONFIG_DVB_CX24120=m
-CONFIG_DVB_SI21XX=m
-CONFIG_DVB_TS2020=m
-CONFIG_DVB_DS3000=m
-CONFIG_DVB_MB86A16=m
-CONFIG_DVB_TDA10071=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_SP887X=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_S5H1432=m
-CONFIG_DVB_DRXD=m
-CONFIG_DVB_L64781=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_DIB3000MB=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_DVB_DIB7000P=m
-CONFIG_DVB_DIB9000=m
-CONFIG_DVB_TDA10048=m
-CONFIG_DVB_AF9013=m
-CONFIG_DVB_EC100=m
-CONFIG_DVB_STV0367=m
-CONFIG_DVB_CXD2820R=m
-CONFIG_DVB_CXD2841ER=m
-CONFIG_DVB_RTL2830=m
-CONFIG_DVB_RTL2832=m
-CONFIG_DVB_RTL2832_SDR=m
-CONFIG_DVB_SI2168=m
-CONFIG_DVB_AS102_FE=m
-CONFIG_DVB_ZD1301_DEMOD=m
-CONFIG_DVB_GP8PSK_FE=m
-CONFIG_DVB_CXD2880=m
-
-#
-# DVB-C (cable) frontends
-#
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
-CONFIG_DVB_NXT200X=m
-CONFIG_DVB_OR51211=m
-CONFIG_DVB_OR51132=m
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-CONFIG_DVB_LGDT3305=m
-CONFIG_DVB_LGDT3306A=m
-CONFIG_DVB_LG2160=m
-CONFIG_DVB_S5H1409=m
-CONFIG_DVB_AU8522=m
-CONFIG_DVB_AU8522_DTV=m
-CONFIG_DVB_AU8522_V4L=m
-CONFIG_DVB_S5H1411=m
-CONFIG_DVB_MXL692=m
-
-#
-# ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_S921=m
-CONFIG_DVB_DIB8000=m
-CONFIG_DVB_MB86A20S=m
-
-#
-# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_TC90522=m
-CONFIG_DVB_MN88443X=m
-
-#
-# Digital terrestrial only tuners/PLL
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TUNER_DIB0070=m
-CONFIG_DVB_TUNER_DIB0090=m
-
-#
-# SEC control devices for DVB-S
-#
-CONFIG_DVB_DRX39XYJ=m
-CONFIG_DVB_LNBH25=m
-CONFIG_DVB_LNBH29=m
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_LNBP22=m
-CONFIG_DVB_ISL6405=m
-CONFIG_DVB_ISL6421=m
-CONFIG_DVB_ISL6423=m
-CONFIG_DVB_A8293=m
-CONFIG_DVB_LGS8GL5=m
-CONFIG_DVB_LGS8GXX=m
-CONFIG_DVB_ATBM8830=m
-CONFIG_DVB_TDA665x=m
-CONFIG_DVB_IX2505V=m
-CONFIG_DVB_M88RS2000=m
-CONFIG_DVB_AF9033=m
-CONFIG_DVB_HORUS3A=m
-CONFIG_DVB_ASCOT2E=m
-CONFIG_DVB_HELENE=m
-
-#
-# Common Interface (EN50221) controller drivers
-#
-CONFIG_DVB_CXD2099=m
-CONFIG_DVB_SP2=m
-# end of Customise DVB Frontends
-
-#
-# Tools to develop new frontends
-#
-CONFIG_DVB_DUMMY_FE=m
-# end of Media ancillary drivers
-
-#
-# Graphics support
-#
-CONFIG_AGP=y
-CONFIG_AGP_AMD64=y
-CONFIG_AGP_INTEL=y
-CONFIG_AGP_SIS=m
-CONFIG_AGP_VIA=y
-CONFIG_INTEL_GTT=y
-CONFIG_VGA_ARB=y
-CONFIG_VGA_ARB_MAX_GPUS=16
-CONFIG_VGA_SWITCHEROO=y
-CONFIG_DRM=m
-CONFIG_DRM_MIPI_DBI=m
-CONFIG_DRM_MIPI_DSI=y
-# CONFIG_DRM_DP_AUX_CHARDEV is not set
-# CONFIG_DRM_DEBUG_SELFTEST is not set
-CONFIG_DRM_KMS_HELPER=m
-CONFIG_DRM_KMS_FB_HELPER=y
-# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set
-CONFIG_DRM_FBDEV_EMULATION=y
-CONFIG_DRM_FBDEV_OVERALLOC=100
-# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
-CONFIG_DRM_LOAD_EDID_FIRMWARE=y
-# CONFIG_DRM_DP_CEC is not set
-CONFIG_DRM_TTM=m
-CONFIG_DRM_VRAM_HELPER=m
-CONFIG_DRM_TTM_HELPER=m
-CONFIG_DRM_GEM_CMA_HELPER=y
-CONFIG_DRM_KMS_CMA_HELPER=y
-CONFIG_DRM_GEM_SHMEM_HELPER=y
-CONFIG_DRM_SCHED=m
-
-#
-# I2C encoder or helper chips
-#
-CONFIG_DRM_I2C_CH7006=m
-CONFIG_DRM_I2C_SIL164=m
-CONFIG_DRM_I2C_NXP_TDA998X=m
-CONFIG_DRM_I2C_NXP_TDA9950=m
-# end of I2C encoder or helper chips
-
-#
-# ARM devices
-#
-# end of ARM devices
-
-CONFIG_DRM_RADEON=m
-# CONFIG_DRM_RADEON_USERPTR is not set
-CONFIG_DRM_AMDGPU=m
-# CONFIG_DRM_AMDGPU_SI is not set
-# CONFIG_DRM_AMDGPU_CIK is not set
-CONFIG_DRM_AMDGPU_USERPTR=y
-
-#
-# ACP (Audio CoProcessor) Configuration
-#
-# CONFIG_DRM_AMD_ACP is not set
-# end of ACP (Audio CoProcessor) Configuration
-
-#
-# Display Engine Configuration
-#
-CONFIG_DRM_AMD_DC=y
-CONFIG_DRM_AMD_DC_DCN=y
-# CONFIG_DRM_AMD_DC_HDCP is not set
-CONFIG_DRM_AMD_DC_SI=y
-# CONFIG_DEBUG_KERNEL_DC is not set
-CONFIG_DRM_AMD_SECURE_DISPLAY=y
-# end of Display Engine Configuration
-
-# CONFIG_HSA_AMD is not set
-CONFIG_DRM_NOUVEAU=m
-# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
-CONFIG_NOUVEAU_DEBUG=5
-CONFIG_NOUVEAU_DEBUG_DEFAULT=3
-# CONFIG_NOUVEAU_DEBUG_MMU is not set
-# CONFIG_NOUVEAU_DEBUG_PUSH is not set
-CONFIG_DRM_NOUVEAU_BACKLIGHT=y
-CONFIG_DRM_I915=m
-CONFIG_DRM_I915_FORCE_PROBE=""
-CONFIG_DRM_I915_CAPTURE_ERROR=y
-CONFIG_DRM_I915_COMPRESS_ERROR=y
-CONFIG_DRM_I915_USERPTR=y
-# CONFIG_DRM_I915_GVT is not set
-
-#
-# drm/i915 Debugging
-#
-# CONFIG_DRM_I915_WERROR is not set
-# CONFIG_DRM_I915_DEBUG is not set
-# CONFIG_DRM_I915_DEBUG_MMIO is not set
-# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
-# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
-# CONFIG_DRM_I915_DEBUG_GUC is not set
-# CONFIG_DRM_I915_SELFTEST is not set
-# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
-# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
-# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
-# end of drm/i915 Debugging
-
-#
-# drm/i915 Profile Guided Optimisation
-#
-CONFIG_DRM_I915_REQUEST_TIMEOUT=20000
-CONFIG_DRM_I915_FENCE_TIMEOUT=10000
-CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
-CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
-CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
-CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
-CONFIG_DRM_I915_STOP_TIMEOUT=100
-CONFIG_DRM_I915_TIMESLICE_DURATION=1
-# end of drm/i915 Profile Guided Optimisation
-
-CONFIG_DRM_VGEM=m
-# CONFIG_DRM_VKMS is not set
-CONFIG_DRM_VMWGFX=m
-CONFIG_DRM_VMWGFX_FBCON=y
-CONFIG_DRM_GMA500=m
-CONFIG_DRM_UDL=m
-CONFIG_DRM_AST=m
-# CONFIG_DRM_MGAG200 is not set
-CONFIG_DRM_QXL=m
-CONFIG_DRM_BOCHS=m
-CONFIG_DRM_VIRTIO_GPU=m
-CONFIG_DRM_PANEL=y
-
-#
-# Display Panels
-#
-# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
-# end of Display Panels
-
-CONFIG_DRM_BRIDGE=y
-CONFIG_DRM_PANEL_BRIDGE=y
-
-#
-# Display Interface Bridges
-#
-CONFIG_DRM_ANALOGIX_ANX78XX=m
-CONFIG_DRM_ANALOGIX_DP=m
-# end of Display Interface Bridges
-
-# CONFIG_DRM_ETNAVIV is not set
-CONFIG_DRM_CIRRUS_QEMU=m
-CONFIG_DRM_GM12U320=m
-CONFIG_TINYDRM_HX8357D=m
-CONFIG_TINYDRM_ILI9225=m
-CONFIG_TINYDRM_ILI9341=m
-CONFIG_TINYDRM_ILI9486=m
-CONFIG_TINYDRM_MI0283QT=m
-CONFIG_TINYDRM_REPAPER=m
-CONFIG_TINYDRM_ST7586=m
-CONFIG_TINYDRM_ST7735R=m
-CONFIG_DRM_XEN=y
-CONFIG_DRM_XEN_FRONTEND=m
-CONFIG_DRM_VBOXVIDEO=m
-CONFIG_DRM_GUD=m
-# CONFIG_DRM_LEGACY is not set
-CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
-
-#
-# Frame buffer Devices
-#
-CONFIG_FB_CMDLINE=y
-CONFIG_FB_NOTIFY=y
-CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
-CONFIG_FB_DDC=m
-CONFIG_FB_BOOT_VESA_SUPPORT=y
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-CONFIG_FB_SYS_FILLRECT=m
-CONFIG_FB_SYS_COPYAREA=m
-CONFIG_FB_SYS_IMAGEBLIT=m
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=m
-CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_HECUBA=m
-CONFIG_FB_SVGALIB=m
-CONFIG_FB_BACKLIGHT=m
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-CONFIG_FB_CIRRUS=m
-CONFIG_FB_PM2=m
-CONFIG_FB_PM2_FIFO_DISCONNECT=y
-CONFIG_FB_CYBER2000=m
-CONFIG_FB_CYBER2000_DDC=y
-CONFIG_FB_ARC=m
-CONFIG_FB_ASILIANT=y
-CONFIG_FB_IMSTT=y
-CONFIG_FB_VGA16=m
-CONFIG_FB_UVESA=m
-CONFIG_FB_VESA=y
-CONFIG_FB_EFI=y
-CONFIG_FB_N411=m
-CONFIG_FB_HGA=m
-CONFIG_FB_OPENCORES=m
-CONFIG_FB_S1D13XXX=m
-# CONFIG_FB_NVIDIA is not set
-CONFIG_FB_RIVA=m
-CONFIG_FB_RIVA_I2C=y
-# CONFIG_FB_RIVA_DEBUG is not set
-CONFIG_FB_RIVA_BACKLIGHT=y
-CONFIG_FB_I740=m
-CONFIG_FB_LE80578=m
-CONFIG_FB_CARILLO_RANCH=m
-CONFIG_FB_INTEL=m
-# CONFIG_FB_INTEL_DEBUG is not set
-CONFIG_FB_INTEL_I2C=y
-CONFIG_FB_MATROX=m
-CONFIG_FB_MATROX_MILLENIUM=y
-CONFIG_FB_MATROX_MYSTIQUE=y
-CONFIG_FB_MATROX_G=y
-CONFIG_FB_MATROX_I2C=m
-CONFIG_FB_MATROX_MAVEN=m
-CONFIG_FB_RADEON=m
-CONFIG_FB_RADEON_I2C=y
-CONFIG_FB_RADEON_BACKLIGHT=y
-# CONFIG_FB_RADEON_DEBUG is not set
-CONFIG_FB_ATY128=m
-CONFIG_FB_ATY128_BACKLIGHT=y
-CONFIG_FB_ATY=m
-CONFIG_FB_ATY_CT=y
-# CONFIG_FB_ATY_GENERIC_LCD is not set
-CONFIG_FB_ATY_GX=y
-CONFIG_FB_ATY_BACKLIGHT=y
-CONFIG_FB_S3=m
-CONFIG_FB_S3_DDC=y
-CONFIG_FB_SAVAGE=m
-CONFIG_FB_SAVAGE_I2C=y
-# CONFIG_FB_SAVAGE_ACCEL is not set
-CONFIG_FB_SIS=m
-CONFIG_FB_SIS_300=y
-CONFIG_FB_SIS_315=y
-CONFIG_FB_VIA=m
-# CONFIG_FB_VIA_DIRECT_PROCFS is not set
-CONFIG_FB_VIA_X_COMPATIBILITY=y
-CONFIG_FB_NEOMAGIC=m
-CONFIG_FB_KYRO=m
-CONFIG_FB_3DFX=m
-# CONFIG_FB_3DFX_ACCEL is not set
-# CONFIG_FB_3DFX_I2C is not set
-CONFIG_FB_VOODOO1=m
-CONFIG_FB_VT8623=m
-CONFIG_FB_TRIDENT=m
-CONFIG_FB_ARK=m
-CONFIG_FB_PM3=m
-CONFIG_FB_CARMINE=m
-CONFIG_FB_CARMINE_DRAM_EVAL=y
-# CONFIG_CARMINE_DRAM_CUSTOM is not set
-CONFIG_FB_SM501=m
-CONFIG_FB_SMSCUFX=m
-CONFIG_FB_UDL=m
-CONFIG_FB_IBM_GXT4500=m
-# CONFIG_FB_VIRTUAL is not set
-CONFIG_XEN_FBDEV_FRONTEND=m
-CONFIG_FB_METRONOME=m
-CONFIG_FB_MB862XX=m
-CONFIG_FB_MB862XX_PCI_GDC=y
-CONFIG_FB_MB862XX_I2C=y
-CONFIG_FB_HYPERV=m
-CONFIG_FB_SIMPLE=y
-CONFIG_FB_SM712=m
-# end of Frame buffer Devices
-
-#
-# Backlight & LCD device support
-#
-CONFIG_LCD_CLASS_DEVICE=m
-CONFIG_LCD_L4F00242T03=m
-CONFIG_LCD_LMS283GF05=m
-CONFIG_LCD_LTV350QV=m
-CONFIG_LCD_ILI922X=m
-CONFIG_LCD_ILI9320=m
-CONFIG_LCD_TDO24M=m
-CONFIG_LCD_VGG2432A4=m
-CONFIG_LCD_PLATFORM=m
-CONFIG_LCD_AMS369FG06=m
-CONFIG_LCD_LMS501KF03=m
-CONFIG_LCD_HX8357=m
-CONFIG_LCD_OTM3225A=m
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_KTD253=m
-CONFIG_BACKLIGHT_LM3533=m
-CONFIG_BACKLIGHT_CARILLO_RANCH=m
-CONFIG_BACKLIGHT_PWM=m
-CONFIG_BACKLIGHT_DA903X=m
-CONFIG_BACKLIGHT_DA9052=m
-CONFIG_BACKLIGHT_MAX8925=m
-CONFIG_BACKLIGHT_APPLE=m
-CONFIG_BACKLIGHT_QCOM_WLED=m
-CONFIG_BACKLIGHT_SAHARA=m
-CONFIG_BACKLIGHT_WM831X=m
-CONFIG_BACKLIGHT_ADP5520=m
-CONFIG_BACKLIGHT_ADP8860=m
-CONFIG_BACKLIGHT_ADP8870=m
-CONFIG_BACKLIGHT_88PM860X=m
-CONFIG_BACKLIGHT_PCF50633=m
-CONFIG_BACKLIGHT_AAT2870=m
-CONFIG_BACKLIGHT_LM3630A=m
-CONFIG_BACKLIGHT_LM3639=m
-CONFIG_BACKLIGHT_LP855X=m
-CONFIG_BACKLIGHT_LP8788=m
-CONFIG_BACKLIGHT_PANDORA=m
-CONFIG_BACKLIGHT_SKY81452=m
-CONFIG_BACKLIGHT_AS3711=m
-CONFIG_BACKLIGHT_GPIO=m
-CONFIG_BACKLIGHT_LV5207LP=m
-CONFIG_BACKLIGHT_BD6107=m
-CONFIG_BACKLIGHT_ARCXCNN=m
-CONFIG_BACKLIGHT_RAVE_SP=m
-# end of Backlight & LCD device support
-
-CONFIG_VGASTATE=m
-CONFIG_VIDEOMODE_HELPERS=y
-CONFIG_HDMI=y
-
-#
-# Console display driver support
-#
-CONFIG_VGA_CONSOLE=y
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_DUMMY_CONSOLE_COLUMNS=80
-CONFIG_DUMMY_CONSOLE_ROWS=25
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
-# end of Console display driver support
-
-CONFIG_LOGO=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-# CONFIG_LOGO_LINUX_CLUT224 is not set
-# end of Graphics support
-
-CONFIG_SOUND=m
-CONFIG_SOUND_OSS_CORE=y
-# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_PCM_ELD=y
-CONFIG_SND_PCM_IEC958=y
-CONFIG_SND_DMAENGINE_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_SEQ_DEVICE=m
-CONFIG_SND_RAWMIDI=m
-CONFIG_SND_COMPRESS_OFFLOAD=m
-CONFIG_SND_JACK=y
-CONFIG_SND_JACK_INPUT_DEV=y
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-CONFIG_SND_PCM_TIMER=y
-CONFIG_SND_HRTIMER=m
-CONFIG_SND_DYNAMIC_MINORS=y
-CONFIG_SND_MAX_CARDS=32
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_PROC_FS=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_VMASTER=y
-CONFIG_SND_DMA_SGBUF=y
-CONFIG_SND_CTL_LED=m
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_SEQ_DUMMY=m
-# CONFIG_SND_SEQUENCER_OSS is not set
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-CONFIG_SND_SEQ_MIDI_EVENT=m
-CONFIG_SND_SEQ_MIDI=m
-CONFIG_SND_SEQ_MIDI_EMUL=m
-CONFIG_SND_SEQ_VIRMIDI=m
-CONFIG_SND_MPU401_UART=m
-CONFIG_SND_OPL3_LIB=m
-CONFIG_SND_OPL3_LIB_SEQ=m
-CONFIG_SND_VX_LIB=m
-CONFIG_SND_AC97_CODEC=m
-CONFIG_SND_DRIVERS=y
-CONFIG_SND_PCSP=m
-CONFIG_SND_DUMMY=m
-CONFIG_SND_ALOOP=m
-CONFIG_SND_VIRMIDI=m
-CONFIG_SND_MTPAV=m
-CONFIG_SND_MTS64=m
-CONFIG_SND_SERIAL_U16550=m
-CONFIG_SND_MPU401=m
-CONFIG_SND_PORTMAN2X4=m
-CONFIG_SND_AC97_POWER_SAVE=y
-CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
-CONFIG_SND_SB_COMMON=m
-CONFIG_SND_PCI=y
-CONFIG_SND_AD1889=m
-CONFIG_SND_ALS4000=m
-CONFIG_SND_ASIHPI=m
-CONFIG_SND_ATIIXP=m
-CONFIG_SND_ATIIXP_MODEM=m
-CONFIG_SND_AU8810=m
-CONFIG_SND_AU8820=m
-CONFIG_SND_AU8830=m
-CONFIG_SND_AW2=m
-CONFIG_SND_BT87X=m
-# CONFIG_SND_BT87X_OVERCLOCK is not set
-CONFIG_SND_CA0106=m
-CONFIG_SND_CMIPCI=m
-CONFIG_SND_OXYGEN_LIB=m
-CONFIG_SND_OXYGEN=m
-CONFIG_SND_CS4281=m
-CONFIG_SND_CS46XX=m
-CONFIG_SND_CS46XX_NEW_DSP=y
-CONFIG_SND_CTXFI=m
-CONFIG_SND_DARLA20=m
-CONFIG_SND_GINA20=m
-CONFIG_SND_LAYLA20=m
-CONFIG_SND_DARLA24=m
-CONFIG_SND_GINA24=m
-CONFIG_SND_LAYLA24=m
-CONFIG_SND_MONA=m
-CONFIG_SND_MIA=m
-CONFIG_SND_ECHO3G=m
-CONFIG_SND_INDIGO=m
-CONFIG_SND_INDIGOIO=m
-CONFIG_SND_INDIGODJ=m
-CONFIG_SND_INDIGOIOX=m
-CONFIG_SND_INDIGODJX=m
-CONFIG_SND_ENS1370=m
-CONFIG_SND_ENS1371=m
-CONFIG_SND_FM801=m
-CONFIG_SND_FM801_TEA575X_BOOL=y
-CONFIG_SND_HDSP=m
-CONFIG_SND_HDSPM=m
-CONFIG_SND_ICE1724=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
-CONFIG_SND_KORG1212=m
-CONFIG_SND_LOLA=m
-CONFIG_SND_LX6464ES=m
-CONFIG_SND_MIXART=m
-CONFIG_SND_NM256=m
-CONFIG_SND_PCXHR=m
-CONFIG_SND_RIPTIDE=m
-CONFIG_SND_RME32=m
-CONFIG_SND_RME96=m
-CONFIG_SND_RME9652=m
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
-CONFIG_SND_VIRTUOSO=m
-CONFIG_SND_VX222=m
-CONFIG_SND_YMFPCI=m
-
-#
-# HD-Audio
-#
-CONFIG_SND_HDA=m
-CONFIG_SND_HDA_GENERIC_LEDS=y
-CONFIG_SND_HDA_INTEL=m
-CONFIG_SND_HDA_HWDEP=y
-CONFIG_SND_HDA_RECONFIG=y
-CONFIG_SND_HDA_INPUT_BEEP=y
-CONFIG_SND_HDA_INPUT_BEEP_MODE=0
-CONFIG_SND_HDA_PATCH_LOADER=y
-CONFIG_SND_HDA_CODEC_REALTEK=m
-CONFIG_SND_HDA_CODEC_ANALOG=m
-CONFIG_SND_HDA_CODEC_SIGMATEL=m
-CONFIG_SND_HDA_CODEC_VIA=m
-CONFIG_SND_HDA_CODEC_HDMI=m
-CONFIG_SND_HDA_CODEC_CIRRUS=m
-CONFIG_SND_HDA_CODEC_CONEXANT=m
-CONFIG_SND_HDA_CODEC_CA0110=m
-CONFIG_SND_HDA_CODEC_CA0132=m
-CONFIG_SND_HDA_CODEC_CA0132_DSP=y
-CONFIG_SND_HDA_CODEC_CMEDIA=m
-CONFIG_SND_HDA_CODEC_SI3054=m
-CONFIG_SND_HDA_GENERIC=m
-CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
-CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM=y
-# end of HD-Audio
-
-CONFIG_SND_HDA_CORE=m
-CONFIG_SND_HDA_DSP_LOADER=y
-CONFIG_SND_HDA_COMPONENT=y
-CONFIG_SND_HDA_I915=y
-CONFIG_SND_HDA_EXT_CORE=m
-CONFIG_SND_HDA_PREALLOC_SIZE=0
-CONFIG_SND_INTEL_NHLT=y
-CONFIG_SND_INTEL_DSP_CONFIG=m
-CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m
-CONFIG_SND_INTEL_BYT_PREFER_SOF=y
-CONFIG_SND_SPI=y
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
-CONFIG_SND_USB_UA101=m
-CONFIG_SND_USB_USX2Y=m
-CONFIG_SND_USB_CAIAQ=m
-CONFIG_SND_USB_CAIAQ_INPUT=y
-CONFIG_SND_USB_US122L=m
-CONFIG_SND_USB_6FIRE=m
-CONFIG_SND_USB_HIFACE=m
-CONFIG_SND_BCD2000=m
-CONFIG_SND_USB_LINE6=m
-CONFIG_SND_USB_POD=m
-CONFIG_SND_USB_PODHD=m
-CONFIG_SND_USB_TONEPORT=m
-CONFIG_SND_USB_VARIAX=m
-CONFIG_SND_FIREWIRE=y
-CONFIG_SND_FIREWIRE_LIB=m
-CONFIG_SND_DICE=m
-CONFIG_SND_OXFW=m
-CONFIG_SND_ISIGHT=m
-CONFIG_SND_FIREWORKS=m
-CONFIG_SND_BEBOB=m
-CONFIG_SND_FIREWIRE_DIGI00X=m
-CONFIG_SND_FIREWIRE_TASCAM=m
-CONFIG_SND_FIREWIRE_MOTU=m
-CONFIG_SND_FIREFACE=m
-CONFIG_SND_PCMCIA=y
-CONFIG_SND_VXPOCKET=m
-CONFIG_SND_PDAUDIOCF=m
-CONFIG_SND_SOC=m
-CONFIG_SND_SOC_AC97_BUS=y
-CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
-CONFIG_SND_SOC_COMPRESS=y
-CONFIG_SND_SOC_TOPOLOGY=y
-CONFIG_SND_SOC_ACPI=m
-CONFIG_SND_SOC_ADI=m
-CONFIG_SND_SOC_ADI_AXI_I2S=m
-CONFIG_SND_SOC_ADI_AXI_SPDIF=m
-CONFIG_SND_SOC_AMD_ACP=m
-CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m
-CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m
-CONFIG_SND_SOC_AMD_ACP3x=m
-CONFIG_SND_SOC_AMD_RV_RT5682_MACH=m
-CONFIG_SND_SOC_AMD_RENOIR=m
-CONFIG_SND_SOC_AMD_RENOIR_MACH=m
-CONFIG_SND_ATMEL_SOC=m
-CONFIG_SND_BCM63XX_I2S_WHISTLER=m
-CONFIG_SND_DESIGNWARE_I2S=m
-# CONFIG_SND_DESIGNWARE_PCM is not set
-
-#
-# SoC Audio for Freescale CPUs
-#
-
-#
-# Common SoC Audio options for Freescale CPUs:
-#
-CONFIG_SND_SOC_FSL_ASRC=m
-CONFIG_SND_SOC_FSL_SAI=m
-CONFIG_SND_SOC_FSL_MQS=m
-CONFIG_SND_SOC_FSL_AUDMIX=m
-CONFIG_SND_SOC_FSL_SSI=m
-CONFIG_SND_SOC_FSL_SPDIF=m
-CONFIG_SND_SOC_FSL_ESAI=m
-CONFIG_SND_SOC_FSL_MICFIL=m
-CONFIG_SND_SOC_FSL_EASRC=m
-CONFIG_SND_SOC_FSL_XCVR=m
-CONFIG_SND_SOC_FSL_RPMSG=m
-CONFIG_SND_SOC_IMX_AUDMUX=m
-# end of SoC Audio for Freescale CPUs
-
-CONFIG_SND_I2S_HI6210_I2S=m
-# CONFIG_SND_SOC_IMG is not set
-CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
-CONFIG_SND_SOC_INTEL_SST=m
-CONFIG_SND_SOC_INTEL_CATPT=m
-CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
-CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
-CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m
-CONFIG_SND_SOC_INTEL_SKYLAKE=m
-CONFIG_SND_SOC_INTEL_SKL=m
-CONFIG_SND_SOC_INTEL_APL=m
-CONFIG_SND_SOC_INTEL_KBL=m
-CONFIG_SND_SOC_INTEL_GLK=m
-CONFIG_SND_SOC_INTEL_CNL=m
-CONFIG_SND_SOC_INTEL_CFL=m
-CONFIG_SND_SOC_INTEL_CML_H=m
-CONFIG_SND_SOC_INTEL_CML_LP=m
-CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m
-CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m
-CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
-CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
-CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
-CONFIG_SND_SOC_INTEL_MACH=y
-# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
-CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
-CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
-CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
-CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
-CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
-CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
-CONFIG_SND_SOC_INTEL_BYTCR_WM5102_MACH=m
-CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
-CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
-CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
-CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
-CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH=m
-CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
-CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
-CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
-CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
-CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
-CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
-CONFIG_SND_SOC_INTEL_DA7219_MAX98357A_GENERIC=m
-CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON=m
-CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
-CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
-CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH=m
-CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m
-CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m
-CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m
-CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH=m
-CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH=m
-CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
-CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH=m
-CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
-CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
-CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
-CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
-CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
-CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m
-CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH=m
-CONFIG_SND_SOC_MTK_BTCVSD=m
-CONFIG_SND_SOC_SOF_TOPLEVEL=y
-CONFIG_SND_SOC_SOF_PCI_DEV=m
-CONFIG_SND_SOC_SOF_PCI=m
-CONFIG_SND_SOC_SOF_ACPI=m
-CONFIG_SND_SOC_SOF_ACPI_DEV=m
-# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set
-# CONFIG_SND_SOC_SOF_DEVELOPER_SUPPORT is not set
-CONFIG_SND_SOC_SOF=m
-CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y
-CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
-CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m
-CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m
-CONFIG_SND_SOC_SOF_INTEL_COMMON=m
-CONFIG_SND_SOC_SOF_BAYTRAIL=m
-CONFIG_SND_SOC_SOF_BROADWELL=m
-CONFIG_SND_SOC_SOF_MERRIFIELD=m
-CONFIG_SND_SOC_SOF_INTEL_APL=m
-CONFIG_SND_SOC_SOF_APOLLOLAKE=m
-CONFIG_SND_SOC_SOF_GEMINILAKE=m
-CONFIG_SND_SOC_SOF_INTEL_CNL=m
-CONFIG_SND_SOC_SOF_CANNONLAKE=m
-CONFIG_SND_SOC_SOF_COFFEELAKE=m
-CONFIG_SND_SOC_SOF_COMETLAKE=m
-CONFIG_SND_SOC_SOF_INTEL_ICL=m
-CONFIG_SND_SOC_SOF_ICELAKE=m
-CONFIG_SND_SOC_SOF_JASPERLAKE=m
-CONFIG_SND_SOC_SOF_INTEL_TGL=m
-CONFIG_SND_SOC_SOF_TIGERLAKE=m
-CONFIG_SND_SOC_SOF_ELKHARTLAKE=m
-CONFIG_SND_SOC_SOF_ALDERLAKE=m
-CONFIG_SND_SOC_SOF_HDA_COMMON=m
-CONFIG_SND_SOC_SOF_HDA_LINK=y
-CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
-# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
-CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m
-CONFIG_SND_SOC_SOF_HDA=m
-CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=m
-CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m
-CONFIG_SND_SOC_SOF_XTENSA=m
-
-#
-# STMicroelectronics STM32 SOC audio support
-#
-# end of STMicroelectronics STM32 SOC audio support
-
-CONFIG_SND_SOC_XILINX_I2S=m
-# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
-# CONFIG_SND_SOC_XILINX_SPDIF is not set
-CONFIG_SND_SOC_XTFPGA_I2S=m
-CONFIG_SND_SOC_I2C_AND_SPI=m
-
-#
-# CODEC drivers
-#
-CONFIG_SND_SOC_ARIZONA=m
-CONFIG_SND_SOC_WM_ADSP=m
-CONFIG_SND_SOC_AC97_CODEC=m
-CONFIG_SND_SOC_ADAU_UTILS=m
-CONFIG_SND_SOC_ADAU1372=m
-CONFIG_SND_SOC_ADAU1372_I2C=m
-CONFIG_SND_SOC_ADAU1372_SPI=m
-CONFIG_SND_SOC_ADAU1701=m
-CONFIG_SND_SOC_ADAU17X1=m
-CONFIG_SND_SOC_ADAU1761=m
-CONFIG_SND_SOC_ADAU1761_I2C=m
-CONFIG_SND_SOC_ADAU1761_SPI=m
-CONFIG_SND_SOC_ADAU7002=m
-CONFIG_SND_SOC_ADAU7118=m
-CONFIG_SND_SOC_ADAU7118_HW=m
-CONFIG_SND_SOC_ADAU7118_I2C=m
-CONFIG_SND_SOC_AK4104=m
-CONFIG_SND_SOC_AK4118=m
-CONFIG_SND_SOC_AK4458=m
-CONFIG_SND_SOC_AK4554=m
-CONFIG_SND_SOC_AK4613=m
-CONFIG_SND_SOC_AK4642=m
-CONFIG_SND_SOC_AK5386=m
-CONFIG_SND_SOC_AK5558=m
-CONFIG_SND_SOC_ALC5623=m
-CONFIG_SND_SOC_BD28623=m
-CONFIG_SND_SOC_BT_SCO=m
-CONFIG_SND_SOC_CROS_EC_CODEC=m
-CONFIG_SND_SOC_CS35L32=m
-CONFIG_SND_SOC_CS35L33=m
-CONFIG_SND_SOC_CS35L34=m
-CONFIG_SND_SOC_CS35L35=m
-CONFIG_SND_SOC_CS35L36=m
-CONFIG_SND_SOC_CS42L42=m
-CONFIG_SND_SOC_CS42L51=m
-CONFIG_SND_SOC_CS42L51_I2C=m
-CONFIG_SND_SOC_CS42L52=m
-CONFIG_SND_SOC_CS42L56=m
-CONFIG_SND_SOC_CS42L73=m
-CONFIG_SND_SOC_CS4234=m
-CONFIG_SND_SOC_CS4265=m
-CONFIG_SND_SOC_CS4270=m
-CONFIG_SND_SOC_CS4271=m
-CONFIG_SND_SOC_CS4271_I2C=m
-CONFIG_SND_SOC_CS4271_SPI=m
-CONFIG_SND_SOC_CS42XX8=m
-CONFIG_SND_SOC_CS42XX8_I2C=m
-CONFIG_SND_SOC_CS43130=m
-CONFIG_SND_SOC_CS4341=m
-CONFIG_SND_SOC_CS4349=m
-CONFIG_SND_SOC_CS53L30=m
-CONFIG_SND_SOC_CX2072X=m
-CONFIG_SND_SOC_DA7213=m
-CONFIG_SND_SOC_DA7219=m
-CONFIG_SND_SOC_DMIC=m
-CONFIG_SND_SOC_HDMI_CODEC=m
-CONFIG_SND_SOC_ES7134=m
-CONFIG_SND_SOC_ES7241=m
-CONFIG_SND_SOC_ES8316=m
-CONFIG_SND_SOC_ES8328=m
-CONFIG_SND_SOC_ES8328_I2C=m
-CONFIG_SND_SOC_ES8328_SPI=m
-CONFIG_SND_SOC_GTM601=m
-CONFIG_SND_SOC_HDAC_HDMI=m
-CONFIG_SND_SOC_HDAC_HDA=m
-CONFIG_SND_SOC_INNO_RK3036=m
-CONFIG_SND_SOC_MAX98088=m
-CONFIG_SND_SOC_MAX98090=m
-CONFIG_SND_SOC_MAX98357A=m
-CONFIG_SND_SOC_MAX98504=m
-CONFIG_SND_SOC_MAX9867=m
-CONFIG_SND_SOC_MAX98927=m
-CONFIG_SND_SOC_MAX98373=m
-CONFIG_SND_SOC_MAX98373_I2C=m
-CONFIG_SND_SOC_MAX98373_SDW=m
-CONFIG_SND_SOC_MAX98390=m
-CONFIG_SND_SOC_MAX9860=m
-CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
-CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
-CONFIG_SND_SOC_PCM1681=m
-CONFIG_SND_SOC_PCM1789=m
-CONFIG_SND_SOC_PCM1789_I2C=m
-CONFIG_SND_SOC_PCM179X=m
-CONFIG_SND_SOC_PCM179X_I2C=m
-CONFIG_SND_SOC_PCM179X_SPI=m
-CONFIG_SND_SOC_PCM186X=m
-CONFIG_SND_SOC_PCM186X_I2C=m
-CONFIG_SND_SOC_PCM186X_SPI=m
-CONFIG_SND_SOC_PCM3060=m
-CONFIG_SND_SOC_PCM3060_I2C=m
-CONFIG_SND_SOC_PCM3060_SPI=m
-CONFIG_SND_SOC_PCM3168A=m
-CONFIG_SND_SOC_PCM3168A_I2C=m
-CONFIG_SND_SOC_PCM3168A_SPI=m
-CONFIG_SND_SOC_PCM5102A=m
-CONFIG_SND_SOC_PCM512x=m
-CONFIG_SND_SOC_PCM512x_I2C=m
-CONFIG_SND_SOC_PCM512x_SPI=m
-# CONFIG_SND_SOC_RK3328 is not set
-CONFIG_SND_SOC_RL6231=m
-CONFIG_SND_SOC_RL6347A=m
-CONFIG_SND_SOC_RT286=m
-CONFIG_SND_SOC_RT298=m
-CONFIG_SND_SOC_RT1011=m
-CONFIG_SND_SOC_RT1015=m
-CONFIG_SND_SOC_RT1015P=m
-CONFIG_SND_SOC_RT1308_SDW=m
-CONFIG_SND_SOC_RT1316_SDW=m
-CONFIG_SND_SOC_RT5514=m
-CONFIG_SND_SOC_RT5514_SPI=m
-CONFIG_SND_SOC_RT5616=m
-CONFIG_SND_SOC_RT5631=m
-CONFIG_SND_SOC_RT5640=m
-CONFIG_SND_SOC_RT5645=m
-CONFIG_SND_SOC_RT5651=m
-CONFIG_SND_SOC_RT5659=m
-CONFIG_SND_SOC_RT5660=m
-CONFIG_SND_SOC_RT5663=m
-CONFIG_SND_SOC_RT5670=m
-CONFIG_SND_SOC_RT5677=m
-CONFIG_SND_SOC_RT5677_SPI=m
-CONFIG_SND_SOC_RT5682=m
-CONFIG_SND_SOC_RT5682_I2C=m
-CONFIG_SND_SOC_RT5682_SDW=m
-CONFIG_SND_SOC_RT700=m
-CONFIG_SND_SOC_RT700_SDW=m
-CONFIG_SND_SOC_RT711=m
-CONFIG_SND_SOC_RT711_SDW=m
-CONFIG_SND_SOC_RT711_SDCA_SDW=m
-CONFIG_SND_SOC_RT715=m
-CONFIG_SND_SOC_RT715_SDW=m
-CONFIG_SND_SOC_RT715_SDCA_SDW=m
-CONFIG_SND_SOC_SGTL5000=m
-CONFIG_SND_SOC_SI476X=m
-CONFIG_SND_SOC_SIGMADSP=m
-CONFIG_SND_SOC_SIGMADSP_I2C=m
-CONFIG_SND_SOC_SIGMADSP_REGMAP=m
-CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
-CONFIG_SND_SOC_SIMPLE_MUX=m
-CONFIG_SND_SOC_SPDIF=m
-CONFIG_SND_SOC_SSM2305=m
-CONFIG_SND_SOC_SSM2602=m
-CONFIG_SND_SOC_SSM2602_SPI=m
-CONFIG_SND_SOC_SSM2602_I2C=m
-CONFIG_SND_SOC_SSM4567=m
-CONFIG_SND_SOC_STA32X=m
-CONFIG_SND_SOC_STA350=m
-CONFIG_SND_SOC_STI_SAS=m
-CONFIG_SND_SOC_TAS2552=m
-CONFIG_SND_SOC_TAS2562=m
-CONFIG_SND_SOC_TAS2764=m
-CONFIG_SND_SOC_TAS2770=m
-CONFIG_SND_SOC_TAS5086=m
-CONFIG_SND_SOC_TAS571X=m
-CONFIG_SND_SOC_TAS5720=m
-CONFIG_SND_SOC_TAS6424=m
-CONFIG_SND_SOC_TDA7419=m
-CONFIG_SND_SOC_TFA9879=m
-CONFIG_SND_SOC_TLV320AIC23=m
-CONFIG_SND_SOC_TLV320AIC23_I2C=m
-CONFIG_SND_SOC_TLV320AIC23_SPI=m
-CONFIG_SND_SOC_TLV320AIC31XX=m
-CONFIG_SND_SOC_TLV320AIC32X4=m
-CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
-CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
-CONFIG_SND_SOC_TLV320AIC3X=m
-CONFIG_SND_SOC_TLV320AIC3X_I2C=m
-CONFIG_SND_SOC_TLV320AIC3X_SPI=m
-CONFIG_SND_SOC_TLV320ADCX140=m
-CONFIG_SND_SOC_TS3A227E=m
-CONFIG_SND_SOC_TSCS42XX=m
-CONFIG_SND_SOC_TSCS454=m
-CONFIG_SND_SOC_UDA1334=m
-CONFIG_SND_SOC_WM5102=m
-CONFIG_SND_SOC_WM8510=m
-CONFIG_SND_SOC_WM8523=m
-CONFIG_SND_SOC_WM8524=m
-CONFIG_SND_SOC_WM8580=m
-CONFIG_SND_SOC_WM8711=m
-CONFIG_SND_SOC_WM8728=m
-CONFIG_SND_SOC_WM8731=m
-CONFIG_SND_SOC_WM8737=m
-CONFIG_SND_SOC_WM8741=m
-CONFIG_SND_SOC_WM8750=m
-CONFIG_SND_SOC_WM8753=m
-CONFIG_SND_SOC_WM8770=m
-CONFIG_SND_SOC_WM8776=m
-CONFIG_SND_SOC_WM8782=m
-CONFIG_SND_SOC_WM8804=m
-CONFIG_SND_SOC_WM8804_I2C=m
-CONFIG_SND_SOC_WM8804_SPI=m
-CONFIG_SND_SOC_WM8903=m
-CONFIG_SND_SOC_WM8904=m
-CONFIG_SND_SOC_WM8960=m
-CONFIG_SND_SOC_WM8962=m
-CONFIG_SND_SOC_WM8974=m
-CONFIG_SND_SOC_WM8978=m
-CONFIG_SND_SOC_WM8985=m
-CONFIG_SND_SOC_WSA881X=m
-CONFIG_SND_SOC_ZL38060=m
-CONFIG_SND_SOC_ZX_AUD96P22=m
-CONFIG_SND_SOC_MAX9759=m
-CONFIG_SND_SOC_MT6351=m
-CONFIG_SND_SOC_MT6358=m
-CONFIG_SND_SOC_MT6660=m
-CONFIG_SND_SOC_NAU8315=m
-CONFIG_SND_SOC_NAU8540=m
-CONFIG_SND_SOC_NAU8810=m
-CONFIG_SND_SOC_NAU8822=m
-CONFIG_SND_SOC_NAU8824=m
-CONFIG_SND_SOC_NAU8825=m
-CONFIG_SND_SOC_TPA6130A2=m
-CONFIG_SND_SOC_LPASS_WSA_MACRO=m
-CONFIG_SND_SOC_LPASS_VA_MACRO=m
-CONFIG_SND_SOC_LPASS_RX_MACRO=m
-CONFIG_SND_SOC_LPASS_TX_MACRO=m
-# end of CODEC drivers
-
-CONFIG_SND_SIMPLE_CARD_UTILS=m
-CONFIG_SND_SIMPLE_CARD=m
-CONFIG_SND_X86=y
-CONFIG_HDMI_LPE_AUDIO=m
-CONFIG_SND_XEN_FRONTEND=m
-CONFIG_SND_VIRTIO=m
-CONFIG_AC97_BUS=m
-
-#
-# HID support
-#
-CONFIG_HID=m
-CONFIG_HID_BATTERY_STRENGTH=y
-CONFIG_HIDRAW=y
-CONFIG_UHID=m
-CONFIG_HID_GENERIC=m
-
-#
-# Special HID drivers
-#
-CONFIG_HID_A4TECH=m
-CONFIG_HID_ACCUTOUCH=m
-CONFIG_HID_ACRUX=m
-CONFIG_HID_ACRUX_FF=y
-CONFIG_HID_APPLE=m
-CONFIG_HID_APPLEIR=m
-CONFIG_HID_ASUS=m
-CONFIG_HID_AUREAL=m
-CONFIG_HID_BELKIN=m
-CONFIG_HID_BETOP_FF=m
-CONFIG_HID_BIGBEN_FF=m
-CONFIG_HID_CHERRY=m
-CONFIG_HID_CHICONY=m
-CONFIG_HID_CORSAIR=m
-CONFIG_HID_COUGAR=m
-CONFIG_HID_MACALLY=m
-CONFIG_HID_PRODIKEYS=m
-CONFIG_HID_CMEDIA=m
-CONFIG_HID_CP2112=m
-CONFIG_HID_CREATIVE_SB0540=m
-CONFIG_HID_CYPRESS=m
-CONFIG_HID_DRAGONRISE=m
-CONFIG_DRAGONRISE_FF=y
-CONFIG_HID_EMS_FF=m
-CONFIG_HID_ELAN=m
-CONFIG_HID_ELECOM=m
-CONFIG_HID_ELO=m
-CONFIG_HID_EZKEY=m
-CONFIG_HID_FT260=m
-CONFIG_HID_GEMBIRD=m
-CONFIG_HID_GFRM=m
-CONFIG_HID_GLORIOUS=m
-CONFIG_HID_HOLTEK=m
-CONFIG_HOLTEK_FF=y
-CONFIG_HID_GOOGLE_HAMMER=m
-CONFIG_HID_VIVALDI=m
-CONFIG_HID_GT683R=m
-CONFIG_HID_KEYTOUCH=m
-CONFIG_HID_KYE=m
-CONFIG_HID_UCLOGIC=m
-CONFIG_HID_WALTOP=m
-CONFIG_HID_VIEWSONIC=m
-CONFIG_HID_GYRATION=m
-CONFIG_HID_ICADE=m
-CONFIG_HID_ITE=m
-CONFIG_HID_JABRA=m
-CONFIG_HID_TWINHAN=m
-CONFIG_HID_KENSINGTON=m
-CONFIG_HID_LCPOWER=m
-CONFIG_HID_LED=m
-CONFIG_HID_LENOVO=m
-CONFIG_HID_LOGITECH=m
-CONFIG_HID_LOGITECH_DJ=m
-CONFIG_HID_LOGITECH_HIDPP=m
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIRUMBLEPAD2_FF=y
-CONFIG_LOGIG940_FF=y
-CONFIG_LOGIWHEELS_FF=y
-CONFIG_HID_MAGICMOUSE=m
-CONFIG_HID_MALTRON=m
-CONFIG_HID_MAYFLASH=m
-CONFIG_HID_REDRAGON=m
-CONFIG_HID_MICROSOFT=m
-CONFIG_HID_MONTEREY=m
-CONFIG_HID_MULTITOUCH=m
-CONFIG_HID_NTI=m
-CONFIG_HID_NTRIG=m
-CONFIG_HID_ORTEK=m
-CONFIG_HID_PANTHERLORD=m
-CONFIG_PANTHERLORD_FF=y
-CONFIG_HID_PENMOUNT=m
-CONFIG_HID_PETALYNX=m
-CONFIG_HID_PICOLCD=m
-CONFIG_HID_PICOLCD_FB=y
-CONFIG_HID_PICOLCD_BACKLIGHT=y
-CONFIG_HID_PICOLCD_LCD=y
-CONFIG_HID_PICOLCD_LEDS=y
-CONFIG_HID_PICOLCD_CIR=y
-CONFIG_HID_PLANTRONICS=m
-CONFIG_HID_PLAYSTATION=m
-CONFIG_PLAYSTATION_FF=y
-CONFIG_HID_PRIMAX=m
-CONFIG_HID_RETRODE=m
-CONFIG_HID_ROCCAT=m
-CONFIG_HID_SAITEK=m
-CONFIG_HID_SAMSUNG=m
-CONFIG_HID_SEMITEK=m
-CONFIG_HID_SONY=m
-CONFIG_SONY_FF=y
-CONFIG_HID_SPEEDLINK=m
-CONFIG_HID_STEAM=m
-CONFIG_HID_STEELSERIES=m
-CONFIG_HID_SUNPLUS=m
-CONFIG_HID_RMI=m
-CONFIG_HID_GREENASIA=m
-CONFIG_GREENASIA_FF=y
-CONFIG_HID_HYPERV_MOUSE=m
-CONFIG_HID_SMARTJOYPLUS=m
-CONFIG_SMARTJOYPLUS_FF=y
-CONFIG_HID_TIVO=m
-CONFIG_HID_TOPSEED=m
-CONFIG_HID_THINGM=m
-CONFIG_HID_THRUSTMASTER=m
-CONFIG_THRUSTMASTER_FF=y
-CONFIG_HID_UDRAW_PS3=m
-CONFIG_HID_U2FZERO=m
-CONFIG_HID_WACOM=m
-CONFIG_HID_WIIMOTE=m
-CONFIG_HID_XINMO=m
-CONFIG_HID_ZEROPLUS=m
-CONFIG_ZEROPLUS_FF=y
-CONFIG_HID_ZYDACRON=m
-CONFIG_HID_SENSOR_HUB=m
-CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
-CONFIG_HID_ALPS=m
-CONFIG_HID_MCP2221=m
-# end of Special HID drivers
-
-#
-# USB HID support
-#
-CONFIG_USB_HID=m
-CONFIG_HID_PID=y
-CONFIG_USB_HIDDEV=y
-
-#
-# USB HID Boot Protocol drivers
-#
-CONFIG_USB_KBD=m
-CONFIG_USB_MOUSE=m
-# end of USB HID Boot Protocol drivers
-# end of USB HID support
-
-#
-# I2C HID support
-#
-CONFIG_I2C_HID_ACPI=m
-# end of I2C HID support
-
-CONFIG_I2C_HID_CORE=m
-
-#
-# Intel ISH HID support
-#
-CONFIG_INTEL_ISH_HID=m
-# CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER is not set
-# end of Intel ISH HID support
-
-#
-# AMD SFH HID Support
-#
-CONFIG_AMD_SFH_HID=m
-# end of AMD SFH HID Support
-
-#
-# Surface System Aggregator Module HID support
-#
-CONFIG_SURFACE_HID=m
-CONFIG_SURFACE_KBD=m
-# end of Surface System Aggregator Module HID support
-
-CONFIG_SURFACE_HID_CORE=m
-# end of HID support
-
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-CONFIG_USB_LED_TRIG=y
-CONFIG_USB_ULPI_BUS=m
-CONFIG_USB_CONN_GPIO=m
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB=y
-CONFIG_USB_PCI=y
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEFAULT_PERSIST=y
-# CONFIG_USB_FEW_INIT_RETRIES is not set
-CONFIG_USB_DYNAMIC_MINORS=y
-# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_PRODUCTLIST is not set
-# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set
-CONFIG_USB_LEDS_TRIGGER_USBPORT=m
-CONFIG_USB_AUTOSUSPEND_DELAY=2
-CONFIG_USB_MON=m
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_C67X00_HCD=m
-CONFIG_USB_XHCI_HCD=y
-# CONFIG_USB_XHCI_DBGCAP is not set
-CONFIG_USB_XHCI_PCI=y
-# CONFIG_USB_XHCI_PCI_RENESAS is not set
-CONFIG_USB_XHCI_PLATFORM=m
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_EHCI_PCI=y
-# CONFIG_USB_EHCI_FSL is not set
-CONFIG_USB_EHCI_HCD_PLATFORM=y
-CONFIG_USB_OXU210HP_HCD=m
-CONFIG_USB_ISP116X_HCD=m
-CONFIG_USB_FOTG210_HCD=m
-CONFIG_USB_MAX3421_HCD=m
-CONFIG_USB_OHCI_HCD=y
-CONFIG_USB_OHCI_HCD_PCI=y
-CONFIG_USB_OHCI_HCD_PLATFORM=y
-CONFIG_USB_UHCI_HCD=y
-CONFIG_USB_U132_HCD=m
-CONFIG_USB_SL811_HCD=m
-CONFIG_USB_SL811_HCD_ISO=y
-CONFIG_USB_SL811_CS=m
-CONFIG_USB_R8A66597_HCD=m
-CONFIG_USB_HCD_BCMA=m
-CONFIG_USB_HCD_SSB=m
-# CONFIG_USB_HCD_TEST_MODE is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=m
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_REALTEK=m
-CONFIG_REALTEK_AUTOPM=y
-CONFIG_USB_STORAGE_DATAFAB=m
-CONFIG_USB_STORAGE_FREECOM=m
-CONFIG_USB_STORAGE_ISD200=m
-CONFIG_USB_STORAGE_USBAT=m
-CONFIG_USB_STORAGE_SDDR09=m
-CONFIG_USB_STORAGE_SDDR55=m
-CONFIG_USB_STORAGE_JUMPSHOT=m
-CONFIG_USB_STORAGE_ALAUDA=m
-CONFIG_USB_STORAGE_ONETOUCH=m
-CONFIG_USB_STORAGE_KARMA=m
-CONFIG_USB_STORAGE_CYPRESS_ATACB=m
-CONFIG_USB_STORAGE_ENE_UB6250=m
-CONFIG_USB_UAS=m
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-CONFIG_USBIP_CORE=m
-CONFIG_USBIP_VHCI_HCD=m
-CONFIG_USBIP_VHCI_HC_PORTS=8
-CONFIG_USBIP_VHCI_NR_HCS=1
-CONFIG_USBIP_HOST=m
-CONFIG_USBIP_VUDC=m
-# CONFIG_USBIP_DEBUG is not set
-CONFIG_USB_CDNS_SUPPORT=m
-CONFIG_USB_CDNS_HOST=y
-CONFIG_USB_CDNS3=m
-# CONFIG_USB_CDNS3_GADGET is not set
-# CONFIG_USB_CDNS3_HOST is not set
-CONFIG_USB_CDNS3_PCI_WRAP=m
-CONFIG_USB_CDNSP_PCI=m
-CONFIG_USB_CDNSP_GADGET=y
-CONFIG_USB_CDNSP_HOST=y
-CONFIG_USB_MUSB_HDRC=m
-# CONFIG_USB_MUSB_HOST is not set
-# CONFIG_USB_MUSB_GADGET is not set
-CONFIG_USB_MUSB_DUAL_ROLE=y
-
-#
-# Platform Glue Layer
-#
-
-#
-# MUSB DMA mode
-#
-CONFIG_MUSB_PIO_ONLY=y
-CONFIG_USB_DWC3=m
-CONFIG_USB_DWC3_ULPI=y
-# CONFIG_USB_DWC3_HOST is not set
-# CONFIG_USB_DWC3_GADGET is not set
-CONFIG_USB_DWC3_DUAL_ROLE=y
-
-#
-# Platform Glue Driver Support
-#
-CONFIG_USB_DWC3_PCI=m
-CONFIG_USB_DWC3_HAPS=m
-CONFIG_USB_DWC2=y
-CONFIG_USB_DWC2_HOST=y
-
-#
-# Gadget/Dual-role mode requires USB Gadget support to be enabled
-#
-CONFIG_USB_DWC2_PCI=m
-# CONFIG_USB_DWC2_DEBUG is not set
-# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
-CONFIG_USB_CHIPIDEA=m
-CONFIG_USB_CHIPIDEA_UDC=y
-CONFIG_USB_CHIPIDEA_HOST=y
-CONFIG_USB_CHIPIDEA_PCI=m
-CONFIG_USB_CHIPIDEA_MSM=m
-CONFIG_USB_CHIPIDEA_GENERIC=m
-CONFIG_USB_ISP1760=m
-CONFIG_USB_ISP1760_HCD=y
-CONFIG_USB_ISP1761_UDC=y
-# CONFIG_USB_ISP1760_HOST_ROLE is not set
-# CONFIG_USB_ISP1760_GADGET_ROLE is not set
-CONFIG_USB_ISP1760_DUAL_ROLE=y
-
-#
-# USB port drivers
-#
-CONFIG_USB_USS720=m
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_SIMPLE=m
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP210X=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_F81232=m
-CONFIG_USB_SERIAL_F8153X=m
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-CONFIG_USB_SERIAL_KEYSPAN=m
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_METRO=m
-CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7715_PARPORT=y
-CONFIG_USB_SERIAL_MOS7840=m
-CONFIG_USB_SERIAL_MXUPORT=m
-CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_QCAUX=m
-CONFIG_USB_SERIAL_QUALCOMM=m
-CONFIG_USB_SERIAL_SPCP8X5=m
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-CONFIG_USB_SERIAL_SYMBOL=m
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_WWAN=m
-CONFIG_USB_SERIAL_OPTION=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_SERIAL_OPTICON=m
-CONFIG_USB_SERIAL_XSENS_MT=m
-CONFIG_USB_SERIAL_WISHBONE=m
-CONFIG_USB_SERIAL_SSU100=m
-CONFIG_USB_SERIAL_QT2=m
-CONFIG_USB_SERIAL_UPD78F0730=m
-CONFIG_USB_SERIAL_XR=m
-CONFIG_USB_SERIAL_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_ADUTUX=m
-CONFIG_USB_SEVSEG=m
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_LCD=m
-CONFIG_USB_CYPRESS_CY7C63=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
-CONFIG_USB_APPLEDISPLAY=m
-CONFIG_APPLE_MFI_FASTCHARGE=m
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_LD=m
-CONFIG_USB_TRANCEVIBRATOR=m
-CONFIG_USB_IOWARRIOR=m
-CONFIG_USB_TEST=m
-CONFIG_USB_EHSET_TEST_FIXTURE=m
-CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_YUREX=m
-CONFIG_USB_EZUSB_FX2=m
-CONFIG_USB_HUB_USB251XB=m
-CONFIG_USB_HSIC_USB3503=m
-CONFIG_USB_HSIC_USB4604=m
-CONFIG_USB_LINK_LAYER_TEST=m
-CONFIG_USB_CHAOSKEY=m
-CONFIG_USB_ATM=m
-CONFIG_USB_SPEEDTOUCH=m
-CONFIG_USB_CXACRU=m
-CONFIG_USB_UEAGLEATM=m
-CONFIG_USB_XUSBATM=m
-
-#
-# USB Physical Layer drivers
-#
-CONFIG_USB_PHY=y
-CONFIG_NOP_USB_XCEIV=m
-CONFIG_USB_GPIO_VBUS=m
-CONFIG_TAHVO_USB=m
-CONFIG_TAHVO_USB_HOST_BY_DEFAULT=y
-CONFIG_USB_ISP1301=m
-# end of USB Physical Layer drivers
-
-CONFIG_USB_GADGET=m
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-# CONFIG_USB_GADGET_DEBUG_FS is not set
-CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
-# CONFIG_U_SERIAL_CONSOLE is not set
-
-#
-# USB Peripheral Controller
-#
-CONFIG_USB_FOTG210_UDC=m
-CONFIG_USB_GR_UDC=m
-CONFIG_USB_R8A66597=m
-CONFIG_USB_PXA27X=m
-CONFIG_USB_MV_UDC=m
-CONFIG_USB_MV_U3D=m
-CONFIG_USB_SNP_CORE=m
-# CONFIG_USB_M66592 is not set
-CONFIG_USB_BDC_UDC=m
-CONFIG_USB_AMD5536UDC=m
-CONFIG_USB_NET2272=m
-CONFIG_USB_NET2272_DMA=y
-CONFIG_USB_NET2280=m
-CONFIG_USB_GOKU=m
-CONFIG_USB_EG20T=m
-CONFIG_USB_MAX3420_UDC=m
-# CONFIG_USB_DUMMY_HCD is not set
-# end of USB Peripheral Controller
-
-CONFIG_USB_LIBCOMPOSITE=m
-CONFIG_USB_F_ACM=m
-CONFIG_USB_F_SS_LB=m
-CONFIG_USB_U_SERIAL=m
-CONFIG_USB_U_ETHER=m
-CONFIG_USB_U_AUDIO=m
-CONFIG_USB_F_SERIAL=m
-CONFIG_USB_F_OBEX=m
-CONFIG_USB_F_NCM=m
-CONFIG_USB_F_ECM=m
-CONFIG_USB_F_PHONET=m
-CONFIG_USB_F_EEM=m
-CONFIG_USB_F_SUBSET=m
-CONFIG_USB_F_RNDIS=m
-CONFIG_USB_F_MASS_STORAGE=m
-CONFIG_USB_F_FS=m
-CONFIG_USB_F_UAC1=m
-CONFIG_USB_F_UAC2=m
-CONFIG_USB_F_UVC=m
-CONFIG_USB_F_MIDI=m
-CONFIG_USB_F_HID=m
-CONFIG_USB_F_PRINTER=m
-CONFIG_USB_F_TCM=m
-CONFIG_USB_CONFIGFS=m
-CONFIG_USB_CONFIGFS_SERIAL=y
-CONFIG_USB_CONFIGFS_ACM=y
-CONFIG_USB_CONFIGFS_OBEX=y
-CONFIG_USB_CONFIGFS_NCM=y
-CONFIG_USB_CONFIGFS_ECM=y
-CONFIG_USB_CONFIGFS_ECM_SUBSET=y
-CONFIG_USB_CONFIGFS_RNDIS=y
-CONFIG_USB_CONFIGFS_EEM=y
-CONFIG_USB_CONFIGFS_PHONET=y
-CONFIG_USB_CONFIGFS_MASS_STORAGE=y
-CONFIG_USB_CONFIGFS_F_LB_SS=y
-CONFIG_USB_CONFIGFS_F_FS=y
-CONFIG_USB_CONFIGFS_F_UAC1=y
-# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
-CONFIG_USB_CONFIGFS_F_UAC2=y
-CONFIG_USB_CONFIGFS_F_MIDI=y
-CONFIG_USB_CONFIGFS_F_HID=y
-CONFIG_USB_CONFIGFS_F_UVC=y
-CONFIG_USB_CONFIGFS_F_PRINTER=y
-# CONFIG_USB_CONFIGFS_F_TCM is not set
-
-#
-# USB Gadget precomposed configurations
-#
-CONFIG_USB_ZERO=m
-CONFIG_USB_AUDIO=m
-CONFIG_GADGET_UAC1=y
-# CONFIG_GADGET_UAC1_LEGACY is not set
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_RNDIS=y
-CONFIG_USB_ETH_EEM=y
-CONFIG_USB_G_NCM=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FUNCTIONFS=m
-CONFIG_USB_FUNCTIONFS_ETH=y
-CONFIG_USB_FUNCTIONFS_RNDIS=y
-CONFIG_USB_FUNCTIONFS_GENERIC=y
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_GADGET_TARGET=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_MIDI_GADGET=m
-CONFIG_USB_G_PRINTER=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_USB_G_NOKIA=m
-CONFIG_USB_G_ACM_MS=m
-# CONFIG_USB_G_MULTI is not set
-CONFIG_USB_G_HID=m
-CONFIG_USB_G_DBGP=m
-# CONFIG_USB_G_DBGP_PRINTK is not set
-CONFIG_USB_G_DBGP_SERIAL=y
-CONFIG_USB_G_WEBCAM=m
-CONFIG_USB_RAW_GADGET=m
-# end of USB Gadget precomposed configurations
-
-CONFIG_TYPEC=m
-CONFIG_TYPEC_TCPM=m
-CONFIG_TYPEC_TCPCI=m
-CONFIG_TYPEC_RT1711H=m
-CONFIG_TYPEC_MT6360=m
-CONFIG_TYPEC_TCPCI_MAXIM=m
-CONFIG_TYPEC_FUSB302=m
-CONFIG_TYPEC_UCSI=m
-CONFIG_UCSI_CCG=m
-CONFIG_UCSI_ACPI=m
-CONFIG_TYPEC_TPS6598X=m
-CONFIG_TYPEC_HD3SS3220=m
-CONFIG_TYPEC_STUSB160X=m
-
-#
-# USB Type-C Multiplexer/DeMultiplexer Switch support
-#
-CONFIG_TYPEC_MUX_PI3USB30532=m
-CONFIG_TYPEC_MUX_INTEL_PMC=m
-# end of USB Type-C Multiplexer/DeMultiplexer Switch support
-
-#
-# USB Type-C Alternate Mode drivers
-#
-CONFIG_TYPEC_DP_ALTMODE=m
-CONFIG_TYPEC_NVIDIA_ALTMODE=m
-# end of USB Type-C Alternate Mode drivers
-
-CONFIG_USB_ROLE_SWITCH=y
-CONFIG_USB_ROLES_INTEL_XHCI=m
-CONFIG_MMC=y
-CONFIG_MMC_BLOCK=m
-CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_SDIO_UART=m
-# CONFIG_MMC_TEST is not set
-CONFIG_MMC_CRYPTO=y
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_SDHCI=m
-CONFIG_MMC_SDHCI_IO_ACCESSORS=y
-CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=y
-CONFIG_MMC_SDHCI_ACPI=m
-CONFIG_MMC_SDHCI_PLTFM=m
-CONFIG_MMC_SDHCI_F_SDH30=m
-CONFIG_MMC_WBSD=m
-CONFIG_MMC_ALCOR=m
-CONFIG_MMC_TIFM_SD=m
-CONFIG_MMC_SPI=m
-CONFIG_MMC_SDRICOH_CS=m
-CONFIG_MMC_CB710=m
-CONFIG_MMC_VIA_SDMMC=m
-CONFIG_MMC_VUB300=m
-CONFIG_MMC_USHC=m
-CONFIG_MMC_USDHI6ROL0=m
-CONFIG_MMC_REALTEK_PCI=m
-CONFIG_MMC_REALTEK_USB=m
-CONFIG_MMC_CQHCI=m
-CONFIG_MMC_HSQ=m
-CONFIG_MMC_TOSHIBA_PCI=m
-CONFIG_MMC_MTK=m
-CONFIG_MMC_SDHCI_XENON=m
-CONFIG_MEMSTICK=m
-# CONFIG_MEMSTICK_DEBUG is not set
-
-#
-# MemoryStick drivers
-#
-# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
-CONFIG_MSPRO_BLOCK=m
-CONFIG_MS_BLOCK=m
-
-#
-# MemoryStick Host Controller Drivers
-#
-CONFIG_MEMSTICK_TIFM_MS=m
-CONFIG_MEMSTICK_JMICRON_38X=m
-CONFIG_MEMSTICK_R592=m
-CONFIG_MEMSTICK_REALTEK_PCI=m
-CONFIG_MEMSTICK_REALTEK_USB=m
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_CLASS_FLASH=m
-CONFIG_LEDS_CLASS_MULTICOLOR=m
-# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
-
-#
-# LED drivers
-#
-CONFIG_LEDS_88PM860X=m
-CONFIG_LEDS_APU=m
-CONFIG_LEDS_AS3645A=m
-CONFIG_LEDS_LM3530=m
-CONFIG_LEDS_LM3532=m
-CONFIG_LEDS_LM3533=m
-CONFIG_LEDS_LM3642=m
-CONFIG_LEDS_LM3601X=m
-CONFIG_LEDS_MT6323=m
-CONFIG_LEDS_PCA9532=m
-CONFIG_LEDS_PCA9532_GPIO=y
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_LP3944=m
-CONFIG_LEDS_LP3952=m
-CONFIG_LEDS_LP50XX=m
-CONFIG_LEDS_LP8788=m
-CONFIG_LEDS_CLEVO_MAIL=m
-CONFIG_LEDS_PCA955X=m
-# CONFIG_LEDS_PCA955X_GPIO is not set
-CONFIG_LEDS_PCA963X=m
-CONFIG_LEDS_WM831X_STATUS=m
-CONFIG_LEDS_WM8350=m
-CONFIG_LEDS_DA903X=m
-CONFIG_LEDS_DA9052=m
-CONFIG_LEDS_DAC124S085=m
-CONFIG_LEDS_PWM=m
-CONFIG_LEDS_REGULATOR=m
-CONFIG_LEDS_BD2802=m
-CONFIG_LEDS_INTEL_SS4200=m
-CONFIG_LEDS_ADP5520=m
-CONFIG_LEDS_MC13783=m
-CONFIG_LEDS_TCA6507=m
-CONFIG_LEDS_TLC591XX=m
-CONFIG_LEDS_MAX8997=m
-CONFIG_LEDS_LM355x=m
-CONFIG_LEDS_MENF21BMC=m
-
-#
-# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
-#
-CONFIG_LEDS_BLINKM=m
-CONFIG_LEDS_MLXCPLD=m
-CONFIG_LEDS_MLXREG=m
-CONFIG_LEDS_USER=m
-CONFIG_LEDS_NIC78BX=m
-CONFIG_LEDS_TI_LMU_COMMON=m
-CONFIG_LEDS_LM36274=m
-CONFIG_LEDS_TPS6105X=m
-CONFIG_LEDS_SGM3140=m
-
-#
-# Flash and Torch LED drivers
-#
-# CONFIG_LEDS_RT8515 is not set
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_ONESHOT=m
-CONFIG_LEDS_TRIGGER_DISK=y
-# CONFIG_LEDS_TRIGGER_MTD is not set
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-CONFIG_LEDS_TRIGGER_BACKLIGHT=m
-CONFIG_LEDS_TRIGGER_CPU=y
-CONFIG_LEDS_TRIGGER_ACTIVITY=m
-CONFIG_LEDS_TRIGGER_GPIO=m
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-CONFIG_LEDS_TRIGGER_TRANSIENT=m
-CONFIG_LEDS_TRIGGER_CAMERA=m
-CONFIG_LEDS_TRIGGER_PANIC=y
-CONFIG_LEDS_TRIGGER_NETDEV=m
-CONFIG_LEDS_TRIGGER_PATTERN=m
-CONFIG_LEDS_TRIGGER_AUDIO=m
-CONFIG_LEDS_TRIGGER_TTY=m
-# CONFIG_ACCESSIBILITY is not set
-CONFIG_INFINIBAND=m
-CONFIG_INFINIBAND_USER_MAD=m
-CONFIG_INFINIBAND_USER_ACCESS=m
-CONFIG_INFINIBAND_USER_MEM=y
-CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
-CONFIG_INFINIBAND_ADDR_TRANS=y
-CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
-CONFIG_INFINIBAND_VIRT_DMA=y
-CONFIG_INFINIBAND_MTHCA=m
-# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
-CONFIG_INFINIBAND_QIB=m
-CONFIG_INFINIBAND_QIB_DCA=y
-CONFIG_INFINIBAND_CXGB4=m
-CONFIG_INFINIBAND_EFA=m
-CONFIG_INFINIBAND_I40IW=m
-CONFIG_MLX4_INFINIBAND=m
-CONFIG_MLX5_INFINIBAND=m
-CONFIG_INFINIBAND_OCRDMA=m
-CONFIG_INFINIBAND_VMWARE_PVRDMA=m
-CONFIG_INFINIBAND_USNIC=m
-CONFIG_INFINIBAND_BNXT_RE=m
-CONFIG_INFINIBAND_HFI1=m
-# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set
-# CONFIG_SDMA_VERBOSITY is not set
-CONFIG_INFINIBAND_QEDR=m
-CONFIG_INFINIBAND_RDMAVT=m
-CONFIG_RDMA_RXE=m
-CONFIG_RDMA_SIW=m
-CONFIG_INFINIBAND_IPOIB=m
-CONFIG_INFINIBAND_IPOIB_CM=y
-# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
-CONFIG_INFINIBAND_SRP=m
-CONFIG_INFINIBAND_SRPT=m
-CONFIG_INFINIBAND_ISER=m
-CONFIG_INFINIBAND_ISERT=m
-CONFIG_INFINIBAND_RTRS=m
-CONFIG_INFINIBAND_RTRS_CLIENT=m
-CONFIG_INFINIBAND_RTRS_SERVER=m
-CONFIG_INFINIBAND_OPA_VNIC=m
-CONFIG_EDAC_ATOMIC_SCRUB=y
-CONFIG_EDAC_SUPPORT=y
-CONFIG_EDAC=y
-# CONFIG_EDAC_LEGACY_SYSFS is not set
-# CONFIG_EDAC_DEBUG is not set
-CONFIG_EDAC_DECODE_MCE=m
-CONFIG_EDAC_GHES=y
-CONFIG_EDAC_AMD64=m
-CONFIG_EDAC_E752X=m
-CONFIG_EDAC_I82975X=m
-CONFIG_EDAC_I3000=m
-CONFIG_EDAC_I3200=m
-CONFIG_EDAC_IE31200=m
-CONFIG_EDAC_X38=m
-CONFIG_EDAC_I5400=m
-CONFIG_EDAC_I7CORE=m
-CONFIG_EDAC_I5000=m
-CONFIG_EDAC_I5100=m
-CONFIG_EDAC_I7300=m
-CONFIG_EDAC_SBRIDGE=m
-CONFIG_EDAC_SKX=m
-CONFIG_EDAC_I10NM=m
-CONFIG_EDAC_PND2=m
-CONFIG_EDAC_IGEN6=m
-CONFIG_RTC_LIB=y
-CONFIG_RTC_MC146818_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-CONFIG_RTC_SYSTOHC=y
-CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-CONFIG_RTC_NVMEM=y
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-CONFIG_RTC_DRV_88PM860X=m
-CONFIG_RTC_DRV_88PM80X=m
-CONFIG_RTC_DRV_ABB5ZES3=m
-CONFIG_RTC_DRV_ABEOZ9=m
-CONFIG_RTC_DRV_ABX80X=m
-CONFIG_RTC_DRV_DS1307=m
-# CONFIG_RTC_DRV_DS1307_CENTURY is not set
-CONFIG_RTC_DRV_DS1374=m
-CONFIG_RTC_DRV_DS1374_WDT=y
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_LP8788=m
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_MAX8907=m
-CONFIG_RTC_DRV_MAX8925=m
-CONFIG_RTC_DRV_MAX8998=m
-CONFIG_RTC_DRV_MAX8997=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-CONFIG_RTC_DRV_ISL12022=m
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PCF8523=m
-CONFIG_RTC_DRV_PCF85063=m
-CONFIG_RTC_DRV_PCF85363=m
-CONFIG_RTC_DRV_PCF8563=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-CONFIG_RTC_DRV_M41T80_WDT=y
-CONFIG_RTC_DRV_BQ32K=m
-CONFIG_RTC_DRV_PALMAS=m
-CONFIG_RTC_DRV_TPS6586X=m
-CONFIG_RTC_DRV_TPS65910=m
-CONFIG_RTC_DRV_TPS80031=m
-CONFIG_RTC_DRV_RC5T583=m
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8010=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
-CONFIG_RTC_DRV_EM3027=m
-CONFIG_RTC_DRV_RV3028=m
-CONFIG_RTC_DRV_RV3032=m
-CONFIG_RTC_DRV_RV8803=m
-CONFIG_RTC_DRV_S5M=m
-CONFIG_RTC_DRV_SD3078=m
-
-#
-# SPI RTC drivers
-#
-CONFIG_RTC_DRV_M41T93=m
-CONFIG_RTC_DRV_M41T94=m
-CONFIG_RTC_DRV_DS1302=m
-CONFIG_RTC_DRV_DS1305=m
-CONFIG_RTC_DRV_DS1343=m
-CONFIG_RTC_DRV_DS1347=m
-CONFIG_RTC_DRV_DS1390=m
-CONFIG_RTC_DRV_MAX6916=m
-CONFIG_RTC_DRV_R9701=m
-CONFIG_RTC_DRV_RX4581=m
-CONFIG_RTC_DRV_RS5C348=m
-CONFIG_RTC_DRV_MAX6902=m
-CONFIG_RTC_DRV_PCF2123=m
-CONFIG_RTC_DRV_MCP795=m
-CONFIG_RTC_I2C_AND_SPI=y
-
-#
-# SPI and I2C RTC drivers
-#
-CONFIG_RTC_DRV_DS3232=m
-CONFIG_RTC_DRV_DS3232_HWMON=y
-CONFIG_RTC_DRV_PCF2127=m
-CONFIG_RTC_DRV_RV3029C2=m
-CONFIG_RTC_DRV_RV3029_HWMON=y
-CONFIG_RTC_DRV_RX6110=m
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=y
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_DS1685_FAMILY=m
-CONFIG_RTC_DRV_DS1685=y
-# CONFIG_RTC_DRV_DS1689 is not set
-# CONFIG_RTC_DRV_DS17285 is not set
-# CONFIG_RTC_DRV_DS17485 is not set
-# CONFIG_RTC_DRV_DS17885 is not set
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_DS2404=m
-CONFIG_RTC_DRV_DA9052=m
-CONFIG_RTC_DRV_DA9055=m
-CONFIG_RTC_DRV_DA9063=m
-CONFIG_RTC_DRV_STK17TA8=m
-CONFIG_RTC_DRV_M48T86=m
-CONFIG_RTC_DRV_M48T35=m
-CONFIG_RTC_DRV_M48T59=m
-CONFIG_RTC_DRV_MSM6242=m
-CONFIG_RTC_DRV_BQ4802=m
-CONFIG_RTC_DRV_RP5C01=m
-CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_WM831X=m
-CONFIG_RTC_DRV_WM8350=m
-CONFIG_RTC_DRV_PCF50633=m
-CONFIG_RTC_DRV_CROS_EC=m
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_RTC_DRV_FTRTC010=m
-CONFIG_RTC_DRV_PCAP=m
-CONFIG_RTC_DRV_MC13XXX=m
-CONFIG_RTC_DRV_MT6397=m
-
-#
-# HID Sensor RTC drivers
-#
-CONFIG_RTC_DRV_HID_SENSOR_TIME=m
-CONFIG_RTC_DRV_GOLDFISH=m
-CONFIG_RTC_DRV_WILCO_EC=m
-CONFIG_DMADEVICES=y
-# CONFIG_DMADEVICES_DEBUG is not set
-
-#
-# DMA Devices
-#
-CONFIG_DMA_ENGINE=y
-CONFIG_DMA_VIRTUAL_CHANNELS=y
-CONFIG_DMA_ACPI=y
-CONFIG_ALTERA_MSGDMA=m
-CONFIG_INTEL_IDMA64=m
-CONFIG_INTEL_IDXD=m
-CONFIG_INTEL_IDXD_SVM=y
-CONFIG_INTEL_IDXD_PERFMON=y
-CONFIG_INTEL_IOATDMA=m
-CONFIG_PLX_DMA=m
-CONFIG_QCOM_HIDMA_MGMT=m
-CONFIG_QCOM_HIDMA=m
-CONFIG_DW_DMAC_CORE=m
-CONFIG_DW_DMAC=m
-CONFIG_DW_DMAC_PCI=m
-CONFIG_DW_EDMA=m
-CONFIG_DW_EDMA_PCIE=m
-CONFIG_HSU_DMA=m
-CONFIG_SF_PDMA=m
-CONFIG_INTEL_LDMA=y
-
-#
-# DMA Clients
-#
-CONFIG_ASYNC_TX_DMA=y
-# CONFIG_DMATEST is not set
-CONFIG_DMA_ENGINE_RAID=y
-
-#
-# DMABUF options
-#
-CONFIG_SYNC_FILE=y
-# CONFIG_SW_SYNC is not set
-# CONFIG_UDMABUF is not set
-# CONFIG_DMABUF_MOVE_NOTIFY is not set
-# CONFIG_DMABUF_DEBUG is not set
-# CONFIG_DMABUF_SELFTESTS is not set
-# CONFIG_DMABUF_HEAPS is not set
-# end of DMABUF options
-
-CONFIG_DCA=m
-CONFIG_AUXDISPLAY=y
-CONFIG_CHARLCD=m
-CONFIG_HD44780_COMMON=m
-CONFIG_HD44780=m
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
-CONFIG_KS0108_DELAY=2
-CONFIG_CFAG12864B=m
-CONFIG_CFAG12864B_RATE=20
-CONFIG_IMG_ASCII_LCD=m
-CONFIG_LCD2S=m
-CONFIG_PARPORT_PANEL=m
-CONFIG_PANEL_PARPORT=0
-CONFIG_PANEL_PROFILE=5
-# CONFIG_PANEL_CHANGE_MESSAGE is not set
-# CONFIG_CHARLCD_BL_OFF is not set
-# CONFIG_CHARLCD_BL_ON is not set
-CONFIG_CHARLCD_BL_FLASH=y
-CONFIG_PANEL=m
-CONFIG_UIO=m
-CONFIG_UIO_CIF=m
-CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_DMEM_GENIRQ=m
-CONFIG_UIO_AEC=m
-CONFIG_UIO_SERCOS3=m
-CONFIG_UIO_PCI_GENERIC=m
-CONFIG_UIO_NETX=m
-CONFIG_UIO_PRUSS=m
-CONFIG_UIO_MF624=m
-CONFIG_UIO_HV_GENERIC=m
-CONFIG_UIO_DFL=m
-CONFIG_VFIO_IOMMU_TYPE1=m
-CONFIG_VFIO_VIRQFD=m
-CONFIG_VFIO=m
-CONFIG_VFIO_NOIOMMU=y
-CONFIG_VFIO_PCI=m
-CONFIG_VFIO_PCI_VGA=y
-CONFIG_VFIO_PCI_MMAP=y
-CONFIG_VFIO_PCI_INTX=y
-CONFIG_VFIO_PCI_IGD=y
-CONFIG_VFIO_MDEV=m
-CONFIG_VFIO_MDEV_DEVICE=m
-CONFIG_IRQ_BYPASS_MANAGER=m
-CONFIG_VIRT_DRIVERS=y
-CONFIG_VBOXGUEST=m
-CONFIG_NITRO_ENCLAVES=m
-CONFIG_VIRTIO=y
-CONFIG_VIRTIO_PCI_LIB=y
-CONFIG_VIRTIO_MENU=y
-CONFIG_VIRTIO_PCI=y
-CONFIG_VIRTIO_PCI_LEGACY=y
-CONFIG_VIRTIO_VDPA=m
-CONFIG_VIRTIO_PMEM=m
-CONFIG_VIRTIO_BALLOON=y
-CONFIG_VIRTIO_MEM=m
-CONFIG_VIRTIO_INPUT=m
-CONFIG_VIRTIO_MMIO=y
-CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
-CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
-CONFIG_VDPA=m
-# CONFIG_VDPA_SIM is not set
-CONFIG_IFCVF=m
-CONFIG_MLX5_VDPA=y
-CONFIG_MLX5_VDPA_NET=m
-CONFIG_VP_VDPA=m
-CONFIG_VHOST_IOTLB=m
-CONFIG_VHOST_RING=m
-CONFIG_VHOST=m
-CONFIG_VHOST_MENU=y
-CONFIG_VHOST_NET=m
-CONFIG_VHOST_SCSI=m
-CONFIG_VHOST_VSOCK=m
-CONFIG_VHOST_VDPA=m
-# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
-
-#
-# Microsoft Hyper-V guest support
-#
-CONFIG_HYPERV=m
-CONFIG_HYPERV_TIMER=y
-CONFIG_HYPERV_UTILS=m
-CONFIG_HYPERV_BALLOON=m
-# end of Microsoft Hyper-V guest support
-
-#
-# Xen driver support
-#
-CONFIG_XEN_BALLOON=y
-CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
-CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512
-CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
-CONFIG_XEN_DEV_EVTCHN=m
-CONFIG_XEN_BACKEND=y
-CONFIG_XENFS=m
-CONFIG_XEN_COMPAT_XENFS=y
-CONFIG_XEN_SYS_HYPERVISOR=y
-CONFIG_XEN_XENBUS_FRONTEND=y
-CONFIG_XEN_GNTDEV=m
-CONFIG_XEN_GRANT_DEV_ALLOC=m
-# CONFIG_XEN_GRANT_DMA_ALLOC is not set
-CONFIG_SWIOTLB_XEN=y
-CONFIG_XEN_PCIDEV_BACKEND=m
-CONFIG_XEN_PVCALLS_FRONTEND=m
-# CONFIG_XEN_PVCALLS_BACKEND is not set
-CONFIG_XEN_SCSI_BACKEND=m
-CONFIG_XEN_PRIVCMD=m
-CONFIG_XEN_ACPI_PROCESSOR=y
-CONFIG_XEN_MCE_LOG=y
-CONFIG_XEN_HAVE_PVMMU=y
-CONFIG_XEN_EFI=y
-CONFIG_XEN_AUTO_XLATE=y
-CONFIG_XEN_ACPI=y
-CONFIG_XEN_SYMS=y
-CONFIG_XEN_HAVE_VPMU=y
-CONFIG_XEN_FRONT_PGDIR_SHBUF=m
-CONFIG_XEN_UNPOPULATED_ALLOC=y
-# end of Xen driver support
-
-# CONFIG_GREYBUS is not set
-CONFIG_COMEDI=m
-# CONFIG_COMEDI_DEBUG is not set
-CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048
-CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480
-CONFIG_COMEDI_MISC_DRIVERS=y
-CONFIG_COMEDI_BOND=m
-CONFIG_COMEDI_TEST=m
-CONFIG_COMEDI_PARPORT=m
-CONFIG_COMEDI_ISA_DRIVERS=y
-CONFIG_COMEDI_PCL711=m
-CONFIG_COMEDI_PCL724=m
-CONFIG_COMEDI_PCL726=m
-CONFIG_COMEDI_PCL730=m
-CONFIG_COMEDI_PCL812=m
-CONFIG_COMEDI_PCL816=m
-CONFIG_COMEDI_PCL818=m
-CONFIG_COMEDI_PCM3724=m
-CONFIG_COMEDI_AMPLC_DIO200_ISA=m
-CONFIG_COMEDI_AMPLC_PC236_ISA=m
-CONFIG_COMEDI_AMPLC_PC263_ISA=m
-CONFIG_COMEDI_RTI800=m
-CONFIG_COMEDI_RTI802=m
-CONFIG_COMEDI_DAC02=m
-CONFIG_COMEDI_DAS16M1=m
-CONFIG_COMEDI_DAS08_ISA=m
-CONFIG_COMEDI_DAS16=m
-CONFIG_COMEDI_DAS800=m
-CONFIG_COMEDI_DAS1800=m
-CONFIG_COMEDI_DAS6402=m
-CONFIG_COMEDI_DT2801=m
-CONFIG_COMEDI_DT2811=m
-CONFIG_COMEDI_DT2814=m
-CONFIG_COMEDI_DT2815=m
-CONFIG_COMEDI_DT2817=m
-CONFIG_COMEDI_DT282X=m
-CONFIG_COMEDI_DMM32AT=m
-CONFIG_COMEDI_FL512=m
-CONFIG_COMEDI_AIO_AIO12_8=m
-CONFIG_COMEDI_AIO_IIRO_16=m
-CONFIG_COMEDI_II_PCI20KC=m
-CONFIG_COMEDI_C6XDIGIO=m
-CONFIG_COMEDI_MPC624=m
-CONFIG_COMEDI_ADQ12B=m
-CONFIG_COMEDI_NI_AT_A2150=m
-CONFIG_COMEDI_NI_AT_AO=m
-CONFIG_COMEDI_NI_ATMIO=m
-CONFIG_COMEDI_NI_ATMIO16D=m
-CONFIG_COMEDI_NI_LABPC_ISA=m
-CONFIG_COMEDI_PCMAD=m
-CONFIG_COMEDI_PCMDA12=m
-CONFIG_COMEDI_PCMMIO=m
-CONFIG_COMEDI_PCMUIO=m
-CONFIG_COMEDI_MULTIQ3=m
-CONFIG_COMEDI_S526=m
-CONFIG_COMEDI_PCI_DRIVERS=m
-CONFIG_COMEDI_8255_PCI=m
-CONFIG_COMEDI_ADDI_WATCHDOG=m
-CONFIG_COMEDI_ADDI_APCI_1032=m
-CONFIG_COMEDI_ADDI_APCI_1500=m
-CONFIG_COMEDI_ADDI_APCI_1516=m
-CONFIG_COMEDI_ADDI_APCI_1564=m
-CONFIG_COMEDI_ADDI_APCI_16XX=m
-CONFIG_COMEDI_ADDI_APCI_2032=m
-CONFIG_COMEDI_ADDI_APCI_2200=m
-CONFIG_COMEDI_ADDI_APCI_3120=m
-CONFIG_COMEDI_ADDI_APCI_3501=m
-CONFIG_COMEDI_ADDI_APCI_3XXX=m
-CONFIG_COMEDI_ADL_PCI6208=m
-CONFIG_COMEDI_ADL_PCI7X3X=m
-CONFIG_COMEDI_ADL_PCI8164=m
-CONFIG_COMEDI_ADL_PCI9111=m
-CONFIG_COMEDI_ADL_PCI9118=m
-CONFIG_COMEDI_ADV_PCI1710=m
-CONFIG_COMEDI_ADV_PCI1720=m
-CONFIG_COMEDI_ADV_PCI1723=m
-CONFIG_COMEDI_ADV_PCI1724=m
-CONFIG_COMEDI_ADV_PCI1760=m
-CONFIG_COMEDI_ADV_PCI_DIO=m
-CONFIG_COMEDI_AMPLC_DIO200_PCI=m
-CONFIG_COMEDI_AMPLC_PC236_PCI=m
-CONFIG_COMEDI_AMPLC_PC263_PCI=m
-CONFIG_COMEDI_AMPLC_PCI224=m
-CONFIG_COMEDI_AMPLC_PCI230=m
-CONFIG_COMEDI_CONTEC_PCI_DIO=m
-CONFIG_COMEDI_DAS08_PCI=m
-CONFIG_COMEDI_DT3000=m
-CONFIG_COMEDI_DYNA_PCI10XX=m
-CONFIG_COMEDI_GSC_HPDI=m
-CONFIG_COMEDI_MF6X4=m
-CONFIG_COMEDI_ICP_MULTI=m
-CONFIG_COMEDI_DAQBOARD2000=m
-CONFIG_COMEDI_JR3_PCI=m
-CONFIG_COMEDI_KE_COUNTER=m
-CONFIG_COMEDI_CB_PCIDAS64=m
-CONFIG_COMEDI_CB_PCIDAS=m
-CONFIG_COMEDI_CB_PCIDDA=m
-CONFIG_COMEDI_CB_PCIMDAS=m
-CONFIG_COMEDI_CB_PCIMDDA=m
-CONFIG_COMEDI_ME4000=m
-CONFIG_COMEDI_ME_DAQ=m
-CONFIG_COMEDI_NI_6527=m
-CONFIG_COMEDI_NI_65XX=m
-CONFIG_COMEDI_NI_660X=m
-CONFIG_COMEDI_NI_670X=m
-CONFIG_COMEDI_NI_LABPC_PCI=m
-CONFIG_COMEDI_NI_PCIDIO=m
-CONFIG_COMEDI_NI_PCIMIO=m
-CONFIG_COMEDI_RTD520=m
-CONFIG_COMEDI_S626=m
-CONFIG_COMEDI_MITE=m
-CONFIG_COMEDI_NI_TIOCMD=m
-CONFIG_COMEDI_PCMCIA_DRIVERS=m
-CONFIG_COMEDI_CB_DAS16_CS=m
-CONFIG_COMEDI_DAS08_CS=m
-CONFIG_COMEDI_NI_DAQ_700_CS=m
-CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
-CONFIG_COMEDI_NI_LABPC_CS=m
-CONFIG_COMEDI_NI_MIO_CS=m
-CONFIG_COMEDI_QUATECH_DAQP_CS=m
-CONFIG_COMEDI_USB_DRIVERS=m
-CONFIG_COMEDI_DT9812=m
-CONFIG_COMEDI_NI_USB6501=m
-CONFIG_COMEDI_USBDUX=m
-CONFIG_COMEDI_USBDUXFAST=m
-CONFIG_COMEDI_USBDUXSIGMA=m
-CONFIG_COMEDI_VMK80XX=m
-CONFIG_COMEDI_8254=m
-CONFIG_COMEDI_8255=m
-CONFIG_COMEDI_8255_SA=m
-CONFIG_COMEDI_KCOMEDILIB=m
-CONFIG_COMEDI_AMPLC_DIO200=m
-CONFIG_COMEDI_AMPLC_PC236=m
-CONFIG_COMEDI_DAS08=m
-CONFIG_COMEDI_ISADMA=m
-CONFIG_COMEDI_NI_LABPC=m
-CONFIG_COMEDI_NI_LABPC_ISADMA=m
-CONFIG_COMEDI_NI_TIO=m
-CONFIG_COMEDI_NI_ROUTING=m
-# CONFIG_COMEDI_TESTS is not set
-CONFIG_STAGING=y
-CONFIG_PRISM2_USB=m
-CONFIG_RTL8192U=m
-CONFIG_RTLLIB=m
-CONFIG_RTLLIB_CRYPTO_CCMP=m
-CONFIG_RTLLIB_CRYPTO_TKIP=m
-CONFIG_RTLLIB_CRYPTO_WEP=m
-CONFIG_RTL8192E=m
-CONFIG_RTL8723BS=m
-CONFIG_R8712U=m
-CONFIG_R8188EU=m
-CONFIG_88EU_AP_MODE=y
-CONFIG_RTS5208=m
-CONFIG_VT6655=m
-CONFIG_VT6656=m
-
-#
-# IIO staging drivers
-#
-
-#
-# Accelerometers
-#
-CONFIG_ADIS16203=m
-CONFIG_ADIS16240=m
-# end of Accelerometers
-
-#
-# Analog to digital converters
-#
-CONFIG_AD7816=m
-CONFIG_AD7280=m
-# end of Analog to digital converters
-
-#
-# Analog digital bi-direction converters
-#
-CONFIG_ADT7316=m
-CONFIG_ADT7316_SPI=m
-CONFIG_ADT7316_I2C=m
-# end of Analog digital bi-direction converters
-
-#
-# Capacitance to digital converters
-#
-CONFIG_AD7746=m
-# end of Capacitance to digital converters
-
-#
-# Direct Digital Synthesis
-#
-CONFIG_AD9832=m
-CONFIG_AD9834=m
-# end of Direct Digital Synthesis
-
-#
-# Network Analyzer, Impedance Converters
-#
-CONFIG_AD5933=m
-# end of Network Analyzer, Impedance Converters
-
-#
-# Active energy metering IC
-#
-CONFIG_ADE7854=m
-CONFIG_ADE7854_I2C=m
-CONFIG_ADE7854_SPI=m
-# end of Active energy metering IC
-
-#
-# Resolver to digital converters
-#
-CONFIG_AD2S1210=m
-# end of Resolver to digital converters
-# end of IIO staging drivers
-
-CONFIG_FB_SM750=m
-CONFIG_STAGING_MEDIA=y
-CONFIG_INTEL_ATOMISP=y
-# CONFIG_VIDEO_ZORAN is not set
-CONFIG_VIDEO_IPU3_IMGU=m
-
-#
-# Android
-#
-# end of Android
-
-CONFIG_LTE_GDM724X=m
-CONFIG_FIREWIRE_SERIAL=m
-CONFIG_FWTTY_MAX_TOTAL_PORTS=64
-CONFIG_FWTTY_MAX_CARD_PORTS=32
-CONFIG_GS_FPGABOOT=m
-CONFIG_UNISYSSPAR=y
-CONFIG_UNISYS_VISORNIC=m
-CONFIG_UNISYS_VISORINPUT=m
-CONFIG_UNISYS_VISORHBA=m
-CONFIG_FB_TFT=m
-CONFIG_FB_TFT_AGM1264K_FL=m
-CONFIG_FB_TFT_BD663474=m
-CONFIG_FB_TFT_HX8340BN=m
-CONFIG_FB_TFT_HX8347D=m
-CONFIG_FB_TFT_HX8353D=m
-CONFIG_FB_TFT_HX8357D=m
-CONFIG_FB_TFT_ILI9163=m
-CONFIG_FB_TFT_ILI9320=m
-CONFIG_FB_TFT_ILI9325=m
-CONFIG_FB_TFT_ILI9340=m
-CONFIG_FB_TFT_ILI9341=m
-CONFIG_FB_TFT_ILI9481=m
-CONFIG_FB_TFT_ILI9486=m
-CONFIG_FB_TFT_PCD8544=m
-CONFIG_FB_TFT_RA8875=m
-CONFIG_FB_TFT_S6D02A1=m
-CONFIG_FB_TFT_S6D1121=m
-CONFIG_FB_TFT_SEPS525=m
-CONFIG_FB_TFT_SH1106=m
-CONFIG_FB_TFT_SSD1289=m
-CONFIG_FB_TFT_SSD1305=m
-CONFIG_FB_TFT_SSD1306=m
-CONFIG_FB_TFT_SSD1331=m
-CONFIG_FB_TFT_SSD1351=m
-CONFIG_FB_TFT_ST7735R=m
-CONFIG_FB_TFT_ST7789V=m
-CONFIG_FB_TFT_TINYLCD=m
-CONFIG_FB_TFT_TLS8204=m
-CONFIG_FB_TFT_UC1611=m
-CONFIG_FB_TFT_UC1701=m
-CONFIG_FB_TFT_UPD161704=m
-CONFIG_FB_TFT_WATTEROTT=m
-CONFIG_MOST_COMPONENTS=m
-CONFIG_MOST_NET=m
-CONFIG_MOST_VIDEO=m
-CONFIG_MOST_I2C=m
-CONFIG_KS7010=m
-# CONFIG_PI433 is not set
-CONFIG_FIELDBUS_DEV=m
-# CONFIG_KPC2000 is not set
-CONFIG_QLGE=m
-CONFIG_WFX=m
-# CONFIG_SPMI_HISI3670 is not set
-CONFIG_X86_PLATFORM_DEVICES=y
-CONFIG_ACPI_WMI=m
-CONFIG_WMI_BMOF=m
-CONFIG_HUAWEI_WMI=m
-CONFIG_INTEL_WMI_SBL_FW_UPDATE=m
-CONFIG_INTEL_WMI_THUNDERBOLT=m
-CONFIG_MXM_WMI=m
-CONFIG_PEAQ_WMI=m
-CONFIG_XIAOMI_WMI=m
-CONFIG_GIGABYTE_WMI=m
-CONFIG_ACERHDF=m
-CONFIG_ACER_WIRELESS=m
-CONFIG_ACER_WMI=m
-CONFIG_AMD_PMC=m
-CONFIG_ADV_SWBUTTON=m
-CONFIG_APPLE_GMUX=m
-CONFIG_ASUS_LAPTOP=m
-CONFIG_ASUS_WIRELESS=m
-CONFIG_ASUS_WMI=m
-CONFIG_ASUS_NB_WMI=m
-CONFIG_EEEPC_LAPTOP=m
-CONFIG_EEEPC_WMI=m
-CONFIG_X86_PLATFORM_DRIVERS_DELL=y
-CONFIG_ALIENWARE_WMI=m
-CONFIG_DCDBAS=m
-CONFIG_DELL_LAPTOP=m
-CONFIG_DELL_RBU=m
-CONFIG_DELL_RBTN=m
-CONFIG_DELL_SMBIOS=m
-CONFIG_DELL_SMBIOS_WMI=y
-CONFIG_DELL_SMBIOS_SMM=y
-CONFIG_DELL_SMO8800=m
-CONFIG_DELL_WMI=m
-CONFIG_DELL_WMI_AIO=m
-CONFIG_DELL_WMI_DESCRIPTOR=m
-CONFIG_DELL_WMI_LED=m
-CONFIG_DELL_WMI_SYSMAN=m
-CONFIG_AMILO_RFKILL=m
-CONFIG_FUJITSU_LAPTOP=m
-CONFIG_FUJITSU_TABLET=m
-CONFIG_GPD_POCKET_FAN=m
-CONFIG_HP_ACCEL=m
-CONFIG_HP_WIRELESS=m
-CONFIG_HP_WMI=m
-CONFIG_IBM_RTL=m
-CONFIG_IDEAPAD_LAPTOP=m
-CONFIG_SENSORS_HDAPS=m
-CONFIG_THINKPAD_ACPI=m
-CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
-CONFIG_THINKPAD_ACPI_DEBUGFACILITIES=y
-# CONFIG_THINKPAD_ACPI_DEBUG is not set
-# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
-CONFIG_THINKPAD_ACPI_VIDEO=y
-CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
-CONFIG_INTEL_ATOMISP2_LED=m
-CONFIG_INTEL_CHT_INT33FE=m
-CONFIG_INTEL_HID_EVENT=m
-CONFIG_INTEL_INT0002_VGPIO=m
-CONFIG_INTEL_MENLOW=m
-CONFIG_INTEL_OAKTRAIL=m
-CONFIG_INTEL_VBTN=m
-CONFIG_MSI_LAPTOP=m
-CONFIG_MSI_WMI=m
-CONFIG_PCENGINES_APU2=m
-CONFIG_SAMSUNG_LAPTOP=m
-CONFIG_SAMSUNG_Q10=m
-CONFIG_ACPI_TOSHIBA=m
-CONFIG_TOSHIBA_BT_RFKILL=m
-CONFIG_TOSHIBA_HAPS=m
-CONFIG_TOSHIBA_WMI=m
-CONFIG_ACPI_CMPC=m
-CONFIG_COMPAL_LAPTOP=m
-CONFIG_LG_LAPTOP=m
-CONFIG_PANASONIC_LAPTOP=m
-CONFIG_SONY_LAPTOP=m
-CONFIG_SONYPI_COMPAT=y
-CONFIG_SYSTEM76_ACPI=m
-CONFIG_TOPSTAR_LAPTOP=m
-CONFIG_I2C_MULTI_INSTANTIATE=m
-# CONFIG_MLX_PLATFORM is not set
-# CONFIG_TOUCHSCREEN_DMI is not set
-CONFIG_INTEL_IPS=m
-CONFIG_INTEL_RST=m
-CONFIG_INTEL_SMARTCONNECT=m
-
-#
-# Intel Speed Select Technology interface support
-#
-CONFIG_INTEL_SPEED_SELECT_INTERFACE=m
-# end of Intel Speed Select Technology interface support
-
-# CONFIG_INTEL_TURBO_MAX_3 is not set
-CONFIG_INTEL_UNCORE_FREQ_CONTROL=m
-CONFIG_INTEL_BXTWC_PMIC_TMU=m
-CONFIG_INTEL_CHTDC_TI_PWRBTN=m
-CONFIG_INTEL_MRFLD_PWRBTN=m
-CONFIG_INTEL_PMC_CORE=y
-CONFIG_INTEL_PMT_CLASS=m
-CONFIG_INTEL_PMT_TELEMETRY=m
-CONFIG_INTEL_PMT_CRASHLOG=m
-CONFIG_INTEL_PUNIT_IPC=m
-CONFIG_INTEL_SCU_IPC=y
-CONFIG_INTEL_SCU=y
-CONFIG_INTEL_SCU_PCI=y
-CONFIG_INTEL_SCU_PLATFORM=m
-CONFIG_INTEL_SCU_IPC_UTIL=m
-CONFIG_INTEL_TELEMETRY=m
-CONFIG_PMC_ATOM=y
-CONFIG_CHROME_PLATFORMS=y
-CONFIG_CHROMEOS_LAPTOP=m
-CONFIG_CHROMEOS_PSTORE=m
-CONFIG_CHROMEOS_TBMC=m
-CONFIG_CROS_EC=m
-CONFIG_CROS_EC_I2C=m
-CONFIG_CROS_EC_ISHTP=m
-CONFIG_CROS_EC_SPI=m
-CONFIG_CROS_EC_LPC=m
-CONFIG_CROS_EC_PROTO=y
-CONFIG_CROS_KBD_LED_BACKLIGHT=m
-CONFIG_CROS_EC_CHARDEV=m
-CONFIG_CROS_EC_LIGHTBAR=m
-CONFIG_CROS_EC_DEBUGFS=m
-CONFIG_CROS_EC_SENSORHUB=m
-CONFIG_CROS_EC_SYSFS=m
-CONFIG_CROS_EC_TYPEC=m
-CONFIG_CROS_USBPD_LOGGER=m
-CONFIG_CROS_USBPD_NOTIFY=m
-CONFIG_WILCO_EC=m
-# CONFIG_WILCO_EC_DEBUGFS is not set
-CONFIG_WILCO_EC_EVENTS=m
-CONFIG_WILCO_EC_TELEMETRY=m
-# CONFIG_MELLANOX_PLATFORM is not set
-CONFIG_SURFACE_PLATFORMS=y
-CONFIG_SURFACE3_WMI=m
-CONFIG_SURFACE_3_BUTTON=m
-CONFIG_SURFACE_3_POWER_OPREGION=m
-CONFIG_SURFACE_ACPI_NOTIFY=m
-# CONFIG_SURFACE_AGGREGATOR_CDEV is not set
-CONFIG_SURFACE_AGGREGATOR_REGISTRY=m
-CONFIG_SURFACE_DTX=m
-CONFIG_SURFACE_GPE=m
-CONFIG_SURFACE_HOTPLUG=m
-CONFIG_SURFACE_PLATFORM_PROFILE=m
-CONFIG_SURFACE_PRO3_BUTTON=m
-CONFIG_SURFACE_AGGREGATOR=m
-CONFIG_SURFACE_AGGREGATOR_BUS=y
-# CONFIG_SURFACE_AGGREGATOR_ERROR_INJECTION is not set
-CONFIG_HAVE_CLK=y
-CONFIG_CLKDEV_LOOKUP=y
-CONFIG_HAVE_CLK_PREPARE=y
-CONFIG_COMMON_CLK=y
-CONFIG_COMMON_CLK_WM831X=m
-CONFIG_COMMON_CLK_MAX9485=m
-CONFIG_COMMON_CLK_SI5341=m
-CONFIG_COMMON_CLK_SI5351=m
-CONFIG_COMMON_CLK_SI544=m
-CONFIG_COMMON_CLK_CDCE706=m
-CONFIG_COMMON_CLK_CS2000_CP=m
-CONFIG_COMMON_CLK_S2MPS11=m
-CONFIG_CLK_TWL6040=m
-CONFIG_COMMON_CLK_PALMAS=m
-CONFIG_COMMON_CLK_PWM=m
-CONFIG_XILINX_VCU=m
-# CONFIG_HWSPINLOCK is not set
-
-#
-# Clock Source drivers
-#
-CONFIG_CLKEVT_I8253=y
-CONFIG_I8253_LOCK=y
-CONFIG_CLKBLD_I8253=y
-# end of Clock Source drivers
-
-CONFIG_MAILBOX=y
-CONFIG_PCC=y
-CONFIG_ALTERA_MBOX=m
-CONFIG_IOMMU_IOVA=y
-CONFIG_IOASID=y
-CONFIG_IOMMU_API=y
-CONFIG_IOMMU_SUPPORT=y
-
-#
-# Generic IOMMU Pagetable Support
-#
-CONFIG_IOMMU_IO_PGTABLE=y
-# end of Generic IOMMU Pagetable Support
-
-# CONFIG_IOMMU_DEBUGFS is not set
-# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
-CONFIG_IOMMU_DMA=y
-CONFIG_AMD_IOMMU=y
-CONFIG_AMD_IOMMU_V2=m
-CONFIG_DMAR_TABLE=y
-CONFIG_INTEL_IOMMU=y
-CONFIG_INTEL_IOMMU_SVM=y
-# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
-CONFIG_INTEL_IOMMU_FLOPPY_WA=y
-# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
-CONFIG_IRQ_REMAP=y
-CONFIG_HYPERV_IOMMU=y
-
-#
-# Remoteproc drivers
-#
-# CONFIG_REMOTEPROC is not set
-# end of Remoteproc drivers
-
-#
-# Rpmsg drivers
-#
-CONFIG_RPMSG=m
-# CONFIG_RPMSG_CHAR is not set
-CONFIG_RPMSG_NS=m
-CONFIG_RPMSG_QCOM_GLINK=m
-CONFIG_RPMSG_QCOM_GLINK_RPM=m
-CONFIG_RPMSG_VIRTIO=m
-# end of Rpmsg drivers
-
-CONFIG_SOUNDWIRE=m
-
-#
-# SoundWire Devices
-#
-CONFIG_SOUNDWIRE_CADENCE=m
-CONFIG_SOUNDWIRE_INTEL=m
-CONFIG_SOUNDWIRE_QCOM=m
-CONFIG_SOUNDWIRE_GENERIC_ALLOCATION=m
-
-#
-# SOC (System On Chip) specific Drivers
-#
-
-#
-# Amlogic SoC drivers
-#
-# end of Amlogic SoC drivers
-
-#
-# Broadcom SoC drivers
-#
-# end of Broadcom SoC drivers
-
-#
-# NXP/Freescale QorIQ SoC drivers
-#
-# end of NXP/Freescale QorIQ SoC drivers
-
-#
-# i.MX SoC drivers
-#
-# end of i.MX SoC drivers
-
-#
-# Enable LiteX SoC Builder specific drivers
-#
-# end of Enable LiteX SoC Builder specific drivers
-
-#
-# Qualcomm SoC drivers
-#
-CONFIG_QCOM_QMI_HELPERS=m
-# end of Qualcomm SoC drivers
-
-CONFIG_SOC_TI=y
-
-#
-# Xilinx SoC drivers
-#
-# end of Xilinx SoC drivers
-# end of SOC (System On Chip) specific Drivers
-
-CONFIG_PM_DEVFREQ=y
-
-#
-# DEVFREQ Governors
-#
-CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
-CONFIG_DEVFREQ_GOV_PERFORMANCE=y
-CONFIG_DEVFREQ_GOV_POWERSAVE=y
-CONFIG_DEVFREQ_GOV_USERSPACE=y
-CONFIG_DEVFREQ_GOV_PASSIVE=m
-
-#
-# DEVFREQ Drivers
-#
-CONFIG_PM_DEVFREQ_EVENT=y
-CONFIG_EXTCON=y
-
-#
-# Extcon Device Drivers
-#
-CONFIG_EXTCON_ADC_JACK=m
-CONFIG_EXTCON_AXP288=m
-CONFIG_EXTCON_FSA9480=m
-CONFIG_EXTCON_GPIO=m
-CONFIG_EXTCON_INTEL_INT3496=m
-CONFIG_EXTCON_INTEL_CHT_WC=m
-CONFIG_EXTCON_INTEL_MRFLD=m
-CONFIG_EXTCON_MAX14577=m
-CONFIG_EXTCON_MAX3355=m
-CONFIG_EXTCON_MAX77693=m
-CONFIG_EXTCON_MAX77843=m
-CONFIG_EXTCON_MAX8997=m
-CONFIG_EXTCON_PALMAS=m
-CONFIG_EXTCON_PTN5150=m
-CONFIG_EXTCON_RT8973A=m
-CONFIG_EXTCON_SM5502=m
-CONFIG_EXTCON_USB_GPIO=m
-CONFIG_EXTCON_USBC_CROS_EC=m
-CONFIG_EXTCON_USBC_TUSB320=m
-CONFIG_MEMORY=y
-CONFIG_FPGA_DFL_EMIF=m
-CONFIG_IIO=m
-CONFIG_IIO_BUFFER=y
-CONFIG_IIO_BUFFER_CB=m
-CONFIG_IIO_BUFFER_DMA=m
-CONFIG_IIO_BUFFER_DMAENGINE=m
-CONFIG_IIO_BUFFER_HW_CONSUMER=m
-CONFIG_IIO_KFIFO_BUF=m
-CONFIG_IIO_TRIGGERED_BUFFER=m
-CONFIG_IIO_CONFIGFS=m
-CONFIG_IIO_TRIGGER=y
-CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
-CONFIG_IIO_SW_DEVICE=m
-CONFIG_IIO_SW_TRIGGER=m
-CONFIG_IIO_TRIGGERED_EVENT=m
-
-#
-# Accelerometers
-#
-CONFIG_ADIS16201=m
-CONFIG_ADIS16209=m
-CONFIG_ADXL372=m
-CONFIG_ADXL372_SPI=m
-CONFIG_ADXL372_I2C=m
-CONFIG_BMA220=m
-CONFIG_BMA400=m
-CONFIG_BMA400_I2C=m
-CONFIG_BMA400_SPI=m
-CONFIG_BMC150_ACCEL=m
-CONFIG_BMC150_ACCEL_I2C=m
-CONFIG_BMC150_ACCEL_SPI=m
-CONFIG_BMI088_ACCEL=m
-CONFIG_BMI088_ACCEL_SPI=m
-CONFIG_DA280=m
-CONFIG_DA311=m
-CONFIG_DMARD09=m
-CONFIG_DMARD10=m
-CONFIG_HID_SENSOR_ACCEL_3D=m
-CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m
-CONFIG_IIO_ST_ACCEL_3AXIS=m
-CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
-CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
-CONFIG_KXSD9=m
-CONFIG_KXSD9_SPI=m
-CONFIG_KXSD9_I2C=m
-CONFIG_KXCJK1013=m
-CONFIG_MC3230=m
-CONFIG_MMA7455=m
-CONFIG_MMA7455_I2C=m
-CONFIG_MMA7455_SPI=m
-CONFIG_MMA7660=m
-CONFIG_MMA8452=m
-CONFIG_MMA9551_CORE=m
-CONFIG_MMA9551=m
-CONFIG_MMA9553=m
-CONFIG_MXC4005=m
-CONFIG_MXC6255=m
-CONFIG_SCA3000=m
-CONFIG_STK8312=m
-CONFIG_STK8BA50=m
-# end of Accelerometers
-
-#
-# Analog to digital converters
-#
-CONFIG_AD_SIGMA_DELTA=m
-CONFIG_AD7091R5=m
-CONFIG_AD7124=m
-CONFIG_AD7192=m
-CONFIG_AD7266=m
-CONFIG_AD7291=m
-CONFIG_AD7292=m
-CONFIG_AD7298=m
-CONFIG_AD7476=m
-CONFIG_AD7606=m
-CONFIG_AD7606_IFACE_PARALLEL=m
-CONFIG_AD7606_IFACE_SPI=m
-CONFIG_AD7766=m
-CONFIG_AD7768_1=m
-CONFIG_AD7780=m
-CONFIG_AD7791=m
-CONFIG_AD7793=m
-CONFIG_AD7887=m
-CONFIG_AD7923=m
-CONFIG_AD7949=m
-CONFIG_AD799X=m
-CONFIG_AXP20X_ADC=m
-CONFIG_AXP288_ADC=m
-CONFIG_CC10001_ADC=m
-CONFIG_DA9150_GPADC=m
-CONFIG_DLN2_ADC=m
-CONFIG_HI8435=m
-CONFIG_HX711=m
-CONFIG_INA2XX_ADC=m
-CONFIG_INTEL_MRFLD_ADC=m
-CONFIG_LP8788_ADC=m
-CONFIG_LTC2471=m
-CONFIG_LTC2485=m
-CONFIG_LTC2496=m
-CONFIG_LTC2497=m
-CONFIG_MAX1027=m
-CONFIG_MAX11100=m
-CONFIG_MAX1118=m
-CONFIG_MAX1241=m
-CONFIG_MAX1363=m
-CONFIG_MAX9611=m
-CONFIG_MCP320X=m
-CONFIG_MCP3422=m
-CONFIG_MCP3911=m
-# CONFIG_MEDIATEK_MT6360_ADC is not set
-CONFIG_MEN_Z188_ADC=m
-CONFIG_MP2629_ADC=m
-CONFIG_NAU7802=m
-CONFIG_PALMAS_GPADC=m
-CONFIG_QCOM_VADC_COMMON=m
-CONFIG_QCOM_SPMI_IADC=m
-CONFIG_QCOM_SPMI_VADC=m
-CONFIG_QCOM_SPMI_ADC5=m
-CONFIG_TI_ADC081C=m
-CONFIG_TI_ADC0832=m
-CONFIG_TI_ADC084S021=m
-CONFIG_TI_ADC12138=m
-CONFIG_TI_ADC108S102=m
-CONFIG_TI_ADC128S052=m
-CONFIG_TI_ADC161S626=m
-CONFIG_TI_ADS1015=m
-CONFIG_TI_ADS7950=m
-CONFIG_TI_ADS131E08=m
-CONFIG_TI_AM335X_ADC=m
-CONFIG_TI_TLC4541=m
-CONFIG_TWL4030_MADC=m
-CONFIG_TWL6030_GPADC=m
-CONFIG_VIPERBOARD_ADC=m
-CONFIG_XILINX_XADC=m
-# end of Analog to digital converters
-
-#
-# Analog Front Ends
-#
-# end of Analog Front Ends
-
-#
-# Amplifiers
-#
-CONFIG_AD8366=m
-CONFIG_HMC425=m
-# end of Amplifiers
-
-#
-# Capacitance to digital converters
-#
-CONFIG_AD7150=m
-# end of Capacitance to digital converters
-
-#
-# Chemical Sensors
-#
-CONFIG_ATLAS_PH_SENSOR=m
-CONFIG_ATLAS_EZO_SENSOR=m
-CONFIG_BME680=m
-CONFIG_BME680_I2C=m
-CONFIG_BME680_SPI=m
-CONFIG_CCS811=m
-CONFIG_IAQCORE=m
-CONFIG_PMS7003=m
-CONFIG_SCD30_CORE=m
-CONFIG_SCD30_I2C=m
-CONFIG_SCD30_SERIAL=m
-CONFIG_SENSIRION_SGP30=m
-CONFIG_SPS30=m
-CONFIG_VZ89X=m
-# end of Chemical Sensors
-
-CONFIG_IIO_CROS_EC_SENSORS_CORE=m
-CONFIG_IIO_CROS_EC_SENSORS=m
-CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE=m
-
-#
-# Hid Sensor IIO Common
-#
-CONFIG_HID_SENSOR_IIO_COMMON=m
-CONFIG_HID_SENSOR_IIO_TRIGGER=m
-# end of Hid Sensor IIO Common
-
-CONFIG_IIO_MS_SENSORS_I2C=m
-
-#
-# IIO SCMI Sensors
-#
-# end of IIO SCMI Sensors
-
-#
-# SSP Sensor Common
-#
-CONFIG_IIO_SSP_SENSORS_COMMONS=m
-CONFIG_IIO_SSP_SENSORHUB=m
-# end of SSP Sensor Common
-
-CONFIG_IIO_ST_SENSORS_I2C=m
-CONFIG_IIO_ST_SENSORS_SPI=m
-CONFIG_IIO_ST_SENSORS_CORE=m
-
-#
-# Digital to analog converters
-#
-CONFIG_AD5064=m
-CONFIG_AD5360=m
-CONFIG_AD5380=m
-CONFIG_AD5421=m
-CONFIG_AD5446=m
-CONFIG_AD5449=m
-CONFIG_AD5592R_BASE=m
-CONFIG_AD5592R=m
-CONFIG_AD5593R=m
-CONFIG_AD5504=m
-CONFIG_AD5624R_SPI=m
-CONFIG_AD5686=m
-CONFIG_AD5686_SPI=m
-CONFIG_AD5696_I2C=m
-CONFIG_AD5755=m
-CONFIG_AD5758=m
-CONFIG_AD5761=m
-CONFIG_AD5764=m
-CONFIG_AD5766=m
-CONFIG_AD5770R=m
-CONFIG_AD5791=m
-CONFIG_AD7303=m
-CONFIG_AD8801=m
-CONFIG_DS4424=m
-CONFIG_LTC1660=m
-CONFIG_LTC2632=m
-CONFIG_M62332=m
-CONFIG_MAX517=m
-CONFIG_MCP4725=m
-CONFIG_MCP4922=m
-CONFIG_TI_DAC082S085=m
-CONFIG_TI_DAC5571=m
-CONFIG_TI_DAC7311=m
-CONFIG_TI_DAC7612=m
-# end of Digital to analog converters
-
-#
-# IIO dummy driver
-#
-CONFIG_IIO_SIMPLE_DUMMY=m
-# CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set
-# CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set
-# end of IIO dummy driver
-
-#
-# Frequency Synthesizers DDS/PLL
-#
-
-#
-# Clock Generator/Distribution
-#
-CONFIG_AD9523=m
-# end of Clock Generator/Distribution
-
-#
-# Phase-Locked Loop (PLL) frequency synthesizers
-#
-CONFIG_ADF4350=m
-CONFIG_ADF4371=m
-# end of Phase-Locked Loop (PLL) frequency synthesizers
-# end of Frequency Synthesizers DDS/PLL
-
-#
-# Digital gyroscope sensors
-#
-CONFIG_ADIS16080=m
-CONFIG_ADIS16130=m
-CONFIG_ADIS16136=m
-CONFIG_ADIS16260=m
-CONFIG_ADXRS290=m
-CONFIG_ADXRS450=m
-CONFIG_BMG160=m
-CONFIG_BMG160_I2C=m
-CONFIG_BMG160_SPI=m
-CONFIG_FXAS21002C=m
-CONFIG_FXAS21002C_I2C=m
-CONFIG_FXAS21002C_SPI=m
-CONFIG_HID_SENSOR_GYRO_3D=m
-CONFIG_MPU3050=m
-CONFIG_MPU3050_I2C=m
-CONFIG_IIO_ST_GYRO_3AXIS=m
-CONFIG_IIO_ST_GYRO_I2C_3AXIS=m
-CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
-CONFIG_ITG3200=m
-# end of Digital gyroscope sensors
-
-#
-# Health Sensors
-#
-
-#
-# Heart Rate Monitors
-#
-CONFIG_AFE4403=m
-CONFIG_AFE4404=m
-CONFIG_MAX30100=m
-CONFIG_MAX30102=m
-# end of Heart Rate Monitors
-# end of Health Sensors
-
-#
-# Humidity sensors
-#
-CONFIG_AM2315=m
-CONFIG_DHT11=m
-CONFIG_HDC100X=m
-CONFIG_HDC2010=m
-CONFIG_HID_SENSOR_HUMIDITY=m
-CONFIG_HTS221=m
-CONFIG_HTS221_I2C=m
-CONFIG_HTS221_SPI=m
-CONFIG_HTU21=m
-CONFIG_SI7005=m
-CONFIG_SI7020=m
-# end of Humidity sensors
-
-#
-# Inertial measurement units
-#
-CONFIG_ADIS16400=m
-CONFIG_ADIS16460=m
-CONFIG_ADIS16475=m
-CONFIG_ADIS16480=m
-CONFIG_BMI160=m
-CONFIG_BMI160_I2C=m
-CONFIG_BMI160_SPI=m
-CONFIG_FXOS8700=m
-CONFIG_FXOS8700_I2C=m
-CONFIG_FXOS8700_SPI=m
-CONFIG_KMX61=m
-CONFIG_INV_ICM42600=m
-CONFIG_INV_ICM42600_I2C=m
-CONFIG_INV_ICM42600_SPI=m
-CONFIG_INV_MPU6050_IIO=m
-CONFIG_INV_MPU6050_I2C=m
-CONFIG_INV_MPU6050_SPI=m
-CONFIG_IIO_ST_LSM6DSX=m
-CONFIG_IIO_ST_LSM6DSX_I2C=m
-CONFIG_IIO_ST_LSM6DSX_SPI=m
-CONFIG_IIO_ST_LSM6DSX_I3C=m
-# end of Inertial measurement units
-
-CONFIG_IIO_ADIS_LIB=m
-CONFIG_IIO_ADIS_LIB_BUFFER=y
-
-#
-# Light sensors
-#
-CONFIG_ACPI_ALS=m
-CONFIG_ADJD_S311=m
-CONFIG_ADUX1020=m
-CONFIG_AL3010=m
-CONFIG_AL3320A=m
-CONFIG_APDS9300=m
-CONFIG_APDS9960=m
-CONFIG_AS73211=m
-CONFIG_BH1750=m
-CONFIG_BH1780=m
-CONFIG_CM32181=m
-CONFIG_CM3232=m
-CONFIG_CM3323=m
-CONFIG_CM36651=m
-CONFIG_IIO_CROS_EC_LIGHT_PROX=m
-CONFIG_GP2AP002=m
-CONFIG_GP2AP020A00F=m
-CONFIG_IQS621_ALS=m
-CONFIG_SENSORS_ISL29018=m
-CONFIG_SENSORS_ISL29028=m
-CONFIG_ISL29125=m
-CONFIG_HID_SENSOR_ALS=m
-CONFIG_HID_SENSOR_PROX=m
-CONFIG_JSA1212=m
-CONFIG_RPR0521=m
-CONFIG_SENSORS_LM3533=m
-CONFIG_LTR501=m
-CONFIG_LV0104CS=m
-CONFIG_MAX44000=m
-CONFIG_MAX44009=m
-CONFIG_NOA1305=m
-CONFIG_OPT3001=m
-CONFIG_PA12203001=m
-CONFIG_SI1133=m
-CONFIG_SI1145=m
-CONFIG_STK3310=m
-CONFIG_ST_UVIS25=m
-CONFIG_ST_UVIS25_I2C=m
-CONFIG_ST_UVIS25_SPI=m
-CONFIG_TCS3414=m
-CONFIG_TCS3472=m
-CONFIG_SENSORS_TSL2563=m
-CONFIG_TSL2583=m
-CONFIG_TSL2772=m
-CONFIG_TSL4531=m
-CONFIG_US5182D=m
-CONFIG_VCNL4000=m
-CONFIG_VCNL4035=m
-CONFIG_VEML6030=m
-CONFIG_VEML6070=m
-CONFIG_VL6180=m
-CONFIG_ZOPT2201=m
-# end of Light sensors
-
-#
-# Magnetometer sensors
-#
-CONFIG_AK8975=m
-CONFIG_AK09911=m
-CONFIG_BMC150_MAGN=m
-CONFIG_BMC150_MAGN_I2C=m
-CONFIG_BMC150_MAGN_SPI=m
-CONFIG_MAG3110=m
-CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
-CONFIG_MMC35240=m
-CONFIG_IIO_ST_MAGN_3AXIS=m
-CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
-CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
-CONFIG_SENSORS_HMC5843=m
-CONFIG_SENSORS_HMC5843_I2C=m
-CONFIG_SENSORS_HMC5843_SPI=m
-CONFIG_SENSORS_RM3100=m
-CONFIG_SENSORS_RM3100_I2C=m
-CONFIG_SENSORS_RM3100_SPI=m
-CONFIG_YAMAHA_YAS530=m
-# end of Magnetometer sensors
-
-#
-# Multiplexers
-#
-# end of Multiplexers
-
-#
-# Inclinometer sensors
-#
-CONFIG_HID_SENSOR_INCLINOMETER_3D=m
-CONFIG_HID_SENSOR_DEVICE_ROTATION=m
-# end of Inclinometer sensors
-
-#
-# Triggers - standalone
-#
-CONFIG_IIO_HRTIMER_TRIGGER=m
-CONFIG_IIO_INTERRUPT_TRIGGER=m
-CONFIG_IIO_TIGHTLOOP_TRIGGER=m
-CONFIG_IIO_SYSFS_TRIGGER=m
-# end of Triggers - standalone
-
-#
-# Linear and angular position sensors
-#
-CONFIG_IQS624_POS=m
-CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE=m
-# end of Linear and angular position sensors
-
-#
-# Digital potentiometers
-#
-CONFIG_AD5272=m
-CONFIG_DS1803=m
-CONFIG_MAX5432=m
-CONFIG_MAX5481=m
-CONFIG_MAX5487=m
-CONFIG_MCP4018=m
-CONFIG_MCP4131=m
-CONFIG_MCP4531=m
-CONFIG_MCP41010=m
-CONFIG_TPL0102=m
-# end of Digital potentiometers
-
-#
-# Digital potentiostats
-#
-CONFIG_LMP91000=m
-# end of Digital potentiostats
-
-#
-# Pressure sensors
-#
-CONFIG_ABP060MG=m
-CONFIG_BMP280=m
-CONFIG_BMP280_I2C=m
-CONFIG_BMP280_SPI=m
-CONFIG_IIO_CROS_EC_BARO=m
-CONFIG_DLHL60D=m
-CONFIG_DPS310=m
-CONFIG_HID_SENSOR_PRESS=m
-CONFIG_HP03=m
-CONFIG_ICP10100=m
-CONFIG_MPL115=m
-CONFIG_MPL115_I2C=m
-CONFIG_MPL115_SPI=m
-CONFIG_MPL3115=m
-CONFIG_MS5611=m
-CONFIG_MS5611_I2C=m
-CONFIG_MS5611_SPI=m
-CONFIG_MS5637=m
-CONFIG_IIO_ST_PRESS=m
-CONFIG_IIO_ST_PRESS_I2C=m
-CONFIG_IIO_ST_PRESS_SPI=m
-CONFIG_T5403=m
-CONFIG_HP206C=m
-CONFIG_ZPA2326=m
-CONFIG_ZPA2326_I2C=m
-CONFIG_ZPA2326_SPI=m
-# end of Pressure sensors
-
-#
-# Lightning sensors
-#
-CONFIG_AS3935=m
-# end of Lightning sensors
-
-#
-# Proximity and distance sensors
-#
-CONFIG_CROS_EC_MKBP_PROXIMITY=m
-CONFIG_ISL29501=m
-CONFIG_LIDAR_LITE_V2=m
-CONFIG_MB1232=m
-CONFIG_PING=m
-CONFIG_RFD77402=m
-CONFIG_SRF04=m
-CONFIG_SX9310=m
-CONFIG_SX9500=m
-CONFIG_SRF08=m
-CONFIG_VCNL3020=m
-CONFIG_VL53L0X_I2C=m
-# end of Proximity and distance sensors
-
-#
-# Resolver to digital converters
-#
-CONFIG_AD2S90=m
-CONFIG_AD2S1200=m
-# end of Resolver to digital converters
-
-#
-# Temperature sensors
-#
-CONFIG_IQS620AT_TEMP=m
-CONFIG_LTC2983=m
-CONFIG_MAXIM_THERMOCOUPLE=m
-CONFIG_HID_SENSOR_TEMP=m
-CONFIG_MLX90614=m
-CONFIG_MLX90632=m
-CONFIG_TMP006=m
-CONFIG_TMP007=m
-CONFIG_TSYS01=m
-CONFIG_TSYS02D=m
-CONFIG_MAX31856=m
-# end of Temperature sensors
-
-CONFIG_NTB=m
-CONFIG_NTB_MSI=y
-CONFIG_NTB_AMD=m
-CONFIG_NTB_IDT=m
-CONFIG_NTB_INTEL=m
-CONFIG_NTB_EPF=m
-CONFIG_NTB_SWITCHTEC=m
-CONFIG_NTB_PINGPONG=m
-CONFIG_NTB_TOOL=m
-CONFIG_NTB_PERF=m
-CONFIG_NTB_MSI_TEST=m
-CONFIG_NTB_TRANSPORT=m
-CONFIG_VME_BUS=y
-
-#
-# VME Bridge Drivers
-#
-CONFIG_VME_CA91CX42=m
-CONFIG_VME_TSI148=m
-# CONFIG_VME_FAKE is not set
-
-#
-# VME Board Drivers
-#
-CONFIG_VMIVME_7805=m
-
-#
-# VME Device Drivers
-#
-CONFIG_VME_USER=m
-CONFIG_PWM=y
-CONFIG_PWM_SYSFS=y
-# CONFIG_PWM_DEBUG is not set
-CONFIG_PWM_CRC=y
-CONFIG_PWM_CROS_EC=m
-CONFIG_PWM_DWC=m
-CONFIG_PWM_IQS620A=m
-CONFIG_PWM_LP3943=m
-CONFIG_PWM_LPSS=m
-CONFIG_PWM_LPSS_PCI=m
-CONFIG_PWM_LPSS_PLATFORM=m
-CONFIG_PWM_PCA9685=m
-CONFIG_PWM_TWL=m
-CONFIG_PWM_TWL_LED=m
-
-#
-# IRQ chip support
-#
-CONFIG_MADERA_IRQ=m
-# end of IRQ chip support
-
-CONFIG_IPACK_BUS=m
-CONFIG_BOARD_TPCI200=m
-CONFIG_SERIAL_IPOCTAL=m
-CONFIG_RESET_CONTROLLER=y
-# CONFIG_RESET_BRCMSTB_RESCAL is not set
-CONFIG_RESET_TI_SYSCON=m
-
-#
-# PHY Subsystem
-#
-CONFIG_GENERIC_PHY=y
-CONFIG_USB_LGM_PHY=m
-CONFIG_BCM_KONA_USB2_PHY=m
-CONFIG_PHY_PXA_28NM_HSIC=m
-CONFIG_PHY_PXA_28NM_USB2=m
-CONFIG_PHY_CPCAP_USB=m
-CONFIG_PHY_QCOM_USB_HS=m
-CONFIG_PHY_QCOM_USB_HSIC=m
-CONFIG_PHY_SAMSUNG_USB2=m
-CONFIG_PHY_TUSB1210=m
-CONFIG_PHY_INTEL_LGM_EMMC=m
-# end of PHY Subsystem
-
-CONFIG_POWERCAP=y
-CONFIG_INTEL_RAPL_CORE=m
-CONFIG_INTEL_RAPL=m
-# CONFIG_IDLE_INJECT is not set
-# CONFIG_DTPM is not set
-CONFIG_MCB=m
-CONFIG_MCB_PCI=m
-CONFIG_MCB_LPC=m
-
-#
-# Performance monitor support
-#
-# end of Performance monitor support
-
-CONFIG_RAS=y
-# CONFIG_RAS_CEC is not set
-CONFIG_USB4=m
-# CONFIG_USB4_DEBUGFS_WRITE is not set
-# CONFIG_USB4_DMA_TEST is not set
-
-#
-# Android
-#
-# CONFIG_ANDROID is not set
-# end of Android
-
-CONFIG_LIBNVDIMM=y
-CONFIG_BLK_DEV_PMEM=m
-CONFIG_ND_BLK=m
-CONFIG_ND_CLAIM=y
-CONFIG_ND_BTT=m
-CONFIG_BTT=y
-CONFIG_ND_PFN=m
-CONFIG_NVDIMM_PFN=y
-CONFIG_NVDIMM_DAX=y
-CONFIG_NVDIMM_KEYS=y
-CONFIG_DAX_DRIVER=y
-CONFIG_DAX=y
-CONFIG_DEV_DAX=m
-CONFIG_DEV_DAX_PMEM=m
-CONFIG_DEV_DAX_HMEM=m
-CONFIG_DEV_DAX_HMEM_DEVICES=y
-CONFIG_DEV_DAX_KMEM=m
-CONFIG_DEV_DAX_PMEM_COMPAT=m
-CONFIG_NVMEM=y
-CONFIG_NVMEM_SYSFS=y
-CONFIG_NVMEM_SPMI_SDAM=m
-CONFIG_RAVE_SP_EEPROM=m
-CONFIG_NVMEM_RMEM=m
-
-#
-# HW tracing support
-#
-CONFIG_STM=m
-CONFIG_STM_PROTO_BASIC=m
-CONFIG_STM_PROTO_SYS_T=m
-CONFIG_STM_DUMMY=m
-CONFIG_STM_SOURCE_CONSOLE=m
-CONFIG_STM_SOURCE_HEARTBEAT=m
-CONFIG_STM_SOURCE_FTRACE=m
-CONFIG_INTEL_TH=m
-CONFIG_INTEL_TH_PCI=m
-CONFIG_INTEL_TH_ACPI=m
-CONFIG_INTEL_TH_GTH=m
-CONFIG_INTEL_TH_STH=m
-CONFIG_INTEL_TH_MSU=m
-CONFIG_INTEL_TH_PTI=m
-# CONFIG_INTEL_TH_DEBUG is not set
-# end of HW tracing support
-
-CONFIG_FPGA=m
-CONFIG_ALTERA_PR_IP_CORE=m
-CONFIG_FPGA_MGR_ALTERA_PS_SPI=m
-CONFIG_FPGA_MGR_ALTERA_CVP=m
-CONFIG_FPGA_MGR_XILINX_SPI=m
-CONFIG_FPGA_MGR_MACHXO2_SPI=m
-CONFIG_FPGA_BRIDGE=m
-CONFIG_ALTERA_FREEZE_BRIDGE=m
-CONFIG_XILINX_PR_DECOUPLER=m
-CONFIG_FPGA_REGION=m
-CONFIG_FPGA_DFL=m
-CONFIG_FPGA_DFL_FME=m
-CONFIG_FPGA_DFL_FME_MGR=m
-CONFIG_FPGA_DFL_FME_BRIDGE=m
-CONFIG_FPGA_DFL_FME_REGION=m
-CONFIG_FPGA_DFL_AFU=m
-CONFIG_FPGA_DFL_NIOS_INTEL_PAC_N3000=m
-CONFIG_FPGA_DFL_PCI=m
-CONFIG_TEE=m
-
-#
-# TEE drivers
-#
-CONFIG_AMDTEE=m
-# end of TEE drivers
-
-CONFIG_MULTIPLEXER=m
-
-#
-# Multiplexer drivers
-#
-CONFIG_MUX_ADG792A=m
-CONFIG_MUX_ADGS1408=m
-CONFIG_MUX_GPIO=m
-# end of Multiplexer drivers
-
-CONFIG_PM_OPP=y
-CONFIG_UNISYS_VISORBUS=m
-# CONFIG_SIOX is not set
-# CONFIG_SLIMBUS is not set
-# CONFIG_INTERCONNECT is not set
-CONFIG_COUNTER=m
-CONFIG_INTERRUPT_CNT=m
-CONFIG_MOST=m
-CONFIG_MOST_USB_HDM=m
-CONFIG_MOST_CDEV=m
-CONFIG_MOST_SND=m
-# end of Device Drivers
-
-#
-# File systems
-#
-CONFIG_DCACHE_WORD_ACCESS=y
-CONFIG_VALIDATE_FS_PARSER=y
-CONFIG_FS_IOMAP=y
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT3_FS is not set
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_USE_FOR_EXT2=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD2=y
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-# CONFIG_JFS_DEBUG is not set
-CONFIG_JFS_STATISTICS=y
-CONFIG_XFS_FS=m
-CONFIG_XFS_SUPPORT_V4=y
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-# CONFIG_XFS_ONLINE_SCRUB is not set
-# CONFIG_XFS_WARN is not set
-# CONFIG_XFS_DEBUG is not set
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=y
-CONFIG_OCFS2_FS=m
-CONFIG_OCFS2_FS_O2CB=m
-CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
-CONFIG_OCFS2_FS_STATS=y
-CONFIG_OCFS2_DEBUG_MASKLOG=y
-# CONFIG_OCFS2_DEBUG_FS is not set
-CONFIG_BTRFS_FS=m
-CONFIG_BTRFS_FS_POSIX_ACL=y
-# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
-# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
-# CONFIG_BTRFS_DEBUG is not set
-# CONFIG_BTRFS_ASSERT is not set
-# CONFIG_BTRFS_FS_REF_VERIFY is not set
-CONFIG_NILFS2_FS=m
-CONFIG_F2FS_FS=m
-CONFIG_F2FS_STAT_FS=y
-CONFIG_F2FS_FS_XATTR=y
-CONFIG_F2FS_FS_POSIX_ACL=y
-CONFIG_F2FS_FS_SECURITY=y
-# CONFIG_F2FS_CHECK_FS is not set
-# CONFIG_F2FS_FAULT_INJECTION is not set
-# CONFIG_F2FS_FS_COMPRESSION is not set
-CONFIG_ZONEFS_FS=m
-CONFIG_FS_DAX=y
-CONFIG_FS_DAX_PMD=y
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-# CONFIG_EXPORTFS_BLOCK_OPS is not set
-CONFIG_FILE_LOCKING=y
-CONFIG_MANDATORY_FILE_LOCKING=y
-# CONFIG_FS_ENCRYPTION is not set
-CONFIG_FS_VERITY=y
-# CONFIG_FS_VERITY_DEBUG is not set
-# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_FANOTIFY=y
-CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=m
-CONFIG_QFMT_V1=m
-CONFIG_QFMT_V2=m
-CONFIG_QUOTACTL=y
-CONFIG_AUTOFS4_FS=m
-CONFIG_AUTOFS_FS=m
-CONFIG_FUSE_FS=y
-CONFIG_CUSE=m
-CONFIG_VIRTIO_FS=m
-CONFIG_FUSE_DAX=y
-CONFIG_OVERLAY_FS=m
-# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
-# CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW is not set
-# CONFIG_OVERLAY_FS_INDEX is not set
-# CONFIG_OVERLAY_FS_XINO_AUTO is not set
-# CONFIG_OVERLAY_FS_METACOPY is not set
-
-#
-# Caches
-#
-CONFIG_NETFS_SUPPORT=m
-# CONFIG_NETFS_STATS is not set
-CONFIG_FSCACHE=m
-CONFIG_FSCACHE_STATS=y
-# CONFIG_FSCACHE_HISTOGRAM is not set
-# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
-CONFIG_CACHEFILES=m
-# CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
-# end of Caches
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-# end of CD-ROM/DVD Filesystems
-
-#
-# DOS/FAT/EXFAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-# CONFIG_FAT_DEFAULT_UTF8 is not set
-CONFIG_EXFAT_FS=m
-CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-# CONFIG_NTFS_RW is not set
-# end of DOS/FAT/EXFAT/NT Filesystems
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_PROC_VMCORE=y
-# CONFIG_PROC_VMCORE_DEVICE_DUMP is not set
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_PROC_CHILDREN=y
-CONFIG_PROC_PID_ARCH_STATUS=y
-CONFIG_KERNFS=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-# CONFIG_TMPFS_INODE64 is not set
-CONFIG_HUGETLBFS=y
-CONFIG_HUGETLB_PAGE=y
-CONFIG_MEMFD_CREATE=y
-CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
-CONFIG_CONFIGFS_FS=m
-CONFIG_EFIVAR_FS=y
-# end of Pseudo filesystems
-
-CONFIG_MISC_FILESYSTEMS=y
-CONFIG_ORANGEFS_FS=m
-CONFIG_ADFS_FS=m
-# CONFIG_ADFS_FS_RW is not set
-CONFIG_AFFS_FS=m
-CONFIG_ECRYPT_FS=y
-CONFIG_ECRYPT_FS_MESSAGING=y
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-CONFIG_BEFS_FS=m
-# CONFIG_BEFS_DEBUG is not set
-CONFIG_BFS_FS=m
-CONFIG_EFS_FS=m
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-# CONFIG_JFFS2_SUMMARY is not set
-CONFIG_JFFS2_FS_XATTR=y
-CONFIG_JFFS2_FS_POSIX_ACL=y
-CONFIG_JFFS2_FS_SECURITY=y
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_LZO=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_JFFS2_CMODE_NONE is not set
-# CONFIG_JFFS2_CMODE_PRIORITY is not set
-# CONFIG_JFFS2_CMODE_SIZE is not set
-CONFIG_JFFS2_CMODE_FAVOURLZO=y
-CONFIG_UBIFS_FS=m
-# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-CONFIG_UBIFS_FS_ZSTD=y
-CONFIG_UBIFS_ATIME_SUPPORT=y
-CONFIG_UBIFS_FS_XATTR=y
-CONFIG_UBIFS_FS_SECURITY=y
-CONFIG_UBIFS_FS_AUTHENTICATION=y
-CONFIG_CRAMFS=m
-CONFIG_CRAMFS_BLOCKDEV=y
-# CONFIG_CRAMFS_MTD is not set
-CONFIG_SQUASHFS=m
-# CONFIG_SQUASHFS_FILE_CACHE is not set
-CONFIG_SQUASHFS_FILE_DIRECT=y
-# CONFIG_SQUASHFS_DECOMP_SINGLE is not set
-# CONFIG_SQUASHFS_DECOMP_MULTI is not set
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
-CONFIG_SQUASHFS_XATTR=y
-CONFIG_SQUASHFS_ZLIB=y
-CONFIG_SQUASHFS_LZ4=y
-CONFIG_SQUASHFS_LZO=y
-CONFIG_SQUASHFS_XZ=y
-# CONFIG_SQUASHFS_ZSTD is not set
-# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-CONFIG_VXFS_FS=m
-CONFIG_MINIX_FS=m
-CONFIG_OMFS_FS=m
-CONFIG_HPFS_FS=m
-CONFIG_QNX4FS_FS=m
-CONFIG_QNX6FS_FS=m
-# CONFIG_QNX6FS_DEBUG is not set
-CONFIG_ROMFS_FS=m
-CONFIG_ROMFS_BACKED_BY_BLOCK=y
-# CONFIG_ROMFS_BACKED_BY_MTD is not set
-# CONFIG_ROMFS_BACKED_BY_BOTH is not set
-CONFIG_ROMFS_ON_BLOCK=y
-CONFIG_PSTORE=y
-CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
-CONFIG_PSTORE_DEFLATE_COMPRESS=m
-# CONFIG_PSTORE_LZO_COMPRESS is not set
-# CONFIG_PSTORE_LZ4_COMPRESS is not set
-# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
-# CONFIG_PSTORE_842_COMPRESS is not set
-# CONFIG_PSTORE_ZSTD_COMPRESS is not set
-CONFIG_PSTORE_COMPRESS=y
-CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
-CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
-# CONFIG_PSTORE_CONSOLE is not set
-# CONFIG_PSTORE_PMSG is not set
-# CONFIG_PSTORE_FTRACE is not set
-CONFIG_PSTORE_RAM=m
-CONFIG_PSTORE_ZONE=m
-CONFIG_PSTORE_BLK=m
-CONFIG_PSTORE_BLK_BLKDEV=""
-CONFIG_PSTORE_BLK_KMSG_SIZE=64
-CONFIG_PSTORE_BLK_MAX_REASON=2
-CONFIG_SYSV_FS=m
-CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_UFS_DEBUG is not set
-CONFIG_EROFS_FS=m
-# CONFIG_EROFS_FS_DEBUG is not set
-CONFIG_EROFS_FS_XATTR=y
-CONFIG_EROFS_FS_POSIX_ACL=y
-CONFIG_EROFS_FS_SECURITY=y
-# CONFIG_EROFS_FS_ZIP is not set
-CONFIG_VBOXSF_FS=m
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=m
-CONFIG_NFS_V2=m
-CONFIG_NFS_V3=m
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=m
-CONFIG_NFS_SWAP=y
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_V4_2=y
-CONFIG_PNFS_FILE_LAYOUT=m
-CONFIG_PNFS_BLOCK=m
-CONFIG_PNFS_FLEXFILE_LAYOUT=m
-CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
-CONFIG_NFS_V4_1_MIGRATION=y
-CONFIG_NFS_V4_SECURITY_LABEL=y
-CONFIG_NFS_FSCACHE=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-CONFIG_NFS_DEBUG=y
-# CONFIG_NFS_DISABLE_UDP_SUPPORT is not set
-# CONFIG_NFS_V4_2_READ_PLUS is not set
-CONFIG_NFSD=m
-CONFIG_NFSD_V2_ACL=y
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-# CONFIG_NFSD_BLOCKLAYOUT is not set
-# CONFIG_NFSD_SCSILAYOUT is not set
-# CONFIG_NFSD_FLEXFILELAYOUT is not set
-# CONFIG_NFSD_V4_2_INTER_SSC is not set
-CONFIG_NFSD_V4_SECURITY_LABEL=y
-CONFIG_GRACE_PERIOD=m
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_ACL_SUPPORT=m
-CONFIG_NFS_COMMON=y
-CONFIG_NFS_V4_2_SSC_HELPER=y
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
-CONFIG_SUNRPC_BACKCHANNEL=y
-CONFIG_SUNRPC_SWAP=y
-CONFIG_RPCSEC_GSS_KRB5=m
-CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y
-CONFIG_SUNRPC_DEBUG=y
-CONFIG_SUNRPC_XPRT_RDMA=m
-CONFIG_CEPH_FS=m
-CONFIG_CEPH_FSCACHE=y
-CONFIG_CEPH_FS_POSIX_ACL=y
-CONFIG_CEPH_FS_SECURITY_LABEL=y
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS2 is not set
-CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
-CONFIG_CIFS_WEAK_PW_HASH=y
-CONFIG_CIFS_UPCALL=y
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-CONFIG_CIFS_DEBUG=y
-# CONFIG_CIFS_DEBUG2 is not set
-# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
-CONFIG_CIFS_DFS_UPCALL=y
-CONFIG_CIFS_SWN_UPCALL=y
-# CONFIG_CIFS_SMB_DIRECT is not set
-CONFIG_CIFS_FSCACHE=y
-CONFIG_CODA_FS=m
-CONFIG_AFS_FS=m
-# CONFIG_AFS_DEBUG is not set
-CONFIG_AFS_FSCACHE=y
-# CONFIG_AFS_DEBUG_CURSOR is not set
-CONFIG_9P_FS=m
-CONFIG_9P_FSCACHE=y
-CONFIG_9P_FS_POSIX_ACL=y
-CONFIG_9P_FS_SECURITY=y
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_MAC_ROMAN=m
-CONFIG_NLS_MAC_CELTIC=m
-CONFIG_NLS_MAC_CENTEURO=m
-CONFIG_NLS_MAC_CROATIAN=m
-CONFIG_NLS_MAC_CYRILLIC=m
-CONFIG_NLS_MAC_GAELIC=m
-CONFIG_NLS_MAC_GREEK=m
-CONFIG_NLS_MAC_ICELAND=m
-CONFIG_NLS_MAC_INUIT=m
-CONFIG_NLS_MAC_ROMANIAN=m
-CONFIG_NLS_MAC_TURKISH=m
-CONFIG_NLS_UTF8=m
-CONFIG_DLM=m
-# CONFIG_DLM_DEBUG is not set
-# CONFIG_UNICODE is not set
-CONFIG_IO_WQ=y
-# end of File systems
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-CONFIG_KEYS_REQUEST_CACHE=y
-CONFIG_PERSISTENT_KEYRINGS=y
-CONFIG_TRUSTED_KEYS=y
-CONFIG_ENCRYPTED_KEYS=y
-CONFIG_KEY_DH_OPERATIONS=y
-CONFIG_KEY_NOTIFICATIONS=y
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-CONFIG_SECURITY=y
-CONFIG_SECURITY_WRITABLE_HOOKS=y
-CONFIG_SECURITYFS=y
-CONFIG_SECURITY_NETWORK=y
-CONFIG_PAGE_TABLE_ISOLATION=y
-# CONFIG_SECURITY_INFINIBAND is not set
-CONFIG_SECURITY_NETWORK_XFRM=y
-CONFIG_SECURITY_PATH=y
-CONFIG_INTEL_TXT=y
-CONFIG_LSM_MMAP_MIN_ADDR=0
-CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
-CONFIG_HARDENED_USERCOPY=y
-CONFIG_HARDENED_USERCOPY_FALLBACK=y
-# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
-CONFIG_FORTIFY_SOURCE=y
-# CONFIG_STATIC_USERMODEHELPER is not set
-CONFIG_SECURITY_SELINUX=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
-CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_AVC_STATS=y
-CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
-CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
-CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
-CONFIG_SECURITY_SMACK=y
-# CONFIG_SECURITY_SMACK_BRINGUP is not set
-CONFIG_SECURITY_SMACK_NETFILTER=y
-# CONFIG_SECURITY_SMACK_APPEND_SIGNALS is not set
-CONFIG_SECURITY_TOMOYO=y
-CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
-CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
-# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
-CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
-CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
-# CONFIG_SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING is not set
-CONFIG_SECURITY_APPARMOR=y
-CONFIG_SECURITY_APPARMOR_HASH=y
-CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
-# CONFIG_SECURITY_APPARMOR_DEBUG is not set
-# CONFIG_SECURITY_LOADPIN is not set
-CONFIG_SECURITY_YAMA=y
-# CONFIG_SECURITY_SAFESETID is not set
-# CONFIG_SECURITY_LOCKDOWN_LSM is not set
-CONFIG_SECURITY_LANDLOCK=y
-CONFIG_INTEGRITY=y
-CONFIG_INTEGRITY_SIGNATURE=y
-CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
-CONFIG_INTEGRITY_TRUSTED_KEYRING=y
-CONFIG_INTEGRITY_AUDIT=y
-CONFIG_IMA=y
-CONFIG_IMA_MEASURE_PCR_IDX=10
-CONFIG_IMA_LSM_RULES=y
-# CONFIG_IMA_TEMPLATE is not set
-CONFIG_IMA_NG_TEMPLATE=y
-# CONFIG_IMA_SIG_TEMPLATE is not set
-CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
-CONFIG_IMA_DEFAULT_HASH_SHA1=y
-# CONFIG_IMA_DEFAULT_HASH_SHA256 is not set
-# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
-CONFIG_IMA_DEFAULT_HASH="sha1"
-# CONFIG_IMA_WRITE_POLICY is not set
-# CONFIG_IMA_READ_POLICY is not set
-CONFIG_IMA_APPRAISE=y
-# CONFIG_IMA_ARCH_POLICY is not set
-# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
-CONFIG_IMA_APPRAISE_BOOTPARAM=y
-# CONFIG_IMA_APPRAISE_MODSIG is not set
-CONFIG_IMA_TRUSTED_KEYRING=y
-CONFIG_IMA_BLACKLIST_KEYRING=y
-# CONFIG_IMA_LOAD_X509 is not set
-CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=y
-CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS=y
-# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set
-CONFIG_EVM=y
-CONFIG_EVM_ATTR_FSUUID=y
-CONFIG_EVM_EXTRA_SMACK_XATTRS=y
-# CONFIG_EVM_ADD_XATTRS is not set
-# CONFIG_EVM_LOAD_X509 is not set
-# CONFIG_DEFAULT_SECURITY_SELINUX is not set
-# CONFIG_DEFAULT_SECURITY_SMACK is not set
-# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
-CONFIG_DEFAULT_SECURITY_APPARMOR=y
-# CONFIG_DEFAULT_SECURITY_DAC is not set
-CONFIG_LSM="yama,loadpin,safesetid,integrity,apparmor,selinux,smack,tomoyo"
-
-#
-# Kernel hardening options
-#
-
-#
-# Memory initialization
-#
-CONFIG_INIT_STACK_NONE=y
-CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
-# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
-# end of Memory initialization
-# end of Kernel hardening options
-# end of Security options
-
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=y
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_SKCIPHER=y
-CONFIG_CRYPTO_SKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=y
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_RNG_DEFAULT=y
-CONFIG_CRYPTO_AKCIPHER2=y
-CONFIG_CRYPTO_AKCIPHER=y
-CONFIG_CRYPTO_KPP2=y
-CONFIG_CRYPTO_KPP=y
-CONFIG_CRYPTO_ACOMP2=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-CONFIG_CRYPTO_USER=m
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-CONFIG_CRYPTO_GF128MUL=y
-CONFIG_CRYPTO_NULL=y
-CONFIG_CRYPTO_NULL2=y
-CONFIG_CRYPTO_PCRYPT=m
-CONFIG_CRYPTO_CRYPTD=m
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_TEST=m
-CONFIG_CRYPTO_SIMD=m
-CONFIG_CRYPTO_ENGINE=m
-
-#
-# Public-key cryptography
-#
-CONFIG_CRYPTO_RSA=y
-CONFIG_CRYPTO_DH=y
-CONFIG_CRYPTO_ECC=m
-CONFIG_CRYPTO_ECDH=m
-CONFIG_CRYPTO_ECDSA=m
-CONFIG_CRYPTO_ECRDSA=m
-CONFIG_CRYPTO_SM2=m
-CONFIG_CRYPTO_CURVE25519=m
-CONFIG_CRYPTO_CURVE25519_X86=m
-
-#
-# Authenticated Encryption with Associated Data
-#
-CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_GCM=y
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
-CONFIG_CRYPTO_SEQIV=y
-CONFIG_CRYPTO_ECHAINIV=m
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CFB=m
-CONFIG_CRYPTO_CTR=y
-CONFIG_CRYPTO_CTS=m
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_OFB=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=m
-CONFIG_CRYPTO_KEYWRAP=m
-CONFIG_CRYPTO_NHPOLY1305=m
-CONFIG_CRYPTO_NHPOLY1305_SSE2=m
-CONFIG_CRYPTO_NHPOLY1305_AVX2=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_ESSIV=m
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_CMAC=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CRC32C_INTEL=y
-CONFIG_CRYPTO_CRC32=m
-CONFIG_CRYPTO_CRC32_PCLMUL=m
-CONFIG_CRYPTO_XXHASH=m
-CONFIG_CRYPTO_BLAKE2B=m
-CONFIG_CRYPTO_BLAKE2S=m
-CONFIG_CRYPTO_BLAKE2S_X86=m
-CONFIG_CRYPTO_CRCT10DIF=y
-CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
-CONFIG_CRYPTO_GHASH=y
-CONFIG_CRYPTO_POLY1305=m
-CONFIG_CRYPTO_POLY1305_X86_64=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA1_SSSE3=m
-CONFIG_CRYPTO_SHA256_SSSE3=m
-CONFIG_CRYPTO_SHA512_SSSE3=m
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_SM3=m
-CONFIG_CRYPTO_STREEBOG=m
-CONFIG_CRYPTO_WP512=m
-CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_AES_TI=m
-CONFIG_CRYPTO_AES_NI_INTEL=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_BLOWFISH_COMMON=m
-CONFIG_CRYPTO_BLOWFISH_X86_64=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAMELLIA_X86_64=m
-CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m
-CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
-CONFIG_CRYPTO_CAST_COMMON=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST5_AVX_X86_64=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_CAST6_AVX_X86_64=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_DES3_EDE_X86_64=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_CHACHA20=m
-CONFIG_CRYPTO_CHACHA20_X86_64=m
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
-CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
-CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
-CONFIG_CRYPTO_SM4=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-CONFIG_CRYPTO_TWOFISH_X86_64=m
-CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
-CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_LZO=y
-CONFIG_CRYPTO_842=m
-CONFIG_CRYPTO_LZ4=m
-CONFIG_CRYPTO_LZ4HC=m
-CONFIG_CRYPTO_ZSTD=m
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_DRBG_MENU=y
-CONFIG_CRYPTO_DRBG_HMAC=y
-CONFIG_CRYPTO_DRBG_HASH=y
-CONFIG_CRYPTO_DRBG_CTR=y
-CONFIG_CRYPTO_DRBG=y
-CONFIG_CRYPTO_JITTERENTROPY=y
-CONFIG_CRYPTO_USER_API=m
-CONFIG_CRYPTO_USER_API_HASH=m
-CONFIG_CRYPTO_USER_API_SKCIPHER=m
-CONFIG_CRYPTO_USER_API_RNG=m
-# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
-CONFIG_CRYPTO_USER_API_AEAD=m
-CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
-# CONFIG_CRYPTO_STATS is not set
-CONFIG_CRYPTO_HASH_INFO=y
-
-#
-# Crypto library routines
-#
-CONFIG_CRYPTO_LIB_AES=y
-CONFIG_CRYPTO_LIB_ARC4=m
-CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=m
-CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=m
-CONFIG_CRYPTO_LIB_BLAKE2S=m
-CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
-CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
-CONFIG_CRYPTO_LIB_CHACHA=m
-CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=m
-CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
-CONFIG_CRYPTO_LIB_CURVE25519=m
-CONFIG_CRYPTO_LIB_DES=m
-CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
-CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m
-CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
-CONFIG_CRYPTO_LIB_POLY1305=m
-CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
-CONFIG_CRYPTO_LIB_SHA256=y
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_PADLOCK=y
-CONFIG_CRYPTO_DEV_PADLOCK_AES=m
-CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
-CONFIG_CRYPTO_DEV_ATMEL_I2C=m
-CONFIG_CRYPTO_DEV_ATMEL_ECC=m
-CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m
-CONFIG_CRYPTO_DEV_CCP=y
-CONFIG_CRYPTO_DEV_CCP_DD=m
-CONFIG_CRYPTO_DEV_SP_CCP=y
-CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
-CONFIG_CRYPTO_DEV_SP_PSP=y
-# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
-CONFIG_CRYPTO_DEV_QAT=m
-CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
-CONFIG_CRYPTO_DEV_QAT_C3XXX=m
-CONFIG_CRYPTO_DEV_QAT_C62X=m
-CONFIG_CRYPTO_DEV_QAT_4XXX=m
-CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
-CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
-CONFIG_CRYPTO_DEV_QAT_C62XVF=m
-CONFIG_CRYPTO_DEV_NITROX=m
-CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
-CONFIG_CRYPTO_DEV_CHELSIO=m
-CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DEV_SAFEXCEL=m
-CONFIG_CRYPTO_DEV_AMLOGIC_GXL=m
-# CONFIG_CRYPTO_DEV_AMLOGIC_GXL_DEBUG is not set
-CONFIG_ASYMMETRIC_KEY_TYPE=y
-CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
-CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m
-CONFIG_X509_CERTIFICATE_PARSER=y
-CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
-CONFIG_TPM_KEY_PARSER=m
-CONFIG_PKCS7_MESSAGE_PARSER=y
-# CONFIG_PKCS7_TEST_KEY is not set
-# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set
-
-#
-# Certificates for signature checking
-#
-CONFIG_SYSTEM_TRUSTED_KEYRING=y
-CONFIG_SYSTEM_TRUSTED_KEYS=""
-# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
-# CONFIG_SECONDARY_TRUSTED_KEYRING is not set
-# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
-# end of Certificates for signature checking
-
-CONFIG_BINARY_PRINTF=y
-
-#
-# Library routines
-#
-CONFIG_RAID6_PQ=m
-CONFIG_RAID6_PQ_BENCHMARK=y
-CONFIG_LINEAR_RANGES=y
-CONFIG_PACKING=y
-CONFIG_BITREVERSE=y
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GENERIC_NET_UTILS=y
-CONFIG_GENERIC_FIND_FIRST_BIT=y
-CONFIG_CORDIC=m
-CONFIG_PRIME_NUMBERS=m
-CONFIG_RATIONAL=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_GENERIC_IOMAP=y
-CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
-CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
-CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
-CONFIG_CRC_CCITT=y
-CONFIG_CRC16=y
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC32=y
-# CONFIG_CRC32_SELFTEST is not set
-CONFIG_CRC32_SLICEBY8=y
-# CONFIG_CRC32_SLICEBY4 is not set
-# CONFIG_CRC32_SARWATE is not set
-# CONFIG_CRC32_BIT is not set
-CONFIG_CRC64=m
-# CONFIG_CRC4 is not set
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=m
-CONFIG_CRC8=m
-CONFIG_XXHASH=y
-# CONFIG_RANDOM32_SELFTEST is not set
-CONFIG_842_COMPRESS=m
-CONFIG_842_DECOMPRESS=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_LZ4_COMPRESS=m
-CONFIG_LZ4HC_COMPRESS=m
-CONFIG_LZ4_DECOMPRESS=y
-CONFIG_ZSTD_COMPRESS=m
-CONFIG_ZSTD_DECOMPRESS=y
-CONFIG_XZ_DEC=y
-CONFIG_XZ_DEC_X86=y
-CONFIG_XZ_DEC_POWERPC=y
-CONFIG_XZ_DEC_IA64=y
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-CONFIG_XZ_DEC_SPARC=y
-CONFIG_XZ_DEC_BCJ=y
-CONFIG_XZ_DEC_TEST=m
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_BZIP2=y
-CONFIG_DECOMPRESS_LZMA=y
-CONFIG_DECOMPRESS_XZ=y
-CONFIG_DECOMPRESS_LZO=y
-CONFIG_DECOMPRESS_LZ4=y
-CONFIG_DECOMPRESS_ZSTD=y
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_REED_SOLOMON=m
-CONFIG_REED_SOLOMON_ENC8=y
-CONFIG_REED_SOLOMON_DEC8=y
-CONFIG_REED_SOLOMON_DEC16=y
-CONFIG_BCH=m
-CONFIG_BCH_CONST_PARAMS=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_BTREE=y
-CONFIG_INTERVAL_TREE=y
-CONFIG_XARRAY_MULTI=y
-CONFIG_ASSOCIATIVE_ARRAY=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT_MAP=y
-CONFIG_HAS_DMA=y
-CONFIG_DMA_OPS=y
-CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_ARCH_DMA_ADDR_T_64BIT=y
-CONFIG_SWIOTLB=y
-CONFIG_DMA_CMA=y
-CONFIG_DMA_PERNUMA_CMA=y
-
-#
-# Default contiguous memory area size:
-#
-CONFIG_CMA_SIZE_MBYTES=0
-CONFIG_CMA_SIZE_SEL_MBYTES=y
-# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
-# CONFIG_CMA_SIZE_SEL_MIN is not set
-# CONFIG_CMA_SIZE_SEL_MAX is not set
-CONFIG_CMA_ALIGNMENT=8
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_DMA_MAP_BENCHMARK is not set
-CONFIG_SGL_ALLOC=y
-CONFIG_IOMMU_HELPER=y
-CONFIG_CHECK_SIGNATURE=y
-CONFIG_CPU_RMAP=y
-CONFIG_DQL=y
-CONFIG_GLOB=y
-# CONFIG_GLOB_SELFTEST is not set
-CONFIG_NLATTR=y
-CONFIG_LRU_CACHE=m
-CONFIG_CLZ_TAB=y
-CONFIG_IRQ_POLL=y
-CONFIG_MPILIB=y
-CONFIG_SIGNATURE=y
-CONFIG_DIMLIB=y
-CONFIG_OID_REGISTRY=y
-CONFIG_UCS2_STRING=y
-CONFIG_HAVE_GENERIC_VDSO=y
-CONFIG_GENERIC_GETTIMEOFDAY=y
-CONFIG_GENERIC_VDSO_TIME_NS=y
-CONFIG_FONT_SUPPORT=y
-CONFIG_FONTS=y
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-# CONFIG_FONT_6x11 is not set
-# CONFIG_FONT_7x14 is not set
-# CONFIG_FONT_PEARL_8x8 is not set
-# CONFIG_FONT_ACORN_8x8 is not set
-# CONFIG_FONT_MINI_4x6 is not set
-CONFIG_FONT_6x10=y
-# CONFIG_FONT_10x18 is not set
-# CONFIG_FONT_SUN8x16 is not set
-# CONFIG_FONT_SUN12x22 is not set
-CONFIG_FONT_TER16x32=y
-CONFIG_FONT_6x8=y
-CONFIG_SG_POOL=y
-CONFIG_ARCH_HAS_PMEM_API=y
-CONFIG_MEMREGION=y
-CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
-CONFIG_ARCH_HAS_COPY_MC=y
-CONFIG_ARCH_STACKWALK=y
-CONFIG_SBITMAP=y
-CONFIG_PARMAN=m
-CONFIG_OBJAGG=m
-# CONFIG_STRING_SELFTEST is not set
-# end of Library routines
-
-CONFIG_PLDMFW=y
-CONFIG_ASN1_ENCODER=y
-
-#
-# Kernel hacking
-#
-
-#
-# printk and dmesg options
-#
-CONFIG_PRINTK_TIME=y
-# CONFIG_PRINTK_CALLER is not set
-CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
-CONFIG_CONSOLE_LOGLEVEL_QUIET=4
-CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
-CONFIG_BOOT_PRINTK_DELAY=y
-CONFIG_DYNAMIC_DEBUG=y
-CONFIG_DYNAMIC_DEBUG_CORE=y
-CONFIG_SYMBOLIC_ERRNAME=y
-CONFIG_DEBUG_BUGVERBOSE=y
-# end of printk and dmesg options
-
-#
-# Compile-time checks and compiler options
-#
-# CONFIG_DEBUG_INFO is not set
-CONFIG_FRAME_WARN=1024
-# CONFIG_STRIP_ASM_SYMS is not set
-# CONFIG_READABLE_ASM is not set
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_SECTION_MISMATCH_WARN_ONLY=y
-# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set
-CONFIG_FRAME_POINTER=y
-CONFIG_STACK_VALIDATION=y
-# CONFIG_VMLINUX_MAP is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# end of Compile-time checks and compiler options
-
-#
-# Generic Kernel Debugging Instruments
-#
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
-CONFIG_MAGIC_SYSRQ_SERIAL=y
-CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE=""
-CONFIG_DEBUG_FS=y
-CONFIG_DEBUG_FS_ALLOW_ALL=y
-# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set
-# CONFIG_DEBUG_FS_ALLOW_NONE is not set
-CONFIG_HAVE_ARCH_KGDB=y
-CONFIG_KGDB=y
-CONFIG_KGDB_HONOUR_BLOCKLIST=y
-CONFIG_KGDB_SERIAL_CONSOLE=y
-# CONFIG_KGDB_TESTS is not set
-CONFIG_KGDB_LOW_LEVEL_TRAP=y
-CONFIG_KGDB_KDB=y
-CONFIG_KDB_DEFAULT_ENABLE=0x1
-CONFIG_KDB_KEYBOARD=y
-CONFIG_KDB_CONTINUE_CATASTROPHIC=0
-CONFIG_ARCH_HAS_EARLY_DEBUG=y
-CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
-# CONFIG_UBSAN is not set
-CONFIG_HAVE_ARCH_KCSAN=y
-# end of Generic Kernel Debugging Instruments
-
-CONFIG_DEBUG_KERNEL=y
-CONFIG_DEBUG_MISC=y
-
-#
-# Memory Debugging
-#
-# CONFIG_PAGE_EXTENSION is not set
-# CONFIG_DEBUG_PAGEALLOC is not set
-# CONFIG_PAGE_OWNER is not set
-# CONFIG_PAGE_POISONING is not set
-# CONFIG_DEBUG_PAGE_REF is not set
-# CONFIG_DEBUG_RODATA_TEST is not set
-CONFIG_ARCH_HAS_DEBUG_WX=y
-# CONFIG_DEBUG_WX is not set
-CONFIG_GENERIC_PTDUMP=y
-# CONFIG_PTDUMP_DEBUGFS is not set
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-CONFIG_SCHED_STACK_END_CHECK=y
-CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_VM_PGTABLE is not set
-CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
-# CONFIG_DEBUG_VIRTUAL is not set
-# CONFIG_DEBUG_MEMORY_INIT is not set
-CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
-CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y
-# CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set
-CONFIG_HAVE_ARCH_KASAN=y
-CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
-CONFIG_CC_HAS_KASAN_GENERIC=y
-CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
-# CONFIG_KASAN is not set
-CONFIG_HAVE_ARCH_KFENCE=y
-CONFIG_KFENCE=y
-CONFIG_KFENCE_STATIC_KEYS=y
-CONFIG_KFENCE_SAMPLE_INTERVAL=0
-CONFIG_KFENCE_NUM_OBJECTS=255
-CONFIG_KFENCE_STRESS_TEST_FAULTS=0
-# end of Memory Debugging
-
-# CONFIG_DEBUG_SHIRQ is not set
-
-#
-# Debug Oops, Lockups and Hangs
-#
-# CONFIG_PANIC_ON_OOPS is not set
-CONFIG_PANIC_ON_OOPS_VALUE=0
-CONFIG_PANIC_TIMEOUT=0
-CONFIG_LOCKUP_DETECTOR=y
-CONFIG_SOFTLOCKUP_DETECTOR=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-CONFIG_HARDLOCKUP_DETECTOR_PERF=y
-CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y
-CONFIG_HARDLOCKUP_DETECTOR=y
-# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-# CONFIG_WQ_WATCHDOG is not set
-# CONFIG_TEST_LOCKUP is not set
-# end of Debug Oops, Lockups and Hangs
-
-#
-# Scheduler Debugging
-#
-CONFIG_SCHED_DEBUG=y
-CONFIG_SCHED_INFO=y
-CONFIG_SCHEDSTATS=y
-# end of Scheduler Debugging
-
-# CONFIG_DEBUG_TIMEKEEPING is not set
-
-#
-# Lock Debugging (spinlocks, mutexes, etc...)
-#
-CONFIG_LOCK_DEBUGGING_SUPPORT=y
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
-# CONFIG_DEBUG_RWSEMS is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-CONFIG_LOCK_TORTURE_TEST=m
-CONFIG_WW_MUTEX_SELFTEST=m
-# CONFIG_SCF_TORTURE_TEST is not set
-# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
-# end of Lock Debugging (spinlocks, mutexes, etc...)
-
-# CONFIG_DEBUG_IRQFLAGS is not set
-CONFIG_STACKTRACE=y
-# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
-# CONFIG_DEBUG_KOBJECT is not set
-
-#
-# Debug kernel data structures
-#
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_DEBUG_PLIST is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_BUG_ON_DATA_CORRUPTION is not set
-# end of Debug kernel data structures
-
-# CONFIG_DEBUG_CREDENTIALS is not set
-
-#
-# RCU Debugging
-#
-CONFIG_TORTURE_TEST=m
-# CONFIG_RCU_SCALE_TEST is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_REF_SCALE_TEST is not set
-CONFIG_RCU_CPU_STALL_TIMEOUT=60
-# CONFIG_RCU_TRACE is not set
-# CONFIG_RCU_EQS_DEBUG is not set
-# end of RCU Debugging
-
-# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
-# CONFIG_LATENCYTOP is not set
-CONFIG_USER_STACKTRACE_SUPPORT=y
-CONFIG_NOP_TRACER=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
-CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
-CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_HAVE_FENTRY=y
-CONFIG_HAVE_OBJTOOL_MCOUNT=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_TRACER_MAX_TRACE=y
-CONFIG_TRACE_CLOCK=y
-CONFIG_RING_BUFFER=y
-CONFIG_EVENT_TRACING=y
-CONFIG_CONTEXT_SWITCH_TRACER=y
-CONFIG_TRACING=y
-CONFIG_GENERIC_TRACER=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-# CONFIG_BOOTTIME_TRACING is not set
-CONFIG_FUNCTION_TRACER=y
-CONFIG_FUNCTION_GRAPH_TRACER=y
-CONFIG_DYNAMIC_FTRACE=y
-CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
-CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
-CONFIG_FUNCTION_PROFILER=y
-CONFIG_STACK_TRACER=y
-# CONFIG_IRQSOFF_TRACER is not set
-CONFIG_SCHED_TRACER=y
-# CONFIG_HWLAT_TRACER is not set
-CONFIG_MMIOTRACE=y
-CONFIG_FTRACE_SYSCALLS=y
-CONFIG_TRACER_SNAPSHOT=y
-# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-CONFIG_BLK_DEV_IO_TRACE=y
-CONFIG_KPROBE_EVENTS=y
-# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
-CONFIG_UPROBE_EVENTS=y
-CONFIG_BPF_EVENTS=y
-CONFIG_DYNAMIC_EVENTS=y
-CONFIG_PROBE_EVENTS=y
-# CONFIG_BPF_KPROBE_OVERRIDE is not set
-CONFIG_FTRACE_MCOUNT_RECORD=y
-CONFIG_FTRACE_MCOUNT_USE_CC=y
-CONFIG_SYNTH_EVENTS=y
-# CONFIG_HIST_TRIGGERS is not set
-# CONFIG_TRACE_EVENT_INJECT is not set
-# CONFIG_TRACEPOINT_BENCHMARK is not set
-# CONFIG_RING_BUFFER_BENCHMARK is not set
-# CONFIG_TRACE_EVAL_MAP_FILE is not set
-# CONFIG_FTRACE_RECORD_RECURSION is not set
-# CONFIG_FTRACE_STARTUP_TEST is not set
-# CONFIG_RING_BUFFER_STARTUP_TEST is not set
-# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set
-# CONFIG_MMIOTRACE_TEST is not set
-# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
-# CONFIG_SYNTH_EVENT_GEN_TEST is not set
-# CONFIG_KPROBE_EVENT_GEN_TEST is not set
-# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
-# CONFIG_SAMPLES is not set
-CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
-CONFIG_STRICT_DEVMEM=y
-CONFIG_IO_STRICT_DEVMEM=y
-
-#
-# x86 Debugging
-#
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
-CONFIG_EARLY_PRINTK_USB=y
-# CONFIG_X86_VERBOSE_BOOTUP is not set
-CONFIG_EARLY_PRINTK=y
-CONFIG_EARLY_PRINTK_DBGP=y
-# CONFIG_EARLY_PRINTK_USB_XDBC is not set
-# CONFIG_EFI_PGT_DUMP is not set
-# CONFIG_DEBUG_TLBFLUSH is not set
-# CONFIG_IOMMU_DEBUG is not set
-CONFIG_HAVE_MMIOTRACE_SUPPORT=y
-# CONFIG_X86_DECODER_SELFTEST is not set
-# CONFIG_IO_DELAY_0X80 is not set
-CONFIG_IO_DELAY_0XED=y
-# CONFIG_IO_DELAY_UDELAY is not set
-# CONFIG_IO_DELAY_NONE is not set
-# CONFIG_DEBUG_BOOT_PARAMS is not set
-# CONFIG_CPA_DEBUG is not set
-# CONFIG_DEBUG_ENTRY is not set
-# CONFIG_DEBUG_NMI_SELFTEST is not set
-CONFIG_X86_DEBUG_FPU=y
-CONFIG_PUNIT_ATOM_DEBUG=m
-# CONFIG_UNWINDER_ORC is not set
-CONFIG_UNWINDER_FRAME_POINTER=y
-# CONFIG_UNWINDER_GUESS is not set
-# end of x86 Debugging
-
-#
-# Kernel Testing and Coverage
-#
-# CONFIG_KUNIT is not set
-CONFIG_NOTIFIER_ERROR_INJECTION=m
-CONFIG_PM_NOTIFIER_ERROR_INJECT=m
-CONFIG_NETDEV_NOTIFIER_ERROR_INJECT=m
-CONFIG_FUNCTION_ERROR_INJECTION=y
-# CONFIG_FAULT_INJECTION is not set
-CONFIG_ARCH_HAS_KCOV=y
-CONFIG_CC_HAS_SANCOV_TRACE_PC=y
-# CONFIG_KCOV is not set
-CONFIG_RUNTIME_TESTING_MENU=y
-# CONFIG_LKDTM is not set
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_TEST_MIN_HEAP is not set
-# CONFIG_TEST_SORT is not set
-# CONFIG_TEST_DIV64 is not set
-# CONFIG_KPROBES_SANITY_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_RBTREE_TEST is not set
-# CONFIG_REED_SOLOMON_TEST is not set
-CONFIG_INTERVAL_TREE_TEST=m
-CONFIG_PERCPU_TEST=m
-# CONFIG_ATOMIC64_SELFTEST is not set
-CONFIG_ASYNC_RAID6_TEST=m
-CONFIG_TEST_HEXDUMP=m
-CONFIG_TEST_STRING_HELPERS=m
-CONFIG_TEST_STRSCPY=m
-CONFIG_TEST_KSTRTOX=m
-CONFIG_TEST_PRINTF=m
-CONFIG_TEST_BITMAP=m
-CONFIG_TEST_UUID=m
-CONFIG_TEST_XARRAY=m
-CONFIG_TEST_OVERFLOW=m
-CONFIG_TEST_RHASHTABLE=m
-CONFIG_TEST_HASH=m
-CONFIG_TEST_IDA=m
-CONFIG_TEST_PARMAN=m
-CONFIG_TEST_LKM=m
-CONFIG_TEST_BITOPS=m
-CONFIG_TEST_VMALLOC=m
-CONFIG_TEST_USER_COPY=m
-CONFIG_TEST_BPF=m
-CONFIG_TEST_BLACKHOLE_DEV=m
-CONFIG_FIND_BIT_BENCHMARK=m
-CONFIG_TEST_FIRMWARE=m
-# CONFIG_TEST_SYSCTL is not set
-CONFIG_TEST_UDELAY=m
-CONFIG_TEST_STATIC_KEYS=m
-# CONFIG_TEST_KMOD is not set
-# CONFIG_TEST_MEMCAT_P is not set
-# CONFIG_TEST_LIVEPATCH is not set
-CONFIG_TEST_OBJAGG=m
-# CONFIG_TEST_STACKINIT is not set
-# CONFIG_TEST_MEMINIT is not set
-# CONFIG_TEST_FREE_PAGES is not set
-# CONFIG_TEST_FPU is not set
-CONFIG_ARCH_USE_MEMTEST=y
-CONFIG_MEMTEST=y
-# CONFIG_HYPERV_TESTING is not set
-# end of Kernel Testing and Coverage
-# end of Kernel hacking
diff --git a/gnu/packages/aux-files/linux-libre/5.14-arm.conf b/gnu/packages/aux-files/linux-libre/5.15-arm.conf
index fe395f36c6..08f4863548 100644
--- a/gnu/packages/aux-files/linux-libre/5.14-arm.conf
+++ b/gnu/packages/aux-files/linux-libre/5.15-arm.conf
@@ -1,17 +1,18 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm 5.14.0 Kernel Configuration
+# Linux/arm 5.15.4 Kernel Configuration
 #
-CONFIG_CC_VERSION_TEXT="gcc (Debian 8.3.0-6) 8.3.0"
+CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
 CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=80300
+CONFIG_GCC_VERSION=110200
 CONFIG_CLANG_VERSION=0
 CONFIG_AS_IS_GNU=y
-CONFIG_AS_VERSION=23101
+CONFIG_AS_VERSION=23400
 CONFIG_LD_IS_BFD=y
-CONFIG_LD_VERSION=23101
+CONFIG_LD_VERSION=23400
 CONFIG_LLD_VERSION=0
 CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
 CONFIG_CC_HAS_ASM_INLINE=y
 CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
 CONFIG_IRQ_WORK=y
@@ -22,6 +23,7 @@ CONFIG_BUILDTIME_TABLE_SORT=y
 #
 CONFIG_INIT_ENV_ARG_LIMIT=32
 # CONFIG_COMPILE_TEST is not set
+# CONFIG_WERROR is not set
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_BUILD_SALT=""
@@ -147,6 +149,7 @@ CONFIG_BUILD_BIN2C=y
 CONFIG_LOG_BUF_SHIFT=17
 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
+# CONFIG_PRINTK_INDEX is not set
 CONFIG_GENERIC_SCHED_CLOCK=y
 
 #
@@ -211,12 +214,12 @@ CONFIG_MULTIUSER=y
 CONFIG_FHANDLE=y
 CONFIG_POSIX_TIMERS=y
 CONFIG_PRINTK=y
-CONFIG_PRINTK_NMI=y
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
 CONFIG_BASE_FULL=y
 CONFIG_FUTEX=y
 CONFIG_FUTEX_PI=y
+CONFIG_HAVE_FUTEX_CMPXCHG=y
 CONFIG_EPOLL=y
 CONFIG_SIGNALFD=y
 CONFIG_TIMERFD=y
@@ -269,7 +272,6 @@ CONFIG_HAVE_PROC_CPU=y
 CONFIG_NO_IOPORT_MAP=y
 CONFIG_STACKTRACE_SUPPORT=y
 CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_ARCH_HAS_BANDGAP=y
 CONFIG_FIX_EARLYCON_MEM=y
 CONFIG_GENERIC_HWEIGHT=y
@@ -447,13 +449,10 @@ CONFIG_SOC_HAS_OMAP2_SDRC=y
 CONFIG_SOC_HAS_REALTIME_COUNTER=y
 CONFIG_SOC_OMAP3430=y
 CONFIG_SOC_TI81XX=y
-CONFIG_OMAP_PACKAGE_CBB=y
 
 #
 # OMAP Legacy Platform Data Board Type
 #
-CONFIG_MACH_OMAP3517EVM=y
-CONFIG_MACH_OMAP3_PANDORA=y
 # CONFIG_OMAP3_SDRC_AC_TIMING is not set
 # end of TI OMAP2/3/4 Specific Features
 
@@ -623,6 +622,7 @@ CONFIG_PARAVIRT=y
 # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
 CONFIG_XEN_DOM0=y
 CONFIG_XEN=y
+CONFIG_STACKPROTECTOR_PER_TASK=y
 # end of Kernel Features
 
 #
@@ -743,50 +743,6 @@ CONFIG_ARM_CPU_SUSPEND=y
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 # end of Power management options
 
-#
-# Firmware Drivers
-#
-CONFIG_ARM_SCMI_PROTOCOL=y
-CONFIG_ARM_SCMI_POWER_DOMAIN=m
-# CONFIG_ARM_SCPI_PROTOCOL is not set
-# CONFIG_FIRMWARE_MEMMAP is not set
-CONFIG_DMIID=y
-CONFIG_DMI_SYSFS=y
-CONFIG_RASPBERRYPI_FIRMWARE=y
-CONFIG_TRUSTED_FOUNDATIONS=y
-# CONFIG_TURRIS_MOX_RWTM is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
-
-#
-# EFI (Extensible Firmware Interface) Support
-#
-CONFIG_EFI_ESRT=y
-CONFIG_EFI_PARAMS_FROM_FDT=y
-CONFIG_EFI_RUNTIME_WRAPPERS=y
-CONFIG_EFI_GENERIC_STUB=y
-CONFIG_EFI_ARMSTUB_DTB_LOADER=y
-CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
-# CONFIG_EFI_BOOTLOADER_CONTROL is not set
-# CONFIG_EFI_CAPSULE_LOADER is not set
-# CONFIG_EFI_TEST is not set
-CONFIG_RESET_ATTACK_MITIGATION=y
-# CONFIG_EFI_DISABLE_PCI_DMA is not set
-# end of EFI (Extensible Firmware Interface) Support
-
-# CONFIG_IMX_DSP is not set
-# CONFIG_IMX_SCU is not set
-CONFIG_ARM_PSCI_FW=y
-CONFIG_HAVE_ARM_SMCCC=y
-CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y
-CONFIG_ARM_SMCCC_SOC_ID=y
-
-#
-# Tegra firmware driver
-#
-# CONFIG_TEGRA_IVC is not set
-# end of Tegra firmware driver
-# end of Firmware Drivers
-
 CONFIG_ARM_CRYPTO=y
 CONFIG_CRYPTO_SHA1_ARM=m
 CONFIG_CRYPTO_SHA256_ARM=m
@@ -801,7 +757,6 @@ CONFIG_CRYPTO_POLY1305_ARM=m
 #
 CONFIG_CRASH_CORE=y
 CONFIG_KEXEC_CORE=y
-CONFIG_SET_FS=y
 CONFIG_KPROBES=y
 CONFIG_JUMP_LABEL=y
 # CONFIG_STATIC_KEYS_SELFTEST is not set
@@ -814,6 +769,7 @@ CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
 CONFIG_HAVE_OPTPROBES=y
 CONFIG_HAVE_NMI=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_HAVE_ARCH_TRACEHOOK=y
 CONFIG_HAVE_DMA_CONTIGUOUS=y
 CONFIG_GENERIC_SMP_IDLE_THREAD=y
@@ -873,6 +829,11 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
 # end of GCOV-based kernel profiling
 
 CONFIG_HAVE_GCC_PLUGINS=y
+CONFIG_GCC_PLUGINS=y
+# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
+CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
+# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set
+CONFIG_GCC_PLUGIN_ARM_SSP_PER_TASK=y
 # end of General architecture-dependent options
 
 CONFIG_RT_MUTEXES=y
@@ -894,16 +855,14 @@ CONFIG_MODPROBE_PATH="/run/current-system/profile/bin/modprobe"
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_BLOCK=y
 CONFIG_BLK_RQ_ALLOC_TIME=y
-CONFIG_BLK_SCSI_REQUEST=y
 CONFIG_BLK_CGROUP_RWSTAT=y
-CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSG_COMMON=y
 CONFIG_BLK_DEV_BSGLIB=y
 CONFIG_BLK_DEV_INTEGRITY=y
 CONFIG_BLK_DEV_INTEGRITY_T10=y
 # CONFIG_BLK_DEV_ZONED is not set
 CONFIG_BLK_DEV_THROTTLING=y
 # CONFIG_BLK_DEV_THROTTLING_LOW is not set
-# CONFIG_BLK_CMDLINE_PARSER is not set
 CONFIG_BLK_WBT=y
 CONFIG_BLK_WBT_MQ=y
 # CONFIG_BLK_CGROUP_IOLATENCY is not set
@@ -943,6 +902,7 @@ CONFIG_BLK_MQ_PCI=y
 CONFIG_BLK_MQ_VIRTIO=y
 CONFIG_BLK_MQ_RDMA=y
 CONFIG_BLK_PM=y
+CONFIG_BLOCK_HOLDER_DEPRECATED=y
 
 #
 # IO Schedulers
@@ -1029,12 +989,21 @@ CONFIG_ZBUD=y
 CONFIG_ZSMALLOC=m
 # CONFIG_ZSMALLOC_STAT is not set
 CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_PAGE_IDLE_FLAG=y
 # CONFIG_IDLE_PAGE_TRACKING is not set
 CONFIG_ZONE_DMA=y
 CONFIG_HMM_MIRROR=y
 # CONFIG_PERCPU_STATS is not set
 # CONFIG_GUP_TEST is not set
 CONFIG_KMAP_LOCAL=y
+
+#
+# Data Access Monitoring
+#
+CONFIG_DAMON=y
+CONFIG_DAMON_VADDR=y
+# CONFIG_DAMON_DBGFS is not set
+# end of Data Access Monitoring
 # end of Memory Management options
 
 CONFIG_NET=y
@@ -1050,6 +1019,7 @@ CONFIG_PACKET=y
 CONFIG_PACKET_DIAG=m
 CONFIG_UNIX=y
 CONFIG_UNIX_SCM=y
+CONFIG_AF_UNIX_OOB=y
 CONFIG_UNIX_DIAG=m
 # CONFIG_TLS is not set
 CONFIG_XFRM=y
@@ -1153,6 +1123,7 @@ CONFIG_IPV6_PIMSM_V2=y
 # CONFIG_IPV6_SEG6_LWTUNNEL is not set
 # CONFIG_IPV6_SEG6_HMAC is not set
 # CONFIG_IPV6_RPL_LWTUNNEL is not set
+# CONFIG_IPV6_IOAM6_LWTUNNEL is not set
 # CONFIG_NETLABEL is not set
 CONFIG_MPTCP=y
 CONFIG_INET_MPTCP_DIAG=m
@@ -1570,7 +1541,6 @@ CONFIG_BRIDGE_VLAN_FILTERING=y
 CONFIG_BRIDGE_MRP=y
 CONFIG_BRIDGE_CFM=y
 CONFIG_NET_DSA=m
-CONFIG_NET_DSA_TAG_8021Q=m
 CONFIG_NET_DSA_TAG_AR9331=m
 CONFIG_NET_DSA_TAG_BRCM_COMMON=m
 CONFIG_NET_DSA_TAG_BRCM=m
@@ -1883,6 +1853,7 @@ CONFIG_AF_RXRPC_IPV6=y
 # CONFIG_AF_RXRPC_DEBUG is not set
 CONFIG_RXKAD=y
 # CONFIG_AF_KCM is not set
+CONFIG_MCTP=m
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
 CONFIG_WIRELESS_EXT=y
@@ -2005,7 +1976,6 @@ CONFIG_PCIE_BUS_DEFAULT=y
 #
 CONFIG_PCI_MVEBU=y
 # CONFIG_PCI_FTPCI100 is not set
-# CONFIG_PCI_IXP4XX is not set
 CONFIG_PCI_TEGRA=y
 CONFIG_PCI_HOST_COMMON=y
 CONFIG_PCI_HOST_GENERIC=y
@@ -2029,6 +1999,7 @@ CONFIG_PCI_EXYNOS=m
 CONFIG_PCI_IMX6=y
 # CONFIG_PCI_LAYERSCAPE is not set
 # CONFIG_PCIE_ARMADA_8K is not set
+CONFIG_PCIE_ROCKCHIP_DW_HOST=y
 # CONFIG_PCI_MESON is not set
 # end of DesignWare PCI Core Support
 
@@ -2123,7 +2094,6 @@ CONFIG_ARM_CCI400_PORT_CTRL=y
 CONFIG_MVEBU_MBUS=y
 CONFIG_OMAP_INTERCONNECT=y
 CONFIG_OMAP_OCP2SCP=m
-CONFIG_SIMPLE_PM_BUS=y
 CONFIG_SUN50I_DE2_BUS=y
 CONFIG_SUNXI_RSB=y
 # CONFIG_TEGRA_GMI is not set
@@ -2137,6 +2107,65 @@ CONFIG_MHI_BUS_PCI_GENERIC=m
 
 CONFIG_CONNECTOR=y
 CONFIG_PROC_EVENTS=y
+
+#
+# Firmware Drivers
+#
+
+#
+# ARM System Control and Management Interface Protocol
+#
+CONFIG_ARM_SCMI_PROTOCOL=y
+CONFIG_ARM_SCMI_HAVE_TRANSPORT=y
+CONFIG_ARM_SCMI_HAVE_SHMEM=y
+CONFIG_ARM_SCMI_TRANSPORT_MAILBOX=y
+CONFIG_ARM_SCMI_TRANSPORT_SMC=y
+CONFIG_ARM_SCMI_POWER_DOMAIN=m
+# end of ARM System Control and Management Interface Protocol
+
+# CONFIG_ARM_SCPI_PROTOCOL is not set
+# CONFIG_FIRMWARE_MEMMAP is not set
+CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=y
+CONFIG_RASPBERRYPI_FIRMWARE=y
+CONFIG_QCOM_SCM=m
+# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set
+CONFIG_SYSFB=y
+# CONFIG_SYSFB_SIMPLEFB is not set
+CONFIG_TRUSTED_FOUNDATIONS=y
+# CONFIG_TURRIS_MOX_RWTM is not set
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_ESRT=y
+CONFIG_EFI_PARAMS_FROM_FDT=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_GENERIC_STUB=y
+CONFIG_EFI_ARMSTUB_DTB_LOADER=y
+CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
+# CONFIG_EFI_BOOTLOADER_CONTROL is not set
+# CONFIG_EFI_CAPSULE_LOADER is not set
+# CONFIG_EFI_TEST is not set
+CONFIG_RESET_ATTACK_MITIGATION=y
+# CONFIG_EFI_DISABLE_PCI_DMA is not set
+# end of EFI (Extensible Firmware Interface) Support
+
+# CONFIG_IMX_DSP is not set
+# CONFIG_IMX_SCU is not set
+CONFIG_ARM_PSCI_FW=y
+CONFIG_HAVE_ARM_SMCCC=y
+CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y
+CONFIG_ARM_SMCCC_SOC_ID=y
+
+#
+# Tegra firmware driver
+#
+# CONFIG_TEGRA_IVC is not set
+# end of Tegra firmware driver
+# end of Firmware Drivers
+
 CONFIG_GNSS=m
 CONFIG_MTD=y
 # CONFIG_MTD_TESTS is not set
@@ -2157,6 +2186,10 @@ CONFIG_MTD_OF_PARTS=m
 CONFIG_MTD_BLKDEVS=m
 CONFIG_MTD_BLOCK=m
 CONFIG_MTD_BLOCK_RO=m
+
+#
+# Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK.
+#
 # CONFIG_FTL is not set
 # CONFIG_NFTL is not set
 # CONFIG_INFTL is not set
@@ -2383,6 +2416,7 @@ CONFIG_TIFM_CORE=m
 CONFIG_TIFM_7XX1=m
 CONFIG_ICS932S401=m
 CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_GEHC_ACHC=m
 # CONFIG_HP_ILO is not set
 CONFIG_APDS9802ALS=m
 CONFIG_ISL29003=m
@@ -2444,6 +2478,7 @@ CONFIG_UACCE=m
 #
 CONFIG_SCSI_MOD=m
 CONFIG_RAID_ATTRS=m
+CONFIG_SCSI_COMMON=m
 CONFIG_SCSI=m
 CONFIG_SCSI_DMA=y
 CONFIG_SCSI_NETLINK=y
@@ -2456,6 +2491,7 @@ CONFIG_BLK_DEV_SD=m
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=m
 CONFIG_CHR_DEV_SG=m
+CONFIG_BLK_DEV_BSG=y
 CONFIG_CHR_DEV_SCH=m
 CONFIG_SCSI_ENCLOSURE=m
 CONFIG_SCSI_CONSTANTS=y
@@ -2514,6 +2550,7 @@ CONFIG_SCSI_UFSHCD_PCI=m
 # CONFIG_SCSI_UFSHCD_PLATFORM is not set
 # CONFIG_SCSI_UFS_BSG is not set
 CONFIG_SCSI_UFS_CRYPTO=y
+CONFIG_SCSI_UFS_HPB=y
 # CONFIG_SCSI_HPTIOP is not set
 # CONFIG_SCSI_MYRB is not set
 # CONFIG_SCSI_MYRS is not set
@@ -2689,7 +2726,6 @@ CONFIG_DM_THIN_PROVISIONING=m
 CONFIG_DM_CACHE=m
 CONFIG_DM_CACHE_SMQ=m
 # CONFIG_DM_WRITECACHE is not set
-# CONFIG_DM_EBS is not set
 CONFIG_DM_ERA=m
 CONFIG_DM_CLONE=m
 CONFIG_DM_MIRROR=m
@@ -2894,7 +2930,8 @@ CONFIG_CHELSIO_T4VF=m
 CONFIG_CHELSIO_LIB=m
 CONFIG_CHELSIO_INLINE_CRYPTO=y
 CONFIG_NET_VENDOR_CIRRUS=y
-# CONFIG_CS89x0 is not set
+CONFIG_CS89x0=m
+CONFIG_CS89x0_PLATFORM=m
 CONFIG_NET_VENDOR_CISCO=y
 CONFIG_ENIC=m
 CONFIG_NET_VENDOR_CORTINA=y
@@ -2972,6 +3009,8 @@ CONFIG_I40EVF=m
 # CONFIG_IGC is not set
 CONFIG_NET_VENDOR_MICROSOFT=y
 CONFIG_JME=m
+CONFIG_NET_VENDOR_LITEX=y
+CONFIG_LITEX_LITEETH=m
 CONFIG_NET_VENDOR_MARVELL=y
 # CONFIG_MV643XX_ETH is not set
 CONFIG_MVMDIO=m
@@ -3172,6 +3211,7 @@ CONFIG_LSI_ET1011C_PHY=m
 CONFIG_MARVELL_PHY=m
 # CONFIG_MARVELL_10G_PHY is not set
 CONFIG_MARVELL_88X2222_PHY=m
+CONFIG_MAXLINEAR_GPHY=m
 CONFIG_MEDIATEK_GE_PHY=m
 CONFIG_MICREL_PHY=m
 CONFIG_MICROCHIP_PHY=m
@@ -3197,6 +3237,10 @@ CONFIG_DP83869_PHY=m
 CONFIG_VITESSE_PHY=m
 # CONFIG_XILINX_GMII2RGMII is not set
 # CONFIG_MICREL_KS8995MA is not set
+
+#
+# MCTP Device Drivers
+#
 CONFIG_MDIO_DEVICE=y
 CONFIG_MDIO_BUS=y
 CONFIG_FWNODE_MDIO=y
@@ -3439,7 +3483,6 @@ CONFIG_P54_USB=m
 CONFIG_P54_PCI=m
 # CONFIG_P54_SPI is not set
 CONFIG_P54_LEDS=y
-# CONFIG_PRISM54 is not set
 CONFIG_WLAN_VENDOR_MARVELL=y
 CONFIG_LIBERTAS=m
 CONFIG_LIBERTAS_USB=m
@@ -3566,6 +3609,7 @@ CONFIG_IEEE802154_ADF7242=m
 CONFIG_WWAN=y
 # CONFIG_WWAN_HWSIM is not set
 CONFIG_MHI_WWAN_CTRL=m
+CONFIG_MHI_WWAN_MBIM=m
 # end of Wireless WAN
 
 CONFIG_XEN_NETDEV_FRONTEND=m
@@ -3575,7 +3619,6 @@ CONFIG_USB4_NET=m
 CONFIG_NETDEVSIM=m
 CONFIG_NET_FAILOVER=m
 # CONFIG_ISDN is not set
-# CONFIG_NVM is not set
 
 #
 # Input device support
@@ -3965,6 +4008,7 @@ CONFIG_HW_RANDOM_VIRTIO=m
 CONFIG_HW_RANDOM_EXYNOS=m
 CONFIG_HW_RANDOM_CCTRNG=m
 CONFIG_HW_RANDOM_XIPHERA=m
+CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=m
 # CONFIG_APPLICOM is not set
 CONFIG_DEVMEM=y
 CONFIG_DEVPORT=y
@@ -3982,9 +4026,8 @@ CONFIG_TCG_TIS_I2C_CR50=m
 CONFIG_XILLYBUS_CLASS=m
 # CONFIG_XILLYBUS is not set
 CONFIG_XILLYUSB=m
-# end of Character devices
-
 # CONFIG_RANDOM_TRUST_BOOTLOADER is not set
+# end of Character devices
 
 #
 # I2C support
@@ -4084,6 +4127,7 @@ CONFIG_I2C_VIPERBOARD=m
 # Other I2C/SMBus bus drivers
 #
 CONFIG_I2C_CROS_EC_TUNNEL=m
+CONFIG_I2C_VIRTIO=m
 # end of I2C Hardware Bus support
 
 # CONFIG_I2C_STUB is not set
@@ -4129,6 +4173,7 @@ CONFIG_SPI_ORION=m
 CONFIG_SPI_PL022=m
 # CONFIG_SPI_PXA2XX is not set
 CONFIG_SPI_ROCKCHIP=m
+CONFIG_SPI_ROCKCHIP_SFC=m
 # CONFIG_SPI_S3C64XX is not set
 # CONFIG_SPI_SC18IS602 is not set
 # CONFIG_SPI_SIFIVE is not set
@@ -4192,6 +4237,7 @@ CONFIG_PPS_CLIENT_PARPORT=m
 # PTP clock support
 #
 CONFIG_PTP_1588_CLOCK=y
+CONFIG_PTP_1588_CLOCK_OPTIONAL=y
 CONFIG_PTP_1588_CLOCK_QORIQ=m
 
 #
@@ -4232,6 +4278,7 @@ CONFIG_PINCTRL_IMX8MM=y
 CONFIG_PINCTRL_IMX8MN=y
 CONFIG_PINCTRL_IMX8MP=y
 CONFIG_PINCTRL_IMX8MQ=y
+# CONFIG_PINCTRL_IMX8ULP is not set
 CONFIG_PINCTRL_MVEBU=y
 CONFIG_PINCTRL_ARMADA_370=y
 CONFIG_PINCTRL_ARMADA_375=y
@@ -4309,6 +4356,7 @@ CONFIG_GPIO_MVEBU=y
 CONFIG_GPIO_MXC=y
 CONFIG_GPIO_OMAP=y
 CONFIG_GPIO_PL061=y
+CONFIG_GPIO_ROCKCHIP=m
 # CONFIG_GPIO_SAMA5D2_PIOBU is not set
 CONFIG_GPIO_SIFIVE=y
 # CONFIG_GPIO_SYSCON is not set
@@ -4382,6 +4430,7 @@ CONFIG_GPIO_VIPERBOARD=m
 #
 CONFIG_GPIO_AGGREGATOR=m
 # CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_VIRTIO=m
 # end of Virtual GPIO drivers
 
 CONFIG_W1=m
@@ -4465,7 +4514,6 @@ CONFIG_BATTERY_BQ27XXX_HDQ=m
 CONFIG_CHARGER_AXP20X=m
 CONFIG_BATTERY_AXP20X=m
 CONFIG_AXP20X_POWER=m
-CONFIG_AXP288_FUEL_GAUGE=m
 # CONFIG_BATTERY_MAX17040 is not set
 # CONFIG_BATTERY_MAX17042 is not set
 CONFIG_BATTERY_MAX1721X=m
@@ -4480,6 +4528,7 @@ CONFIG_CHARGER_GPIO=m
 # CONFIG_CHARGER_LT3651 is not set
 # CONFIG_CHARGER_LTC4162L is not set
 # CONFIG_CHARGER_DETECTOR_MAX14656 is not set
+CONFIG_CHARGER_MT6360=m
 CONFIG_CHARGER_BQ2415X=m
 # CONFIG_CHARGER_BQ24190 is not set
 # CONFIG_CHARGER_BQ24257 is not set
@@ -4494,6 +4543,7 @@ CONFIG_CHARGER_BQ2415X=m
 CONFIG_BATTERY_RT5033=m
 # CONFIG_CHARGER_RT9455 is not set
 CONFIG_CHARGER_CROS_USBPD=m
+CONFIG_CHARGER_CROS_PCHG=m
 # CONFIG_CHARGER_UCS1002 is not set
 CONFIG_CHARGER_BD99954=m
 CONFIG_HWMON=y
@@ -4520,6 +4570,7 @@ CONFIG_SENSORS_ADT7462=m
 CONFIG_SENSORS_ADT7470=m
 CONFIG_SENSORS_ADT7475=m
 CONFIG_SENSORS_AHT10=m
+CONFIG_SENSORS_AQUACOMPUTER_D5NEXT=m
 # CONFIG_SENSORS_AS370 is not set
 CONFIG_SENSORS_ASC7621=m
 CONFIG_SENSORS_AXI_FAN_CONTROL=m
@@ -4611,6 +4662,7 @@ CONFIG_SENSORS_NCT6775=m
 CONFIG_SENSORS_PWM_FAN=m
 CONFIG_SENSORS_RASPBERRYPI_HWMON=m
 CONFIG_SENSORS_SBTSI=m
+CONFIG_SENSORS_SBRMI=m
 # CONFIG_SENSORS_SHT15 is not set
 CONFIG_SENSORS_SHT21=m
 # CONFIG_SENSORS_SHT3x is not set
@@ -4734,7 +4786,6 @@ CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT=y
 # Watchdog Device Drivers
 #
 CONFIG_SOFT_WATCHDOG=m
-CONFIG_BD70528_WATCHDOG=m
 CONFIG_BD957XMUF_WATCHDOG=m
 CONFIG_DA9052_WATCHDOG=m
 # CONFIG_GPIO_WATCHDOG is not set
@@ -4947,6 +4998,8 @@ CONFIG_MFD_KHADAS_MCU=m
 CONFIG_MFD_QCOM_PM8008=m
 CONFIG_MFD_VEXPRESS_SYSREG=y
 # CONFIG_MFD_INTEL_M10_BMC is not set
+CONFIG_MFD_RSMU_I2C=m
+CONFIG_MFD_RSMU_SPI=m
 # end of Multifunction device drivers
 
 CONFIG_REGULATOR=y
@@ -5019,7 +5072,9 @@ CONFIG_REGULATOR_RT4801=m
 CONFIG_REGULATOR_RT4831=m
 CONFIG_REGULATOR_RT6160=m
 CONFIG_REGULATOR_RT6245=m
+CONFIG_REGULATOR_RTQ2134=m
 CONFIG_REGULATOR_RTMV20=m
+CONFIG_REGULATOR_RTQ6752=m
 CONFIG_REGULATOR_S2MPA01=m
 CONFIG_REGULATOR_S2MPS11=m
 CONFIG_REGULATOR_S5M8767=m
@@ -5609,7 +5664,9 @@ CONFIG_VIDEO_IMX274=m
 CONFIG_VIDEO_IMX290=m
 CONFIG_VIDEO_IMX319=m
 CONFIG_VIDEO_IMX334=m
+CONFIG_VIDEO_IMX335=m
 CONFIG_VIDEO_IMX355=m
+CONFIG_VIDEO_IMX412=m
 CONFIG_VIDEO_OV02A10=m
 CONFIG_VIDEO_OV2640=m
 CONFIG_VIDEO_OV2659=m
@@ -5630,6 +5687,7 @@ CONFIG_VIDEO_OV7670=m
 CONFIG_VIDEO_OV7740=m
 CONFIG_VIDEO_OV8856=m
 CONFIG_VIDEO_OV8865=m
+CONFIG_VIDEO_OV9282=m
 CONFIG_VIDEO_OV9640=m
 CONFIG_VIDEO_OV9650=m
 CONFIG_VIDEO_OV13858=m
@@ -5914,6 +5972,7 @@ CONFIG_IMX_IPUV3_CORE=m
 CONFIG_DRM=m
 CONFIG_DRM_MIPI_DBI=m
 CONFIG_DRM_MIPI_DSI=y
+CONFIG_DRM_DP_AUX_BUS=m
 # CONFIG_DRM_DP_AUX_CHARDEV is not set
 # CONFIG_DRM_DEBUG_SELFTEST is not set
 CONFIG_DRM_KMS_HELPER=m
@@ -6011,12 +6070,12 @@ CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
 CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y
 CONFIG_DRM_TILCDC=m
 CONFIG_DRM_QXL=m
-CONFIG_DRM_BOCHS=m
 CONFIG_DRM_VIRTIO_GPU=m
 CONFIG_DRM_MSM=m
 CONFIG_DRM_MSM_GPU_STATE=y
 # CONFIG_DRM_MSM_REGISTER_LOGGING is not set
 # CONFIG_DRM_MSM_GPU_SUDO is not set
+CONFIG_DRM_MSM_HDMI_HDCP=y
 CONFIG_DRM_MSM_DP=y
 CONFIG_DRM_MSM_DSI=y
 CONFIG_DRM_MSM_DSI_28NM_PHY=y
@@ -6045,7 +6104,9 @@ CONFIG_DRM_PANEL_ELIDA_KD35T133=m
 CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m
 # CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set
 CONFIG_DRM_PANEL_ILITEK_IL9322=m
+CONFIG_DRM_PANEL_ILITEK_ILI9341=m
 CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
+CONFIG_DRM_PANEL_INNOLUX_EJ030NA=m
 # CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
 # CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
 # CONFIG_DRM_PANEL_KHADAS_TS050 is not set
@@ -6068,6 +6129,8 @@ CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
 # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
 # CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
 # CONFIG_DRM_PANEL_RONBO_RB070D30 is not set
+CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20=m
+CONFIG_DRM_PANEL_SAMSUNG_DB7430=m
 # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
 # CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
 # CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set
@@ -6090,6 +6153,7 @@ CONFIG_DRM_PANEL_SONY_ACX424AKP=m
 # CONFIG_DRM_PANEL_TPO_TPG110 is not set
 # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
 # CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set
+CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m
 CONFIG_DRM_PANEL_XINPENG_XPP055C272=m
 # end of Display Panels
 
@@ -6154,6 +6218,7 @@ CONFIG_DRM_ETNAVIV=m
 CONFIG_DRM_ETNAVIV_THERMAL=y
 # CONFIG_DRM_MXSFB is not set
 # CONFIG_DRM_ARCPGU is not set
+CONFIG_DRM_BOCHS=m
 CONFIG_DRM_CIRRUS_QEMU=m
 CONFIG_DRM_GM12U320=m
 CONFIG_DRM_SIMPLEDRM=m
@@ -6259,7 +6324,7 @@ CONFIG_FB_MB862XX=m
 CONFIG_FB_MB862XX_PCI_GDC=y
 CONFIG_FB_MB862XX_I2C=y
 CONFIG_FB_MX3=y
-CONFIG_FB_SIMPLE=y
+CONFIG_FB_SIMPLE=m
 # CONFIG_FB_SSD1307 is not set
 # CONFIG_FB_SM712 is not set
 # end of Frame buffer Devices
@@ -6442,6 +6507,7 @@ CONFIG_SND_HDA_CODEC_SIGMATEL=m
 CONFIG_SND_HDA_CODEC_VIA=m
 CONFIG_SND_HDA_CODEC_HDMI=m
 CONFIG_SND_HDA_CODEC_CIRRUS=m
+CONFIG_SND_HDA_CODEC_CS8409=m
 CONFIG_SND_HDA_CODEC_CONEXANT=m
 CONFIG_SND_HDA_CODEC_CA0110=m
 CONFIG_SND_HDA_CODEC_CA0132=m
@@ -6673,6 +6739,7 @@ CONFIG_SND_SOC_ES8328=m
 CONFIG_SND_SOC_ES8328_I2C=m
 CONFIG_SND_SOC_ES8328_SPI=m
 # CONFIG_SND_SOC_GTM601 is not set
+CONFIG_SND_SOC_ICS43432=m
 # CONFIG_SND_SOC_INNO_RK3036 is not set
 # CONFIG_SND_SOC_MAX98088 is not set
 CONFIG_SND_SOC_MAX98090=m
@@ -6949,7 +7016,7 @@ CONFIG_USB_HIDDEV=y
 
 CONFIG_USB_OHCI_LITTLE_ENDIAN=y
 CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
+CONFIG_USB_COMMON=m
 CONFIG_USB_LED_TRIG=y
 CONFIG_USB_ULPI_BUS=m
 CONFIG_USB_CONN_GPIO=m
@@ -7746,6 +7813,7 @@ CONFIG_SYNC_FILE=y
 # CONFIG_DMABUF_DEBUG is not set
 # CONFIG_DMABUF_SELFTESTS is not set
 # CONFIG_DMABUF_HEAPS is not set
+# CONFIG_DMABUF_SYSFS_STATS is not set
 # end of DMABUF options
 
 # CONFIG_AUXDISPLAY is not set
@@ -7776,11 +7844,13 @@ CONFIG_VIRTIO_MMIO=m
 CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
 CONFIG_VDPA=m
 # CONFIG_VDPA_SIM is not set
+CONFIG_VDPA_USER=m
 CONFIG_IFCVF=m
 CONFIG_MLX5_VDPA=y
 CONFIG_MLX5_VDPA_NET=m
 # CONFIG_VP_VDPA is not set
 CONFIG_VHOST_IOTLB=m
+CONFIG_VHOST_RING=m
 CONFIG_VHOST=m
 CONFIG_VHOST_MENU=y
 CONFIG_VHOST_NET=m
@@ -7901,6 +7971,7 @@ CONFIG_88EU_AP_MODE=y
 # CONFIG_FIREWIRE_SERIAL is not set
 # CONFIG_GS_FPGABOOT is not set
 # CONFIG_UNISYSSPAR is not set
+CONFIG_COMMON_CLK_XLNX_CLKWZRD=m
 # CONFIG_FB_TFT is not set
 # CONFIG_KS7010 is not set
 CONFIG_BCM_VIDEOCORE=y
@@ -8067,6 +8138,7 @@ CONFIG_BCM2835_MBOX=y
 # CONFIG_MAILBOX_TEST is not set
 # CONFIG_TEGRA_HSP_MBOX is not set
 CONFIG_SUN6I_MSGBOX=m
+CONFIG_IOMMU_IOVA=m
 CONFIG_IOMMU_API=y
 CONFIG_IOMMU_SUPPORT=y
 
@@ -8080,6 +8152,8 @@ CONFIG_IOMMU_IO_PGTABLE_LPAE=y
 # end of Generic IOMMU Pagetable Support
 
 # CONFIG_IOMMU_DEBUGFS is not set
+# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set
+CONFIG_IOMMU_DEFAULT_DMA_LAZY=y
 # CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
 CONFIG_OF_IOMMU=y
 CONFIG_OMAP_IOMMU=y
@@ -8389,6 +8463,7 @@ CONFIG_CCS811=m
 CONFIG_SCD30_CORE=m
 CONFIG_SCD30_I2C=m
 # CONFIG_SENSIRION_SGP30 is not set
+CONFIG_SENSIRION_SGP40=m
 # CONFIG_SPS30_I2C is not set
 # CONFIG_VZ89X is not set
 # end of Chemical Sensors
@@ -8650,6 +8725,7 @@ CONFIG_HID_SENSOR_DEVICE_ROTATION=m
 #
 # Digital potentiometers
 #
+CONFIG_AD5110=m
 # CONFIG_AD5272 is not set
 # CONFIG_DS1803 is not set
 # CONFIG_MAX5432 is not set
@@ -8992,11 +9068,11 @@ CONFIG_F2FS_FS_SECURITY=y
 # CONFIG_F2FS_CHECK_FS is not set
 # CONFIG_F2FS_FAULT_INJECTION is not set
 # CONFIG_F2FS_FS_COMPRESSION is not set
+# CONFIG_F2FS_IOSTAT is not set
 CONFIG_FS_POSIX_ACL=y
 CONFIG_EXPORTFS=y
 CONFIG_EXPORTFS_BLOCK_OPS=y
 CONFIG_FILE_LOCKING=y
-CONFIG_MANDATORY_FILE_LOCKING=y
 # CONFIG_FS_ENCRYPTION is not set
 CONFIG_FS_VERITY=y
 # CONFIG_FS_VERITY_DEBUG is not set
@@ -9029,15 +9105,12 @@ CONFIG_OVERLAY_FS=m
 # Caches
 #
 CONFIG_NETFS_SUPPORT=m
-# CONFIG_NETFS_STATS is not set
+CONFIG_NETFS_STATS=y
 CONFIG_FSCACHE=m
 CONFIG_FSCACHE_STATS=y
-# CONFIG_FSCACHE_HISTOGRAM is not set
 # CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
 CONFIG_CACHEFILES=m
 # CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
 # end of Caches
 
 #
@@ -9063,6 +9136,9 @@ CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
 CONFIG_NTFS_FS=m
 # CONFIG_NTFS_DEBUG is not set
 # CONFIG_NTFS_RW is not set
+CONFIG_NTFS3_FS=m
+CONFIG_NTFS3_LZX_XPRESS=y
+# CONFIG_NTFS3_FS_POSIX_ACL is not set
 # end of DOS/FAT/EXFAT/NT Filesystems
 
 #
@@ -9214,7 +9290,6 @@ CONFIG_CEPH_FS_SECURITY_LABEL=y
 CONFIG_CIFS=m
 # CONFIG_CIFS_STATS2 is not set
 CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
-CONFIG_CIFS_WEAK_PW_HASH=y
 CONFIG_CIFS_UPCALL=y
 CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
@@ -9225,6 +9300,8 @@ CONFIG_CIFS_DFS_UPCALL=y
 CONFIG_CIFS_SWN_UPCALL=y
 # CONFIG_CIFS_SMB_DIRECT is not set
 CONFIG_CIFS_FSCACHE=y
+# CONFIG_SMB_SERVER is not set
+CONFIG_SMBFS_COMMON=m
 CONFIG_CODA_FS=m
 CONFIG_AFS_FS=m
 # CONFIG_AFS_DEBUG is not set
@@ -9378,13 +9455,20 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity,apparmor,selinux,smack,tomoyo"
 #
 # Kernel hardening options
 #
+CONFIG_GCC_PLUGIN_STRUCTLEAK=y
 
 #
 # Memory initialization
 #
-CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_NONE is not set
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set
+CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=y
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE is not set
 CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
 # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
+# CONFIG_ZERO_CALL_USED_REGS is not set
 # end of Memory initialization
 # end of Kernel hardening options
 # end of Security options
@@ -9574,6 +9658,7 @@ CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
 CONFIG_CRYPTO_LIB_POLY1305=m
 CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
 CONFIG_CRYPTO_LIB_SHA256=y
+CONFIG_CRYPTO_LIB_SM4=m
 CONFIG_CRYPTO_HW=y
 CONFIG_CRYPTO_DEV_ALLWINNER=y
 CONFIG_CRYPTO_DEV_SUN4I_SS=m
@@ -9709,6 +9794,7 @@ CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
 CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
 CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
 CONFIG_SWIOTLB=y
+CONFIG_DMA_RESTRICTED_POOL=y
 CONFIG_DMA_NONCOHERENT_MMAP=y
 CONFIG_DMA_REMAP=y
 CONFIG_DMA_CMA=y
@@ -9825,6 +9911,7 @@ CONFIG_DEBUG_FS_ALLOW_ALL=y
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
 # CONFIG_UBSAN is not set
+CONFIG_HAVE_KCSAN_COMPILER=y
 # end of Generic Kernel Debugging Instruments
 
 CONFIG_DEBUG_KERNEL=y
@@ -9936,7 +10023,6 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=21
 # end of RCU Debugging
 
 # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
 # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
 # CONFIG_LATENCYTOP is not set
 CONFIG_NOP_TRACER=y
@@ -10029,7 +10115,6 @@ CONFIG_CC_HAS_SANCOV_TRACE_PC=y
 CONFIG_RUNTIME_TESTING_MENU=y
 # CONFIG_LKDTM is not set
 # CONFIG_TEST_MIN_HEAP is not set
-# CONFIG_TEST_SORT is not set
 # CONFIG_TEST_DIV64 is not set
 # CONFIG_KPROBES_SANITY_TEST is not set
 # CONFIG_BACKTRACE_SELF_TEST is not set
diff --git a/gnu/packages/aux-files/linux-libre/5.14-arm64.conf b/gnu/packages/aux-files/linux-libre/5.15-arm64.conf
index aab094173e..743e6cccc9 100644
--- a/gnu/packages/aux-files/linux-libre/5.14-arm64.conf
+++ b/gnu/packages/aux-files/linux-libre/5.15-arm64.conf
@@ -1,19 +1,20 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm64 5.14.0 Kernel Configuration
+# Linux/arm64 5.15.5 Kernel Configuration
 #
-CONFIG_CC_VERSION_TEXT="gcc (Debian 8.3.0-6) 8.3.0"
+CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
 CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=80300
+CONFIG_GCC_VERSION=110200
 CONFIG_CLANG_VERSION=0
 CONFIG_AS_IS_GNU=y
-CONFIG_AS_VERSION=23101
+CONFIG_AS_VERSION=23400
 CONFIG_LD_IS_BFD=y
-CONFIG_LD_VERSION=23101
+CONFIG_LD_VERSION=23400
 CONFIG_LLD_VERSION=0
 CONFIG_CC_CAN_LINK=y
 CONFIG_CC_CAN_LINK_STATIC=y
 CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
 CONFIG_CC_HAS_ASM_INLINE=y
 CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
 CONFIG_IRQ_WORK=y
@@ -25,6 +26,7 @@ CONFIG_THREAD_INFO_IN_TASK=y
 #
 CONFIG_INIT_ENV_ARG_LIMIT=32
 # CONFIG_COMPILE_TEST is not set
+# CONFIG_WERROR is not set
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_BUILD_SALT=""
@@ -142,6 +144,7 @@ CONFIG_BUILD_BIN2C=y
 CONFIG_LOG_BUF_SHIFT=17
 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
+# CONFIG_PRINTK_INDEX is not set
 CONFIG_GENERIC_SCHED_CLOCK=y
 
 #
@@ -214,7 +217,6 @@ CONFIG_MULTIUSER=y
 CONFIG_FHANDLE=y
 CONFIG_POSIX_TIMERS=y
 CONFIG_PRINTK=y
-CONFIG_PRINTK_NMI=y
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
 CONFIG_BASE_FULL=y
@@ -279,7 +281,6 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
 CONFIG_STACKTRACE_SUPPORT=y
 CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
 CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
 CONFIG_GENERIC_HWEIGHT=y
@@ -449,6 +450,7 @@ CONFIG_ARM64_CNP=y
 # ARMv8.3 architectural features
 #
 CONFIG_ARM64_PTR_AUTH=y
+CONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y
 # end of ARMv8.3 architectural features
 
 #
@@ -586,67 +588,6 @@ CONFIG_ARM_TEGRA194_CPUFREQ=m
 # end of CPU Frequency scaling
 # end of CPU Power Management
 
-#
-# Firmware Drivers
-#
-CONFIG_ARM_SCMI_PROTOCOL=y
-CONFIG_ARM_SCMI_POWER_DOMAIN=m
-# CONFIG_ARM_SCPI_PROTOCOL is not set
-# CONFIG_ARM_SDE_INTERFACE is not set
-# CONFIG_FIRMWARE_MEMMAP is not set
-CONFIG_DMIID=y
-CONFIG_DMI_SYSFS=y
-CONFIG_ISCSI_IBFT=m
-CONFIG_RASPBERRYPI_FIRMWARE=y
-# CONFIG_FW_CFG_SYSFS is not set
-CONFIG_INTEL_STRATIX10_SERVICE=m
-CONFIG_INTEL_STRATIX10_RSU=m
-CONFIG_QCOM_SCM=y
-# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set
-# CONFIG_TURRIS_MOX_RWTM is not set
-CONFIG_ARM_FFA_TRANSPORT=m
-CONFIG_ARM_FFA_SMCCC=y
-# CONFIG_GOOGLE_FIRMWARE is not set
-
-#
-# EFI (Extensible Firmware Interface) Support
-#
-CONFIG_EFI_ESRT=y
-CONFIG_EFI_VARS_PSTORE=m
-# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
-CONFIG_EFI_SOFT_RESERVE=y
-CONFIG_EFI_PARAMS_FROM_FDT=y
-CONFIG_EFI_RUNTIME_WRAPPERS=y
-CONFIG_EFI_GENERIC_STUB=y
-CONFIG_EFI_ARMSTUB_DTB_LOADER=y
-CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
-# CONFIG_EFI_BOOTLOADER_CONTROL is not set
-# CONFIG_EFI_CAPSULE_LOADER is not set
-# CONFIG_EFI_TEST is not set
-# CONFIG_RESET_ATTACK_MITIGATION is not set
-# CONFIG_EFI_DISABLE_PCI_DMA is not set
-# end of EFI (Extensible Firmware Interface) Support
-
-CONFIG_EFI_EARLYCON=y
-CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
-# CONFIG_IMX_DSP is not set
-CONFIG_IMX_SCU=y
-CONFIG_IMX_SCU_PD=y
-CONFIG_MESON_SM=y
-CONFIG_ARM_PSCI_FW=y
-# CONFIG_ARM_PSCI_CHECKER is not set
-CONFIG_HAVE_ARM_SMCCC=y
-CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y
-CONFIG_ARM_SMCCC_SOC_ID=y
-
-#
-# Tegra firmware driver
-#
-CONFIG_TEGRA_IVC=y
-CONFIG_TEGRA_BPMP=y
-# end of Tegra firmware driver
-# end of Firmware Drivers
-
 CONFIG_ARCH_SUPPORTS_ACPI=y
 CONFIG_ACPI=y
 CONFIG_ACPI_GENERIC_GSI=y
@@ -703,6 +644,8 @@ CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL=y
 CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
 CONFIG_HAVE_KVM_IRQ_BYPASS=y
 CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=y
+CONFIG_KVM_XFER_TO_GUEST_WORK=y
+# CONFIG_NVHE_EL2_DEBUG is not set
 CONFIG_ARM64_CRYPTO=y
 CONFIG_CRYPTO_SHA256_ARM64=m
 # CONFIG_CRYPTO_SHA512_ARM64 is not set
@@ -739,6 +682,7 @@ CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
 CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
 CONFIG_HAVE_NMI=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_HAVE_ARCH_TRACEHOOK=y
 CONFIG_HAVE_DMA_CONTIGUOUS=y
 CONFIG_GENERIC_SMP_IDLE_THREAD=y
@@ -823,6 +767,10 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
 # end of GCOV-based kernel profiling
 
 CONFIG_HAVE_GCC_PLUGINS=y
+CONFIG_GCC_PLUGINS=y
+# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
+CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
+# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set
 # end of General architecture-dependent options
 
 CONFIG_RT_MUTEXES=y
@@ -845,16 +793,14 @@ CONFIG_MODPROBE_PATH="/run/current-system/profile/bin/modprobe"
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_BLOCK=y
 CONFIG_BLK_RQ_ALLOC_TIME=y
-CONFIG_BLK_SCSI_REQUEST=y
 CONFIG_BLK_CGROUP_RWSTAT=y
-CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSG_COMMON=y
 CONFIG_BLK_DEV_BSGLIB=y
 CONFIG_BLK_DEV_INTEGRITY=y
 CONFIG_BLK_DEV_INTEGRITY_T10=m
 # CONFIG_BLK_DEV_ZONED is not set
 CONFIG_BLK_DEV_THROTTLING=y
 # CONFIG_BLK_DEV_THROTTLING_LOW is not set
-# CONFIG_BLK_CMDLINE_PARSER is not set
 CONFIG_BLK_WBT=y
 CONFIG_BLK_WBT_MQ=y
 # CONFIG_BLK_CGROUP_IOLATENCY is not set
@@ -896,6 +842,7 @@ CONFIG_BLK_MQ_PCI=y
 CONFIG_BLK_MQ_VIRTIO=y
 CONFIG_BLK_MQ_RDMA=y
 CONFIG_BLK_PM=y
+CONFIG_BLOCK_HOLDER_DEPRECATED=y
 
 #
 # IO Schedulers
@@ -1048,6 +995,7 @@ CONFIG_ZSMALLOC=m
 # CONFIG_ZSMALLOC_STAT is not set
 CONFIG_GENERIC_EARLY_IOREMAP=y
 # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
+CONFIG_PAGE_IDLE_FLAG=y
 # CONFIG_IDLE_PAGE_TRACKING is not set
 CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
 CONFIG_ARCH_HAS_PTE_DEVMAP=y
@@ -1061,6 +1009,14 @@ CONFIG_HMM_MIRROR=y
 CONFIG_ARCH_HAS_PTE_SPECIAL=y
 CONFIG_MAPPING_DIRTY_HELPERS=y
 CONFIG_SECRETMEM=y
+
+#
+# Data Access Monitoring
+#
+CONFIG_DAMON=y
+CONFIG_DAMON_VADDR=y
+# CONFIG_DAMON_DBGFS is not set
+# end of Data Access Monitoring
 # end of Memory Management options
 
 CONFIG_NET=y
@@ -1077,6 +1033,7 @@ CONFIG_PACKET=y
 CONFIG_PACKET_DIAG=m
 CONFIG_UNIX=y
 CONFIG_UNIX_SCM=y
+CONFIG_AF_UNIX_OOB=y
 CONFIG_UNIX_DIAG=m
 # CONFIG_TLS is not set
 CONFIG_XFRM=y
@@ -1182,6 +1139,7 @@ CONFIG_IPV6_SEG6_LWTUNNEL=y
 CONFIG_IPV6_SEG6_HMAC=y
 CONFIG_IPV6_SEG6_BPF=y
 # CONFIG_IPV6_RPL_LWTUNNEL is not set
+# CONFIG_IPV6_IOAM6_LWTUNNEL is not set
 # CONFIG_NETLABEL is not set
 CONFIG_MPTCP=y
 CONFIG_INET_MPTCP_DIAG=m
@@ -1600,7 +1558,6 @@ CONFIG_BRIDGE_VLAN_FILTERING=y
 CONFIG_BRIDGE_MRP=y
 CONFIG_BRIDGE_CFM=y
 CONFIG_NET_DSA=m
-CONFIG_NET_DSA_TAG_8021Q=m
 CONFIG_NET_DSA_TAG_AR9331=m
 CONFIG_NET_DSA_TAG_BRCM_COMMON=m
 CONFIG_NET_DSA_TAG_BRCM=m
@@ -1768,6 +1725,7 @@ CONFIG_VSOCKETS_DIAG=m
 CONFIG_VSOCKETS_LOOPBACK=m
 CONFIG_VIRTIO_VSOCKETS=m
 CONFIG_VIRTIO_VSOCKETS_COMMON=m
+CONFIG_HYPERV_VSOCKETS=m
 CONFIG_NETLINK_DIAG=m
 CONFIG_MPLS=y
 CONFIG_NET_MPLS_GSO=y
@@ -1927,6 +1885,7 @@ CONFIG_AF_RXRPC_IPV6=y
 # CONFIG_AF_RXRPC_DEBUG is not set
 CONFIG_RXKAD=y
 # CONFIG_AF_KCM is not set
+CONFIG_MCTP=m
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
 CONFIG_WIRELESS_EXT=y
@@ -2083,11 +2042,15 @@ CONFIG_PCI_IMX6=y
 CONFIG_PCI_HISI=y
 CONFIG_PCIE_QCOM=y
 CONFIG_PCIE_ARMADA_8K=y
+CONFIG_PCIE_ROCKCHIP_DW_HOST=y
+CONFIG_PCIE_KEEMBAY=y
+CONFIG_PCIE_KEEMBAY_HOST=y
 CONFIG_PCIE_KIRIN=y
 # CONFIG_PCIE_HISI_STB is not set
 # CONFIG_PCI_MESON is not set
 CONFIG_PCIE_TEGRA194=m
 CONFIG_PCIE_TEGRA194_HOST=m
+CONFIG_PCIE_VISCONTI_HOST=y
 # CONFIG_PCIE_AL is not set
 # end of DesignWare PCI Core Support
 
@@ -2179,7 +2142,6 @@ CONFIG_MOXTET=m
 # CONFIG_HISILICON_LPC is not set
 # CONFIG_IMX_WEIM is not set
 CONFIG_QCOM_EBI2=y
-# CONFIG_SIMPLE_PM_BUS is not set
 CONFIG_SUN50I_DE2_BUS=y
 CONFIG_SUNXI_RSB=y
 CONFIG_TEGRA_ACONNECT=y
@@ -2193,6 +2155,80 @@ CONFIG_MHI_BUS_PCI_GENERIC=m
 
 CONFIG_CONNECTOR=y
 CONFIG_PROC_EVENTS=y
+
+#
+# Firmware Drivers
+#
+
+#
+# ARM System Control and Management Interface Protocol
+#
+CONFIG_ARM_SCMI_PROTOCOL=y
+CONFIG_ARM_SCMI_HAVE_TRANSPORT=y
+CONFIG_ARM_SCMI_HAVE_SHMEM=y
+CONFIG_ARM_SCMI_TRANSPORT_MAILBOX=y
+CONFIG_ARM_SCMI_TRANSPORT_SMC=y
+CONFIG_ARM_SCMI_POWER_DOMAIN=m
+# end of ARM System Control and Management Interface Protocol
+
+# CONFIG_ARM_SCPI_PROTOCOL is not set
+# CONFIG_ARM_SDE_INTERFACE is not set
+# CONFIG_FIRMWARE_MEMMAP is not set
+CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=y
+CONFIG_ISCSI_IBFT=m
+CONFIG_RASPBERRYPI_FIRMWARE=y
+# CONFIG_FW_CFG_SYSFS is not set
+CONFIG_INTEL_STRATIX10_SERVICE=m
+CONFIG_INTEL_STRATIX10_RSU=m
+CONFIG_QCOM_SCM=y
+# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set
+CONFIG_SYSFB=y
+# CONFIG_SYSFB_SIMPLEFB is not set
+# CONFIG_TURRIS_MOX_RWTM is not set
+CONFIG_ARM_FFA_TRANSPORT=m
+CONFIG_ARM_FFA_SMCCC=y
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_ESRT=y
+CONFIG_EFI_VARS_PSTORE=m
+# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
+CONFIG_EFI_SOFT_RESERVE=y
+CONFIG_EFI_PARAMS_FROM_FDT=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_GENERIC_STUB=y
+CONFIG_EFI_ARMSTUB_DTB_LOADER=y
+CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
+# CONFIG_EFI_BOOTLOADER_CONTROL is not set
+# CONFIG_EFI_CAPSULE_LOADER is not set
+# CONFIG_EFI_TEST is not set
+# CONFIG_RESET_ATTACK_MITIGATION is not set
+# CONFIG_EFI_DISABLE_PCI_DMA is not set
+# end of EFI (Extensible Firmware Interface) Support
+
+CONFIG_EFI_EARLYCON=y
+CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
+# CONFIG_IMX_DSP is not set
+CONFIG_IMX_SCU=y
+CONFIG_IMX_SCU_PD=y
+CONFIG_MESON_SM=y
+CONFIG_ARM_PSCI_FW=y
+# CONFIG_ARM_PSCI_CHECKER is not set
+CONFIG_HAVE_ARM_SMCCC=y
+CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y
+CONFIG_ARM_SMCCC_SOC_ID=y
+
+#
+# Tegra firmware driver
+#
+CONFIG_TEGRA_IVC=y
+CONFIG_TEGRA_BPMP=y
+# end of Tegra firmware driver
+# end of Firmware Drivers
+
 CONFIG_GNSS=m
 CONFIG_GNSS_SERIAL=m
 CONFIG_GNSS_MTK_SERIAL=m
@@ -2219,6 +2255,10 @@ CONFIG_MTD_OF_PARTS_LINKSYS_NS=y
 CONFIG_MTD_BLKDEVS=m
 CONFIG_MTD_BLOCK=m
 CONFIG_MTD_BLOCK_RO=m
+
+#
+# Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK.
+#
 # CONFIG_FTL is not set
 # CONFIG_NFTL is not set
 # CONFIG_INFTL is not set
@@ -2448,6 +2488,7 @@ CONFIG_TIFM_CORE=m
 CONFIG_TIFM_7XX1=m
 CONFIG_ICS932S401=m
 CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_HI6421V600_IRQ=m
 # CONFIG_HP_ILO is not set
 CONFIG_QCOM_COINCELL=m
 # CONFIG_QCOM_FASTRPC is not set
@@ -2512,6 +2553,7 @@ CONFIG_PVPANIC_PCI=m
 #
 CONFIG_SCSI_MOD=m
 CONFIG_RAID_ATTRS=m
+CONFIG_SCSI_COMMON=m
 CONFIG_SCSI=m
 CONFIG_SCSI_DMA=y
 CONFIG_SCSI_NETLINK=y
@@ -2524,6 +2566,7 @@ CONFIG_BLK_DEV_SD=m
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=m
 CONFIG_CHR_DEV_SG=m
+CONFIG_BLK_DEV_BSG=y
 CONFIG_CHR_DEV_SCH=m
 CONFIG_SCSI_ENCLOSURE=m
 CONFIG_SCSI_CONSTANTS=y
@@ -2596,10 +2639,12 @@ CONFIG_SCSI_UFSHCD_PCI=m
 # CONFIG_SCSI_UFSHCD_PLATFORM is not set
 # CONFIG_SCSI_UFS_BSG is not set
 CONFIG_SCSI_UFS_CRYPTO=y
+CONFIG_SCSI_UFS_HPB=y
 CONFIG_SCSI_HPTIOP=m
 # CONFIG_SCSI_MYRB is not set
 # CONFIG_SCSI_MYRS is not set
 CONFIG_XEN_SCSI_FRONTEND=m
+CONFIG_HYPERV_STORAGE=m
 CONFIG_LIBFC=m
 CONFIG_LIBFCOE=m
 CONFIG_FCOE=m
@@ -3071,6 +3116,8 @@ CONFIG_I40E_DCB=y
 # CONFIG_IGC is not set
 CONFIG_NET_VENDOR_MICROSOFT=y
 CONFIG_JME=m
+CONFIG_NET_VENDOR_LITEX=y
+CONFIG_LITEX_LITEETH=m
 CONFIG_NET_VENDOR_MARVELL=y
 CONFIG_MVMDIO=m
 CONFIG_MVNETA=m
@@ -3284,6 +3331,7 @@ CONFIG_LSI_ET1011C_PHY=m
 CONFIG_MARVELL_PHY=m
 CONFIG_MARVELL_10G_PHY=m
 CONFIG_MARVELL_88X2222_PHY=m
+CONFIG_MAXLINEAR_GPHY=m
 CONFIG_MEDIATEK_GE_PHY=m
 CONFIG_MICREL_PHY=m
 CONFIG_MICROCHIP_PHY=m
@@ -3309,6 +3357,10 @@ CONFIG_DP83869_PHY=m
 CONFIG_VITESSE_PHY=m
 # CONFIG_XILINX_GMII2RGMII is not set
 # CONFIG_MICREL_KS8995MA is not set
+
+#
+# MCTP Device Drivers
+#
 CONFIG_MDIO_DEVICE=m
 CONFIG_MDIO_BUS=m
 CONFIG_FWNODE_MDIO=m
@@ -3558,7 +3610,6 @@ CONFIG_P54_USB=m
 CONFIG_P54_PCI=m
 # CONFIG_P54_SPI is not set
 CONFIG_P54_LEDS=y
-# CONFIG_PRISM54 is not set
 CONFIG_WLAN_VENDOR_MARVELL=y
 CONFIG_LIBERTAS=m
 CONFIG_LIBERTAS_USB=m
@@ -3698,6 +3749,7 @@ CONFIG_IEEE802154_MCR20A=m
 CONFIG_WWAN=y
 # CONFIG_WWAN_HWSIM is not set
 CONFIG_MHI_WWAN_CTRL=m
+CONFIG_MHI_WWAN_MBIM=m
 CONFIG_RPMSG_WWAN_CTRL=m
 # end of Wireless WAN
 
@@ -3706,10 +3758,10 @@ CONFIG_XEN_NETDEV_BACKEND=m
 # CONFIG_VMXNET3 is not set
 # CONFIG_FUJITSU_ES is not set
 CONFIG_USB4_NET=m
+CONFIG_HYPERV_NET=m
 # CONFIG_NETDEVSIM is not set
 CONFIG_NET_FAILOVER=m
 # CONFIG_ISDN is not set
-# CONFIG_NVM is not set
 
 #
 # Input device support
@@ -3871,6 +3923,7 @@ CONFIG_SERIO_ALTERA_PS2=m
 # CONFIG_SERIO_PS2MULT is not set
 # CONFIG_SERIO_ARC_PS2 is not set
 # CONFIG_SERIO_APBPS2 is not set
+CONFIG_HYPERV_KEYBOARD=m
 # CONFIG_SERIO_SUN4I_PS2 is not set
 # CONFIG_SERIO_GPIO_PS2 is not set
 # CONFIG_USERIO is not set
@@ -4007,6 +4060,7 @@ CONFIG_HW_RANDOM_CAVIUM=m
 CONFIG_HW_RANDOM_OPTEE=m
 CONFIG_HW_RANDOM_CCTRNG=m
 CONFIG_HW_RANDOM_XIPHERA=m
+CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=m
 # CONFIG_APPLICOM is not set
 CONFIG_DEVMEM=y
 CONFIG_DEVPORT=y
@@ -4014,10 +4068,9 @@ CONFIG_DEVPORT=y
 CONFIG_XILLYBUS_CLASS=m
 # CONFIG_XILLYBUS is not set
 CONFIG_XILLYUSB=m
-# end of Character devices
-
 # CONFIG_RANDOM_TRUST_CPU is not set
 # CONFIG_RANDOM_TRUST_BOOTLOADER is not set
+# end of Character devices
 
 #
 # I2C support
@@ -4132,6 +4185,7 @@ CONFIG_I2C_VIPERBOARD=m
 #
 CONFIG_I2C_CROS_EC_TUNNEL=m
 CONFIG_I2C_XGENE_SLIMPRO=m
+CONFIG_I2C_VIRTIO=m
 # end of I2C Hardware Bus support
 
 # CONFIG_I2C_STUB is not set
@@ -4182,6 +4236,7 @@ CONFIG_SPI_MESON_SPIFC=m
 # CONFIG_SPI_PL022 is not set
 # CONFIG_SPI_PXA2XX is not set
 CONFIG_SPI_ROCKCHIP=m
+CONFIG_SPI_ROCKCHIP_SFC=m
 # CONFIG_SPI_QCOM_QSPI is not set
 CONFIG_SPI_QUP=m
 # CONFIG_SPI_QCOM_GENI is not set
@@ -4238,6 +4293,7 @@ CONFIG_PPS_CLIENT_PARPORT=m
 # PTP clock support
 #
 CONFIG_PTP_1588_CLOCK=y
+CONFIG_PTP_1588_CLOCK_OPTIONAL=y
 CONFIG_PTP_1588_CLOCK_QORIQ=m
 
 #
@@ -4268,6 +4324,7 @@ CONFIG_PINCTRL_MAX77620=y
 # CONFIG_PINCTRL_RK805 is not set
 # CONFIG_PINCTRL_OCELOT is not set
 # CONFIG_PINCTRL_MICROCHIP_SGPIO is not set
+CONFIG_PINCTRL_KEEMBAY=m
 CONFIG_PINCTRL_BCM2835=y
 CONFIG_PINCTRL_IMX=y
 CONFIG_PINCTRL_IMX_SCU=y
@@ -4278,6 +4335,7 @@ CONFIG_PINCTRL_IMX8MQ=y
 CONFIG_PINCTRL_IMX8QM=y
 CONFIG_PINCTRL_IMX8QXP=y
 CONFIG_PINCTRL_IMX8DXL=y
+CONFIG_PINCTRL_IMX8ULP=y
 CONFIG_PINCTRL_MVEBU=y
 CONFIG_PINCTRL_ARMADA_AP806=y
 CONFIG_PINCTRL_ARMADA_CP110=y
@@ -4292,6 +4350,7 @@ CONFIG_PINCTRL_MSM=y
 CONFIG_PINCTRL_MSM8226=m
 # CONFIG_PINCTRL_MSM8660 is not set
 # CONFIG_PINCTRL_MSM8960 is not set
+# CONFIG_PINCTRL_MDM9607 is not set
 # CONFIG_PINCTRL_MDM9615 is not set
 # CONFIG_PINCTRL_MSM8X74 is not set
 CONFIG_PINCTRL_MSM8916=y
@@ -4310,6 +4369,7 @@ CONFIG_PINCTRL_QCOM_SSBI_PMIC=y
 # CONFIG_PINCTRL_SDM660 is not set
 # CONFIG_PINCTRL_SDM845 is not set
 # CONFIG_PINCTRL_SDX55 is not set
+# CONFIG_PINCTRL_SM6115 is not set
 # CONFIG_PINCTRL_SM6125 is not set
 CONFIG_PINCTRL_SM8150=m
 CONFIG_PINCTRL_SM8250=m
@@ -4392,6 +4452,7 @@ CONFIG_GPIO_MB86S7X=m
 CONFIG_GPIO_MVEBU=y
 CONFIG_GPIO_MXC=y
 CONFIG_GPIO_PL061=y
+CONFIG_GPIO_ROCKCHIP=y
 # CONFIG_GPIO_SAMA5D2_PIOBU is not set
 CONFIG_GPIO_SIFIVE=y
 # CONFIG_GPIO_SYSCON is not set
@@ -4463,6 +4524,7 @@ CONFIG_GPIO_VIPERBOARD=m
 #
 CONFIG_GPIO_AGGREGATOR=m
 # CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_VIRTIO=m
 # end of Virtual GPIO drivers
 
 CONFIG_W1=m
@@ -4544,7 +4606,6 @@ CONFIG_BATTERY_BQ27XXX_HDQ=m
 CONFIG_CHARGER_AXP20X=m
 CONFIG_BATTERY_AXP20X=m
 CONFIG_AXP20X_POWER=m
-CONFIG_AXP288_FUEL_GAUGE=m
 # CONFIG_BATTERY_MAX17040 is not set
 # CONFIG_BATTERY_MAX17042 is not set
 # CONFIG_BATTERY_MAX1721X is not set
@@ -4556,6 +4617,7 @@ CONFIG_CHARGER_GPIO=m
 # CONFIG_CHARGER_LT3651 is not set
 # CONFIG_CHARGER_LTC4162L is not set
 # CONFIG_CHARGER_DETECTOR_MAX14656 is not set
+# CONFIG_CHARGER_MT6360 is not set
 CONFIG_CHARGER_QCOM_SMBB=m
 # CONFIG_CHARGER_BQ2415X is not set
 # CONFIG_CHARGER_BQ24190 is not set
@@ -4571,6 +4633,7 @@ CONFIG_BATTERY_GOLDFISH=m
 CONFIG_BATTERY_RT5033=m
 # CONFIG_CHARGER_RT9455 is not set
 CONFIG_CHARGER_CROS_USBPD=m
+CONFIG_CHARGER_CROS_PCHG=m
 # CONFIG_CHARGER_UCS1002 is not set
 CONFIG_CHARGER_BD99954=m
 CONFIG_HWMON=y
@@ -4597,6 +4660,7 @@ CONFIG_SENSORS_ADT7462=m
 CONFIG_SENSORS_ADT7470=m
 CONFIG_SENSORS_ADT7475=m
 CONFIG_SENSORS_AHT10=m
+CONFIG_SENSORS_AQUACOMPUTER_D5NEXT=m
 # CONFIG_SENSORS_AS370 is not set
 CONFIG_SENSORS_ASC7621=m
 CONFIG_SENSORS_AXI_FAN_CONTROL=m
@@ -4688,6 +4752,7 @@ CONFIG_SENSORS_NZXT_KRAKEN2=m
 # CONFIG_SENSORS_PWM_FAN is not set
 CONFIG_SENSORS_RASPBERRYPI_HWMON=m
 CONFIG_SENSORS_SBTSI=m
+CONFIG_SENSORS_SBRMI=m
 # CONFIG_SENSORS_SHT15 is not set
 CONFIG_SENSORS_SHT21=m
 # CONFIG_SENSORS_SHT3x is not set
@@ -4795,6 +4860,7 @@ CONFIG_TEGRA_SOCTHERM=y
 CONFIG_QCOM_TSENS=m
 CONFIG_QCOM_SPMI_ADC_TM5=m
 CONFIG_QCOM_SPMI_TEMP_ALARM=m
+CONFIG_QCOM_LMH=m
 # end of Qualcomm thermal drivers
 
 CONFIG_KHADAS_MCU_FAN_THERMAL=m
@@ -4815,7 +4881,6 @@ CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT=y
 # Watchdog Device Drivers
 #
 CONFIG_SOFT_WATCHDOG=m
-CONFIG_BD70528_WATCHDOG=m
 CONFIG_BD957XMUF_WATCHDOG=m
 CONFIG_GPIO_WATCHDOG=m
 # CONFIG_WDAT_WDT is not set
@@ -4921,6 +4986,7 @@ CONFIG_MFD_MADERA_SPI=m
 # CONFIG_MFD_MC13XXX_I2C is not set
 CONFIG_MFD_MP2629=m
 # CONFIG_MFD_HI6421_PMIC is not set
+CONFIG_MFD_HI6421_SPMI=m
 CONFIG_MFD_HI655X_PMIC=m
 # CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_I2CPLD is not set
@@ -5015,6 +5081,8 @@ CONFIG_MFD_QCOM_PM8008=m
 CONFIG_MFD_VEXPRESS_SYSREG=y
 # CONFIG_RAVE_SP_CORE is not set
 # CONFIG_MFD_INTEL_M10_BMC is not set
+CONFIG_MFD_RSMU_I2C=m
+CONFIG_MFD_RSMU_SPI=m
 # end of Multifunction device drivers
 
 CONFIG_REGULATOR=y
@@ -5086,7 +5154,9 @@ CONFIG_REGULATOR_RT4801=m
 CONFIG_REGULATOR_RT4831=m
 CONFIG_REGULATOR_RT6160=m
 CONFIG_REGULATOR_RT6245=m
+CONFIG_REGULATOR_RTQ2134=m
 CONFIG_REGULATOR_RTMV20=m
+CONFIG_REGULATOR_RTQ6752=m
 CONFIG_REGULATOR_SLG51000=m
 CONFIG_REGULATOR_SY8106A=m
 CONFIG_REGULATOR_SY8824X=m
@@ -5127,6 +5197,7 @@ CONFIG_IR_MCEUSB=m
 # CONFIG_IR_ITE_CIR is not set
 # CONFIG_IR_FINTEK is not set
 # CONFIG_IR_MESON is not set
+# CONFIG_IR_MESON_TX is not set
 # CONFIG_IR_NUVOTON is not set
 CONFIG_IR_REDRAT3=m
 # CONFIG_IR_SPI is not set
@@ -5662,7 +5733,9 @@ CONFIG_VIDEO_IMX274=m
 CONFIG_VIDEO_IMX290=m
 CONFIG_VIDEO_IMX319=m
 CONFIG_VIDEO_IMX334=m
+CONFIG_VIDEO_IMX335=m
 CONFIG_VIDEO_IMX355=m
+CONFIG_VIDEO_IMX412=m
 CONFIG_VIDEO_OV02A10=m
 CONFIG_VIDEO_OV2640=m
 CONFIG_VIDEO_OV2659=m
@@ -5684,6 +5757,7 @@ CONFIG_VIDEO_OV7670=m
 CONFIG_VIDEO_OV7740=m
 CONFIG_VIDEO_OV8856=m
 CONFIG_VIDEO_OV8865=m
+CONFIG_VIDEO_OV9282=m
 CONFIG_VIDEO_OV9640=m
 CONFIG_VIDEO_OV9650=m
 CONFIG_VIDEO_OV9734=m
@@ -5969,6 +6043,7 @@ CONFIG_TEGRA_HOST1X_FIREWALL=y
 CONFIG_DRM=m
 CONFIG_DRM_MIPI_DBI=m
 CONFIG_DRM_MIPI_DSI=y
+CONFIG_DRM_DP_AUX_BUS=m
 CONFIG_DRM_DP_AUX_CHARDEV=y
 # CONFIG_DRM_DEBUG_SELFTEST is not set
 CONFIG_DRM_KMS_HELPER=m
@@ -6055,7 +6130,6 @@ CONFIG_DRM_AST=m
 # CONFIG_DRM_RCAR_LVDS is not set
 # CONFIG_DRM_SUN4I is not set
 CONFIG_DRM_QXL=m
-CONFIG_DRM_BOCHS=m
 CONFIG_DRM_VIRTIO_GPU=m
 CONFIG_DRM_MSM=m
 CONFIG_DRM_MSM_GPU_STATE=y
@@ -6090,7 +6164,9 @@ CONFIG_DRM_PANEL_ELIDA_KD35T133=m
 CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m
 # CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set
 # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
+# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set
 # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set
+# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set
 # CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
 # CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
 CONFIG_DRM_PANEL_KHADAS_TS050=m
@@ -6113,6 +6189,8 @@ CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS=m
 # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
 # CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
 # CONFIG_DRM_PANEL_RONBO_RB070D30 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set
 # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
 # CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
 # CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set
@@ -6135,6 +6213,7 @@ CONFIG_DRM_PANEL_SONY_ACX424AKP=m
 # CONFIG_DRM_PANEL_TPO_TPG110 is not set
 # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
 # CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set
+# CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set
 CONFIG_DRM_PANEL_XINPENG_XPP055C272=m
 # end of Display Panels
 
@@ -6199,6 +6278,7 @@ CONFIG_DRM_HISI_KIRIN=m
 CONFIG_DRM_MESON=m
 CONFIG_DRM_MESON_DW_HDMI=m
 # CONFIG_DRM_ARCPGU is not set
+CONFIG_DRM_BOCHS=m
 CONFIG_DRM_CIRRUS_QEMU=m
 CONFIG_DRM_GM12U320=m
 CONFIG_DRM_SIMPLEDRM=m
@@ -6217,6 +6297,7 @@ CONFIG_DRM_LIMA=m
 CONFIG_DRM_PANFROST=m
 CONFIG_DRM_TIDSS=m
 CONFIG_DRM_GUD=m
+CONFIG_DRM_HYPERV=m
 CONFIG_DRM_LEGACY=y
 # CONFIG_DRM_TDFX is not set
 # CONFIG_DRM_R128 is not set
@@ -6292,7 +6373,8 @@ CONFIG_FB_MB862XX=m
 CONFIG_FB_MB862XX_PCI_GDC=y
 CONFIG_FB_MB862XX_I2C=y
 # CONFIG_FB_MX3 is not set
-CONFIG_FB_SIMPLE=y
+CONFIG_FB_HYPERV=m
+CONFIG_FB_SIMPLE=m
 # CONFIG_FB_SSD1307 is not set
 # CONFIG_FB_SM712 is not set
 # end of Frame buffer Devices
@@ -6489,6 +6571,7 @@ CONFIG_SND_HDA_CODEC_SIGMATEL=m
 CONFIG_SND_HDA_CODEC_VIA=m
 CONFIG_SND_HDA_CODEC_HDMI=m
 CONFIG_SND_HDA_CODEC_CIRRUS=m
+CONFIG_SND_HDA_CODEC_CS8409=m
 CONFIG_SND_HDA_CODEC_CONEXANT=m
 CONFIG_SND_HDA_CODEC_CA0110=m
 CONFIG_SND_HDA_CODEC_CA0132=m
@@ -6744,6 +6827,7 @@ CONFIG_SND_SOC_ES8328=m
 CONFIG_SND_SOC_ES8328_I2C=m
 CONFIG_SND_SOC_ES8328_SPI=m
 # CONFIG_SND_SOC_GTM601 is not set
+CONFIG_SND_SOC_ICS43432=m
 # CONFIG_SND_SOC_INNO_RK3036 is not set
 # CONFIG_SND_SOC_MAX98088 is not set
 CONFIG_SND_SOC_MAX98090=m
@@ -6978,6 +7062,7 @@ CONFIG_HID_SUNPLUS=m
 CONFIG_HID_RMI=m
 CONFIG_HID_GREENASIA=m
 CONFIG_GREENASIA_FF=y
+CONFIG_HID_HYPERV_MOUSE=m
 CONFIG_HID_SMARTJOYPLUS=m
 CONFIG_SMARTJOYPLUS_FF=y
 CONFIG_HID_TIVO=m
@@ -7035,7 +7120,7 @@ CONFIG_SURFACE_HID_CORE=m
 
 CONFIG_USB_OHCI_LITTLE_ENDIAN=y
 CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
+CONFIG_USB_COMMON=m
 CONFIG_USB_LED_TRIG=y
 CONFIG_USB_ULPI_BUS=m
 CONFIG_USB_CONN_GPIO=m
@@ -7871,6 +7956,7 @@ CONFIG_SYNC_FILE=y
 # CONFIG_DMABUF_DEBUG is not set
 # CONFIG_DMABUF_SELFTESTS is not set
 # CONFIG_DMABUF_HEAPS is not set
+# CONFIG_DMABUF_SYSFS_STATS is not set
 # end of DMABUF options
 
 # CONFIG_AUXDISPLAY is not set
@@ -7885,13 +7971,15 @@ CONFIG_UIO_PCI_GENERIC=m
 CONFIG_UIO_NETX=m
 # CONFIG_UIO_PRUSS is not set
 CONFIG_UIO_MF624=m
+CONFIG_UIO_HV_GENERIC=m
+CONFIG_VFIO=m
 CONFIG_VFIO_IOMMU_TYPE1=m
 CONFIG_VFIO_VIRQFD=m
-CONFIG_VFIO=m
 CONFIG_VFIO_NOIOMMU=y
-CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_CORE=m
 CONFIG_VFIO_PCI_MMAP=y
 CONFIG_VFIO_PCI_INTX=y
+CONFIG_VFIO_PCI=m
 # CONFIG_VFIO_PLATFORM is not set
 # CONFIG_VFIO_MDEV is not set
 CONFIG_VIRT_DRIVERS=y
@@ -7909,11 +7997,13 @@ CONFIG_VIRTIO_MMIO=m
 CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
 CONFIG_VDPA=m
 # CONFIG_VDPA_SIM is not set
+CONFIG_VDPA_USER=m
 CONFIG_IFCVF=m
 CONFIG_MLX5_VDPA=y
 CONFIG_MLX5_VDPA_NET=m
 CONFIG_VP_VDPA=m
 CONFIG_VHOST_IOTLB=m
+CONFIG_VHOST_RING=m
 CONFIG_VHOST=m
 CONFIG_VHOST_MENU=y
 CONFIG_VHOST_NET=m
@@ -7925,6 +8015,9 @@ CONFIG_VHOST_VDPA=m
 #
 # Microsoft Hyper-V guest support
 #
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_HYPERV_BALLOON=m
 # end of Microsoft Hyper-V guest support
 
 #
@@ -8035,6 +8128,7 @@ CONFIG_88EU_AP_MODE=y
 # CONFIG_FIREWIRE_SERIAL is not set
 # CONFIG_GS_FPGABOOT is not set
 # CONFIG_UNISYSSPAR is not set
+CONFIG_COMMON_CLK_XLNX_CLKWZRD=m
 # CONFIG_FB_TFT is not set
 # CONFIG_KS7010 is not set
 CONFIG_BCM_VIDEOCORE=y
@@ -8046,7 +8140,6 @@ CONFIG_BCM_VIDEOCORE=y
 # CONFIG_FIELDBUS_DEV is not set
 CONFIG_QLGE=m
 CONFIG_WFX=m
-CONFIG_MFD_HI6421_SPMI=m
 # CONFIG_GOLDFISH is not set
 CONFIG_CHROME_PLATFORMS=y
 CONFIG_CHROMEOS_TBMC=m
@@ -8184,8 +8277,10 @@ CONFIG_MDM_GCC_9607=m
 # CONFIG_MDM_GCC_9615 is not set
 # CONFIG_MDM_LCC_9615 is not set
 # CONFIG_MSM_MMCC_8960 is not set
+# CONFIG_MSM_GCC_8953 is not set
 # CONFIG_MSM_GCC_8974 is not set
 # CONFIG_MSM_MMCC_8974 is not set
+# CONFIG_MSM_MMCC_8994 is not set
 # CONFIG_MSM_GCC_8994 is not set
 CONFIG_MSM_GCC_8996=y
 CONFIG_MSM_MMCC_8996=y
@@ -8195,13 +8290,16 @@ CONFIG_MSM_MMCC_8996=y
 # CONFIG_QCS_GCC_404 is not set
 # CONFIG_SC_CAMCC_7180 is not set
 # CONFIG_SC_DISPCC_7180 is not set
+# CONFIG_SC_DISPCC_7280 is not set
 CONFIG_SC_GCC_7180=m
 CONFIG_SC_GCC_7280=m
 CONFIG_SC_GCC_8180X=m
 CONFIG_SC_LPASS_CORECC_7180=m
 # CONFIG_SC_GPUCC_7180 is not set
+# CONFIG_SC_GPUCC_7280 is not set
 # CONFIG_SC_MSS_7180 is not set
 # CONFIG_SC_VIDEOCC_7180 is not set
+# CONFIG_SC_VIDEOCC_7280 is not set
 # CONFIG_SDM_CAMCC_845 is not set
 CONFIG_SDM_GCC_660=m
 CONFIG_SDM_MMCC_660=m
@@ -8216,7 +8314,9 @@ CONFIG_SDM_LPASSCC_845=m
 CONFIG_SDX_GCC_55=m
 CONFIG_SM_CAMCC_8250=m
 CONFIG_SM_DISPCC_8250=m
+# CONFIG_SM_GCC_6115 is not set
 CONFIG_SM_GCC_6125=m
+# CONFIG_SM_GCC_6350 is not set
 # CONFIG_SM_GCC_8150 is not set
 CONFIG_SM_GCC_8250=m
 CONFIG_SM_GCC_8350=m
@@ -8314,6 +8414,8 @@ CONFIG_IOMMU_IO_PGTABLE_LPAE=y
 # end of Generic IOMMU Pagetable Support
 
 # CONFIG_IOMMU_DEBUGFS is not set
+# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set
+CONFIG_IOMMU_DEFAULT_DMA_LAZY=y
 # CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
 CONFIG_OF_IOMMU=y
 CONFIG_IOMMU_DMA=y
@@ -8321,9 +8423,11 @@ CONFIG_IOMMU_SVA_LIB=y
 CONFIG_ROCKCHIP_IOMMU=y
 CONFIG_SUN50I_IOMMU=y
 CONFIG_TEGRA_IOMMU_SMMU=y
+CONFIG_APPLE_DART=y
 CONFIG_ARM_SMMU=y
 # CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
 CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y
+CONFIG_ARM_SMMU_QCOM=y
 CONFIG_ARM_SMMU_V3=y
 CONFIG_ARM_SMMU_V3_SVA=y
 CONFIG_QCOM_IOMMU=y
@@ -8642,6 +8746,7 @@ CONFIG_SCD30_CORE=m
 CONFIG_SCD30_I2C=m
 CONFIG_SCD30_SERIAL=m
 # CONFIG_SENSIRION_SGP30 is not set
+# CONFIG_SENSIRION_SGP40 is not set
 # CONFIG_SPS30_I2C is not set
 # CONFIG_SPS30_SERIAL is not set
 # CONFIG_VZ89X is not set
@@ -8901,6 +9006,7 @@ CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE=m
 #
 # Digital potentiometers
 #
+CONFIG_AD5110=m
 # CONFIG_AD5272 is not set
 # CONFIG_DS1803 is not set
 # CONFIG_MAX5432 is not set
@@ -9299,12 +9405,12 @@ CONFIG_F2FS_FS_SECURITY=y
 # CONFIG_F2FS_CHECK_FS is not set
 # CONFIG_F2FS_FAULT_INJECTION is not set
 # CONFIG_F2FS_FS_COMPRESSION is not set
+# CONFIG_F2FS_IOSTAT is not set
 CONFIG_FS_DAX=y
 CONFIG_FS_POSIX_ACL=y
 CONFIG_EXPORTFS=y
 CONFIG_EXPORTFS_BLOCK_OPS=y
 CONFIG_FILE_LOCKING=y
-CONFIG_MANDATORY_FILE_LOCKING=y
 # CONFIG_FS_ENCRYPTION is not set
 CONFIG_FS_VERITY=y
 # CONFIG_FS_VERITY_DEBUG is not set
@@ -9339,15 +9445,12 @@ CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
 # Caches
 #
 CONFIG_NETFS_SUPPORT=m
-# CONFIG_NETFS_STATS is not set
+CONFIG_NETFS_STATS=y
 CONFIG_FSCACHE=m
 CONFIG_FSCACHE_STATS=y
-# CONFIG_FSCACHE_HISTOGRAM is not set
 # CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
 CONFIG_CACHEFILES=m
 # CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
 # end of Caches
 
 #
@@ -9373,6 +9476,10 @@ CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
 CONFIG_NTFS_FS=m
 # CONFIG_NTFS_DEBUG is not set
 # CONFIG_NTFS_RW is not set
+CONFIG_NTFS3_FS=m
+# CONFIG_NTFS3_64BIT_CLUSTER is not set
+CONFIG_NTFS3_LZX_XPRESS=y
+# CONFIG_NTFS3_FS_POSIX_ACL is not set
 # end of DOS/FAT/EXFAT/NT Filesystems
 
 #
@@ -9483,6 +9590,7 @@ CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
 # CONFIG_PSTORE_PMSG is not set
 # CONFIG_PSTORE_FTRACE is not set
 CONFIG_PSTORE_RAM=m
+# CONFIG_PSTORE_BLK is not set
 CONFIG_SYSV_FS=m
 CONFIG_UFS_FS=m
 # CONFIG_UFS_FS_WRITE is not set
@@ -9546,7 +9654,6 @@ CONFIG_CEPH_FS_SECURITY_LABEL=y
 CONFIG_CIFS=m
 # CONFIG_CIFS_STATS2 is not set
 CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
-CONFIG_CIFS_WEAK_PW_HASH=y
 CONFIG_CIFS_UPCALL=y
 CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
@@ -9557,6 +9664,8 @@ CONFIG_CIFS_DFS_UPCALL=y
 CONFIG_CIFS_SWN_UPCALL=y
 # CONFIG_CIFS_SMB_DIRECT is not set
 CONFIG_CIFS_FSCACHE=y
+# CONFIG_SMB_SERVER is not set
+CONFIG_SMBFS_COMMON=m
 CONFIG_CODA_FS=m
 CONFIG_AFS_FS=m
 # CONFIG_AFS_DEBUG is not set
@@ -9688,13 +9797,24 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity,apparmor,selinux,smack,tomoyo"
 #
 # Kernel hardening options
 #
+CONFIG_GCC_PLUGIN_STRUCTLEAK=y
 
 #
 # Memory initialization
 #
-CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_NONE is not set
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set
+CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=y
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE is not set
+CONFIG_GCC_PLUGIN_STACKLEAK=y
+CONFIG_STACKLEAK_TRACK_MIN_SIZE=100
+# CONFIG_STACKLEAK_METRICS is not set
+CONFIG_STACKLEAK_RUNTIME_DISABLE=y
 CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
 # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
+# CONFIG_ZERO_CALL_USED_REGS is not set
 # end of Memory initialization
 # end of Kernel hardening options
 # end of Security options
@@ -9885,6 +10005,7 @@ CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
 CONFIG_CRYPTO_LIB_POLY1305=m
 CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
 CONFIG_CRYPTO_LIB_SHA256=y
+CONFIG_CRYPTO_LIB_SM4=m
 CONFIG_CRYPTO_HW=y
 CONFIG_CRYPTO_DEV_ALLWINNER=y
 CONFIG_CRYPTO_DEV_SUN4I_SS=m
@@ -10065,6 +10186,7 @@ CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
 CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
 CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
 CONFIG_SWIOTLB=y
+CONFIG_DMA_RESTRICTED_POOL=y
 CONFIG_DMA_NONCOHERENT_MMAP=y
 CONFIG_DMA_COHERENT_POOL=y
 CONFIG_DMA_REMAP=y
@@ -10188,6 +10310,7 @@ CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
 CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
 # CONFIG_UBSAN is not set
+CONFIG_HAVE_KCSAN_COMPILER=y
 # end of Generic Kernel Debugging Instruments
 
 CONFIG_DEBUG_KERNEL=y
@@ -10228,9 +10351,9 @@ CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
 # CONFIG_KASAN is not set
 CONFIG_HAVE_ARCH_KFENCE=y
 CONFIG_KFENCE=y
-CONFIG_KFENCE_STATIC_KEYS=y
 CONFIG_KFENCE_SAMPLE_INTERVAL=0
 CONFIG_KFENCE_NUM_OBJECTS=255
+CONFIG_KFENCE_STATIC_KEYS=y
 CONFIG_KFENCE_STRESS_TEST_FAULTS=0
 # end of Memory Debugging
 
@@ -10313,7 +10436,6 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=21
 # end of RCU Debugging
 
 # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
 # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
 # CONFIG_LATENCYTOP is not set
 CONFIG_NOP_TRACER=y
@@ -10402,7 +10524,6 @@ CONFIG_CC_HAS_SANCOV_TRACE_PC=y
 CONFIG_RUNTIME_TESTING_MENU=y
 # CONFIG_LKDTM is not set
 # CONFIG_TEST_MIN_HEAP is not set
-# CONFIG_TEST_SORT is not set
 # CONFIG_TEST_DIV64 is not set
 # CONFIG_KPROBES_SANITY_TEST is not set
 # CONFIG_BACKTRACE_SELF_TEST is not set
@@ -10444,5 +10565,6 @@ CONFIG_TEST_STATIC_KEYS=m
 # CONFIG_TEST_FREE_PAGES is not set
 CONFIG_ARCH_USE_MEMTEST=y
 # CONFIG_MEMTEST is not set
+# CONFIG_HYPERV_TESTING is not set
 # end of Kernel Testing and Coverage
 # end of Kernel hacking
diff --git a/gnu/packages/aux-files/linux-libre/5.14-i686.conf b/gnu/packages/aux-files/linux-libre/5.15-i686.conf
index bcca80c348..0f254cd2a5 100644
--- a/gnu/packages/aux-files/linux-libre/5.14-i686.conf
+++ b/gnu/packages/aux-files/linux-libre/5.15-i686.conf
@@ -1,17 +1,18 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/i386 5.14.0 Kernel Configuration
+# Linux/i386 5.15.5 Kernel Configuration
 #
-CONFIG_CC_VERSION_TEXT="gcc (Debian 8.3.0-6) 8.3.0"
+CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
 CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=80300
+CONFIG_GCC_VERSION=110200
 CONFIG_CLANG_VERSION=0
 CONFIG_AS_IS_GNU=y
-CONFIG_AS_VERSION=23101
+CONFIG_AS_VERSION=23400
 CONFIG_LD_IS_BFD=y
-CONFIG_LD_VERSION=23101
+CONFIG_LD_VERSION=23400
 CONFIG_LLD_VERSION=0
 CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
 CONFIG_CC_HAS_ASM_INLINE=y
 CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
 CONFIG_IRQ_WORK=y
@@ -23,6 +24,7 @@ CONFIG_THREAD_INFO_IN_TASK=y
 #
 CONFIG_INIT_ENV_ARG_LIMIT=32
 # CONFIG_COMPILE_TEST is not set
+# CONFIG_WERROR is not set
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_BUILD_SALT=""
@@ -152,6 +154,7 @@ CONFIG_BUILD_BIN2C=y
 CONFIG_LOG_BUF_SHIFT=18
 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
+# CONFIG_PRINTK_INDEX is not set
 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
 
 #
@@ -221,7 +224,6 @@ CONFIG_SYSFS_SYSCALL=y
 CONFIG_FHANDLE=y
 CONFIG_POSIX_TIMERS=y
 CONFIG_PRINTK=y
-CONFIG_PRINTK_NMI=y
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
 CONFIG_PCSPKR_PLATFORM=y
@@ -294,6 +296,7 @@ CONFIG_HAVE_SETUP_PER_CPU_AREA=y
 CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
 CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_NR_GPIO=512
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
 CONFIG_HAVE_INTEL_TXT=y
@@ -417,6 +420,7 @@ CONFIG_PERF_EVENTS_INTEL_UNCORE=y
 CONFIG_PERF_EVENTS_INTEL_RAPL=y
 CONFIG_PERF_EVENTS_INTEL_CSTATE=y
 CONFIG_PERF_EVENTS_AMD_POWER=m
+CONFIG_PERF_EVENTS_AMD_UNCORE=m
 # end of Performance monitoring
 
 # CONFIG_X86_LEGACY_VM86 is not set
@@ -663,7 +667,6 @@ CONFIG_ALIX=y
 CONFIG_NET5501=y
 CONFIG_GEOS=y
 CONFIG_AMD_NB=y
-# CONFIG_X86_SYSFB is not set
 # end of Bus options (PCI etc.)
 
 #
@@ -673,55 +676,6 @@ CONFIG_COMPAT_32=y
 # end of Binary Emulations
 
 CONFIG_HAVE_ATOMIC_IOMAP=y
-
-#
-# Firmware Drivers
-#
-CONFIG_EDD=y
-CONFIG_EDD_OFF=y
-CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_DMIID=y
-CONFIG_DMI_SYSFS=m
-CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
-CONFIG_ISCSI_IBFT_FIND=y
-CONFIG_ISCSI_IBFT=m
-CONFIG_FW_CFG_SYSFS=m
-# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
-
-#
-# EFI (Extensible Firmware Interface) Support
-#
-CONFIG_EFI_VARS=y
-CONFIG_EFI_ESRT=y
-CONFIG_EFI_VARS_PSTORE=m
-# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
-CONFIG_EFI_RUNTIME_MAP=y
-# CONFIG_EFI_FAKE_MEMMAP is not set
-CONFIG_EFI_RUNTIME_WRAPPERS=y
-CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
-CONFIG_EFI_BOOTLOADER_CONTROL=m
-CONFIG_EFI_CAPSULE_LOADER=y
-CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH=y
-# CONFIG_EFI_TEST is not set
-CONFIG_APPLE_PROPERTIES=y
-CONFIG_RESET_ATTACK_MITIGATION=y
-# CONFIG_EFI_RCI2_TABLE is not set
-# CONFIG_EFI_DISABLE_PCI_DMA is not set
-# end of EFI (Extensible Firmware Interface) Support
-
-CONFIG_UEFI_CPER=y
-CONFIG_UEFI_CPER_X86=y
-CONFIG_EFI_DEV_PATH_PARSER=y
-CONFIG_EFI_EARLYCON=y
-CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
-
-#
-# Tegra firmware driver
-#
-# end of Tegra firmware driver
-# end of Firmware Drivers
-
 CONFIG_HAVE_KVM=y
 CONFIG_HAVE_KVM_IRQCHIP=y
 CONFIG_HAVE_KVM_IRQFD=y
@@ -774,6 +728,7 @@ CONFIG_HAVE_OPTPROBES=y
 CONFIG_HAVE_KPROBES_ON_FTRACE=y
 CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
 CONFIG_HAVE_NMI=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_HAVE_ARCH_TRACEHOOK=y
 CONFIG_HAVE_DMA_CONTIGUOUS=y
 CONFIG_GENERIC_SMP_IDLE_THREAD=y
@@ -850,6 +805,7 @@ CONFIG_HAVE_PREEMPT_DYNAMIC=y
 CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
 CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
 CONFIG_ARCH_SPLIT_ARG64=y
+CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y
 
 #
 # GCOV-based kernel profiling
@@ -859,6 +815,10 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
 # end of GCOV-based kernel profiling
 
 CONFIG_HAVE_GCC_PLUGINS=y
+CONFIG_GCC_PLUGINS=y
+# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
+CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
+# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set
 # end of General architecture-dependent options
 
 CONFIG_RT_MUTEXES=y
@@ -881,16 +841,14 @@ CONFIG_MODPROBE_PATH="/run/current-system/profile/bin/modprobe"
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_BLOCK=y
 CONFIG_BLK_RQ_ALLOC_TIME=y
-CONFIG_BLK_SCSI_REQUEST=y
 CONFIG_BLK_CGROUP_RWSTAT=y
-CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSG_COMMON=y
 CONFIG_BLK_DEV_BSGLIB=y
 CONFIG_BLK_DEV_INTEGRITY=y
 CONFIG_BLK_DEV_INTEGRITY_T10=y
 CONFIG_BLK_DEV_ZONED=y
 CONFIG_BLK_DEV_THROTTLING=y
 # CONFIG_BLK_DEV_THROTTLING_LOW is not set
-CONFIG_BLK_CMDLINE_PARSER=y
 CONFIG_BLK_WBT=y
 CONFIG_BLK_WBT_MQ=y
 # CONFIG_BLK_CGROUP_IOLATENCY is not set
@@ -933,6 +891,7 @@ CONFIG_BLK_MQ_PCI=y
 CONFIG_BLK_MQ_VIRTIO=y
 CONFIG_BLK_MQ_RDMA=y
 CONFIG_BLK_PM=y
+CONFIG_BLOCK_HOLDER_DEPRECATED=y
 
 #
 # IO Schedulers
@@ -1029,6 +988,7 @@ CONFIG_Z3FOLD=m
 CONFIG_ZSMALLOC=y
 # CONFIG_ZSMALLOC_STAT is not set
 CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_PAGE_IDLE_FLAG=y
 CONFIG_IDLE_PAGE_TRACKING=y
 CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
 CONFIG_ARCH_HAS_ZONE_DMA_SET=y
@@ -1043,6 +1003,14 @@ CONFIG_ARCH_HAS_PTE_SPECIAL=y
 CONFIG_MAPPING_DIRTY_HELPERS=y
 CONFIG_KMAP_LOCAL=y
 CONFIG_SECRETMEM=y
+
+#
+# Data Access Monitoring
+#
+CONFIG_DAMON=y
+CONFIG_DAMON_VADDR=y
+# CONFIG_DAMON_DBGFS is not set
+# end of Data Access Monitoring
 # end of Memory Management options
 
 CONFIG_NET=y
@@ -1058,6 +1026,7 @@ CONFIG_PACKET=y
 CONFIG_PACKET_DIAG=m
 CONFIG_UNIX=y
 CONFIG_UNIX_SCM=y
+CONFIG_AF_UNIX_OOB=y
 CONFIG_UNIX_DIAG=m
 CONFIG_TLS=m
 # CONFIG_TLS_DEVICE is not set
@@ -1167,6 +1136,7 @@ CONFIG_IPV6_PIMSM_V2=y
 # CONFIG_IPV6_SEG6_LWTUNNEL is not set
 # CONFIG_IPV6_SEG6_HMAC is not set
 # CONFIG_IPV6_RPL_LWTUNNEL is not set
+# CONFIG_IPV6_IOAM6_LWTUNNEL is not set
 CONFIG_NETLABEL=y
 CONFIG_MPTCP=y
 CONFIG_INET_MPTCP_DIAG=m
@@ -1589,7 +1559,6 @@ CONFIG_BRIDGE_VLAN_FILTERING=y
 CONFIG_BRIDGE_MRP=y
 CONFIG_BRIDGE_CFM=y
 CONFIG_NET_DSA=m
-CONFIG_NET_DSA_TAG_8021Q=m
 CONFIG_NET_DSA_TAG_AR9331=m
 CONFIG_NET_DSA_TAG_BRCM_COMMON=m
 CONFIG_NET_DSA_TAG_BRCM=m
@@ -1965,6 +1934,7 @@ CONFIG_AF_RXRPC_IPV6=y
 # CONFIG_RXKAD is not set
 CONFIG_AF_KCM=m
 CONFIG_STREAM_PARSER=y
+CONFIG_MCTP=m
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
 CONFIG_WIRELESS_EXT=y
@@ -2100,7 +2070,6 @@ CONFIG_PCI_QUIRKS=y
 CONFIG_PCI_REALLOC_ENABLE_AUTO=y
 CONFIG_PCI_STUB=m
 # CONFIG_PCI_PF_STUB is not set
-CONFIG_XEN_PCIDEV_FRONTEND=m
 CONFIG_PCI_ATS=y
 CONFIG_PCI_LOCKLESS_CONFIG=y
 CONFIG_PCI_IOV=y
@@ -2259,6 +2228,69 @@ CONFIG_MHI_BUS_PCI_GENERIC=m
 
 CONFIG_CONNECTOR=y
 CONFIG_PROC_EVENTS=y
+
+#
+# Firmware Drivers
+#
+
+#
+# ARM System Control and Management Interface Protocol
+#
+# end of ARM System Control and Management Interface Protocol
+
+CONFIG_EDD=y
+CONFIG_EDD_OFF=y
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=m
+CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
+CONFIG_ISCSI_IBFT_FIND=y
+CONFIG_ISCSI_IBFT=m
+CONFIG_FW_CFG_SYSFS=m
+# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
+CONFIG_SYSFB=y
+CONFIG_SYSFB_SIMPLEFB=y
+CONFIG_GOOGLE_FIRMWARE=y
+# CONFIG_GOOGLE_SMI is not set
+CONFIG_GOOGLE_COREBOOT_TABLE=m
+# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
+CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
+# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
+# CONFIG_GOOGLE_VPD is not set
+
+#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_VARS=y
+CONFIG_EFI_ESRT=y
+CONFIG_EFI_VARS_PSTORE=m
+# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
+CONFIG_EFI_RUNTIME_MAP=y
+# CONFIG_EFI_FAKE_MEMMAP is not set
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
+CONFIG_EFI_BOOTLOADER_CONTROL=m
+CONFIG_EFI_CAPSULE_LOADER=y
+CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH=y
+# CONFIG_EFI_TEST is not set
+CONFIG_APPLE_PROPERTIES=y
+CONFIG_RESET_ATTACK_MITIGATION=y
+# CONFIG_EFI_RCI2_TABLE is not set
+# CONFIG_EFI_DISABLE_PCI_DMA is not set
+# end of EFI (Extensible Firmware Interface) Support
+
+CONFIG_UEFI_CPER=y
+CONFIG_UEFI_CPER_X86=y
+CONFIG_EFI_DEV_PATH_PARSER=y
+CONFIG_EFI_EARLYCON=y
+CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
+
+#
+# Tegra firmware driver
+#
+# end of Tegra firmware driver
+# end of Firmware Drivers
+
 CONFIG_GNSS=m
 CONFIG_GNSS_SERIAL=m
 CONFIG_GNSS_MTK_SERIAL=m
@@ -2284,6 +2316,10 @@ CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
 CONFIG_MTD_BLKDEVS=m
 CONFIG_MTD_BLOCK=m
 CONFIG_MTD_BLOCK_RO=m
+
+#
+# Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK.
+#
 CONFIG_FTL=m
 CONFIG_NFTL=m
 CONFIG_NFTL_RW=y
@@ -2625,6 +2661,7 @@ CONFIG_PVPANIC_PCI=m
 #
 CONFIG_SCSI_MOD=y
 CONFIG_RAID_ATTRS=m
+CONFIG_SCSI_COMMON=y
 CONFIG_SCSI=y
 CONFIG_SCSI_DMA=y
 CONFIG_SCSI_NETLINK=y
@@ -2637,6 +2674,7 @@ CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
 CONFIG_CHR_DEV_SG=y
+CONFIG_BLK_DEV_BSG=y
 CONFIG_CHR_DEV_SCH=m
 CONFIG_SCSI_ENCLOSURE=m
 CONFIG_SCSI_CONSTANTS=y
@@ -2713,6 +2751,7 @@ CONFIG_SCSI_UFS_CDNS_PLATFORM=m
 # CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
 # CONFIG_SCSI_UFS_BSG is not set
 CONFIG_SCSI_UFS_CRYPTO=y
+CONFIG_SCSI_UFS_HPB=y
 CONFIG_SCSI_HPTIOP=m
 CONFIG_SCSI_BUSLOGIC=m
 CONFIG_SCSI_FLASHPOINT=y
@@ -2920,7 +2959,6 @@ CONFIG_DM_THIN_PROVISIONING=m
 CONFIG_DM_CACHE=m
 CONFIG_DM_CACHE_SMQ=m
 CONFIG_DM_WRITECACHE=m
-# CONFIG_DM_EBS is not set
 CONFIG_DM_ERA=m
 CONFIG_DM_CLONE=m
 CONFIG_DM_MIRROR=m
@@ -3184,7 +3222,7 @@ CONFIG_CHELSIO_INLINE_CRYPTO=y
 # CONFIG_CHELSIO_IPSEC_INLINE is not set
 CONFIG_NET_VENDOR_CIRRUS=y
 CONFIG_CS89x0=m
-CONFIG_CS89x0_PLATFORM=y
+CONFIG_CS89x0_ISA=m
 CONFIG_NET_VENDOR_CISCO=y
 CONFIG_ENIC=m
 # CONFIG_NET_VENDOR_CORTINA is not set
@@ -3246,6 +3284,7 @@ CONFIG_FM10K=m
 CONFIG_IGC=m
 CONFIG_NET_VENDOR_MICROSOFT=y
 CONFIG_JME=m
+CONFIG_NET_VENDOR_LITEX=y
 CONFIG_NET_VENDOR_MARVELL=y
 CONFIG_MVMDIO=m
 CONFIG_SKGE=m
@@ -3460,6 +3499,7 @@ CONFIG_LSI_ET1011C_PHY=m
 CONFIG_MARVELL_PHY=m
 CONFIG_MARVELL_10G_PHY=m
 CONFIG_MARVELL_88X2222_PHY=m
+CONFIG_MAXLINEAR_GPHY=m
 CONFIG_MEDIATEK_GE_PHY=m
 CONFIG_MICREL_PHY=m
 CONFIG_MICROCHIP_PHY=m
@@ -3485,6 +3525,10 @@ CONFIG_DP83869_PHY=m
 CONFIG_VITESSE_PHY=m
 CONFIG_XILINX_GMII2RGMII=m
 CONFIG_MICREL_KS8995MA=m
+
+#
+# MCTP Device Drivers
+#
 CONFIG_MDIO_DEVICE=y
 CONFIG_MDIO_BUS=y
 CONFIG_FWNODE_MDIO=y
@@ -3740,7 +3784,6 @@ CONFIG_P54_PCI=m
 CONFIG_P54_SPI=m
 # CONFIG_P54_SPI_DEFAULT_EEPROM is not set
 CONFIG_P54_LEDS=y
-# CONFIG_PRISM54 is not set
 CONFIG_WLAN_VENDOR_MARVELL=y
 CONFIG_LIBERTAS=m
 CONFIG_LIBERTAS_USB=m
@@ -3878,8 +3921,6 @@ CONFIG_N2=m
 CONFIG_C101=m
 CONFIG_FARSYNC=m
 CONFIG_LAPBETHER=m
-CONFIG_SBNI=m
-# CONFIG_SBNI_MULTILINE is not set
 CONFIG_IEEE802154_DRIVERS=m
 CONFIG_IEEE802154_FAKELB=m
 CONFIG_IEEE802154_AT86RF230=m
@@ -3899,6 +3940,7 @@ CONFIG_IEEE802154_MCR20A=m
 CONFIG_WWAN=y
 # CONFIG_WWAN_HWSIM is not set
 CONFIG_MHI_WWAN_CTRL=m
+CONFIG_MHI_WWAN_MBIM=m
 CONFIG_RPMSG_WWAN_CTRL=m
 CONFIG_IOSM=m
 # end of Wireless WAN
@@ -3911,6 +3953,7 @@ CONFIG_USB4_NET=m
 CONFIG_HYPERV_NET=m
 CONFIG_NETDEVSIM=m
 CONFIG_NET_FAILOVER=y
+CONFIG_NETDEV_LEGACY_INIT=y
 CONFIG_ISDN=y
 CONFIG_ISDN_CAPI=y
 CONFIG_CAPI_TRACE=y
@@ -3933,9 +3976,6 @@ CONFIG_MISDN_NETJET=m
 CONFIG_MISDN_HDLC=m
 CONFIG_MISDN_IPAC=m
 CONFIG_MISDN_ISAR=m
-CONFIG_NVM=y
-CONFIG_NVM_PBLK=m
-# CONFIG_NVM_PBLK_DEBUG is not set
 
 #
 # Input device support
@@ -4450,10 +4490,9 @@ CONFIG_XILLYBUS_CLASS=m
 CONFIG_XILLYBUS=m
 CONFIG_XILLYBUS_PCIE=m
 CONFIG_XILLYUSB=m
-# end of Character devices
-
 # CONFIG_RANDOM_TRUST_CPU is not set
 # CONFIG_RANDOM_TRUST_BOOTLOADER is not set
+# end of Character devices
 
 #
 # I2C support
@@ -4551,6 +4590,7 @@ CONFIG_I2C_VIPERBOARD=m
 CONFIG_I2C_PCA_ISA=m
 CONFIG_I2C_CROS_EC_TUNNEL=m
 CONFIG_SCx200_ACB=m
+CONFIG_I2C_VIRTIO=m
 # end of I2C Hardware Bus support
 
 CONFIG_I2C_STUB=m
@@ -4649,6 +4689,7 @@ CONFIG_PPS_CLIENT_GPIO=m
 # PTP clock support
 #
 CONFIG_PTP_1588_CLOCK=m
+CONFIG_PTP_1588_CLOCK_OPTIONAL=m
 
 #
 # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
@@ -4813,6 +4854,7 @@ CONFIG_GPIO_VIPERBOARD=m
 #
 CONFIG_GPIO_AGGREGATOR=m
 # CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_VIRTIO=m
 # end of Virtual GPIO drivers
 
 CONFIG_W1=m
@@ -4857,6 +4899,7 @@ CONFIG_POWER_RESET=y
 CONFIG_POWER_RESET_ATC260X=m
 # CONFIG_POWER_RESET_MT6323 is not set
 CONFIG_POWER_RESET_RESTART=y
+CONFIG_POWER_RESET_TPS65086=y
 CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
 CONFIG_POWER_SUPPLY_HWMON=y
@@ -4911,6 +4954,7 @@ CONFIG_CHARGER_MAX77693=m
 CONFIG_CHARGER_MAX8997=m
 CONFIG_CHARGER_MAX8998=m
 CONFIG_CHARGER_MP2629=m
+CONFIG_CHARGER_MT6360=m
 CONFIG_CHARGER_BQ2415X=m
 CONFIG_CHARGER_BQ24190=m
 CONFIG_CHARGER_BQ24257=m
@@ -4926,6 +4970,7 @@ CONFIG_BATTERY_GOLDFISH=m
 CONFIG_BATTERY_RT5033=m
 CONFIG_CHARGER_RT9455=m
 CONFIG_CHARGER_CROS_USBPD=m
+CONFIG_CHARGER_CROS_PCHG=m
 CONFIG_CHARGER_BD99954=m
 CONFIG_CHARGER_WILCO=m
 CONFIG_HWMON=y
@@ -4955,6 +5000,7 @@ CONFIG_SENSORS_ADT7462=m
 CONFIG_SENSORS_ADT7470=m
 CONFIG_SENSORS_ADT7475=m
 CONFIG_SENSORS_AHT10=m
+CONFIG_SENSORS_AQUACOMPUTER_D5NEXT=m
 CONFIG_SENSORS_AS370=m
 CONFIG_SENSORS_ASC7621=m
 CONFIG_SENSORS_AXI_FAN_CONTROL=m
@@ -5093,6 +5139,7 @@ CONFIG_SENSORS_UCD9200=m
 CONFIG_SENSORS_XDPE122=m
 CONFIG_SENSORS_ZL6100=m
 CONFIG_SENSORS_SBTSI=m
+CONFIG_SENSORS_SBRMI=m
 CONFIG_SENSORS_SHT15=m
 CONFIG_SENSORS_SHT21=m
 CONFIG_SENSORS_SHT3x=m
@@ -5188,6 +5235,7 @@ CONFIG_INT3406_THERMAL=m
 CONFIG_INTEL_BXT_PMIC_THERMAL=m
 CONFIG_INTEL_PCH_THERMAL=m
 CONFIG_INTEL_TCC_COOLING=m
+CONFIG_INTEL_MENLOW=m
 # end of Intel thermal drivers
 
 CONFIG_GENERIC_ADC_THERMAL=m
@@ -5516,7 +5564,9 @@ CONFIG_REGULATOR_RT4831=m
 CONFIG_REGULATOR_RT5033=m
 CONFIG_REGULATOR_RT6160=m
 CONFIG_REGULATOR_RT6245=m
+CONFIG_REGULATOR_RTQ2134=m
 CONFIG_REGULATOR_RTMV20=m
+CONFIG_REGULATOR_RTQ6752=m
 CONFIG_REGULATOR_SKY81452=m
 CONFIG_REGULATOR_SLG51000=m
 CONFIG_REGULATOR_TPS51632=m
@@ -6473,7 +6523,6 @@ CONFIG_DRM_AMDGPU_USERPTR=y
 CONFIG_DRM_AMD_DC=y
 CONFIG_DRM_AMD_DC_DCN=y
 # CONFIG_DRM_AMD_DC_HDCP is not set
-CONFIG_DRM_AMD_DC_SI=y
 # CONFIG_DEBUG_KERNEL_DC is not set
 CONFIG_DRM_AMD_SECURE_DISPLAY=y
 # end of Display Engine Configuration
@@ -6523,12 +6572,12 @@ CONFIG_DRM_VGEM=m
 # CONFIG_DRM_VKMS is not set
 CONFIG_DRM_VMWGFX=m
 CONFIG_DRM_VMWGFX_FBCON=y
+# CONFIG_DRM_VMWGFX_MKSSTATS is not set
 CONFIG_DRM_GMA500=m
 CONFIG_DRM_UDL=m
 CONFIG_DRM_AST=m
 # CONFIG_DRM_MGAG200 is not set
 CONFIG_DRM_QXL=m
-CONFIG_DRM_BOCHS=m
 CONFIG_DRM_VIRTIO_GPU=m
 CONFIG_DRM_PANEL=y
 
@@ -6536,6 +6585,7 @@ CONFIG_DRM_PANEL=y
 # Display Panels
 #
 # CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m
 # end of Display Panels
 
 CONFIG_DRM_BRIDGE=y
@@ -6549,6 +6599,7 @@ CONFIG_DRM_ANALOGIX_DP=m
 # end of Display Interface Bridges
 
 # CONFIG_DRM_ETNAVIV is not set
+CONFIG_DRM_BOCHS=m
 CONFIG_DRM_CIRRUS_QEMU=m
 CONFIG_DRM_GM12U320=m
 CONFIG_DRM_SIMPLEDRM=m
@@ -6680,7 +6731,7 @@ CONFIG_FB_MB862XX=m
 CONFIG_FB_MB862XX_PCI_GDC=y
 CONFIG_FB_MB862XX_I2C=y
 CONFIG_FB_HYPERV=m
-CONFIG_FB_SIMPLE=y
+CONFIG_FB_SIMPLE=m
 CONFIG_FB_SSD1307=m
 CONFIG_FB_SM712=m
 # end of Frame buffer Devices
@@ -6933,6 +6984,7 @@ CONFIG_SND_HDA_CODEC_SIGMATEL=m
 CONFIG_SND_HDA_CODEC_VIA=m
 CONFIG_SND_HDA_CODEC_HDMI=m
 CONFIG_SND_HDA_CODEC_CIRRUS=m
+CONFIG_SND_HDA_CODEC_CS8409=m
 CONFIG_SND_HDA_CODEC_CONEXANT=m
 CONFIG_SND_HDA_CODEC_CA0110=m
 CONFIG_SND_HDA_CODEC_CA0132=m
@@ -7001,6 +7053,7 @@ CONFIG_SND_SOC_AMD_ACP3x=m
 CONFIG_SND_SOC_AMD_RV_RT5682_MACH=m
 CONFIG_SND_SOC_AMD_RENOIR=m
 CONFIG_SND_SOC_AMD_RENOIR_MACH=m
+CONFIG_SND_SOC_AMD_ACP5x=m
 CONFIG_SND_ATMEL_SOC=m
 CONFIG_SND_BCM63XX_I2S_WHISTLER=m
 CONFIG_SND_DESIGNWARE_I2S=m
@@ -7125,7 +7178,6 @@ CONFIG_SND_SOC_SOF_ALDERLAKE=m
 CONFIG_SND_SOC_SOF_HDA_COMMON=m
 CONFIG_SND_SOC_SOF_HDA_LINK=y
 CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
-# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
 CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m
 CONFIG_SND_SOC_SOF_HDA=m
 CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=m
@@ -7210,6 +7262,7 @@ CONFIG_SND_SOC_ES8328_SPI=m
 CONFIG_SND_SOC_GTM601=m
 CONFIG_SND_SOC_HDAC_HDMI=m
 CONFIG_SND_SOC_HDAC_HDA=m
+CONFIG_SND_SOC_ICS43432=m
 CONFIG_SND_SOC_INNO_RK3036=m
 CONFIG_SND_SOC_MAX98088=m
 CONFIG_SND_SOC_MAX98090=m
@@ -7979,12 +8032,10 @@ CONFIG_LEDS_CLASS_MULTICOLOR=m
 #
 CONFIG_LEDS_88PM860X=m
 CONFIG_LEDS_APU=m
-CONFIG_LEDS_AS3645A=m
 CONFIG_LEDS_LM3530=m
 CONFIG_LEDS_LM3532=m
 CONFIG_LEDS_LM3533=m
 CONFIG_LEDS_LM3642=m
-CONFIG_LEDS_LM3601X=m
 CONFIG_LEDS_MT6323=m
 CONFIG_LEDS_NET48XX=m
 CONFIG_LEDS_WRAP=m
@@ -8029,12 +8080,14 @@ CONFIG_LEDS_NIC78BX=m
 CONFIG_LEDS_TI_LMU_COMMON=m
 CONFIG_LEDS_LM36274=m
 CONFIG_LEDS_TPS6105X=m
-CONFIG_LEDS_SGM3140=m
 
 #
 # Flash and Torch LED drivers
 #
+CONFIG_LEDS_AS3645A=m
+CONFIG_LEDS_LM3601X=m
 # CONFIG_LEDS_RT8515 is not set
+CONFIG_LEDS_SGM3140=m
 
 #
 # LED Triggers
@@ -8293,6 +8346,7 @@ CONFIG_SYNC_FILE=y
 # CONFIG_DMABUF_DEBUG is not set
 # CONFIG_DMABUF_SELFTESTS is not set
 # CONFIG_DMABUF_HEAPS is not set
+# CONFIG_DMABUF_SYSFS_STATS is not set
 # end of DMABUF options
 
 CONFIG_AUXDISPLAY=y
@@ -8326,14 +8380,15 @@ CONFIG_UIO_PRUSS=m
 CONFIG_UIO_MF624=m
 CONFIG_UIO_HV_GENERIC=m
 CONFIG_UIO_DFL=m
+CONFIG_VFIO=m
 CONFIG_VFIO_IOMMU_TYPE1=m
 CONFIG_VFIO_VIRQFD=m
-CONFIG_VFIO=m
 CONFIG_VFIO_NOIOMMU=y
-CONFIG_VFIO_PCI=m
-CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_PCI_CORE=m
 CONFIG_VFIO_PCI_MMAP=y
 CONFIG_VFIO_PCI_INTX=y
+CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_VGA=y
 CONFIG_VFIO_PCI_IGD=y
 CONFIG_VFIO_MDEV=m
 CONFIG_IRQ_BYPASS_MANAGER=m
@@ -8354,6 +8409,7 @@ CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
 CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
 CONFIG_VDPA=m
 # CONFIG_VDPA_SIM is not set
+CONFIG_VDPA_USER=m
 CONFIG_IFCVF=m
 CONFIG_MLX5_VDPA=y
 CONFIG_MLX5_VDPA_NET=m
@@ -8391,7 +8447,6 @@ CONFIG_XEN_XENBUS_FRONTEND=y
 CONFIG_XEN_GNTDEV=m
 CONFIG_XEN_GRANT_DEV_ALLOC=m
 # CONFIG_XEN_GRANT_DMA_ALLOC is not set
-CONFIG_SWIOTLB_XEN=y
 CONFIG_XEN_PCIDEV_BACKEND=m
 CONFIG_XEN_PVCALLS_FRONTEND=m
 # CONFIG_XEN_PVCALLS_BACKEND is not set
@@ -8687,8 +8742,6 @@ CONFIG_X86_PLATFORM_DEVICES=y
 CONFIG_ACPI_WMI=m
 CONFIG_WMI_BMOF=m
 CONFIG_HUAWEI_WMI=m
-CONFIG_INTEL_WMI_SBL_FW_UPDATE=m
-CONFIG_INTEL_WMI_THUNDERBOLT=m
 CONFIG_MXM_WMI=m
 CONFIG_PEAQ_WMI=m
 CONFIG_XIAOMI_WMI=m
@@ -8703,6 +8756,7 @@ CONFIG_ASUS_LAPTOP=m
 CONFIG_ASUS_WIRELESS=m
 CONFIG_ASUS_WMI=m
 CONFIG_ASUS_NB_WMI=m
+CONFIG_MERAKI_MX100=m
 CONFIG_EEEPC_LAPTOP=m
 CONFIG_EEEPC_WMI=m
 CONFIG_X86_PLATFORM_DRIVERS_DELL=y
@@ -8741,14 +8795,28 @@ CONFIG_THINKPAD_ACPI_VIDEO=y
 CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
 CONFIG_THINKPAD_LMI=m
 CONFIG_X86_PLATFORM_DRIVERS_INTEL=y
+CONFIG_INTEL_ATOMISP2_PDX86=y
+CONFIG_INTEL_ATOMISP2_LED=m
+CONFIG_INTEL_SAR_INT1092=m
 CONFIG_INTEL_CHT_INT33FE=m
 CONFIG_INTEL_SKL_INT3472=m
-CONFIG_INTEL_ATOMISP2_LED=m
+CONFIG_INTEL_PMC_CORE=y
+CONFIG_INTEL_PMT_CLASS=m
+CONFIG_INTEL_PMT_TELEMETRY=m
+CONFIG_INTEL_PMT_CRASHLOG=m
+CONFIG_INTEL_WMI=y
+CONFIG_INTEL_WMI_SBL_FW_UPDATE=m
+CONFIG_INTEL_WMI_THUNDERBOLT=m
 CONFIG_INTEL_HID_EVENT=m
+CONFIG_INTEL_VBTN=m
 CONFIG_INTEL_INT0002_VGPIO=m
-CONFIG_INTEL_MENLOW=m
 CONFIG_INTEL_OAKTRAIL=m
-CONFIG_INTEL_VBTN=m
+CONFIG_INTEL_BXTWC_PMIC_TMU=m
+CONFIG_INTEL_CHTDC_TI_PWRBTN=m
+CONFIG_INTEL_MRFLD_PWRBTN=m
+CONFIG_INTEL_PUNIT_IPC=m
+CONFIG_INTEL_RST=m
+CONFIG_INTEL_SMARTCONNECT=m
 CONFIG_MSI_LAPTOP=m
 CONFIG_MSI_WMI=m
 CONFIG_PCENGINES_APU2=m
@@ -8772,16 +8840,6 @@ CONFIG_I2C_MULTI_INSTANTIATE=m
 CONFIG_FW_ATTR_CLASS=m
 CONFIG_INTEL_IMR=y
 CONFIG_INTEL_IPS=m
-CONFIG_INTEL_RST=m
-CONFIG_INTEL_SMARTCONNECT=m
-CONFIG_INTEL_BXTWC_PMIC_TMU=m
-CONFIG_INTEL_CHTDC_TI_PWRBTN=m
-CONFIG_INTEL_MRFLD_PWRBTN=m
-CONFIG_INTEL_PMC_CORE=y
-CONFIG_INTEL_PMT_CLASS=m
-CONFIG_INTEL_PMT_TELEMETRY=m
-CONFIG_INTEL_PMT_CRASHLOG=m
-CONFIG_INTEL_PUNIT_IPC=m
 CONFIG_INTEL_SCU_IPC=y
 CONFIG_INTEL_SCU=y
 CONFIG_INTEL_SCU_PCI=y
@@ -8860,6 +8918,8 @@ CONFIG_IOMMU_SUPPORT=y
 # end of Generic IOMMU Pagetable Support
 
 # CONFIG_IOMMU_DEBUGFS is not set
+# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set
+CONFIG_IOMMU_DEFAULT_DMA_LAZY=y
 # CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
 CONFIG_IOMMU_DMA=y
 CONFIG_DMAR_TABLE=y
@@ -9146,6 +9206,7 @@ CONFIG_SCD30_CORE=m
 CONFIG_SCD30_I2C=m
 CONFIG_SCD30_SERIAL=m
 CONFIG_SENSIRION_SGP30=m
+CONFIG_SENSIRION_SGP40=m
 CONFIG_SPS30=m
 CONFIG_SPS30_I2C=m
 CONFIG_SPS30_SERIAL=m
@@ -9444,6 +9505,7 @@ CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE=m
 #
 # Digital potentiometers
 #
+CONFIG_AD5110=m
 CONFIG_AD5272=m
 CONFIG_DS1803=m
 CONFIG_MAX5432=m
@@ -9780,13 +9842,13 @@ CONFIG_F2FS_FS_SECURITY=y
 # CONFIG_F2FS_CHECK_FS is not set
 # CONFIG_F2FS_FAULT_INJECTION is not set
 # CONFIG_F2FS_FS_COMPRESSION is not set
+# CONFIG_F2FS_IOSTAT is not set
 CONFIG_ZONEFS_FS=m
 CONFIG_FS_DAX=y
 CONFIG_FS_POSIX_ACL=y
 CONFIG_EXPORTFS=y
 # CONFIG_EXPORTFS_BLOCK_OPS is not set
 CONFIG_FILE_LOCKING=y
-CONFIG_MANDATORY_FILE_LOCKING=y
 # CONFIG_FS_ENCRYPTION is not set
 CONFIG_FS_VERITY=y
 # CONFIG_FS_VERITY_DEBUG is not set
@@ -9820,15 +9882,12 @@ CONFIG_OVERLAY_FS=m
 # Caches
 #
 CONFIG_NETFS_SUPPORT=m
-# CONFIG_NETFS_STATS is not set
+CONFIG_NETFS_STATS=y
 CONFIG_FSCACHE=m
 CONFIG_FSCACHE_STATS=y
-# CONFIG_FSCACHE_HISTOGRAM is not set
 # CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
 CONFIG_CACHEFILES=m
 # CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
 # end of Caches
 
 #
@@ -9854,6 +9913,9 @@ CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
 CONFIG_NTFS_FS=m
 # CONFIG_NTFS_DEBUG is not set
 # CONFIG_NTFS_RW is not set
+CONFIG_NTFS3_FS=m
+CONFIG_NTFS3_LZX_XPRESS=y
+# CONFIG_NTFS3_FS_POSIX_ACL is not set
 # end of DOS/FAT/EXFAT/NT Filesystems
 
 #
@@ -9963,6 +10025,7 @@ CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
 # CONFIG_PSTORE_PMSG is not set
 # CONFIG_PSTORE_FTRACE is not set
 CONFIG_PSTORE_RAM=m
+# CONFIG_PSTORE_BLK is not set
 CONFIG_SYSV_FS=m
 CONFIG_UFS_FS=m
 # CONFIG_UFS_FS_WRITE is not set
@@ -10026,7 +10089,6 @@ CONFIG_CEPH_FS_SECURITY_LABEL=y
 CONFIG_CIFS=m
 # CONFIG_CIFS_STATS2 is not set
 CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
-CONFIG_CIFS_WEAK_PW_HASH=y
 CONFIG_CIFS_UPCALL=y
 CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
@@ -10037,6 +10099,8 @@ CONFIG_CIFS_DFS_UPCALL=y
 CONFIG_CIFS_SWN_UPCALL=y
 # CONFIG_CIFS_SMB_DIRECT is not set
 CONFIG_CIFS_FSCACHE=y
+# CONFIG_SMB_SERVER is not set
+CONFIG_SMBFS_COMMON=m
 CONFIG_CODA_FS=m
 CONFIG_AFS_FS=m
 # CONFIG_AFS_DEBUG is not set
@@ -10203,13 +10267,24 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity,apparmor,selinux,smack,tomoyo"
 #
 # Kernel hardening options
 #
+CONFIG_GCC_PLUGIN_STRUCTLEAK=y
 
 #
 # Memory initialization
 #
-CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_NONE is not set
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set
+CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=y
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE is not set
+CONFIG_GCC_PLUGIN_STACKLEAK=y
+CONFIG_STACKLEAK_TRACK_MIN_SIZE=100
+# CONFIG_STACKLEAK_METRICS is not set
+CONFIG_STACKLEAK_RUNTIME_DISABLE=y
 CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
 # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
+# CONFIG_ZERO_CALL_USED_REGS is not set
 # end of Memory initialization
 # end of Kernel hardening options
 # end of Security options
@@ -10401,6 +10476,7 @@ CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
 CONFIG_CRYPTO_LIB_POLY1305=m
 CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
 CONFIG_CRYPTO_LIB_SHA256=y
+CONFIG_CRYPTO_LIB_SM4=m
 CONFIG_CRYPTO_HW=y
 CONFIG_CRYPTO_DEV_PADLOCK=y
 CONFIG_CRYPTO_DEV_PADLOCK_AES=m
@@ -10655,6 +10731,7 @@ CONFIG_KDB_CONTINUE_CATASTROPHIC=0
 CONFIG_ARCH_HAS_EARLY_DEBUG=y
 CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
 # CONFIG_UBSAN is not set
+CONFIG_HAVE_KCSAN_COMPILER=y
 # end of Generic Kernel Debugging Instruments
 
 CONFIG_DEBUG_KERNEL=y
@@ -10695,9 +10772,9 @@ CONFIG_CC_HAS_KASAN_GENERIC=y
 CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
 CONFIG_HAVE_ARCH_KFENCE=y
 CONFIG_KFENCE=y
-CONFIG_KFENCE_STATIC_KEYS=y
 CONFIG_KFENCE_SAMPLE_INTERVAL=0
 CONFIG_KFENCE_NUM_OBJECTS=255
+CONFIG_KFENCE_STATIC_KEYS=y
 CONFIG_KFENCE_STRESS_TEST_FAULTS=0
 # end of Memory Debugging
 
@@ -10784,7 +10861,6 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
 # end of RCU Debugging
 
 # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
 # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
 # CONFIG_LATENCYTOP is not set
 CONFIG_USER_STACKTRACE_SUPPORT=y
@@ -10859,7 +10935,6 @@ CONFIG_IO_STRICT_DEVMEM=y
 #
 # x86 Debugging
 #
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
 CONFIG_EARLY_PRINTK_USB=y
 # CONFIG_X86_VERBOSE_BOOTUP is not set
@@ -10898,7 +10973,6 @@ CONFIG_CC_HAS_SANCOV_TRACE_PC=y
 CONFIG_RUNTIME_TESTING_MENU=y
 # CONFIG_LKDTM is not set
 # CONFIG_TEST_MIN_HEAP is not set
-# CONFIG_TEST_SORT is not set
 # CONFIG_TEST_DIV64 is not set
 # CONFIG_KPROBES_SANITY_TEST is not set
 # CONFIG_BACKTRACE_SELF_TEST is not set
diff --git a/gnu/packages/aux-files/linux-libre/5.14-x86_64.conf b/gnu/packages/aux-files/linux-libre/5.15-x86_64.conf
index 844420becd..13588ecb0e 100644
--- a/gnu/packages/aux-files/linux-libre/5.14-x86_64.conf
+++ b/gnu/packages/aux-files/linux-libre/5.15-x86_64.conf
@@ -1,19 +1,20 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.14.0 Kernel Configuration
+# Linux/x86 5.15.5 Kernel Configuration
 #
-CONFIG_CC_VERSION_TEXT="gcc (Debian 8.3.0-6) 8.3.0"
+CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
 CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=80300
+CONFIG_GCC_VERSION=110200
 CONFIG_CLANG_VERSION=0
 CONFIG_AS_IS_GNU=y
-CONFIG_AS_VERSION=23101
+CONFIG_AS_VERSION=23400
 CONFIG_LD_IS_BFD=y
-CONFIG_LD_VERSION=23101
+CONFIG_LD_VERSION=23400
 CONFIG_LLD_VERSION=0
 CONFIG_CC_CAN_LINK=y
 CONFIG_CC_CAN_LINK_STATIC=y
 CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
 CONFIG_CC_HAS_ASM_INLINE=y
 CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
 CONFIG_IRQ_WORK=y
@@ -25,6 +26,7 @@ CONFIG_THREAD_INFO_IN_TASK=y
 #
 CONFIG_INIT_ENV_ARG_LIMIT=32
 # CONFIG_COMPILE_TEST is not set
+# CONFIG_WERROR is not set
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_BUILD_SALT=""
@@ -157,6 +159,7 @@ CONFIG_BUILD_BIN2C=y
 CONFIG_LOG_BUF_SHIFT=18
 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
+# CONFIG_PRINTK_INDEX is not set
 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
 
 #
@@ -231,7 +234,6 @@ CONFIG_SYSFS_SYSCALL=y
 CONFIG_FHANDLE=y
 CONFIG_POSIX_TIMERS=y
 CONFIG_PRINTK=y
-CONFIG_PRINTK_NMI=y
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
 CONFIG_PCSPKR_PLATFORM=y
@@ -308,6 +310,7 @@ CONFIG_HAVE_SETUP_PER_CPU_AREA=y
 CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
 CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_NR_GPIO=1024
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
 CONFIG_AUDIT_ARCH=y
@@ -350,13 +353,14 @@ CONFIG_XEN=y
 CONFIG_XEN_PV=y
 CONFIG_XEN_512GB=y
 CONFIG_XEN_PV_SMP=y
-CONFIG_XEN_DOM0=y
+CONFIG_XEN_PV_DOM0=y
 CONFIG_XEN_PVHVM=y
 CONFIG_XEN_PVHVM_SMP=y
 CONFIG_XEN_PVHVM_GUEST=y
 CONFIG_XEN_SAVE_RESTORE=y
 # CONFIG_XEN_DEBUG_FS is not set
 CONFIG_XEN_PVH=y
+CONFIG_XEN_DOM0=y
 CONFIG_KVM_GUEST=y
 CONFIG_ARCH_CPUIDLE_HALTPOLL=y
 CONFIG_PVH=y
@@ -413,6 +417,7 @@ CONFIG_PERF_EVENTS_INTEL_UNCORE=y
 CONFIG_PERF_EVENTS_INTEL_RAPL=y
 CONFIG_PERF_EVENTS_INTEL_CSTATE=y
 CONFIG_PERF_EVENTS_AMD_POWER=m
+CONFIG_PERF_EVENTS_AMD_UNCORE=m
 # end of Performance monitoring
 
 CONFIG_X86_16BIT=y
@@ -655,7 +660,6 @@ CONFIG_MMCONF_FAM10H=y
 # CONFIG_ISA_BUS is not set
 CONFIG_ISA_DMA_API=y
 CONFIG_AMD_NB=y
-# CONFIG_X86_SYSFB is not set
 # end of Bus options (PCI etc.)
 
 #
@@ -669,54 +673,6 @@ CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
 CONFIG_SYSVIPC_COMPAT=y
 # end of Binary Emulations
 
-#
-# Firmware Drivers
-#
-CONFIG_EDD=y
-CONFIG_EDD_OFF=y
-CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_DMIID=y
-CONFIG_DMI_SYSFS=m
-CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
-CONFIG_ISCSI_IBFT_FIND=y
-CONFIG_ISCSI_IBFT=m
-CONFIG_FW_CFG_SYSFS=m
-# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
-
-#
-# EFI (Extensible Firmware Interface) Support
-#
-CONFIG_EFI_VARS=y
-CONFIG_EFI_ESRT=y
-CONFIG_EFI_VARS_PSTORE=m
-# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
-CONFIG_EFI_RUNTIME_MAP=y
-# CONFIG_EFI_FAKE_MEMMAP is not set
-CONFIG_EFI_SOFT_RESERVE=y
-CONFIG_EFI_RUNTIME_WRAPPERS=y
-CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
-CONFIG_EFI_BOOTLOADER_CONTROL=m
-# CONFIG_EFI_CAPSULE_LOADER is not set
-# CONFIG_EFI_TEST is not set
-CONFIG_APPLE_PROPERTIES=y
-CONFIG_RESET_ATTACK_MITIGATION=y
-# CONFIG_EFI_RCI2_TABLE is not set
-# CONFIG_EFI_DISABLE_PCI_DMA is not set
-# end of EFI (Extensible Firmware Interface) Support
-
-CONFIG_UEFI_CPER=y
-CONFIG_UEFI_CPER_X86=y
-CONFIG_EFI_DEV_PATH_PARSER=y
-CONFIG_EFI_EARLYCON=y
-CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
-
-#
-# Tegra firmware driver
-#
-# end of Tegra firmware driver
-# end of Firmware Drivers
-
 CONFIG_HAVE_KVM=y
 CONFIG_HAVE_KVM_IRQCHIP=y
 CONFIG_HAVE_KVM_IRQFD=y
@@ -772,6 +728,7 @@ CONFIG_HAVE_OPTPROBES=y
 CONFIG_HAVE_KPROBES_ON_FTRACE=y
 CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
 CONFIG_HAVE_NMI=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_HAVE_ARCH_TRACEHOOK=y
 CONFIG_HAVE_DMA_CONTIGUOUS=y
 CONFIG_GENERIC_SMP_IDLE_THREAD=y
@@ -861,6 +818,7 @@ CONFIG_HAVE_PREEMPT_DYNAMIC=y
 CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
 CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
 CONFIG_ARCH_HAS_ELFCORE_COMPAT=y
+CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y
 
 #
 # GCOV-based kernel profiling
@@ -870,6 +828,10 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
 # end of GCOV-based kernel profiling
 
 CONFIG_HAVE_GCC_PLUGINS=y
+CONFIG_GCC_PLUGINS=y
+# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
+CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
+# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set
 # end of General architecture-dependent options
 
 CONFIG_RT_MUTEXES=y
@@ -892,16 +854,14 @@ CONFIG_MODPROBE_PATH="/run/current-system/profile/bin/modprobe"
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_BLOCK=y
 CONFIG_BLK_RQ_ALLOC_TIME=y
-CONFIG_BLK_SCSI_REQUEST=y
 CONFIG_BLK_CGROUP_RWSTAT=y
-CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSG_COMMON=y
 CONFIG_BLK_DEV_BSGLIB=y
 CONFIG_BLK_DEV_INTEGRITY=y
 CONFIG_BLK_DEV_INTEGRITY_T10=y
 CONFIG_BLK_DEV_ZONED=y
 CONFIG_BLK_DEV_THROTTLING=y
 # CONFIG_BLK_DEV_THROTTLING_LOW is not set
-CONFIG_BLK_CMDLINE_PARSER=y
 CONFIG_BLK_WBT=y
 CONFIG_BLK_WBT_MQ=y
 # CONFIG_BLK_CGROUP_IOLATENCY is not set
@@ -945,6 +905,7 @@ CONFIG_BLK_MQ_PCI=y
 CONFIG_BLK_MQ_VIRTIO=y
 CONFIG_BLK_MQ_RDMA=y
 CONFIG_BLK_PM=y
+CONFIG_BLOCK_HOLDER_DEPRECATED=y
 
 #
 # IO Schedulers
@@ -1059,6 +1020,7 @@ CONFIG_ZSMALLOC=y
 # CONFIG_ZSMALLOC_STAT is not set
 CONFIG_GENERIC_EARLY_IOREMAP=y
 # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
+CONFIG_PAGE_IDLE_FLAG=y
 CONFIG_IDLE_PAGE_TRACKING=y
 CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
 CONFIG_ARCH_HAS_PTE_DEVMAP=y
@@ -1078,6 +1040,14 @@ CONFIG_ARCH_HAS_PKEYS=y
 CONFIG_ARCH_HAS_PTE_SPECIAL=y
 CONFIG_MAPPING_DIRTY_HELPERS=y
 CONFIG_SECRETMEM=y
+
+#
+# Data Access Monitoring
+#
+CONFIG_DAMON=y
+CONFIG_DAMON_VADDR=y
+# CONFIG_DAMON_DBGFS is not set
+# end of Data Access Monitoring
 # end of Memory Management options
 
 CONFIG_NET=y
@@ -1095,6 +1065,7 @@ CONFIG_PACKET=y
 CONFIG_PACKET_DIAG=m
 CONFIG_UNIX=y
 CONFIG_UNIX_SCM=y
+CONFIG_AF_UNIX_OOB=y
 CONFIG_UNIX_DIAG=m
 CONFIG_TLS=m
 # CONFIG_TLS_DEVICE is not set
@@ -1205,6 +1176,7 @@ CONFIG_IPV6_PIMSM_V2=y
 # CONFIG_IPV6_SEG6_LWTUNNEL is not set
 # CONFIG_IPV6_SEG6_HMAC is not set
 # CONFIG_IPV6_RPL_LWTUNNEL is not set
+# CONFIG_IPV6_IOAM6_LWTUNNEL is not set
 CONFIG_NETLABEL=y
 CONFIG_MPTCP=y
 CONFIG_INET_MPTCP_DIAG=m
@@ -1628,7 +1600,6 @@ CONFIG_BRIDGE_VLAN_FILTERING=y
 CONFIG_BRIDGE_MRP=y
 CONFIG_BRIDGE_CFM=y
 CONFIG_NET_DSA=m
-CONFIG_NET_DSA_TAG_8021Q=m
 CONFIG_NET_DSA_TAG_AR9331=m
 CONFIG_NET_DSA_TAG_BRCM_COMMON=m
 CONFIG_NET_DSA_TAG_BRCM=m
@@ -1994,6 +1965,7 @@ CONFIG_AF_RXRPC_IPV6=y
 # CONFIG_RXKAD is not set
 CONFIG_AF_KCM=m
 CONFIG_STREAM_PARSER=y
+CONFIG_MCTP=m
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
 CONFIG_WIRELESS_EXT=y
@@ -2289,6 +2261,69 @@ CONFIG_MHI_BUS_PCI_GENERIC=m
 
 CONFIG_CONNECTOR=y
 CONFIG_PROC_EVENTS=y
+
+#
+# Firmware Drivers
+#
+
+#
+# ARM System Control and Management Interface Protocol
+#
+# end of ARM System Control and Management Interface Protocol
+
+CONFIG_EDD=y
+CONFIG_EDD_OFF=y
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=m
+CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
+CONFIG_ISCSI_IBFT_FIND=y
+CONFIG_ISCSI_IBFT=m
+CONFIG_FW_CFG_SYSFS=m
+# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
+CONFIG_SYSFB=y
+CONFIG_SYSFB_SIMPLEFB=y
+CONFIG_GOOGLE_FIRMWARE=y
+# CONFIG_GOOGLE_SMI is not set
+CONFIG_GOOGLE_COREBOOT_TABLE=m
+# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
+CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
+# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
+# CONFIG_GOOGLE_VPD is not set
+
+#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_VARS=y
+CONFIG_EFI_ESRT=y
+CONFIG_EFI_VARS_PSTORE=m
+# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
+CONFIG_EFI_RUNTIME_MAP=y
+# CONFIG_EFI_FAKE_MEMMAP is not set
+CONFIG_EFI_SOFT_RESERVE=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
+CONFIG_EFI_BOOTLOADER_CONTROL=m
+# CONFIG_EFI_CAPSULE_LOADER is not set
+# CONFIG_EFI_TEST is not set
+CONFIG_APPLE_PROPERTIES=y
+CONFIG_RESET_ATTACK_MITIGATION=y
+# CONFIG_EFI_RCI2_TABLE is not set
+# CONFIG_EFI_DISABLE_PCI_DMA is not set
+# end of EFI (Extensible Firmware Interface) Support
+
+CONFIG_UEFI_CPER=y
+CONFIG_UEFI_CPER_X86=y
+CONFIG_EFI_DEV_PATH_PARSER=y
+CONFIG_EFI_EARLYCON=y
+CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
+
+#
+# Tegra firmware driver
+#
+# end of Tegra firmware driver
+# end of Firmware Drivers
+
 CONFIG_GNSS=m
 CONFIG_GNSS_SERIAL=m
 CONFIG_GNSS_MTK_SERIAL=m
@@ -2314,6 +2349,10 @@ CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
 CONFIG_MTD_BLKDEVS=m
 CONFIG_MTD_BLOCK=m
 CONFIG_MTD_BLOCK_RO=m
+
+#
+# Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK.
+#
 CONFIG_FTL=m
 CONFIG_NFTL=m
 CONFIG_NFTL_RW=y
@@ -2649,6 +2688,7 @@ CONFIG_PVPANIC_PCI=m
 #
 CONFIG_SCSI_MOD=y
 CONFIG_RAID_ATTRS=m
+CONFIG_SCSI_COMMON=y
 CONFIG_SCSI=y
 CONFIG_SCSI_DMA=y
 CONFIG_SCSI_NETLINK=y
@@ -2661,6 +2701,7 @@ CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
 CONFIG_CHR_DEV_SG=y
+CONFIG_BLK_DEV_BSG=y
 CONFIG_CHR_DEV_SCH=m
 CONFIG_SCSI_ENCLOSURE=m
 CONFIG_SCSI_CONSTANTS=y
@@ -2735,6 +2776,7 @@ CONFIG_SCSI_UFS_CDNS_PLATFORM=m
 # CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
 # CONFIG_SCSI_UFS_BSG is not set
 CONFIG_SCSI_UFS_CRYPTO=y
+CONFIG_SCSI_UFS_HPB=y
 CONFIG_SCSI_HPTIOP=m
 CONFIG_SCSI_BUSLOGIC=m
 CONFIG_SCSI_FLASHPOINT=y
@@ -3257,6 +3299,7 @@ CONFIG_IGC=m
 CONFIG_NET_VENDOR_MICROSOFT=y
 CONFIG_MICROSOFT_MANA=m
 CONFIG_JME=m
+CONFIG_NET_VENDOR_LITEX=y
 CONFIG_NET_VENDOR_MARVELL=y
 CONFIG_MVMDIO=m
 CONFIG_SKGE=m
@@ -3469,6 +3512,7 @@ CONFIG_LSI_ET1011C_PHY=m
 CONFIG_MARVELL_PHY=m
 CONFIG_MARVELL_10G_PHY=m
 CONFIG_MARVELL_88X2222_PHY=m
+CONFIG_MAXLINEAR_GPHY=m
 CONFIG_MEDIATEK_GE_PHY=m
 CONFIG_MICREL_PHY=m
 CONFIG_MICROCHIP_PHY=m
@@ -3494,6 +3538,10 @@ CONFIG_DP83869_PHY=m
 CONFIG_VITESSE_PHY=m
 CONFIG_XILINX_GMII2RGMII=m
 CONFIG_MICREL_KS8995MA=m
+
+#
+# MCTP Device Drivers
+#
 CONFIG_MDIO_DEVICE=y
 CONFIG_MDIO_BUS=y
 CONFIG_FWNODE_MDIO=y
@@ -3751,7 +3799,6 @@ CONFIG_P54_PCI=m
 CONFIG_P54_SPI=m
 # CONFIG_P54_SPI_DEFAULT_EEPROM is not set
 CONFIG_P54_LEDS=y
-# CONFIG_PRISM54 is not set
 CONFIG_WLAN_VENDOR_MARVELL=y
 CONFIG_LIBERTAS=m
 CONFIG_LIBERTAS_USB=m
@@ -3896,8 +3943,6 @@ CONFIG_WANXL=m
 CONFIG_PC300TOO=m
 CONFIG_FARSYNC=m
 CONFIG_LAPBETHER=m
-CONFIG_SBNI=m
-# CONFIG_SBNI_MULTILINE is not set
 CONFIG_IEEE802154_DRIVERS=m
 CONFIG_IEEE802154_FAKELB=m
 CONFIG_IEEE802154_AT86RF230=m
@@ -3917,6 +3962,7 @@ CONFIG_IEEE802154_MCR20A=m
 CONFIG_WWAN=y
 # CONFIG_WWAN_HWSIM is not set
 CONFIG_MHI_WWAN_CTRL=m
+CONFIG_MHI_WWAN_MBIM=m
 CONFIG_RPMSG_WWAN_CTRL=m
 CONFIG_IOSM=m
 # end of Wireless WAN
@@ -3951,9 +3997,6 @@ CONFIG_MISDN_NETJET=m
 CONFIG_MISDN_HDLC=m
 CONFIG_MISDN_IPAC=m
 CONFIG_MISDN_ISAR=m
-CONFIG_NVM=y
-CONFIG_NVM_PBLK=m
-# CONFIG_NVM_PBLK_DEBUG is not set
 
 #
 # Input device support
@@ -4450,10 +4493,9 @@ CONFIG_XILLYBUS_CLASS=m
 CONFIG_XILLYBUS=m
 CONFIG_XILLYBUS_PCIE=m
 CONFIG_XILLYUSB=m
-# end of Character devices
-
 # CONFIG_RANDOM_TRUST_CPU is not set
 # CONFIG_RANDOM_TRUST_BOOTLOADER is not set
+# end of Character devices
 
 #
 # I2C support
@@ -4549,6 +4591,7 @@ CONFIG_I2C_VIPERBOARD=m
 #
 CONFIG_I2C_MLXCPLD=m
 CONFIG_I2C_CROS_EC_TUNNEL=m
+CONFIG_I2C_VIRTIO=m
 # end of I2C Hardware Bus support
 
 CONFIG_I2C_STUB=m
@@ -4646,6 +4689,7 @@ CONFIG_PPS_CLIENT_GPIO=m
 # PTP clock support
 #
 CONFIG_PTP_1588_CLOCK=m
+CONFIG_PTP_1588_CLOCK_OPTIONAL=m
 
 #
 # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
@@ -4805,6 +4849,7 @@ CONFIG_GPIO_VIPERBOARD=m
 #
 CONFIG_GPIO_AGGREGATOR=m
 # CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_VIRTIO=m
 # end of Virtual GPIO drivers
 
 CONFIG_W1=m
@@ -4849,6 +4894,7 @@ CONFIG_POWER_RESET=y
 CONFIG_POWER_RESET_ATC260X=m
 # CONFIG_POWER_RESET_MT6323 is not set
 CONFIG_POWER_RESET_RESTART=y
+CONFIG_POWER_RESET_TPS65086=y
 CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
 CONFIG_POWER_SUPPLY_HWMON=y
@@ -4903,6 +4949,7 @@ CONFIG_CHARGER_MAX77693=m
 CONFIG_CHARGER_MAX8997=m
 CONFIG_CHARGER_MAX8998=m
 CONFIG_CHARGER_MP2629=m
+CONFIG_CHARGER_MT6360=m
 CONFIG_CHARGER_BQ2415X=m
 CONFIG_CHARGER_BQ24190=m
 CONFIG_CHARGER_BQ24257=m
@@ -4918,6 +4965,7 @@ CONFIG_BATTERY_GOLDFISH=m
 CONFIG_BATTERY_RT5033=m
 CONFIG_CHARGER_RT9455=m
 CONFIG_CHARGER_CROS_USBPD=m
+CONFIG_CHARGER_CROS_PCHG=m
 CONFIG_CHARGER_BD99954=m
 CONFIG_CHARGER_WILCO=m
 CONFIG_BATTERY_SURFACE=m
@@ -4949,6 +4997,7 @@ CONFIG_SENSORS_ADT7462=m
 CONFIG_SENSORS_ADT7470=m
 CONFIG_SENSORS_ADT7475=m
 CONFIG_SENSORS_AHT10=m
+CONFIG_SENSORS_AQUACOMPUTER_D5NEXT=m
 CONFIG_SENSORS_AS370=m
 CONFIG_SENSORS_ASC7621=m
 CONFIG_SENSORS_AXI_FAN_CONTROL=m
@@ -5087,6 +5136,7 @@ CONFIG_SENSORS_UCD9200=m
 CONFIG_SENSORS_XDPE122=m
 CONFIG_SENSORS_ZL6100=m
 CONFIG_SENSORS_SBTSI=m
+CONFIG_SENSORS_SBRMI=m
 CONFIG_SENSORS_SHT15=m
 CONFIG_SENSORS_SHT21=m
 CONFIG_SENSORS_SHT3x=m
@@ -5182,6 +5232,7 @@ CONFIG_PROC_THERMAL_MMIO_RAPL=m
 CONFIG_INTEL_BXT_PMIC_THERMAL=m
 CONFIG_INTEL_PCH_THERMAL=m
 CONFIG_INTEL_TCC_COOLING=m
+CONFIG_INTEL_MENLOW=m
 # end of Intel thermal drivers
 
 CONFIG_GENERIC_ADC_THERMAL=m
@@ -5496,7 +5547,9 @@ CONFIG_REGULATOR_RT4831=m
 CONFIG_REGULATOR_RT5033=m
 CONFIG_REGULATOR_RT6160=m
 CONFIG_REGULATOR_RT6245=m
+CONFIG_REGULATOR_RTQ2134=m
 CONFIG_REGULATOR_RTMV20=m
+CONFIG_REGULATOR_RTQ6752=m
 CONFIG_REGULATOR_SKY81452=m
 CONFIG_REGULATOR_SLG51000=m
 CONFIG_REGULATOR_TPS51632=m
@@ -6431,7 +6484,6 @@ CONFIG_DRM_AMDGPU_USERPTR=y
 CONFIG_DRM_AMD_DC=y
 CONFIG_DRM_AMD_DC_DCN=y
 # CONFIG_DRM_AMD_DC_HDCP is not set
-CONFIG_DRM_AMD_DC_SI=y
 # CONFIG_DEBUG_KERNEL_DC is not set
 CONFIG_DRM_AMD_SECURE_DISPLAY=y
 # end of Display Engine Configuration
@@ -6483,12 +6535,12 @@ CONFIG_DRM_VGEM=m
 # CONFIG_DRM_VKMS is not set
 CONFIG_DRM_VMWGFX=m
 CONFIG_DRM_VMWGFX_FBCON=y
+# CONFIG_DRM_VMWGFX_MKSSTATS is not set
 CONFIG_DRM_GMA500=m
 CONFIG_DRM_UDL=m
 CONFIG_DRM_AST=m
 # CONFIG_DRM_MGAG200 is not set
 CONFIG_DRM_QXL=m
-CONFIG_DRM_BOCHS=m
 CONFIG_DRM_VIRTIO_GPU=m
 CONFIG_DRM_PANEL=y
 
@@ -6496,6 +6548,7 @@ CONFIG_DRM_PANEL=y
 # Display Panels
 #
 # CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m
 # end of Display Panels
 
 CONFIG_DRM_BRIDGE=y
@@ -6509,6 +6562,7 @@ CONFIG_DRM_ANALOGIX_DP=m
 # end of Display Interface Bridges
 
 # CONFIG_DRM_ETNAVIV is not set
+CONFIG_DRM_BOCHS=m
 CONFIG_DRM_CIRRUS_QEMU=m
 CONFIG_DRM_GM12U320=m
 CONFIG_DRM_SIMPLEDRM=m
@@ -6634,7 +6688,7 @@ CONFIG_FB_MB862XX=m
 CONFIG_FB_MB862XX_PCI_GDC=y
 CONFIG_FB_MB862XX_I2C=y
 CONFIG_FB_HYPERV=m
-CONFIG_FB_SIMPLE=y
+CONFIG_FB_SIMPLE=m
 CONFIG_FB_SSD1307=m
 CONFIG_FB_SM712=m
 # end of Frame buffer Devices
@@ -6844,6 +6898,7 @@ CONFIG_SND_HDA_CODEC_SIGMATEL=m
 CONFIG_SND_HDA_CODEC_VIA=m
 CONFIG_SND_HDA_CODEC_HDMI=m
 CONFIG_SND_HDA_CODEC_CIRRUS=m
+CONFIG_SND_HDA_CODEC_CS8409=m
 CONFIG_SND_HDA_CODEC_CONEXANT=m
 CONFIG_SND_HDA_CODEC_CA0110=m
 CONFIG_SND_HDA_CODEC_CA0132=m
@@ -6912,6 +6967,7 @@ CONFIG_SND_SOC_AMD_ACP3x=m
 CONFIG_SND_SOC_AMD_RV_RT5682_MACH=m
 CONFIG_SND_SOC_AMD_RENOIR=m
 CONFIG_SND_SOC_AMD_RENOIR_MACH=m
+CONFIG_SND_SOC_AMD_ACP5x=m
 CONFIG_SND_ATMEL_SOC=m
 CONFIG_SND_BCM63XX_I2S_WHISTLER=m
 CONFIG_SND_DESIGNWARE_I2S=m
@@ -7036,7 +7092,6 @@ CONFIG_SND_SOC_SOF_ALDERLAKE=m
 CONFIG_SND_SOC_SOF_HDA_COMMON=m
 CONFIG_SND_SOC_SOF_HDA_LINK=y
 CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
-# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
 CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m
 CONFIG_SND_SOC_SOF_HDA=m
 CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=m
@@ -7122,6 +7177,7 @@ CONFIG_SND_SOC_ES8328_SPI=m
 CONFIG_SND_SOC_GTM601=m
 CONFIG_SND_SOC_HDAC_HDMI=m
 CONFIG_SND_SOC_HDAC_HDA=m
+CONFIG_SND_SOC_ICS43432=m
 CONFIG_SND_SOC_INNO_RK3036=m
 CONFIG_SND_SOC_MAX98088=m
 CONFIG_SND_SOC_MAX98090=m
@@ -7189,6 +7245,7 @@ CONFIG_SND_SOC_RT711_SDCA_SDW=m
 CONFIG_SND_SOC_RT715=m
 CONFIG_SND_SOC_RT715_SDW=m
 CONFIG_SND_SOC_RT715_SDCA_SDW=m
+CONFIG_SND_SOC_SDW_MOCKUP=m
 CONFIG_SND_SOC_SGTL5000=m
 CONFIG_SND_SOC_SI476X=m
 CONFIG_SND_SOC_SIGMADSP=m
@@ -7232,6 +7289,7 @@ CONFIG_SND_SOC_TS3A227E=m
 CONFIG_SND_SOC_TSCS42XX=m
 CONFIG_SND_SOC_TSCS454=m
 CONFIG_SND_SOC_UDA1334=m
+CONFIG_SND_SOC_WCD_MBHC=m
 CONFIG_SND_SOC_WCD938X=m
 CONFIG_SND_SOC_WCD938X_SDW=m
 CONFIG_SND_SOC_WM5102=m
@@ -7927,12 +7985,10 @@ CONFIG_LEDS_CLASS_MULTICOLOR=m
 #
 CONFIG_LEDS_88PM860X=m
 CONFIG_LEDS_APU=m
-CONFIG_LEDS_AS3645A=m
 CONFIG_LEDS_LM3530=m
 CONFIG_LEDS_LM3532=m
 CONFIG_LEDS_LM3533=m
 CONFIG_LEDS_LM3642=m
-CONFIG_LEDS_LM3601X=m
 CONFIG_LEDS_MT6323=m
 CONFIG_LEDS_PCA9532=m
 CONFIG_LEDS_PCA9532_GPIO=y
@@ -7974,12 +8030,14 @@ CONFIG_LEDS_NIC78BX=m
 CONFIG_LEDS_TI_LMU_COMMON=m
 CONFIG_LEDS_LM36274=m
 CONFIG_LEDS_TPS6105X=m
-CONFIG_LEDS_SGM3140=m
 
 #
 # Flash and Torch LED drivers
 #
+CONFIG_LEDS_AS3645A=m
+CONFIG_LEDS_LM3601X=m
 # CONFIG_LEDS_RT8515 is not set
+CONFIG_LEDS_SGM3140=m
 
 #
 # LED Triggers
@@ -8221,11 +8279,14 @@ CONFIG_DMA_VIRTUAL_CHANNELS=y
 CONFIG_DMA_ACPI=y
 CONFIG_ALTERA_MSGDMA=m
 CONFIG_INTEL_IDMA64=m
+CONFIG_INTEL_IDXD_BUS=m
 CONFIG_INTEL_IDXD=m
+# CONFIG_INTEL_IDXD_COMPAT is not set
 CONFIG_INTEL_IDXD_SVM=y
 CONFIG_INTEL_IDXD_PERFMON=y
 CONFIG_INTEL_IOATDMA=m
 CONFIG_PLX_DMA=m
+CONFIG_AMD_PTDMA=m
 CONFIG_QCOM_HIDMA_MGMT=m
 CONFIG_QCOM_HIDMA=m
 CONFIG_DW_DMAC_CORE=m
@@ -8254,6 +8315,7 @@ CONFIG_SYNC_FILE=y
 # CONFIG_DMABUF_DEBUG is not set
 # CONFIG_DMABUF_SELFTESTS is not set
 # CONFIG_DMABUF_HEAPS is not set
+# CONFIG_DMABUF_SYSFS_STATS is not set
 # end of DMABUF options
 
 CONFIG_DCA=m
@@ -8288,14 +8350,15 @@ CONFIG_UIO_PRUSS=m
 CONFIG_UIO_MF624=m
 CONFIG_UIO_HV_GENERIC=m
 CONFIG_UIO_DFL=m
+CONFIG_VFIO=m
 CONFIG_VFIO_IOMMU_TYPE1=m
 CONFIG_VFIO_VIRQFD=m
-CONFIG_VFIO=m
 CONFIG_VFIO_NOIOMMU=y
-CONFIG_VFIO_PCI=m
-CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_PCI_CORE=m
 CONFIG_VFIO_PCI_MMAP=y
 CONFIG_VFIO_PCI_INTX=y
+CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_VGA=y
 CONFIG_VFIO_PCI_IGD=y
 CONFIG_VFIO_MDEV=m
 CONFIG_IRQ_BYPASS_MANAGER=m
@@ -8317,6 +8380,7 @@ CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
 CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
 CONFIG_VDPA=m
 # CONFIG_VDPA_SIM is not set
+CONFIG_VDPA_USER=m
 CONFIG_IFCVF=m
 CONFIG_MLX5_VDPA=y
 CONFIG_MLX5_VDPA_NET=m
@@ -8661,8 +8725,6 @@ CONFIG_X86_PLATFORM_DEVICES=y
 CONFIG_ACPI_WMI=m
 CONFIG_WMI_BMOF=m
 CONFIG_HUAWEI_WMI=m
-CONFIG_INTEL_WMI_SBL_FW_UPDATE=m
-CONFIG_INTEL_WMI_THUNDERBOLT=m
 CONFIG_MXM_WMI=m
 CONFIG_PEAQ_WMI=m
 CONFIG_XIAOMI_WMI=m
@@ -8677,6 +8739,7 @@ CONFIG_ASUS_LAPTOP=m
 CONFIG_ASUS_WIRELESS=m
 CONFIG_ASUS_WMI=m
 CONFIG_ASUS_NB_WMI=m
+CONFIG_MERAKI_MX100=m
 CONFIG_EEEPC_LAPTOP=m
 CONFIG_EEEPC_WMI=m
 CONFIG_X86_PLATFORM_DRIVERS_DELL=y
@@ -8714,14 +8777,38 @@ CONFIG_THINKPAD_ACPI_VIDEO=y
 CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
 CONFIG_THINKPAD_LMI=m
 CONFIG_X86_PLATFORM_DRIVERS_INTEL=y
+CONFIG_INTEL_ATOMISP2_PDX86=y
+CONFIG_INTEL_ATOMISP2_LED=m
+CONFIG_INTEL_SAR_INT1092=m
 CONFIG_INTEL_CHT_INT33FE=m
 CONFIG_INTEL_SKL_INT3472=m
-CONFIG_INTEL_ATOMISP2_LED=m
+CONFIG_INTEL_PMC_CORE=y
+CONFIG_INTEL_PMT_CLASS=m
+CONFIG_INTEL_PMT_TELEMETRY=m
+CONFIG_INTEL_PMT_CRASHLOG=m
+
+#
+# Intel Speed Select Technology interface support
+#
+CONFIG_INTEL_SPEED_SELECT_INTERFACE=m
+# end of Intel Speed Select Technology interface support
+
+CONFIG_INTEL_TELEMETRY=m
+CONFIG_INTEL_WMI=y
+CONFIG_INTEL_WMI_SBL_FW_UPDATE=m
+CONFIG_INTEL_WMI_THUNDERBOLT=m
 CONFIG_INTEL_HID_EVENT=m
+CONFIG_INTEL_VBTN=m
 CONFIG_INTEL_INT0002_VGPIO=m
-CONFIG_INTEL_MENLOW=m
 CONFIG_INTEL_OAKTRAIL=m
-CONFIG_INTEL_VBTN=m
+CONFIG_INTEL_BXTWC_PMIC_TMU=m
+CONFIG_INTEL_CHTDC_TI_PWRBTN=m
+CONFIG_INTEL_MRFLD_PWRBTN=m
+CONFIG_INTEL_PUNIT_IPC=m
+CONFIG_INTEL_RST=m
+CONFIG_INTEL_SMARTCONNECT=m
+# CONFIG_INTEL_TURBO_MAX_3 is not set
+CONFIG_INTEL_UNCORE_FREQ_CONTROL=m
 CONFIG_MSI_LAPTOP=m
 CONFIG_MSI_WMI=m
 CONFIG_PCENGINES_APU2=m
@@ -8744,31 +8831,11 @@ CONFIG_I2C_MULTI_INSTANTIATE=m
 # CONFIG_TOUCHSCREEN_DMI is not set
 CONFIG_FW_ATTR_CLASS=m
 CONFIG_INTEL_IPS=m
-CONFIG_INTEL_RST=m
-CONFIG_INTEL_SMARTCONNECT=m
-
-#
-# Intel Speed Select Technology interface support
-#
-CONFIG_INTEL_SPEED_SELECT_INTERFACE=m
-# end of Intel Speed Select Technology interface support
-
-# CONFIG_INTEL_TURBO_MAX_3 is not set
-CONFIG_INTEL_UNCORE_FREQ_CONTROL=m
-CONFIG_INTEL_BXTWC_PMIC_TMU=m
-CONFIG_INTEL_CHTDC_TI_PWRBTN=m
-CONFIG_INTEL_MRFLD_PWRBTN=m
-CONFIG_INTEL_PMC_CORE=y
-CONFIG_INTEL_PMT_CLASS=m
-CONFIG_INTEL_PMT_TELEMETRY=m
-CONFIG_INTEL_PMT_CRASHLOG=m
-CONFIG_INTEL_PUNIT_IPC=m
 CONFIG_INTEL_SCU_IPC=y
 CONFIG_INTEL_SCU=y
 CONFIG_INTEL_SCU_PCI=y
 CONFIG_INTEL_SCU_PLATFORM=m
 CONFIG_INTEL_SCU_IPC_UTIL=m
-CONFIG_INTEL_TELEMETRY=m
 CONFIG_PMC_ATOM=y
 CONFIG_CHROME_PLATFORMS=y
 CONFIG_CHROMEOS_LAPTOP=m
@@ -8857,6 +8924,8 @@ CONFIG_IOMMU_IO_PGTABLE=y
 # end of Generic IOMMU Pagetable Support
 
 # CONFIG_IOMMU_DEBUGFS is not set
+# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set
+CONFIG_IOMMU_DEFAULT_DMA_LAZY=y
 # CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
 CONFIG_IOMMU_DMA=y
 CONFIG_IOMMU_SVA_LIB=y
@@ -9156,6 +9225,7 @@ CONFIG_SCD30_CORE=m
 CONFIG_SCD30_I2C=m
 CONFIG_SCD30_SERIAL=m
 CONFIG_SENSIRION_SGP30=m
+CONFIG_SENSIRION_SGP40=m
 CONFIG_SPS30=m
 CONFIG_SPS30_I2C=m
 CONFIG_SPS30_SERIAL=m
@@ -9454,6 +9524,7 @@ CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE=m
 #
 # Digital potentiometers
 #
+CONFIG_AD5110=m
 CONFIG_AD5272=m
 CONFIG_DS1803=m
 CONFIG_MAX5432=m
@@ -9803,6 +9874,7 @@ CONFIG_F2FS_FS_SECURITY=y
 # CONFIG_F2FS_CHECK_FS is not set
 # CONFIG_F2FS_FAULT_INJECTION is not set
 # CONFIG_F2FS_FS_COMPRESSION is not set
+# CONFIG_F2FS_IOSTAT is not set
 CONFIG_ZONEFS_FS=m
 CONFIG_FS_DAX=y
 CONFIG_FS_DAX_PMD=y
@@ -9810,7 +9882,6 @@ CONFIG_FS_POSIX_ACL=y
 CONFIG_EXPORTFS=y
 # CONFIG_EXPORTFS_BLOCK_OPS is not set
 CONFIG_FILE_LOCKING=y
-CONFIG_MANDATORY_FILE_LOCKING=y
 # CONFIG_FS_ENCRYPTION is not set
 CONFIG_FS_VERITY=y
 # CONFIG_FS_VERITY_DEBUG is not set
@@ -9845,15 +9916,12 @@ CONFIG_OVERLAY_FS=m
 # Caches
 #
 CONFIG_NETFS_SUPPORT=m
-# CONFIG_NETFS_STATS is not set
+CONFIG_NETFS_STATS=y
 CONFIG_FSCACHE=m
 CONFIG_FSCACHE_STATS=y
-# CONFIG_FSCACHE_HISTOGRAM is not set
 # CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
 CONFIG_CACHEFILES=m
 # CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
 # end of Caches
 
 #
@@ -9879,6 +9947,10 @@ CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
 CONFIG_NTFS_FS=m
 # CONFIG_NTFS_DEBUG is not set
 # CONFIG_NTFS_RW is not set
+CONFIG_NTFS3_FS=m
+# CONFIG_NTFS3_64BIT_CLUSTER is not set
+CONFIG_NTFS3_LZX_XPRESS=y
+# CONFIG_NTFS3_FS_POSIX_ACL is not set
 # end of DOS/FAT/EXFAT/NT Filesystems
 
 #
@@ -9992,6 +10064,7 @@ CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
 # CONFIG_PSTORE_PMSG is not set
 # CONFIG_PSTORE_FTRACE is not set
 CONFIG_PSTORE_RAM=m
+# CONFIG_PSTORE_BLK is not set
 CONFIG_SYSV_FS=m
 CONFIG_UFS_FS=m
 # CONFIG_UFS_FS_WRITE is not set
@@ -10055,7 +10128,6 @@ CONFIG_CEPH_FS_SECURITY_LABEL=y
 CONFIG_CIFS=m
 # CONFIG_CIFS_STATS2 is not set
 CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
-CONFIG_CIFS_WEAK_PW_HASH=y
 CONFIG_CIFS_UPCALL=y
 CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
@@ -10066,6 +10138,8 @@ CONFIG_CIFS_DFS_UPCALL=y
 CONFIG_CIFS_SWN_UPCALL=y
 # CONFIG_CIFS_SMB_DIRECT is not set
 CONFIG_CIFS_FSCACHE=y
+# CONFIG_SMB_SERVER is not set
+CONFIG_SMBFS_COMMON=m
 CONFIG_CODA_FS=m
 CONFIG_AFS_FS=m
 # CONFIG_AFS_DEBUG is not set
@@ -10232,13 +10306,24 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity,apparmor,selinux,smack,tomoyo"
 #
 # Kernel hardening options
 #
+CONFIG_GCC_PLUGIN_STRUCTLEAK=y
 
 #
 # Memory initialization
 #
-CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_NONE is not set
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set
+CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=y
+# CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE is not set
+CONFIG_GCC_PLUGIN_STACKLEAK=y
+CONFIG_STACKLEAK_TRACK_MIN_SIZE=100
+# CONFIG_STACKLEAK_METRICS is not set
+CONFIG_STACKLEAK_RUNTIME_DISABLE=y
 CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
 # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
+# CONFIG_ZERO_CALL_USED_REGS is not set
 # end of Memory initialization
 # end of Kernel hardening options
 # end of Security options
@@ -10399,6 +10484,8 @@ CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
 CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
 CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
 CONFIG_CRYPTO_SM4=m
+CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64=m
+CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64=m
 CONFIG_CRYPTO_TEA=m
 CONFIG_CRYPTO_TWOFISH=m
 CONFIG_CRYPTO_TWOFISH_COMMON=m
@@ -10457,6 +10544,7 @@ CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
 CONFIG_CRYPTO_LIB_POLY1305=m
 CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
 CONFIG_CRYPTO_LIB_SHA256=y
+CONFIG_CRYPTO_LIB_SM4=m
 CONFIG_CRYPTO_HW=y
 CONFIG_CRYPTO_DEV_PADLOCK=y
 CONFIG_CRYPTO_DEV_PADLOCK_AES=m
@@ -10718,6 +10806,8 @@ CONFIG_ARCH_HAS_EARLY_DEBUG=y
 CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
 # CONFIG_UBSAN is not set
 CONFIG_HAVE_ARCH_KCSAN=y
+CONFIG_HAVE_KCSAN_COMPILER=y
+# CONFIG_KCSAN is not set
 # end of Generic Kernel Debugging Instruments
 
 CONFIG_DEBUG_KERNEL=y
@@ -10760,9 +10850,9 @@ CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
 # CONFIG_KASAN is not set
 CONFIG_HAVE_ARCH_KFENCE=y
 CONFIG_KFENCE=y
-CONFIG_KFENCE_STATIC_KEYS=y
 CONFIG_KFENCE_SAMPLE_INTERVAL=0
 CONFIG_KFENCE_NUM_OBJECTS=255
+CONFIG_KFENCE_STATIC_KEYS=y
 CONFIG_KFENCE_STRESS_TEST_FAULTS=0
 # end of Memory Debugging
 
@@ -10851,7 +10941,6 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
 # end of RCU Debugging
 
 # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
 # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
 # CONFIG_LATENCYTOP is not set
 CONFIG_USER_STACKTRACE_SUPPORT=y
@@ -10929,7 +11018,6 @@ CONFIG_IO_STRICT_DEVMEM=y
 #
 # x86 Debugging
 #
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
 CONFIG_EARLY_PRINTK_USB=y
 # CONFIG_X86_VERBOSE_BOOTUP is not set
@@ -10971,7 +11059,6 @@ CONFIG_CC_HAS_SANCOV_TRACE_PC=y
 CONFIG_RUNTIME_TESTING_MENU=y
 # CONFIG_LKDTM is not set
 # CONFIG_TEST_MIN_HEAP is not set
-# CONFIG_TEST_SORT is not set
 # CONFIG_TEST_DIV64 is not set
 # CONFIG_KPROBES_SANITY_TEST is not set
 # CONFIG_BACKTRACE_SELF_TEST is not set
diff --git a/gnu/packages/aux-files/linux-libre/5.4-i686.conf b/gnu/packages/aux-files/linux-libre/5.4-i686.conf
index 4e2d7795c7..4c4f258dcd 100644
--- a/gnu/packages/aux-files/linux-libre/5.4-i686.conf
+++ b/gnu/packages/aux-files/linux-libre/5.4-i686.conf
@@ -648,7 +648,7 @@ CONFIG_ALIX=y
 CONFIG_NET5501=y
 CONFIG_GEOS=y
 CONFIG_AMD_NB=y
-# CONFIG_X86_SYSFB is not set
+CONFIG_X86_SYSFB=y
 # end of Bus options (PCI etc.)
 
 #
@@ -672,7 +672,13 @@ CONFIG_ISCSI_IBFT_FIND=y
 CONFIG_ISCSI_IBFT=m
 CONFIG_FW_CFG_SYSFS=m
 # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
+CONFIG_GOOGLE_FIRMWARE=y
+# CONFIG_GOOGLE_SMI is not set
+CONFIG_GOOGLE_COREBOOT_TABLE=y
+# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
+CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
+# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
+# CONFIG_GOOGLE_VPD is not set
 
 #
 # EFI (Extensible Firmware Interface) Support
diff --git a/gnu/packages/aux-files/linux-libre/5.4-x86_64.conf b/gnu/packages/aux-files/linux-libre/5.4-x86_64.conf
index 5815caa770..ec8609171e 100644
--- a/gnu/packages/aux-files/linux-libre/5.4-x86_64.conf
+++ b/gnu/packages/aux-files/linux-libre/5.4-x86_64.conf
@@ -632,7 +632,7 @@ CONFIG_MMCONF_FAM10H=y
 # CONFIG_ISA_BUS is not set
 CONFIG_ISA_DMA_API=y
 CONFIG_AMD_NB=y
-# CONFIG_X86_SYSFB is not set
+CONFIG_X86_SYSFB=y
 # end of Bus options (PCI etc.)
 
 #
@@ -659,7 +659,13 @@ CONFIG_ISCSI_IBFT_FIND=y
 CONFIG_ISCSI_IBFT=m
 CONFIG_FW_CFG_SYSFS=m
 # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
+CONFIG_GOOGLE_FIRMWARE=y
+# CONFIG_GOOGLE_SMI is not set
+CONFIG_GOOGLE_COREBOOT_TABLE=y
+# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
+CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
+# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
+# CONFIG_GOOGLE_VPD is not set
 
 #
 # EFI (Extensible Firmware Interface) Support
diff --git a/gnu/packages/aux-files/python/sitecustomize.py b/gnu/packages/aux-files/python/sitecustomize.py
index 65d3c7d554..71e328b9ac 100644
--- a/gnu/packages/aux-files/python/sitecustomize.py
+++ b/gnu/packages/aux-files/python/sitecustomize.py
@@ -20,13 +20,26 @@
 import os
 import sys
 
-python_root = os.path.realpath(sys.executable).split('/bin/')[0]
-major_minor = '{}.{}'.format(sys.version_info[0], sys.version_info[1])
-site_packages_prefix = 'lib/python' + major_minor + '/site-packages'
-python_site = python_root + '/' + site_packages_prefix
+# Commentary:
+#
+# Site-specific customization for Guix.
+#
+# The program below honors the GUIX_PYTHONPATH environment variable to
+# discover Python packages.  File names appearing in this variable that match
+# a predefined versioned installation prefix are added to the sys.path.  To be
+# considered, a Python package must be installed under the
+# 'lib/pythonX.Y/site-packages' directory, where X and Y are the major and
+# minor version numbers of the Python interpreter.
+#
+# Code:
+
+major_minor = '{}.{}'.format(*sys.version_info)
+site_packages_prefix = os.path.join(
+    'lib', 'python' + major_minor, 'site-packages')
+python_site = os.path.join(sys.prefix, site_packages_prefix)
 
 try:
-    all_sites_raw = os.environ['GUIX_PYTHONPATH'].split(':')
+    all_sites_raw = os.environ['GUIX_PYTHONPATH'].split(os.path.pathsep)
 except KeyError:
     all_sites_raw = []
 # Normalize paths, otherwise a trailing slash would cause it to not match.
@@ -35,7 +48,8 @@ matching_sites = [p for p in all_sites_norm
                   if p.endswith(site_packages_prefix)]
 
 # Insert sites matching the current version into sys.path, right before
-# Python's own site.
+# Python's own site.  This way, the user can override the libraries provided
+# by Python itself.
 sys_path_absolute = [os.path.realpath(p) for p in sys.path]
 index = sys_path_absolute.index(python_site)
-sys.path = sys.path[:index] + matching_sites + sys.path[index:]
+sys.path[index:index] = matching_sites
diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm
index c113707283..3cc5a6964e 100644
--- a/gnu/packages/avr.scm
+++ b/gnu/packages/avr.scm
@@ -168,8 +168,7 @@ C++.")
        #:make-flags
        (list (string-append "PREFIX=" (assoc-ref %outputs "out")))))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("xxd" ,xxd)))
+     (list unzip xxd))
     (home-page "https://github.com/ryansuchocki/microscheme/")
     (synopsis "Scheme subset for Atmel microcontrollers")
     (description
diff --git a/gnu/packages/axoloti.scm b/gnu/packages/axoloti.scm
index 411ebbc610..f680d6fb83 100644
--- a/gnu/packages/axoloti.scm
+++ b/gnu/packages/axoloti.scm
@@ -205,7 +205,7 @@
        ;; for uploading compiled patches and firmware
        ("dfu-util" ,dfu-util-for-axoloti)))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "http://www.axoloti.com/")
     (synopsis "Audio development environment for the Axoloti core board")
     (description
@@ -351,9 +351,8 @@ runtime.")
        ("java-jgit" ,java-jgit-4.2)
        ("axoloti-runtime" ,axoloti-runtime)))
     (native-inputs
-     `(("ant" ,ant)
-       ("zip" ,zip) ; for repacking the jar
-       ("unzip" ,unzip)))
+     (list ant zip ; for repacking the jar
+           unzip))
     (description
      "The Axoloti patcher offers a “patcher” environment similar to Pure Data
 for sketching digital audio algorithms.  The patches run on a standalone
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index e5237b3048..fdb84898bb 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
-;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Christine Lemmer-Webber <cwebber@dustycloud.org>
@@ -80,6 +80,7 @@
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages rsync)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
@@ -88,7 +89,7 @@
 (define-public duplicity
   (package
     (name "duplicity")
-    (version "0.8.20")
+    (version "0.8.21")
     (source
      (origin
       (method url-fetch)
@@ -97,7 +98,7 @@
                           "-series/" version "/+download/duplicity-"
                           version ".tar.gz"))
       (sha256
-       (base32 "0d125mxknpn44xwgqzzak9y5ydigscrpjv9d63126mfc6yfngr5v"))))
+       (base32 "0ld4bhsi6iv4bvy99pblbr7vlwy9jbgfd6flyvb8qwbl8rvadzjp"))))
     (build-system python-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)     ; for msgfmt
@@ -114,12 +115,14 @@
        ("mock" ,python-mock)))
     (propagated-inputs
      `(("lockfile" ,python-lockfile)
+       ("pygobject" ,python-pygobject)
        ("urllib3" ,python-urllib3)))
     (inputs
-     `(("librsync" ,librsync)
-       ("lftp" ,lftp)
-       ("gnupg" ,gnupg)                 ; gpg executable needed
-       ("util-linux" ,util-linux)))     ; for setsid
+     (list dbus ; dbus-launch (Gio backend)
+           librsync
+           lftp
+           gnupg ; gpg executable needed
+           util-linux))     ; for setsid
     (arguments
      `(#:test-target "test"
        #:phases
@@ -129,11 +132,14 @@
              (substitute* "duplicity/gpginterface.py"
                (("self.call = u'gpg'")
                 (string-append "self.call = '" (assoc-ref inputs "gnupg") "/bin/gpg'")))
-
+             (substitute* "duplicity/backends/giobackend.py"
+               (("subprocess.Popen\\(\\[u'dbus-launch'\\]")
+                (string-append "subprocess.Popen([u'"
+                               (assoc-ref inputs "dbus")
+                               "/bin/dbus-launch']")))
              (substitute* '("testing/functional/__init__.py"
                             "testing/overrides/bin/lftp")
-               (("/bin/sh") (which "sh")))
-             #t))
+               (("/bin/sh") (which "sh")))))
          (add-before 'check 'set-up-tests
            (lambda* (#:key inputs #:allow-other-keys)
              (setenv "HOME" (getcwd))   ; gpg needs to write to $HOME
@@ -141,9 +147,8 @@
                      (search-input-directory inputs "share/zoneinfo"))
              ;; Some things respect TMPDIR, others hard-code /tmp, and the
              ;; defaults don't match up, breaking test_restart.  Fix it.
-             (setenv "TMPDIR" "/tmp")
-             #t)))))
-    (home-page "http://duplicity.nongnu.org/index.html")
+             (setenv "TMPDIR" "/tmp"))))))
+    (home-page "https://duplicity.gitlab.io/duplicity-web/")
     (synopsis "Encrypted backup using rsync algorithm")
     (description
      "Duplicity backs up directories by producing encrypted tar-format volumes
@@ -168,8 +173,7 @@ spying and/or modification by the server.")
                (base32
                 "11mx8q29cr0sryd11awab7y4mhqgbamb1ss77rffjj6in8pb4hdk"))))
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)))
+     (list automake autoconf))
     (build-system gnu-build-system)
     (synopsis "File verification and repair tools")
     (description "Par2cmdline uses Reed-Solomon error-correcting codes to
@@ -195,14 +199,14 @@ can even repair them.")
        (base32
         "02bnczg01cyhajmm4rhbnc0ja0dd9ikv9fwv28asxh1rlx9yr0b7"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("tar" ,tar)
-       ("lzop" ,lzop)
-       ("mcrypt" ,mcrypt)
-       ("openssh" ,openssh)
-       ("gnupg" ,gnupg-1)))
+     (list glib
+           tar
+           lzop
+           mcrypt
+           openssh
+           gnupg-1))
     (arguments
      `(#:configure-flags
        `(,(string-append "--sbindir=" (assoc-ref %outputs "out") "/bin"))
@@ -234,13 +238,13 @@ backups (called chunks) to allow easy burning to CD/DVD.")
          "16r95rlmikll1k8vbhh06vq6x3srkc10hzxjjf3021mjs2ld65qf"))))
     (build-system gnu-build-system)
     (inputs
-     `(("bzip2" ,bzip2)
-       ("libxml2" ,libxml2)
-       ("lzo" ,lzo)
-       ("nettle" ,nettle)
-       ("xz" ,xz)
-       ("zlib" ,zlib)
-       ("zstd" ,zstd "lib")))
+     (list bzip2
+           libxml2
+           lzo
+           nettle
+           xz
+           zlib
+           `(,zstd "lib")))
     (arguments
      `(#:configure-flags '("--disable-static")
        #:phases
@@ -332,21 +336,15 @@ random access nor for in-place modification.")
         (base32 "0bzyv6qmnivxnv9nw7lnfn46k0m1dlxcjj53zcva6v8y8084l1iw"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-
-       ;; For tests.
-       ("dejagnu" ,dejagnu)))
+     (list autoconf automake pkg-config
+           ;; For tests.
+           dejagnu))
     (inputs
      ;; XXX Compiling with nettle (encryption) support requires patching out
      ;; -Werror from GNUmakefile.in.  Then, rdup-tr-{en,de}crypt tests fail:
      ;; free(): invalid pointer
      ;; ** rdup-tr: SIGPIPE received, exiting
-     `(("glib" ,glib)
-       ("pcre" ,pcre)
-       ("libarchive" ,libarchive)
-       ("mcrypt" ,mcrypt)))
+     (list glib pcre libarchive mcrypt))
     (arguments
      `(#:parallel-build? #f             ;race conditions
        #:phases
@@ -387,7 +385,7 @@ list and implement the backup strategy.")
 (define-public snapraid
   (package
     (name "snapraid")
-    (version "11.5")
+    (version "11.6")
     (source
      (origin
        (method git-fetch)
@@ -396,7 +394,7 @@ list and implement the backup strategy.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0dlhdsmq5l208zldfr9z9g0p67wry81dr0r23lpybb5c9fm2f2rm"))))
+        (base32 "1jpg97my0akh2ayzy0nm4yqiv4gcx79rgyrkzd19yyv3iy719vcw"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -409,13 +407,11 @@ list and implement the backup strategy.")
              (setenv "VERSION" ,version)
              (patch-shebang "autover.sh"))))))
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
-
-       ;; For the tests.
-       ("valgrind" ,valgrind)))
+     (list automake autoconf
+           ;; For the tests.
+           valgrind))
     (inputs
-     `(("util-linux" ,util-linux "lib"))) ; libblkid
+     (list `(,util-linux "lib"))) ; libblkid
     (home-page "https://www.snapraid.it/")
     (synopsis "Efficient backups using parity snapshots across disk arrays")
     (description
@@ -457,7 +453,7 @@ remain fully idle, saving power and producing less noise.")
          "0miklk4bqblpyzh1bni4x6lqn88fa8fjn15x1k1n8bxkx60nlymd"))))
     (build-system gnu-build-system)
     (inputs
-     `(("librsync" ,librsync-0.9)))
+     (list librsync-0.9))
     (arguments
      `(#:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out"))
                       ,(string-append "CC=" ,(cc-for-target)))
@@ -488,10 +484,9 @@ errors.")
         (base32 "11rvjcp77zwgkphz1kyf5yqgr3rlss7dm9xzmvpvc4lp99xq7drb"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (inputs
-     `(("python" ,python)
-       ("librsync" ,librsync)))
+     (list python librsync))
     (arguments
      `(#:tests? #f))                    ; Tests require root/sudo
     (home-page "https://rdiff-backup.net/")
@@ -530,8 +525,7 @@ rdiff-backup is easy to use and settings have sensible defaults.")
            (lambda _
              (invoke "make" "test"))))))
     (inputs
-     `(("perl" ,perl)
-       ("rsync" ,rsync)))
+     (list perl rsync))
     (home-page "https://rsnapshot.org")
     (synopsis "Deduplicating snapshot backup utility based on rsync")
     (description "rsnapshot is a file system snapshot utility based on rsync.
@@ -551,7 +545,6 @@ rsnapshot uses hard links to deduplicate identical files.")
               (sha256
                (base32
                 "0fpdyxww41ba52d98blvnf543xvirq1v9xz1i3x1gm9lzlzpmc2g"))
-              (patches (search-patches "diffutils-gets-undeclared.patch"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -596,22 +589,20 @@ rsnapshot uses hard links to deduplicate identical files.")
                       ;; some obscure reason.  Better skip it.
                       (setenv "XFAIL_TESTS" "utils/block-server"))))))
     (native-inputs
-     `(("guile" ,guile-2.0)
-       ("gperf" ,gperf-3.0)                  ;see <https://bugs.gnu.org/32382>
-       ("pkg-config" ,pkg-config)
-       ("rpcsvc-proto" ,rpcsvc-proto)))           ;for 'rpcgen'
+     (list guile-2.0 gperf-3.0 ;see <https://bugs.gnu.org/32382>
+           pkg-config rpcsvc-proto))           ;for 'rpcgen'
     (inputs
-     `(("guile" ,guile-2.0)
-       ("util-linux" ,util-linux)
-       ("libtirpc" ,libtirpc)
-       ("gnutls" ,gnutls)
-       ("tdb" ,tdb)
-       ("bdb" ,bdb)
-       ("gdbm" ,gdbm)
-       ("libgcrypt" ,libgcrypt)
-       ("lzo" ,lzo)
-       ("bzip2" ,bzip2)
-       ("zlib" ,zlib)))
+     (list guile-2.0
+           util-linux
+           libtirpc
+           gnutls
+           tdb
+           bdb
+           gdbm
+           libgcrypt
+           lzo
+           bzip2
+           zlib))
     (home-page "https://nongnu.org/libchop/")
     (synopsis "Tools & library for data backup and distributed storage")
     (description
@@ -736,16 +727,14 @@ detection, and lossless compression.")
                                (string-append share "/fish/vendor_completions.d")))
                #t))))))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-pytest" ,python-pytest)))
+     (list python-cython python-setuptools-scm python-pytest))
     (inputs
-     `(("acl" ,acl)
-       ("libb2" ,libb2)
-       ("lz4" ,lz4)
-       ("openssl" ,openssl)
-       ("python-llfuse" ,python-llfuse)
-       ("zstd" ,zstd "lib")))
+     (list acl
+           libb2
+           lz4
+           openssl
+           python-llfuse
+           `(,zstd "lib")))
     (synopsis "Deduplicated, encrypted, authenticated and compressed backups")
     (description "Borg is a deduplicating backup program.  Optionally, it
 supports compression and authenticated encryption.  The main goal of Borg is to
@@ -769,12 +758,9 @@ to not fully trusted targets.  Borg is a fork of Attic.")
                 "04ny5s5z05gk6davbwkjkraan781k2xzw6kjwp75h6ncv45dv1sb"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("fuse" ,fuse)
-       ("libxml2" ,libxml2)
-       ("ntfs-3g" ,ntfs-3g)
-       ("openssl" ,openssl)))
+     (list fuse libxml2 ntfs-3g openssl))
     (arguments
      `(#:configure-flags
        (list "--disable-static"
@@ -834,8 +820,7 @@ NTFS volumes using @code{ntfs-3g}, preserving NTFS-specific attributes.")
                     ;; You probably want a service with file(s) to point to.
                     (confdir "/etc/dirvish")
 
-                    (perl (string-append (assoc-ref %build-inputs "perl")
-                                         "/bin/perl"))
+                    (perl (search-input-file inputs "/bin/perl"))
                     (loadconfig.pl (call-with-input-file "loadconfig.pl"
                                      read-string)))
 
@@ -886,10 +871,7 @@ NTFS volumes using @code{ntfs-3g}, preserving NTFS-specific attributes.")
                (for-each write-man man-pages)
                #t))))))
     (inputs
-     `(("perl" ,perl)
-       ("rsync" ,rsync)
-       ("perl-libtime-period" ,perl-libtime-period)
-       ("perl-libtime-parsedate" ,perl-libtime-parsedate)))
+     (list perl rsync perl-libtime-period perl-libtime-parsedate))
     (home-page "http://dirvish.org/")
     (synopsis "Fast, disk based, rotating network backup system")
     (description
@@ -1035,11 +1017,7 @@ precious backup space.
     (arguments
      `(#:tests? #f))                    ;no test
     (inputs
-     `(("lzo" ,lzo)
-       ("libressl" ,libressl)
-       ("protobuf" ,protobuf)
-       ("xz" ,xz)
-       ("zlib" ,zlib)))
+     (list lzo libressl protobuf xz zlib))
     (home-page "http://zbackup.org")
     (synopsis "Versatile deduplicating backup tool")
     (description
@@ -1073,12 +1051,10 @@ is format-agnostic, so you can feed virtually any files to it.")
          "--disable-readline"
          "--disable-rmt")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("openssl" ,openssl)
-       ("zlib" ,zlib)
-       ("util-linux" ,util-linux "lib")
-       ("e2fsprogs" ,e2fsprogs)))
+     (list openssl zlib
+           `(,util-linux "lib") e2fsprogs))
     (home-page "https://dump.sourceforge.io/")
     (synopsis "Ext2/3/4 file system dump/restore utilities")
     (description "Dump examines files in a file system, determines which ones
@@ -1115,17 +1091,14 @@ interactive mode.")
                 (string-append prefix " 3600" suffix "\n")))
              #t)))))
     (inputs
-     `(("acl" ,acl)
-       ("librsync" ,librsync)
-       ("ncurses" ,ncurses)             ; for the live status monitor
-       ("openssl" ,openssl)
-       ("uthash" ,uthash)
-       ("zlib" ,zlib)))
+     (list acl
+           librsync
+           ncurses ; for the live status monitor
+           openssl
+           uthash
+           zlib))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("check" ,check-0.14)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake check-0.14 pkg-config))
     (home-page "https://burp.grke.org")
     (synopsis "Differential backup and restore")
     (description "Burp is a network backup and restore program.  It attempts
@@ -1136,33 +1109,26 @@ backup.")
 (define-public disarchive
   (package
     (name "disarchive")
-    (version "0.2.1")
+    (version "0.3.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://files.ngyro.com/disarchive/"
                                   "disarchive-" version ".tar.gz"))
               (sha256
                (base32
-                "1jypk0gdwxqbqxiblww863nzq0kwnc676q68j32sprqd7ilnq02s"))
-              (patches (search-patches "disarchive-cross-compilation.patch"))))
+                "0jgc53rrbas8i4z13l2ii99cpav1ma73spsjg70ygihf0635r3dh"))))
     (build-system gnu-build-system)
-    (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'delete-configure
-                    (lambda _
-                      (delete-file "configure"))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("guile" ,guile-3.0)             ;for cross-compilation
-       ("guile-gcrypt" ,guile-gcrypt)
-       ("guile-quickcheck" ,guile-quickcheck)))
+     (list autoconf
+           automake
+           pkg-config
+           guile-3.0 ;for cross-compilation
+           guile-gcrypt
+           guile-quickcheck))
     (inputs
-     `(("guile" ,guile-3.0)
-       ("zlib" ,zlib)))
+     (list guile-3.0 zlib))
     (propagated-inputs
-     `(("guile-gcrypt" ,guile-gcrypt)))
+     (list guile-gcrypt))
     (home-page "https://ngyro.com/software/disarchive.html")
     (synopsis "Software archive disassembler")
     (description "Disarchive can disassemble software archives into data
@@ -1172,3 +1138,46 @@ original files.  For example, a software archive made using tar and
 Gzip will need to describe the order of files in the tarball and the
 compression parameters used by Gzip.")
     (license license:gpl3+)))
+
+(define-public borgmatic
+  (package
+    (name "borgmatic")
+    (version "1.5.21")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "borgmatic" version))
+       (sha256
+        (base32 "1kw3mvyby8zd7ql3g930w7z55k8pi9iwj43kh8lvi58b4nzrvamq"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'configure
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Set absolute store path to borg.
+             (substitute* "borgmatic/commands/borgmatic.py"
+               (("location\\.get\\('local_path', 'borg'\\)")
+                (string-append "location.get('local_path', '"
+                               (assoc-ref inputs "borg") "/bin/borg"
+                               "')")))))
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               ;; Tests require the installed executable.
+               (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
+                                             ":" (getenv "PATH")))
+               (invoke "pytest")))))))
+    (inputs
+     (list borg python-colorama python-jsonschema python-requests
+           python-ruamel.yaml))
+    (native-inputs
+     (list python-flexmock python-pytest python-pytest-cov))
+    (home-page "https://torsion.org/borgmatic/")
+    (synopsis "Simple, configuration-driven backup software")
+    (description
+     "borgmatic is simple, configuration-driven backup software for servers
+and workstations.  Protect your files with client-side encryption.  Backup
+your databases too.  Monitor it all with integrated third-party services.
+borgmatic is powered by borg.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 174af43917..dd590575a4 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -19,6 +19,7 @@
 ;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -71,6 +72,7 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:export (glibc
+            make-ld-wrapper
             libiconv-if-needed))
 
 ;;; Commentary:
@@ -266,15 +268,15 @@ differences.")
 (define-public diffutils
   (package
    (name "diffutils")
-   (version "3.7")
+   (version "3.8")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/diffutils/diffutils-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "09isrg0isjinv8c535nxsi1s86wfdfzml80dbw41dj9x3hiad9xk"))
-            (patches (search-patches "coreutils-gnulib-tests.patch"))))
+              "1v4g8gi0lgakqa7iix8s4fq7lq6l92vw3rjd9wfd2rhjng8xggd6"))
+            (patches (search-patches "diffutils-fix-signal-processing.patch"))))
    (build-system gnu-build-system)
    (native-inputs (list perl))
    (synopsis "Comparing and merging files")
@@ -521,8 +523,6 @@ change.  GNU make offers many powerful extensions over the standard utility.")
       (patches (search-patches "binutils-loongson-workaround.patch"
                                "binutils-2.37-file-descriptor-leak.patch"))))
    (build-system gnu-build-system)
-
-   ;; TODO: Add dependency on zlib + those for Gold.
    (arguments
     `(#:configure-flags '(;; Add `-static-libgcc' to not retain a dependency
                           ;; on GCC when bootstrapping.
@@ -556,6 +556,23 @@ included.")
    (license gpl3+)
    (home-page "https://www.gnu.org/software/binutils/")))
 
+;;; TODO: Merge into binutils on the next world rebuild.
+(define-public binutils-next
+  (package/inherit binutils
+    (name "binutils-next")
+    (version "2.37")
+    (arguments
+     (substitute-keyword-arguments (package-arguments binutils)
+       ((#:out-of-source? _ #f)         ;recommended in the README
+        #t)
+       ((#:configure-flags flags)
+        `(cons* "--enable-64-bit-bfd"
+                "--enable-compressed-debug-sections=all"
+                "--enable-lto"
+                "--enable-separate-code"
+                "--enable-threads"
+                ,flags))))))
+
 ;; FIXME: ath9k-firmware-htc-binutils.patch do not apply on 2.34 because of a
 ;; big refactoring of xtensa-modules.c (commit 567607c11fbf7105 upstream).
 ;; Keep this version around until the patch is updated.
@@ -569,40 +586,34 @@ included.")
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "1cmd0riv37bqy9mwbg6n3523qgr8b3bbm5kwj19sjrasl4yq9d0c"))))
+               "1cmd0riv37bqy9mwbg6n3523qgr8b3bbm5kwj19sjrasl4yq9d0c"))
+             (patches '())))
    (arguments
     (substitute-keyword-arguments (package-arguments binutils)
       ((#:make-flags _ ''()) ''())))
    (properties '())))
 
 (define-public binutils-gold
-  (package/inherit binutils
+  (package/inherit binutils-next
     (name "binutils-gold")
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'patch-source-shebangs 'patch-more-shebangs
-           (lambda _
-             (substitute* "gold/Makefile.in"
-               (("/bin/sh") (which "sh"))))))
-       ,@(substitute-keyword-arguments (package-arguments binutils)
-         ; Upstream is aware of unrelocatable test failures on arm*.
-         ((#:tests? _ #f)
-          (if (any (cute string-prefix? <> (or (%current-target-system)
-                                               (%current-system)))
-                   '("i686" "x86_64"))
-              '#t '#f))
-         ((#:configure-flags flags)
-          `(cons* "--enable-gold=default"
-                 (delete "LDFLAGS=-static-libgcc" ,flags))))))
-     (native-inputs
-     `(("bc" ,bc)))
-     (inputs
-     `(("gcc:lib" ,(canonical-package gcc) "lib")))))
+     (substitute-keyword-arguments (package-arguments binutils)
+       ((#:configure-flags flags)
+        `(cons* "--enable-gold=default"
+                (delete "LDFLAGS=-static-libgcc" ,flags)))
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (add-after 'patch-source-shebangs 'patch-more-shebangs
+             (lambda _
+               (substitute* "gold/Makefile.in"
+                 (("/bin/sh") (which "sh")))))))))
+    (native-inputs
+     `(("bc" ,bc)))))
 
 (define* (make-ld-wrapper name #:key
                           (target (const #f))
                           binutils
+                          (linker "ld")
                           (guile (canonical-package guile-3.0))
                           (bash (canonical-package bash))
                           (guile-for-build guile))
@@ -612,7 +623,9 @@ wrapper uses GUILE and BASH.
 
 TARGET must be a one-argument procedure that, given a system type, returns a
 cross-compilation target triplet or #f.  When the result is not #f, make a
-wrapper for the cross-linker for that target, called 'TARGET-ld'."
+wrapper for the cross-linker for that target, called 'TARGET-ld'.  To use a
+different linker than the default \"ld\", such as \"ld.gold\" the linker name
+can be provided via the LINKER argument."
   ;; Note: #:system->target-triplet is a procedure so that the evaluation of
   ;; its result can be delayed until the 'arguments' field is evaluated, thus
   ;; in a context where '%current-system' is accurate.
@@ -637,8 +650,9 @@ wrapper for the cross-linker for that target, called 'TARGET-ld'."
                      (let* ((out (assoc-ref %outputs "out"))
                             (bin (string-append out "/bin"))
                             (ld  ,(if target
-                                      `(string-append bin "/" ,target "-ld")
-                                      '(string-append bin "/ld")))
+                                      `(string-append bin "/" ,target "-"
+                                                      ,linker)
+                                      `(string-append bin "/" ,linker)))
                             (go  (string-append ld ".go")))
 
                        (setvbuf (current-output-port)
@@ -663,11 +677,10 @@ wrapper for the cross-linker for that target, called 'TARGET-ld'."
                           (string-append (assoc-ref %build-inputs "binutils")
                                          ,(if target
                                               (string-append "/bin/"
-                                                             target "-ld")
-                                              "/bin/ld"))))
+                                                             target "-" linker)
+                                              (string-append "/bin/" linker)))))
                        (chmod ld #o555)
-                       (compile-file ld #:output-file go)
-                       #t)))))
+                       (compile-file ld #:output-file go))))))
     (synopsis "The linker wrapper")
     (description
      "The linker wrapper (or @code{ld-wrapper}) wraps the linker to add any
@@ -676,8 +689,6 @@ the store.")
     (home-page "https://www.gnu.org/software/guix//")
     (license gpl3+)))
 
-(export make-ld-wrapper)
-
 (define-public glibc
   ;; This is the GNU C Library, used on GNU/Linux and GNU/Hurd.  Prior to
   ;; version 2.28, GNU/Hurd used a different glibc branch.
@@ -775,11 +786,6 @@ the store.")
                   '("--disable-werror")
                   '()))
 
-      ;; Arrange so that /etc/rpc & co. go to $out/etc.
-      #:make-flags (list (string-append "sysconfdir="
-                                        (assoc-ref %outputs "out")
-                                        "/etc"))
-
       #:tests? #f                                 ; XXX
       #:phases (modify-phases %standard-phases
                  (add-before
@@ -793,8 +799,7 @@ the store.")
                            (bash (or (assoc-ref inputs "static-bash")
                                      (assoc-ref native-inputs "static-bash"))))
                       ;; Install the rpc data base file under `$out/etc/rpc'.
-                      ;; FIXME: Use installFlags = [ "sysconfdir=$(out)/etc" ];
-                      (substitute* "sunrpc/Makefile"
+                      (substitute* "inet/Makefile"
                         (("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix)
                          (string-append out "/etc/rpc" suffix "\n"))
                         (("^install-others =.*$")
@@ -830,15 +835,6 @@ the store.")
                          (string-append "#define _PATH_BSHELL \""
                                         bash "/bin/sh\"\n")))
 
-                      ;; Nscd uses __DATE__ and __TIME__ to create a string to
-                      ;; make sure the client and server come from the same
-                      ;; libc.  Use something deterministic instead.
-                      (substitute* "nscd/nscd_stat.c"
-                        (("static const char compilation\\[21\\] =.*$")
-                         (string-append
-                          "static const char compilation[21] = \""
-                          (string-take (basename out) 20) "\";\n")))
-
                       ;; Make sure we don't retain a reference to the
                       ;; bootstrap Perl.
                       (substitute* "malloc/mtrace.pl"
@@ -959,11 +955,24 @@ with the Linux kernel.")
                         "glibc-2.31-hurd-clock_gettime_monotonic.patch"
                         "glibc-hurd-signal-sa-siginfo.patch"
                         "glibc-hurd-mach-print.patch"
-                        "glibc-hurd-gettyent.patch"))))))
+                        "glibc-hurd-gettyent.patch"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments glibc)
+       ((#: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.30
   (package
-    (inherit glibc)
+    (inherit glibc-2.31)
     (version "2.30")
     (native-inputs
      ;; This fails with a build error in libc-tls.c when using GCC 10.  Use an
@@ -1230,7 +1239,7 @@ command.")
     (name "tzdata")
     ;; This package should be kept in sync with python-pytz in (gnu packages
     ;; time).
-    (version "2021a")
+    (version "2021e")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -1238,7 +1247,7 @@ command.")
                    version ".tar.gz"))
              (sha256
               (base32
-               "022fn6gkmp7pamlgab04x0dm5hnyn2m2fcnyr3pvm36612xd5rrr"))))
+               "1cdjdcxl0s9xf0dg1z64kh7llm80byxqlzrkkjzcdlyh6yvl5v07"))))
     (build-system gnu-build-system)
     (arguments
      (list #:tests? #f
@@ -1306,7 +1315,7 @@ command.")
                           version ".tar.gz"))
                     (sha256
                      (base32
-                      "1l02b0jiwp3fl0xd6227i69d26rmx3yrnq0ssq9vvdmm4jhvyipb")))))
+                      "0x8pcfmjvxk29yfh8bklchv2f0vpl4yih0gc4wyx292l78wncijq")))))
     (home-page "https://www.iana.org/time-zones")
     (synopsis "Database of current and historical time zones")
     (description "The Time Zone Database (often called tz or zoneinfo)
@@ -1321,28 +1330,10 @@ and daylight-saving rules.")
 ;;; thousands of packages (for example, in a core-updates rebuild). This package
 ;;; will typically be obsolete and should never be referred to by a built
 ;;; package.
-(define-public tzdata-for-tests
-  (hidden-package
-   (package
-     (inherit tzdata)
-     (version "2021a")
-     (source (origin
-               (method url-fetch)
-               (uri (string-append
-                     "https://data.iana.org/time-zones/releases/tzdata"
-                     version ".tar.gz"))
-               (sha256
-                (base32
-                 "022fn6gkmp7pamlgab04x0dm5hnyn2m2fcnyr3pvm36612xd5rrr"))))
-     (inputs
-      (list (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://data.iana.org/time-zones/releases/tzcode"
-                    version ".tar.gz"))
-              (sha256
-               (base32
-                "1l02b0jiwp3fl0xd6227i69d26rmx3yrnq0ssq9vvdmm4jhvyipb"))))))))
+;;;
+;;; Please make this a hidden-package if it is different from the primary tzdata
+;;; package.
+(define-public tzdata-for-tests tzdata)
 
 (define-public libiconv
   (package
diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index 7e98367bbb..cf40ee94f6 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -137,8 +137,7 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
      (outputs '("out"
                 "doc"                         ;1.7 MiB of HTML and extra files
                 "include"))                   ;headers used by extensions
-     (inputs `(("readline" ,readline)
-               ("ncurses" ,ncurses)))             ;TODO: add texinfo
+     (inputs (list readline ncurses))             ;TODO: add texinfo
      (arguments
       `(;; When cross-compiling, `configure' incorrectly guesses that job
         ;; control is missing.
@@ -285,7 +284,7 @@ without modification.")
               (patches
                (search-patches "bash-completion-directories.patch"))))
     (build-system gnu-build-system)
-    (native-inputs `(("util-linux" ,util-linux)))
+    (native-inputs (list util-linux))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-after
@@ -378,10 +377,8 @@ capturing.")
                (base32
                 "0f59zh4d4pa1a7ybs5zl6h0csbqqv11lbnq0jl1dgwm1s6p49bsq"))))
     (inputs
-     `(("bash" ,bash)
-       ("coreutils" ,coreutils)
-       ("guile" ,guile-3.0) ;for wrap-script
-       ("grep" ,grep)))
+     (list bash coreutils guile-3.0 ;for wrap-script
+           grep))
     (arguments
      `(#:modules ((guix build utils))
        #:builder
@@ -428,14 +425,14 @@ in Bash, but you can use it to test any UNIX program.")
         (base32 "0s1sifqzqmr0dnciv06yqrpzgj11d7n0gy5zaxh6b3x8bx7k75l8"))))
     (build-system gnu-build-system)
     (inputs
-     `(("elfutils" ,elfutils)
-       ("libelf" ,libelf)
-       ("libffi" ,libffi)
-       ("zlib" ,zlib)
-       ;; Require a bash with C plugin support to build.
-       ("bash" ,bash)))
+     (list elfutils
+           libelf
+           libffi
+           zlib
+           ;; Require a bash with C plugin support to build.
+           bash))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/taviso/ctypes.sh")
     (synopsis "Foreign function interface for Bash")
     (description "Bash-ctypes is a Bash plugin that provides a foreign
diff --git a/gnu/packages/batik.scm b/gnu/packages/batik.scm
index 9cff05d949..2072dd467c 100644
--- a/gnu/packages/batik.scm
+++ b/gnu/packages/batik.scm
@@ -84,7 +84,7 @@ public interface TimeEvent extends Event {
 ")))
              #t)))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://www.w3.org/Style/CSS/SAC/")
     (synopsis "W3C SAC interface for CSS parsers in Java")
     (description "This package provides a SAC interface by the W3C.
@@ -136,9 +136,9 @@ public interface EventListenerInitializer {
 ")))
              #t)))))
     (propagated-inputs
-     `(("java-w3c-smil" ,java-w3c-smil-3.0)))
+     (list java-w3c-smil-3.0))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://www.w3.org/Style/CSS/SAC/")
     (synopsis "W3C SVG 1.0 interface")
     (description "This package provides a SVG 1.0 interface.")
@@ -189,7 +189,7 @@ public interface EventListenerInitializer {
            (lambda* (#:key source #:allow-other-keys)
              (invoke "unzip" source))))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://www.w3.org/Style/CSS/SAC/")
     (synopsis "W3C SAC interface for CSS parsers in Java")
     (description "This package provides a SAC interface by the W3C.
@@ -248,8 +248,7 @@ SAC is an interface for CSS parsers.")
        ("java-mockito" ,java-mockito-1)
        ("java-objenesis" ,java-objenesis)))
     (propagated-inputs
-     `(("java-commons-io" ,java-commons-io)
-       ("java-commons-logging-minimal" ,java-commons-logging-minimal)))
+     (list java-commons-io java-commons-logging-minimal))
     (home-page "https://xmlgraphics.apache.org/commons/")
     (synopsis "XMLGraphics constants")
     (description "This package provides XMLGraphics constants (originally
diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm
index 5ced11bb64..2698d56da0 100644
--- a/gnu/packages/bdw-gc.scm
+++ b/gnu/packages/bdw-gc.scm
@@ -60,7 +60,7 @@
                                (%current-target-system)))
              '("--disable-gcj-support")
              '()))))
-   (native-inputs `(("pkg-config" ,pkg-config)))
+   (native-inputs (list pkg-config))
    (propagated-inputs
     (if (%current-target-system)
         ;; The build system refuses to check for compiler intrinsics when
@@ -109,7 +109,7 @@ C or C++ programs, though that is not its primary goal.")
              (sha256
               (base32
                "10jhhi79d5brwlsyhwgpnrmc8nhlf7aan2lk9xhgihk5jc6srbvc"))))
-   (propagated-inputs `(("libatomic-ops" ,libatomic-ops)))))
+   (propagated-inputs (list libatomic-ops))))
 
 (define-public libgc/back-pointers
   (package/inherit
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index d9796d2999..b3be9bfed4 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2017 Dave Love <fx@gnu.org>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
@@ -47,74 +47,54 @@
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages storage)
   #:use-module (ice-9 match))
 
 (define-public fio
   (package
     (name "fio")
-    (version "3.27")
+    (version "3.28")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://brick.kernel.dk/snaps/"
                                   "fio-" version ".tar.bz2"))
               (sha256
                (base32
-                "0akaixip86ycbxr13bjff2121rgfbz35fa9l39677wpwzckp4f4d"))))
+                "0ba9cnjrnm3nwcfbhh5x2sycr54j3yn1rqn76kjdyz40f3pdg3qm"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:test-target "test"
+     `(#:modules (,@%gnu-build-system-modules
+                  (ice-9 textual-ports))
+       #:test-target "test"
+       #:configure-flags '("--disable-native") ;don't generate code for the build CPU
        #:phases
        (modify-phases %standard-phases
-         (add-after
-          'unpack 'patch-paths
-          (lambda* (#:key inputs outputs #:allow-other-keys)
-            (let ((out (assoc-ref outputs "out"))
-                  (gnuplot (search-input-file inputs "/bin/gnuplot")))
-              (substitute* "tools/plot/fio2gnuplot"
-                (("/usr/share/fio") (string-append out "/share/fio"))
-                ;; FIXME (upstream): The 'gnuplot' executable is used inline
-                ;; in various os.system() calls mixed with *.gnuplot filenames.
-                (("; do gnuplot") (string-append "; do " gnuplot))
-                (("gnuplot mymath") (string-append gnuplot " mymath"))
-                (("gnuplot mygraph") (string-append gnuplot " mygraph")))
-              #t)))
          (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda* (#:key (configure-flags ''()) outputs #:allow-other-keys)
              ;; The configure script doesn't understand some of the
-             ;; GNU options, so we can't use #:configure-flags.
+             ;; GNU options, so we can't use the stock phase.
              (let ((out (assoc-ref outputs "out")))
-               (invoke "./configure"
-                       (string-append "--prefix=" out))
-               #t)))
+               (apply invoke "./configure"
+                      (string-append "--prefix=" out)
+                      configure-flags))))
          ;; The main `fio` executable is fairly small and self contained.
-         ;; Moving the auxiliary python and gnuplot scripts to a separate
-         ;; output saves almost 400 MiB on the closure.
+         ;; Moving the auxiliary scripts to a separate output saves ~100 MiB
+         ;; on the closure.
          (add-after 'install 'move-outputs
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((oldbin (string-append (assoc-ref outputs "out") "/bin"))
-                   (newbin (string-append (assoc-ref outputs "utils") "/bin")))
+                   (newbin (string-append (assoc-ref outputs "utils") "/bin"))
+                   (script? (lambda* (file #:rest _)
+                              (call-with-input-file file
+                                (lambda (port)
+                                  (char=? #\# (peek-char port)))))))
                (mkdir-p newbin)
                (for-each (lambda (file)
-                           (let ((src (string-append oldbin "/" file))
-                                 (dst (string-append newbin "/" file)))
-                             (link src dst)
-                             (delete-file src)))
-                         '("fio2gnuplot"  "fiologparser_hist.py"
-                           "fiologparser.py"))
-               ;; Make sure numpy et.al is found.
-               (wrap-program (string-append newbin "/fiologparser_hist.py")
-                 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))
-               #t))))))
+                           (link file (string-append newbin "/" (basename file)))
+                           (delete-file file))
+                         (find-files oldbin script?))))))))
     (outputs '("out" "utils"))
     (inputs
-     `(("ceph" ,ceph "lib")
-       ("libaio" ,libaio)
-       ("gnuplot" ,gnuplot)
-       ("zlib" ,zlib)
-       ("python-numpy" ,python2-numpy)
-       ("python-pandas" ,python2-pandas)
-       ("python" ,python-2)))
+     (list libaio python zlib))
     (home-page "https://github.com/axboe/fio")
     (synopsis "Flexible I/O tester")
     (description
@@ -150,7 +130,7 @@ is to write a job file matching the I/O load one wants to simulate.")
                   #t))))
     (build-system gnu-build-system)
     (inputs
-     `(("openmpi" ,openmpi)))
+     (list openmpi))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -190,9 +170,6 @@ Efficiency of the MPI implementation.
 @end itemize")
     (license license:cpl1.0)))
 
-(define-public imb-openmpi
-  (deprecated-package "imb-openmpi" intel-mpi-benchmarks/openmpi))
-
 (define-public multitime
   (package
     (name "multitime")
@@ -262,7 +239,7 @@ tests.")
                 "010bmlmi0nrlp3aq7p624sfaj5a65lswnyyxk3cnz1bqig0cn2vf"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (arguments '(#:tests? #f)) ; there are no tests
     (home-page "https://doc.coker.com.au/projects/bonnie/")
     (synopsis "Hard drive and file system benchmark suite")
@@ -319,20 +296,18 @@ file metadata operations that can be performed per second.")
                             "not test_custom_exit_code"
                             "not test_webserver") " and ")))))))
     (propagated-inputs
-     `(("python-configargparse" ,python-configargparse)
-       ("python-flask" ,python-flask)
-       ("python-flask-basicauth" ,python-flask-basicauth)
-       ("python-gevent" ,python-gevent)
-       ("python-geventhttpclient" ,python-geventhttpclient)
-       ("python-msgpack" ,python-msgpack)
-       ("python-psutil" ,python-psutil)
-       ("python-pyzmq" ,python-pyzmq)
-       ("python-requests" ,python-requests)
-       ("python-werkzeug" ,python-werkzeug)))
+     (list python-configargparse
+           python-flask
+           python-flask-basicauth
+           python-gevent
+           python-geventhttpclient
+           python-msgpack
+           python-psutil
+           python-pyzmq
+           python-requests
+           python-werkzeug))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pyquery" ,python-pyquery)
-       ("python-pytest" ,python-pytest))) ;for more easily skipping tests
+     (list python-mock python-pyquery python-pytest)) ;for more easily skipping tests
     (home-page "https://locust.io/")
     (synopsis "Distributed load testing framework")
     (description "Locust is a performance testing tool that aims to be easy to
@@ -404,8 +379,7 @@ and options.  With careful benchmarking, different hardware can be compared.")
       (build-system cmake-build-system)
       (home-page "https://github.com/krrishnarraj/clpeak")
       (inputs
-        `(("opencl-clhpp" ,opencl-clhpp)
-          ("opencl-icd-loader" ,opencl-icd-loader)))
+        (list opencl-clhpp opencl-icd-loader))
       (synopsis "OpenCL benchmark tool")
       (description
         "A synthetic benchmarking tool to measure peak capabilities of OpenCL
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 25202410e5..71037a86e2 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2021 Hong Li <hli@mdc-berlin.de>
 ;;; Copyright © 2021 Tim Howes <timhowes@lavabit.com>
+;;; Copyright © 2021 Nicolas Vallet <nls.vallet@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -72,7 +73,7 @@
      `((upstream-name . "org.EcK12.eg.db")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)))
+     (list r-annotationdbi))
     (home-page "https://bioconductor.org/packages/org.EcK12.eg.db")
     (synopsis "Genome wide annotation for E coli strain K12")
     (description
@@ -102,7 +103,7 @@ analysis.")
     (properties `((upstream-name . "org.Bt.eg.db")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)))
+     (list r-annotationdbi))
     (home-page "https://bioconductor.org/packages/org.Bt.eg.db")
     (synopsis "Genome wide annotation for Bovine")
     (description
@@ -124,7 +125,7 @@ based on mapping using Entrez Gene identifiers.")
     (properties `((upstream-name . "reactome.db")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)))
+     (list r-annotationdbi))
     (home-page "https://bioconductor.org/packages/reactome.db/")
     (synopsis "Annotation maps for reactome")
     (description
@@ -147,7 +148,7 @@ database, assembled using data from REACTOME.")
      `((upstream-name . "BSgenome.Btaurus.UCSC.bosTau8")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bsgenome" ,r-bsgenome)))
+     (list r-bsgenome))
     (home-page
      "https://www.bioconductor.org/packages/BSgenome.Btaurus.UCSC.bosTau8/")
     (synopsis "Full genome sequences for Bos taurus (UCSC version bosTau8)")
@@ -170,7 +171,7 @@ taurus (UCSC version bosTau8).")
      `((upstream-name . "BSgenome.Celegans.UCSC.ce6")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bsgenome" ,r-bsgenome)))
+     (list r-bsgenome))
     (home-page
      "https://www.bioconductor.org/packages/BSgenome.Celegans.UCSC.ce6/")
     (synopsis "Full genome sequences for Worm")
@@ -195,7 +196,7 @@ objects.")
      `((upstream-name . "BSgenome.Celegans.UCSC.ce10")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bsgenome" ,r-bsgenome)))
+     (list r-bsgenome))
     (home-page
      "https://www.bioconductor.org/packages/BSgenome.Celegans.UCSC.ce10/")
     (synopsis "Full genome sequences for Worm")
@@ -220,7 +221,7 @@ objects.")
      `((upstream-name . "BSgenome.Dmelanogaster.UCSC.dm6")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bsgenome" ,r-bsgenome)))
+     (list r-bsgenome))
     (home-page
      "https://www.bioconductor.org/packages/BSgenome.Dmelanogaster.UCSC.dm6/")
     (synopsis "Full genome sequences for Fly")
@@ -245,7 +246,7 @@ objects.")
      `((upstream-name . "BSgenome.Dmelanogaster.UCSC.dm3")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bsgenome" ,r-bsgenome)))
+     (list r-bsgenome))
     (home-page
      "https://www.bioconductor.org/packages/BSgenome.Dmelanogaster.UCSC.dm3/")
     (synopsis "Full genome sequences for Fly")
@@ -270,9 +271,7 @@ Biostrings objects.")
      `((upstream-name . "BSgenome.Dmelanogaster.UCSC.dm3.masked")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bsgenome" ,r-bsgenome)
-       ("r-bsgenome-dmelanogaster-ucsc-dm3"
-        ,r-bsgenome-dmelanogaster-ucsc-dm3)))
+     (list r-bsgenome r-bsgenome-dmelanogaster-ucsc-dm3))
     (home-page "https://www.bioconductor.org/packages/BSgenome.Dmelanogaster.UCSC.dm3.masked/")
     (synopsis "Full masked genome sequences for Fly")
     (description
@@ -286,6 +285,28 @@ RepeatMasker (RM mask), and (4) the mask of repeats from Tandem Repeats
 Finder (TRF mask).  Only the AGAPS and AMB masks are \"active\" by default.")
     (license license:artistic2.0)))
 
+(define-public r-bsgenome-drerio-ucsc-danrer11
+  (package
+    (name "r-bsgenome-drerio-ucsc-danrer11")
+    (version "1.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "BSgenome.Drerio.UCSC.danRer11"
+                              version 'annotation))
+       (sha256
+        (base32 "08a928mqzv2jxngjcs4yr6ni1b9z9al6jdngwi438j8hm41cwk4v"))))
+    (properties `((upstream-name . "BSgenome.Drerio.UCSC.danRer11")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-bsgenome))
+    (home-page "https://bioconductor.org/packages/BSgenome.Drerio.UCSC.danRer11")
+    (synopsis "Full genome sequences for Danio rerio (UCSC version danRer11)")
+    (description
+     "This package provides full genome sequences for Danio rerio (Zebrafish)
+as provided by UCSC (danRer11, May 2017) and stored in Biostrings objects.")
+    (license license:artistic2.0)))
+
 (define-public r-bsgenome-hsapiens-1000genomes-hs37d5
   (package
     (name "r-bsgenome-hsapiens-1000genomes-hs37d5")
@@ -301,7 +322,7 @@ Finder (TRF mask).  Only the AGAPS and AMB masks are \"active\" by default.")
      `((upstream-name . "BSgenome.Hsapiens.1000genomes.hs37d5")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bsgenome" ,r-bsgenome)))
+     (list r-bsgenome))
     (home-page
      "https://www.bioconductor.org/packages/BSgenome.Hsapiens.1000genomes.hs37d5/")
     (synopsis "Full genome sequences for Homo sapiens")
@@ -324,7 +345,7 @@ Finder (TRF mask).  Only the AGAPS and AMB masks are \"active\" by default.")
          "0y75qdq578fh6420vbvsbwmdw8jvr3g06qli2h3vj3pxmjykh9c1"))))
     (properties `((upstream-name . "BSgenome.Hsapiens.NCBI.GRCh38")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-bsgenome" ,r-bsgenome)))
+    (propagated-inputs (list r-bsgenome))
     (home-page
      "https://bioconductor.org/packages/release/data/annotation/html/\
 BSgenome.Hsapiens.NCBI.GRCh38.html")
@@ -349,9 +370,7 @@ provided by NCBI (GRCh38, 2013-12-17) and stored in Biostrings objects.")
      `((upstream-name . "BSgenome.Hsapiens.UCSC.hg19.masked")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bsgenome" ,r-bsgenome)
-       ("r-bsgenome-hsapiens-ucsc-hg19"
-        ,r-bsgenome-hsapiens-ucsc-hg19)))
+     (list r-bsgenome r-bsgenome-hsapiens-ucsc-hg19))
     (home-page "https://bioconductor.org/packages/BSgenome.Hsapiens.UCSC.hg19.masked/")
     (synopsis "Full masked genome sequences for Homo sapiens")
     (description
@@ -380,7 +399,7 @@ default.")
      `((upstream-name . "BSgenome.Mmusculus.UCSC.mm9")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bsgenome" ,r-bsgenome)))
+     (list r-bsgenome))
     (home-page
      "https://www.bioconductor.org/packages/BSgenome.Mmusculus.UCSC.mm9/")
     (synopsis "Full genome sequences for Mouse")
@@ -404,9 +423,7 @@ provided by UCSC (mm9, July 2007) and stored in Biostrings objects.")
      `((upstream-name . "BSgenome.Mmusculus.UCSC.mm9.masked")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bsgenome" ,r-bsgenome)
-       ("r-bsgenome-mmusculus-ucsc-mm9"
-        ,r-bsgenome-mmusculus-ucsc-mm9)))
+     (list r-bsgenome r-bsgenome-mmusculus-ucsc-mm9))
     (home-page "https://bioconductor.org/packages/BSgenome.Mmusculus.UCSC.mm9.masked/")
     (synopsis "Full masked genome sequences for Mouse")
     (description
@@ -435,7 +452,7 @@ default."  )
      `((upstream-name . "BSgenome.Mmusculus.UCSC.mm10")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bsgenome" ,r-bsgenome)))
+     (list r-bsgenome))
     (home-page
      "https://www.bioconductor.org/packages/BSgenome.Mmusculus.UCSC.mm10/")
     (synopsis "Full genome sequences for Mouse")
@@ -478,7 +495,7 @@ ID and species.  It is used by functions in the GenomeInfoDb package.")
      `((upstream-name . "GO.db")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)))
+     (list r-annotationdbi))
     (home-page "https://bioconductor.org/packages/GO.db")
     (synopsis "Annotation maps describing the entire Gene Ontology")
     (description
@@ -500,12 +517,12 @@ information about the latest version of the Gene Ontologies.")
      `((upstream-name . "Homo.sapiens")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-go-db" ,r-go-db)
-       ("r-org-hs-eg-db" ,r-org-hs-eg-db)
-       ("r-txdb-hsapiens-ucsc-hg19-knowngene" ,r-txdb-hsapiens-ucsc-hg19-knowngene)
-       ("r-organismdbi" ,r-organismdbi)
-       ("r-annotationdbi" ,r-annotationdbi)))
+     (list r-genomicfeatures
+           r-go-db
+           r-org-hs-eg-db
+           r-txdb-hsapiens-ucsc-hg19-knowngene
+           r-organismdbi
+           r-annotationdbi))
     (home-page "https://bioconductor.org/packages/Homo.sapiens/")
     (synopsis "Annotation package for the Homo.sapiens object")
     (description
@@ -527,13 +544,12 @@ several related annotation packages.")
     (properties `((upstream-name . "Mus.musculus")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-go-db" ,r-go-db)
-       ("r-org-mm-eg-db" ,r-org-mm-eg-db)
-       ("r-organismdbi" ,r-organismdbi)
-       ("r-txdb-mmusculus-ucsc-mm10-knowngene"
-        ,r-txdb-mmusculus-ucsc-mm10-knowngene)))
+     (list r-annotationdbi
+           r-genomicfeatures
+           r-go-db
+           r-org-mm-eg-db
+           r-organismdbi
+           r-txdb-mmusculus-ucsc-mm10-knowngene))
     (home-page "https://bioconductor.org/packages/Mus.musculus")
     (synopsis "Annotation package for the Mus.musculus object")
     (description
@@ -555,7 +571,7 @@ from several related annotation packages.")
      `((upstream-name . "org.Ce.eg.db")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)))
+     (list r-annotationdbi))
     (home-page "https://www.bioconductor.org/packages/org.Ce.eg.db/")
     (synopsis "Genome wide annotation for Worm")
     (description
@@ -577,7 +593,7 @@ annotations for the genome of the model worm Caenorhabditis elegans.")
      `((upstream-name . "org.Dm.eg.db")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)))
+     (list r-annotationdbi))
     (home-page "https://www.bioconductor.org/packages/org.Dm.eg.db/")
     (synopsis "Genome wide annotation for Fly")
     (description
@@ -599,7 +615,7 @@ annotations for the genome of the model fruit fly Drosophila melanogaster.")
      `((upstream-name . "org.Dr.eg.db")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)))
+     (list r-annotationdbi))
     (home-page "https://www.bioconductor.org/packages/org.Dr.eg.db/")
     (synopsis "Annotation for Zebrafish")
     (description
@@ -621,7 +637,7 @@ based on mapping using Entrez Gene identifiers.")
      `((upstream-name . "org.Hs.eg.db")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)))
+     (list r-annotationdbi))
     (home-page "https://www.bioconductor.org/packages/org.Hs.eg.db/")
     (synopsis "Genome wide annotation for Human")
     (description
@@ -643,7 +659,7 @@ on mapping using Entrez Gene identifiers.")
      `((upstream-name . "org.Mm.eg.db")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)))
+     (list r-annotationdbi))
     (home-page "https://www.bioconductor.org/packages/org.Mm.eg.db/")
     (synopsis "Genome wide annotation for Mouse")
     (description
@@ -666,7 +682,7 @@ annotations for the genome of the model mouse Mus musculus.")
      `((upstream-name . "BSgenome.Hsapiens.UCSC.hg19")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bsgenome" ,r-bsgenome)))
+     (list r-bsgenome))
     (home-page
      "https://www.bioconductor.org/packages/BSgenome.Hsapiens.UCSC.hg19/")
     (synopsis "Full genome sequences for Homo sapiens")
@@ -690,7 +706,7 @@ by UCSC (hg19, February 2009) and stored in Biostrings objects.")
      `((upstream-name . "BSgenome.Hsapiens.UCSC.hg38")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bsgenome" ,r-bsgenome)))
+     (list r-bsgenome))
     (home-page
      "https://www.bioconductor.org/packages/BSgenome.Hsapiens.UCSC.hg38/")
     (synopsis "Full genome sequences for Homo sapiens")
@@ -714,7 +730,7 @@ as provided by UCSC (hg38, Dec. 2013) and stored in Biostrings objects.")
      `((upstream-name . "EnsDb.Hsapiens.v75")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ensembldb" ,r-ensembldb)))
+     (list r-ensembldb))
     (home-page "https://bioconductor.org/packages/EnsDb.Hsapiens.v75")
     (synopsis "Ensembl based annotation package")
     (description
@@ -737,8 +753,7 @@ as provided by UCSC (hg38, Dec. 2013) and stored in Biostrings objects.")
      `((upstream-name . "TxDb.Dmelanogaster.UCSC.dm6.ensGene")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-genomicfeatures" ,r-genomicfeatures)))
+     (list r-annotationdbi r-genomicfeatures))
     (home-page
      "https://bioconductor.org/packages/TxDb.Dmelanogaster.UCSC.dm6.ensGene")
     (synopsis "Annotation package for TxDb object(s)")
@@ -762,7 +777,7 @@ exposing these as TxDb objects.")
      `((upstream-name . "TxDb.Hsapiens.UCSC.hg19.knownGene")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-genomicfeatures" ,r-genomicfeatures)))
+     (list r-genomicfeatures))
     (home-page
      "https://bioconductor.org/packages/TxDb.Hsapiens.UCSC.hg19.knownGene/")
     (synopsis "Annotation package for human genome in TxDb format")
@@ -787,7 +802,7 @@ track.  The database is exposed as a @code{TxDb} object.")
      `((upstream-name . "TxDb.Hsapiens.UCSC.hg38.knownGene")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-genomicfeatures" ,r-genomicfeatures)))
+     (list r-genomicfeatures))
     (home-page
      "https://bioconductor.org/packages/TxDb.Hsapiens.UCSC.hg38.knownGene/")
     (synopsis "Annotation package for human genome in TxDb format")
@@ -812,8 +827,7 @@ track.  The database is exposed as a @code{TxDb} object.")
      `((upstream-name . "TxDb.Mmusculus.UCSC.mm9.knownGene")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-annotationdbi" ,r-annotationdbi)))
+     (list r-genomicfeatures r-annotationdbi))
     (home-page
      "https://bioconductor.org/packages/TxDb.Mmusculus.UCSC.mm9.knownGene/")
     (synopsis "Annotation package for mouse genome in TxDb format")
@@ -838,9 +852,7 @@ database is exposed as a @code{TxDb} object.")
      `((upstream-name . "TxDb.Mmusculus.UCSC.mm10.knownGene")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bsgenome" ,r-bsgenome)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-annotationdbi" ,r-annotationdbi)))
+     (list r-bsgenome r-genomicfeatures r-annotationdbi))
     (home-page
      "https://bioconductor.org/packages/TxDb.Mmusculus.UCSC.mm10.knownGene/")
     (synopsis "Annotation package for TxDb knownGene object(s) for Mouse")
@@ -867,8 +879,7 @@ based on the knownGene track.")
      `((upstream-name . "TxDb.Celegans.UCSC.ce6.ensGene")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-genomicfeatures" ,r-genomicfeatures)))
+     (list r-annotationdbi r-genomicfeatures))
     (home-page "https://bioconductor.org/packages/TxDb.Celegans.UCSC.ce6.ensGene/")
     (synopsis "Annotation package for C elegans TxDb objects")
     (description
@@ -891,11 +902,8 @@ by exposing these as TxDb objects.")
      `((upstream-name . "FDb.InfiniumMethylation.hg19")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biostrings" ,r-biostrings)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-annotationdbi" ,r-annotationdbi)
-       ("r-org-hs-eg-db" ,r-org-hs-eg-db)
-       ("r-txdb-hsapiens-ucsc-hg19-knowngene" ,r-txdb-hsapiens-ucsc-hg19-knowngene)))
+     (list r-biostrings r-genomicfeatures r-annotationdbi r-org-hs-eg-db
+           r-txdb-hsapiens-ucsc-hg19-knowngene))
     (home-page "https://bioconductor.org/packages/FDb.InfiniumMethylation.hg19/")
     (synopsis "Compiled HumanMethylation27 and HumanMethylation450 annotations")
     (description
@@ -919,7 +927,7 @@ annotations.")
      `((upstream-name . "IlluminaHumanMethylationEPICmanifest")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-minfi" ,r-minfi)))
+     (list r-minfi))
     (home-page "https://bioconductor.org/packages/IlluminaHumanMethylationEPICmanifest/")
     (synopsis "Manifest for Illumina's EPIC methylation arrays")
     (description
@@ -940,7 +948,7 @@ annotations.")
      `((upstream-name . "DO.db")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)))
+     (list r-annotationdbi))
     (home-page "https://www.bioconductor.org/packages/DO.db/")
     (synopsis "Annotation maps describing the entire Disease Ontology")
     (description
@@ -962,7 +970,7 @@ Disease Ontology.")
     (properties `((upstream-name . "PFAM.db")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)))
+     (list r-annotationdbi))
     (home-page "https://bioconductor.org/packages/PFAM.db")
     (synopsis "Set of protein ID mappings for PFAM")
     (description
@@ -986,12 +994,12 @@ using data from public repositories.")
      `((upstream-name . "phastCons100way.UCSC.hg19")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bsgenome" ,r-bsgenome)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-genomicscores" ,r-genomicscores)
-       ("r-iranges" ,r-iranges)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-bsgenome
+           r-genomeinfodb
+           r-genomicranges
+           r-genomicscores
+           r-iranges
+           r-s4vectors))
     (home-page "https://bioconductor.org/packages/phastCons100way.UCSC.hg19")
     (synopsis "UCSC phastCons conservation scores for hg19")
     (description
@@ -1017,7 +1025,7 @@ species.")
      `((upstream-name . "ABAData")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)))
+     (list r-annotationdbi))
     (home-page "https://www.bioconductor.org/packages/ABAData/")
     (synopsis "Gene expression in human brain regions from Allen Brain Atlas")
     (description
@@ -1055,38 +1063,38 @@ All datasets are restricted to protein coding genes.")
 (define-public r-aneufinder
   (package
     (name "r-aneufinder")
-    (version "1.20.0")
+    (version "1.22.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "AneuFinder" version))
               (sha256
                (base32
-                "0m6wphlriq7y21ih1p2kzml5jzcic79jc52kkk59dkjj8j88yllk"))))
-    (build-system r-build-system)
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
-    (propagated-inputs
-     `(("r-genomicranges" ,r-genomicranges)
-       ("r-aneufinderdata" ,r-aneufinderdata)
-       ("r-ecp" ,r-ecp)
-       ("r-foreach" ,r-foreach)
-       ("r-doparallel" ,r-doparallel)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-iranges" ,r-iranges)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-bamsignals" ,r-bamsignals)
-       ("r-dnacopy" ,r-dnacopy)
-       ("r-biostrings" ,r-biostrings)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-reshape2" ,r-reshape2)
-       ("r-ggdendro" ,r-ggdendro)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-reordercluster" ,r-reordercluster)
-       ("r-mclust" ,r-mclust)
-       ("r-cowplot" ,r-cowplot)))
+                "0xn8952fkchhx7m8dam6gjy86j551xp1cs67510s1qrmfgzpkjp0"))))
+    (build-system r-build-system)
+    (native-inputs
+     (list r-knitr))
+    (propagated-inputs
+     (list r-genomicranges
+           r-aneufinderdata
+           r-ecp
+           r-foreach
+           r-doparallel
+           r-biocgenerics
+           r-s4vectors
+           r-genomeinfodb
+           r-iranges
+           r-rsamtools
+           r-bamsignals
+           r-dnacopy
+           r-biostrings
+           r-genomicalignments
+           r-ggplot2
+           r-reshape2
+           r-ggdendro
+           r-ggrepel
+           r-reordercluster
+           r-mclust
+           r-cowplot))
     (home-page "https://bioconductor.org/packages/AneuFinder/")
     (synopsis "Copy number variation analysis in single-cell-sequencing data")
     (description "This package implements functions for copy number variant
@@ -1129,10 +1137,8 @@ from Illumina 450k methylation arrays.")
      `((upstream-name . "biscuiteerData")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationhub" ,r-annotationhub)
-       ("r-curl" ,r-curl)
-       ("r-experimenthub" ,r-experimenthub)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-annotationhub r-curl r-experimenthub))
+    (native-inputs (list r-knitr))
     (home-page "https://bioconductor.org/packages/biscuiteerData")
     (synopsis "Data package for Biscuiteer")
     (description
@@ -1140,6 +1146,35 @@ from Illumina 450k methylation arrays.")
 biscuiteer.")
     (license license:gpl3)))
 
+(define-public r-celldex
+  (package
+    (name "r-celldex")
+    (version "1.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "celldex" version 'experiment))
+       (sha256
+        (base32 "04w60fx3s3wlirmr65nsz6d7ig48j9fzimdr8kbdqv1g80ivdcq1"))))
+    (properties `((upstream-name . "celldex")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-annotationdbi
+           r-annotationhub
+           r-delayedarray
+           r-delayedmatrixstats
+           r-experimenthub
+           r-s4vectors
+           r-summarizedexperiment))
+    (native-inputs (list r-knitr))
+    (home-page "https://github.com/LTLA/celldex")
+    (synopsis "Reference index for cell types")
+    (description
+     "This package provides a collection of reference expression datasets with
+curated cell type labels, for use in procedures like automated annotation of
+single-cell data or deconvolution of bulk RNA-seq.")
+    (license license:gpl3)))
+
 (define-public r-chromstardata
   (package
     (name "r-chromstardata")
@@ -1160,6 +1195,34 @@ biscuiteer.")
 chromstaR package.")
     (license license:gpl3)))
 
+(define-public r-chromvarmotifs
+  (let ((commit "38bed559c1f4770b6c91c80bf3f8ea965da26076")
+        (revision "1"))
+    (package
+      (name "r-chromvarmotifs")
+      (version (git-version "0.2.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/GreenleafLab/chromVARmotifs")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0i9v1m1hrg1lkd2pnkj5nnrpks6vhhhpbdhsfl2lmjak4npxxr5q"))))
+      (properties `((upstream-name . "chromVARmotifs")))
+      (build-system r-build-system)
+      (propagated-inputs
+       `(("r-tfbstools" ,r-tfbstools)))
+      (home-page "https://github.com/GreenleafLab/chromVARmotifs")
+      (synopsis "Stores motif collections for use with motifmatchr or chromVAR")
+      (description
+       "This package stores motif collections as lists of @dfn{position
+frequency matrix} (PWMatrixList) objects provided by the @code{TFBSTools}
+package for use in R with packages like @code{motifmatchr} or
+@code{chromVAR}.")
+      (license license:expat))))
+
 (define-public r-copyhelper
   (package
     (name "r-copyhelper")
@@ -1199,8 +1262,7 @@ GenomicRanges Bioconductor package.")
      `((upstream-name . "geneLenDataBase")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rtracklayer" ,r-rtracklayer)
-       ("r-genomicfeatures" ,r-genomicfeatures)))
+     (list r-rtracklayer r-genomicfeatures))
     (home-page "https://bioconductor.org/packages/geneLenDataBase/")
     (synopsis "Lengths of mRNA transcripts for a number of genomes")
     (description
@@ -1225,7 +1287,7 @@ genomes and gene ID formats, largely based on the UCSC table browser.")
     ;; make sense to build substitutes.
     (arguments `(#:substitutable? #f))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioinformatics.mdc-berlin.de/genomation/")
     (synopsis "Experimental data for use with the genomation package")
     (description
@@ -1248,10 +1310,7 @@ downloaded from Encode.")
                 "0h124i2fb2lbj2k48zzf1n7ldqa471bs26fbd9vw50299aqx28x0"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocstyle" ,r-biocstyle)
-       ("r-dexseq" ,r-dexseq)
-       ("r-knitr" ,r-knitr)
-       ("r-rmarkdown" ,r-rmarkdown)))
+     (list r-biocstyle r-dexseq r-knitr r-rmarkdown))
     (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
@@ -1302,7 +1361,7 @@ resulting in a complete gene expression profile for each cell.")
     (properties `((upstream-name . "ALL")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)))
+     (list r-biobase))
     (home-page "https://bioconductor.org/packages/ALL")
     (synopsis "Acute Lymphoblastic Leukemia data from the Ritz laboratory")
     (description
@@ -1327,7 +1386,7 @@ the form of an @code{exprSet} object.")
     (properties `((upstream-name . "affydata")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-affy" ,r-affy)))
+     (list r-affy))
     (home-page "https://bioconductor.org/packages/affydata/")
     (synopsis "Affymetrix data for demonstration purposes")
     (description
@@ -1377,12 +1436,12 @@ yeast are also included.")
      `((upstream-name . "curatedTCGAData")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationhub" ,r-annotationhub)
-       ("r-experimenthub" ,r-experimenthub)
-       ("r-hdf5array" ,r-hdf5array)
-       ("r-multiassayexperiment" ,r-multiassayexperiment)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+     (list r-annotationhub
+           r-experimenthub
+           r-hdf5array
+           r-multiassayexperiment
+           r-s4vectors
+           r-summarizedexperiment))
     (home-page "https://bioconductor.org/packages/curatedTCGAData/")
     (synopsis "Curated data from The Cancer Genome Atlas")
     (description
@@ -1395,20 +1454,39 @@ harmonized subsetting of rows (features) and columns (patients / samples)
 across the entire multi-'omics experiment.")
     (license license:artistic2.0)))
 
+(define-public r-tcgabiolinksgui-data
+  (package
+    (name "r-tcgabiolinksgui-data")
+    (version "1.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "TCGAbiolinksGUI.data" version 'experiment))
+       (sha256
+        (base32 "08zmlvycq3jz1zy0715x9f21nf3465c51k7w2jq12sfbap36pmjm"))))
+    (properties `((upstream-name . "TCGAbiolinksGUI.data")))
+    (build-system r-build-system)
+    (native-inputs (list r-knitr))
+    (home-page "https://github.com/BioinformaticsFMRP/TCGAbiolinksGUI.data")
+    (synopsis "Data for the TCGAbiolinksGUI package")
+    (description "This package provides supporting data for the
+TCGAbiolinksGUI package.")
+    (license license:gpl3)))
+
 
 ;;; Packages
 
 (define-public r-biocversion
   (package
     (name "r-biocversion")
-    (version "3.13.1")
+    (version "3.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocVersion" version))
        (sha256
         (base32
-         "0rsw8g4g1pcjw1zbx8x17yd3drhxqk4sx3cy3ddzy5731hl6mbfi"))))
+         "0qwzkh2alw7xhjprh719la0lg1q38pmjbipy3s2fy79m4xy8y8ik"))))
     (properties `((upstream-name . "BiocVersion")))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/BiocVersion/")
@@ -1421,13 +1499,13 @@ of Bioconductor.")
 (define-public r-biocgenerics
   (package
     (name "r-biocgenerics")
-    (version "0.38.0")
+    (version "0.40.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocGenerics" version))
               (sha256
                (base32
-                "1kv7lzmyki3hi771v01nml1v1hzz8pyhqqv0xcdzqy354mlgx4m6"))))
+                "0nr5x4r8f2krnfrxm7wrzgzr7nbljypi985cbwx5hxhn95zmfifh"))))
     (properties
      `((upstream-name . "BiocGenerics")))
     (build-system r-build-system)
@@ -1441,21 +1519,21 @@ packages.")
 (define-public r-coverageview
   (package
     (name "r-coverageview")
-    (version "1.30.0")
+    (version "1.32.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "CoverageView" version))
               (sha256
                (base32
-                "1xhirbjdw09cqm4xvysxqicvqjbahavwvs7shg4cb05gwyd2ha8g"))))
+                "0sb1h5qsk41c9xisq73agqh502wv6p2j1k45s32a4bkdynf696as"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-s4vectors" ,r-s4vectors)
-       ("r-iranges" ,r-iranges)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-rsamtools" ,r-rsamtools)))
+     (list r-s4vectors
+           r-iranges
+           r-genomicranges
+           r-genomicalignments
+           r-rtracklayer
+           r-rsamtools))
     (home-page "https://bioconductor.org/packages/CoverageView/")
     (synopsis "Coverage visualization package for R")
     (description "This package provides a framework for the visualization of
@@ -1468,25 +1546,25 @@ how the coverage distributed across the genome.")
 (define-public r-cummerbund
   (package
    (name "r-cummerbund")
-   (version "2.34.0")
+   (version "2.36.0")
    (source (origin
              (method url-fetch)
              (uri (bioconductor-uri "cummeRbund" version))
              (sha256
               (base32
-               "1avvmvrmldbscc7xd6a6k22xjykbzafvqf87wh5z9rx3qlzswsjx"))))
+               "0130hrlz2jabbshis1g11ndda8b8vlirzi7a004li3cgdghscxql"))))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-biobase" ,r-biobase)
-      ("r-biocgenerics" ,r-biocgenerics)
-      ("r-fastcluster" ,r-fastcluster)
-      ("r-ggplot2" ,r-ggplot2)
-      ("r-gviz" ,r-gviz)
-      ("r-plyr" ,r-plyr)
-      ("r-reshape2" ,r-reshape2)
-      ("r-rsqlite" ,r-rsqlite)
-      ("r-rtracklayer" ,r-rtracklayer)
-      ("r-s4vectors" ,r-s4vectors)))
+    (list r-biobase
+          r-biocgenerics
+          r-fastcluster
+          r-ggplot2
+          r-gviz
+          r-plyr
+          r-reshape2
+          r-rsqlite
+          r-rtracklayer
+          r-s4vectors))
    (home-page "https://bioconductor.org/packages/cummeRbund/")
    (synopsis "Analyze Cufflinks high-throughput sequencing data")
    (description "This package allows for persistent storage, access,
@@ -1495,24 +1573,54 @@ data.  In addition, provides numerous plotting functions for commonly
 used visualizations.")
    (license license:artistic2.0)))
 
+(define-public r-dearseq
+  (package
+    (name "r-dearseq")
+    (version "1.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "dearseq" version))
+       (sha256
+        (base32
+         "07vr27rv3z86ajd62c0ilvfgz9z35qsiwwi5pv4sygbhnnjwh3rc"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-ggplot2
+           r-kernsmooth
+           r-matrixstats
+           r-patchwork
+           r-pbapply
+           r-statmod
+           r-survey
+           r-kernsmooth))
+    (home-page "https://github.com/borishejblum/dearseq")
+    (synopsis "DEA for RNA-seq data through a robust variance component test")
+    (description
+     "This is a package for Differential Expression Analysis of RNA-seq data.
+It features a variance component score test accounting for data
+heteroscedasticity through precision weights.  Perform both gene-wise and gene
+set analyses, and can deal with repeated or longitudinal data.")
+    (license license:gpl2)))
+
 (define-public r-decipher
   (package
     (name "r-decipher")
-    (version "2.20.0")
+    (version "2.22.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "DECIPHER" version))
               (sha256
                (base32
-                "0mr7glkx2d37l9nszs52m0kycpm14vxl5gdp3z7i5j7yig1sw2nk"))))
+                "0a9k3f70jmd17kxf1zjmdzrfjs0dmwfad2zgz6wihxh5s1shc8qm"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biostrings" ,r-biostrings)
-       ("r-dbi" ,r-dbi)
-       ("r-iranges" ,r-iranges)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-xvector" ,r-xvector)))
+     (list r-biostrings
+           r-dbi
+           r-iranges
+           r-rsqlite
+           r-s4vectors
+           r-xvector))
     (home-page "https://www.bioconductor.org/packages/DECIPHER/")
     (synopsis "Tools for deciphering and managing biological sequences")
     (description "This package provides a toolset for deciphering and managing
@@ -1522,25 +1630,25 @@ biological sequences.")
 (define-public r-deepsnv
   (package
     (name "r-deepsnv")
-    (version "1.38.0")
+    (version "1.40.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "deepSNV" version))
               (sha256
                (base32
-                "0zz56hf417m7bgg2g2wpbaik30pi6h2nam1n5bviqgdn4mv8n0bs"))))
+                "1wi6j6yb6i9fs9yszfywqz3w50mhl85dkfmr4w3phwvkf0xkn81w"))))
     (properties `((upstream-name . "deepSNV")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biostrings" ,r-biostrings)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-rhtslib" ,r-rhtslib)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-variantannotation" ,r-variantannotation)
-       ("r-vgam" ,r-vgam)))
+     (list r-biostrings
+           r-genomicranges
+           r-iranges
+           r-rhtslib
+           r-summarizedexperiment
+           r-variantannotation
+           r-vgam))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/gerstung-lab/deepSNV/")
     (synopsis "Detection of subclonal SNVs in deep sequencing data")
     (description
@@ -1558,24 +1666,21 @@ bases such as COSMIC.")
 (define-public r-delayedarray
   (package
     (name "r-delayedarray")
-    (version "0.18.0")
+    (version "0.20.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "DelayedArray" version))
               (sha256
                (base32
-                "0w632262dqzcnvq9s6jvc7naz93dayx51fsv05s0zb6cjwygbqjr"))))
+                "1cm6zh01mvhiq7zrik7q3dmgxinyjz1nyg6rfj93kpkvcb5d4wpj"))))
     (properties
      `((upstream-name . "DelayedArray")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-iranges" ,r-iranges)
-       ("r-matrix" ,r-matrix)
-       ("r-matrixgenerics" ,r-matrixgenerics)))
+     (list r-biocgenerics r-s4vectors r-iranges r-matrix
+           r-matrixgenerics))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/DelayedArray")
     (synopsis "Delayed operations on array-like objects")
     (description
@@ -1588,28 +1693,88 @@ array-like objects like @code{DataFrame} objects (typically with Rle columns),
 @code{Matrix} objects, and ordinary arrays and data frames.")
     (license license:artistic2.0)))
 
+(define-public r-derfinderhelper
+  (package
+    (name "r-derfinderhelper")
+    (version "1.28.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "derfinderHelper" version))
+       (sha256
+        (base32 "06x0wy2wzpngak1pnrj2p0xzlx1nbcz0hs3p9q5ic6ib2rgwrh35"))))
+    (properties `((upstream-name . "derfinderHelper")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-iranges r-matrix r-s4vectors))
+    (native-inputs
+     (list r-knitr))
+    (home-page "https://github.com/leekgroup/derfinderHelper")
+    (synopsis "Helper for derfinder")
+    (description
+     "This package speeds up the derfinder package when using multiple cores.
+It is particularly useful when using BiocParallel and it helps reduce the time
+spent loading the full derfinder package when running the F-statistics
+calculation in parallel.")
+    (license license:artistic2.0)))
+
+(define-public r-drimseq
+  (package
+    (name "r-drimseq")
+    (version "1.22.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "DRIMSeq" version))
+       (sha256
+        (base32 "0y2jb0hb633id038zmwnfny6h4ai77fdyy02f77vha1z8xg5nl02"))))
+    (properties `((upstream-name . "DRIMSeq")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-biocgenerics
+           r-biocparallel
+           r-edger
+           r-genomicranges
+           r-ggplot2
+           r-iranges
+           r-limma
+           r-mass
+           r-reshape2
+           r-s4vectors))
+    (native-inputs (list r-knitr))
+    (home-page "https://bioconductor.org/packages/DRIMSeq")
+    (synopsis "Differential transcript usage and tuQTL analyses with Dirichlet-multinomial model in RNA-seq")
+    (description
+     "The package provides two frameworks.  One for the differential
+transcript usage analysis between different conditions and one for the tuQTL
+analysis.  Both are based on modeling the counts of genomic features (i.e.,
+transcripts) with the Dirichlet-multinomial distribution.  The package also
+makes available functions for visualization and exploration of the data and
+results.")
+    (license license:gpl3+)))
+
 (define-public r-bluster
   (package
    (name "r-bluster")
-   (version "1.2.1")
+   (version "1.4.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "bluster" version))
             (sha256
              (base32
-              "128zd5vwlhmrkq0bpp1dxnkrcqfz1mjmdjlla4wqbjv7v6yyn6lg"))))
+              "1j24l12i3aga4qd827sj8b160yvrhlznggb4piddkmhjc0sppbjm"))))
    (properties `((upstream-name . "bluster")))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-biocneighbors" ,r-biocneighbors)
-      ("r-biocparallel" ,r-biocparallel)
-      ("r-cluster" ,r-cluster)
-      ("r-igraph" ,r-igraph)
-      ("r-matrix" ,r-matrix)
-      ("r-rcpp" ,r-rcpp)
-      ("r-s4vectors" ,r-s4vectors)))
+    (list r-biocneighbors
+          r-biocparallel
+          r-cluster
+          r-igraph
+          r-matrix
+          r-rcpp
+          r-s4vectors))
    (native-inputs
-    `(("r-knitr" ,r-knitr)))
+    (list r-knitr))
    (home-page "https://bioconductor.org/packages/bluster")
    (synopsis "Clustering algorithms for Bioconductor")
    (description"This package wraps common clustering algorithms in an easily
@@ -1621,21 +1786,21 @@ and evaluate clustering results.")
 (define-public r-ideoviz
   (package
     (name "r-ideoviz")
-    (version "1.28.0")
+    (version "1.30.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "IdeoViz" version))
               (sha256
                (base32
-                "17sx0v5lq2zmg098ps4ksj1h0yla3vlh6s2w1ahqsq0nvm193scm"))))
+                "0cclk2pcb2mvsfxhw0zq3qlnfkblb1gqxnn7xypmlf0bm6hcvl4g"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-iranges" ,r-iranges)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-genomeinfodb" ,r-genomeinfodb)))
+     (list r-biobase
+           r-iranges
+           r-genomicranges
+           r-rcolorbrewer
+           r-rtracklayer
+           r-genomeinfodb))
     (home-page "https://bioconductor.org/packages/IdeoViz/")
     (synopsis "Plots data along a chromosomal ideogram")
     (description "This package provides functions to plot data associated with
@@ -1645,19 +1810,18 @@ arbitrary genomic intervals along chromosomal ideogram.")
 (define-public r-iranges
   (package
     (name "r-iranges")
-    (version "2.26.0")
+    (version "2.28.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "IRanges" version))
               (sha256
                (base32
-                "0dzj8wqbjzilh2dsaj3ylx958xqrv0c688ayfq2r1z7rs75qy7kx"))))
+                "07zs231wbfwwc1c1165rhp711fbss40p9l8kyjjv9flzpr3hr1pg"))))
     (properties
      `((upstream-name . "IRanges")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-biocgenerics r-s4vectors))
     (home-page "https://bioconductor.org/packages/IRanges")
     (synopsis "Infrastructure for manipulating intervals on sequences")
     (description
@@ -1671,6 +1835,59 @@ naming and share the same rich and consistent \"Vector API\" as much as
 possible.")
     (license license:artistic2.0)))
 
+(define-public r-isoformswitchanalyzer
+  (package
+    (name "r-isoformswitchanalyzer")
+    (version "1.16.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "IsoformSwitchAnalyzeR" version))
+       (sha256
+        (base32 "14bqf39gw5ab5r9sr3afkig1jbzdvds1bmcvc6bpb45kschx7fwf"))))
+    (properties `((upstream-name . "IsoformSwitchAnalyzeR")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-biobase
+           r-biocgenerics
+           r-biostrings
+           r-bsgenome
+           r-dbi
+           r-dexseq
+           r-dplyr
+           r-drimseq
+           r-edger
+           r-futile-logger
+           r-genomeinfodb
+           r-genomicranges
+           r-ggplot2
+           r-gridextra
+           r-iranges
+           r-limma
+           r-magrittr
+           r-plyr
+           r-rcolorbrewer
+           r-rcurl
+           r-readr
+           r-reshape2
+           r-rtracklayer
+           r-stringr
+           r-tibble
+           r-tximeta
+           r-tximport
+           r-venndiagram
+           r-xvector))
+    (native-inputs
+     (list r-knitr))
+    (home-page "https://bioconductor.org/packages/IsoformSwitchAnalyzeR/")
+    (synopsis "Analyze alternative splicing in RNA-seq data")
+    (description
+     "This is a package for the analysis of alternative splicing and isoform
+switches with predicted functional consequences (e.g. gain/loss of protein
+domains etc.) from quantification of all types of RNASeq by tools such as
+Kallisto, Salmon, StringTie, Cufflinks/Cuffdiff etc.")
+    (license license:gpl2+)))
+
 ;; This is a CRAN package, but it depends on r-biobase and r-limma from Bioconductor.
 (define-public r-absfiltergsea
   (package
@@ -1685,11 +1902,7 @@ possible.")
     (properties `((upstream-name . "AbsFilterGSEA")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-deseq" ,r-deseq)
-       ("r-limma" ,r-limma)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)))
+     (list r-biobase r-deseq r-limma r-rcpp r-rcpparmadillo))
     (home-page "https://cran.r-project.org/web/packages/AbsFilterGSEA/")
     (synopsis "Improved false positive control of gene-permuting with absolute filtering")
     (description
@@ -1713,10 +1926,9 @@ absolute GSEA.")
    (properties `((upstream-name . "BisqueRNA")))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-biobase" ,r-biobase)
-      ("r-limsolve" ,r-limsolve)))
+    (list r-biobase r-limsolve))
    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
    (home-page "https://www.biorxiv.org/content/10.1101/669911v1")
    (synopsis "Decomposition of bulk expression with single-cell sequencing")
    (description "This package provides tools to accurately estimate cell type
@@ -1743,10 +1955,8 @@ relative abundances across samples.")
      `((upstream-name . "deconstructSigs")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bsgenome" ,r-bsgenome)
-       ("r-bsgenome-hsapiens-ucsc-hg19" ,r-bsgenome-hsapiens-ucsc-hg19)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-reshape2" ,r-reshape2)))
+     (list r-bsgenome r-bsgenome-hsapiens-ucsc-hg19 r-genomeinfodb
+           r-reshape2))
     (home-page "https://github.com/raerose01/deconstructSigs")
     (synopsis "Identifies signatures present in a tumor sample")
     (description "This package takes sample information in the form of the
@@ -1770,25 +1980,25 @@ closely reconstructs the mutational profile.")
     (properties `((upstream-name . "NMF")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cluster" ,r-cluster)
-       ("r-biobase" ,r-biobase)
-       ("r-biocmanager" ,r-biocmanager)
-       ("r-bigmemory" ,r-bigmemory) ; suggested
-       ("r-synchronicity" ,r-synchronicity) ; suggested
-       ("r-colorspace" ,r-colorspace)
-       ("r-digest" ,r-digest)
-       ("r-doparallel" ,r-doparallel)
-       ("r-foreach" ,r-foreach)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridbase" ,r-gridbase)
-       ("r-pkgmaker" ,r-pkgmaker)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-registry" ,r-registry)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rngtools" ,r-rngtools)
-       ("r-stringr" ,r-stringr)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-cluster
+           r-biobase
+           r-biocmanager
+           r-bigmemory ; suggested
+           r-synchronicity ; suggested
+           r-colorspace
+           r-digest
+           r-doparallel
+           r-foreach
+           r-ggplot2
+           r-gridbase
+           r-pkgmaker
+           r-rcolorbrewer
+           r-registry
+           r-reshape2
+           r-rngtools
+           r-stringr))
+    (native-inputs
+     (list r-knitr))
     (home-page "http://renozao.github.io/NMF")
     (synopsis "Algorithms and framework for nonnegative matrix factorization")
     (description
@@ -1803,24 +2013,24 @@ performing parallel computations on multicore machines.")
 (define-public r-affy
   (package
     (name "r-affy")
-    (version "1.70.0")
+    (version "1.72.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affy" version))
        (sha256
         (base32
-         "0vz5y92gqcm0qk57qlba85bk683lzdr7vkmxv109rq6i17vdkkrm"))))
+         "0z66pyn2020h3x22xabkmnjxb20kbgblivvk7mqjk9134wvvf15a"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-affyio" ,r-affyio)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocmanager" ,r-biocmanager)
-       ("r-preprocesscore" ,r-preprocesscore)
-       ("r-zlibbioc" ,r-zlibbioc)))
+     (list r-affyio
+           r-biobase
+           r-biocgenerics
+           r-biocmanager
+           r-preprocesscore
+           r-zlibbioc))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://bioconductor.org/packages/affy")
     (synopsis "Methods for affymetrix oligonucleotide arrays")
     (description
@@ -1831,17 +2041,17 @@ analysis.")
 (define-public r-affycomp
   (package
     (name "r-affycomp")
-    (version "1.68.0")
+    (version "1.70.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affycomp" version))
        (sha256
         (base32
-         "07my5scdh6h0y1bx1h9y5m4fa8bnmw389f83gkb7cf19w4vp36b2"))))
+         "0kawlfff82ikrbrfyyy38zm5wj5xdri2ii9wgwilnq50z5qc6r21"))))
     (properties `((upstream-name . "affycomp")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-biobase" ,r-biobase)))
+    (propagated-inputs (list r-biobase))
     (home-page "https://bioconductor.org/packages/affycomp/")
     (synopsis "Graphics toolbox for assessment of Affymetrix expression measures")
     (description
@@ -1852,21 +2062,19 @@ measures for Affymetrix Oligonucleotide Arrays.")
 (define-public r-affycompatible
   (package
     (name "r-affycompatible")
-    (version "1.52.0")
+    (version "1.54.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AffyCompatible" version))
        (sha256
         (base32
-         "1xwz22wf2smsvmd0d5lfadbsgscnl3fl9msypy2mml38k048p6vj"))))
+         "1qlfh1gcwa6akd5dhdqh260yaw1j6dap6a15ghwf74rchi5218sg"))))
     (properties
      `((upstream-name . "AffyCompatible")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biostrings" ,r-biostrings)
-       ("r-rcurl" ,r-rcurl)
-       ("r-xml" ,r-xml)))
+     (list r-biostrings r-rcurl r-xml))
     (home-page "https://bioconductor.org/packages/AffyCompatible/")
     (synopsis "Work with Affymetrix GeneChip files")
     (description
@@ -1880,20 +2088,18 @@ Command Console} (AGCC)-compatible sample annotation files.")
 (define-public r-affycontam
   (package
     (name "r-affycontam")
-    (version "1.50.0")
+    (version "1.52.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affyContam" version))
        (sha256
         (base32
-         "0242ga68wrdk1kcmxfdbq73a0d3zhrzdlzkzphfg3q0zjbvg49jj"))))
+         "1vw3nxg9jvlw0zg9h70w2ww8l42qpyvgf12hsla9hyyfhj3m6i9f"))))
     (properties `((upstream-name . "affyContam")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-affy" ,r-affy)
-       ("r-affydata" ,r-affydata)
-       ("r-biobase" ,r-biobase)))
+     (list r-affy r-affydata r-biobase))
     (home-page "https://bioconductor.org/packages/affyContam/")
     (synopsis "Structured corruption of Affymetrix CEL file data")
     (description
@@ -1905,38 +2111,38 @@ problems in CEL-level data to help evaluate performance of quality metrics.")
 (define-public r-affycoretools
   (package
     (name "r-affycoretools")
-    (version "1.64.0")
+    (version "1.66.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affycoretools" version))
        (sha256
         (base32
-         "1dx861spr3kn1dxwhf43s5l1r7bmrq0h6538l3q64iiwzzc6krdh"))))
+         "1ccyaj129ii9f47r41qsy34y6ck4wna55j8vz3v3hbldddn93f40"))))
     (properties `((upstream-name . "affycoretools")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-affy" ,r-affy)
-       ("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-dbi" ,r-dbi)
-       ("r-edger" ,r-edger)
-       ("r-gcrma" ,r-gcrma)
-       ("r-glimma" ,r-glimma)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gostats" ,r-gostats)
-       ("r-gplots" ,r-gplots)
-       ("r-hwriter" ,r-hwriter)
-       ("r-lattice" ,r-lattice)
-       ("r-limma" ,r-limma)
-       ("r-oligoclasses" ,r-oligoclasses)
-       ("r-reportingtools" ,r-reportingtools)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-xtable" ,r-xtable)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-affy
+           r-annotationdbi
+           r-biobase
+           r-biocgenerics
+           r-dbi
+           r-edger
+           r-gcrma
+           r-glimma
+           r-ggplot2
+           r-gostats
+           r-gplots
+           r-hwriter
+           r-lattice
+           r-limma
+           r-oligoclasses
+           r-reportingtools
+           r-rsqlite
+           r-s4vectors
+           r-xtable))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/affycoretools/")
     (synopsis "Functions for analyses with Affymetrix GeneChips")
     (description
@@ -1947,19 +2153,19 @@ to streamline the more common analyses that a Biostatistician might see.")
 (define-public r-affyio
   (package
     (name "r-affyio")
-    (version "1.62.0")
+    (version "1.64.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affyio" version))
        (sha256
         (base32
-         "07kibqsm888g06qqqa4648ph877kriy74kprbri8nyx83y8aspjr"))))
+         "02lqdq8hcldkf9qbyhhllkm3smpqc51sn2d9gbkm74r96fx37lvm"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-zlibbioc" ,r-zlibbioc)))
+     (list r-zlibbioc))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://github.com/bmbolstad/affyio")
     (synopsis "Tools for parsing Affymetrix data files")
     (description
@@ -1971,14 +2177,14 @@ CDF file formats.")
 (define-public r-affxparser
   (package
     (name "r-affxparser")
-    (version "1.64.0")
+    (version "1.66.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affxparser" version))
        (sha256
         (base32
-         "0n3yyrglzqzw0wqxl9igqvkj8qslw6yjkym3vcq0c93kkg7vk01l"))))
+         "1bd0f8ifj6l7dx2m3wpmd0mji2gdf39mzgcjf9lbvvmbqnbxbcal"))))
     (properties `((upstream-name . "affxparser")))
     (build-system r-build-system)
     (home-page "https://github.com/HenrikBengtsson/affxparser")
@@ -1999,23 +2205,23 @@ structure.")
 (define-public r-annotate
   (package
     (name "r-annotate")
-    (version "1.70.0")
+    (version "1.72.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "annotate" version))
        (sha256
         (base32
-         "13ny596wh65sw7dbw0zd4h84d6k1w99g91c4sqy83mdzgpv73sz7"))))
+         "0p7q5hdk7003q72vg4hrgdzn463spybxhrkvcq3a6l6jkgy9sf84"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-dbi" ,r-dbi)
-       ("r-httr" ,r-httr)
-       ("r-xml" ,r-xml)
-       ("r-xtable" ,r-xtable)))
+     (list r-annotationdbi
+           r-biobase
+           r-biocgenerics
+           r-dbi
+           r-httr
+           r-xml
+           r-xtable))
     (home-page
      "https://bioconductor.org/packages/annotate")
     (synopsis "Annotation for microarrays")
@@ -2026,26 +2232,26 @@ microarrays.")
 (define-public r-annotationdbi
   (package
     (name "r-annotationdbi")
-    (version "1.54.1")
+    (version "1.56.2")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "AnnotationDbi" version))
               (sha256
                (base32
-                "0fcammls431pgmp47r85k0zh3bz42bajbqdmafd31kpqncc1ijal"))))
+                "01zwq14msbbwzxv8rgpmyr74ymvhq0vnmxkxxwd886iac5vjlgi8"))))
     (properties
      `((upstream-name . "AnnotationDbi")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-dbi" ,r-dbi)
-       ("r-keggrest" ,r-keggrest)
-       ("r-iranges" ,r-iranges)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-biobase
+           r-biocgenerics
+           r-dbi
+           r-keggrest
+           r-iranges
+           r-rsqlite
+           r-s4vectors))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/AnnotationDbi")
     (synopsis "Annotation database interface")
     (description
@@ -2056,21 +2262,20 @@ annotation data packages using SQLite data storage.")
 (define-public r-annotationfilter
   (package
     (name "r-annotationfilter")
-    (version "1.16.0")
+    (version "1.18.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "AnnotationFilter" version))
               (sha256
                (base32
-                "0799jja6v7l3jsi26wbjalkr5lriaxid05xb5g36iq93myhaj0sa"))))
+                "15fp1228yb06jm5cblvhw3qv9mlpbjfggaz2nvi3p46mby1vs64w"))))
     (properties
      `((upstream-name . "AnnotationFilter")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-genomicranges" ,r-genomicranges)
-       ("r-lazyeval" ,r-lazyeval)))
+     (list r-genomicranges r-lazyeval))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/Bioconductor/AnnotationFilter")
     (synopsis "Facilities for filtering Bioconductor annotation resources")
     (description
@@ -2082,28 +2287,28 @@ used by @code{ensembldb}, @code{Organism.dplyr}, and other packages.")
 (define-public r-annotationforge
   (package
     (name "r-annotationforge")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AnnotationForge" version))
        (sha256
         (base32
-         "1by3diy0y4809k97cw97mp4j177gn1dzhqil8myij1r7b8sk7hax"))))
+         "02wvni5q560idi6677g5f4md73z4qzjl5yycxv5dbvgbl2picisz"))))
     (properties
      `((upstream-name . "AnnotationForge")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-dbi" ,r-dbi)
-       ("r-rcurl" ,r-rcurl)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-xml" ,r-xml)))
+     (list r-annotationdbi
+           r-biobase
+           r-biocgenerics
+           r-dbi
+           r-rcurl
+           r-rsqlite
+           r-s4vectors
+           r-xml))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/AnnotationForge")
     (synopsis "Code for building annotation database packages")
     (description
@@ -2114,32 +2319,32 @@ databases.  Packages produced are intended to be used with AnnotationDbi.")
 (define-public r-annotationhub
   (package
     (name "r-annotationhub")
-    (version "3.0.1")
+    (version "3.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AnnotationHub" version))
        (sha256
         (base32
-         "12i8lafy1z97gs4knqi7r5l1hd7dr6j8a23qj4fkdpqsdpyz21z7"))))
+         "0ks8yzvvs2r66pb9687mkskf0n3wgvp7h92k83b0a1q32sca5wng"))))
     (properties `((upstream-name . "AnnotationHub")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biocfilecache" ,r-biocfilecache)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocmanager" ,r-biocmanager)
-       ("r-biocversion" ,r-biocversion)
-       ("r-curl" ,r-curl)
-       ("r-dplyr" ,r-dplyr)
-       ("r-httr" ,r-httr)
-       ("r-interactivedisplaybase" ,r-interactivedisplaybase)
-       ("r-rappdirs" ,r-rappdirs)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-yaml" ,r-yaml)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationdbi
+           r-biocfilecache
+           r-biocgenerics
+           r-biocmanager
+           r-biocversion
+           r-curl
+           r-dplyr
+           r-httr
+           r-interactivedisplaybase
+           r-rappdirs
+           r-rsqlite
+           r-s4vectors
+           r-yaml))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/AnnotationHub")
     (synopsis "Client to access AnnotationHub resources")
     (description
@@ -2155,21 +2360,18 @@ by the user, helping with quick and reproducible access.")
 (define-public r-aroma-light
   (package
     (name "r-aroma-light")
-    (version "3.22.0")
+    (version "3.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "aroma.light" version))
        (sha256
         (base32
-         "1yvq6l1p8cpijvlib4fn9y88ihn0gaalrmgx82jgrfmnszkqn3y5"))))
+         "12qa85hsp8d1xhgn27iymknbhpnp9bd7hsgqxwvp1i8kki06z5hp"))))
     (properties `((upstream-name . "aroma.light")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrixstats" ,r-matrixstats)
-       ("r-r-methodss3" ,r-r-methodss3)
-       ("r-r-oo" ,r-r-oo)
-       ("r-r-utils" ,r-r-utils)))
+     (list r-matrixstats r-r-methodss3 r-r-oo r-r-utils))
     (home-page "https://github.com/HenrikBengtsson/aroma.light")
     (synopsis "Methods for normalization and visualization of microarray data")
     (description
@@ -2182,24 +2384,24 @@ classes.")
 (define-public r-bamsignals
   (package
     (name "r-bamsignals")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bamsignals" version))
        (sha256
         (base32
-         "1ljrip0jlxjcljqac7vzvwqbcqil5v4f4s4bhpq4akvdkshas6mn"))))
+         "03m3yaagplh7j4q5hp3cfcdqwsnh1pwrlla9cv3ajnfd83s8ncqv"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rhtslib" ,r-rhtslib)
-       ("r-zlibbioc" ,r-zlibbioc)))
+     (list r-biocgenerics
+           r-genomicranges
+           r-iranges
+           r-rcpp
+           r-rhtslib
+           r-zlibbioc))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/bamsignals")
     (synopsis "Extract read count signals from bam files")
     (description
@@ -2212,18 +2414,18 @@ paired-end data.")
 (define-public r-biobase
   (package
     (name "r-biobase")
-    (version "2.52.0")
+    (version "2.54.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Biobase" version))
               (sha256
                (base32
-                "1sg8w8860zhlz9s1pf75xa8asd2hyqsj13fh5xc37hf5yqdfkavr"))))
+                "0kar2kgaayp5l7xv9zcxj61l01m8jlwnppql6qf01wsz36dacgww"))))
     (properties
      `((upstream-name . "Biobase")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)))
+     (list r-biocgenerics))
     (home-page "https://bioconductor.org/packages/Biobase")
     (synopsis "Base functions for Bioconductor")
     (description
@@ -2234,28 +2436,28 @@ on Bioconductor or which replace R functions.")
 (define-public r-biomart
   (package
     (name "r-biomart")
-    (version "2.48.3")
+    (version "2.50.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "biomaRt" version))
               (sha256
                (base32
-                "096s243yzbhhz3wsm7azml5sznqczmcpi5g0gnb02mah1przczfx"))))
+                "1lm8axjmi2k1d2x0gdlvs0fzsd68xvxx7sn1wn6v4wr0pv85qhkz"))))
     (properties
      `((upstream-name . "biomaRt")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biocfilecache" ,r-biocfilecache)
-       ("r-digest" ,r-digest)
-       ("r-httr" ,r-httr)
-       ("r-progress" ,r-progress)
-       ("r-rappdirs" ,r-rappdirs)
-       ("r-stringr" ,r-stringr)
-       ("r-xml" ,r-xml)
-       ("r-xml2" ,r-xml2)))
+     (list r-annotationdbi
+           r-biocfilecache
+           r-digest
+           r-httr
+           r-progress
+           r-rappdirs
+           r-stringr
+           r-xml
+           r-xml2))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/biomaRt")
     (synopsis "Interface to BioMart databases")
     (description
@@ -2272,13 +2474,13 @@ powerful online queries from gene annotation to database mining.")
 (define-public r-biocparallel
   (package
     (name "r-biocparallel")
-    (version "1.26.1")
+    (version "1.28.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocParallel" version))
               (sha256
                (base32
-                "1jx1wm47s64ywfddrg8kqzz4xpcmfjwrzbxhvlmys7pf2hzj4gbh"))))
+                "04s6y7q9dvg26fazs6lzkm668zpl3136j9gd5hkyihyrf4a1w3g3"))))
     (properties
      `((upstream-name . "BiocParallel")))
     (build-system r-build-system)
@@ -2306,16 +2508,14 @@ powerful online queries from gene annotation to database mining.")
                (("\\today") "later"))
 
              ;; Initialize the random number generator seed when building.
-             (substitute* "R/internal_rng_stream.R"
+             (substitute* "R/rng.R"
                (("\"L'Ecuyer-CMRG\"\\)" m)
                 (string-append
                  m "; if (!is.na(Sys.getenv(\"SOURCE_DATE_EPOCH\"))) {set.seed(100)}\n"))))))))
     (propagated-inputs
-     `(("r-futile-logger" ,r-futile-logger)
-       ("r-snow" ,r-snow)
-       ("r-bh" ,r-bh)))
+     (list r-futile-logger r-snow r-bh))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/BiocParallel")
     (synopsis "Bioconductor facilities for parallel evaluation")
     (description
@@ -2327,23 +2527,23 @@ objects.")
 (define-public r-biostrings
   (package
     (name "r-biostrings")
-    (version "2.60.2")
+    (version "2.62.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Biostrings" version))
               (sha256
                (base32
-                "0ai0fg0w4l0a7avbafdbqjgjpg91myxalwrg2i3ixm1l2lyyfyah"))))
+                "11qkw863mkfz3mc55v2gmfr4w3xziqfb5pq3hmjqpn8vpw8ax3xq"))))
     (properties
      `((upstream-name . "Biostrings")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-crayon" ,r-crayon)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-iranges" ,r-iranges)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-xvector" ,r-xvector)))
+     (list r-biocgenerics
+           r-crayon
+           r-genomeinfodb
+           r-iranges
+           r-s4vectors
+           r-xvector))
     (home-page "https://bioconductor.org/packages/Biostrings")
     (synopsis "String objects and algorithms for biological sequences")
     (description
@@ -2355,36 +2555,36 @@ biological sequences or sets of sequences.")
 (define-public r-biovizbase
   (package
     (name "r-biovizbase")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biovizBase" version))
        (sha256
         (base32
-         "14jyyg3ggdhaqhp0j4qf6dapykh76fygbaa4lr7czqbc5mr0iw23"))))
+         "0kg71p7sqfvxal0c19zrws1ffaqgyi8p605l3z6mkq5ldi26pajz"))))
     (properties `((upstream-name . "biovizBase")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-annotationfilter" ,r-annotationfilter)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-dichromat" ,r-dichromat)
-       ("r-ensembldb" ,r-ensembldb)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-hmisc" ,r-hmisc)
-       ("r-iranges" ,r-iranges)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rlang" ,r-rlang)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-scales" ,r-scales)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-variantannotation" ,r-variantannotation)))
+     (list r-annotationdbi
+           r-annotationfilter
+           r-biocgenerics
+           r-biostrings
+           r-dichromat
+           r-ensembldb
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicfeatures
+           r-genomicranges
+           r-hmisc
+           r-iranges
+           r-rcolorbrewer
+           r-rlang
+           r-rsamtools
+           r-s4vectors
+           r-scales
+           r-summarizedexperiment
+           r-variantannotation))
     (home-page "https://bioconductor.org/packages/biovizBase")
     (synopsis "Basic graphic utilities for visualization of genomic data")
     (description
@@ -2397,27 +2597,27 @@ effort and encourages consistency.")
 (define-public r-bsgenome
   (package
     (name "r-bsgenome")
-    (version "1.60.0")
+    (version "1.62.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BSgenome" version))
               (sha256
                (base32
-                "1jhissp9ad1rn2p0bzr3yslbn84yqbaqgnn5p9hyacwr7mr091cn"))))
+                "1b023dpy8ygq0kd6qy0mk97c66gzpf39y2s0n89kmv61z5sg0jyi"))))
     (properties
      `((upstream-name . "BSgenome")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-xvector" ,r-xvector)))
+     (list r-biocgenerics
+           r-biostrings
+           r-genomeinfodb
+           r-genomicranges
+           r-iranges
+           r-matrixstats
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors
+           r-xvector))
     (home-page "https://bioconductor.org/packages/BSgenome")
     (synopsis "Infrastructure for Biostrings-based genome data packages")
     (description
@@ -2428,27 +2628,27 @@ genome data packages and support for efficient SNP representation.")
 (define-public r-category
   (package
     (name "r-category")
-    (version "2.58.0")
+    (version "2.60.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Category" version))
        (sha256
         (base32
-         "0f76pb7h8qc51mca5pq00m9p02sbkcj6ywfzli20qai2ykpfr71x"))))
+         "164zp4la9rqnp5vpn2y2p6plc5yxyk2kmn0z3d2flla54zc1b427"))))
     (properties `((upstream-name . "Category")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotate" ,r-annotate)
-       ("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-genefilter" ,r-genefilter)
-       ("r-graph" ,r-graph)
-       ("r-gseabase" ,r-gseabase)
-       ("r-matrix" ,r-matrix)
-       ("r-rbgl" ,r-rbgl)
-       ("r-dbi" ,r-dbi)))
+     (list r-annotate
+           r-annotationdbi
+           r-biobase
+           r-biocgenerics
+           r-genefilter
+           r-graph
+           r-gseabase
+           r-matrix
+           r-rbgl
+           r-dbi))
     (home-page "https://bioconductor.org/packages/Category")
     (synopsis "Category analysis")
     (description
@@ -2459,37 +2659,36 @@ analysis.")
 (define-public r-chipseeker
   (package
     (name "r-chipseeker")
-    (version "1.28.3")
+    (version "1.30.2")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "ChIPseeker" version))
               (sha256
                (base32
-                "18hdgml80770c0xgd06zrl8px1ql9fa65rirfkq07z7rzpnd23rw"))))
-    (build-system r-build-system)
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
-    (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-boot" ,r-boot)
-       ("r-enrichplot" ,r-enrichplot)
-       ("r-iranges" ,r-iranges)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gplots" ,r-gplots)
-       ("r-gtools" ,r-gtools)
-       ("r-dplyr" ,r-dplyr)
-       ("r-plotrix" ,r-plotrix)
-       ("r-dplyr" ,r-dplyr)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-txdb-hsapiens-ucsc-hg19-knowngene"
-        ,r-txdb-hsapiens-ucsc-hg19-knowngene)))
+                "1nr5p1h9131rvbpnh2kizzx9q6f4ycq6rzxy1yqg2pczqcg7hy4x"))))
+    (build-system r-build-system)
+    (native-inputs
+     (list r-knitr))
+    (propagated-inputs
+     (list r-annotationdbi
+           r-biocgenerics
+           r-boot
+           r-enrichplot
+           r-iranges
+           r-genomeinfodb
+           r-genomicranges
+           r-genomicfeatures
+           r-ggplot2
+           r-gplots
+           r-gtools
+           r-dplyr
+           r-plotrix
+           r-dplyr
+           r-magrittr
+           r-rcolorbrewer
+           r-rtracklayer
+           r-s4vectors
+           r-txdb-hsapiens-ucsc-hg19-knowngene))
     (home-page "https://www.bioconductor.org/packages/ChIPseeker/")
     (synopsis "ChIPseeker for ChIP peak annotation, comparison, and visualization")
     (description "This package implements functions to retrieve the nearest
@@ -2506,22 +2705,22 @@ annotation, distance to TSS, and overlap of peaks or genes.")
 (define-public r-chipseq
   (package
     (name "r-chipseq")
-    (version "1.42.0")
+    (version "1.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "chipseq" version))
        (sha256
         (base32
-         "078p9h0zghlhpd6cr54nww1mk7q97imx8yqfayw5m2yq4097ivbi"))))
+         "1jw209bfh1c22mqs9z44qx3pmca9m68rhxp0p9bvbmqsnqwrndi6"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-lattice" ,r-lattice)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-shortread" ,r-shortread)))
+     (list r-biocgenerics
+           r-genomicranges
+           r-iranges
+           r-lattice
+           r-s4vectors
+           r-shortread))
     (home-page "https://bioconductor.org/packages/chipseq")
     (synopsis "Package for analyzing ChIPseq data")
     (description
@@ -2532,33 +2731,32 @@ experiments.")
 (define-public r-complexheatmap
   (package
     (name "r-complexheatmap")
-    (version "2.8.0")
+    (version "2.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ComplexHeatmap" version))
        (sha256
         (base32
-         "0jl96msj1njdrvngg68s50vmphvhi2lfwlv34x07pcdzgkjjs41f"))))
+         "124w74mk0zk035wyr7cimblzx5blags4n5c8f83mp7iimxcb4gcn"))))
     (properties
      `((upstream-name . "ComplexHeatmap")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cairo" ,r-cairo)
-       ("r-circlize" ,r-circlize)
-       ("r-clue" ,r-clue)
-       ("r-colorspace" ,r-colorspace)
-       ("r-digest" ,r-digest)
-       ("r-doparallel" ,r-doparallel)
-       ("r-foreach" ,r-foreach)
-       ("r-getoptlong" ,r-getoptlong)
-       ("r-globaloptions" ,r-globaloptions)
-       ("r-iranges" ,r-iranges)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-png" ,r-png)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-circlize
+           r-clue
+           r-colorspace
+           r-digest
+           r-doparallel
+           r-foreach
+           r-getoptlong
+           r-globaloptions
+           r-iranges
+           r-matrixstats
+           r-png
+           r-rcolorbrewer))
+    (native-inputs
+     (list r-knitr))
     (home-page
      "https://github.com/jokergoo/ComplexHeatmap")
     (synopsis "Making Complex Heatmaps")
@@ -2572,31 +2770,31 @@ self-defined annotation graphics.")
 (define-public r-copywriter
   (package
     (name "r-copywriter")
-    (version "2.24.0")
+    (version "2.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "CopywriteR" version))
        (sha256
         (base32
-         "0pacs714d9b1fdz68pp9ca0x77d376s19lxb82np4l9fgx0rgkxp"))))
+         "0xm5gjzi4r1xzyn7r669blqxhyhmbk9rh9k2gn696j14hbhc1hcy"))))
     (properties `((upstream-name . "CopywriteR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocparallel" ,r-biocparallel)
-       ("r-chipseq" ,r-chipseq)
-       ("r-copyhelper" ,r-copyhelper)
-       ("r-data-table" ,r-data-table)
-       ("r-dnacopy" ,r-dnacopy)
-       ("r-futile-logger" ,r-futile-logger)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-gtools" ,r-gtools)
-       ("r-iranges" ,r-iranges)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-biocparallel
+           r-chipseq
+           r-copyhelper
+           r-data-table
+           r-dnacopy
+           r-futile-logger
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicranges
+           r-gtools
+           r-iranges
+           r-matrixstats
+           r-rsamtools
+           r-s4vectors))
     (home-page "https://github.com/PeeperLab/CopywriteR")
     (synopsis "Copy number information from targeted sequencing")
     (description
@@ -2623,14 +2821,14 @@ number detection tools.")
     (properties `((upstream-name . "DESeq")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-genefilter" ,r-genefilter)
-       ("r-geneplotter" ,r-geneplotter)
-       ("r-lattice" ,r-lattice)
-       ("r-locfit" ,r-locfit)
-       ("r-mass" ,r-mass)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)))
+     (list r-biobase
+           r-biocgenerics
+           r-genefilter
+           r-geneplotter
+           r-lattice
+           r-locfit
+           r-mass
+           r-rcolorbrewer))
     (home-page "https://www-huber.embl.de/users/anders/DESeq/")
     (synopsis "Differential gene expression analysis")
     (description
@@ -2643,32 +2841,32 @@ distribution.")
 (define-public r-deseq2
   (package
     (name "r-deseq2")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DESeq2" version))
        (sha256
         (base32
-         "0r1brwmj7av0bj72jajn27vx3zs1bgg8qfbhf02fln6kf7im4kaz"))))
+         "0whk29zrmv9mrlc4w5ghy0fd29v8hfr8jccwgrn59mf3mkmfb2b9"))))
     (properties `((upstream-name . "DESeq2")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-genefilter" ,r-genefilter)
-       ("r-geneplotter" ,r-geneplotter)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-iranges" ,r-iranges)
-       ("r-locfit" ,r-locfit)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biobase
+           r-biocgenerics
+           r-biocparallel
+           r-genefilter
+           r-geneplotter
+           r-genomicranges
+           r-ggplot2
+           r-iranges
+           r-locfit
+           r-rcpp
+           r-rcpparmadillo
+           r-s4vectors
+           r-summarizedexperiment))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/DESeq2")
     (synopsis "Differential gene expression analysis")
     (description
@@ -2681,36 +2879,36 @@ distribution.")
 (define-public r-dexseq
   (package
     (name "r-dexseq")
-    (version "1.38.0")
+    (version "1.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DEXSeq" version))
        (sha256
         (base32
-         "1zywh30f4j4rj0f9w6yk5xr9mvdbg8gicy3wsb8yxdnamadyr7x4"))))
+         "1wd4bjd0a53s689yvb2lxzdiy0synh6ncfcly3cfw37kpdj8lds1"))))
     (properties `((upstream-name . "DEXSeq")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biomart" ,r-biomart)
-       ("r-deseq2" ,r-deseq2)
-       ("r-genefilter" ,r-genefilter)
-       ("r-geneplotter" ,r-geneplotter)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-hwriter" ,r-hwriter)
-       ("r-iranges" ,r-iranges)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-statmod" ,r-statmod)
-       ("r-stringr" ,r-stringr)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationdbi
+           r-biobase
+           r-biocgenerics
+           r-biocparallel
+           r-biomart
+           r-deseq2
+           r-genefilter
+           r-geneplotter
+           r-genomicranges
+           r-hwriter
+           r-iranges
+           r-rcolorbrewer
+           r-rsamtools
+           r-s4vectors
+           r-statmod
+           r-stringr
+           r-summarizedexperiment))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/DEXSeq")
     (synopsis "Inference of differential exon usage in RNA-Seq")
     (description
@@ -2726,23 +2924,21 @@ exploration of the results.")
 (define-public r-dirichletmultinomial
   (package
     (name "r-dirichletmultinomial")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DirichletMultinomial" version))
        (sha256
         (base32
-         "0ikmj0300lfzj6q1vyahfyx5kwi5h59mds7ym4f2j1bbxqzy6ssl"))))
+         "06nallp9jj2vmaa7d18g6hiymjc109szdv8sp51r87n7s38bvyq6"))))
     (properties
      `((upstream-name . "DirichletMultinomial")))
     (build-system r-build-system)
     (inputs
-     `(("gsl" ,gsl)))
+     (list gsl))
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-iranges" ,r-iranges)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-biocgenerics r-iranges r-s4vectors))
     (home-page "https://bioconductor.org/packages/DirichletMultinomial")
     (synopsis "Dirichlet-Multinomial mixture models for microbiome data")
     (description
@@ -2755,31 +2951,31 @@ originally made available by Holmes, Harris, and Quince, 2012, PLoS ONE 7(2):
 (define-public r-edaseq
   (package
     (name "r-edaseq")
-    (version "2.26.1")
+    (version "2.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "EDASeq" version))
        (sha256
         (base32
-         "0pakcbkalhhqz3d9lpfx3hscf53k24mlmrywxxzfg43yq57srkql"))))
+         "1vygfdxbjcww7sqzc3j7sp7w13dx10vlzy9z31flf7345qp6blj7"))))
     (properties `((upstream-name . "EDASeq")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-aroma-light" ,r-aroma-light)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocmanager" ,r-biocmanager)
-       ("r-biomart" ,r-biomart)
-       ("r-biostrings" ,r-biostrings)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-shortread" ,r-shortread)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationdbi
+           r-aroma-light
+           r-biobase
+           r-biocgenerics
+           r-biocmanager
+           r-biomart
+           r-biostrings
+           r-genomicfeatures
+           r-genomicranges
+           r-iranges
+           r-rsamtools
+           r-shortread))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/drisso/EDASeq")
     (synopsis "Exploratory data analysis and normalization for RNA-Seq")
     (description
@@ -2795,20 +2991,17 @@ global-scaling and full-quantile normalization.")
 (define-public r-edger
   (package
     (name "r-edger")
-    (version "3.34.0")
+    (version "3.36.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "edgeR" version))
               (sha256
                (base32
-                "1ikl9y6hj2p92nrb1ydxy2410b3wrax83rfy2imaj0vgfmhsgx6g"))))
+                "1d18kdfi9vjhhw5kwfy5airrd3c16fh4wbwppbhwgawm038mwavk"))))
     (properties `((upstream-name . "edgeR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-limma" ,r-limma)
-       ("r-locfit" ,r-locfit)
-       ("r-rcpp" ,r-rcpp)
-       ("r-statmod" ,r-statmod))) ;for estimateDisp
+     (list r-limma r-locfit r-rcpp r-statmod)) ;for estimateDisp
     (home-page "http://bioinf.wehi.edu.au/edgeR")
     (synopsis "EdgeR does empirical analysis of digital gene expression data")
     (description "This package can do differential expression analysis of
@@ -2823,34 +3016,34 @@ CAGE.")
 (define-public r-ensembldb
   (package
     (name "r-ensembldb")
-    (version "2.16.4")
+    (version "2.18.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ensembldb" version))
        (sha256
         (base32
-         "15yllkxr6sj5pfvkvv285nk3q5374nzq1iz8ywmnrq910k3xagd8"))))
+         "0q56gv0isa9ayw505py7i7x65pvcshmd2j1mna1wpbk66wqj4qzx"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-annotationfilter" ,r-annotationfilter)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-curl" ,r-curl)
-       ("r-dbi" ,r-dbi)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-protgenerics" ,r-protgenerics)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-annotationdbi
+           r-annotationfilter
+           r-biobase
+           r-biocgenerics
+           r-biostrings
+           r-curl
+           r-dbi
+           r-genomeinfodb
+           r-genomicfeatures
+           r-genomicranges
+           r-iranges
+           r-protgenerics
+           r-rsamtools
+           r-rsqlite
+           r-rtracklayer
+           r-s4vectors))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/jotsetung/ensembldb")
     (synopsis "Utilities to create and use Ensembl-based annotation databases")
     (description
@@ -2868,21 +3061,18 @@ chromosome region or transcript models of lincRNA genes.")
 (define-public r-fastseg
   (package
     (name "r-fastseg")
-    (version "1.38.0")
+    (version "1.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "fastseg" version))
        (sha256
         (base32
-         "006v7qs707xmnr35b7rw135pyvacrmhv55a3c53birkpsrjgkps0"))))
+         "1ds0hhc41nhfj3lmvld8nk2p547wd80b3yq7fjlf3dl3wfaxzy80"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-biobase r-biocgenerics r-genomicranges r-iranges
+           r-s4vectors))
     (home-page "https://www.bioinf.jku.at/software/fastseg/index.html")
     (synopsis "Fast segmentation algorithm for genetic sequencing data")
     (description
@@ -2898,20 +3088,17 @@ microarrays or GRanges for sequencing data.")
 (define-public r-gage
   (package
     (name "r-gage")
-    (version "2.42.0")
+    (version "2.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "gage" version))
        (sha256
         (base32
-         "0z7hrwdm6my6p7z04bcpfhqk72pd0s1bdzvsiiym59qj79fbvb83"))))
+         "1spndmvl8wlz3z3wsvzi0fg9nzk81xi8c220pg2rf81j9181nkar"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-go-db" ,r-go-db)
-       ("r-graph" ,r-graph)
-       ("r-keggrest" ,r-keggrest)))
+     (list r-annotationdbi r-go-db r-graph r-keggrest))
     (home-page (string-append "https://bmcbioinformatics.biomedcentral.com/"
                               "articles/10.1186/1471-2105-10-161"))
     (synopsis "Generally applicable gene-set enrichment for pathway analysis")
@@ -2929,24 +3116,20 @@ analysis using other methods.")
 (define-public r-genefilter
   (package
     (name "r-genefilter")
-    (version "1.74.0")
+    (version "1.76.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "genefilter" version))
        (sha256
         (base32
-         "0dy9pmlb0pc9b4ks5fb9zgnmhc9f2mkqmsdlb7f5z88xmj68y4qk"))))
+         "05ba33m99dg414lasn36mjmkd9lvrxgpamy1qj2zvi31i9vkq6y2"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("r-knitr" ,r-knitr)))
+     (list gfortran r-knitr))
     (propagated-inputs
-     `(("r-annotate" ,r-annotate)
-       ("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-survival" ,r-survival)))
+     (list r-annotate r-annotationdbi r-biobase r-biocgenerics
+           r-survival))
     (home-page "https://bioconductor.org/packages/genefilter")
     (synopsis "Filter genes from high-throughput experiments")
     (description
@@ -2957,17 +3140,16 @@ high-throughput sequencing experiments.")
 (define-public r-geneoverlap
   (package
     (name "r-geneoverlap")
-    (version "1.28.0")
+    (version "1.30.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GeneOverlap" version))
               (sha256
                (base32
-                "1kfw3h68rvbafhklds6sfmviwv91nms8wk0ywzkjg5h3mmgxbsv9"))))
+                "18l5dc4xcy1xa2h3sfw92w9rq9v0mnclamjxmzs5fqi469y5mwmm"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-gplots" ,r-gplots)))
+     (list r-rcolorbrewer r-gplots))
     (home-page "https://www.bioconductor.org/packages/GeneOverlap/")
     (synopsis "Test and visualize gene overlaps")
     (description "This package can be used to test two sets of gene lists
@@ -2977,37 +3159,37 @@ and visualize the results.")
 (define-public r-genomation
   (package
     (name "r-genomation")
-    (version "1.24.0")
+    (version "1.26.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "genomation" version))
               (sha256
                (base32
-                "0qa3b4mfd7l1sy4pw64zr2d90y5apah900krxjl4x39acygg0i2r"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-data-table" ,r-data-table)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridbase" ,r-gridbase)
-       ("r-impute" ,r-impute)
-       ("r-iranges" ,r-iranges)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-plotrix" ,r-plotrix)
-       ("r-plyr" ,r-plyr)
-       ("r-rcpp" ,r-rcpp)
-       ("r-readr" ,r-readr)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-seqpattern" ,r-seqpattern)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+                "0ynwsrlnp98iyz4bl2s7plin0k9iy9zix4jy4v38lcqg6n4iz00j"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-biostrings
+           r-bsgenome
+           r-data-table
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicranges
+           r-ggplot2
+           r-gridbase
+           r-impute
+           r-iranges
+           r-matrixstats
+           r-plotrix
+           r-plyr
+           r-rcpp
+           r-readr
+           r-reshape2
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors
+           r-seqpattern))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioinformatics.mdc-berlin.de/genomation/")
     (synopsis "Summary, annotation and visualization of genomic data")
     (description
@@ -3024,24 +3206,21 @@ genomic intervals.  In addition, it can use BAM or BigWig files as input.")
 (define-public r-genomeinfodb
   (package
     (name "r-genomeinfodb")
-    (version "1.28.1")
+    (version "1.30.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomeInfoDb" version))
               (sha256
                (base32
-                "1ga8yrn7j1wn9wdsvf4ws6n2987yk1yxz22v2jzaszfikhjh1sp8"))))
+                "1r0wblz9w4hqxm15wdssz0invx7hxhg3bnblkia6w3aazh30s6ns"))))
     (properties
      `((upstream-name . "GenomeInfoDb")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-genomeinfodbdata" ,r-genomeinfodbdata)
-       ("r-iranges" ,r-iranges)
-       ("r-rcurl" ,r-rcurl)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-biocgenerics r-genomeinfodbdata r-iranges r-rcurl
+           r-s4vectors))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/GenomeInfoDb")
     (synopsis "Utilities for manipulating chromosome identifiers")
     (description
@@ -3054,26 +3233,26 @@ names in their natural, rather than lexicographic, order.")
 (define-public r-genomicalignments
   (package
     (name "r-genomicalignments")
-    (version "1.28.0")
+    (version "1.30.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicAlignments" version))
               (sha256
                (base32
-                "00rq110jkh89nxgk05zh8kssxk8mb4dq0wjg3n7ivfmmm9wdwhp2"))))
+                "1jwksis94mk8bmdggk0w3kvxqwp4di6x78xgsjk6ij54710adyq9"))))
     (properties
      `((upstream-name . "GenomicAlignments")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biostrings" ,r-biostrings)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+     (list r-biocgenerics
+           r-biocparallel
+           r-biostrings
+           r-genomeinfodb
+           r-genomicranges
+           r-iranges
+           r-rsamtools
+           r-s4vectors
+           r-summarizedexperiment))
     (home-page "https://bioconductor.org/packages/GenomicAlignments")
     (synopsis "Representation and manipulation of short genomic alignments")
     (description
@@ -3087,34 +3266,34 @@ alignments.")
 (define-public r-genomicfeatures
   (package
     (name "r-genomicfeatures")
-    (version "1.44.1")
+    (version "1.46.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicFeatures" version))
               (sha256
                (base32
-                "0byizkq18kkyq3n604f38z4mikhi3szsrfrlz22wdq2ldq3nzkis"))))
+                "1dm049r7k41m8zzp5b332fw3ah3jpzzgpcb21icxwhlg483ipjyv"))))
     (properties
      `((upstream-name . "GenomicFeatures")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocio" ,r-biocio)
-       ("r-biomart" ,r-biomart)
-       ("r-biostrings" ,r-biostrings)
-       ("r-dbi" ,r-dbi)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-rcurl" ,r-rcurl)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-xvector" ,r-xvector)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationdbi
+           r-biobase
+           r-biocgenerics
+           r-biocio
+           r-biomart
+           r-biostrings
+           r-dbi
+           r-genomeinfodb
+           r-genomicranges
+           r-iranges
+           r-rcurl
+           r-rsqlite
+           r-rtracklayer
+           r-s4vectors
+           r-xvector))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/GenomicFeatures")
     (synopsis "Tools for working with transcript centric annotations")
     (description
@@ -3131,29 +3310,29 @@ extracting the desired features in a convenient format.")
 (define-public r-genomicfiles
   (package
     (name "r-genomicfiles")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GenomicFiles" version))
        (sha256
         (base32
-         "1plh14m7w6calw5yxcxp7g4bg8q00ax85m517wap78bni975k13y"))))
+         "0i5y6dk6z18yqj5k4zy756c6l57z9jq2w5a5dksh2di4qgdgjx3x"))))
     (properties `((upstream-name . "GenomicFiles")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-matrixgenerics" ,r-matrixgenerics)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-variantannotation" ,r-variantannotation)))
+     (list r-biocgenerics
+           r-biocparallel
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicranges
+           r-iranges
+           r-matrixgenerics
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors
+           r-summarizedexperiment
+           r-variantannotation))
     (home-page "https://bioconductor.org/packages/GenomicFiles")
     (synopsis "Distributed computing by file or by range")
     (description
@@ -3165,24 +3344,20 @@ provide added flexibility for data combination and manipulation.")
 (define-public r-genomicranges
   (package
     (name "r-genomicranges")
-    (version "1.44.0")
+    (version "1.46.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicRanges" version))
               (sha256
                (base32
-                "1qxc6dcwdlkan3hg0j9yfhz7gyi9qg671yj6zizsk6mzl7qqva0x"))))
+                "133r27wsdyppjv9kq0d2xamx007lkf416nnlaygs4hs3a76p9xwx"))))
     (properties
      `((upstream-name . "GenomicRanges")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-iranges" ,r-iranges)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-xvector" ,r-xvector)))
+     (list r-biocgenerics r-genomeinfodb r-iranges r-s4vectors r-xvector))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/GenomicRanges")
     (synopsis "Representation and manipulation of genomic intervals")
     (description
@@ -3196,26 +3371,26 @@ manipulating genomic intervals and variables defined along a genome.")
 (define-public r-gostats
   (package
     (name "r-gostats")
-    (version "2.58.0")
+    (version "2.60.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GOstats" version))
        (sha256
         (base32
-         "0jjswy6qmfgr2f6vk3y9pdvs9x91gn31h55qllgh0qb2cb26g9wa"))))
+         "1f8wqdl0swnvs59i6ljjcaglfqv314n8zxy4crpx806gbjzpn76z"))))
     (properties `((upstream-name . "GOstats")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotate" ,r-annotate)
-       ("r-annotationdbi" ,r-annotationdbi)
-       ("r-annotationforge" ,r-annotationforge)
-       ("r-biobase" ,r-biobase)
-       ("r-category" ,r-category)
-       ("r-go-db" ,r-go-db)
-       ("r-graph" ,r-graph)
-       ("r-rgraphviz" ,r-rgraphviz)
-       ("r-rbgl" ,r-rbgl)))
+     (list r-annotate
+           r-annotationdbi
+           r-annotationforge
+           r-biobase
+           r-category
+           r-go-db
+           r-graph
+           r-rgraphviz
+           r-rbgl))
     (home-page "https://bioconductor.org/packages/GOstats")
     (synopsis "Tools for manipulating GO and microarrays")
     (description
@@ -3227,25 +3402,25 @@ testing and other simple calculations.")
 (define-public r-gseabase
   (package
     (name "r-gseabase")
-    (version "1.54.0")
+    (version "1.56.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GSEABase" version))
        (sha256
         (base32
-         "0946kkykms79mqnx262q20xzrrhv7cv723xh378335ff41qyf63n"))))
+         "1i8rryvagxk2pd8nl4a6yldwv82yx869nvv95jf8v00bna08f4d6"))))
     (properties `((upstream-name . "GSEABase")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotate" ,r-annotate)
-       ("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-graph" ,r-graph)
-       ("r-xml" ,r-xml)))
+     (list r-annotate
+           r-annotationdbi
+           r-biobase
+           r-biocgenerics
+           r-graph
+           r-xml))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/GSEABase")
     (synopsis "Gene set enrichment data structures and methods")
     (description
@@ -3256,17 +3431,17 @@ Enrichment Analysis} (GSEA).")
 (define-public r-hpar
   (package
     (name "r-hpar")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "hpar" version))
        (sha256
         (base32
-         "0q5pp04rq2gsh1kibvp8bvjkqc1kb46qpnj6agqp2vyqhrrfrm99"))))
+         "1inajapdhjxg0vwhsdnhfq22h3fv7ad7m1lv58y5v41p59av1w76"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/hpar/")
     (synopsis "Human Protein Atlas in R")
     (description "This package provides a simple interface to and data from
@@ -3276,26 +3451,24 @@ the Human Protein Atlas project.")
 (define-public r-rhtslib
   (package
     (name "r-rhtslib")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rhtslib" version))
        (sha256
         (base32
-         "0acpgv98529ic2i2k03knz05akb6h51wbz7sr5zgi8gk4nmawrlf"))))
+         "0pwmzwjf6agfp3bq6w8s3piwmzwjdd474qd8zmbzrm772qbadfr4"))))
     (properties `((upstream-name . "Rhtslib")))
     (build-system r-build-system)
     ;; Without this a temporary directory ends up in the Rhtslib.so binary,
     ;; which makes R abort the build.
     (arguments '(#:configure-flags '("--no-staged-install")))
     (propagated-inputs
-     `(("curl" ,curl)
-       ("zlib" ,zlib) ; packages using rhtslib need to link with zlib
-       ("r-zlibbioc" ,r-zlibbioc)))
+     (list curl zlib ; packages using rhtslib need to link with zlib
+           r-zlibbioc))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://github.com/nhayden/Rhtslib")
     (synopsis "High-throughput sequencing library as an R package")
     (description
@@ -3307,15 +3480,15 @@ of other R packages who wish to make use of HTSlib.")
 (define-public r-impute
   (package
     (name "r-impute")
-    (version "1.66.0")
+    (version "1.68.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "impute" version))
               (sha256
                (base32
-                "0pprkv25avxhllddcssvqvy3nibmqkfwaq4xnlhka7858gyiyd1k"))))
+                "0k6dil8ljgp5qr87m7hxli4igb36fbxiwczaqc5pi8mlfh70fqj5"))))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/impute")
     (synopsis "Imputation for microarray data")
@@ -3327,23 +3500,21 @@ microarray data, using nearest neighbor averaging.")
 (define-public r-interactivedisplaybase
   (package
     (name "r-interactivedisplaybase")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "interactiveDisplayBase" version))
        (sha256
         (base32
-         "00rgrrmglslgb6j7whp0m5dlyl4436r647br05rrpv8cxrmbs2iv"))))
+         "1pi887192k1jifb4k3pf2jn5hcl1xmmy6vwl22r9njsprdyb3kab"))))
     (properties
      `((upstream-name . "interactiveDisplayBase")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-dt" ,r-dt)
-       ("r-shiny" ,r-shiny)))
+     (list r-biocgenerics r-dt r-shiny))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/interactiveDisplayBase")
     (synopsis "Base package for web displays of Bioconductor objects")
     (description
@@ -3354,22 +3525,20 @@ Shiny-based display methods for Bioconductor objects.")
 (define-public r-keggrest
   (package
     (name "r-keggrest")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "KEGGREST" version))
        (sha256
         (base32
-         "15313d20v3ziyn52fhc6fbzcy1kxjkdx18124bxhdfd14f4aypcd"))))
+         "1np3i1k7rki9akh70156ggmid52yy0is9q5vd3s45ra7an0ap279"))))
     (properties `((upstream-name . "KEGGREST")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biostrings" ,r-biostrings)
-       ("r-httr" ,r-httr)
-       ("r-png" ,r-png)))
+     (list r-biostrings r-httr r-png))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/KEGGREST")
     (synopsis "Client-side REST access to KEGG")
     (description
@@ -3380,13 +3549,13 @@ Shiny-based display methods for Bioconductor objects.")
 (define-public r-limma
   (package
     (name "r-limma")
-    (version "3.48.3")
+    (version "3.50.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "limma" version))
               (sha256
                (base32
-                "0385ac0hvvml99krcgcpp6q7layjhzgp9xcxkcjrpfg5mjg1z4sx"))))
+                "05ypmax1s6y1nz42bxn61wxhzzw6185q633crzpdcbbz3dz4vgvy"))))
     (build-system r-build-system)
     (home-page "http://bioinf.wehi.edu.au/limma")
     (synopsis "Package for linear models for microarray and RNA-seq data")
@@ -3399,37 +3568,37 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.")
 (define-public r-methylkit
   (package
     (name "r-methylkit")
-    (version "1.18.0")
+    (version "1.20.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "methylKit" version))
               (sha256
                (base32
-                "147nag4rz2xpjkkf8rmhja9k4ixjj1hsb0lq3lw7mw6q67zxsvf3"))))
+                "02px46h2ynprss7kwll3i0jz0clrdg0bys70jacd432xw34nm2sx"))))
     (properties `((upstream-name . "methylKit")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-emdbook" ,r-emdbook)
-       ("r-fastseg" ,r-fastseg)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-gtools" ,r-gtools)
-       ("r-iranges" ,r-iranges)
-       ("r-kernsmooth" ,r-kernsmooth)
-       ("r-limma" ,r-limma)
-       ("r-mclust" ,r-mclust)
-       ("r-mgcv" ,r-mgcv)
-       ("r-qvalue" ,r-qvalue)
-       ("r-r-utils" ,r-r-utils)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rhtslib" ,r-rhtslib)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-zlibbioc" ,r-zlibbioc)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr))) ; for vignettes
+     (list r-data-table
+           r-emdbook
+           r-fastseg
+           r-genomeinfodb
+           r-genomicranges
+           r-gtools
+           r-iranges
+           r-kernsmooth
+           r-limma
+           r-mclust
+           r-mgcv
+           r-qvalue
+           r-r-utils
+           r-rcpp
+           r-rhtslib
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors
+           r-zlibbioc))
+    (native-inputs
+     (list r-knitr)) ; for vignettes
     (home-page "https://github.com/al2na/methylKit")
     (synopsis
      "DNA methylation analysis from high-throughput bisulfite sequencing results")
@@ -3457,12 +3626,12 @@ TAB-Seq.")
     (properties `((upstream-name . "motifRG")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-bsgenome-hsapiens-ucsc-hg19" ,r-bsgenome-hsapiens-ucsc-hg19)
-       ("r-iranges" ,r-iranges)
-       ("r-seqlogo" ,r-seqlogo)
-       ("r-xvector" ,r-xvector)))
+     (list r-biostrings
+           r-bsgenome
+           r-bsgenome-hsapiens-ucsc-hg19
+           r-iranges
+           r-seqlogo
+           r-xvector))
     (home-page "https://bioconductor.org/packages/motifRG")
     (synopsis "Discover motifs in high throughput sequencing data")
     (description
@@ -3473,41 +3642,42 @@ throughput genetic sequencing data sets using regression methods.")
 (define-public r-mutationalpatterns
   (package
     (name "r-mutationalpatterns")
-    (version "3.2.0")
+    (version "3.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MutationalPatterns" version))
        (sha256
         (base32
-         "0433i4xbz8hrfaj8fxgzps3x8dqrl5vgwzg7qmp4cy5sb1lw5wvs"))))
-    (build-system r-build-system)
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
-    (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ;; These two packages are suggested packages
-       ("r-bsgenome-hsapiens-1000g" ,r-bsgenome-hsapiens-1000genomes-hs37d5)
-       ("r-bsgenome-hsapiens-ucsc-hg19" ,r-bsgenome-hsapiens-ucsc-hg19)
-       ("r-cowplot" ,r-cowplot)
-       ("r-dplyr" ,r-dplyr)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggalluvial" ,r-ggalluvial)
-       ("r-ggdendro" ,r-ggdendro)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-iranges" ,r-iranges)
-       ("r-magrittr" ,r-magrittr)
-       ("r-nmf" ,r-nmf)
-       ("r-pracma" ,r-pracma)
-       ("r-purrr" ,r-purrr)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-variantannotation" ,r-variantannotation)))
+         "1n9rakj57yf17hay1bzvwc2h761yijmlflb3crg1bzwvmn32yhsl"))))
+    (build-system r-build-system)
+    (native-inputs
+     (list r-knitr))
+    (propagated-inputs
+     (list r-biocgenerics
+           r-biostrings
+           r-bsgenome
+           ;; These two packages are suggested packages
+           r-bsgenome-hsapiens-1000genomes-hs37d5
+           r-bsgenome-hsapiens-ucsc-hg19
+           r-cowplot
+           r-dplyr
+           r-genomeinfodb
+           r-genomicranges
+           r-ggalluvial
+           r-ggdendro
+           r-ggplot2
+           r-iranges
+           r-magrittr
+           r-nmf
+           r-pracma
+           r-purrr
+           r-rcolorbrewer
+           r-s4vectors
+           r-stringr
+           r-tibble
+           r-tidyr
+           r-variantannotation))
     (home-page "https://bioconductor.org/packages/MutationalPatterns/")
     (synopsis "Extract and visualize mutational patterns in genomic data")
     (description "This package provides an extensive toolset for the
@@ -3518,41 +3688,41 @@ in SNV base substitution data.")
 (define-public r-msnbase
   (package
     (name "r-msnbase")
-    (version "2.18.0")
+    (version "2.20.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MSnbase" version))
        (sha256
         (base32
-         "1z7s17j6zgb70m0khyf9icqlnbnzlivca7vw7j0vxyw417ld9lkr"))))
+         "0ip614mdwisz2hlmyfgngysq1s3hajb88cgdmygfc8i6kyxjkjzl"))))
     (properties `((upstream-name . "MSnbase")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-affy" ,r-affy)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-digest" ,r-digest)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-impute" ,r-impute)
-       ("r-iranges" ,r-iranges)
-       ("r-lattice" ,r-lattice)
-       ("r-maldiquant" ,r-maldiquant)
-       ("r-mass" ,r-mass)
-       ("r-mscoreutils" ,r-mscoreutils)
-       ("r-mzid" ,r-mzid)
-       ("r-mzr" ,r-mzr)
-       ("r-pcamethods" ,r-pcamethods)
-       ("r-plyr" ,r-plyr)
-       ("r-protgenerics" ,r-protgenerics)
-       ("r-rcpp" ,r-rcpp)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-scales" ,r-scales)
-       ("r-vsn" ,r-vsn)
-       ("r-xml" ,r-xml)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-affy
+           r-biobase
+           r-biocgenerics
+           r-biocparallel
+           r-digest
+           r-ggplot2
+           r-impute
+           r-iranges
+           r-lattice
+           r-maldiquant
+           r-mass
+           r-mscoreutils
+           r-mzid
+           r-mzr
+           r-pcamethods
+           r-plyr
+           r-protgenerics
+           r-rcpp
+           r-s4vectors
+           r-scales
+           r-vsn
+           r-xml))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/lgatto/MSnbase")
     (synopsis "Base functions and classes for MS-based proteomics")
     (description
@@ -3563,14 +3733,14 @@ of mass spectrometry based proteomics data.")
 (define-public r-msnid
   (package
     (name "r-msnid")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MSnID" version))
        (sha256
         (base32
-         "0r3vgigf4fk0xzfg8gcvad01jdh0fysh6x22m9qy77x6glyrxcj2"))))
+         "0dks5h3vp9ly8x24px2rl5blqicxybpxjnxvg2p1bwq8zvjkm38p"))))
     (properties `((upstream-name . "MSnID")))
     (build-system r-build-system)
     (arguments
@@ -3579,32 +3749,32 @@ of mass spectrometry based proteomics data.")
          (add-after 'unpack 'set-HOME
            (lambda _ (setenv "HOME" "/tmp"))))))
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-annotationhub" ,r-annotationhub)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocstyle" ,r-biocstyle)
-       ("r-biostrings" ,r-biostrings)
-       ("r-data-table" ,r-data-table)
-       ("r-doparallel" ,r-doparallel)
-       ("r-dplyr" ,r-dplyr)
-       ("r-foreach" ,r-foreach)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-iterators" ,r-iterators)
-       ("r-msnbase" ,r-msnbase)
-       ("r-msmstests" ,r-msmstests)
-       ("r-mzid" ,r-mzid)
-       ("r-mzr" ,r-mzr)
-       ("r-protgenerics" ,r-protgenerics)
-       ("r-purrr" ,r-purrr)
-       ("r-r-cache" ,r-r-cache)
-       ("r-rcpp" ,r-rcpp)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rlang" ,r-rlang)
-       ("r-runit" ,r-runit)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)
-       ("r-xtable" ,r-xtable)))
+     (list r-annotationdbi
+           r-annotationhub
+           r-biobase
+           r-biocgenerics
+           r-biocstyle
+           r-biostrings
+           r-data-table
+           r-doparallel
+           r-dplyr
+           r-foreach
+           r-ggplot2
+           r-iterators
+           r-msnbase
+           r-msmstests
+           r-mzid
+           r-mzr
+           r-protgenerics
+           r-purrr
+           r-r-cache
+           r-rcpp
+           r-reshape2
+           r-rlang
+           r-runit
+           r-stringr
+           r-tibble
+           r-xtable))
     (home-page "https://bioconductor.org/packages/MSnID")
     (synopsis "Utilities for LC-MSn proteomics identifications")
     (description
@@ -3620,25 +3790,25 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
 (define-public r-mzid
   (package
     (name "r-mzid")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "mzID" version))
        (sha256
         (base32
-         "1wsy6frxa5602jqb1nlqv39mzgpid8wfyvb9m2jb6srv7p59rgys"))))
+         "0r001amd4m99cv0ixw38rpz0zv0xqb0qyvs16bz1i4a756391qri"))))
     (properties `((upstream-name . "mzID")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-doparallel" ,r-doparallel)
-       ("r-foreach" ,r-foreach)
-       ("r-iterators" ,r-iterators)
-       ("r-plyr" ,r-plyr)
-       ("r-protgenerics" ,r-protgenerics)
-       ("r-xml" ,r-xml)))
+     (list r-doparallel
+           r-foreach
+           r-iterators
+           r-plyr
+           r-protgenerics
+           r-xml))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/mzID")
     (synopsis "Parser for mzIdentML files")
     (description
@@ -3651,14 +3821,14 @@ specific parser.")
 (define-public r-mzr
   (package
     (name "r-mzr")
-    (version "2.26.1")
+    (version "2.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "mzR" version))
        (sha256
         (base32
-         "0z4cz6lir9gwzy0hxwv03wv36fkkfdb97p9wv4af020k0zkp3ipr"))
+         "1azq0wjjy6n5xc721gjz6afm43ajz15b4p34vgsdjzwg9qn1vrs1"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -3680,20 +3850,20 @@ specific parser.")
 -lboost_iostreams -lboost_thread -lboost_filesystem -lboost_chrono\n")))
              #t)))))
     (inputs
-     `(;; Our default boost package won't work here, unfortunately, even with
-       ;; mzR version 2.26.1.
-       ("boost" ,boost-for-mysql) ; use this instead of the bundled boost sources
-       ("zlib" ,zlib)))
-    (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-ncdf4" ,r-ncdf4)
-       ("r-protgenerics" ,r-protgenerics)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rhdf5lib" ,r-rhdf5lib)
-       ("r-zlibbioc" ,r-zlibbioc)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (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
+           zlib))
+    (propagated-inputs
+     (list r-biobase
+           r-biocgenerics
+           r-ncdf4
+           r-protgenerics
+           r-rcpp
+           r-rhdf5lib
+           r-zlibbioc))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/sneumann/mzR/")
     (synopsis "Parser for mass spectrometry data files")
     (description
@@ -3708,28 +3878,28 @@ previously been used in XCMS.")
 (define-public r-organismdbi
   (package
     (name "r-organismdbi")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "OrganismDbi" version))
        (sha256
         (base32
-         "0p8ccpdchdwci4kv9y07wdadzgms8nipvg6rm1rll35jcflnnkxi"))))
+         "0zp6x2iqhn9s3xp07yilnr6hn73acvkdai5xip4iiwjdlnfffj83"))))
     (properties `((upstream-name . "OrganismDbi")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocmanager" ,r-biocmanager)
-       ("r-dbi" ,r-dbi)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-graph" ,r-graph)
-       ("r-iranges" ,r-iranges)
-       ("r-rbgl" ,r-rbgl)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-annotationdbi
+           r-biobase
+           r-biocgenerics
+           r-biocmanager
+           r-dbi
+           r-genomicfeatures
+           r-genomicranges
+           r-graph
+           r-iranges
+           r-rbgl
+           r-s4vectors))
     (home-page "https://bioconductor.org/packages/OrganismDbi")
     (synopsis "Software to enable the smooth interfacing of database packages")
     (description "The package enables a simple unified interface to several
@@ -3740,21 +3910,18 @@ the fact that each of these packages implements a select methods.")
 (define-public r-pcamethods
   (package
     (name "r-pcamethods")
-    (version "1.84.0")
+    (version "1.86.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "pcaMethods" version))
        (sha256
         (base32
-         "1ccqsxn487dy92c2d1iffh9917z4zq5ia92zv2h6pi00jjc6ymb5"))))
+         "1fj2v6sna4lbw7ar9h93y2g4pzylqqp7760ih425gcai7s19xdrg"))))
     (properties `((upstream-name . "pcaMethods")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-mass" ,r-mass)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-biobase r-biocgenerics r-mass r-rcpp))
     (home-page "https://github.com/hredestig/pcamethods")
     (synopsis "Collection of PCA methods")
     (description
@@ -3770,14 +3937,14 @@ structure (pcaRes) to provide a common interface to the PCA results.")
 (define-public r-protgenerics
   (package
     (name "r-protgenerics")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ProtGenerics" version))
        (sha256
         (base32
-         "1c79k8nc28782w5gxi7pkm8jmddq1hdw6khs9kgsp8dyk60ak6fq"))))
+         "0x53pk7h47gjza1q5pz7jb1qqhwa9z2rr5fr61qc92zl3mqk57m0"))))
     (properties `((upstream-name . "ProtGenerics")))
     (build-system r-build-system)
     (home-page "https://github.com/lgatto/ProtGenerics")
@@ -3790,19 +3957,18 @@ proteomics packages.")
 (define-public r-rbgl
   (package
     (name "r-rbgl")
-    (version "1.68.0")
+    (version "1.70.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RBGL" version))
        (sha256
         (base32
-         "0l40ibf8g5s4ay83s92l198jjqc5l09hcmxqcjrpifvp5pjf9yy5"))))
+         "0k2p1lwdvix4n742a97lv988rx5kg8cvcmzgyzj0538n1nz0lxk0"))))
     (properties `((upstream-name . "RBGL")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-graph" ,r-graph)))
+     (list r-bh r-graph))
     (home-page "https://www.bioconductor.org/packages/RBGL")
     (synopsis "Interface to the Boost graph library")
     (description
@@ -3813,45 +3979,45 @@ the graph algorithms contained in the Boost library.")
 (define-public r-rcas
   (package
     (name "r-rcas")
-    (version "1.18.0")
+    (version "1.20.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "RCAS" version))
               (sha256
                (base32
-                "0l92v870ndna8zjqwzf22fb9vyhkh6942v4gaiqr1yc4qr521p5p"))))
+                "02zwz7c8ljmdcfxj54xns0a31sj616x63q63wxhxa1nb4dhgmvk7"))))
     (properties `((upstream-name . "RCAS")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-bsgenome-hsapiens-ucsc-hg19" ,r-bsgenome-hsapiens-ucsc-hg19)
-       ("r-cowplot" ,r-cowplot)
-       ("r-data-table" ,r-data-table)
-       ("r-dt" ,r-dt)
-       ("r-genomation" ,r-genomation)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggseqlogo" ,r-ggseqlogo)
-       ("r-gprofiler2" ,r-gprofiler2)
-       ("r-iranges" ,r-iranges)
-       ("r-knitr" ,r-knitr)
-       ("r-pbapply" ,r-pbapply)
-       ("r-pheatmap" ,r-pheatmap)
-       ("r-plotly" ,r-plotly)
-       ("r-plotrix" ,r-plotrix)
-       ("r-proxy" ,r-proxy)
-       ("r-ranger" ,r-ranger)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-s4vectors" ,r-s4vectors)
-       ("pandoc" ,pandoc)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biocgenerics
+           r-biostrings
+           r-bsgenome
+           r-bsgenome-hsapiens-ucsc-hg19
+           r-cowplot
+           r-data-table
+           r-dt
+           r-genomation
+           r-genomeinfodb
+           r-genomicfeatures
+           r-genomicranges
+           r-ggplot2
+           r-ggseqlogo
+           r-gprofiler2
+           r-iranges
+           r-knitr
+           r-pbapply
+           r-pheatmap
+           r-plotly
+           r-plotrix
+           r-proxy
+           r-ranger
+           r-rsqlite
+           r-rtracklayer
+           r-rmarkdown
+           r-s4vectors
+           pandoc))
+    (native-inputs
+     (list r-knitr))
     (synopsis "RNA-centric annotation system")
     (description
      "RCAS aims to be a standalone RNA-centric annotation system that provides
@@ -3863,27 +4029,27 @@ library implementing most of the pipeline's features.")
 (define-public r-regioner
   (package
     (name "r-regioner")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "regioneR" version))
        (sha256
         (base32
-         "0xzzaz3cl6pyxfsg0d931v8k15wbd05s5mnsb7igxldc5qqg3nsl"))))
+         "0y1mawzfvxrympc47q3isk96sl9d1bc8kdsxpm8rnhqg5bmgwya6"))))
     (properties `((upstream-name . "regioneR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-memoise" ,r-memoise)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-biostrings
+           r-bsgenome
+           r-genomeinfodb
+           r-genomicranges
+           r-iranges
+           r-memoise
+           r-rtracklayer
+           r-s4vectors))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/regioneR/")
     (synopsis "Association analysis of genomic regions")
     (description "This package offers a statistical framework based on
@@ -3894,39 +4060,39 @@ region sets and other genomic features.")
 (define-public r-reportingtools
   (package
     (name "r-reportingtools")
-    (version "2.32.1")
+    (version "2.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ReportingTools" version))
        (sha256
         (base32
-         "0wq9y649dh1am6djzz0xlz42428xsgw2bdx1dknhdw2xbydmmx47"))))
+         "06kwf87h84xgswkrm7brmgr9aj1nf6cxp24hrfymkzq2pha5y5j7"))))
     (properties
      `((upstream-name . "ReportingTools")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotate" ,r-annotate)
-       ("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-category" ,r-category)
-       ("r-deseq2" ,r-deseq2)
-       ("r-edger" ,r-edger)
-       ("r-ggbio" ,r-ggbio)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gostats" ,r-gostats)
-       ("r-gseabase" ,r-gseabase)
-       ("r-hwriter" ,r-hwriter)
-       ("r-iranges" ,r-iranges)
-       ("r-knitr" ,r-knitr)
-       ("r-lattice" ,r-lattice)
-       ("r-limma" ,r-limma)
-       ("r-pfam-db" ,r-pfam-db)
-       ("r-r-utils" ,r-r-utils)
-       ("r-xml" ,r-xml)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotate
+           r-annotationdbi
+           r-biobase
+           r-biocgenerics
+           r-category
+           r-deseq2
+           r-edger
+           r-ggbio
+           r-ggplot2
+           r-gostats
+           r-gseabase
+           r-hwriter
+           r-iranges
+           r-knitr
+           r-lattice
+           r-limma
+           r-pfam-db
+           r-r-utils
+           r-xml))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/ReportingTools/")
     (synopsis "Tools for making reports in various formats")
     (description
@@ -3944,19 +4110,18 @@ browser.")
 (define-public r-rhdf5
   (package
     (name "r-rhdf5")
-    (version "2.36.0")
+    (version "2.38.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "rhdf5" version))
               (sha256
                (base32
-                "1a5kw9ry9cr258al0x3q0ss5xn1ymscdypx51vzzgzamhy7dqakz"))))
+                "13zm993l3i9f98gqdpxgsrzf9fgqppx2ajvrl0i3f7cvpifcgxqg"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rhdf5filters" ,r-rhdf5filters)
-       ("r-rhdf5lib" ,r-rhdf5lib)))
+     (list r-rhdf5filters r-rhdf5lib))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/rhdf5")
     (synopsis "HDF5 interface to R")
     (description
@@ -3972,22 +4137,22 @@ the available RAM.")
 (define-public r-rhdf5filters
   (package
     (name "r-rhdf5filters")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "rhdf5filters" version))
        (sha256
         (base32
-         "133v0s452acspi4dbf6gsa2xrr0qza86jdjjbpwhdv6zfd1djbgc"))))
+         "05b015pyp3g1crmm2d3ldsa7r5w0khmf87qbl4fv16r6pdggha78"))))
     (properties `((upstream-name . "rhdf5filters")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rhdf5lib" ,r-rhdf5lib)))
+     (list r-rhdf5lib))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/grimbough/rhdf5filters")
     (synopsis "HDF5 compression filters")
     (description
@@ -3998,13 +4163,13 @@ HDF5 datasets.")
 (define-public r-rsamtools
   (package
     (name "r-rsamtools")
-    (version "2.8.0")
+    (version "2.10.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Rsamtools" version))
               (sha256
                (base32
-                "0arhh5bbx3pmxmkh5sjgczcswqy83d35r7cjhd2knpczdvrixaq5"))))
+                "0v6b3j45ivd9f04fpfs1vjwby5pi30mf5683bjxim01vi2krj9yh"))))
     (properties
      `((upstream-name . "Rsamtools")))
     (build-system r-build-system)
@@ -4018,16 +4183,16 @@ HDF5 datasets.")
              (substitute* "NAMESPACE"
                (("import\\(zlibbioc\\)") "")))))))
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biostrings" ,r-biostrings)
-       ("r-bitops" ,r-bitops)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-rhtslib" ,r-rhtslib)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-xvector" ,r-xvector)))
+     (list r-biocgenerics
+           r-biocparallel
+           r-biostrings
+           r-bitops
+           r-genomeinfodb
+           r-genomicranges
+           r-iranges
+           r-rhtslib
+           r-s4vectors
+           r-xvector))
     (home-page "https://bioconductor.org/packages/release/bioc/html/Rsamtools.html")
     (synopsis "Interface to samtools, bcftools, and tabix")
     (description
@@ -4053,11 +4218,7 @@ tab-delimited (tabix) files.")
     (properties `((upstream-name . "restfulr")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcurl" ,r-rcurl)
-       ("r-rjson" ,r-rjson)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-xml" ,r-xml)
-       ("r-yaml" ,r-yaml)))
+     (list r-rcurl r-rjson r-s4vectors r-xml r-yaml))
     (home-page "https://cran.r-project.org/package=restfulr")
     (synopsis "R interface to RESTful web services")
     (description
@@ -4067,13 +4228,13 @@ tab-delimited (tabix) files.")
 (define-public r-rtracklayer
   (package
     (name "r-rtracklayer")
-    (version "1.52.1")
+    (version "1.54.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "rtracklayer" version))
               (sha256
                (base32
-                "11w6dx09pb49lin1gr9q88xn7ixh9jd5z6m9z27djchm0nw10lx9"))))
+                "11bh9khra2qdmicppi6ya43kf8f1z13ak92vkl6nr5f20k54cphc"))))
     (build-system r-build-system)
     (arguments
      `(#:phases
@@ -4085,24 +4246,24 @@ tab-delimited (tabix) files.")
              (substitute* "NAMESPACE"
                (("import\\(zlibbioc\\)") "")))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("zlib" ,zlib)))
-    (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocio" ,r-biocio)
-       ("r-biostrings" ,r-biostrings)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-rcurl" ,r-rcurl)
-       ("r-restfulr" ,r-restfulr)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-xml" ,r-xml)
-       ("r-xvector" ,r-xvector)
-       ("r-zlibbioc" ,r-zlibbioc)))
+     (list zlib))
+    (propagated-inputs
+     (list r-biocgenerics
+           r-biocio
+           r-biostrings
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicranges
+           r-iranges
+           r-rcurl
+           r-restfulr
+           r-rsamtools
+           r-s4vectors
+           r-xml
+           r-xvector
+           r-zlibbioc))
     (home-page "https://bioconductor.org/packages/rtracklayer")
     (synopsis "R interface to genome browsers and their annotation tracks")
     (description
@@ -4128,13 +4289,13 @@ as well as query and modify the browser state, such as the current viewport.")
     (properties `((upstream-name . "samr")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-gsa" ,r-gsa)
-       ("r-impute" ,r-impute)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-openxlsx" ,r-openxlsx)
-       ("r-shiny" ,r-shiny)
-       ("r-shinyfiles" ,r-shinyfiles)))
-    (native-inputs `(("gfortran" ,gfortran)))
+     (list r-gsa
+           r-impute
+           r-matrixstats
+           r-openxlsx
+           r-shiny
+           r-shinyfiles))
+    (native-inputs (list gfortran))
     (home-page "https://statweb.stanford.edu/~tibs/SAM/")
     (synopsis "Significance analysis of Microarrays")
     (description
@@ -4143,21 +4304,61 @@ differential expression analysis, RNAseq data and related problems.")
     ;; Any version of the LGPL
     (license license:lgpl3+)))
 
+(define-public r-scdblfinder
+  (package
+    (name "r-scdblfinder")
+    (version "1.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "scDblFinder" version))
+       (sha256
+        (base32 "0wzmmcsnjybgzbc5rn4i72n26j9n59dfy1zg8ij0q8p4276jplsd"))))
+    (properties `((upstream-name . "scDblFinder")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-biocgenerics
+           r-biocneighbors
+           r-biocparallel
+           r-biocsingular
+           r-bluster
+           r-delayedarray
+           r-igraph
+           r-mass
+           r-matrix
+           r-s4vectors
+           r-scater
+           r-scran
+           r-scuttle
+           r-singlecellexperiment
+           r-summarizedexperiment
+           r-xgboost))
+    (native-inputs (list r-knitr))
+    (home-page "https://github.com/plger/scDblFinder")
+    (synopsis "Detect multiplets in single-cell RNA sequencing data")
+    (description
+     "The scDblFinder package gathers various methods for the detection and
+handling of doublets/multiplets in single-cell RNA sequencing data (i.e.
+multiple cells captured within the same droplet or reaction volume).  It
+includes methods formerly found in the scran package, and the new fast and
+comprehensive scDblFinder method.")
+    (license license:gpl3)))
+
 (define-public r-seqlogo
   (package
     (name "r-seqlogo")
-    (version "1.58.0")
+    (version "1.60.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "seqLogo" version))
        (sha256
         (base32
-         "1253sj1hc6bbrff0iv5xa3v9znqvisll0fy6fdjka9c778fn4mcp"))))
+         "013hwj2lp29nqa8mkvm25aliarg0k725crg4cpsbj0iiskyrs6rl"))))
     (properties `((upstream-name . "seqLogo")))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/seqLogo")
     (synopsis "Sequence logos for DNA sequence alignments")
     (description
@@ -4169,22 +4370,18 @@ Stephens (1990).")
 (define-public r-seqpattern
   (package
     (name "r-seqpattern")
-    (version "1.24.0")
+    (version "1.26.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "seqPattern" version))
               (sha256
                (base32
-                "0h74z84zyvfzclsm0g13b95hirn99185wc6lp53jkzah9yyi59ay"))))
+                "1mik575qaxw9h9qyjn971207pfgbc8p1mx60jrb20jbrrihgg2na"))))
     (properties
      `((upstream-name . "seqPattern")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biostrings" ,r-biostrings)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-kernsmooth" ,r-kernsmooth)
-       ("r-plotrix" ,r-plotrix)))
+     (list r-biostrings r-genomicranges r-iranges r-kernsmooth r-plotrix))
     (home-page "https://bioconductor.org/packages/seqPattern")
     (synopsis "Visualising oligonucleotide patterns and motif occurrences")
     (description
@@ -4196,35 +4393,35 @@ reference point and sorted by a user defined feature.")
 (define-public r-shortread
   (package
     (name "r-shortread")
-    (version "1.50.0")
+    (version "1.52.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ShortRead" version))
        (sha256
         (base32
-         "0zqinw3c6h5v1c5nhzkiziirws16nbviccgw8nj2d22r33dbqwp3"))))
+         "1p17v15wd3v6w9ligpjjk28vy8k2ql57y2hhm8y6vnv9y3nagjsx"))))
     (properties `((upstream-name . "ShortRead")))
     (build-system r-build-system)
     (inputs
-     `(("zlib" ,zlib)))
-    (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biostrings" ,r-biostrings)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-rhtslib" ,r-rhtslib)
-       ("r-hwriter" ,r-hwriter)
-       ("r-iranges" ,r-iranges)
-       ("r-lattice" ,r-lattice)
-       ("r-latticeextra" ,r-latticeextra)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-xvector" ,r-xvector)
-       ("r-zlibbioc" ,r-zlibbioc)))
+     (list zlib))
+    (propagated-inputs
+     (list r-biobase
+           r-biocgenerics
+           r-biocparallel
+           r-biostrings
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicranges
+           r-rhtslib
+           r-hwriter
+           r-iranges
+           r-lattice
+           r-latticeextra
+           r-rsamtools
+           r-s4vectors
+           r-xvector
+           r-zlibbioc))
     (home-page "https://bioconductor.org/packages/ShortRead")
     (synopsis "FASTQ input and manipulation tools")
     (description
@@ -4236,27 +4433,63 @@ purposes.  The package also contains legacy support for early single-end,
 ungapped alignment formats.")
     (license license:artistic2.0)))
 
+(define-public r-simplifyenrichment
+  (package
+    (name "r-simplifyenrichment")
+    (version "1.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "simplifyEnrichment" version))
+       (sha256
+        (base32
+         "05d9yjd8s7q1q78qmnx5xfrz9ppswc2cpfmjj47d338w783lwk98"))))
+    (properties
+     `((upstream-name . "simplifyEnrichment")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-annotationdbi
+           r-biocgenerics
+           r-circlize
+           r-clue
+           r-cluster
+           r-complexheatmap
+           r-digest
+           r-getoptlong
+           r-go-db
+           r-gosemsim
+           r-matrix
+           r-org-hs-eg-db
+           r-proxyc
+           r-slam
+           r-tm))
+    (native-inputs (list r-knitr))
+    (home-page "https://github.com/jokergoo/simplifyEnrichment")
+    (synopsis "Simplify functional enrichment results")
+    (description "This package provides a new clustering algorithm, binary
+cut, for clustering similarity matrices of functional terms is implemented in
+this package.  It also provides functionalities for visualizing, summarizing
+and comparing the clusterings.")
+    (license license:expat)))
+
 (define-public r-trajectoryutils
   (package
     (name "r-trajectoryutils")
-    (version "1.0.0")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "TrajectoryUtils" version))
        (sha256
         (base32
-         "1b7mg3ypp1ay98cav47h9vn692lx0n9b5b0hpansgnkr5prb823b"))))
+         "0pzm1h69bg04a2v09r8c6pb3pix6f3n5dylvbv7wsp574qfaqyd1"))))
     (properties
      `((upstream-name . "TrajectoryUtils")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-igraph" ,r-igraph)
-       ("r-matrix" ,r-matrix)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-singlecellexperiment" ,r-singlecellexperiment)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-igraph r-matrix r-s4vectors r-singlecellexperiment
+           r-summarizedexperiment))
+    (native-inputs (list r-knitr))
     (home-page "https://bioconductor.org/packages/TrajectoryUtils")
     (synopsis "Single-cell trajectory analysis utilities")
     (description
@@ -4269,24 +4502,24 @@ structures to hold pseudotime inference results.")
 (define-public r-slingshot
   (package
    (name "r-slingshot")
-   (version "2.0.0")
+   (version "2.2.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "slingshot" version))
             (sha256
              (base32
-              "1aqsz2kxwax8d8d5iv3zk5hlyk5aya1wbxs1wky2rgccw4d35whx"))))
+              "081kp9b0lpw2xq9xvd2kykqqrqcj322mp7xa44xc3kf0nzsivqfa"))))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-igraph" ,r-igraph)
-      ("r-matrixstats" ,r-matrixstats)
-      ("r-princurve" ,r-princurve)
-      ("r-s4vectors" ,r-s4vectors)
-      ("r-singlecellexperiment" ,r-singlecellexperiment)
-      ("r-summarizedexperiment" ,r-summarizedexperiment)
-      ("r-trajectoryutils" ,r-trajectoryutils)))
+    (list r-igraph
+          r-matrixstats
+          r-princurve
+          r-s4vectors
+          r-singlecellexperiment
+          r-summarizedexperiment
+          r-trajectoryutils))
    (native-inputs
-    `(("r-knitr" ,r-knitr)))
+    (list r-knitr))
    (home-page "https://bioconductor.org/packages/slingshot")
    (synopsis "Tools for ordering single-cell sequencing")
    (description "This package provides functions for inferring continuous,
@@ -4298,34 +4531,67 @@ events and allows for the incorporation of prior knowledge through supervised
 graph construction.")
    (license license:artistic2.0)))
 
+(define-public r-stringdb
+  (package
+    (name "r-stringdb")
+    (version "2.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "STRINGdb" version))
+       (sha256
+        (base32 "1hvb73anhbf1g82nn5m11s783z6ihvlavf7p30w29qggxggnl6lm"))))
+    (properties `((upstream-name . "STRINGdb")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-gplots
+           r-hash
+           r-igraph
+           r-plotrix
+           r-plyr
+           r-png
+           r-rcolorbrewer
+           r-rcurl
+           r-sqldf))
+    (home-page "https://git.bioconductor.org/packages/STRINGdb")
+    (synopsis "Search tool for the retrieval of interacting proteins database")
+    (description
+     "The @code{STRINGdb} package provides an R interface to the STRING
+protein-protein interactions database.  @url{https://www.string-db.org,
+STRING} is a database of known and predicted protein-protein interactions.
+The interactions include direct (physical) and indirect (functional)
+associations.  Each interaction is associated with a combined confidence score
+that integrates the various evidences.")
+    (license license:gpl2)))
+
 (define-public r-structuralvariantannotation
   (package
     (name "r-structuralvariantannotation")
-    (version "1.8.2")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "StructuralVariantAnnotation" version))
        (sha256
-        (base32 "04ac4mjh3pgdlws0aiacqg0vd7bhg890w44r7b90p947c3rk1mfw"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-assertthat" ,r-assertthat)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-dplyr" ,r-dplyr)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-rlang" ,r-rlang)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-stringr" ,r-stringr)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-variantannotation" ,r-variantannotation)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+        (base32 "1pw7d39944dwk5gw6q7igcn866zpqwz01ljaha2ih5dfvmhxka8n"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-assertthat
+           r-biocgenerics
+           r-biostrings
+           r-dplyr
+           r-genomeinfodb
+           r-genomicfeatures
+           r-genomicranges
+           r-iranges
+           r-rlang
+           r-rtracklayer
+           r-s4vectors
+           r-stringr
+           r-summarizedexperiment
+           r-variantannotation))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/StructuralVariantAnnotation/")
     (synopsis "R package designed to simplify structural variant analysis")
     (description
@@ -4338,28 +4604,28 @@ involving two separate genomic loci encoded as GRanges objects.")
 (define-public r-summarizedexperiment
   (package
     (name "r-summarizedexperiment")
-    (version "1.22.0")
+    (version "1.24.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "SummarizedExperiment" version))
               (sha256
                (base32
-                "16np5ik6jgbi68mhlib6yskywwbaa50mlr7m3sh1hqk889whfn1g"))))
+                "0qpnx2aii9vs7fcp0ax5j77ysbhi4qhjhm35vnygs3isbrjn925a"))))
     (properties
      `((upstream-name . "SummarizedExperiment")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-matrix" ,r-matrix)
-       ("r-matrixgenerics" ,r-matrixgenerics)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-biobase
+           r-biocgenerics
+           r-delayedarray
+           r-genomeinfodb
+           r-genomicranges
+           r-iranges
+           r-matrix
+           r-matrixgenerics
+           r-s4vectors))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/SummarizedExperiment")
     (synopsis "Container for representing genomic ranges by sample")
     (description
@@ -4372,22 +4638,22 @@ samples.")
 (define-public r-sva
   (package
     (name "r-sva")
-    (version "3.40.0")
+    (version "3.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "sva" version))
        (sha256
         (base32
-         "12jkcybdfspabh7x124d44l9fj1hwwg3gvcqxvz5wpkiflc2vkji"))))
+         "0clzid9di2qfgc5bvnqx312k3inj1lc599ckqkllvr894wxb7mdj"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-edger" ,r-edger)
-       ("r-genefilter" ,r-genefilter)
-       ("r-mgcv" ,r-mgcv)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-limma" ,r-limma)))
+     (list r-edger
+           r-genefilter
+           r-mgcv
+           r-biocparallel
+           r-matrixstats
+           r-limma))
     (home-page "https://bioconductor.org/packages/sva")
     (synopsis "Surrogate variable analysis")
     (description
@@ -4403,46 +4669,32 @@ unmodeled, or latent sources of noise.")
 (define-public r-systempiper
   (package
     (name "r-systempiper")
-    (version "1.26.3")
+    (version "2.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "systemPipeR" version))
        (sha256
         (base32
-         "01l35l5zj87qkarrbal9la6kshk3j7k8hy3iimv3gdnnz4axmvs7"))))
+         "1r0qc1pyff9nvjix21xjd6fmka06ywr4ipr8szm52hq41hwaiqgq"))))
     (properties `((upstream-name . "systemPipeR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotate" ,r-annotate)
-       ("r-assertthat" ,r-assertthat)
-       ("r-batchtools" ,r-batchtools)
-       ("r-biostrings" ,r-biostrings)
-       ("r-crayon" ,r-crayon)
-       ("r-deseq2" ,r-deseq2)
-       ("r-dot" ,r-dot)
-       ("r-edger" ,r-edger)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-go-db" ,r-go-db)
-       ("r-gostats" ,r-gostats)
-       ("r-iranges" ,r-iranges)
-       ("r-limma" ,r-limma)
-       ("r-magrittr" ,r-magrittr)
-       ("r-pheatmap" ,r-pheatmap)
-       ("r-rjson" ,r-rjson)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rsvg" ,r-rsvg)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-shortread" ,r-shortread)
-       ("r-stringr" ,r-stringr)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-testthat" ,r-testthat)
-       ("r-yaml" ,r-yaml)
-       ("r-variantannotation" ,r-variantannotation)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biocgenerics
+           r-biostrings
+           r-crayon
+           r-genomicranges
+           r-ggplot2
+           r-htmlwidgets
+           r-magrittr
+           r-rsamtools
+           r-s4vectors
+           r-shortread
+           r-stringr
+           r-summarizedexperiment
+           r-yaml))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/tgirke/systemPipeR")
     (synopsis "Next generation sequencing workflow and reporting environment")
     (description
@@ -4460,26 +4712,26 @@ annotation infrastructure.")
 (define-public r-topgo
   (package
     (name "r-topgo")
-    (version "2.44.0")
+    (version "2.46.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "topGO" version))
               (sha256
                (base32
-                "1ggi7yrhkyi85p3sfj3yd95n9mzq1xpff28ixa4dl9yzasks1v5a"))))
+                "01vykf8bzwm2k7cfj09r6il6qaycjy10wpaxbn13f21p66r5nlm2"))))
     (properties
      `((upstream-name . "topGO")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-dbi" ,r-dbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-go-db" ,r-go-db)
-       ("r-graph" ,r-graph)
-       ("r-lattice" ,r-lattice)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-sparsem" ,r-sparsem)))
+     (list r-annotationdbi
+           r-dbi
+           r-biobase
+           r-biocgenerics
+           r-go-db
+           r-graph
+           r-lattice
+           r-matrixstats
+           r-sparsem))
     (home-page "https://bioconductor.org/packages/topGO")
     (synopsis "Enrichment analysis for gene ontology")
     (description
@@ -4493,16 +4745,16 @@ dependencies between GO terms can be implemented and applied.")
 (define-public r-tximport
   (package
     (name "r-tximport")
-    (version "1.20.0")
+    (version "1.22.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "tximport" version))
               (sha256
                (base32
-                "0ip2yr0zspf2aagskxl4dwncr48dw5qb90an3sswnnh2dqdb82if"))))
+                "0w6pr7s9j8l4fpn3przbfrsyxvzxc3ficgsychvhq3bami9np8g4"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/tximport")
     (synopsis "Import and summarize transcript-level estimates for gene-level analysis")
     (description
@@ -4517,34 +4769,34 @@ of gene-level counts.")
 (define-public r-variantannotation
   (package
     (name "r-variantannotation")
-    (version "1.38.0")
+    (version "1.40.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "VariantAnnotation" version))
               (sha256
                (base32
-                "0c9r00j8a3bs6n0dv4wi17jc1ljzvr3r2bi4h9axhcsf2ip906rh"))))
+                "1r9kayp0hxcwls08lv2fh0cmf9ks0lqx3k31c1zn4asw4dyqpgva"))))
     (properties
      `((upstream-name . "VariantAnnotation")))
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-dbi" ,r-dbi)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-matrixgenerics" ,r-matrixgenerics)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-rhtslib" ,r-rhtslib)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-xvector" ,r-xvector)
-       ("r-zlibbioc" ,r-zlibbioc)))
+     (list r-annotationdbi
+           r-biobase
+           r-biocgenerics
+           r-biostrings
+           r-bsgenome
+           r-dbi
+           r-genomeinfodb
+           r-genomicfeatures
+           r-genomicranges
+           r-iranges
+           r-matrixgenerics
+           r-summarizedexperiment
+           r-rhtslib
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors
+           r-xvector
+           r-zlibbioc))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/VariantAnnotation")
     (synopsis "Package for annotation of genetic variants")
@@ -4555,23 +4807,19 @@ coding changes and predict coding outcomes.")
 (define-public r-vsn
   (package
     (name "r-vsn")
-    (version "3.60.0")
+    (version "3.62.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "vsn" version))
        (sha256
         (base32
-         "0nppph3kv8z83368snb8s3n4vcqj829yyi1kh4q09qvq18rhvssv"))))
+         "03p2wdjbjnrn1ddyz0fbn04mdxpsmv83qhh3apj6azshl0bs1j2x"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-affy" ,r-affy)
-       ("r-biobase" ,r-biobase)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-lattice" ,r-lattice)
-       ("r-limma" ,r-limma)))
+     (list r-affy r-biobase r-ggplot2 r-lattice r-limma))
     (native-inputs
-     `(("r-knitr" ,r-knitr))) ; for vignettes
+     (list r-knitr)) ; for vignettes
     (home-page "https://bioconductor.org/packages/release/bioc/html/vsn.html")
     (synopsis "Variance stabilization and calibration for microarray data")
     (description
@@ -4588,16 +4836,79 @@ their variance is independent of the mean, and they are usually more sensitive
 and specific in detecting differential transcription.")
     (license license:artistic2.0)))
 
+(define-public r-xina
+  (package
+    (name "r-xina")
+    (version "1.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "XINA" version))
+       (sha256
+        (base32 "14j1rn3p7i0rlqkbbg0a6pyhb97ifzvsbw6vfxw9pna7zv7rbhsp"))))
+    (properties `((upstream-name . "XINA")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-alluvial
+           r-ggplot2
+           r-gridextra
+           r-igraph
+           r-mclust
+           r-plyr
+           r-stringdb))
+    (native-inputs (list r-knitr))
+    (home-page "https://git.bioconductor.org/packages/XINA")
+    (synopsis "Identifying proteins that exhibit similar patterns")
+    (description
+     "The aim of @code{XINA} is to determine which proteins exhibit similar
+patterns within and across experimental conditions, since proteins with
+co-abundance patterns may have common molecular functions.  @code{XINA} imports
+multiple datasets, tags dataset in silico, and combines the data for subsequent
+subgrouping into multiple clusters.  The result is a single output depicting
+the variation across all conditions.  @code{XINA} not only extracts
+coabundance profiles within and across experiments, but also incorporates
+protein-protein interaction databases and integrative resources such as
+@dfn{Kyoto encyclopedia of genes and genomes} (KEGG) to infer interactors and
+molecular functions, respectively, and produces intuitive graphical outputs.")
+    (license license:gpl3)))
+
+(define-public r-xmapbridge
+  (package
+    (name "r-xmapbridge")
+    (version "1.52.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "xmapbridge" version))
+       (sha256
+        (base32 "1zsqhisbq6f9qgw9f0a6ixxh635h3qm17117yfns5nnfw73ndlgi"))))
+    (properties `((upstream-name . "xmapbridge")))
+    (build-system r-build-system)
+    (home-page "https://git.bioconductor.org/packages/xmapbridge")
+    (synopsis "Display numeric data in the web based genome browser X:MAP")
+    (description
+     "The package @code{xmapbridge} can plot graphs in the X:Map genome
+browser.  X:Map uses the Google Maps API to provide a scrollable view of the
+genome.  It supports a number of species, and can be accessed at
+@url{http://xmap.picr.man.ac.uk}.  This package exports plotting files in a
+suitable format.  Graph plotting in R is done using calls to the functions
+@code{xmap.plot} and @code{xmap.points}, which have parameters that aim to be
+similar to those used by the standard plot methods in R.  These result in data
+being written to a set of files (in a specific directory structure) that
+contain the data to be displayed, as well as some additional meta-data
+describing each of the graphs.")
+    (license license:lgpl3)))
+
 (define-public r-xvector
   (package
     (name "r-xvector")
-    (version "0.32.0")
+    (version "0.34.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "XVector" version))
               (sha256
                (base32
-                "1cw34gd9iaspl0v737xl7rngq63zrj03a5ngai15ggrnv1sq2aqr"))))
+                "07r4qgmnifw9jk2srjg0cvl310j0f9y35jrg0zqhlvhmyhg6n2c0"))))
     (properties
      `((upstream-name . "XVector")))
     (build-system r-build-system)
@@ -4612,11 +4923,9 @@ and specific in detecting differential transcription.")
                (("import\\(zlibbioc\\)") ""))
              #t)))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-iranges" ,r-iranges)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-biocgenerics r-iranges r-s4vectors))
     (home-page "https://bioconductor.org/packages/XVector")
     (synopsis "Representation and manpulation of external sequences")
     (description
@@ -4627,13 +4936,13 @@ and specific in detecting differential transcription.")
 (define-public r-zlibbioc
   (package
     (name "r-zlibbioc")
-    (version "1.38.0")
+    (version "1.40.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "zlibbioc" version))
               (sha256
                (base32
-                "1dv5bf12kzk1yzyfs3g5syim16sbi44kalvzj2i2xcnxnl6x60ip"))))
+                "0a0dl7z58zxdj6938zbxixphgljj1giylk1nd05bb7qsccmp0xhj"))))
     (properties
      `((upstream-name . "zlibbioc")))
     (build-system r-build-system)
@@ -4643,25 +4952,57 @@ and specific in detecting differential transcription.")
 libraries for systems that do not have these available via other means.")
     (license license:artistic2.0)))
 
+(define-public r-zellkonverter
+  (package
+    (name "r-zellkonverter")
+    (version "1.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "zellkonverter" version))
+       (sha256
+        (base32 "1ihp2f23lpdfgf3qliy22vrq8czm353hyhqf74r5r712190k6pgg"))))
+    (properties `((upstream-name . "zellkonverter")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-basilisk
+           r-cli
+           r-delayedarray
+           r-matrix
+           r-reticulate
+           r-s4vectors
+           r-singlecellexperiment
+           r-summarizedexperiment))
+    (native-inputs (list r-knitr))
+    (home-page "https://github.com/theislab/zellkonverter")
+    (synopsis "Conversion between AnnData and single-cell experiments objects")
+    (description
+     "This package provides methods to convert between Python AnnData objects
+and SingleCellExperiment objects.  These are primarily intended for use by
+downstream Bioconductor packages that wrap Python methods for single-cell data
+analysis.  It also includes functions to read and write H5AD files used for
+saving AnnData objects to disk.")
+    (license license:expat)))
+
 (define-public r-geneplotter
   (package
     (name "r-geneplotter")
-    (version "1.70.0")
+    (version "1.72.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "geneplotter" version))
        (sha256
         (base32
-         "1d085lfa3yif5wkys1fb0zzgg0cqwd1y18vasgqqdr6rva075d4z"))))
+         "1b7ngp9l00vrymx3d3nsda546s7p4ifr90idn3x2v4ilf38rfhp8"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotate" ,r-annotate)
-       ("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-lattice" ,r-lattice)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)))
+     (list r-annotate
+           r-annotationdbi
+           r-biobase
+           r-biocgenerics
+           r-lattice
+           r-rcolorbrewer))
     (home-page "https://bioconductor.org/packages/geneplotter")
     (synopsis "Graphics functions for genomic data")
     (description
@@ -4671,30 +5012,30 @@ libraries for systems that do not have these available via other means.")
 (define-public r-oligoclasses
   (package
     (name "r-oligoclasses")
-    (version "1.54.0")
+    (version "1.56.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "oligoClasses" version))
        (sha256
         (base32
-         "1nsfyfpj264h6y322pzz0i001b0m862j3skbq5rjwlrj1p8j2gi7"))))
+         "1ia2f19swiwb0552nfwkai4gl0av07cj75b6jwiviqa1bli09264"))))
     (properties `((upstream-name . "oligoClasses")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-affyio" ,r-affyio)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocmanager" ,r-biocmanager)
-       ("r-biostrings" ,r-biostrings)
-       ("r-dbi" ,r-dbi)
-       ("r-ff" ,r-ff)
-       ("r-foreach" ,r-foreach)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+     (list r-affyio
+           r-biobase
+           r-biocgenerics
+           r-biocmanager
+           r-biostrings
+           r-dbi
+           r-ff
+           r-foreach
+           r-genomicranges
+           r-iranges
+           r-rsqlite
+           r-s4vectors
+           r-summarizedexperiment))
     (home-page "https://bioconductor.org/packages/oligoClasses/")
     (synopsis "Classes for high-throughput arrays")
     (description
@@ -4706,31 +5047,31 @@ packages.")
 (define-public r-oligo
   (package
     (name "r-oligo")
-    (version "1.56.0")
+    (version "1.58.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "oligo" version))
        (sha256
         (base32
-         "0fyq77im6s79havjwbchhqhnllxs134jsi98g6msxz66h16lj3al"))))
+         "1cmnnq0d5xsjsx8c8n8wcl6l9d31sbglb8yrsibykcvnhw15fsf6"))))
     (properties `((upstream-name . "oligo")))
     (build-system r-build-system)
-    (inputs `(("zlib" ,zlib)))
-    (propagated-inputs
-     `(("r-affxparser" ,r-affxparser)
-       ("r-affyio" ,r-affyio)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-dbi" ,r-dbi)
-       ("r-ff" ,r-ff)
-       ("r-oligoclasses" ,r-oligoclasses)
-       ("r-preprocesscore" ,r-preprocesscore)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-zlibbioc" ,r-zlibbioc)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+    (inputs (list zlib))
+    (propagated-inputs
+     (list r-affxparser
+           r-affyio
+           r-biobase
+           r-biocgenerics
+           r-biostrings
+           r-dbi
+           r-ff
+           r-oligoclasses
+           r-preprocesscore
+           r-rsqlite
+           r-zlibbioc))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/oligo/")
     (synopsis "Preprocessing tools for oligonucleotide arrays")
     (description
@@ -4742,20 +5083,19 @@ Affymetrix (CEL files) and NimbleGen arrays (XYS files).")
 (define-public r-qvalue
   (package
     (name "r-qvalue")
-    (version "2.24.0")
+    (version "2.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "qvalue" version))
        (sha256
         (base32
-         "0xssanffh1hr7f48mnazcpwi25rdp7mxlyb9nbf4q2mp7m40jnpm"))))
+         "1mn2qmqn89lfsx7rg54d1lwz45bfx0b91q6ahf43a1yzrrhwn138"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-reshape2" ,r-reshape2)))
+     (list r-ggplot2 r-reshape2))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/StoreyLab/qvalue")
     (synopsis "Q-value estimation for false discovery rate control")
     (description
@@ -4797,23 +5137,23 @@ integration with @code{Rcpp}.")
 (define-public r-apeglm
   (package
    (name "r-apeglm")
-   (version "1.14.0")
+   (version "1.16.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "apeglm" version))
             (sha256
              (base32
-              "1xld6ar440achik4dbd7vhiw6jfj0sb96jm52n7hav5bv4gag3mh"))))
+              "11w4vyc1sllmm5lh42krhidazid78n4s3lhikpy9kk2l57jmifbr"))))
    (properties `((upstream-name . "apeglm")))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-emdbook" ,r-emdbook)
-      ("r-genomicranges" ,r-genomicranges)
-      ("r-rcpp" ,r-rcpp)
-      ("r-rcppeigen" ,r-rcppeigen)
-      ("r-rcppnumerical" ,r-rcppnumerical)
-      ("r-summarizedexperiment" ,r-summarizedexperiment)))
-   (native-inputs `(("r-knitr" ,r-knitr)))
+    (list r-emdbook
+          r-genomicranges
+          r-rcpp
+          r-rcppeigen
+          r-rcppnumerical
+          r-summarizedexperiment))
+   (native-inputs (list r-knitr))
    (home-page "https://bioconductor.org/packages/apeglm")
    (synopsis "Approximate posterior estimation for GLM coefficients")
    (description "This package provides Bayesian shrinkage estimators for
@@ -4824,24 +5164,24 @@ posterior for individual coefficients.")
 (define-public r-greylistchip
   (package
    (name "r-greylistchip")
-   (version "1.24.0")
+   (version "1.26.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "GreyListChIP" version))
             (sha256
              (base32
-              "1g9ja8p90czx83ar0l9ran7m6aggvszdbqm714fq7z4rxq9b4hs3"))))
+              "1h7h27q6l9d8j0shklyrh135zrwx56v4zzmm21cj1b7dvmwvpbcv"))))
    (properties `((upstream-name . "GreyListChIP")))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-bsgenome" ,r-bsgenome)
-      ("r-genomeinfodb" ,r-genomeinfodb)
-      ("r-genomicalignments" ,r-genomicalignments)
-      ("r-genomicranges" ,r-genomicranges)
-      ("r-mass" ,r-mass)
-      ("r-rsamtools" ,r-rsamtools)
-      ("r-rtracklayer" ,r-rtracklayer)
-      ("r-summarizedexperiment" ,r-summarizedexperiment)))
+    (list r-bsgenome
+          r-genomeinfodb
+          r-genomicalignments
+          r-genomicranges
+          r-mass
+          r-rsamtools
+          r-rtracklayer
+          r-summarizedexperiment))
    (home-page "https://bioconductor.org/packages/GreyListChIP")
    (synopsis "Greylist artefact regions based on ChIP inputs")
    (description "This package identifies regions of ChIP experiments with high
@@ -4851,40 +5191,40 @@ signal in the input, that lead to spurious peaks during peak calling.")
 (define-public r-diffbind
   (package
     (name "r-diffbind")
-    (version "3.2.5")
+    (version "3.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DiffBind" version))
        (sha256
         (base32
-         "1rp4sgx58g1lq5brpx07wffllhvsqq1097vrjiaksbih08338nih"))))
+         "15p4jd9k520va6kzizkgsl4a18kh5r8i50qfdkv7xazsfhvxjm3i"))))
     (properties `((upstream-name . "DiffBind")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-amap" ,r-amap)
-       ("r-apeglm" ,r-apeglm)
-       ("r-ashr" ,r-ashr)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-deseq2" ,r-deseq2)
-       ("r-dplyr" ,r-dplyr)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-gplots" ,r-gplots)
-       ("r-greylistchip" ,r-greylistchip)
-       ("r-iranges" ,r-iranges)
-       ("r-lattice" ,r-lattice)
-       ("r-limma" ,r-limma)
-       ("r-locfit" ,r-locfit)
-       ("r-rcolorbrewer" , r-rcolorbrewer)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rhtslib" ,r-rhtslib)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-systempiper" ,r-systempiper)))
+     (list r-amap
+           r-apeglm
+           r-ashr
+           r-biocparallel
+           r-deseq2
+           r-dplyr
+           r-genomicalignments
+           r-genomicranges
+           r-ggplot2
+           r-ggrepel
+           r-gplots
+           r-greylistchip
+           r-iranges
+           r-lattice
+           r-limma
+           r-locfit
+           r-rcolorbrewer
+           r-rcpp
+           r-rhtslib
+           r-rsamtools
+           r-s4vectors
+           r-summarizedexperiment
+           r-systempiper))
     (home-page "https://bioconductor.org/packages/DiffBind")
     (synopsis "Differential binding analysis of ChIP-Seq peak data")
     (description
@@ -4907,13 +5247,13 @@ occupancy (overlap) analysis and plotting functions.")
     (properties `((upstream-name . "RIPSeeker")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-s4vectors" ,r-s4vectors)
-       ("r-iranges" ,r-iranges)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-rtracklayer" ,r-rtracklayer)))
+     (list r-s4vectors
+           r-iranges
+           r-genomicranges
+           r-summarizedexperiment
+           r-rsamtools
+           r-genomicalignments
+           r-rtracklayer))
     (home-page "https://bioconductor.org/packages/RIPSeeker")
     (synopsis
      "Identifying protein-associated transcripts from RIP-seq experiments")
@@ -4929,29 +5269,29 @@ processing to visualization and annotation.")
 (define-public r-mbkmeans
   (package
     (name "r-mbkmeans")
-    (version "1.8.0")
+    (version "1.10.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "mbkmeans" version))
               (sha256
                (base32
-                "1k7ngpx4s50jplrsv19zzjr7izpdl9wwppb218ih5cp0ki1gcc2n"))))
-    (build-system r-build-system)
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
-    (propagated-inputs
-     `(("r-beachmat" ,r-beachmat)
-       ("r-benchmarkme" ,r-benchmarkme)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-clusterr" ,r-clusterr)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rhdf5lib" ,r-rhdf5lib)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-singlecellexperiment" ,r-singlecellexperiment)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+                "03hpj218s8fynmk1s50s0rinhsljikxdrff06yc8ysbyc6hyfb4k"))))
+    (build-system r-build-system)
+    (native-inputs
+     (list r-knitr))
+    (propagated-inputs
+     (list r-beachmat
+           r-benchmarkme
+           r-biocparallel
+           r-clusterr
+           r-delayedarray
+           r-matrix
+           r-rcpp
+           r-rcpparmadillo
+           r-rhdf5lib
+           r-s4vectors
+           r-singlecellexperiment
+           r-summarizedexperiment))
     (home-page "https://bioconductor.org/packages/mbkmeans")
     (synopsis "Mini-batch k-means clustering for single-cell RNA-seq")
     (description "This package implements the mini-batch k-means algorithm for
@@ -4961,20 +5301,17 @@ large datasets, including support for on-disk data representation.")
 (define-public r-multtest
   (package
     (name "r-multtest")
-    (version "2.48.0")
+    (version "2.50.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "multtest" version))
        (sha256
         (base32
-         "1wi15v4llgv11hpb2j9h4a35nrnawnmvbz5d5dvgy8lhqrlq8w9a"))))
+         "03z71r7g318nwwgiz0k8qwbhghw1hhdhh1an4qnb0nc62c5x9kns"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-survival" ,r-survival)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biobase" ,r-biobase)
-       ("r-mass" ,r-mass)))
+     (list r-survival r-biocgenerics r-biobase r-mass))
     (home-page "https://bioconductor.org/packages/multtest")
     (synopsis "Resampling-based multiple hypothesis testing")
     (description
@@ -4999,16 +5336,16 @@ expressed genes in DNA microarray experiments.")
 (define-public r-graph
   (package
     (name "r-graph")
-    (version "1.70.0")
+    (version "1.72.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "graph" version))
               (sha256
                (base32
-                "1i7s198d5kw4gk6nqqsd3vqaknj4493p822f2za8q95gv6x02rxa"))))
+                "0x31lz3qimxmng6w99xnqazaj943d94b04nbziad4jfv7c1bc2h0"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)))
+     (list r-biocgenerics))
     (home-page "https://bioconductor.org/packages/graph")
     (synopsis "Handle graph data structures in R")
     (description
@@ -5030,8 +5367,7 @@ expressed genes in DNA microarray experiments.")
     (properties `((upstream-name . "ggm")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-graph" ,r-graph)
-       ("r-igraph" ,r-igraph)))
+     (list r-graph r-igraph))
     (home-page "https://cran.r-project.org/package=ggm")
     (synopsis "Functions for graphical Markov models")
     (description
@@ -5054,9 +5390,7 @@ fitting of some classes of graphical Markov models.")
     (properties `((upstream-name . "PerfMeas")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-graph" ,r-graph)
-       ("r-limma" ,r-limma)
-       ("r-rbgl" ,r-rbgl)))
+     (list r-graph r-limma r-rbgl))
     (home-page "https://cran.r-project.org/web/packages/PerfMeas/")
     (synopsis "Performance measures for ranking and classification tasks")
     (description
@@ -5080,9 +5414,7 @@ a given recall, F-score for single and multiple classes are available.")
     (properties `((upstream-name . "CodeDepends")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-codetools" ,r-codetools)
-       ("r-graph" ,r-graph)
-       ("r-xml" ,r-xml)))
+     (list r-codetools r-graph r-xml))
     (home-page "https://cran.r-project.org/web/packages/CodeDepends")
     (synopsis "Analysis of R code for reproducible research and code comprehension")
     (description
@@ -5097,44 +5429,44 @@ determining dependencies between variables, code improvement suggestions.")
 (define-public r-chippeakanno
   (package
     (name "r-chippeakanno")
-    (version "3.26.3")
+    (version "3.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ChIPpeakAnno" version))
        (sha256
         (base32
-         "07dvg3r4kghkqhh1a8rw149hgfswmzdh9cvnam8c82006cpmi74s"))))
+         "05fbq8zvww1nlyykrri0hf4248i1i7w5cr453giagmjq7lgg4v3b"))))
     (properties `((upstream-name . "ChIPpeakAnno")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biomart" ,r-biomart)
-       ("r-biostrings" ,r-biostrings)
-       ("r-dbi" ,r-dbi)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ensembldb" ,r-ensembldb)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-graph" ,r-graph)
-       ("r-interactionset" ,r-interactionset)
-       ("r-iranges" ,r-iranges)
-       ("r-keggrest" ,r-keggrest)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-multtest" ,r-multtest)
-       ("r-rbgl" ,r-rbgl)
-       ("r-regioner" ,r-regioner)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-venndiagram" ,r-venndiagram)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationdbi
+           r-biocgenerics
+           r-biomart
+           r-biostrings
+           r-dbi
+           r-dplyr
+           r-ensembldb
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicfeatures
+           r-genomicranges
+           r-ggplot2
+           r-graph
+           r-interactionset
+           r-iranges
+           r-keggrest
+           r-matrixstats
+           r-multtest
+           r-rbgl
+           r-regioner
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors
+           r-summarizedexperiment
+           r-venndiagram))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/ChIPpeakAnno")
     (synopsis "Peaks annotation from ChIP-seq and ChIP-chip experiments")
     (description
@@ -5151,18 +5483,18 @@ enrichedGO (addGeneIDs).")
 (define-public r-matrixgenerics
   (package
    (name "r-matrixgenerics")
-   (version "1.4.2")
+   (version "1.6.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "MatrixGenerics" version))
             (sha256
              (base32
-              "0kjsc5ghcplay4a74ffpwsf3kbp51x6rl5265gvlfchdwrawkzd2"))))
+              "1s75p8rrmj24r0vcbaiyw8xg8y84j388mv6iawai7pypfcl8s1z3"))))
    (properties
     `((upstream-name . "MatrixGenerics")))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-matrixstats" ,r-matrixstats)))
+    (list r-matrixstats))
    (home-page "https://bioconductor.org/packages/MatrixGenerics")
    (synopsis "S4 generic summary statistic functions for matrix-like objects")
    (description
@@ -5178,15 +5510,15 @@ incompatibilities.")
 (define-public r-marray
   (package
     (name "r-marray")
-    (version "1.70.0")
+    (version "1.72.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "marray" version))
               (sha256
-               (base32 "0wpmrhqpyv27h1hn31hzz21r74r7yqx79ljv8i8gn6ix8lf5ca56"))))
+               (base32 "1la805y8j522vpiazm1z6wpq4ibia9bib5fpiia5mxmpzmqg6gzz"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-limma" ,r-limma)))
+     (list r-limma))
     (home-page "https://bioconductor.org/packages/marray")
     (synopsis "Exploratory analysis for two-color spotted microarray data")
     (description "This package contains class definitions for two-color spotted
@@ -5197,17 +5529,16 @@ normalization and quality checking.")
 (define-public r-cghbase
   (package
    (name "r-cghbase")
-   (version "1.52.0")
+   (version "1.54.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "CGHbase" version))
             (sha256
-             (base32 "1p87k4vw981k97d9bckmprrfg55jwd91658rgxzjj8hnschf28a4"))))
+             (base32 "1kfxw126bddfy67cmf8dca9qq4bg7fkxjf8iaikplhvs5hl7bp4d"))))
    (properties `((upstream-name . "CGHbase")))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-biobase" ,r-biobase)
-      ("r-marray" ,r-marray)))
+    (list r-biobase r-marray))
    (home-page "https://bioconductor.org/packages/CGHbase")
    (synopsis "Base functions and classes for arrayCGH data analysis")
    (description "This package contains functions and classes that are needed by
@@ -5217,20 +5548,16 @@ the @code{arrayCGH} packages.")
 (define-public r-cghcall
   (package
    (name "r-cghcall")
-   (version "2.54.0")
+   (version "2.56.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "CGHcall" version))
             (sha256
-             (base32 "1zik04y2q0anzy85l0b4ryzkxpfx2fnmpwp5s7akyk1jfl2r8gw7"))))
+             (base32 "1r4y8zakgmdbnpwgp14kwh4iwqgqcmjq2yg4nc7j37p09bw1c8zr"))))
    (properties `((upstream-name . "CGHcall")))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-biobase" ,r-biobase)
-      ("r-cghbase" ,r-cghbase)
-      ("r-impute" ,r-impute)
-      ("r-dnacopy" ,r-dnacopy)
-      ("r-snowfall" ,r-snowfall)))
+    (list r-biobase r-cghbase r-impute r-dnacopy r-snowfall))
    (home-page "https://bioconductor.org/packages/CGHcall")
    (synopsis "Base functions and classes for arrayCGH data analysis")
    (description "This package contains functions and classes that are needed by
@@ -5240,26 +5567,25 @@ the @code{arrayCGH} packages.")
 (define-public r-qdnaseq
   (package
     (name "r-qdnaseq")
-    (version "1.28.0")
+    (version "1.30.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "QDNAseq" version))
               (sha256
-               (base32 "1p4544xlarkbgs9kybrrawq3v7qr6ix62nrc6l7dcksh2ka69yzf"))))
+               (base32 "1sza9br8agpdz1k9fn5wisir44sj8v0rk4wbx35d2c2kp9q70pqj"))))
     (properties `((upstream-name . "QDNAseq")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-cghbase" ,r-cghbase)
-       ("r-cghcall" ,r-cghcall)
-       ("r-dnacopy" ,r-dnacopy)
-       ("r-future" ,r-future)
-       ("r-future-apply" ,r-future-apply)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-r-utils" ,r-r-utils)
-       ("r-rsamtools" ,r-rsamtools)))
+     (list r-biobase
+           r-cghbase
+           r-cghcall
+           r-dnacopy
+           r-future-apply
+           r-genomicranges
+           r-iranges
+           r-matrixstats
+           r-r-utils
+           r-rsamtools))
     (home-page "https://bioconductor.org/packages/QDNAseq")
     (synopsis "Quantitative DNA sequencing for chromosomal aberrations")
     (description "The genome is divided into non-overlapping fixed-sized bins,
@@ -5273,20 +5599,18 @@ respectively.")
 (define-public r-bayseq
   (package
     (name "r-bayseq")
-    (version "2.26.0")
+    (version "2.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "baySeq" version))
        (sha256
         (base32
-         "0hyc0sl2nf18bz0jxbzim0v41zwh2rnnr7l3p6zkk9wnw5gn7bbc"))))
+         "1zgxwb287ccz4wqsjxmffknnzziv12l4yrw7df912dxz6yccvd8r"))))
     (properties `((upstream-name . "baySeq")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-edger" ,r-edger)
-       ("r-genomicranges" ,r-genomicranges)))
+     (list r-abind r-edger r-genomicranges))
     (home-page "https://bioconductor.org/packages/baySeq/")
     (synopsis "Bayesian analysis of differential expression patterns in count data")
     (description
@@ -5299,27 +5623,27 @@ more complex hypotheses) via empirical Bayesian methods.")
 (define-public r-chipcomp
   (package
     (name "r-chipcomp")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ChIPComp" version))
        (sha256
         (base32
-         "1kfxjh1mynrgqsy2q6byf03cbymqc8w7l7672iyd0wj5qzlif4h5"))))
+         "1wdy92y5l3wa3zgg59w69rd7gdwf4z1waa4i2cccniccz463p1xq"))))
     (properties `((upstream-name . "ChIPComp")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-bsgenome-hsapiens-ucsc-hg19" ,r-bsgenome-hsapiens-ucsc-hg19)
-       ("r-bsgenome-mmusculus-ucsc-mm9" ,r-bsgenome-mmusculus-ucsc-mm9)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-limma" ,r-limma)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-biocgenerics
+           r-bsgenome-hsapiens-ucsc-hg19
+           r-bsgenome-mmusculus-ucsc-mm9
+           r-genomeinfodb
+           r-genomicranges
+           r-iranges
+           r-limma
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors))
     (home-page "https://bioconductor.org/packages/ChIPComp")
     (synopsis "Quantitative comparison of multiple ChIP-seq datasets")
     (description
@@ -5333,35 +5657,35 @@ datasets.")
 (define-public r-riboprofiling
   (package
     (name "r-riboprofiling")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RiboProfiling" version))
        (sha256
         (base32
-         "1jmd8yrv7p7hn4gdibg3svmhqxjyrnfp7cgsqg8zv862lgd75zsl"))))
+         "1szlzvm8ggjc40k4z2fxxa2h28g6j9wj2g5aw480v9hgyvvdw5lx"))))
     (properties `((upstream-name . "RiboProfiling")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-data-table" ,r-data-table)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggbio" ,r-ggbio)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-iranges" ,r-iranges)
-       ("r-plyr" ,r-plyr)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-sqldf" ,r-sqldf)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biocgenerics
+           r-biostrings
+           r-data-table
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicfeatures
+           r-genomicranges
+           r-ggbio
+           r-ggplot2
+           r-iranges
+           r-plyr
+           r-reshape2
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors
+           r-sqldf))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/RiboProfiling/")
     (synopsis "Ribosome profiling data analysis")
     (description "Starting with a BAM file, this package provides the
@@ -5374,24 +5698,24 @@ assessment, principal component analysis on codon coverage.")
 (define-public r-riboseqr
   (package
     (name "r-riboseqr")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "riboSeqR" version))
        (sha256
         (base32
-         "1m5w2j35wr0lzwir4s58z757vrcsj5mglsqrkvs241k0hlmn06qa"))))
+         "0nnhjvjl4c9yyfzjf8kcj4yky5cdimicp7lz008sczy19jq4vjhd"))))
     (properties `((upstream-name . "riboSeqR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-bayseq" ,r-bayseq)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-seqlogo" ,r-seqlogo)))
+     (list r-abind
+           r-bayseq
+           r-genomeinfodb
+           r-genomicranges
+           r-iranges
+           r-rsamtools
+           r-seqlogo))
     (home-page "https://bioconductor.org/packages/riboSeqR/")
     (synopsis "Analysis of sequencing data from ribosome profiling experiments")
     (description
@@ -5402,28 +5726,28 @@ parsing of genetic sequencing data from ribosome profiling experiments.")
 (define-public r-interactionset
   (package
     (name "r-interactionset")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "InteractionSet" version))
        (sha256
         (base32
-         "034xidjmn67n1471fnpdmz7gjm6p05cj8sp9nssc3gxdzn54a6xb"))))
+         "19m2mpby73zanai68rlqvzx9zccli4dz4kix93acrw9755xp3bsw"))))
     (properties
      `((upstream-name . "InteractionSet")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+     (list r-biocgenerics
+           r-genomeinfodb
+           r-genomicranges
+           r-iranges
+           r-matrix
+           r-rcpp
+           r-s4vectors
+           r-summarizedexperiment))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/InteractionSet")
     (synopsis "Base classes for storing genomic interaction data")
     (description
@@ -5436,36 +5760,36 @@ experiments.")
 (define-public r-genomicinteractions
   (package
     (name "r-genomicinteractions")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GenomicInteractions" version))
        (sha256
         (base32
-         "0zjl7rp5fk14kqsx0bkbpq6hqahbkiyvwa9aggp4kfb8hnmz9qal"))))
+         "090kxq5jn1jfr9fgbkvbjr5g4bcxzgsaal3gc9yx1n7pgmhccfmb"))))
     (properties
      `((upstream-name . "GenomicInteractions")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-data-table" ,r-data-table)
-       ("r-dplyr" ,r-dplyr)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-gviz" ,r-gviz)
-       ("r-igraph" ,r-igraph)
-       ("r-interactionset" ,r-interactionset)
-       ("r-iranges" ,r-iranges)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-stringr" ,r-stringr)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biobase
+           r-biocgenerics
+           r-data-table
+           r-dplyr
+           r-genomeinfodb
+           r-genomicranges
+           r-ggplot2
+           r-gridextra
+           r-gviz
+           r-igraph
+           r-interactionset
+           r-iranges
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors
+           r-stringr))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/ComputationalRegulatoryGenomicsICL/GenomicInteractions/")
     (synopsis "R package for handling genomic interaction data")
     (description
@@ -5477,16 +5801,16 @@ information and producing various plots and statistics.")
 (define-public r-ctc
   (package
     (name "r-ctc")
-    (version "1.66.0")
+    (version "1.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ctc" version))
        (sha256
         (base32
-         "1v8aysvy6a3r1iafc3xvk885c128kb3pb9zpcdhdjcn0by96k8hh"))))
+         "1yq5igwzcwfhxy49qf3pralpikiqq7sqr1cig8mkpjpaj5bbaayx"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-amap" ,r-amap)))
+    (propagated-inputs (list r-amap))
     (home-page "https://bioconductor.org/packages/ctc/")
     (synopsis "Cluster and tree conversion")
     (description
@@ -5497,22 +5821,22 @@ trees and clusters to other programs.")
 (define-public r-goseq
   (package
     (name "r-goseq")
-    (version "1.44.0")
+    (version "1.46.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "goseq" version))
        (sha256
         (base32
-         "07qrxssx4rb8r958r1smx8xfpzdxpp55hci3201hcmz3mxz77i0s"))))
+         "1psl9mqgx1d21kayaxvrxriw34fq30wnd57q5c1sk3p8iahg73g0"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biasedurn" ,r-biasedurn)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-genelendatabase" ,r-genelendatabase)
-       ("r-go-db" ,r-go-db)
-       ("r-mgcv" ,r-mgcv)))
+     (list r-annotationdbi
+           r-biasedurn
+           r-biocgenerics
+           r-genelendatabase
+           r-go-db
+           r-mgcv))
     (home-page "https://bioconductor.org/packages/goseq/")
     (synopsis "Gene Ontology analyser for RNA-seq and other length biased data")
     (description
@@ -5523,26 +5847,26 @@ defined categories which are over/under represented in RNA-seq data.")
 (define-public r-glimma
   (package
     (name "r-glimma")
-    (version "2.2.0")
+    (version "2.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Glimma" version))
        (sha256
         (base32
-         "0dsk8qmwimzmd1x4k4jwg9q11jm1ahn8cw0gzd6s2gmigfls4hsa"))))
+         "0qkbx9n2vb7kvb5f00csnbffy5bm7hhbdvkx2isgzi0wv0y59kx9"))))
     (properties `((upstream-name . "Glimma")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-deseq2" ,r-deseq2)
-       ("r-edger" ,r-edger)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-limma" ,r-limma)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+     (list r-deseq2
+           r-edger
+           r-htmlwidgets
+           r-jsonlite
+           r-limma
+           r-s4vectors
+           r-summarizedexperiment))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/Shians/Glimma")
     (synopsis "Interactive HTML graphics")
     (description
@@ -5556,19 +5880,18 @@ information.")
 (define-public r-rots
   (package
     (name "r-rots")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ROTS" version))
        (sha256
         (base32
-         "18wyi73l95df182vg3m014sxwdbpggr61vsbazhyw4vyx2fnzmpl"))))
+         "0qhy984y83a3nf4zw54rasw3vn932q4zb3gljifkw701jnrzqmki"))))
     (properties `((upstream-name . "ROTS")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-biobase r-rcpp))
     (home-page "https://bioconductor.org/packages/ROTS/")
     (synopsis "Reproducibility-Optimized Test Statistic")
     (description
@@ -5580,18 +5903,17 @@ in omics data.")
 (define-public r-plgem
   (package
     (name "r-plgem")
-    (version "1.64.0")
+    (version "1.66.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "plgem" version))
        (sha256
         (base32
-         "1rz5jk5bgpk7gjknx79jyslahjg46q2f4bx6dgd0vwmarc29a45z"))))
+         "06w8xlw4j1fc9ipdgw55dvhp07f04icmhr20lqzwwhqd5pskrra3"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-mass" ,r-mass)))
+     (list r-biobase r-mass))
     (home-page "http://www.genopolis.it")
     (synopsis "Detect differential expression in microarray and proteomics datasets")
     (description
@@ -5605,41 +5927,40 @@ genes or proteins in these datasets.")
 (define-public r-inspect
   (package
     (name "r-inspect")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "INSPEcT" version))
        (sha256
         (base32
-         "0jh5db9dv5pb6b50sg22x8q55m3h0h0nkmb9mivvvp22dhyrd82z"))))
+         "072kv5k3giyll1clzrg0anqhyl4qbi7cjnmkqz25zdl5bab9l7jk"))))
     (properties `((upstream-name . "INSPEcT")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-deseq2" ,r-deseq2)
-       ("r-desolve" ,r-desolve)
-       ("r-gdata" ,r-gdata)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-kernsmooth" ,r-kernsmooth)
-       ("r-plgem" ,r-plgem)
-       ("r-proc" ,r-proc)
-       ("r-rootsolve" ,r-rootsolve)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-shiny" ,r-shiny)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-txdb-mmusculus-ucsc-mm9-knowngene"
-        ,r-txdb-mmusculus-ucsc-mm9-knowngene)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biobase
+           r-biocgenerics
+           r-biocparallel
+           r-deseq2
+           r-desolve
+           r-gdata
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicfeatures
+           r-genomicranges
+           r-iranges
+           r-kernsmooth
+           r-plgem
+           r-proc
+           r-rootsolve
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors
+           r-shiny
+           r-summarizedexperiment
+           r-txdb-mmusculus-ucsc-mm9-knowngene))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/INSPEcT")
     (synopsis "Analysis of 4sU-seq and RNA-seq time-course data")
     (description
@@ -5652,22 +5973,20 @@ modeling the rates that determines changes in mature mRNA levels.")
 (define-public r-dnabarcodes
   (package
     (name "r-dnabarcodes")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DNABarcodes" version))
        (sha256
         (base32
-         "1wiqmzjcb7flp7ldcgbx91asxxrmm1rg9pcfljniab9xcsldhksp"))))
+         "07yaz98r18mjny1ilmfnjxcra7xpklnd183pw0kasvsri01ccwxg"))))
     (properties `((upstream-name . "DNABarcodes")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-bh r-matrix r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/DNABarcodes")
     (synopsis "Create and analyze DNA barcodes")
     (description
@@ -5681,23 +6000,20 @@ demultiplexed, i.e. assigned to their original reference barcode.")
 (define-public r-ruvseq
   (package
     (name "r-ruvseq")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RUVSeq" version))
        (sha256
         (base32
-         "1fy0k1p0m209lzjpd5jhfnifa22lrn63qq3a3kn5g0xhbbmijzac"))))
+         "1a19klscykdgsd7izcxyr45ml7g0gpdj65gvbaw124mal2p4zi9q"))))
     (properties `((upstream-name . "RUVSeq")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-edaseq" ,r-edaseq)
-       ("r-edger" ,r-edger)
-       ("r-mass" ,r-mass)))
+     (list r-biobase r-edaseq r-edger r-mass))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/drisso/RUVSeq")
     (synopsis "Remove unwanted variation from RNA-Seq data")
     (description
@@ -5709,24 +6025,20 @@ samples.")
 (define-public r-biocneighbors
   (package
     (name "r-biocneighbors")
-    (version "1.10.0")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocNeighbors" version))
        (sha256
         (base32
-         "0cjidi18wjip9xzx83890wjk40vvjq06prf1ag4m2kac47w01r7v"))))
+         "04in8l6j7frgm0a5dzphazfhn9cm8w775z5yir712jxa37mh1agr"))))
     (properties `((upstream-name . "BiocNeighbors")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocparallel" ,r-biocparallel)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpphnsw" ,r-rcpphnsw)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-biocparallel r-matrix r-rcpp r-rcpphnsw r-s4vectors))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/BiocNeighbors")
     (synopsis "Nearest Neighbor Detection for Bioconductor packages")
     (description
@@ -5741,21 +6053,19 @@ achieved for all methods using the BiocParallel framework.")
 (define-public r-scaledmatrix
   (package
     (name "r-scaledmatrix")
-    (version "1.0.0")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ScaledMatrix" version))
        (sha256
         (base32
-         "1j96fvw1waqxbv5c8myfmhsidq370z03yz13yqmrs4nn1rpn1a06"))))
+         "0vz8441gl5gycy1ypybwhq97bnyvhhlg6gxpi1dsdy2c9b6d81kc"))))
     (properties `((upstream-name . "ScaledMatrix")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-delayedarray" ,r-delayedarray)
-       ("r-matrix" ,r-matrix)
-       ("r-s4vectors" ,r-s4vectors)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-delayedarray r-matrix r-s4vectors))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/LTLA/ScaledMatrix")
     (synopsis "Create a DelayedMatrix of scaled and centered values")
     (description
@@ -5769,25 +6079,25 @@ multiplication.")
 (define-public r-treeio
   (package
     (name "r-treeio")
-    (version "1.16.2")
+    (version "1.18.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "treeio" version))
        (sha256
         (base32
-         "1y60yvg1rl21cab9xrkns0209pg44mwr90qj099dvk97wsjkx67g"))))
+         "19i8jhvycv57zbxhpn5gx5ymdiws64kc3nidc00xh1j9a8xkj1aq"))))
     (properties `((upstream-name . "treeio")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ape" ,r-ape)
-       ("r-dplyr" ,r-dplyr)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-tidytree" ,r-tidytree)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-ape
+           r-dplyr
+           r-jsonlite
+           r-magrittr
+           r-rlang
+           r-tibble
+           r-tidytree))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/YuLab-SMU/treeio")
     (synopsis "Base classes and functions for Phylogenetic tree input and output")
     (description
@@ -5801,30 +6111,31 @@ platform for merging tree with associated data and converting file formats.")
 (define-public r-ggtree
   (package
     (name "r-ggtree")
-    (version "3.0.3")
+    (version "3.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ggtree" version))
        (sha256
         (base32
-         "02ydi5iyxwrvwfjmv8pbanmzpi1r99mc4gxl17fpq2jf1d1mk6g0"))))
+         "0qk39gdpy4kznjhmvi25y2spcdj2r1i6mv673vx8dzf66zfs20v8"))))
     (properties `((upstream-name . "ggtree")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ape" ,r-ape)
-       ("r-aplot" ,r-aplot)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-magrittr" ,r-magrittr)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-rvcheck" ,r-rvcheck)
-       ("r-scales" ,r-scales)
-       ("r-tidyr" ,r-tidyr)
-       ("r-tidytree" ,r-tidytree)
-       ("r-treeio" ,r-treeio)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-ape
+           r-aplot
+           r-dplyr
+           r-ggfun
+           r-ggplot2
+           r-magrittr
+           r-purrr
+           r-rlang
+           r-scales
+           r-tidyr
+           r-tidytree
+           r-treeio
+           r-yulab-utils))
+    (native-inputs (list r-knitr))
     (home-page "https://yulab-smu.top/treedata-book/")
     (synopsis "R package for visualization of trees and annotation data")
     (description
@@ -5837,20 +6148,20 @@ data.")
 (define-public r-metapod
   (package
     (name "r-metapod")
-    (version "1.0.0")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "metapod" version))
        (sha256
         (base32
-         "1hbcwr6d8gyrf4azh0gi588xkrg6gz7gsb5hbvzqkhplbsp6shlv"))))
+         "1s8dfzpgbpxbn3jvx891gvw3jyn43nlxb73yv1vjn85brk9zbqpk"))))
     (properties `((upstream-name . "metapod")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/metapod")
     (synopsis "Meta-analyses on p-values of differential analyses")
     (description
@@ -5866,29 +6177,29 @@ missing values and weighting where appropriate.")
 (define-public r-biocsingular
   (package
     (name "r-biocsingular")
-    (version "1.8.1")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocSingular" version))
        (sha256
         (base32
-         "16gkwq8fb8jdchpnlzq2hz3i74a6pzbnc1bf93282h11mp7qr58l"))))
+         "0dkh6a23qymjcynppmpp3k1mzpfadv8dqyz410pxkqsxig4ldd4n"))))
     (properties `((upstream-name . "BiocSingular")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-beachmat" ,r-beachmat)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-irlba" ,r-irlba)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rsvd" ,r-rsvd)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-scaledmatrix" ,r-scaledmatrix)))
+     (list r-beachmat
+           r-biocgenerics
+           r-biocparallel
+           r-delayedarray
+           r-irlba
+           r-matrix
+           r-rcpp
+           r-rsvd
+           r-s4vectors
+           r-scaledmatrix))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/LTLA/BiocSingular")
     (synopsis "Singular value decomposition for Bioconductor packages")
     (description
@@ -5911,30 +6222,30 @@ possible, parallelization is achieved using the BiocParallel framework.")
          "1i7f5q02zvpfaxhd76fbw0h1wfgjphyn5hrmrjpvlnv4ardzsir2"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-ggplot-multistats" ,r-ggplot-multistats)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggthemes" ,r-ggthemes)
-       ("r-irlba" ,r-irlba)
-       ("r-knn-covertree" ,r-knn-covertree)
-       ("r-matrix" ,r-matrix)
-       ("r-pcamethods" ,r-pcamethods)
-       ("r-proxy" ,r-proxy)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)
-       ("r-rcpphnsw" ,r-rcpphnsw)
-       ("r-rspectra" ,r-rspectra)
-       ("r-scales" ,r-scales)
-       ("r-scatterplot3d" ,r-scatterplot3d)
-       ("r-singlecellexperiment" ,r-singlecellexperiment)
-       ("r-smoother" ,r-smoother)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-tidyr" ,r-tidyr)
-       ("r-tidyselect" ,r-tidyselect)
-       ("r-vim" ,r-vim)))
-    (native-inputs
-     `(("r-nbconvertr" ,r-nbconvertr))) ; for vignettes
+     (list r-biobase
+           r-biocgenerics
+           r-ggplot-multistats
+           r-ggplot2
+           r-ggthemes
+           r-irlba
+           r-knn-covertree
+           r-matrix
+           r-pcamethods
+           r-proxy
+           r-rcpp
+           r-rcppeigen
+           r-rcpphnsw
+           r-rspectra
+           r-scales
+           r-scatterplot3d
+           r-singlecellexperiment
+           r-smoother
+           r-summarizedexperiment
+           r-tidyr
+           r-tidyselect
+           r-vim))
+    (native-inputs
+     (list r-nbconvertr)) ; for vignettes
     (home-page "https://bioconductor.org/packages/destiny/")
     (synopsis "Create and plot diffusion maps")
     (description "This package provides tools to create and plot diffusion
@@ -5945,22 +6256,18 @@ maps.")
 (define-public r-savr
   (package
     (name "r-savr")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "savR" version))
        (sha256
         (base32
-         "1ynp334hm76zf05j4f6vha6r16s5f2ncxx9yviq4rxidk9r723jq"))))
+         "0dwl94j5dm5ngn8lyyc4bd9ihd1nqincvq26najjn6lw0x55ciky"))))
     (properties `((upstream-name . "savR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-reshape2" ,r-reshape2)
-       ("r-scales" ,r-scales)
-       ("r-xml" ,r-xml)))
+     (list r-ggplot2 r-gridextra r-reshape2 r-scales r-xml))
     (home-page "https://github.com/bcalder/savR")
     (synopsis "Parse and analyze Illumina SAV files")
     (description
@@ -5971,36 +6278,36 @@ Viewer (SAV) files, access data, and generate QC plots.")
 (define-public r-chipexoqual
   (package
     (name "r-chipexoqual")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ChIPexoQual" version))
        (sha256
         (base32
-         "0fbrf5s6pz115djm7xw95k1d0p7svi40aacbb3d52wmx5azwj424"))))
+         "1hh3mhfcngyx7cpzns8mjqviy8vfzrvxpv6nyizflpfmsr39mxfk"))))
     (properties `((upstream-name . "ChIPexoQual")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocparallel" ,r-biocparallel)
-       ("r-biovizbase" ,r-biovizbase)
-       ("r-broom" ,r-broom)
-       ("r-data-table" ,r-data-table)
-       ("r-dplyr" ,r-dplyr)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-hexbin" ,r-hexbin)
-       ("r-iranges" ,r-iranges)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-scales" ,r-scales)
-       ("r-viridis" ,r-viridis)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biocparallel
+           r-biovizbase
+           r-broom
+           r-data-table
+           r-dplyr
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicranges
+           r-ggplot2
+           r-hexbin
+           r-iranges
+           r-rcolorbrewer
+           r-rmarkdown
+           r-rsamtools
+           r-s4vectors
+           r-scales
+           r-viridis))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/keleslab/ChIPexoQual")
     (synopsis "Quality control pipeline for ChIP-exo/nexus data")
     (description
@@ -6011,19 +6318,16 @@ sequencing data.")
 (define-public r-copynumber
   (package
     (name "r-copynumber")
-    (version "1.32.0")
+    (version "1.34.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "copynumber" version))
               (sha256
                (base32
-                "03pvjzjrcsbjfw3855s3whfzin45vaipy7cahnj6fywdysvh8hps"))))
+                "143ifvjkjz0392drm82xmpj1f8b5pc2dyyxyc9dkqmay8lf1n534"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-s4vectors" ,r-s4vectors)
-       ("r-iranges" ,r-iranges)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-biocgenerics" ,r-biocgenerics)))
+     (list r-s4vectors r-iranges r-genomicranges r-biocgenerics))
     (home-page "https://bioconductor.org/packages/copynumber")
     (synopsis "Segmentation of single- and multi-track copy number data")
     (description
@@ -6034,17 +6338,17 @@ penalized least squares regression method.")
 (define-public r-dnacopy
   (package
     (name "r-dnacopy")
-    (version "1.66.0")
+    (version "1.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DNAcopy" version))
        (sha256
         (base32
-         "0mgq814f6c2271d2lxg763bsnv3ma4ari5xa4x1rbksv8yvcjc4d"))))
+         "19ax431i97r49gh1232vf8mgmkvc6k26lnq44j3g10n6q01czswm"))))
     (properties `((upstream-name . "DNAcopy")))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://bioconductor.org/packages/DNAcopy")
     (synopsis "DNA copy number data analysis")
     (description
@@ -6069,9 +6373,7 @@ abnormal copy number.")
     (properties `((upstream-name . "HTSCluster")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-capushe" ,r-capushe)
-       ("r-edger" ,r-edger)
-       ("r-plotrix" ,r-plotrix)))
+     (list r-capushe r-edger r-plotrix))
     (home-page "https://cran.r-project.org/web/packages/HTSCluster")
     (synopsis "Clustering high-throughput transcriptome sequencing (HTS) data")
     (description
@@ -6123,7 +6425,7 @@ and summarizing a set of statistics using a weighted distance approach.")
     (properties `((upstream-name . "NBPSeq")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-qvalue" ,r-qvalue)))
+     (list r-qvalue))
     (home-page "https://cran.r-project.org/web/packages/NBPSeq")
     (synopsis "Negative binomial models for RNA-Seq data")
     (description
@@ -6134,20 +6436,18 @@ and regression inferences from RNA-sequencing data.")
 (define-public r-ebseq
   (package
     (name "r-ebseq")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "EBSeq" version))
        (sha256
         (base32
-         "0h5v3vrb90zim80bdnr3aw58g3h7zjqa4l9i0jwx5j19ywf54fdz"))))
+         "1p8i04v5h6mbc8zqbf3rifbwwylzzc1fqrkhh0a0mbcgq2nv7i9m"))))
     (properties `((upstream-name . "EBSeq")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-blockmodeling" ,r-blockmodeling)
-       ("r-gplots" ,r-gplots)
-       ("r-testthat" ,r-testthat)))
+     (list r-blockmodeling r-gplots r-testthat))
     (home-page "https://bioconductor.org/packages/EBSeq")
     (synopsis "Differential expression analysis of RNA-seq data")
     (description
@@ -6158,32 +6458,32 @@ gene and isoform level using RNA-seq data")
 (define-public r-karyoploter
   (package
     (name "r-karyoploter")
-    (version "1.18.0")
+    (version "1.20.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "karyoploteR" version))
               (sha256
                (base32
-                "11sgxz2xz685pgm8mf0hzm6aryx4fj5g3dlffjzpqxh3awfqa19p"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-bamsignals" ,r-bamsignals)
-       ("r-bezier" ,r-bezier)
-       ("r-biovizbase" ,r-biovizbase)
-       ("r-digest" ,r-digest)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-memoise" ,r-memoise)
-       ("r-regioner" ,r-regioner)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-variantannotation" ,r-variantannotation)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+                "0x3mld9q55r2fy452wxq5sjzmms10zmpkzs71c3w1fdli5hwszdq"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-annotationdbi
+           r-bamsignals
+           r-bezier
+           r-biovizbase
+           r-digest
+           r-genomeinfodb
+           r-genomicfeatures
+           r-genomicranges
+           r-iranges
+           r-memoise
+           r-regioner
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors
+           r-variantannotation))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/karyoploteR/")
     (synopsis "Plot customizable linear genomes displaying arbitrary data")
     (description "This package creates karyotype plots of arbitrary genomes and
@@ -6196,20 +6496,19 @@ coordinates.")
 (define-public r-lpsymphony
   (package
     (name "r-lpsymphony")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "lpsymphony" version))
        (sha256
         (base32
-         "0aw4b3p5z8ys7zlwy8s3bsqk03xwx42311yxr7q14w3f7sn3shzn"))))
+         "1bv28b1fgcazv6j0xw4nn6wljs37qnkyahqy7anrwissdpryhjfs"))))
     (build-system r-build-system)
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://r-forge.r-project.org/projects/rsymphony")
     (synopsis "Symphony integer linear programming solver in R")
     (description
@@ -6226,23 +6525,20 @@ to install interface to SYMPHONY.")
 (define-public r-ihw
   (package
     (name "r-ihw")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "IHW" version))
        (sha256
         (base32
-         "0b393a8ayzbnrgkk562w1dj7avacpb3wc7yq7awiki24wi5g2lfw"))))
+         "0vgij5zyaw3fh7arkg4jy1mizsqzbkcsjl05mh3ng2bqh30kyqqx"))))
     (properties `((upstream-name . "IHW")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-fdrtool" ,r-fdrtool)
-       ("r-lpsymphony" ,r-lpsymphony)
-       ("r-slam" ,r-slam)))
+     (list r-biocgenerics r-fdrtool r-lpsymphony r-slam))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/IHW")
     (synopsis "Independent hypothesis weighting")
     (description
@@ -6258,30 +6554,30 @@ independent of the p-value under the null hypothesis.")
 (define-public r-icobra
   (package
     (name "r-icobra")
-    (version "1.20.0")
+    (version "1.22.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "iCOBRA" version))
        (sha256
         (base32
-         "190rkx3sivj68in36hhin5v535yd6fvlvm7l90w1bl38zpb7p6jn"))))
+         "05j3h314l2bw8n61h1nyiqhm3z7c1axycn4p3xkfccq5i4mcqvn2"))))
     (properties `((upstream-name . "iCOBRA")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-dt" ,r-dt)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-limma" ,r-limma)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rocr" ,r-rocr)
-       ("r-scales" ,r-scales)
-       ("r-shiny" ,r-shiny)
-       ("r-shinybs" ,r-shinybs)
-       ("r-shinydashboard" ,r-shinydashboard)
-       ("r-upsetr" ,r-upsetr)))
+     (list r-dplyr
+           r-dt
+           r-ggplot2
+           r-limma
+           r-reshape2
+           r-rocr
+           r-scales
+           r-shiny
+           r-shinybs
+           r-shinydashboard
+           r-upsetr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/iCOBRA")
     (synopsis "Comparison and visualization of ranking and assignment methods")
     (description
@@ -6294,23 +6590,21 @@ interactive exploration of results.")
 (define-public r-residualmatrix
   (package
     (name "r-residualmatrix")
-    (version "1.2.0")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ResidualMatrix" version))
        (sha256
         (base32
-         "0p7va19aw0j6anx7ck879kbi5cn7dy712h5ia94adr38ssismv1v"))))
+         "0xsn4fm34a7xpkgmx3a1j2xzdaxf2hyla1062wqn04kw0k9y29vg"))))
     (properties
      `((upstream-name . "ResidualMatrix")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-delayedarray" ,r-delayedarray)
-       ("r-matrix" ,r-matrix)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-delayedarray r-matrix r-s4vectors))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/LTLA/ResidualMatrix")
     (synopsis "Create a DelayedMatrix of regression residuals")
     (description
@@ -6325,34 +6619,34 @@ multiplication and calculation of row/column sums or means.")
 (define-public r-batchelor
   (package
     (name "r-batchelor")
-    (version "1.8.1")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "batchelor" version))
        (sha256
         (base32
-         "1bkk69b5llkmvmpsnhymwjm2szmzypgszfsw8mak1b5ms5zf8lr0"))))
+         "0axkic11bwjbw8apwxx6p51s7jvlwhq7xi1bdknn54k86axq84dr"))))
     (properties `((upstream-name . "batchelor")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-beachmat" ,r-beachmat)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocneighbors" ,r-biocneighbors)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biocsingular" ,r-biocsingular)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-delayedmatrixstats" ,r-delayedmatrixstats)
-       ("r-igraph" ,r-igraph)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-residualmatrix" ,r-residualmatrix)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-scaledmatrix" ,r-scaledmatrix)
-       ("r-scuttle" ,r-scuttle)
-       ("r-singlecellexperiment" ,r-singlecellexperiment)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-beachmat
+           r-biocgenerics
+           r-biocneighbors
+           r-biocparallel
+           r-biocsingular
+           r-delayedarray
+           r-delayedmatrixstats
+           r-igraph
+           r-matrix
+           r-rcpp
+           r-residualmatrix
+           r-s4vectors
+           r-scaledmatrix
+           r-scuttle
+           r-singlecellexperiment
+           r-summarizedexperiment))
+    (native-inputs (list r-knitr))
     (home-page "https://bioconductor.org/packages/batchelor")
     (synopsis "Single-Cell Batch Correction Methods")
     (description
@@ -6368,31 +6662,31 @@ the numbers of cells across batches.")
 (define-public r-mast
   (package
     (name "r-mast")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MAST" version))
        (sha256
         (base32
-         "1gkpagam5rap36viyr3n4psa658x9vckrxap1h67jasiiyrcfz2d"))))
+         "14h6giny9lhzqjsx3h7gdhsm8wfwnvp5zsl4avrflip0jmsn45yy"))))
     (properties `((upstream-name . "MAST")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-data-table" ,r-data-table)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-plyr" ,r-plyr)
-       ("r-progress" ,r-progress)
-       ("r-reshape2" ,r-reshape2)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-singlecellexperiment" ,r-singlecellexperiment)
-       ("r-stringr" ,r-stringr)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-abind
+           r-biobase
+           r-biocgenerics
+           r-data-table
+           r-ggplot2
+           r-plyr
+           r-progress
+           r-reshape2
+           r-s4vectors
+           r-singlecellexperiment
+           r-stringr
+           r-summarizedexperiment))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/RGLab/MAST/")
     (synopsis "Model-based analysis of single cell transcriptomics")
     (description
@@ -6403,48 +6697,48 @@ single cell assay data.")
 (define-public r-monocle
   (package
     (name "r-monocle")
-    (version "2.20.0")
+    (version "2.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "monocle" version))
        (sha256
         (base32
-         "05j1vc51f39xalggdq27y7218gkr3zq7fh7jhzsb4jj7fpn837ry"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocviews" ,r-biocviews)
-       ("r-cluster" ,r-cluster)
-       ("r-combinat" ,r-combinat)
-       ("r-ddrtree" ,r-ddrtree)
-       ("r-densityclust" ,r-densityclust)
-       ("r-dplyr" ,r-dplyr)
-       ("r-fastica" ,r-fastica)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-hsmmsinglecell" ,r-hsmmsinglecell)
-       ("r-igraph" ,r-igraph)
-       ("r-irlba" ,r-irlba)
-       ("r-limma" ,r-limma)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-pheatmap" ,r-pheatmap)
-       ("r-plyr" ,r-plyr)
-       ("r-proxy" ,r-proxy)
-       ("r-qlcmatrix" ,r-qlcmatrix)
-       ("r-rann" ,r-rann)
-       ("r-rcpp" ,r-rcpp)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rtsne" ,r-rtsne)
-       ("r-slam" ,r-slam)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)
-       ("r-vgam" ,r-vgam)
-       ("r-viridis" ,r-viridis)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+         "0wb2c1jf502lrfx3d0amb09fvhalrwxvpsp99jsab162v4hddg85"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-biobase
+           r-biocgenerics
+           r-biocviews
+           r-cluster
+           r-combinat
+           r-ddrtree
+           r-densityclust
+           r-dplyr
+           r-fastica
+           r-ggplot2
+           r-hsmmsinglecell
+           r-igraph
+           r-irlba
+           r-limma
+           r-mass
+           r-matrix
+           r-matrixstats
+           r-pheatmap
+           r-plyr
+           r-proxy
+           r-qlcmatrix
+           r-rann
+           r-rcpp
+           r-reshape2
+           r-rtsne
+           r-slam
+           r-stringr
+           r-tibble
+           r-vgam
+           r-viridis))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/monocle")
     (synopsis "Clustering, differential expression, and trajectory analysis for single-cell RNA-Seq")
     (description
@@ -6476,11 +6770,11 @@ qPCR data, but could be used with other types as well.")
       (properties `((upstream-name . "leidenbase")))
       (build-system r-build-system)
       (inputs
-       `(("zlib" ,zlib)))
+       (list zlib))
       (native-inputs
-       `(("gfortran" ,gfortran)))
+       (list gfortran))
       (propagated-inputs
-       `(("r-igraph" ,r-igraph)))
+       (list r-igraph))
       (home-page "https://github.com/cole-trapnell-lab/leidenbase")
       (synopsis "R and C wrappers to run the Leiden find_partition function")
       (description
@@ -6491,6 +6785,33 @@ required source code files from the official Leidenalg distribution and
 several functions from the R igraph package.")
       (license license:gpl3+))))
 
+(define-public r-sanssouci
+  ;; sansscouci doesn't have a (versioned) release yet.
+  ;; This is the latest commit as of packaging for Guix.
+  (let ((commit "5fe20a9aaf4ac637fa83d9cc73ff1c22de97ca6f")
+        (revision "1"))
+    (package
+      (name "r-sanssouci")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/pneuvial/sanssouci.git")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "13ycdd790qw64qy2zdvcrpj3fc8as628rsly32438d3rifnlc5sk"))))
+      (build-system r-build-system)
+      (propagated-inputs
+       (list r-generics r-matrix r-matrixstats r-rcpp r-rcpparmadillo))
+      (home-page "https://pneuvial.github.io/sanssouci")
+      (synopsis "Post Hoc multiple testing inference")
+      (description
+       "The goal of sansSouci is to perform post hoc inference: in a multiple
+testing context, sansSouci provides statistical guarantees on possibly
+user-defined and/or data-driven sets of hypotheses.")
+      (license license:gpl3))))
+
 (define-public r-monocle3
   (package
     (name "r-monocle3")
@@ -6507,50 +6828,50 @@ several functions from the R igraph package.")
          "16vpvlbms8fdvpfwzcig0rkg2mxnsq1h80d2l7q3953wm91qc9x4"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertthat" ,r-assertthat)
-       ("r-batchelor" ,r-batchelor)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-delayedmatrixstats" ,r-delayedmatrixstats)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-grr" ,r-grr)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-igraph" ,r-igraph)
-       ("r-irlba" ,r-irlba)
-       ("r-leidenbase" ,r-leidenbase)
-       ("r-limma" ,r-limma)
-       ("r-lmtest" ,r-lmtest)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-matrix-utils" ,r-matrix-utils)
-       ("r-pbapply" ,r-pbapply)
-       ("r-pbmcapply" ,r-pbmcapply)
-       ("r-pheatmap" ,r-pheatmap)
-       ("r-plotly" ,r-plotly)
-       ("r-pryr" ,r-pryr)
-       ("r-proxy" ,r-proxy)
-       ("r-pscl" ,r-pscl)
-       ("r-purrr" ,r-purrr)
-       ("r-rann" ,r-rann)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppparallel" ,r-rcppparallel)
-       ("r-reshape2" ,r-reshape2)
-       ("r-reticulate" ,r-reticulate)
-       ("r-rhpcblasctl" ,r-rhpcblasctl)
-       ("r-rsample" ,r-rsample)
-       ("r-rtsne" ,r-rtsne)
-       ("r-shiny" ,r-shiny)
-       ("r-slam" ,r-slam)
-       ("r-spdep" ,r-spdep)
-       ("r-speedglm" ,r-speedglm)
-       ("r-stringr" ,r-stringr)
-       ("r-singlecellexperiment" ,r-singlecellexperiment)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-uwot" ,r-uwot)
-       ("r-viridis" ,r-viridis)))
+     (list r-assertthat
+           r-batchelor
+           r-biobase
+           r-biocgenerics
+           r-delayedmatrixstats
+           r-dplyr
+           r-ggplot2
+           r-ggrepel
+           r-grr
+           r-htmlwidgets
+           r-igraph
+           r-irlba
+           r-leidenbase
+           r-limma
+           r-lmtest
+           r-mass
+           r-matrix
+           r-matrix-utils
+           r-pbapply
+           r-pbmcapply
+           r-pheatmap
+           r-plotly
+           r-pryr
+           r-proxy
+           r-pscl
+           r-purrr
+           r-rann
+           r-rcpp
+           r-rcppparallel
+           r-reshape2
+           r-reticulate
+           r-rhpcblasctl
+           r-rsample
+           r-rtsne
+           r-shiny
+           r-slam
+           r-spdep
+           r-speedglm
+           r-stringr
+           r-singlecellexperiment
+           r-tibble
+           r-tidyr
+           r-uwot
+           r-viridis))
     (home-page "https://github.com/cole-trapnell-lab/monocle3")
     (synopsis "Analysis toolkit for single-cell RNA-Seq data")
     (description
@@ -6560,19 +6881,18 @@ several functions from the R igraph package.")
 (define-public r-noiseq
   (package
     (name "r-noiseq")
-    (version "2.36.0")
+    (version "2.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "NOISeq" version))
        (sha256
         (base32
-         "18d51dv2ygsm7kkwal341f1wrwrazyns0045j00vld367kic8jiz"))))
+         "0mmvzf8y4gm84hgjdpf86b1y37237wp5mc3x1g6sdiz9qi8l356v"))))
     (properties `((upstream-name . "NOISeq")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-matrix" ,r-matrix)))
+     (list r-biobase r-matrix))
     (home-page "https://bioconductor.org/packages/NOISeq")
     (synopsis "Exploratory analysis and differential expression for RNA-seq data")
     (description
@@ -6587,30 +6907,30 @@ assumptions.")
 (define-public r-scdd
   (package
     (name "r-scdd")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scDD" version))
        (sha256
         (base32
-         "1dw9m3m99apmbs32461c6lnmy81n5hxbhz3p8jk419gajkh4v1ji"))))
+         "0gjdjkpkm9zc9hzzb6r2mknl4zyg7s2lgqppmzzhgcnvlmgvm5b5"))))
     (properties `((upstream-name . "scDD")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-arm" ,r-arm)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-ebseq" ,r-ebseq)
-       ("r-fields" ,r-fields)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-mclust" ,r-mclust)
-       ("r-outliers" ,r-outliers)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-scran" ,r-scran)
-       ("r-singlecellexperiment" ,r-singlecellexperiment)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+     (list r-arm
+           r-biocparallel
+           r-ebseq
+           r-fields
+           r-ggplot2
+           r-mclust
+           r-outliers
+           r-s4vectors
+           r-scran
+           r-singlecellexperiment
+           r-summarizedexperiment))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/kdkorthauer/scDD")
     (synopsis "Mixture modeling of single-cell RNA-seq data")
     (description
@@ -6625,39 +6945,39 @@ distributions.")
 (define-public r-scone
   (package
     (name "r-scone")
-    (version "1.16.1")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scone" version))
        (sha256
         (base32
-         "0zw8g4mql7b02xqwhc1i0bnhm20c1q9xqc7yz84j98pqbi996vi5"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-aroma-light" ,r-aroma-light)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-boot" ,r-boot)
-       ("r-class" ,r-class)
-       ("r-cluster" ,r-cluster)
-       ("r-compositions" ,r-compositions)
-       ("r-diptest" ,r-diptest)
-       ("r-edger" ,r-edger)
-       ("r-fpc" ,r-fpc)
-       ("r-gplots" ,r-gplots)
-       ("r-hexbin" ,r-hexbin)
-       ("r-limma" ,r-limma)
-       ("r-matrixgenerics" ,r-matrixgenerics)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-mixtools" ,r-mixtools)
-       ("r-rarpack" ,r-rarpack)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rhdf5" ,r-rhdf5)
-       ("r-ruvseq" ,r-ruvseq)
-       ("r-singlecellexperiment" ,r-singlecellexperiment)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+         "1fqlwg195rzpwh35cj941vhmj2plzpn253skig6glr0z2sirr9r1"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-aroma-light
+           r-biocparallel
+           r-boot
+           r-class
+           r-cluster
+           r-compositions
+           r-diptest
+           r-edger
+           r-fpc
+           r-gplots
+           r-hexbin
+           r-limma
+           r-matrixgenerics
+           r-matrixstats
+           r-mixtools
+           r-rarpack
+           r-rcolorbrewer
+           r-rhdf5
+           r-ruvseq
+           r-singlecellexperiment
+           r-summarizedexperiment))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/scone")
     (synopsis "Single cell overview of normalized expression data")
     (description
@@ -6669,27 +6989,29 @@ high-throughput analyses.")
 (define-public r-geoquery
   (package
     (name "r-geoquery")
-    (version "2.60.0")
+    (version "2.62.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GEOquery" version))
        (sha256
         (base32
-         "0jhkdbcd03d5n8vn3xkad6f21xjkawyxc9rdwcj8vwc8alx730am"))))
+         "0plmh4x37r848g6ilvl1x8cim90rp85gikfc5m8lgi2i4xkq7hbq"))))
     (properties `((upstream-name . "GEOquery")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-dplyr" ,r-dplyr)
-       ("r-httr" ,r-httr)
-       ("r-limma" ,r-limma)
-       ("r-magrittr" ,r-magrittr)
-       ("r-readr" ,r-readr)
-       ("r-tidyr" ,r-tidyr)
-       ("r-xml2" ,r-xml2)))
+     (list r-biobase
+           r-data-table
+           r-dplyr
+           r-httr
+           r-limma
+           r-magrittr
+           r-r-utils
+           r-readr
+           r-tidyr
+           r-xml2))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/seandavi/GEOquery/")
     (synopsis "Get data from NCBI Gene Expression Omnibus (GEO)")
     (description
@@ -6702,17 +7024,17 @@ the bridge between GEO and BioConductor.")
 (define-public r-illuminaio
   (package
     (name "r-illuminaio")
-    (version "0.34.0")
+    (version "0.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "illuminaio" version))
        (sha256
         (base32
-         "1sy0i3nbzsw4ymdxaiwpyx1vcg9yp3i8xfjcymqwhv95j3kyglv9"))))
+         "0icsp610am5vrd8x2h9c450phn4vl9c5wnzqmkix5hkqzrykk34m"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64" ,r-base64)))
+     (list r-base64))
     (home-page "https://github.com/HenrikBengtsson/illuminaio/")
     (synopsis "Parse Illumina microarray output files")
     (description
@@ -6723,19 +7045,17 @@ files, including IDAT.")
 (define-public r-siggenes
   (package
     (name "r-siggenes")
-    (version "1.66.0")
+    (version "1.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "siggenes" version))
        (sha256
         (base32
-         "0lva0f255fcpy625frvij4n14q7nw4jcx8n2hlkxid4mgkfqwlhf"))))
+         "1fymp5ci1nwkk5yfj7hli464xqvvlvzf2a5j0w3qkxly9hrymix9"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-multtest" ,r-multtest)
-       ("r-scrime" ,r-scrime)))
+     (list r-biobase r-multtest r-scrime))
     (home-page "https://bioconductor.org/packages/siggenes/")
     (synopsis
      "Multiple testing using SAM and Efron's empirical Bayes approaches")
@@ -6749,29 +7069,29 @@ Bayes Analyses of Microarrays} (EBAM).")
 (define-public r-bumphunter
   (package
     (name "r-bumphunter")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bumphunter" version))
        (sha256
         (base32
-         "0wi38vwfi8qr10x4xifhylxx7vfc6fqvqs649iq7lf0y7islwq2v"))))
+         "0d5cz9xy7vhcaj5n3h4cfiv08sn7wn83458525pdwvdzzm449xgv"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-dorng" ,r-dorng)
-       ("r-foreach" ,r-foreach)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-iterators" ,r-iterators)
-       ("r-limma" ,r-limma)
-       ("r-locfit" ,r-locfit)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-annotationdbi
+           r-biocgenerics
+           r-dorng
+           r-foreach
+           r-genomeinfodb
+           r-genomicfeatures
+           r-genomicranges
+           r-iranges
+           r-iterators
+           r-limma
+           r-locfit
+           r-matrixstats
+           r-s4vectors))
     (home-page "https://github.com/ririzarr/bumphunter")
     (synopsis "Find bumps in genomic data")
     (description
@@ -6783,47 +7103,47 @@ studies.")
 (define-public r-minfi
   (package
     (name "r-minfi")
-    (version "1.38.0")
+    (version "1.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "minfi" version))
        (sha256
         (base32
-         "189lzppvrz6bw2kpppawgsfjyh2ahyy8bi9z8srpas67qf2r8jmj"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-beanplot" ,r-beanplot)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biostrings" ,r-biostrings)
-       ("r-bumphunter" ,r-bumphunter)
-       ("r-data-table" ,r-data-table)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-delayedmatrixstats" ,r-delayedmatrixstats)
-       ("r-genefilter" ,r-genefilter)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-geoquery" ,r-geoquery)
-       ("r-hdf5array" ,r-hdf5array)
-       ("r-illuminaio" ,r-illuminaio)
-       ("r-iranges" ,r-iranges)
-       ("r-lattice" ,r-lattice)
-       ("r-limma" ,r-limma)
-       ("r-mass" ,r-mass)
-       ("r-mclust" ,r-mclust)
-       ("r-nlme" ,r-nlme)
-       ("r-nor1mix" ,r-nor1mix)
-       ("r-preprocesscore" ,r-preprocesscore)
-       ("r-quadprog" ,r-quadprog)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-reshape" ,r-reshape)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-siggenes" ,r-siggenes)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+         "0d5220nknwgi1020vhvf7408n5p80dmad66n85af5776qn84a6nx"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-beanplot
+           r-biobase
+           r-biocgenerics
+           r-biocparallel
+           r-biostrings
+           r-bumphunter
+           r-data-table
+           r-delayedarray
+           r-delayedmatrixstats
+           r-genefilter
+           r-genomeinfodb
+           r-genomicranges
+           r-geoquery
+           r-hdf5array
+           r-illuminaio
+           r-iranges
+           r-lattice
+           r-limma
+           r-mass
+           r-mclust
+           r-nlme
+           r-nor1mix
+           r-preprocesscore
+           r-quadprog
+           r-rcolorbrewer
+           r-reshape
+           r-s4vectors
+           r-siggenes
+           r-summarizedexperiment))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/hansenlab/minfi")
     (synopsis "Analyze Illumina Infinium DNA methylation arrays")
     (description
@@ -6834,36 +7154,37 @@ methylation arrays.")
 (define-public r-methylumi
   (package
     (name "r-methylumi")
-    (version "2.38.0")
+    (version "2.40.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "methylumi" version))
        (sha256
         (base32
-         "1941rc524ssx8gwhmwk40mgfrhddfs6hgldvs7bi22r29gm4y7qj"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-annotate" ,r-annotate)
-       ("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-fdb-infiniummethylation-hg19" ,r-fdb-infiniummethylation-hg19)
-       ("r-genefilter" ,r-genefilter)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-illuminaio" ,r-illuminaio)
-       ("r-iranges" ,r-iranges)
-       ("r-lattice" ,r-lattice)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-minfi" ,r-minfi)
-       ("r-reshape2" ,r-reshape2)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-scales" ,r-scales)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+         "1lfcsv8k9c4ndfwlbdk3vd7fq58100bfijyxklna41zf8m8kkkka"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-annotate
+           r-annotationdbi
+           r-biobase
+           r-biocgenerics
+           r-fdb-infiniummethylation-hg19
+           r-genefilter
+           r-genomeinfodb
+           r-genomicfeatures
+           r-genomicranges
+           r-ggplot2
+           r-illuminaio
+           r-iranges
+           r-lattice
+           r-matrixstats
+           r-minfi
+           r-reshape2
+           r-s4vectors
+           r-scales
+           r-summarizedexperiment))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/methylumi")
     (synopsis "Handle Illumina methylation data")
     (description
@@ -6880,31 +7201,31 @@ and Infinium HD arrays are also included.")
 (define-public r-lumi
   (package
     (name "r-lumi")
-    (version "2.44.0")
+    (version "2.46.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "lumi" version))
        (sha256
         (base32
-         "0qjdxjdzfnnxcm07bf51v38388s5qf1i03l1sdb9jf3gxdh8yh02"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-affy" ,r-affy)
-       ("r-annotate" ,r-annotate)
-       ("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-dbi" ,r-dbi)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-kernsmooth" ,r-kernsmooth)
-       ("r-lattice" ,r-lattice)
-       ("r-mass" ,r-mass)
-       ("r-methylumi" ,r-methylumi)
-       ("r-mgcv" ,r-mgcv)
-       ("r-nleqslv" ,r-nleqslv)
-       ("r-preprocesscore" ,r-preprocesscore)
-       ("r-rsqlite" ,r-rsqlite)))
+         "0v33p66vn4alhx2il9wwdvc9sqvgasgj0s2gk85gjc76ad0017in"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-affy
+           r-annotate
+           r-annotationdbi
+           r-biobase
+           r-dbi
+           r-genomicfeatures
+           r-genomicranges
+           r-kernsmooth
+           r-lattice
+           r-mass
+           r-methylumi
+           r-mgcv
+           r-nleqslv
+           r-preprocesscore
+           r-rsqlite))
     (home-page "https://bioconductor.org/packages/lumi")
     (synopsis "BeadArray-specific methods for Illumina methylation and expression microarrays")
     (description
@@ -6919,37 +7240,37 @@ especially Illumina Infinium methylation microarrays.")
 (define-public r-linnorm
   (package
     (name "r-linnorm")
-    (version "2.16.0")
+    (version "2.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Linnorm" version))
        (sha256
         (base32
-         "035hrniycqadmkwg8rmzw8szv0amhy31390izy91rfrld31v2yy7"))))
+         "1bdnglznsfs1kdscqyjv595wiy09khcv9kxm4fmbnmksisqjz5qj"))))
     (properties `((upstream-name . "Linnorm")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-amap" ,r-amap)
-       ("r-apcluster" ,r-apcluster)
-       ("r-ellipse" ,r-ellipse)
-       ("r-fastcluster" ,r-fastcluster)
-       ("r-fpc" ,r-fpc)
-       ("r-ggdendro" ,r-ggdendro)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gmodels" ,r-gmodels)
-       ("r-igraph" ,r-igraph)
-       ("r-limma" ,r-limma)
-       ("r-mass" ,r-mass)
-       ("r-mclust" ,r-mclust)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rtsne" ,r-rtsne)
-       ("r-statmod" ,r-statmod)
-       ("r-vegan" ,r-vegan)
-       ("r-zoo" ,r-zoo)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-amap
+           r-apcluster
+           r-ellipse
+           r-fastcluster
+           r-fpc
+           r-ggdendro
+           r-ggplot2
+           r-gmodels
+           r-igraph
+           r-limma
+           r-mass
+           r-mclust
+           r-rcpp
+           r-rcpparmadillo
+           r-rtsne
+           r-statmod
+           r-vegan
+           r-zoo))
+    (native-inputs
+     (list r-knitr))
     (home-page "http://www.jjwanglab.org/Linnorm/")
     (synopsis "Linear model and normality based transformation method")
     (description
@@ -6980,32 +7301,32 @@ evaluation of DEG analysis methods.")
 (define-public r-ioniser
   (package
     (name "r-ioniser")
-    (version "2.16.0")
+    (version "2.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "IONiseR" version))
        (sha256
         (base32
-         "0fknlwdfd49v09zspg0337b0zzc8hqza3563yrw51viw3g35d6q3"))))
+         "1hdg446z5s616aaalzz49if1wp9nmzm2mbyva82m1vz8i7ih9m4h"))))
     (properties `((upstream-name . "IONiseR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biostrings" ,r-biostrings)
-       ("r-bit64" ,r-bit64)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rhdf5" ,r-rhdf5)
-       ("r-shortread" ,r-shortread)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-xvector" ,r-xvector)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biocgenerics
+           r-biocparallel
+           r-biostrings
+           r-bit64
+           r-dplyr
+           r-ggplot2
+           r-magrittr
+           r-rhdf5
+           r-shortread
+           r-stringr
+           r-tibble
+           r-tidyr
+           r-xvector))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/IONiseR/")
     (synopsis "Quality assessment tools for Oxford Nanopore MinION data")
     (description
@@ -7032,10 +7353,7 @@ surface of a flowcell.")
     (properties `((upstream-name . "mutoss")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-multcomp" ,r-multcomp)
-       ("r-multtest" ,r-multtest)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-plotrix" ,r-plotrix)))
+     (list r-multcomp r-multtest r-mvtnorm r-plotrix))
     (home-page "https://github.com/kornl/mutoss/")
     (synopsis "Unified multiple testing procedures")
     (description
@@ -7060,10 +7378,7 @@ are standardized and usable by the accompanying mutossGUI package.")
          "1jmmmmjiklaxfl604hwqil193ydaghvd5jv8xsr4bx3pzn5i9kvz"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)
-       ("r-mutoss" ,r-mutoss)
-       ("r-rdpack" ,r-rdpack)
-       ("r-tfisher" ,r-tfisher)))
+     (list r-lattice r-mutoss r-rdpack r-tfisher))
     (home-page "http://www.dewey.myzen.co.uk/meta/meta.html")
     (synopsis "Meta-analysis of significance values")
     (description
@@ -7077,36 +7392,37 @@ published results; and a routine for graphical display.")
 (define-public r-tradeseq
   (package
    (name "r-tradeseq")
-   (version "1.6.0")
+   (version "1.8.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "tradeSeq" version))
             (sha256
              (base32
-              "0fgmb309pvqf3chdhqgbd4lzhahcj5g71sica33nzn98qhipldx7"))))
+              "1s5anbb38gi5sfkxy19zpvkj8d0ij7m6cd0z4gmx4f5pf7pz0m3j"))))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-biobase" ,r-biobase)
-      ("r-biocparallel" ,r-biocparallel)
-      ("r-edger" ,r-edger)
-      ("r-ggplot2" ,r-ggplot2)
-      ("r-igraph" ,r-igraph)
-      ("r-magrittr" ,r-magrittr)
-      ("r-matrix" ,r-matrix)
-      ("r-matrixstats" ,r-matrixstats)
-      ("r-mgcv" ,r-mgcv)
-      ("r-monocle" ,r-monocle)
-      ("r-pbapply" ,r-pbapply)
-      ("r-princurve" ,r-princurve)
-      ("r-rcolorbrewer" ,r-rcolorbrewer)
-      ("r-s4vectors" ,r-s4vectors)
-      ("r-singlecellexperiment" ,r-singlecellexperiment)
-      ("r-slingshot" ,r-slingshot)
-      ("r-summarizedexperiment" ,r-summarizedexperiment)
-      ("r-tibble" ,r-tibble)
-      ("r-viridis" ,r-viridis)))
+    (list r-biobase
+          r-biocparallel
+          r-edger
+          r-ggplot2
+          r-igraph
+          r-magrittr
+          r-mass
+          r-matrix
+          r-matrixstats
+          r-mgcv
+          r-pbapply
+          r-princurve
+          r-rcolorbrewer
+          r-s4vectors
+          r-singlecellexperiment
+          r-slingshot
+          r-summarizedexperiment
+          r-tibble
+          r-trajectoryutils
+          r-viridis))
    (native-inputs
-    `(("r-knitr" ,r-knitr)))
+    (list r-knitr))
    (home-page "https://statomics.github.io/tradeSeq/index.html")
    (synopsis "Trajectory-based differential expression analysis")
    (description
@@ -7133,9 +7449,7 @@ performs inference on the parameters of the GAM.")
          "089b7f6dwpi9abj0ncswbi4s30k45996zb99sh43avw6jcb6qj60"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-iranges" ,r-iranges)
-       ("r-yaml" ,r-yaml)))
+     (list r-biocgenerics r-iranges r-yaml))
     (home-page "https://bioconductor.org/packages/triform/")
     (synopsis "Find enriched regions in transcription factor ChIP-sequencing data")
     (description
@@ -7147,31 +7461,31 @@ peak definition in combination with known profile characteristics.")
 (define-public r-varianttools
   (package
     (name "r-varianttools")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "VariantTools" version))
        (sha256
         (base32
-         "1gpzrln2clfrja8rzxhsis6bi1xqglh3h2lhvqlnrx4lqxhbkv9c"))))
+         "0079dsgav4q03c4i0dhggc88iifd828n73kjv3sahim9akafdshl"))))
     (properties `((upstream-name . "VariantTools")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-matrix" ,r-matrix)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-variantannotation" ,r-variantannotation)))
+     (list r-biobase
+           r-biocgenerics
+           r-biocparallel
+           r-biostrings
+           r-bsgenome
+           r-genomeinfodb
+           r-genomicfeatures
+           r-genomicranges
+           r-iranges
+           r-matrix
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors
+           r-variantannotation))
     (home-page "https://bioconductor.org/packages/VariantTools/")
     (synopsis "Tools for exploratory analysis of variant calls")
     (description
@@ -7187,18 +7501,18 @@ gmapR.")
 (define-public r-heatplus
   (package
     (name "r-heatplus")
-    (version "3.0.0")
+    (version "3.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Heatplus" version))
        (sha256
         (base32
-         "0xwg3sxmihg3p6v3nxgrqy0nrqxi6razg3b3rjh2gcb2vv8gcqng"))))
+         "0yrnjrbfn8vjzvp2742lyxdqca4s18h73j44qxw7ib95x3p4lndf"))))
     (properties `((upstream-name . "Heatplus")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcolorbrewer" ,r-rcolorbrewer)))
+     (list r-rcolorbrewer))
     (home-page "https://github.com/alexploner/Heatplus")
     (synopsis "Heatmaps with row and/or column covariates and colored clusters")
     (description
@@ -7212,22 +7526,20 @@ information about samples and features can be added to the plot.")
 (define-public r-gosemsim
   (package
     (name "r-gosemsim")
-    (version "2.18.1")
+    (version "2.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GOSemSim" version))
        (sha256
         (base32
-         "00dbgkiv9x7g2i0anzcxpycwqqqry0y7jl3ad93lhvi31qnqq1sm"))))
+         "15qi69kkgah7g25bymk9q1xf16hp1rd040fglg0svnydylg2d0ab"))))
     (properties `((upstream-name . "GOSemSim")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-go-db" ,r-go-db)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-annotationdbi r-go-db r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://guangchuangyu.github.io/software/GOSemSim")
     (synopsis "GO-terms semantic similarity measures")
     (description
@@ -7241,18 +7553,17 @@ sets of GO terms, gene products and gene clusters.")
 (define-public r-anota
   (package
     (name "r-anota")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "anota" version))
        (sha256
         (base32
-         "039bmcv5l44gszb6xapbihp3mfqdaaa8mfc05y702p78i7x93g5y"))))
+         "0agvcpb3lr9v55h53ywf662gpxayivxacv8dcm526cc8i8hdqa9f"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-multtest" ,r-multtest)
-       ("r-qvalue" ,r-qvalue)))
+     (list r-multtest r-qvalue))
     (home-page "https://bioconductor.org/packages/anota/")
     (synopsis "Analysis of translational activity")
     (description
@@ -7272,14 +7583,14 @@ the data set is suitable for such analysis.")
 (define-public r-sigpathway
   (package
     (name "r-sigpathway")
-    (version "1.60.0")
+    (version "1.62.0")
     (source
       (origin
         (method url-fetch)
         (uri (bioconductor-uri "sigPathway" version))
         (sha256
           (base32
-            "1xz5nbw5dzyah8az7mpwj8m27fsvpi2jjhfg3n27dsv8rvdncqi8"))))
+            "1c46m1gbgiygcj8m65h8iwzk3fkp6nynd6rk1f5qdh7kw5ap28f9"))))
     (properties `((upstream-name . "sigPathway")))
     (build-system r-build-system)
     (home-page "https://www.pnas.org/cgi/doi/10.1073/pnas.0506577102")
@@ -7291,29 +7602,62 @@ specified group of genes for a pathway has a coordinated association with a
 phenotype of interest.")
     (license license:gpl2)))
 
+(define-public r-fcscan
+  (package
+    (name "r-fcscan")
+    (version "1.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "fcScan" version))
+       (sha256
+        (base32 "0b161ayq4m9xxfs0lgw632lgygzabz8gjl0n75050pa7qaazknvd"))))
+    (properties `((upstream-name . "fcScan")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-doparallel
+           r-foreach
+           r-genomicranges
+           r-iranges
+           r-plyr
+           r-rtracklayer
+           r-summarizedexperiment
+           r-variantannotation))
+    (native-inputs (list r-knitr))
+    (home-page "https://bioconductor.org/packages/fcScan")
+    (synopsis "Detect clusters of coordinates with user defined options")
+    (description
+     "This package is used to detect combination of genomic coordinates
+falling within a user defined window size along with user defined overlap
+between identified neighboring clusters.  It can be used for genomic data
+where the clusters are built on a specific chromosome or specific strand.
+Clustering can be performed with a \"greedy\" option allowing thus the
+presence of additional sites within the allowed window size.")
+    (license license:artistic2.0)))
+
 (define-public r-fgsea
   (package
     (name "r-fgsea")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "fgsea" version))
        (sha256
         (base32
-         "1mhdgy46nxgv7v54bk9bqfy0vgjzl1law7zy718swdd762xn6g9d"))))
+         "10flcdm4b1kxnsvhl4k6mwkzb1vbai33k291j8nsrhj2cl5l8gm9"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-data-table" ,r-data-table)
-       ("r-fastmatch" ,r-fastmatch)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-bh
+           r-biocparallel
+           r-data-table
+           r-fastmatch
+           r-ggplot2
+           r-gridextra
+           r-matrix
+           r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/ctlab/fgsea/")
     (synopsis "Fast gene set enrichment analysis")
     (description
@@ -7326,27 +7670,27 @@ to multiple hypothesis correction.")
 (define-public r-dose
   (package
     (name "r-dose")
-    (version "3.18.2")
+    (version "3.20.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DOSE" version))
        (sha256
         (base32
-         "0kp6j42mpxrpd02cjrzqmrx3rvvpi90xiy4gc5km6ny3vxbhlaqw"))))
+         "10kknaqz40pb6v0fcjzp12hfpi6k5kvlqnyxx1k3y0h0wdg8hs3n"))))
     (properties `((upstream-name . "DOSE")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-do-db" ,r-do-db)
-       ("r-fgsea" ,r-fgsea)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gosemsim" ,r-gosemsim)
-       ("r-qvalue" ,r-qvalue)
-       ("r-reshape2" ,r-reshape2)))
+     (list r-annotationdbi
+           r-biocparallel
+           r-do-db
+           r-fgsea
+           r-ggplot2
+           r-gosemsim
+           r-qvalue
+           r-reshape2))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://guangchuangyu.github.io/software/DOSE/")
     (synopsis "Disease ontology semantic and enrichment analysis")
     (description
@@ -7361,32 +7705,33 @@ data.")
 (define-public r-enrichplot
   (package
     (name "r-enrichplot")
-    (version "1.12.2")
+    (version "1.14.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "enrichplot" version))
        (sha256
         (base32
-         "194sfmcnjfi3fvvfpljg1f80f44vvvxiij336b8z1dgzki6bqa3r"))))
+         "0nsx96mkcg0hhg3x8jndzq3xvq9bq7m4yf1b3ry73b17ladx81ch"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cowplot" ,r-cowplot)
-       ("r-dose" ,r-dose)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggraph" ,r-ggraph)
-       ("r-ggtree" ,r-ggtree)
-       ("r-gosemsim" ,r-gosemsim)
-       ("r-igraph" ,r-igraph)
-       ("r-magrittr" ,r-magrittr)
-       ("r-plyr" ,r-plyr)
-       ("r-purrr" ,r-purrr)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-reshape2" ,r-reshape2)
-       ("r-scatterpie" ,r-scatterpie)
-       ("r-shadowtext" ,r-shadowtext)))
+     (list r-aplot
+           r-dose
+           r-ggplot2
+           r-ggraph
+           r-ggtree
+           r-gosemsim
+           r-igraph
+           r-magrittr
+           r-plyr
+           r-purrr
+           r-rcolorbrewer
+           r-reshape2
+           r-scatterpie
+           r-shadowtext
+           r-yulab-utils))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/GuangchuangYu/enrichplot")
     (synopsis "Visualization of functional enrichment result")
     (description
@@ -7398,33 +7743,33 @@ All the visualization methods are developed based on ggplot2 graphics.")
 (define-public r-clusterprofiler
   (package
     (name "r-clusterprofiler")
-    (version "4.0.4")
+    (version "4.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "clusterProfiler" version))
        (sha256
         (base32
-         "161w9mn2plmymvzf1hkk9fwi3d9c26kbcpndyyrfcl6bg2nxr1s8"))))
+         "18y7482sw0awlhazikq13r2r0zid9ksk942rma87m448y1cq2fi5"))))
     (properties
      `((upstream-name . "clusterProfiler")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-dose" ,r-dose)
-       ("r-downloader" ,r-downloader)
-       ("r-dplyr" ,r-dplyr)
-       ("r-enrichplot" ,r-enrichplot)
-       ("r-go-db" ,r-go-db)
-       ("r-gosemsim" ,r-gosemsim)
-       ("r-magrittr" ,r-magrittr)
-       ("r-plyr" ,r-plyr)
-       ("r-qvalue" ,r-qvalue)
-       ("r-rlang" ,r-rlang)
-       ("r-rvcheck" ,r-rvcheck)
-       ("r-tidyr" ,r-tidyr)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationdbi
+           r-dose
+           r-downloader
+           r-dplyr
+           r-enrichplot
+           r-go-db
+           r-gosemsim
+           r-magrittr
+           r-plyr
+           r-qvalue
+           r-rlang
+           r-tidyr
+           r-yulab-utils))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://guangchuangyu.github.io/software/clusterProfiler/")
     (synopsis "Analysis and visualization of functional profiles for gene clusters")
     (description
@@ -7435,42 +7780,42 @@ profiles (GO and KEGG) of gene and gene clusters.")
 (define-public r-clusterexperiment
   (package
     (name "r-clusterexperiment")
-    (version "2.12.0")
+    (version "2.14.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "clusterExperiment" version))
               (sha256
                (base32
-                "1fhmayciwn1m124b4dcs3gzbghgk9f7a7qmjnvvxc958cywcwkx5"))))
-    (build-system r-build-system)
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
-    (propagated-inputs
-     `(("r-ape" ,r-ape)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocsingular" ,r-biocsingular)
-       ("r-cluster" ,r-cluster)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-edger" ,r-edger)
-       ("r-hdf5array" ,r-hdf5array)
-       ("r-howmany" ,r-howmany)
-       ("r-kernlab" ,r-kernlab)
-       ("r-limma" ,r-limma)
-       ("r-locfdr" ,r-locfdr)
-       ("r-matrix" ,r-matrix)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-mbkmeans" ,r-mbkmeans)
-       ("r-nmf" ,r-nmf)
-       ("r-phylobase" ,r-phylobase)
-       ("r-pracma" ,r-pracma)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rcpp" ,r-rcpp)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-scales" ,r-scales)
-       ("r-singlecellexperiment" ,r-singlecellexperiment)
-       ("r-stringr" ,r-stringr)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-zinbwave" ,r-zinbwave)))
+                "0riray1f841d5fx6mbcki5xmqz21kg5q5l0qz4pkgg9c1d9f7mbc"))))
+    (build-system r-build-system)
+    (native-inputs
+     (list r-knitr))
+    (propagated-inputs
+     (list r-ape
+           r-biocgenerics
+           r-biocsingular
+           r-cluster
+           r-delayedarray
+           r-edger
+           r-hdf5array
+           r-howmany
+           r-kernlab
+           r-limma
+           r-locfdr
+           r-matrix
+           r-matrixstats
+           r-mbkmeans
+           r-nmf
+           r-phylobase
+           r-pracma
+           r-rcolorbrewer
+           r-rcpp
+           r-s4vectors
+           r-scales
+           r-singlecellexperiment
+           r-stringr
+           r-summarizedexperiment
+           r-zinbwave))
     (home-page "https://bioconductor.org/packages/clusterExperiment/")
     (synopsis "Compare clusterings for single-cell sequencing")
     (description "This package provides functionality for running and comparing
@@ -7481,37 +7826,37 @@ expression data sets.")
 (define-public r-mlinterfaces
   (package
     (name "r-mlinterfaces")
-    (version "1.72.0")
+    (version "1.74.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MLInterfaces" version))
        (sha256
         (base32
-         "0ipzv7wdvfqhdyjiak956qq201igsdxm6dr6rh3dj6cssgsrnrpb"))))
+         "1nzy04fqwzb0ywiafgx3m3i2n1b0g4pcg8mlgh8yz5d3mmna4kag"))))
     (properties `((upstream-name . "MLInterfaces")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotate" ,r-annotate)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-cluster" ,r-cluster)
-       ("r-fpc" ,r-fpc)
-       ("r-gbm" ,r-gbm)
-       ("r-gdata" ,r-gdata)
-       ("r-genefilter" ,r-genefilter)
-       ("r-ggvis" ,r-ggvis)
-       ("r-hwriter" ,r-hwriter)
-       ("r-magrittr" ,r-magrittr)
-       ("r-mass" ,r-mass)
-       ("r-mlbench" ,r-mlbench)
-       ("r-pls" ,r-pls)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rpart" ,r-rpart)
-       ("r-sfsmisc" ,r-sfsmisc)
-       ("r-shiny" ,r-shiny)
-       ("r-threejs" ,r-threejs)))
+     (list r-annotate
+           r-biobase
+           r-biocgenerics
+           r-cluster
+           r-fpc
+           r-gbm
+           r-gdata
+           r-genefilter
+           r-ggvis
+           r-hwriter
+           r-magrittr
+           r-mass
+           r-mlbench
+           r-pls
+           r-rcolorbrewer
+           r-rcpp
+           r-rpart
+           r-sfsmisc
+           r-shiny
+           r-threejs))
     (home-page "https://bioconductor.org/packages/MLInterfaces/")
     (synopsis "Interfaces to R machine learning procedures")
     (description
@@ -7523,14 +7868,14 @@ data in R and Bioconductor containers.")
 (define-public r-annaffy
   (package
     (name "r-annaffy")
-    (version "1.64.2")
+    (version "1.66.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "annaffy" version))
        (sha256
         (base32
-         "03y633vgxprd2abhanj4sanmb4ymz7az5aiasxn6wjzawiqjdcb1"))))
+         "0crj37v571005brdd0ypfx2a7d1f829xxj2hahp2gy8aj9xm4s8l"))))
     (build-system r-build-system)
     (arguments
      `(#:phases
@@ -7540,11 +7885,7 @@ data in R and Bioconductor containers.")
              (substitute* "DESCRIPTION"
                ((", KEGG.db") "")))))))
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocmanager" ,r-biocmanager)
-       ("r-dbi" ,r-dbi)
-       ("r-go-db" ,r-go-db)))
+     (list r-annotationdbi r-biobase r-biocmanager r-dbi r-go-db))
     (home-page "https://bioconductor.org/packages/annaffy/")
     (synopsis "Annotation tools for Affymetrix biological metadata")
     (description
@@ -7559,21 +7900,20 @@ It allows searching of biological metadata using various criteria.")
 (define-public r-a4core
   (package
     (name "r-a4core")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4Core" version))
        (sha256
         (base32
-         "00fi753nsayv0xspavw8r9ni1sim8ng33hp3d3kj2b8ihygd1s10"))))
+         "074aa52y6c70417lxwrclk613gbs7zv3326g9ndbbzzs5pmnh1y0"))))
     (properties `((upstream-name . "a4Core")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-glmnet" ,r-glmnet)))
+     (list r-biobase r-glmnet))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/a4Core")
     (synopsis "Automated Affymetrix array analysis core package")
     (description
@@ -7584,26 +7924,26 @@ arrays.")
 (define-public r-a4classif
   (package
     (name "r-a4classif")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4Classif" version))
        (sha256
         (base32
-         "1lz85bys5dp5d1ir9c9c4wy85wkk62s14niyzzxaqrxpsji2p2iw"))))
+         "0q50d41n7drj5c9x6njyvzr6bj7glmkp1vpyz6cpj97j2v9nikwb"))))
     (properties `((upstream-name . "a4Classif")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-a4core" ,r-a4core)
-       ("r-a4preproc" ,r-a4preproc)
-       ("r-biobase" ,r-biobase)
-       ("r-glmnet" ,r-glmnet)
-       ("r-pamr" ,r-pamr)
-       ("r-rocr" ,r-rocr)
-       ("r-varselrf" ,r-varselrf)))
+     (list r-a4core
+           r-a4preproc
+           r-biobase
+           r-glmnet
+           r-pamr
+           r-rocr
+           r-varselrf))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/a4Classif/")
     (synopsis "Automated Affymetrix array analysis classification package")
     (description
@@ -7614,21 +7954,20 @@ Affymetrix arrays.")
 (define-public r-a4preproc
   (package
     (name "r-a4preproc")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4Preproc" version))
        (sha256
         (base32
-         "1jibm2f5glzsrvl64hxc5sf59d4w6ry0f663p619hfr44mi1mpri"))))
+         "1qzr54w1qys1ppd71i5b57503dijfnnbn516a2mfk5l9l7wr728d"))))
     (properties `((upstream-name . "a4Preproc")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)))
+     (list r-biobase r-biocgenerics))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/a4Preproc/")
     (synopsis "Automated Affymetrix array analysis preprocessing package")
     (description
@@ -7639,20 +7978,20 @@ is used for preprocessing the arrays.")
 (define-public r-a4reporting
   (package
     (name "r-a4reporting")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4Reporting" version))
        (sha256
         (base32
-         "09jjfby5znmg2fdkhpbinx2v21zrfa44qq7cylcn9ipffqx3pk86"))))
+         "1vyah71gm4ngsgy0y10cdxa9b1g810gqa5pbvb3krh5i6h35smwr"))))
     (properties `((upstream-name . "a4Reporting")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-xtable" ,r-xtable)))
+     (list r-xtable))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/a4Reporting/")
     (synopsis "Automated Affymetrix array analysis reporting package")
     (description
@@ -7663,27 +8002,27 @@ provides reporting features.")
 (define-public r-a4base
   (package
     (name "r-a4base")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4Base" version))
        (sha256
         (base32
-         "101w4i0w8n7qhki22qr8l8wk8w6zalzmcywqm2g4238qv7xbnr8p"))))
+         "0rddxnflvbc6z4sj2h8js8yfh0zhrrwj8fk00wicaqp4rkr5yaxy"))))
     (properties `((upstream-name . "a4Base")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-a4core" ,r-a4core)
-       ("r-a4preproc" ,r-a4preproc)
-       ("r-annaffy" ,r-annaffy)
-       ("r-biobase" ,r-biobase)
-       ("r-genefilter" ,r-genefilter)
-       ("r-glmnet" ,r-glmnet)
-       ("r-gplots" ,r-gplots)
-       ("r-limma" ,r-limma)
-       ("r-mpm" ,r-mpm)
-       ("r-multtest" ,r-multtest)))
+     (list r-a4core
+           r-a4preproc
+           r-annaffy
+           r-biobase
+           r-genefilter
+           r-glmnet
+           r-gplots
+           r-limma
+           r-mpm
+           r-multtest))
     (home-page "https://bioconductor.org/packages/a4Base/")
     (synopsis "Automated Affymetrix array analysis base package")
     (description
@@ -7694,21 +8033,17 @@ Affymetrix arrays.")
 (define-public r-a4
   (package
     (name "r-a4")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4" version))
        (sha256
         (base32
-         "0bwn185admy5k99fkd2dhhvy7x1f75r0mqn5k24dbbg0paw6nnr8"))))
+         "0mkgim93441zxhn4wmbin9ydl94srsawis0xwx479l0byj88n07m"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-a4base" ,r-a4base)
-       ("r-a4classif" ,r-a4classif)
-       ("r-a4core" ,r-a4core)
-       ("r-a4preproc" ,r-a4preproc)
-       ("r-a4reporting" ,r-a4reporting)))
+     (list r-a4base r-a4classif r-a4core r-a4preproc r-a4reporting))
     (home-page "https://bioconductor.org/packages/a4/")
     (synopsis "Automated Affymetrix array analysis umbrella package")
     (description
@@ -7719,39 +8054,39 @@ Affymetrix arrays.")
 (define-public r-abseqr
   (package
     (name "r-abseqr")
-    (version "1.10.0")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "abseqR" version))
        (sha256
         (base32
-         "1xvk84gd1lfq1icrfwwd6y79zywrisfnc3knprigzzax31aks32c"))))
+         "1v9g71x689ly107c0qmc5iv8qk63nn6lp7yd03jf7hlcafmvqsvz"))))
     (properties `((upstream-name . "abseqR")))
     (build-system r-build-system)
     (inputs
-     `(("pandoc" ,pandoc)))
-    (propagated-inputs
-     `(("r-biocparallel" ,r-biocparallel)
-       ("r-biocstyle" ,r-biocstyle)
-       ("r-circlize" ,r-circlize)
-       ("r-flexdashboard" ,r-flexdashboard)
-       ("r-ggcorrplot" ,r-ggcorrplot)
-       ("r-ggdendro" ,r-ggdendro)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-knitr" ,r-knitr)
-       ("r-plotly" ,r-plotly)
-       ("r-plyr" ,r-plyr)
-       ("r-png" ,r-png)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-stringr" ,r-stringr)
-       ("r-vegan" ,r-vegan)
-       ("r-venndiagram" ,r-venndiagram)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list pandoc))
+    (propagated-inputs
+     (list r-biocparallel
+           r-biocstyle
+           r-circlize
+           r-flexdashboard
+           r-ggcorrplot
+           r-ggdendro
+           r-ggplot2
+           r-gridextra
+           r-knitr
+           r-plotly
+           r-plyr
+           r-png
+           r-rcolorbrewer
+           r-reshape2
+           r-rmarkdown
+           r-stringr
+           r-vegan
+           r-venndiagram))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/malhamdoosh/abseqR")
     (synopsis "Reporting and data analysis for Rep-Seq datasets of antibody libraries")
     (description
@@ -7767,21 +8102,19 @@ further downstream analysis on its output.")
 (define-public r-bacon
   (package
     (name "r-bacon")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bacon" version))
        (sha256
         (base32
-         "1yp0675n1g8rxdjdd7w8al5c9jq96h0kfm8218mc50z0p2fasgbj"))))
+         "13dhma34j9ggryainn4x6qvd3hphpxks5gf0mysia00r9hhpwwlc"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocparallel" ,r-biocparallel)
-       ("r-ellipse" ,r-ellipse)
-       ("r-ggplot2" ,r-ggplot2)))
+     (list r-biocparallel r-ellipse r-ggplot2))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/bacon/")
     (synopsis "Controlling bias and inflation in association studies")
     (description
@@ -7794,22 +8127,18 @@ fitting a three-component normal mixture on z-scores.")
 (define-public r-rgadem
   (package
     (name "r-rgadem")
-    (version "2.40.0")
+    (version "2.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "rGADEM" version))
        (sha256
         (base32
-         "05drbhjqn5kik6k4h03vr3d2b6pv5rm65lsnkyx4caxxcdii4jzm"))))
+         "1v8xgqqv7m2kyc38x9ppwsv87ivll5ppd6z76zcxj5yspkkrqw3v"))))
     (properties `((upstream-name . "rGADEM")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-seqlogo" ,r-seqlogo)))
+     (list r-biostrings r-bsgenome r-genomicranges r-iranges r-seqlogo))
     (home-page "https://bioconductor.org/packages/rGADEM/")
     (synopsis "De novo sequence motif discovery")
     (description
@@ -7831,15 +8160,15 @@ genomic sequence data.")
     (properties `((upstream-name . "MotIV")))
     (build-system r-build-system)
     (inputs
-     `(("gsl" ,gsl)))
-    (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-lattice" ,r-lattice)
-       ("r-rgadem" ,r-rgadem)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list gsl))
+    (propagated-inputs
+     (list r-biocgenerics
+           r-biostrings
+           r-genomicranges
+           r-iranges
+           r-lattice
+           r-rgadem
+           r-s4vectors))
     (home-page "https://bioconductor.org/packages/MotIV/")
     (synopsis "Motif identification and validation")
     (description
@@ -7852,24 +8181,24 @@ distributions, modules and filter motifs.")
 (define-public r-motifdb
   (package
    (name "r-motifdb")
-   (version "1.34.0")
+   (version "1.36.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "MotifDb" version))
             (sha256
-             (base32 "04cmgg5mw1cqbg95zyfc2imykmdxyff16w26rq97xghcxwiq2b3z"))))
+             (base32 "0a2zg26zzk7bj5c33mbwl8dx9lh1hns8q8kwp09rbfjdichv7425"))))
    (properties `((upstream-name . "MotifDb")))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-biocgenerics" ,r-biocgenerics)
-      ("r-biostrings" ,r-biostrings)
-      ("r-genomicranges" ,r-genomicranges)
-      ("r-iranges" ,r-iranges)
-      ("r-rtracklayer" ,r-rtracklayer)
-      ("r-s4vectors" ,r-s4vectors)
-      ("r-splitstackshape" ,r-splitstackshape)))
+    (list r-biocgenerics
+          r-biostrings
+          r-genomicranges
+          r-iranges
+          r-rtracklayer
+          r-s4vectors
+          r-splitstackshape))
    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
    (home-page "https://www.bioconductor.org/packages/MotifDb/")
    (synopsis "Annotated collection of protein-DNA binding sequence motifs")
    (description "This package provides more than 2000 annotated position
@@ -7879,35 +8208,35 @@ frequency matrices from nine public sources, for multiple organisms.")
 (define-public r-motifbreakr
   (package
    (name "r-motifbreakr")
-   (version "2.6.1")
+   (version "2.8.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "motifbreakR" version))
             (sha256
-             (base32 "1n6v8a7c27aswmbrlcwcpghf27aplkc6nn923imglc3c0sh2lkrz"))))
+             (base32 "0lrgy64sv2ma6kylp4lsbwkg6ci1kn6qkk0cvzw3m4k3bgia1npj"))))
    (properties `((upstream-name . "motifbreakR")))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-biocgenerics" ,r-biocgenerics)
-      ("r-biocparallel" ,r-biocparallel)
-      ("r-biostrings" ,r-biostrings)
-      ("r-bsgenome" ,r-bsgenome)
-      ("r-genomeinfodb" ,r-genomeinfodb)
-      ("r-genomicranges" ,r-genomicranges)
-      ("r-grimport" ,r-grimport)
-      ("r-gviz" ,r-gviz)
-      ("r-iranges" ,r-iranges)
-      ("r-matrixstats" ,r-matrixstats)
-      ("r-motifdb" ,r-motifdb)
-      ("r-motifstack" ,r-motifstack)
-      ("r-rtracklayer" ,r-rtracklayer)
-      ("r-s4vectors" ,r-s4vectors)
-      ("r-stringr" ,r-stringr)
-      ("r-summarizedexperiment" ,r-summarizedexperiment)
-      ("r-tfmpvalue" ,r-tfmpvalue)
-      ("r-variantannotation" ,r-variantannotation)))
+    (list r-biocgenerics
+          r-biocparallel
+          r-biostrings
+          r-bsgenome
+          r-genomeinfodb
+          r-genomicranges
+          r-grimport
+          r-gviz
+          r-iranges
+          r-matrixstats
+          r-motifdb
+          r-motifstack
+          r-rtracklayer
+          r-s4vectors
+          r-stringr
+          r-summarizedexperiment
+          r-tfmpvalue
+          r-variantannotation))
    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
    (home-page "https://www.bioconductor.org/packages/motifbreakR/")
    (synopsis "Predicting disruptiveness of single nucleotide polymorphisms")
    (description "This package allows biologists to judge in the first place
@@ -7930,24 +8259,20 @@ Bioconductor.")
 (define-public r-motifstack
   (package
     (name "r-motifstack")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "motifStack" version))
        (sha256
         (base32
-         "0yn348kmw7v46iym913ncx4yh5nxzmba8bdys52s12ldgjja53gp"))))
+         "1ck6bbnrab8mbf70alfdsrcv6lq0fkvcy3klhcwyxxir7r9sgbaz"))))
     (properties `((upstream-name . "motifStack")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ade4" ,r-ade4)
-       ("r-biostrings" ,r-biostrings)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-xml" ,r-xml)))
+     (list r-ade4 r-biostrings r-ggplot2 r-htmlwidgets r-xml))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/motifStack/")
     (synopsis "Plot stacked logos for DNA, RNA and amino acid sequences")
     (description
@@ -7961,33 +8286,33 @@ type and symbol colors.")
 (define-public r-genomicscores
   (package
     (name "r-genomicscores")
-    (version "2.4.0")
+    (version "2.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GenomicScores" version))
        (sha256
         (base32
-         "1b8982fj0r7igj749wljsdfn3c985w8n3d5gbhr5rw73llfb8x6w"))))
+         "18fzi2qi95851ci7qrzwpb7v6fhwp6xi1d1vk11xbygpbvql5mls"))))
     (properties `((upstream-name . "GenomicScores")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationhub" ,r-annotationhub)
-       ("r-biobase" ,r-biobase)
-       ("r-biocfilecache" ,r-biocfilecache)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocmanager" ,r-biocmanager)
-       ("r-biostrings" ,r-biostrings)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-hdf5array" ,r-hdf5array)
-       ("r-iranges" ,r-iranges)
-       ("r-rhdf5" ,r-rhdf5)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-xml" ,r-xml)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationhub
+           r-biobase
+           r-biocfilecache
+           r-biocgenerics
+           r-biocmanager
+           r-biostrings
+           r-delayedarray
+           r-genomeinfodb
+           r-genomicranges
+           r-hdf5array
+           r-iranges
+           r-rhdf5
+           r-s4vectors
+           r-xml))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/rcastelo/GenomicScores/")
     (synopsis "Work with genome-wide position-specific scores")
     (description
@@ -7998,37 +8323,37 @@ position-specific scores within R and Bioconductor.")
 (define-public r-atacseqqc
   (package
     (name "r-atacseqqc")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ATACseqQC" version))
        (sha256
         (base32
-         "168g3xkhjzrfjpa1ynifdyfhsxx3rpyrbybsarlzr9kslw1cdkxl"))))
+         "0i1i3bfkp1xsjdl1nd56mlh66qz3aasd1hp09d4i31njz2f9znwn"))))
     (properties `((upstream-name . "ATACseqQC")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-chippeakanno" ,r-chippeakanno)
-       ("r-edger" ,r-edger)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-genomicscores" ,r-genomicscores)
-       ("r-iranges" ,r-iranges)
-       ("r-kernsmooth" ,r-kernsmooth)
-       ("r-limma" ,r-limma)
-       ("r-motifstack" ,r-motifstack)
-       ("r-preseqr" ,r-preseqr)
-       ("r-randomforest" ,r-randomforest)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biocgenerics
+           r-biostrings
+           r-bsgenome
+           r-chippeakanno
+           r-edger
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicranges
+           r-genomicscores
+           r-iranges
+           r-kernsmooth
+           r-limma
+           r-motifstack
+           r-preseqr
+           r-randomforest
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/ATACseqQC/")
     (synopsis "ATAC-seq quality control")
     (description
@@ -8045,26 +8370,26 @@ footprints.")
 (define-public r-gofuncr
   (package
     (name "r-gofuncr")
-    (version "1.12.0")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GOfuncR" version))
        (sha256
         (base32
-         "0lp2gmjlsk1yqxim5pi26i27iijw11lrcxmji7ynlag359yfnynd"))))
+         "08n1d03i4l2dl47axmrziiypi83yffndf0ww1b32skyjm2r0x127"))))
     (properties `((upstream-name . "GOfuncR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-gtools" ,r-gtools)
-       ("r-iranges" ,r-iranges)
-       ("r-mapplots" ,r-mapplots)
-       ("r-rcpp" ,r-rcpp)
-       ("r-vioplot" ,r-vioplot)))
+     (list r-annotationdbi
+           r-genomicranges
+           r-gtools
+           r-iranges
+           r-mapplots
+           r-rcpp
+           r-vioplot))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/GOfuncR/")
     (synopsis "Gene ontology enrichment using FUNC")
     (description
@@ -8094,25 +8419,25 @@ annotations and ontologies.")
 (define-public r-abaenrichment
   (package
     (name "r-abaenrichment")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ABAEnrichment" version))
        (sha256
         (base32
-         "15v5n6d3mnj9d86swkh9agfvrsd065dldaywm1adwmkhhk525wmd"))))
+         "1sp3f72rzlr822dxx42bswynrwwfx6f520hdhfdikqp13p2y4044"))))
     (properties `((upstream-name . "ABAEnrichment")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abadata" ,r-abadata)
-       ("r-data-table" ,r-data-table)
-       ("r-gofuncr" ,r-gofuncr)
-       ("r-gplots" ,r-gplots)
-       ("r-gtools" ,r-gtools)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-abadata
+           r-data-table
+           r-gofuncr
+           r-gplots
+           r-gtools
+           r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/ABAEnrichment/")
     (synopsis "Gene expression enrichment in human brain regions")
     (description
@@ -8138,8 +8463,7 @@ the brain using an ontology, both provided by the Allen Brain Atlas project.")
      `((upstream-name . "AnnotationFuncs")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-dbi" ,r-dbi)))
+     (list r-annotationdbi r-dbi))
     (home-page "https://www.iysik.com/r/annotationfuncs")
     (synopsis "Annotation translation functions")
     (description
@@ -8151,18 +8475,18 @@ different identifieres using the Biocore Data Team data-packages (e.g.
 (define-public r-annotationtools
   (package
     (name "r-annotationtools")
-    (version "1.66.0")
+    (version "1.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "annotationTools" version))
        (sha256
         (base32
-         "18dd8saqx17fplvv5sbfz4p9fy7ksy3n9348rd3qlczihcrh9i3w"))))
+         "0grdswbf8nj0qwl0n5pqsir9242dry85j6m688j81gwwjgmzidvh"))))
     (properties
      `((upstream-name . "annotationTools")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-biobase" ,r-biobase)))
+    (propagated-inputs (list r-biobase))
     (home-page "https://bioconductor.org/packages/annotationTools/")
     (synopsis "Annotate microarrays and perform gene expression analyses")
     (description
@@ -8176,39 +8500,39 @@ text files).")
 (define-public r-allelicimbalance
   (package
     (name "r-allelicimbalance")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AllelicImbalance" version))
        (sha256
         (base32
-         "1mn6975npncmfjlpjs3s2pgsrm32xgvnyl2vh1922l6vra97dkrc"))))
+         "1s6arjd0nxgxyqy7vhqcb78k0ss7vwrhv41pm346hs1nyr5dkzaq"))))
     (properties
      `((upstream-name . "AllelicImbalance")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-gridextra" ,r-gridextra)
-       ("r-gviz" ,r-gviz)
-       ("r-iranges" ,r-iranges)
-       ("r-lattice" ,r-lattice)
-       ("r-latticeextra" ,r-latticeextra)
-       ("r-nlme" ,r-nlme)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-seqinr" ,r-seqinr)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-variantannotation" ,r-variantannotation)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationdbi
+           r-biocgenerics
+           r-biostrings
+           r-bsgenome
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicfeatures
+           r-genomicranges
+           r-gridextra
+           r-gviz
+           r-iranges
+           r-lattice
+           r-latticeextra
+           r-nlme
+           r-rsamtools
+           r-s4vectors
+           r-seqinr
+           r-summarizedexperiment
+           r-variantannotation))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/pappewaio/AllelicImbalance")
     (synopsis "Investigate allele-specific expression")
     (description
@@ -8219,27 +8543,27 @@ investigation using RNA-seq data.")
 (define-public r-aucell
   (package
     (name "r-aucell")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AUCell" version))
        (sha256
         (base32
-         "0qdac3qalcki20r90k40cc8d0lfywzn9pffg9d719yvs7nrsfdjr"))))
+         "1lclf8hkhrm6g5fp8yhvjxnwgf8p0j9ffxsmcybz4rjvmwkiz5dp"))))
     (properties `((upstream-name . "AUCell")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-data-table" ,r-data-table)
-       ("r-gseabase" ,r-gseabase)
-       ("r-mixtools" ,r-mixtools)
-       ("r-r-utils" ,r-r-utils)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-shiny" ,r-shiny)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+     (list r-biocgenerics
+           r-data-table
+           r-gseabase
+           r-mixtools
+           r-r-utils
+           r-s4vectors
+           r-shiny
+           r-summarizedexperiment))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/AUCell/")
     (synopsis "Analysis of gene set activity in single-cell RNA-seq data")
     (description
@@ -8258,29 +8582,29 @@ needed.")
 (define-public r-ebimage
   (package
     (name "r-ebimage")
-    (version "4.34.0")
+    (version "4.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "EBImage" version))
        (sha256
         (base32
-         "1z3cxxg593d66nczz5hh2hdj1d87wc0lxrzc5sn6bp43n351q8h3"))))
+         "030vpn55ppfqq4408c4db4w40d17x1yq6zajb11p2glikvm1q619"))))
     (properties `((upstream-name . "EBImage")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-fftwtools" ,r-fftwtools)
-       ("r-htmltools" ,r-htmltools)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-jpeg" ,r-jpeg)
-       ("r-locfit" ,r-locfit)
-       ("r-png" ,r-png)
-       ("r-rcurl" ,r-rcurl)
-       ("r-tiff" ,r-tiff)))
+     (list r-abind
+           r-biocgenerics
+           r-fftwtools
+           r-htmltools
+           r-htmlwidgets
+           r-jpeg
+           r-locfit
+           r-png
+           r-rcurl
+           r-tiff))
     (native-inputs
-     `(("r-knitr" ,r-knitr))) ; for vignettes
+     (list r-knitr)) ; for vignettes
     (home-page "https://github.com/aoles/EBImage")
     (synopsis "Image processing and analysis toolbox for R")
     (description
@@ -8297,28 +8621,27 @@ visualization with image data.")
 (define-public r-yamss
   (package
     (name "r-yamss")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "yamss" version))
        (sha256
         (base32
-         "1al615x778h17jqiyhiyf6djaq9iygs1hlbrna6y4xc0f2kvgxld"))))
+         "141hbryifm6na5shjyrbjwwksqnl75kqp1m2zl03l9sjqm0kapab"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-data-table" ,r-data-table)
-       ("r-ebimage" ,r-ebimage)
-       ("r-iranges" ,r-iranges)
-       ("r-limma" ,r-limma)
-       ("r-matrix" ,r-matrix)
-       ("r-mzr" ,r-mzr)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment"
-        ,r-summarizedexperiment)))
+     (list r-biocgenerics
+           r-data-table
+           r-ebimage
+           r-iranges
+           r-limma
+           r-matrix
+           r-mzr
+           r-s4vectors
+           r-summarizedexperiment))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/hansenlab/yamss")
     (synopsis "Tools for high-throughput metabolomics")
     (description
@@ -8331,22 +8654,19 @@ analysis.")
 (define-public r-gtrellis
   (package
     (name "r-gtrellis")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "gtrellis" version))
        (sha256
         (base32
-         "0l5271cpzjlm4m0v6xcdg2vxlbhn53x1fd59ynb9jwll93av5h1f"))))
+         "0q2lyb8p1xhqqhw4q1br4r8mwq06mjws8iwbbilkngvs3brbmrzl"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-circlize" ,r-circlize)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-getoptlong" ,r-getoptlong)
-       ("r-iranges" ,r-iranges)))
+     (list r-circlize r-genomicranges r-getoptlong r-iranges))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/jokergoo/gtrellis")
     (synopsis "Genome level Trellis layout")
     (description
@@ -8360,33 +8680,33 @@ genomic categories and to add self-defined graphics in the plot.")
 (define-public r-somaticsignatures
   (package
     (name "r-somaticsignatures")
-    (version "2.28.0")
+    (version "2.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "SomaticSignatures" version))
        (sha256
         (base32
-         "0jr11c9hz7m49xc8pi6xrr5fhbv68vafvqpzhr0pmm51vvr1vfs9"))))
+         "1dxzfkvljnydv7kfybfa52dwcbkkci2r8gjspjf90k2bxf10phql"))))
     (properties
      `((upstream-name . "SomaticSignatures")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biostrings" ,r-biostrings)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggbio" ,r-ggbio)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-iranges" ,r-iranges)
-       ("r-nmf" ,r-nmf)
-       ("r-pcamethods" ,r-pcamethods)
-       ("r-proxy" ,r-proxy)
-       ("r-reshape2" ,r-reshape2)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-variantannotation" ,r-variantannotation)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biobase
+           r-biostrings
+           r-genomeinfodb
+           r-genomicranges
+           r-ggbio
+           r-ggplot2
+           r-iranges
+           r-nmf
+           r-pcamethods
+           r-proxy
+           r-reshape2
+           r-s4vectors
+           r-variantannotation))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/juliangehring/SomaticSignatures")
     (synopsis "Somatic signatures")
     (description
@@ -8399,42 +8719,42 @@ decomposition algorithms.")
 (define-public r-yapsa
   (package
     (name "r-yapsa")
-    (version "1.18.0")
+    (version "1.19.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "YAPSA" version))
        (sha256
         (base32
-         "1xfkgjlm0rxz82qcaqzx95cwirxifd9dsswjg3zcqmz03v7a0gz2"))))
+         "0fgcbskz96p5815nywsnqv2gzn7g93m438hpd5rpg85srg4wrpdj"))))
     (properties `((upstream-name . "YAPSA")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biostrings" ,r-biostrings)
-       ("r-bsgenome-hsapiens-ucsc-hg19" ,r-bsgenome-hsapiens-ucsc-hg19)
-       ("r-circlize" ,r-circlize)
-       ("r-complexheatmap" ,r-complexheatmap)
-       ("r-corrplot" ,r-corrplot)
-       ("r-dendextend" ,r-dendextend)
-       ("r-doparallel" ,r-doparallel)
-       ("r-dplyr" ,r-dplyr)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-getoptlong" ,r-getoptlong)
-       ("r-ggbeeswarm" ,r-ggbeeswarm)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-gtrellis" ,r-gtrellis)
-       ("r-keggrest" ,r-keggrest)
-       ("r-limsolve" ,r-limsolve)
-       ("r-magrittr" ,r-magrittr)
-       ("r-pmcmr" ,r-pmcmr)
-       ("r-pracma" ,r-pracma)
-       ("r-reshape2" ,r-reshape2)
-       ("r-somaticsignatures" ,r-somaticsignatures)
-       ("r-variantannotation" ,r-variantannotation)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biostrings
+           r-bsgenome-hsapiens-ucsc-hg19
+           r-circlize
+           r-complexheatmap
+           r-corrplot
+           r-dendextend
+           r-doparallel
+           r-dplyr
+           r-genomeinfodb
+           r-genomicranges
+           r-getoptlong
+           r-ggbeeswarm
+           r-ggplot2
+           r-gridextra
+           r-gtrellis
+           r-keggrest
+           r-limsolve
+           r-magrittr
+           r-pmcmr
+           r-pracma
+           r-reshape2
+           r-somaticsignatures
+           r-variantannotation))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/YAPSA/")
     (synopsis "Yet another package for signature analysis")
     (description
@@ -8448,22 +8768,22 @@ provided.")
 (define-public r-gcrma
   (package
     (name "r-gcrma")
-    (version "2.64.0")
+    (version "2.66.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "gcrma" version))
        (sha256
         (base32
-         "1z4abw9s2hs3csnx25nli7fpvb3rh3l0swzl0wfqp087fcs78pxi"))))
+         "0h7dl4if6skbcqdjdzqyghyswhwpx7xvb54lffz4wdaxpabp3001"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-affy" ,r-affy)
-       ("r-affyio" ,r-affyio)
-       ("r-biobase" ,r-biobase)
-       ("r-biocmanager" ,r-biocmanager)
-       ("r-biostrings" ,r-biostrings)
-       ("r-xvector" ,r-xvector)))
+     (list r-affy
+           r-affyio
+           r-biobase
+           r-biocmanager
+           r-biostrings
+           r-xvector))
     (home-page "https://bioconductor.org/packages/gcrma/")
     (synopsis "Background adjustment using sequence information")
     (description
@@ -8494,11 +8814,7 @@ gene-specific binding is expected.")
          "04a11dsqd5y4b39nny94acnh0qhdazjc6d1803izza4vrgmw2csb"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-affy" ,r-affy)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-gcrma" ,r-gcrma)
-       ("r-genefilter" ,r-genefilter)))
+     (list r-affy r-biobase r-biocgenerics r-gcrma r-genefilter))
     (home-page "https://bioconductor.org/packages/simpleaffy/")
     (synopsis "Very simple high level analysis of Affymetrix data")
     (description
@@ -8522,7 +8838,7 @@ generating high resolution journal figures.")
          "18gphcjj15iivrahp52186bvdg07yd2dvrykfjdd4r1vyf33im96"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-simpleaffy" ,r-simpleaffy)))
+     (list r-simpleaffy))
     (home-page "https://bioconductor.org/packages/yaqcaffy/")
     (synopsis "Affymetrix quality control and reproducibility analysis")
     (description
@@ -8534,25 +8850,25 @@ chips with the MAQC reference datasets.")
 (define-public r-quantro
   (package
     (name "r-quantro")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "quantro" version))
        (sha256
         (base32
-         "1fkma2ic448h2lrlza8ipg65gpfsz4fhlxcnjpmzhhmzp2xi2p4a"))))
+         "1r2wbsndc0ji22ap27gbr1wy8icj3cjxwqlz1x0gvxkaj69mwsfq"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-doparallel" ,r-doparallel)
-       ("r-foreach" ,r-foreach)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-iterators" ,r-iterators)
-       ("r-minfi" ,r-minfi)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)))
+     (list r-biobase
+           r-doparallel
+           r-foreach
+           r-ggplot2
+           r-iterators
+           r-minfi
+           r-rcolorbrewer))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/quantro/")
     (synopsis "Test for when to use quantile normalization")
     (description
@@ -8567,29 +8883,29 @@ groups.")
 (define-public r-yarn
   (package
     (name "r-yarn")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "yarn" version))
        (sha256
         (base32
-         "1x07l255x52z6cgdc2j8285shqszhr034xm5686rp6d35vah55ji"))))
+         "0nk4qzrwjiv8q39lgil9x25bm3gpzrnhd37d7754kpxhs2fsmw9d"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biomart" ,r-biomart)
-       ("r-downloader" ,r-downloader)
-       ("r-edger" ,r-edger)
-       ("r-gplots" ,r-gplots)
-       ("r-limma" ,r-limma)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-preprocesscore" ,r-preprocesscore)
-       ("r-quantro" ,r-quantro)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-readr" ,r-readr)))
+     (list r-biobase
+           r-biomart
+           r-downloader
+           r-edger
+           r-gplots
+           r-limma
+           r-matrixstats
+           r-preprocesscore
+           r-quantro
+           r-rcolorbrewer
+           r-readr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/yarn/")
     (synopsis "Robust multi-condition RNA-Seq preprocessing and normalization")
     (description
@@ -8604,24 +8920,24 @@ large RNA-seq experiments.")
 (define-public r-roar
   (package
     (name "r-roar")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "roar" version))
        (sha256
         (base32
-         "0vp0n90rvjm8rzwkbrxa3fasb9val56bz2srz72xwsl3jzb5yk6w"))))
+         "0hqh4vsnxl2sn1bf6s6wxl2nskb40rhvrysdvb6dr60zkih3g347"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+     (list r-biocgenerics
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicranges
+           r-iranges
+           r-rtracklayer
+           r-s4vectors
+           r-summarizedexperiment))
     (home-page "https://github.com/vodkatad/roar/")
     (synopsis "Identify differential APA usage from RNA-seq alignments")
     (description
@@ -8644,17 +8960,17 @@ sites and alignments obtained from standard RNA-seq experiments.")
     (properties `((upstream-name . "XBSeq")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-deseq2" ,r-deseq2)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-locfit" ,r-locfit)
-       ("r-magrittr" ,r-magrittr)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-pracma" ,r-pracma)
-       ("r-roar" ,r-roar)))
+     (list r-biobase
+           r-deseq2
+           r-dplyr
+           r-ggplot2
+           r-locfit
+           r-magrittr
+           r-matrixstats
+           r-pracma
+           r-roar))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/Liuy12/XBSeq")
     (synopsis "Test for differential expression for RNA-seq data")
     (description
@@ -8672,19 +8988,19 @@ genes.")
 (define-public r-massspecwavelet
   (package
     (name "r-massspecwavelet")
-    (version "1.58.0")
+    (version "1.60.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MassSpecWavelet" version))
        (sha256
         (base32
-         "1cs32sig1yvqn9xs0cvhfpmkh2lbllx7aab80sz58x03wnx8v60z"))))
+         "1icqyxkx5a9y3wahkxpxngw85c7l4hih1ym9nwwn9qy93pnw1zi4"))))
     (properties
      `((upstream-name . "MassSpecWavelet")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-waveslim" ,r-waveslim)))
+     (list r-waveslim))
     (home-page "https://bioconductor.org/packages/MassSpecWavelet/")
     (synopsis "Mass spectrum processing by wavelet-based algorithms")
     (description
@@ -8696,34 +9012,35 @@ based on @dfn{Continuous Wavelet Transform} (CWT).")
 (define-public r-xcms
   (package
     (name "r-xcms")
-    (version "3.14.1")
+    (version "3.16.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "xcms" version))
        (sha256
         (base32
-         "1g8k90p0sbcb3rdrbldj5bcjp2piy5ldni4jplyr78vjpmrmvqk7"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-iranges" ,r-iranges)
-       ("r-lattice" ,r-lattice)
-       ("r-massspecwavelet" ,r-massspecwavelet)
-       ("r-mscoreutils" ,r-mscoreutils)
-       ("r-msnbase" ,r-msnbase)
-       ("r-mzr" ,r-mzr)
-       ("r-plyr" ,r-plyr)
-       ("r-protgenerics" ,r-protgenerics)
-       ("r-rann" ,r-rann)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-robustbase" ,r-robustbase)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+         "19kjyi6br9qp2pnp24shgbww3iqaaqxk9791w8w8qbd6sxijd143"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-biobase
+           r-biocgenerics
+           r-biocparallel
+           r-iranges
+           r-lattice
+           r-massspecwavelet
+           r-mscoreutils
+           r-msfeatures
+           r-msnbase
+           r-mzr
+           r-plyr
+           r-protgenerics
+           r-rann
+           r-rcolorbrewer
+           r-robustbase
+           r-s4vectors
+           r-summarizedexperiment))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/xcms/")
     (synopsis "LC/MS and GC/MS mass spectrometry data analysis")
     (description
@@ -8736,22 +9053,20 @@ data for high-throughput, untargeted analyte profiling.")
 (define-public r-wrench
   (package
     (name "r-wrench")
-    (version "1.10.0")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Wrench" version))
        (sha256
         (base32
-         "0yssmqayaryrc0asjjqxdipqdfg309llrzldx38jrfgdsza6bvs0"))))
+         "1vzv7sswijgb8nq58yrc19wlw2nnpjvans86fqqzs4p8wvq8j06n"))))
     (properties `((upstream-name . "Wrench")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-limma" ,r-limma)
-       ("r-locfit" ,r-locfit)
-       ("r-matrixstats" ,r-matrixstats)))
+     (list r-limma r-locfit r-matrixstats))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/HCBravoLab/Wrench")
     (synopsis "Wrench normalization for sparse count data")
     (description
@@ -8762,28 +9077,28 @@ that arising from 16s metagenomic surveys.")
 (define-public r-wiggleplotr
   (package
     (name "r-wiggleplotr")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "wiggleplotr" version))
        (sha256
         (base32
-         "13f3g6fcc29k0g21mhnypm3nc6qqjw867vamvfkdzynspsfb32ga"))))
+         "01y1rbmxjza7qx3q33k0r241if69hzkx9plgmj59wyji22lm7syi"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertthat" ,r-assertthat)
-       ("r-cowplot" ,r-cowplot)
-       ("r-dplyr" ,r-dplyr)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-iranges" ,r-iranges)
-       ("r-purrr" ,r-purrr)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-assertthat
+           r-cowplot
+           r-dplyr
+           r-genomeinfodb
+           r-genomicranges
+           r-ggplot2
+           r-iranges
+           r-purrr
+           r-rtracklayer
+           r-s4vectors))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/wiggleplotr/")
     (synopsis "Make read coverage plots from BigWig files")
     (description
@@ -8796,14 +9111,14 @@ visualization of exonic read coverage.")
 (define-public r-widgettools
   (package
     (name "r-widgettools")
-    (version "1.70.0")
+    (version "1.72.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "widgetTools" version))
        (sha256
         (base32
-         "186xgpgyfyi4angxhz6558lfpzvvszzlpyfr8xnbccs3gshk3db2"))))
+         "0jajfh78116wjfwbmzfvcbxswai4jj9ypzmfhs5j5iypaf8zff8j"))))
     (properties `((upstream-name . "widgetTools")))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/widgetTools/")
@@ -8817,27 +9132,26 @@ widgets in R.")
 (define-public r-webbioc
   (package
     (name "r-webbioc")
-    (version "1.64.0")
+    (version "1.66.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "webbioc" version))
        (sha256
         (base32
-         "1mpdw477j78s2nvlf2lzm6mdjcpamyyazjn060h9q3apawn6zajx"))))
+         "1r3rjvfhqbbzdhlslnc86kr2iip3xgvr81zpvcr8xv9mysgrln17"))))
     (build-system r-build-system)
     (inputs
-     `(("netpbm" ,netpbm)
-       ("perl" ,perl)))
-    (propagated-inputs
-     `(("r-affy" ,r-affy)
-       ("r-annaffy" ,r-annaffy)
-       ("r-biobase" ,r-biobase)
-       ("r-biocmanager" ,r-biocmanager)
-       ("r-gcrma" ,r-gcrma)
-       ("r-multtest" ,r-multtest)
-       ("r-qvalue" ,r-qvalue)
-       ("r-vsn" ,r-vsn)))
+     (list netpbm perl))
+    (propagated-inputs
+     (list r-affy
+           r-annaffy
+           r-biobase
+           r-biocmanager
+           r-gcrma
+           r-multtest
+           r-qvalue
+           r-vsn))
     (home-page "https://www.bioconductor.org/")
     (synopsis "Bioconductor web interface")
     (description
@@ -8850,25 +9164,25 @@ Currently only Affymetrix oligonucleotide analysis is supported.")
 (define-public r-zinbwave
   (package
     (name "r-zinbwave")
-    (version "1.14.1")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "zinbwave" version))
        (sha256
         (base32
-         "0xgjbk35wl1vjqyq4y5c7hna8hkgmf56xjaxcph9bs2q7mbdnqwf"))))
+         "05w95bnq63a339d8x4932k81ycqf825s3qwn98vr52v5g2hv46fq"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocparallel" ,r-biocparallel)
-       ("r-edger" ,r-edger)
-       ("r-genefilter" ,r-genefilter)
-       ("r-matrix" ,r-matrix)
-       ("r-singlecellexperiment" ,r-singlecellexperiment)
-       ("r-softimpute" ,r-softimpute)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+     (list r-biocparallel
+           r-edger
+           r-genefilter
+           r-matrix
+           r-singlecellexperiment
+           r-softimpute
+           r-summarizedexperiment))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/zinbwave")
     (synopsis "Zero-inflated negative binomial model for RNA-seq data")
     (description "This package implements a general and flexible zero-inflated
@@ -8883,24 +9197,20 @@ the data.")
 (define-public r-zfpkm
   (package
     (name "r-zfpkm")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "zFPKM" version))
        (sha256
         (base32
-         "1k7xaxr2gn26y8bps5l32g2axfhdn07nbk4q3qcx32d5jm75qkx2"))))
+         "0fk05vrmyyrhmkwi06lsi553mlpqj3fgwhk1kygz83iqv5z2vfw9"))))
     (properties `((upstream-name . "zFPKM")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-checkmate" ,r-checkmate)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-checkmate r-dplyr r-ggplot2 r-summarizedexperiment r-tidyr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/ronammar/zFPKM/")
     (synopsis "Functions to facilitate zFPKM transformations")
     (description
@@ -8912,20 +9222,22 @@ This algorithm is based on the publication by Hart et al., 2013 (Pubmed ID
 (define-public r-rbowtie2
   (package
     (name "r-rbowtie2")
-    (version "1.14.0")
+    (version "2.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rbowtie2" version))
        (sha256
         (base32
-         "0r5yqjal48xlcv5cidi7p3zwygvsllmv2zzkwkc9kfq083l2i4ih"))))
+         "0xpvrx2ak9x913sym4l46ycwbnmpcdwb3bf3dfd2gsp0krv8vh1x"))))
     (properties `((upstream-name . "Rbowtie2")))
     (build-system r-build-system)
+    (propagated-inputs
+     (list r-magrittr r-rsamtools))
     (inputs
-     `(("zlib" ,zlib)))
+     (list samtools zlib))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/Rbowtie2/")
     (synopsis "R wrapper for Bowtie2 and AdapterRemoval")
     (description
@@ -8937,24 +9249,24 @@ rapid adapter trimming, identification, and read merging.")
 (define-public r-progeny
   (package
     (name "r-progeny")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "progeny" version))
        (sha256
         (base32
-         "10vpjvl4wps857xiy8rpzr82jzdfbc5rgwh3ir3my26lfws4hfz8"))))
+         "0zhr5i5v87akzqjb6wid67nhg2icrw6w0awdy87x848c6c1i6j9y"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-gridextra" ,r-gridextra)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-biobase
+           r-dplyr
+           r-ggplot2
+           r-ggrepel
+           r-gridextra
+           r-tidyr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/saezlab/progeny")
     (synopsis "Pathway responsive gene activity inference")
     (description
@@ -8967,18 +9279,18 @@ expression\".")
 (define-public r-arrmnormalization
   (package
     (name "r-arrmnormalization")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ARRmNormalization" version))
        (sha256
         (base32
-         "0ni3vblcadhwxaq1pf1n9jn66cp3bqch68ww4c8zh19zagil2y7r"))))
+         "1ryqr3mpakjml0jhbk28k2z511sdl87wxdczxq1rwx98s0pc9mnh"))))
     (properties
      `((upstream-name . "ARRmNormalization")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-arrmdata" ,r-arrmdata)))
+    (propagated-inputs (list r-arrmdata))
     (home-page "https://bioconductor.org/packages/ARRmNormalization/")
     (synopsis "Adaptive robust regression normalization for methylation data")
     (description
@@ -8990,27 +9302,27 @@ Infinium HumanMethylation 450k assay.")
 (define-public r-biocfilecache
   (package
     (name "r-biocfilecache")
-    (version "2.0.0")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocFileCache" version))
        (sha256
         (base32
-         "0ymg4hmabk233qgassld62achjylm12rnidxbakfkx4dvvlbhxxv"))))
+         "11qayqmgv274hc4h1v222sma07wkxjm8002fl6w3yvi225zq1qc1"))))
     (properties `((upstream-name . "BiocFileCache")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-curl" ,r-curl)
-       ("r-dbi" ,r-dbi)
-       ("r-dbplyr" ,r-dbplyr)
-       ("r-dplyr" ,r-dplyr)
-       ("r-filelock" ,r-filelock)
-       ("r-httr" ,r-httr)
-       ("r-rappdirs" ,r-rappdirs)
-       ("r-rsqlite" ,r-rsqlite)))
+     (list r-curl
+           r-dbi
+           r-dbplyr
+           r-dplyr
+           r-filelock
+           r-httr
+           r-rappdirs
+           r-rsqlite))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/BiocFileCache/")
     (synopsis "Manage files across sessions")
     (description
@@ -9023,17 +9335,17 @@ and data files used across sessions.")
 (define-public r-iclusterplus
   (package
     (name "r-iclusterplus")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "iClusterPlus" version))
        (sha256
         (base32
-         "1haj25c4cmmjjvh181b41a9pvkh92f7k2w4ljn17iqg31vm45za1"))))
+         "0w6r2clk8wdnnnjmq3cspmxiq1c8vwprd66xmdrhcqzbjkpkdw2b"))))
     (properties `((upstream-name . "iClusterPlus")))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://bioconductor.org/packages/iClusterPlus/")
     (synopsis "Integrative clustering of multi-type genomic data")
     (description
@@ -9053,20 +9365,18 @@ Gaussian distributions.")
 (define-public r-rbowtie
   (package
     (name "r-rbowtie")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rbowtie" version))
        (sha256
         (base32
-         "0mfikbrs28q7r3lnsq0jma5x6nkrnm3q46242jh35w9c969jk5yy"))))
+         "0ardmryx6ac7v6n900a1klrrldvbmh7bxvy8ldz8rwid19h29ikr"))))
     (properties `((upstream-name . "Rbowtie")))
     (build-system r-build-system)
-    (inputs
-     `(("zlib" ,zlib)))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/Rbowtie/")
     (synopsis "R bowtie wrapper")
     (description
@@ -9078,33 +9388,33 @@ alignment tool.")
 (define-public r-sgseq
   (package
     (name "r-sgseq")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "SGSeq" version))
        (sha256
         (base32
-         "0i1yaw8h8gibakvaf1xd6nnjx2bsb2s9c0q74rbq9lm7haihivp6"))))
+         "15l0r6svs27k82dd472is26shwayz6rs5ylg5gpf3mldr7sa5kja"))))
     (properties `((upstream-name . "SGSeq")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-igraph" ,r-igraph)
-       ("r-iranges" ,r-iranges)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-runit" ,r-runit)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationdbi
+           r-biocgenerics
+           r-biostrings
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicfeatures
+           r-genomicranges
+           r-igraph
+           r-iranges
+           r-rsamtools
+           r-rtracklayer
+           r-runit
+           r-s4vectors
+           r-summarizedexperiment))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/SGSeq/")
     (synopsis "Splice event prediction and quantification from RNA-seq data")
     (description
@@ -9121,14 +9431,14 @@ interpretation.")
 (define-public r-rhisat2
   (package
     (name "r-rhisat2")
-    (version "1.8.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rhisat2" version))
        (sha256
         (base32
-         "1hqahh5h22mj2crqp6r9xnm111xmfgk39c100rcaziqrpdy5npk8"))))
+         "092rws9vjxgm2jpkbp6ign47zmillyyidnc7ylcbn4zr9j5lwv0y"))))
     (properties `((upstream-name . "Rhisat2")))
     (build-system r-build-system)
     (arguments
@@ -9144,11 +9454,9 @@ interpretation.")
                (("^CPP =.*") (which "g++")))
              #t)))))
     (propagated-inputs
-     `(("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-sgseq" ,r-sgseq)))
+     (list r-genomicfeatures r-genomicranges r-sgseq))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/fmicompbio/Rhisat2")
     (synopsis "R Wrapper for HISAT2 sequence aligner")
     (description
@@ -9161,37 +9469,36 @@ index.")
 (define-public r-quasr
   (package
     (name "r-quasr")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "QuasR" version))
        (sha256
         (base32
-         "1635ff11ahzjrh3cdcxrq5bgd100n444k7mc0maz0jx21vj8qqb1"))))
+         "0d292xgaq8d3cdpa9anabda03lis46xc29iw9c5k5i3sj7dcr4g5"))))
     (properties `((upstream-name . "QuasR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocmanager" ,r-biocmanager)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicfiles" ,r-genomicfiles)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-rbowtie" ,r-rbowtie)
-       ("r-rhtslib" ,r-rhtslib)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-shortread" ,r-shortread)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationdbi
+           r-biobase
+           r-biocgenerics
+           r-biocparallel
+           r-biostrings
+           r-bsgenome
+           r-genomeinfodb
+           r-genomicfeatures
+           r-genomicfiles
+           r-genomicranges
+           r-iranges
+           r-rbowtie
+           r-rhtslib
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors
+           r-shortread))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/QuasR/")
     (synopsis "Quantify and annotate short reads in R")
     (description
@@ -9204,37 +9511,37 @@ quantification of genomic regions of interest.")
 (define-public r-rqc
   (package
     (name "r-rqc")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rqc" version))
        (sha256
         (base32
-         "02hwj2vd003x0zf273ndnwh7kxy6wc3sz14d3kryp2w2aqjj826f"))))
+         "0hcxkrfja0gmd8r2llijdvaw2xiiplk037305inimz0qna6w2071"))))
     (properties `((upstream-name . "Rqc")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biocstyle" ,r-biocstyle)
-       ("r-biostrings" ,r-biostrings)
-       ("r-biovizbase" ,r-biovizbase)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicfiles" ,r-genomicfiles)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-iranges" ,r-iranges)
-       ("r-knitr" ,r-knitr)
-       ("r-markdown" ,r-markdown)
-       ("r-plyr" ,r-plyr)
-       ("r-rcpp" ,r-rcpp)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-shiny" ,r-shiny)
-       ("r-shortread" ,r-shortread)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biocgenerics
+           r-biocparallel
+           r-biocstyle
+           r-biostrings
+           r-biovizbase
+           r-genomicalignments
+           r-genomicfiles
+           r-ggplot2
+           r-iranges
+           r-knitr
+           r-markdown
+           r-plyr
+           r-rcpp
+           r-reshape2
+           r-rsamtools
+           r-s4vectors
+           r-shiny
+           r-shortread))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/labbcb/Rqc")
     (synopsis "Quality control tool for high-throughput sequencing data")
     (description
@@ -9247,21 +9554,18 @@ graphics.")
 (define-public r-birewire
   (package
     (name "r-birewire")
-    (version "3.24.0")
+    (version "3.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiRewire" version))
        (sha256
         (base32
-         "0p6mr67mkw54490sv4dvkyh8l0xkpjfbqy532vi8l41i40qg3gry"))))
+         "0ki4rcwjgbixzy5q9s30ajx5zhpl18q50znrb60fchvl4hj9h93w"))))
     (properties `((upstream-name . "BiRewire")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-igraph" ,r-igraph)
-       ("r-matrix" ,r-matrix)
-       ("r-slam" ,r-slam)
-       ("r-tsne" ,r-tsne)))
+     (list r-igraph r-matrix r-slam r-tsne))
     (home-page "https://bioconductor.org/packages/release/bioc/html/BiRewire.html")
     (synopsis "Tools for randomization of bipartite graphs")
     (description
@@ -9286,9 +9590,7 @@ routines to analyse the resulting networks and their natural projections.")
          "00a1kcfmcgdbx6wpnhk45wm45bynhry5m93l9hm75j2rwyc4lnca"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-limma" ,r-limma)
-       ("r-mass" ,r-mass)))
+     (list r-biobase r-limma r-mass))
     (home-page "https://bioconductor.org/packages/birta")
     (synopsis "Bayesian inference of regulation of transcriptional activity")
     (description
@@ -9305,29 +9607,29 @@ Markov-Chain-Monte-Carlo is applied to sample the activity states.")
 (define-public r-multidataset
   (package
     (name "r-multidataset")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MultiDataSet" version))
        (sha256
         (base32
-         "1hyk40xgmy50rqxwdvc64d3pgz5vsg8vmlj5cp5m0n5m0adxcdfj"))))
+         "17asldnxqvp3sijx7nbi2lbbgnq4iq8z72qlg9080sm5lga1yy1s"))))
     (properties `((upstream-name . "MultiDataSet")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-iranges" ,r-iranges)
-       ("r-limma" ,r-limma)
-       ("r-qqman" ,r-qqman)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+     (list r-biobase
+           r-biocgenerics
+           r-genomicranges
+           r-ggplot2
+           r-ggrepel
+           r-iranges
+           r-limma
+           r-qqman
+           r-s4vectors
+           r-summarizedexperiment))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/MultiDataSet/")
     (synopsis "Implementation of MultiDataSet and ResultSet")
     (description
@@ -9342,20 +9644,19 @@ packages.")
 (define-public r-ropls
   (package
     (name "r-ropls")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ropls" version))
        (sha256
         (base32
-         "1j99kdywyljqzdcns5ysh590w4w8iiwzpddpfk5c8d4whax7vk5b"))))
+         "0mz5lrdsihx66sgx9klnvpxvw1mjjcbijcsdbgxwaimzl9k1kr05"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-multidataset" ,r-multidataset)))
+     (list r-biobase r-multidataset))
     (native-inputs
-     `(("r-knitr" ,r-knitr))) ; for vignettes
+     (list r-knitr)) ; for vignettes
     (home-page "https://dx.doi.org/10.1021/acs.jproteome.5b00354")
     (synopsis "Multivariate analysis and feature selection of omics data")
     (description
@@ -9380,23 +9681,19 @@ coefficients).")
 (define-public r-biosigner
   (package
     (name "r-biosigner")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biosigner" version))
        (sha256
         (base32
-         "159fbkymn92li7dinsm56nsacjp8wnhsljv7airgs9m82p8wd5sl"))))
+         "189018qahyw33dmg73wa7k4rp8nzrx6ai8f2dr6vhbpcdc1gnm0z"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-e1071" ,r-e1071)
-       ("r-multidataset" ,r-multidataset)
-       ("r-randomforest" ,r-randomforest)
-       ("r-ropls" ,r-ropls)))
+     (list r-biobase r-e1071 r-multidataset r-randomforest r-ropls))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/biosigner/")
     (synopsis "Signature discovery from omics data")
     (description
@@ -9413,31 +9710,31 @@ datasets.")
 (define-public r-annotatr
   (package
     (name "r-annotatr")
-    (version "1.18.1")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "annotatr" version))
        (sha256
         (base32
-         "1ls1qdfppcxysggi3bghrnspb5a3s40pm2mj4x0whc7c40cf90mg"))))
+         "1ha2wn56cdab4p3wdwv4xlqjsgl7sd8phbx71qbclrbdwpq2mi7i"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-annotationhub" ,r-annotationhub)
-       ("r-dplyr" ,r-dplyr)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-iranges" ,r-iranges)
-       ("r-readr" ,r-readr)
-       ("r-regioner" ,r-regioner)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-annotationdbi
+           r-annotationhub
+           r-dplyr
+           r-genomeinfodb
+           r-genomicfeatures
+           r-genomicranges
+           r-ggplot2
+           r-iranges
+           r-readr
+           r-regioner
+           r-reshape2
+           r-rtracklayer
+           r-s4vectors))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/annotatr/")
     (synopsis "Annotation of genomic regions to genomic annotations")
     (description
@@ -9454,19 +9751,19 @@ annotations.")
 (define-public r-rsubread
   (package
     (name "r-rsubread")
-    (version "2.6.4")
+    (version "2.8.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rsubread" version))
        (sha256
         (base32
-         "043m4512q73x6q529hqfgrap0fq5anvny4va085nafia06b805pi"))))
+         "0lpx0dp5570kbrq7v0g573axkhi00qrf38si59vmvnqxhmkvsixn"))))
     (properties `((upstream-name . "Rsubread")))
     (build-system r-build-system)
-    (inputs `(("zlib" ,zlib)))
+    (inputs (list zlib))
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)))
+     (list r-matrix))
     (home-page "https://bioconductor.org/packages/Rsubread/")
     (synopsis "Subread sequence alignment and counting for R")
     (description
@@ -9480,23 +9777,23 @@ and to both short and long sequence reads.")
 (define-public r-flowutils
   (package
     (name "r-flowutils")
-    (version "1.56.0")
+    (version "1.58.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowUtils" version))
        (sha256
         (base32
-         "1sdwgyvrsz0pp60zdfrcgb7bs8s87j7257p8ck813ydizc324x9w"))))
+         "0rgybkzbn8c3kpbz0ddghp1np0gka0cgiqvkk5jbnhlgf4s07161"))))
     (properties `((upstream-name . "flowUtils")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-corpcor" ,r-corpcor)
-       ("r-flowcore" ,r-flowcore)
-       ("r-graph" ,r-graph)
-       ("r-runit" ,r-runit)
-       ("r-xml" ,r-xml)))
+     (list r-biobase
+           r-corpcor
+           r-flowcore
+           r-graph
+           r-runit
+           r-xml))
     (home-page "https://github.com/jspidlen/flowUtils")
     (synopsis "Utilities for flow cytometry")
     (description
@@ -9506,21 +9803,19 @@ and to both short and long sequence reads.")
 (define-public r-consensusclusterplus
   (package
     (name "r-consensusclusterplus")
-    (version "1.56.0")
+    (version "1.58.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ConsensusClusterPlus" version))
        (sha256
         (base32
-         "163nr50nyvwrsajmm0cgxp70pqk61mgw0k7ams694hcb42162j8b"))))
+         "13z43qbk9z7mvy8v8k185m6n020i6ahb18pm4q88rs75qlklzdkr"))))
     (properties
      `((upstream-name . "ConsensusClusterPlus")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-all" ,r-all)
-       ("r-biobase" ,r-biobase)
-       ("r-cluster" ,r-cluster)))
+     (list r-all r-biobase r-cluster))
     (home-page "https://bioconductor.org/packages/ConsensusClusterPlus")
     (synopsis "Clustering algorithm")
     (description
@@ -9531,25 +9826,25 @@ cluster count and membership by stability evidence in unsupervised analysis.")
 (define-public r-cytolib
   (package
     (name "r-cytolib")
-    (version "2.4.0")
+    (version "2.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "cytolib" version))
        (sha256
         (base32
-         "0wl7zqwv0i38dfzqfsz40n3mcbxi38ffn1rbd5pm9s7hq16zr4nv"))))
+         "01r5dfjil1i526kb5gj9c8x9agi90x0bh7lzykbpn0g6s2hznbzi"))))
     (properties `((upstream-name . "cytolib")))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rcppparallel" ,r-rcppparallel)
-       ("r-rhdf5lib" ,r-rhdf5lib)
-       ("r-rprotobuflib" ,r-rprotobuflib)))
+     (list r-bh
+           r-rcpp
+           r-rcpparmadillo
+           r-rcppparallel
+           r-rhdf5lib
+           r-rprotobuflib))
     (home-page "https://bioconductor.org/packages/cytolib/")
     (synopsis "C++ infrastructure for working with gated cytometry")
     (description
@@ -9560,28 +9855,28 @@ interact with gated cytometry data.")
 (define-public r-flowcore
   (package
     (name "r-flowcore")
-    (version "2.4.0")
+    (version "2.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowCore" version))
        (sha256
         (base32
-         "13xpbkxi53rxmhvpdiy6bydmhicmxd2gi96d9c1qx4lkss2f14nc"))))
+         "0zbd2hrdbb6r0np6nd3ab8nlcf9l57vcwnnhbqkbas8y0c2i2mwp"))))
     (properties `((upstream-name . "flowCore")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-cytolib" ,r-cytolib)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rprotobuflib" ,r-rprotobuflib)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-bh
+           r-biobase
+           r-biocgenerics
+           r-cytolib
+           r-matrixstats
+           r-rcpp
+           r-rcpparmadillo
+           r-rprotobuflib
+           r-s4vectors))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/flowCore")
     (synopsis "Basic structures for flow cytometry data")
     (description
@@ -9592,21 +9887,18 @@ with flow cytometry data.")
 (define-public r-flowmeans
   (package
     (name "r-flowmeans")
-    (version "1.52.0")
+    (version "1.54.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowMeans" version))
        (sha256
         (base32
-         "1awskkq48qhv4v9glxgfqi0kgwqd62fbj641k4vvxfcwsf2c7bfg"))))
+         "0iy8hvi0inj1ylhdx6q4mya9k55iazprz6fdrnq1mxb2iyndzsl6"))))
     (properties `((upstream-name . "flowMeans")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-feature" ,r-feature)
-       ("r-flowcore" ,r-flowcore)
-       ("r-rrcov" ,r-rrcov)))
+     (list r-biobase r-feature r-flowcore r-rrcov))
     (home-page "https://bioconductor.org/packages/flowMeans")
     (synopsis "Non-parametric flow cytometry data gating")
     (description
@@ -9618,27 +9910,27 @@ change point detection.")
 (define-public r-ncdfflow
   (package
     (name "r-ncdfflow")
-    (version "2.38.0")
+    (version "2.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ncdfFlow" version))
        (sha256
         (base32
-         "1lm88qnfv6rnnr7wmgbvwyj272imjjjn7h3agxqqzsbmn8vyrnf0"))))
+         "1c6wb2x24ydqp5nxrx6bhj6f13x9djfy9awkc7zn63xkag7mvvar"))))
     (properties `((upstream-name . "ncdfFlow")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-flowcore" ,r-flowcore)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rhdf5lib" ,r-rhdf5lib)
-       ("r-zlibbioc" ,r-zlibbioc)))
+     (list r-bh
+           r-biobase
+           r-biocgenerics
+           r-flowcore
+           r-rcpp
+           r-rcpparmadillo
+           r-rhdf5lib
+           r-zlibbioc))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/ncdfFlow/")
     (synopsis "HDF5 based storage for flow cytometry data")
     (description
@@ -9649,30 +9941,30 @@ manipulation of flow cytometry data.")
 (define-public r-ggcyto
   (package
     (name "r-ggcyto")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ggcyto" version))
        (sha256
         (base32
-         "0jd6m84m4znnpix4bcgdby7mnflsn206f5x2vw9n8rxnwzx77wpg"))))
+         "17dnmsa92gc2za36c3klgd7rklqlxrhkzs5ksnrc1am6a4knc0p1"))))
     (properties `((upstream-name . "ggcyto")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-flowcore" ,r-flowcore)
-       ("r-flowworkspace" ,r-flowworkspace)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-hexbin" ,r-hexbin)
-       ("r-ncdfflow" ,r-ncdfflow)
-       ("r-plyr" ,r-plyr)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)))
+     (list r-data-table
+           r-flowcore
+           r-flowworkspace
+           r-ggplot2
+           r-gridextra
+           r-hexbin
+           r-ncdfflow
+           r-plyr
+           r-rcolorbrewer
+           r-rlang
+           r-scales))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/RGLab/ggcyto/issues")
     (synopsis "Visualize Cytometry data with ggplot")
     (description
@@ -9686,28 +9978,28 @@ statistics to the plot.")
 (define-public r-flowviz
   (package
     (name "r-flowviz")
-    (version "1.56.0")
+    (version "1.58.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowViz" version))
        (sha256
         (base32
-         "17x04xwyw2pp5zkhgvrmxkb8cbrv9wql6xhjsfpq0n6yd9dxqc1v"))))
+         "039sh7qn25gp2b34khs8dyrdpxyapsjlprrvxlz8f7dl8gmggl04"))))
     (properties `((upstream-name . "flowViz")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-flowcore" ,r-flowcore)
-       ("r-hexbin" ,r-hexbin)
-       ("r-idpmisc" ,r-idpmisc)
-       ("r-kernsmooth" ,r-kernsmooth)
-       ("r-lattice" ,r-lattice)
-       ("r-latticeextra" ,r-latticeextra)
-       ("r-mass" ,r-mass)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)))
+     (list r-biobase
+           r-flowcore
+           r-hexbin
+           r-idpmisc
+           r-kernsmooth
+           r-lattice
+           r-latticeextra
+           r-mass
+           r-rcolorbrewer))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/flowViz/")
     (synopsis "Visualization for flow cytometry")
     (description
@@ -9717,34 +10009,33 @@ statistics to the plot.")
 (define-public r-flowclust
   (package
     (name "r-flowclust")
-    (version "3.30.0")
+    (version "3.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowClust" version))
        (sha256
         (base32
-         "03xsmprrkxwkaksjlaxwp54mqfb3zlg6dbqhp87w78fwscisv76b"))))
+         "0ch7mkq40qcnxwgzy51vjdlwyzx4bvp03vpdm6dwjc6qy8a6qfzi"))))
     (properties `((upstream-name . "flowClust")))
     (build-system r-build-system)
     (arguments
      `(#:configure-flags
        (list "--configure-args=--enable-bundled-gsl=no")))
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-clue" ,r-clue)
-       ("r-corpcor" ,r-corpcor)
-       ("r-ellipse" ,r-ellipse)
-       ("r-flowcore" ,r-flowcore)
-       ("r-flowviz" ,r-flowviz)
-       ("r-graph" ,r-graph)
-       ("r-mnormt" ,r-mnormt)))
+     (list r-biobase
+           r-biocgenerics
+           r-clue
+           r-corpcor
+           r-ellipse
+           r-flowcore
+           r-flowviz
+           r-graph
+           r-mnormt))
     (inputs
-     `(("gsl" ,gsl)))
+     (list gsl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://bioconductor.org/packages/flowClust")
     (synopsis "Clustering for flow cytometry")
     (description
@@ -9757,14 +10048,14 @@ model with Box-Cox transformation.")
 (define-public r-rprotobuflib
   (package
     (name "r-rprotobuflib")
-    (version "2.4.0")
+    (version "2.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RProtoBufLib" version))
        (sha256
         (base32
-         "1hyds97ay4mn7nl830yh9v8mlasgsljsx5wsrhz2zsmbbyx6wbnb"))))
+         "04qlhbhdchpr35rdc6jc3y8fy6znnfrdlsb8am04agbrvpjgrx10"))))
     (properties `((upstream-name . "RProtoBufLib")))
     (build-system r-build-system)
     (arguments
@@ -9775,7 +10066,7 @@ model with Box-Cox transformation.")
              (with-directory-excursion "src"
                (invoke "tar" "xf" "protobuf-3.13.0.tar.gz")))))))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/RProtoBufLib/")
     (synopsis "C++ headers and static libraries of Protocol buffers")
     (description
@@ -9786,46 +10077,46 @@ for other R packages to compile and link against.")
 (define-public r-flowworkspace
   (package
     (name "r-flowworkspace")
-    (version "4.4.0")
+    (version "4.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowWorkspace" version))
        (sha256
         (base32
-         "1a9qb2dcvwgb3z0vdbbzn1rzy77d3da72kirs272344hdx9b2cx9"))))
+         "11ni7kgk9s1fz3lvg85s6r7x2fhk4m7cdpilji05ya12jsyr3fig"))))
     (properties `((upstream-name . "flowWorkspace")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-aws-s3" ,r-aws-s3)
-       ("r-aws-signature" ,r-aws-signature)
-       ("r-bh" ,r-bh)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-cytolib" ,r-cytolib)
-       ("r-data-table" ,r-data-table)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-digest" ,r-digest)
-       ("r-dplyr" ,r-dplyr)
-       ("r-flowcore" ,r-flowcore)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-graph" ,r-graph)
-       ("r-lattice" ,r-lattice)
-       ("r-latticeextra" ,r-latticeextra)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-ncdfflow" ,r-ncdfflow)
-       ("r-rbgl" ,r-rbgl)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rcppparallel" ,r-rcppparallel)
-       ("r-rgraphviz" ,r-rgraphviz)
-       ("r-rhdf5lib" ,r-rhdf5lib)
-       ("r-rprotobuflib" ,r-rprotobuflib)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-scales" ,r-scales)
-       ("r-xml" ,r-xml)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-aws-s3
+           r-aws-signature
+           r-bh
+           r-biobase
+           r-biocgenerics
+           r-cytolib
+           r-data-table
+           r-delayedarray
+           r-digest
+           r-dplyr
+           r-flowcore
+           r-ggplot2
+           r-graph
+           r-lattice
+           r-latticeextra
+           r-matrixstats
+           r-ncdfflow
+           r-rbgl
+           r-rcpp
+           r-rcpparmadillo
+           r-rcppparallel
+           r-rgraphviz
+           r-rhdf5lib
+           r-rprotobuflib
+           r-s4vectors
+           r-scales
+           r-xml))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/flowWorkspace/")
     (synopsis "Infrastructure for working with cytometry data")
     (description
@@ -9840,31 +10131,31 @@ matches the flowJo analysis.")
 (define-public r-flowstats
   (package
     (name "r-flowstats")
-    (version "4.4.0")
+    (version "4.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowStats" version))
        (sha256
         (base32
-         "1yr5m7qmhmm52c70z3d0zy4zgf0hja7r2ig9yljv5w86bzm962x6"))))
+         "0jjfq66m4lbpkynwxaparkd05znhp3jl9ccj37gyghly294x3rm9"))))
     (properties `((upstream-name . "flowStats")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-cluster" ,r-cluster)
-       ("r-fda" ,r-fda)
-       ("r-flowcore" ,r-flowcore)
-       ("r-flowviz" ,r-flowviz)
-       ("r-flowworkspace" ,r-flowworkspace)
-       ("r-kernsmooth" ,r-kernsmooth)
-       ("r-ks" ,r-ks)
-       ("r-lattice" ,r-lattice)
-       ("r-mass" ,r-mass)
-       ("r-ncdfflow" ,r-ncdfflow)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rrcov" ,r-rrcov)))
+     (list r-biobase
+           r-biocgenerics
+           r-cluster
+           r-fda
+           r-flowcore
+           r-flowviz
+           r-flowworkspace
+           r-kernsmooth
+           r-ks
+           r-lattice
+           r-mass
+           r-ncdfflow
+           r-rcolorbrewer
+           r-rrcov))
     (home-page "http://www.github.com/RGLab/flowStats")
     (synopsis "Statistical methods for the analysis of flow cytometry data")
     (description
@@ -9876,40 +10167,40 @@ package.")
 (define-public r-opencyto
   (package
     (name "r-opencyto")
-    (version "2.4.0")
+    (version "2.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "openCyto" version))
        (sha256
         (base32
-         "1par1d5pk1rjg15q7i5z5wqma7xg6fycb826a823wk8wr52a885x"))))
+         "11svr1lk383pkm4npwrnf3h37b3drjsmcwcgdbb45x8k2k95z2fm"))))
     (properties `((upstream-name . "openCyto")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-clue" ,r-clue)
-       ("r-data-table" ,r-data-table)
-       ("r-flowclust" ,r-flowclust)
-       ("r-flowcore" ,r-flowcore)
-       ("r-flowstats" ,r-flowstats)
-       ("r-flowviz" ,r-flowviz)
-       ("r-flowworkspace" ,r-flowworkspace)
-       ("r-graph" ,r-graph)
-       ("r-gtools" ,r-gtools)
-       ("r-ks" ,r-ks)
-       ("r-lattice" ,r-lattice)
-       ("r-mass" ,r-mass)
-       ("r-ncdfflow" ,r-ncdfflow)
-       ("r-plyr" ,r-plyr)
-       ("r-r-utils" ,r-r-utils)
-       ("r-rbgl" ,r-rbgl)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rrcov" ,r-rrcov)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biobase
+           r-biocgenerics
+           r-clue
+           r-data-table
+           r-flowclust
+           r-flowcore
+           r-flowstats
+           r-flowviz
+           r-flowworkspace
+           r-graph
+           r-gtools
+           r-ks
+           r-lattice
+           r-mass
+           r-ncdfflow
+           r-plyr
+           r-r-utils
+           r-rbgl
+           r-rcolorbrewer
+           r-rcpp
+           r-rrcov))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/openCyto")
     (synopsis "Hierarchical gating pipeline for flow cytometry data")
     (description
@@ -9920,49 +10211,48 @@ sequential way to mimic the manual gating strategy.")
 (define-public r-cytoml
   (package
     (name "r-cytoml")
-    (version "2.4.0")
+    (version "2.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "CytoML" version))
        (sha256
         (base32
-         "0ixy7mmnipk8wy61wz6qy7jfbc5zhs6p5iqaii8hdprjnb841ri7"))))
+         "16rgsc2dz5b8lm3ma8nh9wiknrdnvfjcsij7809rmcfs0gn1arcz"))))
     (properties `((upstream-name . "CytoML")))
     (build-system r-build-system)
     (inputs
-     `(("libxml2" ,libxml2)
-       ("zlib" ,zlib)))
-    (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-bh" ,r-bh)
-       ("r-biobase" ,r-biobase)
-       ("r-corpcor" ,r-corpcor)
-       ("r-cytolib" ,r-cytolib)
-       ("r-data-table" ,r-data-table)
-       ("r-dplyr" ,r-dplyr)
-       ("r-flowcore" ,r-flowcore)
-       ("r-flowworkspace" ,r-flowworkspace)
-       ("r-ggcyto" ,r-ggcyto)
-       ("r-graph" ,r-graph)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-lattice" ,r-lattice)
-       ("r-opencyto" ,r-opencyto)
-       ("r-plyr" ,r-plyr)
-       ("r-rbgl" ,r-rbgl)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rcppparallel" ,r-rcppparallel)
-       ("r-rgraphviz" ,r-rgraphviz)
-       ("r-rhdf5lib" ,r-rhdf5lib)
-       ("r-rprotobuflib" ,r-rprotobuflib)
-       ("r-runit" ,r-runit)
-       ("r-tibble" ,r-tibble)
-       ("r-xml" ,r-xml)
-       ("r-xml2" ,r-xml2)
-       ("r-yaml" ,r-yaml)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list libxml2 zlib))
+    (propagated-inputs
+     (list r-base64enc
+           r-bh
+           r-biobase
+           r-corpcor
+           r-cytolib
+           r-data-table
+           r-dplyr
+           r-flowcore
+           r-flowworkspace
+           r-ggcyto
+           r-graph
+           r-jsonlite
+           r-lattice
+           r-opencyto
+           r-plyr
+           r-rbgl
+           r-rcpp
+           r-rcpparmadillo
+           r-rcppparallel
+           r-rgraphviz
+           r-rhdf5lib
+           r-rprotobuflib
+           r-runit
+           r-tibble
+           r-xml
+           r-xml2
+           r-yaml))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/RGLab/CytoML")
     (synopsis "GatingML interface for cross platform cytometry data sharing")
     (description
@@ -9973,39 +10263,39 @@ standard to exchange gated cytometry data with other software platforms.")
 (define-public r-flowsom
   (package
     (name "r-flowsom")
-    (version "2.0.0")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "FlowSOM" version))
        (sha256
         (base32
-         "18h7p7g3w9imyd1c93jllgp4kd74z96cs85wcqfhmd26nx18hl82"))))
+         "062xrv8li2z849qa8mv5dhafqli6ziz099ikjfvi7v2fr7174p8f"))))
     (properties `((upstream-name . "FlowSOM")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-colorramps" ,r-colorramps)
-       ("r-consensusclusterplus" ,r-consensusclusterplus)
-       ("r-cytoml" ,r-cytoml)
-       ("r-dplyr" ,r-dplyr)
-       ("r-flowcore" ,r-flowcore)
-       ("r-flowworkspace" ,r-flowworkspace)
-       ("r-ggforce" ,r-ggforce)
-       ("r-ggnewscale" ,r-ggnewscale)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggpointdensity" ,r-ggpointdensity)
-       ("r-ggpubr" ,r-ggpubr)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-igraph" ,r-igraph)
-       ("r-magrittr" ,r-magrittr)
-       ("r-pheatmap" ,r-pheatmap)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rlang" ,r-rlang)
-       ("r-rtsne" ,r-rtsne)
-       ("r-scattermore" ,r-scattermore)
-       ("r-tidyr" ,r-tidyr)
-       ("r-xml" ,r-xml)))
+     (list r-biocgenerics
+           r-colorramps
+           r-consensusclusterplus
+           r-cytoml
+           r-dplyr
+           r-flowcore
+           r-flowworkspace
+           r-ggforce
+           r-ggnewscale
+           r-ggplot2
+           r-ggpointdensity
+           r-ggpubr
+           r-ggrepel
+           r-igraph
+           r-magrittr
+           r-pheatmap
+           r-rcolorbrewer
+           r-rlang
+           r-rtsne
+           r-scattermore
+           r-tidyr
+           r-xml))
     (home-page "https://bioconductor.org/packages/FlowSOM/")
     (synopsis "Visualize and interpret cytometry data")
     (description
@@ -10016,34 +10306,34 @@ self-organizing map clustering and minimal spanning trees.")
 (define-public r-mixomics
   (package
     (name "r-mixomics")
-    (version "6.16.3")
+    (version "6.18.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "mixOmics" version))
        (sha256
         (base32
-         "1x6dbw4q6p9vngm256fr96r9fjxk5nik5ivkhbl5a9zqyq8wagpa"))))
+         "1wpskrnl2bry9m4k2djhjddcd8gpwf51gp5c3si1y7qxja78ql9f"))))
     (properties `((upstream-name . "mixOmics")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocparallel" ,r-biocparallel)
-       ("r-corpcor" ,r-corpcor)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ellipse" ,r-ellipse)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-igraph" ,r-igraph)
-       ("r-lattice" ,r-lattice)
-       ("r-mass" ,r-mass)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-rarpack" ,r-rarpack)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-reshape2" ,r-reshape2)
-       ("r-tidyr" ,r-tidyr)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biocparallel
+           r-corpcor
+           r-dplyr
+           r-ellipse
+           r-ggrepel
+           r-ggplot2
+           r-gridextra
+           r-igraph
+           r-lattice
+           r-mass
+           r-matrixstats
+           r-rarpack
+           r-rcolorbrewer
+           r-reshape2
+           r-tidyr))
+    (native-inputs
+     (list r-knitr))
     (home-page "http://www.mixOmics.org")
     (synopsis "Multivariate methods for exploration of biological datasets")
     (description
@@ -10062,36 +10352,36 @@ delete entire rows with missing data.")
 (define-public r-depecher
   (package                              ;Source/Weave error
     (name "r-depecher")
-    (version "1.8.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DepecheR" version))
        (sha256
         (base32
-         "04vxc43p3kpsx0vksk2nwmy9p56h35z2mc8j9p2wm29zaz1y8j3p"))))
+         "1500jivij7zdycdd0i0b7mgp44w4z0hqnpzqbq8nhvzzdigic8x9"))))
     (properties `((upstream-name . "DepecheR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-beanplot" ,r-beanplot)
-       ("r-dosnow" ,r-dosnow)
-       ("r-dplyr" ,r-dplyr)
-       ("r-fnn" ,r-fnn)
-       ("r-foreach" ,r-foreach)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gmodels" ,r-gmodels)
-       ("r-gplots" ,r-gplots)
-       ("r-mass" ,r-mass)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-mixomics" ,r-mixomics)
-       ("r-moments" ,r-moments)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)
-       ("r-reshape2" ,r-reshape2)
-       ("r-robustbase" ,r-robustbase)
-       ("r-viridis" ,r-viridis)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-beanplot
+           r-dosnow
+           r-dplyr
+           r-fnn
+           r-foreach
+           r-ggplot2
+           r-gmodels
+           r-gplots
+           r-mass
+           r-matrixstats
+           r-mixomics
+           r-moments
+           r-rcpp
+           r-rcppeigen
+           r-reshape2
+           r-robustbase
+           r-viridis))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/DepecheR/")
     (synopsis "Identify traits of clusters in high-dimensional entities")
     (description
@@ -10108,31 +10398,31 @@ data, to only emphasize the data that actually matters.")
 (define-public r-rcistarget
   (package
     (name "r-rcistarget")
-    (version "1.12.0")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RcisTarget" version))
        (sha256
         (base32
-         "1yh0l11vnslgr6zsbpgc8mc4aa32zy34f5yrz98hkcdl53iw5y7f"))))
+         "1qarr7xd71kz1haccj65x7sc7pc4v6xpqcfa3rkyp2bk240gigi7"))))
     (properties `((upstream-name . "RcisTarget")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-arrow" ,r-arrow)
-       ("r-aucell" ,r-aucell)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-data-table" ,r-data-table)
-       ("r-dplyr" ,r-dplyr)
-       ("r-feather" ,r-feather)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-gseabase" ,r-gseabase)
-       ("r-r-utils" ,r-r-utils)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-tibble" ,r-tibble)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-arrow
+           r-aucell
+           r-biocgenerics
+           r-data-table
+           r-dplyr
+           r-feather
+           r-genomeinfodb
+           r-genomicranges
+           r-gseabase
+           r-r-utils
+           r-summarizedexperiment
+           r-tibble))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://aertslab.org/#scenic")
     (synopsis "Identify transcription factor binding motifs enriched on a gene list")
     (description
@@ -10150,23 +10440,19 @@ genes in the gene-set that are ranked above the leading edge).")
 (define-public r-chicago
   (package
     (name "r-chicago")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Chicago" version))
        (sha256
         (base32
-         "0dkwy6pfvzd7g4qmhjl24ypn92l78w1zy0ajhcxgg39f7zsq883x"))))
+         "0nz9v37p7zl8yw3ykdbsb3izcwgx349wvrhwfyyn9h3jxjfafngn"))))
     (properties `((upstream-name . "Chicago")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-delaporte" ,r-delaporte)
-       ("r-hmisc" ,r-hmisc)
-       ("r-mass" ,r-mass)
-       ("r-matrixstats" ,r-matrixstats)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-data-table r-delaporte r-hmisc r-mass r-matrixstats))
+    (native-inputs (list r-knitr))
     (home-page "https://bioconductor.org/packages/Chicago")
     (synopsis "Capture Hi-C analysis of genomic organization")
     (description
@@ -10176,40 +10462,40 @@ genes in the gene-set that are ranked above the leading edge).")
 (define-public r-cicero
   (package
     (name "r-cicero")
-    (version "1.10.0")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "cicero" version))
        (sha256
         (base32
-         "0kw16zf9004d1zlwsswhbcb7p77nabpd1fjagznff3zyan9fpdxf"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-assertthat" ,r-assertthat)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-data-table" ,r-data-table)
-       ("r-dplyr" ,r-dplyr)
-       ("r-fnn" ,r-fnn)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-glasso" ,r-glasso)
-       ("r-gviz" ,r-gviz)
-       ("r-igraph" ,r-igraph)
-       ("r-iranges" ,r-iranges)
-       ("r-matrix" ,r-matrix)
-       ("r-monocle" ,r-monocle)
-       ("r-plyr" ,r-plyr)
-       ("r-reshape2" ,r-reshape2)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-stringi" ,r-stringi)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-vgam" ,r-vgam)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+         "1fc69nkm2cwpr6gkfmra2ph0lrmw486chswp4pn8i70ia43fzdm7"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-assertthat
+           r-biobase
+           r-biocgenerics
+           r-data-table
+           r-dplyr
+           r-fnn
+           r-genomicranges
+           r-ggplot2
+           r-glasso
+           r-gviz
+           r-igraph
+           r-iranges
+           r-matrix
+           r-monocle
+           r-plyr
+           r-reshape2
+           r-s4vectors
+           r-stringi
+           r-stringr
+           r-tibble
+           r-tidyr
+           r-vgam))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/cicero/")
     (synopsis "Predict cis-co-accessibility from single-cell data")
     (description
@@ -10236,50 +10522,50 @@ accessibility data.")
           (base32
            "077yza93wdhi08n40md20jwk55k9lw1f3y0063qkk90cpz60wi0c"))))
       (propagated-inputs
-       `(("r-monocle3" ,r-monocle3)
-         ,@(alist-delete "r-monocle"
-                         (package-propagated-inputs r-cicero)))))))
+       (modify-inputs (package-propagated-inputs r-cicero)
+         (delete "r-monocle")
+         (prepend r-monocle3))))))
 
 (define-public r-circrnaprofiler
   (package
     (name "r-circrnaprofiler")
-    (version "1.6.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "circRNAprofiler" version))
        (sha256
         (base32
-         "1hif40vfg2lkbyf6abbkxbdm3b1biw6gxnh6ca2sydvi3y5l2ys2"))))
+         "0l83r9idhrha1m21vpnw917m5dlldji49zvx4d25m5g3ia1pkhpf"))))
     (properties
      `((upstream-name . "circRNAprofiler")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationhub" ,r-annotationhub)
-       ("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-bsgenome-hsapiens-ucsc-hg19" ,r-bsgenome-hsapiens-ucsc-hg19)
-       ("r-deseq2" ,r-deseq2)
-       ("r-dplyr" ,r-dplyr)
-       ("r-edger" ,r-edger)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gwascat" ,r-gwascat)
-       ("r-iranges" ,r-iranges)
-       ("r-magrittr" ,r-magrittr)
-       ("r-r-utils" ,r-r-utils)
-       ("r-readr" ,r-readr)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rlang" ,r-rlang)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-seqinr" ,r-seqinr)
-       ("r-stringi" ,r-stringi)
-       ("r-stringr" ,r-stringr)
-       ("r-universalmotif" ,r-universalmotif)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationhub
+           r-biostrings
+           r-bsgenome
+           r-bsgenome-hsapiens-ucsc-hg19
+           r-deseq2
+           r-dplyr
+           r-edger
+           r-genomeinfodb
+           r-genomicranges
+           r-ggplot2
+           r-gwascat
+           r-iranges
+           r-magrittr
+           r-r-utils
+           r-readr
+           r-reshape2
+           r-rlang
+           r-rtracklayer
+           r-s4vectors
+           r-seqinr
+           r-stringi
+           r-stringr
+           r-universalmotif))
+    (native-inputs
+     (list r-knitr))
     (home-page
      "https://github.com/Aufiero/circRNAprofiler")
     (synopsis
@@ -10309,21 +10595,21 @@ analysis, evolutionary conservation, biogenesis to functional analysis.")
          "0c4553rnxq7b1w451kcc3iwvak4qa5h2b43xmfw6ii8096zd1gbf"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-aucell" ,r-aucell)
-       ("r-data-table" ,r-data-table)
-       ("r-dplyr" ,r-dplyr)
-       ("r-dosnow" ,r-dosnow)
-       ("r-dt" ,r-dt)
-       ("r-feather" ,r-feather)
-       ("r-fitdistrplus" ,r-fitdistrplus)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-lda" ,r-lda)
-       ("r-matrix" ,r-matrix)
-       ("r-plyr" ,r-plyr)
-       ("r-rcistarget" ,r-rcistarget)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-aucell
+           r-data-table
+           r-dplyr
+           r-dosnow
+           r-dt
+           r-feather
+           r-fitdistrplus
+           r-genomicranges
+           r-ggplot2
+           r-lda
+           r-matrix
+           r-plyr
+           r-rcistarget
+           r-rtracklayer
+           r-s4vectors))
     (home-page "https://github.com/aertslab/cisTopic")
     (synopsis "Modelling of cis-regulatory topics from single cell epigenomics data")
     (description
@@ -10356,43 +10642,42 @@ cisTopics and explore the nature and regulatory proteins driving them.")
            "11cg9szlysnsjiaahda4k5v2vh4rxx27zhz53hafgaq9mdz0kgi2"))))
       (properties `((upstream-name . "cisTopic")))
       (propagated-inputs
-       `(("r-aucell" ,r-aucell)
-         ("r-data-table" ,r-data-table)
-         ("r-dosnow" ,r-dosnow)
-         ("r-dplyr" ,r-dplyr)
-         ("r-dt" ,r-dt)
-         ("r-feather" ,r-feather)
-         ("r-fitdistrplus" ,r-fitdistrplus)
-         ("r-genomicranges" ,r-genomicranges)
-         ("r-ggplot2" ,r-ggplot2)
-         ("r-lda" ,r-lda)
-         ("r-matrix" ,r-matrix)
-         ("r-plyr" ,r-plyr)
-         ("r-rcistarget" ,r-rcistarget)
-         ("r-rtracklayer" ,r-rtracklayer)
-         ("r-s4vectors" ,r-s4vectors)
-         ("r-text2vec" ,r-text2vec)))
+       (list r-aucell
+             r-data-table
+             r-dosnow
+             r-dplyr
+             r-dt
+             r-feather
+             r-fitdistrplus
+             r-genomicranges
+             r-ggplot2
+             r-lda
+             r-matrix
+             r-plyr
+             r-rcistarget
+             r-rtracklayer
+             r-s4vectors
+             r-text2vec))
       (native-inputs
-       `(("r-knitr" ,r-knitr))))))
+       (list r-knitr)))))
 
 (define-public r-genie3
   (package
     (name "r-genie3")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GENIE3" version))
        (sha256
         (base32
-         "1v54dzcz654wfm3npbp8gb55v49im0fm547cz3hvsidq4zhi3l1b"))))
+         "0ms769267pimrx3xwwkgjy03qilkxxs7xwhzfca01f65i4n3l6fw"))))
     (properties `((upstream-name . "GENIE3")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-reshape2" ,r-reshape2)))
+     (list r-dplyr r-reshape2))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/GENIE3")
     (synopsis "Gene network inference with ensemble of trees")
     (description
@@ -10403,18 +10688,18 @@ regulatory networks from expression data.")
 (define-public r-roc
   (package
     (name "r-roc")
-    (version "1.68.1")
+    (version "1.70.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ROC" version))
        (sha256
         (base32
-         "1rmsrvn6hrg9ay7xfb05mfkxknnig78p3kbk9ghsd11lhx2fjm3s"))))
+         "1mgxpv5p6gnv04wzkcryrg5as5xrxvlqlkkcbv0k1bx9y6ykijy9"))))
     (properties `((upstream-name . "ROC")))
     (build-system r-build-system)
-    (propagated-inputs
-     `(("r-knitr" ,r-knitr)))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://www.bioconductor.org/packages/ROC/")
     (synopsis "Utilities for ROC curves")
     (description
@@ -10439,7 +10724,7 @@ Characteristic} (ROC) curves, with a focus on micro arrays.")
      `((upstream-name
         . "IlluminaHumanMethylation450kanno.ilmn12.hg19")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-minfi" ,r-minfi)))
+    (propagated-inputs (list r-minfi))
     (home-page
      "https://bioconductor.org/packages/IlluminaHumanMethylation450kanno.ilmn12.hg19/")
     (synopsis "Annotation for Illumina's 450k methylation arrays")
@@ -10451,26 +10736,27 @@ data.")
 (define-public r-watermelon
   (package
     (name "r-watermelon")
-    (version "1.36.0")
+    (version "2.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "wateRmelon" version))
        (sha256
         (base32
-         "1qar8z0nf33bqr488swig0bfq8lnvcdjcxvw3q3b0hkkvybn27zw"))))
+         "1kzkg3cnm5pcs6blpw1qn7na6z3kar93v67680wsxa6qxxdiggk3"))))
     (properties `((upstream-name . "wateRmelon")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-illuminahumanmethylation450kanno-ilmn12-hg19"
-        ,r-illuminahumanmethylation450kanno-ilmn12-hg19)
-       ("r-illuminaio" ,r-illuminaio)
-       ("r-limma" ,r-limma)
-       ("r-lumi" ,r-lumi)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-methylumi" ,r-methylumi)
-       ("r-roc" ,r-roc)))
+     (list r-biobase
+           r-illuminahumanmethylation450kanno-ilmn12-hg19
+           r-illuminaio
+           r-limma
+           r-lumi
+           r-matrixstats
+           r-methylumi
+           r-roc))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/wateRmelon/")
     (synopsis "Illumina 450 methylation array normalization and metrics")
     (description
@@ -10488,14 +10774,14 @@ metrics, with methods for objects produced by the @code{methylumi} and
 (define-public r-gdsfmt
   (package
     (name "r-gdsfmt")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "gdsfmt" version))
        (sha256
         (base32
-         "119qdivd7vaaqkjb0nrwidi6g26hh8znhif3g4prqn7x5pl2clvy"))
+         "147i33sb65n3cl3ibmjzgfm7i4ljy640k18mzknvc18v1906j9vp"))
        (modules '((guix build utils)))
        ;; Remove bundled sources of zlib, lz4, and xz.  Don't attempt to build
        ;; them and link with system libraries instead.
@@ -10508,7 +10794,7 @@ metrics, with methods for objects produced by the @code{methylumi} and
            (substitute* "src/Makevars"
              (("all: \\$\\(SHLIB\\)") "all:")
              (("\\$\\(SHLIB\\): liblzma.a") "")
-             (("(ZLIB|LZ4)/.*") "")
+             (("^	(ZLIB|LZ4)/.*") "")
              (("CoreArray/dVLIntGDS.cpp.*")
               "CoreArray/dVLIntGDS.cpp")
              (("CoreArray/dVLIntGDS.o.*")
@@ -10517,16 +10803,13 @@ metrics, with methods for objects produced by the @code{methylumi} and
               "PKG_LIBS = -llz4"))
            (substitute* "src/CoreArray/dStream.h"
              (("include \"../(ZLIB|LZ4|XZ/api)/(.*)\"" _ _ header)
-              (string-append "include <" header ">")))
-           #t))))
+              (string-append "include <" header ">")))))))
     (properties `((upstream-name . "gdsfmt")))
     (build-system r-build-system)
     (inputs
-     `(("lz4" ,lz4)
-       ("xz" ,xz)
-       ("zlib" ,zlib)))
+     (list lz4 xz zlib))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "http://corearray.sourceforge.net/")
     (synopsis
      "R Interface to CoreArray Genomic Data Structure (GDS) Files")
@@ -10547,24 +10830,25 @@ with multiple R processes supported by the package @code{parallel}.")
 (define-public r-bigmelon
   (package
     (name "r-bigmelon")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bigmelon" version))
        (sha256
         (base32
-         "061f0hc4m4nvdr6298pg3inpx1z2bpsm9nlxqs3v7n58q15xyzri"))))
+         "0ksbmybi8wsg515b4k9ij1xqqk9i90pyap2wq5w3c49qgc0pqali"))))
     (properties `((upstream-name . "bigmelon")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-gdsfmt" ,r-gdsfmt)
-       ("r-geoquery" ,r-geoquery)
-       ("r-methylumi" ,r-methylumi)
-       ("r-minfi" ,r-minfi)
-       ("r-watermelon" ,r-watermelon)))
+     (list r-biobase
+           r-biocgenerics
+           r-gdsfmt
+           r-geoquery
+           r-illuminaio
+           r-methylumi
+           r-minfi
+           r-watermelon))
     (home-page "https://bioconductor.org/packages/bigmelon/")
     (synopsis "Illumina methylation array analysis for large experiments")
     (description
@@ -10575,20 +10859,18 @@ with multiple R processes supported by the package @code{parallel}.")
 (define-public r-seqbias
   (package
     (name "r-seqbias")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "seqbias" version))
        (sha256
         (base32
-         "06w43plv4x1pafybq633n7adqp9yj3bvaaamq7vylmkfbcx3nl8k"))))
+         "1q608c1madij8l52ljl3w52vi3cssr6ikny84yj6n8s7yvpx5jpr"))))
     (properties `((upstream-name . "seqbias")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biostrings" ,r-biostrings)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-rhtslib" ,r-rhtslib)))
+     (list r-biostrings r-genomicranges r-rhtslib))
     (home-page "https://bioconductor.org/packages/seqbias/")
     (synopsis "Estimation of per-position bias in high-throughput sequencing data")
     (description
@@ -10614,13 +10896,13 @@ genome sequence.")
     ;; doesn't make sense to build substitutes.
     (arguments `(#:substitutable? #f))
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-iranges" ,r-iranges)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-biostrings" ,r-biostrings)))
+     (list r-biocgenerics
+           r-s4vectors
+           r-iranges
+           r-genomeinfodb
+           r-genomicranges
+           r-bsgenome
+           r-biostrings))
     (home-page
      "https://bioconductor.org/packages/SNPlocs.Hsapiens.dbSNP144.GRCh37/")
     (synopsis "SNP locations for Homo sapiens (dbSNP Build 144)")
@@ -10639,20 +10921,18 @@ injected in that sequence).")
 (define-public r-reqon
   (package
     (name "r-reqon")
-    (version "1.38.0")
+    (version "1.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ReQON" version))
        (sha256
         (base32
-         "1z13avbxwvvhh03arjfnaipznynifsi8k2hzw4kappz24f7lwmza"))))
+         "14v79vg3pmpkbzgn8xqd020jdwcs8g57d46bzl23yi3w1rsfbrb1"))))
     (properties `((upstream-name . "ReQON")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rjava" ,r-rjava)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-seqbias" ,r-seqbias)))
+     (list r-rjava r-rsamtools r-seqbias))
     (home-page "https://bioconductor.org/packages/ReQON/")
     (synopsis "Recalibrating quality of nucleotides")
     (description
@@ -10664,33 +10944,33 @@ format.")
 (define-public r-wavcluster
   (package
     (name "r-wavcluster")
-    (version "2.26.0")
+    (version "2.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "wavClusteR" version))
        (sha256
         (base32
-         "1sydzrqydfv1ik2h08xkxlx6xrv866bf0if6v5wch9l3krh0sych"))))
+         "1a1zhckrgq5yl51acj5piyh2hq70q6hhpym4cawzdssxhcbq70bk"))))
     (properties `((upstream-name . "wavClusteR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-foreach" ,r-foreach)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-hmisc" ,r-hmisc)
-       ("r-iranges" ,r-iranges)
-       ("r-mclust" ,r-mclust)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-seqinr" ,r-seqinr)
-       ("r-stringr" ,r-stringr)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biocgenerics
+           r-biostrings
+           r-foreach
+           r-genomicfeatures
+           r-genomicranges
+           r-ggplot2
+           r-hmisc
+           r-iranges
+           r-mclust
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors
+           r-seqinr
+           r-stringr))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/wavClusteR/")
     (synopsis "Identification of RNA-protein interaction sites in PAR-CLIP data")
     (description
@@ -10711,35 +10991,35 @@ procedures that induce nucleotide substitutions (e.g. BisSeq).")
 (define-public r-timeseriesexperiment
   (package
     (name "r-timeseriesexperiment")
-    (version "1.10.0")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "TimeSeriesExperiment" version))
        (sha256
         (base32
-         "10xgihjssnc6i03819p9gnzwfc7znanic514ar3yxzl3fhxy3yyy"))))
+         "0fphnkkd3i7zf33a9lhw95n80vzv1z7fmn7mhrfb949yz4jdvk7d"))))
     (properties
      `((upstream-name . "TimeSeriesExperiment")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-deseq2" ,r-deseq2)
-       ("r-dplyr" ,r-dplyr)
-       ("r-dynamictreecut" ,r-dynamictreecut)
-       ("r-edger" ,r-edger)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-hmisc" ,r-hmisc)
-       ("r-limma" ,r-limma)
-       ("r-magrittr" ,r-magrittr)
-       ("r-proxy" ,r-proxy)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-vegan" ,r-vegan)
-       ("r-viridis" ,r-viridis)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-deseq2
+           r-dplyr
+           r-dynamictreecut
+           r-edger
+           r-ggplot2
+           r-hmisc
+           r-limma
+           r-magrittr
+           r-proxy
+           r-s4vectors
+           r-summarizedexperiment
+           r-tibble
+           r-tidyr
+           r-vegan
+           r-viridis))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/nlhuong/TimeSeriesExperiment/")
     (synopsis "Analysis for short time-series data")
     (description
@@ -10752,42 +11032,42 @@ provides methods for retrieving enriched pathways.")
 (define-public r-variantfiltering
   (package
     (name "r-variantfiltering")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "VariantFiltering" version))
        (sha256
         (base32
-         "0abhrk53csd9jz9sv4q1qr74jax9mbj2icbz1iilf1123nvnjypd"))))
+         "15js8xzi9rsgkjkqcshzk3r3g85kdnxn5v2hi6l5s4yxj9lnq12p"))))
     (properties
      `((upstream-name . "VariantFiltering")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-dt" ,r-dt)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-genomicscores" ,r-genomicscores)
-       ("r-graph" ,r-graph)
-       ("r-gviz" ,r-gviz)
-       ("r-iranges" ,r-iranges)
-       ("r-rbgl" ,r-rbgl)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-shiny" ,r-shiny)
-       ("r-shinyjs" ,r-shinyjs)
-       ("r-shinythemes" ,r-shinythemes)
-       ("r-shinytree" ,r-shinytree)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-variantannotation" ,r-variantannotation)
-       ("r-xvector" ,r-xvector)))
+     (list r-annotationdbi
+           r-biobase
+           r-biocgenerics
+           r-biocparallel
+           r-biostrings
+           r-bsgenome
+           r-dt
+           r-genomeinfodb
+           r-genomicfeatures
+           r-genomicranges
+           r-genomicscores
+           r-graph
+           r-gviz
+           r-iranges
+           r-rbgl
+           r-rsamtools
+           r-s4vectors
+           r-shiny
+           r-shinyjs
+           r-shinythemes
+           r-shinytree
+           r-summarizedexperiment
+           r-variantannotation
+           r-xvector))
     (home-page "https://github.com/rcastelo/VariantFiltering")
     (synopsis "Filtering of coding and non-coding genetic variants")
     (description
@@ -10810,7 +11090,7 @@ populations, splice site strength, conservation, etc.")
     (properties `((upstream-name . "GenomeGraphs")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biomart" ,r-biomart)))
+     (list r-biomart))
     (home-page "https://bioconductor.org/packages/GenomeGraphs/")
     (synopsis "Plotting genomic information from Ensembl")
     (description
@@ -10838,16 +11118,16 @@ same genome coordinate system.")
     (properties `((upstream-name . "waveTiling")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-affy" ,r-affy)
-       ("r-biobase" ,r-biobase)
-       ("r-biostrings" ,r-biostrings)
-       ("r-genomegraphs" ,r-genomegraphs)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-oligo" ,r-oligo)
-       ("r-oligoclasses" ,r-oligoclasses)
-       ("r-preprocesscore" ,r-preprocesscore)
-       ("r-waveslim" ,r-waveslim)))
+     (list r-affy
+           r-biobase
+           r-biostrings
+           r-genomegraphs
+           r-genomicranges
+           r-iranges
+           r-oligo
+           r-oligoclasses
+           r-preprocesscore
+           r-waveslim))
     (home-page "https://r-forge.r-project.org/projects/wavetiling/")
     (synopsis "Wavelet-based models for tiling array transcriptome analysis")
     (description
@@ -10858,36 +11138,37 @@ arrays based on fast wavelet-based functional models.")
 (define-public r-variancepartition
   (package
     (name "r-variancepartition")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "variancePartition" version))
        (sha256
         (base32
-         "1pqy2g9pg8pswmkrs2fzlkwwliw2r7f33h05bci5bz41b8ribpzj"))))
+         "0f5y61dpzwmr8v7npim18zvxa8n49rbzclb9j72haba0px6ibhvw"))))
     (properties
      `((upstream-name . "variancePartition")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-colorramps" ,r-colorramps)
-       ("r-doparallel" ,r-doparallel)
-       ("r-foreach" ,r-foreach)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gplots" ,r-gplots)
-       ("r-iterators" ,r-iterators)
-       ("r-limma" ,r-limma)
-       ("r-lme4" ,r-lme4)
-       ("r-lmertest" ,r-lmertest)
-       ("r-mass" ,r-mass)
-       ("r-pbkrtest" ,r-pbkrtest)
-       ("r-progress" ,r-progress)
-       ("r-reshape2" ,r-reshape2)
-       ("r-scales" ,r-scales)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biobase
+           r-biocparallel
+           r-doparallel
+           r-foreach
+           r-ggplot2
+           r-gplots
+           r-iterators
+           r-limma
+           r-lme4
+           r-lmertest
+           r-mass
+           r-matrix
+           r-pbkrtest
+           r-progress
+           r-reshape2
+           r-rlang
+           r-scales))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/variancePartition/")
     (synopsis "Analyze variation in gene expression experiments")
     (description
@@ -10902,22 +11183,18 @@ measures.")
 (define-public r-htqpcr
   (package
     (name "r-htqpcr")
-    (version "1.46.0")
+    (version "1.48.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "HTqPCR" version))
        (sha256
         (base32
-         "1y3ik5a9w66jby6682jfm8mn2883s8yfv4xw8a8v1f6q2d1j938l"))))
+         "1d7qj5yv6kzqmdrnp5pd8qv1yr4bg8cs39p8ib0i0k8b4wr97kq3"))))
     (properties `((upstream-name . "HTqPCR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-affy" ,r-affy)
-       ("r-biobase" ,r-biobase)
-       ("r-gplots" ,r-gplots)
-       ("r-limma" ,r-limma)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)))
+     (list r-affy r-biobase r-gplots r-limma r-rcolorbrewer))
     (home-page (string-append "https://www.ebi.ac.uk/sites/ebi.ac.uk/files/"
                               "groups/bertone/software/HTqPCR.pdf"))
     (synopsis "Automated analysis of high-throughput qPCR data")
@@ -10936,20 +11213,19 @@ features (e.g.  genes, microRNAs).")
 (define-public r-unifiedwmwqpcr
   (package
     (name "r-unifiedwmwqpcr")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "unifiedWMWqPCR" version))
        (sha256
         (base32
-         "1clcz610sl3s0mjf84j21xgrmjhkxcc4h292ljwq5yzbkk68g896"))))
+         "0kw26bm2yyna38q5r4zb2alpa3j4gx7v970419mnjlif4g0hmggk"))))
     (properties
      `((upstream-name . "unifiedWMWqPCR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-htqpcr" ,r-htqpcr)))
+     (list r-biocgenerics r-htqpcr))
     (home-page "https://bioconductor.org/packages/unifiedWMWqPCR")
     (synopsis "Unified Wilcoxon-Mann Whitney Test for differential expression in qPCR data")
     (description
@@ -10961,14 +11237,14 @@ data.")
 (define-public r-universalmotif
   (package
     (name "r-universalmotif")
-    (version "1.10.2")
+    (version "1.12.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "universalmotif" version))
        (sha256
         (base32
-         "0hv2v2zgif5ihr5hxmdz32rln43jc1j0rslp44kd3rijjl45zysn"))))
+         "0d6zrwbc4i2npl29idm1icwa62wdx47z9s8yx7k662v3qagwpj16"))))
     (properties
      `((upstream-name . "universalmotif")))
     (build-system r-build-system)
@@ -10980,18 +11256,18 @@ data.")
              (substitute* "src/Makevars"
                (("/usr/bin/strip") (which "strip"))))))))
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-iranges" ,r-iranges)
-       ("r-mass" ,r-mass)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppthread" ,r-rcppthread)
-       ("r-rlang" ,r-rlang)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-yaml" ,r-yaml)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biocgenerics
+           r-biostrings
+           r-ggplot2
+           r-iranges
+           r-mass
+           r-rcpp
+           r-rcppthread
+           r-rlang
+           r-s4vectors
+           r-yaml))
+    (native-inputs
+     (list r-knitr))
     (home-page
      "https://bioconductor.org/packages/universalmotif/")
     (synopsis
@@ -11023,15 +11299,15 @@ motifs, and others.")
      `((upstream-name . "ActiveDriverWGS")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-bsgenome-hsapiens-ucsc-hg19" ,r-bsgenome-hsapiens-ucsc-hg19)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-biostrings
+           r-bsgenome
+           r-bsgenome-hsapiens-ucsc-hg19
+           r-genomeinfodb
+           r-genomicranges
+           r-iranges
+           r-s4vectors))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/ActiveDriverWGS/")
     (synopsis "Driver discovery tool for cancer whole genomes")
     (description
@@ -11058,10 +11334,9 @@ using whole genome sequencing data.")
      `((upstream-name . "ActivePathways")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-ggplot2" ,r-ggplot2)))
+     (list r-data-table r-ggplot2))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/ActivePathways/")
     (synopsis "Multivariate pathway enrichment analysis")
     (description
@@ -11075,18 +11350,18 @@ cellular organization in health and disease.")
 (define-public r-bgmix
   (package
     (name "r-bgmix")
-    (version "1.52.0")
+    (version "1.54.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BGmix" version))
        (sha256
         (base32
-         "1gp40ddspblpszzm4k4r7ysgx883iwdfqc5ds23p2q1ml9idwgvv"))))
+         "0x1sx319yfxgkscr9r62msq00ddvmzryzn42wy4dh5pvjmgifkkn"))))
     (properties `((upstream-name . "BGmix")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-kernsmooth" ,r-kernsmooth)))
+     (list r-kernsmooth))
     (home-page "https://bioconductor.org/packages/BGmix/")
     (synopsis "Bayesian models for differential gene expression")
     (description
@@ -11097,21 +11372,18 @@ gene expression.")
 (define-public r-bgx
   (package
     (name "r-bgx")
-    (version "1.58.0")
+    (version "1.60.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bgx" version))
        (sha256
         (base32
-         "18n6j2ihv85rhai5sf5k3mwf9nkc2nl2sinx3rrs6sbl529g4mw4"))))
+         "0z3isnpyf9s11807dprxmd105lb0k4l7r1sygad30ncjvpldifzm"))))
     (properties `((upstream-name . "bgx")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-affy" ,r-affy)
-       ("r-biobase" ,r-biobase)
-       ("r-gcrma" ,r-gcrma)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-affy r-biobase r-gcrma r-rcpp))
     (home-page "https://bioconductor.org/packages/bgx/")
     (synopsis "Bayesian gene expression")
     (description
@@ -11122,14 +11394,14 @@ Affymetrix GeneChips.")
 (define-public r-bhc
   (package
     (name "r-bhc")
-    (version "1.44.0")
+    (version "1.46.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BHC" version))
        (sha256
         (base32
-         "0aaawm7h3ppyyhd7hi14rpynagnxx4730f5vxizj5bpzwbclp6h9"))))
+         "09nw4ljc9sn7iw09ha0m614hmdjj193xhhav5x5p07l501kks6h2"))))
     (properties `((upstream-name . "BHC")))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/BHC/")
@@ -11148,20 +11420,18 @@ algorithm which is more efficient for larger data sets.")
 (define-public r-bicare
   (package
     (name "r-bicare")
-    (version "1.50.0")
+    (version "1.52.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BicARE" version))
        (sha256
         (base32
-         "0j3gs4xcdgaca2c62jf2h86skbbxm1c9g2khs5bsa8fmkskr6vl9"))))
+         "1g8vrsc05cysb36gsw8sfmr6dgbh4aji37vcq9qwkmkv3jgvnlf6"))))
     (properties `((upstream-name . "BicARE")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-gseabase" ,r-gseabase)
-       ("r-multtest" ,r-multtest)))
+     (list r-biobase r-gseabase r-multtest))
     (home-page "http://bioinfo.curie.fr")
     (synopsis "Biclustering analysis and results exploration")
     (description
@@ -11172,21 +11442,20 @@ results.")
 (define-public r-bifet
   (package
     (name "r-bifet")
-    (version "1.12.0")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiFET" version))
        (sha256
         (base32
-         "1fwy7ws0bn67557s0kcw8pbln2jg834n6kfbs8297ps07nxr0lpj"))))
+         "0vidypvphnj76g4ra5ijrgqx2dnzw0fmvdvz35gsqswrr3k20jkk"))))
     (properties `((upstream-name . "BiFET")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-genomicranges" ,r-genomicranges)
-       ("r-poibin" ,r-poibin)))
+     (list r-genomicranges r-poibin))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/BiFET")
     (synopsis "Bias-free footprint enrichment test")
     (description
@@ -11202,23 +11471,22 @@ the read count and GC content bias.")
 (define-public r-rsbml
   (package
     (name "r-rsbml")
-    (version "2.50.0")
+    (version "2.52.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "rsbml" version))
        (sha256
         (base32
-         "017xwra6ms7kx6sg3ksw1vr9zn23imc2qjgpmjikx7mgbak125xh"))))
+         "0mdyr637sgasc156cv8i2s2mpl1hdvilfwwkhvw7l95pl90gnsh2"))))
     (properties `((upstream-name . "rsbml")))
     (build-system r-build-system)
     (inputs
-     `(("libsbml" ,libsbml)))
+     (list libsbml))
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-graph" ,r-graph)))
+     (list r-biocgenerics r-graph))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://www.sbml.org")
     (synopsis "R support for SBML")
     (description
@@ -11229,18 +11497,18 @@ validating output, provides an S4 SBML DOM, converts SBML to R graph objects.")
 (define-public r-hypergraph
   (package
     (name "r-hypergraph")
-    (version "1.64.0")
+    (version "1.66.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "hypergraph" version))
        (sha256
         (base32
-         "01knpd964m2g9vwd7c72qnc8g2p2pzhvk7lin4mhvcmb3pvsdlh7"))))
+         "0xnyl9qh5p32ifvzkcl5g4a38zbnwykqzrp8gwz076a0ksiqqdxf"))))
     (properties `((upstream-name . "hypergraph")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-graph" ,r-graph)))
+     (list r-graph))
     (home-page "https://bioconductor.org/packages/hypergraph")
     (synopsis "Hypergraph data structures")
     (description
@@ -11251,21 +11519,19 @@ manipulating hypergraphs.")
 (define-public r-hyperdraw
   (package
     (name "r-hyperdraw")
-    (version "1.44.0")
+    (version "1.46.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "hyperdraw" version))
        (sha256
         (base32
-         "1qkxixkgvvfha0ii8rwwcbrbjmbbxsy8afv5ymcq01k3hbykx44r"))))
+         "1lkiqrk01hshms9ghsfynxwj69zr3463r3rg8rn7hkwn3bj8xyzj"))))
     (properties `((upstream-name . "hyperdraw")))
     (build-system r-build-system)
-    (inputs `(("graphviz" ,graphviz)))
+    (inputs (list graphviz))
     (propagated-inputs
-     `(("r-graph" ,r-graph)
-       ("r-hypergraph" ,r-hypergraph)
-       ("r-rgraphviz" ,r-rgraphviz)))
+     (list r-graph r-hypergraph r-rgraphviz))
     (home-page "https://bioconductor.org/packages/hyperdraw")
     (synopsis "Visualizing hypergraphs")
     (description
@@ -11275,23 +11541,23 @@ manipulating hypergraphs.")
 (define-public r-biggr
   (package
     (name "r-biggr")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiGGR" version))
        (sha256
         (base32
-         "1y9659pxm65w51zvrz36girb3qvfc64zijjkxmg6xn4pbc8vv1wf"))))
+         "1g01666wwznk148776s4vr1hfi3dfl448dhgk4d1qy2wv6sxh9kr"))))
     (properties `((upstream-name . "BiGGR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-hyperdraw" ,r-hyperdraw)
-       ("r-hypergraph" ,r-hypergraph)
-       ("r-lim" ,r-lim)
-       ("r-limsolve" ,r-limsolve)
-       ("r-rsbml" ,r-rsbml)
-       ("r-stringr" ,r-stringr)))
+     (list r-hyperdraw
+           r-hypergraph
+           r-lim
+           r-limsolve
+           r-rsbml
+           r-stringr))
     (home-page "https://bioconductor.org/packages/BiGGR/")
     (synopsis "Constraint based modeling using metabolic reconstruction databases")
     (description
@@ -11317,9 +11583,9 @@ networks and estimated fluxes can be visualized with hypergraphs.")
      `((upstream-name . "bigmemoryExtras")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bigmemory" ,r-bigmemory)))
+     (list r-bigmemory))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/phaverty/bigmemoryExtras")
     (synopsis "Extension of the bigmemory package")
     (description
@@ -11339,37 +11605,37 @@ a file-backed matrix with factor properties.")
 (define-public r-bigpint
   (package
     (name "r-bigpint")
-    (version "1.8.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bigPint" version))
        (sha256
         (base32
-         "0yrg9x1a92zmz7j5hk77cph1jg82mkpr7k7qi9fdr6z5nqq6fgz6"))))
+         "0b0l0v9p7a5da3x18d0pqn41ilgxfyzapjaawgsshcfm5mjq5d7q"))))
     (properties `((upstream-name . "bigPint")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-delayedarray" ,r-delayedarray)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggally" ,r-ggally)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-hexbin" ,r-hexbin)
-       ("r-hmisc" ,r-hmisc)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-plotly" ,r-plotly)
-       ("r-plyr" ,r-plyr)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-reshape" ,r-reshape)
-       ("r-shiny" ,r-shiny)
-       ("r-shinycssloaders" ,r-shinycssloaders)
-       ("r-shinydashboard" ,r-shinydashboard)
-       ("r-stringr" ,r-stringr)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-tidyr" ,r-tidyr)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-delayedarray
+           r-dplyr
+           r-ggally
+           r-ggplot2
+           r-gridextra
+           r-hexbin
+           r-hmisc
+           r-htmlwidgets
+           r-plotly
+           r-plyr
+           r-rcolorbrewer
+           r-reshape
+           r-shiny
+           r-shinycssloaders
+           r-shinydashboard
+           r-stringr
+           r-summarizedexperiment
+           r-tidyr))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/lindsayrutter/bigPint")
     (synopsis "Big multivariate data plotted interactively")
     (description
@@ -11382,32 +11648,34 @@ visualizing RNA-sequencing datasets and differentially expressed genes.")
 (define-public r-chemminer
   (package
     (name "r-chemminer")
-    (version "3.44.0")
+    (version "3.46.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ChemmineR" version))
        (sha256
         (base32
-         "1z59npqk7hnqzhjdnry6lfqlyxfzwqprp7bmbdzs4rp22pzcv1v8"))))
+         "069xd7if7fs69afmamgl6wrkzpnk97ic6z5ix4vvlzkb078dm0p8"))))
     (properties `((upstream-name . "ChemmineR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-bh" ,r-bh)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-dbi" ,r-dbi)
-       ("r-digest" ,r-digest)
-       ("r-dt" ,r-dt)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-png" ,r-png)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcurl" ,r-rcurl)
-       ("r-rjson" ,r-rjson)
-       ("r-rsvg" ,r-rsvg)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-base64enc
+           r-bh
+           r-biocgenerics
+           r-dbi
+           r-digest
+           r-dt
+           r-ggplot2
+           r-gridextra
+           r-jsonlite
+           r-png
+           r-rcpp
+           r-rcurl
+           r-rjson
+           r-rsvg
+           r-stringi))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/girke-lab/ChemmineR")
     (synopsis "Cheminformatics toolkit for R")
     (description
@@ -11420,29 +11688,58 @@ visualization functions for compound clustering results and chemical
 structures.")
     (license license:artistic2.0)))
 
+(define-public r-fmcsr
+  (package
+    (name "r-fmcsr")
+    (version "1.36.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (bioconductor-uri "fmcsR" version))
+        (sha256
+          (base32 "0mshslfj7jsix1yc03s54spbbi56zspic49kfsjfv8npikj1i5w0"))))
+    (properties `((upstream-name . "fmcsR")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-biocgenerics r-chemminer r-runit))
+    (native-inputs (list r-knitr))
+    (home-page "https://github.com/girke-lab/fmcsR")
+    (synopsis "Mismatch tolerant maximum common substructure searching")
+    (description
+     "The fmcsR package introduces an efficient @dfn{maximum common
+substructure} (MCS) algorithms combined with a novel matching strategy that
+allows for atom and/or bond mismatches in the substructures shared among two
+small molecules.  The resulting flexible MCSs (FMCSs) are often larger than
+strict MCSs, resulting in the identification of more common features in their
+source structures, as well as a higher sensitivity in finding compounds with
+weak structural similarities.  The fmcsR package provides several utilities to
+use the FMCS algorithm for pairwise compound comparisons, structure similarity
+searching and clustering.")
+    (license license:artistic2.0)))
+
 (define-public r-bioassayr
   (package
     (name "r-bioassayr")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bioassayR" version))
        (sha256
         (base32
-         "1mlv80w8a7l8cii3dfqvanvh0qdqvcg8c1iiq4xlyvkjxfs64ka1"))))
+         "1nfp1alva6qim5rbhg9j9w97p2n4z21ghr4j489lqklkcs4d030f"))))
     (properties `((upstream-name . "bioassayR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-chemminer" ,r-chemminer)
-       ("r-dbi" ,r-dbi)
-       ("r-matrix" ,r-matrix)
-       ("r-rjson" ,r-rjson)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-xml" ,r-xml)))
+     (list r-biocgenerics
+           r-chemminer
+           r-dbi
+           r-matrix
+           r-rjson
+           r-rsqlite
+           r-xml))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/girke-lab/bioassayR")
     (synopsis "Cross-target analysis of small molecule bioactivity")
     (description
@@ -11458,23 +11755,20 @@ available bioactivity data.")
 (define-public r-biobroom
   (package
     (name "r-biobroom")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biobroom" version))
        (sha256
         (base32
-         "1ybyhmrcvj6k1laxw9bc8jbn533frkzh9k8kl1ibd5pi368rfqzn"))))
+         "034gbywrscv23kk1qnk7sc7dxdckmf60wh29fz65v1n28mkf180r"))))
     (properties `((upstream-name . "biobroom")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-broom" ,r-broom)
-       ("r-dplyr" ,r-dplyr)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-biobase r-broom r-dplyr r-tidyr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/StoreyLab/biobroom")
     (synopsis "Turn Bioconductor objects into tidy data frames")
     (description
@@ -11490,24 +11784,18 @@ visualize bioinformatics analyses.")
 (define-public r-graphite
   (package
     (name "r-graphite")
-    (version "1.38.0")
+    (version "1.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "graphite" version))
        (sha256
         (base32
-         "11bgz6951nfygxp3fm0190gf2bb5zplis1bc0am4757liw4qybhf"))))
+         "0wmdv4j6dinszxwpz2jddshkh1ahbhm2fxh6vhjsk4grw38i1lfr"))))
     (properties `((upstream-name . "graphite")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-checkmate" ,r-checkmate)
-       ("r-graph" ,r-graph)
-       ("r-httr" ,r-httr)
-       ("r-rappdirs" ,r-rappdirs)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationdbi r-checkmate r-graph r-httr r-rappdirs))
     (home-page "https://bioconductor.org/packages/graphite/")
     (synopsis "Networks from pathway databases")
     (description
@@ -11519,27 +11807,27 @@ symbols).")
 (define-public r-reactomepa
   (package
     (name "r-reactomepa")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ReactomePA" version))
        (sha256
         (base32
-         "1293z89ai766c559axgr7mz5x4564gyl9xqzf6s8s0aj1xb35gqf"))))
+         "1f4kd5cql7knnqaq3ba48kkypw8p60lkfdsnpqxcabdj30gqp55b"))))
     (properties `((upstream-name . "ReactomePA")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-dose" ,r-dose)
-       ("r-enrichplot" ,r-enrichplot)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggraph" ,r-ggraph)
-       ("r-graphite" ,r-graphite)
-       ("r-igraph" ,r-igraph)
-       ("r-reactome-db" ,r-reactome-db)))
+     (list r-annotationdbi
+           r-dose
+           r-enrichplot
+           r-ggplot2
+           r-ggraph
+           r-graphite
+           r-igraph
+           r-reactome-db))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://guangchuangyu.github.io/software/ReactomePA")
     (synopsis "Reactome pathway analysis")
     (description
@@ -11551,20 +11839,18 @@ enrichment analysis and several functions for visualization.")
 (define-public r-ebarrays
   (package
     (name "r-ebarrays")
-    (version "2.56.0")
+    (version "2.58.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "EBarrays" version))
        (sha256
         (base32
-         "1k1kl0m7wzaqpv7i20pfav2a6jf93bhri4w7qdikmvkf011n9422"))))
+         "10dw6c93rmpknzf4cnhw3y7lb27q4xq7x7wirl2a7qywdj0yj2g6"))))
     (properties `((upstream-name . "EBarrays")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-cluster" ,r-cluster)
-       ("r-lattice" ,r-lattice)))
+     (list r-biobase r-cluster r-lattice))
     (home-page "https://bioconductor.org/packages/EBarrays/")
     (synopsis "Gene clustering and differential expression identification")
     (description
@@ -11586,7 +11872,7 @@ microarray data.")
     (properties
      `((upstream-name . "BiocCaseStudies")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-biobase" ,r-biobase)))
+    (propagated-inputs (list r-biobase))
     (home-page "https://bioconductor.org/packages/BiocCaseStudies")
     (synopsis "Support for the case studies monograph")
     (description
@@ -11597,27 +11883,27 @@ monograph.")
 (define-public r-bioccheck
   (package
     (name "r-bioccheck")
-    (version "1.28.0")
+    (version "1.30.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocCheck" version))
               (sha256
                (base32
-                "1h0l5w33c9jpc20pynq634qmx8jbfa802d7jslmf4haljmrxm4a1"))))
+                "0w9ddicyp9i8rxf92n9pghd9s6bb8jdjikaylrmkydhb7jbhan0y"))))
     (properties
      `((upstream-name . "BiocCheck")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-codetools" ,r-codetools)
-       ("r-graph" ,r-graph)
-       ("r-httr" ,r-httr)
-       ("r-knitr" ,r-knitr)
-       ("r-optparse" ,r-optparse)
-       ("r-biocmanager" ,r-biocmanager)
-       ("r-biocviews" ,r-biocviews)
-       ("r-stringdist" ,r-stringdist)))
+     (list r-codetools
+           r-graph
+           r-httr
+           r-knitr
+           r-optparse
+           r-biocmanager
+           r-biocviews
+           r-stringdist))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/BiocCheck")
     (synopsis "Executes Bioconductor-specific package checks")
     (description "This package contains tools to perform additional quality
@@ -11627,21 +11913,18 @@ checks on R packages that are to be submitted to the Bioconductor repository.")
 (define-public r-biocgraph
   (package
     (name "r-biocgraph")
-    (version "1.54.0")
+    (version "1.56.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biocGraph" version))
        (sha256
         (base32
-         "12bmj9kdlylp02cfwviak7y323ndccl2694rvi4cdg4vsx7v3ya3"))))
+         "0c7r0c1kx22dlwi6d1ldbkkbf53yi0p3vmgbwzrbkn3cina7bcxq"))))
     (properties `((upstream-name . "biocGraph")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-geneplotter" ,r-geneplotter)
-       ("r-graph" ,r-graph)
-       ("r-rgraphviz" ,r-rgraphviz)))
+     (list r-biocgenerics r-geneplotter r-graph r-rgraphviz))
     (home-page "https://bioconductor.org/packages/biocGraph/")
     (synopsis "Graph examples and use cases in Bioinformatics")
     (description
@@ -11652,24 +11935,20 @@ different graph related packages produced by Bioconductor.")
 (define-public r-biocstyle
   (package
     (name "r-biocstyle")
-    (version "2.20.2")
+    (version "2.22.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocStyle" version))
               (sha256
                (base32
-                "0p2wdq5vrx63ndghl9ww428z2lwnv5y88xmcr51by2g6vcj3brcf"))))
+                "0xx6xr01sb5wig94515zxgw24r9fv0g962ajy87741civhq32lbd"))))
     (properties
      `((upstream-name . "BiocStyle")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocmanager" ,r-biocmanager)
-       ("r-bookdown" ,r-bookdown)
-       ("r-knitr" ,r-knitr)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-yaml" ,r-yaml)))
+     (list r-biocmanager r-bookdown r-knitr r-rmarkdown r-yaml))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/BiocStyle")
     (synopsis "Bioconductor formatting styles")
     (description "This package provides standard formatting styles for
@@ -11680,24 +11959,24 @@ functionality.")
 (define-public r-biocviews
   (package
     (name "r-biocviews")
-    (version "1.60.0")
+    (version "1.62.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "biocViews" version))
               (sha256
                (base32
-                "0pc5ll59vm8a9s1nrdc7p9wk11a52rrz669fsrrqd8qapa8p6wfd"))))
+                "1v6himzp546dpb990vv0nlya21w8x2x30137rsmahjzg942nzs9r"))))
     (properties
      `((upstream-name . "biocViews")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocmanager" ,r-biocmanager)
-       ("r-graph" ,r-graph)
-       ("r-rbgl" ,r-rbgl)
-       ("r-rcurl" ,r-rcurl)
-       ("r-xml" ,r-xml)
-       ("r-runit" ,r-runit)))
+     (list r-biobase
+           r-biocmanager
+           r-graph
+           r-rbgl
+           r-rcurl
+           r-xml
+           r-runit))
     (home-page "https://bioconductor.org/packages/biocViews")
     (synopsis "Bioconductor package categorization helper")
     (description "The purpose of biocViews is to create HTML pages that
@@ -11708,26 +11987,26 @@ also known as views, in a controlled vocabulary.")
 (define-public r-experimenthub
   (package
     (name "r-experimenthub")
-    (version "2.0.0")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ExperimentHub" version))
        (sha256
         (base32
-         "1mzmw3100lf33yhz27nbxncrjk5bprlackrjcwf8xdhcaidg40p4"))))
+         "15las4qmqvrn81hczxa3ylikqh54kp1lg9r8rcyfvrx5l0kgwlfq"))))
     (properties `((upstream-name . "ExperimentHub")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationhub" ,r-annotationhub)
-       ("r-biocfilecache" ,r-biocfilecache)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocmanager" ,r-biocmanager)
-       ("r-curl" ,r-curl)
-       ("r-rappdirs" ,r-rappdirs)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-annotationhub
+           r-biocfilecache
+           r-biocgenerics
+           r-biocmanager
+           r-curl
+           r-rappdirs
+           r-s4vectors))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/ExperimentHub/")
     (synopsis "Client to access ExperimentHub resources")
     (description
@@ -11742,24 +12021,24 @@ access.")
 (define-public r-grohmm
   (package
     (name "r-grohmm")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "groHMM" version))
        (sha256
         (base32
-         "1h63vg1iskw79ijg5h1b9097ams8pp3kvnlawlfci6xfli07xpkj"))))
+         "1jcj29df4prknqwbydca1jb9w6njacjhwwk9jp0r5mvb88xrm60s"))))
     (properties `((upstream-name . "groHMM")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-mass" ,r-mass)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-genomeinfodb
+           r-genomicalignments
+           r-genomicranges
+           r-iranges
+           r-mass
+           r-rtracklayer
+           r-s4vectors))
     (home-page "https://github.com/Kraus-Lab/groHMM")
     (synopsis "GRO-seq analysis pipeline")
     (description
@@ -11769,27 +12048,27 @@ access.")
 (define-public r-multiassayexperiment
   (package
     (name "r-multiassayexperiment")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MultiAssayExperiment" version))
        (sha256
         (base32
-         "0l0arf3q1f6zy6pdgsy3h5n523sg1hlilv7lj7snr5814idgdj51"))))
+         "1h3b8vqlbd04amjprxd1814zksdrbi01a0xn3906vkbqi43hfyn9"))))
     (properties
      `((upstream-name . "MultiAssayExperiment")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-biobase
+           r-biocgenerics
+           r-genomicranges
+           r-iranges
+           r-s4vectors
+           r-summarizedexperiment
+           r-tidyr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://waldronlab.io/MultiAssayExperiment/")
     (synopsis "Integration of multi-omics experiments in Bioconductor")
     (description
@@ -11804,41 +12083,41 @@ rownames.")
 (define-public r-bioconcotk
   (package
     (name "r-bioconcotk")
-    (version "1.12.1")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocOncoTK" version))
        (sha256
         (base32
-         "1ix09a39z7y2cj0y8qsd66ka8a8y8q79w08l4jv1yhhn9h4va89s"))))
+         "1h5s6wbc5n5x5d28rynxpcmaklxdhf72g9gg9fy8cg77niipvxd9"))))
     (properties `((upstream-name . "BiocOncoTK")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bigrquery" ,r-bigrquery)
-       ("r-car" ,r-car)
-       ("r-complexheatmap" ,r-complexheatmap)
-       ("r-curatedtcgadata" ,r-curatedtcgadata)
-       ("r-dbi" ,r-dbi)
-       ("r-dplyr" ,r-dplyr)
-       ("r-dt" ,r-dt)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggpubr" ,r-ggpubr)
-       ("r-graph" ,r-graph)
-       ("r-httr" ,r-httr)
-       ("r-iranges" ,r-iranges)
-       ("r-magrittr" ,r-magrittr)
-       ("r-plyr" ,r-plyr)
-       ("r-rgraphviz" ,r-rgraphviz)
-       ("r-rjson" ,r-rjson)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-scales" ,r-scales)
-       ("r-shiny" ,r-shiny)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-bigrquery
+           r-car
+           r-complexheatmap
+           r-curatedtcgadata
+           r-dbi
+           r-dplyr
+           r-dt
+           r-genomicfeatures
+           r-genomicranges
+           r-ggplot2
+           r-ggpubr
+           r-graph
+           r-httr
+           r-iranges
+           r-magrittr
+           r-plyr
+           r-rgraphviz
+           r-rjson
+           r-s4vectors
+           r-scales
+           r-shiny
+           r-summarizedexperiment))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/BiocOncoTK")
     (synopsis "Bioconductor components for general cancer genomics")
     (description
@@ -11849,22 +12128,20 @@ tools for genome-scale analysis of cancer studies.")
 (define-public r-biocor
   (package
     (name "r-biocor")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BioCor" version))
        (sha256
         (base32
-         "135rga7mwpzy8ypvriqpbmlh9l5yf61s9s1sa9615qfab14jh06b"))))
+         "0ii4g7438lb34ykidkbxw3v3k289k662rgbgayf9gak5avpkb2cq"))))
     (properties `((upstream-name . "BioCor")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocparallel" ,r-biocparallel)
-       ("r-gseabase" ,r-gseabase)
-       ("r-matrix" ,r-matrix)))
+     (list r-biocparallel r-gseabase r-matrix))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://llrs.github.io/BioCor/")
     (synopsis "Functional similarities")
     (description
@@ -11878,42 +12155,41 @@ gene selection, testing relationships, and so on.")
 (define-public r-biocpkgtools
   (package
     (name "r-biocpkgtools")
-    (version "1.10.1")
+    (version "1.12.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocPkgTools" version))
        (sha256
         (base32
-         "18a9mbzfmkipnv1cc9h3rhn9jxdp7nzywp0bz7hvmsaffv4p4skc"))))
+         "1yz2sgx4xrnw22k3d6q6hkj213bnbb4hbr5ymxnmjnsz551s75ny"))))
     (properties `((upstream-name . "BiocPkgTools")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocfilecache" ,r-biocfilecache)
-       ("r-biocmanager" ,r-biocmanager)
-       ("r-biocviews" ,r-biocviews)
-       ("r-dplyr" ,r-dplyr)
-       ("r-dt" ,r-dt)
-       ("r-gh" ,r-gh)
-       ("r-graph" ,r-graph)
-       ("r-htmltools" ,r-htmltools)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-httr" ,r-httr)
-       ("r-igraph" ,r-igraph)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rbgl" ,r-rbgl)
-       ("r-readr" ,r-readr)
-       ("r-rex" ,r-rex)
-       ("r-rlang" ,r-rlang)
-       ("r-rvest" ,r-rvest)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-tidyselect" ,r-tidyselect)
-       ("r-xml2" ,r-xml2)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biocfilecache
+           r-biocmanager
+           r-biocviews
+           r-dplyr
+           r-dt
+           r-gh
+           r-graph
+           r-htmltools
+           r-htmlwidgets
+           r-httr
+           r-igraph
+           r-jsonlite
+           r-magrittr
+           r-rbgl
+           r-readr
+           r-rlang
+           r-rvest
+           r-stringr
+           r-tibble
+           r-tidyr
+           r-tidyselect
+           r-xml2))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/seandavi/BiocPkgTools")
     (synopsis "Collection of tools for learning about Bioconductor packages")
     (description
@@ -11927,29 +12203,29 @@ analytics on packages.")
 (define-public r-biocset
   (package
     (name "r-biocset")
-    (version "1.6.1")
+    (version "1.8.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocSet" version))
        (sha256
         (base32
-         "0nmrg9cgq8l9w467y364jghnvym05abpj8pyj90grmrib2xc5sj2"))))
+         "1x5ar9byr85iap2x6y66j31fi17wr31awx1gl3z01sckp0dldx6w"))))
     (properties `((upstream-name . "BiocSet")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biocio" ,r-biocio)
-       ("r-dplyr" ,r-dplyr)
-       ("r-keggrest" ,r-keggrest)
-       ("r-ontologyindex" ,r-ontologyindex)
-       ("r-plyr" ,r-plyr)
-       ("r-rlang" ,r-rlang)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-annotationdbi
+           r-biocio
+           r-dplyr
+           r-keggrest
+           r-ontologyindex
+           r-plyr
+           r-rlang
+           r-s4vectors
+           r-tibble
+           r-tidyr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page
      "https://bioconductor.org/packages/BiocSet")
     (synopsis
@@ -11965,29 +12241,29 @@ accessing web references for elements/sets are also available in BiocSet.")
 (define-public r-biocworkflowtools
   (package
     (name "r-biocworkflowtools")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocWorkflowTools" version))
        (sha256
         (base32
-         "1a32bwgnxaw0gv2gij2p4rm0a6l06jjhidvfz2v4k900pz1w79av"))))
+         "1j9s8w5y8savcmh70npkanxacq1kipxnwk1wsiw5hwnp1p13ldaa"))))
     (properties
      `((upstream-name . "BiocWorkflowTools")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocstyle" ,r-biocstyle)
-       ("r-bookdown" ,r-bookdown)
-       ("r-git2r" ,r-git2r)
-       ("r-httr" ,r-httr)
-       ("r-knitr" ,r-knitr)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-stringr" ,r-stringr)
-       ("r-usethis" ,r-usethis)))
+     (list r-biocstyle
+           r-bookdown
+           r-git2r
+           r-httr
+           r-knitr
+           r-rmarkdown
+           r-rstudioapi
+           r-stringr
+           r-usethis))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/BiocWorkflowTools/")
     (synopsis "Tools to aid the development of Bioconductor Workflow packages")
     (description
@@ -11998,19 +12274,18 @@ Rmarkdown and LaTeX documents when authoring a Bioconductor Workflow.")
 (define-public r-biodist
   (package
     (name "r-biodist")
-    (version "1.64.0")
+    (version "1.66.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bioDist" version))
        (sha256
         (base32
-         "1y1x9q9aa76gbhsyfn638rxp5icjvq30fv3a4205xh7g5jwlf6yw"))))
+         "0y35c9sdq5x4q64ip0wgqz59mh01l71k1pp6n8vqbr667nwg0gdp"))))
     (properties `((upstream-name . "bioDist")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-kernsmooth" ,r-kernsmooth)))
+     (list r-biobase r-kernsmooth))
     (home-page "https://bioconductor.org/packages/bioDist/")
     (synopsis "Different distance measures")
     (description
@@ -12021,32 +12296,32 @@ distance measures.")
 (define-public r-pcatools
   (package
     (name "r-pcatools")
-    (version "2.4.0")
+    (version "2.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "PCAtools" version))
        (sha256
         (base32
-         "11idi9fwvyhkakbm63qxcdhkany8gbskis04z0p5a39lppq8ks31"))))
+         "10kfhsxhsjpzal3yvcqg769h5fz99cqqjq217cj9jip3jfh2m2h4"))))
     (properties `((upstream-name . "PCAtools")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-beachmat" ,r-beachmat)
-       ("r-bh" ,r-bh)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biocsingular" ,r-biocsingular)
-       ("r-cowplot" ,r-cowplot)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-delayedmatrixstats" ,r-delayedmatrixstats)
-       ("r-dqrng" ,r-dqrng)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-lattice" ,r-lattice)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-reshape2" ,r-reshape2)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-beachmat
+           r-bh
+           r-biocparallel
+           r-biocsingular
+           r-cowplot
+           r-delayedarray
+           r-delayedmatrixstats
+           r-dqrng
+           r-ggplot2
+           r-ggrepel
+           r-lattice
+           r-matrix
+           r-rcpp
+           r-reshape2))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/kevinblighe/PCAtools")
     (synopsis "PCAtools: everything Principal Components Analysis")
     (description
@@ -12067,23 +12342,19 @@ dimensional mass cytometry data.")
 (define-public r-rgreat
   (package
     (name "r-rgreat")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "rGREAT" version))
        (sha256
         (base32
-         "0ads9c9i8b39wvjih057zlyivj8zpsqjxf6r97yflz4sbi1jmcji"))))
+         "0kr61mhxp9phn1136fci450zwfhsipchmlm8d5rgib4lh0zbxrhl"))))
     (properties `((upstream-name . "rGREAT")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-genomicranges" ,r-genomicranges)
-       ("r-getoptlong" ,r-getoptlong)
-       ("r-iranges" ,r-iranges)
-       ("r-rcurl" ,r-rcurl)
-       ("r-rjson" ,r-rjson)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-genomicranges r-getoptlong r-iranges r-rcurl r-rjson))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/jokergoo/rGREAT")
     (synopsis "Client for GREAT analysis")
     (description
@@ -12095,28 +12366,28 @@ user's input and automatically retrieving results from GREAT web server.")
 (define-public r-m3c
   (package
     (name "r-m3c")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "M3C" version))
        (sha256
         (base32
-         "17gj4haa4ywc6bmppm342jzppl3inqa94235yspikij6c098vrmc"))))
+         "0jsql5wd58hs5mnn9wq5b4kl3z57y6amykirfb3k047zpyi8ijnh"))))
     (properties `((upstream-name . "M3C")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cluster" ,r-cluster)
-       ("r-corpcor" ,r-corpcor)
-       ("r-doparallel" ,r-doparallel)
-       ("r-dosnow" ,r-dosnow)
-       ("r-foreach" ,r-foreach)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-matrix" ,r-matrix)
-       ("r-matrixcalc" ,r-matrixcalc)
-       ("r-rtsne" ,r-rtsne)
-       ("r-umap" ,r-umap)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-cluster
+           r-corpcor
+           r-doparallel
+           r-dosnow
+           r-foreach
+           r-ggplot2
+           r-matrix
+           r-matrixcalc
+           r-rtsne
+           r-umap))
+    (native-inputs (list r-knitr))
     (home-page "https://bioconductor.org/packages/M3C")
     (synopsis "Monte Carlo reference-based consensus clustering")
     (description
@@ -12128,18 +12399,18 @@ hypothesis @code{K=1}.")
 (define-public r-icens
   (package
     (name "r-icens")
-    (version "1.64.0")
+    (version "1.66.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Icens" version))
        (sha256
         (base32
-         "1rzgwxx4w2bqsaz0xmkhi4w9zsxgms80xf59zg1xp1camyhaihlz"))))
+         "08jd7g28mazvwd3qbq8y26czmkz45avp4vy8l7i5d6qajwzqzgzs"))))
     (properties `((upstream-name . "Icens")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-survival" ,r-survival)))
+     (list r-survival))
     (home-page "https://bioconductor.org/packages/Icens")
     (synopsis "NPMLE for censored and truncated data")
     (description
@@ -12153,21 +12424,18 @@ truncated data.")
 (define-public r-interval
   (package
     (name "r-interval")
-    (version "1.1-0.7")
+    (version "1.1-0.8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "interval" version))
        (sha256
         (base32
-         "1b31lh0sv7lzy76230djipahxa10lblbr37kdiigr6hp3dd1xmz9"))))
+         "0g0k9nri19p3y3s70ic1w3i3sxq8fbsxaikd7c4d6afqzr8hk2nl"))))
     (properties `((upstream-name . "interval")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-icens" ,r-icens)
-       ("r-mlecens" ,r-mlecens)
-       ("r-perm" ,r-perm)
-       ("r-survival" ,r-survival)))
+     (list r-icens r-mlecens r-perm r-survival))
     (home-page "https://cran.r-project.org/web/packages/interval/")
     (synopsis "Weighted Logrank tests and NPMLE for interval censored data")
     (description
@@ -12191,11 +12459,7 @@ plot them, and perform logrank or Wilcoxon type tests.")
     (properties `((upstream-name . "FHtest")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-interval" ,r-interval)
-       ("r-kmsurv" ,r-kmsurv)
-       ("r-mass" ,r-mass)
-       ("r-perm" ,r-perm)
-       ("r-survival" ,r-survival)))
+     (list r-interval r-kmsurv r-mass r-perm r-survival))
     (home-page "https://cran.r-project.org/web/packages/FHtest/")
     (synopsis "Tests for survival data based on the Fleming-Harrington class")
     (description
@@ -12224,23 +12488,23 @@ with:
     (properties `((upstream-name . "FourCSeq")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biostrings" ,r-biostrings)
-       ("r-deseq2" ,r-deseq2)
-       ("r-fda" ,r-fda)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggbio" ,r-ggbio)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gtools" ,r-gtools)
-       ("r-lsd" ,r-lsd)
-       ("r-matrix" ,r-matrix)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biobase
+           r-biostrings
+           r-deseq2
+           r-fda
+           r-genomicalignments
+           r-genomicranges
+           r-ggbio
+           r-ggplot2
+           r-gtools
+           r-lsd
+           r-matrix
+           r-reshape2
+           r-rsamtools
+           r-rtracklayer
+           r-summarizedexperiment))
+    (native-inputs
+     (list r-knitr))
     (home-page
      "https://bioconductor.org/packages/release/bioc/html/FourCSeq.html")
     (synopsis "Analysis of multiplexed 4C sequencing data")
@@ -12258,14 +12522,14 @@ generated.")
 (define-public r-preprocesscore
   (package
     (name "r-preprocesscore")
-    (version "1.54.0")
+    (version "1.56.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "preprocessCore" version))
        (sha256
         (base32
-         "17a00blz4kvhmsk92bp5alj9kdpy7h1id7nk4vqxakhkb2jabr20"))))
+         "1i93vdqa6pwzamiryp3lv6cyvhx9shs01is0q6vbmdvcbii2vf3x"))))
     (properties
      `((upstream-name . "preprocessCore")))
     (build-system r-build-system)
@@ -12279,18 +12543,18 @@ routines.")
 (define-public r-s4vectors
   (package
     (name "r-s4vectors")
-    (version "0.30.0")
+    (version "0.32.3")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "S4Vectors" version))
               (sha256
                (base32
-                "0v5vxmg0a27ivgymmzfl595rcb1m3dz27r2wzbk1j97rlpwy1p4q"))))
+                "0wp29v41f9cf6khq2ww0f63nsq6219l1ycajzdqp3a2xda734ncw"))))
     (properties
      `((upstream-name . "S4Vectors")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)))
+     (list r-biocgenerics))
     (home-page "https://bioconductor.org/packages/S4Vectors")
     (synopsis "S4 implementation of vectors and lists")
     (description
@@ -12319,18 +12583,18 @@ S4Vectors package itself.")
     (properties `((upstream-name . "WGCNA")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-doparallel" ,r-doparallel)
-       ("r-dynamictreecut" ,r-dynamictreecut)
-       ("r-fastcluster" ,r-fastcluster)
-       ("r-foreach" ,r-foreach)
-       ("r-go-db" ,r-go-db)
-       ("r-hmisc" ,r-hmisc)
-       ("r-impute" ,r-impute)
-       ("r-rcpp" ,r-rcpp)
-       ("r-survival" ,r-survival)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-preprocesscore" ,r-preprocesscore)))
+     (list r-annotationdbi
+           r-doparallel
+           r-dynamictreecut
+           r-fastcluster
+           r-foreach
+           r-go-db
+           r-hmisc
+           r-impute
+           r-rcpp
+           r-survival
+           r-matrixstats
+           r-preprocesscore))
     (home-page
      "http://www.genetics.ucla.edu/labs/horvath/CoexpressionNetwork/Rpackages/WGCNA/")
     (synopsis "Weighted correlation network analysis")
@@ -12346,14 +12610,14 @@ data manipulation and visualization.")
 (define-public r-rgraphviz
   (package
     (name "r-rgraphviz")
-    (version "2.36.0")
+    (version "2.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rgraphviz" version))
        (sha256
         (base32
-         "0d0xq1vgr4b165cn4wg7zmfjyc1d9ir4amgs196j4cgrhpmrnl8s"))))
+         "0fyv1ybpahkwz3fawzxgxfnshi8y7c18262rgdmqwdl5662vv1p7"))))
     (properties `((upstream-name . "Rgraphviz")))
     (build-system r-build-system)
     (arguments
@@ -12369,11 +12633,11 @@ data manipulation and visualization.")
     ;; FIXME: Rgraphviz bundles the sources of an older variant of
     ;; graphviz.  It does not build with the latest version of graphviz, so
     ;; we do not add graphviz to the inputs.
-    (inputs `(("zlib" ,zlib)))
+    (inputs (list zlib))
     (propagated-inputs
-     `(("r-graph" ,r-graph)))
+     (list r-graph))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://bioconductor.org/packages/Rgraphviz")
     (synopsis "Plotting capabilities for R graph objects")
     (description
@@ -12384,21 +12648,19 @@ objects from the @code{graph} package.")
 (define-public r-fithic
   (package
     (name "r-fithic")
-    (version "1.18.0")
+    (version "1.20.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "FitHiC" version))
               (sha256
                (base32
-                "1p8a6lis5yswaj647bjw89harlarnsxmvjzz63fn1l6gxrwhh8bx"))))
+                "0a3d2bxp98lmbf3i864zgfwxwvxyqfcrh75z9yz7ra7y44pkjr4y"))))
     (properties `((upstream-name . "FitHiC")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-fdrtool" ,r-fdrtool)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-data-table r-fdrtool r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/FitHiC")
     (synopsis "Confidence estimation for intra-chromosomal contact maps")
     (description
@@ -12410,23 +12672,23 @@ assays such as Hi-C.")
 (define-public r-hitc
   (package
     (name "r-hitc")
-    (version "1.36.0")
+    (version "1.38.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "HiTC" version))
               (sha256
                (base32
-                "0s3kfqs3zlmq61hxdmxpmi9gfs9w3byckw7xzp1hrhdbsl46yvgq"))))
+                "1ckiwqfq86k8p3y36iwr7k3y6g4z80n8hb047c0i2491lrn23rhx"))))
     (properties `((upstream-name . "HiTC")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biostrings" ,r-biostrings)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-matrix" ,r-matrix)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rtracklayer" ,r-rtracklayer)))
+     (list r-biostrings
+           r-genomeinfodb
+           r-genomicranges
+           r-iranges
+           r-matrix
+           r-rcolorbrewer
+           r-rtracklayer))
     (home-page "https://bioconductor.org/packages/HiTC")
     (synopsis "High throughput chromosome conformation capture analysis")
     (description
@@ -12439,27 +12701,27 @@ provided.")
 (define-public r-hdf5array
   (package
     (name "r-hdf5array")
-    (version "1.20.0")
+    (version "1.22.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "HDF5Array" version))
        (sha256
         (base32
-         "1718hplz5qlbwxwb87509bl7lir9kilvn1s7p2haz551pg48zvrc"))))
+         "1al4a88pgdl7hfhphsnwl1gg1c1kmw37wcdr4v4pfsw5l8ff7nx4"))))
     (properties `((upstream-name . "HDF5Array")))
     (build-system r-build-system)
     (inputs
-     `(("zlib" ,zlib)))
-    (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-iranges" ,r-iranges)
-       ("r-matrix" ,r-matrix)
-       ("r-rhdf5" ,r-rhdf5)
-       ("r-rhdf5filters" ,r-rhdf5filters)
-       ("r-rhdf5lib" ,r-rhdf5lib)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list zlib))
+    (propagated-inputs
+     (list r-biocgenerics
+           r-delayedarray
+           r-iranges
+           r-matrix
+           r-rhdf5
+           r-rhdf5filters
+           r-rhdf5lib
+           r-s4vectors))
     (home-page "https://bioconductor.org/packages/HDF5Array")
     (synopsis "HDF5 back end for DelayedArray objects")
     (description "This package provides an array-like container for convenient
@@ -12470,14 +12732,14 @@ block processing.")
 (define-public r-rhdf5lib
   (package
     (name "r-rhdf5lib")
-    (version "1.14.2")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rhdf5lib" version))
        (sha256
         (base32
-         "1cwynbcaaxmbh45fc0d264liqdj0wbjlj7k2bsq3qfjbnh6kkam5"))
+         "0yly9s3wdnhd9ci2jxfkql38ibv35yzs38a6g6ashbg1m5kgwd9p"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -12539,8 +12801,7 @@ block processing.")
                  (("cp \"\\$\\{SZIP_LIB\\}.*") "")
                  (("PKG_LIBS =.*") "PKG_LIBS = -lz -lhdf5\n"))))))))
     (propagated-inputs
-     `(("hdf5" ,hdf5-1.10)
-       ("zlib" ,zlib)))
+     (list hdf5-1.10 zlib))
     (native-inputs
      `(("hdf5-source" ,(package-source hdf5-1.10))
        ("r-knitr" ,r-knitr)))
@@ -12553,22 +12814,19 @@ packages.")
 (define-public r-beachmat
   (package
     (name "r-beachmat")
-    (version "2.8.1")
+    (version "2.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "beachmat" version))
        (sha256
         (base32
-         "06bpfpddsl49csxrs8hlx5pv0absc2wdcparchf8qqaqydazwci2"))))
+         "1l8c9q35mf90ckb366bcfqa0v2gw7ahs2h362j7cwv8fp39h4mpb"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-biocgenerics r-delayedarray r-matrix r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/beachmat")
     (synopsis "Compiling Bioconductor to handle each matrix type")
     (description "This package provides a consistent C++ class interface for a
@@ -12582,38 +12840,38 @@ matrices.")
 (define-public r-cner
   (package
     (name "r-cner")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "CNEr" version))
        (sha256
-        (base32 "13w0gsfm7k29dp5nb0c9sb2ix506ph6dixsjis6xxcz6acq7lg2k"))))
+        (base32 "0w4iqmyyhsb6l9bi8c6qwdh4j6z2i1i5fi85ia9069fpl9d0hpl2"))))
     (properties `((upstream-name . "CNEr")))
     (build-system r-build-system)
-    (inputs `(("zlib" ,zlib)))
-    (propagated-inputs
-     `(("r-annotate" ,r-annotate)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-dbi" ,r-dbi)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-go-db" ,r-go-db)
-       ("r-iranges" ,r-iranges)
-       ("r-keggrest" ,r-keggrest)
-       ("r-powerlaw" ,r-powerlaw)
-       ("r-r-utils" ,r-r-utils)
-       ("r-readr" ,r-readr)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-xvector" ,r-xvector)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+    (inputs (list zlib))
+    (propagated-inputs
+     (list r-annotate
+           r-biocgenerics
+           r-biostrings
+           r-dbi
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicranges
+           r-ggplot2
+           r-go-db
+           r-iranges
+           r-keggrest
+           r-powerlaw
+           r-r-utils
+           r-readr
+           r-reshape2
+           r-rsqlite
+           r-rtracklayer
+           r-s4vectors
+           r-xvector))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/ge11232002/CNEr")
     (synopsis "CNE Detection and Visualization")
     (description
@@ -12630,38 +12888,38 @@ advanced visualization of sets of conserved noncoding elements.")
 (define-public r-tfbstools
   (package
     (name "r-tfbstools")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "TFBSTools" version))
        (sha256
         (base32
-         "1avgjv2nyr28cla0z9dvh3v0hr1f561sz2as1k53a42irbjk0var"))))
+         "0j5gv145fczzdspwhbywlg47y05pgnkra9jg7bn4wa1k0cf5pr9g"))))
     (properties `((upstream-name . "TFBSTools")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-catools" ,r-catools)
-       ("r-cner" ,r-cner)
-       ("r-dbi" ,r-dbi)
-       ("r-dirichletmultinomial" ,r-dirichletmultinomial)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-gtools" ,r-gtools)
-       ("r-iranges" ,r-iranges)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-seqlogo" ,r-seqlogo)
-       ("r-tfmpvalue" ,r-tfmpvalue)
-       ("r-xml" ,r-xml)
-       ("r-xvector" ,r-xvector)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-biobase
+           r-biocgenerics
+           r-biocparallel
+           r-biostrings
+           r-bsgenome
+           r-catools
+           r-cner
+           r-dbi
+           r-dirichletmultinomial
+           r-genomeinfodb
+           r-genomicranges
+           r-gtools
+           r-iranges
+           r-rsqlite
+           r-rtracklayer
+           r-s4vectors
+           r-seqlogo
+           r-tfmpvalue
+           r-xml
+           r-xvector))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/ge11232002/TFBSTools")
     (synopsis "Transcription factor binding site (TFBS) analysis")
     (description
@@ -12673,33 +12931,57 @@ scan putative TFBS from sequence/alignment, query JASPAR database and
 provides a wrapper of de novo motif discovery software.")
     (license license:gpl2)))
 
+(define-public r-maftools
+  (package
+    (name "r-maftools")
+    (version "2.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "maftools" version))
+       (sha256
+        (base32 "1s8w3xwwigz803l81bs9cb2dbvvw5r9z8jjcav1rmh9wm8909nfd"))))
+    (properties `((upstream-name . "maftools")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-data-table 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")
+    (description
+     "Analyze and visualize Mutation Annotation Format (MAF) files from large
+scale sequencing studies.  This package provides various functions to perform
+most commonly used analyses in cancer genomics and to create feature rich
+customizable visualzations with minimal effort.")
+    (license license:expat)))
+
 (define-public r-motifmatchr
   (package
     (name "r-motifmatchr")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "motifmatchr" version))
        (sha256
         (base32
-         "1vif3dp4lv4jz1pxsq0ig791ir8q65jmrlqmkyfxpfxfj5alqnbm"))))
+         "0f7j54zdn51h1gcn81vqs8avmschjwqprjcfpvsi00q4fna3fg7z"))))
     (properties `((upstream-name . "motifmatchr")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-tfbstools" ,r-tfbstools)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-biostrings
+           r-bsgenome
+           r-genomeinfodb
+           r-genomicranges
+           r-iranges
+           r-matrix
+           r-rcpp
+           r-rcpparmadillo
+           r-rsamtools
+           r-s4vectors
+           r-summarizedexperiment
+           r-tfbstools))
+    (native-inputs (list r-knitr))
     (home-page "https://bioconductor.org/packages/motifmatchr")
     (synopsis "Fast motif matching in R")
     (description
@@ -12710,39 +12992,39 @@ This package wraps C++ code from the MOODS motif calling library.")
 (define-public r-chromvar
   (package
     (name "r-chromvar")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "chromVAR" version))
        (sha256
-        (base32 "1birmwvcvl2hb5ygbsb3wvbdfayqqs53j1bks46cbkq7ybigfyar"))))
+        (base32 "0ylsfr540l763bh010irbcavlskahyb1769pppimdgn22gyr3spk"))))
     (properties `((upstream-name . "chromVAR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-dt" ,r-dt)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-iranges" ,r-iranges)
-       ("r-matrix" ,r-matrix)
-       ("r-miniui" ,r-miniui)
-       ("r-nabor" ,r-nabor)
-       ("r-plotly" ,r-plotly)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtsne" ,r-rtsne)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-shiny" ,r-shiny)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-tfbstools" ,r-tfbstools)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-biocgenerics
+           r-biocparallel
+           r-biostrings
+           r-bsgenome
+           r-dt
+           r-genomeinfodb
+           r-genomicranges
+           r-ggplot2
+           r-iranges
+           r-matrix
+           r-miniui
+           r-nabor
+           r-plotly
+           r-rcolorbrewer
+           r-rcpp
+           r-rcpparmadillo
+           r-rsamtools
+           r-rtsne
+           r-s4vectors
+           r-shiny
+           r-summarizedexperiment
+           r-tfbstools))
+    (native-inputs (list r-knitr))
     (home-page "https://bioconductor.org/packages/release/bioc/html/chromVAR.html")
     (synopsis "Determine chromatin variation across regions")
     (description
@@ -12757,25 +13039,22 @@ sequence (@code{DNAse-seq}) experiments.")
 (define-public r-singlecellexperiment
   (package
     (name "r-singlecellexperiment")
-    (version "1.14.1")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "SingleCellExperiment" version))
        (sha256
         (base32
-         "1bwdhx0ss0s8f4xdgwd7x48apn849x4dyb5hbyglcz31r5vh1qgz"))))
+         "01075vbs8hy399pxalav9rbkz4djvl84ip559jkz51fypd0m4i39"))))
     (properties
      `((upstream-name . "SingleCellExperiment")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+     (list r-biocgenerics r-delayedarray r-genomicranges r-s4vectors
+           r-summarizedexperiment))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/SingleCellExperiment")
     (synopsis "S4 classes for single cell data")
     (description "This package defines an S4 class for storing data from
@@ -12785,32 +13064,64 @@ factors for each cell, along with the usual metadata for genes and
 libraries.")
     (license license:gpl3)))
 
+(define-public r-singler
+  (package
+    (name "r-singler")
+    (version "1.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "SingleR" version))
+       (sha256
+        (base32 "19lsn3cpghkhfbx4jqgbwwrnacrl7vj3r91ymd1gk02c9pn5dmci"))))
+    (properties `((upstream-name . "SingleR")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-beachmat
+           r-biocneighbors
+           r-biocparallel
+           r-biocsingular
+           r-delayedarray
+           r-delayedmatrixstats
+           r-matrix
+           r-rcpp
+           r-s4vectors
+           r-summarizedexperiment))
+    (native-inputs (list r-knitr))
+    (home-page "https://github.com/LTLA/SingleR")
+    (synopsis "Reference-based single-cell RNA-seq annotation")
+    (description
+     "This package performs unbiased cell type recognition from single-cell
+RNA sequencing data, by leveraging reference transcriptomic datasets of pure
+cell types to infer the cell of origin of each single cell independently.")
+    (license license:gpl3)))
+
 (define-public r-scuttle
   (package
     (name "r-scuttle")
-    (version "1.2.1")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scuttle" version))
        (sha256
         (base32
-         "015k879gg2r39lp6mz26jwmysa56k0ial6v74zzmbi8hnz9zic3i"))))
+         "1dbdb6yc6wk01dljy1vy6f0lf44crc5rxxnc4bhjk8i4iljz8467"))))
     (properties `((upstream-name . "scuttle")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-beachmat" ,r-beachmat)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-delayedmatrixstats" ,r-delayedmatrixstats)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-singlecellexperiment" ,r-singlecellexperiment)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-beachmat
+           r-biocgenerics
+           r-biocparallel
+           r-delayedarray
+           r-delayedmatrixstats
+           r-genomicranges
+           r-matrix
+           r-rcpp
+           r-s4vectors
+           r-singlecellexperiment
+           r-summarizedexperiment))
+    (native-inputs (list r-knitr))
     (home-page "https://bioconductor.org/packages/scuttle")
     (synopsis "Single-cell RNA-Seq analysis utilities")
     (description
@@ -12823,36 +13134,37 @@ of other packages.")
 (define-public r-scater
   (package
     (name "r-scater")
-    (version "1.20.1")
+    (version "1.22.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "scater" version))
               (sha256
                (base32
-                "1046fgf93dda3y2z5ilrjdczz7klj67ag63p4p1h03965wpj9vfn"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-beachmat" ,r-beachmat)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocneighbors" ,r-biocneighbors)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biocsingular" ,r-biocsingular)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-delayedmatrixstats" ,r-delayedmatrixstats)
-       ("r-ggbeeswarm" ,r-ggbeeswarm)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-matrix" ,r-matrix)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rlang" ,r-rlang)
-       ("r-rtsne" ,r-rtsne)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-scuttle" ,r-scuttle)
-       ("r-singlecellexperiment" ,r-singlecellexperiment)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-viridis" ,r-viridis)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+                "0k4i9pwmwxcr5a40ljl27wriccwn5vc52xy48yjjh8ppl5dbggdg"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-beachmat
+           r-biocgenerics
+           r-biocneighbors
+           r-biocparallel
+           r-biocsingular
+           r-delayedarray
+           r-delayedmatrixstats
+           r-ggbeeswarm
+           r-ggplot2
+           r-ggrepel
+           r-gridextra
+           r-matrix
+           r-rcolorbrewer
+           r-rlang
+           r-rtsne
+           r-s4vectors
+           r-scuttle
+           r-singlecellexperiment
+           r-summarizedexperiment
+           r-viridis))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/davismcc/scater")
     (synopsis "Single-cell analysis toolkit for gene expression data in R")
     (description "This package provides a collection of tools for doing
@@ -12863,38 +13175,38 @@ quality control.")
 (define-public r-scran
   (package
     (name "r-scran")
-    (version "1.20.1")
+    (version "1.22.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scran" version))
        (sha256
         (base32
-         "0ilzp6ngw9pq88gk79iic2zxfh5jaic6lnq3xfwc9a269bjylff0"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-beachmat" ,r-beachmat)
-       ("r-bh" ,r-bh)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biocsingular" ,r-biocsingular)
-       ("r-bluster" ,r-bluster)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-delayedmatrixstats" ,r-delayedmatrixstats)
-       ("r-dqrng" ,r-dqrng)
-       ("r-edger" ,r-edger)
-       ("r-igraph" ,r-igraph)
-       ("r-limma" ,r-limma)
-       ("r-matrix" ,r-matrix)
-       ("r-metapod" ,r-metapod)
-       ("r-rcpp" ,r-rcpp)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-scuttle" ,r-scuttle)
-       ("r-singlecellexperiment" ,r-singlecellexperiment)
-       ("r-statmod" ,r-statmod)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+         "06lcxya6rpa8dv0il7m7fwyx0ci1y1jn16ff5lmvzf2mnr6q7lic"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-beachmat
+           r-bh
+           r-biocgenerics
+           r-biocparallel
+           r-biocsingular
+           r-bluster
+           r-delayedarray
+           r-delayedmatrixstats
+           r-dqrng
+           r-edger
+           r-igraph
+           r-limma
+           r-matrix
+           r-metapod
+           r-rcpp
+           r-s4vectors
+           r-scuttle
+           r-singlecellexperiment
+           r-statmod
+           r-summarizedexperiment))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/scran")
     (synopsis "Methods for single-cell RNA-Seq data analysis")
     (description "This package implements a variety of low-level analyses of
@@ -12906,23 +13218,20 @@ variable and significantly correlated genes.")
 (define-public r-sparsematrixstats
   (package
     (name "r-sparsematrixstats")
-    (version "1.4.2")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "sparseMatrixStats" version))
        (sha256
         (base32
-         "0b22kzg751zlkcbs8pi0bcqrsj3imsg35qfvxfrqb7gav7qznc8v"))))
+         "0ifqj4a6mn4749sr62gq3dwd6mmbbzdx5mh5b5663vcgl1kw96x1"))))
     (properties
      `((upstream-name . "sparseMatrixStats")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)
-       ("r-matrixgenerics" ,r-matrixgenerics)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-rcpp" ,r-rcpp)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-matrix r-matrixgenerics r-matrixstats r-rcpp))
+    (native-inputs (list r-knitr))
     (home-page "https://bioconductor.org/packages/sparseMatrixStats/")
     (synopsis "Summary statistics for rows and columns of sparse matrices")
     (description
@@ -12934,27 +13243,27 @@ data in the column sparse format.")
 (define-public r-delayedmatrixstats
   (package
     (name "r-delayedmatrixstats")
-    (version "1.14.2")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DelayedMatrixStats" version))
        (sha256
         (base32
-         "1avzd3fj4am9klmlx03nwq2pvgx7646yjwha1gqf0cbx5hibxy02"))))
+         "1pqwkk39rfhcnhmgchk0gfmm4jgasl19yq0nhhwsfj45y2vk6kjk"))))
     (properties
      `((upstream-name . "DelayedMatrixStats")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-delayedarray" ,r-delayedarray)
-       ("r-iranges" ,r-iranges)
-       ("r-matrix" ,r-matrix)
-       ("r-matrixgenerics" ,r-matrixgenerics)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-sparsematrixstats" ,r-sparsematrixstats)))
+     (list r-delayedarray
+           r-iranges
+           r-matrix
+           r-matrixgenerics
+           r-matrixstats
+           r-s4vectors
+           r-sparsematrixstats))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/PeteHaitch/DelayedMatrixStats")
     (synopsis "Functions that apply to rows and columns of DelayedMatrix objects")
     (description
@@ -12970,23 +13279,20 @@ memory usage and processing time is minimized.")
 (define-public r-mscoreutils
   (package
     (name "r-mscoreutils")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MsCoreUtils" version))
        (sha256
         (base32
-         "13g8a726vsyjs6m1kd42vf8avdnmhykxhl6z3j2njzkp2jg17pd8"))))
+         "1w8d1v2r3plwwcz23zhbpvklhapf2a6x3xmglyh4sh6sy9ynkgrv"))))
     (properties `((upstream-name . "MsCoreUtils")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-clue" ,r-clue)
-       ("r-mass" ,r-mass)
-       ("r-rcpp" ,r-rcpp)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-clue r-mass r-rcpp r-s4vectors))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/RforMassSpectrometry/MsCoreUtils")
     (synopsis "Core utils for mass spectrometry data")
     (description
@@ -12999,24 +13305,53 @@ well as misc helper functions, that are used across high-level data structure
 within the R for Mass Spectrometry packages.")
     (license license:artistic2.0)))
 
+(define-public r-msfeatures
+  (package
+    (name "r-msfeatures")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "MsFeatures" version))
+       (sha256
+        (base32 "020ifrijlzdd3qk4bhd9z4knj5d87ildrkl3wcmxvwkvs9rbh8rq"))))
+    (properties `((upstream-name . "MsFeatures")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-mscoreutils r-protgenerics r-summarizedexperiment))
+    (native-inputs
+     (list r-knitr))
+    (home-page "https://github.com/RforMassSpectrometry/MsFeatures")
+    (synopsis "Functionality for mass spectrometry features")
+    (description
+     "The MsFeature package defines functionality for Mass Spectrometry
+features.  This includes functions to group (LC-MS) features based on some of
+their properties, such as retention time (coeluting features), or correlation
+of signals across samples.  This package hence can be used to group features, and
+its results can be used as an input for the @code{QFeatures} package which
+allows aggregating abundance levels of features within each group.  This
+package defines concepts and functions for base and common data types,
+implementations for more specific data types are expected to be implemented in
+the respective packages (such as e.g. @code{xcms}).")
+    (license license:artistic2.0)))
+
 (define-public r-biocio
   (package
     (name "r-biocio")
-    (version "1.2.0")
+    (version "1.4.0")
     (source
       (origin
         (method url-fetch)
         (uri (bioconductor-uri "BiocIO" version))
         (sha256
           (base32
-            "0skwnpxl6fkqihidpqrfzzh7b05x11j6jwkiinmhggmv0ggjb5ph"))))
+            "1qg6v961sbj7qwyjx4z720f6h0kq693p7gc8q99my7gqkbbcxrfr"))))
     (properties `((upstream-name . "BiocIO")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-s4vectors" ,r-s4vectors)))
+     (list r-biocgenerics r-s4vectors))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/BiocIO")
     (synopsis "Standard input and output for Bioconductor packages")
     (description
@@ -13036,21 +13371,18 @@ as well as local access.  Developers can register a file extension, e.g.,
 (define-public r-msmseda
   (package
     (name "r-msmseda")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "msmsEDA" version))
        (sha256
         (base32
-         "0555a3riyp781mlffmnf93igfq8vl8wjk51pa9qb48qkdn6y8pfc"))))
+         "1jammjkjjkcqad2ki02l2pdf4jybyh71hv463aya2ylmzsin5vi9"))))
     (properties `((upstream-name . "msmsEDA")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-gplots" ,r-gplots)
-       ("r-mass" ,r-mass)
-       ("r-msnbase" ,r-msnbase)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)))
+     (list r-gplots r-mass r-msnbase r-rcolorbrewer))
     (home-page
      "https://bioconductor.org/packages/msmsEDA")
     (synopsis "Exploratory data analysis of LC-MS/MS data by spectral counts")
@@ -13062,21 +13394,18 @@ experiments, and visualize de influence of the involved factors.")
 (define-public r-msmstests
   (package
     (name "r-msmstests")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "msmsTests" version))
        (sha256
         (base32
-         "11vhy1l6za73dpdj85q4ksaghgd8vb2h8v9iirmsn2vpajqrvgjh"))))
+         "0xmjgd8rqpb8i7d46pvnj7da2di8bwfdncr48b8hgylkc98ghznb"))))
     (properties `((upstream-name . "msmsTests")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-edger" ,r-edger)
-       ("r-msmseda" ,r-msmseda)
-       ("r-msnbase" ,r-msnbase)
-       ("r-qvalue" ,r-qvalue)))
+     (list r-edger r-msmseda r-msnbase r-qvalue))
     (home-page
      "https://bioconductor.org/packages/msmsTests")
     (synopsis "Differential LC-MS/MS expression tests")
@@ -13094,45 +13423,45 @@ relevant, and the minimum expression of the most abundant condition.")
 (define-public r-catalyst
   (package
     (name "r-catalyst")
-    (version "1.16.2")
+    (version "1.18.0")
     (source
       (origin
         (method url-fetch)
         (uri (bioconductor-uri "CATALYST" version))
         (sha256
           (base32
-            "1vw8x54hwgcyn29k81zcvawawy2iy2qgp49gjpb830q04gx6yc6h"))))
+            "15lah45lf16zh1ankbpjvz8zp38lldvq074nmvb99rhhqys2gbgi"))))
     (properties `((upstream-name . "CATALYST")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-circlize" ,r-circlize)
-        ("r-complexheatmap" ,r-complexheatmap)
-        ("r-consensusclusterplus" ,r-consensusclusterplus)
-        ("r-cowplot" ,r-cowplot)
-        ("r-data-table" ,r-data-table)
-        ("r-dplyr" ,r-dplyr)
-        ("r-drc" ,r-drc)
-        ("r-flowcore" ,r-flowcore)
-        ("r-flowsom" ,r-flowsom)
-        ("r-ggplot2" ,r-ggplot2)
-        ("r-ggrepel" ,r-ggrepel)
-        ("r-ggridges" ,r-ggridges)
-        ("r-gridextra" ,r-gridextra)
-        ("r-magrittr" ,r-magrittr)
-        ("r-matrix" ,r-matrix)
-        ("r-matrixstats" ,r-matrixstats)
-        ("r-nnls" ,r-nnls)
-        ("r-purrr" ,r-purrr)
-        ("r-rcolorbrewer" ,r-rcolorbrewer)
-        ("r-reshape2" ,r-reshape2)
-        ("r-rtsne" ,r-rtsne)
-        ("r-s4vectors" ,r-s4vectors)
-        ("r-scales" ,r-scales)
-        ("r-scater" ,r-scater)
-        ("r-singlecellexperiment" ,r-singlecellexperiment)
-        ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+      (list r-circlize
+            r-complexheatmap
+            r-consensusclusterplus
+            r-cowplot
+            r-data-table
+            r-dplyr
+            r-drc
+            r-flowcore
+            r-flowsom
+            r-ggplot2
+            r-ggrepel
+            r-ggridges
+            r-gridextra
+            r-magrittr
+            r-matrix
+            r-matrixstats
+            r-nnls
+            r-purrr
+            r-rcolorbrewer
+            r-reshape2
+            r-rtsne
+            r-s4vectors
+            r-scales
+            r-scater
+            r-singlecellexperiment
+            r-summarizedexperiment))
+    (native-inputs
+     (list r-knitr))
     (home-page
       "https://github.com/HelenaLC/CATALYST")
     (synopsis "Cytometry data analysis tools")
@@ -13152,32 +13481,32 @@ standards, ii) single-cell deconvolution, and iii) bead-based compensation.")
 (define-public r-erma
   (package
     (name "r-erma")
-    (version "1.8.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "erma" version))
        (sha256
         (base32
-         "02a9702sasgighwb0f9ii8n30ngfx1hjnppaay1f5zsigr8vqalz"))))
+         "0pb9ar1wy613vg6sfdmn8n4cfv1328m8bagnigsjdb3hc3hbir4z"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicfiles" ,r-genomicfiles)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-homo-sapiens" ,r-homo-sapiens)
-       ("r-iranges" ,r-iranges)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-shiny" ,r-shiny)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+     (list r-annotationdbi
+           r-biobase
+           r-biocgenerics
+           r-biocparallel
+           r-genomeinfodb
+           r-genomicfiles
+           r-genomicranges
+           r-ggplot2
+           r-homo-sapiens
+           r-iranges
+           r-rtracklayer
+           r-s4vectors
+           r-shiny
+           r-summarizedexperiment))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/erma")
     (synopsis "Epigenomic road map adventures")
     (description
@@ -13192,14 +13521,14 @@ by Ernst and Kellis.")
 (define-public r-ggbio
   (package
     (name "r-ggbio")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ggbio" version))
        (sha256
         (base32
-         "0k3dxacrwgyrkvm7ggc2s1s1pbfs6c0a7ngykkj7jnc73czvnilx"))))
+         "1svmjaa3gisi39sl52337drvd54havcy5pjmwrykgykz5flid2m7"))))
     (build-system r-build-system)
     (arguments
      `(#:phases
@@ -13212,35 +13541,35 @@ by Ernst and Kellis.")
                (("fechable") "fetchable"))
              #t)))))
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-annotationfilter" ,r-annotationfilter)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-biovizbase" ,r-biovizbase)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-ensembldb" ,r-ensembldb)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggally" ,r-ggally)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-gtable" ,r-gtable)
-       ("r-hmisc" ,r-hmisc)
-       ("r-iranges" ,r-iranges)
-       ("r-organismdbi" ,r-organismdbi)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rlang" ,r-rlang)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-scales" ,r-scales)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-variantannotation" ,r-variantannotation)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationdbi
+           r-annotationfilter
+           r-biobase
+           r-biocgenerics
+           r-biostrings
+           r-biovizbase
+           r-bsgenome
+           r-ensembldb
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicfeatures
+           r-genomicranges
+           r-ggally
+           r-ggplot2
+           r-gridextra
+           r-gtable
+           r-hmisc
+           r-iranges
+           r-organismdbi
+           r-reshape2
+           r-rlang
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors
+           r-scales
+           r-summarizedexperiment
+           r-variantannotation))
+    (native-inputs
+     (list r-knitr))
     (home-page "http://www.tengfei.name/ggbio/")
     (synopsis "Visualization tools for genomic data")
     (description
@@ -13278,21 +13607,21 @@ interval to data view, mismatch pileup, and several splicing summaries.")
                (("importFrom\\(ff,.*") "import(ff)\n"))
              #t)))))
     (propagated-inputs
-     `(("r-batchjobs" ,r-batchjobs)
-       ("r-bbmisc" ,r-bbmisc)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-bit" ,r-bit)
-       ("r-doparallel" ,r-doparallel)
-       ("r-ff" ,r-ff)
-       ("r-ffbase" ,r-ffbase)
-       ("r-foreach" ,r-foreach)
-       ("r-genomicfiles" ,r-genomicfiles)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-batchjobs
+           r-bbmisc
+           r-biocgenerics
+           r-bit
+           r-doparallel
+           r-ff
+           r-ffbase
+           r-foreach
+           r-genomicfiles
+           r-genomicranges
+           r-rtracklayer
+           r-s4vectors
+           r-summarizedexperiment))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/gQTLBase")
     (synopsis "Infrastructure for eQTL, mQTL and similar studies")
     (description
@@ -13315,38 +13644,38 @@ and more.")
     (properties `((upstream-name . "gQTLstats")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-batchjobs" ,r-batchjobs)
-       ("r-bbmisc" ,r-bbmisc)
-       ("r-beeswarm" ,r-beeswarm)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-doparallel" ,r-doparallel)
-       ("r-dplyr" ,r-dplyr)
-       ("r-erma" ,r-erma)
-       ("r-ffbase" ,r-ffbase)
-       ("r-foreach" ,r-foreach)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicfiles" ,r-genomicfiles)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggbeeswarm" ,r-ggbeeswarm)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gqtlbase" ,r-gqtlbase)
-       ("r-hardyweinberg" ,r-hardyweinberg)
-       ("r-homo-sapiens" ,r-homo-sapiens)
-       ("r-iranges" ,r-iranges)
-       ("r-limma" ,r-limma)
-       ("r-mgcv" ,r-mgcv)
-       ("r-plotly" ,r-plotly)
-       ("r-reshape2" ,r-reshape2)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-shiny" ,r-shiny)
-       ("r-snpstats" ,r-snpstats)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-variantannotation" ,r-variantannotation)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationdbi
+           r-batchjobs
+           r-bbmisc
+           r-beeswarm
+           r-biobase
+           r-biocgenerics
+           r-doparallel
+           r-dplyr
+           r-erma
+           r-ffbase
+           r-foreach
+           r-genomeinfodb
+           r-genomicfeatures
+           r-genomicfiles
+           r-genomicranges
+           r-ggbeeswarm
+           r-ggplot2
+           r-gqtlbase
+           r-hardyweinberg
+           r-homo-sapiens
+           r-iranges
+           r-limma
+           r-mgcv
+           r-plotly
+           r-reshape2
+           r-s4vectors
+           r-shiny
+           r-snpstats
+           r-summarizedexperiment
+           r-variantannotation))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/gQTLstats")
     (synopsis "Computationally efficient analysis for eQTL and allied studies")
     (description
@@ -13360,41 +13689,41 @@ family of feature/genome hypotheses.")
 (define-public r-gviz
   (package
     (name "r-gviz")
-    (version "1.36.2")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Gviz" version))
        (sha256
         (base32
-         "0lp0k8jd4dfsfn10706124graaqnzcyv1siblvm8dn2ykw2rc6vl"))))
+         "0nqa7m300d7gpsayb6c6rv64d3y8c390wvwgz7v29zs9c025s9a8"))))
     (properties `((upstream-name . "Gviz")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biomart" ,r-biomart)
-       ("r-biostrings" ,r-biostrings)
-       ("r-biovizbase" ,r-biovizbase)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-digest" ,r-digest)
-       ("r-ensembldb" ,r-ensembldb)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-lattice" ,r-lattice)
-       ("r-latticeextra" ,r-latticeextra)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-xvector" ,r-xvector)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationdbi
+           r-biobase
+           r-biocgenerics
+           r-biomart
+           r-biostrings
+           r-biovizbase
+           r-bsgenome
+           r-digest
+           r-ensembldb
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicfeatures
+           r-genomicranges
+           r-iranges
+           r-lattice
+           r-latticeextra
+           r-matrixstats
+           r-rcolorbrewer
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors
+           r-xvector))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/Gviz")
     (synopsis "Plotting data and annotation information along genomic coordinates")
     (description
@@ -13409,30 +13738,30 @@ with your data.")
 (define-public r-gwascat
   (package
     (name "r-gwascat")
-    (version "2.24.0")
+    (version "2.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "gwascat" version))
        (sha256
         (base32
-         "0109cxsviq1sk5hfwkjzd0y1kpm934287asjjd0j8jhh4b0ah2b2"))))
+         "0s67jgk3gnfiyfjwhq4r5xlfnip29blis4fg75kn4qmvjv5j2pxx"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-annotationhub" ,r-annotationhub)
-       ("r-biocfilecache" ,r-biocfilecache)
-       ("r-biostrings" ,r-biostrings)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-readr" ,r-readr)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-snpstats" ,r-snpstats)
-       ("r-variantannotation" ,r-variantannotation)))
+     (list r-annotationdbi
+           r-annotationhub
+           r-biocfilecache
+           r-biostrings
+           r-genomeinfodb
+           r-genomicfeatures
+           r-genomicranges
+           r-iranges
+           r-readr
+           r-s4vectors
+           r-snpstats
+           r-variantannotation))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/gwascat")
     (synopsis "Tools for data in the EMBL-EBI GWAS catalog")
     (description
@@ -13443,20 +13772,17 @@ EMBL-EBI GWAS catalog.")
 (define-public r-kegggraph
   (package
     (name "r-kegggraph")
-    (version "1.52.0")
+    (version "1.54.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "KEGGgraph" version))
        (sha256
-        (base32 "0zxdph5hzr3kzj2g1mjqpiviwa189a5sq4bw7wiry6r79fdnklqs"))))
+        (base32 "1qqvbv1sq9j570syb2802ya2ffg1k8f1w986wr6ksqkwxb9qbbm4"))))
     (properties `((upstream-name . "KEGGgraph")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-graph" ,r-graph)
-       ("r-rcurl" ,r-rcurl)
-       ("r-rgraphviz" ,r-rgraphviz)
-       ("r-xml" ,r-xml)))
+     (list r-graph r-rcurl r-rgraphviz r-xml))
     (home-page "https://bioconductor.org/packages/KEGGgraph")
     (synopsis "Graph approach to Kegg Pathway database in R and Bioconductor")
     (description
@@ -13470,28 +13796,28 @@ functionalities including parsing, graph operation, visualization and etc.")
 (define-public r-ldblock
   (package
     (name "r-ldblock")
-    (version "1.22.1")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ldblock" version))
        (sha256
         (base32
-         "16vp5psmigxdkkd6fbivb6s8mvd7rsnm771wsbjvayl2y7ig7kq4"))))
+         "1v9b372d5hpwwik6956mfwc9b3bibygz042i4nydsklnbwm5vcmg"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-ensdb-hsapiens-v75" ,r-ensdb-hsapiens-v75)
-       ("r-ensembldb" ,r-ensembldb)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicfiles" ,r-genomicfiles)
-       ("r-httr" ,r-httr)
-       ("r-matrix" ,r-matrix)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-snpstats" ,r-snpstats)
-       ("r-variantannotation" ,r-variantannotation)))
+     (list r-biocgenerics
+           r-ensdb-hsapiens-v75
+           r-ensembldb
+           r-genomeinfodb
+           r-genomicfiles
+           r-httr
+           r-matrix
+           r-rsamtools
+           r-snpstats
+           r-variantannotation))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/ldblock")
     (synopsis "Data structures for linkage disequilibrium measures in populations")
     (description
@@ -13517,9 +13843,7 @@ defining LD blocks.")
     (properties `((upstream-name . "LDheatmap")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-genetics" ,r-genetics)
-       ("r-rcpp" ,r-rcpp)
-       ("r-snpstats" ,r-snpstats)))
+     (list r-genetics r-rcpp r-snpstats))
     (home-page "https://stat.sfu.ca/statgen/research/ldheatmap.html")
     (synopsis "Graphical display of pairwise linkage disequilibria between SNPs")
     (description
@@ -13544,14 +13868,14 @@ on the plot.")
          "1fqmhw0mhdl6az1gpg0byvx5snhz1pl3fqikhyfjcjrc9xbsq8yw"))))
     (build-system r-build-system)
     (inputs
-     `(("gsl" ,gsl)))
-    (propagated-inputs
-     `(("r-lme4" ,r-lme4)
-       ("r-nnet" ,r-nnet)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rgraphviz" ,r-rgraphviz)
-       ("r-rjags" ,r-rjags)))
+     (list gsl))
+    (propagated-inputs
+     (list r-lme4
+           r-nnet
+           r-rcpp
+           r-rcpparmadillo
+           r-rgraphviz
+           r-rjags))
     (home-page "https://r-bayesian-networks.org/")
     (synopsis "Modelling multivariate data with additive bayesian networks")
     (description
@@ -13581,12 +13905,9 @@ statistical dependencies in messy, complex data.")
                 "08zxxgyp0h6733b08jmml7k4rhfd3mi5dda3jrzid0s184y0z29w"))))
     (build-system r-build-system)
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-catools" ,r-catools)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rsamtools" ,r-rsamtools)))
+     (list r-bh r-catools r-rcpp r-rsamtools))
     (home-page "https://cran.r-project.org/web/packages/spp/")
     (synopsis "ChIP-Seq processing pipeline")
     (description "This package provides tools for analysis of ChIP-seq and
@@ -13596,24 +13917,24 @@ other functional sequencing data.")
 (define-public r-pathview
   (package
     (name "r-pathview")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "pathview" version))
        (sha256
-        (base32 "1fank0qavv9ikmzxvms8mky2wbzny02rfqkvsqzma26r3vl4r1g1"))))
+        (base32 "1jdl81lvrsz03b1nws90nssf2clipipzaqvwm1pq57mvshnlnkjr"))))
     (properties `((upstream-name . "pathview")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-graph" ,r-graph)
-       ("r-kegggraph" ,r-kegggraph)
-       ("r-keggrest" ,r-keggrest)
-       ("r-org-hs-eg-db" ,r-org-hs-eg-db)
-       ("r-png" ,r-png)
-       ("r-rgraphviz" ,r-rgraphviz)
-       ("r-xml" ,r-xml)))
+     (list r-annotationdbi
+           r-graph
+           r-kegggraph
+           r-keggrest
+           r-org-hs-eg-db
+           r-png
+           r-rgraphviz
+           r-xml))
     (home-page "https://pathview.uncc.edu/")
     (synopsis "Tool set for pathway based data integration and visualization")
     (description
@@ -13630,22 +13951,19 @@ large-scale and fully automated analysis.")
 (define-public r-snpstats
   (package
     (name "r-snpstats")
-    (version "1.42.0")
+    (version "1.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "snpStats" version))
        (sha256
         (base32
-         "11vvih5y9kvyjfp2navkfpp4xiyfgwlv4r0x3p52hkj92pc2pg3g"))))
+         "0ha34b5cg26940xihgky45adns1nflrgq2qjq77w4bncxpaacsqq"))))
     (properties `((upstream-name . "snpStats")))
     (build-system r-build-system)
-    (inputs `(("zlib" ,zlib)))
+    (inputs (list zlib))
     (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-matrix" ,r-matrix)
-       ("r-survival" ,r-survival)
-       ("r-zlibbioc" ,r-zlibbioc)))
+     (list r-biocgenerics r-matrix r-survival r-zlibbioc))
     (home-page "https://bioconductor.org/packages/snpStats")
     (synopsis "Methods for SNP association studies")
     (description
@@ -13657,32 +13975,32 @@ the earlier snpMatrix package, allowing for uncertainty in genotypes.")
 (define-public r-chromstar
   (package
     (name "r-chromstar")
-    (version "1.18.0")
+    (version "1.20.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "chromstaR" version))
        (sha256
         (base32
-         "09cqzylci4x4i7wn4ckcqhdlljbzfrp08wdvkkc5vrdldnj9pq5h"))))
+         "1akcmxzn4j9ph4n3lsgfh8fh8hrb28jjamz037w59bsdkcv6wyjq"))))
     (properties `((upstream-name . "chromstaR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bamsignals" ,r-bamsignals)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-chromstardata" ,r-chromstardata)
-       ("r-doparallel" ,r-doparallel)
-       ("r-foreach" ,r-foreach)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-iranges" ,r-iranges)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-s4vectors" ,r-s4vectors)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-bamsignals
+           r-biocgenerics
+           r-chromstardata
+           r-doparallel
+           r-foreach
+           r-genomeinfodb
+           r-genomicalignments
+           r-genomicranges
+           r-ggplot2
+           r-iranges
+           r-mvtnorm
+           r-reshape2
+           r-rsamtools
+           r-s4vectors))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/ataudt/chromstaR")
     (synopsis "Chromatin state analysis for ChIP-Seq data")
     (description
@@ -13695,27 +14013,27 @@ analyses.")
 (define-public r-guitar
   (package
     (name "r-guitar")
-    (version "2.8.0")
+    (version "2.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Guitar" version))
        (sha256
         (base32
-         "1q4m6c5181dw12lvdp324jlk78c9jgcsg6b9hk87zjadp6j0gfr6"))))
+         "082yja4mmsq77sllv3c88agxjbb6jxwil2krb8fkfsijvyyx11c9"))))
     (properties `((upstream-name . "Guitar")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-dplyr" ,r-dplyr)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-knitr" ,r-knitr)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rtracklayer" ,r-rtracklayer)))
+     (list r-annotationdbi
+           r-dplyr
+           r-genomicfeatures
+           r-genomicranges
+           r-ggplot2
+           r-knitr
+           r-magrittr
+           r-rtracklayer))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/Guitar")
     (synopsis "Visualize genomic features")
     (description
@@ -13727,18 +14045,17 @@ starting site, start codon, stop codon and transcription ending site.")
 (define-public r-sushi
   (package
     (name "r-sushi")
-    (version "1.30.0")
+    (version "1.31.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Sushi" version))
               (sha256
                (base32
-                "1m5l0nflhcynb3gz7b8qzvknb0s6xhds8z1yl3mbv8ic9qn2knv4"))))
+                "1cj4palsq99vnwihp6z9mw0f8w9qj2vq8zwnabf3bgg0l1wpsc7c"))))
     (properties `((upstream-name . "Sushi")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biomart" ,r-biomart)
-       ("r-zoo" ,r-zoo)))
+     (list r-biomart r-zoo))
     (home-page "https://bioconductor.org/packages/Sushi")
     (synopsis "Tools for visualizing genomics data")
     (description
@@ -13749,28 +14066,28 @@ visualizations for publication-quality multi-panel figures.")
 (define-public r-ballgown
   (package
     (name "r-ballgown")
-    (version "2.24.0")
+    (version "2.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ballgown" version))
        (sha256
         (base32
-         "0ff8z4pfgzai2q4aafclg36bhsi9jwl9xhh1p9fqhmikisscq7i1"))))
+         "0fiky82arvgzgxrm4bqn74m5kngqpdaqf6ks4cr89nlnhfq0v6rf"))))
     (properties `((upstream-name . "ballgown")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-limma" ,r-limma)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-sva" ,r-sva)))
+     (list r-biobase
+           r-genomeinfodb
+           r-genomicranges
+           r-iranges
+           r-limma
+           r-rcolorbrewer
+           r-rtracklayer
+           r-s4vectors
+           r-sva))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/ballgown")
     (synopsis "Flexible, isoform-level differential expression analysis")
     (description
@@ -13783,27 +14100,27 @@ to annotation.")
 (define-public r-megadepth
   (package
     (name "r-megadepth")
-    (version "1.2.3")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "megadepth" version))
        (sha256
         (base32
-         "0grgj7bzyqnxby0sx5ic1h9bzmx19xwl0a5b3v6wbnwqcla2i3kg"))))
+         "0mg7n3990qv65rg624473ssccka0yjpgc20glrdc5saci891j44r"))))
     (properties `((upstream-name . "megadepth")))
     (build-system r-build-system)
-    (inputs `(("megadepth" ,megadepth)))
+    (inputs (list megadepth))
     (propagated-inputs
-     `(("r-cmdfun" ,r-cmdfun)
-       ("r-dplyr" ,r-dplyr)
-       ("r-fs" ,r-fs)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-magrittr" ,r-magrittr)
-       ("r-readr" ,r-readr)
-       ("r-xfun" ,r-xfun)))
+     (list r-cmdfun
+           r-dplyr
+           r-fs
+           r-genomicranges
+           r-magrittr
+           r-readr
+           r-xfun))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/LieberInstitute/megadepth")
     (synopsis "BigWig and BAM related utilities")
     (description
@@ -13816,27 +14133,27 @@ regions or annotations of your choice from BigWig files.")
 (define-public r-beclear
   (package
     (name "r-beclear")
-    (version "2.8.0")
+    (version "2.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BEclear" version))
        (sha256
         (base32
-         "0w18livng2gcmjgvws7pix3gsnj237rs34sgwxsfmn8p5vfx8b30"))))
+         "1njb1lfd4wmsrfw06jc8z8vdk14nmcw9lwyvbxr7z1zg4h8v6c29"))))
     (properties `((upstream-name . "BEclear")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-data-table" ,r-data-table)
-       ("r-futile-logger" ,r-futile-logger)
-       ("r-matrix" ,r-matrix)
-       ("r-outliers" ,r-outliers)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rdpack" ,r-rdpack)))
+     (list r-abind
+           r-biocparallel
+           r-data-table
+           r-futile-logger
+           r-matrix
+           r-outliers
+           r-rcpp
+           r-rdpack))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/uds-helms/BEclear")
     (synopsis "Correction of batch effects in DNA methylation data")
     (description
@@ -13849,34 +14166,34 @@ real numbers.")
 (define-public r-bgeecall
   (package
     (name "r-bgeecall")
-    (version "1.8.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BgeeCall" version))
        (sha256
         (base32
-         "1byciy7vzbdkdgaim10s9qb7zlxsywbhcsrka31gm0rm9ljqc665"))))
+         "0rbbl8m48qcvl26lnf27jq108p7pi84m9ac3qcpjc0ax5wywbv16"))))
     (properties `((upstream-name . "BgeeCall")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("kallisto" ,kallisto)
-       ("r-biomart" ,r-biomart)
-       ("r-biostrings" ,r-biostrings)
-       ("r-data-table" ,r-data-table)
-       ("r-dplyr" ,r-dplyr)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-rhdf5" ,r-rhdf5)
-       ("r-rslurm" ,r-rslurm)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-sjmisc" ,r-sjmisc)
-       ("r-tximport" ,r-tximport)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list kallisto
+           r-biomart
+           r-biostrings
+           r-data-table
+           r-dplyr
+           r-genomicfeatures
+           r-jsonlite
+           r-rhdf5
+           r-rslurm
+           r-rtracklayer
+           r-sjmisc
+           r-tximport))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/BgeeDB/BgeeCall")
     (synopsis "RNA-Seq present/absent gene expression calls generation")
     (description
-     "BgeeCall allows to generate present/absent gene expression calls without
+     "BgeeCall allows generating present/absent gene expression calls without
 using an arbitrary cutoff like TPM<1.  Calls are generated based on reference
 intergenic sequences.  These sequences are generated based on expression of
 all RNA-Seq libraries of each species integrated in Bgee.")
@@ -13885,29 +14202,29 @@ all RNA-Seq libraries of each species integrated in Bgee.")
 (define-public r-bgeedb
   (package
     (name "r-bgeedb")
-    (version "2.18.1")
+    (version "2.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BgeeDB" version))
        (sha256
         (base32
-         "1ziq180yfpdqwhjdzkwjjhwzn3kb0gkj6q0a26c7a30mcfb50w11"))))
+         "0pjymal01sjl5dc37g66wykgxnksarlbvwnbvhg7w0i7y92zavqk"))))
     (properties `((upstream-name . "BgeeDB")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-curl" ,r-curl)
-       ("r-data-table" ,r-data-table)
-       ("r-digest" ,r-digest)
-       ("r-dplyr" ,r-dplyr)
-       ("r-graph" ,r-graph)
-       ("r-r-utils" ,r-r-utils)
-       ("r-rcurl" ,r-rcurl)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-tidyr" ,r-tidyr)
-       ("r-topgo" ,r-topgo)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-biobase
+           r-curl
+           r-data-table
+           r-digest
+           r-dplyr
+           r-graph
+           r-r-utils
+           r-rcurl
+           r-rsqlite
+           r-tidyr
+           r-topgo))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/BgeeDB/BgeeDB_R")
     (synopsis "Annotation and gene expression data retrieval from Bgee database")
     (description
@@ -13919,22 +14236,19 @@ anatomical terms, mapped to genes by expression patterns.")
 (define-public r-biobtreer
   (package
     (name "r-biobtreer")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biobtreeR" version))
        (sha256
         (base32
-         "0pynx4ps1qxsn13ba6zyg6h5dqlp2y7qish67m7sdjns079zh061"))))
+         "0m9gx2g5ishbbh7aqp09mpknhr7q1v5ap0s6xp6ccj01pz2gkk8s"))))
     (properties `((upstream-name . "biobtreeR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-httpuv" ,r-httpuv)
-       ("r-httr" ,r-httr)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-stringi" ,r-stringi)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-httpuv r-httr r-jsonlite r-stringi))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/tamerh/biobtreeR")
     (synopsis "Use biobtree tool from R")
     (description
@@ -13946,18 +14260,18 @@ mappings functionalities.")
 (define-public r-minet
   (package
     (name "r-minet")
-    (version "3.50.0")
+    (version "3.52.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "minet" version))
        (sha256
         (base32
-         "0bir2zr4r2wawkdvdhrk2hcyxmgkrkfvx36jj85fcm24axlqrzzb"))))
+         "0nhgvgci4r9pjfsnvxyj2q8im1wvig4zmfx2kidw8f63x2ip2rbd"))))
     (properties `((upstream-name . "minet")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-infotheo" ,r-infotheo)))
+     (list r-infotheo))
     (home-page "http://minet.meyerp.com")
     (synopsis "Mutual information networks")
     (description
@@ -13968,22 +14282,19 @@ information networks from data.")
 (define-public r-genetclassifier
   (package
     (name "r-genetclassifier")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "geNetClassifier" version))
        (sha256
         (base32
-         "1i1cavbbvxzqgqxfmikghnls18jrq12hb953mjrwa95lkhzdxm2d"))))
+         "1phyphdc1i55ab1a05633b0p41q8n7w0byp1plgcav2s3h8mk1km"))))
     (properties
      `((upstream-name . "geNetClassifier")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-e1071" ,r-e1071)
-       ("r-ebarrays" ,r-ebarrays)
-       ("r-minet" ,r-minet)))
+     (list r-biobase r-e1071 r-ebarrays r-minet))
     (home-page "https://www.cicancer.org")
     (synopsis "Classify diseases and build gene networks using expression profiles")
     (description
@@ -13996,18 +14307,18 @@ interface to query the classifier.")
 (define-public r-dir-expiry
   (package
     (name "r-dir-expiry")
-    (version "1.0.0")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "dir.expiry" version))
        (sha256
         (base32
-         "05mk7iwzay1xrgvssbz7nyl5d1n03syalbk18lmjmbx05dy0cjik"))))
+         "1bwmlxmizhmim2l0mk406hxfr5mnmsg5zbqkjyygaipa971m9s00"))))
     (properties `((upstream-name . "dir.expiry")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-filelock" ,r-filelock)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+    (propagated-inputs (list r-filelock))
+    (native-inputs (list r-knitr))
     (home-page "https://bioconductor.org/packages/dir.expiry")
     (synopsis "Managing expiration for cache directories")
     (description
@@ -14020,20 +14331,20 @@ eliminating obsolete caches generated by old versions of packages.")
 (define-public r-basilisk-utils
   (package
     (name "r-basilisk-utils")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "basilisk.utils" version))
        (sha256
         (base32
-         "0qbm6rj6h059hakflbwz4j4f59311jhbk5dnpx11kyixh5pgjk7v"))))
+         "0578rq2yz24sv7anb7vp0a0y35944ag1l8ca6haanb03wl97wm99"))))
     (properties
      `((upstream-name . "basilisk.utils")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dir-expiry" ,r-dir-expiry)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-dir-expiry))
+    (native-inputs (list r-knitr))
     (home-page "https://bioconductor.org/packages/basilisk.utils")
     (synopsis "Basilisk installation utilities")
     (description
@@ -14044,21 +14355,19 @@ package, primarily for creation of the underlying Conda instance.")
 (define-public r-basilisk
   (package
     (name "r-basilisk")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "basilisk" version))
        (sha256
         (base32
-         "1nzbn3f2jzvg3a3m6wgksi4cvamqas2q7csdk4ir7fcirasf536v"))))
+         "1cdkpngv9qybd9yxc3i2201p433vkkahs71v28x6lgs5l2wz3m1a"))))
     (properties `((upstream-name . "basilisk")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-basilisk-utils" ,r-basilisk-utils)
-       ("r-dir-expiry" ,r-dir-expiry)
-       ("r-reticulate" ,r-reticulate)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-basilisk-utils r-dir-expiry r-reticulate))
+    (native-inputs (list r-knitr))
     (home-page "https://bioconductor.org/packages/basilisk")
     (synopsis "Freeze Python dependencies inside Bioconductor packages")
     (description
@@ -14072,24 +14381,29 @@ Python environments in a single R session.")
 (define-public r-biocthis
   (package
     (name "r-biocthis")
-    (version "1.2.0")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biocthis" version))
        (sha256
         (base32
-         "08awghsg7q22csb0j9dr8dpb1vkn9gcs9qnhhljxifkw2ahbqia4"))))
+         "0kh5lmv992v4r5r58x29403cll0zxr9fx4ar81nrzvnch5668v39"))))
     (properties `((upstream-name . "biocthis")))
     (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-HOME
+           (lambda _ (setenv "HOME" "/tmp"))))))
     (propagated-inputs
-     `(("r-biocmanager" ,r-biocmanager)
-       ("r-fs" ,r-fs)
-       ("r-glue" ,r-glue)
-       ("r-rlang" ,r-rlang)
-       ("r-styler" ,r-styler)
-       ("r-usethis" ,r-usethis)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-biocmanager
+           r-fs
+           r-glue
+           r-rlang
+           r-styler
+           r-usethis))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/lcolladotor/biocthis")
     (synopsis "Automate package and project setup for Bioconductor packages")
     (description
@@ -14101,25 +14415,25 @@ Bioconductor-friendly.")
 (define-public r-biocdockermanager
   (package
     (name "r-biocdockermanager")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocDockerManager" version))
        (sha256
         (base32
-         "0dh1flm5chsdcihljrg6znjskqkp0qyjh39hsv4zq0frf1rm97j7"))))
+         "1kpdmpcngnl667bfffp9bkf8c31ipmhsncq0h9bf3a4k8b83pi0w"))))
     (properties
      `((upstream-name . "BiocDockerManager")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("docker" ,docker)
-       ("r-dplyr" ,r-dplyr)
-       ("r-httr" ,r-httr)
-       ("r-memoise" ,r-memoise)
-       ("r-readr" ,r-readr)
-       ("r-whisker" ,r-whisker)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list docker
+           r-dplyr
+           r-httr
+           r-memoise
+           r-readr
+           r-whisker))
+    (native-inputs (list r-knitr))
     (home-page "https://bioconductor.org/packages/BiocDockerManager")
     (synopsis "Access and manage Bioconductor Docker images")
     (description
@@ -14131,35 +14445,36 @@ the Bioconductor project.")
 (define-public r-biodb
   (package
     (name "r-biodb")
-    (version "1.0.4")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biodb" version))
        (sha256
         (base32
-         "1apnbr5p619nsrhd2drm6arj69sw0wijv8ap7dfrndqkffrpbfmx"))))
+         "1z4adapsnpw6fwanihdz43r11ijypxs5wbndb1i98j8kb7wf308k"))))
     (properties `((upstream-name . "biodb")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-chk" ,r-chk)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-lgr" ,r-lgr)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-openssl" ,r-openssl)
-       ("r-plyr" ,r-plyr)
-       ("r-progress" ,r-progress)
-       ("r-r6" ,r-r6)
-       ("r-rappdirs" ,r-rappdirs)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcurl" ,r-rcurl)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-stringr" ,r-stringr)
-       ("r-testthat" ,r-testthat)
-       ("r-withr" ,r-withr)
-       ("r-xml" ,r-xml)
-       ("r-yaml" ,r-yaml)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-biocfilecache
+           r-chk
+           r-jsonlite
+           r-lgr
+           r-lifecycle
+           r-openssl
+           r-plyr
+           r-progress
+           r-r6
+           r-rappdirs
+           r-rcpp
+           r-rcurl
+           r-rsqlite
+           r-stringr
+           r-testthat
+           r-withr
+           r-xml
+           r-yaml))
+    (native-inputs (list r-knitr))
     (home-page "https://bioconductor.org/packages/biodb")
     (synopsis "Library for connecting to chemical and biological databases")
     (description
@@ -14175,22 +14490,19 @@ separate published packages.")
 (define-public r-biomformat
   (package
     (name "r-biomformat")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biomformat" version))
        (sha256
         (base32
-         "1wgshkddxbmpsihpkm0dp7vqp59ns6iqbx574y80n2pxb8dx8sy9"))))
+         "0xf99j4lhf8kh9h1317hrbzxdv6rljs1fn68r8s40x6y4db3l817"))))
     (properties `((upstream-name . "biomformat")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-jsonlite" ,r-jsonlite)
-       ("r-matrix" ,r-matrix)
-       ("r-plyr" ,r-plyr)
-       ("r-rhdf5" ,r-rhdf5)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-jsonlite r-matrix r-plyr r-rhdf5))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/joey711/biomformat/")
     (synopsis "Interface package for the BIOM file format")
     (description
@@ -14207,14 +14519,14 @@ as extensions of common core functions/methods.")
 (define-public r-mvcclass
   (package
     (name "r-mvcclass")
-    (version "1.66.0")
+    (version "1.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MVCClass" version))
        (sha256
         (base32
-         "1di7y10mr7caacd6igwxnr62cm4v1x877yi4a2i5jqz1058jqni7"))))
+         "088gzh33vjkjf78xczqfs89pyg0k7c3533yfvijqxl84ni2ky78z"))))
     (properties `((upstream-name . "MVCClass")))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/MVCClass")
@@ -14227,21 +14539,18 @@ design.")
 (define-public r-biomvcclass
   (package
     (name "r-biomvcclass")
-    (version "1.60.0")
+    (version "1.62.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BioMVCClass" version))
        (sha256
         (base32
-         "04pld93nffbci47dnf0awmcmhlfzv599ggcd7hvq78w41ac60qv8"))))
+         "0jqgazwz35gz11a7vzanyy2yalzalx0z0rw6y18nmk8dbv01nv2j"))))
     (properties `((upstream-name . "BioMVCClass")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-graph" ,r-graph)
-       ("r-mvcclass" ,r-mvcclass)
-       ("r-rgraphviz" ,r-rgraphviz)))
+     (list r-biobase r-graph r-mvcclass r-rgraphviz))
     (home-page "https://bioconductor.org/packages/BioMVCClass")
     (synopsis "Model-View-Controller (MVC) classes that use Biobase")
     (description
@@ -14252,21 +14561,18 @@ design.")
 (define-public r-biomvrcns
   (package
     (name "r-biomvrcns")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biomvRCNS" version))
        (sha256
         (base32
-         "0wyzj422smr4m9mswzn9inc1sn86pnia7jmd6k28nd2a7fjyrm16"))))
+         "01nhjhfyzs67p97bk9bjqdxk239ckl8sgfj55azk1zmw92aw2hfy"))))
     (properties `((upstream-name . "biomvRCNS")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-genomicranges" ,r-genomicranges)
-       ("r-gviz" ,r-gviz)
-       ("r-iranges" ,r-iranges)
-       ("r-mvtnorm" ,r-mvtnorm)))
+     (list r-genomicranges r-gviz r-iranges r-mvtnorm))
     (home-page "https://bioconductor.org/packages/biomvRCNS")
     (synopsis "Copy number study and segmentation for multivariate biological data")
     (description
@@ -14280,39 +14586,39 @@ using aCGH or sequencing.")
 (define-public r-bionero
   (package
     (name "r-bionero")
-    (version "1.0.4")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BioNERO" version))
        (sha256
         (base32
-         "1yj0pavyfrj2gsvaj1dkgmznibm2appxjx9rk5qjslhslmm5b05b"))))
+         "0ddrzv1g46hvm52dzrcj5nbyyw9a16cqk8zg20wnkrh3qw1h4d9p"))))
     (properties `((upstream-name . "BioNERO")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocparallel" ,r-biocparallel)
-       ("r-complexheatmap" ,r-complexheatmap)
-       ("r-deseq2" ,r-deseq2)
-       ("r-dynamictreecut" ,r-dynamictreecut)
-       ("r-genie3" ,r-genie3)
-       ("r-ggnetwork" ,r-ggnetwork)
-       ("r-ggnewscale" ,r-ggnewscale)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggpubr" ,r-ggpubr)
-       ("r-igraph" ,r-igraph)
-       ("r-intergraph" ,r-intergraph)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-minet" ,r-minet)
-       ("r-netrep" ,r-netrep)
-       ("r-networkd3" ,r-networkd3)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-reshape2" ,r-reshape2)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-sva" ,r-sva)
-       ("r-wgcna" ,r-wgcna)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biocparallel
+           r-complexheatmap
+           r-deseq2
+           r-dynamictreecut
+           r-genie3
+           r-ggnetwork
+           r-ggnewscale
+           r-ggplot2
+           r-ggpubr
+           r-igraph
+           r-intergraph
+           r-matrixstats
+           r-minet
+           r-netrep
+           r-networkd3
+           r-rcolorbrewer
+           r-reshape2
+           r-summarizedexperiment
+           r-sva
+           r-wgcna))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/almeidasilvaf/BioNERO")
     (synopsis "Biological network reconstruction omnibus")
     (description
@@ -14336,22 +14642,18 @@ networks.")
 (define-public r-bionet
   (package
     (name "r-bionet")
-    (version "1.52.0")
+    (version "1.54.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BioNet" version))
        (sha256
         (base32
-         "15rk1jfv4h1mxvr5bs0qmq6fdnza7zcmksigqxb46fs7f6znr3yi"))))
+         "05rj14jn4gn0hfn57amf19b8fqwkd3y2ji3mg7m1yg1w7n4qxqsg"))))
     (properties `((upstream-name . "BioNet")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-biobase" ,r-biobase)
-       ("r-graph" ,r-graph)
-       ("r-igraph" ,r-igraph)
-       ("r-rbgl" ,r-rbgl)))
+     (list r-annotationdbi r-biobase r-graph r-igraph r-rbgl))
     (home-page "http://bioconductor.org/packages/release/bioc/html/BioNet.html")
     (synopsis "Functional analysis of biological networks")
     (description
@@ -14369,37 +14671,37 @@ scoring subnetwork.")
 (define-public r-bionetstat
   (package
     (name "r-bionetstat")
-    (version "1.12.0")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BioNetStat" version))
        (sha256
         (base32
-         "16xlfng9m8xvm831c2x6zmjc0gavlfiy9pnza55hdv86888fcnbg"))))
+         "13br8x4809hrr4ibz6iy5qjza9j6cazmkpvfikvw6bs588csxwf8"))))
     (properties `((upstream-name . "BioNetStat")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocparallel" ,r-biocparallel)
-       ("r-dt" ,r-dt)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-hmisc" ,r-hmisc)
-       ("r-igraph" ,r-igraph)
-       ("r-knitr" ,r-knitr)
-       ("r-markdown" ,r-markdown)
-       ("r-pathview" ,r-pathview)
-       ("r-pheatmap" ,r-pheatmap)
-       ("r-plyr" ,r-plyr)
-       ("r-psych" ,r-psych)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rjsonio" ,r-rjsonio)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-shiny" ,r-shiny)
-       ("r-shinybs" ,r-shinybs)
-       ("r-whisker" ,r-whisker)
-       ("r-yaml" ,r-yaml)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biocparallel
+           r-dt
+           r-ggplot2
+           r-hmisc
+           r-igraph
+           r-knitr
+           r-markdown
+           r-pathview
+           r-pheatmap
+           r-plyr
+           r-psych
+           r-rcolorbrewer
+           r-rjsonio
+           r-rmarkdown
+           r-shiny
+           r-shinybs
+           r-whisker
+           r-yaml))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/jardimViniciusC/BioNetStat")
     (synopsis "Biological network analysis")
     (description
@@ -14411,22 +14713,20 @@ network and metabolic pathways view.")
 (define-public r-bioqc
   (package
     (name "r-bioqc")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BioQC" version))
        (sha256
         (base32
-         "04akp94p0d0zid55m1b1k3qlw7iq914pcg57lihgj3pa92n1sc5l"))))
+         "190336qk0plg79gzvfn6wfplsi8nq0nj8508g7m0w3z6bdgwy407"))))
     (properties `((upstream-name . "BioQC")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-edger" ,r-edger)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-biobase r-edger r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://accio.github.io/BioQC/")
     (synopsis "Detect tissue heterogeneity in expression profiles with gene sets")
     (description
@@ -14439,26 +14739,26 @@ optimised for high performance.")
 (define-public r-biotip
   (package
     (name "r-biotip")
-    (version "1.6.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BioTIP" version))
        (sha256
         (base32
-         "1i6r8px0fmdjx8frpljppwql74mhx08ibvhs9y3qk91ck5h3f0js"))))
+         "0xmy5c4i9gf6d04gara6lbnnldqmzjaascb2pd2ih60jw2mvl4ys"))))
     (properties `((upstream-name . "BioTIP")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cluster" ,r-cluster)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-hmisc" ,r-hmisc)
-       ("r-igraph" ,r-igraph)
-       ("r-mass" ,r-mass)
-       ("r-psych" ,r-psych)
-       ("r-stringr" ,r-stringr)))
+     (list r-cluster
+           r-genomicranges
+           r-hmisc
+           r-igraph
+           r-mass
+           r-psych
+           r-stringr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/xyang2uchicago/BioTIP")
     (synopsis "R package for characterization of biological tipping-point")
     (description
@@ -14469,33 +14769,31 @@ help unravel disease regulatory trajectory.")
 (define-public r-biotmle
   (package
     (name "r-biotmle")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biotmle" version))
        (sha256
         (base32
-         "01smkmbv40yprgrgi2gjnmi8ncqyrlkfdxsh33ki20amcx32nc7f"))))
+         "0p3iavf9059qa8qvfvqzskfc5gki3z0ivkkqdwg5anvf0wv2k47g"))))
     (properties `((upstream-name . "biotmle")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertthat" ,r-assertthat)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-dofuture" ,r-dofuture)
-       ("r-dplyr" ,r-dplyr)
-       ("r-drtmle" ,r-drtmle)
-       ("r-future" ,r-future)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggsci" ,r-ggsci)
-       ("r-limma" ,r-limma)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-superheat" ,r-superheat)
-       ("r-tibble" ,r-tibble)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-assertthat
+           r-biocgenerics
+           r-biocparallel
+           r-dplyr
+           r-drtmle
+           r-ggplot2
+           r-ggsci
+           r-limma
+           r-s4vectors
+           r-summarizedexperiment
+           r-superheat
+           r-tibble))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://code.nimahejazi.org/biotmle/")
     (synopsis "Targeted learning with moderated statistics for biomarker discovery")
     (description
@@ -14513,42 +14811,42 @@ ensemble machine learning for the estimation of nuisance functions.")
 (define-public r-bsseq
   (package
     (name "r-bsseq")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bsseq" version))
        (sha256
         (base32
-         "1xpv85hr681kkkilsnasndkszwmzbzq11y0lff4na2ilsm7sqmmi"))))
+         "1i30zf6457a0qd64s89x9l544y1h0hj9rfgf1m8l4krd487a9b9d"))))
     (properties `((upstream-name . "bsseq")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-beachmat" ,r-beachmat)
-       ("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biostrings" ,r-biostrings)
-       ("r-bsgenome" ,r-bsgenome)
-       ("r-data-table" ,r-data-table)
-       ("r-delayedarray" ,r-delayedarray)
-       ("r-delayedmatrixstats" ,r-delayedmatrixstats)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-gtools" ,r-gtools)
-       ("r-hdf5array" ,r-hdf5array)
-       ("r-iranges" ,r-iranges)
-       ("r-limma" ,r-limma)
-       ("r-locfit" ,r-locfit)
-       ("r-permute" ,r-permute)
-       ("r-r-utils" ,r-r-utils)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rhdf5" ,r-rhdf5)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-scales" ,r-scales)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-beachmat
+           r-biobase
+           r-biocgenerics
+           r-biocparallel
+           r-biostrings
+           r-bsgenome
+           r-data-table
+           r-delayedarray
+           r-delayedmatrixstats
+           r-genomeinfodb
+           r-genomicranges
+           r-gtools
+           r-hdf5array
+           r-iranges
+           r-limma
+           r-locfit
+           r-permute
+           r-r-utils
+           r-rcpp
+           r-rhdf5
+           r-s4vectors
+           r-scales
+           r-summarizedexperiment))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/hansenlab/bsseq")
     (synopsis "Analyze, manage and store bisulfite sequencing data")
     (description
@@ -14559,36 +14857,36 @@ visualizing bisulfite sequencing data.")
 (define-public r-dmrseq
   (package
     (name "r-dmrseq")
-    (version "1.12.0")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "dmrseq" version))
        (sha256
         (base32
-         "1jbbjifjsnk9261wqmdwkbzj1w52g6vaanpk4w816ri0fap587m4"))))
+         "1d6y6rbvcgprmzqkdzxg5csf0yv845d9vw10pcd1pzyndrama1vd"))))
     (properties `((upstream-name . "dmrseq")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationhub" ,r-annotationhub)
-       ("r-annotatr" ,r-annotatr)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-bsseq" ,r-bsseq)
-       ("r-bumphunter" ,r-bumphunter)
-       ("r-delayedmatrixstats" ,r-delayedmatrixstats)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-iranges" ,r-iranges)
-       ("r-locfit" ,r-locfit)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-nlme" ,r-nlme)
-       ("r-outliers" ,r-outliers)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationhub
+           r-annotatr
+           r-biocparallel
+           r-bsseq
+           r-bumphunter
+           r-delayedmatrixstats
+           r-genomeinfodb
+           r-genomicranges
+           r-ggplot2
+           r-iranges
+           r-locfit
+           r-matrixstats
+           r-nlme
+           r-outliers
+           r-rcolorbrewer
+           r-rtracklayer
+           r-s4vectors))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/dmrseq")
     (synopsis "Detection and inference of differentially methylated regions")
     (description
@@ -14602,48 +14900,100 @@ with a nested autoregressive correlated error structure for the effect of
 interest on transformed methylation proportions.")
     (license license:expat)))
 
+(define-public r-omnipathr
+  (package
+    (name "r-omnipathr")
+    (version "3.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "OmnipathR" version))
+       (sha256
+        (base32 "1q89mxnp8cig9r1499g7fb9p9x9ryz1dmc3w6ps5ww9n6rl8jqk8"))))
+    (properties `((upstream-name . "OmnipathR")))
+    (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-HOME
+           (lambda _ (setenv "HOME" "/tmp"))))))
+    (propagated-inputs
+     (list r-checkmate
+           r-crayon
+           r-curl
+           r-digest
+           r-dplyr
+           r-httr
+           r-igraph
+           r-jsonlite
+           r-later
+           r-logger
+           r-magrittr
+           r-progress
+           r-purrr
+           r-rappdirs
+           r-readr
+           r-readxl
+           r-rlang
+           r-stringr
+           r-tibble
+           r-tidyr
+           r-tidyselect
+           r-xml2
+           r-yaml))
+    (native-inputs (list r-knitr))
+    (home-page "https://saezlab.github.io/OmnipathR/")
+    (synopsis "OmniPath web service client and more")
+    (description
+     "This package provides a client for the OmniPath web service and many
+other resources.  It also includes functions to transform and pretty print
+some of the downloaded data, functions to access a number of other resources.
+Furthermore, OmnipathR features a close integration with the NicheNet method
+for ligand activity prediction from transcriptomics data.")
+    (license license:expat)))
+
 (define-public r-biscuiteer
   (package
     (name "r-biscuiteer")
-    (version "1.6.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biscuiteer" version))
        (sha256
         (base32
-         "0f4kk4v2c5diq0fbvyvgwjd1kjk9izr6n9wfrlrr7wbx4pz3c3h6"))))
+         "16ds322b21g8ys5c3lkrvi70i82f9rxvnknbiqx4sp6f2l01j5yj"))))
     (properties `((upstream-name . "biscuiteer")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biobase" ,r-biobase)
-       ("r-biocgenerics" ,r-biocgenerics)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biscuiteerdata" ,r-biscuiteerdata)
-       ("r-bsseq" ,r-bsseq)
-       ("r-data-table" ,r-data-table)
-       ("r-delayedmatrixstats" ,r-delayedmatrixstats)
-       ("r-dmrseq" ,r-dmrseq)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-gtools" ,r-gtools)
-       ("r-hdf5array" ,r-hdf5array)
-       ("r-homo-sapiens" ,r-homo-sapiens)
-       ("r-impute" ,r-impute)
-       ("r-matrix" ,r-matrix)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-mus-musculus" ,r-mus-musculus)
-       ("r-qdnaseq" ,r-qdnaseq)
-       ("r-qualv" ,r-qualv)
-       ("r-r-utils" ,r-r-utils)
-       ("r-readr" ,r-readr)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-variantannotation" ,r-variantannotation)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-biobase
+           r-biocgenerics
+           r-biocparallel
+           r-biscuiteerdata
+           r-bsseq
+           r-data-table
+           r-delayedmatrixstats
+           r-dmrseq
+           r-genomeinfodb
+           r-genomicranges
+           r-gtools
+           r-hdf5array
+           r-homo-sapiens
+           r-impute
+           r-matrix
+           r-matrixstats
+           r-mus-musculus
+           r-qdnaseq
+           r-qualv
+           r-r-utils
+           r-readr
+           r-rsamtools
+           r-rtracklayer
+           r-s4vectors
+           r-summarizedexperiment
+           r-variantannotation))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/trichelab/biscuiteer")
     (synopsis "Convenience functions for the Biscuit package")
     (description
@@ -14653,37 +15003,92 @@ samples, with or without imputation, dropping of mostly-NA rows, age
 estimates, etc.")
     (license license:gpl3)))
 
+(define-public r-tcgabiolinks
+  (package
+    (name "r-tcgabiolinks")
+    (version "2.22.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "TCGAbiolinks" version))
+       (sha256
+        (base32 "0114pwbxg6mdhv94g556krl08ig7nwaafrryxbjha4hvn0xwy36l"))))
+    (properties `((upstream-name . "TCGAbiolinks")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-biomart
+           r-data-table
+           r-downloader
+           r-dplyr
+           r-genomicranges
+           r-ggplot2
+           r-httr
+           r-iranges
+           r-jsonlite
+           r-knitr
+           r-plyr
+           r-purrr
+           r-r-utils
+           r-readr
+           r-rvest
+           r-s4vectors
+           r-stringr
+           r-summarizedexperiment
+           r-tcgabiolinksgui-data
+           r-tibble
+           r-tidyr
+           r-xml
+           r-xml2))
+    (native-inputs (list r-knitr))
+    (home-page "https://github.com/BioinformaticsFMRP/TCGAbiolinks")
+    (synopsis "Integrative analysis with GDC data")
+    (description
+     "The aim of TCGAbiolinks is:
+
+@enumerate
+@item facilitate GDC open-access data retrieval;
+@item prepare the data using the appropriate pre-processing strategies;
+@item provide the means to carry out different standard analyses, and;
+@item to easily reproduce earlier research results.
+@end enumerate
+
+In more detail, the package provides multiple methods for analysis (e.g.,
+differential expression analysis, identifying differentially methylated
+regions) and methods for visualization (e.g., survival plots, volcano plots,
+starburst plots) in order to easily develop complete analysis pipelines.")
+    (license license:gpl3+)))
+
 (define-public r-tximeta
   (package
     (name "r-tximeta")
-    (version "1.10.0")
+    (version "1.12.3")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "tximeta" version))
        (sha256
         (base32
-         "0ipgpcl93cac4qff6lp9x2l3gav5kb1x1d56g32h09hlm797rvvh"))))
+         "15l1jvfis7xzxwwnlqs8xpaf212v1lx513np2dc4l4h7rqhclm2v"))))
     (properties `((upstream-name . "tximeta")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-annotationhub" ,r-annotationhub)
-       ("r-biocfilecache" ,r-biocfilecache)
-       ("r-biostrings" ,r-biostrings)
-       ("r-ensembldb" ,r-ensembldb)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-matrix" ,r-matrix)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-tibble" ,r-tibble)
-       ("r-tximport" ,r-tximport)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationdbi
+           r-annotationhub
+           r-biocfilecache
+           r-biostrings
+           r-ensembldb
+           r-genomeinfodb
+           r-genomicfeatures
+           r-genomicranges
+           r-iranges
+           r-jsonlite
+           r-matrix
+           r-s4vectors
+           r-summarizedexperiment
+           r-tibble
+           r-tximport))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/mikelove/tximeta")
     (synopsis "Transcript quantification import with automatic metadata")
     (description
@@ -14693,3 +15098,41 @@ and other associated metadata.  De novo transcriptomes can be linked to the
 appropriate sources with linkedTxomes and shared for computational
 reproducibility.")
     (license license:gpl2)))
+
+(define-public r-phyloseq
+  (package
+    (name "r-phyloseq")
+    (version "1.38.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "phyloseq" version))
+       (sha256
+        (base32 "0k0aj8f7g1vr7l0qcc507b3w67zc1k9x7sdblm7mjb20zqr3916s"))))
+    (properties `((upstream-name . "phyloseq")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-ade4
+           r-ape
+           r-biobase
+           r-biocgenerics
+           r-biomformat
+           r-biostrings
+           r-cluster
+           r-data-table
+           r-foreach
+           r-ggplot2
+           r-igraph
+           r-multtest
+           r-plyr
+           r-reshape2
+           r-scales
+           r-vegan))
+    (native-inputs
+     (list r-knitr))
+    (home-page "https://github.com/joey711/phyloseq")
+    (synopsis "Handling and analysis of high-throughput microbiome census data")
+    (description
+     "Phyloseq provides a set of classes and tools to facilitate the import,
+storage, analysis, and graphical display of microbiome census data.")
+    (license license:agpl3)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index d91ff13b46..f38364191f 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -21,6 +21,7 @@
 ;;; Copyright © 2020 Bonface Munyoki Kilyungi <bonfacemunyoki@gmail.com>
 ;;; Copyright © 2021 Tim Howes <timhowes@lavabit.com>
 ;;; Copyright © 2021 Hong Li <hli@mdc-berlin.de>
+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -41,12 +42,14 @@
 (define-module (gnu packages bioinformatics)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix hg-download)
   #:use-module (guix build-system ant)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system cargo)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system go)
   #:use-module (guix build-system haskell)
@@ -57,7 +60,6 @@
   #:use-module (guix build-system qt)
   #:use-module (guix build-system r)
   #:use-module (guix build-system ruby)
-  #:use-module (guix build-system scons)
   #:use-module (guix build-system trivial)
   #:use-module (guix deprecation)
   #:use-module (gnu packages)
@@ -76,6 +78,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpio)
   #:use-module (gnu packages cran)
+  #:use-module (gnu packages crates-io)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages databases)
@@ -105,8 +108,8 @@
   #:use-module (gnu packages java-compression)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages jupyter)
+  #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages lisp-xyz)
   #:use-module (gnu packages logging)
   #:use-module (gnu packages lsof)
   #:use-module (gnu packages machine-learning)
@@ -135,11 +138,14 @@
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdf)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages rpc)
   #:use-module (gnu packages rsync)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages shells)
+  #:use-module (gnu packages skribilo)
   #:use-module (gnu packages sphinx)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages tbb)
@@ -148,6 +154,7 @@
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages uglifyjs)
   #:use-module (gnu packages vim)
   #:use-module (gnu packages web)
   #:use-module (gnu packages wget)
@@ -228,9 +235,9 @@ structure of the predicted RNA.")
        ;; Do not use bundled libhts.  Do use the bundled libcfu because it has
        ;; been modified from its original form.
        #:configure-flags
-       (let ((htslib (assoc-ref %build-inputs "htslib")))
-         (list "--with-libhts-lib" (string-append htslib "/lib")
-               "--with-libhts-inc" (string-append htslib "/include/htslib")))
+       ,#~(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
@@ -258,21 +265,21 @@ structure of the predicted RNA.")
                  `("PATH" ":" prefix (,path))
                  `("GUIX_PYTHONPATH" ":" prefix (,pythonpath)))))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("zlib" ,zlib)
-       ("python-nose" ,python2-nose)
-       ("python-pysam" ,python2-pysam)))
-    (inputs
-     `(("htslib" ,htslib-1.3) ; At least one test fails on htslib-1.4+.
-       ("samtools" ,samtools)
-       ("bwa" ,bwa)
-       ("grep" ,grep)
-       ("sed" ,sed)
-       ("coreutils" ,coreutils)))
+     (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
-     `(("python-numpy" ,python2-numpy)))
+     (list python2-numpy))
     (home-page "https://ecogenomics.github.io/BamM/")
     (synopsis "Metagenomics-focused BAM file manipulator")
     (description
@@ -307,7 +314,7 @@ instance, it implements several methods to assess contig-wise read coverage.")
                      "-Wl,-rpath="
                      (assoc-ref outputs "out") "/lib/bamtools"))
             #t)))))
-    (inputs `(("zlib" ,zlib)))
+    (inputs (list zlib))
     (home-page "https://github.com/pezmaster31/bamtools")
     (synopsis "C++ API and command-line toolkit for working with BAM data")
     (description
@@ -318,27 +325,43 @@ BAM files.")
 (define-public bamutils
   (package
     (name "bamutils")
-    (version "1.0.13")
+    (version "1.0.14")
     (source (origin
-              (method url-fetch)
-              (uri
-               (string-append
-                "https://genome.sph.umich.edu/w/images/7/70/"
-                "BamUtilLibStatGen." version ".tgz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/statgen/bamUtil")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0asr1kmjbr3cyf4hkg865y8c2s30v87xvws4q6c8pyfi6wfd1h8n"))))
+                "0i2r332k1kz0jysyg89d858wqq59n16lw6dv5qmilcwshb77r9v7"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; There are no tests.
-       #:make-flags `("USER_WARNINGS=-std=gnu++98"
-                      ,(string-append "INSTALLDIR="
-                                      (assoc-ref %outputs "out") "/bin"))
+     `(#:tests? #f ; Unclear how to run tests
+       #:make-flags
+       ,#~(list "USER_WARNINGS=-std=gnu++98" ;
+                (string-append "INSTALLDIR=" #$output "/bin"))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure))))
+         (replace 'configure
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "src/Makefile" ;
+               (("^DATE=.*") "DATE=\"1970-01-01\"\n"))
+             (copy-recursively (assoc-ref inputs "libstatgen")
+                               "../libStatGen"))))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
+    (native-inputs
+     `(("libstatgen"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/statgen/libStatGen/")
+                 (commit (string-append "v" version))))
+           (file-name (git-file-name "libstatgen" version))
+           (sha256
+            (base32
+             "0q9iyk046r4m7qnav8c3f28zsar25lj9nydiklwaswmzdijhi4p1"))))))
     (home-page "https://genome.sph.umich.edu/wiki/BamUtil")
     (synopsis "Programs for working on SAM/BAM files")
     (description "This package provides several programs that perform
@@ -376,11 +399,9 @@ single executable called @code{bam}.")
                (("/bin/bash") (which "bash")))
              #t)))))
     (native-inputs
-     `(("htslib" ,htslib)
-       ("perl" ,perl)))
+     (list htslib perl))
     (inputs
-     `(("gsl" ,gsl)
-       ("zlib" ,zlib)))
+     (list gsl zlib))
     (home-page "https://samtools.github.io/bcftools/")
     (synopsis "Utilities for variant calling and manipulating VCFs and BCFs")
     (description
@@ -409,8 +430,7 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.")
                           #t))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("htslib" ,htslib-1.10)
-       ("perl" ,perl)))))
+     (list htslib-1.10 perl))))
 
 (define-public bedops
   (package
@@ -486,17 +506,16 @@ computational cluster.")
                 "1f2hh79l7dn147c2xyfgf5wfjvlqfw32kjfnnh2n1qy6rpzx2fik"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:test-target "test"
+     `(#:test-target "test"
        #:make-flags
-       (list (string-append "prefix=" (assoc-ref %outputs "out")))
+       ,#~(list (string-append "prefix=" #$output))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
      `(("python" ,python-wrapper)))
     (inputs
-     `(("samtools" ,samtools)
-       ("zlib" ,zlib)))
+     (list samtools zlib))
     (home-page "https://github.com/arq5x/bedtools2")
     (synopsis "Tools for genome analysis and arithmetic")
     (description
@@ -526,56 +545,97 @@ BED, GFF/GTF, VCF.")
      '(#:test-target "test"
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'compatibility
+           (lambda _
+             (substitute* "src/utils/fileType/FileRecordTypeChecker.h"
+               (("static const float PERCENTAGE")
+                "static constexpr float PERCENTAGE"))
+             (substitute* "src/utils/general/DualQueue.h"
+               (("template <class T, template<class T> class CompareFunc>")
+                "template <class T, template<class U> class CompareFunc>"))))
          (delete 'configure)
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
                (for-each (lambda (file)
                            (install-file file bin))
-                         (find-files "bin" ".*")))
-             #t)))))))
+                         (find-files "bin" ".*"))))))))
+    (native-inputs
+     `(("python" ,python-wrapper)))
+    (inputs
+     (list samtools zlib))))
+
+(define-public pbcopper
+  ;; This is the latest commit at the time of this writing.
+  (let ((commit "ad4143afd25a0bd6adc977c544865c992a515841")
+        (revision "1"))
+    (package
+      (name "pbcopper")
+      (version (git-version "1.9.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/PacificBiosciences/pbcopper")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1qxkbpdkamfisnk36lpi1vdvf3p1lg2hdqna3xgd94pz52bwbmp7"))))
+      (build-system meson-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-meson-files
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "meson.build"
+                 (("-msse4.1") "")))))))
+      (inputs
+       (list boost))
+      (native-inputs
+       (list googletest pkg-config))
+      (home-page "https://github.com/PacificBiosciences/pbcopper")
+      (synopsis "Data structures, algorithms, and utilities for PacBio C++ applications")
+      (description
+       "The pbcopper library provides a suite of data structures, algorithms,
+and utilities for PacBio C++ applications.")
+      (license license:bsd-3))))
 
 (define-public pbbam
   (package
     (name "pbbam")
-    (version "0.23.0")
+    (version "1.7.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/PacificBiosciences/pbbam")
-                    (commit version)))
+                    (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0h9gkrpf2lrxklxp72xfl5bi3h5zcm5hprrya9gf0hr3xwlbpp0x"))))
+                "1avdm5hwhr5ls79017blyalx1npzbf1aa6dgb6j6lg8sq4nk9yyg"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'find-googletest
+         (add-after 'unpack 'patch-tests
            (lambda* (#:key inputs #:allow-other-keys)
-             ;; It doesn't find gtest_main because there's no pkg-config file
-             ;; for it.  Find it another way.
-             (substitute* "tests/meson.build"
-               (("pbbam_gtest_dep = dependency\\('gtest_main'.*")
-                (format #f "cpp = meson.get_compiler('cpp')
-pbbam_gtest_dep = cpp.find_library('gtest_main', dirs : '~a')\n"
-                        (assoc-ref inputs "googletest"))))
-             #t)))
-       ;; TODO: tests/pbbam_test cannot be linked
-       ;; ld: tests/59830eb@@pbbam_test@exe/src_test_Accuracy.cpp.o:
-       ;;   undefined reference to symbol '_ZTIN7testing4TestE'
-       ;; ld: /gnu/store/...-googletest-1.8.0/lib/libgtest.so:
-       ;;   error adding symbols: DSO missing from command line
-       #:tests? #f
-       #:configure-flags '("-Dtests=false")))
+             ;; Disable this test.  I tried fixing it by including
+             ;; optional_io.hpp, but there's a type error.
+             (substitute* "tests/src/meson.build"
+               (("'test_ReadGroupInfo.cpp',") ""))
+             #;
+             (substitute* "include/pbbam/ReadGroupInfo.h"
+               (("#include <boost/optional.hpp>" m)
+                (string-append m "\n#include <boost/optional/optional_io.hpp>")))
+             (substitute* '("tests/scripts/cram/_test.py"
+                            "tests/scripts/cram/_main.py")
+               (("'/bin/sh'")
+                (string-append "'" (which "sh") "'"))))))))
     ;; These libraries are listed as "Required" in the pkg-config file.
     (propagated-inputs
-     `(("htslib" ,htslib)
-       ("zlib" ,zlib)))
+     (list htslib pbcopper zlib))
     (inputs
-     `(("boost" ,boost)
-       ("samtools" ,samtools)))
+     (list boost samtools))
     (native-inputs
      `(("googletest" ,googletest)
        ("pkg-config" ,pkg-config)
@@ -607,10 +667,9 @@ Non-PacBio BAMs will cause exceptions to be thrown.")
                   "1mlmq0v96irbz71bgw5zcc43g1x32zwnxx21a5p1f1ch4cikw1yd"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)))
+       (list autoconf automake))
       (inputs
-       `(("zlib" ,zlib)))
+       (list zlib))
       (home-page "https://github.com/nh13/pbgzip")
       (synopsis "Parallel Block GZIP")
       (description "This package implements parallel block gzip.  For many
@@ -628,7 +687,7 @@ speedup comes during compression.")
 (define-public blasr-libcpp
   (package
     (name "blasr-libcpp")
-    (version "5.3.3")
+    (version "5.3.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -637,7 +696,7 @@ speedup comes during compression.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0cn5l42zyq67sj0g2imqkhayz2iqvv0a1pgpbmlq0qynjmsrbfd2"))))
+                "07cdfnfl29zf2j7fpaaqaxghq3p0wnc109razs0icwm2q6l3gycb"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -672,13 +731,9 @@ libblasr_gtest_dep = cpp.find_library('gtest_main', dirs : '~a')\n"
        #:tests? #f
        #:configure-flags '("-Dtests=false")))
     (inputs
-     `(("boost" ,boost)
-       ("hdf5" ,hdf5)
-       ("pbbam" ,pbbam)
-       ("zlib" ,zlib)))
+     (list boost hdf5 htslib pbbam zlib))
     (native-inputs
-     `(("googletest" ,googletest)
-       ("pkg-config" ,pkg-config)))
+     (list googletest pkg-config))
     (home-page "https://github.com/PacificBiosciences/blasr_libcpp")
     (synopsis "Library for analyzing PacBio genomic sequences")
     (description
@@ -690,7 +745,7 @@ hdf and alignment.")
 (define-public blasr
   (package
     (name "blasr")
-    (version "5.3.3")
+    (version "5.3.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -699,7 +754,7 @@ hdf and alignment.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1skgy2mvz8gsgfh1gc2nfgwvpyzb1hpmp2cf2773h5wsj8nw22kl"))))
+                "0axyd06gn2xa0p0k76fihsbxpfxvhlb18jn6bf97c0ii58r1wc0k"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -713,19 +768,14 @@ hdf and alignment.")
                    m
                    (format #f "cpp.find_library('hdf5', dirs : '~a'), \
 cpp.find_library('hdf5_cpp', dirs : '~a'), "
-                           hdf5 hdf5)))))
-             #t)))
+                           hdf5 hdf5))))))))
        ;; Tests require "cram" executable, which is not packaged.
        #:tests? #f
        #:configure-flags '("-Dtests=false")))
     (inputs
-     `(("boost" ,boost)
-       ("blasr-libcpp" ,blasr-libcpp)
-       ("hdf5" ,hdf5)
-       ("pbbam" ,pbbam)
-       ("zlib" ,zlib)))
+     (list boost blasr-libcpp hdf5 pbbam zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/PacificBiosciences/blasr")
     (synopsis "PacBio long read aligner")
     (description
@@ -761,14 +811,14 @@ cpp.find_library('hdf5_cpp', dirs : '~a'), "
                   "Ribotaper.sh")))
              #t)))))
     (inputs
-     `(("bedtools" ,bedtools-2.18)
-       ("samtools" ,samtools-0.1)
-       ("r-minimal" ,r-minimal)
-       ("r-foreach" ,r-foreach)
-       ("r-xnomial" ,r-xnomial)
-       ("r-domc" ,r-domc)
-       ("r-multitaper" ,r-multitaper)
-       ("r-seqinr" ,r-seqinr)))
+     (list bedtools-2.18
+           samtools-0.1
+           r-minimal
+           r-foreach
+           r-xnomial
+           r-domc
+           r-multitaper
+           r-seqinr))
     (home-page "https://ohlerlab.mdc-berlin.de/software/RiboTaper_126/")
     (synopsis "Define translated ORFs using ribosome profiling data")
     (description
@@ -796,22 +846,23 @@ provides the Ribotaper pipeline.")
      `(#: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")))
-             #t)))))
+                               prefix "scripts=['scripts/TE.py'],\n"))))))))
     (inputs
-     `(("python-numpy" ,python2-numpy)
-       ("python-matplotlib" ,python2-matplotlib)
-       ("python-scipy" ,python2-scipy)
-       ("python-statsmodels" ,python2-statsmodels)))
+     (list python2-numpy python2-matplotlib python2-scipy
+           python2-statsmodels))
     (native-inputs
-     `(("python-mock" ,python2-mock)
-       ("python-nose" ,python2-nose)))
+     (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
@@ -837,9 +888,9 @@ independently with transcriptional regulation.")
                 "1pxc3zdnirxbf9a0az698hd8xdik7qkhypm7v6hn922x8y9qmspm"))))
     (build-system gnu-build-system)
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (native-inputs
-     `(("bison" ,bison)))
+     (list bison))
     (arguments
      `(#:tests? #f ; There are no tests to run.
        ;; Bison must generate files, before other targets can build.
@@ -878,11 +929,9 @@ intended to behave exactly the same as the original BWK awk.")
               "0ic07q85vhw9djf23k57b21my7i5xp400m8gfqgr5gcryqvdr0yk"))))
    (build-system python-build-system)
    (native-inputs
-    `(("python-setuptools-scm" ,python-setuptools-scm)))
+    (list python-setuptools-scm))
    (propagated-inputs
-    `(("python-humanize" ,python-humanize)
-      ("python-requests" ,python-requests)
-      ("python-six" ,python-six)))
+    (list python-humanize python-requests python-six))
    (home-page "https://pypi.org/project/htsget/")
    (synopsis "Python API and command line interface for the GA4GH htsget API")
    (description "This package is a client implementation of the GA4GH htsget
@@ -945,20 +994,17 @@ servers supporting the protocol.")
              (with-directory-excursion "/tmp/test"
                (invoke "pytest" "-v" "--doctest-modules")))))))
     (propagated-inputs
-     `(("bedtools" ,bedtools)
-       ("samtools" ,samtools)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-pysam" ,python-pysam)
-       ("python-pyyaml" ,python-pyyaml)))
-    (native-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-cython" ,python-cython)
-       ("kentutils" ,kentutils)         ; for bedGraphToBigWig
-       ("python-six" ,python-six)
-       ;; For the test suite.
-       ("python-pytest" ,python-pytest)
-       ("python-psutil" ,python-psutil)))
+     (list bedtools samtools python-matplotlib python-pysam
+           python-pyyaml))
+    (native-inputs
+     (list python-numpy
+           python-pandas
+           python-cython
+           kentutils ; for bedGraphToBigWig
+           python-six
+           ;; For the test suite.
+           python-pytest
+           python-psutil))
     (home-page "https://pythonhosted.org/pybedtools/")
     (synopsis "Python wrapper for BEDtools programs")
     (description
@@ -973,13 +1019,13 @@ Python.")
     (package
       (inherit pybedtools)
       (native-inputs
-       `(("python2-pathlib" ,python2-pathlib)
-         ,@(package-native-inputs pybedtools))))))
+       (modify-inputs (package-native-inputs pybedtools)
+         (prepend python2-pathlib))))))
 
 (define-public python-biom-format
   (package
     (name "python-biom-format")
-    (version "2.1.7")
+    (version "2.1.10")
     (source
      (origin
        (method git-fetch)
@@ -991,18 +1037,21 @@ Python.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1rna16lyk5aqhnv0dp77wwaplias93f1vw28ad3jmyw6hwkai05v"))
+         "0i62j6ksmp78ap2dnl969gq6vprc3q87zc8ksj9if8g2603iq6i8"))
        (modules '((guix build utils)))
-       (snippet '(begin
-                   ;; Delete generated C files.
-                   (for-each delete-file (find-files "." "\\.c"))
-                   #t))))
+       ;; Delete generated C files.
+       (snippet
+        '(for-each delete-file (find-files "." "\\.c")))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'use-cython
-           (lambda _ (setenv "USE_CYTHON" "1") #t))
+           (lambda _ (setenv "USE_CYTHON" "1")))
+         (add-after 'unpack 'relax
+           (lambda _
+             (substitute* "setup.py"
+               (("pytest < 5.3.4") "pytest"))))
          (add-after 'unpack 'disable-broken-tests
            (lambda _
              (substitute* "biom/tests/test_cli/test_validate_table.py"
@@ -1014,29 +1063,24 @@ Python.")
                (("^(.+)def test_from_hdf5_issue_731" m indent)
                 (string-append indent
                                "@npt.dec.skipif(True, msg='Guix')\n"
-                               m)))
-             #t))
+                               m)))))
+
          (add-before 'reset-gzip-timestamps 'make-files-writable
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (for-each (lambda (file) (chmod file #o644))
-                         (find-files out "\\.gz"))
-               #t))))))
+                         (find-files out "\\.gz"))))))))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)
-       ("python-flake8" ,python-flake8)
-       ("python-future" ,python-future)
-       ("python-click" ,python-click)
-       ("python-h5py" ,python-h5py)
-       ;; FIXME: Upgrade to pandas 1.0 when
-       ;; https://github.com/biocore/biom-format/issues/837 is resolved.
-       ("python-pandas" ,python-pandas-0.25)))
-    (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-nose" ,python-nose)))
+     (list python-anndata
+           python-numpy
+           python-scipy
+           python-flake8
+           python-future
+           python-click
+           python-h5py
+           python-pandas))
+    (native-inputs
+     (list python-cython python-pytest python-pytest-cov python-nose))
     (home-page "http://www.biom-format.org")
     (synopsis "Biological Observation Matrix (BIOM) format utilities")
     (description
@@ -1044,23 +1088,7 @@ Python.")
 representing counts of observations e.g. operational taxonomic units, KEGG
 orthology groups or lipid types, in one or more biological samples
 e.g. microbiome samples, genomes, metagenomes.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-biom-format))))))
-
-(define-public python2-biom-format
-  (let ((base (package-with-python2 (strip-python2-variant python-biom-format))))
-    (package
-      (inherit base)
-      (arguments
-       (substitute-keyword-arguments (package-arguments base)
-         ((#:phases phases)
-          `(modify-phases ,phases
-             ;; Do not require the unmaintained pyqi library.
-             (add-after 'unpack 'remove-pyqi
-               (lambda _
-                 (substitute* "setup.py"
-                   (("install_requires.append\\(\"pyqi\"\\)") "pass"))
-                 #t)))))))))
+    (license license:bsd-3)))
 
 (define-public python-pairtools
   (package
@@ -1091,17 +1119,15 @@ e.g. microbiome samples, genomes, metagenomes.")
              (with-directory-excursion "/tmp"
                (invoke "pytest" "-v")))))))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-nose" ,python-nose)
-       ("python-pytest" ,python-pytest)))
+     (list python-cython python-nose python-pytest))
     (inputs
      `(("python" ,python-wrapper)))
     (propagated-inputs
-     `(("htslib" ,htslib)               ; for bgzip, looked up in PATH
-       ("samtools" ,samtools)           ; looked up in PATH
-       ("lz4" ,lz4) ; for lz4c
-       ("python-click" ,python-click)
-       ("python-numpy" ,python-numpy)))
+     (list htslib ; for bgzip, looked up in PATH
+           samtools ; looked up in PATH
+           lz4 ; for lz4c
+           python-click
+           python-numpy))
     (home-page "https://github.com/mirnylab/pairtools")
     (synopsis "Process mapped Hi-C data")
     (description "Pairtools is a simple and fast command-line framework to
@@ -1168,12 +1194,9 @@ alignments and perform the following operations:
                            (find-files bin "\\.pl$"))
                  #t)))))))
     (inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-data-stag" ,perl-data-stag)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-uri" ,perl-uri)))
+     (list perl-module-build perl-data-stag perl-libwww perl-uri))
     (native-inputs
-     `(("perl-test-most" ,perl-test-most)))
+     (list perl-test-most))
     (home-page "https://metacpan.org/release/BioPerl")
     (synopsis "Bioinformatics toolkit")
     (description
@@ -1201,11 +1224,9 @@ provide a coordinated and extensible framework to do computational biology.")
          "0hjg0igfkpvh27zdkdr6pa7cqm9n6r7cwz0np74cl4wmawgvr9hj"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("pkg-config" ,pkg-config)))
+     (list perl-module-build pkg-config))
     (propagated-inputs
-     `(("bioperl-minimal" ,bioperl-minimal)
-       ("htslib" ,htslib-1.9)))
+     (list bioperl-minimal htslib-1.9))
     (home-page "https://metacpan.org/release/Bio-DB-HTS")
     (synopsis "Perl interface to HTS library for DNA sequencing")
     (description "This is a Perl interface to the HTS library for DNA
@@ -1215,14 +1236,14 @@ sequencing.")
 (define-public python-biopython
   (package
     (name "python-biopython")
-    (version "1.73")
+    (version "1.76")
     (source (origin
               (method url-fetch)
               ;; use PyPi rather than biopython.org to ease updating
               (uri (pypi-uri "biopython" version))
               (sha256
                (base32
-                "1q55jhf76z3k6is3psis0ckbki7df26x7dikpcc3vhk1vhkwribh"))))
+                "0wlch9xpa0fpgjzyxi6jsfca6iakaq9a05927xg8vqnmvaccnwrq"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1231,7 +1252,7 @@ sequencing.")
            ;; Some tests require a home directory to be set.
            (lambda _ (setenv "HOME" "/tmp") #t)))))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (home-page "https://biopython.org/")
     (synopsis "Tools for biological computation in Python")
     (description
@@ -1243,6 +1264,18 @@ dealing with alignments; code making it easy to split up parallelizable tasks
 into separate processes; and more.")
     (license (license:non-copyleft "http://www.biopython.org/DIST/LICENSE"))))
 
+(define-public python-biopython-1.73
+  (package
+    (inherit python-biopython)
+    (version "1.73")
+    (source (origin
+              (method url-fetch)
+              ;; use PyPi rather than biopython.org to ease updating
+              (uri (pypi-uri "biopython" version))
+              (sha256
+               (base32
+                "1q55jhf76z3k6is3psis0ckbki7df26x7dikpcc3vhk1vhkwribh"))))))
+
 (define-public python2-biopython
   (package-with-python2 python-biopython))
 
@@ -1269,6 +1302,261 @@ relying on a complex dependency tree.")
 (define-public python2-fastalite
   (package-with-python2 python-fastalite))
 
+(define-public biosoup
+  (package
+    (name "biosoup")
+    (version "0.10.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rvaser/biosoup")
+             ;; Corresponds to version 0.10.0
+             (commit "38181f09854ff42cbd9632200a2ec9fb37a4b7b6")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "02hvyka703zagx0nvv2yx3dkc748zc8g6qbrpya7r8kfkcl7y8hw"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "./bin/biosoup_test")))))))
+    (native-inputs
+     (list googletest))
+    (home-page "https://github.com/rvaser/biosoup")
+    (synopsis "C++ support library for bioinformatics tools")
+    (description "Biosoup is a C++ collection of header-only data structures
+used for storage and logging in bioinformatics tools.")
+    (license license:expat)))
+
+(define-public bioparser
+  (package
+    (name "bioparser")
+    (version "3.0.13")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rvaser/bioparser")
+             ;; Corresponds to tag 3.0.13
+             (commit "13341e6e0855c6b358ffcea6dad216e1009e1287")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0c5p2dl8jb12ci9f427jzrmmm9cgvc1k4fxsn2ggkfsin6r1r82i"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "./bin/bioparser_test")))))))
+    (inputs
+     (list biosoup))
+    (propagated-inputs
+     (list zlib))
+    (native-inputs
+     (list googletest))
+    (home-page "https://github.com/rvaser/bioparser")
+    (synopsis "C++ library for parsing several formats in bioinformatics")
+    (description "Bioparser is a C++ header only parsing library for several
+bioinformatics formats (FASTA/Q, MHAP/PAF/SAM), with support for zlib
+compressed files.")
+    (license license:expat)))
+
+(define-public circtools
+  (package
+    (name "circtools")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Kevinzjy/circtools")
+             ;; Corresponds to tag v1.0.0
+             (commit "79380de59013601021ca3b1352d6f64d2fb89646")
+             (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0wg1s927g32k25j967kfr8l30nmr4c0p4zvy5igvy7cs6chd60lh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'make-writable
+           (lambda _
+             (for-each make-file-writable (find-files "."))))
+         (add-after 'unpack 'prepare-spoa-dependencies
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "vendor/spoa/CMakeLists.txt"
+               (("find_package\\(bioparser 3.0.13 QUIET\\)")
+                "find_package(bioparser 3.0.13 CONFIG)")
+               (("find_package\\(biosoup 0.10.0 QUIET\\)")
+                "find_package(biosoup 0.10.0 CONFIG)")
+               (("GTest_FOUND") "TRUE")))))
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-bio" ,rust-bio-0.33)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-docopt" ,rust-docopt-1)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-indicatif" ,rust-indicatif-0.15)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-seq-io" ,rust-seq-io-0.3))))
+    (inputs
+     (list bioparser biosoup))
+    (native-inputs
+     (list cmake pkg-config googletest))
+    (home-page "https://github.com/Kevinzjy/circtools")
+    (synopsis "Accelerating functions in CIRI toolkit")
+    (description "This package provides accelerated functions for the CIRI
+toolkit.  It also provides the @code{ccs} executable to scan for circular
+consensus sequences.")
+    (license license:expat)))
+
+(define-public ciri-long
+  (package
+    (name "ciri-long")
+    (version "1.0.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/bioinfo-biols/CIRI-long")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "10k88i1fcqchrrjv82rmylwvbwqfba0n51palhig9hsg71xs0dbi"))
+       ;; Delete bundled binary
+       (snippet '(delete-file "libs/ccs"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'relax-requirements
+           (lambda _
+             (substitute* "setup.py"
+               (("'argparse[^']*',") "") ; only for python2
+               (("==") ">="))))
+         (add-before 'build 'build-libssw
+           (lambda _
+             (with-directory-excursion "libs/striped_smith_waterman"
+               (invoke "make" "libssw.so"))))
+         (add-before 'build 'fix-reference-to-ccs
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "CIRI_long/pipeline.py"
+               (("'ccs -i")
+                (string-append "'"
+                               (assoc-ref inputs "circtools") "/bin/ccs"
+                               " -i")))
+             ;; yuck!
+             (substitute* "CIRI_long/main.py"
+               (("os.chmod\\(lib_path.*") "")))))))
+    (inputs
+     (list circtools
+           python-biopython
+           python-bwapy
+           python-levenshtein
+           python-mappy
+           python-numpy
+           python-pandas
+           python-pysam
+           python-pyspoa
+           python-scikit-learn
+           python-scipy))
+    (native-inputs
+     (list python-cython python-nose python-setuptools))
+    (home-page "https://ciri-cookbook.readthedocs.io/")
+    (synopsis "Circular RNA identification for Nanopore sequencing")
+    (description "CIRI-long is a package for circular RNA identification using
+long-read sequencing data.")
+    (license license:expat)))
+
+(define-public qtltools
+  (package
+    (name "qtltools")
+    (version "1.3.1")
+    (source (origin
+              (method url-fetch/tarbomb)
+              (uri (string-append "https://qtltools.github.io/qtltools/"
+                                  "binaries/QTLtools_" version
+                                  "_source.tar.gz"))
+              (sha256
+               (base32
+                "13gdry5l43abn3464fmk8qzrxgxnxah2612r66p9dzhhl92j30cd"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no tests included
+       #:make-flags
+       ,#~(list (string-append "BOOST_INC="
+                               #$(this-package-input "boost") "/include")
+                (string-append "BOOST_LIB="
+                               #$(this-package-input "boost") "/lib")
+                (string-append "HTSLD_INC="
+                               #$(this-package-input "htslib") "/include")
+                (string-append "HTSLD_LIB="
+                               #$(this-package-input "htslib") "/lib")
+                (string-append "RMATH_INC="
+                               #$(this-package-input "rmath-standalone")
+                               "/include")
+                (string-append "RMATH_LIB="
+                               #$(this-package-input "rmath-standalone")
+                               "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-linkage
+           (lambda _
+             (substitute* "qtltools/Makefile"
+               (("libboost_iostreams.a")
+                "libboost_iostreams.so")
+               (("libboost_program_options.a")
+                "libboost_program_options.so")
+               (("-lblas") "-lopenblas"))))
+         (add-before 'build 'chdir
+           (lambda _ (chdir "qtltools")))
+         (replace 'configure
+           (lambda _
+             (substitute* "qtltools/Makefile"
+               (("LIB_FLAGS=-lz")
+                "LIB_FLAGS=-lz -lcrypto -lssl")
+               (("LIB_FILES=\\$\\(RMATH_LIB\\)/libRmath.a \
+\\$\\(HTSLD_LIB\\)/libhts.a \
+\\$\\(BOOST_LIB\\)/libboost_iostreams.a \
+\\$\\(BOOST_LIB\\)/libboost_program_options.a")
+                "LIB_FILES=$(RMATH_LIB)/libRmath.so \
+$(HTSLD_LIB)/libhts.so \
+$(BOOST_LIB)/libboost_iostreams.so \
+$(BOOST_LIB)/libboost_program_options.so"))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+               (mkdir-p bin)
+               (install-file "bin/QTLtools" bin)))))))
+    (inputs
+     (list curl
+           gsl
+           boost
+           rmath-standalone
+           htslib-1.3
+           openssl
+           openblas
+           zlib))
+    (home-page "https://qtltools.github.io/qtltools/")
+    (synopsis "Tool set for molecular QTL discovery and analysis")
+    (description "QTLtools is a tool set for molecular QTL discovery
+and analysis.  It allows going from the raw genetic sequence data to
+collection of molecular @dfn{Quantitative Trait Loci} (QTLs) in few
+easy-to-perform steps.")
+    (license license:gpl3+)))
+
 (define-public bpp-core
   ;; The last release was in 2014 and the recommended way to install from source
   ;; is to clone the git repository, so we do this.
@@ -1323,8 +1611,7 @@ providing them a set of re-usable tools.")
          ;; so the tests fail.
          #:out-of-source? #f))
       (inputs
-       `(("bpp-core" ,bpp-core)
-         ("bpp-seq" ,bpp-seq)))
+       (list bpp-core bpp-seq))
       (home-page "http://biopp.univ-montp2.fr")
       (synopsis "Bio++ phylogenetic Library")
       (description
@@ -1355,8 +1642,7 @@ library provides phylogenetics-related modules.")
        `(#:parallel-build? #f
          #:tests? #f)) ; There are no tests.
       (inputs
-       `(("bpp-core" ,bpp-core)
-         ("bpp-seq" ,bpp-seq)))
+       (list bpp-core bpp-seq))
       (home-page "http://biopp.univ-montp2.fr")
       (synopsis "Bio++ population genetics library")
       (description
@@ -1389,7 +1675,7 @@ library provides population genetics-related modules.")
          ;; so the tests fail.
          #:out-of-source? #f))
       (inputs
-       `(("bpp-core" ,bpp-core)))
+       (list bpp-core))
       (home-page "http://biopp.univ-montp2.fr")
       (synopsis "Bio++ sequence library")
       (description
@@ -1420,9 +1706,7 @@ library provides sequence-related modules.")
        `(#:parallel-build? #f
          #:tests? #f)) ; There are no tests.
       (native-inputs
-       `(("groff" ,groff)
-         ("man-db" ,man-db)
-         ("texinfo" ,texinfo)))
+       (list groff man-db texinfo))
       (inputs
        `(("bpp-core" ,bpp-core)
          ("bpp-seq" ,bpp-seq)
@@ -1561,7 +1845,7 @@ package provides command line tools using the Bio++ library.")
        ("perl" ,perl)
        ("python" ,python-wrapper)))
     (native-inputs
-     `(("cpio" ,cpio)))
+     (list cpio))
     (home-page "https://blast.ncbi.nlm.nih.gov")
     (synopsis "Basic local alignment search tool")
     (description
@@ -1608,28 +1892,26 @@ confidence to have in an alignment.")
                   (delete-file-recursively "pigz")
                   (delete-file-recursively "google-sparsehash")
                   (delete-file-recursively "zlib")
-                  (delete-file-recursively ".git")
-                  #t))))
+                  (delete-file-recursively ".git")))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f ;no "check" target
+     `(#:tests? #f ;no "check" target
        #:make-flags
-       (list (string-append "ZLIB="
-                            (assoc-ref %build-inputs "zlib:static")
-                            "/lib/libz.a")
-             (string-append "LDFLAGS="
-                            (string-join '("-lboost_filesystem"
-                                           "-lboost_system"
-                                           "-lboost_iostreams"
-                                           "-lz"
-                                           "-fopenmp"))))
+       ,#~(list (string-append "ZLIB="
+                               #$(this-package-input "zlib")
+                               "/lib/libz.so")
+                (string-append "LDFLAGS="
+                               (string-join '("-lboost_filesystem"
+                                              "-lboost_system"
+                                              "-lboost_iostreams"
+                                              "-lz"
+                                              "-fopenmp"))))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'do-not-build-bundled-pigz
           (lambda* (#:key inputs outputs #:allow-other-keys)
             (substitute* "Makefile"
-              (("cd pigz/pigz-2.3.3; make") ""))
-            #t))
+              (("cd pigz/pigz-2.3.3; make") ""))))
          (add-after 'unpack 'patch-paths-to-executables
           (lambda* (#:key inputs outputs #:allow-other-keys)
             (substitute* "parse_args.cpp"
@@ -1640,25 +1922,18 @@ confidence to have in an alignment.")
               (("pigz_binary = .*")
                (string-append "pigz_binary = \""
                               (assoc-ref inputs "pigz")
-                              "/bin/pigz\";")))
-            #t))
+                              "/bin/pigz\";")))))
          (replace 'install
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
               (for-each (lambda (file)
                           (install-file file bin))
-                        '("bless" "kmc/bin/kmc"))
-              #t)))
+                        '("bless" "kmc/bin/kmc")))))
          (delete 'configure))))
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (inputs
-     `(("openmpi" ,openmpi)
-       ("boost" ,boost)
-       ("sparsehash" ,sparsehash)
-       ("pigz" ,pigz)
-       ("zlib:static" ,zlib "static")
-       ("zlib" ,zlib)))
+     (list openmpi boost sparsehash pigz zlib))
     (supported-systems '("x86_64-linux"))
     (home-page "https://sourceforge.net/p/bless-ec/wiki/Home/")
     (synopsis "Bloom-filter-based error correction tool for NGS reads")
@@ -1691,33 +1966,33 @@ errors at the end of reads.")
                   (substitute* "Makefile"
                     ;; replace BUILD_HOST and BUILD_TIME for deterministic build
                     (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"")
-                    (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\""))
-                  #t))))
+                    (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\""))))))
     (build-system gnu-build-system)
     (arguments
-     '(#:make-flags
-       (list "allall"
-             "WITH_TBB=1"
-             (string-append "prefix=" (assoc-ref %outputs "out")))
+     `(#:make-flags
+       ,#~(list "allall"
+                "WITH_TBB=1"
+                (string-append "prefix=" #$output))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
+         (replace 'configure
+           (lambda _
+             ;; This "extended character" is not considered valid.
+             (substitute* "processor_support.h"
+               (("“") "\"")
+               (("”") "\""))))
          (replace 'check
            (lambda _
              (invoke "perl"
                      "scripts/test/simple_tests.pl"
                      "--bowtie2=./bowtie2"
-                     "--bowtie2-build=./bowtie2-build")
-             #t)))))
+                     "--bowtie2-build=./bowtie2-build"))))))
     (inputs
-     `(("tbb" ,tbb)
+     `(("tbb" ,tbb-2020)
        ("zlib" ,zlib)
        ("python" ,python-wrapper)))
     (native-inputs
-     `(("perl" ,perl)
-       ("perl-clone" ,perl-clone)
-       ("perl-test-deep" ,perl-test-deep)
-       ("perl-test-simple" ,perl-test-simple)))
+     (list perl perl-clone perl-test-deep perl-test-simple))
     (home-page "http://bowtie-bio.sourceforge.net/bowtie2/index.shtml")
     (synopsis "Fast and sensitive nucleotide sequence read aligner")
     (description
@@ -1750,17 +2025,15 @@ gapped, local, and paired-end alignment modes.")
                   (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\"")))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f                      ; no "check" target
+     `(#:tests? #f                      ; no "check" target
        #:make-flags
-       (list "CC=gcc" "all"
-             (string-append "prefix=" (assoc-ref %outputs "out")))
+       ,#~(list "CC=gcc" "all"
+                (string-append "prefix=" #$output))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure))))
     (inputs
-     `(("python-wrapper" ,python-wrapper)
-       ("tbb" ,tbb)
-       ("zlib" ,zlib)))
+     (list python-wrapper tbb-2020 zlib))
     (supported-systems '("x86_64-linux"))
     (home-page "http://bowtie-bio.sourceforge.net/index.shtml")
     (synopsis "Fast aligner for short nucleotide sequence reads")
@@ -1866,6 +2139,7 @@ splice junctions between exons.")
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ;no "check" target
+       #:make-flags '("CFLAGS=-fcommon")
        #:phases
        (modify-phases %standard-phases
          (replace 'install
@@ -1878,11 +2152,10 @@ splice junctions between exons.")
                (install-file "bwa" bin)
                (install-file "libbwa.a" lib)
                (install-file "README.md" doc)
-               (install-file "bwa.1" man))
-             #t))
+               (install-file "bwa.1" man))))
            ;; no "configure" script
           (delete 'configure))))
-    (inputs `(("zlib" ,zlib)))
+    (inputs (list zlib))
     ;; Non-portable SSE instructions are used so building fails on platforms
     ;; other than x86_64.
     (supported-systems '("x86_64-linux"))
@@ -1914,10 +2187,16 @@ and more accurate.  BWA-MEM also has better performance than BWA-backtrack for
                (base32
                 "076c4q0cdqz8jgylb067y9zmvxglppnzi3qiscn0xiypgc6lgb5r"))))
     (build-system gnu-build-system)
+    (arguments
+     (substitute-keyword-arguments (package-arguments bwa)
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'patch-C-error
+             (lambda _
+               (substitute* "pssm.c"
+                 (("inline int map") "int map"))))))))
     (inputs
-     `(("gdsl" ,gdsl)
-       ("zlib" ,zlib)
-       ("perl" ,perl)))
+     (list gdsl zlib perl))
     (home-page "http://bwa-pssm.binf.ku.dk/")
     (synopsis "Burrows-Wheeler transform-based probabilistic short read mapper")
     (description
@@ -1956,9 +2235,9 @@ well as many of the command line options.")
                (("^checkX.*") ""))
              #t)))))
     (inputs
-     `(("bwa" ,bwa)))
+     (list bwa))
     (native-inputs
-     `(("python-toolshed" ,python-toolshed)))
+     (list python-toolshed))
     (home-page "https://github.com/brentp/bwa-meth")
     (synopsis "Fast and accurante alignment of BS-Seq reads")
     (description
@@ -1974,25 +2253,23 @@ off-target reads for a capture method that targets CpG-rich region.")
 (define-public python-bx-python
   (package
     (name "python-bx-python")
-    (version "0.8.2")
+    (version "0.8.12")
     (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "bx-python" version))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/bxlab/bx-python")
+                    (commit "f4e6a5c93e719db69b5798b6fdd9b167da358316")))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "11kksg2rbzihpmcid823xvg42xi88m7sz58rzk29abybkxy0rszs"))))
+                "0mclahslz34vq9x424jmzsxk0nmpm1j716fa8h3zwr9ssvch7skc"))))
     (build-system python-build-system)
-    ;; Tests fail because test data are not included
-    (arguments '(#:tests? #f))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-six" ,python-six)))
+     (list python-numpy))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (native-inputs
-     `(("python-lzo" ,python-lzo)
-       ("python-nose" ,python-nose)
-       ("python-cython" ,python-cython)))
+     (list python-lzo python-nose python-cython))
     (home-page "https://github.com/bxlab/bx-python")
     (synopsis "Tools for manipulating biological data")
     (description
@@ -2000,9 +2277,6 @@ off-target reads for a capture method that targets CpG-rich region.")
 multiple sequence alignments.")
     (license license:expat)))
 
-(define-public python2-bx-python
-  (package-with-python2 python-bx-python))
-
 (define-public python-pyega3
   (package
     (name "python-pyega3")
@@ -2017,13 +2291,9 @@ multiple sequence alignments.")
     (arguments
      `(#:tests? #f)) ; The tests require network access.
     (native-inputs
-     `(("python-psutil" ,python-psutil)
-       ("python-htsget" ,python-htsget)))
+     (list python-psutil python-htsget))
     (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("python-tqdm" ,python-tqdm)
-       ("python-urllib3" ,python-urllib3)
-       ("python-responses" ,python-responses)))
+     (list python-requests python-tqdm python-urllib3 python-responses))
     (home-page "https://github.com/EGA-archive/ega-download-client")
     (synopsis "Python client for EGA")
     (description "This package is a python-based tool for viewing and
@@ -2095,18 +2365,16 @@ has several key features:
                            " and not TestHeaderCRAM"
                            " and not test_text_processing")))))))))
     (propagated-inputs
-     `(("htslib" ,htslib-1.10)))    ; Included from installed header files.
+     (list htslib-1.10))    ; Included from installed header files.
     (inputs
-     `(("ncurses" ,ncurses)
-       ("curl" ,curl)
-       ("zlib" ,zlib)))
+     (list ncurses curl zlib))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)
-       ;; Dependencies below are are for tests only.
-       ("samtools" ,samtools-1.10)
-       ("bcftools" ,bcftools-1.10)
-       ("python-nose" ,python-nose)))
+     (list python-cython
+           python-pytest
+           ;; Dependencies below are are for tests only.
+           samtools-1.10
+           bcftools-1.10
+           python-nose))
     (home-page "https://github.com/pysam-developers/pysam")
     (synopsis "Python bindings to the SAMtools C API")
     (description
@@ -2135,7 +2403,7 @@ also includes an interface for tabix.")
     ;; Tests are not included
     (arguments '(#:tests? #f))
     (native-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     (list python-sphinx))
     (home-page "https://github.com/benjschiller/twobitreader")
     (synopsis "Python library for reading .2bit files")
     (description
@@ -2143,35 +2411,31 @@ also includes an interface for tabix.")
 UCSC genome browser.")
     (license license:artistic2.0)))
 
-(define-public python2-twobitreader
-  (package-with-python2 python-twobitreader))
-
 (define-public python-plastid
   (package
     (name "python-plastid")
-    (version "0.4.8")
+    (version "0.5.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "plastid" version))
               (sha256
                (base32
-                "0l24dd3q66if8yj042m4s0g95n6acn7im1imqd3p6h8ns43kxhj8"))))
+                "1a7mdky2xw02y88l51f58pqk8039ahdp6sblj3zx58zarmy2pqyl"))))
     (build-system python-build-system)
     (arguments
      ;; Some test files are not included.
      `(#:tests? #f))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)
-       ("python-pandas" ,python-pandas)
-       ("python-pysam" ,python-pysam)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-biopython" ,python-biopython)
-       ("python-twobitreader" ,python-twobitreader)
-       ("python-termcolor" ,python-termcolor)))
-    (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-nose" ,python-nose)))
+     (list python-numpy
+           python-scipy
+           python-pandas
+           python-pysam
+           python-matplotlib
+           python-biopython
+           python-twobitreader
+           python-termcolor))
+    (native-inputs
+     (list python-cython python-nose))
     (home-page "https://github.com/joshuagryphon/plastid")
     (synopsis "Python library for genomic analysis")
     (description
@@ -2179,9 +2443,6 @@ UCSC genome browser.")
 high-throughput sequencing data – with an emphasis on simplicity.")
     (license license:bsd-3)))
 
-(define-public python2-plastid
-  (package-with-python2 python-plastid))
-
 (define-public tetoolkit
   (package
     (name "tetoolkit")
@@ -2231,12 +2492,12 @@ high-throughput sequencing data – with an emphasis on simplicity.")
                   "TEcount")))
              #t)))))
     (inputs
-     `(("coreutils" ,coreutils)
-       ("bedtools" ,bedtools)
-       ("python-argparse" ,python2-argparse)
-       ("python-pysam" ,python2-pysam)
-       ("r-minimal" ,r-minimal)
-       ("r-deseq2" ,r-deseq2)))
+     (list coreutils
+           bedtools
+           python2-argparse
+           python2-pysam
+           r-minimal
+           r-deseq2))
     (home-page "https://github.com/mhammell-laboratory/tetoolkit")
     (synopsis "Transposable elements in differential enrichment analysis")
     (description
@@ -2266,9 +2527,9 @@ are not included due to their size.")
      `(#:tests? #f ; there are no tests
        #:make-flags
        ;; Executables are copied directly to the PREFIX.
-       (list (string-append "PREFIX=" (assoc-ref %outputs "out") "/bin")
-             ;; Support longer sequences (e.g. Pacbio sequences)
-             "MAX_SEQ=60000000")
+       ,#~(list (string-append "PREFIX=" #$output "/bin")
+                ;; Support longer sequences (e.g. Pacbio sequences)
+                "MAX_SEQ=60000000")
        #:phases
        (modify-phases %standard-phases
          ;; No "configure" script
@@ -2288,7 +2549,7 @@ are not included due to their size.")
              (mkdir-p (string-append (assoc-ref outputs "out") "/bin"))
              #t)))))
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "http://weizhongli-lab.org/cd-hit/")
     (synopsis "Cluster and compare protein or nucleotide sequences")
     (description
@@ -2302,7 +2563,7 @@ databases.")
 (define-public clipper
   (package
     (name "clipper")
-    (version "2.0")
+    (version "2.0.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2311,10 +2572,16 @@ databases.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1bcag4lb5bkzsj2vg7lrq24aw6yfgq275ifrbhd82l7kqgbbjbkv"))))
+                "0508rgnfjk5ar5d1mjbjyrnarv4kw9ksq0m3jw2bmgabmb5v6ikk"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Delete pre-compiled files.
+                  (delete-file "clipper/src/peaks.so")))))
     (build-system python-build-system)
     (arguments
-     `(#:phases
+     `(#:tests? #false
+       #:phases
        (modify-phases %standard-phases
          (add-before 'reset-gzip-timestamps 'make-files-writable
            (lambda* (#:key outputs #:allow-other-keys)
@@ -2322,23 +2589,45 @@ databases.")
              ;; 'reset-gzip-timestamps' phase can do its work.
              (let ((out (assoc-ref outputs "out")))
                (for-each make-file-writable
-                         (find-files out "\\.gz$"))
-               #t))))))
-    (inputs
-     `(("htseq" ,htseq)
-       ("python-pybedtools" ,python-pybedtools)
-       ("python-cython" ,python-cython)
-       ("python-scikit-learn" ,python-scikit-learn)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-pandas" ,python-pandas)
-       ("python-pysam" ,python-pysam)
-       ("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)))
-    (native-inputs
-     `(("python-setuptools-git" ,python-setuptools-git)
-       ("python-mock" ,python-mock)   ; for tests
-       ("python-nose" ,python-nose)   ; for tests
-       ("python-pytz" ,python-pytz))) ; for tests
+                         (find-files out "\\.gz$")))))
+         (add-after 'unpack 'use-python3-for-cython
+           (lambda _
+             (substitute* "setup.py"
+               (("^setup")
+                "\
+peaks.cython_directives = {'language_level': '3'}
+readsToWiggle.cython_directives = {'language_level': '3'}
+setup"))))
+         (add-after 'unpack 'disable-nondeterministic-test
+           (lambda _
+             ;; This test fails/succeeds non-deterministically.
+             (substitute* "clipper/test/test_call_peak.py"
+               (("test_get_FDR_cutoff_mean") "_test_get_FDR_cutoff_mean"))))
+         ;; This doesn't work because "usage" is executed, and that calls
+         ;; exit(8).
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (with-directory-excursion "clipper/test"
+                 (invoke "python" "-m" "unittest")))))
+         ;; This is not a library
+         (delete 'sanity-check))))
+    (inputs
+     (list htseq
+           python-pybedtools
+           python-cython
+           python-scikit-learn
+           python-matplotlib
+           python-pandas
+           python-pysam
+           python-numpy
+           python-scipy))
+    (native-inputs
+     (list python-setuptools-git
+           python-mock ; for tests
+           python-nose ; for tests
+           python-pytz)) ; for tests
     (home-page "https://github.com/YeoLab/clipper")
     (synopsis "CLIP peak enrichment recognition")
     (description
@@ -2374,7 +2663,7 @@ databases.")
                (install-file "CodingQuarry" bin)
                (install-file "CufflinksGTF_to_CodingQuarryGFF3.py" bin))
              #t)))))
-    (inputs `(("openmpi" ,openmpi)))
+    (inputs (list openmpi))
     (native-search-paths
      (list (search-path-specification
             (variable "QUARRY_PATH")
@@ -2386,77 +2675,6 @@ gene predictor designed to work with assembled, aligned RNA-seq transcripts.")
     (home-page "https://sourceforge.net/projects/codingquarry/")
     (license license:gpl3+)))
 
-(define-public couger
-  (package
-    (name "couger")
-    (version "1.8.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "http://couger.oit.duke.edu/static/assets/COUGER"
-                    version ".zip"))
-              (sha256
-               (base32
-                "04p2b14nmhzxw5h72mpzdhalv21bx4w9b87z0wpw0xzxpysyncmq"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#: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"))
-                   (bin (string-append out "/bin")))
-              (copy-recursively "src" (string-append out "/src"))
-              (mkdir bin)
-              ;; Add "src" directory to module lookup path.
-              (substitute* "couger"
-                (("from argparse")
-                 (string-append "import sys\nsys.path.append(\""
-                                out "\")\nfrom argparse")))
-              (install-file "couger" bin))
-            #t))
-         (add-after
-          'install 'wrap-program
-          (lambda* (#:key inputs outputs #:allow-other-keys)
-            ;; Make sure 'couger' runs with the correct PYTHONPATH.
-            (let* ((out (assoc-ref outputs "out"))
-                   (path (getenv "GUIX_PYTHONPATH")))
-              (wrap-program (string-append out "/bin/couger")
-                `("GUIX_PYTHONPATH" ":" prefix (,path))))
-            #t)))))
-    (inputs
-     `(("python" ,python-2)
-       ("python2-pillow" ,python2-pillow)
-       ("python2-numpy" ,python2-numpy)
-       ("python2-scipy" ,python2-scipy)
-       ("python2-matplotlib" ,python2-matplotlib)))
-    (propagated-inputs
-     `(("r-minimal" ,r-minimal)
-       ("libsvm" ,libsvm)
-       ("randomjungle" ,randomjungle)))
-    (native-inputs
-     `(("unzip" ,unzip)))
-    (home-page "http://couger.oit.duke.edu")
-    (synopsis "Identify co-factors in sets of genomic regions")
-    (description
-     "COUGER can be applied to any two sets of genomic regions bound by
-paralogous TFs (e.g., regions derived from ChIP-seq experiments) to identify
-putative co-factors that provide specificity to each TF.  The framework
-determines the genomic targets uniquely-bound by each TF, and identifies a
-small set of co-factors that best explain the in vivo binding differences
-between the two TFs.
-
-COUGER uses classification algorithms (support vector machines and random
-forests) with features that reflect the DNA binding specificities of putative
-co-factors.  The features are generated either from high-throughput TF-DNA
-binding data (from protein binding microarray experiments), or from large
-collections of DNA motifs.")
-    (license license:gpl3+)))
-
 (define-public clustal-omega
   (package
     (name "clustal-omega")
@@ -2470,7 +2688,7 @@ collections of DNA motifs.")
                 "1vm30mzncwdv881vrcwg11vzvrsmwy4wg80j5i0lcfk6dlld50w6"))))
     (build-system gnu-build-system)
     (inputs
-     `(("argtable" ,argtable)))
+     (list argtable))
     (home-page "http://www.clustal.org/omega/")
     (synopsis "Multiple sequence aligner for protein and DNA/RNA")
     (description
@@ -2483,23 +2701,25 @@ time.")
 (define-public crossmap
   (package
     (name "crossmap")
-    (version "0.3.8")
+    (version "0.6.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "CrossMap" version))
               (sha256
                (base32
-                "1sb2f2qbxya4fzw3yjl09vbrs8vfmw22zrygrvz004sf9gb1vkan"))))
+                "0hqminh5wn1p3x481jbyc7gmncp5xc196hpvki7k25vzbryhwcix"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Delete compiled Python files.
+                  (for-each delete-file (find-files "." "\\.pyc$"))
+                  (delete-file-recursively ".eggs")))))
     (build-system python-build-system)
     (inputs
-     `(("python-bx-python" ,python-bx-python)
-       ("python-numpy" ,python-numpy)
-       ("python-pybigwig" ,python-pybigwig)
-       ("python-pysam" ,python-pysam)
-       ("zlib" ,zlib)))
+     (list python-bx-python python-numpy python-pybigwig python-pysam
+           zlib))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-nose" ,python-nose)))
+     (list python-cython python-nose))
     (home-page "http://crossmap.sourceforge.net/")
     (synopsis "Convert genome coordinates between assemblies")
     (description
@@ -2511,19 +2731,17 @@ file formats including SAM/BAM, Wiggle/BigWig, BED, GFF/GTF, VCF.")
 (define-public python-dnaio
   (package
     (name "python-dnaio")
-    (version "0.3")
+    (version "0.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "dnaio" version))
        (sha256
         (base32
-         "0f16m7hdlm0fz1n7y5asy0v9ghyrq17ni1p9iybq22ddzyd49r27"))))
+         "14v5yyasq2bz34j38wi3xfcp06jj7l35ppibjcn95l2n73hz3zwi"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)
-       ("python-xopen" ,python-xopen)))
+     (list python-cython python-pytest python-xopen))
     (home-page "https://github.com/marcelm/dnaio/")
     (synopsis "Read FASTA and FASTQ files efficiently")
     (description
@@ -2543,7 +2761,7 @@ files.  The code was previously part of the cutadapt tool.")
                 "1xnl80nblysj6dylj4683wgrfa425rkx4dp5k65hvwdns9pw753x"))))
     (build-system python-build-system)
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://github.com/deeptools/deeptools_intervals")
     (synopsis "Create GTF-based interval trees with associated meta-data")
     (description
@@ -2567,18 +2785,17 @@ interval trees with associated meta-data.  It is primarily used by the
                 "0l09vyynz6s6w7fnyd94rpys4a6aja6kp4gli64pngdxdz3md1nl"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)))
+     (list python-mock python-nose))
     (propagated-inputs
-     `(("python-matplotlib" ,python-matplotlib)
-       ("python-numpy" ,python-numpy)
-       ("python-numpydoc" ,python-numpydoc)
-       ("python-py2bit" ,python-py2bit)
-       ("python-pybigwig" ,python-pybigwig)
-       ("python-pysam" ,python-pysam)
-       ("python-scipy" ,python-scipy)
-       ("python-deeptoolsintervals" ,python-deeptoolsintervals)
-       ("python-plotly" ,python-plotly-2.4.1)))
+     (list python-matplotlib
+           python-numpy
+           python-numpydoc
+           python-py2bit
+           python-pybigwig
+           python-pysam
+           python-scipy
+           python-deeptoolsintervals
+           python-plotly-2.4.1))
     (home-page "https://pypi.org/project/deepTools/")
     (synopsis "Useful tools for exploring deep sequencing data")
     (description "This package addresses the challenge of handling large amounts
@@ -2606,13 +2823,20 @@ annotations of the genome.")
                (base32
                 "1vqmsfkm6llxzmsz9wcfcvzx9a9f8iabvwik2rbyn7nc4wm25z89"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'always-cythonize
+           (lambda _
+             (delete-file "src/cutadapt/_align.c")
+             ;; If PKG-INFO exists, setup.py decides not to run Cython.
+             (substitute* "setup.py"
+               (("os.path.exists\\('PKG-INFO'\\):")
+                "os.path.exists('totally-does-not-exist'):")))))))
     (inputs
-     `(("python-dnaio" ,python-dnaio)
-       ("python-xopen" ,python-xopen)))
+     (list python-dnaio python-xopen))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-cython python-pytest python-setuptools-scm))
     (home-page "https://cutadapt.readthedocs.io/en/stable/")
     (synopsis "Remove adapter sequences from nucleotide sequencing reads")
     (description
@@ -2638,14 +2862,13 @@ other types of unwanted sequence from high-throughput sequencing reads.")
      `(#:test-target "test"
        #:tests? #f ; tests require access to the web
        #:make-flags
-       (list "CC=gcc"
-             (string-append "prefix=" (assoc-ref %outputs "out")))
+       ,#~(list "CC=gcc"
+                (string-append "prefix=" #$output))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure))))
     (inputs
-     `(("zlib" ,zlib)
-       ("curl" ,curl)))
+     (list zlib curl))
     (native-inputs
      `(("doxygen" ,doxygen)
        ;; Need for tests
@@ -2683,11 +2906,9 @@ files.")
                (("libs=\\[") "libs=[\"BigWig\", "))
              #t)))))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (inputs
-     `(("libbigwig" ,libbigwig)
-       ("zlib" ,zlib)
-       ("curl" ,curl)))
+     (list libbigwig zlib curl))
     (home-page "https://github.com/dpryan79/pyBigWig")
     (synopsis "Access bigWig files in Python using libBigWig")
     (description
@@ -2701,14 +2922,14 @@ accessing bigWig files.")
 (define-public python-schema-salad
   (package
     (name "python-schema-salad")
-    (version "7.1.20210316164414")
+    (version "8.2.20211116214159")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "schema-salad" version))
         (sha256
          (base32
-          "04jaykdpgfnkrghvli5swxzqp7yba842am4bz42hcfljsmkrxvrk"))))
+          "005dh2y45x92zl8sf2sqjmfvcqr4hrz8dfckgkckv87003v7lwqc"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -2720,20 +2941,18 @@ accessing bigWig files.")
                (("^def test_(secondaryFiles|outputBinding)" all)
                 (string-append "@pytest.mark.skip(reason="
                                "\"test requires network access\")\n"
-                               all)))
-             #t)))))
+                               all))))))))
     (propagated-inputs
-     `(("python-cachecontrol" ,python-cachecontrol-0.11)
-       ("python-lockfile" ,python-lockfile)
-       ("python-mistune" ,python-mistune)
-       ("python-rdflib" ,python-rdflib)
-       ("python-rdflib-jsonld" ,python-rdflib-jsonld)
-       ("python-requests" ,python-requests)
-       ("python-ruamel.yaml" ,python-ruamel.yaml)
-       ("python-typing-extensions" ,python-typing-extensions)))
-    (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-cachecontrol
+           python-lockfile
+           python-mistune
+           python-rdflib
+           python-rdflib-jsonld
+           python-requests
+           python-ruamel.yaml
+           python-typing-extensions))
+    (native-inputs
+     (list python-black python-pytest python-pytest-runner))
     (home-page "https://github.com/common-workflow-language/schema_salad")
     (synopsis "Schema Annotations for Linked Avro Data (SALAD)")
     (description
@@ -2749,7 +2968,7 @@ and record oriented data modeling and the Semantic Web.")
 (define-public cwltool
   (package
     (name "cwltool")
-    (version "3.0.20210319143721")
+    (version "3.1.20211107152837")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2758,7 +2977,7 @@ and record oriented data modeling and the Semantic Web.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1sgs9ckyxb9f9169mc3wm9lnjg4080ai42xqsrwpw9l8apy4c9m5"))))
+                "0i3x9wdgpzgyc1askxymlhn0ps2x9xhqaax496iwpx66ab6132c4"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -2766,17 +2985,13 @@ and record oriented data modeling and the Semantic Web.")
          (add-after 'unpack 'loosen-version-restrictions
            (lambda _
              (substitute* "setup.py"
-               (("== 1.5.1") ">=1.5.1")   ; prov
-               ((", < 3.5") "")           ; shellescape
-               ((" >= 6.0.2, < 6.2") "")) ; pytest
-             #t))
+               (("== 1.5.1") ">=1.5.1")))) ; prov
          (add-after 'unpack 'dont-use-git
            (lambda _
              (substitute* "gittaggers.py"
                (("self.git_timestamp_tag\\(\\)")
                 (string-append "time.strftime('.%Y%m%d%H%M%S', time.gmtime(int("
-                               (string-drop ,version 4) ")))")))
-             #t))
+                               (string-drop ,version 4) ")))")))))
          (add-after 'unpack 'modify-tests
            (lambda _
              ;; Tries to connect to the internet.
@@ -2796,32 +3011,43 @@ and record oriented data modeling and the Semantic Web.")
                (("def test_v1_0_arg_empty_prefix_separate_false")
                 (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
                                "def test_v1_0_arg_empty_prefix_separate_false")))
-             #t)))))
+
+             (substitute* '("cwltool/schemas/v1.1/tests/env-tool1.cwl"
+                            "cwltool/schemas/v1.1/tests/env-tool2.cwl"
+                            "cwltool/schemas/v1.1/tests/imported-hint.cwl"
+                            "tests/subgraph/env-tool2.cwl"
+                            "tests/subgraph/env-tool2_req.cwl"
+                            "tests/subgraph/env-wf2_subwf-packed.cwl"
+                            "tests/subgraph/env-tool2_no_env.cwl")
+               (("\"/bin/sh\"") (string-append "\"" (which "sh") "\"")))
+             ;; Pytest doesn't know what to do with "-n auto"
+             (substitute* "tox.ini"
+               (("-n auto") "")))))))
     (propagated-inputs
-     `(("python-argcomplete" ,python-argcomplete)
-       ("python-bagit" ,python-bagit)
-       ("python-coloredlogs" ,python-coloredlogs)
-       ("python-mypy-extensions" ,python-mypy-extensions)
-       ("python-prov" ,python-prov)
-       ("python-pydot" ,python-pydot)
-       ("python-psutil" ,python-psutil)
-       ("python-rdflib" ,python-rdflib)
-       ("python-requests" ,python-requests)
-       ("python-ruamel.yaml" ,python-ruamel.yaml)
-       ("python-schema-salad" ,python-schema-salad)
-       ("python-shellescape" ,python-shellescape)
-       ("python-typing-extensions" ,python-typing-extensions)
-       ;; Not listed as needed but still necessary:
-       ("node" ,node)))
-    (native-inputs
-     `(("python-arcp" ,python-arcp)
-       ("python-humanfriendly" ,python-humanfriendly)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-rdflib-jsonld" ,python-rdflib-jsonld)))
+     (list python-argcomplete
+           python-bagit
+           python-coloredlogs
+           python-mypy-extensions
+           python-prov
+           python-pydot
+           python-psutil
+           python-rdflib
+           python-requests
+           python-ruamel.yaml
+           python-schema-salad
+           python-shellescape
+           python-typing-extensions
+           ;; Not listed as needed but still necessary:
+           node))
+    (native-inputs
+     (list python-arcp
+           python-humanfriendly
+           python-mock
+           python-pytest
+           python-pytest-cov
+           python-pytest-mock
+           python-pytest-runner
+           python-rdflib-jsonld))
     (home-page
      "https://github.com/common-workflow-language/common-workflow-language")
     (synopsis "Common Workflow Language reference implementation")
@@ -2841,7 +3067,7 @@ CWL descriptions.")
 (define-public python-dendropy
   (package
     (name "python-dendropy")
-    (version "4.4.0")
+    (version "4.5.1")
     (source
      (origin
        (method git-fetch)
@@ -2852,8 +3078,27 @@ CWL descriptions.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "097hfyv2kaf4x92i4rjx0paw2cncxap48qivv8zxng4z7nhid0x9"))))
+         "0lrfzjqzbpk1rrra9vd7z2j7q09jy9w1ss7wn2rd85i4k5y3xz8l"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-broken-tests
+           (lambda _
+             ;; These tests fail because we have no "paup" executable.
+             (substitute* "tests/test_datamodel_split_bitmasks.py"
+               (((format #false "(~{~a~^|~})"
+                         '("test_group1"
+                           "test_basic_split_counting_under_different_rootings"
+                           "test_basic_split_count_with_incorrect_weight_treatment_raises_error"
+                           "test_basic_split_count_with_incorrect_rootings_raises_error")) m)
+                (string-append "_skip_" m)))
+             (delete-file "tests/test_paup.py")
+             (delete-file "tests/test_dataio_nexml_reader_tree_list.py")
+             ;; Assert error for unknown reasons
+             (substitute* "tests/test_protractedspeciation.py"
+               (("test_by_num_lineages" m)
+                (string-append "_skip_" m))))))))
     (home-page "https://dendropy.org/")
     (synopsis "Library for phylogenetics and phylogenetic computing")
     (description
@@ -2918,8 +3163,8 @@ with Python.")
     (arguments
      `(#:tests? #f ; There are no tests to run.
        #:make-flags
-       (list "PARALLEL=1"  ; Allow parallel execution at run-time.
-             (string-append "prefix=" (assoc-ref %outputs "out")))
+       ,#~(list "PARALLEL=1"           ; Allow parallel execution at run-time.
+                (string-append "prefix=" #$output))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure) ; There is no configure phase.
@@ -2931,10 +3176,7 @@ with Python.")
                (copy-recursively "excludeTemplates" templates)
                #t))))))
     (inputs
-     `(("boost" ,boost)
-       ("bzip2" ,bzip2)
-       ("htslib" ,htslib)
-       ("zlib" ,zlib)))
+     (list boost bzip2 htslib zlib))
     (home-page "https://github.com/dellytools/delly")
     (synopsis "Integrated structural variant prediction method")
     (description "Delly is an integrated structural variant prediction method
@@ -2971,14 +3213,14 @@ bases are detected.")
 (define-public repeat-masker
   (package
     (name "repeat-masker")
-    (version "4.1.1")
+    (version "4.1.2-p1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://www.repeatmasker.org/"
                                   "RepeatMasker/RepeatMasker-"
                                   version ".tar.gz"))
               (sha256
-               (base32 "03144sl9kh5ni2i33phi7x2pjndzbm5bjw3r4kqvmm6hxyb4k4x2"))))
+               (base32 "15hfdfpzmdjcx7ng7rjfid69bmvgn3z9g9r43qhjnhjhq3v4prab"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #false ; there are none
@@ -3007,12 +3249,12 @@ bases are detected.")
                (wrap-program (string-append bin "/RepeatMasker")
                  `("PERL5LIB" ":" prefix (,path ,share)))))))))
     (inputs
-     `(("perl" ,perl)
-       ("perl-text-soundex" ,perl-text-soundex)
-       ("python" ,python)
-       ("python-h5py" ,python-h5py)
-       ("hmmer" ,hmmer)
-       ("trf" ,trf)))
+     (list perl
+           perl-text-soundex
+           python
+           python-h5py
+           hmmer
+           trf))
     (home-page "https://github.com/Benson-Genomics-Lab/TRF")
     (synopsis "Tandem Repeats Finder: a program to analyze DNA sequences")
     (description "A tandem repeat in DNA is two or more adjacent, approximate
@@ -3047,7 +3289,7 @@ bases are detected.")
              (substitute* "CMakeLists.txt" (("-march=native") ""))
              #t)))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://github.com/bbuchfink/diamond")
     (synopsis "Accelerated BLAST compatible local sequence aligner")
     (description
@@ -3092,8 +3334,7 @@ data and settings.")
                (("≤") "<="))
              ;; This seems to be a syntax error.
              (substitute* "doc/discrover-manual.tex"
-               (("theverbbox\\[t\\]") "theverbbox"))
-             #t))
+               (("theverbbox\\[t\\]") "theverbbox"))))
          (add-after 'unpack 'add-missing-includes
            (lambda _
              (substitute* "src/executioninformation.hpp"
@@ -3101,24 +3342,21 @@ data and settings.")
                 (string-append line "\n#include <random>")))
              (substitute* "src/plasma/fasta.hpp"
                (("#define FASTA_HPP" line)
-                (string-append line "\n#include <random>")))
-             #t)))))
+                (string-append line "\n#include <random>"))))))))
     (inputs
-     `(("boost" ,boost)
-       ("cairo" ,cairo)
-       ("rmath-standalone" ,rmath-standalone)))
+     (list boost cairo rmath-standalone))
     (native-inputs
      `(("texlive" ,(texlive-updmap.cfg (list texlive-cm
-                                        texlive-amsfonts
-
-                                        texlive-doi
-                                        texlive-latex-examplep
-                                        texlive-hyperref
-                                        texlive-latex-ms
-                                        texlive-latex-natbib
-                                        texlive-bibtex         ; style files used by natbib
-                                        texlive-latex-pgf      ; tikz
-                                        texlive-latex-verbatimbox)))
+                                             texlive-amsfonts
+                                             texlive-doi
+                                             texlive-fonts-ec
+                                             texlive-latex-examplep
+                                             texlive-hyperref
+                                             texlive-latex-ms
+                                             texlive-latex-natbib
+                                             texlive-bibtex ; style files used by natbib
+                                             texlive-latex-pgf ; tikz
+                                             texlive-latex-verbatimbox)))
        ("imagemagick" ,imagemagick)))
     (home-page "https://dorina.mdc-berlin.de/public/rajewsky/discrover/")
     (synopsis "Discover discriminative nucleotide sequence motifs")
@@ -3167,11 +3405,8 @@ of nucleic acid binding proteins.")
                          (find-files "../bin" ".*"))
                #t))))))
     (inputs
-     `(("gsl" ,gsl)
-       ("lapack" ,lapack)
-       ("openblas" ,openblas)
-       ("perl" ,perl)
-       ("gfortran" ,gfortran "lib")))
+     (list gsl lapack openblas perl
+           `(,gfortran "lib")))
     (home-page "https://github.com/DReichLab/EIG")
     (synopsis "Tools for population genetics")
     (description "The EIGENSOFT package provides tools for population
@@ -3261,23 +3496,23 @@ quantitative phenotypes.")
                      "-filter" "-help")
              #t)))))
     (inputs
-     `(("edirect-go-programs" ,edirect-go-programs)
-       ("perl-html-parser" ,perl-html-parser)
-       ("perl-encode-locale" ,perl-encode-locale)
-       ("perl-file-listing" ,perl-file-listing)
-       ("perl-html-tagset" ,perl-html-tagset)
-       ("perl-html-tree" ,perl-html-tree)
-       ("perl-http-cookies" ,perl-http-cookies)
-       ("perl-http-date" ,perl-http-date)
-       ("perl-http-message" ,perl-http-message)
-       ("perl-http-negotiate" ,perl-http-negotiate)
-       ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
-       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
-       ("perl-net-http" ,perl-net-http)
-       ("perl-uri" ,perl-uri)
-       ("perl-www-robotrules" ,perl-www-robotrules)
-       ("perl-xml-simple" ,perl-xml-simple)
-       ("perl" ,perl)))
+     (list edirect-go-programs
+           perl-html-parser
+           perl-encode-locale
+           perl-file-listing
+           perl-html-tagset
+           perl-html-tree
+           perl-http-cookies
+           perl-http-date
+           perl-http-message
+           perl-http-negotiate
+           perl-lwp-mediatypes
+           perl-lwp-protocol-https
+           perl-net-http
+           perl-uri
+           perl-www-robotrules
+           perl-xml-simple
+           perl))
     (home-page "https://www.ncbi.nlm.nih.gov/books/NBK179288/")
     (synopsis "Tools for accessing the NCBI's set of databases")
     (description
@@ -3334,16 +3569,16 @@ software to answer ad hoc questions.")
     (native-inputs '())
     (propagated-inputs '())
     (inputs
-     `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
-       ("go-github-com-fogleman-gg" ,go-github-com-fogleman-gg)
-       ("go-github-com-gedex-inflector" ,go-github-com-gedex-inflector)
-       ("go-github-com-golang-freetype" ,go-github-com-golang-freetype)
-       ("go-github-com-klauspost-cpuid" ,go-github-com-klauspost-cpuid)
-       ("go-github-com-pbnjay-memory" ,go-github-com-pbnjay-memory)
-       ("go-github-com-surgebase-porter2" ,go-github-com-surgebase-porter2)
-       ("go-golang-org-rainycape-unidecode" ,go-golang-org-rainycape-unidecode)
-       ("go-golang-org-x-image" ,go-golang-org-x-image)
-       ("go-golang-org-x-text" ,go-golang-org-x-text)))))
+     (list go-github-com-fatih-color
+           go-github-com-fogleman-gg
+           go-github-com-gedex-inflector
+           go-github-com-golang-freetype
+           go-github-com-klauspost-cpuid
+           go-github-com-pbnjay-memory
+           go-github-com-surgebase-porter2
+           go-golang-org-rainycape-unidecode
+           go-golang-org-x-image
+           go-golang-org-x-text))))
 
 (define-public exonerate
   (package
@@ -3363,9 +3598,9 @@ software to answer ad hoc questions.")
     (arguments
      `(#:parallel-build? #f)) ; Building in parallel fails on some machines.
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (home-page
      "https://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate")
     (synopsis "Generic tool for biological sequence alignment")
@@ -3412,10 +3647,7 @@ dynamic programming or a variety of heuristics.")
                (("check_version\\(PACKAGE_VERSION\\);") ""))
              #t)))))
     (inputs
-     `(("boost" ,boost)
-       ("bamtools" ,bamtools)
-       ("protobuf" ,protobuf)
-       ("zlib" ,zlib)))
+     (list boost bamtools protobuf zlib))
     (home-page "http://bio.math.berkeley.edu/eXpress")
     (synopsis "Streaming quantification for high-throughput genomic sequencing")
     (description
@@ -3535,10 +3767,10 @@ reasonable amount of time and memory.  For large alignments, FastTree is
                 "01jqzw386873sr0pjp1wr4rn8fsga2vxs1qfmicvx1pjr72007wy"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libgtextutils" ,libgtextutils)))
+     (list libgtextutils))
     (native-inputs
-     `(("gcc" ,gcc-6) ;; doesn't build with later versions
-       ("pkg-config" ,pkg-config)))
+     (list gcc-6 ;; doesn't build with later versions
+           pkg-config))
     (home-page "http://hannonlab.cshl.edu/fastx_toolkit/")
     (synopsis "Tools for FASTA/FASTQ file preprocessing")
     (description
@@ -3573,26 +3805,21 @@ results.  The FASTX-Toolkit tools perform some of these preprocessing tasks.")
          (add-after 'unpack 'do-not-tune-to-CPU
            (lambda _
              (substitute* "src/CMakeLists.txt"
-               ((" -march=native") ""))
-             #t))
+               ((" -march=native") ""))))
          (replace 'check
            (lambda* (#:key outputs #:allow-other-keys)
              (setenv "PATH" (string-append (getcwd) ":" (getenv "PATH")))
              (with-directory-excursion "../source/test"
-               (invoke "bash" "flexbar_test.sh"))
-             #t))
+               (invoke "bash" "flexbar_test.sh"))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (string-append (assoc-ref outputs "out")))
                     (bin (string-append out "/bin/")))
-               (install-file "flexbar" bin))
-             #t)))))
+               (install-file "flexbar" bin)))))))
     (inputs
-     `(("tbb" ,tbb)
-       ("zlib" ,zlib)))
+     (list tbb-2020 zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("seqan" ,seqan-2)))
+     (list pkg-config seqan-2))
     (home-page "https://github.com/seqan/flexbar")
     (synopsis "Barcode and adapter removal tool for sequencing platforms")
     (description
@@ -3711,9 +3938,9 @@ genes in incomplete assemblies or complete genomes.")
            "0hab3gpwf4w9s87qlbswq6ws1qqybh4dcqk79q1ahyldzai5fgp5"))))
       (build-system gnu-build-system)
       (arguments
-       `(#:make-flags (list
-                       (string-append "PREFIX=" (assoc-ref %outputs "out"))
-                       "CC=gcc")
+       `(#:make-flags ,#~(list
+                          (string-append "PREFIX=" #$output)
+                          "CC=gcc")
          #:test-target "fxtract_test"
          #:phases
          (modify-phases %standard-phases
@@ -3731,8 +3958,7 @@ genes in incomplete assemblies or complete genomes.")
                  (install-file "fxtract" bin)
                  #t))))))
       (inputs
-       `(("pcre" ,pcre)
-         ("zlib" ,zlib)))
+       (list pcre zlib))
       (native-inputs
        ;; ctskennerton-util is licensed under GPL2.
        `(("ctskennerton-util"
@@ -3779,9 +4005,7 @@ comment or quality sections.")
                   #t))))
     (build-system gnu-build-system)
     (inputs
-     `(("gsl" ,gsl)
-       ("openblas" ,openblas)
-       ("zlib" ,zlib)))
+     (list gsl openblas zlib))
     (native-inputs
      `(("catch" ,catch-framework2-1)
        ("perl" ,perl)
@@ -3845,12 +4069,9 @@ genome-wide association studies}.")
                (("Cython.Setup") "Cython.Build"))
              #t)))))
     (inputs
-     `(("python-scipy" ,python2-scipy)
-       ("python-numpy" ,python2-numpy)
-       ("python-pysam" ,python2-pysam)
-       ("python-networkx" ,python2-networkx)))
+     (list python2-scipy python2-numpy python2-pysam python2-networkx))
     (native-inputs
-     `(("python-cython" ,python2-cython)))
+     (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")
@@ -3866,7 +4087,7 @@ estimates transcript expression.")
 (define-public hisat
   (package
     (name "hisat")
-    (version "0.1.4")
+    (version "0.1.6")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3874,7 +4095,7 @@ estimates transcript expression.")
                     version "-beta-source.zip"))
               (sha256
                (base32
-                "1k381ydranqxp09yf2y7w1d0chz5d59vb6jchi89hbb0prq19lk5"))))
+                "177z85vqp9b30vgxl5py5hz4mm37ila37nzhfam23ci9iyfxgyv9"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ;no check target
@@ -3899,7 +4120,10 @@ estimates transcript expression.")
                (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\""))
              (substitute* '("hisat-build" "hisat-inspect")
                (("/usr/bin/env") (which "env")))
-             #t))
+             ;; This "extended character" is not considered valid.
+             (substitute* "processor_support.h"
+               (("“") "\"")
+               (("”") "\""))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
@@ -3907,15 +4131,12 @@ estimates transcript expression.")
                            (install-file file bin))
                          (find-files
                           "."
-                          "hisat(-(build|align|inspect)(-(s|l)(-debug)*)*)*$")))
-             #t))
+                          "hisat(-(build|align|inspect)(-(s|l)(-debug)*)*)*$")))))
          (delete 'configure))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (inputs
-     `(("perl" ,perl)
-       ("python" ,python)
-       ("zlib" ,zlib)))
+     (list perl python zlib))
     ;; Non-portable SSE instructions are used so building fails on platforms
     ;; other than x86_64.
     (supported-systems '("x86_64-linux"))
@@ -3974,8 +4195,7 @@ particular, reads spanning multiple exons.")
                (mkdir-p doc)
                (install-file "doc/manual.inc.html" doc)))))))
     (native-inputs
-     `(("perl" ,perl)
-       ("pandoc" ,pandoc)))             ; for documentation
+     (list perl pandoc))             ; for documentation
     (inputs
      `(("python" ,python-wrapper)))
     (home-page "https://daehwankimlab.github.io/hisat2/")
@@ -4006,8 +4226,7 @@ indexing scheme is called a @dfn{Hierarchical Graph FM index} (HGFM).")
         (base32
          "0s9wf6n0qanbx8qs6igfl3vyjikwbrvh4d9d6mv54yp3xysykzlj"))))
     (build-system gnu-build-system)
-    (native-inputs `(("perl" ,perl)
-                     ("python" ,python))) ; for tests
+    (native-inputs (list perl python)) ; for tests
     (home-page "http://hmmer.org/")
     (synopsis "Biosequence analysis using profile hidden Markov models")
     (description
@@ -4023,22 +4242,21 @@ HMMs).")
 (define-public htseq
   (package
     (name "htseq")
-    (version "0.9.1")
+    (version "0.12.3")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "HTSeq" version))
               (sha256
                (base32
-                "11flgb1381xdhk43bzbfm3vhnszkpqg6jk76rpa5xd1zbrvvlnxg"))))
+                "0pk41vkzxsbb5nv644325mh8akmz4zdply9r2s80dgg5b21pgp0b"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     ;; Numpy needs to be propagated when htseq is used as a Python library.
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (inputs
-     `(("python-pysam" ,python-pysam)
-       ("python-matplotlib" ,python-matplotlib)))
+     (list python-pysam python-matplotlib))
     (home-page "https://htseq.readthedocs.io/")
     (synopsis "Analysing high-throughput sequencing data with Python")
     (description
@@ -4074,8 +4292,7 @@ from high-throughput sequencing assays.")
      `(#:tests? #f ; test require Internet access
        #:jdk ,icedtea-8
        #:make-flags
-       (list (string-append "-Ddist=" (assoc-ref %outputs "out")
-                            "/share/java/htsjdk/"))
+       ,#~(list (string-append "-Ddist=" #$output "/share/java/htsjdk/"))
        #:build-target "all"
        #:phases
        (modify-phases %standard-phases
@@ -4089,7 +4306,7 @@ from high-throughput sequencing assays.")
        ("java-commons-jexl-2" ,java-commons-jexl-2)
        ("java-xz" ,java-xz)))
     (native-inputs
-     `(("java-testng" ,java-testng)))
+     (list java-testng))
     (home-page "http://samtools.github.io/htsjdk/")
     (synopsis "Java API for high-throughput sequencing data (HTS) formats")
     (description
@@ -4132,7 +4349,7 @@ manipulating HTS data.")
        ("java-commons-jexl-2" ,java-commons-jexl-2)
        ("java-xz" ,java-xz)))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "http://samtools.github.io/htsjdk/")
     (synopsis "Java API for high-throughput sequencing data (HTS) formats")
     (description
@@ -4210,12 +4427,12 @@ manipulating HTS data.")
        ;; Tests require jacoco:coverage.
        #:tests? #f
        #:make-flags
-       (list (string-append "-Dhtsjdk_lib_dir="
-                            (assoc-ref %build-inputs "java-htsjdk")
-                            "/share/java/htsjdk/")
-             "-Dhtsjdk-classes=dist/tmp"
-             (string-append "-Dhtsjdk-version="
-                            ,(package-version java-htsjdk)))
+       ,#~(list (string-append "-Dhtsjdk_lib_dir="
+                               #$(this-package-input "java-htsjdk")
+                               "/share/java/htsjdk/")
+                "-Dhtsjdk-classes=dist/tmp"
+                (string-append "-Dhtsjdk-version="
+                               #$(package-version java-htsjdk)))
        #:jdk ,icedtea-8
        #:phases
        (modify-phases %standard-phases
@@ -4235,10 +4452,9 @@ manipulating HTS data.")
              #t))
          (replace 'install (install-jars "dist")))))
     (inputs
-     `(("java-htsjdk" ,java-htsjdk)
-       ("java-guava" ,java-guava)))
+     (list java-htsjdk java-guava))
     (native-inputs
-     `(("java-testng" ,java-testng)))
+     (list java-testng))
     (home-page "http://broadinstitute.github.io/picard/")
     (synopsis "Tools for manipulating high-throughput sequencing data and formats")
     (description "Picard is a set of Java command line tools for manipulating
@@ -4325,10 +4541,9 @@ Class-Path: /~a \
              (rename-file "build.xml.new" "build.xml")
              #t)))))
     (propagated-inputs
-     `(("java-htsjdk" ,java-htsjdk-2.10.1)))
+     (list java-htsjdk-2.10.1))
     (native-inputs
-     `(("java-testng" ,java-testng)
-       ("java-guava" ,java-guava)))
+     (list java-testng java-guava))
     (home-page "http://broadinstitute.github.io/picard/")
     (synopsis "Tools for manipulating high-throughput sequencing data and formats")
     (description "Picard is a set of Java command line tools for manipulating
@@ -4509,7 +4724,7 @@ VCF.")
        ("java-picard-1.113" ,java-picard-1.113)
        ("java-jbzip2" ,java-jbzip2)))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://www.bioinformatics.babraham.ac.uk/projects/fastqc/")
     (synopsis "Quality control tool for high throughput sequence data")
     (description
@@ -4550,7 +4765,7 @@ The main functions of FastQC are:
     (arguments
      `(#:tests? #f ; there are none
        #:make-flags
-       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       ,#~(list (string-append "PREFIX=" #$output))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
@@ -4558,7 +4773,7 @@ The main functions of FastQC are:
            (lambda* (#:key outputs #:allow-other-keys)
              (mkdir-p (string-append (assoc-ref outputs "out") "/bin")))))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://github.com/OpenGene/fastp/")
     (synopsis "All-in-one FastQ preprocessor")
     (description
@@ -4588,13 +4803,12 @@ performance.")
                            "--enable-libcurl"
                            "--enable-s3")))
     (inputs
-     `(("curl" ,curl)
-       ("openssl" ,openssl)))
+     (list curl openssl))
     ;; This is referred to in the pkg-config file as a required library.
     (propagated-inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "https://www.htslib.org")
     (synopsis "C library for reading/writing high-throughput sequencing data")
     (description
@@ -4645,6 +4859,30 @@ data.  It also provides the @command{bgzip}, @command{htsfile}, and
                (base32
                 "1rja282fwdc25ql6izkhdyh8ppw8x2fs0w0js78zgkmqjlikmma9"))))))
 
+(define htslib-for-samtools-1.2
+  (package
+    (inherit htslib)
+    (version "1.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/samtools/htslib/releases/download/"
+                    version "/htslib-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1c32ssscbnjwfw3dra140fq7riarp2x990qxybh34nr1p5r17nxx"))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-tests
+           (lambda _
+             (substitute* "test/test.pl"
+               (("/bin/bash") (which "bash"))))))))
+    (inputs
+     `(("zlib" ,zlib)))
+    (native-inputs
+     `(("perl" ,perl)))))
+
 (define-public idr
   (package
     (name "idr")
@@ -4667,12 +4905,9 @@ data.  It also provides the @command{bgzip}, @command{htsfile}, and
     ;; causes the tests to always fail.
     (arguments `(#:tests? #f))
     (propagated-inputs
-     `(("python-scipy" ,python-scipy)
-       ("python-sympy" ,python-sympy)
-       ("python-numpy" ,python-numpy)
-       ("python-matplotlib" ,python-matplotlib)))
+     (list python-scipy python-sympy python-numpy python-matplotlib))
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (home-page "https://github.com/nboley/idr")
     (synopsis "Tool to measure the irreproducible discovery rate (IDR)")
     (description
@@ -4695,15 +4930,11 @@ experiments and provide highly stable thresholds based on reproducibility.")
                 "0npa62wzasdibas5zp3n8j3armsci4kyvh0jw7jr0am4gg7vg5g1"))))
     (build-system gnu-build-system)
     (outputs '("out"      ;for library
-               "ruby"     ;for Ruby bindings
                "python")) ;for Python bindings
     (arguments
      `(#:configure-flags
-       (list "--without-sse" ; configure script probes for CPU features when SSE is enabled.
-             (string-append "--enable-ruby-binding="
-                            (assoc-ref %outputs "ruby"))
-             (string-append "--enable-python-binding="
-                            (assoc-ref %outputs "python")))
+       ,#~(list "--without-sse" ; configure script probes for CPU features when SSE is enabled.
+                (string-append "--enable-python-binding=" #$output:python))
        #:phases
        (modify-phases %standard-phases
          (add-before 'check 'set-SHELL-variable
@@ -4714,11 +4945,10 @@ experiments and provide highly stable thresholds based on reproducibility.")
     (native-inputs
      `(("bc" ,bc)
        ("time" ,time)
-       ("ruby" ,ruby)
        ("python" ,python-wrapper)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("htslib" ,htslib)))
+     (list htslib))
     (synopsis "Tool for fast counting of k-mers in DNA")
     (description
      "Jellyfish is a tool for fast, memory-efficient counting of k-mers in
@@ -4766,32 +4996,42 @@ command, or queried for specific k-mers with @code{jellyfish query}.")
               "libraries = z,bz2")
              (("include:third-party/zlib:third-party/bzip2")
               "include:"))
-           #t))))
+           ;; Delete generated Cython CPP files.
+           (for-each delete-file (find-files "khmer/_oxli/" "\\.cpp$"))))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'set-cc
-           (lambda _ (setenv "CC" "gcc") #t))
-
-         (add-before 'reset-gzip-timestamps 'make-files-writable
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; Make sure .gz files are writable so that the
-             ;; 'reset-gzip-timestamps' phase can do its work.
-             (let ((out (assoc-ref outputs "out")))
-               (for-each make-file-writable
-                         (find-files out "\\.gz$"))
-               #t))))))
+           (lambda _ (setenv "CC" "gcc")))
+         (add-after 'unpack 'python-3.8-compatibility
+           (lambda _
+             ;; Python 3.8 removed time.clock().
+             (substitute* "sandbox/sweep-reads.py"
+               (("time\\.clock")
+                "time.process_time"))))
+         (add-after 'unpack 'do-use-cython
+           (lambda _
+             (substitute* "setup.py"
+               (("from setuptools import Extension as CyExtension")
+                "from Cython.Distutils import Extension as CyExtension")
+               (("from setuptools.command.build_ext import build_ext as _build_ext")
+                "from Cython.Distutils import build_ext as _build_ext")
+               (("HAS_CYTHON = False") "HAS_CYTHON = True")
+               (("cy_ext = 'cpp'") "cy_ext = 'pyx'"))))
+         (add-before 'build 'build-extensions
+           (lambda _
+             ;; Cython extensions have to be built before running the tests.
+             (invoke "python" "setup.py" "build_ext" "--inplace")))
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "-v")))))))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-cython python-pytest python-pytest-runner))
     (inputs
-     `(("zlib" ,zlib)
-       ("bzip2" ,bzip2)
-       ("seqan" ,seqan-1)
-       ("python-screed" ,python-screed)
-       ("python-bz2file" ,python-bz2file)))
+     (list zlib bzip2 seqan-1 python-screed python-bz2file))
     (home-page "https://khmer.readthedocs.org/")
     (synopsis "K-mer counting, filtering and graph traversal library")
     (description "The khmer software is a set of command-line tools for
@@ -4833,8 +5073,7 @@ data.")
                (copy-recursively "bin" bin))
              #t)))))
     (inputs
-     `(("perl" ,perl)
-       ("zlib" ,zlib)))
+     (list perl zlib))
     (home-page "http://kaiju.binf.ku.dk/")
     (synopsis "Fast and sensitive taxonomic classification for metagenomics")
     (description "Kaiju is a program for sensitive taxonomic classification
@@ -4871,16 +5110,17 @@ experiments.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         (add-before 'build 'set-HOME
+           (lambda _ (setenv "HOME" "/tmp")))
          (replace 'check
            (lambda* (#:key tests? inputs outputs #:allow-other-keys)
              (when tests?
                (add-installed-pythonpath inputs outputs)
                (invoke "pytest" "-v")))))))
     (inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)))
+     (list python-cython python-pytest))
     (home-page "https://github.com/macs3-project/MACS")
     (synopsis "Model based analysis for ChIP-Seq data")
     (description
@@ -4908,10 +5148,9 @@ sequencing tag position and orientation.")
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no automated tests, though there are tests in the read me
-       #:make-flags (let ((out (assoc-ref %outputs "out")))
-                      (list (string-append "PREFIX=" out)
-                            (string-append "BINDIR="
-                                           (string-append out "/bin"))))
+       #:make-flags ,#~(list (string-append "PREFIX=" #$output)
+                             (string-append "BINDIR="
+                                            (string-append #$output "/bin")))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'enter-dir
@@ -4951,22 +5190,17 @@ sequencing tag position and orientation.")
              #t))
          (delete 'configure)
          (add-after 'install 'wrap-programs
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin"))
                     (path (string-append
-                           (assoc-ref %build-inputs "coreutils") "/bin:")))
+                           (assoc-ref inputs "coreutils") "/bin:")))
                (for-each (lambda (file)
                            (wrap-program file
                              `("PATH" ":" prefix (,path))))
-                         (find-files bin)))
-             #t)))))
+                         (find-files bin))))))))
     (inputs
-     `(("perl" ,perl)
-       ("ruby" ,ruby)
-       ("gawk" ,gawk)
-       ("grep" ,grep)
-       ("coreutils" ,coreutils)))
+     (list perl ruby gawk grep coreutils))
     (home-page "https://mafft.cbrc.jp/alignment/software/")
     (synopsis "Multiple sequence alignment program")
     (description
@@ -4993,18 +5227,16 @@ sequences).")
                 "049hwcc059p2fd9vwndn63laifvvsi0wmv84i6y1fr79k15dxwy6"))
               (modules '((guix build utils)))
               (snippet
-               '(begin
-                  ;; Delete bundled kseq.
-                  ;; TODO: Also delete bundled murmurhash and open bloom filter.
-                  (delete-file "src/mash/kseq.h")
-                  #t))))
+               ;; Delete bundled kseq.
+               ;; TODO: Also delete bundled murmurhash and open bloom filter.
+               '(delete-file "src/mash/kseq.h"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; No tests.
        #:configure-flags
-       (list
-        (string-append "--with-capnp=" (assoc-ref %build-inputs "capnproto"))
-        (string-append "--with-gsl=" (assoc-ref %build-inputs "gsl")))
+       ,#~(list
+           (string-append "--with-capnp=" #$(this-package-input "capnproto"))
+           (string-append "--with-gsl=" #$(this-package-input "gsl")))
        #:make-flags (list "CC=gcc")
        #:phases
        (modify-phases %standard-phases
@@ -5025,14 +5257,14 @@ sequences).")
                (("c\\+\\+11") "c++14"))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ;; Capnproto and htslib are statically embedded in the final
-       ;; application. Therefore we also list their licenses, below.
-       ("capnproto" ,capnproto)
-       ("htslib" ,htslib)))
+     (list autoconf))
     (inputs
-     `(("gsl" ,gsl)
-       ("zlib" ,zlib)))
+     (list ;; Capnproto and htslib are statically embedded in the final
+           ;; application. Therefore we also list their licenses, below.
+           capnproto
+           htslib
+           gsl
+           zlib))
     (supported-systems '("x86_64-linux"))
     (home-page "https://mash.readthedocs.io")
     (synopsis "Fast genome and metagenome distance estimation using MinHash")
@@ -5047,7 +5279,7 @@ form of assemblies or reads.")
 (define-public metabat
   (package
     (name "metabat")
-    (version "2.12.1")
+    (version "2.15")
     (source
      (origin
        (method git-fetch)
@@ -5057,52 +5289,34 @@ form of assemblies or reads.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0hyg2smw1nz69mfvjpk45xyyychmda92c80a0cv7baji84ri4iyn"))
-       (patches (search-patches "metabat-fix-compilation.patch"))))
-    (build-system scons-build-system)
-    (arguments
-     `(#:scons ,scons-python2
-       #:scons-flags
-       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
-             (string-append "BOOST_ROOT=" (assoc-ref %build-inputs "boost")))
-       #:tests? #f ;; Tests are run during the build phase.
+         "0v3gsps0ypani14102z2y1a2wignhpf7s1h45mxmj5f783rkhqd9"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       ,#~(list (string-append "-Dzlib_LIB=" #$(this-package-input "zlib")
+                               "/lib/libz.so")
+                (string-append "-Dhtslib_LIB=" #$(this-package-input "htslib")
+                               "/lib/libhts.so")
+                (string-append "-DBOOST_ROOT=" #$(this-package-input "boost")))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-includes
+         (add-after 'unpack 'configure-version-file
            (lambda _
-             (substitute* "src/BamUtils.h"
-               (("^#include \"bam/bam\\.h\"")
-                "#include \"samtools/bam.h\"")
-               (("^#include \"bam/sam\\.h\"")
-                "#include \"samtools/sam.h\""))
-             (substitute* "src/KseqReader.h"
-               (("^#include \"bam/kseq\\.h\"")
-                "#include \"htslib/kseq.h\""))
-             #t))
-         (add-after 'unpack 'fix-scons
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "SConstruct"
-               (("^htslib_dir += 'samtools'")
-                (string-append "htslib_dir = '"
-                               (assoc-ref inputs "htslib")
-                               "'"))
-               (("^samtools_dir = 'samtools'")
-                (string-append "samtools_dir = '"
-                               (assoc-ref inputs "samtools")
-                               "'"))
-               (("^findStaticOrShared\\('bam', hts_lib")
-                (string-append "findStaticOrShared('bam', '"
-                               (assoc-ref inputs "samtools")
-                               "/lib'"))
-               ;; Do not distribute README.
-               (("^env\\.Install\\(idir_prefix, 'README\\.md'\\)") ""))
-             #t)))))
+             (copy-file "metabat_version.h.in" "metabat_version.h")
+             (substitute* "metabat_version.h"
+               (("@_time_stamp@") "19700101")
+               (("@GIT_IS_DIRTY@") "0")
+               (("@GIT_RETRIEVED_STATE@") "0")
+               (("@GIT_HEAD_SHA1@") (string-append "v" ,version)))))
+         (add-after 'unpack 'do-not-use-bundled-libraries
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("include\\(cmake.*") ""))
+             (substitute* "src/CMakeLists.txt"
+               (("set\\(Boost.*") "")
+               (("add_dependencies.*") "")))))))
     (inputs
-     `(("zlib" ,zlib)
-       ("perl" ,perl)
-       ("samtools" ,samtools)
-       ("htslib" ,htslib)
-       ("boost" ,boost)))
+     (list zlib perl samtools htslib boost))
     (home-page "https://bitbucket.org/berkeleylab/metabat")
     (synopsis
      "Reconstruction of single genomes from complex microbial communities")
@@ -5175,52 +5389,52 @@ assembled metagenomic sequence.")
     (license license:gpl3+)))
 
 (define-public miso
-  (package
-    (name "miso")
-    (version "0.5.4")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "misopy" version))
-              (sha256
-               (base32
-                "1z3x0vd8ma7pdrnywj7i3kgwl89sdkwrrn62zl7r5calqaq2hyip"))
-              (modules '((guix build utils)))
-              (snippet '(begin
-                          (substitute* "setup.py"
-                            ;; Use setuptools, or else the executables are not
-                            ;; installed.
-                            (("distutils.core") "setuptools")
-                            ;; Use "gcc" instead of "cc" for compilation.
-                            (("^defines")
-                             "cc.set_executables(
+  (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"))
-                          #t))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2               ; only Python 2 is supported
-       #:tests? #f))                    ; no "test" target
-    (inputs
-     `(("samtools" ,samtools)
-       ("python-numpy" ,python2-numpy)
-       ("python-pysam" ,python2-pysam)
-       ("python-scipy" ,python2-scipy)
-       ("python-matplotlib" ,python2-matplotlib)))
-    (native-inputs
-     `(("python-mock" ,python2-mock)    ; for tests
-       ("python-pytz" ,python2-pytz)))  ; for tests
-    (home-page "https://www.genes.mit.edu/burgelab/miso/index.html")
-    (synopsis "Mixture of Isoforms model for RNA-Seq isoform quantitation")
-    (description
-     "MISO (Mixture-of-Isoforms) is a probabilistic framework that quantitates
+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)))
+      (license license:gpl2))))
 
 (define-public muscle
   (package
@@ -5272,24 +5486,22 @@ program for nucleotide and protein sequences.")
                 (sha256
                  (base32
                   "1hkw21rq1mwf7xp0rmbb2gqc0i6p11108m69i7mr7xcjl268pxnb"))))
-    (build-system gnu-build-system)
-    (inputs
-     ;; XXX: TODO: Enable Lua and Guile bindings.
-     ;; https://github.com/tjunier/newick_utils/issues/13
-     `(("libxml2" ,libxml2)
-       ("flex" ,flex)
-       ("bison" ,bison)))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
-    (synopsis "Programs for working with newick format phylogenetic trees")
-    (description
-     "Newick-utils is a suite of utilities for processing phylogenetic trees
+      (build-system gnu-build-system)
+      (arguments
+       '(#:make-flags (list "CFLAGS=-O2 -g -fcommon")))
+      (inputs
+       ;; XXX: TODO: Enable Lua and Guile bindings.
+       ;; https://github.com/tjunier/newick_utils/issues/13
+       (list libxml2 flex bison))
+      (native-inputs
+       (list autoconf automake libtool))
+      (synopsis "Programs for working with newick format phylogenetic trees")
+      (description
+       "Newick-utils is a suite of utilities for processing phylogenetic trees
 in Newick format.  Functions include re-rooting, extracting subtrees,
 trimming, pruning, condensing, drawing (ASCII graphics or SVG).")
-    (home-page "https://github.com/tjunier/newick_utils")
-    (license license:bsd-3))))
+      (home-page "https://github.com/tjunier/newick_utils")
+      (license license:bsd-3))))
 
 (define-public orfm
   (package
@@ -5304,11 +5516,9 @@ trimming, pruning, condensing, drawing (ASCII graphics or SVG).")
                (base32
                 "16iigyr2gd8x0imzkk1dr3k5xsds9bpmwg31ayvjg0f4pir9rwqr"))))
     (build-system gnu-build-system)
-    (inputs `(("zlib" ,zlib)))
+    (inputs (list zlib))
     (native-inputs
-     `(("ruby-bio-commandeer" ,ruby-bio-commandeer)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby" ,ruby)))
+     (list ruby-bio-commandeer ruby-rspec ruby))
     (synopsis "Simple and not slow open reading frame (ORF) caller")
     (description
      "An ORF caller finds stretches of DNA that, when translated, are not
@@ -5339,13 +5549,9 @@ interrupted by stop codons.  OrfM finds and prints these ORFs.")
                         (("^sphinx") ""))
                       #t)))))
     (propagated-inputs
-     `(("python-cython" ,python2-cython)
-       ("python-numpy" ,python2-numpy)
-       ("python-pysam" ,python2-pysam)
-       ("python-h5py" ,python2-h5py)))
+     (list python2-cython python2-numpy python2-pysam python2-h5py))
     (native-inputs
-     `(("python-nose" ,python2-nose)
-       ("python-pyxb" ,python2-pyxb)))
+     (list python2-nose python2-pyxb))
     (home-page "https://pacificbiosciences.github.io/pbcore/")
     (synopsis "Library for reading and writing PacBio data files")
     (description
@@ -5377,17 +5583,15 @@ files and writing bioinformatics applications.")
                 "from scipy import linalg\nimport weave"))
              #t)))))
     (propagated-inputs
-     `(("python-scipy" ,python2-scipy)
-       ("python-numpy" ,python2-numpy)
-       ("python-matplotlib" ,python2-matplotlib)
-       ("python-fastlmm" ,python2-fastlmm)
-       ("python-pandas" ,python2-pandas)
-       ("python-pysnptools" ,python2-pysnptools)
-       ("python-weave" ,python2-weave)))
-    (native-inputs
-     `(("python-mock" ,python2-mock)
-       ("python-nose" ,python2-nose)
-       ("unzip" ,unzip)))
+     (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
@@ -5396,63 +5600,6 @@ which automatically learns an optimal warping function (or transformation) for
 the phenotype as it models the data.")
     (license license:asl2.0)))
 
-(define-public pbtranscript-tofu
-  (let ((commit "8f5467fe6a4472bcfb4226c8720993c8507adfe4"))
-    (package
-      (name "pbtranscript-tofu")
-      (version (string-append "2.2.3." (string-take commit 7)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/PacificBiosciences/cDNA_primer")
-                      (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
-                (sha256
-                 (base32
-                  "1lgnpi35ihay42qx0b6yl3kkgra723i413j33kvs0kvs61h82w0f"))
-                (modules '((guix build utils)))
-                (snippet
-                 '(begin
-                    ;; remove bundled Cython sources
-                    (delete-file "pbtranscript-tofu/pbtranscript/Cython-0.20.1.tar.gz")
-                    #t))))
-      (build-system python-build-system)
-      (arguments
-       `(#:python ,python-2
-         ;; FIXME: Tests fail with "No such file or directory:
-         ;; pbtools/pbtranscript/modified_bx_intervals/intersection_unique.so"
-         #:tests? #f
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'enter-directory
-            (lambda _
-              (chdir "pbtranscript-tofu/pbtranscript/")
-              #t))
-           ;; With setuptools version 18.0 and later this setup.py hack causes
-           ;; a build error, so we disable it.
-           (add-after 'enter-directory 'patch-setuppy
-            (lambda _
-              (substitute* "setup.py"
-                (("if 'setuptools.extension' in sys.modules:")
-                 "if False:"))
-              #t)))))
-      (inputs
-       `(("python-numpy" ,python2-numpy)
-         ("python-bx-python" ,python2-bx-python)
-         ("python-networkx" ,python2-networkx)
-         ("python-scipy" ,python2-scipy)
-         ("python-pbcore" ,python2-pbcore)
-         ("python-h5py" ,python2-h5py)))
-      (native-inputs
-       `(("python-cython" ,python2-cython)
-         ("python-nose" ,python2-nose)))
-      (home-page "https://github.com/PacificBiosciences/cDNA_primer")
-      (synopsis "Analyze transcriptome data generated with the Iso-Seq protocol")
-      (description
-       "pbtranscript-tofu contains scripts to analyze transcriptome data
-generated using the PacBio Iso-Seq protocol.")
-      (license license:bsd-3))))
-
 (define-public prank
   (package
     (name "prank")
@@ -5470,34 +5617,29 @@ generated using the PacBio Iso-Seq protocol.")
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'enter-src-dir
-            (lambda _
-              (chdir "src")
-              #t))
+           (lambda _ (chdir "src")))
          (add-after 'unpack 'remove-m64-flag
            ;; Prank will build with the correct 'bit-ness' without this flag
            ;; and this allows building on 32-bit machines.
-           (lambda _ (substitute* "src/Makefile"
-                                  (("-m64") ""))
-             #t))
+           (lambda _
+             (substitute* "src/Makefile"
+               (("-m64") ""))))
          (delete 'configure)
          (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin"))
                     (man (string-append out "/share/man/man1"))
                     (path (string-append
-                           (assoc-ref %build-inputs "mafft") "/bin:"
-                           (assoc-ref %build-inputs "exonerate") "/bin:"
-                           (assoc-ref %build-inputs "bppsuite") "/bin")))
+                           (assoc-ref inputs "mafft") "/bin:"
+                           (assoc-ref inputs "exonerate") "/bin:"
+                           (assoc-ref inputs "bppsuite") "/bin")))
                (install-file "prank" bin)
                (wrap-program (string-append bin "/prank")
                  `("PATH" ":" prefix (,path)))
-               (install-file "prank.1" man))
-             #t)))))
+               (install-file "prank.1" man)))))))
     (inputs
-     `(("mafft" ,mafft)
-       ("exonerate" ,exonerate)
-       ("bppsuite" ,bppsuite)))
+     (list mafft exonerate bppsuite))
     (home-page "http://wasabiapp.org/software/prank/")
     (synopsis "Probabilistic multiple sequence alignment program")
     (description
@@ -5569,7 +5711,7 @@ predicts the locations of structural units in the sequences.")
        ("lapack" ,lapack)
        ("openblas" ,openblas)))
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (home-page "http://www.bioinf.uni-leipzig.de/Software/proteinortho")
     (synopsis "Detect orthologous genes across species")
     (description
@@ -5598,7 +5740,7 @@ large-scale data and can be applied to hundreds of species at once.")
      `(#:python ,python-2 ; does not work with Python 3
        #:tests? #f))      ; there are no tests
     (inputs
-     `(("python2-matplotlib" ,python2-matplotlib)))
+     (list python2-matplotlib))
     (home-page "https://bitbucket.org/regulatorygenomicsupf/pyicoteo")
     (synopsis "Analyze high-throughput genetic sequencing data")
     (description
@@ -5636,9 +5778,8 @@ different command-line tools:
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
-       #:make-flags (list (string-append "INSTALLDIR="
-                                         (assoc-ref %outputs "out")
-                                         "/bin"))
+       #:make-flags
+       ,#~(list (string-append "INSTALLDIR=" #$output "/bin"))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure))))
@@ -5723,10 +5864,7 @@ partial genes, and identifies translation initiation sites.")
                      (,(string-append coreutils-path ":" out "/bin"))))))
              #t)))))
     (native-inputs
-     `(("perl-env-path" ,perl-env-path)
-       ("perl-test-files" ,perl-test-files)
-       ("perl-test-most" ,perl-test-most)
-       ("perl-test-output" ,perl-test-output)))
+     (list perl-env-path perl-test-files perl-test-most perl-test-output))
     (inputs
      `(("perl-array-utils" ,perl-array-utils)
        ("bioperl" ,bioperl-minimal)
@@ -5799,7 +5937,7 @@ extremely diverse sets of genomes.")
                (symlink (string-append bin "/" executable) "raxml"))
              #t)))))
     (inputs
-     `(("openmpi" ,openmpi)))
+     (list openmpi))
     (home-page "https://cme.h-its.org/exelixis/web/software/raxml/index.html")
     (synopsis "Randomized Axelerated Maximum Likelihood phylogenetic trees")
     (description
@@ -5812,7 +5950,7 @@ phylogenies.")
 (define-public rsem
   (package
     (name "rsem")
-    (version "1.3.1")
+    (version "1.3.3")
     (source
      (origin
        (method git-fetch)
@@ -5820,38 +5958,46 @@ phylogenies.")
              (url "https://github.com/deweylab/RSEM")
              (commit (string-append "v" version))))
        (sha256
-        (base32 "1jlq11d1p8qp64w75yj8cnbbd1a93viq10pzsbwal7vdn8fg13j1"))
+        (base32 "1yl4i7z20n2p84j1lmk15aiak3yqc6fiw0q5a4pndw7pxfiq3rzp"))
        (file-name (git-file-name name version))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; remove bundled copy of boost and samtools
            (delete-file-recursively "boost")
-           (delete-file-recursively "samtools-1.3")
-           #t))))
+           (delete-file-recursively "samtools-1.3")))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ;no "check" target
        #:make-flags
-       (list (string-append "BOOST="
-                            (assoc-ref %build-inputs "boost")
-                            "/include/")
-             (string-append "SAMHEADERS="
-                            (assoc-ref %build-inputs "htslib")
-                            "/include/htslib/sam.h")
-             (string-append "SAMLIBS="
-                            (assoc-ref %build-inputs "htslib")
-                            "/lib/libhts.so"))
+       ,#~(list (string-append "BOOST="
+                               #$(this-package-input "boost")
+                               "/include/")
+                (string-append "SAMHEADERS="
+                               #$(this-package-input "htslib")
+                               "/include/htslib/sam.h")
+                (string-append "SAMLIBS="
+                               #$(this-package-input "htslib")
+                               "/lib/libhts.so"))
        #:phases
        (modify-phases %standard-phases
          ;; No "configure" script.
-         ;; Do not build bundled samtools library.
          (replace 'configure
            (lambda _
              (substitute* "Makefile"
                (("^all : \\$\\(PROGRAMS\\).*") "all: $(PROGRAMS)\n")
-               (("^\\$\\(SAMLIBS\\).*") ""))
-             #t))
+               ;; Do not build bundled samtools library.
+               (("^\\$\\(SAMLIBS\\).*") "")
+               ;; Needed for Boost
+               (("gnu\\+\\+98") "gnu++11"))
+             ;; C++11 compatibility
+             (substitute* "buildReadIndex.cpp"
+               (("success = \\(getline")
+                "success = (bool)(getline"))
+             (substitute* '("PairedEndHit.h"
+                            "SingleHit.h")
+               (("return \\(in>>sid>>pos")
+                "return (bool)(in>>sid>>pos"))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (string-append (assoc-ref outputs "out")))
@@ -5862,8 +6008,7 @@ phylogenies.")
                (for-each (lambda (file)
                            (install-file file bin))
                          (find-files "." "rsem-.*"))
-               (install-file "rsem_perl_utils.pm" perl))
-             #t))
+               (install-file "rsem_perl_utils.pm" perl))))
          (add-after 'install 'wrap-program
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -5878,14 +6023,9 @@ phylogenies.")
                            "rsem-plot-transcript-wiggles"
                            "rsem-prepare-reference"
                            "rsem-run-ebseq"
-                           "rsem-run-prsem-testing-procedure")))
-             #t)))))
+                           "rsem-run-prsem-testing-procedure"))))))))
     (inputs
-     `(("boost" ,boost)
-       ("r-minimal" ,r-minimal)
-       ("perl" ,perl)
-       ("htslib" ,htslib-1.3)
-       ("zlib" ,zlib)))
+     (list boost r-minimal perl htslib-1.3 zlib))
     (home-page "http://deweylab.biostat.wisc.edu/rsem/")
     (synopsis "Estimate gene expression levels from RNA-Seq data")
     (description
@@ -5913,14 +6053,14 @@ BAM and Wiggle files in both transcript-coordinate and genomic-coordinate.")
          "0gbb9iyb7swiv5455fm5rg98r7l6qn27v564yllqjd574hncpx6m"))))
     (build-system python-build-system)
     (inputs
-     `(("python-cython" ,python-cython)
-       ("python-bx-python" ,python-bx-python)
-       ("python-pybigwig" ,python-pybigwig)
-       ("python-pysam" ,python-pysam)
-       ("python-numpy" ,python-numpy)
-       ("zlib" ,zlib)))
+     (list python-cython
+           python-bx-python
+           python-pybigwig
+           python-pysam
+           python-numpy
+           zlib))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "http://rseqc.sourceforge.net/")
     (synopsis "RNA-seq quality control package")
     (description
@@ -5932,67 +6072,55 @@ distribution, coverage uniformity, strand specificity, etc.")
     (license license:gpl3+)))
 
 (define-public seek
-  ;; There are no release tarballs.  According to the installation
-  ;; instructions at http://seek.princeton.edu/installation.jsp, the latest
-  ;; stable release is identified by this changeset ID.
-  (let ((changeset "2329130")
+  ;; There are no release tarballs.  And the installation instructions at
+  ;; http://seek.princeton.edu/installation.jsp only mention a mercurial
+  ;; changeset ID.  This is a git repository, though.  So we just take the
+  ;; most recent commit.
+  (let ((commit "196ed4c7633246e9c628e4330d77577ccfd7f1e5")
         (revision "1"))
     (package
       (name "seek")
-      (version (string-append "0-" revision "." changeset))
+      (version (git-version "1" revision commit))
       (source (origin
-                (method hg-fetch)
-                (uri (hg-reference
-                      (url "https://bitbucket.org/libsleipnir/sleipnir")
-                      (changeset changeset)))
-                (file-name (string-append name "-" version "-checkout"))
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/FunctionLab/sleipnir.git")
+                      (commit commit)
+                      (recursive? #true)))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0qrvilwh18dpbhkf92qvxbmay0j75ra3jg2wrhz67gf538zzphsx"))))
-      (build-system gnu-build-system)
+                  "0c658n8nz563a96dsi4gl2685vxph0yfmmqq5yjc6i4xin1jy1ab"))))
+      (build-system cmake-build-system)
       (arguments
-       `(#:modules ((srfi srfi-1)
-                    (guix build gnu-build-system)
-                    (guix build utils))
+       `(#:configure-flags
+         ,#~(list (string-append "-DSVM_LIBRARY="
+                                 #$(this-package-input "libsvm")
+                                 "/lib/libsvm.so.2")
+                  (string-append "-DSVM_INCLUDE="
+                                 #$(this-package-input "libsvm")
+                                 "/include"))
+         #:tests? #false ; tests only fail in the build container
          #:phases
-         (let ((dirs '("SeekMiner"
-                       "SeekEvaluator"
-                       "SeekPrep"
-                       "Distancer"
-                       "Data2DB"
-                       "PCL2Bin")))
-           (modify-phases %standard-phases
-             (replace 'bootstrap
-               (lambda _
-                 (substitute* "gen_tools_am"
-                   (("/usr/bin/env.*") (which "perl")))
-                 (invoke "bash" "gen_auto")
-                 #t))
-             (add-after 'build 'build-additional-tools
-               (lambda* (#:key make-flags #:allow-other-keys)
-                 (for-each (lambda (dir)
-                             (with-directory-excursion (string-append "tools/" dir)
-                               (apply invoke "make" make-flags)))
-                           dirs)
-                 #t))
-             (add-after 'install 'install-additional-tools
-               (lambda* (#:key make-flags #:allow-other-keys)
-                 (for-each (lambda (dir)
-                             (with-directory-excursion (string-append "tools/" dir)
-                               (apply invoke `("make" ,@make-flags "install"))))
-                           dirs)
-                 #t))))))
+         (modify-phases %standard-phases
+           ;; The check phase expects to find the unit_tests executable in the
+           ;; "build/bin" directory, but it is actually in "build/tests".
+           (replace 'check
+             (lambda* (#:key tests? #:allow-other-keys)
+               (when tests?
+                 (invoke "tests/unit_tests")))))))
       (inputs
-       `(("gsl" ,gsl)
+       `(("apache-thrift:include" ,apache-thrift "include")
+         ("apache-thrift:lib" ,apache-thrift "lib")
+         ("gsl" ,gsl)
          ("boost" ,boost)
-         ("libsvm" ,libsvm)
-         ("readline" ,readline)
          ("gengetopt" ,gengetopt)
-         ("log4cpp" ,log4cpp)))
+         ("libsvm" ,libsvm)
+         ("log4cpp" ,log4cpp)
+         ("python" ,python)
+         ("readline" ,readline)))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("perl" ,perl)))
+       (list pkg-config))
       (home-page "http://seek.princeton.edu")
       (synopsis "Gene co-expression search engine")
       (description
@@ -6050,13 +6178,9 @@ to the user's query of interest.")
                            (install-file file include))
                          (scandir "." (lambda (name) (string-match "\\.h$" name))))
                #t))))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
-     `(("htslib" ,htslib)
-       ("ncurses" ,ncurses)
-       ("perl" ,perl)
-       ("python" ,python)
-       ("zlib" ,zlib)))
+     (list htslib ncurses perl python zlib))
     (home-page "http://samtools.sourceforge.net")
     (synopsis "Utilities to efficiently manipulate nucleotide sequence alignments")
     (description
@@ -6085,11 +6209,64 @@ viewer.")
                    (delete-file-recursively "htslib-1.10")
                    #t))))
     (inputs
-     `(("htslib" ,htslib-1.10)
-       ("ncurses" ,ncurses)
-       ("perl" ,perl)
-       ("python" ,python)
-       ("zlib" ,zlib)))))
+     (list htslib-1.10 ncurses perl python zlib))))
+
+(define-public samtools-1.2
+  (package (inherit samtools)
+    (name "samtools")
+    (version "1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://sourceforge/samtools/samtools/"
+                       version "/samtools-" version ".tar.bz2"))
+       (sha256
+        (base32
+         "1akdqb685pk9xk1nb6sa9aq8xssjjhvvc06kp4cpdqvz2157l3j2"))
+       (modules '((guix build utils)))
+       (snippet
+        ;; Delete bundled htslib and Windows binaries
+        '(for-each delete-file-recursively (list "win32" "htslib-1.2.1")))))
+    (arguments
+     `(#:make-flags
+       ,#~(list (string-append "prefix=" #$output)
+                (string-append "BGZIP="
+                               #$(this-package-input "htslib")
+                               "/bin/bgzip")
+                (string-append "HTSLIB="
+                               #$(this-package-input "htslib")
+                               "/lib/libhts.so")
+                (string-append "HTSDIR="
+                               #$(this-package-input "htslib")
+                               "/include"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-makefile-curses
+           (lambda _
+             (substitute* "Makefile"
+               (("-lcurses") "-lncurses")
+               (("include \\$\\(HTSDIR.*") ""))))
+         (add-after 'unpack 'patch-tests
+           (lambda _
+             (substitute* "test/test.pl"
+               ;; The test script calls out to /bin/bash
+               (("/bin/bash") (which "bash"))
+               ;; There are two failing tests upstream relating to the "stats"
+               ;; subcommand in test_usage_subcommand ("did not have Usage"
+               ;; and "usage did not mention samtools stats"), so we disable
+               ;; them.
+               (("(test_usage_subcommand\\(.*\\);)" cmd)
+                (string-append "unless ($subcommand eq 'stats') {" cmd "};")))
+             ;; This test fails because the grep output doesn't look as
+             ;; expected; it is correct, though.
+             (substitute* "test/mpileup/mpileup.reg"
+               (("P 52.out.*") ""))))
+         (delete 'configure))))
+    (native-inputs
+     (list grep gawk pkg-config))
+    (inputs
+     (list htslib-for-samtools-1.2 ncurses perl python zlib))))
 
 (define-public samtools-0.1
   ;; This is the most recent version of the 0.1 line of samtools.  The input
@@ -6201,8 +6378,7 @@ Roche 454, Ion Torrent and Pacific BioSciences SMRT.")
                (mkdir-p share)
                (copy-recursively "../R" share)))))))
     (inputs
-     `(("boost" ,boost)
-       ("htslib" ,htslib)))
+     (list boost htslib))
     (home-page "https://github.com/friendsofstrandseq/mosaicatcher")
     (synopsis "Count and classify Strand-seq reads")
     (description
@@ -6244,7 +6420,7 @@ each chromosome in each cell using a Hidden Markov Model.")
                #t)))
          (add-after 'unpack 'enter-dir
            (lambda _ (chdir "ngs-sdk") #t)))))
-    (native-inputs `(("perl" ,perl)))
+    (native-inputs (list perl))
     ;; According to the test
     ;;   unless ($MARCH =~ /x86_64/i || $MARCH =~ /i?86/i)
     ;; in ngs-sdk/setup/konfigure.perl
@@ -6382,7 +6558,7 @@ simultaneously.")
        ("java-ngs" ,java-ngs)
        ("libmagic" ,file)
        ("hdf5" ,hdf5)))
-    (native-inputs `(("perl" ,perl)))
+    (native-inputs (list perl))
     ;; NCBI-VDB requires SSE capability.
     (supported-systems '("i686-linux" "x86_64-linux"))
     (home-page "https://github.com/ncbi/ncbi-vdb")
@@ -6410,29 +6586,27 @@ accessed/downloaded on demand across HTTP.")
                                 "plink-endian-detection.patch"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f ;no "check" target
-       #:make-flags (list (string-append "LIB_LAPACK="
-                                         (assoc-ref %build-inputs "lapack")
-                                         "/lib/liblapack.so")
-                          "WITH_LAPACK=1"
-                          "FORCE_DYNAMIC=1"
-                          ;; disable phoning home
-                          "WITH_WEBCHECK=")
+     `(#:tests? #f ;no "check" target
+       #:make-flags ,#~(list (string-append "LIB_LAPACK="
+                                            #$(this-package-input "lapack")
+                                            "/lib/liblapack.so")
+                             "WITH_LAPACK=1"
+                             "FORCE_DYNAMIC=1"
+                             ;; disable phoning home
+                             "WITH_WEBCHECK=")
        #:phases
        (modify-phases %standard-phases
          ;; no "configure" script
          (delete 'configure)
          (replace 'install
-                  (lambda* (#:key outputs #:allow-other-keys)
-                    (let ((bin (string-append (assoc-ref outputs "out")
-                                              "/bin/")))
-                      (install-file "plink" bin)
-                      #t))))))
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out")
+                                       "/bin/")))
+               (install-file "plink" bin)))))))
     (inputs
-     `(("zlib" ,zlib)
-       ("lapack" ,lapack)))
+     (list zlib lapack))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "http://pngu.mgh.harvard.edu/~purcell/plink/")
     (synopsis "Whole genome association analysis toolset")
     (description
@@ -6462,23 +6636,36 @@ subsequent visualization, annotation and storage of results.")
         (base32 "1p88lz9agzjlspjhciz61qjc36cfniv4nkxszyy0njqyc5rzc0cd"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ;no "check" target
-       #:make-flags (list "BLASFLAGS=-llapack -lopenblas"
-                          "CFLAGS=-Wall -O2 -DDYNAMIC_ZLIB=1"
-                          "ZLIB=-lz"
-                          "BIN=plink prettify"
-                          (string-append "CC=" ,(cc-for-target))
-                          (string-append "PREFIX=" (assoc-ref %outputs "out"))
-                          "DESTDIR=")
+     `(#:make-flags
+       ,#~(list "BLASFLAGS=-llapack -lopenblas"
+                "CFLAGS=-Wall -O2 -DDYNAMIC_ZLIB=1"
+                "ZLIB=-lz"
+                "BIN=plink prettify"
+                (string-append "CC=" #$(cc-for-target))
+                (string-append "PREFIX=" #$output)
+                "DESTDIR=")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'chdir
-           (lambda _ (chdir "1.9") #t))
-         (delete 'configure)))) ; no "configure" script
+           (lambda _ (chdir "1.9")))
+         (delete 'configure)  ; no "configure" script
+         (replace 'check
+           (lambda* (#:key tests? inputs #:allow-other-keys)
+             (when tests?
+               (symlink "plink" "plink19")
+               (symlink (search-input-file inputs "/bin/plink") "plink107")
+               (setenv "PATH" (string-append (getcwd) ":" (getenv "PATH")))
+               (with-directory-excursion "tests"
+                 ;; The model test fails because of a 0.0001 difference.
+                 (substitute* "tests.py"
+                   (("diff -q test1.model test2.model")
+                    "echo yes"))
+                 (invoke "bash" "test_setup.sh")
+                 (invoke "python3" "tests.py"))))))))
     (inputs
-     `(("lapack" ,lapack)
-       ("openblas" ,openblas)
-       ("zlib" ,zlib)))
+     (list lapack openblas zlib))
+    (native-inputs
+     (list diffutils plink python)) ; for tests
     (home-page "https://www.cog-genomics.org/plink/")
     (license license:gpl3+)))
 
@@ -6525,8 +6712,7 @@ subsequent visualization, annotation and storage of results.")
               #t))
            (delete 'configure))))
       (inputs
-       `(("samtools" ,samtools-0.1)
-         ("zlib" ,zlib)))
+       (list samtools-0.1 zlib))
       (home-page "https://github.com/smithlabcode/smithlab_cpp")
       (synopsis "C++ helper library for functions used in Smith lab projects")
       (description
@@ -6547,10 +6733,8 @@ structures, classes for genomic regions, mapped sequencing reads, etc.")
               (sha256
                (base32 "149x9xmk1wy1gff85325yfzqc0qk4sgp1w6gbyj9cnji4x1dszbl"))
               (modules '((guix build utils)))
-              (snippet '(begin
-                          ;; Remove bundled samtools.
-                          (delete-file-recursively "samtools")
-                          #t))))
+              ;; Remove bundled samtools.
+              (snippet '(delete-file-recursively "samtools"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ;no "check" target
@@ -6558,21 +6742,17 @@ structures, classes for genomic regions, mapped sequencing reads, etc.")
        (modify-phases %standard-phases
          (delete 'configure))
        #:make-flags
-       (list (string-append "PREFIX="
-                            (assoc-ref %outputs "out"))
-             (string-append "LIBBAM="
-                            (assoc-ref %build-inputs "samtools")
-                            "/lib/libbam.a")
-             (string-append "SMITHLAB_CPP="
-                            (assoc-ref %build-inputs "smithlab-cpp")
-                            "/lib")
-             "PROGS=preseq"
-             "INCLUDEDIRS=$(SMITHLAB_CPP)/../include/smithlab-cpp $(SAMTOOLS_DIR)")))
-    (inputs
-     `(("gsl" ,gsl)
-       ("samtools" ,samtools-0.1)
-       ("smithlab-cpp" ,smithlab-cpp)
-       ("zlib" ,zlib)))
+       ,#~(list (string-append "PREFIX=" #$output)
+                (string-append "LIBBAM="
+                               #$(this-package-input "samtools")
+                               "/lib/libbam.a")
+                (string-append "SMITHLAB_CPP="
+                               #$(this-package-input "smithlab-cpp")
+                               "/lib")
+                "PROGS=preseq"
+                "INCLUDEDIRS=$(SMITHLAB_CPP)/../include/smithlab-cpp $(SAMTOOLS_DIR)")))
+    (inputs
+     (list gsl samtools-0.1 smithlab-cpp zlib))
     (home-page "http://smithlabresearch.org/software/preseq/")
     (synopsis "Program for analyzing library complexity")
     (description
@@ -6598,11 +6778,9 @@ complexity samples.")
          "148vcb7w2wr6a4w6vs2bsxanbqibxfk490zbcbg4m61s8669zdjx"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest python-pytest-cov python-pytest-runner))
     (inputs
-     `(("python-bz2file" ,python-bz2file)))
+     (list python-bz2file))
     (home-page "https://github.com/dib-lab/screed/")
     (synopsis "Short read sequence database utilities")
     (description "Screed parses FASTA and FASTQ files and generates databases.
@@ -6632,19 +6810,19 @@ sequence itself can be retrieved from these databases.")
      `(#:parallel-build? #f             ; not supported
        #:tests? #f                      ; no "check" target
        #:make-flags
-       (list (string-append "DEFAULT_CRT="
-                            (assoc-ref %build-inputs "ncbi-vdb")
-                            "/kfg/certs.kfg")
-             (string-append "DEFAULT_KFG="
-                            (assoc-ref %build-inputs "ncbi-vdb")
-                            "/kfg/default.kfg")
-             (string-append "VDB_LIBDIR="
-                            (assoc-ref %build-inputs "ncbi-vdb")
-                            ,(if (string-prefix? "x86_64"
-                                                 (or (%current-target-system)
-                                                     (%current-system)))
-                                 "/lib64"
-                                 "/lib32")))
+       ,#~(list (string-append "DEFAULT_CRT="
+                               #$(this-package-input "ncbi-vdb")
+                               "/kfg/certs.kfg")
+                (string-append "DEFAULT_KFG="
+                               #$(this-package-input "ncbi-vdb")
+                               "/kfg/default.kfg")
+                (string-append "VDB_LIBDIR="
+                               #$(this-package-input "ncbi-vdb")
+                               #$(if (string-prefix? "x86_64"
+                                                     (or (%current-target-system)
+                                                         (%current-system)))
+                                     "/lib64"
+                                     "/lib32")))
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'set-perl-search-path
@@ -6700,7 +6878,7 @@ sequence itself can be retrieved from these databases.")
                      (string-append "--with-hdf5-prefix="
                                     (assoc-ref inputs "hdf5")))
              #t)))))
-    (native-inputs `(("perl" ,perl)))
+    (native-inputs (list perl))
     (inputs
      `(("ngs-sdk" ,ngs-sdk)
        ("ncbi-vdb" ,ncbi-vdb)
@@ -6738,9 +6916,7 @@ writing files into the .sra format.")
            (lambda _
              (invoke "ctest" "test" "--output-on-failure"))))))
     (native-inputs
-     `(("bzip2" ,bzip2)
-       ("cereal" ,cereal)
-       ("zlib" ,zlib)))
+     (list bzip2 cereal zlib))
     (home-page "https://www.seqan.de")
     (synopsis "Library for nucleotide sequence analysis")
     (description
@@ -6770,18 +6946,17 @@ bioinformatics file formats, sequence alignment, and more.")
     (arguments
      `(#:modules ((guix build utils))
        #:builder
-       (begin
-         (use-modules (guix build utils))
-         (let ((tar (assoc-ref %build-inputs "tar"))
-               (xz  (assoc-ref %build-inputs "xz"))
-               (out (assoc-ref %outputs "out"))
-               (doc (assoc-ref %outputs "doc")))
-           (setenv "PATH" (string-append tar "/bin:" xz "/bin"))
-           (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
-           (chdir (string-append "seqan-library-" ,version))
-           (copy-recursively "include" (string-append out "/include"))
-           (copy-recursively "share"  (string-append doc "/share"))
-           #t))))
+       ,#~(begin
+            (use-modules (guix build utils))
+            (let ((tar #$(this-package-native-input "tar"))
+                  (xz  #$(this-package-native-input "xz"))
+                  (out #$output)
+                  (doc #$output:doc))
+              (setenv "PATH" (string-append tar "/bin:" xz "/bin"))
+              (invoke "tar" "xvf" #$(this-package-native-input "source"))
+              (chdir (string-append "seqan-library-" #$version))
+              (copy-recursively "include" (string-append out "/include"))
+              (copy-recursively "share"  (string-append doc "/share"))))))
     (native-inputs
      `(("source" ,source)
        ("tar" ,tar)
@@ -6805,18 +6980,17 @@ bioinformatics file formats, sequence alignment, and more.")
     (arguments
      `(#:modules ((guix build utils))
        #:builder
-       (begin
-         (use-modules (guix build utils))
-         (let ((tar  (assoc-ref %build-inputs "tar"))
-               (bzip (assoc-ref %build-inputs "bzip2"))
-               (out  (assoc-ref %outputs "out"))
-               (doc  (assoc-ref %outputs "doc")))
-           (setenv "PATH" (string-append tar "/bin:" bzip "/bin"))
-           (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
-           (chdir (string-append "seqan-library-" ,version))
-           (copy-recursively "include" (string-append out "/include"))
-           (copy-recursively "share"  (string-append doc "/share"))
-           #t))))
+       ,#~(begin
+            (use-modules (guix build utils))
+            (let ((tar  #$(this-package-native-input "tar"))
+                  (bzip #$(this-package-native-input "bzip2"))
+                  (out #$output)
+                  (doc #$output:doc))
+              (setenv "PATH" (string-append tar "/bin:" bzip "/bin"))
+              (invoke "tar" "xvf" #$(this-package-native-input "source"))
+              (chdir (string-append "seqan-library-" #$version))
+              (copy-recursively "include" (string-append out "/include"))
+              (copy-recursively "share"  (string-append doc "/share"))))))
     (native-inputs
      `(("source" ,source)
        ("tar" ,tar)
@@ -6835,9 +7009,9 @@ bioinformatics file formats, sequence alignment, and more.")
          "0pf98da7i59q47gwrbx0wjk6xlvbybiwphw80w7h4ydjj0579a2b"))))
     (build-system python-build-system)
     (inputs
-     `(("python-biopython" ,python-biopython)))
+     (list python-biopython))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/fhcrc/seqmagick")
     (synopsis "Tools for converting and modifying sequence files")
     (description
@@ -6875,7 +7049,7 @@ is one that takes arguments.")
                (install-file "seqtk" bin)
                #t))))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://github.com/lh3/seqtk")
     (synopsis "Toolkit for processing biological sequences in FASTA/Q format")
     (description
@@ -6887,7 +7061,7 @@ optionally compressed by gzip.")
 (define-public snap-aligner
   (package
     (name "snap-aligner")
-    (version "1.0beta.18")
+    (version "2.0.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -6896,22 +7070,23 @@ optionally compressed by gzip.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "01w3qq4wm07z73vky0cfwlmrbf50n3w722cxrlzxfi99mnb808d8"))))
+                "0yag3jcazdqfxgmw0vbi91i98kj9sr0aqx83qqj6m5b45wxs7jms"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (delete 'configure)
-         (replace 'check (lambda _ (invoke "./unit_tests") #t))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests? (invoke "./unit_tests"))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin")))
                (install-file "snap-aligner" bin)
-               (install-file "SNAPCommand" bin)
-               #t))))))
+               (install-file "SNAPCommand" bin)))))))
     (native-inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "http://snap.cs.berkeley.edu/")
     (synopsis "Short read DNA sequence aligner")
     (description
@@ -6959,7 +7134,7 @@ of these reads to align data quickly through a hash-based indexing scheme.")
                          (find-files "rRNA_databases" ".*fasta"))
                #t))))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://bioinfo.lifl.fr/RNA/sortmerna/")
     (synopsis "Biological sequence analysis tool for NGS reads")
     (description
@@ -7041,10 +7216,9 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.")
              #t))
          (delete 'configure))))
     (native-inputs
-     `(("xxd" ,xxd)))
+     (list xxd))
     (inputs
-     `(("htslib" ,htslib)
-       ("zlib" ,zlib)))
+     (list htslib zlib))
     (home-page "https://github.com/alexdobin/STAR")
     (synopsis "Universal RNA-seq aligner")
     (description
@@ -7111,14 +7285,14 @@ sequences.")
 (define-public subread
   (package
     (name "subread")
-    (version "1.6.0")
+    (version "2.0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/subread/subread-"
                                   version "/subread-" version "-source.tar.gz"))
               (sha256
                (base32
-                "0ah0n4jx6ksk2m2j7xk385x2qzmk1y4rfc6a4mfrdqrlq721w99i"))))
+                "0szmllia7jl0annk5568xjhw6cc8yj1c5mb961qk5m0lz6ig7kjn"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ;no "check" target
@@ -7130,7 +7304,7 @@ sequences.")
                                 (%current-system)))
                    (flags '("-ggdb" "-fomit-frame-pointer"
                             "-ffast-math" "-funroll-loops"
-                            "-fmessage-length=0"
+                            "-fmessage-length=0" "-fcommon"
                             "-O9" "-Wall" "-DMAKE_FOR_EXON"
                             "-DMAKE_STANDALONE"
                             "-DSUBREAD_VERSION=\\\"${SUBREAD_VERSION}\\\""))
@@ -7143,17 +7317,16 @@ sequences.")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'enter-dir
-           (lambda _ (chdir "src") #t))
+           (lambda _ (chdir "src")))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
                (mkdir-p bin)
-               (copy-recursively "../bin" bin))
-             #t))
+               (copy-recursively "../bin" bin))))
          ;; no "configure" script
          (delete 'configure))))
-    (inputs `(("zlib" ,zlib)))
-    (home-page "http://bioinf.wehi.edu.au/subread-package/")
+    (inputs (list zlib))
+    (home-page "http://subread.sourceforge.net/")
     (synopsis "Tool kit for processing next-gen sequencing data")
     (description
      "The subread package contains the following tools: subread aligner, a
@@ -7209,8 +7382,7 @@ against local background noises.")
               (install-file "stringtie" bin)
               #t))))))
     (inputs
-     `(("samtools" ,samtools-0.1)
-       ("zlib" ,zlib)))
+     (list samtools-0.1 zlib))
     (home-page "http://ccb.jhu.edu/software/stringtie/")
     (synopsis "Transcript assembly and quantification for RNA-Seq data")
     (description
@@ -7228,7 +7400,7 @@ Cuffdiff or Ballgown programs.")
 (define-public taxtastic
   (package
     (name "taxtastic")
-    (version "0.8.11")
+    (version "0.9.2")
     (source (origin
               ;; The Pypi version does not include tests.
               (method git-fetch)
@@ -7238,15 +7410,13 @@ Cuffdiff or Ballgown programs.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1sv8mkg64jn7zdwf1jj71c16686yrwxk0apb1l8sjszy9p166g0p"))))
+                "1k6wg9ych1j3srnhdny1y4470qlhfg730rb3rm3pq7l7gw62vmgb"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'prepare-directory
            (lambda _
-             ;; The git checkout must be writable for tests.
-             (for-each make-file-writable (find-files "."))
              ;; This test fails, but the error is not caught by the test
              ;; framework, so the tests fail...
              (substitute* "tests/test_taxit.py"
@@ -7255,29 +7425,27 @@ Cuffdiff or Ballgown programs.")
              ;; This version file is expected to be created with git describe.
              (mkdir-p "taxtastic/data")
              (with-output-to-file "taxtastic/data/ver"
-               (lambda () (display ,version)))
-             #t))
-         (add-after 'unpack 'python37-compatibility
-           (lambda _
-             (substitute* "taxtastic/utils.py"
-               (("import csv") "import csv, errno")
-               (("os.errno") "errno"))
-             #t))
+               (lambda () (display ,version)))))
          (replace 'check
            ;; Note, this fails to run with "-v" as it tries to write to a
            ;; closed output stream.
-           (lambda _ (invoke "python" "-m" "unittest") #t)))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "python" "-m" "unittest"))))
+         ;; This fails because it cannot find psycopg2 even though it is
+         ;; available.
+         (delete 'sanity-check))))
     (propagated-inputs
-     `(("python-sqlalchemy" ,python-sqlalchemy)
-       ("python-decorator" ,python-decorator)
-       ("python-biopython" ,python-biopython)
-       ("python-pandas" ,python-pandas)
-       ("python-psycopg2" ,python-psycopg2)
-       ("python-fastalite" ,python-fastalite)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-six" ,python-six)
-       ("python-jinja2" ,python-jinja2)
-       ("python-dendropy" ,python-dendropy)))
+     (list python-sqlalchemy
+           python-decorator
+           python-biopython
+           python-pandas
+           python-psycopg2
+           python-fastalite
+           python-pyyaml
+           python-six
+           python-jinja2
+           python-dendropy))
     (home-page "https://github.com/fhcrc/taxtastic")
     (synopsis "Tools for taxonomic naming and annotation")
     (description
@@ -7301,16 +7469,15 @@ profiles, and associated taxonomic information.")
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no "check" target
-       #:make-flags (list
-                     "CFLAGS=-O2" ; override "-m64" flag
-                     (string-append "PREFIX=" (assoc-ref %outputs "out"))
-                     (string-append "MANDIR=" (assoc-ref %outputs "out")
-                                    "/share/man/man1"))))
+       #:make-flags
+       ,#~(list
+           "CFLAGS=-O2"                 ; override "-m64" flag
+           (string-append "PREFIX=" #$output)
+           (string-append "MANDIR=" #$output "/share/man/man1"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("perl" ,perl)
-       ("zlib" ,zlib)))
+     (list perl zlib))
     (home-page "https://vcftools.github.io/")
     (synopsis "Tools for working with VCF files")
     (description
@@ -7335,8 +7502,7 @@ data in the form of VCF files.")
                 "1z4mgwqg1j4n5ika08ai8mg9yjyjhf4821jp83v2bgwzxrykqjgr"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)
-       ("python" ,python))) ; for tests
+     (list perl python)) ; for tests
     (home-page "http://eddylab.org/infernal/")
     (synopsis "Inference of RNA alignments")
     (description "Infernal (\"INFERence of RNA ALignment\") is a tool for
@@ -7351,6 +7517,39 @@ sequence.")
     (supported-systems '("i686-linux" "x86_64-linux"))
     (license license:bsd-3)))
 
+(define-public r-presto
+  (let ((commit "052085db9c88aa70a28d11cc58ebc807999bf0ad")
+        (revision "0"))
+    (package
+      (name "r-presto")
+      (version (git-version "1.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/immunogenomics/presto")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1c3fmag4r4p2lvbvxlxyck9dvfw1prbwcl9665mmlx4a35750hk8"))))
+      (properties `((upstream . "presto")))
+      (build-system r-build-system)
+      (propagated-inputs
+       (list r-data-table
+             r-deseq2
+             r-dplyr
+             r-matrix
+             r-rcpp
+             r-rcpparmadillo
+             r-reshape2
+             r-rlang
+             r-tidyr))
+      (home-page "https://github.com/immunogenomics/presto")
+      (synopsis "Fast Functions for Differential Expression using Wilcox and AUC")
+      (description "This package performs a fast Wilcoxon rank sum test and
+auROC analysis.")
+      (license license:gpl3))))
+
 (define-public r-snapatac
   (package
     (name "r-snapatac")
@@ -7367,25 +7566,25 @@ sequence.")
     (properties `((upstream-name . "SnapATAC")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-bigmemory" ,r-bigmemory)
-        ("r-doparallel" ,r-doparallel)
-        ("r-dosnow" ,r-dosnow)
-        ("r-edger" ,r-edger)
-        ("r-foreach" ,r-foreach)
-        ("r-genomicranges" ,r-genomicranges)
-        ("r-igraph" ,r-igraph)
-        ("r-iranges" ,r-iranges)
-        ("r-irlba" ,r-irlba)
-        ("r-matrix" ,r-matrix)
-        ("r-plyr" ,r-plyr)
-        ("r-plot3d" ,r-plot3d)
-        ("r-rann" ,r-rann)
-        ("r-raster" ,r-raster)
-        ("r-rcolorbrewer" ,r-rcolorbrewer)
-        ("r-rhdf5" ,r-rhdf5)
-        ("r-rtsne" ,r-rtsne)
-        ("r-scales" ,r-scales)
-        ("r-viridis" ,r-viridis)))
+      (list r-bigmemory
+            r-doparallel
+            r-dosnow
+            r-edger
+            r-foreach
+            r-genomicranges
+            r-igraph
+            r-iranges
+            r-irlba
+            r-matrix
+            r-plyr
+            r-plot3d
+            r-rann
+            r-raster
+            r-rcolorbrewer
+            r-rhdf5
+            r-rtsne
+            r-scales
+            r-viridis))
     (home-page "https://github.com/r3fang/SnapATAC")
     (synopsis "Single nucleus analysis package for ATAC-Seq")
     (description
@@ -7400,6 +7599,46 @@ clustering analysis, differential analysis, motif inference and exploration of
 single cell ATAC-seq sequencing data.")
     (license license:gpl3)))
 
+(define-public r-umi4cpackage
+  (let ((commit "88b07d896a137418ba6c31c2474b9dbe1d86fc20")
+        (revision "1"))
+    (package
+      (name "r-umi4cpackage")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/tanaylab/umi4cpackage")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0bjzamdw2lcfhlbzc0vdva87c3wwnij8jsvnrpx4wyyxvpcz13m5"))))
+      (properties `((upstream-name . "umi4cPackage")))
+      (build-system r-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-references
+             (lambda _
+               (substitute* "inst/conf/paths.conf"
+                 (("TG3C\\.bowtie2_bin=.*")
+                  (string-append "TG3C.bowtie2_bin="
+                                 (which "bowtie2") "\n")))
+               (substitute* "inst/perl/map3c/TG3C/import3C.pl"
+                 (("\"perl")
+                  (string-append "\"" (which "perl")))))))))
+      (inputs
+       (list perl bowtie))
+      (propagated-inputs
+       (list r-misha r-zoo))
+      (native-inputs (list r-knitr))
+      (home-page "https://github.com/tanaylab/umi4cpackage")
+      (synopsis "Processing and analysis of UMI-4C contact profiles")
+      (description "This is a package that lets you process UMI-4C data from
+scratch to produce nice plots.")
+      (license license:expat))))
+
 (define-public r-shinycell
   (let ((commit
          "aecbd56e66802f28e397f5ae1f19403aadd12163")
@@ -7420,16 +7659,16 @@ single cell ATAC-seq sequencing data.")
       (properties `((upstream-name . "ShinyCell")))
       (build-system r-build-system)
       (propagated-inputs
-       `(("r-data-table" ,r-data-table)
-         ("r-ggplot2" ,r-ggplot2)
-         ("r-glue" ,r-glue)
-         ("r-gridextra" ,r-gridextra)
-         ("r-hdf5r" ,r-hdf5r)
-         ("r-matrix" ,r-matrix)
-         ("r-r-utils" ,r-r-utils)
-         ("r-rcolorbrewer" ,r-rcolorbrewer)
-         ("r-readr" ,r-readr)
-         ("r-reticulate" ,r-reticulate)))
+       (list r-data-table
+             r-ggplot2
+             r-glue
+             r-gridextra
+             r-hdf5r
+             r-matrix
+             r-r-utils
+             r-rcolorbrewer
+             r-readr
+             r-reticulate))
       (home-page "https://github.com/SGDDNB/ShinyCell")
       (synopsis "Shiny interactive web apps for single-cell data")
       (description
@@ -7456,30 +7695,30 @@ single-cell data.")
       (properties `((upstream-name . "ArchR")))
       (build-system r-build-system)
       (propagated-inputs
-       `(("r-biocgenerics" ,r-biocgenerics)
-         ("r-biostrings" ,r-biostrings)
-         ("r-chromvar" ,r-chromvar)
-         ("r-complexheatmap" ,r-complexheatmap)
-         ("r-data-table" ,r-data-table)
-         ("r-genomicranges" ,r-genomicranges)
-         ("r-ggplot2" ,r-ggplot2)
-         ("r-ggrepel" ,r-ggrepel)
-         ("r-gridextra" ,r-gridextra)
-         ("r-gtable" ,r-gtable)
-         ("r-gtools" ,r-gtools)
-         ("r-magrittr" ,r-magrittr)
-         ("r-matrix" ,r-matrix)
-         ("r-matrixstats" ,r-matrixstats)
-         ("r-motifmatchr" ,r-motifmatchr)
-         ("r-nabor" ,r-nabor)
-         ("r-plyr" ,r-plyr)
-         ("r-rcpp" ,r-rcpp)
-         ("r-rhdf5" ,r-rhdf5)
-         ("r-rsamtools" ,r-rsamtools)
-         ("r-s4vectors" ,r-s4vectors)
-         ("r-stringr" ,r-stringr)
-         ("r-summarizedexperiment" ,r-summarizedexperiment)
-         ("r-uwot" ,r-uwot)))
+       (list r-biocgenerics
+             r-biostrings
+             r-chromvar
+             r-complexheatmap
+             r-data-table
+             r-genomicranges
+             r-ggplot2
+             r-ggrepel
+             r-gridextra
+             r-gtable
+             r-gtools
+             r-magrittr
+             r-matrix
+             r-matrixstats
+             r-motifmatchr
+             r-nabor
+             r-plyr
+             r-rcpp
+             r-rhdf5
+             r-rsamtools
+             r-s4vectors
+             r-stringr
+             r-summarizedexperiment
+             r-uwot))
       (home-page "https://github.com/GreenleafLab/ArchR")
       (synopsis "Analyze single-cell regulatory chromatin in R")
       (description
@@ -7501,21 +7740,21 @@ single-cell data.")
                 "10na2gyka24mszdxf92wz9h2c13hdf1ww30c68gfsw53lvvhhhxb"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-mgcv" ,r-mgcv)
-       ("r-rook" ,r-rook)
-       ("r-rjson" ,r-rjson)
-       ("r-cairo" ,r-cairo)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-edger" ,r-edger)
-       ("r-quantreg" ,r-quantreg)
-       ("r-nnet" ,r-nnet)
-       ("r-rmtstat" ,r-rmtstat)
-       ("r-extremes" ,r-extremes)
-       ("r-pcamethods" ,r-pcamethods)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-flexmix" ,r-flexmix)))
+     (list r-rcpp
+           r-rcpparmadillo
+           r-mgcv
+           r-rook
+           r-rjson
+           r-cairo
+           r-rcolorbrewer
+           r-edger
+           r-quantreg
+           r-nnet
+           r-rmtstat
+           r-extremes
+           r-pcamethods
+           r-biocparallel
+           r-flexmix))
     (home-page "https://hms-dbmi.github.io/scde/")
     (synopsis "R package for analyzing single-cell RNA-seq data")
     (description "The SCDE package implements a set of statistical methods for
@@ -7528,6 +7767,86 @@ of transcriptional heterogeneity among single cells.")
     ;; See https://github.com/hms-dbmi/scde/issues/38
     (license license:gpl2)))
 
+(define-public r-misha
+  (package
+    (name "r-misha")
+    (version "4.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tanaylab/misha")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0bgivx3lzjh3173jsfrhb5kvhjsn53br0n4hmyx7i3dwy2cnnp2p"))
+       ;; Delete bundled executable.
+       (snippet
+        '(delete-file "exec/bigWigToWig"))))
+    (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'do-not-use-bundled-bigWigToWig
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "R/misha.R"
+               (("get\\(\".GLIBDIR\"\\), \"/exec/bigWigToWig")
+                (string-append "\""
+                               (assoc-ref inputs "kentutils")
+                               "/bin/bigWigToWig"))))))))
+    (inputs
+     (list kentutils))
+    (home-page "https://github.com/tanaylab/misha")
+    (synopsis "Toolkit for analysis of genomic data")
+    (description "This package is intended to help users to efficiently
+analyze genomic data resulting from various experiments.")
+    (license license:gpl2)))
+
+(define-public r-shaman
+  (let ((commit "d6944e8ac7bd1dbd5c6cec646eafc1d19d0ca96f")
+        (release "2.0")
+        (revision "2"))
+    (package
+      (name "r-shaman")
+      (version (git-version release revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/tanaylab/shaman")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "03sx138dzpfiq23j49z0m0s4j79855mrg64hpj9c83408wzphxi6"))
+                (snippet
+                 ;; This file will be generated.
+                 '(delete-file "inst/doc/shaman-package.R"))))
+      (build-system r-build-system)
+      (propagated-inputs
+       (list r-data-table
+             r-domc
+             r-ggplot2
+             r-gviz
+             r-misha
+             r-plyr
+             r-rann
+             r-rcpp
+             r-reshape2
+             ;; For vignettes
+             r-rmarkdown
+             r-knitr))
+      (home-page "https://github.com/tanaylab/shaman")
+      (synopsis "Sampling HiC contact matrices for a-parametric normalization")
+      (description "The Shaman package implements functions for
+resampling Hi-C matrices in order to generate expected contact
+distributions given constraints on marginal coverage and
+contact-distance probability distributions.  The package also provides
+support for visualizing normalized matrices and statistical analysis
+of contact distributions around selected landmarks.")
+      ;; Any version of the GPL
+      (license license:gpl3+))))
+
 (define-public r-centipede
   (package
     (name "r-centipede")
@@ -7571,11 +7890,7 @@ information as possible.")
       (properties `((upstream-name . "deMULTIplex")))
       (build-system r-build-system)
       (propagated-inputs
-       `(("r-kernsmooth" ,r-kernsmooth)
-         ("r-reshape2" ,r-reshape2)
-         ("r-rtsne" ,r-rtsne)
-         ("r-shortread" ,r-shortread)
-         ("r-stringdist" ,r-stringdist)))
+       (list r-kernsmooth r-reshape2 r-rtsne r-shortread r-stringdist))
       (home-page "https://github.com/chris-mcginnis-ucsf/MULTI-seq")
       (synopsis "MULTI-seq pre-processing and classification tools")
       (description
@@ -7591,6 +7906,46 @@ includes software to
 ")
       (license license:cc0))))
 
+(define-public gdc-client
+  (package
+    (name "gdc-client")
+    (version "1.6.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/NCI-GDC/gdc-client.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0cagawlzjwj3wam10lv64xgbfx4zcnzxi5sjpsdhq7rn4z24mzc2"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'relax-requirements
+           (lambda _
+             (substitute* "requirements.txt"
+               (("==") ">=")))))))
+    (inputs
+     (list python-cryptography
+           python-intervaltree
+           python-jsonschema
+           python-lxml
+           python-ndg-httpsclient
+           python-progressbar2
+           python-pyasn1
+           python-pyopenssl
+           python-pyyaml
+           python-requests
+           python-termcolor))
+    (home-page "https://gdc.nci.nih.gov/access-data/gdc-data-transfer-tool")
+    (synopsis "GDC data transfer tool")
+    (description "The gdc-client provides several convenience functions over
+the GDC API which provides general download/upload via HTTPS.")
+    (license license:asl2.0)))
+
 (define-public vsearch
   (package
     (name "vsearch")
@@ -7616,12 +7971,9 @@ includes software to
            #t))))
     (build-system gnu-build-system)
     (inputs
-     `(("zlib" ,zlib)
-       ("bzip2" ,bzip2)
-       ("cityhash" ,cityhash)))
+     (list zlib bzip2 cityhash))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (synopsis "Sequence search tools for metagenomics")
     (description
      "VSEARCH supports DNA sequence searching, clustering, chimera detection,
@@ -7640,30 +7992,27 @@ Needleman-Wunsch).")
 (define-public pardre
   (package
     (name "pardre")
-    ;; The source of 1.1.5 changed in place, so we append "-1" to the version.
-    (version "1.1.5-1")
+    (version "2.2.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/pardre/ParDRe-rel"
-                           "1.1.5" ".tar.gz"))
+                           version ".tar.gz"))
        (sha256
         (base32
-         "17j73nc0viq4f6qj50nrndsrif5d6b71q8fl87m54psiv0ilns2b"))))
+         "105s4f8zs8hh0sc32r9p725n7idza9cj5jvp5z1m5pljjhgk3if5"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; no tests included
+     `(#:tests? #f ; tests require "prove"
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
-               (install-file "ParDRe" bin)
-               #t))))))
+               (install-file "ParDRe" bin)))))))
     (inputs
-     `(("openmpi" ,openmpi)
-       ("zlib" ,zlib)))
+     (list openmpi-c++ zlib))
     (synopsis "Parallel tool to remove duplicate DNA reads")
     (description
      "ParDRe is a parallel tool to remove duplicate genetic sequence reads.
@@ -7694,7 +8043,7 @@ clusters.")
     (build-system cmake-build-system)
     (arguments '(#:tests? #false))      ; there are none
     (inputs
-     `(("boost" ,boost)))
+     (list boost))
     (home-page "https://github.com/cbg-ethz/ngshmmalign/")
     (synopsis "Profile HMM aligner for NGS reads")
     (description
@@ -7727,7 +8076,7 @@ experience substantial biological insertions and deletions.")
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin"))
                     (scripts (find-files "." "prinseq.*.pl"))
-                    (guile (search-input-file "bin/guile")))
+                    (guile (search-input-file inputs "bin/guile")))
                (substitute* scripts
                  (("\"perl -pe")
                   (string-append "\"" (which "perl") " -pe")))
@@ -7740,14 +8089,14 @@ experience substantial biological insertions and deletions.")
                                           (,(getenv "PERL5LIB")))))
                          scripts)))))))
     (inputs
-     `(("guile" ,guile-3.0)             ; for wrapper scripts
-       ("perl" ,perl)
-       ("perl-cairo" ,perl-cairo)
-       ("perl-data-dumper" ,perl-data-dumper)
-       ("perl-digest-md5" ,perl-digest-md5)
-       ("perl-getopt-long" ,perl-getopt-long)
-       ("perl-json" ,perl-json)
-       ("perl-statistics-pca" ,perl-statistics-pca)))
+     (list guile-3.0 ; for wrapper scripts
+           perl
+           perl-cairo
+           perl-data-dumper
+           perl-digest-md5
+           perl-getopt-long
+           perl-json
+           perl-statistics-pca))
     (home-page "http://prinseq.sourceforge.net/")
     (synopsis "Preprocess sequence data in FASTA or FASTQ formats")
     (description
@@ -7792,20 +8141,20 @@ data.  It also generates basic statistics for your sequences.")
                     (pythonpath (getenv "GUIX_PYTHONPATH"))
                     (script (string-append out "/bin/shorah")))
                (chmod script #o555)
-               (wrap-program script `("PYTHONPATH" ":" prefix (,site ,pythonpath))))))
+               (wrap-program script `("GUIX_PYTHONPATH" ":" prefix (,site ,pythonpath))))))
          (add-after 'wrap-programs 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
                (invoke "make" "check")))))))
     (inputs
-     `(("boost" ,boost)
-       ("htslib" ,htslib)
-       ("python" ,python)
-       ("python-biopython" ,python-biopython)
-       ("python-numpy" ,python-numpy)
-       ("zlib" ,zlib)))
+     (list boost
+           htslib
+           python
+           python-biopython
+           python-numpy
+           zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "")
     (synopsis "Short reads assembly into haplotypes")
     (description
@@ -7830,11 +8179,9 @@ frequency of the different genetic variants present in a mixed sample.")
     (arguments
      `(#:test-target "spec"))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)))
+     (list bundler ruby-rspec ruby-rake-compiler))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (synopsis "Ruby bindings for the kseq.h FASTA/Q parser")
     (description
      "@code{Bio::Kseq} provides ruby bindings to the @code{kseq.h} FASTA and
@@ -7856,7 +8203,7 @@ quality scores.")
          "02vmrxyimkj9sahsp4zhfhnmbvz6dbbqz1y01vglf8cbwvkajfl0"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (synopsis "Tool for fast querying of genome locations")
     (description
      "Bio-locus is a tabix-like tool for fast querying of genome
@@ -7879,10 +8226,9 @@ chr+pos+alt information in a database.")
                 "1wf4qygcmdjgcqm6flmvsagfr1gs9lf63mj32qv3z1f481zc5692"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-bio-logger" ,ruby-bio-logger)
-       ("ruby-nokogiri" ,ruby-nokogiri)))
+     (list ruby-bio-logger ruby-nokogiri))
     (inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (synopsis "Fast big data BLAST XML parser and library")
     (description
      "Very fast parallel big-data BLAST XML file parser which can be used as
@@ -7904,9 +8250,9 @@ generate FASTA, JSON, YAML, RDF, JSON-LD, HTML, CSV, tabular output etc.")
          "1d56amdsjv1mag7m6gv2w0xij8hqx1v5xbdjsix8sp3yp36m7938"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-libxml" ,ruby-libxml)))
+     (list ruby-libxml))
     (native-inputs
-     `(("which" ,which)))  ; required for test phase
+     (list which))  ; required for test phase
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -7947,7 +8293,7 @@ BLAST, KEGG, GenBank, MEDLINE and GO.")
           "1glw5pn9s8z13spxk6yyfqaz80n9lga67f33w35nkpq9dwi2vg6g"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-cucumber" ,ruby-cucumber)))
+     (list ruby-cucumber))
     (synopsis "Smart VCF parser DSL")
     (description
      "Bio-vcf provides a @acronym{DSL, domain specific language} for processing
@@ -7990,16 +8336,16 @@ including VCF header and contents in RDF and JSON.")
       (inputs
        `(("r" ,r-minimal)))
       (propagated-inputs
-       `(("r-catools" ,r-catools)
-         ("r-snow" ,r-snow)
-         ("r-snowfall" ,r-snowfall)
-         ("r-bitops" ,r-bitops)
-         ("r-rsamtools" ,r-rsamtools)
-         ("r-spp" ,r-spp)
-         ("gawk" ,gawk)
-         ("samtools" ,samtools)
-         ("boost" ,boost)
-         ("gzip" ,gzip)))
+       (list r-catools
+             r-snow
+             r-snowfall
+             r-bitops
+             r-rsamtools
+             r-spp
+             gawk
+             samtools
+             boost
+             gzip))
       (home-page "https://github.com/kundajelab/phantompeakqualtools")
       (synopsis "Informative enrichment for ChIP-seq data")
       (description "This package computes informative enrichment and quality
@@ -8022,8 +8368,7 @@ characteristic tag shift values in these assays.")
          "1p0i78wh76jfgmn9jphbwwaz6yy6pipzfg08xs54cxavxg2j81p5"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-optparse" ,r-optparse)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)))
+     (list r-optparse r-rcolorbrewer))
     (home-page "https://www.e-rna.org/r-chie/index.cgi")
     (synopsis "Analysis framework for RNA secondary structure")
     (description
@@ -8075,7 +8420,7 @@ secondary structure and comparative analysis in R.")
        ("guile-json" ,guile-json-1)
        ("guile-redis" ,guile2.2-redis)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/BIMSBbioinfo/rcas-web")
     (synopsis "Web interface for RNA-centric annotation system (RCAS)")
     (description "This package provides a simple web interface for the
@@ -8100,16 +8445,16 @@ secondary structure and comparative analysis in R.")
            "14bj5qhjm1hsm9ay561nfbqi9wxsa7y487df2idsaaf6z10nw4v0"))))
       (build-system r-build-system)
       (propagated-inputs
-       `(("r-iranges" ,r-iranges)
-         ("r-xvector" ,r-xvector)
-         ("r-biostrings" ,r-biostrings)
-         ("r-bsgenome" ,r-bsgenome)
-         ("r-gtools" ,r-gtools)
-         ("r-genomicranges" ,r-genomicranges)
-         ("r-sfsmisc" ,r-sfsmisc)
-         ("r-kernlab" ,r-kernlab)
-         ("r-s4vectors" ,r-s4vectors)
-         ("r-biocgenerics" ,r-biocgenerics)))
+       (list r-iranges
+             r-xvector
+             r-biostrings
+             r-bsgenome
+             r-gtools
+             r-genomicranges
+             r-sfsmisc
+             r-kernlab
+             r-s4vectors
+             r-biocgenerics))
       (home-page "https://github.com/ManuSetty/ChIPKernels")
       (synopsis "Build string kernels for DNA Sequence analysis")
       (description "ChIPKernels is an R package for building different string
@@ -8134,12 +8479,12 @@ Sequences.")
          "1r6ywvhxl3ffv48lgj7sbd582mcc6dha3ksgc2qjlvjrnkbj3799"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biostrings" ,r-biostrings)
-       ("r-chipkernels" ,r-chipkernels)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-spams" ,r-spams)
-       ("r-wgcna" ,r-wgcna)
-       ("r-fastcluster" ,r-fastcluster)))
+     (list r-biostrings
+           r-chipkernels
+           r-genomicranges
+           r-spams
+           r-wgcna
+           r-fastcluster))
     (home-page "https://github.com/ManuSetty/SeqGL")
     (synopsis "Group lasso for Dnase/ChIP-seq data")
     (description "SeqGL is a group lasso based algorithm to extract
@@ -8164,8 +8509,8 @@ factors bound at the specific regions.")
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
-       (list (string-append "--with-hpdf="
-                            (assoc-ref %build-inputs "libharu")))
+       ,#~(list (string-append "--with-hpdf="
+                               #$(this-package-input "libharu")))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-checks
@@ -8189,17 +8534,14 @@ AM_CONDITIONAL(AMPNG, true)"))
          (add-after 'disable-update-check 'autogen
            (lambda _ (invoke "autoreconf" "-vif") #t)))))
     (inputs
-     `(("perl" ,perl)
-       ("libpng" ,libpng)
-       ("gd" ,gd)
-       ("libx11" ,libx11)
-       ("libharu" ,libharu)
-       ("zlib" ,zlib)))
+     (list perl
+           libpng
+           gd
+           libx11
+           libharu
+           zlib))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (home-page "http://emboss.sourceforge.net")
     (synopsis "Molecular biology analysis suite")
     (description "EMBOSS is the \"European Molecular Biology Open Software
@@ -8247,8 +8589,7 @@ tools for sequence analysis into a seamless whole.")
                 "bin" (string-append (assoc-ref outputs "out") "/bin"))
                #t)))))
       (inputs
-       `(("gsl" ,gsl)
-         ("zlib" ,zlib)))
+       (list gsl zlib))
       (home-page "https://github.com/arq5x/bits")
       (synopsis "Implementation of binary interval search algorithm")
       (description "This package provides an implementation of the
@@ -8284,21 +8625,19 @@ intervals (e.g. genes, sequence alignments).")
              (lambda* (#:key inputs #:allow-other-keys)
                (for-each (lambda (file)
                            (install-file file "./src/smithlab_cpp/"))
-                         (find-files (assoc-ref inputs "smithlab-cpp")))
-               #t))
+                         (find-files (assoc-ref inputs "smithlab-cpp")))))
            (add-after 'install 'install-to-store
              (lambda* (#:key outputs #:allow-other-keys)
                (let* ((out (assoc-ref outputs "out"))
                       (bin (string-append out "/bin")))
                  (for-each (lambda (file)
                              (install-file file bin))
-                           (find-files "bin" ".*")))
-               #t)))
+                           (find-files "bin" ".*"))))))
          #:configure-flags
-         (list (string-append "--with-bam_tools_headers="
-                              (assoc-ref %build-inputs "bamtools") "/include/bamtools")
-               (string-append "--with-bam_tools_library="
-                              (assoc-ref %build-inputs "bamtools") "/lib/bamtools"))))
+         ,#~(list (string-append "--with-bam_tools_headers="
+                                 #$(this-package-input "bamtools") "/include/bamtools")
+                  (string-append "--with-bam_tools_library="
+                                 #$(this-package-input "bamtools") "/lib/bamtools"))))
       (inputs
        `(("bamtools" ,bamtools)
          ("samtools" ,samtools-0.1)
@@ -8340,9 +8679,7 @@ may optionally be provided to further inform the peak-calling process.")
      `(#:python ,python-2 ; python2 only
        #:tests? #f)) ; no tests included
     (propagated-inputs
-     `(("python2-numpy" ,python2-numpy)
-       ("python2-scipy" ,python2-scipy)
-       ("python2-pysam" ,python2-pysam)))
+     (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
@@ -8410,23 +8747,27 @@ replacement for strverscmp.")
                  ;; ModuleNotFoundError: No module named 'multiqc.modules.ccs'
                  (delete-file "/tmp/tests/unit_tests/test_ccs.py")
                  (with-directory-excursion "/tmp/tests"
-                   (setenv "PYTHONPATH" (string-append here ":" (getenv "PYTHONPATH")))
-                   (invoke "python" "-munittest" "discover")))))))))
+                   (setenv "GUIX_PYTHONPATH"
+                           (string-append here ":" (getenv "GUIX_PYTHONPATH")))
+                   (invoke "python" "-munittest" "discover"))))))
+         ;; TODO: importing the picard and gatk modules fails for unknown
+         ;; reasons.
+         (delete 'sanity-check))))
     (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-coloredlogs" ,python-coloredlogs)
-       ("python-future" ,python-future)
-       ("python-jinja2" ,python-jinja2)
-       ("python-lzstring" ,python-lzstring)
-       ("python-markdown" ,python-markdown)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-networkx" ,python-networkx)
-       ("python-numpy" ,python-numpy)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-requests" ,python-requests)
-       ("python-rich" ,python-rich)
-       ("python-simplejson" ,python-simplejson)
-       ("python-spectra" ,python-spectra)))
+     (list python-click
+           python-coloredlogs
+           python-future
+           python-jinja2
+           python-lzstring
+           python-markdown
+           python-matplotlib
+           python-networkx
+           python-numpy
+           python-pyyaml
+           python-requests
+           python-rich
+           python-simplejson
+           python-spectra))
     (native-inputs
      `(("python-pytest" ,python-pytest)
        ("tests"
@@ -8465,19 +8806,16 @@ common bioinformatics tools.")
          "12ibdmksj7icyqhks4xyvd61bygk4pjmxn618kp6vgk1af01y34g"))))
     (build-system python-build-system)
     (inputs
-     `(("boost" ,boost)
-       ("c-blosc" ,c-blosc)
-       ("gsl" ,gsl)
-       ("hdf5" ,hdf5)
-       ("hdf5-blosc" ,hdf5-blosc)
-       ("python-cython" ,python-cython)
-       ("zlib" ,zlib)))
+     (list boost
+           c-blosc
+           gsl
+           hdf5
+           hdf5-blosc
+           python-cython
+           zlib))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-pycurl" ,python-pycurl)
-       ("python-pyzmq" ,python-pyzmq)
-       ("python-scipy" ,python-scipy)
-       ("python-tables" ,python-tables)))
+     (list python-numpy python-pycurl python-pyzmq python-scipy
+           python-tables))
     (home-page "https://vatlab.github.io/vat-docs/")
     (synopsis "Analyze genetic variants from Next-Gen sequencing studies")
     (description
@@ -8503,11 +8841,7 @@ manipulate and analyze genetic variants.")
     (properties `((upstream-name . "RareMETALS2")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-seqminer" ,r-seqminer)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-mass" ,r-mass)
-       ("r-compquadform" ,r-compquadform)
-       ("r-getopt" ,r-getopt)))
+     (list r-seqminer r-mvtnorm r-mass r-compquadform r-getopt))
     (home-page "http://genome.sph.umich.edu/wiki/RareMETALS2")
     (synopsis "Analyze gene-level association tests for binary trait")
     (description
@@ -8538,11 +8872,7 @@ trait.")
            "0sbzma49aiiyw8b0jpr7fnhzys9nsqmp4hy4hdz1gzyg1lhnca26"))))
       (build-system r-build-system)
       (propagated-inputs
-       `(("r-ggplot2" ,r-ggplot2)
-         ("r-rcolorbrewer" ,r-rcolorbrewer)
-         ("r-gridextra" ,r-gridextra)
-         ("r-gplots" ,r-gplots)
-         ("r-plyr" ,r-plyr)))
+       (list r-ggplot2 r-rcolorbrewer r-gridextra r-gplots r-plyr))
       (home-page "https://github.com/rajewsky-lab/dropbead")
       (synopsis "Basic exploration and analysis of Drop-seq data")
       (description "This package offers a quick and straight-forward way to
@@ -8574,41 +8904,41 @@ droplet sequencing.  It has been particularly tailored for Drop-seq.")
       (properties `((upstream-name . "CellChat")))
       (build-system r-build-system)
       (propagated-inputs
-       `(("r-biocgenerics" ,r-biocgenerics)
-         ("r-circlize" ,r-circlize)
-         ("r-colorspace" ,r-colorspace)
-         ("r-complexheatmap" ,r-complexheatmap)
-         ("r-cowplot" ,r-cowplot)
-         ("r-dplyr" ,r-dplyr)
-         ("r-expm" ,r-expm)
-         ("r-fnn" ,r-fnn)
-         ("r-forcats" ,r-forcats)
-         ("r-future" ,r-future)
-         ("r-future-apply" ,r-future-apply)
-         ("r-gg-gap" ,r-gg-gap)
-         ("r-ggalluvial" ,r-ggalluvial)
-         ("r-ggplot2" ,r-ggplot2)
-         ("r-ggrepel" ,r-ggrepel)
-         ("r-igraph" ,r-igraph)
-         ("r-irlba" ,r-irlba)
-         ("r-magrittr" ,r-magrittr)
-         ("r-matrix" ,r-matrix)
-         ("r-nmf" ,r-nmf)
-         ("r-patchwork" ,r-patchwork)
-         ("r-pbapply" ,r-pbapply)
-         ("r-rcolorbrewer" ,r-rcolorbrewer)
-         ("r-rcpp" ,r-rcpp)
-         ("r-rcppeigen" ,r-rcppeigen)
-         ("r-reshape2" ,r-reshape2)
-         ("r-reticulate" ,r-reticulate)
-         ("r-rspectra" ,r-rspectra)
-         ("r-rtsne" ,r-rtsne)
-         ("r-scales" ,r-scales)
-         ("r-shape" ,r-shape)
-         ("r-sna" ,r-sna)
-         ("r-stringr" ,r-stringr)
-         ("r-svglite" ,r-svglite)))
-      (native-inputs `(("r-knitr" ,r-knitr)))
+       (list r-biocgenerics
+             r-circlize
+             r-colorspace
+             r-complexheatmap
+             r-cowplot
+             r-dplyr
+             r-expm
+             r-fnn
+             r-forcats
+             r-future
+             r-future-apply
+             r-gg-gap
+             r-ggalluvial
+             r-ggplot2
+             r-ggrepel
+             r-igraph
+             r-irlba
+             r-magrittr
+             r-matrix
+             r-nmf
+             r-patchwork
+             r-pbapply
+             r-rcolorbrewer
+             r-rcpp
+             r-rcppeigen
+             r-reshape2
+             r-reticulate
+             r-rspectra
+             r-rtsne
+             r-scales
+             r-shape
+             r-sna
+             r-stringr
+             r-svglite))
+      (native-inputs (list r-knitr))
       (home-page "https://github.com/sqjin/CellChat")
       (synopsis "Analysis of cell-cell communication from single-cell transcriptomics data")
       (description
@@ -8641,27 +8971,22 @@ communication networks from scRNA-seq data.")
            (lambda _
              (substitute* "Makefile"
                ;; We use ldc2 instead of ldmd2 to compile sambamba.
-               (("\\$\\(shell which ldmd2\\)") (which "ldc2")))
-             #t))
+               (("\\$\\(shell which ldmd2\\)") (which "ldc2")))))
          (add-after 'unpack 'unbundle-prerequisites
            (lambda _
              (substitute* "Makefile"
                (("= lz4/lib/liblz4.a") "= -L-llz4")
-               (("ldc_version_info lz4-static") "ldc_version_info"))
-             #t))
+               (("ldc_version_info lz4-static") "ldc_version_info"))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
                (mkdir-p bin)
                (copy-file (string-append "bin/sambamba-" ,version)
-                          (string-append bin "/sambamba"))
-               #t))))))
+                          (string-append bin "/sambamba"))))))))
     (native-inputs
-     `(("python" ,python)))
+     (list python))
     (inputs
-     `(("ldc" ,ldc)
-       ("lz4" ,lz4)
-       ("zlib" ,zlib)))
+     (list ldc lz4 zlib))
     (home-page "https://github.com/biod/sambamba")
     (synopsis "Tools for working with SAM/BAM data")
     (description "Sambamba is a high performance modern robust and
@@ -8704,10 +9029,7 @@ sort, markdup, and depth.")
                (install-file "bin/Ritornello" bin)
                #t))))))
     (inputs
-     `(("samtools" ,samtools-0.1)
-       ("fftw" ,fftw)
-       ("boost" ,boost)
-       ("zlib" ,zlib)))
+     (list samtools-0.1 fftw boost zlib))
     (home-page "https://github.com/KlugerLab/Ritornello")
     (synopsis "Control-free peak caller for ChIP-seq data")
     (description "Ritornello is a ChIP-seq peak calling algorithm based on
@@ -8773,12 +9095,9 @@ with narrow binding events such as transcription factor ChIP-seq.")
                (install-file "trim_galore" bin)
                #t))))))
     (inputs
-     `(("gzip" ,gzip)
-       ("perl" ,perl)
-       ("pigz" ,pigz)
-       ("cutadapt" ,cutadapt)))
+     (list gzip perl pigz cutadapt))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://www.bioinformatics.babraham.ac.uk/projects/trim_galore/")
     (synopsis "Wrapper around Cutadapt and FastQC")
     (description "Trim Galore! is a wrapper script to automate quality and
@@ -8855,7 +9174,7 @@ exon-skipping scanner detection scheme.")
 (define-public phylip
   (package
     (name "phylip")
-    (version "3.696")
+    (version "3.697")
     (source
      (origin
        (method url-fetch)
@@ -8863,16 +9182,16 @@ exon-skipping scanner detection scheme.")
                            "download/phylip-" version ".tar.gz"))
        (sha256
         (base32
-         "01jar1rayhr2gba2pgbw49m56rc5z4p5wn3ds0m188hrlln4a2nd"))))
+         "1h8h0nafnlbqryswxgplx80k2044yhfz97jh13vsgzlaifqdh9ls"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
-       #:make-flags (list "-f" "Makefile.unx" "install")
+       #:make-flags (list "-f" "Makefile.unx" "CFLAGS=-fcommon" "install")
        #:parallel-build? #f             ; not supported
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'enter-dir
-           (lambda _ (chdir "src") #t))
+           (lambda _ (chdir "src")))
          (delete 'configure)
          (replace 'install
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -8881,8 +9200,7 @@ exon-skipping scanner detection scheme.")
                (mkdir-p target)
                (for-each (lambda (file)
                            (install-file file target))
-                         (find-files "../exe" ".*")))
-             #t)))))
+                         (find-files "../exe" ".*"))))))))
     (home-page "http://evolution.genetics.washington.edu/phylip/")
     (synopsis "Tools for inferring phylogenies")
     (description "PHYLIP (the PHYLogeny Inference Package) is a package of
@@ -8892,7 +9210,7 @@ programs for inferring phylogenies (evolutionary trees).")
 (define-public imp
   (package
     (name "imp")
-    (version "2.13.0")
+    (version "2.15.0")
     (source
      (origin
        (method url-fetch)
@@ -8900,12 +9218,10 @@ programs for inferring phylogenies (evolutionary trees).")
                            version "/download/imp-" version ".tar.gz"))
        (sha256
         (base32
-         "1z1vcpwbylixk0zywngg5iw0jv083jj1bqphi817jpg3fb9fx2jj"))))
+         "05hsrnkpkajppa3f45x4qsarnkj616hlby749zxg4is3bv4i6b5y"))))
     (build-system cmake-build-system)
     (arguments
-     `( ;; CMake 3.17 or newer is required for the CMAKE_TEST_ARGUMENTS used
-       ;; below to have an effect.
-       #:cmake ,cmake
+     `(#:tests? #false ; The test suite is notoriously fickle
        #:configure-flags
        (let ((disabled-tests
               '("expensive"                 ;exclude expensive tests
@@ -8913,7 +9229,9 @@ programs for inferring phylogenies (evolutionary trees).")
                 "IMP.parallel-test_sge.py"  ;fail in build container
                 ;; The following test fails non-reproducibly on
                 ;; an inexact numbers assertion.
-                "IMP.em-medium_test_local_fitting.py")))
+                "IMP.em-medium_test_local_fitting.py"
+                ;; The following test fails for unknown reasons
+                "IMP.foxs-add-missing-residues.py")))
          (list
           (string-append
            "-DCMAKE_CTEST_ARGUMENTS="
@@ -8925,22 +9243,19 @@ programs for inferring phylogenies (evolutionary trees).")
      `(("python" ,python-wrapper)
        ("swig" ,swig)))
     (inputs
-     `(("boost" ,boost)
-       ("cgal" ,cgal)
-       ("gsl" ,gsl)
-       ("hdf5" ,hdf5)
-       ("fftw" ,fftw)
-       ("eigen" ,eigen)
-       ;; Enabling MPI causes the build to use all the available memory and
-       ;; fail (tested on a machine with 32 GiB of RAM).
-       ;;("mpi" ,openmpi)
-       ("opencv" ,opencv)))
+     (list boost
+           cgal
+           gsl
+           hdf5
+           fftw
+           eigen
+           ;; Enabling MPI causes the build to use all the available memory and
+           ;; fail (tested on a machine with 32 GiB of RAM).
+           ;;("mpi" ,openmpi)
+           opencv))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)
-       ("python-pandas" ,python-pandas)
-       ("python-scikit-learn" ,python-scikit-learn)
-       ("python-networkx" ,python-networkx)))
+     (list python-numpy python-scipy python-pandas python-scikit-learn
+           python-networkx))
     (home-page "https://integrativemodeling.org")
     (synopsis "Integrative modeling platform")
     (description "IMP's broad goal is to contribute to a comprehensive
@@ -8955,66 +9270,72 @@ applications for tackling some common problems in a user-friendly way.")
     (license (list license:lgpl2.1+
                    license:gpl3+))))
 
+;; We use this seemingly arbitrary commit because of
+;; https://github.com/3DGenomes/TADbit/issues/371
 (define-public tadbit
-  (package
-    (name "tadbit")
-    (version "1.0.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/3DGenomes/TADbit")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0hqrlymh2a2bimcfdvlssy1x5h1lp3h1c5a7jj11hmcqczzqn3ni"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-problems-with-setup.py
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; Don't attempt to install the bash completions to
-             ;; the home directory.
-             (rename-file "extras/.bash_completion"
-                          "extras/tadbit")
-             (substitute* "setup.py"
-               (("\\(path.expanduser\\('~'\\)")
-                (string-append "(\""
-                               (assoc-ref outputs "out")
-                               "/etc/bash_completion.d\""))
-               (("extras/\\.bash_completion")
-                "extras/tadbit"))
-             #t))
-         (replace 'check
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (add-installed-pythonpath inputs outputs)
-             (invoke "python3" "test/test_all.py")
-             #t)))))
-    (native-inputs
-     `(("glib" ,glib "bin")             ;for gtester
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     ;; TODO: add Chimera for visualization
-     `(("imp" ,imp)
-       ("mcl" ,mcl)
-       ("python-future" ,python-future)
-       ("python-h5py" ,python-h5py)
-       ("python-scipy" ,python-scipy)
-       ("python-numpy" ,python-numpy)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-pysam" ,python-pysam)))
-    (home-page "https://3dgenomes.github.io/TADbit/")
-    (synopsis "Analyze, model, and explore 3C-based data")
-    (description
-     "TADbit is a complete Python library to deal with all steps to analyze,
+  (let ((commit "5c4c1ddaadfbaf7e6edc58173e46d801093bdc9b")
+        (revision "1"))
+    (package
+      (name "tadbit")
+      (version (git-version "1.0.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/3DGenomes/TADbit")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "17nwlvjgqpa7x6jgh56m3di61ynaz34kl1jamyv7r2a5rhfcbkla"))))
+      (build-system python-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-problems-with-setup.py
+             (lambda* (#:key outputs #:allow-other-keys)
+               (substitute* "src/test/Makefile"
+                 (("^CFLAGS=") "CFLAGS= -fcommon"))
+               
+               ;; Don't attempt to install the bash completions to
+               ;; the home directory.
+               (rename-file "extras/.bash_completion"
+                            "extras/tadbit")
+               (substitute* "setup.py"
+                 (("\\(path.expanduser\\('~'\\)")
+                  (string-append "(\""
+                                 (assoc-ref outputs "out")
+                                 "/etc/bash_completion.d\""))
+                 (("extras/\\.bash_completion")
+                  "extras/tadbit"))))
+           (replace 'check
+             (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+               (when tests?
+                 (add-installed-pythonpath inputs outputs)
+                 (invoke "python3" "test/test_all.py")))))))
+      (native-inputs
+       (list `(,glib "bin") ;for gtester
+             pkg-config))
+      (inputs
+       ;; TODO: add Chimera for visualization
+       (list imp
+             mcl
+             python-future
+             python-h5py
+             python-scipy
+             python-numpy
+             python-matplotlib
+             python-pysam))
+      (home-page "https://3dgenomes.github.io/TADbit/")
+      (synopsis "Analyze, model, and explore 3C-based data")
+      (description
+       "TADbit is a complete Python library to deal with all steps to analyze,
 model, and explore 3C-based data.  With TADbit the user can map FASTQ files to
 obtain raw interaction binned matrices (Hi-C like matrices), normalize and
 correct interaction matrices, identify and compare the so-called
 @dfn{Topologically Associating Domains} (TADs), build 3D models from the
 interaction matrices, and finally, extract structural properties from the
 models.  TADbit is complemented by TADkit for visualizing 3D models.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public kentutils
   (package
@@ -9152,9 +9473,7 @@ browser.")
                 (modules '((guix build utils)))
                 ;; Remove bundled Java library archives.
                 (snippet
-                 '(begin
-                    (for-each delete-file (find-files "lib" ".*"))
-                    #t))))
+                 '(for-each delete-file (find-files "lib" ".*")))))
       (build-system ant-build-system)
       (arguments
        `(#:tests? #f ; no tests included
@@ -9172,17 +9491,19 @@ browser.")
                    (("java") (which "java"))
                    (("\\$REALDIR/../lib/commons-cli-1.1.jar")
                     (search-input-file inputs
-                                       "/share/java/commons-cli.jar"))
+                                       (string-append "/lib/m2/commons-cli/commons-cli/"
+                                                      ,(package-version java-commons-cli)
+                                                      "/commons-cli-"
+                                                      ,(package-version java-commons-cli)
+                                                      ".jar")))
                    (("REALDIR=.*")
                     (string-append "REALDIR=" bin "\n")))
                  (install-file "README.txt" doc)
                  (install-file "bin/linux/fseq" bin)
                  (install-file "build~/fseq.jar" lib)
-                 (copy-recursively "lib" lib)
-                 #t))))))
+                 (copy-recursively "lib" lib)))))))
       (inputs
-       `(("perl" ,perl)
-         ("java-commons-cli" ,java-commons-cli)))
+       (list perl java-commons-cli))
       (home-page "https://fureylab.web.unc.edu/software/fseq/")
       (synopsis "Feature density estimator for high-throughput sequence tags")
       (description
@@ -9221,7 +9542,7 @@ Browser.")
            (lambda* (#:key inputs #:allow-other-keys)
              (let* ((file (assoc-ref inputs "plotly.js"))
                     (installed "plotly/plotly.js"))
-               (let ((minified (open-pipe* OPEN_READ "uglify-js" file)))
+               (let ((minified (open-pipe* OPEN_READ "uglifyjs" file)))
                  (call-with-output-file installed
                    (cut dump-port minified <>))))
              #t))
@@ -9268,9 +9589,7 @@ Browser.")
                                  "/bin/gunzip -c")))
                #t))))))
     (inputs
-     `(("gzip" ,gzip)
-       ("perl-carp" ,perl-carp)
-       ("perl-getopt-long" ,perl-getopt-long)))
+     (list gzip perl-carp perl-getopt-long))
     (native-inputs
      `(("plotly.js"
         ,(origin
@@ -9279,7 +9598,7 @@ Browser.")
                                "v1.39.4/dist/plotly.js"))
            (sha256
             (base32 "138mwsr4nf5qif4mrxx286mpnagxd1xwl6k8aidrjgknaqg88zyr"))))
-       ("uglify-js" ,uglify-js)))
+       ("uglifyjs" ,node-uglify-js)))
     (home-page "https://www.bioinformatics.babraham.ac.uk/projects/bismark/")
     (synopsis "Map bisulfite treated sequence reads and analyze methylation")
     (description "Bismark is a program to map bisulfite treated sequencing
@@ -9321,15 +9640,14 @@ straight away.  Its main features are:
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; there are no tests
-       #:make-flags '("CC=gcc")
+       #:make-flags '("CC=gcc" "CFLAGS=-fcommon -O3")
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
            (lambda _
              (substitute* "src/BFdriver.c"
                (("/bin/bash") (which "bash")))
-             (chdir "src")
-             #t))
+             (chdir "src")))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((tools '("baseml" "basemlg" "codeml"
@@ -9339,8 +9657,7 @@ straight away.  Its main features are:
                                            "/share/doc/paml")))
                (mkdir-p bin)
                (for-each (lambda (file) (install-file file bin)) tools)
-               (copy-recursively "../doc" docdir)
-               #t))))))
+               (copy-recursively "../doc" docdir)))))))
     (home-page "http://abacus.gene.ucl.ac.uk/software/paml.html")
     (synopsis "Phylogentic analysis by maximum likelihood")
     (description "PAML (for Phylogentic Analysis by Maximum Likelihood)
@@ -9381,11 +9698,9 @@ using nucleotide or amino-acid sequence data.")
                            (install-file exe bin))
                          exes)))))))
     (inputs
-     `(("htslib" ,htslib)
-       ("ncurses" ,ncurses)
-       ("zlib" ,zlib)))
+     (list htslib ncurses zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.bioinf.uni-leipzig.de/Software/segemehl")
     (synopsis "Map short sequencer reads to reference genomes")
     (description "Segemehl is software to map short sequencer reads to
@@ -9434,9 +9749,7 @@ output of segemehl is a SAM or BAM formatted alignment file.")
                (("include_directories\\(\\.\\./ext/htslib\\)") ""))
              #t)))))
     (inputs
-     `(("hdf5" ,hdf5)
-       ("htslib" ,htslib-1.9)
-       ("zlib" ,zlib)))
+     (list hdf5 htslib-1.9 zlib))
     (home-page "https://pachterlab.github.io/kallisto/")
     (synopsis "Near-optimal RNA-Seq quantification")
     (description
@@ -9486,31 +9799,29 @@ dependency like SeqAn.")
                (base32
                 "1amcc5hqvsl42hg4x19bi9vy47cl874s0lw1fmi0hwsdk9i8c03v"))
               (modules '((guix build utils)))
+              ;; Delete bundled headers for eigen3.
               (snippet
-               '(begin
-                  ;; Delete bundled headers for eigen3.
-                  (delete-file-recursively "include/eigen3/")
-                  #t))))
+               '(delete-file-recursively "include/eigen3/"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
-       (list (string-append "-DBOOST_INCLUDEDIR="
-                            (assoc-ref %build-inputs "boost")
-                            "/include/")
-             (string-append "-DBOOST_LIBRARYDIR="
-                            (assoc-ref %build-inputs "boost")
-                            "/lib/")
-             (string-append "-DBoost_LIBRARIES="
-                            "-lboost_iostreams "
-                            "-lboost_filesystem "
-                            "-lboost_system "
-                            "-lboost_thread "
-                            "-lboost_timer "
-                            "-lboost_chrono "
-                            "-lboost_program_options")
-             "-DBoost_FOUND=TRUE"
-             ;; Don't download RapMap---we already have it!
-             "-DFETCHED_RAPMAP=1")
+       ,#~(list (string-append "-DBOOST_INCLUDEDIR="
+                               #$(this-package-input "boost")
+                               "/include/")
+                (string-append "-DBOOST_LIBRARYDIR="
+                               #$(this-package-input "boost")
+                               "/lib/")
+                (string-append "-DBoost_LIBRARIES="
+                               "-lboost_iostreams "
+                               "-lboost_filesystem "
+                               "-lboost_system "
+                               "-lboost_thread "
+                               "-lboost_timer "
+                               "-lboost_chrono "
+                               "-lboost_program_options")
+                "-DBoost_FOUND=TRUE"
+                ;; Don't download RapMap---we already have it!
+                "-DFETCHED_RAPMAP=1")
        ;; Tests must be run after installation and the location of the test
        ;; data file must be overridden.  But the tests fail.  It looks like
        ;; they are not really meant to be run.
@@ -9521,30 +9832,22 @@ dependency like SeqAn.")
          (add-after 'unpack 'do-not-look-for-boost
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "CMakeLists.txt"
-               (("find_package\\(Boost 1\\.53\\.0") "#"))
-             #t))
+               (("find_package\\(Boost 1\\.53\\.0") "#"))))
          (add-after 'unpack 'do-not-assign-to-macro
            (lambda _
              (substitute* "include/spdlog/details/format.cc"
-               (("const unsigned CHAR_WIDTH = 1;") ""))
-             #t))
+               (("const unsigned CHAR_WIDTH = 1;") ""))))
          (add-after 'unpack 'prepare-rapmap
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((src "external/install/src/rapmap/")
                    (include "external/install/include/rapmap/")
                    (rapmap (assoc-ref inputs "rapmap")))
-               (mkdir-p "/tmp/rapmap")
-               (invoke "tar" "xf"
-                       (assoc-ref inputs "rapmap")
-                       "-C" "/tmp/rapmap"
-                       "--strip-components=1")
                (mkdir-p src)
                (mkdir-p include)
                (for-each (lambda (file)
                            (install-file file src))
-                         (find-files "/tmp/rapmap/src" "\\.(c|cpp)"))
-               (copy-recursively "/tmp/rapmap/include" include))
-             #t))
+                         (find-files (string-append rapmap "/src") "\\.(c|cpp)"))
+               (copy-recursively (string-append rapmap "/include") include))))
          (add-after 'unpack 'use-system-libraries
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* '("src/SailfishIndexer.cpp"
@@ -9606,14 +9909,13 @@ dependency like SeqAn.")
                     (snippet
                      '(begin (delete-file-recursively "include/spdlog")
                              (for-each delete-file '("include/xxhash.h"
-                                                     "src/xxhash.c"))
-                             #t))))
+                                                     "src/xxhash.c"))))))
        ("libdivsufsort" ,libdivsufsort)
        ("libgff" ,libgff)
-       ("tbb" ,tbb)
+       ("tbb" ,tbb-2020)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.cs.cmu.edu/~ckingsf/software/sailfish/")
     (synopsis "Mapping-based isoform quantification from RNA-Seq reads")
     (description "Sailfish is a tool for genomic transcript quantification
@@ -9667,7 +9969,7 @@ The following file formats are supported:
 (define-public salmon
   (package
     (name "salmon")
-    (version "1.4.0")
+    (version "1.6.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -9676,7 +9978,7 @@ The following file formats are supported:
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1di7y2s8cjr9480lngcmaz3wcabc1lpkyanzbhir1nkhcjmj70h4"))
+                "1wb5wl0rc77svbwq6zvak5h7pf9acw3di0vz5i3gqyhg5l6qd736"))
               (modules '((guix build utils)))
               (snippet
                ;; Delete bundled headers for eigen3.
@@ -9684,14 +9986,15 @@ The following file formats are supported:
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
-       (list (string-append "-Dlibgff_DIR="
-                            (assoc-ref %build-inputs "libgff") "/lib")
-             "-Dlibgff_FOUND=TRUE"
-             "-DTBB_FOUND=TRUE"
-             "-DTBB_VERSION=2020.3"
-             "-DTBB_LIBRARIES=tbb -ltbbmalloc"
-             "-DFETCHED_PUFFERFISH=TRUE"
-             "-DUSE_SHARED_LIBS=TRUE")
+       ,#~(list (string-append "-Dlibgff_DIR="
+                               #$(this-package-input "libgff") "/lib")
+                "-DCMAKE_CXX_FLAGS=\"-DHAVE_NUMERIC_LIMITS128=1\""
+                "-Dlibgff_FOUND=TRUE"
+                "-DTBB_FOUND=TRUE"
+                #$(string-append "-DTBB_VERSION=" (package-version tbb-2020))
+                "-DTBB_LIBRARIES=tbb -ltbbmalloc"
+                "-DFETCHED_PUFFERFISH=TRUE"
+                "-DUSE_SHARED_LIBS=TRUE")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'prepare-pufferfish
@@ -9781,13 +10084,13 @@ The following file formats are supported:
                         (file-name (git-file-name "pufferfish" version))
                         (sha256
                          (base32
-                          "0qb4a2nl1d59qasr17sslgxnkjd5kbk5mns4cjshrmsvkrqp995n"))))
-       ("tbb" ,tbb)
+                          "0jakgpbanl6cs23x3g26iab54p7zylcf9v8vc32ps57smp8wql52"))))
+       ("tbb" ,tbb-2020)
        ("libstadenio-for-salmon" ,libstadenio-for-salmon)
        ("xz" ,xz)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/COMBINE-lab/salmon")
     (synopsis "Quantification from RNA-seq reads using lightweight alignments")
     (description "Salmon is a program to produce highly-accurate,
@@ -9820,12 +10123,9 @@ variational inference.")
            (lambda _
              (invoke "pytest" "tests"))))))
     (propagated-inputs
-     `(("python-h5py" ,python-h5py)
-       ("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-scipy" ,python-scipy)))
+     (list python-h5py python-numpy python-pandas python-scipy))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/linnarsson-lab/loompy")
     (synopsis "Work with .loom files for single-cell RNA-seq data")
     (description "The loom file format is an efficient format for very large
@@ -9835,6 +10135,46 @@ graphs.  This library makes it easy to work with @file{.loom} files for
 single-cell RNA-seq data.")
     (license license:bsd-3)))
 
+(define-public python-biothings-client
+  (package
+    (name "python-biothings-client")
+    (version "0.2.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "biothings_client" version))
+       (sha256
+        (base32 "0bccs37d5saxn5xsd2rfpkrnc5a120xs3ibizai66fgvp1vxbnc4"))))
+    (build-system python-build-system)
+    (arguments `(#:tests? #false)) ; require internet access
+    (propagated-inputs (list python-requests))
+    (home-page "https://github.com/biothings/biothings_client.py")
+    (synopsis "Python client for BioThings API services")
+    (description "This package provides a Python client for BioThings
+API services.")
+    (license license:bsd-3)))
+
+(define-public python-mygene
+  (package
+    (name "python-mygene")
+    (version "3.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "mygene" version))
+       (sha256
+        (base32 "1snszwdgfygchxshcbry3b5pbcw3g1isp8dw46razxccqaxwlag7"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-biothings-client))
+    (home-page "https://github.com/biothings/mygene.py")
+    (synopsis "Python Client for MyGene.Info services.")
+    (description "MyGene.Info provides simple-to-use REST web services
+to query/retrieve gene annotation data.  It's designed with simplicity
+and performance emphasized.  Mygene is a Python wrapper to access
+MyGene.Info services.")
+    (license license:bsd-3)))
+
 ;; We cannot use the latest commit because it requires Java 9.
 (define-public java-forester
   (let ((commit "86b07efe302d5094b42deed9260f719a4c4ac2e6")
@@ -9902,8 +10242,7 @@ single-cell RNA-seq data.")
            ;; There is no install target
            (replace 'install (install-jars ".")))))
       (propagated-inputs
-       `(("java-commons-codec" ,java-commons-codec)
-         ("java-openchart2" ,java-openchart2)))
+       (list java-commons-codec java-openchart2))
       (home-page "https://sites.google.com/site/cmzmasek/home/software/forester")
       (synopsis "Phylogenomics libraries for Java")
       (description "Forester is a collection of Java libraries for
@@ -9975,8 +10314,7 @@ reading, writing, and exporting phylogenetic trees.")
          ;; There is no install target
          (replace 'install (install-jars ".")))))
     (propagated-inputs
-     `(("java-commons-codec" ,java-commons-codec)
-       ("java-openchart2" ,java-openchart2)))
+     (list java-commons-codec java-openchart2))
     ;; The source archive does not contain the resources.
     (native-inputs
      `(("phyloxml.xsd"
@@ -10044,13 +10382,10 @@ reading, writing, and exporting phylogenetic trees.")
                                "build/test-classes")
              #t)))))
     (propagated-inputs
-     `(("java-log4j-api" ,java-log4j-api)
-       ("java-log4j-core" ,java-log4j-core)
-       ("java-slf4j-api" ,java-slf4j-api)
-       ("java-slf4j-simple" ,java-slf4j-simple)))
+     (list java-log4j-api java-log4j-core java-slf4j-api
+           java-slf4j-simple))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (home-page "https://biojava.org")
     (synopsis "Core libraries of Java framework for processing biological data")
     (description "BioJava is a project dedicated to providing a Java framework
@@ -10085,15 +10420,14 @@ This package provides the core libraries.")
                                "build/test-classes")
              #t)))))
     (propagated-inputs
-     `(("java-log4j-api" ,java-log4j-api)
-       ("java-log4j-core" ,java-log4j-core)
-       ("java-slf4j-api" ,java-slf4j-api)
-       ("java-slf4j-simple" ,java-slf4j-simple)
-       ("java-biojava-core" ,java-biojava-core)
-       ("java-forester" ,java-forester)))
-    (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-log4j-api
+           java-log4j-core
+           java-slf4j-api
+           java-slf4j-simple
+           java-biojava-core
+           java-forester))
+    (native-inputs
+     (list java-junit java-hamcrest-core))
     (home-page "https://biojava.org")
     (synopsis "Biojava interface to the forester phylogenomics library")
     (description "The phylo module provides a biojava interface layer to the
@@ -10121,16 +10455,15 @@ forester phylogenomics library for constructing phylogenetic trees.")))
                                "build/test-classes")
              #t)))))
     (propagated-inputs
-     `(("java-log4j-api" ,java-log4j-api)
-       ("java-log4j-core" ,java-log4j-core)
-       ("java-slf4j-api" ,java-slf4j-api)
-       ("java-slf4j-simple" ,java-slf4j-simple)
-       ("java-biojava-core" ,java-biojava-core)
-       ("java-biojava-phylo" ,java-biojava-phylo)
-       ("java-forester" ,java-forester)))
-    (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-log4j-api
+           java-log4j-core
+           java-slf4j-api
+           java-slf4j-simple
+           java-biojava-core
+           java-biojava-phylo
+           java-forester))
+    (native-inputs
+     (list java-junit java-hamcrest-core))
     (home-page "https://biojava.org")
     (synopsis "Biojava API for genetic sequence alignment")
     (description "The alignment module of BioJava provides an API that
@@ -10179,15 +10512,14 @@ contains
                                "build/test-classes")
              #t)))))
     (propagated-inputs
-     `(("java-log4j-api" ,java-log4j-api)
-       ("java-log4j-core" ,java-log4j-core)
-       ("java-slf4j-api" ,java-slf4j-api)
-       ("java-slf4j-simple" ,java-slf4j-simple)
-       ("java-biojava-core" ,java-biojava-core-4.0)
-       ("java-forester" ,java-forester-1.005)))
-    (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-log4j-api
+           java-log4j-core
+           java-slf4j-api
+           java-slf4j-simple
+           java-biojava-core-4.0
+           java-forester-1.005))
+    (native-inputs
+     (list java-junit java-hamcrest-core))
     (home-page "https://biojava.org")
     (synopsis "Biojava interface to the forester phylogenomics library")
     (description "The phylo module provides a biojava interface layer to the
@@ -10215,16 +10547,15 @@ forester phylogenomics library for constructing phylogenetic trees.")))
                                "build/test-classes")
              #t)))))
     (propagated-inputs
-     `(("java-log4j-api" ,java-log4j-api)
-       ("java-log4j-core" ,java-log4j-core)
-       ("java-slf4j-api" ,java-slf4j-api)
-       ("java-slf4j-simple" ,java-slf4j-simple)
-       ("java-biojava-core" ,java-biojava-core-4.0)
-       ("java-biojava-phylo" ,java-biojava-phylo-4.0)
-       ("java-forester" ,java-forester-1.005)))
-    (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-log4j-api
+           java-log4j-core
+           java-slf4j-api
+           java-slf4j-simple
+           java-biojava-core-4.0
+           java-biojava-phylo-4.0
+           java-forester-1.005))
+    (native-inputs
+     (list java-junit java-hamcrest-core))
     (home-page "https://biojava.org")
     (synopsis "Biojava API for genetic sequence alignment")
     (description "The alignment module of BioJava provides an API that
@@ -10254,8 +10585,7 @@ contains
        (snippet
         '(begin
            (for-each delete-file (find-files "jar/lib" "\\.jar$"))
-           (delete-file-recursively "3rdParty")
-           #t))))
+           (delete-file-recursively "3rdParty")))))
     (build-system ant-build-system)
     (arguments
      `(#:tests? #f                      ; test data are not included
@@ -10264,9 +10594,9 @@ contains
        #:source-dir "public/src/"
        #:jdk ,icedtea-8
        #:make-flags
-       (list (string-append "-Dpicard.executable.dir="
-                            (assoc-ref %build-inputs "java-picard")
-                            "/share/java/"))
+       (list ,#~(string-append "-Dpicard.executable.dir="
+                               #$(this-package-input "java-picard")
+                               "/share/java/"))
        #:modules ((ice-9 match)
                   (srfi srfi-1)
                   (guix build utils)
@@ -10292,8 +10622,7 @@ contains
                (for-each (lambda (jar)
                            (symlink jar (string-append "jar/lib/" (basename jar))))
                          (append-map (lambda (dir) (find-files dir "\\.jar$"))
-                                     dirs)))
-	     #t))
+                                     dirs)))))
          ;; There is no installation target
          (replace 'install
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -10336,8 +10665,7 @@ contains
                                  scripts)
                  (("^java") (which "java"))
                  (("jar_deploy_dir=.*")
-                  (string-append "jar_deploy_dir=" share "\n"))))
-             #t))
+                  (string-append "jar_deploy_dir=" share "\n"))))))
          ;; FIXME: We do this after stripping jars because we don't want it to
          ;; copy all these jars and strip them.  We only want to install
          ;; links.  Arguably, this is a problem with the ant-build-system.
@@ -10349,8 +10677,7 @@ contains
                (for-each (lambda (jar)
                            (symlink (readlink jar)
                                     (string-append lib (basename jar))))
-                         (find-files "jar/lib" "\\.jar$")))
-             #t)))))
+                         (find-files "jar/lib" "\\.jar$"))))))))
     (inputs
      `(("jdk" ,icedtea-8)
        ("java-picard" ,java-picard-2.10.3)
@@ -10369,8 +10696,7 @@ contains
        ("java-simple-xml" ,java-simple-xml)
        ("java-snakeyaml" ,java-snakeyaml)))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("java-testng" ,java-testng)))
+     (list unzip java-testng))
     (home-page "http://mccarrolllab.com/dropseq/")
     (synopsis "Tools for Drop-seq analyses")
     (description "Drop-seq is a technology to enable biologists to
@@ -10389,7 +10715,8 @@ once.  This package provides tools to perform Drop-seq analyses.")
                                   "/pigx_rnaseq-" version ".tar.gz"))
               (sha256
                (base32
-                "1ja3bda1appxrzbfy7wp7khy30mm7lic8xbq3gkbpc5bld3as9cm"))))
+                "1ja3bda1appxrzbfy7wp7khy30mm7lic8xbq3gkbpc5bld3as9cm"))
+              (patches (search-patches "pigx-rnaseq-no-citeproc.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:parallel-tests? #f             ; not supported
@@ -10402,6 +10729,9 @@ once.  This package provides tools to perform Drop-seq analyses.")
              (substitute* "Makefile.in"
                (("^  tests/test_multiqc/test.sh") "")
                (("^  test.sh") ""))))
+         (add-before 'bootstrap 'autoreconf
+           (lambda _
+             (invoke "autoreconf" "-vif")))
          (add-before 'check 'set-timezone
            ;; The readr package is picky about timezones.
            (lambda* (#:key inputs #:allow-other-keys)
@@ -10410,43 +10740,42 @@ once.  This package provides tools to perform Drop-seq analyses.")
                      (search-input-directory inputs
                                              "share/zoneinfo")))))))
     (inputs
-     `(("coreutils" ,coreutils)
-       ("sed" ,sed)
-       ("gzip" ,gzip)
-       ("snakemake" ,snakemake)
-       ("multiqc" ,multiqc)
-       ("star" ,star-for-pigx)
-       ("hisat2" ,hisat2)
-       ("fastp" ,fastp)
-       ("htseq" ,htseq)
-       ("samtools" ,samtools)
-       ("r-minimal" ,r-minimal)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggpubr" ,r-ggpubr)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-gprofiler2" ,r-gprofiler2)
-       ("r-deseq2" ,r-deseq2)
-       ("r-dt" ,r-dt)
-       ("r-knitr" ,r-knitr)
-       ("r-pheatmap" ,r-pheatmap)
-       ("r-corrplot" ,r-corrplot)
-       ("r-reshape2" ,r-reshape2)
-       ("r-plotly" ,r-plotly)
-       ("r-scales" ,r-scales)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)
-       ("r-crosstalk" ,r-crosstalk)
-       ("r-tximport" ,r-tximport)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-rjson" ,r-rjson)
-       ("salmon" ,salmon)
-       ("pandoc" ,pandoc)
-       ("pandoc-citeproc" ,pandoc-citeproc)
-       ("python-wrapper" ,python-wrapper)
-       ("python-deeptools" ,python-deeptools)
-       ("python-pyyaml" ,python-pyyaml)))
-    (native-inputs
-     `(("tzdata" ,tzdata)))
+     (list coreutils
+           sed
+           gzip
+           snakemake
+           multiqc
+           star-for-pigx
+           hisat2
+           fastp
+           htseq
+           samtools
+           r-minimal
+           r-rmarkdown
+           r-ggplot2
+           r-ggpubr
+           r-ggrepel
+           r-gprofiler2
+           r-deseq2
+           r-dt
+           r-knitr
+           r-pheatmap
+           r-corrplot
+           r-reshape2
+           r-plotly
+           r-scales
+           r-summarizedexperiment
+           r-crosstalk
+           r-tximport
+           r-rtracklayer
+           r-rjson
+           salmon
+           pandoc
+           python-wrapper
+           python-deeptools
+           python-pyyaml))
+    (native-inputs
+     (list tzdata automake autoconf))
     (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
     (synopsis "Analysis pipeline for RNA sequencing experiments")
     (description "PiGX RNAseq is an analysis pipeline for preprocessing and
@@ -10460,7 +10789,7 @@ expression report comparing samples in an easily configurable manner.")
 (define-public pigx-chipseq
   (package
     (name "pigx-chipseq")
-    (version "0.0.52")
+    (version "0.0.53")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_chipseq/"
@@ -10468,61 +10797,67 @@ expression report comparing samples in an easily configurable manner.")
                                   "/pigx_chipseq-" version ".tar.gz"))
               (sha256
                (base32
-                "097cvc8kr3r1nq0sgjpirzmixwjl074qp4qq3sx4ngfqi06af6r9"))))
+                "0c6npx35sszycf059w1x1k4k9hq1qqxny0i4p57q1188czr4561h"))
+              (patches (search-patches "pigx-chipseq-no-citeproc.patch"))))
     (build-system gnu-build-system)
-    ;; parts of the tests rely on access to the network
-    (arguments '(#:tests? #f))
-    (inputs
-     `(("grep" ,grep)
-       ("coreutils" ,coreutils)
-       ("r-minimal" ,r-minimal)
-       ("r-argparser" ,r-argparser)
-       ("r-biocparallel" ,r-biocparallel)
-       ("r-biostrings" ,r-biostrings)
-       ("r-chipseq" ,r-chipseq)
-       ("r-corrplot" ,r-corrplot)
-       ("r-data-table" ,r-data-table)
-       ("r-deseq2" ,r-deseq2)
-       ("r-dplyr" ,r-dplyr)
-       ("r-dt" ,r-dt)
-       ("r-genomation" ,r-genomation)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-gprofiler2" ,r-gprofiler2)
-       ("r-heatmaply" ,r-heatmaply)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-pheatmap" ,r-pheatmap)
-       ("r-plotly" ,r-plotly)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-rsamtools" ,r-rsamtools)
-       ("r-rsubread" ,r-rsubread)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("python-wrapper" ,python-wrapper)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-magic" ,python-magic)
-       ("python-xlrd" ,python-xlrd)
-       ("trim-galore" ,trim-galore)
-       ("macs" ,macs)
-       ("multiqc" ,multiqc)
-       ("perl" ,perl)
-       ("pandoc" ,pandoc)
-       ("pandoc-citeproc" ,pandoc-citeproc)
-       ("fastqc" ,fastqc)
-       ("bowtie" ,bowtie)
-       ("idr" ,idr)
-       ("snakemake" ,snakemake)
-       ("samtools" ,samtools)
-       ("bedtools" ,bedtools)
-       ("kentutils" ,kentutils)))
-    (native-inputs
-     `(("python-pytest" ,python-pytest)))
+    (arguments
+     `(#:tests? #f ; parts of the tests rely on access to the network
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'bootstrap 'autoreconf
+           (lambda _
+             (invoke "autoreconf" "-vif"))))))
+    (inputs
+     (list grep
+           coreutils
+           r-minimal
+           r-argparser
+           r-biocparallel
+           r-biostrings
+           r-chipseq
+           r-corrplot
+           r-data-table
+           r-deseq2
+           r-dplyr
+           r-dt
+           r-genomation
+           r-genomicalignments
+           r-genomicranges
+           r-ggplot2
+           r-ggrepel
+           r-gprofiler2
+           r-heatmaply
+           r-hexbin
+           r-htmlwidgets
+           r-jsonlite
+           r-pheatmap
+           r-plotly
+           r-rmarkdown
+           r-rsamtools
+           r-rsubread
+           r-rtracklayer
+           r-s4vectors
+           r-stringr
+           r-tibble
+           r-tidyr
+           python-wrapper
+           python-pyyaml
+           python-magic
+           python-xlrd
+           trim-galore
+           macs
+           multiqc
+           perl
+           pandoc
+           fastqc
+           bowtie
+           idr
+           snakemake
+           samtools
+           bedtools
+           kentutils))
+    (native-inputs
+     (list autoconf automake python-pytest))
     (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
     (synopsis "Analysis pipeline for ChIP sequencing experiments")
     (description "PiGX ChIPseq is an analysis pipeline for preprocessing, peak
@@ -10537,7 +10872,7 @@ in an easily configurable manner.")
 (define-public pigx-bsseq
   (package
     (name "pigx-bsseq")
-    (version "0.1.5")
+    (version "0.1.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_bsseq/"
@@ -10545,7 +10880,8 @@ in an easily configurable manner.")
                                   "/pigx_bsseq-" version ".tar.gz"))
               (sha256
                (base32
-                "05al5dacfp1vf1x3cq20jhd6w4xj5vaxslzaka6yrpg0av8sh3k3"))))
+                "1dipikph0xdr8fp0h1flpafcrg60y4aabljg8fl1v92j3gxdggmw"))
+              (patches (search-patches "pigx-bsseq-no-citeproc.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(;; TODO: tests currently require 12+GB of RAM.  See
@@ -10553,6 +10889,9 @@ in an easily configurable manner.")
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
+         (add-before 'bootstrap 'autoreconf
+           (lambda _
+             (invoke "autoreconf" "-vif")))
          (add-before 'check 'set-timezone
            ;; The readr package is picky about timezones.
            (lambda* (#:key inputs #:allow-other-keys)
@@ -10561,40 +10900,39 @@ in an easily configurable manner.")
                      (search-input-directory inputs
                                              "share/zoneinfo")))))))
     (native-inputs
-     `(("tzdata" ,tzdata)))
-    (inputs
-     `(("coreutils" ,coreutils)
-       ("sed" ,sed)
-       ("grep" ,grep)
-       ("r-minimal" ,r-minimal)
-       ("r-annotationhub" ,r-annotationhub)
-       ("r-dt" ,r-dt)
-       ("r-genomation" ,r-genomation)
-       ("r-ggbio" ,r-ggbio)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-methylkit" ,r-methylkit)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-bookdown" ,r-bookdown)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggbio" ,r-ggbio)
-       ("pandoc" ,pandoc)
-       ("pandoc-citeproc" ,pandoc-citeproc)
-       ("python-wrapper" ,python-wrapper)
-       ("python-pyyaml" ,python-pyyaml)
-       ("snakemake" ,snakemake)
-       ("bismark" ,bismark)
-       ("bowtie" ,bowtie)
-       ("bwa-meth" ,bwa-meth)
-       ("fastqc" ,fastqc)
-       ("methyldackel" ,methyldackel)
-       ("multiqc" ,multiqc)
-       ("trim-galore" ,trim-galore)
-       ("cutadapt" ,cutadapt)
-       ("samblaster" ,samblaster)
-       ("samtools" ,samtools)))
+     (list tzdata automake autoconf))
+    (inputs
+     (list coreutils
+           sed
+           grep
+           r-minimal
+           r-annotationhub
+           r-dt
+           r-genomation
+           r-ggbio
+           r-ggrepel
+           r-matrixstats
+           r-methylkit
+           r-reshape2
+           r-rtracklayer
+           r-rmarkdown
+           r-bookdown
+           r-ggplot2
+           r-ggbio
+           pandoc
+           python-wrapper
+           python-pyyaml
+           snakemake
+           bismark
+           bowtie
+           bwa-meth
+           fastqc
+           methyldackel
+           multiqc
+           trim-galore
+           cutadapt
+           samblaster
+           samtools))
     (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
     (synopsis "Bisulfite sequencing pipeline from fastq to methylation reports")
     (description "PiGx BSseq is a data processing pipeline for raw fastq read
@@ -10614,8 +10952,17 @@ methylation and segmentation.")
                                   "/pigx_scrnaseq-" version ".tar.gz"))
               (sha256
                (base32
-                "1h5mcxzwj3cidlkvy9ly5wmi48vwfsjf8dxjfirknqxr9a92hwlx"))))
+                "1h5mcxzwj3cidlkvy9ly5wmi48vwfsjf8dxjfirknqxr9a92hwlx"))
+              (patches (search-patches "pigx-scrnaseq-no-citeproc.patch"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'bootstrap 'autoreconf
+           (lambda _
+             (invoke "autoreconf" "-vif"))))))
+    (native-inputs
+     (list automake autoconf))
     (inputs
      `(("coreutils" ,coreutils)
        ("perl" ,perl)
@@ -10630,7 +10977,6 @@ methylation and segmentation.")
        ("python-numpy" ,python-numpy)
        ("python-loompy" ,python-loompy)
        ("pandoc" ,pandoc)
-       ("pandoc-citeproc" ,pandoc-citeproc)
        ("samtools" ,samtools)
        ("snakemake" ,snakemake)
        ("star" ,star-for-pigx)
@@ -10672,7 +11018,7 @@ based methods.")
 (define-public pigx-sars-cov2-ww
   (package
     (name "pigx-sars-cov2-ww")
-    (version "0.0.3")
+    (version "0.0.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_sarscov2_ww/"
@@ -10680,35 +11026,49 @@ based methods.")
                                   "/pigx_sars-cov2-ww-" version ".tar.gz"))
               (sha256
                (base32
-                "1hhdbwsnl0d37lrmisw5hr630xr8s41qvxflm05anh11rj8n22yw"))))
+                "0axnmz4d8zgir888mc0cilcq4m3v41xmjmpp3w3444lciwnxydvs"))
+              (patches (search-patches "pigx-sars-cov2-ww-no-citeproc.patch"))))
     (build-system gnu-build-system)
-    (inputs
-     `(("bash-minimal" ,bash-minimal)
-       ("bwa" ,bwa)
-       ("ensembl-vep" ,ensembl-vep)
-       ("fastqc" ,fastqc)
-       ("kraken2" ,kraken2)
-       ("krona-tools" ,krona-tools)
-       ("lofreq" ,lofreq)
-       ("multiqc" ,multiqc)
-       ("prinseq" ,prinseq)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-wrapper" ,python-wrapper)
-       ("r-base64url" ,r-base64url)
-       ("r-dplyr" ,r-dplyr)
-       ("r-dt" ,r-dt)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-magrittr" ,r-magrittr)
-       ("r-minimal" ,r-minimal)
-       ("r-plotly" ,r-plotly)
-       ("r-qpcr" ,r-qpcr)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-stringr" ,r-stringr)
-       ("r-tidyr" ,r-tidyr)
-       ("samtools" ,samtools)
-       ("snakemake" ,snakemake)
-       ("wget" ,wget)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'bootstrap 'autoreconf
+           (lambda _
+             (invoke "autoreconf" "-vif"))))))
+    (native-inputs
+     (list automake autoconf))
+    (inputs
+     (list bash-minimal
+           bbmap
+           bedtools
+           bwa
+           ensembl-vep
+           fastp
+           fastqc
+           ivar
+           kraken2
+           krona-tools
+           lofreq
+           multiqc
+           prinseq
+           python-pyyaml
+           python-wrapper
+           r-base64url
+           r-dplyr
+           r-dt
+           r-ggplot2
+           r-magrittr
+           r-minimal
+           r-plotly
+           r-qpcr
+           r-r-utils
+           r-reshape2
+           r-rmarkdown
+           r-stringr
+           r-tidyr
+           samtools
+           snakemake
+           wget))
     (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
     (synopsis "Analysis pipeline for wastewater sequencing")
     (description "PiGx SARS-CoV-2 is a pipeline for analysing data from
@@ -10732,11 +11092,7 @@ variant abundance over time and location.")
                 "1i5njdy1clj5ncw45d16p7mwmqvb1ilikl9n797pxklc3f4s7mq7"))))
     (build-system gnu-build-system)
     (inputs
-     `(("python" ,python)
-       ("pigx-bsseq" ,pigx-bsseq)
-       ("pigx-chipseq" ,pigx-chipseq)
-       ("pigx-rnaseq" ,pigx-rnaseq)
-       ("pigx-scrnaseq" ,pigx-scrnaseq)))
+     (list python pigx-bsseq pigx-chipseq pigx-rnaseq pigx-scrnaseq))
     (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
     (synopsis "Analysis pipelines for genomics")
     (description "PiGx is a collection of genomics pipelines.  It includes the
@@ -10778,7 +11134,7 @@ HTML reports with interesting findings about your samples.")
              (install-file "Genrich" (string-append (assoc-ref outputs "out") "/bin"))
              #t)))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://github.com/jsh58/Genrich")
     (synopsis "Detecting sites of genomic enrichment")
     (description "Genrich is a peak-caller for genomic enrichment
@@ -10788,11 +11144,12 @@ enrichment.")
     (license license:expat)))
 
 (define-public mantis
-  (let ((commit "4ffd171632c2cb0056a86d709dfd2bf21bc69b84")
-        (revision "1"))
+  ;; This is an arbitrary commit as a year has passed since 0.1 was tagged.
+  (let ((commit "b6979a269172a45201c8366680d8b889f889432b")
+        (revision "2"))
     (package
       (name "mantis")
-      (version (git-version "0" revision commit))
+      (version (git-version "0.1" revision commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -10801,13 +11158,15 @@ enrichment.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0iqbr0dhmlc8mzpirmm2s4pkzkwdgrcx50yx6cv3wlr2qi064p55"))))
+                  "0dq8a785hnaxx5kq757m5czs8xpcjpcph1inq2nm8h6zfvqyj8xs"))))
       (build-system cmake-build-system)
-      (arguments '(#:tests? #f)) ; there are none
+      (arguments
+       '(#:tests? #f ; there are none
+         #:configure-flags (list "-DNH=ON"))) ; do not use SSE4.2 instructions
       (inputs
-       `(("sdsl-lite" ,sdsl-lite)
-         ("openssl" ,openssl)
-         ("zlib" ,zlib)))
+       (list sdsl-lite openssl zlib))
+      (native-inputs
+       (list gcc-7))
       (home-page "https://github.com/splatlab/mantis")
       (synopsis "Large-scale sequence-search index data structure")
       (description "Mantis is a space-efficient data structure that can be
@@ -10842,9 +11201,9 @@ analyses in addition to large-scale sequence-level searches.")
       (arguments
        `(#:tests? #f                    ; requires a 1.4G test file
          #:make-flags
-         (list (string-append "SAMTOOLS_DIR="
-                              (assoc-ref %build-inputs "samtools")
-                              "/lib/"))
+         ,#~(list (string-append "SAMTOOLS_DIR="
+                                 #$(this-package-input "samtools")
+                                 "/lib/"))
          #:phases
          (modify-phases %standard-phases
            (replace 'configure
@@ -10853,19 +11212,16 @@ analyses in addition to large-scale sequence-level searches.")
                  (("-I \\$\\{SAMTOOLS_DIR\\}")
                   (string-append "-I" (assoc-ref inputs "samtools")
                                  "/include/samtools"))
-                 (("-lz ") "-lz -lpthread "))
-               #t))
+                 (("-lz ") "-lz -lpthread "))))
            (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
                (for-each (lambda (tool)
                            (install-file tool
                                          (string-append (assoc-ref outputs "out")
                                                         "/bin")))
-                         '("j_count" "b_count" "sjcount"))
-               #t)))))
+                         '("j_count" "b_count" "sjcount")))))))
       (inputs
-       `(("samtools" ,samtools-0.1)
-         ("zlib" ,zlib)))
+       (list samtools-0.1 zlib))
       (home-page "https://github.com/pervouchine/sjcount-full/")
       (synopsis "Annotation-agnostic splice junction counting pipeline")
       (description "Sjcount is a utility for fast quantification of splice
@@ -10876,7 +11232,7 @@ version does count multisplits.")
 (define-public minimap2
   (package
     (name "minimap2")
-    (version "2.18")
+    (version "2.23")
     (source
      (origin
        (method url-fetch)
@@ -10885,7 +11241,7 @@ version does count multisplits.")
                            "minimap2-" version ".tar.bz2"))
        (sha256
         (base32
-         "1d7fvdqcqd6wns875rkyd7f34ii15gc9l1sivd2wbbpcb0fi0mbs"))))
+         "00ngbz1swcgxk5apx9dz5xkh1z8abdpysx5lc7w8fbrfxp41w0j0"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; there are none
@@ -10940,7 +11296,7 @@ version does count multisplits.")
                           out ,version))))
              #t)))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://lh3.github.io/minimap2/")
     (synopsis "Pairwise aligner for genomic and spliced nucleotide sequences")
     (description "Minimap2 is a versatile sequence alignment program that
@@ -10971,9 +11327,9 @@ cases include:
               "1a05p7rkmxa6qhm108na8flzj2v45jab06drk59kzk1ip2sgvzqq"))))
    (build-system python-build-system)
    (native-inputs
-    `(("python-cython" ,python-cython)))
+    (list python-cython))
    (inputs
-    `(("zlib" ,zlib)))
+    (list zlib))
    (home-page "https://github.com/lh3/minimap2")
    (synopsis "Python binding for minimap2")
    (description "This package provides a convenient interface to minimap2,
@@ -10996,7 +11352,7 @@ sequences.")
               "04dv5wv8bhsw1imxwyd438bnn9kby7svp44nbcz8lsadzjjci5gs"))))
    (build-system gnu-build-system)
    (inputs
-    `(("zlib" ,zlib)))
+    (list zlib))
    (arguments
     `(#:tests? #f ; There are no tests.
       #:phases
@@ -11054,10 +11410,9 @@ Thus the per-base error rate is similar to the raw input reads.")
                (install-file "Bandage" (string-append out "/bin"))
                #t))))))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+     (list qtbase-5 qtsvg))
     (native-inputs
-     `(("imagemagick" ,imagemagick)))
+     (list imagemagick))
     (home-page "https://rrwick.github.io/Bandage/")
     (synopsis
      "Bioinformatics Application for Navigating De novo Assembly Graphs Easily")
@@ -11093,10 +11448,9 @@ contigs alone.")
     ;; The test suite attempts to execute ../test-driver, which does not exist.
     (arguments '(#:tests? #false))
     (propagated-inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (native-inputs
-     `(("gcc" ,gcc-10)                   ;Code has C++17 requirements
-       ("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://gitlab.com/german.tischler/libmaus2")
     (synopsis "Collection of data structures and algorithms useful for bioinformatics")
     (description "libmaus2 is a collection of data structures and
@@ -11134,14 +11488,12 @@ and many lower level support classes.
      ;; The test suite attempts to execute ../test-driver, which does not exist.
      `(#:tests? #false
        #:configure-flags
-       (list (string-append "--with-libmaus2="
-                            (assoc-ref %build-inputs "libmaus2")))))
+       ,#~(list (string-append "--with-libmaus2="
+                               #$(this-package-input "libmaus2")))))
     (inputs
-     `(("libmaus2" ,libmaus2)
-       ("xerces-c" ,xerces-c)))
+     (list libmaus2 xerces-c))
     (native-inputs
-     `(("gcc" ,gcc-10)                  ;Code has C++17 requirements
-       ("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://gitlab.com/german.tischler/biobambam2")
     (synopsis "Tools for processing BAM files")
     (description "This package contains some tools for processing BAM files
@@ -11182,23 +11534,23 @@ including:
          "0jhjn3ilb057hbf6yzrihj13ifxxs32y7nkby8l3lkm28dg4p97h"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-annotationdbi" ,r-annotationdbi)
-       ("r-annotationhub" ,r-annotationhub)
-       ("r-biomart" ,r-biomart)
-       ("r-data-table" ,r-data-table)
-       ("r-dbi" ,r-dbi)
-       ("r-genomicfeatures" ,r-genomicfeatures)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-hash" ,r-hash)
-       ("r-iranges" ,r-iranges)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rmysql" ,r-rmysql)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-stringr" ,r-stringr)
-       ("r-summarizedexperiment" ,r-summarizedexperiment)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-annotationdbi
+           r-annotationhub
+           r-biomart
+           r-data-table
+           r-dbi
+           r-genomicfeatures
+           r-genomicranges
+           r-ggplot2
+           r-hash
+           r-iranges
+           r-rcolorbrewer
+           r-rmysql
+           r-s4vectors
+           r-stringr
+           r-summarizedexperiment))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/BIMSBbioinfo/ciRcus")
     (synopsis "Annotation, analysis and visualization of circRNA data")
     (description "Circus is an R package for annotation, analysis and
@@ -11311,9 +11663,7 @@ conversions, region filtering, FASTA sequence extraction and more.")
                              "unmapped2anchors.py")))
                #t)))))
       (inputs
-       `(("python2" ,python-2)
-         ("python2-pysam" ,python2-pysam)
-         ("python2-numpy" ,python2-numpy)))
+       (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
@@ -11364,7 +11714,7 @@ in RNA-seq data.")
                   (string-append "FAST_TSNE_SCRIPT_DIR = \"" out "\"\n")))
                (install-file "fast_tsne.R" share)))))))
     (inputs
-     `(("fftw" ,fftw)))
+     (list fftw))
     (home-page "https://github.com/KlugerLab/FIt-SNE")
     (synopsis "Fast Fourier Transform-accelerated interpolation-based t-SNE")
     (description "@dfn{t-Stochastic Neighborhood Embedding} (t-SNE) is a
@@ -11387,7 +11737,7 @@ implementation differs in these ways:
 (define-public python-scanpy
   (package
     (name "python-scanpy")
-    (version "1.8.1")
+    (version "1.8.2")
     (source
      (origin
        (method git-fetch)
@@ -11397,7 +11747,7 @@ implementation differs in these ways:
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0w1qmv3djqi8q0sn5hv34ivzs157fwjjb9nflfnagnhpxmw8vx5g"))))
+         "14zax23lqinv7xyv3491vpl3ydi38naiwaxg5mkfs5zk2406cqdr"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -11418,70 +11768,72 @@ implementation differs in these ways:
                                    wheel (string-append "--prefix=" out)))
                          (find-files "dist" "\\.whl$")))))
          (replace 'check
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; These tests require Internet access.
-             (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_score_genes.py")
-             (delete-file "scanpy/tests/test_highly_variable_genes.py")
-
-             ;; TODO: I can't get the plotting tests to work, even with Xvfb.
-             (delete-file "scanpy/tests/test_embedding_plots.py")
-             (delete-file "scanpy/tests/test_preprocessing.py")
-             (delete-file "scanpy/tests/test_read_10x.py")
-
-             ;; TODO: these fail with TypingError and "Use of unsupported
-             ;; NumPy function 'numpy.split'".
-             (delete-file "scanpy/tests/test_metrics.py")
-
-             ;; The following tests requires 'scanorama', which isn't
-             ;; packaged yet.
-             (delete-file "scanpy/tests/external/test_scanorama_integrate.py")
-
-             (setenv "PYTHONPATH"
-                     (string-append (getcwd) ":"
-                                    (assoc-ref inputs "python-anndata:source") ":"
-                                    (getenv "PYTHONPATH")))
-             (invoke "pytest" "-vv"
-                     "-k"
-                     ;; Plot tests that fail.
-                     (string-append "not test_dotplot_matrixplot_stacked_violin"
-                                    " and not test_violin_without_raw"
-                                    " and not test_correlation"
-                                    " and not test_scatterplots"
-                                    " and not test_scatter_embedding_add_outline_vmin_vmax_norm"
-                                    " and not test_paga"
-                                    " and not test_paga_compare"
-
-                                    ;; These try to connect to the network
-                                    " and not test_plot_rank_genes_groups_gene_symbols"
-                                    " and not test_pca_chunked"
-                                    " and not test_pca_sparse"
-                                    " and not test_pca_reproducible")))))))
+           (lambda* (#:key tests? inputs #:allow-other-keys)
+             (when tests?
+               ;; These tests require Internet access.
+               (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_score_genes.py")
+               (delete-file "scanpy/tests/test_highly_variable_genes.py")
+
+               ;; TODO: I can't get the plotting tests to work, even with Xvfb.
+               (delete-file "scanpy/tests/test_embedding_plots.py")
+               (delete-file "scanpy/tests/test_preprocessing.py")
+               (delete-file "scanpy/tests/test_read_10x.py")
+
+               ;; TODO: these fail with TypingError and "Use of unsupported
+               ;; NumPy function 'numpy.split'".
+               (delete-file "scanpy/tests/test_metrics.py")
+
+               ;; The following tests requires 'scanorama', which isn't
+               ;; packaged yet.
+               (delete-file "scanpy/tests/external/test_scanorama_integrate.py")
+
+               (setenv "PYTHONPATH"
+                       (string-append (getcwd) ":"
+                                      (assoc-ref inputs "python-anndata:source") ":"
+                                      (getenv "GUIX_PYTHONPATH")))
+               (invoke "pytest" "-vv"
+                       "-k"
+                       ;; Plot tests that fail.
+                       (string-append "not test_dotplot_matrixplot_stacked_violin"
+                                      " and not test_violin_without_raw"
+                                      " and not test_correlation"
+                                      " and not test_scatterplots"
+                                      " and not test_scatter_embedding_add_outline_vmin_vmax_norm"
+                                      " and not test_paga"
+                                      " and not test_paga_compare"
+                                      " and not test_clustermap"
+
+                                      ;; These try to connect to the network
+                                      " and not test_plot_rank_genes_groups_gene_symbols"
+                                      " and not test_pca_chunked"
+                                      " and not test_pca_sparse"
+                                      " and not test_pca_reproducible"))))))))
     (propagated-inputs
-     `(("python-anndata" ,python-anndata)
-       ("python-h5py" ,python-h5py)
-       ("python-igraph" ,python-igraph)
-       ("python-joblib" ,python-joblib)
-       ("python-legacy-api-wrap" ,python-legacy-api-wrap)
-       ("python-louvain" ,python-louvain-0.6)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-natsort" ,python-natsort)
-       ("python-networkx" ,python-networkx)
-       ("python-numba" ,python-numba)
-       ("python-packaging" ,python-packaging)
-       ("python-pandas" ,python-pandas)
-       ("python-patsy" ,python-patsy)
-       ("python-scikit-learn" ,python-scikit-learn)
-       ("python-scipy" ,python-scipy)
-       ("python-seaborn" ,python-seaborn)
-       ("python-sinfo" ,python-sinfo)
-       ("python-statsmodels" ,python-statsmodels)
-       ("python-tables" ,python-tables)
-       ("python-pytoml" ,python-pytoml)
-       ("python-tqdm" ,python-tqdm)
-       ("python-umap-learn" ,python-umap-learn)))
+     (list python-anndata
+           python-h5py
+           python-igraph
+           python-joblib
+           python-legacy-api-wrap
+           python-louvain-0.6
+           python-matplotlib
+           python-natsort
+           python-networkx
+           python-numba
+           python-packaging
+           python-pandas
+           python-patsy
+           python-scikit-learn
+           python-scipy
+           python-seaborn
+           python-sinfo
+           python-statsmodels
+           python-tables
+           python-pytoml
+           python-tqdm
+           python-umap-learn))
     (native-inputs
      `(;; This package needs anndata.tests, which is not installed.
        ("python-anndata:source" ,(package-source python-anndata))
@@ -11511,13 +11863,21 @@ million cells.")
          "1jbsh01f57zj4bhvjr3jh4532zznqd6nccmgrl3qi9gnhkf7c4y0"))))
     (build-system python-build-system)
     (arguments
-     `(#:tests? #f)) ; TODO: Enable after migration to scikit-learn.
+     `(#:tests? #f ; no tests are included
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'do-not-fail-to-find-sklearn
+           (lambda _
+             ;; XXX: I have no idea why it cannot seem to find sklearn.
+             (substitute* "setup.py"
+               (("'sklearn'") "")))))))
     (propagated-inputs
-     `(("python-annoy" ,python-annoy)
-       ("python-cython" ,python-cython)
-       ("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)
-       ("python-umap-learn" ,python-umap-learn)))
+     (list python-annoy
+           python-cython
+           python-numpy
+           python-scikit-learn
+           python-scipy
+           python-umap-learn))
     (home-page "https://github.com/Teichlab/bbknn")
     (synopsis "Batch balanced KNN")
     (description "BBKNN is a batch effect removal tool that can be directly
@@ -11545,14 +11905,14 @@ altering the counts or PCA space.")
          "08vk0x6v5c5n7afgd5pcjhsvb424absypxy22hw1cm1n9kirbi77"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-biopython" ,python-biopython)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-pytest" ,python-pytest)
-       ("python-scikit-learn" ,python-scikit-learn)
-       ("python-seaborn" ,python-seaborn)
-       ("python-tqdm" ,python-tqdm)))
+     (list python-biopython
+           python-matplotlib
+           python-numpy
+           python-pandas
+           python-pytest
+           python-scikit-learn
+           python-seaborn
+           python-tqdm))
     (home-page "https://github.com/MrOlm/drep")
     (synopsis "De-replication of microbial genomes assembled from multiple samples")
     (description
@@ -11565,14 +11925,14 @@ set.")
 (define-public instrain
   (package
     (name "instrain")
-    (version "1.5.2")
+    (version "1.5.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "inStrain" version))
        (sha256
         (base32
-         "0ykqlpf6yz4caihsaz3ys00cyvlr7wdj4s9a8rh56q5r8xf80ic0"))))
+         "05w1lw75x4lwkzg4qpi055g7hdjp9rnc4ksbxg2hfgksq9djk0hx"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -11585,24 +11945,24 @@ set.")
                (("from job_utils")
                 "from .job_utils")))))))
     (inputs
-     `(("python-biopython" ,python-biopython)
-       ("python-boto3" ,python-boto3)
-       ("python-h5py" ,python-h5py)
-       ("python-lmfit" ,python-lmfit)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-networkx" ,python-networkx)
-       ("python-numba" ,python-numba)
-       ("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-psutil" ,python-psutil)
-       ("python-pysam" ,python-pysam)
-       ("python-scikit-learn" ,python-scikit-learn)
-       ("python-seaborn" ,python-seaborn)
-       ("python-tqdm" ,python-tqdm)
-       ;; drep is needed for deprecated plot utilities
-       ("python-drep" ,python-drep)))
-    (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-biopython-1.73
+           python-boto3
+           python-h5py
+           python-lmfit
+           python-matplotlib
+           python-networkx
+           python-numba
+           python-numpy
+           python-pandas
+           python-psutil
+           python-pysam
+           python-scikit-learn
+           python-seaborn
+           python-tqdm
+           ;; drep is needed for deprecated plot utilities
+           python-drep))
+    (native-inputs
+     (list python-pytest))
     (home-page "https://github.com/MrOlm/inStrain")
     (synopsis "Calculation of strain-level metrics")
     (description
@@ -11694,9 +12054,9 @@ reference transcripts provided in a annotation file (also in GTF/GFF3 format).
            (base32 "0rgv6q5fl4x5d74n6p5wvdna6zmbdbqpb4jqqh6vq3670gn08xad"))))
       (build-system gnu-build-system)
       (arguments
-       '(#:tests? #f ; No tests.
-         #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
-                            "DESTDIR=\"\"")
+       `(#:tests? #f                    ; No tests.
+         #:make-flags
+         ,#~(list (string-append "PREFIX=" #$output) "DESTDIR=\"\"")
          #:phases
          (modify-phases %standard-phases
            (delete 'configure)))) ; There is no configure phase.
@@ -11733,9 +12093,9 @@ allowing the insertion of arbitrary types into the tree.")
              (setenv "PY_IGNORE_IMPORTMISMATCH" "1")
              #t)))))
     (propagated-inputs
-     `(("python-sortedcontainers" ,python-sortedcontainers)))
+     (list python-sortedcontainers))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/chaimleib/intervaltree")
     (synopsis "Editable interval tree data structure")
     (description
@@ -11775,7 +12135,7 @@ bound.")
                                       "/bin"))
              #t)))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://github.com/4dn-dcic/pairix")
     (synopsis "Support for querying pairix-indexed bgzipped text files")
     (description
@@ -11796,7 +12156,7 @@ bgzipped text file that contains a pair of genomic coordinates per line.")
          "038xi3a6zvrxbyyfpp64ka8pcjgsdq4fgw9cl5lpxbvmm1bzzw2q"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "http://mattshirley.com")
     (synopsis "Random access to fasta subsequences")
     (description
@@ -11844,29 +12204,26 @@ fasta subsequences.")
              (when tests?
                (invoke "python" "-m" "pytest" "-v")))))))
     (propagated-inputs
-     `(("python-asciitree" ,python-asciitree)
-       ("python-biopython" ,python-biopython)
-       ("python-click" ,python-click)
-       ("python-cytoolz" ,python-cytoolz)
-       ("python-dask" ,python-dask)
-       ("python-h5py" ,python-h5py)
-       ("python-multiprocess" ,python-multiprocess)
-       ("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-pyfaidx" ,python-pyfaidx)
-       ("python-pypairix" ,python-pypairix)
-       ("python-pysam" ,python-pysam)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-scipy" ,python-scipy)
-       ("python-simplejson" ,python-simplejson)
-       ("python-six" ,python-six)
-       ("python-sparse" ,python-sparse)))
-    (native-inputs
-     `(("python-codecov" ,python-codecov)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-flake8" ,python-pytest-flake8)))
+     (list python-asciitree
+           python-biopython
+           python-click
+           python-cytoolz-for-cooler
+           python-dask
+           python-h5py
+           python-multiprocess
+           python-numpy
+           python-pandas
+           python-pyfaidx
+           python-pypairix
+           python-pysam
+           python-pyyaml
+           python-scipy
+           python-simplejson
+           python-six
+           python-sparse))
+    (native-inputs
+     (list python-codecov python-mock python-pytest python-pytest-cov
+           python-pytest-flake8))
     ;; Almost all the projects of the Mirnylab are moved under Open2C umbrella
     (home-page "https://github.com/open2c/cooler")
     (synopsis "Sparse binary format for genomic interaction matrices")
@@ -11900,14 +12257,14 @@ such as Hi-C contact matrices.")
              (when tests?
                (invoke "python" "-m" "pytest" "-v")))))))
     (propagated-inputs
-     `(("python-cooler" ,python-cooler)
-       ("python-intervaltree" ,python-intervaltree)
-       ("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-scipy" ,python-scipy)
-       ("python-tables" ,python-tables)))
-    (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-cooler
+           python-intervaltree
+           python-numpy
+           python-pandas
+           python-scipy
+           python-tables))
+    (native-inputs
+     (list python-pytest))
     (home-page "https://github.com/deeptools/HiCMatrix/")
     (synopsis "HiCMatrix class for HiCExplorer and pyGenomeTracks")
     (description
@@ -11940,21 +12297,21 @@ the HiCExplorer and pyGenomeTracks packages.")
                (("==") ">="))
              #t)))))
     (propagated-inputs
-     `(("python-biopython" ,python-biopython)
-       ("python-configparser" ,python-configparser)
-       ("python-cooler" ,python-cooler)
-       ("python-future" ,python-future)
-       ("python-intervaltree" ,python-intervaltree)
-       ("python-jinja2" ,python-jinja2)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-pybigwig" ,python-pybigwig)
-       ("python-pysam" ,python-pysam)
-       ("python-scipy" ,python-scipy)
-       ("python-six" ,python-six)
-       ("python-tables" ,python-tables)
-       ("python-unidecode" ,python-unidecode)))
+     (list python-biopython
+           python-configparser
+           python-cooler
+           python-future
+           python-intervaltree
+           python-jinja2
+           python-matplotlib
+           python-numpy
+           python-pandas
+           python-pybigwig
+           python-pysam
+           python-scipy
+           python-six
+           python-tables
+           python-unidecode))
     (home-page "https://hicexplorer.readthedocs.io")
     (synopsis "Process, analyze and visualize Hi-C data")
     (description
@@ -11991,17 +12348,17 @@ genomic scores), long range contacts and the visualization of viewpoints.")
                 "matplotlib >=3.1.1"))
              #t)))))
     (propagated-inputs
-     `(("python-future" ,python-future)
-       ("python-gffutils" ,python-gffutils)
-       ("python-hicmatrix" ,python-hicmatrix)
-       ("python-intervaltree" ,python-intervaltree)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-numpy" ,python-numpy)
-       ("python-pybigwig" ,python-pybigwig)
-       ("python-pysam" ,python-pysam)
-       ("python-tqdm" ,python-tqdm)))
-    (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-future
+           python-gffutils
+           python-hicmatrix
+           python-intervaltree
+           python-matplotlib
+           python-numpy
+           python-pybigwig
+           python-pysam
+           python-tqdm))
+    (native-inputs
+     (list python-pytest))
     (home-page "https://pygenometracks.readthedocs.io")
     (synopsis "Program and library to plot beautiful genome browser tracks")
     (description
@@ -12025,10 +12382,7 @@ pyGenomeTracks can make plots with or without Hi-C data.")
     (build-system python-build-system)
     (arguments `(#:tests? #false)) ; there are none
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-scipy" ,python-scipy)
-       ("python-scikit-learn" ,python-scikit-learn)))
+     (list python-numpy python-pandas python-scipy python-scikit-learn))
     (home-page "https://github.com/hiclib/iced")
     (synopsis "ICE normalization")
     (description "This is a package for normalizing Hi-C contact counts
@@ -12062,11 +12416,8 @@ efficiently.")
                        (list "test_data/hic2cool_0.4.2_single_res.cool"
                              "test_data/hic2cool_0.7.0_multi_res.mcool")))))))
     (propagated-inputs
-     `(("python-cooler" ,python-cooler)
-       ("python-h5py" ,python-h5py)
-       ("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-scipy" ,python-scipy)))
+     (list python-cooler python-h5py python-numpy python-pandas
+           python-scipy))
     (home-page "https://github.com/4dn-dcic/hic2cool")
     (synopsis "Converter for .hic and .cool files")
     (description
@@ -12091,11 +12442,7 @@ matrices.")
     (properties `((upstream-name . "poRe")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bit64" ,r-bit64)
-       ("r-data-table" ,r-data-table)
-       ("r-rhdf5" ,r-rhdf5)
-       ("r-shiny" ,r-shiny)
-       ("r-svdialogs" ,r-svdialogs)))
+     (list r-bit64 r-data-table r-rhdf5 r-shiny r-svdialogs))
     (home-page "https://sourceforge.net/projects/rpore/")
     (synopsis "Visualize Nanopore sequencing data")
     (description
@@ -12122,15 +12469,15 @@ sequencing data.")
                   "0w8bsq5myiwkfhh83nm6is5ichiyvwa1axx2szvxnzq39x6knf66"))))
       (build-system r-build-system)
       (propagated-inputs
-       `(("r-annotationdbi" ,r-annotationdbi)
-         ("r-assertthat" ,r-assertthat)
-         ("r-biobase" ,r-biobase)
-         ("r-biocmanager" ,r-biocmanager)
-         ("r-digest" ,r-digest)
-         ("r-pkgmaker" ,r-pkgmaker)
-         ("r-plyr" ,r-plyr)
-         ("r-reshape2" ,r-reshape2)
-         ("r-stringr" ,r-stringr)))
+       (list r-annotationdbi
+             r-assertthat
+             r-biobase
+             r-biocmanager
+             r-digest
+             r-pkgmaker
+             r-plyr
+             r-reshape2
+             r-stringr))
       (home-page "https://github.com/renozao/xbioc/")
       (synopsis "Extra base functions for Bioconductor")
       (description "This package provides extra utility functions to perform
@@ -12155,12 +12502,12 @@ provided by Bioconductor packages.")
                   "128syf9v39gk0z3ip000qpsjbg6l1siyq6c8b0hz41dzg5achyb3"))))
       (build-system r-build-system)
       (propagated-inputs
-       `(("r-formula" ,r-formula)
-         ("r-ggplot2" ,r-ggplot2)
-         ("r-pkgmaker" ,r-pkgmaker)
-         ("r-plyr" ,r-plyr)
-         ("r-rngtools" ,r-rngtools)
-         ("r-scales" ,r-scales)))
+       (list r-formula
+             r-ggplot2
+             r-pkgmaker
+             r-plyr
+             r-rngtools
+             r-scales))
       (home-page "https://github.com/shenorrLab/csSAM/")
       (synopsis "Cell type-specific statistical analysis of microarray")
       (description "This package implements the method csSAM that computes
@@ -12186,23 +12533,23 @@ SAM.")
                   "1prw13wa20f7wlc3gkkls66n1kxz8d28qrb8icfqdwdnnv8w5qg8"))))
       (build-system r-build-system)
       (propagated-inputs
-       `(("r-abind" ,r-abind)
-         ("r-annotationdbi" ,r-annotationdbi)
-         ("r-biobase" ,r-biobase)
-         ("r-cssam" ,r-cssam)
-         ("r-dplyr" ,r-dplyr)
-         ("r-e1071" ,r-e1071)
-         ("r-edger" ,r-edger)
-         ("r-ggplot2" ,r-ggplot2)
-         ("r-nmf" ,r-nmf)
-         ("r-openxlsx" ,r-openxlsx)
-         ("r-pkgmaker" ,r-pkgmaker)
-         ("r-plyr" ,r-plyr)
-         ("r-preprocesscore" ,r-preprocesscore)
-         ("r-rngtools" ,r-rngtools)
-         ("r-scales" ,r-scales)
-         ("r-stringr" ,r-stringr)
-         ("r-xbioc" ,r-xbioc)))
+       (list r-abind
+             r-annotationdbi
+             r-biobase
+             r-cssam
+             r-dplyr
+             r-e1071
+             r-edger
+             r-ggplot2
+             r-nmf
+             r-openxlsx
+             r-pkgmaker
+             r-plyr
+             r-preprocesscore
+             r-rngtools
+             r-scales
+             r-stringr
+             r-xbioc))
       (home-page "https://github.com/shenorrLab/bseqsc")
       (synopsis "Deconvolution of bulk sequencing experiments using single cell data")
       (description "BSeq-sc is a bioinformatics analysis pipeline that
@@ -12266,13 +12613,10 @@ Barcoding Kit or Rapid Barcoding Kit.")
       ;; requires python >=2.7, <3.0, and the same for python dependencies
       (arguments `(#:python ,python-2))
       (inputs
-       `(("hdf5" ,hdf5)))
+       (list hdf5))
       (propagated-inputs
-       `(("python-dateutil" ,python2-dateutil)
-         ("python-h5py" ,python2-h5py)
-         ("python-matplotlib" ,python2-matplotlib)
-         ("python-pandas" ,python2-pandas)
-         ("python-seaborn" ,python2-seaborn)))
+       (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
@@ -12340,14 +12684,14 @@ of the Hierarchical Data Format (HDF5) standard.")
                 (list "JAMM.sh" "SignalGenerator.sh")))
              #t)))))
     (inputs
-     `(("bash" ,bash)
-       ("coreutils" ,coreutils)
-       ("gawk" ,gawk)
-       ("perl" ,perl)
-       ("r-minimal" ,r-minimal)
-       ;;("r-parallel" ,r-parallel)
-       ("r-signal" ,r-signal)
-       ("r-mclust" ,r-mclust)))
+     (list bash
+           coreutils
+           gawk
+           perl
+           r-minimal
+           ;;("r-parallel" ,r-parallel)
+           r-signal
+           r-mclust))
     (home-page "https://github.com/mahmoudibrahim/JAMM")
     (synopsis "Peak finder for NGS datasets")
     (description
@@ -12360,17 +12704,18 @@ datasets.")
 (define-public ngless
   (package
     (name "ngless")
-    (version "1.1.0")
+    (version "1.3.0")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://gitlab.com/ngless/ngless.git")
+             (url "https://github.com/ngless-toolkit/ngless.git")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1wim8wpqyff080dfcazynrmjwqas38m24m0v350w245mmhrapdma"))))
+         "0pb9f6b0yk9p4cdwiym8r190q1bcdiwvc7i2s6rw54qgi8r3g6pj"))
+       (patches (search-patches "ngless-unliftio.patch"))))
     (build-system haskell-build-system)
     (arguments
      `(#:haddock? #f ; The haddock phase fails with: NGLess/CmdArgs.hs:20:1:
@@ -12411,69 +12756,99 @@ datasets.")
                         (string-append bin "ngless-" ,version "-bwa"))
                #t))))))
     (inputs
-     `(("prodigal" ,prodigal)
-       ("bwa" ,bwa)
-       ("samtools" ,samtools)
-       ("minimap2" ,minimap2)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-async" ,ghc-async)
-       ("ghc-atomic-write" ,ghc-atomic-write)
-       ("ghc-bytestring-lexing" ,ghc-bytestring-lexing)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-conduit-algorithms" ,ghc-conduit-algorithms)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-configurator" ,ghc-configurator)
-       ("ghc-convertible" ,ghc-convertible)
-       ("ghc-data-default" ,ghc-data-default)
-       ("ghc-diagrams-core" ,ghc-diagrams-core)
-       ("ghc-diagrams-lib" ,ghc-diagrams-lib)
-       ("ghc-diagrams-svg" ,ghc-diagrams-svg)
-       ("ghc-double-conversion" ,ghc-double-conversion)
-       ("ghc-edit-distance" ,ghc-edit-distance)
-       ("ghc-either" ,ghc-either)
-       ("ghc-errors" ,ghc-errors)
-       ("ghc-extra" ,ghc-extra)
-       ("ghc-filemanip" ,ghc-filemanip)
-       ("ghc-file-embed" ,ghc-file-embed)
-       ("ghc-gitrev" ,ghc-gitrev)
-       ("ghc-hashtables" ,ghc-hashtables)
-       ("ghc-http-conduit" ,ghc-http-conduit)
-       ("ghc-inline-c" ,ghc-inline-c)
-       ("ghc-inline-c-cpp" ,ghc-inline-c-cpp)
-       ("ghc-intervalmap" ,ghc-intervalmap)
-       ("ghc-missingh" ,ghc-missingh)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-regex" ,ghc-regex)
-       ("ghc-safe" ,ghc-safe)
-       ("ghc-safeio" ,ghc-safeio)
-       ("ghc-strict" ,ghc-strict)
-       ("ghc-tar" ,ghc-tar)
-       ("ghc-tar-conduit" ,ghc-tar-conduit)
-       ("ghc-unliftio" ,ghc-unliftio)
-       ("ghc-unliftio-core" ,ghc-unliftio-core)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-yaml" ,ghc-yaml)
-       ("ghc-zlib" ,ghc-zlib)))
+     (list prodigal
+           bwa
+           samtools
+           minimap2
+           ghc-aeson
+           ghc-ansi-terminal
+           ghc-async
+           ghc-atomic-write
+           ghc-bytestring-lexing
+           ghc-conduit
+           ghc-conduit-algorithms
+           ghc-conduit-extra
+           ghc-configurator
+           ghc-convertible
+           ghc-data-default
+           ghc-diagrams-core
+           ghc-diagrams-lib
+           ghc-diagrams-svg
+           ghc-double-conversion
+           ghc-edit-distance
+           ghc-either
+           ghc-errors
+           ghc-extra
+           ghc-filemanip
+           ghc-file-embed
+           ghc-gitrev
+           ghc-hashtables
+           ghc-http-conduit
+           ghc-inline-c
+           ghc-inline-c-cpp
+           ghc-int-interval-map
+           ghc-missingh
+           ghc-optparse-applicative
+           ghc-regex
+           ghc-safe
+           ghc-safeio
+           ghc-strict
+           ghc-tar
+           ghc-tar-conduit
+           ghc-unliftio
+           ghc-unliftio-core
+           ghc-vector
+           ghc-yaml
+           ghc-zlib))
     (propagated-inputs
-     `(("r-r6" ,r-r6)
-       ("r-hdf5r" ,r-hdf5r)
-       ("r-iterators" ,r-iterators)
-       ("r-itertools" ,r-itertools)
-       ("r-matrix" ,r-matrix)))
-    (native-inputs
-     `(("ghc-hpack" ,ghc-hpack)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit",ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-       ("ghc-test-framework-th" ,ghc-test-framework-th)))
-    (home-page "https://gitlab.com/ngless/ngless")
+     (list r-r6 r-hdf5r r-iterators r-itertools r-matrix))
+    (native-inputs
+     (list ghc-hpack
+           ghc-quickcheck
+           ghc-test-framework
+           ghc-test-framework-hunit
+           ghc-test-framework-quickcheck2
+           ghc-test-framework-th))
+    (home-page "https://ngless.embl.de/")
     (synopsis "DSL for processing next-generation sequencing data")
     (description "Ngless is a domain-specific language for
 @dfn{next-generation sequencing} (NGS) data processing.")
     (license license:expat)))
 
+(define-public ghc-int-interval-map
+  (let ((commit "678763de7fe6d7fa3f1c44b32d18ce58670270f4")
+        (revision "1"))
+    (package
+      (name "ghc-int-interval-map")
+      (version "0.0.0.0")
+      (source
+        (origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/ngless-toolkit/interval-to-int.git")
+                 (commit commit)))
+           (file-name (git-file-name name version))
+          (sha256 (base32 "0fd728b5if89vj5j4f9y7k0b2xv2ycz5a21iy15wbdcf5bhim7i8"))))
+      (build-system haskell-build-system)
+      (inputs
+        (list ghc-either ghc-primitive ghc-vector ghc-vector-algorithms))
+      (native-inputs
+        (list ghc-hedgehog
+              ghc-tasty
+              ghc-tasty-hedgehog
+              ghc-tasty-hunit
+              ghc-tasty-quickcheck
+              ghc-tasty-th))
+      (home-page "https://github.com/luispedro/interval-to-int#readme")
+      (synopsis "Interval map structure in Haskell")
+      (description "An interval map structure that is optimized for low
+memory (each interval is represented by about 3 words + whatever the
+cargo is) and has semantics that are appropriate for genomic intervals
+(namely, intervals can overlap and queries will return all matches
+together). It also designed to be used in two phases: a construction
+phase + query phase).")
+      (license license:expat))))
+
 (define-public filtlong
   ;; The recommended way to install is to clone the git repository
   ;; https://github.com/rrwick/Filtlong#installation
@@ -12636,17 +13011,17 @@ polymorphisms) and indels with respect to a reference genome and more.")
         (base32 "0g2f78k68yglmj4fsfmgs8idqv3di9aj53fg0ld0hqljg8chhh82"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-biopython" ,python-biopython)
-       ("python-future" ,python-future)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-numpy" ,python-numpy)
-       ("python-reportlab" ,python-reportlab)
-       ("python-pandas" ,python-pandas)
-       ("python-pysam" ,python-pysam)
-       ("python-pyfaidx" ,python-pyfaidx)
-       ("python-scipy" ,python-scipy)
-       ;; R packages
-       ("r-dnacopy" ,r-dnacopy)))
+     (list python-biopython
+           python-future
+           python-matplotlib
+           python-numpy
+           python-reportlab
+           python-pandas
+           python-pysam
+           python-pyfaidx
+           python-scipy
+           ;; R packages
+           r-dnacopy))
     (home-page "https://cnvkit.readthedocs.org/")
     (synopsis "Copy number variant detection from targeted DNA sequencing")
     (description
@@ -12660,7 +13035,7 @@ Torrent.")
 (define-public python-pyfit-sne
   (package
     (name "python-pyfit-sne")
-    (version "1.0.1")
+    (version "1.2.1")
     (source
      (origin
        (method git-fetch)
@@ -12669,14 +13044,15 @@ Torrent.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "13wh3qkzs56azmmgnxib6xfr29g7xh09sxylzjpni5j0pp0rc5qw"))))
+        (base32 "0f3n7wcmxbnqiisgimhpa6p5chqpb1hj69i6rpg2hv2671i8nn68"))))
     (build-system python-build-system)
+    (arguments '(#:tests? #false)) ; there are none
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (inputs
-     `(("fftw" ,fftw)))
+     (list fftw))
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (home-page "https://github.com/KlugerLab/pyFIt-SNE")
     (synopsis "FFT-accelerated Interpolation-based t-SNE")
     (description
@@ -12703,9 +13079,9 @@ is a Cython wrapper for FIt-SNE.")
      `(#:build-target "dist"
        #:tests? #f ; there are none
        #:make-flags
-       (list (string-append "-Dmpijar="
-                            (assoc-ref %build-inputs "java-openmpi")
-                            "/lib/mpi.jar"))
+       ,#~(list (string-append "-Dmpijar="
+                               #$(this-package-input "java-openmpi")
+                               "/lib/mpi.jar"))
        #:modules ((guix build ant-build-system)
                   (guix build utils)
                   (guix build java-utils))
@@ -12745,10 +13121,8 @@ is a Cython wrapper for FIt-SNE.")
              #t)))
        #:jdk ,openjdk11))
     (inputs
-     `(("gawk" ,gawk)
-       ("java-eclipse-jdt-core" ,java-eclipse-jdt-core)
-       ("java-eclipse-jdt-compiler-apt" ,java-eclipse-jdt-compiler-apt)
-       ("java-openmpi" ,java-openmpi)))
+     (list gawk java-eclipse-jdt-core java-eclipse-jdt-compiler-apt
+           java-openmpi))
     (home-page "https://sourceforge.net/projects/bbmap/")
     (synopsis "Aligner and other tools for short sequencing reads")
     (description
@@ -12779,8 +13153,7 @@ to an artifact/contaminant file.")
               (snippet
                '(begin
                   (delete-file "Manual.pdf")
-                  (delete-file-recursively "third-party")
-                  #t))))
+                  (delete-file-recursively "third-party")))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags '("OPENMP=t")
@@ -12791,8 +13164,7 @@ to an artifact/contaminant file.")
          (add-after 'unpack 'fix-zlib-include
            (lambda _
              (substitute* "src/binarySequences.c"
-               (("../third-party/zlib-1.2.3/zlib.h") "zlib.h"))
-             #t))
+               (("../third-party/zlib-1.2.3/zlib.h") "zlib.h"))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -12803,14 +13175,13 @@ to an artifact/contaminant file.")
                (install-file "velveth" bin)
                (install-file "velvetg" bin)
                (install-file "Manual.pdf" doc)
-               (install-file "Columbus_manual.pdf" doc)
-               #t))))))
+               (install-file "Columbus_manual.pdf" doc)))))))
     (inputs
-     `(("openmpi" ,openmpi)
-       ("zlib" ,zlib)))
+     (list openmpi zlib))
     (native-inputs
      `(("texlive" ,(texlive-updmap.cfg (list texlive-latex-graphics
-                                        texlive-hyperref)))))
+                                             texlive-fonts-ec
+                                             texlive-hyperref)))))
     (home-page "https://www.ebi.ac.uk/~zerbino/velvet/")
     (synopsis "Nucleic acid sequence assembler for very short reads")
     (description
@@ -12831,22 +13202,26 @@ repeated areas between contigs.")
        (uri (pypi-uri "velocyto" version))
        (sha256
         (base32
-         "0fgygyzqgrq32dv6a00biq1p1cwi6kbl5iqblxq1kklj6b2mzmhs"))))
+         "0fgygyzqgrq32dv6a00biq1p1cwi6kbl5iqblxq1kklj6b2mzmhs"))
+       (modules '((guix build utils)))
+       ;; Delete generated C files.
+       (snippet
+        '(for-each delete-file (find-files "." "\\.c")))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-joblib" ,python-joblib)))
+     (list python-joblib))
     (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-cython" ,python-cython)
-       ("python-h5py" ,python-h5py)
-       ("python-loompy" ,python-loompy)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-numba" ,python-numba)
-       ("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-pysam" ,python-pysam)
-       ("python-scikit-learn" ,python-scikit-learn)
-       ("python-scipy" ,python-scipy)))
+     (list python-click
+           python-cython
+           python-h5py
+           python-loompy
+           python-matplotlib
+           python-numba
+           python-numpy
+           python-pandas
+           python-pysam
+           python-scikit-learn
+           python-scipy))
     (home-page "https://github.com/velocyto-team/velocyto.py")
     (synopsis "RNA velocity analysis for single cell RNA-seq data")
     (description
@@ -12898,14 +13273,14 @@ includes a command line tool and an analysis pipeline.")
                  `("R_LIBS_SITE" ":" prefix (,(getenv "R_LIBS_SITE")))))
              #t)))))
     (inputs
-     `(("htslib" ,htslib)
-       ("r-minimal" ,r-minimal)
-       ("r-circlize" ,r-circlize)
-       ("r-genomicalignments" ,r-genomicalignments)
-       ("r-genomicranges" ,r-genomicranges)
-       ("samtools" ,samtools)
-       ("star" ,star)
-       ("zlib" ,zlib)))
+     (list htslib
+           r-minimal
+           r-circlize
+           r-genomicalignments
+           r-genomicranges
+           samtools
+           star
+           zlib))
     (home-page "https://github.com/suhrig/arriba")
     (synopsis "Gene fusion detection from RNA-Seq data ")
     (description
@@ -12936,15 +13311,15 @@ tools which build on STAR, Arriba does not require to reduce the
          "1nf3ki5pfzalhrx2fr1y6pfqfi133yj2m7q4fj9irf5fb94bapwr"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags (list "COLOR_BUILD=no"
-                          (string-append "PREFIX="
-                                         (assoc-ref %outputs "out")))
+     `(#:make-flags
+       ,#~(list "COLOR_BUILD=no"
+                (string-append "PREFIX=" #$output))
        #:test-target "test"
        #:phases
        (modify-phases %standard-phases
          (delete 'configure))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://adapterremoval.readthedocs.io/")
     (synopsis "Rapid sequence adapter trimming, identification, and read merging")
     (description
@@ -13048,7 +13423,7 @@ let before_space s =
        #:findlib ,ocaml4.07-findlib))
       (inputs
        `(("zlib" ,zlib "static")
-         ("gsl" ,gsl)
+         ("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))
@@ -13056,13 +13431,14 @@ let before_space s =
          ("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)))
+         ("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
-       `(("pplacer-scripts" ,pplacer-scripts)))
+       (list pplacer-scripts))
       (synopsis "Phylogenetic placement of biological sequences")
       (description
        "Pplacer places query sequences on a fixed reference phylogenetic tree
@@ -13132,11 +13508,8 @@ downstream analysis.")
            (lambda _
              (setenv "HOME" "/tmp"))))))
     (inputs
-     `(("python-dendropy" ,python-dendropy)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-numpy" ,python-numpy)
-       ("python-pysam" ,python-pysam)
-       ("python-scipy" ,python-scipy)))
+     (list python-dendropy python-matplotlib python-numpy python-pysam
+           python-scipy))
     (home-page "https://ecogenomics.github.io/CheckM/")
     (synopsis "Assess the quality of putative genome bins")
     (description
@@ -13168,14 +13541,14 @@ proximity within a reference genome.")
          "08y3vz1vcx09whmbsn722lcs6jl9wyrh9i4p3k8j4cb1i32bij4a"))))
     (build-system python-build-system)
     (inputs
-     `(("python-pandas" ,python-pandas)
-       ("python-future" ,python-future)
-       ("python-scipy" ,python-scipy)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-regex" ,python-regex)
-       ("python-pysam" ,python-pysam)))
+     (list python-pandas
+           python-future
+           python-scipy
+           python-matplotlib
+           python-regex
+           python-pysam))
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (home-page "https://github.com/CGATOxford/UMI-tools")
     (synopsis "Tools for analyzing unique modular identifiers")
     (description "This package provides tools for dealing with @dfn{Unique
@@ -13205,22 +13578,19 @@ on the needs of the user.")
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
-       (list (string-append "prefix=" (assoc-ref %outputs "out"))
-             (string-append "BOOST_ROOT="
-                            (assoc-ref %build-inputs "boost"))
-             (string-append "HTSLIB_ROOT="
-                            (assoc-ref %build-inputs "htslib")))
+       ,#~(list (string-append "prefix=" #$output)
+                (string-append "BOOST_ROOT="
+                               #$(this-package-input "boost"))
+                (string-append "HTSLIB_ROOT="
+                               #$(this-package-input "htslib")))
        #:test-target "test"
        #:phases
        (modify-phases %standard-phases
          (delete 'configure))))
     (inputs
-     `(("boost" ,boost)
-       ("htslib" ,htslib)
-       ("ncurses" ,ncurses)
-       ("zlib" ,zlib)))
+     (list boost htslib ncurses zlib))
     (native-inputs
-     `(("lcov" ,lcov)))
+     (list lcov))
     (home-page "https://github.com/ParkerLab/ataqv")
     (synopsis "Toolkit for quality control and visualization of ATAC-seq data")
     (description "This package provides a toolkit for measuring and comparing
@@ -13244,13 +13614,13 @@ might be caused by ATAC-seq library prep or sequencing.  The main program,
         (base32 "08438h16cfry5kqh3y9hs8q1b1a8bxhblsm75knviz5r6q0n1jxh"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-dplyr" ,r-dplyr)
-       ("r-tidyr" ,r-tidyr)
-       ("r-purrr" ,r-purrr)
-       ("r-readr" ,r-readr)
-       ("r-magrittr" ,r-magrittr)
-       ("r-ggplot2" ,r-ggplot2)))
+     (list r-mass
+           r-dplyr
+           r-tidyr
+           r-purrr
+           r-readr
+           r-magrittr
+           r-ggplot2))
     (home-page "https://github.com/kcha/psiplot")
     (synopsis "Plot percent spliced-in values of alternatively-spliced exons")
     (description
@@ -13260,10 +13630,47 @@ vast-tools, an RNA-Seq pipeline for alternative splicing analysis.  The plots
 are generated using @code{ggplot2}.")
     (license license:expat)))
 
+(define-public vbz-compression
+  (package
+    (name "vbz-compression")
+    (version "1.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nanoporetech/vbz_compression/")
+             (commit (string-append "v" version))
+             ;; We include the streamvbyte sources
+             (recursive? #true)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1c6wsrnw03vsc5cfp2rdakly5xy55m9chjmy6v685yapdwirdky0"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       '("-DENABLE_CONAN=OFF"
+         ;; Python things aren't even installed, so we might as well
+         ;; disable building them.
+         "-DENABLE_PYTHON=OFF")))
+    (inputs
+     (list ;("hdf5" ,hdf5-1.10)
+           `(,zstd "lib")))
+    (native-inputs
+     (list googlebenchmark))
+    (home-page "https://github.com/nanoporetech/vbz_compression/")
+    (synopsis "VBZ compression plugin for nanopore signal data")
+    (description
+     "VBZ Compression uses variable byte integer encoding to compress
+nanopore signal data.  The performance of VBZ is achieved by taking
+advantage of the properties of the raw signal and therefore is most
+effective when applied to the signal dataset.")
+    (license license:mpl2.0)))
+
 (define-public python-ont-fast5-api
   (package
     (name "python-ont-fast5-api")
-    (version "1.4.4")
+    (version "4.0.0")
     (source
      (origin
        (method git-fetch)
@@ -13273,13 +13680,25 @@ are generated using @code{ggplot2}.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "03cbq4zbbwhll8ml2m9k8sa31mirsvcbjkrq1yna0kkzz9fad5fm"))))
+         "01hj4751j424lzic2sc4bz1f8w7i7fpkjpy3rgghdyl5lyfyb4s4"))
+       (modules '((guix build utils)))
+       (snippet
+        '(delete-file-recursively "ont_fast5_api/vbz_plugin"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'copy-plugin
+           (lambda* (#:key inputs #:allow-other-keys)
+             (mkdir-p "ont_fast5_api/vbz_plugin/")
+             (install-file (string-append
+                            (assoc-ref inputs "vbz-compression")
+                            "/hdf5/lib/plugin/libvbz_hdf_plugin.so")
+                           "ont_fast5_api/vbz_plugin/"))))))
+    (inputs
+     (list vbz-compression))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-six" ,python-six)
-       ("python-h5py" ,python-h5py)
-       ("python-progressbar33" ,python-progressbar33)))
+     (list python-numpy python-h5py python-packaging python-progressbar33))
     (home-page "https://github.com/nanoporetech/ont_fast5_api")
     (synopsis "Interface to HDF5 files of the Oxford Nanopore fast5 file format")
     (description
@@ -13290,8 +13709,8 @@ and reflect the fast5 file schema, and tools to convert between
     (license license:mpl2.0)))
 
 (define-public tbsp
-  (let ((commit "ec8fff4410cfb13a677dbbb95cbbc60217e64907")
-        (revision "1"))
+  (let ((commit "dc30c03868233c5504299c9cb0d7b2064ba9cb41")
+        (revision "2"))
     (package
       (name "tbsp")
       (version (git-version "1.0.0" revision commit))
@@ -13304,17 +13723,24 @@ and reflect the fast5 file schema, and tools to convert between
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "025ym14x8gbd6hb55lsinqj6f5qzw36i10klgs7ldzxxd7s39ki1"))))
+           "1im0bik2hxkcb7jzkcxp5nqb30hd8lfraxml6i5ik52j6z3qqln1"))))
       (build-system python-build-system)
-      (arguments '(#:tests? #f))        ; no tests included
+      (arguments
+       '(#:tests? #f         ; no tests included
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'relax-requirements
+             (lambda _
+               (substitute* "setup.py"
+                 ((", <3.0") ""))))))) ; matplotlib
       (inputs
-       `(("python-matplotlib" ,python-matplotlib)
-         ("python-networkx" ,python-networkx)
-         ("python-numpy" ,python-numpy)
-         ("python-pybigwig" ,python-pybigwig)
-         ("python-biopython" ,python-biopython)
-         ("python-scikit-learn" ,python-scikit-learn)
-         ("python-scipy" ,python-scipy)))
+       (list python-matplotlib
+             python-networkx
+             python-numpy
+             python-pybigwig
+             python-biopython-1.73
+             python-scikit-learn
+             python-scipy))
       (home-page "https://github.com/phoenixding/tbsp/")
       (synopsis "SNP-based trajectory inference")
       (description
@@ -13345,8 +13771,7 @@ mutations from scRNA-Seq data.")
          (delete-file-recursively "htslib") #t))))
    (build-system gnu-build-system)
    (inputs
-    `(("htslib" ,htslib)
-      ("zlib" ,zlib)))
+    (list htslib zlib))
    (arguments
     `(#:tests? #f ; There are no tests to run.
       #:phases
@@ -13520,8 +13945,9 @@ combinatorial configurations.\", G. Ehrlich - Journal of the ACM (JACM),
            (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
                (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
-                 (install-file "fsom" bin))
-               #t)))))
+                 (install-file "fsom" bin)))))))
+      (native-inputs
+       (list gcc-6))
       (home-page "https://github.com/ekg/fsom")
       (synopsis "Manage SOM (Self-Organizing Maps) neural networks")
       (description "A tiny C library for managing SOM (Self-Organizing Maps)
@@ -13632,15 +14058,15 @@ library automatically handles index file generation and use.")
            #t))))
     (build-system cmake-build-system)
     (inputs
-     `(("bzip2" ,bzip2)
-       ("htslib" ,htslib)
-       ("fastahack" ,fastahack)
-       ("perl" ,perl)
-       ("python" ,python)
-       ("smithwaterman" ,smithwaterman)
-       ("tabixpp" ,tabixpp)
-       ("xz" ,xz)
-       ("zlib" ,zlib)))
+     (list bzip2
+           htslib
+           fastahack
+           perl
+           python
+           smithwaterman
+           tabixpp
+           xz
+           zlib))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ;; Submodules.
@@ -13725,11 +14151,7 @@ manipulations on VCF files.")
                   #t))))
     (build-system meson-build-system)
     (inputs
-     `(("fastahack" ,fastahack)
-       ("htslib" ,htslib)
-       ("smithwaterman" ,smithwaterman)
-       ("tabixpp" ,tabixpp)
-       ("vcflib" ,vcflib)))
+     (list fastahack htslib smithwaterman tabixpp vcflib))
     (native-inputs
      `(("bash-tap" ,bash-tap)
        ("bc" ,bc)
@@ -13846,24 +14268,24 @@ pairs.")
            "16wqf70j7rd7pay2q513iyz12i8n9vrpg1bisah4lddbcpx5dz1n"))))
       (build-system r-build-system)
       (inputs
-       `(("boost" ,boost)))
+       (list boost))
       (propagated-inputs
-       `(("r-hdf5r" ,r-hdf5r)
-         ("r-mass" ,r-mass)
-         ("r-mgcv" ,r-mgcv)
-         ("r-pcamethods" ,r-pcamethods)
-         ("r-rcpp" ,r-rcpp)
-         ("r-rcpparmadillo" ,r-rcpparmadillo)
-         ;; Suggested packages
-         ("r-rtsne" ,r-rtsne)
-         ("r-cluster" ,r-cluster)
-         ("r-abind" ,r-abind)
-         ("r-h5" ,r-h5)
-         ("r-biocgenerics" ,r-biocgenerics)
-         ("r-genomicalignments" ,r-genomicalignments)
-         ("r-rsamtools" ,r-rsamtools)
-         ("r-edger" ,r-edger)
-         ("r-igraph" ,r-igraph)))
+       (list r-hdf5r
+             r-mass
+             r-mgcv
+             r-pcamethods
+             r-rcpp
+             r-rcpparmadillo
+             ;; Suggested packages
+             r-rtsne
+             r-cluster
+             r-abind
+             r-h5
+             r-biocgenerics
+             r-genomicalignments
+             r-rsamtools
+             r-edger
+             r-igraph))
       (home-page "https://velocyto.org")
       (synopsis "RNA velocity estimation in R")
       (description
@@ -13889,9 +14311,9 @@ patterns.")
     (arguments
      `(#:test-target "test"
        #:make-flags
-       (list "CC=gcc"
-             (string-append "prefix="
-                            (assoc-ref %outputs "out") "/bin/"))
+       ,#~(list "CC=gcc"
+                "CFLAGS=-fcommon"
+                (string-append "prefix=" #$output "/bin/"))
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
@@ -13899,13 +14321,10 @@ patterns.")
              (substitute* "Makefile"
                (("-lhts ") "-lhts -lBigWig ")
                (("install MethylDackel \\$\\(prefix\\)" match)
-                (string-append "install -d $(prefix); " match)))
-             #t)))))
+                (string-append "install -d $(prefix); " match))))))))
     (inputs
-     `(("curl" ,curl) ; XXX: needed by libbigwig
-       ("htslib" ,htslib-1.9)
-       ("libbigwig" ,libbigwig)
-       ("zlib" ,zlib)))
+     (list curl ; XXX: needed by libbigwig
+           htslib-1.9 libbigwig zlib))
     ;; Needed for tests
     (native-inputs
      `(("python" ,python-wrapper)))
@@ -13937,8 +14356,8 @@ containing the reference genome as well.")
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
-       (list "CC=gcc"
-             (string-append "DESTDIR=" (assoc-ref %outputs "out")))
+       ,#~(list "CC=gcc"
+                (string-append "DESTDIR=" #$output))
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
@@ -13975,9 +14394,9 @@ containing the reference genome as well.")
              ;; unknown reasons.
              (invoke "make" "-C" "test" "msa_view"))))))
     (inputs
-     `(("clapack" ,clapack)))
+     (list clapack))
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "http://compgen.cshl.edu/phast/")
     (synopsis "Phylogenetic analysis with space/time models")
     (description
@@ -14022,15 +14441,15 @@ alignments, trees and genomic annotations.")
                          (find-files "." "\\.gz"))
                #t)))))
       (propagated-inputs
-       `(("python-argcomplete" ,python-argcomplete)
-         ("python-argh" ,python-argh)
-         ("python-biopython" ,python-biopython)
-         ("python-pybedtools" ,python-pybedtools)
-         ("python-pyfaidx" ,python-pyfaidx)
-         ("python-simplejson" ,python-simplejson)
-         ("python-six" ,python-six)))
+       (list python-argcomplete
+             python-argh
+             python-biopython
+             python-pybedtools
+             python-pyfaidx
+             python-simplejson
+             python-six))
       (native-inputs
-       `(("python-nose" , python-nose)))
+       (list python-nose))
       (home-page "https://github.com/daler/gffutils")
       (synopsis "Tool for manipulation of GFF and GTF files")
       (description
@@ -14063,7 +14482,7 @@ than is possible with plain-text methods alone.")
      `(("java-commons-lang2" ,java-commons-lang)
        ("java-args4j" ,java-args4j)))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://github.com/cbg-ethz/InDelFixer/")
     (synopsis "Iterative and sensitive NGS sequence aligner")
     (description "InDelFixer is a sensitive aligner for 454, Illumina and
@@ -14092,18 +14511,17 @@ The output is in SAM format.")
     (arguments
      `(#:test-target "test"
        #:configure-flags
-       (list "-DWITH_CHECK=ON"
-             (string-append "-DLIBXML_LIBRARY="
-                            (assoc-ref %build-inputs "libxml2")
-                            "/lib/libxml2.so")
-             (string-append "-DLIBXML_INCLUDE_DIR="
-                            (assoc-ref %build-inputs "libxml2")
-                            "/include/libxml2"))))
+       ,#~(list "-DWITH_CHECK=ON"
+                (string-append "-DLIBXML_LIBRARY="
+                               #$(this-package-input "libxml2")
+                               "/lib/libxml2.so")
+                (string-append "-DLIBXML_INCLUDE_DIR="
+                               #$(this-package-input "libxml2")
+                               "/include/libxml2"))))
     (propagated-inputs
-     `(("libxml2" ,libxml2)))
+     (list libxml2))
     (native-inputs
-     `(("check" ,check-0.14)
-       ("swig" ,swig)))
+     (list check-0.14 swig))
     (home-page "http://sbml.org/Software/libSBML")
     (synopsis "Process SBML files and data streams")
     (description "LibSBML is a library to help you read, write, manipulate,
@@ -14130,9 +14548,9 @@ international community.")
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #false                  ; there are none
-       #:make-flags (list "-C" "src"
-                          (string-append "KRAKEN2_DIR="
-                                         (assoc-ref %outputs "out") "/bin"))
+       #:make-flags
+       ,#~(list "-C" "src"
+                (string-append "KRAKEN2_DIR=" #$output "/bin"))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
@@ -14188,12 +14606,12 @@ international community.")
                                (install-file script bin))
                              scripts)))))))))
     (inputs
-     `(("gzip" ,gzip)
-       ("perl" ,perl)
-       ("rsync" ,rsync)
-       ("sed" ,sed)
-       ("wget" ,wget)
-       ("which" ,which)))
+     (list gzip
+           perl
+           rsync
+           sed
+           wget
+           which))
   (home-page "https://github.com/DerrickWood/kraken2")
   (synopsis "Taxonomic sequence classification system")
   (description "Kraken is a taxonomic sequence classifier that assigns
@@ -14225,9 +14643,7 @@ genomes known to contain a given k-mer.")
        ("python" ,python-wrapper)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("which" ,which)))
+     (list autoconf automake which))
     (home-page "https://csb5.github.io/lofreq/")
     (synopsis "Sensitive variant calling from sequencing data ")
     (description "LoFreq is a fast and sensitive variant-caller for inferring
@@ -14251,12 +14667,11 @@ usually ignored by other methods or only used for filtering.")
                (base32
                 "044xa0hm3b8fga64csrdx05ih8w7kwmvcdrdrhkg8j11ml4bi4xv"))))
     (build-system gnu-build-system)
+    (arguments `(#:parallel-tests? #false)) ; not supported
     (inputs
-     `(("htslib" ,htslib)
-       ("zlib" ,zlib)))
+     (list htslib zlib))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (home-page "https://andersen-lab.github.io/ivar/html/")
     (synopsis "Tools for amplicon-based sequencing")
     (description "iVar is a computational package that contains functions
@@ -14280,7 +14695,7 @@ broadly useful for viral amplicon-based sequencing. ")
     (build-system python-build-system)
     (arguments `(#:tests? #false)) ; the tests access the web
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/konstantint/pyliftover")
     (synopsis "Python implementation of UCSC liftOver genome coordinate conversion")
     (description
@@ -14327,15 +14742,15 @@ coordinates between different assemblies.")
        ("hostname" ,inetutils)
        ("openssl" ,openssl)))
     (inputs
-     `(("time" ,time)))
+     (list time))
     (propagated-inputs
-     `(("python-apsw" ,python-apsw)
-       ("python-gevent" ,python-gevent)
-       ("python-pandas" ,python-pandas)
-       ("python-paramiko" ,python-paramiko)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-ruffus" ,python-ruffus)
-       ("python-sqlalchemy" ,python-sqlalchemy)))
+     (list python-apsw
+           python-gevent
+           python-pandas
+           python-paramiko
+           python-pyyaml
+           python-ruffus
+           python-sqlalchemy))
     (home-page "https://github.com/cgat-developers/cgat-core")
     (synopsis "Computational genomics analysis toolkit")
     (description
@@ -14418,7 +14833,7 @@ large-scale data-analysis.")
                                 (string-append ":" out
                                                "/lib/perl5/site_perl"))
                            pl)
-                 (for-each (cut wrap <> "PYTHONPATH") py))))))))
+                 (for-each (cut wrap <> "GUIX_PYTHONPATH") py))))))))
     (inputs
      `(("libgd" ,gd)
        ("perl-gd" ,perl-gd)
@@ -14431,7 +14846,7 @@ large-scale data-analysis.")
        ("python-scikit-learn" ,python-scikit-learn)
        ("r-minimal" ,r-minimal)))
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (home-page "https://github.com/dekkerlab/cworld-dekker")
     (synopsis "Utility and analysis scripts for 3C, 4C, 5C, and Hi-C data")
     (description "This package is a collection of Perl, Python, and R
@@ -14547,16 +14962,16 @@ my @test_files = map {\"$dirname\\/t\\/\".$_} grep {!/^\\./ && /\\.t$/} readdir
 runtests(@test_files);
 "))))))))
       (inputs
-       `(("bioperl-minimal" ,bioperl-minimal)
-         ("perl-bio-db-hts" ,perl-bio-db-hts)
-         ("perl-dbi" ,perl-dbi)
-         ("perl-dbd-mysql" ,perl-dbd-mysql)
-         ("perl-libwww" ,perl-libwww)
-         ("perl-http-tiny" ,perl-http-tiny)
-         ("perl-json" ,perl-json)
-         ("which" ,which)))
+       (list bioperl-minimal
+             perl-bio-db-hts
+             perl-dbi
+             perl-dbd-mysql
+             perl-libwww
+             perl-http-tiny
+             perl-json
+             which))
       (propagated-inputs
-       `(("kentutils" ,kentutils)))
+       (list kentutils))
       (native-inputs
        `(("unzip" ,unzip)
          ("perl" ,perl)
@@ -14602,39 +15017,39 @@ translates between different variant encodings.")
            "1yihhrv7zs87ax61la1nb4y12lg3knraw4b20k5digbcwm8488lb"))))
       (properties `((upstream-name . "Signac")))
       (build-system r-build-system)
-      (inputs `(("zlib" ,zlib)))
+      (inputs (list zlib))
       (propagated-inputs
-       `(("r-annotationfilter" ,r-annotationfilter)
-         ("r-biocgenerics" ,r-biocgenerics)
-         ("r-biostrings" ,r-biostrings)
-         ("r-biovizbase" ,r-biovizbase)
-         ("r-data-table" ,r-data-table)
-         ("r-dplyr" ,r-dplyr)
-         ("r-fastmatch" ,r-fastmatch)
-         ("r-future" ,r-future)
-         ("r-future-apply" ,r-future-apply)
-         ("r-genomeinfodb" ,r-genomeinfodb)
-         ("r-genomicranges" ,r-genomicranges)
-         ("r-ggbio" ,r-ggbio)
-         ("r-ggforce" ,r-ggforce)
-         ("r-ggplot2" ,r-ggplot2)
-         ("r-ggrepel" ,r-ggrepel)
-         ("r-ggseqlogo" ,r-ggseqlogo)
-         ("r-iranges" ,r-iranges)
-         ("r-irlba" ,r-irlba)
-         ("r-lsa" ,r-lsa)
-         ("r-matrix" ,r-matrix)
-         ("r-patchwork" ,r-patchwork)
-         ("r-pbapply" ,r-pbapply)
-         ("r-rcpp" ,r-rcpp)
-         ("r-rcpproll" ,r-rcpproll)
-         ("r-rsamtools" ,r-rsamtools)
-         ("r-s4vectors" ,r-s4vectors)
-         ("r-scales" ,r-scales)
-         ("r-seurat" ,r-seurat)
-         ("r-seuratobject" ,r-seuratobject)
-         ("r-stringi" ,r-stringi)
-         ("r-tidyr" ,r-tidyr)))
+       (list r-annotationfilter
+             r-biocgenerics
+             r-biostrings
+             r-biovizbase
+             r-data-table
+             r-dplyr
+             r-fastmatch
+             r-future
+             r-future-apply
+             r-genomeinfodb
+             r-genomicranges
+             r-ggbio
+             r-ggforce
+             r-ggplot2
+             r-ggrepel
+             r-ggseqlogo
+             r-iranges
+             r-irlba
+             r-lsa
+             r-matrix
+             r-patchwork
+             r-pbapply
+             r-rcpp
+             r-rcpproll
+             r-rsamtools
+             r-s4vectors
+             r-scales
+             r-seurat
+             r-seuratobject
+             r-stringi
+             r-tidyr))
       (home-page "https://github.com/timoast/signac/")
       (synopsis "Analysis of single-cell chromatin data")
       (description
@@ -14658,18 +15073,17 @@ sequence motif analysis.")
          "1023hadgcsgi53kz53ql45207hfizf9sw57z0qij3ay1bx68zbpm"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-nose2" ,python-nose2)))
+     (list python-cython python-nose2))
     ;; The package mainly consists of a command-line tool, but also has a
     ;; Python-API. Thus these must be propagated.
     (propagated-inputs
-     `(("python-future" ,python-future)
-       ("python-h5py" ,python-h5py)
-       ("python-mappy" ,python-mappy)
-       ("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)
-       ("python-tqdm" ,python-tqdm)
-       ("python-rpy2" ,python-rpy2)))
+     (list python-future
+           python-h5py
+           python-mappy
+           python-numpy
+           python-scipy
+           python-tqdm
+           python-rpy2))
     (home-page "https://github.com/nanoporetech/tombo")
     (synopsis "Analysis of raw nanopore sequencing data")
     (description "Tombo is a suite of tools primarily for the identification of
@@ -14698,17 +15112,21 @@ for the analysis and visualization of raw nanopore signal.")
     (arguments
      `(#:phases
         (modify-phases %standard-phases
+          (add-after 'unpack 'patch-sample-script
+            (lambda _
+              ;; Add Python 3 compatibility to this sample script.
+              (substitute* "scripts/vcf_sample_filter.py"
+                (("print (.*)\n" _ arg)
+                 (string-append "print(" arg ")\n")))))
           (add-after 'install 'remove-installed-tests
             ;; Do not install test files.
             (lambda* (#:key inputs outputs #:allow-other-keys)
               (delete-file-recursively (string-append
                                          (site-packages inputs outputs)
-                                         "vcf/test"))
-              #t)))))
-    (native-inputs `(("python-cython" ,python-cython)))
+                                         "/vcf/test")))))))
+    (native-inputs (list python-cython))
     (propagated-inputs
-     `(("python-pysam" ,python-pysam)
-       ("python-rpy2" ,python-rpy2)))
+     (list python-pysam python-rpy2))
     (home-page "https://github.com/jamescasbon/PyVCF")
     (synopsis "Variant Call Format parser for Python")
     (description "This package provides a @acronym{VCF,Variant Call Format}
@@ -14727,9 +15145,7 @@ parser for Python.")
               "1wl2daj0bwrl8fx5xi8j8hfs3mp3vg3qycy66538n032v1qkc6xg"))))
    (build-system python-build-system)
    (inputs
-    `(("python-configparser" ,python-configparser)
-      ("python-pysam" ,python-pysam)
-      ("python-pyvcf" ,python-pyvcf)))
+    (list python-configparser python-pysam python-pyvcf))
    (home-page "https://github.com/mroosmalen/nanosv")
    (synopsis "Structural variation detection tool for Oxford Nanopore data.")
    (description "NanoSV is a software package that can be used to identify
@@ -14751,10 +15167,9 @@ instruments, or Pacific Biosciences RSII or Sequel sequencers.")
          "1z1gy8n56lhriy6hdkh9r82ndikndipq2cy2wh8q185qig4rimr6"))))
     (build-system python-build-system)
     (inputs
-     `(("curl" ,curl)
-       ("zlib" ,zlib)))
+     (list curl zlib))
     (propagated-inputs
-     `(("pybind11" ,pybind11)))
+     (list pybind11))
     (home-page "https://github.com/aidenlab/straw")
     (synopsis "Stream data from .hic files")
     (description "Straw is library which allows rapid streaming of contact
@@ -14787,18 +15202,11 @@ data from @file{.hic} files.  This package provides Python bindings.")
                (with-directory-excursion "/tmp/tests"
                  (invoke "python" "-m" "pytest" "-v"))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-pkgconfig" ,python-pkgconfig)
-       ("python-pytest" ,python-pytest)))
+     (list pkg-config python-pkgconfig python-pytest))
     (inputs
-     `(("libpng" ,libpng)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list libpng openssl zlib))
     (propagated-inputs
-     `(("python-cython" ,python-cython)
-       ("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-six" ,python-six)))
+     (list python-cython python-numpy python-pandas python-six))
     (home-page "https://github.com/nvictus/pybbi")
     (synopsis "Python bindings to UCSC Big Binary file library")
     (description
@@ -14822,8 +15230,7 @@ feature is fast retrieval of range queries into numpy arrays.")
     (build-system python-build-system)
     (arguments '(#:tests? #false)) ; there are none
     (propagated-inputs
-     `(("python-biopython" ,python-biopython)
-       ("python-matplotlib" ,python-matplotlib)))
+     (list python-biopython python-matplotlib))
     (home-page
      "https://github.com/Edinburgh-Genome-Foundry/DnaFeaturesViewer")
     (synopsis "Plot features from DNA sequences")
@@ -14846,28 +15253,28 @@ e.g. from GenBank or Gff files, or Biopython SeqRecords.")
     (build-system python-build-system)
     (arguments '(#:tests? #false)) ; there are none
     (inputs
-     `(("pybind11" ,pybind11)))
+     (list pybind11))
     (propagated-inputs
-     `(("python-cooler" ,python-cooler)
-       ("python-dna-features-viewer" ,python-dna-features-viewer)
-       ("python-fire" ,python-fire)
-       ("python-h5py" ,python-h5py)
-       ("python-intervaltree" ,python-intervaltree)
-       ("python-ipywidgets" ,python-ipywidgets)
-       ("jupyter" ,jupyter)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-nbformat" ,python-nbformat)
-       ("python-numpy" ,python-numpy)
-       ("python-numpydoc" ,python-numpydoc)
-       ("python-pandas" ,python-pandas)
-       ("python-pybbi" ,python-pybbi)
-       ("python-pytest" ,python-pytest)
-       ("python-scipy" ,python-scipy)
-       ("python-statsmodels" ,python-statsmodels)
-       ("python-strawc" ,python-strawc)
-       ("python-svgutils" ,python-svgutils)
-       ("python-termcolor" ,python-termcolor)
-       ("python-voila" ,python-voila)))
+     (list python-cooler
+           python-dna-features-viewer
+           python-fire
+           python-h5py
+           python-intervaltree
+           python-ipywidgets
+           jupyter
+           python-matplotlib
+           python-nbformat
+           python-numpy
+           python-numpydoc
+           python-pandas
+           python-pybbi
+           python-pytest
+           python-scipy
+           python-statsmodels
+           python-strawc
+           python-svgutils
+           python-termcolor
+           python-voila))
     (home-page "https://github.com/GangCaoLab/CoolBox")
     (synopsis "Genomic data visualization toolkit")
     (description
@@ -14880,6 +15287,89 @@ line, interactively explore genomic data within Jupyter environment or web
 browser.")
     (license license:gpl3+)))
 
+(define-public python-pyspoa
+  (package
+    (name "python-pyspoa")
+    (version "0.0.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nanoporetech/pyspoa")
+             (commit (string-append "v" version))
+             (recursive? #true)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1lgf2shzhxkcsircd6vy46h27pjljd5q95fyz1cm3lkk702qbnzx"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'build-libspoa
+           (lambda _
+             (mkdir-p "src/build")
+             (with-directory-excursion "src/build"
+               (invoke "cmake"
+                       "-Dspoa_optimize_for_portability=ON"
+                       "-DCMAKE_BUILD_TYPE=Release"
+                       "-DCMAKE_CXX_FLAGS=\"-I ../vendor/cereal/include/\" -fPIC"
+                       "..")
+               (invoke "make"))))
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "tests/test_pyspoa.py")))))))
+    (propagated-inputs
+     (list pybind11))
+    (native-inputs
+     `(("cmake" ,cmake-minimal)))
+    (home-page "https://github.com/nanoporetech/pyspoa")
+    (synopsis "Python bindings for the SIMD partial order alignment library ")
+    (description
+     "This package provides Python bindings for spoa, a C++ implementation of
+the @dfn{partial order alignment} (POA) algorithm (as described in
+10.1093/bioinformatics/18.3.452) which is used to generate consensus
+sequences")
+    (license license:expat)))
+
+(define-public python-bwapy
+  (package
+    (name "python-bwapy")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "bwapy" version))
+       (sha256
+        (base32 "090qwx3vl729zn3a7sksbviyg04kc71gpbm3nd8dalqp673x1npw"))
+       (modules '((guix build utils)))
+       (snippet
+        '(for-each delete-file (find-files "." "\\.o$")))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'relax-requirements
+           (lambda _
+             (substitute* "setup.py"
+               (("wheel>=0.34") "wheel>=0.30"))))
+         ;; TODO: it's possible that the import error points to a real
+         ;; problem with the C sources.
+         (delete 'sanity-check))))
+    (propagated-inputs
+     (list python-cffi python-setuptools python-wheel))
+    (inputs
+     (list zlib))
+    (home-page "https://github.com/ACEnglish/bwapy")
+    (synopsis "Python bindings to bwa alinger")
+    (description "This package provides Python bindings to the bwa mem
+aligner.")
+    ;; These Python bindings are licensed under Mozilla Public License 2.0,
+    ;; bwa itself is licenced under GNU General Public License v3.0.
+    (license license:mpl2.0)))
+
 (define-public scregseg
   (package
     (name "scregseg")
@@ -14904,21 +15394,21 @@ browser.")
              (substitute* "setup.py"
                (("'sklearn',") "")))))))
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (propagated-inputs
-     `(("python-scikit-learn" ,python-scikit-learn)
-       ("python-scipy" ,python-scipy)
-       ("python-numpy" ,python-numpy)
-       ("python-hmmlearn" ,python-hmmlearn)
-       ("python-pandas" ,python-pandas)
-       ("python-numba" ,python-numba)
-       ("python-anndata" ,python-anndata)
-       ("python-scanpy" ,python-scanpy)
-       ("python-pybedtools" ,python-pybedtools)
-       ("python-pysam" ,python-pysam)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-seaborn" ,python-seaborn)
-       ("python-coolbox" ,python-coolbox)))
+     (list python-scikit-learn
+           python-scipy
+           python-numpy
+           python-hmmlearn
+           python-pandas
+           python-numba
+           python-anndata
+           python-scanpy
+           python-pybedtools
+           python-pysam
+           python-matplotlib
+           python-seaborn
+           python-coolbox))
     (home-page "https://github.com/BIMSBbioinfo/scregseg")
     (synopsis "Single-cell regulatory landscape segmentation")
     (description "Scregseg (Single-Cell REGulatory landscape SEGmentation) is a
@@ -14977,15 +15467,9 @@ cross-cluster accessibility profiles.")
                (copy-file "megadepth_dynamic"
                           (string-append bin "/megadepth"))))))))
     (native-inputs
-     `(("diffutils" ,diffutils)
-       ("perl" ,perl)
-       ("grep" ,grep)))
+     (list diffutils perl grep))
     (inputs
-     `(("curl" ,curl)
-       ("htslib" ,htslib)
-       ("libdeflate" ,libdeflate)
-       ("libbigwig" ,libbigwig)
-       ("zlib" ,zlib)))
+     (list curl htslib libdeflate libbigwig zlib))
     (home-page "https://github.com/ChristopherWilks/megadepth")
     (synopsis "BigWig and BAM/CRAM related utilities")
     (description "Megadepth is an efficient tool for extracting coverage
@@ -15016,7 +15500,7 @@ both types of files.")
          (lambda _
            (chdir "ASCAT"))))))
    (propagated-inputs
-    `(("r-rcolorbrewer" ,r-rcolorbrewer)))
+    (list r-rcolorbrewer))
    (home-page "https://github.com/VanLoo-lab/ascat/")
    (synopsis "Allele-Specific Copy Number Analysis of Tumors in R")
    (description "This package provides the @acronym{ASCAT,Allele-Specific Copy
@@ -15039,14 +15523,14 @@ ploidy and allele-specific copy number profiles.")
               "0nmcq4c7y5g8h8lxsq9vadz9bj4qgqn118alip520ny6czaxki4h"))))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-devtools" ,r-devtools)
-      ("r-readr" ,r-readr)
-      ("r-doparallel" ,r-doparallel)
-      ("r-ggplot2" ,r-ggplot2)
-      ("r-rcolorbrewer" ,r-rcolorbrewer)
-      ("r-gridextra" ,r-gridextra)
-      ("r-gtools" ,r-gtools)
-      ("r-ascat" ,r-ascat)))
+    (list r-devtools
+          r-readr
+          r-doparallel
+          r-ggplot2
+          r-rcolorbrewer
+          r-gridextra
+          r-gtools
+          r-ascat))
    (home-page "https://github.com/Wedge-lab/battenberg")
    (synopsis "Subclonal copy number estimation in R")
    (description "This package contains the Battenberg R package for subclonal
@@ -15101,51 +15585,51 @@ value of physical insulation between neighboring domains.")
       (properties `((upstream-name . "Spectre")))
       (build-system r-build-system)
       (propagated-inputs
-       `(("r-biobase" ,r-biobase)
-         ("r-biocmanager" ,r-biocmanager)
-         ("r-caret" ,r-caret)
-         ("r-class" ,r-class)
-         ("r-colorramps" ,r-colorramps)
-         ("r-data-table" ,r-data-table)
-         ("r-devtools" ,r-devtools)
-         ("r-dplyr" ,r-dplyr)
-         ("r-exactextractr" ,r-exactextractr)
-         ("r-factoextra" ,r-factoextra)
-         ("r-flowcore" ,r-flowcore)
-         ("r-flowsom" ,r-flowsom)
-         ("r-flowviz" ,r-flowviz)
-         ("r-fnn" ,r-fnn)
-         ("r-ggplot2" ,r-ggplot2)
-         ("r-ggpointdensity" ,r-ggpointdensity)
-         ("r-ggpubr" ,r-ggpubr)
-         ("r-ggraph" ,r-ggraph)
-         ("r-ggthemes" ,r-ggthemes)
-         ("r-gridextra" ,r-gridextra)
-         ("r-gridextra" ,r-gridextra)
-         ("r-gtools" ,r-gtools)
-         ("r-hdf5array" ,r-hdf5array)
-         ("r-irlba" ,r-irlba)
-         ("r-pheatmap" ,r-pheatmap)
-         ("r-plyr" ,r-plyr)
-         ("r-qs" ,r-qs)
-         ("r-raster" ,r-raster)
-         ("r-rcolorbrewer" ,r-rcolorbrewer)
-         ("r-rgeos" ,r-rgeos)
-         ("r-rhdf5" ,r-rhdf5)
-         ("r-rstudioapi" ,r-rstudioapi)
-         ("r-rsvd" ,r-rsvd)
-         ("r-rtsne" ,r-rtsne)
-         ("r-s2" ,r-s2)
-         ("r-scales" ,r-scales)
-         ("r-sf" ,r-sf)
-         ("r-sp" ,r-sp)
-         ("r-stars" ,r-stars)
-         ("r-stringr" ,r-stringr)
-         ("r-tidygraph" ,r-tidygraph)
-         ("r-tidyr" ,r-tidyr)
-         ("r-tidyr" ,r-tidyr)
-         ("r-tiff" ,r-tiff)
-         ("r-umap" ,r-umap)))
+       (list r-biobase
+             r-biocmanager
+             r-caret
+             r-class
+             r-colorramps
+             r-data-table
+             r-devtools
+             r-dplyr
+             r-exactextractr
+             r-factoextra
+             r-flowcore
+             r-flowsom
+             r-flowviz
+             r-fnn
+             r-ggplot2
+             r-ggpointdensity
+             r-ggpubr
+             r-ggraph
+             r-ggthemes
+             r-gridextra
+             r-gridextra
+             r-gtools
+             r-hdf5array
+             r-irlba
+             r-pheatmap
+             r-plyr
+             r-qs
+             r-raster
+             r-rcolorbrewer
+             r-rgeos
+             r-rhdf5
+             r-rstudioapi
+             r-rsvd
+             r-rtsne
+             r-s2
+             r-scales
+             r-sf
+             r-sp
+             r-stars
+             r-stringr
+             r-tidygraph
+             r-tidyr
+             r-tidyr
+             r-tiff
+             r-umap))
       (home-page "https://github.com/ImmuneDynamics/Spectre")
       (synopsis "High-dimensional cytometry and imaging analysis")
       (description
@@ -15173,16 +15657,16 @@ cytometry and imaging data.")
       (properties `((upstream-name . "CytoNorm")))
       (build-system r-build-system)
       (propagated-inputs
-       `(("r-cytoml" ,r-cytoml)
-         ("r-dplyr" ,r-dplyr)
-         ("r-emdist" ,r-emdist)
-         ("r-flowcore" ,r-flowcore)
-         ("r-flowsom" ,r-flowsom)
-         ("r-flowworkspace" ,r-flowworkspace)
-         ("r-ggplot2" ,r-ggplot2)
-         ("r-gridextra" ,r-gridextra)
-         ("r-pheatmap" ,r-pheatmap)
-         ("r-stringr" ,r-stringr)))
+       (list r-cytoml
+             r-dplyr
+             r-emdist
+             r-flowcore
+             r-flowsom
+             r-flowworkspace
+             r-ggplot2
+             r-gridextra
+             r-pheatmap
+             r-stringr))
       (home-page "https://github.com/saeyslab/CytoNorm")
       (synopsis "Normalize cytometry data measured across multiple batches")
       (description
@@ -15192,3 +15676,56 @@ identifying multiple clusters/cell types, learning the batch effects from the
 control samples and applying quantile normalization on all markers of
 interest.")
       (license license:gpl2+))))
+
+(define-public ccwl
+  (package
+    (name "ccwl")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://ccwl.systemreboot.net/releases/ccwl-"
+                           version ".tar.lz"))
+       (sha256
+        (base32
+         "1ar8rfz3zrksgygrv67zv77y8gfvvz54zcs546jn6j28y20basla"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags '("GUILE_AUTO_COMPILE=0") ; to prevent guild warnings
+       #:modules (((guix build guile-build-system)
+                   #:select (target-guile-effective-version))
+                  ,@%gnu-build-system-modules)
+       #:imported-modules ((guix build guile-build-system)
+                           ,@%gnu-build-system-modules)
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (effective-version (target-guile-effective-version)))
+               (wrap-program (string-append out "/bin/ccwl")
+                 `("GUILE_LOAD_PATH" prefix
+                   (,(string-append out "/share/guile/site/" effective-version)
+                    ,(getenv "GUILE_LOAD_PATH")))
+                 `("GUILE_LOAD_COMPILED_PATH" prefix
+                   (,(string-append out "/lib/guile/" effective-version "/site-ccache")
+                    ,(getenv "GUILE_LOAD_COMPILED_PATH"))))))))))
+    (inputs
+     `(("bash" ,bash-minimal)
+       ("guile" ,guile-3.0)
+       ("guile-libyaml" ,guile-libyaml)))
+    (native-inputs
+     (list pkg-config
+           lzip
+           ;; To build documentation
+           cwltool
+           graphviz
+           skribilo))
+    (home-page "https://ccwl.systemreboot.net")
+    (synopsis "Concise common workflow language")
+    (description "The @acronym{ccwl, Concise Common Workflow Language} is a
+concise syntax to express CWL workflows.  ccwl is a compiler to generate CWL
+workflows from concise descriptions in ccwl.  It is implemented as an
+@acronym{EDSL, Embedded Domain Specific Language} in the Scheme programming
+language.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/bison.scm b/gnu/packages/bison.scm
index 252cd56c15..5fd25452ff 100644
--- a/gnu/packages/bison.scm
+++ b/gnu/packages/bison.scm
@@ -52,11 +52,11 @@
        ;; "./examples/c/reccalc/scan.l:13:10: fatal error: parse.h: No such file
        ;; or directory".  Full log in <https://bugs.gnu.org/36238>.
        #:parallel-tests? #f))
-    (native-inputs `(("perl" ,perl)
-                     ;; m4 is not present in PATH when cross-building.
-                     ("m4" ,m4)))
-    (inputs `(("flex" ,flex)))
-    (propagated-inputs `(("m4" ,m4)))
+    (native-inputs (list perl
+                         ;; m4 is not present in PATH when cross-building.
+                         m4))
+    (inputs (list flex))
+    (propagated-inputs (list m4))
     (home-page "https://www.gnu.org/software/bison/")
     (synopsis "Yacc-compatible parser generator")
     (description
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 46ff706e3e..0dcb1ee991 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -8,10 +8,11 @@
 ;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
 ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
 ;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
-;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2021 Justin Veilleux <terramorpha@cock.li>
+;;; Copyright © 2021 Marius Bakke <marius@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,6 +33,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (guix build-system glib-or-gtk)
@@ -42,6 +44,7 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
@@ -119,14 +122,9 @@
                 (string-append gui "/share/man/man1/transmission-gtk.1"))
              #t))))))
     (inputs
-     `(("libevent" ,libevent)
-       ("curl" ,curl)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)
-       ("gtk+" ,gtk+)))
+     (list libevent curl openssl zlib gtk+))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (home-page "https://transmissionbt.com/")
     (synopsis "Fast and easy BitTorrent client")
     (description
@@ -148,26 +146,21 @@ DHT, µTP, PEX and Magnet Links.")
 (define-public transmission-remote-gtk
   (package
     (name "transmission-remote-gtk")
-    (version "1.4.1")
+    (version "1.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/transmission-remote-gtk/"
                            "transmission-remote-gtk/releases/download/"
                            version "/transmission-remote-gtk-" version
-                           ".tar.xz"))
-       (patches (search-patches "transmission-remote-gtk-fix-appstream.patch"))
+                           ".tar.gz"))
        (sha256
-        (base32 "1aqjl5rgamgcgqvcldd1gzyfh2xci0m7070924d6vz2qln0q75sr"))))
+        (base32 "0qz9wi70qc6vgnaymivc3xz6y86c9hglk6wjv3snnqxpxmp9saay"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gettext" ,gnu-gettext)
-       ("pkg-config" ,pkg-config)))
+     (list gnu-gettext pkg-config))
     (inputs
-     `(("appstream-glib" ,appstream-glib)
-       ("curl" ,curl)
-       ("gtk+" ,gtk+)
-       ("json-glib" ,json-glib)))
+     (list appstream-glib curl gtk+ json-glib))
     (synopsis "Gtk frontend to the Transmission daemon")
     (description "transmission-remote-gtk is a GTK client for remote management
 of the Transmission BitTorrent client, using its HTTP RPC protocol.")
@@ -187,10 +180,8 @@ of the Transmission BitTorrent client, using its HTTP RPC protocol.")
                (base32
                 "10z9i1rc41cmmi7nx8k7k1agsx6afv09g9cl7g9zr35fyhl5l4gd"))))
     (build-system gnu-build-system)
-    (inputs `(("openssl" ,openssl)
-              ("zlib" ,zlib)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("cppunit" ,cppunit)))
+    (inputs (list openssl zlib))
+    (native-inputs (list pkg-config cppunit))
     (synopsis "BitTorrent library of rtorrent")
     (description
      "LibTorrent is a BitTorrent library used by and developed in parallel
@@ -212,14 +203,13 @@ speed and efficiency.")
                (base32
                 "1bs2fnf4q7mlhkhzp3i1v052v9xn8qa7g845pk9ia8hlpw207pwy"))))
     (build-system gnu-build-system)
-    (inputs `(("libtorrent" ,libtorrent)
-              ("ncurses" ,ncurses)
-              ("curl" ,curl)
-              ("cyrus-sasl" ,cyrus-sasl)
-              ("openssl" ,openssl)
-              ("zlib" ,zlib)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("cppunit" ,cppunit)))
+    (inputs (list libtorrent
+                  ncurses
+                  curl
+                  cyrus-sasl
+                  openssl
+                  zlib))
+    (native-inputs (list pkg-config cppunit))
     (synopsis "BitTorrent client with ncurses interface")
     (description
      "rTorrent is a BitTorrent client with an ncurses interface.  It supports
@@ -253,7 +243,7 @@ XML-RPC over SCGI.")
          (delete 'configure)
          (delete 'build))))
     (inputs
-     `(("python" ,python)))
+     (list python))
     (synopsis "Console client for the Transmission BitTorrent daemon")
     (description "Tremc is a console client, with a curses interface, for the
 Transmission BitTorrent daemon.")
@@ -332,17 +322,17 @@ maintained upstream.")
                 (string-append "// " text)))
              #t)))))
     (native-inputs
-     `(("cppunit" ,cppunit) ; for the tests
-       ("pkg-config" ,pkg-config)))
+     (list cppunit ; for the tests
+           pkg-config))
     (inputs
-     `(("c-ares" ,c-ares)
-       ("gnutls" ,gnutls)
-       ("gmp" ,gmp)
-       ("libssh2" ,libssh2)
-       ("libxml2" ,libxml2)
-       ("nettle" ,nettle)
-       ("sqlite" ,sqlite)
-       ("zlib" ,zlib)))
+     (list c-ares
+           gnutls
+           gmp
+           libssh2
+           libxml2
+           nettle
+           sqlite
+           zlib))
     (home-page "https://aria2.github.io/")
     (synopsis "Utility for parallel downloading files")
     (description
@@ -364,18 +354,19 @@ Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
        (sha256
         (base32 "0dlrjhnm1pg2vwmp7nl2xv1aia5hyirb3021rl46x859k63zap24"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("CFLAGS=-fcommon")))
     (inputs
-     `(("curl" ,curl)
-       ("gtk+" ,gtk+)
-       ("glib" ,glib)
-       ("gnutls" ,gnutls)
-       ("gstreamer" ,gstreamer)
-       ("libgcrypt" ,libgcrypt)
-       ("libnotify" ,libnotify)
-       ("openssl" ,openssl)))
+     (list curl
+           gtk+
+           glib
+           gnutls
+           gstreamer
+           libgcrypt
+           libnotify
+           openssl))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (home-page "https://ugetdm.com/")
     (synopsis "Universal download manager with GTK+ interface")
     (description
@@ -423,30 +414,41 @@ and will take advantage of multiple processor cores where possible.")
 (define-public libtorrent-rasterbar
   (package
     (name "libtorrent-rasterbar")
-    (version "1.2.8")
+    (version "1.2.14")
     (source
      (origin
        (method url-fetch)
        (uri
         (string-append "https://github.com/arvidn/libtorrent/"
-                       "releases/download/libtorrent-" version "/"
+                       "releases/download/v" version "/"
                        "libtorrent-rasterbar-" version ".tar.gz"))
        (sha256
-        (base32 "1phn4klzvfzvidv5g566pnrrxj8l0givpy6s4r17d45wznqxc006"))))
-    (build-system gnu-build-system)
+        (base32 "0gwm4w7337ykh5lfnspapnnz6a35g7yay3wnj126s8s5kcsvy9wy"))))
+    (build-system cmake-build-system)
     (arguments
-     `(#:configure-flags
-       (list (string-append "--with-boost-libdir="
-                            (assoc-ref %build-inputs "boost")
-                            "/lib")
-             "--enable-python-binding"
-             "--enable-tests")
-       #:make-flags (list
-                     (string-append "LDFLAGS=-Wl,-rpath="
-                                    (assoc-ref %outputs "out") "/lib"))))
-    (inputs `(("boost" ,boost)
-              ("openssl" ,openssl)))
-    (native-inputs `(("python" ,python-wrapper)
+     `(#:configure-flags '("-Dpython-bindings=ON"
+                           "-Dbuild_tests=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
+             (let ((disabled-tests
+                    ;; test_upnp requires a non-localhost IPv4 interface.
+                    '("test_upnp")))
+               (when tests?
+                 ;; test_ssl relies on bundled TLS certificates with a fixed
+                 ;; expiry date.  To ensure succesful builds in the future,
+                 ;; fake the time to be roughly that of the release.
+                 (setenv "FAKETIME_ONLY_CMDS" "test_ssl")
+                 (invoke "faketime" "2021-06-01"
+                         "ctest"
+                         "--exclude-regex" (string-join disabled-tests "|")
+                         "-j" (if parallel-tests?
+                                  (number->string (parallel-job-count))
+                                  "1")))))))))
+    (inputs (list boost openssl))
+    (native-inputs `(("libfaketime" ,libfaketime)
+                     ("python" ,python-wrapper)
                      ("pkg-config" ,pkg-config)))
     (home-page "https://www.libtorrent.org/")
     (synopsis "Feature-complete BitTorrent implementation")
@@ -490,8 +492,7 @@ desktops.")
                (wrap-qt-program "qbittorrent" #:output out #:inputs inputs))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (inputs
      `(("boost" ,boost)
        ("libtorrent-rasterbar" ,libtorrent-rasterbar)
@@ -544,8 +545,7 @@ features.")
        ("python-twisted" ,python-twisted)
        ("python-zope-interface" ,python-zope-interface)))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("python-wheel" ,python-wheel)))
+     (list intltool python-wheel))
     ;; TODO: Enable tests.
     ;; After "pytest-twisted" is packaged, HOME is set, and an X server is
     ;; started, some of the tests still fail.  There are likely some tests
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index 538d921c0b..b53b1f4257 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
 ;;; Copyright © 2021 Franck Pérignon <franck.perignon@univ-grenoble-alpes.fr>
 ;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -67,7 +68,7 @@
 (define-public boost
   (package
     (name "boost")
-    (version "1.76.0")
+    (version "1.77.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://boostorg.jfrog.io/artifactory/main/release/"
@@ -75,10 +76,9 @@
                                   (version-with-underscores version) ".tar.bz2"))
               (sha256
                (base32
-                "0hcc661savk32hx65997p0ss1awj6ala4cmz4w7lbi42x6k7nfgh"))))
+                "0m08hhk3l7zvzajyk39qlw566q3fhixayhc2j11328qf0gy8b7zw"))))
     (build-system gnu-build-system)
-    (inputs `(("icu4c" ,icu4c)
-              ("zlib" ,zlib)))
+    (inputs (list icu4c zlib))
     (native-inputs
      `(("perl" ,perl)
        ,@(if (%current-target-system)
@@ -183,8 +183,7 @@
                           (symlink libboost_pythonNN.so
                                    (string-append "libboost_python"
                                                   (string-take python-version 1)
-                                                  ".so")))
-                        #t))))))))
+                                                  ".so")))))))))))
 
     (home-page "https://www.boost.org")
     (synopsis "Peer-reviewed portable C++ source libraries")
@@ -217,9 +216,7 @@ across a broad spectrum of applications.")
        ("libcxxabi" ,libcxxabi-6)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("clang" ,clang-6)
-       ("perl" ,perl)
-       ("tcsh" ,tcsh)))
+     (list clang-6 perl tcsh))
     (arguments
      `(#:tests? #f
        #:make-flags
@@ -281,6 +278,13 @@ 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)
@@ -360,9 +364,9 @@ across a broad spectrum of applications.")
     (properties '((hidden? . #t)))))
 
 (define-public boost-sync
-  (let ((commit "c72891d9b90e2ceb466ec859f640cd012b2d8709")
+  (let ((commit "e690de2d30e2f1649ff500c9a6f3539814994b1c")
         (version "1.55")
-        (revision "1"))
+        (revision "2"))
     (package
       (name "boost-sync")
       (version (git-version version revision commit))
@@ -374,7 +378,7 @@ across a broad spectrum of applications.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "197mp5z048vz5kv1m4v3jm447l2gqsyv0rbfz11dz0ns343ihbyx"))))
+                  "0473hb15affjq2804xa99ikk4y1gzi46rygd9zhncl28ib7mnn26"))))
       (build-system trivial-build-system)
       (arguments
        `(#:modules ((guix build utils))
@@ -403,7 +407,7 @@ Boost.Thread.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "13i5j43nggb46i6qpaf7gk53i7zp7pimphl7sydyfqz2m9yx5cdy"))))
+                "1prhj98jgvkj2m3ia5lcgxnl1a4h13cyzqd55skjn983rivi6090"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -456,7 +460,7 @@ signals and slots system.")
                "03b8i43pw4m767mm0cnbi77x7qhpkzpi9b1f6dpp4cmyszmnsk8l"))))
     (build-system gnu-build-system)
     (propagated-inputs
-      `(("boost" ,boost))) ; inclusion of header files
+      (list boost)) ; inclusion of header files
     (home-page "https://gitlab.com/mdds/mdds")
     (synopsis "Multi-dimensional C++ data structures and indexing algorithms")
     (description "Mdds (multi-dimensional data structure) provides a
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index cc23d77cf8..be6cb8f22a 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -263,11 +263,11 @@ menu to select one of the installed operating systems.")
     (inherit grub)
     (name "grub-minimal")
     (inputs
-     (fold alist-delete (package-inputs grub)
-           '("lvm2" "mdadm" "fuse" "console-setup")))
+     (modify-inputs (package-inputs grub)
+       (delete "lvm2" "mdadm" "fuse" "console-setup")))
     (native-inputs
-     (fold alist-delete (package-native-inputs grub)
-           '("help2man" "texinfo" "parted" "qemu" "xorriso")))
+     (modify-inputs (package-native-inputs grub)
+       (delete "help2man" "texinfo" "parted" "qemu" "xorriso")))
     (arguments
      (substitute-keyword-arguments (package-arguments grub)
        ((#:configure-flags _ ''())
@@ -295,9 +295,8 @@ menu to select one of the installed operating systems.")
     (name "grub-efi")
     (synopsis "GRand Unified Boot loader (UEFI version)")
     (inputs
-     `(("efibootmgr" ,efibootmgr)
-       ("mtools" ,mtools)
-       ,@(package-inputs grub)))
+     (modify-inputs (package-inputs grub)
+       (prepend efibootmgr mtools)))
     (arguments
      `(;; TODO: Tests need a UEFI firmware for qemu. There is one at
        ;; https://github.com/tianocore/edk2/tree/master/OvmfPkg .
@@ -344,8 +343,8 @@ menu to select one of the installed operating systems.")
     (name "grub-hybrid")
     (synopsis "GRand Unified Boot loader (hybrid version)")
     (inputs
-     `(("grub" ,grub)
-       ,@(package-inputs grub-efi)))
+     (modify-inputs (package-inputs grub-efi)
+       (prepend grub)))
     (arguments
      (substitute-keyword-arguments (package-arguments grub-efi)
        ((#:modules modules `((guix build utils) (guix build gnu-build-system)))
@@ -380,7 +379,10 @@ menu to select one of the installed operating systems.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0k8dvafd6410kqxf3kyr4y8jzmpmrih6wbjqg6gklak7945yflrc"))))
+                  "0k8dvafd6410kqxf3kyr4y8jzmpmrih6wbjqg6gklak7945yflrc"))
+                (patches
+                 (search-patches "syslinux-gcc10.patch"
+                                 "syslinux-strip-gnu-property.patch"))))
       (build-system gnu-build-system)
       (native-inputs
        `(("nasm" ,nasm)
@@ -400,6 +402,7 @@ menu to select one of the installed operating systems.")
                (string-append "MANDIR=" %output "/share/man")
                "PERL=perl"
                "bios")
+         #:strip-flags '("--strip-debug" "--enable-deterministic-archives")
          #:phases
          (modify-phases %standard-phases
            (add-after 'unpack 'patch-files
@@ -451,14 +454,14 @@ menu to select one of the installed operating systems.")
                 "0wrl43rvd8nnm1v1wyfdr17vk8q7ymib62vli6da8n9ni4lwbkk5"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("libyaml" ,libyaml)
-       ("pkg-config" ,pkg-config)
-       ("swig" ,swig)
-       ("valgrind" ,valgrind)))
+     (list bison
+           flex
+           libyaml
+           pkg-config
+           swig
+           valgrind))
     (inputs
-     `(("python" ,python)))
+     (list python))
     (arguments
      `(#:make-flags
        (list (string-append "CC=" ,(cc-for-target))
@@ -500,21 +503,34 @@ tree binary files.  These are board description files used by Linux and BSD.")
   ;; https://bugs.launchpad.net/ubuntu/+source/u-boot/+bug/1937246
   (search-patch "u-boot-sifive-prevent-reloc-initrd-fdt.patch"))
 
+(define %u-boot-allow-disabling-openssl-patch
+  ;; Fixes build of u-boot 2021.10 without openssl
+  ;; https://lists.denx.de/pipermail/u-boot/2021-October/462728.html
+  (search-patch "u-boot-allow-disabling-openssl.patch"))
+
+(define %u-boot-rk3399-enable-emmc-phy-patch
+  ;; Fix emmc boot on rockpro64 and pinebook-pro, this was a regression
+  ;; therefore should hopefully be fixed when updating u-boot.
+  ;; https://lists.denx.de/pipermail/u-boot/2021-November/466329.html
+  (search-patch "u-boot-rk3399-enable-emmc-phy.patch"))
+
 (define u-boot
   (package
     (name "u-boot")
-    (version "2021.07")
+    (version "2021.10")
     (source (origin
 	      (patches
                (list %u-boot-rockchip-inno-usb-patch
-                     %u-boot-sifive-prevent-relocating-initrd-fdt))
+                     %u-boot-allow-disabling-openssl-patch
+                     %u-boot-sifive-prevent-relocating-initrd-fdt
+                     %u-boot-rk3399-enable-emmc-phy-patch))
               (method url-fetch)
               (uri (string-append
                     "https://ftp.denx.de/pub/u-boot/"
                     "u-boot-" version ".tar.bz2"))
               (sha256
                (base32
-                "0zm7igkdnz0w4ir8rfl2dislfrl0ip104grs5hvd30a5wkm7wari"))))
+                "1m0bvwv8r62s4wk4w3cmvs888dhv9gnfa98dczr4drk2jbhj7ryd"))))
     (native-inputs
      `(("bc" ,bc)
        ("bison" ,bison)
@@ -530,7 +546,7 @@ tree binary files.  These are board description files used by Linux and BSD.")
     (build-system  gnu-build-system)
     (home-page "https://www.denx.de/wiki/U-Boot/")
     (synopsis "ARM bootloader")
-    (description "U-Boot is a bootloader used mostly for ARM boards. It
+    (description "U-Boot is a bootloader used mostly for ARM boards.  It
 also initializes the boards (RAM etc).")
     (license license:gpl2+)))
 
@@ -539,8 +555,8 @@ also initializes the boards (RAM etc).")
     (inherit u-boot)
     (name "u-boot-tools")
     (native-inputs
-     `(("sdl2" ,sdl2)
-       ,@(package-native-inputs u-boot)))
+     (modify-inputs (package-native-inputs u-boot)
+       (prepend sdl2)))
     (arguments
      `(#:make-flags '("HOSTCC=gcc")
        #:test-target "tcheck"
@@ -586,7 +602,7 @@ def test_ctrl_c"))
                                   ;; See https://bugs.gnu.org/34717 for
                                   ;; details.
                                   (("CONFIG_FIT_SIGNATURE=y")
-                                   "CONFIG_FIT_SIGNATURE=n\nCONFIG_UT_LIB_ASN1=n")
+                                   "CONFIG_FIT_SIGNATURE=n\nCONFIG_UT_LIB_ASN1=n\nCONFIG_TOOLS_LIBCRYPTO=n")
                                   ;; This test requires a sound system, which is un-used
                                   ;; in u-boot-tools.
                                   (("CONFIG_SOUND=y") "CONFIG_SOUND=n")))
@@ -612,6 +628,7 @@ def test_ctrl_c"))
                            "tools/mkenvimage"
                            "tools/dumpimage"
                            "tools/mkimage"
+                           "tools/kwboot"
                            "tools/proftool"
                            "tools/fdtgrep"
                            "tools/env/fw_printenv"
@@ -684,6 +701,12 @@ board-independent tools.")))
                                                                   suffix-len))))
                                    (sort entries string-ci<)))
                        (error "Invalid boardname ~s." ,board))))))
+           (add-after 'configure 'disable-tools-libcrypto
+             ;; Disable libcrypto due to GPL and OpenSSL license
+             ;; incompatibilities
+             (lambda _
+               (substitute* ".config"
+                 (("CONFIG_TOOLS_LIBCRYPTO=.*$") "CONFIG_TOOLS_LIBCRYPTO=n"))))
            (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
                (let* ((out (assoc-ref outputs "out"))
@@ -722,7 +745,7 @@ board-independent tools.")))
     (package
       (inherit base)
       (name "u-boot-am335x-boneblack")
-      (description "U-Boot is a bootloader used mostly for ARM boards. It
+      (description "U-Boot is a bootloader used mostly for ARM boards.  It
 also initializes the boards (RAM etc).
 
 This U-Boot is built for the BeagleBone Black, which was removed upstream,
@@ -842,7 +865,7 @@ device while it's being turned on (and a while longer).")
   (let ((base (make-u-boot-package "novena" "arm-linux-gnueabihf")))
     (package
       (inherit base)
-      (description "U-Boot is a bootloader used mostly for ARM boards. It
+      (description "U-Boot is a bootloader used mostly for ARM boards.  It
 also initializes the boards (RAM etc).
 
 This U-Boot is built for Novena.  Be advised that this version, contrary
@@ -894,7 +917,8 @@ to Novena upstream, does not load u-boot.img from the first partition.")
       (source (origin
                 (inherit (package-source u-boot))
                 (patches
-                 (search-patches "u-boot-riscv64-fix-extlinux.patch")))))))
+                 (search-patches "u-boot-riscv64-fix-extlinux.patch"
+                                 %u-boot-allow-disabling-openssl-patch)))))))
 
 (define-public u-boot-sifive-unleashed
   (make-u-boot-package "sifive_unleashed" "riscv64-linux-gnu"))
@@ -1066,14 +1090,14 @@ tools, and more.")
 (define-public os-prober
   (package
     (name "os-prober")
-    (version "1.78")
+    (version "1.79")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://debian/pool/main/o/os-prober/os-prober_"
                            version ".tar.xz"))
        (sha256
-        (base32 "1sahk72blsrlirly4xlwa8jfxrpwagyn7b81p92q2s9m218rz43f"))))
+        (base32 "1vhhk0bl2j4910513gn5h3z8nsaavyv3c8764bim2klc0xyk3rmb"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((guix build gnu-build-system)
@@ -1238,9 +1262,7 @@ order to add a suitable bootloader menu entry.")
              (lambda _ (chdir "..") #t)))
          #:tests? #f))                  ; no test suite
       (native-inputs
-       `(("perl" ,perl)
-         ("syslinux" ,syslinux)
-         ("xorriso" ,xorriso)))
+       (list perl syslinux xorriso))
       (home-page "https://ipxe.org")
       (synopsis "PXE-compliant network boot firmware")
       (description "iPXE is a network boot firmware.  It provides a full PXE
diff --git a/gnu/packages/browser-extensions.scm b/gnu/packages/browser-extensions.scm
index 9cd0cf9b9e..6b2f4ad4a3 100644
--- a/gnu/packages/browser-extensions.scm
+++ b/gnu/packages/browser-extensions.scm
@@ -48,30 +48,19 @@ supported content to the Kodi media center.")
 (define-public play-to-kodi/chromium
   (make-chromium-extension play-to-kodi))
 
-(define uassets
-  (let ((commit "54e217d9051831d0d8856286a877962e0f592d45"))
-    (origin
-      (method git-fetch)
-      (uri (git-reference
-            (url "https://github.com/uBlockOrigin/uAssets")
-            (commit commit)))
-      (file-name (git-file-name "uAssets" (string-take commit 9)))
-      (sha256
-       (base32
-        "1xhxadm6qyph6kkq3gxg1rar1psb586mniwp7bkyj5zpzzj31wmj")))))
-
 (define ublock-origin
   (package
     (name "ublock-origin")
-    (version "1.37.2")
+    (version "1.39.2")
     (home-page "https://github.com/gorhill/uBlock")
     (source (origin
               (method git-fetch)
-              (uri (git-reference (url home-page) (commit version)))
+              (uri (git-reference (url home-page) (commit version)
+                                  (recursive? #t)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1c1dh9kkimvahs9yw1hv67290h8xvmbl10film7g1wamdxydj97y"))))
+                "12dqn7hm72ha7xclc7cny67l1ndsanhpgbwx1s9d74z0jhdl2iks"))))
     (build-system gnu-build-system)
     (outputs '("xpi" "firefox" "chromium"))
     (arguments
@@ -81,18 +70,18 @@ supported content to the Kodi media center.")
        (modify-phases (map (lambda (phase)
                              (assq phase %standard-phases))
                            '(set-paths unpack patch-source-shebangs))
-         (add-after 'unpack 'link-uassets
-           (lambda* (#:key native-inputs inputs #:allow-other-keys)
-             (symlink (string-append (assoc-ref (or native-inputs inputs)
-                                                "uassets"))
-                      "../uAssets")
-             #t))
+         (add-after 'unpack 'do-not-depend-on-git
+           (lambda _
+             ;; The script attempts to checkout the uAssets submodule,
+             ;; but we already did so with git-fetch.
+             (substitute* "tools/make-assets.sh"
+               (("^git submodule update.*")
+                ""))))
          (add-after 'unpack 'make-files-writable
            (lambda _
              ;; The build system copies some files and later tries
              ;; modifying them.
-             (for-each make-file-writable (find-files "."))
-             #t))
+             (for-each make-file-writable (find-files "."))))
          (add-after 'patch-source-shebangs 'build-xpi
            (lambda _
              (invoke "./tools/make-firefox.sh" "all")))
@@ -107,11 +96,9 @@ supported content to the Kodi media center.")
                (install-file "dist/build/uBlock0.firefox.xpi"
                              (string-append xpi "/lib/mozilla/extensions"))
                (copy-recursively "dist/build/uBlock0.firefox" firefox)
-               (copy-recursively "dist/build/uBlock0.chromium" chromium)
-               #t))))))
+               (copy-recursively "dist/build/uBlock0.chromium" chromium)))))))
     (native-inputs
      `(("python" ,python-wrapper)
-       ("uassets" ,uassets)
        ("zip" ,zip)))
     (synopsis "Block unwanted content from web sites")
     (description
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 01941f05d8..18a07f0226 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -1,14 +1,14 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Corentin Bocquillon <corentin@nybble.fr>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
 ;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
 ;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
-;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2020 Yuval Kogman <nothingmuch@woobling.org>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
@@ -44,7 +44,6 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
-  #:use-module (gnu packages gcc)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages logging)
   #:use-module (gnu packages lua)
@@ -91,7 +90,7 @@
     (native-inputs
      `(("python" ,python-2)))
     (inputs
-     `(("lua" ,lua)))
+     (list lua))
     (home-page "https://matricks.github.io/bam/")
     (synopsis "Fast and flexible build system")
     (description "Bam is a fast and flexible build system.  Bam uses Lua to
@@ -103,29 +102,32 @@ makes a few sacrifices to acquire fast full and incremental build times.")
 (define-public bear
   (package
     (name "bear")
-    (version "3.0.4")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/rizsotto/Bear")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (patches (search-patches
-                        "bear-disable-preinstall-tests.patch"))
-              (sha256
-               (base32
-                "15r22sbk5bibrhf54lf0shiqw1gnsik24fr5as96w3hnj6iahgwn"))))
+    (version "3.0.17")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rizsotto/Bear")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0klbk99qphibrp2944w8gn6x1dwwgrbm7f2bh530wjp5h3bpkr45"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'disable-TEST_BEFORE_INSTALL
+                    (lambda _
+                      (substitute* "CMakeLists.txt"
+                        ;; Delete the matching line—and comment out the next.
+                        ((".*TEST_(BEFORE_INSTALL|COMMAND).*") "#"))))
                   (add-before 'check 'set-build-environment
                     (lambda _
-                      (setenv "CC" "gcc")
-                      #t))
-                  ;; TODO: Test Configuration is Incomplete
+                      (setenv "CC" "gcc")))
                   (replace 'check
-                    (lambda _
-                      (invoke "ctest"))))))
+                    ;; TODO: Test configuration is incomplete.
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "ctest")))))))
     (inputs
      `(("c-ares" ,c-ares)
        ("fmt" ,fmt)
@@ -137,7 +139,6 @@ makes a few sacrifices to acquire fast full and incremental build times.")
        ("spdlog" ,spdlog)))
     (native-inputs
      `(("abseil-cpp" ,abseil-cpp)
-       ("gcc-9" ,gcc-9) ; for <filesystem>, #44896
        ("googletest" ,googletest)
        ("openssl" ,openssl)
        ("pkg-config" ,pkg-config)
@@ -154,19 +155,19 @@ generate such a compilation database.")
 (define-public bmake
   (package
     (name "bmake")
-    (version "20210206")
+    (version "20211207")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "http://www.crufty.net/ftp/pub/sjg/bmake-" version ".tar.gz"))
        (sha256
-        (base32 "07n9avzdg6gifrzyddnyzada5s5rzklvbqfpv5drljpxcgpqpvwg"))))
+        (base32 "1cvm10gh7gb0rjcfgbssrw13ha24qmagifgkr53kk39r9693ylq5"))))
     (build-system gnu-build-system)
     (inputs
-     `(("bash" ,bash-minimal)))
+     (list bash-minimal))
     (native-inputs
-     `(("coreutils" ,coreutils)))
+     (list coreutils))
     (arguments
      `(#:tests? #f                      ; test during build
        #:phases
@@ -180,8 +181,7 @@ generate such a compilation database.")
            (lambda _
              (substitute* "unit-tests/Makefile"
                (("cmd-interrupt") "")
-               (("varmod-localtime") ""))
-             #t)))
+               (("varmod-localtime") "")))))
        #:configure-flags
        (list
         (string-append
@@ -264,7 +264,7 @@ files and generates build instructions for the Ninja build system.")
 (define-public meson
   (package
     (name "meson")
-    (version "0.59.1")
+    (version "0.60.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/mesonbuild/meson/"
@@ -272,7 +272,9 @@ files and generates build instructions for the Ninja build system.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0v9m0bazhj48kwc8x3gkxg5c3kcvknvqfjlq22z6pm2h2r2nln6v"))))
+                "0irdn7hx5a182jbvq2kmdwd1v7mljzh5fm27pg4xk879hnv6h388"))
+              (patches (search-patches
+                        "meson-allow-dirs-outside-of-prefix.patch"))))
     (build-system python-build-system)
     (arguments
      `(;; FIXME: Tests require many additional inputs and patching many
@@ -282,9 +284,15 @@ files and generates build instructions for the Ninja build system.")
                   ;; Meson calls the various executables in out/bin through the
                   ;; Python interpreter, so we cannot use the shell wrapper.
                   (delete 'wrap))))
-    (inputs `(("ninja" ,ninja)))
-    (propagated-inputs `(("python" ,python)))
+    (inputs (list ninja))
+
+    ;; XXX: Python is propagated just to 'GUIX_PYTHONPATH' is set (!).
+    ;; MESON-WRAPPED below fixes that by wrapping the 'meson' executable.
+    ;; TODO: Make MESON-WRAPPED the new MESON on the next core update cycle.
+    (propagated-inputs (list python))
+
     (home-page "https://mesonbuild.com/")
+    (properties '((hidden? . #t)))
     (synopsis "Build system designed to be fast and user-friendly")
     (description
      "The Meson build system is focused on user-friendliness and speed.
@@ -295,6 +303,48 @@ files}, are written in a custom domain-specific language (@dfn{DSL}) that
 resembles Python.")
     (license license:asl2.0)))
 
+(define-public meson-wrapped
+  (package/inherit meson
+    (propagated-inputs '())                       ;don't propagate Python
+    (inputs (modify-inputs (package-inputs meson)
+              (prepend python-wrapper)))
+    (arguments
+     `(;; FIXME: Tests require many additional inputs and patching many
+       ;; hard-coded file system locations in "run_unittests.py".
+       #:tests? #f
+       #:phases (modify-phases %standard-phases
+                  ;; Meson calls the various executables in out/bin through the
+                  ;; Python interpreter, so we cannot use the shell wrapper.
+                  (replace 'wrap
+                    (lambda* (#:key outputs inputs #:allow-other-keys)
+                      (let ((python-version
+                             (python-version (assoc-ref inputs "python")))
+                            (output (assoc-ref outputs "out")))
+                        (substitute* (string-append output "/bin/meson")
+                          (("# EASY-INSTALL-ENTRY-SCRIPT")
+                           (format #f "\
+import sys
+sys.path.insert(0, '~a/lib/python~a/site-packages')
+# EASY-INSTALL-ENTRY-SCRIPT"
+                                   output python-version)))))))))
+    (properties '())))
+
+;;; This older Meson variant is kept for now for gtkmm and others that may
+;;; have problems with 0.60.
+(define-public meson-0.59
+  (package/inherit meson
+    (version "0.59.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/mesonbuild/meson/"
+                                  "releases/download/" version  "/meson-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "117cm8794h291lca1wljz1pwnzidgbvrpg3mw3np6ksma368hyd7"))
+              (patches (search-patches
+                        "meson-allow-dirs-outside-of-prefix.patch"))))))
+
 (define-public premake4
   (package
     (name "premake")
@@ -308,7 +358,7 @@ resembles Python.")
                 "1017rd0wsjfyq2jvpjjhpszaa7kmig6q1nimw76qx3cjz2868lrn"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("unzip" ,unzip))) ; for unpacking the source
+     (list unzip)) ; for unpacking the source
     (arguments
      `(#:make-flags (list (string-append "CC=" ,(cc-for-target)))
        #:tests? #f ; No test suite
@@ -415,12 +465,11 @@ other lower-level build files.")))
                    (display "au BufNewFile,BufRead Tupfile,*.tup setf tup")))
                #t))))))
     (inputs
-     `(("fuse" ,fuse)
-       ("pcre" ,pcre)
-       ("pcre" ,pcre "bin") ; pcre-config
-       ("sqlite" ,sqlite)))
+     (list fuse pcre
+           `(,pcre "bin") ; pcre-config
+           sqlite))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://gittup.org/tup/")
     (synopsis "Fast build system that's hard to get wrong")
     (description "Tup is a generic build system based on a directed acyclic
@@ -457,11 +506,9 @@ a build worked by accident.")
                 (string-append bin "osc"))
                #t))))))
     (native-inputs
-     `(("python-chardet" ,python-chardet)))
+     (list python-chardet))
     (inputs
-     `(("python-m2crypto" ,python-m2crypto)
-       ("python-pycurl" ,python-pycurl)
-       ("rpm" ,rpm)))                   ; for python-rpm
+     (list python-m2crypto python-pycurl rpm))                   ; for python-rpm
     (home-page "https://github.com/openSUSE/osc")
     (synopsis "Open Build Service command line tool")
     (description "@command{osc} is a command line interface to the Open Build
@@ -490,10 +537,9 @@ be reached via direct API calls.")
              (substitute* "setup.py" (("^ *'shutilwhich'\n") ""))
              (substitute* "compiledb/compiler.py" (("shutilwhich") "shutil")))))))
     (propagated-inputs
-      `(("python-bashlex" ,python-bashlex)
-        ("python-click" ,python-click)))
+      (list python-bashlex python-click))
     (native-inputs
-      `(("python-pytest" ,python-pytest)))
+      (list python-pytest))
     (home-page
       "https://github.com/nickdiego/compiledb")
     (synopsis
diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm
index 5b038870de..17b91da59f 100644
--- a/gnu/packages/busybox.scm
+++ b/gnu/packages/busybox.scm
@@ -106,11 +106,11 @@
                (apply invoke "make"
                        (string-append "CONFIG_PREFIX=" out)
                        "install" make-flags)))))))
-    (native-inputs `(("perl" ,perl) ; needed to generate the man pages (pod2man)
-                     ;; The following are needed by the tests.
-                     ("inetutils" ,inetutils)
-                     ("which" ,(@ (gnu packages base) which))
-                     ("zip" ,zip)))
+    (native-inputs (list perl ; needed to generate the man pages (pod2man)
+                         ;; The following are needed by the tests.
+                         inetutils
+                         (@ (gnu packages base) which)
+                         zip))
     (synopsis "Many common UNIX utilities in a single executable")
     (description "BusyBox combines tiny versions of many common UNIX utilities
 into a single small executable.  It provides a fairly complete environment for
@@ -122,7 +122,7 @@ any small or embedded system.")
 (define-public toybox
   (package
     (name "toybox")
-    (version "0.8.3")
+    (version "0.8.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -130,7 +130,7 @@ any small or embedded system.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "00aw9d809wj1bqlb2fsssdgz7rj0363ya14py0gfdm0rkp98zcpa"))))
+                "0j896rblxd8jyll6dg1w9zz1v1q52y2ca7qswgvlfqvjhz0k1lmz"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -138,10 +138,19 @@ any small or embedded system.")
          (add-before 'configure 'set-environment-variables
            (lambda _
              (setenv "CC" ,(cc-for-target))
-             (setenv "HOSTCC" (which "gcc"))
-             #t))
+             (setenv "HOSTCC" (which "gcc"))))
          (replace 'configure
            (lambda _ (invoke "make" "defconfig")))
+         (add-before 'check 'fix-or-skip-broken-tests
+           (lambda _
+             ;; Some tests expects $USER to magically be the current user name.
+             (setenv "USER" (passwd:name (getpwnam (geteuid))))
+             ;; All these expect directories to be exactly 4K.  They aren't!
+             (delete-file "tests/du.test")
+             ;; Delete tests that expect a root or 0 user to exist.
+             (substitute* "tests/id.test"
+               (("^testing .*[ \\(]root.*") ""))
+             ))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -151,10 +160,9 @@ any small or embedded system.")
          (add-after 'install 'remove-usr-directory
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
-               (delete-file-recursively (string-append out "/usr"))
-               #t))))
+               (delete-file-recursively (string-append out "/usr"))))))
        #:test-target "tests"))
-    (native-inputs `(("bc" ,bc)))
+    (native-inputs (list bc))
     (synopsis "Many common UNIX utilities in a single executable")
     (description "ToyBox combines tiny versions of many common UNIX utilities
 into a single small executable.  It provides a fairly complete environment for
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index 1b9003ce09..5c28ea9fb8 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
@@ -69,8 +69,7 @@
                (base32
                 "177bdhwzrnqgyrdv1dwvpd04fcxj68s5pm1dzwny6359ziway8yy"))))
     (build-system gnu-build-system)
-    (native-inputs `(("perl" ,perl)
-                     ("texinfo" ,texinfo)))
+    (native-inputs (list perl texinfo))
     (arguments
      `(#:configure-flags (list (string-append "--elfinterp="
                                               (assoc-ref %build-inputs "libc")
@@ -130,8 +129,7 @@ standard.")
          (replace 'check
            (lambda _ (invoke "make" "-C" "cc/cpp" "test") #t)))))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (synopsis "Portable C compiler")
     (description
      "PCC is a portable C compiler.  The project goal is to write a C99
@@ -162,8 +160,7 @@ compiler while still keeping it small, simple, fast and understandable.")
        ("pkg-config" ,pkg-config)
        ("python" ,python)))
     (inputs
-     `(("mpfr" ,mpfr)
-       ("pcre2" ,pcre2)))
+     (list mpfr pcre2))
     (home-page "https://github.com/storaged-project/libbytesize")
     (synopsis "Tiny C library for working with arbitrary big sizes in bytes")
     (description
@@ -205,7 +202,7 @@ language with thin bindings for other languages.")
      `(#:configure-flags
        (list "--disable-static")))
     (inputs
-     `(("expat" ,expat)))
+     (list expat))
     (home-page "https://www.unidata.ucar.edu/software/udunits/")
     (synopsis "C library for units of physical quantities and value-conversion utils")
     (description
@@ -238,11 +235,7 @@ Its three main components are:
          "1x4q6yspi5g2s98vq4qszw4z3zjgk9l5zs8471w4d4cs6l97w08j"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("check" ,check)))
+     (list autoconf automake libtool pkg-config check))
     (synopsis "Thin wrapper over POSIX syscalls")
     (description
      "The purpose of libfixposix is to offer replacements for parts of POSIX
@@ -252,16 +245,16 @@ whose behaviour is inconsistent across *NIX flavours.")
 (define-public libhx
   (package
     (name "libhx")
-    (version "3.25")
+    (version "4.2")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://sourceforge/libhx/libHX/"
+       (uri (string-append "https://inai.de/files/libhx/"
                            "libHX-" version ".tar.xz"))
        (sha256
-        (base32 "12avn16f8aqb0cq6jplz0sv7rh6f07m85dwc8dasnnwsvijwbpbj"))))
+        (base32 "1ri3sxiw5a8br27j7f20s40kihfvq6mmxzcrx68zydiwyxjvf5jj"))))
     (build-system gnu-build-system)
-    (home-page "http://libhx.sourceforge.net")
+    (home-page "https://inai.de/projects/libhx/")
     (synopsis "C library with common data structures and functions")
     (description
      "This is a C library (with some C++ bindings available) that provides data
@@ -317,7 +310,7 @@ checking casts and more.")
                                     headers)
                           (install-file "libwuya.a" (string-append out "/lib"))
                           #t))))))
-      (inputs `(("lua" ,lua)))
+      (inputs (list lua))
       (home-page "https://github.com/WuBingzheng/libwuya/")
       (synopsis "C library implementing various data structures")
       (description "The @code{libwuya} library implements data structures such
@@ -368,7 +361,7 @@ as dictionaries, skip lists, and memory pools.")
                                       (string-append out "/share/doc/packcc"))
                         #t))))))
     (native-inputs
-     `(("bats" ,bats)))
+     (list bats))
     (synopsis "Packrat parser generator for C")
     (description
      "PackCC is a packrat parser generator for the C programming language.
@@ -388,7 +381,7 @@ any other grammar rules.")
 (define-public sparse
   (package
     (name "sparse")
-    (version "0.6.3")
+    (version "0.6.4")
     (source (origin
               (method url-fetch)
               (uri
@@ -396,9 +389,9 @@ any other grammar rules.")
                               "sparse-"  version ".tar.xz"))
               (sha256
                (base32
-                "16d8c4dhipjzjf8z4z7pix1pdpqydz0v4r7i345f5s09hjnxpxnl"))))
+                "0z1qds52144nvsdnl82r3zs3vax618v920jmffyyssmwj54qpcka"))))
     (build-system gnu-build-system)
-    (inputs `(("perl" ,perl)))
+    (inputs (list perl))
     (arguments
      '(#:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out")))
        #:phases (modify-phases %standard-phases
@@ -406,8 +399,7 @@ any other grammar rules.")
                   (add-after 'unpack 'patch-cgcc
                     (lambda _
                       (substitute* "cgcc"
-                        (("'cc'") (string-append "'" (which "gcc") "'")))
-                      #t)))))
+                        (("'cc'") (string-append "'" (which "gcc") "'"))))))))
     (synopsis "Semantic C parser for Linux development")
     (description
      "Sparse is a semantic parser for C and is required for Linux development.
@@ -442,10 +434,7 @@ releases.")
          (replace 'bootstrap
            (lambda _ (invoke "autoreconf" "-vfi"))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("libtool" ,libtool)))
+     (list autoconf automake pkg-config libtool))
     (home-page "https://github.com/rsyslog/libestr")
     (synopsis "Helper functions for handling strings")
     (description
@@ -468,9 +457,7 @@ more, like escaping special characters.")
         (base32 "12rqcdqxazw8czzxbivdapdgj19pcswpw1jp2915sxbljis83g6q"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (home-page "https://github.com/rsyslog/libfastjson")
     (synopsis "Fast JSON library for C")
     (description
@@ -501,12 +488,12 @@ with essential JSON handling functions, sufficiently good JSON support (not
          (replace 'bootstrap
            (lambda _ (invoke "autoreconf" "-vfi"))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("libtool" ,libtool)
-       ;; For rst2man.py
-       ("python-docutils" ,python-docutils)))
+     (list autoconf
+           automake
+           pkg-config
+           libtool
+           ;; For rst2man.py
+           python-docutils))
     (home-page "https://github.com/rsyslog/liblogging")
     (synopsis "Easy to use and lightweight signal-safe logging library")
     (description
@@ -539,7 +526,7 @@ replacement for the syslog() call, but retains its ease of use.")
                           (string-append "prefix=" %output))
        #:tests? #f))                    ;no test suite
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "https://dotat.at/prog/unifdef/")
     (synopsis "Utility to selectively processes conditional C preprocessor")
     (description "The @command{unifdef} utility selectively processes
@@ -554,7 +541,8 @@ portability.")
 (define-public aws-c-common
   (package
     (name "aws-c-common")
-    (version "0.5.3")
+    ; Update only when updating aws-crt-cpp.
+    (version "0.6.11")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -563,7 +551,7 @@ portability.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "03fcvh3l1l6fkzkcbaprk10qmy8l77zhmh60h1px2ik09sqd9p72"))))
+                "1v4dhygiynl75y3702lbp9j8kph88j4f2sq39s4lkhn6lmbz5f0f"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
@@ -578,7 +566,8 @@ portability.")
 (define-public aws-checksums
   (package
     (name "aws-checksums")
-    (version "0.1.11")
+    ; Update only when updating aws-crt-cpp.
+    (version "0.1.12")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -587,14 +576,15 @@ portability.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1pjs31x3cq9wyw511y00kksz660m8im9zxk30hid8iwlilcbnyvx"))
-              (patches (search-patches "aws-checksums-cmake-prefix.patch"))))
+                "054f2hkmkxhw83q7zsz349k82xk6bkrvlsab088pf7kn9wd4hy4k"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
-       '("-DBUILD_SHARED_LIBS=ON")))
+       (list "-DBUILD_SHARED_LIBS=ON"
+             (string-append "-DCMAKE_PREFIX_PATH="
+                            (assoc-ref %build-inputs "aws-c-common")))))
     (inputs
-     `(("aws-c-common" ,aws-c-common)))
+     (list aws-c-common))
     (synopsis "Amazon Web Services checksum library")
     (description
      "This library provides cross-Platform hardware accelerated CRC32c and CRC32
@@ -605,6 +595,7 @@ with fallback to efficient C99 software implementations.")
 (define-public aws-c-event-stream
   (package
     (name "aws-c-event-stream")
+    ; Update only when updating aws-crt-cpp.
     (version "0.2.7")
     (source (origin
               (method git-fetch)
@@ -614,19 +605,17 @@ with fallback to efficient C99 software implementations.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0xwwr7gdgfrphk6j7vk12rgimfim6m4qnj6hg8hgg16cplhvsfzh"))
-              (patches (search-patches "aws-c-event-stream-cmake-prefix.patch"))))
+                "0xwwr7gdgfrphk6j7vk12rgimfim6m4qnj6hg8hgg16cplhvsfzh"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
-       '("-DBUILD_SHARED_LIBS=ON")))
+       (list "-DBUILD_SHARED_LIBS=ON"
+             (string-append "-DCMAKE_PREFIX_PATH="
+                            (assoc-ref %build-inputs "aws-c-common")))))
     (propagated-inputs
-     `(("aws-c-common" ,aws-c-common)
-       ("aws-c-io" ,aws-c-io)
-       ("aws-checksums" ,aws-checksums)))
+     (list aws-c-common aws-c-io aws-checksums))
     (inputs
-     `(("aws-c-cal" ,aws-c-cal)
-       ("s2n" ,s2n)))
+     (list aws-c-cal s2n))
     (synopsis "Amazon Web Services client-server message format library")
     (description
      "This library is a C99 implementation for @acronym{AWS,Amazon Web Services}
@@ -638,7 +627,8 @@ communication.")
 (define-public aws-c-io
   (package
     (name "aws-c-io")
-    (version "0.9.2")
+    ; Update only when updating aws-crt-cpp.
+    (version "0.10.9")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -647,19 +637,16 @@ communication.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1vwyf1pm0hhcypyjc9xh9x7y50ic79xlbck1yf9d9wz0bnh43p7v"))
-              (patches
-               (search-patches
-                "aws-c-io-cmake-prefix.patch"
-                "aws-c-io-disable-networking-tests.patch"))))
+                "14rxa3k842fgk43702nz7z9y3clfhvax8j0k93i0c5vg14wj38yp"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
-       '("-DBUILD_SHARED_LIBS=ON")))
+       (list "-DBUILD_SHARED_LIBS=ON"
+             (string-append "-DCMAKE_PREFIX_PATH="
+                            (assoc-ref %build-inputs "aws-c-common"))
+             "-DENABLE_NET_TESTS=OFF")))
     (propagated-inputs
-     `(("aws-c-cal" ,aws-c-cal)
-       ("aws-c-common" ,aws-c-common)
-       ("s2n" ,s2n)))
+     (list aws-c-cal aws-c-common s2n))
     (synopsis "Event driven framework for implementing application protocols")
     (description "This library provides a C99 framework for constructing
 event-driven, asynchronous network application protocols.")
@@ -669,7 +656,8 @@ event-driven, asynchronous network application protocols.")
 (define-public aws-c-cal
   (package
     (name "aws-c-cal")
-    (version "0.4.5")
+    ; Update only when updating aws-crt-cpp.
+    (version "0.5.12")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -678,14 +666,15 @@ event-driven, asynchronous network application protocols.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "04acra1mnzw9q7jycs5966akfbgnx96hkrq90nq0dhw8pvarlyv6"))
-              (patches (search-patches "aws-c-cal-cmake-prefix.patch"))))
+                "09zqf610x4g2mcjcaf9nh88k6dkw14pi721yr8hxb5rmsx7rlfrb"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
-       '("-DBUILD_SHARED_LIBS=ON")))
+       (list "-DBUILD_SHARED_LIBS=ON"
+             (string-append "-DCMAKE_PREFIX_PATH="
+                            (assoc-ref %build-inputs "aws-c-common")))))
     (propagated-inputs
-     `(("aws-c-common" ,aws-c-common)))
+     (list aws-c-common))
     (inputs
      `(("openssl" ,openssl)
        ("openssl:static" ,openssl "static")))
@@ -713,3 +702,154 @@ cryptographic primitives for the @acronym{AWS,Amazon Web Services} SDK.")
     (description "The @acronym{PCL, Portable Coroutine Library} implements the
 low level functionality for coroutines.")
     (license license:gpl2+)))
+
+(define-public aws-c-http
+  (package
+    (name "aws-c-http")
+    ; Update only when updating aws-crt-cpp.
+    (version "0.6.7")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/awslabs/" name))
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1s06bz6w7355ldyhwjidcpbff7591ch4lwwjcj47a6k2kczdmiz4"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags
+       (list "-DBUILD_SHARED_LIBS=ON"
+             (string-append "-DCMAKE_PREFIX_PATH="
+                            (assoc-ref %build-inputs "aws-c-common"))
+             "-DENABLE_NET_TESTS=OFF")))
+    (propagated-inputs
+     (list aws-c-compression aws-c-io))
+    (synopsis "Amazon Web Services HTTP library")
+    (description
+     "This library provides a C99 implementation of the HTTP/1.1 and HTTP/2
+specifications.")
+    (home-page "https://github.com/awslabs/aws-c-http")
+    (license license:asl2.0)))
+
+(define-public aws-c-compression
+  (package
+    (name "aws-c-compression")
+    ; Update only when updating aws-crt-cpp.
+    (version "0.2.14")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/awslabs/" name))
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0fs3zhhzxsb9nfcjpvfbcq79hal7si2ia1c09scab9a8m264f4vd"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags
+       (list "-DBUILD_SHARED_LIBS=ON"
+             (string-append "-DCMAKE_PREFIX_PATH="
+                            (assoc-ref %build-inputs "aws-c-common")))))
+    (propagated-inputs
+     (list aws-c-common))
+    (synopsis "Amazon Web Services compression library")
+    (description
+     "This library provides a C99 implementation of compression algorithms,
+currently limited to Huffman encoding and decoding.")
+    (home-page "https://github.com/awslabs/aws-c-compression")
+    (license license:asl2.0)))
+
+(define-public aws-c-auth
+  (package
+    (name "aws-c-auth")
+    ; Update only when updating aws-crt-cpp.
+    (version "0.6.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/awslabs/" name))
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "120p69lj279yq3d2b81f45kgfrvf32j6m7s03m8hh27w8yd4vbfp"))
+              (patches
+               (search-patches
+                "aws-c-auth-install-private-headers.patch"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags
+       (list "-DBUILD_SHARED_LIBS=ON"
+             (string-append "-DCMAKE_PREFIX_PATH="
+                            (assoc-ref %build-inputs "aws-c-common"))
+             "-DENABLE_NET_TESTS=OFF")))
+    (propagated-inputs
+     (list aws-c-cal aws-c-common aws-c-http aws-c-io))
+    (synopsis "Amazon Web Services client-side authentication library")
+    (description
+     "This library provides a C99 implementation for AWS client-side
+authentication.")
+    (home-page "https://github.com/awslabs/aws-c-auth")
+    (license license:asl2.0)))
+
+(define-public aws-c-s3
+  (package
+    (name "aws-c-s3")
+    ; Update only when updating aws-crt-cpp.
+    (version "0.1.26")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/awslabs/" name))
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0gaxnwwk0jbvkgjnxcgchq13xmn7jk5vjvjsps6b0vaz6bf12wv8"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags
+       (list "-DBUILD_SHARED_LIBS=ON"
+             (string-append "-DCMAKE_PREFIX_PATH="
+                            (assoc-ref %build-inputs "aws-c-common"))
+             "-DENABLE_NET_TESTS=OFF")))
+    (propagated-inputs
+     (list aws-c-auth aws-c-http))
+    (synopsis "Amazon Web Services client library for Amazon S3")
+    (description
+     "This library provides a C99 client implementation of the Simple Storage
+Service (S3) protocol for object storage.")
+    (home-page "https://github.com/awslabs/aws-c-s3")
+    (license license:asl2.0)))
+
+(define-public aws-c-mqtt
+  (package
+    (name "aws-c-mqtt")
+    ; Update only when updating aws-crt-cpp.
+    (version "0.7.8")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/awslabs/" name))
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "19j6nw2v36c4yff4p0fbf0748s06fd5r9cp2yakry9ybn1ada99c"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags
+       (list "-DBUILD_SHARED_LIBS=ON"
+             (string-append "-DCMAKE_PREFIX_PATH="
+                            (assoc-ref %build-inputs "aws-c-common")))))
+    (propagated-inputs
+     (list aws-c-http aws-c-io))
+    (synopsis "Amazon Web Services MQTT library")
+    (description
+     "This library provides a C99 implementation of the Message Queuing
+Telemetry Transport (MQTT) publish-subscribe messaging protocol.")
+    (home-page "https://github.com/awslabs/aws-c-mqtt")
+    (license license:asl2.0)))
diff --git a/gnu/packages/calcurse.scm b/gnu/packages/calcurse.scm
index b44f88fea9..5da701492b 100644
--- a/gnu/packages/calcurse.scm
+++ b/gnu/packages/calcurse.scm
@@ -39,8 +39,8 @@
        (sha256
         (base32 "0cgkd285x5pk62lmdx9fjxl46c5lj8wj2cqbxq7d99yb4il5fdjk"))))
     (build-system gnu-build-system)
-    (inputs `(("ncurses" ,ncurses)))
-    (native-inputs `(("tzdata" ,tzdata-for-tests)))
+    (inputs (list ncurses))
+    (native-inputs (list tzdata-for-tests))
     (arguments
      ;; The ical tests all want to create a ".calcurse" directory, and may
      ;; fail with "cannot create directory '.calcurse': File exists" if run
diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
index a5ef2fff62..129eb58aa0 100644
--- a/gnu/packages/calendar.scm
+++ b/gnu/packages/calendar.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;; Copyright © 2020 Peng Mei Yu <pengmeiyu@riseup.net>
+;;; Copyright © 2021 Wamm K. D. <jaft.r@outlook.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -36,6 +37,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages check)
   #:use-module (gnu packages dav)
@@ -78,7 +80,7 @@
           ;; Install pkg-config files
           ;; https://github.com/HowardHinnant/date/pull/538
           (search-patches "date-output-pkg-config-files.patch"))))
-      (inputs `(("tzdata" ,tzdata)))
+      (inputs (list tzdata))
       (build-system cmake-build-system)
       (arguments
        '(#:configure-flags (list "-DUSE_SYSTEM_TZ_DB=ON"
@@ -156,19 +158,17 @@ the <tz.h> library for handling time zones and leap seconds.")
                  (("\\\"/usr/share/lib/zoneinfo\\\"") "")))
              #t)))))
     (native-inputs
-     `(("docbook-xml" ,docbook-xml-4.3)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("vala" ,vala)))
+     (list docbook-xml-4.3
+           gobject-introspection
+           gtk-doc/stable
+           perl
+           pkg-config
+           vala))
     (inputs
-     `(("glib" ,glib)
-       ("libxml2" ,libxml2)
-       ("tzdata" ,tzdata)))
+     (list glib libxml2 tzdata))
     (propagated-inputs
      ;; In Requires.private of libical.pc.
-     `(("icu4c" ,icu4c)))
+     (list icu4c))
     (home-page "https://libical.github.io/libical/")
     (synopsis "iCalendar protocols and data formats implementation")
     (description
@@ -202,23 +202,22 @@ data units.")
              (string-append (assoc-ref outputs "out") "/share/man/man1"))
             #t)))))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)
-       ;; Required to build manpage
-       ("python-sphinxcontrib-newsfeed" ,python-sphinxcontrib-newsfeed)
-       ("python-sphinx" ,python-sphinx)))
+     (list python-setuptools-scm
+           ;; Required to build manpage
+           python-sphinxcontrib-newsfeed python-sphinx))
     (inputs
-     `(("sqlite" ,sqlite)
-       ("python-configobj" ,python-configobj)
-       ("python-dateutil" ,python-dateutil)
-       ("python-icalendar" ,python-icalendar)
-       ("python-tzlocal" ,python-tzlocal)
-       ("python-urwid" ,python-urwid)
-       ("python-pytz" ,python-pytz)
-       ("python-setproctitle" ,python-setproctitle)
-       ("python-atomicwrites" ,python-atomicwrites)
-       ("python-click" ,python-click)
-       ("python-click-log" ,python-click-log)
-       ("python-pyxdg" ,python-pyxdg)))
+     (list sqlite
+           python-configobj
+           python-dateutil
+           python-icalendar
+           python-tzlocal
+           python-urwid
+           python-pytz
+           python-setproctitle
+           python-atomicwrites
+           python-click
+           python-click-log
+           python-pyxdg))
     (synopsis "Console calendar program")
     (description "Khal is a standards based console calendar program,
 able to synchronize with CalDAV servers through vdirsyncer.")
@@ -273,10 +272,7 @@ able to synchronize with CalDAV servers through vdirsyncer.")
                 (list "bin/cm2rem.tcl"
                       "bin/tkremind"))))))))
     (inputs
-     `(("inetutils" ,inetutils)
-       ("tcl" ,tcl)
-       ("tcllib" ,tcllib)
-       ("tk" ,tk)))
+     (list inetutils tcl tcllib tk))
     (home-page "https://dianne.skoll.ca/projects/remind/")
     (synopsis "Sophisticated calendar and alarm program")
     (description
@@ -345,9 +341,9 @@ and ruby.  It includes two illustrative command-line programs, @code{hcal} and
                #t))))
        #:tests? #f)) ; no tests
     (native-inputs
-     `(("perl" ,perl))) ; pod2man
+     (list perl)) ; pod2man
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (home-page "https://www.toastfreeware.priv.at/confclerk")
     (synopsis "Offline conference schedule application")
     (description
@@ -405,3 +401,29 @@ traditional Chinese characters.")
     ;; COPYING.LESSER specifies LGPL 3.0, but all source files say
     ;; 'Lesser GPL version 2 or later'.
     (license (list license:gpl2+ license:lgpl2.1+))))
+
+(define-public gsimplecal
+  (let ((version "2.2"))
+    (package
+      (name "gsimplecal")
+      (version version)
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/dmedvinsky/gsimplecal/")
+                      (commit (string-append "v" version))))
+                (file-name (git-file-name name version))
+                (sha256 (base32
+                         "1qyf65l088dqsz25hm6s1cv18j52yaias0llqvpqwjfnvssa5cxg"))
+                (modules '((guix build utils)))))
+      (build-system gnu-build-system)
+      (inputs (list gtk+))
+      (native-inputs
+       (list autoconf automake pkg-config))
+      (home-page "https://dmedvinsky.github.io/gsimplecal/")
+      (synopsis "Lightweight calendar applet")
+      (description "@command{gsimplecal} is a lightweight calendar application
+written in C++ using GTK.  Launched once, it pops up a small calendar applet,
+launched again it closes the running instance.  It can additionally be
+configured to show the current time in different timezones.")
+      (license license:bsd-3))))
diff --git a/gnu/packages/ccache.scm b/gnu/packages/ccache.scm
index 77098658cf..2923a998c8 100644
--- a/gnu/packages/ccache.scm
+++ b/gnu/packages/ccache.scm
@@ -20,6 +20,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages ccache)
+  #:use-module (guix gexp)
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:select (gpl3+))
   #:use-module (guix download)
@@ -31,37 +32,37 @@
 (define-public ccache
   (package
     (name "ccache")
-    (version "4.4")
+    (version "4.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/ccache/ccache/releases/download/v"
                            version "/ccache-" version ".tar.xz"))
        (sha256
-        (base32 "0qbmcs6c3m071vsd1ppa31r8s0dzpaw5y38z8ga1bz48rwpfl2xl"))))
+        (base32 "05wmflxdc8h3d00gr3kilr5dmrqxj6lcmq9ic575ydi60fz6w62i"))))
     (build-system cmake-build-system)
-    (native-inputs `(("perl" ,perl)     ; for test/run
-                     ("which" ,(@ (gnu packages base) which))))
-    (inputs `(("zlib" ,zlib)
-              ("zstd" ,zstd "lib")))
+    (native-inputs (list perl ; for test/run
+                         (@ (gnu packages base) which)))
+    (inputs (list zlib
+                  `(,zstd "lib")))
     (arguments
-     '(;; Disable redis backend explicitly. Build system insists on present dependency
-       ;; or on explicit flag.
-       #:configure-flags
-       '("-DREDIS_STORAGE_BACKEND=OFF")
-
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'setup-tests
-           (lambda _
-             (substitute* '("unittest/test_hashutil.cpp" "test/suites/base.bash")
-               (("#!/bin/sh") (string-append "#!" (which "sh"))))
-             #t))
-         (add-before 'check 'set-home
-           ;; Tests require a writable HOME.
-           (lambda _
-             (setenv "HOME" (getenv "TMPDIR"))
-             #t)))))
+     (list #:configure-flags
+           ;; The backend must be explicitly disabled to build without Redis.
+           #~(list "-DREDIS_STORAGE_BACKEND=OFF")
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-before 'configure 'fix-shell
+                 ;; Run early whilst we're still in the source directory.
+                 (lambda _
+                   (substitute* (list "test/run"
+                                      "test/suites/base.bash"
+                                      "unittest/test_hashutil.cpp")
+                     (("compgen -e") "env | cut -d= -f1")
+                     (("#!/bin/sh") (string-append "#!" (which "sh"))))))
+               (add-before 'check 'set-home
+                 ;; Tests require a writable HOME.
+                 (lambda _
+                   (setenv "HOME" (getenv "TMPDIR")))))))
     (home-page "https://ccache.dev/")
     (synopsis "Compiler cache")
     (description
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 6c3873a21d..2a444eb7f6 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -118,11 +118,9 @@ caching facility provided by the library.")
                "0avi6apv5ydjy6b9c3z9a46rvp5i57qyr09vr7x4nndxkmcfjl45"))))
     (build-system gnu-build-system)
     (inputs
-     `(("ncurses" ,ncurses)
-       ("libcddb" ,libcddb)))
+     (list ncurses libcddb))
     (native-inputs
-     `(("help2man" ,help2man)
-       ("pkg-config" ,pkg-config)))
+     (list help2man pkg-config))
     (home-page "https://www.gnu.org/software/libcdio/")
     (synopsis "CD Input and Control library")
     (description
@@ -147,8 +145,8 @@ extraction from CDs.")
               (base32
                "12hfnrq7amv9qjzc92cr265m7kh0a1hpasck8cxx1gygbhqczc9k"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (propagated-inputs `(("libcdio" ,libcdio)))
+    (native-inputs (list pkg-config))
+    (propagated-inputs (list libcdio))
     (home-page "https://www.gnu.org/software/libcdio/")
     (synopsis "Jitter- and error-tolerant CD audio extraction")
     (description
@@ -198,10 +196,7 @@ libcdio.")
                  `("PATH" ":" prefix (,(string-append out "/bin"))))
                #t))))))
     (inputs
-     `(("acl" ,acl)
-       ("readline" ,readline)
-       ("tk" ,tk)
-       ("zlib" ,zlib)))
+     (list acl readline tk zlib))
     (home-page "https://www.gnu.org/software/xorriso/")
     (synopsis "Create, manipulate, burn ISO-9660 file systems")
     (description
@@ -231,13 +226,16 @@ files.")
               '(begin
                  ;; Make libraries respect LDFLAGS.
                  (substitute* '("paranoia/Makefile.in" "interface/Makefile.in")
-                   (("-Wl,-soname") "$(LDFLAGS) -Wl,-soname"))
-                 #t))))
+                   (("-Wl,-soname") "$(LDFLAGS) -Wl,-soname"))))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; there is no check target
+       #:parallel-build? #f             ;randomly fails to link
        #:configure-flags ; Add $libdir to the RUNPATH of all the executables.
-       (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))))
+       (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
+       ;; Building in parallel is flaky: “ld: […]/cachetest.c:393: undefined
+       ;; reference to `paranoia_free'”.
+       #:parallel-build? #f))
     (home-page "https://www.xiph.org/paranoia/")
     (synopsis "Audio CD reading utility")
     (description "Cdparanoia retrieves audio tracks from CDDA capable CDROM
@@ -280,14 +278,9 @@ reconstruction capability.")
              (substitute* "configure.ac" (("^AM_GCONF_SOURCE_2.*") ""))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
-     `(("ao" ,ao)
-       ("lame" ,lame)
-       ("libmad" ,libmad)
-       ("libvorbis" ,libvorbis)))
+     (list ao lame libmad libvorbis))
     (home-page "http://cdrdao.sourceforge.net")
     (synopsis "Read and write CDs in disk-at-once mode")
     (description "cdrdao records audio or data CDs in disk-at-once (DAO) mode,
@@ -325,8 +318,6 @@ format, commonly used for VCDs or disks with subchannel data.")
               (patches (search-patches "cdrtools-3.01-mkisofs-isoinfo.patch"))))
     (build-system gnu-build-system)
     ;; XXX cdrtools bundles a modified, relicensed early version of cdparanoia.
-    (inputs
-     `(("linux-headers" ,linux-libre-headers)))
     (arguments
      `(#:make-flags
        (list "RM=rm" "LN=ln" "SYMLINK=ln -s"
@@ -343,7 +334,7 @@ format, commonly used for VCDs or disks with subchannel data.")
            (lambda _
              (substitute* "autoconf/configure"
                (("/usr/src/linux")
-                (assoc-ref %build-inputs "linux-headers")))
+                (assoc-ref %build-inputs "kernel-headers")))
              #t))
          (add-before 'build 'substitute-dirs
            (lambda _
@@ -379,9 +370,9 @@ images.")
               (patches (search-patches "dvd+rw-tools-add-include.patch"))))
     (build-system gnu-build-system)
     (inputs
-     `(("cdrtools" ,cdrtools)))
+     (list cdrtools))
     (native-inputs
-     `(("m4" ,m4)))
+     (list m4))
     (arguments
      `(#:tests? #f ; No tests.
        #:phases
@@ -417,19 +408,17 @@ or @command{xorrisofs} to create ISO 9660 images.")
 (define-public dvdisaster
   (package
     (name "dvdisaster")
-    (version "0.79.5")
+    (version "0.79.9")
     (source
      (origin
        (method url-fetch)
-       ;; Update this (and update HOME-PAGE) when/if one reappears.
-       (uri (string-append "https://web.archive.org/web/20180428070843/"
-                           "http://dvdisaster.net/downloads/dvdisaster-"
+       (uri (string-append "https://dvdisaster.jcea.es/downloads/dvdisaster-"
                            version ".tar.bz2"))
        (sha256
-        (base32 "0f8gjnia2fxcbmhl8b3qkr5b7idl8m855dw7xw2fnmbqwvcm6k4w"))))
+        (base32 "1hz3fvqfdrwb7dn6ggqkpcgyjag37ivm1layw27ncjz9glklxjbr"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gtk+" ,gtk+-2)))
+     (list gtk+-2))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)
@@ -445,8 +434,7 @@ or @command{xorrisofs} to create ISO 9660 images.")
              (with-directory-excursion "regtest"
                (substitute* "common.bash"
                  (("ISODIR=/var/tmp/regtest") "ISODIR=/tmp"))
-               (for-each invoke (find-files "." "rs.*\\.bash")))
-             #t))
+               (for-each invoke (find-files "." "rs.*\\.bash")))))
          (add-after 'install 'install-desktop
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((datadir (string-append (assoc-ref outputs "out") "/share")))
@@ -466,10 +454,13 @@ or @command{xorrisofs} to create ISO 9660 images.")
                 (find-files "contrib" "dvdisaster[0-9]*\\.png"))
                (mkdir-p (string-append datadir "/pixmaps"))
                (copy-file "contrib/dvdisaster48.xpm"
-                          (string-append datadir "/pixmaps/dvdisaster.xpm"))
-               #t))))))
-    (home-page (string-append "https://web.archive.org/web/20180428070843/"
-                              "http://dvdisaster.net/en/index.html"))
+                          (string-append datadir "/pixmaps/dvdisaster.xpm")))))
+         (add-after 'install 'remove-uninstall-script
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (delete-file
+                (string-append out "/bin/dvdisaster-uninstall.sh"))))))))
+    (home-page "https://dvdisaster.jcea.es/")
     (synopsis "Error correcting codes for optical media images")
     (description "Optical media (CD,DVD,BD) keep their data only for a
 finite time (typically for many years).  After that time, data loss develops
@@ -569,8 +560,7 @@ graphical interface.")
     (arguments
      `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (home-page "https://github.com/lipnitsk/libcue")
     (synopsis "C library to parse cue sheets")
     (description "Libcue is a C library to parse so-called @dfn{cue sheets}
@@ -681,20 +671,18 @@ from an audio CD.")
              #t)))
        #:tests? #f)) ; no test target
 
-    (inputs `(("wget" ,wget)
-              ("which" ,which)
-              ("cdparanoia" ,cdparanoia)
-              ("cd-discid" ,cd-discid)
-              ("vorbis-tools" ,vorbis-tools)
-              ("flac" ,flac)
-
-              ("perl-musicbrainz-discid" ,perl-musicbrainz-discid)
-              ("perl-webservice-musicbrainz" ,perl-webservice-musicbrainz)
-              ("perl-mojolicious" ,perl-mojolicious) ;indirect dependency
-
-              ;; A couple of Python and Perl scripts are included.
-              ("python" ,python)
-              ("perl" ,perl)))
+    (inputs (list wget
+                  which
+                  cdparanoia
+                  cd-discid
+                  vorbis-tools
+                  flac
+                  perl-musicbrainz-discid
+                  perl-webservice-musicbrainz
+                  perl-mojolicious ;indirect dependency
+                  ;; A couple of Python and Perl scripts are included.
+                  python
+                  perl))
 
     (synopsis "Command-line audio CD ripper")
     (description
@@ -727,7 +715,7 @@ and/or MPP/MP+ (Musepack) format, and tags them, all in one go.")
              (let ((out (assoc-ref outputs "out")))
                (install-file "geteltorito"
                              (string-append out "/bin"))))))))
-    (inputs `(("perl" ,perl)))
+    (inputs (list perl))
     (synopsis "Extract the boot image from a CD-ROM")
     (description
      "@command{geteltorito} can extract the initial/default boot
@@ -768,8 +756,7 @@ information is written to standard error.")
                                                       "flac"
                                                       "opus-tools"
                                                       "wavpack"))))))))))
-    (native-inputs `(("intltool" ,intltool)
-                     ("pkg-config" ,pkg-config)))
+    (native-inputs (list intltool pkg-config))
     ;; TODO: Add the necessary packages for Musepack encoding.
     (inputs `(("gtk+-2" ,gtk+-2)
               ("glib" ,glib)
@@ -820,15 +807,11 @@ session, and it can create M3U playlists.")
                (("\\$\\(DESTDIR\\)/usr/local") (assoc-ref outputs "out"))
                (("../../etc") "etc")))))))
     (native-inputs
-     `(("coreutils" ,coreutils)))
+     (list coreutils))
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (propagated-inputs
-     `(("cdparanoia" ,cdparanoia)
-       ("flac" ,flac)
-       ("vorbis-tools" ,vorbis-tools)
-       ("wavpack" ,wavpack)
-       ("perl-cddb-get" ,perl-cddb-get)))
+     (list cdparanoia flac vorbis-tools wavpack perl-cddb-get))
     (home-page (string-append "https://web.archive.org/web/20170119092156/"
                               "http://www.suwald.com/ripit/about.php"))
     (synopsis "Command-line program to extract audio CDs")
@@ -872,7 +855,7 @@ laid out on the image.")
                "0m1vyry6pi115nysfgb0cg313qqhnlxqdg7f920wpiar0z8mjl2j"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://dev.lovelyhq.com/libburnia/libburn")
     (synopsis "Library for reading and writing optical discs")
     (description
@@ -894,10 +877,9 @@ DVD-RW, DVD-R, DVD-R/DL, BD-R, and BD-RE.")
                "13m82l13cb5d7ca53dv3akma1jr9gw0hnnshdwqpj6ahly0fv85a"))))
     (build-system gnu-build-system)
     (inputs
-     `(("zlib" ,zlib)
-       ("acl" ,acl)))
+     (list zlib acl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://dev.lovelyhq.com/libburnia/libisofs")
     (synopsis "Library to create ISO 9660 images")
     (description
@@ -926,6 +908,7 @@ Supported extensions to ISO 9660 are Rock Ridge, Joliet, AAIP, zisofs.")
               (sha256
                (base32
                 "0g2zyzb56czh429qy87lvaddzjnlcq8c616ddxsmsshz3clhyzrh"))
+              (patches (search-patches "cdrkit-libre-cross-compile.patch"))
               (modules '((guix build utils)))
               (snippet
                 #~(begin
@@ -935,10 +918,7 @@ Supported extensions to ISO 9660 are Rock Ridge, Joliet, AAIP, zisofs.")
                        "extern char\t*outfile"))))))
     (build-system cmake-build-system)
     (inputs
-     `(("bzip2" ,bzip2)
-       ("libcap" ,libcap)
-       ("perl" ,perl)
-       ("zlib" ,zlib)))
+     (list bzip2 libcap perl zlib))
     (arguments
      `(#:tests? #f ;no tests
        #:phases
@@ -971,10 +951,9 @@ CD data, and more.  It's mostly compatible with @code{cdrtools}.")
                 "0f8i2ha44rykkk3ac2q8zsw3y1zckw6qnf6zvkyrj3qqbzhrf3fm"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (arguments
      ;; No tests.
      '(#:tests? #f))
@@ -1000,12 +979,9 @@ the data stored in various image formats.")
                 "16g6fv1lxkdmbsy6zh5sj54dvgwvm900fd18aq609yg8jnqm644d"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("libmirage" ,libmirage)
-       ("glib" ,glib)
-       ("ao" ,ao)))
+     (list libmirage glib ao))
     (arguments
      ;; No tests.
      '(#:tests? #f))
@@ -1029,12 +1005,9 @@ drive and disc (including CD-ROMs and DVD-ROMs).")
                 "1prrdhv0ia0axc6b73crszqzh802wlkihz6d100yvg7wbgmqabd7"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("python" ,python)
-       ("python-pygobject" ,python-pygobject)
-       ("cdemu-daemon" ,cdemu-daemon)))
+     (list python python-pygobject cdemu-daemon))
     (arguments
      ;; No tests.
      `(#:tests? #f
diff --git a/gnu/packages/cedille.scm b/gnu/packages/cedille.scm
index decaf25605..1f00e8f698 100644
--- a/gnu/packages/cedille.scm
+++ b/gnu/packages/cedille.scm
@@ -42,11 +42,7 @@
         (base32
          "1h5s6ayh3s76z184jai3jidcs4cjk8s4nvkkv2am8dg4gfsybq22"))))
     (inputs
-     `(("agda" ,agda)
-       ("agda-ial" ,agda-ial)
-       ("ghc" ,ghc)
-       ("ghc-alex" ,ghc-alex)
-       ("ghc-happy" ,ghc-happy)))
+     (list agda agda-ial ghc ghc-alex ghc-happy))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm
index 39c3ebd128..28c2f84f98 100644
--- a/gnu/packages/certs.scm
+++ b/gnu/packages/certs.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -33,7 +33,6 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
-  #:use-module (gnu packages nss)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages python)
   #:use-module (gnu packages perl)
@@ -76,7 +75,7 @@
          #:install-plan
          '(("." "etc/desec" #:include ("hook.sh")))))
       (inputs
-       `(("curl" ,curl)))
+       (list curl))
       (synopsis "Certbot DNS challenge automatization for deSEC")
       (description "The deSEC can be used to obtain certificates with certbot
 DNS ownership verification.  With the help of this hook script, you can obtain
@@ -86,7 +85,7 @@ port forwarding to your local machine.")
       (home-page "https://desec.io")
       (license license:expat))))
 
-(define certdata2pem
+(define-public certdata2pem
   (let ((revision "1")
         (commit "4c576f350f44186d439179f63d5be19f710a73f5"))
     (package
@@ -128,7 +127,10 @@ that was originally contributed to Debian.")
 (define-public nss-certs
   (package
     (name "nss-certs")
-    (version "3.67")
+    ;; XXX We used to refer to the nss package here, but that eventually caused
+    ;; module cycles.  The below is a quick copy-paste job that must be kept in
+    ;; sync manually.  Surely there's a better way…?
+    (version "3.71")
     (source (origin
               (method url-fetch)
               (uri (let ((version-with-underscores
@@ -139,12 +141,21 @@ that was originally contributed to Debian.")
                       "nss-" version ".tar.gz")))
               (sha256
                (base32
-                "0zyfi27lbdz1bmk9dmsivcya4phx25rzlxqcnjab69yd928rlm7n"))))
+                "0ly2l3dv6z5hlxs72h5x6796ni3x1bq60saavaf42ddgv4ax7b4r"))
+              ;; Create nss.pc and nss-config.
+              (patches (search-patches "nss-3.56-pkgconfig.patch"
+                                       "nss-getcwd-nonnull.patch"
+                                       "nss-increase-test-timeout.patch"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Delete the bundled copy of these libraries.
+                  (delete-file-recursively "nss/lib/zlib")
+                  (delete-file-recursively "nss/lib/sqlite")))))
     (build-system gnu-build-system)
     (outputs '("out"))
     (native-inputs
-     `(("certdata2pem" ,certdata2pem)
-       ("openssl" ,openssl)))
+     (list certdata2pem openssl))
     (inputs '())
     (propagated-inputs '())
     (arguments
@@ -211,8 +222,7 @@ taken from the NSS package and thus ultimately from the Mozilla project.")
                    (string-append openssl "/bin/c_rehash")
                    ".")))))
     (native-inputs
-     `(("openssl" ,openssl)
-       ("perl" ,perl)))                           ;for 'c_rehash'
+     (list openssl perl))                           ;for 'c_rehash'
     (inputs
      `(; The Let's Encrypt root certificate, "ISRG Root X1".
        ("isrgrootx1.pem"
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 7b08f55e21..0a90a3b167 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -103,11 +103,9 @@
         (base32 "0lsg791x6n95pxg6vif8qfc46nqcamhjq3g0dl5xqf6imy7n3acd"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("clang" ,clang)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)))
+     (list clang pkg-config python-wrapper))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (synopsis "Code checker for C")
     (description "Pedansee checks C source files for compliance with a particular
 programming style.  The style is currently defined by the pedansee source code
@@ -248,7 +246,7 @@ source code editors and IDEs.")
                              (string-append out "/share/doc/clitest-" ,version))
                #t))))))
     (native-inputs
-     `(("perl" ,perl)))                 ;for tests
+     (list perl))                 ;for tests
     (synopsis "Command line test tool")
     (description
      "@command{clitest} is a portable shell script that performs automatic
@@ -276,9 +274,7 @@ testing of Unix command lines.")
                    (replace 'bootstrap
                      (lambda _ (invoke "autoreconf" "-vfi"))))))
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("libtool" ,libtool)))
+     (list automake autoconf libtool))
     (home-page "http://cunit.sourceforge.net/")
     (synopsis "Automated testing framework for C")
     (description
@@ -437,7 +433,7 @@ a multi-paradigm automated test framework for C++ and Objective-C.")
                 "100r0kmra8jmra2hv92lzvwcmphpaiccwvq3lpdsa5b7hailhach"))))
     (build-system cmake-build-system)
     (inputs
-     `(("python" ,python-wrapper)))
+     (list python-wrapper))
     (synopsis "Automated test framework for C++ and Objective-C")
     (description "Catch2 stands for C++ Automated Test Cases in Headers and is
 a multi-paradigm automated test framework for C++ and Objective-C.")
@@ -460,12 +456,9 @@ a multi-paradigm automated test framework for C++ and Objective-C.")
     (build-system python-build-system)
     (arguments `(#:tests? #f))          ;requires Python 2!
     (native-inputs
-     `(("python-coverage-test-runner" ,python-coverage-test-runner)
-       ("python" ,python)))
+     (list python-coverage-test-runner python))
     (inputs
-     `(("python-cliapp" ,python-cliapp)
-       ("python-markdown" ,python-markdown)
-       ("python-ttystatus" ,python-ttystatus)))
+     (list python-cliapp python-markdown python-ttystatus))
     (home-page "https://liw.fi/cmdtest/")
     (synopsis "Black box Unix program tester")
     (description
@@ -559,7 +552,7 @@ normally do not detect.  The goal is to detect only real errors in the code
                (copy-recursively "../sample" (string-append doc-dir "/sample"))
                #t))))))
     (propagated-inputs
-     `(("python-ply" ,python-ply)))
+     (list python-ply))
     (home-page "https://cxxtest.com/")
     (synopsis "Unit testing framework for C++")
     (description "CxxTest is a unit testing framework for C++ that is similar
@@ -587,32 +580,6 @@ and it supports a very flexible form of test discovery.")
 has been designed to be fast, light and unintrusive.")
     (license license:expat)))
 
-(define-public go-gopkg.in-check.v1
-  (let ((commit "788fd78401277ebd861206a03c884797c6ec5541")
-        (revision "1"))
-    (package
-      (name "go-gopkg.in-check.v1")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/go-check/check")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "gopkg.in/check.v1"))
-      (propagated-inputs
-       `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
-      (synopsis "Rich testing extension for Go's testing package")
-      (description
-       "@code{check} is a rich testing extension for Go's testing package.")
-      (home-page "https://github.com/go-check/check")
-      (license license:bsd-2))))
-
 (define-public go-github.com-smartystreets-gunit
   (package
     (name "go-github.com-smartystreets-gunit")
@@ -660,7 +627,7 @@ test) much simpler.")
     (arguments
      '(#:import-path "github.com/smartystreets/assertions"))
     (native-inputs
-     `(("go-github.com-smartystreets-gunit" ,go-github.com-smartystreets-gunit)))
+     (list go-github.com-smartystreets-gunit))
     (synopsis "Assertions for testing with Go")
     (description
      "The @code{assertions} package provides convenient assertion functions
@@ -685,8 +652,7 @@ for writing tests in Go.")
     (arguments
      '(#:import-path "github.com/smartystreets/goconvey"))
     (propagated-inputs
-     `(("go-github.com-jtolds-gls" ,go-github.com-jtolds-gls)
-       ("go-github.com-smartystreets-assertions" ,go-github.com-smartystreets-assertions)))
+     (list go-github.com-jtolds-gls go-github.com-smartystreets-assertions))
     (synopsis "Go testing tool with both a web and terminal user interface")
     (description
      "GoConvey is a testing tool for Go. It integrates with go test, can show
@@ -697,7 +663,7 @@ test coverage and has a web user interface that will refresh automatically.")
 (define-public googletest
   (package
     (name "googletest")
-    (version "1.10.0")
+    (version "1.11.0")
     (source
      (origin
        (method git-fetch)
@@ -706,7 +672,7 @@ test coverage and has a web user interface that will refresh automatically.")
              (commit (string-append "release-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1zbmab9295scgg4z2vclgfgjchfjailjnvzc6f5x9jvlsdi3dpwz"))))
+        (base32 "0pd4y1gpx1z8fiyarkvqlmk6hbv0lc8fr00ivnsvqzi1xg34jfaa"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
@@ -774,7 +740,7 @@ similar to unit tests.")
          "1xslavlb1974y5xvs8n1j9zkk05dlw8imy4saasrjlmibl895ii1"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("googletest" ,googletest)))
+     (list googletest))
     (home-page "https://cpputest.github.io/")
     (synopsis "Unit testing and mocking framework for C/C++")
     (description
@@ -803,8 +769,7 @@ but it works for any C/C++ project.")
                           (format #t "test suite not run~%"))
                       #t)))))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)))
+     (list python-mock python-nose))
     (home-page "https://github.com/wolever/parameterized")
     (synopsis "Parameterized testing with any Python test framework")
     (description
@@ -856,7 +821,7 @@ doctest.")
         (base32
          "1hrp6j0yrx2xzylfv02qa8kph661m6yq4p0mc8fnimch9j4psrc3"))))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (build-system python-build-system)
     (arguments
      ;; FIXME: Tests require "pytest", which depends on this package.
@@ -917,9 +882,7 @@ available via the @code{unittest.mock} module.")
     (build-system python-build-system)
     (arguments `(#:tests? #f)) ; 'module' object has no attribute 'collector'
     (propagated-inputs
-     `(("python-cov-core" ,python-cov-core)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-six" ,python-six)))
+     (list python-cov-core python-pytest-cov python-six))
     (home-page "https://github.com/nose-devs/nose2")
     (synopsis "Next generation of nicer testing for Python")
     (description
@@ -954,8 +917,7 @@ interfaces and processes.")
            (lambda _
              (zero? (system* "python" "-m" "unittest2" "discover" "--verbose")))))))
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-traceback2" ,python-traceback2)))
+     (list python-six python-traceback2))
     (home-page "https://pypi.org/project/unittest2/")
     (synopsis "Python unit testing library")
     (description
@@ -969,25 +931,31 @@ standard library.")
 (define-public python-pytest
   (package
     (name "python-pytest")
-    (version "6.2.1")
+    (version "6.2.5")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pytest" version))
        (sha256
         (base32
-         "01n3jny7m05r6g7gphbkj2xdms75ql93x69crd377hlvi6qikr36"))))
+         "12cyi0lnyaq8sdqfnqlppd76gkw6zcg10gyih5knx9v611l3c6qk"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         (add-before 'build 'pretend-version
+           ;; The version string is usually derived via setuptools-scm, but
+           ;; without the git metadata available, the version string is set to
+           ;; '0.0.0'.
+           (lambda _
+             (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" ,version)))
          (replace 'check
            (lambda* (#:key (tests? #t) #:allow-other-keys)
              (setenv "TERM" "dumb")     ;attempt disabling markup tests
              (if tests?
                  (invoke "pytest" "-vv" "-k"
                          (string-append
-                          ;; This test involve the /usr directory, and fails.
+                          ;; This test involves the /usr directory, and fails.
                           " not test_argcomplete"
                           ;; These test do not honor the isatty detection and
                           ;; fail.
@@ -1023,6 +991,17 @@ and many external plugins.")
     (license license:expat)
     (properties `((python2-variant . ,(delay python2-pytest))))))
 
+(define-public python-pytest-6.1
+  (package
+    (inherit python-pytest)
+    (version "6.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "pytest" version))
+        (sha256
+         (base32 "0gl2sdm322vzmsh5k4f8kj9raiq2y7kdinnca4m45ifvii5fk9y0"))))))
+
 (define-public python-pytest-6 python-pytest)
 
 ;; Pytest 4.x are the last versions that support Python 2.
@@ -1065,9 +1044,8 @@ and many external plugins.")
   (package
     (inherit (strip-python2-variant python-pytest))
     (name "python-pytest-bootstrap")
-    (native-inputs `(("python-iniconfig" ,python-iniconfig)
-                     ("python-setuptools-scm" ,python-setuptools-scm)
-                     ("python-toml" ,python-toml)))
+    (native-inputs (list python-iniconfig python-setuptools-scm
+                         python-toml))
     (arguments `(#:tests? #f))
     (properties `((python2-variant . ,(delay python2-pytest-bootstrap))))))
 
@@ -1093,6 +1071,38 @@ and many external plugins.")
         ("python-py" ,python2-py)
         ("python-wcwidth" ,python2-wcwidth))))))
 
+(define-public python-pytest-assume
+  (package
+    (name "python-pytest-assume")
+    (version "2.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-assume" version))
+       (sha256
+        (base32 "0zilqsy9fcjr6l2f9qzfxpkp40h24csnjm5mifhpmzb0fr9r0glq"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "pytest")))))))
+    (propagated-inputs
+     (list python-pytest python-six))
+    (home-page "https://github.com/astraw38/pytest-assume")
+    (synopsis "Pytest plugin that allows multiple failures per test")
+
+    (description "This package provides a Pytest plugin that allows multiple
+failures per test.  This is a fork from pytest-expect which includes the
+following improvements:
+@itemize
+@item showlocals support (the Pytest option)
+@item global usage support (a fixture is not required)
+@item output refinements and tweaks.
+@end itemize")
+    (license license:expat)))
+
 (define-public python-pytest-cov
   (package
     (name "python-pytest-cov")
@@ -1115,8 +1125,7 @@ and many external plugins.")
             (invoke "python" "./setup.py" "check"
                     "--strict" "--metadata"))))))
     (propagated-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-pytest" ,python-pytest)))
+     (list python-coverage python-pytest))
     (home-page "https://github.com/pytest-dev/pytest-cov")
     (synopsis "Pytest plugin for measuring coverage")
     (description
@@ -1140,15 +1149,15 @@ supports coverage of subprocesses.")
                 "0vbls0j570l5my83j4jnk5blmnir44i0w511azlh41nl6k8rac5f"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-werkzeug" ,python-werkzeug)))
+     (list python-werkzeug))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (add-before 'check 'fix-library-loading
            (lambda _
-             (setenv "PYTHONPATH" (string-append (getenv "PYTHONPATH") ":."))))
+             (setenv "GUIX_PYTHONPATH" (string-append (getenv "GUIX_PYTHONPATH") ":."))))
          (replace 'check
            (lambda _
              (invoke "pytest" "tests" "-vv")
@@ -1159,6 +1168,36 @@ supports coverage of subprocesses.")
 contacting the real http server.")
     (license license:expat)))
 
+(define-public python-pytest-random-order
+  (package
+    (name "python-pytest-random-order")
+    (version "1.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-random-order" version))
+       (sha256
+        (base32 "0lpzl218l04vjy4gckrbrcacc3w9xrjnvz64bf2i132c58s5j8bb"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "python" "-m" "pytest" "--random-order")))))))
+    (propagated-inputs
+     (list python-pytest))
+    (home-page "https://github.com/jbasko/pytest-random-order")
+    (synopsis "Pytest plugin to randomize the order of tests")
+    (description "@code{pytest-random-order} is a Pytest plugin that
+randomizes the order of tests.  This can be useful to detect a test that
+passes just because it happens to run after an unrelated test that leaves the
+system in a favourable state.  The plugin allows user to control the level of
+randomness they want to introduce and to disable reordering on subsets of
+tests.  Tests can be rerun in a specific order by passing a seed value
+reported in a previous test run.")
+    (license license:expat)))
+
 (define-public python-pytest-runner
   (package
     (name "python-pytest-runner")
@@ -1183,7 +1222,7 @@ contacting the real http server.")
                           (format #t "test suite not run~%"))
                       #t)))))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (home-page "https://github.com/pytest-dev/pytest-runner")
     (synopsis "Invoke py.test as a distutils command")
     (description
@@ -1230,7 +1269,7 @@ contacting the real http server.")
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "-vv"))))))
     (propagated-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/tvorog/pytest-lazy-fixture")
     (synopsis "Use fixtures in @code{pytest.mark.parametrize}")
     (description "This plugin helps to use fixtures in
@@ -1263,10 +1302,9 @@ contacting the real http server.")
                (invoke "pytest" "--assert=plain"
                        "-k" "not test_standalone_mock")))))))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-pytest-asyncio python-setuptools-scm))
     (propagated-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-asyncio" ,python-pytest-asyncio)))
+     (list python-pytest))
     (home-page "https://github.com/pytest-dev/pytest-mock/")
     (synopsis "Thin-wrapper around the mock package for easier use with py.test")
     (description
@@ -1280,11 +1318,23 @@ same arguments.")
 
 (define-public python2-pytest-mock
   (let ((base (package-with-python2
-                (strip-python2-variant python-pytest-mock))))
+               (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)
-         ,@(package-propagated-inputs base))))))
+         ("python2-pytest" ,python2-pytest))))))
 
 (define-public python-pytest-xdist
   (package
@@ -1322,12 +1372,9 @@ same arguments.")
                (invoke "pytest" "-vv"
                        "-n" (number->string (parallel-job-count)))))))))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (propagated-inputs
-     `(("python-execnet" ,python-execnet)
-       ("python-pytest" ,python-pytest)
-       ("python-py" ,python-py)
-       ("python-pytest-forked" ,python-pytest-forked)))
+     (list python-execnet python-pytest python-py python-pytest-forked))
     (home-page
      "https://github.com/pytest-dev/pytest-xdist")
     (synopsis
@@ -1380,10 +1427,9 @@ result back.")
                       (add-installed-pythonpath inputs outputs)
                       (invoke "pytest" "-vv"))))))
     (propagated-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-pytest python-pytest-cov))
     (native-inputs
-     `(("python-pexpect" ,python-pexpect)))
+     (list python-pexpect))
     (home-page "https://github.com/pytest-dev/pytest-timeout")
     (synopsis "Plugin for py.test to abort hanging tests")
     (description
@@ -1448,7 +1494,7 @@ side-effects (such as setting environment variables).")
          "0f4w84k8ck82syys7yg9maz93mqzc8p5ymis941x034v44jzq74m"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page (string-append "https://web.archive.org/web/20161029233413/"
                               "http://pythonpaste.org/scripttest/"))
     (synopsis "Python library to test command-line scripts")
@@ -1494,9 +1540,7 @@ subprocess and see the output as well as any file modifications.")
                (invoke "python" "-m" "testtools.run"
                        "testtools.tests.test_suite")))))))
     (propagated-inputs
-     `(("python-extras" ,python-extras)
-       ("python-fixtures" ,python-fixtures)
-       ("python-pbr" ,python-pbr)))
+     (list python-extras python-fixtures python-pbr))
     (native-inputs
      `(("python-testscenarios" ,python-testscenarios-bootstrap)))
     (description
@@ -1536,8 +1580,7 @@ compatibility.")))
     (inherit python-testscenarios-bootstrap)
     (name "python-testscenarios")
     (propagated-inputs
-     `(("python-pbr" ,python-pbr)
-       ("python-testtools" ,python-testtools)))
+     (list python-pbr python-testtools))
     (description
      "Testscenarios provides clean dependency injection for Python unittest
 style tests.")))
@@ -1571,11 +1614,10 @@ testresources package instead.")
     (inherit python-testresources-bootstrap)
     (name "python-testresources")
     (propagated-inputs
-     `(("python-pbr" ,python-pbr)))
+     (list python-pbr))
     (arguments '())
     (native-inputs
-     `(("python-fixtures" ,python-fixtures)
-       ("python-testtols" ,python-testtools)))
+     (list python-fixtures python-testtools))
     (description
      "Testresources is an extension to Python's unittest to allow declarative
 use of resources by test cases.")))
@@ -1593,12 +1635,10 @@ use of resources by test cases.")))
          "0j0ymmnc5nfxi1qzvy59j27viqca7l7xd0y9x29g7yr0h693j804"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-extras" ,python-extras)
-       ("python-testtools" ,python-testtools-bootstrap)))
+     (list python-extras python-testtools-bootstrap))
     (native-inputs
-     `(("python-fixtures" ,python-fixtures-bootstrap)
-       ("python-hypothesis" ,python-hypothesis)
-       ("python-testscenarios" ,python-testscenarios-bootstrap)))
+     (list python-fixtures-bootstrap python-hypothesis
+           python-testscenarios-bootstrap))
     (home-page "https://launchpad.net/subunit")
     (synopsis "Python implementation of the subunit protocol")
     (description
@@ -1611,12 +1651,9 @@ python-subunit package instead.")
     (inherit python-subunit-bootstrap)
     (name "python-subunit")
     (propagated-inputs
-     `(("python-extras" ,python-extras)
-       ("python-testtools" ,python-testtools)))
+     (list python-extras python-testtools))
     (native-inputs
-     `(("python-fixtures" ,python-fixtures)
-       ("python-hypothesis" ,python-hypothesis)
-       ("python-testscenarios" ,python-testscenarios)))
+     (list python-fixtures python-hypothesis python-testscenarios))
     (description
      "Python-subunit is a Python implementation of the subunit test streaming
 protocol.")))
@@ -1643,8 +1680,7 @@ protocol.")))
            ;; Package is not loadable on its own at this stage.
            (delete 'sanity-check))))
     (propagated-inputs
-     `(("python-pbr-minimal" ,python-pbr-minimal)
-       ("python-six" ,python-six)))
+     (list python-pbr-minimal python-six))
     (home-page "https://launchpad.net/python-fixtures")
     (synopsis "Python test fixture library")
     (description
@@ -1666,8 +1702,7 @@ python-fixtures package instead.")
                        "fixtures.test_suite")))))))
     (propagated-inputs
      ;; Fixtures uses pbr at runtime to check versions, etc.
-     `(("python-pbr" ,python-pbr)
-       ("python-six" ,python-six)))
+     (list python-pbr python-six))
     (native-inputs
      `(("python-mock" ,python-mock)
        ("python-testtools" ,python-testtools-bootstrap)))
@@ -1693,7 +1728,7 @@ Python tests.")))
        ("python-subunit" ,python-subunit-bootstrap)
        ("python-testtools" ,python-testtools-bootstrap)))
     (native-inputs
-     `(("python-mimeparse" ,python-mimeparse)))
+     (list python-mimeparse))
     (home-page "https://launchpad.net/testrepository")
     (synopsis "Database for Python test results")
     (description
@@ -1708,11 +1743,9 @@ Python tests.")))
      ;; FIXME: Many tests are failing.
      '(#:tests? #f))
     (propagated-inputs
-     `(("python-fixtures" ,python-fixtures)
-       ("python-subunit" ,python-subunit)
-       ("python-testtools" ,python-testtools)))
+     (list python-fixtures python-subunit python-testtools))
     (native-inputs
-     `(("python-mimeparse" ,python-mimeparse)))
+     (list python-mimeparse))
     (description "Testrepository provides a database of test results which can
 be used as part of a developer's workflow to check things such as what tests
 have failed since the last commit or what tests are currently failing.")))
@@ -1759,10 +1792,8 @@ executed.")
         (base32 "03drs4myv1ik79148xyhli37q6mp931jb14cz65n8qvls2zvvwgx"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-async-generator" ,python-async-generator)
-       ("python-hypothesis" ,python-hypothesis)
-       ("python-pytest" ,python-pytest)))
+     (list python-coverage python-async-generator python-hypothesis
+           python-pytest))
     (home-page "https://github.com/pytest-dev/pytest-asyncio")
     (synopsis "Pytest support for asyncio")
     (description "Python asyncio code is usually written in the form of
@@ -1784,7 +1815,7 @@ to make testing async code easier.")
           "0k3np9ymh06yv1ib96sb6wfsxjkqhmik8qfsn119vnhga9ywc52a"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-coverage" ,python-coverage)))
+     (list python-coverage))
     (home-page "https://github.com/schlamar/cov-core")
     (synopsis "Coverage plugin core for pytest-cov, nose-cov and nose2-cov")
     (description
@@ -1809,10 +1840,9 @@ testing frameworks.")
           "1217c0vqf7ii65635gvl27a5pfhv0r7zhrpdp9cx640hg73bgn4f"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-unittest2" ,python-unittest2)))
+     (list python-unittest2))
     (propagated-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-requests" ,python-requests)))
+     (list python-coverage python-requests))
     (home-page "https://github.com/codecov/codecov-python")
     (synopsis "Upload code coverage reports to @code{codecov.io}")
     (description
@@ -1860,7 +1890,7 @@ C/C++, R, and more, and uploads it to the @code{codecov.io} service.")
                                    wheel (string-append "--prefix=" out)))
                          (find-files "dist" "\\.whl$"))))))))
     (native-inputs
-     `(("python-flit" ,python-flit)))
+     (list python-flit))
     (home-page "https://github.com/takluyver/testpath")
     (synopsis "Test utilities for code working with files and commands")
     (description
@@ -1881,7 +1911,7 @@ tools for mocking system commands and recording calls to those.")
         (base32 "1mz26cxn4x8bbgv0rn0mvj2z05y31rkc8009nvdlb3lam5b4mj3y"))))
     (build-system python-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))  ; for unpacking the source
+     (list unzip))  ; for unpacking the source
     (synopsis "Python micro test suite harness")
     (description "A micro unittest suite harness for Python.")
     (home-page "https://github.com/trentm/testlib")
@@ -1903,10 +1933,7 @@ tools for mocking system commands and recording calls to those.")
                "1a873fihw4rhshc722j4h6j7g3nj7xpgsna9hhg3zn6ksknnhx5y"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-apipkg" ,python-apipkg)
-       ("python-execnet" ,python-execnet)
-       ("python-py" ,python-py)
-       ("python-pytest" ,python-pytest)))
+     (list python-apipkg python-execnet python-py python-pytest))
     (synopsis "Py.test plugin with mechanisms for caching across test runs")
     (description "The pytest-cache plugin provides tools to rerun failures from
 the last py.test invocation.")
@@ -1934,11 +1961,9 @@ the last py.test invocation.")
            (lambda _
              (invoke "py.test" "-v"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-requests" ,python-requests)
-       ("python-six" ,python-six)))
+     (list python-pytest python-requests python-six))
     (propagated-inputs
-     `(("python-werkzeug" ,python-werkzeug)))
+     (list python-werkzeug))
     (synopsis "Py.test plugin to test server connections locally")
     (description "Pytest-localserver is a plugin for the pytest testing
 framework which enables you to test server connections locally.")
@@ -1957,10 +1982,9 @@ framework which enables you to test server connections locally.")
                "0rm2rchrr63imn44xk5slwydxf8gvy579524qcxq7dc42pnk17zx"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (propagated-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-psutil" ,python-psutil)))
+     (list python-pytest python-psutil))
     (synopsis "Pytest plugin to manage external processes across test runs")
     (description "Pytest-xprocess is an experimental py.test plugin for managing
 processes across test runs.")
@@ -1979,7 +2003,7 @@ processes across test runs.")
                 "15kzcr5pchf3id4ikdvlv752rc0j4d912n589l4rifp8qsj19l1x"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (synopsis "Set-up and tear-down fixtures for unit tests")
     (description "This plugin allows you to set up and tear down fixtures within
 unit test functions that use @code{py.test}. This is useful for using
@@ -2004,9 +2028,7 @@ normally the case.")
         (base32 "1i0hv3h49zvl62jbiyjag84carbrp3zprqzxffdr291nxavvac0n"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-packaging" ,python-packaging)
-       ("python-pytest" ,python-pytest)
-       ("python-termcolor" ,python-termcolor)))
+     (list python-packaging python-pytest python-termcolor))
     (home-page "https://pivotfinland.com/pytest-sugar/")
     (synopsis "Plugin for pytest that changes the default look and feel")
     (description
@@ -2041,6 +2063,17 @@ seamlessly into your existing Python unit testing work flow.")
     (license license:mpl2.0)
     (properties `((python2-variant . ,(delay python2-hypothesis))))))
 
+(define-public python-hypothesis-6.23
+  (package
+    (inherit python-hypothesis)
+    (version "6.23.4")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "hypothesis" version))
+              (sha256
+               (base32
+                "0wp8i9qmd5wl1sq1l2b97fgliyk5fyphssl6j7q5qn5zjlfgi4qs"))))))
+
 ;; This is the last version of Hypothesis that supports Python 2.
 (define-public python2-hypothesis
   (let ((hypothesis (package-with-python2
@@ -2054,8 +2087,8 @@ seamlessly into your existing Python unit testing work flow.")
                  (base32
                   "183gpxbfcdhdqzlahkji5a71n6lmvgqsbkcb0ihqad51n2j6jhrw"))))
       (propagated-inputs
-       `(("python2-enum34" ,python2-enum34)
-         ,@(package-propagated-inputs hypothesis))))))
+       (modify-inputs (package-propagated-inputs hypothesis)
+         (prepend python2-enum34))))))
 
 (define-public python-hypothesmith
   (package
@@ -2070,9 +2103,7 @@ seamlessly into your existing Python unit testing work flow.")
          "02j101m5grjrbvrgjap17jsxd1hgawkylmyswcn33vf42mxh9zzr"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-hypothesis" ,python-hypothesis)
-       ("python-lark-parser" ,python-lark-parser)
-       ("python-libcst" ,python-libcst-minimal)))
+     (list python-hypothesis python-lark-parser python-libcst-minimal))
     (home-page "https://github.com/Zac-HD/hypothesmith")
     (synopsis "Strategies for generating Python programs")
     (description
@@ -2083,14 +2114,14 @@ programs, something like CSmith, a random generator of C programs.")
 (define-public python-lit
   (package
     (name "python-lit")
-    (version "0.5.1")
+    (version "12.0.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "lit" version))
         (sha256
          (base32
-          "0z651m3vkbk85y41larnsjxrszkbi58x9gzml3lb6ga7qwcrsg97"))))
+          "01yggsb73s2gbq36xwifxl6k5ll5lkss5rwz59k9h3jnbnn7m5fj"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -2099,7 +2130,7 @@ programs, something like CSmith, a random generator of C programs.")
            (lambda _
              (invoke "python" "lit.py" "tests"))))))
     (native-inputs
-     `(("llvm" ,llvm)))
+     (list llvm))
     (home-page "https://llvm.org/")
     (synopsis "LLVM Software Testing Tool")
     (description "@code{lit} is a portable tool for executing LLVM and Clang
@@ -2107,9 +2138,6 @@ style test suites, summarizing their results, and providing indication of
 failures.")
     (license license:ncsa)))
 
-(define-public python2-lit
-  (package-with-python2 python-lit))
-
 (define-public python-pytest-pep8
   (package
     (name "python-pytest-pep8")
@@ -2135,9 +2163,9 @@ failures.")
                 (add-installed-pythonpath inputs outputs)
                 (invoke "pytest" "-v")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-pep8" ,python-pep8)))
+     (list python-pep8))
     (home-page "https://bitbucket.org/pytest-dev/pytest-pep8")
     (synopsis "Py.test plugin to check PEP8 requirements")
     (description "Pytest plugin for checking PEP8 compliance.")
@@ -2168,12 +2196,10 @@ failures.")
              (add-installed-pythonpath inputs outputs)
              (invoke "py.test" "-vv" "-k" "not test_syntax_error"))))))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cache" ,python-pytest-cache)
-       ("python-pytest-pep8" ,python-pytest-pep8)))
+     (list python-coverage python-pytest python-pytest-cache
+           python-pytest-pep8))
     (propagated-inputs
-     `(("python-pyflakes" ,python-pyflakes)))
+     (list python-pyflakes))
     (home-page "https://github.com/fschulze/pytest-flakes")
     (synopsis "Py.test plugin to check source code with pyflakes")
     (description "Pytest plugin for checking Python source code with pyflakes.")
@@ -2204,7 +2230,7 @@ failures.")
            (lambda _
              (invoke "./testrun"))))))
     (propagated-inputs
-     `(("python-coverage" ,python-coverage)))
+     (list python-coverage))
     (home-page "https://liw.fi/coverage-test-runner/")
     (synopsis "Python module for running unit tests")
     (description "@code{CoverageTestRunner} is a python module for running
@@ -2230,14 +2256,9 @@ statements in the module it tests.")
         (base32 "15yw69v1cj6zkndk60c2g0dgl0khh8bfm1lrwhjffpdjfc7nkc9a"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-benchmark" ,python-pytest-benchmark)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest python-pytest-benchmark python-pytest-runner))
     (propagated-inputs
-     `(("python-astroid" ,python-astroid)
-       ("python-isort" ,python-isort)
-       ("python-mccabe" ,python-mccabe)
-       ("python-toml" ,python-toml)))
+     (list python-astroid python-isort python-mccabe python-toml))
     (home-page "https://github.com/PyCQA/pylint")
     (synopsis "Python source code analyzer which looks for coding standard
 errors")
@@ -2290,7 +2311,7 @@ recognize TestCases.")
          "0gf2dpahpl5igb7jh1sr9acj3z3gp7zahqdqb69nk6wx01c8kc1g"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/fschulze/pytest-warnings")
     (synopsis "Pytest plugin to list Python warnings in pytest report")
     (description
@@ -2319,7 +2340,7 @@ pytest report.")
          "038049nyjl7di59ycnxvc9nydivc5m8np3hqq84j2iirkccdbs5n"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://bitbucket.org/memedough/pytest-capturelog/overview")
     (synopsis "Pytest plugin to catch log messages")
     (description
@@ -2342,9 +2363,9 @@ pytest report.")
          "1w7wxh27sbqwm4jgwrjr9c2gy384aca5jzw9c0wzhl0pmk2mvqab"))))
     (build-system python-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (propagated-inputs
-     `(("pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/eisensheng/pytest-catchlog")
     (synopsis "Pytest plugin to catch log messages")
     (description
@@ -2367,8 +2388,7 @@ a fork of pytest-capturelog.")
                 "10xqr12qv62k2flxwqhh8cr00cjhn7sfjrm6p35gd1x5bmjkr319"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-nose" ,python-nose)))
+     (list python-coverage python-nose))
     (home-page "https://github.com/cmheisel/nose-xcover")
     (synopsis "Extends nose.plugins.cover to add Cobertura-style XML reports")
     (description "Nose-xcover is a companion to the built-in
@@ -2419,14 +2439,10 @@ backported from Python 2.7 for Python 2.4+.")
                        "behave-skip-a-couple-of-tests.patch"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)
-       ("python-pathpy" ,python-pathpy)
-       ("python-pyhamcrest" ,python-pyhamcrest)
-       ("python-pytest" ,python-pytest)))
+     (list python-mock python-nose python-pathpy python-pyhamcrest
+           python-pytest))
     (propagated-inputs
-     `(("python-parse" ,python-parse)
-       ("python-parse-type" ,python-parse-type)))
+     (list python-parse python-parse-type))
     (arguments
      '(#:test-target "behave_test"))
     (home-page "https://github.com/behave/behave")
@@ -2461,8 +2477,7 @@ tests written in a natural language style, backed up by Python code.")
                (("'ordereddict==1.1'") ""))    ; Python >= 2.7 has it built-in.
              #t)))))
     (propagated-inputs
-     `(("behave" ,behave)
-       ("python-requests" ,python-requests)))
+     (list behave python-requests))
     (home-page "https://github.com/jefersondaniel/behave-web-api")
     (synopsis "Provides testing for JSON APIs with Behave for Python")
     (description "This package provides testing utility modules for testing
@@ -2491,11 +2506,9 @@ JSON APIs with Behave.")
                         (("six==1.10.0") "six"))
                       #t)))))
     (propagated-inputs
-     `(("python-colorama" ,python-colorama)
-       ("python-termstyle" ,python-termstyle)))
+     (list python-colorama python-termstyle))
     (native-inputs
-     `(("python-six" ,python-six)
-       ("python-nose" ,python-nose)))
+     (list python-six python-nose))
     (home-page "https://github.com/JBKahn/rednose")
     (synopsis "Colored output for Python nosetests")
     (description "This package provides colored output for the
@@ -2521,7 +2534,7 @@ JSON APIs with Behave.")
         "1dvip61r2frjv35mv6mmfjc07402z73pjbndfp3mhxyjn2zhksw2"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/fzumstein/nose-random")
     (synopsis "Nose plugin to facilitate randomized unit testing with
 Python")
@@ -2543,8 +2556,7 @@ scenarios.")
         (base32 "0z662rqhfk4bjmg806mn4frb8nz4gbh7mrddsrhfffp1g4yklj3y"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-numpy" ,python-numpy)))
+     (list python-nose python-numpy))
     (home-page "https://github.com/adamchainz/nose-randomly")
     (synopsis
      "Nose plugin to randomly order tests and control random.seed")
@@ -2571,8 +2583,7 @@ create data based on random numbers and yet remain repeatable.")
           (base32 "05wzkc88vbzw62pqkvhl33211b90kns0lny70b7qw62rcg4flzk4"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-nose" ,python-nose)
-       ("python-termcolor" ,python-termcolor)))
+     (list python-nose python-termcolor))
     (home-page "https://github.com/mahmoudimus/nose-timer")
     (synopsis "Timer plugin for nosetests")
     (description "Shows how much time was needed to run individual tests.")
@@ -2593,11 +2604,9 @@ create data based on random numbers and yet remain repeatable.")
         (base32 "0al75mk829j1izxi760b7yjnknjihyfhp2mvi5qiyrxb9cpxwqk2"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-mock python-pytest))
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-dateutil" ,python-dateutil)))
+     (list python-six python-dateutil))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2671,8 +2680,7 @@ retried.")
     (name "python-pyhamcrest")
     (version "2.0.2")
     (source (origin
-              ;; Tests not distributed from pypi release.
-              (method git-fetch)
+              (method git-fetch)        ;no tests in PyPI archive
               (uri (git-reference
                     (url "https://github.com/hamcrest/PyHamcrest")
                     (commit (string-append "V" version))))
@@ -2681,15 +2689,13 @@ retried.")
                (base32
                 "05kdzlhs2kvj82pfca13qszszcj6dyrk4b9pbr46x06sq2s4qyls"))))
     (native-inputs                      ;all native inputs are for tests
-     `(("python-pytest-cov" ,python-pytest-cov)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-hypothesis" ,python-hypothesis)))
+     (list python-pytest-cov python-mock python-pytest python-hypothesis))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (replace 'check
-                    (lambda _
+                    (lambda* (#:key inputs outputs #:allow-other-keys)
+                      (add-installed-pythonpath inputs outputs)
                       (invoke "pytest" "-vv"))))))
     (home-page "http://hamcrest.org/")
     (synopsis "Hamcrest matchers for Python")
@@ -2766,9 +2772,9 @@ portable to just about any platform.")
                         (("/bin/bash") (which "bash"))))))
        #:test-target "test"))
     (native-inputs
-     `(("perl" ,perl)))                           ;for tests
+     (list perl))                           ;for tests
     (inputs
-     `(("coreutils" ,coreutils)))
+     (list coreutils))
     (synopsis "Fake the system time for single applications")
     (description
      "The libfaketime library allows users to modify the system time that an
@@ -2799,18 +2805,15 @@ provides a simple way to achieve this.")
                (("/run") "/tmp"))
              #t)))))
     (native-inputs
-     `(("vala" ,vala)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("pkg-config" ,pkg-config)
-
-       ;; For tests.
-       ("python" ,python)
-       ("which" ,which)))
+     (list vala
+           gobject-introspection
+           gtk-doc/stable
+           pkg-config
+           ;; For tests.
+           python
+           which))
     (inputs
-     `(("glib" ,glib)
-       ("eudev" ,eudev)
-       ("libgudev" ,libgudev)))
+     (list glib eudev libgudev))
     (home-page "https://github.com/martinpitt/umockdev/")
     (synopsis "Mock hardware devices for creating unit tests")
     (description "umockdev mocks hardware devices for creating integration
@@ -2887,7 +2890,7 @@ grew out of the @dfn{Vc} project.")
               "python" "-m" "pytest"
               "pyfakefs/pytest_tests/pytest_plugin_test.py"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (build-system python-build-system)
     ;; Guix lint doesn't like that this is a permanent redirect to the GitHub
     ;; page, but the pyfakefs documentation asks us to use this specific URL
@@ -2942,10 +2945,9 @@ system.  The code under test requires no modification to work with pyfakefs.")
                           (invoke "nosetests" "-v")
                           (format #t "test suite not run~%"))
                       #t)))))
-    (propagated-inputs `(("python-wrapt" ,python-wrapt)))
+    (propagated-inputs (list python-wrapt))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-nose" ,python-nose)))
+     (list python-coverage python-nose))
     (home-page
      "https://github.com/kwarunek/aiounittest")
     (synopsis "Test asyncio code more easily")
@@ -2966,7 +2968,7 @@ asynchronous code in Python (asyncio).")
             "0swl3mxca7nnjbb5grfzrm3fa2750h9vjsha0f2kyrljc6895a62"))))
     (build-system python-build-system)
     (propagated-inputs
-      `(("python-pytest" ,python-pytest)))
+      (list python-pytest))
     (home-page
       "https://github.com/RKrahl/pytest-dependency")
     (synopsis "Manage dependencies of tests")
@@ -2988,10 +2990,9 @@ skipped if any of the dependencies did fail or has been skipped.")
          "066bg6wlzgq2pqnjp73dfrcmk8951xw3aqcxa3p1axgqimrixbyk"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (propagated-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-wheel" ,python-wheel)))
+     (list python-pytest python-wheel))
     (home-page "https://github.com/gabrielcnr/pytest-datadir")
     (synopsis "Pytest plugin for manipulating test data directories and files")
     (description
@@ -3012,19 +3013,17 @@ directories and files.")
          "05jpsvv8rj8i4x24fphpnar5dl4s6d6bw6ikjk5d8v96rdviz9qm"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pytest-datadir" ,python-pytest-datadir)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python-pytest-datadir python-pyyaml))
     (native-inputs
-     `(("python-matplotlib" ,python-matplotlib)
-       ("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-pillow" ,python-pillow)
-       ("python-pre-commit" ,python-pre-commit)
-       ("python-restructuredtext-lint"
-        ,python-restructuredtext-lint)
-       ("python-tox" ,python-tox)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-pytest" ,python-pytest)))
+     (list python-matplotlib
+           python-numpy
+           python-pandas
+           python-pillow
+           python-pre-commit
+           python-restructuredtext-lint
+           python-tox
+           python-setuptools-scm
+           python-pytest))
     (home-page "https://github.com/ESSS/pytest-regressions")
     (synopsis "Easy to use fixtures to write regression tests")
     (description
diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm
index 4b46052f99..94803719ac 100644
--- a/gnu/packages/chemistry.scm
+++ b/gnu/packages/chemistry.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,9 +36,11 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gv)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages perl)
@@ -67,20 +70,20 @@
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("eigen" ,eigen)
-       ("mmtf-cpp" ,mmtf-cpp)
-       ("msgpack" ,msgpack)
-       ("googletest" ,googletest)
-       ("pkg-config" ,pkg-config)
-       ("pybind11" ,pybind11)))
+     (list eigen
+           mmtf-cpp
+           msgpack
+           googletest
+           pkg-config
+           pybind11))
     (inputs
-     `(("glew" ,glew)
-       ("libarchive" ,libarchive)
-       ("libmsym" ,libmsym)
-       ("molequeue" ,molequeue)
-       ("python" ,python)
-       ("spglib" ,spglib)
-       ("qtbase" ,qtbase-5)))
+     (list glew
+           libarchive
+           libmsym
+           molequeue
+           python
+           spglib
+           qtbase-5))
     (arguments
      '(#:configure-flags (list "-DENABLE_TESTING=ON"
                                (string-append "-DSPGLIB_INCLUDE_DIR="
@@ -110,13 +113,9 @@ bioinformatics, materials science, and related areas.")
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("eigen" ,eigen)
-       ("pkg-config" ,pkg-config)))
+     (list eigen pkg-config))
     (inputs
-     `(("avogadrolibs" ,avogadrolibs)
-       ("hdf5" ,hdf5)
-       ("molequeue" ,molequeue)
-       ("qtbase" ,qtbase-5)))
+     (list avogadrolibs hdf5 molequeue qtbase-5))
     ;; TODO: Enable tests with "-DENABLE_TESTING" configure flag.
     (arguments
      '(#:tests? #f))
@@ -144,7 +143,7 @@ powerful plugin architecture.")
          "1z26lsyf7xwnzwjvimmbla7ckipx6p734w7y0jk2a2fzci8fkdcr"))))
     (build-system python-build-system)
     (inputs
-     `(("python-mmtk" ,python2-mmtk)))
+     (list python2-mmtk))
     (arguments
      `(#:python ,python-2
        ;; No test suite
@@ -300,7 +299,7 @@ biological structures.")
          "1w1fgxzqrb5yxvpmnc3c9ymnvixy0z1nfafkd9whg9zw8nbgl998"))))
     (build-system cmake-build-system)
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (arguments
      '(#:configure-flags '("-DENABLE_TESTING=ON")
        #:phases
@@ -352,12 +351,10 @@ staged, and output files collected using a standard interface.")
          "016h4bqg419p6s7bcx55q5iik91gqmk26hbnfgj2j6zl0j36w51r"))))
     (build-system python-build-system)
     (inputs
-     `(("python-matplotlib" ,(with-numpy-1.8 python2-matplotlib))
-       ("python-scientific" ,python2-scientific)
-       ("netcdf" ,netcdf)
-       ("gv" ,gv)))
+     (list (with-numpy-1.8 python2-matplotlib) python2-scientific netcdf
+           gv))
     (propagated-inputs
-     `(("python-mmtk" ,python2-mmtk)))
+     (list python2-mmtk))
     (arguments
      `(#:python ,python-2
        #:tests? #f  ; No test suite
@@ -413,7 +410,7 @@ NumPy < 1.9.")
                 "1apf2n8nb34z09xarj7k4jgriq283l769sakjmj5aalpbilvai4q"))))
     (build-system cmake-build-system)
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -499,13 +496,13 @@ stored with user-specified precision.")
        ("python-pygments" ,python-pygments)
        ("python-sphinx" ,python-sphinx)))
     (inputs
-     `(("fftwf" ,fftwf)
-       ("hwloc" ,hwloc-2 "lib")
-       ("lmfit" ,lmfit)
-       ("openblas" ,openblas)
-       ("perl" ,perl)
-       ("tinyxml2" ,tinyxml2)
-       ("tng" ,tng)))
+     (list fftwf
+           `(,hwloc-2 "lib")
+           lmfit
+           openblas
+           perl
+           tinyxml2
+           tng))
     (home-page "http://www.gromacs.org/")
     (synopsis "Molecular dynamics software package")
     (description "GROMACS is a versatile package to perform molecular dynamics,
@@ -546,12 +543,9 @@ usual algorithms you expect from a modern molecular dynamics implementation.")
                             (assoc-ref %build-inputs "inchi") "/include/inchi"))
        #:test-target "test"))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("eigen" ,eigen)
-       ("inchi" ,inchi)
-       ("libxml2" ,libxml2)
-       ("zlib" ,zlib)))
+     (list eigen inchi libxml2 zlib))
     (home-page "http://openbabel.org/wiki/Main_Page")
     (synopsis "Chemistry data manipulation toolbox")
     (description
@@ -606,3 +600,61 @@ symmetries written in C.  Spglib can be used to:
 @item Search irreducible k-points
 @end enumerate")
     (license license:bsd-3)))
+
+(define-public python-pymol
+  (package
+    (name "python-pymol")
+    (version "2.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/schrodinger/pymol-open-source")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "08zmfgclkbjkqjpq8xs1mphs1i8rpqj76mcw7m2mrhvma5qj1nr5"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:configure-flags
+       (list "--glut" "--testing")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'make-reproducible
+           (lambda _
+             (substitute* "create_shadertext.py"
+               (("time\\.time\\(\\)") "0"))))
+         (add-after 'unpack 'add-include-directories
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "CPLUS_INCLUDE_PATH"
+                     (string-append (assoc-ref inputs "freetype")
+                                    "/include/freetype2:"
+                                    (assoc-ref inputs "libxml2")
+                                    "/include/libxml2:"
+                                    (getenv "CPLUS_INCLUDE_PATH")))))
+         ;; The 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=/"))))))
+    (inputs
+     (list freetype
+           libpng
+           freeglut
+           glew
+           libxml2
+           mmtf-cpp
+           msgpack
+           python-pyqt
+           glm
+           netcdf))
+    (native-inputs
+     (list catch-framework2 python-setuptools))
+    (home-page "https://pymol.org")
+    (synopsis "Molecular visualization system")
+    (description "PyMOL is a capable molecular viewer and renderer.  It can be
+used to prepare publication-quality figures, to share interactive results with
+your colleagues, or to generate pre-rendered animations.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index ccb4800d1c..aaef513538 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -114,8 +114,10 @@
        ;; for docs
        ("stex" ,stex)
        ("xorg-rgb" ,xorg-rgb)
-       ("texlive" ,(texlive-updmap.cfg (list texlive-oberdiek
-                                             texlive-epsf)))
+       ("texlive" ,(texlive-updmap.cfg (list texlive-dvips-l3backend
+                                             texlive-epsf
+                                             texlive-fonts-ec
+                                             texlive-oberdiek)))
        ("ghostscript" ,ghostscript)
        ("netpbm" ,netpbm)))
     (native-search-paths
@@ -167,6 +169,7 @@
                ;; Some makefiles (for tests) don't seem to propagate CC
                ;; properly, so we take it out of their hands:
                (setenv "CC" ,(cc-for-target))
+               (setenv "HOME" "/tmp")
                (apply invoke
                       "./configure"
                       flags)
@@ -281,7 +284,7 @@ and 32-bit PowerPC architectures.")
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("chez-scheme" ,chez-scheme)))
+     (list chez-scheme))
     (arguments
      `(#:make-flags (let ((out (assoc-ref %outputs "out")))
                       (list (string-append "PREFIX=" out)
@@ -478,9 +481,9 @@ Chez Scheme.")
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
-     `(("chez-srfi" ,chez-srfi))) ; for tests
+     (list chez-srfi)) ; for tests
     (native-inputs
-     `(("chez-scheme" ,chez-scheme)))
+     (list chez-scheme))
     (arguments
      `(#:make-flags ,(chez-make-flags name version)
        #:test-target "test"
@@ -507,11 +510,11 @@ Chez Scheme.")
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
-     `(("chez-matchable" ,chez-matchable))) ; for tests
+     (list chez-matchable)) ; for tests
     (propagated-inputs
-     `(("chez-srfi" ,chez-srfi))) ; for irregex-utils
+     (list chez-srfi)) ; for irregex-utils
     (native-inputs
-     `(("chez-scheme" ,chez-scheme)))
+     (list chez-scheme))
     (arguments
      `(#:make-flags ,(chez-make-flags name version)
        #:test-target "test"
@@ -539,9 +542,9 @@ syntax, with various aliases for commonly used patterns.")
        (file-name (string-append name "-" version ".tar.gz"))))
     (build-system gnu-build-system)
     (propagated-inputs
-     `(("chez-srfi" ,chez-srfi))) ; for irregex-utils
+     (list chez-srfi)) ; for irregex-utils
     (native-inputs
-     `(("chez-scheme" ,chez-scheme)))
+     (list chez-scheme))
     (arguments
      `(#:make-flags ,(chez-make-flags name version)
        #:test-target "chez-check"
@@ -579,9 +582,9 @@ strings.")
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
-     `(("chez-srfi" ,chez-srfi)))       ; for tests
+     (list chez-srfi))       ; for tests
     (native-inputs
-     `(("chez-scheme" ,chez-scheme)))
+     (list chez-scheme))
     (arguments
      `(#:make-flags ,(chez-make-flags name version)
        #:test-target "test"
@@ -609,12 +612,11 @@ required to port the program @code{Scmutils} to Chez Scheme.")
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
-     `(("chez-srfi" ,chez-srfi)))       ; for tests
+     (list chez-srfi))       ; for tests
     (native-inputs
-     `(("chez-scheme" ,chez-scheme)))
+     (list chez-scheme))
     (propagated-inputs
-     `(("chez-mit" ,chez-mit)
-       ("chez-srfi" ,chez-srfi)))
+     (list chez-mit chez-srfi))
     (arguments
      `(#:make-flags ,(chez-make-flags name version)
        #:tests? #f                      ; no test suite
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 866ba8a062..d611c1762e 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -68,7 +68,7 @@
             (variable "CHICKEN_REPOSITORY_PATH")
             ;; TODO extract binary version into a module level definition.
             (files (list "var/lib/chicken/11")))))
-    (propagated-inputs `(("gcc-toolchain" ,gcc-toolchain)))
+    (propagated-inputs (list gcc-toolchain))
     (home-page "https://www.call-cc.org/")
     (synopsis "R5RS Scheme implementation that compiles native code via C")
     (description
@@ -99,7 +99,7 @@ language standard, and includes many enhancements and extensions.")
     (build-system chicken-build-system)
     (arguments '(#:egg-name "srfi-1"))
     (inputs
-     `(("chicken-test" ,chicken-test)))
+     (list chicken-test))
     (home-page "https://wiki.call-cc.org/eggref/5/srfi-1")
     (synopsis "SRFI-1 list library")
     (description
@@ -182,11 +182,9 @@ CHICKEN Scheme, along with
     ;; TODO do we really have to make these propagated?
     ;; I don't know Chicken's module system well enough to tell
     (propagated-inputs
-     `(("chicken-datatype" ,chicken-datatype)
-       ("chicken-srfi-1" ,chicken-srfi-1)
-       ("chicken-srfi-14" ,chicken-srfi-14)))
+     (list chicken-datatype chicken-srfi-1 chicken-srfi-14))
     (inputs
-     `(("chicken-test" ,chicken-test)))
+     (list chicken-test))
     (build-system chicken-build-system)
     (arguments '(#:egg-name "agrep"))
     (synopsis "Approximate string matching library")
@@ -217,8 +215,7 @@ file indexing tool.")
     (build-system chicken-build-system)
     (arguments '(#:egg-name "datatype"))
     (inputs
-     `(("chicken-srfi-1" ,chicken-srfi-1)
-       ("chicken-test" ,chicken-test)))
+     (list chicken-srfi-1 chicken-test))
     (home-page "https://wiki.call-cc.org/eggref/5/datatype")
     (synopsis "Facility for creating and using variant records")
     (description
@@ -245,7 +242,7 @@ Languages} by Friedman, Wand, and Haynes.")
         (base32
          "0gz50n5i561n5sk9prry0lrxz6bfrq9if5bclaq6a0f7lzinhnzb"))))
     (inputs
-     `(("chicken-test" ,chicken-test)))
+     (list chicken-test))
     (build-system chicken-build-system)
     (arguments '(#:egg-name "iset"))
     (synopsis "Integer set library")
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index 2b018d95f6..263f46a18c 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -58,6 +58,8 @@
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages regex)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages speech)
@@ -95,7 +97,6 @@
     "third_party/angle/src/common/third_party/base" ;BSD-3
     "third_party/angle/src/common/third_party/smhasher" ;Public domain
     "third_party/angle/src/common/third_party/xxhash" ;BSD-2
-    "third_party/angle/src/third_party/compiler" ;BSD-2
     "third_party/angle/src/third_party/libXNVCtrl" ;Expat
     "third_party/angle/src/third_party/trace_event" ;BSD-3
     "third_party/angle/src/third_party/volk" ;Expat
@@ -109,8 +110,6 @@
     "third_party/catapult" ;BSD-3
     "third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0
     "third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0
-    "third_party/catapult/third_party/beautifulsoup4" ;Expat
-    "third_party/catapult/third_party/html5lib-python" ;Expat
     "third_party/catapult/third_party/polymer" ;BSD-3
     "third_party/catapult/third_party/six" ;Expat
     ;; XXX: This is a minified version of <https://d3js.org/>.
@@ -133,6 +132,7 @@
     "third_party/cros_system_api" ;BSD-3
     "third_party/dav1d" ;BSD-2
     "third_party/dawn" ;ASL2.0
+    "third_party/dawn/third_party/tint"
     "third_party/depot_tools/owners.py" ;BSD-3
     "third_party/devtools-frontend" ;BSD-3
     "third_party/devtools-frontend/src/front_end/third_party/acorn" ;Expat
@@ -150,6 +150,7 @@
     "third_party/devtools-frontend/src/front_end/third_party/wasmparser" ;ASL2.0
     "third_party/devtools-frontend/src/third_party/pyjson5" ;ASL2.0
     "third_party/devtools-frontend/src/third_party/typescript" ;ASL2.0
+    "third_party/distributed_point_functions" ;ASL2.0
     "third_party/dom_distiller_js" ;BSD-3
     "third_party/eigen3" ;MPL2.0
     "third_party/emoji-segmenter" ;ASL2.0
@@ -249,6 +250,11 @@
     "third_party/skia/third_party/skcms" ;BSD-3
     "third_party/skia/third_party/vulkanmemoryallocator" ;BSD-3, Expat
     "third_party/smhasher" ;Expat, public domain
+
+    ;; FIXME: the snappy "replacement" shim (see replace_gn_files.py below) does
+    ;; not declare a library dependency added in M93, causing a link failure.
+    "third_party/snappy" ;BSD-3
+
     "third_party/speech-dispatcher" ;GPL2+
     "third_party/sqlite" ;Public domain
     "third_party/swiftshader" ;ASL2.0
@@ -263,7 +269,6 @@
     "third_party/tflite" ;ASL2.0
     "third_party/tflite/src/third_party/eigen3" ;MPL2.0
     "third_party/tflite/src/third_party/fft2d" ;ASL2.0
-    "third_party/tflite-support" ;ASL2.0
     "third_party/ukey2" ;ASL2.0
     "third_party/usb_ids" ;BSD-3
     "third_party/usrsctp" ;BSD-2
@@ -300,7 +305,6 @@
 
     "third_party/zlib/google" ;BSD-3
     "third_party/zxcvbn-cpp" ;Expat
-    "tools/grit/third_party/six" ;Expat
     "url/third_party/mozilla" ;BSD-3, MPL1.1/GPL2+/LGPL2.1+
     "v8/src/third_party/siphash" ;Public domain
     "v8/src/third_party/utf8-decoder" ;Expat
@@ -314,6 +318,14 @@
   ;; run the Blink performance tests, just remove everything to save ~70MiB.
   '("third_party/blink/perf_tests"))
 
+(define* (arch-patch name hash #:optional (revision %arch-revision))
+  (origin
+    (method url-fetch)
+    (uri (string-append "https://raw.githubusercontent.com/archlinux"
+                        "/svntogit-packages/" revision "/trunk/" name))
+    (file-name (string-append "ungoogled-chromium-" name))
+    (sha256 (base32 hash))))
+
 (define* (debian-patch name hash #:optional (revision %debian-revision))
   (origin
     (method url-fetch)
@@ -324,17 +336,24 @@
                   (string-append "ungoogled-chromium-" category "-" name))))
     (sha256 (base32 hash))))
 
-(define %chromium-version "92.0.4515.159")
+(define %chromium-version "96.0.4664.110")
+(define %ungoogled-revision (string-append %chromium-version "-1"))
+(define %arch-revision "db2157b84924ce84201a8245e68a02f7d55f6491")
 (define %debian-revision "debian/90.0.4430.85-1")
-;; Note: use 'git describe --long' even for exact tags to placate the
-;; custom version format for ungoogled-chromium.
-(define %ungoogled-revision "92.0.4515.159-1-8-g8164c91")
+
+(define %arch-patches
+  (list (arch-patch "chromium-94-ffmpeg-roll.patch"
+                    "1kiskdjr9v3d491sq0wdjxliflh2vq5700gbygcixayj8gkvdb2n")
+        (arch-patch "replace-blacklist-with-ignorelist.patch"
+                    "0ddvbyks7s8nijmg2nmirpwdv08dqx0z99sb6c1d4vlckfilnd6k")
+        (arch-patch "add-a-TODO-about-a-missing-pnacl-flag.patch"
+                    "0mf4zn94ckd3vxzw441wka7ak4aajq1x33h4dqd78blgacba4gfm")
+        (arch-patch "use-ffile-compilation-dir.patch"
+                    "0vk0vyxr55c716vkn4y4yhhrxb4zng4ni2y6fsz30pxbiz6i044j")))
 
 (define %debian-patches
   (list (debian-patch "fixes/nomerge.patch"
                       "0lybs2b5gk08j8cr6vjrs9d3drd7qfw013z2r0y00by8dnpm74i3")
-        (debian-patch "system/nspr.patch"
-                      "1gdirn1k1i841l8zp8xgr95kl16b5nx827am9rcxj8sfkm8hgkn3")
         (debian-patch "system/zlib.patch"
                       "0j313bd3q8qc065j60x97dckrfgbwl4qxc8jhz33iihvv4lwziwv")
         (debian-patch "system/openjpeg.patch"
@@ -348,12 +367,24 @@
     (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
     (sha256
      (base32
-      "0wbcbjzh5ak4nciahqw4yvxc4x8ik4x0iz9h4kfy0m011sxzy174"))))
+      "098mfcd1lr2hhlic0i1l5gxsq71axvqnn4gayr4r9j6nbj9byf4h"))))
 
 (define %guix-patches
   (list (local-file
          (assume-valid-file-name
-          (search-patch "ungoogled-chromium-extension-search-path.patch")))))
+          (search-patch "ungoogled-chromium-extension-search-path.patch")))
+        (local-file
+         (assume-valid-file-name
+          (search-patch "ungoogled-chromium-RUNPATH.patch")))
+        (local-file
+         (assume-valid-file-name
+          (search-patch "ungoogled-chromium-accelerated-video-decode.patch")))
+        (local-file
+         (assume-valid-file-name
+          (search-patch "ungoogled-chromium-ffmpeg-compat.patch")))
+        (local-file
+         (assume-valid-file-name
+          (search-patch "ungoogled-chromium-system-nspr.patch")))))
 
 ;; This is a source 'snippet' that does the following:
 ;; *) Applies various patches for unbundling purposes and libstdc++ compatibility.
@@ -378,6 +409,13 @@
                               patch "--no-backup-if-mismatch"))
                     (append '#+%debian-patches '#+%guix-patches))
 
+          ;; These patches are "reversed"; i.e. they represent changes
+          ;; already present in the source, but which should be reverted.
+          (for-each (lambda (patch)
+                      (invoke "patch" "-Rp1" "--force" "--input"
+                              patch "--no-backup-if-mismatch"))
+                    '#$%arch-patches)
+
           (with-directory-excursion #+%ungoogled-origin
             (format #t "Ungooglifying...~%")
             (force-output)
@@ -397,7 +435,7 @@
 
           (format #t "Pruning third party files...~%")
           (force-output)
-          (apply invoke (string-append #+python-2 "/bin/python")
+          (apply invoke "python"
                  "build/linux/unbundle/remove_bundled_libraries.py"
                  "--do-remove" '#$%preserved-third-party-files)
 
@@ -414,7 +452,7 @@
                   "--system-libraries" "ffmpeg" "flac" "fontconfig"
                   "freetype" "harfbuzz-ng" "icu" "libdrm" "libevent"
                   "libjpeg" "libpng" "libwebp" "libxml" "libxslt"
-                  "openh264" "opus" "snappy" "zlib")))))
+                  "openh264" "opus" "zlib")))))
 
 (define opus+custom
   (package/inherit opus
@@ -428,54 +466,15 @@
         `(cons "--enable-custom-modes"
                ,flags))))))
 
-;; WebRTC in Chromium 88 requires an unreleased version of libvpx.  Use the
-;; commit mentioned in "third_party/libvpx/README.chromium".
-(define libvpx/chromium
-  (package
-    (inherit libvpx)
-    (version "1.9.0-147-g61edec1ef")
-    (source (origin
-              (inherit (package-source libvpx))
-              (uri (git-reference
-                    (url "https://chromium.googlesource.com/webm/libvpx")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name "libvpx" version))
-              (sha256
-               (base32
-                "0mw13y7j2lg8jj3alm9367c3b40b6s218fdz3nn1m2k85c78wzr7"))))))
-
-;; 'make-ld-wrapper' can only work with an 'ld' executable, so we need
-;; this trick to make it wrap 'lld'.
-(define (make-lld-wrapper lld)
-  (define lld-as-ld
-    (computed-file "lld-ld"
-                   #~(begin
-                       (mkdir #$output)
-                       (mkdir (string-append #$output "/bin"))
-                       (symlink #$(file-append lld "/bin/lld")
-                                (string-append #$output "/bin/ld")))))
-
-  ;; Create a wrapper for LLD that inserts appropriate -rpath entries.
-  (define lld-wrapper
-    (make-ld-wrapper "lld-wrapper"
-                     #:binutils lld-as-ld))
-
-  ;; Clang looks for an 'ld.lld' executable, so we need to symlink it back.
-  (computed-file "lld-wrapped"
-                 #~(begin
-                     (mkdir #$output)
-                     (mkdir (string-append #$output "/bin"))
-                     (symlink #$(file-append lld-wrapper "/bin/ld")
-                              (string-append #$output "/bin/lld"))
-                     (symlink "lld" (string-append #$output "/bin/ld.lld")))))
-
 (define-public ungoogled-chromium
   (package
     (name "ungoogled-chromium")
-    (version (string-append %chromium-version "-0."
-                            (match (string-split %ungoogled-revision #\-)
-                              ((version revision commits g+short)
-                               (string-drop g+short 1)))))
+    (version (if (string-prefix? %chromium-version %ungoogled-revision)
+                 %ungoogled-revision
+                 ;; ungoogled-chromium version tags always have a "-1" suffix,
+                 ;; so we can hijack "-0" in cases where the Chromium source
+                 ;; is newer than the latest available tag.
+                 (string-append %chromium-version "-0")))
     (synopsis "Graphical web browser")
     (source (origin
               (method url-fetch)
@@ -484,14 +483,12 @@
                                   %chromium-version ".tar.xz"))
               (sha256
                (base32
-                "04gxgimg5ygzx6nvfws5y9dppdfjg1fhyl8zbykmksbh1myk6zfr"))
+                "1s3ilq0ik36qgqp7l88gfd1yx97zscn8yr2kprsrjfp9q8lrva9n"))
               (modules '((guix build utils)))
               (snippet (force ungoogled-chromium-snippet))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f
-       ;; FIXME: Chromiums RUNPATH lacks entries for some libraries.
-       #:validate-runpath? #f
        #:modules ((guix build gnu-build-system)
                   (guix build utils)
                   (srfi srfi-26))
@@ -506,6 +503,8 @@
              ;; a developer build.
              "is_official_build=true"
              "clang_use_chrome_plugins=false"
+             "is_cfi=false"             ;requires Clang 13
+             "use_thin_lto=false"       ;XXX ICE with Clang+LLD 12.0.1
              "chrome_pgo_phase=0"
              "use_sysroot=false"
              "goma_dir=\"\""
@@ -514,7 +513,7 @@
              "use_unofficial_version_number=false"
              "treat_warnings_as_errors=false"
              "use_official_google_api_keys=false"
-             "fieldtrial_testing_like_official_build=true"
+             "disable_fieldtrial_testing_config=true"
              "safe_browsing_mode=0"
              "enable_mdns=false"
              "enable_one_click_signin=false"
@@ -529,6 +528,8 @@
              ;; Disable code using TensorFlow until it has been scrutinized
              ;; by the ungoogled project.
              "build_with_tflite_lib=false"
+             ;; Avoid dependency on code formatting tools.
+             "blink_enable_generated_code_formatting=false"
 
              ;; Define a custom toolchain that simply looks up CC, AR and
              ;; friends from the environment.
@@ -576,7 +577,6 @@
              "rtc_use_h264=true"
              "rtc_use_pipewire=true"
              "rtc_link_pipewire=true"
-             "rtc_pipewire_version=\"0.3\""
              ;; Don't use bundled sources.
              "rtc_build_json=true"      ;FIXME: libc++ std::string ABI difference
              "rtc_build_libevent=false"
@@ -629,15 +629,16 @@
                 ""))
 
              ;; XXX: Should be unnecessary when use_system_lcms2=true.
-             (substitute* "third_party/pdfium/core/fxcodec/icc/iccmodule.h"
+             (substitute* "third_party/pdfium/core/fxcodec/icc/icc_transform.h"
                (("include \"third_party/lcms/include/lcms2\\.h\"")
                 "include \"lcms2.h\""))
 
-             ;; Add missing include statement.
-             (substitute* "third_party/pdfium/core/fxcodec/png/png_decoder.cpp"
-               (("#include \"core/fxcodec/fx_codec.h\"" all)
-                (string-append all
-                               "\n#include \"core/fxcodec/fx_codec_def.h\"")))
+             ;; Chromium bundles a pre-release of Harfbuzz 3.0 and uses an
+             ;; experimental API that was removed in 3.0.  Adjust to use
+             ;; the updated API (taken from <https://crrev.com/c/3076563>).
+             (substitute* "components/paint_preview/common/subset_font.cc"
+               (("hb_subset_input_no_subset_tables_set\\(input\\.get\\(\\)\\)")
+                "hb_subset_input_set(input.get(), HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG)"))
 
              (substitute*
                  "third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h"
@@ -668,6 +669,10 @@
                  (("libudev\\.so\\.1")
                   (string-append udev "/lib/libudev.so.1")))
 
+               (substitute* "third_party/dawn/src/dawn_native/vulkan/BackendVk.cpp"
+                 (("libvulkan\\.so\\.1")
+                  (search-input-file inputs "/lib/libvulkan.so.1")))
+
                (substitute*
                    '("ui/ozone/platform/x11/gl_ozone_glx.cc"
                      "ui/ozone/common/egl_util.cc"
@@ -765,6 +770,10 @@
                                       "resources.pak"
                                       "v8_context_snapshot.bin"
 
+                                      ;; Swiftshader ICD.
+                                      "libvk_swiftshader.so"
+                                      "vk_swiftshader_icd.json"
+
                                       ;; Chromium ships its own libGL
                                       ;; implementation called ANGLE.
                                       "libEGL.so" "libGLESv2.so"))
@@ -823,21 +832,20 @@
                   '("24" "48" "64" "128" "256")))))))))
     (native-inputs
      `(("bison" ,bison)
-       ("clang" ,clang-11)
+       ("clang" ,clang-12)
        ("gn" ,gn)
        ("gperf" ,gperf)
-       ("ld-wrapper" ,(make-lld-wrapper lld))
+       ("ld-wrapper" ,lld-as-ld-wrapper)
        ("ninja" ,ninja)
-       ("node" ,node)
+       ("node" ,node-lts)
        ("pkg-config" ,pkg-config)
        ("which" ,which)
+
        ;; This file contains defaults for new user profiles.
        ("master-preferences" ,(local-file "aux-files/chromium/master-preferences.json"))
 
-       ;; Try unbundling these when upstream has completed its Python 3 transition.
-       ;; ("python-beautifulsoup4" ,python-beautifulsoup4)
-       ;; ("python-html5lib" ,python-html5lib)
-       ("python2" ,python-2)
+       ("python-beautifulsoup4" ,python-beautifulsoup4)
+       ("python-html5lib" ,python-html5lib)
        ("python" ,python-wrapper)
        ("wayland-scanner" ,wayland)))
     (inputs
@@ -854,7 +862,7 @@
        ("gdk-pixbuf" ,gdk-pixbuf)
        ("glib" ,glib)
        ("gtk+" ,gtk+)
-       ("harfbuzz" ,harfbuzz)
+       ("harfbuzz" ,harfbuzz-3.0)
        ("icu4c" ,icu4c)
        ("lcms" ,lcms)
        ("libevent" ,libevent)
@@ -862,7 +870,7 @@
        ("libjpeg-turbo" ,libjpeg-turbo)
        ("libpng" ,libpng)
        ("libva" ,libva)
-       ("libvpx" ,libvpx/chromium)
+       ("libvpx" ,libvpx)
        ("libwebp" ,libwebp)
        ("libx11" ,libx11)
        ("libxcb" ,libxcb)
@@ -878,9 +886,6 @@
        ("libxscrnsaver" ,libxscrnsaver)
        ("libxslt" ,libxslt)
        ("libxtst" ,libxtst)
-       ;; Newer kernel headers are required for userfaultfd support; remove
-       ;; after 'core-updates' merge.
-       ("linux-libre-headers" ,linux-libre-headers-5.10)
        ("mesa" ,mesa)
        ("minizip" ,minizip)
        ("mit-krb5" ,mit-krb5)
@@ -897,6 +902,7 @@
        ("udev" ,eudev)
        ("valgrind" ,valgrind)
        ("vulkan-headers" ,vulkan-headers)
+       ("vulkan-loader" ,vulkan-loader)
        ("wayland" ,wayland)
        ("xdg-utils" ,xdg-utils)))
     (native-search-paths
@@ -915,7 +921,9 @@
     (home-page "https://github.com/Eloston/ungoogled-chromium")
     (description
      "Ungoogled-Chromium is the Chromium web browser, with some functionality
-disabled in order to protect the users privacy.")
+disabled in order to protect the users privacy.  This package also includes
+the @command{chromedriver} command, which can be useful for automated web
+testing.")
     ;; Chromium is developed as BSD-3, but bundles a large number of third-party
     ;; components with other licenses.  For full information, see chrome://credits.
     (license (list license:bsd-3
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index 136b88213b..c5fd6712f5 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -38,7 +38,6 @@
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages lisp-xyz)
   #:use-module (gnu packages mail)
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages perl)
@@ -48,6 +47,7 @@
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages uglifyjs)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
@@ -73,8 +73,8 @@
                 (file-name (string-append name "-" version "-checkout")))))))
 
 (define-public cuirass
-  (let ((commit "60190401ce4ccc890629ec3cb22a84a8ab8c2645")
-        (revision "4"))
+  (let ((commit "7160b182a0d4c9aa71460ad9c4d866b440027bbd")
+        (revision "7"))
     (package
       (name "cuirass")
       (version (git-version "1.1.0" revision commit))
@@ -87,7 +87,7 @@
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0b0bs32lzk5ck7lw8ac9dj2h70sqc5y430vhi7rcnwj48mdrchma"))))
+           "1zpldqzrn4ifp0bzh9af4djjjn7bgmyk37qr4qrx3dm1v0jzjgdr"))))
       (build-system gnu-build-system)
       (arguments
        `(#:modules ((guix build utils)
@@ -168,28 +168,24 @@
                    `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,objs)))
                  #t))))))
       (inputs
-       `(("guile" ,guile-3.0-latest)
-         ("guile-avahi" ,guile-avahi)
-         ("guile-fibers" ,guile-fibers)
-         ("guile-gcrypt" ,guile-gcrypt)
-         ("guile-json" ,guile-json-4)
-         ("guile-simple-zmq" ,guile-simple-zmq)
-         ("guile-squee" ,guile-squee-dev)
-         ("guile-git" ,guile-git)
-         ("guile-zlib" ,guile-zlib)
-         ("guile-mastodon" ,guile-mastodon)
-         ("gnutls" ,gnutls)
-         ("mailutils" ,mailutils)
-         ;; FIXME: this is propagated by "guile-git", but it needs to be among
-         ;; the inputs to add it to GUILE_LOAD_PATH.
-         ("guile-bytestructures" ,guile-bytestructures)
-         ("guix" ,guix)))
+       (list guile-3.0-latest
+             guile-avahi
+             guile-fibers
+             guile-gcrypt
+             guile-json-4
+             guile-simple-zmq
+             guile-squee-dev
+             guile-git
+             guile-zlib
+             guile-mastodon
+             gnutls
+             mailutils
+             ;; FIXME: this is propagated by "guile-git", but it needs to be among
+             ;; the inputs to add it to GUILE_LOAD_PATH.
+             guile-bytestructures
+             guix))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)
-         ("texinfo" ,texinfo)
-         ("ephemeralpg" ,ephemeralpg)))
+       (list autoconf automake pkg-config texinfo ephemeralpg))
       (native-search-paths
        ;; For HTTPS access, Cuirass itself honors these variables, with the
        ;; same semantics as Git and OpenSSL (respectively).
@@ -252,7 +248,7 @@ intended as a replacement for Hydra.")
                          (let* ((file
                                  (assoc-ref inputs (string-append name ".js")))
                                 (port
-                                 (open-pipe* OPEN_READ "uglify-js" file))
+                                 (open-pipe* OPEN_READ "uglifyjs" file))
                                 (destination
                                  (string-append
                                   "../build/js/" name ".min.js")))
@@ -263,7 +259,7 @@ intended as a replacement for Hydra.")
 
                            (let ((exit (close-pipe port)))
                              (unless (zero? exit)
-                               (error "uglify-js failed" exit)))))
+                               (error "uglifyjs failed" exit)))))
 
                        '("vue"
                          "vue-router"
@@ -275,14 +271,10 @@ intended as a replacement for Hydra.")
 
              #t)))))
     (inputs
-     `(("capnproto" ,capnproto)
-       ("rapidjson" ,rapidjson)
-       ("sqlite" ,sqlite)
-       ("boost" ,boost)
-       ("zlib" ,zlib)))
+     (list capnproto rapidjson sqlite boost zlib))
     (native-inputs
      `(("googletest" ,googletest)
-       ("uglify-js" ,uglify-js)
+       ("uglifyjs" ,node-uglify-js)
 
        ("vue.js"
         ,(origin (method url-fetch)
diff --git a/gnu/packages/cinnamon.scm b/gnu/packages/cinnamon.scm
index e1c9d7b614..fe33e797e4 100644
--- a/gnu/packages/cinnamon.scm
+++ b/gnu/packages/cinnamon.scm
@@ -53,24 +53,24 @@
     (build-system gnu-build-system)
     ;; TODO: package 'libgsystem'.
     (inputs
-     `(("accountsservice" ,accountsservice)
-       ("gtk+" ,gtk+)
-       ("glib" ,glib)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gnome-common" ,gnome-common)
-       ("libxkbfile" ,libxkbfile)
-       ("libxrandr" ,libxrandr)
-       ("python-2" ,python-2)
-       ("pulseaudio" ,pulseaudio)
-       ("xkeyboard-config" ,xkeyboard-config)))
+     (list accountsservice
+           gtk+
+           glib
+           gobject-introspection
+           gnome-common
+           libxkbfile
+           libxrandr
+           python-2
+           pulseaudio
+           xkeyboard-config))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gettext-minimal)
-       ("glib" ,glib "bin") ; glib-gettextize
-       ("intltool" ,intltool)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf
+           automake
+           gettext-minimal
+           `(,glib "bin") ; glib-gettextize
+           intltool
+           libtool
+           pkg-config))
     (home-page "https://github.com/linuxmint/cinnamon-desktop/")
     (synopsis "Library for the Cinnamon Desktop")
     (description
diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index 5b238ab996..f48101079e 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -207,7 +207,7 @@ that can be implemented for any data type.")
        #:test-dirs '("src/test/clojure/")
        #:doc-dirs '()))
     (native-inputs
-     `(("clojure-tools-macro" ,clojure-tools-macro)))
+     (list clojure-tools-macro))
     (synopsis
      "Monad Macros and Definitions")
     (description
diff --git a/gnu/packages/cluster.scm b/gnu/packages/cluster.scm
index e643cc58f9..d27544e992 100644
--- a/gnu/packages/cluster.scm
+++ b/gnu/packages/cluster.scm
@@ -28,6 +28,7 @@
   #:use-module (guix packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages libevent)
@@ -41,26 +42,21 @@
 (define-public drbd-utils
   (package
     (name "drbd-utils")
-    (version "9.15.1")
+    (version "9.19.1")
     (source (origin
               (method url-fetch)
-              ;; Older releases are moved to /archive.  List it first because in
-              ;; practice this URL will be the most current (e.g. time-machine).
-              (uri (list (string-append "https://www.linbit.com/downloads/drbd"
-                                        "/utils/archive/drbd-utils-" version
-                                        ".tar.gz")
-                         (string-append "https://www.linbit.com/downloads/drbd"
+              (uri (list (string-append "https://pkg.linbit.com/downloads/drbd"
                                         "/utils/drbd-utils-" version ".tar.gz")))
               (sha256
                (base32
-                "1q92bwnprqkkj9iy6fxcybcfpxvvjw5clis0igrbxqnq869kwp1i"))
+                "1l99kcrb0j85wxxmrdihpx9bk1a4sdi7wlp5m1x5l24k8ck1m5cf"))
               (modules '((guix build utils)))
               (snippet
                '(begin
                   (substitute* "scripts/global_common.conf"
                     ;; Do not participate in usage count survey by default.
-                    (("usage-count: yes")
-                     "usage-count: no"))
+                    (("usage-count yes")
+                     "usage-count no"))
                   (substitute* "scripts/Makefile.in"
                     ;; Install the Pacemaker resource agents to the libdir,
                     ;; regardless of what the OCF specification says...
@@ -85,6 +81,7 @@
                            "--sysconfdir=/etc"
                            "--localstatedir=/var")
        #:test-target "test"
+       #:make-flags '("WANT_DRBD_REPRODUCIBLE_BUILD=yesplease")
        #:phases
        (modify-phases %standard-phases
          (add-after 'patch-generated-file-shebangs 'patch-documentation
@@ -168,13 +165,9 @@ connection.  This package contains the userland utilities.")
                              (string-append infodir "/keepalived-figures"))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-sphinx" ,python-sphinx)
-       ("texinfo" ,texinfo)))
+     (list pkg-config python-sphinx texinfo))
     (inputs
-     `(("openssl" ,openssl)
-       ("libnfnetlink" ,libnfnetlink)
-       ("libnl" ,libnl)))
+     (list openssl libnfnetlink libnl))
     (home-page "https://www.keepalived.org/")
     (synopsis "Load balancing and high-availability frameworks")
     (description
@@ -188,7 +181,7 @@ independently or together to provide resilient infrastructures.")
 (define-public libraft
   (package
     (name "libraft")
-    (version "0.10.1")
+    (version "0.11.2")
     (home-page "https://github.com/canonical/raft")
     (source (origin
               (method git-fetch)
@@ -197,7 +190,7 @@ independently or together to provide resilient infrastructures.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "18idj53vnl5fx1ja1zlp8kiwmdxgwjxsi88rdql0pbh0484b92a3"))))
+                "050dwy34jh8dihfwfm0r1by2i3sy9crapipp9idw32idm79y4izb"))))
     (arguments '(#:configure-flags '("--enable-uv")
                  #:phases
                  (modify-phases %standard-phases
@@ -207,7 +200,7 @@ independently or together to provide resilient infrastructures.")
                          ((".*test_uv_append.c.*") ""))
                        #t)))))
     (inputs
-     `(("libuv" ,libuv)))
+     (list libuv lz4))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -226,7 +219,7 @@ snapshots).")
 (define-public libdqlite
   (package
     (name "libdqlite")
-    (version "1.7.0")
+    (version "1.9.0")
     (home-page "https://github.com/canonical/dqlite")
     (source (origin
               (method git-fetch)
@@ -235,7 +228,7 @@ snapshots).")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "15cg8yl3n7lcg0qyg0byciz8v6y200ghmzzkwpdzggy3m6c168wl"))))
+                "0zalsvr0vy7632nhm96a29lrfy18iqsmbxpyz2lvq80mrjlbrzsn"))))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -247,15 +240,11 @@ snapshots).")
                ;; race condition when tearing down the test server.
                ((".*test_client.c.*") "")))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("libraft" ,libraft)
-       ("libuv" ,libuv)))
+     (list libraft libuv))
     (propagated-inputs
-     `(("sqlite" ,sqlite)))  ; dqlite.h includes sqlite3.h
+     (list sqlite))  ; dqlite.h includes sqlite3.h
     (build-system gnu-build-system)
     (synopsis "Distributed SQLite")
     (description "dqlite is a C library that implements an embeddable and replicated
diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm
index 12ac3aa125..36f8dcf8ff 100644
--- a/gnu/packages/cmake.scm
+++ b/gnu/packages/cmake.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2017, 2018, 2020, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
@@ -83,7 +83,7 @@
       (arguments
        `(#:tests? #f))                  ; No target
       (native-inputs
-       `(("extra-cmake-modules" ,extra-cmake-modules)))
+       (list extra-cmake-modules))
       (synopsis "Shared CMake functions and macros")
       (description "CMake-Shared are shared functions and macros for projects
 using the CMake build system.")
@@ -130,8 +130,8 @@ using the CMake build system.")
   '(;; This test copies libgcc_s.so.1 from GCC and tries to modify its RPATH,
     ;; but does not cope with the file being read-only.
     "BundleUtilities"
-    ;; This test requires network access.
-    "CTestTestUpload"
+    ;; These tests require network access.
+    "CTestTestUpload" "CMake.FileDownload"
     ;; This test requires 'ldconfig' which is not available in Guix.
     "RunCMake.install"
     ;; This test fails for unknown reason.
@@ -150,7 +150,7 @@ using the CMake build system.")
 (define-public cmake-bootstrap
   (package
     (name "cmake-bootstrap")
-    (version "3.20.2")
+    (version "3.21.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://cmake.org/files/v"
@@ -158,7 +158,7 @@ using the CMake build system.")
                                   "/cmake-" version ".tar.gz"))
               (sha256
                (base32
-                "0kjlb7sxbwg8z4027c3jjcmyjh9d36p0r9d4nqxynyaijz5nxkxf"))
+                "0kvrhgbrvm0lv7jshzd4nsvp3d5q1jkgal2d5kj4w4v58bghckfi"))
               (patches (search-patches "cmake-curl-certificates.patch"))))
     (build-system gnu-build-system)
     (arguments
@@ -291,8 +291,8 @@ and workspaces that can be used in the compiler environment of your choice.")
                                     lstat)
                   #t))))
     (inputs
-     `(("jsoncpp" ,jsoncpp)
-       ,@(package-inputs cmake-bootstrap)))
+     (modify-inputs (package-inputs cmake-bootstrap)
+       (prepend jsoncpp)))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -339,15 +339,6 @@ and workspaces that can be used in the compiler environment of your choice.")
   (package
     (inherit cmake-minimal)
     (name "cmake")
-    (version "3.21.1")
-    (source (origin
-              (inherit (package-source cmake-bootstrap))
-              (uri (string-append "https://cmake.org/files/v"
-                                  (version-major+minor version)
-                                  "/cmake-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1m7y9j5lafkrfswsg2vkpx2fz6p6fqpp2pcp2dcz5pylf58r3hzs"))))
     (arguments
      (substitute-keyword-arguments (package-arguments cmake-minimal)
        ;; Use cmake-minimal this time.
@@ -380,11 +371,11 @@ and workspaces that can be used in the compiler environment of your choice.")
                                           "/html")))
                  (copy-recursively (string-append out html)
                                    (string-append doc html))
-                 (delete-file-recursively (string-append out html))
-                 #t)))))))
+                 (delete-file-recursively (string-append out html)))))))))
     (inputs
-     `(("ncurses" ,ncurses)             ;required for ccmake
-       ,@(package-inputs cmake-minimal)))
+     (modify-inputs (package-inputs cmake-minimal)
+       (prepend ncurses ;required for ccmake
+                )))
     ;; Extra inputs required to build the documentation.
     (native-inputs
      `(,@(package-native-inputs cmake-minimal)
diff --git a/gnu/packages/cobol.scm b/gnu/packages/cobol.scm
index 60af9f6a53..9386f3fca2 100644
--- a/gnu/packages/cobol.scm
+++ b/gnu/packages/cobol.scm
@@ -68,11 +68,7 @@
                      (base32
                       "1yb1plmv4firfnbb119r2vh1hay221w1ya34nyz0qwsxppfr56hy"))))))
     (inputs
-     `(("bdb" ,bdb)
-       ("gmp" ,gmp)
-       ("json-c" ,json-c)
-       ("libxml2" ,libxml2)
-       ("ncurses" ,ncurses)))
+     (list bdb gmp json-c libxml2 ncurses))
     (build-system gnu-build-system)
     (home-page "https://www.gnu.org/software/gnucobol/")
     (synopsis "A modern COBOL compiler")
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index df830d55a1..dccfdeb157 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2015, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -9,13 +9,13 @@
 ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2019 Hartmut Goebel <h.goebel@goebel-consult.de>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2021 lu hui <luhuins@163.com>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -68,6 +68,7 @@
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
@@ -115,8 +116,7 @@ a major mode for Emacs for examining the flowcharts that it produces.")
                 "0lr0l9kj2w3jilz9h9y4np9pf9i9ccpy6331lanki2fnz4z8ldvd"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("texinfo" ,texinfo)
-       ("autogen" ,autogen)))
+     (list texinfo autogen))
     (home-page "https://www.gnu.org/software/complexity/")
     (synopsis "Analyze complexity of C functions")
     (description
@@ -255,7 +255,7 @@ around in a large, deeply nested project.")
 
         #:make-flags (list (string-append "PREFIX="
                                           (assoc-ref %outputs "out")))))
-    (inputs `(("perl" ,perl)))
+    (inputs (list perl))
     (home-page "https://dwheeler.com/sloccount/")
     (synopsis "Count physical source lines of code (SLOC)")
     (description
@@ -269,7 +269,7 @@ COCOMO model or user-provided parameters.")
 (define-public cloc
   (package
     (name "cloc")
-    (version "1.90")
+    (version "1.92")
     (source
      (origin
        (method git-fetch)
@@ -278,15 +278,15 @@ COCOMO model or user-provided parameters.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ic9q6qqw5f1wafp9lpmhr0miasbdb9zr59c0jlymnzffdmnliyc"))))
+        (base32 "1hy1hskiw02b7xaxn2qz0v7znj14l49w1anx20z6rkcps7212l5l"))))
     (build-system gnu-build-system)
     (inputs
-     `(("coreutils" ,coreutils)
-       ("perl" ,perl)
-       ("perl-algorithm-diff" ,perl-algorithm-diff)
-       ("perl-digest-md5" ,perl-digest-md5)
-       ("perl-parallel-forkmanager" ,perl-parallel-forkmanager)
-       ("perl-regexp-common" ,perl-regexp-common)))
+     (list coreutils
+           perl
+           perl-algorithm-diff
+           perl-digest-md5
+           perl-parallel-forkmanager
+           perl-regexp-common))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (delete 'configure)   ; nothing to configure
@@ -299,15 +299,13 @@ COCOMO model or user-provided parameters.")
                                 (string-append "INSTALL="
                                                (assoc-ref inputs "coreutils")
                                                "/bin/install")
-                                "install")
-                        #t)))
+                                "install"))))
                   (add-after 'install 'wrap-program
                     (lambda* (#:key inputs outputs #:allow-other-keys)
                       (let ((out (assoc-ref outputs "out")))
                         (wrap-program (string-append out "/bin/cloc")
                           `("PERL5LIB" ":" =
-                            ,(string-split (getenv "PERL5LIB") #\:)))
-                        #t))))
+                            ,(string-split (getenv "PERL5LIB") #\:)))))))
        #:out-of-source? #t
        ;; Tests require some other packages.
        #:tests? #f))
@@ -339,11 +337,9 @@ cloc can handle a greater variety of programming languages.")
      ;; https://gcc.gnu.org/gcc-10/porting_to.html.
      `(#:configure-flags (list "CFLAGS=-fcommon")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("pcre" ,pcre)
-       ("xz" ,xz)
-       ("zlib" ,zlib)))
+     (list pcre xz zlib))
     (home-page "https://geoff.greer.fm/ag/")
     (synopsis "Fast code searching tool")
     (description
@@ -425,16 +421,9 @@ features that are not supported by the standard @code{stdio} implementation.")
                       (substitute* "Tmain/utils.sh"
                         (("/bin/echo") (which "echo"))))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("packcc" ,packcc)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake packcc perl pkg-config))
     (inputs
-     `(("jansson" ,jansson)
-       ("libseccomp" ,libseccomp)
-       ("libxml2" ,libxml2)
-       ("libyaml" ,libyaml)))
+     (list jansson libseccomp libxml2 libyaml))
     (home-page "https://ctags.io/")
     (synopsis "Generate tag files for source code")
     (description
@@ -490,9 +479,8 @@ expressions, and its ability to generate emacs-style TAGS files.")
             #t)))))
     (home-page "https://github.com/cameronwhite/withershins")
     (inputs
-     `(("libiberty" ,libiberty)
-       ("binutils" ,binutils) ;for libbfd
-       ("zlib" ,zlib)))
+     (list libiberty binutils ;for libbfd
+           zlib))
     (synopsis "C++11 library for generating stack traces")
     (description
      "Withershins is a simple cross-platform C++11 library for generating
@@ -537,9 +525,7 @@ stack traces.")
                (wrap-program (string-append out "/bin/geninfo")
                  `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))))
              #t)))))
-    (inputs `(("perl" ,perl)
-              ("perl-io-compress" ,perl-io-compress)
-              ("perl-json" ,perl-json)))
+    (inputs (list perl perl-io-compress perl-json))
     (home-page "http://ltp.sourceforge.net/coverage/lcov.php")
     (synopsis "Code coverage tool that enhances GNU gcov")
     (description "LCOV is an extension of @command{gcov}, a tool part of the
@@ -575,34 +561,31 @@ results and determine build stability.")
 (define-public kcov
   (package
     (name "kcov")
-    (version "38")
+    (version "39")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/SimonKagstrom/kcov")
-                    (commit version)))
+                    (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0zqg21xwivi16csl6a5wby6679ny01bjaw4am3y4qcgjdyihifp8"))))
+                "09wf1k4dlpdhqjjgq2bibmgy8i3z32wf0zxhd2px2dvg92m4zwqr"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f ;no test target
+     `(#:tests? #f                      ; no test target
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-/bin/bash-references
-           (lambda _
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((bash (assoc-ref inputs "bash")))
              (substitute* (find-files "src" ".*\\.cc?$")
-               (("/bin/bash") (which "bash"))
-               (("/bin/sh") (which "sh")))
-             #t)))))
+               (("/bin/(bash|sh)" shell)
+                (string-append (assoc-ref inputs "bash") shell)))))))))
     (inputs
-     `(("curl" ,curl)
-       ("elfutils" ,elfutils)
-       ("libelf" ,libelf)
-       ("zlib" ,zlib)))
+     (list curl elfutils libelf openssl zlib))
     (native-inputs
-     `(("python" ,python)))
+     (list python))
     (home-page "https://github.com/SimonKagstrom/kcov")
     (synopsis "Code coverage tester for compiled languages, Python and Bash")
     (description "Kcov is a FreeBSD/Linux/OSX code coverage tester for compiled
@@ -647,14 +630,14 @@ possible to collect coverage information without special compiler switches.")
          "-DBUILD_TESTING=FALSE")
        #:tests? #f))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("bash-completion" ,bash-completion)
-       ("clang" ,clang)
-       ("llvm" ,llvm)
-       ("lua" ,lua)
-       ("rct" ,rct)
-       ("selene" ,selene)))
+     (list bash-completion
+           clang
+           llvm
+           lua
+           rct
+           selene))
     (home-page "https://github.com/Andersbakken/rtags")
     (synopsis "Indexer for the C language family with Emacs integration")
     (description
@@ -680,8 +663,7 @@ importantly we give you proper follow-symbol and find-references support.")
         (base32 "1f9v5s0viq4yc9iv6701h3pv7j21zz1ckl37lpp9hsnliiizv03p"))))
     (build-system trivial-build-system)
     (native-inputs
-     `(("bash" ,bash)
-       ("perl" ,perl)))
+     (list bash perl))
     (arguments
      `(#:modules ((guix build utils))
        #:builder
@@ -702,7 +684,7 @@ importantly we give you proper follow-symbol and find-references support.")
            (substitute* "colormake"
              (("colormake\\.pl") (string-append bin "/colormake.pl"))
              (("/bin/bash")
-              (string-append (assoc-ref %build-inputs "bash") "/bin/sh")))
+              (search-input-file %build-inputs "/bin/sh")))
            (install-file "colormake.1" (string-append doc "/man/man1"))
            (install-files '("AUTHORS" "BUGS" "ChangeLog" "README") doc)
            (install-files '("colormake" "colormake-short" "clmake"
@@ -736,7 +718,7 @@ produce colored output.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("graphviz" ,graphviz)))
+     (list graphviz))
     (home-page "https://github.com/lindenb/makefile2graph")
     (synopsis "Creates a graph of dependencies from GNU Make")
     (description
@@ -748,7 +730,7 @@ independent targets.")
 (define-public uncrustify
   (package
     (name "uncrustify")
-    (version "0.69.0")
+    (version "0.74.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -757,11 +739,10 @@ independent targets.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0sqrg13kp8fwymq40976bq380bzw40g4ss7ihlbq45d0f90ifa1k"))))
+                "0v48vhmzxjzysbf0vhxzayl2pkassvbabvwg84xd6b8n5i74ijxd"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("unzip" ,unzip)
-       ("python" ,python-wrapper)))
+     `(("python" ,python-wrapper)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -884,8 +865,7 @@ the C, C++, C++/CLI, Objective‑C, C#, and Java programming languages.")
                         '("config.sub" "config.guess")))
             #t)))))
    (native-inputs
-    `(("texinfo" ,texinfo)
-      ("automake" ,automake))) ; For up to date 'config.guess' and 'config.sub'.
+    (list texinfo automake)) ; For up to date 'config.guess' and 'config.sub'.
    (synopsis "Code reformatter")
    (description
     "Indent is a program that makes source code easier to read by
@@ -941,3 +921,32 @@ extensions over the standard utility.")
       (description "amalgamate.py aims to make it easy to use SQLite-style C
 source and header amalgamation in projects.")
       (license license:bsd-3))))
+
+(define-public cscope
+  (package
+    (name "cscope")
+    (version "15.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/cscope/cscope/"
+                           "v" version "/cscope-" version ".tar.gz"))
+       (sha256
+        (base32 "0ngiv4aj3rr35k3q3wjx0y19gh7i1ydqa0cqip6sjwd8fph5ll65"))))
+    (build-system gnu-build-system)
+    (inputs (list ncurses))
+    (arguments
+     `(#:configure-flags
+       ;; Specify the correct ncurses directory to prevent incorrect fallback
+       ;; on SysV curses.
+       (list (string-append "--with-ncurses="
+                            (assoc-ref %build-inputs "ncurses")))))
+    (home-page "http://cscope.sourceforge.net")
+    (synopsis "Tool for browsing source code")
+    (description
+     "Cscope is a text screen based source browsing tool. Although it is
+primarily designed to search C code (including lex and yacc files), it can
+also be used for C++ code.
+
+Using cscope, you can easily search for where symbols are used and defined.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index dc9b372132..e570a95b04 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -3584,6 +3584,13 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
                    #:guile guile-final
                    #:bash bash-final))
 
+(define-public ld-gold-wrapper
+  (make-ld-wrapper "ld-gold-wrapper"
+                   #:binutils binutils-gold
+                   #:linker "ld.gold"
+                   #:guile guile-final
+                   #:bash bash-final))
+
 (define (%boot5-inputs)
   ;; Now with UTF-8 locales.  Remember that the bootstrap binaries were built
   ;; with an older libc, which cannot load the new locale format.  See
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 026d448ce1..0414aba14e 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -34,6 +34,7 @@
 ;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Ahmad Jarara <git@ajarara.io>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -168,10 +169,8 @@ in compression.")
                (delete-file (string-append out "/include/minizip/crypt.h"))
                #t))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
-    (propagated-inputs `(("zlib" ,zlib)))
+     (list autoconf automake libtool))
+    (propagated-inputs (list zlib))
     (home-page (package-home-page zlib))
     (synopsis "Zip Compression library")
     (description
@@ -192,7 +191,7 @@ the @code{zlib} source.")
               (base32
                "0iginbz2m15hcsa3x4y7v3mhk54gr1r7m3ghx0pg4n46vv2snmpi"))))
    (build-system gnu-build-system)
-   (inputs `(("zlib" ,zlib)))
+   (inputs (list zlib))
    (home-page "https://savannah.nongnu.org/projects/fastjar")
    (synopsis "Replacement for Sun's 'jar' utility")
    (description
@@ -220,11 +219,9 @@ the @code{zlib} source.")
    (build-system gnu-build-system)
    (arguments `(#:tests? #f)) ; no "check" target
    (native-inputs
-    `(("autoconf" ,autoconf)
-      ("automake" ,automake)
-      ("libtool" ,libtool)))
+    (list autoconf automake libtool))
    (inputs
-    `(("zlib" ,zlib)))
+    (list zlib))
    (synopsis "C library for manipulating POSIX tar files")
    (description
     "libtar is a C library for manipulating POSIX tar files.  It handles
@@ -465,7 +462,7 @@ compatible with bzip2 – both at file format and command line level.")
                "1rnvgcdixjzbrmcr1nv9b6ccrjfrhryaj7jwz28yxxv6lam3xlcg"))))
     (build-system gnu-build-system)
     (inputs
-     `(("bzip2" ,bzip2)))
+     (list bzip2))
     (arguments
      `(#:tests? #f                      ; no tests
        #:phases (modify-phases %standard-phases
@@ -549,7 +546,7 @@ than gzip and 15 % smaller output than bzip2.")
                      (search-input-directory inputs
                                              "share/zoneinfo")))))))
     (native-inputs
-     `(("tzdata" ,tzdata-for-tests)))
+     (list tzdata-for-tests))
     (home-page "https://fragglet.github.com/lhasa/")
     (synopsis "LHA archive decompressor")
     (description "Lhasa is a replacement for the Unix LHA tool, for
@@ -599,7 +596,7 @@ format are designed to be portable across platforms.")
         (base32
          "0h9gb8q7y54m9mvy3jvsmxf21yx8fc3ylzh418hgbbv0i8mbcwky"))))
     (build-system gnu-build-system)
-    (inputs `(("lzo" ,lzo)))
+    (inputs (list lzo))
     (home-page "https://www.lzop.org/")
     (synopsis "Compress or expand files")
     (description
@@ -695,7 +692,7 @@ decompressors when faced with corrupted input.")
              (string-append "extern " all)))))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -738,7 +735,7 @@ This package is mostly for compatibility and historical interest.")
                       (("/usr/local") (assoc-ref outputs "out")))
                     #t)))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://github.com/raboof/sfArkLib")
     (synopsis "Library for SoundFont decompression")
     (description
@@ -774,8 +771,7 @@ with the sfArk algorithm.")
                  (("/usr/local") (assoc-ref outputs "out")))
                #t)))))
       (inputs
-       `(("zlib" ,zlib)
-         ("sfarklib" ,sfarklib)))
+       (list zlib sfarklib))
       (home-page "https://github.com/raboof/sfarkxtc")
       (synopsis "Basic sfArk decompressor")
       (description "SfArk extractor converts SoundFonts in the compressed legacy
@@ -817,9 +813,8 @@ decompression of some loosely related file formats used by Microsoft.")
     (build-system gnu-build-system)
     (outputs (list "out" "static"))
     (native-inputs
-     `(;; For tests.
-       ("python" ,python)
-       ("valgrind" ,valgrind)))
+     (list ;; For tests.
+           python valgrind))
     (arguments
      `(;; Not designed for parallel testing.
        ;; See https://github.com/lz4/lz4/issues/957#issuecomment-737419821
@@ -859,7 +854,7 @@ time for compression ratio.")
 (define-public squashfs-tools
   (package
     (name "squashfs-tools")
-    (version "4.4-git.1")               ; ‘A point release of […] 4.4’
+    (version "4.5")
     (source
      (origin
        (method git-fetch)
@@ -868,7 +863,7 @@ time for compression ratio.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1hb95iy445hs2p3f7hg51jkrpkfi3bphddk60p2la0qmcdjkgbbm"))))
+        (base32 "18d4nwa22vgb8j2badngjngw63f0lj501cvlh3920wqy2mqxwav6"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
@@ -910,7 +905,7 @@ This package allows you to create and extract such file systems.")
 (define-public squashfs-tools-ng
   (package
     (name "squashfs-tools-ng")
-    (version "1.1.2")
+    (version "1.1.3")
     (source
      (origin
        (method git-fetch)
@@ -919,7 +914,7 @@ This package allows you to create and extract such file systems.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "13gx6mc57wjjnrpnkb74zi2wiqazz2q715y1zz7rff02wh1vb5k9"))
+        (base32 "12ipqmjp10574sz64ls8qbgzkxz5dcbzk0l2fxyh2yrrhnjp34mi"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -935,10 +930,7 @@ This package allows you to create and extract such file systems.")
      `(#:configure-flags
        (list "--disable-static")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
      `(("libselinux" ,libselinux)
 
@@ -1008,7 +1000,7 @@ byte-for-byte identical output.")
        #:make-flags
        (list ,(string-append "CC=" (cc-for-target)))
        #:test-target "tests"))
-    (inputs `(("zlib" ,zlib)))
+    (inputs (list zlib))
     (home-page "https://zlib.net/pigz/")
     (synopsis "Parallel implementation of gzip")
     (description
@@ -1033,8 +1025,7 @@ multiple processors and multiple cores when compressing data.")
                 "1ifxr18f2h75gkcrkx8033kwmwmrcgxshpaawyc2n4dzn1p2rqz5"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("libarchive" ,libarchive)))
+     (list pkg-config libarchive))
     (home-page "https://github.com/vasi/pixz")
     (synopsis "Parallel indexing implementation of LZMA")
     (description
@@ -1080,7 +1071,7 @@ tarballs.")
                (delete-file-recursively dir-name)
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("libmspack" ,libmspack)
        ("libmspack-source" ,(package-source libmspack))))
@@ -1092,7 +1083,7 @@ tarballs.")
 (define-public libjcat
   (package
     (name "libjcat")
-    (version "0.1.8")
+    (version "0.1.9")
     (source
      (origin
        (method git-fetch)
@@ -1102,20 +1093,18 @@ tarballs.")
          (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "18qkyg19r7fxzv93kar5n808n3582ygjmqwa7rnyg5y4b6hnwihl"))))
+        (base32 "02cgznk6qdylqpcyks6qykmvhpz1pplvnxp72bjzji1y6yj3zpkj"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("help2man" ,help2man)
-       ("pkg-config" ,pkg-config)))
+     (list gobject-introspection help2man pkg-config))
     (inputs
-     `(("git" ,git)
-       ("glib" ,glib)
-       ("gnupg" ,gnupg)
-       ("gnutls" ,gnutls)
-       ("gpgme" ,gpgme)
-       ("json-glib" ,json-glib)
-       ("vala" ,vala)))
+     (list git
+           glib
+           gnupg
+           gnutls
+           gpgme
+           json-glib
+           vala))
     (home-page "https://github.com/hughsie/libjcat")
     (synopsis "Library for reading and writing Jcat files")
     (description
@@ -1145,8 +1134,7 @@ file.")
            #t))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1181,10 +1169,7 @@ human-readable output.")
              '())
        ("perl" ,perl)))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("lz4" ,lz4)
-       ("lzo" ,lzo)
-       ("zlib" ,zlib)))
+     (list bzip2 lz4 lzo zlib))
     (home-page "http://ck.kolivas.org/apps/lrzip/")
     (synopsis "Large file compressor with a very high compression ratio")
     (description "lrzip is a compression utility that uses long-range
@@ -1223,11 +1208,12 @@ well as bzip2.")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'unpack-third_party-subprojects
-           (lambda* (#:key inputs #:allow-other-keys)
+           (lambda* (#:key native-inputs inputs #:allow-other-keys)
              (with-directory-excursion "third_party"
                (for-each (lambda (subproject)
                            (let* ((input (string-append subproject "-source"))
-                                  (source (assoc-ref inputs input)))
+                                  (source (assoc-ref (or native-inputs inputs)
+                                                     input)))
                              (with-directory-excursion subproject
                                ;; Take advantage of the coincidence that both
                                ;; use GIT-FETCH, which creates a directory.
@@ -1293,8 +1279,7 @@ for most inputs, but the resulting compressed files are anywhere from 20% to
     (native-inputs
      `(("clang" ,clang-toolchain-6)))
     (inputs
-     `(("libcxx+libcxxabi" ,libcxx+libcxxabi-6)
-       ("libcxxabi" ,libcxxabi-6)))))
+     (list libcxx+libcxxabi-6 libcxxabi-6))))
 
 (define-public p7zip
   (package
@@ -1402,7 +1387,7 @@ handles the 7z format which features very high compression ratios.")
                (install-file "libgzstream.a" lib)
                (install-file "gzstream.h" include)
                #t))))))
-    (propagated-inputs `(("zlib" ,zlib)))
+    (propagated-inputs (list zlib))
     (home-page "http://www.cs.unc.edu/Research/compgeom/gzstream/")
     (synopsis "Compressed C++ iostream")
     (description "gzstream is a small library for providing zlib
@@ -1452,7 +1437,7 @@ functionality in a C++ iostream.")
         (string-append "PREFIX="
                        (assoc-ref %outputs "out")))))
     (native-inputs
-     `(("perl" ,perl)))                 ; for pod2man
+     (list perl))                 ; for pod2man
     (home-page "http://mattmahoney.net/dc/zpaq.html")
     (synopsis "Incremental journaling archiver")
     (description "ZPAQ is a command-line archiver for realistic situations with
@@ -1516,7 +1501,7 @@ or junctions, and always follows hard links.")
             (base32 "1k5cw6vnpja8yjlnhx5124xrw9i8s1l539hfdqqrqz3l5gn0bnyd"))
            (file-name "unshield-the-feeble-files-spanish.zip")))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (arguments
      `(#:out-of-source? #f
        #:phases
@@ -1708,7 +1693,7 @@ the actual decompression, the other input and output.")
         (base32
          "0sb3h3067pzf3a7mlxn1hikpcjrsvycjcnj9hl9b1c3ykcgvps7h"))))
     (build-system gnu-build-system)
-    (inputs `(("bzip2" ,bzip2)))
+    (inputs (list bzip2))
     (arguments
      `(#:tests? #f ; no test target
        #:make-flags (let ((out (assoc-ref %outputs "out")))
@@ -1887,11 +1872,9 @@ timestamps in the file header with a fixed time (1 January 2008).
                 "0i6bpa2b13z19alm6ig80364dnin1w28cvif18k6wkkb0w3dzp8y"))))
     (build-system cmake-build-system)
     (inputs
-     `(("zlib" ,zlib)))
-    (native-inputs `(("perl" ,perl)     ; for the documentation
-                     ("pkg-config" ,pkg-config)
-                     ("python" ,python)
-                     ("zip" ,zip))) ; to create test files
+     (list zlib))
+    (native-inputs (list perl ; for the documentation
+                         pkg-config python zip)) ; to create test files
     (synopsis "Library for accessing zip files")
     (description
      "ZZipLib is a library based on zlib for accessing zip files.")
@@ -1911,14 +1894,10 @@ timestamps in the file header with a fixed time (1 January 2008).
                (base32
                 "0zn9vaiwy2izj8cnm8i7c2mbdn38n328grqb8f07x55s4kd3nxph"))))
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list perl pkg-config))
     (inputs
-     `(("gnutls" ,gnutls)
-       ("liblzma" ,xz)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)
-       ("zstd:lib" ,zstd "lib")))
+     (list gnutls xz openssl zlib
+           `(,zstd "lib")))
     (build-system cmake-build-system)
     (home-page "https://libzip.org")
     (synopsis "C library for reading, creating, and modifying zip archives")
@@ -1952,8 +1931,7 @@ archive can be reverted.")
                                "/bin/file'")))
              #t)))))
     (inputs
-     `(("perl" ,perl)
-       ("file" ,file)))
+     (list perl file))
     (home-page "https://www.nongnu.org/atool/")
     (synopsis  "Universal tool to manage file archives of various types")
     (description "The main command is @command{aunpack} which extracts files
@@ -2057,7 +2035,7 @@ corrupted input.")
         (base32 "19zinpx7hssl6r3vilpvq2s7wha3545xan8b0vcvsxnyipdx3n0l"))))
     (build-system gnu-build-system)
     (inputs
-     `(("lzlib" ,lzlib)))
+     (list lzlib))
     (home-page "https://www.nongnu.org/lzip/plzip.html")
     (synopsis "Parallel lossless data compressor for the lzip format")
     (description
@@ -2089,19 +2067,52 @@ single-member files which can't be decompressed in parallel.")
    (build-system cmake-build-system)
    (arguments
     `(#:tests? #f))
-   (inputs `(("boost" ,boost)
-             ("libiconv" ,libiconv)
-             ("xz" ,xz)))
-   (native-inputs `(("pkg-config" ,pkg-config)))
+   (inputs (list boost libiconv xz))
+   (native-inputs (list pkg-config))
    (home-page "https://constexpr.org/innoextract/")
    (synopsis "Tool for extracting Inno Setup installers")
    (description "innoextract allows extracting Inno Setup installers under
 non-Windows systems without running the actual installer using wine.")
    (license license:zlib)))
 
-(define-public google-brotli
+(define-public isa-l
+  (package
+   (name "isa-l")
+   (version "2.30.0")
+   (source
+    (origin
+     (method git-fetch)
+     (uri (git-reference
+           (url "https://github.com/intel/isa-l")
+           ;; Corresponds to tag v2.30.0
+           (commit "2df39cf5f1b9ccaa2973f6ef273857e4dc46f0cf")))
+     (file-name (git-file-name name version))
+     (sha256
+      (base32 "06ymkrf3hkkd94i59ahm79545rk709y8rd0v2l86w38z6is942q0"))))
+   (build-system gnu-build-system)
+   (native-inputs (list autoconf automake libtool nasm))
+   (home-page "https://github.com/intel/isa-l")
+   (synopsis "Intelligent storage acceleration library")
+   (description "ISA-L is a collection of optimized low-level functions
+targeting storage applications.  ISA-L includes:
+
+@itemize
+@item Erasure codes: fast block Reed-Solomon type erasure codes for any
+  encode/decode matrix;
+@item CRC: fast implementations of cyclic redundancy check.  Six different
+  polynomials supported: iscsi32, ieee32, t10dif, ecma64, iso64, jones64;
+@item Raid: calculate and operate on XOR and P+Q parity found in common RAID
+  implementations;
+@item Compression: fast deflate-compatible data compression;
+@item De-compression: fast inflate-compatible data compression;
+@item igzip: command line application like gzip, accelerated with ISA-L.
+@end itemize
+")
+   (license license:bsd-3)))
+
+(define-public brotli
   (package
-    (name "google-brotli")
+    (name "brotli")
     (version "1.0.9")
     (source
      (origin
@@ -2152,20 +2163,21 @@ with @code{deflate} but offers more dense compression.
 The specification of the Brotli Compressed Data Format is defined in RFC 7932.")
     (license license:expat)))
 
-(define-public brotli
-  ;; We used to provide an older version under the name "brotli".
-  (deprecated-package "brotli" google-brotli))
+(define-public google-brotli
+  (deprecated-package "google-brotli" brotli))
 
-(define-public python-google-brotli
+(define-public python-brotli
   (package
-    (inherit google-brotli)
-    (name "python-google-brotli")
+    (inherit brotli)
+    (name "python-brotli")
     (build-system python-build-system)
     (arguments '())
-    (synopsis "Python interface to google-brotli")
-    (description "@code{python-google-brotli} provides a Python interface to
-@code{google-brotli}, an implementation of the Brotli lossless compression
-algorithm.")))
+    (synopsis "Python interface to Brotli")
+    (description "This package provides a Python interface to the @code{brotli}
+package, an implementation of the Brotli lossless compression algorithm.")))
+
+(define-public python-google-brotli
+  (deprecated-package "python-google-brotli" python-brotli))
 
 (define-public ucl
   (package
@@ -2207,10 +2219,9 @@ decompression is a little bit slower.")
              (patches (search-patches "upx-CVE-2021-20285.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (inputs
-     `(("ucl" ,ucl)
-       ("zlib" ,zlib)))
+     (list ucl zlib))
     (arguments
      `(#:make-flags
        (list "all")
@@ -2240,7 +2251,7 @@ libraries by around 50%--70%, thus reducing disk space, network load times,
 download times, and other distribution and storage costs.")
     (license license:gpl2+)))
 
-(define-public quazip
+(define-public quazip-0
   (package
     (name "quazip")
     (version "0.9.1")
@@ -2257,10 +2268,9 @@ download times, and other distribution and storage costs.")
     (arguments
      `(#:tests? #f))                    ;no test
     (native-inputs
-     `(("doxygen" ,doxygen)))
+     (list doxygen))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("zlib" ,zlib)))
+     (list qtbase-5 zlib))
     (home-page "https://stachenov.github.io/quazip/index.html")
     (synopsis "Qt/C++ wrapper for Minizip")
     (description "QuaZIP is a simple C++ wrapper over Gilles Vollant's
@@ -2277,6 +2287,21 @@ reading from and writing to ZIP archives. ")
     ;; distributed under zlib terms.
     (license (list license:lgpl2.1+ license:zlib))))
 
+(define-public quazip
+  (package
+    (inherit quazip-0)
+    (name "quazip")
+    (version "1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/stachenov/quazip")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1dwld7jxhjz9l33lrqwvklazdy7ygi6n1m4ry1n1sk5dnschrhby"))))))
+
 (define-public zchunk
   (package
     (name "zchunk")
@@ -2300,10 +2325,9 @@ reading from and writing to ZIP archives. ")
                          (string-append (assoc-ref inputs "zstd")
                                         "/bin/zstd"))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("curl" ,curl)
-       ("zstd" ,zstd)))
+     (list curl zstd))
     (propagated-inputs
      `(("zstd:lib" ,zstd "lib")))       ;in Requires.private of zck.pc
     (home-page "https://github.com/zchunk/zchunk")
@@ -2360,7 +2384,7 @@ To download a zchunk file.
                    make-flags))))))
     (native-inputs
      ;; Needed to extract the source tarball and run the test suite.
-     `(("lzip" ,lzip)))
+     (list lzip))
     (home-page "https://www.nongnu.org/zutils/zutils.html")
     (synopsis "Utilities that transparently operate on compressed files")
     (description
@@ -2412,8 +2436,8 @@ at run time, and must be installed separately.")
                   (bin (string-append (assoc-ref %outputs "out") "/bin"))
                   (target (string-append bin "/" name))
                   (python (string-append (assoc-ref %build-inputs "python") "/bin"))
-                  (7z (string-append (assoc-ref %build-inputs "p7zip") "/bin/7z"))
-                  (unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")))
+                  (7z (search-input-file %build-inputs "/bin/7z"))
+                  (unzip (search-input-file %build-inputs "/bin/unzip")))
              (setenv "PATH" (string-append (getenv "PATH") ":" python))
              (mkdir-p bin)
              (copy-file source target)
@@ -2430,7 +2454,7 @@ possibly untrusted extraction shell script.")
 (define-public ncompress
   (package
     (name "ncompress")
-    (version "4.2.4.6")
+    (version "5.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2440,13 +2464,13 @@ possibly untrusted extraction shell script.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1a4yir1ilafz0nzxdwigj204j4yy2zljbc501nsaqqm3dxdap8zn"))))
+                "090kksxrlqnsdc76fzz2j2ajc98mhmfwyn163ca2ia9niqmlpcm0"))))
     (arguments
-     '(#:make-flags (list "CC=gcc"
+     `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
                           (string-append "BINDIR=" %output "/bin")
                           (string-append "MANDIR=" %output "/share/man/man1"))
        #:phases (modify-phases %standard-phases
-                  (delete 'configure))))
+                  (delete 'configure)))) ; no configure script
     (build-system gnu-build-system)
     (home-page "https://github.com/vapier/ncompress/")
     (synopsis "Original Lempel-Ziv compress/uncompress programs")
@@ -2471,13 +2495,10 @@ file compression algorithm.")
         (base32 "00adrjpxqlaccrwjf65w3vhxfswdj0as8aj263c6f9b85llypc5v"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("intltool" ,intltool)
-       ("libxslt" ,libxslt)
-       ("pkg-config" ,pkg-config)))
+     (list gettext-minimal intltool libxslt pkg-config))
     (inputs
-     `(("adwaita-icon-theme" ,adwaita-icon-theme) ; hard-coded theme
-       ("gtk+" ,gtk+)))
+     (list adwaita-icon-theme ; hard-coded theme
+           gtk+))
     (home-page "https://github.com/ib/xarchiver")
     (synopsis "Graphical front-end for archive operations")
     (description "Xarchiver is a front-end to various command line archiving
@@ -2535,6 +2556,18 @@ chunks.")
                (base32
                 "1ywq8j70149859vvs19wgjq89d6xsvvmvm2n1dmkzpchxgrvnw70"))))
     (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       '("-DDEACTIVATE_AVX2=ON"
+         "-DPREFER_EXTERNAL_LZ4=ON"
+         "-DPREFER_EXTERNAL_SNAPPY=ON"
+         "-DPREFER_EXTERNAL_ZLIB=ON"
+         "-DPREFER_EXTERNAL_ZSTD=ON")))
+    (inputs
+     `(("lz4" ,lz4)
+       ("snappy" ,snappy)
+       ("zlib" ,zlib)
+       ("zstd:lib" ,zstd "lib")))
     (home-page "https://blosc.org")
     (synopsis "Blocking, shuffling and lossless compression library")
     (description
@@ -2603,7 +2636,7 @@ to their original, binary CD format.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://github.com/ebiggers/libdeflate")
     (synopsis "Library for DEFLATE/zlib/gzip compression and decompression")
     (description "Libdeflate is a library for fast, whole-buffer DEFLATE-based
@@ -2630,9 +2663,9 @@ compression and decompression.  The supported formats are:
         (base32 "1x5dw03lcwfigcv97cg70gkbkfycjmv1012s9lwnl4izvl9235qg"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("lzip" ,lzip)))
+     (list lzip))
     (inputs
-     `(("lzlib" ,lzlib)))
+     (list lzlib))
     (home-page "https://www.nongnu.org/lzip/tarlz.html")
     (synopsis "Combination of the tar archiver and the lzip compressor")
     (description
@@ -2644,3 +2677,36 @@ resulting multimember tar.lz archive is fully backward compatible with standard
 tar tools like GNU tar, which treat it like any other tar.lz archive.  Tarlz
 can append files to the end of such compressed archives.")
     (license license:gpl2+)))
+
+(define-public libcbor
+  (package
+    (name "libcbor")
+    (version "0.8.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/PJK/libcbor")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256 (base32 "01dv4vxcmbvpphqy16vqiwh25wx11x630js5wfnx7cryarsh9ld7"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags
+       (let* ((out (assoc-ref %outputs "out"))
+              (lib (string-append out "/lib")))
+         (list
+          "-DCMAKE_BUILD_TYPE=Release"
+          "-DBUILD_SHARED_LIBS=ON"
+          "-DCBOR_CUSTOM_ALLOC=ON"
+          (string-append "-DCMAKE_INSTALL_LIBDIR=" lib)
+          (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
+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.")
+    (license license:expat)
+    (home-page "https://github.com/PJK/libcbor")))
diff --git a/gnu/packages/compton.scm b/gnu/packages/compton.scm
index 2a5f3bff27..290e06478b 100644
--- a/gnu/packages/compton.scm
+++ b/gnu/packages/compton.scm
@@ -58,25 +58,21 @@
          (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (inputs
-       `(("dbus" ,dbus)
-         ("libconfig" ,libconfig)
-         ("libx11" ,libx11)
-         ("libxcomposite" ,libxcomposite)
-         ("libxdamage" ,libxdamage)
-         ("libxext" ,libxext)
-         ("libxfixes" ,libxfixes)
-         ("libxinerama" ,libxinerama)
-         ("libxrandr" ,libxrandr)
-         ("libxrender" ,libxrender)
-         ("mesa" ,mesa)
-         ("xprop" ,xprop)
-         ("xwininfo" ,xwininfo)))
+       (list dbus
+             libconfig
+             libx11
+             libxcomposite
+             libxdamage
+             libxext
+             libxfixes
+             libxinerama
+             libxrandr
+             libxrender
+             mesa
+             xprop
+             xwininfo))
       (native-inputs
-       `(("asciidoc" ,asciidoc)
-         ("libdrm" ,libdrm)
-         ("pkg-config" ,pkg-config)
-         ("python" ,python)
-         ("xorgproto" ,xorgproto)))
+       (list asciidoc libdrm pkg-config python xorgproto))
       (arguments
        `(#:make-flags (list
                        "CC=gcc"
@@ -127,23 +123,21 @@ performance).
        (file-name (string-append "picom-" version))))
     (build-system meson-build-system)
     (inputs
-     `(("dbus" ,dbus)
-       ("libconfig" ,libconfig)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libev" ,libev)
-       ("mesa" ,mesa)
-       ("xprop" ,xprop)
-       ("xcb-util-renderutil" ,xcb-util-renderutil)
-       ("xcb-util-image" ,xcb-util-image)
-       ("pixman" ,pixman)
-       ("uthash" ,uthash)
-       ("libxdg-basedir" ,libxdg-basedir)
-       ("pcre" ,pcre)))
+     (list dbus
+           libconfig
+           libx11
+           libxext
+           libev
+           mesa
+           xprop
+           xcb-util-renderutil
+           xcb-util-image
+           pixman
+           uthash
+           libxdg-basedir
+           pcre))
     (native-inputs
-     `(("asciidoc" ,asciidoc)
-       ("pkg-config" ,pkg-config)
-       ("xorgproto" ,xorgproto)))
+     (list asciidoc pkg-config xorgproto))
     (arguments
      `(#:build-type "release"
        #:configure-flags '("-Dwith_docs=true")))
diff --git a/gnu/packages/configuration-management.scm b/gnu/packages/configuration-management.scm
index 9aee13a172..c64b937fe5 100644
--- a/gnu/packages/configuration-management.scm
+++ b/gnu/packages/configuration-management.scm
@@ -48,56 +48,56 @@
        ;; We don't need to install the source code for end-user applications.
        #:install-source? #f))
     (native-inputs
-     `(("go-github-com-masterminds-sprig" ,go-github-com-masterminds-sprig)
-       ("go-github-com-masterminds-goutils" ,go-github-com-masterminds-goutils)
-       ("go-github-com-masterminds-semver" ,go-github-com-masterminds-semver)
-       ("go-github-com-google-uuid" ,go-github-com-google-uuid)
-       ("go-github-com-huandu-xstrings" ,go-github-com-huandu-xstrings)
-       ("go-github-com-imdario-mergo" ,go-github-com-imdario-mergo)
-       ("go-github-com-mitchellh-reflectwalk" ,go-github-com-mitchellh-reflectwalk)
-       ("go-github-com-mitchellh-copystructure" ,go-github-com-mitchellh-copystructure)
-       ("go-github-com-bmatcuk-doublestar" ,go-github-com-bmatcuk-doublestar)
-       ("go-github-com-charmbracelet-glamour" ,go-github-com-charmbracelet-glamour)
-       ("go-github-com-alecthomas-chroma" ,go-github-com-alecthomas-chroma)
-       ("go-github-com-coreos-go-semver" ,go-github-com-coreos-go-semver)
-       ("go-github-com-danwakefield-fnmatch" ,go-github-com-danwakefield-fnmatch)
-       ("go-github-com-dlclark-regexp2" ,go-github-com-dlclark-regexp2)
-       ("go-github-go-git" ,go-github-go-git)
-       ("go-github-com-google-go-github" ,go-github-com-google-go-github)
-       ("go-github-com-google-go-querystring" ,go-github-com-google-go-querystring)
-       ("go-github-com-google-renameio" ,go-github-com-google-renameio)
-       ("go-github-com-microcosm-cc-bluemonday",go-github-com-microcosm-cc-bluemonday)
-       ("go-github-com-aymerick-douceur" ,go-github-com-aymerick-douceur)
-       ("go-github-com-chris-ramon-douceur" ,go-github-com-chris-ramon-douceur)
-       ("go-github-com-gorilla-css" ,go-github-com-gorilla-css)
-       ("go-github-com-muesli-reflow-ansi" ,go-github-com-muesli-reflow-ansi)
-       ("go-github-com-muesli-reflow-wordwrap" ,go-github-com-muesli-reflow-wordwrap)
-       ("go-github-com-muesli-reflow-indent" ,go-github-com-muesli-reflow-indent)
-       ("go-github-com-muesli-reflow-padding" ,go-github-com-muesli-reflow-padding)
-       ("go-github-com-muesli-termenv" ,go-github-com-muesli-termenv)
-       ("go-github-com-google-goterm" ,go-github-com-google-goterm)
-       ("go-golang-org-colorful" ,go-golang-org-colorful)
-       ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
-       ("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
-       ("go-github-com-olekukonko-tablewriter" ,go-github-com-olekukonko-tablewriter)
-       ("go-github-com-pelletier-go-toml" ,go-github-com-pelletier-go-toml)
-       ("go-github-com-pkg-diff" ,go-github-com-pkg-diff)
-       ("go-github-com-sergi-go-diff" ,go-github-com-sergi-go-diff)
-       ("go-github-com-spf13-cobra" ,go-github-com-spf13-cobra)
-       ("go-github-com-spf13-viper" ,go-github-com-spf13-viper)
-       ("go-github-com-twpayne-go-shell" ,go-github-com-twpayne-go-shell)
-       ("go-github-com-twpayne-go-vfs" ,go-github-com-twpayne-go-vfs)
-       ("go-github-com-twpayne-go-vfsafero" ,go-github-com-twpayne-go-vfsafero)
-       ("go-github-com-twpayne-go-xdg" ,go-github-com-twpayne-go-xdg)
-       ("go-github-com-yuin-goldmark" ,go-github-com-yuin-goldmark)
-       ("go-github-com-zalando-go-keyring" ,go-github-com-zalando-go-keyring)
-       ("go-github-com-godbus-dbus" ,go-github-com-godbus-dbus)
-       ("go-etcd-io-bbolt" ,go-etcd-io-bbolt)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
-       ("go-golang-org-x-net" ,go-golang-org-x-net)
-       ("go-golang-org-x-oauth2" ,go-golang-org-x-oauth2)
-       ("go-github-com-rogpeppe-go-internal" ,go-github-com-rogpeppe-go-internal)
-       ("gopkg-in-errgo-fmt-errors" ,gopkg-in-errgo-fmt-errors)))
+     (list go-github-com-masterminds-sprig
+           go-github-com-masterminds-goutils
+           go-github-com-masterminds-semver
+           go-github-com-google-uuid
+           go-github-com-huandu-xstrings
+           go-github-com-imdario-mergo
+           go-github-com-mitchellh-reflectwalk
+           go-github-com-mitchellh-copystructure
+           go-github-com-bmatcuk-doublestar
+           go-github-com-charmbracelet-glamour
+           go-github-com-alecthomas-chroma
+           go-github-com-coreos-go-semver
+           go-github-com-danwakefield-fnmatch
+           go-github-com-dlclark-regexp2
+           go-github-go-git
+           go-github-com-google-go-github
+           go-github-com-google-go-querystring
+           go-github-com-google-renameio
+           go-github-com-microcosm-cc-bluemonday
+           go-github-com-aymerick-douceur
+           go-github-com-chris-ramon-douceur
+           go-github-com-gorilla-css
+           go-github-com-muesli-reflow-ansi
+           go-github-com-muesli-reflow-wordwrap
+           go-github-com-muesli-reflow-indent
+           go-github-com-muesli-reflow-padding
+           go-github-com-muesli-termenv
+           go-github-com-google-goterm
+           go-golang-org-colorful
+           go-github-com-mattn-go-isatty
+           go-github.com-mattn-go-runewidth
+           go-github-com-olekukonko-tablewriter
+           go-github-com-pelletier-go-toml
+           go-github-com-pkg-diff
+           go-github-com-sergi-go-diff
+           go-github-com-spf13-cobra
+           go-github-com-spf13-viper
+           go-github-com-twpayne-go-shell
+           go-github-com-twpayne-go-vfs
+           go-github-com-twpayne-go-vfsafero
+           go-github-com-twpayne-go-xdg
+           go-github-com-yuin-goldmark
+           go-github-com-zalando-go-keyring
+           go-github-com-godbus-dbus
+           go-etcd-io-bbolt
+           go-golang-org-x-crypto
+           go-golang-org-x-net
+           go-golang-org-x-oauth2
+           go-github-com-rogpeppe-go-internal
+           gopkg-in-errgo-fmt-errors))
     (home-page "https://www.chezmoi.io/")
     (synopsis "Personal configuration files manager")
     (description "This package helps to manage personal configuration files
diff --git a/gnu/packages/conky.scm b/gnu/packages/conky.scm
index ad4d396289..9843cbe3c0 100644
--- a/gnu/packages/conky.scm
+++ b/gnu/packages/conky.scm
@@ -74,20 +74,20 @@
                (install-file "src/conky" bin))
              #t)))))
     (inputs
-     `(("freetype" ,freetype)
-       ("imlib2" ,imlib2)
-       ("libx11" ,libx11)
-       ("libxdamage" ,libxdamage)
-       ("libxext" ,libxext)
-       ("libxft" ,libxft)
-       ("libxinerama" ,libxinerama)
-       ("pulseaudio" ,pulseaudio)
-       ("lua" ,lua)
-       ("ncurses" ,ncurses)
-       ("curl" ,curl)
-       ("wireless-tools" ,wireless-tools)))
+     (list freetype
+           imlib2
+           libx11
+           libxdamage
+           libxext
+           libxft
+           libxinerama
+           pulseaudio
+           lua
+           ncurses
+           curl
+           wireless-tools))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Lightweight system monitor for X")
     (description
      "Conky is a lightweight system monitor for X that displays operating
diff --git a/gnu/packages/connman.scm b/gnu/packages/connman.scm
index 85536f933b..f2ebfc95eb 100644
--- a/gnu/packages/connman.scm
+++ b/gnu/packages/connman.scm
@@ -71,22 +71,22 @@
      `(("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)))
     (inputs
-     `(("dbus" ,dbus)
-       ("glib" ,glib)
-       ("gnutls" ,gnutls)
-       ("iptables" ,iptables)
-       ("libmnl" ,libmnl)
-       ("lz4" ,lz4)                     ; required by openconnect.pc
-       ("readline" ,readline)
-       ;; These inputs are needed for connman to include the interface to
-       ;; these technologies so IF they are installed they can be used.
-       ;; TODO: add neard, ofono
-       ("openconnect" ,openconnect)
-       ("openvpn" ,openvpn)
-       ("ppp" ,ppp)
-       ("vpnc" ,vpnc)
-       ("wpa-supplicant" ,wpa-supplicant)
-       ("xl2tpd" ,xl2tpd)))
+     (list dbus
+           glib
+           gnutls
+           iptables
+           libmnl
+           lz4 ; required by openconnect.pc
+           readline
+           ;; These inputs are needed for connman to include the interface to
+           ;; these technologies so IF they are installed they can be used.
+           ;; TODO: add neard, ofono
+           openconnect
+           openvpn
+           ppp
+           vpnc
+           wpa-supplicant
+           xl2tpd))
     (home-page "https://01.org/connman")
     (synopsis "Connection management daemon")
     (description "Connman provides a daemon for managing Internet connections.
@@ -125,7 +125,7 @@ sharing) to clients via USB, ethernet, WiFi, cellular and Bluetooth.")
                (wrap-program bin
                  `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))
                #t))))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
      `(("efl" ,efl)
        ("python" ,python-wrapper)
@@ -150,9 +150,9 @@ sharing) to clients via USB, ethernet, WiFi, cellular and Bluetooth.")
        (sha256
         (base32 "0jn12wxwjznady6aniwmvahg1dj25p902sdwj0070biv6vx5c7dq"))))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (native-inputs
-     `(("qttools" ,qttools)))
+     (list qttools))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/convmv.scm b/gnu/packages/convmv.scm
index 2a9a4ec68c..a7a5129566 100644
--- a/gnu/packages/convmv.scm
+++ b/gnu/packages/convmv.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -50,7 +50,7 @@
              (patch-shebang "suite/parsable_tester.pl")
              #t)))))
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (synopsis "Convert filenames between character sets")
     (description
      "convmv is a file renamer, that converts between different encodings,
diff --git a/gnu/packages/cook.scm b/gnu/packages/cook.scm
index ba13709eda..7a064480d4 100644
--- a/gnu/packages/cook.scm
+++ b/gnu/packages/cook.scm
@@ -70,17 +70,17 @@
 
              (setenv "SH" (which "sh"))
              #t)))))
-    (native-inputs `(("bison" ,bison)
-                     ;; For building the documentation:
-                     ("groff" ,groff)
-                     ;; For the tests:
-                     ("sharutils" ,sharutils)
-                     ;; One test wants rsh.  However there is no rsh server
-                     ;; running in the build environment and so far as I'm
-                     ;; aware, it cannot be started without root.
-                     ;; This test is therefore just skipped.
-                     ;; ("inetutils" ,inetutils)
-                     ("ed" ,ed)))
+    (native-inputs (list bison
+                         ;; For building the documentation:
+                         groff
+                         ;; For the tests:
+                         sharutils
+                         ;; One test wants rsh.  However there is no rsh server
+                         ;; running in the build environment and so far as I'm
+                         ;; aware, it cannot be started without root.
+                         ;; This test is therefore just skipped.
+                         ;; ("inetutils" ,inetutils)
+                         ed))
     (home-page (string-append "https://web.archive.org/web/20140727122520/"
                               "http://miller.emu.id.au/pmiller/software/cook/"))
     (synopsis "Tool for constructing files")
diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm
index 4ad172c6b0..5173726ec2 100644
--- a/gnu/packages/coq.scm
+++ b/gnu/packages/coq.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
 ;;; Copyright © 2020 Robin Green <greenrd@greenrd.org>
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -48,10 +49,10 @@
   #:use-module (guix utils)
   #:use-module ((srfi srfi-1) #:hide (zip)))
 
-(define-public coq
+(define-public coq-core
   (package
-    (name "coq")
-    (version "8.13.2")
+    (name "coq-core")
+    (version "8.14.0")
     (source
      (origin
        (method git-fetch)
@@ -61,24 +62,29 @@
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "15r0cm3p9dlsxbg0lf05njjp1xi1y74vxvq6drxjykax67x95l8a"))))
+         "0iachapmdwvwwlvkrb2yxhqqrgzs70zyr1c9v1jdb1awx3bp68hf"))
+       (patches (search-patches "coq-fix-envvars.patch"))))
     (native-search-paths
      (list (search-path-specification
             (variable "COQPATH")
-            (files (list "lib/coq/user-contrib")))
+            (files (list "lib/ocaml/site-lib/coq/user-contrib"
+                         "lib/coq/user-contrib")))
            (search-path-specification
-            (variable "COQLIB")
-            (files (list "lib/ocaml/site-lib/coq"))
+            (variable "COQLIBPATH")
+            (files (list "lib/ocaml/site-lib/coq")))
+           (search-path-specification
+            (variable "COQCORELIB")
+            (files (list "lib/ocaml/site-lib/coq-core"))
             (separator #f))))
     (build-system dune-build-system)
     (inputs
-     `(("gmp" ,gmp)
-       ("ocaml-zarith" ,ocaml-zarith)))
+     (list gmp ocaml-zarith))
     (native-inputs
-     `(("which" ,which)))
+     (list ocaml-ounit2 which))
     (arguments
-     `(#:package "coq"
-       #:test-target "test-suite"))
+     `(#:package "coq-core"
+       #:test-target "."))
+    (properties '((upstream-name . "coq"))) ; also for inherited packages
     (home-page "https://coq.inria.fr")
     (synopsis "Proof assistant for higher-order logic")
     (description
@@ -89,6 +95,28 @@ It is developed using Objective Caml and Camlp5.")
     ;; Some of the documentation is distributed under opl1.0+.
     (license (list license:lgpl2.1 license:opl1.0+))))
 
+(define-public coq-stdlib
+  (package
+    (inherit coq-core)
+    (name "coq-stdlib")
+    (arguments
+     `(#:package "coq-stdlib"
+       #:test-target "."))
+    (inputs
+     (list coq-core gmp ocaml-zarith))
+    (native-inputs '())))
+
+(define-public coq
+  (package
+    (inherit coq-core)
+    (name "coq")
+    (arguments
+     `(#:package "coq"
+       #:test-target "."))
+    (propagated-inputs
+     (list coq-core coq-stdlib))
+    (native-inputs '())))
+
 (define-public coq-ide-server
   (package
     (inherit coq)
@@ -97,9 +125,7 @@ It is developed using Objective Caml and Camlp5.")
      `(#:tests? #f
        #:package "coqide-server"))
     (inputs
-     `(("coq" ,coq)
-       ("gmp" ,gmp)
-       ("ocaml-zarith" ,ocaml-zarith)))))
+     (list coq gmp ocaml-zarith))))
 
 (define-public coq-ide
   (package
@@ -109,17 +135,16 @@ It is developed using Objective Caml and Camlp5.")
      `(#:tests? #f
        #:package "coqide"))
     (propagated-inputs
-     `(("coq" ,coq)
-       ("coq-ide-server" ,coq-ide-server)))
+     (list coq coq-ide-server))
     (inputs
      `(("lablgtk3" ,lablgtk3)))))
 
 (define-public proof-general
   ;; The latest release is from 2016 and there has been more than 450 commits
   ;; since then.
-  ;; Commit from 2021-06-07.
-  (let ((commit "bc86736abb728ec0d28abc90ef0adae21d29a66a")
-        (revision "0"))
+  ;; Commit from 2021-11-25.
+  (let ((commit "1b1083e86e0cddc20ff2f1a6b25c7a7eee2edf02")
+        (revision "1"))
     (package
       (name "proof-general")
       (version (git-version "4.4" revision commit))
@@ -131,65 +156,80 @@ It is developed using Objective Caml and Camlp5.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "00cga3n9nj2xa3ivb0fdkkdx3k11fp4879y188738631yd1x2lsa"))))
+                  "1pnysczhscapgwmvf6ix7f31lf3hnh8h977bfll1m7jlxl9b9c0j"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("which" ,which)
-         ("emacs" ,emacs-minimal)
+       `(("emacs" ,emacs-minimal)
          ("texinfo" ,texinfo)))
       (inputs
-       `(("host-emacs" ,emacs)
-         ("perl" ,perl)
-         ("coq" ,coq)))
+       (list perl))
       (arguments
-       `(#:tests? #f                   ; no check target
-         #:make-flags (list (string-append "PREFIX=" %output)
-                            (string-append "DEST_PREFIX=" %output)
-                            (string-append "ELISP_START=" %output
-                                           "/share/emacs/site-lisp/ProofGeneral"))
-         #:modules ((guix build gnu-build-system)
-                    (guix build utils)
-                    (guix build emacs-utils))
-         #:imported-modules (,@%gnu-build-system-modules
-                             (guix build emacs-utils))
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (add-after 'unpack 'disable-byte-compile-error-on-warn
-             (lambda _
-               (substitute* "Makefile"
-                 (("\\(setq byte-compile-error-on-warn t\\)")
-                  "(setq byte-compile-error-on-warn nil)"))))
-           (add-after 'unpack 'patch-hardcoded-paths
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((out   (assoc-ref outputs "out"))
-                     (coq   (assoc-ref inputs "coq"))
-                     (emacs (assoc-ref inputs "host-emacs")))
+       (let ((base-directory "/share/emacs/site-lisp/ProofGeneral"))
+         `(#:tests? #f                  ; no check target
+           #:make-flags (list (string-append "PREFIX=" %output)
+                              (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
+                                             "/bin/emacs")
+                              (string-append "DEST_PREFIX=" %output)
+                              (string-append "ELISP=" %output ,base-directory)
+                              (string-append "DEST_ELISP=" %output ,base-directory)
+                              (string-append "ELISP_START=" %output ,base-directory))
+           #:phases
+           (modify-phases %standard-phases
+             (delete 'configure)
+             (add-after 'unpack 'disable-byte-compile-error-on-warn
+               (lambda _
+                 (substitute* "Makefile"
+                   (("\\(setq byte-compile-error-on-warn t\\)")
+                    "(setq byte-compile-error-on-warn nil)"))))
+             (add-after 'unpack 'patch-hardcoded-paths
+               (lambda _
                  (substitute* "Makefile"
-                   (("/sbin/install-info") "install-info")))))
-           (add-after 'unpack 'clean
-             (lambda _
-               ;; Delete the pre-compiled elc files for Emacs 23.
-               (invoke "make" "clean")))
-           (add-after 'install 'install-doc
-             (lambda* (#:key make-flags #:allow-other-keys)
-               ;; XXX FIXME avoid building/installing pdf files,
-               ;; due to unresolved errors building them.
-               (substitute* "Makefile"
-                 ((" [^ ]*\\.pdf") ""))
-               (apply invoke "make" "install-doc" make-flags))))))
+                   (("/sbin/install-info") "install-info"))))
+             (add-after 'unpack 'remove-which
+               (lambda _
+                 (substitute* "Makefile"
+                   (("`which perl`") "perl")
+                   (("`which bash`") "bash"))))
+             (add-after 'unpack 'clean
+               (lambda _
+                 ;; Delete the pre-compiled elc files for Emacs 23.
+                 (invoke "make" "clean")))
+             (add-after 'install 'install-doc
+               (lambda* (#:key make-flags #:allow-other-keys)
+                 ;; XXX FIXME avoid building/installing pdf files,
+                 ;; due to unresolved errors building them.
+                 (substitute* "Makefile"
+                   ((" [^ ]*\\.pdf") ""))
+                 (apply invoke "make" "install-doc" make-flags)))
+             (add-after 'install 'allow-subfolders-autoloads
+               ;; Autoload cookies are present in sub-directories.  A friendly
+               ;; wrapper proof-general.el around generic/proof-site.el is
+               ;; provided for execution on Emacs start-up.  It serves two
+               ;; purposes:
+               ;;
+               ;; * Setting up the load path when byte-compiling pg.
+               ;; * Loading a minimal PG setup on startup (not all of Proof
+               ;; General, of course; mostly mode hooks and autoloads).
+               ;;
+               ;; The renaming to proof-general-autoloads.el is Guix
+               ;; specific.
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (let ((out (assoc-ref outputs "out")))
+                   (copy-file "proof-general.el"
+                              (string-append out ,base-directory
+                                             "/proof-general-autoloads.el")))))))))
       (home-page "https://proofgeneral.github.io/")
       (synopsis "Generic front-end for proof assistants based on Emacs")
       (description
        "Proof General is a major mode to turn Emacs into an interactive proof
 assistant to write formal mathematical proofs using a variety of theorem
 provers.")
-      (license license:gpl2+))))
+      (license license:gpl3+))))
 
 (define-public coq-flocq
   (package
     (name "coq-flocq")
-    (version "3.3.1")
+    (version "3.4.2")
     (source
      (origin
        (method git-fetch)
@@ -199,26 +239,16 @@ provers.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "01gdykva0lcw6y3dm8j0djxayb87szfg9vn0mxd6z3pks644misl"))))
+         "0j7vq7ifqcdaj2x881aha2rl51l2p72y1cn7r2xya0fjgsssfigy"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("ocaml" ,ocaml)
-       ("which" ,which)
-       ("coq" ,coq)))
+     (list autoconf automake ocaml which coq))
     (arguments
      `(#:configure-flags
-       (list (string-append "--libdir=" (assoc-ref %outputs "out")
-                            "/lib/coq/user-contrib/Flocq"))
+       (list (string-append "COQUSERCONTRIB=" (assoc-ref %outputs "out")
+                            "/lib/coq/user-contrib"))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'remove-failing-examples
-           (lambda _
-             (substitute* "Remakefile.in"
-               ;; Fails on a union error.
-               (("Double_rounding_odd_radix.v") ""))
-             #t))
          (add-before 'configure 'fix-remake
            (lambda _
              (substitute* "remake.cpp"
@@ -235,7 +265,7 @@ provers.")
          (replace 'install
            (lambda _
              (invoke "./remake" "install"))))))
-    (home-page "https://flocq.gforge.inria.fr/")
+    (home-page "https://flocq.gitlabpages.inria.fr")
     (synopsis "Floating-point formalization for the Coq system")
     (description "Flocq (Floats for Coq) is a floating-point formalization for
 the Coq system.  It provides a comprehensive library of theorems on a multi-radix
@@ -246,7 +276,7 @@ inside Coq.")
 (define-public coq-gappa
   (package
     (name "coq-gappa")
-    (version "1.4.6")
+    (version "1.5.0")
     (source
      (origin
        (method git-fetch)
@@ -256,24 +286,21 @@ inside Coq.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0492i0ksrz6dnc1d57jzsbmdlb9fp9hrh9ib5v8j0yqxpyi0x8f4"))))
+         "1ivh8xm1c8191rm4riamjzya2x6ls96qax5byir1fywf9hbxr1vg"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("ocaml" ,ocaml)
-       ("which" ,which)
-       ("coq" ,coq)
-       ("camlp5" ,camlp5)
-       ("bison" ,bison)
-       ("flex" ,flex)))
+     (list autoconf
+           automake
+           ocaml
+           which
+           coq
+           camlp5
+           bison
+           flex))
     (inputs
-     `(("gmp" ,gmp)
-       ("mpfr" ,mpfr)
-       ("ocaml-zarith" ,ocaml-zarith)
-       ("boost" ,boost)))
+     (list gmp mpfr ocaml-zarith boost))
     (propagated-inputs
-     `(("coq-flocq" ,coq-flocq)))
+     (list coq-flocq))
     (arguments
      `(#:configure-flags
        (list (string-append "COQUSERCONTRIB=" (assoc-ref %outputs "out")
@@ -293,7 +320,7 @@ inside Coq.")
          ;;   (lambda _ (invoke "./remake" "check")))
          (replace 'install
            (lambda _ (invoke "./remake" "install"))))))
-    (home-page "https://gappa.gforge.inria.fr/")
+    (home-page "https://gappa.gitlabpages.inria.fr/")
     (synopsis "Verify and formally prove properties on numerical programs")
     (description "Gappa is a tool intended to help verifying and formally proving
 properties on numerical programs dealing with floating-point or fixed-point
@@ -307,7 +334,7 @@ assistant.")
 (define-public coq-mathcomp
   (package
     (name "coq-mathcomp")
-    (version "1.12.0")
+    (version "1.13.0")
     (source
      (origin
        (method git-fetch)
@@ -316,25 +343,20 @@ assistant.")
              (commit (string-append "mathcomp-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "12cgrmzlcjnp9kv9zxsk34fgf0qfa35jdb23cbf13kmg8dyfi3h5"))))
+        (base32 "0aj8hsdzzds5w0p1858s2b6k9zssjcxa6kgpi0q1nvaml4zfpkcc"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("ocaml" ,ocaml)
-       ("which" ,which)
-       ("coq" ,coq)))
+     (list ocaml which coq))
     (arguments
      `(#:tests? #f ; No tests.
+       #:make-flags (list (string-append "COQLIBINSTALL="
+                                         (assoc-ref %outputs "out")
+                                         "/lib/coq/user-contrib"))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
          (add-before 'build 'chdir
-           (lambda _ (chdir "mathcomp") #t))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (invoke "make" "-f" "Makefile.coq"
-                     (string-append "COQLIB=" (assoc-ref outputs "out")
-                                    "/lib/coq/")
-                     "install"))))))
+           (lambda _ (chdir "mathcomp") #t)))))
     (home-page "https://math-comp.github.io/")
     (synopsis "Mathematical Components for Coq")
     (description "Mathematical Components for Coq has its origins in the formal
@@ -349,7 +371,7 @@ part of the distribution.")
 (define-public coq-coquelicot
   (package
     (name "coq-coquelicot")
-    (version "3.1.0")
+    (version "3.2.0")
     (source
      (origin
        (method git-fetch)
@@ -359,20 +381,16 @@ part of the distribution.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0mz3pxan1237fr5fi79c66y7b9z7bmi0sc45kwrmkczsjm5462jm"))))
+         "146s5y2xsc7wb43m1pq1n4p14hw99gqbzx0ic3a4naxq16v7cv4w"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("ocaml" ,ocaml)
-       ("which" ,which)
-       ("coq" ,coq)))
+     (list autoconf automake ocaml which coq))
     (propagated-inputs
      `(("mathcomp" ,coq-mathcomp)))
     (arguments
      `(#:configure-flags
-       (list (string-append "--libdir=" (assoc-ref %outputs "out")
-                            "/lib/coq/user-contrib/Coquelicot"))
+       (list (string-append "COQUSERCONTRIB=" (assoc-ref %outputs "out")
+                            "/lib/coq/user-contrib"))
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'fix-remake
@@ -402,7 +420,7 @@ theorems between the two libraries.")
 (define-public coq-bignums
   (package
     (name "coq-bignums")
-    (version "8.13.0")
+    (version "8.14.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -411,14 +429,12 @@ theorems between the two libraries.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1n66i7hd9222b2ks606mak7m4f0dgy02xgygjskmmav6h7g2sx7y"))))
+                "0jsgdvj0ddhkls32krprp34r64y1rb5mwxl34fgaxk2k4664yq06"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("ocaml" ,ocaml)
-       ("coq" ,coq)))
+     (list ocaml coq))
     (inputs
-     `(("camlp5" ,camlp5)
-       ("ocaml-zarith" ,ocaml-zarith)))
+     (list camlp5 ocaml-zarith))
     (arguments
      `(#:tests? #f ; No test target.
        #:make-flags
@@ -436,7 +452,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
 (define-public coq-interval
   (package
     (name "coq-interval")
-    (version "4.3.0")
+    (version "4.3.1")
     (source
      (origin
        (method git-fetch)
@@ -446,14 +462,10 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1jqvd17czhliscf40idhnxgrha620039ilrdyfahn71dg2jmzqnm"))))
+         "0sr9psildc0sda07r2r47rfgyry49yklk38bg04yyvry5j5pryb6"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("ocaml" ,ocaml)
-       ("which" ,which)
-       ("coq" ,coq)))
+     (list autoconf automake ocaml which coq))
     (propagated-inputs
      `(("flocq" ,coq-flocq)
        ("bignums" ,coq-bignums)
@@ -477,7 +489,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
            (lambda _ (invoke "./remake" "check")))
          (replace 'install
            (lambda _ (invoke "./remake" "install"))))))
-    (home-page "http://coq-interval.gforge.inria.fr/")
+    (home-page "https://coqinterval.gitlabpages.inria.fr/")
     (synopsis "Coq tactics to simplify inequality proofs")
     (description "Interval provides vernacular files containing tactics for
 simplifying the proofs of inequalities on expressions of real numbers for the
@@ -503,18 +515,14 @@ Coq proof assistant.")
       (build-system gnu-build-system)
       (arguments
        `(#:tests? #f
+       #:make-flags (list (string-append "COQLIBINSTALL="
+                                         (assoc-ref %outputs "out")
+                                         "/lib/coq/user-contrib"))
          #:phases
          (modify-phases %standard-phases
-           (delete 'configure)
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (setenv "COQLIB" (string-append (assoc-ref outputs "out") "/lib/coq/"))
-               (invoke "make"
-                       (string-append "COQLIB=" (assoc-ref outputs "out")
-                                      "/lib/coq/")
-                       "install"))))))
+           (delete 'configure))))
       (native-inputs
-       `(("coq" ,coq)))
+       (list coq))
       (home-page "https://www.ps.uni-saarland.de/autosubst/")
       (synopsis "Coq library for parallel de Bruijn substitutions")
       (description "Formalizing syntactic theories with variable binders is
@@ -533,36 +541,31 @@ uses Ltac to synthesize the substitution operation.")
 (define-public coq-equations
   (package
     (name "coq-equations")
-    (version "1.2.4")
+    (version "1.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/mattam82/Coq-Equations")
-                    (commit (string-append "v" version "-8.13"))))
+                    (commit (string-append "v" version "-8.14"))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0i014lshsdflzw6h0qxra9d2f0q82vffxv2f29awbb9ad0p4rq4q"))))
+                "19bj9nncd1r9g4273h5qx35gs3i4bw5z9bhjni24b413hyj55hkv"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("ocaml"  ,ocaml)
-       ("coq"    ,coq)
-       ("camlp5" ,camlp5)))
+     (list ocaml coq camlp5))
     (inputs
-     `(("ocaml-zarith" ,ocaml-zarith)))
+     (list ocaml-zarith))
     (arguments
      `(#:test-target "test-suite"
+       #:make-flags (list (string-append "COQLIBINSTALL="
+                                         (assoc-ref %outputs "out")
+                                         "/lib/coq/user-contrib"))
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
-             (invoke "sh" "./configure.sh")))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (invoke "make"
-                     (string-append "COQLIB=" (assoc-ref outputs "out")
-                                    "/lib/coq/")
-                     "install"))))))
+             (invoke "sh" "./configure.sh"))))))
     (home-page "https://mattam82.github.io/Coq-Equations/")
     (synopsis "Function definition plugin for Coq")
     (description "Equations provides a notation for writing programs
@@ -572,10 +575,57 @@ and accessibility, providing a definitional extension to the Coq
 kernel.")
     (license license:lgpl2.1)))
 
+(define-public coq-semantics
+  (package
+    (name "coq-semantics")
+    (version "8.14.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://github.com/coq-community/semantics")
+              (commit (string-append "v" version))))
+        (modules '((guix build utils)))
+        (snippet
+         '(substitute* "Makefile.coq.local"
+            ;; Num was part of OCaml and now external
+            (("-libs nums") "-use-ocamlfind -pkg num -libs num")))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "0ldrp86bfcjpzsb08p45sgs3aczjzr1gksy5dsf7pxapg05pc7ac"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list coq ocaml ocamlbuild ocaml-findlib))
+    (inputs
+     (list ocaml-num))
+    (arguments
+     `(#:tests? #f                      ;included in Makefile
+       #:make-flags (list (string-append "COQLIBINSTALL="
+                                         (assoc-ref %outputs "out")
+                                         "/lib/coq/user-contrib"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (home-page "https://github.com/coq-community/semantics")
+    (synopsis "Survey of semantics styles")
+    (description
+     "This package provides a survey of programming language semantics styles,
+from natural semantics through structural operational, axiomatic, and
+denotational semantics, for a miniature example of an imperative programming
+language.  Their encoding, the proofs of equivalence of different styles,
+abstract interpretation, and the proof of soundess obtained from axiomatic
+semantics or abstract interpretation is done in Coq.  The tools can be run
+inside Coq, thus making them available for proof by reflection.  Code can also
+be extracted and connected to a yacc-based parser, thanks to the use of a
+functor parameterized by a module type of strings.  A hand-written parser is
+also provided in Coq, without associated proofs.")
+    (license license:expat)))
+
 (define-public coq-stdpp
   (package
     (name "coq-stdpp")
-    (version "1.5.0")
+    (version "1.6.0")
     (synopsis "Alternative Coq standard library std++")
     (source (origin
               (method git-fetch)
@@ -585,21 +635,18 @@ kernel.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1ym0fy620imah89p8b6rii8clx2vmnwcrbwxl3630h24k42092nf"))))
+                "1l1w6srzydjg0h3f4krrfgvz455h56shyy2lbcnwdbzjkahibl7v"))))
     (build-system gnu-build-system)
     (inputs
-     `(("coq" ,coq)))
+     (list coq))
     (arguments
      `(#:tests? #f ; Tests are executed during build phase.
+       #:make-flags (list (string-append "COQLIBINSTALL="
+                                         (assoc-ref %outputs "out")
+                                         "/lib/coq/user-contrib"))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (invoke "make"
-                     (string-append "COQLIB=" (assoc-ref outputs "out")
-                                    "/lib/coq/")
-                     "install"))))))
+         (delete 'configure))))
     (description "This project contains an extended \"Standard Library\" for
 Coq called coq-std++.  The key features are:
 @itemize
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 7ac4b0c39b..c3b6403e02 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
-;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
+;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
@@ -21,6 +21,7 @@
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 ;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 Nikolay Korotkiy <sikmir@disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -72,6 +73,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages popt)
   #:use-module (gnu packages pretty-print)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
@@ -89,14 +91,14 @@
          (commit version)))
        (file-name
         (git-file-name name version))
+       (patches (search-patches "range-v3-build-with-gcc10.patch"))
        (sha256
         (base32 "18230bg4rq9pmm5f8f65j444jpq56rld4fhmpham8q3vr1c1bdjh"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("perl" ,perl)))
+     (list doxygen gcc-9 perl))
     (inputs
-     `(("boost" ,boost)))
+     (list boost))
     (synopsis "Range library for C++14/17/20")
     (description "Range-v3 is an extension of the Standard Template Library that
 makes its iterators and algorithms more powerful by making them composable.
@@ -137,8 +139,7 @@ range-v3 ranges are an abstraction layer on top of iterators.")
         (base32 "0gbvr48f03830g3154bjhw92b8ggmg6wwh5xyb8nppk9v6w752l0"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("googletest" ,googletest)
-       ("pkg-config" ,pkg-config)))
+     (list googletest pkg-config))
     (synopsis "Guidelines Support Library")
     (description "c++-gsl contains functions and types that are suggested for
 use by the C++ Core Guidelines maintained by the Standard C++ Foundation.")
@@ -148,7 +149,7 @@ use by the C++ Core Guidelines maintained by the Standard C++ Foundation.")
 (define-public libzen
   (package
     (name "libzen")
-    (version "0.4.38")
+    (version "0.4.39")
     (source (origin
               (method url-fetch)
               ;; Warning: This source has proved unreliable 1 time at least.
@@ -159,11 +160,9 @@ use by the C++ Core Guidelines maintained by the Standard C++ Foundation.")
                                   "libzen_" version ".tar.bz2"))
               (sha256
                (base32
-                "1nkygc17sndznpcf71fdrhwpm8z9a3hc9csqlafwswh49axhfkjr"))))
+                "1rwaxmid9iv65n0y6xlcyxxydsvihjni9ldxpg6pbqz43amp49xx"))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -171,8 +170,7 @@ use by the C++ Core Guidelines maintained by the Standard C++ Foundation.")
        (modify-phases %standard-phases
          (add-after 'unpack 'pre-configure
            (lambda _
-             (chdir "Project/GNU/Library")
-             #t)))))
+             (chdir "Project/GNU/Library"))))))
     (home-page "https://github.com/MediaArea/ZenLib")
     (synopsis "C++ utility library")
     (description "ZenLib is a C++ utility library.  It includes classes for handling
@@ -207,7 +205,7 @@ operating system functions.")
              (substitute* "src/unit_tests/unit_tests.cmake"
                (("misc/library_test.cpp") ""))
              #t)))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://github.com/rttrorg/rttr/")
     (synopsis "C++ Reflection Library")
     (description
@@ -238,11 +236,9 @@ the name of the library itself, which is written in C++.")
          '("-DWITH_TESTS=ON"            ; To run the test suite
            "-DRCT_RTTI_ENABLED=ON")))
       (native-inputs
-       `(("cppunit" ,cppunit)
-         ("pkg-config" ,pkg-config)))
+       (list cppunit pkg-config))
       (inputs
-       `(("openssl" ,openssl)
-         ("zlib" ,zlib)))
+       (list openssl zlib))
       (home-page "https://github.com/Andersbakken/rct")
       (synopsis "C++ library providing Qt-like APIs on top of the STL")
       (description "Rct is a set of C++ tools that provide nicer (more Qt-like)
@@ -265,7 +261,7 @@ the name of the library itself, which is written in C++.")
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments '(#:tests? #f))          ; no tests
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://github.com/aseba-community/dashel")
     (synopsis "Data stream helper encapsulation library")
     (description
@@ -293,7 +289,7 @@ combination of these streams.")
      `(#:configure-flags (list "-DBUILD_TESTS=ON")
        #:test-target "xtest"))
     (native-inputs
-     `(("googletest" ,googletest)))
+     (list googletest))
     (home-page "https://github.com/QuantStack/xsimd")
     (synopsis "C++ wrappers for SIMD intrinsics and math implementations")
     (description
@@ -357,7 +353,7 @@ functions, class methods, and stl containers.
                 (modules '((guix build utils)))
                 (snippet '(delete-file-recursively "./test/thirdparty"))))
       (native-inputs
-       `(("catch2" ,catch-framework2-1)))
+       (list catch-framework2-1))
       (build-system cmake-build-system)
       (arguments
        `(#:phases
@@ -445,15 +441,12 @@ as ordering relation.")
               (base32
                "0nzsjzlvk14dazwh7k2jb1dinb0pv9jbx5jsyn264wvva0y7daiv")))))))
     (inputs
-     `(("fifo-map" ,fifo-map)))
+     (list fifo-map))
     (synopsis "JSON parser and printer library for C++")
     (description "JSON for Modern C++ is a C++ JSON library that provides
 intuitive syntax and trivial integration.")
     (license license:expat)))
 
-(define-public nlohmann-json-cpp
-  (deprecated-package "nlohmann-json-cpp" json-modern-cxx))
-
 (define-public xtl
   (package
     (name "xtl")
@@ -469,8 +462,7 @@ intuitive syntax and trivial integration.")
                 "1kd9zl4h6nrsg29hq13vwp4zhfj8sa90vj40726lpw6vxz48k4di"))
               (file-name (git-file-name name version))))
     (native-inputs
-     `(("googletest" ,googletest)
-       ("json-modern-cxx" ,json-modern-cxx)))
+     (list googletest json-modern-cxx))
     (arguments
      `(#:configure-flags
        '("-DBUILD_TESTS=ON")
@@ -491,7 +483,7 @@ tools (containers, algorithms) used by other QuantStack packages.")
 (define-public ccls
   (package
     (name "ccls")
-    (version "0.20201219")
+    (version "0.20210330")
     (source
      (origin
        (method git-fetch)
@@ -499,16 +491,15 @@ tools (containers, algorithms) used by other QuantStack packages.")
              (url "https://github.com/MaskRay/ccls")
              (commit version)))
        (sha256
-        (base32 "0nkg92rgb1x6scpiwdamfrd1ag87j7ajxyn5qi861r916m5mh9m8"))
+        (base32 "0zzdn7c7a244djqwcsd7rvgclcdacyf9d0vkxpfspl83k2554alf"))
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f))                    ; no check target
     (inputs
-     `(("rapidjson" ,rapidjson)))
+     (list rapidjson))
     (native-inputs
-     `(("clang" ,clang)
-       ("llvm" ,llvm)))
+     (list clang llvm))
     (home-page "https://github.com/MaskRay/ccls")
     (synopsis "C/C++/Objective-C language server")
     (description
@@ -519,6 +510,27 @@ syntax highlighting.  @code{ccls} is derived from @code{cquery} which is not
 maintained anymore.")
     (license license:asl2.0)))
 
+(define-public spscqueue
+  (package
+    (name "spscqueue")
+    (version "1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rigtorp/SPSCQueue/")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1428cj9x318afvnvnkhg0711iy4czqn86fi7ysgfhw91asa316rc"))))
+    (build-system cmake-build-system)
+    (home-page "https://github.com/rigtorp/SPSCQueue/")
+    (synopsis "Single producer single consumer queue written in C++11")
+    (description
+     "This package provides a single producer single consumer wait-free and
+lock-free fixed size queue written in C++11.")
+    (license license:expat)))
+
 (define-public gperftools
   (package
     (name "gperftools")
@@ -538,11 +550,9 @@ maintained anymore.")
       ;; https://bugs.gnu.org/46562
      '(#:parallel-tests? #f))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ;; For tests.
-       ("perl" ,perl)))
+     (list autoconf automake libtool
+           ;; For tests.
+           perl))
     (home-page "https://github.com/gperftools/gperftools")
     (synopsis "Multi-threaded malloc() and performance analysis tools for C++")
     (description
@@ -606,11 +616,9 @@ tools:
                  (invoke "make"))))))))
     (native-inputs
      ;; required to build shared lib
-     `(("python" ,python)))
+     (list python))
     (inputs
-     `(("brotli" ,brotli)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list brotli openssl zlib))
     (home-page "https://github.com/yhirose/cpp-httplib")
     (synopsis "C++ HTTP/HTTPS server and client library")
     (description "cpp-httplib is a C++11 single-file cross platform blocking
@@ -643,9 +651,7 @@ library.")
              #t)))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest python-pytest-cov python-pytest-runner))
     (home-page "https://github.com/cpplint/cpplint")
     (synopsis "Static code checker for C++")
     (description "@code{cpplint} is a command-line tool to check C/C++ files
@@ -675,7 +681,7 @@ and make @code{cpplint} usable in wider contexts.")
       ;; Enable building of shared library.
       #:configure-flags `("-DBUILD_SHARED_LIBS=1")))
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    (list pkg-config))
    (synopsis "Process IO library")
    (description "reproc (Redirected Process) is a C/C++ library that
 simplifies starting, stopping and communicating with external programs.  The
@@ -687,7 +693,7 @@ code and retrieving their output.")
 (define-public sobjectizer
   (package
     (name "sobjectizer")
-    (version "5.6.1")
+    (version "5.7.2.6")
     (source
      (origin
        (method git-fetch)
@@ -695,7 +701,7 @@ code and retrieving their output.")
              (url "https://github.com/Stiffstream/sobjectizer")
              (commit (string-append "v." version))))
        (sha256
-        (base32 "0jfai7sqxnnjkms38krm7mssj5l79nb3pllkbyj4j581a7l5j6l5"))
+        (base32 "0n6smpjkkkw0xab8wcpy3p0dpw2v9sxgwl6azl3am6abmv4mff12"))
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments
@@ -743,7 +749,8 @@ other values of screen objects, by setting their values as the tween starting
 point and then, after each tween step, plugging back the result.")
     (license license:expat)))
 
-(define-public abseil-cpp
+;;; This older LTS release is kept for tensorflow.
+(define-public abseil-cpp-20200923.3
   (package
     (name "abseil-cpp")
     (version "20200923.3")
@@ -756,11 +763,8 @@ point and then, after each tween step, plugging back the result.")
               (sha256
                (base32
                 "1p4djhm1f011ficbjjxx3n8428p8481p20j4glpaawnpsi362hkl"))
-              ;; Remove after next googletest release and update.
               (patches
-               (search-patches
-                "abseil-cpp-fix-gtest.patch"
-                "abseil-cpp-fix-strerror_test.patch"))))
+               (search-patches "abseil-cpp-fix-strerror_test.patch"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"
@@ -785,7 +789,7 @@ point and then, after each tween step, plugging back the result.")
                (("check_target\\(gtest_main\\)") "")
                (("check_target\\(gmock\\)") "")))))))
     (native-inputs
-     `(("googletest" ,googletest)))
+     (list googletest))
     (home-page "https://abseil.io")
     (synopsis "Augmented C++ standard library")
     (description "Abseil is a collection of C++ library code designed to
@@ -793,6 +797,26 @@ augment the C++ standard library.  The Abseil library code is collected from
 Google's C++ code base.")
     (license license:asl2.0)))
 
+(define-public abseil-cpp
+  (let ((base abseil-cpp-20200923.3))
+    (package/inherit base
+      (name "abseil-cpp")
+      (version "20210324.2")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/abseil/abseil-cpp")
+                      (commit version)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0g9rbhk3mwjdfxk7cscd04vm8fphd5flz9yykpgvyy1nwa34zk3x"))))
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:configure-flags flags)
+          `(cons* "-DBUILD_TESTING=ON"
+                  (delete "-DABSL_RUN_TESTS=ON" ,flags))))))))
+
 (define-public pegtl
   (package
     (name "pegtl")
@@ -838,7 +862,7 @@ standard GNU style syntax for options.")
 (define-public folly
   (package
     (name "folly")
-    (version "2021.04.26.00")
+    (version "2021.10.04.00")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -847,7 +871,7 @@ standard GNU style syntax for options.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0s3jb02qjl9f4gfj01pa01cilkfpc4p0gbpn6bg5vcicyj76garg"))))
+                "1h7apl42idymqra0xgw7s5ys3dxrqd8gq0f99g048k4g5fxl64s9"))))
     (build-system cmake-build-system)
     (arguments
      '(;; Tests must be explicitly enabled
@@ -855,26 +879,23 @@ standard GNU style syntax for options.")
        ;; Leave tests disabled; see https://github.com/facebook/folly/issues/1456
        #:tests? #f))
     (propagated-inputs
-     `(("boost" ,boost)
-       ("gflags" ,gflags)
-       ("glog" ,glog)
-       ("liburing" ,liburing)))
+     (list boost gflags glog liburing))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("double-conversion" ,double-conversion)
-       ("fmt" ,fmt)
-       ("libaio" ,libaio)
-       ("libevent" ,libevent)
-       ("libiberty" ,libiberty)
-       ("libsodium" ,libsodium)
-       ("libunwind" ,libunwind)
-       ("lz4" ,lz4)
-       ("openssl" ,openssl)
-       ("snappy" ,snappy)
-       ("zlib" ,zlib)
-       ("zstd" ,zstd "lib")))
+     (list bzip2
+           double-conversion
+           fmt
+           libaio
+           libevent
+           libiberty
+           libsodium
+           libunwind
+           lz4
+           openssl
+           snappy
+           zlib
+           `(,zstd "lib")))
     (native-inputs
-     `(("googletest" ,googletest)))
+     (list googletest))
     (synopsis "Collection of C++ components complementing the standard library")
     (description
      "Folly (acronymed loosely after Facebook Open Source Library) is a library
@@ -884,10 +905,53 @@ of C++14 components that complements @code{std} and Boost.")
     (supported-systems '("aarch64-linux" "x86_64-linux"))
     (license license:asl2.0)))
 
+(define-public aws-crt-cpp
+  (let* ((commit "b6d311d76b504bf8ace5134d3fca0e672c36c9c3")
+         (revision "1"))
+    (package
+      (name "aws-crt-cpp")
+      ; Update only when updating aws-sdk-cpp, and when updating also update
+      ; versions of library dependencies linked from from
+      ; https://github.com/awslabs/aws-crt-cpp/tree/{aws-crt-cpp commit}/crt
+      (version (git-version "0.17.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/awslabs/aws-crt-cpp")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1n0nlbz91j3ycwwrh9652f0h5qr2sj5b1l0i5sg40ajzs7wvzd32"))))
+      (build-system cmake-build-system)
+      (arguments
+       '(#:configure-flags
+         (list "-DBUILD_DEPS=OFF"
+               "-DBUILD_SHARED_LIBS=ON"
+               (string-append "-DCMAKE_PREFIX_PATH="
+                            (assoc-ref %build-inputs "aws-c-common"))
+               "-DENABLE_NET_TESTS=OFF")))
+      (propagated-inputs
+       (list aws-c-auth
+             aws-c-cal
+             aws-c-event-stream
+             aws-c-http
+             aws-c-mqtt
+             aws-c-s3))
+      (synopsis "C++ wrapper for Amazon Web Services C libraries")
+      (description "The AWS Common Runtime (CRT) library provides a C++ wrapper
+implementation for the following @acronym{AWS,Amazon Web Services} C libraries:
+aws-c-auth, aws-c-cal, aws-c-common, aws-c-compression, aws-c-event-stream,
+aws-c-http, aws-c-io, aws-c-mqtt, aws-checksums, and s2n.")
+      (home-page "https://github.com/awslabs/aws-crt-cpp")
+      (license license:asl2.0))))
+
 (define-public aws-sdk-cpp
   (package
     (name "aws-sdk-cpp")
-    (version "1.8.159")
+    ; When updating also check for a tagged update to aws-crt-cpp from
+    ; https://github.com/aws/aws-sdk-cpp/tree/main/crt
+    (version "1.9.136")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -896,22 +960,20 @@ of C++14 components that complements @code{std} and Boost.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0jpfv9x82nq7hcix9in7qgrc8009dwpg6gr96hlgmcvqrqckd2r9"))))
+                "0ap7g7nmbnrcajy3b788bnpqd87dwmg83dhll1q8qzli04bcg47i"))))
     (build-system cmake-build-system)
     (arguments
      '(;; Tests are run during the build phase.
        #:tests? #f
        #:configure-flags
-       '("-DBUILD_SHARED_LIBS=ON"
-         "-DBUILD_DEPS=OFF")))
+       (list "-DBUILD_DEPS=OFF"
+             "-DBUILD_SHARED_LIBS=ON"
+             (string-append "-DCMAKE_PREFIX_PATH="
+                            (assoc-ref %build-inputs "aws-c-common")))))
     (propagated-inputs
-     `(("aws-c-common" ,aws-c-common)
-       ("aws-c-event-stream" ,aws-c-event-stream)))
+     (list aws-crt-cpp))
     (inputs
-     `(("aws-checksums" ,aws-checksums)
-       ("curl" ,curl)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list curl openssl pulseaudio zlib))
     (synopsis "Amazon Web Services SDK for C++")
     (description
      "The AWS SDK for C++ provides a C++11 interface to the @acronym{AWS,Amazon
@@ -947,7 +1009,7 @@ services including database, analytic, and machine learning technologies.")
            (lambda _
              (invoke "./tests"))))))
     (native-inputs
-     `(("catch2" ,catch-framework2)))
+     (list catch-framework2))
     (synopsis "C++11/14/17 std::expected with functional-style extensions")
     (description "@code{std::expected} is proposed as the preferred way to
 represent objects which will either have an expected value, or an unexpected
@@ -973,8 +1035,6 @@ provides a number of utilities to make coding with expected cleaner.")
                (base32
                 "1x47radgsifgz3vn2561mlvf4cq46ii33cpyqf01znm56iirwq89"))))
     (build-system cmake-build-system)
-    (native-inputs
-     `(("gcc" ,gcc-9)))
     (synopsis "C++17 header only library for compile time reflection of enums")
     (description "Magic Enum offers static reflection of enums, with
 conversions to and from strings, iteration and related functionality.")
@@ -1020,8 +1080,7 @@ conversions to and from strings, iteration and related functionality.")
                (("^    PROPERTIES FOLDER \"Extern\"\\)") ""))
              #t)))))
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("googletest" ,googletest)))
+     (list doxygen googletest))
     (synopsis "Command line parser for C++11")
     (description
      "CLI11 is a command line parser for C++11 and beyond that provides a rich
@@ -1032,7 +1091,7 @@ feature set with a simple and intuitive interface.")
 (define-public caf
   (package
     (name "caf")
-    (version "0.18.0")
+    (version "0.18.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1041,13 +1100,13 @@ feature set with a simple and intuitive interface.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1c3spd6vm1h9qhlk5c4fdwi6nbqx5vwz2zvv6qp0rj1hx6xpq3cx"))))
+                "04b4kjisb5wzq6pilh8xzbxn7qcjgppl8k65hfv0zi0ja8fyp1xk"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
        '("-DCAF_ENABLE_EXAMPLES=OFF")))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (synopsis "C++ implementation of the actor model")
     (description "The C++ Actor Framework (CAF) offers a high-level C++17
 programming environment using the actor model for concurrent, distributed
@@ -1055,9 +1114,38 @@ computation.")
     (home-page "https://www.actor-framework.org/")
     (license license:bsd-3)))
 
+(define-public clipper
+  (package
+    (name "clipper")
+    (version "6.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/polyclipping"
+                           "/clipper_ver" version ".zip"))
+       (sha256
+        (base32 "09q6jc5k7p9y5d75qr2na5d1gm0wly5cjnffh127r04l47c20hx1"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ;no check target
+       #:phases (modify-phases %standard-phases
+                  (replace 'unpack
+                    (lambda* (#:key source #:allow-other-keys)
+                      (and (invoke "unzip" source)
+                           (chdir "cpp")))))))
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (home-page "https://sourceforge.net/projects/polyclipping")
+    (synopsis "A polygon and line clipping and offsetting library")
+    (description
+     "The Clipper library performs line & polygon clipping - intersection,
+union, difference & exclusive-or, and line & polygon offsetting.
+The library is based on Vatti's clipping algorithm.")
+    (license license:boost1.0)))
+
 (define-public pcg-cpp
-  (let ((commit "5b5cac8d61339e810c5dbb4692d868a1d7ca1b2d")
-        (revision "1"))
+  (let ((commit "ffd522e7188bef30a00c74dc7eb9de5faff90092")
+        (revision "2"))
     (package
       (name "pcg-cpp")
       (version (git-version "0.98.1" revision commit))
@@ -1069,7 +1157,7 @@ computation.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1s9dcd4iydlc1xj9m6f7c52nlyx99klk043sk7arqy6kp7gdaa33"))))
+                  "0yxyqaphcc38zilpwpmssrl8ly1v6dimscqk2f4rcv1h22dinnqx"))))
       (build-system gnu-build-system)
       (arguments
        `(#:test-target "test"
@@ -1084,6 +1172,34 @@ output randomness while retaining speed, simplicity, and conciseness.")
       (home-page "https://www.pcg-random.org")
       (license (list license:expat license:asl2.0))))) ; dual licensed
 
+(define-public libconfini
+  (package
+    (name "libconfini")
+    (version "1.16.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/madmurphy/libconfini")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "01g8ai2z4fwshk06k824j6ib8nfb3cwxs5kqpqjvv4k5ayzm892h"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'bootstrap
+           (lambda _ (invoke "sh" "bootstrap" "--noconfigure"))))))
+    (native-inputs
+     (list autoconf automake libtool))
+    (home-page "https://madmurphy.github.io/libconfini/html/index.html")
+    (synopsis "INI file parser")
+    (description "@code{libconfini} is an INI file parser library written in
+C.  It focuses on standardization and parsing exactness and is at ease with
+almost every type of file containing key/value pairs.")
+    (license license:gpl3+)))
+
 (define-public libcutl
   (package
     (name "libcutl")
@@ -1113,8 +1229,8 @@ output randomness while retaining speed, simplicity, and conciseness.")
                                ;;"--with-external-boost"
                                "--with-external-expat")))
     (inputs
-     `(;;("boost ,boost)
-       ("expat" ,expat)))
+     (list ;;("boost ,boost)
+           expat))
     (home-page "https://www.codesynthesis.com/projects/libcutl/")
     (synopsis "C++ utility library with generic and independent components")
     (description "libcutl is a C++ utility library.  It contains a collection
@@ -1159,7 +1275,7 @@ pointers, containers, compiler building blocks, etc.")
                        #:include-regexp ("\\.so$")))
                     args))))))
     (native-inputs
-     `(("build" ,build)))
+     (list build))
     (inputs
      `(("libcutl" ,libcutl)
        ("libxerces-c" ,xerces-c)))
@@ -1207,9 +1323,9 @@ and a traversal mechanism.")
                 (string-append "edge_dispatcher::" all)))))
          (delete 'configure))))
     (native-inputs
-     `(("build" ,build)))
+     (list build))
     (inputs
-     `(("libcutl" ,libcutl)))
+     (list libcutl))
     (synopsis "C++ Command Line Interface (CLI) definition language")
     (description "@code{cli} is a domain-specific language (DSL) for defining
 command line interfaces of C++ programs.  It allows you to describe the
@@ -1250,16 +1366,13 @@ documentation.")
                                                     ,version)))))
                   (delete 'configure))))
     (native-inputs
-     `(("build" ,build)
-       ("cli" ,cli)))
+     (list build cli))
     (inputs
-     `(("libcutl" ,libcutl)
-       ("libnsl" ,libnsl)
-       ("libxsd-frontend" ,libxsd-frontend)))
+     (list libcutl libnsl libxsd-frontend))
     (propagated-inputs
      ;; The code XSD generates requires the following library at run time;
      ;; propagate it for convenience.
-     `(("xerces-c" ,xerces-c)))
+     (list xerces-c))
     (synopsis "XML Data Binding for C++")
     (description "CodeSynthesis XSD (also known as libxsd or xsdcxx) is an XML
 Schema to C++ data binding compiler.  Provided with an XML instance
@@ -1303,12 +1416,37 @@ of reading and writing XML.")
      `(#:configure-flags '("-DUSE_SYSTEM_GTEST=ON" "-DUSE_SYSTEM_JSON=ON"
                            "-DBUILD_STATIC_LIBS=OFF")))
     (native-inputs
-     `(("googletest" ,googletest)
-       ("pkg-config" ,pkg-config)))
+     (list googletest pkg-config))
     (inputs
-     `(("json-modern-cxx" ,json-modern-cxx)))
+     (list json-modern-cxx))
     (home-page "https://jsonnet.org/")
     (synopsis "Data templating language")
     (description "Jsonnet is a templating language extending JSON
 syntax with variables, conditions, functions and more.")
     (license license:asl2.0)))
+
+(define-public simdjson
+  (package
+    (name "simdjson")
+    (version "1.0.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/simdjson/simdjson")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "05i5jnqd7ngps79cws16ls48gnx08ykkkib3n2hbrdhr1wwrnv7a"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:tests? #f                      ; tests require downloading dependencies
+       #:configure-flags
+       '("-DBUILD_SHARED_LIBS=ON")))
+    (synopsis "JSON parser for C++ using SIMD instructions")
+    (description
+     "The simdjson library uses commonly available SIMD instructions and
+microparallel algorithms to implement a strict JSON parser with UTF-8
+validation.")
+    (home-page "https://github.com/simdjson/simdjson")
+    (license license:asl2.0)))
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index f288f76e95..98f7fc46fd 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -17,7 +17,7 @@
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018, 2019 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2019 Nicolò Balzarotti <anothersms@gmail.com>
-;;; Copyright © 2019, 2020 Wiktor Żelazny <wzelazny@vurv.cz>
+;;; Copyright © 2019, 2020, 2021 Wiktor Żelazny <wzelazny@vurv.cz>
 ;;; Copyright © 2019 Arne Babenhauserheide <arne_bab@web.de>
 ;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Todor Kondić <tk.code@protonmail.com>
@@ -31,9 +31,10 @@
 ;;; Copyright © 2020 Antoine Côté <antoine.cote@posteo.net>
 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2020 Magali Lemes <magalilemes00@gmail.com>
-;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2020, 2021 Simon Tournier <zimon.toutoune@gmail.com>
 ;;; Copyright © 2020 Aniket Patil <aniket112.patil@gmail.com>
 ;;; Copyright © 2021 Marcel Schilling <marcel.schilling@uni-luebeck.de>
+;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -84,7 +85,6 @@
   #:use-module (gnu packages java)
   #:use-module (gnu packages javascript)
   #:use-module (gnu packages libevent)
-  #:use-module (gnu packages lisp-xyz)
   #:use-module (gnu packages machine-learning)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
@@ -104,6 +104,7 @@
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages uglifyjs)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages video)
   #:use-module (gnu packages web)
@@ -145,8 +146,7 @@ files and provide more explicit control over line endings.")
     (properties `((upstream-name . "cachem")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-fastmap" ,r-fastmap)
-       ("r-rlang" ,r-rlang)))
+     (list r-fastmap r-rlang))
     (home-page "https://cachem.r-lib.org/")
     (synopsis "Cache R objects with automatic pruning")
     (description
@@ -187,20 +187,20 @@ etc.")
 (define-public r-datawizard
   (package
     (name "r-datawizard")
-    (version "0.2.0")
+    (version "0.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "datawizard" version))
        (sha256
         (base32
-         "1brbkjl0ds3gd0x6jl6vggzl1nfrn76z63vhj2gbl9l168iss5z3"))))
+         "062phzfcvn79npn4s58gz1m5ignyvr4q2zlqnyxla4p7l760djl9"))))
     (properties `((upstream-name . "datawizard")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-insight" ,r-insight)))
+     (list r-insight))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://easystats.github.io/datawizard/")
     (synopsis "Easy data wrangling")
     (description
@@ -212,18 +212,18 @@ wrangling backend for the packages in the @code{easystats} ecosystem.")
 (define-public r-diffobj
   (package
     (name "r-diffobj")
-    (version "0.3.4")
+    (version "0.3.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "diffobj" version))
        (sha256
         (base32
-         "1z4yhfasjpi9rxl1lh9bny7yvs947a6hhc768azc1wwad748mk9q"))))
+         "0q6gwd9pqh41f6j5p9jl92aji4p8kx9inffpha93d7jc3ndsfq6q"))))
     (properties `((upstream-name . "diffobj")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-crayon" ,r-crayon)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+    (propagated-inputs (list r-crayon))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/brodieG/diffobj")
     (synopsis "Diffs for R objects")
     (description
@@ -265,22 +265,22 @@ Distance (EMD).")
     (properties `((upstream-name . "googledrive")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cli" ,r-cli)
-       ("r-gargle" ,r-gargle)
-       ("r-glue" ,r-glue)
-       ("r-httr" ,r-httr)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-magrittr" ,r-magrittr)
-       ("r-pillar" ,r-pillar)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-uuid" ,r-uuid)
-       ("r-vctrs" ,r-vctrs)
-       ("r-withr" ,r-withr)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-cli
+           r-gargle
+           r-glue
+           r-httr
+           r-jsonlite
+           r-lifecycle
+           r-magrittr
+           r-pillar
+           r-purrr
+           r-rlang
+           r-tibble
+           r-uuid
+           r-vctrs
+           r-withr))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://googledrive.tidyverse.org")
     (synopsis "Interface to Google Drive")
     (description "This package lets you manage Google Drive files from R.")
@@ -300,9 +300,8 @@ Distance (EMD).")
     (properties `((upstream-name . "ids")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-openssl" ,r-openssl)
-       ("r-uuid" ,r-uuid)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-openssl r-uuid))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/richfitz/ids")
     (synopsis "Generate random identifiers")
     (description
@@ -324,20 +323,20 @@ pronounceable identifiers.")
     (properties `((upstream-name . "googlesheets4")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cellranger" ,r-cellranger)
-       ("r-cli" ,r-cli)
-       ("r-curl" ,r-curl)
-       ("r-gargle" ,r-gargle)
-       ("r-glue" ,r-glue)
-       ("r-googledrive" ,r-googledrive)
-       ("r-httr" ,r-httr)
-       ("r-ids" ,r-ids)
-       ("r-magrittr" ,r-magrittr)
-       ("r-purrr" ,r-purrr)
-       ("r-rematch2" ,r-rematch2)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-cellranger
+           r-cli
+           r-curl
+           r-gargle
+           r-glue
+           r-googledrive
+           r-httr
+           r-ids
+           r-magrittr
+           r-purrr
+           r-rematch2
+           r-rlang
+           r-tibble
+           r-vctrs))
     (home-page "https://github.com/tidyverse/googlesheets4")
     (synopsis "Access Google Sheets using the Sheets API V4")
     (description
@@ -349,24 +348,24 @@ can read and write both the metadata and the cell data in a Sheet.")
 (define-public r-waldo
   (package
     (name "r-waldo")
-    (version "0.2.5")
+    (version "0.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "waldo" version))
        (sha256
         (base32
-         "09jhwpgd6hg4qyip4r7wzpjz0jr139fyspd5ncriqimp522snqbr"))))
+         "16q1xjbl9g04l1r1x3nid9hmz1sa35q6j33bigdzh4y4zcd8qb7c"))))
     (properties `((upstream-name . "waldo")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cli" ,r-cli)
-       ("r-diffobj" ,r-diffobj)
-       ("r-fansi" ,r-fansi)
-       ("r-glue" ,r-glue)
-       ("r-rematch2" ,r-rematch2)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)))
+     (list r-cli
+           r-diffobj
+           r-fansi
+           r-glue
+           r-rematch2
+           r-rlang
+           r-tibble))
     (home-page "https://github.com/r-lib/waldo")
     (synopsis "Find differences between R objects")
     (description
@@ -379,22 +378,18 @@ easier.")
 (define-public r-rticles
   (package
     (name "r-rticles")
-    (version "0.20")
+    (version "0.21")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rticles" version))
        (sha256
         (base32
-         "1q17yh5rfhra85nihaaall10x4rz575350ib1bj5hd8ij9cmsam6"))))
+         "0xk0xz97k8r8srmniihn3y4dkxddxf97yjbsljcxlgcq8f0zcc2s"))))
     (properties `((upstream-name . "rticles")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-knitr" ,r-knitr)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-tinytex" ,r-tinytex)
-       ("r-xfun" ,r-xfun)
-       ("r-yaml" ,r-yaml)))
+     (list r-knitr r-rmarkdown r-tinytex r-xfun r-yaml))
     (home-page "https://github.com/rstudio/rticles")
     (synopsis "Article formats for R Markdown")
     (description
@@ -414,8 +409,7 @@ for authoring journal articles and conference submissions.")
                 "1n4vjkagqlm6kw2hilf4gjfcdjad0bcg652j9nl2ygbq3kdnh1vf"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-tibble" ,r-tibble)))
+     (list r-dplyr r-tibble))
     (home-page "https://github.com/csgillespie/benchmarkme-data")
     (synopsis "Data set for the @code{benchmarkme} package")
     (description "This package contains the data set for the crowd-sourced
@@ -434,15 +428,15 @@ benchmarks from running the @code{benchmarkme} package.")
                 "0ymgsxzrvnpyvs0cff09d3lrkl12qyqx5bwammsc4vgl5ng9p69p"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (propagated-inputs
-     `(("r-benchmarkmedata" ,r-benchmarkmedata)
-       ("r-doparallel" ,r-doparallel)
-       ("r-dplyr" ,r-dplyr)
-       ("r-foreach" ,r-foreach)
-       ("r-httr" ,r-httr)
-       ("r-matrix" ,r-matrix)
-       ("r-tibble" ,r-tibble)))
+     (list r-benchmarkmedata
+           r-doparallel
+           r-dplyr
+           r-foreach
+           r-httr
+           r-matrix
+           r-tibble))
     (home-page "https://csgillespie.github.io/benchmarkme/")
     (synopsis "Crowd-sourced system benchmarks")
     (description "This package provides functionality to benchmark your CPU
@@ -472,14 +466,14 @@ degree elevation and curve fitting.")
 (define-public r-v8
   (package
     (name "r-v8")
-    (version "3.4.2")
+    (version "3.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "V8" version))
        (sha256
         (base32
-         "1vfj89shfzx7b6papi2y671l8gksng775kilmqzl5gx87i3l61i1"))))
+         "0xqk4rcv255r2wll2jpzf9ix8j6hbhw0vbhg2g9i6z2apyc9i5m3"))))
     (properties `((upstream-name . "V8")))
     (build-system r-build-system)
     (arguments
@@ -504,11 +498,9 @@ degree elevation and curve fitting.")
      `(("node" ,libnode)
        ("zlib" ,zlib)))
     (propagated-inputs
-     `(("r-curl" ,r-curl)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-curl r-jsonlite r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://jeroen.cran.dev/V8")
     (synopsis "Embedded JavaScript and WebAssembly engine for R")
     (description
@@ -530,7 +522,7 @@ WebAssembly engine.")
     (properties `((upstream-name . "DOT")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-v8" ,r-v8)))
+     (list r-v8))
     (home-page "http://haghish.com/dot")
     (synopsis "Render and Export DOT Graphs in R")
     (description
@@ -553,7 +545,7 @@ programming packages such as @code{knitr} and @code{rmarkdown}.")
          "1ywa4kipwc2d7na6iiz3wzdah99h6aynnh74yxl3nzl40xxlgbgz"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/mdlincoln/clipr")
     (synopsis "Read and write from the system clipboard")
     (description
@@ -573,7 +565,7 @@ the system clipboards.")
                 "18vjywalpgzqyk66gajb8x1yp8avdaaf11ykynld9fd8cy82bgmp"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)))
+     (list r-lattice))
     (home-page "http://zoo.R-Forge.R-project.org/")
     (synopsis "S3 infrastructure for regular and irregular time series")
     (description "This package contains an S3 class with methods for totally
@@ -581,6 +573,78 @@ ordered indexed observations.  It is particularly aimed at irregular time
 series of numeric vectors/matrices and factors.")
     (license license:gpl2+)))
 
+(define-public r-fontawesome
+  (package
+    (name "r-fontawesome")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "fontawesome" version))
+       (sha256
+        (base32 "0r6zb5175cr4ybqj6bl0mbhadwv9xjxaf32yjc0y76rw3d6vcbap"))))
+    (properties `((upstream-name . "fontawesome")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-htmltools r-rlang))
+    (home-page "https://github.com/rstudio/fontawesome")
+    (synopsis "Easily work with Font Awesome icons")
+    (description
+     "Easily and flexibly insert Font Awesome icons into R Markdown documents
+and Shiny apps.  These icons can be inserted into HTML content through inline
+SVG tags or @code{i} tags.  There is also a utility function for exporting
+Font Awesome icons as PNG images for those situations where raster graphics
+are needed.")
+    (license license:expat)))
+
+(define-public r-fingerprint
+  (package
+    (name "r-fingerprint")
+    (version "3.5.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "fingerprint" version))
+       (sha256
+        (base32 "04jcwkydjrs31pia6kq8z2n9s54im950q08hs2ay15xjxxkmb8ic"))))
+    (properties `((upstream-name . "fingerprint")))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/package=fingerprint")
+    (synopsis "Functions to Operate on Binary Fingerprint Data")
+    (description
+     "This package provides functions to manipulate binary fingerprints of
+arbitrary length.  A fingerprint is represented by an object of S4 class
+@code{fingerprint}.  The bitwise logical functions in R are overridden so that
+they can be used directly with @code{fingerprint} objects.  A number of
+distance metrics are also available.  Fingerprints can be converted to
+Euclidean vectors (i.e., points on the unit hypersphere) and can also be
+folded.  Arbitrary fingerprint formats can be handled via line handlers.
+Currently handlers are provided for CDK, MOE and BCI fingerprint data.")
+    ;; Any version of the GPL
+    (license (list license:gpl2+ license:gpl3+))))
+
+(define-public r-fpeek
+  (package
+    (name "r-fpeek")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "fpeek" version))
+       (sha256
+        (base32 "0kv46g21ndxchg3q8ynq7hjjkh6i2zlc21axn5y1jjzigrw047ii"))))
+    (properties `((upstream-name . "fpeek")))
+    (build-system r-build-system)
+    (propagated-inputs (list r-rcpp))
+    (home-page "https://github.com/davidgohel/fpeek")
+    (synopsis "Check text files content at a glance")
+    (description
+     "This package provides tools to help working with text files.  It can
+return the number of lines; print the first and last lines; convert encoding.
+Operations are made without reading the entire file before starting, resulting
+in good performances with large files.")
+    (license license:expat)))
+
 (define-public r-ggalluvial
   (package
    (name "r-ggalluvial")
@@ -594,14 +658,14 @@ series of numeric vectors/matrices and factors.")
    (properties `((upstream-name . "ggalluvial")))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-dplyr" ,r-dplyr)
-      ("r-ggplot2" ,r-ggplot2)
-      ("r-lazyeval" ,r-lazyeval)
-      ("r-rlang" ,r-rlang)
-      ("r-tidyr" ,r-tidyr)
-      ("r-tidyselect" ,r-tidyselect)))
+    (list r-dplyr
+          r-ggplot2
+          r-lazyeval
+          r-rlang
+          r-tidyr
+          r-tidyselect))
    (native-inputs
-    `(("r-knitr" ,r-knitr)))
+    (list r-knitr))
    (home-page "http://corybrunson.github.io/ggalluvial/")
    (synopsis "Alluvial plots for ggplot2")
    (description "This package provides alluvial plots for @code{ggplot2}.
@@ -624,22 +688,22 @@ variables.")
     (properties `((upstream-name . "ggpp")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-glue" ,r-glue)
-       ("r-gridextra" ,r-gridextra)
-       ("r-lubridate" ,r-lubridate)
-       ("r-magrittr" ,r-magrittr)
-       ("r-mass" ,r-mass)
-       ("r-polynom" ,r-polynom)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)
-       ("r-xts" ,r-xts)
-       ("r-zoo" ,r-zoo)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-dplyr
+           r-ggplot2
+           r-glue
+           r-gridextra
+           r-lubridate
+           r-magrittr
+           r-mass
+           r-polynom
+           r-rlang
+           r-scales
+           r-stringr
+           r-tibble
+           r-xts
+           r-zoo))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://docs.r4photobiology.info/ggpp/")
     (synopsis "Grammar extensions to ggplot2")
     (description
@@ -657,33 +721,54 @@ variables.")
 ")
     (license license:gpl2+)))
 
+(define-public r-lmodel2
+  (package
+    (name "r-lmodel2")
+    (version "1.7-3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "lmodel2" version))
+       (sha256
+        (base32 "1fiin2nkffbihz1s8ixmw9lgf8mn3j9krr8iiflizk10mdv54hnb"))))
+    (properties `((upstream-name . "lmodel2")))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/package=lmodel2")
+    (synopsis "Model II regression")
+    (description
+     "This package computes model II simple linear regression using
+@dfn{ordinary least squares} (OLS), @dfn{major axis} (MA), @dfn{standard major
+axis} (SMA), and @dfn{ranged major axis} (RMA).")
+    (license license:gpl2)))
+
 (define-public r-ggpmisc
   (package
     (name "r-ggpmisc")
-    (version "0.4.2-1")
+    (version "0.4.4")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "ggpmisc" version))
               (sha256
                (base32
-                "1jkxcmpxq3b5ng276adph25s5w9imjxr1lqasqw50d2kcdhq58cy"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-generics" ,r-generics)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggpp" ,r-ggpp)
-       ("r-lubridate" ,r-lubridate)
-       ("r-mass" ,r-mass)
-       ("r-plyr" ,r-plyr)
-       ("r-polynom" ,r-polynom)
-       ("r-quantreg" ,r-quantreg)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)
-       ("r-splus2r" ,r-splus2r)
-       ("r-tibble" ,r-tibble)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+                "01dnr2a33zmgi0gjsxlcz4hp68b18xsi8z1lkhgcla5im59qf9xi"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-dplyr
+           r-generics
+           r-ggplot2
+           r-ggpp
+           r-lmodel2
+           r-lubridate
+           r-mass
+           r-plyr
+           r-polynom
+           r-quantreg
+           r-rlang
+           r-scales
+           r-splus2r
+           r-tibble))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://www.r4photobiology.info/")
     (synopsis "Miscellaneous Extensions to @code{ggplot2}")
     (description "This package provides extensions to @code{ggplot2},
@@ -704,8 +789,7 @@ respecting the grammar of its graphics paradigm.")
     (properties `((upstream-name . "gProfileR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-plyr" ,r-plyr)
-       ("r-rcurl" ,r-rcurl)))
+     (list r-plyr r-rcurl))
     (home-page "https://cran.r-project.org/web/packages/gProfileR/")
     (synopsis "Interface to the g:Profiler toolkit")
     (description
@@ -717,27 +801,27 @@ organisms via the @code{g:Profiler} toolkit.")
 (define-public r-gprofiler2
   (package
     (name "r-gprofiler2")
-    (version "0.2.0")
+    (version "0.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gprofiler2" version))
        (sha256
         (base32
-         "0q8hl3gdxy34c0181ql405fdklz82nfvmwdcafd5mzf935rjpyjg"))))
+         "0r0h34b35xzgd9rh55yndn0anxy0z45zdlqa6qfmpn91b6v1bb1g"))))
     (properties `((upstream-name . "gprofiler2")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-crosstalk" ,r-crosstalk)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-plotly" ,r-plotly)
-       ("r-rcurl" ,r-rcurl)
-       ("r-tidyr" ,r-tidyr)
-       ("r-viridislite" ,r-viridislite)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-crosstalk
+           r-dplyr
+           r-ggplot2
+           r-gridextra
+           r-jsonlite
+           r-plotly
+           r-rcurl
+           r-tidyr
+           r-viridislite))
+    (native-inputs (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/gprofiler2/")
     (synopsis "Interface to the g:Profiler toolset")
     (description
@@ -775,9 +859,8 @@ higher.")
     (properties `((upstream-name . "oenb")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-xml" ,r-xml)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-dplyr r-xml))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/franzmohr/oenb")
     (synopsis "Tools for the OeNB Data Web Service")
     (description
@@ -798,13 +881,13 @@ higher.")
         (base32 "019ps0njjc0rzrjygqiyn8b9vp0c3c0jd56h1yi19wzi49jvdcj0"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-farver" ,r-farver)
-       ("r-labeling" ,r-labeling)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-munsell" ,r-munsell)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-r6" ,r-r6)
-       ("r-viridislite" ,r-viridislite)))
+     (list r-farver
+           r-labeling
+           r-lifecycle
+           r-munsell
+           r-rcolorbrewer
+           r-r6
+           r-viridislite))
     (home-page "https://github.com/hadley/scales")
     (synopsis "Scale functions for visualization")
     (description
@@ -825,7 +908,7 @@ legends.")
                "0z7gngd6h83cpjhq1vg75wvzhdjbgjh7gj5d4zvvi9gd2lmagjcy"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-remotes" ,r-remotes)))
+     (list r-remotes))
     (home-page "https://github.com/trinker/pacman")
     (synopsis "Package Management Tool")
     (description "This package provides tools to more conveniently perform
@@ -848,9 +931,7 @@ functions which can speed up workflow.")
          "1hdh74az3vyzz6dqa311rhxdm74n46lyr03p862kn80p0kp9d7ap"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-gtable" ,r-gtable)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-scales" ,r-scales)))
+     (list r-gtable r-rcolorbrewer r-scales))
     (home-page "https://cran.r-project.org/web/packages/pheatmap")
     (synopsis "Pretty heatmaps")
     (description
@@ -858,6 +939,27 @@ functions which can speed up workflow.")
 control over dimensions and appearance.")
     (license license:gpl2+)))
 
+(define-public r-pnwcolors
+  (package
+    (name "r-pnwcolors")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "PNWColors" version))
+       (sha256
+        (base32
+         "1phplnclkficfv8s6wsyrckk4ixzbayiy5iix6dddg40485l9nyj"))))
+    (properties `((upstream-name . "PNWColors")))
+    (build-system r-build-system)
+    (home-page "https://github.com/jakelawlor/PNWColors")
+    (synopsis "Color palettes for data visualizations")
+    (description
+     "This package provides color palettes.  They are checked for colorblind
+accessibility from hue, saturation, and lightness value scaling using the
+Chroma.js Color Palette Helper.  See @url{https://gka.github.io/palettes}.")
+    (license license:cc0)))
+
 (define-public r-ecp
   (package
     (name "r-ecp")
@@ -870,7 +972,7 @@ control over dimensions and appearance.")
                 "0n602jssl6rf596nwm6hbl7s9vdlqi20w8mrhxicj373mw5v22m8"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (home-page "https://cran.r-project.org/web/packages/ecp/")
     (synopsis "Multiple change-point analysis of multivariate data")
     (description
@@ -895,7 +997,7 @@ information.")
          "0n0mm9jngklv7j9wa64jdji035z0smmnsp2dfwcz9isrxgjnc0m9"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rlang" ,r-rlang)))
+     (list r-rlang))
     (home-page "https://github.com/hadley/ellipsis")
     (synopsis "Tools for working with additional arguments")
     (description
@@ -940,8 +1042,7 @@ functions are simplified but can be faster or have other advantages.")
     (properties `((upstream-name . "Matrix.utils")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-grr" ,r-grr)
-       ("r-matrix" ,r-matrix)))
+     (list r-grr r-matrix))
     (home-page "https://github.com/cvarrichio/Matrix.utils")
     (synopsis
      "Data.frame-Like Operations on Sparse and Dense Matrix Objects")
@@ -963,13 +1064,13 @@ objects.")
               "0yg07fdd1sbjfhhxn1dqgph2vzqyq7l52cdk5iq2a2zy1vh176yg"))))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-lattice" ,r-lattice)
-      ("r-matrix" ,r-matrix)
-      ("r-nnls" ,r-nnls)
-      ("r-partykit" ,r-partykit)
-      ("r-quadprog" ,r-quadprog)
-      ("r-stabs" ,r-stabs)
-      ("r-survival" ,r-survival)))
+    (list r-lattice
+          r-matrix
+          r-nnls
+          r-partykit
+          r-quadprog
+          r-stabs
+          r-survival))
    (home-page "https://github.com/boost-R/mboost")
    (synopsis "Model-based boosting")
    (description
@@ -983,20 +1084,19 @@ high-dimensional data.")
 (define-public r-shadowtext
   (package
    (name "r-shadowtext")
-   (version "0.0.8")
+   (version "0.0.9")
    (source (origin
             (method url-fetch)
             (uri (cran-uri "shadowtext" version))
             (sha256
              (base32
-              "16lhhd7q1qz82grkq1q4fn5mkq8nphh4wvva4jijrl605cd6cc7v"))))
+              "1g6mgnfnzf2c17yzqk3zybfc5y62p5ndrbikxb3xcm2hiljiiqna"))))
    (properties `((upstream-name . "shadowtext")))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-ggplot2" ,r-ggplot2)
-      ("r-scales" ,r-scales)))
+    (list r-ggplot2 r-scales))
    (native-inputs
-    `(("r-knitr" ,r-knitr)))
+    (list r-knitr))
    (home-page "https://github.com/GuangchuangYu/shadowtext/")
    (synopsis "Shadow text grob and layer")
    (description "This package implements @code{shadowtextGrob()} for
@@ -1042,15 +1142,15 @@ mechanism.")
    (properties `((upstream-name . "ashr")))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-etrunct" ,r-etrunct)
-      ("r-invgamma" ,r-invgamma)
-      ("r-matrix" ,r-matrix)
-      ("r-mixsqp" ,r-mixsqp)
-      ("r-rcpp" ,r-rcpp)
-      ("r-squarem" ,r-squarem)
-      ("r-truncnorm" ,r-truncnorm)))
+    (list r-etrunct
+          r-invgamma
+          r-matrix
+          r-mixsqp
+          r-rcpp
+          r-squarem
+          r-truncnorm))
    (native-inputs
-    `(("r-knitr" ,r-knitr)))
+    (list r-knitr))
    (home-page "https://github.com/stephens999/ashr")
    (synopsis "Methods for adaptive shrinkage, using empirical bayes")
    (description "This package implements an empirical Bayes approach for
@@ -1069,7 +1169,7 @@ large-scale hypothesis testing and false discovery rate estimation.")
         (base32
          "07q0ik8jzk44vpwh48rr3fnpd7dzsdhjjsl4l850rffv3dyq4h6v"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-sys" ,r-sys)))
+    (propagated-inputs (list r-sys))
     (home-page "https://github.com/jeroen/askpass")
     (synopsis "Safe password entry for R")
     (description
@@ -1078,6 +1178,29 @@ for credentials or a passphrase, for example to authenticate with a server or
 read a protected key.")
     (license license:expat)))
 
+(define-public r-astsa
+  (package
+    (name "r-astsa")
+    (version "1.14")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "astsa" version))
+       (sha256
+        (base32 "09zx2q419p0b1c336ybh4i62v5dvn3sp39dxn5kwlrqchjj7f5z6"))))
+    (properties `((upstream-name . "astsa")))
+    (build-system r-build-system)
+    (home-page "https://github.com/nickpoison/astsa/")
+    (synopsis "Applied statistical time series analysis")
+    (description
+     "This package provides data sets and scripts to accompany Time Series
+Analysis and Its Applications: With R Examples (4th ed), by R.H. Shumway and
+D.S. Stoffer.  Springer Texts in Statistics, 2017,
+@url{https://doi.org/10.1007/978-3-319-52452-8}, and Time Series: A Data
+Analysis Approach Using R.  Chapman-Hall, 2019,
+@url{https://doi.org/10.1201/9780429273285}.")
+    (license license:gpl3)))
+
 (define-public r-vegan
   (package
     (name "r-vegan")
@@ -1091,14 +1214,10 @@ read a protected key.")
          "0aj6m9l1vkh32sar6fyvq4p8j4h2f2f347w1300qnzgaa5lmhfz6"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)             ; needed for vignettes
-       ("gfortran" ,gfortran)))
+     (list r-knitr ; needed for vignettes
+           gfortran))
     (propagated-inputs
-     `(("r-cluster" ,r-cluster)
-       ("r-lattice" ,r-lattice)
-       ("r-mass" ,r-mass)
-       ("r-mgcv" ,r-mgcv)
-       ("r-permute" ,r-permute)))
+     (list r-cluster r-lattice r-mass r-mgcv r-permute))
     (home-page "https://cran.r-project.org/web/packages/vegan")
     (synopsis "Functions for community ecology")
     (description
@@ -1121,37 +1240,37 @@ data types as well.")
          "0ck6xmsw5p168jmw2fqv79fzfnw5jckfra7mfii261j6kl89bkw3"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-broom" ,r-broom)
-       ("r-cli" ,r-cli)
-       ("r-crayon" ,r-crayon)
-       ("r-dbplyr" ,r-dbplyr)
-       ("r-dplyr" ,r-dplyr)
-       ("r-dtplyr" ,r-dtplyr)
-       ("r-forcats" ,r-forcats)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-googledrive" ,r-googledrive)
-       ("r-googlesheets4" ,r-googlesheets4)
-       ("r-haven" ,r-haven)
-       ("r-hms" ,r-hms)
-       ("r-httr" ,r-httr)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-lubridate" ,r-lubridate)
-       ("r-magrittr" ,r-magrittr)
-       ("r-modelr" ,r-modelr)
-       ("r-pillar" ,r-pillar)
-       ("r-purrr" ,r-purrr)
-       ("r-readr" ,r-readr)
-       ("r-readxl" ,r-readxl)
-       ("r-reprex" ,r-reprex)
-       ("r-rlang" ,r-rlang)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-rvest" ,r-rvest)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-xml2" ,r-xml2)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-broom
+           r-cli
+           r-crayon
+           r-dbplyr
+           r-dplyr
+           r-dtplyr
+           r-forcats
+           r-ggplot2
+           r-googledrive
+           r-googlesheets4
+           r-haven
+           r-hms
+           r-httr
+           r-jsonlite
+           r-lubridate
+           r-magrittr
+           r-modelr
+           r-pillar
+           r-purrr
+           r-readr
+           r-readxl
+           r-reprex
+           r-rlang
+           r-rstudioapi
+           r-rvest
+           r-stringr
+           r-tibble
+           r-tidyr
+           r-xml2))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://tidyverse.tidyverse.org")
     (synopsis "Install and load packages from the \"Tidyverse\"")
     (description
@@ -1164,24 +1283,24 @@ single step.")
 (define-public r-rvest
   (package
     (name "r-rvest")
-    (version "1.0.1")
+    (version "1.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rvest" version))
        (sha256
-        (base32 "1v99bpp2077s4y5phvkzpgjyr8cs9axifm1c3npw6jmh8x9j91h8"))))
+        (base32 "1905vxgnj3q09l1wf6rwxpbpydznp06nbkrclnc05j2415z4gfw9"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-httr" ,r-httr)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rlang" ,r-rlang)
-       ("r-selectr" ,r-selectr)
-       ("r-tibble" ,r-tibble)
-       ("r-xml2" ,r-xml2)))
+     (list r-httr
+           r-lifecycle
+           r-magrittr
+           r-rlang
+           r-selectr
+           r-tibble
+           r-xml2))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/hadley/rvest")
     (synopsis "Simple web scraping for R")
     (description
@@ -1202,8 +1321,7 @@ scraping tasks, inspired by libraries like @code{BeautifulSoup}.")
         (base32 "09y1n3iy297g49xlpl7xrjpwgnm57pskx5991lyfcpizbz8ax22m"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-stringr" ,r-stringr)
-       ("r-r6" ,r-r6)))
+     (list r-stringr r-r6))
     (home-page "https://sjp.co.nz/projects/selectr/")
     (synopsis "Translate CSS selectors to XPath expressions")
     (description
@@ -1227,18 +1345,18 @@ package is a port of the Python package @code{cssselect}.")
          "09k4rasp7mz6n796dsklcbc5l7prljiznrm7fra16qybr9kqcv8f"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-callr" ,r-callr)
-       ("r-cli" ,r-cli)
-       ("r-clipr" ,r-clipr)
-       ("r-fs" ,r-fs)
-       ("r-glue" ,r-glue)
-       ("r-knitr" ,r-knitr)
-       ("r-rlang" ,r-rlang)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-withr" ,r-withr)))
+     (list r-callr
+           r-cli
+           r-clipr
+           r-fs
+           r-glue
+           r-knitr
+           r-rlang
+           r-rmarkdown
+           r-rstudioapi
+           r-withr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/tidyverse/reprex")
     (synopsis "Prepare reproducible R code examples for sharing")
     (description
@@ -1262,8 +1380,7 @@ such as copy/paste from an R session.")
               "0ss750frzvj0bm1w7zblmcsjpszhnbffwlkaw31sm003lbx9hy58"))))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-gplots" ,r-gplots)
-      ("r-rcpp" ,r-rcpp)))
+    (list r-gplots r-rcpp))
    (home-page "https://cran.r-project.org/web/packages/ReorderCluster")
    (synopsis "Reordering the dendrogram according to the class labels")
    (description "This package provides tools for performing the leaf reordering
@@ -1284,8 +1401,7 @@ same time tries to group instances from the same class together.")
          "02inaf3c7b0hikii7p2zwaphrq5myv4in92d9jxd1ilmhla5awnn"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-r6" ,r-r6)
-       ("r-processx" ,r-processx)))
+     (list r-r6 r-processx))
     (home-page "https://github.com/r-lib/callr#readme")
     (synopsis "Call R from R")
     (description
@@ -1305,10 +1421,7 @@ that.")
                (base32
                 "1pacvhw5m4fsk3ysbal50fdqbvlaz8ywyqp6bn1wh42wipqbb2i8"))))
     (propagated-inputs
-     `(("r-nnet" ,r-nnet)
-       ("r-nlme" ,r-nlme)
-       ("r-mass" ,r-mass)
-       ("r-rsolnp" ,r-rsolnp)))
+     (list r-nnet r-nlme r-mass r-rsolnp))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/depmixS4/")
     (synopsis "Dependent Mixture Models")
@@ -1330,10 +1443,7 @@ mixture models.")
          "15mambxr8c7k2ikdfsl1w3vxvm54dsnk0cl1qvks6iig7rql3d14"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cellranger" ,r-cellranger)
-       ("r-progress" ,r-progress)
-       ("r-rcpp" ,r-rcpp)
-       ("r-tibble" ,r-tibble)))
+     (list r-cellranger r-progress r-rcpp r-tibble))
     (home-page "https://readxl.tidyverse.org")
     (synopsis "Read Excel files")
     (description
@@ -1356,12 +1466,12 @@ the embedded @code{RapidXML} C++ library.")
                 "0pni9v3nradvy8sp2m07903vc7z610xrh426lf19dxss12kgrfi8"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-formula" ,r-formula)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-partykit" ,r-partykit)
-       ("r-sandwich" ,r-sandwich)
-       ("r-survival" ,r-survival)))
+     (list r-formula
+           r-ggplot2
+           r-gridextra
+           r-partykit
+           r-sandwich
+           r-survival))
     (home-page "https://cran.r-project.org/web/packages/model4you/")
     (synopsis "Stratified and personalised models based on trees and forests")
     (description
@@ -1387,14 +1497,14 @@ the personalised models.")
          "1i31nff7bqibk6r4hhd4j1vzwbyaf8493v0bjaagn36njmysfnw2"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-broom" ,r-broom)
-       ("r-magrittr" ,r-magrittr)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-tidyselect" ,r-tidyselect)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-broom
+           r-magrittr
+           r-purrr
+           r-rlang
+           r-tibble
+           r-tidyr
+           r-tidyselect
+           r-vctrs))
     (home-page "https://github.com/tidyverse/modelr")
     (synopsis "Helper functions for modelling in pipelines")
     (description
@@ -1433,7 +1543,7 @@ models.")
               "05dm3nl0ffsz2ziw3bz5bivyxk7r5bxs8xhky3hz660qaqzd51ki"))))
    (build-system r-build-system)
    (native-inputs
-    `(("gfortran" ,gfortran)))
+    (list gfortran))
    (home-page "https://cran.r-project.org/web/packages/HiddenMarkov/")
    (synopsis "Hidden markov models for R")
    (description "This package contains functions for the analysis of Discrete
@@ -1446,13 +1556,13 @@ Zucchini.")
 (define-public r-httpuv
   (package
     (name "r-httpuv")
-    (version "1.6.2")
+    (version "1.6.3")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "httpuv" version))
               (sha256
                (base32
-                "1p5savhrcqlagnnh8ccnhpypbif9jhp97nq4rnhldn98gmb4a7sn"))
+                "0xh8y05k4jxdwp9xh4x478y3scnv80q05l9gxk2ni6f0dk43iqxz"))
               ;; Unvendor bundled libraries. As of 1.5.4 the vendored libuv
               ;; only contains fixes for building on Solaris.
               (patches (search-patches "r-httpuv-1.5.5-unvendor-libuv.patch"))
@@ -1475,13 +1585,9 @@ Zucchini.")
                (("uv_pipe_init\\(pLoop, &pSocket->handle\\.pipe, true\\);")
                 "uv_pipe_init(pLoop, &pSocket->handle.pipe, 0);")))))))
     (inputs
-     `(("libuv" ,libuv)
-       ("zlib" ,zlib)))
+     (list libuv zlib))
     (propagated-inputs
-     `(("r-later" ,r-later)
-       ("r-promises" ,r-promises)
-       ("r-r6" ,r-r6)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-later r-promises r-r6 r-rcpp))
     (home-page "https://github.com/rstudio/httpuv")
     (synopsis "HTTP and WebSocket server library for R")
     (description
@@ -1506,7 +1612,7 @@ particularly easy to create complete web applications using httpuv alone.")
                 "1lhzcpz9clwq04i5m6jzkvw9x03pwlqrixv4l9xzchjr8d84nd86"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://arxiv.org/abs/1403.2805")
     (synopsis "Robust, high performance JSON parser and generator for R")
     (description
@@ -1523,19 +1629,16 @@ in systems and applications.")
 (define-public r-servr
   (package
     (name "r-servr")
-    (version "0.23")
+    (version "0.24")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "servr" version))
               (sha256
                (base32
-                "1f1fgfgjgjsbn2krkbyw2qwkm0k4lq9p9jakg9zwyqlgpkdd34j4"))))
+                "11x0857m3xzdbzr4z0vx4fcdk36arfagyf2qgamvprich0qisknr"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-httpuv" ,r-httpuv)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-mime" ,r-mime)
-       ("r-xfun" ,r-xfun)))
+     (list r-httpuv r-jsonlite r-mime r-xfun))
     (home-page "https://github.com/yihui/servr")
     (synopsis "Simple HTTP server to serve static files or dynamic documents")
     (description
@@ -1570,18 +1673,16 @@ a list of p-values.")
 (define-public r-htmltools
   (package
     (name "r-htmltools")
-    (version "0.5.1.1")
+    (version "0.5.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "htmltools" version))
               (sha256
                (base32
-                "1fm4cymz4hz6lds80m9j5q00xy5flkrmfn5dkrn3s3rkzqpyggzh"))))
+                "1yv74ydyqm28gfhimmr7825sj1iaawpwsnzq05c2ma756q2dbivx"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-digest" ,r-digest)
-       ("r-rlang" ,r-rlang)))
+     (list r-base64enc r-digest r-fastmap r-rlang))
     (home-page "https://cran.r-project.org/web/packages/htmltools")
     (synopsis "R tools for HTML")
     (description
@@ -1591,20 +1692,18 @@ a list of p-values.")
 (define-public r-htmlwidgets
   (package
     (name "r-htmlwidgets")
-    (version "1.5.3")
+    (version "1.5.4")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "htmlwidgets" version))
               (sha256
                (base32
-                "0a8g7wqd3qxnhwkm9c9bkzg29db7gvjiaa5y038ln8nch8qq7981"))))
+                "1hgz8sx8xrvfcdwa4q15k942w4qsqg8lyxbbf7qyfzbi807wcgqs"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-htmltools" ,r-htmltools)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-yaml" ,r-yaml)))
+     (list r-htmltools r-jsonlite r-yaml))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/ramnathv/htmlwidgets")
     (synopsis "HTML Widgets for R")
     (description
@@ -1616,25 +1715,25 @@ applications.")
 (define-public r-htmltable
   (package
     (name "r-htmltable")
-    (version "2.2.1")
+    (version "2.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "htmlTable" version))
        (sha256
-        (base32 "05zy9acx4s80dr880q69i4rcjqgmbz18gn7pyazda9gsnm981j96"))))
+        (base32 "0xx5fza40six81mkfjsja6a8j6cg1mlzg0cxfgv084riyq79l387"))))
     (properties `((upstream-name . "htmlTable")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-checkmate" ,r-checkmate)
-       ("r-htmltools" ,r-htmltools)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-knitr" ,r-knitr)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-stringr" ,r-stringr)))
+     (list r-checkmate
+           r-htmltools
+           r-htmlwidgets
+           r-knitr
+           r-magrittr
+           r-rstudioapi
+           r-stringr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "http://gforge.se/packages/")
     (synopsis "Advanced tables for Markdown/HTML")
     (description
@@ -1679,8 +1778,7 @@ if(_ca_bundle != NULL) { curl_easy_setopt(handle, CURLOPT_CAINFO, _ca_bundle); }
      `(("libcurl" ,curl)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://github.com/jeroenooms/curl")
     (synopsis "HTTP client for R")
     (description
@@ -1769,7 +1867,7 @@ data structures in C++.")
     (properties `((upstream-name . "fastGHQuad")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (home-page "https://github.com/awblocker/fastGHQuad")
     (synopsis "Fast Rcpp implementation of Gauss-Hermite Quadrature")
     (description
@@ -1791,16 +1889,16 @@ rules and utility functions for adaptive GH quadrature.")
     (properties `((upstream-name . "rstpm2")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bbmle" ,r-bbmle)
-       ("r-bh" ,r-bh)
-       ("r-desolve" ,r-desolve)
-       ("r-fastghquad" ,r-fastghquad)
-       ("r-mgcv" ,r-mgcv)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-survival" ,r-survival)))
+     (list r-bbmle
+           r-bh
+           r-desolve
+           r-fastghquad
+           r-mgcv
+           r-rcpp
+           r-rcpparmadillo
+           r-survival))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://github.com/mclements/rstpm2")
     (synopsis "Link-based survival models")
     (description
@@ -1856,9 +1954,9 @@ multi-state models.")
                                        (string-append "--outfile=" target)))
                              sources targets)))))))))
     (propagated-inputs
-     `(("r-htmltools" ,r-htmltools)))
+     (list r-htmltools))
     (native-inputs
-     `(("esbuild" ,esbuild)))
+     (list esbuild))
     (home-page "https://cran.r-project.org/package=jquerylib")
     (synopsis "Obtain jQuery as an HTML dependency object")
     (description
@@ -1883,12 +1981,8 @@ jQuery.")
     (properties `((upstream-name . "sass")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-fs" ,r-fs)
-       ("r-htmltools" ,r-htmltools)
-       ("r-r6" ,r-r6)
-       ("r-rappdirs" ,r-rappdirs)
-       ("r-rlang" ,r-rlang)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-fs r-htmltools r-r6 r-rappdirs r-rlang))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/rstudio/sass")
     (synopsis "Syntactically Awesome Style Sheets (SASS)")
     (description
@@ -1903,20 +1997,21 @@ language, which is stable, powerful, and CSS compatible.")
 (define-public r-bslib
   (package
     (name "r-bslib")
-    (version "0.2.5.1")
+    (version "0.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bslib" version))
        (sha256
         (base32
-         "16f8d7lp2bdq1vipr60l75gibgdq08hmx212dhrh66nwf7qglhky"))
+         "0jcqklry1nkibz0sydsz5xdsnb4wnrrhvmyr9ji3k45bbipbap2z"))
        (snippet
         '(for-each delete-file
                    '("inst/lib/bs-a11y-p/plugins/js/bootstrap-accessibility.min.js"
                      "inst/lib/bs-colorpicker/js/bootstrap-colorpicker.min.js"
-                     "inst/lib/bs-sass/assets/javascripts/bootstrap.min.js"
-                     "inst/lib/bs/dist/js/bootstrap.bundle.min.js")))))
+                     "inst/lib/bs3/assets/javascripts/bootstrap.min.js"
+                     "inst/lib/bs4/dist/js/bootstrap.bundle.min.js"
+                     "inst/lib/bs5/dist/js/bootstrap.bundle.min.js")))))
     (properties `((upstream-name . "bslib")))
     (build-system r-build-system)
     (arguments
@@ -1935,10 +2030,12 @@ language, which is stable, powerful, and CSS compatible.")
                          "bs-a11y-p/plugins/js/bootstrap-accessibility.min.js")
                         ("bs-colorpicker/js/bootstrap-colorpicker.js"
                          "bs-colorpicker/js/bootstrap-colorpicker.min.js")
-                        ("bs-sass/assets/javascripts/bootstrap.js"
-                         "bs-sass/assets/javascripts/bootstrap.min.js")
-                        (,(assoc-ref inputs "js-bootstrap-bundle")
-                         "bs/dist/js/bootstrap.bundle.min.js"))))
+                        ("bs3/assets/javascripts/bootstrap.js"
+                         "bs3/assets/javascripts/bootstrap.min.js")
+                        (,(assoc-ref inputs "js-bootstrap4-bundle")
+                         "bs4/dist/js/bootstrap.bundle.min.js")
+                        (,(assoc-ref inputs "js-bootstrap5-bundle")
+                         "bs5/dist/js/bootstrap.bundle.min.js"))))
                  (lambda (sources targets)
                    (for-each (lambda (source target)
                                (format #t "Processing ~a --> ~a~%"
@@ -1947,21 +2044,23 @@ language, which is stable, powerful, and CSS compatible.")
                                        (string-append "--outfile=" target)))
                              sources targets)))))))))
     (propagated-inputs
-     `(("r-htmltools" ,r-htmltools)
-       ("r-jquerylib" ,r-jquerylib)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rlang" ,r-rlang)
-       ("r-sass" ,r-sass)))
+     (list r-htmltools r-jquerylib r-jsonlite r-rlang r-sass))
     (native-inputs
      `(("esbuild" ,esbuild)
-       ("js-bootstrap-bundle"
+       ("js-bootstrap4-bundle"
+        ,(origin
+           (method url-fetch)
+           (uri "https://raw.githubusercontent.com/twbs/bootstrap/v4.6.0/dist/js/bootstrap.bundle.js")
+           (sha256
+            (base32
+             "04abvgp923w36qfqkkl2syim3bl119nwxbgials90z1jyb8jgss1"))))
+       ("js-bootstrap5-bundle"
         ,(origin
            (method url-fetch)
-           (uri "https://raw.githubusercontent.com/twbs/bootstrap/v4.5.3/dist/js/bootstrap.bundle.js")
+           (uri "https://raw.githubusercontent.com/twbs/bootstrap/v5.0.2/dist/js/bootstrap.bundle.js")
            (sha256
             (base32
-             "1lcsxj7gcm56va3gck47ggpwzjxrzq27sgjzdw6c54qkp0487sak"))))))
+             "06vin94nqw1vzs4zrqcms8z9js9fckbj8gwyx07awm8jkjhnqfhl"))))))
     (home-page "https://rstudio.github.io/bslib/")
     (synopsis "Custom Bootstrap Sass themes for shiny and rmarkdown")
     (description
@@ -1976,7 +2075,7 @@ previewing themes in real time.")
 (define-public r-shiny
   (package
     (name "r-shiny")
-    (version "1.6.0")
+    (version "1.7.1")
     (source
      (origin
        (method git-fetch)
@@ -1986,7 +2085,7 @@ previewing themes in real time.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0f6cwx5xyqzs40msq271sqhwl8736rwbm7kd1ldkcvxngzr4vlx9"))
+         "0wvc6jlgs41p05wbk8gahnl7sfnc4hpliyh9dbi5w52ngsg6wcr7"))
        (snippet
         '(for-each delete-file
                    '("inst/www/shared/bootstrap/js/bootstrap.min.js"
@@ -2058,33 +2157,30 @@ previewing themes in real time.")
                              ("showdown/src/showdown.js" .
                               "showdown/compressed/showdown.js"))))))))))
     (propagated-inputs
-     `(("r-bslib" ,r-bslib)
-       ("r-cachem" ,r-cachem)
-       ("r-commonmark" ,r-commonmark)
-       ("r-crayon" ,r-crayon)
-       ("r-digest" ,r-digest)
-       ("r-ellipsis" ,r-ellipsis)
-       ("r-fastmap" ,r-fastmap)
-       ("r-glue" ,r-glue)
-       ("r-htmltools" ,r-htmltools)
-       ("r-httpuv" ,r-httpuv)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-later" ,r-later)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-mime" ,r-mime)
-       ("r-promises" ,r-promises)
-       ("r-r6" ,r-r6)
-       ("r-rlang" ,r-rlang)
-       ("r-sourcetools" ,r-sourcetools)
-       ("r-withr" ,r-withr)
-       ("r-xtable" ,r-xtable)))
+     (list r-bslib
+           r-cachem
+           r-commonmark
+           r-crayon
+           r-ellipsis
+           r-fastmap
+           r-fontawesome
+           r-glue
+           r-htmltools
+           r-httpuv
+           r-jsonlite
+           r-later
+           r-lifecycle
+           r-mime
+           r-promises
+           r-r6
+           r-rlang
+           r-sourcetools
+           r-withr
+           r-xtable))
     (inputs
-     `(("js-datatables" ,js-datatables)
-       ("js-selectize" ,js-selectize)
-       ("js-strftime" ,js-strftime)
-       ("js-highlight" ,js-highlight)))
+     (list js-datatables js-selectize js-strftime js-highlight))
     (native-inputs
-     `(("uglify-js" ,uglify-js)
+     `(("uglifyjs" ,node-uglify-js)
        ("gfortran" ,gfortran)
        ("js-bootstrap-accessibility"
         ,(origin
@@ -2103,6 +2199,27 @@ extensive prebuilt widgets make it possible to build beautiful,
 responsive, and powerful applications with minimal effort.")
     (license license:artistic2.0)))
 
+(define-public r-shinyhelper
+  (package
+    (name "r-shinyhelper")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "shinyhelper" version))
+       (sha256
+        (base32 "1c4hvf19j3yyh8r12nx85ldkxs89g98q74csnqs5ml5l79a65vgp"))))
+    (properties `((upstream-name . "shinyhelper")))
+    (build-system r-build-system)
+    (propagated-inputs (list r-markdown r-shiny))
+    (home-page "https://cran.r-project.org/package=shinyhelper")
+    (synopsis "Easily add Markdown help files to shiny app elements")
+    (description
+     "This package creates a lightweight way to add markdown helpfiles to
+Shiny apps, using modal dialog boxes, with no need to observe each help button
+separately.")
+    (license license:gpl3)))
+
 ;; This package includes minified JavaScript files.  When upgrading please
 ;; check that there are no new minified JavaScript files.
 (define-public r-shinytree
@@ -2151,22 +2268,18 @@ responsive, and powerful applications with minimal effort.")
                    (for-each (lambda (source target)
                                (format #t "Processing ~a --> ~a~%"
                                        source target)
-                               (let ((minified (open-pipe* OPEN_READ "uglify-js" source)))
+                               (let ((minified (open-pipe* OPEN_READ "uglifyjs" source)))
                                  (call-with-output-file target
                                    (lambda (port)
                                      (dump-port minified port)))))
                              sources targets))))
              #t)))))
     (propagated-inputs
-     `(("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-promises" ,r-promises)
-       ("r-shiny" ,r-shiny)
-       ("r-stringr" ,r-stringr)))
+     (list r-htmlwidgets r-jsonlite r-promises r-shiny r-stringr))
     (inputs
-     `(("js-requirejs" ,js-requirejs)))
+     (list js-requirejs))
     (native-inputs
-     `(("uglify-js" ,uglify-js)
+     `(("uglifyjs" ,node-uglify-js)
        ("js-jquery"
         ,(origin
            (method url-fetch)
@@ -2184,36 +2297,33 @@ supports interactive trees, to enable rich, editable trees in Shiny.")
 (define-public r-shinydashboard
   (package
     (name "r-shinydashboard")
-    (version "0.7.1")
+    (version "0.7.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "shinydashboard" version))
               (sha256
                (base32
-                "0khac8b27q3swdw07kl609hm0fjfjsjv591b388q99mqqr2rk92i"))))
+                "0hrqkwlpb8rnmp5j74p134g4c4cl16icmwc2ip6k1634fa2y8vm5"))))
     (build-system r-build-system)
     ;; The directory inst/AdminLTE/ contains a minified JavaScript file.
     ;; Regenerate it from the included sources.
     (arguments
-     `(#:modules ((guix build utils)
-                  (guix build r-build-system)
-                  (ice-9 popen))
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'generate-minified-javascript
            (lambda _
              (with-directory-excursion "inst/AdminLTE"
-               (delete-file "app.min.js")
-               (let ((minified (open-pipe* OPEN_READ "uglify-js" "app.js")))
-                 (call-with-output-file "app.min.js"
-                   (lambda (port)
-                     (dump-port minified port))))))))))
+               (let ((target "app.min.js")
+                     (source "app.js"))
+                 (format #t "Processing ~a --> ~a~%"
+                         source target)
+                 (delete-file target)
+                 (invoke "esbuild" source "--minify"
+                         (string-append "--outfile=" target)))))))))
     (propagated-inputs
-     `(("r-htmltools" ,r-htmltools)
-       ("r-promises" ,r-promises)
-       ("r-shiny" ,r-shiny)))
+     (list r-htmltools r-promises r-shiny))
     (native-inputs
-     `(("uglify-js" ,uglify-js)))
+     (list esbuild))
     (home-page "https://rstudio.github.io/shinydashboard/")
     (synopsis "Create dashboards with shiny")
     (description "This package provides an extension to the Shiny web
@@ -2226,21 +2336,17 @@ application framework for R, making it easy to create attractive dashboards.")
 (define-public r-shinyfiles
   (package
     (name "r-shinyfiles")
-    (version "0.9.0")
+    (version "0.9.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "shinyFiles" version))
        (sha256
-        (base32 "0rsijlx16vd74r7bd8s9zipy71kgpw19v9s85kxj5bmwc6njmbai"))))
+        (base32 "0f8dfdiar376lx0979ccyghgx5rhr08v5z3z60asrrjsxlq4cs85"))))
     (properties `((upstream-name . "shinyFiles")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-fs" ,r-fs)
-       ("r-htmltools" ,r-htmltools)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-shiny" ,r-shiny)
-       ("r-tibble" ,r-tibble)))
+     (list r-fs r-htmltools r-jsonlite r-shiny r-tibble))
     (home-page "https://github.com/thomasp85/shinyFiles")
     (synopsis "Server-side file system viewer for Shiny")
     (description
@@ -2264,7 +2370,7 @@ well as file saving is available.")
          "0qr9bfxw8afxns44i2j4msignf6g5qb2nzpay2lpv343rrlqbmip"))))
     (properties `((upstream-name . "shinythemes")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-shiny" ,r-shiny)))
+    (propagated-inputs (list r-shiny))
     (home-page "https://rstudio.github.io/shinythemes/")
     (synopsis "Themes for Shiny")
     (description
@@ -2321,10 +2427,7 @@ Bootstrap themes, which are packaged for use with Shiny applications.")
                                        (string-append "--outfile=" target)))
                              sources targets)))))))))
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-htmltools" ,r-htmltools)
-       ("r-rlang" ,r-rlang)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-dplyr r-htmltools r-rlang r-tidyr))
     (native-inputs
      `(("esbuild" ,esbuild)
        ("d3.v3.js"
@@ -2392,10 +2495,7 @@ R objects into the JSON format that the d3.js library expects.")
            "0jrcnfax321pszbpjdifnkbrgbjr43bjzvlzv1p5a8wskksqwiyx"))))
       (build-system r-build-system)
       (propagated-inputs
-       `(("r-d3r" ,r-d3r)
-         ("r-htmlwidgets" ,r-htmlwidgets)
-         ("r-shiny" ,r-shiny)
-         ("r-magrittr" ,r-magrittr)))
+       (list r-d3r r-htmlwidgets r-shiny r-magrittr))
       (home-page "https://github.com/fbreitwieser/sankeyD3")
       (synopsis "Sankey network graphs from R")
       (description
@@ -2440,8 +2540,7 @@ from Wes Anderson movies.")
     (properties `((upstream-name . "gg.gap")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cowplot" ,r-cowplot)
-       ("r-ggplot2" ,r-ggplot2)))
+     (list r-cowplot r-ggplot2))
     (home-page "https://github.com/ChrisLou-bioinfo/gg.gap")
     (synopsis "Define segments on the y-axis for ggplot2")
     (description
@@ -2494,9 +2593,7 @@ in a ggplot2 plot.")
                              sources targets))))
              #t)))))
     (propagated-inputs
-     `(("r-htmltools" ,r-htmltools)
-       ("r-knitr" ,r-knitr)
-       ("r-shiny" ,r-shiny)))
+     (list r-htmltools r-knitr r-shiny))
     (native-inputs
      `(("esbuild" ,esbuild)
        ("js-requirejs"
@@ -2538,10 +2635,7 @@ contained in the navigation bar.")
     (properties `((upstream-name . "spelling")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-commonmark" ,r-commonmark)
-       ("r-hunspell" ,r-hunspell)
-       ("r-knitr" ,r-knitr)
-       ("r-xml2" ,r-xml2)))
+     (list r-commonmark r-hunspell r-knitr r-xml2))
     (home-page "https://docs.ropensci.org/spelling/")
     (synopsis "Tools for spell checking in R")
     (description
@@ -2557,20 +2651,17 @@ punctuation.")
 (define-public r-crosstalk
   (package
     (name "r-crosstalk")
-    (version "1.1.1")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "crosstalk" version))
        (sha256
         (base32
-         "1n6c6s7a6yxiwvva71x6bzcrim8xprl5s01fqiy61yq0y3vk8cpd"))))
+         "180y7mhpj17axpadwhh7s0qvrpdnag7g977vk256l96d6nmvlds2"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-htmltools" ,r-htmltools)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-lazyeval" ,r-lazyeval)
-       ("r-r6" ,r-r6)))
+     (list r-htmltools r-jsonlite r-lazyeval r-r6))
     (home-page "https://rstudio.github.io/crosstalk/")
     (synopsis "Inter-widget interactivity for HTML widgets")
     (description
@@ -2592,7 +2683,7 @@ files).  It currently supports linked brushing and filtering.")
          "00s9a0kr9rwxvlq433daxjk4ji8m0w60hjdprf502msw9kxfrx00"))))
     (properties `((upstream-name . "Rook")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-brew" ,r-brew)))
+    (propagated-inputs (list r-brew))
     (home-page "https://cran.r-project.org/web/packages/Rook")
     (synopsis "Web server interface for R")
     (description
@@ -2617,8 +2708,7 @@ named elements: the @code{status}, the @code{headers}, and the @code{body}.")
     (properties `((upstream-name . "miniUI")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-htmltools" ,r-htmltools)
-       ("r-shiny" ,r-shiny)))
+     (list r-htmltools r-shiny))
     (home-page "https://cran.r-project.org/web/packages/miniUI/")
     (synopsis "Shiny UI widgets for small screens")
     (description
@@ -2639,9 +2729,7 @@ work well on small screens.")
          "1gxd0h2m56sjjlzn4dry6s13nddxc4l5i11gsvavaf2dwbahdzsh"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-hms" ,r-hms)
-       ("r-rcpp" ,r-rcpp)
-       ("r-tibble" ,r-tibble)))
+     (list r-hms r-rcpp r-tibble))
     (home-page "https://github.com/wesm/feather")
     (synopsis "R Bindings to the Feather API")
     (description "Read and write feather files, a lightweight binary columnar
@@ -2651,14 +2739,14 @@ data store designed for maximum speed.")
 (define-public r-maps
   (package
     (name "r-maps")
-    (version "3.3.0")
+    (version "3.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "maps" version))
        (sha256
         (base32
-         "05i2ppl5z4p8rawgqmy3z4ia05fcblpq1vvrmrkgkkpdlhczx6hr"))))
+         "0ispkx1szgwxhr0zzhdzgqqwcgc6psg7vry4sj4rb89w76rcq63r"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/maps")
     (synopsis "Draw geographical maps")
@@ -2679,7 +2767,7 @@ Projection code and larger maps are in separate packages (@code{mapproj} and
         (base32
          "0nscsfq8md6ri9258xz57c3dj81wdl6kdwf4a9qcrwwbn20i427h"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-maps" ,r-maps)))
+    (propagated-inputs (list r-maps))
     (home-page "https://cran.r-project.org/web/packages/mapproj")
     (synopsis "Map projection in R")
     (description "This package converts latitude/longitude into projected
@@ -2703,8 +2791,7 @@ coordinates.")
     (properties `((upstream-name . "RgoogleMaps")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-png" ,r-png)
-       ("r-sp" ,r-sp)))
+     (list r-png r-sp))
     (home-page "https://cran.r-project.org/web/packages/RgoogleMaps")
     (synopsis "Use Google Maps in R")
     (description "This package serves two purposes:
@@ -2719,16 +2806,16 @@ coordinates.")
 (define-public r-geosphere
   (package
     (name "r-geosphere")
-    (version "1.5-10")
+    (version "1.5-14")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "geosphere" version))
        (sha256
         (base32
-         "15xlgsmn0vwky1l13n6acdz6jn2b2na3gf6x367y3qh1f5w4zkan"))))
+         "0bg4vfmrw140j2ax0p6bflvb77w03ir39wa87l96rj473jpa9hzj"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-sp" ,r-sp)))
+    (propagated-inputs (list r-sp))
     (home-page "https://cran.r-project.org/web/packages/geosphere")
     (synopsis "Spherical trigonometry")
     (description "This package computes spherical trigonometry for geographic
@@ -2748,7 +2835,7 @@ applications.  That is, compute distances and related measures for angular
         (base32
          "0wihj538wdnr71wdldym83qadb4kh68a6rkallwbh2f25r27b881"))))
     (build-system r-build-system)
-    (inputs `(("libjpeg" ,libjpeg-turbo)))
+    (inputs (list libjpeg-turbo))
     (home-page "https://www.rforge.net/jpeg/")
     (synopsis "Read and write JPEG images with R")
     (description "This package provides a way to read, write and display
@@ -2769,23 +2856,23 @@ files and in-memory raw vectors.")
          "13dmzl6z62pzjiffilarkji46vy0sacxa8a7mhrhc3biq3ylzhln"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bitops" ,r-bitops)
-       ("r-digest" ,r-digest)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-glue" ,r-glue)
-       ("r-httr" ,r-httr)
-       ("r-jpeg" ,r-jpeg)
-       ("r-magrittr" ,r-magrittr)
-       ("r-plyr" ,r-plyr)
-       ("r-png" ,r-png)
-       ("r-purrr" ,r-purrr)
-       ("r-rgooglemaps" ,r-rgooglemaps)
-       ("r-rjson" ,r-rjson)
-       ("r-scales" ,r-scales)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-bitops
+           r-digest
+           r-dplyr
+           r-ggplot2
+           r-glue
+           r-httr
+           r-jpeg
+           r-magrittr
+           r-plyr
+           r-png
+           r-purrr
+           r-rgooglemaps
+           r-rjson
+           r-scales
+           r-stringr
+           r-tibble
+           r-tidyr))
     (home-page "https://github.com/dkahle/ggmap")
     (synopsis "Spatial visualization with ggplot2")
     (description "This package provides a collection of functions to visualize
@@ -2819,18 +2906,18 @@ including functions for geolocation and routing.")
              (substitute* "src/Makevars"
                (("-lz") "-lreadstat")))))))
     (inputs
-     `(("readstat" ,readstat)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
-    (propagated-inputs
-     `(("r-cpp11" ,r-cpp11)
-       ("r-forcats" ,r-forcats)
-       ("r-hms" ,r-hms)
-       ("r-rlang" ,r-rlang)
-       ("r-readr" ,r-readr)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyselect" ,r-tidyselect)
-       ("r-vctrs" ,r-vctrs)))
+     (list readstat))
+    (native-inputs
+     (list r-knitr))
+    (propagated-inputs
+     (list r-cpp11
+           r-forcats
+           r-hms
+           r-rlang
+           r-readr
+           r-tibble
+           r-tidyselect
+           r-vctrs))
     (home-page "https://haven.tidyverse.org")
     (synopsis "Import and export SPSS, Stata and SAS files")
     (description
@@ -2850,7 +2937,7 @@ including functions for geolocation and routing.")
                 "0zpcb73w413na23f6giml9311jh0j0y766w2fh9i40d2h7bbvyvs"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "http://mulcyber.toulouse.inra.fr/projects/amap/")
     (synopsis "Another multidimensional analysis package")
     (description "This package provides tools for clustering and principal
@@ -2870,9 +2957,7 @@ component analysis (with robust methods, and parallelized functions).")
          "16i9sny7j90zi0k3znfff5lpnj5naxcy1142v73zxslr9g3h3am3"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)
-       ("r-nlme" ,r-nlme)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-lattice r-nlme r-rcpp))
     (home-page "http://ape-package.ird.fr/")
     (synopsis "Analyses of phylogenetics and evolution")
     (description
@@ -2897,12 +2982,12 @@ and several other tools.")
     (properties `((upstream-name . "abbyyR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-curl" ,r-curl)
-       ("r-httr" ,r-httr)
-       ("r-plyr" ,r-plyr)
-       ("r-progress" ,r-progress)
-       ("r-readr" ,r-readr)
-       ("r-xml" ,r-xml)))
+     (list r-curl
+           r-httr
+           r-plyr
+           r-progress
+           r-readr
+           r-xml))
     (home-page "https://github.com/soodoku/abbyyR")
     (synopsis "Access to Abbyy Optical Character Recognition (OCR) API")
     (description
@@ -2925,7 +3010,7 @@ XML.  To learn more about the Abbyy OCR API, see @url{http://ocrsdk.com/}.")
         (base32 "0fhq2aykdkxh3r90i8aqjyb37p5api3mjd19ch8mzv99q4pcv4dq"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/colorspace")
     (synopsis "Color space manipulation")
     (description
@@ -2938,14 +3023,14 @@ colors are provided.")
 (define-public r-glue
   (package
     (name "r-glue")
-    (version "1.4.2")
+    (version "1.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "glue" version))
        (sha256
         (base32
-         "1bgpirdvjrf0da734clrixawvpdap4lpda4g89vais96589m8wwz"))))
+         "1wjar579m46j1jnch34h7976sc1qbj6hzdyz5jm16nz1iw6z47jv"))))
     (build-system r-build-system)
     ;; knitr depends on glue, so we can't add knitr here to build the
     ;; vignettes.
@@ -2996,7 +3081,7 @@ Station Long Term Ecological Research (LTER) Program.")
               "0z4dic94ar646w7zc2ggi5hgvf2qnznsani94c5pyql8zspz47lc"))))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-boot" ,r-boot)))
+    (list r-boot))
    (home-page "https://github.com/phgrosjean/pastecs")
    (synopsis "Analysis of space-time ecological series")
    (description
@@ -3008,21 +3093,21 @@ initiative to bring PASSTEC 2000 functionalities to R.")
 (define-public r-partykit
   (package
    (name "r-partykit")
-   (version "1.2-13")
+   (version "1.2-15")
    (source (origin
              (method url-fetch)
              (uri (cran-uri "partykit" version))
              (sha256
               (base32
-               "15bfhqvx2y4vclnc3sw4v7ggs70pk57b3qk9aqjfvdrx444d2gd4"))))
+               "1b73s5l19yicwginqsg5xr7fzb005x372n0wb34kk6jb5x5lbsdj"))))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-formula" ,r-formula)
-      ("r-inum" ,r-inum)
-      ("r-libcoin" ,r-libcoin)
-      ("r-mvtnorm" ,r-mvtnorm)
-      ("r-rpart" ,r-rpart)
-      ("r-survival" ,r-survival)))
+    (list r-formula
+          r-inum
+          r-libcoin
+          r-mvtnorm
+          r-rpart
+          r-survival))
    (home-page "http://partykit.R-Forge.R-project.org/partykit")
    (synopsis "Toolkit for recursive partytioning")
    (description
@@ -3054,13 +3139,13 @@ error stream.")
 (define-public r-pls
   (package
     (name "r-pls")
-    (version "2.7-3")
+    (version "2.8-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pls" version))
        (sha256
-        (base32 "0b3ls12w19wc4xkhnsgmb333y9lyzwq3syjc3k8zs1agnw59c7cg"))))
+        (base32 "1gqq8rcq6p0hs2gfzwfj690rz3pwywmnv8qzcv0wsd6aaqkskwzg"))))
     (build-system r-build-system)
     (home-page "https://mevik.net/work/software/pls.html")
     (synopsis "Partial Least Squares and Principal Component Regression")
@@ -3115,14 +3200,14 @@ processes.  Most of its code is based on the @code{psutil} Python package.")
         (base32 "0qx920h2viwjg10va81nj0xja495d8ni6vcc25ggvzki6a6k069f"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-callr" ,r-callr)
-       ("r-cli" ,r-cli)
-       ("r-crayon" ,r-crayon)
-       ("r-desc" ,r-desc)
-       ("r-prettyunits" ,r-prettyunits)
-       ("r-r6" ,r-r6)
-       ("r-rprojroot" ,r-rprojroot)
-       ("r-withr" ,r-withr)))
+     (list r-callr
+           r-cli
+           r-crayon
+           r-desc
+           r-prettyunits
+           r-r6
+           r-rprojroot
+           r-withr))
     (home-page "https://github.com/r-pkgs/pkgbuild")
     (synopsis "Find tools needed to build R packages")
     (description
@@ -3134,23 +3219,23 @@ is configured appropriately so R can use them.")
 (define-public r-pkgload
   (package
     (name "r-pkgload")
-    (version "1.2.1")
+    (version "1.2.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pkgload" version))
        (sha256
         (base32
-         "0ghpkv0p0xz4gpm49sywhvahhzwdakfb5kqm6yz8s1fr5gdpy9z6"))))
+         "0jdkaj5cl0viy0i0hkcm4n2wlg1mfv3camr7f385njfararfanhh"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cli" ,r-cli)
-       ("r-crayon" ,r-crayon)
-       ("r-desc" ,r-desc)
-       ("r-rlang" ,r-rlang)
-       ("r-rprojroot" ,r-rprojroot)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-withr" ,r-withr)))
+     (list r-cli
+           r-crayon
+           r-desc
+           r-rlang
+           r-rprojroot
+           r-rstudioapi
+           r-withr))
     (home-page "https://github.com/r-lib/pkgload")
     (synopsis "Simulate package installation and attach")
     (description
@@ -3236,8 +3321,7 @@ safely be interrupted from R.")
                 "1a92fql6mijhnr1kxkcxwivf95pk9lhgmhzkshs51h0ybfv5krik"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)))
+     (list r-rcpp r-rcppeigen))
     (home-page "https://github.com/yixuan/RcppNumerical")
     (synopsis"Numerical computing libraries integration with @code{Rcpp}")
     (description "This package provides a collection of libraries for numerical
@@ -3277,9 +3361,7 @@ where the bound function accepts additional arguments.")
          "0rz4ibjdjsxl99ff3ha79z7cnjmilx4rx58fk9kk7ld9xc4hf4s8"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bindr" ,r-bindr)
-       ("r-plogr" ,r-plogr)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-bindr r-plogr r-rcpp))
     (home-page "https://github.com/krlmlr/bindrcpp")
     (synopsis "Rcpp interface to active bindings")
     (description
@@ -3323,7 +3405,7 @@ is provided.")
         (base32 "19kgrnsyq67iqv1biyssqi30a6v2836ql20nabpy2m692ns0jfvi"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)))
+     (list r-mass))
     (home-page "https://cran.r-project.org/web/packages/calibrate")
     (synopsis "Calibration of scatterplot and biplot axes")
     (description
@@ -3363,7 +3445,7 @@ ellipses, circles, cylinders, arrows, ...")
     (properties `((upstream-name . "GlobalOptions")))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/jokergoo/GlobalOptions")
     (synopsis "Generate functions to get or set global options")
     (description
@@ -3384,11 +3466,9 @@ validation and filtering on the values, making options invisible or private.")
          "16rnqlkgzhnm69y70k9fiz8vvwlm5dyng04hlxqvvaxix3wdpfkc"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-colorspace" ,r-colorspace)
-       ("r-globaloptions" ,r-globaloptions)
-       ("r-shape" ,r-shape)))
+     (list r-colorspace r-globaloptions r-shape))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/jokergoo/circlize")
     (synopsis "Circular visualization")
     (description
@@ -3416,9 +3496,9 @@ multi-dimensional data.")
     (properties `((upstream-name . "poweRlaw")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-pracma" ,r-pracma)))
+     (list r-pracma))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/csgillespie/poweRlaw")
     (synopsis "Tools for the analysis of heavy tailed distributions")
     (description
@@ -3453,21 +3533,19 @@ rows, dropping names) to see if the modified versions are identical.")
 (define-public r-dendextend
   (package
     (name "r-dendextend")
-    (version "1.15.1")
+    (version "1.15.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "dendextend" version))
        (sha256
         (base32
-         "0zf4w4rc2jj30i3x0m0gnkwidfmn3cvz1wirp20amq4v3n9420md"))))
+         "06wjs8451hmnimzgngpzbai3yrgy33133vzzapa8jib9crdqi8sb"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-magrittr" ,r-magrittr)
-       ("r-viridis" ,r-viridis)))
+     (list r-ggplot2 r-magrittr r-viridis))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/dendextend")
     (synopsis "Extending 'dendrogram' functionality in R")
     (description
@@ -3493,13 +3571,11 @@ compare different dendrograms to one another.")
     (properties `((upstream-name . "GetoptLong")))
     (build-system r-build-system)
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (propagated-inputs
-     `(("r-crayon" ,r-crayon)
-       ("r-globaloptions" ,r-globaloptions)
-       ("r-rjson" ,r-rjson)))
+     (list r-crayon r-globaloptions r-rjson))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/jokergoo/GetoptLong")
     (synopsis "Parsing command-line arguments and variable interpolation")
     (description
@@ -3532,16 +3608,16 @@ any subsequent lookup as it keeps the hash table in memory.")
 (define-public r-ff
   (package
     (name "r-ff")
-    (version "4.0.4")
+    (version "4.0.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ff" version))
        (sha256
         (base32
-         "1rfj2ff5cxzdp9nvfnbgmswc1jvxz5vkxqgpv6gprwk32a0z3v12"))))
+         "0dsh6llfdz04w94xr3yl2b4vkk9g3rwhvfnxcd025v2424krxfls"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-bit" ,r-bit)))
+    (propagated-inputs (list r-bit))
     (home-page "http://ff.r-forge.r-project.org/")
     (synopsis "Memory-efficient storage of large data on disk and access functions")
     (description
@@ -3565,9 +3641,7 @@ in main memory.")
          "1dp6lblfq2j7r1b4b8ls47jlx8j27n88d5vp8w116lb8pa01zxmk"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bit" ,r-bit)
-       ("r-fastmatch" ,r-fastmatch)
-       ("r-ff" ,r-ff)))
+     (list r-bit r-fastmatch r-ff))
     (home-page "https://github.com/edwindj/ffbase")
     (synopsis "Basic statistical functions for package 'ff'")
     (description
@@ -3606,7 +3680,7 @@ quantities.")
               "0wzk329bxljkzz57y220lsfckpsn45w348m6dcxh29zbj0ik65h2"))))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-rcpp" ,r-rcpp)))
+    (list r-rcpp))
    (home-page "https://github.com/rcannood/princurve")
    (synopsis "Fit a principal curve in arbitrary dimension")
    (description "This package provides procedures for fitting a principal
@@ -3626,8 +3700,7 @@ curve to a data matrix in arbitrary dimensions.")
          "0s6i0sqxg1vldxs6miv8mi0zydxbqzgpmzfiwkj8y7jix3yrfmad"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-plyr" ,r-plyr)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-plyr r-rcpp))
     (home-page "http://had.co.nz/reshape")
     (synopsis "Flexibly reshape data")
     (description
@@ -3647,15 +3720,15 @@ curve to a data matrix in arbitrary dimensions.")
         (base32 "1486hrzj5q5w4nbrsbqlv7vv20ly01y90qc2vygl5syzwvyjd422"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-checkmate" ,r-checkmate)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-mime" ,r-mime)
-       ("r-r6" ,r-r6)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rserve" ,r-rserve)
-       ("r-uuid" ,r-uuid)))
+     (list r-checkmate
+           r-jsonlite
+           r-mime
+           r-r6
+           r-rcpp
+           r-rserve
+           r-uuid))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://restrserve.org")
     (synopsis "R web API framework")
     (description
@@ -3678,10 +3751,7 @@ parallel - each request in a separate fork.")
          "0dgzb362641aqm8xd88iqa8jmpdm43xs0aba0d5kk6fvapnxi95l"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-crayon" ,r-crayon)
-       ("r-hms" ,r-hms)
-       ("r-prettyunits" ,r-prettyunits)
-       ("r-r6" ,r-r6)))
+     (list r-crayon r-hms r-prettyunits r-r6))
     (home-page "https://github.com/gaborcsardi/progress")
     (synopsis "Terminal progress bars")
     (description
@@ -3705,20 +3775,20 @@ package also provides a C++ API, that works with or without Rcpp.")
     (properties `((upstream-name . "GGally")))
     (build-system r-build-system)
     (inputs
-     `(("openssl" ,openssl)))
-    (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-forcats" ,r-forcats)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gtable" ,r-gtable)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-plyr" ,r-plyr)
-       ("r-progress" ,r-progress)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-reshape" ,r-reshape)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)
-       ("r-tidyr" ,r-tidyr)))
+     (list openssl))
+    (propagated-inputs
+     (list r-dplyr
+           r-forcats
+           r-ggplot2
+           r-gtable
+           r-lifecycle
+           r-plyr
+           r-progress
+           r-rcolorbrewer
+           r-reshape
+           r-rlang
+           r-scales
+           r-tidyr))
     (home-page "https://ggobi.github.io/ggally")
     (synopsis "Extension to ggplot2")
     (description
@@ -3753,16 +3823,18 @@ most popular ones.")
 (define-public r-sp
   (package
     (name "r-sp")
-    (version "1.4-5")
+    (version "1.4-6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sp" version))
        (sha256
-        (base32 "1nh9izsnszzm5kbq461w8bi0yh7fqzb74b2zmpg5qis0slbb5vkb"))))
+        (base32 "09m2ddbrbs2aqnq5si42ipa0g1vbd0pxg4zbcx59is2047pv7sws"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)))
+     (list r-lattice))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/sp")
     (synopsis "Classes and methods for spatial data")
     (description
@@ -3816,13 +3888,13 @@ matrices.")
 (define-public r-rmpi
   (package
     (name "r-rmpi")
-    (version "0.6-9.1")
+    (version "0.6-9.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "Rmpi" version))
               (sha256
                (base32
-                "1j8akqjan59yzwx2s1zxc214qyd323fd2i2dhgq0n11mb6ajmq4r"))))
+                "06mxqgrimhfsag5giv810c7ycdbaycqs4qcj41pnfbj0jypw32im"))))
     (properties `((upstream-name . "Rmpi")))
     (build-system r-build-system)
     (arguments
@@ -3831,9 +3903,9 @@ matrices.")
                   (add-before 'install 'mpi-setup
                     ,%openmpi-setup))))
     (inputs
-     `(("openmpi" ,openmpi)))
+     (list openmpi))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://www.stats.uwo.ca/faculty/yu/Rmpi")
     (synopsis "R interface to message-passing interface (MPI)")
     (description
@@ -3855,8 +3927,7 @@ provides an interactive R manager and worker environment.")
     (properties `((upstream-name . "Lmoments")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)))
+     (list r-rcpp r-rcpparmadillo))
     (home-page "http://www.tilastotiede.fi/juha_karvanen.html")
     (synopsis "L-moments and quantile mixtures")
     (description
@@ -3920,8 +3991,7 @@ which should be seen for details.")
     (properties `((upstream-name . "extRemes")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-distillery" ,r-distillery)
-       ("r-lmoments" ,r-lmoments)))
+     (list r-distillery r-lmoments))
     (home-page "https://www.assessment.ucar.edu/toolkit/")
     (synopsis "Extreme value analysis")
     (description
@@ -3933,19 +4003,19 @@ or excesses over a high threshold.")
 (define-public r-lmtest
   (package
     (name "r-lmtest")
-    (version "0.9-38")
+    (version "0.9-39")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lmtest" version))
        (sha256
         (base32
-         "0sr19bmw2cpagfvwg772m79wvl1i2hww1xfr69bzr3rr8pm2r8ij"))))
+         "126l0y7j2iy6g1w4zii1qkfcjq6wrnc3w2li0bz376smpryddy3i"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-zoo" ,r-zoo)))
+     (list r-zoo))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/lmtest")
     (synopsis "Testing linear regression models")
     (description
@@ -4007,7 +4077,7 @@ and S4 methods with inlined C, C++ or Fortran code supporting @code{.C} and
                 "1khkzja8lwn9075864vbyajqina9m588ahf1fsrrajrsqilyzssz"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-libcoin" ,r-libcoin)))
+     (list r-libcoin))
     (home-page "https://cran.r-project.org/web/packages/inum/")
     (synopsis "Interval and enum-type representation of vectors")
     (description
@@ -4067,14 +4137,14 @@ matrices, a special case of sparse matrices.")
          "1bck8rmink4wsk8pcbnj4d60svxymp29pxbzwj8p9gzsg42c1v81"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bdsmatrix" ,r-bdsmatrix)
-       ("r-lattice" ,r-lattice)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-numderiv" ,r-numderiv)))
+     (list r-bdsmatrix
+           r-lattice
+           r-mass
+           r-matrix
+           r-mvtnorm
+           r-numderiv))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/bbmle")
     (synopsis "Tools for General Maximum Likelihood Estimation")
     (description
@@ -4097,11 +4167,7 @@ classes in the @code{stats4} package.")
          "0ls3zxxlwmdv7zn1v9i1y9zc2sn0hbgmyjvsj7zn3ajsw7wwlih6"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bbmle" ,r-bbmle)
-       ("r-coda" ,r-coda)
-       ("r-lattice" ,r-lattice)
-       ("r-mass" ,r-mass)
-       ("r-plyr" ,r-plyr)))
+     (list r-bbmle r-coda r-lattice r-mass r-plyr))
     (home-page "http://www.math.mcmaster.ca/bolker/emdbook")
     (synopsis "Support functions and data for \"Ecological Models and Data\"")
     (description
@@ -4147,10 +4213,8 @@ transportation problems.")
     (properties `((upstream-name . "limSolve")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lpsolve" ,r-lpsolve)
-       ("r-mass" ,r-mass)
-       ("r-quadprog" ,r-quadprog)))
-    (native-inputs `(("gfortran" ,gfortran)))
+     (list r-lpsolve r-mass r-quadprog))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/limSolve")
     (synopsis "Solving linear inverse models")
     (description
@@ -4170,20 +4234,19 @@ functions from LINPACK.")
 (define-public r-fitdistrplus
   (package
     (name "r-fitdistrplus")
-    (version "1.1-5")
+    (version "1.1-6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fitdistrplus" version))
        (sha256
         (base32
-         "1p9rvvh05zqb9vzhcyzdh7i8lbmb53nj8nyn0gqcmp7wafg9cd1f"))))
+         "1glnbcm1gghzgvzpxcfsmn7dp2f9jqyx39n3ydwp9fx38409khhp"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-survival" ,r-survival)))
+     (list r-mass r-survival))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "http://riskassessment.r-forge.r-project.org")
     (synopsis "Fitting a parametric distribution from data")
     (description
@@ -4210,9 +4273,7 @@ data).  Weighted versions of MLE, MME and QME are available.")
          "12a7gy681aq3l55iys044cs6sn1s2l5qihghpdl01cvv0ggfh26y"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-boot" ,r-boot)
-       ("r-gsl" ,r-gsl)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-boot r-gsl r-rcpp))
     (home-page "https://cran.r-project.org/web/packages/energy")
     (synopsis "Multivariate inference via the energy of data")
     (description
@@ -4265,7 +4326,7 @@ George Marsaglia are included.")
     (properties `((upstream-name . "kSamples")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-suppdists" ,r-suppdists)))
+     (list r-suppdists))
     (home-page "https://cran.r-project.org/web/packages/kSamples")
     (synopsis "K-Sample rank tests and their combinations")
     (description
@@ -4293,8 +4354,7 @@ samples.")
     (properties `((upstream-name . "CVST")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-kernlab" ,r-kernlab)
-       ("r-matrix" ,r-matrix)))
+     (list r-kernlab r-matrix))
     (home-page "https://cran.r-project.org/web/packages/CVST")
     (synopsis "Fast cross-validation via sequential testing")
     (description
@@ -4333,24 +4393,47 @@ acceleration scheme.  A tutorial style introduction to this package is
 available in a vignette.")
     (license license:gpl2+)))
 
+(define-public r-progressr
+  (package
+    (name "r-progressr")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "progressr" version))
+       (sha256
+        (base32 "03sk5cv8cywahlszjkd8pfqmhbj6cv0j54d3lassa7h44f20zryg"))))
+    (properties `((upstream-name . "progressr")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-digest))
+    (home-page "https://progressr.futureverse.org")
+    (synopsis "Inclusive, unifying API for progress updates")
+    (description
+     "This package provides a minimal, unifying API for scripts and packages
+to report progress updates from anywhere including when using parallel
+processing.  The package is designed such that the developer can to focus on
+what progress should be reported on without having to worry about how to
+present it.  The end user has full control of how, where, and when to render
+these progress updates.")
+    (license license:gpl3+)))
+
 (define-public r-lava
   (package
     (name "r-lava")
-    (version "1.6.9")
+    (version "1.6.10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lava" version))
        (sha256
         (base32
-         "07difbrz8zmvdyns63958v0zw4hyv48956mcww8zh7064a564k83"))))
+         "0bi3c1aqwlq7jbz4raz6vga4r264w7lldi0i62xjlbl7hnlgi23s"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-numderiv" ,r-numderiv)
-       ("r-squarem" ,r-squarem)
-       ("r-survival" ,r-survival)))
+     (list r-future-apply r-numderiv r-progressr r-squarem r-survival))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/kkholst/lava")
     (synopsis "Latent variable models")
     (description
@@ -4372,9 +4455,7 @@ variable models.")
     (properties `((upstream-name . "DRR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cvst" ,r-cvst)
-       ("r-kernlab" ,r-kernlab)
-       ("r-matrix" ,r-matrix)))
+     (list r-cvst r-kernlab r-matrix))
     (home-page "https://cran.r-project.org/web/packages/DRR")
     (synopsis "Dimensionality reduction via regression")
     (description
@@ -4395,10 +4476,7 @@ regression using Kernel Ridge Regression.")
          "03wvh3kirp1prac5nky6a5whs97rvaf4hc27x0fnh51sa17r42b8"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-kernsmooth" ,r-kernsmooth)
-       ("r-lava" ,r-lava)
-       ("r-rcpp" ,r-rcpp)
-       ("r-survival" ,r-survival)))
+     (list r-kernsmooth r-lava r-rcpp r-survival))
     (home-page "https://cran.r-project.org/web/packages/prodlim")
     (synopsis "Product-limit estimation for censored event history analysis")
     (description
@@ -4421,8 +4499,7 @@ the Kaplan-Meier and Aalen-Johansen methods.")
     (properties `((upstream-name . "dimRed")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-drr" ,r-drr)
-       ("r-magrittr" ,r-magrittr)))
+     (list r-drr r-magrittr))
     (home-page "https://github.com/gdkrmr/dimRed")
     (synopsis "Framework for dimensionality reduction")
     (description
@@ -4465,7 +4542,7 @@ calendar objects.")
          "0snmdh6vk0p6ar1swsihisinxrx7l8371dri5lk0z24ysgr5w7gs"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)))
+     (list r-abind))
     (home-page "https://github.com/RobinHankin/magic.git")
     (synopsis "Create and investigate magic squares")
     (description
@@ -4489,10 +4566,9 @@ dimensioned arrays.")
     (properties `((upstream-name . "RMySQL")))
     (build-system r-build-system)
     (inputs
-     `(("mariadb-dev" ,mariadb "dev")
-       ("zlib" ,zlib)))
+     (list `(,mariadb "dev") zlib))
     (propagated-inputs
-     `(("r-dbi" ,r-dbi)))
+     (list r-dbi))
     (home-page "https://github.com/r-dbi/RMySQL")
     (synopsis "Database interface and MySQL driver for R")
     (description
@@ -4505,20 +4581,20 @@ the RMariaDB package.")
 (define-public r-rpostgresql
   (package
     (name "r-rpostgresql")
-    (version "0.7")
+    (version "0.7-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RPostgreSQL" version))
        (sha256
         (base32
-         "1bqfdbs09f65ssc6bx4z3kkmia8ja6qbnijxizw63p0fbcakq2q4"))))
+         "1fbixmnjp1kh6yiv8zhg8zi5ryvdf5j2jxv4agq5gcxf541s3g5x"))))
     (properties `((upstream-name . "RPostgreSQL")))
     (build-system r-build-system)
     (inputs
-     `(("postgresql" ,postgresql)))
+     (list postgresql))
     (propagated-inputs
-     `(("r-dbi" ,r-dbi)))
+     (list r-dbi))
     (home-page "https://github.com/tomoakin/RPostgreSQL")
     (synopsis "R interface to the PostgreSQL database system")
     (description
@@ -4540,7 +4616,7 @@ to access PostgreSQL database systems.")
         (base32
          "1ki14an0pmhs2mnmfjjvdzd76pshiyvi659zf7hqvqwj0viv4dw9"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-lpsolve" ,r-lpsolve)))
+    (propagated-inputs (list r-lpsolve))
     (home-page "http://linprog.r-forge.r-project.org/")
     (synopsis "Linear programming and optimization")
     (description
@@ -4561,11 +4637,7 @@ Optimization problems by using the simplex algorithm.")
          "1n10l8ax3783v3lgaacb15qsn8b3f0wpmhg3k39j31s6ciyd3vcg"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-magic" ,r-magic)
-       ("r-linprog" ,r-linprog)
-       ("r-lpsolve" ,r-lpsolve)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppprogress" ,r-rcppprogress)))
+     (list r-magic r-linprog r-lpsolve r-rcpp r-rcppprogress))
     (home-page "http://geometry.r-forge.r-project.org/")
     (synopsis "Mesh generator and surface tessellator")
     (description
@@ -4596,15 +4668,15 @@ Delaunay triangulation and convex hull computation.")
          "1sdnb47r534nh138zk3a6b2mgi74nvshc7p5m304vjs9jlx4l2y3"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-class" ,r-class)
-       ("r-geometry" ,r-geometry)
-       ("r-mass" ,r-mass)
-       ("r-rcpp" ,r-rcpp)
-       ("r-robustbase" ,r-robustbase)
-       ("r-sfsmisc" ,r-sfsmisc)))
+     (list r-bh
+           r-class
+           r-geometry
+           r-mass
+           r-rcpp
+           r-robustbase
+           r-sfsmisc))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/ddalpha")
     (synopsis "Depth-Based classification and calculation of data depth")
     (description
@@ -4651,7 +4723,7 @@ Core algorithms are executed in parallel on systems supporting OpenMP.")
     (properties `((upstream-name . "RcppRoll")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (home-page "https://cran.r-project.org/web/packages/RcppRoll")
     (synopsis "Efficient rolling and windowed operations")
     (description
@@ -4664,22 +4736,22 @@ provided.")
 (define-public r-ipred
   (package
     (name "r-ipred")
-    (version "0.9-11")
+    (version "0.9-12")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ipred" version))
        (sha256
         (base32
-         "04hfg27c72v0fz4091w3rgbc2vd7g6yl78y9plvsvh0vjlx8ymmp"))))
+         "0hsq00382pfd9hzpcgphjxazbxm4zx0k2r6pk6kib56k0ibm7qfn"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-class" ,r-class)
-       ("r-mass" ,r-mass)
-       ("r-nnet" ,r-nnet)
-       ("r-prodlim" ,r-prodlim)
-       ("r-rpart" ,r-rpart)
-       ("r-survival" ,r-survival)))
+     (list r-class
+           r-mass
+           r-nnet
+           r-prodlim
+           r-rpart
+           r-survival))
     (home-page "https://cran.r-project.org/web/packages/ipred")
     (synopsis "Improved predictors")
     (description
@@ -4691,21 +4763,19 @@ problems as well as resampling based estimators of prediction error.")
 (define-public r-psych
   (package
     (name "r-psych")
-    (version "2.1.6")
+    (version "2.1.9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "psych" version))
        (sha256
         (base32
-         "0rmwwfrhi1h9r57cp6004alchf11f7k5amlgxj4z8zsws5v1cfxx"))))
+         "032h33i2qlwsw2iq82nri5y8hs7d593w40aghcvnibpi2wxf0x8l"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)
-       ("r-mnormt" ,r-mnormt)
-       ("r-nlme" ,r-nlme)))
+     (list r-lattice r-mnormt r-nlme))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/psych/")
     (synopsis "Procedures for psychological, psychometric, and personality research")
     (description
@@ -4726,14 +4796,14 @@ created using basic graphics.")
 (define-public r-generics
   (package
     (name "r-generics")
-    (version "0.1.0")
+    (version "0.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "generics" version))
        (sha256
         (base32
-         "0qw7r0d2qvlj1pvrlpv30d6akml624ydxkk19hv85iv6pfyx2wdb"))))
+         "04hrn6g5m5vi3znrcha3jw2q16lnmm3ygx2jl5aqiahg3azqwix2"))))
     (build-system r-build-system)
     (home-page "https://github.com/r-lib/generics")
     (synopsis "Common S3 generics not provided by base R methods")
@@ -4746,28 +4816,29 @@ by base R methods related to model fitting.")
 (define-public r-broom
   (package
     (name "r-broom")
-    (version "0.7.9")
+    (version "0.7.10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "broom" version))
        (sha256
         (base32
-         "1z65qyhkhkyalxhrvpsa7n8pickj9fjs8r4gzdvjp2rpggwramhx"))))
+         "0ks64xwkaqh5cinq8j56d89rn9kipm7cdipsgqmz9xxy7ajxb7qj"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-backports" ,r-backports)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ellipsis" ,r-ellipsis)
-       ("r-generics" ,r-generics)
-       ("r-glue" ,r-glue)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-backports
+           r-dplyr
+           r-ellipsis
+           r-generics
+           r-ggplot2
+           r-glue
+           r-purrr
+           r-rlang
+           r-stringr
+           r-tibble
+           r-tidyr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/tidyverse/broom")
     (synopsis "Convert statistical analysis objects into tidy data frames")
     (description
@@ -4784,35 +4855,36 @@ provides a one-row summary of model-level statistics.")
 (define-public r-recipes
   (package
     (name "r-recipes")
-    (version "0.1.16")
+    (version "0.1.17")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "recipes" version))
        (sha256
         (base32
-         "1mayfdbn6q775d4gbdjrrhdbmpsxga57kwh0h7bwv8rk0vmvik23"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-ellipsis" ,r-ellipsis)
-       ("r-generics" ,r-generics)
-       ("r-glue" ,r-glue)
-       ("r-gower" ,r-gower)
-       ("r-ipred" ,r-ipred)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-lubridate" ,r-lubridate)
-       ("r-magrittr" ,r-magrittr)
-       ("r-matrix" ,r-matrix)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-tidyselect" ,r-tidyselect)
-       ("r-timedate" ,r-timedate)
-       ("r-withr" ,r-withr)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+         "0gbdc5kvbn14s5zrf4vrdjvkfajs00p7vvb433ii0lqnl07bl87d"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-dplyr
+           r-ellipsis
+           r-generics
+           r-glue
+           r-gower
+           r-ipred
+           r-lifecycle
+           r-lubridate
+           r-magrittr
+           r-matrix
+           r-purrr
+           r-rlang
+           r-tibble
+           r-tidyr
+           r-tidyselect
+           r-timedate
+           r-vctrs
+           r-withr))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/topepo/recipes")
     (synopsis "Preprocessing tools to create design matrices")
     (description
@@ -4861,12 +4933,9 @@ for certain use cases.")
          "1z5xyr5f4aryy0v1gzz9m8m4s5fzzwbrf0fxll1nbflr8xnr3yr9"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)))
+     (list r-ggplot2 r-rcpp r-rlang r-scales))
     (native-inputs
-     `(("r-knitr" ,r-knitr))) ; for vignettes
+     (list r-knitr)) ; for vignettes
     (home-page "https://github.com/slowkow/ggrepel")
     (synopsis "Repulsive text and label geometries for ggplot2")
     (description
@@ -4878,17 +4947,17 @@ from the data points.")
 (define-public r-corrplot
   (package
     (name "r-corrplot")
-    (version "0.90")
+    (version "0.92")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "corrplot" version))
        (sha256
         (base32
-         "1pfmjqgakf7706l9257lqqnb6kin79gc94xfg7w47x2ijchiz1yr"))))
+         "1g98jk6xsl08z4n6sy5vriif99m31zhbz7j3dh1kfj4w7yb9zh78"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/taiyun/corrplot")
     (synopsis "Visualization of a correlation matrix")
     (description
@@ -4902,13 +4971,13 @@ color labels, layout, etc.")
 (define-public r-stringdist
   (package
     (name "r-stringdist")
-    (version "0.9.7")
+    (version "0.9.8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "stringdist" version))
        (sha256
-        (base32 "0gcjxbwciviny2apvlmm9324b445rlj54b7ll368m8zid5hqxacw"))))
+        (base32 "1fv1hbdlm8qwx57b2aj50mw0say5k48awzavx65mfk67qp6ddk7g"))))
     (build-system r-build-system)
     (home-page "https://github.com/markvanderloo/stringdist")
     (synopsis "Approximate string matching and string distance functions")
@@ -4934,7 +5003,7 @@ or between integer vectors representing generic sequences.")
         (base32
          "01vggwg1w71k98qs6fhb0x1843vi322mf4g3hbclks94kcpkisx2"))))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/ucminf/")
     (synopsis "General-purpose unconstrained non-linear optimization")
     (description
@@ -4959,14 +5028,14 @@ with the package @code{optim}.")
    (properties `((upstream-name . "useful")))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-assertthat" ,r-assertthat)
-      ("r-dplyr" ,r-dplyr)
-      ("r-ggplot2" ,r-ggplot2)
-      ("r-magrittr" ,r-magrittr)
-      ("r-matrix" ,r-matrix)
-      ("r-plyr" ,r-plyr)
-      ("r-purrr" ,r-purrr)
-      ("r-scales" ,r-scales)))
+    (list r-assertthat
+          r-dplyr
+          r-ggplot2
+          r-magrittr
+          r-matrix
+          r-plyr
+          r-purrr
+          r-scales))
    (home-page "https://github.com/jaredlander/useful")
    (synopsis "Collection of handy, useful functions")
    (description "This package provides a set of little functions that have been
@@ -4989,10 +5058,7 @@ response matrices.")
          "09bpmjmbf4x82kgf6bm4bkncq2apdv9mk20zj4zgma2jx2vyfhbs"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-numderiv" ,r-numderiv)
-       ("r-ucminf" ,r-ucminf)))
+     (list r-mass r-matrix r-numderiv r-ucminf))
     (home-page "https://github.com/runehaubo/ordinal")
     (synopsis "Regression models for ordinal data")
     (description
@@ -5016,10 +5082,7 @@ Laplace approximation and adaptive Gauss-Hermite quadrature.")
          "1sbcpacxnxbzwa8rr9x2bq7hh0s3sw6yznr90dkp43n6xk5xaqir"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lme4" ,r-lme4)
-       ("r-mass" ,r-mass)
-       ("r-ordinal" ,r-ordinal)
-       ("r-survival" ,r-survival)))
+     (list r-lme4 r-mass r-ordinal r-survival))
     (home-page "https://cran.r-project.org/web/packages/jomo/")
     (synopsis "Multilevel Joint Modelling Multiple Imputation")
     (description
@@ -5043,7 +5106,7 @@ impute compatibly with the substantive model.")
         (base32
          "1dk3jjj826p7xrz10qz04vyc068xnypg7bp0pj4c32z3da0xzh5d"))))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/pan/")
     (synopsis "Multiple imputation for multivariate panel or clustered data")
     (description
@@ -5054,21 +5117,19 @@ clustered data.")
 (define-public r-mitml
   (package
     (name "r-mitml")
-    (version "0.4-1")
+    (version "0.4-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "mitml" version))
        (sha256
         (base32
-         "1bw92fl6xp3yvawh3nbjzs4hp4alpwj6vnv6lsysd74aqndw447c"))))
+         "00i18nnvrdrg91crgcp2a431xs71cawaip3xkqk2myv0iav3xga9"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-haven" ,r-haven)
-       ("r-jomo" ,r-jomo)
-       ("r-pan" ,r-pan)))
+     (list r-haven r-jomo r-pan))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/mitml/")
     (synopsis "Tools for multiple imputation in multilevel modeling")
     (description
@@ -5091,14 +5152,14 @@ analysis of multiply imputed data sets.")
          "11cpyqlilakan2pwjzacb9jjlazazsqdngy237nnrj8j6mky822i"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-broom" ,r-broom)
-       ("r-cpp11" ,r-cpp11)
-       ("r-dplyr" ,r-dplyr)
-       ("r-generics" ,r-generics)
-       ("r-lattice" ,r-lattice)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rlang" ,r-rlang)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-broom
+           r-cpp11
+           r-dplyr
+           r-generics
+           r-lattice
+           r-rcpp
+           r-rlang
+           r-tidyr))
     (home-page "https://cran.r-project.org/web/packages/mice/")
     (synopsis "Multivariate imputation by chained equations")
     (description
@@ -5150,7 +5211,7 @@ functions, as well as a random generation function.")
     (properties `((upstream-name . "Rsolnp")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-truncnorm" ,r-truncnorm)))
+     (list r-truncnorm))
     (home-page "https://cran.r-project.org/web/packages/Rsolnp/")
     (synopsis "General non-linear optimization")
     (description "The Rsolnp package implements a general non-linear augmented
@@ -5162,20 +5223,18 @@ programming} (SQP) based solver).")
 (define-public r-hardyweinberg
   (package
     (name "r-hardyweinberg")
-    (version "1.7.2")
+    (version "1.7.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "HardyWeinberg" version))
        (sha256
         (base32
-         "0g10jh71yp0pcag44z409xqb6d941l7y887a632962bk5rgn6q5p"))))
+         "0ppkzbhrb83dj796pm6gn5ypsf1ql8d9b3fv47w63i0snkhxfiv4"))))
     (properties `((upstream-name . "HardyWeinberg")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mice" ,r-mice)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rsolnp" ,r-rsolnp)))
+     (list r-mice r-rcpp r-rsolnp))
     (home-page "https://cran.r-project.org/package=HardyWeinberg")
     (synopsis "Statistical tests and graphics for Hardy-Weinberg equilibrium")
     (description
@@ -5194,16 +5253,16 @@ acceptance regions, log-ratio plots and Q-Q plots.")
 (define-public r-sm
   (package
     (name "r-sm")
-    (version "2.2-5.6")
+    (version "2.2-5.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sm" version))
        (sha256
         (base32
-         "0c4whcx879gb4lwvqnzxl5n9xgpcqh2c54ip9ami3mwfprzcv45q"))))
+         "03z8igsjqr32x407asxvkrbayvm6yhv9xyfs0n8fkmv8zk5a41r6"))))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "http://www.stats.gla.ac.uk/~adrian/sm/")
     (synopsis "Smoothing methods for nonparametric regression and density estimation")
     (description
@@ -5216,17 +5275,17 @@ and density estimation")
 (define-public r-venndiagram
   (package
     (name "r-venndiagram")
-    (version "1.6.20")
+    (version "1.7.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "VennDiagram" version))
               (sha256
                (base32
-                "1ic1jaxzw98si2p4n1fl4n3myhd7fpw0njb634cwhviwybzv6775"))))
+                "1l9mmc8wwn885l2b13kshhrkz53pqigcw6d8gklvv92fx5m5cdvm"))))
     (properties `((upstream-name . "VennDiagram")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-futile-logger" ,r-futile-logger)))
+     (list r-futile-logger))
     (home-page "https://cran.r-project.org/web/packages/VennDiagram/")
     (synopsis "Generate High-Resolution Venn and Euler Plots")
     (description
@@ -5249,10 +5308,9 @@ structure.")
          "1dmdasp3jldc41233z6r08w3j76vyyp9m3jrj7n4ahk48yd5siq6"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-sm" ,r-sm)
-       ("r-zoo" ,r-zoo)))
+     (list r-sm r-zoo))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "http://wsopuppenkiste.wiso.uni-goettingen.de/~dadler")
     (synopsis "Violin plot")
     (description
@@ -5277,7 +5335,7 @@ plot and a kernel density plot.")
     (properties `((upstream-name . "RSofia")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (home-page "https://cran.r-project.org/src/contrib/Archive/RSofia")
     (synopsis "Port of sofia-ml to R")
     (description "This package is a port of sofia-ml to R.  Sofia-ml is a
@@ -5297,7 +5355,7 @@ training models for classification or ranking.")
         (base32
          "0b6a7mpyk9aw6axas7nz01gadczprwwfhii01fz31z26z555i06n"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-zoo" ,r-zoo)))
+    (propagated-inputs (list r-zoo))
     (home-page "https://github.com/joshuaulrich/xts")
     (synopsis "Extensible time series")
     (description
@@ -5322,9 +5380,7 @@ simplifying cross-class interoperability.")
      `((upstream-name . "PerformanceAnalytics")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-quadprog" ,r-quadprog)
-       ("r-xts" ,r-xts)
-       ("r-zoo" ,r-zoo)))
+     (list r-quadprog r-xts r-zoo))
     (home-page "https://r-forge.r-project.org/projects/returnanalytics/")
     (synopsis "Econometric tools for performance and risk analysis")
     (description "This is a collection of econometric functions for
@@ -5340,18 +5396,17 @@ where possible.")
 (define-public r-laeken
   (package
     (name "r-laeken")
-    (version "0.5.1")
+    (version "0.5.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "laeken" version))
        (sha256
         (base32
-         "199rjkhjjygpr6cjzab87as46acb5npi44m4yycvk7lnd0blma8s"))))
+         "1p3ccbaydlr52p8qmgmm2l6kryvq6jjjx7mqn2vv0gpjaxqhyy92"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-boot" ,r-boot)
-       ("r-mass" ,r-mass)))
+     (list r-boot r-mass))
     (home-page "https://cran.r-project.org/web/packages/laeken/")
     (synopsis "Estimation of indicators on social exclusion and poverty")
     (description "This package provides tools for the estimation of indicators
@@ -5362,19 +5417,17 @@ modeling for empirical income distributions.")
 (define-public r-vcd
   (package
     (name "r-vcd")
-    (version "1.4-8")
+    (version "1.4-9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "vcd" version))
        (sha256
         (base32
-         "030yyhpzsj4ivwrla7p9kgvmyjh6b8fr7czf678ykxjj64ccnvr3"))))
+         "13sn77qdcyll9lz7nab0bxzfvpgj8f5rl2cq5ylpz8pibynj1d55"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-colorspace" ,r-colorspace)
-       ("r-lmtest" ,r-lmtest)
-       ("r-mass" ,r-mass)))
+     (list r-colorspace r-lmtest r-mass))
     (home-page "https://cran.r-project.org/web/packages/vcd/")
     (synopsis "Visualizing categorical data")
     (description "This package provides visualization techniques, data sets,
@@ -5397,20 +5450,20 @@ Analysis with R\" by Michael Friendly and David Meyer (2015).")
               "0lhxb3ac4fafwik9q3cds46svzf0hyca8k54chw3dpk50c0zz1yx"))))
    (build-system r-build-system)
    (native-inputs
-    `(("r-knitr" ,r-knitr)))
+    (list r-knitr))
    (inputs
-    `(("zlib" ,zlib)))
+    (list zlib))
    (propagated-inputs
-    `(("r-ape" ,r-ape)
-      ("r-dplyr" ,r-dplyr)
-      ("r-magrittr" ,r-magrittr)
-      ("r-memuse" ,r-memuse)
-      ("r-pinfsc50" ,r-pinfsc50)
-      ("r-rcpp" ,r-rcpp)
-      ("r-stringr" ,r-stringr)
-      ("r-tibble" ,r-tibble)
-      ("r-vegan" ,r-vegan)
-      ("r-viridislite" ,r-viridislite)))
+    (list r-ape
+          r-dplyr
+          r-magrittr
+          r-memuse
+          r-pinfsc50
+          r-rcpp
+          r-stringr
+          r-tibble
+          r-vegan
+          r-viridislite))
    (home-page "https://github.com/knausb/vcfR")
    (synopsis "Manipulate and visualize VCF data")
    (description "This package facilitates easy manipulation of variant call
@@ -5455,7 +5508,7 @@ of Eigenmatrices} (JADE).")
         (base32
          "004gm4mzgdzdj807j3bwqsv5lizmnmz5jq514bdjshhkysnzjz6z"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-proxy" ,r-proxy)))
+    (propagated-inputs (list r-proxy))
     (home-page "http://dtw.r-forge.r-project.org/")
     (synopsis "Dynamic Time Warping Algorithms")
     (description "This package provides a comprehensive implementation of
@@ -5479,7 +5532,7 @@ normalizations, minimum variance matching, and so on.")
          "1xvcd97ikqsfdpk2fddy3k0z1ajqga7nv9bgac9c1wnjk1gqrpgh"))))
     (properties `((upstream-name . "SDMTools")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-r-utils" ,r-r-utils)))
+    (propagated-inputs (list r-r-utils))
     (home-page "https://www.rforge.net/SDMTools/")
     (synopsis "Species distribution modelling tools")
     (description "This package provides a set of tools for post processing
@@ -5521,12 +5574,9 @@ plotting.  a three dimensional point cloud.")
          "0bmlqy1p6rac90af97ffpdi6php7dblx66l2hcm8ljidgyqzmspm"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-plyr" ,r-plyr)
-       ("r-scales" ,r-scales)
-       ("r-withr" ,r-withr)))
+     (list r-ggplot2 r-plyr r-scales r-withr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/clauswilke/ggridges")
     (synopsis "Ridgeline plots in ggplot2")
     (description
@@ -5548,8 +5598,7 @@ plots in @code{ggplot2}.")
          "012md2m0jqfcccb933j423m3ck31v3p0pd41gjxpyg9082y7ixyj"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-ggridges" ,r-ggridges)))
+     (list r-ggplot2 r-ggridges))
     (home-page "https://github.com/clauswilke/ggjoy")
     (synopsis "Joyplots in ggplot2")
     (description "Joyplots provide a convenient way of visualizing changes in
@@ -5560,17 +5609,17 @@ plots in @code{ggplot2}.")
 (define-public r-cli
   (package
     (name "r-cli")
-    (version "3.0.1")
+    (version "3.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "cli" version))
        (sha256
         (base32
-         "1zdld2cr83k4v7yrwa2csvcafwslwr610vk70mv1a3knrnv2b6nq"))))
+         "04ff3bgsahi736s8l6a26zlwwil8jw4shx7bb56ah1pp1f1n22n7"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-glue" ,r-glue)))
+     (list r-glue))
     (home-page "https://github.com/r-lib/cli#readme")
     (synopsis "Helpers for developing command line interfaces")
     (description "This package provides a suite of tools designed to build
@@ -5611,7 +5660,7 @@ script.")
         (base32
          "1c9sg55zvf10h8198jdnpamm6f66lzw3c3jnmdp9ls6na0j0xbjd"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-crayon" ,r-crayon)))
+    (propagated-inputs (list r-crayon))
     (home-page "https://github.com/r-lib/debugme#readme")
     (synopsis "Debug R packages")
     (description
@@ -5631,8 +5680,7 @@ constants, and control debugging of packages via environment variables.")
         (base32 "0azw8sx6nv6pp8m8jrwq01b9na2swrnznn7dwrhn07268w82svzd"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ps" ,r-ps)
-       ("r-r6" ,r-r6)))
+     (list r-ps r-r6))
     (home-page "https://github.com/r-lib/processx3")
     (synopsis "Execute and control system processes")
     (description
@@ -5648,17 +5696,17 @@ timeout.  It can also poll several processes at once.")
 (define-public r-tsp
   (package
     (name "r-tsp")
-    (version "1.1-10")
+    (version "1.1-11")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "TSP" version))
        (sha256
         (base32
-         "0z1v6m0vqjzxc4az3zyjaayygx0jr3mdmc56jjd421iqh0b9z5s4"))))
+         "0gdwxbj2gria7jhsswmfvc32r43sdd63z3lyy21gbvmfcakvb8j9"))))
     (properties `((upstream-name . "TSP")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-foreach" ,r-foreach)))
+    (propagated-inputs (list r-foreach))
     (home-page "https://cran.r-project.org/web/packages/TSP/")
     (synopsis "Traveling salesperson problem (TSP)")
     (description "This package provides basic infrastructure and some
@@ -5678,7 +5726,7 @@ traveling salesman problem).")
         (base32
          "0d2d1ni1camixyi45lfy00f4pn3p063k7bsi8gj5scp6n15mdgb0"))))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/qap/")
     (synopsis "Heuristics for the quadratic assignment problem (QAP)")
     (description "This package implements heuristics for the @dfn{quadratic
@@ -5698,7 +5746,7 @@ available.")
         (base32
          "1cz0g0i972955hhaji30rx8448x7f3as7z1sww9i5h86ybgirilw"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-cluster" ,r-cluster)))
+    (propagated-inputs (list r-cluster))
     (home-page "https://cran.r-project.org/web/packages/gclus/")
     (synopsis "Clustering graphics")
     (description "This package orders panels in scatterplot matrices and
@@ -5720,9 +5768,7 @@ of merit, ordering functions, and enhanced versions of @code{pairs} and
          "0gq4h8cw51z95yvsnf38kj5l58wgljkm0dalmi8mn1sp06bxr0zi"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-callr" ,r-callr)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-magrittr" ,r-magrittr)))
+     (list r-callr r-jsonlite r-magrittr))
     (home-page "https://github.com/wch/webshot/")
     (synopsis "Take screenshots of web pages")
     (description
@@ -5735,24 +5781,24 @@ Markdown documents.")
 (define-public r-seriation
   (package
     (name "r-seriation")
-    (version "1.3.0")
+    (version "1.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "seriation" version))
        (sha256
         (base32
-         "1vl0zfdvxdccvda8lwkjhg5rivj2q5gjm4qvkqwny6asm06x80ny"))))
+         "08c37n3xxc4n4vbkw38k3l3hdlmck8drqpl6z274vkgi2sqv8qyf"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cluster" ,r-cluster)
-       ("r-colorspace" ,r-colorspace)
-       ("r-gclus" ,r-gclus)
-       ("r-mass" ,r-mass)
-       ("r-qap" ,r-qap)
-       ("r-registry" ,r-registry)
-       ("r-tsp" ,r-tsp)))
-    (native-inputs `(("gfortran" ,gfortran)))
+     (list r-cluster
+           r-colorspace
+           r-gclus
+           r-mass
+           r-qap
+           r-registry
+           r-tsp))
+    (native-inputs (list gfortran))
     (home-page "https://s2.smu.edu/IDA/seriation/")
     (synopsis "Infrastructure for ordering objects using seriation")
     (description
@@ -5767,13 +5813,13 @@ iVAT).")
 (define-public r-xfun
   (package
     (name "r-xfun")
-    (version "0.25")
+    (version "0.28")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "xfun" version))
        (sha256
-        (base32 "15xy6hpz35j3mn4gvllj5m6krh5d86l4rnlxazsqjlckr237qgg6"))))
+        (base32 "0civd050r94w2vwfx3xgz1w36wkwrkm5dscdv5kb3klbvqwy8nqb"))))
     (build-system r-build-system)
     ;; knitr itself depends on xfun
     #;
@@ -5799,8 +5845,7 @@ packages maintained by Yihui Xie.")
          "1x6qg19z4qih9lk3mvnmx0vailm1khp5lylw4hlwz6rssj3yw6m7"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)
-       ("r-rmarkdown" ,r-rmarkdown))) ; for vignettes
+     (list r-knitr r-rmarkdown)) ; for vignettes
     (home-page "https://github.com/patperry/r-utf8")
     (synopsis "Unicode text processing")
     (description
@@ -5843,11 +5888,9 @@ to variables on the left-hand side of the assignment.")
          "1c8v5lmap6iq4jpi7p3w05hsv2dq7rjg057pvnfyc5d1xmsqnkkz"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ellipsis" ,r-ellipsis)
-       ("r-glue" ,r-glue)
-       ("r-rlang" ,r-rlang)))
+     (list r-ellipsis r-glue r-rlang))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/r-lib/vctrs")
     (synopsis "Vector helpers")
     (description
@@ -5871,26 +5914,26 @@ to variables on the left-hand side of the assignment.")
 (define-public r-pillar
   (package
     (name "r-pillar")
-    (version "1.6.2")
+    (version "1.6.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pillar" version))
        (sha256
         (base32
-         "1666n7q95apfmk9nii090y23si5s07nhhw0gpzd24sagzw689lfs"))))
+         "17m13rzgwdddwa0n3gpmax6wmfaphbg71l13ffhw5vnxf6i94fh3"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cli" ,r-cli)
-       ("r-crayon" ,r-crayon)
-       ("r-ellipsis" ,r-ellipsis)
-       ("r-fansi" ,r-fansi)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-rlang" ,r-rlang)
-       ("r-utf8" ,r-utf8)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-cli
+           r-crayon
+           r-ellipsis
+           r-fansi
+           r-lifecycle
+           r-rlang
+           r-utf8
+           r-vctrs))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/r-lib/pillar")
     (synopsis "Coloured formatting for columns")
     (description
@@ -5921,14 +5964,14 @@ packages that work with genomic data.")
 (define-public r-uuid
   (package
     (name "r-uuid")
-    (version "0.1-4")
+    (version "1.0-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "uuid" version))
        (sha256
         (base32
-         "0gm9ii7ncvllxbvyk6srsiinjmqyj7lmh84w43x4nhqpvafj9q4q"))))
+         "0il35jnci537r8zkinyiy5jp5q530p85ln6dswpj884zclrlcvj5"))))
     (build-system r-build-system)
     (home-page "https://www.rforge.net/uuid")
     (synopsis "Tools for generating and handling of UUIDs")
@@ -5940,17 +5983,17 @@ packages that work with genomic data.")
 (define-public r-tinytex
   (package
     (name "r-tinytex")
-    (version "0.33")
+    (version "0.35")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tinytex" version))
        (sha256
         (base32
-         "10lqn704dqv5k5v6y964l8c77rwy4ilrc1hcb99j4vxpx3p4nd43"))))
+         "04ng34kfds2isz4j9ch1xlii0dfclqay9fsc6wvr6sfifzv9fqyk"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-xfun" ,r-xfun)))
+     (list r-xfun))
     (home-page "https://github.com/yihui/tinytex")
     (synopsis "Helper functions for TeX Live and compiling LaTeX documents")
     (description
@@ -6009,9 +6052,7 @@ features:
          "19q563v5xfkbmr0ws9nhqx4wrxkf9jsck51rqc8mm2gq2h03lg7w"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-magrittr" ,r-magrittr)
-       ("r-statnet-common" ,r-statnet-common)
-       ("r-tibble" ,r-tibble)))
+     (list r-magrittr r-statnet-common r-tibble))
     (home-page "https://statnet.org/")
     (synopsis "Classes for relational data")
     (description
@@ -6033,7 +6074,7 @@ supports arbitrary vertex/edge/graph attributes.")
          "1nf1yg14cgxrs4np1yghpzw1nczaslfv3rvf3918wrlzg0vp6l7q"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/hofnerb/stabs")
     (synopsis "Stability selection with error control")
     (description
@@ -6082,7 +6123,7 @@ vectors.")
       `((upstream-name . "statnet.common")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-coda" ,r-coda)))
+     (list r-coda))
     (home-page "https://statnet.org")
     (synopsis "R scripts and utilities used by the Statnet software")
     (description "This package provides non-statistical utilities used by the
@@ -6102,9 +6143,7 @@ software developed by the Statnet Project.")
          "0ivybdcrymlsfv6pg6p5bv70qdvgxf2vgp0kf4r0pf2fcvav1mcp"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-plyr" ,r-plyr)
-       ("r-rmarkdown" ,r-rmarkdown)))
+     (list r-ggplot2 r-plyr r-rmarkdown))
     (home-page "https://cran.r-project.org/web/packages/statcheck/")
     (synopsis "Extract statistics from articles and recompute p-values")
     (description "This package can automatically extract statistical
@@ -6126,8 +6165,7 @@ detect possible inconsistencies.")
          "0ai0v4538d30m4wks5s3lch1yfmx1ml0nnrz7ihs097lv586a09s"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-network" ,r-network)
-       ("r-statnet-common" ,r-statnet-common)))
+     (list r-network r-statnet-common))
     (home-page "https://statnet.org")
     (synopsis "Tools for social network analysis")
     (description
@@ -6151,9 +6189,7 @@ generation, and 2D/3D network visualization.")
     (properties `((upstream-name . "TFisher")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-sn" ,r-sn)))
+     (list r-matrix r-mvtnorm r-sn))
     (home-page "https://cran.r-project.org/web/packages/TFisher/")
     (synopsis "Optimal thresholding Fisher's p-value combination method")
     (description
@@ -6180,9 +6216,7 @@ of these tests are also included.")
     (properties `((upstream-name . "TTR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-curl" ,r-curl)
-       ("r-xts" ,r-xts)
-       ("r-zoo" ,r-zoo)))
+     (list r-curl r-xts r-zoo))
     (home-page "https://github.com/joshuaulrich/TTR")
     (synopsis "Technical trading rules")
     (description
@@ -6202,7 +6236,7 @@ rules with R.")
         (base32
          "1dn3yl1p03n0iynd1vsdkrr0fhmvgrmfkv37y7n371765h83lz1x"))))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/leaps/")
     (synopsis "Regression subset selection")
     (description
@@ -6234,18 +6268,17 @@ provides some missing S-PLUS functionality in R.")
 (define-public r-ifultools
   (package
     (name "r-ifultools")
-    (version "2.0-22")
+    (version "2.0-23")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ifultools" version))
        (sha256
         (base32
-         "0f95vqc47dgssqngznk0rclr72ndbyxc7gdq2cmbksvq7qpn3gg1"))))
+         "16a7rbvlym3bnfm93ikr5kl0l86ppk0s41fva6idvcx765g3fqkk"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-splus2r" ,r-splus2r)))
+     (list r-mass r-splus2r))
     (home-page "https://cran.r-project.org/web/packages/ifultools/")
     (synopsis "Insightful research tools")
     (description "This package provides C code used by the wmtsa, fractal, and
@@ -6265,8 +6298,7 @@ sapa R packages.")
          "0kj681rd4c2lvqr926lb6f4qwp281x5274dg6vbk8pf5y7s0qlpc"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ifultools" ,r-ifultools)
-       ("r-splus2r" ,r-splus2r)))
+     (list r-ifultools r-splus2r))
     (home-page "https://cran.r-project.org/web/packages/sapa/")
     (synopsis "Spectral analysis for physical applications")
     (description "This package provides software for the book Spectral
@@ -6307,10 +6339,7 @@ Fisher's method), and Sidak correction.")
          "0dbcrncv06iqcbkky95dd7l32xq0hhbnkb0kj8wwzym1jf748h5a"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-curl" ,r-curl)
-       ("r-ttr" ,r-ttr)
-       ("r-xts" ,r-xts)
-       ("r-zoo" ,r-zoo)))
+     (list r-curl r-ttr r-xts r-zoo))
     (home-page "https://cran.r-project.org/web/packages/quantmod/")
     (synopsis "Quantitative financial modelling framework")
     (description "This package provides a quantitative financial modelling
@@ -6321,21 +6350,19 @@ financial trading strategies.")
 (define-public r-tseries
   (package
     (name "r-tseries")
-    (version "0.10-48")
+    (version "0.10-49")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tseries" version))
        (sha256
         (base32
-         "0wa4rcf0igayi1yrwc6wak6d491560p0z89rz32haqlkiiq25gak"))))
+         "1fhldj95d16cwygw8xg0kvr4xk569mpzprdvahlsf4hzykc2dgs5"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-quadprog" ,r-quadprog)
-       ("r-quantmod" ,r-quantmod)
-       ("r-zoo" ,r-zoo)))
+     (list r-quadprog r-quantmod r-zoo))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/tseries/")
     (synopsis "Time series analysis and computational finance")
     (description
@@ -6356,9 +6383,7 @@ computational finance.")
          "1q436krz5p1f4a7a7sya6a9rh9x9mi8zzcgq66gbk9w9w4hcqcj6"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ifultools" ,r-ifultools)
-       ("r-mass" ,r-mass)
-       ("r-splus2r" ,r-splus2r)))
+     (list r-ifultools r-mass r-splus2r))
     (home-page "https://cran.r-project.org/web/packages/wmtsa/")
     (synopsis "Wavelet methods for time series analysis")
     (description
@@ -6381,10 +6406,7 @@ University Press, 2000.")
     (properties `((upstream-name . "TSA")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-leaps" ,r-leaps)
-       ("r-locfit" ,r-locfit)
-       ("r-mgcv" ,r-mgcv)
-       ("r-tseries" ,r-tseries)))
+     (list r-leaps r-locfit r-mgcv r-tseries))
     (home-page "https://homepage.divms.uiowa.edu/~kchan/TSA.htm")
     (synopsis "Time series analysis")
     (description
@@ -6407,7 +6429,7 @@ Cryer and Kung-Sik Chan.")
     (properties `((upstream-name . "extraDistr")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (home-page "https://github.com/twolodzko/extraDistr")
     (synopsis "Additional univariate and multivariate distributions")
     (description
@@ -6429,12 +6451,12 @@ multivariate distributions.")
          "18lr9z0gslvfc3z8vyj3krqj3bfhg60zv1fzinrwwkc4cpk1w7mp"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ifultools" ,r-ifultools)
-       ("r-mass" ,r-mass)
-       ("r-sapa" ,r-sapa)
-       ("r-scatterplot3d" ,r-scatterplot3d)
-       ("r-splus2r" ,r-splus2r)
-       ("r-wmtsa" ,r-wmtsa)))
+     (list r-ifultools
+           r-mass
+           r-sapa
+           r-scatterplot3d
+           r-splus2r
+           r-wmtsa))
     (home-page "https://cran.r-project.org/web/packages/fractal/")
     (synopsis "Fractal time series modeling and analysis")
     (description
@@ -6454,8 +6476,8 @@ chaotic time series analysis.")
         (base32
          "1akaqwf3fvvvx4sgfn641fd4sj51s0701pvfl6s5hnz2k0iwh732"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-nlme" ,r-nlme)))
-    (native-inputs `(("gfortran" ,gfortran)))
+    (propagated-inputs (list r-nlme))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/urca/")
     (synopsis "Unit root and cointegration tests for time series data")
     (description
@@ -6476,9 +6498,9 @@ applied econometric analysis.")
          "0kk9lw3s66h0sayza3in8rdj7bmgqn4v5lfckhslarpvj2fxsnv0"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/bnaras/cubature")
     (synopsis "Adaptive multivariate integration over hypercubes")
     (description
@@ -6503,9 +6525,9 @@ interface.")
          "1mr5g5gaxiqj6x83ngcbwwh57vhrhcz0x9dh0rmvs9y2ivk29ccs"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-extradistr" ,r-extradistr)))
+     (list r-extradistr))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/trend/")
     (synopsis "Non-parametric trend tests and change-point detection")
     (description
@@ -6533,8 +6555,8 @@ sample Robust Rank-Order Distributional Test.")
         (base32
          "1p5dapwv8ycxaysgi6imnby04i4kh1c5a2czqa4wygz0s8pr2y9c"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-matrix" ,r-matrix)))
-    (native-inputs `(("gfortran" ,gfortran)))
+    (propagated-inputs (list r-matrix))
+    (native-inputs (list gfortran))
     (home-page "https://r-forge.r-project.org/projects/expm/")
     (synopsis "Tools for matrix exponentials and related quantities")
     (description
@@ -6555,8 +6577,7 @@ exponential, logarithm, square root, and related quantities.")
          "16w9v7d1ckavqmr86l34frr37pkvdn0iqnb17ssb8xaggns5lgqx"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-expm" ,r-expm)
-       ("r-matrix" ,r-matrix)))
+     (list r-expm r-matrix))
     (home-page "https://cran.r-project.org/web/packages/complexplus/")
     (synopsis "Functions of complex or real variables")
     (description
@@ -6599,10 +6620,7 @@ creation and manipulation of WAVE audio files.")
          "1a9kzn37cddwfdki5zjmzanxp75pccdjnsvqfrh84hhcsy51pcx3"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-boot" ,r-boot)
-       ("r-cubature" ,r-cubature)
-       ("r-quadprog" ,r-quadprog)
-       ("r-quantreg" ,r-quantreg)))
+     (list r-boot r-cubature r-quadprog r-quantreg))
     (home-page "https://github.com/JeffreyRacine/R-Package-np")
     (synopsis "Non-parametric kernel smoothing methods for mixed data types")
     (description "This package provides non-parametric (and semi-parametric)
@@ -6624,11 +6642,7 @@ ordered factor data types.")
          "0ayp6x34hkzgris4j3zbbs0r23n81bhww3wgfyy630ri4sk6brrn"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-complexplus" ,r-complexplus)
-       ("r-expm" ,r-expm)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-phontools" ,r-phontools)))
+     (list r-complexplus r-expm r-mass r-matrix r-phontools))
     (home-page "https://cran.r-project.org/web/packages/powerplus/")
     (synopsis "Exponentiation operations")
     (description
@@ -6650,9 +6664,7 @@ exponentiation.")
     (properties `((upstream-name . "egg")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-gtable" ,r-gtable)))
+     (list r-ggplot2 r-gridextra r-gtable))
     (home-page "https://cran.r-project.org/web/packages/egg")
     (synopsis "Extensions for ggplot2")
     (description
@@ -6676,9 +6688,9 @@ functions to enforce symmetric scales or add tags to facetted plots.")
          "0sfvizmmwfk1bjhn6zfx5a4qqfgj1ldg8x90b65crqibgfa36k2r"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-fastcluster" ,r-fastcluster)))
+     (list r-fastcluster))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/heatmap3/")
     (synopsis "Improved heatmap package")
     (description
@@ -6690,32 +6702,32 @@ powerful and convenient features.")
 (define-public r-heatmaply
   (package
     (name "r-heatmaply")
-    (version "1.2.1")
+    (version "1.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "heatmaply" version))
        (sha256
         (base32
-         "0hspfkninwy62sf8gkdcsvwnvl66bbnjs2dpah9rr95a3rsgdp9d"))))
+         "1w8yyzb68laxd4zxycvgmpqj5wnyidjgv1vbzbxndp9p92f2cp8a"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertthat" ,r-assertthat)
-       ("r-colorspace" ,r-colorspace)
-       ("r-dendextend" ,r-dendextend)
-       ("r-egg" ,r-egg)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-magrittr" ,r-magrittr)
-       ("r-plotly" ,r-plotly)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-reshape2" ,r-reshape2)
-       ("r-scales" ,r-scales)
-       ("r-seriation" ,r-seriation)
-       ("r-viridis" ,r-viridis)
-       ("r-webshot" ,r-webshot)))
+     (list r-assertthat
+           r-colorspace
+           r-dendextend
+           r-egg
+           r-ggplot2
+           r-htmlwidgets
+           r-magrittr
+           r-plotly
+           r-rcolorbrewer
+           r-reshape2
+           r-scales
+           r-seriation
+           r-viridis
+           r-webshot))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/package=heatmaply")
     (synopsis "Interactive cluster heat maps using plotly")
     (description
@@ -6743,12 +6755,11 @@ dendrograms.")
          "14p7i1sj24ky87kd7qr3n9fc9l64s0bp0rwbyl6i2x69xn75gpsx"))))
     (build-system r-build-system)
     (inputs
-     `(("zlib" ,zlib)
-       ("hdf5" ,hdf5)))
+     (list zlib hdf5))
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (home-page "https://github.com/mannau/h5")
     (synopsis "Interface to the HDF5 Library")
     (description
@@ -6773,9 +6784,7 @@ fit into memory.")
          "07yc819hkabpzzh0g0cbqza6bcfy67b2marrzz1lj97f9iba78ja"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-httr" ,r-httr)
-       ("r-r-methodss3" ,r-r-methodss3)
-       ("r-r-oo" ,r-r-oo)))
+     (list r-httr r-r-methodss3 r-r-oo))
     (home-page "https://github.com/cBioPortal/cgdsr")
     (synopsis "R-based API for accessing the MSKCC Cancer Genomics Data Server")
     (description
@@ -6797,7 +6806,7 @@ Memorial-Sloan-Kettering Cancer Center (MSKCC).")
          "018s0x224gqnv4cjfh0fwliyfg6ma9vslmwybrlizfsmqcc5wp37"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/smbache/import")
     (synopsis "Import mechanism for R")
     (description
@@ -6824,8 +6833,7 @@ files.")
     (properties `((upstream-name . "shinyAce")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-shiny" ,r-shiny)
-       ("r-jsonlite" ,r-jsonlite)))
+     (list r-shiny r-jsonlite))
     (home-page "https://cran.r-project.org/web/packages/shinyAce/")
     (synopsis "Ace editor bindings for Shiny")
     (description
@@ -6847,7 +6855,7 @@ environment within Shiny.")
     (properties `((upstream-name . "randomizr")))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://declaredesign.org/r/randomizr/")
     (synopsis "Tools for common forms of random assignment and sampling")
     (description
@@ -6868,7 +6876,7 @@ experimental designs and random samples for common sampling designs.")
          "0n1c2b68vza1dh7sk38v6biiwm72c4jpl79kpdg1bsb0hq9qy18x"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-backports" ,r-backports)))
+     (list r-backports))
     (home-page "https://github.com/mllg/base64url")
     (synopsis "Fast and URL-safe base64 encoder and decoder")
     (description
@@ -6885,14 +6893,14 @@ systems.")
 (define-public r-radiant-data
   (package
     (name "r-radiant-data")
-    (version "1.3.12")
+    (version "1.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "radiant.data" version))
        (sha256
         (base32
-         "08bqqrfvpgyf613ikihwfnzb23l23f5nfs7zynnxbjxc1zfhbpny"))
+         "12x4nz5n6yz1a67ji79pwvznp9flmn50hpp9y9sfhixir7dvwy27"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -6902,38 +6910,38 @@ systems.")
     (properties `((upstream-name . "radiant.data")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-broom" ,r-broom)
-       ("r-car" ,r-car)
-       ("r-curl" ,r-curl)
-       ("r-dplyr" ,r-dplyr)
-       ("r-dt" ,r-dt)
-       ("r-glue" ,r-glue)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-import" ,r-import)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-knitr" ,r-knitr)
-       ("r-lubridate" ,r-lubridate)
-       ("r-magrittr" ,r-magrittr)
-       ("r-markdown" ,r-markdown)
-       ("r-mass" ,r-mass)
-       ("r-patchwork" ,r-patchwork)
-       ("r-plotly" ,r-plotly)
-       ("r-psych" ,r-psych)
-       ("r-randomizr" ,r-randomizr)
-       ("r-readr" ,r-readr)
-       ("r-readxl" ,r-readxl)
-       ("r-rlang" ,r-rlang)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-scales" ,r-scales)
-       ("r-shiny" ,r-shiny)
-       ("r-shinyfiles" ,r-shinyfiles)
-       ("r-shinyace" ,r-shinyace)
-       ("r-stringi" ,r-stringi)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-writexl" ,r-writexl)))
+     (list r-base64enc
+           r-broom
+           r-car
+           r-curl
+           r-dplyr
+           r-dt
+           r-glue
+           r-ggplot2
+           r-import
+           r-jsonlite
+           r-knitr
+           r-lubridate
+           r-magrittr
+           r-markdown
+           r-mass
+           r-patchwork
+           r-plotly
+           r-psych
+           r-randomizr
+           r-readr
+           r-readxl
+           r-rlang
+           r-rmarkdown
+           r-rstudioapi
+           r-scales
+           r-shiny
+           r-shinyfiles
+           r-shinyace
+           r-stringi
+           r-tibble
+           r-tidyr
+           r-writexl))
     (home-page "https://github.com/radiant-rstats/radiant.data")
     (synopsis "Data menu for Radiant: business analytics using R and Shiny")
     (description
@@ -6965,6 +6973,26 @@ a candidate list, using several criteria.  The blocking can be done when whole
 and within plot factors interact.")
     (license license:gpl2+)))
 
+(define-public r-alluvial
+  (package
+    (name "r-alluvial")
+    (version "0.1-2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "alluvial" version))
+       (sha256
+        (base32 "039frwrsxq1lb97s7vf2vbyyadimkigs628ymym06fxka53drdkp"))))
+    (properties `((upstream-name . "alluvial")))
+    (build-system r-build-system)
+    (native-inputs (list r-knitr))
+    (home-page "https://github.com/mbojan/alluvial")
+    (synopsis "Create parallel sets plots (Alluvial Diagrams)")
+    (description
+     "This package creates alluvial diagrams (also known as parallel sets
+plots) for multivariate and time series-like data.")
+    (license license:expat)))
+
 (define-public r-signal
   (package
     (name "r-signal")
@@ -6977,8 +7005,8 @@ and within plot factors interact.")
         (base32
          "0qaf39vfmhn3d0bdjqd805ayfkaj48dkmf5dqd47bpk7dp21b837"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-mass" ,r-mass)))
-    (native-inputs `(("gfortran" ,gfortran)))
+    (propagated-inputs (list r-mass))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/signal/")
     (synopsis "Signal processing")
     (description
@@ -7000,7 +7028,7 @@ It also includes interpolation functions.")
         (base32
          "00j6b8b6xsx6v370h220x233rpk6asca78165y3d48jpwvwisdc9"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-proto" ,r-proto)))
+    (propagated-inputs (list r-proto))
     (home-page "https://code.google.com/archive/p/gsubfn/")
     (synopsis "Utilities for strings and function arguments.")
     (description
@@ -7027,11 +7055,7 @@ functions.")
          "0q12vsb53p2wchgp8wfz5bk08wfnm0jxjrakclj4jyy6x3a7ksff"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-chron" ,r-chron)
-       ("r-dbi" ,r-dbi)
-       ("r-gsubfn" ,r-gsubfn)
-       ("r-proto" ,r-proto)
-       ("r-rsqlite" ,r-rsqlite)))
+     (list r-chron r-dbi r-gsubfn r-proto r-rsqlite))
     (home-page "https://github.com/ggrothendieck/sqldf")
     (synopsis "Manipulate R data frames using SQL")
     (description
@@ -7105,21 +7129,21 @@ specific S3-method.")
     (properties `((upstream-name . "VIM")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-car" ,r-car)
-       ("r-colorspace" ,r-colorspace)
-       ("r-data-table" ,r-data-table)
-       ("r-e1071" ,r-e1071)
-       ("r-laeken" ,r-laeken)
-       ("r-magrittr" ,r-magrittr)
-       ("r-mass" ,r-mass)
-       ("r-nnet" ,r-nnet)
-       ("r-ranger" ,r-ranger)
-       ("r-rcpp" ,r-rcpp)
-       ("r-robustbase" ,r-robustbase)
-       ("r-sp" ,r-sp)
-       ("r-vcd" ,r-vcd)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-car
+           r-colorspace
+           r-data-table
+           r-e1071
+           r-laeken
+           r-magrittr
+           r-mass
+           r-nnet
+           r-ranger
+           r-rcpp
+           r-robustbase
+           r-sp
+           r-vcd))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/alexkowa/VIM")
     (synopsis "Visualization and imputation of missing values")
     (description
@@ -7169,7 +7193,7 @@ regression and information measures are implemented.")
          "0nqr1bvlr5bnasqg74zmknjjl4x28kla9h5cxpga3kq5z215pdci"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ttr" ,r-ttr)))
+     (list r-ttr))
     (home-page "https://cran.r-project.org/web/packages/smoother")
     (synopsis "Functions relating to the smoothing of numerical data")
     (description
@@ -7192,9 +7216,9 @@ are included.")
          "04ap1dsa7fx03l73jhv1ql3adaaaz2100qawdplxa9xmrllgcgbj"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcolorbrewer" ,r-rcolorbrewer)))
+     (list r-rcolorbrewer))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://logfc.wordpress.com")
     (synopsis "Sankey or ribbon plots")
     (description
@@ -7218,7 +7242,7 @@ plots for R.")
          "16fqv9k7yxdgybwzafjkyqm16qpgqz13lcjpi6a1nc8xbzlzh0gb"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-zoo" ,r-zoo)))
+     (list r-zoo))
     (home-page "https://cran.r-project.org/web/packages/dyn")
     (synopsis "Time series regression")
     (description
@@ -7245,7 +7269,7 @@ contain lags, diffs and missing values.")
          "0fyhl69z2lznymvpzxra9qvcg85ggzkfjy68c6mzdmf1ja44d2k5"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/catdap/")
     (synopsis "Tools for categorical data analysis")
     (description
@@ -7258,17 +7282,17 @@ evaluated by the @dfn{Akaike Information Criterion} (AIC).")
 (define-public r-arules
   (package
     (name "r-arules")
-    (version "1.6-8")
+    (version "1.7-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "arules" version))
        (sha256
         (base32
-         "1gy6wrys1qqik65dyr325hdbfmd3fx9a2lzdnrr29g751hprjx2l"))))
+         "0zzwr1mg92ha5l6razdb04da8ik3z3k74rm0rah44l1j2a6d30sk"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)))
+     (list r-generics r-matrix))
     (home-page "https://github.com/mhahsler/arules")
     (synopsis "Mining association rules and frequent itemsets")
     (description
@@ -7291,7 +7315,7 @@ and Eclat.")
          "05l6f1n3dsm383w7jfg3j38klvmzzfvc7qi9zr5ij13rljj8s1vb"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rematch2" ,r-rematch2)))
+     (list r-rematch2))
     (home-page "https://github.com/gaborcsardi/parsedate")
     (synopsis
      "Recognize and parse dates in various formats")
@@ -7337,11 +7361,7 @@ goodness-of-fit.")
          "0ngzaaz2y2s03fhngvwipmy4kq38xrmyddaz6a6l858rxvadrlhb"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abc-data" ,r-abc-data)
-       ("r-locfit" ,r-locfit)
-       ("r-mass" ,r-mass)
-       ("r-nnet" ,r-nnet)
-       ("r-quantreg" ,r-quantreg)))
+     (list r-abc-data r-locfit r-mass r-nnet r-quantreg))
     (home-page "https://cran.r-project.org/web/packages/abc/")
     (synopsis "Tools for Approximate Bayesian Computation (ABC)")
     (description
@@ -7385,11 +7405,9 @@ additional external tools on any platform.")
          "0vn8ifxb7ccip6b1ijf5lpa6c0n5y5ll8fbabybsb8nfc0y1nmxg"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-stringi" ,r-stringi)
-       ("r-zip" ,r-zip)))
+     (list r-rcpp r-stringi r-zip))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/awalker89/openxlsx")
     (synopsis "Read, write and edit XLSX files")
     (description
@@ -7403,25 +7421,25 @@ dependency on Java.")
 (define-public r-rio
   (package
     (name "r-rio")
-    (version "0.5.27")
+    (version "0.5.29")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rio" version))
        (sha256
         (base32
-         "02nxwg1d2m1h09a6ismhcp71gmq1c8rhbbl98if2v7xsvdn63sz0"))))
+         "04jlrhyl0791yxwcpp1s8p1hhkljnijlc5iaxpk56h41w63k39lz"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-curl" ,r-curl)
-       ("r-data-table" ,r-data-table)
-       ("r-foreign" ,r-foreign)
-       ("r-haven" ,r-haven)
-       ("r-openxlsx" ,r-openxlsx)
-       ("r-readxl" ,r-readxl)
-       ("r-tibble" ,r-tibble)))
+     (list r-curl
+           r-data-table
+           r-foreign
+           r-haven
+           r-openxlsx
+           r-readxl
+           r-tibble))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/leeper/rio")
     (synopsis "Swiss-army knife for data I/O")
     (description
@@ -7439,19 +7457,17 @@ simple method for converting between file types.")
 (define-public r-maptools
   (package
     (name "r-maptools")
-    (version "1.1-1")
+    (version "1.1-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "maptools" version))
        (sha256
         (base32
-         "0pn4gwh2rl6pfh2vbc7ln86kzlg22cfpd02z95j7zpjidz2mva8l"))))
+         "0fa4a43zax8gn3jdp4ngqav61x4g6l33bg9wzqbngkbjhipck59r"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-foreign" ,r-foreign)
-       ("r-lattice" ,r-lattice)
-       ("r-sp" ,r-sp)))
+     (list r-foreign r-lattice r-sp))
     (home-page "https://r-forge.r-project.org/projects/maptools/")
     (synopsis "Tools for reading and handling spatial objects")
     (description
@@ -7477,10 +7493,9 @@ exchanging spatial objects with other R packages.")
          "0acqg29hcm2iq1418b54np7zb5pnr3xzrwc3ijv2pz9wra10ix88"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-rlang" ,r-rlang)))
+     (list r-rcpp r-rlang))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/r-lib/later")
     (synopsis "Utilities for delaying function execution")
     (description
@@ -7501,13 +7516,9 @@ time after the current time, after the R execution stack has emptied.")
          "1dy4cbqw17awh4q8m7cy3anaj0n9iynabfzflb1g94cyj0bq4fld"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-later" ,r-later)
-       ("r-magrittr" ,r-magrittr)
-       ("r-r6" ,r-r6)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rlang" ,r-rlang)))
+     (list r-later r-magrittr r-r6 r-rcpp r-rlang))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://rstudio.github.io/promises")
     (synopsis "Abstractions for promise-based asynchronous programming")
     (description
@@ -7532,9 +7543,7 @@ promises, but with a syntax that is idiomatic R.")
     (properties `((upstream-name . "doSNOW")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-foreach" ,r-foreach)
-       ("r-iterators" ,r-iterators)
-       ("r-snow" ,r-snow)))
+     (list r-foreach r-iterators r-snow))
     (home-page "https://cran.r-project.org/web/packages/doSNOW")
     (synopsis "Foreach parallel adaptor for the snow package")
     (description
@@ -7555,7 +7564,7 @@ using the @code{snow} package.")
          "0vwclzxww8mw9nnpyj29bn71mrr8jjg7ka03979h9rbzw6d9bjrr"))))
     (properties `((upstream-name . "fst")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (propagated-inputs (list r-rcpp))
     (home-page "http://www.fstpackage.org")
     (synopsis "Fast serialization of data frames")
     (description
@@ -7578,7 +7587,7 @@ compression with the LZ4 and ZSTD compressors.")
              (base32 "13941rlw1jsdjsndp1plzj1cq5aqravizkrqn6l25r9im7rnsi2w"))))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-snow" ,r-snow)))
+    (list r-snow))
    (home-page "https://cran.r-project.org/web/packages/snowfall/")
    (synopsis "Easier cluster computing")
    (description "This package is a usability wrapper around snow for easier
@@ -7636,9 +7645,7 @@ it.")
                                        (string-append "--outfile=" target)))
                              sources targets)))))))))
     (propagated-inputs
-     `(("r-igraph" ,r-igraph)
-       ("r-servr" ,r-servr)
-       ("r-xml" ,r-xml)))
+     (list r-igraph r-servr r-xml))
     (native-inputs
      `(("r-knitr" ,r-knitr)
        ("esbuild" ,esbuild)
@@ -7691,10 +7698,9 @@ JavaScript library) and interact with the igraph package.")
     (properties `((upstream-name . "data.tree")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-r6" ,r-r6)
-       ("r-stringi" ,r-stringi)))
+     (list r-r6 r-stringi))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/gluc/data.tree")
     (synopsis "General purpose hierarchical data structure")
     (description
@@ -7718,18 +7724,18 @@ finance, conversion from and to JSON, and many other applications.")
     (properties `((upstream-name . "dtplyr")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-crayon" ,r-crayon)
-       ("r-data-table" ,r-data-table)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ellipsis" ,r-ellipsis)
-       ("r-glue" ,r-glue)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyselect" ,r-tidyselect)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-crayon
+           r-data-table
+           r-dplyr
+           r-ellipsis
+           r-glue
+           r-lifecycle
+           r-rlang
+           r-tibble
+           r-tidyselect
+           r-vctrs))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/tidyverse/dtplyr")
     (synopsis "Data Table back-end for dplyr")
     (description
@@ -7771,8 +7777,7 @@ automatically translated to the equivalent, but usually much faster,
                  (invoke "esbuild" source "--minify"
                          (string-append "--outfile=" target)))))))))
     (propagated-inputs
-     `(("r-data-tree" ,r-data-tree)
-       ("r-htmlwidgets" ,r-htmlwidgets)))
+     (list r-data-tree r-htmlwidgets))
     (native-inputs
      `(("esbuild" ,esbuild)
        ("d3.v4.js"
@@ -7814,26 +7819,26 @@ Python's @url{https://github.com/ActiveState/appdirs,Appdirs} to R.")
 (define-public r-rastervis
   (package
     (name "r-rastervis")
-    (version "0.50.3")
+    (version "0.51.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rasterVis" version))
        (sha256
         (base32
-         "10njks2kwyh5rp2b6sf2hffxzzwwhskb8m98l73p8yrvsdri1gyj"))))
+         "1mg11njzajx9az6xjghjl2sna6wzs85ga8fhy9w43l2n8icsfbr2"))))
     (properties `((upstream-name . "rasterVis")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-hexbin" ,r-hexbin)
-       ("r-lattice" ,r-lattice)
-       ("r-latticeextra" ,r-latticeextra)
-       ("r-raster" ,r-raster)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-sp" ,r-sp)
-       ("r-terra" ,r-terra)
-       ("r-viridislite" ,r-viridislite)
-       ("r-zoo" ,r-zoo)))
+     (list r-hexbin
+           r-lattice
+           r-latticeextra
+           r-raster
+           r-rcolorbrewer
+           r-sp
+           r-terra
+           r-viridislite
+           r-zoo))
     (home-page "https://oscarperpinan.github.io/rastervis/")
     (synopsis "Visualization methods for raster data")
     (description
@@ -7857,11 +7862,9 @@ provides methods to display spatiotemporal rasters, and vector fields.")
     (properties `((upstream-name . "rentrez")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-httr" ,r-httr)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-xml" ,r-xml)))
+     (list r-httr r-jsonlite r-xml))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://docs.ropensci.org/rentrez/")
     (synopsis "Entrez in R")
     (description
@@ -7884,7 +7887,7 @@ those searches and pull data into their R sessions.")
     (properties `((upstream-name . "renv")))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://rstudio.github.io/renv")
     (synopsis "Project environments")
     (description
@@ -7908,20 +7911,20 @@ reproducible.")
          "08xwmms6x58y3dsfbl9c6d03145hb4ij97nqr1cc9dxxilmr6x31"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-checkmate" ,r-checkmate)
-       ("r-ellipsis" ,r-ellipsis)
-       ("r-evaluate" ,r-evaluate)
-       ("r-htmltools" ,r-htmltools)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-knitr" ,r-knitr)
-       ("r-markdown" ,r-markdown)
-       ("r-rappdirs" ,r-rappdirs)
-       ("r-renv" ,r-renv)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-rprojroot" ,r-rprojroot)
-       ("r-shiny" ,r-shiny)
-       ("r-withr" ,r-withr)))
+     (list r-checkmate
+           r-ellipsis
+           r-evaluate
+           r-htmltools
+           r-htmlwidgets
+           r-jsonlite
+           r-knitr
+           r-markdown
+           r-rappdirs
+           r-renv
+           r-rmarkdown
+           r-rprojroot
+           r-shiny
+           r-withr))
     (home-page "https://rstudio.github.io/learnr/")
     (synopsis "Interactive tutorials for R")
     (description
@@ -7943,18 +7946,18 @@ quizzes to create self-paced tutorials for learning about R and R packages.")
          "0js3c8lwj3knccb55nq03cbjlf4w390p9aid2mi5x80l3ayd9in1"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-car" ,r-car)
-       ("r-cluster" ,r-cluster)
-       ("r-fractal" ,r-fractal)
-       ("r-lmtest" ,r-lmtest)
-       ("r-mass" ,r-mass)
-       ("r-np" ,r-np)
-       ("r-powerplus" ,r-powerplus)
-       ("r-robust" ,r-robust)
-       ("r-trend" ,r-trend)
-       ("r-tsa" ,r-tsa)
-       ("r-urca" ,r-urca)
-       ("r-vim" ,r-vim)))
+     (list r-car
+           r-cluster
+           r-fractal
+           r-lmtest
+           r-mass
+           r-np
+           r-powerplus
+           r-robust
+           r-trend
+           r-tsa
+           r-urca
+           r-vim))
     (home-page "https://cran.r-project.org/web/packages/analytics/")
     (synopsis "Collection of data analysis tools")
     (description
@@ -7965,28 +7968,51 @@ weak stationarity, column means by group, weighted biplots, and a heuristic to
 obtain a better initial configuration in non-metric MDS.")
     (license license:gpl2)))
 
+(define-public r-here
+  (package
+    (name "r-here")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "here" version))
+       (sha256
+        (base32 "0srlr8h8qmr0wrmp7gs4g2ry5dni2hx8n947bik3s3a26f091v88"))))
+    (properties `((upstream-name . "here")))
+    (build-system r-build-system)
+    (propagated-inputs (list r-rprojroot))
+    (native-inputs (list r-knitr))
+    (home-page "https://here.r-lib.org/")
+    (synopsis "Simpler way to find files")
+    (description
+     "This package lets you construct paths to your project's files.  Use the
+@code{here} function as a drop-in replacement for @code{file.path}, it will
+always locate the files relative to your project root.")
+    (license license:expat)))
+
 (define-public r-reticulate
   (package
     (name "r-reticulate")
-    (version "1.20")
+    (version "1.22")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "reticulate" version))
        (sha256
         (base32
-         "0ay8cb0d3lj702aw338lkc7sxj9j05izji3waww1z0lph16406bh"))))
+         "0v7m2pv94lfqiw8rhz3c9g66vvz4qvih4vd29rhfk2phmcwpnvmh"))))
     (build-system r-build-system)
-    (inputs `(("python" ,python)))
+    (inputs (list python))
     (propagated-inputs
-     `(("r-rappdirs" ,r-rappdirs)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-matrix" ,r-matrix)
-       ("r-png" ,r-png)
-       ("r-rcpp" ,r-rcpp)
-       ("r-withr" ,r-withr)))
+     (list r-here
+           r-jsonlite
+           r-matrix
+           r-png
+           r-rappdirs
+           r-rcpp
+           r-withr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/rstudio/reticulate")
     (synopsis "R interface to Python")
     (description
@@ -8008,7 +8034,7 @@ Python to R they are converted back to R types.")
         (base32
          "0vdwx6808r73pk15263f33bkqbfmb08d8jkmr4d7h4ml414ikbbv"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-stringr" ,r-stringr)))
+    (propagated-inputs (list r-stringr))
     (home-page "https://github.com/romainfrancois/bibtex")
     (synopsis "Bibtex parser")
     (description "This package provides a utility for R to parse a bibtex
@@ -8027,7 +8053,7 @@ file.")
         (base32
          "13q6kcpxrqxqbji889fx63p0nsi08lk5yymkchig75r5k1d18ky1"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-ggplot2" ,r-ggplot2)))
+    (propagated-inputs (list r-ggplot2))
     (home-page "https://github.com/omarwagih/ggseqlogo")
     (synopsis "ggplot2 extension for drawing genetic sequence logos")
     (description
@@ -8052,8 +8078,7 @@ Sequence logos can easily be combined with other ggplot2 plots.")
          "0g73x6grbka7ahjh6z23m3wrcifp5rdfdiasbl8lq4sp6rplxwaa"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-scales" ,r-scales)))
+     (list r-ggplot2 r-scales))
     (home-page "https://nanx.me/ggsci/")
     (synopsis "Scientific journal and sci-fi themed color palettes for ggplot2")
     (description
@@ -8065,19 +8090,19 @@ movies, and TV shows.")
 (define-public r-ggsignif
   (package
     (name "r-ggsignif")
-    (version "0.6.2")
+    (version "0.6.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggsignif" version))
        (sha256
         (base32
-         "18rz3dz6i8d3pznd8war01ja1fhy7f4xs7ihwszf73z44w8jkas1"))))
+         "1ad774c7s7y4i00xd89lfigr9aybl94q98ch598k3rchanr4b1fa"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)))
+     (list r-ggplot2))
     (home-page "https://github.com/const-ae/ggsignif")
     (synopsis "Significance brackets for ggplot2")
     (description
@@ -8103,17 +8128,17 @@ and adds the annotation to the plot.")
     (properties `((upstream-name . "rstatix")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-broom" ,r-broom)
-       ("r-car" ,r-car)
-       ("r-corrplot" ,r-corrplot)
-       ("r-dplyr" ,r-dplyr)
-       ("r-generics" ,r-generics)
-       ("r-magrittr" ,r-magrittr)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-tidyselect" ,r-tidyselect)))
+     (list r-broom
+           r-car
+           r-corrplot
+           r-dplyr
+           r-generics
+           r-magrittr
+           r-purrr
+           r-rlang
+           r-tibble
+           r-tidyr
+           r-tidyselect))
     (home-page "https://rpkgs.datanovia.com/rstatix/")
     (synopsis "Pipe-friendly framework for basic statistical tests")
     (description
@@ -8139,22 +8164,22 @@ matrix.")
          "0x86lmghr25k8w90yrp360dn42dhp5cjvjpdiv2s2gxfn701xcmb"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cowplot" ,r-cowplot)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-ggsci" ,r-ggsci)
-       ("r-ggsignif" ,r-ggsignif)
-       ("r-glue" ,r-glue)
-       ("r-gridextra" ,r-gridextra)
-       ("r-magrittr" ,r-magrittr)
-       ("r-polynom" ,r-polynom)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)
-       ("r-rstatix" ,r-rstatix)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-cowplot
+           r-dplyr
+           r-ggplot2
+           r-ggrepel
+           r-ggsci
+           r-ggsignif
+           r-glue
+           r-gridextra
+           r-magrittr
+           r-polynom
+           r-purrr
+           r-rlang
+           r-scales
+           r-rstatix
+           r-tibble
+           r-tidyr))
     (home-page "http://www.sthda.com/english/rpkgs/ggpubr")
     (synopsis "ggplot2-based publication-ready plots")
     (description
@@ -8201,7 +8226,7 @@ Analysis and its Applications.")
          "0l4lpz451ll7f7lfxmb7ds24ppzhfg1c3ypvydglcc35p2dq99s8"))))
     (properties `((upstream-name . "flashClust")))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/flashClust/")
     (synopsis "Implementation of optimal hierarchical clustering")
     (description
@@ -8223,19 +8248,19 @@ clustering.")
     (properties `((upstream-name . "FactoMineR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-car" ,r-car)
-       ("r-cluster" ,r-cluster)
-       ("r-dt" ,r-dt)
-       ("r-ellipse" ,r-ellipse)
-       ("r-flashclust" ,r-flashclust)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-lattice" ,r-lattice)
-       ("r-leaps" ,r-leaps)
-       ("r-mass" ,r-mass)
-       ("r-scatterplot3d" ,r-scatterplot3d)))
+     (list r-car
+           r-cluster
+           r-dt
+           r-ellipse
+           r-flashclust
+           r-ggplot2
+           r-ggrepel
+           r-lattice
+           r-leaps
+           r-mass
+           r-scatterplot3d))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "http://factominer.free.fr")
     (synopsis "Multivariate exploratory data analysis and data mining")
     (description
@@ -8261,15 +8286,15 @@ structured in groups, etc. and hierarchical cluster analysis.")
          "1allvdjhd3pq8xz30b1cymwcik5iaahghrjrlnn54cwkfhfg0kv2"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-cluster" ,r-cluster)
-       ("r-dendextend" ,r-dendextend)
-       ("r-factominer" ,r-factominer)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggpubr" ,r-ggpubr)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-reshape2" ,r-reshape2)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-abind
+           r-cluster
+           r-dendextend
+           r-factominer
+           r-ggplot2
+           r-ggpubr
+           r-ggrepel
+           r-reshape2
+           r-tidyr))
     (home-page "http://www.sthda.com/english/rpkgs/factoextra")
     (synopsis "Extract and visualize the results of multivariate data analyses")
     (description
@@ -8296,7 +8321,7 @@ steps and provides ggplot2-based elegant data visualization.")
          "0kx5kjhr8dvqz1mq1zkijkgp29jv8b0irm1xplx1d74n2v1zh6wx"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr))) ; for vignettes
+     (list r-knitr)) ; for vignettes
     (home-page "https://github.com/brodieG/fansi")
     (synopsis "ANSI control sequence aware string functions")
     (description
@@ -8328,23 +8353,21 @@ results to the user.")
 (define-public r-hdf5r
   (package
     (name "r-hdf5r")
-    (version "1.3.3")
+    (version "1.3.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "hdf5r" version))
        (sha256
         (base32
-         "0i8m4yjxggrs05slq2afvz2ckl1yc9wq7gd1s7dq2gjn46zkry50"))))
+         "0bv2q4ir73sbk5ra2q4mc8wbcmiwkws8k0mjlnx9ysi2mdrm3dw7"))))
     (build-system r-build-system)
     (inputs
-     `(("hdf5" ,hdf5)
-       ("zlib" ,zlib)))
+     (list hdf5 zlib))
     (propagated-inputs
-     `(("r-bit64" ,r-bit64)
-       ("r-r6" ,r-r6)))
+     (list r-bit64 r-r6))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://hhoeflin.github.io/hdf5r")
     (synopsis "Interface to the HDF5 binary data format")
     (description
@@ -8368,7 +8391,7 @@ corresponding R counterparts.")
          "1ls5biiva10pb1dj3ph4griykb9vam02hkrdmlr5a5wf660hg6xn"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-iterators" ,r-iterators)))
+     (list r-iterators))
     (home-page "https://cran.r-project.org/web/packages/itertools/")
     (synopsis "Iterator tools")
     (description
@@ -8420,21 +8443,21 @@ functions.")
 (define-public r-rjags
   (package
     (name "r-rjags")
-    (version "4-10")
+    (version "4-12")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rjags" version))
        (sha256
         (base32
-         "1nhaim84ww8fd6m8xlpmngqcnp2qpql29ahc38366fxja3ghngmx"))))
+         "041y4zfr50y96g0kl857jcba0a3gpdpk8qfn9fj8zxzbz71k87xr"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-coda" ,r-coda)))
+     (list r-coda))
     (inputs
-     `(("jags" ,jags)))
+     (list jags))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://mcmc-jags.sourceforge.net")
     (synopsis "Bayesian graphical models using MCMC")
     (description
@@ -8446,14 +8469,14 @@ hierarchical models using Markov Chain Monte Carlo (MCMC) simulation.")
 (define-public r-rbibutils
   (package
     (name "r-rbibutils")
-    (version "2.2.3")
+    (version "2.2.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rbibutils" version))
        (sha256
         (base32
-         "1rzc2icik26qlnrbq58c24lc9m0grl83p0hyr70whallqfipa174"))))
+         "15yyihk0dgz3yyqz28r5nc6m99zcywpabnabf18phbs7rb87p7mv"))))
     (properties `((upstream-name . "rbibutils")))
     (build-system r-build-system)
     (home-page "https://geobosh.github.io/rbibutils/")
@@ -8479,7 +8502,7 @@ implemented in bibutils.")
     (properties `((upstream-name . "Rdpack")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rbibutils" ,r-rbibutils)))
+     (list r-rbibutils))
     (home-page "https://github.com/GeoBosh/Rdpack")
     (synopsis "Update and manipulate Rd documentation objects")
     (description
@@ -8494,22 +8517,19 @@ references and Rd files.")
 (define-public r-officer
   (package
     (name "r-officer")
-    (version "0.3.19")
+    (version "0.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "officer" version))
        (sha256
         (base32
-         "06g2a6p0ik17fm5jlbl64kwg6jqm8hd52sfg6z87ni0c1yllzg7i"))))
+         "1gfx299zr4q2264q37994pirv5bd5isn1cszccz603ij3q40wajr"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-r6" ,r-r6)
-       ("r-uuid" ,r-uuid)
-       ("r-xml2" ,r-xml2)
-       ("r-zip" ,r-zip)))
+     (list r-r6 r-uuid r-xml2 r-zip))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://davidgohel.github.io/officer")
     (synopsis "Manipulation of Word and PowerPoint documents")
     (description
@@ -8560,7 +8580,7 @@ on the methods that are implemented can be found in Kosmidis (2008)
     (properties `((upstream-name . "brglm")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-profilemodel" ,r-profilemodel)))
+     (list r-profilemodel))
     (home-page "https://github.com/ikosmidis/brglm")
     (synopsis "Bias reduction in binomial-response generalized linear models")
     (description
@@ -8580,14 +8600,14 @@ reduced-bias estimates.")
 (define-public r-entropy
   (package
     (name "r-entropy")
-    (version "1.3.0")
+    (version "1.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "entropy" version))
        (sha256
         (base32
-         "0fhhsy8ci9c73xwr2b167dfix0b7kqsk6kf46qqv1lmvbv11vxqa"))))
+         "1f0j8jsn6pzf4gi5g0akixx6x5vc69ci5f4m2vnwp40frvsqjnkg"))))
     (properties `((upstream-name . "entropy")))
     (build-system r-build-system)
     (home-page "https://www.strimmerlab.org/software/entropy/")
@@ -8636,11 +8656,7 @@ or missing responses.")
     (properties `((upstream-name . "ACDm")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-plyr" ,r-plyr)
-       ("r-rsolnp" ,r-rsolnp)
-       ("r-zoo" ,r-zoo)))
+     (list r-dplyr r-ggplot2 r-plyr r-rsolnp r-zoo))
     (home-page "https://cran.r-project.org/web/packages/ACDm/")
     (synopsis "Tools for Autoregressive Conditional Duration Models")
     (description
@@ -8684,8 +8700,7 @@ intervals.")
          "1ky1x2cp5rd0ffd9m1fji9sq4z4jsrpxzg30brw8bb4ihfjj114r"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-stringi" ,r-stringi)
-       ("r-stringr" ,r-stringr)))
+     (list r-stringi r-stringr))
     (home-page "https://github.com/Tazinho/snakecase")
     (synopsis "Convert strings into any case")
     (description
@@ -8706,7 +8721,7 @@ parse and convert strings into cases like snake or camel among others.")
          "0awlq5lxfia6m2b91w73rksp93rbwv5gwqb36wbji4rgq41rzbrx"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)))
+     (list r-data-table))
     (home-page "https://github.com/leeper/prediction")
     (synopsis "Tidy, type-safe prediction methods")
     (description
@@ -8720,17 +8735,17 @@ other add-on packages.")
 (define-public r-insight
   (package
     (name "r-insight")
-    (version "0.14.3")
+    (version "0.14.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "insight" version))
        (sha256
         (base32
-         "1fynidv11wmh51ybwzqj3c206slfwdz8a53qr57lcxwrg7zjn94q"))))
+         "10kc72g2hfsiipba4kalda1wxsb01nq2ax2yim386bkk0vjszwfx"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://easystats.github.io/insight/")
     (synopsis "Easy access to model information for various model objects")
     (description
@@ -8758,9 +8773,9 @@ information are missing.")
          "17gskxr43rgbg7syla3b78g2qgksq2kj07iad4139xycqxblxya0"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-insight" ,r-insight)))
+     (list r-insight))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/strengejacke/sjlabelled")
     (synopsis "Labelled data utility functions")
     (description
@@ -8784,15 +8799,15 @@ vice versa), or to deal with multiple declared missing values.")
          "17hcjb2j690qi2zrkwc14sr1wsid6dy6v7bfsf0bc94ql812k8g2"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-insight" ,r-insight)
-       ("r-magrittr" ,r-magrittr)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-sjlabelled" ,r-sjlabelled)
-       ("r-tidyselect" ,r-tidyselect)))
+     (list r-dplyr
+           r-insight
+           r-magrittr
+           r-purrr
+           r-rlang
+           r-sjlabelled
+           r-tidyselect))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/strengejacke/sjmisc")
     (synopsis "Data and variable transformation functions")
     (description
@@ -8836,14 +8851,14 @@ hypothesis of normality.")
     (properties `((upstream-name . "moonBook")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-magrittr" ,r-magrittr)
-       ("r-nortest" ,r-nortest)
-       ("r-sjmisc" ,r-sjmisc)
-       ("r-stringr" ,r-stringr)
-       ("r-survival" ,r-survival)
-       ("r-ztable" ,r-ztable)))
+     (list r-magrittr
+           r-nortest
+           r-sjmisc
+           r-stringr
+           r-survival
+           r-ztable))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/cardiomoon/moonBook")
     (synopsis "Functions and datasets for the book by Keon-Woong Moon")
     (description
@@ -8856,28 +8871,28 @@ functions.")
 (define-public r-flextable
   (package
     (name "r-flextable")
-    (version "0.6.7")
+    (version "0.6.10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "flextable" version))
        (sha256
         (base32
-         "0yj9d84h4387vib988qqjzvknsdy4j8h7dd13ki7gqs443hzlnrd"))))
+         "01nm0357b0z4dgrplbq9ms63j51n0rgvvxyy068zdsc5p7j3lql2"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-data-table" ,r-data-table)
-       ("r-gdtools" ,r-gdtools)
-       ("r-htmltools" ,r-htmltools)
-       ("r-knitr" ,r-knitr)
-       ("r-officer" ,r-officer)
-       ("r-rlang" ,r-rlang)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-uuid" ,r-uuid)
-       ("r-xml2" ,r-xml2)))
+     (list r-base64enc
+           r-data-table
+           r-gdtools
+           r-htmltools
+           r-knitr
+           r-officer
+           r-rlang
+           r-rmarkdown
+           r-uuid
+           r-xml2))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://davidgohel.github.io/flextable")
     (synopsis "Functions for tabular reporting")
     (description
@@ -8900,7 +8915,7 @@ documents.")
         (base32
          "0mfzyn8n5x5x5gf382bqgq61zpw9dymrp5kzdm2sbszplmxf6xry"))))
     (build-system r-build-system)
-    (inputs `(("zlib" ,zlib)))
+    (inputs (list zlib))
     (home-page "https://github.com/ropensci/writexl")
     (synopsis "Export data frames to xlsx format")
     (description
@@ -8945,10 +8960,7 @@ distribution).")
     (properties `((upstream-name . "GOplot")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggdendro" ,r-ggdendro)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)))
+     (list r-ggdendro r-ggplot2 r-gridextra r-rcolorbrewer))
     (home-page "https://github.com/wencke/wencke.github.io")
     (synopsis "Visualization of functional analysis data")
     (description
@@ -9008,22 +9020,20 @@ matches version and feature constraints.")
 (define-public r-argparse
   (package
     (name "r-argparse")
-    (version "2.0.4")
+    (version "2.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "argparse" version))
        (sha256
         (base32
-         "1sgrr6acvfjbhksj45v6d5m5n5pp12kypcxisgbshlr9jdkmasd7"))))
+         "1cz5qlxw3v8smd5vb00wlzy02mx5i0infm5hnq55hnakffd3b5wr"))))
     (build-system r-build-system)
-    (inputs `(("python" ,python)))
+    (inputs (list python))
     (propagated-inputs
-     `(("r-findpython" ,r-findpython)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-r6" ,r-r6)))
+     (list r-findpython r-jsonlite r-r6))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/trevorld/argparse")
     (synopsis "Command line optional and positional argument parser")
     (description
@@ -9065,7 +9075,7 @@ vectors.")
         (base32
          "165axs15fvwhrp89xd87l81q3h2qjll1vrwcsap645cwvb85nwsh"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-psych" ,r-psych)))
+    (propagated-inputs (list r-psych))
     (home-page "https://cran.r-project.org/web/packages/orddom/")
     (synopsis "Ordinal dominance statistics")
     (description
@@ -9115,19 +9125,19 @@ the work.")
     (properties `((upstream-name . "doBy")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-broom" ,r-broom)
-       ("r-curry" ,r-curry)
-       ("r-deriv" ,r-deriv)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-magrittr" ,r-magrittr)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-microbenchmark" ,r-microbenchmark)
-       ("r-pbkrtest" ,r-pbkrtest)
-       ("r-tibble" ,r-tibble)))
+     (list r-broom
+           r-curry
+           r-deriv
+           r-dplyr
+           r-ggplot2
+           r-magrittr
+           r-mass
+           r-matrix
+           r-microbenchmark
+           r-pbkrtest
+           r-tibble))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://people.math.aau.dk/~sorenh/software/doBy/")
     (synopsis "Groupwise statistics, LSmeans, linear contrasts, and utilities")
     (description
@@ -9155,9 +9165,7 @@ the work.")
     (properties `((upstream-name . "refGenome")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dbi" ,r-dbi)
-       ("r-doby" ,r-doby)
-       ("r-rsqlite" ,r-rsqlite)))
+     (list r-dbi r-doby r-rsqlite))
     (home-page "https://cran.r-project.org/web/packages/refGenome/")
     (synopsis
      "Gene and splice site annotation using annotation data from Ensembl and UCSC")
@@ -9202,7 +9210,7 @@ procedures to speed up calculations in R.")
          "1fcl3yc1cf09znqbj787d3fd2kl5rp63la7pxawsgmap7nxwkp65"))))
     (properties `((upstream-name . "BlockFeST")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-basix" ,r-basix)))
+    (propagated-inputs (list r-basix))
     (home-page "https://cran.r-project.org/web/packages/BlockFeST/")
     (synopsis "Bayesian calculation of region-specific fixation index")
     (description
@@ -9216,19 +9224,18 @@ containing one or more SNPs that evolved under directional selection.")
 (define-public r-proc
   (package
     (name "r-proc")
-    (version "1.17.0.1")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pROC" version))
        (sha256
         (base32
-         "1gd6a47d6bcfd237s3g7r9rws8x2sg7zrvq5k6clpc41zdpp4712"))))
+         "1abvbzdss12n64pp9vlgnn0q3abh0nj4n0a8cinwwvhphjrm9vym"))))
     (properties `((upstream-name . "pROC")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-plyr" ,r-plyr)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-plyr r-rcpp))
     (home-page "https://web.expasy.org/pROC/")
     (synopsis "Display and analyze ROC curves")
     (description
@@ -9241,17 +9248,17 @@ bootstrap.  Confidence intervals can be computed for (p)AUC or ROC curves.")
 (define-public r-rootsolve
   (package
     (name "r-rootsolve")
-    (version "1.8.2.2")
+    (version "1.8.2.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rootSolve" version))
        (sha256
         (base32
-         "1p7nh09g2815vqpvi6c5vvjshkwjn00nx5d3gdyjs304q5312q0a"))))
+         "182bb727sgqi5f3pzmw8jnn328wdjrgj9lfvg49gv8s22rjd3cxm"))))
     (properties `((upstream-name . "rootSolve")))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/rootSolve/")
     (synopsis "Tools for the analysis of ordinary differential equations")
     (description
@@ -9284,7 +9291,7 @@ differential equations} (ODE).  It includes routines that:
         (base32 "0wac1ksmnxa36v99ca4hv8k0rsh3igwpcllmlv9wf7i9kgqviqwi"))))
     (properties `((upstream-name . "ABCanalysis")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-plotrix" ,r-plotrix)))
+    (propagated-inputs (list r-plotrix))
     (home-page "https://www.uni-marburg.de/fb12/arbeitsgruppen/datenbionik/software-en/")
     (synopsis "Computed ABC Analysis")
     (description
@@ -9299,13 +9306,13 @@ the analyzed items.")
 (define-public r-slam
   (package
     (name "r-slam")
-    (version "0.1-48")
+    (version "0.1-49")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "slam" version))
        (sha256
-        (base32 "1ppsvkph4v1dffxgp12a4wnr9arj7pkmh4qv0and3f6nbz9k42qa"))))
+        (base32 "044hnfqbx57v5zr64gl09b5arj45swn9ywqzrl9rsc8267ys0028"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/slam/")
     (synopsis "Sparse lightweight arrays and matrices")
@@ -9317,28 +9324,28 @@ based on index arrays and simple triplet representations, respectively.")
 (define-public r-manipulatewidget
   (package
     (name "r-manipulatewidget")
-    (version "0.11.0")
+    (version "0.11.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "manipulateWidget" version))
        (sha256
-        (base32 "0iysgl6ab8fvg1xxdx6hr3swqwbkfqzjkk4x5sbvmawbl2a395gj"))))
+        (base32 "1dpgzmiv08afm57yxr017b014lfn9h3pa4w65prk5k3dgn6p4wsv"))))
     (properties
      `((upstream-name . "manipulateWidget")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-codetools" ,r-codetools)
-       ("r-htmltools" ,r-htmltools)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-knitr" ,r-knitr)
-       ("r-miniui" ,r-miniui)
-       ("r-shiny" ,r-shiny)
-       ("r-shinyjs" ,r-shinyjs)
-       ("r-webshot" ,r-webshot)))
+     (list r-base64enc
+           r-codetools
+           r-htmltools
+           r-htmlwidgets
+           r-knitr
+           r-miniui
+           r-shiny
+           r-shinyjs
+           r-webshot))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/rte-antares-rpackage/manipulateWidget/")
     (synopsis "Add even more interactivity to interactive charts")
     (description
@@ -9361,8 +9368,7 @@ developers to generate user interfaces easy to maintain.")
     (properties `((upstream-name . "A3")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-pbapply" ,r-pbapply)
-       ("r-xtable" ,r-xtable)))
+     (list r-pbapply r-xtable))
     (home-page "https://cran.r-project.org/web/packages/A3/")
     (synopsis "Error metrics for predictive models")
     (description
@@ -9420,14 +9426,14 @@ from the @code{stats} package (plus some extra parameters).")
 (define-public r-cmplot
   (package
     (name "r-cmplot")
-    (version "3.6.2")
+    (version "3.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "CMplot" version))
        (sha256
         (base32
-         "13y05j5gsdc712fn7yvcz5nx2pbcdvl201hfb6jzpvl86qx2l0j1"))))
+         "0d6ww8pdrawdg5acbhiyi2jpmapf2ghixy9mi4kmsq8yg36pksfh"))))
     (properties `((upstream-name . "CMplot")))
     (build-system r-build-system)
     (home-page "https://github.com/YinLiLin/CMplot")
@@ -9456,13 +9462,13 @@ visualization and candidate genes around SNPs.")
     (properties `((upstream-name . "precrec")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertthat" ,r-assertthat)
-       ("r-data-table" ,r-data-table)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-rcpp" ,r-rcpp)
-       ("r-withr" ,r-withr)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-assertthat
+           r-data-table
+           r-ggplot2
+           r-gridextra
+           r-rcpp
+           r-withr))
+    (native-inputs (list r-knitr))
     (home-page "https://evalclass.github.io/precrec/")
     (synopsis "Calculate accurate precision-recall and ROC curves")
     (description
@@ -9484,15 +9490,15 @@ of precision-recall and ROC (Receiver Operator Characteristics) curves.")
     (properties `((upstream-name . "NetRep")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-bh" ,r-bh)
-       ("r-foreach" ,r-foreach)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rhpcblasctl" ,r-rhpcblasctl)
-       ("r-statmod" ,r-statmod)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-abind
+           r-bh
+           r-foreach
+           r-rcolorbrewer
+           r-rcpp
+           r-rcpparmadillo
+           r-rhpcblasctl
+           r-statmod))
+    (native-inputs (list r-knitr))
     (home-page "https://cran.r-project.org/package=NetRep")
     (synopsis "Permutation testing network module preservation across datasets")
     (description
@@ -9515,10 +9521,9 @@ through permutation testing.")
     (properties `((upstream-name . "intergraph")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-igraph" ,r-igraph)
-       ("r-network" ,r-network)))
+     (list r-igraph r-network))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "http://mbojan.github.io/intergraph")
     (synopsis "Coercion routines for network data objects")
     (description
@@ -9540,7 +9545,7 @@ supported classes are those defined in packages @code{network} and
         (base32 "1ih0xk88qhsmpvnxf56041wx5sk8as2f4f2gdnpnwdym9mbr9n4b"))))
     (properties `((upstream-name . "ABCoptim")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (propagated-inputs (list r-rcpp))
     (home-page "https://github.com/gvegayon/ABCoptim/")
     (synopsis "Optimization of Artificial Bee Colony algorithm")
     (description
@@ -9565,7 +9570,7 @@ colony optimization algorithm @url{http://mf.erciyes.edu.tr/abc/pub/tr06_2005.pd
         (base32 "1s2skkxpzss7c29i8600psgrp0hl46jcrxqrmy2b4db8hc0kcnbx"))))
     (properties `((upstream-name . "ABCp2")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-mass" ,r-mass)))
+    (propagated-inputs (list r-mass))
     (home-page "https://cran.r-project.org/web/packages/ABCp2/")
     (synopsis "Approximate Bayesian Computational Model for Estimating P2")
     (description
@@ -9586,15 +9591,15 @@ second male (P2) based on the best fit distribution.")
         (base32 "1ghbd24yhqy3xhdxas6ccn84nkavqpgldx5ck8kijknc7qjm8k27"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-doparallel" ,r-doparallel)
-       ("r-foreach" ,r-foreach)
-       ("r-mass" ,r-mass)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-ranger" ,r-ranger)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-readr" ,r-readr)
-       ("r-stringr" ,r-stringr)))
+     (list r-doparallel
+           r-foreach
+           r-mass
+           r-matrixstats
+           r-ranger
+           r-rcpp
+           r-rcpparmadillo
+           r-readr
+           r-stringr))
     (home-page "https://cran.r-project.org/web/packages/abcrf/")
     (synopsis "Approximate bayesian computation via random forests")
     (description
@@ -9616,10 +9621,7 @@ ABC algorithms.")
         (base32 "07s9dg10i8lsxl73b4n2hynca2fjgb0ykb0dz8c3zv6cgw3cyx97"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abc" ,r-abc)
-       ("r-abind" ,r-abind)
-       ("r-hmisc" ,r-hmisc)
-       ("r-plyr" ,r-plyr)))
+     (list r-abc r-abind r-hmisc r-plyr))
     (home-page "https://github.com/dennisprangle/abctools/")
     (synopsis "Tools for ABC analyses")
     (description
@@ -9641,10 +9643,7 @@ and coverage methods to tune the choice of threshold.")
         (base32 "0jz9vvnmcc6a38n8nzr458r65sna23bgn5r8mxdhzdlyqibihr7d"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-plyr" ,r-plyr)
-       ("r-rlang" ,r-rlang)
-       ("r-withr" ,r-withr)))
+     (list r-ggplot2 r-plyr r-rlang r-withr))
     (home-page "https://cran.r-project.org/web/packages/ggstance/")
     (synopsis "Horizontal and vertical versions of @code{r-ggplot2}")
     (description
@@ -9669,12 +9668,8 @@ and coverage methods to tune the choice of threshold.")
     (properties `((upstream-name . "ggnetwork")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-igraph" ,r-igraph)
-       ("r-network" ,r-network)
-       ("r-sna" ,r-sna)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-ggplot2 r-ggrepel r-igraph r-network r-sna))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/briatte/ggnetwork")
     (synopsis "Geometries to plot networks with ggplot2")
     (description
@@ -9696,8 +9691,7 @@ ggplot2 package.")
     (properties `((upstream-name . "cvAUC")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-rocr" ,r-rocr)))
+     (list r-data-table r-rocr))
     (home-page "https://github.com/ledell/cvAUC")
     (synopsis "Cross-validated area under the ROC curve confidence intervals")
     (description
@@ -9723,9 +9717,9 @@ repeated measures data, respectively.")
     (properties `((upstream-name . "gam")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-foreach" ,r-foreach)))
+     (list r-foreach))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/package=gam")
     (synopsis "Generalized additive models")
     (description
@@ -9749,11 +9743,9 @@ Models\" (Hastie and Tibshirani, 1990).")
     (properties `((upstream-name . "SuperLearner")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cvauc" ,r-cvauc)
-       ("r-gam" ,r-gam)
-       ("r-nnls" ,r-nnls)))
+     (list r-cvauc r-gam r-nnls))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/ecpolley/SuperLearner")
     (synopsis "Super learner prediction")
     (description
@@ -9775,11 +9767,9 @@ a library of prediction algorithms to be used in the super learner.")
     (properties `((upstream-name . "drtmle")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-future-apply" ,r-future-apply)
-       ("r-np" ,r-np)
-       ("r-superlearner" ,r-superlearner)))
+     (list r-future-apply r-np r-superlearner))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/benkeser/drtmle")
     (synopsis "Doubly-robust nonparametric estimation and inference")
     (description
@@ -9807,12 +9797,9 @@ both to consistency and asymptotic normality.")
          (add-after 'unpack 'set-HOME
            (lambda _ (setenv "HOME" "/tmp"))))))
     (propagated-inputs
-     `(("r-foreach" ,r-foreach)
-       ("r-future" ,r-future)
-       ("r-globals" ,r-globals)
-       ("r-iterators" ,r-iterators)))
+     (list r-foreach r-future r-globals r-iterators))
     (native-inputs
-     `(("r-r-rsp" ,r-r-rsp))) ; vignette builder
+     (list r-r-rsp)) ; vignette builder
     (home-page "https://github.com/HenrikBengtsson/doFuture")
     (synopsis "Foreach parallel adapter using the future API")
     (description
@@ -9834,13 +9821,13 @@ futures can be used as backends for the @code{foreach} framework.")
     (properties `((upstream-name . "superheat")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-ggdendro" ,r-ggdendro)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gtable" ,r-gtable)
-       ("r-magrittr" ,r-magrittr)
-       ("r-plyr" ,r-plyr)
-       ("r-scales" ,r-scales)))
+     (list r-dplyr
+           r-ggdendro
+           r-ggplot2
+           r-gtable
+           r-magrittr
+           r-plyr
+           r-scales))
     (home-page "https://cran.r-project.org/package=superheat")
     (synopsis "Graphical tool for exploring complex datasets using heatmaps")
     (description
@@ -9852,18 +9839,18 @@ data with multiple data types.")
 (define-public r-qualv
   (package
     (name "r-qualv")
-    (version "0.3-3")
+    (version "0.3-4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "qualV" version))
        (sha256
         (base32
-         "1yyqk223ydcc0125gsn33a4mcdp8bd76fpn8kj9bfz9g78b8dqmx"))))
+         "0rkjzva2h158d5c631jmjjh7qjibbyisl0503san80rk9fgxl45b"))))
     (properties `((upstream-name . "qualV")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-kernsmooth" ,r-kernsmooth)))
+     (list r-kernsmooth))
     (home-page "http://qualV.R-Forge.R-Project.org/")
     (synopsis "Qualitative Validation Methods")
     (description
@@ -9895,10 +9882,7 @@ subsequence} (LCS) using a dynamic programming algorithm.")
     (properties `((upstream-name . "mosaicCore")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-mass" ,r-mass)
-       ("r-rlang" ,r-rlang)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-dplyr r-mass r-rlang r-tidyr))
     (home-page "https://github.com/ProjectMOSAIC/mosaicCore/")
     (synopsis "Common utilities for mosaic family packages")
     (description
@@ -9908,26 +9892,26 @@ subsequence} (LCS) using a dynamic programming algorithm.")
 (define-public r-labelled
   (package
     (name "r-labelled")
-    (version "2.8.0")
+    (version "2.9.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "labelled" version))
        (sha256
         (base32
-         "0fs8fhmk9j2nv2j87mpkmm0clz34f8kybnzn6pzqpcbwk0i2pcwg"))))
+         "0ffnhlr239nqcwb35m4hll21abnnhpmyy5wlxnyahrg0kqb0xb1n"))))
     (properties `((upstream-name . "labelled")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-haven" ,r-haven)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-rlang" ,r-rlang)
-       ("r-stringr" ,r-stringr)
-       ("r-tidyr" ,r-tidyr)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-dplyr
+           r-haven
+           r-lifecycle
+           r-rlang
+           r-stringr
+           r-tidyr
+           r-vctrs))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "http://larmarange.github.io/labelled/")
     (synopsis "Manipulating labelled data")
     (description
@@ -9948,19 +9932,19 @@ haven package. ")
         (base32 "1ph5jd8svk8hmshi894vmmpq3zwgdmf4yn3gmdlkad68z8jynhsp"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggforce" ,r-ggforce)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggridges" ,r-ggridges)
-       ("r-ggstance" ,r-ggstance)
-       ("r-labelled" ,r-labelled)
-       ("r-magrittr" ,r-magrittr)
-       ("r-mosaiccore" ,r-mosaiccore)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)))
+     (list r-ggforce
+           r-ggplot2
+           r-ggridges
+           r-ggstance
+           r-labelled
+           r-magrittr
+           r-mosaiccore
+           r-rlang
+           r-scales
+           r-stringr
+           r-tibble))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/ProjectMOSAIC/ggformula/")
     (synopsis "Formula interface for the @code{r-ggplot2}")
     (description
@@ -9992,18 +9976,17 @@ used to teach mathematics, statistics, computation and modeling.")
 (define-public r-raster
   (package
     (name "r-raster")
-    (version "3.4-13")
+    (version "3.5-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "raster" version))
        (sha256
         (base32
-         "120k4bkgwddrx8ijgdhsgjz8g8dxcwp9bx3kfzrhw00q1b289hir"))))
+         "0wixw1ixnmcmkwczpj8m90c76727zira2rl4ighashggydkm2mlr"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-sp" ,r-sp)))
+     (list r-rcpp r-sp r-terra))
     (home-page "https://www.rspatial.org/")
     (synopsis "Geographic data analysis and modeling")
     (description
@@ -10015,34 +9998,34 @@ Processing of very large files is supported.")
 (define-public r-mosaic
   (package
    (name "r-mosaic")
-   (version "1.4.0")
+   (version "1.8.3")
    (source
     (origin
      (method url-fetch)
      (uri (cran-uri "mosaic" version))
      (sha256
-      (base32 "10jbrg8kli00kfgbh2f67bymm5cnlancc9dplb1j7fl552yjddn2"))))
+      (base32 "1y0isqbva0vi5zlx1xvixbq87n4xp66ljh43qnd0cpzaz0mn21cg"))))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-broom" ,r-broom)
-      ("r-dplyr" ,r-dplyr)
-      ("r-ggdendro" ,r-ggdendro)
-      ("r-ggformula" ,r-ggformula)
-      ("r-ggplot2" ,r-ggplot2)
-      ("r-ggrepel" ,r-ggrepel)
-      ("r-glue" ,r-glue)
-      ("r-gridextra" ,r-gridextra)
-      ("r-lattice" ,r-lattice)
-      ("r-latticeextra" ,r-latticeextra)
-      ("r-lazyeval" ,r-lazyeval)
-      ("r-mass" ,r-mass)
-      ("r-matrix" ,r-matrix)
-      ("r-mosaiccore" ,r-mosaiccore)
-      ("r-mosaicdata" ,r-mosaicdata)
-      ("r-readr" ,r-readr)
-      ("r-tidyr" ,r-tidyr)))
+    (list r-broom
+          r-dplyr
+          r-ggdendro
+          r-ggformula
+          r-ggplot2
+          r-ggrepel
+          r-glue
+          r-gridextra
+          r-lattice
+          r-latticeextra
+          r-lazyeval
+          r-mass
+          r-matrix
+          r-mosaiccore
+          r-mosaicdata
+          r-readr
+          r-tidyr))
    (native-inputs
-    `(("r-knitr" ,r-knitr)))
+    (list r-knitr))
    (home-page "https://github.com/ProjectMOSAIC/mosaic/")
    (synopsis "Mathematics, statistics, and computation teaching utilities")
    (description
@@ -10066,9 +10049,7 @@ professional lives, but which are usually taught in isolation, if at all.")
         (base32 "191gspqzdv573vaw624ri0f5cm6v4j524bjs74d4a1hn3kn6r9b7"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)
-       ("r-mosaic" ,r-mosaic)
-       ("r-nlme" ,r-nlme)))
+     (list r-lattice r-mosaic r-nlme))
     (home-page "https://cran.r-project.org/web/packages/abd/")
     (synopsis "Analysis of biological data")
     (description
@@ -10089,7 +10070,7 @@ biological data by Michael Whitlock and Dolph Schluter.")
     (properties `((upstream-name . "svGUI")))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/SciViews/svGUI/")
     (synopsis "Functions for managing GUI clients in R")
     (description
@@ -10112,13 +10093,11 @@ calls to the particular toolkits in use in function of the context.")
     (properties `((upstream-name . "svDialogs")))
     (build-system r-build-system)
     (inputs
-     `(("yad" ,yad)
-       ("zenity" ,zenity)))
+     (list yad zenity))
     (propagated-inputs
-     `(("r-rstudioapi" ,r-rstudioapi)
-       ("r-svgui" ,r-svgui)))
+     (list r-rstudioapi r-svgui))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/SciViews/svDialogs/")
     (synopsis "Portable dialog boxes")
     (description
@@ -10182,8 +10161,7 @@ mode are currently supported.")
     (properties `((upstream-name . "ABHgenotypeR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-reshape2" ,r-reshape2)))
+     (list r-ggplot2 r-reshape2))
     (home-page "https://github.com/StefanReuscher/ABHgenotypeR/")
     (synopsis "Visualize and manipulate ABH genotypes")
     (description
@@ -10208,13 +10186,13 @@ genotypes as \"graphical genotypes\".")
          "001p2yhznrpnrjvdcmf2h3wpgdnw01wnqgid7wbq8bhavhi3888a"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ellipsis" ,r-ellipsis)
-       ("r-future" ,r-future)
-       ("r-globals" ,r-globals)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-ellipsis
+           r-future
+           r-globals
+           r-lifecycle
+           r-purrr
+           r-rlang
+           r-vctrs))
     (home-page "https://github.com/DavisVaughan/furrr")
     (synopsis "Apply mapping functions in parallel using futures")
     (description
@@ -10236,14 +10214,14 @@ distributed on a compute cluster.")
         (base32 "18mmlkqsrjfclk8islfjdsp8sbw6dpjj5x45kqilxdiss69gg5zd"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-magrittr" ,r-magrittr)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-stringi" ,r-stringi)
-       ("r-stringr" ,r-stringr)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-dplyr
+           r-magrittr
+           r-purrr
+           r-rlang
+           r-rstudioapi
+           r-stringi
+           r-stringr
+           r-tidyr))
     (home-page "https://github.com/abjur/abjutils/")
     (synopsis "Collection of tools for jurimetrical analysis")
     (description
@@ -10265,8 +10243,7 @@ removal.")
         (base32 "1fzfskl9akl06nliy8hkv2a0pznpj8pwcypg3gj5r2nzvr3kan9v"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)))
+     (list r-mass r-matrix))
     (home-page "https://cran.r-project.org/web/packages/abnormality/")
     (synopsis "Measure a subject's abnormality with respect to a reference population")
     (description
@@ -10291,7 +10268,7 @@ research.")
     (properties `((upstream-name . "abodOutlier")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cluster" ,r-cluster)))
+     (list r-cluster))
     (home-page "https://cran.r-project.org/web/packages/abodOutlier/")
     (synopsis "Angle-based outlier detection")
     (description
@@ -10319,7 +10296,7 @@ detection.")
         (base32 "0n3f66nmfi5v94il1mxy026mi84w01ph2aljk60vn3mrz8kwf2ll"))))
     (properties `((upstream-name . "ABPS")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-kernlab" ,r-kernlab)))
+    (propagated-inputs (list r-kernlab))
     (home-page "https://cran.r-project.org/web/packages/ABPS/")
     (synopsis "Abnormal blood profile score to detect blood doping")
     (description
@@ -10363,7 +10340,7 @@ for the reconstruction of gene regulatory networks.")
         (base32 "0vzf5wazs92bhqhqd66v3vwmbfmnh67gb2466g1xxawim649nk05"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)))
+     (list r-mass))
     (home-page "https://github.com/atahk/pscl/")
     (synopsis "Political science computational laboratory")
     (description
@@ -10389,8 +10366,7 @@ data;
         (base32 "1nql9inx6azdzi3z4sfm2vdml2mms6krl8wzlf1dn1c97ahn57fy"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mice" ,r-mice)
-       ("r-pscl" ,r-pscl)))
+     (list r-mice r-pscl))
     (home-page "https://cran.r-project.org/web/packages/accelmissing/")
     (synopsis "Missing value imputation for accelerometer data")
     (description
@@ -10413,7 +10389,7 @@ and the non-wearing time, selecting valid days and subjects, and creating plots.
        (sha256
         (base32 "009dj0zkj1zry7jr9hf4cknb686z50a2l967if64xm0dvjmp7dgs"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-mvtnorm" ,r-mvtnorm)))
+    (propagated-inputs (list r-mvtnorm))
     (home-page "https://github.com/jaredo/mhsmm/")
     (synopsis "Inference for hidden Markov and semi-Markov models")
     (description
@@ -10436,7 +10412,7 @@ emission distributions.")
        (sha256
         (base32 "1v9znvncyigw9r25wx2ma0b7ib179b488dl0qsrhp5zrcz7mcjgm"))))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/nleqslv/")
     (synopsis "Solve systems of nonlinear equations")
     (description
@@ -10492,19 +10468,19 @@ on user-defined cut-points of accelerometer counts.
         (base32 "1ii2vm47djxbixa75h690q1s2f9m9x6i8nkygik93j6dayr6kr1m"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-circlize" ,r-circlize)
-       ("r-dbi" ,r-dbi)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-iterators" ,r-iterators)
-       ("r-mhsmm" ,r-mhsmm)
-       ("r-nleqslv" ,r-nleqslv)
-       ("r-physicalactivity" ,r-physicalactivity)
-       ("r-plyr" ,r-plyr)
-       ("r-r-utils" ,r-r-utils)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-zoo" ,r-zoo)))
+     (list r-circlize
+           r-dbi
+           r-ggplot2
+           r-iterators
+           r-mhsmm
+           r-nleqslv
+           r-physicalactivity
+           r-plyr
+           r-r-utils
+           r-rcpp
+           r-rcpparmadillo
+           r-rsqlite
+           r-zoo))
     (home-page "https://cran.r-project.org/web/packages/acc/")
     (synopsis "Exploring accelerometer data")
     (description
@@ -10549,7 +10525,7 @@ conveniently wrapped into a data frame.")
         (base32
          "0c2x2n1p53lcw0vx4vmy5j7m2f95i7g2iwbryl89imr99rvz617j"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-dbi" ,r-dbi)))
+    (propagated-inputs (list r-dbi))
     (home-page "https://cran.r-project.org/web/packages/mitools/")
     (synopsis "Tools for multiple imputation of missing data")
     (description
@@ -10570,11 +10546,9 @@ multiple-imputation datasets.")
    (properties `((upstream-name . "mixsqp")))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-irlba" ,r-irlba)
-      ("r-rcpp" ,r-rcpp)
-      ("r-rcpparmadillo" ,r-rcpparmadillo)))
+    (list r-irlba r-rcpp r-rcpparmadillo))
    (native-inputs
-    `(("r-knitr" ,r-knitr)))
+    (list r-knitr))
    (home-page "https://github.com/stephenslab/mixsqp")
    (synopsis
     "Sequential quadratic programming for maximum-likelihood estimation")
@@ -10601,15 +10575,11 @@ samples is large and the number of mixture components is not too large.")
          "0h942bn7wfnzbbgq9hrs75c7igmg5r1c5sad2v0znhza4cp7p1w3"))))
     (build-system r-build-system)
     (inputs
-     `(("imagemagick" ,imagemagick)
-       ("zlib" ,zlib)))
+     (list imagemagick zlib))
     (propagated-inputs
-     `(("r-curl" ,r-curl)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-curl r-magrittr r-rcpp))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://github.com/ropensci/magick")
     (synopsis "Advanced graphics and image-processing in R")
     (description
@@ -10635,12 +10605,12 @@ console, resulting in an interactive editing environment.")
          "0ljsszybzri531q6xab04r6zq11vchfs7y0snjzk57m3g0b9ms05"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)
-       ("r-matrix" ,r-matrix)
-       ("r-minqa" ,r-minqa)
-       ("r-mitools" ,r-mitools)
-       ("r-numderiv" ,r-numderiv)
-       ("r-survival" ,r-survival)))
+     (list r-lattice
+           r-matrix
+           r-minqa
+           r-mitools
+           r-numderiv
+           r-survival))
     (home-page "http://r-survey.r-forge.r-project.org/survey/")
     (synopsis "Analysis of complex survey samples")
     (description
@@ -10670,7 +10640,7 @@ analysis.")
     (properties `((upstream-name . "gee")))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/gee/")
     (synopsis "Generalized estimation equation solver")
     (description
@@ -10691,13 +10661,9 @@ analysis.")
     (properties `((upstream-name . "tab")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-kableextra" ,r-kableextra)
-       ("r-knitr" ,r-knitr)
-       ("r-mass" ,r-mass)
-       ("r-survey" ,r-survey)))
+     (list r-dplyr r-kableextra r-knitr r-mass r-survey))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/tab/")
     (synopsis "Create summary tables for statistical reports")
     (description
@@ -10720,17 +10686,17 @@ handle data from simple random samples as well as complex surveys.")
         (base32 "01v6sixx0f3nrn6ymfifb3pvd2msfrwm21kmdv38laxq29vc4rsi"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cubature" ,r-cubature)
-       ("r-data-table" ,r-data-table)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-mass" ,r-mass)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-pracma" ,r-pracma)
-       ("r-rbenchmark" ,r-rbenchmark)
-       ("r-rcpp" ,r-rcpp)
-       ("r-survey" ,r-survey)
-       ("r-tab" ,r-tab)))
+     (list r-cubature
+           r-data-table
+           r-dplyr
+           r-ggplot2
+           r-mass
+           r-mvtnorm
+           r-pracma
+           r-rbenchmark
+           r-rcpp
+           r-survey
+           r-tab))
     (home-page "https://cran.r-project.org/web/packages/dvmisc/")
     (synopsis "Faster computation of common statistics and miscellaneous functions")
     (description
@@ -10754,8 +10720,7 @@ regression).")
         (base32 "13xzrwhr4i1nj9c8vrmfdg2rmrc8n446iihcyxmy99sm99hpzyip"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dvmisc" ,r-dvmisc)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-dvmisc r-rcpp))
     (home-page "https://cran.r-project.org/web/packages/accelerometry/")
     (synopsis "Functions for processing accelerometer data")
     (description
@@ -10779,8 +10744,7 @@ algorithms to be implemented.")
     (properties `((upstream-name . "AbSim")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ape" ,r-ape)
-       ("r-powerlaw" ,r-powerlaw)))
+     (list r-ape r-powerlaw))
     (home-page "https://cran.r-project.org/web/packages/AbSim/")
     (synopsis "Time resolved simulations of antibody repertoires")
     (description
@@ -10829,7 +10793,7 @@ estimation problem.")
         (base32 "1m76qdmqvwpgm0sihazi2dna7cgsz9rljal18vgffb5wamwmg9k7"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-quic" ,r-quic)))
+     (list r-quic))
     (home-page "https://cran.r-project.org/web/packages/abundant/")
     (synopsis "Abundant regression and high-dimensional principal fitted components")
     (description
@@ -10853,7 +10817,7 @@ and Rothman (2012) @url{doi:10.1214/11-AOS962}.")
     (properties `((upstream-name . "Ac3net")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)))
+     (list r-data-table))
     (home-page "https://cran.r-project.org/web/packages/Ac3net/")
     (synopsis "Inferring directional conservative causal core gene networks")
     (description "This package infers directional Conservative causal core
@@ -10884,13 +10848,13 @@ series.")
 (define-public r-acceptancesampling
   (package
     (name "r-acceptancesampling")
-    (version "1.0-6")
+    (version "1.0-7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "AcceptanceSampling" version))
        (sha256
-        (base32 "1z3rmln63ki2kik9kinbwr9qhr32ggbmh4mm3xqy6di119n47ca9"))))
+        (base32 "13k3zczjycw24n5yp0qmrm233id5j8h6fvra57f1n6js7ljxiiq2"))))
     (properties
      `((upstream-name . "AcceptanceSampling")))
     (build-system r-build-system)
@@ -10970,7 +10934,7 @@ observation.")
          "12aa5083k3sfrfq1jy3l94wffss9h0rga8j71jy3n8pkhiq4nn7n"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-zoo" ,r-zoo)))
+     (list r-zoo))
     (home-page "https://cran.r-project.org/web/packages/sandwich/")
     (synopsis "Robust Covariance Matrix Estimators")
     (description
@@ -10982,19 +10946,20 @@ cross-sectional, time series, clustered, panel, and longitudinal data.")
 (define-public r-th-data
   (package
     (name "r-th-data")
-    (version "1.0-10")
+    (version "1.1-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "TH.data" version))
        (sha256
         (base32
-         "0mgz7aj2d9abbmdr65zgmg1ddp3fdbs3mfj83r5xadh5ldkir2k1"))))
+         "0ghihfpk5d8gsdlzf6phw7dwwz3adx64pxk82vlmlqx53ljpxcr1"))))
     (properties `((upstream-name . "TH.data")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-survival" ,r-survival)))
+     (list r-mass r-survival))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/TH.data/")
     (synopsis "Shared data sets")
     (description
@@ -11015,11 +10980,7 @@ packages maintained by Torsten Hothorn.")
          "02zv739mbmx672yrqqx8am229h7ps476wphig7jrrbfgay29sl21"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-codetools" ,r-codetools)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-sandwich" ,r-sandwich)
-       ("r-survival" ,r-survival)
-       ("r-th-data" ,r-th-data)))
+     (list r-codetools r-mvtnorm r-sandwich r-survival r-th-data))
     (home-page "https://cran.r-project.org/web/packages/multcomp/")
     (synopsis "Simultaneous inference in general parametric models")
     (description
@@ -11033,23 +10994,19 @@ Hothorn, Westfall, 2010, CRC Press).")
 (define-public r-emmeans
   (package
     (name "r-emmeans")
-    (version "1.6.3")
+    (version "1.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "emmeans" version))
        (sha256
         (base32
-         "1mwcq3hvpx04qnn5k0bv1mikjgm9mk6m83i8hj350s1c1a0mi40n"))))
+         "1ig94mjifhhygznv2xv1gl8hdvk618w5fcmkaj1xmpwpc64m9dnl"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-estimability" ,r-estimability)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-numderiv" ,r-numderiv)
-       ("r-plyr" ,r-plyr)
-       ("r-xtable" ,r-xtable)))
+     (list r-estimability r-mvtnorm r-numderiv r-xtable))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/rvlenth/emmeans")
     (synopsis "Estimated marginal means, aka least-squares means")
     (description
@@ -11073,7 +11030,7 @@ comparisons of slopes.")
          "1kfzy73v3z6ipc3kdfkcjrp4b4p5k54nwk796gqi36srm93hgc2v"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/heliosdrm/pwr")
     (synopsis "Basic functions for power analysis")
     (description
@@ -11084,15 +11041,15 @@ Cohen (1988).")
 (define-public r-libcoin
   (package
     (name "r-libcoin")
-    (version "1.0-8")
+    (version "1.0-9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "libcoin" version))
        (sha256
-        (base32 "0izgnr4zdrbz3a05b0s28xfly4izp2zslgh282l9ads4skrmj3hl"))))
+        (base32 "1syrcdj5qg5m3zd3dlxgpfklswbalfg42w058dr09hnzqsvx0z9d"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-mvtnorm" ,r-mvtnorm)))
+    (propagated-inputs (list r-mvtnorm))
     (home-page "https://cran.r-project.org/web/packages/libcoin")
     (synopsis "Linear test statistics for permutation inference")
     (description
@@ -11103,22 +11060,22 @@ and permutation inference in the framework of Strasser and Weber (1999).")
 (define-public r-coin
   (package
     (name "r-coin")
-    (version "1.4-1")
+    (version "1.4-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "coin" version))
        (sha256
         (base32
-         "15xvhnbyg34aacn6jfz4bsa1f7wq2ci0hslj8mgymql90k50x1qi"))))
+         "1cpv7jx840inzg98bkhrb5yscx0gpag6br237r5qpnc2gbrd2ikm"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-libcoin" ,r-libcoin)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-modeltools" ,r-modeltools)
-       ("r-multcomp" ,r-multcomp)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-survival" ,r-survival)))
+     (list r-libcoin
+           r-matrixstats
+           r-modeltools
+           r-multcomp
+           r-mvtnorm
+           r-survival))
     (home-page "http://coin.r-forge.r-project.org")
     (synopsis "Conditional inference procedures in a permutation test framework")
     (description
@@ -11140,19 +11097,18 @@ correlation, censored, ordered and multivariate problems.")
          "0aman4273i8hy3z0qay1nrsr7v27m4icm1j6f4w59ylix80l5myq"))))
     (build-system r-build-system)
     (inputs
-     `(("pandoc" ,pandoc)
-       ("pandoc-citeproc" ,pandoc-citeproc)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
-    (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggridges" ,r-ggridges)
-       ("r-glue" ,r-glue)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyselect" ,r-tidyselect)))
+     (list pandoc))
+    (native-inputs
+     (list r-knitr))
+    (propagated-inputs
+     (list r-dplyr
+           r-ggplot2
+           r-ggridges
+           r-glue
+           r-reshape2
+           r-rlang
+           r-tibble
+           r-tidyselect))
     (home-page "https://mc-stan.org/bayesplot")
     (synopsis "Plotting for Bayesian models")
     (description
@@ -11166,19 +11122,18 @@ Bayesian modeling.")
 (define-public r-tmb
   (package
     (name "r-tmb")
-    (version "1.7.20")
+    (version "1.7.22")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "TMB" version))
        (sha256
         (base32
-         "14wapc8bicr4j7mmrv1hrsw407lsbr7l4cfvy3j9sfjdbrq31a37"))))
+         "116k7ffgadhkqq4lckfd4403qvybcls1hcs1ap1b7lkylghjahf2"))))
     (properties `((upstream-name . "TMB")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)
-       ("r-rcppeigen" ,r-rcppeigen)))
+     (list r-matrix r-rcppeigen))
     (home-page "http://tmb-project.org")
     (synopsis "Template model builder: a general random effect tool")
     (description
@@ -11203,23 +11158,23 @@ detection, parallelism through BLAS and parallel user templates.")
         (base32 "1cv80yjnyh6qihxf57zivihhia20gibr5f03x8aspy6382wnwlka"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bayestestr" ,r-bayestestr)
-       ("r-broom" ,r-broom)
-       ("r-dplyr" ,r-dplyr)
-       ("r-effectsize" ,r-effectsize)
-       ("r-emmeans" ,r-emmeans)
-       ("r-insight" ,r-insight)
-       ("r-lme4" ,r-lme4)
-       ("r-magrittr" ,r-magrittr)
-       ("r-mass" ,r-mass)
-       ("r-modelr" ,r-modelr)
-       ("r-parameters" ,r-parameters)
-       ("r-performance" ,r-performance)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-sjlabelled" ,r-sjlabelled)
-       ("r-sjmisc" ,r-sjmisc)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-bayestestr
+           r-broom
+           r-dplyr
+           r-effectsize
+           r-emmeans
+           r-insight
+           r-lme4
+           r-magrittr
+           r-mass
+           r-modelr
+           r-parameters
+           r-performance
+           r-purrr
+           r-rlang
+           r-sjlabelled
+           r-sjmisc
+           r-tidyr))
     (home-page "https://github.com/strengejacke/sjstats")
     (synopsis "Functions for common statistical computations")
     (description
@@ -11237,25 +11192,25 @@ models.")
 (define-public r-glmmtmb
   (package
     (name "r-glmmtmb")
-    (version "1.1.2")
+    (version "1.1.2.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "glmmTMB" version))
        (sha256
         (base32
-         "1mivh385j1601668n3dg72lws9720kzm7709z509w3a71wcikmz7"))))
+         "1yfwwz2dhd34vgagg8hi7irkqw8padavbc7337jdiwgk3w01wqsm"))))
     (properties `((upstream-name . "glmmTMB")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lme4" ,r-lme4)
-       ("r-matrix" ,r-matrix)
-       ("r-nlme" ,r-nlme)
-       ("r-numderiv" ,r-numderiv)
-       ("r-rcppeigen" ,r-rcppeigen)
-       ("r-tmb" ,r-tmb)))
+     (list r-lme4
+           r-matrix
+           r-nlme
+           r-numderiv
+           r-rcppeigen
+           r-tmb))
     (native-inputs
-     `(("r-knitr" ,r-knitr))) ; for vignettes
+     (list r-knitr)) ; for vignettes
     (home-page "https://github.com/glmmTMB")
     (synopsis "Generalized linear mixed models")
     (description
@@ -11270,21 +11225,20 @@ differentiation.")
 (define-public r-bayestestr
   (package
     (name "r-bayestestr")
-    (version "0.10.5")
+    (version "0.11.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bayestestR" version))
        (sha256
         (base32
-         "0qnjl8b41d8sv9fs7633sbdq8phra62z7vqdn5mxfnqwdkvfzcgl"))))
+         "0lz8mzacxgmll576p88654mrvlk4pzvhwwghvn5pm7zxisgx0kq0"))))
     (properties `((upstream-name . "bayestestR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-datawizard" ,r-datawizard)
-       ("r-insight" ,r-insight)))
+     (list r-datawizard r-insight))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/easystats/bayestestR")
     (synopsis "Describe Bayesian models and posterior distributions")
     (description
@@ -11298,19 +11252,17 @@ ROPE percentage and pd).")
 (define-public r-performance
   (package
     (name "r-performance")
-    (version "0.7.3")
+    (version "0.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "performance" version))
        (sha256
         (base32
-         "03qdsdl4x3hwqlbs7hlqb73xypd13p5zj519y0zcydqkf25391sp"))))
+         "1xjjnhqmwfflm5yfgjhycjn0fj0manvsvkk2ppifn0373bajp5n2"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bayestestr" ,r-bayestestr)
-       ("r-datawizard" ,r-datawizard)
-       ("r-insight" ,r-insight)))
+     (list r-bayestestr r-datawizard r-insight))
     (home-page "https://easystats.github.io/performance/")
     (synopsis "Assessment of regression models performance")
     (description
@@ -11336,11 +11288,9 @@ effects models and Bayesian models.")
          "0xrb105kblkj3l9zlj9yy52rjlmx5x2aai1wwb5zvjr1f6nlc84l"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-insight" ,r-insight)
-       ("r-mass" ,r-mass)
-       ("r-sjlabelled" ,r-sjlabelled)))
+     (list r-insight r-mass r-sjlabelled))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/strengejacke/ggeffects")
     (synopsis "Create tidy data frames of marginal effects for ggplot")
     (description
@@ -11356,22 +11306,21 @@ results using @code{ggplot2}.")
 (define-public r-effectsize
   (package
     (name "r-effectsize")
-    (version "0.4.5")
+    (version "0.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "effectsize" version))
        (sha256
         (base32
-         "0rp0r75p8q467lmrsr1gl9wjpib9jz7ksx5rm6c7q2lfg9b9zrjf"))))
+         "0w7m3hzmwral9cycpvknrkbdvgk230b3vg5sxbm84x72mw534hnh"))))
     (properties `((upstream-name . "effectsize")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bayestestr" ,r-bayestestr)
-       ("r-insight" ,r-insight)
-       ("r-parameters" ,r-parameters)))
+     (list r-bayestestr r-datawizard r-insight r-parameters
+           r-performance))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/easystats/effectsize")
     (synopsis "Indices of effect size and standardized parameters")
     (description
@@ -11393,26 +11342,26 @@ conversion of indices such as Cohen's d, r, odds, etc.")
     (properties `((upstream-name . "sjPlot")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bayestestr" ,r-bayestestr)
-       ("r-datawizard" ,r-datawizard)
-       ("r-dplyr" ,r-dplyr)
-       ("r-effectsize" ,r-effectsize)
-       ("r-ggeffects" ,r-ggeffects)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-insight" ,r-insight)
-       ("r-knitr" ,r-knitr)
-       ("r-mass" ,r-mass)
-       ("r-parameters" ,r-parameters)
-       ("r-performance" ,r-performance)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)
-       ("r-sjlabelled" ,r-sjlabelled)
-       ("r-sjmisc" ,r-sjmisc)
-       ("r-sjstats" ,r-sjstats)
-       ("r-tidyr" ,r-tidyr)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-bayestestr
+           r-datawizard
+           r-dplyr
+           r-effectsize
+           r-ggeffects
+           r-ggplot2
+           r-insight
+           r-knitr
+           r-mass
+           r-parameters
+           r-performance
+           r-purrr
+           r-rlang
+           r-scales
+           r-sjlabelled
+           r-sjmisc
+           r-sjstats
+           r-tidyr))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://strengejacke.github.io/sjPlot/")
     (synopsis "Data visualization for statistics in social science")
     (description
@@ -11460,8 +11409,8 @@ back to file after modifications.")
          "1snzn7nxy0rwz0bzjsg6k04c0n811dgn8gn9cmn2v78aj57ayjmi"))))
     (properties `((upstream-name . "gitcreds")))
     (build-system r-build-system)
-    (inputs `(("git" ,git-minimal)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+    (inputs (list git-minimal))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/r-lib/gitcreds")
     (synopsis "Query git credentials from R")
     (description
@@ -11484,13 +11433,9 @@ repositories.")
          "077drbxz3rx7idv6w24ipj1p6jnzv86a3iyryab699cc9q2kjh54"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cli" ,r-cli)
-       ("r-gitcreds" ,r-gitcreds)
-       ("r-httr" ,r-httr)
-       ("r-ini" ,r-ini)
-       ("r-jsonlite" ,r-jsonlite)))
+     (list r-cli r-gitcreds r-httr r-ini r-jsonlite))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/r-lib/gh#readme")
     (synopsis "Access the GitHub API via R")
     (description
@@ -11510,7 +11455,7 @@ repositories.")
          "15rqc3ljmcmgfvadj1j1kq7kvibagxic8sgplhlcdqqxax9idprn"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://fs.r-lib.org")
     (synopsis "Cross-platform file system operations based on libuv")
     (description
@@ -11562,13 +11507,9 @@ terminals that do not support Unicode.")
     (inputs
      `(("git" ,git-minimal)))
     (propagated-inputs
-     `(("r-askpass" ,r-askpass)
-       ("r-curl" ,r-curl)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-openssl" ,r-openssl)
-       ("r-sys" ,r-sys)))
+     (list r-askpass r-curl r-jsonlite r-openssl r-sys))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://docs.ropensci.org/credentials/")
     (synopsis "Tools for managing SSH and Git credentials")
     (description
@@ -11585,29 +11526,27 @@ user credentials.")
 (define-public r-gert
   (package
     (name "r-gert")
-    (version "1.3.2")
+    (version "1.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gert" version))
        (sha256
         (base32
-         "0pqrv58hqbf6cifwi9zxgnkql6a2j9i8wknnd5ng8z3d94zs12bz"))))
+         "06g3gy4260y4f43zgahamckisjs8dvl06rb0kyinrwlm675dqppm"))))
     (properties `((upstream-name . "gert")))
     (build-system r-build-system)
     (inputs
-     `(("libgit2" ,libgit2)
-       ("zlib" ,zlib)))
+     (list libgit2 zlib))
     (propagated-inputs
-     `(("r-askpass" ,r-askpass)
-       ("r-credentials" ,r-credentials)
-       ("r-openssl" ,r-openssl)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-sys" ,r-sys)
-       ("r-zip" ,r-zip)))
+     (list r-askpass
+           r-credentials
+           r-openssl
+           r-rstudioapi
+           r-sys
+           r-zip))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://docs.ropensci.org/gert/")
     (synopsis "Simple Git client for R")
     (description
@@ -11621,35 +11560,35 @@ User credentials are shared with command line git through the
 (define-public r-usethis
   (package
     (name "r-usethis")
-    (version "2.0.1")
+    (version "2.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "usethis" version))
        (sha256
         (base32
-         "1j6nzzrm2m6vi1gq0d5kxnnr9d8cy88wpmgigz3inych65x9w9pg"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-cli" ,r-cli)
-       ("r-clipr" ,r-clipr)
-       ("r-crayon" ,r-crayon)
-       ("r-curl" ,r-curl)
-       ("r-desc" ,r-desc)
-       ("r-fs" ,r-fs)
-       ("r-gert" ,r-gert)
-       ("r-gh" ,r-gh)
-       ("r-glue" ,r-glue)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-purrr" ,r-purrr)
-       ("r-rappdirs" ,r-rappdirs)
-       ("r-rlang" ,r-rlang)
-       ("r-rprojroot" ,r-rprojroot)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-whisker" ,r-whisker)
-       ("r-withr" ,r-withr)
-       ("r-yaml" ,r-yaml)))
+         "1gwvirp53pa0zychd7d47d56a2vfdzz7l3p61l8m9n270ac7bc1d"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-cli
+           r-clipr
+           r-crayon
+           r-curl
+           r-desc
+           r-fs
+           r-gert
+           r-gh
+           r-glue
+           r-jsonlite
+           r-lifecycle
+           r-purrr
+           r-rappdirs
+           r-rlang
+           r-rprojroot
+           r-rstudioapi
+           r-whisker
+           r-withr
+           r-yaml))
     (home-page "https://github.com/r-lib/usethis")
     (synopsis "Automate R package and project setup")
     (description
@@ -11662,18 +11601,17 @@ Rcpp, RStudio projects, and more.")
 (define-public r-sessioninfo
   (package
     (name "r-sessioninfo")
-    (version "1.1.1")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sessioninfo" version))
        (sha256
         (base32
-         "0j5f3l58fynxx3v0w62vqpii7miabszgljpja36xx9s8hikh8sqn"))))
+         "0w3vhp652524348a4cfyvvs8z9xpxkcznw8x406nvkwfh0gdyka2"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cli" ,r-cli)
-       ("r-withr" ,r-withr)))
+     (list r-cli))
     (home-page "https://github.com/r-lib/sessioninfo#readme")
     (synopsis "R session information")
     (description
@@ -11685,17 +11623,17 @@ more information about packages, and where they were installed from.")
 (define-public r-remotes
   (package
     (name "r-remotes")
-    (version "2.4.0")
+    (version "2.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "remotes" version))
        (sha256
         (base32
-         "048lihmwksl72fg4fdmhihblj9ipxl22x9wfpgwsbsv79zjc7rfd"))))
+         "0xij8x4ga0r7rp2lxx9hw1zlzv48mfg56v8nf03gsw0dw6r7gmym"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/r-lib/remotes#readme")
     (synopsis "R package installation from remote repositories")
     (description
@@ -11718,7 +11656,7 @@ the code was copied over from @code{devtools}.")
          "1vrvgdika1d63dwygynbv2wmd87ll8dji5dy89hj576n8hw601z2"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-processx" ,r-processx)))
+     (list r-processx))
     (home-page "https://github.com/r-lib/xopen#readme")
     (synopsis "Open system files, URLs, anything")
     (description
@@ -11729,28 +11667,28 @@ directories or URLs with their associated programs.")
 (define-public r-rcmdcheck
   (package
     (name "r-rcmdcheck")
-    (version "1.3.3")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rcmdcheck" version))
        (sha256
         (base32
-         "1d4kzgfqy72r6b7bn1j4znyksrycgypx1jjvpv9lrmvn37mpkdhs"))))
+         "1l696byn3kjq2xvz4wxybzaj6ink85h4lz3a35v2132ba5yyzm5v"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-callr" ,r-callr)
-       ("r-cli" ,r-cli)
-       ("r-crayon" ,r-crayon)
-       ("r-desc" ,r-desc)
-       ("r-digest" ,r-digest)
-       ("r-pkgbuild" ,r-pkgbuild)
-       ("r-prettyunits" ,r-prettyunits)
-       ("r-r6" ,r-r6)
-       ("r-rprojroot" ,r-rprojroot)
-       ("r-sessioninfo" ,r-sessioninfo)
-       ("r-withr" ,r-withr)
-       ("r-xopen" ,r-xopen)))
+     (list r-callr
+           r-cli
+           r-curl
+           r-desc
+           r-digest
+           r-pkgbuild
+           r-prettyunits
+           r-r6
+           r-rprojroot
+           r-sessioninfo
+           r-withr
+           r-xopen))
     (home-page "https://github.com/r-Lib/rcmdcheck#readme")
     (synopsis "Run R CMD check from R and capture results")
     (description
@@ -11771,9 +11709,7 @@ of the individual checks.")
          "1sgv4sc737i12arh5dc3263kjsz3dzg06qihfmrqyax94mv2d01b"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-pander" ,r-pander)
-       ("r-plyr" ,r-plyr)
-       ("r-reshape" ,r-reshape)))
+     (list r-pander r-plyr r-reshape))
     (home-page "https://cran.r-project.org/web/packages/rapportools/")
     (synopsis "Miscellaneous helper functions with sane defaults for reporting")
     (description
@@ -11795,10 +11731,9 @@ quick reporting.")
          "1knjcr50xxns3w3kh15myjpsizn4d7fdqx071a4yj90imif07qjh"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-digest" ,r-digest)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-digest r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://rapporter.github.io/pander")
     (synopsis "Render R objects into Pandoc's markdown")
     (description
@@ -11823,20 +11758,20 @@ ways.")
          "04qcysfywljnqkcz2b7kzpy0xv3ykkvvb14vnda63z1wvmadyhkn"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-checkmate" ,r-checkmate)
-       ("r-dplyr" ,r-dplyr)
-       ("r-htmltools" ,r-htmltools)
-       ("r-lubridate" ,r-lubridate)
-       ("r-magick" ,r-magick)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-pander" ,r-pander)
-       ("r-pryr" ,r-pryr)
-       ("r-rapportools" ,r-rapportools)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-base64enc
+           r-checkmate
+           r-dplyr
+           r-htmltools
+           r-lubridate
+           r-magick
+           r-matrixstats
+           r-pander
+           r-pryr
+           r-rapportools
+           r-tibble
+           r-tidyr))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/dcomtois/summarytools")
     (synopsis "Tools to quickly and neatly summarize data")
     (description
@@ -11860,7 +11795,7 @@ users.")
          "1dka0rigfw4vj809qma2dkiwjb3nw5635ynnba5cm299cn7hb2b2"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://www.stat.auckland.ac.nz/~yongwang")
     (synopsis "Solve regression problems under equality/inequality constraints")
     (description
@@ -11883,7 +11818,7 @@ problems into least squares ones first.")
          "1ihxhb42cga1hssj2jv4ah0f4hlwsky899ij5261fzh1wxvdp1xw"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lsei" ,r-lsei)))
+     (list r-lsei))
     (home-page "https://www.stat.auckland.ac.nz/~yongwang")
     (synopsis "Nonparametric survival analysis")
     (description
@@ -11904,8 +11839,7 @@ exact and interval-censored observations.")
          "1ld0bdl4fy8dsfzm3k7a37cyxc6pfc9qs31x4pxd3z5rslghz7rj"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mvtnorm" ,r-mvtnorm)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-mvtnorm r-rcpp))
     (home-page "https://cran.r-project.org/web/packages/clusteval/")
     (synopsis "Evaluation of clustering algorithms")
     (description
@@ -11925,7 +11859,7 @@ algorithms, clusterings, and individual clusters.")
         (base32
          "1nfhaqblvm62j8gfkyrgba5ai0pb2fsnrxp63637mhys2bawlcm0"))))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/tweedie/")
     (synopsis "Evaluation of Tweedie exponential family models")
     (description
@@ -11938,18 +11872,17 @@ and related methods.")
 (define-public r-rcppgsl
   (package
     (name "r-rcppgsl")
-    (version "0.3.9")
+    (version "0.3.10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RcppGSL" version))
        (sha256
-        (base32 "0zhfkn3w5q2k2ggizrikz9an8hm90g6mr60paq0z8xgp5hpkrlk6"))))
+        (base32 "0lalz51q31qqy0cr227vc3msi0h47p111lzy4zs93drgl1yhh4l6"))))
     (properties `((upstream-name . "RcppGSL")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("gsl" ,gsl)))
+     (list r-rcpp gsl))
     (home-page "https://cran.r-project.org/web/packages/RcppGSL/")
     (synopsis "Rcpp integration for GSL vectors and matrices")
     (description
@@ -11975,11 +11908,7 @@ the interfaces between R and C++.")
          "107pwv2bwird1a98chcnbld2wqj9prkf4pkncyrrp304zpdkkby1"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppgsl" ,r-rcppgsl)
-       ("r-statmod" ,r-statmod)
-       ("r-tweedie" ,r-tweedie)))
+     (list r-mass r-rcpp r-rcppgsl r-statmod r-tweedie))
     (home-page "https://cran.r-project.org/web/packages/mvabund/")
     (synopsis "Statistical methods for analysing multivariate abundance data")
     (description
@@ -12000,13 +11929,9 @@ analysing multivariate abundance data in community ecology.")
          "1k04n6gwk2n8kg0l3yk5j3wrqgkv5f6w04yjpif9y451hx5w7svg"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-car" ,r-car)
-       ("r-lme4" ,r-lme4)
-       ("r-lmertest" ,r-lmertest)
-       ("r-pbkrtest" ,r-pbkrtest)
-       ("r-reshape2" ,r-reshape2)))
+     (list r-car r-lme4 r-lmertest r-pbkrtest r-reshape2))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://afex.singmann.science/")
     (synopsis "Analysis of factorial experiments")
     (description
@@ -12028,10 +11953,7 @@ experiments using ANOVA or mixed models.")
     (properties `((upstream-name . "lmerTest")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-lme4" ,r-lme4)
-       ("r-mass" ,r-mass)
-       ("r-numderiv" ,r-numderiv)))
+     (list r-ggplot2 r-lme4 r-mass r-numderiv))
     (home-page "https://github.com/runehaubo/lmerTestR")
     (synopsis "Tests in linear mixed effects models")
     (description
@@ -12056,16 +11978,16 @@ tests of linear contrasts of fixed effects are also available.")
          "0iim92blpa59vgz97c2pi05yhbjjmaffdbkbmk5kplfb2vmazgiy"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-afex" ,r-afex)
-       ("r-data-table" ,r-data-table)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-lmertest" ,r-lmertest)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-mgcv" ,r-mgcv)
-       ("r-pbkrtest" ,r-pbkrtest)))
+     (list r-afex
+           r-data-table
+           r-dplyr
+           r-ggplot2
+           r-gridextra
+           r-lmertest
+           r-mass
+           r-matrix
+           r-mgcv
+           r-pbkrtest))
     (home-page "https://github.com/bcjaeger/r2glmm")
     (synopsis "Compute R squared for mixed (multilevel) models")
     (description
@@ -12090,14 +12012,14 @@ al. (2016)).")
     (properties `((upstream-name . "cmdfun")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-magrittr" ,r-magrittr)
-       ("r-purrr" ,r-purrr)
-       ("r-r-utils" ,r-r-utils)
-       ("r-rlang" ,r-rlang)
-       ("r-testthat" ,r-testthat)
-       ("r-usethis" ,r-usethis)))
+     (list r-magrittr
+           r-purrr
+           r-r-utils
+           r-rlang
+           r-testthat
+           r-usethis))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://snystrom.github.io/cmdfun/")
     (synopsis "Framework for building interfaces to shell commands")
     (description
@@ -12113,18 +12035,18 @@ inside R when they might usually leave to execute non-R software.")
 (define-public r-rslurm
   (package
     (name "r-rslurm")
-    (version "0.6.0")
+    (version "0.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rslurm" version))
        (sha256
         (base32
-         "0fn2na8prsaxa03x5wi3105gpsxc35qvgmik7wy3nylvx4wdfv9g"))))
+         "19451icfh7snjbbmpzpr1hrdf52q8ijv0ag1di3y55r2la3jxxcf"))))
     (properties `((upstream-name . "rslurm")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-whisker" ,r-whisker)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+    (propagated-inputs (list r-whisker))
+    (native-inputs (list r-knitr))
     (home-page "http://cyberhelp.sesync.org/rslurm/")
     (synopsis "Submit R calculations to a Slurm cluster")
     (description
@@ -12147,9 +12069,8 @@ parallel calculations across cluster nodes.")
     (properties `((upstream-name . "chk")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lifecycle" ,r-lifecycle)
-       ("r-rlang" ,r-rlang)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-lifecycle r-rlang))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/poissonconsulting/chk")
     (synopsis "Check user-supplied function arguments")
     (description
@@ -12171,10 +12092,7 @@ messages follow the tidyverse style guide.")
          "1fnchf7f0hyl514bk8sc3l884kg25kb5xm4mc2l28n6hm7l6bgpg"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-gdata" ,r-gdata)
-       ("r-hmisc" ,r-hmisc)
-       ("r-lme4" ,r-lme4)
-       ("r-mice" ,r-mice)))
+     (list r-gdata r-hmisc r-lme4 r-mice))
     (home-page "https://cran.r-project.org/web/packages/weights/")
     (synopsis "Weighting and weighted statistics")
     (description "This package Provides a variety of functions for producing
@@ -12200,7 +12118,7 @@ address a bug.")
     (properties `((upstream-name . "RcppAnnoy")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (home-page "https://cran.r-project.org/web/packages/RcppAnnoy/")
     (synopsis "Rcpp bindings for Annoy, a library for Approximate Nearest Neighbors")
     (description
@@ -12224,7 +12142,7 @@ This package provides an R interface.")
          "01z0plf1i6dyibw4ica8shmijyk1grpqb886hcga72z2cpm4xsx0"))))
     (properties `((upstream-name . "RcppHNSW")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (propagated-inputs (list r-rcpp))
     (home-page "https://cran.r-project.org/web/packages/RcppHNSW/")
     (synopsis "Rcpp bindings for hnswlib, a library for approximate nearest neighbors")
     (description
@@ -12259,18 +12177,17 @@ other values.")
 (define-public r-ncdf4
   (package
     (name "r-ncdf4")
-    (version "1.17")
+    (version "1.17.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ncdf4" version))
        (sha256
         (base32
-         "1xls44ln2zjrrlimxl8v4bk2ni3g45c9j0gxdnjx31rikmrc95fv"))))
+         "1fyjhp2zkvp7ls1sxn623far7473lpkfsqqvj3a1fczpmqs6iw4m"))))
     (build-system r-build-system)
     (inputs
-     `(("netcdf" ,netcdf)
-       ("zlib" ,zlib)))
+     (list netcdf zlib))
     (home-page "https://cran.r-project.org/web/packages/ncdf4/index.html")
     (synopsis "R interface to Unidata netCDF format data files")
     (description
@@ -12296,7 +12213,7 @@ netCDF files.")
     (properties `((upstream-name . "BiocManager")))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/BiocManager/")
     (synopsis "Access the Bioconductor project package repository")
     (description
@@ -12307,32 +12224,31 @@ Bioconductor packages.")
 (define-public r-rgl
   (package
     (name "r-rgl")
-    (version "0.107.14")
+    (version "0.108.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rgl" version))
        (sha256
         (base32
-         "1z5h4wbjj18prcykc96rqcn699pnqw6vybwj2mpbbbdw2lr3q8b7"))))
+         "0fqkx079z9y5b1gdg6qfz2wpw2j8q3ddflfkd9wwrkyacas6xyc9"))))
     (build-system r-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (inputs
-     `(("freetype" ,freetype)
-       ("libpng" ,libpng)
-       ("glu" ,glu)
-       ("libx11" ,libx11)
-       ("pandoc" ,pandoc)
-       ("zlib" ,zlib)))
-    (propagated-inputs
-     `(("r-crosstalk" ,r-crosstalk)
-       ("r-htmltools" ,r-htmltools)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-knitr" ,r-knitr)
-       ("r-magrittr" ,r-magrittr)))
+     (list freetype
+           libpng
+           glu
+           libx11
+           pandoc
+           zlib))
+    (propagated-inputs
+     (list r-htmltools
+           r-htmlwidgets
+           r-jsonlite
+           r-knitr
+           r-magrittr
+           r-r6))
     (home-page "https://r-forge.r-project.org/projects/rgl/")
     (synopsis "3D visualization using OpenGL")
     (description
@@ -12357,7 +12273,7 @@ image formats, including PNG, Postscript, SVG, PGF.")
         (base32
          "0djacq0irfqz4nlnx238kja73yvr1n5qybbfyl6bw1n6qgcjhza8"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (propagated-inputs (list r-rcpp))
     (home-page "https://cran.r-project.org/web/packages/multicool/")
     (synopsis "Permutations of multisets in cool-lex order")
     (description
@@ -12369,14 +12285,14 @@ to colexicographical order.")
 (define-public r-misc3d
   (package
     (name "r-misc3d")
-    (version "0.9-0")
+    (version "0.9-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "misc3d" version))
        (sha256
         (base32
-         "10jf5r1x588vi54bzaqgi9mgcqlkiga2c3jvmqmk3lavc8fjksd1"))))
+         "0r9x57s63kx9f6dgam2nhbziq8nrs9wd8pk7g76hds2kw46vnyx0"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/misc3d/")
     (synopsis "Miscellaneous 3D Plots")
@@ -12398,16 +12314,16 @@ isosurfaces.")
         (base32 "02gnpyjqdlj6dl2x9i7mmks4f5nrh85j3h0kfa0v1v6wi8blx7kw"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-fnn" ,r-fnn)
-       ("r-kernlab" ,r-kernlab)
-       ("r-kernsmooth" ,r-kernsmooth)
-       ("r-matrix" ,r-matrix)
-       ("r-mclust" ,r-mclust)
-       ("r-mgcv" ,r-mgcv)
-       ("r-multicool" ,r-multicool)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-plot3d" ,r-plot3d)
-       ("r-pracma" ,r-pracma)))
+     (list r-fnn
+           r-kernlab
+           r-kernsmooth
+           r-matrix
+           r-mclust
+           r-mgcv
+           r-multicool
+           r-mvtnorm
+           r-plot3d
+           r-pracma))
     (home-page "https://www.mvstat.net/tduong/")
     (synopsis "Kernel smoothing")
     (description
@@ -12431,10 +12347,9 @@ hypothesis testing.")
          "0yzn1w1sasilcp8v0pcjnxjv9l6lspkskqi412i6h040gqmjjf6y"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ks" ,r-ks)
-       ("r-plot3d" ,r-plot3d)))
+     (list r-ks r-plot3d))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://www.mvstat.net/tduong/")
     (synopsis "Inferential feature significance for kernel density estimation")
     (description
@@ -12448,23 +12363,22 @@ features (e.g. local modes).")
 (define-public r-arm
   (package
     (name "r-arm")
-    (version "1.11-2")
+    (version "1.12-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "arm" version))
        (sha256
         (base32
-         "1grb27vayr2vhyalzfqbhx6p278r7c3l4pzi5nrz3dmnyqrbx1c3"))))
+         "0pagrc1vkaz460d0lvrgb4xj6gcd920f4mrc8zpzw07c3v1s2sw1"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-coda" ,r-coda)
-       ("r-hmisc" ,r-hmisc)
-       ("r-lme4" ,r-lme4)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-nlme" ,r-nlme)))
+     (list r-abind
+           r-coda
+           r-lme4
+           r-mass
+           r-matrix
+           r-nlme))
     (home-page "https://cran.r-project.org/web/packages/arm/")
     (synopsis "Data analysis using regression and multilevel/hierarchical models")
     (description
@@ -12486,10 +12400,9 @@ University Press, 2007.")
          "0hki85rs8wc5950pjaw28q54rly2napfbcrx3pchlfap6wwy5kkn"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-boot" ,r-boot)
-       ("r-mvtnorm" ,r-mvtnorm)))
+     (list r-boot r-mvtnorm))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/circular/")
     (synopsis "Circular statistics")
     (description
@@ -12511,9 +12424,7 @@ Scientific.")
          "1wn2a0hx7wfr2jyj1b772w5fgl6bcqkkw8cybais2s1wyjx8kjr5"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-circular" ,r-circular)
-       ("r-insol" ,r-insol)
-       ("r-pbapply" ,r-pbapply)))
+     (list r-circular r-insol r-pbapply))
     (home-page "https://cran.r-project.org/web/packages/activity/")
     (synopsis "Animal activity statistics")
     (description
@@ -12536,7 +12447,7 @@ circular variables).")
         (base32
          "1a7r24j59xz3lxa5wc694j6b80j8m5l86zd1sw9pvs66l8gd98kf"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-subplex" ,r-subplex)))
+    (propagated-inputs (list r-subplex))
     (home-page "https://kingaa.github.io/ouch/")
     (synopsis "Ornstein-Uhlenbeck models for phylogenetic comparative hypotheses")
     (description
@@ -12588,17 +12499,17 @@ parametrizations of Nolan.")
 (define-public r-gsl
   (package
     (name "r-gsl")
-    (version "2.1-6")
+    (version "2.1-7.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gsl" version))
        (sha256
         (base32
-         "0p4rh7npp6qbfc5sxjq86xjn7c9ivf3pd60qf1hldwckjqin7m7m"))))
+         "118rj9kjx9rzlynvhrly19qz3yxg8jzws35971ssgzrp5lwd367f"))))
     (build-system r-build-system)
     (inputs
-     `(("gsl" ,gsl)))
+     (list gsl))
     (home-page "https://cran.r-project.org/web/packages/gsl")
     (synopsis "Wrapper for the GNU Scientific Library")
     (description
@@ -12631,21 +12542,20 @@ Anderson-Darling Distribution\".")
 (define-public r-sodium
   (package
     (name "r-sodium")
-    (version "1.1")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sodium" version))
        (sha256
         (base32
-         "1zxzi8xvxnhgcd5qrylf08nz1cdq3aslrswjas440qg63ypmbf6w"))))
+         "0x4jb3cf1nv1spz1jc9xp8hly2b4a7nj48xr4s33jnfcpdjkmn5q"))))
     (properties `((upstream-name . "sodium")))
     (build-system r-build-system)
     (inputs
-     `(("libsodium" ,libsodium)))
+     (list libsodium))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://github.com/jeroen/sodium")
     (synopsis "R bindings to the libsodium crypto library")
     (description
@@ -12669,10 +12579,9 @@ after it was discovered that the NSA had backdoored Dual EC DRBG.")
     (properties `((upstream-name . "softImpute")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)))
+     (list r-matrix))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("r-knitr" ,r-knitr)))
+     (list gfortran r-knitr))
     (home-page "https://cran.r-project.org/web/packages/softImpute")
     (synopsis "Matrix completion via iterative soft-thresholded SVD")
     (description
@@ -12695,9 +12604,9 @@ components).")
         (base32
          "0zrchp4l0jdbir2gibjf00x225y9giqk80zvqmr2yyvc12lwkw7i"))))
     (build-system r-build-system)
-    (inputs `(("fftw" ,fftw)))
+    (inputs (list fftw))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/krahim/fftwtools")
     (synopsis "Wrapper for FFTW3")
     (description
@@ -12713,21 +12622,19 @@ redundant complex conjugate when the input is real data.")
 (define-public r-tiff
   (package
     (name "r-tiff")
-    (version "0.1-8")
+    (version "0.1-10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tiff" version))
        (sha256
         (base32
-         "18m17g5q3nz4v4wrqxnb129b1j02873g2vknddczkklf1pvq4x2b"))))
+         "1zha6bzb1rmfl6n2xjkygs9wfi3ah9cjr7a6jzk4zqc5kvl58lak"))))
     (build-system r-build-system)
     (inputs
-     `(("libtiff" ,libtiff)
-       ("libjpeg" ,libjpeg-turbo)
-       ("zlib" ,zlib)))
+     (list libtiff libjpeg-turbo zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.rforge.net/tiff/")
     (synopsis "Read and write TIFF images")
     (description
@@ -12771,11 +12678,7 @@ Processing.")
     (properties `((upstream-name . "tm")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-nlp" ,r-nlp)
-       ("r-rcpp" ,r-rcpp)
-       ("r-slam" ,r-slam)
-       ("r-xml2" ,r-xml2)))
+     (list r-bh r-nlp r-rcpp r-slam r-xml2))
     (home-page "http://tm.r-forge.r-project.org/")
     (synopsis "Text mining package")
     (description
@@ -12795,7 +12698,7 @@ Processing.")
          "0ibivnhz0l06sss5rrrcvyiwg3qpbyk3qn4vx4pp90kj09x4yg0k"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "http://waveslim.blogspot.com")
     (synopsis "Basic wavelet routines for signal processing")
     (description
@@ -12820,11 +12723,10 @@ pairs (Selesnick 2001, 2002).")
          "0j96yyvm6bcrrpbdx4w26piqx44a0vbsr3px9cb4zk8a8da6jwak"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rcpp" ,r-rcpp)
-       ;; The "tm" package is only "suggested" according to CRAN, but the
-       ;; wordcloud package cannot be loaded without it.
-       ("r-tm" ,r-tm)))
+     (list r-rcolorbrewer r-rcpp
+           ;; The "tm" package is only "suggested" according to CRAN, but the
+           ;; wordcloud package cannot be loaded without it.
+           r-tm))
     (home-page "https://cran.r-project.org/web/packages/wordcloud")
     (synopsis "Word clouds")
     (description
@@ -12856,23 +12758,26 @@ maps.")
 (define-public r-tidytree
   (package
     (name "r-tidytree")
-    (version "0.3.4")
+    (version "0.3.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tidytree" version))
        (sha256
-        (base32 "0bqsb0zplkqkx2mp8kpanadkds4kwwvdrc07lp0qzwqqzaxq5xa3"))))
+        (base32 "1gnpm4zz0kvqng5s179301q0h5993ajynm8y0zbdz38qcmzfpsdk"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ape" ,r-ape)
-       ("r-dplyr" ,r-dplyr)
-       ("r-lazyeval" ,r-lazyeval)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)))
+     (list r-ape
+           r-dplyr
+           r-lazyeval
+           r-magrittr
+           r-rlang
+           r-tibble
+           r-tidyr
+           r-tidyselect
+           r-yulab-utils))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/GuangchuangYu/tidytree")
     (synopsis "Tidy tool for phylogenetic tree data manipulation")
     (description
@@ -12885,17 +12790,16 @@ manipulate tree data.")
 (define-public r-rvcheck
   (package
     (name "r-rvcheck")
-    (version "0.1.8")
+    (version "0.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rvcheck" version))
        (sha256
-        (base32 "0627bc8qmhxmd63yh6f90qni3qw1zwdpxjln2qbychzmzd4am9ac"))))
+        (base32 "09khjklvzbafd7r55496by01a9g3y291d87hpy43w44dmz9fzn9a"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-biocmanager" ,r-biocmanager)
-       ("r-rlang" ,r-rlang)))
+     (list r-biocmanager r-yulab-utils))
     (home-page "https://cran.r-project.org/web/packages/rvcheck")
     (synopsis "R package version check")
     (description
@@ -12934,7 +12838,7 @@ giving it a description in the specific format.")
         (base32
          "1xm969fjq3fv1p2sqza2apz8picibj4s2agpwf1sx9nwn3b587qs"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-matrix" ,r-matrix)))
+    (propagated-inputs (list r-matrix))
     (home-page "http://tedlab.mit.edu/~dr/SVDLIBC/")
     (synopsis "Sparse truncated singular value decomposition")
     (description
@@ -12958,8 +12862,7 @@ only sparse real matrices in Matrix package format are supported.")
          "0f37w4lj8dpcg1sfkd7cv6qpdkanmb97mnd8zih2fxzv8bpd0rfh"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)))
+     (list r-mass r-matrix))
     (home-page "https://cran.r-project.org/web/packages/speedglm")
     (synopsis "Fit linear and generalized linear models to large data sets")
     (description
@@ -12982,13 +12885,13 @@ linear models to large data sets by updating algorithms.")
     (properties `((upstream-name . "densityClust")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-fnn" ,r-fnn)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-gridextra" ,r-gridextra)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rtsne" ,r-rtsne)))
+     (list r-fnn
+           r-ggplot2
+           r-ggrepel
+           r-gridextra
+           r-rcolorbrewer
+           r-rcpp
+           r-rtsne))
     (home-page "https://cran.r-project.org/web/packages/densityClust")
     (synopsis "Clustering by fast search and find of density peaks")
     (description
@@ -13029,10 +12932,7 @@ large datasets (> 100,000 samples) very efficiently.")
     (properties `((upstream-name . "qlcMatrix")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-docopt" ,r-docopt)
-       ("r-matrix" ,r-matrix)
-       ("r-slam" ,r-slam)
-       ("r-sparsesvd" ,r-sparsesvd)))
+     (list r-docopt r-matrix r-slam r-sparsesvd))
     (home-page "https://cran.r-project.org/web/packages/qlcMatrix")
     (synopsis "Sparse matrix functions for quantitative language comparison")
     (description
@@ -13056,10 +12956,7 @@ while other are highly specific for the special data format used for
     (properties `((upstream-name . "DDRTree")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-irlba" ,r-irlba)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)))
+     (list r-bh r-irlba r-rcpp r-rcppeigen))
     (home-page "https://cran.r-project.org/web/packages/DDRTree")
     (synopsis "Learning principal graphs with DDRTree")
     (description
@@ -13076,14 +12973,14 @@ structure of any data type.")
 (define-public r-corpcor
   (package
     (name "r-corpcor")
-    (version "1.6.9")
+    (version "1.6.10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "corpcor" version))
        (sha256
         (base32
-         "1hi3i9d3841snppq1ks5pd8cliq1b4rm4dpsczmfqvwksg8snkrf"))))
+         "028fw61n61i79fhnaqx7gmdifdpbvp3yiaq9vvfrbv4k7i84r83i"))))
     (build-system r-build-system)
     (home-page "http://strimmerlab.org/software/corpcor/")
     (synopsis "Efficient estimation of covariance and (partial) correlation")
@@ -13109,9 +13006,7 @@ definiteness of a matrix.")
     (properties `((upstream-name . "RSpectra")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)))
+     (list r-matrix r-rcpp r-rcppeigen))
     (home-page "https://github.com/yixuan/RSpectra")
     (synopsis "Solvers for large-scale Eigenvalue and SVD problems")
     (description
@@ -13157,10 +13052,7 @@ diagnostics for controlling type-1 errors are also provided.")
          "0f992dmgnr6s8g3386i9bjfyf08q8srgw7sjz2yx7snj8znq7251"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-igraph" ,r-igraph)
-       ("r-lattice" ,r-lattice)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)))
+     (list r-igraph r-lattice r-mass r-matrix))
     (home-page "https://cran.r-project.org/web/packages/flare")
     (synopsis "Family of Lasso regression implementations")
     (description
@@ -13181,7 +13073,7 @@ high dimensional sparse linear models.")
         (base32
          "0yawnjw063jypk3riy9xab9cmliv6c9dnabi18670khd3gzb2r9z"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-lars" ,r-lars)))
+    (propagated-inputs (list r-lars))
     (home-page "https://github.com/lingfeiwang/lassopv")
     (synopsis "Non-parametric p-value estimation for predictors in Lasso")
     (description
@@ -13204,7 +13096,7 @@ the first time as the statistic.")
          "0mpyf2kkfdl69pdc6brl1r6101vyc6pgr7z17s55ppg3y71k4q35"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)))
+     (list r-data-table))
     (home-page "https://github.com/mrdwab/splitstackshape")
     (synopsis "Stack and reshape datasets after splitting concatenated values")
     (description
@@ -13231,7 +13123,7 @@ handle.")
          "0h9qkl15k8v17v3g9bdnfwvh2s04ywjgg5y0xn2077dmywlja1bd"))))
     (properties `((upstream-name . "TFMPvalue")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (propagated-inputs (list r-rcpp))
     (home-page "https://github.com/ge11232002/TFMPvalue")
     (synopsis "P-value computation for position weight matrices")
     (description
@@ -13256,8 +13148,7 @@ Touzet and Varre (2007).")
                 "0ss9jqrvv7bhvl5j74cjrp8r866d9dlavrbbfscwz3mhkgfx06bb"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-progress" ,r-progress)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-progress r-rcpp))
     (home-page "https://github.com/fmichonneau/rncl")
     (synopsis "Interface to the Nexus class library")
     (description "This package provides an interface to the Nexus class
@@ -13280,13 +13171,9 @@ library which allows parsing of NEXUS, Newick and other phylogenetic tree
                 "0jzr1gdvmi4l640hwwzh9bxqmpja69bn3ygnaqx37awvyh7khi2s"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ade4" ,r-ade4)
-       ("r-ape" ,r-ape)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rncl" ,r-rncl)
-       ("r-rnexml" ,r-rnexml)))
+     (list r-ade4 r-ape r-rcpp r-rncl r-rnexml))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/fmichonneau/phylobase")
     (synopsis "Base package for phylogenetic structures and comparative data")
     (description "This package provides a base @code{S4} class for comparative
@@ -13305,20 +13192,20 @@ methods, incorporating one or more trees and trait data.")
                 "1wsl4xq9w5bp3wk69dw57bg0qcw1vs6ajwya4p0w1r00ck5pwrib"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ape" ,r-ape)
-       ("r-dplyr" ,r-dplyr)
-       ("r-httr" ,r-httr)
-       ("r-lazyeval" ,r-lazyeval)
-       ("r-plyr" ,r-plyr)
-       ("r-reshape2" ,r-reshape2)
-       ("r-stringi" ,r-stringi)
-       ("r-stringr" ,r-stringr)
-       ("r-tidyr" ,r-tidyr)
-       ("r-uuid" ,r-uuid)
-       ("r-xml" ,r-xml)
-       ("r-xml2" ,r-xml2)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-ape
+           r-dplyr
+           r-httr
+           r-lazyeval
+           r-plyr
+           r-reshape2
+           r-stringi
+           r-stringr
+           r-tidyr
+           r-uuid
+           r-xml
+           r-xml2))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://docs.ropensci.org/RNeXML/")
     (synopsis "Semantically rich I/O for the NeXML Format")
     (description "This package provides access to phyloinformatic data in
@@ -13340,7 +13227,7 @@ and compatibility with @code{ape} objects.")
          "0bz10ar6hrgkvlzh9j2im24kwi3s2nnax668z40a2wj6s5xghqlr"))))
     (properties `((upstream-name . "RNifti")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (propagated-inputs (list r-rcpp))
     (home-page "https://github.com/jonclayden/RNifti")
     (synopsis "Fast R and C++ access to NIfTI images")
     (description
@@ -13372,13 +13259,13 @@ creating color scales and calculating color distances.")
 (define-public r-ore
   (package
     (name "r-ore")
-    (version "1.6.3")
+    (version "1.7.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ore" version))
        (sha256
-        (base32 "1vh6w3arrhgkfjjjw7ci91xmz4wpfr3cmwd5zkqch89dgn07skkv"))))
+        (base32 "0rs5r5h11x4l4nsbl4xqzbl4ahajd5374fq05abcmfjnjr9j64w5"))))
     (build-system r-build-system)
     (home-page "https://github.com/jonclayden/ore")
     (synopsis "R interface to the Onigmo regular expression library")
@@ -13401,7 +13288,7 @@ substitutions, amongst other features.")
         (base32
          "0zynplxqvbmf23cm2rsz3wz2jx6mv55z94mn1k44ny3lx625cnpw"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-ore" ,r-ore)))
+    (propagated-inputs (list r-ore))
     (home-page "https://github.com/jonclayden/reportr")
     (synopsis "General message and error reporting system")
     (description
@@ -13426,10 +13313,7 @@ conditional reporting based on the current \"output level\".")
     (properties `((upstream-name . "tractor.base")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ore" ,r-ore)
-       ("r-reportr" ,r-reportr)
-       ("r-rnifti" ,r-rnifti)
-       ("r-shades" ,r-shades)))
+     (list r-ore r-reportr r-rnifti r-shades))
     (home-page "https://www.tractor-mri.org.uk")
     (synopsis "Read, manipulate and visualize magnetic resonance images")
     (description
@@ -13443,20 +13327,20 @@ handling.")
 (define-public r-grimport
   (package
     (name "r-grimport")
-    (version "0.9-3")
+    (version "0.9-5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "grImport" version))
        (sha256
         (base32
-         "109mrdvq06xq3zgn9ngz0c7zzgqkv5zbpvsb2i636vmlk6y4dpkd"))))
+         "0pbzc45wgp0cpycnw0bzn65ckdszzay0zrp7c7ssxdkifp8bai3a"))))
     (properties `((upstream-name . "grImport")))
     (build-system r-build-system)
     (inputs
-     `(("ghostscript" ,ghostscript)))
+     (list ghostscript))
     (propagated-inputs
-     `(("r-xml" ,r-xml)))
+     (list r-xml))
     (home-page "https://cran.r-project.org/web/packages/grImport")
     (synopsis "Convert, import, and draw PostScript pictures")
     (description
@@ -13478,10 +13362,7 @@ PostScript pictures in R plots.")
     (properties `((upstream-name . "grImport2")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-jpeg" ,r-jpeg)
-       ("r-png" ,r-png)
-       ("r-xml" ,r-xml)))
+     (list r-base64enc r-jpeg r-png r-xml))
     (home-page "https://cran.r-project.org/web/packages/grImport2/")
     (synopsis "Import SVG graphics")
     (description
@@ -13508,7 +13389,7 @@ be imported and then exported via the @code{gridSVG} package.")
          "1ck7j13x701g67bx81x7plszz804jfhl1yg42krcj9x88vm5cscr"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (home-page "https://cran.r-project.org/web/packages/kohonen")
     (synopsis "Supervised and unsupervised self-organising maps")
     (description
@@ -13530,7 +13411,7 @@ inventor of the SOM.")
         (base32
          "07vcrrxvswrvfiha6f3ikn640yg0m2b4yd9lkmim1g0jmsmpfp8f"))))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/nnls")
     (synopsis "Lawson-Hanson algorithm for non-negative least squares")
     (description
@@ -13552,7 +13433,7 @@ the combination of non-negative and non-positive constraints.")
          "0vy6jdyvp751430sf2f690yhasjr70cpk3p3lnaaxjq3fs5gg99g"))))
     (properties `((upstream-name . "Iso")))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://www.stat.auckland.ac.nz/~rolf/")
     (synopsis "Functions to perform isotonic regression")
     (description
@@ -13576,10 +13457,7 @@ linear order on both variables.")
      `((upstream-name . "ChemometricsWithR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-devtools" ,r-devtools)
-       ("r-kohonen" ,r-kohonen)
-       ("r-mass" ,r-mass)
-       ("r-pls" ,r-pls)))
+     (list r-devtools r-kohonen r-mass r-pls))
     (home-page "https://github.com/rwehrens/CWR")
     (synopsis "Chemometrics with R")
     (description
@@ -13602,8 +13480,7 @@ Life Sciences\" by Ron Wehrens, Springer (2011).")
     (properties `((upstream-name . "ALS")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-iso" ,r-iso)
-       ("r-nnls" ,r-nnls)))
+     (list r-iso r-nnls))
     (home-page "https://cran.r-project.org/web/packages/ALS")
     (synopsis "Multivariate curve resolution alternating least squares")
     (description
@@ -13632,8 +13509,7 @@ decomposition is shared between datasets.")
          "1y022363a4pp0mnji91sjh1qiyspkh09sybqwj03r9pmwrd7q93x"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-sandwich" ,r-sandwich)
-       ("r-zoo" ,r-zoo)))
+     (list r-sandwich r-zoo))
     (home-page "https://cran.r-project.org/web/packages/strucchange")
     (synopsis "Testing, monitoring, and dating structural changes")
     (description
@@ -13701,7 +13577,7 @@ library.")
     (properties `((upstream-name . "ontologyIndex")))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/ontologyIndex")
     (synopsis "Functions for processing ontologies in R")
     (description
@@ -13722,17 +13598,17 @@ and manipulating sets of ontological terms.")
          "0fypj70c1fjmvs57birik76wfx8a2fs4gzicbb52k57i6clwlijd"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cli" ,r-cli)
-       ("r-fs" ,r-fs)
-       ("r-glue" ,r-glue)
-       ("r-httr" ,r-httr)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-rappdirs" ,r-rappdirs)
-       ("r-rlang" ,r-rlang)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-withr" ,r-withr)))
+     (list r-cli
+           r-fs
+           r-glue
+           r-httr
+           r-jsonlite
+           r-rappdirs
+           r-rlang
+           r-rstudioapi
+           r-withr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://gargle.r-lib.org")
     (synopsis "Utilities for working with Google APIs")
     (description
@@ -13754,21 +13630,21 @@ preparing, executing, and processing HTTP requests.")
          "02msq61l7vamzpvbhvalh3qil1aa7pr68pwpsivbb6pvz6p4zyns"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertthat" ,r-assertthat)
-       ("r-bit64" ,r-bit64)
-       ("r-curl" ,r-curl)
-       ("r-dbi" ,r-dbi)
-       ("r-gargle" ,r-gargle)
-       ("r-glue" ,r-glue)
-       ("r-httr" ,r-httr)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-prettyunits" ,r-prettyunits)
-       ("r-progress" ,r-progress)
-       ("r-rapidjsonr" ,r-rapidjsonr)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)))
+     (list r-assertthat
+           r-bit64
+           r-curl
+           r-dbi
+           r-gargle
+           r-glue
+           r-httr
+           r-jsonlite
+           r-lifecycle
+           r-prettyunits
+           r-progress
+           r-rapidjsonr
+           r-rcpp
+           r-rlang
+           r-tibble))
     (home-page "https://github.com/rstats-db/bigrquery")
     (synopsis "R interface to Google's BigQuery API")
     (description
@@ -13778,21 +13654,21 @@ preparing, executing, and processing HTTP requests.")
 (define-public r-gmp
   (package
     (name "r-gmp")
-    (version "0.6-2")
+    (version "0.6-2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gmp" version))
        (sha256
         (base32
-         "03kzbflgpy5sgnzxmhshs5qv7jjmfc113ybkhxys4z8y7xdv9z3b"))))
+         "1mj7hy6riaxl9n4q2cnyyjazwad90xbjszk25si968618rih4n64"))))
     (build-system r-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'set-CC
            (lambda _ (setenv "CC" "gcc") #t)))))
-    (inputs `(("gmp" ,gmp)))
+    (inputs (list gmp))
     (home-page "https://cran.r-project.org/web/packages/gmp")
     (synopsis "Multiple precision arithmetic")
     (description
@@ -13805,23 +13681,22 @@ limitations\" using the GNU Multiple Precision library.")
 (define-public r-rmpfr
   (package
     (name "r-rmpfr")
-    (version "0.8-4")
+    (version "0.8-7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Rmpfr" version))
        (sha256
         (base32
-         "0xaqbgkpnjg53zcp56c59cz5dh3jvvwqnzvyxqzy77c6yvkwy3hx"))))
+         "1ljpbxvm4agbxnab5dfffbpw5k964hy3gw57dzydq1gpbxwdphlk"))))
     (properties `((upstream-name . "Rmpfr")))
     (build-system r-build-system)
     (inputs
-     `(("mpfr" ,mpfr)
-       ("gmp" ,gmp)))
+     (list mpfr gmp))
     (propagated-inputs
-     `(("r-gmp" ,r-gmp)))
+     (list r-gmp))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://rmpfr.r-forge.r-project.org/")
     (synopsis "R bindings to the MPFR library")
     (description
@@ -13868,7 +13743,7 @@ want to include run-time testing features in their own packages.")
      `((upstream-name . "assertive.properties")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertive-base" ,r-assertive-base)))
+     (list r-assertive-base))
     (home-page "https://bitbucket.org/richierocks/assertive.properties")
     (synopsis "Assertions to check properties of variables")
     (description
@@ -13893,7 +13768,7 @@ testing features in their own packages.")
      `((upstream-name . "assertive.numbers")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertive-base" ,r-assertive-base)))
+     (list r-assertive-base))
     (home-page "https://bitbucket.org/richierocks/assertive.numbers")
     (synopsis "Assertions to check properties of numbers")
     (description
@@ -13917,7 +13792,7 @@ who want to include run-time testing features in their own packages.")
      `((upstream-name . "assertive.sets")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertive-base" ,r-assertive-base)))
+     (list r-assertive-base))
     (home-page "https://bitbucket.org/richierocks/assertive.sets")
     (synopsis "Assertions to check properties of sets")
     (description
@@ -13941,7 +13816,7 @@ who want to include run-time testing features in their own packages.")
      `((upstream-name . "assertive.matrices")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertive-base" ,r-assertive-base)))
+     (list r-assertive-base))
     (home-page "https://bitbucket.org/richierocks/assertive.matrices")
     (synopsis "Assertions to check properties of matrices")
     (description
@@ -13966,7 +13841,7 @@ packages.")
      `((upstream-name . "assertive.models")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertive-base" ,r-assertive-base)))
+     (list r-assertive-base))
     (home-page "https://bitbucket.org/richierocks/assertive.models")
     (synopsis "Assertions to check properties of models")
     (description
@@ -13990,7 +13865,7 @@ who want to include run-time testing features in their own packages.")
      `((upstream-name . "assertive.reflection")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertive-base" ,r-assertive-base)))
+     (list r-assertive-base))
     (home-page "https://bitbucket.org/richierocks/assertive.reflection")
     (synopsis "Assertions for checking the state of R")
     (description
@@ -14015,9 +13890,7 @@ want to include run-time testing features in their own packages.")
      `((upstream-name . "assertive.types")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertive-base" ,r-assertive-base)
-       ("r-assertive-properties" ,r-assertive-properties)
-       ("r-codetools" ,r-codetools)))
+     (list r-assertive-base r-assertive-properties r-codetools))
     (home-page "https://bitbucket.org/richierocks/assertive.types")
     (synopsis "Assertions to check types of variables")
     (description
@@ -14041,8 +13914,7 @@ who want to include run-time testing features in their own packages.")
      `((upstream-name . "assertive.files")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertive-base" ,r-assertive-base)
-       ("r-assertive-numbers" ,r-assertive-numbers)))
+     (list r-assertive-base r-assertive-numbers))
     (home-page "https://bitbucket.org/richierocks/assertive.files")
     (synopsis "Assertions to check properties of files")
     (description
@@ -14067,9 +13939,7 @@ packages.")
      `((upstream-name . "assertive.code")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertive-base" ,r-assertive-base)
-       ("r-assertive-properties" ,r-assertive-properties)
-       ("r-assertive-types" ,r-assertive-types)))
+     (list r-assertive-base r-assertive-properties r-assertive-types))
     (home-page "https://bitbucket.org/richierocks/assertive.code")
     (synopsis "Assertions to check properties of code")
     (description
@@ -14093,8 +13963,7 @@ who want to include run-time testing features in their own packages.")
      `((upstream-name . "assertive.datetimes")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertive-base" ,r-assertive-base)
-       ("r-assertive-types" ,r-assertive-types)))
+     (list r-assertive-base r-assertive-types))
     (home-page "https://bitbucket.org/richierocks/assertive.datetimes")
     (synopsis "Assertions to check properties of dates and times")
     (description
@@ -14119,9 +13988,7 @@ packages.")
      `((upstream-name . "assertive.strings")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertive-base" ,r-assertive-base)
-       ("r-assertive-types" ,r-assertive-types)
-       ("r-stringi" ,r-stringi)))
+     (list r-assertive-base r-assertive-types r-stringi))
     (home-page "https://bitbucket.org/richierocks/assertive.strings")
     (synopsis "Assertions to check properties of strings")
     (description
@@ -14145,8 +14012,7 @@ who want to include run-time testing features in their own packages.")
      `((upstream-name . "assertive.data.us")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertive-base" ,r-assertive-base)
-       ("r-assertive-strings" ,r-assertive-strings)))
+     (list r-assertive-base r-assertive-strings))
     (home-page "https://bitbucket.org/richierocks/assertive.data.us")
     (synopsis "Assertions to check properties of strings")
     (description
@@ -14171,8 +14037,7 @@ their own packages.")
      `((upstream-name . "assertive.data.uk")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertive-base" ,r-assertive-base)
-       ("r-assertive-strings" ,r-assertive-strings)))
+     (list r-assertive-base r-assertive-strings))
     (home-page "https://bitbucket.org/richierocks/assertive.data.uk")
     (synopsis "Assertions to check properties of strings")
     (description
@@ -14197,8 +14062,7 @@ their own packages.")
      `((upstream-name . "assertive.data")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertive-base" ,r-assertive-base)
-       ("r-assertive-strings" ,r-assertive-strings)))
+     (list r-assertive-base r-assertive-strings))
     (home-page "https://bitbucket.org/richierocks/assertive.data")
     (synopsis "Assertions to check properties of data")
     (description
@@ -14221,24 +14085,24 @@ features in their own packages.")
          "02palil82idqhhshcdjsfsja9qkqnd0dczqzj5gbccy4hfg1c0y4"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertive-base" ,r-assertive-base)
-       ("r-assertive-code" ,r-assertive-code)
-       ("r-assertive-data" ,r-assertive-data)
-       ("r-assertive-data-uk" ,r-assertive-data-uk)
-       ("r-assertive-data-us" ,r-assertive-data-us)
-       ("r-assertive-datetimes" ,r-assertive-datetimes)
-       ("r-assertive-files" ,r-assertive-files)
-       ("r-assertive-matrices" ,r-assertive-matrices)
-       ("r-assertive-models" ,r-assertive-models)
-       ("r-assertive-numbers" ,r-assertive-numbers)
-       ("r-assertive-properties" ,r-assertive-properties)
-       ("r-assertive-reflection" ,r-assertive-reflection)
-       ("r-assertive-sets" ,r-assertive-sets)
-       ("r-assertive-strings" ,r-assertive-strings)
-       ("r-assertive-types" ,r-assertive-types)
-       ("r-knitr" ,r-knitr)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-assertive-base
+           r-assertive-code
+           r-assertive-data
+           r-assertive-data-uk
+           r-assertive-data-us
+           r-assertive-datetimes
+           r-assertive-files
+           r-assertive-matrices
+           r-assertive-models
+           r-assertive-numbers
+           r-assertive-properties
+           r-assertive-reflection
+           r-assertive-sets
+           r-assertive-strings
+           r-assertive-types
+           r-knitr))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bitbucket.org/richierocks/assertive")
     (synopsis "Readable check functions to ensure code integrity")
     (description
@@ -14260,7 +14124,7 @@ to throw errors if they aren't in the right form.")
          "1im5k8jbviwj2i42mq1kmjskh80isa7jr9w8i0fknidrzzy2h2zi"))))
     (properties `((upstream-name . "dotCall64")))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://git.math.uzh.ch/reinhard.furrer/dotCall64")
     (synopsis "Enhanced foreign function interface supporting long vectors")
     (description
@@ -14283,10 +14147,9 @@ This makes it a convenient and fast interface to C/C++ and Fortran code.")
         (base32 "03c50wfyrzcmrcv9mkgj8dmdg2cwkh4p4ys8gaclr8w7ym45qav3"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dotcall64" ,r-dotcall64)))
+     (list r-dotcall64))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("r-knitr" ,r-knitr)))
+     (list gfortran r-knitr))
     (home-page "https://www.math.uzh.ch/pages/spam/")
     (synopsis "Sparse matrix algebra")
     (description
@@ -14305,20 +14168,18 @@ Differences with other sparse matrix packages are:
 (define-public r-fields
   (package
     (name "r-fields")
-    (version "12.5")
+    (version "13.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fields" version))
        (sha256
-        (base32 "08jfqlz42vq23h2yq279cs2rva9fadi4q6cmk4dvixrmyprx5xyk"))))
+        (base32 "1hs4k5a9hh0r5fsrnpnvs6wvf78xpjzj8a2j6643dsz73a5q6ln6"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-maps" ,r-maps)
-       ("r-spam" ,r-spam)
-       ("r-viridis" ,r-viridis)))
+     (list r-maps r-spam r-viridis))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://www.image.ucar.edu/fields")
     (synopsis "Tools for spatial data")
     (description
@@ -14343,8 +14204,7 @@ covariance functions for large data sets.")
      `((upstream-name . "SpatialExtremes")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-fields" ,r-fields)
-       ("r-maps" ,r-maps)))
+     (list r-fields r-maps))
     (home-page "http://spatialextremes.r-forge.r-project.org/")
     (synopsis "Modelling spatial extremes")
     (description
@@ -14369,12 +14229,12 @@ max-stable processes only), model checking and selection and prediction.")
          "0c8xn8ripzq270hy8d16fcnx02l02alddznd7fqwk3jyi6113h1y"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-car" ,r-car)
-       ("r-gtools" ,r-gtools)
-       ("r-mass" ,r-mass)
-       ("r-multcomp" ,r-multcomp)
-       ("r-plotrix" ,r-plotrix)
-       ("r-scales" ,r-scales)))
+     (list r-car
+           r-gtools
+           r-mass
+           r-multcomp
+           r-plotrix
+           r-scales))
     (home-page "https://cran.r-project.org/web/packages/drc")
     (synopsis "Analysis of dose-response curves")
     (description
@@ -14415,7 +14275,7 @@ for association and heterogeneity.")
         (base32
          "1546jqhhw5h177ii8jkdikyd26rv6gwkav816np1zks4p7zgsljj"))))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/bootstrap")
     (synopsis "Functions for the book \"An Introduction to the Bootstrap\"")
     (description
@@ -14467,16 +14327,16 @@ discovery rates.")
 (define-public r-longitudinal
   (package
     (name "r-longitudinal")
-    (version "1.1.12")
+    (version "1.1.13")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "longitudinal" version))
        (sha256
         (base32
-         "1d83ws28nxi3kw5lgd5n5y7865djq7ky72fw3ddi1fkkhg1r9y6l"))))
+         "046w3xbr535c5jyd68adv42a7limxp1mv57b5w6w673w707lmw2p"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-corpcor" ,r-corpcor)))
+    (propagated-inputs (list r-corpcor))
     (home-page "http://strimmerlab.org/software/longitudinal/")
     (synopsis "Analysis of multiple time course data")
     (description
@@ -14489,20 +14349,18 @@ dynamical correlation and dynamical covariance.")
 (define-public r-genenet
   (package
     (name "r-genenet")
-    (version "1.2.15")
+    (version "1.2.16")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "GeneNet" version))
        (sha256
         (base32
-         "11ba6ahsk3x9alvcw8bai2bpg84ki1m8nadrjjdhjg65svhw8njm"))))
+         "1r1khga3nxxjghs4vnbymzp0cwb1q17zw2v3a94qz8fsrirq1sf1"))))
     (properties `((upstream-name . "GeneNet")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-corpcor" ,r-corpcor)
-       ("r-fdrtool" ,r-fdrtool)
-       ("r-longitudinal" ,r-longitudinal)))
+     (list r-corpcor r-fdrtool r-longitudinal))
     (home-page "http://strimmerlab.org/software/genenet/")
     (synopsis "Modeling and inferring gene networks")
     (description
@@ -14525,9 +14383,9 @@ putative directions).")
         (base32
          "0qj37ljdva3v29s01dkrbg31mcfzy3bl145cp40d54v4h9xhcghc"))))
     (build-system r-build-system)
-    (inputs `(("zlib" ,zlib)))
+    (inputs (list zlib))
     (propagated-inputs
-     `(("r-refgenome" ,r-refgenome)))
+     (list r-refgenome))
     (home-page "https://cran.r-project.org/web/packages/rbamtools")
     (synopsis "Read and write BAM (binary alignment) files")
     (description
@@ -14538,17 +14396,17 @@ library.")
 (define-public r-protviz
   (package
     (name "r-protviz")
-    (version "0.6.8")
+    (version "0.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "protViz" version))
        (sha256
         (base32
-         "0rn8fjg7791a4j2k1kk1jwx40xz20bfaavvflmhyzpl398vmmy3a"))))
+         "0l1pmfr9kmc90rl5s9b0141451rxrjmiiasp3lsvl2x3ps0smqaj"))))
     (properties `((upstream-name . "protViz")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (propagated-inputs (list r-rcpp))
     (home-page "https://github.com/protViz/protViz/")
     (synopsis "Visualizing and analyzing mass spectrometry data in proteomics")
     (description
@@ -14571,9 +14429,9 @@ But it can also be used to do data analysis for small scale data sets.")
         (base32 "1xnx2zanw548prxsw2zw5cddkkg6kj97jgyzw67achq5mnsvfbg8"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-survival" ,r-survival)))
+     (list r-survival))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/cmprsk")
     (synopsis "Subdistribution analysis of competing risks")
     (description
@@ -14598,11 +14456,7 @@ JASA, 94:496-509.")
          "1hvrplmdpjjpjji663rw0vjbbrzj2nvr04d1nkc8bf46p4ixyxgy"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-lattice" ,r-lattice)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-survival" ,r-survival)))
+     (list r-data-table r-lattice r-rcpp r-rcpparmadillo r-survival))
     (home-page "https://cran.r-project.org/web/packages/etm")
     (synopsis "Empirical transition matrix")
     (description
@@ -14625,18 +14479,18 @@ model with finite state space using the Aalen-Johansen estimator.")
     (properties `((upstream-name . "Epi")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cmprsk" ,r-cmprsk)
-       ("r-data-table" ,r-data-table)
-       ("r-dplyr" ,r-dplyr)
-       ("r-etm" ,r-etm)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-mgcv" ,r-mgcv)
-       ("r-numderiv" ,r-numderiv)
-       ("r-plyr" ,r-plyr)
-       ("r-purrr" ,r-purrr)
-       ("r-survival" ,r-survival)
-       ("r-zoo" ,r-zoo)))
+     (list r-cmprsk
+           r-data-table
+           r-dplyr
+           r-etm
+           r-mass
+           r-matrix
+           r-mgcv
+           r-numderiv
+           r-plyr
+           r-purrr
+           r-survival
+           r-zoo))
     (home-page "https://BendixCarstensen.com/Epi/")
     (synopsis "Statistical analysis in epidemiology")
     (description
@@ -14662,7 +14516,7 @@ number of epidemiological data sets.")
         (base32
          "1zyrisy3c4cz896j1bjh61sf57wdl9p8ywdq268cl819szfq78mx"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-mass" ,r-mass)))
+    (propagated-inputs (list r-mass))
     (home-page "https://cran.r-project.org/web/packages/ppls")
     (synopsis "Penalized partial least squares")
     (description
@@ -14684,11 +14538,7 @@ regression coefficients can be conducted via jackknifing.")
         (base32 "1sl457a1lndrx98y2j9a2smanawx2iqlhl82iand0g3p5xp8ch4j"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-igraph" ,r-igraph)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)))
+     (list r-igraph r-mass r-matrix r-rcpp r-rcppeigen))
     (home-page "https://cran.r-project.org/web/packages/huge")
     (synopsis "High-dimensional undirected graph estimation")
     (description
@@ -14710,11 +14560,7 @@ screening, graph estimation, and model selection techniques into a pipeline.")
          "0vgs6k92vdr0cmb8cwbv2ff6qavw30agskfd8bfh17hsskrisvx0"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-epi" ,r-epi)
-       ("r-genenet" ,r-genenet)
-       ("r-glmnet" ,r-glmnet)
-       ("r-mass" ,r-mass)
-       ("r-ppls" ,r-ppls)))
+     (list r-epi r-genenet r-glmnet r-mass r-ppls))
     (home-page "https://cran.r-project.org/web/packages/parcor")
     (synopsis "Regularized estimation of partial correlation matrices")
     (description
@@ -14766,7 +14612,7 @@ by change of variable.")
          (add-after 'unpack 'set-HOME
            (lambda _ (setenv "HOME" "/tmp"))))))
     (native-inputs
-     `(("r-r-rsp" ,r-r-rsp))) ; vignette builder
+     (list r-r-rsp)) ; vignette builder
     (home-page "https://github.com/HenrikBengtsson/listenv")
     (synopsis "Environments behaving (almost) as lists")
     (description
@@ -14789,7 +14635,7 @@ subsetting.")
          "1wrjiiif6rpc268zz79pvpw33si6n6ffgxdnxmmcracwhb5vqg90"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-codetools" ,r-codetools)))
+     (list r-codetools))
     (home-page "https://github.com/HenrikBengtsson/globals")
     (synopsis "Identify global objects in R expressions")
     (description
@@ -14803,14 +14649,14 @@ them in distributed compute environments.")
 (define-public r-parallelly
   (package
     (name "r-parallelly")
-    (version "1.27.0")
+    (version "1.29.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "parallelly" version))
        (sha256
         (base32
-         "1xxy9wcfs5s7s4926dlxmdy6mxdh7dlj2siwcbqk8hl9614dqmb3"))))
+         "0a84lr2jqqnvmdayb9v9kv7m8rffp65s4s1wcalr96sl3cxypyc7"))))
     (properties `((upstream-name . "parallelly")))
     (build-system r-build-system)
     (home-page "https://github.com/HenrikBengtsson/parallelly")
@@ -14831,14 +14677,14 @@ port-forwarding to your local computer.")
 (define-public r-future
   (package
     (name "r-future")
-    (version "1.21.0")
+    (version "1.23.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "future" version))
        (sha256
         (base32
-         "0bfiy17n5rghxw0702k0vgpjkk13268lniifdlx59flf0q16d7lh"))))
+         "1y5qzpsg0r2dccynyybbb2ngxbl1y3phs1dq2jj3f2bwhc7chsfq"))))
     (build-system r-build-system)
     (arguments
      `(#:phases
@@ -14846,12 +14692,9 @@ port-forwarding to your local computer.")
          (add-after 'unpack 'set-HOME
            (lambda _ (setenv "HOME" "/tmp"))))))
     (propagated-inputs
-     `(("r-digest" ,r-digest)
-       ("r-globals" ,r-globals)
-       ("r-listenv" ,r-listenv)
-       ("r-parallelly" ,r-parallelly)))
+     (list r-digest r-globals r-listenv r-parallelly))
     (native-inputs
-     `(("r-r-rsp" ,r-r-rsp))) ; vignette builder
+     (list r-r-rsp)) ; vignette builder
     (home-page "https://github.com/HenrikBengtsson/future")
     (synopsis "Unified parallel and distributed processing in R")
     (description
@@ -14885,10 +14728,9 @@ the local machine to, say, distributed processing on a remote compute cluster.")
          (add-after 'unpack 'set-HOME
            (lambda _ (setenv "HOME" "/tmp"))))))
     (propagated-inputs
-     `(("r-future" ,r-future)
-       ("r-globals" ,r-globals)))
+     (list r-future r-globals))
     (native-inputs
-     `(("r-r-rsp" ,r-r-rsp))) ; vignette builder
+     (list r-r-rsp)) ; vignette builder
     (home-page "https://github.com/HenrikBengtsson/future.apply")
     (synopsis "Apply function to elements in parallel using futures")
     (description
@@ -14912,7 +14754,7 @@ machine or distributed on a compute cluster.")
          "07p2hjmpcwcsang8z9sjkpy94rydcin7m3hyvcgzgm5cd6w8c1p4"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)))
+     (list r-matrix))
     (home-page "https://github.com/erichson/rSVD")
     (synopsis "Randomized singular value decomposition")
     (description
@@ -14944,11 +14786,7 @@ functions are provided.")
          "00fk5fr5zsk2qxc1kfhmshhjxgnamm3401089sx8m2l529zd6r8j"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-codetools" ,r-codetools)
-       ("r-crayon" ,r-crayon)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)))
+     (list r-codetools r-crayon r-purrr r-rlang r-tibble))
     (home-page "https://github.com/r-lib/sloop")
     (synopsis "Helpers for object-oriented programming in R")
     (description
@@ -14969,7 +14807,7 @@ using @code{S3}.")
         (base32
          "1aa76ir1kp67hiz7dr60azyc71yzslshyc640fjh0fpw0sp5kwbc"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-mass" ,r-mass)))
+    (propagated-inputs (list r-mass))
     (home-page "https://cran.r-project.org/web/packages/capushe/index.html")
     (synopsis "Calibrating penalties using slope heuristics")
     (description
@@ -14992,9 +14830,7 @@ heuristics.")
     (properties `((upstream-name . "doRNG")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-foreach" ,r-foreach)
-       ("r-iterators" ,r-iterators)
-       ("r-rngtools" ,r-rngtools)))
+     (list r-foreach r-iterators r-rngtools))
     (home-page "https://renozao.github.io/doRNG/")
     (synopsis "Generic reproducible parallel backend for foreach loops")
     (description
@@ -15009,18 +14845,18 @@ chosen parallel environment and associated foreach backend.")
 (define-public r-blockmodeling
   (package
     (name "r-blockmodeling")
-    (version "1.0.0")
+    (version "1.0.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "blockmodeling" version))
        (sha256
         (base32
-         "1z4w2kq0id0gb5d0lqcdaw3clplhzywarkpvvx3drivdypzl237i"))))
+         "1vc8gy4slsywcwxq532373i0dq73fhs5cac9mr6zz2pjaaxjghhq"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)))
-    (native-inputs `(("gfortran" ,gfortran)))
+     (list r-matrix))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/blockmodeling")
     (synopsis "Generalized and classical blockmodeling of valued networks")
     (description
@@ -15044,10 +14880,7 @@ algorithms) can be computed and partitioned matrices can be plotted.")
     (properties `((upstream-name . "UpSetR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-plyr" ,r-plyr)
-       ("r-scales" ,r-scales)))
+     (list r-ggplot2 r-gridextra r-plyr r-scales))
     (home-page "https://github.com/hms-dbmi/UpSetR")
     (synopsis "Visualize intersecting sets")
     (description
@@ -15076,8 +14909,7 @@ several common set, element and attribute related tasks.")
     ;; non-interactively.
     (arguments '(#:tests? #f))
     (propagated-inputs
-     `(("r-htmltools" ,r-htmltools)
-       ("r-shiny" ,r-shiny)))
+     (list r-htmltools r-shiny))
     (home-page "https://ebailey78.github.io/shinyBS/")
     (synopsis "Twitter Bootstrap components for Shiny")
     (description
@@ -15113,13 +14945,9 @@ several common set, element and attribute related tasks.")
                  (invoke "esbuild" source "--minify"
                          (string-append "--outfile=" target)))))))))
     (propagated-inputs
-     `(("r-htmltools" ,r-htmltools)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-shiny" ,r-shiny)))
+     (list r-htmltools r-htmlwidgets r-jsonlite r-shiny))
     (native-inputs
-     `(("r-knitr" ,r-knitr)
-       ("esbuild" ,esbuild)))
+     (list r-knitr esbuild))
     (home-page "https://github.com/yang-tang/shinyjqui")
     (synopsis "jQuery UI interactions and effects for Shiny")
     (description
@@ -15158,8 +14986,7 @@ identifying outliers.")
         (base32 "154glks7rsjkza0sfi1kj7wj727py9sl1ba6sswflwmwc9n226q6"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)))
+     (list r-rcpp r-rcpparmadillo))
     (home-page "http://www.perossi.org/home/bsm-1")
     (synopsis "Bayesian inference for marketing/micro-econometrics")
     (description
@@ -15216,7 +15043,7 @@ tensors.")
          "12h2y46xcfldhjdmm960swgn9b23zvkj5vg2bi42s9qxwgi02d63"))))
     (properties `((upstream-name . "rARPACK")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-rspectra" ,r-rspectra)))
+    (propagated-inputs (list r-rspectra))
     (home-page "https://github.com/yixuan/rARPACK")
     (synopsis "Solvers for large scale eigenvalue and SVD problems")
     (description
@@ -15240,12 +15067,9 @@ users of rARPACK are advised to switch to the RSpectra package.")
          "05pji62pzgfk9dyiybmr16q0h6mdzsmvyzxdni3hn0dvl4a7mr5m"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bayesm" ,r-bayesm)
-       ("r-mass" ,r-mass)
-       ("r-robustbase" ,r-robustbase)
-       ("r-tensora" ,r-tensora)))
+     (list r-bayesm r-mass r-robustbase r-tensora))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "http://www.stat.boogaart.de/compositions")
     (synopsis "Compositional data analysis")
     (description
@@ -15267,8 +15091,7 @@ numbers (e.g. concentrations).")
          "0hiw5smk6kgk0gb9840kcqkhkybl7n30s77xhjc395x09izbgix1"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-quantreg" ,r-quantreg)
-       ("r-sparsem" ,r-sparsem)))
+     (list r-quantreg r-sparsem))
     (home-page "https://cran.r-project.org/web/packages/cobs")
     (synopsis "Constrained B-Splines (sparse matrix based)")
     (description
@@ -15290,8 +15113,7 @@ splines via linear programming and sparse matrices.")
     (properties `((upstream-name . "DrImpute")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)))
+     (list r-rcpp r-rcpparmadillo))
     (home-page "https://github.com/ikwak2/DrImpute")
     (synopsis "Imputing dropout events in single-cell RNA-Seq data")
     (description
@@ -15304,16 +15126,16 @@ such software by imputing dropout events.")
 (define-public r-gamlss-dist
   (package
     (name "r-gamlss-dist")
-    (version "5.3-2")
+    (version "6.0-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gamlss.dist" version))
        (sha256
-        (base32 "1lyf2rvkplywgyhcni93k52z3b89vv86yrgl38dx3ln3436r5ahc"))))
+        (base32 "0m41n7zf7m0mh1w9ql70wqnzsf2f013ql699im7zmp6fdggb8qxm"))))
     (properties `((upstream-name . "gamlss.dist")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-mass" ,r-mass)))
+    (propagated-inputs (list r-mass))
     (home-page "http://www.gamlss.org/")
     (synopsis "Distributions for Generalized Additive Models for location scale and shape")
     (description
@@ -15342,12 +15164,9 @@ transformation, respectively.")
          "1zzq356dvd8ciajy6r5n4ybgx9xk7ydwv25j86xlcsqznkxdkkf2"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-digest" ,r-digest)
-       ("r-htmltools" ,r-htmltools)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-shiny" ,r-shiny)))
+     (list r-digest r-htmltools r-jsonlite r-shiny))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://deanattali.com/shinyjs")
     (synopsis "Improve the user experience of your Shiny apps")
     (description
@@ -15364,63 +15183,53 @@ to easily call your own custom JavaScript functions from R.")
 (define-public r-colourpicker
   (package
     (name "r-colourpicker")
-    (version "1.1.0")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "colourpicker" version))
        (sha256
         (base32
-         "1qjispj7i12m02js5cm5xlgn5lyff0kc5ybz6lbknz8q5lkbdyrd"))))
+         "1q1wi3g403fbzp4ys3gsjbwdc86x770cx323qgi47ca8n219kl50"))))
     (build-system r-build-system)
     (arguments
-     `(#:modules ((guix build utils)
-                  (guix build r-build-system)
-                  (srfi srfi-1)
-                  (ice-9 popen))
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'process-javascript
            (lambda* (#:key inputs #:allow-other-keys)
              (with-directory-excursion "inst"
-               (call-with-values
-                   (lambda ()
-                     (unzip2
+               (let ((mapping
                       `((,(assoc-ref inputs "js-salvattore")
-                         "examples/colourInput/www/salvattore.min.js")
+                         . "examples/colourInput/www/salvattore.min.js")
                         (,(assoc-ref inputs "js-jquery")
-                         "htmlwidgets/lib/jquery/jquery.min.js")
+                         . "htmlwidgets/lib/jquery/jquery.min.js")
                         ("www/shared/colourpicker/js/colourpicker.js"
-                         "www/shared/colourpicker/js/colourpicker.min.js"))))
-                 (lambda (sources targets)
-                   (for-each (lambda (source target)
-                               (format #t "Processing ~a --> ~a~%"
-                                       source target)
-                               (delete-file target)
-                               (let ((minified (open-pipe* OPEN_READ "uglify-js" source)))
-                                 (call-with-output-file target
-                                   (lambda (port)
-                                     (dump-port minified port)))))
-                             sources targets))))
-             #t)))))
-    (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-htmltools" ,r-htmltools)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-miniui" ,r-miniui)
-       ("r-shiny" ,r-shiny)
-       ("r-shinyjs" ,r-shinyjs)))
+                         . "www/shared/colourpicker/js/colourpicker.min.js"))))
+                 (for-each (lambda (source target)
+                             (format #true "Processing ~a --> ~a~%"
+                                     source target)
+                             (delete-file target)
+                             (invoke "esbuild" source "--minify"
+                                     (string-append "--outfile=" target)))
+                           (map car mapping)
+                           (map cdr mapping)))))))))
+    (propagated-inputs
+     (list r-ggplot2
+           r-htmltools
+           r-htmlwidgets
+           r-jsonlite
+           r-miniui
+           r-shiny
+           r-shinyjs))
     (native-inputs
-     `(("r-knitr" ,r-knitr)
-       ("uglify-js" ,uglify-js)
+     `(("esbuild" ,esbuild)
        ("js-jquery"
         ,(origin
            (method url-fetch)
-           (uri "https://code.jquery.com/jquery-3.3.1.js")
+           (uri "https://code.jquery.com/jquery-1.11.3.js")
            (sha256
             (base32
-             "1b8zxrp6xwzpw25apn8j4qws0f6sr7qr7h2va5h1mjyfqvn29anq"))))
+             "1v956yf5spw0156rni5z77hzqwmby7ajwdcd6mkhb6zvl36awr90"))))
        ("js-salvattore"
         ,(origin
            (method url-fetch)
@@ -15453,16 +15262,16 @@ select colors to use in your R code.")
     (properties `((upstream-name . "ggExtra")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-colourpicker" ,r-colourpicker)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gtable" ,r-gtable)
-       ("r-miniui" ,r-miniui)
-       ("r-r6" ,r-r6)
-       ("r-scales" ,r-scales)
-       ("r-shiny" ,r-shiny)
-       ("r-shinyjs" ,r-shinyjs)))
+     (list r-colourpicker
+           r-ggplot2
+           r-gtable
+           r-miniui
+           r-r6
+           r-scales
+           r-shiny
+           r-shinyjs))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/daattali/ggExtra")
     (synopsis "Marginal histograms for ggplot2 and other enhancements")
     (description
@@ -15484,7 +15293,7 @@ marginal histograms/boxplots/density plots to ggplot2 scatterplots.")
          "18ym2pdql5vzngc7q5gn66d153hrfrnd8ilv8yh6vd7j7sx7vjql"))))
     (properties `((upstream-name . "minpack.lm")))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/minpack.lm")
     (synopsis "Levenberg-Marquardt Nonlinear Least-Squares algorithm")
     (description
@@ -15528,9 +15337,9 @@ them (Anscombe-Glynn, D'Agostino, Bonett-Seier).")
          "1wm83m3cqd6llxb9p2jwim0wb81v84pgdmgcznygzaaq6kbn3n84"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mclust" ,r-mclust)))
+     (list r-mclust))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/msir")
     (synopsis "Model-based sliced inverse regression")
     (description
@@ -15550,7 +15359,7 @@ mixture modeling of inverse regression.")
         (base32
          "05jzrjqxzbcf6z245hlk7sjxiszv9paadaaimvcx5y5qgi87vhq7"))))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://github.com/brentonk/pbivnorm")
     (synopsis "Vectorized bivariate normal CDF")
     (description
@@ -15571,10 +15380,7 @@ probabilities from a standard bivariate normal CDF.")
          "12hhbwxaiprs9bmclwhhdpv42h4mrl4gj92zq3wk8rb883mw816l"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-mnormt" ,r-mnormt)
-       ("r-numderiv" ,r-numderiv)
-       ("r-pbivnorm" ,r-pbivnorm)))
+     (list r-mass r-mnormt r-numderiv r-pbivnorm))
     (home-page "https://lavaan.ugent.be")
     (synopsis "Latent variable analysis")
     (description
@@ -15596,12 +15402,9 @@ latent growth curve models.")
          "1ddaqwx8i3ygwvxf11mc8xhgk4nkvnail99nr5szq8i168752zq2"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-compquadform" ,r-compquadform)
-       ("r-lavaan" ,r-lavaan)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-sandwich" ,r-sandwich)))
+     (list r-compquadform r-lavaan r-mvtnorm r-sandwich))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/nonnest2/")
     (synopsis "Tests of non-nested models")
     (description
@@ -15625,9 +15428,7 @@ obtain confidence intervals associated with AIC and BIC.")
          "1zcrwa93mc27qj3g4ayc2k895r6g8q0g6qb2azmvj7wqk750va7a"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-survival" ,r-survival)))
+     (list r-rcpp r-rcpparmadillo r-survival))
     (home-page "https://cran.r-project.org/web/packages/penalized/")
     (synopsis "Penalized estimation in GLMs and in the Cox model")
     (description
@@ -15653,7 +15454,7 @@ parameters.")
          "0scyfjn4ilsvha3x41c3b8bcfi31hlhwm77wn2a8hj5dsvnnmzig"))))
     (properties `((upstream-name . "ZIM")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-mass" ,r-mass)))
+    (propagated-inputs (list r-mass))
     (home-page "https://github.com/biostatstudio/ZIM")
     (synopsis "Zero-inflated models (ZIM) for count time series with excess zeros")
     (description
@@ -15712,21 +15513,20 @@ graphs.")
 (define-public r-pbdzmq
   (package
     (name "r-pbdzmq")
-    (version "0.3-5")
+    (version "0.3-6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pbdZMQ" version))
        (sha256
         (base32
-         "1v8iv1pzs4j3ics9k9h4xjkv6z1ma2xbqy003xk2lqax6srqi02d"))))
+         "0yy3x3l04vx13jbjbvkvsc8jdbf0abndjfknszdx3bi18b2chi4r"))))
     (properties `((upstream-name . "pbdZMQ")))
     (build-system r-build-system)
     (inputs
-     `(("zeromq" ,zeromq)
-       ("zlib" ,zlib)))
+     (list zeromq zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://pbdr.org/")
     (synopsis "R interface to ZeroMQ")
     (description
@@ -15750,10 +15550,7 @@ compatible with @code{rzmq} are also provided.")
          "0qimllv9pn8wsl550bjkp5dkknbmr69j85mrwfbbq75m2ga466sk"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-htmltools" ,r-htmltools)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-pillar" ,r-pillar)))
+     (list r-base64enc r-htmltools r-jsonlite r-pillar))
     (home-page "https://cran.r-project.org/web/packages/repr/")
     (synopsis "Serializable representations")
     (description
@@ -15775,7 +15572,7 @@ several formats and MIME types.")
     (properties `((upstream-name . "IRdisplay")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-repr" ,r-repr)))
+     (list r-repr))
     (home-page "https://cran.r-project.org/web/packages/IRdisplay/")
     (synopsis "Jupyter display machinery")
     (description
@@ -15816,18 +15613,18 @@ running IRkernel session.")
                   (string-append "[\"" (which "R") "\",")))
                #t))))))
     (inputs
-     `(("jupyter" ,jupyter)))
-    (propagated-inputs
-     `(("r-crayon" ,r-crayon)
-       ("r-digest" ,r-digest)
-       ("r-evaluate" ,r-evaluate)
-       ("r-irdisplay" ,r-irdisplay)
-       ("r-jsonlite" ,r-jsonlite)
-       ;; sets R_LIBS_SITE, so R can actually find this package (IRkernel)
-       ("r-minimal" ,r-minimal)
-       ("r-pbdzmq" ,r-pbdzmq)
-       ("r-repr" ,r-repr)
-       ("r-uuid" ,r-uuid)))
+     (list jupyter))
+    (propagated-inputs
+     (list r-crayon
+           r-digest
+           r-evaluate
+           r-irdisplay
+           r-jsonlite
+           ;; sets R_LIBS_SITE, so R can actually find this package (IRkernel)
+           r-minimal
+           r-pbdzmq
+           r-repr
+           r-uuid))
     (home-page "https://cran.r-project.org/web/packages/IRkernel/")
     (synopsis "Native R kernel for Jupyter")
     (description
@@ -15849,8 +15646,7 @@ network.")
          "0s8kd8krqk4kwv2zqxpsfy3w8qdwf5naf4b5l383vidq9sil0qb2"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-gdata" ,r-gdata)
-       ("r-mass" ,r-mass)))
+     (list r-gdata r-mass))
     (home-page "https://cran.r-project.org/web/packages/gmodels/")
     (synopsis "Various R programming tools for model fitting")
     (description
@@ -15870,8 +15666,7 @@ network.")
          "0lzf2jqm56i74wif6x5sw3j0w2qc4sni49zq2fgbl89b7lwkvchj"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-matrix r-rcpp))
     (home-page "https://cran.r-project.org/web/packages/apcluster/")
     (synopsis "Affinity propagation clustering")
     (description
@@ -15895,16 +15690,16 @@ plotting functions are available for analyzing clustering results.")
          "1lzdlw0mw06rymyjzwf4i8rx1z6zxpwxxqfsc9ggqlnhq6bfhy93"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-broom" ,r-broom)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-rcpp" ,r-rcpp)
-       ("r-readr" ,r-readr)
-       ("r-rlang" ,r-rlang)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)))
+     (list r-broom
+           r-dplyr
+           r-ggplot2
+           r-rcpp
+           r-readr
+           r-rlang
+           r-stringr
+           r-tibble))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/rnabioco/valr")
     (synopsis "Genome interval arithmetic in R")
     (description
@@ -15926,7 +15721,7 @@ R, enabling interactive analysis and visualization of genome-scale data.")
          "1fzpz8vhghw8ygwg6rsvfy3783pqk7ch029i5851lwypkplvz77y"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-tibble" ,r-tibble)))
+     (list r-tibble))
     (home-page "https://github.com/r-lib/rematch2")
     (synopsis "Tidy output from regular expression matching")
     (description
@@ -15947,9 +15742,7 @@ return the match results in tidy data frames.")
          "19savjzj44b7ifdxcp02ynj22z4n4ikq2aipc74ljzy3yykmqmjn"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ape" ,r-ape)
-       ("r-nlme" ,r-nlme)
-       ("r-vegan" ,r-vegan)))
+     (list r-ape r-nlme r-vegan))
     (home-page "https://cran.r-project.org/web/packages/picante/")
     (synopsis "Integrating phylogenies and ecology")
     (description
@@ -15976,10 +15769,7 @@ al. (2010).")
          "176z2q69p24i29a8sh19xxn2zl3h1z2ixdssr5i6m4yvkvdrvv3b"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-checkmate" ,r-checkmate)
-       ("r-nnet" ,r-nnet)
-       ("r-purrr" ,r-purrr)
-       ("r-r6" ,r-r6)))
+     (list r-checkmate r-nnet r-purrr r-r6))
     (home-page "https://markusdumke.github.io/reinforcelearn")
     (synopsis "Reinforcement learning")
     (description
@@ -16002,16 +15792,16 @@ can be used with function approximation, eligibility traces (Singh & Sutton,
          "1y3ljidhqdakxlya2npj2w0az820g8kw6gl1cfm4f0cxvzgd1ly4"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-gtable" ,r-gtable)
-       ("r-knitr" ,r-knitr)
-       ("r-lattice" ,r-lattice)
-       ("r-plyr" ,r-plyr)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)))
+     (list r-ggplot2
+           r-gridextra
+           r-gtable
+           r-knitr
+           r-lattice
+           r-plyr
+           r-rlang
+           r-scales))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/stefanedwards/lemon")
     (synopsis "Freshen up your ggplot2 plots")
     (description
@@ -16032,8 +15822,7 @@ extensions.")
         (base32 "1qiyfkpsbzjr9xsq5kqq6rlqpndngkn2irdfh3gyi45h6hn118j4"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-qtl" ,r-qtl)))
+     (list r-ggplot2 r-qtl))
     (home-page "https://cran.r-project.org/web/packages/wgaim")
     (synopsis "Whole genome average interval mapping for QTL detection")
     (description
@@ -16054,16 +15843,16 @@ whole genome approach to detecting significant QTL in linkage maps.")
          "0zpqvyjgwyqawxm8qrhcv8zq2b3yxgcqkkc87br29yrl7sjb8h6j"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-r-utils" ,r-r-utils)
-       ("r-testthat" ,r-testthat)
-       ("r-venndiagram" ,r-venndiagram)
-       ("r-yaml" ,r-yaml)
-       ("bedops" ,bedops)
-       ("bedtools" ,bedtools)
-       ("htslib" ,htslib))) ; for tabix
+     (list r-data-table
+           r-r-utils
+           r-testthat
+           r-venndiagram
+           r-yaml
+           bedops
+           bedtools
+           htslib)) ; for tabix
     (native-inputs
-     `(("r-knitr" ,r-knitr))) ; for vignettes
+     (list r-knitr)) ; for vignettes
     (home-page "https://cran.r-project.org/web/packages/bedr")
     (synopsis "Genomic region processing")
     (description
@@ -16077,14 +15866,14 @@ additional utilities for genomic regions processing.")
 (define-public r-sets
   (package
     (name "r-sets")
-    (version "1.0-18")
+    (version "1.0-19")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sets" version))
        (sha256
         (base32
-         "16v7650p47khqrbbw0z98llmwmmhswqmhri0n7nrfhdqwmby1lbl"))))
+         "18185rm458nlifzrp73fjrjvksmm5dvn5ygs949kdzdln1myb4xf"))))
     (properties `((upstream-name . "sets")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/sets")
@@ -16108,9 +15897,7 @@ customizable sets, and intervals.")
          "1qqy4df28wy4q0g572azrj171jlhvrnzbh7x0wr2g7v6gr20y0ns"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-gmp" ,r-gmp)
-       ("r-polynom" ,r-polynom)
-       ("r-sets" ,r-sets)))
+     (list r-gmp r-polynom r-sets))
     (home-page "https://cran.r-project.org/web/packages/partitions")
     (synopsis "Additive partitions of integers")
     (description
@@ -16156,9 +15943,7 @@ methods.")
          "1i7m4vfslsix98dwx4jlrsldm7fhhfp25gr7aapcxqxms7ryaby6"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-brobdingnag" ,r-brobdingnag)
-       ("r-partitions" ,r-partitions)
-       ("r-polynom" ,r-polynom)))
+     (list r-brobdingnag r-partitions r-polynom))
     (home-page "https://github.com/RobinHankin/untb.git")
     (synopsis "Ecological drift under the UNTB")
     (description
@@ -16199,8 +15984,7 @@ breakpoints in a genomic sequence alignment.")
     (properties `((upstream-name . "SNPmaxsel")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-combinat" ,r-combinat)
-       ("r-mvtnorm" ,r-mvtnorm)))
+     (list r-combinat r-mvtnorm))
     (home-page "https://cran.r-project.org/web/packages/SNPmaxsel/index.html")
     (synopsis "Maximally selected statistics for SNP data")
     (description
@@ -16222,8 +16006,7 @@ data.")
     (properties `((upstream-name . "ACSNMineR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)))
+     (list r-ggplot2 r-gridextra))
     (home-page "https://cran.r-project.org/web/packages/ACSNMineR")
     (synopsis "Gene enrichment analysis")
     (description
@@ -16248,10 +16031,9 @@ barplots or heatmaps.")
          "1xz9spln6s9mcwpgcv1m4jymn4gnl1bb6vh90bphqcn0vvlk8jsq"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ade4" ,r-ade4)
-       ("r-segmented" ,r-segmented)))
+     (list r-ade4 r-segmented))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "http://seqinr.r-forge.r-project.org/")
     (synopsis "Biological sequences retrieval and analysis")
     (description
@@ -16273,11 +16055,11 @@ utilities for sequence data management under the ACNUC system.")
             "1ss0f15h4yqzk488ilsa5d2ibrj3wzwplx4160mn600i8ciy02xr"))))
     (build-system r-build-system)
     (inputs
-     `(("udunits" ,udunits)))
+     (list udunits))
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/r-quantities/units/")
     (synopsis "Measurement Units for R Vectors")
     (description
@@ -16291,18 +16073,18 @@ classes.")
 (define-public r-udunits2
   (package
     (name "r-udunits2")
-    (version "0.13")
+    (version "0.13.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "udunits2" version))
        (sha256
         (base32
-         "0yav7rm2afcx67xqrknybxgz7x63w78zyxa0xifvc0k2gz0d6mfi"))))
+         "1l889f8iy8qaacxfs6ll62d6hs8g8qsr5ynn24grpvp8dk8l888w"))))
     (properties `((upstream-name . "udunits2")))
     (build-system r-build-system)
     (inputs
-     `(("udunits" ,udunits)))
+     (list udunits))
     (home-page "https://cran.r-project.org/package=udunits2")
     (synopsis "Udunits-2 bindings for R")
     (description
@@ -16323,12 +16105,9 @@ classes.")
     (properties `((upstream-name . "classInt")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-class" ,r-class)
-       ("r-e1071" ,r-e1071)
-       ("r-kernsmooth" ,r-kernsmooth)))
+     (list r-class r-e1071 r-kernsmooth))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("r-knitr" ,r-knitr)))
+     (list gfortran r-knitr))
     (home-page "https://github.com/r-spatial/classInt/")
     (synopsis "Choose univariate class intervals")
     (description
@@ -16339,19 +16118,18 @@ univariate class intervals for mapping or other graphics purposes.")
 (define-public r-spdata
   (package
     (name "r-spdata")
-    (version "0.3.10")
+    (version "2.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "spData" version))
        (sha256
         (base32
-         "0c3kg2daz65znnmcaf5l108c88anzlfrsjlnmv2kxqr1lx8z9zl5"))))
+         "1z4hp5ivwzyvl8mkp98j2ng1cl1xksqbjxv85vdlqfqjwpia6df6"))))
     (properties `((upstream-name . "spData")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-raster" ,r-raster)
-       ("r-sp" ,r-sp)))
+     (list r-raster r-sp))
     (home-page "https://github.com/Nowosad/spData")
     (synopsis "Datasets for spatial analysis")
     (description
@@ -16392,16 +16170,16 @@ sampling.")
 (define-public r-deldir
   (package
     (name "r-deldir")
-    (version "0.2-10")
+    (version "1.0-6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "deldir" version))
        (sha256
         (base32
-         "08ij6zb6id71zk6gzs9z779y49y41c2gpi7p7mljnlw7py92g8k5"))))
+         "1igq0l2knsbhizncgydcsidgkvvlwwlkrifbcdyhnzk0bhrdixkd"))))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/deldir")
     (synopsis "Delaunay triangulation and Dirichlet (Voronoi) tessellation")
     (description
@@ -16427,7 +16205,7 @@ tessellation.")
     (properties `((upstream-name . "wk")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cpp11" ,r-cpp11)))
+     (list r-cpp11))
     (home-page "https://paleolimbot.github.io/wk/")
     (synopsis "Lightweight well-known geometry parsing")
     (description
@@ -16442,23 +16220,22 @@ high-performance functions are provided here.")
 (define-public r-s2
   (package
     (name "r-s2")
-    (version "1.0.6")
+    (version "1.0.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "s2" version))
        (sha256
         (base32
-         "1xd42bpbm090dqlldavbn6c1h1mfwhlws9536avan00w3szlxk56"))))
+         "0gwydn6wdl675ydkcckrci6ylcx30qn8nfhmrp4qx4r9mv3c2410"))))
     (properties `((upstream-name . "s2")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-wk" ,r-wk)))
+     (list r-rcpp r-wk))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://r-spatial.github.io/s2/")
     (synopsis "Spherical geometry operators using the S2 geometry library")
     (description
@@ -16473,31 +16250,26 @@ information about geometries.")
 (define-public r-sf
   (package
     (name "r-sf")
-    (version "1.0-2")
+    (version "1.0-4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sf" version))
        (sha256
         (base32
-         "0hh54krf4gjwrzxj2r3p5q7amdf8kblv8nm7hmbwmfv1rs30i1gc"))))
+         "0dxln3ikqmwczz0ri63xwj05v09hkpljw2qvma6n03nzczyg2713"))))
     (build-system r-build-system)
     (inputs
-     `(("gdal" ,gdal)
-       ("geos" ,geos)
-       ("proj" ,proj)
-       ("sqlite" ,sqlite)
-       ("zlib" ,zlib)))
+     (list gdal geos proj sqlite zlib))
     (propagated-inputs
-     `(("r-classint" ,r-classint)
-       ("r-dbi" ,r-dbi)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rcpp" ,r-rcpp)
-       ("r-s2" ,r-s2)
-       ("r-units" ,r-units)))
+     (list r-classint
+           r-dbi
+           r-magrittr
+           r-rcpp
+           r-s2
+           r-units))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://github.com/r-spatial/sf/")
     (synopsis "Simple features for R")
     (description
@@ -16511,13 +16283,13 @@ datum transformations.")
 (define-public r-spdep
   (package
     (name "r-spdep")
-    (version "1.1-8")
+    (version "1.1-12")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "spdep" version))
               (sha256
                (base32
-                "1k82vx58kpn0fwgcpxq2jc3qfffl8wzbgr4cdkxihrfk28kkqh7l"))
+                "1dykhsk5djh62b3zcvpmvm3s87rn8ywzbwblhzivhln0y6pzk9hv"))
               (snippet
                '(for-each delete-file '("inst/doc/nb_igraph.html"
                                         "inst/doc/nb_igraph.R"
@@ -16533,20 +16305,23 @@ datum transformations.")
                                         "inst/doc/nb_sf.Rmd")))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-boot" ,r-boot)
-       ("r-coda" ,r-coda)
-       ("r-deldir" ,r-deldir)
-       ("r-expm" ,r-expm)
-       ("r-gmodels" ,r-gmodels)
-       ("r-learnbayes" ,r-learnbayes)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-nlme" ,r-nlme)
-       ("r-sf" ,r-sf)
-       ("r-sp" ,r-sp)
-       ("r-spdata" ,r-spdata)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-boot
+           r-coda
+           r-deldir
+           r-e1071
+           r-expm
+           r-gmodels
+           r-learnbayes
+           r-mass
+           r-matrix
+           r-nlme
+           r-s2
+           r-sf
+           r-sp
+           r-spdata
+           r-units))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/r-spatial/spdep/")
     (synopsis "Spatial dependence: weighting schemes, statistics and models")
     (description
@@ -16560,28 +16335,27 @@ spanning tree.")
 (define-public r-adegenet
   (package
     (name "r-adegenet")
-    (version "2.1.4")
+    (version "2.1.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "adegenet" version))
        (sha256
         (base32
-         "0sxbw5l92xmkazndxbqaa2cxmgk8bqzzbk77q9li850s2i1fdssp"))))
+         "1wjp31634n6z6wglf4z3ydrhhn5jmpwwckmp3n2b0v5f3p2fivp4"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ade4" ,r-ade4)
-       ("r-ape" ,r-ape)
-       ("r-boot" ,r-boot)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-igraph" ,r-igraph)
-       ("r-mass" ,r-mass)
-       ("r-reshape2" ,r-reshape2)
-       ("r-seqinr" ,r-seqinr)
-       ("r-shiny" ,r-shiny)
-       ("r-spdep" ,r-spdep)
-       ("r-vegan" ,r-vegan)))
+     (list r-ade4
+           r-ape
+           r-boot
+           r-dplyr
+           r-ggplot2
+           r-igraph
+           r-mass
+           r-reshape2
+           r-seqinr
+           r-shiny
+           r-vegan))
     (home-page "https://github.com/thibautjombart/adegenet")
     (synopsis "Exploratory analysis of genetic and genomic data")
     (description
@@ -16608,8 +16382,7 @@ also provided to illustrate various methods.")
         (base32 "0ykx84p7c8cad5d1mj8cm1d5cz2paacdjx4ll4qzmq827lcyycz1"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-adegenet" ,r-adegenet)
-       ("r-ape" ,r-ape)))
+     (list r-adegenet r-ape))
     (home-page "http://ape-package.ird.fr/pegas.html")
     (synopsis "Population and evolutionary genetics analysis system")
     (description
@@ -16634,10 +16407,7 @@ minimum spanning tree and network, and median-joining networks.")
          "0rdkhfgyr97r2d1kd9g8ipb2pn563qxm1y4m9z678q0kqan2ddl0"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ade4" ,r-ade4)
-       ("r-adegenet" ,r-adegenet)
-       ("r-gtools" ,r-gtools)
-       ("r-pegas" ,r-pegas)))
+     (list r-ade4 r-adegenet r-gtools r-pegas))
     (home-page "https://cran.r-project.org/web/packages/rmetasim")
     (synopsis "Individual-based population genetic simulation environment")
     (description
@@ -16661,11 +16431,7 @@ genetics of complex population dynamics.")
          "0lljxvz7nc6y2z303icphar2niir0i407w5cyhy2pwspd9gwkwpy"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-combinat" ,r-combinat)
-       ("r-gdata" ,r-gdata)
-       ("r-gtools" ,r-gtools)
-       ("r-mass" ,r-mass)
-       ("r-mvtnorm" ,r-mvtnorm)))
+     (list r-combinat r-gdata r-gtools r-mass r-mvtnorm))
     (home-page "https://cran.r-project.org/web/packages/genetics/")
     (synopsis "Population genetics")
     (description
@@ -16691,7 +16457,7 @@ and testing for linkage disequilibrium, ...")
          "16apsqvkah5l0d5qcwp3lq2jspkb6n62wzr0wskmj84jblx483vv"))))
     (properties `((upstream-name . "snp.plotter")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-genetics" ,r-genetics)))
+    (propagated-inputs (list r-genetics))
     (home-page "https://cran.r-project.org/web/packages/snp.plotter/")
     (synopsis "Plot p-values using single SNP and/or haplotype data")
     (description
@@ -16714,7 +16480,7 @@ either PDF/EPS files.")
        (sha256
         (base32 "0rhzf735hmbqfn2xbgcln4sqx7m9far72g5gq9mghgkw016kqglm"))))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/polspline/")
     (synopsis "Polynomial spline routines")
     (description
@@ -16735,22 +16501,22 @@ lspec, polyclass, and polymars.")
         (base32 "1di4xvsx0rwkr77nfqiysbg4qf699199xqil70i39d4zwfzqrm8h"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cluster" ,r-cluster)
-       ("r-digest" ,r-digest)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-hmisc" ,r-hmisc)
-       ("r-htmltable" ,r-htmltable)
-       ("r-htmltools" ,r-htmltools)
-       ("r-lattice" ,r-lattice)
-       ("r-mass" ,r-mass)
-       ("r-multcomp" ,r-multcomp)
-       ("r-nlme" ,r-nlme)
-       ("r-polspline" ,r-polspline)
-       ("r-quantreg" ,r-quantreg)
-       ("r-rpart" ,r-rpart)
-       ("r-sparsem" ,r-sparsem)
-       ("r-survival" ,r-survival)))
-    (native-inputs `(("gfortran" ,gfortran)))
+     (list r-cluster
+           r-digest
+           r-ggplot2
+           r-hmisc
+           r-htmltable
+           r-htmltools
+           r-lattice
+           r-mass
+           r-multcomp
+           r-nlme
+           r-polspline
+           r-quantreg
+           r-rpart
+           r-sparsem
+           r-survival))
+    (native-inputs (list gfortran))
     (home-page "http://biostat.mc.vanderbilt.edu/rms")
     (synopsis "Regression modeling strategies")
     (description
@@ -16782,8 +16548,8 @@ generalized linear models, and quantile regression.")
          "0qvs3ld28djnjnggdhqjwq8sbv8zz322qahlvf7dnx35yqf6xkms"))))
     (properties `((upstream-name . "arsenal")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-knitr" ,r-knitr)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+    (propagated-inputs (list r-knitr))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/mayoverse/arsenal")
     (synopsis "Functions for large-scale statistical summaries")
     (description
@@ -16811,21 +16577,20 @@ include
 (define-public r-haplo-stats
   (package
     (name "r-haplo-stats")
-    (version "1.8.6")
+    (version "1.8.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "haplo.stats" version))
        (sha256
         (base32
-         "1imz4gs0n57vixwwbirrihpgvn2pyj5da4rgjcjk14n2xkk0nay7"))))
+         "1q2zn72j92bwhcdswk4qqfgzch56p9pcy2xhkd3safvqp3l9rzpw"))))
     (properties `((upstream-name . "haplo.stats")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-arsenal" ,r-arsenal)
-       ("r-rms" ,r-rms)))
+     (list r-arsenal r-rms))
     (native-inputs
-     `(("r-r-rsp" ,r-r-rsp))) ; for vignettes
+     (list r-r-rsp)) ; for vignettes
     (home-page "https://www.mayo.edu/research/labs/statistical-genetics-genetic-epidemiology/software")
     (synopsis "Analysis of haplotypes when linkage phase is ambiguous")
     (description
@@ -16840,16 +16605,16 @@ examples in the vignette.")
 (define-public r-bqtl
   (package
     (name "r-bqtl")
-    (version "1.0-32")
+    (version "1.0-33")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bqtl" version))
        (sha256
         (base32
-         "0jjqgsm9fmvz5nkgz608xfljjpmaf4rs4f7kxvpqn4b1l9s5lhci"))))
+         "1sbzpi9z94f010lw2y1gmifjrvpmiqs4m26za7vr1xz72azrqvs9"))))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "http://famprevmed.ucsd.edu/faculty/cberry/bqtl/")
     (synopsis "Bayesian QTL mapping toolkit")
     (description
@@ -16860,14 +16625,14 @@ lines.  It includes maximum likelihood and Bayesian tools.")
 (define-public r-ibdreg
   (package
     (name "r-ibdreg")
-    (version "0.3.1")
+    (version "0.3.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ibdreg" version))
        (sha256
         (base32
-         "0kgx9iavgm6d6njhki7bm82d6lw2c7kcch2pryd339js2hm0l5gq"))))
+         "1x8z0vr2cmdks12hxfm0wwxskb0cr669w5j5rpa2ln8q704yy41g"))))
     (build-system r-build-system)
     (home-page "https://www.mayo.edu/research/labs/\
 statistical-genetics-genetic-epidemiology/software")
@@ -16892,11 +16657,7 @@ the same pedigree.")
          "0s6wlkggkm3qndwyvw72xv1n0mcjb7ss3ajbq2ll6rv30splq0db"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ibdreg" ,r-ibdreg)
-       ("r-mgcv" ,r-mgcv)
-       ("r-nlme" ,r-nlme)
-       ("r-qtl" ,r-qtl)
-       ("r-wgaim" ,r-wgaim)))
+     (list r-ibdreg r-mgcv r-nlme r-qtl r-wgaim))
     (home-page "https://cran.r-project.org/web/packages/dlmap/")
     (synopsis "Detection localization mapping for QTL")
     (description
@@ -16965,8 +16726,7 @@ tests for extended marker haplotypes, as in Clayton, D. and Jones, H. (1999)
     (properties `((upstream-name . "SPARQL")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcurl" ,r-rcurl)
-       ("r-xml" ,r-xml)))
+     (list r-rcurl r-xml))
     (home-page "https://cran.r-project.org/web/packages/SPARQL")
     (synopsis "SPARQL client for R")
     (description "This package provides an interface to use SPARQL to pose
@@ -16978,23 +16738,23 @@ SELECT or UPDATE queries to an end-point.")
 (define-public r-bookdown
   (package
     (name "r-bookdown")
-    (version "0.23")
+    (version "0.24")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "bookdown" version))
               (sha256
                (base32
-                "1q0n3pjhgpsin4z7bdf0hixkfxvbbn1wc23040yl11wzc5x2f1ap"))))
+                "1qqvvfbpbd6sin8vpvr3zzlhlyx1i6b98yp77xj5zl220nid5slb"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-htmltools" ,r-htmltools)
-       ("r-jquerylib" ,r-jquerylib)
-       ("r-knitr" ,r-knitr)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-tinytex" ,r-tinytex)
-       ("r-xfun" ,r-xfun)
-       ("r-yaml" ,r-yaml)
-       ("pandoc" ,pandoc)))
+     (list r-htmltools
+           r-jquerylib
+           r-knitr
+           r-rmarkdown
+           r-tinytex
+           r-xfun
+           r-yaml
+           pandoc))
     ;; We cannot add knitr because this package depends on xfun, which is an
     ;; input to knitr.
     #;
@@ -17009,19 +16769,19 @@ authoring books and technical documents with R Markdown.")
 (define-public r-optparse
   (package
     (name "r-optparse")
-    (version "1.6.6")
+    (version "1.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "optparse" version))
        (sha256
         (base32
-         "1l301dy3gc8pn7j00awcjh41wmc1ks9kswak255kbsa6f54rsxsi"))))
+         "1rqz0y4r94y3mwbb9kyz97cjqpnprka96qbncvbnbmgg2d630kij"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-getopt" ,r-getopt)))
+     (list r-getopt))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/trevorld/optparse")
     (synopsis "Command line option parser")
     (description
@@ -17054,22 +16814,19 @@ and a QP solver.")
 (define-public r-hierfstat
   (package
     (name "r-hierfstat")
-    (version "0.5-7")
+    (version "0.5-10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "hierfstat" version))
        (sha256
         (base32
-         "0dp8k1z5a8gqnax99y1hwfvxilzf4n2i751zr0z6ihrzirsvb3m3"))))
+         "1p4vlna185sa3b5xjbysiqxcj9aa5s7dmxy41hg79vlqdivf874r"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ade4" ,r-ade4)
-       ("r-adegenet" ,r-adegenet)
-       ("r-gaston" ,r-gaston)
-       ("r-gtools" ,r-gtools)))
+     (list r-ade4 r-adegenet r-gaston r-gtools))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/hierfstat/")
     (synopsis "Estimation and tests of hierarchical F-statistics")
     (description
@@ -17115,8 +16872,7 @@ handle missing genotypes at some SNPs.")
          "11xis4vzn2ga8ml9xrgfgqzccvwbnabq35aidzdvpnvciybsanvz"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lpsolve" ,r-lpsolve)
-       ("r-mass" ,r-mass)))
+     (list r-lpsolve r-mass))
     (home-page "https://cran.r-project.org/web/packages/sampling/")
     (synopsis "Survey sampling")
     (description
@@ -17152,14 +16908,14 @@ the corresponding outputs (tables and graphs).")
 (define-public r-rjava
   (package
     (name "r-rjava")
-    (version "1.0-4")
+    (version "1.0-5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rJava" version))
        (sha256
         (base32
-         "1rd9hcwp4464icy22mmis94jb9w5gk90h97j79cy6fixdxwq4ihx"))))
+         "1pkgndppk498by44sai440l3i7vzndknbngn1q748cv39xvsbnrg"))))
     (properties `((upstream-name . "rJava")))
     (build-system r-build-system)
     (arguments
@@ -17198,18 +16954,18 @@ and accessing fields.")
 (define-public r-svmisc
   (package
     (name "r-svmisc")
-    (version "1.1.4")
+    (version "1.2.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "svMisc" version))
        (sha256
         (base32
-         "0y8mhiblyzwads4gf4whmxi7c6wdmqs3ahbj132l79bbdk40p83a"))))
+         "1r3kih5bnr4plnzdn5f2gg3xl3krgyl7gkdlf58a2l8vk13j3m9d"))))
     (properties `((upstream-name . "svMisc")))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/SciViews/svMisc")
     (synopsis "Miscellaneous functions for SciViews")
     (description
@@ -17232,7 +16988,7 @@ path for temporary variables you do not want to @code{save()} or
          "13w4sb4pvgciwr8wsz785dafj2k2kpx7znz46r5d32wx88vkycp4"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (home-page "https://cran.r-project.org/web/packages/xyz/")
     (synopsis "Algorithm for fast interaction search in high-dimensional data")
     (description
@@ -17299,8 +17055,7 @@ interaction search in high-dimensional data.")
          "0b9k2n9sk23bh45hjgnkxpjyvpdrz1hx7kmxvmb4nhlhm1wpsv9g"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-extrafontdb" ,r-extrafontdb)
-       ("r-rttf2pt1" ,r-rttf2pt1)))
+     (list r-extrafontdb r-rttf2pt1))
     (home-page "https://github.com/wch/extrafont")
     (synopsis "Tools for using fonts in R")
     (description
@@ -17332,9 +17087,7 @@ The extrafont package makes both of these things easier.")
          "1z2y0ihn68ppay7xkglhw7djki5654g6z4bbpyy41if57z9q554f"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-extrafont" ,r-extrafont)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-hmisc" ,r-hmisc)))
+     (list r-extrafont r-ggplot2 r-hmisc))
     (home-page "https://cran.r-project.org/web/packages/xkcd/")
     (synopsis "Plot ggplot2 graphics in the XKCD style")
     (description
@@ -17356,10 +17109,9 @@ the XKCD web comic.")
     (properties `((upstream-name . "babelgene")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-rlang" ,r-rlang)))
+     (list r-dplyr r-rlang))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page
      "https://igordot.github.io/babelgene/")
     (synopsis "Gene orthologs for model organisms in a Tidy data format")
@@ -17386,14 +17138,14 @@ compiled by the HGNC Comparison of Orthology Predictions (HCOP).")
          "103m52av68pkjfh8f81qh6j3cs1mj1lg831ciwybr34cax767jr1"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-babelgene" ,r-babelgene)
-       ("r-dplyr" ,r-dplyr)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyselect" ,r-tidyselect)))
+     (list r-babelgene
+           r-dplyr
+           r-magrittr
+           r-rlang
+           r-tibble
+           r-tidyselect))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/igordot/msigdbr")
     (synopsis "MSigDB gene sets for multiple organisms")
     (description
@@ -17458,14 +17210,14 @@ package.")
 (define-public r-yulab-utils
   (package
     (name "r-yulab-utils")
-    (version "0.0.2")
+    (version "0.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "yulab.utils" version))
        (sha256
         (base32
-         "1haq6k0r64gs76p2vvrm42m64r8s32kzyz573pw9789y32zn0s5q"))))
+         "1bj93gnj7j4b7dgkbr5v22rsbwfcw5dvipl5irmidaakvrihd19q"))))
     (properties `((upstream-name . "yulab.utils")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/package=yulab.utils")
@@ -17478,21 +17230,19 @@ package.")
 (define-public r-ggplotify
   (package
     (name "r-ggplotify")
-    (version "0.0.9")
+    (version "0.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggplotify" version))
        (sha256
         (base32
-         "1irm8pmf20bfl2djr591jfs7g8l7vw2673ri76pimz3285l74bp0"))))
+         "12mk3fa8fdjxj7xxz21jkr7h91w5wdgwjqhszcz1qffwsgb773qp"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-gridgraphics" ,r-gridgraphics)
-       ("r-yulab-utils" ,r-yulab-utils)))
+     (list r-ggplot2 r-gridgraphics r-yulab-utils))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/GuangchuangYu/ggplotify")
     (synopsis "Convert plots to @code{grob} or @code{ggplot} object")
     (description
@@ -17516,7 +17266,7 @@ converting them to @code{ggplot} objects.")
         (base32
          "1hqyz57gph02c9fdc07lxz113bbklif3g18sw8jan6pakhhdc7dz"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (propagated-inputs (list r-rcpp))
     (home-page "https://github.com/Ironholds/triebeard/")
     (synopsis "Radix trees in Rcpp")
     (description
@@ -17539,10 +17289,7 @@ packages with Rcpp.")
          "17znizh4yabh2zs9mzyr0sl6p0pw49961i61br7cl1b7v9sza18q"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-farver" ,r-farver)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rlang" ,r-rlang)))
+     (list r-farver r-magrittr r-rcpp r-rlang))
     (home-page "https://github.com/thomasp85/tweenr")
     (synopsis "Interpolate data for smooth animations")
     (description
@@ -17565,7 +17312,7 @@ color.")
         (base32
          "0jyk4maqiblvj095jd59dr76kbniyli3v3xvy0a72ljszq6vrnkl"))))
     (build-system r-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "http://www.angusj.com/delphi/clipper.php")
     (synopsis "Polygon clipping")
     (description
@@ -17591,8 +17338,7 @@ self-intersections from polygon data.")
          "04x3my655dd287cbsszbnf75q0swmjlxxrblcsay7a8n3df3a830"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-triebeard" ,r-triebeard)))
+     (list r-rcpp r-triebeard))
     (home-page "https://github.com/Ironholds/urltools/")
     (synopsis "Vectorized tools for URL handling and parsing")
     (description
@@ -17617,17 +17363,17 @@ sets of URLs.")
          "0bwzjbjl678xvc2ihm80dwn9pidwafqjdab3k299csys16s3na1a"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-gtable" ,r-gtable)
-       ("r-mass" ,r-mass)
-       ("r-polyclip" ,r-polyclip)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)
-       ("r-tidyselect" ,r-tidyselect)
-       ("r-tweenr" ,r-tweenr)
-       ("r-withr" ,r-withr)))
+     (list r-ggplot2
+           r-gtable
+           r-mass
+           r-polyclip
+           r-rcpp
+           r-rcppeigen
+           r-rlang
+           r-scales
+           r-tidyselect
+           r-tweenr
+           r-withr))
     (home-page "https://ggforce.data-imaginist.com")
     (synopsis "Accelerating ggplot2")
     (description
@@ -17640,29 +17386,29 @@ that fills this gap.")
 (define-public r-europepmc
   (package
     (name "r-europepmc")
-    (version "0.4")
+    (version "0.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "europepmc" version))
        (sha256
         (base32
-         "174nnyc2mbgqxb5kgqabn1vf71c2mps7ig2bclq4is0f7nb64pym"))))
+         "16japbndid34shqg8n0bmjrxn84xmhrylvz832zclcllm6i93fn1"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-httr" ,r-httr)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-plyr" ,r-plyr)
-       ("r-progress" ,r-progress)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-urltools" ,r-urltools)
-       ("r-xml2" ,r-xml2)))
+     (list r-dplyr
+           r-httr
+           r-jsonlite
+           r-plyr
+           r-progress
+           r-purrr
+           r-rlang
+           r-tibble
+           r-tidyr
+           r-urltools
+           r-xml2))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/ropensci/europepmc/")
     (synopsis "R Interface to the Europe PubMed Central RESTful Web Service")
     (description
@@ -17690,23 +17436,23 @@ databases, including ENA, PDB or ChEMBL are also accessible.")
          "0m4n8iw2b9jk8hcy5blg5w59zsqcpsbv27wbw598dvljpafx8sp3"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-digest" ,r-digest)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggforce" ,r-ggforce)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-graphlayouts" ,r-graphlayouts)
-       ("r-gtable" ,r-gtable)
-       ("r-igraph" ,r-igraph)
-       ("r-mass" ,r-mass)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)
-       ("r-tidygraph" ,r-tidygraph)
-       ("r-viridis" ,r-viridis)
-       ("r-withr" ,r-withr)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-digest
+           r-dplyr
+           r-ggforce
+           r-ggplot2
+           r-ggrepel
+           r-graphlayouts
+           r-gtable
+           r-igraph
+           r-mass
+           r-rcpp
+           r-rlang
+           r-scales
+           r-tidygraph
+           r-viridis
+           r-withr))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/ggraph/")
     (synopsis "Implementation of grammar of graphics for graphs and networks")
     (description
@@ -17731,10 +17477,7 @@ layer by layer.")
     (properties `((upstream-name . "gkmSVM")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-kernlab" ,r-kernlab)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rocr" ,r-rocr)
-       ("r-seqinr" ,r-seqinr)))
+     (list r-kernlab r-rcpp r-rocr r-seqinr))
     (home-page "https://cran.r-project.org/web/packages/gkmSVM")
     (synopsis "Gapped-kmer support vector machine")
     (description
@@ -17757,7 +17500,7 @@ kernels, including: gkmSVM, kmer-SVM, mismatch kernel and wildcard kernel.")
     (properties `((upstream-name . "varSelRF")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-randomforest" ,r-randomforest)))
+     (list r-randomforest))
     (home-page "https://www.ligarto.org/rdiaz/software/software")
     (synopsis "Variable selection using random forests")
     (description
@@ -17783,9 +17526,8 @@ proteomics applications).")
          "0ycpgkk23y3zzkb42n2skcyl35ps1n7jmyzfj7pbxr3f6gr2grfh"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cluster" ,r-cluster)
-       ("r-survival" ,r-survival)))
-    (native-inputs `(("gfortran" ,gfortran)))
+     (list r-cluster r-survival))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/pamr/")
     (synopsis "Prediction Analysis for Microarrays")
     (description
@@ -17825,13 +17567,13 @@ discriminant analysis for the purpose of classifying high dimensional data.")
          "1qv512pd4x5vmx15y9nvqmabbbw14h75fmi1sjbcg5yl25z0cswy"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertthat" ,r-assertthat)
-       ("r-dplyr" ,r-dplyr)
-       ("r-htmltools" ,r-htmltools)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rlang" ,r-rlang)
-       ("r-shiny" ,r-shiny)))
+     (list r-assertthat
+           r-dplyr
+           r-htmltools
+           r-jsonlite
+           r-magrittr
+           r-rlang
+           r-shiny))
     (home-page "https://ggvis.rstudio.com/")
     (synopsis "Interactive grammar of graphics")
     (description
@@ -17854,10 +17596,9 @@ graphics using Vega.")
          "1h9f4ww9yc3nsvghgr2q7jjrlz29ibabxjbax1sk5wmqh2wy6pbx"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)
-       ("r-survival" ,r-survival)))
+     (list r-lattice r-survival))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/gbm-developers/gbm")
     (synopsis "Generalized boosted regression models")
     (description
@@ -17903,19 +17644,16 @@ and Learning to Rank measures (LambdaMart).")
                                (format #t "Processing ~a --> ~a~%"
                                        source target)
                                (delete-file target)
-                               (let ((minified (open-pipe* OPEN_READ "uglify-js" source)))
+                               (let ((minified (open-pipe* OPEN_READ "uglifyjs" source)))
                                  (call-with-output-file target
                                    (lambda (port)
                                      (dump-port minified port)))))
                              sources targets))))
              #t)))))
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-crosstalk" ,r-crosstalk)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-igraph" ,r-igraph)))
+     (list r-base64enc r-crosstalk r-htmlwidgets r-igraph))
     (native-inputs
-     `(("uglify-js" ,uglify-js)
+     `(("uglifyjs" ,node-uglify-js)
        ("js-jquery"
         ,(origin
            (method url-fetch)
@@ -17970,8 +17708,7 @@ repository.")
          "0wijw8v0wmbfrda5564cmnp788qmlkk21yn5cp5qk8aprm9l1fnk"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-kernsmooth" ,r-kernsmooth)
-       ("r-mass" ,r-mass)))
+     (list r-kernsmooth r-mass))
     (home-page "http://mpm.r-forge.r-project.org")
     (synopsis "Multivariate projection methods")
     (description
@@ -17993,8 +17730,7 @@ analysis.")
                 "0g2mcp55lvvpx4kd3mn225mpbxqcq73wy5qx8b4lyf04iybgysg2"))))
     (build-system r-build-system)
     (inputs
-     `(("libpng" ,libpng)
-       ("zlib" ,zlib)))
+     (list libpng zlib))
     (home-page "https://www.rforge.net/png/")
     (synopsis "Read and write PNG images")
     (description
@@ -18017,8 +17753,7 @@ in-memory raw vectors.")
          "0hi9lz121ya1l2lbm7rqlxg6fs6bvxck396dngnidrhl5fvqb41b"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-reshape2" ,r-reshape2)))
+     (list r-ggplot2 r-reshape2))
     (home-page "http://www.sthda.com/english/wiki/ggcorrplot")
     (synopsis "Visualization of a correlation matrix using ggplot2")
     (description
@@ -18031,20 +17766,19 @@ function for computing a matrix of correlation p-values.")
 (define-public r-ggfun
   (package
     (name "r-ggfun")
-    (version "0.0.3")
+    (version "0.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggfun" version))
        (sha256
         (base32
-         "0bf8pl3scy5fx15h1fx0799cb9sg9spjapqif9gcz27pmmgdc0n9"))))
+         "07njcjcj212zxanq8x3nkh7mgvqmym08rx5s41rz9flhk9gkc9jr"))))
     (properties `((upstream-name . "ggfun")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-rlang" ,r-rlang)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-ggplot2 r-rlang))
+    (native-inputs (list r-knitr))
     (home-page "https://cran.r-project.org/package=ggfun")
     (synopsis "Miscellaneous functions for ggplot2")
     (description
@@ -18067,14 +17801,14 @@ each of the legends).")
     (properties `((upstream-name . "gridtext")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-jpeg" ,r-jpeg)
-       ("r-markdown" ,r-markdown)
-       ("r-png" ,r-png)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcurl" ,r-rcurl)
-       ("r-rlang" ,r-rlang)
-       ("r-stringr" ,r-stringr)
-       ("r-xml2" ,r-xml2)))
+     (list r-jpeg
+           r-markdown
+           r-png
+           r-rcpp
+           r-rcurl
+           r-rlang
+           r-stringr
+           r-xml2))
     (home-page "https://wilkelab.org/gridtext/")
     (synopsis "Improved text rendering support for Grid graphics")
     (description
@@ -18098,11 +17832,8 @@ wrap.")
     (properties `((upstream-name . "ggtext")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-gridtext" ,r-gridtext)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-ggplot2 r-gridtext r-rlang r-scales))
+    (native-inputs (list r-knitr))
     (home-page "https://wilkelab.org/ggtext/")
     (synopsis "Improved text rendering support for ggplot2")
     (description
@@ -18175,21 +17906,21 @@ etc.).  Text boxes with automatic word wrap are also supported.")
                    (for-each (lambda (source target)
                                (format #t "Processing ~a --> ~a~%"
                                        source target)
-                               (let ((minified (open-pipe* OPEN_READ "uglify-js" source)))
+                               (let ((minified (open-pipe* OPEN_READ "uglifyjs" source)))
                                  (call-with-output-file target
                                    (lambda (port)
                                      (dump-port minified port)))))
                              sources targets))))
              #t)))))
     (propagated-inputs
-     `(("r-htmltools" ,r-htmltools)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-knitr" ,r-knitr)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-shiny" ,r-shiny)))
+     (list r-htmltools
+           r-htmlwidgets
+           r-jsonlite
+           r-knitr
+           r-rmarkdown
+           r-shiny))
     (native-inputs
-     `(("uglify-js" ,uglify-js)
+     `(("uglifyjs" ,node-uglify-js)
        ("js-raphael"
         ,(origin
            (method url-fetch)
@@ -18247,7 +17978,7 @@ of its components to the containing web page.")
     (properties `((upstream-name . "preseqR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-polynom" ,r-polynom)))
+     (list r-polynom))
     (home-page "https://cran.r-project.org/web/packages/preseqR/")
     (synopsis "Predicting species accumulation curves")
     (description
@@ -18283,14 +18014,14 @@ more generic data visualisation.")
 (define-public r-pmcmr
   (package
     (name "r-pmcmr")
-    (version "4.3")
+    (version "4.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "PMCMR" version))
        (sha256
         (base32
-         "09bvdj2h1086r2cgy3myrhlylplxxlliv8nwx09c8kb1vn02i2ij"))))
+         "05n13pp5yff6pzk4ry07crddfaj3jlglrd1vkcnacyd8jpaxkd77"))))
     (properties `((upstream-name . "PMCMR")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/PMCMR/")
@@ -18315,7 +18046,7 @@ compatibility of dependent packages for some time.")
          "1axggnsc27zzgr7snf41j3zd1vp3nfpmq4zj4d01axc709dyg40q"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-digest" ,r-digest)))
+     (list r-digest))
     (home-page "https://github.com/wch/downloader")
     (synopsis "Download files over HTTP and HTTPS")
     (description
@@ -18328,20 +18059,23 @@ external dependencies.  This package has is implemented purely in R.")
 (define-public r-aplot
   (package
     (name "r-aplot")
-    (version "0.0.6")
+    (version "0.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "aplot" version))
        (sha256
         (base32
-         "08kqrm9r57l8zgij897wpp428l4i50qfhp7y78r3pk5pjz37bsan"))))
+         "067yzy35spvs6jbccqpmvnjilglxzda6qqlqhjv311kfvnppzsyf"))))
     (properties `((upstream-name . "aplot")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-magrittr" ,r-magrittr)
-       ("r-patchwork" ,r-patchwork)))
+     (list r-ggfun
+           r-ggplot2
+           r-ggplotify
+           r-magrittr
+           r-patchwork
+           r-yulab-utils))
     (home-page "https://github.com/YuLab-SMU/aplot")
     (synopsis "Decorate a ggplot with associated information")
     (description
@@ -18366,7 +18100,7 @@ matched.")
     (properties `((upstream-name . "ggnewscale")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)))
+     (list r-ggplot2))
     (home-page "https://cran.r-project.org/package=ggnewscale")
     (synopsis "Multiple fill and color scales in ggplot2")
     (description
@@ -18388,7 +18122,7 @@ matched.")
      `((upstream-name . "ggpointdensity")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)))
+     (list r-ggplot2))
     (home-page "https://github.com/LKremer/ggpointdensity")
     (synopsis "Cross between a 2D density plot and a scatter plot")
     (description
@@ -18401,31 +18135,28 @@ colored by the number of neighboring points.  This is useful to visualize the
 (define-public r-arrow
   (package
     (name "r-arrow")
-    (version "5.0.0")
+    (version "6.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "arrow" version))
        (sha256
         (base32
-         "1x9z7jr7rnsqi04vfs54qidhn8hi0j533lm7ka074jp4xdv1gxjx"))))
+         "14fghz9xijcrck0c65crvfidgyhgzy9b2apwmg7qrgn2sy09xm0p"))))
     (properties `((upstream-name . "arrow")))
     (build-system r-build-system)
     (inputs
-     `(("apache-arrow" ,apache-arrow "lib")
-       ("zlib" ,zlib)))
+     (list `(,apache-arrow "lib") zlib))
     (propagated-inputs
-     `(("r-assertthat" ,r-assertthat)
-       ("r-bit64" ,r-bit64)
-       ("r-cpp11" ,r-cpp11)
-       ("r-purrr" ,r-purrr)
-       ("r-r6" ,r-r6)
-       ("r-rlang" ,r-rlang)
-       ("r-tidyselect" ,r-tidyselect)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-assertthat
+           r-bit64
+           r-purrr
+           r-r6
+           r-rlang
+           r-tidyselect
+           r-vctrs))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://github.com/apache/arrow/")
     (synopsis "R integration to Apache Arrow")
     (description
@@ -18449,9 +18180,9 @@ library.")
          "0m7bq8db3m5dhf01rw7xc7xy1ciq3m7dfgsl80p8cy4h8vqr3d06"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lazyeval" ,r-lazyeval)))
+     (list r-lazyeval))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/kevinushey/rex")
     (synopsis "Friendly regular expressions")
     (description
@@ -18475,10 +18206,9 @@ regular expressions from human readable expressions")
     (properties `((upstream-name . "mlapi")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)
-       ("r-r6" ,r-r6)))
+     (list r-matrix r-r6))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/package=mlapi")
     (synopsis "Abstract classes for building scikit-learn like API")
     (description
@@ -18491,18 +18221,18 @@ industry for machine learning tasks.")
 (define-public r-float
   (package
     (name "r-float")
-    (version "0.2-4")
+    (version "0.2-6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "float" version))
        (sha256
         (base32
-         "1wf1dfybgbhvh9sa5z41xkh8liwp5n9gyydfq2mpg6bag0r457z1"))))
+         "1bx5yxkb123001v31jjk7h7f0qissmjydvbil5cj3jvmqkayq1a1"))))
     (properties `((upstream-name . "float")))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://github.com/wrathematics/float")
     (synopsis "32-bit floats")
     (description
@@ -18529,13 +18259,13 @@ on, for a performance vs accuracy trade-off.")
     (properties `((upstream-name . "rsparse")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-float" ,r-float)
-       ("r-lgr" ,r-lgr)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rhpcblasctl" ,r-rhpcblasctl)))
+     (list r-data-table
+           r-float
+           r-lgr
+           r-matrix
+           r-rcpp
+           r-rcpparmadillo
+           r-rhpcblasctl))
     (home-page "https://github.com/rexyai/rsparse")
     (synopsis "Statistical learning on sparse matrices")
     (description
@@ -18561,17 +18291,17 @@ Row} (CSR) format.")
     (properties `((upstream-name . "text2vec")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-digest" ,r-digest)
-       ("r-lgr" ,r-lgr)
-       ("r-matrix" ,r-matrix)
-       ("r-mlapi" ,r-mlapi)
-       ("r-r6" ,r-r6)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rsparse" ,r-rsparse)
-       ("r-stringi" ,r-stringi)))
+     (list r-data-table
+           r-digest
+           r-lgr
+           r-matrix
+           r-mlapi
+           r-r6
+           r-rcpp
+           r-rsparse
+           r-stringi))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "http://text2vec.org")
     (synopsis "Text mining framework for R")
     (description
@@ -18586,22 +18316,18 @@ multicore machines.")
 (define-public r-mcmcpack
   (package
     (name "r-mcmcpack")
-    (version "1.5-0")
+    (version "1.6-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "MCMCpack" version))
        (sha256
         (base32
-         "1khavqsimiwbfq7gyw5jyj67jxfd579pnc7mngnd655zc8yzspvr"))))
+         "16zjx8yz29ii75wfxj3p562l657bng8jnwzp2b54s7fiaws4kfdm"))))
     (properties `((upstream-name . "MCMCpack")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-coda" ,r-coda)
-       ("r-lattice" ,r-lattice)
-       ("r-mass" ,r-mass)
-       ("r-mcmc" ,r-mcmc)
-       ("r-quantreg" ,r-quantreg)))
+     (list r-coda r-lattice r-mass r-mcmc r-quantreg))
     (home-page "https://cran.r-project.org/package=MCMCpack")
     (synopsis "Markov Chain Monte Carlo (MCMC) package")
     (description
@@ -18650,11 +18376,7 @@ provided.")
     (properties `((upstream-name . "cyclocomp")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-callr" ,r-callr)
-       ("r-crayon" ,r-crayon)
-       ("r-desc" ,r-desc)
-       ("r-remotes" ,r-remotes)
-       ("r-withr" ,r-withr)))
+     (list r-callr r-crayon r-desc r-remotes r-withr))
     (home-page "https://github.com/MangoTheCat/cyclocomp")
     (synopsis "Cyclomatic complexity of R code")
     (description
@@ -18678,18 +18400,18 @@ provides tools to compute this metric.")
     (properties `((upstream-name . "lintr")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-codetools" ,r-codetools)
-       ("r-crayon" ,r-crayon)
-       ("r-cyclocomp" ,r-cyclocomp)
-       ("r-digest" ,r-digest)
-       ("r-httr" ,r-httr)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-knitr" ,r-knitr)
-       ("r-rex" ,r-rex)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-testthat" ,r-testthat)
-       ("r-xml2" ,r-xml2)
-       ("r-xmlparsedata" ,r-xmlparsedata)))
+     (list r-codetools
+           r-crayon
+           r-cyclocomp
+           r-digest
+           r-httr
+           r-jsonlite
+           r-knitr
+           r-rex
+           r-rstudioapi
+           r-testthat
+           r-xml2
+           r-xmlparsedata))
     (home-page "https://github.com/jimhester/lintr")
     (synopsis "Linter for R code")
     (description "This package checks adherence to a given style, syntax
@@ -18710,16 +18432,16 @@ code edited with @code{RStudio IDE}, @code{Emacs} and @code{Vim}.")
          "1p3m6i28nlxh6r609syn88cwlbdpl3dw44dy3gsijk2ibq20mfsx"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-future" ,r-future)
-       ("r-future-apply" ,r-future-apply)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-reshape2" ,r-reshape2)))
+     (list r-future
+           r-future-apply
+           r-ggplot2
+           r-gridextra
+           r-mass
+           r-matrix
+           r-matrixstats
+           r-rcpp
+           r-rcpparmadillo
+           r-reshape2))
     (home-page "https://github.com/ChristophH/sctransform")
     (synopsis "Variance stabilizing transformations for Single Cell UMI Data")
     (description
@@ -18733,29 +18455,35 @@ batch correction, and data correction.")
 (define-public r-styler
   (package
     (name "r-styler")
-    (version "1.5.1")
+    (version "1.6.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "styler" version))
        (sha256
         (base32
-         "11vskz58mxkiq74bdz72nyzr2jrpyq4h7g47aai7rc5r3fzl6clc"))))
+         "0p7p2mh4f469drfn5z4wc4xrg06mpnm9wkw76fghclf8m9vcqbx6"))))
     (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-HOME
+           (lambda _ (setenv "HOME" "/tmp"))))))
     (propagated-inputs
-     `(("r-backports" ,r-backports)
-       ("r-cli" ,r-cli)
-       ("r-magrittr" ,r-magrittr)
-       ("r-purrr" ,r-purrr)
-       ("r-r-cache" ,r-r-cache)
-       ("r-rematch2" ,r-rematch2)
-       ("r-rlang" ,r-rlang)
-       ("r-rprojroot" ,r-rprojroot)
-       ("r-tibble" ,r-tibble)
-       ("r-withr" ,r-withr)
-       ("r-xfun" ,r-xfun)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-backports
+           r-cli
+           r-glue
+           r-magrittr
+           r-purrr
+           r-r-cache
+           r-rematch2
+           r-rlang
+           r-rprojroot
+           r-tibble
+           r-withr
+           r-xfun))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/r-lib/styler")
     (synopsis "Non-invasive pretty printing of R code")
     (description
@@ -18815,7 +18543,7 @@ parallel versions of vectorized R functions of the @code{mc*apply} family.")
         (base32
          "0413j7gwr5yj14jamkizj55q7xii1a0kgazzj0ilqn2ascclz6k7"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-lme4" ,r-lme4)))
+    (propagated-inputs (list r-lme4))
     (home-page "https://github.com/vdorie/blme")
     (synopsis "Bayesian linear mixed-effects models")
     (description
@@ -18837,20 +18565,20 @@ extends the lme4 package.")
          "0d2xy77hkzhcnyz8zxcv98i80fx6ripjw4rvyx4ww1d0vjjgqf52"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-backports" ,r-backports)
-       ("r-base64url" ,r-base64url)
-       ("r-brew" ,r-brew)
-       ("r-checkmate" ,r-checkmate)
-       ("r-data-table" ,r-data-table)
-       ("r-digest" ,r-digest)
-       ("r-fs" ,r-fs)
-       ("r-progress" ,r-progress)
-       ("r-r6" ,r-r6)
-       ("r-rappdirs" ,r-rappdirs)
-       ("r-stringi" ,r-stringi)
-       ("r-withr" ,r-withr)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-backports
+           r-base64url
+           r-brew
+           r-checkmate
+           r-data-table
+           r-digest
+           r-fs
+           r-progress
+           r-r6
+           r-rappdirs
+           r-stringi
+           r-withr))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/mllg/batchtools")
     (synopsis "Tools for computation on batch systems")
     (description
@@ -18866,16 +18594,16 @@ experiments in a well-organized and reproducible way.")
 (define-public r-clue
   (package
     (name "r-clue")
-    (version "0.3-59")
+    (version "0.3-60")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "clue" version))
        (sha256
         (base32
-         "0ychvjbqkcgqdp5gy4hsi4297phywd7fj89y3yi5ckmnmjb39kjm"))))
+         "0apgpdnn74mqg2bnr8yjyxgyvdl411h0r2b1r2xd67k21pyxs8bd"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-cluster" ,r-cluster)))
+    (propagated-inputs (list r-cluster))
     (home-page "https://cran.r-project.org/web/packages/clue/")
     (synopsis "Tools for analyzing cluster ensembles")
     (description "Cluster ensembles are collections of individual solutions to
@@ -18890,16 +18618,18 @@ consensus and secondary clusterings.")
 (define-public r-sitmo
   (package
     (name "r-sitmo")
-    (version "2.0.1")
+    (version "2.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sitmo" version))
        (sha256
         (base32
-         "0apdhwy3kxs39agsbvx5vn3xsgb22bf3jrwmr2cmqk9kmxbx740c"))))
+         "1hm89zi38ldgbskyx1cn7gm87yqy7zrxli8q05a36y1ndvazi3j4"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (propagated-inputs (list r-rcpp))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/coatless/sitmo/")
     (synopsis "Parallel pseudo random number generator header files")
     (description
@@ -18921,11 +18651,9 @@ dimensional low-discrepancy sequence.")
          "1fwsldqcri2lccna4icbmmlqic3w4xyjm7rn0xmikrsw4kzapvjb"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-rcpp" ,r-rcpp)
-       ("r-sitmo" ,r-sitmo)))
+     (list r-bh r-rcpp r-sitmo))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://www.daqana.org/dqrng")
     (synopsis "Fast pseudo random number generators")
     (description
@@ -18956,10 +18684,8 @@ engine (Salmon et al., 2011) as provided by the package @code{sitmo}.")
     (properties `((upstream-name . "ingredients")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-scales" ,r-scales)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-ggplot2 r-gridextra r-scales))
+    (native-inputs (list r-knitr))
     (home-page "https://ModelOriented.github.io/ingredients/")
     (synopsis "Effects and importances of model ingredients")
     (description
@@ -18995,8 +18721,8 @@ feature effects.  Key functions are:
          "00jzrndb3ahsv6ihp2pvs732n9cc944m83vdinrl9v1pxd82prkh"))))
     (properties `((upstream-name . "iBreakDown")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-ggplot2" ,r-ggplot2)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+    (propagated-inputs (list r-ggplot2))
+    (native-inputs (list r-knitr))
     (home-page "https://ModelOriented.github.io/iBreakDown/")
     (synopsis "Model agnostic instance level variable attributions")
     (description
@@ -19011,20 +18737,19 @@ classification and regression models.")
 (define-public r-dae
   (package
     (name "r-dae")
-    (version "3.2-10")
+    (version "3.2-13")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "dae" version))
        (sha256
         (base32
-         "1z5vxxzzpqfl78c2c60109jdr003j48qjisj3mrhsxa89wdv9hs9"))))
+         "0mq94ah21p1glvsbvdmi2p7nlgz1bvq7w3rz2z3mdqq18kz6nkjw"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-plyr" ,r-plyr)))
+     (list r-ggplot2 r-plyr))
     (native-inputs
-     `(("r-r-rsp" ,r-r-rsp))) ; vignette builder
+     (list r-r-rsp)) ; vignette builder
     (home-page "http://chris.brien.name")
     (synopsis "Functions useful in the design and ANOVA of experiments")
     (description
@@ -19061,9 +18786,7 @@ been used in the call to @code{aov}.")
     (properties `((upstream-name . "DALEX")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-ibreakdown" ,r-ibreakdown)
-       ("r-ingredients" ,r-ingredients)))
+     (list r-ggplot2 r-ibreakdown r-ingredients))
     (home-page "https://pbiecek.github.io/DALEX/")
     (synopsis "Descriptive machine learning explanations")
     (description
@@ -19090,11 +18813,9 @@ and model output.")
     (properties `((upstream-name . "enrichR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-httr" ,r-httr)
-       ("r-rjson" ,r-rjson)))
+     (list r-ggplot2 r-httr r-rjson))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/enrichR/")
     (synopsis "R Interface to Enrichr database for analyzing gene sets")
     (description
@@ -19116,7 +18837,7 @@ annotated biological functions.")
          "1h59zlsyzbjylaziwavppl9bjmnba4iiq34772y3dys6fqclajnh"))))
     (properties `((upstream-name . "plot3D")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-misc3d" ,r-misc3d)))
+    (propagated-inputs (list r-misc3d))
     (home-page "https://cran.r-project.org/web/packages/plot3D")
     (synopsis "Plot multi-dimensional data")
     (description
@@ -19128,25 +18849,25 @@ includes data sets from oceanography.")
 (define-public r-ggfortify
   (package
     (name "r-ggfortify")
-    (version "0.4.12")
+    (version "0.4.13")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggfortify" version))
        (sha256
         (base32
-         "13f3ggn94czw7xw5qxwrdncr2h7z7bvwgw8zxni8wkc8x3kbz5rd"))))
+         "0qls8pyndrlwx75wzlc0xmk04qq263d7065r3d6kvay7haa4nm40"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-scales" ,r-scales)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-dplyr
+           r-ggplot2
+           r-gridextra
+           r-scales
+           r-stringr
+           r-tibble
+           r-tidyr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/sinhrks/ggfortify")
     (synopsis "Data visualization tools for statistical analysis results")
     (description
@@ -19170,14 +18891,14 @@ results and plots in a unified style using the @code{ggplot2} package.")
     (properties `((upstream-name . "RefManageR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-httr" ,r-httr)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-lubridate" ,r-lubridate)
-       ("r-plyr" ,r-plyr)
-       ("r-stringr" ,r-stringr)
-       ("r-xml2" ,r-xml2)))
+     (list r-httr
+           r-jsonlite
+           r-lubridate
+           r-plyr
+           r-stringr
+           r-xml2))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/ropensci/RefManageR/")
     (synopsis "Straightforward BibTeX and BibLaTeX bibliography management")
     (description
@@ -19205,15 +18926,15 @@ into R and converted to @code{BibEntry} objects.")
          "1qbarvafjb8jgkrnrhh6jw7mcglmjwf7dpdiibxf39jkmlhf7las"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertthat" ,r-assertthat)
-       ("r-curl" ,r-curl)
-       ("r-httr" ,r-httr)
-       ("r-miniui" ,r-miniui)
-       ("r-refmanager" ,r-refmanager)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-shiny" ,r-shiny)
-       ("r-shinyjs" ,r-shinyjs)
-       ("r-yaml" ,r-yaml)))
+     (list r-assertthat
+           r-curl
+           r-httr
+           r-miniui
+           r-refmanager
+           r-rstudioapi
+           r-shiny
+           r-shinyjs
+           r-yaml))
     (home-page "https://github.com/crsh/citr")
     (synopsis "RStudio add-in to insert Markdown citations")
     (description
@@ -19225,22 +18946,19 @@ the current document.")
 (define-public r-xgboost
   (package
     (name "r-xgboost")
-    (version "1.4.1.1")
+    (version "1.5.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "xgboost" version))
        (sha256
         (base32
-         "1i706h6yhayzbqlqa1z6fgjc56kxm3isz0jw6d26fpyfjlw6z64z"))))
+         "04xbgrrb3aq067hrivslq5f2rd1v95yfv7lkj596ijyqi6ibjl27"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-magrittr" ,r-magrittr)
-       ("r-matrix" ,r-matrix)))
+     (list r-data-table r-jsonlite r-matrix))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/dmlc/xgboost")
     (synopsis "Extreme gradient boosting")
     (description
@@ -19267,12 +18985,9 @@ easily.")
          "191vpy84s0bar06y9z1qx43x2kc4qp7lmrcmd0cvz2pnzq722jab"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-openssl" ,r-openssl)
-       ("r-rcpp" ,r-rcpp)
-       ("r-reticulate" ,r-reticulate)
-       ("r-rspectra" ,r-rspectra)))
+     (list r-openssl r-rcpp r-reticulate r-rspectra))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/tkonopka/umap")
     (synopsis "Uniform manifold approximation and projection")
     (description
@@ -19294,14 +19009,14 @@ in R, including a translation of the original algorithm into R.")
          "08vxh085wnrxgwy35ksb4cr7ccjvd98pyr2zlgarqryfgc1bdqbf"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dqrng" ,r-dqrng)
-       ("r-fnn" ,r-fnn)
-       ("r-irlba" ,r-irlba)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppannoy" ,r-rcppannoy)
-       ("r-rcppprogress" ,r-rcppprogress)
-       ("r-rspectra" ,r-rspectra)))
+     (list r-dqrng
+           r-fnn
+           r-irlba
+           r-matrix
+           r-rcpp
+           r-rcppannoy
+           r-rcppprogress
+           r-rspectra))
     (home-page "https://github.com/jlmelville/uwot")
     (synopsis "Uniform manifold approximation and projection")
     (description
@@ -19326,22 +19041,22 @@ LargeVis method of Tang et al. (2016) is also provided.")
     (properties `((upstream-name . "kableExtra")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-digest" ,r-digest)
-       ("r-glue" ,r-glue)
-       ("r-htmltools" ,r-htmltools)
-       ("r-knitr" ,r-knitr)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-rvest" ,r-rvest)
-       ("r-scales" ,r-scales)
-       ("r-stringr" ,r-stringr)
-       ("r-svglite" ,r-svglite)
-       ("r-viridislite" ,r-viridislite)
-       ("r-webshot" ,r-webshot)
-       ("r-xml2" ,r-xml2)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-digest
+           r-glue
+           r-htmltools
+           r-knitr
+           r-magrittr
+           r-rmarkdown
+           r-rstudioapi
+           r-rvest
+           r-scales
+           r-stringr
+           r-svglite
+           r-viridislite
+           r-webshot
+           r-xml2))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://haozhu233.github.io/kableExtra/")
     (synopsis "Construct complex tables with pipe syntax")
     (description
@@ -19364,7 +19079,7 @@ customize styles using a readable syntax.")
        (sha256
         (base32 "02p3612rpydk195n2qr77lp1j2w8zsw1ckkk98c8angm4r5q8dsc"))))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://statweb.stanford.edu/~tibs/glasso/")
     (synopsis "Graphical Lasso: estimation of Gaussian graphical models")
     (description
@@ -19376,14 +19091,14 @@ path of values for the regularization parameter.")
 (define-public r-rhpcblasctl
   (package
     (name "r-rhpcblasctl")
-    (version "0.20-137")
+    (version "0.21-247.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RhpcBLASctl" version))
        (sha256
         (base32
-         "0vv144sgjhf7fazk633i16fc06g9k43syyxj1g34pi9gsgdcn0nv"))))
+         "0scpr6jq25xx7wmqyc380ann4h536ll0g7wblikk25yqvpamzrav"))))
     (properties `((upstream-name . "RhpcBLASctl")))
     (build-system r-build-system)
     (home-page "https://prs.ism.ac.jp/~nakama/Rhpc/")
@@ -19455,11 +19170,9 @@ computed using the L1 (Manhattan, taxicab) metric.")
     (properties `((upstream-name . "leiden")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-igraph" ,r-igraph)
-       ("r-matrix" ,r-matrix)
-       ("r-reticulate" ,r-reticulate)))
+     (list r-igraph r-matrix r-reticulate))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/TomKellyGenetics/leiden")
     (synopsis "R implementation of Leiden clustering algorithm")
     (description
@@ -19482,10 +19195,9 @@ guaranteeing well-connected communities.\" <arXiv:1810.08473>.")
          "10glgkf58lcykcwda1hj6xdps02m3i247qynk6s2jmwljagps3fg"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-gtable" ,r-gtable)))
+     (list r-ggplot2 r-gtable))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/thomasp85/patchwork")
     (synopsis "Compose ggplot2 plots")
     (description
@@ -19528,26 +19240,26 @@ multiple plots.")
                     (find-files "." "\\.class$"))
              #t)))))
     (propagated-inputs
-     `(("r-cowplot" ,r-cowplot)
-       ("r-dosnow" ,r-dosnow)
-       ("r-dplyr" ,r-dplyr)
-       ("r-fnn" ,r-fnn)
-       ("r-foreach" ,r-foreach)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-hmisc" ,r-hmisc)
-       ("r-ica" ,r-ica)
-       ("r-irlba" ,r-irlba)
-       ("r-matrix" ,r-matrix)
-       ("r-mclust" ,r-mclust)
-       ("r-patchwork" ,r-patchwork)
-       ("r-plyr" ,r-plyr)
-       ("r-rann-l1" ,r-rann-l1)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-riverplot" ,r-riverplot)
-       ("r-rtsne" ,r-rtsne)
-       ("r-snow" ,r-snow)))
+     (list r-cowplot
+           r-dosnow
+           r-dplyr
+           r-fnn
+           r-foreach
+           r-ggplot2
+           r-ggrepel
+           r-hmisc
+           r-ica
+           r-irlba
+           r-matrix
+           r-mclust
+           r-patchwork
+           r-plyr
+           r-rann-l1
+           r-rcpp
+           r-rcpparmadillo
+           r-riverplot
+           r-rtsne
+           r-snow))
     (native-inputs
      `(("jdk" ,icedtea "jdk")
        ;; See https://github.com/MacoskoLab/liger/issues/96
@@ -19591,19 +19303,19 @@ dataset-specific factors.")
            #t))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cowplot" ,r-cowplot)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-irlba" ,r-irlba)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rcppprogress" ,r-rcppprogress)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-cowplot
+           r-dplyr
+           r-ggplot2
+           r-irlba
+           r-matrix
+           r-rcpp
+           r-rcpparmadillo
+           r-rcppprogress
+           r-rlang
+           r-tibble
+           r-tidyr))
     (native-inputs
-     `(("autoconf" ,autoconf)))
+     (list autoconf))
     (home-page "https://github.com/immunogenomics/harmony")
     (synopsis "Integration of single cell sequencing data")
     (description
@@ -19626,15 +19338,15 @@ function and interfaces to external frameworks.")
     (properties `((upstream-name . "covr")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-crayon" ,r-crayon)
-       ("r-digest" ,r-digest)
-       ("r-httr" ,r-httr)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-rex" ,r-rex)
-       ("r-withr" ,r-withr)
-       ("r-yaml" ,r-yaml)))
+     (list r-crayon
+           r-digest
+           r-httr
+           r-jsonlite
+           r-rex
+           r-withr
+           r-yaml))
     (native-inputs
-     `(("r-knitr" ,r-knitr))) ; for vignettes
+     (list r-knitr)) ; for vignettes
     (home-page "https://github.com/r-lib/covr")
     (synopsis "Test coverage for R packages")
     (description
@@ -19649,24 +19361,22 @@ both R code and compiled C/C++/FORTRAN code.")
 (define-public r-systemfonts
   (package
     (name "r-systemfonts")
-    (version "1.0.2")
+    (version "1.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "systemfonts" version))
        (sha256
         (base32
-         "1a9nzd4nqawr6ni3mw7xc2yq77fb2f91aarnc906mq26510rdb11"))))
+         "1fmv1ni77ncz6rrm4iv8a7l6pbqnk2ri0yzad2bs943gxbarjz34"))))
     (properties `((upstream-name . "systemfonts")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cpp11" ,r-cpp11)))
+     (list r-cpp11))
     (inputs
-     `(("fontconfig" ,fontconfig)
-       ("zlib" ,zlib)))
+     (list fontconfig zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://github.com/r-lib/systemfonts")
     (synopsis "System native font finding")
     (description
@@ -19680,20 +19390,18 @@ be used further by e.g. graphic devices.")
 (define-public r-graphlayouts
   (package
     (name "r-graphlayouts")
-    (version "0.7.1")
+    (version "0.7.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "graphlayouts" version))
        (sha256
         (base32
-         "05v7ss18bflhqa4ipsca8iw2ln8ddbaiyrizx2a5cwq81g5qq3rq"))))
+         "0vncg1pfnwrfkjfwz5k86b0ir8vnjkbyd0kzpbgb0cpkdz7987pc"))))
     (properties `((upstream-name . "graphlayouts")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-igraph" ,r-igraph)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)))
+     (list r-igraph r-rcpp r-rcpparmadillo))
     (home-page "https://github.com/schochastics/graphlayouts")
     (synopsis "Additional layout algorithms for network visualizations")
     (description
@@ -19707,27 +19415,26 @@ emphasize hidden group structures in networks or focus on specific nodes.")
 (define-public r-terra
   (package
     (name "r-terra")
-    (version "1.3-22")
+    (version "1.4-20")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "terra" version))
        (sha256
         (base32
-         "1z5zql68q4n81ccpl02hndhbavhhqs65bli1hjxlqdwdq192whkh"))))
+         "0c4nx113sfympixy5rkvgzc7pprcfflnadkbwhcpzjlky8gmmsk4"))))
     (properties `((upstream-name . "terra")))
     (build-system r-build-system)
     (inputs
-     `(("gdal" ,gdal)
-       ("geos" ,geos)
-       ("proj" ,proj)
-       ("sqlite" ,sqlite) ; needed for proj
-       ("zlib" ,zlib)))
+     (list gdal
+           geos
+           proj
+           sqlite ; needed for proj
+           zlib))
     (propagated-inputs
-     `(("r-raster" ,r-raster)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://rspatial.org/terra")
     (synopsis "Spatial data analysis")
     (description
@@ -19753,15 +19460,15 @@ files is supported.")
     (properties `((upstream-name . "tidygraph")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-igraph" ,r-igraph)
-       ("r-magrittr" ,r-magrittr)
-       ("r-pillar" ,r-pillar)
-       ("r-r6" ,r-r6)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-dplyr
+           r-igraph
+           r-magrittr
+           r-pillar
+           r-r6
+           r-rcpp
+           r-rlang
+           r-tibble
+           r-tidyr))
     (home-page "https://github.com/thomasp85/tidygraph")
     (synopsis "Tidy API for graph manipulation")
     (description
@@ -19791,9 +19498,7 @@ common graph algorithms.")
       (properties `((upstream-name . "SoupX")))
       (build-system r-build-system)
       (propagated-inputs
-       `(("r-ggplot2" ,r-ggplot2)
-         ("r-matrix" ,r-matrix)
-         ("r-seurat" ,r-seurat)))
+       (list r-ggplot2 r-matrix r-seurat))
       (home-page "https://github.com/constantAmateur/SoupX")
       (synopsis "Single cell mRNA Soup eXterminator")
       (description
@@ -19815,11 +19520,9 @@ cell RNA-seq experiments.")
          "00764vv86r3bn4r85in4w637harffyw605fgq0dj6mrbrwcfb650"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-mass" ,r-mass)
-       ("r-rlang" ,r-rlang)))
+     (list r-dplyr r-mass r-rlang))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))           ; needed for vignette
+     (list r-knitr))           ; needed for vignette
     (home-page "https://github.com/ropensci/assertr")
     (synopsis "Assertive programming for R analysis pipelines")
     (description
@@ -19832,21 +19535,20 @@ in pipelines.")
 (define-public r-parameters
   (package
     (name "r-parameters")
-    (version "0.14.0")
+    (version "0.15.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "parameters" version))
        (sha256
         (base32
-         "03x2h8izbpz9cq25i0a6dh99m26a9isgpv4kxsfkx97qzlh9cd67"))))
+         "0f06bwlc1g0xdyhdqzx8plfx1jwk8a9j4lcbl91wjsil8wja0bkl"))))
     (properties `((upstream-name . "parameters")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bayestestr" ,r-bayestestr)
-       ("r-insight" ,r-insight)))
+     (list r-bayestestr r-datawizard r-insight))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/parameters")
     (synopsis "Processing of model parameters")
     (description
@@ -19861,24 +19563,21 @@ effect size.")
 (define-public r-rgdal
   (package
     (name "r-rgdal")
-    (version "1.5-23")
+    (version "1.5-27")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rgdal" version))
        (sha256
-        (base32 "0vnb7kw762y349pda4aq1hx0smafylmn3635l963qykfji5p99cw"))))
+        (base32 "0mjpxs2dvbngbchlb0kfs0jcac7v88slwxmka81ds92lggnmb9b2"))))
     (properties `((upstream-name . "rgdal")))
     (build-system r-build-system)
     (inputs
-     `(("gdal" ,gdal)
-       ("proj" ,proj)
-       ("zlib" ,zlib)))
+     (list gdal proj zlib))
     (propagated-inputs
-     `(("r-sp" ,r-sp)))
+     (list r-sp))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "http://rgdal.r-forge.r-project.org")
     (synopsis "Bindings for the Geospatial Data Abstraction Library")
     (description
@@ -19901,9 +19600,9 @@ PROJ.4 library.")
     (properties `((upstream-name . "insol")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-raster" ,r-raster)))
+     (list r-raster))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://meteoexploration.com/R/insol/index.html")
     (synopsis "Tools for calculating solar radiation")
     (description
@@ -19917,21 +19616,20 @@ atmospheric physics.")
 (define-public r-lifecycle
   (package
     (name "r-lifecycle")
-    (version "1.0.0")
+    (version "1.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lifecycle" version))
        (sha256
         (base32
-         "13hgxk93q9387s8dnqpm8dfx610y0pr76khqksj4kbgj2fr4lcq3"))))
+         "183v1z1h037pvsgrj6vakpwhnhsr29hsw8p16k59dgpi00f6x9qx"))))
     (properties `((upstream-name . "lifecycle")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-glue" ,r-glue)
-       ("r-rlang" ,r-rlang)))
+     (list r-glue r-rlang))
     (native-inputs
-     `(("r-knitr" ,r-knitr))) ; for vignettes
+     (list r-knitr)) ; for vignettes
     (home-page "https://github.com/r-lib/lifecycle")
     (synopsis "Manage the life cycle of your package functions")
     (description
@@ -19957,9 +19655,9 @@ signalled with increasing levels of non-invasive verbosity.")
          "1cciil1nzxd8gbj49w99jiv077lbpb59vx7bmb4p218aj2h5hqq4"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)))
+     (list r-data-table))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/assertable/")
     (synopsis "Verbose assertions for tabular data (data.frames and data.tables)")
     (description "This package provides simple, flexible assertions on
@@ -19985,7 +19683,7 @@ data.table.")
         (base32 "1ka9g8zak8sg4y2xbz93dfrldznlk9qpd4pq9z21cdcdn3b8s4i2"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/quadprog")
     (synopsis "Functions to solve quadratic programming problems")
     (description
@@ -19996,17 +19694,17 @@ programming problems.")
 (define-public r-desolve
   (package
     (name "r-desolve")
-    (version "1.28")
+    (version "1.30")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "deSolve" version))
        (sha256
-        (base32 "0jasvdzig0pzhzspmy20089az19r91xjfb9q6h8gj7c4mr6fymac"))))
+        (base32 "0j7mmg1mimdpql8f4i9dn920ciyyq80a5qnc4fq5xn5lyrx5vxir"))))
     (properties `((upstream-name . "deSolve")))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://desolve.r-forge.r-project.org/")
     (synopsis "Solvers for initial value problems of differential equations")
     (description "This package provides functions that solve initial value
@@ -20053,7 +19751,7 @@ porting.")
          "1yfbfjvpbhgky7vihw3f4jl41pxpqb39z4nc045d5z7z48bdl18d"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/subplex")
     (synopsis "Unconstrained optimization using the subplex algorithm")
     (description
@@ -20096,10 +19794,10 @@ as a boxplot function.")
          "1jvcmpzi9knhxq5jsbhg8slm8hnlx2y8smmwwrbnbyd0rmk5fhci"))))
     (properties `((upstream-name . "bio3d")))
     (build-system r-build-system)
-    (inputs `(("zlib" ,zlib)))
-    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (inputs (list zlib))
+    (propagated-inputs (list r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "http://thegrantlab.org/bio3d/")
     (synopsis "Biological structure analysis")
     (description
@@ -20130,10 +19828,7 @@ structural data.")
     (properties `((upstream-name . "Bios2cor")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bigmemory" ,r-bigmemory)
-       ("r-bio3d" ,r-bio3d)
-       ("r-circular" ,r-circular)
-       ("r-igraph" ,r-igraph)))
+     (list r-bigmemory r-bio3d r-circular r-igraph))
     (home-page "https://cran.r-project.org/web/packages/Bios2cor/")
     (synopsis "From biological sequences and simulations to correlation analysis")
     (description
@@ -20187,14 +19882,14 @@ tools for help in data interpretation.")
                    (for-each (lambda (source target)
                                (format #t "Processing ~a --> ~a~%"
                                        source target)
-                               (let ((minified (open-pipe* OPEN_READ "uglify-js" source)))
+                               (let ((minified (open-pipe* OPEN_READ "uglifyjs" source)))
                                  (call-with-output-file target
                                    (lambda (port)
                                      (dump-port minified port)))))
                              sources targets))))
              #t)))))
     (native-inputs
-     `(("uglify-js" ,uglify-js)
+     `(("uglifyjs" ,node-uglify-js)
        ;; NOTE: Make sure that this version of d3 is still valid when
        ;; upgrading the package.
        ("d3.v4.js"
@@ -20205,9 +19900,7 @@ tools for help in data interpretation.")
             (base32
              "0y7byf6kcinfz9ac59jxc4v6kppdazmnyqfav0dm4h550fzfqqlg"))))))
     (propagated-inputs
-     `(("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-igraph" ,r-igraph)
-       ("r-magrittr" ,r-magrittr)))
+     (list r-htmlwidgets r-igraph r-magrittr))
     (home-page "https://cran.r-project.org/package=networkD3")
     (synopsis "D3 JavaScript network graphs from R")
     (description
@@ -20229,15 +19922,15 @@ graphs from R.")
     (properties `((upstream-name . "aaSEA")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bios2cor" ,r-bios2cor)
-       ("r-dt" ,r-dt)
-       ("r-hmisc" ,r-hmisc)
-       ("r-magrittr" ,r-magrittr)
-       ("r-networkd3" ,r-networkd3)
-       ("r-plotly" ,r-plotly)
-       ("r-seqinr" ,r-seqinr)
-       ("r-shiny" ,r-shiny)
-       ("r-shinydashboard" ,r-shinydashboard)))
+     (list r-bios2cor
+           r-dt
+           r-hmisc
+           r-magrittr
+           r-networkd3
+           r-plotly
+           r-seqinr
+           r-shiny
+           r-shinydashboard))
     (home-page "https://cran.r-project.org/web/packages/aaSEA/")
     (synopsis "Amino acid substitution effect analyzer")
     (description
@@ -20261,8 +19954,7 @@ single, multiple and correlated amino acid substitutions in proteins.")
     (properties `((upstream-name . "ABACUS")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-shiny" ,r-shiny)))
+     (list r-ggplot2 r-shiny))
     (home-page "https://shiny.abdn.ac.uk/Stats/apps/")
     (synopsis "Apps-based activities for communicating and understanding statistics")
     (description
@@ -20307,8 +19999,7 @@ beta analysis to identify candidate genes containing multiple CpG sites.")
     (properties `((upstream-name . "abcADM")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-bh r-rcpp))
     (home-page "https://cran.r-project.org/web/packages/abcADM/")
     (synopsis "Fit accumulated damage models and estimate reliability using ABC")
     (description
@@ -20332,9 +20023,9 @@ long-term reliability under stochastic load profiles.")
     (properties `((upstream-name . "Rglpk")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-slam" ,r-slam)))
+     (list r-slam))
     (inputs
-     `(("glpk" ,glpk)))
+     (list glpk))
     (home-page "https://r-forge.r-project.org/projects/rglp/")
     (synopsis "R interface to the GNU Linear Programming Kit")
     (description
@@ -20358,10 +20049,7 @@ integer linear programming} (MILP) and other related problems.")
     (properties `((upstream-name . "abcdeFBA")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-corrplot" ,r-corrplot)
-       ("r-lattice" ,r-lattice)
-       ("r-rgl" ,r-rgl)
-       ("r-rglpk" ,r-rglpk)))
+     (list r-corrplot r-lattice r-rgl r-rglpk))
     (home-page "https://cran.r-project.org/web/packages/abcdeFBA/")
     (synopsis "A-Biologist-Can-Do-Everything of Flux Balance Analysis with this package")
     (description
@@ -20407,7 +20095,7 @@ overall risk.")
     (properties `((upstream-name . "abemus")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)))
+     (list r-data-table))
     (home-page "https://cran.r-project.org/web/packages/abemus/")
     (synopsis "Adaptive base error model in ultra-deep sequencing data")
     (description
@@ -20457,8 +20145,7 @@ cell free DNA} (cfDNA).")
             (base32
              "0vh5n7hqqyx2pdvlqq6xadfqibcn78h5961rwhpf817kpxfzv8v7"))))))
     (propagated-inputs
-     `(("r-jsonlite" ,r-jsonlite)
-       ("r-shiny" ,r-shiny)))
+     (list r-jsonlite r-shiny))
     (home-page "https://github.com/carlganz/rintrojs")
     (synopsis "Wrapper for the Intro.js library")
     (description
@@ -20484,11 +20171,9 @@ server-side.")
     (properties `((upstream-name . "sysfonts")))
     (build-system r-build-system)
     (inputs
-     `(("freetype" ,freetype)
-       ("libpng" ,libpng)
-       ("zlib" ,zlib)))
+     (list freetype libpng zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/yixuan/sysfonts")
     (synopsis "Loading fonts into R")
     (description
@@ -20510,7 +20195,7 @@ into R, in order to support other packages.")
     (properties `((upstream-name . "showtextdb")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-sysfonts" ,r-sysfonts)))
+     (list r-sysfonts))
     (home-page "https://cran.r-project.org/web/packages/showtextdb/")
     (synopsis "Font files for the 'showtext' package")
     (description
@@ -20532,15 +20217,11 @@ package.")
     (properties `((upstream-name . "showtext")))
     (build-system r-build-system)
     (inputs
-     `(("freetype" ,freetype)
-       ("libpng" ,libpng)
-       ("zlib" ,zlib)))
+     (list freetype libpng zlib))
     (propagated-inputs
-     `(("r-showtextdb" ,r-showtextdb)
-       ("r-sysfonts" ,r-sysfonts)))
+     (list r-showtextdb r-sysfonts))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://github.com/yixuan/showtext")
     (synopsis "Using fonts more easily in R graphs")
     (description
@@ -20566,12 +20247,9 @@ such as Ghostscript is needed to use this package.")
     (properties `((upstream-name . "emojifont")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-proto" ,r-proto)
-       ("r-showtext" ,r-showtext)
-       ("r-sysfonts" ,r-sysfonts)))
+     (list r-ggplot2 r-proto r-showtext r-sysfonts))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://guangchuangyu.github.io/emojifont")
     (synopsis "Emoji and Font Awesome in R graphics")
     (description
@@ -20593,13 +20271,13 @@ both base and ggplot2 graphics.")
     (properties `((upstream-name . "abstractr")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-colourpicker" ,r-colourpicker)
-       ("r-emojifont" ,r-emojifont)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-rintrojs" ,r-rintrojs)
-       ("r-shiny" ,r-shiny)
-       ("r-shinythemes" ,r-shinythemes)))
+     (list r-colourpicker
+           r-emojifont
+           r-ggplot2
+           r-gridextra
+           r-rintrojs
+           r-shiny
+           r-shinythemes))
     (home-page "https://matt-kumar.shinyapps.io/portfolio")
     (synopsis "R-Shiny application for creating visual abstracts")
     (description
@@ -20622,11 +20300,8 @@ included.")
     (properties `((upstream-name . "qgam")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-doparallel" ,r-doparallel)
-       ("r-mgcv" ,r-mgcv)
-       ("r-plyr" ,r-plyr)
-       ("r-shiny" ,r-shiny)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-doparallel r-mgcv r-plyr r-shiny))
+    (native-inputs (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/qgam/")
     (synopsis "Smooth additive quantile regression models")
     (description
@@ -20655,14 +20330,14 @@ regression models.")
     (properties `((upstream-name . "abtest")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-plotrix" ,r-plotrix)
-       ("r-qgam" ,r-qgam)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rcpp" ,r-rcpp)
-       ("r-sn" ,r-sn)
-       ("r-truncnorm" ,r-truncnorm)))
+     (list r-matrix
+           r-mvtnorm
+           r-plotrix
+           r-qgam
+           r-rcolorbrewer
+           r-rcpp
+           r-sn
+           r-truncnorm))
     (home-page "https://cran.r-project.org/web/packages/abtest/")
     (synopsis "Bayesian A/B testing")
     (description
@@ -20685,8 +20360,7 @@ elicitation options based on Kass and Vaidyanathan (1992)
     (properties `((upstream-name . "reldist")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-hmisc" ,r-hmisc)
-       ("r-mgcv" ,r-mgcv)))
+     (list r-hmisc r-mgcv))
     (home-page "http://www.stat.ucla.edu/~handcock/RelDist")
     (synopsis "Relative distribution methods")
     (description
@@ -20713,8 +20387,7 @@ Social Sciences\" by Mark S. Handcock and Martina Morris, Springer-Verlag,
     (properties `((upstream-name . "accept")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-reldist" ,r-reldist)))
+     (list r-dplyr r-reldist))
     (home-page "https://cran.r-project.org/web/packages/accept/")
     (synopsis "Acute COPD Exacerbation Prediction Tool (ACCEPT)")
     (description
@@ -20738,10 +20411,7 @@ Adibi et al. (2019) @url{doi:10.1101/651901}.")
     (properties `((upstream-name . "SMPracticals")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ellipse" ,r-ellipse)
-       ("r-mass" ,r-mass)
-       ("r-nlme" ,r-nlme)
-       ("r-survival" ,r-survival)))
+     (list r-ellipse r-mass r-nlme r-survival))
     (home-page "http://statwww.epfl.ch/davison/SM/")
     (synopsis "Practicals for use with Davison (2003) Statistical Models")
     (description
@@ -20792,8 +20462,7 @@ experienced.")
     (properties `((upstream-name . "tcltk2")))
     (build-system r-build-system)
     (inputs
-     `(("tcl" ,tcl)
-       ("tk" ,tk)))
+     (list tcl tk))
     (home-page "https://www.sciviews.org/SciViews-R")
     (synopsis "Tcl/Tk additions")
     (description
@@ -20815,9 +20484,7 @@ with style and various functions to supplement the tcltk package")
     (properties `((upstream-name . "accrual")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-fgui" ,r-fgui)
-       ("r-smpracticals" ,r-smpracticals)
-       ("r-tcltk2" ,r-tcltk2)))
+     (list r-fgui r-smpracticals r-tcltk2))
     (home-page "https://cran.r-project.org/web/packages/accrual/")
     (synopsis "Bayesian accrual prediction")
     (description
@@ -20864,8 +20531,8 @@ data.")
          "1hq0zhhz9klmp4zcr1w8hyn7s1h9kfg57d2l2mfm7psx459j0krl"))))
     (properties `((upstream-name . "mda")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-class" ,r-class)))
-    (native-inputs `(("gfortran" ,gfortran)))
+    (propagated-inputs (list r-class))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/mda/")
     (synopsis "Mixture and flexible discriminant analysis")
     (description
@@ -20887,7 +20554,7 @@ data.")
     (properties `((upstream-name . "elasticnet")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lars" ,r-lars)))
+     (list r-lars))
     (home-page "http://users.stat.umn.edu/~zouxx019/")
     (synopsis "Elastic-Net for sparse estimation and sparse PCA")
     (description
@@ -20910,9 +20577,7 @@ Components.  The Lasso solution paths can be computed by the same function.")
     (properties `((upstream-name . "sparseLDA")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-elasticnet" ,r-elasticnet)
-       ("r-mass" ,r-mass)
-       ("r-mda" ,r-mda)))
+     (list r-elasticnet r-mass r-mda))
     (home-page "https://www.imm.dtu.dk/~lkhc/")
     (synopsis "Sparse discriminant analysis")
     (description
@@ -20934,12 +20599,12 @@ and mixture of Gaussian models.")
     (properties `((upstream-name . "accSDA")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-ggthemes" ,r-ggthemes)
-       ("r-gridextra" ,r-gridextra)
-       ("r-mass" ,r-mass)
-       ("r-rarpack" ,r-rarpack)
-       ("r-sparselda" ,r-sparselda)))
+     (list r-ggplot2
+           r-ggthemes
+           r-gridextra
+           r-mass
+           r-rarpack
+           r-sparselda))
     (home-page "https://github.com/gumeo/accSDA/wiki")
     (synopsis "Accelerated sparse discriminant analysis")
     (description
@@ -20967,7 +20632,7 @@ discriminant} (SZVD) analysis is also included in the package.")
     (properties `((upstream-name . "ace2fastq")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-stringr" ,r-stringr)))
+     (list r-stringr))
     (home-page "https://github.com/c5sire/ace2fastq")
     (synopsis "ACE file to FASTQ converter")
     (description
@@ -20982,14 +20647,14 @@ facilitates insertion into pipelines, and content inspection.")
 (define-public r-rngwell
   (package
     (name "r-rngwell")
-    (version "0.10-6")
+    (version "0.10-7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rngWELL" version))
        (sha256
         (base32
-         "0pjjcs9pqj7mf0mhb2cwd0aanqpwnm65bm86hk6mi2vw8rgnj2vv"))))
+         "0f1dxxaimfb0fww8ym9ciqf6q760ai46wxldl37m5mfpd57ca00c"))))
     (properties `((upstream-name . "rngWELL")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/rngWELL/")
@@ -21012,8 +20677,7 @@ on Linear Recurrences Modulo 2'', ACM Transactions on Mathematical Software.")
               "1nz6h0j5ywdh48m0swmhp34hbkycd7n13rclrxaw85qi9wc42597"))))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-knitr" ,r-knitr)
-      ("r-nnls" ,r-nnls)))
+    (list r-knitr r-nnls))
    (home-page "https://cran.r-project.org/web/packages/rNMF/")
    (synopsis "Robust nonnegative matrix factorization")
    (description
@@ -21028,20 +20692,20 @@ and prints vectorized images.")
 (define-public r-randtoolbox
   (package
     (name "r-randtoolbox")
-    (version "1.30.1")
+    (version "1.31.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "randtoolbox" version))
        (sha256
         (base32
-         "0qg20ar6qns858jdzqhmfq7yji81czhr6cim257958gqpj66sn95"))))
+         "1b9vjzqg014hxp1vfb62m01d7xim5vmpbyxzlbll49bqas0jx69h"))))
     (properties `((upstream-name . "randtoolbox")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rngwell" ,r-rngwell)))
+     (list r-rngwell))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/randtoolbox/")
     (synopsis "Toolbox for pseudo and quasi random number generation")
     (description
@@ -21065,19 +20729,19 @@ See e.g. Gentle (2003) @url{doi:10.1007/b97336}.")
 (define-public r-lhs
   (package
     (name "r-lhs")
-    (version "1.1.1")
+    (version "1.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lhs" version))
        (sha256
         (base32
-         "1p4h03qlijs2a59wfd4rlvdlb9i87pw2zm8xsjd6yzz8vlm9yglh"))))
+         "1l861h76q5w0nbnbybhgg7hiw7fks677jakyd49n1whwvd48sfz4"))))
     (properties `((upstream-name . "lhs")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (propagated-inputs (list r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/bertcarnell/lhs")
     (synopsis "Latin Hypercube Samples")
     (description
@@ -21099,11 +20763,7 @@ Latin Hypercube Samples.")
     (properties `((upstream-name . "acebayes")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-compare" ,r-compare)
-       ("r-lhs" ,r-lhs)
-       ("r-randtoolbox" ,r-randtoolbox)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)))
+     (list r-compare r-lhs r-randtoolbox r-rcpp r-rcpparmadillo))
     (home-page "https://cran.r-project.org/web/packages/acebayes/")
     (synopsis "Optimal Bayesian experimental design using the ACE algorithm")
     (description
@@ -21130,10 +20790,7 @@ to maximise an approximation to the expectation of the utility function.")
     (properties `((upstream-name . "ACEt")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-mass" ,r-mass)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)))
+     (list r-bh r-mass r-rcpp r-rcpparmadillo))
     (home-page "https://cran.r-project.org/web/packages/ACEt/")
     (synopsis "Estimating dynamic heritability and twin model comparison")
     (description
@@ -21156,7 +20813,7 @@ to age using B-splines and P-splines.")
     (properties `((upstream-name . "acfMPeriod")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)))
+     (list r-mass))
     (home-page "https://cran.r-project.org/web/packages/acfMPeriod/")
     (synopsis "Estimation of the ACF from the M-periodogram")
     (description
@@ -21174,14 +20831,14 @@ discussed in Reisen et al. (2017) @url{doi:10.1016/j.jspi.2017.02.008}.")
 (define-public r-gamlss-data
   (package
     (name "r-gamlss-data")
-    (version "6.0-1")
+    (version "6.0-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gamlss.data" version))
        (sha256
         (base32
-         "1cjb2n5i5mnhmb5qbqycdbfg65j7nxb9s74yihqs9kpa39byrzcq"))))
+         "07mpdl4h9rwmnpl9jmsn6ig8ji11an6pyjfsvg62h2alapwbdcyv"))))
     (properties `((upstream-name . "gamlss.data")))
     (build-system r-build-system)
     (home-page "http://www.gamlss.org/")
@@ -21206,11 +20863,7 @@ models.")
     (properties `((upstream-name . "gamlss")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-gamlss-data" ,r-gamlss-data)
-       ("r-gamlss-dist" ,r-gamlss-dist)
-       ("r-mass" ,r-mass)
-       ("r-nlme" ,r-nlme)
-       ("r-survival" ,r-survival)))
+     (list r-gamlss-data r-gamlss-dist r-mass r-nlme r-survival))
     (home-page "http://www.gamlss.org/")
     (synopsis "Generalized additive models for location scale and shape")
     (description
@@ -21237,9 +20890,7 @@ explanatory variables.")
     (properties `((upstream-name . "acid")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-gamlss" ,r-gamlss)
-       ("r-gamlss-dist" ,r-gamlss-dist)
-       ("r-hmisc" ,r-hmisc)))
+     (list r-gamlss r-gamlss-dist r-hmisc))
     (home-page "https://cran.r-project.org/web/packages/acid/")
     (synopsis "Analysing conditional income distributions")
     (description
@@ -21265,7 +20916,7 @@ analysis of income distributions at the disaggregated level.")
          "1wqzc35i1rshx0zlmas8y4qkkvy6h9r4i4apscjjv1xg2wjflzxa"))))
     (properties `((upstream-name . "acm4r")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-mass" ,r-mass)))
+    (propagated-inputs (list r-mass))
     (home-page "https://cran.r-project.org/web/packages/acm4r/")
     (synopsis "Align-and-count method comparisons of RFLP data")
     (description
@@ -21311,9 +20962,7 @@ the appropriate system call provided by the underlying operating system.")
     (build-system r-build-system)
     ;; These inputs are needed for vignettes
     (native-inputs
-     `(("r-knitr" ,r-knitr)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("pandoc-citeproc" ,pandoc-citeproc)))
+     (list r-knitr r-rmarkdown))
     (home-page "https://github.com/andreyshabalin/filematrix")
     (synopsis "File-backed matrix class with convenient read and write access")
     (description
@@ -21340,7 +20989,7 @@ columns, ad allows for quick addition of extra columns to a filematrix.")
     (properties `((upstream-name . "ACMEeqtl")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-filematrix" ,r-filematrix)))
+     (list r-filematrix))
     (home-page "https://github.com/andreyshabalin/ACMEeqtl")
     (synopsis "Estimation of interpretable eQTL effect sizes")
     (description
@@ -21364,7 +21013,7 @@ p-values with well controlled Type-I error.")
          "000b2hqlhj93958nddw0fqb15ahigs08najv2miivym046x04mf7"))))
     (properties `((upstream-name . "acmeR")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-foreign" ,r-foreign)))
+    (propagated-inputs (list r-foreign))
     (home-page "https://cran.r-project.org/web/packages/acmeR/")
     (synopsis "ACME estimator of bird and bat mortality by wind turbines")
     (description
@@ -21392,9 +21041,7 @@ settings.")
     (properties `((upstream-name . "R.huge")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-r-methodss3" ,r-r-methodss3)
-       ("r-r-oo" ,r-r-oo)
-       ("r-r-utils" ,r-r-utils)))
+     (list r-r-methodss3 r-r-oo r-r-utils))
     (home-page "https://github.com/HenrikBengtsson/R.huge")
     (synopsis "Methods for accessing huge amounts of data")
     (description
@@ -21417,12 +21064,13 @@ the @code{aroma.affymetrix} package.")
          "08xv8b3c81nf54viyr3w912al18483k5gfnjpg7bxbdfk70dfzbh"))))
     (properties `((upstream-name . "R.filesets")))
     (build-system r-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-HOME
+           (lambda _ (setenv "HOME" "/tmp"))))))
     (propagated-inputs
-     `(("r-digest" ,r-digest)
-       ("r-r-cache" ,r-r-cache)
-       ("r-r-methodss3" ,r-r-methodss3)
-       ("r-r-oo" ,r-r-oo)
-       ("r-r-utils" ,r-r-utils)))
+     (list r-digest r-r-cache r-r-methodss3 r-r-oo r-r-utils))
     (home-page "https://github.com/HenrikBengtsson/R.filesets")
     (synopsis "Easy handling of and access to files")
     (description
@@ -21450,10 +21098,7 @@ identify file sets and individual files.")
     (properties `((upstream-name . "R.devices")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-r-methodss3" ,r-r-methodss3)
-       ("r-r-oo" ,r-r-oo)
-       ("r-r-utils" ,r-r-utils)))
+     (list r-base64enc r-r-methodss3 r-r-oo r-r-utils))
     (home-page "https://github.com/HenrikBengtsson/R.devices")
     (synopsis "Unified handling of graphics devices")
     (description
@@ -21526,7 +21171,7 @@ provided as well.")
          "12nixpqrc5gp7p2clr7ia6jwb0jq2i3brlxiwlp00ixmnm5g1jyd"))))
     (properties `((upstream-name . "tuneR")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-signal" ,r-signal)))
+    (propagated-inputs (list r-signal))
     (home-page "https://cran.r-project.org/web/packages/tuneR/")
     (synopsis "Analysis of music and speech")
     (description
@@ -21551,9 +21196,9 @@ transcription, ...")
     (properties `((upstream-name . "seewave")))
     (build-system r-build-system)
     (inputs
-     `(("libsndfile" ,libsndfile)))
+     (list libsndfile))
     (propagated-inputs
-     `(("r-tuner" ,r-tuner)))
+     (list r-tuner))
     (home-page "http://rug.mnhn.fr/seewave")
     (synopsis "Sound analysis and synthesis")
     (description
@@ -21580,9 +21225,7 @@ and 3D spectrograms and many other analyses.")
      `((upstream-name . "AcousticNDLCodeR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-seewave" ,r-seewave)
-       ("r-tuner" ,r-tuner)
-       ("r-zoo" ,r-zoo)))
+     (list r-seewave r-tuner r-zoo))
     (home-page "https://cran.r-project.org/web/packages/AcousticNDLCodeR/")
     (synopsis "Coding sound files for use with NDL")
     (description
@@ -21608,8 +21251,7 @@ unit.\" @url{doi:10.1371/journal.pone.0174623}")
     (properties `((upstream-name . "acp")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-quantmod" ,r-quantmod)
-       ("r-tseries" ,r-tseries)))
+     (list r-quantmod r-tseries))
     (home-page "https://cran.r-project.org/web/packages/acp/")
     (synopsis "Autoregressive conditional Poisson")
     (description
@@ -21631,7 +21273,7 @@ model (ACP(p,q)) proposed by Heinen (2003).")
          "1h3a07czp0w3hrhjcg1fz721y8vsfclzqi3rq8qfzgpfb4h1f06r"))))
     (properties `((upstream-name . "ada")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-rpart" ,r-rpart)))
+    (propagated-inputs (list r-rpart))
     (home-page "https://cran.r-project.org/web/packages/ada/")
     (synopsis "Stochastic boosting")
     (description
@@ -21676,10 +21318,7 @@ floating point chromosomes.")
     (properties `((upstream-name . "kernelFactory")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-auc" ,r-auc)
-       ("r-genalg" ,r-genalg)
-       ("r-kernlab" ,r-kernlab)
-       ("r-randomforest" ,r-randomforest)))
+     (list r-auc r-genalg r-kernlab r-randomforest))
     (home-page "https://cran.r-project.org/web/packages/kernelFactory/")
     (synopsis "Ensemble of kernel machines")
     (description
@@ -21721,10 +21360,7 @@ classes into dummy/indicator variables.")
     (properties `((upstream-name . "aCRM")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ada" ,r-ada)
-       ("r-dummies" ,r-dummies)
-       ("r-kernelfactory" ,r-kernelfactory)
-       ("r-randomforest" ,r-randomforest)))
+     (list r-ada r-dummies r-kernelfactory r-randomforest))
     (home-page "https://cran.r-project.org/web/packages/aCRM/")
     (synopsis "Convenience functions for analytical customer relationship management")
     (description
@@ -21764,8 +21400,7 @@ and regression trees.")
     (properties `((upstream-name . "treeClust")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cluster" ,r-cluster)
-       ("r-rpart" ,r-rpart)))
+     (list r-cluster r-rpart))
     (home-page "https://cran.r-project.org/web/packages/treeClust/")
     (synopsis "Cluster distances through trees")
     (description
@@ -21788,8 +21423,7 @@ clustering.")
     (properties `((upstream-name . "AcrossTic")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lpsolve" ,r-lpsolve)
-       ("r-treeclust" ,r-treeclust)))
+     (list r-lpsolve r-treeclust))
     (home-page "https://cran.r-project.org/web/packages/AcrossTic/")
     (synopsis "Cost-minimal regular spanning subgraph with TreeClust")
     (description
@@ -21812,9 +21446,7 @@ distribution.")
     (properties `((upstream-name . "acrt")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)
-       ("r-sandwich" ,r-sandwich)))
+     (list r-rcpp r-rcppeigen r-sandwich))
     (home-page "https://cran.r-project.org/web/packages/acrt/")
     (synopsis "Autocorrelation robust testing")
     (description
@@ -21837,11 +21469,7 @@ errors.")
     (properties `((upstream-name . "acs")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-httr" ,r-httr)
-       ("r-plyr" ,r-plyr)
-       ("r-rcpp" ,r-rcpp)
-       ("r-stringr" ,r-stringr)
-       ("r-xml" ,r-xml)))
+     (list r-httr r-plyr r-rcpp r-stringr r-xml))
     (home-page "https://dusp.mit.edu/faculty/ezra-haber-glenn")
     (synopsis "Work with data from the US Census")
     (description
@@ -21897,8 +21525,7 @@ distribution of the halting states.")
     (properties `((upstream-name . "acss")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-acss-data" ,r-acss-data)
-       ("r-zoo" ,r-zoo)))
+     (list r-acss-data r-zoo))
     (home-page "http://complexitycalculator.com/methodology.html")
     (synopsis "Algorithmic complexity for short strings")
     (description
@@ -21926,7 +21553,7 @@ complexity are also provided: entropy and change complexity.")
     (properties `((upstream-name . "ACSWR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)))
+     (list r-mass))
     (home-page "https://cran.r-project.org/web/packages/ACSWR/")
     (synopsis "Companion package for the book \"A Course in Statistics with R\"")
     (description
@@ -21947,7 +21574,7 @@ R\" (ISBN 978-1-119-15272-9.)")
          "0mlgk929gdismikwx4k2ndqq57nnqj7mlgvd3479b214hksgq036"))))
     (properties `((upstream-name . "alabama")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-numderiv" ,r-numderiv)))
+    (propagated-inputs (list r-numderiv))
     (home-page "https://cran.r-project.org/web/packages/alabama/")
     (synopsis "Constrained nonlinear optimization")
     (description
@@ -21971,18 +21598,18 @@ allowed.")
     (properties `((upstream-name . "GDINA")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-alabama" ,r-alabama)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-mass" ,r-mass)
-       ("r-nloptr" ,r-nloptr)
-       ("r-numderiv" ,r-numderiv)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rsolnp" ,r-rsolnp)
-       ("r-shiny" ,r-shiny)
-       ("r-shinydashboard" ,r-shinydashboard)))
+     (list r-alabama
+           r-ggplot2
+           r-mass
+           r-nloptr
+           r-numderiv
+           r-rcpp
+           r-rcpparmadillo
+           r-rsolnp
+           r-shiny
+           r-shinydashboard))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/Wenchao-Ma/GDINA")
     (synopsis "Generalized DINA model framework")
     (description
@@ -22013,10 +21640,9 @@ be conducted.  A graphical user interface is also provided.")
     (properties `((upstream-name . "ACTCD")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-gdina" ,r-gdina)
-       ("r-r-methodss3" ,r-r-methodss3)))
+     (list r-gdina r-r-methodss3))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/ACTCD/")
     (synopsis "Asymptotic classification theory for cognitive diagnosis")
     (description
@@ -22064,11 +21690,7 @@ poverty measures.  It provides both empirical and theoretical Lorenz curves.")
     (properties `((upstream-name . "ActFrag")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-accelerometry" ,r-accelerometry)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ineq" ,r-ineq)
-       ("r-survival" ,r-survival)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-accelerometry r-dplyr r-ineq r-survival r-tidyr))
     (home-page "https://github.com/junruidi/ActFrag")
     (synopsis "Activity fragmentation metrics extraction")
     (description
@@ -22090,7 +21712,7 @@ actigraphy-measured activity counts data.")
          "1ay2a2agdmiz7zzvn26mli0x0iwk09g5pp4yy1r23knhkp1pn2lb"))))
     (properties `((upstream-name . "ash")))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/ash/")
     (synopsis "David Scott's ASH routines")
     (description
@@ -22112,13 +21734,13 @@ R.")
     (properties `((upstream-name . "hdrcde")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ash" ,r-ash)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-kernsmooth" ,r-kernsmooth)
-       ("r-ks" ,r-ks)
-       ("r-locfit" ,r-locfit)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)))
-    (native-inputs `(("gfortran" ,gfortran)))
+     (list r-ash
+           r-ggplot2
+           r-kernsmooth
+           r-ks
+           r-locfit
+           r-rcolorbrewer))
+    (native-inputs (list gfortran))
     (home-page "http://pkg.robjhyndman.com/hdrcde")
     (synopsis "Highest density regions and conditional density estimation")
     (description
@@ -22141,12 +21763,12 @@ conditional on one covariate, and multimodal regression.")
     (properties `((upstream-name . "rainbow")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cluster" ,r-cluster)
-       ("r-colorspace" ,r-colorspace)
-       ("r-hdrcde" ,r-hdrcde)
-       ("r-ks" ,r-ks)
-       ("r-mass" ,r-mass)
-       ("r-pcapp" ,r-pcapp)))
+     (list r-cluster
+           r-colorspace
+           r-hdrcde
+           r-ks
+           r-mass
+           r-pcapp))
     (home-page "https://cran.r-project.org/web/packages/rainbow/")
     (synopsis "Bagplots, boxplots and rainbow plots for functional data")
     (description
@@ -22168,8 +21790,7 @@ functional outliers with bagplots, boxplots and rainbow plots.")
     (properties `((upstream-name . "fds")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rainbow" ,r-rainbow)
-       ("r-rcurl" ,r-rcurl)))
+     (list r-rainbow r-rcurl))
     (home-page "https://cran.r-project.org/web/packages/fds/")
     (synopsis "Functional data sets")
     (description "This package contains a list of functional time series,
@@ -22182,19 +21803,18 @@ variable observed over time.")
 (define-public r-fda
   (package
     (name "r-fda")
-    (version "5.1.9")
+    (version "5.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fda" version))
        (sha256
         (base32
-         "0yjrjsv55bcwqn2yxjgj3hn17wfvjvgngfw9xv3w802i52yz9gf8"))))
+         "0fm2vswc8fdi2p1axby0hjwh8m6lc1zrdikrpiamilr6w9m2zanw"))))
     (properties `((upstream-name . "fda")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-fds" ,r-fds)
-       ("r-matrix" ,r-matrix)))
+     (list r-desolve r-fds r-matrix))
     (home-page "https://www.functionaldata.org")
     (synopsis "Functional data analysis")
     (description
@@ -22218,7 +21838,7 @@ examples.")
     (properties `((upstream-name . "Actigraphy")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-fda" ,r-fda)))
+     (list r-fda))
     (home-page "https://cran.r-project.org/web/packages/Actigraphy/")
     (synopsis "Actigraphy data analysis")
     (description
@@ -22240,7 +21860,7 @@ of actigraphy data.")
     (properties `((upstream-name . "ActiveDriver")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)))
+     (list r-mass))
     (home-page "https://cran.r-project.org/web/packages/ActiveDriver/")
     (synopsis "Tools for finding cancer driver proteins")
     (description
@@ -22269,11 +21889,7 @@ known drivers.")
      `((upstream-name . "activityCounts")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lubridate" ,r-lubridate)
-       ("r-magrittr" ,r-magrittr)
-       ("r-seewave" ,r-seewave)
-       ("r-signal" ,r-signal)
-       ("r-tibble" ,r-tibble)))
+     (list r-lubridate r-magrittr r-seewave r-signal r-tibble))
     (home-page "https://github.com/walkabillylab/activityCounts")
     (synopsis "Generate ActiLife counts")
     (description
@@ -22300,11 +21916,9 @@ data for different accelerometer brands.")
     (properties `((upstream-name . "ActivityIndex")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-r-utils" ,r-r-utils)))
+     (list r-data-table r-matrixstats r-r-utils))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/ActivityIndex/")
     (synopsis "Activity Index calculation using raw accelerometry data")
     (description
@@ -22327,12 +21941,12 @@ al. (2016) @url{doi:10.1371/journal.pone.0160644}.")
     (properties `((upstream-name . "activPAL")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-devtools" ,r-devtools)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-lubridate" ,r-lubridate)
-       ("r-magrittr" ,r-magrittr)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-devtools
+           r-dplyr
+           r-ggplot2
+           r-lubridate
+           r-magrittr
+           r-tidyr))
     (home-page "https://cran.r-project.org/web/packages/activPAL")
     (synopsis "Processing and chart generation from activPAL events files")
     (description
@@ -22359,7 +21973,7 @@ sets, such as sleep diaries and continuous glucose monitoring data.")
      `((upstream-name . "activpalProcessing")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-chron" ,r-chron)))
+     (list r-chron))
     (home-page "https://cran.r-project.org/web/packages/activpalProcessing/")
     (synopsis "Process activPAL events files")
     (description
@@ -22382,11 +21996,7 @@ behavior variables from activPAL events files.")
     (properties `((upstream-name . "actogrammr")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-lubridate" ,r-lubridate)
-       ("r-readr" ,r-readr)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-dplyr r-ggplot2 r-lubridate r-readr r-tidyr))
     (home-page "https://cran.r-project.org/web/packages/actogrammr/")
     (synopsis "Read in activity data and plot actograms")
     (description
@@ -22423,17 +22033,17 @@ API; see the package vignette for details.")
 (define-public r-actuar
   (package
     (name "r-actuar")
-    (version "3.1-4")
+    (version "3.2-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "actuar" version))
        (sha256
         (base32
-         "0m9b4787a866cddf1skjz6634237dvg1i5qyqss4sgvcrbmx3hw0"))))
+         "015brjjgmkwmjajdjdw8gs02jrd96if425pk9a97d499hzsq3xds"))))
     (properties `((upstream-name . "actuar")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-expint" ,r-expint)))
+    (propagated-inputs (list r-expint))
     (home-page "https://gitlab.com/vigou3/actuar")
     (synopsis "Actuarial functions and heavy tailed distributions")
     (description
@@ -22482,13 +22092,9 @@ currently limited to 8 bit greyscale images and 24, 32 bit (A)RGB images.")
     (properties `((upstream-name . "readbitmap")))
     (build-system r-build-system)
     (inputs
-     `(("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)))
+     (list libjpeg-turbo libpng))
     (propagated-inputs
-     `(("r-bmp" ,r-bmp)
-       ("r-jpeg" ,r-jpeg)
-       ("r-png" ,r-png)
-       ("r-tiff" ,r-tiff)))
+     (list r-bmp r-jpeg r-png r-tiff))
     (home-page "https://github.com/jefferis/readbitmap")
     (synopsis "Unified interface to read bitmap images (BMP, JPEG, PNG, TIFF)")
     (description
@@ -22500,34 +22106,30 @@ number embedded in the file rather than the file extension.")
 (define-public r-imager
   (package
     (name "r-imager")
-    (version "0.42.10")
+    (version "0.42.11")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "imager" version))
        (sha256
         (base32
-         "1vmfmmawbk8sgyba87igaxpwb926nb1ji8a08ad3dqfj7aq9x4q1"))))
+         "1a1jhmgrpv1d0fk14axj88qvxgb25bqnj65d60g1k985ipzvgy27"))))
     (properties `((upstream-name . "imager")))
     (build-system r-build-system)
     (inputs
-     `(("fftw" ,fftw)
-       ("libtiff" ,libtiff)
-       ("libx11" ,libx11)
-       ("zlib" ,zlib)))
-    (propagated-inputs
-     `(("r-downloader" ,r-downloader)
-       ("r-igraph" ,r-igraph)
-       ("r-jpeg" ,r-jpeg)
-       ("r-magrittr" ,r-magrittr)
-       ("r-png" ,r-png)
-       ("r-purrr" ,r-purrr)
-       ("r-rcpp" ,r-rcpp)
-       ("r-readbitmap" ,r-readbitmap)
-       ("r-stringr" ,r-stringr)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list fftw libtiff libx11 zlib))
+    (propagated-inputs
+     (list r-downloader
+           r-igraph
+           r-jpeg
+           r-magrittr
+           r-png
+           r-purrr
+           r-rcpp
+           r-readbitmap
+           r-stringr))
+    (native-inputs
+     (list pkg-config r-knitr))
     (home-page "https://dahtah.github.io/imager/")
     (synopsis "Image processing library")
     (description
@@ -22553,9 +22155,7 @@ simple, modern C++ library for image processing.")
     (properties `((upstream-name . "AcuityView")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-fftwtools" ,r-fftwtools)
-       ("r-imager" ,r-imager)
-       ("r-plotrix" ,r-plotrix)))
+     (list r-fftwtools r-imager r-plotrix))
     (home-page "https://cran.r-project.org/web/packages/AcuityView/")
     (synopsis "Display scenes as seen by an animal with less acute vision")
     (description
@@ -22566,28 +22166,29 @@ it may be seen by an animal with less acute vision.")
 (define-public r-caret
   (package
     (name "r-caret")
-    (version "6.0-88")
+    (version "6.0-90")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "caret" version))
        (sha256
         (base32
-         "174cyyhsw8s6jp80spmi40qq9sw5ys0r58v4ikp53kiw1dhd247s"))))
+         "1g36m06hp2fxxwv155bwbqlf97xhcia1lmg3axg6d74kgpns8lg8"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-foreach" ,r-foreach)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-lattice" ,r-lattice)
-       ("r-modelmetrics" ,r-modelmetrics)
-       ("r-nlme" ,r-nlme)
-       ("r-plyr" ,r-plyr)
-       ("r-proc" ,r-proc)
-       ("r-recipes" ,r-recipes)
-       ("r-reshape2" ,r-reshape2)
-       ("r-withr" ,r-withr)))
+     (list r-e1071
+           r-foreach
+           r-ggplot2
+           r-lattice
+           r-modelmetrics
+           r-nlme
+           r-plyr
+           r-proc
+           r-recipes
+           r-reshape2
+           r-withr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/topepo/caret")
     (synopsis "Classification and regression training")
     (description
@@ -22609,10 +22210,7 @@ classification and regression models.")
     (properties `((upstream-name . "adabag")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-caret" ,r-caret)
-       ("r-doparallel" ,r-doparallel)
-       ("r-foreach" ,r-foreach)
-       ("r-rpart" ,r-rpart)))
+     (list r-caret r-doparallel r-foreach r-rpart))
     (home-page "https://cran.r-project.org/web/packages/adabag/")
     (synopsis "Multiclass AdaBoost.M1, SAMME and Bagging")
     (description
@@ -22637,7 +22235,7 @@ done.")
     (properties `((upstream-name . "adagio")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lpsolve" ,r-lpsolve)))
+     (list r-lpsolve))
     (home-page "https://cran.r-project.org/web/packages/adagio/")
     (synopsis "Discrete and global optimization routines")
     (description
@@ -22661,8 +22259,7 @@ functions.")
     (properties `((upstream-name . "univOutl")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-hmisc" ,r-hmisc)
-       ("r-robustbase" ,r-robustbase)))
+     (list r-hmisc r-robustbase))
     (home-page "https://github.com/marcellodo/univOutl")
     (synopsis "Detection of univariate outliers")
     (description
@@ -22687,8 +22284,7 @@ used in outliers detection.")
     (properties `((upstream-name . "tolerance")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-rgl" ,r-rgl)))
+     (list r-mass r-rgl))
     (home-page "https://cran.r-project.org/web/packages/tolerance/")
     (synopsis "Statistical tolerance intervals and regions")
     (description
@@ -22739,9 +22335,7 @@ Johnson-Graybill, LBI, Tusell and modified Tukey non-additivity tests.")
     (properties `((upstream-name . "flexclust")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-class" ,r-class)
-       ("r-lattice" ,r-lattice)
-       ("r-modeltools" ,r-modeltools)))
+     (list r-class r-lattice r-modeltools))
     (home-page "https://cran.r-project.org/web/packages/flexclust/")
     (synopsis "Flexible cluster algorithms")
     (description
@@ -22768,13 +22362,13 @@ cluster stability.")
     (properties `((upstream-name . "biclust")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-additivitytests" ,r-additivitytests)
-       ("r-colorspace" ,r-colorspace)
-       ("r-flexclust" ,r-flexclust)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-lattice" ,r-lattice)
-       ("r-mass" ,r-mass)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-additivitytests
+           r-colorspace
+           r-flexclust
+           r-ggplot2
+           r-lattice
+           r-mass
+           r-tidyr))
     (home-page "https://cran.r-project.org/web/packages/biclust/")
     (synopsis "BiCluster algorithms")
     (description
@@ -22799,9 +22393,7 @@ validation of bicluster solutions.")
     (properties `((upstream-name . "ICGE")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cluster" ,r-cluster)
-       ("r-fastcluster" ,r-fastcluster)
-       ("r-mass" ,r-mass)))
+     (list r-cluster r-fastcluster r-mass))
     (home-page "https://cran.r-project.org/web/packages/ICGE/")
     (synopsis "Cluster estimation and identification of atypical units")
     (description
@@ -22824,11 +22416,9 @@ on distances rather than on unit x variables.")
     (properties `((upstream-name . "depth")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-circular" ,r-circular)
-       ("r-rgl" ,r-rgl)))
+     (list r-abind r-circular r-rgl))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/depth/")
     (synopsis "Nonparametric depth functions for multivariate analysis")
     (description
@@ -22853,8 +22443,7 @@ spherical depths are supported.")
     (properties `((upstream-name . "archetypes")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-modeltools" ,r-modeltools)
-       ("r-nnls" ,r-nnls)))
+     (list r-modeltools r-nnls))
     (home-page "https://cran.r-project.org/web/packages/archetypes")
     (synopsis "Archetypal analysis")
     (description
@@ -22877,10 +22466,7 @@ different conceptual parts of the algorithm.")
     (properties `((upstream-name . "shapes")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-minpack-lm" ,r-minpack-lm)
-       ("r-rgl" ,r-rgl)
-       ("r-scatterplot3d" ,r-scatterplot3d)))
+     (list r-mass r-minpack-lm r-rgl r-scatterplot3d))
     (home-page "http://www.maths.nottingham.ac.uk/~ild/shapes")
     (synopsis "Statistical shape analysis")
     (description
@@ -22895,28 +22481,28 @@ Edition), John Wiley and Sons.")
 (define-public r-anthropometry
   (package
     (name "r-anthropometry")
-    (version "1.15")
+    (version "1.16")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Anthropometry" version))
        (sha256
         (base32
-         "03xw0ggb2qqlldrv0qpjwmncnari742habb46im7y65bhgnr2awx"))))
+         "0iqlmp9vig4qdavs37kislqxwhk0c0pgsn1kwz3mm75nylxmpbp0"))))
     (properties `((upstream-name . "Anthropometry")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-archetypes" ,r-archetypes)
-       ("r-biclust" ,r-biclust)
-       ("r-cluster" ,r-cluster)
-       ("r-depth" ,r-depth)
-       ("r-fnn" ,r-fnn)
-       ("r-icge" ,r-icge)
-       ("r-nnls" ,r-nnls)
-       ("r-rgl" ,r-rgl)
-       ("r-shapes" ,r-shapes)))
+     (list r-archetypes
+           r-biclust
+           r-cluster
+           r-depth
+           r-fnn
+           r-icge
+           r-nnls
+           r-rgl
+           r-shapes))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/Anthropometry/")
     (synopsis "Statistical methods for anthropometric data")
     (description
@@ -22941,13 +22527,13 @@ statistical shape analysis and archetypal analysis.")
     (properties `((upstream-name . "adamethods")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-anthropometry" ,r-anthropometry)
-       ("r-archetypes" ,r-archetypes)
-       ("r-fnn" ,r-fnn)
-       ("r-foreach" ,r-foreach)
-       ("r-nnls" ,r-nnls)
-       ("r-tolerance" ,r-tolerance)
-       ("r-univoutl" ,r-univoutl)))
+     (list r-anthropometry
+           r-archetypes
+           r-fnn
+           r-foreach
+           r-nnls
+           r-tolerance
+           r-univoutl))
     (home-page "https://cran.r-project.org/web/packages/adamethods/")
     (synopsis "Archetypoid algorithms and anomaly detection")
     (description
@@ -22971,7 +22557,7 @@ these algorithms also detect anomalies (outliers).")
     (properties `((upstream-name . "IDPmisc")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)))
+     (list r-lattice))
     (home-page "https://cran.r-project.org/web/packages/IDPmisc/")
     (synopsis "Functions for data analyses and visualization")
     (description
@@ -23000,9 +22586,9 @@ finding peaks in spectra, converting humidity measures.")
     (properties `((upstream-name . "qqman")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-calibrate" ,r-calibrate)))
+     (list r-calibrate))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/qqman/")
     (synopsis "Q-Q and Manhattan plots for GWAS data")
     (description
@@ -23025,10 +22611,7 @@ from PLINK results.")
      `((upstream-name . "ggplot.multistats")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-hexbin" ,r-hexbin)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)))
+     (list r-ggplot2 r-hexbin r-rlang r-scales))
     (home-page "https://github.com/flying-sheep/ggplot.multistats")
     (synopsis "Multiple summary statistics for binned stats/geometries")
     (description
@@ -23052,9 +22635,7 @@ aesthetics.")
     (properties `((upstream-name . "knn.covertree")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)))
+     (list r-matrix r-rcpp r-rcppeigen))
     (home-page "https://github.com/flying-sheep/knn.covertree")
     (synopsis "Accurate kNN Implementation with multiple distance measures")
     (description
@@ -23101,7 +22682,7 @@ generation for the Poisson binomial distribution.")
     (properties `((upstream-name . "diagram")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-shape" ,r-shape)))
+     (list r-shape))
     (home-page "https://cran.r-project.org/web/packages/diagram/")
     (synopsis "Visualize simple graphs (networks) and plot flow diagrams")
     (description
@@ -23128,8 +22709,7 @@ Francesca Mazzia (2012).")
     (properties `((upstream-name . "LIM")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-diagram" ,r-diagram)
-       ("r-limsolve" ,r-limsolve)))
+     (list r-diagram r-limsolve))
     (home-page "https://cran.r-project.org/web/packages/LIM/")
     (synopsis "Linear inverse model examples and solution methods")
     (description
@@ -23152,9 +22732,7 @@ problems (food web problems, linear programming problems).")
      `((upstream-name . "shinycssloaders")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-digest" ,r-digest)
-       ("r-glue" ,r-glue)
-       ("r-shiny" ,r-shiny)))
+     (list r-digest r-glue r-shiny))
     (home-page "https://github.com/andrewsali/shinycssloaders")
     (synopsis "Add CSS loading animations to Shiny outputs")
     (description
@@ -23178,11 +22756,9 @@ automatically show a loader when the output is (re)calculating.")
     (properties `((upstream-name . "rsvg")))
     (build-system r-build-system)
     (inputs
-     `(("librsvg" ,librsvg)
-       ("zlib" ,zlib)))
+     (list librsvg zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://github.com/jeroen/rsvg#readme")
     (synopsis "Render SVG images into PDF, PNG, PostScript, or Bitmap arrays")
     (description
@@ -23196,19 +22772,18 @@ PDF or PostScript.")
 (define-public r-influencer
   (package
     (name "r-influencer")
-    (version "0.1.0")
+    (version "0.1.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "influenceR" version))
        (sha256
         (base32
-         "12p9362hkndlnz1rd8j2rykg57kbm6l7ks60by3rd25xg50k5jag"))))
+         "0rj7rm236vn3v8302nwl12s0kvpv6xpdbm3q3gxk7vgwfl8nzi33"))))
     (properties `((upstream-name . "influenceR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-igraph" ,r-igraph)
-       ("r-matrix" ,r-matrix)))
+     (list r-igraph r-matrix))
     (home-page "https://github.com/rcc-uchicago/influenceR")
     (synopsis "Tools to quantify structural importance of nodes in a network")
     (description
@@ -23235,7 +22810,7 @@ OpenMP.")
     (properties `((upstream-name . "emplik")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-quantreg" ,r-quantreg)))
+     (list r-quantreg))
     (home-page "https://www.ms.uky.edu/~mai/EmpLik.html")
     (synopsis "Empirical likelihood ratio for censored/truncated data")
     (description
@@ -23258,11 +22833,7 @@ does regression.")
     (properties `((upstream-name . "imputeYn")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-boot" ,r-boot)
-       ("r-emplik" ,r-emplik)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-quadprog" ,r-quadprog)
-       ("r-survival" ,r-survival)))
+     (list r-boot r-emplik r-mvtnorm r-quadprog r-survival))
     (home-page "https://cran.r-project.org/web/packages/imputeYn/")
     (synopsis "Impute last largest censored observation under weighted least squares")
     (description
@@ -23285,10 +22856,7 @@ AFT models.")
     (properties `((upstream-name . "AdapEnetClass")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-glmnet" ,r-glmnet)
-       ("r-imputeyn" ,r-imputeyn)
-       ("r-lars" ,r-lars)
-       ("r-quadprog" ,r-quadprog)))
+     (list r-glmnet r-imputeyn r-lars r-quadprog))
     (home-page "https://cran.r-project.org/web/packages/AdapEnetClass/")
     (synopsis "Class of adaptive elastic net methods for censored data")
     (description
@@ -23308,7 +22876,7 @@ AFT models.")
          "1zg93p74icj4bhxnmnssj2xp6vw4yaksyavq03497v33xfpdxss7"))))
     (properties `((upstream-name . "flock")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (propagated-inputs (list r-rcpp))
     (home-page "https://cran.r-project.org/web/packages/flock/")
     (synopsis "Process synchronization using file locks")
     (description
@@ -23331,16 +22899,16 @@ both exclusive and shared locking.")
     (properties `((upstream-name . "archivist")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dbi" ,r-dbi)
-       ("r-digest" ,r-digest)
-       ("r-flock" ,r-flock)
-       ("r-httr" ,r-httr)
-       ("r-lubridate" ,r-lubridate)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rcurl" ,r-rcurl)
-       ("r-rsqlite" ,r-rsqlite)))
+     (list r-dbi
+           r-digest
+           r-flock
+           r-httr
+           r-lubridate
+           r-magrittr
+           r-rcurl
+           r-rsqlite))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://pbiecek.github.io/archivist/")
     (synopsis "Tools for storing, restoring and searching for R objects")
     (description
@@ -23390,21 +22958,21 @@ versions of currently installed packages.")
     (properties `((upstream-name . "adapr")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-archivist" ,r-archivist)
-       ("r-devtools" ,r-devtools)
-       ("r-digest" ,r-digest)
-       ("r-doparallel" ,r-doparallel)
-       ("r-gdata" ,r-gdata)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-git2r" ,r-git2r)
-       ("r-igraph" ,r-igraph)
-       ("r-knitr" ,r-knitr)
-       ("r-plotly" ,r-plotly)
-       ("r-plyr" ,r-plyr)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-shiny" ,r-shiny)
-       ("r-shinydashboard" ,r-shinydashboard)
-       ("r-versions" ,r-versions)))
+     (list r-archivist
+           r-devtools
+           r-digest
+           r-doparallel
+           r-gdata
+           r-ggplot2
+           r-git2r
+           r-igraph
+           r-knitr
+           r-plotly
+           r-plyr
+           r-rmarkdown
+           r-shiny
+           r-shinydashboard
+           r-versions))
     (home-page "https://cran.r-project.org/web/packages/adapr/")
     (synopsis "Implementation of an accountable data analysis process")
     (description
@@ -23427,7 +22995,7 @@ histories of inputs and outputs.")
          "1jayjrsiib2ij4rxxj59g71r3xhzl5yqh0lhi8k6cfy03i7dkvis"))))
     (properties `((upstream-name . "AdapSamp")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-pracma" ,r-pracma)))
+    (propagated-inputs (list r-pracma))
     (home-page "https://cran.r-project.org/web/packages/AdapSamp/")
     (synopsis "Adaptive sampling algorithms")
     (description
@@ -23455,9 +23023,7 @@ above.")
     (properties `((upstream-name . "adaptalint")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-lintr" ,r-lintr)
-       ("r-purrr" ,r-purrr)))
+     (list r-dplyr r-lintr r-purrr))
     (home-page "https://cran.r-project.org/web/packages/adaptalint/")
     (synopsis "Check R code style")
     (description
@@ -23503,20 +23069,20 @@ Raftery, Appl.Statistics, 1989); it includes inference and basic methods.")
     (properties `((upstream-name . "forecast")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-colorspace" ,r-colorspace)
-       ("r-fracdiff" ,r-fracdiff)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-lmtest" ,r-lmtest)
-       ("r-magrittr" ,r-magrittr)
-       ("r-nnet" ,r-nnet)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-timedate" ,r-timedate)
-       ("r-tseries" ,r-tseries)
-       ("r-urca" ,r-urca)
-       ("r-zoo" ,r-zoo)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))           ; needed for vignettes
+     (list r-colorspace
+           r-fracdiff
+           r-ggplot2
+           r-lmtest
+           r-magrittr
+           r-nnet
+           r-rcpp
+           r-rcpparmadillo
+           r-timedate
+           r-tseries
+           r-urca
+           r-zoo))
+    (native-inputs
+     (list r-knitr))           ; needed for vignettes
     (home-page "https://pkg.robjhyndman.com/forecast/")
     (synopsis "Forecasting functions for time series and linear models")
     (description
@@ -23525,6 +23091,32 @@ univariate time series forecasts including exponential smoothing via state
 space models and automatic ARIMA modelling.")
     (license license:gpl3)))
 
+(define-public r-formattable
+  (package
+    (name "r-formattable")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "formattable" version))
+       (sha256
+        (base32 "1vdxi0xmg019qyzjrp8bkjxciz245jcxsrkhfzd44ynqcwi4s3ag"))))
+    (properties `((upstream-name . "formattable")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-htmltools r-htmlwidgets r-lifecycle r-rmarkdown))
+    (native-inputs
+     (list r-knitr))
+    (home-page "https://github.com/renkun-ken/formattable")
+    (synopsis "Print vectors and data frames with text fromatting")
+    (description
+     "This R package provides functions to create formattable vectors and data
+frames.  @emph{Formattable} vectors are printed with text formatting, and
+formattable data frames are printed with multiple types of formatting in HTML
+to improve the readability of data presented in tabular form rendered in web
+pages.")
+    (license license:expat)))
+
 (define-public r-xmisc
   (package
     (name "r-xmisc")
@@ -23550,21 +23142,18 @@ programming} (OOP) using R Reference Class.")
 (define-public r-proxyc
   (package
     (name "r-proxyc")
-    (version "0.2.0")
+    (version "0.2.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "proxyC" version))
        (sha256
         (base32
-         "08h79wzk8hp5yn3sxy1jcd1yljj25s7fac96l2jqavwd026y6j3l"))))
+         "1g90d82rp82dkidlfykankprzpp94d7394s2b2qjlyiia3k0hlb3"))))
     (properties `((upstream-name . "proxyC")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rcppparallel" ,r-rcppparallel)))
+     (list r-matrix r-rcpp r-rcpparmadillo r-rcppparallel))
     (home-page "https://cran.r-project.org/package=proxyC")
     (synopsis "Compute proximity in large sparse matrices")
     (description
@@ -23600,18 +23189,18 @@ character codes as well as the UN M.49 area codes.")
 (define-public r-stopwords
   (package
     (name "r-stopwords")
-    (version "2.2")
+    (version "2.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "stopwords" version))
        (sha256
         (base32
-         "1f862y30c4r0phamlp7shzkpxg0vh3i410xy0336w310hv3wqsxn"))))
+         "1ci1cgxrcvlhhplximsfv0plvjdbcd5kv0nphxnpildsn5m1rv65"))))
     (properties `((upstream-name . "stopwords")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-isocodes" ,r-isocodes)))
+     (list r-isocodes))
     (home-page "https://github.com/quanteda/stopwords")
     (synopsis "Multilingual stopword lists")
     (description
@@ -23633,8 +23222,7 @@ analysis and natural language processing.")
     (properties `((upstream-name . "spacyr")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-reticulate" ,r-reticulate)))
+     (list r-data-table r-reticulate))
     (home-page "https://spacyr.quanteda.io")
     (synopsis "R wrapper for the spaCy NLP library")
     (description
@@ -23679,19 +23267,19 @@ Norwegian, Portuguese, Romanian, Russian, Spanish, Swedish and Turkish.")
     (properties `((upstream-name . "quanteda")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-fastmatch" ,r-fastmatch)
-       ("r-magrittr" ,r-magrittr)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rcppparallel" ,r-rcppparallel)
-       ("r-snowballc" ,r-snowballc)
-       ("r-stopwords" ,r-stopwords)
-       ("r-stringi" ,r-stringi)
-       ("r-xml2" ,r-xml2)
-       ("r-yaml" ,r-yaml)))
+     (list r-fastmatch
+           r-magrittr
+           r-matrix
+           r-rcpp
+           r-rcpparmadillo
+           r-rcppparallel
+           r-snowballc
+           r-stopwords
+           r-stringi
+           r-xml2
+           r-yaml))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://quanteda.io")
     (synopsis "Quantitative analysis of textual data")
     (description
@@ -23718,11 +23306,9 @@ machine learning, visually representing text and text analyses, and more.")
     (properties `((upstream-name . "topicmodels")))
     (build-system r-build-system)
     (inputs
-     `(("gsl" ,gsl)))
+     (list gsl))
     (propagated-inputs
-     `(("r-modeltools" ,r-modeltools)
-       ("r-slam" ,r-slam)
-       ("r-tm" ,r-tm)))
+     (list r-modeltools r-slam r-tm))
     (home-page "https://cran.r-project.org/package=topicmodels")
     (synopsis "Topic models")
     (description
@@ -23746,17 +23332,17 @@ Gibbs sampling by Xuan-Hieu Phan and co-authors.")
     (properties `((upstream-name . "stm")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-glmnet" ,r-glmnet)
-       ("r-lda" ,r-lda)
-       ("r-matrix" ,r-matrix)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-quadprog" ,r-quadprog)
-       ("r-quanteda" ,r-quanteda)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-slam" ,r-slam)
-       ("r-stringr" ,r-stringr)))
+     (list r-data-table
+           r-glmnet
+           r-lda
+           r-matrix
+           r-matrixstats
+           r-quadprog
+           r-quanteda
+           r-rcpp
+           r-rcpparmadillo
+           r-slam
+           r-stringr))
     (home-page "http://www.structuraltopicmodel.com/")
     (synopsis "Estimation of the Structural Topic Model")
     (description
@@ -23780,8 +23366,7 @@ regressions.")
     (properties `((upstream-name . "polycor")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)
-       ("r-mvtnorm" ,r-mvtnorm)))
+     (list r-matrix r-mvtnorm))
     (home-page "https://r-forge.r-project.org/projects/polycor/")
     (synopsis "Polychoric and polyserial correlations")
     (description
@@ -23793,20 +23378,18 @@ errors; tetrachoric and biserial correlations are special cases.")
 (define-public r-msm
   (package
     (name "r-msm")
-    (version "1.6.8")
+    (version "1.6.9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "msm" version))
        (sha256
         (base32
-         "1d32y8f0vb2dfv3999liigpns788j145nrvd1xpxb9i2lsg8mwgk"))))
+         "08vhazswyxr3y1zb9y60mbg3bappzlizxml8s08p65mh82xxkz5f"))))
     (properties `((upstream-name . "msm")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-expm" ,r-expm)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-survival" ,r-survival)))
+     (list r-expm r-mvtnorm r-survival))
     (home-page "https://github.com/chjackson/msm")
     (synopsis "Multi-state Markov and hidden Markov models in continuous time")
     (description
@@ -23832,9 +23415,7 @@ be constant or piecewise-constant in time.")
     (properties `((upstream-name . "ltm")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-msm" ,r-msm)
-       ("r-polycor" ,r-polycor)))
+     (list r-mass r-msm r-polycor))
     (home-page "https://github.com/drizopoulos/ltm")
     (synopsis "Latent trait models under IRT")
     (description
@@ -23859,8 +23440,7 @@ Models.")
     (properties `((upstream-name . "mi")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-arm" ,r-arm)
-       ("r-matrix" ,r-matrix)))
+     (list r-arm r-matrix))
     (home-page "http://www.stat.columbia.edu/~gelman/")
     (synopsis "Missing data imputation and model checking")
     (description
@@ -23896,21 +23476,18 @@ actuarial models such as pension mathematics.")
 (define-public r-sem
   (package
     (name "r-sem")
-    (version "3.1-11")
+    (version "3.1-13")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sem" version))
        (sha256
         (base32
-         "03j3ig6fy34pi6nwfq9w8f5m555lilw5skr1vn6ay4yvjmvavc9k"))))
+         "0r9g4j0w6q4qy9jl9gkjkihml4109ymg3y6zmhyg806q19qryx07"))))
     (properties `((upstream-name . "sem")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-boot" ,r-boot)
-       ("r-mass" ,r-mass)
-       ("r-matrixcalc" ,r-matrixcalc)
-       ("r-mi" ,r-mi)))
+     (list r-boot r-mass r-mi))
     (home-page "https://cran.r-project.org/package=sem")
     (synopsis "Structural equation models")
     (description
@@ -23934,8 +23511,7 @@ least squares.")
     (properties `((upstream-name . "semTools")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lavaan" ,r-lavaan)
-       ("r-pbivnorm" ,r-pbivnorm)))
+     (list r-lavaan r-pbivnorm))
     (home-page "https://github.com/simsem/semTools/wiki")
     (synopsis "Useful tools for structural equation modeling")
     (description
@@ -23956,12 +23532,9 @@ least squares.")
     (properties `((upstream-name . "regsem")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lavaan" ,r-lavaan)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rsolnp" ,r-rsolnp)))
+     (list r-lavaan r-rcpp r-rcpparmadillo r-rsolnp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/package=regsem")
     (synopsis "Regularized structural equation modeling")
     (description
@@ -23985,13 +23558,11 @@ perform @dfn{exploratory mediation} (XMed).")
          "0srkyawyiykn3p5lw1z3zf18s4ax4iasv1ci3l1px40f9w36wm17"))))
     (properties `((upstream-name . "StanHeaders")))
     (build-system r-build-system)
-    (inputs `(("pandoc" ,pandoc)))
+    (inputs (list pandoc))
     (propagated-inputs
-     `(("r-rcppeigen" ,r-rcppeigen)
-       ("r-rcppparallel" ,r-rcppparallel)))
+     (list r-rcppeigen r-rcppparallel))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("r-knitr" ,r-knitr))) ; for vignettes
+     (list gfortran r-knitr)) ; for vignettes
     (home-page "https://mc-stan.org/")
     (synopsis "C++ header files for Stan")
     (description
@@ -24016,23 +23587,20 @@ and analyze Stan models.")
 (define-public r-rpf
   (package
     (name "r-rpf")
-    (version "1.0.8")
+    (version "1.0.11")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rpf" version))
        (sha256
         (base32
-         "039r6yz2ax7i9sv8vi98yg7llwb966ay6mrifpmp6q3xh1f634kl"))))
+         "1yr1i7kswq57mcxv05lh7bvbicz1djqxcl6f13dlgsf3ww56gzg1"))))
     (properties `((upstream-name . "rpf")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lifecycle" ,r-lifecycle)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)))
+     (list r-lifecycle r-mvtnorm r-rcpp r-rcppeigen))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/jpritikin/rpf")
     (synopsis "Response probability functions")
     (description
@@ -24046,28 +23614,28 @@ Complete access to optimized C functions is made available with
 (define-public r-openmx
   (package
     (name "r-openmx")
-    (version "2.19.6")
+    (version "2.19.8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "OpenMx" version))
        (sha256
         (base32
-         "0iv8fidmj074qbzvf0f6vj0h4i37x1d40ci9hkgyqvbnglwcnccy"))))
+         "0q37mwxqhgdi05rwdfwfapgazfp541xsvw3yskf21lv11y2yjjyb"))))
     (properties `((upstream-name . "OpenMx")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-digest" ,r-digest)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)
-       ("r-rcppparallel" ,r-rcppparallel)
-       ("r-rpf" ,r-rpf)
-       ("r-stanheaders" ,r-stanheaders)))
-    (native-inputs `(("gfortran" ,gfortran)))
+     (list r-bh
+           r-digest
+           r-lifecycle
+           r-mass
+           r-matrix
+           r-rcpp
+           r-rcppeigen
+           r-rcppparallel
+           r-rpf
+           r-stanheaders))
+    (native-inputs (list gfortran))
     (home-page "http://openmx.ssri.psu.edu")
     (synopsis "Extended structural equation modelling")
     (description
@@ -24091,11 +23659,7 @@ estimate parameters given observed data.")
     (properties `((upstream-name . "kutils")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-foreign" ,r-foreign)
-       ("r-openxlsx" ,r-openxlsx)
-       ("r-plyr" ,r-plyr)
-       ("r-runit" ,r-runit)
-       ("r-xtable" ,r-xtable)))
+     (list r-foreign r-openxlsx r-plyr r-runit r-xtable))
     (home-page "https://cran.r-project.org/package=kutils")
     (synopsis "Project management tools")
     (description
@@ -24121,10 +23685,7 @@ importation and recoding.")
     (properties `((upstream-name . "rockchalk")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cardata" ,r-cardata)
-       ("r-kutils" ,r-kutils)
-       ("r-lme4" ,r-lme4)
-       ("r-mass" ,r-mass)))
+     (list r-cardata r-kutils r-lme4 r-mass))
     (home-page "https://cran.r-project.org/package=rockchalk")
     (synopsis "Regression estimation and presentation")
     (description
@@ -24171,7 +23732,7 @@ output in R.")
     (properties `((upstream-name . "BDgraph")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-igraph" ,r-igraph)))
+     (list r-igraph))
     (home-page "https://www.uva.nl/profile/a.mohammadi")
     (synopsis "Bayesian structure learning in graphical models")
     (description
@@ -24195,9 +23756,7 @@ on a continuous-time birth-death process.")
     (properties `((upstream-name . "d3Network")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-plyr" ,r-plyr)
-       ("r-rjson" ,r-rjson)
-       ("r-whisker" ,r-whisker)))
+     (list r-plyr r-rjson r-whisker))
     (home-page "http://christophergandrud.github.io/d3Network/")
     (synopsis "Create D3 JavaScript network, tree, dendrogram, and Sankey graphs")
     (description
@@ -24208,36 +23767,35 @@ network, tree, dendrogram, and Sankey graphs from R using data frames.")
 (define-public r-qgraph
   (package
     (name "r-qgraph")
-    (version "1.6.9")
+    (version "1.9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "qgraph" version))
        (sha256
         (base32
-         "153bqfmsrghkg7598nfr57r3cxv6dn6ir084njl2sqq5np0sj9di"))))
+         "1ahhzp64jdgki5p2wga5mn8a2n1x2zldgpilrpf7hy5l9nf4imz1"))))
     (properties `((upstream-name . "qgraph")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-colorspace" ,r-colorspace)
-       ("r-corpcor" ,r-corpcor)
-       ("r-dplyr" ,r-dplyr)
-       ("r-fdrtool" ,r-fdrtool)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-glasso" ,r-glasso)
-       ("r-gtools" ,r-gtools)
-       ("r-hmisc" ,r-hmisc)
-       ("r-igraph" ,r-igraph)
-       ("r-jpeg" ,r-jpeg)
-       ("r-lavaan" ,r-lavaan)
-       ("r-matrix" ,r-matrix)
-       ("r-pbapply" ,r-pbapply)
-       ("r-plyr" ,r-plyr)
-       ("r-png" ,r-png)
-       ("r-psych" ,r-psych)
-       ("r-rcpp" ,r-rcpp)
-       ("r-reshape2" ,r-reshape2)))
+     (list r-abind
+           r-colorspace
+           r-corpcor
+           r-fdrtool
+           r-ggplot2
+           r-glasso
+           r-gtools
+           r-hmisc
+           r-igraph
+           r-jpeg
+           r-lavaan
+           r-matrix
+           r-pbapply
+           r-plyr
+           r-png
+           r-psych
+           r-rcpp
+           r-reshape2))
     (home-page "http://sachaepskamp.com/qgraph/")
     (synopsis "Weighted network visualization and analysis")
     (description
@@ -24262,18 +23820,18 @@ model estimation.  See Epskamp et al. (2012)
     (properties `((upstream-name . "semPlot")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-colorspace" ,r-colorspace)
-       ("r-corpcor" ,r-corpcor)
-       ("r-igraph" ,r-igraph)
-       ("r-lavaan" ,r-lavaan)
-       ("r-lisreltor" ,r-lisreltor)
-       ("r-openmx" ,r-openmx)
-       ("r-plyr" ,r-plyr)
-       ("r-qgraph" ,r-qgraph)
-       ("r-regsem" ,r-regsem)
-       ("r-rockchalk" ,r-rockchalk)
-       ("r-sem" ,r-sem)
-       ("r-xml" ,r-xml)))
+     (list r-colorspace
+           r-corpcor
+           r-igraph
+           r-lavaan
+           r-lisreltor
+           r-openmx
+           r-plyr
+           r-qgraph
+           r-regsem
+           r-rockchalk
+           r-sem
+           r-xml))
     (home-page "https://github.com/SachaEpskamp/semPlot")
     (synopsis "Unified visualizations of structural equation models")
     (description
@@ -24301,10 +23859,7 @@ translated to input syntax for the R packages @code{sem} and @code{lavaan}.")
     (properties `((upstream-name . "CDM")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mvtnorm" ,r-mvtnorm)
-       ("r-polycor" ,r-polycor)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)))
+     (list r-mvtnorm r-polycor r-rcpp r-rcpparmadillo))
     (home-page
      "https://github.com/alexanderrobitzsch/CDM")
     (synopsis "Cognitive diagnosis modeling")
@@ -24335,9 +23890,7 @@ well as Ravand and Robitzsch (2015).")
     (properties `((upstream-name . "TAM")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cdm" ,r-cdm)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)))
+     (list r-cdm r-rcpp r-rcpparmadillo))
     (home-page "http://www.edmeasurementsurveys.com/TAM/Tutorials/")
     (synopsis "Test analysis modules")
     (description
@@ -24364,12 +23917,8 @@ Latent regression models and plausible value imputation are also supported.")
     (properties `((upstream-name . "eRm")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-colorspace" ,r-colorspace)
-       ("r-lattice" ,r-lattice)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-psych" ,r-psych)))
-    (native-inputs `(("gfortran" ,gfortran)))
+     (list r-colorspace r-lattice r-mass r-matrix r-psych))
+    (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/package=eRm")
     (synopsis "Extended Rasch modeling")
     (description
@@ -24398,8 +23947,7 @@ elimination, and a simulation module for various binary data matrices.")
     (properties `((upstream-name . "irtoys")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ltm" ,r-ltm)
-       ("r-sm" ,r-sm)))
+     (list r-ltm r-sm))
     (home-page "https://cran.r-project.org/package=irtoys")
     (synopsis "Collection of functions related to Item Response Theory (IRT)")
     (description
@@ -24428,16 +23976,16 @@ Haberman's interaction model when all items are dichotomously scored.")
     (properties `((upstream-name . "iheatmapr")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-fastcluster" ,r-fastcluster)
-       ("r-ggdendro" ,r-ggdendro)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-knitr" ,r-knitr)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-scales" ,r-scales)))
+     (list r-fastcluster
+           r-ggdendro
+           r-htmlwidgets
+           r-jsonlite
+           r-knitr
+           r-magrittr
+           r-rcolorbrewer
+           r-scales))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://docs.ropensci.org/iheatmapr")
     (synopsis "Interactive, Complex Heatmaps")
     (description
@@ -24476,24 +24024,24 @@ and reproducible way.")
 (define-public r-rsconnect
   (package
     (name "r-rsconnect")
-    (version "0.8.24")
+    (version "0.8.25")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rsconnect" version))
        (sha256
         (base32
-         "19p4w9dmhsl1vdvwv3hfmd5qzf4296g0x878idfajvrx0wgfysyg"))))
+         "1kyr4v7vds2yw3xmkk2yr56ylz1h95944brylwvwmwj5yxvm419w"))))
     (properties `((upstream-name . "rsconnect")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-curl" ,r-curl)
-       ("r-digest" ,r-digest)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-openssl" ,r-openssl)
-       ("r-packrat" ,r-packrat)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-yaml" ,r-yaml)))
+     (list r-curl
+           r-digest
+           r-jsonlite
+           r-openssl
+           r-packrat
+           r-rstudioapi
+           r-yaml))
     (home-page "https://github.com/rstudio/rsconnect")
     (synopsis "Deployment interface for R Markdown documents and Shiny applications")
     (description
@@ -24540,14 +24088,14 @@ documents, Shiny applications, Plumber APIs, plots, and static web content.")
                    (for-each (lambda (source target)
                                (format #t "Processing ~a --> ~a~%"
                                        source target)
-                               (let ((minified (open-pipe* OPEN_READ "uglify-js" source)))
+                               (let ((minified (open-pipe* OPEN_READ "uglifyjs" source)))
                                  (call-with-output-file target
                                    (lambda (port)
                                      (dump-port minified port)))))
                              sources targets))))
              #t)))))
     (native-inputs
-     `(("uglify-js" ,uglify-js)
+     `(("uglifyjs" ,node-uglify-js)
        ;; They actually use version 1.11.1, but this more recent version
        ;; should be just fine.
        ("js-jquery"
@@ -24566,11 +24114,7 @@ documents, Shiny applications, Plumber APIs, plots, and static web content.")
             (base32
              "01mdnsaibm9jy2f1qpbn692hpv309lhj5si9nagib4dawmrkffij"))))))
     (propagated-inputs
-     `(("r-htmltools" ,r-htmltools)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-magrittr" ,r-magrittr)
-       ("r-xts" ,r-xts)
-       ("r-zoo" ,r-zoo)))
+     (list r-htmltools r-htmlwidgets r-magrittr r-xts r-zoo))
     (home-page "https://github.com/rstudio/dygraphs")
     (synopsis "Interface to Dygraphs interactive time series charting library")
     (description
@@ -24595,23 +24139,23 @@ series/point highlighting.")
     (properties `((upstream-name . "shinystan")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bayesplot" ,r-bayesplot)
-       ("r-colourpicker" ,r-colourpicker)
-       ("r-dt" ,r-dt)
-       ("r-dygraphs" ,r-dygraphs)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-gtools" ,r-gtools)
-       ("r-markdown" ,r-markdown)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rsconnect" ,r-rsconnect)
-       ("r-rstan" ,r-rstan)
-       ("r-shiny" ,r-shiny)
-       ("r-shinyjs" ,r-shinyjs)
-       ("r-shinythemes" ,r-shinythemes)
-       ("r-threejs" ,r-threejs)
-       ("r-xtable" ,r-xtable)
-       ("r-xts" ,r-xts)))
+     (list r-bayesplot
+           r-colourpicker
+           r-dt
+           r-dygraphs
+           r-ggplot2
+           r-gridextra
+           r-gtools
+           r-markdown
+           r-reshape2
+           r-rsconnect
+           r-rstan
+           r-shiny
+           r-shinyjs
+           r-shinythemes
+           r-threejs
+           r-xtable
+           r-xts))
     (home-page "https://mc-stan.org/")
     (synopsis "Interactive visual and numerical analysis for Bayesian models")
     (description
@@ -24636,13 +24180,11 @@ using the @code{rstan} and @code{rstanarm} packages).")
          "0b9x8rzj3dr4m7yjx476nn42z22xd1xnw85m9frfwxy5ivg1any9"))))
     (properties `((upstream-name . "rstantools")))
     (build-system r-build-system)
-    (inputs `(("pandoc" ,pandoc)))
+    (inputs (list pandoc))
     (propagated-inputs
-     `(("r-desc" ,r-desc)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppparallel" ,r-rcppparallel)))
+     (list r-desc r-rcpp r-rcppparallel))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://mc-stan.org/rstantools/")
     (synopsis "Tools for developing R packages interfacing with Stan")
     (description
@@ -24666,13 +24208,11 @@ recommendations for developers.")
     (properties `((upstream-name . "loo")))
     (build-system r-build-system)
     (inputs
-     `(("pandoc" ,pandoc)
-       ("pandoc-citeproc" ,pandoc-citeproc)))
+     (list pandoc))
     (propagated-inputs
-     `(("r-checkmate" ,r-checkmate)
-       ("r-matrixstats" ,r-matrixstats)))
+     (list r-checkmate r-matrixstats))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://mc-stan.org/loo/")
     (synopsis "Leave-One-Out cross-validation and WAIC for Bayesian models")
     (description
@@ -24711,22 +24251,20 @@ techniques to average Bayesian predictive distributions.")
                      (search-input-directory inputs
                                              "share/zoneinfo")))))))
     (native-inputs
-     `(("tzdata" ,tzdata-for-tests)
-       ("pandoc" ,pandoc)
-       ("r-knitr" ,r-knitr)))
-    (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-inline" ,r-inline)
-       ("r-loo" ,r-loo)
-       ("r-pkgbuild" ,r-pkgbuild)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)
-       ("r-rcppparallel" ,r-rcppparallel)
-       ("r-stanheaders" ,r-stanheaders)
-       ("r-v8" ,r-v8)
-       ("r-withr" ,r-withr)))
+     (list tzdata-for-tests pandoc r-knitr))
+    (propagated-inputs
+     (list r-bh
+           r-ggplot2
+           r-gridextra
+           r-inline
+           r-loo
+           r-pkgbuild
+           r-rcpp
+           r-rcppeigen
+           r-rcppparallel
+           r-stanheaders
+           r-v8
+           r-withr))
     (home-page "https://discourse.mc-stan.org/")
     (synopsis "R interface to Stan")
     (description
@@ -24755,26 +24293,25 @@ need to derive the partial derivatives.")
     (properties `((upstream-name . "rstanarm")))
     (build-system r-build-system)
     (inputs
-     `(("pandoc" ,pandoc)
-       ("pandoc-citeproc" ,pandoc-citeproc)))
-    (propagated-inputs
-     `(("r-bayesplot" ,r-bayesplot)
-       ("r-bh" ,r-bh)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-lme4" ,r-lme4)
-       ("r-loo" ,r-loo)
-       ("r-matrix" ,r-matrix)
-       ("r-nlme" ,r-nlme)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)
-       ("r-rcppparallel" ,r-rcppparallel)
-       ("r-rstan" ,r-rstan)
-       ("r-rstantools" ,r-rstantools)
-       ("r-shinystan" ,r-shinystan)
-       ("r-stanheaders" ,r-stanheaders)
-       ("r-survival" ,r-survival)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list pandoc))
+    (propagated-inputs
+     (list r-bayesplot
+           r-bh
+           r-ggplot2
+           r-lme4
+           r-loo
+           r-matrix
+           r-nlme
+           r-rcpp
+           r-rcppeigen
+           r-rcppparallel
+           r-rstan
+           r-rstantools
+           r-shinystan
+           r-stanheaders
+           r-survival))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://mc-stan.org/rstanarm/")
     (synopsis "Bayesian applied regression modeling via Stan")
     (description
@@ -24798,9 +24335,9 @@ a formula and @code{data.frame} plus some additional arguments for priors.")
     (properties `((upstream-name . "Kendall")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-boot" ,r-boot)))
+     (list r-boot))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/Kendall/")
     (synopsis "Kendall rank correlation and Mann-Kendall trend test")
     (description
@@ -24822,15 +24359,15 @@ trend test.")
     (properties `((upstream-name . "keyring")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-askpass" ,r-askpass)
-       ("r-assertthat" ,r-assertthat)
-       ("r-filelock" ,r-filelock)
-       ("r-openssl" ,r-openssl)
-       ("r-r6" ,r-r6)
-       ("r-rappdirs" ,r-rappdirs)
-       ("r-sodium" ,r-sodium)
-       ("r-yaml" ,r-yaml)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+     (list r-askpass
+           r-assertthat
+           r-filelock
+           r-openssl
+           r-r6
+           r-rappdirs
+           r-sodium
+           r-yaml))
+    (native-inputs (list pkg-config))
     (home-page "https://github.com/r-lib/keyring")
     (synopsis "Access the system credential store from R")
     (description
@@ -24855,7 +24392,7 @@ Additional storage back-ends can be added easily.")
     (properties `((upstream-name . "zyp")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-kendall" ,r-kendall)))
+     (list r-kendall))
     (home-page "https://cran.r-project.org/web/packages/zyp/")
     (synopsis "Zhang + Yue-Pilon Trends Package")
     (description
@@ -24879,10 +24416,7 @@ climate data.")
     (properties `((upstream-name . "Rlinsolve")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rdpack" ,r-rdpack)))
+     (list r-matrix r-rcpp r-rcpparmadillo r-rdpack))
     (home-page "https://cran.r-project.org/web/packages/Rlinsolve/")
     (synopsis "Iterative solvers for (sparse) linear system of equations")
     (description
@@ -24911,15 +24445,15 @@ linear systems can be manageable using the @code{Matrix} package along with
     (properties `((upstream-name . "ZVCV")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-bh" ,r-bh)
-       ("r-dplyr" ,r-dplyr)
-       ("r-glmnet" ,r-glmnet)
-       ("r-magrittr" ,r-magrittr)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rlinsolve" ,r-rlinsolve)))
+     (list r-abind
+           r-bh
+           r-dplyr
+           r-glmnet
+           r-magrittr
+           r-mvtnorm
+           r-rcpp
+           r-rcpparmadillo
+           r-rlinsolve))
     (home-page "https://cran.r-project.org/web/packages/ZVCV/")
     (synopsis "Zero-Variance Control Variates")
     (description
@@ -24948,13 +24482,13 @@ the posterior distribution in Bayesian statistics are also supplied.")
     (properties `((upstream-name . "ztype")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertthat" ,r-assertthat)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-lubridate" ,r-lubridate)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rvest" ,r-rvest)
-       ("r-stringr" ,r-stringr)))
+     (list r-assertthat
+           r-dplyr
+           r-ggplot2
+           r-lubridate
+           r-magrittr
+           r-rvest
+           r-stringr))
     (home-page "https://cran.r-project.org/web/packages/ztype/")
     (synopsis "Run a Ztype game loaded with R functions")
     (description
@@ -24977,7 +24511,7 @@ opponents' vessels.")
     (properties `((upstream-name . "Zseq")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-gmp" ,r-gmp)))
+     (list r-gmp))
     (home-page "https://cran.r-project.org/web/packages/Zseq/")
     (synopsis "Integer sequence generator")
     (description
@@ -25001,7 +24535,7 @@ Encyclopedia of Integer Sequences} (OEIS) in the function help page.")
     (properties `((upstream-name . "isoband")))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/wilkelab/isoband")
     (synopsis "Generate isolines and isobands from regularly spaced elevation grids")
     (description
@@ -25024,7 +24558,7 @@ containing elevation data.")
     (properties `((upstream-name . "ppcor")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)))
+     (list r-mass))
     (home-page "https://cran.r-project.org/web/packages/ppcor/")
     (synopsis "Partial and semi-partial correlation")
     (description
@@ -25046,16 +24580,16 @@ statistics and p-values of the correlation coefficients.")
     (properties `((upstream-name . "hrbrthemes")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-extrafont" ,r-extrafont)
-       ("r-gdtools" ,r-gdtools)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-htmltools" ,r-htmltools)
-       ("r-knitr" ,r-knitr)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-scales" ,r-scales)))
+     (list r-extrafont
+           r-gdtools
+           r-ggplot2
+           r-htmltools
+           r-knitr
+           r-magrittr
+           r-rmarkdown
+           r-scales))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/hrbrmstr/hrbrthemes/")
     (synopsis "Additional themes, theme components and utilities for @code{ggplot2}")
     (description
@@ -25077,7 +24611,7 @@ and an overall emphasis on typography.")
         "0zvjaf6cv0nrjb4l4llkr0mmgha7ig31p4ri2rlnqyjlxi5l8hyq"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/agrueneberg/crochet")
     (synopsis "Implementation Helper for Matrix-Like Types")
     (description
@@ -25139,10 +24673,9 @@ appropriate dog and cat images for many status codes.")
                 "0qknpw7zwwbzsbry94j8fn48mq7kq5rc5448g9hybbisain3wfvg"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-stringr" ,r-stringr)
-       ("r-magrittr" ,r-magrittr)))
+     (list r-stringr r-magrittr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/stefano-meschiari/latex2exp/")
     (synopsis "Use LaTeX expressions in plots")
     (description "@code{latex2exp} parses and converts LaTeX math formulas to
@@ -25162,13 +24695,9 @@ rendered as text, axis labels, etc. throughout R's plotting system.")
                 "1zcbcxhw692s0y6izvwazyzhgx0iwsxsbcan2nk0mb7n11p7bypb"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-xml2" ,r-xml2)
-       ("r-httr" ,r-httr)
-       ("r-plyr" ,r-plyr)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)))
+     (list r-xml2 r-httr r-plyr r-stringr r-tibble))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/ropensci/oai/")
     (synopsis "General purpose OAI-PMH services client")
     (description "@code{oai} provides a general purpose client to work with
@@ -25181,14 +24710,14 @@ service.  Functions are provided to work with the OAI-PMH verbs:
 (define-public r-argon2
   (package
     (name "r-argon2")
-    (version "0.2-0")
+    (version "0.4-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "argon2" version))
        (sha256
         (base32
-         "0kqn06rpb39jlzizjlnc5c44mfic8llrshxn7ljgmyj35lbqwxqh"))))
+         "09hzl0wz0lw2v7g64rdv0lij2hq36zl37a6rmxwvinmjdzijcsyw"))))
     (properties `((upstream-name . "argon2")))
     (build-system r-build-system)
     (home-page "https://github.com/wrathematics/argon2")
@@ -25212,7 +24741,7 @@ argon2 algorithm.")
     (properties `((upstream-name . "getPass")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rstudioapi" ,r-rstudioapi)))
+     (list r-rstudioapi))
     (home-page "https://github.com/wrathematics/getPass")
     (synopsis "Masked user input")
     (description
@@ -25236,10 +24765,7 @@ where tcltk is present are supported.")
     (properties `((upstream-name . "remoter")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-argon2" ,r-argon2)
-       ("r-getpass" ,r-getpass)
-       ("r-pbdzmq" ,r-pbdzmq)
-       ("r-png" ,r-png)))
+     (list r-argon2 r-getpass r-pbdzmq r-png))
     (home-page "https://github.com/RBigData/remoter")
     (synopsis "Control a remote R session from a local one")
     (description
@@ -25262,7 +24788,7 @@ client).")
     (properties `((upstream-name . "asd")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mvtnorm" ,r-mvtnorm)))
+     (list r-mvtnorm))
     (home-page "https://cran.r-project.org/web/packages/asd")
     (synopsis "Simulations for Adaptive Seamless Designs")
     (description
@@ -25285,8 +24811,7 @@ subpopulation type designs.")
     (properties `((upstream-name . "nbconvertR")))
     (build-system r-build-system)
     (inputs
-     `(("jupyter" ,python-nbconvert)
-       ("pandoc" ,pandoc)))
+     (list python-nbconvert pandoc))
     (home-page "https://cran.r-project.org/web/packages/nbconvertR/")
     (synopsis "Vignette engine wrapping Jupyter notebooks")
     (description
@@ -25311,14 +24836,14 @@ evaluated interactively.")
      `((upstream-name . "bridgesampling")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-brobdingnag" ,r-brobdingnag)
-       ("r-coda" ,r-coda)
-       ("r-matrix" ,r-matrix)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-scales" ,r-scales)
-       ("r-stringr" ,r-stringr)))
+     (list r-brobdingnag
+           r-coda
+           r-matrix
+           r-mvtnorm
+           r-scales
+           r-stringr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/quentingronau/bridgesampling")
     (synopsis "Bridge sampling for marginal likelihoods and Bayes factors")
     (description
@@ -25342,7 +24867,7 @@ general, via different versions of bridge sampling.")
      `((upstream-name . "tea")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)))
+     (list r-matrix))
     (home-page "https://cran.r-project.org/web/packages/tea/")
     (synopsis "Threshold estimation approaches")
     (description
@@ -25393,10 +24918,9 @@ is also implemented here.")
      `((upstream-name . "aws")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-awsmethods" ,r-awsmethods)
-       ("r-gsl" ,r-gsl)))
+     (list r-awsmethods r-gsl))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/aws/")
     (synopsis "Adaptive weights smoothing")
     (description
@@ -25422,15 +24946,15 @@ filter.")
      `((upstream-name . "sglOptim")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-doparallel" ,r-doparallel)
-       ("r-foreach" ,r-foreach)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rcppprogress" ,r-rcppprogress)))
+     (list r-bh
+           r-doparallel
+           r-foreach
+           r-matrix
+           r-rcpp
+           r-rcpparmadillo
+           r-rcppprogress))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/nielsrhansen/sglOptim")
     (synopsis "Generic sparse group Lasso solver")
     (description
@@ -25458,7 +24982,7 @@ computing for cross validation and subsampling is supported through the
      `((upstream-name . "grouped")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)))
+     (list r-mass))
     (home-page "https://cran.r-project.org/web/packages/grouped/")
     (synopsis "Regression analysis of grouped and coarse data")
     (description
@@ -25481,8 +25005,7 @@ under the coarsened at random assumption.")
      `((upstream-name . "stam")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-np" ,r-np)
-       ("r-sp" ,r-sp)))
+     (list r-np r-sp))
     (home-page "https://cran.r-project.org/web/packages/stam")
     (synopsis "Spatio-temporal analysis and modelling")
     (description
@@ -25506,7 +25029,7 @@ Inferred Spatio-Temporal Modelling.")
      `((upstream-name . "dcv")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lmtest" ,r-lmtest)))
+     (list r-lmtest))
     (home-page "https://cran.r-project.org/web/packages/dcv/")
     (synopsis "Conventional cross-validation statistics for climate-growth model")
     (description
@@ -25519,19 +25042,19 @@ Mean Test, Durbin-Watson statistic etc.")
 (define-public r-rcdd
   (package
     (name "r-rcdd")
-    (version "1.2-2")
+    (version "1.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rcdd" version))
        (sha256
         (base32
-         "0pzpbqnlgzr240iici70278py5wnbbxkzlgn112f9wv5ga3riric"))))
+         "0zxx0qvv26ba30jkm8mvca4h59rqklay4jwazpcw7h9dzp4189jr"))))
     (properties
      `((upstream-name . "rcdd")))
     (build-system r-build-system)
     (inputs
-     `(("gmp" ,gmp)))
+     (list gmp))
     (home-page "https://www.stat.umn.edu/geyer/rcdd/")
     (synopsis "Computational geometry")
     (description
@@ -25557,11 +25080,9 @@ infinite-precision rational arithmetic.")
      `((upstream-name . "Rxnat")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-httr" ,r-httr)
-       ("r-rcurl" ,r-rcurl)
-       ("r-tibble" ,r-tibble)))
+     (list r-httr r-rcurl r-tibble))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/Rxnat/")
     (synopsis "Queries and extracts images from neuroimaging datasets")
     (description
@@ -25595,16 +25116,15 @@ download images.")
                  (("\\$\\(R_HOME\\)") out))
                (mkdir-p bin)))))))
     (propagated-inputs
-     `(("r-checkmate" ,r-checkmate)
-       ("r-mime" ,r-mime)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-knitr" ,r-knitr)
-       ("r-r6" ,r-r6)
-       ("r-rcpp" ,r-rcpp)
-       ("r-uuid" ,r-uuid)))
+     (list r-checkmate
+           r-mime
+           r-jsonlite
+           r-knitr
+           r-r6
+           r-rcpp
+           r-uuid))
     (inputs
-     `(("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list openssl zlib))
     (home-page "https://github.com/s-u/Rserve")
     (synopsis
      "Server providing access to R from many languages and systems")
@@ -25632,9 +25152,7 @@ included in this package as well.")
     (properties `((upstream-name . "gamm4")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lme4" ,r-lme4)
-       ("r-matrix" ,r-matrix)
-       ("r-mgcv" ,r-mgcv)))
+     (list r-lme4 r-matrix r-mgcv))
     (home-page "https://cran.r-project.org/web/packages/gamm4/")
     (synopsis "Generalized additive mixed models using mgcv and lme4")
     (description
@@ -25646,18 +25164,18 @@ estimation.")
 (define-public r-optimx
   (package
     (name "r-optimx")
-    (version "2021-6.12")
+    (version "2021-10.12")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "optimx" version))
        (sha256
         (base32
-         "059md564p2pk5nis9kbcn1kw2fw130vg53fxlr5xzpv1c9gfhq3k"))))
+         "0hvrpfya767vp3anmb8ih516v4zz1sv4h193rn93kyjydf2lqf1r"))))
     (properties `((upstream-name . "optimx")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-numderiv" ,r-numderiv)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+    (propagated-inputs (list r-numderiv))
+    (native-inputs (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/optimx/")
     (synopsis "Expanded replacement and extension of the optim function")
     (description
@@ -25685,21 +25203,21 @@ here.")
     (properties `((upstream-name . "projpred")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-gamm4" ,r-gamm4)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-lme4" ,r-lme4)
-       ("r-loo" ,r-loo)
-       ("r-magrittr" ,r-magrittr)
-       ("r-mass" ,r-mass)
-       ("r-mgcv" ,r-mgcv)
-       ("r-optimx" ,r-optimx)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rngtools" ,r-rngtools)
-       ("r-rstantools" ,r-rstantools)
-       ("r-tidyverse" ,r-tidyverse)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-dplyr
+           r-gamm4
+           r-ggplot2
+           r-lme4
+           r-loo
+           r-magrittr
+           r-mass
+           r-mgcv
+           r-optimx
+           r-rcpp
+           r-rcpparmadillo
+           r-rngtools
+           r-rstantools
+           r-tidyverse))
+    (native-inputs (list r-knitr))
     (home-page "https://mc-stan.org/projpred/")
     (synopsis "Projection predictive feature selection")
     (description
@@ -25725,16 +25243,16 @@ vignette for more information and examples.")
      `((upstream-name . "distributional")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-digest" ,r-digest)
-       ("r-ellipsis" ,r-ellipsis)
-       ("r-farver" ,r-farver)
-       ("r-generics" ,r-generics)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-numderiv" ,r-numderiv)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-digest
+           r-ellipsis
+           r-farver
+           r-generics
+           r-ggplot2
+           r-lifecycle
+           r-numderiv
+           r-rlang
+           r-scales
+           r-vctrs))
     (home-page "https://pkg.mitchelloharawild.com/distributional/")
     (synopsis "Vectorized probability distributions")
     (description
@@ -25750,27 +25268,28 @@ including means, variances, intervals, and highest density regions.")
 (define-public r-posterior
   (package
     (name "r-posterior")
-    (version "1.0.1")
+    (version "1.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "posterior" version))
        (sha256
         (base32
-         "000k2sih7r89nmw3nwndx5jljcvkyr61b96mdkqrw83rs74lnh6f"))))
+         "1lpldkkkxv94dr30q5wb5qr61qrgp9shqnskgwriigy1phnjdxpg"))))
     (properties `((upstream-name . "posterior")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-checkmate" ,r-checkmate)
-       ("r-distributional" ,r-distributional)
-       ("r-pillar" ,r-pillar)
-       ("r-rlang" ,r-rlang)
-       ("r-tensora" ,r-tensora)
-       ("r-tibble" ,r-tibble)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-abind
+           r-checkmate
+           r-distributional
+           r-matrixstats
+           r-pillar
+           r-rlang
+           r-tensora
+           r-tibble
+           r-vctrs))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://mc-stan.org/posterior/")
     (synopsis "Tools for working with posterior distributions")
     (description
@@ -25796,38 +25315,38 @@ inference diagnostics.
 (define-public r-brms
   (package
     (name "r-brms")
-    (version "2.16.0")
+    (version "2.16.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "brms" version))
        (sha256
         (base32
-         "14ykj7h0pzyzsyd1c46ybapsz3aqnffjih5hm7khfa5jk05wbs7a"))))
+         "1i0vkkfziac29vncw4igja5m7a6rhw9rqwifrw3y47q6zgczp7kl"))))
     (properties `((upstream-name . "brms")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-backports" ,r-backports)
-       ("r-bayesplot" ,r-bayesplot)
-       ("r-bridgesampling" ,r-bridgesampling)
-       ("r-coda" ,r-coda)
-       ("r-future" ,r-future)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-glue" ,r-glue)
-       ("r-loo" ,r-loo)
-       ("r-matrix" ,r-matrix)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-mgcv" ,r-mgcv)
-       ("r-nleqslv" ,r-nleqslv)
-       ("r-nlme" ,r-nlme)
-       ("r-posterior" ,r-posterior)
-       ("r-projpred" ,r-projpred)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rstan" ,r-rstan)
-       ("r-rstantools" ,r-rstantools)
-       ("r-shinystan" ,r-shinystan)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-abind
+           r-backports
+           r-bayesplot
+           r-bridgesampling
+           r-coda
+           r-future
+           r-ggplot2
+           r-glue
+           r-loo
+           r-matrix
+           r-matrixstats
+           r-mgcv
+           r-nleqslv
+           r-nlme
+           r-posterior
+           r-projpred
+           r-rcpp
+           r-rstan
+           r-rstantools
+           r-shinystan))
+    (native-inputs (list r-knitr))
     (home-page
      "https://github.com/paul-buerkner/brms")
     (synopsis
@@ -25850,26 +25369,25 @@ with posterior predictive checks and leave-one-out cross-validation.")
 (define-public r-mstate
   (package
     (name "r-mstate")
-    (version "0.3.1")
+    (version "0.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "mstate" version))
        (sha256
         (base32
-         "11i3p7fph8nbnfis1m7rdrq32qryaajv2wrkxk1x6k17zkh4rq6i"))))
+         "054dzrd5b0xjjjl7862q3aq1jwgrxbkqz7zpvbdirqsld3zksirw"))))
     (properties `((upstream-name . "mstate")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-lattice" ,r-lattice)
-       ("r-magrittr" ,r-magrittr)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rlang" ,r-rlang)
-       ("r-survival" ,r-survival)
-       ("r-viridis" ,r-viridis)))
+     (list r-data-table
+           r-lattice
+           r-rcolorbrewer
+           r-rlang
+           r-survival
+           r-viridislite))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page
      "https://www.lumc.nl/org/bds/research/medische-statistiek/survival-analysis/")
     (synopsis
@@ -25894,13 +25412,9 @@ multi-state models.")
     (properties `((upstream-name . "scatterpie")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggforce" ,r-ggforce)
-       ("r-ggfun" ,r-ggfun)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-rlang" ,r-rlang)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-ggforce r-ggfun r-ggplot2 r-rlang r-tidyr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/scatterpie/")
     (synopsis "Scatter pie plot")
     (description
@@ -25922,7 +25436,7 @@ pies on a map.")
     (properties `((upstream-name . "scrypt")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (home-page "https://github.com/rstudio/rscrypt")
     (synopsis "Key derivation functions for R based on Scrypt")
     (description
@@ -25946,7 +25460,7 @@ amounts of memory.")
          "0y2w4wb45kfnzrxcrdsiwgal9fsnlr3wad1sqdc70qv8gp921xbg"))))
     (properties `((upstream-name . "Boruta")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-ranger" ,r-ranger)))
+    (propagated-inputs (list r-ranger))
     (home-page "https://gitlab.com/mbq/Boruta/")
     (synopsis "Wrapper algorithm for all relevant feature selection")
     (description
@@ -25969,9 +25483,9 @@ permuted copies (shadows).")
          "0415kh9k2qzdwi8zb32fh2icl5wf5335kyj11cyfdmfxji39zv2w"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-quadprog" ,r-quadprog)))
+     (list r-quadprog))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "http://directlabels.r-forge.r-project.org/")
     (synopsis "Direct labels for multicolor plots")
     (description
@@ -26014,7 +25528,7 @@ Try a demo of the LSD by running @code{demotour()}.")
         (base32 "1p4h5pirc0m5pzc18q0jk3mcmb5n48gdf9abz03vml3a209xxl2v"))))
     (properties `((upstream-name . "phylogram")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-ape" ,r-ape)))
+    (propagated-inputs (list r-ape))
     (home-page "https://github.com/ropensci/phylogram/")
     (synopsis "Dendrograms for evolutionary analysis")
     (description
@@ -26040,9 +25554,7 @@ across a wide array of bioinformatic R packages.")
     (properties `((upstream-name . "kmer")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-openssl" ,r-openssl)
-       ("r-phylogram" ,r-phylogram)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-openssl r-phylogram r-rcpp))
     (home-page "https://github.com/shaunpwilkinson/kmer/")
     (synopsis "Fast K-Mer counting and clustering for biological sequence analysis")
     (description
@@ -26065,12 +25577,9 @@ counting and recursive k-means partitioning.")
     (properties `((upstream-name . "hardhat")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-glue" ,r-glue)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-glue r-rlang r-tibble r-vctrs))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/tidymodels/hardhat")
     (synopsis "Construct modeling packages")
     (description
@@ -26087,21 +25596,18 @@ input.")
 (define-public r-lightgbm
   (package
     (name "r-lightgbm")
-    (version "3.2.1")
+    (version "3.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lightgbm" version))
        (sha256
         (base32
-         "1136di7k3gs9kk7vd9bc3mdm0qrx3a546ngar8inmgyhi0zk6pkd"))))
+         "0hvpwirskzcd7ww47f9gllgl3wjvpghnwj8a41glpppwwaaxa0z4"))))
     (properties `((upstream-name . "lightgbm")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-matrix" ,r-matrix)
-       ("r-r6" ,r-r6)))
+     (list r-data-table r-jsonlite r-matrix r-r6))
     (home-page "https://github.com/Microsoft/LightGBM")
     (synopsis "Light gradient boosting machine")
     (description
@@ -26135,16 +25641,16 @@ designed to be distributed and efficient with the following goals:
      `((upstream-name . "SHAPforxgboost")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bbmisc" ,r-bbmisc)
-       ("r-data-table" ,r-data-table)
-       ("r-ggextra" ,r-ggextra)
-       ("r-ggforce" ,r-ggforce)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggpubr" ,r-ggpubr)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-xgboost" ,r-xgboost)))
+     (list r-bbmisc
+           r-data-table
+           r-ggextra
+           r-ggforce
+           r-ggplot2
+           r-ggpubr
+           r-rcolorbrewer
+           r-xgboost))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/liuyanguu/SHAPforxgboost")
     (synopsis "SHAP Plots for XGBoost")
     (description
@@ -26169,8 +25675,7 @@ values.")
     (properties `((upstream-name . "RISmed")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-httr" ,r-httr)
-       ("r-xml2" ,r-xml2)))
+     (list r-httr r-xml2))
     (home-page "https://cran.r-project.org/web/packages/RISmed")
     (synopsis "Download content from NCBI databases")
     (description
@@ -26195,9 +25700,8 @@ bibliographic data) and PubMed.")
     (properties `((upstream-name . "semver")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-assertthat" ,r-assertthat)
-        ("r-rcpp" ,r-rcpp)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+      (list r-assertthat r-rcpp))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/johndharrison/semver")
     (synopsis "Parser for Semantic Versioning 2.0.0")
     (description
@@ -26221,14 +25725,14 @@ incremented as outlined at @url{http://semver.org}.")
     (properties `((upstream-name . "binman")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-assertthat" ,r-assertthat)
-        ("r-httr" ,r-httr)
-        ("r-jsonlite" ,r-jsonlite)
-        ("r-rappdirs" ,r-rappdirs)
-        ("r-semver" ,r-semver)
-        ("r-xml2" ,r-xml2)
-        ("r-yaml" ,r-yaml)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+      (list r-assertthat
+            r-httr
+            r-jsonlite
+            r-rappdirs
+            r-semver
+            r-xml2
+            r-yaml))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/ropensci/binman")
     (synopsis "Binary download manager")
     (description
@@ -26252,12 +25756,8 @@ repositories to be added.")
     (properties `((upstream-name . "wdman")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-assertthat" ,r-assertthat)
-        ("r-binman" ,r-binman)
-        ("r-processx" ,r-processx)
-        ("r-semver" ,r-semver)
-        ("r-yaml" ,r-yaml)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+      (list r-assertthat r-binman r-processx r-semver r-yaml))
+    (native-inputs (list r-knitr))
     (home-page "https://docs.ropensci.org/wdman/")
     (synopsis "Webdriver/Selenium binary manager")
     (description
@@ -26285,13 +25785,13 @@ and to manage processes involving them.")
     (properties `((upstream-name . "RSelenium")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-binman" ,r-binman)
-        ("r-catools" ,r-catools)
-        ("r-httr" ,r-httr)
-        ("r-openssl" ,r-openssl)
-        ("r-wdman" ,r-wdman)
-        ("r-xml" ,r-xml)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+      (list r-binman
+            r-catools
+            r-httr
+            r-openssl
+            r-wdman
+            r-xml))
+    (native-inputs (list r-knitr))
     (home-page "https://docs.ropensci.org/RSelenium/")
     (synopsis "R bindings for Selenium WebDriver")
     (description
@@ -26309,21 +25809,18 @@ you can automate browsers locally or remotely.")
 (define-public r-conquer
   (package
     (name "r-conquer")
-    (version "1.0.2")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "conquer" version))
        (sha256
         (base32
-         "1zvlsrbmrij011mcdi3qngs1al2lhrdiyknxnk0w1zhzrra62bsl"))))
+         "0i9g27f52zl2kb2392g0y614drf6s87dqz12aphj889ajq7zjm0k"))))
     (properties `((upstream-name . "conquer")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)))
+     (list r-caret r-matrix r-matrixstats r-rcpp r-rcpparmadillo))
     (home-page "https://github.com/XiaoouPan/conquer")
     (synopsis "Convolution-type smoothed quantile regression")
     (description
@@ -26347,14 +25844,14 @@ coefficients are constructed using multiplier bootstrap.")
     (properties `((upstream-name . "fastshap")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-plyr" ,r-plyr)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-tibble" ,r-tibble)))
+     (list r-abind
+           r-ggplot2
+           r-gridextra
+           r-matrixstats
+           r-plyr
+           r-rcpp
+           r-rcpparmadillo
+           r-tibble))
     (home-page "https://github.com/bgreenwell/fastshap")
     (synopsis "Fast approximate Shapley values")
     (description
@@ -26368,13 +25865,13 @@ doi.org/10.1007/s10115-013-0679-x} for details.")
 (define-public r-memuse
   (package
     (name "r-memuse")
-    (version "4.1-0")
+    (version "4.2-1")
     (source (origin
              (method url-fetch)
              (uri (cran-uri "memuse" version))
              (sha256
               (base32
-               "1bbjp8y0ji71956fbaxiil7ynq2nkmmgz7i9xps83m3bbp5d3mjq"))))
+               "1wvwnjaaiv2647561z2b55dss35033ildx4kk8hzxfzgsjmdpsgm"))))
     (properties `((upstream-name . "memuse")))
     (build-system r-build-system)
     (home-page "https://github.com/shinra-dev/memuse")
@@ -26422,17 +25919,17 @@ simple interface for all functions.")
     (properties `((upstream-name . "iml")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-checkmate" ,r-checkmate)
-       ("r-data-table" ,r-data-table)
-       ("r-formula" ,r-formula)
-       ("r-future" ,r-future)
-       ("r-future-apply" ,r-future-apply)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-keras" ,r-keras)
-       ("r-metrics" ,r-metrics)
-       ("r-prediction" ,r-prediction)
-       ("r-r6" ,r-r6)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-checkmate
+           r-data-table
+           r-formula
+           r-future
+           r-future-apply
+           r-ggplot2
+           r-keras
+           r-metrics
+           r-prediction
+           r-r6))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/christophM/iml")
     (synopsis "Interpretable machine learning")
     (description
@@ -26457,14 +25954,14 @@ and predictions of any machine learning model.  Implemented methods are:
 (define-public r-goftest
   (package
     (name "r-goftest")
-    (version "1.2-2")
+    (version "1.2-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "goftest" version))
        (sha256
         (base32
-         "0ivnkqhv5xgiv05dm648nngacymd8x8g0fyppv3bc0mhcqk9k5z4"))))
+         "06bz6k7smr4jbvzmb73qc5fkf4my59w5gbl18wlmpkkymsv78prs"))))
     (properties `((upstream-name . "goftest")))
     (build-system r-build-system)
     (home-page "https://github.com/baddstats/goftest")
@@ -26532,10 +26029,7 @@ which may also be useful for other purposes.")
      `((upstream-name . "spatstat.sparse")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-matrix" ,r-matrix)
-       ("r-spatstat-utils" ,r-spatstat-utils)
-       ("r-tensor" ,r-tensor)))
+     (list r-abind r-matrix r-spatstat-utils r-tensor))
     (home-page "http://spatstat.org/")
     (synopsis "Sparse three-dimensional arrays and linear algebra utilities")
     (description
@@ -26558,8 +26052,7 @@ matrix calculations that are common in statistics, such as quadratic forms.")
     (properties `((upstream-name . "spatstat.data")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)
-       ("r-spatstat-utils" ,r-spatstat-utils)))
+     (list r-matrix r-spatstat-utils))
     (home-page "http://www.spatstat.org")
     (synopsis "Datasets for spatstat")
     (description
@@ -26570,21 +26063,18 @@ package.")
 (define-public r-spatstat-geom
   (package
     (name "r-spatstat-geom")
-    (version "2.2-2")
+    (version "2.3-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "spatstat.geom" version))
        (sha256
         (base32
-         "0rx28g064641yrk2h23qpyc0bgs20lpsnqmyl1d06530ga6r1qc3"))))
+         "1iz9zi45nli5lf96ng6bqqbl4ix3zxzlfclkg4cdb9h98nj4c5vv"))))
     (properties `((upstream-name . "spatstat.geom")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-deldir" ,r-deldir)
-       ("r-polyclip" ,r-polyclip)
-       ("r-spatstat-data" ,r-spatstat-data)
-       ("r-spatstat-utils" ,r-spatstat-utils)))
+     (list r-deldir r-polyclip r-spatstat-data r-spatstat-utils))
     (home-page "http://spatstat.org/")
     (synopsis "Geometrical functionality of the spatstat package")
     (description
@@ -26596,28 +26086,28 @@ for the geometry of linear networks.")
 (define-public r-spatstat-core
   (package
     (name "r-spatstat-core")
-    (version "2.3-0")
+    (version "2.3-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "spatstat.core" version))
        (sha256
         (base32
-         "1j962lzllqzxkd57j6immyj94pc53ff9mlvw1iscw7cnn9nyr5ap"))))
+         "1fq6ynds66d836drf758syqhfz0341fxif0r5hbf5lfkwp3a2wfk"))))
     (properties `((upstream-name . "spatstat.core")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-goftest" ,r-goftest)
-       ("r-matrix" ,r-matrix)
-       ("r-mgcv" ,r-mgcv)
-       ("r-nlme" ,r-nlme)
-       ("r-rpart" ,r-rpart)
-       ("r-spatstat-data" ,r-spatstat-data)
-       ("r-spatstat-geom" ,r-spatstat-geom)
-       ("r-spatstat-sparse" ,r-spatstat-sparse)
-       ("r-spatstat-utils" ,r-spatstat-utils)
-       ("r-tensor" ,r-tensor)))
+     (list r-abind
+           r-goftest
+           r-matrix
+           r-mgcv
+           r-nlme
+           r-rpart
+           r-spatstat-data
+           r-spatstat-geom
+           r-spatstat-sparse
+           r-spatstat-utils
+           r-tensor))
     (home-page "http://spatstat.org/")
     (synopsis "Core functionality of the spatstat package")
     (description
@@ -26640,12 +26130,12 @@ user-level code from spatstat, except for the code for linear networks.")
      `((upstream-name . "spatstat.linnet")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)
-       ("r-spatstat-core" ,r-spatstat-core)
-       ("r-spatstat-data" ,r-spatstat-data)
-       ("r-spatstat-geom" ,r-spatstat-geom)
-       ("r-spatstat-sparse" ,r-spatstat-sparse)
-       ("r-spatstat-utils" ,r-spatstat-utils)))
+     (list r-matrix
+           r-spatstat-core
+           r-spatstat-data
+           r-spatstat-geom
+           r-spatstat-sparse
+           r-spatstat-utils))
     (home-page "http://spatstat.org/")
     (synopsis "Linear networks functionality of the spatstat package")
     (description
@@ -26667,11 +26157,8 @@ for spatial data on a linear network.")
     (properties `((upstream-name . "spatstat")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-spatstat-core" ,r-spatstat-core)
-       ("r-spatstat-data" ,r-spatstat-data)
-       ("r-spatstat-geom" ,r-spatstat-geom)
-       ("r-spatstat-linnet" ,r-spatstat-linnet)
-       ("r-spatstat-utils" ,r-spatstat-utils)))
+     (list r-spatstat-core r-spatstat-data r-spatstat-geom
+           r-spatstat-linnet r-spatstat-utils))
     (home-page "http://www.spatstat.org")
     (synopsis "Spatial Point Pattern analysis, model-fitting, simulation, tests")
     (description
@@ -26699,12 +26186,10 @@ formal inference.")
          "14z94dpln4dvgrv2w7w9ik7h6rpvbf02qhq1hqzx8c2cndzxr21i"))))
     (properties `((upstream-name . "gaston")))
     (build-system r-build-system)
-    (inputs `(("zlib" ,zlib)))
+    (inputs (list zlib))
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)
-       ("r-rcppparallel" ,r-rcppparallel)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-rcpp r-rcppeigen r-rcppparallel))
+    (native-inputs (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/gaston/")
     (synopsis "Genetic data handling (QC, GRM, LD, PCA) and linear mixed models")
     (description
@@ -26717,17 +26202,17 @@ for linear mixed models (AIREML).")
 (define-public r-cpp11
   (package
     (name "r-cpp11")
-    (version "0.3.1")
+    (version "0.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "cpp11" version))
        (sha256
         (base32
-         "1w2s057xbiasa1c3563gbznazs3lqk71zbdjmwnh5jy50wdl53a7"))))
+         "1nk47xkab7i17h7917l4cfyfvnxf782dfq67wwxa6n0r4jqqxzz9"))))
     (properties `((upstream-name . "cpp11")))
     (build-system r-build-system)
-    (native-inputs `(("r-knitr" ,r-knitr)))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/r-lib/cpp11")
     (synopsis "C++11 Interface for R's C Interface")
     (description
@@ -26751,9 +26236,8 @@ semantics and supports interaction with @code{ALTREP} vectors.")
     (properties `((upstream-name . "RcppZiggurat")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-rcppgsl" ,r-rcppgsl)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-rcpp r-rcppgsl))
+    (native-inputs (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/RcppZiggurat/")
     (synopsis "Rcpp integration of different \"Ziggurat\" normal RNG implementations")
     (description
@@ -26780,9 +26264,7 @@ aggregation for comparing different implementations in order to provide a
     (properties `((upstream-name . "Rfast")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)
-       ("r-rcppziggurat" ,r-rcppziggurat)))
+     (list r-rcpp r-rcpparmadillo r-rcppziggurat))
     (home-page "https://github.com/RfastOfficial/Rfast")
     (synopsis "Collection of efficient and fast R functions")
     (description
@@ -26806,7 +26288,7 @@ Poisson), are some of the many fast functions.")
               "05x9wgzsmx4vb12lmcspymgmpb2xw8bwryb8ysg7vzg2nkh0ma3g"))))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-randomforest",r-randomforest)))
+    (list r-randomforest))
    (home-page "https://r-forge.r-project.org/projects/rffc/")
    (synopsis "Random Forest Feature Contributions")
    (description "This package provides functions for extracting feature
@@ -26830,12 +26312,8 @@ model.")
     (properties `((upstream-name . "ClusterR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-gmp" ,r-gmp)
-       ("r-gtools" ,r-gtools)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-ggplot2 r-gmp r-gtools r-rcpp r-rcpparmadillo))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/mlampros/ClusterR")
     (synopsis "Clustering")
     (description
@@ -26876,11 +26354,8 @@ see
     (properties `((upstream-name . "Spectrum")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-clusterr" ,r-clusterr)
-       ("r-diptest" ,r-diptest)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-rfast" ,r-rfast)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-clusterr r-diptest r-ggplot2 r-rfast))
+    (native-inputs (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/Spectrum/")
     (synopsis "Fast adaptive spectral clustering for single and multi-view data")
     (description
@@ -26909,9 +26384,7 @@ of K.")
     (properties `((upstream-name . "nabor")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)))
+     (list r-bh r-rcpp r-rcppeigen))
     (home-page "https://cran.r-project.org/web/packages/nabor/")
     (synopsis "Wrapper for K nearest neighbour library for low dimensions")
     (description
@@ -26954,16 +26427,16 @@ not digit characters.")
                 "1ikqp29nncbw1xlwyb9dqqgcdk9q0bs3wxhnhnjpb11vcjv7cz2j"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-glue" ,r-glue)
-       ("r-magrittr" ,r-magrittr)
-       ("r-purrr" ,r-purrr)
-       ("r-readr" ,r-readr)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-dplyr
+           r-ggplot2
+           r-glue
+           r-magrittr
+           r-purrr
+           r-readr
+           r-tibble
+           r-tidyr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://visdat.njtierney.com/")
     (synopsis "Preliminary Visualisation of Data")
     (description "This package provides procedures to create preliminary exploratory
@@ -26985,9 +26458,9 @@ using @code{ggplot2}.")
     (properties `((upstream-name . "muhaz")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-survival" ,r-survival)))
+     (list r-survival))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/muhaz/")
     (synopsis "Hazard function estimation in survival analysis")
     (description
@@ -26999,38 +26472,38 @@ censored data.")
 (define-public r-flexsurv
   (package
     (name "r-flexsurv")
-    (version "2.0")
+    (version "2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "flexsurv" version))
        (sha256
         (base32
-         "0vshsijqlzsz0xh426vsswpai1v5c990ggyniqqzsjbg3mn8dbl9"))))
+         "0kwij9nkdvnsn1kn12fj3hjkd2qpgw7bdda4qad7basq5p6divlp"))))
     (properties `((upstream-name . "flexsurv")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertthat" ,r-assertthat)
-       ("r-desolve" ,r-desolve)
-       ("r-dplyr" ,r-dplyr)
-       ("r-generics" ,r-generics)
-       ("r-magrittr" ,r-magrittr)
-       ("r-matrix" ,r-matrix)
-       ("r-mstate" ,r-mstate)
-       ("r-muhaz" ,r-muhaz)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-numderiv" ,r-numderiv)
-       ("r-purrr" ,r-purrr)
-       ("r-quadprog" ,r-quadprog)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rlang" ,r-rlang)
-       ("r-rstpm2" ,r-rstpm2)
-       ("r-survival" ,r-survival)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-tidyselect" ,r-tidyselect)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-assertthat
+           r-desolve
+           r-dplyr
+           r-generics
+           r-magrittr
+           r-matrix
+           r-mstate
+           r-muhaz
+           r-mvtnorm
+           r-numderiv
+           r-purrr
+           r-quadprog
+           r-rcpp
+           r-rlang
+           r-rstpm2
+           r-survival
+           r-tibble
+           r-tidyr
+           r-tidyselect))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/chjackson/flexsurv-dev")
     (synopsis "Flexible parametric survival and multi-state models")
     (description
@@ -27056,10 +26529,9 @@ models.")
     (properties `((upstream-name . "TransPhylo")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ape" ,r-ape)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-ape r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/TransPhylo/")
     (synopsis "Inference of transmission tree from a dated phylogeny")
     (description
@@ -27083,7 +26555,7 @@ and @url{https://doi.org/10.1093/molbev/msw275,Didelot et al. (2017)}.")
     (properties `((upstream-name . "km.ci")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-survival" ,r-survival)))
+     (list r-survival))
     (home-page "https://cran.r-project.org/web/packages/km.ci/")
     (synopsis "Confidence intervals for the Kaplan-Meier estimator")
     (description
@@ -27128,17 +26600,17 @@ Springer.")
     (properties `((upstream-name . "survMisc")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-km-ci" ,r-km-ci)
-       ("r-kmsurv" ,r-kmsurv)
-       ("r-knitr" ,r-knitr)
-       ("r-survival" ,r-survival)
-       ("r-xtable" ,r-xtable)
-       ("r-zoo" ,r-zoo)))
+     (list r-data-table
+           r-ggplot2
+           r-gridextra
+           r-km-ci
+           r-kmsurv
+           r-knitr
+           r-survival
+           r-xtable
+           r-zoo))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/survMisc/")
     (synopsis "Miscellaneous functions for survival data")
     (description
@@ -27150,14 +26622,14 @@ the @code{survival} package.")
 (define-public r-exactranktests
   (package
     (name "r-exactranktests")
-    (version "0.8-32")
+    (version "0.8-34")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "exactRankTests" version))
        (sha256
         (base32
-         "0p7h7w470p5qpsbrhw12zlsshyai56za5dsdva8cf9sikn0955qr"))))
+         "1i4mwz61mjlh1ai3dww2pjkicx9ww8c4mljnr8xlawh91479lva9"))))
     (properties
      `((upstream-name . "exactRankTests")))
     (build-system r-build-system)
@@ -27182,8 +26654,7 @@ implementation of the Shift-Algorithm by Streitberg & Roehmel.")
     (properties `((upstream-name . "maxstat")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-exactranktests" ,r-exactranktests)
-       ("r-mvtnorm" ,r-mvtnorm)))
+     (list r-exactranktests r-mvtnorm))
     (home-page "https://cran.r-project.org/web/packages/maxstat/")
     (synopsis "Maximally selected rank statistics")
     (description
@@ -27205,23 +26676,23 @@ p-value approximations.")
     (properties `((upstream-name . "survminer")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-broom" ,r-broom)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggpubr" ,r-ggpubr)
-       ("r-ggtext" ,r-ggtext)
-       ("r-gridextra" ,r-gridextra)
-       ("r-magrittr" ,r-magrittr)
-       ("r-maxstat" ,r-maxstat)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)
-       ("r-survival" ,r-survival)
-       ("r-survmisc" ,r-survmisc)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-broom
+           r-dplyr
+           r-ggplot2
+           r-ggpubr
+           r-ggtext
+           r-gridextra
+           r-magrittr
+           r-maxstat
+           r-purrr
+           r-rlang
+           r-scales
+           r-survival
+           r-survmisc
+           r-tibble
+           r-tidyr))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://rpkgs.datanovia.com/survminer/index.html")
     (synopsis "Drawing survival curves using ggplot2")
     (description
@@ -27246,8 +26717,7 @@ assumptions.")
     (properties `((upstream-name . "forge")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-magrittr" ,r-magrittr)
-       ("r-rlang" ,r-rlang)))
+     (list r-magrittr r-rlang))
     (home-page "https://cran.r-project.org/web/packages/forge/")
     (synopsis "Cast values into shape")
     (description
@@ -27269,9 +26739,9 @@ coerce and verify the types and shapes of values for input checking.")
     (properties `((upstream-name . "config")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-yaml" ,r-yaml)))
+     (list r-yaml))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/rstudio/config")
     (synopsis "Manage environment specific configuration values")
     (description
@@ -27304,12 +26774,9 @@ value.")
                 (string-append prefix "-larmadillo")))
              #t)))))
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)))
+     (list r-mass r-matrix r-rcpp r-rcpparmadillo))
     (inputs
-     `(("armadillo" ,armadillo)))
+     (list armadillo))
     (home-page "https://cran.r-project.org/web/packages/AdaptiveSparsity")
     (synopsis "Adaptive sparsity models")
     (description
@@ -27332,9 +26799,7 @@ geometric models.")
     (properties `((upstream-name . "diffusionMap")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-igraph" ,r-igraph)
-       ("r-matrix" ,r-matrix)
-       ("r-scatterplot3d" ,r-scatterplot3d)))
+     (list r-igraph r-matrix r-scatterplot3d))
     (home-page "https://www.r-project.org")
     (synopsis "Diffusion map")
     (description "This package implements the diffusion map method of data
@@ -27346,26 +26811,21 @@ model.")
 (define-public r-igraph
   (package
     (name "r-igraph")
-    (version "1.2.6")
+    (version "1.2.8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "igraph" version))
        (sha256
         (base32
-         "0vf7wrx77cdiav8724cw8gchrn0y9wvywphf5km4pa7xcqhsf3b4"))))
+         "01hvphaf5mx9xvwiazcw39kp6gc1lafqrbjwczy6f7hr145dn1pl"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (inputs
-     `(("gmp" ,gmp)
-       ("glpk" ,glpk)
-       ("libxml2" ,libxml2)
-       ("zlib" ,zlib)))
+     (list gmp glpk libxml2 zlib))
     (propagated-inputs
-     `(("r-magrittr" ,r-magrittr)
-       ("r-matrix" ,r-matrix)
-       ("r-pkgconfig" ,r-pkgconfig)))
+     (list r-magrittr r-matrix r-pkgconfig))
     (home-page "https://igraph.org")
     (synopsis "Network analysis and visualization")
     (description
@@ -27378,29 +26838,29 @@ more.")
 (define-public r-workflows
   (package
     (name "r-workflows")
-    (version "0.2.3")
+    (version "0.2.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "workflows" version))
        (sha256
         (base32
-         "0bca4s49qabam4ny8vckxcghj3z0xfhwfhs5h1136kihrr5pm6mw"))))
+         "1sxrgza922p137z41jcj2iwk19lxzwh6kp4kz7h9kw0b8rvfqwab"))))
     (properties `((upstream-name . "workflows")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cli" ,r-cli)
-       ("r-ellipsis" ,r-ellipsis)
-       ("r-generics" ,r-generics)
-       ("r-glue" ,r-glue)
-       ("r-hardhat" ,r-hardhat)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-parsnip" ,r-parsnip)
-       ("r-rlang" ,r-rlang)
-       ("r-tidyselect" ,r-tidyselect)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-cli
+           r-ellipsis
+           r-generics
+           r-glue
+           r-hardhat
+           r-lifecycle
+           r-parsnip
+           r-rlang
+           r-tidyselect
+           r-vctrs))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/tidymodels/workflows")
     (synopsis "Modeling workflows")
     (description
@@ -27435,9 +26895,7 @@ workflow.  The advantages are:
     (properties `((upstream-name . "lobstr")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-crayon" ,r-crayon)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rlang" ,r-rlang)))
+     (list r-crayon r-rcpp r-rlang))
     (home-page "https://github.com/r-lib/lobstr")
     (synopsis "Visualize R data structures with trees")
     (description
@@ -27462,8 +26920,7 @@ object sizes.")
     (properties `((upstream-name . "GPfit")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)
-       ("r-lhs" ,r-lhs)))
+     (list r-lattice r-lhs))
     (home-page "https://cran.r-project.org/web/packages/GPfit/")
     (synopsis "Gaussian Processes modeling")
     (description
@@ -27485,14 +26942,14 @@ object sizes.")
     (properties `((upstream-name . "yardstick")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-generics" ,r-generics)
-       ("r-proc" ,r-proc)
-       ("r-rlang" ,r-rlang)
-       ("r-tidyselect" ,r-tidyselect)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-dplyr
+           r-generics
+           r-proc
+           r-rlang
+           r-tidyselect
+           r-vctrs))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/tidymodels/yardstick")
     (synopsis "Tidy characterizations of model performance")
     (description
@@ -27514,7 +26971,7 @@ and regression metrics (e.g., RMSE).")
          "0s0acddc5h14245hi1faycxp0fyvw6nlgaz2df7da4fpyd2f638f"))))
     (properties `((upstream-name . "warp")))
     (build-system r-build-system)
-    (native-inputs `(("r-knitr" ,r-knitr)))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/DavisVaughan/warp")
     (synopsis "Group dates")
     (description
@@ -27540,12 +26997,8 @@ observations.")
     (properties `((upstream-name . "slider")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ellipsis" ,r-ellipsis)
-       ("r-glue" ,r-glue)
-       ("r-rlang" ,r-rlang)
-       ("r-vctrs" ,r-vctrs)
-       ("r-warp" ,r-warp)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-ellipsis r-glue r-rlang r-vctrs r-warp))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/DavisVaughan/slider")
     (synopsis "Sliding window functions")
     (description
@@ -27558,31 +27011,31 @@ sliding windows are to be created.")
 (define-public r-rsample
   (package
     (name "r-rsample")
-    (version "0.1.0")
+    (version "0.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rsample" version))
        (sha256
         (base32
-         "00w8r0p499fm8cyw297gznr83mbgy9a3znzpbgj0zq9dry1a266b"))))
+         "01xwhj4zfvxbv9cjb6mbz3aphxqc3cnjjx1xy2yx2wd94fbka42z"))))
     (properties `((upstream-name . "rsample")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-ellipsis" ,r-ellipsis)
-       ("r-furrr" ,r-furrr)
-       ("r-generics" ,r-generics)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-slider" ,r-slider)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-tidyselect" ,r-tidyselect)
-       ("r-vctrs" ,r-vctrs)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-dplyr
+           r-ellipsis
+           r-furrr
+           r-generics
+           r-lifecycle
+           r-purrr
+           r-rlang
+           r-slider
+           r-tibble
+           r-tidyr
+           r-tidyselect
+           r-vctrs))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://rsample.tidymodels.org")
     (synopsis "General resampling infrastructure")
     (description
@@ -27613,27 +27066,27 @@ Design} (SFD) and to test their quality.")
 (define-public r-dials
   (package
     (name "r-dials")
-    (version "0.0.9")
+    (version "0.0.10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "dials" version))
        (sha256
         (base32
-         "0g9wj2py4wz703rh4p7hk8qxqnkm7zyrypv4qz4vaqziazjsmxks"))))
+         "1vhqcfwgic01pkw0i3000fvqq9yxfzsv26c0psfjhxkkdcz8h2px"))))
     (properties `((upstream-name . "dials")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dicedesign" ,r-dicedesign)
-       ("r-dplyr" ,r-dplyr)
-       ("r-glue" ,r-glue)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)
-       ("r-tibble" ,r-tibble)
-       ("r-vctrs" ,r-vctrs)
-       ("r-withr" ,r-withr)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-dicedesign
+           r-dplyr
+           r-glue
+           r-purrr
+           r-rlang
+           r-scales
+           r-tibble
+           r-vctrs
+           r-withr))
+    (native-inputs (list r-knitr))
     (home-page "https://dials.tidymodels.org/")
     (synopsis "Tools for creating tuning parameter values")
     (description
@@ -27656,27 +27109,27 @@ for creating, simulating, or validating values for such parameters.")
     (properties `((upstream-name . "tune")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cli" ,r-cli)
-       ("r-dials" ,r-dials)
-       ("r-dplyr" ,r-dplyr)
-       ("r-foreach" ,r-foreach)
-       ("r-generics" ,r-generics)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-glue" ,r-glue)
-       ("r-gpfit" ,r-gpfit)
-       ("r-hardhat" ,r-hardhat)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-parsnip" ,r-parsnip)
-       ("r-purrr" ,r-purrr)
-       ("r-recipes" ,r-recipes)
-       ("r-rlang" ,r-rlang)
-       ("r-rsample" ,r-rsample)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-vctrs" ,r-vctrs)
-       ("r-withr" ,r-withr)
-       ("r-workflows" ,r-workflows)
-       ("r-yardstick" ,r-yardstick)))
+     (list r-cli
+           r-dials
+           r-dplyr
+           r-foreach
+           r-generics
+           r-ggplot2
+           r-glue
+           r-gpfit
+           r-hardhat
+           r-lifecycle
+           r-parsnip
+           r-purrr
+           r-recipes
+           r-rlang
+           r-rsample
+           r-tibble
+           r-tidyr
+           r-vctrs
+           r-withr
+           r-workflows
+           r-yardstick))
     (home-page "https://github.com/tidymodels/tune")
     (synopsis "Tidy tuning tools")
     (description
@@ -27700,24 +27153,24 @@ methods, and post-processing steps.")
     (properties `((upstream-name . "workflowsets")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cli" ,r-cli)
-       ("r-dplyr" ,r-dplyr)
-       ("r-hardhat" ,r-hardhat)
-       ("r-generics" ,r-generics)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-prettyunits" ,r-prettyunits)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-rsample" ,r-rsample)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-tune" ,r-tune)
-       ("r-vctrs" ,r-vctrs)
-       ("r-withr" ,r-withr)
-       ("r-workflows" ,r-workflows)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-cli
+           r-dplyr
+           r-hardhat
+           r-generics
+           r-ggplot2
+           r-lifecycle
+           r-prettyunits
+           r-purrr
+           r-rlang
+           r-rsample
+           r-tibble
+           r-tidyr
+           r-tune
+           r-vctrs
+           r-withr
+           r-workflows))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/tidymodels/workflowsets")
     (synopsis "Create a collection of tidymodels workflows")
     (description
@@ -27742,20 +27195,20 @@ results.")
     (properties `((upstream-name . "tidyposterior")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-generics" ,r-generics)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-rsample" ,r-rsample)
-       ("r-rstanarm" ,r-rstanarm)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-tune" ,r-tune)
-       ("r-vctrs" ,r-vctrs)
-       ("r-workflowsets" ,r-workflowsets)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-dplyr
+           r-generics
+           r-ggplot2
+           r-purrr
+           r-rlang
+           r-rsample
+           r-rstanarm
+           r-tibble
+           r-tidyr
+           r-tune
+           r-vctrs
+           r-workflowsets))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://tidyposterior.tidymodels.org")
     (synopsis "Bayesian analysis to compare models using resampling statistics")
     (description
@@ -27780,16 +27233,16 @@ models without involving a test set.")
     (properties `((upstream-name . "tidypredict")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-generics" ,r-generics)
-       ("r-knitr" ,r-knitr)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-dplyr
+           r-generics
+           r-knitr
+           r-purrr
+           r-rlang
+           r-stringr
+           r-tibble
+           r-tidyr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://tidypredict.tidymodels.org")
     (synopsis "Run predictions inside the database")
     (description
@@ -27837,11 +27290,9 @@ and \"Persuasion\".")
     (properties `((upstream-name . "tokenizers")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-snowballc" ,r-snowballc)
-       ("r-stringi" ,r-stringi)))
+     (list r-rcpp r-snowballc r-stringi))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://lincolnmullen.com/software/tokenizers/")
     (synopsis "Fast, consistent tokenization of natural language text")
     (description
@@ -27869,10 +27320,9 @@ consistent interface, and the package is built on the @code{stringi} and
     (properties `((upstream-name . "hunspell")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-digest" ,r-digest)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-digest r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/ropensci/hunspell#readme")
     (synopsis "High-performance stemmer, tokenizer, and spell checker")
     (description
@@ -27893,31 +27343,31 @@ vignettes in all common formats.")
 (define-public r-tidytext
   (package
     (name "r-tidytext")
-    (version "0.3.1")
+    (version "0.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tidytext" version))
        (sha256
         (base32
-         "182gad5pzz6zvhbla3d496sxwiszc1qz8kzzkksaacwpsrc61f9h"))))
+         "0as7lscjl6ywk85almmb4f71vxmgkfds46g52ryggkg2isksvq3g"))))
     (properties `((upstream-name . "tidytext")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-generics" ,r-generics)
-       ("r-hunspell" ,r-hunspell)
-       ("r-janeaustenr" ,r-janeaustenr)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-matrix" ,r-matrix)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)
-       ("r-tokenizers" ,r-tokenizers)
-       ("r-vctrs" ,r-vctrs)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-dplyr
+           r-generics
+           r-hunspell
+           r-janeaustenr
+           r-lifecycle
+           r-matrix
+           r-purrr
+           r-rlang
+           r-stringr
+           r-tibble
+           r-tokenizers
+           r-vctrs))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/juliasilge/tidytext")
     (synopsis "Text mining using dplyr, ggplot2, and other Tidy tools")
     (description
@@ -27939,21 +27389,21 @@ analysis using @code{dplyr}, @code{ggplot2}, and other Tidy tools.")
     (properties `((upstream-name . "parsnip")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-generics" ,r-generics)
-       ("r-globals" ,r-globals)
-       ("r-glue" ,r-glue)
-       ("r-hardhat" ,r-hardhat)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-magrittr" ,r-magrittr)
-       ("r-prettyunits" ,r-prettyunits)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-vctrs" ,r-vctrs)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-dplyr
+           r-generics
+           r-globals
+           r-glue
+           r-hardhat
+           r-lifecycle
+           r-magrittr
+           r-prettyunits
+           r-purrr
+           r-rlang
+           r-tibble
+           r-tidyr
+           r-vctrs))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://parsnip.tidymodels.org")
     (synopsis "Common API to modeling and analysis functions")
     (description
@@ -27976,19 +27426,19 @@ functions or computational engines (e.g. R, Spark, Stan, etc).")
     (properties `((upstream-name . "infer")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-broom" ,r-broom)
-       ("r-dplyr" ,r-dplyr)
-       ("r-generics" ,r-generics)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-glue" ,r-glue)
-       ("r-magrittr" ,r-magrittr)
-       ("r-patchwork" ,r-patchwork)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)))
+     (list r-broom
+           r-dplyr
+           r-generics
+           r-ggplot2
+           r-glue
+           r-magrittr
+           r-patchwork
+           r-purrr
+           r-rlang
+           r-tibble
+           r-tidyr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/tidymodels/infer")
     (synopsis "Tidy statistical inference")
     (description
@@ -28030,8 +27480,7 @@ model-related packages.")
     (properties `((upstream-name . "conflicted")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-memoise" ,r-memoise)
-       ("r-rlang" ,r-rlang)))
+     (list r-memoise r-rlang))
     (home-page "https://github.com/r-lib/conflicted")
     (synopsis "Alternative conflict resolution strategy")
     (description
@@ -28046,42 +27495,40 @@ use.")
 (define-public r-tidymodels
   (package
     (name "r-tidymodels")
-    (version "0.1.3")
+    (version "0.1.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tidymodels" version))
        (sha256
         (base32
-         "18vz0xsgxrfzcfxpvilhj1w0f4v4lx5ws37nwmy40lhv3v05nxn8"))))
+         "18krycdn0h1i8swrq6bgj8qnb200rr0pqhr6maq3h1jc66x0y7nd"))))
     (properties `((upstream-name . "tidymodels")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-broom" ,r-broom)
-       ("r-cli" ,r-cli)
-       ("r-conflicted" ,r-conflicted)
-       ("r-dials" ,r-dials)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-infer" ,r-infer)
-       ("r-modeldata" ,r-modeldata)
-       ("r-parsnip" ,r-parsnip)
-       ("r-purrr" ,r-purrr)
-       ("r-recipes" ,r-recipes)
-       ("r-rlang" ,r-rlang)
-       ("r-rsample" ,r-rsample)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-tune" ,r-tune)
-       ("r-workflows" ,r-workflows)
-       ("r-workflowsets" ,r-workflowsets)
-       ("r-yardstick" ,r-yardstick)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("pandoc" ,pandoc)
-       ("pandoc-citeproc" ,pandoc-citeproc))) ; for vignettes
+     (list r-broom
+           r-cli
+           r-conflicted
+           r-dials
+           r-dplyr
+           r-ggplot2
+           r-hardhat
+           r-infer
+           r-modeldata
+           r-parsnip
+           r-purrr
+           r-recipes
+           r-rlang
+           r-rsample
+           r-rstudioapi
+           r-tibble
+           r-tidyr
+           r-tune
+           r-workflows
+           r-workflowsets
+           r-yardstick))
+    (native-inputs
+     (list r-knitr r-rmarkdown pandoc))
     (home-page "https://github.com/tidymodels/tidymodels")
     (synopsis "Tidy collection for modeling and statistical analysis")
     (description
@@ -28104,7 +27551,7 @@ data structures of the tidyverse.")
     (properties `((upstream-name . "lsa")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-snowballc" ,r-snowballc)))
+     (list r-snowballc))
     (home-page "https://cran.r-project.org/package=lsa")
     (synopsis "Latent semantic analysis")
     (description
@@ -28157,8 +27604,7 @@ package also provides functions to visualize the observed data and the MLE.")
     (properties `((upstream-name . "metafor")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)
-       ("r-nlme" ,r-nlme)))
+     (list r-matrix r-nlme))
     (home-page "https://cran.r-project.org/web/packages/metafor/")
     (synopsis "Meta-analysis package for R")
     (description
@@ -28194,11 +27640,7 @@ phylogenetic relatedness) can also be conducted.")
     (properties `((upstream-name . "altmeta")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-coda" ,r-coda)
-       ("r-lme4" ,r-lme4)
-       ("r-matrix" ,r-matrix)
-       ("r-metafor" ,r-metafor)
-       ("r-rjags" ,r-rjags)))
+     (list r-coda r-lme4 r-matrix r-metafor r-rjags))
     (home-page "https://cran.r-project.org/web/packages/altmeta/")
     (synopsis "Alternative meta-analysis methods")
     (description
@@ -28222,14 +27664,14 @@ including:
 (define-public r-perm
   (package
     (name "r-perm")
-    (version "1.0-0.0")
+    (version "1.0-0.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "perm" version))
        (sha256
         (base32
-         "0075awl66ynv10vypg63fcxk33qzvxddrp8mi4w08ysvimcyxijk"))))
+         "182ac1y91yzb34zwdcmx5fdfr5z0cha0gx2bgk36gwxhgfc994kj"))))
     (properties `((upstream-name . "perm")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/perm/")
@@ -28245,14 +27687,14 @@ covariate (usually group indicator) and the scores.")
 (define-public r-qtl
   (package
     (name "r-qtl")
-    (version "1.48-1")
+    (version "1.50")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "qtl" version))
        (sha256
         (base32
-         "098mgmfj8ndi8yipr9b3f6gbbh78cgp9j7y561nlnhrnyc8bsih9"))))
+         "1mcy9wlp5lj5f3z4mf3n5li7x32vj67rmhjnzsp8fhfw0ipnaf1d"))))
     (build-system r-build-system)
     (home-page "https://rqtl.org/")
     (synopsis "R package for analyzing QTL experiments in genetics")
@@ -28268,20 +27710,20 @@ genome scans.")
 (define-public r-qtl2
   (package
     (name "r-qtl2")
-    (version "0.24")
+    (version "0.28")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "qtl2" version))
               (sha256
-               (base32 "1558khh0zkwm0rdk87krv9836krvwv5h7ymlz9bsrgcvypyr9186"))))
+               (base32 "0ppc6dzlq77mppxc6bczai9gi40jrbxd1466y2cn2s8a4ah1jg9y"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-yaml" ,r-yaml)))
+     (list r-data-table
+           r-jsonlite
+           r-rcpp
+           r-rcppeigen
+           r-rsqlite
+           r-yaml))
     (home-page "https://kbroman.org/qtl2/")
     (synopsis "Quantitative Trait Locus Mapping in Experimental Crosses")
     (description
@@ -28294,17 +27736,17 @@ designs.  Broman et al. (2018) <doi:10.1534/genetics.118.301595>.")
 (define-public r-seqminer
   (package
     (name "r-seqminer")
-    (version "8.0")
+    (version "8.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "seqminer" version))
        (sha256
         (base32
-         "00jzj8mwb0zaiwlifd41b26mrq9mzigj18nc29dydi0r42hxg16i"))))
+         "097313x72jr2q6dp8ma33w8kyp3gfw71snf1qx2maxbwwnysk085"))))
     (build-system r-build-system)
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "http://seqminer.genomic.codes")
     (synopsis "Read nucleotide sequence data (VCF, BCF, and METAL formats)")
     (description
@@ -28327,7 +27769,7 @@ data (variant call format, e.g. VCF or BCF) or meta-analysis results in R.")
     (properties `((upstream-name . "MALDIquant")))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/MALDIquant")
     (synopsis "Quantitative analysis of mass spectrometry data")
     (description
@@ -28355,8 +27797,7 @@ as allowing spectra with different resolutions.")
     (properties `((upstream-name . "scattermore")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-scales" ,r-scales)))
+     (list r-ggplot2 r-scales))
     (home-page "https://github.com/exaexa/scattermore")
     (synopsis "Scatterplots with more points")
     (description
@@ -28367,21 +27808,18 @@ data to rasters.  It speeds up plotting of data with millions of points.")
 (define-public r-seuratobject
   (package
     (name "r-seuratobject")
-    (version "4.0.2")
+    (version "4.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "SeuratObject" version))
        (sha256
         (base32
-         "076bd6xmpnspnz7raw03mfgknnygx79sj3c9q6yhpanc46i9gvk4"))))
+         "06gch6416hmwpfxa7bidw5izfp4yvkdka7mvxp6grmldnj5iqm6g"))))
     (properties `((upstream-name . "SeuratObject")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)
-       ("r-rlang" ,r-rlang)))
+     (list r-matrix r-rcpp r-rcppeigen r-rlang))
     (home-page "https://satijalab.org/seurat")
     (synopsis "Data structures for single cell data")
     (description
@@ -28395,59 +27833,59 @@ other R users.")
 (define-public r-seurat
   (package
     (name "r-seurat")
-    (version "4.0.4")
+    (version "4.0.5")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "Seurat" version))
               (sha256
                (base32
-                "1pa2v29mx39swblzwzqc7rpql2rizhi2nj426r1i63wyla6lcxc0"))))
+                "18svlpfbgs5vdzw2jyg99kj0jacag6dwwhjdg1zpmrh0fm0praxg"))))
     (properties `((upstream-name . "Seurat")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cluster" ,r-cluster)
-       ("r-cowplot" ,r-cowplot)
-       ("r-fitdistrplus" ,r-fitdistrplus)
-       ("r-future" ,r-future)
-       ("r-future-apply" ,r-future-apply)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-ggridges" ,r-ggridges)
-       ("r-httr" ,r-httr)
-       ("r-ica" ,r-ica)
-       ("r-igraph" ,r-igraph)
-       ("r-irlba" ,r-irlba)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-kernsmooth" ,r-kernsmooth)
-       ("r-leiden" ,r-leiden)
-       ("r-lmtest" ,r-lmtest)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-matrixstats" ,r-matrixstats)
-       ("r-miniui" ,r-miniui)
-       ("r-patchwork" ,r-patchwork)
-       ("r-pbapply" ,r-pbapply)
-       ("r-plotly" ,r-plotly)
-       ("r-png" ,r-png)
-       ("r-rann" ,r-rann)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppannoy" ,r-rcppannoy)
-       ("r-rcppeigen" ,r-rcppeigen)
-       ("r-rcppprogress" ,r-rcppprogress)
-       ("r-reticulate" ,r-reticulate)
-       ("r-rlang" ,r-rlang)
-       ("r-rocr" ,r-rocr)
-       ("r-rtsne" ,r-rtsne)
-       ("r-scales" ,r-scales)
-       ("r-scattermore" ,r-scattermore)
-       ("r-sctransform" ,r-sctransform)
-       ("r-seuratobject" ,r-seuratobject)
-       ("r-shiny" ,r-shiny)
-       ("r-spatstat-core" ,r-spatstat-core)
-       ("r-spatstat-geom" ,r-spatstat-geom)
-       ("r-tibble" ,r-tibble)
-       ("r-uwot" ,r-uwot)))
+     (list r-cluster
+           r-cowplot
+           r-fitdistrplus
+           r-future
+           r-future-apply
+           r-ggplot2
+           r-ggrepel
+           r-ggridges
+           r-httr
+           r-ica
+           r-igraph
+           r-irlba
+           r-jsonlite
+           r-kernsmooth
+           r-leiden
+           r-lmtest
+           r-mass
+           r-matrix
+           r-matrixstats
+           r-miniui
+           r-patchwork
+           r-pbapply
+           r-plotly
+           r-png
+           r-rann
+           r-rcolorbrewer
+           r-rcpp
+           r-rcppannoy
+           r-rcppeigen
+           r-rcppprogress
+           r-reticulate
+           r-rlang
+           r-rocr
+           r-rtsne
+           r-scales
+           r-scattermore
+           r-sctransform
+           r-seuratobject
+           r-shiny
+           r-spatstat-core
+           r-spatstat-geom
+           r-tibble
+           r-uwot))
     (home-page "http://www.satijalab.org/seurat")
     (synopsis "Seurat is an R toolkit for single cell genomics")
     (description
@@ -28459,28 +27897,106 @@ algorithms; density clustering, hierarchical clustering, k-means, and the
 discovery of differentially expressed genes and markers.")
     (license license:gpl3)))
 
+(define-public r-seuratdisk
+  (let ((commit "163f1aade5bac38ed1e9e9c912283a7e74781610")
+        (revision "1"))
+    (package
+      (name "r-seuratdisk")
+      (version (git-version "0.0.0.9019" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/mojaveazure/seurat-disk")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1d1v8qi6kknzy5fj6bl8akwy74h5h143i00lyidsnqjbwp9n4qnw"))))
+      (properties `((upstream-name . "SeuratDisk")))
+      (build-system r-build-system)
+      (propagated-inputs
+       (list r-cli
+             r-crayon
+             r-hdf5r
+             r-matrix
+             r-r6
+             r-rlang
+             r-seurat
+             r-seuratobject
+             r-stringi
+             r-withr))
+      (native-inputs
+       (list r-knitr))
+      (home-page "https://github.com/mojaveazure/seurat-disk")
+      (synopsis "Interfaces for HDF5-based single cell file formats")
+      (description
+       "The h5Seurat file format is specifically designed for the storage and
+analysis of multi-modal single-cell and spatially-resolved expression
+experiments, for example, from CITE-seq or 10X Visium technologies.  It holds
+all molecular information and associated metadata, including (for example)
+nearest-neighbor graphs, dimensional reduction information, spatial
+coordinates and image data, and cluster labels.  This package also supports
+rapid and on-disk conversion between h5Seurat and AnnData objects, with the
+goal of enhancing interoperability between Seurat and Scanpy.")
+      (license license:gpl3))))
+
+(define-public r-seuratdata
+  (let ((commit "b59556b24d7d6728a5744c9c715dd5f7f32ed7a5")
+        (revision "1"))
+    (package
+      (name "r-seuratdata")
+      (version (git-version "0.2.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/satijalab/seurat-data")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1xfdmdmgn4r0z6w4cxa98ic6xk8i6qz054r215dvqbjs1vydsbf9"))))
+      (properties `((upstream-name . "SeuratData")))
+      (build-system r-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           ;; When there is no HOME directory, this package will fail to load
+           ;; the included list of packages.
+           (add-after 'unpack 'set-HOME
+             (lambda _ (setenv "HOME" "/tmp"))))))
+      (propagated-inputs
+       (list r-cli r-crayon r-rappdirs))
+      (home-page "https://github.com/satijalab/seurat-data")
+      (synopsis "Install and manage Seurat datasets")
+      (description
+       "Single cell RNA sequencing datasets can be large, consisting of
+matrices that contain expression data for several thousand features across
+several thousand cells.  This package is designed to easily install, manage,
+and learn about various single-cell datasets, provided Seurat objects and
+distributed as independent packages.")
+      (license license:gpl3))))
+
 (define-public r-phangorn
   (package
     (name "r-phangorn")
-    (version "2.7.1")
+    (version "2.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "phangorn" version))
        (sha256
         (base32
-         "160kks4bg4iwy8g234g6aiiqbvz7ki5k9csyax3kjv7ia5wddafq"))))
+         "1pg5lfc5m4ccphswbfbihj91ppmqhf4084kbjlmfsrqxylsyy8ch"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ape" ,r-ape)
-       ("r-fastmatch" ,r-fastmatch)
-       ("r-igraph" ,r-igraph)
-       ("r-magrittr" ,r-magrittr)
-       ("r-matrix" ,r-matrix)
-       ("r-quadprog" ,r-quadprog)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-ape
+           r-fastmatch
+           r-igraph
+           r-matrix
+           r-quadprog
+           r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/KlausVigo/phangorn")
     (synopsis "Phylogenetic analysis in R")
     (description
@@ -28502,13 +28018,10 @@ Maximum Parsimony, distance methods and Hadamard conjugation.")
           "0rzrk7xsn4gy271pbcw3azndhx0c06bmsgrg6libjmlfnmq6j8sc"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
-    (inputs `(("fftw" ,fftw) ("gsl" ,gsl)))
+     (list gfortran))
+    (inputs (list fftw gsl))
     (propagated-inputs
-     `(("r-ape" ,r-ape)
-       ("r-desolve" ,r-desolve)
-       ("r-rcpp" ,r-rcpp)
-       ("r-subplex" ,r-subplex)))
+     (list r-ape r-desolve r-rcpp r-subplex))
     (home-page "https://www.zoology.ubc.ca/prog/diversitree")
     (synopsis "Comparative 'phylogenetic' analyses of diversification")
     (description "This package contains a number of comparative \"phylogenetic\"
@@ -28534,9 +28047,9 @@ rate speciation and extinction.")
     (properties `((upstream-name . "calculus")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/eguidotti/calculus")
     (synopsis "High dimensional numerical and symbolic calculus")
     (description
@@ -28553,18 +28066,18 @@ parabolic or user defined by custom scale factors.")
 (define-public r-decon
   (package
     (name "r-decon")
-    (version "1.2-4")
+    (version "1.3-4")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "decon" version))
         (sha256
           (base32
-            "1v4l0xq29rm8mks354g40g9jxn0didzlxg3g7z08m0gvj29zdj7s"))))
+            "036cv56wf42q2p3d5h15hbrp5rc29xxy20qwv4k1qzhkq6hmw0qs"))))
     (properties `((upstream-name . "decon")))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page
       "https://cran.r-project.org/web/packages/decon/")
     (synopsis "Deconvolution Estimation in Measurement Error Models")
@@ -28623,11 +28136,7 @@ kernel estimators.")
     (properties `((upstream-name . "lpme")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-decon" ,r-decon)
-        ("r-flexmix" ,r-flexmix)
-        ("r-locpol" ,r-locpol)
-        ("r-rcpp" ,r-rcpp)
-        ("r-rcpparmadillo" ,r-rcpparmadillo)))
+      (list r-decon r-flexmix r-locpol r-rcpp r-rcpparmadillo))
     (home-page
       "https://cran.r-project.org/web/packages/lpme/")
     (synopsis "Nonparametric Estimation of Measurement Error Models")
@@ -28652,8 +28161,7 @@ also provided for each method.")
     (properties `((upstream-name . "aws.signature")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-digest" ,r-digest)))
+     (list r-base64enc r-digest))
     (home-page "https://github.com/cloudyr/aws.signature")
     (synopsis "Amazon Web Services Request Signatures")
     (description
@@ -28677,12 +28185,12 @@ use on EC2 instances, the package 'aws.ec2metadata' is suggested.")
     (properties `((upstream-name . "aws.s3")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-aws-signature" ,r-aws-signature)
-       ("r-base64enc" ,r-base64enc)
-       ("r-curl" ,r-curl)
-       ("r-digest" ,r-digest)
-       ("r-httr" ,r-httr)
-       ("r-xml2" ,r-xml2)))
+     (list r-aws-signature
+           r-base64enc
+           r-curl
+           r-digest
+           r-httr
+           r-xml2))
     (home-page "https://github.com/cloudyr/aws.s3")
     (synopsis "AWS S3 Client Package")
     (description
@@ -28693,18 +28201,18 @@ Services (AWS) Simple Storage Service (S3) REST API.")
 (define-public r-lgr
   (package
     (name "r-lgr")
-    (version "0.4.2")
+    (version "0.4.3")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "lgr" version))
               (sha256
                (base32
-                "0k4kacjk7swm3gmdpha1rg44xb29vzvhvx48jhpb78glj5c9phyr"))))
+                "18s92qyakhvp336kk2777ydypwfrfwfz6a1gqkq812zy3kcb4mcc"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-r6" ,r-r6)))
+     (list r-r6))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://s-fleck.github.io/lgr/")
     (synopsis "Fully featured logging framework")
     (description "This package offers a flexible, feature-rich yet
@@ -28714,20 +28222,39 @@ logging to plaintext, JSON, (rotating) files, memory buffers, and databases, as
 well as email and push notifications.")
     (license license:expat)))
 
+(define-public r-mhg
+  (package
+    (name "r-mhg")
+    (version "1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "mHG" version))
+       (sha256
+        (base32
+         "1rz5ncrvvv9h9grls15apa63v2nh9j87fmp4mwjjil37jx6a5zki"))))
+    (properties `((upstream-name . "mHG")))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/package=mHG")
+    (synopsis "Minimum-hypergeometric test")
+    (description
+     "This package runs a minimum-hypergeometric (mHG) test as described in
+\"Discovering Motifs in Ranked Lists of DNA Sequences\" by Eran Eden.")
+    (license license:gpl2)))
+
 (define-public r-mlr3measures
   (package
     (name "r-mlr3measures")
-    (version "0.3.1")
+    (version "0.4.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "mlr3measures" version))
               (sha256
                (base32
-                "18jk4kdj9771r16smz7xhmmiilcdg1qlavln5hrpvkx780zh3hj6"))))
+                "1qlqfan5akz42zwkcz3ncln6rd9c302dy4cyp7nx0jcafr5i459f"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-checkmate" ,r-checkmate)
-       ("r-prroc" ,r-prroc)))
+     (list r-checkmate r-prroc))
     (home-page "https://mlr3measures.mlr-org.com/")
     (synopsis "Performance measures for mlr3")
     (description "This package implements multiple performance measures for
@@ -28740,20 +28267,16 @@ are.")
 (define-public r-mlr3misc
   (package
     (name "r-mlr3misc")
-    (version "0.9.3")
+    (version "0.9.5")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "mlr3misc" version))
               (sha256
                (base32
-                "0i3pngdqasajlwl9cmpqhrx0l6l1gi94kpiz61bm4c9dwkzjwn04"))))
+                "1ax1mvnm8xjcskq12x63jkal766v1zwilpgrkdv6yawd7yrww4q9"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-backports" ,r-backports)
-       ("r-checkmate" ,r-checkmate)
-       ("r-data-table" ,r-data-table)
-       ("r-digest" ,r-digest)
-       ("r-r6" ,r-r6)))
+     (list r-backports r-checkmate r-data-table r-digest r-r6))
     (home-page "https://mlr3misc.mlr-org.com/")
     (synopsis "Helper functions for mlr3")
     (description "@code{mlr3misc} provides frequently used helper functions
@@ -28775,11 +28298,7 @@ package also supersedes the package @code{BBmisc}.")
                 "1difp0bzsfxcmbm1snahh3i6417k1a2w4mnjx65p20n2yiclmrgs"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-backports" ,r-backports)
-       ("r-checkmate" ,r-checkmate)
-       ("r-data-table" ,r-data-table)
-       ("r-mlr3misc" ,r-mlr3misc)
-       ("r-r6" ,r-r6)))
+     (list r-backports r-checkmate r-data-table r-mlr3misc r-r6))
     (home-page "https://paradox.mlr-org.com/")
     (synopsis "Define and work with parameter spaces for complex algorithms")
     (description "With this package it is possible to define parameter spaces,
@@ -28791,29 +28310,29 @@ implemented as @code{R6} classes.")
 (define-public r-mlr3
   (package
     (name "r-mlr3")
-    (version "0.12.0")
+    (version "0.13.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "mlr3" version))
               (sha256
                (base32
-                "0nimwczsgrj29r9qrlz32qc3fkj02369zql7jhkrn3lk3mfy5zmz"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-r6" ,r-r6)
-       ("r-backports" ,r-backports)
-       ("r-checkmate" ,r-checkmate)
-       ("r-data-table" ,r-data-table)
-       ("r-future" ,r-future)
-       ("r-future-apply" ,r-future-apply)
-       ("r-lgr" ,r-lgr)
-       ("r-mlbench" ,r-mlbench)
-       ("r-mlr3measures" ,r-mlr3measures)
-       ("r-mlr3misc" ,r-mlr3misc)
-       ("r-palmerpenguins" ,r-palmerpenguins)
-       ("r-paradox" ,r-paradox)
-       ("r-parallelly" ,r-parallelly)
-       ("r-uuid" ,r-uuid)))
+                "1729wbdp62cjjk775qxrahyskp191s9qqnmqbxncfjrpdxphxk34"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-r6
+           r-backports
+           r-checkmate
+           r-data-table
+           r-future
+           r-future-apply
+           r-lgr
+           r-mlbench
+           r-mlr3measures
+           r-mlr3misc
+           r-palmerpenguins
+           r-paradox
+           r-parallelly
+           r-uuid))
     (home-page "https://mlr3.mlr-org.com/")
     (synopsis "Machine Learning in R - Next Generation")
     (description "@code{mlr3} enables efficient, object-oriented programming
@@ -28827,21 +28346,21 @@ computational operations, add-on packages provide additional functionality.")
 (define-public r-mlr3learners
   (package
     (name "r-mlr3learners")
-    (version "0.5.0")
+    (version "0.5.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "mlr3learners" version))
               (sha256
                (base32
-                "1gkbbn5ah2iv4pv5q2jf4lrqkga744d4y9jlyhyjqf0x75y9wkg2"))))
+                "1yc3mrk1b9h1k342wnw7sm4zmcw7w31l5ybh558g88f5hmibdl98"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-checkmate" ,r-checkmate)
-       ("r-data-table" ,r-data-table)
-       ("r-mlr3" ,r-mlr3)
-       ("r-mlr3misc" ,r-mlr3misc)
-       ("r-paradox" ,r-paradox)
-       ("r-r6" ,r-r6)))
+     (list r-checkmate
+           r-data-table
+           r-mlr3
+           r-mlr3misc
+           r-paradox
+           r-r6))
     (home-page "https://mlr3learners.mlr-org.com/")
     (synopsis "Recommended Learners for @code{mlr3}")
     (description "@code{mlr3learners} extends @code{mlr3} and @code{mlr3proba}
@@ -28854,25 +28373,25 @@ vector machines, and gradient boosting.")
 (define-public r-bbotk
   (package
     (name "r-bbotk")
-    (version "0.3.2")
+    (version "0.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bbotk" version))
        (sha256
         (base32
-         "0bd9nxfgsj4ixpgky1mj6knb8l8nivvxpqpyw8vgpkj0za7gp4gr"))))
+         "09cw6z397laszsg5wsgpjh7jda74amqrcl2p25bgjg33ina2nvg7"))))
     (properties `((upstream-name . "bbotk")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-checkmate" ,r-checkmate)
-       ("r-data-table" ,r-data-table)
-       ("r-lgr" ,r-lgr)
-       ("r-mlr3misc" ,r-mlr3misc)
-       ("r-paradox" ,r-paradox)
-       ("r-r6" ,r-r6)))
+     (list r-checkmate
+           r-data-table
+           r-lgr
+           r-mlr3misc
+           r-paradox
+           r-r6))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://bbotk.mlr-org.com")
     (synopsis "Black-Box Optimization Toolkit")
     (description "This package provides a common framework for optimization of
@@ -28884,23 +28403,24 @@ annealing.")
 (define-public r-mlr3tuning
   (package
     (name "r-mlr3tuning")
-    (version "0.8.0")
+    (version "0.9.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "mlr3tuning" version))
               (sha256
                (base32
-                "16rvsf0jf06yvalydbs7zzn2994hvvyfw975ydiyv3wy1qzgr8bv"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-bbotk" ,r-bbotk)
-       ("r-checkmate" ,r-checkmate)
-       ("r-data-table" ,r-data-table)
-       ("r-lgr" ,r-lgr)
-       ("r-mlr3" ,r-mlr3)
-       ("r-mlr3misc" ,r-mlr3misc)
-       ("r-paradox" ,r-paradox)
-       ("r-r6" ,r-r6)))
+                "0i428kdbak81j1wlwmdf9y40hqi63azhyny802ms2z04wl8lwnvs"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-bbotk
+           r-checkmate
+           r-data-table
+           r-digest
+           r-lgr
+           r-mlr3
+           r-mlr3misc
+           r-paradox
+           r-r6))
     (home-page "https://mlr3tuning.mlr-org.com/")
     (synopsis "Tuning for @code{mlr3}")
     (description "@code{mlr3tuning} implements methods for hyperparameter
@@ -28972,8 +28492,7 @@ itself."))))
     (properties `((upstream-name . "fontquiver")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-fontbitstreamvera" ,r-fontbitstreamvera)
-       ("r-fontliberation" ,r-fontliberation)))
+     (list r-fontbitstreamvera r-fontliberation))
     (home-page "https://cran.r-project.org/package=fontquiver")
     (synopsis "Set of installed fonts")
     (description
@@ -29014,7 +28533,7 @@ avoid system fonts to make sure your outputs are reproducible.")
                (copy-recursively (string-append harfbuzz "/include")
                                  "src/target/include")))))))
     (propagated-inputs
-     `(("r-fontquiver" ,r-fontquiver)))
+     (list r-fontquiver))
     ;; This may defeat the purpose of this package as our versions of freetype
     ;; and harfbuzz obviously differ from the tarballs offered by this
     ;; project.  On the other hand, Guix arguably does a better job at
@@ -29046,7 +28565,7 @@ avoid system fonts to make sure your outputs are reproducible.")
 		    "--without-fontconfig"
 		    "--without-glib")))))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://cran.r-project.org/package=freetypeharfbuzz")
     (synopsis "Deterministic computation of text box metrics")
     (description
@@ -29071,17 +28590,16 @@ unit tests of graphics).")
     (properties `((upstream-name . "vdiffr")))
     (build-system r-build-system)
     (inputs
-     `(("libpng" ,libpng)
-       ("zlib" ,zlib)))
-    (propagated-inputs
-     `(("r-cpp11" ,r-cpp11)
-       ("r-diffobj" ,r-diffobj)
-       ("r-glue" ,r-glue)
-       ("r-htmltools" ,r-htmltools)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-rlang" ,r-rlang)
-       ("r-testthat" ,r-testthat)
-       ("r-xml2" ,r-xml2)))
+     (list libpng zlib))
+    (propagated-inputs
+     (list r-cpp11
+           r-diffobj
+           r-glue
+           r-htmltools
+           r-lifecycle
+           r-rlang
+           r-testthat
+           r-xml2))
     (home-page "https://github.com/r-lib/vdiffr")
     (synopsis "Visual regression testing and graphical diffing")
     (description
@@ -29115,28 +28633,28 @@ chunks.")
 (define-public r-clustree
   (package
     (name "r-clustree")
-    (version "0.4.3")
+    (version "0.4.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "clustree" version))
        (sha256
         (base32
-         "0lxydy2f83qqd5dhlp2l546jax759l43b29j6g82079yzg1szwsz"))))
+         "0vwmicajl7c0rmjdmf4f857fii0xrxz25vjkn888svlsikw00qbs"))))
     (properties `((upstream-name . "clustree")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-checkmate" ,r-checkmate)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-ggraph" ,r-ggraph)
-       ("r-ggrepel" ,r-ggrepel)
-       ("r-igraph" ,r-igraph)
-       ("r-rlang" ,r-rlang)
-       ("r-tidygraph" ,r-tidygraph)
-       ("r-viridis" ,r-viridis)))
+     (list r-checkmate
+           r-dplyr
+           r-ggplot2
+           r-ggraph
+           r-ggrepel
+           r-igraph
+           r-rlang
+           r-tidygraph
+           r-viridis))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/lazappi/clustree")
     (synopsis "Visualize clusterings at different resolutions")
     (description
@@ -29150,27 +28668,22 @@ clusterings as resolution increases.")
 (define-public r-textshaping
   (package
     (name "r-textshaping")
-    (version "0.3.5")
+    (version "0.3.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "textshaping" version))
        (sha256
         (base32
-         "06bdc5wxvgv38fnzpyjj9p62ifpfshaangkn96gw05yxn11s46h0"))))
+         "1niaj1dh09rqrg9hrh98ddnc0f2nkyq9iizv24lcwm9gjs3w1ql0"))))
     (properties `((upstream-name . "textshaping")))
     (build-system r-build-system)
     (inputs
-     `(("freetype" ,freetype)
-       ("fribidi" ,fribidi)
-       ("harfbuzz" ,harfbuzz)
-       ("zlib" ,zlib)))
+     (list freetype fribidi harfbuzz zlib))
     (propagated-inputs
-     `(("r-cpp11" ,r-cpp11)
-       ("r-systemfonts" ,r-systemfonts)))
+     (list r-cpp11 r-systemfonts))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://github.com/r-lib/textshaping")
     (synopsis "Bindings to the HarfBuzz and Fribidi libraries for text shaping")
     (description
@@ -29183,27 +28696,22 @@ the font tool-set provided by the @code{systemfonts} package.")
 (define-public r-ragg
   (package
     (name "r-ragg")
-    (version "1.1.3")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ragg" version))
        (sha256
         (base32
-         "0ppypfq1vipwjngmiwdx1sj6x7m41v3dlnbsixdlnrf2nx82kxb2"))))
+         "1wbk7vny8435ii3aak586imd0dgh4ri55kqypx5b10x6ygp32avb"))))
     (properties `((upstream-name . "ragg")))
     (build-system r-build-system)
     (inputs
-     `(("freetype" ,freetype)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libtiff" ,libtiff)
-       ("zlib" ,zlib)))
+     (list freetype libjpeg-turbo libpng libtiff zlib))
     (propagated-inputs
-     `(("r-systemfonts" ,r-systemfonts)
-       ("r-textshaping" ,r-textshaping)))
+     (list r-systemfonts r-textshaping))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://ragg.r-lib.org")
     (synopsis "Graphic devices based on AGG")
     (description
@@ -29216,24 +28724,26 @@ AGG to use as alternative to the raster devices provided through the
 (define-public r-downlit
   (package
     (name "r-downlit")
-    (version "0.2.1")
+    (version "0.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "downlit" version))
        (sha256
         (base32
-         "0z4fz7c9kyd9v72wl3iqs2wxspi975d6b0rgjr9lvg8a18maa9z6"))))
+         "10zvrqdpwavdy97h3q26bqh3k63z61fmc04w9vwsnvmnv8hnh3vl"))))
     (properties `((upstream-name . "downlit")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-brio" ,r-brio)
-       ("r-digest" ,r-digest)
-       ("r-evaluate" ,r-evaluate)
-       ("r-fansi" ,r-fansi)
-       ("r-rlang" ,r-rlang)
-       ("r-vctrs" ,r-vctrs)
-       ("r-yaml" ,r-yaml)))
+     (list r-brio
+           r-desc
+           r-digest
+           r-evaluate
+           r-fansi
+           r-memoise
+           r-rlang
+           r-vctrs
+           r-yaml))
     (home-page "https://downlit.r-lib.org/")
     (synopsis "Syntax highlighting and automatic linking")
     (description
@@ -29257,30 +28767,30 @@ in output to the equivalent HTML.")
          "1k31biyvxkv3xjc1yy3nzb9wfza3vbx97fv17nly5a6vlv7zqbs4"))))
     (properties `((upstream-name . "pkgdown")))
     (build-system r-build-system)
-    (inputs `(("pandoc" ,pandoc)))
-    (propagated-inputs
-     `(("r-callr" ,r-callr)
-       ("r-crayon" ,r-crayon)
-       ("r-desc" ,r-desc)
-       ("r-digest" ,r-digest)
-       ("r-downlit" ,r-downlit)
-       ("r-fs" ,r-fs)
-       ("r-httr" ,r-httr)
-       ("r-magrittr" ,r-magrittr)
-       ("r-memoise" ,r-memoise)
-       ("r-openssl" ,r-openssl)
-       ("r-purrr" ,r-purrr)
-       ("r-ragg" ,r-ragg)
-       ("r-rematch2" ,r-rematch2)
-       ("r-rlang" ,r-rlang)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-tibble" ,r-tibble)
-       ("r-whisker" ,r-whisker)
-       ("r-withr" ,r-withr)
-       ("r-xml2" ,r-xml2)
-       ("r-yaml" ,r-yaml)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+    (inputs (list pandoc))
+    (propagated-inputs
+     (list r-callr
+           r-crayon
+           r-desc
+           r-digest
+           r-downlit
+           r-fs
+           r-httr
+           r-magrittr
+           r-memoise
+           r-openssl
+           r-purrr
+           r-ragg
+           r-rematch2
+           r-rlang
+           r-rmarkdown
+           r-tibble
+           r-whisker
+           r-withr
+           r-xml2
+           r-yaml))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://pkgdown.r-lib.org")
     (synopsis "Make static HTML documentation for an R package")
     (description
@@ -29304,7 +28814,7 @@ package online.")
     (properties `((upstream-name . "prereg")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-rmarkdown" ,r-rmarkdown)))
+      (list r-rmarkdown))
     (home-page "https://github.com/crsh/prereg")
     (synopsis
       "R Markdown Templates to preregister Scientific Studies")
@@ -29327,16 +28837,16 @@ preregistration documents for scientific studies in PDF format.")
     (properties `((upstream-name . "ez")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-car" ,r-car)
-        ("r-ggplot2" ,r-ggplot2)
-        ("r-lme4" ,r-lme4)
-        ("r-mass" ,r-mass)
-        ("r-matrix" ,r-matrix)
-        ("r-mgcv" ,r-mgcv)
-        ("r-plyr" ,r-plyr)
-        ("r-reshape2" ,r-reshape2)
-        ("r-scales" ,r-scales)
-        ("r-stringr" ,r-stringr)))
+      (list r-car
+            r-ggplot2
+            r-lme4
+            r-mass
+            r-matrix
+            r-mgcv
+            r-plyr
+            r-reshape2
+            r-scales
+            r-stringr))
     (home-page "https://github.com/mike-lawrence/ez")
     (synopsis "Easy Analysis and Visualization of Factorial Experiments")
     (description
@@ -29366,7 +28876,7 @@ visualized at any level of the experiment's design.")
             "1xa8q1way3gjadrjh3mv3xr4c6b4h16nd2c6lgl969difplpfz9p"))))
     (properties `((upstream-name . "qdapRegex")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-stringi" ,r-stringi)))
+    (propagated-inputs (list r-stringi))
     (home-page
       "https://trinker.github.com/qdapRegex/")
     (synopsis
@@ -29392,7 +28902,7 @@ percentages, citations, person tags, phone numbers, times, and zip codes.")
             "1mci6x65h94qiz9cwikx2inbrwkykv43zbs8abfbx416zrh2bbn9"))))
     (properties `((upstream-name . "mgsub")))
     (build-system r-build-system)
-    (native-inputs `(("r-knitr" ,r-knitr)))
+    (native-inputs (list r-knitr))
     (home-page
       "https://cran.r-project.org/package=mgsub")
     (synopsis
@@ -29417,9 +28927,7 @@ in same length matches).")
     (properties `((upstream-name . "textshape")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-data-table" ,r-data-table)
-        ("r-slam" ,r-slam)
-        ("r-stringi" ,r-stringi)))
+      (list r-data-table r-slam r-stringi))
     (home-page "https://github.com/trinker/textshape")
     (synopsis "Tools for Reshaping Text")
     (description
@@ -29440,14 +28948,14 @@ in same length matches).")
     (properties `((upstream-name . "syuzhet")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-dplyr" ,r-dplyr)
-        ("r-dtt" ,r-dtt)
-        ("r-nlp" ,r-nlp)
-        ("r-rlang" ,r-rlang)
-        ("r-textshape" ,r-textshape)
-        ("r-tidyr" ,r-tidyr)
-        ("r-zoo" ,r-zoo)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+      (list r-dplyr
+            r-dtt
+            r-nlp
+            r-rlang
+            r-textshape
+            r-tidyr
+            r-zoo))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/mjockers/syuzhet")
     (synopsis
       "Extracts Sentiment and Sentiment-Derived Plot Arcs from Text")
@@ -29478,8 +28986,7 @@ normalization.")
     (properties `((upstream-name . "lexicon")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-data-table" ,r-data-table)
-        ("r-syuzhet" ,r-syuzhet)))
+      (list r-data-table r-syuzhet))
     (home-page "https://github.com/trinker/lexicon")
     (synopsis "Lexicons for Text Analysis")
     (description
@@ -29500,7 +29007,7 @@ and word lists.")
             "1g3nmy5p8wj3ix1vp1qmkmy3dyqisrw0md8cjrx4klqkp0wqlms9"))))
     (properties `((upstream-name . "english")))
     (build-system r-build-system)
-    (native-inputs `(("r-knitr" ,r-knitr)))
+    (native-inputs (list r-knitr))
     (home-page
       "https://cran.r-project.org/package=english")
     (synopsis "Translate Integers into English")
@@ -29524,14 +29031,14 @@ indefinite article choice, \"a\" or \"an\".")
     (properties `((upstream-name . "textclean")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-data-table" ,r-data-table)
-        ("r-english" ,r-english)
-        ("r-glue" ,r-glue)
-        ("r-lexicon" ,r-lexicon)
-        ("r-mgsub" ,r-mgsub)
-        ("r-qdapregex" ,r-qdapregex)
-        ("r-stringi" ,r-stringi)
-        ("r-textshape" ,r-textshape)))
+      (list r-data-table
+            r-english
+            r-glue
+            r-lexicon
+            r-mgsub
+            r-qdapregex
+            r-stringi
+            r-textshape))
     (home-page
       "https://github.com/trinker/textclean")
     (synopsis "Text Cleaning Tools")
@@ -29548,20 +29055,18 @@ text but not always easily handled by analysis algorithms.  The
 (define-public r-striprtf
   (package
     (name "r-striprtf")
-    (version "0.5.2")
+    (version "0.5.3")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "striprtf" version))
         (sha256
           (base32
-            "1ra6aalalig6drsj26z9s24lmb10zssagqrvgqqi4358zbm8gwcd"))))
+            "0dqcsh3fb8j0mmmxvxjl77rryhmrjm7a3scqvk2xkgxk4xq6q316"))))
     (properties `((upstream-name . "striprtf")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-magrittr" ,r-magrittr)
-        ("r-rcpp" ,r-rcpp)
-        ("r-stringr" ,r-stringr)))
+      (list r-magrittr r-rcpp r-stringr))
     (home-page "https://github.com/kota7/striprtf")
     (synopsis "Extract Text from RTF File")
     (description
@@ -29596,11 +29101,9 @@ text but not always easily handled by analysis algorithms.  The
              (("PKG_LIBS = " all)
               (string-append all "-lgzstream ")))
              #t)))))
-    (inputs `(("zlib" ,zlib) ("gzstream" ,gzstream)))
+    (inputs (list zlib gzstream))
     (propagated-inputs
-      `(("r-data-table" ,r-data-table)
-        ("r-rcpp" ,r-rcpp)
-        ("r-tibble" ,r-tibble)))
+      (list r-data-table r-rcpp r-tibble))
     (home-page "https://gitlab.com/hrbrmstr/ndjson")
     (synopsis
       "Wicked-Fast @dfn{Streaming JSON} (ndjson) Reader")
@@ -29629,9 +29132,7 @@ structures from them.")
     (properties `((upstream-name . "streamR")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-ndjson" ,r-ndjson)
-        ("r-rcurl" ,r-rcurl)
-        ("r-rjson" ,r-rjson)))
+      (list r-ndjson r-rcurl r-rjson))
     (home-page
       "https://cran.r-project.org/package=streamR")
     (synopsis
@@ -29655,11 +29156,8 @@ user streams, and to parse the output into data frames.")
     (properties `((upstream-name . "readODS")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-cellranger" ,r-cellranger)
-        ("r-readr" ,r-readr)
-        ("r-stringi" ,r-stringi)
-        ("r-xml2" ,r-xml2)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+      (list r-cellranger r-readr r-stringi r-xml2))
+    (native-inputs (list r-knitr))
     (home-page
       "https://cran.r-project.org/package=readODS")
     (synopsis "Read and Write ODS Files")
@@ -29696,13 +29194,10 @@ Also support writing data frame into ODS file.")
              (setenv "EXTERNAL_QPDF" "1")
              #t)))))
     (inputs
-      `(("zlib" ,zlib)
-        ("qpdf" ,qpdf)))
+      (list zlib qpdf))
     (propagated-inputs
-      `(("r-askpass" ,r-askpass)
-        ("r-curl" ,r-curl)
-        ("r-rcpp" ,r-rcpp)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+      (list r-askpass r-curl r-rcpp))
+    (native-inputs (list pkg-config))
     (home-page "https://github.com/ropensci/qpdf")
     (synopsis
       "Split, Combine and Compress PDF Files")
@@ -29728,11 +29223,10 @@ data you need the @code{pdftools} package.")
     (properties `((upstream-name . "pdftools")))
     (build-system r-build-system)
     (inputs
-      `(("zlib" ,zlib)
-        ("poppler" ,poppler)))
+      (list zlib poppler))
     (propagated-inputs
-      `(("r-qpdf" ,r-qpdf) ("r-rcpp" ,r-rcpp)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+      (list r-qpdf r-rcpp))
+    (native-inputs (list pkg-config))
     (home-page
       "https://docs.ropensci.org/pdftools/")
     (synopsis
@@ -29772,8 +29266,8 @@ further processing in R.")
              (("system.file\\(\"bin\", package = \"antiword\"\\)")
               (string-append "\"" (assoc-ref inputs "antiword") "/bin\"")))
              #t)))))
-    (inputs `(("antiword" ,antiword)))
-    (propagated-inputs `(("r-sys" ,r-sys)))
+    (inputs (list antiword))
+    (propagated-inputs (list r-sys))
     (home-page
       "https://github.com/ropensci/antiword#readme")
     (synopsis
@@ -29799,20 +29293,20 @@ latter.")
     (properties `((upstream-name . "readtext")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-antiword" ,r-antiword)
-        ("r-data-table" ,r-data-table)
-        ("r-digest" ,r-digest)
-        ("r-httr" ,r-httr)
-        ("r-jsonlite" ,r-jsonlite)
-        ("r-pdftools" ,r-pdftools)
-        ("r-readods" ,r-readods)
-        ("r-readxl" ,r-readxl)
-        ("r-streamr" ,r-streamr)
-        ("r-stringi" ,r-stringi)
-        ("r-striprtf" ,r-striprtf)
-        ("r-tibble" ,r-tibble)
-        ("r-xml2" ,r-xml2)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+      (list r-antiword
+            r-data-table
+            r-digest
+            r-httr
+            r-jsonlite
+            r-pdftools
+            r-readods
+            r-readxl
+            r-streamr
+            r-stringi
+            r-striprtf
+            r-tibble
+            r-xml2))
+    (native-inputs (list r-knitr))
     (home-page
       "https://github.com/quanteda/readtext")
     (synopsis
@@ -29837,8 +29331,8 @@ and formatted text files with additional meta-data, such including @code{.csv},
             "05pv5c4k4njkr0xw6i6ksiy34hcyx2lbiqpv5gxw81yrkm0rxfyk"))))
     (properties `((upstream-name . "packcircles")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+    (propagated-inputs (list r-rcpp))
+    (native-inputs (list r-knitr))
     (home-page
       "https://github.com/mbedward/packcircles")
     (synopsis "Circle Packing")
@@ -29851,26 +29345,21 @@ and formatted text files with additional meta-data, such including @code{.csv},
 (define-public r-lwgeom
   (package
     (name "r-lwgeom")
-    (version "0.2-7")
+    (version "0.2-8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lwgeom" version))
        (sha256
         (base32
-         "1qgszbw03haqfjdc07ivkg8r0yd50ldkiqq27ppkaibw7mgiak5k"))))
+         "0d4b1djwrzla91mmyya2m1250mb44fzmq3d36w5mk81d4bg952pl"))))
     (properties `((upstream-name . "lwgeom")))
     (build-system r-build-system)
     (inputs
-     `(("geos" ,geos)
-       ("proj" ,proj)
-       ("sqlite" ,sqlite)
-       ("zlib" ,zlib)))
+     (list geos proj sqlite zlib))
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-sf" ,r-sf)
-       ("r-units" ,r-units)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+     (list r-rcpp r-sf r-units))
+    (native-inputs (list pkg-config))
     (home-page "https://github.com/r-spatial/lwgeom/")
     (synopsis "Bindings to Selected 'liblwgeom' Functions for Simple Features")
     (description
@@ -29882,24 +29371,24 @@ light-weight geometry library used by @url{http://postgis.net/,PostGIS}.")
 (define-public r-stars
   (package
     (name "r-stars")
-    (version "0.5-3")
+    (version "0.5-4")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "stars" version))
         (sha256
           (base32
-            "00cljaz98iy3wymabp7b47qgxdybg9jgjkw7q6da1ginmy14m524"))))
+            "1h5fway2fk637mkglw0h3ajiyyx8saqcapg42xzsiwbk8lnaf9f4"))))
     (properties `((upstream-name . "stars")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-abind" ,r-abind)
-        ("r-classint" ,r-classint)
-        ("r-lwgeom" ,r-lwgeom)
-        ("r-rlang" ,r-rlang)
-        ("r-sf" ,r-sf)
-        ("r-units" ,r-units)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+      (list r-abind
+            r-classint
+            r-lwgeom
+            r-rlang
+            r-sf
+            r-units))
+    (native-inputs (list r-knitr))
     (home-page "https://r-spatial.github.io/stars/")
     (synopsis
       "Spatiotemporal Arrays, Raster and Vector Data Cubes")
@@ -29923,15 +29412,15 @@ by @code{sf}, and @code{NetCDF} bindings by @code{ncmeta} and @code{RNetCDF}.")
     (properties `((upstream-name . "tmaptools")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-dichromat" ,r-dichromat)
-        ("r-lwgeom" ,r-lwgeom)
-        ("r-magrittr" ,r-magrittr)
-        ("r-rcolorbrewer" ,r-rcolorbrewer)
-        ("r-sf" ,r-sf)
-        ("r-stars" ,r-stars)
-        ("r-units" ,r-units)
-        ("r-viridislite" ,r-viridislite)
-        ("r-xml" ,r-xml)))
+      (list r-dichromat
+            r-lwgeom
+            r-magrittr
+            r-rcolorbrewer
+            r-sf
+            r-stars
+            r-units
+            r-viridislite
+            r-xml))
     (home-page
       "https://github.com/mtennekes/tmaptools")
     (synopsis "Thematic Map Tools")
@@ -29955,9 +29444,7 @@ supply the workflow to create thematic maps.  This package also facilitates
     (properties `((upstream-name . "rworldmap")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-fields" ,r-fields)
-        ("r-maptools" ,r-maptools)
-        ("r-sp" ,r-sp)))
+      (list r-fields r-maptools r-sp))
     (home-page
       "https://github.com/AndySouth/rworldmap/")
     (synopsis "Mapping Global Data")
@@ -29979,14 +29466,14 @@ supply the workflow to create thematic maps.  This package also facilitates
     (properties `((upstream-name . "rtweet")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-httpuv" ,r-httpuv)
-        ("r-httr" ,r-httr)
-        ("r-jsonlite" ,r-jsonlite)
-        ("r-magrittr" ,r-magrittr)
-        ("r-progress" ,r-progress)
-        ("r-rcpp" ,r-rcpp)
-        ("r-tibble" ,r-tibble)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+      (list r-httpuv
+            r-httr
+            r-jsonlite
+            r-magrittr
+            r-progress
+            r-rcpp
+            r-tibble))
+    (native-inputs (list r-knitr))
     (home-page
       "https://docs.ropensci.org/rtweet/")
     (synopsis "Collecting Twitter Data")
@@ -30030,12 +29517,8 @@ Application Program Interfaces (API)}.")
     (properties `((upstream-name . "eyelinker")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-intervals" ,r-intervals)
-        ("r-readr" ,r-readr)
-        ("r-stringi" ,r-stringi)
-        ("r-stringr" ,r-stringr)
-        ("r-tibble" ,r-tibble)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+      (list r-intervals r-readr r-stringi r-stringr r-tibble))
+    (native-inputs (list r-knitr))
     (home-page
       "https://github.com/a-hurst/eyelinker")
     (synopsis
@@ -30058,7 +29541,7 @@ Application Program Interfaces (API)}.")
             "0ab0wr8nbwn1w1j9hpwfz52lm1sw0qk93713y9k0hpm3pw9dq4jr"))))
     (properties `((upstream-name . "BTM")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (propagated-inputs (list r-rcpp))
     (home-page "https://github.com/bnosac/BTM")
     (synopsis "Biterm Topic Models for Short Text")
     (description
@@ -30089,7 +29572,7 @@ BTM-WWW13.pdf}.")
          "0ijhmwclpg5czs2sl2vykcw8qj2pxy26xf6knh62rqq6p6sm43f4"))))
     (properties `((upstream-name . "Delaporte")))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://github.com/aadler/Delaporte")
     (synopsis "Statistical functions for the Delaporte distribution")
     (description
@@ -30107,14 +29590,14 @@ variability than the Poisson, but less than the negative binomial.")
 (define-public r-rjsonio
   (package
     (name "r-rjsonio")
-    (version "1.3-1.5")
+    (version "1.3-1.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RJSONIO" version))
        (sha256
         (base32
-         "1dp9kdf0ca27br1wsq9pj7d55n601achpbzdzxhykzz531xhmjrl"))))
+         "17x0ayk7daprbc8w2hvb2jl9mfnw4dic9yc3sr5adcjqfzmcklc2"))))
     (properties `((upstream-name . "RJSONIO")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/package=RJSONIO")
@@ -30141,8 +29624,7 @@ package.")
     (properties `((upstream-name . "revgeo")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcurl" ,r-rcurl)
-       ("r-rjsonio" ,r-rjsonio)))
+     (list r-rcurl r-rjsonio))
     (home-page "https://cran.r-project.org/package=revgeo")
     (synopsis "Reverse geocoding")
     (description
@@ -30165,11 +29647,7 @@ minimal hassle.")
     (properties `((upstream-name . "qpcR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-minpack-lm" ,r-minpack-lm)
-       ("r-rgl" ,r-rgl)
-       ("r-robustbase" ,r-robustbase)))
+     (list r-mass r-matrix r-minpack-lm r-rgl r-robustbase))
     (home-page "https://cran.r-project.org/package=qpcR")
     (synopsis "Modelling and analysis of real-time PCR data")
     (description
@@ -30181,21 +29659,19 @@ quantitative real-time polymerase chain reaction (qPCR).")
 (define-public r-textplot
   (package
     (name "r-textplot")
-    (version "0.2.0")
+    (version "0.2.1")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "textplot" version))
         (sha256
           (base32
-            "1fhnwbcgkliq71lry21762djhlbap1qg4mgil0np46aa6619l21m"))))
+            "10nxh9axhy6kyp6f3rz7smq08yl35ydx9jx47bs7i0bmcl2kwxvl"))))
     (properties `((upstream-name . "textplot")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-data-table" ,r-data-table)
-        ("r-lattice" ,r-lattice)
-        ("r-matrix" ,r-matrix)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+      (list r-data-table r-lattice r-matrix))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/bnosac/textplot")
     (synopsis "Text Plots")
     (description
@@ -30285,8 +29761,8 @@ importance.")
             "1dhba0yfxjd5rlqsxp5a7s2hclfkla9wigsr39dlma67l6qjjmxn"))))
     (properties `((upstream-name . "elliptic")))
     (build-system r-build-system)
-    (inputs `(("pari-gp" ,pari-gp)))
-    (propagated-inputs `(("r-mass" ,r-mass)))
+    (inputs (list pari-gp))
+    (propagated-inputs (list r-mass))
     (home-page
       "https://github.com/RobinHankin/elliptic")
     (synopsis
@@ -30311,9 +29787,7 @@ complex functions.")
     (properties `((upstream-name . "hypergeo")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-contfrac" ,r-contfrac)
-        ("r-desolve" ,r-desolve)
-        ("r-elliptic" ,r-elliptic)))
+      (list r-contfrac r-desolve r-elliptic))
     (home-page
       "https://cran.r-project.org/web/packages/hypergeo/")
     (synopsis "The Gauss Hypergeometric Function")
@@ -30344,22 +29818,22 @@ complex functions.")
                 (string-append "'" (assoc-ref inputs "ffmpeg") "/bin/ffmpeg'"))))))))
     (inputs
       ;; For video output.
-      `(("ffmpeg" ,ffmpeg)))
-    (propagated-inputs
-      `(("r-ggplot2" ,r-ggplot2)
-        ("r-glue" ,r-glue)
-        ("r-plyr" ,r-plyr)
-        ("r-progress" ,r-progress)
-        ("r-rlang" ,r-rlang)
-        ("r-scales" ,r-scales)
-        ("r-stringi" ,r-stringi)
-        ("r-tweenr" ,r-tweenr)
-        ;; For GIF/SVG output. gifski is faster, but depends on Rust.
-        ("r-magick" ,r-magick)
-        ;; For HTML output.
-        ("r-base64enc" ,r-base64enc)
-        ("r-htmltools" ,r-htmltools)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+      (list ffmpeg))
+    (propagated-inputs
+      (list r-ggplot2
+            r-glue
+            r-plyr
+            r-progress
+            r-rlang
+            r-scales
+            r-stringi
+            r-tweenr
+            ;; For GIF/SVG output. gifski is faster, but depends on Rust.
+            r-magick
+            ;; For HTML output.
+            r-base64enc
+            r-htmltools))
+    (native-inputs (list r-knitr))
     (home-page "https://gganimate.com")
     (synopsis "Grammar of Animated Graphics")
     (description
@@ -30375,17 +29849,17 @@ in order to customise how it should change with time.")
 (define-public r-tzdb
  (package
     (name "r-tzdb")
-    (version "0.1.2")
+    (version "0.2.0")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "tzdb" version))
         (sha256
           (base32
-            "1sl8nacx2i1h9vcvggiyzwd2zwvgrvfvsv3xa9072br62gkpay2c"))))
+            "1afmav7s29fb5cd920h6vrzg9cvc4jsidfalxpvhlh1b8mfr0df3"))))
     (properties `((upstream-name . "tzdb")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-cpp11" ,r-cpp11)))
+    (propagated-inputs (list r-cpp11))
     (home-page "https://github.com/r-lib/tzdb")
     (synopsis "Time Zone Database Information")
     (description
@@ -30403,32 +29877,32 @@ time zone manipulations.")
 (define-public r-vroom
   (package
     (name "r-vroom")
-    (version "1.5.4")
+    (version "1.5.6")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "vroom" version))
         (sha256
           (base32
-            "15gbr35pmbnxjy0la2h20c0vf64q69gk7k996gn8b5wn3klxvg7n"))))
+            "0b1lbi20gadwjwinw1v0az4g0y79vlcqfqyblphls601h3nnmn3p"))))
     (properties `((upstream-name . "vroom")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-bit64" ,r-bit64)
-        ("r-cli" ,r-cli)
-        ("r-cpp11" ,r-cpp11)
-        ("r-crayon" ,r-crayon)
-        ("r-glue" ,r-glue)
-        ("r-hms" ,r-hms)
-        ("r-lifecycle" ,r-lifecycle)
-        ("r-progress" ,r-progress)
-        ("r-rlang" ,r-rlang)
-        ("r-tibble" ,r-tibble)
-        ("r-tidyselect" ,r-tidyselect)
-        ("r-tzdb" ,r-tzdb)
-        ("r-vctrs" ,r-vctrs)
-        ("r-withr" ,r-withr)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+      (list r-bit64
+            r-cli
+            r-cpp11
+            r-crayon
+            r-glue
+            r-hms
+            r-lifecycle
+            r-progress
+            r-rlang
+            r-tibble
+            r-tidyselect
+            r-tzdb
+            r-vctrs
+            r-withr))
+    (native-inputs (list r-knitr))
     (home-page "https://vroom.r-lib.org")
     (synopsis
       "Read and Write Rectangular Text Data")
@@ -30452,9 +29926,7 @@ asynchronously from formatting.")
                 "1ijjhfy3v91fspid77rrkc5dkcb2lav37wc3f4k5lwrn24wzy5y8"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-plyr" ,r-plyr)
-       ("r-rcpp" ,r-rcpp)
-       ("r-lattice" ,r-lattice)))
+     (list r-plyr r-rcpp 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
@@ -30474,8 +29946,7 @@ utility operations.")
     (properties `((upstream-name . "webutils")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-curl" ,r-curl)
-       ("r-jsonlite" ,r-jsonlite)))
+     (list r-curl r-jsonlite))
     (home-page "https://github.com/jeroen/webutils")
     (synopsis "Utility functions for developing web applications")
     (description
@@ -30498,13 +29969,11 @@ using either @code{httpuv} or @code{Rhttpd}.")
     (properties `((upstream-name . "protolite")))
     (build-system r-build-system)
     (inputs
-     `(("protobuf" ,protobuf)))
+     (list protobuf))
     (propagated-inputs
-     `(("r-jsonlite" ,r-jsonlite)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-jsonlite r-rcpp))
     (native-inputs
-     `(("protobuf" ,protobuf)
-       ("pkg-config" ,pkg-config)))
+     (list protobuf pkg-config))
     (home-page "https://github.com/jeroen/protolite")
     (synopsis "Highly optimized protocol buffer serializers")
     (description
@@ -30531,24 +30000,24 @@ reading and writing arbitrary protocol-buffer data in R.")
     (properties `((upstream-name . "opencpu")))
     (build-system r-build-system)
     (inputs
-     `(("pandoc" ,pandoc)))
-    (propagated-inputs
-     `(("r-brew" ,r-brew)
-       ("r-curl" ,r-curl)
-       ("r-evaluate" ,r-evaluate)
-       ("r-httpuv" ,r-httpuv)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-knitr" ,r-knitr)
-       ("r-mime" ,r-mime)
-       ("r-openssl" ,r-openssl)
-       ("r-protolite" ,r-protolite)
-       ("r-rappdirs" ,r-rappdirs)
-       ("r-remotes" ,r-remotes)
-       ("r-sys" ,r-sys)
-       ("r-webutils" ,r-webutils)
-       ("r-zip" ,r-zip)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list pandoc))
+    (propagated-inputs
+     (list r-brew
+           r-curl
+           r-evaluate
+           r-httpuv
+           r-jsonlite
+           r-knitr
+           r-mime
+           r-openssl
+           r-protolite
+           r-rappdirs
+           r-remotes
+           r-sys
+           r-webutils
+           r-zip))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://www.opencpu.org")
     (synopsis "API for embedded scientific computing")
     (description
@@ -30564,23 +30033,21 @@ Apache2.")
 (define-public r-exactextractr
   (package
     (name "r-exactextractr")
-    (version "0.6.1")
+    (version "0.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "exactextractr" version))
        (sha256
         (base32
-         "1xnccadbj03h7m81ix5qn0hx918xc9hbxnzgv5lr3hf8b26i9wni"))))
+         "1gc1p9pgazhblk8jgykxxjpblylbaq5r9hdlw3ilz5g45yjjwcnc"))))
     (properties `((upstream-name . "exactextractr")))
     (build-system r-build-system)
-    (inputs `(("geos" ,geos)))
+    (inputs (list geos))
     (propagated-inputs
-     `(("r-raster" ,r-raster)
-       ("r-rcpp" ,r-rcpp)
-       ("r-sf" ,r-sf)))
+     (list r-raster r-rcpp r-sf))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://isciences.gitlab.io/exactextractr/")
     (synopsis "Fast extraction from raster datasets using polygons")
     (description
@@ -30592,22 +30059,20 @@ the @code{raster} package that is suitable for extracting raster values using
 (define-public r-stringfish
   (package
     (name "r-stringfish")
-    (version "0.15.2")
+    (version "0.15.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "stringfish" version))
        (sha256
         (base32
-         "0m8485p1gb5z2n2g5nyr38zixw4iv8xxm7bxspxlxvx6alhn03pn"))))
+         "1n67y9vgv8vb8qd091d1wm5sgbalcm2avh2fz0hd3mmglpkr83wf"))))
     (properties `((upstream-name . "stringfish")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-rcppparallel" ,r-rcppparallel)))
+     (list r-rcpp r-rcppparallel))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://github.com/traversc/stringfish")
     (synopsis "Alternative string implementation")
     (description
@@ -30642,24 +30107,21 @@ package.")
 (define-public r-qs
   (package
     (name "r-qs")
-    (version "0.25.1")
+    (version "0.25.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "qs" version))
        (sha256
         (base32
-         "0qzrhc5jsygj813k956b00h4b6haynz44rk6a4v34fv4ywq9ba7w"))))
+         "077i181vh0izvsdy2d4366yir0ajg531g6d1s7ab044ssbphg38x"))))
     (properties `((upstream-name . "qs")))
     (build-system r-build-system)
-    (inputs `(("zlib" ,zlib)))
+    (inputs (list zlib))
     (propagated-inputs
-     `(("r-rapiserialize" ,r-rapiserialize)
-       ("r-rcpp" ,r-rcpp)
-       ("r-stringfish" ,r-stringfish)))
+     (list r-rapiserialize r-rcpp r-stringfish))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://github.com/traversc/qs")
     (synopsis "Quick serialization of R objects")
     (description
@@ -30670,20 +30132,20 @@ object to and from disk.")
 (define-public r-rgeos
   (package
     (name "r-rgeos")
-    (version "0.5-5")
+    (version "0.5-8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rgeos" version))
        (sha256
         (base32
-         "086l0qk3p4jq23bs91c4a65x4qz99z0hy0vsnvfqfvppdzz0vajb"))))
+         "05539shf38slvq38pf92h9q57vmzn2vfqbirl3pbbvvc2j957cqd"))))
     (properties `((upstream-name . "rgeos")))
     (build-system r-build-system)
     (inputs
-     `(("geos" ,geos)))
+     (list geos))
     (propagated-inputs
-     `(("r-sp" ,r-sp)))
+     (list r-sp))
     (home-page "https://cran.r-project.org/package=rgeos")
     (synopsis "Interface to Geometry Engine (GEOS)")
     (description
@@ -30705,17 +30167,17 @@ C API for topology operations on geometries.")
     (properties `((upstream-name . "tfruns")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-config" ,r-config)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-magrittr" ,r-magrittr)
-       ("r-reticulate" ,r-reticulate)
-       ("r-rlang" ,r-rlang)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-tidyselect" ,r-tidyselect)
-       ("r-whisker" ,r-whisker)
-       ("r-yaml" ,r-yaml)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-base64enc
+           r-config
+           r-jsonlite
+           r-magrittr
+           r-reticulate
+           r-rlang
+           r-rstudioapi
+           r-tidyselect
+           r-whisker
+           r-yaml))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/rstudio/tfruns")
     (synopsis "Training run tools for TensorFlow")
     (description
@@ -30728,19 +30190,19 @@ runs.")
 (define-public r-tfautograph
   (package
     (name "r-tfautograph")
-    (version "0.3.1")
+    (version "0.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tfautograph" version))
        (sha256
         (base32
-         "1fgpvv330g61ghzhkwnzx04gd9l3d6x1vxd1xqslb05h5acagwqn"))))
+         "0fmaq1ggjyxgf2ss7qb8jk74sfwc3s1vc123pd5glclxcy1ib0j2"))))
     (properties `((upstream-name . "tfautograph")))
     (build-system r-build-system)
-    (inputs `(("tensorflow" ,tensorflow)))
+    (inputs (list tensorflow))
     (propagated-inputs
-     `(("r-reticulate" ,r-reticulate)))
+     (list r-backports r-reticulate))
     (home-page "https://t-kalinowski.github.io/tfautograph/")
     (synopsis "Autograph R for Tensorflow")
     (description
@@ -30751,25 +30213,25 @@ Tensorflow graphs.")
 (define-public r-tensorflow
   (package
     (name "r-tensorflow")
-    (version "2.6.0")
+    (version "2.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tensorflow" version))
        (sha256
         (base32
-         "1lkzxc3b5gkcg4hwqr57cysplcba6ff44qz8lbvk19kxnrhjaf9g"))))
+         "0xgm8jb1hl8564vviqys3aqwzvfbh0d43m154cj07j9spdz306ng"))))
     (properties `((upstream-name . "tensorflow")))
     (build-system r-build-system)
-    (inputs `(("tensorflow" ,tensorflow)))
+    (inputs (list tensorflow))
     (propagated-inputs
-     `(("r-config" ,r-config)
-       ("r-processx" ,r-processx)
-       ("r-reticulate" ,r-reticulate)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-tfautograph" ,r-tfautograph)
-       ("r-tfruns" ,r-tfruns)
-       ("r-yaml" ,r-yaml)))
+     (list r-config
+           r-processx
+           r-reticulate
+           r-rstudioapi
+           r-tfautograph
+           r-tfruns
+           r-yaml))
     (home-page "https://github.com/rstudio/tensorflow")
     (synopsis "R interface to TensorFlow")
     (description
@@ -30782,28 +30244,28 @@ between them.")
 (define-public r-keras
   (package
     (name "r-keras")
-    (version "2.6.0")
+    (version "2.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "keras" version))
        (sha256
         (base32
-         "1pgdcypp9x9dw7aa5ka7qqgd24jdcp3ja94jpm7j6l6j4930k5vd"))))
+         "004z9aajc0b7lw7g68ri7ndabdwbylmnlyvmziljmm29z6fzk8y5"))))
     (properties `((upstream-name . "keras")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ellipsis" ,r-ellipsis)
-       ("r-generics" ,r-generics)
-       ("r-glue" ,r-glue)
-       ("r-magrittr" ,r-magrittr)
-       ("r-r6" ,r-r6)
-       ("r-reticulate" ,r-reticulate)
-       ("r-rlang" ,r-rlang)
-       ("r-tensorflow" ,r-tensorflow)
-       ("r-tfruns" ,r-tfruns)
-       ("r-zeallot" ,r-zeallot)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-ellipsis
+           r-generics
+           r-glue
+           r-magrittr
+           r-r6
+           r-reticulate
+           r-rlang
+           r-tensorflow
+           r-tfruns
+           r-zeallot))
+    (native-inputs (list r-knitr))
     (home-page "https://keras.rstudio.com")
     (synopsis "R Interface to 'Keras'")
     (description
@@ -30828,10 +30290,9 @@ and GPU devices.")
     (properties `((upstream-name . "zzlite")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-httr" ,r-httr)
-       ("r-jsonlite" ,r-jsonlite)))
+     (list r-httr r-jsonlite))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/package=zzlite")
     (synopsis "Wrapper for the Zamzar file conversion API")
     (description
@@ -30844,18 +30305,18 @@ files, images, movie formats, etc., etc.) through an R session.")
 (define-public r-ztree
   (package
     (name "r-ztree")
-    (version "1.0.6")
+    (version "1.0.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "zTree" version))
        (sha256
         (base32
-         "1mywxrx6bw7dzhrdwyxbjzc8ikgvw423zycyji0jjr69cfhpmywv"))))
+         "005zk6wpchpss6865ki35yawgf668pn70163ah97rnfkhfaswm6y"))))
     (properties `((upstream-name . "zTree")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-plyr" ,r-plyr)))
+     (list r-plyr))
     (home-page "https://cran.r-project.org/package=zTree")
     (synopsis "Functions to import data from z-Tree into R")
     (description
@@ -30879,7 +30340,7 @@ carrying out economic experiments.")
      `((upstream-name . "DistributionUtils")))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/package=DistributionUtils")
     (synopsis "Distribution utilities")
     (description
@@ -30894,24 +30355,21 @@ Bessel K function.")
 (define-public r-ztpln
   (package
     (name "r-ztpln")
-    (version "0.1.1")
+    (version "0.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ztpln" version))
        (sha256
         (base32
-         "18rbfdp22jaxg4nkqzj2393nhjdl1gzv4xhmr6aci76ymdixsfnl"))))
+         "1b22m72a8117yrgq5k1gzsrbx6yrsrj7bpd49lh7x3vbaz56c0wr"))))
     (properties `((upstream-name . "ztpln")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-distributionutils" ,r-distributionutils)
-       ("r-mixtools" ,r-mixtools)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)
-       ("r-rcppnumerical" ,r-rcppnumerical)))
+     (list r-distributionutils r-mixtools r-rcpp r-rcppeigen
+           r-rcppnumerical))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/mattocci27/ztpln")
     (synopsis "Zero-truncated Poisson lognormal distribution")
     (description
@@ -30934,9 +30392,9 @@ lognormal distribution and their mixture distribution.")
     (properties `((upstream-name . "zscorer")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-shiny" ,r-shiny)))
+     (list r-shiny))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/nutriverse/zscorer")
     (synopsis "Child Anthropometry z-Score Calculator")
     (description
@@ -30961,8 +30419,7 @@ Standards.")
     (properties `((upstream-name . "ZRA")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dygraphs" ,r-dygraphs)
-       ("r-forecast" ,r-forecast)))
+     (list r-dygraphs r-forecast))
     (home-page "https://cran.r-project.org/package=ZRA")
     (synopsis "Dynamic plots for time series forecasting")
     (description
@@ -30984,13 +30441,13 @@ with the dynamic plots from @code{dygraphs}.")
     (properties `((upstream-name . "rfigshare")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-httpuv" ,r-httpuv)
-       ("r-httr" ,r-httr)
-       ("r-plyr" ,r-plyr)
-       ("r-rjsonio" ,r-rjsonio)
-       ("r-xml" ,r-xml)
-       ("r-yaml" ,r-yaml)))
+     (list r-ggplot2
+           r-httpuv
+           r-httr
+           r-plyr
+           r-rjsonio
+           r-xml
+           r-yaml))
     (home-page "https://github.com/ropensci/rfigshare")
     (synopsis "R Interface to figshare")
     (description
@@ -31001,20 +30458,18 @@ to archive and assign DOIs to data, software, figures, and more.")
 (define-public r-dismo
   (package
     (name "r-dismo")
-    (version "1.3-3")
+    (version "1.3-5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "dismo" version))
        (sha256
         (base32
-         "1jj9d78f251bxgrwbv1ycn677qnhvl40bfan12x8fhlaq4d36rgx"))))
+         "1rqf6h4imbqvs7hjd1k4my6154wg0qnmnp5byan403rcshr1jbl1"))))
     (properties `((upstream-name . "dismo")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-raster" ,r-raster)
-       ("r-rcpp" ,r-rcpp)
-       ("r-sp" ,r-sp)))
+     (list r-raster r-rcpp r-sp r-terra))
     (home-page "https://rspatial.org/raster/sdm/")
     (synopsis "Species distribution modeling")
     (description
@@ -31037,19 +30492,19 @@ of known occurrences of a species.")
     (properties `((upstream-name . "zoon")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dismo" ,r-dismo)
-       ("r-plyr" ,r-plyr)
-       ("r-randomforest" ,r-randomforest)
-       ("r-raster" ,r-raster)
-       ("r-rcurl" ,r-rcurl)
-       ("r-rfigshare" ,r-rfigshare)
-       ("r-rgdal" ,r-rgdal)
-       ("r-roxygen2" ,r-roxygen2)
-       ("r-rworldmap" ,r-rworldmap)
-       ("r-sp" ,r-sp)
-       ("r-testthat" ,r-testthat)))
+     (list r-dismo
+           r-plyr
+           r-randomforest
+           r-raster
+           r-rcurl
+           r-rfigshare
+           r-rgdal
+           r-roxygen2
+           r-rworldmap
+           r-sp
+           r-testthat))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/zoonproject/zoon")
     (synopsis "Reproducible, accessible and shareable species distribution modelling")
     (description
@@ -31061,22 +30516,18 @@ fully reproducible.")
 (define-public r-paws-common
   (package
     (name "r-paws-common")
-    (version "0.3.12")
+    (version "0.3.14")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "paws.common" version))
        (sha256
         (base32
-         "1khq1rv0yij4l0vi2x6hslnzpsd6m5n6nipfac7g3na9ah93h8i9"))))
+         "013yiki3bjx0np577wy17ikfxdr2hiv6sd10anv281r108kldm1x"))))
     (properties `((upstream-name . "paws.common")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-digest" ,r-digest)
-       ("r-httr" ,r-httr)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-xml2" ,r-xml2)))
+     (list r-base64enc r-digest r-httr r-jsonlite r-xml2))
     (home-page "https://cran.r-project.org/package=paws.common")
     (synopsis "Paws low-level Amazon Web Services API")
     (description
@@ -31102,7 +30553,7 @@ Service (S3).")
      `((upstream-name . "paws.customer.engagement")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-paws-common" ,r-paws-common)))
+     (list r-paws-common))
     (home-page "https://github.com/paws-r/paws")
     (synopsis "Amazon Web Services customer engagement services")
     (description
@@ -31126,7 +30577,7 @@ service, and more.")
      `((upstream-name . "paws.cost.management")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-paws-common" ,r-paws-common)))
+     (list r-paws-common))
     (home-page "https://github.com/paws-r/paws")
     (synopsis "Amazon Web Services cost management services")
     (description
@@ -31135,6 +30586,50 @@ management services, including cost and usage reports, budgets, pricing, and
 more.")
     (license license:asl2.0)))
 
+(define-public r-paws-developer-tools
+  (package
+    (name "r-paws-developer-tools")
+    (version "0.1.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "paws.developer.tools" version))
+       (sha256
+        (base32 "16gb8g8s67al7qdd95fbigxqkih9a9p7slkyf3cga42wb6miiby2"))))
+    (properties `((upstream-name . "paws.developer.tools")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-paws-common))
+    (home-page "https://github.com/paws-r/paws")
+    (synopsis "Amazon Web Services developer tools services")
+    (description
+     "This package provides an interface to Amazon Web Services developer
+tools services, including version control, continuous integration and
+deployment, and more.")
+    (license license:asl2.0)))
+
+(define-public r-paws-end-user-computing
+  (package
+    (name "r-paws-end-user-computing")
+    (version "0.1.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "paws.end.user.computing" version))
+       (sha256
+        (base32 "1xxsz86nx128sizym9np8vldzkbym0p3i6vcy94kq1y0cylaicv3"))))
+    (properties `((upstream-name . "paws.end.user.computing")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-paws-common))
+    (home-page "https://github.com/paws-r/paws")
+    (synopsis "Amazon Web Services end user computing services")
+    (description
+     "This package provides an interface to Amazon Web Services end user
+computing services, including collaborative document editing, mobile intranet,
+and more.")
+    (license license:asl2.0)))
+
 (define-public r-paws-application-integration
   (package
     (name "r-paws-application-integration")
@@ -31150,7 +30645,7 @@ more.")
      `((upstream-name . "paws.application.integration")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-paws-common" ,r-paws-common)))
+     (list r-paws-common))
     (home-page "https://github.com/paws-r/paws")
     (synopsis "Amazon Web Services application integration services")
     (description
@@ -31174,7 +30669,7 @@ Simple Notification Service (SNS) publish/subscribe messaging, and more.")
      `((upstream-name . "paws.security.identity")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-paws-common" ,r-paws-common)))
+     (list r-paws-common))
     (home-page "https://github.com/paws-r/paws")
     (synopsis "Amazon Web Services security, identity, and compliance services")
     (description
@@ -31199,7 +30694,7 @@ more.")
      `((upstream-name . "paws.analytics")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-paws-common" ,r-paws-common)))
+     (list r-paws-common))
     (home-page "https://github.com/paws-r/paws")
     (synopsis "Amazon Web Services analytics services")
     (description
@@ -31223,7 +30718,7 @@ Elasticsearch search engine, and more.")
      `((upstream-name . "paws.machine.learning")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-paws-common" ,r-paws-common)))
+     (list r-paws-common))
     (home-page "https://github.com/paws-r/paws")
     (synopsis "Amazon Web Services machine learning services")
     (description
@@ -31247,7 +30742,7 @@ natural language processing, speech recognition, translation, and more.")
      `((upstream-name . "paws.management")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-paws-common" ,r-paws-common)))
+     (list r-paws-common))
     (home-page "https://github.com/paws-r/paws")
     (synopsis "Amazon Web Services management and governance services")
     (description
@@ -31271,7 +30766,7 @@ monitoring, Auto Scaling for automatically scaling resources, and more.")
      `((upstream-name . "paws.networking")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-paws-common" ,r-paws-common)))
+     (list r-paws-common))
     (home-page "https://github.com/paws-r/paws")
     (synopsis "Amazon Web Services networking and content delivery services")
     (description
@@ -31294,7 +30789,7 @@ CloudFront content delivery, load balancing, and more.")
     (properties `((upstream-name . "paws.database")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-paws-common" ,r-paws-common)))
+     (list r-paws-common))
     (home-page "https://github.com/paws-r/paws")
     (synopsis
      "Amazon Web Services Database Services")
@@ -31318,7 +30813,7 @@ database, and more.")
     (properties `((upstream-name . "paws.storage")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-paws-common" ,r-paws-common)))
+     (list r-paws-common))
     (home-page "https://github.com/paws-r/paws")
     (synopsis "Amazon Web Services storage services")
     (description
@@ -31340,7 +30835,7 @@ services, including Simple Storage Service (S3).")
     (properties `((upstream-name . "paws.compute")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-paws-common" ,r-paws-common)))
+     (list r-paws-common))
     (home-page "https://github.com/paws-r/paws")
     (synopsis "Amazon Web Services compute services")
     (description
@@ -31352,28 +30847,30 @@ functions-as-a-service, containers, batch processing, and more.")
 (define-public r-paws
   (package
     (name "r-paws")
-    (version "0.1.11")
+    (version "0.1.12")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "paws" version))
        (sha256
         (base32
-         "1pkwjdrziyh6bhpilx29zsv2nmv60z6fqxgx2kvjqvl8z36yqfhw"))))
+         "0kn1z045r106fwqcaz52hb02bhrcblh479cajfjiq480s1iljcw6"))))
     (properties `((upstream-name . "paws")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-paws-analytics" ,r-paws-analytics)
-       ("r-paws-application-integration" ,r-paws-application-integration)
-       ("r-paws-compute" ,r-paws-compute)
-       ("r-paws-cost-management" ,r-paws-cost-management)
-       ("r-paws-customer-engagement" ,r-paws-customer-engagement)
-       ("r-paws-database" ,r-paws-database)
-       ("r-paws-machine-learning" ,r-paws-machine-learning)
-       ("r-paws-management" ,r-paws-management)
-       ("r-paws-networking" ,r-paws-networking)
-       ("r-paws-security-identity" ,r-paws-security-identity)
-       ("r-paws-storage" ,r-paws-storage)))
+     (list r-paws-analytics
+           r-paws-application-integration
+           r-paws-compute
+           r-paws-cost-management
+           r-paws-customer-engagement
+           r-paws-database
+           r-paws-developer-tools
+           r-paws-end-user-computing
+           r-paws-machine-learning
+           r-paws-management
+           r-paws-networking
+           r-paws-security-identity
+           r-paws-storage))
     (home-page "https://github.com/paws-r/paws")
     (synopsis "Amazon Web Services software development kit")
     (description
@@ -31397,16 +30894,16 @@ DynamoDB NoSQL database, and Lambda functions-as-a-service.")
      `((upstream-name . "zoomGroupStats")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
-       ("r-dplyr" ,r-dplyr)
-       ("r-lubridate" ,r-lubridate)
-       ("r-magick" ,r-magick)
-       ("r-openxlsx" ,r-openxlsx)
-       ("r-paws" ,r-paws)
-       ("r-pbapply" ,r-pbapply)
-       ("r-stringr" ,r-stringr)
-       ("r-syuzhet" ,r-syuzhet)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-data-table
+           r-dplyr
+           r-lubridate
+           r-magick
+           r-openxlsx
+           r-paws
+           r-pbapply
+           r-stringr
+           r-syuzhet))
+    (native-inputs (list r-knitr))
     (home-page "http://zoomgroupstats.org")
     (synopsis "Analyze text, audio, and video from Zoom meetings")
     (description
@@ -31440,21 +30937,20 @@ zoom/navigate any plot when called with any active plot.")
 (define-public r-zoolog
   (package
     (name "r-zoolog")
-    (version "0.4.0")
+    (version "0.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "zoolog" version))
        (sha256
         (base32
-         "1lgdr4hbpdh1b468i3l9msbj8wcd20m323lv5an9y6dnfb9pm986"))))
+         "1wxxxscw4ji4p4599vdw6vcrkqm0g75x1gh13m4758lb51wav9ks"))))
     (properties `((upstream-name . "zoolog")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rdpack" ,r-rdpack)
-       ("r-stringi" ,r-stringi)))
+     (list r-rdpack r-stringi))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://josempozo.github.io/zoolog/")
     (synopsis "Zooarchaeological analysis with log-ratios")
     (description
@@ -31506,12 +31002,12 @@ large datasets.")
     (properties `((upstream-name . "mlearning")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-class" ,r-class)
-       ("r-e1071" ,r-e1071)
-       ("r-ipred" ,r-ipred)
-       ("r-mass" ,r-mass)
-       ("r-nnet" ,r-nnet)
-       ("r-randomforest" ,r-randomforest)))
+     (list r-class
+           r-e1071
+           r-ipred
+           r-mass
+           r-nnet
+           r-randomforest))
     (home-page "http://www.sciviews.org/zooimage")
     (synopsis "Machine learning algorithms with unified interface")
     (description
@@ -31533,18 +31029,18 @@ algorithms.  Confusion matrices are provided too.")
     (properties `((upstream-name . "zooimage")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-digest" ,r-digest)
-       ("r-dt" ,r-dt)
-       ("r-filehash" ,r-filehash)
-       ("r-jpeg" ,r-jpeg)
-       ("r-mass" ,r-mass)
-       ("r-mda" ,r-mda)
-       ("r-mlearning" ,r-mlearning)
-       ("r-png" ,r-png)
-       ("r-shiny" ,r-shiny)
-       ("r-svdialogs" ,r-svdialogs)
-       ("r-svmisc" ,r-svmisc)
-       ("r-tiff" ,r-tiff)))
+     (list r-digest
+           r-dt
+           r-filehash
+           r-jpeg
+           r-mass
+           r-mda
+           r-mlearning
+           r-png
+           r-shiny
+           r-svdialogs
+           r-svmisc
+           r-tiff))
     (home-page "http://www.sciviews.org/zooimage")
     (synopsis "Analysis of numerical plankton images")
     (description
@@ -31568,8 +31064,8 @@ size spectra or biomasses, etc.).")
          "0grc378xppv0303sf4flfqz5002vq5a23nzbq4bsff41rww7dihc"))))
     (properties `((upstream-name . "zooaRch")))
     (build-system r-build-system)
-    (propagated-inputs `(("r-ggplot2" ,r-ggplot2)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+    (propagated-inputs (list r-ggplot2))
+    (native-inputs (list r-knitr))
     (home-page
      "https://cran.r-project.org/package=zooaRch")
     (synopsis
@@ -31596,10 +31092,9 @@ and analyze zooarchaeological data.")
     (properties `((upstream-name . "zonebuilder")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-sf" ,r-sf)))
+     (list r-rcolorbrewer r-sf))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/zonebuilders/zonebuilder")
     (synopsis "Create and explore geographic zoning systems")
     (description
@@ -31624,12 +31119,8 @@ concentric rings and radial lines emanating from a central point.")
     (properties `((upstream-name . "zonator")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-raster" ,r-raster)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-reshape2" ,r-reshape2)
-       ("r-rgdal" ,r-rgdal)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-ggplot2 r-raster r-rcolorbrewer r-reshape2 r-rgdal))
+    (native-inputs (list r-knitr))
     (home-page "https://cbig.github.io/zonator/")
     (synopsis "Utilities for Zonation spatial conservation prioritization")
     (description
@@ -31663,24 +31154,24 @@ convert dates to MMWR day, week, and year and the reverse.")
 (define-public r-crul
   (package
     (name "r-crul")
-    (version "1.1.0")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "crul" version))
        (sha256
         (base32
-         "1kjsc5gkx5k5cfwlfjp2cjm9cdzq2l1m68bnrjmahw3lkz8wzdph"))))
+         "133g0skz4lifl8hm8pqdryd2m2drbrm6mdfzbbsrw8fg46di86my"))))
     (properties `((upstream-name . "crul")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-curl" ,r-curl)
-       ("r-httpcode" ,r-httpcode)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-mime" ,r-mime)
-       ("r-r6" ,r-r6)
-       ("r-urltools" ,r-urltools)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-curl
+           r-httpcode
+           r-jsonlite
+           r-mime
+           r-r6
+           r-urltools))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/ropensci/crul")
     (synopsis "HTTP client")
     (description
@@ -31689,6 +31180,110 @@ requests, and mocking HTTP requests.  The package is built on R6, and takes
 inspiration from Ruby's @code{faraday} gem.")
     (license license:expat)))
 
+(define-public r-gistr
+  (package
+    (name "r-gistr")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "gistr" version))
+       (sha256
+        (base32
+         "0ac9ikrdg6i8xvlma0gizvsdva46408lk7hvsgkqirhy2ljy02hp"))))
+    (properties `((upstream-name . "gistr")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-assertthat
+           r-crul
+           r-dplyr
+           r-httr
+           r-jsonlite
+           r-knitr
+           r-magrittr
+           r-rmarkdown))
+    (native-inputs (list r-knitr))
+    (home-page "https://github.com/ropensci/gistr")
+    (synopsis "Work with Gists in browser")
+    (description
+     "This package allows the user to create new Github gists, update gists
+with new files, rename files, delete files, get and delete gists, star and
+un-star them, fork them, open a gist in your default browser, get an embed
+code for a gist, list gist commits, and get rate limit information when
+authenticated.")
+    (license license:expat)))
+
+(define-public r-rbokeh
+  (package
+    (name "r-rbokeh")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "rbokeh" version))
+       (sha256
+        (base32
+         "1h2fpzqf17pw9d09r1g1iyxsj5qma4fsk8vnar7f1z4fjyypvi6q"))
+       (snippet
+        '(for-each delete-file '("inst/htmlwidgets/lib/bokehjs/bokeh-widgets.min.js"
+                                 "inst/htmlwidgets/lib/bokehjs/bokeh.min.js")))))
+    (properties `((upstream-name . "rbokeh")))
+    (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'process-javascript
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "inst/htmlwidgets/lib/bokehjs"
+               (let ((mapping
+                      `((,(assoc-ref inputs "js-bokeh-widgets")
+                         . "bokeh-widgets.min.js")
+                        (,(assoc-ref inputs "js-bokeh")
+                         . "bokeh.min.js"))))
+                 (for-each (lambda (source target)
+                             (format #true "Processing ~a --> ~a~%"
+                                     source target)
+                             (invoke "esbuild" source "--minify"
+                                     (string-append "--outfile=" target)))
+                           (map car mapping)
+                           (map cdr mapping)))))))))
+    (propagated-inputs
+     (list r-digest
+           r-gistr
+           r-hexbin
+           r-htmlwidgets
+           r-jsonlite
+           r-lazyeval
+           r-magrittr
+           r-maps
+           r-pryr
+           r-scales))
+    ;; Version 0.12.15 is mentioned in lib/htmlwidgets/rbokeh.yaml.
+    (native-inputs
+     `(("esbuild" ,esbuild)
+       ("js-bokeh-widgets"
+        ,(origin
+           (method url-fetch)
+           (uri "https://unpkg.com/bokehjs@0.12.15/build/js/bokeh-widgets.js")
+           (sha256
+            (base32
+             "07v9lrkfcbdznpb10qqwi4m660zp65g85vlnfw7kn83zmkxkhhxy"))))
+       ("js-bokeh"
+        ,(origin
+           (method url-fetch)
+           (uri "https://unpkg.com/bokehjs@0.12.15/build/js/bokeh.js")
+           (sha256
+            (base32
+             "1pq0059aad7d2jv50nv9449p3w0gbkxkl0mhblc76m5d9qjqav2q"))))
+       ("r-knitr" ,r-knitr)))
+    (home-page "https://cran.r-project.org/web/packages/rbokeh/")
+    (synopsis "R interface for the Bokeh visualization library")
+    (description
+     "This package provides a native R plotting library that provides a
+flexible declarative interface for creating interactive web-based graphics,
+backed by the @url{https://bokeh.pydata.org/, Bokeh visualization library}.")
+    (license license:expat)))
+
 (define-public r-fauxpas
   (package
     (name "r-fauxpas")
@@ -31703,11 +31298,9 @@ inspiration from Ruby's @code{faraday} gem.")
     (properties `((upstream-name . "fauxpas")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-httpcode" ,r-httpcode)
-       ("r-r6" ,r-r6)
-       ("r-whisker" ,r-whisker)))
+     (list r-httpcode r-r6 r-whisker))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://docs.ropensci.org/fauxpas")
     (synopsis "HTTP error helpers")
     (description
@@ -31733,14 +31326,14 @@ configuration of status code, short description, and verbose message.")
     (properties `((upstream-name . "webmockr")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-crul" ,r-crul)
-       ("r-curl" ,r-curl)
-       ("r-fauxpas" ,r-fauxpas)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-magrittr" ,r-magrittr)
-       ("r-r6" ,r-r6)
-       ("r-urltools" ,r-urltools)))
+     (list r-base64enc
+           r-crul
+           r-curl
+           r-fauxpas
+           r-jsonlite
+           r-magrittr
+           r-r6
+           r-urltools))
     (home-page "https://github.com/ropensci/webmockr")
     (synopsis "Stubbing and setting expectations on HTTP Requests")
     (description
@@ -31765,9 +31358,9 @@ tests or outside of a testing context.")
     (properties `((upstream-name . "mockery")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-testthat" ,r-testthat)))
+     (list r-testthat))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/jfiksel/mockery")
     (synopsis "Mocking library for R")
     (description
@@ -31793,17 +31386,17 @@ present in the @code{testthat} package.")
     (properties `((upstream-name . "zoltr")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64url" ,r-base64url)
-       ("r-dplyr" ,r-dplyr)
-       ("r-httr" ,r-httr)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-magrittr" ,r-magrittr)
-       ("r-mmwrweek" ,r-mmwrweek)
-       ("r-mockery" ,r-mockery)
-       ("r-readr" ,r-readr)
-       ("r-rlang" ,r-rlang)
-       ("r-webmockr" ,r-webmockr)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-base64url
+           r-dplyr
+           r-httr
+           r-jsonlite
+           r-magrittr
+           r-mmwrweek
+           r-mockery
+           r-readr
+           r-rlang
+           r-webmockr))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/reichlab/zoltr")
     (synopsis "Interface to the Zoltar forecast repository API")
     (description
@@ -31830,10 +31423,7 @@ deleting and uploading forecast data, and downloading scores.")
     (properties `((upstream-name . "zoib")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-coda" ,r-coda)
-       ("r-formula" ,r-formula)
-       ("r-rjags" ,r-rjags)))
+     (list r-abind r-coda r-formula r-rjags))
     (home-page "https://www.r-project.org")
     (synopsis "Bayesian inference for beta regression")
     (description
@@ -31841,3 +31431,112 @@ deleting and uploading forecast data, and downloading scores.")
 regression and obtain Bayesian inference of the model via the Markov Chain
 Monte Carlo approach implemented in JAGS.")
     (license license:gpl3+)))
+
+(define-public r-logger
+  (package
+    (name "r-logger")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "logger" version))
+       (sha256
+        (base32 "08kym5i5fvbf5xhh9qdszp4jdgyc7j7zpnwzy68wabqz73aff6sg"))))
+    (properties `((upstream-name . "logger")))
+    (build-system r-build-system)
+    (native-inputs (list r-knitr))
+    (home-page "https://daroczig.github.io/logger/")
+    (synopsis "Lightweight and flexible logging utility")
+    (description
+     "Inspired by the the @code{futile.logger} R package and @code{logging}
+Python module, this utility provides a flexible and extensible way of
+formatting and delivering log messages with low overhead.")
+    (license license:agpl3+)))
+
+(define-public r-fasterize
+  (package
+    (name "r-fasterize")
+    (version "1.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (cran-uri "fasterize" version))
+        (sha256
+          (base32 "10bzl77c1b9jhcn1xp467qzp2n8c7s3wpxn53qjh1nwvbri5kd32"))))
+    (properties `((upstream-name . "fasterize")))
+    (build-system r-build-system)
+    (propagated-inputs
+      (list r-raster r-rcpp r-rcpparmadillo r-sp))
+    (native-inputs (list r-knitr))
+    (home-page "https://github.com/ecohealthalliance/fasterize")
+    (synopsis "Fast Polygon to Raster Conversion")
+    (description
+"This package provides a drop-in replacement for @code{rasterize} from
+the @code{raster} package that takes sf-type objects, and is much faster.
+There is support for the main options provided by the @code{rasterize}
+function, including setting the field used and background value, and
+options for aggregating multi-layer rasters.")
+    (license license:expat)))
+
+(define-public r-bien
+  (package
+    (name "r-bien")
+    (version "1.2.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (cran-uri "BIEN" version))
+        (sha256
+          (base32 "1dagrs54ciagm2mgqrvxl6k2akahr0qk63ifxqnks7iljm0x1gw6"))))
+    (properties `((upstream-name . "BIEN")))
+    (build-system r-build-system)
+    (native-inputs
+      (list r-knitr r-testthat))
+    (propagated-inputs
+      (list r-ape
+            r-dbi
+            r-doparallel
+            r-fasterize
+            r-foreach
+            r-raster
+            r-rgdal
+            r-rgeos
+            r-rpostgresql
+            r-sf
+            r-sp))
+    (home-page "https://cran.r-project.org/package=BIEN")
+    (synopsis "Tools for accessing the BIEN database")
+    (description
+     "This package provides tools for accessing the Botanical Information and
+Ecology Network (BIEN) database.  The BIEN database contains cleaned and
+standardized botanical data including occurrence, trait, plot and taxonomic
+data.  This package provides functions that query the BIEN database by
+constructing and executing optimized SQL queries.")
+    (license license:expat)))
+
+(define-public r-ggh4x
+  (package
+    (name "r-ggh4x")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "ggh4x" version))
+       (sha256
+        (base32
+         "0gv9ckkdqbcjknzsv8h3955wnikawdfypr279v74hvwyq86af29r"))))
+    (properties `((upstream-name . "ggh4x")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-ggplot2 r-gtable r-rlang r-scales r-vctrs))
+    (native-inputs
+     (list r-knitr))
+    (home-page "https://github.com/teunbrand/ggh4x")
+    (synopsis "Extension for ggplot2")
+    (description "This package is a @code{ggplot2} extension.  It provides some
+utility functions that do not entirely fit within the grammar of graphics
+concept.  The package extends @code{ggpplots} facets through customisation, by
+setting individual scales per panel, resizing panels and providing nested
+facets.  It also allows multiple colour, fill scales per plot and hosts a
+smaller collection of stats, geoms and axis guides.")
+    (license license:expat)))
diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index e3be9bcdcd..065ff6c8e8 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Antoine Côté <antoine.cote@posteo.net>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -96,7 +97,7 @@ shapes, lines and text to buffers.")
        #:cargo-development-inputs
        (("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.4))))
     (inputs
-     `(("wayland" ,wayland)))))
+     (list wayland))))
 
 (define-public rust-ansi-colours-1
   (package
@@ -137,7 +138,7 @@ approximated by values supported by the terminal.")
       (origin
         (method url-fetch)
         (uri (crate-uri "ansi_term" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1ljmkbilxgmhavxvxqa7qvm6f3fjggi7q2l3a72q9x0cxjvrnanm"))))
@@ -166,7 +167,7 @@ text or blue underlined text, on ANSI terminals.")
       (origin
         (method url-fetch)
         (uri (crate-uri "ansi_term" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "16wpvrghvd0353584i1idnsgm0r3vchg8fyrm0x8ayv1rgvbljgf"))))
@@ -210,11 +211,9 @@ text or blue underlined text, on ANSI terminals.")
         (("rust-bindgen" ,rust-bindgen-0.54)
          ("rust-metadeps" ,rust-metadeps-1))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libaom" ,libaom)
-       ("clang" ,clang)
-       ("llvm" ,llvm)))
+     (list libaom clang llvm))
     (home-page "https://github.com/rust-av/aom-rs")
     (synopsis "FFI bindings to aom")
     (description "This package provides FFI bindings to aom.")
@@ -240,11 +239,9 @@ text or blue underlined text, on ANSI terminals.")
        (("rust-bindgen" ,rust-bindgen-0.53)
         ("rust-metadeps" ,rust-metadeps-1))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libaom" ,libaom)
-       ("clang" ,clang)
-       ("llvm" ,llvm)))))
+     (list libaom clang llvm))))
 
 (define-public rust-ascii-canvas-2
   (package
@@ -592,11 +589,9 @@ and iOS.")
        (("rust-bindgen" ,rust-bindgen-0.54)
         ("rust-metadeps" ,rust-metadeps-1))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("dav1d" ,dav1d)
-       ("clang" ,clang)
-       ("llvm" ,llvm)))
+     (list dav1d clang llvm))
     (home-page "https://github.com/rust-av/dav1d-rs")
     (synopsis "FFI bindings to dav1d")
     (description "This package provides FFI bindings to dav1d.")
@@ -983,8 +978,7 @@ EUI-64, also known as MAC-48 media access control addresses.")
         ("rust-winapi" ,rust-winapi-0.3)
         ("rust-winit" ,rust-winit-0.24))))
     (inputs
-     `(("rust-wayland-client" ,rust-wayland-client-0.28)
-       ("rust-wayland-egl" ,rust-wayland-egl-0.28)))
+     (list rust-wayland-client-0.28 rust-wayland-egl-0.28))
     (home-page "https://github.com/tomaka/glutin")
     (synopsis "Cross-platform OpenGL context provider")
     (description "This package provides an OpenGL context provider.")
@@ -1995,7 +1989,7 @@ interactive applications.")
        #:cargo-development-inputs
        (("rust-avif-parse" ,rust-avif-parse-0.13))))
     (native-inputs
-     `(("nasm" ,nasm)))                 ;for building rav1e
+     (list nasm))                 ;for building rav1e
     (home-page "https://lib.rs/ravif")
     (synopsis "Library for encoding images in AVIF format")
     (description "This package is a rav1e-based pure Rust library for encoding
@@ -2055,7 +2049,7 @@ images in AVIF format.")
      (origin
        (method url-fetch)
        (uri (crate-uri "rgb" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
          "1lrv3x5h1lvdzg1qqr8aiysz978m35zpjdkyicnvkarnh8zkqzr8"))))
@@ -2212,7 +2206,7 @@ applications.")
        #:cargo-development-inputs
        (("rust-andrew" ,rust-andrew-0.2))))
     (inputs
-     `(("wayland" ,wayland)))))
+     (list wayland))))
 
 (define-public rust-tiff-0.6
   (package
@@ -2326,14 +2320,14 @@ applications.")
        #:cargo-development-inputs
        (("rust-tempfile" ,rust-tempfile-3))))
     (inputs
-     `(("rust-bitflags" ,rust-bitflags-1)
-       ("rust-downcast-rs" ,rust-downcast-rs-1)
-       ("rust-libc" ,rust-libc-0.2)
-       ("rust-nix" ,rust-nix-0.18)
-       ("rust-scoped-tls" ,rust-scoped-tls-1)
-       ("rust-wayland-commons" ,rust-wayland-commons-0.28)
-       ("rust-wayland-scanner" ,rust-wayland-scanner-0.28)
-       ("rust-wayland-sys" ,rust-wayland-sys-0.28)))
+     (list rust-bitflags-1
+           rust-downcast-rs-1
+           rust-libc-0.2
+           rust-nix-0.18
+           rust-scoped-tls-1
+           rust-wayland-commons-0.28
+           rust-wayland-scanner-0.28
+           rust-wayland-sys-0.28))
     (home-page "https://github.com/smithay/wayland-rs")
     (synopsis
      "Rust bindings to the standard C implementation of the wayland protocol")
@@ -2420,10 +2414,8 @@ the wayland protocol, client side.")
         ("rust-once-cell" ,rust-once-cell-1)
         ("rust-smallvec" ,rust-smallvec-1))))
     (inputs
-     `(("rust-nix" ,rust-nix-0.18)
-       ("rust-once-cell" ,rust-once-cell-1)
-       ("rust-smallvec" ,rust-smallvec-1)
-       ("rust-wayland-sys" ,rust-wayland-sys-0.28)))
+     (list rust-nix-0.18 rust-once-cell-1 rust-smallvec-1
+           rust-wayland-sys-0.28))
     (home-page "https://github.com/smithay/wayland-rs")
     (synopsis "Types and structures used by wayland-client and wayland-server")
     (description
@@ -2488,9 +2480,7 @@ and wayland-server.")
        (("rust-nix" ,rust-nix-0.18)
         ("rust-xcursor" ,rust-xcursor-0.3))))
     (inputs
-     `(("rust-nix" ,rust-nix-0.18)
-       ("rust-wayland-client" ,rust-wayland-client-0.28)
-       ("rust-xcursor" ,rust-xcursor-0.3)))
+     (list rust-nix-0.18 rust-wayland-client-0.28 rust-xcursor-0.3))
     (home-page "https://github.com/smithay/wayland-rs")
     (synopsis "Bindings to libwayland-cursor")
     (description
@@ -2512,11 +2502,10 @@ properly display animated cursors.")
         (base32 "1xd7iap0x4sidmy9dv02cdnxjhnbk9li7r7f39x9cg0i8xs50ly6"))))
     (build-system cargo-build-system)
     (inputs
-     `(("rust-wayland-client" ,rust-wayland-client-0.28)
-       ("rust-wayland-sys" ,rust-wayland-sys-0.28)))
+     (list rust-wayland-client-0.28 rust-wayland-sys-0.28))
     ;; For the PKG_CONFIG_PATH environment variable.
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/smithay/wayland-rs")
     (synopsis "Bindings to libwayland-egl")
     (description
@@ -2542,11 +2531,9 @@ initializing an OpenGL or Vulkan context.")
      `(#:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1))))
     (inputs
-     `(("rust-bitflags" ,rust-bitflags-1)
-       ("rust-wayland-client" ,rust-wayland-client-0.28)
-       ("rust-wayland-commons" ,rust-wayland-commons-0.28)
-       ("rust-wayland-scanner" ,rust-wayland-scanner-0.28)
-       ("rust-wayland-server" ,rust-wayland-server-0.28)))
+     (list rust-bitflags-1 rust-wayland-client-0.28
+           rust-wayland-commons-0.28 rust-wayland-scanner-0.28
+           rust-wayland-server-0.28))
     (home-page "https://github.com/smithay/wayland-rs")
     (synopsis "Generated API for the officials Wayland protocol extensions")
     (description
@@ -2614,9 +2601,7 @@ extensions.")
         (base32 "0g8ky63qk27in7zajycj3fyydsxlj19hanfcvr8d7z5kcxbvl43h"))))
     (build-system cargo-build-system)
     (inputs
-     `(("rust-proc-macro2" ,rust-proc-macro2-1)
-       ("rust-quote" ,rust-quote-1)
-       ("rust-xml-rs" ,rust-xml-rs-0.8)))
+     (list rust-proc-macro2-1 rust-quote-1 rust-xml-rs-0.8))
     (home-page "https://github.com/smithay/wayland-rs")
     (synopsis "Generate Rust APIs from XML Wayland protocol files")
     (description
@@ -2684,16 +2669,16 @@ wayland-client crate for usable bindings.")
         ("rust-parking-lot" ,rust-parking-lot-0.11)
         ("rust-scoped-tls" ,rust-scoped-tls-1))))
     (inputs
-     `(("rust-bitflags" ,rust-bitflags-1)
-       ("rust-downcast-rs" ,rust-downcast-rs-1)
-       ("rust-lazy-static" ,rust-lazy-static-1)
-       ("rust-libc" ,rust-libc-0.2)
-       ("rust-nix" ,rust-nix-0.18)
-       ("rust-parking-lot" ,rust-parking-lot-0.11)
-       ("rust-scoped-tls" ,rust-scoped-tls-1)
-       ("rust-wayland-commons" ,rust-wayland-commons-0.28)
-       ("rust-wayland-scanner" ,rust-wayland-scanner-0.28)
-       ("rust-wayland-sys" ,rust-wayland-sys-0.28)))
+     (list rust-bitflags-1
+           rust-downcast-rs-1
+           rust-lazy-static-1
+           rust-libc-0.2
+           rust-nix-0.18
+           rust-parking-lot-0.11
+           rust-scoped-tls-1
+           rust-wayland-commons-0.28
+           rust-wayland-scanner-0.28
+           rust-wayland-sys-0.28))
     (home-page "https://github.com/smithay/wayland-rs")
     (synopsis
      "Bindings to the standard C implementation of the wayland protocol")
@@ -2784,12 +2769,10 @@ the wayland protocol, server side.")
                   (string-append libwayland "/lib/" shared-lib)))
                #t))))))
     (inputs
-     `(("rust-dlib" ,rust-dlib-0.4)
-       ("rust-lazy-static" ,rust-lazy-static-1)
-       ("rust-libc" ,rust-libc-0.2)
-       ("rust-pkg-config" ,rust-pkg-config-0.3)))
+     (list rust-dlib-0.4 rust-lazy-static-1 rust-libc-0.2
+           rust-pkg-config-0.3))
     (propagated-inputs
-     `(("wayland" ,wayland)))
+     (list wayland))
     (home-page "https://github.com/smithay/wayland-rs")
     (synopsis "FFI bindings to the various @file{libwayland-*.so} libraries")
     (description
@@ -2879,7 +2862,7 @@ crate @code{rust-wayland-client} for usable bindings.")
         ("rust-winapi" ,rust-winapi-0.3)
         ("rust-x11-dl" ,rust-x11-dl-2))))
     (inputs
-     `(("rust-wayland-client" ,rust-wayland-client-0.28)))
+     (list rust-wayland-client-0.28))
     (home-page "https://github.com/rust-windowing/winit")
     (synopsis "Window creation library")
     (description
@@ -3005,6 +2988,33 @@ the platform-specific getters provided by winit, or another library.")
     (description "This crate provides X11 library bindings for Rust.")
     (license license:expat)))
 
+(define-public rust-x11rb-0.8
+  (package
+    (name "rust-x11rb")
+    (version "0.8.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "x11rb" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "068g5ll4l5f35c2v098hj0kj2c9ma0r7v3pbli164q9g7w5hiyvg"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-gethostname" ,rust-gethostname-0.2)
+         ("rust-libc" ,rust-libc-0.2)
+         ("rust-libloading" ,rust-libloading-0.7)
+         ("rust-nix" ,rust-nix-0.20)
+         ("rust-once-cell" ,rust-once-cell-1)
+         ("rust-winapi" ,rust-winapi-0.3)
+         ("rust-winapi-wsapoll" ,rust-winapi-wsapoll-0.1))))
+    (home-page "https://github.com/psychon/x11rb")
+    (synopsis "Rust bindings to X11")
+    (description "This package provides Rust bindings to X11")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-x11-clipboard-0.5
   (package
     (name "rust-x11-clipboard")
@@ -3044,7 +3054,7 @@ the platform-specific getters provided by winit, or another library.")
      `(#:tests? #f  ; Tests require display server.
        #:cargo-inputs (("rust-xcb" ,rust-xcb-0.9))))
     (native-inputs
-     `(("python" ,python)))))
+     (list python))))
 
 (define-public rust-x11-dl-2
   (package
diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index 0d72fbf321..b22905629f 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -55,8 +55,7 @@
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))
     (inputs
-     `(("atk" ,atk)
-       ("glib" ,glib)))
+     (list atk glib))
     (home-page "https://gtk-rs.org/")
     (synopsis "FFI bindings to libatk-1")
     (description "FFI bindings to libatk-1")
@@ -86,8 +85,7 @@
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
     (inputs
-     `(("atk" ,atk)
-       ("glib" ,glib)))
+     (list atk glib))
     (home-page "https://gtk-rs.org/")
     (synopsis "Rust bindings for the ATK library")
     (description "Rust bindings for the ATK library")
@@ -119,7 +117,7 @@
        #:cargo-development-inputs
        (("rust-tempfile" ,rust-tempfile-3))))
     (inputs
-     `(("cairo" ,cairo)))
+     (list cairo))
     (home-page "https://gtk-rs.org/")
     (synopsis "Rust bindings for the Cairo library")
     (description "Rust bindings for the Cairo library")
@@ -198,7 +196,7 @@
         ("rust-winapi" ,rust-winapi-0.3)
         ("rust-x11" ,rust-x11-2))))
     (inputs
-     `(("cairo" ,cairo)))
+     (list cairo))
     (home-page "https://gtk-rs.org/")
     (synopsis "FFI bindings to libcairo")
     (description "This package provides FFI bindings to libcairo.")
@@ -255,11 +253,7 @@
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
     (inputs
-     `(("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("pango" ,pango)))
+     (list cairo gdk-pixbuf glib gtk+ pango))
     (home-page "https://gtk-rs.org/")
     (synopsis "Rust bindings for the GDK 3 library")
     (description "This package provides Rust bindings for the GDK 3 library.")
@@ -321,7 +315,7 @@
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
     (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)))
+     (list gdk-pixbuf))
     (home-page "https://gtk-rs.org/")
     (synopsis "Rust bindings for the GdkPixbuf library")
     (description "Rust bindings for the GdkPixbuf library")
@@ -405,7 +399,7 @@
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))
     (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)))
+     (list gdk-pixbuf))
     (home-page "https://gtk-rs.org/")
     (synopsis "FFI bindings to libgdk_pixbuf-2.0")
     (description "This package provides FFI bindings to @code{libgdk_pixbuf-2.0}.")
@@ -463,11 +457,7 @@
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))
     (inputs
-     `(("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("gtk+" ,gtk+)
-       ("glib" ,glib)
-       ("pango" ,pango)))
+     (list cairo gdk-pixbuf gtk+ glib pango))
     (home-page "https://gtk-rs.org/")
     (synopsis "FFI bindings to libgdk-3")
     (description "FFI bindings to libgdk-3")
@@ -533,7 +523,7 @@
        (("rust-gir-format-check" ,rust-gir-format-check-0.1)
         ("rust-serial-test" ,rust-serial-test-0.4))))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (home-page "https://gtk-rs.org/")
     (synopsis "Rust bindings for the Gio library")
     (description "Rust bindings for the Gio library")
@@ -621,7 +611,7 @@
         ("rust-system-deps" ,rust-system-deps-1)
         ("rust-winapi" ,rust-winapi-0.3))))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (home-page "https://gtk-rs.org/")
     (synopsis "FFI bindings to libgio-2.0")
     (description "This package provides FFI bindings to libgio-2.0.")
@@ -697,7 +687,7 @@
         ("rust-libc" ,rust-libc-0.2)
         ("rust-once-cell" ,rust-once-cell-1))))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (home-page "https://gtk-rs.org/")
     (synopsis "Rust bindings for the GLib library")
     (description "Rust bindings for the GLib library")
@@ -807,7 +797,7 @@
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (home-page "https://gtk-rs.org/")
     (synopsis "FFI bindings to libglib-2.0")
     (description "This package provides FFI bindings to libglib-2.0.")
@@ -858,7 +848,7 @@
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (home-page "https://gtk-rs.org/")
     (synopsis "FFI bindings to libgobject-2.0")
     (description "This package provides FFI bindings to libgobject-2.0.")
@@ -925,11 +915,7 @@
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
     (inputs
-     `(("atk" ,atk)
-       ("cairo" ,cairo)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("pango" ,pango)))
+     (list atk cairo glib gtk+ pango))
     (home-page "https://gtk-rs.org/")
     (synopsis "Rust bindings for the GTK+ 3 library")
     (description "This package provides Rust bindings for the GTK+ 3 library.")
@@ -985,7 +971,7 @@
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))
     (inputs
-     `(("gtk+" ,gtk+)))
+     (list gtk+))
     (home-page "https://gtk-rs.org/")
     (synopsis "FFI bindings to libgtk-3")
     (description "This package provides FFI bindings to libgtk-3.")
@@ -1017,7 +1003,7 @@
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
     (inputs
-     `(("pango" ,pango)))
+     (list pango))
     (home-page "https://gtk-rs.org/")
     (synopsis "Rust bindings for the Pango library")
     (description "Rust bindings for the Pango library")
@@ -1097,7 +1083,7 @@
         ("rust-libc" ,rust-libc-0.2)
         ("rust-system-deps" ,rust-system-deps-1))))
     (inputs
-     `(("pango" ,pango)))
+     (list pango))
     (home-page "https://gtk-rs.org/")
     (synopsis "FFI bindings to libpango-1.0")
     (description "This package provides FFI bindings to @code{libpango-1.0}.")
@@ -1156,7 +1142,7 @@
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
     (inputs
-     `(("gtk+" ,gtk+)))
+     (list gtk+))
     (home-page "https://gtk-rs.org/")
     (synopsis "Rust bindings for the PangoCairo library")
     (description
@@ -1218,7 +1204,7 @@
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))
     (inputs
-     `(("gtk+" ,gtk+)))
+     (list gtk+))
     (home-page "https://gtk-rs.org/")
     (synopsis "FFI bindings to libgtk-3")
     (description "This package provides FFI bindings to libgtk-3.")
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 87afb3314a..28bc88c887 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -19,6 +19,10 @@
 ;;; Copyright © 2021 Antero Mejr <antero@kodmin.com>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2021 Jacob Hrbek <kreyren@rixotstudio.cz>
+;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -44,8 +48,10 @@
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages crates-graphics)
   #:use-module (gnu packages crates-gtk)
   #:use-module (gnu packages crypto)
@@ -58,10 +64,12 @@
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
+  #:use-module (gnu packages mail)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages rust)
   #:use-module (gnu packages rust-apps)
@@ -979,6 +987,59 @@ threads.  This makes it robust in face of panics (it won't make your program
 deadlock, like the standard Barrier).")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-adblock-0.4
+  (package
+    (name "rust-adblock")
+    (version "0.4.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/brave/adblock-rust")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (patches (search-patches "rust-adblock-ignore-live-tests.patch"))
+       (sha256
+        (base32
+         "0l2iacwkm66z6wc71wy62x2k5xllx94adrqncicxqsx203c3ljpl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-addr" ,rust-addr-0.14)
+        ("rust-base64" ,rust-base64-0.13)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cssparser" ,rust-cssparser-0.25)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-idna" ,rust-idna-0.2)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-lifeguard" ,rust-lifeguard-0.6)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-percent-encoding"
+         ,rust-percent-encoding-2)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-rmp-serde" ,rust-rmp-serde-0.13)
+        ("rust-rmp-serde" ,rust-rmp-serde-0.15)
+        ("rust-seahash" ,rust-seahash-3)
+        ("rust-selectors" ,rust-selectors-0.21)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-twoway" ,rust-twoway-0.2)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-csv" ,rust-csv-1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-reqwest" ,rust-reqwest-0.11)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-tokio" ,rust-tokio-1.8))))
+    (native-inputs (list pkg-config openssl))
+    (home-page "https://github.com/brave/adblock-rust/")
+    (synopsis "Adblock Plus syntax filter parsing and matching")
+    (description "This package provides native Rust module for Adblock Plus
+syntax (e.g.  EasyList, EasyPrivacy) filter parsing and matching.")
+    (license license:mpl2.0)))
+
 (define-public rust-addr2line-0.14
   (package
     (name "rust-addr2line")
@@ -1010,6 +1071,32 @@ deadlock, like the standard Barrier).")
 Rust, using gimli.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-addr-0.14
+  (package
+    (name "rust-addr")
+    (version "0.14.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "addr" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "0w6v0wwv203v0lyvwsq27rwfhvmw7dsmrqc9r3gszbx2974wlk65"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-no-std-net" ,rust-no-std-net-0.5)
+         ("rust-psl" ,rust-psl-2)
+         ("rust-psl-types" ,rust-psl-types-2)
+         ("rust-publicsuffix" ,rust-publicsuffix-2)
+         ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/addr-rs/addr")
+    (synopsis "Parsing domain names")
+    (description "This package provides a library for parsing domain names.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-addr2line-0.11
   (package
     (inherit rust-addr2line-0.14)
@@ -1109,7 +1196,7 @@ checksum, used in the zlib compression format.")
         (method url-fetch)
         (uri (crate-uri "adler32" version))
         (file-name
-          (string-append name "-" version ".crate"))
+          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0bgks405vz823bphgwhj4l9h6vpfh900s0phfk4qqijyh9xhfysn"))))
@@ -1172,8 +1259,34 @@ with Associated Data (AEAD) algorithms.")
        (("rust-generic-array" ,rust-generic-array-0.12)
         ("rust-heapless" ,rust-heapless-0.5))))))
 
+(define-public rust-aes-0.6
+  (package
+    (name "rust-aes")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "aes" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0q85mw70mgr4glza9y9lrs9nxfa1cdcqzfk6wx0smb3623pr2hw8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aes-soft" ,rust-aes-soft-0.6)
+        ("rust-aesni" ,rust-aesni-0.10)
+        ("rust-cipher" ,rust-cipher-0.2))
+       #:cargo-development-inputs
+       (("rust-cipher" ,rust-cipher-0.2))))
+    (home-page "https://github.com/RustCrypto/block-ciphers")
+    (synopsis "Facade for AES (Rijndael) block ciphers implementations")
+    (description "This package provides a facade for AES (Rijndael) block
+ciphers implementations.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-aes-0.4
   (package
+    (inherit rust-aes-0.6)
     (name "rust-aes")
     (version "0.4.0")
     (source
@@ -1184,19 +1297,13 @@ with Associated Data (AEAD) algorithms.")
        (sha256
         (base32
          "1xgsp2bn5llsppald60iw4497gaspslg0a8hknhniiz4zmki607p"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-aes-soft" ,rust-aes-soft-0.4)
         ("rust-aesni" ,rust-aesni-0.7)
         ("rust-block-cipher" ,rust-block-cipher-0.7))
        #:cargo-development-inputs
-       (("rust-block-cipher" ,rust-block-cipher-0.7))))
-    (home-page "https://github.com/RustCrypto/block-ciphers")
-    (synopsis "Facade for AES (Rijndael) block ciphers implementations")
-    (description "This package provides a facade for AES (Rijndael) block
-ciphers implementations.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-block-cipher" ,rust-block-cipher-0.7))))))
 
 (define-public rust-aes-0.3
   (package
@@ -1273,21 +1380,21 @@ acceleration.")
         ("rust-subtle" ,rust-subtle-2)
         ("rust-zeroize" ,rust-zeroize-1))))))
 
-(define-public rust-aes-soft-0.4
+(define-public rust-aes-soft-0.6
   (package
     (name "rust-aes-soft")
-    (version "0.4.0")
+    (version "0.6.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "aes-soft" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "19szsg0qqxq42k7bj5p3svb147n8wxy9a20n4g7mcl2fwrz689a9"))))
+        (base32 "0wj0fi2pvmlw09yvb1aqf0mfkzrfxmjsf90finijh255ir4wf55y"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t
+       #:cargo-inputs
        (("rust-block-cipher" ,rust-block-cipher-0.7)
         ("rust-byteorder" ,rust-byteorder-1)
         ("rust-opaque-debug" ,rust-opaque-debug-0.2))
@@ -1296,9 +1403,32 @@ acceleration.")
     (home-page "https://github.com/RustCrypto/block-ciphers")
     (synopsis "Bit-sliced implementation of AES (Rijndael) block ciphers")
     (description "This package provides a bit-sliced implementation of
-AES (Rijndael) block ciphers.")
+AES (Rijndael) block ciphers.
+
+This package is deprecated and was replaced by the @code{aes} crate.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-aes-soft-0.4
+  (package
+    (inherit rust-aes-soft-0.6)
+    (name "rust-aes-soft")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "aes-soft" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "19szsg0qqxq42k7bj5p3svb147n8wxy9a20n4g7mcl2fwrz689a9"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-block-cipher" ,rust-block-cipher-0.7)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-opaque-debug" ,rust-opaque-debug-0.2))
+       #:cargo-development-inputs
+       (("rust-block-cipher" ,rust-block-cipher-0.7))))))
+
 (define-public rust-aes-soft-0.3
   (package
     (inherit rust-aes-soft-0.4)
@@ -1318,8 +1448,34 @@ AES (Rijndael) block ciphers.")
         ("rust-byteorder" ,rust-byteorder-1)
         ("rust-opaque-debug" ,rust-opaque-debug-0.2))))))
 
+(define-public rust-aesni-0.10
+  (package
+    (name "rust-aesni")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "aesni" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1kmh07fp9hbi1aa8dr2rybbgw8vqz6hjmk34c4w7sbscx7si2bpa"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cipher" ,rust-cipher-0.2)
+        ("rust-opaque-debug" ,rust-opaque-debug-0.3))))
+    (home-page "https://github.com/RustCrypto/block-ciphers")
+    (synopsis "AES (Rijndael) block ciphers implementation using AES-NI")
+    (description "This package provides an implementation of AES (Rijndael)
+block ciphers using AES-NI.
+
+This package is deprecated and was replaced by the @code{aes} crate.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-aesni-0.7
   (package
+    (inherit rust-aesni-0.10)
     (name "rust-aesni")
     (version "0.7.0")
     (source
@@ -1330,7 +1486,6 @@ AES (Rijndael) block ciphers.")
        (sha256
         (base32
          "0r6j0mjkyqnwvgib01cvrwfw8rlx1biw75234niv723n1fdx6l6h"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-block-cipher" ,rust-block-cipher-0.7)
@@ -1338,12 +1493,7 @@ AES (Rijndael) block ciphers.")
         ("rust-stream-cipher" ,rust-stream-cipher-0.4))
        #:cargo-development-inputs
        (("rust-block-cipher" ,rust-block-cipher-0.7)
-        ("rust-stream-cipher" ,rust-stream-cipher-0.4))))
-    (home-page "https://github.com/RustCrypto/block-ciphers")
-    (synopsis "AES (Rijndael) block ciphers implementation using AES-NI")
-    (description "This package provides an implementation of AES (Rijndael)
-block ciphers using AES-NI.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-stream-cipher" ,rust-stream-cipher-0.4))))))
 
 (define-public rust-aesni-0.6
   (package
@@ -1877,7 +2027,7 @@ escape codes.")
       (origin
         (method url-fetch)
         (uri (crate-uri "antidote" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "19g2sw2qa2ibnh4x7j1snk46593jgx6y7rnvva496ynq61af5z9l"))))
@@ -1893,7 +2043,7 @@ escape codes.")
 (define-public rust-anyhow-1
   (package
     (name "rust-anyhow")
-    (version "1.0.37")
+    (version "1.0.46")
     (source
      (origin
        (method url-fetch)
@@ -1902,7 +2052,7 @@ escape codes.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "11kaqp25lchr2ckyc46zm6blzndnw0w2w8qv0sp8z4xcxqgw2rzf"))))
+         "0w0zm1bqk5kbk834r4xszlzqiln4vw5k1lnlswyjkh24khi2ia1s"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
@@ -1969,6 +2119,30 @@ type.")
 on every platform.")
     (license license:expat)))
 
+(define-public rust-approx-0.5
+  (package
+    (name "rust-approx")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "approx" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "17p9g3yl061zdlrqj10npybmng81jz71dzmcanmjgcb35qhgfb87"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-num-complex" ,rust-num-complex-0.4)
+        ("rust-num-traits" ,rust-num-traits-0.2))))
+    (home-page "https://github.com/brendanzab/approx")
+    (synopsis "Approximate floating point equality comparisons and assertions")
+    (description
+     "This crate provides facilities for testing the approximate equality of
+floating-point based types, using either relative difference, or units in the
+last place (ULPs) comparisons.")
+    (license license:asl2.0)))
+
 (define-public rust-approx-0.4
   (package
     (name "rust-approx")
@@ -2093,20 +2267,21 @@ coverage-guided, mutation-based fuzzers.")
 (define-public rust-arboard-1
   (package
     (name "rust-arboard")
-    (version "1.1.0")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "arboard" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0wpyv732fxkplmiwik1sbgdlnbk748w1aqpkc71gn5lm2ns9w545"))))
+        (base32 "1a5qfmpzcf5rwlwsligf9z1gzndpvj0jncc4s3k3z5g214c4l127"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-clipboard-win" ,rust-clipboard-win-4)
         ("rust-core-graphics" ,rust-core-graphics-0.21)
+        ("rust-env-logger" ,rust-env-logger-0.8)
         ("rust-image" ,rust-image-0.23)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
@@ -2114,9 +2289,11 @@ coverage-guided, mutation-based fuzzers.")
         ("rust-objc-foundation" ,rust-objc-foundation-0.1)
         ("rust-objc-id" ,rust-objc-id-0.1)
         ("rust-scopeguard" ,rust-scopeguard-1)
+        ("rust-simple-logger" ,rust-simple-logger-1)
         ("rust-thiserror" ,rust-thiserror-1)
         ("rust-winapi" ,rust-winapi-0.3)
-        ("rust-xcb" ,rust-xcb-0.9))))
+        ("rust-wl-clipboard-rs" ,rust-wl-clipboard-rs-0.4)
+        ("rust-x11rb" ,rust-x11rb-0.8))))
     (home-page "https://github.com/ArturKovacs/arboard")
     (synopsis "Image and text handling for the OS clipboard")
     (description
@@ -2201,6 +2378,71 @@ coverage-guided, mutation-based fuzzers.")
 @code{arg_enum}.")
     (license license:expat)))
 
+(define-public rust-argh-shared-0.1
+  (package
+    (name "rust-argh-shared")
+    (version "0.1.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "argh_shared" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "0crzkzr4mq9gyys3m0idgsfwwrwd4dk70scp7rspvb2fmgd01piq"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/google/argh")
+    (synopsis "Derive-based argument parsing optimized for code size")
+    (description "Derive-based argument parsing optimized for code size")
+    (license license:bsd-3)))
+
+(define-public rust-argh-derive-0.1
+  (package
+    (name "rust-argh-derive")
+    (version "0.1.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "argh_derive" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "13qz9i9frdjl1v9aqw5b2cs7wn3h34x2xkpsi9wcl1hcpjd23ba8"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build?
+        #t
+        #:cargo-inputs
+        (("rust-argh-shared" ,rust-argh-shared-0.1)
+         ("rust-heck" ,rust-heck-0.3)
+         ("rust-proc-macro2" ,rust-proc-macro2-1)
+         ("rust-quote" ,rust-quote-1)
+         ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/google/argh")
+    (synopsis "Derive-based argument parsing optimized for code size")
+    (description "Derive-based argument parsing optimized for code size")
+    (license license:bsd-3)))
+
+(define-public rust-argh-0.1
+  (package
+    (name "rust-argh")
+    (version "0.1.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "argh" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "1gy9y69d38q7f5147kj823swgggc3m30x7z2z1lrjpwpsxncf8zh"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-argh-derive" ,rust-argh-derive-0.1)
+         ("rust-argh-shared" ,rust-argh-shared-0.1))))
+    (home-page "https://github.com/google/argh")
+    (synopsis "Derive-based argument parser optimized for code size")
+    (description "Derive-based argument parser optimized for code size")
+    (license license:bsd-3)))
+
 (define-public rust-argon2rs-0.2
   (package
     (name "rust-argon2rs")
@@ -2234,6 +2476,25 @@ coverage-guided, mutation-based fuzzers.")
 that runs on Argon2.")
     (license license:expat)))
 
+(define-public rust-array-macro-1
+  (package
+    (name "rust-array-macro")
+    (version "1.0.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "array-macro" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19mdx2xlppnqwl6rhsbzylx61a0kkp2ql8q16195b7iga977ps86"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://gitlab.com/KonradBorowski/array-macro")
+    (synopsis "Array multiple elements constructor syntax")
+    (description "This package implements constructor syntax for arrays with
+multiple elements.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-array-ops-0.1
   (package
     (name "rust-array-ops")
@@ -2432,6 +2693,94 @@ format.")
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1))))))
 
+(define-public rust-arrow2-0.5
+  (package
+    (name "rust-arrow2")
+    (version "0.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "arrow2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "042m859jfffnhi84qc919pkyanlr98wqqf67pcrylk4hhh0v84xx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ahash" ,rust-ahash-0.7)
+        ("rust-base64" ,rust-base64-0.13)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-chrono-tz" ,rust-chrono-tz-0.5)
+        ("rust-comfy-table" ,rust-comfy-table-4)
+        ("rust-csv" ,rust-csv-1)
+        ("rust-flatbuffers" ,rust-flatbuffers-2)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-hash-hasher" ,rust-hash-hasher-2)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-lexical-core" ,rust-lexical-core-0.8)
+        ("rust-lz4" ,rust-lz4-1)
+        ("rust-multiversion" ,rust-multiversion-0.6)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-packed-simd-2" ,rust-packed-simd-2-0.3)
+        ("rust-parquet2" ,rust-parquet2-0.4)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-streaming-iterator" ,rust-streaming-iterator-0.1)
+        ("rust-strength-reduce" ,rust-strength-reduce-0.2)
+        ("rust-zstd" ,rust-zstd-0.9))))
+    (home-page "https://github.com/jorgecarleitao/arrow2")
+    (synopsis "Unofficial implementation of Apache Arrow spec in safe Rust")
+    (description
+     "Arrow2 is a Rust library to work with the Arrow format.  It is
+a re-write of the official Arrow crate using transmute-free operations.")
+    (license license:asl2.0)))
+
+(define-public rust-article-scraper-1
+  (package
+    (name "rust-article-scraper")
+    (version "1.1.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "article_scraper" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1l904hn99fgj83f3dhspxgz1j3xzgjbnbfsgvmhd1jg5l4hqfhxp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ;tests use the network
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.13)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-encoding-rs" ,rust-encoding-rs-0.8)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-image" ,rust-image-0.23)
+        ("rust-libxml" ,rust-libxml-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-reqwest" ,rust-reqwest-0.11)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-url" ,rust-url-2))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list libxml2 openssl))
+    (home-page "https://gitlab.com/news-flash/article_scraper")
+    (synopsis "Scrap article contents from the web")
+    (description "This package provides a crate to scrap article contents from
+the web.")
+    ;; No copyright headers in the source code.  LICENSE indicates gpl3.
+    (license license:gpl3)))
+
 (define-public rust-askama-escape-0.10
   (package
     (name "rust-askama-escape")
@@ -2636,6 +2985,43 @@ standard library.")
        #:cargo-inputs
        (("rust-quickcheck" ,rust-quickcheck-0.4))))))
 
+(define-public rust-ascii-utils-0.9
+  (package
+    (name "rust-ascii-utils")
+    (version "0.9.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ascii_utils" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0jpp550pwi38msflpy7lnqm2r153kn9k19bss6k9ak9yacq8z4vi"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/tredoe/ascii_utils")
+    (synopsis "Utilities to handle ASCII characters")
+    (description
+     "This library provides utilities to handle ASCII characters.")
+    (license license:mpl2.0)))
+
+(define-public rust-assert-0.7
+  (package
+    (name "rust-assert")
+    (version "0.7.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "assert" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1hnph97yz3hpf71s4rdzcrgd492d1m7rj0k48ymxl1w5d2g8v450"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/stainless-steel/assert")
+    (synopsis "Assertions for testing")
+    (description "This package provides assertions for testing.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-assert-cli-0.6
   (package
     (name "rust-assert-cli")
@@ -2716,8 +3102,35 @@ standard library.")
        #:cargo-development-inputs
        (("rust-docmatic" ,rust-docmatic-0.1))))))
 
+(define-public rust-assert-fs-1
+  (package
+    (name "rust-assert-fs")
+    (version "1.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "assert-fs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0rcllf1d1l121fnsxy84bbqkg1sym5gs4mp0aw1nyv3f0sinmjmh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-globwalk" ,rust-globwalk-0.8)
+        ("rust-predicates" ,rust-predicates-2)
+        ("rust-predicates-core" ,rust-predicates-core-1)
+        ("rust-predicates-tree" ,rust-predicates-tree-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/assert-rs/assert_fs")
+    (synopsis "Filesystem fixtures and assertions for testing")
+    (description
+     "This crate provides file system fixtures and assertions for testing.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-assert-fs-0.11
   (package
+    (inherit rust-assert-fs-1)
     (name "rust-assert-fs")
     (version "0.11.3")
     (source
@@ -2729,7 +3142,6 @@ standard library.")
         (sha256
          (base32
           "1h1q90qskbylv4g3jyizdanj73835q7vvq7q10y555x4gnavmrjc"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-globwalk" ,rust-globwalk-0.5)
@@ -2738,12 +3150,27 @@ standard library.")
         ("rust-predicates-tree" ,rust-predicates-tree-1)
         ("rust-tempfile" ,rust-tempfile-3))
        #:cargo-development-inputs
-       (("rust-docmatic" ,rust-docmatic-0.1))))
-    (home-page "https://github.com/assert-rs/assert_fs")
-    (synopsis "File system fixtures and assertions for testing")
+       (("rust-docmatic" ,rust-docmatic-0.1))))))
+
+(define-public rust-assert-impl-0.1
+  (package
+    (name "rust-assert-impl")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "assert-impl" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "17jvig9rwdc1sf1j5q8q9k69njg3k8g7x7g6wcb711hcvq9l6in3"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/upsuper/assert-impl")
+    (synopsis "Macro for static assert that types implement a trait or not")
     (description
-     "File system fixtures and assertions for testing.")
-    (license (list license:expat license:asl2.0))))
+     "This carte provides a macro for static assert that types implement
+a trait or not.")
+    (license license:expat)))
 
 (define-public rust-assert-json-diff-1
   (package
@@ -3487,23 +3914,25 @@ interfaces you are used to, but in an async version and ready for Rust's
 (define-public rust-async-stream-0.3
   (package
     (name "rust-async-stream")
-    (version "0.3.0")
+    (version "0.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "async-stream" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0p19qn5igblb86d35lda72q8vimk2iw8hk7r07wjj5y0rdqdyw1n"))))
+        (base32 "0986b72jksg4lndw76py9glry3snc29bbqrna874wl5jwgkp84qp"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:cargo-test-flags '("--release" "--"
+                            "--skip=test")
+       #:cargo-inputs
        (("rust-async-stream-impl" ,rust-async-stream-impl-0.3)
         ("rust-futures-core" ,rust-futures-core-0.3))
        #:cargo-development-inputs
        (("rust-futures-util" ,rust-futures-util-0.3)
-        ("rust-tokio" ,rust-tokio-0.2)
-        ("rust-tokio-test" ,rust-tokio-test-0.2)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tokio-test" ,rust-tokio-test-0.4)
         ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/tokio-rs/async-stream")
     (synopsis "Asynchronous streams using async & await notation")
@@ -3515,14 +3944,14 @@ notation.")
 (define-public rust-async-stream-impl-0.3
   (package
     (name "rust-async-stream-impl")
-    (version "0.3.0")
+    (version "0.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "async-stream-impl" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0w0aif9aw103b5wrm1svkqdh7aaihjywa21819d8m3lzzj78nm53"))))
+        (base32 "024k57iwmmhzvbzacxlkssh45cqlnb8xjlvlsp60jm6fsb4di3k4"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-test-flags '("--release" "--"
@@ -3535,7 +3964,7 @@ notation.")
        #:cargo-development-inputs
        (("rust-futures-core" ,rust-futures-core-0.3)
         ("rust-futures-util" ,rust-futures-util-0.3)
-        ("rust-tokio" ,rust-tokio-0.2))))
+        ("rust-tokio" ,rust-tokio-1))))
     (home-page "https://github.com/tokio-rs/async-stream")
     (synopsis "Proc macros for async-stream crate")
     (description
@@ -3705,7 +4134,7 @@ methods.")
      (origin
        (method url-fetch)
        (uri (crate-uri "atty" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
          "1s7yslcs6a28c5vz7jwj63lkfgyx8mx99fdirlhi9lbhhzhrpcyr"))))
@@ -3722,6 +4151,26 @@ methods.")
      "This package provides a simple interface for querying atty.")
     (license license:expat)))
 
+(define-public rust-atty-0.2.11
+  (package
+    (inherit rust-atty-0.2)
+    (name "rust-atty")
+    (version "0.2.11")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "atty" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "0lln6vaczj521qqjbaqnb81w5p6xk4fjfkg33r0m22cm4f3mnzcs"))))
+    (arguments
+      `(#:skip-build?
+        #t
+        #:cargo-inputs
+        (("rust-libc" ,rust-libc-0.2)
+         ("rust-termion" ,rust-termion-1)
+         ("rust-winapi" ,rust-winapi-0.3))))))
+
 (define-public rust-autocfg-1
   (package
     (name "rust-autocfg")
@@ -3752,7 +4201,7 @@ methods.")
       (origin
         (method url-fetch)
         (uri (crate-uri "autocfg" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1chwgimpx5z7xbag7krr9d8asxfqbh683qhgl9kn3hxk2l0djj8x"))))
@@ -3784,6 +4233,53 @@ methods.")
     (description "Pull in every source file in a directory as a module.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-average-0.13
+  (package
+    (name "rust-average")
+    (version "0.13.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "average" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1c97m8yagvq8r6qgd3harm5vnkdbld4mxg9byyxh6igjsf8wfgl4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'configure 'patch-Cargo.toml
+           (lambda _
+             (substitute* '("guix-vendor/rust-average-0.13.1.tar.gz/Cargo.toml"
+                            "Cargo.toml")
+               ;; The resolver feature is not supported by this version of Cargo.
+               (("resolver = \"2\".*") "")
+               ;; Relax!
+               (("1.3") ,(package-version rust-byteorder-1))))))
+       #:cargo-inputs
+       (("rust-easy-cast" ,rust-easy-cast-0.4)
+        ("rust-float-ord" ,rust-float-ord-0.3)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-big-array" ,rust-serde-big-array-0.3)
+        ("rust-serde-derive" ,rust-serde-derive-1))
+       #:cargo-development-inputs
+       (("rust-bencher" ,rust-bencher-0.1)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-quantiles" ,rust-quantiles-0.7)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rand-distr" ,rust-rand-distr-0.4)
+        ("rust-rand-xoshiro" ,rust-rand-xoshiro-0.6)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-streaming-stats" ,rust-streaming-stats-0.2))))
+    (home-page "https://github.com/vks/average")
+    (synopsis "Calculate statistics iteratively")
+    (description "This crate provides tools for calculating statistics
+iteratively in Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-average-0.10
   (package
     (name "rust-average")
@@ -4036,7 +4532,7 @@ trace (backtrace) at runtime in a Rust program.")
       (origin
         (method url-fetch)
         (uri (crate-uri "backtrace-sys" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "16a3igz22q9lnnjjr77f4k8ci48v8zdwrs67khx3h7wx3jzfpyqq"))))
@@ -4054,6 +4550,29 @@ trace (backtrace) at runtime in a Rust program.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-barrel-0.6
+  (package
+    (name "rust-barrel")
+    (version "0.6.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "barrel" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1qgzrfpp2acb06bbqrf5a8pjjwf3dwinq7sv2hqq0b1jn5wcjrwx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-diesel" ,rust-diesel-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://rust-db.github.io/barrel/")
+    (synopsis "Powerful schema migration building API for Rust")
+    (description "This package provides a powerful schema migration building
+API for Rust.")
+    (license (list license:expat license:x11 license:asl2.0))))
+
 (define-public rust-base32-0.4
   (package
     (name "rust-base32")
@@ -4113,7 +4632,13 @@ c6e7d37.  However, this package works only up to 128 bytes.")
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3)
         ("rust-rand" ,rust-rand-0.6)
-        ("rust-structopt" ,rust-structopt-0.3))))
+        ("rust-structopt" ,rust-structopt-0.3))
+       #:phases
+        (modify-phases %standard-phases
+         (add-after 'unpack 'fix-criterion-minor-version
+          (lambda* _
+           (substitute* "Cargo.toml"
+            (("0.3.2") "0.3.3")))))))
     (home-page "https://github.com/marshallpierce/rust-base64")
     (synopsis "Encodes and decodes base64 as bytes or utf8")
     (description
@@ -4228,7 +4753,7 @@ c6e7d37.  However, this package works only up to 128 bytes.")
       (origin
         (method url-fetch)
         (uri (crate-uri "base-x" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1hfy0wv7j5ynd73yk1vyr32pqa77rp15lkrc54f8ky9c6hcbc80v"))))
@@ -4310,7 +4835,7 @@ Cow.")
       (origin
         (method url-fetch)
         (uri (crate-uri "bencher" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1x8p2xblgqssay8cdykp5pkfc0np0jk5bs5cx4f5av097aav9zbx"))))
@@ -4557,7 +5082,7 @@ bindings to C and C++ libraries.")
         (base32
          "0hxlvy9q9984rr3rqaxwmgxjrd9wh11mcc161hv3shz6b7jkrcbm"))))
     (inputs
-     `(("clang" ,clang)))
+     (list clang))
     (arguments
      `(#:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
@@ -4626,7 +5151,7 @@ bindings to C and C++ libraries.")
         ("rust-diff" ,rust-diff-0.1)
         ("rust-shlex" ,rust-shlex-0.1))))
     (inputs
-     `(("clang" ,clang)))))
+     (list clang))))
 
 (define-public rust-bindgen-0.53
   (package
@@ -4981,6 +5506,147 @@ bindings to C and C++ libraries.")
         ("rust-diff" ,rust-diff-0.1)
         ("rust-shlex" ,rust-shlex-0.1))))))
 
+(define-public rust-bio-types-0.12
+  (package
+    (name "rust-bio-types")
+    (version "0.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bio-types" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0qww2l3hbxyayhpv16yxzayxxxmvq7wk3j64xsx9rigzzfbdjy9z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-derive-new" ,rust-derive-new-0.5)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-petgraph" ,rust-petgraph-0.5)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-strum-macros" ,rust-strum-macros-0.20)
+        ("rust-thiserror" ,rust-thiserror-1))))
+    (home-page "https://rust-bio.github.io")
+    (synopsis "Common biomedical types for use in rust-bio and rust-htslib")
+    (description
+     "This package provides a collection of common biomedical types for use in
+rust-bio and rust-htslib.")
+    (license license:expat)))
+
+(define-public rust-bio-0.32
+  (package
+    (name "rust-bio")
+    (version "0.32.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bio" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1wj6s3hzpx5xhajcnvdabbgpalgghdni7gmlhjl6i9pfh1xiq5pi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-approx" ,rust-approx-0.3)
+        ("rust-bio-types" ,rust-bio-types-0.12)
+        ("rust-bit-set" ,rust-bit-set-0.5)
+        ("rust-bv" ,rust-bv-0.11)
+        ("rust-bytecount" ,rust-bytecount-0.6)
+        ("rust-csv" ,rust-csv-1)
+        ("rust-custom-derive" ,rust-custom-derive-0.1)
+        ("rust-enum-map" ,rust-enum-map-0.6)
+        ("rust-fnv" ,rust-fnv-1)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-getset" ,rust-getset-0.0.9)
+        ("rust-itertools" ,rust-itertools-0.9)
+        ("rust-itertools-num" ,rust-itertools-num-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-multimap" ,rust-multimap-0.8)
+        ("rust-ndarray" ,rust-ndarray-0.13)
+        ("rust-newtype-derive" ,rust-newtype-derive-0.1)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-ordered-float" ,rust-ordered-float-1)
+        ("rust-petgraph" ,rust-petgraph-0.5)
+        ("rust-quick-error" ,rust-quick-error-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-snafu" ,rust-snafu-0.6)
+        ("rust-statrs" ,rust-statrs-0.12)
+        ("rust-strum" ,rust-strum-0.18)
+        ("rust-strum-macros" ,rust-strum-macros-0.18)
+        ("rust-triple-accel" ,rust-triple-accel-0.3)
+        ("rust-vec-map" ,rust-vec-map-0.8))
+       #:cargo-development-inputs
+       (("rust-proptest" ,rust-proptest-0.10))))
+    (home-page "https://rust-bio.github.io")
+    (synopsis "Bioinformatics library for Rust")
+    (description
+     "This package provides a bioinformatics library for Rust.  This library
+provides implementations of many algorithms and data structures that are
+useful for bioinformatics, but also in other fields.")
+    (license license:expat)))
+
+(define-public rust-bio-0.33
+  (package
+    (name "rust-bio")
+    (version "0.33.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bio" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1zaghvazh243x2pg866hjx1zwwpp9qzwkf45iz2fs9af5y661gz5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-approx" ,rust-approx-0.3)
+        ("rust-bio-types" ,rust-bio-types-0.12)
+        ("rust-bit-set" ,rust-bit-set-0.5)
+        ("rust-bv" ,rust-bv-0.11)
+        ("rust-bytecount" ,rust-bytecount-0.6)
+        ("rust-csv" ,rust-csv-1)
+        ("rust-custom-derive" ,rust-custom-derive-0.1)
+        ("rust-enum-map" ,rust-enum-map-0.6)
+        ("rust-fnv" ,rust-fnv-1)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-getset" ,rust-getset-0.0.9)
+        ("rust-itertools" ,rust-itertools-0.9)
+        ("rust-itertools-num" ,rust-itertools-num-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-multimap" ,rust-multimap-0.8)
+        ("rust-ndarray" ,rust-ndarray-0.13)
+        ("rust-newtype-derive" ,rust-newtype-derive-0.1)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-ordered-float" ,rust-ordered-float-1)
+        ("rust-pest" ,rust-pest-2)
+        ("rust-pest-derive" ,rust-pest-derive-2)
+        ("rust-petgraph" ,rust-petgraph-0.5)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-statrs" ,rust-statrs-0.13)
+        ("rust-strum" ,rust-strum-0.19)
+        ("rust-strum-macros" ,rust-strum-macros-0.19)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-triple-accel" ,rust-triple-accel-0.3)
+        ("rust-vec-map" ,rust-vec-map-0.8))
+       #:cargo-development-inputs
+       (("rust-proptest" ,rust-proptest-0.10)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://rust-bio.github.io")
+    (synopsis "Bioinformatics library for Rust")
+    (description
+     "This package provides a bioinformatics library for Rust.  This library
+provides implementations of many algorithms and data structures that are
+useful for bioinformatics, but also in other fields.")
+    (license license:expat)))
+
 (define-public rust-bit-field-0.10
   (package
     (name "rust-bit-field")
@@ -5122,7 +5788,7 @@ types.")
       (origin
         (method url-fetch)
         (uri (crate-uri "bitflags" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "14qnd5nq8p2almk79m4m8ydqhd413yaxsyjp5xd19g3mikzf47fg"))))
@@ -5134,6 +5800,34 @@ behave like a set of bitflags.")
     (license (list license:asl2.0
                    license:expat))))
 
+;; TODO: Absorb this package into rust-bitflags-1 in core-updates with the
+;; newer version of rust so we don't have to track down all dependants of this
+;; package to ensure a compatible version of rust.
+(define-public rust-bitflags-1.3
+  (package
+    (inherit rust-bitflags-1)
+    (name "rust-bitflags")
+    (version "1.3.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "bitflags" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "12ki6w8gn1ldq7yz9y680llwk5gmrhrzszaa17g1sbrw2r2qvwxy"))))
+    (arguments
+     `(#:tests? #f      ; Tests require rust-1.46 or newer.
+       #:cargo-inputs
+       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))
+       #:cargo-development-inputs
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-trybuild" ,rust-trybuild-1)
+        ("rust-walkdir" ,rust-walkdir-2))))))
+
 (define-public rust-bitflags-0.9
   (package
     (inherit rust-bitflags-1)
@@ -5225,14 +5919,35 @@ behave like a set of bitflags.")
      `(#:cargo-inputs
        (("rust-typenum" ,rust-typenum-1))
        #:cargo-development-inputs
-       (("rust-proptest", rust-proptest-0.9)
-        ("rust-proptest-derive", rust-proptest-derive-0.1))))
+       (("rust-proptest" ,rust-proptest-0.9)
+        ("rust-proptest-derive" ,rust-proptest-derive-0.1))))
     (home-page "https://github.com/bodil/bitmaps")
     (synopsis "Fixed size compact boolean array in Rust")
     (description "This crate provides a convenient and efficient way of
 declaring and working with fixed size bitmaps in Rust.")
     (license license:mpl2.0)))
 
+(define-public rust-bitpacking-0.8
+  (package
+    (name "rust-bitpacking")
+    (version "0.8.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bitpacking" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1mw2xbpkw9zhfq5lir6bgkalhhfqb5p7xwx5yimc0ry1ffnd5ix8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t #:cargo-inputs (("rust-crunchy" ,rust-crunchy-0.2))))
+    (home-page "https://crates.io/crates/bitpacking")
+    (synopsis "Fast integer compression/decompression via SIMD bit-packing")
+    (description
+     "This crate provides fast integer compression and decompression via SIMD
+bit-packing.  It is a port of simdcomp C library to Rust.")
+    (license license:expat)))
+
 (define-public rust-bitreader-0.3
   (package
     (name "rust-bitreader")
@@ -5420,7 +6135,7 @@ BLAKE2bp hash functions.")
       (origin
         (method url-fetch)
         (uri (crate-uri "blas-sys" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0h14zjycwc76v15h8qll9z1xiryvmpvsb5gam97pqpdjrrwv5c8k"))))
@@ -5670,6 +6385,32 @@ algorithms.  This package is deprecated.  Please use block-cipher instead.")
      `(#:cargo-inputs
        (("rust-generic-array" ,rust-generic-array-0.8))))))
 
+(define-public rust-block-modes-0.7
+  (package
+    (name "rust-block-modes")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "block-modes" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1w3jc3n7k4xq98b9mfina4wwpg1fq1s3b0mm5whqialb7q3yi82p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-block-padding" ,rust-block-padding-0.2)
+        ("rust-cipher" ,rust-cipher-0.2))
+       #:cargo-development-inputs
+       (("rust-aes" ,rust-aes-0.6)
+        ("rust-hex-literal" ,rust-hex-literal-0.2))))
+    (home-page "https://github.com/RustCrypto/block-ciphers")
+    (synopsis "Block cipher modes of operation")
+    (description "This package provides a collection of block ciphers
+and block modes.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-block-padding-0.2
   (package
     (name "rust-block-padding")
@@ -6191,6 +6932,89 @@ system calls.  Second, exposing the internal buffer allows the user to work
 with data in place, which avoids another copy.")
     (license license:gpl3)))
 
+(define-public rust-buffering-0.4
+  (package
+    (name "rust-buffering")
+    (version "0.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "buffering" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1wmgy84j5scbndzx7mccz07z34n98fwnfah1zd5kzqjaif5iqk76"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-buffering-nocopy-macro" ,rust-buffering-nocopy-macro-0.2))))
+    (home-page "https://github.com/jbaublitz/buffering")
+    (synopsis "Library primarily designed for network packet buffer operations")
+    (description
+     "This package provides a library primarily designed for network packet
+buffer operations.")
+    (license license:bsd-3)))
+
+(define-public rust-buffering-0.3
+  (package
+    (inherit rust-buffering-0.4)
+    (name "rust-buffering")
+    (version "0.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "buffering" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "11cyq2nm569j028g93jxk00h8nfwc3l6n3hqw79w34na01p3lq97"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-buffering-nocopy-macro" ,rust-buffering-nocopy-macro-0.1))))))
+
+(define-public rust-buffering-nocopy-macro-0.2
+  (package
+    (name "rust-buffering-nocopy-macro")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "buffering_nocopy_macro" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0a8zs7s5z0f977g7zx95b8sf8gqa8iwh13rj639wk080d00l5kaa"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/jbaublitz/buffering")
+    (synopsis "Proc-macro crate for buffering")
+    (description "This package provides a proc-macro crate for buffering.")
+    (license license:bsd-3)))
+
+(define-public rust-buffering-nocopy-macro-0.1
+  (package
+    (inherit rust-buffering-nocopy-macro-0.2)
+    (name "rust-buffering-nocopy-macro")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "buffering_nocopy_macro" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "03b6wp4i3273jzw2nbnrnddlxyma3p465y2dszx6vc3ysq0fdlj7"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-0.4)
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-syn" ,rust-syn-0.14))))))
+
 (define-public rust-bufstream-0.1
   (package
     (name "rust-bufstream")
@@ -6324,6 +7148,31 @@ constants from build.rs or a script.")
        (("rust-criterion" ,rust-criterion-0.2)
         ("rust-quickcheck" ,rust-quickcheck-0.8))))))
 
+(define-public rust-bv-0.11
+  (package
+    (name "rust-bv")
+    (version "0.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bv" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0h5kbl54fsccznfixw83xndbripw39y2qkqjwf709p75iqfvnd48"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-feature-probe" ,rust-feature-probe-0.1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-quickcheck" ,rust-quickcheck-0.6))))
+    (home-page "https://github.com/tov/bv-rs")
+    (synopsis "Bit-vectors and bit-slices")
+    (description "The main type exported by this library, @code{BitVec}, is a
+packed, growable bit-vector.  Its API mirrors that of @code{Vec} where
+reasonable.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-byte-pool-0.2
   (package
     (name "rust-byte-pool")
@@ -6402,6 +7251,54 @@ memory usage.")
      "This package provides a library for interaction with units of bytes.")
     (license license:expat)))
 
+(define-public rust-bytecheck-0.5
+  (package
+    (name "rust-bytecheck")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bytecheck" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0q11ap6nqj0rsc8ypwjh918916zlrcrzdgqm175gnpb2yn9axyh1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bytecheck-derive" ,rust-bytecheck-derive-0.5)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-ptr-meta" ,rust-ptr-meta-0.1)
+        ("rust-simdutf8" ,rust-simdutf8-0.1))))
+    (home-page "https://github.com/rkyv/bytecheck")
+    (synopsis "Type validation framework")
+    (description "This package provides a type validation framework for
+Rust.")
+    (license license:expat)))
+
+(define-public rust-bytecheck-derive-0.5
+  (package
+    (name "rust-bytecheck-derive")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bytecheck_derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0grbkwwv5j91n7zrimci6fh4k79flxga3mkjg50jysnyraizi088"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/rkyv/bytecheck")
+    (synopsis "Derive macro for bytecheck")
+    (description "This package provides a Derive macro for bytecheck, the type
+validation framework for Rust.")
+    (license license:expat)))
+
 (define-public rust-bytecount-0.6
   (package
     (name "rust-bytecount")
@@ -6474,6 +7371,29 @@ in a byte slice, fast.")
         ("rust-quickcheck" ,rust-quickcheck-0.6)
         ("rust-rand" ,rust-rand-0.4))))))
 
+(define-public rust-bytemuck-1.5
+  (package
+    (name "rust-bytemuck")
+    (version "1.5.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "bytemuck" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "18355qn3r9yp7ibg00r688sjx58g2qsjylwyq15w5b41b46asjss"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytemuck-derive" ,rust-bytemuck-derive-1))))
+    (home-page "https://github.com/Lokathor/bytemuck")
+    (synopsis "Crate for mucking around with piles of bytes")
+    (description
+     "This package provides a crate for mucking around with piles of bytes.")
+    (license license:zlib)))
+
 (define-public rust-bytemuck-1
   (package
     (name "rust-bytemuck")
@@ -7182,7 +8102,7 @@ messages.")
         (base32 "17p0y0yk68pzsnpmaklhiqrrlrrv0ld8nhbg4qflmgibshi8b69p"))))
     (build-system cargo-build-system)
     (native-inputs
-     `(("capnproto" ,capnproto)))
+     (list capnproto))
     (arguments
      `(#:cargo-inputs
        (("rust-capnp" ,rust-capnp-0.13)
@@ -7255,8 +8175,34 @@ remote procedure call protocol")
      `(#:cargo-inputs
        (("rust-capnp" ,rust-capnp-0.10))))))
 
+(define-public rust-caps-0.5
+  (package
+    (name "rust-caps")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "caps" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0h4m9s09plj85y5lb5j9hck36r8w63ifpc9s09mzi0zjvvfz5260"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-errno" ,rust-errno-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-thiserror" ,rust-thiserror-1))))
+    (home-page "https://github.com/lucab/caps-rs")
+    (synopsis "Pure-Rust library to work with Linux capabilities")
+    (description
+     "This package provides a pure-Rust library to work with Linux
+capabilities.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-caps-0.3
   (package
+    (inherit rust-caps-0.5)
     (name "rust-caps")
     (version "0.3.3")
     (source
@@ -7268,19 +8214,12 @@ remote procedure call protocol")
        (sha256
         (base32
          "1vplgzx8nifzr3f0l8ca77jqnz3fdymdg0ickacgdvawc44a3n90"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-errno" ,rust-errno-0.2)
         ("rust-error-chain" ,rust-error-chain-0.12)
-        ("rust-libc" ,rust-libc-0.2))))
-    (home-page "https://github.com/lucab/caps-rs")
-    (synopsis "Pure-Rust library to work with Linux capabilities")
-    (description
-     "This package provides a pure-Rust library to work with Linux
-capabilities")
-    (license (list license:expat license:asl2.0))))
+        ("rust-libc" ,rust-libc-0.2))))))
 
 (define-public rust-cargo-0.53
   (package
@@ -7300,7 +8239,6 @@ capabilities")
      `(;; The test suite is disabled as the internal 'cargo-test-macro' and
        ;; 'cargo-test-support' crates are not included in the release.
        #:tests? #f
-       #:rust ,rust-1.52        ;transitively inherited from rust-sized-chunks
        #:cargo-inputs
        (("rust-anyhow" ,rust-anyhow-1)
         ("rust-atty" ,rust-atty-0.2)
@@ -7360,12 +8298,9 @@ capabilities")
         ("rust-walkdir" ,rust-walkdir-2)
         ("rust-winapi" ,rust-winapi-0.3))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("curl" ,curl)
-       ("libssh2" ,libssh2)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list curl libssh2 openssl zlib))
     (home-page "https://crates.io")
     (synopsis "Package manager for Rust")
     (description "Cargo, a package manager for Rust.  This package provides
@@ -7486,7 +8421,7 @@ supported by Cargo.")
       (origin
         (method url-fetch)
         (uri (crate-uri "cargon" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1cszlab7jk736p0lb50ag4l9nv72m7j41bwrmygl0lr4iz0350w2"))))
@@ -7561,7 +8496,7 @@ box''.")
       (origin
         (method url-fetch)
         (uri (crate-uri "cblas-sys" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0rgsn3klhhh09d8qf3b87zl4rwk93l2g0qzh9hhb0lff5kcfrzmn"))))
@@ -7583,7 +8518,7 @@ box''.")
       (origin
         (method url-fetch)
         (uri (crate-uri "cc" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0j7d7h4n81z5f22l3v8ggjvvw8m64636nlaqax4x1y44da1rc12c"))))
@@ -7643,7 +8578,7 @@ that need to represent UTF-16 data as 8-bit characters.")
        #:cargo-development-inputs
        (("rust-clang-sys" ,rust-clang-sys-0.28))))
     (inputs
-     `(("clang" ,clang)))
+     (list clang))
     (home-page "https://github.com/jethrogb/rust-cexpr")
     (synopsis "C expression parser and evaluator")
     (description
@@ -7745,7 +8680,7 @@ chain, the first matching branch is the item that gets emitted.")
       (origin
         (method url-fetch)
         (uri (crate-uri "cfg-if" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "08h80ihs74jcyp24cd75wwabygbbdgl05k6p5dmq8akbr78vv1a7"))))
@@ -7874,6 +8809,33 @@ clauses.")
      "This package provides a combines the chalk-engine with chalk-ir.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-charset-0.1
+  (package
+    (name "rust-charset")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "charset" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0wzwnck82maqa03hvpprpd1zvnzmzxpkqna4pxnf4g8wvxj6whjg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-encoding-rs" ,rust-encoding-rs-0.8)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://docs.rs/charset/")
+    (synopsis "Thunderbird-compatible character encoding decoding for email")
+    (description
+     "charset is a wrapper around @code{encoding_rs} that
+provides (non-streaming) decoding for character encodings that occur in email
+by providing decoding for UTF-7 in addition to the encodings defined by the
+Encoding Standard.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-chrono-0.4
   (package
     (name "rust-chrono")
@@ -7963,26 +8925,39 @@ Python arrow.humanize.")
 TimeZone trait for @code{rust-chrono}.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-chunked-transfer-0.3
+(define-public rust-chunked-transfer-1
   (package
     (name "rust-chunked-transfer")
-    (version "0.3.1")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "chunked_transfer" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "11yghnd24w0i9p8g368c3pg7qh9nfz7kgri6pywja9pnmakj13a9"))))
+        (base32
+         "0bkdlsrszfcscw3j6yhs7kj6jbp8id47jjk6h9k58px47na5gy7z"))))
     (build-system cargo-build-system)
     (arguments `(#:skip-build? #t))
     (home-page "https://github.com/frewsxcv/rust-chunked-transfer")
     (synopsis "Encoder and decoder for HTTP chunked transfer coding")
-    (description
-     "This package provides an encoder and decoder for HTTP chunked transfer
-coding.")
+    (description "This package provides an encoder and decoder for HTTP chunked
+transfer coding.")
     (license license:asl2.0)))
 
+(define-public rust-chunked-transfer-0.3
+  (package
+    (inherit rust-chunked-transfer-1)
+    (name "rust-chunked-transfer")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "chunked_transfer" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "11yghnd24w0i9p8g368c3pg7qh9nfz7kgri6pywja9pnmakj13a9"))))))
+
 (define-public rust-ci-info-0.3
   (package
     (name "rust-ci-info")
@@ -8071,7 +9046,7 @@ coding.")
          "0695kfrqx7n091fzm6msbqg2q2kyhka64q08lm63f3l9d964i8cx"))))
     (build-system cargo-build-system)
     (inputs
-     `(("clang" ,clang)))
+     (list clang))
     (arguments
      `(#:cargo-inputs
        (("rust-glob" ,rust-glob-0.3)
@@ -8164,7 +9139,7 @@ traits.")
       (origin
         (method url-fetch)
         (uri (crate-uri "clang-sys" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1r50dwy5hj5gq07dn0qf8222d07qv0970ymx0j8n9779yayc3w3f"))))
@@ -8315,7 +9290,7 @@ Command Line Argument Parser.")
      (origin
        (method url-fetch)
        (uri (crate-uri "clap" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
          "00i065a58987k1sbzqmlz721rw521zcg08jmsh40gi3khp3qmr9p"))))
@@ -8371,7 +9346,7 @@ Command Line Argument Parser.")
       (origin
         (method url-fetch)
         (uri (crate-uri "clicolors-control" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "07klix8nbpwk0cg1k4h0kkiijm1jxvrzndqdkr7dqr6xvkjjw24h"))))
@@ -8511,7 +9486,7 @@ or to a file as well.")
       (origin
         (method url-fetch)
         (uri (crate-uri "cloudabi" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0rv4yf5jlldfkynzrw687s00f4x12ypw7axv71vawhy6h4i52i23"))))
@@ -8535,7 +9510,7 @@ contains all syscalls and related types.")
       (origin
         (method url-fetch)
         (uri (crate-uri "cloudabi" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0kxcg83jlihy0phnd2g8c2c303px3l2p3pkjz357ll6llnd5pz6x"))))
@@ -8605,7 +9580,7 @@ Cipher-based Message Authentication Code (CMAC).")
       (origin
         (method url-fetch)
         (uri (crate-uri "cmake" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1fv346ipxmvff6qrnh78rild0s8k72ilfjkdsrk869562y62cmhf"))))
@@ -8843,6 +9818,30 @@ diagnostics easy and relatively painless for everyone!")
         ("rust-structopt" ,rust-structopt-0.3)
         ("rust-unindent" ,rust-unindent-0.1))))))
 
+(define-public rust-color-backtrace-0.5
+  (package
+    (name "rust-color-backtrace")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "color-backtrace" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "11fn3snykx90w3nznzrcf4r164zmhk790asx0kzryf4r7i308v6d"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-atty" ,rust-atty-0.2)
+        ("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-termcolor" ,rust-termcolor-1))))
+    (home-page "https://github.com/athre0z/color-backtrace")
+    (synopsis "Colorful panic backtraces")
+    (description "This package provides colorful panic backtraces.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-color-quant-1
   (package
     (name "rust-color-quant")
@@ -9012,24 +10011,25 @@ combinator.")
 and 1.0.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-comfy-table-1
+(define-public rust-comfy-table-4
   (package
     (name "rust-comfy-table")
-    (version "1.6.0")
+    (version "4.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "comfy-table" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1y6lc8h2lyyrrrdc36fz7brwyjz5l9w4nld4qx9mlacfibm8i92j"))))
+        (base32 "1wzk894p2s725cpdip5968ydb50zczsl34040j6zs8klhqz5ms8i"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-crossterm" ,rust-crossterm-0.19)
-        ("rust-strum" ,rust-strum-0.20)
-        ("rust-strum-macros" ,rust-strum-macros-0.20))))
+       (("rust-crossterm" ,rust-crossterm-0.20)
+        ("rust-strum" ,rust-strum-0.21)
+        ("rust-strum-macros" ,rust-strum-macros-0.21)
+        ("rust-unicode-width" ,rust-unicode-width-0.1))))
     (home-page "https://github.com/nukesor/comfy-table")
     (synopsis "Library for building tables with automatic content wrapping")
     (description
@@ -9037,6 +10037,25 @@ and 1.0.")
 wrapping.")
     (license license:expat)))
 
+(define-public rust-comfy-table-1
+  (package
+    (inherit rust-comfy-table-4)
+    (name "rust-comfy-table")
+    (version "1.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "comfy-table" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1y6lc8h2lyyrrrdc36fz7brwyjz5l9w4nld4qx9mlacfibm8i92j"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-crossterm" ,rust-crossterm-0.19)
+        ("rust-strum" ,rust-strum-0.20)
+        ("rust-strum-macros" ,rust-strum-macros-0.20))))))
+
 (define-public rust-commoncrypto-sys-0.2
   (package
     (name "rust-commoncrypto-sys")
@@ -9117,7 +10136,7 @@ idiomatic wrappers for Mac OS X's CommonCrypto library.")
       (origin
         (method url-fetch)
         (uri (crate-uri "compiler_builtins" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1rhj6ccmfkh9gcxnxgjq4fg257yi4f9325nfzsphbmxwkrg06sq3"))))
@@ -9549,7 +10568,7 @@ generation.")
      (origin
        (method url-fetch)
        (uri (crate-uri "constant_time_eq" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
          "1g3vp04qzmk6cpzrd19yci6a95m7ap6wy7wkwgiy2pjklklrfl14"))))
@@ -10036,7 +11055,7 @@ intrinsics.")
      (origin
        (method url-fetch)
        (uri (crate-uri "core-foundation-sys" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
          "0fzsw1j9g1x598yhwklg59l15hwzc0pyvs01w9fg2kin4598mjp7"))))))
@@ -10243,6 +11262,32 @@ to the @code{is_x86_feature_detected!} macro.")
 to @code{is_x86_feature_detected}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cpuprofiler-0.0
+  (package
+    (name "rust-cpuprofiler")
+    (version "0.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cpuprofiler" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0az588yyl9r13w4k7xfdh5ckfaq52fwpjry2q2hblazxpjflgy23"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-error-chain" ,rust-error-chain-0.12)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (inputs
+     (list gperftools))
+    (home-page "https://github.com/AtheMathmo/cpuprofiler")
+    (synopsis "Bindings to Google's cpu profiler")
+    (description "This package provides bindings to Google's cpu profiler.")
+    (license license:bsd-2)))
+
 (define-public rust-crates-index-0.13
   (package
     (name "rust-crates-index")
@@ -10299,10 +11344,7 @@ to @code{is_x86_feature_detected}.")
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-url" ,rust-url-2))))
     (native-inputs
-     `(("curl" ,curl)
-       ("openssl" ,openssl)
-       ("pkg-config" ,pkg-config)
-       ("zlib" ,zlib)))
+     (list curl openssl pkg-config zlib))
     (home-page "https://github.com/rust-lang/cargo")
     (synopsis "Helpers for interacting with @url{crates.io}")
     (description "This package provides helpers for interacting with
@@ -10331,6 +11373,32 @@ to @code{is_x86_feature_detected}.")
 64) with support for various standards.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-crc-any-2
+  (package
+    (name "rust-crc-any")
+    (version "2.3.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "crc-any" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0fq85y5akcadahnj5nqbs47qhgp5cpfn2z19zc3gp4wpxr3989kr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-debug-helper" ,rust-debug-helper-0.3)
+        ("rust-heapless" ,rust-heapless-0.5))
+       #:cargo-development-inputs
+       (("rust-bencher" ,rust-bencher-0.1))))
+    (home-page "https://magiclen.org/crc-any")
+    (synopsis "Compute CRC values")
+    (description "This package provides a crate to compute CRC values by
+providing the length of bits, expression, reflection, an initial value and a
+final xor value.  It has many built-in CRC functions.")
+    (license license:expat)))
+
 (define-public rust-crc32fast-1
   (package
     (name "rust-crc32fast")
@@ -10983,30 +12051,30 @@ rasterizing glyphs, using native font engines whenever possible.")
         ("rust-servo-fontconfig" ,rust-servo-fontconfig-0.5)
         ("rust-winapi" ,rust-winapi-0.3))))))
 
-(define-public rust-crossterm-0.19
+(define-public rust-crossterm-0.20
   (package
     (name "rust-crossterm")
-    (version "0.19.0")
+    (version "0.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "crossterm" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1348lqf8vy3lb2s5icsl3rxs4a4vrpfw5z2j6lplnhnz600w2dkw"))))
+        (base32 "0z8zkk2mfiirbr3slfv564n685yiahr2aj3gdk6k3qymkmmdxsy0"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-crossterm-winapi" ,rust-crossterm-winapi-0.7)
+        ("rust-crossterm-winapi" ,rust-crossterm-winapi-0.8)
         ("rust-futures-core" ,rust-futures-core-0.3)
-        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-mio" ,rust-mio-0.7)
         ("rust-parking-lot" ,rust-parking-lot-0.11)
         ("rust-serde" ,rust-serde-1)
-        ("rust-signal-hook" ,rust-signal-hook-0.1)
+        ("rust-signal-hook" ,rust-signal-hook-0.3)
+        ("rust-signal-hook-mio" ,rust-signal-hook-mio-0.2)
         ("rust-winapi" ,rust-winapi-0.3))))
     (home-page "https://github.com/crossterm-rs/crossterm")
     (synopsis "Crossplatform terminal library for manipulating terminals")
@@ -11015,6 +12083,32 @@ rasterizing glyphs, using native font engines whenever possible.")
 terminals.")
     (license license:expat)))
 
+(define-public rust-crossterm-0.19
+  (package
+    (inherit rust-crossterm-0.20)
+    (name "rust-crossterm")
+    (version "0.19.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "crossterm" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1348lqf8vy3lb2s5icsl3rxs4a4vrpfw5z2j6lplnhnz600w2dkw"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-crossterm-winapi" ,rust-crossterm-winapi-0.7)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-mio" ,rust-mio-0.7)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-signal-hook" ,rust-signal-hook-0.1)
+        ("rust-winapi" ,rust-winapi-0.3))))))
+
 (define-public rust-crossterm-0.18
   (package
     (inherit rust-crossterm-0.19)
@@ -11062,22 +12156,21 @@ terminals.")
         ("rust-serde" ,rust-serde-1)
         ("rust-winapi" ,rust-winapi-0.3))))))
 
-(define-public rust-crossterm-winapi-0.7
+(define-public rust-crossterm-winapi-0.8
   (package
     (name "rust-crossterm-winapi")
-    (version "0.7.0")
+    (version "0.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "crossterm_winapi" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1fa047zz228qyqbcjdss64j0n01p4adr29yh9w24lgjdrr59da0d"))))
+        (base32 "01q57jwnlicqxa2igg5nig3916kf5w6sqgbxk40q6hr2frh6cs9s"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-winapi" ,rust-winapi-0.3))))
+       #:cargo-inputs (("rust-winapi" ,rust-winapi-0.3))))
     (home-page "https://github.com/crossterm-rs/crossterm-winapi")
     (synopsis "Basic simple abstractions around common WinAPI calls")
     (description
@@ -11085,6 +12178,23 @@ terminals.")
 abstractions around common WinAPI calls.")
     (license license:expat)))
 
+(define-public rust-crossterm-winapi-0.7
+  (package
+    (inherit rust-crossterm-winapi-0.8)
+    (name "rust-crossterm-winapi")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "crossterm_winapi" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1fa047zz228qyqbcjdss64j0n01p4adr29yh9w24lgjdrr59da0d"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-winapi" ,rust-winapi-0.3))))))
+
 (define-public rust-crossterm-winapi-0.6
   (package
     (inherit rust-crossterm-winapi-0.7)
@@ -11383,7 +12493,7 @@ algorithms.")
         ("rust-openssl" ,rust-openssl-0.10)
         ("rust-winapi" ,rust-winapi-0.3))))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (home-page "https://github.com/malept/crypto-hash")
     (synopsis "Wrapper for OS-level cryptographic hash functions")
     (description "This package provides a wrapper for OS-level cryptographic
@@ -11852,12 +12962,9 @@ use with bindgen.")
         ("rust-mio" ,rust-mio-0.6)
         ("rust-mio-extras" ,rust-mio-extras-2))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("curl" ,curl)
-       ("nghttp2" ,nghttp2)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list curl nghttp2 openssl zlib))
     (home-page "https://github.com/alexcrichton/curl-rust")
     (synopsis "Rust bindings to libcurl for making HTTP requests")
     (description
@@ -11895,12 +13002,9 @@ requests")
        #:cargo-development-inputs
        (("rust-cfg-if" ,rust-cfg-if-1))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("curl" ,curl)
-       ("nghttp2" ,nghttp2)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list curl nghttp2 openssl zlib))
     (home-page "https://github.com/alexcrichton/curl-rust")
     (synopsis "Native bindings to the libcurl library")
     (description
@@ -12546,7 +13650,7 @@ for Rust.")
       (origin
         (method url-fetch)
         (uri (crate-uri "data-encoding" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "027rcrwdschrkdr2n9d24gnh03vl41qmvhjqn9vn6z1njy2n0flr"))))
@@ -12643,8 +13747,40 @@ GF(2^n).  This trait is implemented for 64, 128 and 256 bit block
 sizes.  Big-endian order is used.  WARNING: Block must be aligned!")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-dbus-0.9
+  (package
+    (name "rust-dbus")
+    (version "0.9.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dbus" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ny01n0gzfdmcy5ydn4q78pamidj4c5q9ixz7gr97dbrza6y15zm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f          ;it needs display and sockets and launches daemons
+       #:cargo-inputs
+       (("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-executor" ,rust-futures-executor-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-libdbus-sys" ,rust-libdbus-sys-0.2))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list dbus))
+    (home-page "https://github.com/diwic/dbus-rs")
+    (synopsis "Rust bindings to D-Bus")
+    (description "This package provides Rust bindings to D-Bus.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-dbus-0.6
   (package
+    (inherit rust-dbus-0.9)
     (name "rust-dbus")
     (version "0.6.5")
     (source
@@ -12655,21 +13791,37 @@ sizes.  Big-endian order is used.  WARNING: Block must be aligned!")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "068qyxvaam34sjmhjgxz6iikklvylxly7gp6n00yksqydzrz1da8"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f ;it needs display and sockets and launches daemons
        #:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-libdbus-sys" ,rust-libdbus-sys-0.2))
        #:cargo-development-inputs
-       (("rust-tempdir" ,rust-tempdir-0.3))))
+       (("rust-tempdir" ,rust-tempdir-0.3))))))
+
+(define-public rust-dbus-tree-0.9
+  (package
+    (name "rust-dbus-tree")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dbus-tree" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1l2gi8073cwvv5vxlg5lafw6sppyhgm88hhpq7hak424x4kifpmi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-dbus" ,rust-dbus-0.9))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("dbus" ,dbus)))
+     (list dbus))
     (home-page "https://github.com/diwic/dbus-rs")
-    (synopsis "Rust bindings to D-Bus")
-    (description "This package provies Rust bindings to D-Bus.")
+    (synopsis "Framework for writing D-Bus method handlers (legacy)")
+    (description
+     "This crate is a framework for writing D-Bus method handlers (legacy).")
     (license (list license:asl2.0 license:expat))))
 
 (define-public rust-deadpool-0.7
@@ -12700,6 +13852,25 @@ sizes.  Big-endian order is used.  WARNING: Block must be aligned!")
 type.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-debug-helper-0.3
+  (package
+    (name "rust-debug-helper")
+    (version "0.3.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "debug-helper" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1a73xl73psmzyihd62jy30g1acfmgjmyi2k8khmh170mrq6x3yvn"))))
+    (build-system cargo-build-system)
+    (home-page "https://magiclen.org/debug-helper")
+    (synopsis "Declarative macros to implement the Debug trait manually")
+    (description "This crate provides declarative macros to help you implement
+the Debug trait manually.")
+    (license license:expat)))
+
 (define-public rust-decimal-2
   (package
     (name "rust-decimal")
@@ -12754,34 +13925,55 @@ type.")
 thread.")
     (license license:mpl2.0)))
 
-(define-public rust-deflate-0.8
+(define-public rust-deflate-0.9
   (package
     (name "rust-deflate")
-    (version "0.8.6")
+    (version "0.9.1")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "deflate" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0x6iqlayg129w63999kz97m279m0jj4x4sm6gkqlvmp73y70yxvk"))))
+          "0w0ww0hrq4bjnihxgbnrri4lj5c8yzg31fyzx36fd9pvvw2vz5az"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; not all test files included
        #:cargo-inputs
        (("rust-adler32" ,rust-adler32-1)
-        ("rust-byteorder" ,rust-byteorder-1)
         ("rust-gzip-header" ,rust-gzip-header-0.3))
        #:cargo-development-inputs
        (("rust-miniz-oxide" ,rust-miniz-oxide-0.3))))
     (home-page "https://github.com/image-rs/deflate-rs")
     (synopsis "DEFLATE, zlib and gzip encoder written in rust")
-    (description
-     "This package provides a DEFLATE, zlib and gzip encoder written in rust.")
+    (description "This package provides a DEFLATE, zlib and gzip encoder
+written in rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-deflate-0.8
+  (package
+    (inherit rust-deflate-0.9)
+    (name "rust-deflate")
+    (version "0.8.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "deflate" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0x6iqlayg129w63999kz97m279m0jj4x4sm6gkqlvmp73y70yxvk"))))
+    (arguments
+     `(#:tests? #f      ; not all test files included
+       #:cargo-inputs
+         (("rust-adler32" ,rust-adler32-1)
+          ("rust-byteorder" ,rust-byteorder-1)
+          ("rust-gzip-header" ,rust-gzip-header-0.3))
+       #:cargo-development-inputs
+         (("rust-miniz-oxide" ,rust-miniz-oxide-0.3))))))
+
 (define-public rust-deflate-0.7
   (package
     (inherit rust-deflate-0.8)
@@ -12811,7 +14003,7 @@ thread.")
       (origin
         (method url-fetch)
         (uri (crate-uri "defmac" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "14cqfvc0f1pkd6gdhjxa2wv3iibqprc0n203ims8lvg96752ynfm"))))
@@ -12831,7 +14023,7 @@ thread.")
       (origin
         (method url-fetch)
         (uri (crate-uri "defmac" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "17giv0n0n1r64z0dahfvkjy3ys517jxyhs8sd9lmgvcljpjyryxa"))))))
@@ -13019,6 +14211,31 @@ for arbitrary structs.")
         #:cargo-development-inputs
         (("rust-pretty-assertions" ,rust-pretty-assertions-0.6))))))
 
+(define-public rust-derive-builder-0.7
+  (package
+    (inherit rust-derive-builder-0.9)
+    (name "rust-derive-builder")
+    (version "0.7.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "derive_builder" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "1m34zpj6fw764g7s368r2wgazp154m24d4rshbgn18fdlfk3zi9s"))))
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-compiletest-rs" ,rust-compiletest-rs-0.3)
+         ("rust-darling" ,rust-darling-0.9)
+         ("rust-derive-builder-core" ,rust-derive-builder-core-0.5)
+         ("rust-env-logger" ,rust-env-logger-0.5)
+         ("rust-log" ,rust-log-0.4)
+         ("rust-proc-macro2" ,rust-proc-macro2-0.4)
+         ("rust-quote" ,rust-quote-0.6)
+         ("rust-skeptic" ,rust-skeptic-0.13)
+         ("rust-syn" ,rust-syn-0.15))))))
+
 (define-public rust-derive-builder-0.5
   (package
     (inherit rust-derive-builder-0.9)
@@ -13095,6 +14312,27 @@ for arbitrary structs.")
        #:cargo-development-inputs
        (("rust-pretty-assertions" ,rust-pretty-assertions-0.6))))))
 
+(define-public rust-derive-builder-core-0.5
+  (package
+    (inherit rust-derive-builder-core-0.9)
+    (name "rust-derive-builder-core")
+    (version "0.5.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "derive_builder_core" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "0drbjk6n8ywls8cmhp4r8xkyjsja0wk3854cn5mj8g1km4ys5202"))))
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-darling" ,rust-darling-0.9)
+         ("rust-log" ,rust-log-0.4)
+         ("rust-proc-macro2" ,rust-proc-macro2-0.4)
+         ("rust-quote" ,rust-quote-0.6)
+         ("rust-syn" ,rust-syn-0.15))))))
+
 (define-public rust-derive-builder-core-0.2
   (package
     (inherit rust-derive-builder-core-0.9)
@@ -13250,6 +14488,32 @@ traits for both structs and enums.")
 structs and enums.")
   (license license:expat)))
 
+(define-public rust-des-0.6
+  (package
+    (name "rust-des")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "des" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1bigk1x1kxvnfjn1alr8cc383z1flmj8q7g2pjl2zal8i1s7qkmj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-cipher" ,rust-cipher-0.2)
+        ("rust-opaque-debug" ,rust-opaque-debug-0.3))
+       #:cargo-development-inputs
+       (("rust-cipher" ,rust-cipher-0.2))))
+    (home-page "https://github.com/RustCrypto/block-ciphers")
+    (synopsis "DES and Triple DES block ciphers implementation")
+    (description "This package provides DES and Triple DES (3DES, TDES) block
+ciphers implementations.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-deunicode-0.4
   (package
     (name "rust-deunicode")
@@ -13433,7 +14697,7 @@ example.")
          "0hpmwrc0zx3zvpgwp9zrm6wj8d8i8q8990grlrnfzlivbi6zqyq4"))))
     (build-system cargo-build-system)
     (native-inputs
-     `(("sqlite" ,sqlite)))
+     (list sqlite))
     (arguments
      `(#:cargo-inputs
        (("rust-bigdecimal" ,rust-bigdecimal-0.1)
@@ -13501,6 +14765,35 @@ Builder for PostgreSQL, SQLite, and MySQL.")
 Diesel.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-diesel-migrations-1
+  (package
+    (name "rust-diesel-migrations")
+    (version "1.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "diesel_migrations" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0k4g03ciqwya2xc1xvy5s9cs6q55k45wxa1gszswfg9m2f2dwg5z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ;doctest_setup.rs: No such file or directory
+       #:cargo-inputs
+       (("rust-migrations-internals"
+         ,rust-migrations-internals-1)
+        ("rust-migrations-macros"
+         ,rust-migrations-macros-1))
+       #:cargo-development-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-diesel" ,rust-diesel-1)
+        ("rust-dotenv" ,rust-dotenv-0.10))))
+    (home-page "https://diesel.rs")
+    (synopsis "Migration management for diesel")
+    (description "This package provides migration management for Diesel.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-diff-0.1
   (package
     (name "rust-diff")
@@ -13592,6 +14885,23 @@ Diesel.")
      "This crate provides all necessary tools for comparing word sequences.")
     (license license:expat)))
 
+(define-public rust-diffr-lib-0.1
+  (package
+    (name "rust-diffr-lib")
+    (version "0.1.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "diffr-lib" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "0id3hpblvvcw4ydcd1cc7wgcwqjbh3grlihrmd8zp7k0d2h47i3g"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/mookid/diffr")
+    (synopsis "Implementation of Myers diff algorithm")
+    (description "An implementation of Myers diff algorithm.")
+    (license license:expat)))
+
 (define-public rust-diffs-0.3
   (package
     (name "rust-diffs")
@@ -13614,6 +14924,58 @@ common subsequence.  The diff algorithms include Myer's diff and Patience
 diff.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-diffus-0.10
+  (package
+    (name "rust-diffus")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "diffus" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0lsn5h1mfa8x7bfg9yqgr52p7drigpwgm5q8qh4r07dmfd5g43rw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-diffus-derive" ,rust-diffus-derive-0.10)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-snake-case" ,rust-snake-case-0.3)
+        ("rust-uuid" ,rust-uuid-0.8))))
+    (home-page "https://github.com/distil/diffus")
+    (synopsis "Diff two instances of any data structure")
+    (description "This package finds the difference between two instances of
+any data structure.  It supports: collections, Strings, Maps etc.  Uses LC
+where applicable.  Also supports derive via `diffus-derive`.")
+    (license license:asl2.0)))
+
+(define-public rust-diffus-derive-0.10
+  (package
+    (name "rust-diffus-derive")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "diffus-derive" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1a7sgbzhqa7gk3xhvkci91myc86gkwxs04vfxbl8f64y7l1jsfmr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/distil/diffus")
+    (synopsis "Diff two instances of any data structure")
+    (description "This package finds the difference between two instances of
+any data structure.  Supports derive on structs and enums.")
+    (license license:asl2.0)))
+
 (define-public rust-digest-0.9
   (package
     (name "rust-digest")
@@ -13830,8 +15192,7 @@ standard locations of directories for config, cache and other data.")
        (("rust-cfg-if" ,rust-cfg-if-0.1)
         ("rust-dirs-sys" ,rust-dirs-sys-0.3))))
     (inputs
-     `(("rust-cfg-if" ,rust-cfg-if-0.1)
-       ("rust-dirs-sys" ,rust-dirs-sys-0.3)))))
+     (list rust-cfg-if-0.1 rust-dirs-sys-0.3))))
 
 (define-public rust-dirs-1
   (package
@@ -13842,7 +15203,7 @@ standard locations of directories for config, cache and other data.")
       (origin
         (method url-fetch)
         (uri (crate-uri "dirs" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "009rrhzj9pxyncmm2vhlj70npg0cgggv2hjbbkiwdl9vccq8kmrz"))))
@@ -13921,10 +15282,8 @@ other data.")
         ("rust-redox-users" ,rust-redox-users-0.3)
         ("rust-winapi" ,rust-winapi-0.3))))
     (inputs
-     `(("rust-cfg-if" ,rust-cfg-if-0.1)
-       ("rust-libc" ,rust-libc-0.2)
-       ("rust-redox-users" ,rust-redox-users-0.3)
-       ("rust-winapi" ,rust-winapi-0.3)))
+     (list rust-cfg-if-0.1 rust-libc-0.2 rust-redox-users-0.3
+           rust-winapi-0.3))
     (home-page "https://github.com/soc/dirs-sys-rs")
     (synopsis
      "System-level helper functions for the dirs and directories crates")
@@ -13962,7 +15321,7 @@ and @code{directories} crates.")
       (origin
         (method url-fetch)
         (uri (crate-uri "discard" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1h67ni5bxvg95s91wgicily4ix7lcw7cq0a5gy9njrybaibhyb91"))))
@@ -14049,7 +15408,7 @@ Google's diff-match-patch.")
      `(#:cargo-inputs
        (("rust-libloading" ,rust-libloading-0.6))))
     (inputs
-     `(("rust-libloading" ,rust-libloading-0.6)))
+     (list rust-libloading-0.6))
     (home-page "https://github.com/vberger/dlib")
     (synopsis "Helper macros for manually loading optional system libraries")
     (description
@@ -14057,6 +15416,29 @@ Google's diff-match-patch.")
 system libraries.")
     (license license:expat)))
 
+(define-public rust-dlv-list-0.2
+  (package
+    (name "rust-dlv-list")
+    (version "0.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dlv-list" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "06r1nskj3x56p5wqz2bgl6q3rpyymrb0k0zpbvk8c6qcd4mkzpv8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-rand" ,rust-rand-0.8))))
+    (home-page "https://github.com/sgodwincs/dlv-list-rs")
+    (synopsis "Semi-doubly linked list implemented using a vector")
+    (description
+     "This crate provides semi-doubly linked lists implemented using
+a vector.")
+    (license license:expat)))
+
 (define-public rust-dns-parser-0.8
   (package
     (name "rust-dns-parser")
@@ -14092,7 +15474,7 @@ not support network, only raw protocol parser.")
       (origin
         (method url-fetch)
         (uri (crate-uri "doc-comment" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "15rsqxgarfpb1yim9sbp9yfgj7p2dq6v51c6bq1a62paii9ylgcj"))))
@@ -14211,6 +15593,27 @@ from macros.")
         ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
         ("rust-strsim" ,rust-strsim-0.5))))))
 
+(define-public rust-downcast-0.10
+  (package
+    (name "rust-downcast")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "downcast" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "07bh0l95gwrzak6rj29v8kkm577d8vivxsxhqgscf64b4bq59d2b"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/fkoep/downcast-rs")
+    (synopsis
+     "Trait for downcasting trait objects back to their original types")
+    (description
+     "This crate provides a trait for downcasting trait objects back to their
+original types.")
+    (license license:expat)))
+
 (define-public rust-downcast-rs-1
   (package
     (name "rust-downcast-rs")
@@ -14304,6 +15707,28 @@ for graphs.")
 Rust.")
     (license license:expat)))
 
+(define-public rust-dotenv-0.13
+  (package
+    (inherit rust-dotenv-0.15)
+    (name "rust-dotenv")
+    (version "0.13.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "dotenv" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "11jdifvvwbn60gf5iq2awyq9fik1d9xk7rhch332nwwnkhks3l60"))))
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-clap" ,rust-clap-2)
+         ("rust-failure" ,rust-failure-0.1)
+         ("rust-lazy-static" ,rust-lazy-static-1)
+         ("rust-regex" ,rust-regex-1))
+        #:cargo-development-inputs
+        (("rust-tempdir" ,rust-tempdir-0.3))))))
+
 (define-public rust-dotenv-0.10
   (package
     (inherit rust-dotenv-0.15)
@@ -14378,7 +15803,7 @@ Rust.")
       (origin
         (method url-fetch)
         (uri (crate-uri "dtoa" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0phbm7i0dpn44gzi07683zxaicjap5064w62pidci4fhhciv8mza"))))
@@ -14400,7 +15825,7 @@ floating-point primitives to an @code{io::Write}.")
       (origin
         (method url-fetch)
         (uri (crate-uri "dtoa" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0g96cap6si1g6wi62hsdk2fnj3sf5vd4i97zj6163j8hhnsl3n0d"))))))
@@ -14460,7 +15885,7 @@ Rust.")
 (define-public rust-duct-0.13
   (package
     (name "rust-duct")
-    (version "0.13.0")
+    (version "0.13.5")
     (source
      (origin
        (method url-fetch)
@@ -14469,14 +15894,14 @@ Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1ir3884i1yznkfdccqqbcb9v5sdpcgxlv41hgzncrqaljv18r0wj"))))
+         "13bxiy0y1dck3xz28rqw5ylf2ykv6mk8ww6g8408x26hksjs1ihg"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-once-cell" ,rust-once-cell-1)
-        ("rust-os-pipe" ,rust-os-pipe-0.8)
+        ("rust-os-pipe" ,rust-os-pipe-0.9)
         ("rust-shared-child" ,rust-shared-child-0.3))
        #:cargo-development-inputs
        (("rust-tempdir" ,rust-tempdir-0.3))))
@@ -14581,6 +16006,27 @@ programs.")
         ;("rust-wio" ,rust-wio-0.2)
         ("rust-winapi" ,rust-winapi-0.3))))))
 
+(define-public rust-easy-cast-0.4
+  (package
+    (name "rust-easy-cast")
+    (version "0.4.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "easy-cast" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "13ilmaplp2s4vw1vjh4pwbzk7jdxrn0kpf0rk5sli0s1ikp05lab"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-libm" ,rust-libm-0.2))))
+    (home-page "https://github.com/kas-gui/easy-cast")
+    (synopsis "Type conversions which are expected to succeed")
+    (description "This library is written to make numeric type conversions
+easy.")
+    (license license:asl2.0)))
+
 (define-public rust-easy-parallel-3
   (package
     (name "rust-easy-parallel")
@@ -14740,6 +16186,24 @@ signing, and verification in pure Rust.")
      "Levenshtein edit distance between strings, a measure for similarity.")
     (license license:asl2.0)))
 
+(define-public rust-ego-tree-0.6
+  (package
+    (name "rust-ego-tree")
+    (version "0.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ego-tree" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "149mkc6j7bx653s39rpnsnpl5dvd1rj18czcil57w54k868a8s1s"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/programble/ego-tree")
+    (synopsis "Vec-backed ID-tree")
+    (description "Ego Tree provides a vec-backed ID-tree.")
+    (license license:isc)))
+
 (define-public rust-either-1
   (package
     (name "rust-either")
@@ -14810,7 +16274,7 @@ signing, and verification in pure Rust.")
         ("rust-failure-derive" ,rust-failure-derive-0.1)
         ("rust-lazy-static" ,rust-lazy-static-1))))
     (inputs
-     `(("clang" ,clang)))
+     (list clang))
     (home-page "https://github.com/ubolonton/emacs-module-rs")
     (synopsis "Library for creating Emacs's dynamic modules")
     (description
@@ -14860,13 +16324,69 @@ Emacs' support for dynamic modules.")
      `(#:cargo-inputs
        (("rust-bindgen" ,rust-bindgen-0.48))))
     (inputs
-     `(("clang" ,clang)))
+     (list clang))
     (home-page "https://github.com/ubolonton/emacs-module-rs")
     (synopsis "Raw FFI for emacs-module")
     (description "This module provides a high-level binding to emacs-module:
 Emacs' support for dynamic modules.")
     (license license:bsd-3)))
 
+(define-public rust-email-0.0.20
+  (package
+    (name "rust-email")
+    (version "0.0.20")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "email" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1r12byj69x6bkq0qn1zvi103n1pg5k3w8zym2dgich82pd8rlm4i"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.9)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-encoding" ,rust-encoding-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-rand" ,rust-rand-0.4)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-version-check" ,rust-version-check-0.1))))
+    (home-page "https://github.com/niax/rust-email")
+    (synopsis "Implementation of RFC 5322 email messages")
+    (description
+     "This crate provides an implementation of RFC 5322 email messages.")
+    (license license:expat)))
+
+(define-public rust-lettre-email-0.9
+  (package
+    (name "rust-lettre-email")
+    (version "0.9.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lettre_email" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1mar4njchjd33q7s47r43njjj8farkb78f8ica77jj6gil7lh0px"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-email" ,rust-email-0.0.20)
+        ("rust-lettre" ,rust-lettre-0.9)
+        ("rust-mime" ,rust-mime-0.3)
+        ("rust-time" ,rust-time-0.1)
+        ("rust-uuid" ,rust-uuid-0.7))))
+    (home-page "https://github.com/lettre/lettre")
+    (synopsis "Mailer library for Rust")
+    (description "Lettre is a mailer library for Rust.  It provides multiple
+transport methods, unicode support, secure delivery with SMTP using encryption
+and authentication, easy email builders, and async support.")
+    (license license:expat)))
+
 (define-public rust-embed-resource-1
   (package
     (name "rust-embed-resource")
@@ -15211,6 +16731,25 @@ Standard.")
 order.")
     (license license:expat)))
 
+(define-public rust-entities-1
+  (package
+    (name "rust-entities")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "entities" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1jnpr0zvj97wm9pnh7fnl74rzaar39hhg65p03cm08bqqgj0lcmm"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/p-jackson/entities")
+    (synopsis "Raw data needed to convert to and from HTML entities")
+    (description "This package provides the raw data needed to convert to and
+from HTML entities.")
+    (license license:expat)))
+
 (define-public rust-enum-as-inner-0.3
   (package
     (name "rust-enum-as-inner")
@@ -15256,6 +16795,58 @@ accessor functions on enums.")
         ("rust-quote" ,rust-quote-0.6)
         ("rust-syn" ,rust-syn-0.15))))))
 
+(define-public rust-enum-map-derive-0.4
+  (package
+    (name "rust-enum-map-derive")
+    (version "0.4.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "enum-map-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0mg43p1x90cz604zddk9qzss077v2id04qmmbpa1i7jc637m1i75"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://gitlab.com/KonradBorowski/enum-map")
+    (synopsis "Macros 1.1 implementation of #[derive(Enum)]")
+    (description "This package provides a macros 1.1 implementation of
+@code{#[derive(Enum)]}.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-enum-map-0.6
+  (package
+    (name "rust-enum-map")
+    (version "0.6.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "enum-map" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0m8qg32fnjdf6z64j4wmyp935p5838wd31gibkiqpbpl76c9k1s1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-array-macro" ,rust-array-macro-1)
+        ("rust-enum-map-derive" ,rust-enum-map-derive-0.4)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-test" ,rust-serde-test-1))))
+    (home-page "https://gitlab.com/KonradBorowski/enum-map")
+    (synopsis "Map with C-like enum keys represented internally as an array")
+    (description
+     "This package provides a map with C-like enum keys represented internally
+as an array.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-enum-primitive-0.1
   (package
     (name "rust-enum-primitive")
@@ -15328,6 +16919,51 @@ implement enum_primitive.")
 convert enum to u8 slice ref.")
     (license license:bsd-3)))
 
+(define-public rust-enumflags2-0.6
+  (package
+    (name "rust-enumflags2")
+    (version "0.6.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "enumflags2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "182xd6cxxmadx1axnz6x73d12pzgwkc712zq2lxd4z1k48lxij43"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-enumflags2-derive" ,rust-enumflags2-derive-0.6)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/NieDzejkob/enumflags2")
+    (synopsis "Enum-based bit flags")
+    (description "Enumflags2 is an Enum-based bit flags library.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-enumflags2-derive-0.6
+  (package
+    (name "rust-enumflags2-derive")
+    (version "0.6.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "enumflags2_derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1kkcwi4n76bi1c16ms00dyk4d393gdf29kpr4k9zsn5z7m7fjvll"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/NieDzejkob/enumflags2")
+    (synopsis "Rust library for typesystem-assisted bitflags")
+    (description "Enumflags2 implements the classic bitflags datastructure.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-env-logger-0.8
   (package
     (name "rust-env-logger")
@@ -15725,6 +17361,31 @@ deserialized from environment variables.")
 @code{no_std} environment.")
     (license license:boost1.0)))
 
+(define-public rust-escaper-0.1
+  (package
+    (name "rust-escaper")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "escaper" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0rhn3ipb5c3zns4wakclilfqzbmax6pwx7l367dipfj9fdxvjgm5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-entities" ,rust-entities-1))
+       #:cargo-development-inputs
+       (("rust-num" ,rust-num-0.4)
+        ("rust-rand" ,rust-rand-0.8))))
+    (home-page "https://github.com/dignifiedquire/rust-escaper")
+    (synopsis "Library for HTML entity encoding and decoding")
+    (description "This package provides a library for HTML entity encoding and
+decoding.")
+    (license (list license:asl2.0 license:expat license:mpl2.0))))
+
 (define-public rust-escargot-0.5
   (package
     (name "rust-escargot")
@@ -15847,9 +17508,9 @@ blocking data structures.")
        (("rust-cmake" ,rust-cmake-0.1)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("expat" ,expat)))
+     (list expat))
     (home-page "http://www.libexpat.org/")
     (synopsis "XML parser library written in C")
     (description "XML parser library written in C")
@@ -15977,7 +17638,7 @@ a result when an allocation error occurs, ala
 @url{https://github.com/rust-lang/rfcs/blob/master/text/2116-alloc-me-maybe.md,RFC
 2116}.  The API currently proposes a fallible interface for @code{Vec},
 @code{Box}, @code{Arc}, @code{Btree} and @code{Rc}, as well as a
-@code{TryClone} trait wich is implemented for primitive Rust traits and a
+@code{TryClone} trait which is implemented for primitive Rust traits and a
 fallible format macro.")
     (license (list license:expat license:asl2.0))))
 
@@ -16042,7 +17703,7 @@ fallible format macro.")
       (origin
         (method url-fetch)
         (uri (crate-uri "fallible-iterator" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1xq759lsr8gqss7hva42azn3whgrbrs2sd9xpn92c5ickxm1fhs4"))))
@@ -16129,6 +17790,28 @@ implement features such as look-around and backtracking, which are not
 supported in purely NFA-based implementations.")
     (license license:expat)))
 
+(define-public rust-fast-chemail-0.9
+  (package
+    (name "rust-fast-chemail")
+    (version "0.9.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fast_chemail" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1r79x2i7bhk8y4nv7q245dlifxryszmby4k3psm2qk321p9kjnj9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ascii-utils" ,rust-ascii-utils-0.9))))
+    (home-page "https://gitlab.com/fast_chemail/fast_chemail-rs")
+    (synopsis "Check email address")
+    (description "Fast Chemail is a library used to validate the email as it
+is defined in the HTML specification.")
+    (license license:mpl2.0)))
+
 (define-public rust-fast-float-0.2
   (package
     (name "rust-fast-float")
@@ -16150,23 +17833,64 @@ supported in purely NFA-based implementations.")
 floats.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-fastq-0.6
+  (package
+    (name "rust-fastq")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fastq" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "177jsfabnk3zl5zml6qvidzjpk53dp62rqjbdhbhr8cg7ms59p60"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-build-flags '("-vv")
+       #:phases
+       (modify-phases %standard-phases
+         ;; This is needed for the parasail-sys package.
+         (add-after 'unpack 'set-shell-for-configure-script
+           (lambda _
+             (setenv "SHELL" (which "sh"))
+             (setenv "CONFIG_SHELL" (which "sh")))))
+       #:cargo-inputs
+       (("rust-flate2" ,rust-flate2-1)
+        ("rust-lz4" ,rust-lz4-1)
+        ("rust-memchr" ,rust-memchr-2))
+       #:cargo-development-inputs
+       (("rust-bio" ,rust-bio-0.33)
+        ("rust-parasailors" ,rust-parasailors-0.3))))
+    (inputs
+     (list zlib))
+    (native-inputs
+     (list libtool))
+    (home-page "https://github.com/aseyboldt/fastq-rs")
+    (synopsis "Parser for fastq files")
+    (description "This package provides a parser for fastq files.")
+    (license license:expat)))
+
 (define-public rust-fastrand-1
   (package
     (name "rust-fastrand")
-    (version "1.4.0")
+    (version "1.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "fastrand" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1qvz1i7g5mb2hcsaawrvxx88b8vwrsr85qr98ffmrkj5fh2sypya"))))
+        (base32 "0birvh29m4x6nwjdyrmiyiypw9l52bmvk15ksdw96hjs50yyv55k"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-instant" ,rust-instant-0.1))
        #:cargo-development-inputs
-       (("rust-rand" ,rust-rand-0.7))))
+       (("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-instant" ,rust-instant-0.1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3)
+        ("rust-wyhash" ,rust-wyhash-0.5))))
     (home-page "https://github.com/stjepang/fastrand")
     (synopsis "Simple and fast random number generator")
     (description
@@ -16216,6 +17940,158 @@ it.")
        (("rust-libc" ,rust-libc-0.2)
         ("rust-winapi" ,rust-winapi-0.3))))))
 
+(define-public rust-fdlimit-0.1
+  (package
+    (name "rust-fdlimit")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fdlimit" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0g30d6gqkrwy8ylwdy7pqm443iq0p5dmnpz4ks41pirl7dclm98d"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/paritytech/fdlimit")
+    (synopsis "Utility crate for raising file descriptors limit")
+    (description "This package provides a Rust library to raise file
+descriptors limit.")
+    (license license:asl2.0)))
+
+(define-public rust-feature-probe-0.1
+  (package
+    (name "rust-feature-probe")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "feature-probe" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1nhif9zpr2f17gagf0qb0v914wc3jr9sfjzvnpi7b7pcs73ksnl3"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/tov/feature-probe-rs")
+    (synopsis "Probe for rustc features from build.rs")
+    (description "To support multiple versions of Rust, it's often necessary
+to conditionally compile parts of our libraries or programs.  It's possible to
+allow users to specify what features to enable, but detection is better,
+because users get all the features that their version of Rust supports.  And
+while we could check the rustc version, it's better to probe for individual
+features.  This package probes for rustc features from build.rs.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-feed-rs-0.6
+  (package
+    (name "rust-feed-rs")
+    (version "0.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "feed-rs" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1a1ain6r9k8bx7cz9pxqh3hdqbn8cqdkrbx78c8rxb7vqngyg53z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-mime" ,rust-mime-0.3)
+        ("rust-quick-xml" ,rust-quick-xml-0.20)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-siphasher" ,rust-siphasher-0.3)
+        ("rust-url" ,rust-url-2)
+        ("rust-uuid" ,rust-uuid-0.8))))
+    (home-page "https://github.com/feed-rs/feed-rs")
+    (synopsis "Unified feed parser")
+    (description "This package provides a unified feed parser that handles
+Atom, RSS 2.0, RSS 1.0, RSS 0.x and JSON Feed")
+    (license license:expat)))
+
+(define-public rust-feedbin-api-0.1
+  (package
+    (name "rust-feedbin-api")
+    (version "0.1.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "feedbin-api" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "170xf3cgsqgqpnafpdmzzw9yvzc51r22lgr4f4hcrmidxlxpmlkp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ;tests use the network
+       #:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-reqwest" ,rust-reqwest-0.11)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-dotenv" ,rust-dotenv-0.15)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-tokio" ,rust-tokio-1))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list openssl))
+    (home-page "https://gitlab.com/news-flash/feedbin_api")
+    (synopsis  "Rust implementation of the Feedbin REST API")
+    (description
+     "This package provides a Rust implementation of the Feedbin REST API.")
+    (license license:unlicense)))
+
+(define-public rust-feedly-api-0.4
+  (package
+    (name "rust-feedly-api")
+    (version "0.4.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "feedly-api" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1knad1bghc8hhfcyl35fcnhrk01vklamq07630rdk0pg6ax04swi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ;tests open external connections
+       #:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-percent-encoding"
+         ,rust-percent-encoding-2)
+        ("rust-reqwest" ,rust-reqwest-0.11)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-dotenv" ,rust-dotenv-0.15)
+        ("rust-tokio" ,rust-tokio-1))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list openssl))
+    (home-page "https://gitlab.com/news-flash/feedly_api")
+    (synopsis "Rust implementation of the feedly REST API")
+    (description
+     "This package provides a Rust implementation of the feedly REST API.")
+    ;; No copyright headers in the source code.  LICENSE indicates gpl3.
+    (license license:gpl3)))
+
 (define-public rust-femme-2
   (package
     (name "rust-femme")
@@ -16333,6 +18209,43 @@ it.")
        (("rust-clap" ,rust-clap-2)
         ("rust-tempdir" ,rust-tempdir-0.3))))))
 
+(define-public rust-fever-api-0.2
+  (package
+    (name "rust-fever-api")
+    (version "0.2.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fever-api" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0pv4g241pc0bfwy9gjwsmrdv7mplzbifxr5mxf0k82yxawg55anc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ;tests use the network
+       #:cargo-inputs
+       (("rust-failure" ,rust-failure-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-md5" ,rust-md5-0.7)
+        ("rust-reqwest" ,rust-reqwest-0.11)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-dotenv" ,rust-dotenv-0.15)
+        ("rust-tokio" ,rust-tokio-1))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list openssl))
+    (home-page "https://gitlab.com/news-flash/fever_api")
+    (synopsis "Rust implementation of the Fever API")
+    (description
+     "This package provides a Rust implementation of the Fever API.")
+    ;; No copyright headers in the source code.  LICENSE indicates gpl3.
+    (license license:gpl3)))
+
 (define-public rust-filesize-0.2
   (package
     (name "rust-filesize")
@@ -16365,7 +18278,7 @@ sparse files.")
       (origin
         (method url-fetch)
         (uri (crate-uri "filetime" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1s71cb7hzkk4ahc5j53w8933gnxv2giyj7v0za5hbbk37ahwyd0x"))))
@@ -16398,7 +18311,7 @@ representation.")
       (origin
         (method url-fetch)
         (uri (crate-uri "findshlibs" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1n2vagn0q5yim32hxkwi1cjgp3yn1dm45p7z8nw6lapywihhs9mi"))))
@@ -16456,7 +18369,7 @@ cross platform API.")
       (origin
         (method url-fetch)
         (uri (crate-uri "fixedbitset" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0kg03p777wc0dajd9pvlcnsyrwa8dhqwf0sd9r4dw0p82rs39arp"))))
@@ -16476,7 +18389,7 @@ cross platform API.")
       (origin
         (method url-fetch)
         (uri (crate-uri "fixedbitset" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0czam11mi80dbyhf4rd4lz0ihcf7vkfchrdcrn45wbs0h40dxm46"))))))
@@ -16702,6 +18615,27 @@ streams.")
     (arguments
      `(#:cargo-inputs (("rust-num" ,rust-num-0.1))))))
 
+(define-public rust-float-ord-0.3
+  (package
+    (name "rust-float-ord")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "float-ord" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0gbvx6dzz8xvj38bj02cajpqd9p5syxjx9jyqpj8414amr4izs4c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.8))))
+    (home-page "https://github.com/notriddle/rust-float-ord")
+    (synopsis "Total ordering for floating-point numbers")
+    (description
+     "This package provides a total ordering for floating-point numbers")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-float-ord-0.2
   (package
     (name "rust-float-ord")
@@ -16835,7 +18769,7 @@ crate.")
       (origin
         (method url-fetch)
         (uri (crate-uri "fnv" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1ww56bi1r5b8id3ns9j3qxbi7w5h005rzhiryy0zi9h97raqbb9g"))))
@@ -17001,7 +18935,7 @@ implementation that is more efficient for smaller hash keys.")
       (origin
         (method url-fetch)
         (uri (crate-uri "foreign-types-shared" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0kanxlif1vp0ffh2r9l610jqbkmb3183yqykxq1z5w1vay2rn7y6"))))))
@@ -17044,8 +18978,28 @@ implementation that is more efficient for smaller hash keys.")
 syntax, as used by HTML forms.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-fragile-1
+  (package
+    (name "rust-fragile")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fragile" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1wlihmkjyhvl5rckal32p010piy1l15s6l81h7z31jcd971kk839"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/mitsuhiko/rust-fragile")
+    (synopsis "Wrapper types for sending non-send values to other threads")
+    (description "This package provides wrapper types for sending non-send
+values to other threads.")
+    (license license:asl2.0)))
+
 (define-public rust-fragile-0.3
   (package
+    (inherit rust-fragile-1)
     (name "rust-fragile")
     (version "0.3.0")
     (source
@@ -17056,13 +19010,7 @@ syntax, as used by HTML forms.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1yf2hmkw52x2dva3c9km1x8c2z5kwby7qqn8kz5ms3gs480i9y05"))))
-    (build-system cargo-build-system)
-    (home-page "https://github.com/mitsuhiko/rust-fragile")
-    (synopsis "Wrapper types for sending non-send values to other threads")
-    (description "This package provides wrapper types for sending non-send
-values to other threads.")
-    (license license:asl2.0)))
+          "1yf2hmkw52x2dva3c9km1x8c2z5kwby7qqn8kz5ms3gs480i9y05"))))))
 
 (define-public rust-freetype-0.4
   (package
@@ -17134,8 +19082,7 @@ values to other threads.")
        #:cargo-development-inputs
        (("rust-unicode-normalization" ,rust-unicode-normalization-0.1))))
     (inputs
-     `(("freetype" ,freetype)
-       ("zlib" ,zlib)))))
+     (list freetype zlib))))
 
 (define-public rust-freetype-sys-0.13
   (package
@@ -17181,8 +19128,7 @@ values to other threads.")
         ("rust-libz-sys" ,rust-libz-sys-1)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (inputs
-     `(("freetype" ,freetype)
-       ("zlib" ,zlib)))))
+     (list freetype zlib))))
 
 (define-public rust-fs2-0.4
   (package
@@ -17217,7 +19163,7 @@ duplication.")
      (origin
        (method url-fetch)
        (uri (crate-uri "fs_extra" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "151k6dr35mhq5d8pc8krhw55ajhkyiv0pm14s7zzlc5bc9fp28i0"))))
     (build-system cargo-build-system)
@@ -17385,7 +19331,7 @@ strings (> 1 billion is possible).")
       (origin
         (method url-fetch)
         (uri (crate-uri "fuchsia-cprng" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1fnkqrbz7ixxzsb04bsz9p0zzazanma8znfdqjvh39n14vapfvx0"))))
@@ -17406,7 +19352,7 @@ pseudorandom number generator")
       (origin
         (method url-fetch)
         (uri (crate-uri "fuchsia-zircon" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "10jxc5ks1x06gpd0xg51kcjrxr35nj6qhx2zlc5n7bmskv3675rf"))))
@@ -17429,7 +19375,7 @@ pseudorandom number generator")
       (origin
         (method url-fetch)
         (uri (crate-uri "fuchsia-zircon-sys" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "19zp2085qsyq2bh1gvcxq1lb8w6v6jj9kbdkhpdjrl95fypakjix"))))
@@ -17528,7 +19474,7 @@ zero allocations, composability, and iterator-like interfaces.")
       (origin
         (method url-fetch)
         (uri (crate-uri "futures" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1vq3cw37knnd0afw3rcjzh71i2l01v5m4ysinrrqdvnn2ql0z60v"))))
@@ -17651,7 +19597,7 @@ featuring zero allocations, composability, and iterator-like interfaces.")
       (origin
         (method url-fetch)
         (uri (crate-uri "futures-core-preview" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "02n66jkjhpy210dv24pz0j30lvyin5kzlrb50p1j7x8yzdin4nxk"))))
@@ -17672,7 +19618,7 @@ featuring zero allocations, composability, and iterator-like interfaces.")
       (origin
         (method url-fetch)
         (uri (crate-uri "futures-cpupool" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1r32456gpblzfvnkf60545v8acqk7gh5zhyhi1jn669k9gicv45b"))))
@@ -17806,7 +19752,7 @@ for the @code{futures-rs} library.")
       (origin
         (method url-fetch)
         (uri (crate-uri "futures-io-preview" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1npb04xbn2gw5rjllz88cb88fql44xxfkgcidjjj26fva3j4m4gl"))))
@@ -18012,7 +19958,7 @@ the @code{futures-rs} library.")
       (origin
         (method url-fetch)
         (uri (crate-uri "futures-sink-preview" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1v7y5qvgvl0d6hd9s4k7bd5qrj2gdlrs5yfl22v5pxv9dgpliwc6"))))
@@ -18718,6 +20664,31 @@ interfaces on the system.")
 @code{_getch} on Windows, and @code{termios} on Unix.")
     (license license:asl2.0)))
 
+(define-public rust-gethostname-0.2
+  (package
+    (name "rust-gethostname")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gethostname" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0a609j9dhk816il2f2a01avvi5sqzxh0p38nxwrja7dcpybf54p6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ; test panics
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-pretty-assertions" ,rust-pretty-assertions-0.6))))
+    (home-page "https://github.com/lunaryorn/gethostname.rs")
+    (synopsis "Gethostname for all platforms")
+    (description "This library provides @code{gethostname()} for all
+platforms.")
+    (license license:asl2.0)))
+
 (define-public rust-getopts-0.2
   (package
     (name "rust-getopts")
@@ -18726,7 +20697,7 @@ interfaces on the system.")
       (origin
         (method url-fetch)
         (uri (crate-uri "getopts" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1mgb3qvivi26gs6ihqqhh8iyhp3vgxri6vwyrwg28w0xqzavznql"))))
@@ -18826,6 +20797,30 @@ retrieving random data from system source.")
 getters and setters on fields.")
     (license license:expat)))
 
+(define-public rust-getset-0.0.9
+  (package
+    (name "rust-getset")
+    (version "0.0.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "getset" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0aaldwfs2690rjqg2ygan27l2qa614w2p6zj7k99n36pv2vzbcsv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/Hoverbear/getset")
+    (synopsis "Getters and setters for Rust")
+    (description
+     "This package provides a procedural macro for generating the most basic
+getters and setters on fields.")
+    (license license:expat)))
+
 (define-public rust-gettext-rs-0.7
   (package
     (name "rust-gettext-rs")
@@ -19209,7 +21204,7 @@ dirty state into your program.")
 (define-public rust-git2-0.13
   (package
     (name "rust-git2")
-    (version "0.13.20")
+    (version "0.13.24")
     (source
      (origin
        (method url-fetch)
@@ -19218,7 +21213,7 @@ dirty state into your program.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1fkc2gzcnl4ci3rja9mc5jl2ygl3fkc1fgym3rcwby216ac1x0yr"))))
+         "07rlxwvl5iyyqwh0mci5v27lbicf9qiqm60maw1srz7i51x00pl4"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -19237,10 +21232,7 @@ dirty state into your program.")
      `(("pkg-config" ,pkg-config)
        ("git" ,git-minimal)))           ;for a single test
     (inputs
-     `(("libgit2" ,libgit2)
-       ("libssh2" ,libssh2)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list libgit2 libssh2 openssl zlib))
     (home-page "https://github.com/rust-lang/git2-rs")
     (synopsis "Rust bindings to libgit2")
     (description
@@ -19354,6 +21346,152 @@ libcurl, which is intended to be used with the @code{git2} crate.")
     (description "Gjson is a JSON parser for Rust.")
     (license license:expat)))
 
+(define-public rust-glam-0.17
+  (package
+    (name "rust-glam")
+    (version "0.17.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glam" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0xm7jdygbxchdvk6k1l1pdag843nkwdm8fikwgp0i1gxgawk45z0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-approx" ,rust-approx-0.5)
+        ("rust-bytemuck" ,rust-bytemuck-1.5)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/bitshifter/glam-rs")
+    (synopsis "3D math library for games and graphics")
+    (description
+     "This package provides a simple and fast 3D math library for games and
+graphics.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-glam-0.16
+  (package
+    (name "rust-glam")
+    (version "0.16.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glam" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "05izbgx93hnjk200144h9yxhy51cbygp2bbaqdj8czngki3w09j1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t  ; TODO: we need a more recent criterion
+       #:cargo-inputs
+       (("rust-approx" ,rust-approx-0.4)
+        ("rust-bytemuck" ,rust-bytemuck-1.5)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/bitshifter/glam-rs")
+    (synopsis "3D math library for games and graphics")
+    (description
+     "This package provides a simple and fast 3D math library for games and
+graphics.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-glam-0.15
+  (package
+    (name "rust-glam")
+    (version "0.15.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glam" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0jx587lxz9v9m0ph4dlshfgy0abax1zhlbjj5nvkchz4ir7mbfrs"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t  ; TODO: we need a more recent criterion
+       #:cargo-inputs
+       (("rust-bytemuck" ,rust-bytemuck-1.5)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-spirv-std" ,rust-spirv-std-0.4))))
+    (home-page "https://github.com/bitshifter/glam-rs")
+    (synopsis "3D math library for games and graphics")
+    (description
+     "This package provides a simple and fast 3D math library for games and
+graphics.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-glam-0.14
+  (package
+    (name "rust-glam")
+    (version "0.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glam" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1njk0cskaspc62ywxlzpiszbcb9hhh1yqg2ka105sg0hxgajhf9k"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytemuck" ,rust-bytemuck-1.5)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-spirv-std" ,rust-spirv-std-0.4))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-rand-xoshiro" ,rust-rand-xoshiro-0.6)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/bitshifter/glam-rs")
+    (synopsis "3D math library for games and graphics")
+    (description
+     "This package provides a simple and fast 3D math library for games and
+graphics.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-glam-0.13
+  (package
+    (name "rust-glam")
+    (version "0.13.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glam" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ps7f44844ydj7cjr7wk1hn2d83ds1ilq7p9b2vvhr0711b5n5bh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytemuck" ,rust-bytemuck-1.5)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-spirv-std" ,rust-spirv-std-0.4))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-rand-xoshiro" ,rust-rand-xoshiro-0.4)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/bitshifter/glam-rs")
+    (synopsis "3D math library for games and graphics")
+    (description
+     "This package provides a simple and fast 3D math library for games and
+graphics.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-glium-0.25
   (package
     (name "rust-glium")
@@ -19400,7 +21538,7 @@ OpenGL's old and error-prone API.")
       (origin
         (method url-fetch)
         (uri (crate-uri "glob" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0x25wfr7vg3mzxc9x05dcphvd3nwlcmbnxrvwcvrrdwplcrrk4cv"))))
@@ -19426,7 +21564,7 @@ shell style patterns.")
       (origin
         (method url-fetch)
         (uri (crate-uri "glob" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1ysvi72slkw784fcsymgj4308c3y03gwjjzqxp80xdjnkbh8vqcb"))))))
@@ -19728,8 +21866,7 @@ the regex engine it uses pluggable.")
        (("rust-grep-matcher" ,rust-grep-matcher-0.1)
         ("rust-pcre2" ,rust-pcre2-0.2))))
     (native-inputs
-     `(("pcre2" ,pcre2)
-       ("pkg-config" ,pkg-config)))
+     (list pcre2 pkg-config))
     (home-page
      "https://github.com/BurntSushi/ripgrep")
     (synopsis "Use PCRE2 with the grep crate")
@@ -20032,7 +22169,7 @@ IEEE 754-2008 binary16 type.")
        (("rust-winapi" ,rust-winapi-0.3))))
     (home-page "https://github.com/brson/home")
     (synopsis "Shared definitions of home directories")
-    (description "This packages provides the definition of @code{home_dir}
+    (description "This package provides the definition of @code{home_dir}
 used by @command{cargo} and @command{rustup}, as well as functions to find the
 correct value of @samp{CARGO_HOME} and @samp{RUSTUP_HOME}.")
     (license (list license:expat license:asl2.0))))
@@ -20122,6 +22259,26 @@ the template engine that renders the official Rust website")
      "This package provides a Rust implementation of VG handle graph.")
     (license license:expat)))
 
+(define-public rust-hash-hasher-2
+  (package
+    (name "rust-hash-hasher")
+    (version "2.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hash_hasher" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "034cd4m3znwff3cd1i54c40944y999jz086d70rwpl0jfl01swkl"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/Fraser999/Hash-Hasher.git")
+    (synopsis "Hasher designed to work with already-hashed or hash-like data")
+    (description
+     "This package provides a hasher which is designed to work with
+already-hashed or hash-like data.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-hash32-0.1
   (package
     (name "rust-hash32")
@@ -20512,7 +22669,7 @@ that don't require dynamic memory allocation.")
      (origin
        (method url-fetch)
        (uri (crate-uri "heapsize" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
          "0q94q9ppqjgrw71swiyia4hgby2cz6dldp7ij57nkvhd6zmfcy8n"))))
@@ -20537,7 +22694,7 @@ heap.")
       (origin
         (method url-fetch)
         (uri (crate-uri "heapsize" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0dmwc37vgsdjzk10443dj4f23439i9gch28jcwzmry3chrwx8v2m"))))
@@ -20554,7 +22711,7 @@ heap.")
       (origin
         (method url-fetch)
         (uri (crate-uri "heapsize_plugin" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1i72isf699q9jl167g2kg4xd6h3cd05rc79zaph58aqjy0g0m9y9"))))
@@ -20572,15 +22729,15 @@ total runtime size of an object on the heap")
 (define-public rust-heck-0.3
   (package
     (name "rust-heck")
-    (version "0.3.1")
+    (version "0.3.2")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "heck" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "01a2v7yvkiqxakdqz4hw3w3g4sm52ivz9cs3qcsv2arxsmw4wmi0"))))
+          "1b56s2c1ymdd0qmy31bw0ndhm31hcdamnhg3npp7ssrmc1ag9jw7"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -20651,7 +22808,7 @@ hexadecimal representation.")
       (origin
         (method url-fetch)
         (uri (crate-uri "hex" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0xsdcjiik5j750j67zk42qdnmm4ahirk3gmkmcqgq7qls2jjcl40"))))))
@@ -20665,7 +22822,7 @@ hexadecimal representation.")
      (origin
        (method url-fetch)
        (uri (crate-uri "hex" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1ajkw40qzn2ygnqjj9w584f6l31wi318258n84pn2hax8la2i8nn"))))))
 
@@ -21013,7 +23170,7 @@ Hash-based Message Authentication Code algorithm} for SHA1.")
       (origin
         (method url-fetch)
         (uri (crate-uri "hostname" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0kprf862qaa7lwdms6aw7f3275h0j2rwhs9nz5784pm8hdmb9ki1"))))
@@ -21858,9 +24015,9 @@ with hyper.")
         (base32
          "1vcfyz7dxavf4brns15afmj5fxz88lbn05rrpbfqsnybdp2sqyfr"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (arguments
      `(#:cargo-inputs
        (("rust-bytes" ,rust-bytes-0.5)
@@ -22634,24 +24791,24 @@ data efficiently.")
 that works on WASM too.")
     (license license:bsd-3)))
 
-(define-public rust-integer-encoding-1
+(define-public rust-integer-encoding-3
   (package
     (name "rust-integer-encoding")
-    (version "1.2.2")
+    (version "3.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "integer-encoding" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1c032xhif5d6a8nc4cak60g5ylwd6p9569122m5hm67brx2l5yhb"))))
+        (base32 "1f0mk7d694g2sz4my5zh7i5w4kijx5y16x6dip7fv0pazx013hch"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-async-trait" ,rust-async-trait-0.1)
         ("rust-futures-util" ,rust-futures-util-0.3)
-        ("rust-tokio" ,rust-tokio-0.2))))
+        ("rust-tokio" ,rust-tokio-1))))
     (home-page "https://github.com/dermesser/integer-encoding-rs")
     (synopsis "Encoding and decoding integers to and from bytestrings")
     (description
@@ -22659,6 +24816,25 @@ that works on WASM too.")
 bytestring representations.")
     (license license:expat)))
 
+(define-public rust-integer-encoding-1
+  (package
+    (inherit rust-integer-encoding-3)
+    (name "rust-integer-encoding")
+    (version "1.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "integer-encoding" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1c032xhif5d6a8nc4cak60g5ylwd6p9569122m5hm67brx2l5yhb"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-async-trait" ,rust-async-trait-0.1)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-tokio" ,rust-tokio-0.2))))))
+
 (define-public rust-interpolate-name-0.2
   (package
     (name "rust-interpolate-name")
@@ -22739,7 +24915,7 @@ immutable interval tree.")
       (origin
         (method url-fetch)
         (uri (crate-uri "iovec" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0ph73qygwx8i0mblrf110cj59l00gkmsgrpzz1rm85syz5pymcxj"))))
@@ -22851,11 +25027,9 @@ enum like Option/Result.")
         ("rust-test-case" ,rust-test-case-1)
         ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.2))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("curl" ,curl)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list curl openssl zlib))
     (home-page "https://github.com/sagebind/isahc")
     (synopsis "Practical HTTP client")
     (description
@@ -23190,7 +25364,7 @@ and functions.")
       (origin
         (method url-fetch)
         (uri (crate-uri "itoa" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "13nxqrfnh83a7x5rw4wq2ilp8nxvwy74dxzysdg59dbxqk0agdxq"))))
@@ -23226,7 +25400,7 @@ primitives to an @code{io::Write}.")
      (origin
        (method url-fetch)
        (uri (crate-uri "itoa" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
          "18g7p2hrb3dk84z3frfgmszfc9hjb4ps9vp99qlb1kmf9gm8hc5f"))))))
@@ -23285,7 +25459,7 @@ primitives to an @code{io::Write}.")
                        (string-append jemalloc "/lib/libjemalloc_pic.a")))
              #t)))))
     (native-inputs
-     `(("jemalloc" ,jemalloc)))
+     (list jemalloc))
     (home-page "https://github.com/gnzlbg/jemallocator")
     (synopsis "Rust FFI bindings to jemalloc")
     (description "This package provides Rust FFI bindings to jemalloc.")
@@ -23365,29 +25539,47 @@ primitives to an @code{io::Write}.")
                        (string-append jemalloc "/lib/libjemalloc_pic.a")))
              #t)))))
     (native-inputs
-     `(("jemalloc" ,jemalloc)))))
+     (list jemalloc))))
 
-(define-public rust-jetscii-0.3
+(define-public rust-jetscii-0.5
   (package
     (name "rust-jetscii")
-    (version "0.3.1")
+    (version "0.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "jetscii" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1sq6d6c9vi44gkr566w2f1d4n6mmrjx8gjdwgnhkgcsg051j391j"))))
+        (base32 "1x4z5ixlxv1wa70d3d6ad3n8qxz6z00i13zwnv219v45qcwybbnb"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-memmap" ,rust-memmap-0.7)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-region" ,rust-region-2))))
     (home-page "https://github.com/shepmaster/jetscii")
     (synopsis
      "Search strings and byte slices for sets of ASCII characters or bytes")
-    (description
-     "This package provides a tiny library to efficiently search strings and
-byte slices for sets of ASCII characters or bytes.")
+    (description "This package provides a tiny library to efficiently search
+strings and byte slices for sets of ASCII characters or bytes.")
     (license license:expat)))
 
+(define-public rust-jetscii-0.3
+  (package
+    (inherit rust-jetscii-0.5)
+    (name "rust-jetscii")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "jetscii" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1sq6d6c9vi44gkr566w2f1d4n6mmrjx8gjdwgnhkgcsg051j391j"))))
+    (arguments `(#:skip-build? #t))))
+
 (define-public rust-jni-0.18
   (package
     (name "rust-jni")
@@ -23626,7 +25818,7 @@ wasm-bindgen crate.")
       (origin
         (method url-fetch)
         (uri (crate-uri "json" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1rg9jxf6bpbwis3ixd5ak8rp37him7n4z8awz4ssrxl6hyplbhlj"))))
@@ -23762,7 +25954,7 @@ debugging.")
       (origin
         (method url-fetch)
         (uri (crate-uri "kernel32-sys" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1389av0601a9yz8dvx5zha9vmkd6ik7ax0idpb032d28555n41vm"))))
@@ -23829,7 +26021,7 @@ kernel32.")
       (origin
         (method url-fetch)
         (uri (crate-uri "language-tags" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "16hrjdpa827carq5x4b8zhas24d8kg4s16m6nmmn1kb7cr5qh7d9"))))
@@ -24055,7 +26247,7 @@ generated by LALRPOP.")
       (origin
         (method url-fetch)
         (uri (crate-uri "lazy_static" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0in6ikhw8mgl33wjv6q6xfrb5b9jr16q8ygjy803fay4zcisvaz2"))))
@@ -24065,7 +26257,7 @@ generated by LALRPOP.")
        #:cargo-development-inputs
        (("rust-doc-comment" ,rust-doc-comment-0.3))))
     (inputs
-     `(("rust-spin" ,rust-spin-0.5)))
+     (list rust-spin-0.5))
     (home-page  "https://github.com/rust-lang-nursery/lazy-static.rs")
     (synopsis "Macro for declaring lazily evaluated statics in Rust")
     (description
@@ -24135,8 +26327,68 @@ requires non-const function calls to be computed.")
      "This package provides a library providing a lazily filled Cell struct.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-lettre-0.9
+  (package
+    (name "rust-lettre")
+    (version "0.9.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lettre" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1pk0jsbjlzijl1m8l2nxxbfll6lk2dbc6ja9mdrvaxc92dvqdvc6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.10)
+        ("rust-bufstream" ,rust-bufstream-0.1)
+        ("rust-fast-chemail" ,rust-fast-chemail-0.9)
+        ("rust-hostname" ,rust-hostname-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-nom" ,rust-nom-4)
+        ("rust-r2d2" ,rust-r2d2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://lettre.rs")
+    (synopsis "Rust email client")
+    (description "lettre is an email client for Rust programs allowing easily
+sending emails from Rust applications.")
+    (license license:expat)))
+
+(define-public rust-lexical-core-0.8
+  (package
+    (name "rust-lexical-core")
+    (version "0.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lexical-core" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1152ll9xa7v4jz2mjvz0048gy32yg39mzgjaps89h0any7c2cfba"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-lexical-parse-float" ,rust-lexical-parse-float-0.8)
+        ("rust-lexical-parse-integer" ,rust-lexical-parse-integer-0.8)
+        ("rust-lexical-util" ,rust-lexical-util-0.8)
+        ("rust-lexical-write-float" ,rust-lexical-write-float-0.8)
+        ("rust-lexical-write-integer" ,rust-lexical-write-integer-0.8))))
+    (home-page
+     "https://github.com/Alexhuszagh/rust-lexical/tree/master/lexical-core")
+    (synopsis "Lexical, to- and from-string conversion routines")
+    (description
+     "This crate provides lexical, to- and from-string conversion routines.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-lexical-core-0.7
   (package
+    (inherit rust-lexical-core-0.8)
     (name "rust-lexical-core")
     (version "0.7.6")
     (source
@@ -24147,7 +26399,6 @@ requires non-const function calls to be computed.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1zjzab1fnaw4kj6ixyrskp4dyz761gdcab07m4bkvlk1l4mcc1v6"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-arrayvec" ,rust-arrayvec-0.5)
@@ -24160,14 +26411,7 @@ requires non-const function calls to be computed.")
        #:cargo-development-inputs
        (("rust-approx" ,rust-approx-0.4)
         ("rust-proptest" ,rust-proptest-0.10)
-        ("rust-quickcheck" ,rust-quickcheck-1))))
-    (home-page
-     "https://github.com/Alexhuszagh/rust-lexical/tree/master/lexical-core")
-    (synopsis
-     "Lexical, to- and from-string conversion routines")
-    (description
-     "Lexical, to- and from-string conversion routines.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-quickcheck" ,rust-quickcheck-1))))))
 
 (define-public rust-lexical-core-0.4
   (package
@@ -24197,8 +26441,148 @@ requires non-const function calls to be computed.")
         ("rust-quickcheck" ,rust-quickcheck-0.8)
         ("rust-rustc-version" ,rust-rustc-version-0.2))))))
 
+(define-public rust-lexical-parse-float-0.8
+  (package
+    (name "rust-lexical-parse-float")
+    (version "0.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lexical-parse-float" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "03mzjx8k2jzv2vbl1xb589p9zfs5i2m23vcmm6fjsxps0k86dl5l"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-lexical-parse-integer" ,rust-lexical-parse-integer-0.8)
+        ("rust-lexical-util" ,rust-lexical-util-0.8)
+        ("rust-static-assertions" ,rust-static-assertions-1))))
+    (home-page "https://github.com/Alexhuszagh/rust-lexical")
+    (synopsis "Efficient parsing of floats from strings")
+    (description
+     "This crate provides efficient parsing of floats from strings.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-lexical-parse-integer-0.8
+  (package
+    (name "rust-lexical-parse-integer")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lexical-parse-integer" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1b2kxprq3636x3j1qy68202q7yzsmq5c7h9w7m7zrh4cvanjpjgj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-lexical-util" ,rust-lexical-util-0.8)
+        ("rust-static-assertions" ,rust-static-assertions-1))))
+    (home-page "https://github.com/Alexhuszagh/rust-lexical")
+    (synopsis "Efficient parsing of integers from strings")
+    (description
+     "This crate provides efficient parsing of integers from strings.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-lexical-util-0.8
+  (package
+    (name "rust-lexical-util")
+    (version "0.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lexical-util" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "14g224mm2li0q6jnnqh92dzx3zjyflji3i8dz4xf6vp1mb66kxkg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-static-assertions" ,rust-static-assertions-1))))
+    (home-page "https://github.com/Alexhuszagh/rust-lexical")
+    (synopsis "Shared utilities for lexical crate")
+    (description "This package provides shared utilities for lexical crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-lexical-write-float-0.8
+  (package
+    (name "rust-lexical-write-float")
+    (version "0.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lexical-write-float" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0xn5dpdmld2nvj7jvz3xrvjjbrnsh4jhymjimax7labvija8clcb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-lexical-util" ,rust-lexical-util-0.8)
+        ("rust-lexical-write-integer" ,rust-lexical-write-integer-0.8)
+        ("rust-static-assertions" ,rust-static-assertions-1))))
+    (home-page "https://github.com/Alexhuszagh/rust-lexical")
+    (synopsis "Efficient formatting of floats to strings")
+    (description
+     "This crate provides efficient formatting of floats to strings.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-lexical-write-integer-0.8
+  (package
+    (name "rust-lexical-write-integer")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lexical-write-integer" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1vsn3zg2hyqnyapwmzb2aw0w5f53ad6s6n46xyazsh0f5r4mdsgc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-lexical-util" ,rust-lexical-util-0.8)
+        ("rust-static-assertions" ,rust-static-assertions-1))))
+    (home-page "https://github.com/Alexhuszagh/rust-lexical")
+    (synopsis "Efficient formatting of integers to strings")
+    (description
+     "This crate provides efficient formatting of integers to strings.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-lexical-6
+  (package
+    (name "rust-lexical")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lexical" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1y8v2s8g2hjinwf5hbm1ncbazw9q4qbp111q2mwacq6hi0grhkn3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-lexical-core" ,rust-lexical-core-0.8))))
+    (home-page "https://github.com/Alexhuszagh/rust-lexical")
+    (synopsis "Lexical, to- and from-string conversion routines")
+    (description
+     "Lexical is high-performance numeric conversion routines for use in
+a no_std environment.  This does not depend on any standard library features,
+nor a system allocator.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-lexical-5
   (package
+    (inherit rust-lexical-6)
     (name "rust-lexical")
     (version "5.2.2")
     (source
@@ -24208,7 +26592,6 @@ requires non-const function calls to be computed.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1r8lsi523h53kbb99xgv31jabwhcp4rzqd4hfazfhcjffh5aj17l"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -24217,13 +26600,7 @@ requires non-const function calls to be computed.")
         ("rust-rand" ,rust-rand-0.4)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-derive" ,rust-serde-derive-1)
-        ("rust-toml" ,rust-toml-0.5))))
-    (home-page "https://github.com/Alexhuszagh/rust-lexical")
-    (synopsis "Lexical, to- and from-string conversion routines")
-    (description
-     "Lexical provides routines to convert numbers to and from decimal
-strings.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-toml" ,rust-toml-0.5))))))
 
 (define-public rust-libc-0.2
   (package
@@ -24292,9 +26669,9 @@ macros on libc without stdlib.")
      `(#:cargo-inputs
        (("rust-pkg-config" ,rust-pkg-config-0.3))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("dbus" ,dbus)))
+     (list dbus))
     (home-page "https://github.com/diwic/dbus-rs")
     (synopsis "FFI bindings to libdbus")
     (description "This package provides FFI bindings to libdbus.")
@@ -24398,7 +26775,7 @@ algorithm and related formats (ZLIB, GZIP).")
 (define-public rust-libgit2-sys-0.12
   (package
     (name "rust-libgit2-sys")
-    (version "0.12.21+1.1.0")
+    (version "0.12.25+1.3.0")
     (source
      (origin
        (method url-fetch)
@@ -24407,7 +26784,7 @@ algorithm and related formats (ZLIB, GZIP).")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "09b85x3gpvq0d7v1mhg4f3w1b3skzlpbikrx9j2rwarbsyn1n9w6"))))
+         "1axsdyb2i67pn85vh8sb2z037n88fiiwqghkzsr1jrcdy2g1cs4g"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -24418,11 +26795,9 @@ algorithm and related formats (ZLIB, GZIP).")
         ("rust-openssl-sys" ,rust-openssl-sys-0.9)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libgit2" ,libgit2)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list libgit2 openssl zlib))
     (home-page "https://github.com/rust-lang/git2-rs")
     (synopsis "Native bindings to the libgit2 library")
     (description
@@ -24523,8 +26898,7 @@ loading utilities.")
        (("rust-libc" ,rust-libc-0.2)
         ("rust-static-assertions" ,rust-static-assertions-1))))
     (inputs
-     `(("rust-cfg-if" ,rust-cfg-if-1)
-       ("rust-winapi" ,rust-winapi-0.3)))))
+     (list rust-cfg-if-1 rust-winapi-0.3))))
 
 (define-public rust-libloading-0.5
   (package
@@ -24534,7 +26908,7 @@ loading utilities.")
       (origin
         (method url-fetch)
         (uri (crate-uri "libloading" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0lyply8rcqc8agajzxs7bq6ivba9dnn1i68kgb9z2flnfjh13cgj"))))
@@ -24673,8 +27047,7 @@ allocator.")
         ("rust-cc" ,rust-cc-1)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (inputs
-     `(("nghttp2" ,nghttp2 "lib")
-       ("pkg-config" ,pkg-config)))
+     (list `(,nghttp2 "lib") pkg-config))
     (home-page "https://github.com/alexcrichton/nghttp2-rs")
     (synopsis "FFI bindings for libnghttp2 (nghttp2)")
     (description
@@ -24721,11 +27094,9 @@ allocator.")
         ("rust-tempdir" ,rust-tempdir-0.3)
         ("rust-toml" ,rust-toml-0.4))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("clang" ,clang)
-       ("nettle" ,nettle)
-       ("openssl" ,openssl)))
+     (list clang nettle openssl))
     (home-page "https://pijul.org/")
     (synopsis "Library component of the pijul version control system")
     (description
@@ -24745,6 +27116,77 @@ file.
 @end itemize")
     (license license:gpl2+)))
 
+;; https://github.com/jnqnfe/pulse-binding-rust/blob/c788a8069f455f864d2ba5f0aa5f62e6648dfd26/pulse-sys/build.rs
+;; fix location of pulseaudio
+(define-public rust-libpulse-binding-2
+  (package
+    (name "rust-libpulse-binding")
+    (version "2.23.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libpulse-binding" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1qx85j489mmad9cvw5k71271l3qy4s8a5qq8a9wac6cfi4viz5fv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-libpulse-sys" ,rust-libpulse-sys-1)
+        ("rust-num-derive" ,rust-num-derive-0.3)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'set-HOME
+           (lambda _ (setenv "HOME" "/tmp") #t)))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list pulseaudio))
+    (home-page "https://github.com/jnqnfe/pulse-binding-rust")
+    (synopsis "Binding for the PulseAudio libpulse library")
+    (description
+     "This package provides a Rust language binding for the PulseAudio libpulse
+library.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-libpulse-sys-1
+  (package
+    (name "rust-libpulse-sys")
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libpulse-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "10msfr8f951v86ag0fl2bsm4a3siq2r7hz9bqhhg7i234s1yj5yg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-num-derive" ,rust-num-derive-0.3)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list pulseaudio))
+    (home-page "https://github.com/jnqnfe/pulse-binding-rust")
+    (synopsis "FFI bindings for the PulseAudio")
+    (description
+     "This package provides FFI bindings for the PulseAudio libpulse system
+library.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-libsqlite3-sys-0.22
   (package
     (name "rust-libsqlite3-sys")
@@ -24758,7 +27200,7 @@ file.
         (base32 "17gqc2mwih81j3ds479gl5zmsxqzzrcrj3yyv62vh34bgy8n82r9"))))
     (build-system cargo-build-system)
     (inputs
-     `(("sqlite" ,sqlite)))
+     (list sqlite))
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -24785,7 +27227,7 @@ file.
        (sha256
         (base32 "1g9gbjjpm9phhs991abkzmacszibp94m5nrh331ycd99y9ci1lv4"))))
     (inputs
-     `(("sqlite" ,sqlite)))
+     (list sqlite))
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -24845,7 +27287,7 @@ file.
         (base32 "104n0s4f46zprppjq6y82y0wjh1r2cgwzw26w914yj30rizy1cbj"))))
     (build-system cargo-build-system)
     (inputs
-     `(("sqlite" ,sqlite)))
+     (list sqlite))
     (arguments
      `(#:cargo-inputs
        ;; build dependencies
@@ -24854,6 +27296,51 @@ file.
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-vcpkg" ,rust-vcpkg-0.2))))))
 
+(define-public rust-libxml-0.3
+  (package
+    (name "rust-libxml")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libxml" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1f42qrc1mim85ivh2d4bn2wbqrn7dfg1i3l1q32yajcr835pxh02"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-vcpkg" ,rust-vcpkg-0.2))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-rayon" ,rust-rayon-1))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list libxml2))
+    (home-page "https://github.com/KWARC/rust-libxml")
+    (synopsis "Rust wrapper for libxml2")
+    (description "This package provides a Rust wrapper for libxml2, the XML
+C parser and toolkit developed for the GNOME project.")
+    (license license:expat)))
+
+(define-public rust-libxml-0.2
+  (package
+    (inherit rust-libxml-0.3)
+    (name "rust-libxml")
+    (version "0.2.17")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libxml" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1z567rqb55hxn0g7hpvcsh3nfvz9mdzlwk4mk179z9bkf7v10r29"))))))
+
 (define-public rust-libz-sys-1
   (package
     (name "rust-libz-sys")
@@ -24881,8 +27368,7 @@ file.
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-vcpkg" ,rust-vcpkg-0.2))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("zlib" ,zlib)))
+     (list pkg-config zlib))
     (home-page "https://github.com/rust-lang/libz-sys")
     (synopsis "Bindings to the system libz library")
     (description
@@ -24891,6 +27377,25 @@ known as zlib).")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-lifeguard-0.6
+  (package
+    (name "rust-lifeguard")
+    (version "0.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lifeguard" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "09iwwy7888i1kfvbrgwpl4xv3pwsz1fbzx54djs3gnvmszdr9gl9"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/zslayton/lifeguard")
+    (synopsis "Object pool manager in Rust")
+    (description "This package provides an object pool manager in Rust.")
+    (license license:expat)))
+
 (define-public rust-line-0.1
   (package
     (name "rust-line")
@@ -25091,11 +27596,9 @@ punctuation.")
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-vcpkg" ,rust-vcpkg-0.2))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libssh2" ,libssh2)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list libssh2 openssl zlib))
     (home-page "https://github.com/alexcrichton/ssh2-rs")
     (synopsis "Native bindings to the libssh2 library")
     (description
@@ -25127,9 +27630,9 @@ punctuation.")
        (("rust-rand" ,rust-rand-0.4)
         ("rust-tempdir" ,rust-tempdir-0.3))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("lmdb" ,lmdb)))
+     (list lmdb))
     (home-page "https://github.com/mozilla/lmdb-rs")
     (synopsis "Safe Rust bindings for LMDB")
     (description "This package provides idiomatic and safe APIs for interacting
@@ -25163,9 +27666,9 @@ with lmdb.")
         ("rust-cc" ,rust-cc-1)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("lmdb" ,lmdb)))
+     (list lmdb))
     (home-page "https://github.com/mozilla/lmdb-rs")
     (synopsis "Rust bindings for liblmdb")
     (description "This package provides rust bindings for liblmdb.")
@@ -25305,7 +27808,7 @@ by inspecting the system for user preference.")
       (origin
         (method url-fetch)
         (uri (crate-uri "lock_api" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0b24q9mh258xa52ap636q1sxz0j5vrnp0hwbbh7ddjka3wwz3sv2"))))
@@ -25322,7 +27825,7 @@ by inspecting the system for user preference.")
      (origin
        (method url-fetch)
        (uri (crate-uri "log" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "04175hv0v62shd82qydq58a48k3bjijmk54v38zgqlbxqkkbpfai"))))
     (build-system cargo-build-system)
@@ -25361,6 +27864,74 @@ by inspecting the system for user preference.")
      `(#:cargo-inputs
        (("rust-log" ,rust-log-0.4))))))
 
+(define-public rust-log-mdc-0.1
+  (package
+    (name "rust-log-mdc")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "log-mdc" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1iw1x3qhjvrac35spikn5h06a1rxd9vw216jk8h52jhz9i0j2kd9"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/sfackler/rust-log-mdc")
+    (synopsis "Mapped diagnostic context (MDC) for use with the `log` crate")
+    (description "This package provides a mapped diagnostic context (MDC) for
+use with the `log` crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-log4rs-1
+  (package
+    (name "rust-log4rs")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "log4rs" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "04d21kkb6if7hly0syp64m15a9695fpfgvlnff3gy58i1n42lmyi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ; 37 passed, 1 failed
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-arc-swap" ,rust-arc-swap-0.4)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-derivative" ,rust-derivative-2)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-fnv" ,rust-fnv-1)
+        ("rust-humantime" ,rust-humantime-2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-log-mdc" ,rust-log-mdc-0.1)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-value" ,rust-serde-value-0.7)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-yaml" ,rust-serde-yaml-0.8)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-thread-id" ,rust-thread-id-3)
+        ("rust-toml" ,rust-toml-0.5)
+        ("rust-typemap" ,rust-typemap-0.3)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-humantime" ,rust-humantime-2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-streaming-stats"
+         ,rust-streaming-stats-0.2)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/estk/log4rs")
+    (synopsis "Highly configurable logging implementation")
+    (description "This package provides a highly configurable multi-output
+logging implementation for the `log` facade.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-logtest-2
   (package
     (name "rust-logtest")
@@ -25777,8 +28348,7 @@ server (LSP).")
         ("rust-cc" ,rust-cc-1)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("xz" ,xz)))
+     (list pkg-config xz))
     (home-page "https://github.com/alexcrichton/xz2-rs")
     (synopsis "Bindings to liblzma for lzma and xz stream encoding/decoding")
     (description
@@ -25908,6 +28478,90 @@ Mach 3.0 kernel that underlies OSX.")
 library")
   (license (list license:asl2.0 license:expat))))
 
+(define-public rust-magic-crypt-3
+  (package
+    (name "rust-magic-crypt")
+    (version "3.1.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "magic-crypt" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1jb4m8wqxm2qkg9gcflxa0sg1d33a1a0r876h47njg43h494zjfk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aes-soft" ,rust-aes-soft-0.6)
+        ("rust-base64" ,rust-base64-0.13)
+        ("rust-block-modes" ,rust-block-modes-0.7)
+        ("rust-crc-any" ,rust-crc-any-2)
+        ("rust-des" ,rust-des-0.6)
+        ("rust-digest" ,rust-digest-0.9)
+        ("rust-md-5" ,rust-md-5-0.9)
+        ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-tiger" ,rust-tiger-0.1))))
+    (home-page "https://magiclen.org/aes")
+    (synopsis "Library for DES or AES encryption")
+    (description
+     "MagicCrypt is a library to encrypt/decrypt strings, files, or data,
+using Data Encryption Standard(DES) or Advanced Encryption Standard(AES)
+algorithms.  It supports CBC block cipher mode, PKCS5 padding and 64, 128,
+192 or 256-bits key length.")
+    (license license:asl2.0)))
+
+(define-public rust-maildir-0.5
+  (package
+    (name "rust-maildir")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "maildir" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0pivq6njjmfnf0jn6i8sihbfgly6v674zwncd6f5nwiw79lz9p3a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-gethostname" ,rust-gethostname-0.2)
+        ("rust-mailparse" ,rust-mailparse-0.13)
+        ("rust-memmap" ,rust-memmap-0.7))
+       #:cargo-development-inputs
+       (("rust-percent-encoding" ,rust-percent-encoding-1)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-walkdir" ,rust-walkdir-2))))
+    (home-page "https://github.com/staktrace/maildir")
+    (synopsis "Simple library for maildir manipulation")
+    (description
+     "This package provides a simple library for maildir manipulation.")
+    (license license:bsd-0)))
+
+(define-public rust-mailparse-0.13
+  (package
+    (name "rust-mailparse")
+    (version "0.13.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "mailparse" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1qacyzfl3wsl745b92w9gj0mjg43rcwg99l96rmg8l1sq5pm4vy0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.13)
+        ("rust-charset" ,rust-charset-0.1)
+        ("rust-quoted-printable" ,rust-quoted-printable-0.4))))
+    (home-page "https://github.com/staktrace/mailparse")
+    (synopsis "Simple parser for MIME e-mail messages")
+    (description
+     "This package provides a simple parser for MIME e-mail messages.")
+    (license license:bsd-0)))
+
 (define-public rust-make-cmd-0.1
   (package
     (name "rust-make-cmd")
@@ -25958,7 +28612,7 @@ platform-independently.")
       (origin
         (method url-fetch)
         (uri (crate-uri "maplit" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "07b5kjnhrrmfhgqm9wprjw8adx6i225lqp49gasgqg74lahnabiy"))))
@@ -26106,7 +28760,7 @@ statement, the first matching branch is the item that gets emitted.")
       (origin
         (method url-fetch)
         (uri (crate-uri "matches" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "020axl4q7rk9vz90phs7f8jas4imxal9y9kxl4z4v7a6719mrz3z"))))
@@ -26143,6 +28797,97 @@ grammars.  It provides the subset of the regex crate that only deals with
 matching, not parsing substrings.")
     (license license:expat)))
 
+(define-public rust-matrixcompare-core-0.1
+  (package
+    (name "rust-matrixcompare-core")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "matrixcompare-core" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0wqaj028ws2x2h16rf10arwvmpfbmk7afg8b57ahb25i1nrspgdh"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/Andlon/matrixcompare")
+    (synopsis "Core traits for matrixcompare")
+    (description "This package provides core traits for matrixcompare.")
+    (license license:expat)))
+
+(define-public rust-matrixcompare-0.3
+  (package
+    (name "rust-matrixcompare")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "matrixcompare" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0i84m1jlxmgyw4farhxbfhyb815hrj6ijq23dgb96z7442l2p0rp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-matrixcompare-core" ,rust-matrixcompare-core-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-proptest" ,rust-proptest-1))
+       #:cargo-development-inputs
+       (("rust-matrixcompare-mock" ,rust-matrixcompare-mock-0.1)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-0.6))))
+    (home-page "https://github.com/Andlon/matrixcompare")
+    (synopsis "Tools for convenient comparison of matrices")
+    (description "This package provides tools for convenient comparison of
+matrices.")
+    (license license:expat)))
+
+(define-public rust-matrixcompare-0.2
+  (package
+    (name "rust-matrixcompare")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "matrixcompare" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "046x25j9v42syns6g8sp3lv4kad55cr4p2bvvs6kyj85dbcz8hiv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-matrixcompare-core" ,rust-matrixcompare-core-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-proptest" ,rust-proptest-0.10))))
+    (home-page "https://github.com/Andlon/matrixcompare")
+    (synopsis "Tools for convenient comparison of matrices")
+    (description "This package provides tools for convenient comparison of
+matrices.")
+    (license license:expat)))
+
+(define-public rust-matrixcompare-mock-0.1
+  (package
+    (name "rust-matrixcompare-mock")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "matrixcompare-mock" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1iqk7p9a3y057qzjjz4hfc1kq48vb76bf1lljqcm5r6xxmlz785y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-matrixcompare-core" ,rust-matrixcompare-core-0.1)
+        ("rust-num" ,rust-num-0.3)
+        ("rust-proptest" ,rust-proptest-0.10))))
+    (home-page "https://github.com/Andlon/matrixcompare")
+    (synopsis "Internal mock data structures for testing of matrixcompare")
+    (description "This package provides internal mock data structures for
+testing of matrixcompare.")
+    (license license:expat)))
+
 (define-public rust-matrixmultiply-0.3
   (package
     (name "rust-matrixmultiply")
@@ -26181,7 +28926,7 @@ parallelize and optimize.")
       (origin
         (method url-fetch)
         (uri (crate-uri "matrixmultiply" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "13s7nfd3dfcsrixld2lk8c563ih5xzczl2w36hprfc016rkfrxyl"))))
@@ -26201,7 +28946,7 @@ parallelize and optimize.")
       (origin
         (method url-fetch)
         (uri (crate-uri "matrixmultiply" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "00p0fpjhm45qdzi37mgv7ggsy8b9gqvq4999yrbgyn1dxkf6gbfw"))))
@@ -26289,7 +29034,7 @@ parallelize and optimize.")
      (origin
        (method url-fetch)
        (uri (crate-uri "md5" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0wcps37hrhz59fkhf8di1ppdnqld6l1w5sdy7jp7p51z0i4c8329"))))
     (build-system cargo-build-system)
@@ -26309,7 +29054,7 @@ parallelize and optimize.")
       (origin
         (method url-fetch)
         (uri (crate-uri "md5" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "17b2xm4h4cvxsdjsf3kdrzqv2za60kak961xzi5kmw6g6djcssvy"))))))
@@ -26475,7 +29220,7 @@ for searching bytes.")
       (origin
         (method url-fetch)
         (uri (crate-uri "memmap" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0ns7kkd1h4pijdkwfvw4qlbbmqmlmzwlq3g2676dcl5vwyazv1b5"))))
@@ -26504,7 +29249,7 @@ file IO.")
       (origin
         (method url-fetch)
         (uri (crate-uri "memmap" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1zy6s0ni0lx9rjzq3gq2zz9r8zgjmbp02332g3gsj4fyhv4s5zz2"))))))
@@ -26986,6 +29731,63 @@ quality, high performance hash algorithm.")
      "This package provides a simple math expression parser and evaluator.")
     (license (list license:unlicense license:expat))))
 
+(define-public rust-migrations-internals-1
+  (package
+    (name "rust-migrations-internals")
+    (version "1.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "migrations_internals" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0q2qk4jpa16mcfcmhjz6hdg2s73az1k7j0cy08vvh87h997chkrb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-barrel" ,rust-barrel-0.6)
+        ("rust-diesel" ,rust-diesel-1))
+       #:cargo-development-inputs
+       (("rust-tempdir" ,rust-tempdir-0.3))))
+    (home-page "https://diesel.rs")
+    (synopsis "Internal implementation of Diesel's migration mechanism")
+    (description "This package provides an internal implementation of Diesel's
+migration mechanism.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-migrations-macros-1
+  (package
+    (name "rust-migrations-macros")
+    (version "1.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "migrations_macros" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "173qgwans6n2jf6b7qajq273rvg1r9c34p5fflzr53gx14lz2lwp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-migrations-internals"
+         ,rust-migrations-internals-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-tempdir" ,rust-tempdir-0.3))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list sqlite))
+    (home-page "https://diesel.rs")
+    (synopsis "Code generation macros for Diesel's embedded migrations")
+    (description "This package provides code generation macros for Diesel's
+embedded migrations.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-mimalloc-0.1
   (package
     (name "rust-mimalloc")
@@ -27016,7 +29818,7 @@ drop-in allocator.")
       (origin
         (method url-fetch)
         (uri (crate-uri "mime" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "13dcm9lh01hdwfjcg74ppljyjfj1c6w3a3cwkhxf0w8wa37cfq1a"))))
@@ -27094,6 +29896,61 @@ file's MIME type by its extension.")
         ("rust-phf-codegen" ,rust-phf-codegen-0.7)
         ("rust-unicase" ,rust-unicase-1))))))
 
+(define-public rust-miniflux-api-0.3
+  (package
+    (name "rust-miniflux-api")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "miniflux-api" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0r0bd907v2abv40i0c0xaj87ik4w9d3syn1f4byy0ssv55dw7mdq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ;tests use the network
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.13)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-reqwest" ,rust-reqwest-0.11)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-dotenv" ,rust-dotenv-0.15)
+        ("rust-tokio" ,rust-tokio-1))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list openssl))
+    (home-page "https://gitlab.com/news-flash/miniflux_api")
+    (synopsis "Rust implementation of the Miniflux REST API")
+    (description
+     "This package provides a Rust implementation of the Miniflux REST API.")
+    ;; No copyright headers in the source code.  LICENSE indicates gpl3.
+    (license license:gpl3)))
+
+(define-public rust-minimal-lexical-0.1
+  (package
+    (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"))))
+    (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.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-miniz-oxide-0.4
   (package
     (name "rust-miniz-oxide")
@@ -27131,7 +29988,7 @@ streaming API for miniz_oxide.")
       (origin
         (method url-fetch)
         (uri (crate-uri "miniz_oxide" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "198n4hfpq0qcxf275l6fpzh7b9cl7ck2xs6pjgpds74bazv9yrxa"))))
@@ -27191,7 +30048,7 @@ drop-in replacement for miniz.")
       (origin
         (method url-fetch)
         (uri (crate-uri "miniz-sys" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "00l2r4anm8g35x0js2zfdnwfbrih9m43vphdpb77c5ga3kjkm7hy"))))
@@ -27457,7 +30314,7 @@ possible over the OS abstractions.")
      (origin
        (method url-fetch)
        (uri (crate-uri "miow" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "15sqdhh29dqgw5xh59clwv6scbsbvdkbmdc16hbfvyq7b2sw2css"))))
     (build-system cargo-build-system)
@@ -27484,7 +30341,7 @@ IOCP and Async I/O abstractions.")
       (origin
         (method url-fetch)
         (uri (crate-uri "miow" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "06g9b8sqlh5gxakwqq4rrib07afwanfnxgxajrldwcgk3hxjy7wc"))))
@@ -27498,6 +30355,91 @@ IOCP and Async I/O abstractions.")
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.3))))))
 
+(define-public rust-mockall-0.10
+  (package
+    (name "rust-mockall")
+    (version "0.10.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "mockall" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1h4s2bpkkm0zyd6mnc3718p0ysmcxyiwrjlk4hrawy7si8r73dba"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-downcast" ,rust-downcast-0.10)
+        ("rust-fragile" ,rust-fragile-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-mockall-derive" ,rust-mockall-derive-0.10)
+        ("rust-predicates" ,rust-predicates-1)
+        ("rust-predicates-tree" ,rust-predicates-tree-1))
+       #:cargo-development-inputs
+       (("rust-async-trait" ,rust-async-trait-0.1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-mockall-double" ,rust-mockall-double-0.2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-tracing" ,rust-tracing-0.1))))
+    (home-page "https://github.com/asomers/mockall")
+    (synopsis "Mock object library for Rust")
+    (description "This package provides a powerful mock object library for
+Rust.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-mockall-derive-0.10
+  (package
+    (name "rust-mockall-derive")
+    (version "0.10.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "mockall_derive" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0cwhcfsc16b8p4yrsrxnhfxfdn0n89cmjja13wb6kxik8hhmpqp7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/asomers/mockall")
+    (synopsis "Procedural macros for Mockall")
+    (description "This crate provides procedural macros for Mockall.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-mockall-double-0.2
+  (package
+    (name "rust-mockall-double")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "mockall_double" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ib7ahq98ah13i69ypx6wrkc3ksmjw3jkmh0s2qi7dxj6j6vf99y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/asomers/mockall")
+    (synopsis "Test double adapter for Mockall")
+    (description "This crate tests double adapter for Mockall.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-mockito-0.23
   (package
     (name "rust-mockito")
@@ -27566,7 +30508,7 @@ checking.")
       (origin
         (method url-fetch)
         (uri (crate-uri "modifier" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0n3fmgli1nsskl0whrfzm1gk0rmwwl6pw1q4nb9sqqmn5h8wkxa1"))))
@@ -27622,10 +30564,9 @@ checking.")
        (("rust-dbus" ,rust-dbus-0.6)
         ("rust-glib" ,rust-glib-0.10))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("dbus" ,dbus)
-       ("glib" ,glib)))
+     (list dbus glib))
     (home-page "https://gitlab.gnome.org/World/Rust/mpris-player")
     (synopsis "Library for creating MPRIS2 media players over D-Bus")
     (description "This package provides a library for creating MPRIS2 media
@@ -27660,8 +30601,72 @@ which defines a default trait implementation, and @code{trait_impl} which uses
 a default trait implementation you've defined.")
     (license license:lgpl2.1+)))
 
+(define-public rust-multimap-0.8
+  (package
+    (name "rust-multimap")
+    (version "0.8.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "multimap" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0sicyz4n500vdhgcxn4g8jz97cp1ijir1rnbgph3pmx9ckz4dkp5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-test" ,rust-serde-test-1))))
+    (home-page "https://github.com/havarnov/multimap")
+    (synopsis "Multimap implementation")
+    (description "This package provides a multimap implementation.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-multipart-0.18
+  (package
+    (name "rust-multipart")
+    (version "0.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "multipart" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "10libwfbazqcyxcpgpcdf1a66jnzghwlmxlxnffg4rrqhqrwdph0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-buf-redux" ,rust-buf-redux-0.8)
+        ("rust-clippy" ,rust-clippy-0.0)
+        ("rust-httparse" ,rust-httparse-1)
+        ("rust-hyper" ,rust-hyper-0.10)
+        ("rust-iron" ,rust-iron-0.6)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-mime" ,rust-mime-0.3)
+        ("rust-mime-guess" ,rust-mime-guess-2)
+        ("rust-nickel" ,rust-nickel-0.11)
+        ("rust-quick-error" ,rust-quick-error-1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rocket" ,rust-rocket-0.4)
+        ("rust-safemem" ,rust-safemem-0.3)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-tiny-http" ,rust-tiny-http-0.6)
+        ("rust-twoway" ,rust-twoway-0.1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.5))))
+    (home-page "https://github.com/abonander/multipart")
+    (synopsis "Backend-agnostic extension for file uploads in HTTP libraries for Rust")
+    (description "This package provides a backend-agnostic extension for HTTP
+libraries that provides support for POST multipart/form-data requests on both
+client and server.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-multipart-0.17
   (package
+    (inherit rust-multipart-0.18)
     (name "rust-multipart")
     (version "0.17.1")
     (source
@@ -27671,7 +30676,6 @@ a default trait implementation you've defined.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1m3nrydgc56wjixsahipmvjgnxnw2cz7w8ryghsgahwjr3nswl6h"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -27691,15 +30695,9 @@ a default trait implementation you've defined.")
         ("rust-safemem" ,rust-safemem-0.3)
         ("rust-tempfile" ,rust-tempfile-3)
         ("rust-tiny-http" ,rust-tiny-http-0.6)
-        ("rust-twoway" ,rust-twoway-0.1))))
-    (home-page "https://github.com/abonander/multipart")
-    (synopsis
-     "Backend-agnostic extension for file uploads in HTTP libraries for Rust")
-    (description
-     "This package provides a backend-agnostic extension for HTTP libraries
-that provides support for POST multipart/form-data requests on both client and
-server.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-twoway" ,rust-twoway-0.1))
+       #:cargo-development-inputs
+        (("rust-env-logger" ,rust-env-logger-0.5))))))
 
 (define-public rust-multiversion-0.6
   (package
@@ -27788,7 +30786,7 @@ library.")
        (("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-vcpkg" ,rust-vcpkg-0.2))))
     (native-inputs
-     `(("mariadb" ,mariadb "lib")))
+     (list `(,mariadb "lib")))
     (home-page "https://github.com/sgrif/mysqlclient-sys")
     (synopsis "Auto-generated rust bindings for libmysqlclient")
     (description "This package provides auto-generated rust bindings for
@@ -27892,6 +30890,64 @@ quick compile time, and minimal dependencies.")
        #:cargo-inputs
        (("rust-rayon" ,rust-rayon-1))))))
 
+(define-public rust-nalgebra-0.26
+  (package
+    (name "rust-nalgebra")
+    (version "0.26.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "nalgebra" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "01hxksmgg17c4k2rzjx1h8kkjbw9rm81dsancg459zh2zrcisva7"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:phases
+        (modify-phases %standard-phases
+         (add-after 'configure 'patch-Cargo.toml
+           (lambda _
+             (substitute* '("Cargo.toml"
+                            "guix-vendor/rust-nalgebra-0.26.2.tar.gz/Cargo.toml"
+                            "guix-vendor/rust-average-0.13.1.tar.gz/Cargo.toml")
+               ;; The resolver feature is not supported by this version of Cargo.
+               (("resolver = \"2\".*") "")))))
+        #:cargo-inputs
+        (("rust-abomonation" ,rust-abomonation-0.7)
+         ("rust-alga" ,rust-alga-0.9)
+         ("rust-approx" ,rust-approx-0.4)
+         ("rust-bytemuck" ,rust-bytemuck-1.5)
+         ("rust-glam" ,rust-glam-0.13)
+         ("rust-matrixcompare-core" ,rust-matrixcompare-core-0.1)
+         ("rust-matrixmultiply" ,rust-matrixmultiply-0.3)
+         ("rust-mint" ,rust-mint-0.5)
+         ("rust-num-complex" ,rust-num-complex-0.3)
+         ("rust-num-rational" ,rust-num-rational-0.3)
+         ("rust-num-traits" ,rust-num-traits-0.2)
+         ("rust-pest" ,rust-pest-2)
+         ("rust-pest-derive" ,rust-pest-derive-2)
+         ("rust-proptest" ,rust-proptest-1)
+         ("rust-quickcheck" ,rust-quickcheck-1)
+         ("rust-rand" ,rust-rand-0.8)
+         ("rust-rand-distr" ,rust-rand-distr-0.4)
+         ("rust-serde" ,rust-serde-1)
+         ("rust-simba" ,rust-simba-0.4)
+         ("rust-typenum" ,rust-typenum-1))
+        #:cargo-development-inputs
+        (("rust-criterion" ,rust-criterion-0.2)
+         ("rust-itertools" ,rust-itertools-0.10)
+         ("rust-matrixcompare" ,rust-matrixcompare-0.2)
+         ("rust-rand-isaac" ,rust-rand-isaac-0.3)
+         ("rust-rand-xorshift" ,rust-rand-xorshift-0.3)
+         ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://nalgebra.org")
+    (synopsis "Linear algebra library")
+    (description
+     "This package provides a general-purpose linear algebra library with
+transformations and statically-sized or dynamically-sized matrices.")
+    (license license:bsd-3)))
+
 (define-public rust-nalgebra-0.21
   (package
     (name "rust-nalgebra")
@@ -28010,6 +31066,42 @@ statically-sized or dynamically-sized matrices.")
        (("rust-rand-xorshift" ,rust-rand-xorshift-0.1)
         ("rust-serde-json" ,rust-serde-json-1))))))
 
+(define-public rust-nalgebra-macros-0.1
+  (package
+    (name "rust-nalgebra-macros")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nalgebra-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "063jvvvlwmzzxfr4wyiil2cn1yqj3arvghwsr2nk4ilv2jwc1z01"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'configure 'patch-Cargo.toml
+           (lambda _
+             (substitute* '("Cargo.toml"
+                            "guix-vendor/rust-nalgebra-macros-0.1.0.tar.gz/Cargo.toml"
+                            "guix-vendor/rust-nalgebra-0.26.2.tar.gz/Cargo.toml"
+                            "guix-vendor/rust-average-0.13.1.tar.gz/Cargo.toml")
+               ;; The resolver feature is not supported by this version of Cargo.
+               (("resolver = \"2\".*") "")))))
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-nalgebra" ,rust-nalgebra-0.26))))
+    (home-page "https://nalgebra.org")
+    (synopsis "Procedural macros for nalgebra")
+    (description "This package provides procedural macros for the nalgebra
+linear algebra library.")
+    (license license:asl2.0)))
+
 (define-public rust-named-pipe-0.4
   (package
     (name "rust-named-pipe")
@@ -28121,9 +31213,9 @@ IO of Windows's named pipes.")
          "0cjirf6n4i2lw65iaww8d4hahv3cbfm5ka9hlansvnbfgzwadzq9"))))
     (build-system cargo-build-system)
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:cargo-inputs
        (("rust-bindgen" ,rust-bindgen-0.55)
@@ -28168,9 +31260,9 @@ IO of Windows's named pipes.")
        (("rust-hex" ,rust-hex-0.4)
         ("rust-test-cert-gen" ,rust-test-cert-gen-0.1))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (home-page "https://github.com/sfackler/rust-native-tls")
     (synopsis "Wrapper over a platform's native TLS implementation")
     (description
@@ -28467,6 +31559,32 @@ general elements and for numerics.")
     (description "This package provides FFI bindings for the Android NDK.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-neli-0.4
+  (package
+    (name "rust-neli")
+    (version "0.4.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "neli" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1lxnns9vfrsiwksscjgr7yvgpc5658lw07d745ir37r5pn19fpp8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-buffering" ,rust-buffering-0.4)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-mio" ,rust-mio-0.6)
+        ("rust-tokio" ,rust-tokio-0.1))))
+    (home-page "https://github.com/jbaublitz/neli")
+    (synopsis "Type safe netlink library written in Rust")
+    (description
+     "This crate is a type safe netlink library written in Rust.")
+    (license license:bsd-3)))
+
 (define-public rust-neso-0.5
   (package
     (name "rust-neso")
@@ -28504,7 +31622,7 @@ in Rust that can compile to WebAssembly.")
       (origin
         (method url-fetch)
         (uri (crate-uri "net2" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "126g3fgfxp06zimc1l9iyxnn9cif1hjsg7sd81nlls5nnyghsma2"))))
@@ -28537,11 +31655,9 @@ types as proposed in RFC 1158.")
        (patches (search-patches "rust-nettle-disable-vendor.patch"))))
     (build-system cargo-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("clang" ,clang)
-       ("gmp" ,gmp)
-       ("nettle" ,nettle)))
+     (list clang gmp nettle))
     (arguments
      `(#:skip-build? #t ;; provides nothing, has no tests
        #:cargo-inputs
@@ -28586,10 +31702,9 @@ cryptographic library.")
        (patches (search-patches "rust-nettle-sys-disable-vendor.patch"))))
     (build-system cargo-build-system)
     (native-inputs
-     `(("clang" ,clang)
-       ("pkg-config" ,pkg-config)))
+     (list clang pkg-config))
     (inputs
-     `(("nettle" ,nettle)))
+     (list nettle))
     (arguments
      `(#:cargo-inputs
        (("rust-bindgen" ,rust-bindgen-0.51)
@@ -28625,6 +31740,135 @@ cryptographic library.")
 release (fork of debug_unreachable)")
     (license license:expat)))
 
+(define-public rust-news-flash-1
+  (package
+    (name "rust-news-flash")
+    (version "1.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "news-flash" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0r3hz725kblxr6mhl8rkf2bffzmyya0ib3xr3jk5zm8x2jlpvlq6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ; FIXME: "error reading DNS system conf" from reqwest
+       #:cargo-inputs
+       (("rust-article-scraper" ,rust-article-scraper-1)
+        ("rust-async-trait" ,rust-async-trait-0.1)
+        ("rust-base64" ,rust-base64-0.13)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-bytes" ,rust-bytes-1)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-diesel" ,rust-diesel-1)
+        ("rust-diesel-migrations"
+         ,rust-diesel-migrations-1)
+        ("rust-escaper" ,rust-escaper-0.1)
+        ("rust-failure" ,rust-failure-0.1)
+        ("rust-feed-rs" ,rust-feed-rs-0.6)
+        ("rust-feedbin-api" ,rust-feedbin-api-0.1)
+        ("rust-feedly-api" ,rust-feedly-api-0.4)
+        ("rust-fever-api" ,rust-fever-api-0.2)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-hmac" ,rust-hmac-0.11)
+        ("rust-image" ,rust-image-0.23)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libxml" ,rust-libxml-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-magic-crypt" ,rust-magic-crypt-3)
+        ("rust-mime" ,rust-mime-0.3)
+        ("rust-mime-guess" ,rust-mime-guess-2)
+        ("rust-miniflux-api" ,rust-miniflux-api-0.3)
+        ("rust-newsblur-api" ,rust-newsblur-api-0.1)
+        ("rust-obfstr" ,rust-obfstr-0.3)
+        ("rust-opml" ,rust-opml-1)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-reqwest" ,rust-reqwest-0.11)
+        ("rust-rust-embed" ,rust-rust-embed-5)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-sha-1" ,rust-sha-1-0.9)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3)
+        ("rust-tokio" ,rust-tokio-1))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list libxml2 openssl sqlite))
+    (home-page "https://gitlab.com/news-flash/news_flash")
+    (synopsis "Base library for NewsFlash")
+    (description "This package provides the base library for the NewsFlash
+feed reader.")
+    ;; No copyright headers in the source code.  LICENSE indicates gpl3.
+    (license license:gpl3)))
+
+(define-public rust-newsblur-api-0.1
+  (package
+    (name "rust-newsblur-api")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "newsblur_api" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1lh5njrrk4fjc168npk1q3962dzsgmvz4fzvha46g9b83cf3jxzx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ;tests use the network
+       #:cargo-inputs
+       (("rust-failure" ,rust-failure-0.1)
+        ("rust-reqwest" ,rust-reqwest-0.11)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-dotenv" ,rust-dotenv-0.15)
+        ("rust-tokio" ,rust-tokio-1))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list openssl))
+    (home-page "https://gitlab.com/news-flash/newsblur_api/")
+    (synopsis "Rust implementation of the NewsBlur API")
+    (description
+     "This package provides a Rust implementation of the NewsBlur API.")
+    ;; No copyright headers in the source code.  LICENSE indicates gpl3.
+    (license license:gpl3)))
+
+(define-public rust-newtype-derive-0.1
+  (package
+    (name "rust-newtype-derive")
+    (version "0.1.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "newtype-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1v3170xscs65gjx5vl1zjnqp86wngbzw3n2q74ibfnqqkx6x535c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-rustc-version" ,rust-rustc-version-0.1))
+       #:cargo-development-inputs
+       (("rust-custom-derive" ,rust-custom-derive-0.1))))
+    (home-page "https://github.com/DanielKeep/rust-custom-derive")
+    (synopsis "Macros for deriving common traits for newtype structures")
+    (description
+     "This crate provides macros for deriving common traits for newtype
+structures.")
+    (license (list license:expat
+                   license:asl2.0))))
+
 (define-public rust-nibble-vec-0.1
   (package
     (name "rust-nibble-vec")
@@ -28926,10 +32170,7 @@ while still providing platform specific APIs.")
         ("rust-sysctl" ,rust-sysctl-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))
     (inputs
-     `(("rust-bitflags" ,rust-bitflags-1)
-       ("rust-cc" ,rust-cc-1)
-       ("rust-cfg-if" ,rust-cfg-if-0.1)
-       ("rust-libc" ,rust-libc-0.2)))))
+     (list rust-bitflags-1 rust-cc-1 rust-cfg-if-0.1 rust-libc-0.2))))
 
 (define-public rust-nix-0.17
   (package
@@ -28998,6 +32239,50 @@ while still providing platform specific APIs.")
         (base32
          "1kmxdlmvnmq8cfpmr3g6wk37rwi2ybdvp1z6z3831m1p23p2nwkc"))))))
 
+(define-public rust-nl80211-0.0.2
+  (package
+    (name "rust-nl80211")
+    (version "0.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nl80211" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0jgx12qy0a004sc4qpr3ahgn9gma3rln9gsxiq4cdw6dd8h4dmx0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-buffering" ,rust-buffering-0.3)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-neli" ,rust-neli-0.4))))
+    (home-page "https://github.com/Eonm/nl80211")
+    (synopsis "Send commands to nl80211 and receive messages")
+    (description
+     "This crate provides a low level access to nl80211.  It can send commands
+to nl80211 and receive messages.")
+    (license license:expat)))
+
+(define-public rust-no-color-0.1
+  (package
+    (name "rust-no-color")
+    (version "0.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "no_color" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "1m0x6i5q1jav2jgajkg4irrkfgv4lakpdvmj310b90wswdyy9xdx"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/sitkevij/no_color")
+    (synopsis "Library to detect NO_COLOR environment variable")
+    (description
+"@code{no_color} is a rust library for detecting if the @code{NO_COLOR}
+environment variable is set.")
+    (license license:expat)))
+
 (define-public rust-no-panic-0.1
   (package
     (name "rust-no-panic")
@@ -29026,6 +32311,29 @@ while still providing platform specific APIs.")
 prove a function can't ever panic.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-no-std-net-0.5
+  (package
+    (name "rust-no-std-net")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "no-std-net" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0lkilh0wc7big3m5lsn9wqiz2xvj21kgmpbc15z92j93n51wxkhv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/dunmatt/no-std-net")
+    (synopsis "Rust's std::net... without the @code{std}")
+    (description "This package provides Rust's std::net for environment
+without the @code{std}.")
+    (license license:expat)))
+
 (define-public rust-nodrop-0.1
   (package
     (name "rust-nodrop")
@@ -29034,7 +32342,7 @@ prove a function can't ever panic.")
       (origin
         (method url-fetch)
         (uri (crate-uri "nodrop" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1fz1v9r8ijacf0hlq0pdv5l9mz8vgqg1snmhvpjmi9aci1b4mvvj"))))
@@ -29057,7 +32365,7 @@ prove a function can't ever panic.")
       (origin
         (method url-fetch)
         (uri (crate-uri "nodrop-union" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1h59pph19rxanyqcaid8pg73s7wmzdx3zhjv5snlim5qx606zxkc"))))
@@ -29071,10 +32379,10 @@ implementation (which is unstable / requires nightly).")
     (license (list license:asl2.0
                    license:expat))))
 
-(define-public rust-nom-6
+(define-public rust-nom-7
   (package
     (name "rust-nom")
-    (version "6.0.1")
+    (version "7.0.0")
     (source
      (origin
        (method url-fetch)
@@ -29083,21 +32391,19 @@ implementation (which is unstable / requires nightly).")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1w0ppq112myzwk23c8m0wmq0nv73xvn0g9gl2kfm83aadgylq0w8"))))
+         "1ha24yclw4m74gi9p5c3d68rhrrcb7qvkgicz153p5cahck9vzbz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f  ; Tests require example directory, not included in tarball.
        #:cargo-inputs
-       (("rust-bitvec" ,rust-bitvec-0.19)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-lexical-core" ,rust-lexical-core-0.7)
-        ("rust-memchr" ,rust-memchr-2)
-        ("rust-regex" ,rust-regex-1)
+       (("rust-memchr" ,rust-memchr-2)
+        ("rust-minimal-lexical" ,rust-minimal-lexical-0.1)
         ("rust-version-check" ,rust-version-check-0.9))
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3)
         ("rust-doc-comment" ,rust-doc-comment-0.3)
-        ("rust-jemallocator" ,rust-jemallocator-0.3))
+        ("rust-jemallocator" ,rust-jemallocator-0.3)
+        ("rust-proptest" ,rust-proptest-1))
        #:phases
        (modify-phases %standard-phases
          (add-after 'configure 'override-jemalloc
@@ -29107,7 +32413,7 @@ implementation (which is unstable / requires nightly).")
                        (string-append jemalloc "/lib/libjemalloc_pic.a")))
              #t)))))
     (native-inputs
-     `(("jemalloc" ,jemalloc)))
+     (list jemalloc))
     (home-page "https://github.com/Geal/nom")
     (synopsis
      "Byte-oriented, zero-copy, parser combinators library")
@@ -29116,6 +32422,42 @@ implementation (which is unstable / requires nightly).")
 combinators library.")
     (license license:expat)))
 
+(define-public rust-nom-6
+  (package
+    (inherit rust-nom-7)
+    (name "rust-nom")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nom" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1w0ppq112myzwk23c8m0wmq0nv73xvn0g9gl2kfm83aadgylq0w8"))))
+    (arguments
+     `(#:tests? #f  ; Tests require example directory, not included in tarball.
+       #:cargo-inputs
+       (("rust-bitvec" ,rust-bitvec-0.19)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-lexical-core" ,rust-lexical-core-0.7)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-version-check" ,rust-version-check-0.9))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-jemallocator" ,rust-jemallocator-0.3))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'configure 'override-jemalloc
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((jemalloc (assoc-ref inputs "jemalloc")))
+               (setenv "JEMALLOC_OVERRIDE"
+                       (string-append jemalloc "/lib/libjemalloc_pic.a")))
+             #t)))))))
+
 (define-public rust-nom-5
   (package
     (inherit rust-nom-6)
@@ -29384,6 +32726,32 @@ with all line endings.")
       "Cross-platform filesystem notification library")
     (license (list license:cc0 license:artistic2.0))))
 
+(define-public rust-noise-0.7
+  (package
+    (name "rust-noise")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "noise" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0hsbw9gpsz8w9msvyvddygagd9wj93hqpg5pxz388laxfkb1s1c2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-image" ,rust-image-0.23)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-rand-xorshift" ,rust-rand-xorshift-0.2))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3))))
+    (home-page "https://github.com/razaekel/noise-rs")
+    (synopsis "Procedural noise generation library")
+    (description "This package provides a Rust library to generate smoothly
+varying noise for textural use and graphical display.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-notify-4
   (package
     (inherit rust-notify-5)
@@ -29414,6 +32782,46 @@ with all line endings.")
        (("rust-tempfile" ,rust-tempfile-3))))
     (license license:cc0)))
 
+(define-public rust-notmuch-0.6
+  (package
+    (name "rust-notmuch")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "notmuch" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19q93iyvx4liksm09mhq9ibm8zj7i3dizc1s40f916z0kbpn9k5w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f         ;see https://github.com/vhdirk/notmuch-rs/issues/35
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-supercow" ,rust-supercow-0.1))
+       #:cargo-development-inputs
+       (("rust-dirs" ,rust-dirs-1)
+        ("rust-gethostname" ,rust-gethostname-0.2)
+        ("rust-lettre" ,rust-lettre-0.9)
+        ("rust-lettre-email" ,rust-lettre-email-0.9)
+        ("rust-maildir" ,rust-maildir-0.5)
+        ("rust-tempfile" ,rust-tempfile-3))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-maildir-version
+           (lambda* _
+             (substitute* "Cargo.toml"
+               (("version = \"0.3.2\"") "version = \"0.5.0\"")))))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list openssl notmuch))
+    (home-page "https://github.com/vhdirk/notmuch-rs")
+    (synopsis "Rust interface and bindings for Notmuch")
+    (description
+     "This crate provides a Rust interface and bindings for Notmuch.")
+    (license license:gpl3+)))
+
 (define-public rust-ntapi-0.3
   (package
     (name "rust-ntapi")
@@ -30188,7 +33596,7 @@ mathematics.")
       (origin
         (method url-fetch)
         (uri (crate-uri "num-traits" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0c9whknf2dm74a3cqirafy6gj83a76gl56g4v3g19k6lkwz13rcj"))))
@@ -30225,7 +33633,7 @@ giga, kibi.")
       (origin
         (method url-fetch)
         (uri (crate-uri "numtoa" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1vs9rhggqbql1p26x8nkha1j06wawwgb2jp5fs88b5gi7prvvy5q"))))
@@ -30237,6 +33645,26 @@ giga, kibi.")
      "This package can convert numbers into stack-allocated byte arrays.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-obfstr-0.3
+  (package
+    (name "rust-obfstr")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "obfstr" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0y5azgk8ds43m1sd5pc4hhakxzxkfcfscl24y8gsbvwdznxjqavv"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/CasualX/obfstr")
+    (synopsis "Compile time string constant obfuscation for Rust")
+    (description "This package provides a compile time string constant
+obfuscation for Rust.  The string constant itself is embedded in obfuscated
+form and deobfuscated locally.")
+    (license license:expat)))
+
 (define-public rust-obj-0.9
   (package
     (name "rust-obj")
@@ -30779,18 +34207,20 @@ contents.")
 (define-public rust-open-1
   (package
     (name "rust-open")
-    (version "1.4.0")
+    (version "1.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "open" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0j6ci7jc2aabvw0rvq7a51sw9s2rk3mfsq0s5zjakzjf27q3na3w"))))
+        (base32 "00828zcxdy3r38inz48jgnszgvqgi1a3bi2rrhij86mqsqq7msnw"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-winapi" ,rust-winapi-0.3))))
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-pathdiff" ,rust-pathdiff-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))))
     (home-page "https://github.com/Byron/open-rs")
     (synopsis "Open a path or URL using the program configured on the system")
     (description
@@ -30917,7 +34347,7 @@ the default program configured on the system.")
       (origin
         (method url-fetch)
         (uri (crate-uri "openssl-probe" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1pijrdifgsdwd45b08c2g0dsmnhz7c3kmagb70839ngrd7d29bvp"))))
@@ -30933,14 +34363,14 @@ system for OpenSSL.")
 (define-public rust-openssl-sys-0.9
   (package
     (name "rust-openssl-sys")
-    (version "0.9.64")
+    (version "0.9.68")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "openssl-sys" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "1bsim2zk69q1dw6rixn48l1ci8bmz5kvbkgsks2ci079w0pzr7i0"))
+         (base32 "0l2ikxygkza3s5q3lvng4mhisdp2vdrvzkhpwhkx8vgnscjiymqw"))
         (patches (search-patches "rust-openssl-sys-no-vendor.patch"))))
     (build-system cargo-build-system)
     (arguments
@@ -30952,9 +34382,9 @@ system for OpenSSL.")
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-vcpkg" ,rust-vcpkg-0.2))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (home-page "https://github.com/sfackler/rust-openssl")
     (synopsis "FFI bindings to OpenSSL")
     (description
@@ -31024,6 +34454,30 @@ system for OpenSSL.")
      "Extra FFI bindings to OpenSSL that require a C shim.")
     (license license:expat)))
 
+(define-public rust-opml-1
+  (package
+    (name "rust-opml")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "opml" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zr7f101inkz3rknl0r3q0qkklfxhqrji7yxmqixajfn3m5mbjfa"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-strong-xml" ,rust-strong-xml-0.6)
+        ("rust-thiserror" ,rust-thiserror-1))))
+    (home-page "https://github.com/Holllo/opml")
+    (synopsis "OPML parser for Rust")
+    (description "This package provides an OPML parser for Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ord-subset-3
   (package
     (name "rust-ord-subset")
@@ -31088,6 +34542,30 @@ PartialOrd types, like floats.")
         (base32
          "0625x96987kspdxbikry5mb7hsf5pdc5bbanxd8wjwqlx0ar71hq"))))))
 
+(define-public rust-ordered-multimap-0.3
+  (package
+    (name "rust-ordered-multimap")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ordered-multimap" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1194q7sb2d6chbllsn7237dhhvx04iqr3sq0ii16w1pcv5x2qrqw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-dlv-list" ,rust-dlv-list-0.2)
+        ("rust-hashbrown" ,rust-hashbrown-0.9)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/sgodwincs/ordered-multimap-rs")
+    (synopsis "Insertion ordered multimap")
+    (description "This crate provides a multimap type object that maintains
+insertion order across all keys and values.")
+    (license license:expat)))
+
 (define-public rust-ordermap-0.3
   (package
     (name "rust-ordermap")
@@ -31121,10 +34599,37 @@ iteration.  NOTE: This crate was renamed to @code{indexmap}.  Please use it
 under its new name.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-os-pipe-0.8
+(define-public rust-os-info-3
+  (package
+    (name "rust-os-info")
+    (version "3.0.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "os_info" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1pbcf2in8i9w6zjzk6jmrd89gm5h7qpyqi3hvkl0axpzp1m57lmk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-0.7))
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/stanislav-tkach/os_info")
+    (synopsis "Detect the operating system type and version")
+    (description
+     "This library detects the operating system type and version.")
+    (license license:expat)))
+
+(define-public rust-os-pipe-0.9
   (package
     (name "rust-os-pipe")
-    (version "0.8.2")
+    (version "0.9.2")
     (source
      (origin
        (method url-fetch)
@@ -31133,12 +34638,12 @@ under its new name.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "049ax8shxik7mm68r2nf7xnrcq3z3p7hz54sbrcxwywxqsjdzs41"))))
+         "04yjs1hf88jjm17g8a2lr7ibxyyg460rzbgcw9f1yzihq833y8zv"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-nix" ,rust-nix-0.15)
+       (("rust-libc" ,rust-libc-0.2)
         ("rust-winapi" ,rust-winapi-0.3))))
     (home-page
      "https://github.com/oconnor663/os_pipe.rs")
@@ -31247,7 +34752,7 @@ platform-native strings.")
       (origin
         (method url-fetch)
         (uri (crate-uri "owning_ref" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1kjj9m28wjv452jw49p1mp3d8ql058x78v4bz00avr7rvsnmpxbg"))))
@@ -31361,6 +34866,30 @@ normally prevent moving a type that has been borrowed from.")
       "This package provides a library for padding strings at runtime.")
     (license license:expat)))
 
+(define-public rust-pager-0.15
+  (package
+    (name "rust-pager")
+    (version "0.15.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pager" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0a35mg68s0p63ya2k5hsg620c4llkjw2fx1sfi0laz4pz8myv75n"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-errno" ,rust-errno-0.2)
+        ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://gitlab.com/imp/pager-rs.git")
+    (synopsis "Helps pipe your output through an external pager")
+    (description
+     "This package pipes your Rust output through an external pager.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-palette-0.5
   (package
     (name "rust-palette")
@@ -31441,6 +34970,72 @@ normally prevent moving a type that has been borrowed from.")
     (description "@code{pancurses} is a @code{curses} library for Rust.")
     (license license:expat)))
 
+(define-public rust-parasail-sys-0.2
+  (package
+    (name "rust-parasail-sys")
+    (version "0.2.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "parasail-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "156fwfdbcfpzmx4k274jqdp8jzmllmdnhd1ibnh7kgd9cp7ni6ac"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-build-flags '("-vv")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-shell-for-configure-script
+           (lambda _
+             (setenv "SHELL" (which "sh"))
+             (setenv "CONFIG_SHELL" (which "sh")))))
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2))))
+    (inputs
+     (list zlib))
+    (native-inputs
+     (list libtool))
+    (home-page "https://github.com/anp/parasailors")
+    (synopsis "Bindings to the parasail pairwise genetic sequence alignment library")
+    (description
+     "This packgae provides native bindings to the parasail pairwise genetic
+sequence alignment library.")
+    (license license:expat)))
+
+(define-public rust-parasailors-0.3
+  (package
+    (name "rust-parasailors")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "parasailors" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0qr1qwzrq289njc3aawih15n9a8yy169wyb1gzgwzga0r25dxi3g"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-build-flags '("-vv")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-shell-for-configure-script
+           (lambda _
+             (setenv "SHELL" (which "sh"))
+             (setenv "CONFIG_SHELL" (which "sh")))))
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-parasail-sys" ,rust-parasail-sys-0.2))))
+    (inputs
+     (list zlib))
+    (native-inputs
+     (list libtool))
+    (home-page "https://github.com/anp/parasailors")
+    (synopsis "SIMD accelerated pairwise genetic sequence alignment")
+    (description "This package provides SIMD accelerated pairwise genetic
+sequence alignment tools.")
+    (license license:expat)))
+
 (define-public rust-parity-tokio-ipc-0.4
   (package
     (name "rust-parity-tokio-ipc")
@@ -31501,7 +35096,7 @@ normally prevent moving a type that has been borrowed from.")
       (origin
         (method url-fetch)
         (uri (crate-uri "parity-wasm" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "03qycy21avz4970zc7aj8rj5h4wvi4qsrc90a6hpws1a56mglf8y"))))
@@ -31913,6 +35508,65 @@ synchronization primitives.")
 file and the generated @file{.rs} file.")
     (license license:asl2.0)))
 
+(define-public rust-parquet-format-async-temp-0.2
+  (package
+    (name "rust-parquet-format-async-temp")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "parquet-format-async-temp" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0i7mn4x64d8g6d046y9kpb55dz8v0z67cz7lhgncxs9zr3ww5aq3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-async-trait" ,rust-async-trait-0.1)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-integer-encoding" ,rust-integer-encoding-3)
+        ("rust-ordered-float" ,rust-ordered-float-1))))
+    (home-page "https://github.com/sunchao/parquet-format-rs")
+    (synopsis "Temporary crate containing thrift library + parquet definitions")
+    (description
+     "This is a temporary crate containing thrift library and parquet
+definitions compiled to support read+write async.")
+    (license license:asl2.0)))
+
+(define-public rust-parquet2-0.4
+  (package
+    (name "rust-parquet2")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "parquet2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1rsmrjy0r8q56gygycc5j0kgdbvrazh6xg6z8vcdyhn8r1v8yxbk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-async-stream" ,rust-async-stream-0.3)
+        ("rust-bitpacking" ,rust-bitpacking-0.8)
+        ("rust-brotli" ,rust-brotli-3)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-lz4" ,rust-lz4-1)
+        ("rust-parquet-format-async-temp" ,rust-parquet-format-async-temp-0.2)
+        ("rust-snap" ,rust-snap-1)
+        ("rust-streaming-iterator" ,rust-streaming-iterator-0.1)
+        ("rust-zstd" ,rust-zstd-0.9))))
+    (home-page "https://crates.io/crates/parquet2")
+    (synopsis "Safe implementation of Parquet IO")
+    (description
+     "Parquet2 is a re-write of the official Parquet crate with performance,
+parallelism and safety in mind.")
+    (license license:asl2.0)))
+
 (define-public rust-parse-zoneinfo-0.3
   (package
     (name "rust-parse-zoneinfo")
@@ -32102,10 +35756,10 @@ Rust with reasonable performance.")
 path.Clean.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-pathdiff-0.1
+(define-public rust-pathdiff-0.2
   (package
     (name "rust-pathdiff")
-    (version "0.1.0")
+    (version "0.2.0")
     (source
      (origin
        (method url-fetch)
@@ -32114,8 +35768,9 @@ path.Clean.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0cfg3isnx6mf3wbi7rsg4nmvywby40sbcs589n20fgi09l4p1gx3"))))
+         "0d2aqgrqhdn5kxlnd5dxv7d6pgsgf92r6r9gqm6bdh0mvsrk0xl7"))))
     (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
     (home-page "https://github.com/Manishearth/pathdiff")
     (synopsis "Library for diffing paths to obtain relative paths")
     (description
@@ -32123,6 +35778,21 @@ path.Clean.")
 directory path to the provided path.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-pathdiff-0.1
+  (package
+    (inherit rust-pathdiff-0.2)
+    (name "rust-pathdiff")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pathdiff" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0cfg3isnx6mf3wbi7rsg4nmvywby40sbcs589n20fgi09l4p1gx3"))))))
+
 (define-public rust-pbkdf2-0.4
   (package
     (name "rust-pbkdf2")
@@ -32206,7 +35876,7 @@ in pure Rust.")
        (("rust-libc" ,rust-libc-0.2)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-winapi" ,rust-winapi-0.3))))
-    (inputs `(("libpcap" ,libpcap)))
+    (inputs (list libpcap))
     (home-page "https://github.com/jmmk/rustcap")
     (synopsis "Low-level bindings to libpcap")
     (description "This package provides low-level Rust bindings to the libpcap
@@ -32234,8 +35904,7 @@ library.")
         ("rust-pcre2-sys" ,rust-pcre2-sys-0.2)
         ("rust-thread-local" ,rust-thread-local-1))))
     (native-inputs
-     `(("pcre2" ,pcre2)
-       ("pkg-config" ,pkg-config)))
+     (list pcre2 pkg-config))
     (home-page "https://github.com/BurntSushi/rust-pcre2")
     (synopsis "High level wrapper library for PCRE2")
     (description
@@ -32265,8 +35934,7 @@ library.")
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-cc" ,rust-cc-1))))
     (native-inputs
-     `(("pcre2" ,pcre2)
-       ("pkg-config" ,pkg-config)))
+     (list pcre2 pkg-config))
     (home-page
      "https://github.com/BurntSushi/rust-pcre2")
     (synopsis "Low level bindings to PCRE2")
@@ -32372,7 +36040,7 @@ pdqsort.")
       (origin
         (method url-fetch)
         (uri (crate-uri "peeking_take_while" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "16bhqr6rdyrp12zv381cxaaqqd0pwysvm1q8h2ygihvypvfprc8r"))))
@@ -32488,7 +36156,7 @@ runtime support for rust-peg grammars.  To use rust-peg, see the peg crate.")
       (origin
         (method url-fetch)
         (uri (crate-uri "percent-encoding" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0bp3zrsk3kr47fbpipyczidbbx4g54lzxdm77ni1i3qws10mdzfl"))))
@@ -32508,7 +36176,7 @@ runtime support for rust-peg grammars.  To use rust-peg, see the peg crate.")
       (origin
         (method url-fetch)
         (uri (crate-uri "percent-encoding" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0cgq08v1fvr6bs5fvy390cz830lq4fak8havdasdacxcw790s09i"))))))
@@ -32594,7 +36262,7 @@ perf_event_open system call, with associated types and constants.")
       (origin
         (method url-fetch)
         (uri (crate-uri "permutohedron" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0b1pzh48j86v46wxngch6k1kx9cdw3jr3lwa86gd6jd4bmxzz1xn"))))
@@ -33043,7 +36711,7 @@ function data structures.")
       (origin
         (method url-fetch)
         (uri (crate-uri "pico-sys" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1q5pg0ms6szz6b5h26h4k40zb76zbwwjgyigac4wly9qngdj4yl5"))))
@@ -33231,7 +36899,7 @@ written with declarative macros.")
       (origin
         (method url-fetch)
         (uri (crate-uri "pkg-config" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0k4860955riciibxr8bhnklp79jydp4xfylwdn5v9kj96hxlac9q"))))
@@ -33249,7 +36917,7 @@ written with declarative macros.")
                                "/bin/pkg-config\"")))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/rust-lang/pkg-config-rs")
     (synopsis "Library to run the pkg-config system tool")
     (description
@@ -33290,7 +36958,7 @@ network packet formats.")
       (origin
         (method url-fetch)
         (uri (crate-uri "plain" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "19n1xbxb4wa7w891268bzf6cbwq4qvdb86bik1z129qb0xnnnndl"))))
@@ -33396,7 +37064,7 @@ both WASM and native applications")
       (origin
         (method url-fetch)
         (uri (crate-uri "plugin" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1q7nghkpvxxr168y2jnzh3w7qc9vfrby9n7ygy3xpj0bj71hsshs"))))
@@ -33468,7 +37136,7 @@ both WASM and native applications")
       (origin
         (method url-fetch)
         (uri (crate-uri "pocket-resources" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1n2i5vmi8fdbw89wm5nz1ws1z9f1qax911p6ksg4scmdg23z6df1"))))
@@ -33499,30 +37167,49 @@ applications.")
      "Additional trait for Read and Write to read and write Plain Old Data.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-polars-0.15
+(define-public rust-polars-0.16
   (package
     (name "rust-polars")
-    (version "0.15.1")
+    (version "0.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "polars" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1sl7vs6ck05f8w8jp7v75431b4v5j2rvvvw53jqgxc5226i7a2h8"))))
+        (base32 "1s4fqc3vlpz73dbagfsj3hx7y7xmpqnp7nj0cn9srijxgxq5nm73"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-polars-core" ,rust-polars-core-0.15)
-        ("rust-polars-io" ,rust-polars-io-0.15)
-        ("rust-polars-lazy" ,rust-polars-lazy-0.15))))
+       (("rust-polars-core" ,rust-polars-core-0.16)
+        ("rust-polars-io" ,rust-polars-io-0.16)
+        ("rust-polars-lazy" ,rust-polars-lazy-0.16))))
     (home-page "https://github.com/ritchie46/polars")
     (synopsis "DataFrame Library based on Apache Arrow")
     (description
      "Polars is a dataframe Library based on Apache Arrow.")
     (license license:expat)))
 
+(define-public rust-polars-0.15
+  (package
+    (inherit rust-polars-0.16)
+    (name "rust-polars")
+    (version "0.15.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "polars" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1sl7vs6ck05f8w8jp7v75431b4v5j2rvvvw53jqgxc5226i7a2h8"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-polars-core" ,rust-polars-core-0.15)
+        ("rust-polars-io" ,rust-polars-io-0.15)
+        ("rust-polars-lazy" ,rust-polars-lazy-0.15))))))
+
 (define-public rust-polars-0.14
   (package
     (inherit rust-polars-0.15)
@@ -33563,22 +37250,22 @@ applications.")
         ("rust-polars-io" ,rust-polars-io-0.13)
         ("rust-polars-lazy" ,rust-polars-lazy-0.13))))))
 
-(define-public rust-polars-arrow-0.15
+(define-public rust-polars-arrow-0.16
   (package
     (name "rust-polars-arrow")
-    (version "0.15.1")
+    (version "0.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "polars-arrow" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0d8ir9dajywfqg6ck557vbvzsdmndc1ipn9mgrqi15yini1qmw2z"))))
+        (base32 "0pwx7nsayn526r9gw16yzqq3r6mn6ivcdxzsj8737whk04qy3ssb"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-arrow" ,rust-arrow-5)
+       (("rust-arrow2" ,rust-arrow2-0.5)
         ("rust-num" ,rust-num-0.4)
         ("rust-thiserror" ,rust-thiserror-1))))
     (home-page "https://github.com/ritchie46/polars")
@@ -33587,6 +37274,25 @@ applications.")
      "This crate provides Arrow interfaces for Polars DataFrame library.")
     (license license:expat)))
 
+(define-public rust-polars-arrow-0.15
+  (package
+    (inherit rust-polars-arrow-0.16)
+    (name "rust-polars-arrow")
+    (version "0.15.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "polars-arrow" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0d8ir9dajywfqg6ck557vbvzsdmndc1ipn9mgrqi15yini1qmw2z"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-arrow" ,rust-arrow-5)
+        ("rust-num" ,rust-num-0.4)
+        ("rust-thiserror" ,rust-thiserror-1))))))
+
 (define-public rust-polars-arrow-0.14
   (package
     (inherit rust-polars-arrow-0.15)
@@ -33626,24 +37332,24 @@ applications.")
         ("rust-num" ,rust-num-0.4)
         ("rust-thiserror" ,rust-thiserror-1))))))
 
-(define-public rust-polars-core-0.15
+(define-public rust-polars-core-0.16
   (package
     (name "rust-polars-core")
-    (version "0.15.1")
+    (version "0.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "polars-core" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0vzyyqg0s6h3k77z7nkmqrrgnp7nbi7sh5nmlw1ggrlml9ps0aa9"))))
+        (base32 "0knhxc2b0k5jpvm7fxm64b5hjdyqgxjjyi6cnsiy5sya3mj3v9cd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-ahash" ,rust-ahash-0.7)
         ("rust-anyhow" ,rust-anyhow-1)
-        ("rust-arrow" ,rust-arrow-5)
+        ("rust-arrow2" ,rust-arrow2-0.5)
         ("rust-chrono" ,rust-chrono-0.4)
         ("rust-comfy-table" ,rust-comfy-table-1)
         ("rust-hashbrown" ,rust-hashbrown-0.11)
@@ -33653,8 +37359,7 @@ applications.")
         ("rust-ndarray" ,rust-ndarray-0.15)
         ("rust-num" ,rust-num-0.4)
         ("rust-num-cpus" ,rust-num-cpus-1)
-        ("rust-parquet" ,rust-parquet-5)
-        ("rust-polars-arrow" ,rust-polars-arrow-0.15)
+        ("rust-polars-arrow" ,rust-polars-arrow-0.16)
         ("rust-prettytable-rs" ,rust-prettytable-rs-0.8)
         ("rust-rand" ,rust-rand-0.7)
         ("rust-rand-distr" ,rust-rand-distr-0.3)
@@ -33670,6 +37375,45 @@ applications.")
      "This crate provides the core of the Polars DataFrame library.")
     (license license:expat)))
 
+(define-public rust-polars-core-0.15
+  (package
+    (inherit rust-polars-core-0.16)
+    (name "rust-polars-core")
+    (version "0.15.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "polars-core" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0vzyyqg0s6h3k77z7nkmqrrgnp7nbi7sh5nmlw1ggrlml9ps0aa9"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ahash" ,rust-ahash-0.7)
+        ("rust-anyhow" ,rust-anyhow-1)
+        ("rust-arrow" ,rust-arrow-5)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-comfy-table" ,rust-comfy-table-1)
+        ("rust-hashbrown" ,rust-hashbrown-0.11)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-jsonpath-lib" ,rust-jsonpath-lib-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-ndarray" ,rust-ndarray-0.15)
+        ("rust-num" ,rust-num-0.4)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-parquet" ,rust-parquet-5)
+        ("rust-polars-arrow" ,rust-polars-arrow-0.15)
+        ("rust-prettytable-rs" ,rust-prettytable-rs-0.8)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-rand-distr" ,rust-rand-distr-0.3)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-unsafe-unwrap" ,rust-unsafe-unwrap-0.1))))))
+
 (define-public rust-polars-core-0.14
   (package
     (inherit rust-polars-core-0.15)
@@ -33745,8 +37489,46 @@ applications.")
         ("rust-thiserror" ,rust-thiserror-1)
         ("rust-unsafe-unwrap" ,rust-unsafe-unwrap-0.1))))))
 
+(define-public rust-polars-io-0.16
+  (package
+    (name "rust-polars-io")
+    (version "0.16.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "polars-io" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0yqpjk0ymqpjq6f0mnm9hhw9xmjradx6vqzg5n54qvl6v3s3p3kh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ahash" ,rust-ahash-0.7)
+        ("rust-anyhow" ,rust-anyhow-1)
+        ("rust-arrow2" ,rust-arrow2-0.5)
+        ("rust-csv-core" ,rust-csv-core-0.1)
+        ("rust-dirs" ,rust-dirs-3)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-lexical" ,rust-lexical-6)
+        ("rust-memmap2" ,rust-memmap2-0.2)
+        ("rust-num" ,rust-num-0.4)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-polars-arrow" ,rust-polars-arrow-0.16)
+        ("rust-polars-core" ,rust-polars-core-0.16)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-simdutf8" ,rust-simdutf8-0.1))))
+    (home-page "https://github.com/ritchie46/polars")
+    (synopsis "IO related logic for the Polars DataFrame library")
+    (description
+     "This crate provides IO related logic for the Polars DataFrame library.")
+    (license license:expat)))
+
 (define-public rust-polars-io-0.15
   (package
+    (inherit rust-polars-io-0.16)
     (name "rust-polars-io")
     (version "0.15.1")
     (source
@@ -33756,7 +37538,6 @@ applications.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "19r2l3rxjdk25ir93l85ap4q0w5p7apjw3g57pszxph9nh2j8ba2"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -33777,12 +37558,7 @@ applications.")
         ("rust-polars-core" ,rust-polars-core-0.15)
         ("rust-rayon" ,rust-rayon-1)
         ("rust-regex" ,rust-regex-1)
-        ("rust-simdutf8" ,rust-simdutf8-0.1))))
-    (home-page "https://github.com/ritchie46/polars")
-    (synopsis "IO related logic for the Polars DataFrame library")
-    (description
-     "This crate provides IO related logic for the Polars DataFrame library.")
-    (license license:expat)))
+        ("rust-simdutf8" ,rust-simdutf8-0.1))))))
 
 (define-public rust-polars-io-0.14
   (package
@@ -33851,26 +37627,26 @@ applications.")
         ("rust-rayon" ,rust-rayon-1)
         ("rust-regex" ,rust-regex-1))))))
 
-(define-public rust-polars-lazy-0.15
+(define-public rust-polars-lazy-0.16
   (package
     (name "rust-polars-lazy")
-    (version "0.15.1")
+    (version "0.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "polars-lazy" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0xh3a0gjsisx62zwjmawxg9giin7bwmh7z7y4cc2d3ygy8nk19jh"))))
+        (base32 "01bjsk880dvigyqx7aj3f8zvxpk9gl14k3s40w3dv3aanhdzq7wx"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-ahash" ,rust-ahash-0.7)
         ("rust-itertools" ,rust-itertools-0.10)
-        ("rust-polars-arrow" ,rust-polars-arrow-0.15)
-        ("rust-polars-core" ,rust-polars-core-0.15)
-        ("rust-polars-io" ,rust-polars-io-0.15)
+        ("rust-polars-arrow" ,rust-polars-arrow-0.16)
+        ("rust-polars-core" ,rust-polars-core-0.16)
+        ("rust-polars-io" ,rust-polars-io-0.16)
         ("rust-rayon" ,rust-rayon-1)
         ("rust-regex" ,rust-regex-1))))
     (home-page "https://github.com/ritchie46/polars")
@@ -33880,6 +37656,29 @@ applications.")
 library.")
     (license license:expat)))
 
+(define-public rust-polars-lazy-0.15
+  (package
+    (inherit rust-polars-lazy-0.16)
+    (name "rust-polars-lazy")
+    (version "0.15.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "polars-lazy" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0xh3a0gjsisx62zwjmawxg9giin7bwmh7z7y4cc2d3ygy8nk19jh"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ahash" ,rust-ahash-0.7)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-polars-arrow" ,rust-polars-arrow-0.15)
+        ("rust-polars-core" ,rust-polars-core-0.15)
+        ("rust-polars-io" ,rust-polars-io-0.15)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-regex" ,rust-regex-1))))))
+
 (define-public rust-polars-lazy-0.14
   (package
     (inherit rust-polars-lazy-0.15)
@@ -34261,7 +38060,7 @@ and Postgres values.")
       (origin
         (method url-fetch)
         (uri (crate-uri "ppv-lite86" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1shj4q7jwj0azssr8cg51dk3kh7d4lg9rmbbz1kbqk971vc5wyi3"))))
@@ -34291,7 +38090,7 @@ for x86.")
        (("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-vcpkg" ,rust-vcpkg-0.2))))
     (native-inputs
-     `(("postgresql" ,postgresql)))
+     (list postgresql))
     (home-page "https://crates.io/crates/pq-sys")
     (synopsis "Auto-generated rust bindings for libpq")
     (description "This package provides auto-generated rust bindings for
@@ -34682,21 +38481,26 @@ replacements, adding colorful diffs.")
 formatted tables in terminal.")
     (license license:bsd-3)))
 
-(define-public rust-proc-macro-crate-0.1
+(define-public rust-proc-macro-crate-1
   (package
     (name "rust-proc-macro-crate")
-    (version "0.1.5")
+    (version "1.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "proc-macro-crate" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "11cpihdk9ba68hzw95aa8zxn0i5g6kdrfd4l2cy3d5jvb72a6vhx"))))
+        (base32 "14pzgkpnlzq6y7yc749h2lwd1mv44min4iszjk2znmi1yqfvvza1"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-toml" ,rust-toml-0.5))))
+       (("rust-thiserror" ,rust-thiserror-1)
+        ("rust-toml" ,rust-toml-0.5))
+       #:cargo-development-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
     (home-page "https://github.com/bkchr/proc-macro-crate")
     (synopsis "Support for @code{$crate} in procedural macros")
     (description
@@ -34704,6 +38508,22 @@ formatted tables in terminal.")
 renamed in @file{Cargo.toml}.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-proc-macro-crate-0.1
+  (package
+    (inherit rust-proc-macro-crate-1)
+    (name "rust-proc-macro-crate")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "proc-macro-crate" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "11cpihdk9ba68hzw95aa8zxn0i5g6kdrfd4l2cy3d5jvb72a6vhx"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-toml" ,rust-toml-0.5))))))
+
 (define-public rust-proc-macro-error-1
   (package
     (name "rust-proc-macro-error")
@@ -34912,7 +38732,7 @@ in your code.")
       (origin
         (method url-fetch)
         (uri (crate-uri "proc-macro2" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0f3h0zl5w5090ajmmvpmhkpr4iwqnn5rip3afacabhc657vwmn7h"))))
@@ -34924,7 +38744,7 @@ in your code.")
        #:cargo-development-inputs
        (("rust-quote" ,rust-quote-1))))
     (inputs
-     `(("rust-unicode-xid" ,rust-unicode-xid-0.2)))
+     (list rust-unicode-xid-0.2))
     (home-page "https://github.com/alexcrichton/proc-macro2")
     (synopsis "Stable implementation of the upcoming new `proc_macro` API")
     (description "This package provides a stable implementation of the upcoming new
@@ -35000,6 +38820,54 @@ macro use case.")
 @code{proc_macro_derive} pretend to be @code{proc_macro}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-process-control-3
+  (package
+    (name "rust-process-control")
+    (version "3.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "process_control" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1v5j6ajr3fprpay8754874rmi622a1vk5rld88p1jk04wha413pm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/dylni/process_control")
+    (synopsis "Methods for ergonomically running processes with timeouts")
+    (description
+     "This crate allows running a process with a timeout, with the option to
+terminate it automatically afterward.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-progress-0.2
+  (package
+    (name "rust-progress")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "progress" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0i0w5zh2hm4l16ibg5mgr9pf3vpybhhx0zrs0nb8d191awq21f0p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ; 2 tests fail
+       #:cargo-inputs
+       (("rust-terminal-size" ,rust-terminal-size-0.1))))
+    (home-page "https://github.com/TheKK/progress")
+    (synopsis "Library for showing text based progress bar and job status")
+    (description
+     "This library is used for showing text based progress bar and job
+status.")
+    (license license:expat)))
+
 (define-public rust-progressing-3
   (package
     (name "rust-progressing")
@@ -35055,8 +38923,45 @@ transfer).
 This library mimics the Git way of showing progress.")
     (license license:gpl2+)))
 
+(define-public rust-proptest-1
+  (package
+    (name "rust-proptest")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "proptest" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1rdhjnf0xma5rmsq04d31n2vq1pgbm42pjc6jn3jsj8qgz09q38y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bit-set" ,rust-bit-set-0.5)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-quick-error" ,rust-quick-error-2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rand-chacha" ,rust-rand-chacha-0.3)
+        ("rust-rand-xorshift" ,rust-rand-xorshift-0.3)
+        ("rust-regex-syntax" ,rust-regex-syntax-0.6)
+        ("rust-rusty-fork" ,rust-rusty-fork-0.3)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-x86" ,rust-x86-0.33))
+       #:cargo-development-inputs
+       (("rust-regex" ,rust-regex-1))))
+    (home-page "https://altsysrq.github.io/proptest-book/proptest/index.html")
+    (synopsis "Hypothesis-like property-based testing and shrinking")
+    (description
+     "The @code{proptest} crate provides most of Proptest’s functionality,
+including most strategies and the testing framework itself.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-proptest-0.10
   (package
+    (inherit rust-proptest-1)
     (name "rust-proptest")
     (version "0.10.1")
     (source
@@ -35066,7 +38971,6 @@ This library mimics the Git way of showing progress.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0vv4cvwn1v7h0zjajmhznll554a2ri8dqw26xql3q49r246cirhj"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -35084,13 +38988,7 @@ This library mimics the Git way of showing progress.")
         ("rust-tempfile" ,rust-tempfile-3)
         ("rust-x86" ,rust-x86-0.33))
        #:cargo-development-inputs
-       (("rust-regex" ,rust-regex-1))))
-    (home-page "https://altsysrq.github.io/proptest-book/proptest/index.html")
-    (synopsis "Hypothesis-like property-based testing and shrinking")
-    (description
-     "The @code{proptest} crate provides most of Proptest’s functionality,
-including most strategies and the testing framework itself.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-regex" ,rust-regex-1))))))
 
 (define-public rust-proptest-0.9
   (package
@@ -35233,6 +39131,57 @@ including most strategies and the testing framework itself.")
 trait of proptest.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-psl-2
+  (package
+    (name "rust-psl")
+    (version "2.0.48")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "psl" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0a2d3z6gi7bwsi4xr6m3kq44wxyr81yqr5z76afv8kfxsc8p1nxh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-psl-types" ,rust-psl-types-2))
+       #:cargo-development-inputs
+       (("rust-rspec", rust-rspec-1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-version-requirements
+           (lambda _
+             (substitute* "Cargo.toml"
+               (("1.0.0") ,(package-version rust-rspec-1))))))))
+    (home-page "https://github.com/addr-rs/psl")
+    (synopsis "Extract root domain and suffix")
+    (description "This package extracts root domain and suffix from a domain
+name.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-psl-types-2
+  (package
+    (name "rust-psl-types")
+    (version "2.0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "psl-types" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0kqssn9wgqpl1m26ynv7cvxanfhyjvssi2a3jc2nzpbw7q3ricv6"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/addr-rs/psl-types")
+    (synopsis "Common types for the public suffix implementation crates")
+    (description "This package provides common types for the public suffix
+implementation crates.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-psm-0.1
   (package
     (name "rust-psm")
@@ -35256,8 +39205,36 @@ trait of proptest.")
 stack pointer and inspect the properties of the stack.")
     (license (list license:isc license:asl2.0))))
 
+(define-public rust-publicsuffix-2
+  (package
+    (name "rust-publicsuffix")
+    (version "2.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "publicsuffix" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1q9kbcqh9pa06p3kq7d3ksbnqjhs88v5wk5qg89wrgkbmpnp4a99"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-hashbrown" ,rust-hashbrown-0.11)
+        ("rust-idna" ,rust-idna-0.2)
+        ("rust-psl-types" ,rust-psl-types-2)
+        ("rust-unicase" ,rust-unicase-2))))
+    (home-page "https://github.com/rushmorem/publicsuffix")
+    (synopsis "Domain name parsing and email address validation")
+    (description "This package provides robust domain name parsing and RFC
+compliant email address validation.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-publicsuffix-1
   (package
+    (inherit rust-publicsuffix-2)
     (name "rust-publicsuffix")
     (version "1.5.4")
     (source
@@ -35268,7 +39245,6 @@ stack pointer and inspect the properties of the stack.")
        (sha256
         (base32
          "0yvmjpywfyypfr17kxiwy6ssykgv8nmcdhfakas6548pfn8a9fiv"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-error-chain" ,rust-error-chain-0.12)
@@ -35278,12 +39254,7 @@ stack pointer and inspect the properties of the stack.")
         ("rust-regex" ,rust-regex-1)
         ("rust-url" ,rust-url-2))
        #:cargo-development-inputs
-       (("rust-rspec" ,rust-rspec-1))))
-    (home-page "https://github.com/rushmorem/publicsuffix")
-    (synopsis "Domain name parsing and email address validation")
-    (description "This package provides robust domain name parsing and RFC
-compliant email address validation.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-rspec" ,rust-rspec-1))))))
 
 (define-public rust-pulldown-cmark-0.8
   (package
@@ -35638,18 +39609,18 @@ implementation.")
     (description "This package provides a quick csv reader and decoder in Rust.")
     (license license:expat)))
 
-(define-public rust-quick-error-1
+(define-public rust-quick-error-2
   (package
     (name "rust-quick-error")
-    (version "1.2.3")
+    (version "2.0.1")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "quick-error" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1q6za3v78hsspisc197bg3g7rpc989qycy8ypr8ap8igv10ikl51"))))
+          "18z6r2rcjvvf8cn92xjhm2qc3jpd1ljvcbf12zv0k9p565gmb4x9"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/tailhook/quick-error")
     (synopsis "Macro which makes error types pleasant to write")
@@ -35658,6 +39629,20 @@ to write.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-quick-error-1
+  (package
+    (inherit rust-quick-error-2)
+    (name "rust-quick-error")
+    (version "1.2.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "quick-error" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1q6za3v78hsspisc197bg3g7rpc989qycy8ypr8ap8igv10ikl51"))))))
+
 (define-public rust-quick-xml-0.22
   (package
     (name "rust-quick-xml")
@@ -35995,7 +39980,7 @@ integers, floats, tuples, booleans, lists, strings, options and results.")
       (origin
         (method url-fetch)
         (uri (crate-uri "quote" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "19rjmfqzk26rxbgxy5j2ckqc2v12sw2xw8l4gi8bzpn2bmsbkl63"))))
@@ -36061,6 +40046,26 @@ integers, floats, tuples, booleans, lists, strings, options and results.")
          "0yhnnix4dzsv8y4wwz4csbnqjfh73al33j35msr10py6cl5r4vks"))))
     (arguments '())))
 
+(define-public rust-quoted-printable-0.4
+  (package
+    (name "rust-quoted-printable")
+    (version "0.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "quoted_printable" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ig9b5nr2i2f72smsjkkx8pwpxp9vz2090dhi7n4jdlj15mjaf0j"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/staktrace/quoted-printable")
+    (synopsis "Simple encoder/decoder for quoted-printable data")
+    (description
+     "This package provides a simple encoder/decoder for quoted-printable
+data.")
+    (license license:bsd-0)))
+
 (define-public rust-r2d2
   (package
     (name "rust-r2d2")
@@ -36243,7 +40248,7 @@ useful types and distributions, and some randomness-related algorithms.")
      (origin
        (method url-fetch)
        (uri (crate-uri "rand" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
          "00sdaimkbz491qgi6qxkv582yivl32m2jd401kzbn94vsiwicsva"))))
@@ -36270,7 +40275,7 @@ useful types and distributions, and some randomness-related algorithms.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rand" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1jl4449jcl4wgmzld6ffwqj5gwxrp8zvx8w573g1z368qg6xlwbd"))))
@@ -36352,7 +40357,7 @@ useful types and distributions, and some randomness-related algorithms.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rand" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0v679h38pjjqj5h4md7v2slsvj6686qgcn7p9fbw3h43iwnk1b34"))))
@@ -36412,7 +40417,7 @@ useful types and distributions, and some randomness-related algorithms.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rand_chacha" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1vxwyzs4fy1ffjc8l00fsyygpiss135irjf7nyxgq2v0lqf3lvam"))))
@@ -36474,7 +40479,7 @@ tools for implementation.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rand_core" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1p09ynysrq1vcdlmcqnapq4qakl2yd1ng3kxh3qscpx09k2a6cww"))))
@@ -36492,7 +40497,7 @@ tools for implementation.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rand_core" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0jzdgszfa4bliigiy4hi66k7fs3gfwi2qxn8vik84ph77fwdwvvs"))))
@@ -36520,6 +40525,41 @@ tools for implementation.")
        #:cargo-inputs
        (("rust-rand-core" ,rust-rand-core-0.3))))))
 
+(define-public rust-rand-distr-0.4
+  (package
+    (name "rust-rand-distr")
+    (version "0.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rand_distr" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0brd2946xfapm2bmhmczfbwck041x7khsfhqxw1f24kxis7m8kcn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'configure 'patch-Cargo.toml
+           (lambda _
+             (substitute* '("Cargo.toml"
+                            "guix-vendor/rust-average-0.13.1.tar.gz/Cargo.toml")
+               ;; The resolver feature is not supported by this version of Cargo.
+               (("resolver = \"2\".*") "")))))
+       #:cargo-inputs
+       (("rust-average" ,rust-average-0.13)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-special" ,rust-special-0.8))
+       #:cargo-development-inputs
+       (("rust-rand-pcg" ,rust-rand-pcg-0.3))))
+    (home-page "https://rust-random.github.io/book/")
+    (synopsis "Sampling from random number distributions")
+    (description "This package provides tool for sampling from random number
+distributions.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rand-distr-0.3
   (package
     (name "rust-rand-distr")
@@ -36599,7 +40639,7 @@ generator that uses the HC-128 algorithm.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rand_hc" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0g31sqwpmsirdlwr0svnacr4dbqyz339im4ssl9738cjgfpjjcfa"))))
@@ -36616,13 +40656,39 @@ generator that uses the HC-128 algorithm.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rand_hc" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1i0vl8q5ddvvy0x8hf1zxny393miyzxkwqnw31ifg6p0gdy6fh3v"))))
     (arguments
      `(#:cargo-inputs (("rust-rand-core" ,rust-rand-core-0.3))))))
 
+(define-public rust-rand-isaac-0.3
+  (package
+    (name "rust-rand-isaac")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rand_isaac" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0a0b188s960qknwwgvpn7zpq3fzdhvrb0gsm5ir5akqvv4y3gi7s"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1))))
+    (home-page "https://rust-random.github.io/book/")
+    (synopsis "ISAAC random number generator")
+    (description "This package implements the @code{ISAAC} and @code{ISAAC-64}
+random number generators.  ISAAC stands for \"Indirection, Shift, Accumulate,
+Add, and Count\" which are the principal bitwise operations employed.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rand-isaac-0.2
   (package
     (name "rust-rand-isaac")
@@ -36659,7 +40725,7 @@ Add, and Count\" which are the principal bitwise operations employed.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rand_isaac" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "027flpjr4znx2csxk7gxb7vrf9c7y5mydmvg5az2afgisp4rgnfy"))))
@@ -36679,7 +40745,7 @@ Add, and Count\" which are the principal bitwise operations employed.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rand_jitter" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "16z387y46bfz3csc42zxbjq89vcr1axqacncvv8qhyy93p4xarhi"))))
@@ -36730,7 +40796,7 @@ generator based on timing jitter.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rand_os" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0wahppm0s64gkr2vmhcgwc0lij37in1lgfxg5rbgqlz0l5vgcxbv"))))
@@ -36746,6 +40812,33 @@ generator based on timing jitter.")
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
         ("rust-winapi" ,rust-winapi-0.3))))))
 
+(define-public rust-rand-pcg-0.3
+  (package
+    (name "rust-rand-pcg")
+    (version "0.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "rand_pcg" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1w47awndfhgcc31zbji66pwndqmc6lsyairqi9b17f82f19riqbx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1))))
+    (home-page "https://crates.io/crates/rand_pcg")
+    (synopsis
+     "Selected PCG random number generators")
+    (description
+     "This package implements a selection of PCG random number generators.")
+    (license (list license:asl2.0
+                   license:expat))))
+
 (define-public rust-rand-pcg-0.2
   (package
     (name "rust-rand-pcg")
@@ -36754,7 +40847,7 @@ generator based on timing jitter.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rand_pcg" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0ab4h6s6x3py833jk61lwadq83qd1c8bih2hgi6yps9rnv0x1aqn"))))
@@ -36782,7 +40875,7 @@ generator based on timing jitter.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rand_pcg" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0i0bdla18a8x4jn1w0fxsbs3jg7ajllz6azmch1zw33r06dv1ydb"))))
@@ -36795,10 +40888,10 @@ generator based on timing jitter.")
        #:cargo-development-inputs
        (("rust-bincode" ,rust-bincode-1))))))
 
-(define-public rust-rand-xorshift-0.2
+(define-public rust-rand-xorshift-0.3
   (package
     (name "rust-rand-xorshift")
-    (version "0.2.0")
+    (version "0.3.0")
     (source
      (origin
        (method url-fetch)
@@ -36807,11 +40900,11 @@ generator based on timing jitter.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1a6wy76lc5fimm1n9n8fzhp4cfjwfwxh4hx63bg3vlh1d2w1dm3p"))))
+         "13vcag7gmqspzyabfl1gr9ykvxd2142q2agrj8dkyjmfqmgg4nyj"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-rand-core" ,rust-rand-core-0.5)
+       (("rust-rand-core" ,rust-rand-core-0.6)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-bincode" ,rust-bincode-1))))
@@ -36821,6 +40914,27 @@ generator based on timing jitter.")
      "Xorshift random number generator.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-rand-xorshift-0.2
+  (package
+    (inherit rust-rand-xorshift-0.3)
+    (name "rust-rand-xorshift")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rand_xorshift" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1a6wy76lc5fimm1n9n8fzhp4cfjwfwxh4hx63bg3vlh1d2w1dm3p"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-rand-core" ,rust-rand-core-0.5)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1))))))
+
 (define-public rust-rand-xorshift-0.1
   (package
     (name "rust-rand-xorshift")
@@ -36829,7 +40943,7 @@ generator based on timing jitter.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rand_xorshift" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0p2x8nr00hricpi2m6ca5vysiha7ybnghz79yqhhx6sl4gkfkxyb"))))
@@ -36848,6 +40962,30 @@ generator based on timing jitter.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-rand-xoshiro-0.6
+  (package
+    (name "rust-rand-xoshiro")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rand_xoshiro" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ajsic84rzwz5qr0mzlay8vi17swqi684bqvwqyiim3flfrcv5vg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1))))
+    (home-page "https://rust-random.github.io/book/")
+    (synopsis "Xoshiro, xoroshiro and splitmix64 random number generators")
+    (description "This package provides the xoshiro, xoroshiro and splitmix64
+random number generators.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rand-xoshiro-0.4
   (package
     (name "rust-rand-xoshiro")
@@ -36918,6 +41056,24 @@ random number generators.")
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.6))))))
 
+(define-public rust-random-0.12
+  (package
+    (name "rust-random")
+    (version "0.12.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "random" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "03s2c59vzcr5fmxbhlhxvrsnwgic488jl4br1k4q369lhls3mlcp"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/stainless-steel/random")
+    (synopsis "Sources of randomness")
+    (description "The package provides sources of randomness.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-random-fast-rng-0.1
   (package
     (name "rust-random-fast-rng")
@@ -37049,7 +41205,7 @@ libcore.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rawpointer" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1qy1qvj17yh957vhffnq6agq0brvylw27xgks171qrah75wmg8v0"))))
@@ -37071,7 +41227,7 @@ and @code{ptrdistance}.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rawpointer" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "06ghpm9y7gacks78s3maakha07kbnwrxif5q37r2l7z1sali3b7b"))))))
@@ -37106,14 +41262,14 @@ accessors.")
 (define-public rust-rayon-1
   (package
     (name "rust-rayon")
-    (version "1.5.0")
+    (version "1.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rayon" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0x2n4zkrm6z3avdfh7zgcwx0wq6hx8332dx89v3j1p7s3448w3cb"))))
+        (base32 "143dl2453bazgk7rwjrickmyqd0ks3q69nfz8axcins19n0clsn0"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -37185,14 +41341,14 @@ Rust.")
 (define-public rust-rayon-core-1
   (package
     (name "rust-rayon-core")
-    (version "1.9.0")
+    (version "1.9.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rayon-core" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0jpsi8zf66xyx4m5f329lpgiql8775vpm6zqm7zn5p11b6n4dcws"))))
+        (base32 "13kdcnqp2p1a5a3amamfjpnm7ay463vq4dfxy4rrh9shr3i210fp"))))
     (build-system cargo-build-system)
     (arguments
      ;; One of the tests attempts to overflow the stack, but the compiler has
@@ -37242,7 +41398,7 @@ reference counting.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rdrand" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1cjq0kwx1bk7jx3kzyciiish5gqsj7620dm43dc52sr8fzmm9037"))))
@@ -37356,7 +41512,7 @@ owned memory.")
       (origin
         (method url-fetch)
         (uri (crate-uri "redox_syscall" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1kh59fpwy33w9nwd5iyc283yglq8pf2s41hnhvl48iax9mz0zk21"))))
@@ -37370,7 +41526,7 @@ owned memory.")
       (origin
         (method url-fetch)
         (uri (crate-uri "redox-termios" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0xhgvdh62mymgdl3jqrngl8hr4i8xwpnbsxnldq0l47993z1r2by"))))
@@ -37568,8 +41724,8 @@ memory to speed up reallocation.")
         ("rust-regex-syntax" ,rust-regex-syntax-0.6))
        #:cargo-development-inputs
        (("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-quickcheck" ,rust-quickcheck-0.8)
-        ("rust-rand" ,rust-rand-0.6))))
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-rand" ,rust-rand-0.8))))
     (home-page "https://github.com/rust-lang/regex")
     (synopsis "Regular expressions for Rust")
     (description
@@ -37742,6 +41898,33 @@ uses finite automata and guarantees linear time matching on all inputs.")
        (("rust-quickcheck" ,rust-quickcheck-0.2)
         ("rust-rand" ,rust-rand-0.3))))))
 
+(define-public rust-region-2
+  (package
+    (name "rust-region")
+    (version "2.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "region" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1q4szar3ms76552iygmhsvzhvvwkgz4l94qpx600vmyw5bm58zl7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-mach" ,rust-mach-0.3)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-memmap" ,rust-memmap-0.7))))
+    (home-page "https://github.com/darfink/region-rs")
+    (synopsis "Library for manipulating memory regions")
+    (description
+     "This package provides a library for manipulating memory regions.")
+    (license license:expat)))
+
 (define-public rust-relative-path-1
   (package
     (name "rust-relative-path")
@@ -37798,14 +41981,7 @@ uses finite automata and guarantees linear time matching on all inputs.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1rzqbsgkmr053bxxl04vmvsd1njyz0nxvly97aip6aa2cmb15k9s"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; 'doctest' isn't stable until rust-1.40
-           (substitute* "src/lib.rs"
-             (("\\(doctest") "(test"))
-           #t))))
+          "1rzqbsgkmr053bxxl04vmvsd1njyz0nxvly97aip6aa2cmb15k9s"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -37820,6 +41996,29 @@ uses finite automata and guarantees linear time matching on all inputs.")
     (license (list license:asl2.0
                    license:expat))))
 
+;; rust-remove-dir-all-0.5.2 is only needed for tealdeer at 1.4.1
+;; Remove rust-remove-dir-all-0.5.2 when tealdeer is updated
+(define-public rust-remove-dir-all-0.5.2
+  (package
+    (inherit rust-remove-dir-all-0.5)
+    (name "rust-remove-dir-all")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "remove_dir_all" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0bkrlyg26mgizpiy1yb2hhpgscxcag8r5fnckqsvk25608vzm0sa"))))
+    (arguments
+     `(#:tests? #f  ; README.md is missing.
+       #:cargo-inputs
+       (("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3))))))
+
 (define-public rust-reopen-0.3
   (package
     (name "rust-reopen")
@@ -37984,9 +42183,9 @@ uses finite automata and guarantees linear time matching on all inputs.")
         ("rust-tokio" ,rust-tokio-0.2)
         ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("openssl" ,openssl)))))
+     (list openssl))))
 
 (define-public rust-reqwest-0.9
   (package
@@ -38072,7 +42271,7 @@ uses finite automata and guarantees linear time matching on all inputs.")
       (origin
         (method url-fetch)
         (uri (crate-uri "resolv-conf" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0jlzifww1h7j23jnjj49xz8q0fpd9rqpd0ks8c4y651vgw9lx0qi"))))
@@ -38282,9 +42481,9 @@ Rust Language Server.")
        (("rust-byteorder" ,rust-byteorder-1)
         ("rust-tempfile" ,rust-tempfile-3))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("lmdb" ,lmdb)))
+     (list lmdb))
     (home-page "https://github.com/mozilla/rkv")
     (synopsis "Typed key-value storage")
     (description "This package provides a typed key-value storage solution.")
@@ -38316,17 +42515,40 @@ writers and readers for primitive values with direct mapping between binary
 MessagePack format.")
     (license license:expat)))
 
-(define-public rust-rmp-serde-0.14
+(define-public rust-rmp-serde-0.15
   (package
     (name "rust-rmp-serde")
-    (version "0.14.4")
+    (version "0.15.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rmp-serde" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1n2jn3yj5zbjhz5lah98yylpzhfc1c0h5fcksjp75r3gj86dgrsc"))))
+        (base32 "178f4qlicldm9iy74q4wdqldk5i11p1ad30wzs9avx04mpwwygkj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-rmp" ,rust-rmp-0.8)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/3Hren/msgpack-rust")
+    (synopsis "Serde bindings for RMP")
+    (description "This crate provides Serde bindings for RMP.")
+    (license license:expat)))
+
+(define-public rust-rmp-serde-0.13
+  (package
+    (name "rust-rmp-serde")
+    (version "0.13.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rmp-serde" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1lqclnffx1b3r1faicscmk9j21mijl9bj7ywgjps77vf8ic1s7h1"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -39046,7 +43268,7 @@ please consider using @code{async-std} or @code{tokio}.")
              (setenv "RUSTC_BOOTSTRAP" "1")
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))))
+     (list pkg-config))))
 
 (define-public rust-rusqlite-0.19
   (package
@@ -39084,7 +43306,7 @@ please consider using @code{async-std} or @code{tokio}.")
         ("rust-unicase" ,rust-unicase-2)
         ("rust-uuid" ,rust-uuid-0.7))))
     (inputs
-     `(("sqlite" ,sqlite)))))
+     (list sqlite))))
 
 (define-public rust-rust-argon2-0.7
   (package
@@ -39451,25 +43673,44 @@ the file-system during development.")
      "This package provides a sys crate for the rust_hawktracer library.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-rust-ini-0.13
+(define-public rust-rust-ini-0.17
   (package
     (name "rust-rust-ini")
-    (version "0.13.0")
+    (version "0.17.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rust-ini" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1hifnbgaz01zja5995chy6vjacbif2m76nlxsisw7y1pxx4c2liy"))))
+        (base32 "08hfh6p2svznza3m07vavsc4c8x4g6d715sz58rzh73sm551qiv3"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-ordered-multimap" ,rust-ordered-multimap-0.3)
+        ("rust-unicase" ,rust-unicase-2))))
     (home-page "https://github.com/zonyitoo/rust-ini")
     (synopsis "INI configuration file parsing library in Rust")
     (description
      "This package is an INI configuration file parsing library in Rust.")
     (license license:expat)))
 
+(define-public rust-rust-ini-0.13
+  (package
+    (inherit rust-rust-ini-0.17)
+    (name "rust-rust-ini")
+    (version "0.13.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rust-ini" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1hifnbgaz01zja5995chy6vjacbif2m76nlxsisw7y1pxx4c2liy"))))
+    (arguments `(#:skip-build? #t))))
+
 (define-public rust-rustbox-0.11
   (package
     (name "rust-rustbox")
@@ -39840,7 +44081,7 @@ It is automatically published using the compiler repository at
       (origin
         (method url-fetch)
         (uri (crate-uri "rustc-demangle" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "10qp42sl1wrdbgbbh8rnay2grm976z7hqgz32c4y09l1c071qsac"))))
@@ -39961,7 +44202,7 @@ forth, as well as the ability to create custom thread-pools with ThreadPool.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rustc-serialize" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1nkg3vasg7nk80ffkazizgiyv3hb1l9g3d8h17cajbkx538jiwfw"))))
@@ -40008,7 +44249,7 @@ decoding.")
       (origin
         (method url-fetch)
         (uri (crate-uri "rustc-std-workspace-core" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1309xhwyai9xpz128xrfjqkmnkvgjwddznmj7brbd8i8f58zamhr"))))
@@ -40110,7 +44351,7 @@ require unstable language features.")
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-semver" ,rust-semver-0.11))))
-    (home-page "https://github.com/Kimundi/rustc-version-rs")
+    (home-page "https://github.com/djc/rustc-version-rs")
     (synopsis "Library for querying the version of an installed rustc compiler")
     (description
      "This package provides a library for querying the version of an installed
@@ -40135,6 +44376,22 @@ rustc compiler.")
      `(#:skip-build? #t
        #:cargo-inputs (("rust-semver" ,rust-semver-0.9))))))
 
+(define-public rust-rustc-version-0.1
+  (package
+    (inherit rust-rustc-version-0.3)
+    (name "rust-rustc-version")
+    (version "0.1.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rustc_version" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1160jjsqhqr25cvhr48hmpp8v61bjvjcnxzb0cyf4373lmp3gxf5"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-semver" ,rust-semver-0.1))))))
+
 (define-public rust-rustdoc-stripper-0.1
   (package
     (name "rust-rustdoc-stripper")
@@ -40843,6 +45100,55 @@ sub-processes using a fork-like interface.")
         (base32
          "1n3iw9kaq70dw1rvvma0gjwydbj0f2mvvqvrva69f5cl6yv1dnd0"))))))
 
+(define-public rust-rkyv-0.6
+  (package
+    (name "rust-rkyv")
+    (version "0.6.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rkyv" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "01wsn0i8gsw958j892w8i4fyzjdsyhrh7c5zajig049kbqz5n4yb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bytecheck" ,rust-bytecheck-0.5)
+        ("rust-memoffset" ,rust-memoffset-0.6)
+        ("rust-ptr-meta" ,rust-ptr-meta-0.1)
+        ("rust-rkyv-derive" ,rust-rkyv-derive-0.6)
+        ("rust-seahash" ,rust-seahash-4))))
+    (home-page "https://github.com/rkyv/rkyv")
+    (synopsis "Zero-copy deserialization framework for Rust")
+    (description "Rkyv is a zero-copy deserialization framework for Rust.")
+    (license license:expat)))
+
+(define-public rust-rkyv-derive-0.6
+  (package
+    (name "rust-rkyv-derive")
+    (version "0.6.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rkyv_derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1mc7rnps41gdywahsffqlypsp9jqmp0r6hlh2nxm31bddfgli3xs"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/rkyv/rkyv")
+    (synopsis "Derive macro for zero-copy deserialization framework")
+    (description "This package provides a Derive macro for the rkyv
+deserialization framework.")
+    (license license:expat)))
+
 (define-public rust-ryu-1
   (package
     (name "rust-ryu")
@@ -40851,7 +45157,7 @@ sub-processes using a fork-like interface.")
       (origin
         (method url-fetch)
         (uri (crate-uri "ryu" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0xlx9ybzncrb7d6r9533g8ydlg6mr252pfzl4g9cqaqkpvk24mjk"))))
@@ -41069,6 +45375,28 @@ quickly convert floating point numbers to decimal strings.")
 computation (experimental)")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-safe-arch-0.5
+  (package
+    (name "rust-safe-arch")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "safe_arch" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "01ffy9aw9v1n4bcwl525zw3gnh18jk7aq38iqcn51bwnjrnkvzy1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bytemuck" ,rust-bytemuck-1))))
+    (home-page "https://github.com/Lokathor/safe_arch")
+    (synopsis "Access core::arch safely")
+    (description "This package exposes @code{core::arch} safely via
+@code{#[cfg()]}.")
+    (license (list license:zlib license:asl2.0 license:expat))))
+
 (define-public rust-safemem-0.3
   (package
     (name "rust-safemem")
@@ -41077,7 +45405,7 @@ computation (experimental)")
       (origin
         (method url-fetch)
         (uri (crate-uri "safemem" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0wp0d2b2284lw11xhybhaszsczpbq1jbdklkxgifldcknmy3nw7g"))))
@@ -41112,7 +45440,7 @@ computation (experimental)")
       (origin
         (method url-fetch)
         (uri (crate-uri "same-file" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "00h5j1w87dmhnvbv9l8bic3y7xxsnjmssvifw2ayvgx9mb1ivz4k"))))
@@ -41224,7 +45552,7 @@ motivation for writing this library.
       (origin
         (method url-fetch)
         (uri (crate-uri "schannel" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "08d0p5iy574vdrax4l3laazic0crj7rp7vp3if5rrfkcdfq51xc7"))))
@@ -41270,7 +45598,7 @@ server functionality.")
       (origin
         (method url-fetch)
         (uri (crate-uri "scoped_threadpool" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1a26d3lk40s9mrf4imhbik7caahmw2jryhhb6vqv6fplbbgzal8x"))))
@@ -41299,7 +45627,7 @@ non-'static references in parallel.")
       (origin
         (method url-fetch)
         (uri (crate-uri "scoped-tls" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1hj8lifzvivdb1z02lfnzkshpvk85nkgzxsy2hc0zky9wf894spa"))))
@@ -41322,7 +45650,7 @@ library's old @code{scoped_thread_local!} macro for providing scoped access to
       (origin
         (method url-fetch)
         (uri (crate-uri "scoped-tls" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0a2bn9d2mb07c6l16sadijy4p540g498zddfxyiq4rsqpwrglbrk"))))))
@@ -41335,7 +45663,7 @@ library's old @code{scoped_thread_local!} macro for providing scoped access to
       (origin
         (method url-fetch)
         (uri (crate-uri "scopeguard" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1kbqm85v43rq92vx7hfiay6pmcga03vrjbbfwqpyj3pwsg3b16nj"))))
@@ -41360,11 +45688,41 @@ with one of the implemented strategies.")
         (method url-fetch)
         (uri (crate-uri "scopeguard" version))
         (file-name
-          (string-append name "-" version ".crate"))
+          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "09sy9wbqp409pkwmqni40qmwa99ldqpl48pp95m1xw8sc19qy9cl"))))))
 
+(define-public rust-scraper-0.12
+  (package
+    (name "rust-scraper")
+    (version "0.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "scraper" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "04icx88wdrlz1qv0dz1zc0inlfq34ajwdpih854jw368j2kjmq28"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cssparser" ,rust-cssparser-0.27)
+        ("rust-ego-tree" ,rust-ego-tree-0.6)
+        ("rust-getopts" ,rust-getopts-0.2)
+        ("rust-html5ever" ,rust-html5ever-0.25)
+        ("rust-matches" ,rust-matches-0.1)
+        ("rust-selectors" ,rust-selectors-0.22)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-tendril" ,rust-tendril-0.4))))
+    (home-page "https://github.com/programble/scraper")
+    (synopsis "HTML parsing and querying with CSS selectors")
+    (description
+     "Scraper provides an interface to Servo's html5ever and selectors crates,
+for browser-grade parsing and querying.")
+    (license license:isc)))
+
 (define-public rust-scratch-1
   (package
     (name "rust-scratch")
@@ -41656,6 +46014,26 @@ Pwrite traits from the scroll crate.")
 proven statistical guarantees.")
     (license license:expat)))
 
+(define-public rust-seahash-4
+  (package
+    (name "rust-seahash")
+    (version "4.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "seahash" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0sxsb64np6bvnppjz5hg4rqpnkczhsl8w8kf2a5lr1c08xppn40w"))))
+    (build-system cargo-build-system)
+    (arguments '(#:skip-build? #t))
+    (home-page "https://gitlab.redox-os.org/redox-os/seahash")
+    (synopsis "Hash function with proven statistical guarantees")
+    (description
+     "This package provides a fast, portable hash function with proven
+statistical guarantees.")
+    (license license:expat)))
+
 (define-public rust-seccomp-sys-0.1
   (package
     (name "rust-seccomp-sys")
@@ -41672,7 +46050,7 @@ proven statistical guarantees.")
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
-    (inputs `(("libseccomp" ,libseccomp)))
+    (inputs (list libseccomp))
     (home-page "https://github.com/polachok/seccomp-sys")
     (synopsis "Low-level bindings to libseccomp")
     (description "This package provides low-level bindings to libseccomp.")
@@ -41877,7 +46255,7 @@ macOS and iOS.")
       (origin
         (method url-fetch)
         (uri (crate-uri "security-framework-sys" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "15gqhhi206lzynd0pcbswxhvqc4p9bmpl2h9qnwfnpb16zy96573"))))
@@ -41957,6 +46335,21 @@ macOS and iOS.")
     (description "This package provides CSS Selectors matching for Rust.")
     (license license:mpl2.0)))
 
+(define-public rust-selectors-0.21
+  (package
+    (inherit rust-selectors-0.22)
+    (name "rust-selectors")
+    (version "0.21.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "selectors" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "11icfj8ix8fqjsnw3dqw83bmhd5qdhxzq2klb486akyypq0b31hv"))))))
+
 (define-public rust-sema-0.1
   (package
     (name "rust-sema")
@@ -41989,8 +46382,31 @@ macOS and iOS.")
     (description "Rust semaphore library.")
     (license license:expat)))
 
+(define-public rust-semver-1
+  (package
+    (name "rust-semver")
+    (version "1.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "semver" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1gna1p10i86sf1pqfqndkwl0wks35x84yvjw77c74ckzxrbsqfjz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-serde" ,rust-serde-1))))
+    (home-page "https://docs.rs/crate/semver")
+    (synopsis "Semantic version parsing and comparison")
+    (description
+     "This package provides semantic version parsing and comparison.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-semver-0.11
   (package
+    (inherit rust-semver-1)
     (name "rust-semver")
     (version "0.11.0")
     (source
@@ -42000,17 +46416,11 @@ macOS and iOS.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1dn6064fipjymnmjccyjhb70miyvqvp08gvw1wbg8vbg4c8ay0gk"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-diesel" ,rust-diesel-1)
         ("rust-semver-parser" ,rust-semver-parser-0.10)
-        ("rust-serde" ,rust-serde-1))))
-    (home-page "https://docs.rs/crate/semver/")
-    (synopsis "Semantic version parsing and comparison")
-    (description
-     "This package provides semantic version parsing and comparison.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-serde" ,rust-serde-1))))))
 
 (define-public rust-semver-0.10
   (package
@@ -42064,6 +46474,25 @@ macOS and iOS.")
      "Semantic version parsing and comparison.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-semver-0.1
+  (package
+    (name "rust-semver")
+    (version "0.1.20")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "semver" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1b10m0hxrr947gp41lj9vnmgl5ddwx3d41vnblsg06ppvkz11x6l"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/dtolnay/semver")
+    (synopsis "Parser and evaluator for Cargo's flavor of Semantic Versioning")
+    (description
+     "This package provides a parser and evaluator for Cargo's flavor of
+Semantic Versioning.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-semver-parser-0.10
   (package
     (name "rust-semver-parser")
@@ -42096,7 +46525,7 @@ macOS and iOS.")
       (origin
         (method url-fetch)
         (uri (crate-uri "semver-parser" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1ahqhvgpzhcsd28id7xnrjv4419i9yyalhm7d7zi430qx0hi2vml"))))))
@@ -42110,7 +46539,7 @@ macOS and iOS.")
       (origin
         (method url-fetch)
         (uri (crate-uri "semver-parser" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "18vhypw6zgccnrlm5ps1pwa0khz7ry927iznpr88b87cagr1v2iq"))))))
@@ -42138,6 +46567,49 @@ also have to make sure that the wrapper is dropped from within the original
 thread.  If any of these constraints is violated, a panic occurs.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-seq-io-0.3
+  (package
+    (name "rust-seq-io")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "seq_io" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1r643ihyba62vbr5l085mzz3gzfy4iba33nm2l981smvwcb8rzf6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-buf-redux" ,rust-buf-redux-0.8)
+        ("rust-crossbeam" ,rust-crossbeam-0.8)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1))
+       #:cargo-development-inputs
+       (("rust-bio" ,rust-bio-0.32)
+        ("rust-criterion" ,rust-criterion-0.3)
+        ("rust-fastq" ,rust-fastq-0.6)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-matches" ,rust-matches-0.1)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-rand-isaac" ,rust-rand-isaac-0.2))))
+    (inputs
+     (list zlib))
+    (home-page "https://github.com/markschl/seq_io")
+    (synopsis "Fast FASTA, FASTQ and FASTX parsing")
+    (description "This library provides readers for the the following sequence
+formats:
+
+@itemize
+@item FASTA,
+@item FASTQ (including multi-line FASTQ),
+@item FASTX: Automatic recognition of the sequence format (either FASTA or FASTQ).
+@end itemize
+")
+    (license license:expat)))
+
 (define-public rust-seq-macro-0.2
   (package
     (name "rust-seq-macro")
@@ -42199,10 +46671,9 @@ fragment of code.")
        #:cargo-development-inputs
        (("rust-rpassword" ,rust-rpassword-3))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("clang" ,clang)
-       ("nettle" ,nettle)))
+     (list clang nettle))
     (home-page "https://sequoia-pgp.org/")
     (synopsis "OpenPGP data types and associated machinery")
     (description
@@ -42342,6 +46813,29 @@ rules are rather complex.  This crate implements the whole grammar." )
      `(#:skip-build? #t
        #:cargo-inputs (("rust-num" ,rust-num-0.2))))))
 
+(define-public rust-serde-big-array-0.3
+  (package
+    (name "rust-serde-big-array")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serde-big-array" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0qpy3nk3dpxrrmcfmcnsijad10yi0jxy1x6gc6bbwywma9vhxchq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1))
+       #:cargo-development-inputs
+       (("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/est31/serde-big-array")
+    (synopsis "Big array helper for serde")
+    (description "This package provides a big array helper for serde.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-serde-big-array-0.2
   (package
     (name "rust-serde-big-array")
@@ -42617,7 +47111,7 @@ framework.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-rmp-serde" ,rust-rmp-serde-0.14)
+       (("rust-rmp-serde" ,rust-rmp-serde-0.15)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-toml" ,rust-toml-0.5)
@@ -42640,7 +47134,7 @@ TOML/JSON/MessagePack strings and serializable values.")
       (origin
         (method url-fetch)
         (uri (crate-uri "serde-derive" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0ccg4m7ww6mfs5vjdbdifri2kf1wyd4difjnqnraph2gssaw54ck"))))
@@ -43107,6 +47601,31 @@ for later processing.")
        (("rust-ordered-float" ,rust-ordered-float-1)
         ("rust-serde" ,rust-serde-1))))))
 
+(define-public rust-serde-xml-rs-0.4
+  (package
+    (name "rust-serde-xml-rs")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serde-xml-rs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ykx1xkfd59gf0ijnp93xhpd457xy4zi8xv2hrr0ikvcd6h1pgzh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-xml-rs" ,rust-xml-rs-0.8))))
+    (home-page "https://github.com/RReverser/serde-xml-rs")
+    (synopsis "XML based deserializer for Serde")
+    (description
+     "This crate provides an XML based deserializer for Serde.")
+    (license license:expat)))
+
 (define-public rust-serde-yaml-0.8
   (package
     (name "rust-serde-yaml")
@@ -43337,7 +47856,7 @@ functionality and without weak references.")
        (("rust-libc" ,rust-libc-0.2)
         ("rust-servo-fontconfig-sys" ,rust-servo-fontconfig-sys-4))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("fontconfig" ,fontconfig)))))
 
@@ -43391,7 +47910,7 @@ functionality and without weak references.")
         ("rust-servo-freetype-sys" ,rust-servo-freetype-sys-4)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("fontconfig" ,fontconfig)))))
 
@@ -43417,9 +47936,9 @@ functionality and without weak references.")
        (("rust-cmake" ,rust-cmake-0.1)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("freetype" ,freetype)))
+     (list freetype))
     (home-page "https://www.freetype.org/")
     (synopsis "Rust wrapper around freetype")
     (description
@@ -43745,6 +48264,33 @@ functions core functionality.")
        (("rust-gcc" ,rust-gcc-0.3)
         ("rust-generic-array" ,rust-generic-array-0.8))))))
 
+(define-public rust-sha3-0.9
+  (package
+    (name "rust-sha3")
+    (version "0.9.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "sha3" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "02d85wpvz75a0n7r2da15ikqjwzamhii11qy9gqf6pafgm0rj4gq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-block-buffer" ,rust-block-buffer-0.9)
+        ("rust-digest" ,rust-digest-0.9)
+        ("rust-keccak" ,rust-keccak-0.1)
+        ("rust-opaque-debug" ,rust-opaque-debug-0.3))
+       #:cargo-development-inputs
+       (("rust-digest" ,rust-digest-0.9)
+        ("rust-hex-literal" ,rust-hex-literal-0.2))))
+    (home-page "https://github.com/RustCrypto/hashes")
+    (synopsis "SHA-3 (Keccak) hash function")
+    (description "This package provides a pure Rust implementation of the SHA-3
+(Keccak) hash function.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-shader-version-0.6
   (package
     (name "rust-shader-version")
@@ -43977,7 +48523,7 @@ some context).")
      (origin
        (method url-fetch)
        (uri (crate-uri "shlex" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0gf773p2snqpw69rzh8s1wdlq8dc8c1ypmiv516il1fdyb46i9a2"))))
     (build-system cargo-build-system)
@@ -43996,7 +48542,7 @@ words, like Python's shlex.")
       (origin
         (method url-fetch)
         (uri (crate-uri "shlex" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1lmv6san7g8dv6jdfp14m7bdczq9ss7j7bgsfqyqjc3jnjfippvz"))))
@@ -44011,14 +48557,14 @@ words, like Python's shlex.")
 (define-public rust-signal-hook-0.3
   (package
     (name "rust-signal-hook")
-    (version "0.3.4")
+    (version "0.3.10")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "signal-hook" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0h628smm9y22qi3szpkg3xpj31hyvs4ps29nf8cnfvy6w0zmw3vq"))))
+        (base32 "1lgg8rwyz97pqkpg4ii7iswvs5mx8sgg2pl2ahlil9vyfcfqk64w"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -44057,19 +48603,42 @@ words, like Python's shlex.")
        (("rust-tokio" ,rust-tokio-0.1)
         ("rust-version-sync" ,rust-version-sync-0.8))))))
 
+(define-public rust-signal-hook-mio-0.2
+  (package
+    (name "rust-signal-hook-mio")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "signal-hook-mio" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1m3yc37dxdq4ym0x7i2b9aqfnlhivwm7mvls0yzcbwn4y5kmiz99"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-mio" ,rust-mio-0.7)
+        ("rust-mio" ,rust-mio-0.6)
+        ("rust-mio-uds" ,rust-mio-uds-0.6)
+        ("rust-signal-hook" ,rust-signal-hook-0.3))))
+    (home-page "https://github.com/vorner/signal-hook")
+    (synopsis "MIO support for signal-hook")
+    (description "This crate provides MIO support for signal-hook.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-signal-hook-registry-1
   (package
     (name "rust-signal-hook-registry")
-    (version "1.3.0")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "signal-hook-registry" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "19hirq0h33jjyh505s8hf9q5dq0ky80ygivkl3vshjv0y7zd1w8n"))))
+        (base32 "1c2mhijg54y6c1zi4630yki1vpq3z96ljfnsrdy0rb64ilr767p5"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -44192,6 +48761,65 @@ facilitate the use of SIMD-based @dfn{Array of Struct of Array} (AoSoA) storage
 pattern in Rust.")
     (license license:bsd-3)))
 
+(define-public rust-simba-0.5
+  (package
+    (inherit rust-simba-0.1)
+    (name "rust-simba")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "simba" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0p1x1ndajy4j3dr9zbh79cz5k0hbj4p9bagd7cj00gc5aws0d0lf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-approx" ,rust-approx-0.5)
+        ("rust-cordic" ,rust-cordic-0.1)
+        ("rust-decimal" ,rust-decimal-2)
+        ("rust-fixed" ,rust-fixed-1)
+        ("rust-libm" ,rust-libm-0.2)
+        ("rust-num-complex" ,rust-num-complex-0.4)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-packed-simd-2" ,rust-packed-simd-2-0.3)
+        ("rust-paste" ,rust-paste-1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-wide" ,rust-wide-0.6))))
+    (license license:asl2.0)))
+
+(define-public rust-simba-0.4
+  (package
+    (inherit rust-simba-0.1)
+    (name "rust-simba")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "simba" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0k2zp645jby5s070agvqha3xqbc0gkkk3a4v7k8z724iamasjcji"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-approx" ,rust-approx-0.4)
+        ("rust-cordic" ,rust-cordic-0.1)
+        ("rust-decimal" ,rust-decimal-2)
+        ("rust-fixed" ,rust-fixed-1)
+        ("rust-libm" ,rust-libm-0.2)
+        ("rust-num-complex" ,rust-num-complex-0.3)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-packed-simd-2" ,rust-packed-simd-2-0.3)
+        ("rust-paste" ,rust-paste-1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-wide" ,rust-wide-0.6))))
+    (license license:asl2.0)))
+
 (define-public rust-simd-0.2
   (package
     (name "rust-simd")
@@ -44311,6 +48939,32 @@ extensions.")
     (description "This package provides a diff library for Rust.")
     (license license:asl2.0)))
 
+(define-public rust-simple-logger-1
+  (package
+    (name "rust-simple-logger")
+    (version "1.13.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "simple-logger" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "01wz5xjpski45xq8v1bg8g05flj5h1sl63aabl2c6kj0hz337pmp"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-atty" ,rust-atty-0.2)
+         ("rust-chrono" ,rust-chrono-0.4)
+         ("rust-colored" ,rust-colored-1)
+         ("rust-log" ,rust-log-0.4)
+         ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/borntyping/rust-simple_logger")
+    (synopsis "Logger with a readable output format")
+    (description
+      "This package provides a logger that prints all messages with
+a readable output format")
+    (license license:expat)))
+
 (define-public rust-simple-mutex-1
   (package
     (name "rust-simple-mutex")
@@ -44419,8 +49073,7 @@ variants in pure Rust.")
          "07ix5fsdnpf2xsb0k5rbiwlmsicm2237fcx7blirp9p7pljr5mhn"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:rust ,rust-1.52                ;requires the "if in const fn" feature
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-arbitrary" ,rust-arbitrary-1)
         ("rust-array-ops" ,rust-array-ops-0.1)
         ("rust-bitmaps" ,rust-bitmaps-2)
@@ -44492,7 +49145,7 @@ designed for @code{immutable.rs}.")
       (origin
         (method url-fetch)
         (uri (crate-uri "slab" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1y59xsa27jk84sxzswjk60xcjf8b4fm5960jwpznrrcmasyva4f1"))))
@@ -44517,6 +49170,27 @@ data type.")
         (base32 "08xw8w61zdfn1094qkq1d554vh5wmm9bqdys8gqqxc4sv2pgrd0p"))))
     (arguments `(#:skip-build? #t))))
 
+(define-public rust-path-slash-0.1
+  (package
+    (name "rust-path-slash")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "path-slash" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "06dnnmd3fvmr9ngwgj0xrfj9s8h09m9dgf3zlqsbalzk9wybpb1w"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/rhysd/path-slash")
+    (synopsis "Conversion to/from a file path from/to slash path")
+    (description
+     "Path-slash is a tiny library to convert a file path (e.g., @samp{foo/bar},
+@samp{foo\bar} or @samp{C:\foo\bar}) from or to slash path (e.g.,
+@samp{foo/bar}, @samp{C:/foo/bar}).")
+    (license license:expat)))
+
 ;; TODO: Unbundle sleef.
 (define-public rust-sleef-sys-0.1
   (package
@@ -45000,6 +49674,55 @@ control on the fields.")
 clone.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-snafu-derive-0.6
+  (package
+    (name "rust-snafu-derive")
+    (version "0.6.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "snafu-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0nri7ma06g5kimpcdcm8359a55nmps5f3kcngy0j6bin7jhfy20m"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/shepmaster/snafu")
+    (synopsis "Ergonomic error handling library")
+    (description "Snafu aims to be an ergonomic error handling library.  This
+package provides derive macros.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-snafu-0.6
+  (package
+    (name "rust-snafu")
+    (version "0.6.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "snafu" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19wwqxwb85pl040qk5xylj0vlznib3xzy9hcv2q0h8qv4qy2vcga"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-futures" ,rust-futures-0.1)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-pin-project" ,rust-pin-project-0.4)
+        ("rust-snafu-derive" ,rust-snafu-derive-0.6))))
+    (home-page "https://github.com/shepmaster/snafu")
+    (synopsis "Ergonomic error handling library")
+    (description "Snafu aims to be an ergonomic error handling library.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-snailquote-0.3
   (package
     (name "rust-snailquote")
@@ -45033,6 +49756,28 @@ More importantly, this library also provides the ability to un-escape a given
 escaped text to recover the original string.")
     (license license:gpl3)))
 
+(define-public rust-snake-case-0.3
+  (package
+    (name "rust-snake-case")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "snake-case" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1v4f132rk9wxiw8hb3kgnixirzr8kbfhg2lgsf4b85vbg02a0jfn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/emilk/snake_case")
+    (synopsis "String-like type that only contains non-empty snake_case")
+    (description
+     "This package provides a String-like type that can only contain valid
+non-empty snake_case.")
+    (license license:expat)))
+
 (define-public rust-snap-1
   (package
     (name "rust-snap")
@@ -45094,7 +49839,7 @@ maximal amount of configuration possible intended.")
      (origin
        (method url-fetch)
        (uri (crate-uri "socket2" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0vldz14mxqxnjqb6an2pj7mgclv7nrk45cpscwq7g3fj2c0mfbhj"))))
     (arguments
@@ -45141,7 +49886,7 @@ maximal amount of configuration possible intended.")
       (origin
         (method url-fetch)
         (uri (crate-uri "sourcefile" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1lwa6973zs4bgj29my7agfjgk4nw9hp6j7dfnr13nid85fw7rxsb"))))
@@ -45201,6 +49946,29 @@ track of where each new file and line starts.")
     (description "This package provides basic sourcemap handling for Rust.")
     (license license:bsd-3)))
 
+(define-public rust-special-0.8
+  (package
+    (name "rust-special")
+    (version "0.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "special" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0dknpky1bbl7xp4qwp3vjqjarfl846mk6irs2z7mvdsr843mx9i4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2))
+       #:cargo-development-inputs
+       (("rust-assert" ,rust-assert-0.7)
+        ("rust-random" ,rust-random-0.12))))
+    (home-page "https://github.com/stainless-steel/special")
+    (synopsis "Special functions")
+    (description "The package provides so-called special functions.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-speculate-0.1
   (package
     (name "rust-speculate")
@@ -45216,11 +49984,11 @@ track of where each new file and line starts.")
          "0ph01n3fqkmnfr1wd13dqsi4znv06xy6p4h3hqqdzk81r0r5vd1w"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f
        #:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-0.4)
-        ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-0.15)
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-syn" ,rust-syn-0.14)
         ("rust-unicode-xid" ,rust-unicode-xid-0.1))))
     (home-page "https://github.com/utkarshkukreti/speculate.rs")
     (synopsis "RSpec inspired testing framework for Rust")
@@ -45236,7 +50004,7 @@ track of where each new file and line starts.")
       (origin
         (method url-fetch)
         (uri (crate-uri "spin" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0b84m6dbzrwf2kxylnw82d3dr8w06av7rfkr8s85fb5f43rwyqvf"))))
@@ -45310,6 +50078,77 @@ ready.  This will probably use a lot of CPU, so be careful when you use it.")
 provided by @code{lock_api}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-spirv-types-0.4
+  (package
+    (name "rust-spirv-types")
+    (version "0.4.0-alpha.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "spirv-types" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0sxcic2n04xzywww3c7mj9ah8iwr20vz3d6xvsgla1y7gs7lpk3i"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/EmbarkStudios/rust-gpu")
+    (synopsis "SPIR-V types shared between spirv-std and spirv-std-macros")
+    (description "This package provides SPIR-V types shared between spirv-std
+and spirv-std-macros.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-spirv-std-macros-0.4
+  (package
+    (name "rust-spirv-std-macros")
+    (version "0.4.0-alpha.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "spirv-std-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19cc15vq9ybdap39qxpf4vsz5q6li21mzgv47zqbyj5vvwaqazi0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-heck" ,rust-heck-0.3)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-spirv-types" ,rust-spirv-types-0.4)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/EmbarkStudios/rust-gpu")
+    (synopsis "Macros for spirv-std")
+    (description "This package provides macros for spirv-std.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-spirv-std-0.4
+  (package
+    (name "rust-spirv-std")
+    ;; We use a slightly older version here, because of problems building glam
+    ;; 0.13.1 with more recent versions.
+    (version "0.4.0-alpha.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "spirv-std" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "14npd838bqnw09iab0zq94xs4yl69m6c0cdfzxa9fal0zxqlqv3j"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-spirv-std-macros" ,rust-spirv-std-macros-0.4)
+        ("rust-spirv-types" ,rust-spirv-types-0.4))))
+    (home-page "https://github.com/EmbarkStudios/rust-gpu")
+    (synopsis "Standard functions and types for SPIR-V")
+    (description "This package provides standard functions and types for
+SPIR-V.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-spmc-0.3
   (package
     (name "rust-spmc")
@@ -45331,6 +50170,45 @@ provided by @code{lock_api}.")
     (description "Simple SPMC channel")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-rspotify-0.10
+  (package
+    (name "rust-rspotify")
+    (version "0.10.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "rspotify" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "196wd157l3fn6hlyixgffhl2x516g4fpa3s91arhcikiifsppzgf"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-base64" ,rust-base64-0.10)
+         ("rust-chrono" ,rust-chrono-0.4)
+         ("rust-derive-builder" ,rust-derive-builder-0.7)
+         ("rust-dotenv" ,rust-dotenv-0.13)
+         ("rust-env-logger" ,rust-env-logger-0.6)
+         ("rust-failure" ,rust-failure-0.1)
+         ("rust-itertools" ,rust-itertools-0.8)
+         ("rust-lazy-static" ,rust-lazy-static-1)
+         ("rust-log" ,rust-log-0.4)
+         ("rust-percent-encoding" ,rust-percent-encoding-1)
+         ("rust-rand" ,rust-rand-0.6)
+         ("rust-random" ,rust-random-0.12)
+         ("rust-reqwest" ,rust-reqwest-0.10)
+         ("rust-serde" ,rust-serde-1)
+         ("rust-serde-derive" ,rust-serde-derive-1)
+         ("rust-serde-json" ,rust-serde-json-1)
+         ("rust-url" ,rust-url-1)
+         ("rust-webbrowser" ,rust-webbrowser-0.5))))
+    (home-page "https://github.com/ramsayleung/rspotify")
+    (synopsis "Spotify API wrapper")
+    (description "This package provides wrapper API forSpotify streaming
+service.")
+    (license license:expat)))
+
 (define-public rust-spsc-buffer-0.1
   (package
     (name "rust-spsc-buffer")
@@ -45408,7 +50286,7 @@ to the same address.")
       (origin
         (method url-fetch)
         (uri (crate-uri "stacker" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "12igajfgqz96c7vcwi91xdfsphawik6g36ndlglqih0a7bqw8vyr"))))
@@ -45475,6 +50353,31 @@ deeply recursive algorithms that may accidentally blow the stack.")
     (description "New standard library, old compiler.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-starship-module-config-derive-0.2
+  (package
+    (name "rust-starship-module-config-derive")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "starship_module_config_derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "09327jvaf2b4xwg0s8l3afrrg140illa0ff6wkwfi4i8pl7dpacp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://starship.rs")
+    (synopsis "Minimal, fast and customizable prompt for any shell")
+    (description
+     "This crate provides a minimal, fast, and customizable prompt for any
+shell.")
+    (license license:isc)))
+
 (define-public rust-state-0.4
   (package
     (name "rust-state")
@@ -45506,7 +50409,7 @@ management.")
       (origin
         (method url-fetch)
         (uri (crate-uri "static-assertions" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0gsl6xmw10gvn3zs1rv99laj5ig7ylffnh71f9l34js4nr4r7sx2"))))
@@ -45527,7 +50430,7 @@ are met.")
       (origin
         (method url-fetch)
         (uri (crate-uri "static-assertions" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1lw33i89888yb3x29c6dv4mrkg3534n0rlg3r7qzh4p58xmv6gkz"))))))
@@ -45580,6 +50483,88 @@ map.")
     (description "This package provides a simple statistics library.")
     (license license:expat)))
 
+(define-public rust-statrs-0.14
+  (package
+    (name "rust-statrs")
+    (version "0.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "statrs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1bdff4rsghp9hj5i5ynl6iw3pyzprd65cbf8ihmgvyv190a1y30y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'configure 'patch-Cargo.toml
+           (lambda _
+             (substitute* '("Cargo.toml"
+                            "guix-vendor/rust-average-0.13.1.tar.gz/Cargo.toml"
+                            "guix-vendor/rust-nalgebra-0.26.2.tar.gz/Cargo.toml")
+               ;; The resolver feature is not supported by this version of Cargo.
+               (("resolver = \"2\".*") "")))))
+       #:cargo-inputs
+       (("rust-approx" ,rust-approx-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-nalgebra" ,rust-nalgebra-0.26)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rand" ,rust-rand-0.8))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3))))
+    (home-page "https://github.com/statrs-dev/statrs")
+    (synopsis "Statistical computing library for Rust")
+    (description "This package provides a statistical computing library for
+Rust.")
+    (license license:expat)))
+
+(define-public rust-statrs-0.13
+  (package
+    (name "rust-statrs")
+    (version "0.13.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "statrs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0r00b60zlsn6srb6m6bzbw3w5cyihcy4w2rfjav64x4viy5bad0y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-nalgebra" ,rust-nalgebra-0.19)
+        ("rust-rand" ,rust-rand-0.7))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3))))
+    (home-page "https://github.com/statrs-dev/statrs")
+    (synopsis "Statistical computing library for Rust")
+    (description "This package provides a statistical computing library for
+Rust.")
+    (license license:expat)))
+
+(define-public rust-statrs-0.12
+  (package
+    (name "rust-statrs")
+    (version "0.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "statrs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "10hk9194ig21w08947yavf4l97g0106ph4xxlzn8ps2kwrnnzqfc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-rand" ,rust-rand-0.7))))
+    (home-page "https://github.com/statrs-dev/statrs")
+    (synopsis "Statistical computing library for Rust")
+    (description "This package provides a statistical computing library for
+Rust.")
+    (license license:expat)))
+
 (define-public rust-stb-truetype-0.3
   (package
     (name "rust-stb-truetype")
@@ -45630,6 +50615,32 @@ in @code{stb_truetype.h} from C to Rust.")
 codebase.")
     (license license:expat)))
 
+(define-public rust-stderrlog-0.4
+  (package
+    (name "rust-stderrlog")
+    (version "0.4.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "stderrlog" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "09bzvmx2lzyycr1xfcvfwnvqsjg9kb4w22hb19bjqid5j2dyxr9j"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-atty" ,rust-atty-0.2.11)
+         ("rust-chrono" ,rust-chrono-0.4)
+         ("rust-log" ,rust-log-0.4)
+         ("rust-termcolor" ,rust-termcolor-1)
+         ("rust-thread-local" ,rust-thread-local-0.3.4))))
+    (home-page "https://github.com/cardoe/stderrlog-rs")
+    (synopsis "Logger that logs to stderr")
+    (description "This package provides logger that logs to stderr based
+on verbosity specified")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-stdweb-0.4
   (package
     (name "rust-stdweb")
@@ -45738,7 +50749,7 @@ you to define custom reference types outside of the @code{stdweb} library.")
       (origin
         (method url-fetch)
         (uri (crate-uri "stdweb-internal-runtime" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1h0nkppb4r8dbrbms2hw9n5xdcs392m0r5hj3b6lsx3h6fx02dr1"))))
@@ -45758,7 +50769,7 @@ crate.")
       (origin
         (method url-fetch)
         (uri (crate-uri "stdweb-internal-test-macro" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0wx3jlm98qrg1pdw149fprzs9x3x3igqkm5ll23jv2v62yddfrjf"))))
@@ -45869,6 +50880,29 @@ UTF-8.")
        (("rust-blobby" ,rust-blobby-0.1)
         ("rust-generic-array" ,rust-generic-array-0.13))))))
 
+(define-public rust-streaming-iterator-0.1
+  (package
+    (name "rust-streaming-iterator")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "streaming-iterator" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1xc1gyq137b020m29g85zdhbbdrksdmhf3dq4ri4fjlrfz0kacih"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/sfackler/streaming-iterator")
+    (synopsis "Streaming iterators")
+    (description "The iterator APIs in the Rust standard library do not allow
+elements to be yielded which borrow from the iterator itself.  That means, for
+example, that the @code{std::io::Lines} iterator must allocate a new
+@code{String} for each line rather than reusing an internal buffer.  The
+@code{StreamingIterator} trait instead provides access to elements being
+iterated over only by reference rather than by value.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-streaming-stats-0.2
   (package
     (name "rust-streaming-stats")
@@ -45877,7 +50911,7 @@ UTF-8.")
       (origin
         (method url-fetch)
         (uri (crate-uri "streaming-stats" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0iz5dlq51w5hxjrv6a4hpf8rrj91kgvy0s9mhj0j12il9v771mmh"))))
@@ -45920,6 +50954,30 @@ UTF-8.")
      "This package provides a streebog (GOST R 34.11-2012) hash function.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-strength-reduce-0.2
+  (package
+    (name "rust-strength-reduce")
+    (version "0.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "strength_reduce" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0m12phq654mfxpmh2h5akqkag5ha6nlhjc2bp9jwarr5r1qjzzx3"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "http://github.com/ejmahler/strength_reduce")
+    (synopsis "Faster integer division and modulus operations")
+    (description "Strength_reduce implements integer division and modulo via
+@dfn{arithmetic strength reduction}.  Modern processors can do multiplication
+and shifts much faster than division, and arithmetic strength reduction is an
+algorithm to transform divisions into multiplications and shifts.  Compilers
+already perform this optimization for divisors that are known at compile time;
+this library enables this optimization for divisors that are only known at
+runtime.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-string-0.2
   (package
     (name "rust-string")
@@ -46091,19 +51149,19 @@ as defined in RFC 3454.")
 (define-public rust-strip-ansi-escapes-0.1
   (package
     (name "rust-strip-ansi-escapes")
-    (version "0.1.0")
+    (version "0.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "strip-ansi-escapes" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1vmc6cwxsvp02b17b6x42mnnnn5vlc1dqbcqc2a71yms59p6fqwx"))))
+        (base32 "1n36ly9vxb1wr5q76i7995xr7c0pb1pc8g7a3a3n47vwrwwvn701"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-vte" ,rust-vte-0.3))))
+       (("rust-vte" ,rust-vte-0.10))))
     (home-page "https://github.com/luser/strip-ansi-escapes")
     (synopsis "Strip ANSI escape sequences from byte streams")
     (description
@@ -46114,6 +51172,60 @@ and write it somewhere that does not easily support them, such as a log
 file.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-strong-xml-0.6
+  (package
+    (name "rust-strong-xml")
+    (version "0.6.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "strong-xml" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1gxy34j42x5a572cfkkhmxamrm764pswj5r3wcwi0bwfc4xgn68x"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-jetscii" ,rust-jetscii-0.5)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-strong-xml-derive"
+         ,rust-strong-xml-derive-0.6)
+        ("rust-xmlparser" ,rust-xmlparser-0.13))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.8))))
+    (home-page "https://github.com/PoiScript/strong-xml")
+    (synopsis "Strong typed xml")
+    (description
+     "This package provides a strong typed XML parser, based on xmlparser.")
+    (license license:expat)))
+
+(define-public rust-strong-xml-derive-0.6
+  (package
+    (name "rust-strong-xml-derive")
+    (version "0.6.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "strong-xml-derive" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1qf7smxaaglj7p9fs0csd0cyvwcy30w96pdy2aqi65ijk7s83iwj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/PoiScript/strong-xml")
+    (synopsis "Strong typed XML")
+    (description
+     "This package provides a strong typed XML parser, based on xmlparser.")
+    (license license:expat)))
+
 (define-public rust-strsim-0.10
   (package
     (name "rust-strsim")
@@ -46144,7 +51256,7 @@ and Jaro-Winkler.")
      (origin
        (method url-fetch)
        (uri (crate-uri "strsim" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
          "0k497pv882qn3q977ckznm13vxx927g8s1swvcv68j3c1pccwik4"))))))
@@ -46158,7 +51270,7 @@ and Jaro-Winkler.")
       (origin
         (method url-fetch)
         (uri (crate-uri "strsim" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0sjsm7hrvjdifz661pjxq5w4hf190hx53fra8dfvamacvff139cf"))))))
@@ -46312,22 +51424,22 @@ struct.")
      "Parse command line argument by defining a struct, derive crate.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-strum-0.20
+(define-public rust-strum-0.21
   (package
     (name "rust-strum")
-    (version "0.20.0")
+    (version "0.21.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "strum" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0p5cslmdnz261kiwmm4h7qsmv9bh83r0f9lq6f2z2mxsnl4wa63k"))))
+        (base32 "1qnd2by1zrwgx7li0hmwy7jbzjwz1ky697qjg85nga8zzny6py5a"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-strum-macros" ,rust-strum-macros-0.20))))
+       (("rust-strum-macros" ,rust-strum-macros-0.21))))
     (home-page "https://github.com/Peternator7/strum")
     (synopsis "Set of traits for working with enums and strings")
     (description
@@ -46335,6 +51447,23 @@ struct.")
 easier in Rust.")
     (license license:expat)))
 
+(define-public rust-strum-0.20
+  (package
+    (inherit rust-strum-0.21)
+    (name "rust-strum")
+    (version "0.20.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "strum" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0p5cslmdnz261kiwmm4h7qsmv9bh83r0f9lq6f2z2mxsnl4wa63k"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-strum-macros" ,rust-strum-macros-0.20))))))
+
 (define-public rust-strum-0.19
   (package
     (inherit rust-strum-0.20)
@@ -46369,17 +51498,17 @@ easier in Rust.")
      `(#:cargo-inputs
        (("rust-strum-macros" ,rust-strum-macros-0.18))))))
 
-(define-public rust-strum-macros-0.20
+(define-public rust-strum-macros-0.21
   (package
     (name "rust-strum-macros")
-    (version "0.20.1")
+    (version "0.21.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "strum_macros" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0j9ikvxlqzr667ghc045qkpwprjgcfmzgagln7maw4jigawcd2zf"))))
+        (base32 "1v55b1in7dn07s6vxr8dajqpvxkxjbfq6qamnjgcbnq9x3pawsnh"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -46394,6 +51523,26 @@ easier in Rust.")
      "This crate provides helpful macros for working with enums and strings.")
     (license license:expat)))
 
+(define-public rust-strum-macros-0.20
+  (package
+    (inherit rust-strum-macros-0.21)
+    (name "rust-strum-macros")
+    (version "0.20.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "strum_macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0j9ikvxlqzr667ghc045qkpwprjgcfmzgagln7maw4jigawcd2zf"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-heck" ,rust-heck-0.3)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))))
+
 (define-public rust-strum-macros-0.19
   (package
     (inherit rust-strum-macros-0.20)
@@ -46533,6 +51682,25 @@ cryptographic implementations.")
 alike.  It's completely modular, and built directly for @code{async/await}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-supercow-0.1
+  (package
+    (name "rust-supercow")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "supercow" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0qxxk2z4pa7ni17bdhix9syhax0nnnpbjjpsinkhd8vsnknmh5qp"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/altsysrq/supercow")
+    (synopsis "Generic way to accept general reference-like values")
+    (description
+     "This package provides a generic way to accept general reference-like
+values without proliferating generics.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-surf-1
   (package
     (inherit rust-surf-2)
@@ -46696,6 +51864,51 @@ alike.  It's completely modular, and built directly for @code{async/await}.")
         ("rust-syn" ,rust-syn-1)
         ("rust-quote" ,rust-quote-1))))))
 
+(define-public rust-swayipc-2
+  (package
+    (name "rust-swayipc")
+    (version "2.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "swayipc" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "03r15c2sijyrxmpsyjgma4gz7zmdl1g8akjnjkw6hrml91d5dilj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ; test sync::tests::connect ... FAILED
+       #:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-async-std" ,rust-async-std-1)
+        ("rust-swayipc-command-builder" ,rust-swayipc-command-builder-0.1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/jaycefayne/swayipc-rs")
+    (synopsis "Library for controlling sway through its IPC interface")
+    (description
+     "This package provides a library for controlling sway through its IPC
+interface.")
+    (license license:expat)))
+
+(define-public rust-swayipc-command-builder-0.1
+  (package
+    (name "rust-swayipc-command-builder")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "swayipc-command-builder" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1w7sjl05c7rpgskk11i5969mv8pdbh0qrkp8djvy46hk9df9qig7"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/jaycefayne/swayipc-command-builder")
+    (synopsis "Library for building commands that can be executed by swayipc")
+    (description
+     "This package provides a library for building commands that can be
+executed by swayipc.")
+    (license license:expat)))
+
 (define-public rust-swc-1
   (package
     (name "rust-swc")
@@ -47065,7 +52278,7 @@ a syntax tree of Rust source code.")
       (origin
         (method url-fetch)
         (uri (crate-uri "synstructure_test_traits" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1b3fs2b9kc1gy9dilaxqjbdl4z0mlrbbxjzkprdx953rif1c3q66"))))
@@ -47336,7 +52549,7 @@ no_std compatible by default, only relying on alloc.")
         ("rust-seccomp-sys" ,rust-seccomp-sys-0.1)
         ("rust-strum" ,rust-strum-0.19)
         ("rust-strum-macros" ,rust-strum-macros-0.19))))
-    (inputs `(("libseccomp" ,libseccomp)))
+    (inputs (list libseccomp))
     (home-page "https://github.com/kpcyrd/syscallz-rs")
     (synopsis "Simple seccomp library for rust")
     (description "Simple seccomp library for rust")
@@ -47649,7 +52862,7 @@ without a mutable reference.")
       (origin
         (method url-fetch)
         (uri (crate-uri "tar" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1lr6v3cpkfxd2lk5ll2jd8wr1xdskwj35smnh5sfb8xvzzxnn6dk"))))
@@ -47723,30 +52936,29 @@ memory all at once.")
       "Targeting utilities for compilers and related tools")
     (license license:asl2.0)))
 
-(define-public rust-tectonic-bridge-core-0.2
+(define-public rust-tectonic-bridge-core-0.3
   (package
     (name "rust-tectonic-bridge-core")
-    (version "0.2.0")
+    (version "0.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tectonic_bridge_core" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1728hdynpkc1hmaaslci0wijqni240f8mmclf8sw6nkkfbygk8zk"))))
+        (base32 "0wdc6w0nwqgpsaja55vbx7n7329cbdyqwfqaxpcdfpsf2gfz1s31"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-cbindgen" ,rust-cbindgen-0.16)
-        ("rust-cc" ,rust-cc-1)
+       (("rust-cc" ,rust-cc-1)
         ("rust-flate2" ,rust-flate2-1)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-md-5" ,rust-md-5-0.9)
         ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
         ("rust-tectonic-io-base" ,rust-tectonic-io-base-0.3)
-        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.1))))
+        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.2))))
     (home-page "https://tectonic-typesetting.github.io/")
     (synopsis "Expose core backend APIs to the Tectonic C/C++ code")
     (description
@@ -47757,7 +52969,7 @@ the various C/C++ ``engines`` implementing the TeX software.")
 
 (define-public rust-tectonic-bridge-core-0.1
   (package
-    (inherit rust-tectonic-bridge-core-0.2)
+    (inherit rust-tectonic-bridge-core-0.3)
     (name "rust-tectonic-bridge-core")
     (version "0.1.0")
     (source
@@ -47905,17 +53117,17 @@ bindings.")
 bindings.")
     (license license:expat)))
 
-(define-public rust-tectonic-bundles-0.1
+(define-public rust-tectonic-bundles-0.2
   (package
     (name "rust-tectonic-bundles")
-    (version "0.1.0")
+    (version "0.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tectonic_bundles" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "05x852w73d0gy9dmg69cl6ch3r2qfh4czai44nkbm6ykn190q2lc"))))
+        (base32 "17wwgfcl5nzvgzil7ayi42ljjkx9ffv4c35v6ywcmzdhk9zhki2f"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -47923,9 +53135,9 @@ bindings.")
        (("rust-flate2" ,rust-flate2-1)
         ("rust-fs2" ,rust-fs2-0.4)
         ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
-        ("rust-tectonic-geturl" ,rust-tectonic-geturl-0.2)
+        ("rust-tectonic-geturl" ,rust-tectonic-geturl-0.3)
         ("rust-tectonic-io-base" ,rust-tectonic-io-base-0.3)
-        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.1)
+        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.2)
         ("rust-zip" ,rust-zip-0.5))))
     (home-page "https://tectonic-typesetting.github.io/")
     (synopsis "Tectonic ``bundle'' (support file collection) implementations")
@@ -48139,17 +53351,17 @@ error type and utilities.")
        #:cargo-inputs
        (("rust-anyhow" ,rust-anyhow-1))))))
 
-(define-public rust-tectonic-geturl-0.2
+(define-public rust-tectonic-geturl-0.3
   (package
     (name "rust-tectonic-geturl")
-    (version "0.2.0")
+    (version "0.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tectonic_geturl" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0rwndw6ixwpflrhcvn5mcshpk6gd3b1ihghp6xxsr3dgw59ad1z2"))))
+        (base32 "0ifgqhqipb2mpd80crzc40nlri4iv5dxhf7kja8wqaqrpgw364vr"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -48158,7 +53370,7 @@ error type and utilities.")
         ("rust-curl" ,rust-curl-0.4)
         ("rust-reqwest" ,rust-reqwest-0.11)
         ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
-        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.1))))
+        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.2))))
     (home-page
      "https://tectonic-typesetting.github.io/")
     (synopsis "Interface for HTTP GETs and byte-range requests")
@@ -48241,9 +53453,9 @@ streams.")
         ("rust-tectonic-cfg-support" ,rust-tectonic-cfg-support-0.1)
         ("rust-tectonic-dep-support" ,rust-tectonic-dep-support-0.1))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libpng" ,libpng)))
+     (list libpng))
     (home-page "https://tectonic-typesetting.github.io/")
     (synopsis "Xdvipdfmx's PDF, XDV, and image I/O APIs in C, as a Rust crate")
     (description
@@ -48354,7 +53566,7 @@ a C API.")
       (origin
         (method url-fetch)
         (uri (crate-uri "tempdir" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1n5n86zxpgd85y0mswrp5cfdisizq2rv3la906g6ipyc03xvbwhm"))))
@@ -48379,7 +53591,7 @@ deleting all contents when it's dropped.")
      (origin
        (method url-fetch)
        (uri (crate-uri "tempfile" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "08pbf3c1i42382dc44dil5bgiawcsi0qk6zdibw10f69rxiwdhfs"))))
     (build-system cargo-build-system)
@@ -48560,7 +53772,7 @@ template language.")
       (origin
         (method url-fetch)
         (uri (crate-uri "term" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1wbh8ngqkqr3f6wz902yplf60bd5yapnckvrkgmzp5nffi7n8qzs"))))
@@ -48578,7 +53790,7 @@ template language.")
       (origin
         (method url-fetch)
         (uri (crate-uri "term" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32 "109jmzddq1kz6wm2ndgddy7yrlqcw2i36ygxl0fcymc0sda7w1zj"))))
     (arguments
@@ -48683,7 +53895,7 @@ library.")
      (origin
        (method url-fetch)
        (uri (crate-uri "termcolor" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1x65i1ny4m6z1by62ra6wdcrd557p2ysm866x0pg60zby2cxizid"))))
     (build-system cargo-build-system)
@@ -48792,7 +54004,7 @@ writing colored text to a terminal.")
       (origin
         (method url-fetch)
         (uri (crate-uri "termion" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "01f9787d5nx445bqbj644v38bn0hl2swwjy9baz0dnbqi6fyqb62"))))
@@ -48818,7 +54030,7 @@ writing colored text to a terminal.")
       (origin
         (method url-fetch)
         (uri (crate-uri "termios" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "09any1p4jp4bphvb5ikagnvwjc3xn2djchy96nkpa782xb2j1dkj"))))
@@ -49121,7 +54333,7 @@ handle Unicode characters correctly.")
       (origin
         (method url-fetch)
         (uri (crate-uri "thread-id" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1h90v19fjz3x9b25ywh68z5yf2zsmm6h5zb4rl302ckbsp4z9yy7"))))
@@ -49166,7 +54378,7 @@ different for every thread.")
      (origin
        (method url-fetch)
        (uri (crate-uri "thread_local" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1gccp3grndpi6dyhzylz4hkqnkzc1xyri98n0xwwhnn90i7d4640"))))
     (build-system cargo-build-system)
@@ -49190,7 +54402,7 @@ different for every thread.")
       (origin
         (method url-fetch)
         (uri (crate-uri "thread_local" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "06rzik99p8c5js8238yhc8rk6np543ylb1dy9nrw5v80j0r3xdf6"))))
@@ -49198,6 +54410,25 @@ different for every thread.")
      `(#:skip-build? #t
        #:cargo-inputs (("rust-lazy-static" ,rust-lazy-static-1))))))
 
+(define-public rust-thread-local-0.3.4
+  (package
+    (inherit rust-thread-local-0.3)
+    (name "rust-thread-local")
+    (version "0.3.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "thread_local" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "055vj0ddb6vh0zaqdlxssfqzzpgs4ll5l5j7nqvabdzfgasw95qn"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-lazy-static" ,rust-lazy-static-0.2)
+         ("rust-unreachable" ,rust-unreachable-1))))))
+
 (define-public rust-thread-local-0.2
   (package
     (inherit rust-thread-local-0.3)
@@ -49249,7 +54480,7 @@ contention between workers when delivering jobs.")
       (origin
         (method url-fetch)
         (uri (crate-uri "threadpool" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0rd89n1q7vy47w4c32cnynibffv9kj3jy3dwr0536n9lbw5ckw72"))))
@@ -49310,15 +54541,42 @@ fixed set of worker threads.")
        (("rust-libc" ,rust-libc-0.2)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libsodium" ,libsodium)))
+     (list libsodium))
     (home-page "https://nest.pijul.com/pijul_org/thrussh")
     (synopsis "Straightforward bindings to libsodium")
     (description
      "You can bind to libsodium from Rust with this crate.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-tiger-0.1
+  (package
+    (name "rust-tiger")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tiger" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "01bhc7h8kxc5kjqx9sqrb3g8h4f9av6hpxzyihjq7pprphf56gj4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-block-buffer" ,rust-block-buffer-0.9)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-digest" ,rust-digest-0.9))
+       #:cargo-development-inputs
+       (("rust-digest" ,rust-digest-0.9)
+        ("rust-hex-literal" ,rust-hex-literal-0.2))))
+    (home-page "https://github.com/RustCrypto/hashes")
+    (synopsis "Tiger hash function")
+    (description
+     "This package provides the Tiger cryptographic hash function.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-tikv-jemalloc-sys-0.4
   (package
     (name "rust-tikv-jemalloc-sys")
@@ -49448,7 +54706,7 @@ interoperable with the standard library, and is mostly compatible with
       (origin
         (method url-fetch)
         (uri (crate-uri "time" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0f14wrgxj7ya2v4msg5mni7046bsm2angm7cn3pd3yv04gpm12na"))))
@@ -49609,8 +54867,38 @@ closures after a delay or at a given timestamp.")
 manipulation in Rust.")
     (license license:expat)))
 
+(define-public rust-tiny-http-0.8
+  (package
+    (name "rust-tiny-http")
+    (version "0.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tiny-http" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0fcdwpb2ghk671qjjrk6048hs3yp7f681hxpr68gamk00181prcw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ascii" ,rust-ascii-1)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-chunked-transfer" ,rust-chunked-transfer-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-fdlimit" ,rust-fdlimit-0.1)
+        ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
+        ("rust-sha1" ,rust-sha1-0.6))))
+    (home-page "https://github.com/tiny-http/tiny-http")
+    (synopsis "Low level HTTP server library")
+    (description "This package provides a low level HTTP server library.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-tiny-http-0.6
   (package
+    (inherit rust-tiny-http-0.8)
     (name "rust-tiny-http")
     (version "0.6.2")
     (source
@@ -49620,7 +54908,6 @@ manipulation in Rust.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0la95daknfh8g951ddb2zdz6av2459rncp6h9dh02pf98h5glq8n"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -49629,11 +54916,7 @@ manipulation in Rust.")
         ("rust-chunked-transfer" ,rust-chunked-transfer-0.3)
         ("rust-log" ,rust-log-0.4)
         ("rust-openssl" ,rust-openssl-0.10)
-        ("rust-url" ,rust-url-1))))
-    (home-page "https://github.com/tiny-http/tiny-http")
-    (synopsis "Low level HTTP server library")
-    (description "This package provides a low level HTTP server library.")
-    (license license:asl2.0)))
+        ("rust-url" ,rust-url-1))))))
 
 (define-public rust-tiny-keccak-2
   (package
@@ -49772,10 +55055,10 @@ to a style defined by John Gruber for post titles on his website ``Daring
 Fireball''.")
     (license license:expat)))
 
-(define-public rust-tokio-1
+(define-public rust-tokio-1.8
   (package
     (name "rust-tokio")
-    (version "1.2.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
@@ -49783,13 +55066,12 @@ Fireball''.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0fmfykdp29hjq5264mp6sa4c0wp5mlimbi0dd9mrxsk5qq20s6g8"))))
+         "1m18rs51wz6s7dwdwzr0j63kh815x4dx9k0f2c485crs7fqjw32p"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-autocfg" ,rust-autocfg-1)
-        ("rust-bytes" ,rust-bytes-1)
+       (("rust-bytes" ,rust-bytes-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-memchr" ,rust-memchr-2)
         ("rust-mio" ,rust-mio-0.7)
@@ -49800,7 +55082,16 @@ Fireball''.")
         ("rust-signal-hook-registry" ,rust-signal-hook-registry-1)
         ("rust-tokio-macros" ,rust-tokio-macros-1)
         ("rust-tracing" ,rust-tracing-0.1)
-        ("rust-winapi" ,rust-winapi-0.3))))
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-async-stream" ,rust-async-stream-0.3)
+        ("rust-autocfg" ,rust-autocfg-1)
+        ("rust-nix" ,rust-nix-0.19)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-sokcet2-0.4" ,rust-socket2-0.4)
+        ("rust-tokio-stream" ,rust-tokio-stream-0.1)
+        ("rust-tokio-test" ,rust-tokio-test-0.4))))
     (home-page "https://tokio.rs")
     (synopsis "Event-driven, non-blocking I/O platform")
     (description
@@ -49808,6 +55099,36 @@ Fireball''.")
 writing asynchronous I/O backed applications.")
     (license license:expat)))
 
+(define-public rust-tokio-1
+  (package
+    (inherit rust-tokio-1.8)
+    (name "rust-tokio")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fmfykdp29hjq5264mp6sa4c0wp5mlimbi0dd9mrxsk5qq20s6g8"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-bytes" ,rust-bytes-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-mio" ,rust-mio-0.7)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
+        ("rust-signal-hook-registry" ,rust-signal-hook-registry-1)
+        ("rust-tokio-macros" ,rust-tokio-macros-1)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-winapi" ,rust-winapi-0.3))))))
+
 (define-public rust-tokio-0.3
   (package
     (inherit rust-tokio-1)
@@ -50277,7 +55598,7 @@ futures efficiently")
       (origin
         (method url-fetch)
         (uri (crate-uri "tokio-mock-task" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1y7q83qfk9ljjfvs82b453pmz9x1v3d6kr4x55j8mal01s6790dw"))))
@@ -50475,9 +55796,9 @@ OpenSSL.")
        (("rust-futures" ,rust-futures-0.3)
         ("rust-tokio" ,rust-tokio-0.2))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("openssl" ,openssl)))))
+     (list openssl))))
 
 (define-public rust-tokio-openssl-0.3
   (package
@@ -51239,9 +56560,9 @@ pool.")
         ("rust-tokio-util" ,rust-tokio-util-0.3)
         ("rust-winapi" ,rust-winapi-0.3))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (home-page "https://tokio.rs")
     (synopsis "TLS/SSL streams for Tokio")
     (description "An implementation of TLS/SSL streams for Tokio giving an
@@ -51505,7 +56826,7 @@ stream-based WebSocket implementation.")
       (origin
         (method url-fetch)
         (uri (crate-uri "toml" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1apcmjrrjw429pjw7mqlmdwwd67g8305vwqy4kw3swr612bl44d3"))))
@@ -51678,17 +56999,18 @@ server @code{Service} tests.")
     (description "This package provides utilities for working with
 @code{Service}.")
     (license license:expat)))
+
 (define-public rust-tracing-0.1
   (package
     (name "rust-tracing")
-    (version "0.1.22")
+    (version "0.1.23")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tracing" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1qzg7rcfby8f2nn1ln3gk6fjc80q0bg8fw5k95zc1020vin04iwz"))))
+        (base32 "1ww7akgck54yc9a2yrl7qnvqpqgwiz6ab2cd1lq377h2zli0mm7p"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -51712,7 +57034,7 @@ programs to collect structured, event-based diagnostic information.")
 (define-public rust-tracing-attributes-0.1
   (package
     (name "rust-tracing-attributes")
-    (version "0.1.11")
+    (version "0.1.12")
     (source
      (origin
        (method url-fetch)
@@ -51720,7 +57042,7 @@ programs to collect structured, event-based diagnostic information.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1njady03jycfarjbmbhnrpsl6s9pd9knp50c4z70rnkq6gycrq40"))))
+         "0iwzcbcrkyn7bnhdnzp4lanw3md2dx15jr3nyi7881s1gvm81w23"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -51747,7 +57069,7 @@ automatically instrumenting functions.")
      (origin
        (method url-fetch)
        (uri (crate-uri "tracing-core" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0pvbgv301vw6dq4krc14yqbyyixb42lcs4s57xw05llkgy9f63gm"))))
     (build-system cargo-build-system)
@@ -52068,7 +57390,7 @@ be used directly.  See @code{rust-trackable} for more information.")
       (origin
         (method url-fetch)
         (uri (crate-uri "traitobject" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0yb0n8822mr59j200fyr2fxgzzgqljyxflx9y8bdy3rlaqngilgg"))))
@@ -52102,6 +57424,38 @@ be used directly.  See @code{rust-trackable} for more information.")
 recycle bin.")
     (license license:expat)))
 
+(define-public rust-tree-magic-0.2
+  (package
+    (name "rust-tree-magic")
+    (version "0.2.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "tree_magic" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "0adndj775gjcvkf7yxdfj3pl39fcdiibswwgff23lm9yrrkr7ndi"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build?
+        #t
+        #:cargo-inputs
+        (("rust-clap" ,rust-clap-2)
+         ("rust-fnv" ,rust-fnv-1)
+         ("rust-lazy-static" ,rust-lazy-static-1)
+         ("rust-nom" ,rust-nom-3)
+         ("rust-num-cpus" ,rust-num-cpus-1)
+         ("rust-parking-lot" ,rust-parking-lot-0.10)
+         ("rust-petgraph" ,rust-petgraph-0.5)
+         ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
+         ("rust-tabwriter" ,rust-tabwriter-1)
+         ("rust-walkdir" ,rust-walkdir-2))))
+    (home-page "https://github.com/aahancoc/tree_magic/")
+    (synopsis "Determines the MIME type")
+    (description "This package determines the MIME type of a file by
+traversing a filetype tree.")
+    (license license:expat)))
+
 (define-public rust-treeline-0.1
   (package
     (name "rust-treeline")
@@ -52122,6 +57476,40 @@ recycle bin.")
      "This package provides a library for visualizing tree structured data.")
     (license license:expat)))
 
+(define-public rust-triple-accel-0.4
+  (package
+    (name "rust-triple-accel")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "triple_accel" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0qqyhl1pdvmfbx9fgw5jc15j42d0j1i7b6pzn42zsbzvbp4qn112"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/Daniel-Liu-c0deb0t/triple_accel")
+    (synopsis "Edit distance routines accelerated using SIMD")
+    (description
+     "This package provides Rust edit distance routines accelerated using
+SIMD.  It supports fast Hamming, Levenshtein, restricted Damerau-Levenshtein,
+etc. distance calculations and string search.")
+    (license license:expat)))
+
+(define-public rust-triple-accel-0.3
+  (package
+    (inherit rust-triple-accel-0.4)
+    (name "rust-triple-accel")
+    (version "0.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "triple_accel" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0v795l496crk3h6yff9zh1cjyrh5s9v23fbgccc4dpz25z70jav2"))))))
+
 (define-public rust-trust-dns-https-0.20
   (package
     (name "rust-trust-dns-https")
@@ -52314,9 +57702,9 @@ extension for the Trust-DNS client to use native-tls for TLS.")
         ("rust-tokio-tls" ,rust-tokio-tls-0.3)
         ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.19))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("openssl" ,openssl)))))
+     (list openssl))))
 
 (define-public rust-trust-dns-native-tls-0.18
   (package
@@ -52414,9 +57802,9 @@ extension for the Trust-DNS client to use tokio-openssl for TLS.")
        (("rust-openssl" ,rust-openssl-0.10)
         ("rust-tokio" ,rust-tokio-0.2))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("openssl" ,openssl)))))
+     (list openssl))))
 
 (define-public rust-trust-dns-openssl-0.18
   (package
@@ -52844,9 +58232,9 @@ the Trust-DNS client to use rustls for TLS.")
        #:cargo-development-inputs
        (("rust-openssl" ,rust-openssl-0.10))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("openssl" ,openssl)))))
+     (list openssl))))
 
 (define-public rust-trust-dns-rustls-0.18
   (package
@@ -52889,9 +58277,9 @@ the Trust-DNS client to use rustls for TLS.")
         (base32
          "0vbh2y7w2s5gcw33fn4hb5f927kgjm6603vw63slg9riikmsiq43"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (arguments
      `(#:cargo-test-flags
        '("--release" "--" "--skip=tests::test_tls_client_stream_ipv4")
@@ -52915,7 +58303,7 @@ the Trust-DNS client to use rustls for TLS.")
      (origin
        (method url-fetch)
        (uri (crate-uri "try_from" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
          "12wdd4ja7047sd3rx70hv2056hyc8gcdllcx3a41g1rnw64kng98"))))
@@ -52937,7 +58325,7 @@ the Trust-DNS client to use rustls for TLS.")
       (origin
         (method url-fetch)
         (uri (crate-uri "try-lock" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "10p36rx6pqi9d0zr876xa8vksx2m66ha45myakl50rn08dxyn176"))))
@@ -53012,31 +58400,34 @@ the Trust-DNS client to use rustls for TLS.")
 parser.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-tui-0.15
+(define-public rust-tui-0.16
   (package
     (name "rust-tui")
-    (version "0.15.0")
+    (version "0.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tui" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0w9azg9zj1nnwcwbra9pxrwy47ab0m2bhanbkchydv8lscx8y7c6"))))
+        (base32 "08qcdjmi8sn2xyh38ilr17i9bn89ic2aaqx3rybyv7h44x7cxj1r"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
         ("rust-cassowary" ,rust-cassowary-0.3)
-        ("rust-crossterm" ,rust-crossterm-0.19)
+        ("rust-crossterm" ,rust-crossterm-0.20)
         ("rust-easycurses" ,rust-easycurses-0.12)
         ("rust-pancurses" ,rust-pancurses-0.16)
         ("rust-rustbox" ,rust-rustbox-0.11)
         ("rust-serde" ,rust-serde-1)
         ("rust-termion" ,rust-termion-1)
         ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
-        ("rust-unicode-width" ,rust-unicode-width-0.1))))
+        ("rust-unicode-width" ,rust-unicode-width-0.1))
+       #:cargo-development-inputs
+       (("rust-argh" ,rust-argh-0.1)
+        ("rust-rand" ,rust-rand-0.8))))
     (home-page "https://github.com/fdehau/tui-rs")
     (synopsis "Library to build rich terminal user interfaces or dashboards")
     (description
@@ -53044,6 +58435,32 @@ parser.")
 or dashboards.")
     (license license:expat)))
 
+(define-public rust-tui-0.15
+  (package
+    (inherit rust-tui-0.16)
+    (name "rust-tui")
+    (version "0.15.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tui" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0w9azg9zj1nnwcwbra9pxrwy47ab0m2bhanbkchydv8lscx8y7c6"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cassowary" ,rust-cassowary-0.3)
+        ("rust-crossterm" ,rust-crossterm-0.19)
+        ("rust-easycurses" ,rust-easycurses-0.12)
+        ("rust-pancurses" ,rust-pancurses-0.16)
+        ("rust-rustbox" ,rust-rustbox-0.11)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-termion" ,rust-termion-1)
+        ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
+        ("rust-unicode-width" ,rust-unicode-width-0.1))))))
+
 (define-public rust-tui-0.14
   (package
     (inherit rust-tui-0.15)
@@ -53162,17 +58579,17 @@ design abstracts away all the internals of the WebSocket protocol but still
 makes them accessible for those who wants full control over the network.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-twoway-0.1
+(define-public rust-twoway-0.2
   (package
     (name "rust-twoway")
-    (version "0.1.8")
+    (version "0.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "twoway" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1lbf64snscr3vz71jbl6i2c8zr2ndsiqbk6316z39fj1a8mipcar"))))
+        (base32 "0iqb54firzb8jinl2674vz8s6c4h30842sa3v9pcs93w1m3gnzy5"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -53188,6 +58605,20 @@ makes them accessible for those who wants full control over the network.")
 strings.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-twoway-0.1
+  (package
+    (inherit rust-twoway-0.2)
+    (name "rust-twoway")
+    (version "0.1.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "twoway" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+		"1lbf64snscr3vz71jbl6i2c8zr2ndsiqbk6316z39fj1a8mipcar"))))))
+
 (define-public rust-typeable-0.1
   (package
     (name "rust-typeable")
@@ -53196,7 +58627,7 @@ strings.")
       (origin
         (method url-fetch)
         (uri (crate-uri "typeable" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "11w8dywgnm32hb291izjvh4zjd037ccnkk77ahk63l913zwzc40l"))))
@@ -53281,7 +58712,7 @@ deserialization.")
       (origin
         (method url-fetch)
         (uri (crate-uri "typemap" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1xm1gbvz9qisj1l6d36hrl9pw8imr8ngs6qyanjnsad3h0yfcfv5"))))
@@ -53303,7 +58734,7 @@ deserialization.")
       (origin
         (method url-fetch)
         (uri (crate-uri "typenum" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0cvbksljz61ian21fnn0h51kphl0pwpzb932bv4s0rwy1wh8lg1p"))))
@@ -53351,7 +58782,7 @@ Unicode character database.")
       (origin
         (method url-fetch)
         (uri (crate-uri "ucd-trie" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1hh6kyzh5xygwy96wfmsf8v8czlzhps2lgbcyhj1xzy1w1xys04g"))))
@@ -53374,7 +58805,7 @@ Unicode character database.")
       (origin
         (method url-fetch)
         (uri (crate-uri "ucd-util" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "13ng291mkc9b132jjf4laj76f5nqm5qd2447rm8bry3wxbdc5kaw"))))
@@ -53826,7 +59257,7 @@ boundaries according to Unicode Standard Annex #29 rules.")
 (define-public rust-unicode-width-0.1
   (package
     (name "rust-unicode-width")
-    (version "0.1.8")
+    (version "0.1.9")
     (source
       (origin
         (method url-fetch)
@@ -53834,7 +59265,7 @@ boundaries according to Unicode Standard Annex #29 rules.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1qxizyi6xbcqyi4z79p523ywvmgsfcgfqb3zv3c8i6x1jcc5jdwk"))))
+          "0wq9wl69wlp6zwlxp660g9p4hm5gk91chwk14dp1gl9bxba45mry"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -53857,7 +59288,7 @@ boundaries according to Unicode Standard Annex #29 rules.")
         (method url-fetch)
         (uri (crate-uri "unicode-xid" version))
         (file-name
-          (string-append name "-" version ".crate"))
+          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0r6mknipyy9vpz8mwmxvkx65ff2ha1n2pxqjj6f46lcn8yrhpzpp"))))
@@ -53877,7 +59308,7 @@ or XID_Continue properties according to Unicode Standard Annex #31.")
       (origin
         (method url-fetch)
         (uri (crate-uri "unicode-xid" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1z57lqh4s18rr4x0j4fw4fmp9hf9346h0kmdgqsqx0fhjr3k0wpw"))))))
@@ -53988,7 +59419,7 @@ whitespace from a string.")
       (origin
         (method url-fetch)
         (uri (crate-uri "unreachable" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0mps2il4xy2mjqc3appas27hhn2xmvixc3bzzhfrjj74gy3i0a1q"))))
@@ -54011,7 +59442,7 @@ whitespace from a string.")
       (origin
         (method url-fetch)
         (uri (crate-uri "unsafe-any" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0zwwphsqkw5qaiqmjwngnfpv9ym85qcsyj7adip9qplzjzbn00zk"))))
@@ -54053,7 +59484,7 @@ whitespace from a string.")
       (origin
         (method url-fetch)
         (uri (crate-uri "untrusted" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0jkbqaj9d3v5a91pp3wp9mffvng1nhycx6sh4qkdd9qyr62ccmm1"))))
@@ -54608,7 +60039,7 @@ a part of rav1e.")
       (origin
         (method url-fetch)
         (uri (crate-uri "vcpkg" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1yvrd2b97j4hv5bfhcj3al0dpkbzkdsr6dclxqz3zqm50rhwl2xh"))))
@@ -54652,7 +60083,7 @@ a part of rav1e.")
       (origin
         (method url-fetch)
         (uri (crate-uri "vec_map" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1481w9g1dw9rxp3l6snkdqihzyrd2f8vispzqmwjwsdyhw8xzggi"))))
@@ -54725,7 +60156,7 @@ designed for reexporting.")
       (origin
         (method url-fetch)
         (uri (crate-uri "version_check" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32 "1vbaqdf802qinsq8q20w8w0qn2pv0rkq5p73ijcblrwxcvjp5adm"))))
     (build-system cargo-build-system)
@@ -54749,7 +60180,7 @@ If that fails, no determination is made, and calls return None.")
       (origin
         (method url-fetch)
         (uri (crate-uri "version_check" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1pf91pvj8n6akh7w6j5ypka6aqz08b3qpzgs0ak2kjf4frkiljwi"))))))
@@ -54837,6 +60268,31 @@ updated when the crate version changes.")
         ("rust-toml" ,rust-toml-0.4)
         ("rust-url" ,rust-url-1))))))
 
+(define-public rust-versions-3
+  (package
+    (name "rust-versions")
+    (version "3.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "versions" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ffjw6mbsm3nrgg03b76jfc41lg44yz1pyqmv6zj37q88i6y4wri"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-itertools" ,rust-itertools-0.10)
+        ("rust-nom" ,rust-nom-6)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/fosskers/rs-versions")
+    (synopsis "Library for parsing and comparing software version numbers")
+    (description
+     "This package provides a library for parsing and comparing software
+version numbers.")
+    (license license:expat)))
+
 (define-public rust-void-1
   (package
     (name "rust-void")
@@ -54845,7 +60301,7 @@ updated when the crate version changes.")
       (origin
         (method url-fetch)
         (uri (crate-uri "void" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0zc8f0ksxvmhvgx4fdg0zyn6vdnbxd2xv9hfx4nhzg6kbs4f80ka"))))
@@ -55225,7 +60681,7 @@ result.")
        (method url-fetch)
        (uri (crate-uri "wasi" version))
        (file-name
-        (string-append name "-" version ".crate"))
+        (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
          "1ir3pd4phdfml0cbziw9bqp7mnk0vfp9biy8bh25lln6raml4m7x"))))
@@ -55449,7 +60905,7 @@ attribute that is not in the shared backend crate.")
       (origin
         (method url-fetch)
         (uri (crate-uri "wasm-bindgen-shared" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0n3ir6gq27np22l6m96y342a6fphk1pkbzbfqx6g364kgzfi2y3y"))))
@@ -55595,7 +61051,7 @@ attribute that is not in the shared backend crate.")
       (origin
         (method url-fetch)
         (uri (crate-uri "wasm-bindgen-test-macro" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "19bvmw8mqlwh6wkbzgs3cnlkywrv8q2kkqggz6y0p158930xm287"))))
@@ -55688,6 +61144,44 @@ WebAssembly binary files.")
 modifications.")
     (license license:asl2.0)))
 
+(define-public rust-wl-clipboard-rs-0.4
+  (package
+    (name "rust-wl-clipboard-rs")
+    (version "0.4.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "wl-clipboard-rs" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (patches (search-patches "rust-wl-clipboard-rs-newer-wl.patch"))
+        (sha256
+          (base32 "1252cm67pkrr6ik5ys2cdyfr2zzw6ds7v351i1cmyi94yiv01l13"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-derive-new" ,rust-derive-new-0.5)
+         ("rust-derive-more" ,rust-derive-more-0.99)
+         ("rust-exitfailure" ,rust-exitfailure-0.5)
+         ("rust-failure" ,rust-failure-0.1)
+         ("rust-libc" ,rust-libc-0.2)
+         ("rust-log" ,rust-log-0.4)
+         ("rust-mime-guess" ,rust-mime-guess-2)
+         ("rust-nix" ,rust-nix-0.18)
+         ("rust-os-pipe" ,rust-os-pipe-0.9)
+         ("rust-stderrlog" ,rust-stderrlog-0.4)
+         ("rust-structopt" ,rust-structopt-0.3)
+         ("rust-tempfile" ,rust-tempfile-3)
+         ("rust-tree-magic" ,rust-tree-magic-0.2)
+         ("rust-wayland-client" ,rust-wayland-client-0.28)
+         ("rust-wayland-commons" ,rust-wayland-commons-0.28)
+         ("rust-wayland-protocols" ,rust-wayland-protocols-0.28))))
+    (home-page "https://github.com/YaLTeR/wl-clipboard-rs")
+    (synopsis "Access to the Wayland clipboard")
+    (description "This package provides access to the Wayland clipboard
+for terminal and other window-less applications.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-web-sys-0.3
   (package
     (name "rust-web-sys")
@@ -56167,6 +61661,25 @@ hardware of various targets.  Both in terms of explicit SIMD usage and also in
 terms of allowing LLVM's auto-vectorizer to do its job.")
     (license license:zlib)))
 
+(define-public rust-wide-0.6
+  (package
+    (inherit rust-wide-0.4)
+    (name "rust-wide")
+    (version "0.6.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "wide" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "16yqf8xsvns21clg3rk8nljq4qnsfqg240smbjqa0z520k3fgfs6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytemuck" ,rust-bytemuck-1)
+        ("rust-safe-arch" ,rust-safe-arch-0.5))))
+    (license (list license:zlib license:asl2.0 license:expat))))
+
 (define-public rust-widestring-0.4
   (package
     (name "rust-widestring")
@@ -56175,7 +61688,7 @@ terms of allowing LLVM's auto-vectorizer to do its job.")
       (origin
         (method url-fetch)
         (uri (crate-uri "widestring" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "13565qy4jhpg4x0xw8mwxzzsh0p8c93p5208lh6kpwp0q01y6qx7"))))
@@ -56222,7 +61735,7 @@ command-line, uniformly on all platforms")
       (origin
         (method url-fetch)
         (uri (crate-uri "winapi" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "06gl025x418lchw1wxj64ycr7gha83m44cjr5sarhynd9xkrm0sw"))))
@@ -56233,8 +61746,8 @@ command-line, uniformly on all platforms")
        (("winapi-i686-pc-windows-gnu" ,rust-winapi-i686-pc-windows-gnu-0.4)
         ("winapi-x86-64-pc-windows-gnu" ,rust-winapi-x86-64-pc-windows-gnu-0.4))))
     (inputs
-     `(("rust-winapi-i686-pc-windows-gnu" ,rust-winapi-i686-pc-windows-gnu-0.4)
-       ("rust-winapi-x86-64-pc-windows-gnu" ,rust-winapi-x86-64-pc-windows-gnu-0.4)))
+     (list rust-winapi-i686-pc-windows-gnu-0.4
+           rust-winapi-x86-64-pc-windows-gnu-0.4))
     (home-page "https://github.com/retep998/winapi-rs")
     (synopsis "Raw FFI bindings for all of Windows API")
     (description
@@ -56251,7 +61764,7 @@ command-line, uniformly on all platforms")
       (origin
         (method url-fetch)
         (uri (crate-uri "winapi" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0yh816lh6lf56dpsgxy189c2ai1z3j8mw9si6izqb6wsjkbcjz8n"))))
@@ -56265,7 +61778,7 @@ command-line, uniformly on all platforms")
       (origin
         (method url-fetch)
         (uri (crate-uri "winapi-build" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "1g4rqsgjky0a7530qajn2bbfcrl2v0zb39idgdws9b1l7gp5wc9d"))))
@@ -56309,7 +61822,7 @@ i686-pc-windows-gnu target.  Please don't use this crate directly, depend on
       (origin
         (method url-fetch)
         (uri (crate-uri "winapi-util" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0y71bp7f6d536czj40dhqk0d55wfbbwqfp2ymqf1an5ibgl6rv3h"))))
@@ -56324,6 +61837,27 @@ winapi.")
     (license (list license:unlicense
                    license:expat))))
 
+(define-public rust-winapi-wsapoll-0.1
+  (package
+    (name "rust-winapi-wsapoll")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "winapi-wsapoll" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0vnzlcm6yrlx0xdx4g7zr41n84aj73h0p8fwh0m60mbiyl873ha4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/psychon/winapi-wsapoll")
+    (synopsis "Safe wrapper around WSAPoll")
+    (description "This package provides safe wrapper around WSAPoll.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-winapi-x86-64-pc-windows-gnu-0.4
   (package
     (name "rust-winapi-x86-64-pc-windows-gnu")
@@ -56357,7 +61891,7 @@ x86_64-pc-windows-gnu target.  Please don't use this crate directly, depend on
       (origin
         (method url-fetch)
         (uri (crate-uri "wincolor" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "017x33ljndwc76cp5z9llgndn0nh7v8jcjaykbizkawmwy9n3pyp"))))
@@ -56555,7 +62089,7 @@ trust these primitives.")
       (origin
         (method url-fetch)
         (uri (crate-uri "winutil" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0vkyl3fbbf05n5ph5yz8sfaccrk9x3qsr25560w6w68ldf5i7bvx"))))
@@ -56626,7 +62160,7 @@ serialization.")
       (origin
         (method url-fetch)
         (uri (crate-uri "ws2_32-sys" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0ppscg5qfqaw0gzwv2a4nhn5bn01ff9iwn6ysqnzm4n8s3myz76m"))))
@@ -56695,7 +62229,12 @@ non-cryptographic hashing algorithm and random number generator.")
        (uri (crate-uri "x86" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0sas98yzn549f5lxswqra2rjdfjxh24f3ndw5dfsnwnm9rlsr1i7"))))
+        (base32 "0sas98yzn549f5lxswqra2rjdfjxh24f3ndw5dfsnwnm9rlsr1i7"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (substitute* "Cargo.toml"
+             (("8\\.0") "8"))))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -56724,7 +62263,7 @@ languages.")
       (origin
         (method url-fetch)
         (uri (crate-uri "xattr" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0k556fb6f5jc907975j9c8iynl2fqz3rf0w6fiig83i4yi0kfk14"))))
@@ -56765,12 +62304,9 @@ extended attributes.")
         ("rust-log" ,rust-log-0.4)
         ("rust-x11" ,rust-x11-2))))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxcb" ,libxcb)
-       ("xcb-proto" ,xcb-proto)))
+     (list libx11 libxcb xcb-proto))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)))
+     (list pkg-config python))
     (home-page "https://github.com/rtbo/rust-xcb")
     (synopsis "Rust bindings and wrappers for XCB")
     (description
@@ -56807,7 +62343,7 @@ extended attributes.")
      (origin
        (method url-fetch)
        (uri (crate-uri "xdg" version))
-       (file-name (string-append name "-" version ".crate"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0mws8a0fr3cqk5nh7aq9lmkmhzghvasqy4mhw6nnza06l4d6i2fh"))))
     (build-system cargo-build-system)
@@ -57045,8 +62581,7 @@ parser.")
         ("rust-rand" ,rust-rand-0.5)
         ("rust-tokio-core" ,rust-tokio-core-0.1))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("xz" ,xz)))
+     (list pkg-config xz))
     (home-page "https://github.com/alexcrichton/xz2-rs")
     (synopsis "Rust bindings to liblzma")
     (description "This package provides Rust bindings to liblzma providing
@@ -57435,7 +62970,7 @@ compression library.")
     (home-page "http://www.hashmismatch.net/libraries/packed-struct/")
     (synopsis "Binary-level structure packing and unpacking generator")
     (description "This package provides bit-level packing an unpacking
-of structs.  The library provides a meta-programming approach, using
+of structs.  Tkhe library provides a meta-programming approach, using
 attributes to define fields and how they should be packed.  The resulting
 trait implementations provide safe packing, unpacking and runtime debugging
 formatters with per-field documentation generated for each structure.
@@ -57502,6 +63037,60 @@ formatters with per-field documentation generated for each structure.
      "This package provides Rust bindings to OpenBSD's pledge(2) interface.")
     (license license:expat)))
 
+(define-public rust-ptr-meta-derive-0.1
+  (package
+    (name "rust-ptr-meta-derive")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ptr_meta_derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1b69cav9wn67cixshizii0q5mlbl0lihx706vcrzm259zkdlbf0n"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/djkoloski/ptr_meta")
+    (synopsis "Macros for the ptr_meta fat pointer metadata API")
+    (description "This package provides macros for the ptr_meta API.")
+    (license license:expat)))
+
+(define-public rust-ptr-meta-0.1
+  (package
+    (name "rust-ptr-meta")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ptr_meta" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1wd4wy0wxrcays4f1gy8gwcmxg7mskmivcv40p0hidh6xbvwqf07"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ptr-meta-derive" ,rust-ptr-meta-derive-0.1))))
+    (home-page "https://github.com/djkoloski/ptr_meta")
+    (synopsis "Manipulate metadata of fat pointers")
+    (description "This package allows manipulating the metadata of fat
+pointers:
+
+@itemize
+@item Naming the metadata’s type (as an associated type)
+@item Extracting metadata from a pointer
+@item Reconstructing a pointer from a data pointer and metadata
+@item Representing vtables, the metadata for trait objects, as a type with
+  some limited API.
+@end itemize
+")
+    (license license:expat)))
+
 (define-public rust-ptree-0.3
   (package
     (name "rust-ptree")
@@ -57532,31 +63121,47 @@ formatters with per-field documentation generated for each structure.
 configuration file and/or environment variables.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-xmltree-0.8
+(define-public rust-xmltree-0.10
   (package
     (name "rust-xmltree")
-    (version "0.8.0")
+    (version "0.10.3")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "xmltree" version))
-        (file-name
-          (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32
-            "0w0y0jz7lhxg05ca6ngfj0lj8sbrjh4vaqv13q7qaqkhs7lsx3pz"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xmltree" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1jqzwhr1a5cknflsshhhjlllmd1xi04qdkjsls2bnmv5mxgagn6p"))))
     (build-system cargo-build-system)
     (arguments
-      `(#:cargo-inputs
-        (("rust-indexmap" ,rust-indexmap-1)
-         ("rust-xml-rs" ,rust-xml-rs-0.7))))
-    (home-page #f)
-    (synopsis
-      "Parse an XML file into a simple tree-like structure")
-    (description
-      "Parse an XML file into a simple tree-like structure")
+     `(#:cargo-inputs
+       (("rust-indexmap" ,rust-indexmap-1)
+        ("rust-xml-rs" ,rust-xml-rs-0.8))))
+    (home-page "https://github.com/eminence/xmltree-rs")
+    (synopsis "Parse an XML file into a simple tree-like structure")
+    (description "This package provides a small library for parsing an XML
+file into an in-memory tree structure.")
     (license license:expat)))
 
+(define-public rust-xmltree-0.8
+  (package
+    (inherit rust-xmltree-0.10)
+    (name "rust-xmltree")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xmltree" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0w0y0jz7lhxg05ca6ngfj0lj8sbrjh4vaqv13q7qaqkhs7lsx3pz"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-indexmap" ,rust-indexmap-1)
+        ("rust-xml-rs" ,rust-xml-rs-0.7))))))
+
 (define-public rust-svd-parser-0.9
   (package
     (name "rust-svd-parser")
@@ -57648,8 +63253,7 @@ configuration file and/or environment variables.")
          "0gsgcs1nn38r40973l6zr1v4d85f4s9qyl32n5f20jphf5z9ba1w"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:rust ,rust-1.52                ;for rust-sized-chunks
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-arbitrary" ,rust-arbitrary-0.4)
         ("rust-bitmaps" ,rust-bitmaps-2)
         ("rust-proptest" ,rust-proptest-0.9)
@@ -57905,3 +63509,27 @@ variant of this library is available separately as @code{im}.")
     (description
       "Generate Rust register maps (`struct`s) from SVD files")
     (license (list license:expat license:asl2.0))))
+
+(define-public rust-shell2batch-0.4
+  (package
+    (name "rust-shell2batch")
+    (version "0.4.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "shell2batch" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "0r9zfhxmqnrnyk7g590333szfpsjijs2wfwy7ish240w6pp54nhq"))
+    ;; https://github.com/sagiegurari/shell2batch/issues/17
+    (patches (search-patches "rust-shell2batch-lint-fix.patch"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-regex" ,rust-regex-1))))
+    (home-page "https://github.com/sagiegurari/shell2batch")
+    (synopsis "Basic shell scripts to windows batch scripts conversion")
+    (description "While it is not really possible to take every shell script
+and automatically convert it to a windows batch file, this library provides a
+way to convert simple shell commands to windows batch commands.")
+    (license license:asl2.0)))
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 174e43404a..4826b3851c 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 David Thompson <davet@gnu.org>
 ;;; Copyright © 2015, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2017, 2018, 2019, 2021 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox>
 ;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
@@ -72,6 +72,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages search)
   #:use-module (gnu packages serialization)
@@ -92,6 +93,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
   #:use-module (guix build-system perl)
+  #:use-module (guix build-system python)
   #:use-module (guix utils)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
@@ -173,7 +175,7 @@ communication, encryption, decryption, signatures, etc.")
 (define-public libmd
   (package
     (name "libmd")
-    (version "1.0.3")
+    (version "1.0.4")
     (source (origin
             (method url-fetch)
             (uri
@@ -184,8 +186,11 @@ communication, encryption, decryption, signatures, etc.")
                              version ".tar.xz")))
             (sha256
              (base32
-              "0jmga8y94h857ilra3qjaiax3wd5pd6mx1h120zhl9fcjmzhj0js"))))
+              "03skgv013v0y9hxh6j143xdwynb5cmbmbdylvvgfsjz38889477m"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "--disable-static")))
     (synopsis "Message Digest functions from BSD systems")
     (description
      "The currently provided message digest algorithms are:
@@ -226,9 +231,9 @@ communication, encryption, decryption, signatures, etc.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libbsd" ,libbsd)))
+     (list libbsd))
     (synopsis "Create and verify cryptographic signatures")
     (description "The signify utility creates and verifies cryptographic
 signatures using the elliptic curve Ed25519.  This is a Linux port of the
@@ -287,7 +292,7 @@ OpenBSD tool of the same name.")
     (arguments
      '(#:import-path "github.com/jedisct1/go-minisign"))
     (propagated-inputs
-     `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
+     (list go-golang-org-x-crypto))
     (home-page "https://github.com/jedisct1/go-minisign")
     (synopsis "Minisign verification library for Golang")
     (description "A Golang library to verify Minisign signatures.")
@@ -322,10 +327,7 @@ OpenBSD tool of the same name.")
        ("googletest-source" ,(package-source googletest))
        ("perl" ,perl)))
     (inputs
-     `(("attr" ,attr)
-       ("fuse" ,fuse)
-       ("openssl" ,openssl)
-       ("tinyxml2" ,tinyxml2)))
+     (list attr fuse openssl tinyxml2))
     (arguments
      `(#:configure-flags (list "-DUSE_INTERNAL_TINYXML=OFF")
        #:phases
@@ -363,21 +365,22 @@ the wrong hands.")
 (define-public keyutils
   (package
     (name "keyutils")
-    (version "1.6.1")
+    (version "1.6.3")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://people.redhat.com/dhowells/keyutils/keyutils-"
-                       version ".tar.bz2"))
+       (method git-fetch)
+       (uri (git-reference
+             (url (string-append "https://git.kernel.org/pub/scm/linux/kernel/"
+                                 "git/dhowells/keyutils.git"))
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1kk4pmyflgplkgxn2bzpc069ph9c9jdd9ikcsyd5pnaimqi5gcf8"))
+        (base32 "1095g1p5038m91wf2dxnagngpvww7ilcj8fhyviid3srvxr675i7"))
        (modules '((guix build utils)))
        ;; Create relative symbolic links instead of absolute ones to /lib/*.
        (snippet '(begin
                    (substitute* "Makefile" (("\\$\\(LNS\\) \\$\\(LIBDIR\\)/")
-                                            "$(LNS) "))
-                   #t))))
+                                            "$(LNS) "))))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -389,10 +392,11 @@ the wrong hands.")
                           "INCLUDEDIR=/include"
                           "LIBDIR=/lib"
                           "MANDIR=/share/man"
-                          "SHAREDIR=/share/keyutils")
+                          "SHAREDIR=/share/keyutils"
+                          "NO_ARLIB=1") ; omit static libraries
        #:test-target "test"))
     (inputs
-     `(("mit-krb5" ,mit-krb5)))
+     (list mit-krb5))
     (home-page "https://people.redhat.com/dhowells/keyutils/")
     (synopsis "Linux key management utilities")
     (description
@@ -435,9 +439,9 @@ secure operations. ")
                (install-file "ssss.1.html" docdir)
                #t))))))
     (inputs
-     `(("gmp" ,gmp)))
+     (list gmp))
     (native-inputs
-     `(("xmltoman" ,xmltoman)))
+     (list xmltoman))
     (home-page "http://point-at-infinity.org/ssss/")
     (synopsis "Shamir's secret sharing scheme implementation")
     (description "@command{ssss-split} and @command{ssss-combine} are utilities that split
@@ -458,7 +462,7 @@ total number of shares generated.")
                (base32
                 "136nfnpaz29hngwwnzrmc858gpnvnb977gf4ldbpapw1h1k3r8mk"))))
     (build-system gnu-build-system)
-    (native-inputs `(("sudo" ,sudo)))   ;presence needed for 'check' phase
+    (native-inputs (list sudo))   ;presence needed for 'check' phase
     (inputs
      `(("zsh" ,zsh)
        ("gnupg" ,gnupg)
@@ -551,7 +555,7 @@ user's graphical desktop.")
               (install-file "FORMAT" doc)
               #t))))))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (home-page "https://www.tarsnap.com/scrypt.html")
     (synopsis "Memory-hard encryption tool based on scrypt")
     (description "This package provides a simple password-based encryption
@@ -609,8 +613,7 @@ attacks than alternative functions such as @code{PBKDF2} or @code{bcrypt}.")
          "0yxqqcqvj51fn7b7j5xqhz65v74arzgainn66c6k7inijbmr1xws"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-nowarnings" ,perl-test-nowarnings)))
+     (list perl-module-build perl-test-nowarnings))
     (home-page "https://metacpan.org/release/Math-Random-ISAAC-XS")
     (synopsis "C implementation of the ISAAC PRNG algorithm")
     (description "ISAAC (Indirection, Shift, Accumulate, Add, and Count) is a
@@ -636,9 +639,9 @@ This package implements the same interface as @code{Math::Random::ISAAC}.")
          "0z1b3xbb3xz71h25fg6jgsccra7migq7s0vawx2rfzi0pwpz0wr7"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-nowarnings" ,perl-test-nowarnings)))
+     (list perl-test-nowarnings))
     (propagated-inputs
-     `(("perl-math-random-isaac-xs" ,perl-math-random-isaac-xs)))
+     (list perl-math-random-isaac-xs))
     (home-page "https://metacpan.org/release/Math-Random-ISAAC")
     (synopsis "Perl interface to the ISAAC PRNG algorithm")
     (description "ISAAC (Indirection, Shift, Accumulate, Add, and Count) is a
@@ -664,16 +667,15 @@ generator.")
         (base32 "1rpdds3sy5l1fhngnkrsgwsmwd54wpicx3i9ds69blcskwkcwkpc"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build-tiny" ,perl-module-build-tiny)
-       ("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-module-build-tiny perl-test-fatal))
     (propagated-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)
-       ("perl-module-find" ,perl-module-find)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-moo" ,perl-moo)
-       ("perl-namespace-clean" ,perl-namespace-clean)
-       ("perl-sub-exporter" ,perl-sub-exporter)
-       ("perl-type-tiny" ,perl-type-tiny)))
+     (list perl-capture-tiny
+           perl-module-find
+           perl-module-runtime
+           perl-moo
+           perl-namespace-clean
+           perl-sub-exporter
+           perl-type-tiny))
     (home-page "https://metacpan.org/release/Crypt-Random-Source")
     (synopsis "Get weak or strong random data from pluggable sources")
     (description "This module provides implementations for a number of
@@ -694,15 +696,11 @@ byte-oriented sources of random data.")
          "0dgbf4ncll4kmgkyb9fsaxn0vf2smc9dmwqzgh3259zc2zla995z"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-test-leaktrace" ,perl-test-leaktrace)
-       ("perl-test-sharedfork" ,perl-test-sharedfork)
-       ("perl-test-warn" ,perl-test-warn)))
+     (list perl-list-moreutils perl-test-leaktrace perl-test-sharedfork
+           perl-test-warn))
     (inputs
-     `(("perl-crypt-random-source" ,perl-crypt-random-source)
-       ("perl-math-random-isaac" ,perl-math-random-isaac)
-       ("perl-math-random-isaac-xs" ,perl-math-random-isaac-xs)
-       ("perl-moo" ,perl-moo)))
+     (list perl-crypt-random-source perl-math-random-isaac
+           perl-math-random-isaac-xs perl-moo))
     (home-page "https://metacpan.org/release/Math-Random-Secure")
     (synopsis "Cryptographically secure replacement for rand()")
     (description "This module is intended to provide a
@@ -791,7 +789,7 @@ data on your platform, so the seed itself will be as random as possible.
                      "Cflags: -I${includedir}\n"))
                    #t))))))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://cryptopp.com/")
     (synopsis "C++ class library of cryptographic schemes")
     (description "Crypto++ is a C++ class library of cryptographic schemes.")
@@ -836,6 +834,41 @@ as the latest standard, SHA-3.  It is an improved version of the SHA-3 finalist
 BLAKE.")
     (license license:public-domain)))
 
+(define-public b2sum
+  ;; Upstream doesn't seem to use a versioned release workflow, so build from
+  ;; a recent commit.
+  (let ((commit "54f4faa4c16ea34bcd59d16e8da46a64b259fc07")
+        (revision "0"))
+    (package
+      (name "b2sum")
+      (version (git-version "20190724" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/BLAKE2/BLAKE2")
+                       (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32 "04z631v0vzl52g73v390ask5fnzi5wg83lcjkjhpmmymaz0jn152"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
+                            (string-append "PREFIX=" (assoc-ref %outputs "out")))
+         #:tests? #f ; No test suite
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'build 'change-directory
+                       (lambda _
+                         (chdir "b2sum")))
+           (delete 'configure)))) ; No ./configure script
+      (home-page "https://www.blake2.net/")
+      (synopsis "BLAKE2 checksum tool")
+      (description "BLAKE2 is a cryptographic hash function faster than MD5,
+SHA-1, SHA-2, and SHA-3, yet is at least as secure as SHA-3.")
+      ;; You may also choose to redistribute this program as Apache 2.0 or the
+      ;; OpenSSL license. See 'b2sum/b2sum.c' in the source distribution.
+      (license license:cc0))))
+
 (define-public rhash
   (package
     (name "rhash")
@@ -893,14 +926,14 @@ SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R
 (define-public botan
   (package
     (name "botan")
-    (version "2.18.1")
+    (version "2.18.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://botan.randombit.net/releases/"
                                   "Botan-" version ".tar.xz"))
               (sha256
                (base32
-                "0adf53drhk1hlpfih0175c9081bqpclw6p2afn51cmx849ib9izq"))))
+                "0zih8agygp39ff0dwi3fv8y7dnnzpz3y86kcgjbhzlxry49kn6jl"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -913,6 +946,8 @@ SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R
                (setenv "CXXFLAGS" "-O3")
                (invoke "python" "./configure.py"
                        (string-append "--prefix=" out)
+                       "--disable-static"
+
                        ;; Otherwise, the `botan` executable cannot find
                        ;; libbotan.
                        (string-append "--ldflags=-Wl,-rpath=" lib)
@@ -932,9 +967,7 @@ SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R
      `(("python" ,python-wrapper)
        ("python-docutils" ,python-docutils)))
     (inputs
-     `(("sqlite" ,sqlite)
-       ("bzip2" ,bzip2)
-       ("zlib" ,zlib)))
+     (list sqlite bzip2 zlib))
     (synopsis "Cryptographic library in C++11")
     (description "Botan is a cryptography library, written in C++11, offering
 the tools necessary to implement a range of practical systems, such as TLS/DTLS,
@@ -969,8 +1002,8 @@ security.")
     (license license:gpl2)))
 
 (define-public asignify
-  (let ((commit "f58e7977a599f040797975d649ed318e25cbd2d5")
-        (revision "0"))
+  (let ((commit "08af003e1f4833713db28b871759d94f9b2b1469")
+        (revision "1"))
     (package
       (name "asignify")
       (version (git-version "1.1" revision commit))
@@ -982,7 +1015,7 @@ security.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1zl68qq6js6fdahxzyhvhrpyrwlv8c2zhdplycnfxyr1ckkhq8dw"))))
+                  "1zacpqa8b5lg270z1g06r5ik9vnb91crb4ivyy20381dny82xvr1"))))
       (build-system gnu-build-system)
       (arguments
        `(#:configure-flags
@@ -990,11 +1023,9 @@ security.")
                (string-append "--with-openssl="
                               (assoc-ref %build-inputs "openssl")))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)))
+       (list autoconf automake libtool))
       (inputs
-       `(("openssl" ,openssl)))
+       (list openssl))
       (home-page "https://github.com/vstakhov/asignify")
       (synopsis "Cryptographic authentication and encryption tool and library")
       (description "Asignify offers public cryptographic signatures and
@@ -1062,9 +1093,7 @@ trivial to build for local use.  Portability is emphasized over performance.")
                              "--enable-module-ecdh"
                              "--enable-shared")))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)))
+       (list autoconf automake libtool))
       ;; WARNING: This package might need additional configure flags to run properly.
       ;; See https://github.com/archlinux/svntogit-community/blob/packages/libsecp256k1/trunk/PKGBUILD.
       (synopsis "C library for EC operations on curve secp256k1")
@@ -1102,9 +1131,7 @@ Features:
         (base32 "1rnif3iny6pz1r3g69bagzr342mm3x0v66b60csnmm1rg44bd5v1"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (arguments
      '(#:configure-flags '("--enable-module-recovery"
                            "--enable-experimental"
@@ -1152,10 +1179,9 @@ Features:
                 "0npgr6y85gzwksy8jkwa4yzvqwjprwnplx3yiw3ayk4f0ldlhaxa"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("nettle" ,nettle)
-       ("libxml2" ,libxml2)))
+     (list nettle libxml2))
     (home-page "http://stoken.sf.net")
     (synopsis "Software Token for cryptographic authentication")
     (description
@@ -1202,8 +1228,7 @@ utility/testing functions.")
                (mkdir-p man1)
                #t))))))
     (inputs
-     `(("libsodium" ,libsodium)
-       ("openssl" ,openssl)))
+     (list libsodium openssl))
     (synopsis "High-performance command-line tool for stream encryption")
     (description "Hpenc is a command-line tool for performing authenticated
 encryption (AES-GCM and ChaCha20-Poly1305) of streaming data.  It does not
@@ -1216,23 +1241,23 @@ quickly by using all your CPU cores and hardware acceleration.")
 (define-public minisign
   (package
     (name "minisign")
-    (version "0.9")
+    (version "0.10")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://github.com/jedisct1/minisign/releases/download/"
-                       version "/minisign-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jedisct1/minisign")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1h9cfvvm6lqq33b2wdar1x3w4k7zyrscavllyb0l5dmcdabq60r2"))))
+        (base32 "0gi5z03w9sg72vyjs94y0mhkzz7bbhyzcg92mgmd9r2ydpi5gads"))))
     (build-system cmake-build-system)
     (arguments
-     ; No test suite
-     `(#:tests? #f))
+     `(#:tests? #f))                    ; no test suite
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libsodium" ,libsodium)))
+     (list libsodium))
     (home-page "https://jedisct1.github.io/minisign")
     (synopsis "Tool to sign files and verify signatures")
     (description
@@ -1278,6 +1303,36 @@ API.")
     (home-page "https://matrix.org/docs/projects/other/olm/")
     (license license:asl2.0)))
 
+(define-public python-olm
+  (package
+    ;; python-olm is part of libolm and must be updated at the same time.
+    (inherit libolm)
+    (name "python-olm")
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "python")))
+         (add-before 'build 'set-preprocessor
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "CPP" "gcc -E")))
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest")))))))
+    (inputs (list libolm))
+    (propagated-inputs
+     (list python-cffi python-future))
+    (native-inputs
+     (list python-pytest python-pytest-benchmark python-aspectlib))
+    (synopsis "Python bindings for libolm")
+    (description "The libolm library implements the Double Ratchet
+cryptographic ratchet.  It is written in C and C++11, and exposed as a C
+API.  This package contains its Python bindings.")))
+
 (define-public hash-extender
   (let ((commit "cb8aaee49f93e9c0d2f03eb3cafb429c9eed723d")
         (revision "2"))
@@ -1312,7 +1367,7 @@ API.")
                  (install-file "README.md" docdir)
                  #t))))))
       (inputs
-       `(("openssl" ,openssl)))
+       (list openssl))
       (synopsis "Tool for hash length extension attacks")
       (description "@command{hash_extender} is a utility for performing hash
 length extension attacks supporting MD4, MD5, RIPEMD-160, SHA-0, SHA-1,
@@ -1345,9 +1400,9 @@ SHA-256, SHA-512, and WHIRLPOOL hashes.")
                (install-file "mkp224o" bindir)
                #t))))))
     (native-inputs
-     `(("autoconf" ,autoconf)))
+     (list autoconf))
     (inputs
-     `(("libsodium" ,libsodium)))
+     (list libsodium))
     (synopsis "Tor hidden service v3 name generator")
     (description "@code{mkp224o} generates valid ed25519 (hidden service
 version 3) onion addresses.  It allows one to produce customized vanity .onion
@@ -1369,8 +1424,7 @@ addresses using a brute-force method.")
         (base32 "0bpz1hazbhfb6pqi68x55kq6a31bgh6vwij836slmi4jqiwvnh5a"))
        (file-name (git-file-name name version))))
     (inputs
-     `(("git" ,git)
-       ("openssl" ,openssl)))
+     (list git openssl))
     (build-system copy-build-system)
     (arguments
      `(#:install-plan
@@ -1449,11 +1503,7 @@ non-encrypted files.")
      `(("python" ,python-wrapper)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("boost" ,boost)
-       ("curl" ,curl)
-       ("fuse" ,fuse)
-       ("range-v3" ,range-v3)
-       ("spdlog" ,spdlog)))
+     (list boost curl fuse range-v3 spdlog))
     (home-page "https://www.cryfs.org/")
     (synopsis "Encrypted FUSE filesystem for the cloud")
     (description "CryFS encrypts your files, so you can safely store them anywhere.
@@ -1463,3 +1513,86 @@ via FUSE without root permissions.  It is similar to EncFS, but provides
 additional security and privacy measures such as hiding file sizes and directory
 structure.  However CryFS is not considered stable yet by the developers.")
     (license license:lgpl3+)))
+
+(define-public rust-blake3-0.3
+  (package
+    (name "rust-blake3")
+    ;; Version 1 requires Rust >= 1.51.
+    ;; <https://github.com/BLAKE3-team/BLAKE3/releases/tag/1.0.0>
+    (version "0.3.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "blake3" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "1cr5l5szgxm632px41kavl6cgils8h6yhdfkm6jsc5jgiivqai5n"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-arrayref" ,rust-arrayref-0.3)
+         ("rust-arrayvec" ,rust-arrayvec-0.5)
+         ("rust-cc" ,rust-cc-1)
+         ("rust-cfg-if" ,rust-cfg-if-0.1)
+         ("rust-constant-time-eq" ,rust-constant-time-eq-0.1)
+         ("rust-crypto-mac" ,rust-crypto-mac-0.8)
+         ("rust-digest" ,rust-digest-0.9)
+         ("rust-rayon" ,rust-rayon-1))))
+    (home-page "https://github.com/BLAKE3-team/BLAKE3")
+    (synopsis "BLAKE3 hash function Rust implementation")
+    (description "This crate provides the official Rust implementation of the
+BLAKE3 cryptographic hash function.  BLAKE3 is faster than MD5, SHA-1, SHA-2,
+SHA-3, and BLAKE2.")
+    ;; Users may choose between these two licenses when redistributing the
+    ;; program provided by this package.
+    (license (list license:cc0 license:asl2.0))))
+
+(define-public b3sum
+  (package
+    (name "b3sum")
+    ;; Version 1 requires Rust >= 1.51.
+    ;; <https://github.com/BLAKE3-team/BLAKE3/releases/tag/1.0.0>
+    (version "0.3.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "b3sum" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "0h3fz16q5lk6mg7r8kjkjrq5hd4injngn5m7pswjbf2pyzjmg4b4"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(;; Install the source so that Cargo.toml is installed, because that is
+        ;; the only reference to the license information.
+        #:install-source? #t
+        #:phases
+        (modify-phases %standard-phases
+          (add-before 'check 'patch-tests
+            (lambda _
+              (substitute* "tests/cli_tests.rs"
+                (("/bin/sh") (which "sh")))))
+          (add-after 'install 'install-doc
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let* ((out (assoc-ref outputs "out"))
+                     (doc (string-append out "/share/doc/" ,name "-"
+                                         ,(package-version this-package))))
+                (install-file "README.md" doc)))))
+        #:cargo-inputs
+        (("rust-anyhow" ,rust-anyhow-1)
+         ("rust-blake3" ,rust-blake3-0.3)
+         ("rust-clap" ,rust-clap-2)
+         ("rust-hex" ,rust-hex-0.4)
+         ("rust-memmap" ,rust-memmap-0.7)
+         ("rust-rayon" ,rust-rayon-1)
+         ("rust-wild" ,rust-wild-2))
+        #:cargo-development-inputs
+        (("rust-duct" ,rust-duct-0.13)
+         ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/BLAKE3-team/BLAKE3")
+    (synopsis "Command line BLAKE3 checksum tool")
+    (description "This package provides @code{b3sum}, a command line
+checksum tool based on the BLAKE3 cryptographic hash function.")
+    ;; Users may choose between these two licenses when redistributing the
+    ;; program provided by this package.
+    (license (list license:cc0 license:asl2.0))))
diff --git a/gnu/packages/cryptsetup.scm b/gnu/packages/cryptsetup.scm
index 49b82090f0..c8853dca30 100644
--- a/gnu/packages/cryptsetup.scm
+++ b/gnu/packages/cryptsetup.scm
@@ -55,14 +55,14 @@
        ;; GRUB 2.06 supports LUKS2, but does it reliably support all set-ups…?
        "--with-default-luks-format=LUKS1")))
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    (list pkg-config))
    (inputs
-    `(("argon2" ,argon2)
-      ("json-c" ,json-c)
-      ("libgcrypt" ,libgcrypt)
-      ("lvm2" ,lvm2)                    ; device-mapper
-      ("popt" ,popt)
-      ("util-linux" ,util-linux "lib"))) ;libuuid
+    (list argon2
+          json-c
+          libgcrypt
+          lvm2 ; device-mapper
+          popt
+          `(,util-linux "lib"))) ;libuuid
    (synopsis "Set up transparent encryption of block devices using dm-crypt")
    (description
     "Cryptsetup is a utility used to conveniently set up disk encryption based
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index 0fa126fa53..6342f85404 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -84,9 +84,7 @@
                               (assoc-ref %outputs "out")
                               "/lib/cups"))))
       (inputs
-       `(("ghostscript" ,ghostscript)
-         ("cups" ,cups)
-         ("zlib" ,zlib)))
+       (list ghostscript cups zlib))
       (home-page "https://github.com/pdewacht/brlaser")
       (synopsis "Brother laser printer driver")
       (description "Brlaser is a CUPS driver for Brother laser printers.  This
@@ -213,8 +211,8 @@ driver is known to work with these printers:
                                                out "/lib/cups/filter")))
                         #t))))))
     (native-inputs
-     `(("glib" ,glib "bin")             ; for gdbus-codegen
-       ("pkg-config" ,pkg-config)))
+     (list `(,glib "bin") ; for gdbus-codegen
+           pkg-config))
     (inputs
      `(("avahi"        ,avahi)
        ("fontconfig"   ,fontconfig)
@@ -327,10 +325,9 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
                 "#elif defined(HAVE_AVAHI)"))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("zlib"  ,zlib)
-       ("gnutls" ,gnutls)))
+     (list zlib gnutls))
     (home-page "https://openprinting.github.io/")
     (synopsis "The Common Unix Printing System")
     (description
@@ -486,11 +483,7 @@ device-specific programs to convert and print many types of files.")
                 "0a52jw6rm7lr5nbyksiia0rn7sasyb5cjqcb95z1wxm2yprgi6lm"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("glib" ,glib)
-       ("polkit" ,polkit)
-       ("cups" ,cups)))
+     (list intltool pkg-config glib polkit cups))
     (home-page "https://www.freedesktop.org/wiki/Software/cups-pk-helper/")
     (synopsis "PolicyKit helper to configure CUPS with fine-grained privileges")
     (description
@@ -502,14 +495,14 @@ should only be used as part of the Guix cups-pk-helper service.")
 (define-public hplip
   (package
     (name "hplip")
-    (version "3.21.6")
+    (version "3.21.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/hplip/hplip/" version
                                   "/hplip-" version ".tar.gz"))
               (sha256
                (base32
-                "1jkvbq64pxn5rg25pk13xwn5xr2bn0sa95yvh2q4ys0kv79n0cyc"))
+                "0q3adcp8iygravp4bq4gw14jk20c5rhnawj1333qyw8yvlghw8yy"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -524,9 +517,13 @@ should only be used as part of the Guix cups-pk-helper service.")
                   (delete-file "prnt/hpcups/ImageProcessor.h")
                   (substitute* "Makefile.in"
                     ((" -lImageProcessor ") " ")
-                    (("(\\@HPLIP_BUILD_TRUE\\@[[:blank:]]*).*libImageProcessor.*"
+                    ;; Turn shell commands inside an if…fi into harmless no-ops.
+                    (("^(\\@HPLIP_BUILD_TRUE\\@[[:blank:]]*).*libImageProcessor.*"
                       _ prefix)
-                     (string-append prefix ":; \\\n")))
+                     (string-append prefix ": ; \\\n"))
+                    ;; Remove the lines adding file targets altogether.
+                    (("^\\@FULL_BUILD_TRUE\\@.*libImageProcessor.*")
+                     ""))
 
                   ;; Install binaries under libexec/hplip instead of
                   ;; share/hplip; that'll at least ensure they get stripped.
@@ -688,8 +685,7 @@ should only be used as part of the Guix cups-pk-helper service.")
        ("sane-backends" ,sane-backends-minimal)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)))))
+     (list perl pkg-config))))
 
 (define-public hplip-minimal
   (package/inherit hplip
@@ -731,11 +727,9 @@ should only be used as part of the Guix cups-pk-helper service.")
     (home-page
      "https://wiki.linuxfoundation.org/openprinting/database/foomatic")
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list perl pkg-config))
     (inputs
-     `(("dbus" ,dbus)
-       ("a2ps" ,a2ps)))
+     (list dbus a2ps))
     (arguments
      '( ;; Specify the installation directories.
        #:configure-flags (list (string-append "ac_cv_path_CUPS_BACKENDS="
@@ -750,7 +744,7 @@ should only be used as part of the Guix cups-pk-helper service.")
                                (string-append "ac_cv_path_PPR_LIB="
                                               (assoc-ref %outputs "out")
                                               "/lib/ppr/lib")
-
+                               "CFLAGS=-fcommon"
                                ;; For some reason these are misdiagnosed.
                                "ac_cv_func_malloc_0_nonnull=yes"
                                "ac_cv_func_realloc_0_nonnull=yes")
@@ -849,14 +843,12 @@ printer/driver specific, but spooler-independent PPD file.")
        #:tests? #f                                ;no tests
        #:make-flags '("CC=gcc")))
     (inputs
-     `(("coreutils" ,coreutils)
-       ("sed" ,sed)
-       ("ghostscript" ,ghostscript)
-       ("foomatic-filters" ,foomatic-filters)))   ;for 'foomatic-rip'
+     (list coreutils sed ghostscript foomatic-filters))   ;for 'foomatic-rip'
     (native-inputs
-     `(("bc" ,bc)
-       ("groff" ,groff)))
-    (home-page "http://foo2zjs.rkkda.com/")
+     (list bc groff))
+    ;; The domain has expired and no one has meaningfully taken up the torch.
+    (home-page (string-append "https://web.archive.org/web/20210129024712/"
+                              "http://foo2zjs.rkkda.com/"))
     (synopsis "Printer driver for ZjStream-based printers")
     (description
      "foo2zjs is a printer driver for printers that use the Zenographics
@@ -917,8 +909,7 @@ HP@tie{}LaserJet, and possibly other printers.  See @file{README} for details.")
                  (for-each (cut invoke "gzip" "-9" <>)
                            (find-files "share/cups" "\\.ppd$")))))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (inputs
      `(("cups" ,cups-minimal)))
     (synopsis "ESC/P-R printer driver")
@@ -930,9 +921,6 @@ language.")
     (home-page "http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX")
     (license license:gpl2+)))
 
-(define-public escpr
-  (deprecated-package "escpr" epson-inkjet-printer-escpr))
-
 (define-public splix
   ;; Last released in 2009 <https://sourceforge.net/projects/splix/files/>.
   ;; Last SVN commit was 2013 <https://svn.code.sf.net/p/splix/code/splix/>.
@@ -1021,7 +1009,7 @@ obtained and installed separately.")
      '(;; Tests require CUPS to be running
        #:tests? #f))
     (inputs
-     `(("cups" ,cups)))
+     (list cups))
     (home-page "https://github.com/zdohnal/pycups")
     (synopsis "Python bindings for libcups")
     (description
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index 063a919700..9a9d788ceb 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -57,24 +57,20 @@
 (define-public curl
   (package
    (name "curl")
-   (version "7.77.0")
+   (version "7.79.1")
    (source (origin
              (method url-fetch)
              (uri (string-append "https://curl.haxx.se/download/curl-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0jsrc97vbghvljic997r9nypc9qqddcil2lzvv032br8ahn5hr0g"))
-             (patches (search-patches "curl-use-ssl-cert-env.patch"
-                                      "curl-7.77-tls-priority-string.patch"))))
+               "129n9hi7rbg3s112chyadhp4y27ppb5i65n12wm77aw2255zf1h6"))
+             (patches (search-patches "curl-use-ssl-cert-env.patch"))))
    (build-system gnu-build-system)
    (outputs '("out"
               "doc"))                             ;1.2 MiB of man3 pages
-   (inputs `(("gnutls" ,gnutls)
-             ("libidn" ,libidn)
-             ("mit-krb5" ,mit-krb5)
-             ("nghttp2" ,nghttp2 "lib")
-             ("zlib" ,zlib)))
+   (inputs (list gnutls libidn mit-krb5
+                 `(,nghttp2 "lib") zlib))
    (native-inputs
      `(("nghttp2" ,nghttp2)
        ("perl" ,perl)
@@ -112,8 +108,7 @@
             ;; Do not save the configure options to avoid unnecessary references.
             (substitute* "curl-config.in"
               (("@CONFIGURE_OPTIONS@")
-               "\"not available\""))
-            #t))
+               "\"not available\""))))
         (add-after
          'install 'move-man3-pages
          (lambda* (#:key outputs #:allow-other-keys)
@@ -122,18 +117,17 @@
                  (doc (assoc-ref outputs "doc")))
              (mkdir-p (string-append doc "/share/man"))
              (rename-file (string-append out "/share/man/man3")
-                          (string-append doc "/share/man/man3"))
-             #t)))
-        (replace
-         'check
-         (lambda _
-           (substitute* "tests/runtests.pl"
-             (("/bin/sh") (which "sh")))
+                          (string-append doc "/share/man/man3")))))
+        (replace 'check
+          (lambda* (#:key tests? #:allow-other-keys)
+            (substitute* "tests/runtests.pl"
+              (("/bin/sh") (which "sh")))
 
-           ;; The top-level "make check" does "make -C tests quiet-test", which
-           ;; is too quiet.  Use the "test" target instead, which is more
-           ;; verbose.
-           (invoke "make" "-C" "tests" "test"))))))
+            (when tests?
+              ;; The top-level "make check" does "make -C tests quiet-test", which
+              ;; is too quiet.  Use the "test" target instead, which is more
+              ;; verbose.
+              (invoke "make" "-C" "tests" "test")))))))
    (synopsis "Command line tool for transferring data with URL syntax")
    (description
     "curl is a command line tool for transferring data with URL syntax,
@@ -193,9 +187,8 @@ tunneling, and so on.")
                             (string-append man "/kurly.1")))
                #t))))))
     (inputs
-     `(("go-github-com-alsm-ioprogress" ,go-github-com-alsm-ioprogress)
-       ("go-github-com-aki237-nscjar" ,go-github-com-aki237-nscjar)
-       ("go-github-com-urfave-cli" ,go-github-com-urfave-cli)))
+     (list go-github-com-alsm-ioprogress go-github-com-aki237-nscjar
+           go-github-com-urfave-cli))
     (synopsis "Command-line HTTP client")
     (description "kurly is an alternative to the @code{curl} program written in
 Go.  kurly is designed to operate in a similar manner to curl, with select
@@ -266,10 +259,9 @@ not offer a replacement for libcurl.")
               ;; The build system does not actually compile the Scheme module.
               ;; So we can compile it and put it in the right place in one go.
               (invoke "guild" "compile" curl.scm "-o" curl.go)))))))
-   (native-inputs `(("pkg-config" ,pkg-config)))
+   (native-inputs (list pkg-config))
    (inputs
-    `(("curl" ,curl)
-      ("guile" ,guile-3.0)))
+    (list curl guile-3.0))
    (home-page "http://www.lonelycactus.com/guile-curl.html")
    (synopsis "Curl bindings for Guile")
    (description "@code{guile-curl} is a project that has procedures that allow
@@ -282,8 +274,7 @@ FTP servers.  It is based on the curl library.")
     (inherit guile-curl)
     (name "guile2.2-curl")
     (inputs
-     `(("curl" ,curl)
-       ("guile" ,guile-2.2)))))
+     (list curl guile-2.2))))
 
 (define-public curlpp
   (package
@@ -304,7 +295,7 @@ FTP servers.  It is based on the curl library.")
      '(#:tests? #f))
     ;; The installed version needs the header files from the C library.
     (propagated-inputs
-     `(("curl" ,curl)))
+     (list curl))
     (synopsis "C++ wrapper around libcURL")
     (description
      "This package provides a free and easy-to-use client-side C++ URL
@@ -335,7 +326,7 @@ more!")
      '(#:install-plan
        '(("./h2c" "bin/"))))
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "https://curl.se/h2c/")
     (synopsis "Convert HTTP headers to a curl command line")
     (description
diff --git a/gnu/packages/cvassistant.scm b/gnu/packages/cvassistant.scm
index 3f3a6f7492..9af5c7976f 100644
--- a/gnu/packages/cvassistant.scm
+++ b/gnu/packages/cvassistant.scm
@@ -69,9 +69,7 @@
          (replace 'configure
            (lambda _ (invoke "qmake"))))))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("quazip" ,quazip)
-       ("zlib" ,zlib)))
+     (list qtbase-5 quazip-0 zlib))
     (home-page "https://cvassistant.sourceforge.io/")
     (synopsis "Job application organizer")
     (description "Whether you're looking for a job or trying to help
diff --git a/gnu/packages/cybersecurity.scm b/gnu/packages/cybersecurity.scm
index 9ec0480515..c61342c0ba 100644
--- a/gnu/packages/cybersecurity.scm
+++ b/gnu/packages/cybersecurity.scm
@@ -35,16 +35,16 @@
 (define-public ropgadget
   (package
     (name "ropgadget")
-    (version "6.5")
+    (version "6.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ROPGadget" version))
        (sha256
-        (base32 "0p4h8xi27xcicz8sq6xi40hbj99mcsnnla6ar2r17vqapbr5c3jc"))))
+        (base32 "08ms7x4af07970ij9899l75sghnxsa7xyx73gkn6gv0l05p1hqfw"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-capstone" ,python-capstone)))
+     (list python-capstone))
     (home-page "http://shell-storm.org/project/ROPgadget/")
     (synopsis "Semiautomatic return oriented programming")
     (description
@@ -68,23 +68,22 @@ chains of gadgets to execute system calls.")
     (arguments
      '(#:tests? #f))                 ;XXX: needs a specific version of unicorn
     (propagated-inputs
-     `(("capstone" ,capstone)
-       ("python-dateutil" ,python-dateutil)
-       ("python-intervaltree" ,python-intervaltree)
-       ("python-mako" ,python-mako)
-       ("python-packaging" ,python-packaging)
-       ("python-paramiko" ,python-paramiko)
-       ("python-psutil" ,python-psutil)
-       ("python-pyelftools" ,python-pyelftools)
-       ("python-pygments" ,python-pygments)
-       ("python-pyserial" ,python-pyserial)
-       ("python-pysocks" ,python-pysocks)
-       ("python-requests" ,python-requests)
-       ("ropgadget" ,ropgadget)
-       ("python-six" ,python-six)
-       ("python-sortedcontainers"
-        ,python-sortedcontainers)
-       ("unicorn" ,unicorn)))
+     (list capstone
+           python-dateutil
+           python-intervaltree
+           python-mako
+           python-packaging
+           python-paramiko
+           python-psutil
+           python-pyelftools
+           python-pygments
+           python-pyserial
+           python-pysocks
+           python-requests
+           ropgadget
+           python-six
+           python-sortedcontainers
+           unicorn))
     (home-page "https://github.com/Gallopsled/pwntools")
     (synopsis
      "Capture-the-flag (CTF) framework and exploit development library")
diff --git a/gnu/packages/cyrus-sasl.scm b/gnu/packages/cyrus-sasl.scm
index 43c2099968..2cd18f3e5e 100644
--- a/gnu/packages/cyrus-sasl.scm
+++ b/gnu/packages/cyrus-sasl.scm
@@ -48,14 +48,11 @@
                                      "cyrus-sasl-CVE-2019-19906.patch"))))
    (build-system gnu-build-system)
    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
-   (inputs `(("gdbm" ,gdbm)
-             ("openssl" ,openssl)))
+     (list autoconf automake libtool))
+   (inputs (list gdbm openssl))
    (propagated-inputs
-    `(;; cyrus-sasl.pc refers to -lkrb5, so propagate it.
-      ("mit-krb5" ,mit-krb5)))
+    (list ;; cyrus-sasl.pc refers to -lkrb5, so propagate it.
+          mit-krb5))
    (arguments
     '(#:configure-flags (list (string-append "--with-plugindir="
                                              (assoc-ref %outputs "out")
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index bd6d458c72..1f88524db3 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -22,12 +22,12 @@
 ;;; Copyright © 2017, 2020 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
 ;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
-;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017, 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2017, 2018 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2017, 2018 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2017, 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2015, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Kristofer Buffington <kristoferbuffington@gmail.com>
 ;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
@@ -36,7 +36,6 @@
 ;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us>
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
-;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
@@ -53,6 +52,8 @@
 ;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
 ;;; Copyright © 2021 Simon Streit <simon@netpanic.org>
 ;;; Copyright © 2021 Alexandre Hannud Abdo <abdo@member.fsf.org>
+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -90,6 +91,7 @@
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gawk)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -139,12 +141,15 @@
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages terminals)
+  #:use-module (gnu packages texinfo)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
+  #:use-module (guix gexp)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -182,24 +187,24 @@
                                "4store-fix-buildsystem.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)
-       ("python" ,python-2)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gettext-minimal)
-       ("libtool" ,libtool)
-       ("pcre" ,pcre "bin")                       ;for 'pcre-config'
-       ("pkg-config" ,pkg-config)))
+     (list perl
+           python-2
+           autoconf
+           automake
+           gettext-minimal
+           libtool
+           `(,pcre "bin") ;for 'pcre-config'
+           pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("rasqal" ,rasqal)
-       ("libxml2" ,libxml2)
-       ("raptor2" ,raptor2)
-       ("readline" ,readline)
-       ("avahi" ,avahi)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("openssl" ,openssl)
-       ("util-linux" ,util-linux "lib")))
+     (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")
@@ -240,12 +245,10 @@ either single machines or networked clusters.")
              #t)))
        #:test-target "test"))
     (inputs
-     `(("postgresql" ,postgresql)
-       ("util-linux" ,util-linux)))
+     (list postgresql util-linux))
     (native-inputs
      ;; For tests.
-     `(("ruby" ,ruby)
-       ("which" ,which)))
+     (list ruby which))
     (home-page "https://eradman.com/ephemeralpg/")
     (synopsis "Run temporary PostgreSQL databases")
     (description
@@ -271,11 +274,8 @@ garbage-collected after a configurable number of seconds (the default is
     (arguments
      '(#:tests? #f)) ;; No testsuite.
     (propagated-inputs
-     `(("ruby-httpclient" ,ruby-httpclient)
-       ("ruby-multi-json" ,ruby-multi-json)
-       ("ruby-progress_bar" ,ruby-progress_bar)
-       ("ruby-rubyzip" ,ruby-rubyzip)
-       ("ruby-thor" ,ruby-thor)))
+     (list ruby-httpclient ruby-multi-json ruby-progress_bar ruby-rubyzip
+           ruby-thor))
     (synopsis "Utility for dumping and restoring ElasticSearch indexes")
     (description
      "This package provides a utility for dumping the contents of an
@@ -421,12 +421,12 @@ ElasticSearch server")
                                  "lib/firebird/plugins/udr"))
                  #t)))))))
     (inputs
-     `(("boost" ,boost)
-       ("editline" ,editline)
-       ("icu4c" ,icu4c-67)
-       ("libtommath" ,libtommath)
-       ("ncurses" ,ncurses)
-       ("zlib" ,zlib)))
+     (list boost
+           editline
+           icu4c-67
+           libtommath
+           ncurses
+           zlib))
     (home-page "https://www.firebirdsql.org")
     (synopsis "Relational database with many ANSI SQL standard features")
     (description
@@ -464,7 +464,7 @@ database later.")
 (define-public leveldb
   (package
     (name "leveldb")
-    (version "1.22")
+    (version "1.23")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -473,12 +473,27 @@ database later.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0qrnhiyq7r4wa1a4wi82zgns35smj94mcjsc7kfs1k6ia9ys79z7"))))
+                "1chxkhb6ajdmj4p8535k4472fbmqvcismll6aapkarsr45yrvgs4"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON" "-DLEVELDB_BUILD_TESTS=ON")))
+     (list #:configure-flags
+           #~(list "-DBUILD_SHARED_LIBS=ON"
+                   "-DLEVELDB_BUILD_TESTS=ON"
+
+                   ;; Don't install(!) the third_party test frameworks below.
+                   "-DINSTALL_GTEST=OFF"
+                   "-DBENCHMARK_ENABLE_INSTALL=OFF")
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'unpack-third_party-sources
+                 ;; These are only for testing, so copying source is fine.
+                 (lambda _
+                   (copy-recursively #$(package-source googletest)
+                                     "third_party/googletest")
+                   (copy-recursively #$(package-source googlebenchmark)
+                                     "third_party/benchmark"))))))
     (inputs
-     `(("snappy" ,snappy)))
+     (list snappy))
     (home-page "https://github.com/google/leveldb")
     (synopsis "Fast key-value storage library")
     (description
@@ -489,18 +504,17 @@ mapping from string keys to string values.")
 (define-public memcached
   (package
     (name "memcached")
-    (version "1.6.9")
+    (version "1.6.12")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "https://memcached.org/files/memcached-" version ".tar.gz"))
        (sha256
-        (base32 "1lcjy1b9krnb2gk72qd1fvivlfiyfvknfi3wngyvyk9ifzijr9nm"))))
+        (base32 "0ii3z2mhjrimc6mv5z5x6bwp1s2bbzppja4m3pnmd5zgh9gs74gj"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libevent" ,libevent)
-       ("cyrus-sasl" ,cyrus-sasl)))
+     (list libevent cyrus-sasl))
     (home-page "https://memcached.org/")
     (synopsis "In-memory caching service")
     (description "Memcached is an in-memory key-value store.  It has a small
@@ -527,17 +541,16 @@ applications.")
                (search-patches "libmemcached-build-with-gcc7.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("memcached" ,memcached)
-       ("libtool" ,libtool)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("bison" ,bison)
-       ("flex" ,flex)
-       ("perl" ,perl)
-       ("python-sphinx" ,python-sphinx))) ;to build the HTML doc.
+     (list memcached
+           libtool
+           autoconf
+           automake
+           bison
+           flex
+           perl
+           python-sphinx)) ;to build the HTML doc.
     (inputs
-     `(("libevent" ,libevent)
-       ("cyrus-sasl" ,cyrus-sasl)))
+     (list libevent cyrus-sasl))
     (outputs '("out" "doc"))
     (arguments
      '(#:tests? #f                      ;many tests fail and use too much time
@@ -597,12 +610,9 @@ the API, and provides features such as:
            (lambda _
              (invoke "memcached" "-d"))))))
     (native-inputs
-     `(("memcached" ,memcached)
-       ("python-nose" ,python-nose)))
+     (list memcached python-nose))
     (inputs
-     `(("libmemcached" ,libmemcached)
-       ("zlib" ,zlib)
-       ("cyrus-sasl" ,cyrus-sasl)))
+     (list libmemcached zlib cyrus-sasl))
     (home-page "http://sendapatch.se/projects/pylibmc/")
     (synopsis "Python client for memcached")
     (description
@@ -611,32 +621,58 @@ around TangentOrg’s libmemcached library, and can be used as a drop-in
 replacement for the code@{python-memcached} library.")
     (license license:bsd-3)))
 
-(define-public python2-pylibmc
-  (package-with-python2 python-pylibmc))
+(define-public litecli
+ (package
+  (name "litecli")
+  (version "1.6.0")
+  (source
+   (origin
+     (method url-fetch)
+     (uri (pypi-uri "litecli" version))
+     (sha256
+      (base32 "1yb706mgzizzijm1k0fbny98jf58qh5q6f2870rbplxlfla4w9sd"))))
+  (build-system python-build-system)
+  (propagated-inputs
+   (list python-cli-helpers
+         python-click
+         python-configobj
+         python-prompt-toolkit
+         python-pygments
+         python-sqlparse))
+  (native-inputs
+   (list python-mock python-pytest))
+  (home-page "https://litecli.com")
+  (synopsis "CLI for SQLite databases")
+  (description
+   "@code{litecli} is a command-line client for SQLite databases that has
+auto-completion and syntax highlighting.")
+  (license license:bsd-3)))
 
 (define-public mycli
   (package
     (name "mycli")
-    (version "1.22.2")
+    (version "1.24.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "mycli" version))
         (sha256
-          (base32 "1lq2x95553vdmhw13cxcgsd2g2i32izhsb7hxd4m1iwf9b3msbpv"))))
+          (base32 "0rij9nw20zhqr7cqnkm8daw8b1wdc9zb6ny1ji9qz5557nz9i3bl"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))                    ; tests expect a running MySQL
     (propagated-inputs
-      `(("python-cli-helpers" ,python-cli-helpers)
-        ("python-click" ,python-click)
-        ("python-configobj" ,python-configobj)
-        ("python-cryptography" ,python-cryptography)
-        ("python-prompt-toolkit" ,python-prompt-toolkit)
-        ("python-pygments" ,python-pygments)
-        ("python-pymysql" ,python-pymysql)
-        ("python-sqlparse" ,python-sqlparse)))
-    (home-page "http://mycli.net")
+      (list python-cli-helpers
+            python-click
+            python-configobj
+            python-cryptography
+            python-prompt-toolkit
+            python-pyaes
+            python-pygments
+            python-pymysql
+            python-pyperclip
+            python-sqlparse))
+    (home-page "https://www.mycli.net")
     (synopsis
       "Terminal Client for MySQL with AutoCompletion and Syntax Highlighting")
     (description
@@ -695,19 +731,45 @@ auto-completion and syntax highlighting.")
                        (for-each delete-file
                                  (find-files (string-append out "/bin")
                                              "_embedded$"))
+                       #t)))
+                  (add-after
+                   'install 'wrap-mysql_helpers
+                   (lambda* (#:key inputs outputs #:allow-other-keys)
+                     (let* ((out (assoc-ref outputs "out"))
+                            (bin (string-append out "/bin"))
+                            (awk (assoc-ref inputs "gawk"))
+                            (coreutils (assoc-ref inputs "coreutils"))
+                            (grep (assoc-ref inputs "grep"))
+                            (ps (assoc-ref inputs "procps"))
+                            (sed (assoc-ref inputs "sed")))
+                       (wrap-program (string-append bin "/mysql_config")
+                         `("PATH" ":" suffix
+                           (,(string-append awk "/bin")
+                            ,(string-append coreutils "/bin")
+                            ,(string-append sed "/bin"))))
+                       (wrap-program (string-append bin "/mysqld_safe")
+                         `("PATH" ":" suffix
+                           (,(string-append awk "/bin")
+                            ,(string-append coreutils "/bin")
+                            ,(string-append grep "/bin")
+                            ,(string-append ps "/bin")
+                            ,(string-append sed "/bin"))))
                        #t))))))
     (native-inputs
-     `(("bison" ,bison)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list bison perl pkg-config))
     (inputs
-     `(("boost" ,boost-for-mysql)
-       ("libaio" ,libaio)
-       ("libtirpc" ,libtirpc)
-       ("ncurses" ,ncurses)
-       ("openssl" ,openssl)
-       ("rpcsvc-proto" ,rpcsvc-proto) ; rpcgen
-       ("zlib" ,zlib)))
+     (list boost-for-mysql
+           coreutils
+           gawk
+           grep
+           libaio
+           libtirpc
+           ncurses
+           openssl
+           procps
+           rpcsvc-proto ; rpcgen
+           sed
+           zlib))
     (home-page "https://www.mysql.com/")
     (synopsis "Fast, easy to use, and popular database")
     (description
@@ -719,7 +781,7 @@ Language.")
 (define-public mariadb
   (package
     (name "mariadb")
-    (version "10.5.8")
+    (version "10.5.12")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://downloads.mariadb.com/MariaDB"
@@ -727,9 +789,7 @@ Language.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1s3vfm73911cddjhgpcbkya6nz7ag2zygg56qqzwscn5ybv28j7b"))
-              (patches (search-patches "mariadb-CVE-2021-27928.patch"
-                                       "mariadb-cmake-compat.patch"))
+                "1gg4h9ahmk78cx01zyw0fqr6hhd78fsyhs0s34p3gi9hkak1qkxb"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -748,8 +808,7 @@ Language.")
                               (unless (string-suffix? "CMakeLists.txt" file)
                                 (delete-file file)))
                             (append (find-files "extra/wolfssl")
-                                    (find-files "zlib")))
-                  #t))))
+                                    (find-files "zlib")))))))
     (build-system cmake-build-system)
     (outputs '("out" "lib" "dev"))
     (arguments
@@ -804,6 +863,10 @@ Language.")
                         "/share/mysql/support-files")
          "-DINSTALL_MYSQLSHAREDIR=share/mysql"
          "-DINSTALL_SHAREDIR=share")
+       ;; The test suite has spurious failures (mostly timeouts) if run in
+       ;; parallel on various machines.  Only enable parallel tests on
+       ;; architectures which are likely to not have this issue.
+       #:parallel-tests? ,(target-x86-64?)
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'adjust-output-references
@@ -831,37 +894,32 @@ Language.")
                 "${INSTALL_INCLUDEDIR}"))
              (substitute* "cmake/mariadb_connector_c.cmake"
                (("\\\\\\$\\{CMAKE_INSTALL_PREFIX\\}/\\$\\{INSTALL_BINDIR\\}")
-                "${INSTALL_BINDIR}"))
-             #t))
+                "${INSTALL_BINDIR}"))))
          (add-after 'unpack 'adjust-tests
            (lambda _
              (let ((disabled-tests
                     '(;; These fail because root@hostname == root@localhost in
                       ;; the build environment, causing a user count mismatch.
                       ;; See <https://jira.mariadb.org/browse/MDEV-7761>.
-                      "funcs_1.is_columns_mysql"
-                      "main.join_cache"
                       "main.explain_non_select"
-                      "main.stat_tables"
-                      "main.stat_tables_innodb"
                       "main.upgrade_MDEV-19650"
                       "roles.acl_statistics"
 
+                      ;; Probably same as above, test failure reported upstream:
+                      ;; <https://jira.mariadb.org/browse/MDEV-26320>.
+                      "main.selectivity_no_engine"
+
                       ;; FIXME: This test checks various table encodings and
                       ;; fails because Guix defaults to UTF8 instead of the
                       ;; upstream default latin1_swedish_ci.  It's not easily
                       ;; substitutable because several encodings are tested.
-                      "main.sp2"
+                      "main.system_mysql_db"
 
                       ;; XXX: This test occasionally fails on i686-linux:
                       ;; <https://jira.mariadb.org/browse/MDEV-24458>
                       ,@(if (string-prefix? "i686" (%current-system))
                             '("main.myisampack")
-                            '())
-
-                      ;; This file contains a time bomb which makes it fail after
-                      ;; 2030-12-31.  See <https://bugs.gnu.org/34351> for details.
-                      "main.mysqldump"))
+                            '())))
 
                    ;; This file contains a list of known-flaky tests for this
                    ;; release.  Append our own items.
@@ -885,8 +943,7 @@ Language.")
 
                (substitute* "mysql-test/mysql-test-run.pl"
                  (("/bin/ls") (which "ls"))
-                 (("/bin/sh") (which "sh")))
-               #t)))
+                 (("/bin/sh") (which "sh"))))))
          (add-before 'configure 'disable-plugins
            (lambda _
              (let ((disable-plugin (lambda (name)
@@ -897,24 +954,25 @@ Language.")
                                          (format port "\n")))))
                    (disabled-plugins '(;; XXX: Causes a test failure.
                                        "disks")))
-               (for-each disable-plugin disabled-plugins)
-               #t)))
+               (for-each disable-plugin disabled-plugins))))
          (replace 'check
-           (lambda* (#:key (tests? #t) #:allow-other-keys)
+           (lambda* (#:key (tests? #t) parallel-tests? #:allow-other-keys)
              (if tests?
                  (with-directory-excursion "mysql-test"
                    (invoke "./mtr" "--verbose"
                            "--retry=3"
+                           "--suite=main"
                            "--testcase-timeout=40"
                            "--suite-timeout=600"
-                           "--parallel" (number->string (parallel-job-count))
+                           "--parallel" (number->string (if parallel-tests?
+                                                          (parallel-job-count)
+                                                          1))
                            ;; Skip the replication tests: they are very I/O
                            ;; intensive and frequently causes indeterministic
                            ;; failures even on powerful hardware.
                            "--skip-rpl"
                            "--skip-test-list=unstable-tests"))
-                 (format #t "test suite not run~%"))
-             #t))
+                 (format #t "test suite not run~%"))))
          (add-after
           'install 'post-install
           (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -959,12 +1017,9 @@ Language.")
               (substitute* (list (string-append dev "/bin/mysql_config")
                                  (string-append dev "/lib/pkgconfig/mariadb.pc"))
                 (("-lssl -lcrypto" all)
-                 (string-append "-L" openssl "/lib " all)))
-
-              #t))))))
+                 (string-append "-L" openssl "/lib " all)))))))))
     (native-inputs
-     `(("bison" ,bison)
-       ("perl" ,perl)))
+     (list bison perl))
     (inputs
      `(("jemalloc" ,jemalloc)
        ("libaio" ,libaio)
@@ -1000,7 +1055,7 @@ as a drop-in replacement of MySQL.")
        (sha256
         (base32 "0xb8fiissblxb319y5ifqqp86zblwis789ipb753pcb4zpnsaw82"))))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f))                    ; no tests
@@ -1013,21 +1068,19 @@ developed in C/C++ to MariaDB and MySQL databases.")
 (define-public galera
   (package
     (name "galera")
-    (version "26.4.7")
+    (version "26.4.10")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (commit "bac8171266cb982fe013ce496d78085438c6f23e")
                     (url "https://github.com/codership/galera")
+                    (commit (string-append "release_" version))
                     (recursive? #t)))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "0h7s670pcasq8wzprhyxqfca2cghi62b8xz2kikb2a86wd453qil"))))
+               (base32 "1n6zhzwj713ixyqvcjn4ldlq0y9fxqgvmqv3cj3h4207v9lwlxxz"))))
     (build-system cmake-build-system)
     (inputs
-     `(("check" ,check)
-       ("boost" ,boost)
-       ("openssl" ,openssl)))
+     (list check boost openssl))
     (home-page "https://github.com/codership/galera/")
     (synopsis "Extension to the MariaDB database server")
     (description
@@ -1174,8 +1227,7 @@ pictures, sounds, or video.")
                (install-file "build/bin/pgloader"  bin))
              #t)))))
     (native-inputs
-     `(("buildapp" ,buildapp)
-       ("sbcl" ,sbcl)))
+     (list buildapp sbcl))
     (inputs
      `(("alexandria" ,sbcl-alexandria)
        ("cl-abnf" ,sbcl-cl-abnf)
@@ -1227,9 +1279,9 @@ CSV, DB3, iXF, SQLite, MS-SQL or MySQL to PostgreSQL.")
         (base32 "1ry8lxgdc1p3k7gbw20r405jqi5lvhi5wk83kxdbiv8xv3f5kh6q"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-unittest2" ,python-unittest2)))
+     (list python-unittest2))
     (inputs
-     `(("python-cryptography" ,python-cryptography)))
+     (list python-cryptography))
     (arguments
      `(#:tests? #f))                    ; tests expect a running MySQL
     (home-page "https://github.com/PyMySQL/PyMySQL/")
@@ -1307,30 +1359,43 @@ types are supported, as is encryption.")
     (license license:gpl3+)
     (home-page "https://www.gnu.org/software/recutils/")))
 
-(define-public emacs-recutils
+(define-public emacs-rec-mode
   (package
-    (inherit recutils)
-    (name "emacs-recutils")
+    (name "emacs-rec-mode")
+    (version "1.8.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://elpa.gnu.org/packages/"
+                                  "rec-mode-" version ".tar"))
+              (sha256
+               (base32
+                "06mjj1la2v8zdhsflj3mwcp7qnkj7gxzm8wbk2pli1h8vnq2zvd0"))
+              (snippet '(begin (delete-file "rec-mode.info")))))
     (build-system emacs-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'change-directory
+         (add-before 'install 'make-info
            (lambda _
-             (chdir "etc")
-             #t)))))
-    (native-inputs '())
-    (inputs '())
+             (invoke "makeinfo" "--no-split"
+                     "-o" "rec-mode.info" "rec-mode.texi"))))))
+    (native-inputs
+     `(("texinfo" ,texinfo)))
+    (home-page "https://www.gnu.org/software/recutils/")
     (synopsis "Emacs mode for working with recutils database files")
     (description "This package provides an Emacs major mode @code{rec-mode}
 for working with GNU Recutils text-based, human-editable databases.  It
 supports editing, navigation, and querying of recutils database files
-including field and record folding.")))
+including field and record folding.")
+    (license license:gpl3+)))
+
+(define-public emacs-recutils
+  (deprecated-package "emacs-recutils" emacs-rec-mode))
 
 (define-public rocksdb
   (package
     (name "rocksdb")
-    (version "6.11.4")
+    (version "6.25.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1339,35 +1404,37 @@ including field and record folding.")))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0n19p9cd13jg0lnibrzwkxs4xlrhyj3knypkd2ic41arbds0bdnl"))
+                "14150kd7hk8jjwpm28bf3a0agrhyapbq9lgnl00l385vfb73wnzl"))
               (modules '((guix build utils)))
               (snippet
                '(begin
                   ;; TODO: unbundle gtest.
                   (delete-file "build_tools/gnu_parallel")
                   (substitute* "Makefile"
-                    (("build_tools/gnu_parallel") "parallel"))
-                  #t))))
+                    (("build_tools/gnu_parallel") "parallel"))))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags (list "CC=gcc" "V=1"
+     `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
+                          (string-append "PREFIX=" (assoc-ref %outputs "out"))
                           ;; Ceph requires that RTTI is enabled.
                           "USE_RTTI=1"
-                          "date=1970-01-01" ; build reproducibly
-                          (string-append "INSTALL_PATH="
-                                         (assoc-ref %outputs "out"))
+                          ;; Don't pass '-march=native' to the compiler.
+                          "PORTABLE=1"
+                          ;; Use a deterministic date stamp.
+                          "build_date=1970-01-01"
 
                           ;; Running the full test suite takes hours and require
                           ;; a lot of disk space.  Instead we only run a subset
-                          ;; (see .travis.yml and Makefile).
-                          "ROCKSDBTESTS_END=db_tailing_iter_test")
+                          ;; that exercises platform-specific functionality.
+                          "ROCKSDBTESTS_PLATFORM_DEPENDENT=only")
        #:test-target "check_some"
        ;; Many tests fail on 32-bit platforms. There are multiple reports about
        ;; this upstream, but it's not going to be supported any time soon.
-       #:tests? (let ((system ,(or (%current-target-system)
-                                   (%current-system))))
-                  (or (string-prefix? "x86_64-linux" system)
-                      (string-prefix? "aarch64-linux" system)))
+       #:tests? ,(if (%current-target-system)
+                     #f
+                     (let ((system (%current-system)))
+                       (or (string-prefix? "x86_64-linux" system)
+                           (string-prefix? "aarch64-linux" system))))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-Makefile
@@ -1375,9 +1442,8 @@ including field and record folding.")))
              (substitute* "Makefile"
                ;; Don't depend on the static library when installing.
                (("install: install-static")
-                "install: install-shared")
-               (("#!/bin/sh") (string-append "#!" (which "sh"))))
-             #t))
+                "install:")
+               (("#!/bin/sh") (string-append "#!" (which "sh"))))))
          (delete 'configure)
          ;; The default target is only needed for tests and built on demand.
          (delete 'build)
@@ -1390,41 +1456,35 @@ including field and record folding.")))
              (let ((test-dir (string-append (getcwd) "/../test")))
                (mkdir test-dir)
                (setenv "TEST_TMPDIR" (canonicalize-path test-dir)))))
-         (add-before 'check 'disable-optimizations
-           (lambda _
-             ;; Prevent the build from passing '-march=native' to the compiler.
-             (setenv "PORTABLE" "1")
-             #t))
          (add-before 'check 'disable-failing-tests
            (lambda _
              (substitute* "Makefile"
                ;; These tests reliably fail due to "Too many open files".
                (("^[[:blank:]]+env_test[[:blank:]]+\\\\") "\\")
-               (("^[[:blank:]]+persistent_cache_test[[:blank:]]+\\\\") "\\"))
-             #t))
-         (add-after 'check 'build
+               (("^[[:blank:]]+persistent_cache_test[[:blank:]]+\\\\") "\\"))))
+         (add-after 'check 'clean
+           (lambda _
+             ;; Otherwise stale objects from the tests would interfere.
+             (invoke "make" "clean")))
+         (add-after 'clean 'build
            ;; The default build target is a debug build for tests. The
            ;; install target depends on the "shared_lib" release target
            ;; so we build it here for clarity.
            (lambda* (#:key (make-flags '()) parallel-build? #:allow-other-keys)
-               (apply invoke "make" "shared_lib"
-                      `(,@(if parallel-build?
-                              `("-j" ,(number->string (parallel-job-count)))
-                              '())
-                        ,@make-flags)))))))
+             (apply invoke "make" "shared_lib"
+                    `(,@(if parallel-build?
+                            `("-j" ,(number->string (parallel-job-count)))
+                            '())
+                      ,@make-flags)))))))
     (native-inputs
-     `(("parallel" ,parallel)
-       ("perl" ,perl)
-       ("procps" ,procps)
-       ("python" ,python-2)
-       ("which" ,which)))
+     (list parallel perl procps python which))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("gflags" ,gflags)
-       ("jemalloc" ,jemalloc)
-       ("lz4" ,lz4)
-       ("snappy" ,snappy)
-       ("zlib" ,zlib)))
+     (list bzip2
+           gflags
+           jemalloc
+           lz4
+           snappy
+           zlib))
     (home-page "https://rocksdb.org/")
     (synopsis "Persistent key-value store for fast storage")
     (description
@@ -1453,13 +1513,9 @@ data in a single database.  RocksDB is partially based on @code{LevelDB}.")
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
-     `(("curl" ,curl)
-       ("glib" ,glib)
-       ("libxml2" ,libxml2)
-       ("ncurses" ,ncurses)
-       ("readline" ,readline)))
+     (list curl glib libxml2 ncurses readline))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:make-flags '("CC=gcc")
        #:phases
@@ -1533,20 +1589,20 @@ for example from a shell script.")
                                     path)))))
              #t)))))
     (native-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)
-       ("perl-io-pager" ,perl-io-pager)
-       ("perl-module-build" ,perl-module-build)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-path-class" ,perl-path-class)
-       ("perl-test-deep" ,perl-test-deep)
-       ("perl-test-dir" ,perl-test-dir)
-       ("perl-test-exception" ,perl-test-exception)
-       ("perl-test-file" ,perl-test-file)
-       ("perl-test-file-contents" ,perl-test-file-contents)
-       ("perl-test-mockmodule" ,perl-test-mockmodule)
-       ("perl-test-mockobject" ,perl-test-mockobject)
-       ("perl-test-nowarnings" ,perl-test-nowarnings)
-       ("perl-test-warn" ,perl-test-warn)))
+     (list perl-capture-tiny
+           perl-io-pager
+           perl-module-build
+           perl-module-runtime
+           perl-path-class
+           perl-test-deep
+           perl-test-dir
+           perl-test-exception
+           perl-test-file
+           perl-test-file-contents
+           perl-test-mockmodule
+           perl-test-mockobject
+           perl-test-nowarnings
+           perl-test-warn))
     (inputs
      `(("perl-class-xsaccessor" ,perl-class-xsaccessor)
        ("perl-clone" ,perl-clone)
@@ -1605,10 +1661,8 @@ which uses SQL to describe changes.")
                   "0x3wy40r93p0jv3nbwj9a77wa4ff697d13r0wffmm7q9h3mzsww8"))))
       (build-system python-build-system)
       (inputs
-       `(("python-cryptography" ,python-cryptography)
-         ("python-psycopg2" ,python-psycopg2)
-         ("python-pymysql" ,python-pymysql)
-         ("python-sqlalchemy" ,python-sqlalchemy)))
+       (list python-cryptography python-psycopg2 python-pymysql
+             python-sqlalchemy))
       (home-page "https://github.com/coffeeandscripts/sqlcrush")
       (synopsis "Text console-based database viewer and editor")
       (description
@@ -1641,12 +1695,12 @@ changes.")
                (invoke "./configure"
                        (string-append "--prefix=" out))))))))
     (native-inputs
-     `(;; TODO: Build the documentation.
-       ;; ("docbook-xsl" ,docbook-xsl)
-       ;; ("libxml2" ,libxml2)
-       ;; ("libxslt" ,libxslt)
-       ("python" ,python)                         ;for the Waf build system
-       ("which" ,which)))
+     (list ;; TODO: Build the documentation.
+           ;; ("docbook-xsl" ,docbook-xsl)
+           ;; ("libxml2" ,libxml2)
+           ;; ("libxslt" ,libxslt)
+           python ;for the Waf build system
+           which))
     (home-page "https://tdb.samba.org/")
     (synopsis "Trivial database")
     (description
@@ -1687,35 +1741,35 @@ extremely small.")
         (base32 "1rh7idjjbibc1zmiaaarask434lh0lx7f2xyfwmy37k9fa0xcpmh"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-dbd-sqlite" ,perl-dbd-sqlite)
-       ("perl-file-temp" ,perl-file-temp)
-       ("perl-module-install" ,perl-module-install)
-       ("perl-package-stash" ,perl-package-stash)
-       ("perl-test-deep" ,perl-test-deep)
-       ("perl-test-exception" ,perl-test-exception)
-       ("perl-test-warn" ,perl-test-warn)))
+     (list perl-dbd-sqlite
+           perl-file-temp
+           perl-module-install
+           perl-package-stash
+           perl-test-deep
+           perl-test-exception
+           perl-test-warn))
     (propagated-inputs
-     `(("perl-class-accessor-grouped" ,perl-class-accessor-grouped)
-       ("perl-class-c3-componentised" ,perl-class-c3-componentised)
-       ("perl-class-inspector" ,perl-class-inspector)
-       ("perl-config-any" ,perl-config-any)
-       ("perl-context-preserve" ,perl-context-preserve)
-       ("perl-data-dumper-concise" ,perl-data-dumper-concise)
-       ("perl-data-page" ,perl-data-page)
-       ("perl-dbi" ,perl-dbi)
-       ("perl-devel-globaldestruction" ,perl-devel-globaldestruction)
-       ("perl-hash-merge" ,perl-hash-merge)
-       ("perl-module-find" ,perl-module-find)
-       ("perl-moo" ,perl-moo)
-       ("perl-mro-compat" ,perl-mro-compat)
-       ("perl-namespace-clean" ,perl-namespace-clean)
-       ("perl-path-class" ,perl-path-class)
-       ("perl-scalar-list-utils" ,perl-scalar-list-utils)
-       ("perl-scope-guard" ,perl-scope-guard)
-       ("perl-sql-abstract-classic" ,perl-sql-abstract-classic)
-       ("perl-sub-name" ,perl-sub-name)
-       ("perl-text-balanced" ,perl-text-balanced)
-       ("perl-try-tiny" ,perl-try-tiny)))
+     (list perl-class-accessor-grouped
+           perl-class-c3-componentised
+           perl-class-inspector
+           perl-config-any
+           perl-context-preserve
+           perl-data-dumper-concise
+           perl-data-page
+           perl-dbi
+           perl-devel-globaldestruction
+           perl-hash-merge
+           perl-module-find
+           perl-moo
+           perl-mro-compat
+           perl-namespace-clean
+           perl-path-class
+           perl-scalar-list-utils
+           perl-scope-guard
+           perl-sql-abstract-classic
+           perl-sub-name
+           perl-text-balanced
+           perl-try-tiny))
     (home-page "https://metacpan.org/release/DBIx-Class")
     (synopsis "Extensible and flexible object <-> relational mapper")
     (description "An SQL to OO mapper with an object API inspired by
@@ -1742,12 +1796,9 @@ single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\",
          "09b2jahn2x12qm4f7qm1jzsxbz7qn1czp6a3fnl5l2i3l4r5421p"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-cache-cache" ,perl-cache-cache)
-       ("perl-dbd-sqlite" ,perl-dbd-sqlite)
-       ("perl-module-install" ,perl-module-install)))
+     (list perl-cache-cache perl-dbd-sqlite perl-module-install))
     (propagated-inputs
-     `(("perl-carp-clan" ,perl-carp-clan)
-       ("perl-dbix-class" ,perl-dbix-class)))
+     (list perl-carp-clan perl-dbix-class))
     (home-page "https://metacpan.org/release/DBIx-Class-Cursor-Cached")
     (synopsis "Cursor with built-in caching support")
     (description "DBIx::Class::Cursor::Cached provides a cursor class with
@@ -1768,9 +1819,9 @@ built-in caching support.")
          "1w47rh2241iy5x3a9bqsyd5kdp9sk43dksr99frzv4qn4jsazfn6"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)))
+     (list perl-module-install))
     (propagated-inputs
-     `(("perl-dbix-class" ,perl-dbix-class)))
+     (list perl-dbix-class))
     (home-page "https://metacpan.org/release/DBIx-Class-IntrospectableM2M")
     (synopsis "Introspect many-to-many relationships")
     (description "Because the many-to-many relationships are not real
@@ -1795,40 +1846,40 @@ introspected and examined.")
          "0r57fv71ypxafb85cpxph1hdqii7ipjwvc19yb6fpkvq2ggcssg8"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-config-any" ,perl-config-any)
-       ("perl-config-general" ,perl-config-general)
-       ("perl-dbd-sqlite" ,perl-dbd-sqlite)
-       ("perl-dbix-class-introspectablem2m" ,perl-dbix-class-introspectablem2m)
-       ("perl-module-install" ,perl-module-install)
-       ("perl-moose" ,perl-moose)
-       ("perl-moosex-markasmethods" ,perl-moosex-markasmethods)
-       ("perl-moosex-nonmoose" ,perl-moosex-nonmoose)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)
-       ("perl-test-deep" ,perl-test-deep)
-       ("perl-test-differences" ,perl-test-differences)
-       ("perl-test-exception" ,perl-test-exception)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-warn" ,perl-test-warn)))
+     (list perl-config-any
+           perl-config-general
+           perl-dbd-sqlite
+           perl-dbix-class-introspectablem2m
+           perl-module-install
+           perl-moose
+           perl-moosex-markasmethods
+           perl-moosex-nonmoose
+           perl-namespace-autoclean
+           perl-test-deep
+           perl-test-differences
+           perl-test-exception
+           perl-test-pod
+           perl-test-warn))
     (propagated-inputs
-     `(("perl-class-unload" ,perl-class-unload)
-       ("perl-class-inspector" ,perl-class-inspector)
-       ("perl-class-accessor-grouped" ,perl-class-accessor-grouped)
-       ("perl-class-c3-componentised" ,perl-class-c3-componentised)
-       ("perl-carp-clan" ,perl-carp-clan)
-       ("perl-data-dump" ,perl-data-dump)
-       ("perl-dbix-class" ,perl-dbix-class)
-       ("perl-hash-merge" ,perl-hash-merge)
-       ("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-lingua-en-inflect-phrase" ,perl-lingua-en-inflect-phrase)
-       ("perl-lingua-en-inflect-number" ,perl-lingua-en-inflect-number)
-       ("perl-lingua-en-tagger" ,perl-lingua-en-tagger)
-       ("perl-namespace-clean" ,perl-namespace-clean)
-       ("perl-mro-compat" ,perl-mro-compat)
-       ("perl-scope-guard" ,perl-scope-guard)
-       ("perl-string-camelcase" ,perl-string-camelcase)
-       ("perl-string-toidentifier-en" ,perl-string-toidentifier-en)
-       ("perl-sub-name" ,perl-sub-name)
-       ("perl-try-tiny" ,perl-try-tiny)))
+     (list perl-class-unload
+           perl-class-inspector
+           perl-class-accessor-grouped
+           perl-class-c3-componentised
+           perl-carp-clan
+           perl-data-dump
+           perl-dbix-class
+           perl-hash-merge
+           perl-list-moreutils
+           perl-lingua-en-inflect-phrase
+           perl-lingua-en-inflect-number
+           perl-lingua-en-tagger
+           perl-namespace-clean
+           perl-mro-compat
+           perl-scope-guard
+           perl-string-camelcase
+           perl-string-toidentifier-en
+           perl-sub-name
+           perl-try-tiny))
     (arguments `(#:tests? #f))          ;TODO: t/20invocations.t fails
     (home-page "https://metacpan.org/release/DBIx-Class-Schema-Loader")
     (synopsis "Create a DBIx::Class::Schema based on a database")
@@ -1851,10 +1902,9 @@ columns, primary keys, unique constraints and relationships.")
          "0kcfqq7g3832wiix0sbyvlc885qghjrp2ah3akn7h2lnb22fjwy9"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-dbi" ,perl-dbi)))
+     (list perl-dbi))
     (propagated-inputs
-     `(("perl-dbi" ,perl-dbi)
-       ("postgresql" ,postgresql)))
+     (list perl-dbi postgresql))
     (home-page "https://metacpan.org/release/DBD-Pg")
     (synopsis "DBI PostgreSQL interface")
     (description "This package provides a PostgreSQL driver for the Perl5
@@ -1912,8 +1962,8 @@ columns, primary keys, unique constraints and relationships.")
                (base32
                 "1zljln5nh61gj3k22a1fv2vhx5l83waizmarwkh77hk6kzzmvrw9"))))
     (build-system perl-build-system)
-    (inputs `(("sqlite" ,sqlite)))
-    (propagated-inputs `(("perl-dbi" ,perl-dbi)))
+    (inputs (list sqlite))
+    (propagated-inputs (list perl-dbi))
     (synopsis "SQlite interface for Perl")
     (description "DBD::SQLite is a Perl DBI driver for SQLite, that includes
 the entire thing in the distribution.  So in order to get a fast transaction
@@ -1958,15 +2008,10 @@ libmysqlclient.  It will fill an array with long options, ready to be parsed by
         (base32 "0jhw91b23wc9bkfwcgvka4x5ddxk58m9bcp5ay7a3vx77nla09p9"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)
-       ("perl-test-deep" ,perl-test-deep)
-       ("perl-test-exception" ,perl-test-exception)
-       ("perl-test-warn" ,perl-test-warn)))
+     (list perl-module-install perl-test-deep perl-test-exception
+           perl-test-warn))
     (propagated-inputs
-     `(("perl-hash-merge" ,perl-hash-merge)
-       ("perl-moo" ,perl-moo)
-       ("perl-mro-compat" ,perl-mro-compat)
-       ("perl-text-balanced" ,perl-text-balanced)))
+     (list perl-hash-merge perl-moo perl-mro-compat perl-text-balanced))
     (home-page "https://metacpan.org/release/SQL-Abstract")
     (synopsis "Generate SQL from Perl data structures")
     (description "This module was inspired by the excellent DBIx::Abstract.
@@ -1990,12 +2035,9 @@ time your data changes.")
         (base32 "0a7g13hs3kdxrjn43sfli09mgsi9d6w0dfw6hlk268av17yisgaf"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-deep" ,perl-test-deep)
-       ("perl-test-exception" ,perl-test-exception)
-       ("perl-test-warn" ,perl-test-warn)))
+     (list perl-test-deep perl-test-exception perl-test-warn))
     (propagated-inputs
-     `(("perl-mro-compat" ,perl-mro-compat)
-       ("perl-sql-abstract" ,perl-sql-abstract)))
+     (list perl-mro-compat perl-sql-abstract))
     (home-page "https://metacpan.org/release/SQL-Abstract-Classic")
     (synopsis "Generate SQL from Perl data structures")
     (description
@@ -2026,14 +2068,10 @@ your data changes, as this module figures it out.")
         (base32 "0ppkx46nydzlnsxf9a8pkyb74wggfrdiiwafab143lrarlh88x0s"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-differences" ,perl-test-differences)
-       ("perl-test-exception" ,perl-test-exception)
-       ("perl-test-script" ,perl-test-script)))
+     (list perl-test-differences perl-test-exception perl-test-script))
     (propagated-inputs
-     `(("perl-class-accessor" ,perl-class-accessor)
-       ("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-regexp-common" ,perl-regexp-common)
-       ("perl-sql-tokenizer" ,perl-sql-tokenizer)))
+     (list perl-class-accessor perl-list-moreutils perl-regexp-common
+           perl-sql-tokenizer))
     (home-page "https://metacpan.org/release/SQL-SplitStatement")
     (synopsis "Split SQL code into atomic statements")
     (description "This module tries to split any SQL code, even including
@@ -2103,7 +2141,7 @@ Driver.")
              "-DBUILD_SHARED_LIBS=ON")
        #:tests? #false))
     (inputs
-     `(("unixodbc" ,unixodbc)))
+     (list unixodbc))
     (home-page "https://nanodbc.io/")
     (synopsis "C++ wrapper for the native C ODBC API")
     (description "The goal for nanodbc is to make developers happy by providing
@@ -2170,30 +2208,29 @@ easy, requiring concise and simple code.")
      "UnQLite is an in-process software library which implements a
 self-contained, serverless, zero-configuration, transactional NoSQL
 database engine.  UnQLite is a document store database similar to
-MongoDB, Redis, CouchDB, etc. as well as a standard Key/Value store
+Redis, CouchDB, etc., as well as a standard key/value store
 similar to BerkeleyDB, LevelDB, etc.")
     (license license:bsd-2)))
 
 (define-public redis
   (package
     (name "redis")
-    (version "6.2.4")
+    (version "6.2.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://download.redis.io/releases/redis-"
                                   version".tar.gz"))
               (sha256
                (base32
-                "0vp1d9mlfsppry3nsj9f7bmh9wjgsy3jggp24sac1hhgl43c8cms"))
+                "1ariw5x33hmmm3d5al0j3307l5kf3vhmn78wpyaz67hia1x8nasv"))
               (modules '((guix build utils)))
               (snippet
                ;; Delete bundled jemalloc, as the package will use the libc one
-               '(begin (delete-file-recursively "deps/jemalloc")
-                       #t))))
+               '(begin (delete-file-recursively "deps/jemalloc")))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("procps" ,procps)               ; for tests
-       ("tcl" ,tcl)))                   ; for tests
+     (list procps ; for tests
+           tcl))                   ; for tests
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -2204,8 +2241,7 @@ similar to BerkeleyDB, LevelDB, etc.")
                (("^TCLSH=.*")
                 (string-append "TCLSH="
                                (assoc-ref inputs "tcl")
-                               "/bin/tclsh")))
-             #t))
+                               "/bin/tclsh")))))
          (add-after 'unpack 'adjust-tests
            (lambda _
              ;; Disable failing tests
@@ -2213,8 +2249,7 @@ similar to BerkeleyDB, LevelDB, etc.")
                (("integration/failover") "")
                (("integration/replication-4") "")
                (("integration/replication-psync") "")
-               (("integration/replication[^-]") ""))
-             #t)))
+               (("integration/replication[^-]") "")))))
        #:make-flags `("CC=gcc"
                       "MALLOC=libc"
                       "LDFLAGS=-ldl"
@@ -2266,7 +2301,7 @@ one-to-one, while still providing an idiomatic interface.")
         "--disable-opt" ;"-march=native". XXX this also turns off -O0.
         (string-append "LDFLAGS=-Wl,-rpath="
                        (assoc-ref %outputs "out") "/lib"))))
-    (inputs `(("zlib" ,zlib)))
+    (inputs (list zlib))
     (home-page "https://fallabs.com/kyotocabinet/")
     (synopsis
      "Kyoto Cabinet is a modern implementation of the DBM database")
@@ -2295,7 +2330,7 @@ database and supports many programming languages.  It is a NoSQL database.")
         (string-append "LDFLAGS=-Wl,-rpath="
                        (assoc-ref %outputs "out") "/lib"))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "http://fallabs.com/tokyocabinet/")
     (synopsis "Tokyo Cabinet is a modern implementation of the DBM database")
     (description
@@ -2331,9 +2366,7 @@ organized in hash table, B+ tree, or fixed-length array.")
                (("test/fops") ""))
              #t)))))
     (inputs
-     `(("lz4" ,lz4)
-       ("zlib" ,zlib)
-       ("snappy" ,snappy)))
+     (list lz4 zlib snappy))
     (home-page "http://source.wiredtiger.com/")
     (synopsis "NoSQL data engine")
     (description
@@ -2380,14 +2413,11 @@ trees (LSM), for sustained throughput under random insert workloads.")
                             (assoc-ref %build-inputs "wiredtiger")))
        #:make-flags '("GUILE_AUTO_COMPILE=0")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
-     `(("wiredtiger" ,wiredtiger-3)
-       ("guile" ,guile-2.2)))
+     (list wiredtiger-3 guile-2.2))
     (propagated-inputs
-     `(("guile-bytestructures" ,guile-bytestructures)))
+     (list guile-bytestructures))
     (synopsis "WiredTiger bindings for GNU Guile")
     (description
      "This package provides Guile bindings to the WiredTiger ``NoSQL''
@@ -2407,8 +2437,8 @@ database.")
       (sha256
         (base32 "1ab6rm2b8lz0g3gc8k9y79gkgajyby0zpybkdg9mk4g35y9bmyfd"))))
   (build-system perl-build-system)
-  (inputs `(("bdb" ,bdb)))
-  (native-inputs `(("perl-test-pod" ,perl-test-pod)))
+  (inputs (list bdb))
+  (native-inputs (list perl-test-pod))
   (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-before
@@ -2499,7 +2529,7 @@ virtual address space — not physical RAM.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (build-system gnu-build-system)
-    (inputs `(("lmdb" ,lmdb)))
+    (inputs (list lmdb))
     (home-page "https://github.com/hoytech/lmdbxx")
     (synopsis "C++11 wrapper for the LMDB embedded B+ tree database library")
     (description "@code{lmdbxx} is a comprehensive @code{C++} wrapper for the
@@ -2523,7 +2553,7 @@ semantics.")
     (build-system gnu-build-system)
     (native-inputs
      `(("python" ,python-2)))
-    (inputs `(("postgresql" ,postgresql)))
+    (inputs (list postgresql))
     (arguments
      `(#:tests? #f   ; # FAIL:  1
        #:phases
@@ -2545,20 +2575,20 @@ on another machine, accessed via TCP/IP.")
 (define-public python-peewee
   (package
     (name "python-peewee")
-    (version "3.14.0")
+    (version "3.14.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "peewee" version))
        (sha256
-        (base32 "1yl49gxrg0c2x3n3r60z3lixw9am8b61s0477l9vjabhhx1yziar"))))
+        (base32 "18jidir2wid0cp8a61m9vf9mf0pdvm6nzspc8bfwdbifghr6ndcy"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))                    ; fails to import test data
     (inputs
-     `(("sqlite" ,sqlite)))
+     (list sqlite))
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (home-page "https://github.com/coleifer/peewee/")
     (synopsis "Small object-relational mapping utility")
     (description
@@ -2572,51 +2602,145 @@ can autogenerate peewee models using @code{pwiz}, a model generator.")
 (define-public python2-peewee
   (package-with-python2 python-peewee))
 
+(define-public python-pypika-tortoise
+  (package
+    (name "python-pypika-tortoise")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pypika-tortoise" version))
+       (sha256
+        (base32 "0g4z0lz739nk04b405ynqpd3y1z5nfyxjz9hqgxcw3jydsjx0cb8"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/tortoise/pypika-tortoise")
+    (synopsis "Pypika fork for tortoise-orm")
+    (description "Pypika-tortoise is a fork of pypika which has been
+streamlined for its use in the context of tortoise-orm.  It removes support
+for many database kinds that tortoise-orm doesn't need, for example.")
+    (license license:asl2.0)))
+
+(define-public python-sphinxcontrib-asyncio
+  (package
+    (name "python-sphinxcontrib-asyncio")
+    (version "0.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "sphinxcontrib-asyncio" version))
+        (sha256
+          (base32 "0bkj010ygsr7m769llf2aq4bbjfhdwqrrabi98j8gpvyzvh2dzcr"))))
+    (build-system python-build-system)
+    (arguments '(#:tests? #f))          ;no test suite
+    (propagated-inputs (list python-sphinx))
+    (home-page "https://github.com/aio-libs/sphinxcontrib-asyncio")
+    (synopsis "Sphinx extension to support coroutines in markup")
+    (description "This package is a Sphinx extension providing additional
+coroutine-specific markup.")
+    (license license:asl2.0)))
+
+(define-public python-asyncpg
+  (package
+    (name "python-asyncpg")
+    (version "0.24.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "asyncpg" version))
+       (sha256
+        (base32 "1in0q6iffpl8ag6ady4bvwnn40igh10cpp4xgm426j1lqdis0byx"))))
+    (build-system python-build-system)
+    (propagated-inputs (list python-typing-extensions))
+    (native-inputs
+     (list postgresql
+           python-cython
+           python-flake8
+           python-pycodestyle
+           python-pytest
+           python-sphinx
+           python-sphinx-rtd-theme
+           python-sphinxcontrib-asyncio
+           python-uvloop))
+    (home-page "https://github.com/MagicStack/asyncpg")
+    (synopsis "Fast PostgreSQL database client library for Python")
+    (description "@code{asyncpg} is a database interface library designed
+specifically for PostgreSQL and Python/asyncio.  @code{asyncpg} is an
+efficient, clean implementation of PostgreSQL server binary protocol for use
+with Python's asyncio framework.")
+    (license license:asl2.0)))
+
+(define-public python-asyncmy
+  (package
+    (name "python-asyncmy")
+    (version "0.2.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "asyncmy" version))
+        (sha256
+          (base32 "19p81jd4w7m7v2x1jdrwibp67wzqx1a7rdw5n4qqmch3iffp97vn"))))
+    (build-system python-build-system)
+    (native-inputs (list python-cython))
+    (home-page "https://github.com/long2ice/asyncmy")
+    (synopsis "Fast MySQL driver for Python")
+    (description "@code{asyncmy} is a fast @code{asyncio} MySQL driver, which
+reuses most of @code{pymysql} and @code{aiomysql} but rewrites the core
+protocol with Cython for performance.")
+    (license license:asl2.0)))
+
+(define-public python-aiomysql
+  (package
+    (name "python-aiomysql")
+    (version "0.0.21")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "aiomysql" version))
+        (sha256
+          (base32 "0b442d0jb82z3lk19ylmm64ix88ppz7gay08bxld538ivg06j5c1"))))
+    (build-system python-build-system)
+    (arguments '(#:tests? #f))           ;test suite requires docker
+    (propagated-inputs (list python-pymysql))
+    (home-page "https://github.com/aio-libs/aiomysql")
+    (synopsis "MySQL driver for Python")
+    (description "@code{aiomysql} is a driver for accessing a MySQL database
+from the @code{asyncio} Python framework.  It depends on and reuses most parts
+of PyMySQL.  @code{aiomysql} tries to preserve the same API as the
+@code{aiopg} library.")
+    (license license:expat)))
+
 (define-public python-tortoise-orm
   (package
     (name "python-tortoise-orm")
-    (version "0.16.21")
+    (version "0.17.8")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "tortoise-orm" version))
        (sha256
-        (base32
-         "1dallk0q8q4v37klm0v3rppf2w8sjkqmypc1w8r9rraqxg1ylacp"))))
+        (base32 "1gzgiypln7lck3p95vk3i8rdx1bjbmmlcpb8xpba8cjdjvlj0l0z"))))
     (build-system python-build-system)
-    (arguments
-     `(#:tests? #f ; Pypi does not have tests and Git snapshot depends on
-                   ; poetry.
-       #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'relax-version-requirements
-                    (lambda _
-                      (substitute* "setup.py"
-                        (("pypika>=0\\.44\\.0,<0\\.45\\.0") "pypika")
-                        (("aiosqlite>=0.16.0,<0.17.0") "aiosqlite")
-                        (("pytz>=2020\\.4,<2021\\.0") "pytz")
-                        ;; Not required, since ciso8601 is used.
-                        (("'iso8601>=0\\.1\\.13,<0\\.2\\.0',") ""))
-                      #t)))))
-    (native-inputs
-     `(("python-asynctest" ,python-asynctest)
-       ("python-nose2" ,python-nose2)))
+    ;; The test suite relies on asynctest, which is abandoned and doesn't
+    ;; support Python >= 3.8.
+    (arguments '(#:tests? #f))
     (propagated-inputs
-     `(("python-aiosqlite" ,python-aiosqlite)
-       ("python-pypika" ,python-pypika)
-       ("python-ciso8601" ,python-ciso8601)
-       ("python-pytz" ,python-pytz)
-       ("python-typing-extensions"
-        ,python-typing-extensions)))
-    (home-page
-     "https://github.com/tortoise/tortoise-orm")
-    (synopsis
-     "Easy async ORM for python, built with relations in mind")
-    (description
-     "Tortoise ORM is an easy-to-use asyncio ORM (Object Relational Mapper)
-inspired by Django.  Tortoise ORM was build with relations in mind and
-admiration for the excellent and popular Django ORM.  It’s engraved in its
-design that you are working not with just tables, you work with relational
-data.")
+     (list python-aiomysql
+           python-aiosqlite
+           python-asyncmy
+           python-asyncpg
+           python-ciso8601
+           python-iso8601
+           python-pypika-tortoise
+           python-pytz
+           python-rapidjson
+           python-uvloop))
+    (home-page "https://github.com/tortoise/tortoise-orm")
+    (synopsis "Asynchronous Object Relational Mapper (ORM) for Python")
+    (description "Tortoise ORM is an easy-to-use asyncio ORM (Object
+Relational Mapper) inspired by Django.  Tortoise ORM was built with relations
+in mind and admiration for the excellent and popular Django ORM.  It's
+engraved in its design that you are working not with just tables, you work
+with relational data.")
     (license license:asl2.0)))
 
 (define-public sqlcipher
@@ -2636,7 +2760,7 @@ data.")
      `(("libcrypto" ,openssl)
        ("libtcl8.6" ,tcl))) ; required for running the tests
     (native-inputs
-     `(("tcl" ,tcl)))
+     (list tcl))
     (arguments
      '(#:configure-flags
        '("--enable-tempstore=yes"
@@ -2683,7 +2807,7 @@ development.")
        (file-name (string-append name "-" version ".tar.gz"))))
     (build-system python-build-system)
     (inputs
-     `(("unixodbc" ,unixodbc)))
+     (list unixodbc))
     (arguments
      `(;; No unit tests exist.
        #:tests? #f))
@@ -2709,7 +2833,7 @@ for ODBC.")
        (file-name (string-append name "-" version ".tar.gz"))))
     (build-system python-build-system)
     (inputs
-     `(("unixodbc" ,unixodbc)))
+     (list unixodbc))
     (arguments
      `(#:tests? #f))                    ; no unit tests exist
     (home-page "https://github.com/mkleehammer/pyodbc")
@@ -2737,14 +2861,14 @@ for ODBC.")
          "0gwcpp9y09xhs21g7my2fs8ncb8i6ahlyixcx8jd3q97jbzj441l"))))
     (build-system gnu-build-system)
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("txt2man" ,txt2man)
-       ("which" ,which)))
+     (list autoconf
+           automake
+           libtool
+           pkg-config
+           txt2man
+           which))
     (home-page "http://mdbtools.sourceforge.net/")
     (synopsis "Read Microsoft Access databases")
     (description "MDB Tools is a set of tools and applications to read the
@@ -2776,7 +2900,7 @@ etc., and an SQL engine for performing simple SQL queries.")
                   #t))))
     (build-system python-build-system)
     (inputs
-     `(("lmdb" ,lmdb)))
+     (list lmdb))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2816,19 +2940,19 @@ Memory-Mapped Database} (LMDB), a high-performance key-value store.")
     ;; does not contain setup.py.  How to test?
     (arguments '(#:tests? #f))
     (propagated-inputs
-     `(("python-backpack" ,python-backpack)
-       ("python-blinker" ,python-blinker)
-       ("python-cleo" ,python-cleo)
-       ("python-faker" ,python-faker)
-       ("python-inflection" ,python-inflection)
-       ("python-lazy-object-proxy" ,python-lazy-object-proxy)
-       ("python-pendulum" ,python-pendulum)
-       ("python-pyaml" ,python-pyaml)
-       ("python-pygments" ,python-pygments)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-simplejson" ,python-simplejson)
-       ("python-six" ,python-six)
-       ("python-wrapt" ,python-wrapt)))
+     (list python-backpack
+           python-blinker
+           python-cleo
+           python-faker
+           python-inflection
+           python-lazy-object-proxy
+           python-pendulum
+           python-pyaml
+           python-pygments
+           python-pyyaml
+           python-simplejson
+           python-six
+           python-wrapt))
     (home-page "https://orator-orm.com/")
     (synopsis "ActiveRecord ORM for Python")
     (description
@@ -2867,10 +2991,7 @@ implementation for Python.")
                          '("libvirtuoso-t.a"
                            "libvirtuoso-t.la"))))))))
     (inputs
-     `(("openssl" ,openssl)
-       ("net-tools" ,net-tools)
-       ("readline" ,readline)
-       ("zlib" ,zlib)))
+     (list openssl net-tools readline zlib))
     (home-page "http://vos.openlinksw.com/owiki/wiki/VOS/")
     (synopsis "Multi-model database system")
     (description "Virtuoso is a scalable cross-platform server that combines
@@ -2893,11 +3014,10 @@ and web services platform functionality.")
          "177dfxsmk3k4cih6fh6v8d91bh4nqx7ns6pc07w7m7i3cvdx3c8n"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pyyaml" ,python-pyyaml)
-       ;; Not listed in setup.py, but used in ccmlib/node.py for full
-       ;; functionality
-       ("python-psutil" ,python-psutil)
-       ("python-six" ,python-six)))
+     (list python-pyyaml
+           ;; Not listed in setup.py, but used in ccmlib/node.py for full
+           ;; functionality
+           python-psutil python-six))
     (home-page "https://github.com/pcmanus/ccm")
     (synopsis "Cassandra Cluster Manager for Apache Cassandra clusters on
 localhost")
@@ -2922,7 +3042,7 @@ on localhost.")
         "1424gwq9sil2ffmnizk60q36vydkv8rxs6m7xs987kz8cdc37lqp"))))
     (build-system python-build-system)
     (inputs
-     `(("sqlite" ,sqlite)))
+     (list sqlite))
     (arguments
      `(#:python ,python-2 ; incompatible with Python 3
        #:tests? #f)) ; no test target
@@ -2936,25 +3056,26 @@ Database API 2.0T.")
 (define-public python-sqlalchemy
   (package
     (name "python-sqlalchemy")
-    (version "1.4.23")
+    (version "1.4.27")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "SQLAlchemy" version))
       (sha256
-       (base32 "10vm8hm8w4yfsab076ak8r4vp5v1jqdi71cky6dhha7mh5l29zvn"))))
+       (base32 "031jbd0svrvwr3n52iibp9mkwsj9wicnck45yd26da5kmsfkas6p"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-cython" ,python-cython) ; for C extensions
-       ("python-pytest" ,python-pytest)
-       ("python-mock"   ,python-mock))) ; for tests
+     (list python-cython ; for C extensions
+           python-pytest python-mock)) ; for tests
     (propagated-inputs
-     `(("python-greenlet" ,python-greenlet)))
+     (list python-greenlet))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _ (invoke "py.test"))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "py.test")))))))
     (home-page "https://www.sqlalchemy.org")
     (synopsis "Database abstraction library")
     (description
@@ -2965,6 +3086,18 @@ designed for efficient and high-performing database access, adapted into a
 simple and Pythonic domain language.")
     (license license:x11)))
 
+(define-public python-sqlalchemy-1.3
+  (package
+    (inherit python-sqlalchemy)
+    (version "1.3.20")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "SQLAlchemy" version))
+       (sha256
+        (base32 "18b9am7bsqc4nj3d2h5r93i002apczxfvpfpcqbd6f0385zmrwnj"))))
+    (propagated-inputs '())))
+
 (define-public python2-sqlalchemy
   (package-with-python2 python-sqlalchemy))
 
@@ -2981,8 +3114,7 @@ simple and Pythonic domain language.")
          "1bppjmv7v7m0q8gwg791pgxbx4ay7mna0zq204pn9vw28kfxcrf6"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-mypy" ,python-mypy)
-       ("python-typing-extensions" ,python-typing-extensions)))
+     (list python-mypy python-typing-extensions))
     (home-page "https://github.com/dropbox/sqlalchemy-stubs")
     (synopsis "SQLAlchemy stubs and mypy plugin")
     (description "This package contains type stubs and a mypy plugin to
@@ -3010,14 +3142,10 @@ framework.")
        ;;     (lambda _
        ;;       (zero? (system* "py.test" "sqlalchemy_utils" "tests")))))
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-sqlalchemy" ,python-sqlalchemy)))
+     (list python-six python-sqlalchemy))
     (native-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-flexmock" ,python-flexmock)
-       ("python-psycopg2" ,python-psycopg2)
-       ("python-pytest" ,python-pytest)
-       ("python-pytz" ,python-pytz)))
+     (list python-dateutil python-flexmock python-psycopg2 python-pytest
+           python-pytz))
     (home-page "https://github.com/kvesteri/sqlalchemy-utils")
     (synopsis "Various utility functions for SQLAlchemy")
     (description
@@ -3037,9 +3165,6 @@ You might also want to install the following optional dependencies:
 ")
     (license license:bsd-3)))
 
-(define-public python2-sqlalchemy-utils
-  (package-with-python2 python-sqlalchemy-utils))
-
 (define-public python-alchemy-mock
   (package
     (name "python-alchemy-mock")
@@ -3066,11 +3191,9 @@ doctest_optionflags=IGNORE_EXCEPTION_DETAIL
                       (invoke "pytest" "-vv" "--doctest-modules"
                               "alchemy_mock/"))))))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-mock python-pytest))
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-sqlalchemy" ,python-sqlalchemy)))
+     (list python-six python-sqlalchemy))
     (synopsis "Mock helpers for SQLAlchemy")
     (description
      "This package provides mock helpers for SQLAlchemy that makes it easy
@@ -3084,13 +3207,13 @@ this library provides functions to facilitate such comparisons.")
 (define-public python-alembic
   (package
     (name "python-alembic")
-    (version "1.7.1")
+    (version "1.7.5")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "alembic" version))
        (sha256
-        (base32 "1ys0a44gh544xpbzz6r5xvz3msim74f9qklyfnw0bhn9vk9n9adf"))))
+        (base32 "0lxi2g2025lz5k7k5dd5fc1lfijqi2yw6qqyjzp073z6laa8cckw"))))
     (build-system python-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -3098,14 +3221,9 @@ this library provides functions to facilitate such comparisons.")
                     (lambda _
                       (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-mock python-pytest-cov))
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-importlib-resources" ,python-importlib-resources) ;Python < 3.9
-       ("python-sqlalchemy" ,python-sqlalchemy)
-       ("python-mako" ,python-mako)
-       ("python-editor" ,python-editor)))
+     (list python-dateutil python-sqlalchemy python-mako python-editor))
     (home-page "https://bitbucket.org/zzzeek/alembic")
     (synopsis "Database migration tool for SQLAlchemy")
     (description
@@ -3130,7 +3248,7 @@ SQLAlchemy Database Toolkit for Python.")
                     (lambda _
                       (invoke "pytest"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/vivainio/pickleshare")
     (synopsis "Tiny key value database with concurrency support")
     (description
@@ -3148,8 +3266,9 @@ PickleShare.")
   (let ((pickleshare (package-with-python2
                       (strip-python2-variant python-pickleshare))))
     (package (inherit pickleshare)
-      (propagated-inputs `(("python2-pathlib2" ,python2-pathlib2)
-                           ,@(package-propagated-inputs pickleshare))))))
+      (propagated-inputs (modify-inputs (package-propagated-inputs
+                                                        pickleshare)
+                           (prepend python2-pathlib2))))))
 
 (define-public python-apsw
   (package
@@ -3165,9 +3284,9 @@ PickleShare.")
            "0w8q73147hv77dlpqrx6h1gx03acc8xqhvdpfp6vkffdm0wmqd8p"))))
     (build-system python-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (inputs
-     `(("sqlite" ,sqlite)))
+     (list sqlite))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -3217,9 +3336,9 @@ translate the complete SQLite API into Python.")
                           (format #t "test suite not run~%"))
                       #t)))))
     (propagated-inputs
-     `(("python-typing-extensions" ,python-typing-extensions)))
+     (list python-typing-extensions))
     (native-inputs
-     `(("python-aiounittest" ,python-aiounittest)))
+     (list python-aiounittest))
     (home-page "https://github.com/jreese/aiosqlite")
     (synopsis
      "Asyncio bridge for sqlite3")
@@ -3274,20 +3393,20 @@ designed to be easy and intuitive to use.")
 (define-public python-psycopg2
   (package
     (name "python-psycopg2")
-    (version "2.8.6")
+    (version "2.9.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "psycopg2" version))
        (sha256
-        (base32 "0hzmk6b1hb5riqkljr5xics6p4zbvmis6knbczb7zhq7273zc8zv"))))
+        (base32 "1smvvs1ngqy0ymlp1d7f85j09j9v0z5dq14f1qky0j0qi7xajkd8"))))
     (build-system python-build-system)
     (arguments
      ;; Tests would require a postgresql database "psycopg2_test"
      ;; and a running postgresql database management service.
      `(#:tests? #f)) ; TODO re-enable after providing a test-db.
     (inputs
-     `(("postgresql" ,postgresql))) ; libpq
+     (list postgresql)) ; libpq
     (home-page "http://initd.org/psycopg/")
     (synopsis "Python PostgreSQL adapter")
     (description
@@ -3295,9 +3414,6 @@ designed to be easy and intuitive to use.")
 2.0.")
     (license license:lgpl3+)))
 
-(define-public python2-psycopg2
-  (package-with-python2 python-psycopg2))
-
 (define-public python-sadisplay
   (package
     (name "python-sadisplay")
@@ -3322,10 +3438,10 @@ designed to be easy and intuitive to use.")
                             (invoke "pytest" "-vv"))
                           (format #t "test suite not run~%")))))))
     (propagated-inputs
-      `(("python-sqlalchemy" ,python-sqlalchemy)))
+      (list python-sqlalchemy))
     (native-inputs
      ;; For tests.
-      `(("python-pytest" ,python-pytest)))
+      (list python-pytest))
     (home-page "https://bitbucket.org/estin/sadisplay")
     (synopsis "SQLAlchemy schema displayer")
     (description "This package provides a program to build Entity
@@ -3333,9 +3449,6 @@ Relationship diagrams from a SQLAlchemy model (or directly from the
 database).")
     (license license:bsd-3)))
 
-(define-public python2-sadisplay
-  (package-with-python2 python-sadisplay))
-
 (define-public yoyo-migrations
   (package
     (name "yoyo-migrations")
@@ -3357,8 +3470,7 @@ database).")
      ;; fails to connect to it.
      '(#:tests? #f))
     (propagated-inputs
-     `(("python-sqlparse" ,python-sqlparse)
-       ("python-tabulate" ,python-tabulate)))
+     (list python-sqlparse python-tabulate))
     (home-page "https://ollycope.com/software/yoyo/latest/")
     (synopsis "Database migrations with SQL")
     (description
@@ -3419,20 +3531,20 @@ parsing code in hiredis.  It primarily speeds up parsing of multi bulk replies."
 (define-public python-fakeredis
   (package
     (name "python-fakeredis")
-    (version "1.2.1")
+    (version "1.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "fakeredis" version))
        (sha256
         (base32
-         "1s12mn4q4hz7402139khn9fx56kibj7nn0d6w81hn0zs07b90wpc"))))
+         "0wacd3f558vzsrpdvgvdwy9pp6crxf8hxblz30zbsv1k63j15gf9"))))
     (build-system python-build-system)
     (arguments
      ;; no tests
      `(#:tests? #f))
     (propagated-inputs
-      `(("python-sortedcontainers" ,python-sortedcontainers)))
+     (list python-packaging python-redis python-sortedcontainers))
     (home-page "https://github.com/jamesls/fakeredis")
     (synopsis "Fake implementation of redis API for testing purposes")
     (description
@@ -3445,9 +3557,6 @@ talk to an external server such as redis.  This module can be used as a
 reasonable substitute.")
     (license license:bsd-3)))
 
-(define-public python2-fakeredis
-  (package-with-python2 python-fakeredis))
-
 (define-public python-redis
   (package
     (name "python-redis")
@@ -3502,12 +3611,9 @@ reasonable substitute.")
                                                       (getenv "PATH")))
                         (invoke "pytest" "-vv")))))))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("redis" ,redis)))
+     (list python-mock python-pytest redis))
     (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-redis" ,python-redis)))
+     (list python-click python-redis))
     (home-page "https://python-rq.org/")
     (synopsis "Simple job queues for Python")
     (description
@@ -3543,11 +3649,9 @@ is designed to have a low barrier to entry.")
                          (which "env")))
                       (invoke "./run_tests.py"))))))
     (native-inputs
-     `(("redis" ,redis)
-       ("which" ,which)))
+     (list redis which))
     (propagated-inputs
-     `(("python-croniter" ,python-croniter)
-       ("python-rq" ,python-rq)))
+     (list python-croniter python-rq))
     (synopsis "Job scheduling capabilities for RQ (Redis Queue)")
     (description
      "This package provides job scheduling capabilities to @code{python-rq}
@@ -3610,7 +3714,7 @@ is designed to have a low barrier to entry.")
                            (string-append output sitedir))
                          (list python out))))))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/andialbrecht/sqlparse")
     (synopsis "Non-validating SQL parser")
     (description "Sqlparse is a non-validating SQL parser for Python.  It
@@ -3634,9 +3738,6 @@ provides support for parsing, splitting and formatting SQL statements.")
 transforms idiomatic python function calls to well-formed SQL queries.")
     (license license:bsd-3)))
 
-(define-public python2-sql
-  (package-with-python2 python-sql))
-
 (define-public python-pypika
   (package
     (name "python-pypika")
@@ -3652,7 +3753,7 @@ transforms idiomatic python function calls to well-formed SQL queries.")
                "001pg36sw9a36zdd1kccbymcxndphjcjbbrsy6ri7ng8h4dgz549"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-parameterized" ,python-parameterized)))
+     (list python-parameterized))
     (home-page "https://github.com/kayak/pypika")
     (synopsis "SQL query builder API for Python")
     (description
@@ -3665,7 +3766,7 @@ the SQL language using a syntax that reflects the resulting query.")
 (define-public apache-arrow
   (package
     (name "apache-arrow")
-    (version "5.0.0")
+    (version "6.0.1")
     (source
      (origin
        (method git-fetch)
@@ -3675,7 +3776,7 @@ the SQL language using a syntax that reflects the resulting query.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0275aayzy78nbxzbj93w5152sv5q2c7020ijxnf8b58v9qwfxzz0"))))
+         "0mcw361akqw4sxnnpnr9c9v1zk4hphk6gcq763pcb19yzljh88ig"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f
@@ -3714,6 +3815,10 @@ the SQL language using a syntax that reflects the resulting query.")
              "-DARROW_DEPENDENCY_SOURCE=SYSTEM"
              "-Dxsimd_SOURCE=SYSTEM"
 
+             "-DARROW_RUNTIME_SIMD_LEVEL=NONE"
+             "-DARROW_SIMD_LEVEL=NONE"
+             "-DARROW_PACKAGE_KIND=Guix"
+
              ;; Split output into its component packages.
              (string-append "-DCMAKE_INSTALL_PREFIX="
                             (assoc-ref %outputs "lib"))
@@ -3755,27 +3860,26 @@ the SQL language using a syntax that reflects the resulting query.")
              ;;"-DBENCHMARK_ENABLE_TESTING=OFF"
              "-DARROW_BUILD_STATIC=OFF")))
     (inputs
-     `(("apache-thrift" ,apache-thrift "lib")
-       ("boost" ,boost)
-       ("brotli" ,google-brotli)
+     `(("boost" ,boost)
+       ("brotli" ,brotli)
        ("bzip2" ,bzip2)
        ("double-conversion" ,double-conversion)
        ("gflags" ,gflags)
        ("glog" ,glog)
        ("grpc" ,grpc)
-       ("lz4" ,lz4)
        ("protobuf" ,protobuf)
        ("python-3" ,python)
        ("python-numpy" ,python-numpy)
        ("rapidjson" ,rapidjson)
        ("re2" ,re2)
        ("snappy" ,snappy)
-       ("utf8proc" ,utf8proc)
-       ("xsimd" ,xsimd)
-       ("zlib" ,zlib)
-       ("zstd" ,zstd "lib")))
+       ("xsimd" ,xsimd)))
+    ;; These are all listed under Requires.private in arrow.pc
+    (propagated-inputs
+     (list `(,apache-thrift "lib") lz4 utf8proc zlib
+           `(,zstd "lib")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (outputs '("out" "lib" "include"))
     (home-page "https://arrow.apache.org/")
     (synopsis "Columnar in-memory analytics")
@@ -3856,7 +3960,7 @@ other traditional Python scientific computing packages.")
                 "0ngmlvi320c5gsxab0s7qgq0ck4jdlcwvb6lbjhnfprafdp56vvx"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-urllib3" ,python-urllib3)))
+     (list python-urllib3))
     (home-page "https://github.com/crate/crate-python")
     (synopsis "CrateDB Python client")
     (description
@@ -3900,10 +4004,8 @@ simultaneous database connections by using this framework.")
                 "0m680h8cc4428xin4p733azysamzgzcmv4psjvraykrsaz6ymlj3"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(;; For tests.
-       ("inetutils" ,inetutils)
-       ("glibc-locales" ,glibc-locales)
-       ("mariadb" ,mariadb)))
+     (list ;; For tests.
+           inetutils glibc-locales mariadb))
     (inputs
      `(("libdbi" ,libdbi)
        ("mariadb:dev" ,mariadb "dev")
@@ -4017,10 +4119,33 @@ PostreSQL, SQLite, ODBC and MySQL.")
 connecting to MS SQL and Sybase servers over TCP/IP.")
     (license license:lgpl2.0+)))
 
+(define-public python-tinydb
+  (package
+    (name "python-tinydb")
+    (version "4.5.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "tinydb" version))
+              (sha256
+               (base32 "1x9c4s42930wwal3ds0plwb57kg5c3gj7kbpy64c29vq478b463x"))))
+    (build-system python-build-system)
+    ;; PyPi tarball does not contain tests and github repository does not
+    ;; have a setup.py file (only pyproject).
+    (arguments `(#:tests? #f))
+    (propagated-inputs
+     (list python-typing-extensions))
+    (home-page "https://github.com/msiemens/tinydb")
+    (synopsis "TinyDB is a lightweight document oriented database")
+    (description
+     "TinyDB is a small document oriented database written in pure Python
+with no external dependencies.  The targets are small apps that would
+be blown away by a SQL-DB or an external database server.")
+    (license license:expat)))
+
 (define-public sequeler
   (package
     (name "sequeler")
-    (version "0.8.1")
+    (version "0.8.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4029,7 +4154,7 @@ connecting to MS SQL and Sybase servers over TCP/IP.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1q1vzc3likpiwfh6blkyiz0wr0aarj9xrm8gbi7m3p1wslkpah7c"))))
+                "0biggmsn8k7j6pdrwk29whl56qlfgvf5d9vjpgz4nyqih56wgh9j"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
@@ -4040,8 +4165,7 @@ connecting to MS SQL and Sybase servers over TCP/IP.")
            (lambda _
              (substitute* "build-aux/meson_post_install.py"
                (("gtk-update-icon-cache") "true")
-               (("update-desktop-database") "true"))
-             #t)))))
+               (("update-desktop-database") "true")))))))
     (native-inputs
      `(;("appstream-glib" ,appstream-glib)  ; validation fails for lack of network
        ("gettext-minimal" ,gettext-minimal)
diff --git a/gnu/packages/datamash.scm b/gnu/packages/datamash.scm
index d0f4bdfbc0..51a35e0a1d 100644
--- a/gnu/packages/datamash.scm
+++ b/gnu/packages/datamash.scm
@@ -39,8 +39,8 @@
        (base32
         "1cxdlhgz3wzjqlq8bgwad93fgqymk2abbldfzw1ffnhcp4mmjjjp"))))
     (native-inputs
-     `(("which" ,which)                 ;for tests
-       ("perl" ,perl)))                 ;for help2man
+     (list which ;for tests
+           perl))                 ;for help2man
     (build-system gnu-build-system)
     (home-page "https://www.gnu.org/software/datamash/")
     (synopsis "Scriptable statistics and data calculation")
diff --git a/gnu/packages/datastructures.scm b/gnu/packages/datastructures.scm
index 4973ce98af..2b00137a3e 100644
--- a/gnu/packages/datastructures.scm
+++ b/gnu/packages/datastructures.scm
@@ -25,7 +25,6 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages boost)
-  #:use-module (gnu packages build-tools)   ;for meson-0.55
   #:use-module (gnu packages perl)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
@@ -73,9 +72,7 @@ and heaps.")
         (base32 "1pk6wmi28pa8srb4szybrwfn71jldb61c5vgxsiayxcyg1ya4qqh"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (home-page "https://github.com/s-yata/marisa-trie")
     (synopsis "Trie data structure C++ library")
     (description "@acronym{MARISA, Matching Algorithm with Recursively
@@ -150,7 +147,7 @@ in between these sequences may be different in both content and length.")
                 "085s437nig6bdiv9im4k4qwqbrbnc4qw9flqi16jlb493az0vcnb"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)))                 ; for tests
+     (list perl))                 ; for tests
     (home-page "https://liburcu.org/")
     (synopsis "User-space RCU data synchronisation library")
     (description "liburcu is a user-space @dfn{Read-Copy-Update} (RCU) data
@@ -175,7 +172,7 @@ queues, stacks, and doubly-linked lists.")
         (base32 "0k80bjbb6ss5wpmfmfji6xbyjm990hg9kcshwwnhdnh73vxkcd1m"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (arguments
      `(#:make-flags
        (list "CC=gcc")
@@ -270,7 +267,7 @@ to the structure and choosing one or more fields to act as the key.")
                           out ,version)))
               #t))))))
     (native-inputs
-     `(("libdivsufsort" ,libdivsufsort)))
+     (list libdivsufsort))
     (home-page "https://github.com/simongog/sdsl-lite")
     (synopsis "Succinct data structure library")
     (description "The Succinct Data Structure Library (SDSL) is a powerful and
@@ -347,7 +344,7 @@ bytes of memory space, where n is the length of the string.")
                 "1li70vwsksva9c4yly90hjafgqfixi1g6d52qq9p6r60vqc4pkjj"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("boost" ,boost)))  ; needed for tests
+     (list boost))  ; needed for tests
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm
index 9d18d94996..8738eb36f2 100644
--- a/gnu/packages/dav.scm
+++ b/gnu/packages/dav.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2021 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -52,17 +53,15 @@
         (base32 "1xlsvrmx6jhi71j6j8z9sli5vwxasivzjyqf8zq8r0l5p7350clf"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-flake8" ,python-pytest-flake8)
-       ("python-pytest-isort" ,python-pytest-isort)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-waitress" ,python-waitress)))
+     (list python-pytest
+           python-pytest-cov
+           python-pytest-flake8
+           python-pytest-isort
+           python-pytest-runner
+           python-waitress))
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-defusedxml" ,python-defusedxml)
-       ("python-passlib" ,python-passlib)
-       ("python-vobject" ,python-vobject)))
+     (list python-dateutil python-defusedxml python-passlib
+           python-vobject))
     (synopsis "Basic CalDAV and CardDAV server")
     (description "Radicale is a CalDAV and CardDAV server for UNIX-like
 platforms.  Calendars and address books are available for both local and remote
@@ -87,12 +86,12 @@ clients.")
         (base32 "13ikmcja9p42azb5ccqj2bw98zybna6zlflj10hqy0kvbib70l94"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-aiohttp" ,python-aiohttp)
-       ("python-defusedxml" ,python-defusedxml)
-       ("python-dulwich" ,python-dulwich)
-       ("python-icalendar" ,python-icalendar)
-       ("python-jinja2" ,python-jinja2)
-       ("python-multidict" ,python-multidict)))
+     (list python-aiohttp
+           python-defusedxml
+           python-dulwich
+           python-icalendar
+           python-jinja2
+           python-multidict))
     (home-page "https://www.xandikos.org/")
     (synopsis "Lightweight CalDAV/CardDAV server")
     (description
@@ -117,13 +116,13 @@ efficient syncing
   (package
     (name "vdirsyncer")
     ;; When updating, check whether python-click-5 can be removed entirely.
-    (version "0.16.8")
+    (version "0.18.0")
     (source (origin
              (method url-fetch)
              (uri (pypi-uri name version))
              (sha256
               (base32
-               "1i8kp9j99rs8xdhrc1vx749zd9wznlzj0pb3s05xdm71a8pl5nxz"))))
+               "00f2bw1a2jbbd1sbci0swnd67kylr341aa9rpbxkajbp3zakxg17"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f ; The test suite is very flakey.
@@ -152,24 +151,22 @@ efficient syncing
                 "/share/man/man1"))
             #t)))))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-sphinx" ,python-sphinx)
-       ;; Required for testing
-       ("python-hypothesis" ,python-hypothesis)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-localserver" ,python-pytest-localserver)
-       ("python-pytest-subtesthack" ,python-pytest-subtesthack)
-       ("python-urllib3" ,python-urllib3)
-       ("python-wsgi-intercept" ,python-wsgi-intercept)
-       ("radicale" ,radicale)))
+     (list python-setuptools-scm
+           python-sphinx
+           ;; Required for testing
+           python-hypothesis
+           python-pytest
+           python-pytest-localserver
+           python-pytest-subtesthack
+           python-urllib3
+           python-wsgi-intercept
+           radicale))
     (inputs
-     `(;; XXX https://github.com/mitsuhiko/click/issues/200
-       ("python-click" ,python-click-5)))
+     (list ;; XXX https://github.com/mitsuhiko/click/issues/200
+           python-click-5))
     (propagated-inputs
-     `(("python-atomicwrites" ,python-atomicwrites)
-       ("python-click-log" ,python-click-log)
-       ("python-click-threading" ,python-click-threading)
-       ("python-requests-toolbelt" ,python-requests-toolbelt)))
+     (list python-atomicwrites python-click-log python-click-threading
+           python-requests-toolbelt))
     (synopsis "Synchronize calendars and contacts")
     (description "Vdirsyncer synchronizes your calendars and addressbooks
 between two storage locations.  The most popular purpose is to
diff --git a/gnu/packages/dbm.scm b/gnu/packages/dbm.scm
index 607e4aecf8..8b6804aa92 100644
--- a/gnu/packages/dbm.scm
+++ b/gnu/packages/dbm.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014, 2016, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
@@ -30,7 +30,8 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
-  #:use-module (guix utils))
+  #:use-module (guix utils)
+  #:use-module (ice-9 match))
 
 ;;; Commentary:
 ;;;
@@ -87,15 +88,17 @@
                        (string-append "CONFIG_SHELL=" (which "bash"))
                        (string-append "SHELL=" (which "bash"))
 
-                       ;; Bdb doesn't recognize aarch64 as an architecture.
-                       ,@(if (string=? "aarch64-linux" (%current-system))
-                             '("--build=aarch64-unknown-linux-gnu")
-                             '())
-
-                       ;; Bdb doesn't recognize powerpc64le as an architecture.
-                       ,@(if (string=? "powerpc64le-linux" (%current-system))
-                             '("--build=powerpc64le-unknown-linux-gnu")
-                             '())
+                       ;; Bdb's config script doesn't recognize very many
+                       ;; architectures, and is a dependant on the 'config'
+                       ;; package, so we manually define the build target.
+                       ,@(match (%current-system)
+                           ("aarch64-linux"
+                            '("--build=aarch64-unknown-linux-gnu"))
+                           ("powerpc64le-linux"
+                            '("--build=powerpc64le-unknown-linux-gnu"))
+                           ("riscv64-linux"
+                            '("--build=riscv64-unknown-linux-gnu"))
+                           (_ '()))
 
                        ,@(if (%current-target-system)         ; cross building
                              '((string-append "--host=" target))
diff --git a/gnu/packages/dc.scm b/gnu/packages/dc.scm
index f22ac93723..41620ea6cf 100644
--- a/gnu/packages/dc.scm
+++ b/gnu/packages/dc.scm
@@ -43,14 +43,14 @@
         (base32 "1bdgqd07f026qk6vpbxqsin536znd33931m3b4z44prlm9wd6pyi"))))
     (build-system gnu-build-system)
     (inputs
-     `(("bzip2" ,bzip2)
-       ("glib" ,glib)
-       ("gnutls" ,gnutls)
-       ("ncurses" ,ncurses)
-       ("sqlite" ,sqlite)
-       ("zlib" ,zlib)))
+     (list bzip2
+           glib
+           gnutls
+           ncurses
+           sqlite
+           zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://dev.yorhel.nl/ncdc")
     (synopsis
      "Lightweight direct connect client with a friendly ncurses interface")
diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm
index a23490f00b..b2bd6c411e 100644
--- a/gnu/packages/debian.scm
+++ b/gnu/packages/debian.scm
@@ -71,8 +71,7 @@
                          (find-files "trusted.gpg" "\\.gpg$")))
              #t)))))
     (native-inputs
-     `(("gnupg" ,gnupg)
-       ("jetring" ,jetring)))
+     (list gnupg jetring))
     (home-page "https://packages.qa.debian.org/d/debian-archive-keyring.html")
     (synopsis "GnuPG archive keys of the Debian archive")
     (description
@@ -81,6 +80,70 @@ contains the archive keys used for that.")
     (license (list license:public-domain ; the keys
                    license:gpl2+)))) ; see debian/copyright
 
+(define-public debian-ports-archive-keyring
+  (package
+    (name "debian-ports-archive-keyring")
+    (version "2020.02.02")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://debian/pool/main/d"
+                            "/debian-ports-archive-keyring"
+                            "/debian-ports-archive-keyring_" version ".tar.xz"))
+        (sha256
+         (base32
+          "0746zfc3n4f77wlrd9a9a6r4mahz2cx5wdd9izg65vmn5qwamgza"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f              ; No test suite.
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)    ; No configure script.
+         (replace 'build
+           (lambda _
+             ;; gpg options derived from the debian/rules file.
+             (let ((gpg-options (list "--no-options" "--no-default-keyring"
+                                      "--no-auto-check-trustdb" "--no-keyring"
+                                      "--import-options" "import-export"
+                                      "--import")))
+               (with-output-to-file "debian-ports-archive-keyring.gpg"
+                 (lambda _
+                   (apply invoke "gpg"
+                          (append gpg-options (find-files "active-keys")))))
+               (with-output-to-file "debian-ports-archive-keyring-removed.gpg"
+                 (lambda _
+                   (apply invoke "gpg"
+                          (append gpg-options (find-files "removed-keys")))))
+               (mkdir "trusted.gpg")
+               (for-each
+                 (lambda (key)
+                   (with-output-to-file
+                     (string-append "trusted.gpg/" (basename key ".key") ".gpg")
+                     (lambda _
+                       (apply invoke "gpg" (append gpg-options (list key))))))
+                 (find-files "active-keys"))
+               #t)))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (apt (string-append out "/etc/apt/trusted.gpg.d/"))
+                    (key (string-append out "/share/keyrings/")))
+               (install-file "debian-ports-archive-keyring.gpg" key)
+               (install-file "debian-ports-archive-keyring-removed.gpg" key)
+               (for-each (lambda (file)
+                           (install-file file apt))
+                         (find-files "trusted.gpg" "\\.gpg$")))
+             #t)))))
+    (native-inputs
+     (list gnupg))
+    (home-page "https://tracker.debian.org/pkg/debian-ports-archive-keyring")
+    (synopsis "GnuPG archive keys of the Debian ports archive")
+    (description
+     "The Debian ports-archive digitally signs its Release files.  This package
+contains the archive keys used for that.")
+    ;; "The keys in the keyrings don't fall under any copyright."
+    (license license:public-domain)))
+
 (define-public ubuntu-keyring
   (package
     (name "ubuntu-keyring")
@@ -113,8 +176,7 @@ contains the archive keys used for that.")
                                (find-files "." "ubuntu-[am].*\\.gpg$")))
                    #t)))
     (native-inputs
-     `(("tar" ,tar)
-       ("gzip" ,gzip)))
+     (list tar gzip))
     (home-page "https://launchpad.net/ubuntu/+source/ubuntu-keyring")
     (synopsis "GnuPG keys of the Ubuntu archive")
     (description
@@ -126,7 +188,7 @@ contains the archive keys used for that.")
 (define-public debootstrap
   (package
     (name "debootstrap")
-    (version "1.0.124")
+    (version "1.0.126")
     (source
       (origin
         (method git-fetch)
@@ -135,7 +197,7 @@ contains the archive keys used for that.")
               (commit version)))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "0pbvrp7gb87pwmjika5hy97342mdfvm0gmy23ag8xz1nnpmn160j"))))
+         (base32 "0hfx6k86kby4xf0xqskpllq00g159j4khh66hfi6dhcdb91dgyd7"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -195,7 +257,7 @@ contains the archive keys used for that.")
        ("gnupg" ,gnupg)
        ("wget" ,wget)))
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "https://tracker.debian.org/pkg/debootstrap")
     (synopsis "Bootstrap a basic Debian system")
     (description "Debootstrap is used to create a Debian base system from
@@ -207,7 +269,7 @@ unpacking them into a directory which can eventually be chrooted into.")
 (define-public debianutils
   (package
     (name "debianutils")
-    (version "4.11.1")
+    (version "5.5-1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -216,20 +278,10 @@ unpacking them into a directory which can eventually be chrooted into.")
               (file-name (git-file-name "debianutils" version))
               (sha256
                (base32
-                "18ypb7fivch53wwrdf73yhf1fhkwn9kvw1kfdc1m450241d6191w"))))
+                "1sbdjcb44g2s1zxjf9kxrp9drf9mmh6b49a9z3k428gmc6zsci4r"))))
     (build-system gnu-build-system)
-    (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (add-after 'bootstrap 'create-translations
-                    (lambda _
-                      (with-directory-excursion "po4a"
-                        (invoke "po4a" "--no-backups" "po4a.conf"))
-                      #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gettext-minimal)
-       ("po4a" ,po4a)))
+     (list autoconf automake gettext-minimal po4a))
     (home-page "https://packages.debian.org/unstable/debianutils")
     (synopsis "Miscellaneous shell utilities")
     (description
@@ -271,8 +323,7 @@ debian/copyright for more information.")))))
                             "PREFIX=/")
          #:phases (modify-phases %standard-phases (delete 'configure))))
       (inputs
-       `(("wget" ,wget)
-         ("perl" ,perl)))
+       (list wget perl))
       (home-page "http://apt-mirror.github.io/")
       (synopsis "Script for mirroring a Debian repository")
       (description
@@ -284,7 +335,7 @@ other apt sources typically provided by open source developers.")
 (define-public dpkg
   (package
     (name "dpkg")
-    (version "1.20.9")
+    (version "1.21.0")
     (source
       (origin
         (method git-fetch)
@@ -293,8 +344,7 @@ other apt sources typically provided by open source developers.")
                (commit version)))
         (file-name (git-file-name name version))
         (sha256
-         (base32
-          "16wlb8hwbdvxar187bjd4pzdzj95g3l2ryi2khqqmwbyca4sjm1n"))))
+         (base32 "0g33cyd0qbyfdrphcw8m8ikj2hxqpjbyxbhvnp751515c8hgc4rx"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -303,8 +353,7 @@ other apt sources typically provided by open source developers.")
            (lambda _
              (patch-shebang "get-version")
              (with-output-to-file ".dist-version"
-               (lambda () (display ,version)))
-             #t))
+               (lambda () (display ,version)))))
          (add-after 'unpack 'set-perl-libdir
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out  (assoc-ref outputs "out"))
@@ -312,8 +361,7 @@ other apt sources typically provided by open source developers.")
                (setenv "PERL_LIBDIR"
                        (string-append out
                                       "/lib/perl5/site_perl/"
-                                      ,(package-version perl)))
-               #t))))))
+                                      ,(package-version perl)))))))))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -322,12 +370,12 @@ other apt sources typically provided by open source developers.")
        ("pkg-config" ,pkg-config)
        ("perl-io-string" ,perl-io-string)))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("libmd" ,libmd)
-       ("ncurses" ,ncurses)
-       ("perl" ,perl)
-       ("xz" ,xz)
-       ("zlib" ,zlib)))
+     (list bzip2
+           libmd
+           ncurses
+           perl
+           xz
+           zlib))
     (home-page "https://wiki.debian.org/Teams/Dpkg")
     (synopsis "Debian package management system")
     (description "This package provides the low-level infrastructure for
@@ -372,15 +420,14 @@ handling the installation and removal of Debian software packages.")
                           (string-append zsh "_reprepro"))
                #t))))))
     (inputs
-     `(("bdb" ,bdb)
-       ("bzip2" ,bzip2)
-       ("gpgme" ,gpgme)
-       ("libarchive" ,libarchive)
-       ("xz" ,xz)
-       ("zlib" ,zlib)))
+     (list bdb
+           bzip2
+           gpgme
+           libarchive
+           xz
+           zlib))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (home-page "https://salsa.debian.org/brlink/reprepro")
     (synopsis "Debian package repository producer")
     (description "Reprepro is a tool to manage a repository of Debian packages
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 6507c82fcc..f56f70d0a1 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -5,9 +5,10 @@
 ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
-;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
+;;; Copyright © 2020, 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -61,6 +62,7 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages serialization)
+  #:use-module (gnu packages texinfo)
   #:use-module (gnu packages virtualization)
   #:use-module (gnu packages xdisorg)
   #:use-module (ice-9 match)
@@ -84,7 +86,7 @@
         "184wh35pf2ddx97319s6sgkzpz48xxkbwzcjpycv009bm53lh61q"))))
     (build-system gnu-build-system)
     (inputs                             ;Installed programs are perl scripts
-     `(("perl" ,perl)))
+     (list perl))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -127,7 +129,7 @@ program to exhibit a bug.")
       (sha256
        (base32 "0qx0zq8jxzx2as2zf0740g7kvgq163ayn3041di4vwk77490y76v"))))
     (build-system gnu-build-system)
-    (native-inputs `(("flex" ,flex)))
+    (native-inputs (list flex))
     (inputs
      `(("astyle"          ,astyle)
        ("llvm"            ,llvm)
@@ -189,9 +191,7 @@ tools that process C/C++ code.")
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("flex" ,flex)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-flake8" ,python-pytest-flake8)))
+     (list flex python-pytest python-pytest-flake8))
     (inputs
      `(("bash" ,bash-minimal)           ; For wrap-program
        ("clang" ,clang)
@@ -252,7 +252,7 @@ tool.")
          (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (inputs
-       `(("qemu" ,qemu-for-american-fuzzy-lop)))
+       (list qemu-for-american-fuzzy-lop))
       (arguments
        `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
                             (string-append "DOC_PATH=$(PREFIX)/share/doc/"
@@ -470,9 +470,7 @@ server and embedded PowerPC, and S390 guests.")
            "0k55cy7x0hlc6rgpascl6ibhcfxaash3p9r9r8kwvbm3zag1rmac"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("go" ,go)))
+       (list autoconf automake go))
       (inputs
        `(("make-source" ,(package-source gnu-make))))
       (arguments
@@ -561,9 +559,7 @@ input.  Zzuf's behaviour is deterministic, making it easy to reproduce bugs.")
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (substitute* "gui/GameConqueror.py"
                (("/usr/bin/env python")
-                (string-append (assoc-ref %build-inputs
-                                          "python-wrapper") "/bin/python")))
-             #t))
+                (search-input-file inputs "/bin/python")))))
          (add-after 'install 'wrap-gameconqueror
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out               (assoc-ref outputs "out"))
@@ -574,17 +570,17 @@ input.  Zzuf's behaviour is deterministic, making it easy to reproduce bugs.")
                  `("GUIX_PYTHONPATH"             ":" prefix (,python-path))))
              #t)))))
     (native-inputs
-     `(("libtool" ,libtool)
-       ("python-wrapper" ,python-wrapper)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk+" ,gtk+)
-       ("intltool" ,intltool)
-       ("automake" ,automake)
-       ("autoconf" ,autoconf)))
+     (list libtool
+           python-wrapper
+           gobject-introspection
+           gtk+
+           intltool
+           automake
+           autoconf))
     (inputs
-     `(("readline" ,readline)))
+     (list readline))
     (propagated-inputs
-     `(("python-pygobject" ,python-pygobject)))
+     (list python-pygobject))
     (home-page "https://github.com/scanmem/scanmem")
     (synopsis "Memory scanner")
     (description "Scanmem is a debugging utility designed to isolate the
@@ -614,8 +610,8 @@ the position of the variable and allows you to modify its value.")
                 "0xlx2485y0israv2pfghmv74lxcv9i5y65agy69mif76yc4vfvif"))
               (patches (search-patches "remake-impure-dirs.patch"))))
     (inputs
-     `(("readline" ,readline)
-       ,@(package-inputs gnu-make)))
+     (modify-inputs (package-inputs gnu-make)
+       (prepend readline)))
     (home-page "http://bashdb.sourceforge.net/remake/")
     (description "Remake is an enhanced version of GNU Make that adds improved
 error reporting, better tracing, profiling, and a debugger.")
@@ -667,14 +663,9 @@ error reporting, better tracing, profiling, and a debugger.")
                       (setenv "HOME" (getcwd))
                       #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("ninja" ,ninja)
-       ("which" ,which)))
+     (list pkg-config ninja which))
     (inputs
-     `(("gdb" ,gdb)
-       ("capnproto" ,capnproto)
-       ("python" ,python)
-       ("python-pexpect" ,python-pexpect)))
+     (list gdb capnproto python python-pexpect))
     (home-page "https://rr-project.org/")
     (synopsis "Record and reply debugging framework")
     (description
@@ -743,8 +734,7 @@ program to produce symbolic backtraces.")
                       (let* ((out (assoc-ref outputs "out")))
                         (install-file "libleak.so" (string-append out "/lib"))
                         #t))))))
-    (inputs `(("libbacktrace" ,libbacktrace)
-              ("libwuya" ,libwuya)))
+    (inputs (list libbacktrace libwuya))
     (home-page "https://github.com/WuBingzheng/libleak")
     (synopsis "Memory leaks detection tool")
     (description "The libleak tool detects memory leaks by hooking memory
@@ -757,36 +747,63 @@ smaller than that of other tools such as Valgrind, and it aims to be easier to
 use than similar tools like @command{mtrace}.")
     (license license:gpl2+)))
 
-(define-public mspdebug
+(define-public cgdb
   (package
-    (name "mspdebug")
-    (version "0.25")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/dlbeer/mspdebug")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32 "0prgwb5vx6fd4bj12ss1bbb6axj2kjyriyjxqrzd58s5jyyy8d3c"))))
+    (name "cgdb")
+    (version "0.7.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://cgdb.me/files/cgdb-" version ".tar.gz"))
+       (sha256
+        (base32 "1671gpz5gx5j0zga8xy2x7h33vqh3nij93lbb6dbb366ivjknwmv"))))
     (build-system gnu-build-system)
-    (arguments
-     `(#:tests? #f                         ; no test suite
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure))              ; no configure script
-       #:make-flags
-       (list (string-append "CC=" ,(cc-for-target))
-             "INSTALL=install"
-             (string-append "PREFIX=" %output))))
-  (inputs
-     `(("libusb-compat" ,libusb-compat)
-       ("readline" ,readline)))
-    (synopsis "Debugging tool for MSP430 MCUs")
-    (description "MspDebug supports FET430UIF, eZ430, RF2500 and Olimex
+    (inputs
+     (list ncurses readline))
+    (native-inputs
+     (list flex texinfo))
+    (home-page "https://cgdb.github.io")
+    (synopsis "Console front-end to the GNU debugger")
+    (description
+     "@code{cgdb} is a lightweight curses (terminal-based) interface to the
+GNU Debugger (GDB).  In addition to the standard gdb console, cgdb provides
+a split screen view that displays the source code as it executes.  The
+keyboard interface is modeled after vim, so vim users should feel at home
+using cgdb.")
+    (license license:gpl2+)))
+
+(define-public mspdebug
+  ;; Last official release was 24 July 2017
+  (let ((commit "4c4d94e43bc4a18ecf82070ff81cd38dd5641e3b")
+        (revision "0"))
+    (package
+      (name "mspdebug")
+      (version (git-version "0.25" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/dlbeer/mspdebug")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32 "1lgw1dsc1aglyja610ichadvgs5b0df3wlarinczb0ykf431gjln"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f                    ; no test suite
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure))         ; no configure script
+         #:make-flags
+         (list (string-append "CC=" ,(cc-for-target))
+               "INSTALL=install"
+               (string-append "PREFIX=" %output))))
+      (inputs
+       (list libusb-compat readline))
+      (synopsis "Debugging tool for MSP430 MCUs")
+      (description "MspDebug supports FET430UIF, eZ430, RF2500 and Olimex
 MSP430-JTAG-TINY programmers, as well as many other compatible
 devices.  It can be used as a proxy for gdb or as an independent
 debugger with support for programming, disassembly and reverse
 engineering.")
-    (home-page "https://github.com/dlbeer/mspdebug")
-    (license license:gpl2+)))
+      (home-page "https://github.com/dlbeer/mspdebug")
+      (license license:gpl2+))))
diff --git a/gnu/packages/dejagnu.scm b/gnu/packages/dejagnu.scm
index 0dee89dfc1..08be5a8afd 100644
--- a/gnu/packages/dejagnu.scm
+++ b/gnu/packages/dejagnu.scm
@@ -38,7 +38,7 @@
        (base32
         "0qfj2wd4qk1yn9yzam6g8nmyxfazcc0knjyyibycb2ainkhp21hd"))))
     (build-system gnu-build-system)
-    (inputs `(("expect" ,expect)))
+    (inputs (list expect))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/dhall.scm b/gnu/packages/dhall.scm
index c0776902e7..b406d89eb5 100644
--- a/gnu/packages/dhall.scm
+++ b/gnu/packages/dhall.scm
@@ -30,70 +30,73 @@
 (define-public dhall
   (package
     (name "dhall")
-    (version "1.32.0")
+    (version "1.39.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/dhall/dhall-"
                            version ".tar.gz"))
        (sha256
-        (base32 "1imj0bh5365pdizvjbw2wqz0g9hakigf1zm4fr6379qdchxpp90p"))))
+        (base32 "1by2d84fbckspczddl4npfsf89q6nprmbg0i5g8yr1psp0fpl4ab"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-aeson-pretty" ,ghc-aeson-pretty)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-atomic-write" ,ghc-atomic-write-0.2.0.7)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-cborg" ,ghc-cborg)
-       ("ghc-cborg-json" ,ghc-cborg-json)
-       ("ghc-contravariant" ,ghc-contravariant)
-       ("ghc-data-fix" ,ghc-data-fix)
-       ("ghc-diff" ,ghc-diff)
-       ("ghc-dotgen" ,ghc-dotgen)
-       ("ghc-either" ,ghc-either)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-half" ,ghc-half)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-lens-family-core" ,ghc-lens-family-core)
-       ("ghc-megaparsec" ,ghc-megaparsec)
-       ("ghc-memory" ,ghc-memory)
-       ("ghc-network-uri" ,ghc-network-uri)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-parsers" ,ghc-parsers)
-       ("ghc-parser-combinators" ,ghc-parser-combinators)
-       ("ghc-prettyprinter" ,ghc-prettyprinter-1.6)
-       ("ghc-prettyprinter-ansi-terminal" ,ghc-prettyprinter-ansi-terminal)
-       ("ghc-pretty-simple" ,ghc-pretty-simple)
-       ("ghc-profunctors" ,ghc-profunctors)
-       ("ghc-repline" ,ghc-repline-0.3)
-       ("ghc-serialise" ,ghc-serialise)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-text-manipulate" ,ghc-text-manipulate)
-       ("ghc-th-lift-instances" ,ghc-th-lift-instances)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-uri-encode" ,ghc-uri-encode)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-cryptonite" ,ghc-cryptonite)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-http-client" ,ghc-http-client)
-       ("ghc-http-client-tls" ,ghc-http-client-tls)))
+     (list ghc-aeson
+           ghc-aeson-pretty
+           ghc-ansi-terminal
+           ghc-atomic-write-0.2.0.7
+           ghc-case-insensitive
+           ghc-cborg
+           ghc-cborg-json
+           ghc-contravariant
+           ghc-data-fix
+           ghc-diff
+           ghc-dotgen
+           ghc-either
+           ghc-exceptions
+           ghc-half
+           ghc-hashable
+           ghc-lens-family-core
+           ghc-megaparsec
+           ghc-memory
+           ghc-mmorph
+           ghc-network-uri
+           ghc-optparse-applicative
+           ghc-parsers
+           ghc-parser-combinators
+           ghc-prettyprinter
+           ghc-prettyprinter-ansi-terminal
+           ghc-pretty-simple
+           ghc-profunctors
+           ghc-pretty-simple
+           ghc-repline
+           ghc-serialise
+           ghc-scientific
+           ghc-text-manipulate
+           ghc-th-lift-instances
+           ghc-transformers-compat
+           ghc-unordered-containers
+           ghc-uri-encode
+           ghc-vector
+           ghc-cryptonite
+           ghc-http-types
+           ghc-http-client
+           ghc-http-client-tls))
     (native-inputs
-     `(("ghc-foldl" ,ghc-foldl)
-       ("ghc-generic-random" ,ghc-generic-random-1.3.0.1)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-special-values" ,ghc-special-values)
-       ("ghc-spoon" ,ghc-spoon)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-turtle" ,ghc-turtle)
-       ("ghc-mockery" ,ghc-mockery)
-       ("ghc-doctest" ,ghc-doctest)))
+     (list ghc-foldl
+           ghc-generic-random-1.3.0.1
+           ghc-quickcheck
+           ghc-quickcheck-instances
+           ghc-semigroups
+           ghc-special-values
+           ghc-spoon
+           ghc-tasty
+           ghc-tasty-expected-failure
+           ghc-tasty-hunit
+           ghc-tasty-quickcheck
+           ghc-tasty-silver
+           ghc-turtle
+           ghc-mockery
+           ghc-doctest))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -102,8 +105,7 @@
              (with-directory-excursion "dhall-lang/tests"
                (for-each
                 delete-file
-                '("import/failure/referentiallyInsane.dhall"
-                  "import/success/customHeadersA.dhall"
+                '("import/success/customHeadersA.dhall"
                   "import/success/noHeaderForwardingA.dhall"
                   "import/success/unit/RemoteAsTextA.dhall"
                   "import/success/unit/SimpleRemoteA.dhall"
diff --git a/gnu/packages/dico.scm b/gnu/packages/dico.scm
index fb97ee3d85..c7c1963726 100644
--- a/gnu/packages/dico.scm
+++ b/gnu/packages/dico.scm
@@ -65,7 +65,7 @@
                     (lambda _
                       ;; Test '71: append + dooffs + env' fails if $V is not 2.
                       (invoke "make" "check" "V=2"))))))
-    (native-inputs `(("groff" ,groff)))
+    (native-inputs (list groff))
     (inputs
      `(("m4" ,m4)                                 ;used at run time
        ("pcre" ,pcre)
diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm
index b8bde241f7..f9d6e57877 100644
--- a/gnu/packages/dictionaries.scm
+++ b/gnu/packages/dictionaries.scm
@@ -100,9 +100,7 @@
                              "vera.texi" "--force" "--html" "-o"
                              (string-append html "/vera.html"))))
       #:modules ((guix build utils))))
-    (native-inputs `(("texinfo" ,texinfo)
-                     ("tar" ,tar)
-                     ("gzip" ,gzip)))
+    (native-inputs (list texinfo tar gzip))
     (home-page "https://savannah.gnu.org/projects/vera/")
     (synopsis "List of acronyms")
     (description
@@ -167,7 +165,7 @@ work, such as sentence length and other readability measures.")
                (base32
                 "0chjqs3z9zs1w3l7b5lsaj682rgnkf9kibcbzhggqqcn1pbvl5sq"))))
     (build-system gnu-build-system)
-    (inputs `(("tk" ,tk)))
+    (inputs (list tk))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -290,9 +288,7 @@ and a Python library.")
                   (guix build utils))
        #:test-target "test"))
     (inputs
-     `(("curl" ,curl)
-       ("fribidi" ,fribidi)
-       ("rlwrap" ,rlwrap)))
+     (list curl fribidi rlwrap))
     (native-inputs
      `(("emacs" ,emacs-minimal)
        ("util-linux" ,util-linux)))     ; hexdump, for the test
@@ -308,18 +304,20 @@ translation engines from your terminal.")
 (define-public lttoolbox
   (package
     (name "lttoolbox")
-    (version "3.5.3")
+    (version "3.5.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "https://github.com/apertium/lttoolbox/releases/download/v"
-             version "/lttoolbox-" version ".tar.bz2"))
+             version "/lttoolbox-" version ".tar.xz"))
        (sha256
-        (base32 "109l91ailish1a3vya5zmfg3kb67cwyzl36ndnh8f59chsbm6n2f"))))
+        (base32 "0kn9xg9sc64amd6ah5gi4qij0bhfbmc2jjvxbjjrsdd8iq054cgm"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       (list "--disable-static")
+       #:phases
        (modify-phases %standard-phases
          (replace 'bootstrap
            ;; The included ./autogen.sh unconditionally runs ./configure before
@@ -327,12 +325,9 @@ translation engines from your terminal.")
            (lambda _
              (invoke "autoreconf" "-vfi"))))))
     (inputs
-     `(("libxml2" ,libxml2)))
+     (list libxml2))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (home-page "https://wiki.apertium.org/wiki/Lttoolbox")
     (synopsis "Lexical processing toolbox")
     (description "Lttoolbox is a toolbox for lexical processing, morphological
@@ -358,10 +353,7 @@ word (e.g. cats) into its lemma \"cat\" and the grammatical information
        (file-name (string-append name "-" version ".tar.gz"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("lttoolbox" ,lttoolbox)
-       ("pcre" ,pcre)))
+     (list libxml2 libxslt lttoolbox pcre))
     (native-inputs
      `(("apertium-get"
         ,(origin
@@ -433,10 +425,7 @@ intelligible and easily correctable.")
      `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("glib" ,glib)
-       ("ncurses" ,ncurses)
-       ("readline" ,readline)
-       ("zlib" ,zlib)))
+     (list glib ncurses readline zlib))
     (home-page "https://dushistov.github.io/sdcv/")
     (synopsis "Console version of StarDict")
     (description "sdcv is simple text-based utility for work with dictionaries
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index 35e4783b2a..3c57b5a8c4 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
@@ -34,6 +34,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpio)
   #:use-module (gnu packages dbm)
+  #:use-module (gnu packages file)      ;for 'file-next'
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gnome)
@@ -49,6 +50,7 @@
   #:use-module (gnu packages mono)
   #:use-module (gnu packages ocaml)
   #:use-module (gnu packages package-management)
+  #:use-module (gnu packages pascal)
   #:use-module (gnu packages patchutils)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages python-web)
@@ -72,25 +74,27 @@
 (define-public diffoscope
   (package
     (name "diffoscope")
-    (version "177")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://salsa.debian.org/reproducible-builds/diffoscope.git")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "02np9dq7jnq48lcmz4k1hvwc6xiqgjhrwr1vsbsfw8rxnp9vs0a5"))))
+    (version "197")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://salsa.debian.org/reproducible-builds/diffoscope.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0wpwzjqv7pbah55hmajyca7mmz7xv98mg0yqknjzmrjvfnm6azgw"))
+       (patches
+        (search-patches "diffoscope-fix-llvm-test.patch"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
-                  ;; This test is broken because our `file` package has a
-                  ;; bug in berkeley-db file type detection.
-                  (add-after 'unpack 'remove-berkeley-test
+                  ;; These tests are broken because our `file` package has a
+                  ;; bug in berkeley-db and wasm file type detection.
+                  (add-after 'unpack 'remove-broken-file-type-detection-test
                     (lambda _
                       (delete-file "tests/comparators/test_berkeley_db.py")
-                      #t))
+                      (delete-file "tests/comparators/test_wasm.py")))
                   (add-after 'unpack 'embed-tool-references
                     (lambda* (#:key inputs #:allow-other-keys)
                       (substitute* "diffoscope/comparators/utils/compare.py"
@@ -106,101 +110,120 @@
                         (("\\['stat',")
                          (string-append "['" (which "stat") "',"))
                         (("\\['getfacl',")
-                         (string-append "['" (which "getfacl") "',")))
-                      #t))
+                         (string-append "['" (which "getfacl") "',")))))
                   (add-after 'build 'build-man-page
                     (lambda* (#:key (make-flags '()) #:allow-other-keys)
                       (apply invoke "make" "-C" "doc" make-flags)))
                   (add-before 'check 'writable-test-data
                     (lambda _
                       ;; Tests may need write access to tests directory.
-                      (for-each make-file-writable (find-files "tests"))
-                      #t))
+                      (for-each make-file-writable (find-files "tests"))))
+                  (add-before 'check 'fix-failing-test
+                    (lambda _
+                      ;; There is no user name mapping in the build environment.
+                      ;; Pytest made it so much harder than should be necessary,
+                      ;; so I'm leaving… this here in case I ever need it again:
+                      ;; (substitute* "tests/comparators/test_squashfs.py"
+                      ;;   (("^def test_symlink_root.*" match)     ; no, I don't
+                      ;;    (string-append                         ; know Python
+                      ;;     match "\n    raise ValueError("       ; why do you
+                      ;;     "differences_root[1].unified_diff)\n"))) ; ask
+                      (substitute* "tests/data/squashfs_root_expected_diff"
+                        (("root/root")
+                         '"0/0      "))))
                   (add-before 'check 'delete-failing-test
+                    ;; Please add new tests to fix-failing-test and not here ;-)
                     (lambda _
                       ;; This requires /sbin to be in $PATH.
-                      (delete-file "tests/test_tools.py")
-                      #t))
+                      (delete-file "tests/test_tools.py")))
                   (add-after 'install 'install-man-page
                     (lambda* (#:key outputs #:allow-other-keys)
                       (let* ((out (assoc-ref outputs "out"))
                              (man (string-append out "/share/man/man1")))
-                        (install-file "doc/diffoscope.1" man)
-                        #t))))))
-    (inputs `(("rpm" ,rpm)              ;for rpm-python
-              ("python-debian" ,python-debian)
-              ("python-libarchive-c" ,python-libarchive-c)
-              ("python-magic" ,python-magic)
-              ("python-tlsh" ,python-tlsh)
-              ("acl" ,acl)              ;for getfacl
-              ("colordiff" ,colordiff)
-              ("xxd" ,xxd)))
-    (native-inputs `(("help2man" ,help2man)
-                     ;; Below are modules used for tests.
-                     ("python-pytest" ,python-pytest)
-                     ("python-chardet" ,python-chardet)
-                     ("python-binwalk" ,python-binwalk)
-                     ("python-black" ,python-black)
-                     ("python-h5py" ,python-h5py)
-                     ("python-pypdf2" ,python-pypdf2)
-                     ("python-progressbar33" ,python-progressbar33)
-                     ;; The test suite skips tests when these are missing.
-                     ,@(match (%current-system)
-                         ;; ghc is only available on x86 currently.
-                         ((or "x86_64-linux" "i686-linux")
-                          `(("ghc" ,ghc)))
-                         (_
-                          `()))
-                     ,@(match (%current-system)
-                         ;; openjdk and dependent packages are only
-                         ;; available on x86_64 currently.
-                         ((or "x86_64-linux")
-                          `(("enjarify" ,enjarify)
-                            ;; no unversioned openjdk available
-                            ("openjdk:jdk" ,openjdk12 "jdk")))
-                         (_
-                          `()))
-                     ("abootimg" ,abootimg)
-                     ("bdb" ,bdb)
-                     ("binutils" ,binutils)
-                     ("bzip2" ,bzip2)
-                     ("cdrtools" ,cdrtools)
-                     ("colord" ,colord)
-                     ("cpio" ,cpio)
-                     ("docx2txt" ,docx2txt)
-                     ("dtc" ,dtc)
-                     ("e2fsprogs" ,e2fsprogs)
-                     ("ffmpeg" ,ffmpeg)
-                     ("gettext" ,gettext-minimal)
-                     ("ghostscript" ,ghostscript)
-                     ("giflib:bin" ,giflib "bin")
-                     ("gnumeric" ,gnumeric)
-                     ("gnupg" ,gnupg)
-                     ("hdf5" ,hdf5)
-                     ("imagemagick" ,imagemagick)
-                     ("libarchive" ,libarchive)
-                     ("llvm" ,llvm)
-                     ("lz4" ,lz4)
-                     ("mono" ,mono)
-                     ("ocaml" ,ocaml)
-                     ("odt2txt" ,odt2txt)
-                     ("openssh" ,openssh)
-                     ("openssl" ,openssl)
-                     ("pgpdump" ,pgpdump)
-                     ("poppler" ,poppler)
-                     ("python-jsbeautifier" ,python-jsbeautifier)
-                     ("r-minimal" ,r-minimal)
-                     ("rpm" ,rpm)
-                     ("sng" ,sng)
-                     ("sqlite" ,sqlite)
-                     ("squashfs-tools" ,squashfs-tools)
-                     ("tcpdump" ,tcpdump)
-                     ("unzip" ,unzip)
-                     ("wabt" ,wabt)
-                     ("xxd" ,xxd)
-                     ("xz" ,xz)
-                     ("zip" ,zip)
-                     ("zstd" ,zstd)))
+                        (install-file "doc/diffoscope.1" man)))))))
+    (inputs (list rpm ;for rpm-python
+                  python-debian
+                  python-libarchive-c
+                  python-magic
+                  python-tlsh
+                  acl ;for getfacl
+                  colordiff
+                  xxd))
+    (native-inputs
+     (append
+       (list help2man
+
+             ;; Below are packages used for tests.
+             binwalk
+             python-pytest
+             python-chardet
+             python-black
+             python-h5py
+             python-pypdf2
+             python-progressbar33
+
+             abootimg
+             bdb
+             binutils
+             bzip2
+             cdrtools
+             colord
+             cpio
+             docx2txt
+             dtc
+             e2fsprogs
+             ffmpeg
+
+             ;; XXX: Must be the same version as python-magic uses;
+             ;; remove when 'file' is updated.
+             file-next
+
+             fpc
+             gettext-minimal
+             ghostscript
+             `(,giflib "bin")
+             gnumeric
+             gnupg
+             hdf5
+             imagemagick
+             libarchive
+             llvm
+             lz4
+             mono
+             ocaml
+             odt2txt
+             openssh
+             openssl
+             pgpdump
+             poppler
+             python-jsbeautifier
+             r-minimal
+             rpm
+             sng
+             sqlite
+             squashfs-tools
+             tcpdump
+             unzip
+             wabt
+             xxd
+             xz
+             zip
+             zstd)
+
+       ;; Also for tests.  The test suite skips tests when these are missing.
+       (match (%current-system)
+         ;; ghc is only available on x86 currently.
+         ((or "x86_64-linux" "i686-linux")
+          (list ghc))
+         (_ '()))
+       (match (%current-system)
+         ;; openjdk and dependent packages are only
+         ;; available on x86_64 currently.
+         ((or "x86_64-linux")
+          (list enjarify)
+          ;; No unversioned openjdk available.
+          (list `(,openjdk12 "jdk")))
+         (_ '()))))
     (home-page "https://diffoscope.org/")
     (synopsis "Compare files, archives, and directories in depth")
     (description
@@ -217,7 +240,7 @@ install.")
 (define-public reprotest
   (package
     (name "reprotest")
-    (version "0.7.16")
+    (version "0.7.18")
     (source
      (origin
        (method git-fetch)
@@ -227,12 +250,9 @@ install.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0s7gyixk868dw6yqxsb1sq24mgg9ilz5s2yidd5j0zhl683n7dw9"))))
+         "19lwsxq53isgfkvlxvxqqmbjfcim3lhcxwk7m9ddfjiynhq74949"))))
     (inputs
-     `(("python-debian" ,python-debian)
-       ("python-distro" ,python-distro)
-       ("python-libarchive-c" ,python-libarchive-c)
-       ("python-rstr" ,python-rstr)))
+     (list python-debian python-distro python-libarchive-c python-rstr))
     (native-inputs
      `(("diffoscope" ,diffoscope)
        ("help2man" ,help2man)
@@ -310,10 +330,9 @@ them in detail for later analysis.")
                           (string-append share "/doc/" ,name "-" ,version)))
              #t)))))
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     (native-inputs
-     `(("gzip" ,gzip)
-       ("python-docutils" ,python-docutils)))
+     (list gzip python-docutils))
     (build-system python-build-system)
     (home-page "https://try.diffoscope.org")
     (synopsis "Client for remote diffoscope service")
diff --git a/gnu/packages/direct-connect.scm b/gnu/packages/direct-connect.scm
index b2e9776f94..87bf0a7c8a 100644
--- a/gnu/packages/direct-connect.scm
+++ b/gnu/packages/direct-connect.scm
@@ -50,16 +50,14 @@
        #:scons-flags (list (string-append "PREFIX=" %output))
        #:tests? #f)) ; no tests
     (inputs
-     `(("boost" ,boost)
-       ("bzip2" ,bzip2)
-       ("gtk+" ,gtk+-2)
-       ("libglade" ,libglade)
-       ("libnotify" ,libnotify)
-       ("openssl" ,openssl)))
+     (list boost
+           bzip2
+           gtk+-2
+           libglade
+           libnotify
+           openssl))
     (native-inputs
-     `(("bazaar" ,bazaar)
-       ("gettext-minimal" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+     (list bazaar gettext-minimal pkg-config))
     (home-page "https://launchpad.net/linuxdcpp/")
     (synopsis "Direct Connect client")
     (description "LinuxDC++ is a Direct Connect (DC) client.  Direct Connect
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 7d6f3811dd..3ab65e60d4 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -21,6 +21,7 @@
 ;;; Copyright © 2021 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2021 Justin Veilleux <terramorpha@cock.li>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -58,6 +59,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
@@ -65,10 +67,12 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages perl-web)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages popt)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages serialization)
@@ -140,7 +144,7 @@
                                  "/share/man/man8"))
                  #t))))))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (inputs
        `(("util-linux:lib" ,util-linux "lib"))) ; libblkid
       (home-page "https://bcache.evilpiepirate.org")
@@ -208,15 +212,14 @@ and write-back caching.")
                (("`which udevil 2>/dev/null`") "/run/setuid-programs/udevil"))
              #t)))))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("cifs-utils" ,cifs-utils)
-       ("curlftpfs" ,curlftpfs)
-       ("eudev" ,eudev)
-       ("fakeroot" ,fakeroot)
-       ("glib" ,glib)
-       ("sshfs" ,sshfs)))
+     (list cifs-utils
+           curlftpfs
+           eudev
+           fakeroot
+           glib
+           sshfs))
     (synopsis "Device and file system manager")
     (description "udevil is a command line program that mounts and unmounts
 removable devices without a password, shows device info, and monitors device
@@ -248,9 +251,8 @@ tmpfs/ramfs filesystems.")
                (("/usr/bin/python") (which "python")))
              #t)))))
     (inputs
-     `(("lvm2" ,lvm2)
-       ("readline" ,readline)
-       ("util-linux" ,util-linux "lib")))
+     (list lvm2 readline
+           `(,util-linux "lib")))
     (native-inputs
      `(("gettext" ,gettext-minimal)
 
@@ -334,8 +336,7 @@ tables, and it understands a variety of different formats.")
                (substitute* "autogen.sh"
                  (("\\./configure") "")))))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)))
+       (list autoconf automake))
       (home-page "https://github.com/baruch/gpart")
       (synopsis "Guess and recover PC-style partition tables")
       (description
@@ -423,7 +424,7 @@ scheme.")
      `(#:configure-flags (list (string-append "CXX=" ,(cxx-for-target)))))
     (home-page "https://www.gnu.org/software/ddrescue/ddrescue.html")
     (synopsis "Data recovery utility")
-    (native-inputs `(("lzip" ,lzip)))
+    (native-inputs (list lzip))
     (description
      "GNU ddrescue is a fully automated data recovery tool.  It copies data
 from one file to another, working to rescue data in case of read errors.  The
@@ -447,13 +448,12 @@ to recover data more efficiently by only reading the necessary blocks.")
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list "--enable-compat-symlinks")
-       #:make-flags (list (string-append "PREFIX=" %output)
-                          "CC=gcc")))
+       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+                          (string-append "CC=" ,(cc-for-target)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ;; For tests.
-       ("xxd" ,xxd)))
+     (list autoconf automake
+           ;; For tests.
+           xxd))
     (home-page "https://github.com/dosfstools/dosfstools")
     (synopsis "Utilities for making and checking MS-DOS FAT file systems")
     (description
@@ -488,7 +488,7 @@ which respectively make and check MS-DOS FAT file systems.")
              ;; Add fsck.vfat symlink to match the Linux driver name.
              (symlink exe "fsck.vfat")
              #t)))))
-    (inputs `(("dosfstools" ,dosfstools/static)))
+    (inputs (list dosfstools/static))
     (home-page (package-home-page dosfstools))
     (synopsis "Statically linked fsck.fat from dosfstools")
     (description "This package provides a statically-linked @command{fsck.fat}
@@ -569,17 +569,13 @@ and can dramatically shorten the lifespan of the drive if left unchecked.")
       ;; as '/dev/disk/by-id'
      `(#:tests? #f))
     (inputs
-     `(("util-linux" ,util-linux "lib")
-       ("parted" ,parted)
-       ("glib" ,glib)
-       ("gtkmm" ,gtkmm)
-       ("libxml2" ,libxml2)))
+     (list `(,util-linux "lib") parted glib gtkmm-3 libxml2))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("itstool" ,itstool)
-       ("lvm2" ,lvm2) ; for tests
-       ("yelp-tools" ,yelp-tools)
-       ("pkg-config" ,pkg-config)))
+     (list intltool
+           itstool
+           lvm2 ; for tests
+           yelp-tools
+           pkg-config))
     (home-page "https://gparted.org/")
     (synopsis "Partition editor to graphically manage disk partitions")
     (description "GParted is a GNOME partition editor for creating,
@@ -637,8 +633,7 @@ systems.  Output format is completely customizable.")
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke "make" "install-extra" make-flags))))))
     (inputs
-     `(("eudev" ,eudev)
-       ("parted" ,parted)))
+     (list eudev parted))
     (home-page "http://oss.digirati.com.br/f3/")
     (synopsis "Test real capacity of flash memory cards and such.")
     (description "F3 (Fight Flash Fraud or Fight Fake Flash) tests the full
@@ -674,12 +669,11 @@ a card with a smaller capacity than stated.")
              (invoke "python" "-m" "unittest" "discover" "-v")
              #t)))))
     (native-inputs
-     `(("e2fsprogs" ,e2fsprogs)
-       ("pkg-config" ,pkg-config)))
+     (list e2fsprogs pkg-config))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (inputs
-     `(("parted" ,parted)))
+     (list parted))
     (home-page "https://github.com/dcantrell/pyparted")
     (synopsis "Parted bindings for Python")
     (description "This package provides @code{parted} bindings for Python.")
@@ -700,10 +694,9 @@ a card with a smaller capacity than stated.")
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("sqlite" ,sqlite)))
+     (list glib sqlite))
     (arguments
      `(#:tests? #f                      ; no test suite
        #:phases
@@ -743,12 +736,11 @@ Duperemove can also take input from the @command{fdupes} program.")
                 "0lfjrpv3z4h0knd3v94fijrw2zjba51mrp3mjqx2c98wr428l26f"))))
     (build-system python-build-system)
     (inputs
-     `(("w3m" ,w3m)))
+     (list w3m))
     (native-inputs
-     `(("which" ,which)
-
-       ;; For tests.
-       ("python-pytest" ,python-pytest)))
+     (list which
+           ;; For tests.
+           python-pytest))
     (arguments
      '( ;; The 'test' target runs developer tools like pylint, which fail.
        #:test-target "test_pytest"
@@ -790,9 +782,7 @@ automatically finding out which program to use for what file type.")
                 "16rhfz6sjwxlmss1plb2wv2i3jq6wza02rmz1d2jrlnsq67p98vc"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("swig" ,swig)
-       ("python" ,python-3)))           ; used to generate the Python bindings
+     (list pkg-config swig python-3))           ; used to generate the Python bindings
     (inputs
      `(("cryptsetup" ,cryptsetup)
        ("nss" ,nss)
@@ -833,23 +823,20 @@ passphrases.")
                 "1vi61bm9wyawklswh9mj9zdp28ar7r97qckwnhgiyila73fb3jx2"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("asciidoc" ,asciidoc)
-       ("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("bash-completion" ,bash-completion)
-       ("docbook-xsl" ,docbook-xsl)
-       ("libtool" ,libtool)
-       ("libxml2" ,libxml2)
-       ("pkg-config" ,pkg-config)
-       ("xmlto" ,xmlto)
-       ;; Required for offline docbook generation.
-       ("which" ,which)))
+     (list asciidoc
+           automake
+           autoconf
+           bash-completion
+           docbook-xsl
+           libtool
+           libxml2
+           pkg-config
+           xmlto
+           ;; Required for offline docbook generation.
+           which))
     (inputs
-     `(("eudev" ,eudev)
-       ("json-c" ,json-c)
-       ("keyutils" ,keyutils)
-       ("kmod" ,kmod)
-       ("util-linux" ,util-linux "lib")))
+     (list eudev json-c keyutils kmod
+           `(,util-linux "lib")))
     (arguments
      `(#:configure-flags
        (list "--disable-asciidoctor"    ; use docbook-xsl instead
@@ -889,8 +876,8 @@ libnvdimm (non-volatile memory device) sub-system in the Linux kernel.")
                (base32
                 "1n7vsqvh7y6yvil682q129d21yhb0cmvd5fvsbkza7ypd78inhlk"))))
     (build-system gnu-build-system)
-    (inputs `(("lvm2" ,lvm2)))
-    (native-inputs `(("which" ,which)))
+    (inputs (list lvm2))
+    (native-inputs (list which))
     (arguments
      `(#:tests? #f                      ; No tests.
        ;; Prevent a race condition where some target would attempt to link
@@ -922,16 +909,15 @@ to create devices with respective mappings for the ATARAID sets discovered.")
 (define-public libblockdev
   (package
     (name "libblockdev")
-    (version "2.25")
+    (version "2.26")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/storaged-project/"
                                   "libblockdev/releases/download/"
                                   version "-1/libblockdev-" version ".tar.gz"))
-              (patches (search-patches "libblockdev-glib-compat.patch"))
               (sha256
                (base32
-                "0s0nazkpzpn4an00qghjkk9n7gdm5a8dqfr5hfnlk5mk5lma8njm"))))
+                "0sg068jb87ljhn8yazrqxi6ri10ic2sh1lp6ikd2nqxc6l5y3h64"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -947,23 +933,22 @@ to create devices with respective mappings for the ATARAID sets discovered.")
        ("python" ,python-wrapper)
        ("util-linux" ,util-linux)))
     (inputs
-     `(("btrfs-progs" ,btrfs-progs)
-       ("cryptsetup" ,cryptsetup)
-       ("dosfstools" ,dosfstools)
-       ("dmraid" ,dmraid)
-       ("eudev" ,eudev)
-       ("glib" ,glib)
-       ("kmod" ,kmod)
-       ("libbytesize" ,libbytesize)
-       ("libyaml" ,libyaml)
-       ("lvm2" ,lvm2)
-       ("mdadm" ,mdadm)
-       ("ndctl" ,ndctl)
-       ("nss" ,nss)
-       ("parted" ,parted)
-       ("volume-key" ,volume-key)
-       ;; ("xfsprogs" ,xfsprogs) ; TODO: Package?
-       ))
+     (list btrfs-progs
+           cryptsetup
+           dosfstools
+           dmraid
+           eudev
+           glib
+           kmod
+           libbytesize
+           libyaml
+           lvm2
+           mdadm
+           ndctl
+           nss
+           parted
+           volume-key
+           xfsprogs))
     (home-page "https://github.com/storaged-project/libblockdev")
     (synopsis "Library for manipulating block devices")
     (description
@@ -1045,7 +1030,7 @@ on your file system and offers to remove it.  @command{rmlint} can find:
 (define-public lf
   (package
     (name "lf")
-    (version "13")
+    (version "25")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1054,11 +1039,14 @@ on your file system and offers to remove it.  @command{rmlint} can find:
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1ld3q75v8rvp169w5p85z1vznqs9bhck6bm2f6fykxx16hmpb6ga"))))
+                "014cybng6hc9y3ma74hpc1ac3rkz4ydflx8jbmvx81rdd08rzwz7"))))
     (build-system go-build-system)
     (native-inputs
      `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
-       ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)))
+       ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)
+       ("go-golang-org-x-term" ,go-golang-org-x-term)
+       ("go-gopkg-in-djherbis-times-v1" ,go-gopkg-in-djherbis-times-v1)
+       ("go-github-com-gdamore-tcell-v2" ,go-github-com-gdamore-tcell-v2)))
     (arguments
      `(#:import-path "github.com/gokcehan/lf"))
     (home-page "https://github.com/gokcehan/lf")
@@ -1123,8 +1111,7 @@ since they are better handled by external tools.")
                    (("~/.config/xfe") xfe)))
                #t))))))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
      `(("bash" ,bash)
        ("coreutils" ,coreutils)
@@ -1190,7 +1177,7 @@ that support this feature).")
 (define-public memkind
   (package
     (name "memkind")
-    (version "1.11.0")
+    (version "1.12.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1198,19 +1185,15 @@ that support this feature).")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
-               (base32
-                "0w5hws12l167mbr4n6a6fl0mhf8mci61fsn55lh2cxz33f7q8n2x"))))
+               (base32 "1s52vl2jlrdc8nxnvf993x9mcag56qxcaniiijhmsv42a26hvjk4"))))
     (build-system gnu-build-system)
     (inputs
-     `(;; memkind patched jemalloc to add je_arenalookupx,
-       ;; je_check_reallocatex--i.e. they forked jemalloc.
-       ;("jemalloc" ,jemalloc)
-       ("ndctl" ,ndctl)
-       ("numactl" ,numactl)))
+     (list ;; memkind patched jemalloc to add je_arenalookupx,
+           ;; je_check_reallocatex--i.e. they forked jemalloc.
+           ;("jemalloc" ,jemalloc)
+           ndctl numactl))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (arguments
      `(#:configure-flags
        (list (string-append "--docdir=" (assoc-ref %outputs "out")
@@ -1225,8 +1208,7 @@ that support this feature).")
                 (("/bin/sh") (which "sh")))
                (invoke "autoconf")
                (substitute* "configure"
-                (("/bin/sh") (which "sh"))))
-             #t)))))
+                (("/bin/sh") (which "sh")))))))))
     (home-page "https://github.com/memkind/memkind")
     (synopsis "Heap manager with memory kinds (for NUMA)")
     (description "This package provides a user-extensible heap manager
@@ -1294,10 +1276,9 @@ inspecting MMC storage devices from userspace.")
              (invoke "nosetests" "-v"
                      "--exclude" "test_bmap_helpers"))))))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)))
+     (list python-mock python-nose))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/intel/bmap-tools")
     (synopsis "Create block map for a file or copy a file using block map")
     (description "Bmaptool is a tool for creating the block map (bmap) for a
@@ -1338,15 +1319,9 @@ reliably with @code{bmaptool} than with traditional tools, like @code{dd} or
                     (doc (string-append out "/share/doc/" ,name "-" ,version)))
                (copy-recursively "examples" (string-append doc "/examples"))))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("cairo" ,cairo)
-       ("pango" ,pango)
-       ("tokyocabinet" ,tokyocabinet)
-       ("ncurses" ,ncurses)))
+     (list cairo pango tokyocabinet ncurses))
     (home-page "http://duc.zevv.nl")
     (synopsis "Library and suite of tools for inspecting disk usage")
     (description "Duc maintains a database of accumulated sizes of
@@ -1356,3 +1331,47 @@ some tools, or create fancy graphs showing you where your bytes are.
 Duc comes with console utilities, ncurses and X11 user interfaces and a CGI
 wrapper for disk usage querying and visualisation.")
     (license license:lgpl3+)))
+
+(define-public qdirstat
+  (package
+    (name "qdirstat")
+    (version "1.8")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/shundhammer/qdirstat")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "079rmy3j0442y5gjh6la6w1j6jaw83wklamrf19yxi20zsm99xs7"))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (system* "qmake"
+                      (string-append "INSTALL_PREFIX="
+                                     (assoc-ref outputs "out")))))
+         (add-after 'install 'wrap
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (wrap-program (string-append
+                            (assoc-ref outputs "out")
+                            "/bin/qdirstat-cache-writer")
+               `("PERL5LIB" ":" prefix
+                 (,(string-append
+                    (assoc-ref inputs "perl-uri-escape")
+                    "/lib/perl5/site_perl")))))))))
+    (build-system gnu-build-system)
+    (inputs
+     (list bash-minimal
+           perl
+           perl-uri-escape
+           qtbase-5
+           zlib))
+    (synopsis "Storage utilisation visualization tool")
+    (description
+     "QDirStat is a graphical application to show where your disk space has
+gone and to help you to clean it up.")
+    (home-page "https://github.com/shundhammer/qdirstat")
+    (license license:gpl2)))
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index a3095f8bfa..86415bc0cf 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -41,6 +41,7 @@
   #:use-module (guix gexp)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gl)
@@ -73,28 +74,24 @@
                 "0hcdysw8ibr66vk8i7v56l0v5ijvhlq67v4460mc2xf2910g2m72"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules pkg-config qttools))
     (inputs
-     `(("elogind" ,elogind)
-       ("glib" ,glib)
-       ("libxcb" ,libxcb)
-       ("libxkbcommon" ,libxkbcommon)
-       ("linux-pam" ,linux-pam)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-
-       ;; Some user-defined themes use QtQuick components internally.  Adding
-       ;; QtQuick & co. here; they end up in QML2_IMPORT_PATH thanks to
-       ;; 'wrap-qt-program'.
-       ("qtgraphicaleffects" ,qtgraphicaleffects)
-       ("qtquickcontrols" ,qtquickcontrols)
-       ("qtquickcontrols2" ,qtquickcontrols2)
-       ("qtsvg" ,qtsvg)
-
-       ("shadow" ,shadow)
-       ("wayland" ,wayland)))
+     (list elogind
+           glib
+           libxcb
+           libxkbcommon
+           linux-pam
+           qtbase-5
+           qtdeclarative
+           ;; Some user-defined themes use QtQuick components internally.  Adding
+           ;; QtQuick & co. here; they end up in QML2_IMPORT_PATH thanks to
+           ;; 'wrap-qt-program'.
+           qtgraphicaleffects
+           qtquickcontrols
+           qtquickcontrols2
+           qtsvg
+           shadow
+           wayland))
     (arguments
      `(#:configure-flags
        ,#~(list
@@ -233,11 +230,11 @@ easy to use, login interface with a modern yet classy touch.")
              (unsetenv "LC_ALL")
              #t)))))
     (inputs
-     `(("audit" ,audit)
-       ("linux-pam" ,linux-pam)
-       ("shadow" ,shadow)                         ;for sbin/nologin
-       ("libgcrypt" ,libgcrypt)
-       ("libxcb" ,libxcb)))
+     (list audit
+           linux-pam
+           shadow ;for sbin/nologin
+           libgcrypt
+           libxcb))
     (native-inputs
      `(("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)
@@ -250,9 +247,7 @@ easy to use, login interface with a modern yet classy touch.")
        ("python-pygobject" ,python2-pygobject)))
     ;; Required by liblightdm-gobject-1.pc.
     (propagated-inputs
-     `(("glib" ,glib)
-       ("libx11" ,libx11)
-       ("libxklavier" ,libxklavier)))
+     (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
@@ -262,16 +257,16 @@ display manager which supports different greeters.")
 (define-public lightdm-gtk-greeter
   (package
     (name "lightdm-gtk-greeter")
-    (version "2.0.7")
+    (version "2.0.8")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "https://launchpad.net/lightdm-gtk-greeter/"
-                    (version-major+minor version) "/" version
-                    "/+download/lightdm-gtk-greeter-" version ".tar.gz"))
+                    "https://github.com/xubuntu/lightdm-gtk-greeter"
+                    "/releases/download/lightdm-gtk-greeter-" version "/"
+                    "lightdm-gtk-greeter-" version ".tar.gz"))
               (sha256
                (base32
-                "1g7wc3d3vqfa7mrdhx1w9ywydgjbffla6rbrxq9k3sc62br97qms"))))
+                "04q62mvr97l9gv8h37hfarygqc7p0498ig7xclcg4kxkqw0b7yxy"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -304,16 +299,15 @@ display manager which supports different greeters.")
                  `("GIO_EXTRA_MODULES" ":" prefix (,gtk))))
              #t)))))
     (native-inputs
-     `(("exo" ,exo)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list exo intltool pkg-config xfce4-dev-tools))
     (inputs
-     `(("lightdm" ,lightdm)
+     `(("bash" ,bash-minimal) ; for wrap-program
+       ("lightdm" ,lightdm)
        ("shared-mime-info" ,shared-mime-info)
        ("at-spi2-core" ,at-spi2-core)
        ("gtk+" ,gtk+)))
     (synopsis "GTK+ greeter for LightDM")
-    (home-page "https://launchpad.net/lightdm-gtk-greeter")
+    (home-page "https://github.com/xubuntu/lightdm-gtk-greeter")
     (description "This package provides a LightDM greeter implementation using
 GTK+, lets you select a desktop session and log in to it.")
     (license license:gpl3+)))
@@ -350,7 +344,7 @@ GTK+, lets you select a desktop session and log in to it.")
 	      ("libxmu" ,libxmu)
 	      ("xauth" ,xauth)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/distributed.scm b/gnu/packages/distributed.scm
index 868fc589a6..182be4aaf7 100644
--- a/gnu/packages/distributed.scm
+++ b/gnu/packages/distributed.scm
@@ -58,20 +58,17 @@
                 "1p8y3mnf5yfhavhqxwf9v68prg1601h8q1pllm5z89zh661di3mj"))))
     (build-system gnu-build-system)
     (arguments '(#:configure-flags '("--disable-server")))
-    (inputs `(("openssl" ,openssl)
-              ("curl" ,curl)
-              ("wxwidgets" ,wxwidgets)
-              ("gtk+" ,gtk+)
-              ("gdk-pixbuf" ,gdk-pixbuf)
-              ("libnotify" ,libnotify)
-              ("sqlite" ,sqlite)
-              ("python" ,python)
-              ("python-pyserial" ,python-pyserial)))
+    (inputs (list openssl
+                  curl
+                  wxwidgets
+                  gtk+
+                  gdk-pixbuf
+                  libnotify
+                  sqlite
+                  python
+                  python-pyserial))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (synopsis "Help cutting-edge science research using your computer")
     (description "BOINC is a platform for high-throughput computing on a large
 scale (thousands or millions of computers).  It can be used for volunteer
diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 921bf13d76..38af7028b7 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2019 Sam <smbaines8@gmail.com>
 ;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Luis Felipe López Acevedo <luis.felipe.la@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,15 +31,16 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system python)
+  #:use-module (guix deprecation)
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages check)
   #:use-module (gnu packages finance)
   #:use-module (gnu packages geo)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-compression)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
@@ -46,16 +48,16 @@
   #:use-module (gnu packages time)
   #:use-module (gnu packages xml))
 
-(define-public python-django
+(define-public python-django-4.0
   (package
     (name "python-django")
-    (version "3.2.6")
+    (version "4.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "Django" version))
               (sha256
                (base32
-                "08p0gf1n548fjba76wspcj1jb3li6lr7xi87w2xq7hylr528azzj"))))
+                "0xgf2d8j54kicaz8f6ailzlgcvq5zs6wgn74gqivka0rm16s3a6m"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -96,29 +98,26 @@
          (delete 'wrap))))
     ;; TODO: Install extras/django_bash_completion.
     (native-inputs
-     `(("tzdata" ,tzdata-for-tests)
-       ;; Remaining packages are test requirements taken from
-       ;; tests/requirements/py3.txt
-       ("python-docutils" ,python-docutils)
-       ;; optional for tests: ("python-geoip2" ,python-geoip2)
-       ;; optional for tests: ("python-memcached" ,python-memcached)
-       ("python-numpy" ,python-numpy)
-       ("python-pillow" ,python-pillow)
-       ("python-pyyaml" ,python-pyyaml)
-       ;; optional for tests: ("python-selenium" ,python-selenium)
-       ("python-tblib" ,python-tblib)))
+     (list tzdata-for-tests
+           ;; Remaining packages are test requirements taken from
+           ;; tests/requirements/py3.txt
+           python-docutils
+           ;; optional for tests: ("python-geoip2" ,python-geoip2)
+           ;; optional for tests: ("python-memcached" ,python-memcached)
+           python-numpy
+           python-pillow
+           python-pyyaml
+           ;; optional for tests: ("python-selenium" ,python-selenium)
+           python-tblib))
     (propagated-inputs
-     `(("python-asgiref" ,python-asgiref)
-       ("python-pytz" ,python-pytz)
-       ("python-sqlparse" ,python-sqlparse)
-
-       ;; Optional dependencies.
-       ("python-argon2-cffi" ,python-argon2-cffi)
-       ("python-bcrypt" ,python-bcrypt)
-
-       ;; This input is not strictly required, but in practice many Django
-       ;; libraries need it for test suites and similar.
-       ("python-jinja2" ,python-jinja2)))
+     (list python-asgiref
+           python-sqlparse
+           ;; Optional dependencies.
+           python-argon2-cffi
+           python-bcrypt
+           ;; This input is not strictly required, but in practice many Django
+           ;; libraries need it for test suites and similar.
+           python-jinja2))
     (home-page "https://www.djangoproject.com/")
     (synopsis "High-level Python Web framework")
     (description
@@ -129,20 +128,38 @@ to the @dfn{don't repeat yourself} (DRY) principle.")
     (license license:bsd-3)
     (properties `((cpe-name . "django")))))
 
+(define-public python-django-3.2
+  (package
+    (inherit python-django-4.0)
+    (version "3.2.10")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "Django" version))
+              (sha256
+               (base32
+                "1i6my7qrivj0ag9dq22lg0lq6maxapbdqrwy6v1cs2mlnhc8hkh7"))))
+    (propagated-inputs
+     (modify-inputs (package-propagated-inputs python-django-4.0)
+       ;; Django 4.0 deprecated pytz in favor of Pythons built-in zoneinfo.
+       (append python-pytz)))))
+
 (define-public python-django-2.2
   (package
-    (inherit python-django)
-    (version "2.2.24")
+    (inherit python-django-3.2)
+    (version "2.2.25")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "Django" version))
               (sha256
                (base32
-                "1dvx3x85lggm91x7mpvaf9nmpxyz7r97pbpnmr2k1qfy0c7gyf9k"))))
+                "171ll8m1wp684z1r0lz93l377jc6jyq63q5p7sqx8iqk6ypmxrmi"))))
     (native-inputs
-     `(;; XXX: In 2.2 and 3.0, selenium is required for the test suite.
-       ("python-selenium" ,python-selenium)
-       ,@(package-native-inputs python-django)))))
+     (modify-inputs (package-native-inputs python-django-3.2)
+       (prepend ;; 2.2 requires Selenium for the test suite.
+                python-selenium)))))
+
+;; Use 3.2 LTS as the default until packages gain support for 4.x.
+(define-public python-django python-django-3.2)
 
 (define-public python-django-extensions
   (package
@@ -163,19 +180,16 @@ to the @dfn{don't repeat yourself} (DRY) principle.")
     (arguments
      '(#:tests? #f)) ;XXX: requires a Postgres or MySQL database
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-vobject" ,python-vobject)
-       ("python-werkzeug" ,python-werkzeug)
-       ("python-dateutil" ,python-dateutil)))
+     (list python-six python-vobject python-werkzeug python-dateutil
+           python-django))
     (native-inputs
-     `(("python-django" ,python-django)
-       ("python-mock" ,python-mock)
-       ("python-factory-boy" ,python-factory-boy)
-       ("python-tox" ,python-tox)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-django" ,python-pytest-django)
-       ("python-shortuuid" , python-shortuuid)))
+     (list python-mock
+           python-factory-boy
+           python-tox
+           python-pytest
+           python-pytest-cov
+           python-pytest-django
+           python-shortuuid))
     (home-page
      "https://github.com/django-extensions/django-extensions")
     (synopsis "Custom management extensions for Django")
@@ -204,16 +218,12 @@ commands, additional database fields and admin extensions.")
                (add-installed-pythonpath inputs outputs)
                (setenv "PYTHONPATH"
                        (string-append ".:"
-                                      (getenv "PYTHONPATH")))
+                                      (getenv "GUIX_PYTHONPATH")))
                (invoke "invoke" "test")))))))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-invoke" ,python-invoke)
-       ("python-pytest-django" ,python-pytest-django)
-       ("which" ,which)))
+     (list python-coverage python-invoke python-pytest-django which))
     (propagated-inputs
-     `(("python-django" ,python-django)
-       ("python-stdnum" ,python-stdnum)))
+     (list python-django python-stdnum))
     (home-page "https://django-localflavor.readthedocs.io/en/latest/")
     (synopsis "Country-specific Django helpers")
     (description "Django-LocalFlavor is a collection of assorted pieces of code
@@ -250,10 +260,9 @@ that are useful for particular countries or cultures.")
                     (lambda _
                       (invoke "python" "runtests.py"))))))
     (native-inputs
-     `(("python-django" ,python-django)
-       ("python-mock" ,python-mock)))
+     (list python-mock))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-django python-six))
     (synopsis "Easy-to-use math field/widget captcha for Django forms")
     (description
      "A multi-value-field that presents a human answerable question,
@@ -275,6 +284,8 @@ with arguments to the field constructor.")
     (build-system python-build-system)
     ;; FIXME: How to make the test templates available to Django?
     (arguments '(#:tests? #f))
+    (propagated-inputs
+     (list python-django))
     (home-page "https://github.com/divio/django-classy-tags")
     (synopsis "Class based template tags for Django")
     (description
@@ -303,11 +314,9 @@ when coding custom template tags.")
            (lambda _
              (invoke "python3" "-m" "django" "test" "--settings=tests.settings"))))))
     (propagated-inputs
-     `(("python-isort" ,python-isort)))
+     (list python-django python-isort))
     (native-inputs
-     `(("python-django" ,python-django)
-       ("python-pytest" ,python-pytest)
-       ("python-mock" ,python-mock)))
+     (list python-pytest python-mock))
     (home-page
      "https://github.com/jazzband/django-taggit")
     (synopsis
@@ -328,10 +337,8 @@ when coding custom template tags.")
         (base32
          "14gzp5cv24z0qhxb7f7k7v9jgzpaj4n8yhjq83ynpx8183fs1rz4"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-django" ,python-django)))
     (propagated-inputs
-     `(("python-pillow" ,python-pillow)))
+     (list python-django python-pillow))
     (home-page "https://github.com/SmileyChris/easy-thumbnails")
     (synopsis "Easy thumbnails for Django")
     (description
@@ -374,12 +381,11 @@ size and quality.")
                                         " and not test_urls_cache_is_cleared")))
                (format #t "test suite not run~%")))))))
     (native-inputs
-     `(("python-django" ,python-django)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ;; For tests.
-       ("python-pytest-xdist" ,python-pytest-xdist-next)))
+     (list python-django python-setuptools-scm
+           ;; For tests.
+           python-pytest-xdist-next))
     (propagated-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://pytest-django.readthedocs.org/")
     (synopsis "Django plugin for py.test")
     (description "Pytest-django is a plugin for py.test that provides a set of
@@ -389,14 +395,14 @@ useful tools for testing Django applications and projects.")
 (define-public python-django-haystack
   (package
     (name "python-django-haystack")
-    (version "2.8.1")
+    (version "3.1.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "django-haystack" version))
         (sha256
          (base32
-          "1302fqsrx8w474xk5cmnmg3hjqfprlxnjg9qlg86arsr4v4vqm4b"))))
+          "10kaa5641cakpra2x3jqgys085gdkjcyns26plfyrmfpjmmpa1bd"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -404,27 +410,28 @@ useful tools for testing Django applications and projects.")
          (add-after 'unpack 'loosen-verion-restrictions
            (lambda _
              (substitute* "setup.py"
-               (("geopy.*") "geopy',\n"))
-             #t))
+               (("geopy.*") "geopy\",\n"))))
          (add-before 'check 'set-gdal-lib-path
            (lambda* (#:key inputs #:allow-other-keys)
              (setenv "GDAL_LIBRARY_PATH"
                      (string-append (assoc-ref inputs "gdal")
-                                    "/lib"))
-             #t)))
+                                    "/lib"))))
+         ;; Importing this module requires setting up a Django project.
+         (delete 'sanity-check))
        #:tests? #f)) ; OSError: libgdal.so.27: cannot open shared object file
+    (propagated-inputs
+     (list python-django))
     (native-inputs
-     `(("gdal" ,gdal)
-       ("python-coverage" ,python-coverage)
-       ("python-django" ,python-django)
-       ("python-dateutil" ,python-dateutil)
-       ("python-geopy" ,python-geopy)
-       ("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)
-       ("python-requests" ,python-requests)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-pysolr" ,python-pysolr)
-       ("python-whoosh" ,python-whoosh)))
+     (list gdal
+           python-coverage
+           python-dateutil
+           python-geopy
+           python-mock
+           python-nose
+           python-requests
+           python-setuptools-scm
+           python-pysolr
+           python-whoosh))
     (home-page "http://haystacksearch.org/")
     (synopsis "Pluggable search for Django")
     (description "Haystack provides modular search for Django.  It features a
@@ -451,10 +458,8 @@ your code.")
            (lambda _
              (invoke "python" "runtests.py"))))))
     (native-inputs
-     `(("python-django" ,python-django)
-       ("python-djangorestframework" ,python-djangorestframework)
-       ("python-django-crispy-forms" ,python-django-crispy-forms)
-       ("python-mock" ,python-mock)))
+     (list python-django python-django-rest-framework
+           python-django-crispy-forms python-mock))
     (home-page "https://django-filter.readthedocs.io/en/latest/")
     (synopsis "Reusable Django application to filter querysets dynamically")
     (description
@@ -485,12 +490,11 @@ them do this.")
              (invoke "django-admin" "test" "allauth.tests"
                      "--pythonpath=."))))))
     (propagated-inputs
-     `(("python-openid" ,python-openid)
-       ("python-requests" ,python-requests)
-       ("python-requests-oauthlib" ,python-requests-oauthlib)))
+     (list python-openid python-requests python-requests-oauthlib))
     (native-inputs
-     `(("python-django" ,python-django)
-       ("python-mock" ,python-mock)))
+     (list python-mock))
+    (inputs
+     (list python-django))
     (home-page "https://github.com/pennersr/django-allauth")
     (synopsis "Set of Django applications addressing authentication")
     (description
@@ -515,11 +519,9 @@ account authentication.")
          "1m1j2sx7q0blma0miswj3c8hrfi5q4y5cq2b816v8gagy89xgc57"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-sqlparse" ,python-sqlparse)))
+     (list python-sqlparse python-django))
     (native-inputs
-     `(("python-django" ,python-django)
-       ("python-django-jinja" ,python-django-jinja)
-       ("python-html5lib" ,python-html5lib)))
+     (list python-django-jinja python-html5lib))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -548,10 +550,8 @@ request and response as a toolbar on the rendered page.")
     (build-system python-build-system)
     (arguments '(#:tests? #f))          ;XXX: 'make check' does "echo TODO"
     (propagated-inputs
-     `(("python-django-debug-toolbar" ,python-django-debug-toolbar)
-       ("python-jsonplus" ,python-jsonplus)
-       ("python-six" ,python-six)
-       ("python-sqlalchemy" ,python-sqlalchemy)))
+     (list python-django python-django-debug-toolbar python-jsonplus
+           python-six python-sqlalchemy))
     (synopsis "Django Debug Toolbar panel for SQLAlchemy")
     (description
      "This package completely mimics the default Django Debug Toolbar SQL
@@ -575,7 +575,7 @@ queries done via the Django ORM, SQLAlchemy generated queries are displayed.")
      '(;; TODO: The django project for the tests is missing from the release.
        #:tests? #f))
     (inputs
-     `(("python-django" ,python-django)))
+     (list python-django))
     (home-page "https://github.com/twaddington/django-gravatar")
     (synopsis "Gravatar support for Django, improved version")
     (description
@@ -595,10 +595,9 @@ templatetags and a full test suite.")
                 "0fc6i77faxxv1gjlp06lv3kw64b5bhdiypaygfxh5djddgk83fwa"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-django" ,python-django)
-       ("python-nose" ,python-nose)))
+     (list python-nose))
     (propagated-inputs
-     `(("python-webassets" ,python-webassets)))
+     (list python-django python-webassets))
     (home-page "https://github.com/miracle2k/django-assets")
     (synopsis "Asset management for Django")
     (description
@@ -610,7 +609,7 @@ merging, minifying and compiling CSS and Javascript files.")
 (define-public python-django-jinja
   (package
     (name "python-django-jinja")
-    (version "2.6.0")
+    (version "2.9.1")
     (source
      (origin
        (method git-fetch)
@@ -620,12 +619,10 @@ merging, minifying and compiling CSS and Javascript files.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "06ldbkfkm6sc0p9sqpjph06gxrqpj78ih3dc2yik2fcba2y5mak1"))))
+         "0p9pkn6jjzagpnvcrl9c2vjqamkms7ymvyhhmaqqqhrlv89qnzp7"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-jinja2" ,python-jinja2)
-       ("python-pytz" ,python-pytz)
-       ("python-django-pipeline" ,python-django-pipeline)))
+     (list python-django python-jinja2 python-pytz python-django-pipeline))
     (arguments
      '(;; TODO Tests currently fail due to issues with the configuration for
        ;; django-pipeline
@@ -647,10 +644,6 @@ provides certain advantages over the builtin Jinja2 backend in Django, for
 example, explicit calls to callables from templates and better performance.")
     (license license:bsd-3)))
 
-;; JSONField is now built-in to Django, obsoleting this package.
-(define-public python-django-jsonfield
-  (deprecated-package "python-django-jsonfield" python-django))
-
 (define-public python-dj-database-url
   (package
     (name "python-dj-database-url")
@@ -696,7 +689,7 @@ conn_max_age argument to easily enable Django’s connection pool.")
                     (lambda _
                       (invoke "python" "-m" "django" "test" "-v2"
                               "--settings=tests.settings"))))))
-    (native-inputs
+    (propagated-inputs
      ;; XXX: Picklefield has not been updated in 10+ years and fails tests
      ;; with Django 3.2.
      `(("python-django@2.2" ,python-django-2.2)))
@@ -718,6 +711,8 @@ conn_max_age argument to easily enable Django’s connection pool.")
     (arguments
      ;; XXX: Tests require a Postgres database.
      `(#:tests? #f))
+    (propagated-inputs
+     (list python-django))
     (home-page "https://github.com/aykut/django-bulk-update")
     (synopsis "Simple bulk update over Django ORM or with helper function")
     (description
@@ -728,13 +723,13 @@ project aims to bulk update given objects using one query over Django ORM.")
 (define-public python-django-contact-form
   (package
     (name "python-django-contact-form")
-    (version "1.8.1")
+    (version "1.9")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "django-contact-form" version))
               (sha256
                (base32
-                "1zv7bcjfrg32gcsq3bclkld79l6mcy2wcvlj81h7q2ppv1wm8vqs"))))
+                "1my9hkrylckp5vfqg9b0kncrdlxjnwxll56sdciqn4v19i4wbq1y"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -744,8 +739,9 @@ project aims to bulk update given objects using one query over Django ORM.")
              (invoke "coverage" "run" "--source" "contact_form"
                      "runtests.py"))))))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-django" ,python-django)))
+     (list python-coverage))
+    (propagated-inputs
+     (list python-django))
     (home-page "https://github.com/ubernostrum/django-contact-form")
     (synopsis "Contact form for Django")
     (description
@@ -764,10 +760,8 @@ for Django sites.")
                (base32
                 "0ccdiv784a5vnpfal36km4dyg12340rwhpr0riyy0k89wfnjn8yi"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-django" ,python-django)))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-django python-six))
     (home-page "https://github.com/django/django-contrib-comments")
     (synopsis "Comments framework")
     (description
@@ -801,13 +795,11 @@ entries, photos, book chapters, or anything else.")
            (lambda*(#:key tests? #:allow-other-keys)
              (when tests?
                (setenv "DJANGO_SETTINGS_MODULE" "tests.settings")
-               (invoke "django-admin" "test" "tests")))))))
-    (native-inputs
-     `(("python-django" ,python-django)))
+               (invoke "django-admin" "test" "tests"
+                       "--pythonpath=.")))))))
     (propagated-inputs
-     `(("python-css-html-js-minify" ,python-css-html-js-minify)
-       ("python-slimit" ,python-slimit)
-       ("python-jsmin" ,python-jsmin)))
+     (list python-css-html-js-minify python-django python-slimit
+           python-jsmin))
     (home-page
      "https://github.com/jazzband/django-pipeline")
     (synopsis "Asset packaging library for Django")
@@ -837,14 +829,10 @@ support, and optional data-URI image and font embedding.")
              (with-directory-excursion "tests"
                (invoke "python" "runtests.py")))))))
     (native-inputs
-     `(("python-django" ,python-django)
-       ("python-fakeredis" ,python-fakeredis)
-       ("python-hiredis" ,python-hiredis)
-       ("python-mock" ,python-mock)
-       ("python-msgpack" ,python-msgpack)
-       ("redis" ,redis)))
+     (list python-fakeredis python-hiredis python-mock python-msgpack
+           redis))
     (propagated-inputs
-     `(("python-redis" ,python-redis)))
+     (list python-django python-redis))
     (home-page "https://github.com/niwibe/django-redis")
     (synopsis "Full featured redis cache backend for Django")
     (description
@@ -872,13 +860,9 @@ support, and optional data-URI image and font embedding.")
                      "--settings=django_rq.tests.settings"
                      "--pythonpath=."))))))
     (native-inputs
-     `(("python-django" ,python-django)
-       ("python-django-redis" ,python-django-redis)
-       ("python-mock" ,python-mock)
-       ("python-rq-scheduler" ,python-rq-scheduler)
-       ("redis" ,redis)))
+     (list python-django-redis python-mock python-rq-scheduler redis))
     (propagated-inputs
-     `(("python-rq" ,python-rq)))
+     (list python-django python-rq))
     (home-page "https://github.com/ui/django-rq")
     (synopsis "Django integration with RQ")
     (description
@@ -900,12 +884,9 @@ settings.py and easily use them in your project.")
     (build-system python-build-system)
     ;; FIXME: Tests require disque, Redis, MongoDB, Docker.
     (arguments '(#:tests? #f))
-    (native-inputs
-     `(("python-django" ,python-django)))
     (propagated-inputs
-     `(("python-arrow" ,python-arrow)
-       ("python-blessed" ,python-blessed)
-       ("python-django-picklefield" ,python-django-picklefield)))
+     (list python-arrow python-blessed python-django
+           python-django-picklefield))
     (home-page "https://django-q.readthedocs.io/")
     (synopsis "Multiprocessing distributed task queue for Django")
     (description
@@ -928,10 +909,11 @@ using Python multiprocessing.")
      `(#:phases (modify-phases %standard-phases
                   (replace 'check
                     (lambda _
-                      (invoke "python" "django-admin.py"
-                              "test" "--settings=settings"))))))
-    (native-inputs
-     `(("python-django" ,python-django)))
+                      (invoke "django-admin"
+                              "test" "--settings=test_project.settings"
+                              "--pythonpath=."))))))
+    (propagated-inputs
+     (list python-django))
     (home-page "https://github.com/jazzband/django-sortedm2m")
     (synopsis "Drop-in replacement for django's own ManyToManyField")
     (description
@@ -956,9 +938,9 @@ the order of added relations.")
                   (replace 'check
                     (lambda _
                       (setenv "DJANGO_SETTINGS_MODULE" "tests.test_settings")
-                      (invoke "python" "django-admin.py" "test" "-v2"))))))
-    (native-inputs
-     `(("python-django" ,python-django)))
+                      (invoke "django-admin" "test" "--pythonpath=."))))))
+    (propagated-inputs
+     (list python-django))
     (home-page "https://github.com/django-compressor/django-appconf")
     (synopsis "Handle configuration defaults of packaged Django apps")
     (description
@@ -992,11 +974,10 @@ name is purely coincidental.")
                       (setenv "DJANGO_SETTINGS_MODULE" "project.settings")
                       (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-django" ,python-django)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-django" ,python-pytest-django)))
+     (list python-pytest python-pytest-django))
     (propagated-inputs
-     `(("django-appconf" ,python-django-appconf)))
+     `(("python-django" ,python-django)
+       ("django-appconf" ,python-django-appconf)))
     (synopsis "Generate JavaScript catalog to static files")
     (description
       "A Django app that provides helper for generating JavaScript catalog to
@@ -1023,7 +1004,7 @@ static files.")
              (setenv "DJANGO_SETTINGS_MODULE" "tagging.tests.settings")
              (invoke "django-admin" "test" "--pythonpath=."))))))
     (inputs
-     `(("python-django" ,python-django)))
+     (list python-django))
     (home-page "https://github.com/Fantomas42/django-tagging")
     (synopsis "Generic tagging application for Django")
     (description "This package provides a generic tagging application for
@@ -1031,10 +1012,10 @@ Django projects, which allows association of a number of tags with any
 @code{Model} instance and makes retrieval of tags simple.")
     (license license:bsd-3)))
 
-(define-public python-djangorestframework
+(define-public python-django-rest-framework
   (package
-    (name "python-djangorestframework")
-    (version "3.12.4")
+    (name "python-django-rest-framework")
+    (version "3.13.1")
     (source
      (origin
        (method git-fetch)
@@ -1044,26 +1025,22 @@ Django projects, which allows association of a number of tags with any
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "16n17dw35wqv47m8k8fixn0yywrvd6v4r573yr4nx6lbbiyi2cqn"))))
+         "11wfb156yin6mlgcdzfmi267jsq1cld131mxgd13aqsrj06zlray"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             ;; Add a fix from the master branch for compatibility with Django
-             ;; 3.2: https://github.com/encode/django-rest-framework/pull/7911
-             ;; Remove for versions > 3.12.4.
-             (substitute* "tests/test_fields.py"
-               (("class MockTimezone:")
-                "class MockTimezone(pytz.BaseTzInfo):"))
+           (lambda* (#:key tests? inputs #:allow-other-keys)
              (if tests?
-                 (invoke "python" "runtests.py" "--nolint")
+                 (begin
+                   (setenv "TZDIR" (search-input-directory inputs "share/zoneinfo"))
+                   (invoke "python" "runtests.py"))
                  (format #t "test suite not run~%")))))))
     (native-inputs
-     `(("python-django" ,python-django)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-django" ,python-pytest-django)))
+     (list python-pytest python-pytest-django tzdata-for-tests))
+    (propagated-inputs
+     (list python-django python-pytz))
     (home-page "https://www.django-rest-framework.org")
     (synopsis "Toolkit for building Web APIs with Django")
     (description
@@ -1071,6 +1048,9 @@ Django projects, which allows association of a number of tags with any
 provides features like a Web-browsable API and authentication policies.")
     (license license:bsd-2)))
 
+(define-public python-djangorestframework
+  (deprecated-package "python-djangorestframework" python-django-rest-framework))
+
 (define-public python-django-sekizai
   (package
     (name "python-django-sekizai")
@@ -1084,11 +1064,8 @@ provides features like a Web-browsable API and authentication policies.")
           "0vrkli625b5s1wldri3dyrfvqbxg7zxy2pg0rpjixw3b1ndz0ag8"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; Tests not included with release.
-    (native-inputs
-     `(("python-django" ,python-django)))
     (propagated-inputs
-     `(("python-django-classy-tags" ,python-django-classy-tags)
-       ("python-six" ,python-six)))
+     (list python-django python-django-classy-tags python-six))
     (home-page "https://github.com/divio/django-sekizai")
     (synopsis "Template blocks for Django projects")
     (description "Sekizai means blocks in Japanese, and that is what this app
@@ -1116,8 +1093,8 @@ a single block.")
     (arguments
      '(;; No included tests
        #:tests? #f))
-    (native-inputs
-     `(("python-django" ,python-django)))
+    (propagated-inputs
+     (list python-django))
     (home-page
      "http://github.com/maraujop/django-crispy-forms")
     (synopsis "Tool to control Django forms without custom templates")
@@ -1152,15 +1129,10 @@ forms using your favorite CSS framework, without writing template code.")
        ;; https://github.com/django-compressor/django-compressor/issues/998
        #:tests? #f))
     (propagated-inputs
-     `(("python-django-appconf" ,python-django-appconf)
-       ("python-rcssmin" ,python-rcssmin)
-       ("python-rjsmin" ,python-rjsmin)))
+     (list python-django-appconf python-rcssmin python-rjsmin))
     (native-inputs
-     `(("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-brotli" ,python-brotli)
-       ("python-csscompressor" ,python-csscompressor)
-       ("python-django-sekizai" ,python-django-sekizai)
-       ("python-mock" ,python-mock)))
+     (list python-beautifulsoup4 python-brotli python-csscompressor
+           python-django-sekizai python-mock))
     (home-page "https://django-compressor.readthedocs.io/en/latest/")
     (synopsis
      "Compress linked and inline JavaScript or CSS into single cached files")
@@ -1191,8 +1163,9 @@ template tag.")
                     (lambda _
                       (invoke "python" "runtests.py"))))))
     (native-inputs
-     `(("python-django" ,python-django)
-       ("python-mock" ,python-mock)))
+     (list python-mock))
+    (propagated-inputs
+     (list python-django))
     (synopsis "Django test helpers to manage file storage side effects")
     (description
      "This project provides tools to help reduce the side effects of using
@@ -1223,11 +1196,9 @@ FileFields during tests.")
                         (invoke "python" "-m" "django" "test"
                                 "--settings" "tests.settings")))))))
     (native-inputs
-     `(("openldap" ,openldap)
-       ("python-django" ,python-django)
-       ("python-mock" ,python-mock)))
+     (list openldap python-mock))
     (propagated-inputs
-     `(("python-ldap" ,python-ldap)))
+     (list python-django python-ldap))
     (home-page "https://github.com/django-auth-ldap/django-auth-ldap")
     (synopsis "Django LDAP authentication backend")
     (description
@@ -1245,13 +1216,13 @@ FileFields during tests.")
                (base32
                 "06041a8icazzp73kg93c7k1ska12wvkq7fpcad0l0sm1qnxx5yx7"))))
     (build-system python-build-system)
-    (arguments '(#:tests? #f))          ;no tests
-    (native-inputs
-     `(("python-django" ,python-django)))
+    (arguments
+     '(#:tests? #f                      ;no tests
+       #:phases (modify-phases %standard-phases
+                  ;; Importing this module requires a Django project.
+                  (delete 'sanity-check))))
     (propagated-inputs
-     `(("python-certifi" ,python-certifi)
-       ("python-elasticsearch" ,python-elasticsearch)
-       ("python-six" ,python-six)))
+     (list python-certifi python-django python-elasticsearch python-six))
     (home-page "https://github.com/cipriantarta/django-logging")
     (synopsis "Log requests/responses in various formats")
     (description
@@ -1263,20 +1234,17 @@ to ElasticSearch.")
 (define-public python-django-netfields
   (package
     (name "python-django-netfields")
-    (version "1.2.2")
+    (version "1.2.4")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "django-netfields" version))
               (sha256
                (base32
-                "1c47azr5am0q8g45x0fbn0cay7vyrack6n7k6siliw1j2p0gzi7s"))))
+                "0jwlbyaxk91fq69g2y0zpfjgmjgh6l0lqm5mhys7m5968lkihvgp"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f))      ;XXX: Requires a running PostgreSQL server
-    (native-inputs
-     `(("python-django" ,python-django)))
     (propagated-inputs
-     `(("python-netaddr" ,python-netaddr)
-       ("python-six" ,python-six)))
+     (list python-django python-netaddr python-psycopg2 python-six))
     (home-page "https://github.com/jimfunk/django-postgresql-netfields")
     (synopsis "PostgreSQL netfields implementation for Django")
     (description
@@ -1300,7 +1268,7 @@ to ElasticSearch.")
     (arguments
      '(#:tests? #f            ;FIXME: Django raises "Apps aren't loaded yet"!?
        #:phases (modify-phases %standard-phases
-                  (add-before 'check 'loosen-requirements
+                  (add-after 'unpack 'loosen-requirements
                     (lambda _
                       ;; Do not depend on compatibility package for old
                       ;; Python versions.
@@ -1315,11 +1283,8 @@ to ElasticSearch.")
                             (invoke "pytest" "-vv" "--doctest-modules"
                                     "tests/" "url_filter/"))
                           (format #t "test suite not run~%")))))))
-    (native-inputs
-     `(("python-django" ,python-django)))
     (propagated-inputs
-     `(("python-cached-property" ,python-cached-property)
-       ("python-six" ,python-six)))
+     (list python-cached-property python-django python-six))
     (synopsis "Filter data via human-friendly URLs")
     (description
      "The main goal of Django URL Filter is to provide an easy URL interface
@@ -1327,3 +1292,26 @@ for filtering data.  It allows the user to safely filter by model attributes
 and also specify the lookup type for each filter (very much like
 Django's filtering system in ORM).")
     (license license:expat)))
+
+(define-public python-django-svg-image-form-field
+  (package
+    (name "python-django-svg-image-form-field")
+    (version "1.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/artrey/django-svg-image-form-field")
+             (commit (string-append version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "131m545khn8l20j4x2bvlvz36dlbnhj9pc98i2dw72s3bw8pgws0"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-defusedxml python-django python-pillow))
+    (home-page "https://github.com/artrey/django-svg-image-form-field")
+    (synopsis "Form field to validate SVG and other images")
+    (description "This form field allows users to provide SVG images for
+models that use Django's standard @code{ImageField}, in addition to the
+image files already supported by it.")
+    (license license:expat)))
diff --git a/gnu/packages/djvu.scm b/gnu/packages/djvu.scm
index 0d1cdf2b1d..07c77f318e 100644
--- a/gnu/packages/djvu.scm
+++ b/gnu/packages/djvu.scm
@@ -71,13 +71,9 @@
     (build-system gnu-build-system)
     (native-inputs
      ;; The 3.5.28 release tarball isn't bootstrapped.
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (inputs
-     `(("libjpeg-turbo" ,libjpeg-turbo)
-       ("libtiff" ,libtiff)
-       ("zlib" ,zlib)))
+     (list libjpeg-turbo libtiff zlib))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -109,17 +105,9 @@ utilities.")
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list autoconf automake libtool pkg-config qttools))
     (inputs
-     `(("djvulibre" ,djvulibre)
-       ("glib" ,glib)
-       ("libxt" ,libxt)
-       ("libtiff" ,libtiff)
-       ("qtbase" ,qtbase-5)))
+     (list djvulibre glib libxt libtiff qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -151,7 +139,7 @@ a continuous layout.")
 (define-public pdf2djvu
   (package
     (name "pdf2djvu")
-    (version "0.9.18")
+    (version "0.9.18.1")
     (source
      (origin
        (method url-fetch)
@@ -159,7 +147,7 @@ a continuous layout.")
              "https://github.com/jwilk/pdf2djvu/releases/download/" version
              "/pdf2djvu-" version ".tar.xz"))
        (sha256
-        (base32 "0vxa0b3g7zhflc5m6ln4f0hi0shsqyqc3344y7azlllibxc5ba22"))))
+        (base32 "0c595yziz81c9izf9s5sskd00qmgz2n1hp2vdcgg0dx81g3xfidb"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -177,6 +165,12 @@ a continuous layout.")
      `(#: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"))))))
@@ -207,12 +201,12 @@ It is able to extract:
         (base32 "0v2ax30m7j1yi4m02nzn9rc4sn4vzqh5vywdh96r64j4pwvn5s5g"))))
     (build-system gnu-build-system)
     (inputs
-     `(("djvulibre" ,djvulibre)
-       ("gawk" ,gawk)
-       ("ghostscript" ,ghostscript)
-       ("grep" ,grep)
-       ("ncurses" ,ncurses)
-       ("which" ,which)))
+     (list djvulibre
+           gawk
+           ghostscript
+           grep
+           ncurses
+           which))
     (arguments
      `(#:tests? #f ; No test suite
        #:phases
@@ -271,9 +265,7 @@ It is able to extract:
     (native-inputs
      `(("gettext" ,gettext-minimal)))
     (inputs
-     `(("libjpeg-turbo" ,libjpeg-turbo)
-       ("libtiff" ,libtiff)
-       ("zlib" ,zlib)))
+     (list libjpeg-turbo libtiff zlib))
     (arguments
      '(#:configure-flags '("--disable-static")
        #:parallel-build? #f
@@ -312,10 +304,8 @@ and white.")
         (base32 "0z403cklvxzz0qaczgv83ax0nknrd9h8micp04j9kjfdxk2sgval"))))
     (build-system python-build-system)
     (inputs
-     `(("djvulibre" ,djvulibre)
-       ("python2-djvulibre" ,python2-djvulibre)
-       ("python2-subprocess32" ,python2-subprocess32)
-       ("python2-wxpython" ,python2-wxpython)))
+     (list djvulibre python2-djvulibre python2-subprocess32
+           python2-wxpython))
     (arguments
      `(#:python ,python-2
        #:phases
@@ -354,7 +344,7 @@ It is able to:
         (base32 "0xyrnk8d2khi7q1zr28gjkjq6frz4mkb5jdl8821yzf12k7c8pbv"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("python2-nose" ,python2-nose)))
+     (list python2-nose))
     (inputs
      `(("djvulibre" ,djvulibre)
        ("minidjvu" ,minidjvu)
@@ -421,9 +411,7 @@ and background layers of images, which can then be encoded into a DjVu file.")
         (base32 "09w9rqr7z2jd5kwp178zz2yrsc82mxs7gksipg92znxzgzhmw2ng"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("libxml2" ,libxml2)
-       ("python2-nose" ,python2-nose)
-       ("python2-pillow" ,python2-pillow)))
+     (list libxml2 python2-nose python2-pillow))
     (inputs
      `(("djvulibre" ,djvulibre)
        ("ocrad" ,ocrad)
diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
index dc22ea2e62..403fcbbd6b 100644
--- a/gnu/packages/dlang.scm
+++ b/gnu/packages/dlang.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
 ;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,6 +28,8 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix utils)
+  #:use-module ((guix build utils) #:hide (delete which))
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
   #:use-module (gnu packages)
@@ -37,11 +40,13 @@
   #:use-module (gnu packages gdb)
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages llvm)
+  #:use-module (gnu packages ninja)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages textutils)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages xorg)
+  #:use-module (srfi srfi-1))
 
 (define-public rdmd
   (package
@@ -70,7 +75,7 @@
             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
               (install-file "rdmd" bin)))))))
     (native-inputs
-     `(("ldc" ,ldc)))
+     (list ldc))
     (home-page "https://github.com/D-Programming-Language/tools/")
     (synopsis "Specialized equivalent to 'make' for the D language")
     (description
@@ -81,233 +86,338 @@ minimize the amount of work necessary.  Unlike make, rdmd tracks dependencies
 and freshness without requiring additional information from the user.")
     (license license:boost1.0)))
 
-(define-public ldc-bootstrap
-    (package
-      (name "ldc")
-      (version "0.17.6")
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/ldc-developers/ldc")
-               (commit (string-append "v" version))))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "1q6hm4fkrcwys83x0p4kfg9xrc1b9g2qicqif2zy5z4nsfsb5vgs"))))
-      (build-system cmake-build-system)
-      (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
-      (properties
-       ;; Some of the tests take a very long time on ARMv7.  See
-       ;; <https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00312.html>.
-       `((max-silent-time . ,(* 3600 3))))
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'unpack-submodule-sources
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let ((unpack (lambda (input target)
-                               (let ((source (assoc-ref inputs input)))
-                                 ;; Git checkouts are directories as long as
-                                 ;; there are no patches; tarballs otherwise.
-                                 (if (file-is-directory? source)
-                                     (copy-recursively source target)
-                                     (with-directory-excursion target
-                                       (invoke "tar" "xvf" source
-                                               "--strip-components=1")))))))
-                 (unpack "phobos-src" "runtime/phobos")
-                 (unpack "druntime-src" "runtime/druntime")
-                 (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")
-                 #t)))
-           (add-after 'unpack-submodule-sources 'patch-phobos
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "runtime/phobos/std/process.d"
-                 (("/bin/sh") (which "sh"))
-                 (("echo") (which "echo")))
-               (substitute* "runtime/phobos/std/datetime.d"
-                 (("/usr/share/zoneinfo/")
-                  (search-input-directory inputs "share/zoneinfo"))
-                 (("tzName == \"[+]VERSION\"")
-                  "(tzName == \"+VERSION\" || std.algorithm.endsWith(tzName, \"/leapseconds\"))"))
-               (substitute* "tests/d2/dmd-testsuite/Makefile"
-                 (("/bin/bash") (which "bash")))
-               ;; the following two tests fail on i686
-               (for-each delete-file '("tests/ir/attributes.d" "tests/ir/align.d")))))))
-      (inputs
-       `(("libconfig" ,libconfig)
-         ("libedit" ,libedit)
-         ("tzdata" ,tzdata)
-         ("zlib" ,zlib)))
-      (native-inputs
-       `(("llvm" ,llvm-6)
-         ("clang" ,clang-6)
-         ("python-lit" ,python-lit)
-         ("python-wrapper" ,python-wrapper)
-         ("unzip" ,unzip)
-         ("phobos-src"
-          ,(origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://github.com/ldc-developers/phobos")
-                   (commit (string-append "ldc-v" version))))
-             (file-name (git-file-name "phobos" version))
-             (sha256
-              (base32 "15jzs38wanks2jfp2izzl7zqrp4c8ai54ppsgm8ws86p3sbbkmj8"))
-             (patches (search-patches "ldc-bootstrap-disable-tests.patch"))))
-         ("druntime-src"
-          ,(origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://github.com/ldc-developers/druntime")
-                   (commit (string-append "ldc-v" version))))
-             (file-name (git-file-name "druntime" version))
-             (sha256
-              (base32 "00wr2kiggwnd8h7by51fhj1xc65hv1ysip5gbgdbkfar58p2d0bb"))))
-         ("dmd-testsuite-src"
-          ,(origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://github.com/ldc-developers/dmd-testsuite")
-                   (commit (string-append "ldc-v" version))))
-             (file-name (git-file-name "dmd-testsuite" version))
-             (sha256
-              (base32 "1d1c0979wbippldrkjf7szyj4n87hxz8dwqg1r5b3aai37g9kcky"))))))
-      (home-page "http://wiki.dlang.org/LDC")
-      (synopsis "LLVM-based compiler for the D programming language")
-      (description
-       "LDC is an LLVM compiler for the D programming language.  It is based on
+;;; The 0.17.6 version is the last release to support being bootstrapped
+;;; without a D compiler (requiring only a C++ compiler).
+;;; TODO: Bootstrap ldc from GDC (the D frontend for GCC).
+(define ldc-bootstrap-0.17
+  (package
+    (name "ldc")
+    (version "0.17.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ldc-developers/ldc")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1q6hm4fkrcwys83x0p4kfg9xrc1b9g2qicqif2zy5z4nsfsb5vgs"))))
+    (build-system cmake-build-system)
+    (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
+    (properties
+     ;; Some of the tests take a very long time on ARMv7.  See
+     ;; <https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00312.html>.
+     `((max-silent-time . ,(* 3600 3))))
+    (arguments
+     `(#:tests? #f               ;requires obsolete python-lit test dependency
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unpack-submodule-sources
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((unpack (lambda (input target)
+                             (let ((source (assoc-ref inputs input)))
+                               ;; Git checkouts are directories as long as
+                               ;; there are no patches; tarballs otherwise.
+                               (if (file-is-directory? source)
+                                   (copy-recursively source target)
+                                   (with-directory-excursion target
+                                     (invoke "tar" "xvf" source
+                                             "--strip-components=1")))))))
+               (unpack "phobos-src" "runtime/phobos")
+               (unpack "druntime-src" "runtime/druntime")
+               (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite"))))
+         (add-after 'unpack-submodule-sources 'patch-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "runtime/phobos/std/process.d"
+               (("/bin/sh") (which "sh"))
+               (("echo") (which "echo")))
+             (substitute* "runtime/phobos/std/datetime.d"
+               (("/usr/share/zoneinfo/")
+                (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
+               (("tzName == \"[+]VERSION\"")
+                "(tzName == \"+VERSION\" || \
+std.algorithm.endsWith(tzName, \"/leapseconds\"))")))))))
+    (inputs
+     `(("libconfig" ,libconfig)
+       ("libedit" ,libedit)
+       ("tzdata" ,tzdata)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("llvm" ,llvm-6)
+       ("python-wrapper" ,python-wrapper)
+       ("unzip" ,unzip)
+       ("phobos-src"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/ldc-developers/phobos")
+                 (commit (string-append "ldc-v" version))))
+           (file-name (git-file-name "phobos" version))
+           (sha256
+            (base32 "15jzs38wanks2jfp2izzl7zqrp4c8ai54ppsgm8ws86p3sbbkmj8"))))
+       ("druntime-src"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/ldc-developers/druntime")
+                 (commit (string-append "ldc-v" version))))
+           (file-name (git-file-name "druntime" version))
+           (sha256
+            (base32 "00wr2kiggwnd8h7by51fhj1xc65hv1ysip5gbgdbkfar58p2d0bb"))))
+       ("dmd-testsuite-src"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/ldc-developers/dmd-testsuite")
+                 (commit (string-append "ldc-v" version))))
+           (file-name (git-file-name "dmd-testsuite" version))
+           (sha256
+            (base32 "1d1c0979wbippldrkjf7szyj4n87hxz8dwqg1r5b3aai37g9kcky"))))))
+    (home-page "http://wiki.dlang.org/LDC")
+    (synopsis "LLVM-based compiler for the D programming language")
+    (description
+     "LDC is an LLVM compiler for the D programming language.  It is based on
 the latest DMD compiler that was written in C and is used for
 bootstrapping more recent compilers written in D.")
-      ;; Most of the code is released under BSD-3, except for code originally
-      ;; written for GDC, which is released under GPLv2+, and the DMD frontend,
-      ;; which is released under the "Boost Software License version 1.0".
-      (license (list license:bsd-3
-                     license:gpl2+
-                     license:boost1.0))))
+    ;; Most of the code is released under BSD-3, except for code originally
+    ;; written for GDC, which is released under GPLv2+, and the DMD frontend,
+    ;; which is released under the "Boost Software License version 1.0".
+    (license (list license:bsd-3
+                   license:gpl2+
+                   license:boost1.0))))
 
-(define-public ldc
-  ;; Phobos, druntime and dmd-testsuite library dependencies do
-  ;; not always have a newer release than the compiler, hence we
-  ;; retain this variable.
-  (let ((older-version "1.10.0")) ;; retain this because sometimes the libs are older
-    (package
-      (inherit ldc-bootstrap)
-      (name "ldc")
-      (version "1.10.0")
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/ldc-developers/ldc")
-               (commit (string-append "v" version))))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0qcb2rn01wql7y8qp31blbv3hwmnh3zjgzi2n7k168cxr6rrdhlp"))))
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'unpack-submodule-sources
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let ((unpack (lambda (input target)
-                               (let ((source (assoc-ref inputs input)))
-                                 ;; Git checkouts are directories as long as
-                                 ;; there are no patches; tarballs otherwise.
-                                 (if (file-is-directory? source)
-                                     (copy-recursively source target)
-                                     (with-directory-excursion target
-                                       (invoke "tar" "xvf" source
-                                               "--strip-components=1")))))))
-                 (unpack "phobos-src" "runtime/phobos")
-                 (unpack "druntime-src" "runtime/druntime")
-                 (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")
-                 #t)))
-           (add-after 'unpack-submodule-sources 'patch-phobos
+;;; This is the last version that supports being built with 32 bit machines
+;;; from 0.17.
+(define ldc-bootstrap-1.12
+  (package
+    (inherit ldc-bootstrap-0.17)
+    (version "1.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       ;; The official release include the matching source code releases of
+       ;; phobos, druntime and dmd-testsuite.
+       (uri (string-append "https://github.com/ldc-developers/ldc/releases"
+                           "/download/v" version "/ldc-" version "-src.tar.gz"))
+       (sha256
+        (base32 "1fdma1w8j37wkr0pqdar11slkk36qymamxnk6d9k8ybhjmxaaawm"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments ldc-bootstrap-0.17)
+       ((#:build-type _ #f) "Release")
+       ((#:configure-flags _ #f)
+        `(list "-GNinja"))
+       ((#:make-flags _ #f)             ;used as build targets
+        `(list "all"))
+       ((#:tests? _) #f)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (delete 'unpack-submodule-sources)
+           (replace 'patch-paths
              (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* '("runtime/phobos/std/process.d"
-                              "tests/linking/linker_switches.d")
+               (substitute* '("runtime/phobos/std/process.d")
                  (("/bin/sh") (which "sh"))
-                 (("echo") (which "echo")))
+                 (("echo") (which "echo")))))
+           (replace 'build
+             ;; Building with Make would result in "make: *** [Makefile:166:
+             ;; all] Error 2".
+             (lambda* (#:key make-flags parallel-tests? #:allow-other-keys)
+               (let ((job-count (number->string (or (and parallel-tests?
+                                                         (parallel-job-count))
+                                                    1))))
+                 (apply invoke "cmake" "--build" "." "-j" job-count
+                        "--target" make-flags))))
+           (replace 'install
+             (lambda _
+               (invoke "cmake" "--install" ".")))))))
+    (native-inputs
+     ;; Importing (gnu packages commencement) would introduce a cycle.
+     `(("ld-gold-wrapper" ,(module-ref (resolve-interface
+                                        '(gnu packages commencement))
+                                       'ld-gold-wrapper))
+       ("llvm" ,llvm-6)
+       ("ldc" ,ldc-bootstrap-0.17)
+       ("ninja" ,ninja)
+       ("python-wrapper" ,python-wrapper)
+       ("unzip" ,unzip)))))
+
+;;; For 32 bits systems, 1.12 cannot build 1.27 directly, so we need another
+;;; hop.
+(define ldc-bootstrap-1.24
+  (package
+    (inherit ldc-bootstrap-1.12)
+    (version "1.24.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/ldc-developers/ldc/releases"
+                           "/download/v" version "/ldc-" version "-src.tar.gz"))
+       (sha256
+        (base32 "0g5svf55i0kq55q49awmwqj9qi1n907cyrn1vjdjgs8nx6nn35gx"))))
+    (native-inputs
+     (fold alist-replace
+           (package-native-inputs ldc-bootstrap-1.12)
+           '("ldc" "llvm")
+           `((,ldc-bootstrap-1.12) (,llvm-11))))))
+
+(define ldc-bootstrap-1.27
+  (package
+    (inherit ldc-bootstrap-1.24)
+    (version "1.27.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/ldc-developers/ldc/releases"
+                           "/download/v" version "/ldc-" version "-src.tar.gz"))
+       (sha256
+        (base32 "1775001ba6n8w46ln530kb5r66vs935ingnppgddq8wqnc0gbj4k"))))
+    (native-inputs
+     (fold alist-replace
+           (package-native-inputs ldc-bootstrap-1.24)
+           '("ldc" "llvm")
+           `((,ldc-bootstrap-1.24) (,llvm-11))))))
+
+(define-public ldc
+  (package
+    (inherit ldc-bootstrap-1.27)
+    (arguments
+     (substitute-keyword-arguments (package-arguments ldc-bootstrap-1.27)
+       ((#:make-flags _ #f)
+        '(list "all"
+               ;; Also build the test runner binaries.
+               "ldc2-unittest" "all-test-runners"))
+       ((#:configure-flags flags)
+        `(,@flags "-DBUILD_SHARED_LIBS=ON"
+                  "-DLDC_LINK_MANUALLY=OFF"))
+       ((#:tests? _) #t)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'fix-compiler-rt-library-discovery
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((clang-runtime (assoc-ref inputs "clang-runtime"))
+                     (system ,(or (%current-target-system)
+                                  (%current-system))))
+                 (define (gnu-triplet->clang-arch system)
+                   (letrec-syntax
+                       ((matches (syntax-rules (=>)
+                                   ((_ (system-prefix => target) rest ...)
+                                    (if (string-prefix? system-prefix system)
+                                        target
+                                        (matches rest ...)))
+                                   ((_)
+                                    (error "Clang target for system is unknown"
+                                           system)))))
+                     (matches ("x86_64"      => "x86_64")
+                              ("i686"        => "i386")
+                              ("armhf"       => "armhf"))))
+                 ;; Coax LLVM into agreeing with Clang about system target
+                 ;; naming.
+                 (substitute* "driver/linker-gcc.cpp"
+                   (("triple.getArchName\\(\\)")
+                    (format #f "~s" (gnu-triplet->clang-arch system))))
+                 ;; Augment the configuration of the ldc2 binaries so they can
+                 ;; find the compiler-rt libraries they need to be linked with
+                 ;; for the tests.
+                 (substitute* (find-files "." "^ldc2.*\\.conf\\.in$")
+                   ((".*lib-dirs = \\[\n" all)
+                    (string-append all
+                                   "        \"" clang-runtime
+                                   "/lib/linux\",\n"))))))
+           (add-after 'unpack 'patch-paths-in-tests
+             (lambda _
                (substitute* "tests/d2/dmd-testsuite/Makefile"
                  (("/bin/bash") (which "bash")))
-               ;; disable unittests in the following files. We are discussing with
-               ;; upstream
+               (substitute* "tests/linking/linker_switches.d"
+                 (("echo") (which "echo")))
+               (substitute* "tests/d2/dmd-testsuite/dshell/test6952.d"
+                 (("/usr/bin/env bash")
+                  (which "bash")))))
+           (add-after 'unpack 'disable-problematic-tests
+             (lambda* (#:key inputs #:allow-other-keys)
+               ;; Disable unittests in the following files.
                (substitute* '("runtime/phobos/std/net/curl.d"
                               "runtime/phobos/std/datetime/systime.d"
-                              "runtime/phobos/std/datetime/timezone.d"
-                              )
+                              "runtime/phobos/std/datetime/timezone.d")
                  (("version(unittest)") "version(skipunittest)")
                  ((" unittest") " version(skipunittest) unittest"))
-               ;; the following tests require a more recent LLVM
-               (delete-file "tests/compilable/ctfe_math.d")
-               (delete-file "tests/debuginfo/nested_gdb.d")
-               (delete-file "tests/debuginfo/classtypes_gdb.d")
-               ;; for the following tests ptrace fails with EPERM
-               ;; (see <https://issues.guix.gnu.org/48541>):
-               (delete-file "tests/d2/dmd-testsuite/runnable/b18504.d")
-               (delete-file "tests/d2/dmd-testsuite/runnable/gdb14225.d")
-               (delete-file "tests/d2/dmd-testsuite/runnable/gdb14276.d")
-               (delete-file "tests/d2/dmd-testsuite/runnable/gdb14313.d")
-               (delete-file "tests/d2/dmd-testsuite/runnable/gdb14330.d")
-               (delete-file "tests/d2/dmd-testsuite/runnable/gdb1.d")
-               (delete-file "tests/d2/dmd-testsuite/runnable/gdb4149.d")
-               (delete-file "tests/d2/dmd-testsuite/runnable/gdb4181.d")
-               (delete-file "tests/d2/dmd-testsuite/runnable/gdb15729.sh")
-               ;; the following tests plugins we don't have.
+               ;; The following tests plugins we don't have.
                (delete-file "tests/plugins/addFuncEntryCall/testPlugin.d")
-               ;; the following tests requires AVX instruction set in the CPU.
-               (substitute* "tests/d2/dmd-testsuite/runnable/test_cdvecfill.d"
+               ;; The following tests requires AVX instruction set in the CPU.
+               (substitute* "tests/d2/dmd-testsuite/runnable/cdvecfill.sh"
                  (("^// DISABLED: ") "^// DISABLED: linux64 "))
-               #t))
+               ;; This unit test requires networking, fails with
+               ;; "core.exception.RangeError@std/socket.d(778): Range
+               ;; violation".
+               (substitute* "runtime/phobos/std/socket.d"
+                 (("assert\\(ih.addrList\\[0\\] == 0x7F_00_00_01\\);.*")
+                  ""))
+               ;; The GDB tests suite fails; there are a few bug reports about
+               ;; it upstream.
+               (for-each delete-file (find-files "tests" "gdb.*\\.(d|sh)$"))
+               (delete-file "tests/d2/dmd-testsuite/runnable/debug_info.d")
+               (delete-file "tests/d2/dmd-testsuite/runnable/b18504.d")
+               (substitute* "runtime/druntime/test/exceptions/Makefile"
+                 ((".*TESTS\\+=rt_trap_exceptions_drt_gdb.*")
+                  ""))
+               ;; The following tests fail on the supported 32 bit systems,
+               ;; which are not tested upstream.
+               (with-directory-excursion "tests"
+                 (let ((system ,(or (%current-target-system)
+                                    (%current-system))))
+                   (when (or (string-prefix? "armhf" system )
+                             (string-prefix? "i686" system ))
+                     (for-each delete-file
+                               '("PGO/profile_rt_calls.d"
+                                 "codegen/mangling.d"
+                                 "debuginfo/print_gdb.d"
+                                 "dynamiccompile/bind.d"
+                                 "dynamiccompile/bind_bool.d"
+                                 "dynamiccompile/bind_func_opt.d"
+                                 "dynamiccompile/bind_nested_opt.d"
+                                 "dynamiccompile/bind_opt.d"
+                                 "dynamiccompile/compiler_context.d"
+                                 "dynamiccompile/compiler_context_parallel.d"
+                                 "instrument/xray_check_pipeline.d"
+                                 "instrument/xray_link.d"
+                                 "instrument/xray_simple_execution.d"
+                                 "sanitizers/msan_noerror.d"
+                                 "sanitizers/msan_uninitialized.d"
+                                 "d2/dmd-testsuite/runnable_cxx/cppa.d")))))))
+           (add-before 'configure 'set-cc-and-cxx-to-use-clang
+             ;; The tests require to be built with Clang; build everything
+             ;; with it, for simplicity.
+             (lambda _
+               (setenv "CC" (which "clang"))
+               (setenv "CXX" (which "clang++"))))
            (replace 'check
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               ;; some tests call into gdb binary which needs SHELL and CC set
-               (setenv "SHELL" (which "sh"))
-               (setenv "CC" (search-input-file inputs "/bin/gcc"))
-               (invoke "make" "test" "-j" (number->string (parallel-job-count))))))))
-      (native-inputs
-       `(("llvm" ,llvm-6)
-         ("clang" ,clang-6)
-         ("ldc" ,ldc-bootstrap)
-         ("python-lit" ,python-lit)
-         ("python-wrapper" ,python-wrapper)
-         ("unzip" ,unzip)
-         ("gdb" ,gdb)
-         ("phobos-src"
-          ,(origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://github.com/ldc-developers/phobos")
-                   (commit (string-append "ldc-v" older-version))))
-             (file-name (git-file-name "phobos" older-version))
-             (sha256
-              (base32 "1gmlwnjdcf6s5aahadxsif9l5nyaj0rrn379g6fmhcvdk64kf509"))
-             ;; This patch deactivates some tests that depend on network access
-             ;; to pass.  It also deactivates some tests that have some reliance
-             ;; on timezone.
-             ;;
-             ;; For the network tests, there's an effort to get a version flag
-             ;; added to deactivate these tests for distribution packagers
-             ;; that is being pursued at
-             ;; <https://forum.dlang.org/post/zmdbdgnzrxyvtpqafvyg@forum.dlang.org>.
-             ;; It also deactivates a test that requires /root
-             (patches (search-patches "ldc-disable-phobos-tests.patch"))))
-         ("druntime-src"
-          ,(origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://github.com/ldc-developers/druntime")
-                   (commit (string-append "ldc-v" older-version))))
-             (file-name (git-file-name "druntime" older-version))
-             (sha256
-              (base32 "0a3yyjcnpvm5fbdczf76fx08kl154w17w06hlxf0j3p1p4jc85aj"))))
-         ("dmd-testsuite-src"
-          ,(origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://github.com/ldc-developers/dmd-testsuite")
-                   (commit (string-append "ldc-v" older-version))))
-             (file-name (git-file-name "dmd-testsuite" older-version))
-             (sha256
-              (base32 "0mm3rliki1nqiqfaha7ssvm156aa398vpvf4v6895m7nn1mz7rss")))))))))
+             (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
+               (when tests?
+                 (let ((job-count (number->string
+                                   (or (and parallel-tests?
+                                            (parallel-job-count))
+                                       1))))
+                   ;; The test targets are tested separately to provide
+                   ;; finer-grained diagnostics (see:
+                   ;; https://raw.githubusercontent.com/ldc-developers/
+                   ;; ldc/master/.azure-pipelines/3-posix-test.yml)
+                   (display "running the ldc2 unit tests...\n")
+                   (invoke "ctest" "--output-on-failure" "-j" job-count
+                           "-R" "ldc2-unittest")
+                   (display "running the lit test suite...\n")
+                   (invoke "ctest" "--output-on-failure" "-j" job-count
+                           "-R" "lit-tests")
+                   (display "running the dmd test suite...\n")
+                   (invoke "ctest" "--output-on-failure" "-j" job-count
+                           "-R" "dmd-testsuite")
+                   (display "running the defaultlib unit tests and druntime \
+integration tests...\n")
+                   (invoke "ctest" "--output-on-failure" "-j" job-count
+                           "-E" "dmd-testsuite|lit-tests|ldc2-unittest")))))))))
+    (native-inputs
+     (append (delete "llvm"
+                     (alist-replace "ldc" (list ldc-bootstrap-1.27)
+                                    (package-native-inputs ldc-bootstrap-1.27)))
+         `(("clang" ,clang-11)          ;propagates llvm and clang-runtime
+           ("python-lit" ,python-lit))))))
 
 (define-public dub
   (package
@@ -338,9 +448,9 @@ bootstrapping more recent compilers written in D.")
                (install-file "bin/dub" bin)
                #t))))))
     (inputs
-     `(("curl" ,curl)))
+     (list curl))
     (native-inputs
-     `(("ldc" ,ldc)))
+     (list ldc))
     (home-page "https://code.dlang.org/getting_started")
     (synopsis "Package and build manager for D projects")
     (description
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 45e250138e..5c5f95537b 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -42,6 +42,7 @@
   #:use-module (gnu packages bash)
   #:use-module (gnu packages certs)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages compression)
@@ -69,6 +70,7 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages ragel)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages shells)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages swig)
@@ -82,11 +84,59 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system trivial))
 
+(define-public cloudflare-cli
+  (let ((commit "2d986d3ec1b0e3158c4bd40e8918947cb74aa392")
+        (revision "1"))
+    (package
+      (name "cloudflare-cli")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/earlchew/cloudflare-cli")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0f86g6n86kwykl3jnhqjrdfy8ybkp03ghr3dlr70q2552qw4axw2"))))
+      (build-system copy-build-system)
+      (arguments
+       `(#:install-plan '(("cloudflare-cli" "bin/") ("cloudflare-cli.sh" "bin/"))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'find-jsonsh
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "cloudflare-cli.sh"
+                 (("\\$\\{0%/\\*\\}/jsonsh")
+                  (string-append (assoc-ref inputs "json.sh") "/bin/JSON.sh")))
+               #t))
+           (add-after 'install 'wrap-program
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (wrap-program (string-append (assoc-ref outputs "out") "/bin/cloudflare-cli")
+                 `("PATH" ":" prefix
+                   (,(string-join
+                      (map (lambda (in) (string-append (assoc-ref inputs in) "/bin"))
+                           '("grep" "curl"))
+                      ":"))))
+               #t)))))
+      (inputs
+       (list bash-minimal curl grep json.sh))
+      (synopsis
+        "CLI to edit Cloudflare DNS records")
+      (description
+        "This command line tool to update Cloudfare DNS records is useful for tasks
+such as updating dynamic DNS records or updating DNS records for the ACME DNS-01
+protocol.")
+      (home-page "https://github.com/earlchew/cloudflare-cli")
+      (license license:expat))))
+
 (define-public ldns
   (package
     (name "ldns")
@@ -160,9 +210,7 @@
        ("python" ,python-wrapper)
        ("swig" ,swig)))
     (inputs
-     `(("libpcap" ,libpcap)
-       ("nss-certs" ,nss-certs)
-       ("openssl" ,openssl)))
+     (list libpcap nss-certs openssl))
     (synopsis "DNS library that facilitates DNS tool programming")
     (description "LDNS aims to simplify DNS programming, it supports recent
 RFCs like the DNSSEC documents, and allows developers to easily create
@@ -278,7 +326,7 @@ prompt the user with the option to go with insecure DNS only.")
 (define-public dnsmasq
   (package
     (name "dnsmasq")
-    (version "2.85")
+    (version "2.86")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -286,17 +334,17 @@ prompt the user with the option to go with insecure DNS only.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "1yhjwgz8g5qrqvxh6bbmg3443zi8qqjks3q872wyb1zn7n0d765d"))))
+                "027b0ycw8h8yvvkq46vnr7dv8iqn5srm4kr7hm7sq110kvy2rm98"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("dbus" ,dbus)))
+     (list dbus))
     (arguments
      `(#:phases
        (modify-phases %standard-phases (delete 'configure))
        #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
-                          "CC=gcc"
+                          (string-append "CC=" ,(cc-for-target))
                           "COPTS=\"-DHAVE_DBUS\"")
        #:tests? #f))                    ; no ‘check’ target
     (home-page "http://www.thekelleys.org.uk/dnsmasq/doc.html")
@@ -320,29 +368,30 @@ and BOOTP/TFTP for network booting of diskless machines.")
     ;; When updating, check whether isc-dhcp's bundled copy should be as well.
     ;; The BIND release notes are available here:
     ;; https://www.isc.org/bind/
-    (version "9.16.16")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://ftp.isc.org/isc/bind9/" version
-                    "/bind-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0yqxfq7qc26x7qhk0nkp8h7x9jggzaafm712bvfffy7qml13k4bc"))))
+    (version "9.16.24")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://ftp.isc.org/isc/bind9/" version
+             "/bind-" version ".tar.xz"))
+       (sha256
+        (base32 "01w5n1injvq6azhplyd4vqczila6i9mj051zz62248yn9drz70jm"))
+       (patches
+        (search-patches "bind-re-add-attr-constructor-priority.patch"))))
     (build-system gnu-build-system)
     (outputs `("out" "utils"))
     (inputs
      ;; It would be nice to add GeoIP and gssapi once there are packages.
-     `(("libcap" ,libcap)
-       ("libuv" ,libuv)
-       ("libxml2" ,libxml2)
-       ("openssl" ,openssl)
-       ("p11-kit" ,p11-kit)
-       ("python" ,python)
-       ("python-ply" ,python-ply)))
+     (list libcap
+           libuv
+           libxml2
+           openssl
+           p11-kit
+           python
+           python-ply))
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list perl pkg-config))
     (arguments
      `(#:configure-flags
        (list (string-append "--with-pkcs11="
@@ -435,13 +484,9 @@ Dynamic DNS update utility
              ;; The system version is still favored and referenced.
              (invoke "autoreconf" "-vif"))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("libtool" ,libtool)))
+     (list pkg-config automake autoconf libtool))
     (inputs
-     `(("libltdl" ,libltdl)
-       ("libsodium" ,libsodium)))
+     (list libltdl libsodium))
     (home-page "https://www.dnscrypt.org/")
     (synopsis "Securely send DNS requests to a remote server")
     (description
@@ -480,10 +525,9 @@ servers is included, and an up-to-date version is available at
            (lambda _
              (invoke "make" "configure"))))))
     (native-inputs
-     `(("autoconf" ,autoconf)))
+     (list autoconf))
     (inputs
-     `(("libevent" ,libevent)
-       ("libsodium" ,libsodium)))
+     (list libevent libsodium))
     (home-page "https://github.com/Cofyc/dnscrypt-wrapper")
     (synopsis "Server-side dnscrypt proxy")
     (description
@@ -520,10 +564,7 @@ the two.")
                              (string-append out "/share/man/man3"))
                #t))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (home-page "https://www.opensmtpd.org")
     (synopsis "Asynchronous resolver library by the OpenBSD project")
     (description
@@ -539,14 +580,14 @@ asynchronous fashion.")
 (define-public nsd
   (package
     (name "nsd")
-    (version "4.3.7")
+    (version "4.3.9")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-"
                            version ".tar.gz"))
        (sha256
-        (base32 "1bg87g0i66hw16fm7gbqmzyi2rcn1hadzz0bg9b8s5mx7g2rwfzx"))))
+        (base32 "13ay2gr7ln8gl09wdqnxkrdxi51jaqsbn54yh82vvv49jbq4j5ak"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -582,12 +623,10 @@ asynchronous fashion.")
                  ((".*INSTALL.*\\$\\((config|pid|xfr|db)dir" command)
                   (string-append "#" command))
                  (("\\$\\(nsdconfigfile\\)\\.sample" file-name)
-                  (string-append doc "/examples/" file-name)))
-               #t))))
+                  (string-append doc "/examples/" file-name)))))))
        #:tests? #f))                    ; no tests
     (inputs
-     `(("libevent" ,libevent)
-       ("openssl" ,openssl)))
+     (list libevent openssl))
     (home-page "https://www.nlnetlabs.nl/projects/nsd/about/")
     (synopsis "Authoritative DNS name server")
     (description "@dfn{NSD}, short for Name Server Daemon, is an authoritative
@@ -606,6 +645,60 @@ run in a @code{chroot} jail, thus making any security flaws in NSD less likely
 to result in system-wide compromise.")
     (license (list license:bsd-3))))
 
+(define-public rbldnsd
+  (package
+    (name "rbldnsd")
+    (version "0.998b")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/spamhaus/rbldnsd")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0jj3kyir43qnjgd9rk0wz13iggf3p4p1779v0wgmx3ci0ypnglcr"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           ;; The ./configure is hand-written and doesn't ignore unknown
+           ;; standard autotools options like CONFIG_SHELL.
+           (lambda _
+             (invoke "./configure")))
+         (replace 'install
+           ;; There is no Makefile ‘install’ target.  contrib/debian/rules has
+           ;; one but relies on Debian-specific helpers, so install manually.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out  (assoc-ref outputs "out"))
+                    (sbin (string-append out "/sbin"))
+                    (man8 (string-append out "/share/man/man8")))
+               (install-file "rbldnsd" sbin)
+               (install-file "rbldnsd.8" man8)))))))
+    (inputs
+     (list zlib))
+    (native-inputs
+     ;; For running the test suite.  Python 3 is not yet supported by a release:
+     ;; see <https://github.com/spamhaus/rbldnsd/issues/16>.
+     `(("python" ,python-2)))
+    (home-page "https://rbldnsd.io/")
+    (synopsis
+     "Small nameserver to efficiently serve @acronym{DNSBL, DNS blocklists}")
+    (description
+     "This package contains a small DNS daemon especially made to handle queries
+of @acronym{DNSBL, DNS blocklists}, a simple way to publish IP addresses and/or
+(domain) names which are somehow notable.  Such lists are frequently used to
+refuse e-mail service to clients known to send unwanted (spam) messages.
+
+@command{rbldnsd} is not a general-purpose nameserver.  It answers to a limited
+variety of queries.  This makes it extremely fast---greatly outperforming both
+BIND and djbdns---whilst using relatively little memory.")
+    (license
+     (list license:bsd-3                ; btrie.[ch]
+           license:lgpl2.1+             ; qsort.c
+           license:gpl2+))))            ; the rest
+
 (define-public unbound
   (package
     (name "unbound")
@@ -620,15 +713,14 @@ to result in system-wide compromise.")
     (build-system gnu-build-system)
     (outputs '("out" "python"))
     (native-inputs
-     `(("flex" ,flex)
-       ("swig" ,swig)))
+     (list flex swig))
     (inputs
-     `(("expat" ,expat)
-       ("libevent" ,libevent)
-       ("nghttp2" ,nghttp2 "lib")
-       ("protobuf" ,protobuf)
-       ("python-wrapper" ,python-wrapper)
-       ("openssl" ,openssl)))
+     (list expat
+           libevent
+           `(,nghttp2 "lib")
+           protobuf
+           python-wrapper
+           openssl))
     (arguments
      `(#:configure-flags
        (list "--disable-static" ; save space and non-determinism in libunbound.a
@@ -769,36 +861,34 @@ served by AS112.  Stub and forward zones are supported.")
 (define-public yadifa
   (package
     (name "yadifa")
-    (version "2.5.0")
+    (version "2.5.3")
     (source
-     (let ((build "10188"))
+     (let ((build "10333"))
        (origin
          (method url-fetch)
          (uri
           (string-append "https://www.yadifa.eu/sites/default/files/releases/"
                          "yadifa-" version "-" build ".tar.gz"))
          (sha256
-          (base32 "05ps6fif3sqn6yzkprnp1cm81f3ja4vqc0r6vh7nvzl73gv4rp2w")))))
+          (base32 "1mwy6sfnlaslx26f3kpj9alh8i8y8bf1nbnsdd5j04hjsbavd07p")))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-before 'configure 'omit-example-configurations
            (lambda _
              (substitute* "Makefile.in"
-               ((" (etc|var)") ""))
-             #t))
+               ((" (etc|var)") ""))))
          (add-after 'configure 'omit-spurious-references
            (lambda _
              ;; The many Makefile.in grep this(!) to #define BUILD_OPTIONS.
              (substitute* "config.log"
                (("(=/gnu/store/)[^-]*" _ match)
-                (string-append match "...")))
-             #t)))
+                (string-append match "..."))))))
        #:configure-flags
        (list "--sysconfdir=/etc"
              "--localstatedir=/var"
@@ -817,7 +907,7 @@ Extensions} (DNSSEC).")
 (define-public knot
   (package
     (name "knot")
-    (version "3.0.7")
+    (version "3.1.4")
     (source
      (origin
        (method git-fetch)
@@ -826,7 +916,7 @@ Extensions} (DNSSEC).")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ihd0lfh0r1nzz2di2rqkrx5j1017xv7m54irlhccx21inwv6g3y"))
+        (base32 "0wx8ad95adryzp527m4k0lja8y39qqd65f5z9immhfpb9cyax6i7"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -834,8 +924,7 @@ Extensions} (DNSSEC).")
            (for-each delete-file (find-files "." "\\.c\\.[gt]."))
            (delete-file "src/libknot/yparser/ypbody.c")
            ;; Remove bundled library to ensure we always use the system's.
-           (delete-file-recursively "src/contrib/libbpf")
-           #t))))
+           (delete-file-recursively "src/contrib/libbpf")))))
     (build-system gnu-build-system)
     (outputs (list "out" "doc" "lib" "tools"))
     (arguments
@@ -847,9 +936,10 @@ Extensions} (DNSSEC).")
              (string-append "--libdir=" (assoc-ref %outputs "lib") "/lib")
              "--sysconfdir=/etc"
              "--localstatedir=/var"
+             "--disable-static"         ; static libraries are built by default
              "--enable-dnstap"          ; let tools read/write capture files
              "--enable-fastparser"      ; disabled by default when .git/ exists
-             "--enable-xdp=auto"        ; XXX [=yes] currently means =embedded
+             "--enable-xdp=yes"
              "--with-module-dnstap=yes") ; detailed query capturing & logging
        #:phases
        (modify-phases %standard-phases
@@ -859,8 +949,7 @@ Extensions} (DNSSEC).")
            (lambda _
              (substitute* "configure.ac"
                (("enable_xdp=yes" match)
-                (string-append match "\nlibbpf_LIBS=\"$libbpf_LIBS -lz\"")))
-             #true))
+                (string-append match "\nlibbpf_LIBS=\"$libbpf_LIBS -lz\"")))))
          (add-before 'bootstrap 'update-parser
            (lambda _
              (with-directory-excursion "src"
@@ -869,22 +958,32 @@ Extensions} (DNSSEC).")
            (lambda _
              ;; Don't install empty directories like ‘/etc’ outside the store.
              ;; This is needed even when using ‘make config_dir=... install’.
-             (substitute* "src/Makefile.in" (("\\$\\(INSTALL\\) -d") "true"))
-             #t))
+             (substitute* "src/Makefile.in" (("\\$\\(INSTALL\\) -d") "true"))))
          (add-after 'build 'build-info
-           (lambda _
-             (invoke "make" "info")))
+           (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
+             (apply invoke "make" "info"
+                    `(,@(if parallel-build?
+                            `("-j" ,(number->string (parallel-job-count)))
+                            '())
+                      ,@make-flags))))
          (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda* (#:key make-flags outputs parallel-build? #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (doc (string-append out "/share/doc/" ,name "-" ,version))
                     (etc (string-append doc "/examples/etc")))
-               (invoke "make"
-                       (string-append "config_dir=" etc)
-                       "install"))))
+               (apply invoke "make" "install"
+                      (string-append "config_dir=" etc)
+                      `(,@(if parallel-build?
+                              `("-j" ,(number->string (parallel-job-count)))
+                              '())
+                        ,@make-flags)))))
          (add-after 'install 'install-info
-           (lambda _
-             (invoke "make" "install-info")))
+           (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
+             (apply invoke "make" "install-info"
+                    `(,@(if parallel-build?
+                            `("-j" ,(number->string (parallel-job-count)))
+                            '())
+                      ,@make-flags))))
          (add-after 'install 'break-circular-:lib->:out-reference
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((lib (assoc-ref outputs "lib")))
@@ -892,8 +991,7 @@ Extensions} (DNSSEC).")
                            (substitute* file
                              (("(prefix=).*" _ assign)
                               (string-append assign lib "\n"))))
-                         (find-files lib "\\.pc$"))
-               #true)))
+                         (find-files lib "\\.pc$")))))
          (add-after 'install 'split-:tools
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out   (assoc-ref outputs "out"))
@@ -902,16 +1000,15 @@ Extensions} (DNSSEC).")
                (rename-file (string-append out   "/bin")
                             (string-append tools "/bin"))
                (rename-file (string-append out   "/share/man/man1")
-                            (string-append tools "/share/man/man1"))
-               #true))))))
+                            (string-append tools "/share/man/man1"))))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("python-sphinx" ,python-sphinx)
-       ("ragel" ,ragel)
-       ("texinfo" ,texinfo)))
+     (list autoconf
+           automake
+           libtool
+           pkg-config
+           python-sphinx
+           ragel
+           texinfo))
     (inputs
      `(("fstrm" ,fstrm)
        ("gnutls" ,gnutls)
@@ -921,6 +1018,7 @@ Extensions} (DNSSEC).")
        ("libedit" ,libedit)
        ("libelf" ,libelf)
        ("libidn" ,libidn)
+       ("libmnl" ,libmnl)
        ("libnghttp2" ,nghttp2 "lib")
        ("liburcu" ,liburcu)
        ("lmdb" ,lmdb)
@@ -947,14 +1045,14 @@ synthesis, and on-the-fly re-configuration.")
 (define-public knot-resolver
   (package
     (name "knot-resolver")
-    (version "5.4.1")
+    (version "5.4.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://secure.nic.cz/files/knot-resolver/"
                                   "knot-resolver-" version ".tar.xz"))
               (sha256
                (base32
-                "0rixiqfj53rfabrz8qpnq4whx8y29d2m5w64a4jlwx7gv4nrd2zv"))))
+                "01m5s2kllr0apkg0bcfagzvijyfbivby03d1pjv3c0qrjgmjk1s8"))))
     (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
@@ -966,8 +1064,7 @@ synthesis, and on-the-fly re-configuration.")
              ;;  Disable the default managed root TA, since we don't have
              ;;  write access to the keyfile and its directory in store.
              (substitute* "daemon/lua/sandbox.lua.in"
-               (("^trust_anchors\\.add_file.*") ""))
-             #t))
+               (("^trust_anchors\\.add_file.*") ""))))
          (add-after 'build 'build-doc
            (lambda _
              (invoke "ninja" "doc")))
@@ -998,17 +1095,16 @@ synthesis, and on-the-fly re-configuration.")
                                  (string-append p "/lib/lua/5.1/?.so"))))
                (wrap-program (string-append out "/sbin/kresd")
                  `("LUA_PATH" ";" prefix ,(map lua-path lua-*))
-                 `("LUA_CPATH" ";" prefix ,(map lua-cpath lua-*)))
-               #t))))))
+                 `("LUA_CPATH" ";" prefix ,(map lua-cpath lua-*)))))))))
     (native-inputs
-     `(("cmocka" ,cmocka)               ; for unit tests
-       ("doxygen" ,doxygen)
-       ("protobuf-c" ,protobuf-c)
-       ("pkg-config" ,pkg-config)
-       ("python-breathe" ,python-breathe)
-       ("python-sphinx" ,python-sphinx)
-       ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
-       ("texinfo" ,texinfo)))
+     (list cmocka ; for unit tests
+           doxygen
+           protobuf-c
+           pkg-config
+           python-breathe
+           python-sphinx
+           python-sphinx-rtd-theme
+           texinfo))
     (inputs
      `(("fstrm" ,fstrm)
        ("gnutls" ,gnutls)
@@ -1045,14 +1141,13 @@ LuaJIT, both a resolver library and a daemon.")
         (base32 "0hf377g4j9r9sac75xp17nk2h58mazswz4vkg4g2gl2yyhvzq91w"))))
     (build-system trivial-build-system) ; no Makefile.PL
     (native-inputs
-     `(("bash" ,bash)
-       ("perl" ,perl)))
+     (list bash perl))
     (inputs
-     `(("inetutils" ,inetutils)         ; logger
-       ("net-tools" ,net-tools)
-       ("perl-data-validate-ip" ,perl-data-validate-ip)
-       ("perl-digest-sha1" ,perl-digest-sha1)
-       ("perl-io-socket-ssl" ,perl-io-socket-ssl)))
+     (list inetutils ; logger
+           net-tools
+           perl-data-validate-ip
+           perl-digest-sha1
+           perl-io-socket-ssl))
     (arguments
      `(#:modules ((guix build utils))
        #:builder
@@ -1150,12 +1245,9 @@ attempts the update when it has changed.")
      (arguments
       '(#:configure-flags '("--disable-static"))) ;no need for libhsk.a
      (native-inputs
-      `(("autoconf" ,autoconf)
-        ("automake" ,automake)
-        ("libtool" ,libtool)))
+      (list autoconf automake libtool))
      (inputs
-      `(("unbound" ,unbound)
-        ("libuv" ,libuv)))
+      (list unbound libuv))
      (home-page "https://www.handshake.org/")
      (synopsis "Resolver daemon for the Handshake naming protocol")
      (description
@@ -1303,7 +1395,21 @@ and TCP-capable recursive DNS server for finding domains on the internet.")
        #:configure-flags
        (list (string-append "--sysconfdir=/etc"))
        #:make-flags
-       (list (string-append "SYSCONFDIR=/" (assoc-ref %outputs "out") "/etc"))))
+       (list (string-append "SYSCONFDIR=/" (assoc-ref %outputs "out") "/etc"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (coreutils (assoc-ref inputs "coreutils-minimal")))
+               (substitute* (string-append out "/sbin/resolvconf")
+                 (("RESOLVCONF=\"\\$0\"")
+                  (format #f "\
+RESOLVCONF=\"$0\"
+PATH=~a/bin:$PATH"
+                          coreutils)))))))))
+    (inputs
+     (list coreutils-minimal))
     (home-page "https://roy.marples.name/projects/openresolv/")
     (synopsis "Resolvconf POSIX compliant implementation, a middleman for resolv.conf")
     (description "openresolv is an implementation of @command{resolvconf}, the
diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index ee12f7edeb..cb1a0d4d5e 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -41,6 +41,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module ((guix build utils) #:select (alist-replace))
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system python))
@@ -77,7 +78,7 @@
                 (string-append
                  "uri=\"file://" dtd "/")))
              #t)))))
-    (native-inputs `(("unzip" ,unzip)))
+    (native-inputs (list unzip))
     (home-page "https://docbook.org")
     (synopsis "DocBook XML DTDs for document authoring")
     (description
@@ -220,15 +221,69 @@ by no means limited to these applications.)  This package provides XML DTDs.")
                                        name-version "/")))
                      #t))
        #:modules ((guix build utils))))
-    (native-inputs `(("bzip2" ,bzip2)
-                     ("xz" ,xz)         ;needed for repacked tarballs
-                     ("tar" ,tar)))
+    (native-inputs (list bzip2 xz ;needed for repacked tarballs
+                         tar))
     (home-page "https://docbook.org")
     (synopsis "DocBook XSL style sheets for document authoring")
     (description
      "This package provides XSL style sheets for DocBook.")
     (license (license:x11-style "" "See 'COPYING' file."))))
 
+(define-public docbook-xsl-ns
+  (package
+    (name "docbook-xsl-ns")
+    (version "1.79.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/docbook/"
+                                  name "/" version "/"
+                                  name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "170ggf5dgjar65kkn5n33kvjr3pdinpj66nnxfx8b2avw0k91jin"))))
+    (build-system copy-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; XXX: The copy-build-system doesn't seem to allow installing to a
+         ;; different output.
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (xml (string-append out "/xml/xsl/" ,name "-" ,version))
+                    (doc (string-append (assoc-ref %outputs "doc")
+                                        "/share/doc/" ,name "-" ,version))
+                    (select-rx (make-regexp
+                                "(\\.xml$|\\.xsl$|\\.dtd$|\\.ent$)")))
+               ;; Install catalog.
+               (install-file "catalog.xml" xml)
+               (install-file "VERSION.xsl" xml)
+               (substitute* (string-append xml "/catalog.xml")
+                 (("rewritePrefix=\"./")
+                  (string-append "rewritePrefix=\"file://" xml "/")))
+               ;; Install style sheets.
+               (for-each (lambda (dir)
+                           (for-each (lambda (f)
+                                       (install-file
+                                        f (string-append xml "/" (dirname f))))
+                                     (find-files dir select-rx)))
+                         '("assembly" "common" "eclipse" "epub" "epub3" "fo"
+                           "highlighting" "html" "htmlhelp" "javahelp" "lib"
+                           "manpages" "params" "profiling" "roundtrip"
+                           "template" "website"
+                           "xhtml" "xhtml-1_1" "xhtml5"))
+               ;; Install documentation.
+               (install-file "NEWS" doc)
+               (install-file "RELEASE-NOTES.html" doc)
+               (copy-recursively "slides" doc)
+               (copy-recursively "webhelp" doc)))))))
+    (home-page "https://docbook.org")
+    (synopsis "DocBook XSL namespaced style sheets for document authoring")
+    (description "This package provides the @emph{namespaced} XSL style sheets
+for DocBook.")
+    (license (license:x11-style "" "See 'COPYING' file."))))
+
 (define-public docbook-dsssl
   (package
     (name "docbook-dsssl")
@@ -261,10 +316,9 @@ by no means limited to these applications.)  This package provides XML DTDs.")
            ;; The doc output contains 1.4 MiB of HTML documentation.
            (symlink docbook-dsssl-doc doc)))))
     (inputs
-     `(("docbook-dsssl-doc" ,docbook-dsssl-doc)))
+     (list docbook-dsssl-doc))
     (native-inputs
-     `(("bzip2" ,bzip2)
-       ("tar" ,tar)))
+     (list bzip2 tar))
     (home-page "https://docbook.org/")
     (synopsis "DSSSL style sheets for DocBook")
     (description "This package provides DSSSL style sheets for DocBook.")
@@ -342,9 +396,9 @@ by no means limited to these applications.)  This package provides XML DTDs.")
              (("(.*ISO 8879.*)\"iso-(.*)\\.gml\"" _ head name)
               (string-append head "\"" iso-entities-dir "/ISO" name "\"")))))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (inputs
-     `(("iso-8879-entities" ,iso-8879-entities)))
+     (list iso-8879-entities))
     (home-page "https://docbook.org")
     (synopsis "DocBook SGML style sheets for document authoring")
     (description "This package provides SGML style sheets for DocBook.")
@@ -459,8 +513,7 @@ the in DocBook SGML DTDs.")
                            (string-append (assoc-ref inputs input)
                                           "/bin"))
                          '("libxslt" "texlive"
-                           "imagemagick" "inkscape"))))
-               #t))))))
+                           "imagemagick" "inkscape"))))))))))
     (home-page "http://dblatex.sourceforge.net")
     (synopsis "DocBook to LaTeX Publishing")
     (description
@@ -536,13 +589,13 @@ DB2LaTeX.")
     ;; Propagated for convenience.  All these tools are used at run time to
     ;; provide the complete functionality of the docbook-utils commands.
     (propagated-inputs
-     `(("texlive-jadetex" ,texlive-jadetex)
-       ("docbook-sgml" ,docbook-sgml-3.1)
-       ("docbook-dsssl" ,docbook-dsssl)
-       ("openjade" ,openjade)
-       ("opensp" ,opensp)
-       ("lynx" ,lynx)
-       ("perl-sgmls" ,perl-sgmls)))
+     (list texlive-jadetex
+           docbook-sgml-3.1
+           docbook-dsssl
+           openjade
+           opensp
+           lynx
+           perl-sgmls))
     (home-page "https://packages.debian.org/sid/docbook-utils")
     (synopsis "DocBook converter to other formats")
     (description "The docbook-utils package is a collection of utilities
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index 8bac1b89ce..cdf62f5e9a 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -57,25 +57,22 @@
 (define-public python-docker
   (package
     (name "python-docker")
-    (version "3.7.3")
+    (version "5.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "docker" version))
        (sha256
         (base32
-         "0qmrcvpaz37p85hfddsd4yc8hgqlkzs4cz09q9wmy0pz5pwajqm0"))))
+         "1yr7w8vmdis01myx26pqx7wcyz2cy1mfs421alppq3lpc9ms45nr"))))
     (build-system python-build-system)
     ;; TODO: Tests require a running Docker daemon.
     (arguments '(#:tests? #f))
     (inputs
-     `(("python-requests" ,python-requests-2.20)
-       ("python-six" ,python-six)
-       ("python-urllib3" ,python-urllib3-1.24)))
+     (list python-requests python-six python-urllib3))
     (propagated-inputs
-     `(("python-docker-pycreds" ,python-docker-pycreds)
-       ("python-paramiko" ,python-paramiko)    ;adds SSH support
-       ("python-websocket-client" ,python-websocket-client)))
+     (list python-docker-pycreds python-paramiko ;adds SSH support
+           python-websocket-client))
     (home-page "https://github.com/docker/docker-py/")
     (synopsis "Python client for Docker")
     (description "Docker-Py is a Python client for the Docker container
@@ -95,7 +92,7 @@ management tool.")
          "1kjn64wx23jmr8dcc6g7bwlmrhfmxr77gh6iphqsl39sayfxdab9"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/d11wtq/dockerpty")
     (synopsis "Python library to use the pseudo-TTY of a Docker container")
     (description "Docker PTY provides the functionality needed to operate the
@@ -106,29 +103,30 @@ client.")
 (define-public docker-compose
   (package
     (name "docker-compose")
-    (version "1.25.4")
+    (version "1.29.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "docker-compose" version))
        (sha256
         (base32
-         "1ww8ckpj3n5jdg63qvmiqx3gk0fsrnynnnqj17fppymbwjzf5fps"))))
+         "1dq9kfak61xx7chjrzmkvbw9mvj9008k7g8q7mwi4x133p9dk32c"))))
     (build-system python-build-system)
     ;; TODO: Tests require running Docker daemon.
     (arguments '(#:tests? #f))
     (inputs
-     `(("python-cached-property"
-        ,python-cached-property)
-       ("python-docker" ,python-docker)
-       ("python-dockerpty" ,python-dockerpty)
-       ("python-docopt" ,python-docopt)
-       ("python-jsonschema" ,python-jsonschema)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-requests" ,python-requests)
-       ("python-six" ,python-six)
-       ("python-texttable" ,python-texttable)
-       ("python-websocket-client" ,python-websocket-client)))
+     (list python-cached-property
+           python-distro
+           python-docker
+           python-dockerpty
+           python-docopt
+           python-dotenv
+           python-jsonschema
+           python-pyyaml
+           python-requests
+           python-six
+           python-texttable
+           python-websocket-client))
     (home-page "https://www.docker.com/")
     (synopsis "Multi-container orchestration for Docker")
     (description "Docker Compose is a tool for defining and running
@@ -160,11 +158,9 @@ created and all the services are started as specified in the configuration.")
                (("2.4.1") ,(package-version python-flake8)))
              #t)))))
     (native-inputs
-     `(("python-flake8" ,python-flake8)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-flake8 python-pytest python-pytest-cov))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/shin-/dockerpy-creds")
     (synopsis
      "Python bindings for the Docker credentials store API")
@@ -232,14 +228,9 @@ Python without keeping their credentials in a Docker configuration file.")
                    (apply invoke "make" (string-append "DESTDIR=" out) "install"
                           ',make-flags)))))))))
     (inputs
-     `(("btrfs-progs" ,btrfs-progs)
-       ("libseccomp" ,libseccomp)
-       ("pigz" ,pigz)
-       ("runc" ,runc)
-       ("util-linux" ,util-linux)))
+     (list btrfs-progs libseccomp pigz runc util-linux))
     (native-inputs
-     `(("go" ,go)
-       ("pkg-config" ,pkg-config)))
+     (list go pkg-config))
     (synopsis "Docker container runtime")
     (description "This package provides the container daemon for Docker.
 It includes image transfer and storage, container execution and supervision,
@@ -593,10 +584,8 @@ built-in registry server of Docker.")
        ("xfsprogs" ,xfsprogs)
        ("xz" ,xz)))
     (native-inputs
-     `(("eudev" ,eudev)      ; TODO: Should be propagated by lvm2 (.pc -> .pc)
-       ("go" ,go)
-       ("gotestsum" ,gotestsum)
-       ("pkg-config" ,pkg-config)))
+     (list eudev ; TODO: Should be propagated by lvm2 (.pc -> .pc)
+           go gotestsum pkg-config))
     (synopsis "Docker container component library, and daemon")
     (description "This package provides a framework to assemble specialized
 container systems.  It includes components for orchestration, image
@@ -667,9 +656,7 @@ provisioning etc.")
                (install-file "build/docker" out-bin)
                #t))))))
     (native-inputs
-     `(("go" ,go)
-       ("libltdl" ,libltdl)
-       ("pkg-config" ,pkg-config)))
+     (list go libltdl pkg-config))
     (synopsis "Command line interface to Docker")
     (description "This package provides a command line interface to Docker.")
     (home-page "https://www.docker.com/")
diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index 4313af387e..6a0d8e8f2e 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -93,7 +93,7 @@
                 (assoc-ref outputs "out")))
              #t)))))
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (synopsis "LaTeX documents to HTML")
     (description "LaTeX2HTML is a utility that converts LaTeX documents to web
 pages in HTML.")
@@ -160,13 +160,9 @@ release/xsl/current")
                                          "/xml/dtd/docbook/docbookx.dtd")))
                        #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)))
+     (list autoconf))
     (inputs
-     `(("python" ,python)
-       ("docbook-xml" ,docbook-xml)
-       ("docbook-xsl" ,docbook-xsl)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)))
+     (list python docbook-xml docbook-xsl libxml2 libxslt))
     (home-page "https://asciidoc.org/")
     (synopsis "Text-based document generation system")
     (description
@@ -199,10 +195,8 @@ markup) can be customized and extended by the user.")
                "1lcif1qi20gf04qyjrx7x367669g17vz2ilgi4cmamp1whdsxbk7"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("libxml2" ,libxml2)             ;provides xmllint for the tests
-       ("python" ,python)))             ;for creating the documentation
+     (list bison flex libxml2 ;provides xmllint for the tests
+           python))             ;for creating the documentation
     (inputs
      `(("bash" ,bash-minimal)))
     (arguments
@@ -252,8 +246,7 @@ and to some extent D.")
                                        "doc++-segfault-fix.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("flex" ,flex)
-       ("gettext" ,gettext-minimal)))
+     (list flex gettext-minimal))
     (home-page "http://docpp.sourceforge.net/")
     (synopsis "Documentation system for C, C++, IDL, and Java")
     (description
@@ -281,13 +274,11 @@ or Java class files.")
                             (assoc-ref %build-inputs "docbook-xml")
                             "/xml/dtd/docbook/catalog.xml"))))
     (inputs
-     `(("perl" ,perl)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ;; The configure script checks for either version 4.2 or 4.1.2.
-       ("docbook-xml" ,docbook-xml-4.2)))
+     (list perl libxml2 libxslt
+           ;; The configure script checks for either version 4.2 or 4.1.2.
+           docbook-xml-4.2))
     (native-inputs
-     `(("intltool" ,intltool)))
+     (list intltool))
     (home-page "http://scrollkeeper.sourceforge.net/")
     (synopsis "Open Documentation Cataloging Project")
     (description "ScrollKeeper is a cataloging system for documentation on open
@@ -329,8 +320,7 @@ local system.")
                    `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))
                  #t))))))
       (native-inputs
-       `(("extra-cmake-modules" ,extra-cmake-modules)
-         ("pkg-config" ,pkg-config)))
+       (list extra-cmake-modules pkg-config))
       (inputs
        `(("libarchive" ,libarchive)
          ("sqlite" ,sqlite)
diff --git a/gnu/packages/dunst.scm b/gnu/packages/dunst.scm
index ce2c04bac6..998470e411 100644
--- a/gnu/packages/dunst.scm
+++ b/gnu/packages/dunst.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
+;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,16 +39,16 @@
 (define-public dunst
   (package
     (name "dunst")
-    (version "1.6.1")
+    (version "1.7.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                     (url "https://github.com/dunst-project/dunst")
-                     (commit (string-append "v" version))))
+                    (url "https://github.com/dunst-project/dunst")
+                    (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0lga1kj2vjbj9g9rl93nivngjmk5fkxdxwal8w96x9whwk9jvdga"))))
+                "1ra0ii805w3rrs0qqbjxzl6i79ksz42lnvbglw18h4igkza21kzj"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
@@ -62,22 +63,21 @@
        #:phases (modify-phases %standard-phases
                   (delete 'configure))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("perl" ,perl)                   ; for pod2man
-       ("which" ,which)))
+     (list pkg-config perl ; for pod2man
+           which))
     (inputs
-     `(("dbus" ,dbus)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)   ; for svg support
-       ("glib" ,glib)
-       ("cairo" ,cairo)
-       ("pango" ,pango)
-       ("libnotify" ,libnotify)         ; for dunstify
-       ("libx11" ,libx11)
-       ("libxscrnsaver" ,libxscrnsaver)
-       ("libxinerama" ,libxinerama)
-       ("libxrandr" ,libxrandr)
-       ("libxdg-basedir" ,libxdg-basedir)
-       ("wayland" ,wayland)))           ; for wayland support
+     (list dbus
+           librsvg ; for svg support
+           glib
+           cairo
+           pango
+           libnotify ; for dunstify
+           libx11
+           libxscrnsaver
+           libxinerama
+           libxrandr
+           libxdg-basedir
+           wayland))           ; for wayland support
     (home-page "https://dunst-project.org/")
     (synopsis "Customizable and lightweight notification daemon")
     (description
diff --git a/gnu/packages/dvtm.scm b/gnu/packages/dvtm.scm
index 8515c5d06b..8c39bb7c03 100644
--- a/gnu/packages/dvtm.scm
+++ b/gnu/packages/dvtm.scm
@@ -41,7 +41,7 @@
       #:phases (modify-phases %standard-phases
                  (delete 'configure)
                  (delete 'check))))  ; no test suite
-   (inputs `(("ncurses" ,ncurses)))
+   (inputs (list ncurses))
    (synopsis "Tiling window management for the console")
    (description "dvtm brings the concept of tiling window management,
 popularized by X11-window managers like dwm, to the console.  As a console
diff --git a/gnu/packages/easyrpg.scm b/gnu/packages/easyrpg.scm
index 591be38448..e4a1e2fb42 100644
--- a/gnu/packages/easyrpg.scm
+++ b/gnu/packages/easyrpg.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
-;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -51,11 +51,10 @@
                 "0n2k4brd264jg9p6918x7dnb2iimpzjh8q3v1fws58450xbgnkqc"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
      ;; Required by 'liblcf.pc'.
-     `(("expat" ,expat)
-       ("icu" ,icu4c)))
+     (list expat icu4c))
     (home-page "https://easyrpg.org/")
     (synopsis "Library to handle RPG Maker 2000 and 2003 game data")
     (description
@@ -91,23 +90,23 @@ It can read and write LCF and XML files.")
        (list (string-append "--with-bash-completion-dir="
                             %output "/etc/bash_completion.d/"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("freetype" ,freetype)
-       ("harfbuzz" ,harfbuzz)
-       ("liblcf" ,liblcf)
-       ("libpng" ,libpng)
-       ("libsndfile" ,libsndfile)
-       ("libvorbis" ,libvorbis)
-       ("libxmp" ,libxmp)
-       ("mpg123" ,mpg123)
-       ("opusfile" ,opusfile)
-       ("pixman" ,pixman)
-       ("sdl2-mixer" ,sdl2-mixer)
-       ("sdl2" ,sdl2)
-       ("speexdsp" ,speexdsp)
-       ;; ("wildmidi" ,wildmidi)      ; TODO: package it
-       ("zlib" ,zlib)))
+     (list freetype
+           harfbuzz
+           liblcf
+           libpng
+           libsndfile
+           libvorbis
+           libxmp
+           mpg123
+           opusfile
+           pixman
+           sdl2-mixer
+           sdl2
+           speexdsp
+           wildmidi
+           zlib))
     (home-page "https://easyrpg.org/")
     (synopsis "Play RPG Maker 2000 and 2003 games")
     (description
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 61017ec733..393b439b5c 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,6 +36,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system qt)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages compression)
@@ -108,7 +110,7 @@
          "0wpn9ijlsmrpyiwg3drmgz4dms1i1i347adgqw37bkrh3vn6yq16"))))
     (build-system python-build-system)
     (inputs
-     `(("chmlib" ,chmlib)))
+     (list chmlib))
     (home-page "https://github.com/dottedmag/pychm")
     (synopsis "Handle CHM files")
     (description "This package provides a Python module for interacting
@@ -148,11 +150,11 @@ with Microsoft Compiled HTML (CHM) files")
                                  "calibre-remove-test-unrar.patch"))))
     (build-system python-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qtbase" ,qtbase-5) ; for qmake
-       ("python-flake8" ,python-flake8)
-       ("python-pyqt-builder" ,python-pyqt-builder)
-       ("xdg-utils" ,xdg-utils)))
+     (list pkg-config
+           qtbase-5 ; for qmake
+           python-flake8
+           python-pyqt-builder
+           xdg-utils))
     (inputs
      `(("fontconfig" ,fontconfig)
        ("font-liberation" ,font-liberation)
@@ -366,16 +368,51 @@ e-books for convenient reading.")
      `(#:tests? #f)) ; No 'test' target
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libzip" ,libzip)
-       ("libxml2" ,libxml2)))
+     (list libzip libxml2))
     (home-page "http://ebook-tools.sourceforge.net")
     (synopsis "Tools and library for dealing with various ebook file formats")
     (description "This package provides command-line tools and a library for
 accessing and converting various ebook file formats.")
     (license license:expat)))
 
+(define-public inkbox
+  (package
+    (name "inkbox")
+    (version "1.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://alpinekobox.ddns.net/InkBox/inkbox/")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "126cqn0ixcn608lv2hd9f7zmzj4g448bnpxc7wv9cvg83qqajh5n"))))
+    (build-system qt-build-system)
+    (arguments
+     '(#:tests? #f                      ; no test suite
+       #:make-flags
+       (list (string-append "PREFIX="
+                            (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'prefix-opt
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "inkbox.pro"
+               (("/opt/\\$\\$\\{TARGET\\}") (string-append (assoc-ref outputs "out"))))))
+         (replace 'configure
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke (cons "qmake" make-flags)))))))
+    (native-inputs
+     (list qtbase-5))
+    (home-page "https://alpinekobox.ddns.net/InkBox/inkbox/")
+    (synopsis "EBook reader")
+    (description "This package provides InkBox eBook reader.")
+    (license license:gpl3)))
+
 (define-public liblinebreak
   (package
     (name "liblinebreak")
@@ -529,26 +566,26 @@ following formats:
        ("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)))
     (inputs
-     `(("file" ,file)
-       ("granite" ,granite)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gst-libav" ,gst-libav)
-       ("gst-plugins-bad" ,gst-plugins-bad)
-       ("gst-plugins-good" ,gst-plugins-good)
-       ("gst-plugins-ugly" ,gst-plugins-ugly)
-       ("gtk+" ,gtk+)
-       ("libdazzle" ,libdazzle)
-       ("libgee" ,libgee)
-       ("libhandy" ,libhandy)
-       ("python-distro" ,python-distro)
-       ("python-gst" ,python-gst)
-       ("python-mutagen" ,python-mutagen)
-       ("python-packaging" ,python-packaging)
-       ("python-peewee" ,python-peewee)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)
-       ("python-pytz" ,python-pytz)
-       ("python-requests" ,python-requests)))
+     (list file
+           granite
+           gsettings-desktop-schemas
+           gst-libav
+           gst-plugins-bad
+           gst-plugins-good
+           gst-plugins-ugly
+           gtk+
+           libdazzle
+           libgee
+           libhandy
+           python-distro
+           python-gst
+           python-mutagen
+           python-packaging
+           python-peewee
+           python-pycairo
+           python-pygobject
+           python-pytz
+           python-requests))
     (home-page "https://cozy.geigi.de/")
     (synopsis "Modern audiobook player using GTK+")
     (description
@@ -587,10 +624,9 @@ Some of the current features:
                 "0b12ym7cn65wy268kbksyhakicwb053c8xfn76q2dawrvbras9dj"))))
     (build-system gnu-build-system)
     (inputs
-     `(("wxwidgets" ,wxwidgets)
-       ("chmlib" ,chmlib)))
+     (list wxwidgets chmlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/rzvncj/xCHM")
     (synopsis "CHM file viewer")
     (description "xCHM is a graphical CHM file viewer.  It is a frontend to
@@ -612,12 +648,9 @@ the CHM library CHMLIB.")
                 "0yps72cm609xn2k7alflkdhp9kgr1w7zzyxjygz0n1kqrdcplihh"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (inputs
-     `(("zlib" ,zlib)
-       ("libxml2" ,libxml2)))
+     (list zlib libxml2))
     (home-page "https://github.com/bfabiszewski/libmobi/")
     (synopsis "C library for handling MOBI formats")
     (description "Libmobi is a C library for handling MOBI ebook
diff --git a/gnu/packages/ed.scm b/gnu/packages/ed.scm
index accc461e9b..a42ba40102 100644
--- a/gnu/packages/ed.scm
+++ b/gnu/packages/ed.scm
@@ -37,7 +37,7 @@
               (base32
                "0m2yrkfjjraakxr98nsiakqrn351h99n706x9asgmdi57j43kpki"))))
     (build-system gnu-build-system)
-    (native-inputs `(("lzip" ,lzip)))
+    (native-inputs (list lzip))
     (arguments
      '(#:configure-flags '("CC=gcc")
        #:phases
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 0ba7bc6848..efb2df474e 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -140,7 +140,7 @@ of categories with some of the activities available in that category.
 (define-public gcompris-qt
   (package
     (name "gcompris-qt")
-    (version "1.1")
+    (version "2.0")
     (source
      (origin
        (method url-fetch)
@@ -148,7 +148,7 @@ of categories with some of the activities available in that category.
              "https://gcompris.net/download/qt/src/gcompris-qt-"
              version ".tar.xz"))
        (sha256
-        (base32 "1bpjwrv83rhikbycpyfpf6dbqr0xfq6amgdpqfgfph6nzr3zka7h"))))
+        (base32 "1ix8wf0mpcwg0bd0fbx594ywhf0r0g0xhkbnjpm2ags8ixh4ddcs"))))
     (build-system qt-build-system)
     (arguments
      `(#:phases
@@ -159,28 +159,27 @@ of categories with some of the activities available in that category.
              (system "Xvfb :1 &")
              (setenv "DISPLAY" ":1")
              ;; The test suite wants to write to /homeless-shelter
-             (setenv "HOME" (getcwd))
-             #t)))
+             (setenv "HOME" (getcwd)))))
        #:configure-flags (list "-DQML_BOX2D_MODULE=disabled"
                                "-DBUILD_TESTING=TRUE")))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("gettext" ,gettext-minimal)
-       ("kdoctools" ,kdoctools)
-       ("perl" ,perl)
-       ("qttools" ,qttools)
-       ("xorg-server" ,xorg-server-for-tests)))
+     (list extra-cmake-modules
+           gettext-minimal
+           kdoctools
+           perl
+           qttools
+           xorg-server-for-tests))
     (inputs
-     `(("openssl" ,openssl)
-       ("python" ,python-wrapper)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtgraphicaleffects" ,qtgraphicaleffects)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtquickcontrols" ,qtquickcontrols)
-       ("qtsensors" ,qtsensors)
-       ("qtsvg" ,qtsvg)
-       ("qtxmlpatterns" ,qtxmlpatterns)))
+     (list openssl
+           python-wrapper
+           qtbase-5
+           qtdeclarative
+           qtgraphicaleffects
+           qtmultimedia
+           qtquickcontrols
+           qtsensors
+           qtsvg
+           qtxmlpatterns))
     (home-page "https://gcompris.net/index-en.html")
     (synopsis "Educational games for small children")
     (description
@@ -196,9 +195,9 @@ Currently available boards include:
 @item recognize letters after hearing their names
 @item reading practice
 @item small games (memory games, jigsaw puzzles, ...)
-@end enumerate\n")
+@end enumerate")
     (license (list license:silofl1.1    ; bundled fonts
-                   license:gpl3+))))
+                   license:agpl3+))))
 
 (define-public gotypist
   (let ((revision "0")
@@ -241,8 +240,7 @@ Currently available boards include:
                  (with-directory-excursion bin
                    (rename-file "v1" "gotypist"))))))))
       (native-inputs
-       `(("go-github-com-gizak-termui" ,go-github-com-gizak-termui)
-         ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
+       (list go-github-com-gizak-termui go-github-com-stretchr-testify))
       (home-page "https://github.com/KappaDistributive/gotypist")
       (synopsis "Simple typing trainer for text terminals")
       (description
@@ -297,8 +295,7 @@ frequently used words in American English.")
                ;; Recreate Makefile
                (invoke "qmake")))))))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtmultimedia" ,qtmultimedia)))
+     (list qtbase-5 qtmultimedia))
     (home-page "https://www.tipp10.com/")
     (synopsis "Touch typing tutor")
     (description "Tipp10 is a touch typing tutor.  The ingenious thing about
@@ -337,17 +334,16 @@ easy.")
            ;; Replace the sole minified file in the package.
            (with-directory-excursion (string-append share "/src")
              (delete-file "FileSaver.min.js")
-             (symlink (string-append (assoc-ref %build-inputs "js-filesaver")
-                                     "/share/javascript/FileSaver.min.js")
+             (symlink (search-input-file %build-inputs
+                                         "/share/javascript/FileSaver.min.js")
                       "FileSaver.min.js"))
            ;; Create a "snap" executable.
            (let* ((bin (string-append out "/bin"))
                   (script (string-append bin "/snap"))
                   (snap (string-append share "/snap.html"))
-                  (bash (string-append (assoc-ref %build-inputs "bash")
-                                       "/bin/sh"))
-                  (xdg-open (string-append (assoc-ref %build-inputs "xdg-utils")
-                                           "/bin/xdg-open")))
+                  (bash (search-input-file %build-inputs "/bin/sh"))
+                  (xdg-open (search-input-file %build-inputs
+                                               "/bin/xdg-open")))
              (mkdir-p bin)
              (call-with-output-file script
                (lambda (port)
@@ -429,9 +425,9 @@ to open the application in a web browser, for offline usage.")
                            out)))
                #t))))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (inputs
-     `(("python-pyqt" ,python-pyqt)))
+     (list python-pyqt))
     (synopsis "School tools for physically disabled children")
     (description "ToutEnClic is intended to facilitate the schooling
 of physically disabled children in ordinary schools.  It is both
@@ -564,8 +560,7 @@ letters of the alphabet, spelling, eye-hand coordination, etc.")
            #t))))
     (build-system python-build-system)
     (inputs
-     `(("python2-pygame" ,python2-pygame)
-       ("python2-pygtk" ,python2-pygtk)))
+     (list python2-pygame python2-pygtk))
     (arguments
      `(#:tests? #f                      ;no test
        #:python ,python-2
@@ -589,10 +584,9 @@ letters of the alphabet, spelling, eye-hand coordination, etc.")
                ;; Install the launcher.
                (let* ((bin (string-append out "/bin"))
                       (script (string-append bin "/omnitux"))
-                      (bash (string-append (assoc-ref %build-inputs "bash")
-                                           "/bin/bash"))
-                      (python (string-append (assoc-ref %build-inputs "python")
-                                             "/bin/python2")))
+                      (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 ()
@@ -650,14 +644,16 @@ Portuguese, Spanish and Italian.")
 (define-public fet
   (package
     (name "fet")
-    (version "6.0.4")
+    (version "6.2.2")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://www.lalescu.ro/liviu/fet/download/"
-                           "fet-" version ".tar.bz2"))
+       (uri (let ((directory "https://www.lalescu.ro/liviu/fet/download/")
+                  (base (string-append "fet-" version ".tar.bz2")))
+              (list (string-append directory base)
+                    (string-append directory "old/" base))))
        (sha256
-        (base32 "16yajwbvm2ain1p2h81qfm8pbrdp70zljck67j9yijwyr6xqdj2a"))))
+        (base32 "1x8m543n88iqprh4zccx1zcfm20balmh0h6syrbv03cszmkvfw07"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -668,12 +664,11 @@ Portuguese, Spanish and Italian.")
                                 "src/src.pro"
                                 "src/src-cl.pro"
                                 "src/interface/fet.cpp")
-               (("/usr") (assoc-ref outputs "out")))
-             #t))
+               (("/usr") (assoc-ref outputs "out")))))
          (replace 'configure
            (lambda _ (invoke "qmake" "fet.pro"))))))
     (inputs
-     `(("qtbase" ,qtbase)))
+     (list qtbase))
     (home-page "https://www.lalescu.ro/liviu/fet/")
     (synopsis "Timetabling software")
     (description
@@ -699,14 +694,9 @@ hours.")
          (base32 "0z6c3lqikk50mkz3ipm93l48qj7b98lxyip8y6ndg9y9k0z0n878"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("cairo" ,cairo)
-       ("curl" ,curl)
-       ("gtk+" ,gtk+)
-       ("gtkdatabox" ,gtkdatabox)
-       ("pango" ,pango)))
+     (list cairo curl gtk+ gtkdatabox pango))
     (home-page "https://klavaro.sourceforge.io/en/index.html")
     (synopsis "Touch typing tutor")
     (description
@@ -727,32 +717,30 @@ language and very flexible regarding to new or unknown keyboard layouts.")
          (base32 "10lm2p8w26c9n6lhvw3301myfss0dq7hl7rawzb3hsy1lqvmvdib"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules kdoctools pkg-config))
     (inputs
-     `(("kcmutils" ,kcmutils)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kdeclarative" ,kdeclarative)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kitemviews" ,kitemviews)
-       ("kqtquickcharts" ,kqtquickcharts)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libxcb" ,libxcb)
-       ("libxkbfile" ,libxkbfile)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtgraphicaleffects" ,qtgraphicaleffects)
-       ("qtquickcontrols2" ,qtquickcontrols2)
-       ("qtx11extras" ,qtx11extras)
-       ("qtxmlpatterns" ,qtxmlpatterns)))
+     (list kcmutils
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kdeclarative
+           ki18n
+           kiconthemes
+           kitemviews
+           kqtquickcharts
+           ktextwidgets
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libxcb
+           libxkbfile
+           qtbase-5
+           qtdeclarative
+           qtgraphicaleffects
+           qtquickcontrols2
+           qtx11extras
+           qtxmlpatterns))
     (home-page "https://edu.kde.org/ktouch/")
     (synopsis "Touch typing tutor")
     (description
@@ -782,11 +770,10 @@ adjust the level of difficulty.")
           (base32 "0dz63m9p4ggzw0yb309qmgnl664qb5q268vaa3i9v0i8qsl66d78"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("gettext" ,gettext-minimal)   ; for msgfmt
-         ("pkg-config" ,pkg-config)))
+       (list gettext-minimal ; for msgfmt
+             pkg-config))
       (inputs
-       `(("libxml2" ,libxml2)
-         ("gtk+" ,gtk+)))
+       (list libxml2 gtk+))
       (home-page "https://kanatest.sourceforge.io/")
       (synopsis "Hiragana and Katakana simple flashcard tool")
       (description "Kanatest is a Japanese kana (Hiragana and Katakana) simple
@@ -867,7 +854,7 @@ stored and user can review his performance in any time.")
                          (find-files bin ".")))
              #t)))))
     (native-inputs
-     `(("xdg-utils" ,xdg-utils)))
+     (list xdg-utils))
     (inputs
      `(("lame" ,lame)
        ("mpv" ,mpv)
@@ -921,8 +908,13 @@ endless.  For example:
        (file-name (git-file-name name version))
        (sha256
         (base32 "13q02xpmps9qg8zrzzy2gzv4a6afgi28lxk4z242j780v0gphchp"))
-       (patches
-        (search-patches "t4k-common-libpng16.patch"))))
+       (patches (search-patches "t4k-common-libpng16.patch"))
+       (modules '((guix build utils)))
+       (snippet
+        `(begin
+           (substitute* "src/t4k_common.h"
+             (("char wrapped_lines") "extern char wrapped_lines"))
+           #t))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ;FIXME: cannot find how to run tests
@@ -942,7 +934,7 @@ endless.  For example:
                                "/share/fonts/truetype")))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("font-andika" ,font-sil-andika)
        ("libpng" ,libpng)
@@ -972,6 +964,9 @@ TuxMath and TuxType.")
        ;; Unbundle fonts.
        (snippet
         `(begin
+           ;; Remove duplicate definition.
+           (substitute* "src/menu_lan.c"
+             (("lan_player_type.*MAX_CLIENTS\\];") ""))
            (for-each delete-file (find-files "data/fonts" "\\.ttf$"))
            #t))))
     (build-system gnu-build-system)
@@ -997,7 +992,7 @@ TuxMath and TuxType.")
                                      "tuxmath\\.(png|ico|svg)$"))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("librsvg" ,librsvg)
        ("libxml2" ,libxml2)
@@ -1031,9 +1026,9 @@ floating through space.")
          "0psbdzirazfnn02hp3gsx7xxss9f1brv4ywp6a15ihvggjki1rxb"))))
     (build-system gnu-build-system)
     (native-inputs ; Required for building docs
-     `(("perl" ,perl)))
+     (list perl))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (synopsis "C library for accessing Japanese CD-ROM books")
     (description "The EB library is a library for accessing CD-ROM
 books, which are a common way to distribute electronic dictionaries in
@@ -1060,16 +1055,16 @@ formats.")
     (arguments
      '(#:tests? #f)) ; no test target
     (native-inputs
-     `(("qttools", qttools)))
+     (list qttools))
     (inputs
-     `(("libeb" ,libeb)
-       ("qtbase" ,qtbase-5)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtquickcontrols2" ,qtquickcontrols2)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtwebchannel" ,qtwebchannel)
-       ("qtwebengine" ,qtwebengine)
-       ("zlib" ,zlib)))
+     (list libeb
+           qtbase-5
+           qtmultimedia
+           qtquickcontrols2
+           qtdeclarative
+           qtwebchannel
+           qtwebengine
+           zlib))
     (synopsis "EPWING dictionary reader")
     (description "qolibri is a dictionary viewer for the EPWING dictionary
 format.  Most monolingual Japanese dictionaries can only be found in the
@@ -1093,16 +1088,14 @@ EPWING format.")
     (arguments
      `(#:configure-flags (list "--enable-gui=yes" "-with-readline=yes")))
     (native-inputs
-     `(("flex" ,flex)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list flex intltool pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libglade" ,libglade)
-       ("ncurses" ,ncurses)
-       ("pango" ,pango)
-       ("readline" ,readline)))
+     (list glib
+           gtk+
+           libglade
+           ncurses
+           pango
+           readline))
     (home-page "https://www.gnu.org/software/mdk/manual/")
     (synopsis "Virtual development environment for Knuth's MIX")
     (description
diff --git a/gnu/packages/efi.scm b/gnu/packages/efi.scm
index 8bbd873435..4625538d26 100644
--- a/gnu/packages/efi.scm
+++ b/gnu/packages/efi.scm
@@ -143,12 +143,12 @@ information.")
              (setenv "CC" "gcc")
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("bash" ,bash)
-       ("help2man" ,help2man)
-       ("pkg-config" ,pkg-config)
-       ("util-linux" ,util-linux))) ; getopt
+     (list autoconf
+           automake
+           bash
+           help2man
+           pkg-config
+           util-linux)) ; getopt
     (inputs
      `(("gnu-efi" ,gnu-efi)
        ("libuuid" ,util-linux "lib")
@@ -202,13 +202,9 @@ information.")
              #t))
          (delete 'configure))))
     (native-inputs
-     `(("help2man" ,help2man)
-       ("perl" ,perl)
-       ("perl-file-slurp" ,perl-file-slurp)
-       ("sbsigntools" ,sbsigntools)))
+     (list help2man perl perl-file-slurp sbsigntools))
     (inputs
-     `(("gnu-efi" ,gnu-efi)
-       ("openssl" ,openssl)))
+     (list gnu-efi openssl))
     (synopsis "EFI tools (key management, variable management)")
     (description "This package provides EFI tools for EFI key management
 and EFI variable management.")
@@ -257,7 +253,7 @@ and EFI variable management.")
                                           "/libexec"))
              #t)))))
     (inputs
-     `(("gnu-efi" ,gnu-efi)))
+     (list gnu-efi))
     (synopsis "Minimal Linux loader for UEFI")
     (description "This package provides a minimal Linux loader as an UEFI
 program.")
diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm
index 0e985c9750..3f4409764f 100644
--- a/gnu/packages/electronics.scm
+++ b/gnu/packages/electronics.scm
@@ -94,14 +94,10 @@ to take care of the OS-specific details when writing software that uses serial p
                                               "/share/doc/libsigrokdecode"))
              #t)))))
     (native-inputs
-     `(("check" ,check-0.14)
-       ("doxygen" ,doxygen)
-       ("graphviz" ,graphviz)
-       ("pkg-config" ,pkg-config)))
+     (list check-0.14 doxygen graphviz pkg-config))
     ;; libsigrokdecode.pc lists "python" in Requires.private, and "glib" in Requires.
     (propagated-inputs
-     `(("glib" ,glib)
-       ("python" ,python)))
+     (list glib python))
     (build-system gnu-build-system)
     (home-page "https://www.sigrok.org/wiki/Libsigrokdecode")
     (synopsis "Library providing (streaming) protocol decoding functionality")
@@ -192,23 +188,19 @@ as simple logic analyzer and/or oscilloscope hardware.")
                 (find-files input-dir ".")))
              #t)))))
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("graphviz" ,graphviz)
-       ("sigrok-firmware-fx2lafw" ,sigrok-firmware-fx2lafw)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen graphviz sigrok-firmware-fx2lafw pkg-config))
     (inputs
-     `(("python" ,python)
-       ("zlib" ,zlib)))
+     (list python zlib))
     ;; libsigrokcxx.pc lists "glibmm" in Requires
     ;; libsigrok.pc lists "libserialport", "libusb", "libftdi" and "libzip" in
     ;; Requires.private and "glib" in Requires
     (propagated-inputs
-     `(("glib" ,glib)
-       ("glibmm" ,glibmm)
-       ("libserialport" ,libserialport)
-       ("libusb" ,libusb)
-       ("libftdi" ,libftdi)
-       ("libzip" ,libzip)))
+     (list glib
+           glibmm
+           libserialport
+           libusb
+           libftdi
+           libzip))
     (build-system gnu-build-system)
     (home-page "https://www.sigrok.org/wiki/Libsigrok")
     (synopsis "Library which provides the basic hardware access drivers for logic
@@ -231,11 +223,9 @@ format support.")
                (base32
                 "1f0a2k8qdcin0pqiqq5ni4khzsnv61l21v1dfdjzayw96qzl9l3i"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("libsigrok" ,libsigrok)
-       ("libsigrokdecode" ,libsigrokdecode)))
+     (list glib libsigrok libsigrokdecode))
     (build-system gnu-build-system)
     (home-page "https://sigrok.org/wiki/Sigrok-cli")
     (synopsis "Command-line frontend for sigrok")
@@ -269,16 +259,15 @@ format support.")
                  (rmdir "doc"))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (inputs
-     `(("boost" ,boost)
-       ("glib" ,glib)
-       ("glibmm" ,glibmm)
-       ("libsigrok" ,libsigrok)
-       ("libsigrokdecode" ,libsigrokdecode)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+     (list boost
+           glib
+           glibmm
+           libsigrok
+           libsigrokdecode
+           qtbase-5
+           qtsvg))
     (home-page "https://www.sigrok.org/wiki/PulseView")
     (synopsis "Qt based logic analyzer, oscilloscope and MSO GUI for sigrok")
     (description "PulseView is a Qt based logic analyzer, oscilloscope and MSO GUI
@@ -319,14 +308,9 @@ individual low-level driver modules.")
                 "0a5ycfc1qdmibvagc82r2mhv2i99m6pndy5i6ixas3j2297g6pgq"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("m4" ,m4)
-       ("pkg-config" ,pkg-config)))
+     (list m4 pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("comedilib" ,comedilib)
-       ("fftw" ,fftw)
-       ("gtk+" ,gtk+)
-       ("gtkdatabox" ,gtkdatabox)))
+     (list alsa-lib comedilib fftw gtk+ gtkdatabox))
     (synopsis "Digital oscilloscope")
     (description "Xoscope is a digital oscilloscope that can acquire signals
 from ALSA, ESD, and COMEDI sources.  This package currently does not include
diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm
index 2bc1d00048..d4f75c9726 100644
--- a/gnu/packages/elf.scm
+++ b/gnu/packages/elf.scm
@@ -100,8 +100,8 @@
                (("run-backtrace-native.sh") ""))
              #t)))))
 
-    (native-inputs `(("m4" ,m4)))
-    (inputs `(("zlib" ,zlib)))
+    (native-inputs (list m4))
+    (inputs (list zlib))
     (home-page "https://sourceware.org/elfutils/")
     (synopsis "Collection of utilities and libraries to handle ELF files and
 DWARF data")
@@ -175,8 +175,8 @@ object or archive file), @command{eu-strip} (for discarding symbols),
        ("python-sphinx" ,python-sphinx)
        ("python" ,python)))             ;for tests
     (propagated-inputs
-     `(("elfutils" ,elfutils)           ;libabigail.la says -lelf
-       ("libxml2" ,libxml2)))           ;in Requires.private of libabigail.pc
+     (list elfutils ;libabigail.la says -lelf
+           libxml2))           ;in Requires.private of libabigail.pc
     (synopsis "Analyze application binary interfaces (ABIs)")
     (description
      "@dfn{ABIGAIL} stands for the Application Binary Interface Generic
@@ -230,9 +230,9 @@ static analysis of the ELF binaries at hand.")
                            "/" file) "."))
                        '("config.sub" "config.guess")))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ;; For up-to-date 'config.guess' and 'config.sub'
-       ("automake" ,automake)))
+     (list autoconf
+           ;; For up-to-date 'config.guess' and 'config.sub'
+           automake))
     (home-page (string-append "https://web.archive.org/web/20181111033959/"
                               "http://www.mr511.de/software/english.html"))
     (synopsis "ELF object file access library")
diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
index c186b20b44..87177acce0 100644
--- a/gnu/packages/elixir.scm
+++ b/gnu/packages/elixir.scm
@@ -35,7 +35,7 @@
 (define-public elixir
   (package
     (name "elixir")
-    (version "1.12.0")
+    (version "1.12.3")
     (source
      (origin
        (method git-fetch)
@@ -44,7 +44,7 @@
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0nx0ajbpib0hxpxz33p1kr3rqgvf35vkx91sh427qcjqy7964z16"))
+        (base32 "07fisdx755cgyghwy95gvdds38sh138z56biariml18jjw5mk3r6"))
        (patches (search-patches "elixir-path-length.patch"))))
     (build-system gnu-build-system)
     (arguments
@@ -56,8 +56,7 @@
        (modify-phases %standard-phases
          (add-after 'unpack 'make-git-checkout-writable
            (lambda _
-             (for-each make-file-writable (find-files "."))
-             #t))
+             (for-each make-file-writable (find-files "."))))
          (add-after 'make-git-checkout-writable 'replace-paths
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -82,8 +81,7 @@
                     "; fi")))
                (substitute* "bin/mix"
                  (("#!/usr/bin/env elixir")
-                  (string-append "#!" out "/bin/elixir"))))
-             #t))
+                  (string-append "#!" out "/bin/elixir"))))))
          (add-before 'build 'make-current
            ;; The Elixir compiler checks whether or not to compile files by
            ;; inspecting their timestamps.  When the timestamp is equal to the
@@ -93,17 +91,14 @@
              (for-each (lambda (file)
                          (let ((recent 1400000000))
                            (utime file recent recent 0 0)))
-                       (find-files "." ".*"))
-             #t))
+                       (find-files "." ".*"))))
          (add-before 'check 'set-home
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Some tests require access to a home directory.
-             (setenv "HOME" "/tmp")
-             #t))
+             (setenv "HOME" "/tmp")))
          (delete 'configure))))
     (inputs
-     `(("erlang" ,erlang)
-       ("git" ,git)))
+     (list erlang git))
     (home-page "https://elixir-lang.org/")
     (synopsis "Elixir programming language")
     (description "Elixir is a dynamic, functional language used to build
diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm
index feaa9c8d5c..ca7c61041b 100644
--- a/gnu/packages/elm.scm
+++ b/gnu/packages/elm.scm
@@ -52,42 +52,32 @@
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'update-constraints
+         (add-before 'configure 'update-constraints
            (lambda _
              (substitute* "elm.cabal"
-               (("ansi-terminal >= 0\\.8 && < 0\\.9,")
-                "ansi-terminal >= 0.8 && < 0.10,")
-               (("containers >= 0\\.5\\.8\\.2 && < 0\\.6,")
-                "containers >= 0.5.8.2 && < 0.7,")
-               (("http-client >= 0\\.5 && < 0\\.6,")
-                "http-client >= 0.5 && < 0.7,")
-               (("language-glsl >= 0\\.0\\.2 && < 0\\.3,")
-                "language-glsl >= 0.0.2 && < 0.4,")
-               (("network >= 2\\.4 && < 2\\.7,")
-                "network >= 2.4 && < 2.9,"))
-             #t)))))
+               (("(ansi-terminal|containers|network|http-client|language-glsl)\\s+[^,]+" all dep)
+                dep)))))))
     (inputs
-     `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
-       ("ghc-edit-distance" ,ghc-edit-distance)
-       ("ghc-file-embed" ,ghc-file-embed)
-       ("ghc-http" ,ghc-http)
-       ("ghc-http-client" ,ghc-http-client)
-       ("ghc-http-client-tls" ,ghc-http-client-tls)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-language-glsl" ,ghc-language-glsl)
-       ("ghc-logict" ,ghc-logict)
-       ("ghc-network" ,ghc-network)
-       ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-sha" ,ghc-sha)
-       ("ghc-snap-core" ,ghc-snap-core)
-       ("ghc-snap-server" ,ghc-snap-server)
-       ("ghc-unordered-containers"
-        ,ghc-unordered-containers)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-zip-archive" ,ghc-zip-archive)))
+     (list ghc-ansi-terminal
+           ghc-ansi-wl-pprint
+           ghc-edit-distance
+           ghc-file-embed
+           ghc-http
+           ghc-http-client
+           ghc-http-client-tls
+           ghc-http-types
+           ghc-language-glsl
+           ghc-logict
+           ghc-network
+           ghc-raw-strings-qq
+           ghc-scientific
+           ghc-sha
+           ghc-snap-core
+           ghc-snap-server
+           ghc-unordered-containers
+           ghc-utf8-string
+           ghc-vector
+           ghc-zip-archive))
     (home-page "https://elm-lang.org")
     (synopsis "Programming language for Web applications")
     (description
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 5154a7f42c..94a49bdee8 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -47,6 +47,7 @@
 ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
 ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
 ;;; Copyright © 2019, 2020, 2021 Joseph LaFreniere <joseph@lafreniere.xyz>
+;;; Copyright © 2019 Todor Kondić <tk.code@protonmail.com>15669
 ;;; Copyright © 2019 Amar Singh <nly@disroot.org>
 ;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
@@ -55,7 +56,7 @@
 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2019 Stephen Webber <montokapro@gmail.com>
-;;; Copyright © 2019, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2019, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
 ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
 ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
@@ -74,7 +75,6 @@
 ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
 ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
 ;;; Copyright © 2020 Fredrik Salomonsson <plattfot@gmail.com>
-;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
 ;;; Copyright © 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2020, 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
 ;;; Copyright © 2020 Peng Mei Yu <i@pengmeiyu.com>
@@ -103,6 +103,8 @@
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
 ;;; Copyright © 2021 Noisytoot <noisytoot@disroot.org>
 ;;; Copyright © 2021 Simon South <simon@simonsouth.net>
+;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org>
+;;; Copyright © 2021 Brian Kubisiak <brian@kubisiak.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -125,6 +127,7 @@
   #:use-module (guix cvs-download)
   #:use-module (guix download)
   #:use-module (guix bzr-download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix hg-download)
   #:use-module (guix build-system gnu)
@@ -154,6 +157,7 @@
   #:use-module (gnu packages guile)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages haskell-apps)
   #:use-module (gnu packages ibus)
   #:use-module (gnu packages java)
@@ -232,16 +236,16 @@
 (define-public emacs-geiser
   (package
     (name "emacs-geiser")
-    (version "0.17")
+    (version "0.19")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://gitlab.com/emacs-geiser/geiser.git")
+             (url "https://gitlab.com/emacs-geiser/geiser")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "07g1zlf9kmfish2wa6m376xba0nv6n4spw8wbmr90a56xj0qpswc"))))
+        (base32 "1pfdax2wsfyjz4ddfqh54n3lbxhqpg97grj7kgi641lbhppnq02g"))))
     (build-system emacs-build-system)
     (arguments
      '(#:phases
@@ -256,14 +260,11 @@
                          el-files))))
          (add-before 'install 'make-info
            (lambda _
-             ;; XXX: Fix a typo in the ".texi" file below.
-             (substitute* "doc/install.texi"
-               (("\\}\\{NonGNU ELPA\\}") ",NonGNU ELPA}"))
              (with-directory-excursion "doc"
                (invoke "makeinfo" "--no-split"
                        "-o" "geiser.info" "geiser.texi")))))))
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (home-page "https://nongnu.org/geiser/")
     (synopsis "Collection of Emacs modes for Scheme hacking")
     (description
@@ -282,7 +283,7 @@ e.g. emacs-geiser-guile for Guile.")
 (define-public emacs-geiser-guile
   (package
     (name "emacs-geiser-guile")
-    (version "0.17")
+    (version "0.19")
     (source
      (origin
        (method git-fetch)
@@ -291,7 +292,7 @@ e.g. emacs-geiser-guile for Guile.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0iw23nlgqppf6f00ly50m8lq85n9mv244pw3whxv0hynfjxr2ic0"))))
+        (base32 "1r21d61b2l65gr90s2h83xfnjgzc4n9ris4g5n3ifvdi3pyga6k9"))))
     (build-system emacs-build-system)
     (arguments
      '(#:include (cons "^src/" %default-include)
@@ -306,12 +307,11 @@ e.g. emacs-geiser-guile for Guile.")
                ;; loaded, so let's defer that until it is.
                (("\\(geiser-activate-implementation .*\\)" all)
                 (string-append
-                 "(eval-after-load 'geiser-impl '" all ")")))
-             #t)))))
+                 "(eval-after-load 'geiser-impl '" all ")"))))))))
     (inputs
-     `(("guile" ,guile-2.2)))
+     (list guile-3.0))
     (propagated-inputs
-     `(("geiser" ,emacs-geiser)))
+     (list emacs-geiser))
     (home-page "https://nongnu.org/geiser/")
     (synopsis "Guile Scheme support for Geiser")
     (description
@@ -336,8 +336,7 @@ a generic Scheme interaction mode for the GNU Emacs editor.")
          (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("geiser" ,emacs-geiser)
-         ("auto-complete" ,emacs-auto-complete)))
+       (list emacs-geiser emacs-auto-complete))
       (synopsis "Auto-complete backend for geiser")
       (description
        "This package provides an auto-complete source for Scheme projects
@@ -362,7 +361,7 @@ using geiser.")
     (arguments
      `(#:include (cons "^geiser-gauche\\.scm$" %default-include)))
     (native-inputs
-     `(("geiser" ,emacs-geiser)))
+     (list emacs-geiser))
     (home-page "https://gitlab.com/emacs-geiser/gauche")
     (synopsis "Gauche Scheme support for Geiser")
     (description
@@ -403,9 +402,9 @@ a generic Scheme interaction mode for the GNU Emacs editor.")
                  "(eval-after-load 'geiser-impl '" all ")")))
              #t)))))
     (inputs
-     `(("racket" ,racket)))
+     (list racket))
     (propagated-inputs
-     `(("geiser" ,emacs-geiser)))
+     (list emacs-geiser))
     (home-page "https://nongnu.org/geiser/")
     (synopsis "Racket support for Geiser")
     (description
@@ -416,7 +415,7 @@ a generic Scheme interaction mode for the GNU Emacs editor.")
 (define-public emacs-geiser-chez
   (package
     (name "emacs-geiser-chez")
-    (version "0.16")
+    (version "0.17")
     (source
      (origin
        (method git-fetch)
@@ -425,8 +424,7 @@ a generic Scheme interaction mode for the GNU Emacs editor.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0cc1z5z5cpvxa5f3n8kvms0wxlybzcg4l1bh3rwv1l1sb0lk1xzx"))))
+        (base32 "03fc9ahb0pmznkcnxzgpni4clj1zgky6vaqkc94nf8b8swniwkm9"))))
     (build-system emacs-build-system)
     (arguments
      '(#:include (cons "^src/" %default-include)
@@ -447,9 +445,9 @@ a generic Scheme interaction mode for the GNU Emacs editor.")
                 (string-append
                  "(eval-after-load 'geiser-impl '" all ")"))))))))
     (inputs
-     `(("chez-scheme" ,chez-scheme)))
+     (list chez-scheme))
     (propagated-inputs
-     `(("emacs-geiser" ,emacs-geiser)))
+     (list emacs-geiser))
     (home-page "https://nongnu.org/geiser/")
     (synopsis "Support for Chez Scheme in Geiser")
     (description
@@ -459,16 +457,16 @@ a generic Scheme interaction mode for the GNU Emacs editor.")
 (define-public emacs-vc-hgcmd
   (package
     (name "emacs-vc-hgcmd")
-    (version "1.14")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/muffinmad/emacs-vc-hgcmd")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1mm8lnwii53j32v54aahl8sf3ciwymrvc1rgy4nw2m7hcrnjsb78"))))
+    (version "1.14.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/muffinmad/emacs-vc-hgcmd")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1nlaicza4ds325827ks5gb7zn0nc536k2chq8jwbq34ybvxi93wj"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/muffinmad/emacs-vc-hgcmd")
     (synopsis "Version control (VC) backend for the Mercurial command server")
@@ -547,7 +545,7 @@ system.")
                             (string-append out "/share/info/im")))
                          (find-files "man/im" "\\.png$"))))))))
     (inputs
-     `(("inetutils" ,inetutils)))
+     (list inetutils))
     (home-page "https://www.gnu.org/software/hyperbole/")
     (synopsis "The Everyday Hypertextual Information Manager")
     (description
@@ -578,7 +576,7 @@ buffers, directory trees, or the web.")
                   "04zps0d4s99f5a8ahrpyf8b6qw0c1y7rd1bsaq9nc6m4qblsvwc8"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-with-editor" ,emacs-with-editor)))
+       (list emacs-with-editor))
       (home-page "https://github.com/jojojames/hg-histedit")
       (synopsis "Emacs interface to @command{hg histedit}")
       (description "This package provides an Emacs interface to
@@ -633,15 +631,15 @@ when typing parentheses directly or commenting out code line by line.")
 (define-public emacs-project
   (package
     (name "emacs-project")
-    (version "0.6.1")
+    (version "0.8.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/project-" version ".tar"))
        (sha256
-        (base32 "174fli3swbn67qcs9isv70vwrf6r41mak6dbs98gia89rlb71c8v"))))
+        (base32 "1x3zkbjsi04v5ny3yxqrb75vcacrj9kxmpm9mvkp0n07j5g34f68"))))
     (build-system emacs-build-system)
-    (propagated-inputs `(("emacs-xref" ,emacs-xref)))
+    (propagated-inputs (list emacs-xref))
     (home-page "http://elpa.gnu.org/packages/project.html")
     (synopsis "Operations on the current project")
     (description
@@ -652,28 +650,29 @@ some utility functions, and commands using that infrastructure.")
 (define-public git-modes
   (package
     (name "emacs-git-modes")
-    (version "1.3.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "https://github.com/magit/git-modes")
-                     (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0m8qfjj5hzxwyyi34sbk11qz5fix6z80hiki0v0a838sq4f586b6"))))
+    (version "1.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/magit/git-modes")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0aqz65pcqc35h5z4s606f48iqn87h5v9nj3cp6n9yjxa2v7w5hfk"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/magit/git-modes")
     (synopsis "Emacs major modes for Git configuration files")
     (description
      "This package provides Emacs major modes for editing various Git
-configuration files, such as .gitattributes, .gitignore, and .git/config.")
+configuration files, such as @file{.gitattributes}, @file{.gitignore}, and
+@file{.git/config}.")
     (license license:gpl3+)))
 
 (define-public emacs-with-editor
   (package
     (name "emacs-with-editor")
-    (version "3.0.4")
+    (version "3.0.5")
     (source
      (origin
        (method git-fetch)
@@ -682,7 +681,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1bmvkrfnjzrf0ch2mh75cv784mzs64i4f44l91xysapjqv46lfqn"))))
+        (base32 "1pynm4ng4rki2b2ka5dz01p66ygghk69mldsfbxs81d52jqfnx8f"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -692,9 +691,9 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
              (invoke "makeinfo" "--no-split"
                      "-o" "with-editor.info" "with-editor.texi"))))))
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (propagated-inputs
-     `(("emacs-async" ,emacs-async)))
+     (list emacs-async))
     (home-page "https://github.com/magit/with-editor")
     (synopsis "Emacs library for using Emacsclient as EDITOR")
     (description
@@ -766,11 +765,9 @@ on stdout instead of using a socket as the Emacsclient does.")
            (add-after 'emacs-build 'validate-compiled-autoloads
              (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("emacs" ,emacs-no-x)
-         ("git" ,git-minimal)))
+       (list pkg-config emacs-no-x git-minimal))
       (inputs
-       `(("libgit2" ,libgit2)))
+       (list libgit2))
       (home-page "https://github.com/magit/libegit2")
       (synopsis "Emacs bindings for libgit2")
       (description "This is an experimental module written in C providing
@@ -781,7 +778,7 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.")
 (define-public emacs-magit
   (package
     (name "emacs-magit")
-    (version "3.2.1")
+    (version "3.3.0")
     (source
      (origin
        (method git-fetch)
@@ -790,7 +787,7 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "179mgh8l5p7fhfmbg5rz810mhbzsxqsxd66jdb2a68vsazs1jw2m"))))
+        (base32 "0cxyvp2aav27znc7mf6c83q5pddpdniaqkrxn1r8dbgr540qmnpn"))))
     (build-system emacs-build-system)
     (arguments
      `(#:emacs ,emacs-no-x             ;module support is required
@@ -839,15 +836,11 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.")
            (lambda _
              (chdir "lisp"))))))
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (inputs
-     `(("git" ,git)
-       ("perl" ,perl)))
+     (list git perl))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-libgit" ,emacs-libgit)
-       ("emacs-transient" ,emacs-transient)
-       ("emacs-with-editor" ,emacs-with-editor)))
+     (list emacs-dash emacs-libgit emacs-transient emacs-with-editor))
     (home-page "https://magit.vc/")
     (synopsis "Emacs interface for the Git version control system")
     (description
@@ -872,10 +865,8 @@ rebasing, and other common Git operations.")
                (base32
                 "1v1y4fir1plz4kj0cvkcd29wibli4dw7vp4fmbxq4df76d8iy8yd"))))
     (build-system emacs-build-system)
-    (propagated-inputs `(("dash" ,emacs-dash)
-                         ("with-editor" ,emacs-with-editor)
-                         ("magit" ,emacs-magit)
-                         ("transient" ,emacs-transient)))
+    (propagated-inputs (list emacs-dash emacs-with-editor emacs-magit
+                             emacs-transient))
     (home-page "https://github.com/magit/magit-svn")
     (synopsis "Git-SVN extension to Magit")
     (description
@@ -904,9 +895,9 @@ support for Git-SVN.")
            (lambda _
              (invoke "make" "info"))))))
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)))
+     (list emacs-dash))
     (home-page "https://github.com/magit/magit-popup")
     (synopsis "Define prefix-infix-suffix command combos")
     (description
@@ -919,20 +910,19 @@ process, passing on the arguments as command line arguments.")
 (define-public emacs-magit-annex
   (package
     (name "emacs-magit-annex")
-    (version "1.8.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/magit/magit-annex")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0ak4chfn95p2vj3y0wiyimj609a4jfzrfpsc1kn0is1jv3dlkl6c"))))
+    (version "1.8.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/magit/magit-annex")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1amr2c08mq1nnn6k66mgz4rzyni4np7gxm96g4qyla2cbfbachgk"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("magit" ,emacs-magit)
-       ("transient" ,emacs-transient)))
+     (list emacs-magit emacs-transient))
     (home-page "https://github.com/magit/magit-annex/")
     (synopsis "Git-annex support for Magit")
     (description
@@ -942,7 +932,7 @@ process, passing on the arguments as command line arguments.")
 (define-public emacs-minions
   (package
     (name "emacs-minions")
-    (version "0.3.4")
+    (version "0.3.7")
     (source
      (origin
        (method git-fetch)
@@ -951,10 +941,10 @@ process, passing on the arguments as command line arguments.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1rvsfg9aabvyzzxd38kvjwkm9675zcmrfhzj5x6wj0ba3n0k34q5"))))
+        (base32 "1bzxxs8mxaihpjkbxgynhsi39lbbnij28grdc3sk9sq09j9752vw"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)))
+     (list emacs-dash))
     (home-page "https://github.com/tarsius/minions")
     (synopsis "Minor-mode menu for the mode line")
     (description
@@ -1029,8 +1019,7 @@ then only the color of the mode line changes when a window becomes in-/active.")
                    (("\"wal\"") (string-append "\"" python-pywal "/bin/wal\""))))
                #t)))))
       (inputs
-       `(("python" ,python)
-         ("python-pywal" ,python-pywal)))
+       (list python python-pywal))
       (home-page "https://github.com/jcaw/theme-magic")
       (synopsis "Generate and apply color palettes based on your Emacs theme")
       (description
@@ -1077,7 +1066,7 @@ color scheme used by Visual Studio Code.")
           (base32 "1b858049n6nw4qf60fmszjrhl80x7ssh32f7glj722kwy7404kdh"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-autothemer" ,emacs-autothemer)))
+       (list emacs-autothemer))
       (home-page "https://github.com/mtreca/emacs-theme-sorcery")
       (synopsis "Dark and low-contrast Emacs theme")
       (description "Sorcery is a dark and low-contrast Emacs theme inspired by
@@ -1203,7 +1192,7 @@ automatically opened with this mode.")
         (base32 "0rh2k93c3a0vl073a3s3a3h6gkw454v1lyd7y8l3pd24vw9hc628"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("ghq" ,ghq)))
+     (list ghq))
     (home-page "https://github.com/rcoedo/emacs-ghq")
     (synopsis "Emacs interface for @code{ghq} tool")
     (description
@@ -1214,7 +1203,7 @@ organizing remote Go repository clones.")
 (define-public emacs-ghub
   (package
     (name "emacs-ghub")
-    (version "3.5.3")
+    (version "3.5.4")
     (source
      (origin
        (method git-fetch)
@@ -1223,7 +1212,7 @@ organizing remote Go repository clones.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1sn7rzfkm75vj3whhisrjk1s34lz6hc08hmf4nnznbdvyimnd013"))))
+        (base32 "1bc5z63ylb0ir5v9qngyl50svmlfd6hx9lv1ladwywncdpsslls8"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -1232,11 +1221,9 @@ organizing remote Go repository clones.")
            (lambda _
              (invoke "make" "info"))))))
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (propagated-inputs
-     `(("dash" ,emacs-dash)
-       ("emacs-let-alist" ,emacs-let-alist)
-       ("treepy" ,emacs-treepy)))
+     (list emacs-dash emacs-let-alist emacs-treepy))
     (home-page "https://github.com/magit/ghub")
     (synopsis "Emacs client libraries for the APIs of various Git forges")
     (description
@@ -1266,8 +1253,7 @@ handful of functions that are not resource-specific.")
       (arguments
         '(#:include (cons "^dict/" %default-include)))
       (propagated-inputs
-       `(("emacs-f" ,emacs-f)
-         ("emacs-mmt" ,emacs-mmt)))
+       (list emacs-f emacs-mmt))
       (home-page "https://github.com/mrkkrp/typit")
       (synopsis "Typing game for Emacs with two difficulties")
       (description "Emacs Typit is a typing game for Emacs.  Words that are
@@ -1326,18 +1312,14 @@ for editing Racket's Scribble documentation syntax in Emacs.")
          (add-after 'unpack 'expand-load-path
            (assoc-ref emacs:%standard-phases 'expand-load-path)))))
     (native-inputs
-    `(("autoconf" ,autoconf)
-      ("automake" ,automake)
-      ("texinfo" ,texinfo)
-      ("perl" ,perl)
-      ("emacs-minimal" ,emacs-minimal)))
-    (propagated-inputs
-     `(("emacs-bui" ,emacs-bui)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)
-       ("emacs-s" ,emacs-s)
-       ("gnupg" ,gnupg)
-       ("shroud" ,shroud)))
+     (list autoconf automake texinfo perl emacs-minimal))
+    (propagated-inputs
+     (list emacs-bui
+           emacs-dash
+           emacs-f
+           emacs-s
+           gnupg
+           shroud))
     (home-page "https://www.nongnu.org/emacs-shroud")
     (synopsis "Emacs interface to the Shroud password manager")
     (description
@@ -1364,8 +1346,7 @@ from within Emacs.")
           (base32 "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-company" ,emacs-company)
-         ("emacs-flycheck" ,emacs-flycheck)))
+       (list emacs-company emacs-flycheck))
       (home-page "https://github.com/ethereum/emacs-solidity")
       (synopsis "Major mode for writing Solidity code")
       (description
@@ -1391,11 +1372,7 @@ a constant work in progress as the language itself also progresses.")
            "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-org" ,emacs-org)
-         ("emacs-s" ,emacs-s)
-         ("emacs-hydra" ,emacs-hydra)
-         ("emacs-use-package" ,emacs-use-package)))
+       (list emacs-dash emacs-org emacs-s emacs-hydra emacs-use-package))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -1425,79 +1402,73 @@ replacement.")
        (sha256
         (base32 "0zxbacqzr84krmhqpvzndnvlcjh1gs1x20ys0dykgd7chyhci5j5"))))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)))
+     (list emacs-dash))
     (native-inputs
-     `(("emacs" ,emacs-minimal)
-       ("emacs-el-search" ,emacs-el-search)
-       ("emacs-stream" ,emacs-stream)
-       ("texinfo" ,texinfo)))
+     (list emacs-minimal emacs-el-search emacs-stream texinfo))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags (list (string-append "EMACS="
-                                         (assoc-ref %build-inputs "emacs")
-                                         "/bin/emacs"))
-       #:modules ((ice-9 match)
+     (list
+      #:make-flags #~(list
+                      (string-append "EMACS=" #$emacs-minimal "/bin/emacs"))
+      #:modules `((ice-9 match)
                   (srfi srfi-26)
                   ((guix build emacs-build-system) #:prefix emacs:)
                   ,@%gnu-build-system-modules)
-       #:imported-modules (,@%gnu-build-system-modules
+      #:imported-modules `(,@%gnu-build-system-modules
                            (guix build emacs-build-system)
                            (guix build emacs-utils))
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (add-before 'build 'pre-build
-           (lambda* (#:key inputs #:allow-other-keys)
-             (define (el-dir store-dir)
-               (match (find-files store-dir "\\.el$")
-                 ((f1 f2 ...) (dirname f1))
-                 (_ "")))
-
-             (let ((sh (search-input-file inputs "/bin/sh")))
-               (define emacs-prefix? (cut string-prefix? "emacs-" <>))
-
-               (setenv "SHELL" "sh")
-               (setenv "EMACSLOADPATH"
-                       (string-concatenate
-                        (map (match-lambda
-                               (((? emacs-prefix? name) . dir)
-                                (string-append (el-dir dir) ":"))
-                               (_ ""))
-                             inputs)))
-               (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
-               #t)))
-         (add-before 'check 'delete-failing-tests
-           ;; XXX: these tests require GHC executable, which would be a big
-           ;; native input.
-           (lambda _
-             (with-directory-excursion "tests"
-               ;; File `haskell-indent-tests.el' fails with
-               ;; `haskell-indent-put-region-in-literate-2'
-               ;; on Emacs 27.1+
-               ;; XXX: https://github.com/haskell/haskell-mode/issues/1714
-               (for-each delete-file
-                         '("haskell-indent-tests.el"
-                           "haskell-customize-tests.el"
-                           "inferior-haskell-tests.el")))
-             #t))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (el-dir (emacs:elpa-directory out))
-                    (doc (string-append
-                          out "/share/doc/haskell-mode-" ,version))
-                    (info (string-append out "/share/info")))
-               (define (copy-to-dir dir files)
-                 (for-each (lambda (f)
-                             (install-file f dir))
-                           files))
-
-               (with-directory-excursion "doc"
-                 (invoke "makeinfo" "haskell-mode.texi")
-                 (install-file "haskell-mode.info" info))
-               (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
-               (copy-to-dir el-dir (find-files "." "\\.elc?"))
-               #t))))))
+      #:phases
+      #~(modify-phases %standard-phases
+          (delete 'configure)
+          (add-before 'build 'pre-build
+            (lambda* (#:key inputs #:allow-other-keys)
+              (define (el-dir store-dir)
+                (match (find-files store-dir "\\.el$")
+                  ((f1 f2 ...) (dirname f1))
+                  (_ "")))
+
+              (let ((sh (search-input-file inputs "/bin/sh")))
+                (define emacs-prefix? (cut string-prefix? "emacs-" <>))
+
+                (setenv "SHELL" "sh")
+                (setenv "EMACSLOADPATH"
+                        (string-concatenate
+                         (map (match-lambda
+                                (((? emacs-prefix? name) . dir)
+                                 (string-append (el-dir dir) ":"))
+                                (_ ""))
+                              inputs)))
+                (substitute* (find-files "." "\\.el") (("/bin/sh") sh)))))
+          (add-before 'check 'delete-failing-tests
+            ;; XXX: these tests require GHC executable, which would be a big
+            ;; native input.
+            (lambda _
+              (with-directory-excursion "tests"
+                ;; File `haskell-indent-tests.el' fails with
+                ;; `haskell-indent-put-region-in-literate-2'
+                ;; on Emacs 27.1+
+                ;; XXX: https://github.com/haskell/haskell-mode/issues/1714
+                (for-each delete-file
+                          '("haskell-indent-tests.el"
+                            "haskell-customize-tests.el"
+                            "inferior-haskell-tests.el")))))
+          (replace 'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let* ((out (assoc-ref outputs "out"))
+                     (el-dir (emacs:elpa-directory out))
+                     (doc (string-append
+                           out "/share/doc/haskell-mode-" #$version))
+                     (info (string-append out "/share/info")))
+                (define (copy-to-dir dir files)
+                  (for-each (lambda (f)
+                              (install-file f dir))
+                            files))
+
+                (with-directory-excursion "doc"
+                  (invoke "makeinfo" "haskell-mode.texi")
+                  (install-file "haskell-mode.info" info))
+                (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
+                (copy-to-dir el-dir (find-files "." "\\.elc?"))))))))
     (home-page "https://github.com/haskell/haskell-mode")
     (synopsis "Haskell mode for Emacs")
     (description
@@ -1522,13 +1493,13 @@ programs.")
                 (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-f" ,emacs-f)
-         ("emacs-flycheck" ,emacs-flycheck)
-         ("emacs-haskell-mode" ,emacs-haskell-mode)
-         ("emacs-s" ,emacs-s)
-         ("emacs-company" ,emacs-company)
-         ("emacs-lcr" ,emacs-lcr)))
+       (list emacs-dash
+             emacs-f
+             emacs-flycheck
+             emacs-haskell-mode
+             emacs-s
+             emacs-company
+             emacs-lcr))
       (home-page "https://github.com/jyp/dante")
       (synopsis "Minor mode for interactive Haskell")
       (description
@@ -1554,9 +1525,9 @@ supports type hints, definition-jumping, completion, and more.")
          (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)))
+       (list emacs-dash))
       (native-inputs
-       `(("emacs-shut-up" ,emacs-shut-up)))
+       (list emacs-shut-up))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -1585,6 +1556,27 @@ different tools.  It highlights errors and warnings inline in the buffer, and
 provides an optional IDE-like error list.")
       (license license:gpl3+))))                     ;+GFDLv1.3+ for the manual
 
+(define-public emacs-flymake-flycheck
+  (package
+    (name "emacs-flymake-flycheck")
+    (version "20210404.2128")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://melpa.org/packages/flymake-flycheck-"
+                           version ".el"))
+       (sha256
+        (base32 "1m59ahd5gjlfwf328labwdlpcxh8ywywkwgfrlsy5jyxfc9ss4nv"))))
+    (build-system emacs-build-system)
+    (propagated-inputs (list emacs-flycheck))
+    (home-page "https://github.com/purcell/flymake-flycheck")
+    (synopsis "Use Flycheck checkers as Flymake backends")
+    (description
+     "This package provides support for running any Flycheck checker as a
+Flymake diagnostic backend.  The effect is that Flymake will control when the
+checker runs, and Flymake will receive its errors.")
+    (license license:gpl3+)))
+
 (define-public emacs-flymake-quickdef
   ;; This particular commit includes bug fixes on top of 1.0.0 release.
   (let ((version "1.0.0")
@@ -1613,7 +1605,7 @@ boilerplate code from defining new Flymake backend functions.")
 (define-public emacs-flymake-kondor
   (package
     (name "emacs-flymake-kondor")
-    (version "0.0.3")
+    (version "0.1.3")
     (source
      (origin
        (method git-fetch)
@@ -1622,10 +1614,8 @@ boilerplate code from defining new Flymake backend functions.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0h8dqk35r10pxx2w4swb3kij4y2vi17j9wfk978x8lf0wd3h3hsy"))))
+        (base32 "1vcl1q07faqqmrryyia36hbgf78g3cs51pbi0bx41yzz779ribvk"))))
     (build-system emacs-build-system)
-    (propagated-inputs
-     `(("emacs-flymake-quickdef" ,emacs-flymake-quickdef)))
     (home-page "https://github.com/turbo-cafe/flymake-kondor")
     (synopsis "Linter with clj-kondo")
     (description "This package adds Clojure syntax checker clj-kondo.")
@@ -1648,6 +1638,19 @@ boilerplate code from defining new Flymake backend functions.")
          (sha256
           (base32 "04yfb4sy41spjzk9mhm4gy0h8vnjx09p2g6nm1yzgd9a5ph9sqgl"))))
       (build-system emacs-build-system)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'substitute-shellcheck-path
+             (lambda* (#:key inputs #:allow-other-keys)
+               (make-file-writable "flymake-shellcheck.el")
+               (emacs-substitute-sexps "flymake-shellcheck.el"
+                 ("defcustom flymake-shellcheck-path"
+                  `(or (executable-find "shellcheck")
+                       ,(string-append (assoc-ref inputs "shellcheck")
+                                       "/bin/shellcheck")))))))))
+      (inputs
+       (list shellcheck))
       (home-page "https://github.com/federicotdn/flymake-shellcheck")
       (synopsis "Flymake backend for Bash/Sh powered by ShellCheck")
       (description
@@ -1659,7 +1662,7 @@ scripts.")
 (define-public emacs-a
   (package
     (name "emacs-a")
-    (version "0.1.1")
+    (version "1.0.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1667,8 +1670,7 @@ scripts.")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
-               (base32
-                "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
+               (base32 "0zkv4xvw1jdsfxqqkxskl2l380gfs13n86hj4hhzrqf0sb6aymws"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/plexus/a.el/")
     (synopsis
@@ -1722,7 +1724,7 @@ directly.")
       (home-page "https://bitbucket.org/agriggio/ahg")
       (synopsis "Emacs front-end for the Mercurial SCM")
       (description
-       "This packages provides a simple Emacs front-end for the Mercurial
+       "This package provides a simple Emacs front-end for the Mercurial
 Distributed @acronym{Source Control Management, SCM} system.")
       (license license:gpl3+))))
 
@@ -1797,7 +1799,7 @@ skip set strings, which are arguments to @code{skip-chars-forward} and
            "0dkp7bcd7h2ds40wyszy11nmh7c2jxrwy04ayz7pbxh53ir7s2k0"))))
       (build-system emacs-build-system)
       (native-inputs
-       `(("ert-runner" ,emacs-ert-runner)))
+       (list emacs-ert-runner))
       (arguments
        `(#:tests? #t
          #:test-command '("ert-runner" "-l" "ample-regexps")))
@@ -1823,7 +1825,7 @@ and reused.")
         (base32 "1jx17g8a6pxkw4zlx3fwhqgxfzcf3019k8fklykamfrkharzsc2l"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-powerline" ,emacs-powerline)))
+     (list emacs-powerline))
     (home-page "https://github.com/AnthonyDiGirolamo/airline-themes")
     (synopsis "Vim-airline themes for Emacs Powerline")
     (description
@@ -1902,11 +1904,9 @@ optional minor mode which can apply this command automatically on save.")
        `(#:tests? #t
          #:test-command '("ert-runner")))
       (native-inputs
-       `(("ert-runner" ,emacs-ert-runner)))
+       (list emacs-ert-runner))
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-f" ,emacs-f)
-         ("emacs-s" ,emacs-s)))
+       (list emacs-dash emacs-f emacs-s))
       (home-page "https://github.com/emacsattic/relative-buffers")
       (synopsis "Minor mode to rename buffers by project structure")
       (description
@@ -1928,7 +1928,7 @@ project root.")
        (sha256
         (base32 "14z3i01pq5ljhjf5yfcjw7hxljcrwjnizkrdc1qyh9b6h3ic1bbi"))))
     (build-system emacs-build-system)
-    (propagated-inputs `(("emacs-xr" ,emacs-xr)))
+    (propagated-inputs (list emacs-xr))
     (home-page "https://github.com/mattiase/relint")
     (synopsis "Elisp regexp mistake finder")
     (description
@@ -1973,83 +1973,71 @@ or unexpected behavior inside an elisp configuration file (typically
   (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"))))
+    (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"))))
     (build-system gnu-build-system)
-    (native-inputs `(("autoconf" ,autoconf)
-                     ("texinfo" ,texinfo)
-                     ("emacs" ,emacs-minimal)))
-    (inputs `(("w3m" ,w3m)
-              ("imagemagick" ,imagemagick)))
+    (native-inputs (list autoconf texinfo emacs-minimal))
+    (inputs (list w3m imagemagick))
     (arguments
-     `(#:modules ((guix build gnu-build-system)
+     (list
+      #:modules '((guix build gnu-build-system)
                   ((guix build emacs-build-system) #:prefix emacs:)
                   (guix build utils)
                   (guix build emacs-utils))
-       #:imported-modules (,@%gnu-build-system-modules
+      #:imported-modules `(,@%gnu-build-system-modules
                            (guix build emacs-build-system)
                            (guix build emacs-utils))
-       #:configure-flags
-       (let ((out (assoc-ref %outputs "out")))
-         (list (string-append "--with-lispdir="
-                              (emacs:elpa-directory out))
-               (string-append "--with-icondir="
-                              out "/share/images/emacs-w3m")
-               ;; Leave .el files uncompressed, otherwise GC can't
-               ;; identify run-time dependencies.  See
-               ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
-               "--without-compress-install"))
-       #:tests? #f                              ; no check target
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'autoconf
-           (lambda _
-             (invoke "autoconf")))
-         (add-before 'configure 'support-emacs!
-           (lambda _
-             ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
-             ;; unsupported.
-             (substitute* "configure"
-               (("EMACS_FLAVOR=unsupported")
-                "EMACS_FLAVOR=emacs"))
-             #t))
-         (add-before 'build 'patch-exec-paths
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (w3m (assoc-ref inputs "w3m"))
-                   (imagemagick (assoc-ref inputs "imagemagick"))
-                   (coreutils (assoc-ref inputs "coreutils")))
-               (make-file-writable "w3m.el")
-               (emacs-substitute-variables "w3m.el"
-                 ("w3m-command" (string-append w3m "/bin/w3m"))
-                 ("w3m-touch-command"
-                  (string-append coreutils "/bin/touch"))
-                 ("w3m-icon-directory"
-                  (string-append out "/share/images/emacs-w3m")))
-               (make-file-writable "w3m-image.el")
-               (emacs-substitute-variables "w3m-image.el"
-                 ("w3m-imagick-convert-program"
-                  (string-append imagemagick "/bin/convert"))
-                 ("w3m-imagick-identify-program"
-                  (string-append imagemagick "/bin/identify")))
-               #t)))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (invoke "make" "install" "install-icons")
-             (with-directory-excursion
-                 (emacs:elpa-directory (assoc-ref outputs "out"))
-               (for-each delete-file '("ChangeLog" "ChangeLog.1"))
-               (symlink "w3m-load.el" "w3m-autoloads.el")
-               #t))))))
+      #:configure-flags
+      #~(list (string-append "--with-lispdir=" (emacs:elpa-directory #$output))
+              (string-append "--with-icondir="
+                             #$output "/share/images/emacs-w3m")
+              ;; Leave .el files uncompressed, otherwise GC can't
+              ;; identify run-time dependencies.  See
+              ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
+              "--without-compress-install")
+      #:tests? #f                       ; no check target
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'autoconf
+            (lambda _
+              (invoke "autoconf")))
+          (add-before 'configure 'support-emacs!
+            (lambda _
+              ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
+              ;; unsupported.
+              (substitute* "configure"
+                (("EMACS_FLAVOR=unsupported") "EMACS_FLAVOR=emacs"))))
+          (add-before 'build 'patch-exec-paths
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out")))
+                (make-file-writable "w3m.el")
+                (emacs-substitute-variables "w3m.el"
+                  ("w3m-command" (search-input-file inputs "/bin/w3m"))
+                  ("w3m-touch-command" (search-input-file inputs "/bin/touch"))
+                  ("w3m-icon-directory"
+                   (string-append out "/share/images/emacs-w3m")))
+                (make-file-writable "w3m-image.el")
+                (emacs-substitute-variables "w3m-image.el"
+                  ("w3m-imagick-convert-program"
+                   (search-input-file inputs "/bin/convert"))
+                  ("w3m-imagick-identify-program"
+                   (search-input-file inputs "/bin/identify"))))))
+          (replace 'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (invoke "make" "install" "install-icons")
+              (with-directory-excursion
+                  (emacs:elpa-directory (assoc-ref outputs "out"))
+                (for-each delete-file '("ChangeLog" "ChangeLog.1"))
+                (symlink "w3m-load.el" "w3m-autoloads.el")))))))
     (home-page "http://emacs-w3m.namazu.org/")
     (synopsis "Simple Web browser for Emacs based on w3m")
     (description
@@ -2060,25 +2048,25 @@ or unexpected behavior inside an elisp configuration file (typically
   (package
     (name "emacs-wget")
     (version "0.5.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
-                                  version ".orig.tar.gz"))
-              (sha256
-               (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
+                           version ".orig.tar.gz"))
+       (sha256
+        (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
     (build-system emacs-build-system)
-    (inputs `(("wget" ,wget)))
-    (native-inputs `(("emacs" ,emacs-minimal)))
+    (inputs (list wget))
+    (native-inputs
+     (list emacs-minimal))
     (arguments
-     `(#:tests? #f  ; no check target
+     `(#:tests? #f                      ;no check target
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-exec-paths
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((wget (assoc-ref inputs "wget")))
-               (emacs-substitute-variables "wget.el"
-                 ("wget-command" (string-append wget "/bin/wget"))))
-             #t)))))
+             (emacs-substitute-variables "wget.el"
+               ("wget-command" (search-input-file inputs "/bin/wget"))))))))
     (home-page "https://www.emacswiki.org/emacs/EmacsWget")
     (synopsis "Simple file downloader for Emacs based on wget")
     (description
@@ -2117,14 +2105,14 @@ incrementally confined in Isearch manner.")
 (define emacs-emms-print-metadata
   (package
     (name "emacs-emms-print-metadata")
-    (version "7.7")
+    (version "7.8")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "emms-" version ".tar"))
        (sha256
-        (base32 "0n9nx4wgjxkr8nsxcq8svg0x0qkqj7bsd2j0ihy4jzj29xmyxl0h"))))
+        (base32 "1nlb9rrdlbcqghph30r9i9m1brbdha818czbms0zhzdisxb0smi0"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags '("emms-print-metadata")
@@ -2138,10 +2126,9 @@ incrementally confined in Isearch manner.")
                (install-file "src/emms-print-metadata"
                              (string-append out "/bin"))
                (install-file "emms-print-metadata.1"
-                             (string-append out "/share/man/man1"))
-               #t))))))
+                             (string-append out "/share/man/man1"))))))))
     (inputs
-     `(("taglib" ,taglib)))
+     (list taglib))
     (home-page "https://www.gnu.org/software/emms/")
     (synopsis "The Emacs Multimedia System")
     (description
@@ -2163,65 +2150,56 @@ light user interface.")
          (add-after 'unpack 'set-external-programs
            ;; Specify the absolute file names of the various programs
            ;; so that everything works out-of-the-box. (tinytag missing)
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out     (assoc-ref outputs "out"))
-                   (emms-print-metadata (assoc-ref inputs "emms-print-metadata"))
-                   (flac    (assoc-ref inputs "flac"))
-                   (vorbis  (assoc-ref inputs "vorbis-tools"))
-                   (alsa    (assoc-ref inputs "alsa-utils"))
-                   (mpg321  (assoc-ref inputs "mpg321"))
-                   (mp3info (assoc-ref inputs "mp3info"))
-                   (mutagen (assoc-ref inputs "mutagen"))
-                   (exiftool (assoc-ref inputs "perl-image-exiftool"))
-                   (opus    (assoc-ref inputs "opus-tools")))
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((amixer (search-input-file inputs "/bin/amixer"))
+                   (emms-print-metadata
+                    (search-input-file inputs "/bin/emms-print-metadata"))
+                   (exiftool (search-input-file inputs "/bin/exiftool"))
+                   (metaflac (search-input-file inputs "/bin/metaflac"))
+                   (mp3info (search-input-file inputs "/bin/mp3info"))
+                   (mpg321 (search-input-file inputs "/bin/mpg321"))
+                   (mid3v2 (search-input-file inputs "/bin/mid3v2"))
+                   (ogg123 (search-input-file inputs "/bin/ogg123"))
+                   (ogginfo (search-input-file inputs "/bin/ogginfo"))
+                   (opusinfo (search-input-file inputs "/bin/opusinfo"))
+                   (vorbiscomment (search-input-file inputs "/bin/vorbiscomment")))
                (emacs-substitute-variables "emms-player-mpg321-remote.el"
                  ("emms-player-mpg321-remote-command"
                   (string-append mpg321 "/bin/mpg321")))
                (substitute* "emms-player-simple.el"
-                 (("\"ogg123\"")
-                  (string-append "\"" vorbis "/bin/ogg123\"")))
+                 (("\"ogg123\"") (string-append "\"" ogg123 "\"")))
                (substitute* "emms-player-simple.el"
-                 (("\"mpg321\"")
-                  (string-append "\"" mpg321 "/bin/mpg321\"")))
+                 (("\"mpg321\"") (string-append "\"" mpg321 "\"")))
                (emacs-substitute-variables "emms-info-ogginfo.el"
-                 ("emms-info-ogginfo-program-name"
-                  (string-append vorbis "/bin/ogginfo")))
+                 ("emms-info-ogginfo-program-name" ogginfo))
                (emacs-substitute-variables "emms-info-opusinfo.el"
-                 ("emms-info-opusinfo-program-name"
-                  (string-append opus "/bin/opusinfo")))
+                 ("emms-info-opusinfo-program-name" opusinfo))
                (emacs-substitute-variables "emms-info-libtag.el"
-                 ("emms-info-libtag-program-name"
-                  (string-append emms-print-metadata "/bin/emms-print-metadata")))
+                 ("emms-info-libtag-program-name" emms-print-metadata))
                (emacs-substitute-variables "emms-info-mp3info.el"
-                 ("emms-info-mp3info-program-name"
-                  (string-append mp3info "/bin/mp3info")))
+                 ("emms-info-mp3info-program-name" mp3info))
                (emacs-substitute-variables "emms-info-metaflac.el"
-                 ("emms-info-metaflac-program-name"
-                  (string-append flac "/bin/metaflac")))
+                 ("emms-info-metaflac-program-name" metaflac))
                (emacs-substitute-variables "emms-source-file.el"
                  ("emms-source-file-gnu-find" (which "find")))
                (substitute* "emms-volume-amixer.el"
-                 (("\"amixer\"")
-                  (string-append "\"" alsa "/bin/amixer\"")))
+                 (("\"amixer\"") (string-append "\"" amixer "\"")))
                (substitute* "emms-tag-editor.el"
-                 (("\"mid3v2\"")
-                  (string-append "\"" mutagen "/bin/mid3v2\""))
+                 (("\"mid3v2\"") (string-append "\"" mid3v2 "\""))
                  (("\"vorbiscomment\"")
-                  (string-append "\"" vorbis "/bin/vorbiscomment\"")))
+                  (string-append "\"" vorbiscomment "\"")))
                (substitute* "emms-info-exiftool.el"
-                 (("\"exiftool\"")
-                  (string-append "\"" exiftool "/bin/exiftool\"")))
-               #t))))))
+                 (("\"exiftool\"") (string-append "\"" exiftool "\"")))))))))
     (inputs
-     `(("emms-print-metadata" ,emacs-emms-print-metadata)
-       ("alsa-utils" ,alsa-utils)
-       ("flac" ,flac)                   ;for metaflac
-       ("vorbis-tools" ,vorbis-tools)
-       ("mpg321" ,mpg321)
-       ("mp3info" ,mp3info)
-       ("mutagen" ,python-mutagen)
-       ("perl-image-exiftool" ,perl-image-exiftool)
-       ("opus-tools" ,opus-tools)))))
+     (list emacs-emms-print-metadata
+           alsa-utils
+           flac                         ;for metaflac
+           vorbis-tools
+           mpg321
+           mp3info
+           python-mutagen
+           perl-image-exiftool
+           opus-tools))))
 
 (define-public emacs-emms-mode-line-cycle
   (package
@@ -2239,7 +2217,7 @@ light user interface.")
          "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emms" ,emacs-emms)))
+     (list emacs-emms))
     (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
     (synopsis "Display the EMMS mode line as a ticker")
     (description
@@ -2268,7 +2246,7 @@ within a specified width.  It is useful for displaying long track titles.")
          "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-avy" ,emacs-avy)))
+     (list emacs-avy))
     (home-page "https://github.com/abo-abo/ace-link")
     (synopsis "Quickly follow links in Emacs")
     (description
@@ -2294,7 +2272,7 @@ letter to each link using avy.")
        (sha256
         (base32 "1rhdvrj2rjbvl7vkb0wcp6krqxcaigl7jk9z8yvhx6s4cm2qli6q"))))
     (propagated-inputs
-     `(("emacs-f" ,emacs-f)))
+     (list emacs-f))
     (build-system emacs-build-system)
     (home-page "https://github.com/ncaq/auto-sudoedit")
     (synopsis "Automatically re-open read-only files with sudo")
@@ -2369,7 +2347,7 @@ mode, Rmail, Gnus, MH-E, and VM).  BBDB is fully customizable.")
        (sha256
         (base32 "0bki658mvlchqf3prkzxz4217a95cxm58c1qmf84yp2n8h6gd0d8"))))
     (build-system emacs-build-system)
-    (propagated-inputs `(("emacs-ivy" ,emacs-ivy)))
+    (propagated-inputs (list emacs-ivy))
     (home-page "https://github.com/redguardtoo/counsel-bbdb")
     (synopsis "Ivy interface for BBDB")
     (description "This Ivy extension enables the use of @code{ivy-mode} to input
@@ -2397,10 +2375,9 @@ you can press @samp{C-M-n} to input multiple email addresses.")
         (base32 "1dq04p6ms0zx4awlypp4crkz7dzal4xg8ac7p8fqacz196rczssp"))))
     (build-system emacs-build-system)
     (inputs
-     `(("bluez" ,bluez)
-       ("dbus" ,dbus)))
+     (list bluez dbus))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)))
+     (list emacs-dash))
     (home-page "https://gitlab.com/rstocker/emacs-bluetooth")
     (synopsis "Manage Bluetooth devices using Emacs")
     (description
@@ -2499,7 +2476,7 @@ web browsers, but follows the flow and keybindings of Isearch.")
           (base32 "1wggg8jlzg9rph4jhxp6yiri178rnasbv38838i973kjgqjxrl76"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-reformatter" ,emacs-reformatter)))
+       (list emacs-reformatter))
       (home-page "https://github.com/psibi/dhall-mode")
       (synopsis "Major mode for working with Dhall configuration language")
       (description
@@ -2517,8 +2494,8 @@ configuration language. It features:
 
 (define-public emacs-link-hint
   ;; Last release was in 2015.
-  (let ((commit "9fbf196d155016d9b8471a99318ed67a086cf257")
-        (revision "3"))
+  (let ((commit "83cd0489b16f013647d0507ef20905a0a91db433")
+        (revision "4"))
     (package
       (name "emacs-link-hint")
       (version (git-version "0.1" revision commit))
@@ -2531,10 +2508,10 @@ configuration language. It features:
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0v2g9gzf2v88ag59q1pf5vhd4qjnz3g4i6gzl27k6fi7pvlxdn39"))))
+           "0kwaia6i0asr7yqcw1anzq6lf93357cc1fphkvp0llbmxizmkzb3"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-avy" ,emacs-avy)))
+       (list emacs-avy))
       (home-page "https://github.com/noctuid/link-hint.el")
       (synopsis "Vimperator-style link-hinting in Emacs")
       (description "This package provides commands for visiting and acting on
@@ -2545,15 +2522,15 @@ links.")
   (package
     (name "emacs-ag")
     (version "0.48")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/Wilfred/ag.el")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Wilfred/ag.el")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -2566,16 +2543,13 @@ links.")
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out  (assoc-ref outputs "out"))
                     (info (string-append out "/share/info")))
-               (install-file "docs/_build/texinfo/agel.info" info)
-               #t))))))
+               (install-file "docs/_build/texinfo/agel.info" info)))))))
     (native-inputs
-     `(("python-sphinx" ,python-sphinx)
-       ("texinfo" ,texinfo)))
+     (list python-sphinx texinfo))
     (propagated-inputs
-     `(("dash" ,emacs-dash)
-       ("s" ,emacs-s)
-       ;; We need to use 'ag' as the executable on remote systems.
-       ("the-silver-searcher" ,the-silver-searcher)))
+     (list emacs-dash
+           emacs-s
+           the-silver-searcher))        ;'ag' executable
     (home-page "https://github.com/Wilfred/ag.el")
     (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
     (description "This package provides the ability to use the silver
@@ -2635,14 +2609,14 @@ as a library for other Emacs packages.")
                 (search-input-file inputs "/bin/gs")))
              (substitute* "preview.el"
                (("\"dvipng ")
-                (string-append "\"" (assoc-ref inputs "texlive")
-                               "/bin/dvipng "))
+                (let ((dvipng (search-input-file inputs "/bin/dvipng")))
+                  (string-append "\"" dvipng " ")))
                (("\"dvips ")
-                (string-append "\"" (assoc-ref inputs "texlive")
-                               "/bin/dvips "))
+                (let ((dvips (search-input-file inputs "/bin/dvips")))
+                  (string-append "\"" dvips " ")))
                (("\"pdf2dsc ")
-                (string-append "\"" (assoc-ref inputs "ghostscript")
-                               "/bin/pdf2dsc ")))))
+                (let ((pdf2dsc (search-input-file inputs "/bin/pdf2dsc")))
+                  (string-append "\"" pdf2dsc " "))))))
          (add-after 'install 'install-doc
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -2652,13 +2626,12 @@ as a library for other Emacs packages.")
                  (setenv "HOME" (getenv  "TMPDIR")) ; for mktextfm
                  (invoke "pdftex" "tex-ref")
                  (install-file "tex-ref.pdf"
-                               (string-append etc-dir "/refcards")))
-               #t))))))
+                               (string-append etc-dir "/refcards")))))))))
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (inputs
-     `(("ghostscript" ,ghostscript)
-       ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts)))))
+     (list ghostscript
+           (texlive-updmap.cfg (list texlive-amsfonts))))
     (home-page "https://www.gnu.org/software/auctex/")
     (synopsis "Integrated environment for TeX")
     (description
@@ -2683,7 +2656,7 @@ or XEmacs.")
          "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)))
+     (list emacs-dash))
     (home-page "https://github.com/sebastiansturm/autothemer")
     (synopsis "Conveniently create Emacs themes")
     (description
@@ -2705,7 +2678,7 @@ a set of simplified face specifications and a user-supplied color palette")
         (base32 "11k0dzwyn7ly34g0zcd6i0i8qwyv9di8m6fx805axrxykxb0qan2"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("emacs" ,emacs-minimal)))
+     (list emacs-minimal))
     (arguments
      `(#:configure-flags
        (list (string-append "--with-howmdir=" (emacs:elpa-directory %output)))
@@ -2762,7 +2735,7 @@ the ability to jump forward and backward to the next bookmark.")
          "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-howm" ,emacs-howm)))
+     (list emacs-howm))
     (home-page "https://github.com/kiwanami/emacs-calfw/")
     (synopsis "Calendar framework for Emacs")
     (description
@@ -2852,10 +2825,7 @@ Lock key.")
                                   (find-files "." "\\.md$")))))
              #t)))))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-s" ,emacs-s)
-       ("emacs-spark" ,emacs-spark)
-       ("emacs-ts" ,emacs-ts)))
+     (list emacs-dash emacs-s emacs-spark emacs-ts))
     (home-page "https://github.com/contrapunctus-1/chronometrist")
     (synopsis "Time tracker for Emacs")
     (description "Chronometrist is a time tracker in Emacs, largely modelled
@@ -2873,42 +2843,41 @@ Its features are:
     (license (list license:unlicense license:wtfpl2))))
 
 (define-public emacs-citeproc-el
-  ;; XXX: This commit includes a fix for an API change in libxml.
-  (let ((commit "893bcb8dcb48ac9850841b58c7b64c1969e6f3de")
-        (revision "0"))
-    (package
-      (name "emacs-citeproc-el")
-      (version (git-version "0.1.2" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/andras-simonyi/citeproc-el")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0xfkp8dccflas5ps30g3fw1vifn8pp9h9cyvxr1pcmyqr9rivy8f"))))
-      (build-system emacs-build-system)
-      (arguments
-       `(#:emacs ,emacs))               ;need libxml support
-      (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-f" ,emacs-f)
-         ("emacs-queue" ,emacs-queue)
-         ("emacs-s" ,emacs-s)))
-      (home-page "https://github.com/andras-simonyi/citeproc-el")
-      (synopsis "Citation Style Language (CSL) processor for Emacs")
-      (description
-       "Citeproc-el is an Emacs Lisp library for rendering citations
+  (package
+    (name "emacs-citeproc-el")
+    (version "0.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/andras-simonyi/citeproc-el")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1m5j1abyk68f3d1v781yrx2xkg42vyfgfckbj2yk2lgk6d7rz0p1"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:emacs ,emacs))                 ;need libxml support
+    (propagated-inputs
+     (list emacs-dash
+           emacs-f
+           emacs-parsebib
+           emacs-queue
+           emacs-s
+           emacs-string-inflection))
+    (home-page "https://github.com/andras-simonyi/citeproc-el")
+    (synopsis "Citation Style Language (CSL) processor for Emacs")
+    (description
+     "Citeproc-el is an Emacs Lisp library for rendering citations
 and bibliographies in styles described in the Citation Style
 Language (CSL), an XML-based, open format to describe the formatting
 of bibliographic references.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-corfu
   (package
     (name "emacs-corfu")
-    (version "0.11")
+    (version "0.16")
     (source
      (origin
        (method git-fetch)
@@ -2917,7 +2886,7 @@ of bibliographic references.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0x4aa5fk1ywlfs8gvwj3v2bycyl4nx7mzz1ci37x69bdjl9wal80"))))
+        (base32 "0al8jsdih6b6y26lwg8lwld35flh7q3539f4k1nz6is3xfqxbahz"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/minad/corfu")
     (synopsis "Completion overlay region function")
@@ -2930,7 +2899,7 @@ overlay below or above the point.  Corfu can be considered the minimalistic
 (define-public emacs-direnv
   (package
     (name "emacs-direnv")
-    (version "2.1.0")
+    (version "2.2.0")
     (source
      (origin
        (method git-fetch)
@@ -2939,23 +2908,20 @@ overlay below or above the point.  Corfu can be considered the minimalistic
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0xkqn4604k2imas6azy1www56br8ls4iv9a44pxcd8h94j1fp44d"))))
+        (base32 "0cf5npgksl9a03mnfdhfdhlf46gr9qz9adjxz3dbckq9b1vl0dfc"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-in-direnv
            (lambda* (#:key inputs #:allow-other-keys)
-             (let* ((direnv-path (assoc-ref inputs "direnv"))
-                    (direnv-bin (string-append
-                                 "\"" direnv-path "/bin/direnv\"")))
+             (let ((direnv (search-input-file inputs "/bin/direnv")))
                (substitute* "direnv.el"
-                 (("\"direnv\"") direnv-bin))))))))
+                 (("\"direnv\"") (string-append "\"" direnv "\"")))))))))
     (inputs
-     `(("direnv" ,direnv)))
+     (list direnv))
     (propagated-inputs
-     `(("dash" ,emacs-dash)
-       ("with-editor" ,emacs-with-editor)))
+     (list emacs-dash emacs-with-editor))
     (home-page "https://github.com/wbolster/emacs-direnv")
     (synopsis "Direnv integration for Emacs")
     (description
@@ -2993,18 +2959,18 @@ that the binary uses instead of the actual binary contents.")
 (define-public emacs-form-feed
   (package
     (name "emacs-form-feed")
-    (version "0.2.2")
+    (version "0.2.3")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/wasamasa/form-feed")
+             (url "https://depp.brause.cc/form-feed.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2"))))
+        (base32 "10mcj4x2fjq0ikq9adkd72k9zp6caqib628bmj8d67wwabvzj6mk"))))
     (build-system emacs-build-system)
-    (home-page "https://github.com/wasamasa/form-feed")
+    (home-page "https://depp.brause.cc/form-feed")
     (synopsis "Display ^L glyphs as horizontal lines")
     (description
      "This package provides a minor mode @code{form-feed-mode} to display page
@@ -3027,7 +2993,7 @@ into mode hooks and is intended to be used that way.")
          "0p79x9g94jynl83ndvqp9349vhgkzxzhnc517r8hn44iqxqf6ghg"))))
     (build-system emacs-build-system)
     (inputs
-     `(("global" ,global)))
+     (list global))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -3156,10 +3122,9 @@ directly inside Emacs.  It requires a Google Map Static API key to function.")
                (install-file "texinfo/graphviz-dot-mode.info.gz" info)
                #t))))))
     (native-inputs
-     `(("gzip" ,gzip)
-       ("texinfo" ,texinfo)))
+     (list gzip texinfo))
     (propagated-inputs
-     `(("emacs-company" ,emacs-company)))
+     (list emacs-company))
     (home-page "http://ppareit.github.com/graphviz-dot-mode")
     (synopsis "Major mode for editing Graphviz DOT files")
     (description
@@ -3268,8 +3233,7 @@ filters, new key bindings and faces.  It can be enabled by
        (sha256
         (base32 "0z2qk1v4qkvcwl27ycqfb8vyszq5v6b8ci29b4la00yaki16p04i"))))
     (build-system emacs-build-system)
-    (inputs `(("djview" ,djview)
-              ("djvulibre" ,djvulibre)))
+    (inputs (list djview djvulibre))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -3313,8 +3277,7 @@ DjVuLibre, see @url{http://djvu.sourceforge.net/}.")
           (base32
            "0p0izjrgbayx5ybk1n6db5hbrjv9d4kpn57w4iyxdm3h96sp9cmr"))))
       (propagated-inputs
-       `(("emacs-djvu" ,emacs-djvu)
-         ("emacs-tablist" ,emacs-tablist)))
+       (list emacs-djvu emacs-tablist))
       (build-system emacs-build-system)
       (home-page "https://github.com/dalanicolai/djvu3")
       (synopsis "Extend djvu.el to display annotations and more")
@@ -3389,14 +3352,14 @@ during idle time, while Emacs is doing nothing else.")
          (modify-phases %standard-phases
            ;; Build server side using 'gnu-build-system'.
            (add-after 'unpack 'enter-server-dir
-             (lambda _ (chdir "server") #t))
+             (lambda _ (chdir "server")))
            (add-after 'enter-server-dir 'autogen
              (lambda _
                (invoke "bash" "autogen.sh")))
 
            ;; Build emacs side using 'emacs-build-system'.
            (add-after 'compress-documentation 'enter-lisp-dir
-             (lambda _ (chdir "../lisp") #t))
+             (lambda _ (chdir "../lisp")))
            (add-after 'enter-lisp-dir 'emacs-patch-variables
              (lambda* (#:key outputs #:allow-other-keys)
                (for-each make-file-writable (find-files "."))
@@ -3419,18 +3382,11 @@ during idle time, while Emacs is doing nothing else.")
            (add-after 'emacs-install 'emacs-make-autoloads
              (assoc-ref emacs:%standard-phases 'make-autoloads)))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)
-         ("emacs" ,emacs-minimal)))
+       (list autoconf automake emacs-minimal pkg-config))
       (inputs
-       `(("poppler" ,poppler)
-         ("cairo" ,cairo)
-         ("glib" ,glib)
-         ("libpng" ,libpng)
-         ("zlib" ,zlib)))
+       (list cairo glib libpng poppler zlib))
       (propagated-inputs
-       `(("tablist" ,emacs-tablist)))
+       (list emacs-tablist))
       (home-page "https://github.com/politza/pdf-tools")
       (synopsis "Emacs support library for PDF files")
       (description
@@ -3499,7 +3455,7 @@ restore the saved place.")
                 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("dash" ,emacs-dash)))
+     (list emacs-dash))
     (home-page "https://notabug.org/alezost/emacs-bui")
     (synopsis "Buffer interface library for Emacs")
     (description
@@ -3525,40 +3481,36 @@ type, for example: packages, buffers, files, etc.")
                   "00xdxadbi9fxpfp60zah9190rcz3w08vl1blbhmaiy7c1hd2gi39"))))
       (build-system gnu-build-system)
       (arguments
-       `(#:modules ((guix build gnu-build-system)
+       (list
+        #:modules '((guix build gnu-build-system)
                     ((guix build emacs-build-system) #:prefix emacs:)
                     (guix build utils))
-         #:imported-modules (,@%gnu-build-system-modules
+        #:imported-modules `(,@%gnu-build-system-modules
                              (guix build emacs-build-system)
                              (guix build emacs-utils))
-         #:configure-flags
-         (list (string-append "--with-lispdir="
-                              (emacs:elpa-directory (assoc-ref %outputs "out"))))
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'expand-load-path
-             (lambda _
-               ((assoc-ref emacs:%standard-phases 'expand-load-path)
-                #:prepend-source? #f)
-               #t)))))
+        #:configure-flags
+        #~(list (string-append "--with-lispdir="
+                               (emacs:elpa-directory #$output)))
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'expand-load-path
+              (lambda _
+                ((assoc-ref emacs:%standard-phases 'expand-load-path)
+                 #:prepend-source? #f))))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)
-         ("texinfo" ,texinfo)
-         ("emacs" ,emacs-minimal)))
+       (list autoconf automake emacs-minimal pkg-config texinfo))
       (inputs
        `(("guile"
           ,@(assoc-ref (package-native-inputs guix) "guile"))
          ("guix" ,guix)))
       (propagated-inputs
-       `(("geiser" ,emacs-geiser)
-         ("geiser-guile" ,emacs-geiser-guile)
-         ("guile-gcrypt" ,guile-gcrypt)
-         ("dash" ,emacs-dash)
-         ("bui" ,emacs-bui)
-         ("edit-indirect" ,emacs-edit-indirect)
-         ("magit-popup" ,emacs-magit-popup)))
+       (list emacs-bui
+             emacs-dash
+             emacs-edit-indirect
+             emacs-geiser
+             emacs-geiser-guile
+             emacs-magit-popup
+             guile-gcrypt))
       (home-page "https://emacs-guix.gitlab.io/website/")
       (synopsis "Emacs interface for GNU Guix")
       (description
@@ -3583,8 +3535,7 @@ management tasks from Emacs.  To begin with, run @code{M-x guix-about} or
                 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("bui" ,emacs-bui)
-       ("magit-popup" ,emacs-magit-popup)))
+     (list emacs-bui emacs-magit-popup))
     (home-page "https://notabug.org/alezost/emacs-build-farm")
     (synopsis "Emacs interface for Hydra and Cuirass build farms")
     (description
@@ -3609,7 +3560,7 @@ evaluations.  The entry point is @code{M-x build-farm} command.")
         (base32 "0vkl470vvmxap8ca773a0jvjvalmvdbbax3qvgjdclp54ml75al4"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-undercover" ,emacs-undercover)))
+     (list emacs-undercover))
     (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
     (synopsis "Emacs major mode for editing D code")
     (description "This package provides an Emacs major mode for highlighting
@@ -3660,9 +3611,7 @@ running Extempore process, and more.")
           (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-expand-region"    ,emacs-expand-region)
-         ("emacs-multiple-cursors" ,emacs-multiple-cursors)
-         ("emacs-ryo-modal"        ,emacs-ryo-modal)))
+       (list emacs-expand-region emacs-multiple-cursors emacs-ryo-modal))
       (home-page "https://github.com/jmorag/kakoune.el")
       (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
       (description "This package provides many, but not all of the editing
@@ -3798,7 +3747,7 @@ a command.")
 (define-public emacs-olivetti
   (package
     (name "emacs-olivetti")
-    (version "2.0.3")
+    (version "2.0.4")
     (source
      (origin
        (method git-fetch)
@@ -3807,7 +3756,7 @@ a command.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0qhv4ah9bn1mjvivgxp7z1gf91d0cdr2ma5cy5xaja97ispa4l3z"))))
+        (base32 "0wc0rki4zvzdxs126g5c8d92h1vfn9slfkdx831rr9d0jx93wc7s"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/rnkn/olivetti")
     (synopsis "Emacs minor mode for a nice writing environment")
@@ -3830,7 +3779,7 @@ in the center.")
         (base32 "1khkwrrbwaimspc013n4k9mpv8g302r0zkrsqnza2x1d3qznn08y"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-queue" ,emacs-queue)))
+     (list emacs-queue))
     (home-page "https://www.dr-qubit.org/undo-tree.html")
     (synopsis "Treat undo history as a tree")
     (description
@@ -3961,7 +3910,7 @@ strings.")
           (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-markdown-mode" ,emacs-markdown-mode)))
+       (list emacs-markdown-mode))
       (home-page "https://github.com/vermiculus/sx.el")
       (synopsis "Emacs StackExchange client")
       (description
@@ -3969,10 +3918,35 @@ strings.")
 Stack Overflow, Super User, and other StackExchange sites.")
       (license license:gpl3+))))
 
+(define-public emacs-skempo
+  (package
+    (name "emacs-skempo")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/xFA25E/skempo")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0na465f27p6n64sf0pj0aqdi384m1wy3hxcc2d6a67hs39rkyvi9"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     (list emacs-parent-mode))
+    (home-page "https://github.com/xFA25E/skempo")
+    (synopsis "Enhancements for skeleton/tempo + abbrev")
+    (description
+     "Skempo is an attempt to improve Emacs built-in Skeleton and Tempo
+templates.  It tries to make a unified syntax for template definitions.  It
+also adds tags and marks support for Skeleton, and Abbrev support for Tempo.")
+    (license license:gpl3+)))
+
 (define-public emacs-toc-org
   (package
     (name "emacs-toc-org")
-    (version "1.1.0")
+    (version "1.2.0")
     (source
      (origin
        (method git-fetch)
@@ -3981,7 +3955,7 @@ Stack Overflow, Super User, and other StackExchange sites.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0lk0rji85a1c0c5r9an0fdvsm4n4jyixsknmr8ywha3lfmc2p0l8"))))
+        (base32 "00a2al7ghrlabf65kfj1mk30p2pl37h6ppwlgghbgiy7rwlzkdbm"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/snosov1/toc-org")
     (synopsis "Table of Contents generator for Emacs Org mode")
@@ -4053,8 +4027,7 @@ Emacs.")
                 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-s" ,emacs-s)
-       ("emacs-dash" ,emacs-dash)))
+     (list emacs-s emacs-dash))
     (home-page "https://github.com/rejeep/f.el")
     (synopsis "Emacs API for working with files and directories")
     (description "This package provides an Emacs library for working with
@@ -4064,7 +4037,7 @@ files and directories.")
 (define-public emacs-fountain-mode
   (package
     (name "emacs-fountain-mode")
-    (version "3.5.1")
+    (version "3.6.0")
     (source
      (origin
        (method git-fetch)
@@ -4073,7 +4046,7 @@ files and directories.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0y7dd6qq4b95scj7fay4zzhkf0g0x89npylc4v1hz59b1yyylfqy"))))
+        (base32 "14cb4r23pn98sxzh0qwjwpvm7k7q9hhpks8avydccwssm69x1s1w"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/rnkn/fountain-mode")
     (synopsis "Major mode for screenwriting in Fountain markup")
@@ -4152,8 +4125,7 @@ display and behaviour is easily customisable.")
           (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-git-gutter" ,emacs-git-gutter)
-         ("emacs-fringe-helper" ,emacs-fringe-helper)))
+       (list emacs-git-gutter emacs-fringe-helper))
       (home-page "https://github.com/emacsorphanage/git-gutter-fringe")
       (synopsis "See and manage hunks of text in a version control system")
       (description
@@ -4189,7 +4161,7 @@ the URL for a commit.  URLs are added to the kill ring.")
 (define-public emacs-apheleia
   (package
     (name "emacs-apheleia")
-    (version "1.0")
+    (version "1.1.2")
     (source
      (origin
        (method git-fetch)
@@ -4198,7 +4170,7 @@ the URL for a commit.  URLs are added to the kill ring.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "04pls7zahy4jfkikv6fvd9vfpm4glhyanmmkx79hgi9pwdv966rf"))))
+        (base32 "0f2dqid4h0psdyx3p18c7xn7nf8zr6y4qq98yvyjfbwq5lcjk4rn"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/raxod502/apheleia")
     (synopsis "Reformat buffer stably")
@@ -4224,7 +4196,7 @@ saving won't move point back to the beginning of the buffer.")
          "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-transient" ,emacs-transient)))
+     (list emacs-transient))
     (home-page "https://gitlab.com/pidu/git-timemachine")
     (synopsis "Step through historic versions of Git-controlled files")
     (description "This package enables you to step through historic versions
@@ -4249,8 +4221,7 @@ of files under Git version control from within Emacs.")
      '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
        #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)))
+     (list emacs-dash emacs-f))
     (home-page "https://github.com/arthurnn/minitest-emacs")
     (synopsis "Emacs minitest mode")
     (description
@@ -4309,27 +4280,27 @@ Expectations, but it can be used in other contexts.")
 (define-public emacs-ecukes
   (package
     (name "emacs-ecukes")
-    (version "0.6.17")
-    (home-page "https://github.com/ecukes/ecukes")
+    (version "0.6.18")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url home-page)
+             (url "https://github.com/ecukes/ecukes")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1isscwz4h3nx62lwfrj899lp2yc27zk1ndgr441d848495ccmshn"))))
+        (base32 "182qgddfv8nd89y1l55rs5vm5i61ayc8cxbplb8zx0alnid9xrw1"))))
     (build-system emacs-build-system)
     (arguments
      `(#:include (cons* "^feature/" "^reporters/" "^templates/" %default-include)))
     (propagated-inputs
-     `(("emacs-ansi" ,emacs-ansi)
-       ("emacs-commander" ,emacs-commander)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-espuds" ,emacs-espuds)
-       ("emacs-f" ,emacs-f)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-ansi
+           emacs-commander
+           emacs-dash
+           emacs-espuds
+           emacs-f
+           emacs-s))
+    (home-page "https://github.com/ecukes/ecukes")
     (synopsis "Cucumber for Emacs")
     (description
      "This package provides Ecukes, a Cucumber-inspired integration testing
@@ -4352,9 +4323,7 @@ intended to be.")
         (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-s" ,emacs-s)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)))
+     (list emacs-s emacs-dash emacs-f))
     (home-page "https://github.com/ecukes/espuds")
     (synopsis "Common step definitions for Ecukes")
     (description "Espuds is a collection of the most commonly used step
@@ -4403,9 +4372,7 @@ port of @code{cl-spark} to Emacs Lisp.")
     (propagated-inputs
      ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
      ;; to be rendered incorrectly
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-org" ,emacs-org)
-       ("emacs-spark" ,emacs-spark)))
+     (list emacs-dash emacs-org emacs-spark))
     (home-page "https://github.com/dakrone/es-mode")
     (synopsis "Major mode for editing Elasticsearch queries")
     (description "@code{es-mode} includes highlighting, completion and
@@ -4444,18 +4411,18 @@ keep pressing the key until it selects what you want.  There's also
     (package
       (name "emacs-explain-pause-mode")
       (version (git-version "0.1" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/lastquestion/explain-pause-mode")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0frnfwqal9mrnrz6q4v7vcai26ahaw81894arff1yjw372pfgv7v"))))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/lastquestion/explain-pause-mode")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0frnfwqal9mrnrz6q4v7vcai26ahaw81894arff1yjw372pfgv7v"))))
       (build-system emacs-build-system)
       (native-inputs
-       `(("emacs" ,emacs-buttercup)))
+       (list emacs-buttercup))
       (arguments
        '(#:tests? #t
          ;; Don't run case-tests as they will fail to create sockets because
@@ -4489,7 +4456,7 @@ interface to pause.")
     (home-page "http://elpa.gnu.org/packages/filladapt.html")
     (synopsis "Adaptive fill for Emacs")
     (description
-     "This package provides funtions which enhance the default behavior of
+     "This package provides functions which enhance the default behavior of
 Emacs' Auto Fill mode and the commands @code{fill-paragraph},
 @code{lisp-fill-paragraph}, @code{fill-region-as-paragraph}, and
 @code{fill-region}.
@@ -4590,7 +4557,7 @@ result.")
            (lambda _
              (delete-file "projectile-ripgrep.el"))))))
     (propagated-inputs
-     `(("ripgrep" ,ripgrep)))
+     (list ripgrep))
     (home-page "https://github.com/nlamirault/ripgrep.el")
     (synopsis "Search using ripgrep from inside Emacs")
     (description "@code{ripgrep} is an Emacs search package based on the
@@ -4622,10 +4589,7 @@ result.")
                (emacs-substitute-sexps file
                  ("(defcustom rg-executable" "rg"))))))))
     (propagated-inputs
-     `(("emacs-s" ,emacs-s)
-       ("emacs-transient" ,emacs-transient)
-       ("emacs-wgrep" ,emacs-wgrep)
-       ("ripgrep" ,ripgrep)))
+     (list emacs-s emacs-transient emacs-wgrep ripgrep))
     (home-page "https://rgel.readthedocs.io/en/latest/")
     (synopsis "Search tool based on @code{ripgrep}")
     (description
@@ -4738,8 +4702,7 @@ Emacs shell script.")
         (base32 "0qmvyy3xg5qi7ws8zcs934d6afsappr1a6pgfp796xpa9vdr4y6j"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-shut-up" ,emacs-shut-up)))
+     (list emacs-dash emacs-shut-up))
     (home-page "https://github.com/sviridov/undercover.el")
     (synopsis "Test coverage library for Emacs Lisp")
     (description
@@ -4829,8 +4792,7 @@ serve files and directory listings.")
         (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-simple-httpd" ,emacs-simple-httpd)
-       ("emacs-js2-mode" ,emacs-js2-mode)))
+     (list emacs-simple-httpd emacs-js2-mode))
     (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
     (home-page "https://github.com/skeeto/skewer-mode")
     (synopsis "Live web development in Emacs")
@@ -4857,7 +4819,7 @@ in Lisp modes.")
                   "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)))
+       (list emacs-dash))
       (home-page "https://github.com/Fuco1/litable/")
       (synopsis "Dynamic evaluation replacement with Emacs")
       (description "This package provides dynamic evaluation in Emacs.")
@@ -4901,7 +4863,7 @@ Emacs can load Org files as Lisp source files directly.")
           (base32 "0z6y5f1rj28lbr30m6g4a9l6ahs66whi8861g4cx9xzhs84nwv5g"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-s" ,emacs-s)))
+       (list emacs-s))
       (home-page "https://github.com/sulami/literate-calc-mode.el")
       (synopsis "Literate programming for Emacs Calc")
       (description
@@ -4928,8 +4890,7 @@ other markup language major modes.")
         (base32 "0r814qcrhvx4qlx4sdzwdmrhiryslqclx0bnpp0qcrbx6g8qfl25"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-f" ,emacs-f)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-f emacs-s))
     (synopsis "Platform-specific paths for config, cache, and other data")
     (description
      "This package provides platform-specific paths for reading and writing
@@ -4939,19 +4900,19 @@ configuration, cache, and other data.")
 (define-public emacs-string-inflection
   (package
     (name "emacs-string-inflection")
-    (version "1.0.15")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/akicho8/string-inflection")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "194pd3g9ws72n3wy1b2pxgj3w20p1v8gn47gqg89mym9ps5hfjyv"))))
+    (version "1.0.16")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/akicho8/string-inflection")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0wskrp3v5gi3b3s9471ijkdncnfd888qd50c72rv2p8846174paj"))))
     (build-system emacs-build-system)
     (native-inputs
-     `(("ert-runner" ,emacs-ert-runner)))
+     (list emacs-ert-runner))
     (arguments
      `(#:tests? #t
        #:test-command '("ert-runner")))
@@ -5031,7 +4992,7 @@ boxes, and more.")
                 "1qc92xvgxmnwjixk8bxwbc1l1jj0qk9dg73jyaip6lk4g0wjk6xf"))))
     (build-system emacs-build-system)
     (inputs
-     `(("pdf2svg" ,pdf2svg)))
+     (list pdf2svg))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -5109,7 +5070,7 @@ displays the priority part of a heading as your preferred string value.")
         (base32 "0ra4sfy48p8pm1c7h8wlmbl68r4s0f4qc49xapvs550pm4mf3hiq"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-org" ,emacs-org)))
+     (list emacs-org))
     (home-page "https://github.com/io12/org-fragtog")
     (synopsis "Toggle Org mode LaTeX fragments preview at cursor")
     (description
@@ -5155,7 +5116,7 @@ blocks with @code{org-babel} in @code{org-mode}.")
          (sha256
           (base32 "0s3931w9ab3yfml2pmq71rw21yf6hpg7m3vihxyy3vs6zli1cvmq"))))
       (propagated-inputs
-       `(("emacs-restclient" ,emacs-restclient)))
+       (list emacs-restclient))
       (build-system emacs-build-system)
       (home-page "https://github.com/alf/ob-restclient.el")
       (synopsis "Org-babel functionality for @code{restclient-mode}")
@@ -5178,7 +5139,7 @@ blocks with @code{org-babel} in @code{org-mode}.")
          (sha256
           (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)))
+       (list emacs-dash))
       (build-system emacs-build-system)
       (home-page "https://github.com/alphapapa/org-now")
       (synopsis "Show current Org tasks in a sidebar")
@@ -5228,7 +5189,7 @@ mode-line.")
     (arguments
      '(#:include (cons "^lib\\/" %default-include)))
     (propagated-inputs
-     `(("emacs-inf-ruby" ,emacs-inf-ruby)))
+     (list emacs-inf-ruby))
     (home-page "https://github.com/dgutov/robe")
     (synopsis "Ruby code assistance tool for Emacs")
     (description
@@ -5239,29 +5200,26 @@ method and constant name completion.")
     (license license:gpl3+)))
 
 (define-public emacs-robot-mode
-  (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
-        (revision "1"))
-    (package
-      (name "emacs-robot-mode")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      ;; A better maintained fork of robot-mode.
-                      (url "https://github.com/jvalkeejarvi/robot-mode")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
-      (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-s" ,emacs-s)))
-      (home-page "https://github.com/jvalkeejarvi/robot-mode")
-      (synopsis "Emacs mode for Robot Framework")
-      (description "This major mode facilitates editing Robot Framework source
-files with features such as syntax highlighting, comments, finding keywords,
-completing keywords and smart indentation.")
-      (license license:gpl3+))))
+  (package
+    (name "emacs-robot-mode")
+    (version "0.6.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/kopoli/robot-mode")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "127lydk66n90ih39q8gxzb44rss2xllb7bn3ygxrf5m5vvl9w5rj"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/kopoli/robot-mode")
+    (synopsis "Emacs mode for Robot Framework")
+    (description
+     "This major mode facilitates editing Robot Framework source files with
+features such as syntax highlighting, comments, finding keywords, completing
+keywords and smart indentation.")
+    (license license:gpl3+)))
 
 (define-public emacs-roguel-ike
   (package
@@ -5278,7 +5236,7 @@ completing keywords and smart indentation.")
         (base32 "0rgv4y9aa5cc2ddz3y5z8d22xmr8kf5c60h0r3g8h91jmcw3rb4z"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-popup" ,emacs-popup)))
+     (list emacs-popup))
     (arguments
      `(#:include (cons* "^roguel-ike/" "^roguel-ike-lib/" %default-include)
        #:phases
@@ -5356,7 +5314,7 @@ configuration.")
 (define-public emacs-smart-mode-line
   (package
     (name "emacs-smart-mode-line")
-    (version "2.13")
+    (version "2.14")
     (source
      (origin
        (method git-fetch)
@@ -5365,10 +5323,10 @@ configuration.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"))))
+        (base32 "1h5w5lrgrmhpaqwppg5msylh7z78mvwy9mm8xiiv8w4wxvncxxl2"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-rich-minority" ,emacs-rich-minority)))
+     (list emacs-rich-minority))
     (home-page "https://github.com/Malabarba/smart-mode-line")
     (synopsis "Color-coded smart mode-line")
     (description
@@ -5533,7 +5491,7 @@ package namespace prefix is ​​hidden by a colon.")
        (sha256
         (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
     (inputs
-     `(("emacs-evil" ,emacs-evil)))
+     (list emacs-evil))
     (build-system emacs-build-system)
     (home-page "https://github.com/cofi/evil-leader")
     (synopsis "Implement <leader> feature from Vim")
@@ -5557,8 +5515,7 @@ an easy way to bind keys under a configurable prefix key.")
                 "1wrx8ihimn1sx3vzzfppcwv0yfh3x95jrkxqvzj0ykckipm3zk0b"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-evil" ,emacs-evil)
-       ("emacs-auctex" ,emacs-auctex)))
+     (list emacs-evil emacs-auctex))
     (home-page "https://github.com/iyefrat/evil-tex")
     (synopsis "Evil oriented additions for editing LaTeX")
     (description "This package is a toolbox for LaTeX editing with Evil.  It
@@ -5585,8 +5542,7 @@ movements, and keymaps for quickly entering environments or
           (base32
            "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
       (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-evil" ,emacs-evil)
-                           ("emacs-names" ,emacs-names)))
+      (propagated-inputs (list emacs-evil emacs-names))
       (home-page "https://github.com/laishulu/evil-textobj-syntax/")
       (synopsis "Text objects based on syntax highlighting")
       (description
@@ -5613,7 +5569,7 @@ boundaries defined by syntax highlighting.")
            "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-flycheck" ,emacs-flycheck)))
+       (list emacs-flycheck))
       (home-page "https://github.com/lbolla/emacs-flycheck-flow")
       (synopsis "Flow support for @code{flycheck-mode}")
       (description
@@ -5667,10 +5623,9 @@ for Flow files.")
              (emacs-substitute-variables "grammalecte.el"
                ("grammalecte-check-upstream-version-delay" 0)))))))
     (inputs
-     `(("grammalecte" ,grammalecte)
-       ("python" ,python)))
+     (list grammalecte python))
     (propagated-inputs
-     `(("emacs-flycheck" ,emacs-flycheck)))
+     (list emacs-flycheck))
     (home-page "https://git.umaneti.net/flycheck-grammalecte/")
     (synopsis "Integrate Grammalecte with Flycheck")
     (description
@@ -5695,9 +5650,7 @@ repetitions for example).")
        (sha256
         (base32 "0cs5r0ik6a3bl1k3imjl0r8y1i69kx9x9m9cgxj470qk34brwyj5"))))
     (propagated-inputs
-     `(("emacs-flycheck" ,emacs-flycheck)
-       ("emacs-geiser" ,emacs-geiser)
-       ("emacs-geiser-guile" ,emacs-geiser-guile)))
+     (list emacs-flycheck emacs-geiser emacs-geiser-guile))
     (build-system emacs-build-system)
     (home-page "https://github.com/flatwhatson/flycheck-guile")
     (synopsis "GNU Guile support for Flycheck")
@@ -5719,7 +5672,7 @@ compile}.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50"))))
-    (inputs `(("ledger" ,ledger)))
+    (inputs (list ledger))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -5731,7 +5684,7 @@ compile}.")
                  (("\"ledger\"") (string-append "\"" ledger "\""))))
              #t)))))
     (propagated-inputs
-     `(("emacs-flycheck" ,emacs-flycheck)))
+     (list emacs-flycheck))
     (build-system emacs-build-system)
     (home-page "https://github.com/purcell/flycheck-ledger")
     (synopsis "Ledger support for Flycheck")
@@ -5756,9 +5709,7 @@ errors.")
        (sha256
         (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-flycheck" ,emacs-flycheck)
-       ("emacs-let-alist" ,emacs-let-alist)))
+     (list emacs-dash emacs-flycheck emacs-let-alist))
     (build-system emacs-build-system)
     (home-page "https://github.com/flycheck/flycheck-rust")
     (synopsis "Rust/Cargo support for Flycheck")
@@ -5783,8 +5734,7 @@ the current Cargo project.")
          "00py39n1383761wq6wp194pvyk94ydqdbxj9kl64g9jnipkp7849"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-flycheck" ,emacs-flycheck)
-       ("emacs-package-lint" ,emacs-package-lint)))
+     (list emacs-flycheck emacs-package-lint))
     (home-page "https://github.com/purcell/flycheck-package")
     (synopsis "Flycheck checker for elisp package metadata")
     (description
@@ -5834,9 +5784,7 @@ respective @code{*Help*} buffers.")
          "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)
-       ("emacs-yaml-mode" ,emacs-yaml-mode)))
+     (list emacs-dash emacs-f emacs-yaml-mode))
     (home-page "https://github.com/meqif/docker-compose-mode/")
     (synopsis "Major mode for editing @file{docker-compose} files")
     (description
@@ -5857,49 +5805,40 @@ completion of relevant keywords.")
                (url "lp:dvc")
                (revision revision)))
          (sha256
-          (base32
-           "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
+          (base32 "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
          (file-name (string-append name "-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
-       `(#:modules ((guix build gnu-build-system)
+       (list
+        #:modules `((guix build gnu-build-system)
                     ((guix build emacs-build-system) #:prefix emacs:)
                     (guix build utils))
-         #:imported-modules (,@%gnu-build-system-modules
+        #:imported-modules `(,@%gnu-build-system-modules
                              (guix build emacs-build-system)
                              (guix build emacs-utils))
-         #:configure-flags
-         (list (string-append "--with-lispdir="
-                              (emacs:elpa-directory (assoc-ref %outputs "out"))))
-         #:tests? #f                    ;no test suite
-         #:phases
-         (modify-phases %standard-phases
-           (add-before 'build 'set-home
-             ;; Something in dvc-bookmarks.el attempts to write config files in
-             ;; $HOME during the autoload generation.
-             (lambda _ (setenv "HOME" (getenv "TMPDIR")) #t))
-           (add-before 'build 'fix-texinfo
-             ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
-             (lambda _
-               (substitute* "texinfo/dvc-intro.texinfo"
-                 (("@itemx update ``to''")
-                  "@item update ``to''")
-                 (("@itemx brief")
-                  "@item brief")
-                 (("@itemx full")
-                  "@item full")
-                 (("@itemx drop")
-                  "@item drop")
-                 (("@itemx left file")
-                  "@item left file"))
-               #t)))))
+        #:configure-flags
+        #~(list (string-append "--with-lispdir="
+                               (emacs:elpa-directory #$output)))
+        #:tests? #f                     ;no test suite
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-before 'build 'set-home
+              ;; Something in dvc-bookmarks.el attempts to write config files
+              ;; in $HOME during the autoload generation.
+              (lambda _ (setenv "HOME" (getenv "TMPDIR"))))
+            (add-before 'build 'fix-texinfo
+              ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
+              (lambda _
+                (substitute* "texinfo/dvc-intro.texinfo"
+                  (("@itemx update ``to''") "@item update ``to''")
+                  (("@itemx brief") "@item brief")
+                  (("@itemx full") "@item full")
+                  (("@itemx drop") "@item drop")
+                  (("@itemx left file") "@item left file")))))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)         ;for aclocal
-         ("emacs" ,emacs-minimal)
-         ("texinfo" ,texinfo)))
+       (list autoconf automake emacs-minimal texinfo))
       (home-page "http://xsteve.at/prg/emacs_dvc/index.html")
-      (synopsis "Emacs front-end for various distributed version control systems.")
+      (synopsis "Emacs front-end for various distributed version control systems")
       (description "DVC is a legacy Emacs front-end for a number of
 distributed version control systems.  It currently supports GNU Arch, GNU
 Bazaar, git, Mercurial, and Monotone.  It also provides some integration with
@@ -5921,7 +5860,7 @@ Gnus, e.g., for applying patches received by email.")
         (base32 "1hncxbg5lvywzkwvdmzvrz71midy4samjq2vvxxhz90z1y5l8l29"))))
     (build-system emacs-build-system)
     (native-inputs
-     `(("emacs-undercover" ,emacs-undercover)))
+     (list emacs-undercover))
     (arguments
      `(#:emacs ,emacs
        #:phases
@@ -5978,7 +5917,7 @@ minibuffer to enable editing the minibuffer input in another buffer with
                 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-f" ,emacs-f)))
+     (list emacs-f))
     (home-page "http://www.gregsexton.org")
     (synopsis "Org-Babel functions for IPython evaluation")
     (description "This package adds support to Org-Babel for evaluating Python
@@ -6000,8 +5939,7 @@ source code using IPython.")
         (base32 "10x4hxrjm4pr6vg42a961h9ilqzyd0l0fv7fsbq9clxi439f1nd6"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-async" ,emacs-async)
-       ("emacs-dash" ,emacs-dash)))
+     (list emacs-async emacs-dash))
     (home-page "https://github.com/astahlman/ob-async")
     (synopsis "Asynchronous src_block execution for org-babel")
     (description "@code{ob-async} enables asynchronous execution of org-babel
@@ -6022,7 +5960,7 @@ src blocks.")
     (build-system emacs-build-system)
     (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
     (propagated-inputs
-     `(("emacs-async" ,emacs-async)))
+     (list emacs-async))
     (home-page "https://elpa.gnu.org/packages/debbugs.html")
     (synopsis "Access the Debbugs bug tracker in Emacs")
     (description
@@ -6061,15 +5999,15 @@ framework for Emacs Lisp to be used with @code{ert}.")
     (name "emacs-deferred")
     (version "0.5.1")
     (home-page "https://github.com/kiwanami/emacs-deferred")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url home-page)
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -6078,19 +6016,15 @@ framework for Emacs Lisp to be used with @code{ert}.")
            ;; Setting the SHELL environment variable is required for the tests
            ;; to find sh.
            (lambda _
-             (setenv "SHELL" (which "sh"))
-             #t))
+             (setenv "SHELL" (which "sh"))))
          (add-before 'check 'fix-makefile
            (lambda _
              (substitute* "Makefile"
-               (("\\$\\(CASK\\) exec ") ""))
-             #t)))
+               (("\\$\\(CASK\\) exec ") "")))))
        #:tests? #t
        #:test-command '("make" "test")))
     (native-inputs
-     `(("emacs-ert-expectations" ,emacs-ert-expectations)
-       ("emacs-undercover" ,emacs-undercover)
-       ("ert-runner" ,emacs-ert-runner)))
+     (list emacs-ert-expectations emacs-ert-runner emacs-undercover))
     (synopsis "Simple asynchronous functions for Emacs Lisp")
     (description
      "The @code{deferred.el} library provides support for asynchronous tasks.
@@ -6102,7 +6036,7 @@ for asynchronous tasks.")
 (define-public emacs-butler
   (package
     (name "emacs-butler")
-    (version "0.2.4")
+    (version "0.2.6")
     (home-page "https://github.com/AshtonKem/Butler")
     (source (origin
               (method git-fetch)
@@ -6112,10 +6046,10 @@ for asynchronous tasks.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
+                "1wsk5isza8xqr84w6haal95ssifz6j2lrr5phbsdc90jb9hicbff"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-deferred" ,emacs-deferred)))
+     (list emacs-deferred))
     (synopsis "Emacs client for Jenkins")
     (description
      "Butler provides an interface to connect to Jenkins continuous
@@ -6158,12 +6092,9 @@ build jobs.")
                (copy-file "emacs-zmq.so"
                           (string-append libdir "/emacs-zmq.so"))))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("zeromq" ,zeromq)))
+     (list zeromq))
     (home-page "https://github.com/nnicandro/emacs-zmq")
     (synopsis "Emacs bindings to ØMQ")
     (description "This package provides Emacs bindings to ØMQ.")
@@ -6233,9 +6164,7 @@ These are distributed in separate files and can be used individually.")
           (base32 "13fgmdy51gqdwijqfvb784pirx4lgva0y7ysi0c3fcx8f82cdj59"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-company" ,emacs-company)
-         ("emacs-dash" ,emacs-dash)
-         ("emacs-frame-local" ,emacs-frame-local)))
+       (list emacs-company emacs-dash emacs-frame-local))
       (home-page "https://github.com/sebastiencs/company-box")
       (synopsis "Company front-end with icons")
       (description
@@ -6263,8 +6192,7 @@ This package is not compatible with a TTY.")
                 "05ays6xkqbxcfplvx7wfc2slflmwc3aw7vkixvabk0ilvisndvgm"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-company" ,emacs-company)
-       ("emacs-posframe" ,emacs-posframe)))
+     (list emacs-company emacs-posframe))
     (home-page "https://github.com/tumashu/company-posframe")
     (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
     (description
@@ -6279,26 +6207,26 @@ languages.")
     (name "emacs-irony-mode")
     (version "1.5.0")
     (home-page "https://github.com/Sarcasm/irony-mode")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url (string-append home-page ".git"))
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1ilvfqn7hzrjjy2zrv08dbdnmgksdgsmrdcvx05s8704430ag0pb"))))
-    (build-system emacs-build-system)
-    (inputs `(("server" ,emacs-irony-mode-server)))
-    (arguments `(#:phases
-                 (modify-phases %standard-phases
-                   (add-after 'unpack 'configure
-                        (lambda* (#:key inputs #:allow-other-keys)
-                          (chmod "irony.el" #o644)
-                          (emacs-substitute-variables "irony.el"
-                            ("irony-server-install-prefix"
-                             (assoc-ref inputs "server")))
-                          #t)))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url (string-append home-page ".git"))
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1ilvfqn7hzrjjy2zrv08dbdnmgksdgsmrdcvx05s8704430ag0pb"))))
+    (build-system emacs-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'configure
+            (lambda _
+              (chmod "irony.el" #o644)
+              (emacs-substitute-variables "irony.el"
+                ("irony-server-install-prefix" #$emacs-irony-mode-server)))))))
+    (inputs (list emacs-irony-mode-server))
     (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
     (description "Irony-mode provides Clang-assisted syntax checking and
 completion for C, C++, and ObjC in GNU Emacs.  Using @code{libclang} it can
@@ -6309,10 +6237,9 @@ described on the homepage.")
     (license license:gpl3+)))
 
 (define-public emacs-irony-mode-server
-  (package (inherit emacs-irony-mode)
+  (package
+    (inherit emacs-irony-mode)
     (name "emacs-irony-mode-server")
-    (inputs
-     `(("clang" ,clang)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -6321,7 +6248,9 @@ described on the homepage.")
              (let ((out (assoc-ref outputs "out")))
                (invoke "cmake"
                        "server"
-                       (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
+                       (string-append "-DCMAKE_INSTALL_PREFIX=" out))))))))
+    (inputs
+     (list clang))
     (build-system cmake-build-system)
     (synopsis "Server for the Emacs @dfn{irony mode}")))
 
@@ -6340,8 +6269,7 @@ described on the homepage.")
        (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (inputs
-     `(("emacs-company" ,emacs-company)
-       ("emacs-irony-mode" ,emacs-irony-mode)))
+     (list emacs-company emacs-irony-mode))
     (synopsis "C++ completion backend for Company using Irony mode")
     (description "This backend for Company allows for C++ code completion
 with Irony mode using Clang tooling.")
@@ -6362,9 +6290,7 @@ with Irony mode using Clang tooling.")
                (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
     (build-system emacs-build-system)
     (inputs
-     `(("irony-mode" ,emacs-irony-mode)
-       ("flycheck-mode" ,emacs-flycheck)
-       ("emacs-company" ,emacs-company)))
+     (list emacs-irony-mode emacs-flycheck emacs-company))
     (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
     (description "This package provides a frontend for Flycheck that lets
 irony-mode do the syntax checking.")
@@ -6386,7 +6312,7 @@ irony-mode do the syntax checking.")
         (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
     (build-system emacs-build-system)
     (inputs
-     `(("irony-mode" ,emacs-irony-mode)))
+     (list emacs-irony-mode))
     (synopsis "Eldoc integration for irony-mode")
     (description "Irony-eldoc is an eldoc extension that shows documentation
 for the current function or variable in the minibuffer.")
@@ -6394,31 +6320,26 @@ for the current function or variable in the minibuffer.")
     (license license:gpl3+)))
 
 (define-public emacs-company-quickhelp
-  ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason,
-  ;; so we use the latest 2.2.0 commit instead
-  (let ((commit "479676cade80a9f03802ca3d956591820ed5c537")
-        (revision "1"))
-    (package
-      (name "emacs-company-quickhelp")
-      (version (git-version "2.2.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/expez/company-quickhelp")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-pos-tip" ,emacs-pos-tip)
-         ("emacs-company" ,emacs-company)))
-      (home-page "https://github.com/expez/company-quickhelp")
-      (synopsis "Popup documentation for completion candidates")
-      (description "@code{company-quickhelp} shows documentation for the
+  (package
+    (name "emacs-company-quickhelp")
+    (version "2.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/expez/company-quickhelp")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "08ccsfvwdpzpj0gai3xrdb2bv1nl6myjkxsc5774pbvlq9nkfdvr"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     (list emacs-pos-tip emacs-company))
+    (home-page "https://github.com/expez/company-quickhelp")
+    (synopsis "Popup documentation for completion candidates")
+    (description "@code{company-quickhelp} shows documentation for the
 completion candidate when using the Company text completion framework.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-math-symbol-lists
   (package
@@ -6455,10 +6376,7 @@ completion candidate when using the Company text completion framework.")
        (sha256
         (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
     (inputs
-     `(("emacs-company" ,emacs-company)
-       ("emacs-company-math" ,emacs-company-math)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-yasnippet" ,emacs-yasnippet)))
+     (list emacs-company emacs-company-math emacs-dash emacs-yasnippet))
     (build-system emacs-build-system)
     (home-page "https://github.com/cpitclaudel/company-coq")
     (synopsis "Emacs extensions for Proof General's Coq mode")
@@ -6492,8 +6410,7 @@ features:
         (base32 "1y1fw926insgdl7ib9ynxjrxf3p6wfjkfxvf5vgdca7267cvcll1"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
-       ("emacs-company" ,emacs-company)))
+     (list emacs-math-symbol-lists emacs-company))
     (home-page "https://github.com/vspinu/company-math")
     (synopsis "Completion backends for math symbols and @code{LaTeX} tags")
     (description
@@ -6562,7 +6479,7 @@ completion candidates vertically.")
           (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-parent-mode" ,emacs-parent-mode)))
+       (list emacs-parent-mode))
       (home-page "https://gitlab.com/jjzmajic/handle")
       (synopsis "Handle generic functions across related major modes")
       (description "This package provides generic functions that specialize on
@@ -6631,8 +6548,7 @@ provide an incremental search that moves all fake cursors in sync.")
           (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-phi-search" ,emacs-phi-search)
-         ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
+       (list emacs-phi-search emacs-multiple-cursors))
       (home-page "https://github.com/knu/phi-search-mc.el")
       (synopsis "Extend @code{phi-search} with additional
 @code{multiple-cursors} functionality")
@@ -6681,7 +6597,7 @@ simultaneous cursors.")
           (base32 "065l04ylplng1vgykkbn2vnkcs3sn1k2cikx1ha2q8wmgx6bkvai"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)))
+       (list emacs-dash))
       (home-page "https://github.com/magnars/multifiles.el")
       (synopsis "Edit multiple files in a single Emacs buffer")
       (description
@@ -6706,7 +6622,7 @@ one Emacs buffer.")
           (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
+       (list emacs-multiple-cursors))
       (home-page "https://github.com/knu/mc-extras.el")
       (synopsis "Extra functions for manipulating multiple cursors")
       (description
@@ -6754,13 +6670,9 @@ on context.")
                 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-lsp-mode" ,emacs-lsp-mode)
-       ("emacs-company" ,emacs-company)
-       ("emacs-s" ,emacs-s)
-       ("emacs-dash" ,emacs-dash)))
+     (list emacs-dash emacs-lsp-mode emacs-company emacs-s emacs-dash))
     (native-inputs
-     `(("emacs-buttercup" ,emacs-buttercup)))
+     (list emacs-buttercup))
     (arguments
      `(#:tests? #t
        #:test-command '("buttercup" "-L" ".")))
@@ -6864,31 +6776,33 @@ to a key in your preferred mode.")
            "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
       (build-system emacs-build-system)
       (arguments
-       `(#:modules ((guix build emacs-build-system)
+       (list
+        #:modules '((guix build emacs-build-system)
                     ((guix build cmake-build-system) #:prefix cmake:)
                     (guix build utils))
-         #:imported-modules (,@%emacs-build-system-modules
+        #:imported-modules `(,@%emacs-build-system-modules
                              (guix build cmake-build-system))
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'configure
-             (lambda* (#:key outputs #:allow-other-keys)
-               (substitute* "el/CMakeLists.txt"
-                 (("share/emacs/site-lisp/SuperCollider")
-                  (elpa-directory (assoc-ref outputs "out"))))
-               ((assoc-ref cmake:%standard-phases 'configure)
-                #:outputs outputs
-                #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
-           (add-after 'expand-load-path 'add-el-dir-to-emacs-load-path
-             (lambda _
-               (setenv "EMACSLOADPATH"
-                       (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
-               #t))
-           (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'configure
+              (lambda _
+                (substitute* "el/CMakeLists.txt"
+                  (("share/emacs/site-lisp/SuperCollider")
+                   (elpa-directory #$output)))
+                ((assoc-ref cmake:%standard-phases 'configure)
+                 #:outputs outputs
+                 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
+            (add-after 'expand-load-path 'add-el-dir-to-emacs-load-path
+              (lambda _
+                (setenv "EMACSLOADPATH"
+                        (string-append (getcwd)
+                                       "/el:"
+                                       (getenv "EMACSLOADPATH")))))
+            (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
       (inputs
-       `(("supercollider" ,supercollider)))
+       (list supercollider))
       (native-inputs
-       `(("cmake" ,cmake-minimal)))
+       (list cmake-minimal))
       (home-page "https://github.com/supercollider/scel")
       (synopsis "SuperCollider Emacs interface")
       (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
@@ -6912,9 +6826,7 @@ SuperCollider is a platform for audio synthesis and algorithmic composition.")
                   "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-yasnippet" ,emacs-yasnippet)
-         ("emacs-auctex" ,emacs-auctex)
-         ("emacs-company" ,emacs-company)))
+       (list emacs-yasnippet emacs-auctex emacs-company))
       (home-page "https://github.com/alexeyr/company-auctex/")
       (synopsis "Completion for @code{AUCTeX}")
       (description
@@ -6944,7 +6856,7 @@ for @code{AUCTeX}.")
         (base32
          "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
     (build-system emacs-build-system)
-    (inputs `(("mit-scheme" ,mit-scheme)))
+    (inputs (list mit-scheme))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -7000,8 +6912,7 @@ constants and units into an Emacs buffer.")
         (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-s" ,emacs-s)
-       ("emacs-dash" ,emacs-dash)))
+     (list emacs-s emacs-dash))
     (home-page "https://github.com/magnars/tagedit")
     (synopsis "Some paredit-like features for html-mode")
     (description
@@ -7024,7 +6935,7 @@ in @code{html-mode}.")
         (base32 "1a25ixb7q4svqabxnhwkk43v47mbsh13qwm7qlazkd3zkr8j3cli"))))
     (build-system emacs-build-system)
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (arguments
      `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
        #:exclude '("^slime-tests.el" "^contrib/test/"
@@ -7112,9 +7023,7 @@ and popup menus.")
          "1cmzc0fa3jj7ajxbqhbsc8jx47k6g223sfd42c4lrqdnmh95760m"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-reformatter" ,emacs-reformatter)
-       ("python-black-macchiato" ,python-black-macchiato)))
+     (list emacs-dash emacs-reformatter python-black-macchiato))
     (arguments `(#:tests? #f))
     (home-page "https://github.com/wbolster/emacs-python-black")
     (synopsis "Reformat Python code via @code{python-black}")
@@ -7141,7 +7050,7 @@ buffers, respectively.")
     (arguments
      `(#:tests? #f))     ;tests fail with "emacs: standard input is not a tty"
     (propagated-inputs
-     `(("python-isort" ,python-isort)))
+     (list python-isort))
     (home-page "https://github.com/paetzke/py-isort.el")
     (synopsis "Sort the imports in Python buffers")
     (description
@@ -7164,7 +7073,7 @@ using @code{python-isort}.")
         (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-deferred" ,emacs-deferred)))
+     (list emacs-deferred))
     (home-page "https://github.com/tkf/emacs-python-environment")
     (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
     (description
@@ -7186,11 +7095,9 @@ using @code{python-isort}.")
                 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
     (build-system emacs-build-system)
     (native-inputs
-     `(("emacs-mocker" ,emacs-mocker)))
+     (list emacs-mocker))
     (propagated-inputs
-     `(("emacs-auto-complete" ,emacs-auto-complete)
-       ("emacs-python-environment" ,emacs-python-environment)
-       ("emacs-epc" ,emacs-epc)))
+     (list emacs-auto-complete emacs-python-environment emacs-epc))
     (home-page "https://github.com/tkf/emacs-jedi")
     (synopsis "Provides Python completion in Emacs")
     (description
@@ -7213,8 +7120,7 @@ the locations of docstrings, arguments, and functions.")
                 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-jedi" ,emacs-jedi)
-       ("emacs-company" ,emacs-company)))
+     (list emacs-jedi emacs-company))
     (home-page "https://github.com/syohex/emacs-company-jedi")
     (synopsis "Provides Python completion in @code{company-mode}")
     (description
@@ -7271,7 +7177,7 @@ linting of manifests and integration with Puppet Debugger.")
                (invoke "makeinfo" "--no-split"
                        "-o" "purescript-mode.info" "purescript-mode.texi"))))))
       (native-inputs
-       `(("texinfo" ,texinfo)))
+       (list texinfo))
       (home-page "https://github.com/purescript-emacs/purescript-mode")
       (synopsis "Emacs major mode and related tools for Purescript")
       (description "This package provides an Emacs major mode for writing Purescript.")
@@ -7340,7 +7246,7 @@ sgml/html integration, and indentation (working with sgml).")
                   "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-company" ,emacs-company)))
+       (list emacs-company))
       (arguments
        `(#:include (cons "^tools\\/" %default-include)))
       (home-page "https://github.com/iquiw/company-cabal/")
@@ -7481,8 +7387,7 @@ when the cursor enters a fragment and disappear when it leaves.")
         (base32 "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-org" ,emacs-org)
-       ("emacs-persist" ,emacs-persist)))
+     (list emacs-org emacs-persist))
     (home-page "https://gitlab.com/phillord/org-drill")
     (synopsis "Flash card memorization system using Org mode")
     (description
@@ -7510,8 +7415,7 @@ cards created in Org mode.")
           (base32 "1if610hq5j8rbjh1caw5bwbgnsn231awwxqbpwvrh966kdxzl4qf"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-request" ,emacs-request)))
+       (list emacs-dash emacs-request))
       (home-page "https://github.com/louietan/anki-editor")
       (synopsis "Minor mode for making Anki cards with Org mode")
       (description
@@ -7559,7 +7463,7 @@ email.")
           (base32 "15gd5zbxvdallyra9lmpb9i1r2mmwz0j0i0ra7j9imnbfiz3ln9r"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-htmlize" ,emacs-htmlize)))
+       (list emacs-htmlize))
       (home-page "https://github.com/jeremy-compostella/org-msg")
       (synopsis "Mix Org mode and Message mode to compose emails")
       (description
@@ -7583,7 +7487,7 @@ emails in a Outlook HTML friendly style.")
         (base32 "12inin2p6pm6vbv3yc06fx343dsp0vp07fjb35w088akhikmqh2a"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-org" ,emacs-org)))
+     (list emacs-org))
     (home-page "https://github.com/integral-dw/org-superstar-mode")
     (synopsis "Prettify headings and plain lists in Org mode")
     (description "This package prettifies headings and plain lists in
@@ -7634,7 +7538,7 @@ Features degrade gracefully when viewed from terminal.")
                (substitute* "org-pandoc-import.el"
                  (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))))))))
     (inputs
-     `(("pandoc" ,pandoc)))
+     (list pandoc))
     (home-page "https://github.com/tecosaur/org-pandoc-import/")
     (synopsis "Read and edit non-Org file types in Org")
     (description
@@ -7664,7 +7568,7 @@ save, it exports back to the original non-Org file.")
           (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-alert" ,emacs-alert)))
+       (list emacs-alert))
       (arguments
        `(#:include (cons "^resources\\/" %default-include)
          #:tests? #t
@@ -7715,11 +7619,8 @@ started with 20 minutes.  All values are customizable.")
         (base32 "1r8kp954ciin4j7j7j8ihdkryf5x09s3ryl7bi9h2j6xqc1ij4wq"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-org-super-agenda" ,emacs-org-super-agenda)
-       ("emacs-org" ,emacs-org)
-       ("emacs-org-ql" ,emacs-org-ql)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-dash emacs-org-super-agenda emacs-org emacs-org-ql
+           emacs-s))
     (home-page "https://github.com/alphapapa/org-sidebar")
     (synopsis "Helpful sidebar for Org buffers")
     (description "This package provides a sidebar for Org buffers.  At the
@@ -7746,12 +7647,12 @@ overview of tasks in a subtree.")
          "18y5zdjc7zh4jlwz6k1nl13i721rknqm0vp4mxfnmq0sc5a0qva0"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-deferred" ,emacs-deferred)
-       ("emacs-f" ,emacs-f)
-       ("emacs-helm" ,emacs-helm)
-       ("emacs-request" ,emacs-request)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-dash
+           emacs-deferred
+           emacs-f
+           emacs-helm
+           emacs-request
+           emacs-s))
     (home-page "https://org-trello.github.io")
     (synopsis "Emacs minor mode for interacting with Trello")
     (description "This package provides an Emacs minor mode to extend
@@ -7776,7 +7677,7 @@ organizer.")
           (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-org" ,emacs-org)))
+       (list emacs-org))
       (home-page "https://github.com/mtekman/org-tanglesync.el")
       (synopsis "Sync Org source blocks with tangled external files")
       (description "This package automatically pulls changes from source code
@@ -7800,8 +7701,7 @@ to their corresponding tangled blocks.")
                   "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-company" ,emacs-company)
-         ("emacs-dash" ,emacs-dash)))
+       (list emacs-company emacs-dash))
       (home-page "https://github.com/aaronjensen/company-flow/")
       (synopsis "Flow backend for @code{company-mode}")
       (description
@@ -7909,7 +7809,7 @@ variants.")
         (base32 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)))
+     (list emacs-dash))
     (home-page "https://github.com/bbatsov/solarized-emacs")
     (synopsis "Port of the Solarized theme for Emacs")
     (description
@@ -7979,7 +7879,7 @@ dark background.")
                 "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-autothemer" ,emacs-autothemer)))
+     (list emacs-autothemer))
     (home-page "https://github.com/greduan/emacs-theme-gruvbox")
     (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
     (description
@@ -8033,7 +7933,7 @@ orange and red as accent colors.")
           (base32 "0zcnbxvlwi4d6vzsm3ag7z74qphdigmx303gppb9d614jnsfsdg2"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-ox-hugo" ,emacs-ox-hugo)))
+       (list emacs-ox-hugo))
       (home-page "https://titan-c.gitlab.io/org-cv/")
       (synopsis "Collection of export backends for Org to generate a CV")
       (description
@@ -8113,7 +8013,7 @@ the game of chess.")
           (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-request" ,emacs-request)))
+       (list emacs-request))
       (home-page "https://github.com/emacsorphanage/4clojure/")
       (synopsis "Open and evaluate 4clojure questions in Emacs")
       (description "Emacs 4clojure interacts with
@@ -8136,6 +8036,24 @@ answers.")
        (sha256
         (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6"))))
     (build-system emacs-build-system)
+    (arguments
+     `(#:include (cons "^build\\/.*\\.el$"
+                       %default-include)
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'mv-themes
+           (lambda* (#:key outputs #:allow-other-keys)
+             (use-modules (ice-9 regex))
+             (let* ((out (assoc-ref outputs "out"))
+                    (theme-dir (string-append (elpa-directory out) "/build")))
+               (for-each (lambda (theme)
+                           (rename-file
+                            theme
+                            (regexp-substitute #f
+                                               (string-match "build\\/" theme)
+                                               'pre 'post)))
+                         (find-files theme-dir "\\.el$"))
+               (delete-file-recursively theme-dir)))))))
     (home-page "https://github.com/belak/base16-emacs")
     (synopsis "Base16 color themes for Emacs")
     (description
@@ -8147,7 +8065,7 @@ single theme but a set of guidelines with numerous implementations.")
 (define-public emacs-solaire-mode
   (package
     (name "emacs-solaire-mode")
-    (version "2.0.2")
+    (version "2.0.4")
     (source
      (origin
        (method git-fetch)
@@ -8156,7 +8074,7 @@ single theme but a set of guidelines with numerous implementations.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "01c1lkr21y0cd6gixzd38mql89k70jn049jr0xhazgz16cnw1g7j"))))
+        (base32 "1lkm09wznal0grpz61ikc77mjrri1x1bi79qwyf1cah9s0wv3isq"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/hlissner/emacs-solaire-mode")
     (synopsis "Change background of file-visiting buffers in Emacs")
@@ -8168,40 +8086,42 @@ them easier to distinguish from other, less important buffers.")
     (license license:expat)))
 
 (define-public emacs-embark
-  (package
-    (name "emacs-embark")
-    (version "0.10")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/oantolin/embark")
-             (commit version)))
-       (sha256
-        (base32 "063hc0hganws11vjdk3ic0mxm9i0vpw6s7hzbgxvja0gjkdxjldz"))
-       (file-name (git-file-name name version))))
-    (build-system emacs-build-system)
-    (propagated-inputs
-     `(("emacs-avy" ,emacs-avy)
-       ("emacs-consult" ,emacs-consult)))
-    (home-page "https://github.com/oantolin/embark")
-    (synopsis "Emacs mini-buffer actions rooted in keymaps")
-    (description
-     "This package provides a sort of right-click contextual menu for Emacs
+  ;; XXX: Upstream did not tag last release.  Commit hash below matches
+  ;; version bump.
+  (let ((commit "bc3e4654329563ab28a96003610634c3a5e5a484"))
+    (package
+      (name "emacs-embark")
+      (version "0.13")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/oantolin/embark")
+               (commit commit)))
+         (sha256
+          (base32 "1x6m6gc32z7kv9nkr8mwhi9mimbwhd37qyxpwj33hml9ygi8s7r6"))
+         (file-name (git-file-name name version))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       (list emacs-avy emacs-consult))
+      (home-page "https://github.com/oantolin/embark")
+      (synopsis "Emacs mini-buffer actions rooted in keymaps")
+      (description
+       "This package provides a sort of right-click contextual menu for Emacs
 offering you relevant @emph{actions} to use on a @emph{target} determined by
 the context.
 
 In the minibuffer, the target is the current best completion candidate.  In
-the @code{*Completions*} buffer the target is the completion at point.
-n a regular buffer, the target is the region if active, or else the file,
-symbol or URL at point.
+the @code{*Completions*} buffer the target is the completion at point.  In
+a regular buffer, the target is the region if active, or else the file, symbol
+or URL at point.
 
 The type of actions offered depend on the type of the target.  For files you
 get offered actions like deleting, copying, renaming, visiting in another
 window, running a shell command on the file, etc.  For buffers the actions
 include switching to or killing the buffer.  For package names the actions
 include installing, removing or visiting the homepage.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-prescient
   (package
@@ -8218,9 +8138,7 @@ include installing, removing or visiting the homepage.")
         (base32 "0d6kbczkamhhcmc8bf01q6k1x0g7dwjihwllzsldgga3dclyh4ks"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-company" ,emacs-company)
-       ("emacs-ivy" ,emacs-ivy)
-       ("emacs-selectrum" ,emacs-selectrum)))
+     (list emacs-company emacs-ivy emacs-selectrum))
     (home-page "https://github.com/raxod502/prescient.el/")
     (synopsis "Emacs library for sorting and filtering candidates")
     (description
@@ -8278,7 +8196,7 @@ interface.")
                            (string-append (assoc-ref outputs "out")
                                           "/share/info")))))))
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (home-page "https://github.com/oantolin/orderless")
     (synopsis "Emacs completion style that matches multiple regexps in any order")
     (description "This package provides an orderless completion style that
@@ -8291,7 +8209,7 @@ style, or as multiple word prefixes.")
 (define-public emacs-consult
   (package
     (name "emacs-consult")
-    (version "0.11")
+    (version "0.13")
     (source
      (origin
        (method git-fetch)
@@ -8299,12 +8217,11 @@ style, or as multiple word prefixes.")
              (url "https://github.com/minad/consult")
              (commit version)))
        (sha256
-        (base32 "01kx3zg858bqyajglamxn319qabycnabzj73kl4x7sd55p2yi179"))
+        (base32 "0ik5j4i4vb9hz629cjwnzhimskpv0fc8wca37z4ak0q1d898ayph"))
        (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-flycheck" ,emacs-flycheck)
-       ("emacs-selectrum" ,emacs-selectrum)))
+     (list emacs-flycheck emacs-selectrum))
     (home-page "https://github.com/minad/consult")
     (synopsis "Consulting completing-read")
     (description "This package provides various handy commands based on the
@@ -8315,7 +8232,7 @@ list of candidates.")
 (define-public emacs-consult-notmuch
   (package
     (name "emacs-consult-notmuch")
-    (version "0.5")
+    (version "0.6")
     (source
      (origin
        (method git-fetch)
@@ -8324,11 +8241,10 @@ list of candidates.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "04ha4mysxvfz6yzbkgrl1mcwic1lwr1xx6gdy5rl6hn1wwnwam4p"))))
+        (base32 "07qbm5p4cfrrwyp8a5sw0wkdhnqbappz4xjlnjil2krhj9g39q78"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-consult" ,emacs-consult)
-       ("emacs-notmuch" ,emacs-notmuch)))
+     (list emacs-consult emacs-notmuch))
     (home-page "https://codeberg.org/jao/consult-notmuch")
     (synopsis "Search and preview Notmuch emails using Consult")
     (description
@@ -8337,27 +8253,30 @@ and present results either as single emails or full trees.")
     (license license:gpl3+)))
 
 (define-public emacs-marginalia
-  (package
-    (name "emacs-marginalia")
-    (version "0.8")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/minad/marginalia")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1d6xbidxcxd5gxs5cjxbx1i1wdcmgdnn3hh7fxz0sgf1gaxyp5kv"))))
-    (build-system emacs-build-system)
-    (home-page "https://github.com/minad/marginalia")
-    (synopsis "Marginalia in the minibuffer completions")
-    (description
-     "This package provides Marginalia mode which adds marginalia to the
+  ;; Upstream did not tag latest release.  The commit below matches version
+  ;; bump.
+  (let ((commit "2dbad0b166d6dc76862697bb25b95d34c1703acc"))
+    (package
+      (name "emacs-marginalia")
+      (version "0.10")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/minad/marginalia")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0xb0w7fxbmwbq2mdhs7xrf8z6x6qmkq68p1fv08wb4ksvphyvz5h"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/minad/marginalia")
+      (synopsis "Marginalia in the minibuffer completions")
+      (description
+       "This package provides Marginalia mode which adds marginalia to the
 minibuffer completions.  Marginalia are marks or annotations placed at the
 margin of the page of a book or in this case helpful colorful annotations
 placed at the margin of the minibuffer for your completion candidates.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-smartparens
   (package
@@ -8374,8 +8293,7 @@ placed at the margin of the minibuffer for your completion candidates.")
         (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-markdown-mode" ,emacs-markdown-mode)))
+     (list emacs-dash emacs-markdown-mode))
     (home-page "https://github.com/Fuco1/smartparens")
     (synopsis "Paredit-like insertion, wrapping and navigation with user
 defined pairs")
@@ -8475,7 +8393,7 @@ regexp that matches all known keywords.")
 (define-public emacs-perspective
   (package
     (name "emacs-perspective")
-    (version "2.16")
+    (version "2.17")
     (source
      (origin
        (method git-fetch)
@@ -8484,7 +8402,7 @@ regexp that matches all known keywords.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0hg4rj3v748f6k4fwa21g683vs3bfya0wg9r9xdg216kdhfdk5j7"))))
+        (base32 "1nmz39pcaa969g1966ykblzrz6lr3ddb0ip465y5in1fj498as6y"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -8545,7 +8463,7 @@ can be saved to and restored from a file.")
           (base32 "09s07mvg5bz3dm9sxgn40c7z6d6ry1sdjzsxwgmy825f3xm66avs"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)))
+     (list emacs-dash))
     (home-page "https://depp.brause.cc/eyebrowse/")
     (synopsis "Simple-minded way to manage window configs in Emacs")
     (description
@@ -8669,12 +8587,9 @@ after buffer changes.")
              #t)))
        #:include (cons* ".*\\.el$" %default-include)))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("emacs-test-simple" ,emacs-test-simple)))
+     (list autoconf automake emacs-test-simple))
     (propagated-inputs
-     `(("emacs-load-relative" ,emacs-load-relative)
-       ("emacs-loc-changes" ,emacs-loc-changes)))
+     (list emacs-load-relative emacs-loc-changes))
     (home-page "https://github.com/realgud/realgud/")
     (synopsis
      "Modular front-end for interacting with external debuggers")
@@ -8713,9 +8628,9 @@ a source code input file.")
 
 (define-public emacs-request
   ;; We prefer a more recent commit that has support for auth-source,
-  ;; which makes authentication more convenient for users and maintainers.
-  (let ((commit "d02d1347ffdf138cffd380cbeac62ac8732036ef")
-        (revision "0"))
+  ;; and has some bug fixes for Emacs 28.
+  (let ((commit "3336eaa97de923f74b90dda3e35985e122d40805")
+        (revision "1"))
     (package
       (name "emacs-request")
       (version (git-version "0.3.2" revision commit))
@@ -8727,12 +8642,12 @@ a source code input file.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1rkpakzish2d470ca15yq3k0m1j7a2lrkvvddcyvc2rx0sncsdjs"))))
+                  "0jckwy5zhz95d6l3lz8b9b34pppcjjzy97fg1wn8mqzhf3h460ac"))))
       (build-system emacs-build-system)
       (arguments
        `(#:tests? #f))                  ; requires network access.
       (propagated-inputs
-       `(("emacs-deferred" ,emacs-deferred)))
+       (list emacs-deferred))
       (home-page "https://github.com/tkf/emacs-request")
       (synopsis "Package for speaking HTTP in Emacs Lisp")
       (description "This package provides a HTTP request library with multiple
@@ -8810,9 +8725,7 @@ automatically.")
          "08a15knkdq35pzjq82imff016fbfdib5q4glg2xmdy2b5fnk7jqa"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-hydra" ,emacs-hydra)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-dash emacs-hydra emacs-s))
     (arguments
      `(#:exclude (cons "^major-mode-hydra\\.el" %default-exclude)))
     (home-page "https://github.com/jerrypnz/major-mode-hydra.el")
@@ -8850,8 +8763,7 @@ by side to an Org buffer with your notes relevant to the current page.")
     (inherit emacs-pretty-hydra)
     (name "emacs-major-mode-hydra")
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-pretty-hydra" ,emacs-pretty-hydra)))
+     (list emacs-dash emacs-pretty-hydra))
     (arguments
      `(#:exclude (cons "^pretty-hydra\\.el" %default-exclude)))
     (synopsis "Create nice-looking hydras")
@@ -8871,7 +8783,7 @@ hydras with one column per group of heads.")))
         (base32 "0qpza1c45mr8fcpnm32cck4v22fnzz1yb7kww05rzgq1k9iivx5v"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-hydra" ,emacs-hydra)))
+     (list emacs-hydra))
     (home-page "https://github.com/abo-abo/swiper")
     (synopsis "Incremental vertical completion for Emacs")
     (description
@@ -8896,7 +8808,7 @@ expression.")
         (base32 "094zfapfn1l8wjf3djkipk0d9nks0g77sbk107pfsbr3skkzh031"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-swiper" ,emacs-swiper)))
+     (list emacs-swiper))
     (home-page "https://github.com/abo-abo/swiper")
     (synopsis "Various completion functions using Ivy")
     (description
@@ -8928,7 +8840,7 @@ The following completions are currently available:
         (base32 "197pq2cvvskib87aky907wv2am55vilr7y5dabmmm07a8vr9py0v"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-ivy" ,emacs-ivy)))
+     (list emacs-ivy))
     (home-page "https://github.com/abo-abo/swiper")
     (synopsis "Isearch with an overview")
     (description
@@ -8958,7 +8870,7 @@ matched.")
            "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-ivy" ,emacs-ivy)))
+       (list emacs-ivy))
       (home-page "https://github.com/alexmurray/ivy-xref")
       (synopsis "Ivy interface for @code{xref}")
       (description "This package provides an Ivy interface for selecting from
@@ -8983,9 +8895,7 @@ matched.")
            "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-ivy" ,emacs-ivy)
-         ("emacs-password-store" ,emacs-password-store)
-         ("password-store" ,password-store)))
+       (list emacs-ivy emacs-password-store password-store))
       (home-page "https://github.com/ecraven/ivy-pass")
       (synopsis "Ivy interface for password store (pass)")
       (description "This package provides an Ivy interface for working with
@@ -9010,9 +8920,7 @@ the password store @code{pass}.")
            "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-ivy" ,emacs-ivy)
-         ("emacs-yasnippet" ,emacs-yasnippet)
-         ("emacs-dash" ,emacs-dash)))
+       (list emacs-ivy emacs-yasnippet emacs-dash))
       (home-page "https://github.com/mkcms/ivy-yasnippet")
       (synopsis "Preview @code{yasnippets} with @code{ivy}")
       (description "This package allows you to select @code{yasnippet}
@@ -9042,7 +8950,7 @@ use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
           (base32 "1dv6vr7fv32v5m04zdy02sdajpvrnpc4i3pbh2dwfv73ff8d8yxm"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-ivy" ,emacs-ivy)))
+       (list emacs-ivy))
       (home-page "https://github.com/Yevgnen/ivy-rich")
       (synopsis "More friendly interface for @code{ivy}")
       (description
@@ -9100,7 +9008,7 @@ windows.")
          "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-avy" ,emacs-avy)))
+     (list emacs-avy))
     (home-page "https://github.com/abo-abo/ace-window")
     (synopsis "Quickly switch windows in Emacs")
     (description
@@ -9152,8 +9060,7 @@ possible, and falls back to moving the left or top border otherwise.")
          "1cw513mh3gyl21qpmgwqjgpi8kwddmd4n69l4ax5a5pv3vvwrcx9"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-let-alist" ,emacs-let-alist)
-       ("emacs-imenu-list" ,emacs-imenu-list)))
+     (list emacs-let-alist emacs-imenu-list))
     (arguments
      '(#:include
        '("^[^/]+.el$"
@@ -9250,15 +9157,10 @@ navigate code in a tree-like fashion.")
                 (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-ace-window" ,emacs-ace-window)
-         ("emacs-hydra" ,emacs-hydra)
-         ("emacs-iedit" ,emacs-iedit)
-         ("emacs-swiper" ,emacs-swiper)
-         ("emacs-zoutline" ,emacs-zoutline)))
+       (list emacs-ace-window emacs-hydra emacs-iedit emacs-swiper
+             emacs-zoutline))
       (native-inputs
-       `(("which" ,which)
-         ("emacs-clojure-mode" ,emacs-clojure-mode)
-         ("emacs-undercover" ,emacs-undercover)))
+       (list which emacs-clojure-mode emacs-undercover))
       (arguments
        `(#:include (cons* "^lispy-clojure\\.clj$"
                           "^lispy-python\\.py$"
@@ -9310,8 +9212,7 @@ S-expression.")
                   "10k3hxxpx2v2k4dyad7j1bzmr1q7rzvv4y6c67pa9zcqyaw8m91v"))
                 (file-name (git-file-name name version))))
       (propagated-inputs
-       `(("emacs-evil" ,emacs-evil)
-         ("emacs-lispy" ,emacs-lispy)))
+       (list emacs-evil emacs-lispy))
       (build-system emacs-build-system)
       (synopsis "Minor mode for integrating Evil with lispy")
       (description
@@ -9339,8 +9240,7 @@ state and will work even without lispy being enabled.")
            "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas"))
          (file-name (git-file-name name version))))
       (propagated-inputs
-       `(("emacs-zoutline" ,emacs-zoutline)
-         ("emacs-lispy" ,emacs-lispy)))
+       (list emacs-zoutline emacs-lispy))
       (build-system emacs-build-system)
       (home-page "https://github.com/abo-abo/lpy")
       (synopsis "Modal editing for Python")
@@ -9366,10 +9266,7 @@ allowing unprefixed keys to insert their respective characters as expected.")
         (base32 "1ikl29rygr1habcsglz07m4ihd4ivi732kkzg8q676ihf367wa9i"))))
     (build-system emacs-build-system)
     (native-inputs
-     `(("emacs-buttercup" ,emacs-buttercup)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-paredit" ,emacs-paredit)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-buttercup emacs-dash emacs-paredit emacs-s))
     (arguments
      `(#:tests? #t
        #:test-command '("buttercup")))
@@ -9403,7 +9300,7 @@ It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
       (arguments
        `(#:include (cons* "^.*\\/" %default-include)))
       (propagated-inputs
-       `(("emacs-yasnippet" ,emacs-yasnippet)))
+       (list emacs-yasnippet))
       (home-page "https://github.com/mpenet/clojure-snippets")
       (synopsis "Yasnippets for Clojure")
       (description
@@ -9474,8 +9371,7 @@ The purpose of this library is to wrap all the quirks and hassle of
         (base32 "10rz0qm8a4bl0m86kx19zq8lri047p4sxqyny08bgm9pbam0wvwn"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-swiper" ,emacs-swiper)
-       ("jq" ,jq)))
+     (list emacs-swiper jq))
     (synopsis "Live preview @code{jq} queries using counsel")
     (description
      "This Emacs package provides the ability to live preview @code{jq}
@@ -9509,11 +9405,9 @@ queries using counsel.")
                  ("counsel-notmuch-path"
                   (search-input-file inputs "/bin/notmuch"))))))))
       (inputs
-       `(("emacs-counsel" ,emacs-counsel)
-         ("notmuch" ,notmuch)
-         ("emacs-s" ,emacs-s)))
+       (list emacs-counsel notmuch emacs-s))
       (propagated-inputs
-       `(("emacs-notmuch" ,emacs-notmuch)))
+       (list emacs-notmuch))
       (home-page "https://github.com/fuxialexander/counsel-notmuch")
       (synopsis "Search emails in Notmuch asynchronously with Ivy")
       (description
@@ -9523,31 +9417,27 @@ asynchronously, with Counsel and Ivy.  Simply call
       (license license:gpl3+))))
 
 (define-public emacs-counsel-projectile
-  ;; Use a recent commit in order to fix recent breakage with Ivy.
-  (let ((commit "06b03c1080d3ccc3fa9b9c41b1ccbcf13f058e4b")
-        (revision "0"))
-    (package
-      (name "emacs-counsel-projectile")
-      (version (git-version "0.3.1" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/ericdanan/counsel-projectile")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "10afil6grwxj1x8fxd3ar7ikw3s3hzrkjsjin8wzchbz04389l7s"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-counsel" ,emacs-counsel)
-         ("emacs-projectile" ,emacs-projectile)))
-      (home-page "https://github.com/ericdanan/counsel-projectile")
-      (synopsis "Enhance Projectile with Ivy")
-      (description
-       "This package uses Ivy to provide additional actions for Projectile
+  (package
+    (name "emacs-counsel-projectile")
+    (version "0.3.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ericdanan/counsel-projectile")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1vp39r5njfzchkqv9g0w77whazp070anh9gmbkp3z4n3xxbik27f"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     (list emacs-counsel emacs-projectile))
+    (home-page "https://github.com/ericdanan/counsel-projectile")
+    (synopsis "Enhance Projectile with Ivy")
+    (description
+     "This package uses Ivy to provide additional actions for Projectile
 commands and replacements for existing functions.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-qml-mode
   (package
@@ -9631,7 +9521,7 @@ languages.")
        (sha256
         (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
     (build-system emacs-build-system)
-    (propagated-inputs `(("emacs-epl" ,emacs-epl)))
+    (propagated-inputs (list emacs-epl))
     (home-page "https://github.com/lunaryorn/pkg-info.el")
     (synopsis "Information about Emacs packages")
     (description
@@ -9671,7 +9561,7 @@ ongoing operations.")
         (base32 "0hqp8r24wvzrkl630wbm0lynrcrnawv2yn2a3xgwqwwhwgva35rn"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-company" ,emacs-company)))
+     (list emacs-company))
     (home-page "https://github.com/ljos/sparql-mode")
     (synopsis "SPARQL mode for Emacs")
     (description
@@ -9797,7 +9687,7 @@ mode with the package emacs-julia-mode.")
 (define-public emacs-julia-snail
   (package
     (name "emacs-julia-snail")
-    (version "1.0.0rc4")               ;rc5 requires CSTParser (julia package)
+    (version "1.1.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -9806,20 +9696,17 @@ mode with the package emacs-julia-mode.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "065ix3jycsx3wvkq7a6060i93caxisdvgxgqb1l6rq15n4qln78y"))))
+                "11spibld7dyggr38hzkrd05lmdf847d57cc9qyk01mb3bli21vxd"))))
     (build-system emacs-build-system)
     (arguments
      `(#:include (cons "^JuliaSnail\\.jl" %default-include)))
     (inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-s" ,emacs-s)
-       ("emacs-spinner" ,emacs-spinner)
-       ("emacs-xref" ,emacs-xref)))
-    (propagated-inputs
-     `(("libvterm" ,libvterm)
-       ("emacs-julia-mode" ,emacs-julia-mode) ;required by parser
-       ("emacs-parsec" ,emacs-parsec)         ;required by parser
-       ("emacs-vterm" ,emacs-vterm)))
+     (list emacs-dash emacs-s emacs-spinner emacs-xref))
+    (propagated-inputs
+     (list libvterm
+           emacs-julia-mode ;required by parser
+           emacs-parsec ;required by parser
+           emacs-vterm))
     (home-page "https://github.com/gcv/julia-snail")
     (synopsis "Development environment and REPL interaction package for Julia")
     (description "This package provides a development environment and REPL
@@ -9890,9 +9777,9 @@ strings, and code folding.")
                 "0a5mmg3cmdi73giblp07ksl06xzl9nb2m3f96ny4r3rv0ar3v1bx"))))
     (build-system emacs-build-system)
     (inputs
-     `(("node" ,node)))
+     (list node))
     (native-inputs
-     `(("emacs-ert-expectations" ,emacs-ert-expectations)))
+     (list emacs-ert-expectations))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -9972,10 +9859,7 @@ indentation and filling of comments and C preprocessor fontification.")
                 "1fj2fghiycnzds2zxfxgj1d9mdzsvs9rvl9bwy2f1vwawqk1m48w"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-s" ,emacs-s)
-       ("emacs-flycheck" ,emacs-flycheck)
-       ("emacs-typescript-mode" ,emacs-typescript-mode)))
+     (list emacs-dash emacs-s emacs-flycheck emacs-typescript-mode))
     (home-page "https://github.com/ananthakumaran/tide")
     (synopsis "Typescript IDE for Emacs")
     (description
@@ -10036,8 +9920,7 @@ in Emacs.")
           (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-evil" ,emacs-evil)
-         ("emacs-markdown-mode" ,emacs-markdown-mode)))
+       (list emacs-evil emacs-markdown-mode))
       (home-page "https://github.com/Somelauw/evil-markdown/")
       (synopsis "Evil keybindings for @code{markdown-mode}")
       (description
@@ -10079,8 +9962,7 @@ like @code{org-edit-src-code} but for arbitrary regions.")
                 "1wy2kpli90z7p4dqr4b7f1fv99g6lfxi1kzy2bfl0p8qi40rpmyv"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-pkg-info" ,emacs-pkg-info)))
+     (list emacs-dash emacs-pkg-info))
     (home-page "https://github.com/bbatsov/projectile")
     (synopsis "Manage and navigate projects in Emacs easily")
     (description
@@ -10108,12 +9990,9 @@ If you want to mark a folder manually as a project just create an empty
                   "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-s" ,emacs-s)
-         ("emacs-f" ,emacs-f)
-         ("emacs-dash" ,emacs-dash)
-         ("emacs-let-alist" ,emacs-let-alist)))
+       (list emacs-s emacs-f emacs-dash emacs-let-alist))
       (native-inputs
-       `(("emacs-ert-runner" ,emacs-ert-runner)))
+       (list emacs-ert-runner))
       (arguments
        `(#:include (cons "^project-skeletons\\/" %default-include)
          ;; XXX: one failing test involving initializing a git repo
@@ -10183,14 +10062,6 @@ and RSS, with a user interface inspired by notmuch.")
          (sha256
           (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
       (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-elfeed" ,emacs-elfeed)
-         ("emacs-org" ,emacs-org)
-         ("emacs-dash" ,emacs-dash)
-         ("emacs-s" ,emacs-s)))
-      (native-inputs
-       `(("ert-runner" ,emacs-ert-runner)
-         ("emacs-xtest" ,emacs-xtest)))
       (arguments
        `(#:tests? #t
          #:test-command '("ert-runner" "-L" "org-mode/lisp")
@@ -10198,8 +10069,11 @@ and RSS, with a user interface inspired by notmuch.")
          (modify-phases %standard-phases
            (add-before 'check 'chmod
              (lambda _
-               (chmod "test/fixture-mark-feed-ignore.org" #o644)
-               #t)))))
+               (chmod "test/fixture-mark-feed-ignore.org" #o644))))))
+      (propagated-inputs
+       (list emacs-elfeed emacs-org emacs-dash emacs-s))
+      (native-inputs
+       (list emacs-ert-runner emacs-xtest))
       (home-page "https://github.com/remyhonig/elfeed-org")
       (synopsis "Configure Elfeed with an Org-mode file")
       (description
@@ -10225,7 +10099,7 @@ much easier.")
         (base32 "07r1qlldgd0kfikd0y737y5n42ab3nkw2s5jx7frimj41yandbdp"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-elfeed" ,emacs-elfeed)))
+     (list emacs-elfeed))
     (home-page "https://github.com/fasheng/elfeed-protocol")
     (synopsis "Fever/NewsBlur/ownCloud/tt-RSS protocols for Elfeed")
     (description
@@ -10237,7 +10111,7 @@ with Elfeed.")
 (define-public emacs-elfeed-score
   (package
     (name "emacs-elfeed-score")
-    (version "0.8.6")
+    (version "1.2.1")
     (source
      (origin
        (method git-fetch)
@@ -10246,10 +10120,10 @@ with Elfeed.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1r77b5vj4klqww7q7flw8h5i9w6y36zv2n7hx36pp1sav6s3a4r9"))))
+        (base32 "10wsjq2zd6kz9182gnkjzlzywx16j29dgm1gzwynr79xmvgs4r2b"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-elfeed" ,emacs-elfeed)))
+     (list emacs-elfeed))
     (home-page "https://github.com/sp1ff/elfeed-score")
     (synopsis "Gnus-style scoring for Elfeed")
     (description
@@ -10320,27 +10194,50 @@ name suggestion or @code{nil}, they are called in turn and the first non-nil
 suggestion is taken.")
       (license license:gpl3+))))
 
-(define-public emacs-mocker
+(define-public emacs-eterm-256color
   (package
-    (name "emacs-mocker")
-    (version "0.5.0")
+    (name "emacs-eterm-256color")
+    (version "0.3.13")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/sigma/mocker.el")
-                    (commit (string-append "v" version))))
+                    (url "https://github.com/dieggsy/eterm-256color")
+                    (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1dc514cqbfmg33sb3j90s5jmw6jnm3wzvs0zhw3maz13bp7w6z48"))))
+                "0ysxblc90kjcz84siprnyxwh94scflivqbxylzkvjm7hbx93rsh1"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     (list emacs-f emacs-xterm-color))
+    (home-page "https://github.com/dieggsy/eterm-256color")
+    (synopsis
+     "Customizable 256 colors for Emacs @code{term} and @code{ansi-term}")
+    (description "This package uses @code{emacs-xterm-color} to add
+customizable 256 color support to @code{term} and @code{ansi-term}.")
+    (license license:gpl3+)))
+
+(define-public emacs-mocker
+  (package
+    (name "emacs-mocker")
+    (version "0.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sigma/mocker.el")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1dc514cqbfmg33sb3j90s5jmw6jnm3wzvs0zhw3maz13bp7w6z48"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
        #:test-command '("ert-runner")))
     (native-inputs
-     `(("ert-runner" ,emacs-ert-runner)))
+     (list emacs-ert-runner))
     (propagated-inputs
-     `(("emacs-el-x" ,emacs-el-x)))
+     (list emacs-el-x))
     (home-page "https://github.com/sigma/mocker.el")
     (synopsis "Mocking framework for Emacs Lisp")
     (description "Mocker.el is a framework for writing tests in Emacs Lisp.
@@ -10351,22 +10248,26 @@ maximizes flexibility (at the expense of conciseness).")
 (define-public emacs-find-file-in-project
   (package
     (name "emacs-find-file-in-project")
-    (version "6.1.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/technomancy/find-file-in-project")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "13vsmi02v1rv5h2m62s36dw21781nxsj9dj4hlaxfz2v5avmp00c"))))
+    (version "6.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/technomancy/find-file-in-project")
+             ;; The "6.1.2" tag was modified in place, initially pointing to
+             ;; 756f616f77f3829de07821480e229c587c1afec0 and then change to
+             ;; the subsequent commit,
+             ;; 52274e6001545bdf45c6477ba21bfaa8eca04755.
+             (commit "756f616f77f3829de07821480e229c587c1afec0")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "00i62qspgmpg45gfzyq722wnni3yfmrkvlva8kmxdv5id919x1sc"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
        #:test-command '("ert-runner" "tests")))
     (native-inputs
-     `(("ert-runner" ,emacs-ert-runner)))
+     (list emacs-ert-runner))
     (home-page "https://github.com/technomancy/find-file-in-project")
     (synopsis "File/directory finder for Emacs")
     (description "@code{find-file-in-project} finds files or
@@ -10379,15 +10280,15 @@ functions to assist in reviewing changes on files.")
   (package
     (name "emacs-pyvenv")
     (version "1.21")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/jorgenschaefer/pyvenv")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jorgenschaefer/pyvenv")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -10398,8 +10299,7 @@ functions to assist in reviewing changes on files.")
        #:tests? #t
        #:test-command '("ert-runner")))
     (native-inputs
-     `(("ert-runner" ,emacs-ert-runner)
-       ("emacs-mocker" ,emacs-mocker)))
+     (list emacs-ert-runner emacs-mocker))
     (home-page "https://github.com/jorgenschaefer/pyvenv")
     (synopsis "Python virtual environment interface for Emacs")
     (description "pyvenv.el is a minor mode to support using Python virtual
@@ -10467,86 +10367,94 @@ indentation guides in Emacs:
       (license license:gpl2+))))
 
 (define-public emacs-elpy
-  (package
-    (name "emacs-elpy")
-    (version "1.35.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/jorgenschaefer/elpy")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "07rdb9w3bxzfr07224awa541xdy116hyc2b3bpl3fc3ikddmbydk"))))
-    (build-system emacs-build-system)
-    (arguments
-     `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-ffip-project-search-call
-           (lambda _
-             ;; Since version 6.0.0 of find-file-in-project,
-             ;; ffip-project-search doesn't accept a third argument anymore
-             ;; (see: https://github.com/jorgenschaefer/elpy/issues/1889).
-             (substitute* "elpy.el"
-               (("\\((ffip-project-search nil nil) project-root\\)" _ signature)
-                (format #f "(let ((ffip-project-root project-root)) (~a))"
-                        signature)))))
-         ;; The default environment of the RPC uses Virtualenv to install
-         ;; Python dependencies from PyPI.  We don't want/need this in Guix.
-         (add-before 'check 'do-not-use-virtualenv
-           (lambda _
-             (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
-             (substitute* "elpy-rpc.el"
-               (("defcustom elpy-rpc-virtualenv-path 'default")
-                "defcustom elpy-rpc-virtualenv-path 'system"))))
-         (add-before 'check 'build-doc
-           (lambda _
-             (with-directory-excursion "docs"
-               (invoke "make" "info" "man"))
-             ;; Move .info file at the root so that it can installed by the
-             ;; 'move-doc phase.
-             (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")))
-         (add-after 'build-doc 'install-manpage
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out  (assoc-ref outputs "out"))
-                    (man1 (string-append out "/share/man/man1")))
-               (mkdir-p man1)
-               (copy-file "docs/_build/man/elpy.1"
-                          (string-append man1 "/elpy.1"))))))
-       #:tests? #t
-       #:test-command '("ert-runner")))
-    (propagated-inputs
-     `(("emacs-company" ,emacs-company)
-       ("emacs-find-file-in-project" ,emacs-find-file-in-project)
-       ("emacs-highlight-indentation" ,emacs-highlight-indentation)
-       ("emacs-yasnippet" ,emacs-yasnippet)
-       ("pyvenv" ,emacs-pyvenv)
-       ("s" ,emacs-s)
-       ;; The following are recommended Python dependencies that make Elpy
-       ;; much more useful.  Installing these avoids Elpy prompting to install them
-       ;; from PyPI using pip.
-       ("python-autopep8" ,python-autopep8)
-       ("python-black" ,python-black)
-       ("python-flake8" ,python-flake8)
-       ("python-jedi" ,python-jedi)
-       ("python-rope" ,python-rope)
-       ("python-yapf" ,python-yapf)))
-    (native-inputs
-     `(("ert-runner" ,emacs-ert-runner)
-       ("emacs-f" ,emacs-f)
-       ("python" ,python-wrapper)
-       ;; For documentation.
-       ("python-sphinx" ,python-sphinx)
-       ("texinfo" ,texinfo)))
-    (home-page "https://github.com/jorgenschaefer/elpy")
-    (synopsis "Python development environment for Emacs")
-    (description "Elpy brings powerful Python editing to Emacs.  It combines
+  ;; Use the latest commit, as it contains unreleased fixes for Python 3.9 and
+  ;; Jedi 0.18.
+  (let ((commit "8d0de310d41ebf06b22321a8534546447456870c")
+        (revision "0"))
+    (package
+      (name "emacs-elpy")
+      (version (git-version "1.35.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/jorgenschaefer/elpy")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0hg6yk0wkfh2rwcc4h0bb6m2p3dg62ja22mjpa94khq52lv1piwf"))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'disable-broken-tests
+             ;; Some tests are known to have problems with Python 3.9; disable
+             ;; them (see:
+             ;; https://github.com/jorgenschaefer/elpy/issues/1856).
+             ;; Aggressively remove the modules where failing tests were
+             ;; discovered, as they are similar and fail in a nondeterministic
+             ;; way.
+             (lambda _
+               (with-directory-excursion "test"
+                 (for-each delete-file
+                           (append (find-files "." "elpy-refactor")
+                               (find-files "." "elpy-multiedit")
+                             (find-files "." "elpy-pdb")
+                             (find-files "." "elpy-promise"))))))
+           ;; The default environment of the RPC uses Virtualenv to install
+           ;; Python dependencies from PyPI.  We don't want/need this in Guix.
+           (add-before 'check 'do-not-use-virtualenv
+             (lambda _
+               (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
+               (substitute* "elpy-rpc.el"
+                 (("defcustom elpy-rpc-virtualenv-path 'default")
+                  "defcustom elpy-rpc-virtualenv-path 'system"))))
+           (add-before 'check 'build-doc
+             (lambda _
+               (with-directory-excursion "docs"
+                 (invoke "make" "info" "man"))
+               ;; Move .info file at the root so that it can installed by the
+               ;; 'move-doc phase.
+               (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")))
+           (add-after 'build-doc 'install-manpage
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out  (assoc-ref outputs "out"))
+                      (man1 (string-append out "/share/man/man1")))
+                 (mkdir-p man1)
+                 (copy-file "docs/_build/man/elpy.1"
+                            (string-append man1 "/elpy.1"))))))
+         #:tests? #t
+         #:test-command '("ert-runner")))
+      (propagated-inputs
+       (list emacs-company
+             emacs-find-file-in-project
+             emacs-highlight-indentation
+             emacs-yasnippet
+             emacs-pyvenv
+             emacs-s
+             ;; The following are recommended Python dependencies that make
+             ;; Elpy much more useful.  Installing these avoids Elpy prompting
+             ;; to install them from PyPI using pip.
+             python-autopep8
+             python-black
+             python-flake8
+             python-jedi
+             python-yapf))
+      (native-inputs
+       (list emacs-ert-runner
+             emacs-f
+             python-wrapper
+             ;; For documentation.
+             python-sphinx
+             texinfo))
+      (home-page "https://github.com/jorgenschaefer/elpy")
+      (synopsis "Python development environment for Emacs")
+      (description "Elpy brings powerful Python editing to Emacs.  It combines
 and configures a number of other packages written in Emacs Lisp as well as
 Python, together offering features such as navigation, documentation,
 completion, interactive development and more.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-rainbow-delimiters
   (package
@@ -10621,11 +10529,11 @@ names, e.g., @samp{#0000ff} is displayed in white with a blue background.")
 (define-public emacs-ryo-modal
   ;; Package has no release.  Version is extracted from "Version:" keyword in
   ;; main file.
-  (let ((commit "3a54312eea7023a86ca3f8eb3c03c872554bff2f")
+  (let ((commit "a10f564474cc8fa28a74b04e3b15375315223c44")
         (revision "0"))
     (package
       (name "emacs-ryo-modal")
-      (version (git-version "0.4" revision commit))
+      (version (git-version "0.45" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -10634,7 +10542,7 @@ names, e.g., @samp{#0000ff} is displayed in white with a blue background.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"))))
+          (base32 "0ypm1rnyry6hb4znb8sgwfi0la6q46ihm8k99kisk0mkgz7im93d"))))
       (build-system emacs-build-system)
       (home-page "https://github.com/Kungsgeten/ryo-modal")
       (synopsis "Emacs minor mode for defining modal editing environments")
@@ -10706,7 +10614,7 @@ window edge.")
          "0y4jcja9kml1lq88r8b9myk39dgaggh7q7f3a43sj828hvzlccb7"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
+     (list emacs-visual-fill-column))
     (home-page "https://github.com/joostkremers/writeroom-mode")
     (synopsis "Distraction-free writing for Emacs")
     (description
@@ -10739,8 +10647,7 @@ restrict the text width to 80 characters.")
                     (lambda _ (setenv "HOME" (getcwd)))))))
     (native-inputs
      ;; For tests.
-     `(("aspell" ,aspell)
-       ("aspell-dict-en" ,aspell-dict-en)))
+     (list aspell aspell-dict-en))
     (home-page "https://github.com/redguardtoo/wucuo")
     (synopsis "Fast spell checker for camel case code or plain text")
     (description
@@ -10764,7 +10671,7 @@ a file, or a complete directory.")
                 "1wn94nkfv6qyyj6clvms7m7ncqf09bgszv67may530y75kylivav"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-s" ,emacs-s)))
+     (list emacs-s))
     (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
     (synopsis "Replacement for completing-read using ido")
     (description
@@ -10789,7 +10696,7 @@ Emacs completion function instead.")
                 "08iwvqknicqlffda7ixwgzw7q9g2g4j4nsxdw6544r85vaysi4cc"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
+     (list emacs-ido-completing-read+))
     (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
     (synopsis "Use ido (nearly) everywhere")
     (description
@@ -10797,6 +10704,28 @@ Emacs completion function instead.")
 that uses the standard completion function completing-read.")
   (license license:gpl3+)))
 
+(define-public emacs-yaml
+  (package
+    (name "emacs-yaml")
+    (version "0.3.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zkry/yaml.el")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "13fjxrr7iyfagbm21p5is5jw1zv56ns2mnac145v8lqli6mrr5gx"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/zkry/yaml.el")
+    (synopsis "YAML parser in Elisp")
+    (description
+     "@code{yaml.el} is a YAML parser written in Emacs Lisp without any
+external dependencies.  It provides an interface similar to the Emacs JSON
+parsing utility.")
+    (license license:gpl3+)))
+
 (define-public emacs-yaml-mode
   (package
     (name "emacs-yaml-mode")
@@ -10835,7 +10764,7 @@ behavior very similar to that of Python mode.")
                 "16fb4r3vq8xkzl911v7gaky95w1agfxjlpaxpjmidwx48rbcar59"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-yaml-mode" ,emacs-yaml-mode)))
+     (list emacs-yaml-mode))
     (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
     (synopsis "Emacs mode for editing GitLab CI files")
     (description
@@ -10860,8 +10789,7 @@ via @code{gitlab-ci-lint}.")
                 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-helm" ,emacs-helm)))
+     (list emacs-dash emacs-helm))
     (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
     (synopsis "GitLab snippet API interaction for Emacs")
     (description "This package provides GitLab snippet API interaction for
@@ -10939,7 +10867,7 @@ ack, ag, helm and pt.")
 (define-public emacs-helm
   (package
     (name "emacs-helm")
-    (version "3.8.0")
+    (version "3.8.2")
     (source
      (origin
        (method git-fetch)
@@ -10948,11 +10876,10 @@ ack, ag, helm and pt.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1xrpv0sqmlwn94bc31k2iav284i1hl95937541ihlkhqg6v2vwrv"))))
+        (base32 "1xkxlbjpqhfhakmfi664cq7i5968941vpngq94napmhbgqydp4qn"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-async" ,emacs-async)
-       ("emacs-popup" ,emacs-popup)))
+     (list emacs-async emacs-popup))
     (home-page "https://emacs-helm.github.io/helm/")
     (synopsis
      "Incremental completion and selection narrowing framework for Emacs")
@@ -10979,7 +10906,7 @@ stuff in Emacs (like buffers, files, etc).")
           (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)))
+       (list emacs-helm))
       (home-page "https://github.com/emacs-helm/helm-org")
       (synopsis "Helm interface to the Silver Searcher")
       (description
@@ -11002,7 +10929,7 @@ as well as features for editing search results.")
         (base32 "1qjay0fvryxa8n1ws6r1by512p2fylb2nj7ycm1497fcalb0d706"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)))
+     (list emacs-helm))
     (home-page "https://github.com/emacsorphanage/helm-swoop")
     (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
     (description
@@ -11025,7 +10952,7 @@ for search-based navigation of buffers.")
         (base32 "0ml9yp3qaiwn7iixyxvsj3fxn7gw913qxisr47df57q4ka912law"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)))
+     (list emacs-helm))
     (home-page "https://github.com/syohex/emacs-helm-ag")
     (synopsis "Helm interface to the Silver Searcher")
     (description
@@ -11048,8 +10975,7 @@ as well as features for editing search results.")
         (base32 "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)
-       ("emacs-projectile" ,emacs-projectile)))
+     (list emacs-helm emacs-projectile))
     (home-page "https://github.com/bbatsov/helm-projectile")
     (synopsis "Helm integration for Projectile")
     (description
@@ -11074,8 +11000,7 @@ as well as features for editing search results.")
            "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-async" ,emacs-async)
-         ("emacs-projectile" ,emacs-projectile)))
+       (list emacs-async emacs-projectile))
       (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
       (synopsis "Retrieve tasks from various build systems and task-runners")
       (description "This package parses Makefiles and build-system files for
@@ -11100,9 +11025,7 @@ multiple project types.")
            "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-ivy" ,emacs-ivy)
-         ("emacs-taskrunner" ,emacs-taskrunner)
-         ("emacs-projectile" ,emacs-projectile)))
+       (list emacs-ivy emacs-taskrunner emacs-projectile))
       (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
       (synopsis "Retrieve build-system tasks using Ivy")
       (description "This package provides an Ivy interface for selecting
@@ -11127,9 +11050,7 @@ Makefile targets.")
            "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)
-         ("emacs-taskrunner" ,emacs-taskrunner)
-         ("emacs-projectile" ,emacs-projectile)))
+       (list emacs-helm emacs-taskrunner emacs-projectile))
       (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
       (synopsis "Retrieve build-system tasks using Helm")
       (description "This package provides a Helm interface for selecting
@@ -11154,8 +11075,7 @@ Makefile targets.")
            "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)
-         ("emacs-projectile" ,emacs-projectile)))
+       (list emacs-helm emacs-projectile))
       (home-page "https://github.com/abo-abo/helm-make")
       (synopsis "Select a Makefile target with helm")
       (description "@code{helm-make} or @code{helm-make-projectile} will give
@@ -11181,12 +11101,12 @@ target will call @code{compile} on it.")
      '(#:exclude                        ;don't exclude 'cider-test.el'
        '("^\\.dir-locals\\.el$" "^test/")))
     (propagated-inputs
-     `(("emacs-clojure-mode" ,emacs-clojure-mode)
-       ("emacs-parseedn" ,emacs-parseedn)
-       ("emacs-pkg-info" ,emacs-pkg-info)
-       ("emacs-queue" ,emacs-queue)
-       ("emacs-sesman" ,emacs-sesman)
-       ("emacs-spinner" ,emacs-spinner)))
+     (list emacs-clojure-mode
+           emacs-parseedn
+           emacs-pkg-info
+           emacs-queue
+           emacs-sesman
+           emacs-spinner))
     (home-page "https://cider.mx/")
     (synopsis "Clojure development environment for Emacs")
     (description
@@ -11205,12 +11125,12 @@ CIDER).")
 
 (define-public emacs-sly
   ;; Update together with sbcl-slynk.
-  (let ((commit "fb84318c08f59bc786e047006fc81e2ace568309"))
+  (let ((commit "0470c0281498b9de072fcbf3718fc66720eeb3d0"))
     ;; Versions are not always tagged.  Besides, latest master contains
     ;; important fixes.
     (package
       (name "emacs-sly")
-      (version (git-version "1.0.43" "4" commit))
+      (version (git-version "1.0.43" "5" commit))
       (source
        (origin
          (method git-fetch)
@@ -11220,10 +11140,10 @@ CIDER).")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0z123k9ak7yjb9bxb5qx48f33ma8066rhkqh8xc14z7shk75jybj"))))
+           "1ws2a9azmdkkg47xnd4jggna45nf0bh54gyp0799b44c4bgjp029"))))
       (build-system emacs-build-system)
       (native-inputs
-       `(("texinfo" ,texinfo)))
+       (list texinfo))
       (arguments
        `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
          #:phases
@@ -11302,7 +11222,7 @@ xref, etc.) are still available, but with better integration.")
            "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-sly" ,emacs-sly)))
+       (list emacs-sly))
       (arguments
        `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
          #:phases
@@ -11335,8 +11255,7 @@ sly-quickload command that prompts the user for a package to install. ")
            "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-sly" ,emacs-sly)
-         ("emacs-popup" ,emacs-popup)))
+       (list emacs-sly emacs-popup))
       (arguments
        '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
       (synopsis "ASDF contrib for SLY")
@@ -11364,7 +11283,7 @@ additional support for working with ASDF projects.")
            "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-sly" ,emacs-sly)))
+       (list emacs-sly))
       (arguments
        '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
          #:phases (modify-phases %standard-phases
@@ -11396,8 +11315,7 @@ file.")
            "1nxf28gn4f3n0wnv7nb5sgl36fz175y470zs9hig4kq8cp0yal0r"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-sly" ,emacs-sly)
-         ("emacs-macrostep" ,emacs-macrostep)))
+       (list emacs-sly emacs-macrostep))
       (arguments
        '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
          #:phases
@@ -11434,9 +11352,9 @@ inside the source file.")
              #t))))
       (build-system emacs-build-system)
       (inputs
-       `(("cl-agnostic-lizard" ,cl-agnostic-lizard)))
+       (list cl-agnostic-lizard))
       (propagated-inputs
-       `(("emacs-sly" ,emacs-sly)))
+       (list emacs-sly))
       (arguments
        `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
          #:phases
@@ -11490,7 +11408,7 @@ Common Lisp, realized as an extension to SLY.")
            "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-sly" ,emacs-sly)))
+       (list emacs-sly))
       (arguments
        '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
          #:phases
@@ -11523,8 +11441,7 @@ using package inferred style.")
      `(#:tests? #t
        #:test-command '("buttercup" "-l" "lua-mode.el")))
     (native-inputs
-     `(("emacs-buttercup" ,emacs-buttercup)
-       ("lua" ,lua)))
+     (list emacs-buttercup lua))
     (synopsis "Major mode for lua")
     (description
      "This Emacs package provides a mode for @uref{https://www.lua.org/,
@@ -11556,7 +11473,7 @@ Lua programming language}.")
                                           "/share/info"))
              #t)))))
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (home-page "https://devmanual.gentoo.org")
     (synopsis "Major modes for Gentoo package files")
     (description
@@ -11592,7 +11509,7 @@ news items, openrc and runscripts.")
                  (invoke "makeinfo" "--no-split"
                          "-o" "evil.info" "evil.texi")))))))
     (build-system emacs-build-system)
-    (native-inputs `(("texinfo" ,texinfo)))
+    (native-inputs (list texinfo))
     (home-page "https://github.com/emacs-evil/evil")
     (synopsis "Extensible Vi layer for Emacs")
     (description
@@ -11616,8 +11533,7 @@ extensions.")
                 "0ssb3n1i67b6zp2j8djaalkr33x4c7zalw6vl6p5kqxkh8vy8cdf"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-evil" ,emacs-evil)
-       ("emacs-annalist" ,emacs-annalist)))
+     (list emacs-evil emacs-annalist))
     (arguments
      `(#:include (cons* "^modes\\/" %default-include)))
     (home-page "https://github.com/emacs-evil/evil-collection")
@@ -11645,7 +11561,7 @@ Emacs that Evil does not cover properly by default, such as @code{help-mode},
           (base32 "1p3vjrij63v9nrcyj3b5jsqzv9y7dgv9i1inx1q7x3s90vndavac"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-evil" ,emacs-evil)))
+       (list emacs-evil))
       (home-page "https://github.com/edkolev/evil-goggles")
       (synopsis "Displays visual hints when editing with evil")
       (description "Creates a visual pulse to indicate the region that is
@@ -11697,7 +11613,7 @@ used for reverse direction.")
           (base32
            "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
       (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (propagated-inputs (list emacs-evil))
       (home-page "https://github.com/janpath/evil-numbers")
       (synopsis "Increment and decrement numeric literals")
       (description
@@ -11723,7 +11639,7 @@ end of a line and increment or decrement it.")
            "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-evil" ,emacs-evil)))
+       (list emacs-evil))
       (arguments
        `(#:tests? #t
          #:test-command '("make" "test")))
@@ -11750,8 +11666,7 @@ a popup window for previewing candidates.")
           (base32 "0b08y4spapl4g2292j3l4cr84gjlvm3rpma3gqld4yb1sxd7v78p"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-evil" ,emacs-evil)
-         ("emacs-paredit" ,emacs-paredit)))
+       (list emacs-evil emacs-paredit))
       (home-page "https://github.com/roman/evil-paredit")
       (synopsis "Evil extension to integrate nicely with Paredit")
       (description
@@ -11778,7 +11693,7 @@ you break the parity of parenthesis.")
           (base32
            "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
       (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (propagated-inputs (list emacs-evil))
       (home-page "https://github.com/wcsmith/evil-args")
       (synopsis "Motions and text objects for delimited arguments in Evil")
       (description
@@ -11801,7 +11716,7 @@ arguments, such as arguments separated by commas and semicolons.")
        (sha256
         (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"))))
     (propagated-inputs
-     `(("emacs-evil" ,emacs-evil)))
+     (list emacs-evil))
     (build-system emacs-build-system)
     (home-page "https://github.com/syl20bnr/evil-escape")
     (synopsis "Escape from insert state and everything else in Emacs")
@@ -11828,8 +11743,8 @@ state and everything else in Emacs.")
           (base32
            "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
       (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
-      (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
+      (propagated-inputs (list emacs-evil))
+      (native-inputs (list emacs-ert-runner))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -11865,7 +11780,7 @@ for exchanging text.")
           (base32
            "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
       (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (propagated-inputs (list emacs-evil))
       (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
       (synopsis "Quickly replace text with the contents of a register")
       (description
@@ -11891,7 +11806,7 @@ contents of a register.")
           (base32
            "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
       (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (propagated-inputs (list emacs-evil))
       (home-page "https://github.com/TheBB/evil-indent-plus")
       (synopsis "Text objects based on indentation")
       (description
@@ -11918,7 +11833,7 @@ surrounding lines.")
           (base32
            "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
       (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (propagated-inputs (list emacs-evil))
       (home-page "https://github.com/wbolster/evil-text-object-python")
       (synopsis "Text objects for Python")
       (description
@@ -11942,7 +11857,7 @@ surrounding lines.")
           (base32
            "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
       (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (propagated-inputs (list emacs-evil))
       (arguments
        `(#:tests? #t
          #:test-command '("make" "test")))
@@ -11970,7 +11885,7 @@ aligning text objects based on separators.")
           (base32
            "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
       (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (propagated-inputs (list emacs-evil))
       (arguments
        `(#:tests? #t
          #:test-command '("make" "test")))
@@ -11997,7 +11912,7 @@ pasting into and from @code{tmux} paste buffers.")
         (base32
          "1qrlg4cxlsd4cf1z8j2662pfb9p6pnqpsyb74flja9cqv6g5ylp8"))))
     (build-system emacs-build-system)
-    (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+    (propagated-inputs (list emacs-evil))
     (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
     (synopsis "Comment and uncomment lines efficiently")
     (description
@@ -12020,7 +11935,7 @@ pasting into and from @code{tmux} paste buffers.")
         (base32
          "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
     (build-system emacs-build-system)
-    (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+    (propagated-inputs (list emacs-evil))
     (home-page "https://github.com/troyp/evil-visual-replace")
     (synopsis "Replacement commands for @code{evil-mode} visual blocks")
     (description
@@ -12046,7 +11961,7 @@ pasting into and from @code{tmux} paste buffers.")
           (base32
            "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
       (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (propagated-inputs (list emacs-evil))
       (home-page "https://github.com/bling/evil-visualstar")
       (synopsis "Instantly search using the visual selection")
       (description
@@ -12167,29 +12082,54 @@ passive voice.")
 (define-public emacs-org
   (package
     (name "emacs-org")
-    ;; emacs-org-contrib inherits from this package.  Please update it as
-    ;; well.
-    (version "9.4.6")
+    (version "9.5.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.savannah.gnu.org/git/emacs/org-mode.git")
+             (commit (string-append "release_" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1k49ymsi77366as2wi4kzv2f1xnbwpb47iw7iw07yxwlhmm7vskq"))))
+        (base32 "0ajig1sb4zxffx3lv7l7xvsf77qgs3s7pm2ylxa3wanwmpk3gvcg"))))
     (build-system emacs-build-system)
     (arguments
-     `(#:phases
+     `(#:tests? #t
+       #:test-command '("make" "test-dirty")
+       #:phases
        (modify-phases %standard-phases
-         (add-after 'install 'install-documentation
+         (delete 'build)
+         (add-before 'check 'make
+           (lambda _
+             (invoke "make" (string-append "ORGVERSION=" ,version))))
+         (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((share (string-append (assoc-ref outputs "out") "/share"))
-                    (info-dir (string-append share "/info"))
-                    (doc-dir (string-append share "/doc/" ,name "-" ,version)))
-               (install-file "org.info" info-dir)
-               (install-file "orgguide.info" info-dir)
-               ;; XXX: "orgcard.pdf" is not built in Org 9.4.6.
-               ;; (install-file "orgcard.pdf" doc-dir)
-               ))))))
+             (substitute* "local.mk"
+               (("^prefix.*")
+                (string-append "prefix = " (assoc-ref outputs "out")))
+               (("^lispdir.*")
+                (string-append "lispdir = "
+                               (elpa-directory (assoc-ref outputs "out")))))
+             ;; The dependent targets for install perform cleanup that
+             ;; partially undoes our make phase
+             (substitute* "lisp/Makefile"
+               (("^install:.*") "install:\n"))
+             (invoke "make" "install")))
+         (add-after 'unpack 'fix-tests
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; These files are modified during testing
+             (with-directory-excursion "testing/examples"
+               (for-each make-file-writable
+                         '("babel.org"
+                           "ob-awk-test.org"
+                           "ob-sed-test.org"
+                           "ob-shell-test.org"))
+               ;; Specify where sh is
+               (substitute* "babel.org"
+                 (("/bin/sh" sh)
+                  (string-append (assoc-ref inputs "bash") sh)))))))))
+    (native-inputs
+     (list texinfo))
     (home-page "https://orgmode.org/")
     (synopsis "Outline-based notes management and organizer")
     (description "Org is an Emacs mode for keeping notes, maintaining TODO
@@ -12200,52 +12140,89 @@ programming and reproducible research.")
 
 (define-public emacs-org-contrib
   (package
-    (inherit emacs-org)
     (name "emacs-org-contrib")
-    (version "20210519")
+    (version "0.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://orgmode.org/elpa/"
-                           "org-plus-contrib-" version ".tar"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.sr.ht/~bzg/org-contrib")
+             (commit (string-append "release_" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0g765fsc7ssn779xnhjzrxy1sz5b019h7dk1q26yk2w6i540ybfl"))
-       ;; ob-sclang.el is packaged separately to avoid the dependency on
-       ;; SuperCollider and qtwebengine.
+        (base32 "17aca4mc3gbdh6nhlcaa5ymh1yy76nwysrvy9sfcqkzvd5lgagzc"))
+       ;; XXX: ob-sclang.el is packaged separately to avoid the dependency on
+       ;; SuperCollider and qtwebengine.  This will be unnecessary in 0.4+
+       ;; release as the file is going to be removed from the repository.
+
+       ;; XXX: org-contacts.el is now maintained in a separate repository and
+       ;; will soon be removed from org-contrib
        (modules '((guix build utils)))
-       (snippet '(begin (delete-file "ob-sclang.el") #t))))
+       (snippet '(begin (delete-file "lisp/ob-sclang.el")
+                        (delete-file "lisp/org-contacts.el")))))
+    (build-system emacs-build-system)
     (arguments
-     `(#:modules ((guix build emacs-build-system)
-                  (guix build utils)
-                  (guix build emacs-utils)
-                  (ice-9 ftw)
-                  (srfi srfi-1))
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
-         (add-after 'install 'delete-org-files
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (org (assoc-ref inputs "org"))
-                    (contrib-files
-                     (map basename (find-files out)))
-                    (org+contrib-files
-                     (map basename (find-files org)))
-                    (duplicates (lset-intersection string=?
-                                                   contrib-files
-                                                   org+contrib-files)))
-               (with-directory-excursion (elpa-directory out)
-                 (for-each delete-file duplicates))
-               #t))))))
+         (add-after 'unpack 'enter-source-directory
+           (lambda _
+             (chdir "lisp"))))))
     (propagated-inputs
-     `(("arduino-mode" ,emacs-arduino-mode)
-       ("cider" ,emacs-cider)
-       ("org" ,emacs-org)))
-    (synopsis "Contributed packages to Org mode")
-    (description "Org is an Emacs mode for keeping notes, maintaining TODO
-lists, and project planning with a fast and effective plain-text system.
+     (list emacs-arduino-mode ;XXX: remove after 0.4+ release.
+           emacs-cider
+           emacs-org))
+    (home-page "https://git.sr.ht/~bzg/org-contrib")
+    (synopsis "Unmaintained add-ons for Org mode")
+    (description
+     "This package contains add-ons to Org.  Be warned that these libraries
+receive little if no maintenance and there is no guaranty that they are
+compatible with the Org stable version.")
+    (license license:gpl3+)))
 
-This package is equivalent to org-plus-contrib, but only includes additional
-files that you would find in @file{contrib/} from the git repository.")))
+(define-public emacs-org-contacts
+  ;;; XXX: Upstream made no release yet.
+  (let ((commit "3d2f39f62aefb0a32d10607703e8b1d4f43821fa")
+        (revision "0"))
+    (package
+      (name "emacs-org-contacts")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/stardiviner/org-contacts.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0a654406w8zd1hbp8ckc975jhl9mi14xzqizzwiki625dymiw5g5"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/stardiviner/org-contacts.el")
+      (synopsis "Contacts management system for Org mode")
+      (description "Manage your contacts from Org mode.  You can auto
+complete email addresses, export contacts to a vCard file, put birthdays
+in your Org Agenda, and more.")
+      (license license:gpl3+))))
+
+(define-public emacs-org-vcard
+  (package
+    (name "emacs-org-vcard")
+    (version "0.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/flexibeast/org-vcard")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "14l3xqahqmnfl3sskqcr33xpcsic8dm9cr9wmbv5la3xv14n10k7"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/flexibeast/org-vcard")
+    (synopsis "Org mode support for vCard export and import")
+    (description
+     "This package exports and imports vCard files from within GNU Emacs' Org
+mode.")
+    (license license:gpl3+)))
 
 (define-public emacs-org-pretty-table
   ;; There is no release yet.
@@ -12276,18 +12253,17 @@ characters.")
     (inherit emacs-org-contrib)
     (name "emacs-ob-sclang")
     (source
-     (origin (inherit (package-source emacs-org-contrib))
-             (modules '((guix build utils)))
-             (snippet
-              '(begin
-                 (for-each (lambda (file)
-                             (unless (equal? file "./ob-sclang.el")
-                               (delete-file file)))
-                           (find-files "." "\\.el"))
-                 #t))))
-    (propagated-inputs
-     `(("org" ,emacs-org)
-       ("scel" ,emacs-scel)))
+     (origin
+       (inherit (package-source emacs-org-contrib))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (for-each (lambda (file)
+                       (unless (equal? file "./ob-sclang.el")
+                         (delete-file file)))
+                     (find-files "." "\\.el"))))))
+    (propagated-inputs
+     (list emacs-org emacs-scel))
     (synopsis "Org Babel support for SuperCollider")
     (description "This package adds support for evaluating @code{sclang}
 Org mode source blocks.  It is extracted from the @code{emacs-org-contrib}
@@ -12378,9 +12354,7 @@ known loosely as deftheme.  Many mode-specific customizations are included.")
         (base32 "1vql8m4nj0brmv58b6lkbhykik8n6j4i7d3nylcls78y7ihc2cz8"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-flycheck" ,emacs-flycheck)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-dash emacs-flycheck emacs-s))
     (home-page "https://github.com/bradyt/dart-mode")
     (synopsis "Emacs mode for the Dart programming language")
     (description
@@ -12402,7 +12376,7 @@ basic syntax highlighting and indentation.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
+          (base32 "1ii3cgf4hlclwaraisxksv98mmhajx517i60p1cgd7vapznn2b6v"))))
       (build-system emacs-build-system)
       (arguments
        `(#:phases
@@ -12477,7 +12451,7 @@ package provides the Emacs theme.")
        (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-popup" ,emacs-popup)))
+     (list emacs-popup))
     (home-page "https://github.com/auto-complete/auto-complete")
     (synopsis "Intelligent auto-completion extension for Emacs")
     (description
@@ -12545,7 +12519,6 @@ editing nginx config files.")
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "stream-" version ".tar"))
-       (file-name (git-file-name name version))
        (sha256
         (base32 "00c3n4gyxzv7vczqms0d62kl8zsmjfyxa92mwxn2snyx857a9jfw"))))
     (build-system emacs-build-system)
@@ -12595,8 +12568,7 @@ please.")
           (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
       (build-system emacs-build-system)
       (inputs
-       `(("emacs-stream" ,emacs-stream)
-         ("emacs-cl-print" ,emacs-cl-print)))
+       (list emacs-stream emacs-cl-print))
       (home-page "https://github.com/emacsmirror/el-search")
       (synopsis "Expression based interactive search for emacs-lisp-mode")
       (description "This package provides expression based interactive search
@@ -12617,9 +12589,9 @@ procedures for emacs-lisp-mode.")
        (sha256
         (base32 "0can9v336lgnq0q2ha3js0565jzp3dlwwqxhcbx5swk5kp148f07"))))
     (build-system emacs-build-system)
-    (propagated-inputs `(("emacs-dash" ,emacs-dash)))
+    (propagated-inputs (list emacs-dash))
     (native-inputs
-     `(("emacs-ert-runner" ,emacs-ert-runner)))
+     (list emacs-ert-runner))
     (arguments
      `(#:tests? #t
        #:test-command '("ert-runner")))
@@ -12682,6 +12654,30 @@ files in Emacs.  Files of this type (e.g., @file{BUILD.gn} or @file{*.gni})
 are common in Chromium-derived projects.")
     (license license:bsd-3)))
 
+(define-public emacs-bazel
+  ;; From 2021-11-21.
+  ;; No releases available.
+  (let ((commit "cdb2643dba39fe2bd64ba3b190b94d1ef1d83b18")
+        (revision "0"))
+    (package
+      (name "emacs-bazel")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/bazelbuild/emacs-bazel-mode")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32 "0ln06dprnivx9zxm6n23ppyx7x4kbn0f85pxwvkq32aq7wnqz82m"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/bazelbuild/emacs-bazel-mode")
+      (synopsis "Bazel support for Emacs")
+      (description
+       "This package provides support for the Bazel build system.  See
+@uref{https://bazel.build/} for background on Bazel.")
+      (license license:asl2.0))))
+
 (define-public emacs-gntp
   (package
     (name "emacs-gntp")
@@ -12720,8 +12716,7 @@ notifications.")
         (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-gntp" ,emacs-gntp)
-       ("emacs-log4e" ,emacs-log4e)))
+     (list emacs-gntp emacs-log4e))
     (home-page "https://github.com/jwiegley/alert")
     (synopsis "Growl-style notification system for Emacs")
     (description
@@ -12767,10 +12762,7 @@ a (typically) noncontiguous set of text.")
         (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-alert" ,emacs-alert)
-       ("emacs-s" ,emacs-s)
-       ("emacs-ht" ,emacs-ht)
-       ("mu" ,mu)))
+     (list emacs-alert emacs-s emacs-ht mu))
     (home-page "https://github.com/iqbalansari/mu4e-alert")
     (synopsis "Desktop notification for mu4e")
     (description
@@ -12797,7 +12789,7 @@ mode-line.")
            "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("mu" ,mu)))
+       (list mu))
       (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
       (synopsis "Select and view mailing lists in mu4e")
       (description
@@ -12824,7 +12816,7 @@ automatically discovered and presented in recency order.")
                   "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("mu" ,mu)))
+       (list mu))
       (home-page "https://github.com/seanfarley/mu4e-patch")
       (synopsis "Colorize patch-like emails in mu4e")
       (description
@@ -12903,7 +12895,7 @@ type an abbreviation and automatically expand it into function templates.")
     (arguments
      `(#:include (cons* "^snippets\\/" %default-include)))
     (propagated-inputs
-     `(("emacs-yasnippet" ,emacs-yasnippet)))
+     (list emacs-yasnippet))
     (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
     (synopsis "Collection of YASnippet snippets for many languages")
     (description "This package provides an extensive collection of YASnippet
@@ -12933,7 +12925,7 @@ automatically made available to YASnippet.")
       (arguments
        `(#:include (cons* "^.*\\/" %default-include)))
       (propagated-inputs
-       `(("emacs-yasnippet" ,emacs-yasnippet)))
+       (list emacs-yasnippet))
       (home-page "https://github.com/hlissner/doom-snippets")
       (synopsis "Doom Emacs' snippet library")
       (description
@@ -12959,8 +12951,7 @@ exposes a small API to assist in writing your own snippets.")
                   "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)
-         ("emacs-yasnippet" ,emacs-yasnippet)))
+       (list emacs-helm emacs-yasnippet))
       (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
       (synopsis "Helm integration for Yasnippet")
       (description "This Emacs library provides Helm interface for
@@ -12982,9 +12973,9 @@ Yasnippet.")
                 "13a8jpj4wwm0yjv8hnsizgjf8wi3r2ap87lyvw7g4c7snp2dydwa"))))
     (build-system emacs-build-system)
     (inputs
-     `(("recutils" ,recutils)))
+     (list recutils))
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)))
+     (list emacs-helm))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -13021,11 +13012,7 @@ above over the network.")
          "0pm6va26kadjvbai4qsnjc2bk379w2nk6h3b5f0c2yv3q5na0p49"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)
-       ("emacs-helm" ,emacs-helm)
-       ("emacs-org" ,emacs-org)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-dash emacs-f emacs-helm emacs-org emacs-s))
     (home-page "https://github.com/alphapapa/helm-org-rifle")
     (synopsis "Rifle through Org files")
     (description "This package searches both headings and contents of entries
@@ -13251,57 +13238,52 @@ highlights quasi-quoted expressions.")
         (base32 "0lasj4ggsh93ingf46n16wxfx5zzxvr1igikbmdqlz3i99j331gs"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:make-flags (list (string-append "prefix="
-                                         (assoc-ref %outputs "out")))
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'configure
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (setenv "SHELL" (which "sh"))
-             ;; Ensure the tclespeak.so binary is found in the correct location
-             ;; by adding the path to the Tclx library to the Tcl $auto_path
-             ;; variable.
-             (with-fluids ((%default-port-encoding "ISO-8859-1"))
-               (substitute* "servers/espeak"
-                 (("package require Tclx")
-                  (string-append "set auto_path [linsert $auto_path 0 "
-                                 (assoc-ref inputs "tclx")
-                                 "/lib]\n"
-                                 "package require Tclx"))))
-             ;; Configure Emacspeak according to etc/install.org.
-             (invoke "make" "config")))
-         (add-after 'build 'build-espeak
-           (lambda _
-             (invoke "make" "espeak")))
-         (replace 'install
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin"))
-                    (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
-                    (info (string-append out "/share/info"))
-                    (emacs (search-input-file inputs "/bin/emacs")))
-               ;; According to etc/install.org, the Emacspeak directory should
-               ;; be copied to its installation destination.
-               (for-each
-                (lambda (file)
-                  (copy-recursively file (string-append lisp "/" file)))
-                '("etc" "info" "js" "lisp" "media" "servers" "sounds"
-                  "stumpwm" "xsl"))
-               ;; Make sure emacspeak is loaded from the correct directory.
-               (substitute* "run"
-                 (("\\./lisp/emacspeak-setup.el")
-                  (string-append lisp "/lisp/emacspeak-setup.el")))
-               ;; Install the convenient startup script.
-               (mkdir-p bin)
-               (copy-file "run" (string-append bin "/emacspeak")))
-             #t)))
-       #:tests? #f))                    ; no check target
+     (list
+      #:make-flags #~(list (string-append "prefix=" #$output))
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'configure
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (setenv "SHELL" (which "sh"))
+              ;; Ensure the tclespeak.so binary is found in the correct location
+              ;; by adding the path to the Tclx library to the Tcl $auto_path
+              ;; variable.
+              (with-fluids ((%default-port-encoding "ISO-8859-1"))
+                (substitute* "servers/espeak"
+                  (("package require Tclx")
+                   (string-append "set auto_path [linsert $auto_path 0 "
+                                  #$tclx
+                                  "/lib]\n"
+                                  "package require Tclx"))))
+              ;; Configure Emacspeak according to etc/install.org.
+              (invoke "make" "config")))
+          (add-after 'build 'build-espeak
+            (lambda _
+              (invoke "make" "espeak")))
+          (replace 'install
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let* ((out (assoc-ref outputs "out"))
+                     (bin (string-append out "/bin"))
+                     (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
+                     (info (string-append out "/share/info"))
+                     (emacs (search-input-file inputs "/bin/emacs")))
+                ;; According to etc/install.org, the Emacspeak directory should
+                ;; be copied to its installation destination.
+                (for-each
+                 (lambda (file)
+                   (copy-recursively file (string-append lisp "/" file)))
+                 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
+                   "stumpwm" "xsl"))
+                ;; Make sure emacspeak is loaded from the correct directory.
+                (substitute* "run"
+                  (("\\./lisp/emacspeak-setup.el")
+                   (string-append lisp "/lisp/emacspeak-setup.el")))
+                ;; Install the convenient startup script.
+                (mkdir-p bin)
+                (copy-file "run" (string-append bin "/emacspeak"))))))
+      #:tests? #f))                     ; no check target
     (inputs
-     `(("emacs" ,emacs)
-       ("espeak" ,espeak-ng)
-       ("perl" ,perl)
-       ("tcl" ,tcl)
-       ("tclx" ,tclx)))
+     (list emacs espeak-ng perl tcl tclx))
     (home-page "http://emacspeak.sourceforge.net")
     (synopsis "Audio desktop interface for Emacs")
     (description
@@ -13394,9 +13376,9 @@ abbreviation of the mode line displays (lighters) of minor modes.")
                 "088kl3bml0rs5bkfymgzr15ram9qvy66h1kaisrbkynh0yxvf8g9"))))
     (build-system emacs-build-system)
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (propagated-inputs
-     `(("emacs-diminish" ,emacs-diminish)))
+     (list emacs-diminish))
     (arguments
      `(#:tests? #t
        #:test-command '("emacs" "--batch"
@@ -13512,7 +13494,7 @@ source file, @file{jl-encrypt.el}.")
      "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
     (synopsis "Improved S/MIME support for Gnus in Emacs")
     (propagated-inputs
-     `(("emacs-default-encrypt" ,emacs-default-encrypt)))
+     (list emacs-default-encrypt))
     (description
      ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
      ;; should not be translated.  The name "emacs-default-encrypt" refers to
@@ -13590,7 +13572,7 @@ conversion for Emacs Lisp.")
         (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-auctex" ,emacs-auctex)))
+     (list emacs-auctex))
     (home-page "https://github.com/cdominik/cdlatex")
     (synopsis "Fast Emacs input methods for LaTeX environments and
 math")
@@ -13636,11 +13618,8 @@ configuration of Chinese fonts.")
         (base32 "18il2licf8pgfcrpx2bk55gpf8f537kb9cxqz83jldkhiyry74il"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-expand-region" ,emacs-expand-region)
-       ("emacs-multiple-cursors" ,emacs-multiple-cursors)
-       ("emacs-powerline" ,emacs-powerline)
-       ("emacs-spaceline" ,emacs-spaceline)))
+     (list emacs-dash emacs-expand-region emacs-multiple-cursors
+           emacs-powerline emacs-spaceline))
     (home-page "https://github.com/jyp/boon")
     (synopsis "Ergonomic command mode for Emacs")
     (description "Boon is a complete package for modal editing with a focus on
@@ -13650,10 +13629,43 @@ commands are bound to keys reachable with the left hand and movement keys are
 reached with the right hand.")
     (license license:gpl3+)))
 
+(define-public emacs-cc-mode
+  (package
+   (name "emacs-cc-mode")
+   (version "5.35")
+   (source
+    (origin
+     (method hg-fetch)
+     (uri (hg-reference
+           (url "http://hg.code.sf.net/p/cc-mode/cc-mode")
+           (changeset
+            (string-append "Release_"
+                           (string-replace-substring version "." "_")))))
+     (file-name (hg-file-name name version))
+     (sha256
+      (base32 "03cvl61baccx57zd62nz2wy4hvij5hl2syg7byaxgrs4c7grr414"))))
+   (build-system emacs-build-system)
+   (arguments
+    '(#:tests? #t
+      #:test-command '("make" "test")
+      #:phases
+      (modify-phases %standard-phases
+        (add-before 'install 'make-info
+          (lambda _
+            (invoke "make" "info"))))))
+   (native-inputs
+    (list texinfo))
+   (home-page "http://cc-mode.sourceforge.net/")
+   (synopsis "Framework for creating major modes for C-style languages")
+   (description
+    "CC Mode is an Emacs and XEmacs mode for editing C and other languages with
+similar syntax; currently C++, Objective-C, Java, CORBA's IDL, Pike, and AWK.")
+   (license license:gpl3+)))
+
 (define-public emacs-csharp-mode
   (package
     (name "emacs-csharp-mode")
-    (version "0.12.0")
+    (version "1.1.1")
     (source
      (origin
        (method git-fetch)
@@ -13662,7 +13674,7 @@ reached with the right hand.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1x40xm9d5sbxbnyxl12ppkzlgxzyn0bjg2vmc139jpkazmmw7r7k"))))
+        (base32 "0wfd4jdjsq8qp6pavf25y87dxvlnsqapfi4c4m3xj24baalr2dpq"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/josteink/csharp-mode")
     (synopsis "Major mode for C# code")
@@ -13671,8 +13683,53 @@ reached with the right hand.")
 syntax coloring, indentation, insertion of matched pairs of curly braces and
 documentation generation.  In addition, it provides menu-based navigation
 using Imenu, and Compilation mode support for MSBuild, devenv and xbuild.")
-    ;; XXX: Project switched to GPL3+ after 0.10.0 release.
-    (license license:gpl2+)))
+    (license license:gpl3+)))
+
+(define-public emacs-vala-mode
+  ;; Upstream has no tagged release.
+  (let ((commit "d696a8177e94c81ea557ad364a3b3dcc3abbc50f")
+        (revision "0"))
+    (package
+      (name "emacs-vala-mode")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/rrthomas/vala-mode")
+               (commit commit)))
+         (sha256
+          (base32 "0g5pdq757z9d8rk489n5ilhqipdc4i4sfkjwwrxyvgjlapjc04c0"))))
+      (build-system emacs-build-system)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'disable-multiline-support
+             (lambda* (#:key inputs #:allow-other-keys)
+               (make-file-writable "vala-mode.el")
+               (emacs-batch-edit-file "vala-mode.el"
+                 '(progn
+                   (require 'thingatpt) ;; beginning-of-thing, end-of-thing
+                   (goto-char (point-min))
+                   (save-excursion
+                    (re-search-forward ";; Support multiline strings")
+                    (goto-char (match-beginning 0))
+                    (kill-sexp)
+                    (insert ";; FIXME: Support multiline strings
+(c-lang-defconst c-multiline-string-start-char vala nil)"))
+                   (save-excursion
+                    (re-search-forward "(defcustom vala-multiline-strings")
+                    (goto-char (match-beginning 0))
+                    (insert ";; FIXME: Support multiline strings\n")
+                    (comment-region (beginning-of-thing 'sexp)
+                                    (end-of-thing 'sexp)))
+                   (basic-save-buffer))))))))
+      (home-page "https://github.com/rrthomas/vala-mode")
+      (synopsis "Vala mode for Emacs")
+      (description
+       "This package provides a major mode for editing .vala and .vapi files
+in Emacs.")
+      (license license:gpl2+))))
 
 (define-public emacs-php-mode
   (package
@@ -13694,7 +13751,7 @@ using Imenu, and Compilation mode support for MSBuild, devenv and xbuild.")
          (add-after 'unpack 'enter-source-directory
            (lambda _
              (chdir "lisp"))))))
-    (propagated-inputs `(("emacs-projectile" ,emacs-projectile)))
+    (propagated-inputs (list emacs-projectile))
     (home-page "https://github.com/ejmr/php-mode")
     (synopsis "Major mode for editing PHP code")
     (description
@@ -13756,20 +13813,17 @@ containing words from the Rime project.")
 (define-public emacs-pyim
   (package
     (name "emacs-pyim")
-    (version "3.9.4")
+    (version "3.9.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar"))
        (sha256
-        (base32 "0ggnl2jidcklyhqd5av5kk1f855gsq29wq2nhvp1yjzn35hz6xij"))))
+        (base32 "1dj46yprbl3l6n83aj0hsnd0rwjcp4ypyg2nhwig39wxirwlf9an"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-async" ,emacs-async)
-       ("emacs-pyim-basedict" ,emacs-pyim-basedict)
-       ("emacs-popup" ,emacs-popup)
-       ("emacs-posframe" ,emacs-posframe)
-       ("emacs-xr" ,emacs-xr)))
+     (list emacs-async emacs-pyim-basedict emacs-popup emacs-posframe
+           emacs-xr))
     (home-page "https://github.com/tumashu/pyim")
     (synopsis "Chinese input method")
     (description
@@ -13823,14 +13877,14 @@ methods from a given list.")
 (define-public emacs-posframe
   (package
     (name "emacs-posframe")
-    (version "1.0.4")
+    (version "1.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "posframe-" version ".tar"))
        (sha256
-        (base32 "0i2pw90gw9zb22gj8yyvcp3b2k1bxxhbjj0idvr5iz1vd9023bc6"))))
+        (base32 "0vrv46v7qwmax5m1i6b7lwdh789dfr18ggxjl4bk05qn7waway6j"))))
     (build-system emacs-build-system)
     ;; emacs-minimal does not include the function font-info.
     (arguments
@@ -13898,9 +13952,7 @@ publishing them to various output formats such as HTML, LaTeX, or PDF.")
         (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-ht" ,emacs-ht)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-dash emacs-ht emacs-s))
     (home-page "https://github.com/Wilfred/mustache.el")
     (synopsis "Mustache templating library for Emacs")
     (description "Mustache templating library for Emacs, mustache is
@@ -13925,11 +13977,8 @@ and lambdas.")
         (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-el2org" ,emacs-el2org)
-       ("emacs-ht" ,emacs-ht)
-       ("emacs-mustache" ,emacs-mustache)
-       ("emacs-simple-httpd" ,emacs-simple-httpd)))
+     (list emacs-dash emacs-el2org emacs-ht emacs-mustache
+           emacs-simple-httpd))
     (home-page "https://github.com/tumashu/org2web")
     (synopsis "Static site generator based on org-mode ")
     (description "Org2web is a static site generator based on org-mode,
@@ -13966,7 +14015,7 @@ which code derived from Kelvin H's org-page.")
                      (string-append "EMACS_BIN="
                                     (assoc-ref inputs "emacs")
                                     "/bin/emacs -Q")))))))
-    (native-inputs `(("xcb-proto" ,xcb-proto)))
+    (native-inputs (list xcb-proto))
     (home-page "https://github.com/ch11ng/xelb")
     (synopsis "X protocol Emacs Lisp binding")
     (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
@@ -13978,7 +14027,7 @@ It should enable you to implement low-level X11 applications.")
 (define-public emacs-exwm
   (package
     (name "emacs-exwm")
-    (version "0.24")
+    (version "0.26")
     (synopsis "Emacs X window manager")
     (source
      (origin
@@ -13986,18 +14035,12 @@ It should enable you to implement low-level X11 applications.")
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "exwm-" version ".tar"))
        (sha256
-        (base32 "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s"))
-       (patches
-        ;; Patch fixing fullscreen view.  Applied upstream as
-        ;; edb930005b0ba83051ca8a59b493e9a3c8ef580a.  It can be removed in
-        ;; next release.
-        (search-patches "emacs-exwm-fix-fullscreen-states.patch"))))
+        (base32 "03pg0r8a5vb1wc5grmjgzql74p47fniv47x39gdll5s3cq0haf6q"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-xelb" ,emacs-xelb)))
+     (list emacs-xelb))
     (inputs
-     `(("xhost" ,xhost)
-       ("dbus" ,dbus)))
+     (list xhost dbus))
     ;; The following functions and variables needed by emacs-exwm are
     ;; not included in emacs-minimal:
     ;; scroll-bar-mode, fringe-mode
@@ -14062,7 +14105,7 @@ of XELB.")
     (name "emacs-exwm-no-x-toolkit")
     (synopsis "Emacs X window manager (without an X toolkit)")
     (propagated-inputs
-     `(("emacs-xelb-no-x-toolkit" ,emacs-xelb-no-x-toolkit)))
+     (list emacs-xelb-no-x-toolkit))
     (arguments
      (substitute-keyword-arguments (package-arguments emacs-exwm)
        ((#:emacs emacs) `,emacs-no-x-toolkit)))))
@@ -14106,13 +14149,9 @@ other operations.")
          "0h248mma7kky30jr9bbhmp95wchl2cx5p6kh0gxmzpbc247dn2cc"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-counsel" ,emacs-counsel)
-       ("emacs-exwm" ,emacs-exwm)
-       ("emacs-switch-window" ,emacs-switch-window)
-       ("emacs-use-package" ,emacs-use-package)))
+     (list emacs-counsel emacs-exwm emacs-switch-window emacs-use-package))
     (inputs
-     `(("xhost" ,xhost)
-       ("dbus" ,dbus)))
+     (list xhost dbus))
     ;; Need emacs instead of emacs-minimal,
     ;; for emacs's bin path will be inserted into bin/exwm-x file.
     (arguments
@@ -14177,8 +14216,7 @@ on mouse-control.")
                          "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
                       #t)))))
     (propagated-inputs
-     `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
-       ("emacs-xpm" ,emacs-xpm)))
+     (list emacs-ascii-art-to-unicode emacs-xpm))
     (home-page "https://elpa.gnu.org/packages/gnugo.html")
     (synopsis "Emacs major mode for playing GNU Go")
     (description "This package provides an Emacs based interface for GNU Go.
@@ -14262,7 +14300,7 @@ pressed simultaneously or a single key quickly pressed twice.")
         (base32 "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-evil" ,emacs-evil)))
+     (list emacs-evil))
     (arguments
      `(#:tests? #t
        #:test-command '("make" "test")))
@@ -14287,7 +14325,7 @@ addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
         (base32 "1l8zi9wlg1f7ffm8gh92qwk3q7h6cdl8b8zkd9hcda53mq6klpjr"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-evil" ,emacs-evil)))
+     (list emacs-evil))
     (home-page "https://github.com/linktohack/evil-commentary")
     (synopsis "Comment out code in evil mode")
     (description "@code{emacs-evil-commentary} adds keybindings to easily
@@ -14314,8 +14352,7 @@ lines, and @code{gc} to comment out the target of a motion.")
           (base32 "051v8dmji90chwbsyqsqry7h35mksal2j6rgw1kpmjsni86d79y1"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-s" ,emacs-s)))
+       (list emacs-dash emacs-s))
       (home-page "https://github.com/rejeep/ansi.el")
       (synopsis "Convert strings to ANSI")
       (description "@code{emacs-ansi} defines functions that turns simple
@@ -14341,9 +14378,7 @@ as bold, underscore or italic.")
         (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-dash emacs-f emacs-s))
     (home-page "https://github.com/rejeep/commander.el")
     (synopsis "Emacs command line parser")
     (description "@code{emacs-commander} provides command line parsing for
@@ -14363,9 +14398,7 @@ Emacs.")
         (base32 "1zvs144hxq2mmq1h0ynx9hy7yyccb46f3pjg9mgq8v9cw5y678vk"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-eldoc" ,emacs-eldoc)
-       ("emacs-jsonrpc" ,emacs-jsonrpc)
-       ("emacs-project" ,emacs-project)))
+     (list emacs-eldoc emacs-jsonrpc emacs-project))
     (home-page "https://github.com/joaotavora/eglot")
     (synopsis "Client for Language Server Protocol (LSP) servers")
     (description
@@ -14417,12 +14450,12 @@ variable instead, to remind you of that variable's meaning.")
 	 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
     (build-system emacs-build-system)
     (inputs
-     `(("emacs-ansi" ,emacs-ansi)
-       ("emacs-commander" ,emacs-commander)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)
-       ("emacs-s" ,emacs-s)
-       ("emacs-shut-up" ,emacs-shut-up)))
+     (list emacs-ansi
+           emacs-commander
+           emacs-dash
+           emacs-f
+           emacs-s
+           emacs-shut-up))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -14508,12 +14541,6 @@ running a customisable handler command (@code{ignore} by default). ")
         (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
        (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
     (build-system emacs-build-system)
-    (propagated-inputs
-     `(("emacs-undercover" ,emacs-undercover)))
-    (native-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-shut-up" ,emacs-shut-up)
-       ("ert-runner" ,emacs-ert-runner)))
     (arguments
      `(#:tests? #t
        #:test-command '("ert-runner")
@@ -14521,8 +14548,7 @@ running a customisable handler command (@code{ignore} by default). ")
        (modify-phases %standard-phases
          (add-before 'check 'make-tests-writable
            (lambda _
-             (for-each make-file-writable (find-files "test"))
-             #t))
+             (for-each make-file-writable (find-files "test"))))
          (add-before 'check 'delete-json-objects-order-test
            (lambda _
              (emacs-batch-edit-file "test/json-reformat-test.el"
@@ -14531,8 +14557,11 @@ running a customisable handler command (@code{ignore} by default). ")
                                "ert-deftest json-reformat-test:json-reformat-region")
                               (beginning-of-line)
                               (kill-sexp))
-                       (basic-save-buffer)))
-             #t)))))
+                       (basic-save-buffer))))))))
+    (native-inputs
+     (list emacs-dash emacs-ert-runner emacs-shut-up))
+    (propagated-inputs
+     (list emacs-undercover))
     (home-page "https://github.com/gongo/json-reformat")
     (synopsis "Reformatting tool for JSON")
     (description "@code{json-reformat} provides a reformatting tool for
@@ -14562,7 +14591,7 @@ a @url{http://json.org/, JSON} file.")
 (define-public emacs-json-mode
   (package
     (name "emacs-json-mode")
-    (version "1.7.0")
+    (version "1.8.0")
     (source
      (origin
        (method git-fetch)
@@ -14571,11 +14600,10 @@ a @url{http://json.org/, JSON} file.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
+        (base32 "0r0k56q58kb133l9x9nbisz9p2kbphfgw1l4g2xp0pjqsc9wvq8z"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-json-reformat" ,emacs-json-reformat)
-       ("emacs-json-snatcher" ,emacs-json-snatcher)))
+     (list emacs-json-reformat emacs-json-snatcher))
     (home-page "https://github.com/joshwnj/json-mode")
     (synopsis "Major mode for editing JSON files")
     (description "@code{json-mode} extends the builtin js-mode syntax
@@ -14619,7 +14647,7 @@ JSON objects.")
          "14nxfa91yg2243v4d5kvynp2645x3811ispmhmpgil3x9qbl9jg9"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)))
+     (list emacs-dash))
     (home-page "https://github.com/tminor/jsonnet-mode")
     (synopsis "Major mode for editing jsonnet files")
     (description "This package provides syntax highlighting, indenting,
@@ -14645,8 +14673,7 @@ formatting, and utility methods for jsonnet files.")
                 (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)
-         ("emacs-jq-mode" ,emacs-jq-mode)))
+       (list emacs-helm emacs-jq-mode))
       (home-page "https://github.com/pashky/restclient.el")
       (synopsis "Explore and test HTTP REST webservices")
       (description
@@ -14730,7 +14757,7 @@ whitespace in the buffer was initially clean.")
                     (string-append imagemagick "/bin/mogrify"))))
                #t)))))
       (inputs
-       `(("imagemagick" ,imagemagick)))
+       (list imagemagick))
       (home-page "https://github.com/nicferrier/eimp")
       (synopsis "Interactive image manipulation utility for Emacs")
       (description "@code{emacs-eimp} allows interactive image manipulation
@@ -14755,10 +14782,7 @@ the actual transformations.")
                   "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-eimp" ,emacs-eimp)
-         ("emacs-f" ,emacs-f)
-         ("emacs-s" ,emacs-s)))
+       (list emacs-dash emacs-eimp emacs-f emacs-s))
       (home-page "https://github.com/Fuco1/dired-hacks")
       (synopsis
        "Collection of useful dired additions")
@@ -14798,7 +14822,7 @@ additions:
         (base32 "090dqaqyjmkzrz4szjpk1iip0bdvb0frp4l79393f8ki8w7c16c1"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dired-subtree" ,emacs-dired-hacks)))
+     (list emacs-dired-hacks))
     (synopsis "Sidebar for Emacs using Dired")
     (description
      "This package provides a sidebar for Emacs similar to @code{NeoTree}
@@ -14808,7 +14832,7 @@ or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
 (define-public emacs-which-key
   (package
     (name "emacs-which-key")
-    (version "3.5.3")
+    (version "3.5.4")
     (source
      (origin
        (method git-fetch)
@@ -14817,7 +14841,7 @@ or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "144i3hkgm36wnfmqk5vq390snziy3zhwifbh6q6dzs99ic77d5g6"))))
+        (base32 "0wz3bb7vzxqi3wqpn46z6ps00m9wjcpv9cfvqi7lyvm920sxzlv7"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -14850,7 +14874,7 @@ settings).")
         (base32 "1rp37rhkj8jm07dwr74vc68dhrbvyvrxjdavpb0h073ps9vl9dsc"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-which-key" ,emacs-which-key)))
+     (list emacs-which-key))
     (home-page "https://gitlab.com/jjzmajic/hercules.el")
     (synopsis "Call a chain of related commands without repeated prefix keys")
     (description
@@ -14863,21 +14887,21 @@ of commands is displayed in a handy popup.")
   (package
     (name "emacs-ws-butler")
     (version "0.6")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/lewang/ws-butler")
-                    (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/lewang/ws-butler")
+             (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
     (build-system emacs-build-system)
-    (native-inputs
-     `(("ert-runner" ,emacs-ert-runner)))
     (arguments
      `(#:tests? #t
        #:test-command '("ert-runner" "tests")))
+    (native-inputs
+     (list emacs-ert-runner))
     (home-page "https://github.com/lewang/ws-butler")
     (synopsis "Trim spaces from end of lines")
     (description
@@ -14928,8 +14952,7 @@ when browsing files with Dired.")
         (base32 "1w0lyz71dq8x28ira4hig1b70bqn1dr53w3k5dgch9szcf6xa86y"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-auctex" ,emacs-auctex)
-       ("emacs-org" ,emacs-org)))
+     (list emacs-auctex emacs-org))
     (home-page "https://github.com/et2010/org-edit-latex")
     (synopsis "Edit a LaTeX fragment just like editing a source block")
     (description
@@ -14958,6 +14981,56 @@ fragment in a dedicated buffer just like editing a source block.")
 multiplexer.")
     (license license:gpl3+)))
 
+(define-public emacs-plz
+  (let ((commit "7e456638a651bab3a814e3ea81742dd917509cbb")
+        (revision "1"))
+    (package
+      (name "emacs-plz")
+      (version (git-version "0.1-pre" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/alphapapa/plz.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "05kgxrps1s20im5hhq799nrs3615bvssm4r0ysgmwm203mmzsjgj"))))
+      (build-system emacs-build-system)
+      (inputs (list curl))
+      (home-page "https://github.com/alphapapa/plz.el")
+      (synopsis "HTTP library for Emacs")
+      (description
+       "This package provides HTTP library for Emacs.  It uses curl as
+a backend, which avoids some of the issues with using Emacs’s built-in url
+library.")
+      (license license:gpl3+))))
+
+(define-public emacs-ement
+  (let ((commit "c951737dc855604aba389166bb0e7366afadc533")
+        (revision "1"))
+    (package
+      (name "emacs-ement")
+      (version (git-version "0.1-pre" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/alphapapa/ement.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "00iwwz4hzg4g59wrb5df6snqz3ppvrsadhfp61w1pa8gvg2z9bvy"))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:emacs ,emacs))               ;need libxml support
+      (inputs
+       (list emacs-plz emacs-ts))
+      (home-page "https://github.com/alphapapa/ement.el")
+      (synopsis "Matrix client for Emacs")
+      (description "Ement.el is a Matrix client for Emacs.")
+      (license license:gpl3+))))
+
 (define-public emacs-rpm-spec-mode
   (package
     (name "emacs-rpm-spec-mode")
@@ -14996,7 +15069,7 @@ editing RPM spec files.")
         (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)))
+     (list emacs-dash))
     (home-page "https://github.com/jyp/lcr")
     (synopsis "Lightweight coroutines in Emacs Lisp")
     (description "This package provides macros that can translate code into
@@ -15019,10 +15092,7 @@ functions written in continuation-passing style.")
        (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)
-       ("emacs-flycheck" ,emacs-flycheck)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-dash emacs-f emacs-flycheck emacs-s))
     (home-page "https://github.com/jyp/attrap")
     (synopsis "Fix coding error at point")
     (description "This package provides a command to fix the Flycheck error
@@ -15044,7 +15114,7 @@ at point.")
         (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-popup" ,emacs-popup)))
+     (list emacs-popup))
     (arguments
      `(#:tests? #t
        #:test-command '("emacs" "--batch" "-l" "test/test.el"
@@ -15163,7 +15233,7 @@ buffer's environment.")
          "0nqqx4qlw75lmbn0v927sg3xyjkk86ihw1q3rdbbn59va41grds4"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-inheritenv" ,emacs-inheritenv)))
+     (list emacs-inheritenv))
     (home-page "https://github.com/purcell/envrc")
     (synopsis "Support for Direnv which operates buffer-locally")
     (description
@@ -15226,7 +15296,7 @@ key.  Optionally, a mouse pop-up can be added by binding
            "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-prop-menu" ,emacs-prop-menu)))
+       (list emacs-prop-menu))
       (home-page
        "https://github.com/idris-hackers/idris-mode")
       (synopsis "Major mode for editing Idris code")
@@ -15249,14 +15319,13 @@ the latest versions of Idris 1.")
        (sha256
         (base32 "0bx4ns0jb0sqrjk1nsspvl3mhz3n12925azf7brlwb1vcgnji09v"))))
     (build-system emacs-build-system)
-    (propagated-inputs
-     `(("emacs-f" ,emacs-f)
-       ("emacs-s" ,emacs-s)))
-    (native-inputs
-     `(("ert-runner" ,emacs-ert-runner)))
     (arguments
      `(#:tests? #t
        #:test-command '("ert-runner")))
+    (native-inputs
+     (list emacs-ert-runner))
+    (propagated-inputs
+     (list emacs-f emacs-s))
     (home-page "https://github.com/rmuslimov/browse-at-remote")
     (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
     (description
@@ -15294,6 +15363,29 @@ proficiency is an advantage, since you can transform your numeric range with
 an elisp expression.")
       (license license:gpl3+))))
 
+(define-public emacs-taxy
+  (package
+    (name "emacs-taxy")
+    (version "0.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://elpa.gnu.org/packages/taxy-" version ".tar"))
+       (sha256
+        (base32
+         "00pc6lh35gj8vzcsn17fyazb9jsc4m6nr7cvb32w02isadv8qd3m"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     (list emacs-magit))
+    (home-page "https://github.com/alphapapa/taxy.el")
+    (synopsis "Programmable taxonomical grouping for arbitrary objects")
+    (description
+     "Taxy provides a programmable way to classify arbitrary objects into
+a hierarchical taxonomy.  Allows you to automatically put things in nested
+groups.")
+    (license license:gpl3+)))
+
 (define-public emacs-emojify
   (package
     (name "emacs-emojify")
@@ -15312,7 +15404,7 @@ an elisp expression.")
     (arguments
      `(#:include (cons "^data/" %default-include)))
     (propagated-inputs
-     `(("emacs-ht" ,emacs-ht)))
+     (list emacs-ht))
     (home-page "https://github.com/iqbalansari/emacs-emojify")
     (synopsis "Display emojis in Emacs")
     (description "This package displays emojis in Emacs similar to how Github,
@@ -15341,7 +15433,7 @@ well as Github-style emojis like @code{:smile:}.  It provides a minor mode
       (arguments
        `(#:include (cons "^recipes/" %default-include)))
       (propagated-inputs
-       `(("emacs-ivy" ,emacs-ivy)))
+       (list emacs-ivy))
       (home-page "https://github.com/abo-abo/make-it-so")
       (synopsis "Transform files with Makefile recipes")
       (description "This package provides an interface for selecting from
@@ -15398,7 +15490,7 @@ included by default, and more can be readily added.")
 (define-public emacs-pubmed
   (package
     (name "emacs-pubmed")
-    (version "0.5")
+    (version "0.5.2")
     (source
      (origin
        (method git-fetch)
@@ -15408,13 +15500,10 @@ included by default, and more can be readily added.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "17d2v7q6sfafk8j1ish053xsmihi4f1hbk53fkkmhwan6sw9c4sc"))))
+         "0ylsn36zmrn8mds2z74vbyv7sd4699a4wicg4shrf2gd5bbsi72g"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-deferred" ,emacs-deferred)
-       ("emacs-esxml" ,emacs-esxml)
-       ("emacs-s" ,emacs-s)
-       ("emacs-unidecode" ,emacs-unidecode)))
+     (list emacs-deferred emacs-esxml emacs-s emacs-unidecode))
     (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
     (synopsis "Interface to PubMed")
     (description "This package provides an Emacs interface to the PubMed
@@ -15532,11 +15621,11 @@ part, which includes creating tokens.")
                            (kill-sexp))
                    (basic-save-buffer))))))))
       (native-inputs
-       `(("emacs-buttercup" ,emacs-buttercup)))
+       (list emacs-buttercup))
       ;; In order to securely connect to an IRC server using TLS, Circe requires
       ;; the GnuTLS binary.
       (propagated-inputs
-       `(("gnutls" ,gnutls)))
+       (list gnutls))
       (home-page "https://github.com/jorgenschaefer/circe")
       (synopsis "Client for IRC in Emacs")
       (description "Circe is a Client for IRC in Emacs.  It integrates well with
@@ -15584,13 +15673,13 @@ through them using @key{C-c C-SPC}.")
            (add-before 'build 'set-HOME
              (lambda _ (setenv "HOME" "/tmp") #t)))))
       (propagated-inputs
-       `(("emacs-alert" ,emacs-alert)
-         ("emacs-emojify" ,emacs-emojify)
-         ("emacs-helm" ,emacs-helm)
-         ("emacs-request" ,emacs-request)
-         ("emacs-websocket" ,emacs-websocket)
-         ("emacs-oauth2" ,emacs-oauth2)
-         ("emacs-circe" ,emacs-circe)))
+       (list emacs-alert
+             emacs-emojify
+             emacs-helm
+             emacs-request
+             emacs-websocket
+             emacs-oauth2
+             emacs-circe))
       (home-page "https://github.com/yuya373/emacs-slack")
       (synopsis "Slack client for Emacs")
       (description "This package provides an Emacs client for the Slack
@@ -15619,7 +15708,7 @@ messaging service.")
            ;; HOME needs to exist for source compilation.
            (add-before 'build 'set-HOME
              (lambda _ (setenv "HOME" "/tmp") #t)))))
-      (propagated-inputs `(("emacs-slack" ,emacs-slack)))
+      (propagated-inputs (list emacs-slack))
       (home-page "https://github.com/yuya373/helm-slack")
       (synopsis "Helm extension for emacs-slack")
       (description "This package provides an helm extension for emacs-slack
@@ -15640,7 +15729,7 @@ Slack client.")
       (file-name (git-file-name name version))
       (sha256
        (base32 "11j2k3irixp47r2iglxdmjphahqhgnxg98n2xwagwzyq99lsamj4"))))
-   (inputs `(("bash" ,bash)))
+   (inputs (list bash))
    (build-system emacs-build-system)
    (arguments
     `(#:phases
@@ -15684,14 +15773,14 @@ let users kill or mark things easily.")
 (define-public emacs-csv-mode
   (package
     (name "emacs-csv-mode")
-    (version "1.16")
+    (version "1.17")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "csv-mode-" version ".tar"))
        (sha256
-        (base32 "1i43b2p31xhrf97xbdi35y550ysp69fasa5gcrhg6iyxw176807p"))))
+        (base32 "16kv3n70pl4h3jfmmqy9bzflsm4nv7cwvrj7g4mgy8yb76nbyka2"))))
     (build-system emacs-build-system)
     (home-page "https://elpa.gnu.org/packages/csv-mode.html")
     (synopsis "Major mode for editing comma/char separated values")
@@ -15769,10 +15858,8 @@ literate programming tools for exporting, weaving and tangling.")
         (base32 "0f0yq6gmkp194nxk90ipprglf1xkmxrgz1rkgrhfslvxq4q2l81h"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-ansible-doc" ,emacs-ansible-doc)
-       ("emacs-jinja2-mode" ,emacs-jinja2-mode)
-       ("emacs-polymode" ,emacs-polymode)
-       ("emacs-yaml-mode" ,emacs-yaml-mode)))
+     (list emacs-ansible-doc emacs-jinja2-mode emacs-polymode
+           emacs-yaml-mode))
     (properties '((upstream-name . "poly-ansible")))
     (home-page "https://gitlab.com/mavit/poly-ansible/")
     (synopsis "Polymode for Ansible - Jinja2 in YAML")
@@ -15796,8 +15883,7 @@ literate programming tools for exporting, weaving and tangling.")
         (base32 "1q4qq0ql08hxkdrd2aal03560k612my7bvnfpfij3g432hn0p7v6"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-markdown-mode" ,emacs-markdown-mode)
-       ("emacs-polymode" ,emacs-polymode)))
+     (list emacs-markdown-mode emacs-polymode))
     (properties '((upstream-name . "poly-markdown")))
     (synopsis "Polymode for Markdown mode")
     (description
@@ -15820,7 +15906,7 @@ files using the major mode corresponding to each block.")
         (base32 "1jl5h4nf10xd2gdlsxi6h2n3z5zh26ffcixn68xfp5q4zl34zk8p"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-polymode" ,emacs-polymode)))
+     (list emacs-polymode))
     (home-page "https://github.com/polymode/poly-noweb")
     (synopsis "Polymode for noweb")
     (description
@@ -15867,7 +15953,7 @@ Microsoft PowerShell files.")
         (base32 "1srnwcsn2bh8gqzxixkhffk7gbnk66kd4dgvxbnps5nxqc6v0qhc"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-polymode" ,emacs-polymode)))
+     (list emacs-polymode))
     (properties '((upstream-name . "poly-org")))
     (home-page "https://github.com/polymode/poly-org")
     (synopsis "Polymode definitions for Org mode buffers")
@@ -15892,8 +15978,7 @@ languages while remaining inside the primary Org buffer.")
         (base32 "1xif339wsc79hsab3l1nnwvy20jg7s1r4akfj4qqi6qxizfhmb52"))))
     (build-system copy-build-system)
     (inputs
-     `(("bash" ,bash)
-       ("emacs" ,emacs)))
+     (list bash emacs))
     (arguments
      `(#:install-plan
        '(("eless" "bin/")
@@ -15925,7 +16010,7 @@ Features:
 (define-public emacs-evil-matchit
   (package
     (name "emacs-evil-matchit")
-    (version "2.4.0")
+    (version "2.4.1")
     (source
      (origin
        (method git-fetch)
@@ -15934,10 +16019,10 @@ Features:
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1ls58wdjhs4q18bj3izflj0bb5fwafyr520y1j9kj29clqn73kxh"))))
+        (base32 "0cxv1bmbnir59k778dip5mkjyqhbh10pk9b4ayvwpgiz25dlp4ss"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-evil" ,emacs-evil)))
+     (list emacs-evil))
     (home-page "https://github.com/redguardtoo/evil-matchit")
     (synopsis "Vim matchit ported into Emacs")
     (description
@@ -15960,8 +16045,7 @@ evil mode using @kbd{%}.  It is a port of @code{matchit} for Vim.")
         (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-evil" ,emacs-evil)
-       ("emacs-smartparens" ,emacs-smartparens)))
+     (list emacs-evil emacs-smartparens))
     (home-page "https://github.com/expez/evil-smartparens")
     (synopsis "Emacs Evil integration for Smartparens")
     (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
@@ -15984,7 +16068,7 @@ emulates Vim features and provides Vim-like key bindings.")
         (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-evil" ,emacs-evil)))
+     (list emacs-evil))
     (arguments
      `(#:tests? #t
        #:test-command '("emacs" "--batch"
@@ -16040,13 +16124,9 @@ supports multiple backends such as @code{vlc}, @code{mpg123},
      `(#:tests? #t
        #:test-command '("ert-runner")))
     (native-inputs
-     `(("emacs-ert-runner" ,emacs-ert-runner)
-       ("emacs-undercover" ,emacs-undercover)
-       ("emacs-shut-up" ,emacs-shut-up)
-       ("emacs-f" ,emacs-f)))
+     (list emacs-ert-runner emacs-undercover emacs-shut-up emacs-f))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-dash emacs-s))
     (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
     (synopsis "Groovy related modes for Emacs")
     (description "This package provides @code{groovy-mode} for syntax
@@ -16070,7 +16150,7 @@ Grails project navigation with the grails mode.")
                  (base32
                   "0w38g88yykslg71xr99ff4vx1ffgy90b7xqvvdflr189gwk3avx1"))))
       (propagated-inputs
-       `(("emacs-groovy-modes" ,emacs-groovy-modes)))
+       (list emacs-groovy-modes))
       (build-system emacs-build-system)
       (home-page "https://github.com/john2x/jenkinsfile-mode/")
       (synopsis "Emacs major-mode for editing Jenkinsfile")
@@ -16097,7 +16177,7 @@ from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
       (arguments
        `(#:tests? #t
          #:test-command '("ert-runner" "-L" "." "-L" "test")))
-      (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
+      (native-inputs (list emacs-ert-runner))
       (home-page "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
       (synopsis "Major major-mode for editing Kotlin files")
       (description
@@ -16143,7 +16223,7 @@ from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
         (base32 "0yiwq2gc4gdgfhaagpawhb7yrzc4fsnyb10w5d0q4whv64cj8555"))))
     (build-system emacs-build-system)
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -16210,7 +16290,7 @@ Lisp.")
        ;; Byte-compiling the others Elisp files leads to build errors anyway.
        #:include (list "esxml.el" "esxml-query.el")))
     (propagated-inputs
-     `(("emacs-kv" ,emacs-kv)))
+     (list emacs-kv))
     (home-page "https://github.com/tali713/esxml/")
     (synopsis "SXML for EmacsLisp")
     (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
@@ -16246,10 +16326,9 @@ the format.")
                 (string-append "\"" (which "unzip") "\"")))
              #t)))))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-esxml" ,emacs-esxml)))
+     (list emacs-dash emacs-esxml))
     (inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://depp.brause.cc/nov.el/")
     (synopsis "Major mode for reading EPUBs in Emacs")
     (description "@code{nov.el} provides a major mode for reading EPUB
@@ -16285,9 +16364,6 @@ Features:
        (sha256
         (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
     (build-system trivial-build-system)
-    (inputs
-     `(("bash" ,bash)
-       ("perl" ,perl)))
     (arguments
      `(#:modules
        ((guix build utils))
@@ -16300,15 +16376,16 @@ Features:
          ;; Patch shebangs.
          (substitute* "epipe"
            (("/usr/bin/env bash")
-            (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
+            (search-input-file %build-inputs "/bin/bash")))
          (patch-shebang "epipe.pl"
                         (list (string-append (assoc-ref %build-inputs "perl")
                                              "/bin")))
          ;; Install.
          (for-each (lambda (file)
                      (install-file file (string-append %output "/bin")))
-                   '("epipe" "epipe.pl"))
-         #t)))
+                   '("epipe" "epipe.pl")))))
+    (inputs
+     (list bash perl))
     (home-page "https://github.com/cute-jumper/epipe")
     (synopsis "Pipe to the @code{emacsclient}")
     (description "@code{epipe} provides an utility to use your editor in
@@ -16330,11 +16407,11 @@ the pipeline, featuring the support for running @code{emacsclient}.")
         (base32 "1sr007wsl2y6wqpzkmv3inbpwhvgdcb2nmqzgfg7w1awapi2r13p"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-company" ,emacs-company) ;optional
-       ("emacs-markdown-mode" ,emacs-markdown-mode) ;optional
-       ("emacs-simple-httpd" ,emacs-simple-httpd)
-       ("emacs-websocket" ,emacs-websocket)
-       ("emacs-zmq" ,emacs-zmq)))
+     (list emacs-company ;optional
+           emacs-markdown-mode ;optional
+           emacs-simple-httpd
+           emacs-websocket
+           emacs-zmq))
     (home-page "https://github.com/nnicandro/emacs-jupyter")
     (synopsis "Emacs interface to communicate with Jupyter kernels")
     (description "This package provides an Emacs interface to communicate with
@@ -16380,7 +16457,7 @@ highlighting and indentation support.")
         (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-hcl-mode" ,emacs-hcl-mode)))
+     (list emacs-hcl-mode))
     (home-page "https://github.com/syohex/emacs-terraform-mode")
     (synopsis "Major mode for Terraform")
     (description
@@ -16428,8 +16505,7 @@ the same values you get in a terminal.")
         (base32 "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-avy" ,emacs-avy)
-       ("emacs-posframe" ,emacs-posframe)))
+     (list emacs-avy emacs-posframe))
     (home-page "https://github.com/clemera/frog-menu")
     (synopsis "Quickly pick items from ad hoc menus")
     (description
@@ -16455,9 +16531,7 @@ on which user-defined dispatch actions can act.")
            "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-frog-menu" ,emacs-frog-menu)
-         ("emacs-avy" ,emacs-avy)))
+       (list emacs-dash emacs-frog-menu emacs-avy))
       (home-page "https://github.com/waymondo/frog-jump-buffer")
       (synopsis "Jump to any Emacs buffer with minimal keystrokes")
       (description
@@ -16570,7 +16644,7 @@ used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
            "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-undo-tree" ,emacs-undo-tree)))
+       (list emacs-undo-tree))
       (home-page "https://ergoemacs.github.io/")
       (synopsis "Emacs mode based on common modern interface and ergonomics")
       (description
@@ -16609,10 +16683,8 @@ close, copy, cut, paste, undo, redo.")
                (delete-file-recursively "src")
                (delete-file-recursively "tests"))))))
       (propagated-inputs
-       `(("emacs-auth-source-pass" ,emacs-auth-source-pass)
-         ("emacs-s" ,emacs-s)
-         ("emacs-with-editor" ,emacs-with-editor)
-         ("password-store" ,password-store)))
+       (list emacs-auth-source-pass emacs-s emacs-with-editor
+             password-store))
       (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
       (synopsis "Password store (pass) support for Emacs")
       (description
@@ -16635,8 +16707,7 @@ standard Unix password manager\").")
        (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-password-store" ,emacs-password-store)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-password-store emacs-s))
     (home-page "https://github.com/volrath/password-store-otp.el")
     (synopsis
      "Interact with the @code{pass-otp} extension for @code{pass} from Emacs")
@@ -16689,8 +16760,7 @@ needed.")
         (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-password-store" ,emacs-password-store)
-       ("emacs-f" ,emacs-f)))
+     (list emacs-password-store emacs-f))
     (home-page "https://github.com/NicolasPetton/pass")
     (synopsis "Major mode for @file{password-store.el}")
     (description "This is a major mode for managing password-store (pass)
@@ -16718,11 +16788,8 @@ and can be consulted and modified.")
           (base32 "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-company" ,emacs-company)
-         ("emacs-dash" ,emacs-dash)
-         ("emacs-flycheck" ,emacs-flycheck)
-         ("emacs-let-alist" ,emacs-let-alist)
-         ("emacs-s" ,emacs-s)))
+       (list emacs-company emacs-dash emacs-flycheck emacs-let-alist
+             emacs-s))
       (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
       (synopsis "Emacs integration for PureScript's psc-ide tool")
       (description
@@ -16755,8 +16822,7 @@ protocol for PureScript programming language.  It features:
         (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-evil" ,emacs-evil)
-       ("emacs-anzu" ,emacs-anzu)))
+     (list emacs-evil emacs-anzu))
     (home-page "https://github.com/syohex/emacs-evil-anzu")
     (synopsis "Anzu for evil-mode")
     (description "@code{anzu} provides a minor mode that displays the current
@@ -16810,15 +16876,15 @@ object has been freed.")
   (package
     (name "emacs-emacsql")
     (version "3.0.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/skeeto/emacsql")
-                    (commit (string-append version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/skeeto/emacsql")
+             (commit (string-append version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
     (build-system emacs-build-system)
     (arguments
      `(#:modules ((guix build emacs-build-system)
@@ -16830,8 +16896,7 @@ object has been freed.")
          (add-before 'install 'patch-elisp-shell-shebangs
            (lambda _
              (substitute* (find-files "." "\\.el")
-               (("/bin/sh") (which "sh")))
-             #t))
+               (("/bin/sh") (which "sh")))))
          (add-after 'patch-elisp-shell-shebangs 'setenv-shell
            (lambda _
              (setenv "SHELL" "sh")))
@@ -16842,9 +16907,7 @@ object has been freed.")
            ;; This build phase installs emacs-emacsql binary.
            (lambda* (#:key outputs #:allow-other-keys)
              (install-file "sqlite/emacsql-sqlite"
-                           (string-append (assoc-ref outputs "out")
-                                          "/bin"))
-             #t))
+                           (string-append (assoc-ref outputs "out") "/bin"))))
          (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
            ;; This build phase removes interactive prompts
            ;; and makes sure Emacs look for binaries in the right places.
@@ -16860,13 +16923,9 @@ object has been freed.")
                   (string-append (assoc-ref outputs "out")
                                  "/bin/emacsql-sqlite")))))))))
     (inputs
-     `(("emacs-minimal" ,emacs-minimal)
-       ("mariadb" ,mariadb "lib")
-       ("mariadb-dev" ,mariadb "dev")
-       ("postgresql" ,postgresql)))
+     (list emacs-minimal `(,mariadb "dev") `(,mariadb "lib") postgresql))
     (propagated-inputs
-     `(("emacs-finalize" ,emacs-finalize)
-       ("emacs-pg" ,emacs-pg)))
+     (list emacs-finalize emacs-pg))
     (home-page "https://github.com/skeeto/emacsql")
     (synopsis "Emacs high-level SQL database front-end")
     (description "Any readable Lisp value can be stored as a value in EmacSQL,
@@ -16879,22 +16938,16 @@ object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
   (package
     (name "emacs-emacsql-sqlite3")
     (version "1.0.2")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/cireu/emacsql-sqlite3")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1jzvvsvi8jm2ws3y49nmpmwd3zlvf8j83rl2vwizd1aplwwdnmd6"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cireu/emacsql-sqlite3")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1jzvvsvi8jm2ws3y49nmpmwd3zlvf8j83rl2vwizd1aplwwdnmd6"))))
     (build-system emacs-build-system)
-    (native-inputs
-     `(("ert-runner" ,emacs-ert-runner)))
-    (inputs
-     `(("sqlite" ,sqlite)))
-    (propagated-inputs
-     `(("emacs-emacsql" ,emacs-emacsql)))
     (arguments
      `(#:tests? #t
        #:test-command '("emacs" "-Q" "--batch" "-L" "."
@@ -16906,8 +16959,13 @@ object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
            (lambda _
              (substitute* "emacsql-sqlite3.el"
                (("\\(executable-find \"sqlite3\"\\)")
-                (string-append "\"" (which "sqlite3") "\"")))
-             #t)))))
+                (string-append "\"" (which "sqlite3") "\""))))))))
+    (native-inputs
+     (list emacs-ert-runner))
+    (inputs
+     (list sqlite))
+    (propagated-inputs
+     (list emacs-emacsql))
     (home-page "https://github.com/cireu/emacsql-sqlite3")
     (synopsis "EmacSQL backend for SQLite")
     (description "This is yet another EmacSQL backend for SQLite which uses
@@ -16917,7 +16975,7 @@ official @command{sqlite3} executable to access SQL database.")
 (define-public emacs-closql
   (package
     (name "emacs-closql")
-    (version "1.0.6")
+    (version "1.2.0")
     (source
      (origin
        (method git-fetch)
@@ -16927,10 +16985,10 @@ official @command{sqlite3} executable to access SQL database.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1ghqxnn39i032ibm5sbnv67r2dd2hgfnfpqbmb8wzg9wc6smnacq"))))
+         "1xa9rzyfm6bfskm2mfckd7jwmjwcraky7vsp7yyrnrqfksrl5na8"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-emacsql" ,emacs-emacsql)))
+     (list emacs-emacsql))
     (home-page "https://github.com/emacscollective/closql")
     (synopsis "Store EIEIO objects using EmacSQL")
     (description
@@ -16957,8 +17015,7 @@ add any additional instance slots.")
          "0z9sz9ydfjzhawh4qip41h3vid1lslaf0h14hkjz9kx8fkrzib8a"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-closql" ,emacs-closql)
-       ("emacs-dash" ,emacs-dash)))
+     (list emacs-closql emacs-dash))
     (home-page "https://emacsmirror.net")
     (synopsis "Browse the Emacsmirror package database")
     (description "This package provides access to a local copy of the
@@ -17113,7 +17170,7 @@ text-mode (i.e. Org-mode).")
                 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-outorg" ,emacs-outorg)))
+     (list emacs-outorg))
     (home-page "https://github.com/alphapapa/outshine")
     (synopsis "Emacs outline with outshine")
     (description "Outshine attempts to bring the look and feel of
@@ -17141,8 +17198,7 @@ outline-mode), so there is no such thing like an outshine mode, only
                 (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-a" ,emacs-a)
-         ("emacs-dash" ,emacs-dash)))
+       (list emacs-a emacs-dash))
       (home-page "https://github.com/alphapapa/frecency.el")
       (synopsis "Sort items by frequency and recency of access")
       (description "This package provides a way of sorting items via
@@ -17150,45 +17206,46 @@ a heuristic based on frequency and recency.")
       (license license:gpl3+))))
 
 (define-public emacs-org-recent-headings
-  (package
-    (name "emacs-org-recent-headings")
-    (version "0.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/alphapapa/org-recent-headings")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
-    (build-system emacs-build-system)
-    (propagated-inputs
-     `(("emacs-org" ,emacs-org)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-frecency" ,emacs-frecency)))
-    (home-page "https://github.com/alphapapa/org-recent-headings")
-    (synopsis "Navigate to recently used Org headings and lists")
-    (description "This package maintains a list of recently used Org headings,
+  (let ((commit "97418d581ea030f0718794e50b005e9bae44582e")
+        (revision "0"))
+    (package
+      (name "emacs-org-recent-headings")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/alphapapa/org-recent-headings")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1y11rlnhi36lzhc1cagninv6hlcwbvj88xfr0g0xzpbzy7hys021"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       (list emacs-dash emacs-frecency emacs-helm emacs-org emacs-s))
+      (home-page "https://github.com/alphapapa/org-recent-headings")
+      (synopsis "Navigate to recently used Org headings and lists")
+      (description
+       "This package maintains a list of recently used Org headings,
 as well as functions for navigating between these headings.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-org-super-agenda
   (package
     (name "emacs-org-super-agenda")
     (version "1.2")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/alphapapa/org-super-agenda")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "10l9h2n09cql4ih7nc0ma3ghdsq9l5v9xlj1lg7kq67icdwjlsvy"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/alphapapa/org-super-agenda")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "10l9h2n09cql4ih7nc0ma3ghdsq9l5v9xlj1lg7kq67icdwjlsvy"))))
     (build-system emacs-build-system)
     (arguments
-     `(#:tests? #t
+     `(#:tests? #f                  ;FIXNE: Tests try to read "~/org/test.org"
        #:test-command '("test/run" "--debug")
        #:phases
        (modify-phases %standard-phases
@@ -17202,17 +17259,11 @@ as well as functions for navigating between these headings.")
              ;; https://github.com/alphapapa/org-super-agenda/issues/183).
              (substitute* "test/test.el"
                ((".*org-super-agenda-test--:auto-(map|tags).*" all)
-                (string-append all "  (skip-unless nil)\n")))
-             #t)))))
+                (string-append all "  (skip-unless nil)\n"))))))))
     (native-inputs
-     `(("emacs-f" ,emacs-f)
-       ("getopt" ,util-linux)))
-    (propagated-inputs
-     `(("emacs-org" ,emacs-org)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-ts" ,emacs-ts)
-       ("emacs-ht" ,emacs-ht)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-f util-linux))
+    (propagated-inputs
+     (list emacs-dash emacs-ht emacs-org emacs-s emacs-ts))
     (home-page "https://github.com/alphapapa/org-super-agenda")
     (synopsis "Supercharged Org agenda")
     (description "This package allows items in the Org agenda to be grouped
@@ -17259,9 +17310,7 @@ work Nicolas Rougier.")
                 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-org" ,emacs-org)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-org emacs-dash emacs-s))
     (home-page "https://github.com/alphapapa/org-make-toc")
     (synopsis "Maintain a table of contents for an Org file")
     (description "This package facilitates the creation and maintenance of
@@ -17283,8 +17332,7 @@ tables of contents.")
        (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-s" ,emacs-s)
-       ("emacs-dash" ,emacs-dash)))
+     (list emacs-s emacs-dash))
     (arguments
      ;; XXX: Three tests are failing because of a timezone-related issue
      ;; with how they're written.  On my machine, all the failing test
@@ -17351,16 +17399,16 @@ according to a parsing expression grammar.")
 (define-public emacs-eldev
   (package
     (name "emacs-eldev")
-    (version "0.9.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/doublep/eldev")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1jfj4f5w20qd12k6ygv0jazn2x9pxjrmqmlmibppc4ybrhhgmg0s"))))
+    (version "0.10.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/doublep/eldev")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1y8vz5grmlhln37lf93a3gxwh46ar0v3jj2dcvzkb36lqf1snq73"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -17370,14 +17418,13 @@ according to a parsing expression grammar.")
          (add-after 'unpack 'prepare-for-tests
            (lambda _
              (setenv "ELDEV_LOCAL" (getcwd))
-             (make-file-writable
-              "test/project-i/project-i-autoloads.el")
-             #t))
+             (make-file-writable "test/project-i/project-i-autoloads.el")))
          (add-after 'unpack 'skip-failing-tests
            ;; FIXME: 10 tests are failing.  Skip them for now.
            (lambda _
-             (substitute* '("test/init.el" "test/targets.el")
-               (("(targets-project-e-[34]|init-[1-8]).*" line)
+             (delete-file "test/upgrade-self.el")
+             (substitute* "test/init.el"
+               (("init-[1-8].*" line)
                 (string-append line "(skip-unless nil)\n")))))
          (add-after 'install 'install-eldev-executable
            ;; This constructs the eldev executable from templates and
@@ -17394,10 +17441,9 @@ according to a parsing expression grammar.")
                  ;; eldev doesn't try to bootstrap itself from MELPA when
                  ;; invoked.
                  (("export ELDEV_EMACS.*" all)
-                  (string-append "export ELDEV_LOCAL=" site-lisp "\n" all)))
-               #t))))))
+                  (string-append "export ELDEV_LOCAL=" site-lisp "\n" all)))))))))
     (native-inputs
-     `(("texinfo" ,texinfo)))           ;for tests
+     (list texinfo))           ;for tests
     (home-page "https://github.com/doublep/eldev/")
     (synopsis "Emacs-based build tool for Elisp")
     (description "Eldev (Elisp Development Tool) is an Emacs-based build tool,
@@ -17429,10 +17475,9 @@ parallel to Gradle — its configuration is a program on its own.")
      `(#:tests? #f
        #:test-command '("buttercup" "-L" ".")))
     (native-inputs
-     `(("emacs-buttercup" ,emacs-buttercup)
-       ("emacs-undercover" ,emacs-undercover)))
+     (list emacs-buttercup emacs-undercover))
     (propagated-inputs
-     `(("emacs-s" ,emacs-s)))
+     (list emacs-s))
     (home-page "https://github.com/DarwinAwardWinner/with-simulated-input")
     (synopsis "Non-interactive testing Emacs library")
     (description "This package provides an Emacs Lisp macro,
@@ -17446,7 +17491,7 @@ interactive commands and functions, such as @code{completing-read}.")
 (define-public emacs-org-ql
   (package
     (name "emacs-org-ql")
-    (version "0.5.2")
+    (version "0.6")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -17454,24 +17499,23 @@ interactive commands and functions, such as @code{completing-read}.")
                     (commit version)))
               (sha256
                (base32
-                "0b3xxnbhnrz0263fnrrdbs3gif4pjkfws4mxkfqqpg0fc8azp2rx"))
+                "1jfm4ahh58x3a3njigrbfzd86fnbyybbcgca2mgmxddcy6bszfp1"))
               (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-s" ,emacs-s)
-       ("emacs-f" ,emacs-f)
-       ("emacs-ov" ,emacs-ov)
-       ("emacs-peg" ,emacs-peg)
-       ("emacs-org-super-agenda" ,emacs-org-super-agenda)
-       ("emacs-ts" ,emacs-ts)
-       ("emacs-org" ,emacs-org)
-       ("emacs-helm" ,emacs-helm)
-       ("emacs-helm-org" ,emacs-helm-org)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-transient" ,emacs-transient)))
+     (list emacs-s
+           emacs-f
+           emacs-ov
+           emacs-peg
+           emacs-org-super-agenda
+           emacs-ts
+           emacs-org
+           emacs-helm
+           emacs-helm-org
+           emacs-dash
+           emacs-transient))
     (native-inputs
-     `(("emacs-buttercup" ,emacs-buttercup)
-       ("emacs-with-simulated-input" ,emacs-with-simulated-input)))
+     (list emacs-buttercup emacs-with-simulated-input))
     (arguments
      `(#:tests? #t
        #:test-command '("buttercup" "-L" ".")
@@ -17490,6 +17534,28 @@ interactive commands and functions, such as @code{completing-read}.")
 files, allowing for actions to be performed based on search criteria.")
     (license license:gpl3+)))
 
+(define-public emacs-bing-dict
+  (package
+    (name "emacs-bing-dict")
+    (version "0.2.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/cute-jumper/bing-dict.el")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1kn8kmljn0pj0hz7dj7r7nxw43xd6acndaqq92d02mla12hiqayz"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/cute-jumper/bing-dict.el")
+    (synopsis "Minimalist Bing dictionary interface in Emacs")
+    (description
+     "This package provides a minimalist Emacs extension to search
+@uref{http://www.bing.com/dict}.  It supports English to Chinese, and
+Chinese to English.")
+    (license license:gpl3+)))
+
 (define-public emacs-org-auto-expand
   (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
         (revision "1"))
@@ -17507,8 +17573,7 @@ files, allowing for actions to be performed based on search criteria.")
                   "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-org" ,emacs-org)
-         ("emacs-dash" ,emacs-dash)))
+       (list emacs-org emacs-dash))
       (home-page "https://github.com/alphapapa/org-auto-expand")
       (synopsis "Automatically expand certain Org headings")
       (description "This package allows a customizable set of headings in Org
@@ -17518,7 +17583,7 @@ files to be expanded upon opening them.")
 (define-public emacs-parsebib
   (package
     (name "emacs-parsebib")
-    (version "3.0.1")
+    (version "3.1")
     (source
      (origin
        (method git-fetch)
@@ -17527,7 +17592,7 @@ files to be expanded upon opening them.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1hd6izpb4irinjmfy7zxy8fqnr1fm4iw2sipvl9261nm68dzha6z"))))
+        (base32 "08vrkadjxaw1w1bx8dg12kxxkvgl65p0d7gkpfhwpvv35k0d9z3y"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/joostkremers/parsebib")
     (synopsis "Library for parsing @file{.bib} files")
@@ -17538,7 +17603,7 @@ files to be expanded upon opening them.")
 (define-public emacs-ebib
   (package
     (name "emacs-ebib")
-    (version "2.32.2")
+    (version "2.34")
     (source
      (origin
        (method git-fetch)
@@ -17547,11 +17612,10 @@ files to be expanded upon opening them.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "04kw0akp35r2ibrcav4kaf34d1xs8pckjiygv7h1nqpv6dmrgfq7"))))
+        (base32 "0al846i1dn5wrx3r0ak63m80g9j9xk2q5cpcpk63lq0l0gfdff2m"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-biblio" ,emacs-biblio)
-       ("emacs-parsebib" ,emacs-parsebib)))
+     (list emacs-biblio emacs-ivy emacs-parsebib))
     (home-page "https://joostkremers.github.io/ebib/")
     (synopsis "BibTeX database manager for Emacs")
     (description
@@ -17581,8 +17645,7 @@ with (La)TeX mode, Org mode and other Emacs editing modes.")
         (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-let-alist" ,emacs-let-alist)))
+     (list emacs-dash emacs-let-alist))
     (home-page "https://github.com/cpitclaudel/biblio.el")
     (synopsis "Browse and import bibliographic references")
     (description "This package provides an extensible Emacs package for
@@ -17593,13 +17656,44 @@ and publications from various sources, by keywords or by DOI.  References are
 automatically fetched from well-curated sources, and formatted as BibTeX.")
     (license license:gpl3+)))
 
+(define-public emacs-citar
+  (package
+    (name "emacs-citar")
+    (version "0.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/bdarcus/citar")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "15jhpl2j4rm97cvvqzlfzxarvxvcsg64raz068psrsd2y7y2zh4c"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     (list emacs-auctex emacs-org emacs-parsebib emacs-s))
+    (home-page "https://github.com/bdarcus/citar")
+    (synopsis "Emacs package to quickly find and act on bibliographic entries")
+    (description
+     "This package provides a completing-read front-end to browse and
+act on BibTeX, BibLaTeX, and CSL JSON bibliographic data, and LaTeX,
+markdown, and Org cite editing support.
+
+When used with Vertico (or Selectrum), Embark, and Marginalia, it
+provides similar functionality to helm-bibtex and ivy-bibtex: quick
+filtering and selecting of bibliographic entries from the minibuffer,
+and the option to run different commands against them.
+
+With Embark, it also makes available at-point actions in Org
+citations.")
+    (license license:gpl3+)))
+
 (define-public emacs-helm-bibtex
-  (let ((commit "d4471232be26793fbf56c0ac3690b5f537c378b9")
-        (revision "2"))
+  (let ((commit "aa775340ba691d2322948bfdc6a88158568a1399")
+        (revision "3"))
     (package
       (name "emacs-helm-bibtex")
-      (version (string-append "2.0.0" "-" revision "."
-                              (string-take commit 7)))
+      (version (git-version "2.0.0" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -17608,17 +17702,16 @@ automatically fetched from well-curated sources, and formatted as BibTeX.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j"))))
+          (base32 "1d3mc17ga09m41i06khghlvixr6gsiacifnhdbrfnp0w5592aprk"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)
-         ("emacs-parsebib" ,emacs-parsebib)
-         ("emacs-s" ,emacs-s)
-         ("emacs-dash" ,emacs-dash)
-         ("emacs-f" ,emacs-f)
-         ("emacs-biblio" ,emacs-biblio)
-         ("emacs-ivy" ,emacs-ivy)))
+       (list emacs-helm
+             emacs-parsebib
+             emacs-s
+             emacs-dash
+             emacs-f
+             emacs-biblio
+             emacs-ivy))
       (home-page "https://github.com/tmalsburg/helm-bibtex")
       (synopsis "Bibliography manager based on Helm")
       (description "This package provides bibliography manager for Emacs,
@@ -17668,7 +17761,7 @@ arXiv, Google Scholar, Library of Congress, etc.
                (emacs-substitute-sexps file
                  ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
     (inputs
-     `(("wmctrl" ,wmctrl)))
+     (list wmctrl))
     (home-page "https://github.com/flexibeast/ewmctrl")
     (synopsis "Emacs interface to @code{wmctrl}")
     (description "@code{ewmctrl} provides an Emacs interface to
@@ -17720,7 +17813,7 @@ and @code{erc-send-modify-hook} to download and show images.")
         (base32 "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)))
+     (list emacs-helm))
     (home-page "https://github.com/syohex/emacs-helm-gtags")
     (synopsis "Emacs Helm interface to GNU Global")
     (description
@@ -17858,7 +17951,7 @@ orient yourself in the code, and tell which statements are at a given level.")
         (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
     (build-system emacs-build-system)
     (native-inputs
-     `(("emacs-buttercup" ,emacs-buttercup)))
+     (list emacs-buttercup))
     (arguments
      `(#:tests? #t
        #:test-command '("buttercup" "-L" ".")))
@@ -17906,11 +17999,8 @@ navigate and display hierarchy structures.")
                (base32
                 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
     (propagated-inputs
-     `(("emacs-hierarchy" ,emacs-hierarchy)
-       ("emacs-request" ,emacs-request)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-s" ,emacs-s)
-       ("emacs-tree-mode" ,emacs-tree-mode)))
+     (list emacs-hierarchy emacs-request emacs-dash emacs-s
+           emacs-tree-mode))
     (build-system emacs-build-system)
     (home-page "https://github.com/ahungry/md4rd")
     (synopsis "Emacs Mode for Reddit")
@@ -17945,7 +18035,7 @@ navigate and display hierarchy structures.")
                             ("pulseaudio-control-pactl-path"
                              (string-append pulseaudio "/bin/pactl")))
                           #t))))))
-      (inputs `(("pulseaudio" ,pulseaudio)))
+      (inputs (list pulseaudio))
       (home-page "https://github.com/flexibeast/pulseaudio-control")
       (synopsis "Control @code{pulseaudio} from Emacs")
       (description
@@ -17955,7 +18045,7 @@ navigate and display hierarchy structures.")
 (define-public emacs-datetime
   (package
     (name "emacs-datetime")
-    (version "0.7")
+    (version "0.7.1")
     (source
      (origin
        (method git-fetch)
@@ -17964,12 +18054,12 @@ navigate and display hierarchy structures.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0g6qgp6zvrbiaq6yfzqs3bmnry43xspp3ra3hm17x80b6izdsn90"))))
+        (base32 "108zfj5hz9irgksgg48xdvvaa635m6nzclx7xaymylfcvlycskpl"))))
     (build-system emacs-build-system)
     (arguments
      `(#:include (cons "^[^/]*\\.extmap$" %default-include)))
     (inputs
-     `(("emacs-extmap" ,emacs-extmap)))
+     (list emacs-extmap))
     (home-page "https://github.com/doublep/datetime/")
     (synopsis "Library to work with dates in Emacs")
     (description "Parsing, formatting, matching and recoding
@@ -17977,12 +18067,12 @@ timestamps and date-time format strings library for Emacs.")
     (license license:gpl3+)))
 
 (define-public emacs-org-mind-map
-  (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
-        (revision "1"))
+  ;; XXX: Upstream does not provide any tag.  The commit below corresponds to
+  ;; an exact version bump from the main file.
+  (let ((commit "477701b15cb0c8ed7f021ca76a4cb1a7d9ad6aa5"))
     (package
       (name "emacs-org-mind-map")
-      (version (string-append "0.0.1" "-" revision "."
-                              (string-take commit 7)))
+      (version "0.4")
       (source
        (origin
          (method git-fetch)
@@ -17991,10 +18081,9 @@ timestamps and date-time format strings library for Emacs.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
+          (base32 "08sj43py6aid4vpqgsm0v5n94mcmcil0047qjk033492glz6q55c"))))
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)))
+       (list emacs-dash))
       (build-system emacs-build-system)
       (home-page "https://github.com/theodorewiles/org-mind-map")
       (synopsis "Create Graphviz directed graphs from Org files")
@@ -18023,12 +18112,12 @@ timestamps and date-time format strings library for Emacs.")
     (license license:gpl3+)))
 
 (define-public emacs-itail
-  (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
-        (revision "1"))
+  ;; XXX: Upstream provides no tags.  The commit below corresponds to an exact
+  ;; version bump from main file.
+  (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888"))
     (package
       (name "emacs-itail")
-      (version (string-append "0.0.1" "-" revision "."
-                              (string-take commit 7)))
+      (version "0.0.8")
       (source
        (origin
          (method git-fetch)
@@ -18037,15 +18126,13 @@ timestamps and date-time format strings library for Emacs.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
+          (base32 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
       (build-system emacs-build-system)
       (home-page "https://github.com/re5et/itail")
       (synopsis "Interactive @code{tail} Emacs mode")
-      (description "@code{itail} provides interactive @code{tail} mode
-that allows you to filter the tail with unix pipes and highlight the
-contents of the tailed file.  Works locally or on remote files using
-tramp.")
+      (description "@code{itail} provides interactive @code{tail} mode that
+allows you to filter the tail with Unix pipes and highlight the contents of
+the tailed file.  It works locally or on remote files using Tramp.")
       (license license:gpl3+))))
 
 (define-public emacs-loop
@@ -18063,8 +18150,7 @@ tramp.")
         (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
     (build-system emacs-build-system)
     (native-inputs
-     `(("emacs-ert-runner" ,emacs-ert-runner)
-       ("emacs-undercover" ,emacs-undercover)))
+     (list emacs-ert-runner emacs-undercover))
     (arguments
      `(#:tests? #t
        #:test-command '("ert-runner")))
@@ -18090,15 +18176,14 @@ continue.")
         (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)
-       ("emacs-list-utils" ,emacs-list-utils)
-       ("emacs-loop" ,emacs-loop)
-       ("emacs-s" ,emacs-s)
-       ("emacs-shut-up" ,emacs-shut-up)))
+     (list emacs-dash
+           emacs-f
+           emacs-list-utils
+           emacs-loop
+           emacs-s
+           emacs-shut-up))
     (native-inputs
-     `(("emacs-ert-runner" ,emacs-ert-runner)
-       ("emacs-undercover" ,emacs-undercover)))
+     (list emacs-ert-runner emacs-undercover))
     (arguments
      `(#:tests? #t
        #:test-command '("ert-runner")
@@ -18120,28 +18205,32 @@ confused by comments or @code{foo-bar} matching @code{foo}.")
     (license license:gpl3+)))
 
 (define-public emacs-crdt
-  (package
-    (name "emacs-crdt")
-    (version "0.1.4")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://code.librehq.com/qhong/crdt.el")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0455n75nan7abwnp7zfvrdbqmvlvfp0sf1ififr57h3sqsx3llhk"))))
-    (build-system emacs-build-system)
-    (home-page "https://code.librehq.com/qhong/crdt.el")
-    (synopsis "Real-time collaborative editing environment")
-    (description
-     "@code{crdt.el} is a real-time collaborative editing environment for
+  ;; XXX: Upstream does not always tag new releases.  The commit below
+  ;; corresponds exactly to 0.2.7 bump.
+  (let ((commit "b8a02a5c1f759003343c10f8cedef4daae95f9fe")
+        (version "0.2.7"))
+    (package
+      (name "emacs-crdt")
+      (version version)
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://code.librehq.com/qhong/crdt.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0av65dnfzc0qapl5cvm6ha3vax4c19y6rxbn2qy1ir87q6lpk2xc"))))
+      (build-system emacs-build-system)
+      (home-page "https://code.librehq.com/qhong/crdt.el")
+      (synopsis "Real-time collaborative editing environment")
+      (description
+       "@code{crdt.el} is a real-time collaborative editing environment for
 Emacs using Conflict-free Replicated Data Types.  With it, you can share
 multiple buffer in one session, and see other users’ cursor and region.  It
 also synchronizes Org mode folding status.  It should work with all of Org
 mode.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-crux
   (package
@@ -18185,7 +18274,7 @@ mode.")
            ;; Elisp directory is not in root of the source.
            (lambda _
              (chdir "servers"))))))
-    (propagated-inputs `(("emacs-ert-async" ,emacs-ert-async)))
+    (propagated-inputs (list emacs-ert-async))
     (home-page "https://github.com/stsquad/emacs_chrome")
     (synopsis "Server that responds to edit requests from Chromium")
     (description
@@ -18258,11 +18347,9 @@ macro takes a first argument (whose value must be an alist) and a body.")
            "01khb3xyj0ylwib6ryzzvqmkh5wvzxiq2n3l0s3h9zv7wx849bzv"))))
       (build-system emacs-build-system)
       (native-inputs
-       `(("emacs-noflet" ,emacs-noflet)
-         ("emacs-undercover" ,emacs-undercover)
-         ("emacs-buttercup" ,emacs-buttercup)))
+       (list emacs-noflet emacs-undercover emacs-buttercup))
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)))
+       (list emacs-dash))
       (arguments
      `(#:tests? #t
        #:test-command '("buttercup" "-L" ".")))
@@ -18488,10 +18575,7 @@ until the top-level form is no longer a macro call.")
            "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-company" ,emacs-company)
-         ("emacs-s" ,emacs-s)
-         ("emacs-f" ,emacs-f)
-         ("emacs-lua-mode" ,emacs-lua-mode)))
+       (list emacs-company emacs-s emacs-f emacs-lua-mode))
       (arguments
        `(#:include (cons* "^lua\\/" %default-include)))
       (home-page "https://github.com/ptrv/company-lua")
@@ -18516,7 +18600,7 @@ until the top-level form is no longer a macro call.")
     ;; TODO: Run tests.
     (build-system emacs-build-system)
     (inputs
-     `(("emacs-undercover" ,emacs-undercover))) ; For tests.
+     (list emacs-undercover)) ; For tests.
     (home-page "https://github.com/DamienCassou/beginend")
     (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
     (description "@code{beginend} redefines @code{M-<} and @code{M->}
@@ -18564,7 +18648,7 @@ within Emacs.")
          "18cqxnwzzbkcj9jcaw89b210432yzhrl1dwsv48p0jbhfnr17k41"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-projectile" ,emacs-projectile)))
+     (list emacs-projectile))
     (home-page "https://github.com/purcell/ibuffer-projectile")
     (synopsis "Group ibuffer's list by projectile root")
     (description "Adds functionality to Emacs @code{ibuffer} for
@@ -18608,10 +18692,7 @@ by the status of listed files.")
        (sha256
         (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd"))))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)
-       ("emacs-reformatter" ,emacs-reformatter)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-dash emacs-f emacs-reformatter emacs-s))
     (build-system emacs-build-system)
     (home-page "https://github.com/jcollard/elm-mode")
     (synopsis "Emacs major mode for editing Elm source code")
@@ -18648,7 +18729,7 @@ working with common core and third-party Elm tools.  Its features are:
          "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)))
+     (list emacs-helm))
     (home-page "https://github.com/istib/helm-mode-manager/")
     (synopsis "Switch and toggle Emacs major and minor modes using Helm")
     (description "This package provides a Helm interface for toggling Emacs
@@ -18679,8 +18760,7 @@ documentation.")
         (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-dash emacs-s))
     (home-page "https://github.com/hylang/hy-mode")
     (synopsis "Major mode for Hylang")
     (description "This package provides a major mode for Hylang.")
@@ -18734,7 +18814,7 @@ CSS, JavaScript, JSON.")
                     `(expand-file-name "~/.bash_history"))))
                #t)))))
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)))
+       (list emacs-helm))
       (home-page "https://github.com/yuutayamada/helm-shell-history")
       (synopsis "Find shell history with Emacs Helm")
       (description "This package provides an Emacs Helm interface to search
@@ -18757,7 +18837,7 @@ throw a shell history.")
          "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-makey" ,emacs-makey)))
+     (list emacs-makey))
     (home-page "https://framagit.org/steckerhalter/discover-my-major/")
     (synopsis "Discover key bindings for the current Emacs major mode")
     (description "This package discovers key bindings and
@@ -18779,16 +18859,16 @@ their meaning for the current Emacs major-mode.")
         (base32 "0xd1qp8dfy8n8b2n3rsdzm8vrfl7dii142kw330s8jp3pavww1f6"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)
-       ("emacs-helm" ,emacs-helm)
-       ("emacs-helm-bibtex" ,emacs-helm-bibtex)
-       ("emacs-htmlize" ,emacs-htmlize)
-       ("emacs-hydra" ,emacs-hydra)
-       ("emacs-ivy" ,emacs-ivy)
-       ("emacs-key-chord" ,emacs-key-chord)
-       ("emacs-pdf-tools" ,emacs-pdf-tools)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-dash
+           emacs-f
+           emacs-helm
+           emacs-helm-bibtex
+           emacs-htmlize
+           emacs-hydra
+           emacs-ivy
+           emacs-key-chord
+           emacs-pdf-tools
+           emacs-s))
     (home-page "https://github.com/jkitchin/org-ref")
     (synopsis "Citations, cross-references and bibliographies in Org mode")
     (description
@@ -18837,20 +18917,19 @@ powerful Org contents.")
 (define-public emacs-org-re-reveal
   (package
     (name "emacs-org-re-reveal")
-    (version "3.10.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://gitlab.com/oer/org-re-reveal")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1bc01ybs498x0b6l136czp2y6js8ngwc9jkrmahnqdkkvm65il5y"))))
+    (version "3.12.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/oer/org-re-reveal")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0j7394zcbzqfk33g2xdyb3fmw3brxy8v66vvf1j9nqlskfddh7bn"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-htmlize" ,emacs-htmlize)
-       ("emacs-org" ,emacs-org)))
+     (list emacs-htmlize emacs-org))
     (home-page "https://gitlab.com/oer/org-re-reveal")
     (synopsis "Build HTML presentations with reveal.js from Org source files")
     (description "This project started as fork of org-reveal.  It provides an
@@ -18998,8 +19077,7 @@ regions which @code{hideshow} can hide.")
            "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-outshine" ,emacs-outshine)
-         ("emacs-outorg" ,emacs-outorg)))
+       (list emacs-outshine emacs-outorg))
       (home-page "https://github.com/alphapapa/navi")
       (synopsis "Emacs major-mode for easy buffer-navigation")
       (description
@@ -19045,14 +19123,9 @@ downloading manager for Emacs.")
         (base32 "0gdjxykqkal2x765mi51m99i5ql23i1fy909wy4mzj5ajhjfgqcc"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-elisp-refs" ,emacs-elisp-refs)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-s" ,emacs-s)
-       ("emacs-f" ,emacs-f)
-       ("emacs-shut-up" ,emacs-shut-up)))
+     (list emacs-elisp-refs emacs-dash emacs-s emacs-f emacs-shut-up))
     (native-inputs
-     `(("emacs-ert-runner" ,emacs-ert-runner)
-       ("emacs-undercover" ,emacs-undercover)))
+     (list emacs-ert-runner emacs-undercover))
     (arguments
      `(#:tests? #t
        #:test-command '("ert-runner")))
@@ -19093,8 +19166,7 @@ and doesn't require memorisation of commands.
        (sha256
         (base32 "1cchmr25z5zj7rgb2fyxkaq8kpw7i5yg1pvn42dvm09c2wrfbj46"))))
     (propagated-inputs
-     `(("emacs-datetime" ,emacs-datetime)
-       ("emacs-extmap" ,emacs-extmap)))
+     (list emacs-datetime emacs-extmap))
     (build-system emacs-build-system)
     (home-page "https://github.com/doublep/logview/")
     (synopsis "Emacs mode for viewing log files")
@@ -19118,15 +19190,14 @@ and doesn't require memorisation of commands.
          "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-loop" ,emacs-loop)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-s" ,emacs-s)
-       ("emacs-f" ,emacs-f)
-       ("emacs-spinner" ,emacs-spinner)
-       ("emacs-shut-up" ,emacs-shut-up)))
+     (list emacs-loop
+           emacs-dash
+           emacs-s
+           emacs-f
+           emacs-spinner
+           emacs-shut-up))
     (native-inputs
-     `(("emacs-ert-runner" ,emacs-ert-runner)
-       ("emacs-undercover" ,emacs-undercover)))
+     (list emacs-ert-runner emacs-undercover))
     (arguments
      `(#:tests? #t
        #:test-command '("ert-runner")))
@@ -19171,7 +19242,7 @@ time is being spent during Emacs startup in order to optimize startup time.")
         (base32 "1q4kcr2ha2kir7pj0cshmgllgq51543syxkkk5jk3ksfiaba4crj"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-magit" ,emacs-magit)))
+     (list emacs-magit))
     (home-page "https://github.com/terranpro/magit-gerrit")
     (synopsis "Magit extension for Gerrit")
     (description "This Magit extension provides integration with Gerrit,
@@ -19194,7 +19265,7 @@ Emacs.")
         (base32
          "07r5x256k1fjjxs1yfg41kc94nwvnjlk2vvknkra3j8v9p0j88m7"))))
     (propagated-inputs
-     `(("magit" ,emacs-magit)))
+     (list emacs-magit))
     (build-system emacs-build-system)
     (home-page "https://github.com/danielma/magit-org-todos.el")
     (synopsis "Get todo.org into Emacs Magit status")
@@ -19244,7 +19315,7 @@ Magit.")
         (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)))
+     (list emacs-helm))
     (home-page "https://github.com/cosmicexplorer/f3")
     (synopsis "Fantastic File Finder for Emacs")
     (description
@@ -19311,9 +19382,7 @@ Magit.")
            "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-s" ,emacs-s)
-         ("emacs-ht" ,emacs-ht)))
+       (list emacs-dash emacs-s emacs-ht))
       (home-page "https://github.com/nashamri/academic-phrases")
       (synopsis "Bypass that mental block when writing your papers")
       (description
@@ -19348,7 +19417,7 @@ browse the phrases by the paper section and fill-in the blanks if required.")
        '(#:tests? #t
          #:test-command '("make" "test")))
       (propagated-inputs
-       `(("emacs-yasnippet" ,emacs-yasnippet)))
+       (list emacs-yasnippet))
       (home-page "https://github.com/abo-abo/auto-yasnippet/")
       (synopsis "Quickly create disposable yasnippets")
       (description "This package provides a hybrid of keyboard macros and
@@ -19373,7 +19442,7 @@ yasnippet fields and mirrors to be.")
         (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-parent-mode" ,emacs-parent-mode)))
+     (list emacs-parent-mode))
     (home-page "https://github.com/Fanael/highlight-numbers")
     (synopsis "Highlight numbers in source code")
     (description "@code{highlight-numbers-mode} provides a minor mode for
@@ -19540,9 +19609,7 @@ perform regression test for packages that provide font-lock rules.")
       (arguments
        `(#:include '("\\.el$" "\\.rkt$")))
       (propagated-inputs
-       `(("emacs-faceup" ,emacs-faceup)
-         ("emacs-pos-tip" ,emacs-pos-tip)
-         ("emacs-s" ,emacs-s)))
+       (list emacs-faceup emacs-pos-tip emacs-s))
       (home-page "https://www.racket-mode.com/")
       (synopsis "Major mode for the Racket language")
       (description "@code{racket-mode} provides:
@@ -19572,7 +19639,7 @@ perform regression test for packages that provide font-lock rules.")
            "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)))
+       (list emacs-dash))
       (home-page "https://github.com/mkcms/grep-context")
       (synopsis "Increase context in compilation and grep buffers")
       (description
@@ -19596,7 +19663,7 @@ compilation/grep buffers.  Works with @code{wgrep}, @code{ack}, @code{ag},
         (base32
          "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)))
+     (list emacs-helm))
     (build-system emacs-build-system)
     (home-page "https://github.com/emacs-helm/helm-firefox")
     (synopsis "Display firefox bookmarks with Emacs Helm interface")
@@ -19680,9 +19747,7 @@ macros, faces and variables.  To enable call @code{highlight-defined-mode}. ")
        (sha256
         (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
-       ("emacs-company" ,emacs-company)))
+     (list emacs-dash emacs-rainbow-delimiters emacs-company))
     (build-system emacs-build-system)
     (home-page "https://github.com/DogLooksGood/parinfer-mode/")
     (synopsis "Lisp structure editing mode")
@@ -19705,7 +19770,7 @@ keep Parens and Indentation inline with one another.")
                (base32
                 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)))
+     (list emacs-helm))
     (build-system emacs-build-system)
     (home-page "https://github.com/emacs-helm/helm-eww/")
     (synopsis "Helm interface to EWW")
@@ -19879,7 +19944,7 @@ Emacs minor mode to escape sequences in code.")
         (base32 "1qv4cqjy2s2d2bysbq10vq1axpbd8qc3jn1s1r81lxqkcja8zasa"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-page-break-lines" ,emacs-page-break-lines)))
+     (list emacs-page-break-lines))
     (arguments
      '(#:include '("\\.el$" "\\.txt$" "\\.png$")
        #:phases
@@ -19913,8 +19978,7 @@ sections for bookmarks, projectil projects, org-agenda and more. ")
         (base32 "05dnnc4ms5c9yp9h65k2gbkg3pw9k38nx5wzlwdlfr4shqmw54w0"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-slime" ,emacs-slime)
-       ("emacs-company" ,emacs-company)))
+     (list emacs-slime emacs-company))
     (home-page "https://company-mode.github.io")
     (synopsis "SLIME completion backend for @code{company-mode}")
     (description
@@ -20006,8 +20070,7 @@ scroll up to read the function name and then scroll down to original position.")
         (base32 "0gpib57f7xza04g3iyihw5v15hb7pncqsmvyggib902yvcxlkvqf"))))
     (build-system emacs-build-system)
     (native-inputs
-     `(("emacs-buttercup" ,emacs-buttercup)
-       ("git" ,git)))
+     (list emacs-buttercup git))
     (arguments
      `(#:tests? #t
        #:test-command '("buttercup" "-L" ".")))
@@ -20058,9 +20121,7 @@ on drag distance.")
         (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-company" ,emacs-company)
-       ("emacs-know-your-http-well" ,emacs-know-your-http-well)
-       ("emacs-restclient" ,emacs-restclient)))
+     (list emacs-company emacs-know-your-http-well emacs-restclient))
     (home-page "https://github.com/iquiw/company-restclient")
     (synopsis "Company-mode completion back-end for restclient-mode")
     (description "@code{company-mode} back-end for
@@ -20100,7 +20161,7 @@ It provides auto-completion for HTTP methods and headers in
                  ((";;; Code:") ";;; Code:\n(require 'dash)"))
                #t)))))
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)))
+       (list emacs-dash))
       (home-page "https://github.com/nicferrier/emacs-noflet")
       (synopsis "Locally override functions")
       (description "@code{emacs-noflet} lets you locally override functions,
@@ -20111,7 +20172,7 @@ through the symbol: @command{this-fn}.")
 (define-public emacs-dumb-jump
   (package
     (name "emacs-dumb-jump")
-    (version "0.5.3")
+    (version "0.5.4")
     (source
      (origin
        (method git-fetch)
@@ -20120,10 +20181,10 @@ through the symbol: @command{this-fn}.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"))))
+        (base32 "18d2ll5wlll6pm909hiw8w9ijdbrjvy86q6ljzx8yyrjphgn0y1y"))))
     (build-system emacs-build-system)
     (arguments
-     `(#:tests? #f ; FIXME: Tests freeze when run.
+     `(#:tests? #f                      ; FIXME: Tests freeze when run.
        #:test-command '("ert-runner")
        #:phases
        (modify-phases %standard-phases
@@ -20131,16 +20192,11 @@ through the symbol: @command{this-fn}.")
            (lambda _
              ;; Setting the SHELL environment variable is required for the
              ;; tests to find sh.
-             (setenv "SHELL" (which "sh"))
-             #t)))))
+             (setenv "SHELL" (which "sh")))))))
     (native-inputs
-     `(("emacs-el-mock" ,emacs-el-mock)
-       ("emacs-noflet" ,emacs-noflet)
-       ("emacs-undercover" ,emacs-undercover)
-       ("ert-runner" ,emacs-ert-runner)))
+     (list emacs-el-mock emacs-ert-runner emacs-noflet emacs-undercover))
     (propagated-inputs
-     `(("emacs-f" ,emacs-f)
-       ("emacs-popup" ,emacs-popup)))
+     (list emacs-f emacs-popup))
     (home-page "https://github.com/jacktasia/dumb-jump")
     (synopsis "Jump to definition for multiple languages without configuration")
     (description "Dumb Jump is an Emacs \"jump to definition\" package with
@@ -20304,7 +20360,7 @@ matching regexps.")
         (base32
          "0l2nnlr3b6df1xn0qjf5d5ryy1wcs1jczyfy795vsasd5gm3g0xh"))))
     (build-system emacs-build-system)
-    (propagated-inputs `(("emacs-company" ,emacs-company)))
+    (propagated-inputs (list emacs-company))
     (home-page "https://github.com/dieggsy/esh-autosuggest")
     (synopsis "Fish-like autosuggestions in Eshell")
     (description
@@ -20363,7 +20419,7 @@ be changed by customizing the appropriate variables.")
        ;; Tests require to have two specific calendars on a test server.
        `(#:exclude '("^org-caldav-testsuite\\.el")))
       (propagated-inputs
-       `(("emacs-org" ,emacs-org)))
+       (list emacs-org))
       (home-page "https://github.com/dengste/org-caldav")
       (synopsis "Sync Org files with external calendars via the CalDAV protocol")
       (description
@@ -20386,8 +20442,7 @@ calendar.")
         (base32 "1zr67h0w49rsi84mgf6jdili28h8782q6vjl8za0iq1hcx9zqxyf"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-deferred" ,emacs-deferred)
-       ("emacs-request" ,emacs-request)))
+     (list emacs-deferred emacs-request))
     (home-page "https://github.com/egh/zotxt-emacs")
     (synopsis "Integrate Emacs with Zotero")
     (description "This package provides two integration features between Emacs
@@ -20395,46 +20450,10 @@ and the Zotero research assistant: Insertion of links to Zotero items into an
 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
     (license license:gpl3+)))
 
-(define-public emacs-evil-magit
-  (let ((commit "98c076fbeb6d2d7d71e02dc204ba3ad5d577abda")
-        (revision "5"))
-    (package
-      (name "emacs-evil-magit")
-      (version (git-version "0.4.2" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/emacs-evil/evil-magit")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0b4iplxh3rmy8jadhf05pgksv1798d68d1jrhfry93jca8x9crxs"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-evil" ,emacs-evil)
-         ("magit" ,emacs-magit)))
-      (arguments
-       `(#:tests? #t
-         #:test-command '("emacs" "-Q" "-batch"
-                          "-L" "."
-                          "-l" "evil-magit-tests"
-                          "-f" "ert-run-tests-batch-and-exit")))
-      (home-page
-       "https://github.com/emacs-evil/evil-magit")
-      (synopsis "Evil-based key bindings for Magit")
-      (description
-       "This Emacs library configures Magit and Evil to play well with each other.
-For some background see @url{https://github.com/magit/evil-magit/issues/1}.
-See the README at @url{https://github.com/justbur/evil-magit} for a table
-describing the key binding changes.")
-      (license license:gpl3+))))
-
 (define-public emacs-evil-multiedit
   (package
     (name "emacs-evil-multiedit")
-    (version "1.3.9")
+    (version "1.4.3")
     (source
      (origin
        (method git-fetch)
@@ -20443,26 +20462,24 @@ describing the key binding changes.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
+        (base32 "08ycwss58zh2zikk79jfj074q78yjcd7vbjgv5ssqvws09x5rgfq"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-evil" ,emacs-evil)
-       ("emacs-iedit" ,emacs-iedit)))
+     (list emacs-evil emacs-iedit))
     (native-inputs
-     `(("emacs-ert-runner" ,emacs-ert-runner)))
+     (list emacs-ert-runner))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'fix-makefile
+         (add-before 'check 'fix-checks
            (lambda _
              (substitute* "Makefile"
                (("@cask exec ") ""))
-             #t)))
+             (substitute* "test/test-helper.el"
+               (("'\\(evil iedit\\)") "nil")))))
        #:tests? #t
        #:test-command '("make" "test")))
-    (home-page
-     "https://github.com/hlissner/evil-multiedit")
+    (home-page "https://github.com/hlissner/evil-multiedit")
     (synopsis "Multiple cursors for Evil mode")
     (description
      "This plugin was an answer to the lack of proper multiple cursor support
@@ -20488,9 +20505,9 @@ defaults.")
           (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-evil" ,emacs-evil)))
+       (list emacs-evil))
       (native-inputs
-       `(("emacs-espuds" ,emacs-espuds)))
+       (list emacs-espuds))
       (home-page "https://github.com/gabesoft/evil-mc")
       (synopsis "Interactive search compatible with @code{multiple-cursors}")
       (description "This package can be used with @code{multiple-cursors} to
@@ -20513,7 +20530,7 @@ provide an incremental search that moves all fake cursors in sync.")
           (base32
            "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"))))
       (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (propagated-inputs (list emacs-evil))
       (home-page
        "https://github.com/Somelauw/evil-org-mode")
       (synopsis "Evil keybindings for Org mode")
@@ -20547,7 +20564,7 @@ Org-mode.  It features:
          "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-xml-rpc" ,emacs-xml-rpc)))
+     (list emacs-xml-rpc))
     (synopsis "Manipulate pastes from the Debian Pastezone")
     (description "Debpaste is an Emacs interface for the Debian Pastezone,
 allowing you to receive, post, and delete pastes.  It communicates with the
@@ -20613,7 +20630,7 @@ cohesion with the Emacs Way.")
         (base32
          "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
     (build-system emacs-build-system)
-    (inputs `(("fish" ,fish)))
+    (inputs (list fish))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -20664,9 +20681,7 @@ try completing.  See @code{fish-completion-fallback-on-bash-p}.")
          "1yf6yipvhhna29mzaan5vb3d5qvbrkp2awr5diyf381mvxgk8akh"))))
     (build-system emacs-build-system)
     (inputs
-     `(("scrot" ,scrot)
-       ("imagemagick" ,imagemagick)
-       ("gifsicle" ,gifsicle)))
+     (list scrot imagemagick gifsicle))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -20736,10 +20751,9 @@ on-line service.")
          "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)
-       ("emacs-company" ,emacs-company)))
+     (list emacs-helm emacs-company))
     (native-inputs
-     `(("emacs-ert-runner" ,emacs-ert-runner)))
+     (list emacs-ert-runner))
     (arguments
      `(#:tests? #t
        #:test-command '("ert-runner")))
@@ -20766,7 +20780,7 @@ framework.")
           (base32
            "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
       (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-helm" ,emacs-helm)))
+      (propagated-inputs (list emacs-helm))
       (home-page "https://github.com/emacs-helm/helm-descbinds")
       (synopsis "Convenient @code{describe-bindings} with Helm")
       (description
@@ -20795,8 +20809,7 @@ you searched for and execute it, or view its documentation.")
            "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)
-         ("emacs-emms" ,emacs-emms)))
+       (list emacs-helm emacs-emms))
       (home-page
        "https://github.com/emacs-helm/helm-emms")
       (synopsis "Emms for Helm")
@@ -20819,8 +20832,7 @@ from @code{emms-source-file-default-directory}.")
         (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)
-       ("emacs-exwm" ,emacs-exwm)))
+     (list emacs-helm emacs-exwm))
     (home-page
      "https://github.com/emacs-helm/helm-exwm")
     (synopsis "Helm for EXWM buffers")
@@ -20848,9 +20860,7 @@ See @code{helm-exwm-switch-browser} for an example.")
            "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-flycheck" ,emacs-flycheck)
-         ("emacs-helm" ,emacs-helm)))
+       (list emacs-dash emacs-flycheck emacs-helm))
       (home-page "https://github.com/yasuyk/helm-flycheck")
       (synopsis "Show Flycheck errors with Helm")
       (description
@@ -20858,26 +20868,24 @@ See @code{helm-exwm-switch-browser} for an example.")
       (license license:gpl3+))))
 
 (define-public emacs-helm-ls-git
-  (let ((commit "4da1a53f2f0a078ee2e896a914a1b19c0bf1d5ed"))
-    (package
-      (name "emacs-helm-ls-git")
-      (version (git-version "1.9.1" "2" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/emacs-helm/helm-ls-git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "12fi08w20yjsdfkxl1pk9q4w0z9l92va5fa5ghay9w33xlymc8dc"))))
-      (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-helm" ,emacs-helm)))
-      (home-page "https://github.com/emacs-helm/helm-ls-git")
-      (synopsis "Helm interface for listing the files in a Git repository")
-      (description
-       "This package provides a Helm interface for Git files.
+  (package
+    (name "emacs-helm-ls-git")
+    (version "1.9.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emacs-helm/helm-ls-git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1bqk0z6zd3aza7ibb8h0ghya5kid4m6z01gs7jf4sr6p49rzp7hd"))))
+    (build-system emacs-build-system)
+    (propagated-inputs (list emacs-helm))
+    (home-page "https://github.com/emacs-helm/helm-ls-git")
+    (synopsis "Helm interface for listing the files in a Git repository")
+    (description
+     "This package provides a Helm interface for Git files.
 @itemize
 @item Display the open buffers in project.
 @item Display a status source showing state of project (modified files etc.).
@@ -20892,7 +20900,7 @@ can use ack-grep instead of grep).
 projects unrelated to current-buffer.
 @item In addition, all actions of type files and buffers are provided.
 @end itemize\n")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-helm-mu
   (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
@@ -20910,8 +20918,7 @@ projects unrelated to current-buffer.
           (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)
-         ("mu" ,mu)))
+       (list emacs-helm mu))
       (home-page
        "https://github.com/emacs-helm/helm-mu")
       (synopsis
@@ -20940,8 +20947,7 @@ e.g: @code{from:Peter to:Anne flag:attach search term}.")
          "19w24isddzamkikq17vbv3y7ha22i7wc09d2nqw1j0qwhrrfkng9"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)
-       ("emacs-password-store" ,emacs-password-store)))
+     (list emacs-helm emacs-password-store))
     (home-page "https://github.com/emacs-helm/helm-pass")
     (synopsis "Helm interface to pass, the standard Unix password manager")
     (description
@@ -20971,7 +20977,7 @@ provided by other Emacs packages dealing with pass:
           (base32
            "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
       (build-system emacs-build-system)
-      (inputs `(("imagemagick" ,imagemagick)))
+      (inputs (list imagemagick))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -21024,7 +21030,7 @@ file.")
 (define-public emacs-packed
   (package
     (name "emacs-packed")
-    (version "3.0.3")
+    (version "3.0.4")
     (source
      (origin
        (method git-fetch)
@@ -21033,8 +21039,7 @@ file.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "06blk8parnpq3qi6y5628q3v59c8dyi41glb289a0l16248qwphk"))))
+        (base32 "1gpv2vaci0m48fzn0sy7iwl1mnkkqc30bf05jjrqlpn9kpbjyf1p"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/emacscollective/packed")
     (synopsis "Package manager agnostic Emacs Lisp package utilities")
@@ -21052,6 +21057,29 @@ and might also fail at times but makes it unnecessary to maintain
 package recipes.")
     (license license:gpl3+)))
 
+(define-public emacs-dpd
+  (package
+    (name "emacs-dpd")
+    (version "0.2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/lilyp/emacs-dpd")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0wrqmpfcqp87dr5blpskf9kvm9slvffldqfxx77n15gcw516zzc8"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     (list emacs-packed))
+    (home-page "https://gitlab.com/lilyp/emacs-dpd")
+    (synopsis "Deliver packages to package.el")
+    (description
+     "This package provides tools for generating package-desc structures and
+feeding them to package.el library.")
+    (license license:gpl3+)))
+
 (define-public emacs-picpocket
   (let ((version "41")
         (commit "fa3a49f011b5ae139728548fec7375743f61c7c7"))
@@ -21106,7 +21134,7 @@ package recipes.")
            "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("mu" ,mu)))
+       (list mu))
       (home-page
        "https://gitlab.com/Ambrevar/mu4e-conversation")
       (synopsis
@@ -21137,7 +21165,7 @@ maps the thread tree.")
            "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("gnupg" ,gnupg)))
+       (list gnupg))
       (home-page "https://elpa.gnu.org/packages/pinentry.html")
       (synopsis "GnuPG Pinentry server implementation")
       (description
@@ -21152,7 +21180,7 @@ server with @code{M-x pinentry-start}.")
 (define-public emacs-so-long
   (package
     (name "emacs-so-long")
-    (version "1.1")
+    (version "1.1.2")
     (source
      (origin
        (method git-fetch)
@@ -21162,7 +21190,7 @@ server with @code{M-x pinentry-start}.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1d886fgsbly7wpm6ppll45yq3y87a27wy5c6m0gqxq5jb4q0q7d2"))))
+         "06a76ajfqgz48yqvvyhi5b9zss9c6h4xz6acg98ibg0v99v9k5pz"))))
     (build-system emacs-build-system)
     (home-page "https://www.emacswiki.org/emacs/SoLong")
     (synopsis "Improve performance in files with long lines")
@@ -21214,12 +21242,9 @@ them in your web browser.")
            "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
       (build-system emacs-build-system)
       (inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-s" ,emacs-s)
-         ("emacs-ghub" ,emacs-ghub)))
+       (list emacs-dash emacs-s emacs-ghub))
       (native-inputs
-       `(("emacs-buttercup" ,emacs-buttercup)
-         ("emacs-undercover" ,emacs-undercover)))
+       (list emacs-buttercup emacs-undercover))
       (arguments
        `(#:tests? #t
          #:test-command '("buttercup" "-L" "test/github-review-test.el")))
@@ -21246,11 +21271,9 @@ accept and reject GitHub pull requests.")
           (base32
            "1vjhrq02l8gvdn2haygzq7277hnhjchs9xrfpcnh76gqip200gx4"))))
       (build-system emacs-build-system)
-      (inputs `(("ripgrep" ,ripgrep)))
+      (inputs (list ripgrep))
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-s" ,emacs-s)
-         ("emacs-spinner" ,emacs-spinner)))
+       (list emacs-dash emacs-s emacs-spinner))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -21310,8 +21333,7 @@ text in neighboring sections.")
          "1c3gay9fkikg7h46djw1nf86fzckmv7w1zbz5fbar20klcr12pbm"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-hydra" ,emacs-hydra)))
+     (list emacs-dash emacs-hydra))
     (home-page "https://github.com/joostkremers/pandoc-mode")
     (synopsis "Minor mode for interacting with Pandoc")
     (description "This package provides a Hydra menu for interacting with the
@@ -21336,8 +21358,7 @@ Pandoc, the document-conversion tool.")
            "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("apply-refact" ,apply-refact)
-         ("hlint" ,hlint)))
+       (list apply-refact hlint))
       (home-page "https://github.com/mpickering/hlint-refactor-mode")
       (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
       (description "This package applies refactoring suggestions from
@@ -21362,9 +21383,7 @@ Pandoc, the document-conversion tool.")
            "0l4bhyr9d8ljz1f0cfg1s2cjcmh6fiwbk5mdlvc7rrwz5hxc21is"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("ccls" ,ccls)
-         ("emacs-dash" ,emacs-dash)
-         ("emacs-lsp-mode" ,emacs-lsp-mode)))
+       (list ccls emacs-dash emacs-lsp-mode))
       (home-page "https://github.com/MaskRay/emacs-ccls")
       (synopsis "Emacs support for the @code{ccls} language server")
       (description "This package extends @code{lsp-mode} to work with @code{C}
@@ -21510,7 +21529,7 @@ and 'text viewing modes' respectively.")
                         "-l" "adoc-mode-test.el"
                         "-f" "ert-run-tests-batch-and-exit")))
     (propagated-inputs
-     `(("emacs-markup-faces" ,emacs-markup-faces)))
+     (list emacs-markup-faces))
     (home-page "https://github.com/sensorflo/adoc-mode/wiki")
     (synopsis "AsciiDoc mode for Emacs")
     (description "This package provides an Emacs major mode for editing AsciiDoc
@@ -21552,14 +21571,9 @@ files.  It focuses on highlighting the document to improve readability.")
                ((" \\[`str`\\]") " str"))
              #t)))))
     (native-inputs
-     `(("emacs-ert-runner" ,emacs-ert-runner)
-       ("emacs-undercover" ,emacs-undercover)))
+     (list emacs-ert-runner emacs-undercover))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)
-       ("emacs-pos-tip" ,emacs-pos-tip)
-       ("emacs-rust-mode" ,emacs-rust-mode)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-dash emacs-f emacs-pos-tip emacs-rust-mode emacs-s))
     (build-system emacs-build-system)
     (home-page "https://github.com/racer-rust/emacs-racer")
     (synopsis "Racer support for Emacs")
@@ -21573,23 +21587,20 @@ docstring of the thing at point.")
 (define-public emacs-rust-mode
   (package
     (name "emacs-rust-mode")
-    (version "0.5.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/rust-lang/rust-mode")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1f3nnl0d7p9b5cv1bpm0hj898qmr2psxfvmqr61bh684z7fgc045"))))
+    (version "1.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rust-lang/rust-mode")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1chb3a97cwf1pkxn8cm3wc35gfh9k55l7khg7pklmx36isr3csjv"))))
     (build-system emacs-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda _
-             (invoke "sh" "run_rust_emacs_tests.sh"))))))
+     `(#:tests? #false                  ;FIXME: phase fail with status 127
+       #:test-command '("make test")))
     (home-page "https://github.com/rust-lang/rust-mode")
     (synopsis "Major Emacs mode for editing Rust source code")
     (description "This package provides a major Emacs mode for editing Rust
@@ -21598,45 +21609,42 @@ source code.")
                    license:asl2.0))))
 
 (define-public emacs-rustic
-  ;; XXX: Upstream does not tag releases.  Version is extracted from main
-  ;; file.
-  (let ((commit "bbf129cd128105de51b6c242b2551094b8d8987d")
-        (revision "0"))
-    (package
-      (name "emacs-rustic")
-      (version (git-version "1.3" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/brotzeit/rustic")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "09dnlvi8kf683n6q3yp4gy9d4idiyg4x6rcij8d90cvygh8i30wd"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-f" ,emacs-f)
-         ("emacs-flycheck" ,emacs-flycheck)
-         ("emacs-lsp-mode" ,emacs-lsp-mode)
-         ("emacs-markdown-mode" ,emacs-markdown-mode)
-         ("emacs-project" ,emacs-project)
-         ("emacs-s" ,emacs-s)
-         ("emacs-spinner" ,emacs-spinner)
-         ("emacs-xterm-color" ,emacs-xterm-color)))
-      (arguments
-       ;; Tests require rust, cargo, rustfmt, and various crates to be
-       ;; vendored.
-       `(#:tests? #f
-         #:phases
-         (modify-phases %standard-phases
-           (add-before 'check 'set-without-cask
-             (lambda _
-               (setenv "WITHOUT_CASK" "1"))))))
-      (home-page "https://github.com/brotzeit/rustic")
-      (synopsis "Rust development environment for Emacs")
-      (description "Rustic is a fork of Rust mode.
+  (package
+    (name "emacs-rustic")
+    (version "2.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/brotzeit/rustic")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0l20n32s17zpvc3l0mnmr9vr9hsds002mm82i9r0dmz5hp1hp8d0"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     (list emacs-dash
+           emacs-f
+           emacs-flycheck
+           emacs-lsp-mode
+           emacs-markdown-mode
+           emacs-project
+           emacs-rust-mode
+           emacs-s
+           emacs-spinner
+           emacs-xterm-color))
+    (arguments
+     ;; Tests require rust, cargo, rustfmt, and various crates to be
+     ;; vendored.
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'set-without-cask
+           (lambda _
+             (setenv "WITHOUT_CASK" "1"))))))
+    (home-page "https://github.com/brotzeit/rustic")
+    (synopsis "Rust development environment for Emacs")
+    (description "Rustic is a fork of Rust mode.
 In addition to its predecessor, it offers the following features:
 @itemize
 @item Flycheck integration,
@@ -21650,8 +21658,8 @@ In addition to its predecessor, it offers the following features:
 @item optional Rust inline documentation,
 @item etc.
 @end itemize")
-      (license (list license:expat
-                     license:asl2.0)))))
+    (license (list license:expat
+                   license:asl2.0))))
 
 (define-public emacs-ztree
   ;; Upstream provides no tag, but the commit below matches latest release.
@@ -21695,9 +21703,7 @@ text-tree applications inside GNU Emacs.  It consists of 2 subprojects:
            "06a1gbrq3qcfsn0kyv4i24x1xxfrrwqa3kgfj4xa4va88q2vqyb5"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-helm" ,emacs-helm)
-         ("emacs-s" ,emacs-s)))
+       (list emacs-dash emacs-helm emacs-s))
       (home-page "https://github.com/tmalsburg/helm-org-contacts")
       (synopsis "Helm source for org-contacts")
       (description "This Helm source can be used to search contacts stored in
@@ -21746,8 +21752,7 @@ buffer displays recursive dir sizes.")
                 "19za6i96xrmczdh928n5ixd7j7pvy175sz1msaiwvdjwysjr8k51"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-s" ,emacs-s)
-       ("emacs-dash" ,emacs-dash)))
+     (list emacs-s emacs-dash))
     (home-page "https://github.com/stsquad/dired-rsync/")
     (synopsis "Support for rsync from Emacs dired buffers")
     (description "This package adds a single command @code{dired-rsync} which
@@ -21809,13 +21814,13 @@ buffers – other modes on the TODO list).
          "12ay02vk6bk77k33mhlqi41m03a77y80b15rj1dbh1n6jfrjwkfy"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-async" ,emacs-async)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)
-       ("emacs-hl-todo" ,emacs-hl-todo)
-       ("magit" ,emacs-magit)
-       ("emacs-pcre2el" ,emacs-pcre2el)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-async
+           emacs-dash
+           emacs-f
+           emacs-hl-todo
+           emacs-magit
+           emacs-pcre2el
+           emacs-s))
     (home-page "https://github.com/alphapapa/magit-todos")
     (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
     (description "This package displays keyword entries from source code
@@ -21892,7 +21897,7 @@ News homepage.")
            "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
       (build-system emacs-build-system)
       (inputs
-       `(("youtube-dl" ,youtube-dl)))
+       (list youtube-dl))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -21929,24 +21934,22 @@ can be queued at any time.")
        (sha256
         (base32 "010arhvibyw50lqhsr8bm0vj3pzry1h1vgcvxnmyryirk3dv40jl"))))
     (build-system emacs-build-system)
-    (inputs
-     `(("youtube-dl" ,youtube-dl)))
-    (propagated-inputs
-     `(("async" ,emacs-async)
-       ("transient" ,emacs-transient)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'configure
            (lambda* (#:key inputs #:allow-other-keys)
-             (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
-               ;; .el is read-only in git.
-               (make-file-writable "ytdl.el")
-               ;; Specify the absolute file names of the various programs so
-               ;; that everything works out-of-the-box.
-               (emacs-substitute-variables "ytdl.el"
-                 ("ytdl-command" (string-append youtube-dl "/bin/youtube-dl")))
-               #t))))))
+             ;; .el is read-only in git.
+             (make-file-writable "ytdl.el")
+             ;; Specify the absolute file names of the various programs so
+             ;; that everything works out-of-the-box.
+             (emacs-substitute-variables "ytdl.el"
+               ("ytdl-command"
+                (search-input-file inputs "/bin/youtube-dl"))))))))
+    (inputs
+     (list youtube-dl))
+    (propagated-inputs
+     (list emacs-async emacs-transient))
     (home-page "https://gitlab.com/tuedachu/ytdl")
     (synopsis "Emacs interface for youtube-dl")
     (description
@@ -21982,7 +21985,7 @@ depending on the downloaded URL.")
                  (substitute* "ytel.el"
                    (("\"curl\"") (string-append "\"" curl "/bin/curl\"")))))))))
       (inputs
-       `(("curl" ,curl)))
+       (list curl))
       (home-page "https://github.com/grastello/ytel")
       (synopsis "Youtube front-end for Emacs")
       (description
@@ -22010,7 +22013,7 @@ as playing them in some video player, or downloading them.")
           (base32 "0nhgzfzq1bgpbdbljx5z2hzr8ia7ybsyvvr66yj4klz0zj97rghj"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-ytel" ,emacs-ytel)))
+       (list emacs-ytel))
       (home-page "https://github.com/xFA25E/ytel-show")
       (synopsis "Browse YouTube in Emacs")
       (description
@@ -22034,12 +22037,9 @@ and comments.")
          "0v4qad54r0z7dr7kg5lpfdsazi44qvrbybx9aciyl4w9grfajphb"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-esxml" ,emacs-esxml)
-       ("emacs-request" ,emacs-request)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-dash emacs-esxml emacs-request emacs-s))
     (inputs
-     `(("pandoc" ,pandoc)))
+     (list pandoc))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -22078,7 +22078,7 @@ inserts it as an Org entry instead of displaying it in a new buffer.")
            "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-eimp" ,emacs-eimp)))
+       (list emacs-eimp))
       (home-page "https://github.com/walseb/blimp")
       (synopsis "Emacs wrapper around all Imagemagick commands")
       (description "Blimp (Bustling Image Manipulation Package) is a complete
@@ -22103,7 +22103,7 @@ execute its commands and resize images.")
          "14dd6p89pmpf1w3nx4f9mzm4sn2b64nicws436ck7pmp223pwciv"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("wordnet" ,wordnet)))
+     (list wordnet))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -22168,8 +22168,7 @@ files are easily readable and they work nicely with version control systems.")
        #:exclude '("^test/")
        #:tests? #f))
     (propagated-inputs
-     `(("f" ,emacs-f)
-       ("memoize" ,emacs-memoize)))
+     (list emacs-f emacs-memoize))
     (home-page "https://github.com/domtronn/all-the-icons.el")
     (synopsis "Collect icon fonts and propertize them within Emacs")
     (description
@@ -22202,7 +22201,7 @@ scaling of and anti aliasing of the icons.")
                   "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-xterm-color" ,emacs-xterm-color)))
+       (list emacs-xterm-color))
       (home-page "https://github.com/bcbcarl/emacs-wttrin")
       (synopsis "Frontend for weather web service @url{wttr.in}")
       (description "This package provides local weather information from
@@ -22272,9 +22271,7 @@ themes comes with the package.")
          "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("dash" ,emacs-dash)
-       ("powerline" ,emacs-powerline)
-       ("s" ,emacs-s)))
+     (list emacs-dash emacs-powerline emacs-s))
     (home-page "https://github.com/TheBB/spaceline")
     (synopsis "Powerline theme from Spacemacs")
     (description "Spaceline provides Spacemacs' mode-line theme.
@@ -22363,8 +22360,7 @@ correctly.")
                 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)
-       ("emacs-slime" ,emacs-slime)))
+     (list emacs-helm emacs-slime))
     (home-page "https://github.com/emacs-helm/helm-slime")
     (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
     (description "Helm-SLIME defines a few new commands:
@@ -22392,8 +22388,7 @@ correctly.")
                 "06x8wyx1r0s7askkvlbklgz1cszv34qsvv3gryndw350smk1v8kx"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)
-       ("emacs-sly" ,emacs-sly)))
+     (list emacs-helm emacs-sly))
     (home-page "https://github.com/emacs-helm/helm-sly")
     (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
     (description "Helm-SLY defines a few new commands:
@@ -22482,18 +22477,18 @@ Emacs.")
                   "1scfv1502yg7x4bsl253cpr6plml1j4d437vci2ggs764sh3rcqq"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("a" ,emacs-a)
-         ("anaphora" ,emacs-anaphora)
-         ("dash" ,emacs-dash)
-         ("esxml" ,emacs-esxml)
-         ("f" ,emacs-f)
-         ("frame-purpose" ,emacs-frame-purpose)
-         ("ht" ,emacs-ht)
-         ("ov" ,emacs-ov)
-         ("rainbow-identifiers" ,emacs-rainbow-identifiers)
-         ("request" ,emacs-request)
-         ("s" ,emacs-s)
-         ("tracking" ,emacs-tracking)))
+       (list emacs-a
+             emacs-anaphora
+             emacs-dash
+             emacs-esxml
+             emacs-f
+             emacs-frame-purpose
+             emacs-ht
+             emacs-ov
+             emacs-rainbow-identifiers
+             emacs-request
+             emacs-s
+             emacs-tracking))
       (home-page "https://github.com/jgkamat/matrix-client-el")
       (synopsis "Matrix client for Emacs")
       (description "@code{matrix-client} is a simple chat UI to Matrix.org
@@ -22583,7 +22578,7 @@ functions to ensure they are called with the right arguments during testing.")
                 "03c223nczpbdkjmq69panhbsq2a0zj20w329jgj4c0zsj8m1a32a"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-ansi" ,emacs-ansi)))
+     (list emacs-ansi))
     (arguments
      `(#:tests? #t
        #:test-command '("emacs" "--batch" "--quick"
@@ -22612,8 +22607,7 @@ functions to ensure they are called with the right arguments during testing.")
                 (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("wordnet" ,wordnet)
-         ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
+       (list wordnet emacs-adaptive-wrap))
       (synopsis "Major mode for WordNet")
       (description "This Emacs package provides an interface for
 @code{wordnet}.  Features include completion, if the query is not found
@@ -22663,7 +22657,7 @@ not have any relation with variables defined by @code{defvar},
               (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (inputs
-     `(("dash" ,emacs-dash)))
+     (list emacs-dash))
     (synopsis "Purpose-specific frames for Emacs")
     (description "@code{frame-purpose} makes it easy to open purpose-specific
 frames that only show certain buffers, e.g. by buffers’ major mode, their
@@ -22674,23 +22668,20 @@ other frame parameters.")
 
 (define-public emacs-arduino-mode
   (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b")
-        (revision "1")) ;no release yet
+        (revision "1"))                 ;no release yet
     (package
       (name "emacs-arduino-mode")
       (version (git-version "0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/stardiviner/arduino-mode")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
-                (file-name (git-file-name name version))))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/stardiviner/arduino-mode")
+               (commit commit)))
+         (sha256
+          (base32 "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
+         (file-name (git-file-name name version))))
       (build-system emacs-build-system)
-      (inputs
-       `(("spinner" ,emacs-spinner)
-         ("flycheck" ,emacs-flycheck)))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -22701,8 +22692,9 @@ other frame parameters.")
              (lambda _
                (substitute* "ede-arduino.el"
                  (("defmethod") "cl-defmethod")
-                 (("defgeneric") "cl-defgeneric"))
-               #t)))))
+                 (("defgeneric") "cl-defgeneric")))))))
+      (inputs
+       (list emacs-flycheck emacs-spinner))
       (synopsis "Emacs major mode for editing Arduino sketches")
       (description "Emacs major mode for editing Arduino sketches.")
       (home-page "https://github.com/stardiviner/arduino-mode")
@@ -22723,9 +22715,7 @@ other frame parameters.")
               (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (native-inputs
-     `(("emacs-buttercup" ,emacs-buttercup)
-       ("emacs-lispy" ,emacs-lispy)
-       ("emacs-evil" ,emacs-evil)))
+     (list emacs-buttercup emacs-lispy emacs-evil))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -22759,10 +22749,7 @@ advice to be recorded and displayed.")
          (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (native-inputs
-       `(("emacs-buttercup" ,emacs-buttercup)
-         ("emacs-evil" ,emacs-evil)
-         ("emacs-which-key" ,emacs-which-key)
-         ("emacs-use-package" ,emacs-use-package)))
+       (list emacs-buttercup emacs-evil emacs-which-key emacs-use-package))
       (arguments
        `(#:tests? #t
          #:test-command '("buttercup" "-L" "test/test-general.el")))
@@ -22799,7 +22786,7 @@ leader key in vim), and much more.")
                 (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-request" ,emacs-request)))
+       (list emacs-request))
       (synopsis "Simplified and community-driven man pages for Emacs")
       (description "@code{emacs-tldr} allows the user to access tldr pages
 from within emacs.  The @code{tldr} pages are a community effort to simplify
@@ -22842,7 +22829,7 @@ or a window into some windows according to a layout recipe.")
                 (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-window-layout" ,emacs-window-layout)))
+       (list emacs-window-layout))
       (synopsis "Equilibrium Emacs Window Manager")
       (description "E2WM is a window manager for Emacs.  It enables to
 customize the place of pop-up window, how the windows are split, how the
@@ -22889,8 +22876,7 @@ programs can use this table component for the application UI.")
                 (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-names" ,emacs-names)
-         ("emacs-ctable" ,emacs-ctable)))
+       (list emacs-names emacs-ctable))
       (synopsis "Solve and submit LeetCode problems from within Emacs")
       (description "This package provides an Emacs interface to LeetCode
 allowing users to log in and solve problems of their choice using Emacs.")
@@ -22913,8 +22899,7 @@ allowing users to log in and solve problems of their choice using Emacs.")
                 (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-deferred" ,emacs-deferred)
-         ("emacs-ctable" ,emacs-ctable)))
+       (list emacs-deferred emacs-ctable))
       (synopsis "RPC stack for Emacs Lisp")
       (description "This program is an asynchronous RPC stack for Emacs.
 Using this RPC stack, Emacs can communicate with the peer process
@@ -22939,15 +22924,14 @@ asynchronous communications, the RPC response is fairly good.")
                 (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (inputs
-       `(("perl" ,perl)
-         ("perl-rpc-epc-service" ,perl-rpc-epc-service)
-         ("perl-dbi" ,perl-dbi)
-         ;; TODO: Adding support for perl-dbd-mysql and others would
-         ;; dramatically increase the closure size.  Make several packages?
-         ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
+       (list perl
+             perl-rpc-epc-service
+             perl-dbi
+             ;; TODO: Adding support for perl-dbd-mysql and others would
+             ;; dramatically increase the closure size.  Make several packages?
+             perl-dbd-sqlite))
       (propagated-inputs
-       `(("emacs-e2wm" ,emacs-e2wm)
-         ("emacs-epc" ,emacs-epc)))
+       (list emacs-e2wm emacs-epc))
       (arguments
        `(#:include '("\\.el$" "\\.pl$")
          #:phases
@@ -22989,7 +22973,7 @@ DBI, and provides DB-accessing API and the simple management UI.")
                 (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-edbi" ,emacs-edbi)))
+       (list emacs-edbi))
       (synopsis "Open SQLite files in Emacs")
       (description "This package is a convenience wrapper for @command{edbi}
 to open SQLite databases.")
@@ -23037,9 +23021,7 @@ chevron marks.")
         (base32 "1bqlhkxg0faddhvxx909dq46dxdxk4mdyhdpww92dmzgxdpq38sx"))))
     (build-system emacs-build-system)
     (inputs
-     `(("emacs-company" ,emacs-company)
-       ("emacs-json-mode" ,emacs-json-mode)
-       ("emacs-mmm-mode" ,emacs-mmm-mode)))
+     (list emacs-company emacs-json-mode emacs-mmm-mode))
     (home-page "https://github.com/NixOS/nix-mode")
     (synopsis "Emacs major mode for editing Nix expressions")
     (description "@code{nixos-mode} provides an Emacs major mode for editing
@@ -23085,7 +23067,7 @@ music.")
          "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
     (build-system emacs-build-system)
     (inputs
-     `(("emacs-libmpdel" ,emacs-libmpdel)))
+     (list emacs-libmpdel))
     (home-page "https://gitea.petton.fr/mpdel/mpdel")
     (synopsis "Emacs user interface for Music Player Daemon (MPD)")
     (description
@@ -23127,16 +23109,14 @@ stored playlists.")
                  ("(require 'vterm-module nil t)"
                   `(module-load
                     ,(string-append (assoc-ref outputs "out")
-                                    "/lib/vterm-module.so"))))
-               #t))
+                                    "/lib/vterm-module.so"))))))
            (add-after 'build 'configure
              ;; Run cmake.
              (lambda* (#:key outputs #:allow-other-keys)
                ((assoc-ref cmake:%standard-phases 'configure)
                 #:outputs outputs
                 #:out-of-source? #f
-                #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))
-               #t))
+                #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))))
            (add-after 'configure 'make
              ;; Run make.
              (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
@@ -23145,13 +23125,10 @@ stored playlists.")
                ;; Move the file into /lib.
                (install-file
                 "vterm-module.so"
-                (string-append (assoc-ref outputs "out") "/lib"))
-               #t)))
+                (string-append (assoc-ref outputs "out") "/lib")))))
          #:tests? #f))
       (native-inputs
-       `(("cmake" ,cmake-minimal)
-         ("libtool" ,libtool)
-         ("libvterm" ,libvterm)))
+       (list cmake-minimal libtool libvterm))
       (home-page "https://github.com/akermu/emacs-libvterm")
       (synopsis "Emacs libvterm integration")
       (description "This package implements a bridge to @code{libvterm} to
@@ -23175,7 +23152,7 @@ display a terminal in an Emacs buffer.")
          (sha256
           (base32 "0r9n23wg9cfy10h5f9zqr8jpkvw34f9rylri3nxq870awjab7rqi"))))
       (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-vterm" ,emacs-vterm)))
+      (propagated-inputs (list emacs-vterm))
       (home-page "https://github.com/jixiuf/vterm-toggle")
       (synopsis "Toggle between a vterm buffer and other buffers")
       (description
@@ -23201,7 +23178,7 @@ a vterm buffer and back again.")
           (base32
            "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
       (build-system emacs-build-system)
-      (propagated-inputs `(("emacs-s" ,emacs-s)))
+      (propagated-inputs (list emacs-s))
       (home-page "https://github.com/jorenvo/simple-mpc")
       (synopsis "Simple Emacs frontend to mpc")
       (description "This package provides an Emacs major mode which acts as a
@@ -23247,7 +23224,7 @@ indentation and a command to plot the file.")
                   "03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
       (build-system emacs-build-system)
       (native-inputs
-       `(("emacs-faceup" ,emacs-faceup)))
+       (list emacs-faceup))
       (arguments
        `(#:include (cons "^admin\\/" %default-include)))
       (home-page "https://github.com/Lindydancer/cmake-font-lock")
@@ -23293,11 +23270,9 @@ convenient to edit foreign files.")
                 "0jgiawdnzjlrpx2j1y6djwbqncdpmyfd31q1qf1890049y8ppxnb"))))
     (build-system emacs-build-system)
     (native-inputs
-     `(("emacs-el-mock" ,emacs-el-mock)
-       ("ert-runner" ,emacs-ert-runner)))
+     (list emacs-el-mock emacs-ert-runner))
     (propagated-inputs
-     `(("emacs-f" ,emacs-f)
-       ("magit" ,emacs-magit)))
+     (list emacs-f emacs-magit))
     (home-page "https://github.com/canatella/repo-el")
     (synopsis "Emacs interface for the Google Repo tool")
     (description "This package provides integration of the Google Repo tool
@@ -23327,16 +23302,16 @@ buffer and launches Magit from the status buffer for the project at point.")
 (define-public emacs-alect-themes
   (package
     (name "emacs-alect-themes")
-    (version "0.9")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/alezost/alect-themes")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
+    (version "0.10")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/alezost/alect-themes")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "190clnm5x4hpzrq2wp18vxg6614ly3ciyv0y1sm9rfr9w9z5i0ya"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/alezost/alect-themes")
     (synopsis "Low contrast, light, dark and black color theme for Emacs")
@@ -23384,7 +23359,7 @@ file for Google C and C++ style.")
                   "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-paredit" ,emacs-paredit)))
+       (list emacs-paredit))
       (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
       (synopsis "Common Lisp Editing Extensions (for Emacs)")
       (description "Redshank is a collection of code-wrangling Emacs macros
@@ -23431,8 +23406,7 @@ recursively.  The results are cached for speed.")
                 "0mbcr98xq3zim01dk1fbyc1vajnjwx90k62mygv343rhrd05v44m"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-magit" ,emacs-magit)))
+     (list emacs-dash emacs-magit))
     (synopsis "Support for Org links to Magit buffers")
     (description "This package defines several Org link types, which can be
 used to link to certain Magit buffers.  Use the command
@@ -23456,7 +23430,7 @@ Later you can insert it into an Org buffer using the command
         (base32 "0h1cxqqf0hixh25j679r57bq9dv0b20icf268wbnsim5xp88ngf8"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-s" ,emacs-s)))
+     (list emacs-s))
     (home-page "https://github.com/DarwinAwardWinner/amx")
     (synopsis "Alternative M-x interface for Emacs")
     (description "Amx is an alternative interface for M-x in Emacs.  It
@@ -23534,29 +23508,27 @@ constant expressions.")
 (define-public emacs-docker
   (package
     (name "emacs-docker")
-    (version "1.3.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/Silex/docker.el")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"))))
+    (version "1.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Silex/docker.el")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0s57dq04d97dvrbxzicyk5z9f1mn8gf9w4nbgrxd9dnjqz335173"))))
     (inputs
-     `(("emacs-undercover" ,emacs-undercover)))
-    (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-docker-tramp" ,emacs-docker-tramp)
-       ("emacs-magit-popup" ,emacs-magit-popup)
-       ("emacs-s" ,emacs-s)
-       ("emacs-tablist" ,emacs-tablist)
-       ("emacs-json-mode" ,emacs-json-mode)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (delete 'check)))) ;no tests
+     (list emacs-undercover))
+    (propagated-inputs
+     (list emacs-dash
+           emacs-docker-tramp
+           emacs-json-mode
+           emacs-magit-popup
+           emacs-s
+           emacs-tablist
+           emacs-transient))
+    (arguments `(#:tests? #false))      ;no tests
     (build-system emacs-build-system)
     (home-page "https://github.com/Silex/docker.el")
     (synopsis "Manage docker from Emacs")
@@ -23579,7 +23551,7 @@ constant expressions.")
          "09pd8mfa45fy95mdg52fsafj3d1d5l52rskmw6q5np59dyzwch1b"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-s" ,emacs-s)))
+     (list emacs-s))
     (home-page "https://github.com/spotify/dockerfile-mode")
     (synopsis "Major mode for editing Dockerfile")
     (description
@@ -23613,12 +23585,12 @@ the standard @code{Dockerfile} file format.")
                          (install-file f "."))
                        (find-files "clients/" "\\.el$")))))))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)
-       ("emacs-ht" ,emacs-ht)
-       ("emacs-hydra" ,emacs-hydra)
-       ("emacs-markdown-mode" ,emacs-markdown-mode)
-       ("emacs-spinner" ,emacs-spinner)))
+     (list emacs-dash
+           emacs-f
+           emacs-ht
+           emacs-hydra
+           emacs-markdown-mode
+           emacs-spinner))
     (home-page "https://emacs-lsp.github.io/lsp-mode/")
     (synopsis "Emacs client and library for the Language Server Protocol")
     (description
@@ -23643,8 +23615,7 @@ Projectile.")
         (base32 "05ivqa5900139jzjhwc3nggwznhm8564dz4ydcxym2ddd63571k0"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-lsp-mode" ,emacs-lsp-mode)
-       ("emacs-treemacs" ,emacs-treemacs)))
+     (list emacs-lsp-mode emacs-treemacs))
     (home-page "https://github.com/emacs-lsp/lsp-treemacs")
     (synopsis "Integration between LSP mode and treemacs")
     (description
@@ -23667,10 +23638,7 @@ and implementation of treeview controls using treemacs as a tree renderer.")
         (base32 "1zczmcv8562lachkvcwy6njn7zkgny08iznpmrx821wr8mh52wnn"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-bui" ,emacs-bui)
-       ("emacs-lsp-mode" ,emacs-lsp-mode)
-       ("emacs-posframe" ,emacs-posframe)
-       ("emacs-lsp-treemacs" ,emacs-lsp-treemacs)))
+     (list emacs-bui emacs-lsp-mode emacs-posframe emacs-lsp-treemacs))
     (home-page "https://emacs-lsp.github.io/dap-mode")
     (synopsis "Emacs client/library for Debug Adapter Protocol ")
     (description
@@ -23704,32 +23672,32 @@ processes for Emacs")
 (define-public emacs-treemacs
   (package
     (name "emacs-treemacs")
-    (version "2.8")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/Alexander-Miller/treemacs")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"))))
+    (version "2.9.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Alexander-Miller/treemacs")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-ace-window" ,emacs-ace-window)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)
-       ("emacs-ht" ,emacs-ht)
-       ("emacs-hydra" ,emacs-hydra)
-       ("emacs-pfuture" ,emacs-pfuture)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-ace-window
+           emacs-dash
+           emacs-f
+           emacs-ht
+           emacs-hydra
+           emacs-pfuture
+           emacs-s))
     (native-inputs
-     `(("emacs-buttercup" ,emacs-buttercup)
-       ("emacs-el-mock" ,emacs-el-mock)))
+     (list emacs-buttercup emacs-el-mock))
     (inputs
-     `(("python" ,python)))
+     (list python))
     (arguments
      `(#:tests? #t
+       #:test-command '("make" "-C" "../.." "test")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-makefile
@@ -23737,22 +23705,11 @@ processes for Emacs")
              (substitute* "Makefile"
                (("@\\$\\(CASK\\) exec ") "")
                ;; Guix does not need to prepare dependencies before testing.
-               (("test: prepare") "test:"))
-             #t))
+               (("test: prepare") "test:"))))
          (add-after 'fix-makefile 'chdir-elisp
            ;; Elisp directory is not in root of the source.
            (lambda _
              (chdir "src/elisp")))
-         (replace 'check
-           ;; FIXME: Work around ‘treemacs--parse-collapsed-dirs’ and
-           ;; `treemacs-collect-child-nodes' test failures.
-           (lambda _
-             (with-directory-excursion "../.." ;treemacs root
-               (chmod "test/test-treemacs.el" #o644)
-               (emacs-substitute-sexps "test/test-treemacs.el"
-                 ("(describe \"treemacs--parse-collapsed-dirs\"" "")
-                 ("\"Finds only direct childre\"" ""))
-               (invoke "make" "test"))))
          (add-before 'install 'patch-paths
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (with-directory-excursion "../.." ;treemacs root
@@ -23769,18 +23726,16 @@ processes for Emacs")
                   (search-input-file inputs "/bin/python3")))
                (chmod "src/elisp/treemacs-async.el" #o644)
                (substitute* "src/elisp/treemacs-async.el"
-                 (("src/scripts") (string-append "share/" ,name "/scripts"))))
-             #t))
+                 (("src/scripts") (string-append "share/" ,name "/scripts"))))))
          (add-after 'install 'install-data
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (with-directory-excursion "../.." ;treemacs root
                  (copy-recursively "icons/default"
-                  (string-append out "/share/" ,name "/images"))
+                                   (string-append out "/share/" ,name "/images"))
                  (copy-recursively
                   "src/scripts"
-                  (string-append out "/share/" ,name "/scripts"))
-                 #t)))))))
+                  (string-append out "/share/" ,name "/scripts")))))))))
     (home-page "https://github.com/Alexander-Miller/treemacs")
     (synopsis "Emacs tree style file explorer")
     (description
@@ -23797,9 +23752,11 @@ utilities.")
     (name "emacs-treemacs-extra")
     (propagated-inputs
      `(,@(package-propagated-inputs emacs-treemacs)
+       ("emacs-all-the-icons" ,emacs-all-the-icons)
        ("emacs-evil" ,emacs-evil)
        ("emacs-magit" ,emacs-magit)
        ("emacs-projectile" ,emacs-projectile)
+       ("emacs-perspective" ,emacs-perspective)
        ("emacs-persp-mode" ,emacs-persp-mode)))
     (arguments
      (substitute-keyword-arguments
@@ -23854,7 +23811,7 @@ utilities.")
                (install-file "libyaml-core.so"
                              (string-append (assoc-ref outputs "out") "/lib"))
                #t)))))
-      (native-inputs `(("libyaml" ,libyaml)))
+      (native-inputs (list libyaml))
       (home-page "https://github.com/syohex/emacs-libyaml")
       (synopsis "Libyaml bindings for Emacs")
       (description
@@ -23877,14 +23834,14 @@ files in Elisp.")
                 "1h0hqgjpk5mbylma1fkva0vx45achf0k7ab2c5y8a2449niww90h"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dap-mode" ,emacs-dap-mode)
-       ("emacs-lsp-mode" ,emacs-lsp-mode)
-       ("emacs-markdown-mode" ,emacs-markdown-mode)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)
-       ("emacs-ht" ,emacs-ht)
-       ("emacs-request" ,emacs-request)
-       ("emacs-treemacs" ,emacs-treemacs)))
+     (list emacs-dap-mode
+           emacs-lsp-mode
+           emacs-markdown-mode
+           emacs-dash
+           emacs-f
+           emacs-ht
+           emacs-request
+           emacs-treemacs))
     (home-page "https://github.com/emacs-lsp/lsp-java/")
     (synopsis "Java support for lsp-mode")
     (description "Emacs Java IDE using Eclipse JDT Language Server.")
@@ -23905,10 +23862,7 @@ files in Elisp.")
                 "00yirx6qzlb8fv8rd53zaw93nw72z3br40rb16scdqj1v20qsp47"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-lsp-mode" ,emacs-lsp-mode)
-       ("emacs-markdown-mode" ,emacs-markdown-mode)
-       ("emacs-flycheck" ,emacs-flycheck)))
+     (list emacs-dash emacs-lsp-mode emacs-markdown-mode emacs-flycheck))
     (home-page "https://github.com/emacs-lsp/lsp-ui")
     (synopsis "User interface extensions for @code{lsp-mode}")
     (description
@@ -23933,7 +23887,7 @@ and code peeking.")
                   "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-lsp-mode" ,emacs-lsp-mode)))
+       (list emacs-lsp-mode))
       (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
       (synopsis "Lua support in @code{lsp-mode} client for Emacs")
       (description "This package provides a Lua language support in
@@ -23955,9 +23909,7 @@ and code peeking.")
         (base32 "0nb9ypa8hyx7i38rbywh8hn2i5f9l2l567hvdr9767fk279yr97n"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-ivy" ,emacs-ivy)
-       ("emacs-lsp-mode" ,emacs-lsp-mode)))
+     (list emacs-dash emacs-ivy emacs-lsp-mode))
     (home-page "https://github.com/emacs-lsp/lsp-ivy")
     (synopsis "Provide LSP-enhanced completion for symbols")
     (description
@@ -23980,9 +23932,7 @@ workspaces with a LSP-compliant server running.")
                 "1vq3qpqm3ndqyvf5bk8qhqcr60x9ykc0ipk2a43rr3yjm4z1b6s9"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)
-       ("emacs-lsp-mode" ,emacs-lsp-mode)
-       ("emacs-dash" ,emacs-dash)))
+     (list emacs-helm emacs-lsp-mode emacs-dash))
     (home-page "https://github.com/emacs-lsp/helm-lsp")
     (synopsis "Provide LSP-enhanced completion for symbols")
     (description
@@ -24006,8 +23956,7 @@ workspaces with a LSP-compliant server running.")
                 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)
-       ("emacs-notmuch" ,emacs-notmuch)))
+     (list emacs-helm emacs-notmuch))
     (synopsis "Search emails with Emacs Notmuch and Helm")
     (description
      "This package can be used to search emails in Emacs, searching result
@@ -24018,19 +23967,19 @@ real search.")
 (define-public emacs-notmuch-maildir
   (package
     (name "emacs-notmuch-maildir")
-    (version "0.2.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://git.sr.ht/~tarsius/notmuch-maildir")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0pmikf1djkr07067nkgmdcxyn7l7ibswx6qlnai8v1v51f9h1g9q"))))
+    (version "0.2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.sr.ht/~tarsius/notmuch-maildir")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1fqnx6hhg0cqj82yjpl7llg6vvppc3y8q9k6g67mqr7z3712bw0x"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-notmuch" ,emacs-notmuch)))
+     (list emacs-notmuch))
     (home-page "https://git.sr.ht/~tarsius/notmuch-maildir")
     (synopsis "Visualize maildirs as a tree")
     (description
@@ -24054,8 +24003,7 @@ buffer''.")
                 "1x4wnsshf9h10mp51x92vs5rxw5had4gmw6zz4f53czx1ymcv16a"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-s" ,emacs-s)
-       ("emacs-dash" ,emacs-dash)))
+     (list emacs-s emacs-dash))
     (synopsis "Convert keyboard macros to Emacs Lisp")
     (description
      "This package displays keyboard macros or latest interactive commands
@@ -24065,16 +24013,16 @@ as Emacs Lisp.")
 (define-public emacs-transient
   (package
     (name "emacs-transient")
-    (version "0.3.6")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/magit/transient")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "10k9dzs8y6i0rfckclxm5n3maylmh95993n5dvrs8rbmlcpmihvy"))))
+    (version "0.3.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/magit/transient")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0c7wbd0j0b802bzdpdkrx2q7wm7b9s56rk554dnadkpywhmdiqwn"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #f                      ;no test suite
@@ -24090,9 +24038,9 @@ as Emacs Lisp.")
            (lambda _
              (chdir "lisp"))))))
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (propagated-inputs
-     `(("dash" ,emacs-dash)))
+     (list emacs-dash))
     (home-page "https://magit.vc/manual/transient")
     (synopsis "Transient commands in Emacs")
     (description "Taking inspiration from prefix keys and prefix arguments
@@ -24105,7 +24053,7 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
 (define-public emacs-forge
   (package
      (name "emacs-forge")
-     (version "0.2.1")
+     (version "0.3.0")
      (source
       (origin
         (method git-fetch)
@@ -24114,20 +24062,8 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
               (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32
-          "0j28vc0q1h36pk0y2nidnlsc2y7n0vpfrd8civiv1zp8z0jwfyc9"))))
+         (base32 "15zm5azgl8gyd91i40a00ih4s2iwg1r8007n2gcfnmi6m4b7s0ak"))))
      (build-system emacs-build-system)
-     (native-inputs
-      `(("texinfo" ,texinfo)))
-     (propagated-inputs
-      `(("emacs-closql" ,emacs-closql)
-        ("emacs-dash" ,emacs-dash)
-        ("emacs-emacsql-sqlite" ,emacs-emacsql)
-        ("emacs-ghub" ,emacs-ghub)
-        ("emacs-let-alist" ,emacs-let-alist)
-        ("emacs-magit" ,emacs-magit)
-        ("emacs-markdown-mode" ,emacs-markdown-mode)
-        ("emacs-transient" ,emacs-transient)))
      (arguments
       `(#:tests? #f                     ;no tests
         #:phases
@@ -24141,6 +24077,18 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
           (add-after 'build-info-manual 'chdir-lisp
             (lambda _
               (chdir "lisp"))))))
+     (native-inputs
+      (list texinfo))
+     (propagated-inputs
+      (list emacs-closql
+            emacs-dash
+            emacs-emacsql
+            emacs-ghub
+            emacs-let-alist
+            emacs-magit
+            emacs-markdown-mode
+            emacs-transient
+            emacs-yaml))
      (home-page "https://github.com/magit/forge/")
      (synopsis "Access Git forges from Magit")
      (description "Work with Git forges, such as Github and Gitlab, from the
@@ -24162,8 +24110,7 @@ comfort of Magit and the rest of Emacs.")
                  (base32
                   "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
       (propagated-inputs
-       `(("emacs-hydra" ,emacs-hydra)
-         ("emacs-transient" ,emacs-transient)))
+       (list emacs-hydra emacs-transient))
       (build-system emacs-build-system)
       (home-page "https://github.com/jojojames/matcha/")
       (synopsis "Collection of hydras with a generic interface to launch them")
@@ -24265,8 +24212,7 @@ unescaping of quotes.")
           (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-flycheck" ,emacs-flycheck)
-         ("emacs-let-alist" ,emacs-let-alist)))
+       (list emacs-flycheck emacs-let-alist))
       (home-page "https://github.com/bsermons/flycheck-elm")
       (synopsis "Flycheck support for the Elm language")
       (description "Flycheck Elm adds Flycheck support for Elm language.")
@@ -24290,10 +24236,7 @@ unescaping of quotes.")
            "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-flycheck" ,emacs-flycheck)
-         ("emacs-haskell-mode" ,emacs-haskell-mode)
-         ("emacs-let-alist" ,emacs-let-alist)))
+       (list emacs-dash emacs-flycheck emacs-haskell-mode emacs-let-alist))
       (arguments
        `(#:include '("\\.el$" "\\.hs$")))
       (home-page "https://github.com/flycheck/flycheck-haskell")
@@ -24320,14 +24263,10 @@ buffers.")
            "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-s" ,emacs-s)
-         ("emacs-js2-mode" ,emacs-js2-mode)
-         ("emacs-yasnippet" ,emacs-yasnippet)
-         ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
+       (list emacs-dash emacs-s emacs-js2-mode emacs-yasnippet
+             emacs-multiple-cursors))
       (native-inputs
-       `(("emacs-buttercup" ,emacs-buttercup)
-         ("emacs-espuds" ,emacs-espuds)))
+       (list emacs-buttercup emacs-espuds))
       (home-page "https://github.com/magnars/js2-refactor.el")
       (synopsis "JavaScript refactoring in Emacs")
       (description "This package provides various refactoring functions for
@@ -24423,8 +24362,7 @@ parent directory using @code{Eshell}.")
           (base32 "0fn8c4hqblfjvcpg68kj2dmdjqsdnxddqbzgvakl43zckjg8pi01"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)
-         ("emacs-ivy" ,emacs-ivy)))
+       (list emacs-helm emacs-ivy))
       (home-page "https://github.com/jwiegley/springboard")
       (synopsis "Change the Emacs default directory quickly")
       (description
@@ -24451,10 +24389,9 @@ done using Helm, Ido or Ivy.")
            "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)))
+       (list emacs-dash))
       (native-inputs
-       `(("emacs-ert-runner" ,emacs-ert-runner)
-         ("emacs-undercover" ,emacs-undercover)))
+       (list emacs-ert-runner emacs-undercover))
       (arguments
        `(#:tests? #t
          #:test-command '("ert-runner")))
@@ -24465,25 +24402,24 @@ Lisp functions that call themselves in tail position.")
       (license license:gpl3+))))
 
 (define-public emacs-equake
-  (let ((commit "7eddc025ee61b83029363e22219af228b8c20681")
-        (revision "2"))
+  ;; Upstream provides no tagged releases, but the commit below matches an
+  ;; exact release.
+  (let ((commit "4d6ef75a4d91ded22caad220909518ccb67b7b87"))
     (package
       (name "emacs-equake")
-      (version (git-version "0.85" revision commit))
+      (version "0.985")
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://gitlab.com/emacsomancer/equake/")
+               (url "https://gitlab.com/emacsomancer/equake")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"))))
+          (base32 "11xfr71y78idcn461p4pz7b0k01nhz15cyl97bjqq6ii5xhbhvdx"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-tco-el" ,emacs-tco-el)))
+       (list emacs-dash))
       (home-page "https://gitlab.com/emacsomancer/equake/")
       (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
       (description "This package provides a Quake-style drop-down console
@@ -24507,7 +24443,7 @@ compatible with Emacs' shell modes.")
           (base32 "197xrwph1llrzjgkhlvagiwdgfp68pb45w5afg89ndahpqc2725s"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-hydra" ,emacs-hydra)))
+       (list emacs-hydra))
       (arguments
        `(#:tests? #t
          #:test-command '("emacs" "-Q" "-batch" "-L" "."
@@ -24541,9 +24477,7 @@ output.")
            "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-vdiff" ,emacs-vdiff)
-         ("emacs-magit" ,emacs-magit)
-         ("emacs-transient" ,emacs-transient)))
+       (list emacs-vdiff emacs-magit emacs-transient))
       (home-page "https://github.com/justbur/emacs-vdiff-magit/")
       (synopsis "Frontend for diffing based on vimdiff")
       (description "This package permits comparisons of two or three buffers
@@ -24569,7 +24503,7 @@ based on diff output.")
            "0zhyhz4lhx0d8wwh1xxxf7ck4s621fk9757ql2ypxbr4iqh7sjlp"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-all-the-icons" ,emacs-all-the-icons)))
+       (list emacs-all-the-icons))
       (home-page "https://github.com/jtbm37/all-the-icons-dired/")
       (synopsis "Show icons for each file in @code{dired-mode}")
       (description "This package allows icons from @file{all-the-icons.el} to
@@ -24595,7 +24529,7 @@ be used in @code{dired-mode}.")
            "031cb8fvv5n30djr9lpl6vz3rl15zykfvjlgkjc8l33a3l5mw8j0"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-exwm" ,emacs-exwm)))
+       (list emacs-exwm))
       (home-page "https://github.com/agzam/exwm-edit/")
       (synopsis "Open temp buffers for editing text from EXWM buffers")
       (description "This package facilitates editing text from EXWM buffers by
@@ -24641,12 +24575,9 @@ invoked.")
            "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-s" ,emacs-s)
-         ("emacs-f" ,emacs-f)))
+       (list emacs-dash emacs-s emacs-f))
       (native-inputs
-       `(("emacs-el-mock" ,emacs-el-mock)
-         ("emacs-ert-async" ,emacs-ert-async)))
+       (list emacs-el-mock emacs-ert-async))
       (home-page "https://github.com/rejeep/prodigy.el")
       (synopsis "Manage external services from within Emacs")
       (description "This package provides a GUI for defining and monitoring services.")
@@ -24686,9 +24617,7 @@ url-encoded parameters, as well as web sockets.")
          "0a0qskhy6jil583hq3mgbzdsi3m1schzyzrd46yfxdsvqiczg170"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-markdown-mode" ,emacs-markdown-mode)
-       ("emacs-websocket" ,emacs-websocket)
-       ("emacs-web-server" ,emacs-web-server)))
+     (list emacs-markdown-mode emacs-websocket emacs-web-server))
     (arguments '(#:include '("\\.el$" "\\.html$")))
     (home-page "https://github.com/ancane/markdown-preview-mode")
     (synopsis "Preview Markdown files")
@@ -24782,7 +24711,7 @@ definition-jumping and type-checking on demand.")
          "08b4hdgq4hc1yfd9pvyir2j3cqqdqa3j5svgaba97x5fzhsz7y8i"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-js2-mode" ,emacs-js2-mode)))
+     (list emacs-js2-mode))
     (arguments
      `(#:tests? #t
        #:test-command '("make" "test")))
@@ -24811,8 +24740,7 @@ support JSX syntax.")
            "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-s" ,emacs-s)))
+       (list emacs-dash emacs-s))
       (home-page "https://github.com/gregsexton/origami.el")
       (synopsis "Flexible text-folding")
       (description "This package provides a minor mode for collapsing and
@@ -24846,7 +24774,7 @@ previewed by scrolling up and down within a @code{dired} buffer.")
 (define-public emacs-counsel-etags
   (package
     (name "emacs-counsel-etags")
-    (version "1.9.17")
+    (version "1.10.0")
     (source
      (origin
        (method git-fetch)
@@ -24855,10 +24783,10 @@ previewed by scrolling up and down within a @code{dired} buffer.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "07445bbr68q1pnwpj5bwqmml9ky1gq67g24zswv8fylnzjkhy9wc"))))
+        (base32 "1zmx7vfi02c8k9wnbsmka5yx3ci8fv9wl8r0cc28jn40vgrivn8c"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-counsel" ,emacs-counsel)))
+     (list emacs-counsel))
     (arguments
      `(#:tests? #f                      ;require internet access
        #:test-command '("make test")))
@@ -24883,8 +24811,7 @@ and searching through @code{Ctags} files.")
                  (base32
                   "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
       (propagated-inputs
-       `(("emacs-f" ,emacs-f)
-         ("emacs-ivy" ,emacs-ivy)))
+       (list emacs-f emacs-ivy))
       (build-system emacs-build-system)
       (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
       (synopsis "Ivy integration with clipmenu")
@@ -24907,8 +24834,7 @@ and searching through @code{Ctags} files.")
                  (base32 "0cg4y7hy7xbq4vrbdicfzgvyaf3cjbx2zkqd4yl0y2garz71j99l"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-org" ,emacs-org)
-         ("emacs-async" ,emacs-async)))
+       (list emacs-org emacs-async))
       (home-page "https://github.com/abo-abo/org-download")
       (synopsis "Facilitate moving images")
       (description "This package provides utilities for managing image files
@@ -24933,9 +24859,7 @@ copied into @code{org-mode} buffers.")
           (base32 "1a8ygrcag8i9hdpy2vsn0sh8lwhl9b56rv91j3rddy1jv5qx1ipb"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)
-         ("emacs-org" ,emacs-org)
-         ("emacs-s" ,emacs-s)))
+       (list emacs-dash emacs-org emacs-s))
       (home-page "https://github.com/chrisbarrett/org-drill-table")
       (synopsis "Generate Org drill cards using Org mode tables")
       (description
@@ -24962,10 +24886,9 @@ current tree.")
            "0n6d3mm43gj16v8kjjradcfik93wb89dsqnfcbskb28bvcamafid"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-async" ,emacs-async)))
+       (list emacs-async))
       (native-inputs
-       `(("emacs-undercover" ,emacs-undercover)
-         ("emacs-ert-runner" ,emacs-ert-runner)))
+       (list emacs-undercover emacs-ert-runner))
       (arguments
        `(#:tests? #t
          #:test-command '("ert-runner")
@@ -25009,8 +24932,7 @@ current tree.")
            "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)
-         ("emacs-dash-docs" ,emacs-dash-docs)))
+       (list emacs-helm emacs-dash-docs))
       (home-page "https://github.com/areina/helm-dash")
       (synopsis "Offline documentation browser for APIs using Dash docsets")
       (description "This package uses Helm to install and navigate through
@@ -25034,14 +24956,34 @@ Dash docsets.")
           (base32 "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-counsel" ,emacs-counsel)
-         ("emacs-dash-docs" ,emacs-dash-docs)))
+       (list emacs-counsel emacs-dash-docs))
       (home-page "https://github.com/dash-docs-el/counsel-dash")
       (synopsis "Offline documentation browser for APIs using Dash docsets")
       (description "This package uses @code{ivy-mode} to install and navigate
 through Dash docsets.")
       (license license:expat))))
 
+(define-public emacs-devdocs
+  (package
+    (name "emacs-devdocs")
+    (version "0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://elpa.gnu.org/packages/"
+             "devdocs-" version ".tar"))
+       (sha256
+        (base32 "1npc7yra7pvf86ahmz1h7hnjxrz15ar1vjcalg4ilizypycpgrwj"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/astoff/devdocs.el")
+    (synopsis "Emacs viewer for DevDocs")
+    (description
+     "This package provides a documentation viewer similar to Emacs's
+built-in Info browser, but geared towards documentation obtained from
+@url{https://devdocs.io}.")
+    (license license:gpl3+)))
+
 (define-public emacs-cascading-dir-locals
   (let ((release "0.1")
         (revision "0")
@@ -25102,11 +25044,9 @@ all of your projects, then override or add variables on a per-project basis.")
                  ("calibredb-fetch-metadata-program"
                   (string-append calibre "/bin/fetch-ebook-metadata")))))))))
     (inputs
-     `(("calibre" ,calibre)))
+     (list calibre))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-s" ,emacs-s)
-       ("emacs-transient" ,emacs-transient)))
+     (list emacs-dash emacs-s emacs-transient))
     (home-page "https://github.com/chenyanming/calibredb.el")
     (synopsis "Yet another calibre client for Emacs")
     (description "This package integrates calibre into Emacs.
@@ -25203,7 +25143,7 @@ well as an option for visually flashing evaluated s-expressions.")
         (base32 "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-counsel" ,emacs-counsel)))
+     (list emacs-counsel))
     (home-page "https://github.com/masasam/emacs-counsel-tramp")
     (synopsis "Ivy interface for TRAMP")
     (description
@@ -25213,14 +25153,14 @@ well as an option for visually flashing evaluated s-expressions.")
 (define-public emacs-tramp
   (package
     (name "emacs-tramp")
-    (version "2.5.1.2")
+    (version "2.5.1.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "tramp-" version ".tar"))
        (sha256
-        (base32 "0p8m8prxrvrr455ahb626c1dry04m80y017h16ngr4i5ais0r85g"))))
+        (base32 "1g3xf97q5h6sr67w9bphcbbqx9jz2lbl8lij5rz1r0zbsnlcv7n8"))))
     (build-system emacs-build-system)
     (arguments
      `(#:emacs ,emacs                   ;need D-Bus
@@ -25237,7 +25177,7 @@ well as an option for visually flashing evaluated s-expressions.")
                  ("tramp-encoding-shell" (string-append sh "/bin/sh"))))
              #t)))))
     (inputs
-     `(("bash" ,bash)))
+     (list bash))
     (home-page "https://savannah.gnu.org/projects/tramp")
     (synopsis "Remote file editing package for Emacs")
     (description
@@ -25273,7 +25213,7 @@ with passwords for paths matching regexps.")
 (define-public emacs-eacl
   (package
     (name "emacs-eacl")
-    (version "2.1.0")
+    (version "2.2.0")
     (source
      (origin
        (method git-fetch)
@@ -25282,11 +25222,10 @@ with passwords for paths matching regexps.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0n1vlzvq5mv7z1yffjjqm9ixd3r0cljr60kg55l9pj9kp72a4iv8"))))
+        (base32 "1d2krw9x1mw6jn1q07nbq2qi92fms85q3i9wa2q5drs3368l55vr"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-ivy" ,emacs-ivy)))
+     (list emacs-ivy))
     (home-page "https://github.com/redguardtoo/eacl")
     (synopsis "Auto-complete lines by using @code{grep} on a project")
     (description "This package provides auto-completion commands for single
@@ -25389,7 +25328,7 @@ C-f} to advance by #xa4 characters.
            "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
       (build-system emacs-build-system)
       (inputs
-       `(("helm" ,emacs-helm)))
+       (list emacs-helm))
       (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
       (description
        "This package provides an Emacs Helm interface for search suggestions
@@ -25506,9 +25445,7 @@ context, carry out the appropriate action.")
                 (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-evil" ,emacs-evil)
-         ("emacs-paredit" ,emacs-paredit)
-         ("emacs-smartparens" ,emacs-smartparens)))
+       (list emacs-evil emacs-paredit emacs-smartparens))
       (home-page "https://github.com/luxbock/evil-cleverparens")
       (synopsis "Emacs modal editing optimized for editing Lisp")
       (description "@code{evil-cleverparens} remaps Evil keybindings to allow
@@ -25518,6 +25455,117 @@ provided.  Those alternative commands are and bound by default to their
 corresponding Evil keys.")
       (license license:expat))))
 
+(define-public emacs-ntlm
+  (package
+    (name "emacs-ntlm")
+    (version "2.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/ntlm-" version ".el"))
+       (sha256
+        (base32 "01d0bcmh8a36qf871w6bc05kjk9bmnh843m9869xw06zyvqwg9mv"))))
+    (build-system emacs-build-system)
+    (home-page "https://elpa.gnu.org/packages/ntlm.html")
+    (synopsis "NTLM (NT LanManager) authentication support")
+    (description
+     "This library is a direct translation of the Samba release 2.2.0
+implementation of Windows NT and LanManager compatible password encryption.")
+    (license license:gpl3+)))
+
+(define-public emacs-nadvice
+  (package
+    (name "emacs-nadvice")
+    (version "0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/"
+                           "nadvice-" version ".el"))
+       (sha256
+        (base32 "0gi3csnxbs8h7iy0scsl35sic3gv90swa89hhdjwb7qvpirfdcgw"))))
+    (build-system emacs-build-system)
+    (home-page "https://elpa.gnu.org/packages/nadvice.html")
+    (synopsis "Forward compatibility for Emacs-24.4's nadvice")
+    (description
+     "This package tries to re-implement some of nadvice.el's functionality on
+top of the old defadvice system, to help users of defadvice move to the new
+advice system without dropping support for Emacs<24.4.")
+    (license license:gpl3+)))
+
+(define-public emacs-url-http-ntlm
+  (package
+    (name "emacs-url-http-ntlm")
+    (version "2.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/"
+                           "url-http-ntlm-" version ".el"))
+       (sha256
+        (base32 "1cakq2ykraci7d1gl8rnpv4f2f5ffyaidhqb1282g7i72adwmb98"))))
+    (build-system emacs-build-system)
+    (propagated-inputs (list emacs-ntlm))
+    (home-page "https://elpa.gnu.org/packages/url-http-ntlm.html")
+    (synopsis "NTLM authentication for the url library")
+    (description "This package provides a NTLM handler for the URL package.")
+    (license license:gpl3+)))
+
+(define-public emacs-soap-client
+  (package
+    (name "emacs-soap-client")
+    (version "3.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/"
+                           "soap-client-" version ".tar"))
+       (sha256
+        (base32 "1s0bwnip22nj6kgjadd4zlj9j729hiyyjb66sr51i2mddnf9i95s"))))
+    (build-system emacs-build-system)
+    (home-page "httpa://elpa.gnu.org/packages/soap-client.html")
+    (synopsis "Access SOAP web services")
+    (description
+     "This package provides a SOAP client to access web services.")
+    (license license:gpl3+)))
+
+(define-public emacs-fsm
+  (package
+    (name "emacs-fsm")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/fsm-" version ".el"))
+       (sha256
+        (base32 "1jyxyqdbfl8nv7c50q0sg3w5p7whp1sqgi7w921k5hfar4d11qqp"))))
+    (build-system emacs-build-system)
+    (home-page "https://elpa.gnu.org/packages/fsm.html")
+    (synopsis "Finite State Machine library")
+    (description
+     "This package provides Finite State Machine library to make asynchronous
+programming in Emacs Lisp easy and fun.")
+    (license license:gpl3+)))
+
+(define-public emacs-excorporate
+  (package
+    (name "emacs-excorporate")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/"
+                           "excorporate-" version ".tar"))
+       (sha256
+        (base32 "1g0wc2kp15ra323b4rxvdh58q9c4h7m20grw6a0cs53m7l9xi62f"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     (list emacs-fsm emacs-nadvice emacs-soap-client emacs-url-http-ntlm))
+    (home-page "https://elpa.gnu.org/packages/excorporate.html")
+    (synopsis "Exchange integration")
+    (description "This package provides Exchange integration for Emacs.")
+    (license license:gpl3+)))
+
 (define-public emacs-evil-traces
   (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
         (revision "2"))
@@ -25535,7 +25583,7 @@ corresponding Evil keys.")
                   "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-evil" ,emacs-evil)))
+       (list emacs-evil))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -25569,7 +25617,7 @@ commands in @code{evil-mode}.")
         (base32
          "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
     (propagated-inputs
-     `(("emacs-evil" ,emacs-evil)))
+     (list emacs-evil))
     (build-system emacs-build-system)
     (home-page "https://github.com/keith/evil-tmux-navigator")
     (synopsis
@@ -25637,7 +25685,7 @@ text-property translator.")
         (base32
          "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
     (build-system emacs-build-system)
-    (propagated-inputs `(("emacs-org" ,emacs-org)))
+    (propagated-inputs (list emacs-org))
     (home-page "https://github.com/weirdNox/org-noter")
     (synopsis "Synchronized, Org-mode, document annotator")
     (description
@@ -25686,7 +25734,7 @@ acting like notes that are made @emph{in} the document.")
           (base32 "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"))))
       (build-system emacs-build-system)
       (inputs
-       `(("zsh" ,zsh)))
+       (list zsh))
       (home-page "https://github.com/manateelazycat/multi-term")
       (synopsis "Manage multiple terminal buffers in Emacs")
       (description
@@ -25718,7 +25766,7 @@ it forcibly
         (base32 "0fzqm5gpadqzsl71r1bq72ki8dw8125v4nmhdd3b4rz9jy1rqm2g"))))
     (build-system emacs-build-system)
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -25752,8 +25800,7 @@ connections using TLS encryption.")
          "1r5s4mvwlxsb9ylr6dkfxpm1l0pbqkmn5gwjdcfk762cnxlam8cm"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-flycheck" ,emacs-flycheck)
-       ("emacs-all-the-icons" ,emacs-all-the-icons)))
+     (list emacs-flycheck emacs-all-the-icons))
     (home-page
      "https://gitlab.petton.fr/nico/zerodark-theme")
     (synopsis
@@ -25900,10 +25947,9 @@ format.")
                 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
     (build-system emacs-build-system)
     (inputs
-     `(("pandoc" ,pandoc)))
+     (list pandoc))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-ht" ,emacs-ht)))
+     (list emacs-dash emacs-ht))
     (home-page "https://github.com/kawabata/ox-pandoc")
     (synopsis "Org exporter for Pandoc")
     (description "@code{ox-pandoc} is an exporter for converting Org-mode
@@ -25969,14 +26015,14 @@ federated microblogging social network.")
 (define-public emacs-ebdb
   (package
     (name "emacs-ebdb")
-    (version "0.8.4")
+    (version "0.8.8")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "ebdb-" version ".tar"))
        (sha256
-        (base32 "0n811af83fqpzq9513gf240gnz7qkwrjw07qs4sra4069q0pwnjr"))))
+        (base32 "035xakji5vypdpc06qp9yhg8ny7qn80h8kax6cl80p0lljplzrnn"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/girzel/ebdb")
     (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
@@ -26001,11 +26047,7 @@ Lisp's (relatively new) EIEIO object oriented libraries.")
                 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-s" ,emacs-s)
-       ("emacs-popup" ,emacs-popup)
-       ("emacs-list-utils" ,emacs-list-utils)
-       ("emacs-iedit" ,emacs-iedit)))
+     (list emacs-dash emacs-s emacs-popup emacs-list-utils emacs-iedit))
     (home-page "https://github.com/Wilfred/emacs-refactor/")
     (synopsis "Language-specific refactoring in Emacs")
     (description "Emacs Refactor (EMR) is a framework for providing
@@ -26031,9 +26073,7 @@ a variety of languages, including elisp itself.")
     (arguments
      `(#:exclude '("flyspell-correct-avy-menu\\.el")))
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)
-       ("emacs-ivy" ,emacs-ivy)
-       ("emacs-popup" ,emacs-popup)))
+     (list emacs-helm emacs-ivy emacs-popup))
     (home-page "https://github.com/d12frosted/flyspell-correct")
     (synopsis "Correcting words with flyspell via custom interfaces")
     (description
@@ -26061,8 +26101,7 @@ Helm and Ivy.")
            "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emms" ,emacs-emms)
-         ("emacs-org" ,emacs-org)))
+       (list emacs-emms emacs-org))
       (home-page "https://gitlab.com/jagrg/org-emms")
       (synopsis "Play multimedia files from org-mode")
       (description
@@ -26087,10 +26126,7 @@ contains a track position, playback will start at the specified position.")
        "1hsfkkm3ykdf7n8a6k0mpzilhjpy7vllwrl2s4rfb9mhnaq5yb8y"))))
    (build-system emacs-build-system)
    (propagated-inputs
-    `(("emacs-request" ,emacs-request)
-      ("emacs-s" ,emacs-s)
-      ("emacs-dash" ,emacs-dash)
-      ("emacs-org" ,emacs-org)))
+    (list emacs-request emacs-s emacs-dash emacs-org))
    (home-page "https://github.com/ahungry/org-jira")
    (synopsis "Syncing between Jira and Org-mode")
    (description
@@ -26186,7 +26222,7 @@ keybindings for skipping from host section to host section.")
                 "1i3zmsn0w2k7p2hlzssibckm32kf05l56mkhg96x4sf06g3pwq1d"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("dash" ,emacs-dash)))
+     (list emacs-dash))
     (home-page "https://github.com/magit/ssh-agency")
     (synopsis "Manage @code{ssh-agent} from Emacs")
     (description
@@ -26293,7 +26329,7 @@ contrast and few colors.")
                  (base32 "128hdmf0jkzr12fv2r6z349qiwba6q97hsb6b1n2qlhi0v5v3mfh"))))
       (build-system emacs-build-system)
       (native-inputs
-       `(("emacs-ert-runner" ,emacs-ert-runner)))
+       (list emacs-ert-runner))
       (arguments
        `(#:tests? #t
          #:test-command '("ert-runner")
@@ -26320,7 +26356,7 @@ Emacs that integrate with major modes like Org-mode.")
 (define-public emacs-modus-themes
   (package
     (name "emacs-modus-themes")
-    (version "1.5.0")
+    (version "1.7.0")
     (source
      (origin
        (method git-fetch)
@@ -26329,7 +26365,7 @@ Emacs that integrate with major modes like Org-mode.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1yz5yr3acc601xcms7vr2jbj4bq6dqz8n5ymyfyxldid0n5ykzy4"))))
+        (base32 "06i2jsy7vigydci4261nfnh668rl5zrcss5icwxlqii928dkmy8y"))))
     (build-system emacs-build-system)
     (home-page "https://protesilaos.com/modus-themes/")
     (synopsis "Accessible themes (WCAG AAA)")
@@ -26345,14 +26381,8 @@ meet the needs of the numerous interfaces that are possible in the Emacs
 computing environment.")
     (license license:gpl3+)))
 
-(define-public emacs-modus-operandi-theme
-  (deprecated-package "emacs-modus-operandi-theme" emacs-modus-themes))
-
-(define-public emacs-modus-vivendi-theme
-  (deprecated-package "emacs-modus-vivendi-theme" emacs-modus-themes))
-
 (define-public emacs-punpun-theme
-  (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65")
+  (let ((commit "7026684cd568cb691af3ced5de14c375fe6f5a1a")
         (revision "0"))
     (package
       (name "emacs-punpun-theme")
@@ -26361,14 +26391,14 @@ computing environment.")
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/wasamasa/punpun-theme")
+               (url "https://depp.brause.cc/punpun-theme")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"))))
+           "1nwvlp93l5lj259mchd1a2glq3jxd0h1vazsbjqfi07hsg86xjp0"))))
       (build-system emacs-build-system)
-      (home-page "https://github.com/wasamasa/punpun-theme")
+      (home-page "https://depp.brause.cc/punpun-theme")
       (synopsis "Bleak Emacs theme")
       (description
        "A bleak theme.  Uses shades of gray and the occasional splash of
@@ -26415,7 +26445,7 @@ and it should work well with 256 color terminals.")
         (base32 "0f2a360h8bizvqk6bmgxm59g8n7id5rzwlbv6d383h15w298mcga"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-pkg-info" ,emacs-pkg-info)))
+     (list emacs-pkg-info))
     (home-page
      "https://github.com/elixir-editors/emacs-elixir")
     (synopsis "Major mode for editing Elixir files")
@@ -26500,19 +26530,18 @@ available.")
 (define-public emacs-eshell-did-you-mean
   (package
     (name "emacs-eshell-did-you-mean")
-    (version "0.1")
-    (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
+    (version "0.2")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url home-page)
+             (url "https://github.com/xuchunyang/eshell-did-you-mean")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"))))
+        (base32 "158g8b4crm0gf5pilfxf89hdsb22gr1wbrjyx9gf45bmcll3i9vf"))))
     (build-system emacs-build-system)
+    (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
     (synopsis "Display suggestions on 'command not found' in Eshell")
     (description "This library adds a list of 'Did you mean...' suggestions
 when the command was not found in Eshell.  The suggestions are found after the
@@ -26592,12 +26621,11 @@ such as:
              (lambda _
                (substitute* "flycheck-google-cpplint.el"
                  (("\"cpplint.py\"")
-                  (string-append "\"" (which "cpplint") "\"")))
-               #t)))))
+                  (string-append "\"" (which "cpplint") "\""))))))))
       (inputs
-       `(("cpplint" ,cpplint)))
+       (list cpplint))
       (propagated-inputs
-       `(("flycheck-mode" ,emacs-flycheck)))
+       (list emacs-flycheck))
       (synopsis "Google C++ checker for Flycheck")
       (description "This package provides a interface for @code{cpplint} over
 Flycheck plugin.  @code{cpplint} is a static code checker for C++, following
@@ -26621,8 +26649,7 @@ Google guidelines.")
         (base32 "1j2vfngq3512naaayv9kx0d1q2zg1xgs69l8afc7swg72h0l0imw"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("helm" ,emacs-helm)
-       ("fish-completion" ,emacs-fish-completion)))
+     (list emacs-helm emacs-fish-completion))
     (synopsis "Helm interface for Emacs fish-completion")
     (description "Helm Fish Completion is a Helm interface for Emacs
 fish-completion.  It can be used in both Eshell and M-x shell.")
@@ -26644,7 +26671,7 @@ fish-completion.  It can be used in both Eshell and M-x shell.")
         (base32 "0n8qa549c5syvgqw1h2zrakjjbygddpxzaifaq5irscgdcajrads"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("helm" ,emacs-helm)))
+     (list emacs-helm))
     (synopsis "Helm action to switch directory in Emacs REPLs")
     (description "Helm \"Switch-to-REPL\" offers the
 @code{helm-switch-to-repl} action, a generalized and extensible version of
@@ -26653,55 +26680,55 @@ other @code{helm-type-file} sources such as @code{helm-locate}.")
     (license license:gpl3+)))
 
 (define-public emacs-telega-server
-  (package
-    (name "emacs-telega-server")
-    (version "0.7.030")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/zevlg/telega.el")
-             (commit (string-append "v" version))))
-       (sha256
-        (base32 "1g29v5fgkqx43wsvh1npx0g3hj00n37lxgvxjvy85fs4h9226gl9"))
-       (file-name (git-file-name "emacs-telega" version))
-       (patches
-        (search-patches "emacs-telega-path-placeholder.patch"
-                        "emacs-telega-test-env.patch"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:make-flags
-       (list (string-append "CC=" ,(cc-for-target))
-             (string-append "INSTALL_PREFIX="
-                            (assoc-ref %outputs "out") "/bin"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'enter-subdirectory
-           (lambda _ (chdir "server") #t))
-         (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (substitute* "run_tests.py"
-                 (("^(TELEGA_SERVER = ).*$" _all prefix)
-                  (string-append prefix
-                                 "\"" out "/bin/telega-server\"\n"))))))
-         (delete 'check)
-         (add-after 'install 'check
-           (assoc-ref %standard-phases 'check))
-         (add-before 'install-license-files 'leave-subdirectory
-           (lambda _ (chdir "..") #t)))
-       #:test-target "test"))
-    (inputs
-     `(("tdlib" ,tdlib)
-       ("libappindicator" ,libappindicator)))
-    (native-inputs
-     `(("python" ,python)
-       ("pkg-config" ,pkg-config)))
-    (home-page "https://zevlg.github.io/telega.el/")
-    (synopsis "Server process of Telega")
-    (description "Telega-server is helper program to interact with Telegram
+  (let ((commit "b4a5e206bd259f3d7f7633a725b2990704d6a1e8")
+        (revision "1"))
+    (package
+      (name "emacs-telega-server")
+      (version (git-version  "0.7.15" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/zevlg/telega.el")
+               (commit commit)))
+         (sha256
+          (base32 "0gr4nmpk175hxmj357bpzaqywbjc6dmmvfxnyzkh884vyzbwdxlc"))
+         (file-name (git-file-name "emacs-telega" version))
+         (patches
+          (search-patches "emacs-telega-path-placeholder.patch"
+                          "emacs-telega-test-env.patch"))))
+      (build-system gnu-build-system)
+      (arguments
+       (list
+        #:make-flags
+        #~(list (string-append "CC=" #$(cc-for-target))
+                (string-append "INSTALL_PREFIX=" #$output "/bin"))
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-before 'configure 'enter-subdirectory
+              (lambda _ (chdir "server")))
+            (replace 'configure
+              (lambda* (#:key outputs #:allow-other-keys)
+                (let ((out (assoc-ref outputs "out")))
+                  (substitute* "run_tests.py"
+                    (("^(TELEGA_SERVER = ).*$" _all prefix)
+                     (string-append prefix
+                                    "\"" out "/bin/telega-server\"\n"))))))
+            (delete 'check)
+            (add-after 'install 'check
+              (assoc-ref %standard-phases 'check))
+            (add-before 'install-license-files 'leave-subdirectory
+              (lambda _ (chdir ".."))))
+        #:test-target "test"))
+      (inputs
+       (list tdlib libappindicator))
+      (native-inputs
+       (list python pkg-config))
+      (home-page "https://zevlg.github.io/telega.el/")
+      (synopsis "Server process of Telega")
+      (description "Telega-server is helper program to interact with Telegram
 service, and connect it with Emacs via inter-process communication.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-telega
   (package
@@ -26735,7 +26762,7 @@ service, and connect it with Emacs via inter-process communication.")
                                  "\"" ffmpeg-bin "\")"))))))
          (add-after 'unpack 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (substitute* "telega-server.el"
+             (substitute* "telega-customize.el"
                (("@TELEGA_SERVER_BIN@")
                 (search-input-file inputs "/bin/telega-server")))
              (substitute* "telega-util.el"
@@ -26743,13 +26770,11 @@ service, and connect it with Emacs via inter-process communication.")
                 (string-append (elpa-directory (assoc-ref outputs "out"))
                                "/etc"))))))))
     (inputs
-     `(("emacs-telega-server" ,emacs-telega-server)
-       ("ffmpeg" ,ffmpeg)))
+     (list emacs-telega-server ffmpeg))
     (native-inputs '())
     (propagated-inputs
-     `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
-       ("emacs-company" ,emacs-company)
-       ("emacs-rainbow-identifiers" ,emacs-rainbow-identifiers)))
+     (list emacs-visual-fill-column emacs-company
+           emacs-rainbow-identifiers))
     (synopsis "GNU Emacs client for the Telegram messenger")
     (description "Telega is a full-featured, unofficial GNU Emacs-based client
 for the Telegram messaging platform.")))
@@ -26769,11 +26794,8 @@ for the Telegram messaging platform.")))
     (inputs '())
     (native-inputs '())
     (propagated-inputs
-     `(("emacs-alert" ,emacs-alert)
-       ("emacs-all-the-icons" ,emacs-all-the-icons)
-       ("emacs-dashboard" ,emacs-dashboard)
-       ("emacs-telega" ,emacs-telega)
-       ("emacs-transient" ,emacs-transient)))
+     (list emacs-alert emacs-all-the-icons emacs-dashboard emacs-telega
+           emacs-transient))
     (synopsis "Contributed packages to Telega")
     (description "Telega-contrib is a collection of third-party
 contributed packages to Telega.")))
@@ -26781,24 +26803,22 @@ contributed packages to Telega.")))
 (define-public emacs-doom-modeline
   (package
     (name "emacs-doom-modeline")
-    (version "3.2.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/seagle0128/doom-modeline")
-                    (commit (string-append "v" version))))
-              (sha256
-               (base32
-                "1gfkaxga919a1a19dhpbby95l8dixb1278g5d7iadjf2i3j0p3l0"))
-              (file-name (git-file-name name version))))
+    (version "3.2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/seagle0128/doom-modeline")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1ji15n2rdp7bjg5iq9im6c4m12k24kqp85i3n1m9npihrb4arh54"))
+       (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (arguments
      `(#:test-command '("ert-runner")))
-    (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
+    (native-inputs (list emacs-ert-runner))
     (propagated-inputs
-     `(("emacs-all-the-icons" ,emacs-all-the-icons)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-shrink-path" ,emacs-shrink-path)))
+     (list emacs-all-the-icons emacs-dash emacs-shrink-path))
     (synopsis "Fancy and fast mode-line inspired by minimalism design")
     (description "Doom modeline is a complete modeline for GNU Emacs inspired
 by the Doom theme collection.  This modeline features support for mode-specific
@@ -26809,7 +26829,7 @@ icon support, git integration, and several other utilities.")
 (define-public emacs-mood-line
   (package
     (name "emacs-mood-line")
-    (version "1.2.4")
+    (version "1.2.5")
     (source
      (origin
        (method git-fetch)
@@ -26818,7 +26838,7 @@ icon support, git integration, and several other utilities.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0fh9j9fkgl433nykfzjnzap5labi4sdndfk1nv4f904ij69pmvxb"))))
+        (base32 "0z6s80j259xf8nxjxcsmp7wyvpcg5wyx58brlrbwg1aa9hl3fxga"))))
     (build-system emacs-build-system)
     (home-page "https://gitlab.com/jessieh/mood-line")
     (synopsis "Minimal mode-line for Emacs")
@@ -26863,8 +26883,7 @@ replicate some of the features of the Doom modeline package.")
         (base32 "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-dash emacs-s))
     (home-page "https://github.com/davidshepherd7/frames-only-mode")
     (synopsis "Use frames instead of Emacs windows")
     (description
@@ -26912,9 +26931,7 @@ with a preconfigured set of keys.")
        (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-s" ,emacs-s)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-f" ,emacs-f)))
+     (list emacs-s emacs-dash emacs-f))
     (home-page "https://gitlab.com/bennya/shrink-path.el")
     (synopsis "Fish-style path truncation in emacs-lisp")
     (description "This package provides utility functions that allow for
@@ -26948,22 +26965,22 @@ each slide with left/right keys.")
 (define-public emacs-fullframe
   (package
     (name "emacs-fullframe")
-    (version "0.5.0")
+    (version "0.5.1")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/tomterl/fullframe")
+             (url "https://git.sr.ht/~tomterl/fullframe")
              (commit version)))
        (sha256
-        (base32
-         "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"))
+        (base32 "1q276p3bagx9fhzyzjmz449f95k1z287x4p34980d06klj11lrab"))
        (file-name (git-file-name name version))))
     (build-system emacs-build-system)
-    (home-page "https://github.com/tomterl/fullframe")
+    (home-page "https://git.sr.ht/~tomterl/fullframe")
     (synopsis "Generalized automatic execution in a single frame")
-    (description "This library provides helpers for single-window-per-frame
-execution of buffer-exposing commands.")
+    (description
+     "This library provides helpers for single-window-per-frame execution of
+buffer-exposing commands.")
     (license license:gpl3+)))
 
 (define-public emacs-eshell-toggle
@@ -26984,7 +27001,7 @@ execution of buffer-exposing commands.")
          (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)))
+       (list emacs-dash))
       (home-page "https://github.com/4DA/eshell-toggle")
       (synopsis "Show and hide an @code{eshell} instance")
       (description "This package toggles an @code{eshell} instance for the
@@ -27007,7 +27024,7 @@ current buffer.")
        (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-fullframe" ,emacs-fullframe)))
+     (list emacs-fullframe))
     (home-page "https://git.sr.ht/~tomterl/repl-toggle")
     (synopsis "Switch to and from current major mode's REPL")
     (description "This package provides a function to switch to and from a
@@ -27043,12 +27060,9 @@ REPL appropriate to the current major mode.")
            (lambda _
              (invoke "make" "lib"))))))
     (inputs
-     `(("librime" ,librime)
-       ("rime-data" ,rime-data)))
+     (list librime rime-data))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-popup" ,emacs-popup)
-       ("emacs-posframe" ,emacs-posframe)))
+     (list emacs-dash emacs-popup emacs-posframe))
     (home-page "https://github.com/DogLooksGood/emacs-rime")
     (synopsis "Rime input method in Emacs")
     (description
@@ -27096,8 +27110,7 @@ display of major and minor modes in the mode line.")
            "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-ivy" ,emacs-ivy)
-         ("emacs-dash" ,emacs-dash)))
+       (list emacs-ivy emacs-dash))
       (synopsis "Browse anything in Org mode")
       (description "This package allows Org items to be accessed via the Ivy
 interface.")
@@ -27107,18 +27120,17 @@ interface.")
 (define-public emacs-ivy-posframe
   (package
     (name "emacs-ivy-posframe")
-    (version "0.6.1")
+    (version "0.6.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "ivy-posframe-" version ".tar"))
        (sha256
-        (base32 "1nay2sfbwm2fkp3f1y89innd9h6j3q70q9y4yddrwa69cxlj9m23"))))
+        (base32 "0b498qzaydjrhplx4d7zcrs883dlrhfiz812sv4m3pmhfwifcchh"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-ivy" ,emacs-ivy)
-       ("emacs-posframe" ,emacs-posframe)))
+     (list emacs-ivy emacs-posframe))
     (home-page "https://github.com/tumashu/ivy-posframe")
     (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
     (description
@@ -27127,27 +27139,25 @@ posframe to show its candidate menu.")
     (license license:gpl3+)))
 
 (define-public emacs-shackle
-  (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
-        (revision "1"))
-    (package
-      (name "emacs-shackle")
-      (version (git-version "1.0.3" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/wasamasa/shackle")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"))))
-      (build-system emacs-build-system)
-      (synopsis "Enforce rules for popups")
-      (description "This package provides a global minor mode in which users
+  (package
+    (name "emacs-shackle")
+    (version "1.0.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://depp.brause.cc/shackle.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0s4br59zpd5qq7z9074ddq9lmwnddq2ixijwi666wp5gxw45fpgg"))))
+    (build-system emacs-build-system)
+    (synopsis "Enforce rules for popups")
+    (description
+     "This package provides a global minor mode in which users
 can specify how popup-displaying functions occupy the screen.")
-      (home-page "https://github.com/wasamasa/shackle")
-      (license license:gpl3+))))
+    (home-page "https://depp.brause.cc/shackle")
+    (license license:gpl3+)))
 
 (define-public emacs-showtip
   (let ((commit "930da302809a4257e8d69425455b29e1cc91949b")
@@ -27189,9 +27199,7 @@ can specify how popup-displaying functions occupy the screen.")
           (base32 "0i1ylvw7p46pkf3yyyzcdmdhsspzymnnnvx8s0i7vynngr5x0vzh"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-popup" ,emacs-popup)
-         ("emacs-pos-tip" ,emacs-pos-tip)
-         ("emacs-showtip" ,emacs-showtip)))
+       (list emacs-popup emacs-pos-tip emacs-showtip))
       (home-page "https://www.emacswiki.org/emacs/download/sdcv.el")
       (synopsis "Emacs interface for @code{sdcv}")
       (description
@@ -27217,8 +27225,7 @@ translation using a tooltip or in a dedicated buffer.")
            "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)
-         ("emacs-lacarte" ,emacs-lacarte)))
+       (list emacs-helm emacs-lacarte))
       (synopsis "Helm interface to @code{lacarte.el}")
       (description "This package provides a Helm interface to
 @code{lacarte.el}, a package that displays mode-specific commands as menu
@@ -27244,7 +27251,7 @@ items.")
            "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)))
+       (list emacs-dash))
       (synopsis "Help functions for Eshell")
       (description "This package provides a @code{run-help} function inspired
 by @code{zsh} as well as @code{eldoc} support.")
@@ -27292,7 +27299,7 @@ within @code{isearch-mode}.")
            "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)))
+       (list emacs-helm))
       (synopsis "Mount/unmount volumes in Linux via Helm")
       (description "This package provides a Helm interface to run operations
 on removable volumes in Linux.")
@@ -27317,7 +27324,7 @@ on removable volumes in Linux.")
            "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-async" ,emacs-async)))
+       (list emacs-async))
       (synopsis "Persistent save of @code{elisp} objects.")
       (description "This package provides minor modes for saving Emacs session
 data, including buffers, window configuration, variables, and more.")
@@ -27327,7 +27334,7 @@ data, including buffers, window configuration, variables, and more.")
 (define-public emacs-parseedn
   (package
     (name "emacs-parseedn")
-    (version "0.2.0")
+    (version "1.0.6")
     (source
      (origin
        (method git-fetch)
@@ -27336,12 +27343,10 @@ data, including buffers, window configuration, variables, and more.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0271amhw63650rrzikcyqxa8sb42npnk7q3yrsay2v79wbqkdaw9"))))
+        (base32 "1xp2d42yvqkimb7a15bv89bj0124lljw9cb36g49m13d7ny4fafn"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-a" ,emacs-a)
-       ("emacs-parseclj" ,emacs-parseclj)))
+     (list emacs-a emacs-parseclj))
     (home-page "https://cider.mx")
     (synopsis "EDN parser for Emacs Lisp")
     (description
@@ -27352,7 +27357,7 @@ It uses parseclj's shift-reduce parser internally.")
 (define-public emacs-parseclj
   (package
     (name "emacs-parseclj")
-    (version "0.2.0")
+    (version "1.0.6")
     (source
      (origin
        (method git-fetch)
@@ -27361,10 +27366,9 @@ It uses parseclj's shift-reduce parser internally.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0894vhyx1phq8mdynnnqflcgi2a54hi926f4dk8slawzx1cb9xxb"))))
+        (base32 "0n0m3xc2dawgdhb68zznpsbzbbvf9fwgf9v8pzzwa2jncgi1yhh0"))))
     (build-system emacs-build-system)
-    (propagated-inputs `(("emacs-a" ,emacs-a)))
+    (propagated-inputs (list emacs-a))
     (home-page "https://cider.mx")
     (synopsis "Clojure parser for Emacs Lisp")
     (description
@@ -27412,8 +27416,7 @@ or simply disable the mode-line in buffers where it is not very useful.")
                   "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)
-         ("emacs-cider" ,emacs-cider)))
+       (list emacs-helm emacs-cider))
       (synopsis "Helm interface to Clojure's CIDER")
       (description "Helm-CIDER adds Helm interfaces to
 @command{cider-apropos}, @command{cider-apropos-documentation},
@@ -27442,7 +27445,7 @@ It also provides original Helm commands: @command{helm-cider-spec},
                   "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-peg" ,emacs-peg)))
+       (list emacs-peg))
       (synopsis "Read and write EDN from Elisp")
       (description "This is an Emacs Lisp library for reading and writing the
 data format @code{edn}.  See @url{https://github.com/edn-format/edn}.")
@@ -27465,8 +27468,7 @@ data format @code{edn}.  See @url{https://github.com/edn-format/edn}.")
                   "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)
-         ("emacs-edn" ,emacs-edn)))
+       (list emacs-helm emacs-edn))
       (synopsis "Search help on clojuredocs.org with Helm")
       (description "This package provides a Helm interface to lookup Clojure
 documentation on @url{https://clojuredocs.org} with Helm.
@@ -27497,7 +27499,7 @@ pattern guessed from thing under current cursor position.
          "01lh1df0bnas1p7xlqc4i1jd67f8lxgq0q2zsvx10z8828i76j3v"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-helm" ,emacs-helm)))
+     (list emacs-helm))
     (synopsis "Convenient related-buffer selection for Emacs Helm")
     (description "Helm Selector is a collection of Helm helper functions for
 convenient buffer selection.
@@ -27529,9 +27531,9 @@ used for the creation of a new buffer of mode X.")
            "0msj7nbsb363pxamxi7n2z08cp5jizkpjbwia8f5a161wjglrihs"))))
       (build-system emacs-build-system)
       (inputs
-       `(("wordnet" ,wordnet)))
+       (list wordnet))
       (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)))
+       (list emacs-helm))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -27554,29 +27556,26 @@ Wordnet.")
       (license license:gpl3+))))
 
 (define-public emacs-helm-xref
-  (let ((commit "23f1174cfca7667d95828dcd388c655a4a9c877d")
-        (revision "1"))
-    (package
-      (name "emacs-helm-xref")
-      (version (git-version "0.5" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/brotzeit/helm-xref")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0v0lkabpi1n4hgnp28jk19f7b78yk93ssm0gr0fr25yqx5zskdnk"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)))
-      (home-page "https://github.com/brotzeit/helm-xref")
-      (synopsis "Helm interface for @code{xref}")
-      (description "This package provides a Helm interface for selecting
+  (package
+    (name "emacs-helm-xref")
+    (version "1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/brotzeit/helm-xref")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0v0wm1x11r1h9p139c5rl0r4s5q6092bmwrsnr2140ddbq34mnvy"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     (list emacs-helm))
+    (home-page "https://github.com/brotzeit/helm-xref")
+    (synopsis "Helm interface for @code{xref}")
+    (description "This package provides a Helm interface for selecting
 @code{xref} results.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-metal-mercury-mode
   (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
@@ -27597,7 +27596,7 @@ Wordnet.")
          (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-dash" ,emacs-dash)))
+       (list emacs-dash))
       (synopsis "Major mode for editing Mercury files")
       (description
        "Major mode for editing Mercury files.  This is a rewrite of the original
@@ -27663,7 +27662,7 @@ window.")
         (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-company" ,emacs-company)))
+     (list emacs-company))
     (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
     (synopsis "Company completion backend for EBDB in Message mode")
     (description "@code{company-ebdb} provides Company mode integration for
@@ -27777,7 +27776,7 @@ the current buffer.")
         (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-switch-buffer-functions" ,emacs-switch-buffer-functions)))
+     (list emacs-switch-buffer-functions))
     (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
     (synopsis "ERC module to replace scrolltobottom while using keep-place")
     (description "@code{erc-scrolltoplace} is an ERC module to try
@@ -27811,7 +27810,7 @@ launching other commands/applications from within Emacs, similar to the
 (define-public emacs-no-littering
   (package
     (name "emacs-no-littering")
-    (version "1.2.2")
+    (version "1.2.3")
     (source
      (origin
        (method git-fetch)
@@ -27820,7 +27819,7 @@ launching other commands/applications from within Emacs, similar to the
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1kbbbx1agzcxc5n1b6cavdx3wjxz6mgi9rafja8mk8cyaaiz0rkd"))))
+        (base32 "1c6nq2sykbsjy30zakfpny503644bbwgb4pxhfsd4wywj5yyzw66"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/emacscollective/no-littering")
     (synopsis "Help keep @file{~/.emacs.d/} clean")
@@ -27924,7 +27923,7 @@ fontifications.")
           (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
       (build-system emacs-build-system)
       (inputs
-       `(("sqlite" ,sqlite)))
+       (list sqlite))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -28004,7 +28003,7 @@ variables.")
         (base32 "1rhf2hr345953mkn52i58aiq8j16ps2ckapd5f7jxmhkcpzxxfhk"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-company" ,emacs-company)))
+     (list emacs-company))
     (home-page "https://github.com/dunn/company-emoji/")
     (synopsis "Company completion back-end for emoji")
     (description
@@ -28039,7 +28038,7 @@ emoji.")
                ("exiftool-executable"
                 (search-input-file inputs "/bin/exiftool"))))))))
     (inputs
-     `(("perl-image-exiftool" ,perl-image-exiftool)))
+     (list perl-image-exiftool))
     (home-page "https://git.systemreboot.net/exiftool.el/about/")
     (synopsis "Elisp wrapper around ExifTool")
     (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
@@ -28185,8 +28184,7 @@ a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
                (substitute* "Makefile"
                  (("/bin/rm") (which "rm"))))))))
       (native-inputs
-       `(("emacs-minimal" ,emacs-minimal)
-         ("ruby" ,ruby)))
+       (list emacs-minimal ruby))
       (home-page "https://github.com/skk-dev/ddskk")
       (synopsis "Simple Kana to Kanji conversion program")
       (description
@@ -28194,6 +28192,38 @@ a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
 conversion program}, a Japanese input method on Emacs.")
       (license license:gpl2+))))
 
+(define-public emacs-ddskk-nicola
+  (package
+    (inherit emacs-ddskk)
+    (name "emacs-ddskk-nicola")
+    (propagated-inputs
+     (list emacs-ddskk))
+    (arguments
+     `(#:make-flags
+       (let ((out (assoc-ref %outputs "out")))
+         (append
+          (list (string-append "PREFIX=" out)
+                (string-append "LISPDIR=" out "/share/emacs/site-lisp"))))
+       #:tests? #f                      ; no tests in this subtree
+       ,@(substitute-keyword-arguments (package-arguments emacs-ddskk)
+           ((#:phases phases)
+            `(modify-phases ,phases
+               (add-after 'unpack 'chdir
+                 (lambda _
+                   (chdir "nicola")
+                   #t))
+               (replace 'configure
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (make-file-writable "NICOLA-DDSKK-CFG")
+                   (emacs-substitute-sexps "NICOLA-DDSKK-CFG"
+                     ("setq NICOLA-DDSKK_PREFIX" ""))
+                   #t)))))))
+    (synopsis "Nicola layout for Daredevil SKK")
+    (description
+     "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
+conversion program}, a Japanese input method on Emacs.  This package adds
+support for the Nicola keyboard layout to it.")))
+
 (define-public emacs-objed
   (package
     (name "emacs-objed")
@@ -28246,7 +28276,7 @@ conventions.")
                  (copy-recursively "snippets/haskell-mode" snippets)
                  #t))))))
       (propagated-inputs
-       `(("emacs-yasnippet" ,emacs-yasnippet)))
+       (list emacs-yasnippet))
       (home-page "https://github.com/haskell/haskell-snippets")
       (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
       (description "Haskell-Snippets is a collection of YASnippet Haskell
@@ -28279,6 +28309,13 @@ snippets for Emacs.")
                            (rename-file f (basename f)))
                          el-files))
              #t))
+         (add-after 'move-source-files 'patch-exec-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (make-file-writable "org-roam-graph.el")
+             (emacs-substitute-variables "org-roam-graph.el"
+               ("org-roam-graph-executable"
+                (string-append (assoc-ref inputs "graphviz")
+                               "/bin/dot")))))
          (add-after 'install 'install-image
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -28291,15 +28328,17 @@ snippets for Emacs.")
                  (invoke "makeinfo" "-o" "org-roam.info" "org-roam.texi")
                  (install-file "org-roam.info"
                                (string-append out "/share/info")))))))))
+       (inputs
+        (list graphviz))
        (native-inputs
-        `(("texinfo" ,texinfo)))
+        (list texinfo))
        (propagated-inputs
-        `(("emacs-dash" ,emacs-dash)
-          ("emacs-emacsql-sqlite3" ,emacs-emacsql-sqlite3)
-          ("emacs-f" ,emacs-f)
-          ("emacs-magit" ,emacs-magit)
-          ("emacs-org" ,emacs-org)
-          ("emacs-s" ,emacs-s)))
+        (list emacs-dash
+              emacs-emacsql-sqlite3
+              emacs-f
+              emacs-magit
+              emacs-org
+              emacs-s))
        (home-page "https://github.com/org-roam/org-roam/")
        (synopsis "Non-hierarchical note-taking with Org mode")
        (description "Emacs Org Roam is a solution for taking non-hierarchical
@@ -28312,7 +28351,7 @@ personal wiki.")
 (define-public emacs-org-roam-bibtex
   (package
     (name "emacs-org-roam-bibtex")
-    (version "0.6.0")
+    (version "0.6.1")
     (source
      (origin
        (method git-fetch)
@@ -28321,12 +28360,10 @@ personal wiki.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "04vc2w7x2lyamp0qa1y274smsf9x2qxr1igrpz9f4y5ha5332px5"))))
+        (base32 "1d09y923d9n5v7m201myba85m4064s2hdy3pgzssy70mjncg3m1g"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-helm-bibtex" ,emacs-helm-bibtex)
-       ("emacs-org-ref" ,emacs-org-ref)
-       ("emacs-org-roam" ,emacs-org-roam)))
+     (list emacs-helm-bibtex emacs-org-ref emacs-org-roam))
     (home-page "https://github.com/org-roam/org-roam-bibtex")
     (synopsis "Connector between Org Roam, BibTeX-completion, and Org Ref")
     (description
@@ -28350,10 +28387,9 @@ opening Org Ref's @code{cite:} links.")
                (base32
                 "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"))))
     (inputs
-     `(("emacs-cort" ,emacs-cort)
-       ("emacs-with-simulated-input" ,emacs-with-simulated-input)))
+     (list emacs-cort emacs-with-simulated-input))
     (propagated-inputs
-     `(("emacs-mustache" ,emacs-mustache)))
+     (list emacs-mustache))
     (arguments
      ;; FIXME: Tests fail with "Wrong type argument: sequencep, :equal".  It
      ;; seems to be an issue with Cort library.
@@ -28483,9 +28519,9 @@ restore that occurrence of the placeholder and move to the next.")
                          (basic-save-buffer)))
                #t))))))
     (inputs
-     `(("plantuml" ,plantuml)))
+     (list plantuml))
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)))
+     (list emacs-dash))
     (build-system emacs-build-system)
     (home-page "https://github.com/skuro/plantuml-mode")
     (synopsis "Major mode for editing PlantUML sources")
@@ -28509,7 +28545,7 @@ or region and use of locally installed binaries.")
                 "02q531c9wvdwflhggflnci4a36h2bb90bq25bbhw6i2lvrd9sk55"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-s" ,emacs-s)))
+     (list emacs-s))
     (arguments
      `(#:tests? #t
        #:test-command '("emacs" "-Q" "-batch" "-L" "."
@@ -28554,26 +28590,29 @@ rather excellent completion provided by both Bash and Zsh.")
     (license license:gpl3+)))
 
 (define-public emacs-shell-command+
-  (package
-    (name "emacs-shell-command+")
-    (version "2.2.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://git.sr.ht/~pkal/shell-command-plus")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32 "1micvz6smhjma7qbka8h3w0crb3sgrxf9lz2548iqfgww50gb0lj"))))
-    (build-system emacs-build-system)
-    (home-page "http://elpa.gnu.org/packages/shell-command+.html")
-    (synopsis "Extended Emacs @code{shell-command}")
-    (description
-     "Shell-command+ is a @code{shell-command} substitute that extends the
+  ;; XXX: Upstream did not tag last release.  The commit below corresponds to
+  ;; the exact version bump.
+  (let ((commit "bf744c63bbd1e3bbb93407bd32d6da670b23e67e"))
+    (package
+      (name "emacs-shell-command+")
+      (version "2.3.2")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://git.sr.ht/~pkal/shell-command-plus")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32 "0prlvcryq5ngrzn5f45rkw09wbr99v7nnwps2bjrjc3wvr2rp6h0"))))
+      (build-system emacs-build-system)
+      (home-page "http://elpa.gnu.org/packages/shell-command+.html")
+      (synopsis "Extended Emacs @code{shell-command}")
+      (description
+       "Shell-command+ is a @code{shell-command} substitute that extends the
 regular Emacs command with several features.  You can for example count all
 the lines in a buffer with @code{> wc -l}, or delete all lower case letters in
 the selected region with @code{| tr -d a-z}.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-shell-pop
   (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
@@ -28619,7 +28658,7 @@ you use some other configuration.")
           (base32 "0yv38bqdp6b614lbj4v408vv5mlic3vs1v7266xrfxm1cm903apj"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-transient" ,emacs-transient)))
+       (list emacs-transient))
       (home-page "https://github.com/TatriX/tshell")
       (synopsis "Experimental buffer-oriented Emacs shell")
       (description
@@ -28630,7 +28669,7 @@ and Emacs lisp commands.")
 (define-public emacs-extmap
   (package
     (name "emacs-extmap")
-    (version "1.1.1")
+    (version "1.2.1")
     (source
      (origin
        (method git-fetch)
@@ -28639,12 +28678,11 @@ and Emacs lisp commands.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "09kia3mr4si8kn46kyiza9nl669b22vmgc70ng3mqz742lph5siw"))))
+        (base32 "00415w4l9wfpw9v0a35dm1av2w1m6s36yr9f9286jg844x6l375f"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/doublep/extmap")
     (synopsis "Externally-stored constant mapping for Emacs Lisp")
-    (description "A very simple package that lets you build a
+    (description "Extmap is a very simple package that lets you build a
 read-only, constant database that maps Emacs Lisp symbols to
 arbitrary Emacs Lisp objects.")
     (license license:gpl3+)))
@@ -28675,9 +28713,7 @@ arbitrary Emacs Lisp objects.")
                        '("csound-font-lock.el"))
              #t)))))
     (inputs
-     `(("emacs-highlight" ,emacs-highlight)
-       ("emacs-multi" ,emacs-multi)
-       ("emacs-shut-up" ,emacs-shut-up)))
+     (list emacs-highlight emacs-multi emacs-shut-up))
     (home-page "https://github.com/hlolli/csound-mode")
     (synopsis "Emacs major mode for coding in CSound")
     (description "Provides both a basic major mode for editing
@@ -28761,7 +28797,7 @@ picked up when copy-pasting text from buffer to buffer.")
                (copy-recursively "assets" assets)
                #t))))))
     (propagated-inputs
-     `(("emacs-xmlgen" ,emacs-xmlgen)))
+     (list emacs-xmlgen))
     (home-page "https://sr.ht/~brettgilio/org-webring")
     (synopsis "Generate webrings for Org-based sites / blogs")
     (description "Org-webring is an alternative implementation of a
@@ -28772,6 +28808,26 @@ web feed files and correctly parse and format the elements to be
 displayed for sharing.")
     (license license:gpl3+)))
 
+(define-public emacs-orglink
+  (package
+    (name "emacs-orglink")
+    (version "1.1.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tarsius/orglink")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0ipy1p2cr5i0465hchqazmgn9jrgwzbyrb3prfgkl7z2m1gd7fcg"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/tarsius/orglink")
+    (synopsis "Use Org mode links in other modes")
+    (description "This library implements support for some Org mode link types
+in other major modes.  Links can be opened and edited like in Org mode.")
+    (license license:gpl3+)))
+
 (define-public emacs-scpaste
   (let ((commit "cd4fa0aafecd839736e0b6cba68b4fc4d7045472")
         (revision "0"))
@@ -28790,7 +28846,7 @@ displayed for sharing.")
            "1nvwbwl26z03963g9c82b3ggm39r95z1vp7c9qsa9mjm46dyq27w"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-htmlize" ,emacs-htmlize)))
+       (list emacs-htmlize))
       (home-page "https://git.sr.ht/~technomancy/scpaste")
       (synopsis "Emacs-based static HTML pastebin")
       (description "This library will place an HTML copy of a
@@ -28816,8 +28872,7 @@ publicly-accessible HTTP server.")
          "118cgw5lsffqdqz95mnkw36mmnsbg9m52r2np4m7v14mjjwr9fby"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-company" ,emacs-company)
-       ("emacs-s" ,emacs-s)))
+     (list emacs-company emacs-s))
     (home-page "https://github.com/TheBB/company-reftex")
     (synopsis "RefTeX backends for company-mode")
     (description "This package provides company-mode backends for completing
@@ -28842,7 +28897,7 @@ included with Emacs.")
                   "13kdwi4d1pvba6wv9yn1s0dl4cnq61zwf3j647d1s5ybqlrw5f4r"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-company" ,emacs-company)))
+       (list emacs-company))
       (home-page "https://github.com/xenodium/company-org-block")
       (synopsis "Emacs @code{company-complete} for Org blocks")
       (description
@@ -28868,8 +28923,7 @@ included with Emacs.")
           (base32 "1qi092mw2n08v6yr0j6hlpx0pnlcnhxjqbsrlw9pn4yin6zk91yp"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("dash" ,emacs-dash)
-         ("s" ,emacs-s)))
+       (list emacs-dash emacs-s))
       (home-page "https://github.com/plexus/html-to-hiccup")
       (synopsis "Turn HTML into Hiccup syntax")
       (description
@@ -28884,7 +28938,7 @@ web development.")
 (define-public emacs-iter2
   (package
     (name "emacs-iter2")
-    (version "1.0")
+    (version "1.1")
     (source
      (origin
        (method git-fetch)
@@ -28893,7 +28947,7 @@ web development.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"))))
+        (base32 "12flc98nv353cqr9qbkasgdmiyf9c3iw4apzh899xw857j1h5qdr"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/doublep/iter2")
     (synopsis "Reimplementation of Elisp generators")
@@ -28951,8 +29005,7 @@ faithfully.  See @url{https://github.com/then/promise}.
         (base32 "0aav9qdswnw7ynqlzn0sm34as5fj2d85syxgg8zjabzp6646ay29"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("promise" ,emacs-promise)
-       ("iter2" ,emacs-iter2)))
+     (list emacs-promise emacs-iter2))
     (home-page "https://github.com/chuntaro/emacs-async-await")
     (synopsis "Async/Await for Emacs")
     (description "This is a simple implementation of Async/Await inspired by
@@ -28976,8 +29029,7 @@ the TypeScript implementation.")
           (base32 "02a4j0yy7330kfr3rd3k2agdj01ii6989nki598anbamq6xvj5ql"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("async-await" ,emacs-async-await)
-         ("request" ,emacs-request)))
+       (list emacs-async-await emacs-request))
       (home-page "https://github.com/4hiziri/rocket-chat")
       (synopsis "Emacs Rocket.chat client")
       (description "This package provides an Emacs client for the Rocket.chat
@@ -29063,8 +29115,6 @@ syntax highlighting and UI components.")
          (sha256
           (base32 "0g0y7q62667j0p32md1h6zb2cap9fga9qgdg7138xwjqnk0328v7"))))
       (build-system emacs-build-system)
-      (propagated-inputs
-       `(("janet-mode" ,emacs-janet-mode)))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -29072,8 +29122,9 @@ syntax highlighting and UI components.")
              (lambda _
                (make-file-writable "inf-janet.el")
                (emacs-substitute-variables "inf-janet.el"
-                 ("inf-janet-program" "janet"))
-               #t)))))
+                 ("inf-janet-program" "janet")))))))
+      (propagated-inputs
+       (list emacs-janet-mode))
       (home-page "https://github.com/velkyel/inf-janet")
       (synopsis "Run an external Janet process in an Emacs buffer")
       (description
@@ -29084,7 +29135,7 @@ s-expression.")
 (define-public emacs-map
   (package
     (name "emacs-map")
-    (version "3.1")
+    (version "3.2.1")
     (source
      (origin
        (method url-fetch)
@@ -29092,7 +29143,7 @@ s-expression.")
                            version ".tar"))
        (sha256
         (base32
-         "1akkp34psm71ylbf1i02m56ga1dkswhz069j98amixrhw20hq4nx"))))
+         "1vy231m2fm5cgz5nib14ib7ifprajhnbmzf6x4id48h2491m1n24"))))
     (build-system emacs-build-system)
     (home-page "http://elpa.gnu.org/packages/map.html")
     (synopsis "Map manipulation functions")
@@ -29104,14 +29155,14 @@ work on alists, hash-table and arrays.  All functions are prefixed with
 (define-public emacs-xref
   (package
     (name "emacs-xref")
-    (version "1.2.2")
+    (version "1.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/xref-"
                            version ".tar"))
        (sha256
-        (base32 "14kdy8blhs6lwg349l9lmv0bbpybgi9nsg2iic3v87j4jyi41ljm"))))
+        (base32 "13bsaxdxwn14plaam0hsrswngh3rm2k29v5ybjgjyjy4d5vwz78j"))))
     (build-system emacs-build-system)
     (home-page "http://elpa.gnu.org/packages/xref.html")
     (synopsis "Cross-referencing commands")
@@ -29135,7 +29186,7 @@ commands, in particular @code{find-definition}.")
         (base32 "1vaikknjzmhpszyi4yxjjkp1ihgmhpbnbx1s5pjy4mnhl1ibi33b"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-map" ,emacs-map)))
+     (list emacs-map))
     (home-page "https://github.com/alphapapa/burly.el")
     (synopsis "Save and restore frame/window configurations with buffers")
     (description "This package provides tools to save and restore frame and
@@ -29183,8 +29234,7 @@ rules about where space should be left to separate words and parentheses.")
         (base32 "0b9hf20iah3ym2d4kz67k0kb48dq0442zxw4zmc03zg3sxfdxh0x"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-dash" ,emacs-dash)
-       ("emacs-transient" ,emacs-transient)))
+     (list emacs-dash emacs-transient))
     (home-page "https://github.com/MaximeWack/seriesTracker")
     (synopsis "Keep track of the TV shows you watch from Emacs")
     (description
@@ -29199,7 +29249,7 @@ released, and track their progress in watching a series.")
 (define-public emacs-webpaste
   (package
     (name "emacs-webpaste")
-    (version "3.2.1")
+    (version "3.2.2")
     (source
      (origin
        (method git-fetch)
@@ -29208,8 +29258,7 @@ released, and track their progress in watching a series.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1d481pdnh7cnbyka7wn59czlci63zwfqms8n515svg92qm573ckd"))))
+        (base32 "07hj9nr7x6c9w2dnvc58cfbprgp9cqzdxflp5qlpglzdw0bi9s3c"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -29226,9 +29275,9 @@ released, and track their progress in watching a series.")
                                 "tests/integration/test-webpaste-providers.el")
                (("describe") "xdescribe")))))))
     (native-inputs
-     `(("emacs-buttercup" ,emacs-buttercup)))
+     (list emacs-buttercup))
     (propagated-inputs
-     `(("emacs-request" ,emacs-request)))
+     (list emacs-request))
     (home-page "https://github.com/etu/webpaste.el")
     (synopsis "Paste to pastebin-like services")
     (description "This mode pastes whole buffers or parts of buffers
@@ -29261,13 +29310,9 @@ and preferred services can easily be configured.")
          '("emacs" "--no-init-file" "--batch"
            "--eval=(require 'ecukes)" "--eval=(ecukes)")))
       (native-inputs
-       `(("emacs-ecukes" ,emacs-ecukes)
-         ("emacs-espuds" ,emacs-espuds)
-         ("emacs-undercover" ,emacs-undercover)
-         ("openjdk" ,openjdk9)))
+       (list emacs-ecukes emacs-espuds emacs-undercover openjdk9))
       (propagated-inputs
-       `(("emacs-origami" ,emacs-origami-el)
-         ("emacs-s" ,emacs-s)))
+       (list emacs-origami-el emacs-s))
       (synopsis "Major mode for viewing and managing Java keystores")
       (description
        "This package provides an Elisp wrapper around the Java
@@ -29288,8 +29333,7 @@ and preferred services can easily be configured.")
         (base32 "1q5caxm4rnh4jy5n88dhkdbx1afsshmfki5dl8xsqbdb3y0zq7yi"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-ivy" ,emacs-ivy)
-       ("emacs-avy" ,emacs-avy)))
+     (list emacs-ivy emacs-avy))
     (home-page "https://github.com/abo-abo/swiper")
     (synopsis "Avy integration for Ivy")
     (description
@@ -29299,7 +29343,7 @@ and preferred services can easily be configured.")
 (define-public emacs-vertico
   (package
     (name "emacs-vertico")
-    (version "0.14")
+    (version "0.17")
     (source
      (origin
        (method git-fetch)
@@ -29308,7 +29352,7 @@ and preferred services can easily be configured.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0rddk76ih44b574lsr6d6r9wa2l7c9zlb9kcyw5xvly17ciiq16h"))))
+        (base32 "0fc1w8lwmnx8qfrdanxa6ma9qyps92gvqqklydh4cdcsdinss7kb"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -29320,10 +29364,9 @@ and preferred services can easily be configured.")
              (let ((el-files (find-files "./extensions" ".*\\.el$")))
                (for-each (lambda (f)
                            (rename-file f (basename f)))
-                         el-files))
-             #t)))))
+                         el-files)))))))
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (home-page "https://github.com/minad/vertico")
     (synopsis "Vertical interactive completion")
     (description
@@ -29370,8 +29413,7 @@ files, providing syntax highlighting and indentation rules.")
         (base32 "06rln9bnq5hli5rqlm47fb68b8llpqrmzwqqv4rn7mx3854i9a5x"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-ivy" ,emacs-ivy)
-       ("emacs-hydra" ,emacs-hydra)))
+     (list emacs-ivy emacs-hydra))
     (home-page "https://github.com/abo-abo/swiper")
     (synopsis "Additional key bindings for Ivy")
     (description
@@ -29396,10 +29438,10 @@ shorter than usual, using mostly unprefixed keys.")
          "0507acyr9h4646scx316niq27vir6hl2gsgz7wdbiw0cb2drfkd1"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-yaml-mode" ,emacs-yaml-mode)))
+     (list emacs-yaml-mode))
     (home-page "https://github.com/tom-tan/cwl-mode")
     (synopsis "Emacs mode for @acronym{CWL, Common Workflow Language} files")
-    (description "This packages provides a major mode for editing
+    (description "This package provides a major mode for editing
 @acronym{CWL, Common Workflow Language} files.")
     (license license:gpl3+)))
 
@@ -29459,7 +29501,7 @@ to the @url{https://multitran.com} online dictionary.")
         (base32 "0ky167xh1hrmqsldybzjhyqjizgjzs1grn5mf8sm2j9qwcvjw2zv"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-s" ,emacs-s)))
+     (list emacs-s))
     (home-page "http://www.github.com/brunchboy/kibit-helper")
     (synopsis "Use the Kibit Leiningen plugin from Emacs")
     (description
@@ -29467,6 +29509,28 @@ to the @url{https://multitran.com} online dictionary.")
 for detecting and improve non-idiomatic Clojure source code.")
     (license license:gpl3+)))
 
+(define-public emacs-mint-mode
+  (package
+    (name "emacs-mint-mode")
+    (version "1.0.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/creatorrr/emacs-mint-mode")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1v8mp1k24lzvc0mh9l4k3fwzr4sr87f5p9ahpy7263pcbvcy11vl"))))
+    (build-system emacs-build-system)
+    (arguments '(#:include '("\\.el$" "\\.txt$")))
+    (home-page "https://github.com/creatorrr/emacs-mint-mode")
+    (synopsis "Major mode for Mint language")
+    (description
+     "Mint mode provides syntax highlighting, basic keyword auto-completion,
+and format on save for Mint programming language.")
+    (license license:gpl3+)))
+
 (define-public emacs-seeing-is-believing
   (let ((version "1.2.0") ; from .el file
         (commit "fbbe246c0fda87bb26227bb826eebadb418a220f")
@@ -29517,3 +29581,28 @@ current region or entire buffer.")
 It includes syntax highlighting, automatic indentation, and imenu integration.
 Unlike Emacs' generic ASM mode, it understands NASM-specific syntax.")
     (license license:unlicense)))
+
+(define-public emacs-global-tags
+  (let ((commit "06db25d91cc8bfb5e24e02adc04de1226c7e742d")
+        (revision "0"))
+    (package
+      (name "emacs-global-tags")
+      (version (git-version "0.7" revision commit))
+      (home-page "https://git.launchpad.net/global-tags.el/")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url home-page)
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1q30cbqq0h1gfwlcbnx9s930li7w7a0y8sx2ivbvvyyc2j5gsk4j"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       (list emacs-async emacs-ht))
+      (synopsis "Testeable Emacs Lisp API that wraps around GNU Global")
+      (description "This package provides a testeable Emacs Lisp API that
+wraps GNU Global calls and integration to editor using this API with
+project.el and xref.el.")
+      (license license:gpl3+))))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 060a253968..12046f0d39 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -18,7 +18,7 @@
 ;;; Copyright © 2018, 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Jesse John Gildersleve <jessejohngildersleve@zohomail.eu>
 ;;; Copyright © 2019 Valentin Ignatev <valentignatev@gmail.com>
-;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2019, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
 ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
 ;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
@@ -54,6 +54,7 @@
   #:use-module (gnu packages fribidi)
   #:use-module (gnu packages gd)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)     ; for librsvg
   #:use-module (gnu packages gtk)
@@ -63,6 +64,7 @@
   #:use-module (gnu packages mail)      ; for mailutils
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages pdf)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
@@ -129,7 +131,7 @@
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-program-file-names
-           (lambda _
+           (lambda* (#:key inputs #:allow-other-keys)
              (substitute* '("src/callproc.c"
                             "lisp/term.el"
                             "lisp/htmlfontify.el"
@@ -137,6 +139,23 @@
                             "lisp/progmodes/sh-script.el")
                (("\"/bin/sh\"")
                 (format #f "~s" (which "sh"))))
+             (substitute* "lisp/doc-view.el"
+               (("\"(gs|dvipdf|ps2pdf)\"" all what)
+                (let ((ghostscript (assoc-ref inputs "ghostscript")))
+                  (if ghostscript
+                      (string-append "\"" ghostscript "/bin/" what "\"")
+                      all)))
+               (("\"(pdftotext)\"" all what)
+                (let ((poppler (assoc-ref inputs "poppler")))
+                  (if poppler
+                      (string-append "\"" poppler "/bin/" what "\"")
+                      all))))
+             ;; match ".gvfs-fuse-daemon-real" and ".gvfsd-fuse-real"
+             ;; respectively when looking for GVFS processes.
+             (substitute* "lisp/net/tramp-gvfs.el"
+               (("\\(tramp-compat-process-running-p \"(.*)\"\\)" all process)
+                (format #f "(or ~a (tramp-compat-process-running-p ~s))"
+                        all (string-append "." process "-real"))))
              #t))
          (add-before 'configure 'fix-/bin/pwd
            (lambda _
@@ -167,8 +186,11 @@
                (with-output-to-file (string-append lisp-dir "/site-start.el")
                  (lambda ()
                    (display
-                    (string-append "(when (require 'guix-emacs nil t)\n"
-                                   "  (guix-emacs-autoload-packages))\n"))))
+                    (string-append
+                     "(when (require 'guix-emacs nil t)\n"
+                     "  (guix-emacs-autoload-packages)\n"
+                     "  (advice-add 'package-load-all-descriptors"
+                     " :after #'guix-emacs-load-package-descriptors))"))))
                ;; Remove the extraneous subdirs.el file, as it causes Emacs to
                ;; add recursively all the the sub-directories of a profile's
                ;; share/emacs/site-lisp union when added to EMACSLOADPATH,
@@ -183,15 +205,13 @@
            (lambda* (#:key outputs target #:allow-other-keys)
              (let* ((libexec (string-append (assoc-ref outputs "out")
                                             "/libexec"))
-                    ;; each of these find-files should return one file
-                    (pdmp (find-files libexec "^emacs\\.pdmp$"))
-                    (pdmp-real (find-files libexec
-                                           "^\\.emacs\\.pdmp-real$")))
-               (for-each (lambda (wrapper real)
-                           (delete-file wrapper)
-                           (rename-file real wrapper))
-                         pdmp pdmp-real))
-             #t))
+                    ;; each of these ought to only match a single file,
+                    ;; but even if not (find-files) sorts by string<,
+                    ;; so the Nth element in one maps to the Nth element of
+                    ;; the other
+                    (pdmp (find-files libexec "\\.pdmp$"))
+                    (pdmp-real (find-files libexec "\\.pdmp-real$")))
+               (for-each rename-file pdmp-real pdmp))))
          (add-after 'glib-or-gtk-wrap 'strip-double-wrap
            (lambda* (#:key outputs #:allow-other-keys)
              ;; Directly copy emacs-X.Y to emacs, so that it is not wrapped
@@ -261,18 +281,16 @@
        ("acl" ,acl)
        ("jansson" ,jansson)
        ("gmp" ,gmp)
+       ("ghostscript" ,ghostscript)
+       ("poppler" ,poppler)
 
        ;; When looking for libpng `configure' links with `-lpng -lz', so we
        ;; must also provide zlib as an input.
        ("libpng" ,libpng)
        ("zlib" ,zlib)
-
-       ;; librsvg is an optional dependency that pulls in rust.  Rust is not
-       ;; supported well on every architecture yet.
-       ,@(if (string-prefix? "x86_64" (or (%current-target-system)
-                                          (%current-system)))
-             `(("librsvg" ,librsvg))
-             '())
+       ("librsvg" ,@(if (target-x86-64?)
+                         (list librsvg-bootstrap)
+                         (list librsvg-2.40)))
        ("libxpm" ,libxpm)
        ("libxml2" ,libxml2)
        ("libice" ,libice)
@@ -328,8 +346,8 @@ languages.")
           (base32
            "0igjm9kwiswn2dpiy2k9xikbdfc7njs07ry48fqz70anljj8y7y3"))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ,@(package-native-inputs emacs))))))
+       (modify-inputs (package-native-inputs emacs)
+         (prepend autoconf))))))
 
 (define-public emacs-next-pgtk
   (let ((commit "ae18c8ec4f0ef37c8c9cda473770ff47e41291e2")
@@ -353,10 +371,9 @@ languages.")
          ((#:configure-flags flags ''())
           `(cons* "--with-pgtk" "--with-xwidgets" ,flags))))
       (propagated-inputs
-       `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-         ("glib-networking" ,glib-networking)))
+       (list gsettings-desktop-schemas glib-networking))
       (inputs
-       `(("webkitgtk" ,webkitgtk)
+       `(("webkitgtk" ,webkitgtk-with-libsoup2)
          ,@(package-inputs emacs-next)))
       (home-page "https://github.com/masm11/emacs")
       (synopsis "Emacs text editor with @code{pgtk} and @code{xwidgets} support")
@@ -402,7 +419,7 @@ editor (with xwidgets support)")
            (delete 'restore-emacs-pdmp)
            (delete 'strip-double-wrap)))))
     (inputs
-     `(("webkitgtk" ,webkitgtk)
+     `(("webkitgtk" ,webkitgtk-with-libsoup2)
        ("libxcomposite" ,libxcomposite)
        ,@(package-inputs emacs)))))
 
@@ -547,12 +564,12 @@ This package contains the library database.")
          "0jp61y09xqj10mclpip48qlfhniw8gwy8b28cbzxy8hq8pkwmfkq"))))
     (build-system gnu-build-system)
     (inputs
-     `(("fribidi" ,fribidi)
-       ("gd" ,gd)
-       ("libotf" ,libotf)
-       ("libxft" ,libxft)
-       ("libxml2" ,libxml2)
-       ("m17n-db" ,m17n-db)))
+     (list fribidi
+           gd
+           libotf
+           libxft
+           libxml2
+           m17n-db))
     (arguments
      `(#:parallel-build? #f))
     ;; With `guix lint' the home-page URI returns a small page saying
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index f388c11c3d..6e951e70a0 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2020, 2021 Simon South <simon@simonsouth.net>
 ;;; Copyright © 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -294,9 +295,9 @@ usable on embedded products.")
            (origin-patches (package-source gcc-7))
            (search-patches "gcc-7-cross-environment-variables.patch")))))
       (native-inputs
-       `(("flex" ,flex)
-         ("isl" ,isl-0.18)
-         ,@(alist-delete "isl" (package-native-inputs xgcc))))
+       (modify-inputs (package-native-inputs xgcc)
+         (delete "isl")
+         (prepend flex isl-0.18)))
       (arguments
        (substitute-keyword-arguments (package-arguments xgcc)
          ((#:phases phases)
@@ -516,12 +517,9 @@ languages are C and C++.")
                 "0ndyfh51hiqyv2yscpj6qd091w7myxxjid3a6rx8f6k233vy826q"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("libusb" ,libusb)))
+     (list libusb))
     (home-page "https://repo.or.cz/w/libjaylink.git")
     (synopsis "Library to interface Segger J-Link devices")
     (description "libjaylink is a shared library written in C to access
@@ -559,7 +557,7 @@ SEGGER J-Link and compatible devices.")
          )))
     (native-inputs
      ;; For tests.
-     `(("inetutils" ,inetutils)))       ; for hostname
+     (list inetutils))       ; for hostname
     (home-page "http://jim.tcl.tk/index.html")
     (synopsis "Small footprint Tcl implementation")
     (description "Jim is a small footprint implementation of the Tcl programming
@@ -567,73 +565,72 @@ language.")
     (license license:bsd-2)))
 
 (define-public openocd
-  (let ((commit "9a877a83a1c8b1f105cdc0de46c5cbc4d9e8799e")
-        (revision "0"))
-    (package
-      (name "openocd")
-      (version (string-append "0.10.0-" revision "."
-                              (string-take commit 7)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://git.code.sf.net/p/openocd/code")
-                      (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
-                (sha256
-                 (base32
-                  "1q536cp80v2bcy6xwk08f1r2ljyw13jchx3a1z7d3ni3vqql7rc6"))))
-      (build-system gnu-build-system)
-      (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("which" ,base:which)
-         ("pkg-config" ,pkg-config)
-         ("texinfo" ,texinfo)))
-      (inputs
-       `(("hidapi" ,hidapi)
-         ("jimtcl" ,jimtcl)
-         ("libftdi" ,libftdi)
-         ("libjaylink" ,libjaylink)
-         ("libusb-compat" ,libusb-compat)))
-      (arguments
-       '(#:configure-flags
-         (append (list "LIBS=-lutil"
-                       "--disable-werror"
-                       "--enable-sysfsgpio"
-                       "--disable-internal-jimtcl"
-                       "--disable-internal-libjaylink")
-                 (map (lambda (programmer)
-                        (string-append "--enable-" programmer))
-                      '("amtjtagaccel" "armjtagew" "buspirate" "ftdi"
-                        "gw16012" "jlink" "opendous" "osbdm"
-                        "parport" "aice" "cmsis-dap" "dummy" "jtag_vpi"
-                        "remote-bitbang" "rlink" "stlink" "ti-icdi" "ulink"
-                        "usbprog" "vsllink" "usb-blaster-2" "usb_blaster"
-                        "presto" "openjtag")))
-         #:phases
-         (modify-phases %standard-phases
-           (replace 'bootstrap
-             (lambda _
-               (patch-shebang "bootstrap")
-               (invoke "./bootstrap" "nosubmodule")))
-           (add-after 'autoreconf 'change-udev-group
-             (lambda _
-               (substitute* "contrib/60-openocd.rules"
-                 (("plugdev") "dialout"))
-               #t))
-           (add-after 'install 'install-udev-rules
-             (lambda* (#:key outputs #:allow-other-keys)
-               (install-file "contrib/60-openocd.rules"
-                             (string-append
-                              (assoc-ref outputs "out")
-                              "/lib/udev/rules.d/"))
-               #t)))))
-      (home-page "http://openocd.org")
-      (synopsis "On-Chip Debugger")
-      (description "OpenOCD provides on-chip programming and debugging support
+  (package
+    (name "openocd")
+    (version "0.11.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.code.sf.net/p/openocd/code")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "0qi4sixwvw1i7c64sy221fsjs82qf3asmdk86g74ds2jjm3f8pzp"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list autoconf
+           automake
+           libtool
+           base:which
+           pkg-config
+           texinfo))
+    (inputs
+     (list hidapi jimtcl libftdi libjaylink libusb-compat))
+    (arguments
+     '(#:configure-flags
+       (append (list "LIBS=-lutil"
+                     "--disable-werror"
+                     "--enable-sysfsgpio"
+                     "--disable-internal-jimtcl"
+                     "--disable-internal-libjaylink")
+               (map (lambda (programmer)
+                      (string-append "--enable-" programmer))
+                    '("amtjtagaccel" "armjtagew" "buspirate" "ftdi"
+                      "gw16012" "jlink" "opendous" "osbdm"
+                      "parport" "aice" "cmsis-dap" "dummy" "jtag_vpi"
+                      "remote-bitbang" "rlink" "stlink" "ti-icdi" "ulink"
+                      "usbprog" "vsllink" "usb-blaster-2" "usb_blaster"
+                      "presto" "openjtag" "rshim" "ft232r" "xds110"
+                      "cmsis-dap-v2" "nulink" "kitprog" "jtag_dpi"
+                      "bcm2835gpio" "imx_gpio" "ep93xx" "at91rm9200"
+                      "sysfsgpio" "xlnx-pcie-xvc")))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'bootstrap
+           (lambda _
+             ;; Make build reproducible.
+             (substitute* "src/Makefile.am"
+               (("-DPKGBLDDATE=") "-DDISABLED_PKGBLDDATE="))
+             (patch-shebang "bootstrap")
+             (invoke "./bootstrap" "nosubmodule")))
+         (add-after 'autoreconf 'change-udev-group
+           (lambda _
+             (substitute* "contrib/60-openocd.rules"
+               (("plugdev") "dialout"))
+             #t))
+         (add-after 'install 'install-udev-rules
+           (lambda* (#:key outputs #:allow-other-keys)
+             (install-file "contrib/60-openocd.rules"
+                           (string-append
+                            (assoc-ref outputs "out")
+                            "/lib/udev/rules.d/"))
+             #t)))))
+    (home-page "http://openocd.org")
+    (synopsis "On-Chip Debugger")
+    (description "OpenOCD provides on-chip programming and debugging support
 with a layered architecture of JTAG interface and TAP support.")
-      (license license:gpl2+))))
+    (license license:gpl2+)))
 
 ;; The commits for all propeller tools are the stable versions published at
 ;; https://github.com/propellerinc/propgcc in the release_1_0.  According to
@@ -698,8 +695,8 @@ with a layered architecture of JTAG interface and TAP support.")
                   (origin-patches (package-source gcc-6))
                   (search-patches "gcc-cross-environment-variables.patch")))))
       (native-inputs
-       `(("flex" ,flex)
-         ,@(package-native-inputs xgcc)))
+       (modify-inputs (package-native-inputs xgcc)
+         (prepend flex)))
       ;; All headers and cross libraries of the propeller toolchain are
       ;; installed under the "propeller-elf" prefix.
       (native-search-paths
@@ -807,9 +804,7 @@ with a layered architecture of JTAG interface and TAP support.")
              (lambda* (#:key make-flags #:allow-other-keys)
                (apply invoke "make" "install-includes" make-flags))))))
       (native-inputs
-       `(("propeller-gcc" ,propeller-gcc)
-         ("propeller-binutils" ,propeller-binutils)
-         ("perl" ,perl)))
+       (list propeller-gcc propeller-binutils perl))
       (home-page "https://github.com/parallaxinc/propgcc")
       (synopsis "C library for the Parallax Propeller")
       (description "This is a C library for the Parallax Propeller
@@ -901,8 +896,7 @@ code.")
              (lambda _ (chdir "loader") #t))
            (delete 'configure))))
       (native-inputs
-       `(("openspin" ,openspin)
-         ("propeller-toolchain" ,propeller-toolchain)))
+       (list openspin propeller-toolchain))
       (home-page "https://github.com/parallaxinc/propgcc")
       (synopsis "Loader for Parallax Propeller micro-controllers")
       (description "This package provides the tool @code{propeller-load} to
@@ -947,9 +941,7 @@ upload binaries to a Parallax Propeller micro-controller.")
                          '("testlex" "spin2cpp" "fastspin")))
              #t)))))
     (native-inputs
-     `(("bison" ,bison)
-       ("propeller-load" ,propeller-load)
-       ("propeller-toolchain" ,propeller-toolchain)))
+     (list bison propeller-load propeller-toolchain))
     (home-page "https://github.com/totalspectrum/spin2cpp")
     (synopsis "Convert Spin code to C, C++, or PASM code")
     (description "This is a set of tools for converting the Spin language for
@@ -1089,8 +1081,8 @@ the Raspberry Pi chip.")
                  (search-patches "gcc-6-fix-buffer-size.patch"
                                  "gcc-6-fix-isl-includes.patch"))))
       (native-inputs
-        `(("flex" ,flex)
-          ,@(package-native-inputs xgcc)))
+        (modify-inputs (package-native-inputs xgcc)
+          (prepend flex)))
       (synopsis "GCC for VC4")
       (description "This package provides @code{gcc} for VideoCore IV,
 the Raspberry Pi chip."))))
@@ -1111,12 +1103,9 @@ the Raspberry Pi chip."))))
             "1rypfb96k2szqgygp3jnwg2zq9kwmfz0460dsahn3r2vkzml8wn7"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libftdi" ,libftdi)
-       ("python" ,python)))
+     (list libftdi python))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("swig" ,swig)
-       ("which" ,base:which)))
+     (list pkg-config swig base:which))
     (arguments
      `(#:tests? #f ; No tests exist.
        #:parallel-build? #f  ; Would be buggy.
@@ -1256,7 +1245,7 @@ SPI, I2C, JTAG.")
              #t))
          (delete 'configure))))
     (inputs
-     `(("libx11" ,libx11)))
+     (list libx11))
     (synopsis "Freecalypso host tools")
     (description "This package provides some tools for debugging FreeCalypso phones and the FreeCalypso FCDEV3B dev board.
 
@@ -1350,6 +1339,36 @@ these identified regions.
     (home-page "https://www.freecalypso.org/")
     (license license:public-domain)))
 
+(define-public stcgal
+  (package
+    (name "stcgal")
+    (version "1.6")
+    (source (origin
+              ;; Neither the unit tests nor the "doc" subdirectory referred to
+              ;; by stcgal's setup.py is present in the source distribution on
+              ;; PyPI, so we fetch directly from the project's git repository
+              ;; instead.
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/grigorig/stcgal")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1d10qxyghz66zp7iqpm8q8rfv9jz9n609gxmfcav1lssmf1dlyk3"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-pyserial python-pyusb python-tqdm))
+    (native-inputs
+     ;; For tests.
+     (list python-pyyaml))
+    (home-page "https://github.com/grigorig/stcgal")
+    (synopsis "Programmer for STC 8051-compatible microcontrollers")
+    (description "stcgal is a command-line flash-programming tool for STC
+MCU's line of Intel 8051-compatible microcontrollers, including those in the
+STC89, STC90, STC10, STC11, STC12, STC15 and STC8 series.")
+    (license license:expat)))
+
 (define-public stlink
   (package
     (name "stlink")
@@ -1375,7 +1394,7 @@ these identified regions.
          (list (string-append "-DSTLINK_UDEV_RULES_DIR=" udev-rules)
                (string-append "-DSTLINK_MODPROBED_DIR=" modprobe)))))
     (inputs
-     `(("libusb" ,libusb)))
+     (list libusb))
     (synopsis "Programmer for STM32 Discovery boards")
     (description "This package provides a firmware programmer for the STM32
 Discovery boards.  It supports two versions of the chip: ST-LINK/V1 (on
@@ -1400,10 +1419,8 @@ raw USB commands.")
         (base32
          "0ql6ij1hrj2ir5wkxm96zgig5qwvfwa75w77wh2y13w6b9cqcr4b"))))
     (propagated-inputs
-     `(("python-colorama" ,python-colorama)
-       ("python-configobj" ,python-configobj)
-       ("python-pykwalify" ,python-pykwalify)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python-colorama python-configobj python-pykwalify
+           python-pyyaml))
     (build-system python-build-system)
     (home-page "https://github.com/zephyrproject-rtos/west")
     (synopsis "Zephyr RTOS Project meta-tool")
@@ -1443,7 +1460,7 @@ debugging them, and more.")
                                  config-destination)
                #t))))))
     (inputs
-     `(("mosquitto" ,mosquitto)))
+     (list mosquitto))
     (native-inputs
      `(("automake" ,automake)
        ("autoconf" ,autoconf)
@@ -1495,8 +1512,7 @@ handling communication with eBUS devices connected to a 2-wire bus system
               (string-append (assoc-ref outputs "out") "/share/man"))
              #t)))))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (home-page "http://mazsola.iit.uni-miskolc.hu/ucsim/")
     (synopsis "Simulators for various microcontroller families")
     (description "μCsim is a collection of software simulators for
@@ -1586,8 +1602,7 @@ families, plus many of their variants.")
                     (("from IPython.*") ""))))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-prettytable" ,python-prettytable)))
+     (list python-cryptography python-prettytable))
     (home-page "https://github.com/PSPReverse/psptool")
     (synopsis "Tool for dealing with AMD binary blobs")
     (description "PSPTool is a tool for dealing with AMD binary blobs")
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index c992ba5407..0a96b4827b 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -48,10 +48,11 @@
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autogen)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
-  #:use-module (gnu packages backup)
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -60,6 +61,7 @@
   #:use-module (gnu packages digest)
   #:use-module (gnu packages elf)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages fltk)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
@@ -102,6 +104,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python))
 
 (define-public vice
@@ -120,20 +123,20 @@
     (arguments
      `(#:configure-flags '("--disable-pdf-docs")))
     (native-inputs
-     `(("bison" ,bison)
-       ("dos2unix" ,dos2unix)
-       ("flex" ,flex)
-       ("glib" ,glib "bin")             ; for glib-genmarshal, etc.
-       ("pkg-config" ,pkg-config)))
+     (list bison
+           dos2unix
+           flex
+           `(,glib "bin") ; for glib-genmarshal, etc.
+           pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("glew" ,glew)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("pulseaudio" ,pulseaudio)
-       ("sdl" ,sdl)
-       ("sdl-image" ,sdl-image)
-       ("xa" ,xa)))
+     (list alsa-lib
+           glew
+           glib
+           gtk+
+           pulseaudio
+           sdl
+           sdl-image
+           xa))
     (home-page "https://vice-emu.sourceforge.io/")
     (synopsis "The versatile Commodore emulator")
     (description
@@ -200,12 +203,9 @@ SuperCPU.")
                       ("shaders" "share/blastem/shaders"))
                     args))))))
     (inputs
-     `(("glew" ,glew)
-       ("mesa" ,mesa)
-       ("sdl2" ,sdl2)
-       ("zlib" ,zlib)))
+     (list glew mesa sdl2 zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.retrodev.com/blastem/")
     (synopsis "Genesis/Mega Drive emulator")
     (description "Blastem is an emulator for the Sega Genesis/Mega Drive
@@ -233,14 +233,9 @@ console.")
      `(#:configure-flags '("--enable-wifi"
                            "--enable-openal")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("zlib" ,zlib)
-       ("sdl" ,sdl)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+-2)
-       ("glu" ,glu)))
+     (list zlib sdl glib gtk+-2 glu))
     (home-page "http://desmume.org/")
     (synopsis "Nintendo DS emulator")
     (description
@@ -320,39 +315,39 @@ console.")
        `(("pkg-config" ,pkg-config)
          ("gettext" ,gettext-minimal)))
       (inputs
-       `(("alsa-lib" ,alsa-lib)
-         ("ao" ,ao)
-         ("bluez" ,bluez)
-         ("curl" ,curl)
-         ("eudev" ,eudev)
-         ("ffmpeg" ,ffmpeg)
-         ("font-wqy-microhei" ,font-wqy-microhei)
-         ("freetype" ,freetype)
-         ("glew" ,glew)
-         ("glib" ,glib)
-         ("glu" ,glu)
-         ("gtk+" ,gtk+-2)
-         ("hidapi" ,hidapi)
-         ("libevdev" ,libevdev)
-         ("libpng" ,libpng)
-         ("libusb" ,libusb)
-         ("libx11" ,libx11)
-         ("libxi" ,libxi)
-         ("libxrandr" ,libxrandr)
-         ("lzo" ,lzo)
-         ("mbedtls-apache" ,mbedtls-apache)
-         ("mesa" ,mesa)
-         ("miniupnpc" ,miniupnpc)
-         ("openal" ,openal)
-         ("pugixml" ,pugixml)
-         ("pulseaudio" ,pulseaudio)
-         ("qtbase" ,qtbase-5)
-         ("sdl2" ,sdl2)
-         ("sfml" ,sfml)
-         ("soil" ,soil)
-         ("soundtouch" ,soundtouch)
-         ("vulkan-loader" ,vulkan-loader)
-         ("zlib" ,zlib)))
+       (list alsa-lib
+             ao
+             bluez
+             curl
+             eudev
+             ffmpeg
+             font-wqy-microhei
+             freetype
+             glew
+             glib
+             glu
+             gtk+-2
+             hidapi
+             libevdev
+             libpng
+             libusb
+             libx11
+             libxi
+             libxrandr
+             lzo
+             mbedtls-apache
+             mesa
+             miniupnpc
+             openal
+             pugixml
+             pulseaudio
+             qtbase-5
+             sdl2
+             sfml
+             soil
+             soundtouch
+             vulkan-loader
+             zlib))
       (home-page "https://dolphin-emu.org/")
       (synopsis "Nintendo Wii and GameCube emulator")
       (description
@@ -378,15 +373,14 @@ turbo speed, networked multiplayer, and graphical enhancements.")
                 "02i648i50dwicv1vaql15rccv4g8h5blf5g6inv67lrfxpbkvlf0"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (inputs
-     `(("sdl" ,sdl)
-       ("libpng" ,libpng)
-       ("zlib" ,zlib)
-       ("alsa-lib" ,alsa-lib)
-       ("glu" ,glu)
-       ("mesa" ,mesa)))
+     (list sdl
+           libpng
+           zlib
+           alsa-lib
+           glu
+           mesa))
     (home-page "https://www.dosbox.com")
     (synopsis "X86 emulator with CGA/EGA/VGA/etc. graphics and sound")
     (description "DOSBox is a DOS-emulator that uses the SDL library.  DOSBox
@@ -400,7 +394,7 @@ older games.")
   ;; This is not a patch staging area for DOSBox, but an unaffiliated fork.
   (package
     (name "dosbox-staging")
-    (version "0.76.0")
+    (version "0.77.1")
     (source
      (origin
        (method git-fetch)
@@ -409,34 +403,20 @@ older games.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "14zlkm9qmaq2x4zdiadczsxvdnrf35w13ccvkxzd8cwrzxv84fvd"))))
-    (build-system gnu-build-system)
+        (base32 "07jwmmm1bhfxavlhl854cj8l5iy5hqx5hpwkkjbcwqg7yh9jfs2x"))))
+    (build-system meson-build-system)
     (arguments
      `(#:configure-flags
-       (let* ((flags (list "-O3"
-                           ;; From scripts/automator/build/gcc-defaults.
-                           "-fstrict-aliasing"
-                           "-fno-signed-zeros"
-                           "-fno-trapping-math"
-                           "-fassociative-math"
-                           "-frename-registers"
-                           "-ffunction-sections"
-                           "-fdata-sections"))
-              (CFLAGS (string-join flags " ")))
-         ;; Several files #include <SDL_net.h> instead of <SDL2/SDL_net.h>,
-         ;; including configure.ac itself.
-         (list (string-append "CPPFLAGS=-I" (assoc-ref %build-inputs "sdl2")
-                              "/include/SDL2")
-               (string-append "CFLAGS=" CFLAGS)
-               (string-append "CXXFLAGS=-DNDEBUG " CFLAGS)))))
+       ;; These both try to git clone subprojects.
+       (list "-Dunit_tests=disabled"     ; gtest
+             "-Duse_mt32emu=false")))    ; mt32emu
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("fluidsynth" ,fluidsynth)
        ("libpng" ,libpng)
+       ("mesa" ,mesa)
        ("opusfile" ,opusfile)
        ("sdl2" ,(sdl-union (list sdl2 sdl2-net)))
        ("zlib" ,zlib)))
@@ -517,8 +497,7 @@ emulate a serial nullmodem over TCP/IP.")
                #t))))
        #:tests? #f))    ; test suite wants mips toolchain
     (inputs
-     `(("elfutils" ,elfutils)
-       ("qtbase" ,qtbase-5)))
+     (list elfutils qtbase-5))
     (home-page "https://github.com/cvut/QtMips")
     (synopsis "MIPS CPU emulator")
     (description "This package contains a MIPS CPU emulator.  The simulator
@@ -577,7 +556,7 @@ and a game metadata scraper.")
         (base32 "11rvm53c3p2f6zk8xbyv2j51xp8zmqnch7zravhj3fk590qrjrr2"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("ao" ,ao)
@@ -679,7 +658,7 @@ V2.")
         ;; "--with-external-mpcdec"
         "--with-external-lzo")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("alsa" ,alsa-lib)
        ("flac" ,flac)
@@ -726,7 +705,7 @@ The following systems are supported:
 (define-public mgba
   (package
     (name "mgba")
-    (version "0.9.2")
+    (version "0.9.3")
     (source
      (origin
        (method git-fetch)
@@ -735,7 +714,7 @@ The following systems are supported:
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "16kngkzf08jflqxwbgafb47091vqqb9pbhazg9cd94cy81ahz3q3"))
+        (base32 "1bg4ax5gjkr6d4cpzsgzv3bpa3i2c2b1ckwrjklqiy835b5ni6yi"))
        (modules '((guix build utils)))
        (snippet
         ;; Make sure we don't use the bundled software.
@@ -752,22 +731,21 @@ The following systems are supported:
        (list "-DUSE_LZMA=OFF"           ;do not use bundled LZMA
              "-DUSE_LIBZIP=OFF")))      ;use "zlib" instead
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (inputs
-     `(("ffmpeg" ,ffmpeg)
-       ("libedit" ,libedit)
-       ("libelf" ,libelf)
-       ("libepoxy" ,libepoxy)
-       ("libpng" ,libpng)
-       ("mesa" ,mesa)
-       ("minizip" ,minizip)
-       ("ncurses" ,ncurses)
-       ("qtbase" ,qtbase-5)
-       ("qtmultimedia" ,qtmultimedia)
-       ("sdl2" ,sdl2)
-       ("sqlite" ,sqlite)
-       ("zlib" ,zlib)))
+     (list ffmpeg
+           libedit
+           libelf
+           libepoxy
+           libpng
+           mesa
+           minizip
+           ncurses
+           qtbase-5
+           qtmultimedia
+           sdl2
+           sqlite
+           zlib))
     (home-page "https://mgba.io")
     (synopsis "Game Boy Advance emulator")
     (description
@@ -782,7 +760,7 @@ and Game Boy Color games.")
 (define-public sameboy
   (package
     (name "sameboy")
-    (version "0.14.4")
+    (version "0.14.7")
     (source
      (origin
        (method git-fetch)
@@ -791,13 +769,12 @@ and Game Boy Color games.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0zp11qm8b3cmx70pzczyh4vv4jyhlh4jnci8kn6b30c8lzl43g83"))))
+        (base32 "1r391jdh0gjnx8bwmr63dcdmq58lpm162mng2ncrx53ydbb13xxf"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("rgbds" ,rgbds)
-       ("pkg-config" ,pkg-config)))
+     (list rgbds pkg-config))
     (inputs
-     `(("sdl2" ,sdl2)))
+     (list sdl2))
     (arguments
      `(#:tests? #f                      ; There are no tests
        #:make-flags `(,(string-append "CC=" ,(cc-for-target))
@@ -816,8 +793,7 @@ and Game Boy Color games.")
                (with-directory-excursion "build/bin/SDL"
                  (install-file "sameboy" bin)
                  (delete-file "sameboy")
-                 (copy-recursively "." data))
-               #t))))))
+                 (copy-recursively "." data))))))))
     (home-page "https://sameboy.github.io/")
     (synopsis "Accurate Game Boy, Game Boy Color and Super Game Boy emulator")
     (description "SameBoy is a user friendly Game Boy, Game Boy Color
@@ -841,26 +817,26 @@ from an emulator---from save states to scaling filters.")
         (base32 "116fndl6652zrp1r6ag4xv3dzp1x52mlvadj8xwflq07fd5rhri1"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list pkg-config which))
     (inputs
-     `(("freetype" ,freetype)
-       ("glu" ,glu)
-       ("libpng" ,libpng)
-       ("mesa" ,mesa)
-       ("sdl2" ,sdl2)
-       ("zlib" ,zlib)))
+     (list freetype
+           glu
+           libpng
+           mesa
+           sdl2
+           zlib))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          ;; The mupen64plus build system has no configure phase.
-         (delete 'configure)
+         (replace 'configure
+           (lambda _
+             (substitute* "projects/unix/Makefile"
+               (("\\$\\(CFLAGS\\)")
+                "$(CFLAGS) -fcommon"))))
          ;; Makefile is in a subdirectory.
-         (add-before
-          'build 'chdir-to-project-directory
-          (lambda _
-            (chdir "projects/unix")
-            #t)))
+         (add-before 'build 'chdir-to-project-directory
+           (lambda _ (chdir "projects/unix"))))
        #:make-flags (let ((out (assoc-ref %outputs "out")))
                       (list "all" (string-append "PREFIX=" out)))
        ;; There are no tests.
@@ -890,11 +866,9 @@ core library.")
         (base32 "0z19amfg9vr2pqjjri1ipc7hs681fzjcnb0f9y7bjhp5n8d7p6bb"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list pkg-config which))
     (inputs
-     `(("mupen64plus-core" ,mupen64plus-core)
-       ("sdl2" ,sdl2)))
+     (list mupen64plus-core sdl2))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -936,10 +910,9 @@ SDL audio plugin.")
         (base32 "1dyazfbdjycdfslq8jixqiqhziw0rlkvach2r9dz91229jmkyc9c"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (inputs
-     `(("mupen64plus-core" ,mupen64plus-core)
-       ("sdl2" ,sdl2)))
+     (list mupen64plus-core sdl2))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -981,7 +954,7 @@ SDL input plugin.")
         (base32 "0pi31qzjjp7aypdvvnz6ms18g09c4gqzxi6328zj8sji94b75gf0"))))
     (build-system gnu-build-system)
     (inputs
-     `(("mupen64plus-core" ,mupen64plus-core)))
+     (list mupen64plus-core))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -1023,7 +996,7 @@ high-level emulation (HLE) RSP processor plugin.")
         (base32 "0nfyjns9k8xbg3aqs7593nfaxvlj72h3l8h467442xlk8ajfcylx"))))
     (build-system gnu-build-system)
     (inputs
-     `(("mupen64plus-core" ,mupen64plus-core)))
+     (list mupen64plus-core))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -1065,11 +1038,9 @@ Z64 RSP processor plugin.")
         (base32 "1v9fqwpb6pawr8z5cm2ki7bqkks4iyr5c4jy4v5khj6h8zcv55gc"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list pkg-config which))
     (inputs
-     `(("mesa" ,mesa)
-       ("mupen64plus-core" ,mupen64plus-core)))
+     (list mesa mupen64plus-core))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -1111,12 +1082,9 @@ Arachnoid video plugin.")
         (base32 "0qn5za7g7796kh2ag3xpmhbqg0yf71g9liz6ks0rha8pz73lgs01"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list pkg-config which))
     (inputs
-     `(("mesa" ,mesa)
-       ("mupen64plus-core" ,mupen64plus-core)
-       ("sdl2" ,sdl2)))
+     (list mesa mupen64plus-core sdl2))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -1165,15 +1133,14 @@ Glide64 video plugin.")
         (base32 "08pm28a36dpr0cvr8pzw0n5ksdazp7jqvlmqfy2lwb4dm0cwhkqd"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list pkg-config which))
     (inputs
-     `(("boost" ,boost)
-       ("libpng" ,libpng)
-       ("mesa" ,mesa)
-       ("mupen64plus-core" ,mupen64plus-core)
-       ("sdl2" ,sdl2)
-       ("zlib" ,zlib)))
+     (list boost
+           libpng
+           mesa
+           mupen64plus-core
+           sdl2
+           zlib))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -1215,13 +1182,9 @@ Glide64MK2 video plugin.")
         (base32 "0rpmbcq67gsj5h5jjis146378qc1mskskvx20y1ikx59yhbamh13"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list pkg-config which))
     (inputs
-     `(("libpng" ,libpng)
-       ("mesa" ,mesa)
-       ("mupen64plus-core" ,mupen64plus-core)
-       ("sdl2" ,sdl2)))
+     (list libpng mesa mupen64plus-core sdl2))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -1264,12 +1227,9 @@ Rice Video plugin.")
        (patches (search-patches "mupen64plus-video-z64-glew-correct-path.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list pkg-config which))
     (inputs
-     `(("glew" ,glew)
-       ("mupen64plus-core" ,mupen64plus-core)
-       ("sdl2" ,sdl2)))
+     (list glew mupen64plus-core sdl2))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -1319,10 +1279,9 @@ Z64 video plugin.")
        (patches (search-patches "mupen64plus-ui-console-notice.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list pkg-config which))
     (inputs
-     `(("sdl2" ,sdl2)))
+     (list sdl2))
     ;; Mupen64Plus supports a single data directory and a single plugin
     ;; directory in its configuration, yet we need data and plugin files from
     ;; a variety of packages.  The best way to deal with this is to install
@@ -1332,13 +1291,13 @@ Z64 video plugin.")
     ;; mupen64plus-ui-console-notice also gives users instructions on what
     ;; they need to do in order to point the configuration to their profile.
     (propagated-inputs
-     `(("mupen64plus-core" ,mupen64plus-core)
-       ("mupen64plus-audio-sdl" ,mupen64plus-audio-sdl)
-       ("mupen64plus-input-sdl" ,mupen64plus-input-sdl)
-       ("mupen64plus-rsp-hle" ,mupen64plus-rsp-hle)
-       ("mupen64plus-video-glide64" ,mupen64plus-video-glide64)
-       ("mupen64plus-video-glide64mk2" ,mupen64plus-video-glide64mk2)
-       ("mupen64plus-video-rice" ,mupen64plus-video-rice)))
+     (list mupen64plus-core
+           mupen64plus-audio-sdl
+           mupen64plus-input-sdl
+           mupen64plus-rsp-hle
+           mupen64plus-video-glide64
+           mupen64plus-video-glide64mk2
+           mupen64plus-video-rice))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -1371,7 +1330,7 @@ towards a working Mupen64Plus for casual users.")
 (define-public nestopia-ue
   (package
     (name "nestopia-ue")
-    (version "1.48")
+    (version "1.51.1")
     (source
      (origin
        (method git-fetch)
@@ -1380,36 +1339,21 @@ towards a working Mupen64Plus for casual users.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "19c8vx5yxbysl0sszk5blfngwacshdgwbf44g1qaxvq8ywiyxmb4"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; We don't need libretro for the GNU/Linux build.
-           (delete-file-recursively "libretro")
-           #t))))
-    (build-system cmake-build-system)
+        (base32 "1g19gz33jav00rwzkpcnynf5ps41vl64a9qx0xjd6lva4bgn8s57"))))
+    (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list autoconf autoconf-archive automake pkg-config))
     (inputs
-     `(("ao" ,ao)
-       ("gtk+" ,gtk+)
+     `(("fltk" ,fltk)
+       ("fontconfig", fontconfig)
        ("libarchive" ,libarchive)
        ("libepoxy" ,libepoxy)
+       ("libxft" ,libxft)
+       ("libxrender" ,libxrender)
        ("sdl2" ,sdl2)
        ("zlib" ,zlib)))
     (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         ;; This fixes the file chooser crash that happens with GTK 3.
-         (add-after 'install 'wrap-program
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (nestopia (string-append out "/bin/nestopia"))
-                    (gtk (assoc-ref inputs "gtk+"))
-                    (gtk-share (string-append gtk "/share")))
-               (wrap-program nestopia
-                 `("XDG_DATA_DIRS" ":" prefix (,gtk-share)))))))
-       ;; There are no tests.
+     '(;; There are no tests.
        #:tests? #f))
     (home-page "http://0ldsk00l.ca/nestopia/")
     (synopsis "Nintendo Entertainment System (NES/Famicom) emulator")
@@ -1458,7 +1402,7 @@ as RetroArch.")
 (define-public retroarch
   (package
     (name "retroarch")
-    (version "1.9.4")
+    (version "1.9.11")
     (source
      (origin
        (method git-fetch)
@@ -1467,7 +1411,7 @@ as RetroArch.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1wky28y52nsjmannks3y1hbjgw0dvqh85gxrllr98f9y7kvk1cvf"))
+        (base32 "0hd77kw1f655s40qcz1righdhd9czqyy40rf7gigdag1bkchdx6z"))
        (patches
         (search-patches "retroarch-LIBRETRO_DIRECTORY.patch"))))
     (build-system gnu-build-system)
@@ -1529,9 +1473,7 @@ as RetroArch.")
        ("wayland" ,wayland)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("wayland-protocols" ,wayland-protocols)
-       ("which" ,which)))
+     (list pkg-config wayland-protocols which))
     (native-search-paths
      (list (search-path-specification
             (variable "LIBRETRO_DIRECTORY")
@@ -1550,14 +1492,14 @@ multi-system game/emulator system.")
 (define-public scummvm
   (package
     (name "scummvm")
-    (version "2.2.0")
+    (version "2.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://downloads.scummvm.org/frs/scummvm/" version
                            "/scummvm-" version ".tar.xz"))
        (sha256
-        (base32 "11vknasm5dna2vqr6gk343qynh7nhsq3kf60zayarn1vb5z6as8l"))))
+        (base32 "08ynw1cmld41p4bwrw84gb1nv229va70i91qiqsjr3c2jnqy8zml"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                                 ;require "git"
@@ -1576,14 +1518,15 @@ multi-system game/emulator system.")
                (setenv "CONFIG_SHELL" bash)
                (apply invoke "./configure" flags)))))))
     (native-inputs
-     `(("nasm" ,nasm)
-       ("pkg-config" ,pkg-config)))
+     (list nasm pkg-config))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("faad2" ,faad2)
        ("fluidsynth" ,fluidsynth)
        ("freetype" ,freetype)
        ("fribidi" ,fribidi)
+       ("glew" ,glew)
+       ("giflib" ,giflib)
        ("liba52" ,liba52)
        ("libflac" ,flac)
        ("libjpeg-turbo" ,libjpeg-turbo)
@@ -1628,15 +1571,14 @@ play them on systems for which they were never designed!")
              (chdir (string-append "libticables2-" ,version))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("autogen" ,autogen)
-       ("automake" ,automake)
-       ("gettext" ,gnu-gettext)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf
+           autogen
+           automake
+           gnu-gettext
+           libtool
+           pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("libusb" ,libusb)))
+     (list glib libusb))
     (synopsis "Link cable library for TI calculators")
     (description
      "This package contains libticables, a library for operations on
@@ -1671,12 +1613,9 @@ This is a part of the TiLP project.")
              (chdir (string-append "libticonv-" ,version))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (synopsis "Character conversion library for TI calculators")
     (description
      "This package contains libticonv, a library to support working with
@@ -1709,15 +1648,9 @@ This is a part of the TiLP project.")
              (chdir (string-append "libtifiles2-" ,version))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gnu-gettext)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake gnu-gettext libtool pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("libarchive" ,libarchive)
-       ("libticonv" ,libticonv)))
+     (list glib libarchive libticonv))
     (synopsis "File functions library for TI calculators")
     (description
      "This package contains libticonv, a library to support working with
@@ -1750,17 +1683,9 @@ This is a part of the TiLP project.")
              (chdir (string-append "libticalcs2-" ,version))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gnu-gettext)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake gnu-gettext libtool pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("libarchive" ,libarchive)
-       ("libticables2" ,libticables2)
-       ("libticonv" ,libticonv)
-       ("libtifiles2" ,libtifiles2)))
+     (list glib libarchive libticables2 libticonv libtifiles2))
     (synopsis "Support library for TI calculators")
     (description
      "This project aims to develop a multi-platform linking program for use
@@ -1774,7 +1699,7 @@ This is a part of the TiLP project.")
 (define-public mame
   (package
     (name "mame")
-    (version "0.235")
+    (version "0.238")
     (source
      (origin
        (method git-fetch)
@@ -1783,7 +1708,7 @@ This is a part of the TiLP project.")
              (commit (apply string-append "mame" (string-split version #\.)))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1iz5p51am7gh19i0zx96vfpfpza8xvrz9f2pd908jsc4xpr36agd"))
+        (base32 "188h9a4lla0gimbss1bfvlidsm0l8smhqrhplv973k8j2jgf74fb"))
        (modules '((guix build utils)))
        (snippet
         ;; Remove bundled libraries.
@@ -1923,7 +1848,7 @@ This is a part of the TiLP project.")
        ("texinfo" ,texinfo)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
-       ("asio" ,asio-1.12)              ;the bundled copy is at 1.11
+       ("asio" ,asio)
        ("expat" ,expat)
        ("flac" ,flac)
        ("fontconfig" ,fontconfig)
@@ -2004,7 +1929,7 @@ functions.  The source code to MAME serves as this documentation.")
                (install-file "../source/data/tile/TILE.TXT" tile))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("mame" ,mame)
        ("gtk" ,gtk+)
@@ -2062,17 +1987,16 @@ emulator.")
                                     "/share/glib-2.0/schemas"))))
                #t)))))
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("intltool" ,intltool)
-         ("glib" ,glib "bin")))
+       (list pkg-config intltool
+             `(,glib "bin")))
       (inputs
-       `(("libcdio" ,libcdio)
-         ("sdl2" ,sdl2)
-         ("gtk+" ,gtk+)
-         ("ffmpeg" ,ffmpeg)
-         ("libxv" ,libxv)
-         ("libarchive" ,libarchive)
-         ("pulseaudio" ,pulseaudio)))
+       (list libcdio
+             sdl2
+             gtk+
+             ffmpeg
+             libxv
+             libarchive
+             pulseaudio))
       (home-page "https://archive.codeplex.com/?p=pcsxr")
       (synopsis "PlayStation emulator")
       (description
@@ -2104,8 +2028,7 @@ improvements.")
                (("GTK_CFLAGS=\"\\$GTK_CFLAGS .*\"") ""))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("nasm" ,nasm)))
+     (list pkg-config nasm))
     (inputs
      `(("sdl" ,sdl)
        ("gtk" ,gtk+-2)))
@@ -2142,7 +2065,7 @@ from various forks of Gens, and improved platform portability.")
        #:phases (modify-phases %standard-phases
                   (delete 'configure))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("ao" ,ao)
@@ -2360,8 +2283,7 @@ elseif(FALSE)"))
                (("unknown") ,version))))))
       (build-system cmake-build-system)
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("python" ,python)))
+       (list pkg-config python))
       (inputs
        `(("cityhash" ,cityhash)
          ;; ppsspp doesn't yet build with ffmpeg 4.4 (see:
@@ -2511,8 +2433,7 @@ system.")
                (install-file "exobasic" out-bin))
              #t)))))
     (native-inputs
-     `(("flex" ,flex)
-       ("bison" ,bison)))
+     (list flex bison))
     (synopsis "Compressor for use on Commodore home computers")
     (description "This program compresses files in a way that tries to be as
 efficient as possible but still allows them to be decompressed in environments
diff --git a/gnu/packages/enchant.scm b/gnu/packages/enchant.scm
index f32e59ef54..4b31c3131b 100644
--- a/gnu/packages/enchant.scm
+++ b/gnu/packages/enchant.scm
@@ -58,16 +58,16 @@
         (base32 "0wbb6dwmzlsyy224y0liis0azgzwbjdvcyzc31pw1aw6vbp36na6"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("catch" ,catch-framework2)
-       ("git" ,git-minimal)
-       ("perl" ,perl)
-       ;;FIX-ME: Building with ronn fails.
-       ;;("ronn" ,ronn)
-       ("pkg-config" ,pkg-config)))
+     (list catch-framework2
+           git-minimal
+           perl
+           ;;FIX-ME: Building with ronn fails.
+           ;;("ronn" ,ronn)
+           pkg-config))
     (inputs
-     `(("boost" ,boost)))
+     (list boost))
     (propagated-inputs
-     `(("icu4c" ,icu4c)))
+     (list icu4c))
     (synopsis "Fast and safe spellchecking C++ library")
     (description "Nuspell is a fast and safe spelling checker software
 program.  It is designed for languages with rich morphology and complex word
@@ -94,11 +94,10 @@ dictionaries.")
                            ;; Tests require a relocatable build.
                            "--enable-relocatable")))
     (inputs
-     `(("aspell" ,aspell)
-       ("hunspell" ,hunspell)))
+     (list aspell hunspell))
     (propagated-inputs
      ;; Required by enchant.pc.
-     `(("glib" ,glib)))
+     (list glib))
     (native-inputs
      `(("glib:bin" ,glib "bin")
        ("pkg-config" ,pkg-config)
@@ -157,7 +156,7 @@ working\".")
                                "    yield \"" (assoc-ref inputs "enchant")
                                "/lib/libenchant-2.so\""))))))))
     (inputs
-     `(("enchant" ,enchant)))
+     (list enchant))
     (home-page "https://github.com/pyenchant/pyenchant")
     (synopsis "Spellchecking library for Python")
     (description "PyEnchant is a spellchecking library for Python, based on the
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index b4b2e04eec..e0fe0f354f 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2016, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
@@ -24,6 +24,9 @@
 ;;; Copyright © 2021 qblade <qblade@protonmail.com>
 ;;; Copyright © 2021 Gerd Heber <gerd.heber@gmail.com>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -95,6 +98,7 @@
   #:use-module (gnu packages image-processing)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages libevent)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)               ;FIXME: for pcb
   #:use-module (gnu packages lisp)
   #:use-module (gnu packages m4)
@@ -127,6 +131,7 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages openkinect)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg))
 
 (define-public librecad
@@ -134,17 +139,18 @@
     (name "librecad")
     (version "2.2.0-rc2")
     (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/LibreCAD/LibreCAD/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/LibreCAD/LibreCAD")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0a7fzhxkkn2s3hkgqrw3s3wyspzfla3c5lgbsjyqzvlnrp3anxnm"))))
-    (build-system gnu-build-system)
+                "08cl4935c9vznz9qdw1zgd86rn7hl64zpfayxl07x21bhf53pn24"))))
+    (build-system qt-build-system)
     (arguments
-     '(#:phases
+     '(#:test-target "check"
+       #:phases
        (modify-phases %standard-phases
          ;; Without this patch boost complains that "make_array" is not a
          ;; member of "boost::serialization".
@@ -184,28 +190,11 @@
                (install-file "unix/librecad" bin)
                (mkdir-p share)
                (copy-recursively "unix/resources" share))
-             #t))
-         ;; Ensure that icons are found at runtime
-         (add-after 'install 'wrap-executable
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (qt '("qtbase" "qtsvg")))
-               (wrap-program (string-append out "/bin/librecad")
-                 `("QT_PLUGIN_PATH" ":" prefix
-                   ,(map (lambda (label)
-                           (string-append (assoc-ref inputs label)
-                                          "/lib/qt5/plugins/"))
-                         qt)))
-               #t))))))
+             #t)))))
     (inputs
-     `(("boost" ,boost)
-       ("muparser" ,muparser)
-       ("freetype" ,freetype)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+     (list boost muparser freetype qtbase-5 qtsvg))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list pkg-config which))
     (home-page "https://librecad.org/")
     (synopsis "Computer-aided design (CAD) application")
     (description
@@ -216,7 +205,7 @@ plans and designs.")
 (define-public geda-gaf
   (package
     (name "geda-gaf")
-    (version "1.10.0")
+    (version "1.10.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -225,7 +214,7 @@ plans and designs.")
                     version "/geda-gaf-" version ".tar.gz"))
               (sha256
                (base32
-                "06ivgarvwbzjz2wigxzzkm8iszldi2p6x3a6jnlczjyrz4csddsy"))))
+                "19688b0671imy2i3jphcnq1120b8ymhr4wz2psiqylr82ljanqp8"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -260,9 +249,7 @@ plans and designs.")
        ("pcb" ,pcb)
        ("python" ,python-2))) ; for xorn
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("desktop-file-utils" ,desktop-file-utils)
-       ("perl" ,perl))) ; for tests
+     (list groff pkg-config desktop-file-utils perl)) ; for tests
     (home-page "http://geda-project.org/")
     (synopsis "Schematic capture, netlister, symbols, symbol checker, and utils")
     (description
@@ -323,7 +310,8 @@ utilities.")
                (string-append "--with-pcb-datadir=" pcb "/share")
                (string-append "--with-pcb-lib-path="
                               pcb "/share/pcb/pcblib-newlib:"
-                              pcb "/share/pcb/newlib")))
+                              pcb "/share/pcb/newlib")
+               "CFLAGS=-fcommon"))
        #:phases
        (modify-phases %standard-phases
          (add-before 'build 'fix-dynamic-link
@@ -740,6 +728,8 @@ ready for production.")
                (base32
                 "1d2k43k7i4yvbpi4sw1263a8d0q98z2n7aqhmpinpkih8a681vn5"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("CFLAGS=-fcommon")))
     (native-inputs
      `(("glib:bin" ,glib "bin")         ; for glib-compile-schemas, etc.
        ("desktop-file-utils" ,desktop-file-utils)
@@ -828,13 +818,9 @@ fonts to gEDA.")
                (substitute* "CMakeLists.txt" (("-march=native") ""))
                #t)))))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (inputs
-       `(("boost" ,boost)
-         ("libpng" ,libpng)
-         ("qtbase" ,qtbase-5)
-         ("eigen" ,eigen)
-         ("guile" ,guile-3.0)))
+       (list boost libpng qtbase-5 eigen guile-3.0))
       (home-page "https://libfive.com")
       (synopsis "Tool for programmatic computer-aided design")
       (description
@@ -881,12 +867,9 @@ language.")
                                  "/lib/libfive-guile")))
                #t)))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)))
+       (list autoconf automake pkg-config))
       (inputs
-       `(("mesa" ,mesa)
-         ("guile" ,guile-3.0)))
+       (list mesa guile-3.0))
       (propagated-inputs
        `(("libfive" ,libfive)
          ("guile-opengl" ,guile3.0-opengl)))
@@ -901,7 +884,7 @@ Emacs).")
 (define-public kicad
   (package
     (name "kicad")
-    (version "5.1.6")
+    (version "5.1.10")
     (source
      (origin
        (method git-fetch)
@@ -909,7 +892,7 @@ Emacs).")
              (url "https://gitlab.com/kicad/code/kicad.git")
              (commit version)))
        (sha256
-        (base32 "1pa3z0h0679jmgxlzc833h6q85b5paxdp69kf2h93vkaryj58622"))
+        (base32 "10ix560bqy0lprnik1bprxw9ix4g8w2ipvyikx551ak9ryvgwjcc"))
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments
@@ -1000,7 +983,7 @@ Emacs).")
        ("python" ,python-wrapper)
        ("wxwidgets" ,wxwidgets)
        ("wxpython" ,python-wxpython)))
-    (home-page "https://kicad-pcb.org/")
+    (home-page "https://www.kicad.org/")
     (synopsis "Electronics Design Automation Suite")
     (description "Kicad is a program for the formation of printed circuit
 boards and electrical circuits.  The software has a number of programs that
@@ -1020,7 +1003,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0qryi8xjm23ka363zfl7bbga0v5c31fr3d4nyxp3m168vkv9zhha"))))
+                "0y51l0r62cnxkvpc21732p3cx7pjvaqjih8193502hlv9kv1j9p6"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -1035,13 +1018,10 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
 translations for KiCad.")
     (license license:gpl3+)))
 
-(define-public kicad-i18l
-  (deprecated-package "kicad-i18l" kicad-i18n))
-
 (define-public kicad-doc
   (package
     (name "kicad-doc")
-    (version "5.1.6")
+    (version (package-version kicad))
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1050,7 +1030,7 @@ translations for KiCad.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "03kvss8a0xrjnfvkwymm0vfd7rn9ix7i926xdzz9jg9iycrjfj3g"))))
+                "005ljkb7liayvyj4vxd5ncrknfbhnk6xvyjk43qz810hrp1fv0hk"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags (list "-DBUILD_FORMATS=html")
@@ -1079,12 +1059,12 @@ translations for KiCad.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/KiCad/kicad-symbols")
+                    (url "https://gitlab.com/kicad/libraries/kicad-symbols.git")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "12w3rdy085drlikkpb27n9ni7cyg9l0pqy7hnr86cxjcw3l5wcx6"))))
+                "0n25rq32jwyigfw26faqraillwv6zbi2ywy26dkz5zqlf5xp56ad"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ; no tests exist
@@ -1108,12 +1088,12 @@ libraries.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/KiCad/kicad-footprints")
+                    (url "https://gitlab.com/kicad/libraries/kicad-footprints.git")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1kmf91a5mmvj9izrv40mkaw1w36yjgn8daczd9rq2wlmd0rdp1zx"))))
+                "0gyqxryda273hjn2rv8dha461j9bjh054y5dlpiw1wiha65lrf9i"))))
     (synopsis "Official KiCad footprint libraries")
     (description "This package contains the official KiCad footprint libraries.")))
 
@@ -1125,12 +1105,12 @@ libraries.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/KiCad/kicad-packages3d")
+                    (url "https://gitlab.com/kicad/libraries/kicad-packages3D.git")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0b9jglf77fy0n0r8xs4yqkv6zvipyfvp0z5dnqlzp32csy5aqpi1"))))
+                "1szcin52fcsyb55bj7xq7lz6ig187dpz3lk7blwab7b9c4dn3c3y"))))
     (synopsis "Official KiCad 3D model libraries")
     (description "This package contains the official KiCad 3D model libraries.")))
 
@@ -1142,12 +1122,12 @@ libraries.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/KiCad/kicad-templates")
+                    (url "https://gitlab.com/kicad/libraries/kicad-templates.git")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1hppcsrkn4dk6ggby6ckh0q65qxkywrbyxa4lwpaf7pxjyv498xg"))))
+                "1a8xfcbdbb4ylrb5m7n2jjk9kwvgmlx1pmnn2cwj327a2b3m4jjs"))))
     (synopsis "Official KiCad project and worksheet templates")
     (description "This package contains the official KiCad project and
 worksheet templates.")))
@@ -1165,6 +1145,8 @@ worksheet templates.")))
                (base32
                 "13qj7n9826qc9shkkgd1p6vcpj78v4h9d67wbg45prg7rbnzkzds"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("CFLAGS=-fcommon")))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("gtk" ,gtk+-2)
@@ -1176,6 +1158,44 @@ educational use.  As such, there is an emphasis on capabilities that improve
 the 'showing the effect of'-style of operation.")
     (license license:gpl2+)))
 
+(define-public valeronoi
+(package
+  (name "valeronoi")
+  (version "0.1.6")
+  (source
+   (origin
+     (method git-fetch)
+     (uri
+      (git-reference
+       (url "https://github.com/ccoors/Valeronoi")
+       (commit (string-append "v" version))))
+     (file-name (git-file-name name version))
+     (sha256
+      (base32 "1hpyh4mmjnxgkij7a6rynk2ril5413nkdvf8syn0lqvrmibdg7wv"))))
+  (build-system cmake-build-system)
+  (arguments
+   `(#:phases
+     (modify-phases %standard-phases
+       (replace 'check
+         (lambda* (#:key tests? #:allow-other-keys)
+           (when tests?
+             (invoke "./valeronoi-tests")))))))
+  (inputs
+   (list boost
+         cgal
+         gmp
+         libxkbcommon
+         mpfr
+         openssl
+         qtbase-5
+         qtsvg))
+  (home-page "https://github.com/ccoors/Valeronoi")
+  (synopsis "WiFi mapping companion application for Valetudo")
+  (description
+   "Valeronoi (Valetudo + Voronoi) is a companion for Valetudo for generating
+WiFi signal strength maps.  It visualizes them using a Voronoi diagram.")
+  (license license:gpl3+)))
+
 (define-public volk
   (package
     (name "volk")
@@ -1254,7 +1274,7 @@ use on a given system.")
        ("python" ,python-wrapper)
        ("python-libxml2" ,python-libxml2)))
     (inputs
-     `(("pcre2" ,pcre2)))
+     (list pcre2))
     (home-page "https://www.gnu.org/software/libredwg/")
     (synopsis "C library to handle DWG (CAD-related) files")
     (description
@@ -1299,7 +1319,7 @@ replacement for the OpenDWG libraries.")
        ("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (home-page "https://salsa.debian.org/minicom-team/minicom")
     (synopsis "Serial terminal emulator")
     (description "@code{minicom} is a serial terminal emulator.")
@@ -1362,7 +1382,7 @@ send break and throttle transmission speed.")
     (native-inputs
      `(("fortran" ,gfortran)))
     (inputs
-     `(("lapack" ,lapack)))
+     (list lapack))
     (home-page "https://github.com/stevengj/harminv")
     (synopsis "Harmonic inversion solver")
     (description
@@ -1391,7 +1411,7 @@ determines the frequencies, decay constants, amplitudes, and phases of those sin
     (native-inputs
      `(("fortran" ,gfortran)))
     (inputs
-     `(("guile" ,guile-2.2)))
+     (list guile-2.2))
     (home-page "http://ab-initio.mit.edu/wiki/index.php/Libctl")
     (synopsis "Flexible control files implementation for scientific simulations")
     (description
@@ -1496,13 +1516,13 @@ developed at MIT to model electromagnetic systems.")
                 "0i37c9k6q1iglmzp9736rrgsnx7sw8xn3djqbbjw29zsyl3pf62c"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("bison" ,bison)
-       ("flex" ,flex)
-       ("libtool" ,libtool)
-       ("perl" ,perl)
-       ("perl-xml-libxml" ,perl-xml-libxml)))
+     (list autoconf
+           automake
+           bison
+           flex
+           libtool
+           perl
+           perl-xml-libxml))
     (home-page "https://github.com/Qucs/ADMS")
     (synopsis "Automatic device model synthesizer")
     (description
@@ -1555,7 +1575,7 @@ bindings for Python, Java, OCaml and more.")
     (inherit capstone)
     (name "python-capstone")
     (propagated-inputs
-     `(("capstone" ,capstone)))
+     (list capstone))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1591,9 +1611,7 @@ bindings for Python, Java, OCaml and more.")
     (arguments
      `(#:tests? #f))                    ;XXX: require python-reedsolo
     (propagated-inputs
-     `(("python-ecdsa" ,python-ecdsa)
-       ("python-pyaes" ,python-pyaes)
-       ("python-pyserial" ,python-pyserial)))
+     (list python-ecdsa python-pyaes python-pyserial))
     (home-page "https://github.com/espressif/esptool")
     (synopsis "Bootloader utility for Espressif ESP8266 & ESP32 chips")
     (description
@@ -1634,15 +1652,12 @@ bootloader in Espressif ESP8266 & ESP32 series chips.")
        (list "CC=gcc")))
     ;; TODO: Add gmp and libzip and make the build system actually find them.
     (inputs
-     `(("capstone" ,capstone)
-       ("libuv" ,libuv)
-       ("openssl" ,openssl)
-       ("zip" ,zip)))
+     (list capstone libuv openssl zip))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
      ;; In the Libs: section of r_hash.pc.
-     `(("xxhash" ,xxhash)))
+     (list xxhash))
     (home-page "https://radare.org/")
     (synopsis "Reverse engineering framework")
     (description
@@ -1701,7 +1716,7 @@ it suitable for security research and analysis.")
     (native-inputs
      `(("mpi" ,openmpi)))
     (inputs
-     `(("coreutils-minimal" ,coreutils-minimal)))
+     (list coreutils-minimal))
     (home-page "http://asco.sourceforge.net/")
     (synopsis "SPICE circuit optimizer")
     (description
@@ -1715,7 +1730,7 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
   ;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27344#236>.
   (package
     (name "libngspice")
-    (version "34")
+    (version "35")
     (source
      (origin
        (method url-fetch)
@@ -1726,7 +1741,7 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
                             "old-releases/" version
                             "/ngspice-" version ".tar.gz")))
        (sha256
-        (base32 "1dfpkgkwmgwhq8dnbb8dh28cfap6rw0yywkhmxr4jxclcvygyqr2"))))
+        (base32 "1v3ra9p2sc6ash1bbjm6i4i3dd6ymxjgnyha7z5rlmyvfv1gbdy1"))))
     (build-system gnu-build-system)
     (arguments
      `(;; No tests for libngspice exist.
@@ -1743,16 +1758,11 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
              (substitute* "man/man1/Makefile.in"
                (("^man_MANS = ngspice\\.1 ngnutmeg\\.1 ngsconvert\\.1 ngmultidec\\.1")
                 "man_MANS = "))))
-         (add-after 'install 'delete-scripts-and-config
+         (add-after 'install 'delete-scripts
            (lambda* (#:key outputs #:allow-other-keys)
              (delete-file-recursively
               (string-append (assoc-ref outputs "out")
-                             "/share/ngspice/scripts"))
-             ;; This file is autogenerated by the configure script and should
-             ;; not be distributed.  It could be removed in ngspice 35.  See
-             ;; https://bugs.archlinux.org/task/70569 for reference.
-             (delete-file (string-append (assoc-ref outputs "out")
-                                         "/include/config.h")))))
+                             "/share/ngspice/scripts")))))
        #:configure-flags
        (list "--enable-openmp"
              "--enable-ciderlib"
@@ -1762,8 +1772,7 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
              ;; https://bugs.archlinux.org/task/70563 for reference.
              "--with-readline=no")))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (inputs
      `(("libxaw" ,libxaw)
        ("mpi" ,openmpi)))
@@ -1797,8 +1806,7 @@ an embedded event driven algorithm.")
            (delete 'delete-program-manuals)
            (delete 'delete-script-files)))))
     (inputs
-     `(("libngspice" ,libngspice)
-       ("readline" ,readline)))))
+     (list libngspice readline))))
 
 (define trilinos-serial-xyce
   ;; Note: This is a Trilinos containing only the packages Xyce needs, so we
@@ -2029,12 +2037,12 @@ parallel computing platforms.  It also supports serial execution.")
                  `("PKG_CONFIG_PATH" ":" prefix (,(string-append out "/lib/pkgconfig")))))
              #t)))))
     (inputs
-     `(("coreutils" ,coreutils)
-       ("gcc-toolchain" ,gcc-toolchain)
-       ("guile" ,guile-2.2)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("libtool" ,libtool)))
+     (list coreutils
+           gcc-toolchain
+           guile-2.2
+           perl
+           pkg-config
+           libtool))
     (native-inputs
      `(("pkg-config-native" ,pkg-config)
        ("libtool-native" ,libtool)))
@@ -2049,22 +2057,20 @@ parallel computing platforms.  It also supports serial execution.")
 (define-public librepcb
   (package
     (name "librepcb")
-    (version "0.1.4")
+    (version "0.1.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.librepcb.org/releases/"
                            version "/librepcb-" version "-source.zip"))
        (sha256
-        (base32 "1b5dkanz3q0y5ag80w0l85hn7axrachb5m9zvyv4zvzrfy09wa88"))))
+        (base32 "0smp1p7wnrj0vh4rmz1cr2krfawc2lzx0pbzmgyay7xdp6jxympr"))))
     (build-system gnu-build-system)
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("zlib" ,zlib)))
+     (list qtbase-5 qtsvg zlib))
     (native-inputs
-     `(("qttools" ,qttools)             ; for lrelease
-       ("unzip" ,unzip)))
+     (list qttools ; for lrelease
+           unzip))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2133,7 +2139,7 @@ printers.")
          "16m09xa685qhj5fqq3bcgakrwnb74xhf5f7rpqkkf9fg8plzbb1g"))))
     (build-system gnu-build-system)
     (inputs
-     `(("readline" ,readline)))
+     (list readline))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2218,14 +2224,14 @@ simulation.")
                        (string-append "PREFIX=" out)
                        "./src/Cutter.pro")))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("openssl" ,openssl)
-       ;; Depends on radare2 4.5.1 officially, builds and works fine with
-       ;; radare2 5.0.0 but fails to build with radare2 5.1.1.
-       ("radare2" ,radare2-for-cutter)))
+     (list qtbase-5
+           qtsvg
+           openssl
+           ;; Depends on radare2 4.5.1 officially, builds and works fine with
+           ;; radare2 5.0.0 but fails to build with radare2 5.1.1.
+           radare2-for-cutter))
     (home-page "https://github.com/radareorg/cutter")
     (synopsis "GUI for radare2 reverse engineering framework")
     (description "Cutter is a GUI for radare2 reverse engineering framework.
@@ -2255,8 +2261,7 @@ engineers for reverse engineers.")
                                "-DUSE_INCLUDED_GTEST=0"
                                "-DUSE_INCLUDED_SSL=0")))
     (native-inputs
-     `(("googletest" ,googletest)
-       ("pkg-config" ,pkg-config)))
+     (list googletest pkg-config))
     (inputs
      `(("libuuid" ,util-linux "lib")
        ("libzip" ,libzip)
@@ -2384,88 +2389,93 @@ comments.")))
     (name "freecad")
     (version "0.19.2")
     (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/FreeCAD/FreeCAD")
-               (commit version)))
-        (file-name (git-file-name name version))
-        (sha256
-          (base32 "0fhjv0x3dix1c7jml91yx63z9xifjlbhjbcdb73lw80smpxrq7mm"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/FreeCAD/FreeCAD")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0fhjv0x3dix1c7jml91yx63z9xifjlbhjbcdb73lw80smpxrq7mm"))
+       (patches (search-patches "freecad-vtk9.patch"
+                                "freecad-boost-serialization.patch"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("graphviz" ,graphviz)
-       ("qttools" ,qttools)
-       ("pkg-config" ,pkg-config)
-       ("python-pyside-2-tools" ,python-pyside-2-tools)
-       ("swig" ,swig)))
+     (list doxygen
+           graphviz
+           qttools
+           pkg-config
+           python-pyside-2-tools
+           swig))
     (inputs
-     `(("boost" ,boost)
-       ("coin3D" ,coin3D)
-       ("double-conversion" ,double-conversion)
-       ("eigen" ,eigen)
-       ("freetype" ,freetype)
-       ("gl2ps" ,gl2ps)
-       ("glew" ,glew)
-       ("hdf5" ,hdf5-1.10)
-       ("jsoncpp" ,jsoncpp)
-       ("libarea" ,libarea)
-       ("libjpeg-turbo" ,libjpeg-turbo)
-       ("libmedfile" ,libmedfile)
-       ("libspnav" ,libspnav)
-       ("libtheora" ,libtheora)
-       ("libtiff" ,libtiff)
-       ("libxi" ,libxi)
-       ("libxml++" ,libxml++)
-       ("libxmu" ,libxmu)
-       ("lz4" ,lz4)
-       ("netcdf" ,netcdf)
-       ("opencascade-occt" ,opencascade-occt)
-       ("openmpi" ,openmpi)
-       ("proj" ,proj)
-       ("python-gitpython" ,python-gitpython)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-pivy" ,python-pivy)
-       ("python-pyside-2" ,python-pyside-2)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-shiboken-2" ,python-shiboken-2)
-       ("python-wrapper" ,python-wrapper)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtwebkit" ,qtwebkit)
-       ("qtx11extras" ,qtx11extras)
-       ("qtxmlpatterns" ,qtxmlpatterns)
-       ("sqlite" ,sqlite)
-       ("tbb" ,tbb)
-       ("vtk" ,vtk-8)
-       ("xerces-c" ,xerces-c)
-       ("zlib" ,zlib)))
+     (list boost
+           coin3D
+           double-conversion
+           eigen
+           freetype
+           gl2ps
+           glew
+           hdf5-1.10
+           jsoncpp
+           libarea
+           libjpeg-turbo
+           libmedfile
+           libspnav
+           libtheora
+           libtiff
+           libxi
+           libxml++
+           libxmu
+           lz4
+           netcdf
+           opencascade-occt
+           openmpi
+           proj
+           python-gitpython
+           python-matplotlib
+           python-pivy
+           python-pyside-2
+           python-pyyaml
+           python-shiboken-2
+           python-wrapper
+           qtbase-5
+           qtsvg
+           qtwebkit
+           qtx11extras
+           qtxmlpatterns
+           sqlite
+           tbb
+           vtk
+           xerces-c
+           zlib))
     (arguments
      `(#:tests? #f          ; Project has no tests
        #:configure-flags
-       (list
-        "-DBUILD_QT5=ON"
-        "-DBUILD_FLAT_MESH:BOOL=ON"
-        (string-append "-DCMAKE_INSTALL_LIBDIR=" (assoc-ref %outputs "out") "/lib")
-        (string-append "-DPYSIDE2UICBINARY="
-                       (assoc-ref %build-inputs "python-pyside-2-tools")
-                       "/bin/uic")
-        (string-append "-DPYSIDE2RCCBINARY="
-                       (assoc-ref %build-inputs "python-pyside-2-tools")
-                       "/bin/rcc")
-        "-DPYSIDE_LIBRARY=PySide2::pyside2"
-        (string-append
-         "-DPYSIDE_INCLUDE_DIR="
-         (assoc-ref %build-inputs "python-pyside-2") "/include;"
-         (assoc-ref %build-inputs "python-pyside-2") "/include/PySide2;"
-         (assoc-ref %build-inputs "python-pyside-2") "/include/PySide2/QtCore;"
-         (assoc-ref %build-inputs "python-pyside-2") "/include/PySide2/QtWidgets;"
-         (assoc-ref %build-inputs "python-pyside-2") "/include/PySide2/QtGui;")
-        "-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
-        (string-append "-DSHIBOKEN_INCLUDE_DIR="
-                       (assoc-ref %build-inputs "python-shiboken-2")
-                       "/include/shiboken2"))
+       ,#~(list
+           "-DBUILD_QT5=ON"
+           "-DBUILD_FLAT_MESH:BOOL=ON"
+           "-DBUILD_ENABLE_CXX_STD:STRING=C++17"
+           (string-append "-DCMAKE_INSTALL_LIBDIR=" #$output "/lib")
+           (string-append "-DPYSIDE2UICBINARY="
+                          #$(this-package-native-input
+                             "python-pyside-2-tools")
+                          "/bin/uic")
+           (string-append "-DPYSIDE2RCCBINARY="
+                          #$(this-package-native-input
+                             "python-pyside-2-tools")
+                          "/bin/rcc")
+           "-DPYSIDE_LIBRARY=PySide2::pyside2"
+           (string-append
+            "-DPYSIDE_INCLUDE_DIR="
+            #$(this-package-input "python-pyside-2") "/include;"
+            #$(this-package-input "python-pyside-2") "/include/PySide2;"
+            #$(this-package-input "python-pyside-2") "/include/PySide2/QtCore;"
+            #$(this-package-input "python-pyside-2") "/include/PySide2/QtWidgets;"
+            #$(this-package-input "python-pyside-2") "/include/PySide2/QtGui;")
+           "-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
+           (string-append "-DSHIBOKEN_INCLUDE_DIR="
+                          #$(this-package-input "python-shiboken-2")
+                          "/include/shiboken2"))
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'restore-pythonpath
@@ -2476,8 +2486,8 @@ comments.")))
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (wrap-program (string-append out "/bin/FreeCAD")
-                 (list "PYTHONPATH"
-                       'prefix (list (getenv "PYTHONPATH"))))))))))
+                 (list "GUIX_PYTHONPATH"
+                       'prefix (list (getenv "GUIX_PYTHONPATH"))))))))))
     (home-page "https://www.freecadweb.org/")
     (synopsis "Your Own 3D Parametric Modeler")
     (description
@@ -2508,7 +2518,7 @@ customization.")
         (base32
          "017h9p0x533fm4gn6pwc8kmp72rvqmcn6vznx72nkkl2b05yjx54"))))
     (build-system cmake-build-system)
-    (inputs `(("hdf5" ,hdf5-1.10)))
+    (inputs (list hdf5-1.10))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2554,8 +2564,7 @@ interpolation toolkit.")
          (sha256
           (base32 "0pvqz6cabxqdz5y26wnj6alkn8v5d7gkx0d3h8xmg4lvy9r3kh3g"))))
       (build-system gnu-build-system)
-      (inputs `(("boost" ,boost)
-                ("python-wrapper" ,python-wrapper)))
+      (inputs (list boost python-wrapper))
       (native-inputs
        `(("cmake" ,cmake-minimal)))
       (arguments
@@ -2597,7 +2606,7 @@ operations.")
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)))
+     (list libx11))
     (arguments `(#:tests? #f))
     (home-page "http://spacenav.sourceforge.net/")
     (synopsis
@@ -2635,7 +2644,7 @@ official SDK.")
           (base32 "01wb70m48xh5gwhv60a5brv4sxl0i0rh038w32cgnlxn5x86s9f1"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (inputs
        `(("mesa" ,mesa)
          ("glu" ,glu)
@@ -2688,7 +2697,7 @@ accessible through a simple API")
         (base32 "1qr9arfdkjf7q11xhvxwzmhxqz3nhcjkyb8zzfjpz9jm54q0rc7m"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://code.google.com/archive/p/lib3ds")
     (synopsis "3DS format file toolkit")
     (description "Lib3ds is a toolkit for handling the 3DS format for 3D
@@ -2711,22 +2720,22 @@ export filters.")
                (base32 "1cgx24wxh2ah5pff51rcrk6x8qcdjpkxcdak7s4cfzmxvjlshydd"))))
     (build-system cmake-build-system)
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtscript" ,qtscript)
-       ("qtxmlpatterns" ,qtxmlpatterns)
-       ("mesa" ,mesa)
-       ("glu" ,glu)
-       ("glew" ,glew)
-       ("muparser" ,muparser)
-       ("gmp" ,gmp)
-       ("eigen" ,eigen)
-       ("libfreenect" ,libfreenect)
-       ("lib3ds" ,lib3ds)
-       ("openctm" ,openctm)
-       ;; FIXME: Compilation fails with system qhull:
-       ;; https://github.com/cnr-isti-vclab/meshlab/issues/678
-       ;; ("qhull" ,qhull)
-       ))
+     (list qtbase-5
+           qtscript
+           qtxmlpatterns
+           mesa
+           glu
+           glew
+           muparser
+           gmp
+           eigen
+           libfreenect
+           lib3ds
+           openctm
+           ;; FIXME: Compilation fails with system qhull:
+           ;; https://github.com/cnr-isti-vclab/meshlab/issues/678
+           ;; ("qhull" ,qhull)
+           ))
     (arguments
      `(#:tests? #f                                ; Has no tests
        #:phases
@@ -2756,40 +2765,70 @@ GUI.")
 (define-public poke
   (package
     (name "poke")
-    (version "1.3")
+    (version "1.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/poke/poke-" version
                                   ".tar.gz"))
               (sha256
-               (base32
-                "06qgry1pal2vampmbmc1lzlhf1qnjkd8py781r5h020v981n6y5s"))))
+               (base32 "095a0qal1fwnqxnal0xb4mp0n4zy97j3ww1j04ij3jb0jpr4s1ff"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Delete files generated by Bison.
+                  (delete-file "gl/parse-datetime.c")
+                  (delete-file "gl/parse-datetime-gen.h")
+                  (delete-file "jitter/example-vms/structured/structured-parser.c")
+                  (delete-file "jitter/example-vms/structured/structured-parser.h")
+                  (delete-file "jitter/jitterc/jitterc-parser.c")
+                  (delete-file "jitter/jitterc/jitterc-parser.h")
+                  (delete-file "jitter/jitter/jitter-routine-parser.c")
+                  (delete-file "jitter/jitter/jitter-routine-parser.h")
+                  (delete-file "libpoke/pkl-tab.c")
+                  (delete-file "libpoke/pkl-tab.h")
+                  (delete-file "poke/pk-map-tab.c")
+                  (delete-file "poke/pk-map-tab.h")
+                  ;; Delete files generated by flex.
+                  (delete-file "jitter/example-vms/structured/structured-scanner.c")
+                  (delete-file "jitter/example-vms/structured/structured-scanner.h")
+                  (delete-file "jitter/jitterc/jitterc-scanner.c")
+                  (delete-file "jitter/jitterc/jitterc-scanner.h")
+                  (delete-file "jitter/jitter/jitter-routine-scanner.c")
+                  (delete-file "jitter/jitter/jitter-routine-scanner.h")
+                  (delete-file "libpoke/pkl-lex.c")
+                  (delete-file "libpoke/pkl-lex.h")
+                  (delete-file "poke/pk-map-lex.c")
+                  (delete-file "poke/pk-map-lex.h")
+                  ;; Other generated files:
+                  (delete-file "jitter/example-vms/jitterlisp/jitterlispvm-vm1.c")
+                  (delete-file "jitter/example-vms/jitterlisp/jitterlispvm-vm2.c")
+                  (delete-file "jitter/example-vms/jitterlisp/jitterlispvm-vm.h")
+                  (delete-file "jitter/example-vms/structured/structuredvm-vm1.c")
+                  (delete-file "jitter/example-vms/structured/structuredvm-vm2.c")
+                  (delete-file "jitter/example-vms/structured/structuredvm-vm.h")
+                  (delete-file "jitter/example-vms/structured/structuredvm-vm-main.c")
+                  (delete-file "jitter/example-vms/uninspired/uninspired-vm1.c")
+                  (delete-file "jitter/example-vms/uninspired/uninspired-vm2.c")
+                  (delete-file "jitter/example-vms/uninspired/uninspired-vm.h")
+                  (delete-file "jitter/example-vms/uninspired/uninspired-vm-main.c")
+                  (delete-file "libpoke/pvm-vm.h")
+                  (delete-file "libpoke/pvm-vm1.c")
+                  (delete-file "libpoke/pvm-vm2.c")))))
     (build-system gnu-build-system)
     ;; The GUI, which we elide, requires tcl and tk.
-    (native-inputs `(("bison" ,bison)
-                     ("clisp" ,clisp)
-                     ("dejagnu" ,dejagnu)
-                     ("flex" ,flex)
-                     ("libtool" ,libtool)
-                     ("perl" ,perl)
-                     ("pkg-config" ,pkg-config)
-                     ("python-2" ,python-2)
-                     ("python-3" ,python-3)))
+    (native-inputs (list bison dejagnu flex libtool pkg-config))
     ;; FIXME: Enable NBD support by adding `libnbd' (currently unpackaged).
-    (inputs `(("json-c" ,json-c)
-              ("libgc" ,libgc)
-              ("readline" ,readline)
-              ("libtextstyle" ,libtextstyle)))
+    (inputs (list json-c libgc readline libtextstyle))
     (arguments
      ;; To build the GUI, add the `--enable-gui' configure flag.
      ;; To enable the "hyperlink server", add the `--enable-hserver' flag.
      `(#:configure-flags '("--enable-mi")))
-    (home-page "http://jemarch.net/poke.html")
-    (synopsis "Interactive, extensible editor for binary data")
-    (description "GNU poke is an interactive, extensible editor for binary
-  data.  Not limited to editing basic entities such as bits and bytes, it
-  provides a full-fledged procedural, interactive programming language designed
-  to describe data structures and to operate on them.")
+    (home-page "https://www.gnu.org/software/poke/#documentation")
+    (synopsis "Editing of arbitrary binary data")
+    (description "GNU poke is an interactive, extensible editor for binary data.
+Not limited to editing basic entities such as bits and bytes, it provides a
+full-fledged procedural, interactive programming language designed to describe
+data structures and to operate on them.")
     (license license:gpl3+)))
 
 (define-public pcb2gcode
@@ -2809,17 +2848,14 @@ GUI.")
          "0nzglcyh6ban27cc73j4l7w7r9k38qivq0jz8iwnci02pfalw4ry"))))
      (build-system gnu-build-system)
      (inputs
-      `(("boost" ,boost)
-        ("geos" ,geos)
-        ("gerbv" ,gerbv)
-        ("glibmm" ,glibmm)
-        ("gtkmm" ,gtkmm-2)
-        ("librsvg" ,librsvg)))
+      (list boost
+            geos
+            gerbv
+            glibmm
+            gtkmm-2
+            librsvg))
      (native-inputs
-      `(("autoconf" ,autoconf)
-        ("automake" ,automake)
-        ("libtool" ,libtool)
-        ("pkg-config" ,pkg-config)))
+      (list autoconf automake libtool pkg-config))
      (home-page "https://github.com/pcb2gcode/pcb2gcode")
      (synopsis "Generate G-code for milling PCBs")
      (description "pcb2gcode is a command-line program for isolation routing
@@ -2846,10 +2882,9 @@ dynamic calibration of the milling depth.")
          (sha256
           (base32 "17sw78xp5wjzv25adpbq3khl8fi0avj7bgpi57q3jnvl3c68xy5z"))))
       (native-inputs
-       `(("perl" ,perl)
-         ("pkg-config" ,pkg-config)))
+       (list perl pkg-config))
       (inputs
-       `(("capstone" ,capstone)))
+       (list capstone))
       (build-system cmake-build-system)
       (arguments
        `(#:build-type "Release"
@@ -2863,3 +2898,326 @@ for hooking Linux system calls in user space.  This is achieved by
 hot-patching the machine code of the standard C library in the memory of
 a process.")
       (license license:bsd-2))))
+
+(define-public xfoil
+  (package
+    (name "xfoil")
+    (version "6.99")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://web.mit.edu/drela/Public/web/xfoil/xfoil"
+                           version ".tgz"))
+       (sha256
+        (base32
+         "0h5y5v0qlyvi4qc943x394npz4779i8f52iksxshxkjj7xj500jw"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'unpack 'edit-files
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; The instructions in orrs/README say that orrs/bin/osmap.f
+             ;; should be edited, but that file is never used by XFOIL.
+             ;; Instead, it is osrc/osmap.f that is used.
+             (substitute* "osrc/osmap.f"
+               (("^[ ]{6}DATA OSFILE / '/var/local/codes/orrs/osmap.dat' /")
+                (let ((replacement (string-append (make-string 6 #\space)
+                                                  "DATA OSFILE / '"
+                                                  (assoc-ref outputs "out")
+                                                  "/share/xfoil/osmap.dat' /")))
+                  ;; In fixed form Fortran, lines cannot exceed 72 columns.
+                  ;; The Guix store path exceeds this limit.
+                  (string-append
+                    (substring replacement 0 72) "\n"
+                    (make-string 5 #\space) "&" (substring replacement 72)))))
+             (substitute* "orrs/bin/Makefile_DP"
+               (("^FC = ifort")
+                "FC = gfortran")
+               (("^FLG = -O -r8")
+                "FLG = -O2 -fdefault-real-8"))
+             (substitute* "plotlib/Makefile"
+               (("^include ./config.make")
+                "include ./config.make.gfortranDP"))
+             (substitute* "bin/Makefile_gfortran"
+               (("^BINDIR = /home/codes/bin/")
+                (string-append "BINDIR = " (assoc-ref outputs "out") "/bin"))
+               (("^CC = cc")
+                "CC = gcc")
+               (("^CFLAGS = -O -DUNDERSCORE")
+                "CFLAGS = -O2 -DUNDERSCORE")
+               (("^FFLAGS = -O \\$\\(CHK\\) \\$\\(DBL\\)")
+                "FFLAGS = -O2 $(CHK) $(DBL)")
+               (("^FFLOPT = -O \\$\\(CHK\\) \\$\\(DBL\\)")
+                "FFLOPT = -O2 $(CHK) $(DBL)")
+               ;; Separate the build stage from the install stage.
+               (("\\$\\(INSTALLCMD\\) xfoil \\$\\(BINDIR\\)") "")
+               (("\\$\\(INSTALLCMD\\) pxplot \\$\\(BINDIR\\)") "")
+               (("\\$\\(INSTALLCMD\\) pplot \\$\\(BINDIR\\)") ""))))
+         (replace 'build
+           (lambda _
+             (invoke "make" "-C" "orrs/bin" "-f" "Makefile_DP" "osgen")
+             (with-directory-excursion "orrs"
+               (invoke "bin/osgen" "osmaps_ns.lst"))
+             (invoke "make" "-C" "plotlib")
+             (substitute* "bin/Makefile_gfortran"
+               (("^FFLAGS =(.*)$" _ suffix)
+                (string-append "FFLAGS = -fallow-argument-mismatch "
+                               suffix "\n")))
+             (invoke "make" "-C" "bin" "-f" "Makefile_gfortran")))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin-dir (string-append out "/bin"))
+                    (data-dir (string-append out "/share/xfoil"))
+                    (doc-dir (string-append out "/share/doc/xfoil")))
+               (mkdir-p bin-dir)
+               (invoke "make" "-C" "bin" "-f" "Makefile_gfortran" "install")
+               (mkdir-p data-dir)
+               (install-file "orrs/osmap.dat" data-dir)
+               (mkdir-p doc-dir)
+               (install-file "xfoil_doc.txt" doc-dir)))))
+       #:tests? #f))
+    (inputs
+     (list libx11))
+    (native-inputs
+     (list gfortran))
+    (home-page "https://web.mit.edu/drela/Public/web/xfoil/")
+    (synopsis "Program for the design and analysis of subsonic airfoils")
+    (description
+     "XFOIL is an interactive program for the design and analysis of subsonic
+isolated airfoils.  It consists of a collection of menu-driven routines which
+perform various useful functions such as:
+@itemize
+@item Viscous (or inviscid) analysis of an existing airfoil
+@item Airfoil design and redesign by interactive modification of surface speed
+      distributions
+@item Airfoil redesign by interactive modification of geometric parameters
+@item Blending of airfoils
+@item Writing and reading of airfoil coordinates and polar save files
+@item Plotting of geometry, pressure distributions, and multiple polars
+@end itemize")
+    (license license:gpl2+)))
+
+(define-public libigl
+  (package
+    (name "libigl")
+    (version "2.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/libigl/libigl")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "004a22ifq2vibgkgvrlyihqimpsfizvq5l448204kwfg3lkycajj"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       '("-DLIBIGL_USE_STATIC_LIBRARY=OFF"
+         "-DLIBIGL_BUILD_TESTS=ON"
+         "-DLIBIGL_BUILD_TUTORIALS=OFF"
+         "-DLIBIGL_EXPORT_TARGETS=ON"
+         ;; The following options disable tests for the corresponding libraries.
+         ;; The options do not affect whether the libraries are linked to
+         ;; libigl or not, they are used for tests.
+         "-DLIBIGL_WITH_COMISO=OFF"
+         "-DLIBIGL_WITH_CORK=OFF"
+         "-DLIBIGL_WITH_MATLAB=OFF"
+         "-DLIBIGL_WITH_MOSEK=OFF"
+         "-DLIBIGL_WITH_TRIANGLE=OFF" ;; Undefined reference to "triangulate".
+         "-DLIBIGL_WITH_OPENGL_GLFW_IMGUI=OFF")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unpack-external
+           (lambda _
+             (setenv "HOME" (getcwd)) ;; cmake needs this to export modules
+             (mkdir "external")
+             (copy-recursively (assoc-ref %build-inputs "libigl-glad") "external/glad")
+             (copy-recursively (assoc-ref %build-inputs "libigl-stb") "external/stb")
+             (copy-recursively (assoc-ref %build-inputs "libigl-tetgen") "external/tetgen")
+             (copy-recursively (assoc-ref %build-inputs "libigl-predicates") "external/predicates")))
+         (add-after 'unpack-external 'patch-cmake
+           (lambda _
+             ;; Fix references to external libraries
+             (substitute* "cmake/libigl.cmake"
+               (("if\\(NOT TARGET Eigen3::Eigen\\)" all)
+                (string-append "find_package(Eigen3 CONFIG REQUIRED)\n" all))
+               (("if\\(NOT TARGET CGAL::CGAL\\)" all)
+                (string-append "find_package(CGAL CONFIG COMPONENTS Core)\n" all))
+               (("if\\(NOT TARGET tinyxml2\\)" all)
+                (string-append "find_package(tinyxml2 CONFIG REQUIRED)\n"
+                               "if (NOT TARGET tinyxml2::tinyxml2)"))
+               (("if\\(NOT TARGET embree\\)" all)
+                (string-append "find_package(embree 3 CONFIG REQUIRED)\n" all))
+               (("if\\(NOT TARGET glfw\\)" all)
+                (string-append "find_package(glfw3 CONFIG REQUIRED)\n" all))
+               (("igl_download_glad\\(\\)" all) "")
+               (("igl_download_stb\\(\\)" all) "")
+               (("igl_download_tetgen\\(\\)" all) "")
+               (("igl_download_triangle\\(\\)" all) "")
+               (("igl_download_predicates\\(\\)" all) ""))
+             (substitute* "tests/CMakeLists.txt"
+               (("igl_download_test_data\\(\\)") "")
+               (("set\\(IGL_TEST_DATA.*")
+                (format #f "set(IGL_TEST_DATA ~a)\n"
+                        (assoc-ref %build-inputs "libigl-test-data")))
+               (("igl_download_catch2\\(\\)") "find_package(Catch2 CONFIG REQUIRED)")
+               (("list\\(APPEND CMAKE_MODULE_PATH \\$\\{LIBIGL_EXTERNAL\\}/catch2/contrib\\)")
+                "")
+               (("add_subdirectory\\(\\$\\{LIBIGL_EXTERNAL\\}/catch2 catch2\\)") ""))
+             ;; Install otherwise missing headers
+             (substitute* "cmake/libigl.cmake"
+               (("install_dir_files\\(copyleft\\)" all)
+                (string-join (list all
+                                   "install_dir_files(copyleft/cgal)"
+                                   "install_dir_files(copyleft/opengl)"
+                                   "install_dir_files(copyleft/tetgen)"
+                                   "install_dir_files(embree)"
+                                   "install_dir_files(opengl)"
+                                   "install_dir_files(png)"
+                                   "install_dir_files(predicates)"
+                                   "install_dir_files(xml)")
+                             "\n"))))))))
+    ;; XXX: Inputs are currently only used to build tests.
+    ;;      We would need to patch the CMake recipe to build a shared library
+    ;;      with all of these.
+    (inputs
+     `(("boost" ,boost)
+       ("catch2" ,catch-framework2)
+       ("cgal" ,cgal)
+       ("eigen" ,eigen)
+       ("embree" ,embree)
+       ("glfw" ,glfw)
+       ("gmp" ,gmp)
+       ("mesa" ,mesa)
+       ("mpfr" ,mpfr)
+       ("tinyxml2" ,tinyxml2)
+       ;; When updating this package, update commit fields below according to
+       ;; the hashes listed in "cmake/LibiglDownloadExternal.cmake".
+       ("libigl-test-data"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/libigl/libigl-tests-data")
+                 (commit "19cedf96d70702d8b3a83eb27934780c542356fe")))
+           (file-name (git-file-name "libigl-test-data" version))
+           (sha256 (base32 "1wxglrxw74xw4a4jmmjpm8719f3mnlbxbwygjb4ddfixxxyya4i2"))))
+       ("libigl-glad"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/libigl/libigl-glad")
+                 (commit "09b4969c56779f7ddf8e6176ec1873184aec890f")))
+           (file-name (git-file-name "libigl-glad" version))
+           (sha256 (base32 "0rwrs7513ylp6gxv7crjzflapcg9p7x04nzfvywgl665vl53rawk"))))
+       ("libigl-stb"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/libigl/libigl-stb.git")
+                 (commit "cd0fa3fcd90325c83be4d697b00214e029f94ca3")))
+           (file-name (git-file-name "libigl-stb" version))
+           (sha256 (base32 "0wwlb370z40y63ic3ny6q7lxibhixg2k1pjdkl4ymzv79zld28kj"))))
+       ("libigl-predicates"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/libigl/libigl-predicates.git")
+                 (commit "488242fa2b1f98a9c5bd1441297fb4a99a6a9ae4")))
+           (file-name (git-file-name "libigl-predicates" version))
+           (sha256 (base32 "13bd98g8lgcq37i3crj66433z09grnb2xjrcqpwqmyn147rp5wyh"))))
+       ;; TODO: Package tetgen separately from <http://www.tetgen.org>
+       ("libigl-tetgen"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/libigl/tetgen.git")
+                 (commit "4f3bfba3997f20aa1f96cfaff604313a8c2c85b6")))
+           (file-name (git-file-name "libigl-tetgen" version))
+           (sha256 (base32 "1k724syssw37py7kwmibk3sfwkkgyjyy7qkijnhn6rjm91g8qxsg"))))))
+    (home-page "https://libigl.github.io/")
+    (synopsis "Simple C++ geometry processing library")
+    (description "This library provides functionality for shape modelling,
+visualization, matrix manipulation.")
+    (license (list license:gpl3 license:mpl2.0))))
+
+(define-public prusa-slicer
+  (package
+    (name "prusa-slicer")
+    (version "2.3.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/prusa3d/PrusaSlicer")
+         (commit (string-append "version_" version))))
+       (file-name (git-file-name name version))
+       (sha256 (base32 "0w0synqi3iz9aigsgv6x1c6sg123fasbx19h4w3ic1l48r8qmpwm"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Prusa slicer bundles a lot of dependencies in src/ directory.
+           ;; Most of them contain prusa-specific modifications (e.g. avrdude),
+           ;; but others do not. Here we replace the latter with Guix packages.
+           ;; Remove bundled libraries that were not modified by Prusa Slicer developers.
+           (delete-file-recursively "src/hidapi")
+           (delete-file-recursively "src/eigen")
+           (delete-file-recursively "src/libigl/igl")
+           (substitute* "src/CMakeLists.txt"
+             (("add_subdirectory\\(libigl\\)" all)
+              (string-append
+               all "\ninclude_directories(libigl INTERFACE libigl::core)"))
+             (("add_subdirectory\\(hidapi\\)")
+              "pkg_check_modules(HIDAPI REQUIRED hidapi-hidraw)")
+             (("include_directories\\(hidapi/include\\)")
+              "include_directories()"))
+           (substitute* "src/slic3r/CMakeLists.txt"
+             (("add_library\\(libslic3r_gui.*" all)
+              (string-append
+               all
+               "\ntarget_include_directories(libslic3r_gui PUBLIC ${HIDAPI_INCLUDE_DIRS})\n"))
+             (("\\bhidapi\\b") "${HIDAPI_LIBRARIES}"))))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       '("-DSLIC3R_FHS=1" ;; Use The Filesystem Hierarchy Standard.
+         "-DSLIC3R_GTK=3" ;; Use GTK+
+         ;; Use wxWidgets 3.0.x.x to prevent GUI crashes when adding support enforcers.
+         "-DSLIC3R_WX_STABLE=1")))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     `(("boost" ,boost)
+       ("cereal" ,cereal)
+       ("cgal" ,cgal)
+       ("curl" ,curl)
+       ("dbus" ,dbus)
+       ("eigen" ,eigen)
+       ("expat" ,expat)
+       ("glew" ,glew)
+       ("glib" ,glib)
+       ("gmp" ,gmp)
+       ("gtk" ,gtk+)
+       ("hidapi" ,hidapi)
+       ("ilmbase" ,ilmbase)
+       ("libigl" ,libigl)
+       ("libpng" ,libpng)
+       ("mesa" ,mesa)
+       ("mpfr" ,mpfr)
+       ("nlopt" ,nlopt)
+       ("openvdb" ,openvdb)
+       ("pango" ,pango)
+       ("tbb" ,tbb)
+       ("udev" ,eudev)
+       ("wxwidgets" ,wxwidgets)
+       ("zlib" ,zlib)))
+    (home-page "https://www.prusa3d.com/prusaslicer/")
+    (synopsis "G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)")
+    (description "PrusaSlicer takes 3D models (STL, OBJ, AMF) and converts them into
+G-code instructions for FFF printers or PNG layers for mSLA 3D printers.")
+    (license license:agpl3)))
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index 9c83e9b482..3b28559c1b 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -50,6 +50,7 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages ibus)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages libunwind)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages lua)
@@ -91,7 +92,11 @@
        ("ibus" ,ibus)
        ("mesa" ,mesa)
        ("libraw" ,libraw)
-       ("librsvg" ,librsvg)
+       ;; Only enable the optional SVG support on x86_64, as this is the only
+       ;; architecture where librsvg can be built.
+       ,@(if (target-x86-64?)
+             `(("librsvg" ,librsvg))
+             '())
        ("libspectre" ,libspectre)
        ("libtiff" ,libtiff)
        ("libxau" ,libxau)
@@ -127,6 +132,7 @@
        ("libjpeg" ,libjpeg-turbo)
        ("libsndfile" ,libsndfile)
        ("libpng" ,libpng)
+       ("libunwind" ,libunwind)
        ("libx11" ,libx11)
        ("libxkbcommon" ,libxkbcommon)
        ("luajit" ,luajit)
@@ -136,20 +142,23 @@
        ("wayland" ,wayland)
        ("zlib" ,zlib)))
     (arguments
-     `(#:configure-flags '("-Dembedded-lz4=false"
-                           "-Dbuild-examples=false"
-                           "-Decore-imf-loaders-disabler=scim"
-                           "-Dglib=true"
-                           "-Dmount-path=/run/setuid-programs/mount"
-                           "-Dunmount-path=/run/setuid-programs/umount"
-                           ;(string-append "-Ddictionaries-hyphen-dir="
-                           ;               (assoc-ref %build-inputs "hyphen")
-                           ;               "/share/hyphen")
-                           "-Dnetwork-backend=connman"
-                           ;; for wayland
-                           "-Dwl=true"
-                           "-Ddrm=true")
-       #:tests? #f ; Many tests fail due to timeouts and network requests.
+     `(#:configure-flags
+       `("-Dembedded-lz4=false"
+         "-Dbuild-examples=false"
+         "-Decore-imf-loaders-disabler=scim"
+         "-Dglib=true"
+         "-Dmount-path=/run/setuid-programs/mount"
+         "-Dunmount-path=/run/setuid-programs/umount"
+         "-Dnetwork-backend=connman"
+         ;; Add 'rsvg' to the default list (json and avif) of disabled loaders
+         ;; unless librsvg is available.
+         ,,@(if (target-x86-64?)
+                '()
+                (list "-Devas-loaders-disabler=json,avif,rsvg"))
+         ;; For Wayland.
+         "-Dwl=true"
+         "-Ddrm=true")
+       #:tests? #f     ; Many tests fail due to timeouts and network requests.
        #:phases
        (modify-phases %standard-phases
          ;; If we don't hardcode the location of libcurl.so and others then we
@@ -199,7 +208,7 @@ removable devices or support for multimedia.")
 (define-public terminology
   (package
     (name "terminology")
-    (version "1.9.0")
+    (version "1.11.0")
     (source (origin
               (method url-fetch)
               (uri
@@ -207,7 +216,7 @@ removable devices or support for multimedia.")
                               "terminology/terminology-" version ".tar.xz"))
               (sha256
                (base32
-                "0v74858yvrrfy0l2pq7yn6izvqhpkb9gw2jpd3a3khjwv8kw6frz"))
+                "0bbav27p1xni7kidgf3vn42bwsfrzds301k3f7c8dg7v5yyq9n2g"))
               (modules '((guix build utils)))
               ;; Remove the bundled fonts.
               (snippet
@@ -245,7 +254,7 @@ removable devices or support for multimedia.")
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("efl" ,efl)))
+     (list efl))
     (home-page "https://www.enlightenment.org/about-terminology")
     (synopsis "Powerful terminal emulator based on EFL")
     (description
@@ -276,9 +285,9 @@ contents and more.")
            ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
            (lambda _ (setenv "HOME" "/tmp") #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("efl" ,efl)))
+     (list efl))
     (home-page "https://www.enlightenment.org/about-rage")
     (synopsis "Video and audio player based on EFL")
     (description
@@ -360,6 +369,7 @@ Libraries with some extra bells and whistles.")
        ("bluez" ,bluez)
        ("dbus" ,dbus)
        ("freetype" ,freetype)
+       ("libdrm" ,libdrm)
        ("libxcb" ,libxcb)
        ("libxext" ,libxext)
        ("linux-pam" ,linux-pam)
@@ -369,12 +379,9 @@ Libraries with some extra bells and whistles.")
        ("xkeyboard-config" ,xkeyboard-config)
        ("xorg-server-xwayland" ,xorg-server-xwayland)))
     (propagated-inputs
-     `(("efl" ,efl)
-       ("libxkbcommon" ,libxkbcommon)
-       ("wayland-protocols" ,wayland-protocols)
-
-       ;; Default font that applications such as IceCat require.
-       ("font-dejavu" ,font-dejavu)))
+     (list efl libxkbcommon wayland-protocols
+           ;; Default font that applications such as IceCat require.
+           font-dejavu))
     (home-page "https://www.enlightenment.org/about-enlightenment")
     (synopsis "Lightweight desktop environment")
     (description
@@ -384,9 +391,6 @@ unload unused functionality, with support for touchscreen and suitable for
 embedded systems.")
     (license license:bsd-2)))
 
-(define-public enlightenment-wayland
-  (deprecated-package "enlightenment-wayland" enlightenment))
-
 (define-public python-efl
   (package
     (name "python-efl")
@@ -434,11 +438,9 @@ embedded systems.")
             (delete-file "tests/ecore/test_11_con.py")
             #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-cython" ,python-cython)))
+     (list pkg-config python-cython))
     (inputs
-     `(("efl" ,efl)
-       ("python-dbus" ,python-dbus)))
+     (list efl python-dbus))
     (home-page "https://www.enlightenment.org/")
     (synopsis "Python bindings for EFL")
     (description
@@ -479,8 +481,7 @@ Libraries stack (eo, evas, ecore, edje, emotion, ethumb and elementary).")
        ("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("clang" ,clang)
-       ("efl" ,efl)))
+     (list clang efl))
     (home-page "https://www.enlightenment.org/about-edi")
     (synopsis "Development environment for Enlightenment")
     (description "EDI is a development environment designed for and built using
@@ -512,9 +513,7 @@ and in creating applications based on the Enlightenment Foundation Library suite
                        (("'/usr/")"'"))
              #t)))))
     (propagated-inputs
-     `(("python2-efl" ,python2-efl)
-       ("python2-pypdf2" ,python2-pypdf2)
-       ("python2-pyxdg" ,python2-pyxdg)))
+     (list python2-efl python2-pypdf2 python2-pyxdg))
     (synopsis "Simple PDF viewer")
     (description
      "Simple PDF viewer based on the Enlightenment Foundation Libraries.")
@@ -540,10 +539,9 @@ and in creating applications based on the Enlightenment Foundation Library suite
            ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
            (lambda _ (setenv "HOME" "/tmp") #t)))))
     (native-inputs
-     `(("check" ,check)
-       ("pkg-config" ,pkg-config)))
+     (list check pkg-config))
     (inputs
-     `(("efl" ,efl)))
+     (list efl))
     (home-page "https://smhouston.us/projects/ephoto/")
     (synopsis "EFL image viewer/editor/manipulator/slideshow creator")
     (description "Ephoto is an image viewer and editor written using the
@@ -591,7 +589,7 @@ directories.
      `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("efl" ,efl)))
+     (list efl))
     (home-page "https://www.enlightenment.org")
     (synopsis "EFL process viewer")
     (description
@@ -625,13 +623,9 @@ directories.
                   (string-append "join(\"" out "/share/epour\"")))
                #t))))))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("python-distutils-extra" ,python-distutils-extra)))
+     (list intltool python-distutils-extra))
     (inputs
-     `(("libtorrent-rasterbar" ,libtorrent-rasterbar)
-       ("python-dbus" ,python-dbus)
-       ("python-efl" ,python-efl)
-       ("python-pyxdg" ,python-pyxdg)))
+     (list libtorrent-rasterbar python-dbus python-efl python-pyxdg))
     (home-page "https://www.enlightenment.org")
     (synopsis "EFL Bittorrent client")
     (description "Epour is a BitTorrent client based on the @dfn{Enlightenment
diff --git a/gnu/packages/entr.scm b/gnu/packages/entr.scm
index 9a7a3daef6..29fd5b7db6 100644
--- a/gnu/packages/entr.scm
+++ b/gnu/packages/entr.scm
@@ -66,9 +66,7 @@
                 (search-input-file inputs command)))
              #t)))))
     (inputs
-     `(("bash" ,bash)
-       ("coreutils" ,coreutils)
-       ("ncurses" ,ncurses)))
+     (list bash coreutils ncurses))
     (home-page "http://entrproject.org/")
     (synopsis "Run arbitrary commands when files change")
     (description
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index e1ffe76f29..1974fef9a9 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -41,7 +41,7 @@
 (define-public erlang
   (package
     (name "erlang")
-    (version "24.0.2")
+    (version "24.0.5")
     (source (origin
               (method git-fetch)
               ;; The tarball from http://erlang.org/download contains many
@@ -53,7 +53,7 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "06plnhi1489wqsag5wgm16hb1xd1a8nbnb9gw7635d3fidxyb0wp"))
+                "0f8zr2jxr0v4zcd98zqx99zxdn768vjpzwxsbsd6ss3if405sq2a"))
               (patches (search-patches "erlang-man-path.patch"))))
     (build-system gnu-build-system)
     (native-inputs
@@ -69,9 +69,7 @@
             (base32
              "1c9ccp93pmm54mmvpiyrmj8v00pq11a60c4xv220k97i965zkwsg"))))))
     (inputs
-     `(("ncurses" ,ncurses)
-       ("openssl" ,openssl)
-       ("wxwidgets" ,wxwidgets)))
+     (list ncurses openssl wxwidgets))
     (propagated-inputs
      `(("fontconfig" ,fontconfig)
        ("glu" ,glu)
diff --git a/gnu/packages/esolangs.scm b/gnu/packages/esolangs.scm
index 45feedfa28..c37df58fe8 100644
--- a/gnu/packages/esolangs.scm
+++ b/gnu/packages/esolangs.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Hendursaga <hendursaga@yahoo.com>
-;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -52,7 +52,7 @@
       ;; The tests are not designed to be run and evaluated automatically.
      '(#:tests? #f))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (home-page "https://github.com/VorpalBlade/cfunge")
     (synopsis "Fast conforming Befunge93/98/109 interpreter in C")
     (description "@command{cfunge} is a fast conforming Befunge93/98/109 interpreter
@@ -75,9 +75,9 @@ identified by unique ID codes).")
         (base32 "0syw60b93iajgh91ffchirwwhm2kix2753ibx845kyrhzggmdh2l"))))
     (build-system cmake-build-system)
     (inputs
-     `(("readline" ,readline)))
+     (list readline))
     (native-inputs
-     `(("python-2" ,python-2)))         ; for the tests
+     (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
@@ -122,8 +122,7 @@ whenever possible to the extent that the above points are not compromized.
          (add-before 'install 'build
            (assoc-ref gnu:%standard-phases 'build)))))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (home-page "http://shakespearelang.sourceforge.net/")
     (synopsis "Write programs like Shakespearean plays")
     (description "Shakespeare is a programming language with the design goal
diff --git a/gnu/packages/fabric-management.scm b/gnu/packages/fabric-management.scm
index 08cf85cd00..982a4bfa75 100644
--- a/gnu/packages/fabric-management.scm
+++ b/gnu/packages/fabric-management.scm
@@ -56,15 +56,14 @@
         (base32 "19scwwpwqhqsyq4hbr5cflcmypss828lalxxd36yby7mbimca38y"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-
-       ;; The 3.3.21 'release' tarball isn't properly bootstrapped.
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list bison
+           flex
+           ;; The 3.3.21 'release' tarball isn't properly bootstrapped.
+           autoconf
+           automake
+           libtool))
     (inputs
-     `(("rdma-core" ,rdma-core)))
+     (list rdma-core))
     (arguments
      `(#:configure-flags '("--disable-static")
        #:phases
@@ -103,17 +102,11 @@ running the opensm daemon.")
         (base32 "1ns9sjwvxnklhi47d6k5x8kxdk1n7f5362y45xwxqmr7gwfvpmwa"))))
     (build-system gnu-build-system)
     (inputs
-     `(("rdma-core" ,rdma-core)
-       ("opensm" ,opensm)
-       ("glib" ,glib)))
+     (list rdma-core opensm glib))
     (outputs '("out" "lib"))
     (native-inputs
      ;; FIXME: needs rst2man for man pages
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool perl pkg-config))
     (arguments
      '(#:configure-flags
        (list (string-append "CPPFLAGS=-I" (assoc-ref %build-inputs "opensm")
@@ -159,14 +152,14 @@ interface to this library is not guaranteed to be stable.")
        (sha256
         (base32 "00x7v6cf8l5y6g9xwh1sg738ch42fhv19msx0h0090nhr0bv98v7"))))
     (build-system gnu-build-system)
-    (inputs `(("graphviz" ,graphviz)
-              ("tcl" ,tcl)
-              ("tk" ,tk)
-              ("infiniband-diags" ,infiniband-diags)
-              ("rdma-core" ,rdma-core)
-              ("opensm" ,opensm)
-              ("perl" ,perl)))
-    (native-inputs `(("swig" ,swig)))
+    (inputs (list graphviz
+                  tcl
+                  tk
+                  infiniband-diags
+                  rdma-core
+                  opensm
+                  perl))
+    (native-inputs (list swig))
     (arguments
      `(#:configure-flags
        (list (string-append "--with-osm="  (assoc-ref %build-inputs "opensm"))
@@ -219,13 +212,9 @@ testing InfiniBand networks.")
        ;; Be verbose so that compiler flags are displayed.
        #:make-flags '("V=1")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("numactl" ,numactl)
-       ("rdma-core" ,rdma-core)))
+     (list numactl rdma-core))
     (synopsis "Optimized communication layer for message passing in HPC")
     (description
      "Unified Communication X (UCX) provides an optimized communication layer
diff --git a/gnu/packages/fcitx.scm b/gnu/packages/fcitx.scm
index c602789b45..53680058c0 100644
--- a/gnu/packages/fcitx.scm
+++ b/gnu/packages/fcitx.scm
@@ -81,14 +81,13 @@
                  "/lib/qt5/plugins")))
              #t)))))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (inputs
      `(("fcitx" ,fcitx)
        ("libintl" ,intltool)
        ("libxkbcommon" ,libxkbcommon)))
     (propagated-inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (synopsis "Fcitx Qt5 Input Context")
     (description "This package provides a Qt5 frontend for fcitx.")
     (home-page "https://github.com/fcitx/fcitx-qt5/")
@@ -139,11 +138,7 @@
        ("pkg-config" ,pkg-config)
        ("python-wrapper" ,python-wrapper)))
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libx11" ,libx11)
-       ("sqlite" ,sqlite)
-       ("tinyxml" ,tinyxml)))
+     (list glib gtk+ libx11 sqlite tinyxml))
     (synopsis "Intelligent Predictive Text Entry System")
     (description "Presage generates predictions by modelling natural language as
 a combination of redundant information sources.  It computes probabilities for
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index 737f47f20f..92fc0ea171 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -29,7 +29,6 @@
   #:use-module (gnu packages datastructures)
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages freedesktop)
-  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
@@ -69,13 +68,9 @@
            #t))))
     (build-system cmake-build-system)
     (inputs
-     `(("uthash" ,uthash)
-       ("libxcb" ,libxcb)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-keysyms" ,xcb-util-keysyms)))
+     (list uthash libxcb xcb-util xcb-util-keysyms))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (home-page "https://github.com/fcitx/xcb-imdkit")
     (synopsis "Input method development support for XCB")
     (description "Xcb-imdkit is an implementation of xim protocol in XCB,
@@ -87,7 +82,7 @@ client.")
 (define-public fcitx5
   (package
     (name "fcitx5")
-    (version "5.0.8")
+    (version "5.0.10")
     (source
      (origin
        (method url-fetch)
@@ -95,7 +90,7 @@ client.")
              "https://download.fcitx-im.org/fcitx5/fcitx5/fcitx5-"
              version "_dict.tar.xz"))
        (sha256
-        (base32 "0536sjpgjlg0bf8imz4jf9bdsp7fhm09bkssddji56cc9mgdxx82"))))
+        (base32 "0i23skr49n6b30ybm66bkv07dcr0dan5mzxch7x83znfnrpk8z3h"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -133,9 +128,7 @@ client.")
        ("xcb-util-wm" ,xcb-util-wm)
        ("xkeyboard-config" ,xkeyboard-config)))
     (native-inputs
-     `(("gcc" ,gcc-9)                   ; for #include <charconv>
-       ("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (native-search-paths
      (list (search-path-specification
             (variable "FCITX_ADDON_DIRS")
@@ -159,12 +152,9 @@ client.")
         (base32 "0f3raxzkq0nwdfpc9hxvg65vga09gznjjgy9dr6jlkamzx8zlyw9"))))
     (build-system cmake-build-system)
     (inputs
-     `(("fcitx5" ,fcitx5)
-       ("lua" ,lua)
-       ("gettext" ,gettext-minimal)
-       ("libpthread-stubs" ,libpthread-stubs)))
+     (list fcitx5 lua gettext-minimal libpthread-stubs))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (home-page "https://github.com/fcitx/fcitx5-lua")
     (synopsis "Lua support for Fcitx 5")
     (description "Fcitx5-lua allows writing Fcitx5 extension in Lua.")
@@ -173,22 +163,19 @@ client.")
 (define-public libime
   (package
     (name "libime")
-    (version "1.0.7")
+    (version "1.0.10")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.fcitx-im.org/fcitx5/libime/libime-"
                            version "_dict.tar.xz"))
        (sha256
-        (base32 "06smx1kqq3qh0xra8070cjfhw79hcm0vksrswk05wq6jyhvrk5sd"))))
+        (base32 "0dknxf5lf5a6kam39rp7y1h2p47bwb6pnlc8fsrhmiv7rw2pkq0f"))))
     (build-system cmake-build-system)
     (inputs
-     `(("fcitx5" ,fcitx5)
-       ("boost" ,boost)))
+     (list fcitx5 boost))
     (native-inputs
-     `(("gcc" ,gcc-9)                  ;for #include <filesystem> and ld support
-       ("extra-cmake-modules" ,extra-cmake-modules)
-       ("python" ,python)))             ;needed to run test
+     (list extra-cmake-modules python))             ;needed to run test
     (home-page "https://github.com/fcitx/libime")
     (synopsis "Library for implementing generic input methods")
     (description "Libime is a library for implementing various input method
@@ -198,7 +185,7 @@ editors.")
 (define-public fcitx5-gtk
   (package
     (name "fcitx5-gtk")
-    (version "5.0.7")
+    (version "5.0.9")
     (source
      (origin
        (method url-fetch)
@@ -206,7 +193,7 @@ editors.")
                            "/fcitx5-gtk/fcitx5-gtk-"
                            version ".tar.xz"))
        (sha256
-        (base32 "0x9xwyb3hnb2xl47jkj8zs34fhyf7gshy3bv3jxd66sfkjrscr5v"))))
+        (base32 "07ip4sxf3q895pp7mivv2bdwcmqjnwrmv9pg99jk73cw9bgyq00n"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ;No test
@@ -238,9 +225,8 @@ editors.")
        ("libx11" ,libx11)
        ("gettext" ,gettext-minimal)))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("glib" ,glib "bin")))           ;for glib-genmarshal
+     (list extra-cmake-modules pkg-config
+           `(,glib "bin")))           ;for glib-genmarshal
     ;; TODO: Add "lib" output to reduce the closure size of "gtk2".
     (outputs '("out" "gtk2"))
     (home-page "https://github.com/fcitx/fcitx5-gtk")
@@ -252,7 +238,7 @@ for GTK+2/GTK+3 application.")
 (define-public fcitx5-qt
   (package
     (name "fcitx5-qt")
-    (version "5.0.6")
+    (version "5.0.7")
     (source
      (origin
        (method url-fetch)
@@ -260,7 +246,7 @@ for GTK+2/GTK+3 application.")
                            "/fcitx5-qt/fcitx5-qt-"
                            version ".tar.xz"))
        (sha256
-        (base32 "0wp88cmy0gn15gkfzl5z4q4qd9j1ssdmgp1rfsbw0cp3qh5x4m69"))))
+        (base32 "1gspj3s1nz6mqbp3z6js5zf7mqicwm32isxlqh6whhwawr9w7vrk"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -274,7 +260,7 @@ for GTK+2/GTK+3 application.")
        ("qtbase" ,qtbase-5)
        ("gettext" ,gettext-minimal)))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (home-page "https://github.com/fcitx/fcitx5-qt")
     (synopsis "Qt library and IM module for Fcitx 5")
     (description "Fcitx5-qt provides Qt library for development and IM module
@@ -321,8 +307,7 @@ for Qt based application.")
        ("fcitx5-qt" ,fcitx5-qt)
        ("qtwebkit" ,qtwebkit)))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (outputs '("out" "gui"))
     (home-page "https://github.com/fcitx/fcitx5-chinese-addons")
     (synopsis "Chinese related addons for Fcitx 5")
@@ -348,7 +333,7 @@ including input methods previous bundled inside Fcitx 4:
 (define-public fcitx5-configtool
   (package
     (name "fcitx5-configtool")
-    (version "5.0.5")
+    (version "5.0.8")
     (source
      (origin
        (method url-fetch)
@@ -356,7 +341,7 @@ including input methods previous bundled inside Fcitx 4:
              "https://download.fcitx-im.org/fcitx5"
              "/fcitx5-configtool/fcitx5-configtool-" version ".tar.xz"))
        (sha256
-        (base32 "1diwiniqvsvcdwzcx1dqxbvwsr6ajbxs67my0cpn8n22asd5mx8i"))))
+        (base32 "0rajrw914mbl0x7h08cal0sszwyvqg6v3w0vs0c9acs6m438xbw4"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -375,9 +360,7 @@ including input methods previous bundled inside Fcitx 4:
        ("gettext" ,gettext-minimal)
        ("iso-codes" ,iso-codes)))
     (native-inputs
-     `(("gcc" ,gcc-9)
-       ("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (home-page "https://github.com/fcitx/fcitx5-configtool")
     (synopsis "Graphical configuration tool for Fcitx 5")
     (description "Fcitx5-configtool is a graphical configuration tool
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index 788aa0ebea..696391256d 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2021 raid5atemyhomework <raid5atemyhomework@protonmail.com>
 ;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2021 Noisytoot <noisytoot@disroot.org>
+;;; Copyright © 2021 Kaelyn Takata <kaelyn.alexi@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -87,7 +88,7 @@
 (define-public autofs
   (package
     (name "autofs")
-    (version "5.1.7")
+    (version "5.1.8")
     (source
      (origin
        (method url-fetch)
@@ -95,7 +96,7 @@
                            "v" (version-major version) "/"
                            "autofs-" version ".tar.xz"))
        (sha256
-        (base32 "1myfz6a3wj2c4j9h5g44zj796fdi82jhp1s92w2hg6xp2632csx3"))))
+        (base32 "1zf0fgf6kr9amxq5amlgsp1v13sizwl3wvx2xl7b4r2nhmci0gdk"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -117,8 +118,7 @@
            (lambda _
              (substitute* "configure"
                (("^searchpath=\".*\"")
-                "searchpath=\"$PATH\""))
-             #t))
+                "searchpath=\"$PATH\""))))
          (add-before 'configure 'fix-rpath
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -131,24 +131,20 @@
            (lambda _
              (substitute* "modules/Makefile"
                (("ln -fs lookup_yp.so" match)
-                (string-append "# " match)))
-             #t)))))
+                (string-append "# " match))))))))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("pkg-config" ,pkg-config)
-       ("rpcsvc-proto" ,rpcsvc-proto)))
+     (list bison flex pkg-config rpcsvc-proto))
     (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("e2fsprogs" ,e2fsprogs)         ; for e[234]fsck
-       ("libtirpc" ,libtirpc)
-       ("libxml2" ,libxml2)             ; needed for LDAP, SASL
-       ("mit-krb5" ,mit-krb5)           ; needed for LDAP, SASL
-       ("nfs-utils" ,nfs-utils)         ; for mount.nfs
-       ("openldap" ,openldap)
-       ("openssl" ,openssl)             ; needed for SASL
-       ("sssd" ,sssd)
-       ("util-linux" ,util-linux)))     ; for mount, umount
+     (list cyrus-sasl
+           e2fsprogs ; for e[234]fsck
+           libtirpc
+           libxml2 ; needed for LDAP, SASL
+           mit-krb5 ; needed for LDAP, SASL
+           nfs-utils ; for mount.nfs
+           openldap
+           openssl ; needed for SASL
+           sssd
+           util-linux))     ; for mount, umount
     ;; XXX A directory index is the closest thing this has to a home page.
     (home-page "https://www.kernel.org/pub/linux/daemons/autofs/")
     (synopsis "Kernel-based automounter for Linux")
@@ -185,9 +181,9 @@ large and/or frequently changing (network) environment.")
        ;; ("ruby" ,ruby)
        ;; ("valgrind" ,valgrind)
        ;; ("which" ,which)
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("fuse" ,fuse)))
+     (list fuse))
     (home-page "https://bindfs.org")
     (synopsis "Bind mount a directory and alter permission bits")
     (description
@@ -252,14 +248,14 @@ unmaintained---to use the @code{inotify} API instead of the deprecated
 (define-public davfs2
   (package
     (name "davfs2")
-    (version "1.6.0")
+    (version "1.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.savannah.nongnu.org/releases/"
                            "davfs2/davfs2-" version ".tar.gz"))
        (sha256
-        (base32 "0l1vnv5lfigciwg17p10zxwhzj4qw2d9kw30prr7g4dxhmb6fsrf"))))
+        (base32 "1h65j2py59b97wbzzjhp4wbkk6351v3hrjscjcfab0p5xi4bjgnf"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -278,16 +274,14 @@ unmaintained---to use the @code{inotify} API instead of the deprecated
              (substitute* "etc/Makefile.in"
                (("(dist_pkgdata_DATA =.*) davfs2.conf secrets(.*)"
                  _ prefix suffix)
-                (string-append prefix suffix)))
-             #t))
+                (string-append prefix suffix)))))
          (add-after 'unpack 'patch-file-names
            (lambda _
              ;; Don't auto-load the FUSE kernel module.  That's up to root.
              ;; XXX If/when we restore the previous behaviour, make sure not
              ;; to introduce a security hole when mount.davfs is setuid.
              (substitute* "src/kernel_interface.c"
-               (("/sbin/modprobe") "/modprobe/disabled"))
-             #t))
+               (("/sbin/modprobe") "/modprobe/disabled"))))
          (replace 'install
            (lambda* (#:key make-flags outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -295,11 +289,10 @@ unmaintained---to use the @code{inotify} API instead of the deprecated
                       (string-append "pkgsysconfdir=" out "/etc")
                       make-flags)))))))
     (inputs
-     `(("neon" ,neon)
-
-       ;; Neon requires but doesn't propagate zlib, nor would we want that.
-       ;; XZ as well, but that's already present in the build environment.
-       ("zlib" ,zlib)))
+     (list neon
+           ;; Neon requires but doesn't propagate zlib, nor would we want that.
+           ;; XZ as well, but that's already present in the build environment.
+           zlib))
     (home-page "https://savannah.nongnu.org/projects/davfs2")
     (synopsis "Mount remote WebDAV resources in the local file system")
     (description
@@ -359,19 +352,17 @@ ones.")
         (base32 "1ry2sdkfbg4bwcldk42g1i3wa3z4pr9yh9dil6ilhwcvhqiw41zc"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("e2fsprogs" ,e2fsprogs)
-       ("libgcrypt" ,libgcrypt)
-       ("lz4" ,lz4)
-       ("lzo" ,lzo)
-       ("util-linux" ,util-linux "lib")
-       ("xz" ,xz)
-       ("zlib" ,zlib)
-       ("zstd:lib" ,zstd "lib")))
+     (list bzip2
+           e2fsprogs
+           libgcrypt
+           lz4
+           lzo
+           `(,util-linux "lib")
+           xz
+           zlib
+           `(,zstd "lib")))
     (synopsis "File system back-up, deployment, and migration tool")
     (description
      "FSArchiver saves the contents of a file system to a compressed archive
@@ -402,11 +393,9 @@ is corrupted you'll lose the affected file(s) but not the whole back-up.")
          "04slwhr6ap9xcc27wphk22ad8yn79ngyy5z10lxams3k5liahvc2"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("fuse" ,fuse)
-       ("glib" ,glib)
-       ("libgphoto2" ,libgphoto2)))
+     (list fuse glib libgphoto2))
     (synopsis "Virtual file system for libgphoto2 using FUSE")
     (description "GPhotoFS is a FUSE file system module to mount your camera as
 a file system on Linux.  This allow using your camera with any tool able to read
@@ -415,8 +404,8 @@ from a mounted file system.")
     (license license:gpl2+)))
 
 (define-public bcachefs-tools
-  (let ((commit "6c42566c6204bb5dcd6af3b97257e548b9d2db67")
-        (revision "9"))
+  (let ((commit "f9f57789de567726f7cfa46bd13df4b0815d137a")
+        (revision "12"))
     (package
       (name "bcachefs-tools")
       (version (git-version "0.1" revision commit))
@@ -428,7 +417,7 @@ from a mounted file system.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0xagz0k3li10ydma55mnld0nb2pyfx90vsdvgjflgnx6jw3cq4dq"))))
+          (base32 "13442qpmv7hywkpbnbwlg2sfhlfh16qxry1xwlv35vch2qnzlhrq"))))
       (build-system gnu-build-system)
       (arguments
        `(#:make-flags
@@ -460,15 +449,13 @@ from a mounted file system.")
                                          "util-linux"))))))))))
          #:tests? #f))                  ; XXX 6 valgrind tests fail
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-
-         ;; For tests.
-         ("python-pytest" ,python-pytest)
-         ("valgrind" ,valgrind)
-
-         ;; For generating documentation with rst2man.
-         ("python" ,python)
-         ("python-docutils" ,python-docutils)))
+       (list pkg-config
+             ;; For tests.
+             python-pytest
+             valgrind
+             ;; For generating documentation with rst2man.
+             python
+             python-docutils))
       (inputs
        `(("eudev" ,eudev)
          ("keyutils" ,keyutils)
@@ -508,7 +495,17 @@ performance and other characteristics.")
       (substitute-keyword-arguments (package-arguments bcachefs-tools)
         ((#:make-flags make-flags)
          `(append ,make-flags
-                  (list "LDFLAGS=-static")))))
+                  (list "LDFLAGS=-static")))
+        ((#:phases phases)
+         `(modify-phases ,phases
+            (add-after 'unpack 'skip-shared-library
+              (lambda _
+                (substitute* "Makefile"
+                  ;; Building the shared library with ‘-static’ obviously fails…
+                  (("^((all|install):.*)\\blib\\b(.*)" _ prefix suffix)
+                   (string-append prefix suffix "\n"))
+                  ;; …as does installing a now non-existent file.
+                  ((".*\\$\\(INSTALL\\).* lib.*") ""))))))))
      (inputs
       `(("eudev:static" ,eudev "static")
         ("libscrypt:static" ,libscrypt "static")
@@ -552,7 +549,7 @@ from the bcachefs-tools package.  It is meant to be used in initrds.")
 (define-public exfatprogs
   (package
     (name "exfatprogs")
-    (version "1.1.2")
+    (version "1.1.3")
     (source
      (origin
        (method git-fetch)
@@ -561,16 +558,13 @@ from the bcachefs-tools package.  It is meant to be used in initrds.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "19pbybgbfnvjb3n944ihrn1r8ch4dm8dr0d44d6w7p63dcp372xy"))))
+        (base32 "14lgwvbg6jibsdpzpcj484p9q4ixawyjxi9hw23w89c6870gglw9"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
        (list "--disable-static")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (home-page "https://github.com/exfatprogs/exfatprogs")
     (synopsis "Tools to create, check, and repair exFAT file systems")
     (description
@@ -594,14 +588,9 @@ Extensible File Allocation Table} file systems.  Included are
          "1h8ggvhw30n2r6w11n1s458ypggdqx6ldwd61ma4yd7binrlpjq1"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("asciidoc" ,asciidoc)
-       ("docbook-xml" ,docbook-xml)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("pkg-config" ,pkg-config)))
+     (list asciidoc docbook-xml libxml2 libxslt pkg-config))
     (inputs
-     `(("fuse" ,fuse)
-       ("gnutls" ,gnutls)))
+     (list fuse gnutls))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -654,7 +643,7 @@ single file can be mounted.")
                                 "jfsutils-include-systypes.patch"))))
     (build-system gnu-build-system)
     (inputs
-     `(("util-linux" ,util-linux "lib")))
+     (list `(,util-linux "lib")))
     (home-page "http://jfs.sourceforge.net/home.html")
     (synopsis "Utilities for managing JFS file systems")
     (description
@@ -730,10 +719,9 @@ from the jfsutils package.  It is meant to be used in initrds.")
          "1pnrj0h8sgqwgsc18vz3fkqsp6vhigdbi75vdj0si1r6wgslnr7z"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("fuse" ,fuse)
-       ("attr" ,attr)))
+     (list fuse attr))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (delete 'configure))  ; no configure script
@@ -838,11 +826,9 @@ All of this is accomplished without a centralized metadata server.")
               (("4426192") "12814800"))
              #t)))))
     (inputs
-     `(("curl" ,curl)
-       ("glib" ,glib)
-       ("fuse" ,fuse)))
+     (list curl glib fuse))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://curlftpfs.sourceforge.net/")
     (synopsis "Mount remote file systems over FTP")
     (description
@@ -908,7 +894,7 @@ All of this is accomplished without a centralized metadata server.")
        ("strace" ,strace)
        ("which" ,which)))
     (inputs
-     `(("coreutils" ,coreutils)))
+     (list coreutils))
     (home-page "https://www.flamingspork.com/projects/libeatmydata/")
     (synopsis "Transparently ignore calls to synchronize data safely to disk")
     (description
@@ -949,10 +935,7 @@ A simple @command{eatmydata} script is included that does this for you.")
     (build-system gnu-build-system)
     (home-page "https://github.com/sahlberg/libnfs")
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (synopsis "Client library for accessing NFS shares")
     (description "LIBNFS is a client library for accessing NFS shares over a
 network.  LIBNFS offers three different APIs, for different use :
@@ -1007,9 +990,7 @@ network.  LIBNFS offers three different APIs, for different use :
                  (install-file "../source/README.md" doc)
                  #t))))))
       (inputs
-       `(("bzip2" ,bzip2)
-         ("fuse" ,fuse)
-         ("zlib" ,zlib)))
+       (list bzip2 fuse zlib))
       (synopsis "Read-only FUSE driver for the APFS file system")
       (description "APFS-FUSE is a read-only FUSE driver for the @dfn{Apple File
 System} (APFS).  It is currently in an experimental state — it may not be able
@@ -1020,8 +1001,8 @@ APFS.")
 
 (define-public xfstests
   ;; The last release (1.1.0) is from 2011.
-  (let ((revision "0")
-        (commit "1c18b9ec2fcc94bd05ecdd136aa51c97bf3fa70d"))
+  (let ((revision "1")
+        (commit "bae1d15f6421cbe99b3e2e134c39d50248e7c261"))
     (package
       (name "xfstests")
       (version (git-version "1.1.0" revision commit))
@@ -1033,7 +1014,7 @@ APFS.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0rrv0rs9nhaza0jk5k0bj27w4lcd1s4a1ls8nr679qi02bgx630x"))))
+          (base32 "01y7dx5sx1xg3dycqlp2b6azclz3xcnx7vdy2rr6zmf210501xd9"))))
       (build-system gnu-build-system)
       (arguments
        `(#:phases
@@ -1141,9 +1122,7 @@ xfstest's \"~a\" command (with any OPTIONs) as documented below.\n\n"
                              status))))))
                  (chmod helper #o755)))))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)))
+       (list autoconf automake libtool))
       (inputs
        `(("acl" ,acl)
          ("attr" ,attr)
@@ -1173,7 +1152,7 @@ with the included @command{xfstests-check} helper.")
 (define-public zfs
   (package
     (name "zfs")
-    (version "2.1.0")
+    (version "2.1.1")
     (outputs '("out" "module" "src"))
     (source
       (origin
@@ -1182,7 +1161,7 @@ with the included @command{xfstests-check} helper.")
                               "/download/zfs-" version
                               "/zfs-" version ".tar.gz"))
           (sha256
-           (base32 "0kzkggwznp4m3503f2m4lcinbl99jg50j4asrwfpfk1862vdrgb0"))))
+           (base32 "1zsc0zkz5cci6pxc0kwzn3xg72qv2fq65phb768y5dgk1784hkxx"))))
     (build-system linux-module-build-system)
     (arguments
      `(;; The ZFS kernel module should not be downloaded since the license
@@ -1276,8 +1255,7 @@ with the included @command{xfstests-check} helper.")
                (substitute* '("Makefile.am" "Makefile.in")
                  (("\\$\\(prefix)/src") (string-append src "/src")))
                (substitute* (find-files "udev/rules.d/" ".rules.in$")
-                 (("/sbin/modprobe") (string-append kmod "/bin/modprobe"))))
-             #t))
+                 (("/sbin/modprobe") (string-append kmod "/bin/modprobe"))))))
          (replace 'build
            (lambda _ (invoke "make")))
          (replace 'install
@@ -1292,12 +1270,10 @@ with the included @command{xfstests-check} helper.")
                        (string-append "INSTALL_MOD_PATH=" moddir)
                        "INSTALL_MOD_STRIP=1")
                (install-file "contrib/bash_completion.d/zfs"
-                             (string-append out "/share/bash-completion/completions"))
-               #t))))))
+                             (string-append out
+                                            "/share/bash-completion/completions"))))))))
     (native-inputs
-     `(("attr" ,attr)
-       ("kmod" ,kmod)
-       ("pkg-config" ,pkg-config)))
+     (list attr kmod pkg-config))
     (inputs
      `(("eudev" ,eudev)
        ("kmod-runtime" ,kmod)
@@ -1338,7 +1314,7 @@ community.")
      ;; Note: if you are inheriting from the above zfs package in order
      ;; to provide a specific stable kernel version, you should also
      ;; inherit this package and replace the sole input below.
-     `(("zfs" ,zfs)))
+     (list zfs))
     (arguments
      `(#:tests? #f ; No tests
        #:phases
@@ -1436,8 +1412,7 @@ On Guix System, you will need to invoke the included shell scripts as
                 (string-append (assoc-ref inputs "bash-minimal") command))))))))
     ;; Mergerfs bundles a heavily modified copy of fuse.
     (inputs
-     `(("bash-minimal" ,bash-minimal)
-       ("util-linux" ,util-linux)))
+     (list bash-minimal util-linux))
     (home-page "https://github.com/trapexit/mergerfs")
     (synopsis "Featureful union file system")
     (description "mergerfs is a union file system geared towards simplifying
@@ -1466,9 +1441,7 @@ is similar to mhddfs, unionfs, and aufs.")
           (base32 "15pgym6c4viy57ccgp28dnqwh12f3gr02axg86y578aqa2yaa0ad"))))
       (build-system copy-build-system)
       (inputs
-       `(("python" ,python)
-         ("python-xattr" ,python-xattr)
-         ("rsync" ,rsync)))
+       (list python python-xattr rsync))
       (arguments
        '(#:install-plan
          '(("src/" "bin/"))
@@ -1499,26 +1472,19 @@ compatible directories.")
 (define-public python-dropbox
   (package
     (name "python-dropbox")
-    (version "11.5.0")
+    (version "11.25.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "dropbox" version))
         (sha256
-         (base32
-          "16bxx9xqx2s4d9khrw57a0bj4q7nc6kq355wl4pfddn9cqvh9rg2"))))
+         (base32 "0vq9c2hp2amsxr2ys2mlgqp6a8hxmvrcwav70ri7wjzalfs32gj6"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f))  ; Tests require a network connection.
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest python-pytest-runner))
     (propagated-inputs
-     `(("python-certifi" ,python-certifi)
-       ("python-chardet" ,python-chardet)
-       ("python-requests" ,python-requests)
-       ("python-six" ,python-six)
-       ("python-stone" ,python-stone)
-       ("python-urllib3" ,python-urllib3)))
+     (list python-requests python-six python-stone))
     (home-page "https://www.dropbox.com/developers")
     (synopsis "Official Dropbox API Client")
     (description "This package provides a Python SDK for integrating with the
@@ -1531,24 +1497,28 @@ Dropbox API v2.")
     (version "1.0.51")
     (source
       (origin
-        (method url-fetch)
-        (uri (pypi-uri "dbxfs" version))
+        ;; Release tarball contains files not in git repository.
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://thelig.ht/code/dbxfs")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
         (sha256
          (base32
-          "1zz82d0mnql55397x4jx7z5rn857rf9zhjv895j93wpxdq10xwvk"))
+          "0bidb1gg5lqa1561f20qnj7gy323q65qwzfrb8h8gs6dsl3g6yfg"))
         (patches (search-patches "dbxfs-remove-sentry-sdk.patch"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f)) ; tests requires safefs
     (propagated-inputs
-     `(("python-appdirs" ,python-appdirs)
-       ("python-block-tracing" ,python-block-tracing)
-       ("python-dropbox" ,python-dropbox)
-       ("python-keyring" ,python-keyring)
-       ("python-keyrings.alt" ,python-keyrings.alt)
-       ("python-privy" ,python-privy)
-       ("python-userspacefs" ,python-userspacefs)))
-  (home-page "https://github.com/rianhunter/dbxfs")
+     (list python-appdirs
+           python-block-tracing
+           python-dropbox
+           python-keyring
+           python-keyrings.alt
+           python-privy
+           python-userspacefs))
+  (home-page "https://thelig.ht/code/dbxfs/")
   (synopsis "User-space file system for Dropbox")
   (description
    "@code{dbxfs} allows you to mount your Dropbox folder as if it were a
@@ -1573,7 +1543,7 @@ local file system using FUSE.")
     (arguments
      `(#:import-path "github.com/hanwen/go-fuse"))
     (propagated-inputs
-     `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+     (list go-golang-org-x-sys))
     (home-page "https://github.com/hanwen/go-fuse")
     (synopsis "FUSE bindings for Go")
     (description
@@ -1614,10 +1584,9 @@ local file system using FUSE.")
                  (for-each (cut install-file <> (string-append doc "/examples"))
                            (find-files "." "^config\\."))))))))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (inputs
-       `(("fuse" ,fuse)
-         ("pcre" ,pcre)))
+       (list fuse pcre))
       (home-page "https://github.com/sloonz/rewritefs")
       (synopsis "FUSE file system that changes particular file names")
       (description
@@ -1658,8 +1627,7 @@ the XDG directory specification from @file{~/.@var{name}} to
                (rename-file (string-append out "/bin/TMSU")
                             (string-append out "/bin/tmsu"))))))))
     (inputs
-     `(("go-github-com-mattn-go-sqlite3" ,go-github-com-mattn-go-sqlite3)
-       ("go-github-com-hanwen-fuse" ,go-github-com-hanwen-fuse)))
+     (list go-github-com-mattn-go-sqlite3 go-github-com-hanwen-fuse))
     (home-page "https://github.com/oniony/TMSU")
     (synopsis "Tag files and access them through a virtual file system")
     (description
@@ -1691,10 +1659,7 @@ set up.")
        (list (string-append "--docdir=" (assoc-ref %outputs "out")
                             "/share/doc/" ,name "-" ,version))))
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list automake autoconf libtool pkg-config))
     (home-page "https://github.com/pali/udftools")
     (synopsis "Tools to manage UDF file systems and DVD/CD-R(W) drives")
     (description "@code{udftools} is a set of programs for reading
diff --git a/gnu/packages/file.scm b/gnu/packages/file.scm
index 6fb98244f9..5e379d888b 100644
--- a/gnu/packages/file.scm
+++ b/gnu/packages/file.scm
@@ -1,10 +1,11 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2021 Marius Bakke <marius@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,3 +58,15 @@ extensions to tell you the type of a file, but looks at the actual contents
 of the file.  This package provides the libmagic library.")
    (license bsd-2)
    (home-page "https://www.darwinsys.com/file/")))
+
+(define-public file-next
+  (package
+    (inherit file)
+    (version "5.41")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://ftp.astron.com/pub/file/file-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0gv027jgdr0hdkw7m9ck0nwhq583f4aa7vnz4dzdbxv4ng3k5r8k"))))))
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index f5f3713c69..3c162ff86f 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -24,6 +24,8 @@
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2021 ZmnSCPxj jxPCSnmZ <ZmnSCPxj@protonmail.com>
 ;;; Copyright © 2021 François J <francois-oss@avalenn.eu>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
+;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -90,7 +92,9 @@
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages popt)
@@ -98,11 +102,13 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-crypto)
+  #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages sphinx)
+  #:use-module (gnu packages tex)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages time)
@@ -115,7 +121,7 @@
 (define-public bitcoin-core-0.21
   (package
     (name "bitcoin-core")
-    (version "0.21.1")
+    (version "0.21.2")
     (source (origin
               (method url-fetch)
               (uri
@@ -123,23 +129,23 @@
                               version "/bitcoin-" version ".tar.gz"))
               (sha256
                (base32
-                "1q51nqv64lhng5wh1cqb01jar7iswpnyyb1i7xslbkr0j9227zya"))))
+                "17nvir1yc6mf4wr1fn4xsabw49cd5p9vig8wj77vv4anzi8zfij1"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python)               ; for the tests
-       ("util-linux" ,util-linux)       ; provides the hexdump command for tests
-       ("qttools" ,qttools)))
+     (list autoconf
+           automake
+           libtool
+           pkg-config
+           python ; for the tests
+           util-linux ; provides the hexdump command for tests
+           qttools))
     (inputs
-     `(("bdb" ,bdb-4.8)                 ; 4.8 required for compatibility
-       ("boost" ,boost)
-       ("libevent" ,libevent)
-       ("miniupnpc" ,miniupnpc)
-       ("openssl" ,openssl)
-       ("qtbase" ,qtbase-5)))
+     (list bdb-4.8 ; 4.8 required for compatibility
+           boost
+           libevent
+           miniupnpc
+           openssl
+           qtbase-5))
     (arguments
      `(#:configure-flags
        (list
@@ -193,7 +199,7 @@ line client and a client based on Qt.")
 (define-public bitcoin-core-0.20
   (package
     (inherit bitcoin-core-0.21)
-    (version "0.20.1")
+    (version "0.20.2")
     (source (origin
               (method url-fetch)
               (uri
@@ -201,7 +207,7 @@ line client and a client based on Qt.")
                               version "/bitcoin-" version ".tar.gz"))
               (sha256
                (base32
-                "0y5rad68b398arh0abr2wgiwybdw0i5a4dxz9s3fk9fgdbyn5gab"))))))
+                "14smp5vmh7baabl856wlg7w7y5910jhx6c02mlkm4hkywf3yylky"))))))
 
 ;; The support lifetimes for bitcoin-core versions can be found in
 ;; <https://bitcoincore.org/en/lifecycle/#schedule>.
@@ -211,7 +217,7 @@ line client and a client based on Qt.")
 (define-public hledger
   (package
     (name "hledger")
-    (version "1.14.2")
+    (version "1.21")
     (source
      (origin
        (method url-fetch)
@@ -221,37 +227,35 @@ line client and a client based on Qt.")
              ".tar.gz"))
        (sha256
         (base32
-         "1si9zqparkdq77yji87lhcsrf11fr3gisqwsv82cabhrhc36x6l4"))))
+         "07fcfkmv4cy92njnf2qc7jh0naz96q962hxldcd7hk4k7ddv0mss"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-base-compat-batteries" ,ghc-base-compat-batteries)
-       ("ghc-cmdargs" ,ghc-cmdargs)
-       ("ghc-data-default" ,ghc-data-default)
-       ("ghc-decimal" ,ghc-decimal)
-       ("ghc-diff" ,ghc-diff)
-       ("ghc-easytest" ,ghc-easytest)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-hledger-lib" ,ghc-hledger-lib)
-       ("ghc-lucid" ,ghc-lucid)
-       ("ghc-math-functions" ,ghc-math-functions)
-       ("ghc-megaparsec" ,ghc-megaparsec)
-       ("ghc-mtl-compat" ,ghc-mtl-compat)
-       ("ghc-old-time" ,ghc-old-time)
-       ("ghc-pretty-show" ,ghc-pretty-show)
-       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
-       ("ghc-safe" ,ghc-safe)
-       ("ghc-shakespeare" ,ghc-shakespeare)
-       ("ghc-split" ,ghc-split)
-       ("ghc-tabular" ,ghc-tabular)
-       ("ghc-temporary" ,ghc-temporary)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-utility-ht" ,ghc-utility-ht)
-       ("ghc-wizards" ,ghc-wizards)))
-    (native-inputs
-     `(("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+     (list ghc-ansi-terminal
+           ghc-base-compat-batteries
+           ghc-cmdargs
+           ghc-data-default
+           ghc-decimal
+           ghc-diff
+           ghc-hashable
+           ghc-hledger-lib
+           ghc-lucid
+           ghc-math-functions
+           ghc-megaparsec
+           ghc-old-time
+           ghc-regex-tdfa
+           ghc-safe
+           ghc-aeson
+           ghc-extra
+           ghc-tasty
+           ghc-timeit
+           ghc-shakespeare
+           ghc-split
+           ghc-tabular
+           ghc-temporary
+           ghc-unordered-containers
+           ghc-utf8-string
+           ghc-utility-ht
+           ghc-wizards))
     (home-page "https://hledger.org")
     (synopsis "Command-line interface for the hledger accounting system")
     (description
@@ -279,12 +283,9 @@ Accounting.")
                 "14qhv79a2waqzmf6l571wklgwq8j1pkmjvzkj5vhh44nia8hfdh7"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libofx" ,libofx)
-       ("libsoup" ,libsoup)))
+     (list gtk+ libofx libsoup))
     (home-page "http://homebank.free.fr/")
     (synopsis "Graphical personal accounting application")
     (description "HomeBank allows you to manage your personal accounts at
@@ -305,7 +306,14 @@ and dynamically with report tools based on filtering and graphical charts.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0x6jxwss3wwzbzlwmnwb8yzjk8f9wfawif4f1b74z2qg6hc4r7f6"))))
+        (base32 "0x6jxwss3wwzbzlwmnwb8yzjk8f9wfawif4f1b74z2qg6hc4r7f6"))
+       (snippet '(begin
+                   ;; Remove test that fails due to difference in
+                   ;; reported error message (missing leading "./" in the
+                   ;; file name); started some time after Guix commit
+                   ;; 727f05e1e285aa52f5a19ec923fdc2259859b4b1
+                   (delete-file "test/regress/BF3C1F82-2.test")
+                   #true))))
     (build-system cmake-build-system)
     (arguments
      `(#:modules (,@%cmake-build-system-modules
@@ -352,16 +360,14 @@ and dynamically with report tools based on filtering and graphical charts.")
              (setenv "ARGS" "-E BaselineTest_cmd-org")
              #t)))))
     (inputs
-     `(("boost" ,boost)
-       ("gmp" ,gmp)
-       ("libedit" ,libedit)
-       ("mpfr" ,mpfr)
-       ("python" ,python)
-       ("utfcpp" ,utfcpp)))
+     (list boost
+           gmp
+           libedit
+           mpfr
+           python
+           utfcpp))
     (native-inputs
-     `(("groff" ,groff)
-       ("texinfo" ,texinfo)
-       ("tzdata" ,tzdata-for-tests)))
+     (list groff texinfo tzdata-for-tests))
     (home-page "https://ledger-cli.org/")
     (synopsis "Command-line double-entry accounting program")
     (description
@@ -427,9 +433,9 @@ in ability, and easy to use.")
              (with-directory-excursion "../source/test"
                (invoke "make" "test-batch")))))))
     (inputs
-     `(("ledger" ,ledger)))
+     (list ledger))
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (home-page "https://ledger-cli.org/")
     (synopsis "Command-line double-entry accounting program")
     (description
@@ -485,7 +491,7 @@ This package provides the Emacs mode.")
                                 "for search ")))
               #t)))))
     (inputs
-     `(("icecat" ,icecat)))
+     (list icecat))
     (home-page "https://stesie.github.io/geierlein/")
     (synopsis "Free Elster client, for sending Germany VAT declarations")
     (description
@@ -519,22 +525,22 @@ do so.")
            #t))))
     (build-system python-build-system)
     (inputs
-     `(("python-pyqt" ,python-pyqt)
-       ("python-qrcode" ,python-qrcode)
-       ("python-protobuf" ,python-protobuf)
-       ("python-aiohttp" ,python-aiohttp)
-       ("python-aiohttp-socks" ,python-aiohttp-socks)
-       ("python-aiorpcx" ,python-aiorpcx-0.18)
-       ("python-certifi" ,python-certifi)
-       ("python-bitstring" ,python-bitstring)
-       ("python-attrs" ,python-attrs)
-       ("python-cryptography" ,python-cryptography)
-       ("python-qdarkstyle" ,python-qdarkstyle)
-       ("python-dnspython" ,python-dnspython)
-       ("python-hidapi" ,python-hidapi)
-       ("python-ledgerblue" ,python-ledgerblue)
-       ("python-btchip-python" ,python-btchip-python)
-       ("libsecp256k1" ,libsecp256k1)))
+     (list python-pyqt
+           python-qrcode
+           python-protobuf
+           python-aiohttp
+           python-aiohttp-socks
+           python-aiorpcx-0.18
+           python-certifi
+           python-bitstring
+           python-attrs
+           python-cryptography
+           python-qdarkstyle
+           python-dnspython
+           python-hidapi
+           python-ledgerblue
+           python-btchip-python
+           libsecp256k1))
     (arguments
      `(#:tests? #f                      ; no tests
        #:phases
@@ -549,6 +555,14 @@ do so.")
                  (("sys\\.prefix")
                   (format #f "\"~a\"" out)))
                #t)))
+         (add-after 'unpack 'relax-dnspython-version-requirement
+           ;; The version requirement for dnspython>=2.0,<2.1 makes the
+           ;; sanity-check phase fail, but the application seems to be working
+           ;; fine with dnspython 2.1 (the version we have currently).
+           (lambda _
+             (substitute* "contrib/requirements/requirements.txt"
+               (("dnspython>=.*")
+                "dnspython"))))
          (add-after 'unpack 'use-libsecp256k1-input
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "electrum/ecc_fast.py"
@@ -649,7 +663,7 @@ other machines/servers.  Electroncash does not download the Bitcoin Cash blockch
   ;; the system's dynamically linked library.
   (package
     (name "monero")
-    (version "0.17.2.3")
+    (version "0.17.3.0")
     (source
      (origin
        (method git-fetch)
@@ -674,31 +688,31 @@ other machines/servers.  Electroncash does not download the Bitcoin Cash blockch
               (string-append all "\n#include <boost/mpl/contains.hpp>")))
            #t))
        (sha256
-        (base32 "0nax991fshfh51grhh2ryfrwwws35k16gzl1l3niva28zff2xmq6"))))
+        (base32 "1spsf7m3x4psp9s7mivr6x4886jnbq4i8ll2dl8bv5bsdhcd3pjm"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("graphviz" ,graphviz)
-       ("pkg-config" ,pkg-config)
-       ("protobuf" ,protobuf)
-       ("python" ,python)
-       ("qttools" ,qttools)))
+     (list doxygen
+           graphviz
+           pkg-config
+           protobuf
+           python
+           qttools))
     (inputs
-     `(("boost" ,boost)
-       ("cppzmq" ,cppzmq)
-       ("expat" ,expat)
-       ("hidapi" ,hidapi)
-       ("libsodium" ,libsodium)
-       ("libunwind" ,libunwind)
-       ("libusb" ,libusb)
-       ("miniupnpc" ,miniupnpc)
-       ("openssl" ,openssl)
-       ("protobuf" ,protobuf)
-       ("rapidjson" ,rapidjson)
-       ("readline" ,readline)
-       ("unbound" ,unbound)
-       ("xz" ,xz)
-       ("zeromq" ,zeromq)))
+     (list boost
+           cppzmq
+           expat
+           hidapi
+           libsodium
+           libunwind
+           libusb
+           miniupnpc
+           openssl
+           protobuf
+           rapidjson
+           readline
+           unbound
+           xz
+           zeromq))
     (arguments
      `(#:out-of-source? #t
        #:configure-flags
@@ -728,12 +742,13 @@ other machines/servers.  Electroncash does not download the Bitcoin Cash blockch
              #t))
          ;; Only try tests that don't need access to network or system
          (replace 'check
-           (lambda _
+           (lambda* (#:key tests? #:allow-other-keys)
              ;; Core tests sometimes fail, at least on i686-linux.
              ;; Let's disable them for now and just try hash tests
              ;; and unit tests.
              ;; (invoke "make" "ARGS=-R 'hash|core_tests' --verbose" "test")))
-             (invoke "make" "ARGS=-R 'hash' --verbose" "test")))
+             (when tests?
+               (invoke "make" "ARGS=-R 'hash' --verbose" "test"))))
          (add-after 'check 'unit-tests
            (lambda _
              (let ((excluded-unit-tests
@@ -764,7 +779,7 @@ the Monero command line client and daemon.")
 (define-public monero-gui
   (package
     (name "monero-gui")
-    (version "0.17.2.3")
+    (version "0.17.3.0")
     (source
      (origin
        (method git-fetch)
@@ -781,7 +796,7 @@ the Monero command line client and daemon.")
            (delete-file-recursively "monero")
            #t))
        (sha256
-        (base32 "0qb746z1sxqrja7q9lqhhbm64v83sn67az4k7gs5q90iaw584qfc"))))
+        (base32 "0sc3g8g4mlcgz1ys1mqx9klyfl02z17zv2z22clx33jni0l3bqkr"))))
     (build-system qt-build-system)
     (native-inputs
      `(,@(package-native-inputs monero)
@@ -843,9 +858,11 @@ the Monero GUI client.")
     (license license:bsd-3)))
 
 (define-public python-trezor-agent
+  ;; It is called 'libagent' in pypi; i.e. this is the library as opposed to
+  ;; the toplevel app called trezor-agent.
   (package
     (name "python-trezor-agent")
-    (version "0.13.1")
+    (version "0.14.4")
     (source
      (origin
        (method git-fetch)
@@ -854,7 +871,7 @@ the Monero GUI client.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0q99vbfd3h85s8rnjipnmldixabqmmlk5w9karv6f0rhyi54f4zv"))))
+        (base32 "1ksv494xpga27ifrjyn1bkqaya5h769lqb9rx1ng0n4kvmnrqr3l"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -873,20 +890,19 @@ the Monero GUI client.")
              (add-installed-pythonpath inputs outputs)
              (invoke "py.test"))))))
     (propagated-inputs
-     `(("python-configargparse" ,python-configargparse)
-       ("python-daemon" ,python-daemon)
-       ("python-docutils" ,python-docutils)
-       ("python-ecdsa" ,python-ecdsa)
-       ("python-ed25519" ,python-ed25519)
-       ("python-mnemonic" ,python-mnemonic)
-       ("python-pymsgbox" ,python-pymsgbox)
-       ("python-semver" ,python-semver)
-       ("python-unidecode" ,python-unidecode)
-       ("python-wheel" ,python-wheel)))
+     (list python-configargparse
+           python-daemon
+           python-docutils
+           python-ecdsa
+           python-hidapi
+           python-mnemonic
+           python-pymsgbox
+           python-pynacl
+           python-semver
+           python-unidecode
+           python-wheel))
     (native-inputs
-     `(("gnupg" ,gnupg)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list gnupg python-mock python-pytest))
     (home-page "https://github.com/romanz/trezor-agent")
     (synopsis "Use hardware wallets as SSH and GPG agent")
     (description
@@ -894,19 +910,46 @@ the Monero GUI client.")
 Ledger Nano as a hardware SSH/GPG agent.")
     (license license:lgpl3)))
 
+(define-public trezor-gpg-pinentry-tk
+  (package
+    (name "trezor-gpg-pinentry-tk")
+    (version "0.0.10")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rendaw/trezor-gpg-pinentry-tk/")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1mblx4favmw4nf7k9rfl00ivv77kgdiwghyz4xv5cp0v410kjaqc"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))        ; No test suite.
+    (inputs
+     `(("python-tkinter" ,python "tk")))
+    (home-page "https://github.com/rendaw/trezor-gpg-pinentry-tk")
+    (synopsis "GPG pinentry program for use with @code{trezor-agent}")
+    (description
+     "This package provides a GPG pinentry program for use with
+@code{trezor-agent}, or for people with number-only PINs.  It displays
+a grid of unlabeled buttons and supports configurable keyboard
+settings.")
+    (license license:bsd-2)))
+
 (define-public python-mnemonic
   (package
     (name "python-mnemonic")
-    (version "0.19")
+    (version "0.20")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "mnemonic" version))
         (sha256
-          (base32 "0cd9prmdj8wzdmc7lxbf9lz0xrlkvak5ignag406mmfbn81fndsf"))))
+          (base32 "1xi5qvj2rvi5almf9c89rl7hz1z4ms04d53pg818i4vpkmivavvw"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pbkdf2" ,python-pbkdf2)))
+     (list python-pbkdf2))
     (home-page "https://github.com/trezor/python-mnemonic")
     (synopsis "Implementation of Bitcoin BIP-0039")
     (description "@code{mnemonic} is a library that provides an implementation
@@ -929,12 +972,12 @@ of Bitcoin BIP-0039.")
             "010mghaqh1cmz3a0ifc3f40mmyplilwlw7kpha2mzyrrff46p9gb"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-ecpy" ,python-ecpy)
-       ("python-future" ,python-future)
-       ("python-hidapi" ,python-hidapi)
-       ("python-pillow" ,python-pillow)
-       ("python-protobuf" ,python-protobuf)
-       ("python-pycrypto" ,python-pycrypto)))
+     (list python-ecpy
+           python-future
+           python-hidapi
+           python-pillow
+           python-protobuf
+           python-pycrypto))
     (home-page "https://github.com/LedgerHQ/blue-loader-python")
     (synopsis "Python library to communicate with Ledger Blue/Nano S")
     (description "@code{ledgerblue} is a Python library to communicate with
@@ -959,8 +1002,7 @@ Ledger Blue/Nano S.")
     (arguments
      `(#:tests? #f)) ; those require PyQt4
     (propagated-inputs
-      `(("python-ecdsa" ,python-ecdsa)
-        ("python-hidapi" ,python-hidapi)))
+      (list python-ecdsa python-hidapi))
     (home-page "https://github.com/LedgerHQ/btchip-python")
     (synopsis "Python library to communicate with Ledger Nano dongle")
     (description
@@ -971,30 +1013,52 @@ Nano dongle.")
 (define-public python-trezor
   (package
     (name "python-trezor")
-    (version "0.12.1")
+    (version "0.12.4")
     (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "trezor" version))
-        (sha256
-          (base32 "1w19m9lws55k9sjhras47hpfpqwq1jm5vy135nj65yhkblygqg19"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/trezor/trezor-firmware/")
+             (commit (string-append "python/v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1k0zk94jnkhr4iyngjfhfvff5mibx265q81v8jhvhd3m4clzgc45"))
+       (modules
+        '((guix build utils)
+          (srfi srfi-26)
+          (srfi srfi-1)
+          (ice-9 ftw)))
+       (snippet
+        '(begin
+           ;; Delete everything except ./python/
+           (for-each delete-file-recursively
+                     (scandir "./" (negate (cut member <> '("python" "." "..")
+                                                string=))))
+           ;; Move ./python/* to the toplevel.
+           (for-each (lambda (file-name)
+                       (rename-file (string-append "./python/" file-name)
+                                    (string-append "./" file-name)))
+                     (scandir "./python/"
+                              (negate (cut member <> '("." "..") string=))))
+           (delete-file-recursively "./python")))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-construct" ,python-construct)
-       ("python-ecdsa" ,python-ecdsa)
-       ("python-libusb1" ,python-libusb1)
-       ("python-mnemonic" ,python-mnemonic)
-       ("python-requests" ,python-requests)
-       ("python-typing-extensions" ,python-typing-extensions)))
+     (list python-attrs
+           python-click
+           python-construct
+           python-ecdsa
+           python-libusb1
+           python-mnemonic
+           python-requests
+           python-typing-extensions))
     (native-inputs
      ;; For tests.
-     `(("protobuf" ,protobuf)
-       ("python-black" ,python-black)
-       ("python-protobuf" ,python-protobuf)
-       ("python-isort" ,python-isort)
-       ("python-pyqt" ,python-pyqt)
-       ("python-pytest" ,python-pytest)))
+     (list protobuf
+           python-black
+           python-protobuf
+           python-isort
+           python-pyqt
+           python-pytest))
     (home-page "https://github.com/trezor/python-trezor")
     (synopsis "Python library for communicating with TREZOR Hardware Wallet")
     (description "@code{trezor} is a Python library for communicating with
@@ -1022,11 +1086,8 @@ TREZOR Hardware Wallet.")
              (add-installed-pythonpath inputs outputs)
              (apply invoke "python" (find-files "tests/unit" "\\.py$")))))))
     (propagated-inputs
-     `(("python-ecdsa" ,python-ecdsa)
-       ("python-hidapi" ,python-hidapi)
-       ("python-libusb1" ,python-libusb1)
-       ("python-mnemonic" ,python-mnemonic)
-       ("python-protobuf" ,python-protobuf)))
+     (list python-ecdsa python-hidapi python-libusb1 python-mnemonic
+           python-protobuf))
     (home-page "https://github.com/keepkey/python-keepkey")
     (synopsis "Python library for communicating with KeepKey Hardware Wallet")
     (description "@code{keepkey} is a Python library for communicating with
@@ -1049,8 +1110,7 @@ the KeepKey Hardware Wallet.")
          "03zj602m2rln9yvr08dswy56vzkbldp8b074ixwzz525dafblr92"))))
     (build-system python-build-system)
     (inputs
-     `(("python-ledgerblue" ,python-ledgerblue)
-       ("python-trezor-agent" ,python-trezor-agent)))
+     (list python-ledgerblue python-trezor-agent))
     (home-page "https://github.com/romanz/trezor-agent")
     (synopsis "Ledger as hardware SSH/GPG agent")
     (description "This package allows using Ledger as hardware SSH/GPG agent.")
@@ -1059,31 +1119,62 @@ the KeepKey Hardware Wallet.")
 (define-public trezor-agent
   (package
     (name "trezor-agent")
-    (version "0.10.0")
+    (version "0.11.0-1")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "trezor_agent" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/romanz/trezor-agent")
+             ;; The version mismatch is not a mistake.  Multiple Python
+             ;; apps/packages are in the same git repo, and they have
+             ;; different versions.  The git tag seems to track libagent,
+             ;; i.e. python-trezor-agent in the Guix namespace.  See
+             ;; e.g. ./agents/trezor/setup.py.
+             (commit "v0.14.4")))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "144657c7bn0a667dq5fv5r6j7iilxf3h9agj29v1m2qpq40g0az8"))))
+        (base32 "1ksv494xpga27ifrjyn1bkqaya5h769lqb9rx1ng0n4kvmnrqr3l"))
+       (modules
+        '((guix build utils)
+          (ice-9 ftw)
+          (srfi srfi-1)
+          (srfi srfi-26)))
+       (snippet
+        '(begin
+           ;; Delete everything except ./agents/trezor/
+           (for-each delete-file-recursively
+                     (filter (lambda (full-name)
+                               (not (string-prefix? "./agents/trezor/" full-name)))
+                             (find-files ".")))
+           ;; Move ./agents/trezor/* to the toplevel
+           (for-each (lambda (file-name)
+                       (rename-file (string-append "./agents/trezor/" file-name)
+                                    (string-append "./" file-name)))
+                     (scandir "./agents/trezor/"
+                              (negate (cut member <> '("." "..") string=))))
+           (delete-file-recursively "./agents")))))
     (arguments
-     ;; Tests fail with "AttributeError: module 'attr' has no attribute 's'".
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'wrap 'fixup-agent-py
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out")))
-               ;; overwrite the wrapper with the real thing.
+               ;; The wrap phase also wraps trezor_agent.py (besides the
+               ;; public facing executable called trezor-agent). We need to
+               ;; undo that wrapping. The reason this is needed is that the
+               ;; python easy install generates a toplevel script (?) that
+               ;; messes with argv[0] and then re-opens the python
+               ;; module. This fails when the wrapped file is actually a shell
+               ;; script, not a python file.
+               (delete-file (string-append out "/bin/.trezor_agent.py-real"))
+               ;; Overwrite the wrapped one with the real thing.
                (install-file "./trezor_agent.py"
-                             (string-append out "/bin"))
-             #t))))))
+                             (string-append out "/bin"))))))))
     (build-system python-build-system)
     (inputs
-     `(("python-trezor" ,python-trezor)
-       ("python-trezor-agent" ,python-trezor-agent)))
+     (list python-trezor python-trezor-agent))
     (native-inputs
-     `(("python-hidapi" ,python-hidapi)))
+     (list python-attrs))
     (home-page "https://github.com/romanz/trezor-agent")
     (synopsis "Using Trezor as hardware SSH/GPG agent")
     (description "This package allows using Trezor as a hardware SSH/GPG
@@ -1103,8 +1194,7 @@ agent.")
             "03779gvlx70i0nnry98i4pl1d92604ix5x6jgdfkrdgzqbh5vj27"))))
     (build-system python-build-system)
     (inputs
-     `(("python-keepkey" ,python-keepkey)
-       ("python-trezor-agent" ,python-trezor-agent)))
+     (list python-keepkey python-trezor-agent))
     (home-page "https://github.com/romanz/trezor-agent")
     (synopsis "KeepKey as hardware SSH/GPG agent")
     (description "This package allows using KeepKey as a hardware SSH/GPG
@@ -1114,13 +1204,13 @@ agent.")
 (define-public python-stdnum
   (package
     (name "python-stdnum")
-    (version "1.14")
+    (version "1.17")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-stdnum" version))
        (sha256
-        (base32 "070vd9zgvq0jchs4xc4j1h4r1l1lg4wwb8xs3p25k8c2xjw94fpx"))))
+        (base32 "0h4369b7gws5w5s2vhq590bk219y5k53zcmha2zwsb4i2dg2nkip"))))
     (build-system python-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -1128,7 +1218,7 @@ agent.")
                     (lambda _
                       (invoke "nosetests"))))))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://arthurdejong.org/python-stdnum/")
     (synopsis "Python module to handle standardized number and code formats")
     (description
@@ -1223,7 +1313,7 @@ Its features are:
 (define-public grisbi
   (package
     (name "grisbi")
-    (version "1.2.2")
+    (version "2.0.5")
     (source
      (origin
        (method url-fetch)
@@ -1233,19 +1323,17 @@ Its features are:
              "/grisbi-" version ".tar.bz2"))
        (sha256
         (base32
-         "1piiyyxjsjbw9gcqydvknzxmmfgh8kdqal12ywrxyxih2afwnvbw"))))
+         "0gvsqw1z5wkakyi3bkq71pqb094a8lv2nbgnxw2zqkabzjmxnfmx"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags (list "--without-ofx")))
     (propagated-inputs
-     `(("dconf" ,dconf)))
+     (list dconf))
     (native-inputs
-     `(("glib" ,glib "bin")             ; glib-compile-schemas
-       ("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list `(,glib "bin") ; glib-compile-schemas
+           pkg-config intltool))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libgsf" ,libgsf)))
+     (list gtk+ libgsf))
     (synopsis "Personal accounting application")
     (description "Grisbi is a personal accounting application written by
 French developers that is designed to follow French accounting rules.
@@ -1286,7 +1374,7 @@ trezord as a regular user instead of needing to it run as root.")
 (define-public trezord
   (package
     (name "trezord")
-    (version "2.0.30")
+    (version "2.0.31")
     (source
      (origin
        (method git-fetch)
@@ -1294,8 +1382,7 @@ trezord as a regular user instead of needing to it run as root.")
              (url "https://github.com/trezor/trezord-go")
              (commit (string-append "v" version))))
        (sha256
-        (base32
-         "1hzvk0wfgg7b4wpqjk3738yqxlv3pj5i7zxwm0jady2h97hmrqrr"))
+        (base32 "130nhk1pnr3xx9qkcij81mm3jxrl5zvvdqhvrgvrikqg3zlb6v5b"))
        (file-name (git-file-name name version))))
     (build-system go-build-system)
     (arguments
@@ -1325,22 +1412,22 @@ Trezor wallet.")
                 "1amzwy3gpl8ai90dsy7g0z51qq8vxfzbf642wn4bfynb8jmw3kx5"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)               ; for the tests
-       ("util-linux" ,util-linux)       ; provides the hexdump command for tests
-       ("qttools" ,qttools)))
+     (list pkg-config
+           python ; for the tests
+           util-linux ; provides the hexdump command for tests
+           qttools))
     (inputs
-     `(("bdb" ,bdb-5.3)
-       ("boost" ,boost)
-       ("jemalloc" ,jemalloc)
-       ("libevent" ,libevent)
-       ("miniupnpc" ,miniupnpc)
-       ("openssl" ,openssl)
-       ("protobuf" ,protobuf)
-       ("qrencode" ,qrencode)
-       ("qtbase" ,qtbase-5)
-       ("zeromq" ,zeromq)
-       ("zlib" ,zlib)))
+     (list bdb-5.3
+           boost
+           jemalloc
+           libevent
+           miniupnpc
+           openssl
+           protobuf
+           qrencode
+           qtbase-5
+           zeromq
+           zlib))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1398,12 +1485,12 @@ a client based on Qt.  This is a fork of Bitcoin Core.")
                             (assoc-ref %build-inputs "opensp")
                             "/include/OpenSP"))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gengetopt" ,gengetopt)
-       ("help2man" ,help2man)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf
+           automake
+           gengetopt
+           help2man
+           libtool
+           pkg-config))
     (inputs
      `(("curl" ,curl)
        ("libxml++-2" ,libxml++-2)
@@ -1436,24 +1523,24 @@ following three utilities are included with the library:
         (base32 "1cmrvh7azz0g89rsx6i8apd1li6r1lb3jrmbbf8fic1918lwv62m"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python) ; for the tests
-       ("util-linux" ,util-linux) ; provides the hexdump command for tests
-       ("qttools" ,qttools)))
+     (list autoconf
+           automake
+           libtool
+           pkg-config
+           python ; for the tests
+           util-linux ; provides the hexdump command for tests
+           qttools))
     (inputs
-     `(("bdb" ,bdb-4.8)
-       ("boost" ,boost)
-       ("libevent" ,libevent)
-       ("miniupnpc" ,miniupnpc)
-       ("openssl" ,openssl)
-       ("protobuf" ,protobuf)
-       ("qrencode" ,qrencode)
-       ("qtbase" ,qtbase-5)
-       ("zeromq" ,zeromq)
-       ("zlib" ,zlib)))
+     (list bdb-4.8
+           boost
+           libevent
+           miniupnpc
+           openssl
+           protobuf
+           qrencode
+           qtbase-5
+           zeromq
+           zlib))
     (arguments
      `(#:configure-flags
        (list
@@ -1529,12 +1616,9 @@ a Qt GUI.")
               (string-append "PREFIX=" %output)
               "features="))))))
     (native-inputs
-     `(("qttools" ,qttools)))
+     (list qttools))
     (inputs
-     `(("python" ,python)
-       ("qtbase" ,qtbase-5)
-       ("rocksdb" ,rocksdb)
-       ("zlib" ,zlib)))
+     (list python qtbase-5 rocksdb zlib))
     (home-page "https://gitlab.com/FloweeTheHub/fulcrum/")
     (synopsis "Fast and nimble SPV server for Bitcoin Cash")
     (description
@@ -1592,16 +1676,14 @@ like Flowee the Hub, which Fulcrum connects to over RPC.")
             (lambda _
               (invoke "make" "check" "-C" "testing"))))))
     (inputs
-     `(("boost" ,boost)
-       ("gmp" ,gmp)
-       ("libevent" ,libevent)
-       ("miniupnpc" ,miniupnpc)
-       ("openssl" ,openssl)
-       ("qtbase" ,qtbase-5)))
+     (list boost
+           gmp
+           libevent
+           miniupnpc
+           openssl
+           qtbase-5))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)
-       ("util-linux" ,util-linux)))       ; provides the hexdump command for tests
+     (list pkg-config qttools util-linux))       ; provides the hexdump command for tests
     (home-page "https://flowee.org")
     (synopsis "Flowee infrastructure tools and services")
     (description
@@ -1635,16 +1717,16 @@ that allows you to run services and through them access the Bitcoin Cash network
                (("'google-api-python-client',") ""))
              #t)))))
     (inputs
-     `(("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-bottle" ,python-bottle)
-       ("python-chardet" ,python-chardet)
-       ("python-dateutil" ,python-dateutil)
-       ("python-lxml" ,python-lxml)
-       ("python-magic" ,python-magic)
-       ("python-ply" ,python-ply)
-       ("python-requests" ,python-requests)))
+     (list python-beautifulsoup4
+           python-bottle
+           python-chardet
+           python-dateutil
+           python-lxml
+           python-magic
+           python-ply
+           python-requests))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "http://furius.ca/beancount")
     (synopsis "Command-line double-entry accounting tool")
     (description
@@ -1653,30 +1735,35 @@ define financial transaction records in a text file, read them in memory,
 generate a variety of reports from them, and provides a web interface.")
     (license license:gpl2)))
 
-;; The beancount source ships with elisp in a subdirectory
 (define-public emacs-beancount
-  (package
-    (inherit beancount)
-    (name "emacs-beancount")
-    (build-system emacs-build-system)
-    (arguments
-     `(#:tests? #f ;no tests
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'chdir-emacs
-           (lambda _
-             (chdir "editors/emacs")
-             #t)))))
-    (inputs '())
-    (native-inputs '())
-    (synopsis "Emacs mode for beancount")
-    (description
-      "Emacs-beancount is an Emacs mode for the Beancount accounting tool.")))
+  ;; Note that upstream has not made any release since this project moved
+  ;; into its own repository (it was originally part of beancount itself)
+  (let ((commit "dbafe6a73d90c1f64d457b356b9dbb43499f70d5")
+        (revision "0"))
+    (package
+      (name "emacs-beancount")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/beancount/beancount-mode")
+               (commit commit)))
+         (sha256
+          (base32
+           "0v9bws2gv5b00x829p7hrcxqgdp7iwxvv1vhfjka81qrw6w1fvjw"))
+         (file-name (git-file-name name version))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/beancount/beancount-mode")
+      (synopsis "Emacs mode for Beancount")
+      (description
+       "Emacs-beancount is an Emacs mode for the Beancount accounting tool.")
+      (license license:gpl3+))))
 
 (define-public hledger-web
   (package
     (name "hledger-web")
-    (version "1.14.1")
+    (version "1.21")
     (source
      (origin
        (method url-fetch)
@@ -1684,38 +1771,48 @@ generate a variety of reports from them, and provides a web interface.")
                            "hledger-web/hledger-web-" version ".tar.gz"))
        (sha256
         (base32
-         "0w59nr7mj0nx8z44cvhy1rhlj5rmx0wq4p5nfl4dycfmp7jwvsm1"))))
+         "0ivszqcypw0j2wn4r7fv7dqm1pvr0b1y6rqpxagzyk8cxn3ic9g2"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:tests? #f ; TODO: fail.
+       #:cabal-revision
+       ("1" "1hnw10ibhbafbsfj5lzlxwjg4cjnqr5bb51n6mqbi30qqabgq78x")))
     (inputs
-     `(("ghc-decimal" ,ghc-decimal)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-blaze-markup" ,ghc-blaze-markup)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-clientsession" ,ghc-clientsession)
-       ("ghc-cmdargs" ,ghc-cmdargs)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-data-default" ,ghc-data-default)
-       ("ghc-hjsmin" ,ghc-hjsmin)
-       ("hledger" ,hledger)
-       ("ghc-hledger-lib" ,ghc-hledger-lib)
-       ("ghc-http-client" ,ghc-http-client)
-       ("ghc-http-conduit" ,ghc-http-conduit)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-json" ,ghc-json)
-       ("ghc-megaparsec" ,ghc-megaparsec)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-shakespeare" ,ghc-shakespeare)
-       ("ghc-wai" ,ghc-wai)
-       ("ghc-wai-extra" ,ghc-wai-extra)
-       ("ghc-wai-handler-launch" ,ghc-wai-handler-launch)
-       ("ghc-warp" ,ghc-warp)
-       ("ghc-yaml" ,ghc-yaml)
-       ("ghc-yesod" ,ghc-yesod)
-       ("ghc-yesod-core" ,ghc-yesod-core)
-       ("ghc-yesod-form" ,ghc-yesod-form)
-       ("ghc-yesod-static" ,ghc-yesod-static)))
+     (list ghc-aeson
+           ghc-blaze-html
+           ghc-blaze-markup
+           ghc-case-insensitive
+           ghc-clientsession
+           ghc-cmdargs
+           ghc-conduit-extra
+           ghc-conduit
+           ghc-data-default
+           ghc-decimal
+           ghc-extra
+           ghc-hjsmin
+           ghc-hledger-lib
+           ghc-hspec
+           ghc-http-client
+           ghc-http-conduit
+           ghc-http-types
+           ghc-megaparsec
+           ghc-network
+           ghc-shakespeare
+           ghc-unix-compat
+           ghc-unordered-containers
+           ghc-utf8-string
+           ghc-wai-cors
+           ghc-wai-extra
+           ghc-wai
+           ghc-wai-handler-launch
+           ghc-warp
+           ghc-yaml
+           ghc-yesod-core
+           ghc-yesod-form
+           ghc-yesod
+           ghc-yesod-static
+           ghc-yesod-test
+           hledger))
     (home-page "https://hledger.org")
     (synopsis "Web-based user interface for the hledger accounting system")
     (description "This package provides a simple Web-based User
@@ -1723,3 +1820,90 @@ Interface (UI) for the hledger accounting system.  It can be used as a
 local, single-user UI, or as a multi-user UI for viewing, adding, and
 editing on the Web.")
     (license license:gpl3)))
+
+(define-public optionmatrix
+  (package
+    (name "optionmatrix")
+    (version "1.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://sourceforge/optionmatrix/optionmatrix-"
+             version ".tar.xz"))
+       (sha256
+        (base32 "1zd0pfiphnijh1l94swb3mjrpmjsn37z11mklamd7zw6h2d4zh4d"))))
+    (build-system gnu-build-system)
+    (inputs
+     (list gsl gtk+ ncurses))
+    (native-inputs
+     (list pkg-config texinfo
+           (texlive-updmap.cfg (list texlive-epsf texlive-tex-texinfo))))
+    (home-page "https://anthonybradford.github.io/optionmatrix/")
+    (synopsis "Financial derivative calculator")
+    (description
+     "The OptionMatrix programs are financial derivative calculators.  These
+calculators are real-time multi-model option chain pricers with analytics and
+interactive controls.  This package provides a GTK+ graphical user interface
+(@code{optionmatrix}) and a curses interface (@code{optionmatrix_console}).")
+    (license license:gpl3+)))
+
+(define-public python-ta-lib
+  (package
+    (name "python-ta-lib")
+    (version "0.4.21")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "TA-Lib" version))
+       (sha256
+        (base32 "17sf222mq2vx924f15qlz5czkkq5vsnsjy9ibwkrk8lalr6g5lkl"))))
+    (build-system python-build-system)
+    (inputs
+     (list ta-lib))
+    (propagated-inputs
+     (list python-numpy))
+    (native-inputs
+     (list python-cython python-nose python-pandas))
+    (home-page "https://github.com/mrjbq7/ta-lib")
+    (synopsis "Python wrapper for TA-Lib")
+    (description
+     "This is a Python wrapper for TA-Lib based on Cython.  TA-Lib is a library
+providing common functions for the technical analysis of financial market data.")
+    (license license:bsd-2)))
+
+(define-public ta-lib
+  (package
+    (name "ta-lib")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/ta-lib/ta-lib/"
+                           version "/ta-lib-" version "-src.tar.gz"))
+       (sha256
+        (base32 "0lf69nna0aahwpgd9m9yjzbv2fbfn081djfznssa84f0n7y1xx4z"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'link-math-library
+           (lambda _
+             (substitute* "src/Makefile.am"
+               (("ta_common/libta_common.la")
+                "ta_common/libta_common.la -lm"))
+             (substitute* "src/Makefile.in"
+               (("\\$\\(libta_lib_la_LDFLAGS\\) \\$\\(LDFLAGS\\) -o \\$@")
+                "$(libta_lib_la_LDFLAGS) $(LDFLAGS) -lm -o $@")))))
+       ;; Parallel build fails with:
+       ;; mv -f .deps/gen_code-gen_code.Tpo .deps/gen_code-gen_code.Po
+       ;; mv: cannot stat '.deps/gen_code-gen_code.Tpo': No such file or directory
+       ;; Makefile:254: recipe for target 'gen_code-gen_code.o' failed
+       #:parallel-build? #f
+       #:configure-flags '("--disable-static")))
+    (home-page "https://ta-lib.org")
+    (synopsis "Technical analysis library")
+    (description
+     "TA-Lib is a library providing common functions for the technical
+analysis of financial market data.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index ebcb89923c..1dc64a5341 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,18 +31,24 @@
   #:use-module (guix utils)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages cmake)
+  #:use-module (gnu packages curl)
   #:use-module (gnu packages cross-base)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages perl)
-  #:use-module (gnu packages python))
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages pkg-config))
 
 (define-public ath9k-htc-firmware
   (package
@@ -119,8 +126,7 @@ Linux-libre.")
            "1wgmj4d65izbhprwb5bcwimc2ryv19b9066lqzy4sa5m6wncm9cn"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("flex" ,flex)
-         ("bison" ,bison)))
+       (list flex bison))
       (arguments
        `(#:modules ((srfi srfi-1)
                     (guix build gnu-build-system)
@@ -174,7 +180,7 @@ driver.")
          "1p60gdi7w88s7qw82d3g9v7mk887mhvidf4l5q5hh09j10h37q4x"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("b43-tools" ,b43-tools)))
+     (list b43-tools))
     (arguments
      `(#:make-flags (list (string-append "PREFIX="
                                          (assoc-ref %outputs "out")
@@ -190,6 +196,30 @@ Broadcom/AirForce chipset BCM43xx with Wireless-Core Revision 5.  It is used
 by the b43-open driver of Linux-libre.")
     (license license:gpl2)))
 
+(define-public eg25-manager
+  (package
+    (name "eg25-manager")
+    (version "0.4.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/mobian1/devices/eg25-manager")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1h4c4ndcnh88jn65h1kycxkjrydwwwh3irkxvpaxb6ry4wpc45r0"))))
+    (build-system meson-build-system)
+    (native-inputs (list curl
+                         `(,glib "bin") pkg-config))
+    (inputs (list libgpiod libgudev libusb))
+    (synopsis "Manager daemon for the Quectel EG25 mobile broadband modem")
+    (description
+     "This package provides a manager daemon for the Quectel EG25 mobile
+broadband modem as found, for example, on PinePhone.")
+    (home-page "https://gitlab.com/mobian1/devices/eg25-manager")
+    (license license:gpl3+)))
+
 (define* (make-opensbi-package platform name #:optional (arch "riscv64"))
   (package
     (name name)
@@ -245,17 +275,9 @@ for platform-specific firmwares executing in M-mode.")
 (define-public opensbi-qemu-generic
   (make-opensbi-package "generic" "opensbi-qemu-generic"))
 
-(define-public opensbi-qemu-virt
-  (deprecated-package "opensbi-qemu-virt" opensbi-qemu-generic))
-
 (define-public opensbi-sifive-fu540
   (make-opensbi-package "sifive/fu540" "opensbi-sifive-fu540"))
 
-(define-public opensbi-qemu-sifive-u
-  ;; Dropped upstream, as all functionality is present in the sifive-fu540
-  ;; target for recent versions of qemu, u-boot and linux.
-  (deprecated-package "opensbi-qemu-sifive-u" opensbi-sifive-fu540))
-
 (define-public seabios
   (package
     (name "seabios")
@@ -465,7 +487,7 @@ Virtual Machines.  OVMF contains a sample UEFI firmware for QEMU and KVM.")
 (define* (make-arm-trusted-firmware platform #:optional (arch "aarch64"))
   (package
     (name (string-append "arm-trusted-firmware-" platform))
-    (version "2.4")
+    (version "2.5")
     (source
       (origin
         (method git-fetch)
@@ -476,7 +498,7 @@ Virtual Machines.  OVMF contains a sample UEFI firmware for QEMU and KVM.")
         (file-name (git-file-name "arm-trusted-firmware" version))
        (sha256
         (base32
-         "12k0n79j156bdzqws18kpbli04kn00nh6dy42pjv6gakqrkx9px3"))))
+         "0w3blkqgmyb5bahlp04hmh8abrflbzy0qg83kmj1x9nv4mw66f3b"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index f48dc877e1..764fc9b422 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -50,7 +51,8 @@
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages libftdi)
   #:use-module (gnu packages pciutils)
-  #:use-module (gnu packages qt))
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages tls))
 
 (define-public flashrom
   (package
@@ -65,11 +67,8 @@
                (base32
                 "0ax4kqnh7kd3z120ypgp73qy1knz47l6qxsqzrfkd97mh5cdky71"))))
     (build-system gnu-build-system)
-    (inputs `(("dmidecode" ,dmidecode)
-              ("pciutils" ,pciutils)
-              ("libusb" ,libusb)
-              ("libftdi" ,libftdi)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list dmidecode pciutils libusb libftdi))
+    (native-inputs (list pkg-config))
     (arguments
      '(#:make-flags
        (list "CC=gcc"
@@ -84,7 +83,15 @@
              (substitute* "dmi.c"
                (("\"dmidecode\"")
                 (format #f "~S"
-                        (search-input-file inputs "/sbin/dmidecode")))))))))
+                        (search-input-file inputs "/sbin/dmidecode"))))))
+         (add-before 'build 'patch-type-error
+           (lambda _
+             ;; See https://github.com/flashrom/flashrom/pull/133
+             (substitute* "libflashrom.c"
+               (("supported_boards\\[i\\].working = binfo\\[i\\].working")
+                "supported_boards[i].working = (enum flashrom_test_state)binfo[i].working")
+               (("supported_chipsets\\[i\\].status = chipset\\[i\\].status")
+                "supported_chipsets[i].status = (enum flashrom_test_state)chipset[i].status")))))))
     (home-page "https://flashrom.org/")
     (synopsis "Identify, read, write, erase, and verify ROM/flash chips")
     (description
@@ -112,7 +119,7 @@ programmer devices.")
     (inputs
      ;; Building with libusb-compat will succeed but the result will be broken.
      ;; See <https://github.com/pali/0xFFFF/issues/3>.
-     `(("libusb" ,libusb-0.1)))
+     (list libusb-0.1))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -145,12 +152,9 @@ brick your device.")
        (base32 "15m1w1qad3dj7r8n5ng1qqcaiyx1gyd6hnc3p2apgjllccdp77qg"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libelf" ,libelf)
-       ("libusb" ,libusb-compat)
-       ("libftdi" ,libftdi)))
+     (list libelf libusb-compat libftdi))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (home-page "https://www.nongnu.org/avrdude/")
     (synopsis "AVR downloader and uploader")
     (description
@@ -174,9 +178,9 @@ programming} technique.")
       (patches (search-patches "dfu-programmer-fix-libusb.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libusb" ,libusb)))
+     (list libusb))
     (home-page "https://dfu-programmer.github.io/")
     (synopsis "Device firmware update programmer for Atmel chips")
     (description
@@ -188,7 +192,7 @@ ISP.")
 (define-public dfu-util
   (package
     (name "dfu-util")
-    (version "0.10")
+    (version "0.11")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -196,12 +200,12 @@ ISP.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0hlvc47ccf5hry13saqhc1j5cdq5jyjv4i05kj0mdh3rzj6wagd0"))))
+                "17piiyp08pccqmbhnswv957lkypmmm92kps79hypxvw23ai3pddl"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libusb" ,libusb)))
+     (list libusb))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Host side of the USB Device Firmware Upgrade (DFU) protocol")
     (description
      "The DFU (Universal Serial Bus Device Firmware Upgrade) protocol is
@@ -253,7 +257,7 @@ firmware from it.")
                  (install-file "teensy_loader_cli" bin)
                  #t))))))
       (inputs
-       `(("libusb-compat" ,libusb-compat)))
+       (list libusb-compat))
       (synopsis "Command line firmware uploader for Teensy development boards")
       (description
        "The Teensy loader program communicates with your Teensy board when the
@@ -288,9 +292,9 @@ non-root users.")
          #:make-flags (list (string-append "PREFIX=" %output))
          #:tests? #f)) ; no tests
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (inputs
-       `(("libusb" ,libusb)))
+       (list libusb))
       (home-page "https://github.com/linux-rockchip/rkflashtool")
       (synopsis "Tools for flashing Rockchip devices")
       (description "Allows flashing of Rockchip based embedded linux devices.
@@ -334,9 +338,7 @@ RK3036, RK3066, RK312X, RK3168, RK3188, RK3288, RK3368.")
                (install-file "libpit/libpit.a" lib)
                #t))))))
     (inputs
-     `(("libusb" ,libusb)
-       ("qtbase" ,qtbase-5)
-       ("zlib" ,zlib)))
+     (list libusb qtbase-5 zlib))
     (home-page "https://glassechidna.com.au/heimdall/")
     (synopsis "Flash firmware onto Samsung mobile devices")
     (description "@command{heimdall} is a tool suite used to flash firmware (aka
@@ -394,8 +396,7 @@ dump Intel Firmware Descriptor data of an image file.")
                 "0nw555i0fm5kljha9h47bk70ykbwv8ddfk6qhz6kfqb79vzhy4h2"))))
     (build-system gnu-build-system)
     (inputs
-     `(("pciutils" ,pciutils)
-       ("zlib" ,zlib)))
+     (list pciutils zlib))
     (arguments
      `(#:make-flags
        (list "CC=gcc"
@@ -455,7 +456,7 @@ ME as far as possible (it only edits ME firmware image files).")
 (define-public uefitool
   (package
     (name "uefitool")
-    (version "0.27.0")
+    (version "0.28.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -463,7 +464,7 @@ ME as far as possible (it only edits ME firmware image files).")
                      (commit version)))
               (sha256
                (base32
-                "1i1p823qld927p4f1wcphqcnivb9mq7fi5xmzibxc3g9zzgnyc2h"))
+                "1n2hd2dysi5bv2iyq40phh1jxc48gdwzs414vfbxvcharcwapnja"))
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
@@ -475,10 +476,9 @@ ME as far as possible (it only edits ME firmware image files).")
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (install-file "UEFITool" (string-append (assoc-ref outputs "out")
-                                                     "/bin"))
-             #t)))))
+                                                     "/bin")))))))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (home-page "https://github.com/LongSoft/UEFITool/")
     (synopsis "UEFI image editor")
     (description "@code{uefitool} is a graphical image file editor for
@@ -504,18 +504,65 @@ Unifinished Extensible Firmware Interface (UEFI) images.")
                             (assoc-ref %build-inputs "bash")
                             "/bin/bash"))))
     (inputs
-     `(("boost" ,boost)
-       ("libgcrypt" ,libgcrypt)))
+     (list boost libgcrypt))
     (native-inputs
-     `(("bison" ,bison)
-       ("diffutils" ,diffutils)
-       ("ghostscript" ,ghostscript)
-       ("groff" ,groff)
-       ("libtool" ,libtool)
-       ("which" ,which)))
+     (list bison
+           diffutils
+           ghostscript
+           groff
+           libtool
+           which))
     (home-page "http://srecord.sourceforge.net/")
     (synopsis "Tools for EPROM files")
     (description "The SRecord package is a collection of powerful tools for
 manipulating EPROM load files.  It reads and writes numerous EPROM file
 formats, and can perform many different manipulations.")
     (license license:gpl3+)))
+
+(define-public uuu
+  (package
+    (name "uuu")
+    (version "1.4.165")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/NXPmicro/mfgtools")
+             (commit (string-append "uuu_" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0k309lp27d4k6x4qq0badbk8i47xsc6f3fffz73650iyfs4hcniw"))))
+    (arguments
+     `(#:tests? #f                      ; no tests
+       #:modules ((guix build utils)
+                  (ice-9 popen)
+                  (srfi srfi-26)
+                  (guix build cmake-build-system))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'fix-version-gen
+           (lambda _
+             (call-with-output-file ".tarball-version"
+               (lambda (port)
+                 (display ,version port)))))
+         (add-after 'install 'install-udev-rules
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (uuu (string-append out "/bin/uuu"))
+                    (pipe (open-pipe* OPEN_READ uuu "-udev"))
+                    (rules
+                     (string-append out "/lib/udev/rules.d/70-uuu.rules")))
+               (mkdir-p (string-append out "/lib/udev/rules.d"))
+               (call-with-output-file rules
+                 (cut dump-port pipe <>))))))))
+    (build-system cmake-build-system)
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list libusb bzip2 zlib libzip openssl))
+    (home-page "https://github.com/NXPmicro/mfgtools")
+    (synopsis "Freescale/NXP I.MX chip image deploy tools")
+    (description "@code{uuu} is a command line tool, evolved out of MFGTools.
+It can be used to upload images to I.MX SoC's using at least their boot ROM.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/flex.scm b/gnu/packages/flex.scm
index 9e52f3bb38..7972675971 100644
--- a/gnu/packages/flex.scm
+++ b/gnu/packages/flex.scm
@@ -55,9 +55,8 @@
        `(("bison" ,bison-for-tests))))
     ;; m4 is not present in PATH when cross-building
     (native-inputs
-     `(("help2man" ,help2man)
-       ("m4" ,m4)))
-    (propagated-inputs `(("m4" ,m4)))
+     (list help2man m4))
+    (propagated-inputs (list m4))
     (home-page "https://github.com/westes/flex")
     (synopsis "Fast lexical analyser generator")
     (description
diff --git a/gnu/packages/fltk.scm b/gnu/packages/fltk.scm
index fbdc47e506..dee77d6aa4 100644
--- a/gnu/packages/fltk.scm
+++ b/gnu/packages/fltk.scm
@@ -54,7 +54,7 @@
        (base32 "1arp1niiz3qxm8iacpmilwpc5rinsm6hsk4a6fsxfywvkvppbb4s"))))
    (build-system gnu-build-system)
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    (list pkg-config))
    (inputs
     `(("libjpeg" ,libjpeg-turbo)
       ("libpng" ,libpng)
@@ -135,11 +135,9 @@ UI builder called FLUID that can be used to create applications in minutes.")
     ;; ntk.pc lists "x11" and "xft" in Requires.private, and "cairo" in
     ;; Requires.
     (propagated-inputs
-     `(("cairo" ,cairo)
-       ("libxft" ,libxft)
-       ("libx11" ,libx11)))
+     (list cairo libxft libx11))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://non.tuxfamily.org/ntk/")
     (synopsis "Fork of FLTK with graphics rendering via Cairo")
     (description "The Non Tool Kit (NTK) is a fork of the Fast Light ToolKit
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index a1d7abd435..63d1240d5c 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -35,7 +35,7 @@
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
 ;;; Copyright © 2020, 2021 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
-;;; Copyright © 2020 Simen Endsjø <simendsjo@gmail.com>
+;;; Copyright © 2020, 2021 Simen Endsjø <simendsjo@gmail.com>
 ;;; Copyright © 2020 Tim Van den Langenbergh <tmt_vdl@gmx.com>
 ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net>
@@ -187,7 +187,7 @@ itself."))))
               (uri "https://typodermicfonts.com/wp-content/uploads/2017/06/canada1500.zip")
               (sha256
                (base32
-                "052rwhyfcz6q0g0nsr21bkbg2qb6sw7wzins5hv80qhdhi77sdaj"))))
+                "0cdcb89ab6q7b6jd898bnvrd1sifbd2xr42qgji98h8d5cq4b6fp"))))
     (build-system font-build-system)
     (home-page "https://typodermicfonts.com/canada1500/")
     (synopsis "Canadian typeface that supports English, French and Aboriginal languages")
@@ -197,21 +197,45 @@ includes lining and old-style numerals, tabular and proportional.  Greek,
 Cyrillic, Canadian Syllabics and most Latin based languages are supported.")
     (license license:cc0)))
 
-(define-public font-cantarell
+(define-public font-abattis-cantarell
   (package
     (name "font-abattis-cantarell")
-    (version "0.301")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/cantarell-fonts/"
-                                  (version-major+minor version)
-                                  "/cantarell-fonts-" version ".tar.xz"))
-              (sha256
-               (base32
-                "10sycxscs9kzl451mhygyj2qj8qlny8pamskb86np7izq05dnd9x"))))
-    (build-system meson-build-system)
+    (version "0.303")
+    (source
+     (origin
+       (method url-fetch/zipbomb)
+       (uri (string-append "https://gitlab.gnome.org/GNOME/cantarell-fonts/-/"
+                           "jobs/1515399/artifacts/download"))
+       (file-name (string-append name "-" version "-static"))
+       (sha256
+        (base32 "1dz551xrrhx6l40j57ksk2alllrihghg4947z1r88dpcq3snpn1s"))))
+    (build-system font-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unpack-source
+           ;; The actual OTF fonts are prebuilt (building them requires at least
+           ;; the currently unpackaged psautohint and its numerous dependencies;
+           ;; TODO), but unpack the source so that COPYING is installed later.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "tar" "--strip-components=1" "-xvf"
+                     (string-append "build/meson-dist/cantarell-fonts-"
+                                    ,version ".tar.xz"))))
+         (add-after 'unpack 'unpack-variable-font
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((variable-font (assoc-ref inputs "variable-font")))
+               (copy-recursively (string-append variable-font "/prebuilt")
+                                 ".")))))))
     (native-inputs
-     `(("gettext" ,gettext-minimal)))   ; for msgfmt
+     `(("variable-font"
+        ,(origin
+           (method url-fetch/zipbomb)
+           (uri (string-append "https://gitlab.gnome.org/GNOME/cantarell-fonts/-/"
+                               "jobs/1515398/artifacts/download"))
+           (file-name (string-append name "-" version "-variable"))
+           (sha256
+            (base32 "0z93pbkxidsx3y98rsl2jm2qpvxv5pj0w870xhnsciglw6pc9a9i"))))
+       ("unzip" ,unzip)))
     (home-page "https://wiki.gnome.org/Projects/CantarellFonts")
     (synopsis "Cantarell sans-serif typeface")
     (description "The Cantarell font family is a contemporary Humanist
@@ -296,7 +320,7 @@ The Lato 2.010 family supports more than 100 Latin-based languages, over
                                    (find-files "." "")))))))
        #:test-target "tests"))
     ;; FreeFont anno 2012 requires a FontForge built with Python 2.
-    (native-inputs `(("fontforge" ,fontforge-20190801)))
+    (native-inputs (list fontforge-20190801))
     (home-page "https://www.gnu.org/software/freefont/")
     (synopsis "Unicode-encoded outline fonts")
     (description
@@ -307,21 +331,18 @@ The Lato 2.010 family supports more than 100 Latin-based languages, over
     (properties '((upstream-name . "freefont")
                   (ftp-directory . "/gnu/freefont")))))
 
-(define-public font-gnu-freefont-ttf
-  (deprecated-package "font-gnu-freefont-ttf" font-gnu-freefont))
-
 (define-public font-liberation
   (package
     (name "font-liberation")
-    (version "2.1.4")
+    (version "2.1.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "https://github.com/liberationfonts/liberation-fonts/"
-             "files/6418984/liberation-fonts-ttf-" version ".tar.gz"))
+             "files/7261482/liberation-fonts-ttf-" version ".tar.gz"))
        (sha256
-        (base32 "1vx5q5bif9d1cn5pvm78203sf4may2mch72aa1hx1a8avl959y16"))))
+        (base32 "1l15iwk0x75621q67qlh9wv561c0gc7x0kh9l9rrz29qpxlwd4bi"))))
     (build-system font-build-system)
     (home-page "https://github.com/liberationfonts")
     (synopsis "Fonts compatible with Arial, Times New Roman, and Courier New")
@@ -372,7 +393,7 @@ and Bitstream Vera Sans Mono).
                          (find-files "." "\\.sfd$"))
                #t))))))
     (native-inputs
-     `(("fontforge" ,fontforge)))
+     (list fontforge))
     (home-page "http://www.linuxlibertine.org/")
     (synopsis "Serif and sans serif typefaces")
     (description "The Linux Libertine fonts is a set of typefaces containing
@@ -452,11 +473,7 @@ The unified Libertinus family consists of:
                (apply invoke "make" "install-otb" (string-append "prefix=" otb)
                       make-flags)))))))
     (native-inputs
-     `(("bdftopcf" ,bdftopcf)
-       ("font-util" ,font-util)
-       ("mkfontdir" ,mkfontdir)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python)))
+     (list bdftopcf font-util mkfontdir pkg-config python))
     (home-page "http://terminus-font.sourceforge.net/")
     (synopsis "Simple bitmap programming font")
     (description "Terminus Font is a clean, fixed-width bitmap font, designed
@@ -719,7 +736,7 @@ for use at smaller text sizes")))
 (define-public font-gnu-unifont
   (package
     (name "font-gnu-unifont")
-    (version "13.0.06")
+    (version "14.0.01")
     (source
      (origin
        (method url-fetch)
@@ -729,22 +746,21 @@ for use at smaller text sizes")))
              (string-append "mirror://gnu/unifont/unifont-"
                             version "/unifont-" version ".tar.gz")))
        (sha256
-        (base32 "09g91g0gv76sadslp70m5xwfk3jf8kh7rpk2pz3l2hpldnjggpk8"))))
+        (base32 "0wkdn8h20pprna5a3hbny0qk2mgksrbxs2y6ng6qarj6rkpdmlbs"))))
     (build-system gnu-build-system)
     (outputs '("out"   ; TrueType version
                "pcf"   ; PCF (bitmap) version
                "psf"   ; PSF (console) version
                "bin")) ; Utilities to manipulate '.hex' format
     (arguments
-     '(#:tests? #f          ; no check target
+     `(#:tests? #f          ; no check target
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target)))
        #:phases
        (modify-phases %standard-phases
-         (replace
-          'configure
-          (lambda _ (setenv "CC" "gcc") #t))
-         (replace
-          'install
-          (lambda* (#:key outputs #:allow-other-keys)
+         (delete 'configure)
+         (replace 'install
+          (lambda* (#:key make-flags outputs #:allow-other-keys)
             (let* ((ttf (string-append (assoc-ref outputs "out")
                                        "/share/fonts/truetype"))
                    (pcf (string-append (assoc-ref outputs "pcf")
@@ -752,20 +768,19 @@ for use at smaller text sizes")))
                    (psf (string-append (assoc-ref outputs "psf")
                                        "/share/consolefonts"))
                    (bin (assoc-ref outputs "bin")))
-              (invoke "make"
-                      (string-append "PREFIX=" bin)
-                      (string-append "TTFDEST=" ttf)
-                      (string-append "PCFDEST=" pcf)
-                      (string-append "CONSOLEDEST=" psf)
-                      "install")
+              (apply invoke "make" "install"
+                     (string-append "PREFIX=" bin)
+                     (string-append "TTFDEST=" ttf)
+                     (string-append "PCFDEST=" pcf)
+                     (string-append "CONSOLEDEST=" psf)
+                     make-flags)
               ;; Move Texinfo file to the right place.
               (mkdir (string-append bin "/share/info"))
               (invoke "gzip" "-9n" "doc/unifont.info")
               (install-file "doc/unifont.info.gz"
-                            (string-append bin "/share/info"))
-              #t))))))
+                            (string-append bin "/share/info"))))))))
     (inputs
-     `(("perl" ,perl))) ; for utilities
+     (list perl)) ; for utilities
     (synopsis
      "Large bitmap font covering Unicode's Basic Multilingual Plane")
     (description
@@ -821,7 +836,7 @@ visual language \"Material Design\".")
 (define-public font-borg-sans-mono
   (package
     (name "font-borg-sans-mono")
-    (version "0.3.1")
+    (version "0.3.3")
     (source
      (origin
        (method url-fetch)
@@ -830,7 +845,7 @@ visual language \"Material Design\".")
              "/releases/download/v" version "/borg-sans-mono.zip"))
        (sha256
         (base32
-         "1xxakd9nfb8wz76rh0gbd69gh0mlqs2453g0j516xgxn8bxip2yj"))))
+         "0xzi866ag9w4q114bn984yjfy72pmfs563v5yy1rkbqycphgwwyp"))))
     (build-system font-build-system)
     (home-page "https://github.com/charje/borg-sans-mono")
     (synopsis "The Borg Sans Mono font")
@@ -956,7 +971,7 @@ Powerline support.")
 (define-public font-adobe-source-code-pro
   (package
     (name "font-adobe-source-code-pro")
-    (version "2.030R-ro-1.050R-it")
+    (version "2.032R-ro-1.052R-it-1.012R-VAR")
     (source
      (origin
        (method git-fetch)
@@ -965,10 +980,12 @@ Powerline support.")
              (commit (regexp-substitute/global
                       ;; The upstream tag uses "/" between the roman and italic
                       ;; versions, so substitute our "-" separator here.
-                      #f "R-ro-" version 'pre "R-ro/" 'post))))
+                      #f "((R-ro)|(R-it))(-)" version
+                      'pre 1 "/" 'post
+                      ))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0hc5kflr8xzqgdm0c3gbgb1paygznxmnivkylid69ipc7wnicx1n"))))
+        (base32 "1lqchm8z0ah5y675ycmciqvr8y1v1gcj22ysfs443gm291vy0z4v"))))
     (build-system font-build-system)
     (home-page "https://github.com/adobe-fonts/source-code-pro")
     (synopsis
@@ -1258,7 +1275,7 @@ guix repl <<EOF
              (ice-9 string-fun)
              (gnu packages fonts))
 
-(let ((new-version "7.0.3")
+(let ((new-version "11.2.0")
       (iosevka-hashes #nil)
       (iosevka-fails #nil))
   (for-each (lambda (font)
@@ -1292,7 +1309,7 @@ EOF
 (define-public font-iosevka
   (package
     (name "font-iosevka")
-    (version "7.0.3")
+    (version "11.2.0")
     (source
      (origin
        (method url-fetch/zipbomb)
@@ -1300,7 +1317,7 @@ EOF
                            "/releases/download/v" version
                            "/ttc-iosevka-" version ".zip"))
        (sha256
-        (base32 "08n1c2j38vd1qrf18ilgvq6rl7z9yrsyq9ljf037yiw6zlphx4da"))))
+        (base32 "16a5bbjy9kn62pbrmam6jvcki4xvbakxbqzv72kkpz7p10b10vz7"))))
     (build-system font-build-system)
     (home-page "https://be5invis.github.io/Iosevka/")
     (synopsis "Coders' typeface, built from code")
@@ -1323,7 +1340,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttc-iosevka-slab-" version ".zip"))
        (sha256
-        (base32 "1ggrbl8gi2hv8yiw7vw8cajlv7nkz8i975165cayyzppjlrfs3nr"))))))
+        (base32 "068nd8wph44r9ka3fd7b5jhph505w08ibn3dmd7czdcp1fkr7dhi"))))))
 
 (define-public font-iosevka-term
   (package
@@ -1337,7 +1354,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttf-iosevka-term-" version ".zip"))
        (sha256
-        (base32 "1jmbp3hni99l92653b356nbmj45kd54kbl6c6ws1k5jxydrjglrh"))))
+        (base32 "0a22pnr74l87ajprcki3j3fc5cryfr5krpxang0b51grkdb9l724"))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1358,7 +1375,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "releases/download/v" version "/"
                            "ttf-iosevka-term-slab-" version ".zip"))
        (sha256
-        (base32 "19fc6jbkv0aif6ds9ddxaarz2ambzln7y6k2qjsczwlbznr8cf09"))))
+        (base32 "00nsykwa1r198wrh85d42vbjwpxxsmzdn3i4fighdrd3c99fbv60"))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1379,7 +1396,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttc-iosevka-aile-" version ".zip"))
        (sha256
-        (base32 "1bkrk4dqkj45fbaac2n61a5kwxs3bk6sdm5hanw7g2h4xb83fi8d"))))))
+        (base32 "11xajywv20ah6yg3a0sqv2lp5phg8yv268dw2myz3ciazwnvdpqq"))))))
 
 (define-public font-iosevka-curly
   (package
@@ -1393,7 +1410,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "releases/download/v" version  "/"
                            "ttc-iosevka-curly-" version ".zip"))
        (sha256
-        (base32 "12jdb38dlbwa58q0b0sf9sp1dcafzp9dcf71jf1wrlnn8047vxyx"))))))
+        (base32 "1ss11pdrk7k0kwbaklllz4mb961j6issjp53jpp7p9pvs4qad8xf"))))))
 
 (define-public font-iosevka-curly-slab
   (package
@@ -1407,7 +1424,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "releases/download/v" version  "/"
                            "ttc-iosevka-curly-slab-" version ".zip"))
        (sha256
-        (base32 "0zn21bxyj0ni4vbdarwam2piixzvkdk769vg3k4fl3h03q56cj24"))))))
+        (base32 "141jyarpmln5q3cjyq79nw9kfm55vaiy3cin3rlamghrhjw8wg9q"))))))
 
 (define-public font-iosevka-etoile
   (package
@@ -1421,7 +1438,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttc-iosevka-etoile-" version ".zip"))
        (sha256
-        (base32 "0lnpdvv20g2bg6rwl0gv83bkbgfmkbyfxshhpw9vprfs2g8k6lil"))))))
+        (base32 "097b8acia49fqpsy3w6ldk73k4abn6z9mlkl1p4iw99k26ip1sy7"))))))
 
 (define-public font-sarasa-gothic
   (package
@@ -1443,7 +1460,7 @@ programming.  Iosevka is completely generated from its source code.")
                       (mkdir "source")
                       (chdir "source")
                       (invoke "7z" "x" source))))))
-    (native-inputs `(("p7zip" ,p7zip)))
+    (native-inputs (list p7zip))
     (home-page "https://github.com/be5invis/Sarasa-Gothic")
     (license license:silofl1.1)
     (synopsis "Sarasa Gothic / 更纱黑体 / 更紗黑體 / 更紗ゴシック / 사라사 고딕")
@@ -1559,7 +1576,7 @@ resolutions.")
          (base32
           "11ml7v4iyf3hr0fbnkwz8afb8vi58wbcfnmn4gyvrwh9jk5pybdr"))))
     (build-system font-build-system)
-    (native-inputs `(("unzip" ,unzip)))
+    (native-inputs (list unzip))
     (home-page "https://opendyslexic.org/")
     (synopsis "Font for dyslexics and high readability")
     (description "OpenDyslexic is a font designed to help readability for some
@@ -1571,9 +1588,6 @@ swapping.  The italic style for OpenDyslexic has been crafted to be used for
 emphasis while still being readable.")
     (license license:silofl1.1)))
 
-(define-public font-open-dyslexic
-  (deprecated-package "font-open-dyslexic" font-opendyslexic))
-
 (define-public font-openmoji
   (package
     (name "font-openmoji")
@@ -1590,7 +1604,7 @@ emphasis while still being readable.")
          "0wvvg5vnc950h8v23wfgjyi7rv89mgm5hqq6viqv0bxcc3azglxb"))))
     (build-system font-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://openmoji.org")
     (synopsis "Font for rendering emoji characters")
     (description
@@ -1659,7 +1673,7 @@ ExtraLight, Light, Book, Medium, Semibold, Bold & ExtraBold")
                          (find-files "." "^Nachlieli.*\\.sfd$"))
                #t))))))
     (native-inputs
-     `(("fontforge" ,fontforge)))
+     (list fontforge))
     (home-page "http://culmus.sourceforge.net/")
     (synopsis "TrueType Hebrew Fonts for X11")
     (description "14 Hebrew trivial families.  Contain ASCII glyphs from various
@@ -1944,25 +1958,25 @@ in small sizes, the text looks crisper.")
 (define-public font-juliamono
   (package
     (name "font-juliamono")
-    (version "0.031")
+    (version "0.043")
     (source
      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/cormullion/juliamono")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/cormullion/juliamono/releases/download/"
+             "v" version "/JuliaMono-ttf.tar.gz"))
        (sha256
-        (base32 "0pcz2qaw0g0gak4plvhgg3m76h4gamffa373r52dzx0qwn1i1cf1"))))
+        (base32
+         "0vb7n9yqgasnxzps13ckklay5bla6b0i79pzmfqvjms1r37079gh"))))
     (build-system font-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'delete-website-folder
-           ;; This folder contains other unrelated fonts.
-           (lambda _
-             (delete-file-recursively "website")
-             #t)))))
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'unpack
+                    (lambda* (#:key source #:allow-other-keys)
+                      (mkdir "source")
+                      (chdir "source")
+                      (invoke "tar" "xzf" source))))))
+    (native-inputs (list tar))
     (home-page "https://github.com/cormullion/juliamono")
     (synopsis "Monospaced font for programming")
     (description
@@ -2050,7 +2064,7 @@ It comes in seven weights and Roman, Italic and Oblique styles.")
        ("harfbuzz" ,harfbuzz "bin")
        ("python" ,python-minimal)
        ("python-fonttools" ,python-fonttools)
-       ("python-google-brotli" ,python-google-brotli)))
+       ("python-brotli" ,python-brotli)))
     (arguments
      `(#:make-flags (list "PY=python3"
                           (string-append "DESTDIR=" %output)
@@ -2187,7 +2201,7 @@ suitable for a wide range of uses.")
 (define-public font-cozette
   (package
     (name "font-cozette")
-    (version "1.9.3")
+    (version "1.13.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2196,21 +2210,28 @@ suitable for a wide range of uses.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0mb5ns6705piwgjw1g10czsakhyc1jnvxh342ixw8m5f1gf4595n"))))
+                "178i812n4sfsvid7jhnm683jlxqmrv4ck6qbb4nwyllhwg3gyq60"))))
     (build-system font-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'dont-depend-on-git
+           (lambda _
+             (substitute* "build.py"
+               ;; Merely importing this module requires a git repository.
+               ;; We don't use get_changelog, so just disable the import.
+               (("from cozette_builder\\.changeloggen import get_changelog")
+                ""))))
          (add-before 'install 'build
            (lambda _
              (invoke "python3" "build.py" "fonts"))))))
     (native-inputs
-     `(("fontforge" ,fontforge)
-       ("python" ,python)
-       ("python-crayons" ,python-crayons)
-       ("python-fonttools" ,python-fonttools)
-       ("python-numpy" ,python-numpy)
-       ("python-pillow" ,python-pillow)))
+     (list fontforge
+           python
+           python-crayons
+           python-fonttools
+           python-numpy
+           python-pillow))
     (home-page "https://github.com/slavfox/Cozette")
     (synopsis "Bitmap programming font")
     (description "Cozette is a 6x13px (bounding box) bitmap font based on Dina
@@ -2242,16 +2263,16 @@ half of the twentieth century.")
 (define-public font-overpass
   (package
     (name "font-overpass")
-    (version "3.0.4")
+    (version "3.0.5")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/RedHatOfficial/Overpass")
-             (commit version)))
+             (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1pl7zpwlx0j2xv23ahnpmbb4a5d6ib2cjck5mxqzi3jjk25rk9kb"))))
+        (base32 "1vsp94h7v5sn29hajv2ng94gyx4pqb0xgvn3gf7jp2q80gdv8pkm"))))
     (build-system font-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 8e0980dd95..bc082de3d3 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -11,7 +11,7 @@
 ;;; Copyright © 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
@@ -35,7 +35,6 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages bison)
-  #:use-module (gnu packages build-tools)   ;for meson-0.55
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages datastructures)
@@ -93,12 +92,11 @@
     ;; depend on it.
     `(#:configure-flags (list "--enable-freetype-config")))
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    (list pkg-config))
    (propagated-inputs
     ;; These are all in the Requires.private field of freetype2.pc.
     ;; XXX: add harfbuzz.
-    `(("libpng" ,libpng)
-      ("zlib" ,zlib)))
+    (list libpng zlib))
    (synopsis "Font rendering library")
    (description
     "Freetype is a library that can be used by applications to access the
@@ -123,12 +121,9 @@ anti-aliased glyph bitmap generation with 256 gray levels.")
          "0zpqgihn3yh3v51ynxwr8asqrijvs4gv686clwv7bm8sawr4kfw7"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("flex" ,flex)
-       ("bison" ,bison)
-       ("pkg-config" ,pkg-config)))
+     (list flex bison pkg-config))
     (inputs
-     `(("freetype" ,freetype)
-       ("harfbuzz" ,harfbuzz)))
+     (list freetype harfbuzz))
     (arguments
      `(#:configure-flags '("--disable-static"
                            "--with-qt=no"))) ;no gui
@@ -156,7 +151,7 @@ scripts.")
          "1i97gkqa6jfzlslsngqf556kx60knlgf7yc9pzsq2pizc6f0d4zl"))))
     (build-system gnu-build-system)
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (arguments
      `(#:make-flags '(,(string-append "CC=" (cc-for-target)))
        #:tests? #f                      ;no tests
@@ -259,7 +254,7 @@ TTF (TrueType/OpenType Font) files.")
                       (invoke "make" "-j"
                               (number->string (parallel-job-count))
                               "all" "CC=gcc"))))))
-    (inputs `(("perl" ,perl)))
+    (inputs (list perl))
     (synopsis "Convert TrueType fonts to Postscript Type 1")
     (description
      "TTF2PT1 provides tools to convert most TrueType fonts (or other formats
@@ -312,9 +307,9 @@ work with most software requiring Type 1 fonts.")
                 "BUILD_SHARED_LIBS"))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("brotli" ,google-brotli)))
+     (list brotli))
     (synopsis "Libraries and tools for WOFF2 font format")
     (description "WOFF2 provides libraries and tools to handle the Web Open
 Font Format (WOFF).")
@@ -327,14 +322,13 @@ Font Format (WOFF).")
      (name "fontconfig-minimal")
      (version "2.13.94")
      (source (origin
-            (method url-fetch)
-            (uri (string-append
-                  "https://www.freedesktop.org/software/"
-                  "fontconfig/release/fontconfig-" version ".tar.xz"))
-            (sha256
-             (base32
-              "0g004r0bkkqz00mpm3svnnxn7d83158q0yb9ggxryizxfg5m5w55"))
-             (patches (search-patches "fontconfig-cache-ignore-mtime.patch"))))
+               (method url-fetch)
+               (uri (string-append
+                     "https://www.freedesktop.org/software/"
+                     "fontconfig/release/fontconfig-" version ".tar.xz"))
+               (sha256 (base32
+                        "0g004r0bkkqz00mpm3svnnxn7d83158q0yb9ggxryizxfg5m5w55"))
+               (patches (search-patches "fontconfig-cache-ignore-mtime.patch"))))
      (build-system gnu-build-system)
      ;; In Requires or Requires.private of fontconfig.pc.
      (propagated-inputs `(("expat" ,expat)
@@ -344,7 +338,7 @@ Font Format (WOFF).")
       ;; We use to use 'font-ghostscript' but they are not recognized by newer
       ;; versions of Pango, causing many applications to fail to find fonts
       ;; otherwise.
-      `(("font-dejavu" ,font-dejavu)))
+      (list font-dejavu))
      (native-inputs
       `(("gperf" ,gperf)
         ("pkg-config" ,pkg-config)
@@ -356,12 +350,7 @@ Font Format (WOFF).")
               ;; register the default fonts
               (string-append "--with-default-fonts="
                              (assoc-ref %build-inputs "font-dejavu")
-                             "/share/fonts")
-
-              ;; Register fonts from user and system profiles.
-              (string-append "--with-add-fonts="
-                             "~/.guix-profile/share/fonts,"
-                             "/run/current-system/profile/share/fonts"))
+                             "/share/fonts"))
         #:phases
         (modify-phases %standard-phases
           (add-before 'check 'skip-problematic-tests
@@ -393,6 +382,12 @@ high quality, anti-aliased and subpixel rendered text on a display.")
                                         ; The exact license is more X11-style than BSD-style.
      (license (license:non-copyleft "file://COPYING"
                                     "See COPYING in the distribution."))
+     (native-search-paths
+      ;; Since version 2.13.94, fontconfig knows to find fonts from
+      ;; XDG_DATA_DIRS.
+      (list (search-path-specification
+             (variable "XDG_DATA_DIRS")
+             (files '("share")))))
      (home-page "https://www.freedesktop.org/wiki/Software/fontconfig"))))
 
 ;;; The documentation of fontconfig is built in a separate package, as it
@@ -490,10 +485,9 @@ X11-system or any other graphical user interface.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (inputs
-     `(("zlib" ,zlib)
-       ("expat" ,expat)))
+     (list zlib expat))
     (native-inputs
-     `(("perl" ,perl)))                 ;for the tests
+     (list perl))                 ;for the tests
     (synopsis "Toolkit for encoding conversions")
     (description
      "TECkit is a low-level toolkit intended to be used by other applications
@@ -530,10 +524,9 @@ applications should be.")
          "01jzhwnj1c3d68dmw15jdxly0hwkmd8ja4kw755rbkykn1ly2qyx"))))
    (build-system cmake-build-system)
    (native-inputs
-    `(("python" ,python)
-      ("python-fonttools" ,python-fonttools)))
+    (list python python-fonttools))
    (inputs
-    `(("freetype" ,freetype)))
+    (list freetype))
    (synopsis "Reimplementation of the SIL Graphite text processing engine")
    (description
     "Graphite2 is a reimplementation of the SIL Graphite text processing
@@ -556,8 +549,8 @@ and returns a sequence of positioned glyphids from the font.")
        (base32
         "1k3sxgjqq0jnpk9xxys05q32sl5hbf1lbk1gmfxcrmpdgnhli0my"))))
     (build-system gnu-build-system)
-    (native-inputs `(("ghostscript" ,ghostscript))) ;for tests
-    (inputs `(("zlib" ,zlib)))
+    (native-inputs (list ghostscript)) ;for tests
+    (inputs (list zlib))
     (arguments
      `(#:configure-flags
       `("--with-libpotrace"))) ; install library and headers
@@ -585,9 +578,9 @@ resolution.")
                (base32 "0sq6g3xaxw388akws6qrllp3kp2sxgk2dv4j79k6mm52rnihrnv8"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
-     `(("freetype" ,freetype)))
+     (list freetype))
     (home-page "https://www.nongnu.org/m17n/")
     (synopsis "Library for handling OpenType Font")
     (description "This library can read Open Type Layout Tables from an OTF
@@ -657,7 +650,7 @@ definitions.")
              (base32 "0y3c8x1i6yf6ak9m5dhr1nldgfmg7zhnwdfd57ffs698c27vmg38"))))
    (build-system cmake-build-system)
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    (list pkg-config))
    (inputs `(("cairo"           ,cairo)
              ("fontconfig"      ,fontconfig) ;dlopen'd
              ("freetype"        ,freetype)
@@ -758,11 +751,9 @@ generate bitmaps.")
     (arguments
      `(#:python ,python-2))
     (propagated-inputs
-     `(("python2-fonttools" ,python2-fonttools)))
+     (list python2-fonttools))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("python2-pytest" ,python2-pytest)
-       ("python2-pytest-runner" ,python2-pytest-runner)))
+     (list unzip python2-pytest python2-pytest-runner))
     (home-page "https://github.com/unified-font-object/ufoLib")
     (synopsis "Low-level UFO reader and writer")
     (description
@@ -785,12 +776,9 @@ files.  UFO is a file format that stores fonts source files.")
     (arguments
      `(#:python ,python-2))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("python2-pytest" ,python2-pytest)
-       ("python2-pytest-runner" ,python2-pytest-runner)))
+     (list unzip python2-pytest python2-pytest-runner))
     (propagated-inputs
-     `(("python2-fonttools" ,python2-fonttools)
-       ("python2-ufolib" ,python2-ufolib)))
+     (list python2-fonttools python2-ufolib))
     (home-page "https://pypi.org/project/defcon/")
     (synopsis "Flexible objects for representing @acronym{UFO, unified font object} data")
     (description
@@ -821,12 +809,12 @@ implements UFO3 as described by the UFO font format.")
     (arguments
      `(#:python ,python-2))
     (propagated-inputs
-     `(("python2-booleanoperations" ,python2-booleanoperations)
-       ("python2-defcon" ,python2-defcon)
-       ("python2-fonttools" ,python2-fonttools)
-       ("python2-pillow" ,python2-pillow)
-       ("python2-pyclipper" ,python2-pyclipper)
-       ("python2-ufolib" ,python2-ufolib)))
+     (list python2-booleanoperations
+           python2-defcon
+           python2-fonttools
+           python2-pillow
+           python2-pyclipper
+           python2-ufolib))
     (home-page "https://github.com/googlei18n/nototools")
     (synopsis "Noto fonts support tools and scripts")
     (description
@@ -847,7 +835,7 @@ maintain the Noto Fonts project.")
 (define-public fcft
   (package
     (name "fcft")
-    (version "2.4.1")
+    (version "2.5.1")
     (home-page "https://codeberg.org/dnkl/fcft")
     (source (origin
               (method git-fetch)
@@ -855,20 +843,17 @@ maintain the Noto Fonts project.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "00rwh5qfayihrq0wjx8pxqw5ah6g5ym6raxvdbqb6g6rk7m2j423"))))
+                "0dn0ic2ddi5qz6nqscsn7nlih67ad8vpclppbqwas6xavdfq6va2"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("check" ,check)
-       ("gcc" ,gcc-10)    ;TODO: Remove when the default compiler is > GCC 7.
-       ("pkg-config" ,pkg-config)
-       ("scdoc" ,scdoc)))
+     (list check pkg-config scdoc))
     (propagated-inputs
-     `(;; Required by fcft.pc.
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("harfbuzz" ,harfbuzz)
-       ("pixman" ,pixman)
-       ("tllist" ,tllist)))
+     (list ;; Required by fcft.pc.
+           fontconfig
+           freetype
+           harfbuzz
+           pixman
+           tllist))
     (synopsis "Font loading and glyph rasterization library")
     (description
      "@code{fcft} is a small font loading and glyph rasterization library
@@ -889,7 +874,7 @@ generated list of fallback fonts are checked.")
 (define-public fontmanager
   (package
    (name "fontmanager")
-   (version "0.8.4")
+   (version "0.8.7")
    (source
     (origin
       (method git-fetch)
@@ -898,8 +883,7 @@ generated list of fallback fonts are checked.")
             (commit version)))
       (file-name (git-file-name name version))
       (sha256
-       (base32
-        "09rv0srpj8ann2n1zpv1frlpxz0x10d2y21c5lys7pmfngljlxi9"))))
+       (base32 "0nyda2a6vbzyz4sn9mmrr8bkifzxmmjp7x9a3c4s6n925ccy79cn"))))
    (build-system meson-build-system)
    (arguments
     `(#:glib-or-gtk? #t
@@ -914,16 +898,16 @@ generated list of fallback fonts are checked.")
       ("glib" ,glib "bin")
       ("gobject-introspection" ,gobject-introspection)
       ("pkg-config" ,pkg-config)
-      ("vala" ,vala)
+      ("vala" ,vala-0.52)
       ("yelp-tools" ,yelp-tools)))
    (inputs
     `(("fonconfig" ,fontconfig)
       ("freetype" ,freetype)
       ("gtk+" ,gtk+)
       ("json-glib" ,json-glib)
-      ("libsoup" ,libsoup)
+      ("libsoup" ,libsoup-minimal-2)
       ("sqlite" ,sqlite)
-      ("webkitgtk" ,webkitgtk)))
+      ("webkitgtk" ,webkitgtk-with-libsoup2)))
    (home-page "https://fontmanager.github.io/")
    (synopsis "Simple font management for GTK+ desktop environments")
    (description "Font Manager is intended to provide a way for users to
@@ -936,7 +920,7 @@ work well with other GTK+ desktop environments.")
 (define-public fntsample
   (package
     (name "fntsample")
-    (version "5.3")
+    (version "5.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -945,7 +929,7 @@ work well with other GTK+ desktop environments.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "02rx3gp7k472304vhjwb129nw10a29s4nvgs7i2m6bpjhlk2xgs5"))))
+                "0pcqqdriv6hq64zrqd9vhdd9p2vhimjnajcxdz10qnqgrkmm751v"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; There are no tests.
@@ -966,8 +950,7 @@ work well with other GTK+ desktop environments.")
                                              "/lib/perl5/site_perl/"
                                              ,(package-version perl))))
                (wrap-program (string-append out "/bin/pdfoutline")
-                 `("PERL5LIB" ":" prefix (,perllib)))
-               #t))))))
+                 `("PERL5LIB" ":" prefix (,perllib)))))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("gettext" ,gettext-minimal)))
@@ -980,13 +963,15 @@ work well with other GTK+ desktop environments.")
        ("perl-pdf-api2" ,perl-pdf-api2)
        ("perl-libintl-perl" ,perl-libintl-perl)
        ("unicode-blocks"
-        ,(origin
-           (method url-fetch)
-           (uri "https://unicode.org/Public/UNIDATA/Blocks.txt")
-           (file-name "unicode-blocks.txt")
-           (sha256
-            (base32
-             "1xs8fnhh48gs41wg004r7m4r2azh9khmyjjlnvyzy9c6zrd212x2"))))))
+        ,(let ((version "14.0.0"))
+           (origin
+             (method url-fetch)
+             (uri (string-append "https://unicode.org/Public/"
+                                 version "/ucd/Blocks.txt"))
+             (file-name (string-append "unicode-blocks-" version ".txt"))
+             (sha256
+              (base32
+               "05vzgrvfp35mgxjgkm4wnxjjgzva8n6545i9jxd4pczpvvfp122r")))))))
     (home-page "https://github.com/eugmes/fntsample")
     (synopsis "PDF and PostScript font samples generator")
     (description "This package provides a tool that can be used to make font
@@ -997,26 +982,21 @@ Unicode Charts.  It was developed for use with DejaVu Fonts project.")
 (define-public libraqm
   (package
     (name "libraqm")
-    (version "0.7.1")
+    (version "0.8.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/HOST-Oman/libraqm/"
-                           "releases/download/v" version "/"
-                           "raqm-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/HOST-Oman/libraqm")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0a4q9dziirb85sa9rmkamg2krdhd009di2vlz91njwxcp3q8qj46"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:configure-flags (list "--disable-static")))
+        (base32 "0qrdw67n14n0km2f8l0gk8scgj3ybz662s9x8jwj3rrj33nl2d1a"))))
+    (build-system meson-build-system)
     (native-inputs
-     `(("gtk-doc" ,gtk-doc/stable)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)))
+     (list gtk-doc/stable pkg-config python-wrapper))
     (inputs
-     `(("freetype" ,freetype)
-       ("fribidi" ,fribidi)
-       ("harfbuzz" ,harfbuzz)))
+     (list freetype fribidi harfbuzz))
     (home-page "https://github.com/HOST-Oman/libraqm")
     (synopsis "Library for complex text layout")
     (description
@@ -1048,8 +1028,7 @@ can support most writing systems covered by Unicode.")
        ;; FIXME: texlive-kpathsea doesn't come with the library and headers
        (list "--without-kpathsea")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (home-page "https://lcdf.org/type/")
     (synopsis "Multiple font manipulation tools")
     (description "LCDF Typetools comprises several programs for manipulating
diff --git a/gnu/packages/forth.scm b/gnu/packages/forth.scm
index 4dcea19f4e..8cb6ac8391 100644
--- a/gnu/packages/forth.scm
+++ b/gnu/packages/forth.scm
@@ -49,7 +49,7 @@
                (install-file "gforth.el" emacs-sitedir)
                #t))))))
     (native-inputs
-     `(("m4" ,m4)))
+     (list m4))
     (synopsis "Forth interpreter")
     (description
      "Gforth is a fast and portable implementation of the ANSI Forth language.
diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm
index 40cf9cc427..b219ddc27b 100644
--- a/gnu/packages/fpga.scm
+++ b/gnu/packages/fpga.scm
@@ -74,9 +74,9 @@
                 "1syygi1x40rdryih3galr4q8yg1w5bvdzl75hd27v1xq0l5bz3d0"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (inputs
-     `(("readline" ,readline)))
+     (list readline))
     (arguments
      `(#:tests? #f ; no check target
        #:phases
@@ -108,9 +108,7 @@ formal verification.")
                 "1vv88ckvfwq7mrysyjnilsrcrzm9d173kp9w5ivwh6rdw7klbgc6"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("flex" ,flex)
-       ("bison" ,bison)
-       ("ghostscript" ,ghostscript)))   ; ps2pdf
+     (list flex bison ghostscript))   ; ps2pdf
     (home-page "http://iverilog.icarus.com/")
     (synopsis "FPGA Verilog simulation and synthesis tool")
     (description "Icarus Verilog is a Verilog simulation and synthesis tool.
@@ -201,23 +199,23 @@ For synthesis, the compiler generates netlists in the desired format.")
                                                                 iverilog "\"")))
                      #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("bison" ,bison)
-       ("flex" ,flex)
-       ("gawk" , gawk) ; for the tests and "make" progress pretty-printing
-       ("tcl" ,tcl) ; tclsh for the tests
-       ("iverilog" ,iverilog))) ; for the tests
+     (list pkg-config
+           python
+           bison
+           flex
+           gawk ; for the tests and "make" progress pretty-printing
+           tcl ; tclsh for the tests
+           iverilog)) ; for the tests
     (inputs
-     `(("tcl" ,tcl)
-       ("readline" ,readline)
-       ("libffi" ,libffi)
-       ("graphviz" ,graphviz)
-       ("psmisc" ,psmisc)
-       ("xdot" ,xdot)
-       ("abc" ,abc)))
+     (list tcl
+           readline
+           libffi
+           graphviz
+           psmisc
+           xdot
+           abc))
     (propagated-inputs
-     `(("z3" ,z3))) ; should be in path for yosys-smtbmc
+     (list z3)) ; should be in path for yosys-smtbmc
     (home-page "http://www.clifford.at/yosys/")
     (synopsis "FPGA Verilog RTL synthesizer")
     (description "Yosys synthesizes Verilog-2005.")
@@ -258,7 +256,7 @@ For synthesis, the compiler generates netlists in the desired format.")
               #t))
           (delete 'configure))))
     (inputs
-     `(("libftdi" ,libftdi)))
+     (list libftdi))
     (native-inputs
      `(("python-3" ,python)
        ("pkg-config" ,pkg-config)))
@@ -285,12 +283,12 @@ Includes the actual FTDI connector.")
            (base32
             "1fmxsywgs45g88ra7ips5s2niiiwrkyxdcy742ws18dfk2y4vi9c"))))
       (inputs
-       `(("boost" ,boost)
-         ("eigen" ,eigen)
-         ("icestorm" ,icestorm)
-         ("python" ,python)
-         ("qtbase" ,qtbase-5)
-         ("yosys" ,yosys)))
+       (list boost
+             eigen
+             icestorm
+             python
+             qtbase-5
+             yosys))
       (build-system cmake-build-system)
       (arguments
        `(#:configure-flags `("-DARCH=ice40"
@@ -335,7 +333,7 @@ FOSS FPGA place and route tool.")
              (("#!/usr/bin/python") "#!/usr/bin/python2"))
            #t)))))
     (inputs
-     `(("icestorm" ,icestorm)))
+     (list icestorm))
     (native-inputs
      `(("git" ,git)  ; for determining its own version string
        ("yosys" ,yosys) ; for tests
@@ -349,7 +347,7 @@ FOSS FPGA place and route tool.")
 (define-public gtkwave
   (package
     (name "gtkwave")
-    (version "3.3.110")
+    (version "3.3.111")
     (source
      (origin
        (method url-fetch)
@@ -359,11 +357,10 @@ FOSS FPGA place and route tool.")
                   (string-append "http://gtkwave.sourceforge.net/"
                                  "gtkwave-" version ".tar.gz")))
        (sha256
-        (base32 "1hslmg39j9rays0cyash8zvrrbfyc55jdpq7hwc47ksr7bayvip4"))))
+        (base32 "15n2gv2hd7h23cci95ij7yr71fkxppb209sfdsmmngh3fik09rpn"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gperf" ,gperf)
-       ("pkg-config" ,pkg-config)))
+     (list gperf pkg-config))
     (inputs
      `(("tcl" ,tcl)
        ("tk" ,tk)
@@ -400,7 +397,7 @@ simulator trace files (@dfn{FST}).")
         (base32 "1kq11if64zj84gv4w1q7l16fp17xjxl2wv5hc9dibr1z3m1gy67l"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-colorama" ,python-colorama)))
+     (list python-colorama))
     (home-page "https://m-labs.hk/gateware/migen/")
     (synopsis "Python toolbox for building complex digital hardware")
     (description
@@ -432,7 +429,7 @@ a hardware description and verification language. ")
 (define-public nvc
   (package
     (name "nvc")
-    (version "1.5.2")
+    (version "1.5.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -441,7 +438,7 @@ a hardware description and verification language. ")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "1hjshyliaqi4vrw4q760rwmq6hvbpsvr2h4zl34k5j457004dy9l"))))
+                "1gjpwblp8isplyad3b6fl7cb5qv1rn3lf9qgf4l139y97cp2mm4s"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -452,16 +449,16 @@ a hardware description and verification language. ")
            (lambda _
              (delete-file "autogen.sh"))))))
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("flex" ,flex)
-       ("gettext" ,gnu-gettext)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("which" ,which)
-       ("check" ,check))) ; for the tests
+     (list automake
+           autoconf
+           flex
+           gnu-gettext
+           libtool
+           pkg-config
+           which
+           check)) ; for the tests
     (inputs
-     `(("llvm" ,llvm-9)))
+     (list llvm-9))
     (synopsis "VHDL compiler and simulator")
     (description "This package provides a VHDL compiler and simulator.")
     (home-page "https://github.com/nickg/nvc")
@@ -479,7 +476,7 @@ a hardware description and verification language. ")
              "systemc/systemc-" version ".tar.gz"))
        (sha256
         (base32 "0gvv3xmhiwx1izmzy06yslzqzh6ygrgmw53xqfmyvbz5a6ivk0ap"))))
-    (native-inputs `(("perl" ,perl)))
+    (native-inputs (list perl))
     (build-system gnu-build-system)
     (arguments '(#:configure-flags '("--enable-debug")))
     (home-page "https://accellera.org/community/systemc")
@@ -518,8 +515,7 @@ using different abstraction levels.")
        ("gettext" ,gettext-minimal)
        ("python" ,python)))
     (inputs
-     `(("perl" ,perl)
-       ("systemc" ,systemc)))
+     (list perl systemc))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 0f04a38c00..5e64a0bff7 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -2,8 +2,8 @@
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@pobox.com>
-;;; Copyright © 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2015, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015-2017, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
 ;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
@@ -11,7 +11,7 @@
 ;;; Copyright © 2017, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2017, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2017, 2020 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2017, 2020, 2021 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
@@ -22,11 +22,12 @@
 ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2020 Anders Thuné <asse.97@gmail.com>
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
-;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com>
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
 ;;; 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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -63,6 +64,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
@@ -189,13 +191,9 @@
        ("python" ,python-wrapper)
        ("xsltproc" ,libxslt)))
     (inputs
-     `(("libsoup" ,libsoup)
-       ("libstemmer" ,libstemmer)
-       ("libxml2" ,libxml2)
-       ("libyaml" ,libyaml)
-       ("lmdb" ,lmdb)))
+     (list libsoup-minimal-2 libstemmer libxml2 libyaml lmdb))
     (propagated-inputs
-     `(("glib" ,glib)))
+     (list glib))
     (synopsis "Tools and libraries to work with AppStream metadata")
     (description "AppStream is a cross-distribution effort for enhancing the way
 we interact with the software repositories provided by distributions by
@@ -225,12 +223,13 @@ application-centers for distributions.")
        (sha256
         (base32 "1sd8syldyq6bphfdm129s3gq554vfv7vh1vcwzk48gjryf101awk"))
        (patches
-        (search-patches "farstream-make.patch"))))
+        (search-patches
+         "farstream-gupnp.patch"        ;for test 'transmitter/rawudp'
+         "farstream-make.patch"))))
     (build-system glib-or-gtk-build-system)
     (outputs '("out" "doc"))
     (arguments
-     `(#:tests? #f ; https://gitlab.freedesktop.org/farstream/farstream/-/issues/18
-       #:configure-flags
+     `(#:configure-flags
        (list
         "--enable-gtk-doc"
         "--enable-glib-asserts"
@@ -246,6 +245,15 @@ application-centers for distributions.")
               (assoc-ref %build-inputs "common")
               "common")
              #t))
+         (add-after 'unpack 'disable-timeout-tests
+           (lambda _
+             (substitute* "tests/check/Makefile.am"
+               ;; This test timeouts despite changing
+               ;; the value of 'CK_DEFAULT_TIMEOUT' to 600,
+               ;; as per %common-gstreamer-phases.
+               ;; Reported to upstream:
+               ;; https://gitlab.freedesktop.org/farstream/farstream/-/issues/20
+               (("[ \t]*transmitter/nice.*$") ""))))
          (add-after 'unpack 'patch-docbook-xml
            (lambda* (#:key inputs #:allow-other-keys)
              (with-directory-excursion "docs"
@@ -279,15 +287,9 @@ application-centers for distributions.")
        ("python" ,python-wrapper)
        ("xsltproc" ,libxslt)))
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("gupnp-igd" ,gupnp-igd)
-       ("libnice" ,libnice)))
+     (list glib gtk+ gupnp-igd libnice))
     (propagated-inputs
-     `(("gstreamer" ,gstreamer)
-       ("gst-plugins-bad" ,gst-plugins-bad)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gst-plugins-good" ,gst-plugins-good)))
+     (list gstreamer gst-plugins-bad gst-plugins-base gst-plugins-good))
     (synopsis "The Farstream VVoIP framework")
     (description "Farstream is a collection of GStreamer modules and libraries
 for videoconferencing.")
@@ -326,8 +328,7 @@ for videoconferencing.")
        ("pkg-config" ,pkg-config)
        ("gtk-doc" ,gtk-doc/stable)))
     (inputs
-     `(("dbus" ,dbus)
-       ("glib" ,glib)))
+     (list dbus glib))
     (synopsis "Glib testing library")
     (description "Libglib-testing is a test library providing test harnesses and
 mock classes which complement the classes provided by GLib.  It is intended to
@@ -351,7 +352,8 @@ tests.")
         (base32 "0vnf0pk516fwwh41v96c29l2i7h1pnwhivlkbf53kkx1q35g7lb3"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59
+       #:glib-or-gtk? #t
        #:phases
        (modify-phases %standard-phases
          ;; AppInfo not available inside build environment.
@@ -372,15 +374,15 @@ tests.")
        ("libxml2" ,libxml2)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("accountsservice" ,accountsservice)
-       ("appstream-glib" ,appstream-glib)
-       ("dbus" ,dbus)
-       ("flatpak" ,flatpak)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libostree" ,libostree)
-       ("linux-pam" ,linux-pam)
-       ("polkit" ,polkit)))
+     (list accountsservice
+           appstream-glib
+           dbus
+           flatpak
+           glib
+           gtk+
+           libostree
+           linux-pam
+           polkit))
     (synopsis "Parental controls support")
     (description "MalContent implements parental controls support which can
 be used by applications to filter or limit the access of child accounts to
@@ -406,11 +408,7 @@ inappropriate content.")
              "1nai806smz3zcb2l5iny4x7li0fak0rzmjg6vlyhdqm8z25b166p"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("docbook-xsl" ,docbook-xsl)
-       ("docbook-xml" ,docbook-xml-4.1.2)
-       ("libxslt" ,libxslt)
-       ("w3m" ,w3m)
-       ("xmlto" ,xmlto)))
+     (list docbook-xsl docbook-xml-4.1.2 libxslt w3m xmlto))
     (inputs
      `(("awk" ,gawk)
        ("coreutils" ,coreutils)
@@ -482,14 +480,14 @@ freedesktop.org project.")
   ;; Updating this will rebuild over 700 packages through libinput-minimal.
   (package
     (name "libinput")
-    (version "1.16.4")
+    (version "1.19.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://freedesktop.org/software/libinput/"
                                   "libinput-" version ".tar.xz"))
               (sha256
                (base32
-                "0acywdjppj5i591l879bnqa9cs4vgdwnhilwk550x5x8sl33m4k5"))))
+                "10xqk05mkvsyxfxpn3vwkwb7j22d38wlbg1l1k37f6pfyc59zhqg"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags '("-Ddocumentation=false")
@@ -499,15 +497,14 @@ freedesktop.org project.")
        ;; Meson target anyway.
        #:build-type "release"))
     (native-inputs
-     `(("check" ,check)
-       ("pkg-config" ,pkg-config)))
+     (list check pkg-config))
     (inputs
-     `(("cairo" ,cairo)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libevdev" ,libevdev)
-       ("libwacom" ,libwacom)
-       ("mtdev" ,mtdev)))
+     (list cairo
+           glib
+           gtk+
+           libevdev
+           libwacom
+           mtdev))
     (propagated-inputs
      `(;; libinput.h requires <libudev.h>, so propagate it.
        ("udev" ,eudev)))
@@ -557,9 +554,7 @@ other applications that need to directly deal with input devices.")
                (("^.*\\./configure.*") ""))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (home-page "https://github.com/devnev/libxdg-basedir")
     (synopsis "Implementation of the XDG Base Directory specification")
     (description
@@ -570,7 +565,7 @@ the freedesktop.org XDG Base Directory specification.")
 (define-public elogind
   (package
     (name "elogind")
-    (version "243.7")
+    (version "246.10")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -579,7 +574,9 @@ the freedesktop.org XDG Base Directory specification.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1ccj3cbs9nsfg497wg195in1a7b9csm1jdm7z6q7vvx1ynpjxlxz"))))
+                "16045bhpwjq2nqgswln67ipg1zrz2djxlgkfngqng3jqpwagmnzq"))
+              (patches (search-patches
+                        "elogind-revert-polkit-detection.patch"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -587,10 +584,11 @@ the freedesktop.org XDG Base Directory specification.")
                  (sysconf (string-append out "/etc"))
                  (libexec (string-append out "/libexec/elogind"))
                  (dbuspolicy (string-append out "/etc/dbus-1/system.d"))
+                 (kexec-tools #$(this-package-input "kexec-tools"))
                  (shadow #$(this-package-input "shadow"))
                  (shepherd #$(this-package-input "shepherd"))
                  (halt-path (string-append shepherd "/sbin/halt"))
-                 (kexec-path "")           ;not available in Guix yet
+                 (kexec-path (string-append kexec-tools "/sbin/kexec"))
                  (nologin-path (string-append shadow "/sbin/nologin"))
                  (poweroff-path (string-append shepherd "/sbin/shutdown"))
                  (reboot-path (string-append shepherd "/sbin/reboot")))
@@ -616,10 +614,17 @@ the freedesktop.org XDG Base Directory specification.")
            (lambda _
              (substitute* "meson.build"
                (("join_paths\\(bindir, 'pkttyagent'\\)")
-                "'\"/run/current-system/profile/bin/pkttyagent\"'"))
-             #t))
+                "'\"/run/current-system/profile/bin/pkttyagent\"'"))))
          (add-after 'unpack 'adjust-tests
            (lambda _
+             ;; Skip the following test, which depends on users such as 'root'
+             ;; existing in the build environment.
+             (invoke "sed" "/src\\/test\\/test-user-util.c/,+2s/^/#/g"
+                     "-i" "src/test/meson.build")
+             ;; FIXME: This one times out for unknown reasons.
+             (invoke "sed"
+                     "/src\\/libelogind\\/sd-event\\/test-event.c/,+2s/^/#/g"
+                     "-i" "src/test/meson.build")
              ;; This test tries to copy some bytes from /usr/lib/os-release,
              ;; which does not exist in the build container.  Choose something
              ;; more likely to be available.
@@ -656,13 +661,11 @@ the freedesktop.org XDG Base Directory specification.")
              ;; Just skip it until a more narrow selection can be made.
              (substitute* "src/libelogind/sd-login/test-login.c"
                (("test_login\\(\\);")
-                "return 77;"))
-             #t))
+                "return 77;"))))
          (add-after 'unpack 'change-pid-file-path
            (lambda _
              (substitute* "src/login/elogind.c"
-               (("\"/run/elogind.pid\"") "\"/run/systemd/elogind.pid\""))
-             #t)))))
+               (("\"/run/elogind.pid\"") "\"/run/systemd/elogind.pid\"")))))))
     (native-inputs
      `(("docbook-xml" ,docbook-xml)
        ("docbook-xml-4.2" ,docbook-xml-4.2)
@@ -675,14 +678,15 @@ the freedesktop.org XDG Base Directory specification.")
        ("python" ,python)
        ("xsltproc" ,libxslt)))
     (inputs
-     `(("linux-pam" ,linux-pam)
-       ("libcap" ,libcap)
-       ("shadow" ,shadow)                    ;for 'nologin'
-       ("shepherd" ,shepherd)                ;for 'halt' and 'reboot', invoked
-                                             ;when pressing the power button
-       ("dbus" ,dbus)
-       ("eudev" ,eudev)
-       ("acl" ,acl)))           ;to add individual users to ACLs on /dev nodes
+     (list kexec-tools
+           linux-pam
+           libcap
+           shadow ;for 'nologin'
+           shepherd ;for 'halt' and 'reboot', invoked
+           ;when pressing the power button
+           dbus
+           eudev
+           acl))           ;to add individual users to ACLs on /dev nodes
     (home-page "https://github.com/elogind/elogind")
     (synopsis "User, seat, and session management service")
     (description "Elogind is the systemd project's \"logind\" service,
@@ -855,10 +859,9 @@ with localed.  This package is extracted from the broader systemd package.")
     (arguments
      `(#:configure-flags '("-Dlogind=enabled")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("scdoc" ,scdoc)))
-    (inputs
-     `(("elogind" ,elogind)))
+     (list pkg-config scdoc))
+    (propagated-inputs
+     (list elogind))
     (home-page "https://sr.ht/~kennylevinsen/seatd")
     (synopsis "Seat management daemon and library")
     (description
@@ -894,11 +897,9 @@ allows applications to use whatever seat management is available.")
        ("python" ,python-wrapper)
        ("glib:bin" ,glib "bin")))
     (inputs
-     `(("glib" ,glib)
-       ("bash-completion" ,bash-completion)
-       ("polkit" ,polkit)))
+     (list glib bash-completion polkit))
     (propagated-inputs
-     `(("sqlite" ,sqlite)))
+     (list sqlite))
     (home-page "https://www.freedesktop.org/software/PackageKit/")
     (synopsis "API for package management, through D-Bus")
     (description
@@ -944,9 +945,7 @@ manager for the current system.")
              (invoke "nosetests" "-v"))))))
     (native-inputs
      ;; For tests.
-     `(("shared-mime-info" ,shared-mime-info)
-       ("hicolor-icon-theme" ,hicolor-icon-theme)
-       ("python-nose" ,python-nose)))
+     (list shared-mime-info hicolor-icon-theme python-nose))
     (home-page "https://www.freedesktop.org/wiki/Software/pyxdg")
     (synopsis "Implementations of freedesktop.org standards in Python")
     (description
@@ -985,8 +984,7 @@ Python.")
                  (("http://www.oasis-open.org/docbook/xml/4\\.2/")
                   (string-append (assoc-ref (or native-inputs inputs)
                                             "docbook-xml-4.2")
-                                 "/xml/dtd/docbook/"))))
-             #t))
+                                 "/xml/dtd/docbook/"))))))
          (add-after 'install 'move-doc
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -994,8 +992,7 @@ Python.")
                (mkdir-p (string-append doc "/share"))
                (rename-file
                 (string-append out "/share/doc")
-                (string-append doc "/share/doc"))
-               #t))))))
+                (string-append doc "/share/doc"))))))))
     (native-inputs
      `(("docbook-xml-4.2" ,docbook-xml-4.2)
        ("docbook-xml" ,docbook-xml)
@@ -1010,10 +1007,9 @@ Python.")
                ("wayland" ,this-package)) ; for wayland-scanner
              '())))
     (inputs
-     `(("expat" ,expat)
-       ("libxml2" ,libxml2)))           ; for XML_CATALOG_FILES
+     (list expat libxml2))           ; for XML_CATALOG_FILES
     (propagated-inputs
-     `(("libffi" ,libffi)))
+     (list libffi))
     (home-page "https://wayland.freedesktop.org/")
     (synopsis "Core Wayland window system code and protocol")
     (description "Wayland is a project to define a protocol for a compositor to
@@ -1027,7 +1023,7 @@ fullscreen) or other display servers.")
 (define-public wayland-protocols
   (package
     (name "wayland-protocols")
-    (version "1.20")
+    (version "1.23")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1035,12 +1031,12 @@ fullscreen) or other display servers.")
                     "wayland-protocols-" version ".tar.xz"))
               (sha256
                (base32
-                "1rsdgvkkvxs3cjhpl6agvbkm53vm7k8rg127j9y2vn33m2hvg0lp"))))
-    (build-system gnu-build-system)
+                "0xizccackgwszjhlq7jjiv2z2gwppljx0w32ga91bxlnby8z22kc"))))
+    (build-system meson-build-system)
     (inputs
-     `(("wayland" ,wayland)))
+     (list wayland))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Wayland protocols")
     (description "Wayland-Protocols contains Wayland protocols that add
 functionality not available in the Wayland core protocol.  Such protocols either
@@ -1065,13 +1061,12 @@ protocol either in Wayland core, or some other protocol in wayland-protocols.")
     (arguments
      `(#:tests? #f))                    ; no tests
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("mesa" ,mesa)
-       ("pugixml" ,pugixml)))
+     (list mesa pugixml))
     (propagated-inputs
-     `(;; In Requires of the .pc files.
-       ("wayland" ,wayland)))
+     (list ;; In Requires of the .pc files.
+           wayland))
     (synopsis "Wayland C++ bindings")
     (description
      "This package provides C++ bindings for the Wayland display protocol.")
@@ -1091,9 +1086,7 @@ protocol either in Wayland core, or some other protocol in wayland-protocols.")
                 "1zlql0xgiqc3pvgbpnnvj4xvpd91pwva8qf83xfb23if377ddxaw"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("mscgen" ,mscgen)
-       ("pkg-config" ,pkg-config)
-       ("xorg-server" ,xorg-server)))
+     (list mscgen pkg-config xorg-server))
     (inputs
      `(("cairo" ,cairo-xcb)
        ("colord" ,colord)
@@ -1124,9 +1117,7 @@ protocol either in Wayland core, or some other protocol in wayland-protocols.")
        ("wayland-protocols" ,wayland-protocols)
        ("xorg-server-xwayland" ,xorg-server-xwayland)))
     (propagated-inputs
-     `(("libxkbcommon" ,libxkbcommon)
-       ("pixman" ,pixman)
-       ("wayland" ,wayland)))
+     (list libxkbcommon pixman wayland))
     (arguments
      `(#:configure-flags
        (list
@@ -1202,12 +1193,9 @@ multiplexer to the KMS/DRM Linux kernel devices.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("scdoc" ,scdoc)))
+     (list pkg-config scdoc))
     (inputs
-     `(("libxkbcommon" ,libxkbcommon)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+     (list libxkbcommon wayland wayland-protocols))
     (home-page "https://git.sr.ht/~sircmpwn/wev")
     (synopsis "Wayland event viewer")
     (description "Wev is a tool that opens a window, printing all events
@@ -1243,10 +1231,9 @@ XEv.")
                                          "/lib/libexempi.a"))
              #t)))))
     (native-inputs
-     `(("boost" ,boost))) ; tests
+     (list boost)) ; tests
     (inputs
-     `(("expat" ,expat)
-       ("zlib" ,zlib)))
+     (list expat zlib))
     (home-page "https://libopenraw.freedesktop.org/exempi/")
     (synopsis "XMP metadata handling library")
     (description "Exempi is an implementation of the Extensible Metadata
@@ -1267,9 +1254,9 @@ formats.")
                 "138gvgdwk6h4ljrjsr09pxk1nrki4b155hqdzyr8mlk3bwsfmw31"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("udev" ,eudev)))
+     (list eudev))
     (home-page "http://0pointer.de/blog/projects/being-smart.html")
     (synopsis "ATA S.M.A.R.T. reading and parsing library")
     (description
@@ -1301,15 +1288,15 @@ Analysis and Reporting Technology) functionality.")
        ("pkg-config" ,pkg-config)
        ("xsltproc" ,libxslt)))
     (propagated-inputs
-     `(("glib" ,glib))) ; required by udisks2.pc
+     (list glib)) ; required by udisks2.pc
     (inputs
-     `(("acl" ,acl)
-       ("cryptsetup" ,cryptsetup)
-       ("libatasmart" ,libatasmart)
-       ("libblockdev" ,libblockdev)
-       ("libgudev" ,libgudev)
-       ("polkit" ,polkit)
-       ("util-linux" ,util-linux)))
+     (list acl
+           cryptsetup
+           libatasmart
+           libblockdev
+           libgudev
+           polkit
+           util-linux))
     (outputs '("out"
                "doc"))                            ;5 MiB of gtk-doc HTML
     (arguments
@@ -1379,57 +1366,60 @@ message bus.")
 (define-public accountsservice
   (package
     (name "accountsservice")
-    (version "0.6.50")
+    (version "0.6.55")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.freedesktop.org/software/"
-                           "accountsservice/accountsservice-" version ".tar.xz"))
+                           "accountsservice/accountsservice-"
+                           version ".tar.xz"))
        (sha256
-        (base32 "0jn7vg1z4vxnna0hl33hbcb4bb3zpilxc2vyclh24vx4vvsjhn83"))))
-    (build-system gnu-build-system)
+        (base32 "16wwd633jak9ajyr1f1h047rmd09fhf3kzjz6g5xjsz0lwcj8azz"))))
+    (build-system meson-build-system)
     (arguments
-     '(#:tests? #f ; XXX: tests require DocBook 4.1.2
+     `(#:meson ,meson-0.59 ;see https://github.com/mesonbuild/meson/issues/6470
+       #:tests? #f ; XXX: tests require DocBook 4.1.2
        #:configure-flags
        '("--localstatedir=/var"
-         "--disable-systemd"
-         "--enable-elogind")
+         "-Dsystemdsystemunitdir=/tmp/empty"
+         "-Dsystemd=false"
+         "-Delogind=true")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-/bin/cat
            (lambda _
              (substitute* "src/user.c"
-               (("/bin/cat") (which "cat")))
-             #t))
+               (("/bin/cat") (which "cat")))))
          (add-before
           'configure 'pre-configure
           (lambda* (#:key inputs #:allow-other-keys)
-            ;; Don't try to create /var/lib/AccountsService.
-            (substitute* "src/Makefile.in"
-              (("\\$\\(MKDIR_P\\).*/lib/AccountsService.*") "true"))
+            (substitute* "meson_post_install.py"
+              (("in dst_dirs") "in []"))
             (let ((shadow (assoc-ref inputs "shadow")))
               (substitute* '("src/user.c" "src/daemon.c")
-                (("/usr/sbin/usermod") (string-append shadow "/sbin/usermod"))
-                (("/usr/sbin/useradd") (string-append shadow "/sbin/useradd"))
-                (("/usr/sbin/userdel") (string-append shadow "/sbin/userdel"))
-                (("/usr/bin/passwd")   (string-append shadow "/bin/passwd"))
-                (("/usr/bin/chage")    (string-append shadow "/bin/chage"))))
-            #t)))))
+                (("/usr/sbin/usermod")
+                 (string-append shadow "/sbin/usermod"))
+                (("/usr/sbin/useradd")
+                 (string-append shadow "/sbin/useradd"))
+                (("/usr/sbin/userdel")
+                 (string-append shadow "/sbin/userdel"))
+                (("/usr/bin/passwd")
+                 (string-append shadow "/bin/passwd"))
+                (("/usr/bin/chage")
+                 (string-append shadow "/bin/chage")))))))))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("elogind" ,elogind)
-       ("polkit" ,polkit)
-       ("shadow" ,shadow)))
+     (list dbus elogind polkit shadow))
     (home-page "https://www.freedesktop.org/wiki/Software/AccountsService/")
     (synopsis "D-Bus interface for user account query and manipulation")
     (description
-     "The AccountService project provides a set of D-Bus interfaces for querying
-and manipulating user account information and an implementation of these
-interfaces, based on the useradd, usermod and userdel commands.")
+     "The AccountService project provides a set of D-Bus interfaces for
+querying and manipulating user account information and an implementation of
+these interfaces, based on the useradd, usermod and userdel commands.")
     (license license:gpl3+)))
 
 (define-public libmbim
@@ -1446,13 +1436,12 @@ interfaces, based on the useradd, usermod and userdel commands.")
                 "16q550sy84izi5ic3sbbhjnnka2fwhj8vvdrirpn9xspbsgbc3sm"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-mkenums
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)))
+     (list `(,glib "bin") ; for glib-mkenums
+           pkg-config python-wrapper))
     (propagated-inputs
-     `(("glib" ,glib))) ; required by mbim-glib.pc
+     (list glib)) ; required by mbim-glib.pc
     (inputs
-     `(("libgudev" ,libgudev)))
+     (list libgudev))
     (synopsis "Library to communicate with MBIM-powered modems")
     (home-page "https://www.freedesktop.org/wiki/Software/libmbim/")
     (description
@@ -1477,13 +1466,12 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.")
                 "0zshxqbm9ldybgrzh7pjmwmfjvvvfd0xh8qhgl8xiqdb9ply73r0"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libgudev" ,libgudev)))
+     (list libgudev))
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-mkenums
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)))
+     (list `(,glib "bin") ; for glib-mkenums
+           pkg-config python-wrapper))
     (propagated-inputs
-     `(("glib" ,glib))) ; required by qmi-glib.pc
+     (list glib)) ; required by qmi-glib.pc
     (synopsis "Library to communicate with QMI-powered modems")
     (home-page "https://www.freedesktop.org/wiki/Software/libqmi/")
     (description
@@ -1519,12 +1507,9 @@ which speak the Qualcomm MSM Interface (QMI) protocol.")
        ;; For testing.
        ("dbus" ,dbus)))
     (propagated-inputs
-     `(("glib" ,glib))) ; required by mm-glib.pc
+     (list glib)) ; required by mm-glib.pc
     (inputs
-     `(("libgudev" ,libgudev)
-       ("libmbim" ,libmbim)
-       ("libqmi" ,libqmi)
-       ("polkit" ,polkit)))
+     (list libgudev libmbim libqmi polkit))
     (synopsis "Mobile broadband modems manager")
     (home-page "https://www.freedesktop.org/wiki/Software/ModemManager/")
     (description
@@ -1564,9 +1549,7 @@ modems and setup connections with them.")
        ("xsltproc" ,libxslt)))
     (propagated-inputs
      ;; telepathy-logger-0.2.pc refers to all these.
-     `(("libxml2" ,libxml2)
-       ("sqlite" ,sqlite)
-       ("telepathy-glib" ,telepathy-glib)))
+     (list libxml2 sqlite telepathy-glib))
     (synopsis "Telepathy logger library")
     (home-page "https://telepathy.freedesktop.org/")
     (description
@@ -1590,16 +1573,11 @@ different sorts of messages in different formats.")
         (base32 "1pfw4g2cicw3ykxhsy743r0fc1yqbdrqxh2c5ha6am19dajcr95l"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("xsltproc" ,libxslt)
-       ("python" ,python-2)
-       ("python-dbus" ,python2-dbus)))
+     (list libxslt python-2 python2-dbus))
     (propagated-inputs
-     `(("telepathy-glib" ,telepathy-glib)))
+     (list telepathy-glib))
     (home-page "https://telepathy.freedesktop.org/")
     (synopsis "Telepathy IRC connection manager")
     (description
@@ -1611,7 +1589,7 @@ messaging clients such as Empathy, GNOME Shell or KDE Telepathy.")
 (define-public telepathy-mission-control
   (package
     (name "telepathy-mission-control")
-    (version "5.16.5")
+    (version "5.16.6")
     (source
      (origin
        (method url-fetch)
@@ -1619,19 +1597,15 @@ messaging clients such as Empathy, GNOME Shell or KDE Telepathy.")
                            "telepathy-mission-control/"
                            "telepathy-mission-control-" version ".tar.gz"))
        (sha256
-        (base32 "00xxv38cfdirnfvgyd56m60j0nkmsv5fz6p2ydyzsychicxl6ssc"))))
+        (base32 "0ibs575pfr0wmhfcw6ln6iz7gw2y45l3bah11rksf6g9jlwsxy1d"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
-       ("pkg-config" ,pkg-config)))
+     (list `(,glib "bin") ; for glib-compile-schemas, etc.
+           pkg-config))
     (inputs
-     `(("dconf" ,dconf)
-       ("gtk-doc" ,gtk-doc)
-       ("libgnome-keyring" ,libgnome-keyring)
-       ("python" ,python-2)
-       ("xsltproc" ,libxslt)))
+     (list dconf gtk-doc libgnome-keyring python-2 libxslt))
     (propagated-inputs
-     `(("telepathy-glib" ,telepathy-glib)))
+     (list telepathy-glib))
     (home-page "https://telepathy.freedesktop.org/wiki/Components/Mission_Control/")
     (synopsis "Telepathy real-time communication framework management daemon")
     (description
@@ -1654,14 +1628,10 @@ share connections to real-time communication services without conflicting.")
     (build-system gnu-build-system)
     (arguments '(#:tests? #f)) ; require the colord system service
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("vala" ,vala)))
+     (list gobject-introspection intltool pkg-config vala))
     (propagated-inputs
      ;; colord-gtk.pc refers to all these.
-     `(("colord" ,colord)
-       ("gtk+" ,gtk+)))
+     (list colord gtk+))
     (synopsis "GTK integration for libcolord")
     (home-page "https://www.freedesktop.org/software/colord/")
     (description
@@ -1673,7 +1643,7 @@ wish to perform colour calibration.")
 (define-public libfprint
   (package
     (name "libfprint")
-    (version "1.90.7")
+    (version "1.94.2")
     (source
      (origin
        (method git-fetch)
@@ -1682,26 +1652,26 @@ wish to perform colour calibration.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "00pmdpxxjj4sh8qjq9ch3pylgg9w019rg1bbaw53a4wr637rrz43"))))
+        (base32 "0y3wz5hlxpnvqj67bihvzfi4dwx2m2nx9byppf4jjd80x0j2630m"))))
     (build-system meson-build-system)
     (arguments
-     '(#:configure-flags
-       (list (string-append "-Dudev_rules_dir=" (assoc-ref %outputs "out")
-                            "/lib/udev/rules.d"))))
+     (list #:configure-flags
+           #~(list (string-append "-Dudev_hwdb_dir=" #$output
+                                  "/lib/udev/hwdb.d")
+                   (string-append "-Dudev_rules_dir=" #$output
+                                  "/lib/udev/rules.d"))))
     (native-inputs
-     `(("eudev" ,eudev)
-       ("glib:bin" ,glib "bin")         ; for {glib-,}mkenums
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)             ; for 88 KiB of API documentation
-       ("pkg-config" ,pkg-config)))
+     (list `(,glib "bin")               ; for {glib-,}mkenums
+           gobject-introspection
+           gtk-doc/stable               ; for 88 KiB of API documentation
+           pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("gusb" ,gusb)
-       ("nss" ,nss)                     ; for the URU4x00 driver
-
-       ;; Replacing this with cairo works but just results in a reference
-       ;; (only) to pixman in the end.
-       ("pixman" ,pixman)))
+     (list gusb
+           libgudev
+           nss                          ; for the URU4x00 driver
+           ;; Replacing this with cairo works but just results in a reference
+           ;; (only) to pixman in the end.
+           pixman))
     (home-page "https://fprint.freedesktop.org/")
     (synopsis "Library to access fingerprint readers")
     (description
@@ -1713,68 +1683,56 @@ software.")
 (define-public fprintd
   (package
     (name "fprintd")
-    (version "1.90.1")
+    (version "1.94.1")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://gitlab.freedesktop.org/libfprint/fprintd")
-             (commit version)))
+             (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0mbzk263x7f58i9cxhs44mrngs7zw5wkm62j5r6xlcidhmfn03cg"))))
+        (base32 "015j8ikyv48qz8vn6kfvkwwg5ydzppl1lzf7vkali9ymywywfxsw"))))
     (build-system meson-build-system)
     (arguments
-     `(#:configure-flags
-       (list "-Dsystemd_system_unit_dir=/tmp"
-             (string-append "-Ddbus_service_dir=" (assoc-ref %outputs "out")
-                            "/share/dbus-1/system-services")
-             (string-append "-Dpam_modules_dir=" (assoc-ref %outputs "out")
-                            "/lib/security"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'patch-output-directories
-           ;; Install files to our output, not that of the ‘owner’ package.
-           ;; These are not exposed as Meson options and must be patched.
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (substitute* "meson.build"
-                 (("(dbus_interfaces_dir = ).*" _ set)
-                  (string-append set "'" out "/share/dbus-1/interfaces'\n"))
-                 (("(polkit_policy_directory = ).*" _ set)
-                  (string-append set "'" out "/share/polkit-1/actions/'\n"))
-                 (("(dbus_data_dir = ).*" _ set)
-                  (string-append set "get_option('prefix')"
-                                 " / get_option('datadir')\n")))
-               #t)))
-         (add-before 'configure 'patch-mistake
-           (lambda _
-             (substitute* "meson.build"
-               (("(storage_path = )(get_option\\('prefix'\\))(.*)"
-                 _ set mistake value)
-                (string-append set "''" value "\n")))
-             #t))
-         (add-before 'configure 'patch-systemd-dependencies
-           (lambda _
-             (substitute* "meson.build"
-               (("'(libsystemd|systemd)'") "'libelogind'"))
-             #t))
-         (add-before 'configure 'ignore-test-dependencies
-           (lambda _
-             (substitute* "meson.build"
-               (("pam_wrapper_dep .*") "")
-               ((".*'(cairo|dbus|dbusmock|gi|pypamtest)': .*,.*") ""))
-             #t))
-         (add-before 'install 'no-polkit-magic
-           ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
-           (lambda _
-             (setenv "PKEXEC_UID" "something")
-             #t)))
-       #:tests? #f))                    ; XXX depend on unpackaged packages
+     (list #:configure-flags
+           #~(list "-Dsystemd_system_unit_dir=/tmp"
+                   (string-append "-Ddbus_service_dir=" #$output
+                                  "/share/dbus-1/system-services")
+                   (string-append "-Dpam_modules_dir=" #$output
+                                  "/lib/security"))
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-before 'configure 'patch-output-directories
+                 ;; Install files to our output, not that of the ‘owner’ package.
+                 ;; These are not exposed as Meson options and must be patched.
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (let ((out (assoc-ref outputs "out")))
+                     (substitute* "meson.build"
+                       (("(dbus_interfaces_dir = ).*" _ set)
+                        (string-append set "'" out "/share/dbus-1/interfaces'\n"))
+                       (("(polkit_policy_directory = ).*" _ set)
+                        (string-append set "'" out "/share/polkit-1/actions/'\n"))
+                       (("(dbus_data_dir = ).*" _ set)
+                        (string-append set "get_option('prefix')"
+                                       " / get_option('datadir')\n"))))))
+               (add-before 'configure 'patch-systemd-dependencies
+                 (lambda _
+                   (substitute* "meson.build"
+                     (("(dependency\\(')(libsystemd|systemd)" _ prefix)
+                      (string-append prefix "libelogind")))))
+               (add-before 'configure 'ignore-test-dependencies
+                 (lambda _
+                   (substitute* "meson.build"
+                     ((".*gi\\.repository\\.FPrint.*") "")
+                     (("pam_wrapper_dep .*") "")
+                     ((".*'(cairo|dbus|dbusmock|gi|pypamtest)': .*,.*") ""))
+                   (substitute* "tests/pam/meson.build"
+                     ((".*pam_wrapper.*") "")))))
+           #:tests? #f))                    ; XXX depend on unpackaged packages
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")         ; for glib-genmarshal
-       ("libxslt" ,libxslt)             ; for xsltproc
        ("perl" ,perl)                   ; for pod2man
        ("pkg-config" ,pkg-config)))
        ;; For tests.
@@ -1785,17 +1743,11 @@ software.")
        ;;("python-pygobject" ,python-pygobject)
        ;;("python-pypamtest" ,python-pypamtest)
     (inputs
-     `(("dbus-glib" ,dbus-glib)
-       ("elogind" ,elogind)
-       ("libfprint" ,libfprint)
-       ("linux-pam" ,linux-pam)
-       ("polkit" ,polkit)
-
-       ;; XXX These are in libfprint's Requires.private.  Meson refuses to grant
-       ;; the ‘libfprint-2’ dependency if they are not provided here.
-       ("gusb" ,gusb)
-       ("nss" ,nss)
-       ("pixman" ,pixman)))
+     (list dbus-glib
+           elogind
+           libfprint
+           linux-pam
+           polkit))
     (home-page "https://fprint.freedesktop.org/")
     (synopsis "D-Bus daemon that exposes fingerprint reader functionality")
     (description
@@ -1819,11 +1771,9 @@ to applications simultaneously competing for fingerprint readers.")
                 "02bkfi6fyk4c0gh2avd897882ww5zl7qg7bzzf28qb57kvkvsvdj"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (home-page "https://www.freedesktop.org/wiki/Software/desktop-file-utils/")
     (synopsis "Utilities for working with desktop entries")
     (description
@@ -1898,13 +1848,10 @@ manually by a user.")
          "1qq5ag9zffx8zc5i9b4z03ar80pqj4drgk3vjdlyfapjwb9zqrf0"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-file-which" ,perl-file-which)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)
-       ("xdg-user-dirs" ,xdg-user-dirs)))
+     (list perl-module-build perl-file-which perl-test-pod
+           perl-test-pod-coverage xdg-user-dirs))
     (propagated-inputs
-     `(("perl-ipc-system-simple" ,perl-ipc-system-simple)))
+     (list perl-ipc-system-simple))
     (home-page "https://metacpan.org/release/File-BaseDir")
     (synopsis "Use the Freedesktop.org base directory specification")
     (description
@@ -1928,11 +1875,9 @@ application data and cache data.")
          "1f1maqix2kbfg2rf008m7mqnvv6nvcf9y6pcgdv2kxp2vbih370n"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-test-pod perl-test-pod-coverage))
     (propagated-inputs
-     `(("perl-file-basedir" ,perl-file-basedir)
-       ("perl-uri" ,perl-uri)))
+     (list perl-file-basedir perl-uri))
     (home-page "https://metacpan.org/release/File-DesktopEntry")
     (synopsis "Handle @file{.desktop} files")
     (description
@@ -1957,8 +1902,7 @@ applications define in those files.")
     ;; If the tests are fixed, add perl-test-pod, perl-test-pod-coverage, and
     ;; perl-test-tiny as native-inputs.
     (propagated-inputs
-     `(("shared-mime-info" ,shared-mime-info)
-       ("perl-file-desktopentry" ,perl-file-desktopentry)))
+     (list shared-mime-info perl-file-desktopentry))
     (arguments
      ;; Some tests fail due to requiring the mimetype of perl files to be
      ;; text/plain when they are actually application/x-perl.
@@ -2027,7 +1971,7 @@ encoding names are iconv-compatible.")
           "1bqfz85cd51sw0bvhvdq9ikccxi2ld7g5jpni4jkq1a5clrvca64"))))
   (build-system python-build-system)
   (inputs
-   `(("uchardet" ,uchardet)))
+   (list uchardet))
   (home-page "https://github.com/PyYoshi/cChardet")
   (synopsis "High-performance character encoding detection for Python")
   (description "cChardet is a character encoding detector, written in
@@ -2037,33 +1981,24 @@ Python, that binds to the C library @code{uchardet} to increase performance.")
 (define-public udiskie
   (package
     (name "udiskie")
-    (version "2.1.0")
+    (version "2.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "udiskie" version))
        (sha256
         (base32
-         "0smib8vbs9q37n7ynhzyw97q16fgdkcdw7fw69lci0xvyq00v1dz"))
-       ;; Remove support for the libappindicator library of the
-       ;; Unity desktop environment which is not in Guix.
-       (patches (search-patches "udiskie-no-appindicator.patch"))))
+         "0sagdmsc5km32h3jvgj843p8bicrrgfz26qhl04ibxmas6725zr0"))))
     (build-system python-build-system)
     (native-inputs
      `(("asciidoc" ,asciidoc)
        ("gettext" ,gettext-minimal)
        ("gobject-introspection" ,gobject-introspection)))
     (inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("gtk+" ,gtk+)
-       ("libnotify" ,libnotify)
-       ("udisks" ,udisks)))
+     (list gobject-introspection gtk+ libappindicator libnotify udisks))
     (propagated-inputs
-     `(("python-docopt" ,python-docopt)
-       ("python-pygobject" ,python-pygobject)
-       ("python-keyutils" ,python-keyutils)
-       ("python-pyxdg" ,python-pyxdg)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python-docopt python-pygobject python-keyutils python-pyxdg
+           python-pyyaml))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2098,7 +2033,7 @@ Its features include:
 (define-public plymouth
   (package
     (name "plymouth")
-    (version "0.9.4")
+    (version "0.9.5")
     (source
      (origin
        (method url-fetch)
@@ -2106,7 +2041,7 @@ Its features include:
                            "plymouth/releases/" name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0l8kg7b2vfxgz9gnrn0v2w4jvysj2cirp0nxads5sy05397pl6aa"))))
+         "11nfgw8yzmdbnbmyd1zfvhj4qh19w1nw0nraai08628x6mzjbbpc"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -2132,8 +2067,7 @@ Its features include:
          (add-after 'unpack 'make-reproducible
            (lambda _
              (substitute* "src/main.c"
-               (("__DATE__") "\"guix\""))
-             #t))
+               (("__DATE__") "\"guix\""))))
          (add-before 'configure 'fix-docbook
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "docs/Makefile.in"
@@ -2144,16 +2078,12 @@ Its features include:
                                "/manpages/docbook.xsl")))
              (setenv "XML_CATALOG_FILES"
                      (string-append (assoc-ref inputs "docbook-xml")
-                                    "/xml/dtd/docbook/catalog.xml"))
-             #t)))))
+                                    "/xml/dtd/docbook/catalog.xml")))))))
     (inputs
-     `(("glib" ,glib)
-       ("pango" ,pango)
-       ("libdrm" ,libdrm)
-       ("libpng" ,libpng)
-       ("eudev" ,eudev)))
+     (list glib pango libdrm libpng eudev))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)
        ("libxslt" ,libxslt)
        ("docbook-xsl" ,docbook-xsl)
        ("docbook-xml" ,docbook-xml)))
@@ -2187,8 +2117,7 @@ useful with system integration.")
        ("pkg-config" ,pkg-config)
        ("xvfb" ,xorg-server-for-tests)))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("glib" ,glib)))
+     (list gtk+ glib))
     (arguments
      `(#:make-flags '("CFLAGS=-Wno-error")
        #:phases
@@ -2248,8 +2177,7 @@ useful with system integration.")
        ;; ("mono" ,mono) ; requires non-packaged gapi
        ("vala" ,vala)))
     (propagated-inputs
-     `(("gtk+" ,gtk+)
-       ("libdbusmenu" ,libdbusmenu)))
+     (list gtk+ libdbusmenu))
     (arguments
      ;; FIXME: do not hardcode gtk version
      `(#:configure-flags '("--with-gtk=3")
@@ -2289,62 +2217,59 @@ fallback to generic Systray support if none of those are available.")
     (license license:lgpl2.1+)))
 
 (define-public libportal
-  (let ((commit "bff3289")
-        (revision "1"))
-    (package
-      (name "libportal")
-      (version (git-version "0.3" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/flatpak/libportal")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "104b91qircr1i9jkmm6f725awywky52aimrki303kiaadn2v8b5i"))))
-      (build-system meson-build-system)
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-after 'install 'move-doc
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out"))
-                     (doc (assoc-ref outputs "doc"))
-                     (html "/share/gtk-doc"))
-                 (copy-recursively (string-append out html)
-                                   (string-append doc html))
-                 (delete-file-recursively (string-append out html))
-                 #t))))))
-      (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("gtk-doc" ,gtk-doc/stable)
-         ("docbook-xsl" ,docbook-xsl)
-         ("docbook-xml" ,docbook-xml)
-         ("libxml2" ,libxml2)
-         ("glib:bin" ,glib "bin")))
-      (propagated-inputs
-       `(("glib" ,glib)))
-      (outputs '("out" "doc"))
-      (home-page "https://github.com/flatpak/libportal")
-      (synopsis "Flatpak portal library")
-      (description
-       "libportal provides GIO-style async APIs for most Flatpak portals.")
-      (license license:lgpl2.1+))))
-
-(define-public xdg-desktop-portal
   (package
-    (name "xdg-desktop-portal")
-    (version "1.8.1")
+    (name "libportal")
+    (version "0.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                     (url "https://github.com/flatpak/xdg-desktop-portal")
-                     (commit version)))
+                    (url "https://github.com/flatpak/libportal")
+                    (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0pq0kmvzk56my396vh97pzw4wizwmlmzvv2kr2xv047x3044mr5n"))))
+                "1jh6wd96y4i218zbmmqw12zir8p88nm8dlsa3yx3lsqxd5c1krky"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'move-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (doc (assoc-ref outputs "doc"))
+                   (html "/share/gtk-doc"))
+               (copy-recursively (string-append out html)
+                                 (string-append doc html))
+               (delete-file-recursively (string-append out html))
+               #t))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("gtk-doc" ,gtk-doc/stable)
+       ("docbook-xsl" ,docbook-xsl)
+       ("docbook-xml" ,docbook-xml)
+       ("libxml2" ,libxml2)
+       ("glib:bin" ,glib "bin")))
+    (propagated-inputs
+     (list glib))
+    (outputs '("out" "doc"))
+    (home-page "https://github.com/flatpak/libportal")
+    (synopsis "Flatpak portal library")
+    (description
+     "libportal provides GIO-style async APIs for most Flatpak portals.")
+    (license license:lgpl2.1+)))
+
+(define-public xdg-desktop-portal
+  (package
+    (name "xdg-desktop-portal")
+    (version "1.10.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/flatpak/xdg-desktop-portal/releases/download/"
+                    version "/xdg-desktop-portal-" version ".tar.xz"))
+              (sha256
+               (base32
+                "199lqr2plsy9qqnxx5a381ml8ygcbz4nkjla5pvljjcrwzlqsygd"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -2395,16 +2320,15 @@ and others.")
 (define-public xdg-desktop-portal-gtk
   (package
     (name "xdg-desktop-portal-gtk")
-    (version "1.7.1")
+    (version "1.10.0")
     (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "https://github.com/flatpak/xdg-desktop-portal-gtk")
-                     (commit version)))
-              (file-name (git-file-name name version))
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/flatpak/xdg-desktop-portal-gtk/releases/download/"
+                    version "/xdg-desktop-portal-gtk-" version ".tar.xz"))
               (sha256
                (base32
-                "183iha9dxmvprn99ymgz17jx1lyn1fj5jyj6ghxl716zn9mxmird"))))
+                "0nlbnd6qvs92fanrmmn123vy0y2ml0v3ndxyk5x0cpfbnmxpa2f8"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:phases
@@ -2415,13 +2339,22 @@ and others.")
              (for-each (lambda (po)
                          (chmod po #o666))
                        (find-files "po" "\\.po$"))
-             #t)))))
+             #t)))
+       ;; Enable Gnome portal backends
+       #:configure-flags
+       (list
+        "--enable-appchooser"
+        "--enable-wallpaper"
+        "--enable-screenshot"
+        "--enable-screencast"
+        "--enable-background"
+        "--enable-settings")))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("autoconf" ,autoconf)
        ("automake" ,automake)
        ("libtool" ,libtool)
-       ("xdg-desktop-portal" ,xdg-desktop-portal)
+       ("libxml2" ,libxml2)
        ("glib:bin" ,glib "bin")
        ("which" ,which)
        ("gettext" ,gettext-minimal)))
@@ -2431,10 +2364,8 @@ and others.")
        ("fontconfig" ,fontconfig)
        ("gnome-desktop" ,gnome-desktop)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
-    (native-search-paths
-     (list (search-path-specification
-            (variable "XDG_DESKTOP_PORTAL_DIR")
-            (files '("share/xdg-desktop-portal/portals")))))
+    (propagated-inputs
+     (list xdg-desktop-portal))
     (home-page "https://github.com/flatpak/xdg-desktop-portal-gtk")
     (synopsis "GTK implementation of xdg-desktop-portal")
     (description
@@ -2463,8 +2394,7 @@ interfaces.")
        '("-Dsystemd=disabled"
          "-Dsd-bus-provider=libelogind")))
     (native-inputs
-     `(("cmake" ,cmake)
-       ("pkg-config" ,pkg-config)))
+     (list cmake pkg-config))
     (inputs
      `(("elogind" ,elogind)
        ("iniparser" ,iniparser)
@@ -2484,7 +2414,7 @@ compositors.")
 (define-public waypipe
   (package
     (name "waypipe")
-    (version "0.8.0")
+    (version "0.8.1")
     (source
      (origin
        (method git-fetch)
@@ -2493,22 +2423,12 @@ compositors.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1qa47ljfvb1vv3h647xwn1j5j8gfmcmdfaz4j8ygnkvj36y87vnz"))))
+        (base32 "1v08dv3dfz420v51ahz7qgv3429073kmgrf8f66s4c3jlpch2pa1"))))
     (build-system meson-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-sleep-path
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((coreutils (assoc-ref inputs "coreutils")))
-               (substitute* "./test/startup_failure.py"
-                 (("sleep") (string-append coreutils "/bin/sleep")))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("scdoc" ,scdoc)
-       ;; For tests
-       ("python" ,python)
-       ("coreutils" ,coreutils)))
+     (list pkg-config scdoc
+           ;; For tests
+           python))
     (home-page "https://gitlab.freedesktop.org/mstoeckl/waypipe")
     (synopsis "Proxy for Wayland protocol applications")
     (description
diff --git a/gnu/packages/freeipmi.scm b/gnu/packages/freeipmi.scm
index acd527fcee..75019dbdcc 100644
--- a/gnu/packages/freeipmi.scm
+++ b/gnu/packages/freeipmi.scm
@@ -40,7 +40,7 @@
     (arguments
      '(#:configure-flags '("--disable-static")))
     (inputs
-     `(("libgcrypt" ,libgcrypt)))
+     (list libgcrypt))
     (home-page "https://www.gnu.org/software/freeipmi/")
     (synopsis "Platform management, including sensor and power monitoring")
     (description
diff --git a/gnu/packages/fribidi.scm b/gnu/packages/fribidi.scm
index e213192aa6..1a371f2111 100644
--- a/gnu/packages/fribidi.scm
+++ b/gnu/packages/fribidi.scm
@@ -90,7 +90,7 @@ or right-to-left ordering as necessary.")
              #t)))
        #:tests? #f)) ; no tests
     (inputs
-     `(("fribidi" ,fribidi)))
+     (list fribidi))
     (home-page "https://tracker.debian.org/pkg/bidiv")
     (synopsis "BiDi viewer - command-line tool displaying logical Hebrew/Arabic")
     (description "bidiv is a simple utility for converting logical-Hebrew input
diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
index 17ad139162..3d44364918 100644
--- a/gnu/packages/ftp.scm
+++ b/gnu/packages/ftp.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
 ;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
+;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,7 +33,6 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages freedesktop)
-  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
@@ -65,11 +65,9 @@
                 "03b7y0h3mf4jfq5y8zw6hv9v44z3n6i8hc1iswax96y3z7sc85y5"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("zlib" ,zlib)
-       ("readline" ,readline)
-       ("gnutls" ,gnutls)))
+     (list zlib readline gnutls))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -132,10 +130,11 @@ reliability in mind.")
                     (let ((out (assoc-ref outputs "out")))
                       (setenv "CONFIG_SHELL" (which "sh"))
                       (setenv "SHELL" (which "sh"))
+                      (setenv "CFLAGS" "-fcommon")
                       (invoke "./configure"
                               (string-append "--prefix=" out))))))
        #:tests? #f)) ;there are no tests
-    (inputs `(("ncurses" ,ncurses)))
+    (inputs (list ncurses))
     (home-page "https://www.ncftp.com/ncftp/")
     (synopsis "Command-line File Transfer Protocol (FTP) client")
     (description
@@ -161,9 +160,7 @@ FTP browser, as well as non-interactive commands such as @code{ncftpput} and
             "1ir761hjncr1bamaqcw9j7x57xi3s9jax3223bxwbq30a0vsw1pd"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("gettext" ,gettext-minimal)))
+     (list automake autoconf gettext-minimal))
     (home-page "http://weex.sourceforge.net/")
     (synopsis "Non-interactive client for FTP synchronization")
     (description
@@ -176,26 +173,22 @@ as required.")
 (define-public libfilezilla
   (package
     (name "libfilezilla")
-    (version "0.31.1")
+    (version "0.35.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.filezilla-project.org/"
                            "libfilezilla/libfilezilla-" version ".tar.bz2"))
        (sha256
-        (base32 "0vqn6gkwyin9hml39d74vcjcnbwlnk2cpc3msdlkhpq1ns3mhzcr"))))
+        (base32 "1s1a165kc1gkdmhzmvm91ddj3cbxmh7s27fwfgm921ixrq6m3qpf"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
        (list "--disable-static")))
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("gcc" ,gcc-8)                   ; XXX remove when it's the default
-       ("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit gettext-minimal pkg-config))
     (inputs
-     `(("gnutls" ,gnutls)
-       ("nettle" ,nettle)))
+     (list gnutls nettle))
     (home-page "https://lib.filezilla-project.org")
     (synopsis "Cross-platform C++ library used by Filezilla client")
     (description
@@ -220,33 +213,30 @@ output.
 (define-public filezilla
   (package
     (name "filezilla")
-    (version "3.55.1")
+    (version "3.57.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.filezilla-project.org/client/"
                            "FileZilla_" version "_src.tar.bz2"))
        (sha256
-        (base32 "19bnyx89jg0ll8a8mr4y8gp26gizs11ckgrwglh27zak3zhx1y37"))))
+        (base32 "1iwrr08rik0afaxf88bghw2fw97ia8wlcsrm94jh24yafxq6rgw2"))))
     (build-system gnu-build-system)
     (arguments
       ;; Don't let filezilla phone home to check for updates.
      '(#:configure-flags '("--disable-autoupdatecheck")))
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)
-       ("xdg-utils" ,xdg-utils)))
+     (list cppunit gettext-minimal pkg-config xdg-utils))
     (inputs
-     `(("dbus" ,dbus)
-       ("gnutls" ,gnutls)
-       ("gtk+" ,gtk+)
-       ("libfilezilla" ,libfilezilla)
-       ("libidn" ,libidn)
-       ("nettle" ,nettle)
-       ("pugixml" ,pugixml)
-       ("sqlite" ,sqlite)
-       ("wxwidgets" ,wxwidgets)))
+     (list dbus
+           gnutls
+           gtk+
+           libfilezilla
+           libidn
+           nettle
+           pugixml
+           sqlite
+           wxwidgets))
     (home-page "https://filezilla-project.org")
     (synopsis "Full-featured graphical FTP/FTPS/SFTP client")
     (description
@@ -297,9 +287,7 @@ directory comparison and more.")
                (("/usr") (assoc-ref outputs "out")))))
          (delete 'configure))))         ; no configure script
     (inputs
-     `(("libcap" ,libcap)
-       ("linux-pam" ,linux-pam)
-       ("openssl" ,openssl)))
+     (list libcap linux-pam openssl))
     (synopsis "Small FTP server with a focus on security")
     (description
      "The Very Secure File Transfer Protocol Daemon or @command{vsftpd} is a
diff --git a/gnu/packages/fvwm.scm b/gnu/packages/fvwm.scm
index 6509fb38a5..db4cde0eb1 100644
--- a/gnu/packages/fvwm.scm
+++ b/gnu/packages/fvwm.scm
@@ -65,16 +65,16 @@
        ("pkg-config" ,pkg-config)
        ("xsltproc" ,libxslt)))
     (inputs
-     `(("fribidi" ,fribidi)
-       ("libpng" ,libpng)
-       ("librsvg" ,librsvg)
-       ("libxcursor" ,libxcursor)
-       ("libxext" ,libxext)
-       ("libxft" ,libxft)
-       ("libxinerama" ,libxinerama)
-       ("libxpm" ,libxpm)
-       ("libxt" ,libxt)
-       ("readline" ,readline)))
+     (list fribidi
+           libpng
+           librsvg
+           libxcursor
+           libxext
+           libxft
+           libxinerama
+           libxpm
+           libxt
+           readline))
     (synopsis "Virtual window manager for X11")
     (description
      "FVWM is an extremely powerful ICCCM-compliant multiple virtual desktop
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index ddcbb6b172..305c2c2819 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -15,13 +15,16 @@
 ;;; Copyright © 2017, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2019, 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2019, 2020, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2019 Jethro Cao <jethrocao@gmail.com>
 ;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
 ;;; Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz>
+;;; Copyright © 2020-2021 James Smith <jsubuntuxp@disroot.org>
+;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
+;;; Copyright © 2021 Andy Tai <atai@atai.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,7 +42,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages game-development)
-  #:use-module (srfi srfi-1)
+  #:use-module ((srfi srfi-1) #:hide (zip))
   #:use-module (ice-9 match)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
@@ -55,6 +58,7 @@
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages check)
@@ -66,7 +70,6 @@
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages fribidi)
   #:use-module (gnu packages dbm)
-  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
@@ -90,6 +93,7 @@
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages readline)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages sphinx)
@@ -99,6 +103,7 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages video)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
@@ -107,7 +112,7 @@
 (define-public bullet
   (package
     (name "bullet")
-    (version "2.89")
+    (version "3.17")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -116,7 +121,7 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "10ncf2z474jnv7p5lv01ak2mk2hib3rj5rz1zr8v2v5pnciqbijl"))
+                "0x1ghxbkvqr910sp01sjf4hlfy4sdgn2jx2qf0dsi697bzq1f3mr"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -126,9 +131,7 @@
                               '("Gwen" "clsocket" "enet" "glad" "imgui"
                                 "lua-5.2.3" "midi" "minizip" "openvr"
                                 "optionalX11" "serial" "zlib")))
-                  ;; These need files from ThirdPartyLibs.
-                  (substitute* "Extras/CMakeLists.txt"
-                    (("BulletRobotics") ""))
+
                   ;; Tests fail on linking, cannot find -lBussIK.
                   (substitute* "test/CMakeLists.txt"
                     ((" InverseDynamics")
@@ -141,6 +144,12 @@
                                "-DBUILD_CPU_DEMOS=OFF"
                                "-DBUILD_OPENGL3_DEMOS=OFF"
                                "-DBUILD_BULLET2_DEMOS=OFF"
+                               ;; Extras/BulletRoboticsGUI needs files from
+                               ;; ThirdPartyLibs
+                               "-DBUILD_BULLET_ROBOTICS_GUI_EXTRA=OFF"
+                               ;; Extras/BulletRobotics needs files from
+                               ;; ThirdPartyLibs
+                               "-DBUILD_BULLET_ROBOTICS_EXTRA=OFF"
                                (string-append  "-DCMAKE_CXX_FLAGS=-fPIC "
                                                (or (getenv "CXXFLAGS") "")))
        #:phases
@@ -155,9 +164,7 @@
                 "# ADD_TEST(Test_BulletInverseForward"))
              #t)))))
     (inputs
-     `(("glu" ,glu)
-       ("libx11" ,libx11)
-       ("mesa" ,mesa)))
+     (list glu libx11 mesa))
     (home-page "https://pybullet.org/wordpress/")
     (synopsis "3D physics engine library")
     (description
@@ -179,11 +186,9 @@ is used in some video games and movies.")
        (base32 "0psb2za6ldrlak7s8pjvli98ij5yiwjx8j1ms2v7rj9yadx0xv8h"))))
    (build-system gnu-build-system)
    (inputs
-    `(("libpng" ,libpng)))
+    (list libpng))
    (native-inputs
-    `(("asciidoc" ,asciidoc)
-      ("pkg-config" ,pkg-config)
-      ("zstd" ,zstd)))
+    (list asciidoc pkg-config zstd))
    (home-page "https://github.com/Doom-Utils/deutex")
    (synopsis "WAD file composer for Doom and related games")
    (description
@@ -207,6 +212,7 @@ DeuTex has functions such as merging wads, etc.")
        (uri (string-append "https://binaries.openttd.org/extra/"
                            name "/" version "/" name "-" version
                            "-source.tar.xz"))
+       (patches (search-patches "grfcodec-gcc-compat.patch"))
        (sha256
         (base32 "08admgnpqcsifpicbm56apgv360fxapqpbbsp10qyk8i22w1ivsk"))))
     (build-system gnu-build-system)
@@ -232,12 +238,9 @@ DeuTex has functions such as merging wads, etc.")
                              "readme" "readme.rpn"))
                  (for-each (lambda (file)
                              (install-file file man))
-                           (find-files "." "\\.1"))))
-             #t)))))
+                           (find-files "." "\\.1")))))))))
     (inputs
-     `(("boost" ,boost)
-       ("libpng" ,libpng)
-       ("zlib" ,zlib)))
+     (list boost libpng zlib))
     (synopsis "GRF development tools")
     (description
      "The @dfn{Graphics Resource File} (GRF) development tools are a set of
@@ -302,13 +305,13 @@ PCM data.")
                         (("-Werror") ""))
                       #t)))))
     (native-inputs `(("pkgconfig" ,pkg-config)))
-    (inputs `(("bdb" ,bdb)
-              ("glib" ,glib)
-              ("guile" ,guile-3.0)
-              ("libmicrohttpd" ,libmicrohttpd)
-              ("ncurses" ,ncurses)
-              ("sdl" ,sdl)
-              ("zlib" ,zlib)))
+    (inputs (list bdb
+                  glib
+                  guile-3.0
+                  libmicrohttpd
+                  ncurses
+                  sdl
+                  zlib))
     (home-page "https://www.nongnu.org/gzochi/")
     (synopsis "Scalable middleware for multiplayer games")
     (description
@@ -337,8 +340,7 @@ provide connectivity for client applications written in any language.")
     (arguments
      '(#:tests? #f))
     (propagated-inputs
-     `(("python-pillow" ,python-pillow)
-       ("python-ply" ,python-ply)))
+     (list python-pillow python-ply))
     (home-page "https://github.com/OpenTTD/nml")
     (synopsis "NML compiler")
     (description
@@ -360,8 +362,7 @@ files) into @file{.grf} and/or @file{.nfo} files.")
          "0s5d5qzlzfmqb10iyrqi62n36ll94d99xjaznp5ca6dz1b91qkvr"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pygame" ,python-pygame)
-       ("python-uniseg" ,python-uniseg)))
+     (list python-pygame python-uniseg))
     (home-page "https://python-sge.github.io/")
     (synopsis "2D game engine for Python")
     (description
@@ -371,9 +372,6 @@ you can focus on the game itself.  This makes more rapid game development
 possible, and it also makes the SGE easy to learn.")
     (license license:lgpl3+)))
 
-(define-public python-sge-pygame
-  (deprecated-package "python-sge-pygame" python-sge))
-
 (define-public python-tmx
   (package
     (name "python-tmx")
@@ -389,7 +387,7 @@ possible, and it also makes the SGE easy to learn.")
          "073q0prg1nzlkga2b45vhscz374206qh4x68ccg00mxxwagn64z0"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "http://python-tmx.nongnu.org")
     (synopsis "Python library for the @code{Tiled} TMX format")
     (description
@@ -407,8 +405,8 @@ levels.")
     (package
       (inherit python2-tmx)
       (propagated-inputs
-       `(("python2-pathlib" ,python2-pathlib)
-         ,@(package-propagated-inputs python2-tmx))))))
+       (modify-inputs (package-propagated-inputs python2-tmx)
+         (prepend python2-pathlib))))))
 
 (define-public python-xsge
   (package
@@ -435,9 +433,9 @@ levels.")
                      "--root=/"))))
        #:tests? #f)) ; no check target
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (propagated-inputs
-     `(("python-sge" ,python-sge)))
+     (list python-sge))
     (home-page "https://python-sge.github.io/")
     (synopsis "Extensions for the SGE Game Engine")
     (description
@@ -447,10 +445,69 @@ GUI toolkit, lighting and physics frameworks and @code{Tiled} TMX format
 support.")
     (license license:gpl3+)))
 
+(define-public slade
+  (package
+    (name "slade")
+    (version "3.1.13")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sirjuddington/SLADE")
+             (commit version)))
+       (sha256 (base32 "009yc5m6y074wfalvwbrnv2zsmaf9yhbi8hzgs973di0zqnqv011"))
+       (file-name (git-file-name name version))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags
+       (list "-DWX_GTK3=ON" "-DNO_WEBVIEW=ON"
+             (string-append "-DWITH_WXPATH="
+                            (assoc-ref %build-inputs "wxwidgets") "/bin")
+             (string-append "-DwxWidgets_LIBRARIES="
+                            (assoc-ref %build-inputs "wxwidgets") "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'reset-slade.pk3-timestamps
+           ;; This is neccessary to make slade reproducible due to
+           ;; <https://bugs.gnu.org/44741>.  TODO: Remove on next core update
+           ;; cycle.
+           (lambda _
+             (invoke "find" "../source/dist/res" "-exec" "touch"
+                     "--no-dereference" "-t" "197001010000.00" "{}"
+                     "+")))
+         (add-after 'install 'wrap-with-x11-gdk-backend
+           ;; Set GDK_BACKEND to x11 to prevent crash on Wayland.
+           ;; See https://github.com/sirjuddington/SLADE/issues/1097 for details.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (wrap-program
+                 (string-append (assoc-ref outputs "out")
+                                "/bin/slade")
+               '("GDK_BACKEND" = ("x11"))))))
+       #:tests? #f)) ;; No test suite.
+    (inputs
+     `(("bash" ,bash-minimal)
+       ("curl" ,curl)
+       ("fluidsynth" ,fluidsynth)
+       ("freeimage" ,freeimage)
+       ("ftgl" ,ftgl)
+       ("glew" ,glew)
+       ("gtk+" ,gtk+)
+       ("sfml" ,sfml)
+       ("wxwidgets" ,wxwidgets-3.1)))
+    (native-inputs
+     (list pkg-config which zip))
+    (home-page "https://slade.mancubus.net")
+    (synopsis "Doom game data editor")
+    (description "SLADE3 is a modern editor for Doom-engine based games and
+source ports.  It has the ability to view, modify, and write many different game-
+specific formats, and even convert between some of them, or from/to other generic
+formats such as PNG.")
+    (license license:gpl2+)))
+
 (define-public tiled
   (package
     (name "tiled")
-    (version "1.5.0")
+    (version "1.7.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -459,15 +516,12 @@ support.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1prajkx1xpp3csa0xpkrn3c2cnzvmwzxgrqb9d3gqszp3sllr2dg"))))
+                "1ifxh3sv6gz32gahgi7ba0ivcw5mfgwnrw6iycpav150w9xla43i"))))
     (build-system gnu-build-system)
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)
-       ("zlib" ,zlib)))
+     (list qtbase-5 qtdeclarative qtsvg zlib))
     (native-inputs
-     `(("qttools" ,qttools)))
+     (list qttools))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -495,16 +549,16 @@ clone.")
 (define-public tsukundere
   (package
     (name "tsukundere")
-    (version "0.3.2")
+    (version "0.4.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://gitlab.com/leoprikler/tsukundere")
+                    (url "https://gitlab.com/lilyp/tsukundere")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "05y3nj8vpn40hfr2y29p8pa9hhpzibhbvfzpm0dlphjh9crq3ii4"))))
+                "11glghnff27rqh2s34g51afg93g3f5ryfz9mkyb7qj35ngl8vw5f"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((ice-9 match)
@@ -534,9 +588,12 @@ clone.")
                          ((label . pkg)
                           (and (string-prefix? "guile-" label) pkg)))
                        inputs))))
-               (substitute* "bin/tsukundere"
+               (substitute* "tsukundere.scm"
                  (("exec guile (.*)" _ args)
                   (string-append
+                   ;; XXX: Prevent Guile-SDL2 from blowing up by not knowing
+                   ;;      where the SDL2 libaries are.
+                   "unset LD_LIBRARY_PATH\n"
                    (format #f "export GUILE_LOAD_PATH=\"~@?\"~%"
                            "~{~a~^:~}" (map scm pkgs))
                    (format #f "export GUILE_LOAD_COMPILED_PATH=\"~@?\"~%"
@@ -550,12 +607,15 @@ clone.")
        ("automake" ,automake)
        ("gettext" ,gettext-minimal)
        ("guile" ,guile-3.0)
+       ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)
        ("texinfo" ,texinfo)))
     (inputs
      `(("guile-sdl2" ,guile3.0-sdl2)
-       ("guile" ,guile-3.0)))
-    (home-page "https://gitlab.com/leoprikler/tsukundere")
+       ("guile" ,guile-3.0)
+       ("pango" ,pango)
+       ("sdl2" ,sdl2)))
+    (home-page "https://gitlab.com/lilyp/tsukundere")
     (synopsis "Visual novel engine")
     (description "Tsukundere is a game engine geared heavily towards the
 development of visual novels, written on top of Guile-SDL2.  It is still
@@ -591,7 +651,7 @@ experimental.")
              "-DSFML_OS_PKGCONFIG_DIR=lib/pkgconfig")
        #:tests? #f)) ; no tests
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("mesa" ,mesa)
        ("glew" ,glew)
@@ -605,10 +665,7 @@ experimental.")
        ("stb-image-write" ,stb-image-write)))
     (propagated-inputs
      ;; In Requires.private of pkg-config files.
-     `(("flac" ,flac)
-       ("freetype" ,freetype)
-       ("libvorbis" ,libvorbis)
-       ("openal" ,openal)))
+     (list flac freetype libvorbis openal))
     (home-page "https://www.sfml-dev.org")
     (synopsis "Simple and Fast Multimedia Library")
     (description
@@ -642,11 +699,9 @@ of five modules: system, window, graphics, audio and network.")
                         #t))))
        #:tests? #f)) ; no tests
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("desktop-file-utils" ,desktop-file-utils)))
+     (list pkg-config desktop-file-utils))
     (inputs
-     `(("sdl" ,sdl)
-       ("gtk+" ,gtk+)))
+     (list sdl gtk+))
     (synopsis "Simple sound effect generator")
     (description "Sfxr is a tool for quickly generating simple sound effects.
 Originally created for use in video game prototypes, it can generate random
@@ -709,9 +764,9 @@ garbage collection and can be extended with plugins.")
                         (("CMAKE_COMPILER_IS_GNUCC") "FALSE"))
                       #t)))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (native-inputs
-     `(("doxygen" ,doxygen)))
+     (list doxygen))
     (home-page "https://icculus.org/physfs")
     (synopsis "File system abstraction library")
     (description
@@ -738,19 +793,19 @@ archive on a per-file basis.")
                "0m8lvlabmcchskx4qpzkdlsm44360f3j0q3vvvj2388cfnvhv7v4"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("devil" ,devil)
-       ("freetype" ,freetype)
-       ("libmodplug" ,libmodplug)
-       ("libtheora" ,libtheora)
-       ("libvorbis" ,libvorbis)
-       ("luajit" ,luajit)
-       ("mesa" ,mesa)
-       ("mpg123" ,mpg123)
-       ("openal" ,openal)
-       ("sdl2" ,sdl2)
-       ("zlib" ,zlib)))
+     (list devil
+           freetype
+           libmodplug
+           libtheora
+           libvorbis
+           luajit
+           mesa
+           mpg123
+           openal
+           sdl2
+           zlib))
     (synopsis "2D game framework for Lua")
     (description "LÖVE is a framework for making 2D games in the Lua
 programming language.")
@@ -758,40 +813,44 @@ programming language.")
     (license license:zlib)))
 
 (define-public love-nuklear
-  (let ((version "v2.6")
-        (commit "fef4e00a602efb16c57ae962850b6e7a01f7a29a"))
-    (package
-      (name "love-nuklear")
-      (version (git-version version "1" commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/keharriso/love-nuklear/")
-                      (commit commit)
-                      (recursive? #t)))
-                ;; NOTE: the HEAD of the Nuklear git-submodule is at commit
-                ;; "adc52d710fe3c87194b99f540c53e82eb75c2521" of Oct 1 2019
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "15qmy8mfwkxy2x9rmxs6f9cyvjvwwj6yf78bs863xmc56dmjzzbn"))))
-      (build-system cmake-build-system)
-      (arguments
-       `(#:build-type "Release"
-         #:tests? #f))
-      (inputs
-       `(("luajit" ,luajit)))
-      (synopsis "Lightweight immediate mode GUI for LÖVE games")
-      (description "LÖVE is a Lua framework for making 2D games.  Nuklear
+  (package
+    (name "love-nuklear")
+    (version "2.6.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/keharriso/love-nuklear/")
+                    (commit (string-append "v" version))
+                    (recursive? #t)))
+              ;; NOTE: the HEAD of the Nuklear git-submodule is at commit
+              ;; "adc52d710fe3c87194b99f540c53e82eb75c2521" of Oct 1 2019
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "090xp5c975155hd1pa7bdssdlawvygs5s6icdkwbyc8il5kg5kgv"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:build-type "Release"
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-cmake
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("DESTINATION .") "DESTINATION lib/love")))))))
+    (inputs
+     (list luajit))
+    (synopsis "Lightweight immediate mode GUI for LÖVE games")
+    (description "LÖVE is a Lua framework for making 2D games.  Nuklear
 is a minimal state immediate mode graphical user interface toolkit.  This
 package is the Nuklear bindings for LÖVE created by Kevin Harrison.")
-      (home-page "https://github.com/keharriso/love-nuklear/")
-      (license license:expat))))
+    (home-page "https://github.com/keharriso/love-nuklear/")
+    (license license:expat)))
 
 (define-public allegro-4
   (package
     (name "allegro")
-    (version "4.4.3")
+    (version "4.4.3.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/liballeg/allegro5/"
@@ -799,7 +858,7 @@ package is the Nuklear bindings for LÖVE created by Kevin Harrison.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1d5ws3ihvpa6f4qc6a6drq31pajw6bblxifr4kcxzqj9br1nw28y"))))
+                "1m6lz35nk07dli26kkwz3wa50jsrxs1kb6w1nj14a911l34xn6gc"))))
     (build-system cmake-build-system)
     (arguments
      '(#:phases
@@ -811,14 +870,9 @@ package is the Nuklear bindings for LÖVE created by Kevin Harrison.")
              ;; unconditionally clobbered in the build script.
              (substitute* '("CMakeLists.txt")
                (("ADDON_LINKAGE STATIC")
-                "ADDON_LINKAGE SHARED"))
-             #t)))))
+                "ADDON_LINKAGE SHARED")))))))
     (inputs
-     `(("glu" ,glu)
-       ("libpng" ,libpng)
-       ("libvorbis" ,libvorbis)
-       ("mesa" ,mesa)
-       ("zlib" ,zlib)))
+     (list glu libpng libvorbis mesa zlib))
     (synopsis "Game programming library")
     (description "Allegro is a library mainly aimed at video game and
 multimedia programming.  It handles common, low-level tasks such as creating
@@ -830,7 +884,7 @@ etc.")
 (define-public allegro
   (package
     (name "allegro")
-    (version "5.2.5.0")
+    (version "5.2.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/liballeg/allegro5/releases"
@@ -838,7 +892,7 @@ etc.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "06dpkfnac8w3pq36834nn2iij3ajz6prladqd0w92lq39aiqv5jr"))))
+                "034pmbmbq6jagpp4lhnyjqmf8gcz5fx74d9rknrm7d4wv4cv7qy1"))))
     (build-system cmake-build-system)
     (arguments `(#:tests? #f))          ; there are no tests
     (inputs
@@ -846,7 +900,7 @@ etc.")
      `(("flac" ,flac)
        ("freetype" ,freetype)
        ("glu" ,glu)
-       ("gtk" ,gtk+-2)
+       ("gtk" ,gtk+)
        ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
        ("libtheora" ,libtheora)
@@ -859,7 +913,7 @@ etc.")
        ("physfs" ,physfs)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Game programming library")
     (description "Allegro is a library mainly aimed at video game and
 multimedia programming.  It handles common, low-level tasks such as creating
@@ -920,7 +974,7 @@ etc.")
                             (assoc-ref %build-inputs "freetype")
                             "/include/freetype2"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     ;; TODO: Use a patched Allegro 4 that supports window resizing.  This
     ;; patched version is bundled with Aseprite, but the patches should be
     ;; extracted and applied on top of a standalone Allegro 4 package.
@@ -945,6 +999,58 @@ the creation of animations, tiled graphics, texture atlases, and more.")
     (home-page "https://www.aseprite.org/")
     (license license:gpl2+)))
 
+(define-public libresprite
+  (package
+    (name "libresprite")
+    (version "1.0")
+    ;; TODO: Unbundle third party software.
+    ;; - duktape is bundled inside the project but it's hard to unbundle:
+    ;;   there are many differences from a version to the next and it is not
+    ;;   really designed to work as a shared lib.
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/LibreSprite/LibreSprite")
+                    (commit (string-append "v" version))
+                    (recursive? #t)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0djbjjh21ahlxzh0b0jp4mpfycam8h9157i4wbxkd618fraadhbp"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags
+       (list "-DWITH_WEBP_SUPPORT=1")
+       ;; Tests are unmaintained
+       #:tests? #f))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("curl" ,curl)
+       ("freetype" ,freetype)
+       ("giflib" ,giflib)
+       ("googletest" ,googletest)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libpng" ,libpng)
+       ("libwebp" ,libwebp)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)
+       ("libxxf86dga" ,libxxf86dga)
+       ("libxxf86vm" ,libxxf86vm)
+       ("lua" ,lua)                     ; Optional
+       ("pixman" ,pixman)
+       ("sdl2" ,sdl2)
+       ("sdl2-image" ,sdl2-image)
+       ("tinyxml" ,tinyxml)
+       ("zlib" ,zlib)))
+    (synopsis "Animated sprite editor and pixel art tool")
+    (description "LibreSprite is a tool for creating 2D pixel art for video
+games.  In addition to basic pixel editing features, it can assist in the
+creation of animations, tiled graphics, texture atlases, and more.
+LibreSprite is a fork of the latest GPLv2 commit of Aseprite.")
+    (home-page "https://libresprite.github.io/")
+    (license license:gpl2+)))
+
 (define-public qqwing
   (package
     (name "qqwing")
@@ -959,7 +1065,7 @@ the creation of animations, tiled graphics, texture atlases, and more.")
                 "0bw0papyqjg22z6irf36gs54y8236wa37b6gyn2h1spy65n76lqp"))))
     (build-system gnu-build-system)
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://qqwing.com/")
     (synopsis "Sudoku puzzle solver and generator")
     (description
@@ -989,11 +1095,8 @@ It offers the following features:
                (base32
                 "08ddhywdy2qg17m592ng3yr0p1ih96irg8wg729g75hsxxq9ipks"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("fontconfig" ,fontconfig)
-              ("freeglute" ,freeglut)
-              ("fribidi" ,fribidi)
-              ("glew" ,glew)))
+    (native-inputs (list pkg-config))
+    (inputs (list fontconfig freeglut fribidi glew))
     (home-page "http://quesoglc.sourceforge.net")
     (synopsis "Implementation of the OpenGL Character Renderer (GLC)")
     (description
@@ -1109,7 +1212,7 @@ to create fully featured games and multimedia programs in the python language.")
 
 (define-public python-pygame-sdl2
   (let ((real-version "2.1.0")
-        (renpy-version "7.4.8"))
+        (renpy-version "7.4.10"))
     (package
       (inherit python-pygame)
       (name "python-pygame-sdl2")
@@ -1119,7 +1222,7 @@ to create fully featured games and multimedia programs in the python language.")
          (method url-fetch)
          (uri (string-append "https://www.renpy.org/dl/" renpy-version
                              "/pygame_sdl2-" version ".tar.gz"))
-         (sha256 (base32 "1yyqcg7khac17jif86vi2d4j9l8x2vfg4h5pasrwwsy0g8386zsm"))
+         (sha256 (base32 "0m0asrr722a4v24fm8199b0c53igagylay8bn9bz9rmc0r4v8si4"))
          (modules '((guix build utils)))
          (snippet
           '(begin
@@ -1147,10 +1250,9 @@ to create fully featured games and multimedia programs in the python language.")
                                       "/lib -Wl,--enable-new-dtags -lSDL2"))
                #t)))))
       (inputs
-       `(("sdl-union"
-          ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))))
+       (list (sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf))))
       (native-inputs
-       `(("python-cython" ,python-cython)))
+       (list python-cython))
       (home-page "https://www.renpy.org/")
       (synopsis "Reimplementation of the Pygame API using SDL2")
       (description "Pygame_SDL2 reimplements the Pygame API using SDL2,
@@ -1165,21 +1267,19 @@ developed mainly for Ren'py.")
 (define-public python2-renpy
   (package
     (name "python2-renpy")
-    (version "7.4.8")
+    (version "7.4.10")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.renpy.org/dl/" version
                            "/renpy-" version "-source.tar.bz2"))
-       (sha256 (base32 "1ml3gs87xxk1iflrg5ivffr4q8fi7d65l1cx462bvvpm1rs2sa8d"))
+       (sha256 (base32 "1yngs2kh1l8micg28mcp9580qsvgq3aa8bkhv2xqfkg9qqrbr8y4"))
        (modules '((guix build utils)))
        (patches
         (search-patches
          "renpy-use-system-fribidi.patch"))
        (snippet
         '(with-directory-excursion "module"
-           ;; drop generated sources
-           (delete-file-recursively "gen")
            ;; drop fribidi sources
            (delete-file-recursively "fribidi-src")
            #t))))
@@ -1237,19 +1337,18 @@ developed mainly for Ren'py.")
                (delete-file-recursively (string-append out site "/renpy/common")))
              #t)))))
     (inputs
-     `(("ffmpeg" ,ffmpeg)
-       ("freetype" ,freetype)
-       ("fribidi" ,fribidi)
-       ("glew" ,glew)
-       ("libpng" ,libpng)
-       ("sdl-union"
-        ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))
-       ("xdg-utils" ,xdg-utils)))
+     (list ffmpeg
+           freetype
+           fribidi
+           glew
+           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
-     `(("python2-cython" ,python2-cython)))
+     (list python2-cython))
     (home-page "https://www.renpy.org/")
     (synopsis "Ren'py python module")
     (description "This package contains the shared libraries and Python modules
@@ -1467,7 +1566,7 @@ if __name__ == \"__main__\":
        ("xdg-utils" ,xdg-utils)))
     (propagated-inputs '())
     (native-inputs
-     `(("xorg-server" ,xorg-server-for-tests)))
+     (list xorg-server-for-tests))
     (outputs
      (list "out" "tutorial" "the-question"))
     (home-page "https://www.renpy.org/")
@@ -1521,8 +1620,6 @@ games.")
     (inputs
      `(("gifsicle" ,gifsicle)
        ("sdl2" ,(sdl-union (list sdl2 sdl2-image)))))
-    (native-inputs
-     `(("gcc" ,gcc-10)))                  ; for std::filesystem
     (home-page "https://github.com/kitao/pyxel")
     (synopsis "Retro game engine for Python")
     (description "Pyxel is a game engine inspired by retro gaming consoles.
@@ -1539,6 +1636,7 @@ also comes with a built-in image and sound editor.")
               (method url-fetch)
               ;; XXX: There is no URL that contains the version. :(
               (uri "http://pulkomandy.tk/projects/GrafX2/downloads/21")
+              (file-name (string-append "grafx2-" version ".tgz"))
               (sha256
                (base32
                 "0svsy6rqmdj11b400c242i2ixihyz0hds0dgicqz6g6dcgmcl62q"))))
@@ -1555,16 +1653,16 @@ also comes with a built-in image and sound editor.")
        ;; SDL header files are referenced without the preceeding "SDL/".
        (list (string-append "CFLAGS=-I"
                             (assoc-ref %build-inputs "sdl-union")
-                            "/include/SDL")
+                            "/include/SDL"
+                            " -fcommon")
              (string-append "prefix="
                             (assoc-ref %outputs "out")))
        #:tests? #f)) ; no check target
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libpng" ,libpng)
-       ("lua" ,lua-5.1)
-       ("sdl-union" ,(sdl-union (list sdl sdl-image sdl-ttf)))))
+     (list libpng lua-5.1
+           (sdl-union (list sdl sdl-image sdl-ttf))))
     (synopsis "Bitmap paint program")
     (description "GrafX2 is a bitmap paint program inspired by the Amiga
 programs Deluxe Paint and Brilliance.  Specializing in 256-color drawing, it
@@ -1591,7 +1689,7 @@ painted with a mouse.")
     (arguments
      `(#:tests? #f))                    ; no test suite
     (inputs
-     `(("libx11" ,libx11)))
+     (list libx11))
     (synopsis "Object Oriented Input System")
     (description
      "Cross Platform Object Oriented Input Lib System is a cross platform,
@@ -1628,16 +1726,14 @@ robust and compatible with many systems and operating systems.")
              "-DMYGUI_BUILD_DEMOS=FALSE"
              "-DMYGUI_BUILD_TOOLS=FALSE")))
     (native-inputs
-     `(("boost" ,boost)
-       ("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list boost doxygen pkg-config))
     (inputs
-     `(("font-dejavu" ,font-dejavu)
-       ("freetype" ,freetype)
-       ("graphviz" ,graphviz)
-       ("libx11" ,libx11)
-       ("ogre" ,ogre)
-       ("ois" ,ois)))
+     (list font-dejavu
+           freetype
+           graphviz
+           libx11
+           ogre
+           ois))
     (synopsis "Fast, flexible and simple GUI")
     (description
      "MyGUI is a library for creating Graphical User Interfaces (GUIs) for games
@@ -1663,10 +1759,9 @@ of use.")
                       "-DMYGUI_BUILD_DEMOS=FALSE"
                       "-DMYGUI_BUILD_TOOLS=FALSE")))))
     (inputs
-     `(("mesa" ,mesa)
-       ("glu" ,glu)
-       ,@(fold alist-delete (package-inputs mygui)
-               '("ogre"))))
+     (modify-inputs (package-inputs mygui)
+       (delete "ogre")
+       (prepend mesa glu)))
     (synopsis "Fast, flexible and simple GUI (OpenGL backend)")))
 
 (define-public openmw
@@ -1689,9 +1784,7 @@ of use.")
        #:configure-flags
        (list "-DDESIRED_QT_VERSION=5")))
     (native-inputs
-     `(("boost" ,boost)
-       ("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list boost doxygen pkg-config))
     (inputs
      `(("bullet" ,bullet)
        ("ffmpeg" ,ffmpeg)
@@ -1714,7 +1807,7 @@ games.")
 (define-public godot
   (package
     (name "godot")
-    (version "3.2.3")
+    (version "3.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1723,7 +1816,7 @@ games.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "19vrp5lhyvxbm6wjxzn28sn3i0s8j08ca7nani8l1nrhvlc8wi0v"))
+                "0y542zla6msgxf31rd0349d9j3ya7f3njnwmmrh8lmzfgxx86qbx"))
               (modules '((guix build utils)
                          (ice-9 ftw)
                          (srfi srfi-1)))
@@ -1738,19 +1831,23 @@ games.")
                               "assimp"
                               "certs"
                               "cvtt"
+                              "embree"
                               "enet"
                               "etc2comp"
                               "fonts"
                               "glad"
                               "jpeg-compressor"
                               "libsimplewebm"
+                              "minimp3"
                               "miniupnpc"
                               "minizip"
                               "misc"
                               "nanosvg"
+                              "oidn"
                               "pvrtccompressor"
                               "recastnavigation"
                               "squish"
+                              "stb_rect_pack"
                               "tinyexr"
                               "vhacd"
                               "xatlas")))
@@ -1818,6 +1915,19 @@ games.")
                (wrap-program (string-append out "/bin/godot")
                  `("PATH" ":" prefix (,(string-append zenity "/bin")))))
              #t))
+         (add-after 'install 'wrap
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             ;; FIXME: Mesa tries to dlopen libudev.so.0 and fails.  Pending a
+             ;; fix of the mesa package we wrap the pcb executable such that
+             ;; Mesa can find libudev.so.0 through LD_LIBRARY_PATH.
+             ;; also append ld path for pulseaudio and alsa-lib
+             (let* ((out (assoc-ref outputs "out"))
+                    (udev_path (string-append (assoc-ref inputs "udev") "/lib"))
+                    (pulseaudio_path (string-append (assoc-ref inputs "pulseaudio") "/lib"))
+                    (alas_lib_path (string-append (assoc-ref inputs "alsa-lib") "/lib")))
+               (wrap-program (string-append out "/bin/godot")
+                 `("LD_LIBRARY_PATH" ":" prefix (,udev_path ,pulseaudio_path ,alas_lib_path))))
+             #t))
          (add-after 'install 'install-godot-desktop
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -1834,7 +1944,7 @@ games.")
                            ,(string-append icons "/scalable/apps/godot.svg"))))
              #t)))))
     (outputs '("out" "headless"))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs `(("alsa-lib" ,alsa-lib)
               ("bullet" ,bullet)
               ("freetype" ,freetype)
@@ -1854,6 +1964,7 @@ games.")
               ("opusfile" ,opusfile)
               ("pcre2" ,pcre2)
               ("pulseaudio" ,pulseaudio)
+              ("udev" ,eudev) ;FIXME: required by mesa
               ("wslay" ,wslay)
               ("zenity" ,zenity)
               ("zstd" ,zstd "lib")))
@@ -1887,11 +1998,10 @@ scripted in a Python-like language.")
        ;; Only tests are compiled, and they need assertions to work correctly.
        #:build-type "Debug"))
     (native-inputs
-     `(;; for testing
-       ("googletest" ,googletest)
-       ;; for documentation
-       ("doxygen" ,doxygen)
-       ("graphviz" ,graphviz)))
+     (list ;; for testing
+           googletest
+           ;; for documentation
+           doxygen graphviz))
     (synopsis "Entity component system")
     (description "EnTT is a header-only library, containing (among other things)
 @itemize
@@ -1947,8 +2057,7 @@ scripted in a Python-like language.")
               ("libpng" ,libpng)
               ("fltk" ,fltk)
               ("zlib" ,zlib)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("xdg-utils" ,xdg-utils)))
+    (native-inputs (list pkg-config xdg-utils))
     (synopsis "Doom map editor")
     (description "Eureka is a map editor for the classic DOOM games, and a few
 related games such as Heretic and Hexen.  It comes with a 3d preview mode and
@@ -1959,29 +2068,29 @@ a 2D editor view.")
 (define-public guile-chickadee
   (package
     (name "guile-chickadee")
-    (version "0.7.0")
+    (version "0.8.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://files.dthompson.us/chickadee/"
                                   "chickadee-" version ".tar.gz"))
               (sha256
                (base32
-                "199y4kc28va6klfs19h998sfh7vx9spnrvjw7p92i47q5a7jdcp6"))))
+                "1k2dml2z57lnc36wrmwhh7avnpczxgxnshlfhpbk174vg6v609n0"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags '("GUILE_AUTO_COMPILE=0")))
     (propagated-inputs
      `(("guile-opengl" ,guile3.0-opengl)
-       ("guile-sdl2" ,guile3.0-sdl2)))
+       ("guile-sdl2" ,guile-sdl2)))
     (inputs
-     `(("freetype" ,freetype)
-       ("guile" ,guile-3.0)
-       ("libvorbis" ,libvorbis)
-       ("mpg123" ,mpg123)
-       ("openal" ,openal)))
+     (list freetype
+           guile-3.0-latest
+           libvorbis
+           mpg123
+           openal
+           readline))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)))
+     (list guile-3.0-latest pkg-config texinfo))
     (home-page "https://dthompson.us/projects/chickadee.html")
     (synopsis "Game development toolkit for Guile Scheme with SDL2 and OpenGL")
     (description "Chickadee is a game development toolkit for Guile Scheme
@@ -1997,9 +2106,6 @@ that parenthetically inclined game developers need to make 2D (and eventually
 @end enumerate\n")
     (license license:gpl3+)))
 
-(define-public guile3.0-chickadee
-  (deprecated-package "guile3.0-chickadee" guile-chickadee))
-
 (define-public bennu-game-development
   (package
     (name "bennu-game-development")
@@ -2036,12 +2142,8 @@ that parenthetically inclined game developers need to make 2D (and eventually
 
             i*86)"))
                #t)))))
-    (inputs `(("openssl" ,openssl)
-              ("zlib" ,zlib)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("autoconf" ,autoconf)
-                     ("automake" ,automake)
-                     ("libtool" ,libtool)))
+    (inputs (list openssl zlib))
+    (native-inputs (list pkg-config autoconf automake libtool))
     (synopsis "Programming language to create games")
     (description "Bennu Game Development, also known as bennudg, is a
 programming language tailored at game development.  It is the successor of
@@ -2063,11 +2165,7 @@ Fenix.")
                  (("extern fixed fmul\\( int x, int y \\);") "")
                  (("extern fixed fdiv\\( int x, int y \\);") "")))
              (chdir "modules"))))))
-    (inputs `(("zlib" ,zlib)
-              ("libpng" ,libpng)
-              ("openssl" ,openssl)
-              ("sdl-mixer" ,sdl-mixer)
-              ("bennu-game-development" ,bennu-game-development)))
+    (inputs (list zlib libpng openssl sdl-mixer bennu-game-development))
     (synopsis "Modules for the Bennu Game Development programming language")
     (description "This package contains a collection of modules for the Bennu
 Game Development programming language, from CD handling through SDL to
@@ -2088,11 +2186,9 @@ joystick support.")))
                                        "plib-CVE-2012-4552.patch"))))
     (build-system gnu-build-system)
     (inputs
-     `(("mesa" ,mesa)
-       ("libxi" ,libxi)
-       ("libxmu" ,libxmu)))
+     (list mesa libxi libxmu))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://plib.sourceforge.net/")
     (synopsis "Suite of portable game libraries")
     (description "PLIB is a set of libraries that will permit programmers to
@@ -2133,8 +2229,8 @@ of the others")
          ("freetype" ,freetype)
          ("libogg" ,libogg)))
       (native-inputs
-       `(("which" ,which)               ; Else SDL_version.h won't be found.
-         ("pkg-config" ,pkg-config)))
+       (list which ; Else SDL_version.h won't be found.
+             pkg-config))
       (arguments
        '(#:tests? #f                    ; No tests.
          #:make-flags '("CC=gcc"
@@ -2265,7 +2361,7 @@ specific knowledge of the hardware they are targeting.")
                                       sdl-union)))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("sdl" ,(sdl-union (list sdl sdl-image sdl-mixer)))))
     (home-page "http://perso.b2b2c.ca/~sarrazip/dev/burgerspace.html")
@@ -2313,7 +2409,7 @@ double-buffering.")
                (install-file "bin/Release/FNA.dll" (string-append out "/lib"))
                #t))))))
     (native-inputs
-     `(("mono" ,mono)))
+     (list mono))
     (inputs `(("sdl2-cs-src" ,(package-source sdl2-cs))
               ("mojoshader-src" ,(package-source mojoshader-cs))
               ("faudio-src" ,(package-source faudio))
@@ -2346,7 +2442,7 @@ focuses solely on developing a fully accurate XNA4 runtime for the desktop.")
                            "-DBUILD_TESTING=ON"
                            "-DENABLE_DOUBLE_PRECISION=ON")))
     (native-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     (list python-sphinx))
     (home-page "https://github.com/danfis/libccd")
     (synopsis "Library for collision detection between two convex shapes")
     (description "@code{libccd} is library for a collision detection
@@ -2383,9 +2479,7 @@ a.k.a. XenoCollide) as described in Game Programming Gems 7.")
                (("configure_file\\(libccd/.*") ""))
              #t)))))
     (inputs
-     `(("glu" ,glu)
-       ("libccd" ,libccd)
-       ("mesa" ,mesa)))
+     (list glu libccd mesa))
     (home-page "https://www.ode.org/")
     (synopsis "High performance library for simulating rigid body dynamics")
     (description "ODE is a high performance library for simulating
@@ -2417,9 +2511,7 @@ computer games, 3D authoring tools and simulation tools.")
        #:configure-flags '("-DBUILD_STATIC=OFF"
                            "-DBUILD_DEMOS=OFF")))
     (inputs
-     `(("freeglut" ,freeglut)
-       ("libxmu" ,libxmu)
-       ("libxrandr" ,libxrandr)))
+     (list freeglut libxmu libxrandr))
     (home-page "https://chipmunk-physics.net/")
     (synopsis "Fast and lightweight 2D game physics library")
     (description "Chipmunk is a simple, lightweight, fast and portable 2D
@@ -2450,7 +2542,7 @@ rigid body physics library written in C.")
        #:configure-flags '("-DBUILD_SHARED_LIBS=ON"
                            "-DBOX2D_BUILD_TESTBED=OFF")))
     (inputs
-     `(("libx11" ,libx11)))
+     (list libx11))
     (home-page "https://box2d.org/")
     (synopsis "2D physics engine for games")
     (description "Box2D is a 2D rigid body simulation library for games.
@@ -2511,18 +2603,15 @@ physics engine is just a system for procedural animation.")
              (patch-shebang "get_version.py")
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("python" ,python)
-       ("pkg-config" ,pkg-config)
-       ("stb-sprintf" ,stb-sprintf)
-       ("stb-truetype" ,stb-truetype)))
+     (list autoconf
+           automake
+           libtool
+           python
+           pkg-config
+           stb-sprintf
+           stb-truetype))
     (inputs
-     `(("lodepng" ,lodepng)
-       ("sdl2" ,sdl2)
-       ("utf8proc" ,utf8proc)
-       ("zlib" ,zlib)))
+     (list lodepng sdl2 utf8proc zlib))
     (home-page "https://github.com/libtcod/libtcod")
     (synopsis "Library specifically designed for writing roguelikes")
     (description
@@ -2607,7 +2696,7 @@ utilities frequently used in roguelikes.")
          ("uuid.h" ,util-linux "lib")
          ("zlib" ,zlib)))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (home-page "https://github.com/Warsow/qfusion")
       (supported-systems '("i686-linux" "x86_64-linux"))
       (synopsis "Warsow's fork of qfusion, the id Tech 2 derived game engine")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index e279e1eb71..6258d65f97 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -45,6 +45,7 @@
 ;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si>
 ;;; Copyright © 2019 Josh Holland <josh@inv.alid.pw>
+;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
 ;;; Copyright © 2017, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx>
 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
@@ -53,7 +54,7 @@
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Trevor Hass <thass@okstate.edu>
-;;; Copyright © 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2020, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2020 Lu hux <luhux@outlook.com>
 ;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org>
 ;;; Copyright © 2021 Olivier Rojon <o.rojon@posteo.net>
@@ -63,7 +64,9 @@
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 ;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
 ;;; Copyright © 2021 Noisytoot <noisytoot@disroot.org>
-;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2021 Christopher Baines <mail@cbaines.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -150,6 +153,7 @@
   #:use-module (gnu packages less)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libedit)
+  #:use-module (gnu packages libidn)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
@@ -170,9 +174,11 @@
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages perl-compression)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
@@ -266,8 +272,7 @@
                     (#f "Side-scrolling game")))))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (inputs
      `(("libxi" ,libxi)
        ("libxmu" ,libxmu)
@@ -410,14 +415,14 @@ The game includes a built-in editor so you can design and share your own maps.")
                 "18gn4sg4j5sw38ngb90sl50raliplrsgjcvy8fjwry733k0cgdjr"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libxml2" ,libxml2)
-       ("sdl" ,sdl)
-       ("sdl-image" ,sdl-image)
-       ("freeglut" ,freeglut)
-       ("libpng" ,libpng)
-       ("libjpeg-turbo" ,libjpeg-turbo)))
+     (list libxml2
+           sdl
+           sdl-image
+           freeglut
+           libpng
+           libjpeg-turbo))
     (home-page "http://www.armagetronad.org")
     (synopsis "Tron clone in 3D")
     (description "Armagetron Advanced is a multiplayer game in 3d that
@@ -468,13 +473,13 @@ physics settings to tweak as well.")
                               (string-append icons "/astromenace.png")))))
              #t)))))
     (inputs
-     `(("freealut" ,freealut)
-       ("freetype" ,freetype)
-       ("glu" ,glu)
-       ("libogg" ,libogg)
-       ("libvorbis" ,libvorbis)
-       ("openal" ,openal)
-       ("sdl2" ,sdl2)))
+     (list freealut
+           freetype
+           glu
+           libogg
+           libvorbis
+           openal
+           sdl2))
     (home-page "https://www.viewizard.com/")
     (synopsis "3D space shooter with spaceship upgrade possibilities")
     (description
@@ -539,10 +544,9 @@ regret their insolence.")
                              (string-append out "/share/man/man6"))
                #t))))))
     (native-inputs
-     `(("hicolor-icon-theme" ,hicolor-icon-theme)))
+     (list hicolor-icon-theme))
     (inputs
-     `(("boost" ,boost)
-       ("ncurses" ,ncurses)))
+     (list boost ncurses))
     (home-page "https://fph.altervista.org/prog/bastet.html")
     (synopsis "Antagonistic Tetris-style falling brick game for text terminals")
     (description
@@ -569,7 +573,7 @@ canyons and wait for the long I-shaped block to clear four rows at a time.")
          "0b4pddqz6is1771qmvcj8qqlr4in2djdbkk13agvp9yhfah2v8x7"))))
     (build-system gnu-build-system)
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (arguments
      `(#:tests? #f                      ;no tests
        #:make-flags '("CC=gcc")
@@ -706,8 +710,7 @@ possible, while battling many vicious aliens.")
          "bsd-games-add-wrapper.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("flex" ,flex)
-       ("bison" ,bison)))
+     (list flex bison))
     (inputs
      `(("curses" ,ncurses)
        ("pager" ,less)
@@ -846,14 +849,14 @@ Quizzes: arithmetic and quiz.")
                          '("48" "256")))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("c-ares" ,c-ares)
-       ("curl" ,curl)
-       ("glew" ,glew)
-       ("glu" ,glu)
-       ("sdl2" ,sdl2)
-       ("zlib" ,zlib)))
+     (list c-ares
+           curl
+           glew
+           glu
+           sdl2
+           zlib))
     (home-page "https://www.bzflag.org/")
     (synopsis "3D first person tank battle game")
     (description
@@ -879,7 +882,7 @@ high a score as possible.")
 (define-public cataclysm-dda
   (package
     (name "cataclysm-dda")
-    (version "0.F-2")
+    (version "0.F-3")
     (source
      (origin
        (method git-fetch)
@@ -887,7 +890,7 @@ high a score as possible.")
              (url "https://github.com/CleverRaven/Cataclysm-DDA")
              (commit version)))
        (sha256
-        (base32 "1wzsri6rh2fm7078hw0y4x7lqjs6ak4a66d05szfiinnxyn4w1ph"))
+        (base32 "1qnsz6az9qp4sbr3y4rcqhlmadrrdzafvd2xwf3db5wn0swvbjys"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
@@ -929,14 +932,14 @@ high a score as possible.")
        ("pkg-config" ,pkg-config)
        ("astyle" ,astyle)))
     (inputs
-     `(("freetype" ,freetype)
-       ("libogg" ,libogg)
-       ("libvorbis" ,libvorbis)
-       ("ncurses" ,ncurses)
-       ("sdl2" ,sdl2)
-       ("sdl2-image" ,sdl2-image)
-       ("sdl2-ttf" ,sdl2-ttf)
-       ("sdl2-mixer" ,sdl2-mixer)))
+     (list freetype
+           libogg
+           libvorbis
+           ncurses
+           sdl2
+           sdl2-image
+           sdl2-ttf
+           sdl2-mixer))
     (home-page "https://cataclysmdda.org/")
     (synopsis "Survival horror roguelike video game")
     (description
@@ -970,24 +973,23 @@ want what you have.")
           ;; Strip image URLs as they point towards non-free web services
           '(substitute* "cockatrice/src/settings/downloadsettings.cpp"
              (("downloadURLs.append\\(\".*\"\\);") "")))))
-      (build-system cmake-build-system)
+      (build-system qt-build-system)
       (arguments
        `(#:configure-flags '("-DWITH_SERVER=1"
                              "-DWITH_CLIENT=1"
                              "-DWITH_ORACLE=1"
                              "-DTEST=1")))
       (native-inputs
-       `(("googletest" ,googletest)
-         ("pkg-config" ,pkg-config)))
+       (list googletest pkg-config))
       (inputs
-       `(("protobuf" ,protobuf)
-         ("qtbase" ,qtbase-5)
-         ("qtmultimedia" ,qtmultimedia)
-         ("qtsvg" ,qtsvg)
-         ("qttools" ,qttools)
-         ("qtwebsockets" ,qtwebsockets)
-         ("xz" ,xz)
-         ("zlib" ,zlib)))
+       (list protobuf
+             qtbase-5
+             qtmultimedia
+             qtsvg
+             qttools
+             qtwebsockets
+             xz
+             zlib))
       (home-page "https://cockatrice.github.io")
       (synopsis "Tabletop card game simulator")
       (description "Cockatrice is a program for playing tabletop card games
@@ -999,7 +1001,7 @@ allows users to brew while offline.")
 (define-public corsix-th
   (package
     (name "corsix-th")
-    (version "0.65")
+    (version "0.65.1")
     (source
      (origin
        (method git-fetch)
@@ -1008,7 +1010,7 @@ allows users to brew while offline.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0hp7da7b73dpn1h22rw3h8w6aaj9azn18qnp3ap3lrlqhj4fzcb3"))))
+        (base32 "0hw92ln9jm9v55drmbfqjng58yshgwfpv7fqynryrg3gvg8zhbvh"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -1033,14 +1035,14 @@ allows users to brew while offline.")
        #:tests? #f)) ; TODO need busted package to run tests
     ;; Omit Lua-Socket dependency to disable automatic updates.
     (inputs
-     `(("ffmpeg" ,ffmpeg)
-       ("fluid-3" ,fluid-3)
-       ("freetype" ,freetype)
-       ("lua" ,lua)
-       ("lua-filesystem" ,lua-filesystem)
-       ("lua-lpeg" ,lua-lpeg)
-       ("sdl2" ,sdl2)
-       ("sdl2-mixer" ,sdl2-mixer)))
+     (list ffmpeg
+           fluid-3
+           freetype
+           lua
+           lua-filesystem
+           lua-lpeg
+           sdl2
+           sdl2-mixer))
     (home-page "https://corsixth.com")
     (synopsis "Implementation of the @i{Theme Hospital} game engine")
     (description
@@ -1082,7 +1084,7 @@ more.  This package does @emph{not} provide the game assets.")
                                     "/bin/cowsay")
                      "We're done!"))))))
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page (string-append "https://web.archive.org/web/20071026043648/"
                               "http://www.nog.net:80/~tony/warez/cowsay.shtml"))
     (synopsis "Speaking cow text filter")
@@ -1132,6 +1134,34 @@ regular @command{cat}, but it also adds terminal escape codes between
 characters and lines resulting in a rainbow effect.")
       (license license:wtfpl2))))
 
+(define-public falltergeist
+  (package
+    (name "falltergeist")
+    (version "0.3.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/falltergeist/falltergeist")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "05cg58i2g32wbmrvmdsicic8xs83gld3qr1p7r4lnlckcl1l7dy4"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f)) ; no tests provided
+    (native-inputs (list pkg-config))
+    (inputs `(("sdl" ,(sdl-union (list sdl2
+                                       sdl2-image
+                                       sdl2-mixer)))
+              ("glew" ,glew)
+              ("glm" ,glm)))
+    (home-page "https://falltergeist.org/")
+    (synopsis "Fallout 2 game engine")
+    (description "This package provides the Fallout 2 game engine.  Game data
+should be placed in @file{~/.local/share/falltergeist}.")
+    (license license:gpl3+)))
+
 (define-public foobillard++
   ;; Even though this latest revision is old already, stable release is
   ;; lagging way behind it, and has issues with textures rendering.
@@ -1230,9 +1260,7 @@ characters and lines resulting in a rainbow effect.")
                             "foobillardplus"))
                  #t))))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)))
+       (list autoconf automake pkg-config))
       (inputs
        `(("font-dejavu" ,font-dejavu)
          ("freetype" ,freetype)
@@ -1297,10 +1325,7 @@ The game features:
                   (string-append "IWAD=" wad-dir "/freedoom2.wad")))
                #t))))))
     (native-inputs
-     `(("asciidoc" ,asciidoc)
-       ("deutex" ,deutex)
-       ("python" ,python)
-       ("python-pillow" ,python-pillow)))
+     (list asciidoc deutex python python-pillow))
     (home-page "https://freedoom.github.io/")
     (synopsis "Free content game based on the Doom engine")
     (native-search-paths
@@ -1344,7 +1369,7 @@ effects and music to make a completely free game.")
        ;;   SDL_AUDIODRIVER=dummy ./src/freedroidRPG -nb text
        #:tests? #f))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("glu" ,glu)
        ("libjpeg" ,libjpeg-turbo)
@@ -1430,7 +1455,7 @@ real-time combat.")
                          '("Help" "Patterns" "Rules" "Scripts")))
              #t)))))
     (native-inputs
-     `(("lua" ,lua)))
+     (list lua))
     (inputs
      `(("glu" ,glu)
        ("mesa" ,mesa)
@@ -1459,6 +1484,47 @@ automata.  The following features are available:
 @end enumerate")
     (license license:gpl2+)))
 
+(define-public joycond
+  (let ((commit "f9a66914622514c13997c2bf7ec20fa98e9dfc1d")
+        (revision "1"))
+    (package
+      (name "joycond")
+      (version (git-version "0.1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/DanielOgorchock/joycond")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "07z86yp27vxc0b44jgvf1vpa69rh3wdvd1xbzcsrj3f32743pv5a"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:tests? #f                    ;no test suite
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-bin-location
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (substitute* "CMakeLists.txt"
+                   (("/lib/udev/rules.d")
+                    (string-append out "/lib/udev/rules.d"))
+                   (("/etc/systemd/system")
+                    (string-append out "/etc/systemd/system"))
+                   (("/etc/modules-load.d")
+                    (string-append out "/etc/modules-load.d"))
+                   (("/usr/bin")
+                    (string-append out "/bin")))))))))
+      (native-inputs (list pkg-config))
+      (inputs
+       (list eudev libevdev))
+      (home-page "https://github.com/DanielOgorchock/joycond")
+      (synopsis "Joy-Con controller daemon")
+      (description "This package provides a userspace daemon for the Nintendo
+Joy-Con controllers.")
+      (license license:gpl3))))
+
 (define-public julius
   (package
     (name "julius")
@@ -1481,9 +1547,7 @@ automata.  The following features are available:
            #t))))
     (build-system cmake-build-system)
     (inputs
-     `(("libpng" ,libpng)
-       ("sdl2" ,sdl2)
-       ("sdl2-mixer" ,sdl2-mixer)))
+     (list libpng sdl2 sdl2-mixer))
     (home-page "https://github.com/bvschaik/julius")
     (synopsis "Re-implementation of Caesar III game engine")
     (description
@@ -1549,7 +1613,7 @@ game Caesar III.  Gameplay enhancements include:
     (arguments
      `(#:tests? #f))                    ; there are no tests
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("curl" ,curl)
        ("libarchive" ,libarchive)
@@ -1613,10 +1677,7 @@ shadow mimic them to reach blocks you couldn't reach alone.")
                   '("Roboto-Black.ttf" "Roboto-Bold.ttf" "Roboto-Medium.ttf")))
                #t))))))
     (inputs
-     `(("allegro" ,allegro)
-       ("font-google-roboto" ,font-google-roboto)
-       ("surgescript" ,surgescript)
-       ("xdg-utils" ,xdg-utils)))
+     (list allegro font-google-roboto surgescript xdg-utils))
     (home-page "https://opensurge2d.org")
     (synopsis "2D retro side-scrolling game")
     (description "@code{Open Surge} is a 2D retro side-scrolling platformer
@@ -1662,7 +1723,7 @@ built-in level editor.")
        ("fontconfig" ,fontconfig)
        ("curl" ,curl)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://www.knightsgame.org.uk/")
     (synopsis "Multiplayer dungeon game involving knights and quests")
     (description "Knights is a multiplayer game involving several knights who
@@ -1692,7 +1753,8 @@ destroying an ancient book using a special wand.")
                 "0s5fg4z5in1h39fcr69j1qc5ynmg7a8mfprk3mc3c0csq3snfwz2"))))
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t
+       #:meson ,meson-0.59
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
@@ -1702,11 +1764,7 @@ destroying an ancient book using a special wand.")
                (("gtk-update-icon-cache") "true"))
              #t)))))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("clutter" ,clutter)
-       ("clutter-gtk" ,clutter-gtk)
-       ("libgee" ,libgee)
-       ("libgnome-games-support" ,libgnome-games-support)))
+     (list gtk+ clutter clutter-gtk libgee libgnome-games-support))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin") ; for desktop-file-validate and appstream-util
@@ -1746,8 +1804,7 @@ in one tile.")
                (("gtk-update-icon-cache") "true"))
              #t)))))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("librsvg" ,librsvg)))
+     (list gtk+ librsvg))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin") ; for desktop-file-validate and appstream-util
@@ -1775,18 +1832,17 @@ such as chess or stockfish.")
         (base32
          "11xwhcli1h12k6rnhhyq4jphzrhfik7i8ah3k32pqw803460n6yf"))))
     (build-system gnu-build-system)
-    (inputs `(;; XXX: Build with an older Pango for 'pango_font_get_hb_font' and
-              ;; 'pango_coverage_get_type'.  Try removing this for versions > 1.06.002.
-              ("pango" ,pango-1.42)
-
-              ("glib" ,glib)
-              ("readline" ,readline)
-              ("gtk+" ,gtk+-2)
-              ("mesa" ,mesa)
-              ("glu" ,glu)
-              ("gtkglext" ,gtkglext)
-              ("sqlite" ,sqlite)
-              ("libcanberra" ,libcanberra)))
+    (inputs (list ;; XXX: Build with an older Pango for 'pango_font_get_hb_font' and
+                  ;; 'pango_coverage_get_type'.  Try removing this for versions > 1.06.002.
+                  pango-1.42
+                  glib
+                  readline
+                  gtk+-2
+                  mesa
+                  glu
+                  gtkglext
+                  sqlite
+                  libcanberra))
     (native-inputs `(("python-2" ,python-2)
                      ("pkg-config" ,pkg-config)))
     (arguments
@@ -1848,12 +1904,12 @@ also features an attractive, 3D representation of the playing board.")
                         (("gtk-update-icon-cache")
                          "true"))
                       #t)))))
-    (inputs `(("gtk+" ,gtk+-2)
-              ("mesa" ,mesa)
-              ("glu" ,glu)
-              ("libx11" ,libx11)
-              ("guile" ,guile-2.0)
-              ("gtkglext" ,gtkglext)))
+    (inputs (list gtk+-2
+                  mesa
+                  glu
+                  libx11
+                  guile-2.0
+                  gtkglext))
     (native-inputs `(("gettext" ,gettext-minimal)
                      ("pkg-config" ,pkg-config)))
     (home-page "https://www.gnu.org/software/gnubik/")
@@ -1908,7 +1964,7 @@ Chess).  It is similar to standard chess but this variant is far more complicate
                       (search-input-directory inputs "include/SDL")
                       ":" (or (getenv "CPATH") ""))))))))
     (inputs
-     `(("sdl-union" ,(sdl-union (list sdl sdl-mixer)))))
+     (list (sdl-union (list sdl sdl-mixer))))
     (home-page "http://lgames.sourceforge.net/LTris/")
     (synopsis "Tetris clone based on the SDL library")
     (description
@@ -1937,11 +1993,9 @@ watch your CPU playing while enjoying a cup of tea!")
         (sha256
           (base32 "1liyckjp34j354qnxc1zn9730lh1p2dabrg1hap24z6xnqx0rpng"))))
     (native-inputs
-      `(("bison" ,bison)
-        ("flex" ,flex)))
+      (list bison flex))
     (inputs
-      `(("ncurses" ,ncurses)
-        ("less" ,less)))
+      (list ncurses less))
     (build-system gnu-build-system)
     (arguments
       '(#:make-flags
@@ -2077,9 +2131,7 @@ role, and your gender.")
                 (string-append assignment "$(docdir)\n")))
              #t)))))
     (inputs
-     `(("libpng" ,libpng)
-       ("mesa" ,mesa)
-       ("sdl" ,sdl)))
+     (list libpng mesa sdl))
     (home-page "http://pipewalker.sourceforge.net/")
     (synopsis "Logical tile puzzle")
     (description
@@ -2118,17 +2170,17 @@ Every puzzle has a complete solution, although there may be more than one.")
           (lambda* (#:key inputs #:allow-other-keys)
             (setenv "CPATH"
                     (string-append
-                     (search-input-file inputs "/include/SDL")
+                     (search-input-directory inputs "/include/SDL")
                      ":" (or (getenv "CPATH") ""))))))))
    (inputs
-    `(("fluidsynth" ,fluidsynth)
-      ("glu" ,glu)
-      ("libmad" ,libmad)
-      ("libpng" ,libpng)
-      ("libvorbis" ,libvorbis)
-      ("pcre" ,pcre)
-      ("portmidi" ,portmidi)
-      ("sdl-union" ,(sdl-union (list sdl sdl-image sdl-mixer sdl-net)))))
+    (list fluidsynth
+          glu
+          libmad
+          libpng
+          libvorbis
+          pcre
+          portmidi
+          (sdl-union (list sdl sdl-image sdl-mixer sdl-net))))
    (home-page "http://prboom-plus.sourceforge.net/")
    (synopsis "Version of the classic 3D shoot'em'up game Doom")
    (description
@@ -2176,11 +2228,9 @@ Every puzzle has a complete solution, although there may be more than one.")
                  (copy-recursively "data" data)
                  #t))))))
       (native-inputs
-       `(("unzip" ,unzip)))
+       (list unzip))
       (inputs
-       `(("python-sge-pygame" ,python-sge-pygame)
-         ("python-six" ,python-six)
-         ("python-xsge" ,python-xsge)))
+       (list python-sge python-six python-xsge))
       (home-page "https://retux-game.github.io/")
       (synopsis "Action platformer game")
       (description
@@ -2288,10 +2338,9 @@ exec -a \"~a\" ~a \"$@\"\n"
                (chmod roguebox-adventures #o555))
              #t)))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (inputs
-     `(("python-pygame" ,python-pygame)
-       ("python-tmx" ,python-tmx)))
+     (list python-pygame python-tmx))
     (home-page "https://rogueboxadventures.tuxfamily.org")
     (synopsis "A classical roguelike/sandbox game")
     (description
@@ -2403,8 +2452,7 @@ can be explored and changed freely.")
                  (("f_scale = 0.35") "f_scale = 0.47")))
              #t)))))
     (inputs
-     `(("font-bitstream-vera" ,font-bitstream-vera)
-       ("python-pygame" ,python-pygame)))
+     (list font-bitstream-vera python-pygame))
     (home-page "http://www.imitationpickles.org/barbie/")
     (synopsis "Help Barbie the seahorse float on bubbles to the moon")
     (description
@@ -2454,8 +2502,7 @@ and defeat them with your bubbles!")
              (setenv "XDG_RUNTIME_DIR" (getcwd))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (inputs
      `(("glm" ,glm)
        ("libmodplug" ,libmodplug)
@@ -2494,8 +2541,8 @@ in mind.")
     (arguments
      `(#:tests? #false))                ; no test suite
     (inputs
-     `(("solarus" ,solarus)
-       ,@(package-inputs solarus)))
+     (modify-inputs (package-inputs solarus)
+       (prepend solarus)))
     (synopsis "Create and modify quests for the Solarus engine")
     (description
      "Solarus Quest Editor is a graphical user interface to create and
@@ -2504,16 +2551,18 @@ modify quests for the Solarus engine.")))
 (define-public superstarfighter
   (package
     (name "superstarfighter")
-    (version "0.6.4")
+    (version "0.6.5")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/notapixelstudio/superstarfighter")
-             (commit (string-append "v" version))))
+             ;; The commit is not tagged upstream:
+             ;; https://github.com/notapixelstudio/superstarfighter/commit/350605bf5454c26ebe2c57d8217edd03689c0573
+             (commit "32521f467616bb390e3929d07e1936ff43fe64da")))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1fly63yf5ls1xwm15if4lxwy67wi84k4gvjllljpykrl18vw2y0y"))))
+        (base32 "1ckghzrfgvk9z1n5f4ivnamm6s8h9sbv0a3aq9pp4a3yrhkgld0k"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ;there are no tests
@@ -2569,7 +2618,7 @@ runnable=true
     (native-inputs
      `(("godot-headless" ,godot "headless")))
     (inputs
-     `(("godot" ,godot)))
+     (list godot))
     (home-page "https://notapixel.itch.io/superstarfighter")
     (synopsis "Fast-paced local multiplayer arcade game")
     (description "In SuperStarfighter, up to four local players compete in a
@@ -2753,7 +2802,7 @@ equipped with spoken co-driver notes and co-driver icons.")
                                       (string-append out "/share/man/man6"))
                         #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
@@ -2924,8 +2973,7 @@ properly.")
         "1dns0nhymak44by18sv48m4xb2skiwbi2i3nb9hl6w9iwd2i2brf"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libxaw" ,libxaw)
-       ("libxt" ,libxt)))
+     (list libxaw libxt))
     (home-page "https://www.gnu.org/software/gnushogi/")
     (synopsis "User interface for gnushogi")
     (description  "A graphical user interface for the package @code{gnushogi}.")
@@ -2960,7 +3008,7 @@ properly.")
                     (lambda* (#:key inputs #:allow-other-keys)
                       (setenv "CPATH"
                               (string-append
-                               (search-input-file inputs "include/SDL")
+                               (search-input-directory inputs "include/SDL2")
                                ":" (or (getenv "CPATH") "")))))
                   (add-after 'patch-source-shebangs 'patch-makefile
                     (lambda* (#:key outputs #:allow-other-keys)
@@ -2977,8 +3025,8 @@ properly.")
                   ;; No configure script.
                   (delete 'configure))
        #:tests? #f)) ;; No check target.
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("sdl-union" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer)))))
+    (native-inputs (list pkg-config))
+    (inputs (list (sdl-union (list sdl2 sdl2-image sdl2-mixer))))
     (home-page "https://github.com/nevat/abbayedesmorts-gpl")
     (synopsis "GNU/Linux port of the indie game \"l'Abbaye des Morts\"")
     (description "L'Abbaye des Morts is a 2D platform game set in 13th century
@@ -2991,15 +3039,16 @@ that beneath its ruins lay buried an ancient evil.")
 (define-public angband
   (package
     (name "angband")
-    (version "4.2.1")
+    (version "4.2.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://rephial.org/downloads/"
-                           (version-major+minor version)
-                           "/angband-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/angband/angband")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "03qdavkj2ik02mqjxmlm5bn17ba3yxb1rirp8ghnxy3bsk4kbmxc"))
+        (base32 "1psrdbf90mb6dhq0b9z18pz1csnshz1kvwg82dvwa99apqdw0la8"))
        (modules '((guix build utils)))
        (snippet
         ;; So, some of the sounds/graphics/tilesets are under different
@@ -3020,18 +3069,10 @@ that beneath its ruins lay buried an ancient evil.")
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
-       #:configure-flags (list (string-append "--bindir=" %output "/bin"))
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'bootstrap
-           (lambda _
-             (substitute* "acinclude.m4"
-               (("ncursesw5-config") "ncursesw6-config"))
-             (invoke "sh" "autogen.sh"))))))
+       #:configure-flags (list (string-append "--bindir=" %output "/bin"))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
-    (inputs `(("ncurses" ,ncurses)))
+     (list autoconf automake))
+    (inputs (list ncurses))
     (home-page "https://rephial.org/")
     (synopsis "Dungeon exploration roguelike")
     (description "Angband is a Classic dungeon exploration roguelike.  Explore
@@ -3065,15 +3106,14 @@ fight Morgoth, the Lord of Darkness.")
               "#include <iostream>\n#include <functional>"))
            #t))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("scons-python2" ,scons-python2)))
-    (inputs `(("sdl" ,sdl)
-              ("sdl-image" ,sdl-image)
-              ("sdl-mixer" ,sdl-mixer)
-              ("mesa" ,mesa)
-              ("glu" ,glu)
-              ("libpng" ,libpng)
-              ("boost" ,boost)))
+    (native-inputs (list pkg-config scons-python2))
+    (inputs (list sdl
+                  sdl-image
+                  sdl-mixer
+                  mesa
+                  glu
+                  libpng
+                  boost))
     (arguments
      '(#:make-flags (list (string-append "PREFIX=" %output))
        #:tests? #f                      ; no check target
@@ -3132,24 +3172,21 @@ a C library, so they can easily be integrated into other programs.")
              "-Dr_gles30=true"
              "-Dshader_transpiler=true")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("python-docutils" ,python-docutils)
-       ("python-pygments" ,python-pygments)))
-    (inputs
-     `(("cglm" ,cglm)
-       ("freetype" ,freetype)
-       ("libpng" ,libpng)
-       ("libwebp" ,libwebp)
-       ("libzip" ,libzip)
-       ("mesa" ,mesa)
-       ("openssl" ,openssl)
-       ("opusfile" ,opusfile)
-       ("sdl2" ,sdl2)
-       ("sdl2-mixer" ,sdl2-mixer)
-       ("shaderc" ,shaderc)
-       ("spirv-cross" ,spirv-cross)
-       ("zlib" ,zlib)))
+     (list pkg-config python python-docutils python-pygments))
+    (inputs
+     (list cglm
+           freetype
+           libpng
+           libwebp
+           libzip
+           mesa
+           openssl
+           opusfile
+           sdl2
+           sdl2-mixer
+           shaderc
+           spirv-cross
+           zlib))
     (home-page "https://taisei-project.org/")
     (synopsis "Shoot'em up fangame and libre clone of Touhou Project")
     (description
@@ -3181,8 +3218,7 @@ is very small), and shoot at the adversaries that keep appear on the screen.")
          "1h9jz4m4s5l8c3figaq46ja0km1gimrkfxm4dg7mf4s84icmasbm"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -3194,7 +3230,7 @@ is very small), and shoot at the adversaries that keep appear on the screen.")
                (setenv "CONFIG_SHELL" (which "bash"))
                (invoke "./configure"
                        (string-append "--prefix=" out))))))))
-    (inputs `(("ncurses" ,ncurses)))
+    (inputs (list ncurses))
     (home-page "http://www.asty.org/cmatrix")
     (synopsis "Simulate the display from \"The Matrix\"")
     (description "CMatrix simulates the display from \"The Matrix\" and is
@@ -3334,10 +3370,9 @@ To that extent, it also includes a front-end for managing all of your D-Mods.")
                 "1yp8n3w426xnlp10xk06vfi2y3k9xrcfyck7s7qs1v0ys7n284d5"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)))
+     (list intltool))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("wxwidgets" ,wxwidgets)))
+     (list bzip2 wxwidgets))
     (properties '((ftp-directory . "/freedink")
                   (upstream-name . "dfarc")))
     (home-page "https://www.gnu.org/software/freedink/")
@@ -3407,13 +3442,9 @@ exec ~a/bin/freedink -refdir ~a/share/dink\n"
                                (assoc-ref inputs "chess")
                                "/bin/gnuchessx"))))))))
     (inputs
-     `(("alsa-utils" ,alsa-utils)
-       ("chess" ,chess)
-       ("gtk+" ,gtk+-2)
-       ("librsvg" ,librsvg)))
+     (list alsa-utils chess gtk+-2 librsvg))
     (native-inputs
-     `(("texinfo" ,texinfo)
-       ("pkg-config" ,pkg-config)))
+     (list texinfo pkg-config))
     (home-page "https://www.gnu.org/software/xboard/")
     (synopsis "Graphical user interface for chess programs")
     (description "GNU XBoard is a graphical board for all varieties of chess,
@@ -3447,8 +3478,7 @@ Portable Game Notation.")
                             (find-files "." "configure$|\\.c$"))
                   #t))))
     (build-system gnu-build-system)
-    (inputs `(("ncurses" ,ncurses)
-              ("perl" ,perl)))
+    (inputs (list ncurses perl))
     (home-page "https://www.gnu.org/software/gtypist/")
     (synopsis "Typing tutor")
     (description
@@ -3497,6 +3527,10 @@ are primarily in English, however some in other languages are provided.")
              ;; The actual source is buried a few directories deep.
              (chdir "source/Irrlicht/")
              #t))
+         (add-after 'chdir-to-source 'remove-<sys/sysctl.h>
+           (lambda _
+             (substitute* "COSOperator.cpp"
+               (("#include <sys/sysctl.h>") ""))))
          (add-after 'chdir-to-source 'fix-build-env
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -3524,7 +3558,7 @@ are primarily in English, however some in other languages are provided.")
 C++.  Features include an OpenGL renderer, extensible materials, scene graph
 management, character animation, particle and other special effects, support
 for common mesh file formats, and collision detection.")
-    (home-page "http://irrlicht.sourceforge.net/")
+    (home-page "https://irrlicht.sourceforge.io/")
     (license license:zlib)))
 
 (define-public mars
@@ -3567,10 +3601,7 @@ for common mesh file formats, and collision detection.")
                                 "/share/games/marsshooter/\";")))
               #t)))))
       (inputs
-       `(("mesa" ,mesa)
-         ("fribidi" ,fribidi)
-         ("taglib" ,taglib)
-         ("sfml" ,sfml)))
+       (list mesa fribidi taglib sfml))
       (home-page "http://mars-game.sourceforge.net/")
       (synopsis "2D space shooter")
       (description
@@ -3673,9 +3704,7 @@ reference interpreter, using the Glk API.")
                 "0wxs9vz5x9y8chghd8vp7vfk089lfb0qnzggi17zrqkrngs5zgi9"))))
     (build-system cmake-build-system)
     (inputs
-     `(("sdl2" ,sdl2)
-       ("sdl2-image" ,sdl2-image)
-       ("mesa" ,mesa)))
+     (list sdl2 sdl2-image mesa))
     (arguments
      '(#:tests? #f))                    ; No included tests
     (home-page "https://fifengine.github.io/fifechan/")
@@ -3744,24 +3773,24 @@ Widgets, and allows users to create more.")
                (chdir ,(string-append "../" name "-" version))
                (invoke "python3" "run_tests.py" "-a")))))))
     (inputs
-     `(("sdl2" ,sdl2)
-       ("sdl2-image" ,sdl2-image)
-       ("sdl2-ttf" ,sdl2-ttf)
-       ("tinyxml" ,tinyxml)
-       ("openal" ,openal)
-       ("libogg" ,libogg)
-       ("glew" ,glew)
-       ("libvorbis" ,libvorbis)
-       ("boost" ,boost)
-       ("fifechan" ,fifechan)
-       ("swig" ,swig)
-       ("python" ,python)))
+     (list sdl2
+           sdl2-image
+           sdl2-ttf
+           tinyxml
+           openal
+           libogg
+           glew
+           libvorbis
+           boost
+           fifechan
+           swig
+           python))
     (native-inputs
      `(("python" ,python)
        ("swig" ,swig)
        ("xvfb" ,xorg-server)))
     (propagated-inputs
-     `(("python-future" ,python-future)))
+     (list python-future))
     (home-page "https://www.fifengine.net/")
     (synopsis "FIFE is a multi-platform isometric game engine written in C++")
     (description
@@ -3788,7 +3817,7 @@ games using Python as well as C++.")
              (ncurses (assoc-ref %build-inputs "ncurses")))
          (list (string-append "--with-jpeg-includedir=" libjpeg "/include")))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("freetype" ,freetype)
        ("libjpeg" ,libjpeg-turbo)
@@ -3817,7 +3846,10 @@ either by Infocom or created using the Inform compiler.")
               (base32
                "0wkahvqpzq6lzl5r49a4sd4p52frdmphnqsfdv7gdp24bykdfs6s"))))
     (build-system gnu-build-system)
-    (inputs `(("readline" ,readline)))
+    (inputs
+     (list readline))
+    (arguments
+     `(#:configure-flags '("CFLAGS=-fcommon")))
     (synopsis "Play the game of Go")
     (description
      "GNU Go is a program that plays the game of Go, in which players
@@ -3844,10 +3876,9 @@ Protocol).")
                 "0hc3qd9hv3h9qm53yxgc7iy1v1wyajwxyvil4vqvzf9ascz9dnlj"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("glu" ,glu)
-       ("sfml" ,sfml)))
+     (list glu sfml))
     (synopsis "High-speed arctic racing game based on Tux Racer")
     ;; Snarfed straight from Debian.
     (description "Extreme Tux Racer, or etracer as it is called for short, is
@@ -3865,15 +3896,16 @@ This game is based on the GPL version of the famous game TuxRacer.")
 (define-public supertuxkart
   (package
     (name "supertuxkart")
-    (version "1.2")
+    (version "1.3")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://sourceforge/supertuxkart/SuperTuxKart/"
+       (uri (string-append "https://github.com/supertuxkart/stk-code/"
+                           "releases/download/"
                            version "/SuperTuxKart-" version "-src.tar.xz"))
        (sha256
         (base32
-         "0dvx56hmy6wdhl7m9dw8zc1n3jqfp05gnxl6zs1rbfdyzl5dybh5"))
+         "1z9z13zarv28h4jrmjna5hr6m9266pm7c2kgiwhqls01k06ypazf"))
        (modules '((guix build utils)))
        (snippet
         ;; Delete bundled library sources
@@ -3883,17 +3915,18 @@ This game is based on the GPL version of the famous game TuxRacer.")
            ;; here: http://forum.freegamedev.net/viewtopic.php?f=17&t=3906
            ;; FIXME: try to unbundle angelscript, libmcpp and libraqm
            (for-each delete-file-recursively
-                     '("lib/glew"
-                       "lib/wiiuse"
-                       "lib/enet"))
+                     '("lib/dnsc"
+                       "lib/enet"
+                       "lib/mojoal"
+                       "lib/wiiuse"))
            #t))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; no check target
        #:configure-flags
        (list "-DUSE_WIIUSE=0"
-             "-DUSE_SYSTEM_GLEW=TRUE"
              "-DUSE_SYSTEM_ENET=TRUE"
+             "-DUSE_CRYPTO_OPENSSL=TRUE"
              ;; In order to use the system ENet library, IPv6 support (added in
              ;; SuperTuxKart version 1.1) must be disabled.
              "-DUSE_IPV6=FALSE"
@@ -3911,6 +3944,7 @@ This game is based on the GPL version of the famous game TuxRacer.")
        ("mesa" ,mesa)
        ("openal" ,openal)
        ("sdl2" ,sdl2)
+       ("sqlite" ,sqlite)
        ("zlib" ,zlib)
        ;; The following input is needed to build the bundled and modified
        ;; version of irrlicht.
@@ -3918,7 +3952,7 @@ This game is based on the GPL version of the famous game TuxRacer.")
        ("libjpeg" ,libjpeg-turbo)
        ("openssl" ,openssl)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://supertuxkart.net/Main_Page")
     (synopsis "3D kart racing game")
     (description "SuperTuxKart is a 3D kart racing game, with a focus on
@@ -3987,14 +4021,13 @@ also available.")
        ("python-pillow" ,python-pillow)
        ("python-pyyaml" ,python-pyyaml)))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("python-distro" ,python-distro)
-
-       ;; Required for tests
-       ("python-greenlet" ,python-greenlet)
-       ("python-polib" ,python-polib)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-mock" ,python-pytest-mock)))
+     (list intltool
+           python-distro
+           ;; Required for tests
+           python-greenlet
+           python-polib
+           python-pytest
+           python-pytest-mock))
     (home-page "https://unknown-horizons.org/")
     (synopsis "Isometric realtime strategy, economy and city building simulation")
     (description
@@ -4046,11 +4079,7 @@ trade and diplomacy.")
                            Categories=Game;ArcadeGame~%"
                            out)))))))))
     (inputs
-     `(("glu" ,glu)
-       ("mesa" ,mesa)
-       ("sdl" ,sdl)
-       ("sdl-image" ,sdl-image)
-       ("sdl-mixer" ,sdl-mixer)))
+     (list glu mesa sdl sdl-image sdl-mixer))
     (home-page "http://gnujump.es.gnu.org/")
     (synopsis
      "Game of jumping to the next floor, trying not to fall")
@@ -4064,7 +4093,7 @@ falling, themeable graphics and sounds, and replays.")
 (define-public wesnoth
   (package
     (name "wesnoth")
-    (version "1.14.17")
+    (version "1.16.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
@@ -4073,7 +4102,7 @@ falling, themeable graphics and sounds, and replays.")
                                   "wesnoth-" version ".tar.bz2"))
               (sha256
                (base32
-                "1qc4ylhc4ab51milclzhflpmzw6bg35knwqaj3b157700jkcniin"))))
+                "0cyrwmdg93pqpdm7030540jznaky9rda355i9ym8am4k9civlcwf"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ;no check target
@@ -4081,13 +4110,13 @@ falling, themeable graphics and sounds, and replays.")
      `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("boost" ,boost)
-       ("dbus" ,dbus)
-       ("fribidi" ,fribidi)
-       ("libvorbis" ,libvorbis)
-       ("openssl" ,openssl)
-       ("pango" ,pango)
-       ("sdl-union" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))))
+     (list boost
+           dbus
+           fribidi
+           libvorbis
+           openssl
+           pango
+           (sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf))))
     (home-page "https://www.wesnoth.org/")
     (synopsis "Turn-based strategy game")
     (description
@@ -4106,10 +4135,7 @@ next campaign.")
     (inherit wesnoth)
     (name "wesnoth-server")
     (inputs
-     `(("boost" ,boost)
-       ("icu4c" ,icu4c)
-       ("openssl" ,openssl)
-       ("sdl2" ,sdl2)))
+     (list boost icu4c openssl sdl2))
     (arguments
      `(#:configure-flags '("-DENABLE_GAME=OFF")
        ,@(package-arguments wesnoth)))
@@ -4130,13 +4156,12 @@ Battle for Wesnoth}.")))
                 "1sc6f4445ciigd6yw0ri92746k4hk6ps0bvj9fm1gbp3c3fslk5n"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base) ; playbin plugin
-       ("gst-plugins-good" ,gst-plugins-good) ; for wav playback
-       ("gtk+" ,gtk+)))
+     (list gstreamer
+           gst-plugins-base ; playbin plugin
+           gst-plugins-good ; for wav playback
+           gtk+))
     (arguments
      `(#:tests? #f
        #:make-flags
@@ -4182,13 +4207,10 @@ on the screen and keyboard to display letters.")
                             (assoc-ref %build-inputs "sdl-union")
                             "/include/SDL"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("glu" ,glu)
-       ("curl" ,curl)
-       ("libxml2" ,libxml2)
-       ("mesa" ,mesa)
-       ("sdl-union" ,(sdl-union))))
+     (list glu curl libxml2 mesa
+           (sdl-union)))
     (home-page "https://manaplus.org")
     (synopsis "Client for 'The Mana World' and similar games")
     (description
@@ -4204,14 +4226,14 @@ world}, @uref{http://evolonline.org, Evol Online} and
 (define openttd-engine
   (package
     (name "openttd-engine")
-    (version "1.11.2")
+    (version "12.0")
     (source
      (origin (method url-fetch)
              (uri (string-append "https://cdn.openttd.org/openttd-releases/"
                                  version "/openttd-" version "-source.tar.xz"))
              (sha256
               (base32
-               "0v9f93lsdcv3ia28y8iihx9nj9zp6fpf5hkdrpl4ypw159d97fhg"))))
+               "1p1j5cf4ry57dcgm7qx2g2s00z1c6qgjabb4kqjp00yz00wgv85v"))))
     (build-system cmake-build-system)
     (inputs
      `(("allegro" ,allegro)
@@ -4241,7 +4263,7 @@ engine.  When you start it you will be prompted to download a graphics set.")
 (define openttd-opengfx
   (package
     (name "openttd-opengfx")
-    (version "0.6.1")
+    (version "7.1")
     (source
      (origin
        (method url-fetch)
@@ -4249,10 +4271,10 @@ engine.  When you start it you will be prompted to download a graphics set.")
                            version "/opengfx-" version "-source.tar.xz"))
        (sha256
         (base32
-         "0jgy8xv7r72m127qn09vr3rxhnbakl2990f7lldsk0d5d8n993vd"))))
+         "0nhzlk6s73qvznm5fdwcs1b42g2plf26s5ag39fvck45zm7m48jk"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:make-flags (list "CC=gcc"
+     `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
                           (string-append "INSTALL_DIR="
                                          (assoc-ref %outputs "out")
                                          "/share/games/openttd/baseset/opengfx"))
@@ -4280,7 +4302,7 @@ engine.  When you start it you will be prompted to download a graphics set.")
                      ("grfcodec" ,grfcodec)
                      ("nml" ,nml)
                      ("which" ,which)
-                     ("python" ,python-2)))
+                     ("python" ,python)))
     (home-page "http://dev.openttdcoop.org/projects/opengfx")
     (synopsis "Base graphics set for OpenTTD")
     (description
@@ -4300,7 +4322,7 @@ OpenGFX provides you with...
 (define openttd-opensfx
   (package
     (name "openttd-opensfx")
-    (version "1.0.1")
+    (version "1.0.2")
     (source
      (origin
        (method url-fetch)
@@ -4309,17 +4331,17 @@ OpenGFX provides you with...
              version "/opensfx-" version "-source.tar.xz"))
        (sha256
         (base32
-         "06vycppqcxbfdqlxzna5xr303zgcmpcvj6ylw5b2ws0ssph2f1s0"))))
+         "0aym026lg0r7dp3jxxs9c0rj8lwy1fz3v9hmk3mml6sycsg3fv42"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("catcodec" ,catcodec)
-       ("python" ,python-2)
+       ("python" ,python)
        ("tar" ,tar)))
     (arguments
      `(#:make-flags
        (list (string-append "DIR_NAME=opensfx")
-             (string-append "TAR=" (assoc-ref %build-inputs "tar")
-                            "/bin/tar"))
+             (string-append "TAR="
+                            (search-input-file %build-inputs "/bin/tar")))
        ;; The check phase only verifies md5sums, see openttd-opengfx.
        #:tests? #f
        #:phases
@@ -4350,7 +4372,7 @@ the original Transport Tycoon Deluxe.")
 (define openttd-openmsx
   (package
     (name "openttd-openmsx")
-    (version "0.4.0")
+    (version "0.4.2")
     (source
      (origin
        (method url-fetch)
@@ -4359,17 +4381,19 @@ the original Transport Tycoon Deluxe.")
              version "/openmsx-" version "-source.tar.xz"))
        (sha256
         (base32
-         "0prjljsdgdxqdhhcriqskqha004ybs575xcjq80zha3pqnmrdk0k"))))
+         "0h583d8fxy78kc3jvpp78r76a48qhxrhm4q7jbnj74aw0kwrcl8g"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("grfcodec" ,grfcodec)
-       ("python" ,python-2)
+       ; Scripts are Python3 compatible, but call the interpreter as
+       ; python instead of python3.
+       ("python" ,python-wrapper)
        ("tar" ,tar)))
     (arguments
      `(#:make-flags
        (list (string-append "DIR_NAME=openmsx")
-             (string-append "TAR=" (assoc-ref %build-inputs "tar")
-                            "/bin/tar"))
+             (string-append "TAR="
+                            (search-input-file %build-inputs "/bin/tar")))
        ;; The check phase only verifies md5sums, see openttd-opengfx.
        #:tests? #f
        #:phases
@@ -4406,8 +4430,8 @@ Transport Tycoon Deluxe.")
                                   (assoc-ref outputs "out")))
               (list "opengfx" "openmsx" "opensfx")))))))
     (inputs
-     `(("timidity++" ,timidity++)
-       ,@(package-inputs openttd-engine)))
+     (modify-inputs (package-inputs openttd-engine)
+       (prepend timidity++)))
     (native-inputs
      `(("opengfx" ,openttd-opengfx)
        ("openmsx" ,openttd-openmsx)
@@ -4441,7 +4465,7 @@ Transport Tycoon Deluxe.")
                (openrct2-title-sequences (string-append out
                                          "/share/openrct2/title-sequences"))
                (source (assoc-ref %build-inputs "source"))
-               (unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")))
+               (unzip (search-input-file %build-inputs "/bin/unzip")))
           (copy-file source (string-append ,name "-" ,version ".zip"))
           (invoke unzip (string-append ,name "-" ,version ".zip"))
           (delete-file (string-append ,name "-" ,version ".zip"))
@@ -4481,7 +4505,7 @@ Transport Tycoon Deluxe.")
                (openrct2-objects (string-append out
                                          "/share/openrct2/objects"))
                (source (assoc-ref %build-inputs "source"))
-               (unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")))
+               (unzip (search-input-file %build-inputs "/bin/unzip")))
           (copy-file source (string-append ,name "-" ,version ".zip"))
           (invoke unzip (string-append ,name "-" ,version ".zip"))
           (delete-file (string-append ,name "-" ,version ".zip"))
@@ -4541,10 +4565,10 @@ Transport Tycoon Deluxe.")
               ("freetype" ,freetype)
               ("icu4c" ,icu4c)
               ("jansson" ,jansson)
+              ("json-modern-cxx" ,json-modern-cxx)
               ("libpng" ,libpng)
               ("libzip" ,libzip)
               ("mesa" ,mesa)
-              ("nlohmann-json-cpp" ,nlohmann-json-cpp)
               ("openrct2-objects" ,openrct2-objects)
               ("openrct2-title-sequences" ,openrct2-title-sequences)
               ("openssl" ,openssl)
@@ -4552,7 +4576,7 @@ Transport Tycoon Deluxe.")
               ("speexdsp" ,speexdsp)
               ("zlib" ,zlib)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/OpenRCT2/OpenRCT2")
     (synopsis "Free software re-implementation of RollerCoaster Tycoon 2")
     (description "OpenRCT2 is a free software re-implementation of
@@ -4581,17 +4605,14 @@ images, etc.)")
              (patches (search-patches "pinball-system-ltdl.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("libtool" ,libtool)))
+     (list autoconf automake pkg-config libtool))
     (inputs
-     `(("glu" ,glu)
-       ("libltdl" ,libltdl)
-       ("mesa" ,mesa)
-       ("sdl" ,sdl)
-       ("sdl-image" ,sdl-image)
-       ("sdl-mixer" ,sdl-mixer)))
+     (list glu
+           libltdl
+           mesa
+           sdl
+           sdl-image
+           sdl-mixer))
     (arguments
      '(#:configure-flags
        ;; Configure tries to use pkg-config, but falls short, so:
@@ -4638,14 +4659,8 @@ are only two levels to play with, but they are very addictive.")
                (("\"beep\"")
                 (string-append "\"" (assoc-ref inputs "beep") "/bin/beep\"")))
              #t)))))
-    (inputs `(("avahi" ,avahi)
-              ("beep" ,beep)
-              ("gtk+" ,gtk+)
-              ("librsvg" ,librsvg)))
-    (native-inputs `(("intltool" ,intltool)
-                     ("itstool" ,itstool)
-                     ("libxml2" ,libxml2)
-                     ("pkg-config" ,pkg-config)))
+    (inputs (list avahi beep gtk+ librsvg))
+    (native-inputs (list intltool itstool libxml2 pkg-config))
     (synopsis "Board game inspired by The Settlers of Catan")
     (description "Pioneers is an emulation of the board game The Settlers of
 Catan.  It can be played on a local network, on the internet, and with AI
@@ -4671,7 +4686,7 @@ players.")
        ("sdl" ,(sdl-union (list sdl sdl-mixer sdl-ttf)))
        ("zlib" ,zlib)))
     (native-inputs
-     `(("font-dejavu" ,font-dejavu)))
+     (list font-dejavu))
     (arguments
      `(#:tests? #f ; no check target
        #:phases
@@ -4704,7 +4719,7 @@ is attributed to Albert Einstein.")
 (define-public powwow
   (package
     (name "powwow")
-    (version "1.2.22")
+    (version "1.2.23")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -4712,9 +4727,9 @@ is attributed to Albert Einstein.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "12i11b8zxg8vdb9d6ims8qy2lmwwr42rcqbwq3vsa1x94s51bcbp"))))
+                "1wkl6j91pp40aps2hhnsv0bndgq49smfffws4hqcn7847bpnwwm6"))))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (build-system gnu-build-system)
     (home-page "https://www.hoopajoo.net/projects/powwow.html")
     (synopsis "MUD and telnet client")
@@ -4773,7 +4788,7 @@ http://lavachat.symlynx.com/unix/")
              (lambda* (#:key inputs #:allow-other-keys)
                (setenv "CPATH"
                        (string-append
-                        (search-input-file inputs "/include/SDL2")
+                        (search-input-directory inputs "/include/SDL2")
                         ":" (or (getenv "CPATH") "")))))
            (add-after 'install 'copy-data
              (lambda* (#:key outputs #:allow-other-keys)
@@ -4819,14 +4834,10 @@ exec -a \"$0\" ~a/.redeclipse_server_linux-real~%"
                    (chmod "redeclipse_server_linux" #o555)))
                #t)))))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (inputs
-       `(("curl" ,curl)
-         ("freetype" ,freetype)
-         ("glu" ,glu)
-         ("sdl-union" ,(sdl-union (list sdl2
-                                        sdl2-image
-                                        sdl2-mixer)))))
+       (list curl freetype glu
+             (sdl-union (list sdl2 sdl2-image sdl2-mixer))))
       (home-page "https://redeclipse.net/")
       (synopsis "Arena shooter derived from the Cube 2 engine")
       (description
@@ -4927,15 +4938,10 @@ capture it and get out alive?")
                   #t))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("imagemagick" ,imagemagick)
-       ("pkg-config" ,pkg-config)
-       ("util-linux" ,util-linux)
-       ("sox" ,sox)))
+     (list imagemagick pkg-config util-linux sox))
     (inputs
-     `(("boost" ,boost)
-       ("libconfig" ,libconfig)
-       ("sdl-union" ,(sdl-union (list sdl sdl-image sdl-mixer)))
-       ("zlib" ,zlib)))
+     (list boost libconfig
+           (sdl-union (list sdl sdl-image sdl-mixer)) zlib))
     (home-page "https://gitlab.com/lierolibre/lierolibre")
     (synopsis "Old-school earthworm action game")
     (description
@@ -5012,7 +5018,7 @@ fullscreen, use F5 or Alt+Enter.")
            (lambda _
              (invoke "./configure" "--prefix" (assoc-ref %outputs "out")))))))
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (inputs
      `(("python" ,python-wrapper)
        ("sdl" ,(sdl-union (list sdl sdl-image sdl-mixer sdl-ttf sdl-net)))))
@@ -5226,13 +5232,9 @@ of war.  Widelands also offers an Artificial Intelligence to challenge you.")
                 "0ips79j3sdy8wa64jqka0skbbqkzqiln9bbiiilh4z717q7vz9r5"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("pango" ,pango)
-       ("sdl2" ,sdl2)
-       ("sdl2-image" ,sdl2-image)
-       ("sdl2-mixer" ,sdl2-mixer)
-       ("sdl2-ttf" ,sdl2-ttf)))
+     (list pango sdl2 sdl2-image sdl2-mixer sdl2-ttf))
     (home-page "https://pr-starfighter.github.io/")
     (synopsis "2D scrolling shooter game")
     (description
@@ -5261,11 +5263,9 @@ in strikes against the evil corporation.")
                (base32
                 "0jk2w5b6s6nkzri585bbz16cif2fhqcnl5l1mq3rd98r9nil3hd1"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("gettext" ,gettext-minimal)
-              ("glu" ,glu)
-              ("quesoglc" ,quesoglc)
-              ("sdl-union" ,(sdl-union (list sdl sdl-image sdl-mixer)))))
+    (native-inputs (list pkg-config))
+    (inputs (list gettext-minimal glu quesoglc
+                  (sdl-union (list sdl sdl-image sdl-mixer))))
     (home-page "http://chromium-bsu.sourceforge.net/")
     (synopsis "Fast-paced, arcade-style, top-scrolling space shooter")
     (description
@@ -5303,8 +5303,7 @@ safety of the Chromium vessel.")
        (patches (search-patches "tuxpaint-stamps-path.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gperf" ,gperf)
-       ("pkg-config" ,pkg-config)))
+     (list gperf pkg-config))
     (inputs
      `(("cairo" ,cairo)
        ("fribidi" ,fribidi)
@@ -5375,8 +5374,7 @@ your child be creative.")
          "1skr23k27yj3vgwfazpzxp90lb2a278gxrkr3bxw7az6zpkmb3yp"))))
     (build-system trivial-build-system)
     (native-inputs
-     `(("tar" ,tar)
-       ("gzip" ,gzip)))
+     (list tar gzip))
     (arguments
      `(#:modules ((guix build utils))
        #:builder (begin
@@ -5414,12 +5412,12 @@ with the \"Stamp\" tool within Tux Paint.")
     (native-inputs
      `(("gettext" ,gettext-minimal)))
     (inputs
-     `(("fltk" ,fltk)
-       ("libpaper" ,libpaper)
-       ;; TODO: Should the following be propagated by fltk?
-       ("libx11" ,libx11)
-       ("libxft" ,libxft)
-       ("mesa" ,mesa)))
+     (list fltk
+           libpaper
+           ;; TODO: Should the following be propagated by fltk?
+           libx11
+           libxft
+           mesa))
     (arguments
      `(#:make-flags `("VER_DATE=2018-09-01"
                       "CONFDIR=/etc/tuxpaint" ;don't write to store
@@ -5478,21 +5476,21 @@ with the \"Stamp\" tool within Tux Paint.")
                  (string-append "${SQUIRREL_PREFIX}/include/squirrel"))))
             #t)))))
    (build-system cmake-build-system)
-   (inputs `(("sdl2" ,sdl2)
-             ("sdl2-image" ,sdl2-image)
-             ("sdl2-mixer" ,sdl2-mixer)
-             ("openal" ,openal)
-             ("mesa" ,mesa)
-             ("glew" ,glew)
-             ("libvorbis" ,libvorbis)
-             ("libogg" ,libogg)
-             ("physfs" ,physfs)
-             ("curl" ,curl)
-             ("boost" ,boost)
-             ("freetype" ,freetype)
-             ("squirrel" ,squirrel)))
+   (inputs (list sdl2
+                 sdl2-image
+                 sdl2-mixer
+                 openal
+                 mesa
+                 glew
+                 libvorbis
+                 libogg
+                 physfs
+                 curl
+                 boost
+                 freetype
+                 squirrel))
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    (list pkg-config))
    (synopsis "2D platformer game")
    (description "SuperTux is a classic 2D jump'n run sidescroller game in
 a style similar to the original Super Mario games.")
@@ -5512,10 +5510,7 @@ a style similar to the original Super Mario games.")
        (sha256
         (base32 "1xdim1ckq1kgjyxmghcnvnahq1llv2y70gz3yyvzbli63vpqk4mk"))))
     (inputs
-     `(("gnutls" ,gnutls)
-       ("pcre" ,pcre)
-       ("readline" ,readline)
-       ("zlib" ,zlib)))
+     (list gnutls pcre readline zlib))
     (arguments
      '(#:tests? #f                      ; no test suite
        #:phases
@@ -5551,7 +5546,7 @@ Linux / Mac OS X servers, and an auto mapper with a VT100 map display.")
              (patches (search-patches "laby-make-install.patch"))))
     (build-system gnu-build-system)
     (inputs
-     `(("lablgtk" ,lablgtk)
+     `(("lablgtk3" ,lablgtk3)
        ("ocaml" ,ocaml)
        ("ocaml-findlib" ,ocaml-findlib)
        ("ocamlbuild" ,ocamlbuild)))
@@ -5559,15 +5554,9 @@ Linux / Mac OS X servers, and an auto mapper with a VT100 map display.")
      '(#:phases
        (modify-phases %standard-phases
          (delete 'configure)
-         (add-before 'build 'allow-unsafe-strings
-           ;; Fix a build failure with ocaml >=4.06.0.
-           ;; See <https://github.com/sgimenez/laby/issues/53>.
-           (lambda _
-             (setenv "OCAMLPARAM" "safe-string=0,_")
-             #t))
          (add-before 'build 'set-library-path
            (lambda* (#:key inputs #:allow-other-keys)
-             (let ((lablgtk (assoc-ref inputs "lablgtk")))
+             (let ((lablgtk (assoc-ref inputs "lablgtk3")))
                (setenv "LD_LIBRARY_PATH"
                        (string-append lablgtk "/lib/ocaml/stublibs"))))))
        #:tests? #f ; no 'check' target
@@ -5611,7 +5600,7 @@ programmers may also add their own favorite language.")
                (copy-recursively "data" (string-append share "/bambam/data")))
              #t)))))
     (inputs
-     `(("python-pygame" ,python-pygame)))
+     (list python-pygame))
     (home-page "https://github.com/porridge/bambam")
     (synopsis "Keyboard mashing and doodling game for babies")
     (description "Bambam is a simple baby keyboard (and gamepad) masher
@@ -5642,14 +5631,10 @@ colors, pictures, and sounds.")
                 (script (string-append out "/bin/" ,name))
                 (data   (string-append out "/share/" ,name))
                 (source (assoc-ref %build-inputs "source"))
-                (unzip  (string-append (assoc-ref %build-inputs "unzip")
-                                       "/bin/unzip"))
-                (patch  (string-append (assoc-ref %build-inputs "patch")
-                                       "/bin/patch"))
-                (bash   (string-append (assoc-ref %build-inputs "bash")
-                                       "/bin/bash"))
-                (love   (string-append (assoc-ref %build-inputs "love")
-                                       "/bin/love")))
+                (unzip  (search-input-file %build-inputs "/bin/unzip"))
+                (patch  (search-input-file %build-inputs "/bin/patch"))
+                (bash   (search-input-file %build-inputs "/bin/bash"))
+                (love   (search-input-file %build-inputs "/bin/love")))
 
            (mkdir-p (dirname script))
            (with-output-to-file script
@@ -5675,8 +5660,7 @@ colors, pictures, and sounds.")
        ("patch" ,patch)
        ("love-11.patch" ,(search-patch "mrrescue-support-love-11.patch"))))
     (inputs
-     `(("bash" ,bash)
-       ("love" ,love)))
+     (list bash love))
     (home-page "https://tangramgames.dk/games/mrrescue")
     (synopsis "Arcade-style fire fighting game")
     (description
@@ -5782,13 +5766,8 @@ throwing people around in pseudo-randomly generated buildings.")
              "11yhbia45f1w9z0j67h9nynwjqmvakr9l6rnrmdrdkzin6lvzzj4"))))
        ("unzip" ,unzip)))
     (inputs
-     `(("font-dejavu" ,font-dejavu)
-       ("glew" ,glew)
-       ("libpng" ,libpng)
-       ("sdl-union" ,(sdl-union (list sdl
-                                      sdl-gfx
-                                      sdl-mixer
-                                      sdl-ttf)))))
+     (list font-dejavu glew libpng
+           (sdl-union (list sdl sdl-gfx sdl-mixer sdl-ttf))))
     (home-page "https://www.roguetemple.com/z/hyper/")
     (synopsis "Non-euclidean graphical rogue-like game")
     (description
@@ -5835,8 +5814,8 @@ symbols, it still needs graphics to render the non-euclidean world.")
                             (assoc-ref %build-inputs "sdl-union")
                             "/include/SDL"))))
     (inputs
-     `(("glu" ,glu)
-       ("sdl-union" ,(sdl-union (list sdl sdl-image)))))
+     (list glu
+           (sdl-union (list sdl sdl-image))))
     (synopsis "Shooter with space station destruction")
     (description
      "Kobo Deluxe is an enhanced version of Akira Higuchi's XKobo graphical game
@@ -5847,7 +5826,7 @@ for Un*x systems with X11.")
 (define-public freeciv
   (package
    (name "freeciv")
-   (version "2.6.5")
+   (version "2.6.6")
    (source
     (origin
      (method url-fetch)
@@ -5859,16 +5838,12 @@ for Un*x systems with X11.")
                   (version-major+minor version) "/" version
                   "/freeciv-" version ".tar.bz2")))
      (sha256
-      (base32 "0ngcj59ak71i6m8yvbr0g3aryzpw1scalpdzgfqsq4mf9p3y2r1f"))))
+      (base32 "04aq2v1ima87sap6yjb7jrm1ss63ax7v5kg7rpkj44887kfybkvv"))))
    (build-system gnu-build-system)
    (inputs
-    `(("curl" ,curl)
-      ("cyrus-sasl" ,cyrus-sasl)
-      ("gtk+" ,gtk+)
-      ("sdl-mixer" ,sdl-mixer)
-      ("zlib" ,zlib)))
+    (list curl cyrus-sasl gtk+ sdl-mixer zlib))
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    (list pkg-config))
    (home-page "http://www.freeciv.org/")
    (synopsis "Turn-based empire building strategy game")
    (description "Freeciv is a turn-based empire building strategy game
@@ -5900,7 +5875,7 @@ into the Space Age.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (home-page "https://github.com/bartobri/no-more-secrets")
     (synopsis "Recreation of data decryption effect in \"Sneakers\"")
     (description
@@ -5967,11 +5942,12 @@ starting a decryption sequence to reveal the original plaintext characters.")
        ("sdl2" ,sdl2)
        ("wxwidgets" ,wxwidgets)))
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit pkg-config))
     (arguments
      `(#:configure-flags
-       (list (string-append "-DCUSTOM_DATA_INSTALL_PATH="
+       (list "-DCMAKE_CXX_FLAGS=-fcommon"
+             "-DCMAKE_C_FLAGS=-fcommon"
+             (string-append "-DCUSTOM_DATA_INSTALL_PATH="
                             (assoc-ref %build-inputs "megaglest-data")
                             "/share/megaglest")
              "-DBUILD_MEGAGLEST_TESTS=ON")
@@ -6029,13 +6005,13 @@ Magic, Egypt, Indians, Norsemen, Persian or Romans.")
                                  line)))
                #t)))))
       (inputs
-       `(("sdl-union" ,(sdl-union (list sdl sdl-mixer)))
-         ("openal" ,openal)
-         ("libvorbis" ,libvorbis)
-         ("libogg" ,libogg)
-         ("mesa" ,mesa)
-         ("libpng" ,libpng)
-         ("zlib" ,zlib)))
+       (list (sdl-union (list sdl sdl-mixer))
+             openal
+             libvorbis
+             libogg
+             mesa
+             libpng
+             zlib))
       (home-page "https://github.com/freegish/freegish")
       (synopsis "Side-scrolling physics platformer with a ball of tar")
       (description "In FreeGish you control Gish, a ball of tar who lives
@@ -6069,13 +6045,9 @@ emerges from a sewer hole and pulls her below ground.")
                             (assoc-ref %outputs "out")
                             "/share/cdogs-sdl/"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("mesa" ,mesa)
-       ("sdl2" ,sdl2)
-       ("sdl2-image" ,sdl2-image)
-       ("sdl2-mixer" ,sdl2-mixer)))
+     (list gtk+ mesa sdl2 sdl2-image sdl2-mixer))
     (home-page "https://cxong.github.io/cdogs-sdl/")
     (synopsis "Classic overhead run-and-gun game")
     (description "C-Dogs SDL is a classic overhead run-and-gun game,
@@ -6175,7 +6147,7 @@ over 100 user-created campaigns.")
                                       sdl-image)))
        ("python" ,python-2)))
     (native-inputs
-     `(("swig" ,swig)))
+     (list swig))
     (home-page "http://kiki.sourceforge.net/")
     (synopsis "3D puzzle game")
     (description "Kiki the nano bot is a 3D puzzle game.  It is basically a
@@ -6236,18 +6208,18 @@ small robot living in the nano world, repair its maker.")
                       "datasrc/fonts/DejaVuSans.ttf")
              #t)))))
     (inputs
-     `(("freetype" ,freetype)
-       ("font-dejavu" ,font-dejavu)
-       ("glu" ,glu)
-       ("json-parser" ,json-parser)
-       ("mesa" ,mesa)
-       ("pnglite" ,pnglite)
-       ("sdl2" ,sdl2)
-       ("sdl2-image" ,sdl2-image)
-       ("sdl2-mixer" ,sdl2-mixer)
-       ("wavpack" ,wavpack)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list freetype
+           font-dejavu
+           glu
+           json-parser
+           mesa
+           pnglite
+           sdl2
+           sdl2-image
+           sdl2-mixer
+           wavpack
+           openssl
+           zlib))
     (native-inputs
      `(("googletest" ,googletest)
        ("python" ,python-wrapper)
@@ -6307,13 +6279,11 @@ The Flag.  You can even design your own maps!")
                 (string-append "#include \"SDL/SDL_" header ".h\"")))
              #t)))))
     (inputs
-     `(("xerces-c" ,xerces-c)
-       ("sdl-union" ,(sdl-union (list sdl sdl-image sdl-mixer sdl-ttf)))
-       ("curl" ,curl)
-       ("enet" ,enet)))
+     (list xerces-c
+           (sdl-union (list sdl sdl-image sdl-mixer sdl-ttf)) curl
+           enet))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("imagemagick" ,imagemagick)))
+     (list pkg-config imagemagick))
     (home-page "https://www.nongnu.org/enigma")
     (synopsis "Puzzle game with a dexterity component")
     (description "Enigma is a puzzle game with 550 unique levels.  The object
@@ -6329,18 +6299,17 @@ with the mouse isn’t always trivial.")
 (define-public chroma
   (package
     (name "chroma")
-    (version "1.18")
+    (version "1.20")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://level7.org.uk/chroma/download/chroma-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "12bjisf5nlqinw8n4r223vld52p0p2mw3fca92vi175c46bycbzn"))))
+                "02hn448ckfxbx2fqr9wgf66rwl0vr4gl87yvsr5fc99zz9zw2f5v"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f                      ; no tests included
-       #:configure-flags '("CFLAGS=-fgnu89-inline"))) ; fix inlines
+     `(#:tests? #f))                    ; no tests included
     (inputs
      `(("sdl-union" ,(sdl-union (list sdl sdl-image sdl-mixer sdl-ttf)))
        ("freetype" ,freetype)
@@ -6348,7 +6317,7 @@ with the mouse isn’t always trivial.")
        ("fontconfig" ,fontconfig)
        ("libxft" ,libxft)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://level7.org.uk/chroma/")
     (synopsis "Abstract puzzle game")
     (description "Chroma is an abstract puzzle game. A variety of colourful
@@ -6401,13 +6370,8 @@ becoming difficult enough to tax even the brightest of minds.")
                        "--strip-components=1"
                        "-C" data)))))))
     (inputs
-     `(("sdl-union" ,(sdl-union (list sdl
-                                      sdl-mixer
-                                      sdl-image
-                                      sdl-ttf)))
-       ("fribidi" ,fribidi)
-       ("libx11" ,libx11)
-       ("lua" ,lua-5.1)))
+     (list (sdl-union (list sdl sdl-mixer sdl-image sdl-ttf)) fribidi
+           libx11 lua-5.1))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("fillets-ng-data"
@@ -6431,14 +6395,14 @@ fish.  The whole game is accompanied by quiet, comforting music.")
 (define-public crawl
   (package
     (name "crawl")
-    (version "0.27.0")
+    (version "0.27.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/crawl/crawl/releases/download/"
                            version "/stone_soup-" version "-nodeps.tar.xz"))
        (sha256
-        (base32 "0hzkzpqmydxm1zjkdm7k4w3hldsqin3pwkj7jmfj4jijkr0zg9nq"))
+        (base32 "0nkhyhrrma8gmwxp15j84cn1k2yvyq7ar9rd0j2qjjlv2kdis5z2"))
        (patches (search-patches "crawl-upgrade-saves.patch"))))
     (build-system gnu-build-system)
     (inputs
@@ -6555,7 +6519,7 @@ monsters in a quest to find the mystifyingly fabulous Orb of Zot.")
        ;; no test target
        #:tests? #f))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("sdl2" ,sdl2)
        ("glu" ,glu)
@@ -6580,7 +6544,7 @@ fight against their plot and save his fellow rabbits from slavery.")
 (define-public 0ad-data
   (package
     (name "0ad-data")
-    (version "0.0.23b-alpha")
+    (version "0.0.25b-alpha")
     (source
      (origin
        (method url-fetch)
@@ -6588,22 +6552,9 @@ fight against their plot and save his fellow rabbits from slavery.")
                            version "-unix-data.tar.xz"))
        (file-name (string-append name "-" version ".tar.xz"))
        (sha256
-        (base32
-         "04x7729hk6zw1xj3n4s4lvaviijsnbjf5rhzvjxlr5fygvg4l6z1"))
-       (modules '((guix build utils)))
-       (snippet
-        #~(begin
-            (for-each (lambda (name)
-                        (let* ((dir (string-append "binaries/data/mods/" name))
-                               (file (string-append dir "/" name ".zip"))
-                               (unzip #$(file-append unzip "/bin/unzip")))
-                          (invoke unzip "-d" dir file)
-                          (delete-file file)))
-                      '("mod" "public"))
-            #t))))
+        (base32 "1c9zrddmjxvvacismld6fbwbw9vrdbq6g6d3424p8w5p6xg5wlwy"))))
     (build-system trivial-build-system)
-    (native-inputs `(("tar" ,tar)
-                     ("xz" ,xz)))
+    (native-inputs (list tar unzip xz))
     (arguments
      `(#:modules ((guix build utils))
        #:builder
@@ -6611,11 +6562,18 @@ fight against their plot and save his fellow rabbits from slavery.")
          (use-modules (guix build utils))
          (let ((out (assoc-ref %outputs "out"))
                (source (assoc-ref %build-inputs "source"))
-               (tar (string-append (assoc-ref %build-inputs "tar") "/bin/tar"))
+               (tar (search-input-file %build-inputs "/bin/tar"))
+               (unzip (search-input-file %build-inputs "/bin/unzip"))
                (xz-path (string-append (assoc-ref %build-inputs "xz") "/bin")))
            (setenv "PATH" xz-path)
            (mkdir out)
-           (invoke tar "xvf" source "-C" out "--strip=3")))))
+           (invoke tar "xvf" source "-C" out "--strip=3")
+           (for-each (lambda (name)
+                       (let* ((dir (string-append out "/mods/" name))
+                              (file (string-append dir "/" name ".zip")))
+                         (invoke unzip "-o" "-d" dir file)
+                         (delete-file file)))
+                     '("mod" "public"))))))
     (synopsis "Data files for 0ad")
     (description "0ad-data provides the data files required by the game 0ad.")
     (home-page "https://play0ad.com")
@@ -6633,7 +6591,7 @@ fight against their plot and save his fellow rabbits from slavery.")
 (define-public 0ad
   (package
     (name "0ad")
-    (version "0.0.23b-alpha")
+    (version "0.0.25b-alpha")
     (source
      (origin
        (method url-fetch)
@@ -6641,53 +6599,52 @@ fight against their plot and save his fellow rabbits from slavery.")
                            version "-unix-build.tar.xz"))
        (file-name (string-append name "-" version ".tar.xz"))
        (sha256
-        (base32
-         "0draa53xg69i5qhqym85658m45xhwkbiimaldj4sr3703rjgggq1"))))
-       ;; A snippet here would cause a build failure because of timestamps
-       ;; reset.  See https://bugs.gnu.org/26734.
-    (inputs
-     `(("0ad-data" ,0ad-data)
-       ("curl" ,curl)
-       ("enet" ,enet)
-       ("gloox" ,gloox)
-       ("icu4c" ,icu4c)
-       ("libpng" ,libpng)
-       ("libsodium" ,libsodium)
-       ("libvorbis" ,libvorbis)
-       ("libxcursor" ,libxcursor)
-       ("libxml2" ,libxml2)
-       ("miniupnpc" ,miniupnpc)
-       ("mozjs-38" ,mozjs-38)
-       ("openal" ,openal)
-       ("sdl2" ,sdl2)
-       ("wxwidgets" ,wxwidgets)
-       ("zlib" ,zlib)))
+        (base32 "1p9fa8f7sjb9c5wl3mawzyfqvgr614kdkhrj2k4db9vkyisws3fp"))))
+    ;; A snippet here would cause a build failure because of timestamps
+    ;; reset.  See https://bugs.gnu.org/26734.
+    (inputs
+     (list #{0ad-data}#
+           curl
+           enet
+           fmt
+           gloox
+           icu4c-68
+           libidn
+           libpng
+           libsodium
+           libvorbis
+           libxcursor
+           libxml2
+           miniupnpc
+           mozjs-78
+           openal
+           sdl2
+           wxwidgets
+           zlib))
     (native-inputs
      `(("boost" ,boost)
        ("cmake" ,cmake-minimal)
+       ("cxxtest" ,cxxtest)
        ("mesa" ,mesa)
        ("pkg-config" ,pkg-config)
        ("python-2" ,python-2)))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags '("config=release" "verbose=1" "-C" "build/workspaces/gcc")
+       #:tests? #f                      ;tests fail currently
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'delete-bundles
-           (lambda _
+           (lambda* (#:key inputs #:allow-other-keys)
              (delete-file-recursively "libraries/source/spidermonkey")
-             #t))
-         (add-after 'unpack 'fix-x11-includes
-           (lambda _
-             (substitute* "source/lib/sysdep/os/unix/x/x.cpp"
-               (("<Xlib.h>") "<X11/Xlib.h>"))
-             (substitute* "source/lib/sysdep/os/unix/x/x.cpp"
-               (("<Xatom.h>") "<X11/Xatom.h>"))
-             (substitute* "source/lib/sysdep/os/unix/x/x.cpp"
-               (("<Xcursor/Xcursor.h>") "<X11/Xcursor/Xcursor.h>"))
-             #t))
+             (delete-file-recursively "libraries/source/cxxtest-4.4")
+             (substitute* "build/premake/premake5.lua"
+               (("rootdir\\.\\.\"\\/libraries\\/source\\/cxxtest-4.4\\/bin\\/cxxtestgen\"")
+                (string-append "\"" (assoc-ref inputs "cxxtest")
+                               "/bin/cxxtestgen"
+                               "\"")))))
          (replace 'configure
-           (lambda* (#:key inputs outputs #:allow-other-keys)
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
              (let* ((jobs (number->string (parallel-job-count)))
                     (out (assoc-ref outputs "out"))
                     (lib (string-append out "/lib"))
@@ -6695,11 +6652,13 @@ fight against their plot and save his fellow rabbits from slavery.")
                (setenv "JOBS" (string-append "-j" jobs))
                (setenv "CC" "gcc")
                (with-directory-excursion "build/workspaces"
-                 (invoke "./update-workspaces.sh"
-                         (string-append "--libdir=" lib)
-                         (string-append "--datadir=" data)
-                         ;; TODO: "--with-system-nvtt"
-                         "--with-system-mozjs38")))))
+                 (apply invoke
+                        `("./update-workspaces.sh"
+                          ,(string-append "--libdir=" lib)
+                          ,(string-append "--datadir=" data)
+                          ;; TODO: "--with-system-nvtt"
+                          "--with-system-mozjs"
+                          ,@(if tests? '() '("--without-tests"))))))))
          (delete 'check)
          (replace 'install
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -6709,7 +6668,9 @@ fight against their plot and save his fellow rabbits from slavery.")
                     (lib (string-append out "/lib"))
                     (data (string-append out "/share/0ad"))
                     (applications (string-append out "/share/applications"))
-                    (pixmaps (string-append out "/share/pixmaps"))
+                    (hicolor (string-append out "/share/icons/hicolor/128x128/apps"))
+                    (metainfo (string-append out "/share/metainfo"))
+                    (mime (string-append out "/share/mime/application"))
                     (0ad-data (assoc-ref inputs "0ad-data")))
                ;; data
                (copy-recursively "data" data)
@@ -6728,12 +6689,14 @@ fight against their plot and save his fellow rabbits from slavery.")
                ;; resources
                (with-directory-excursion "../build/resources"
                  (install-file "0ad.desktop" applications)
-                 (install-file "0ad.png" pixmaps))
-               #t)))
+                 (install-file "0ad.png" hicolor)
+                 (install-file "0ad.appdata.xml" metainfo)
+                 (install-file "pyrogenesis.xml" mime)))))
          (add-after 'install 'check
-           (lambda _
-             (with-directory-excursion "system"
-               (invoke "./test")))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (with-directory-excursion "system"
+                 (invoke "./test"))))))))
     (home-page "https://play0ad.com")
     (synopsis "3D real-time strategy game of ancient warfare")
     (description "0 A.D. is a real-time strategy (RTS) game of ancient
@@ -6838,7 +6801,7 @@ Crowther & Woods, its original authors, in 1995.  It has been known as
              (("#include <GL/glext.h>") ""))))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (inputs
      `(("sdl-union" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))
        ("glu" ,glu)
@@ -6964,12 +6927,12 @@ Tales of Maj’Eyal offers engaging roguelike gameplay for the 21st century.")
                            (string-append out "/bin")))
                         #t))))))
     (build-system gnu-build-system)
-    (inputs `(("libmikmod" ,libmikmod)
-              ("libvorbis" ,libvorbis)
-              ("flac" ,flac)
-              ("mesa" ,mesa)
-              ("mpg123" ,mpg123)
-              ("sdl2" ,sdl2)))
+    (inputs (list libmikmod
+                  libvorbis
+                  flac
+                  mesa
+                  mpg123
+                  sdl2))
     (synopsis "First person shooter engine for Quake 1")
     (description "Quakespasm is a modern engine for id software's Quake 1.
 It includes support for 64 bit CPUs, custom music playback, a new sound driver,
@@ -7026,9 +6989,8 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
                         #t))))
        ,@(strip-keyword-arguments '(#:make-flags #:phases)
                                   (package-arguments quakespasm))))
-    (inputs `(("vulkan-headers" ,vulkan-headers)
-              ("vulkan-loader" ,vulkan-loader)
-              ,@(package-inputs quakespasm)))
+    (inputs (modify-inputs (package-inputs quakespasm)
+              (prepend vulkan-headers vulkan-loader)))
     (description "vkquake is a modern engine for id software's Quake 1.
 It includes support for 64 bit CPUs, custom music playback, a new sound driver,
 some graphical niceities, and numerous bug-fixes and other improvements.")
@@ -7085,14 +7047,14 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
                (symlink (string-append out "/lib/yamagi-quake2/q2ded")
                         (string-append out "/bin/yamagi-q2ded"))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("curl" ,curl)
-       ("libvorbis" ,libvorbis)
-       ("mesa" ,mesa)
-       ("openal" ,openal)
-       ("sdl2" ,sdl2)
-       ("zlib" ,zlib)))
+     (list curl
+           libvorbis
+           mesa
+           openal
+           sdl2
+           zlib))
     (synopsis "First person shooter engine based on quake2")
     (description "Yamagi Quake II is an enhanced client for id Software's Quake II.
 The main focus is an unchanged single player experience like back in 1997,
@@ -7122,12 +7084,9 @@ making Yamagi Quake II one of the most solid Quake II implementations available.
         (base32 "12v00z3p0ymi8f3w4b4bgl4c76irawn3kmd147r0ap6s9ssx2q6m"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake gettext-minimal pkg-config))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (home-page "https://jubalh.github.io/nudoku/")
     (synopsis "Sudoku for your terminal")
     (description "Nudoku is a ncurses-based Sudoku game for your terminal.")
@@ -7170,8 +7129,7 @@ making Yamagi Quake II one of the most solid Quake II implementations available.
        ;; with multiple "QPainter:: ... Painter not active" warnings.
        #:tests? #f))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+     (list qtbase-5 qtsvg))
     (native-inputs
      `(("cmake" ,cmake-minimal)
        ("gettext-minimal" ,gettext-minimal)
@@ -7201,7 +7159,7 @@ elements to achieve a simple goal in the most complex way possible.")
                 "1hj99jxb9n3r0bkq87p1c24862xa1xyzjyfdyyx88ckszxb05qf3"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("assimp" ,assimp)
        ("curl" ,curl)
@@ -7415,8 +7373,7 @@ You can save humanity and get programming skills!")
               ("sdl2" ,sdl2)
               ("timidity++" ,timidity++)
               ("zlib" ,zlib)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("unzip" ,unzip)))
+    (native-inputs (list pkg-config unzip))
     (synopsis "Modern Doom 2 source port")
     (description "GZdoom is a port of the Doom 2 game engine, with a modern
 renderer.  It improves modding support with ZDoom's advanced mapping features
@@ -7435,7 +7392,7 @@ Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.")
 (define-public odamex
   (package
     (name "odamex")
-    (version "0.9.3")
+    (version "0.9.5")
     (source
      (origin
        (method url-fetch)
@@ -7443,11 +7400,11 @@ Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.")
              "mirror://sourceforge/odamex/Odamex/" version "/"
              "odamex-src-" version ".tar.bz2"))
        (sha256
-        (base32 "0vmw9ijb6n4wrxjxixakn7l6a6carnvs9wbbzb4vcq1brbzyrb0p"))))
+        (base32 "1x0c9vnwn336inkfamh4na8xjyfjmzfxfn49j4snqymkypjqw6jq"))))
     (build-system cmake-build-system)
     (arguments `(#:tests? #f))          ; no tests
     (native-inputs
-     `(("deutex" ,deutex)))
+     (list deutex))
     (inputs
      `(("sdl" ,sdl2)
        ("sdl-mixer" ,sdl2-mixer)
@@ -7479,11 +7436,9 @@ online.")
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list "CFLAGS=-fcommon")))
-    (inputs `(("sdl2-net" ,sdl2-net)
-              ("sdl2-mixer" , sdl2-mixer)
-              ("sdl2" ,sdl2)))
+    (inputs (list sdl2-net sdl2-mixer sdl2))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Doom source port preserving the look, feel, and bugs of vanilla
 Doom")
     (description
@@ -7567,16 +7522,16 @@ original.")
        ("cmake-rules" ,shlomif-cmake-modules)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("cmocka" ,cmocka)
-       ("perl-env-path" ,perl-env-path)
-       ("perl-inline" ,perl-inline)
-       ("perl-inline-c" ,perl-inline-c)
-       ("perl-string-shellquote" ,perl-string-shellquote)
-       ("perl-test-trailingspace" ,perl-test-trailingspace)
-       ("perl-file-find-object-rule" ,perl-file-find-object-rule)
-       ("perl-text-glob" ,perl-text-glob)
-       ("perl-number-compare" ,perl-number-compare)
-       ("perl-moo" ,perl-moo)))
+     (list cmocka
+           perl-env-path
+           perl-inline
+           perl-inline-c
+           perl-string-shellquote
+           perl-test-trailingspace
+           perl-file-find-object-rule
+           perl-text-glob
+           perl-number-compare
+           perl-moo))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -7645,7 +7600,7 @@ original.")
                             (string-append bin "/fortune"))
                (rmdir games)
                #t))))))
-    (inputs `(("recode" ,recode)))
+    (inputs (list recode))
     (native-inputs
      `(("perl" ,perl)
        ;; The following is only needed for tests.
@@ -7686,7 +7641,7 @@ quotation from a collection of quotes.")
          (let* ((out (assoc-ref %outputs "out"))
                 (xonotic (string-append out "/share/xonotic"))
                 (source (assoc-ref %build-inputs "source"))
-                (unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")))
+                (unzip (search-input-file %build-inputs "/bin/unzip")))
            (copy-file source (string-append ,name "-" ,version ".zip"))
            (invoke unzip (string-append ,name "-" ,version ".zip"))
            (mkdir-p out)
@@ -7887,12 +7842,12 @@ quotation from a collection of quotes.")
        ("libpng" ,libpng)
        ("hicolor-icon-theme" ,hicolor-icon-theme)))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("libtool" ,libtool)
-       ("gmp" ,gmp)))
+     (list unzip
+           autoconf
+           automake
+           pkg-config
+           libtool
+           gmp))
     (home-page "https://xonotic.org")
     (synopsis "Fast-paced first-person shooter game")
     (description
@@ -7941,11 +7896,7 @@ open-source FPS of its kind.")
                (mkdir-p man)
                (install-file "doc/frotz.6" man)
                #t))))))
-    (inputs `(("libmodplug" ,libmodplug)
-              ("libsamplerate" ,libsamplerate)
-              ("libsndfile" ,libsndfile)
-              ("libvorbis" ,libvorbis)
-              ("ncurses" ,ncurses)))
+    (inputs (list libmodplug libsamplerate libsndfile libvorbis ncurses))
     (synopsis "Portable Z-machine interpreter (ncurses version) for text adventure games")
     (description "Frotz is an interpreter for Infocom games and other Z-machine
 games in the text adventure/interactive fiction genre.  This version of Frotz
@@ -7955,6 +7906,65 @@ ncurses for text display.")
     (home-page "http://frotz.sourceforge.net")
     (license license:gpl2+)))
 
+(define-public naev
+  (package
+    (name "naev")
+    (version "0.8.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/naev/naev")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "02rk2fv2nhx5xsi0cariisamab3dpncwps4q3i3ki0y27xpwxzfx"))))
+    (build-system meson-build-system)
+    (arguments
+     ;; XXX: Do not add debugging symbols, which cause the build to fail.
+     `(#:configure-flags (list "--buildtype=release")
+       #:tests? #f))          ;sole test fails with a missing "/dev/dri" error
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("freetype" ,freetype)
+       ("glpk" ,glpk)
+       ("libpng" ,libpng)
+       ("libvorbis" ,libvorbis)
+       ("libwebp" ,libwebp)
+       ("libxml2" ,libxml2)
+       ("luajit" ,luajit)
+       ("openal" ,openal)
+       ("openblas" ,openblas)
+       ("physfs" ,physfs)
+       ("sdl" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer)))
+       ("suitesparse" ,suitesparse)))
+    (home-page "https://naev.org/")
+    (synopsis "Game about space exploration, trade and combat")
+    (description
+     "Naev is a 2d action/rpg space game that combines elements from
+the action, RPG and simulation genres.  You pilot a spaceship from
+a top-down perspective, and are more or less free to do what you want.
+As the genre name implies, you’re able to trade and engage in combat
+at will.  Beyond that, there’s an ever-growing number of story-line
+missions, equipment, and ships; even the galaxy itself grows larger
+with each release.  For the literacy-inclined, there are large amounts
+of lore accompanying everything from planets to equipment.")
+    (license (list license:gpl3
+                   license:public-domain
+                   license:expat        ;edtaa3func.c
+                   license:bsd-2        ;distance_field.c
+                   license:bsd-3        ;perlin.c
+                   ;; Assets.
+                   license:silofl1.1
+                   license:gpl2+
+                   license:cc0
+                   license:cc-by3.0
+                   license:cc-by-sa3.0
+                   license:cc-by4.0
+                   license:cc-by-sa4.0))))
+
 (define-public frotz-dumb-terminal
   (package
     (name "frotz-dumb-terminal")
@@ -8040,18 +8050,16 @@ to play games on webpages.  It can also be made into a chat bot.")
                  (install-file "doc/sfrotz.6" man)
                  #t))))))
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("which" ,which)
-         ("perl" ,perl)))
-      (inputs `(("sdl2" ,sdl2)
-                ("sdl2-mixer" ,sdl2-mixer)
-                ("libmodplug" ,libmodplug)
-                ("libsamplerate" ,libsamplerate)
-                ("libsndfile" ,libsndfile)
-                ("libvorbis" ,libvorbis)
-                ("ncurses" ,ncurses)
-                ("freetype" ,freetype)
-                ("libjpeg-turbo" ,libjpeg-turbo)))
+       (list pkg-config which perl))
+      (inputs (list sdl2
+                    sdl2-mixer
+                    libmodplug
+                    libsamplerate
+                    libsndfile
+                    libvorbis
+                    ncurses
+                    freetype
+                    libjpeg-turbo))
       (synopsis "Portable Z-machine interpreter (SDL port) for text adventure games")
       (description "Frotz is an interpreter for Infocom games and other Z-machine
 games in the text adventure/interactive fiction genre.  This version of Frotz
@@ -8130,11 +8138,8 @@ when packaged in Blorb container files or optionally from individual files.")
                            (find-files "bin" ".")))
                #t)))))
       (native-inputs
-       `(("perl-alien-sdl" ,perl-alien-sdl)
-         ("perl-capture-tiny" ,perl-capture-tiny)
-         ("perl-locale-maketext-lexicon" ,perl-locale-maketext-lexicon)
-         ("perl-module-build" ,perl-module-build)
-         ("pkg-config" ,pkg-config)))
+       (list perl-alien-sdl perl-capture-tiny perl-locale-maketext-lexicon
+             perl-module-build pkg-config))
       (inputs
        `(("glib" ,glib)
          ("perl-compress-bzip2" ,perl-compress-bzip2)
@@ -8174,13 +8179,10 @@ their own levels.")
                 "1b3bcdkk5xd5asq797cch9id8692grsjxrc1ss87vv11m1ck4rb3"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("glib" ,glib "bin")             ; for glib-compile-resources
-       ("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)
-       ("vala" ,vala)))
+     (list `(,glib "bin") ; for glib-compile-resources
+           gobject-introspection pkg-config vala))
     (inputs
-     `(("libevdev" ,libevdev)
-       ("libgudev" ,libgudev)))
+     (list libevdev libgudev))
     (home-page "https://wiki.gnome.org/Apps/Games")
     (synopsis "Game controller library")
     (description "Libmanette is a small GObject library giving you simple
@@ -8192,15 +8194,15 @@ GameController.")
 (define-public quadrapassel
   (package
     (name "quadrapassel")
-    (version "3.36.05")
+    (version "40.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/quadrapassel/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   "quadrapassel-" version ".tar.xz"))
               (sha256
                (base32
-                "04abxmimh5npw8rhz1sfi6wxilgc6i1wka9mlnfwp8v1p1cb00cv"))))
+                "02n0khwy38pykw4xqpnkym6xvj2sv8izfjbaxlik3iq7890j5n0b"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
@@ -8210,24 +8212,23 @@ GameController.")
            ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "build-aux/meson_post_install.py"
-               (("gtk-update-icon-cache") (which "true")))
-             #t)))))
-    (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
-       ("gettext" ,gettext-minimal)
-       ("glib" ,glib "bin")             ;for glib-compile-resources
-       ("itstool" ,itstool)
-       ("libxml2" ,libxml2)             ;for xmllint
-       ("pkg-config" ,pkg-config)
-       ("vala" ,vala)))
-    (inputs
-     `(("clutter" ,clutter)
-       ("clutter-gtk" ,clutter-gtk)
-       ("gsound" ,gsound)
-       ("gtk+" ,gtk+)
-       ("libcanberra" ,libcanberra)
-       ("libmanette" ,libmanette)
-       ("librsvg" ,librsvg)))
+               (("gtk-update-icon-cache") (which "true"))))))))
+    (native-inputs
+     (list desktop-file-utils           ; for desktop-file-validate
+           gettext-minimal
+           (list glib "bin")            ; for glib-compile-resources
+           itstool
+           libxml2                      ; for xmllint
+           pkg-config
+           vala))
+    (inputs
+     (list clutter
+           clutter-gtk
+           gsound
+           gtk+
+           libcanberra
+           libmanette
+           librsvg))
     (home-page "https://wiki.gnome.org/Apps/Quadrapassel")
     (synopsis "GNOME version of Tetris")
     (description "Quadrapassel comes from the classic falling-block game,
@@ -8401,8 +8402,7 @@ civilized than your own.")
                  (symlink "../stepmania/Docs" "doc/stepmania"))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("yasm" ,yasm)))
+     (list pkg-config yasm))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ;; Per upstream, StepMania is only guaranteed to work with a very
@@ -8460,13 +8460,9 @@ to download and install them in @file{$HOME/.stepmania-X.Y/Songs} directory.")
            ;; `make test' doesn't actually build the test executable
            (lambda _ (invoke "make" "zerotokei"))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("cairo" ,cairo)
-       ("ffmpeg" ,ffmpeg)
-       ("pango" ,pango)
-       ("sdl2" ,sdl2)
-       ("sdl2-image" ,sdl2-image)))
+     (list cairo ffmpeg pango sdl2 sdl2-image))
     (home-page "https://github.com/fmang/oshu/")
     (synopsis "Rhythm game in which you click on circles")
     (description "@i{oshu!} is a minimalist variant of the @i{osu!} rhythm game,
@@ -8507,7 +8503,7 @@ download and unpack them separately.")
            (lambda* (#:key inputs #:allow-other-keys)
              (setenv "CPATH"
                      (string-append
-                      (search-input-file inputs "/include/SDL")
+                      (search-input-directory inputs "/include/SDL")
                       ":" (or (getenv "CPATH") "")))))
          (add-after 'unpack 'fix-compilation-errors
            (lambda _
@@ -8549,8 +8545,7 @@ download and unpack them separately.")
                                 sdl-ttf)))
        ("zlib" ,zlib)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("zip" ,zip)))
+     (list pkg-config zip))
     (home-page "http://btanks.sourceforge.net")
     (synopsis "Multiplayer tank battle game")
     (description "Battle Tanks (also known as \"btanks\") is a funny battle
@@ -8614,7 +8609,7 @@ the ground, the set ends and all balls are served again.")
     (arguments
      `(#:python ,python-2))
     (inputs
-     `(("python-pygame" ,python2-pygame)))
+     (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
@@ -8726,20 +8721,20 @@ game field is extended to 4D space, which has to filled up by the gamer with
                (rename-file (string-append out "/bin/arx-install-data")
                             (string-append installer "/bin/arx-install-data"))))))))
     (inputs
-     `(("sdl2" ,sdl2)
-       ("libepoxy" ,libepoxy)
-       ("glew" ,glew)
-       ("openal" ,openal)
-       ("zlib" ,zlib)
-       ("boost" ,boost)
-       ("glm" ,glm)
-       ("freetype" ,freetype)
-       ;; The following are only needed by the arx-install-data script.
-       ("p7zip" ,p7zip) ; Install-helper uses it to extract ISO and .cab archives.
-       ("zenity" ,zenity)           ; GUI for install-helper.
-       ("wget" ,wget)     ; Used by the install-helper to download the patch.
-       ;; The install-helper needs it to extract the patch.
-       ("innoextract" ,innoextract)))
+     (list sdl2
+           libepoxy
+           glew
+           openal
+           zlib
+           boost
+           glm
+           freetype
+           ;; The following are only needed by the arx-install-data script.
+           p7zip ; Install-helper uses it to extract ISO and .cab archives.
+           zenity ; GUI for install-helper.
+           wget ; Used by the install-helper to download the patch.
+           ;; The install-helper needs it to extract the patch.
+           innoextract))
     (home-page "https://arx-libertatis.org/")
     (synopsis "Port of Arx Fatalis, a first-person role-playing game")
     (description "Arx Libertatis is a cross-platform port of Arx Fatalis, a 2002
@@ -8775,7 +8770,7 @@ where the player draws runes in real time to effect the desired spell.")
                      (lambda* (#:key inputs #:allow-other-keys)
                        (setenv "CPATH"
                                (string-append
-                                (search-input-file inputs "/include/SDL2")
+                                (search-input-directory inputs "/include/SDL2")
                                 ":" (or (getenv "CPATH") ""))))))))
     (inputs
      `(("sdl2-union" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))
@@ -8982,7 +8977,7 @@ exec ~a --data-path=~a/share/flare --mods=empyrean_campaign~%"
                (chmod script #o755))
              #t)))))
     (inputs
-     `(("flare-engine" ,flare-engine)))
+     (list flare-engine))
     (home-page "http://www.flarerpg.org/")
     (synopsis "Fantasy action RPG using the FLARE engine")
     (description "Flare is a single-player 2D action RPG with
@@ -9031,7 +9026,7 @@ fast-paced action and a dark fantasy style.")
                 (string-append "// " all)))
              #t)))))
     (native-inputs
-     `(("intltool" ,intltool)))
+     (list intltool))
     (inputs
      `(("sdl" ,(sdl-union (list sdl sdl-image sdl-mixer)))
        ("zlib" ,zlib)))
@@ -9094,11 +9089,9 @@ Orcus Dome from evil.")
                  (install-file "MarbleMarcher" bin))
                #t)))))
       (inputs
-       `(("eigen" ,eigen)
-         ("mesa" ,mesa)
-         ("sfml" ,sfml)))
+       (list eigen mesa sfml))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (home-page "https://codeparade.itch.io/marblemarcher")
       (synopsis "Guide a marble across fractal landscapes")
       (description "Marble Marcher is a video game that uses a fractal physics
@@ -9116,7 +9109,7 @@ levels to unlock.")
 (define simgear
   (package
     (name "simgear")
-    (version "2018.3.5")
+    (version "2020.3.11")
     (source
      (origin
        (method url-fetch)
@@ -9124,22 +9117,31 @@ levels to unlock.")
                            (version-major+minor version) "/"
                            "simgear-" version ".tar.bz2"))
        (sha256
-        (base32 "1vkqm66r1205k3hdjmx5wmx5kvmsb0dgfzrs8n5gqnxj8szs42dl"))))
+        (base32 "0g2g3n3sb6kdimvcrn9kvlhyyrp5c6lx20fgzz8l609v5aygr3dv"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; There are some bundled libraries.
+           (for-each delete-file-recursively
+                     '("3rdparty/expat/"))
+           #t))))
     (build-system cmake-build-system)
     (arguments
-     `(#:phases
+     `(#:configure-flags (list "-DSYSTEM_EXPAT=ON")
+       #:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _
-             ;; Skip tests that require internet access.
-             (invoke "ctest" "-E" "(http|dns)"))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; Skip tests that require internet access.
+               (invoke "ctest" "-E" "(http|dns)")))))))
     (inputs
-     `(("boost" ,boost-for-mysql)       ; fails with 1.69
+     `(("boost" ,boost)
        ("curl" ,curl)
        ("expat" ,expat)
        ("mesa" ,mesa)
        ("openal" ,openal)
-       ("openscenegraph" ,openscenegraph-3.4)
+       ("openscenegraph" ,openscenegraph)
        ("zlib" ,zlib)))
     (home-page "https://home.flightgear.org/")
     (synopsis "Libraries for 3D simulations and games")
@@ -9160,41 +9162,42 @@ and also provides the base for the FlightGear Flight Simulator.")
                            (version-major+minor version) "/"
                            "flightgear-" version ".tar.bz2"))
        (sha256
-        (base32 "0ya3vb539kwi1qrifqhsj5j3k4w6s06hrllp2vdzxf6id7cgf0hc"))
+        (base32 "15sar94x13j2y1m6adgmz2q1m1i9bzj3sxqla6y3m9vyf33hc9zy"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; There are some bundled libraries.
            (for-each delete-file-recursively
-                     '("3rdparty/sqlite3/"))
+                     '("3rdparty/sqlite3/"
+                       "3rdparty/cppunit/"))
            #t))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (arguments
      `(#:configure-flags
        (list "-DSYSTEM_SQLITE=ON"
+             "-DSYSTEM_CPPUNIT=ON"
              (string-append "-DFG_DATA_DIR="
                             (assoc-ref %outputs "out")
                             "/share/flightgear"))
-       ;; TODO: test cannot be run because the "run_test_suite" executable
-       ;; does not seem to be built.
+       ;; TODO: test suite segfaults.
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
-         (add-after 'install 'wrap-executable
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (wrap-program (string-append out "/bin/fgfs")
-                 `("QT_PLUGIN_PATH" ":" prefix
-                   ,(map (lambda (label)
-                           (string-append (assoc-ref inputs label)
-                                          "/lib/qt5/plugins"))
-                         '("qtbase" "qtdeclarative" "qtsvg")))
-                 `("QML2_IMPORT_PATH" ":" prefix
-                   ,(map (lambda (label)
-                           (string-append (assoc-ref inputs label)
-                                          "/lib/qt5/qml"))
-                         '("qtdeclarative" "qtsvg"))))
-               #t)))
+         (add-after 'unpack 'skip-some-tests
+           (lambda _
+             (substitute* "test_suite/unit_tests/Instrumentation/test_gps.hxx"
+               (("CPPUNIT_TEST\\(testLongLegWestbound\\);" all)
+                (string-append "// " all))
+               (("CPPUNIT_TEST\\(testFinalLegCourse\\);" all)
+                (string-append "// " all)))))
+         (add-after 'build 'build-test-suite
+           (lambda* args
+             ((assoc-ref %standard-phases 'build)
+              #:make-flags (list "fgfs_test_suite"))))
+         ;; Test suite needs access to FGData so run it after 'install.
+         (delete 'check)
+         (add-after 'install-data 'check
+           (assoc-ref %standard-phases 'check))
          (add-after 'install 'install-data
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((share (string-append (assoc-ref outputs "out") "/share/flightgear")))
@@ -9204,23 +9207,23 @@ and also provides the base for the FlightGear Flight Simulator.")
                          "--strip-components=1")))
              #t)))))
     (inputs
-     `(("boost" ,boost-for-mysql)       ; same as simgear
-       ("dbus" ,dbus)
-       ("eudev" ,eudev)
-       ("freeglut" ,freeglut)
-       ("freetype" ,freetype)
-       ("glew" ,glew)
-       ("libpng" ,libpng)
-       ("openal" ,openal)
-       ("openscenegraph" ,openscenegraph-3.4)
-       ("plib" ,plib)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)
-       ("simgear" ,simgear)
-       ("speexdsp" ,speexdsp)
-       ("sqlite" ,sqlite)
-       ("zlib" ,zlib)))
+     (list boost
+           dbus
+           eudev
+           freeglut
+           freetype
+           glew
+           libpng
+           openal
+           openscenegraph
+           plib
+           qtbase-5
+           qtdeclarative
+           qtsvg
+           simgear
+           speexdsp
+           sqlite
+           zlib))
     (native-inputs
      `(("cppunit" ,cppunit)
        ("pkg-config" ,pkg-config)
@@ -9230,11 +9233,11 @@ and also provides the base for the FlightGear Flight Simulator.")
            (method url-fetch)
            (uri (string-append "mirror://sourceforge/flightgear/release-"
                                (version-major+minor version) "/"
-                               "FlightGear-" version "-data.tar.bz2"))
+                               "FlightGear-" version "-data.txz"))
            (sha256
             (base32
-             "04fv9za5zlyxlyfh6jx78y42l3jazvzl9dq2y6rzxqlcc9g5swhk"))))))
-    (home-page "https://home.flightgear.org/")
+             "0n5mw9vw1snab16c1y3i9ylkiv54az57bs2mvpq20hhg5hdiagqj"))))))
+    (home-page "https://www.flightgear.org/")
     (synopsis "Flight simulator")
     (description "The goal of the FlightGear project is to create a
 sophisticated flight simulator framework for use in research or academic
@@ -9265,7 +9268,14 @@ simulator.")
        #:tests? #f                      ;no test
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)            ;no configure script
+         ;; There is no configure script
+         (replace 'configure
+           (lambda _
+             (substitute* "Makefile"
+               (("-funroll-loops")
+                "-funroll-loops -fcommon")
+               (("SDL_CFLAGS =")
+                "SDL_CFLAGS = -fcommon"))))
          (add-after 'unpack 'fix-sdl-path
            ;; XXX: For some reason, `sdl2-config' reports stand-alone SDL
            ;; directory, not SDL-union provided as an input to the package.
@@ -9273,8 +9283,7 @@ simulator.")
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "Makefile"
                (("sdl2-config" command)
-                (string-append command " --prefix=" (assoc-ref inputs "sdl"))))
-             #t)))))
+                (string-append command " --prefix=" (assoc-ref inputs "sdl")))))))))
     (inputs
      `(("bzip2" ,bzip2)
        ("sdl" ,(sdl-union (list sdl2 sdl2-mixer sdl2-net)))
@@ -9296,6 +9305,7 @@ play with up to four players simultaneously.  It has network support.")
               (method url-fetch)
               (uri (string-append "https://www.hedgewars.org/download/releases/"
                                   "hedgewars-src-" version ".tar.bz2"))
+              (patches (search-patches "hedgewars-network-bsd.patch"))
               (sha256
                (base32
                 "0nqm9w02m0xkndlsj6ys3wr0ik8zc14zgilq7k6fwjrf3zk385i1"))))
@@ -9345,10 +9355,7 @@ play with up to four players simultaneously.  It has network support.")
        ("sdl" ,(sdl-union
                 (list sdl2 sdl2-mixer sdl2-net sdl2-ttf sdl2-image)))))
     (native-inputs
-     `(("clang" ,clang)
-       ("ghc" ,ghc)
-       ("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list clang ghc pkg-config qttools))
     (home-page "https://hedgewars.org/")
     (synopsis "Turn-based artillery game featuring fighting hedgehogs")
     (description
@@ -9383,7 +9390,7 @@ and bring the war to your enemy.")
     (arguments
      '(#:import-path "github.com/anaseto/gruid"))
     (propagated-inputs
-     `(("go-golang-org-x-image" ,go-golang-org-x-image)))
+     (list go-golang-org-x-image))
     (home-page "https://github.com/anaseto/gruid")
     (synopsis "Cross-platform grid-based UI and game framework")
     (description "The gruid module provides packages for easily building
@@ -9474,8 +9481,7 @@ on items and player adaptability for character progression.")
                 (share (string-append out "/share/drascula"))
                 (scummvm (assoc-ref %build-inputs "scummvm")))
            ;; Install data.
-           (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
-                                       "/bin/unzip"))
+           (let ((unzip (search-input-file %build-inputs "/bin/unzip"))
                  (doc (string-append out "/share/doc/" ,name "-" ,version)))
              (for-each
               (lambda (input)
@@ -9501,8 +9507,7 @@ on items and player adaptability for character progression.")
            ;; Create standalone executable.
            (let* ((bin (string-append out "/bin"))
                   (executable (string-append bin "/drascula"))
-                  (bash (string-append (assoc-ref %build-inputs "bash")
-                                       "/bin/bash")))
+                  (bash (search-input-file %build-inputs "/bin/bash")))
              (mkdir-p bin)
              (with-output-to-file executable
                (lambda ()
@@ -9529,8 +9534,7 @@ on items and player adaptability for character progression.")
                           ("it" "Gioco classico di avventura punta e clicca 2D"))))
            #t))))
     (native-inputs
-     `(("bash" ,bash)
-       ("unzip" ,unzip)))
+     (list bash unzip))
     (inputs
      `(("scummvm" ,scummvm)
        ("drascula-int"
@@ -9592,8 +9596,7 @@ the World and demonstrating that he is even more evil than his brother Vlad.")
                 (bin (string-append out "/bin"))
                 (executable (string-append bin "/" ,name))
                 (scummvm (assoc-ref %build-inputs "scummvm")))
-           (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
-                                       "/bin/unzip")))
+           (let ((unzip (search-input-file %build-inputs "/bin/unzip")))
              (invoke unzip "-j" (assoc-ref %build-inputs "source")))
            (let ((doc (string-append share "/doc/" ,name "-" ,version)))
              (for-each (lambda (f) (install-file f doc))
@@ -9630,10 +9633,9 @@ the World and demonstrating that he is even more evil than his brother Vlad.")
                        executable scummvm)))
            #t))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (inputs
-     `(("bash" ,bash)
-       ("scummvm" ,scummvm)))
+     (list bash scummvm))
     (home-page "https://www.scummvm.org")
     (synopsis "2D point and click fantasy adventure game")
     (description
@@ -9699,8 +9701,7 @@ Skorl.  Maybe it would be an idea to try and escape...")
                 (bin (string-append out "/bin"))
                 (executable (string-append bin "/" ,name))
                 (scummvm (assoc-ref %build-inputs "scummvm")))
-           (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
-                                       "/bin/unzip")))
+           (let ((unzip (search-input-file %build-inputs "/bin/unzip")))
              (invoke unzip "-j" (assoc-ref %build-inputs "source")))
            (let ((doc (string-append share "/doc/" ,name "-" ,version)))
              (install-file "readme.txt" doc))
@@ -9732,10 +9733,9 @@ Skorl.  Maybe it would be an idea to try and escape...")
                        executable scummvm))))
          #t)))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (inputs
-     `(("bash" ,bash)
-       ("scummvm" ,scummvm)))
+     (list bash scummvm))
     (home-page "https://www.scummvm.org/")
     (synopsis "Classic 2D point and click adventure game")
     (description "Flight of the Amazon Queen is a 2D point-and-click
@@ -9798,8 +9798,7 @@ women and 6-foot-tall pygmies.")
                 (bin (string-append out "/bin"))
                 (executable (string-append bin "/" ,name))
                 (scummvm (assoc-ref %build-inputs "scummvm")))
-           (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
-                                       "/bin/unzip")))
+           (let ((unzip (search-input-file %build-inputs "/bin/unzip")))
              (invoke unzip "-j" (assoc-ref %build-inputs "source")))
            (let ((doc (string-append share "/doc/bass-" ,version)))
              (install-file "readme.txt" doc))
@@ -9833,10 +9832,9 @@ angesiedelt in einer düsteren, postapokalyptischen Vision der Zukunft~@
                        executable scummvm)))
            #t))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (inputs
-     `(("bash" ,bash)
-       ("scummvm" ,scummvm)))
+     (list bash scummvm))
     (home-page "https://www.scummvm.org/")
     (synopsis "Classic 2D point and click science-fiction adventure game")
     (description
@@ -9875,13 +9873,9 @@ and to seek vengeance for the killing of his tribe.")
          "07gi3lsmbzzsjambgixj6xy79lh22km84z7bnzgwzxdy806lyvwb"))))
     (build-system gnu-build-system)
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+-2)
-       ("vte" ,vte/gtk+-2)
-       ("readline" ,readline)
-       ("guile" ,guile-1.8)))
+     (list glib gtk+-2 vte/gtk+-2 readline guile-1.8))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:make-flags
        (list
@@ -9982,21 +9976,21 @@ win.")
 (define-public freeorion
   (package
     (name "freeorion")
-    (version "0.4.10")
+    (version "0.4.10.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/freeorion/freeorion/releases/"
-                           "download/v" version "/FreeOrion_v" version
-                           "_2020-07-10.f3d403e_Source.tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/freeorion/freeorion")
+             (commit (string-append "v" version))))
        (sha256
-        (base32 "12xspixrkx6mmmsdqjha0hg02r4y73pk229l0wjq9s0yp8nb8ap7"))
+        (base32 "12fhwa3cs6lvdbdhina310qk2g7zcphldsh7ibsbxn8d1m731xlk"))
+       (file-name (git-file-name name version))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; There are some bundled fonts.
-           (for-each delete-file-recursively '("default/data/fonts"))
-           #t))))
+           (for-each delete-file-recursively '("default/data/fonts"))))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ;no test
@@ -10058,14 +10052,14 @@ remake of that series or any other game.")
      (patches (search-patches "leela-zero-gtest.patch"))))
    (build-system cmake-build-system)
    (native-inputs
-    `(("googletest" ,googletest)))
+    (list googletest))
    (inputs
-    `(("boost" ,boost)
-      ("opencl-icd-loader" ,opencl-icd-loader)
-      ("openblas" ,openblas)
-      ("opencl-headers" ,opencl-headers)
-      ("qtbase" ,qtbase-5)
-      ("zlib" ,zlib)))
+    (list boost
+          opencl-icd-loader
+          openblas
+          opencl-headers
+          qtbase-5
+          zlib))
    (arguments
     '(#:configure-flags '("-DUSE_BLAS=YES")
       #:phases (modify-phases %standard-phases
@@ -10105,11 +10099,9 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
               "1gdlfqcqkqv7vph3qwq78d0qz6dhmdsranxq9bmixiisbzkqby31"))))
    (build-system gnu-build-system)
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    (list pkg-config))
    (inputs
-    `(("qtbase" ,qtbase-5)
-      ("qtmultimedia" ,qtmultimedia)
-      ("qtsvg" ,qtsvg)))
+    (list qtbase-5 qtmultimedia qtsvg))
    (arguments
     '(#:phases
       (modify-phases %standard-phases
@@ -10189,25 +10181,23 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
        (base32 "0mlv9qllg70p26dbrcsr820c70d3ib88hapc1z6wgjhdpmc12ni1"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)
-       ("perl" ,perl)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("python" ,python-wrapper)
-       ("qtbase" ,qtbase-5)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools perl))
+    (inputs
+     (list kcompletion
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kio
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           python-wrapper
+           qtbase-5
+           qtmultimedia
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Stamp drawing toy")
     (description "KTuberling is a drawing toy intended for small children and
@@ -10240,21 +10230,20 @@ This package is part of the KDE games module.")
        (base32 "1dfq9m4njh0czz8zws46rkz6xq2n6xra5w223m3s2f5civiw5msz"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdeclarative" ,kdeclarative)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("knewstuff" ,knewstuff)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcoreaddons
+           kcrash
+           kdbusaddons
+           kdeclarative
+           ki18n
+           kio
+           knewstuff
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Number logic game")
     (description "Picmi is a number logic game in which cells in a grid have
@@ -10277,22 +10266,21 @@ This package is part of the KDE games module.")
         (base32 "1lpp6pzr5dgd4si4a8c7hcvgxgqy0bgyhkx9m6jqb0zhll6dxj10"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("ktextwidgets" ,ktextwidgets)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kio
+           kwidgetsaddons
+           kxmlgui
+           ktextwidgets
+           libkdegames
+           qtbase-5
+           qtdeclarative))
     (home-page "https://games.kde.org/")
     (synopsis "Miniature golf game")
     (description "Kolf is a miniature golf game for one to ten players.  The
@@ -10325,18 +10313,18 @@ This package is part of the KDE games module.")
        (base32 "10ljzbf7qki5flydankrbksaihhkqpfyljb8c71fbwqwmkr7rgfq"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
-    (inputs
-     `(("kauth" ,kauth)
-       ("kcompletion" ,kcompletion)
-       ;("kconfig" ,kconfig)
-       ("kcodecs" ,kcodecs)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules))
+    (inputs
+     (list kauth
+           kcompletion
+           ;("kconfig" ,kconfig)
+           kcodecs
+           kconfigwidgets
+           kcoreaddons
+           ki18n
+           kwidgetsaddons
+           qtbase-5
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Shared library for kmahjongg and kshisen")
     (description "Shared library and common files for kmahjongg, kshisen and
@@ -10356,21 +10344,20 @@ other Mah Jongg like games.")
        (base32 "1fcj4jb2zzbaxp7cp04w36y0c7lh77yzin66fmvrcxkl11xi2wwd"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdeclarative" ,kdeclarative)
-       ("ki18n" ,ki18n)
-       ("knewstuff" ,knewstuff)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("libkmahjongg" ,libkmahjongg)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kcrash
+           kdbusaddons
+           kdeclarative
+           ki18n
+           knewstuff
+           kxmlgui
+           libkdegames
+           libkmahjongg
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Tile laying patience")
     (description "In KMahjongg the tiles are scrambled and staked on top of
@@ -10396,23 +10383,23 @@ This package is part of the KDE games module.")
        (base32 "1hrwr0f1kidivsp8lnwdbqz3xxagjvjwh72r3gma8smfilybygfb"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ;("perl" ,perl)
-       ;("pkg-config" ,pkg-config)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kauth" ,kauth)
-       ("kcompletion" ,kcompletion)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("libkmahjongg" ,libkmahjongg)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list extra-cmake-modules
+           ;("perl" ,perl)
+           ;("pkg-config" ,pkg-config)
+           kdoctools))
+    (inputs
+     (list kauth
+           kcompletion
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kxmlgui
+           libkdegames
+           libkmahjongg
+           qtbase-5
+           qtdeclarative))
     (home-page "https://games.kde.org/")
     (synopsis "Shisen-Sho solitaire game")
     (description "KShisen is a solitaire-like game played using the standard
@@ -10437,27 +10424,37 @@ This package is part of the KDE games module.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'install 'wrap
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "src/mjresource.py"
+               (("'share', 'kmahjongglib'" all)
+                (string-append "'" (assoc-ref inputs "libkmahjongg")
+                               "/share', 'kmahjongglib'")))))
+         (add-after 'qt-wrap 'wrap
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
-               (wrap-program (string-append out "/bin/kajongg")
-                 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))
-               #t))))))
-    (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ;("perl" ,perl)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("libkmahjongg" ,libkmahjongg)
-       ("python" ,python)
-       ("python-twisted" ,python-twisted)
-       ("python-pyqt" ,python-pyqt)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+               (for-each (lambda (program)
+                           (wrap-program program
+                             `("GUIX_PYTHONPATH" ":" prefix
+                               (,(getenv "GUIX_PYTHONPATH")))))
+                         (list (string-append out "/bin/kajongg")
+                               (string-append out "/bin/kajonggserver")))))))))
+    (native-inputs
+     (list extra-cmake-modules
+           ;("perl" ,perl)
+           kdoctools))
+    (inputs
+     (list kconfig
+           kconfigwidgets
+           kcoreaddons
+           ki18n
+           libkmahjongg
+           python
+           python-twisted
+           python-pyqt
+           python-zope-interface
+           qtbase-5
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Classical Mah Jongg game for 4 players")
     (description "Kajongg is the ancient Chinese board game for 4 players.
@@ -10486,21 +10483,20 @@ This package is part of the KDE games module.")
        (base32 "0kqj2cx0ny3qq65c6w5fpnzmrwl9irg8slzvpd3anck5cnvma3j4"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative))
     (home-page "https://games.kde.org/")
     (synopsis "Breakout like game")
     (description "KBreakout is similar to the classics breakout and xboing,
@@ -10524,22 +10520,21 @@ This package is part of the KDE games module.")
        (base32 "0hqjwh3jq2npqwkvh67fyn2xnq8swiasdw5jz8f0ikl0k28id775"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           ktextwidgets
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative))
     (home-page "https://games.kde.org/")
     (synopsis "Classical mine sweeper game")
     (description "KMines is a classic Minesweeper game.  The idea is to
@@ -10562,22 +10557,21 @@ This package is part of the KDE games module.")
        (base32 "0lnwj06vv4qx05hr8pzysnvrxh8y04asajrph0rsj37v8hs9g5lh"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kguiaddons" ,kguiaddons)
-       ("ki18n" ,ki18n)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           kguiaddons
+           ki18n
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Simple turn-based strategy game")
     (description "Konquest is the KDE version of Gnu-Lactic Konquest.  Players
@@ -10602,22 +10596,21 @@ This package is part of the KDE games module.")
        (base32 "0ymy0z1qlw3n653xs3dsa1xm78q4xaj09dnnci4km77rzis26vb6"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kio
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Jezzball arcade game")
     (description "KBounce is a single player arcade game with the elements of
@@ -10641,22 +10634,21 @@ This package is part of the KDE games module.")
        (base32 "09yfm9mzbamp294cvc5finq6ilxvxr68i0dnb0m72pa4sfzmij32"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Single player falling blocks puzzle game")
     (description "KBlocks is the classic Tetris-like falling blocks game.
@@ -10682,25 +10674,24 @@ This package is part of the KDE games module.")
        (base32 "0pj6ry7ak1rnpb93mqypaxrcbmrhwg9ir6zhb3ybzfkfcrh67g12"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("karchive" ,karchive)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kguiaddons" ,kguiaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("glu" ,glu)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list karchive
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kguiaddons
+           ki18n
+           kiconthemes
+           kio
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           glu
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Sudoku puzzle game and solver")
     (description "KSudoku is a Sudoku game and solver, supporting a range of
@@ -10743,20 +10734,19 @@ This package is part of the KDE games module.")
        (base32 "0y8lnwawrkl4ixn7v4dg48k2zpr083krv7dv4d94b2dpkh7xfvih"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative))
     (home-page "https://games.kde.org/")
     (synopsis "Place 5 equal pieces together, but wait, there are 3 new ones")
     (description "KLines is a simple but highly addictive one player game.
@@ -10787,20 +10777,19 @@ This package is part of the KDE games module.")
        (base32 "17ra5d3r9ajy2inj17gwd5xphzhvbzx5kpvdwyj6msx4dd9wxgfi"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kio
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative))
     (home-page "https://games.kde.org/")
     (synopsis "Action and puzzle solving game")
     (description "KGoldrunner is an action game where the hero runs through a
@@ -10828,23 +10817,22 @@ This package is part of the KDE games module.")
        (base32 "1iyxrx3422asa58kh0siwvi1svds5kccrym6gdfpdhlmhmciqlzi"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("knotifications" ,knotifications)
-       ("knotifyconfig" ,knotifyconfig)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           knotifications
+           knotifyconfig
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative))
     (home-page "https://games.kde.org/")
     (synopsis "Three-in-a-row game")
     (description "KDiamond is a three-in-a-row game like Bejeweled.  It
@@ -10867,21 +10855,20 @@ This package is part of the KDE games module.")
        (base32 "0plx3lv35fc8q9svbyl71mms3ji6zn58j306bvm1f8kkgg0x395b"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdnssd" ,kdnssd)
-       ("ki18n" ,ki18n)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdnssd
+           ki18n
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Place 4 pieces in a row")
     (description "KFourInLine is a board game for two players based on the
@@ -10906,22 +10893,21 @@ This package is part of the KDE games module.")
        (base32 "0la5w44b0gl72g3wfp0pw8gwnm287lh7nd9k5ikpszw5nn49db0h"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("karchive" ,karchive)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list karchive
+           kcompletion
+           kconfig
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           ktextwidgets
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Find atoms in a grid by shooting electrons")
     (description "KBlackbox is a game of hide and seek played on a grid of
@@ -10947,22 +10933,21 @@ This package is part of the KDE games module.")
        (base32 "060kj06vpigdy570izsjfgnmqqrpmb8bkr9arqc109hg3avl5wjz"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           ktextwidgets
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative))
     (home-page "https://games.kde.org/")
     (synopsis "Turn the board pieces to get all computers connected")
     (description "KNetWalk is a small game where you have to build up a
@@ -10989,19 +10974,18 @@ This package is part of the KDE games module.")
         (base32 "1fjcwm591jgx3bgqpi0j5fnb2l2r2h3r6lav3vhaxz4rkf56pg2a"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletiom" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative))
     (home-page "https://games.kde.org/")
     (synopsis "Arcade bombing game")
     (description "Bomber is a single player arcade game.
@@ -11031,23 +11015,22 @@ This package is part of the KDE games module.")
        (base32 "1fyh7zyacb3pnlfd29jw2jmyl8a7sjw354pi234nd5x5999xw5z6"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("knewstuff" ,knewstuff)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           knewstuff
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Bomberman clone")
     (description "Granatier is a clone of the classic Bomberman game,
@@ -11069,23 +11052,22 @@ This package is part of the KDE games module.")
         (base32 "10y7nm0x6zcc0gh3am69bbxyyb8azbbfyrdqsa023ggr7n04cn21"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcrash" ,kcrash)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("knewstuff" ,knewstuff)
-       ("kwallet" ,kwallet)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("phonon" ,phonon)
-       ("qca" ,qca)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)
-       ("zlib" ,zlib)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcrash
+           ki18n
+           kiconthemes
+           kio
+           knewstuff
+           kwallet
+           kxmlgui
+           libkdegames
+           phonon
+           qca
+           qtbase-5
+           qtdeclarative
+           qtsvg
+           zlib))
     (home-page "https://games.kde.org/")
     (synopsis "Computerized version of the well known strategy board game
 'Risk'")
@@ -11125,29 +11107,28 @@ This package is part of the KDE games module.")
         (base32 "0xxz9g4zxljlg20g88a5lkbwzzm9yg4vxnrfigk8m018cz0nqd5b"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("karchive" ,karchive)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kcrash" ,kcrash)
-       ("ki18n" ,ki18n)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kitemviews" ,kitemviews)
-       ("knotifications" ,knotifications)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)
-       ("shared-mime-info" ,shared-mime-info)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list karchive
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kcrash
+           ki18n
+           ki18n
+           kio
+           kitemviews
+           knotifications
+           kservice
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg
+           shared-mime-info))
     (home-page "https://games.kde.org/")
     (synopsis "Jigsaw puzzle game")
     (description "Palapeli is a jigsaw puzzle game.  Unlike other games in
@@ -11173,21 +11154,20 @@ This package is part of the KDE games module.")
         (base32 "0milc8fl1rj4yrwdvm60ampd47dyiys1xvqi5f0g7y6mgymgyk4x"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kiconthemes
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative))
     (home-page "https://games.kde.org/")
     (synopsis "Yahtzee dice game")
     (description "Kiriki is an addictive and fun dice game, designed to be
@@ -11212,23 +11192,22 @@ This package is part of the KDE games module.")
         (base32 "088752yzmfsnppd27p8hld4x5s7sw5fagm08024l5ra1mlicdfz9"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("knewstuff" ,knewstuff)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kio
+           knewstuff
+           ktextwidgets
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Go board game")
     (description "Kigo is an open-source implementation of the popular Go
@@ -11259,22 +11238,21 @@ This package is part of the KDE games module.")
         (base32 "0h3mypwd67sss08j5vvrih5f5ss85m9kax6412y40xmsm51lz2pq"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("glu" ,glu)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list glu
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           ki18n
+           kio
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Game based on Rubik's Cube")
     (description "Kubrick is a game based on the Rubik's Cube puzzle.
@@ -11301,21 +11279,20 @@ This package is part of the KDE games module.")
         (base32 "1wg9zxp64kwjxqs4qw0h7j8yhgffbmvh8j9d4dgmz45dscngnjli"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kguiaddons" ,kguiaddons)
-       ("ki18n" ,ki18n)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kcoreaddons
+           kcrash
+           kguiaddons
+           ki18n
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Lieutnant Skat card game")
     (description "Lieutnant Skat (from German \"Offiziersskat\") is a fun and
@@ -11340,21 +11317,20 @@ This package is part of the KDE games module.")
        (base32 "14x3v6li4r3gzzwfd6ar9saq2rhc7yxs0sp9ygalzq8vq4d7i1kh"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Pac-Man clone")
     (description "Kapman is a clone of the well known game Pac-Man.
@@ -11380,21 +11356,20 @@ This package is part of the KDE games module.")
         (base32 "1aixh6ygif2cm1a5g32sl5y6b5x68139pzihaxq4334c6avamdai"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Two player game with shooting spaceships flying around a sun")
     (description "KSpaceduel is a space battle game for one or two players,
@@ -11416,19 +11391,18 @@ This package is part of the KDE games module.")
         (base32 "18qbac366m0xma3ary11q9zxz0wgnysppcl7kpypl6ic3nf61wqz"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Classic pen and paper game: five in a line")
     (description "Bovo is a Gomoku (from Japanese 五目並べ - lit.  \"five
@@ -11453,21 +11427,20 @@ This package is part of the KDE games module.")
         (base32 "1296gww42nwnai7y6m2qpjqpyc30p7z9chfv5rv0n48jvdhva88y"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative))
     (home-page "https://games.kde.org/")
     (synopsis "Port of the classic BSD console game robots")
     (description "Killbots is a simple game of evading killer robots.
@@ -11495,22 +11468,21 @@ This package is part of the KDE games module.")
        (base32 "0mp6g258n3xzvgf23jnhkw10xgwqwqdzqfdc6r9jq6a6m8v77swz"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kguiaddons" ,kguiaddons)
-       ("ki18n" ,ki18n)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           kguiaddons
+           ki18n
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Snake race played against the computer")
     (description "KSnakeDuel is a fast action game where you steer a snake
@@ -11534,20 +11506,19 @@ This package is part of the KDE games module.")
        (base32 "180ybafizpwjsg80npy0l9142cjsnlyxwv9dz3bq6r8v4smn2g6b"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative))
     (home-page "https://games.kde.org/")
     (synopsis "Simple ball dodging game")
     (description "In Kollision you use mouse to control a small blue ball in a
@@ -11572,23 +11543,22 @@ This package is part of the KDE games module.")
        (base32 "03rqf4avn61b0v340ymmzgp7s0axygjgxq1nlp5aaqbx70zcb4lq"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kauth" ,kauth)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdnssd" ,kdnssd)
-       ("ki18n" ,ki18n)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kauth
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           kdnssd
+           ki18n
+           ktextwidgets
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative))
     (home-page "https://games.kde.org/")
     (synopsis "Battleship board game with built-in game server")
     (description "KBattleship is a Battle Ship game for KDE.
@@ -11613,23 +11583,22 @@ This package is part of the KDE games module.")
        (base32 "0d3y072q61xcik9lf0pz0c9njvarwlvf6hqv5fp5jyqaf2902pmi"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdeclarative" ,kdeclarative)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           kdeclarative
+           ki18n
+           kiconthemes
+           kio
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Old reversi board game, also known as othello")
     (description "KReversi is a simple one player strategy game played
@@ -11656,21 +11625,20 @@ This package is part of the KDE games module.")
        (base32 "0chd30byl2kww1k699vkygrxq2wdyvi84m2bimk23q96fl8h831y"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative))
     (home-page "https://games.kde.org/")
     (synopsis "Dots and Boxes game")
     (description "KSquares is an implementation of the popular paper based
@@ -11693,22 +11661,21 @@ This package is part of the KDE games module.")
        (base32 "1mk73il4jh15z5pm3fp65hsyvmrga11c3h7w96yamy2n2bbniapq"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
-    (inputs
-     `(("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list extra-cmake-modules kdoctools))
+    (inputs
+     (list kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kio
+           kwidgetsaddons
+           kxmlgui
+           libkdegames
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Simple tactical game for number-crunchers")
     (description "KJumpingcube is a simple tactical game for one or two
@@ -11825,12 +11792,9 @@ the more difficult challenges.")
         (base32 "1z4pwpqyvxhlda99h6arh2rjk90fbms9q29fqizjblrdn01dlxn1"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list perl pkg-config))
     (inputs
-     `(("gtk+" ,gtk+-2)
-       ("libpng" ,libpng)
-       ("gstreamer" ,gstreamer)))
+     (list gtk+-2 libpng gstreamer))
     (arguments
      `(#:tests? #f
        #:phases
@@ -11867,13 +11831,9 @@ and chess engines.")
         (base32 "01fjchil2h6ry2ywr0dwjw2g7zd29580cr4c74d5z74h999lp6nh"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("qttools" ,qttools)))
+     (list qttools))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtspeech" ,qtspeech)
-       ("qtsvg" ,qtsvg)
-       ("zlib" ,zlib)))
+     (list qtbase-5 qtmultimedia qtspeech qtsvg zlib))
     (arguments
      `(#:tests? #f
        #:phases
@@ -11913,10 +11873,10 @@ etc.  You can also play games on FICS or against an engine.")
     (license license:gpl2+)))
 
 (define-public stockfish
-  (let ((neural-network-revision "3475407dc199")) ; also update hash below
+  (let ((neural-network-revision "13406b1dcbe0")) ; also update hash below
     (package
       (name "stockfish")
-      (version "14")
+      (version "14.1")
       (source
        (origin
          (method git-fetch)
@@ -11925,7 +11885,7 @@ etc.  You can also play games on FICS or against an engine.")
                (commit (string-append "sf_" version))))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "046b3rq9w8lzgk07q5zazzkl93ai99ab18hr9d8n73mabjpi6zbx"))))
+          (base32 "0apqqcgpcflm3c6mcl13ln2y04f6zksnljmk4ys7naf7xk4vdgkd"))))
       (build-system gnu-build-system)
       (inputs
        `(("neural-network"
@@ -11935,7 +11895,7 @@ etc.  You can also play games on FICS or against an engine.")
                                  neural-network-revision ".nnue"))
              (sha256
               (base32
-               "11zci5kgwdw9rh8w2w4p84764g82rr666y3n8r2flwwrq5yl0x9l"))))))
+               "0vr3hcmlqqm74pn7hc54gmfs9drqvgc53nh7bvy6v8z0rcfnnh0k"))))))
       (arguments
        `(#:tests? #f
          #:make-flags (list "-C" "src"
@@ -11980,9 +11940,7 @@ ChessX.")
         (base32 "0139wxyrir10cbkvkjn548xgmp84wax8mfwk80yxbxlcdamrg257"))))
     (build-system gnu-build-system)
     (inputs
-     `(("hicolor-icon-theme" ,hicolor-icon-theme)
-       ("sdl" ,sdl)
-       ("sdl-mixer" ,sdl-mixer)))
+     (list hicolor-icon-theme sdl sdl-mixer))
     (arguments
      `(#:configure-flags
        (list
@@ -12012,9 +11970,9 @@ get high scores.")
         (base32 "1xb4immzmd419aa08lgkzf7ibxa6ax238zb2l5iw9nkgvzlh1v6l"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("flatzebra" ,flatzebra)))
+     (list flatzebra))
     (home-page "http://perso.b2b2c.ca/~sarrazip/dev/burgerspace.html")
     (synopsis "Avoid evil foodstuffs and make burgers")
     (description
@@ -12040,13 +11998,9 @@ protect you.")
         (base32 "1y7v0jhp3apb619p7asikqr1dnwb2yxbh40wbx1ppmr5f03mq9ph"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+     (list gettext-minimal pkg-config))
     (inputs
-     `(("curl" ,curl)
-       ("enet" ,enet)
-       ("openal" ,openal)
-       ("sdl2" ,sdl2)))
+     (list curl enet openal sdl2))
     (home-page "https://7kfans.com/")
     (synopsis "Seven Kingdoms Ancient Adversaries: real-time strategy game")
     (description
@@ -12275,7 +12229,7 @@ computer opponents or against real players online.")
          (add-after 'unpack 'fix-install ; set install directory
            (lambda* (#:key outputs #:allow-other-keys)
              (substitute* "Makefile" (("/usr") (assoc-ref outputs "out"))) #t)))))
-    (inputs `(("sdl" ,sdl)))
+    (inputs (list sdl))
     (home-page "https://mdsteele.games/azimuth/")
     (synopsis "Metroidvania game with vector graphics")
     (description
@@ -12296,9 +12250,7 @@ inside the Zenith Colony.")
         (base32 "0qlvkiaglqq0izfph3l04mp4rqqqm9ks6rcsrmzrggw9x706z2iv"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("libxt" ,libxt)
-       ("xorgproto" ,xorgproto)))
+     (list libx11 libxt xorgproto))
     (home-page "http://cgoban1.sourceforge.net/")
     (synopsis "Go client for X11")
     (description "Provides a large set of Go-related services for X11:
@@ -12357,7 +12309,7 @@ such as GnuGo.
     (inputs
      `(("sdl" ,(sdl-union (list sdl sdl-mixer)))))
     (native-inputs
-     `(("imagemagick" ,imagemagick)))
+     (list imagemagick))
     (home-page "http://hcsoftware.sourceforge.net/passage/")
     (synopsis "Memento mori game")
     (description
@@ -12385,7 +12337,7 @@ there's no right way to interpret it.")
                   "09sb9sg44fvkgfdyycrm1ndpx7cnkrglxhci41y8f3gpagnvi7jk"))))
       (build-system gnu-build-system)
       (inputs
-       `(("sdl2" ,sdl2)))
+       (list sdl2))
       (arguments
        '(#:tests? #f ;no tests
          #:make-flags
@@ -12422,7 +12374,7 @@ game FPS.")
        #:phases
        (modify-phases %standard-phases
          (delete 'configure))))
-    (inputs `(("ncurses" ,ncurses)))
+    (inputs (list ncurses))
     (home-page "https://a-nikolaev.github.io/curseofwar/")
     (synopsis "Fast-paced action strategy game")
     (description "Curse of War is a fast-paced action strategy game originally
@@ -12451,10 +12403,8 @@ available.")
       (arguments
        `(#:tests? #f                              ; no tests
          #:build-type "Release"))
-      (native-inputs
-       `(("gcc" ,gcc-11)))                    ; need C++20-compatible compiler
       (inputs
-       `(("sfml" ,sfml)))
+       (list sfml))
       (home-page "https://github.com/sandsmark/Schiffbruch/")
       (synopsis "Pixelart survival game")
       (description
@@ -12465,10 +12415,68 @@ do so you need to explore the island, find food, build a shelter and try to
 get attention, so you get found.")
       (license license:cc-by4.0))))
 
+(define-public sdlpop
+  (package
+    (name "sdlpop")
+    (version "1.22")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/NagyD/SDLPoP")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1yy5r1r0hv0xggk8qd8bwk2zy7abpv89nikq4flqgi53fc5q9xl7"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no tests provided
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'prepare-build
+           ;; Set correct environment for SDL.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "CPATH"
+                     (string-append (assoc-ref inputs "sdl")
+                                    "/include/SDL2:"
+                                    (or (getenv "CPATH") "")))))
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "src")))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (opt (string-append out "/opt/sdlpop"))
+                    (app (string-append out "/usr/share/applications"))
+                    (template "src/SDLPoP.desktop.template"))
+               (chdir "..")
+               (install-file "prince" bin)
+               (substitute* template (("\\$ROOT") out))
+               (substitute* "src/seg009.c"
+                 (("g_argv[0]") (string-append "\"" out "\"")))
+               (install-file template app)
+               (rename-file (string-append app "/SDLPoP.desktop.template")
+                            (string-append app "/SDLPoP.desktop"))
+               (install-file "SDLPoP.ini" opt)
+               (copy-recursively "data" (string-append bin "/data"))
+               (copy-recursively "doc" opt)
+               (copy-recursively "mods" opt)))))))
+    (native-inputs (list pkg-config))
+    (inputs `(("sdl" ,(sdl-union (list sdl2
+                                       sdl2-image
+                                       sdl2-mixer)))))
+    (synopsis "Port of Prince of Persia game")
+    (description "This package provides port of Prince of Persia, based on the
+disassembly of the DOS version, extended with new features.")
+    (home-page "https://github.com/NagyD/SDLPoP")
+    (license license:gpl3+)))
+
 (define-public fheroes2
   (package
     (name "fheroes2")
-    (version "0.9.7")
+    (version "0.9.10")
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -12488,8 +12496,7 @@ get attention, so you get found.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0v3zh8a8yxfikcr5vkmy36c57l4nmwisz13mjavn5f7yrirf86fn"))))
+        (base32 "0zz8k1ygw4kwnv403q60v2hdfzk13p89jjgmpfbylhxchjvwaxgh"))))
     (home-page "https://ihhub.github.io/fheroes2/")
     (synopsis "Turn-based strategy game engine")
     (description "@code{fheroes2} is an implementation of Heroes of Might and
diff --git a/gnu/packages/gawk.scm b/gnu/packages/gawk.scm
index 6dab274be1..cb79e32a7a 100644
--- a/gnu/packages/gawk.scm
+++ b/gnu/packages/gawk.scm
@@ -55,9 +55,7 @@
                              '((substitute* "extension/Makefile.in"
                                  (("^.*: check-for-shared-lib-support" match)
                                   (string-append "### " match))))
-                             '())
-
-                       #t)))
+                             '()))))
 
                  (add-before 'check 'adjust-test-infrastructure
                    (lambda _
@@ -80,14 +78,12 @@
                      ;; against the actual test output.
                      (substitute* "test/watchpoint1.ok"
                        (("#! /usr/bin/gawk")
-                        (string-append "#!" (which "gawk"))))
-                     #t)))))
-
-   (inputs `(("libsigsegv" ,libsigsegv)
+                        (string-append "#!" (which "gawk")))))))))
 
-             ,@(if (%current-target-system)
-                   `(("bash" ,bash))
-                   '())))
+   (inputs (list libsigsegv
+                 ;; Use the full-fledged Bash package, otherwise the test suite
+                 ;; sometimes fail non-deterministically.
+                 bash))
 
    (home-page "https://www.gnu.org/software/gawk/")
    (synopsis "Text scanning and processing language")
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 4a5f8f0886..f526680f56 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2014, 2015, 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
@@ -171,16 +171,12 @@ where the OS part is overloaded to denote a specific ABI---into GCC
                   "lib"                    ;libgcc_s, libgomp, etc. (15+ MiB)
                   "debug"))                ;debug symbols of run-time libraries
 
-       (inputs `(("gmp" ,gmp)
-                 ("mpfr" ,mpfr)
-                 ("mpc" ,mpc)
-                 ("libelf" ,libelf)
-                 ("zlib" ,zlib)))
+       (inputs (list gmp mpfr mpc libelf zlib))
 
        ;; GCC < 5 is one of the few packages that doesn't ship .info files.
        ;; Newer texinfos fail to build the manual, so we use an older one.
-       (native-inputs `(("perl" ,perl)   ;for manpages
-                        ("texinfo" ,texinfo-5)))
+       (native-inputs (list perl ;for manpages
+                            texinfo-5))
 
        (arguments
         `(#:out-of-source? #t
@@ -398,9 +394,8 @@ Go.  It also includes runtime support libraries for these languages.")
                    "pa" "sh" "tilepro" "xtensa")))))
     (supported-systems %supported-systems)
     (inputs
-     `(("isl" ,isl-0.11)
-       ("cloog" ,cloog)
-       ,@(package-inputs gcc-4.7)))))
+     (modify-inputs (package-inputs gcc-4.7)
+       (prepend isl-0.11 cloog)))))
 
 (define-public gcc-4.9
   (package (inherit gcc-4.8)
@@ -431,8 +426,8 @@ Go.  It also includes runtime support libraries for these languages.")
                  '("aarch64" "alpha" "bfin" "i386" "m68k" "nios2"
                    "pa" "sh" "tilepro" "xtensa")))))
     ;; Override inherited texinfo-5 with latest version.
-    (native-inputs `(("perl" ,perl)   ;for manpages
-                     ("texinfo" ,texinfo)))
+    (native-inputs (list perl ;for manpages
+                         texinfo))
     (arguments
      (if (%current-target-system)
          (package-arguments gcc-4.8)
@@ -490,13 +485,15 @@ Go.  It also includes runtime support libraries for these languages.")
                                        "gcc-5-source-date-epoch-2.patch"
                                        "gcc-6-libsanitizer-mode-size.patch"
                                        "gcc-fix-texi2pod.patch"
-                                       "gcc-5-hurd.patch"))
+                                       "gcc-5-hurd.patch"
+                                       ;; See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86162
+                                       "gcc-5-fix-powerpc64le-build.patch"))
               (modules '((guix build utils)))
               (snippet gcc-canadian-cross-objdump-snippet)))
     (inputs
-     `(;; GCC5 needs <isl/band.h> which is removed in later versions.
-       ("isl" ,isl-0.18)
-       ,@(package-inputs gcc-4.7)))))
+     (modify-inputs (package-inputs gcc-4.7)
+       (prepend ;; GCC5 needs <isl/band.h> which is removed in later versions.
+                isl-0.18)))))
 
 (define-public gcc-6
   (package
@@ -792,6 +789,12 @@ as the 'native-search-paths' field."
                "gfortran" '("fortran")
                %generic-search-paths)))
 
+(define-public gfortran-7
+  (hidden-package
+   (custom-gcc gcc-7
+               "gfortran" '("fortran")
+               %generic-search-paths)))
+
 (define-public gdc-10
   (hidden-package
    (custom-gcc gcc-10 "gdc" '("d")
@@ -857,9 +860,9 @@ provides the GNU compiler for the Go programming language.")
                         (tooldir (dirname (car (find-files exedir "^cgo$")))))
                    (wrap-program (string-append out "/bin/go")
                      `("GCCGOTOOLDIR" =
-                       (,(string-append "${GCCGOTOOLDIR-" tooldir "}")))
+                       (,(string-append "${GCCGOTOOLDIR:-" tooldir "}")))
                      `("GOROOT" =
-                       (,(string-append "${GOROOT-" out "}")))))))
+                       (,(string-append "${GOROOT:-" out "}")))))))
              (add-before 'configure 'fix-gotools-runpath
                (lambda _
                  (substitute* "gotools/Makefile.in"
@@ -984,13 +987,13 @@ provides the GNU compiler for the Go programming language."))
     (version (package-version gcc))
     (synopsis "GNU libstdc++ documentation")
     (outputs '("out"))
-    (native-inputs `(("doxygen" ,doxygen)
-                     ("texinfo" ,texinfo)
-                     ("libxml2" ,libxml2)
-                     ("libxslt" ,libxslt)
-                     ("docbook-xml" ,docbook-xml)
-                     ("docbook-xsl" ,docbook-xsl)
-                     ("graphviz" ,graphviz))) ;for 'dot', invoked by 'doxygen'
+    (native-inputs (list doxygen
+                         texinfo
+                         libxml2
+                         libxslt
+                         docbook-xml
+                         docbook-xsl
+                         graphviz)) ;for 'dot', invoked by 'doxygen'
     (inputs '())
     (propagated-inputs '())
     (arguments
@@ -1066,7 +1069,7 @@ provides the GNU compiler for the Go programming language."))
                         (substitute* (string-append out "/lib/libisl.la")
                           (("^old_library=.*")
                            "old_library=''\n"))))))))
-    (inputs `(("gmp" ,gmp)))
+    (inputs (list gmp))
     (home-page "http://isl.gforge.inria.fr/")
     (synopsis
      "Manipulating sets and relations of integer points \
@@ -1132,8 +1135,7 @@ dependence analysis and bounds on piecewise step-polynomials.")
         "0a12rwfwp22zd0nlld0xyql11cj390rrq1prw35yjsw8wzfshjhw"))
       (file-name (string-append name "-" version ".tar.gz"))))
     (build-system gnu-build-system)
-    (inputs `(("gmp" ,gmp)
-              ("isl" ,isl-0.11)))
+    (inputs (list gmp isl-0.11))
     (arguments '(#:configure-flags '("--with-isl=system")))
     (home-page "http://www.cloog.org/")
     (synopsis "Library to generate code for scanning Z-polyhedra")
@@ -1163,7 +1165,7 @@ effective code.")
                (base32
                 "1sfsj9256w18qzylgag2h5h377aq8in8929svblfnj9svfriqcys"))))
     (build-system gnu-build-system)
-    (native-inputs `(("texinfo" ,texinfo)))
+    (native-inputs (list texinfo))
     (arguments
      '(#:phases (modify-phases %standard-phases
                   (delete 'configure)
diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm
index e37c485761..9e422dbe97 100644
--- a/gnu/packages/gd.scm
+++ b/gnu/packages/gd.scm
@@ -57,7 +57,7 @@
                               ;; Drop when
                               ;; https://github.com/libgd/libgd/issues/691
                               ;; is solved.
-                              "gd-Revert-fix-303-gdlib.pc-use-Requires-instead-of-Libs.patch"))))
+                              "gd-Revert-fix-303-gdlib.pc.patch"))))
     (build-system gnu-build-system)
     (arguments
       ;; As recommended by github.com/libgd/libgd/issues/278 to fix rounding
@@ -75,7 +75,7 @@
                (("return gdNumFailures\\(\\)")
                  "return 0")))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("fontconfig" ,fontconfig)
        ("freetype" ,freetype)
@@ -115,7 +115,7 @@ most common applications of GD involve website development.")
        ("libjpeg" ,libjpeg-turbo)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+     (list perl-extutils-pkgconfig))
     (arguments
      `(#:make-maker-flags
        (list (string-append "--lib_jpeg_path="
@@ -145,10 +145,9 @@ you can create PNG images on the fly or modify existing files.")
          (add-after 'unpack 'set-env
            (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1") #t)))))
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-gd" ,perl-gd)
-       ("perl-image-magick" ,perl-image-magick)))
+     (list perl-gd perl-image-magick))
     (home-page "https://metacpan.org/release/GD-SecurityImage")
     (synopsis "Security image generator")
     (description "This module provides a basic interface to create
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index 24b7c00dbd..aa9e479e46 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2015, 2016, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
-;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020, 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -24,6 +24,7 @@
 
 (define-module (gnu packages gdb)
   #:use-module (gnu packages)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages hurd)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages readline)
@@ -35,65 +36,74 @@
   #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
   #:use-module (gnu packages pkg-config)
+  #:use-module (guix download)
   #:use-module ((guix licenses) #:select (gpl3+))
   #:use-module (guix packages)
-  #:use-module (guix download)
+  #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module ((guix build utils) #:select (alist-replace))
   #:use-module (srfi srfi-1))
 
-(define-public gdb-10
+(define-public gdb-11
   (package
     (name "gdb")
-    (version "10.2")
+    (version "11.1")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnu/gdb/gdb-"
-                                 version ".tar.xz"))
-             (sha256
-              (base32
-               "0aag1c0fw875pvhjg1qp7x8pf6gf92bjv5gcic5716scacyj58da"))))
-
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/gdb/gdb-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "151z6d0265hv9cgx9zqqa4bd6vbp20hrljhd6bxl7lr0gd0crkyc"))))
     (build-system gnu-build-system)
+    (outputs '("out" "debug"))
     (arguments
-     `(#:tests? #f ; FIXME "make check" fails on single-processor systems.
-
+     `(#:tests? #f                      ;FIXME: 217 unexpected failures
        #:out-of-source? #t
-
        #:modules ((srfi srfi-1)
                   ,@%gnu-build-system-modules)
-
        #:phases (modify-phases %standard-phases
-                  (add-after
-                   'configure 'post-configure
-                   (lambda _
-                     (for-each patch-makefile-SHELL
-                               (find-files "." "Makefile\\.in"))
-                     #t))
-                  (add-after
-                   'install 'remove-libs-already-in-binutils
-                   (lambda* (#:key native-inputs inputs outputs
-                             #:allow-other-keys)
-                     ;; Like Binutils, GDB installs libbfd, libopcodes, etc.
-                     ;; However, this leads to collisions when both are
-                     ;; installed, and really is none of its business,
-                     ;; conceptually.  So remove them.
-                     (let* ((binutils (or (assoc-ref inputs "binutils")
-                                          (assoc-ref native-inputs "binutils")))
-                            (out      (assoc-ref outputs "out"))
-                            (files1   (with-directory-excursion binutils
-                                        (append (find-files "lib")
-                                                (find-files "include"))))
-                            (files2   (with-directory-excursion out
-                                        (append (find-files "lib")
-                                                (find-files "include"))))
-                            (common   (lset-intersection string=?
-                                                         files1 files2)))
-                       (with-directory-excursion out
-                         (for-each delete-file common)
-                         #t)))))))
+                  (add-after 'unpack 'patch-paths
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (let ((sh (string-append (assoc-ref inputs "bash")
+                                               "/bin/sh")))
+                        (substitute* '("gdb/ser-pipe.c"
+                                       "gdbsupport/pathstuff.cc")
+                          (("\"/bin/sh\"")
+                           (format #f "~s" sh))))))
+                  ,@(if (hurd-target?)
+                        '((add-after 'unpack 'patch-gdb/hurd
+                            (lambda* (#:key inputs #:allow-other-keys)
+                              (let ((patch (assoc-ref inputs "hurd-build.patch")))
+                                (invoke "patch" "-p1" "--force" "-i" patch)))))
+                        '())
+                  (add-after 'configure 'post-configure
+                    (lambda _
+                      (for-each patch-makefile-SHELL
+                                (find-files "." "Makefile\\.in"))))
+                  (add-after 'install 'remove-libs-already-in-binutils
+                    (lambda* (#:key native-inputs inputs outputs
+                              #:allow-other-keys)
+                      ;; Like Binutils, GDB installs libbfd, libopcodes, etc.
+                      ;; However, this leads to collisions when both are
+                      ;; installed, and really is none of its business,
+                      ;; conceptually.  So remove them.
+                      (let* ((binutils (or (assoc-ref inputs "binutils")
+                                           (assoc-ref native-inputs "binutils")))
+                             (out      (assoc-ref outputs "out"))
+                             (files1   (with-directory-excursion binutils
+                                         (append (find-files "lib")
+                                             (find-files "include"))))
+                             (files2   (with-directory-excursion out
+                                         (append (find-files "lib")
+                                             (find-files "include"))))
+                             (common   (lset-intersection string=?
+                                                          files1 files2)))
+                        (with-directory-excursion out
+                          (for-each delete-file common))))))))
     (inputs
-     `(("expat" ,expat)
+     `(("bash" ,bash)
+       ("expat" ,expat)
        ("mpfr" ,mpfr)
        ("gmp" ,gmp)
        ("readline" ,readline)
@@ -107,18 +117,22 @@
        ("libxml2" ,libxml2)
 
        ;; The Hurd needs -lshouldbeinlibc.
-       ,@(if (hurd-target?) `(("hurd" ,hurd)) '())))
+       ,@(if (hurd-target?)
+             `(("hurd" ,hurd)
+               ("hurd-build.patch"
+                ,(search-patch "gdb-fix-gnu-nat-build.patch")))
+             '())))
     (native-inputs
-      `(("texinfo" ,texinfo)
-        ("dejagnu" ,dejagnu)
-        ("pkg-config" ,pkg-config)
-        ,@(if (hurd-target?)
-              ;; When cross-compiling from x86_64-linux, make sure to use a
-              ;; 32-bit MiG because we assume target i586-pc-gnu.
-              `(("mig" ,(if (%current-target-system)
-                            mig/32-bit
-                            mig)))
-              '())))
+     `(("texinfo" ,texinfo)
+       ("dejagnu" ,dejagnu)
+       ("pkg-config" ,pkg-config)
+       ,@(if (hurd-target?)
+             ;; When cross-compiling from x86_64-linux, make sure to use a
+             ;; 32-bit MiG because we assume target i586-pc-gnu.
+             `(("mig" ,(if (%current-target-system)
+                           mig/32-bit
+                           mig)))
+             '())))
     ;; TODO: Add support for the GDB_DEBUG_FILE_DIRECTORY environment
     ;; variable in GDB itself instead of relying on some glue code in
     ;; the Guix-provided .gdbinit file.
@@ -135,31 +149,13 @@ the program is running to try to fix bugs.  It can be used to debug programs
 written in C, C++, Ada, Objective-C, Pascal and more.")
     (license gpl3+)))
 
-;; This version of GDB is required by some of the Rust compilers, see
-;; <https://github.com/rust-lang/rust/issues/79009>.
-(define-public gdb-9.2
-  (package
-    (inherit gdb-10)
-    (version "9.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnu/gdb/gdb-"
-                                  version ".tar.xz"))
-              (sha256
-               (base32
-                "0mf5fn8v937qwnal4ykn3ji1y2sxk0fa1yfqi679hxmpg6pdf31n"))))
-    (inputs
-     (alist-replace "guile" (list guile-2.0)
-                    (package-inputs gdb-10)))))
-
 (define-public gdb
   ;; This is the fixed version that packages depend on.  Update it rarely
   ;; enough to avoid massive rebuilds.
-  gdb-10)
+  gdb-11)
 
 (define-public gdb-minimal
-  (package/inherit
-   gdb
-   (name "gdb-minimal")
-   (inputs (fold alist-delete (package-inputs gdb)
-                 '("libxml2" "ncurses" "python-wrapper" "source-highlight")))))
+  (package/inherit gdb
+    (name "gdb-minimal")
+    (inputs (fold alist-delete (package-inputs gdb)
+                  '("libxml2" "ncurses" "python-wrapper" "source-highlight")))))
diff --git a/gnu/packages/genealogy.scm b/gnu/packages/genealogy.scm
index 2c3781d361..b8bd4339b9 100644
--- a/gnu/packages/genealogy.scm
+++ b/gnu/packages/genealogy.scm
@@ -39,7 +39,7 @@
 (define-public gramps
   (package
     (name "gramps")
-    (version "5.1.3")
+    (version "5.1.4")
     (source
      (origin
        (method git-fetch)
@@ -48,32 +48,32 @@
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "109dwkswz2h2328xkqk2zj736d117s9pp7rz5cc1qg2vxn1lpm93"))))
+        (base32 "00358nzyw686ypqv45imc5k9frcqnhla0hpx9ynna3iy6iz5006x"))))
     (build-system python-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("intltool" ,intltool)))
     (inputs
-     `(("cairo" ,cairo)
-       ("font-gnu-freefont" ,font-gnu-freefont)
-       ("geocode-glib" ,geocode-glib)
-       ("gexiv2" ,gexiv2)
-       ("ghostscript" ,ghostscript)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk+" ,gtk+)
-       ("gtkspell3" ,gtkspell3)
-       ("graphviz" ,graphviz)
-       ("librsvg" ,librsvg)
-       ("osm-gps-map" ,osm-gps-map)
-       ("pango" ,pango)
-       ("python-bsddb3" ,python-bsddb3)
-       ("python-pillow" ,python-pillow)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)
-       ("python-pyicu" ,python-pyicu)
-       ("rcs" ,rcs)
-       ("sqlite" ,sqlite)
-       ("xdg-utils" ,xdg-utils)))
+     (list cairo
+           font-gnu-freefont
+           geocode-glib
+           gexiv2
+           ghostscript
+           gobject-introspection
+           gtk+
+           gtkspell3
+           graphviz
+           librsvg
+           osm-gps-map
+           pango
+           python-bsddb3
+           python-pillow
+           python-pycairo
+           python-pygobject
+           python-pyicu
+           rcs
+           sqlite
+           xdg-utils))
     (arguments
      `(#:imported-modules ((guix build glib-or-gtk-build-system)
                            ,@%python-build-system-modules)
diff --git a/gnu/packages/genimage.scm b/gnu/packages/genimage.scm
index bd77e4dc33..eb50141374 100644
--- a/gnu/packages/genimage.scm
+++ b/gnu/packages/genimage.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,158 +41,98 @@
   #:use-module (gnu packages virtualization))
 
 (define-public genimage
-  (package
-    (name "genimage")
-    (version "11")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/pengutronix/genimage")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "15jmh17lvm3jw9c92bjarly7iwhmnfl322d91mprfv10ppb9ip54"))
-              ;; will be shipped with release 14
-              (patches (search-patches "genimage-signedness.patch"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'guixify
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; Note to maintainers: Check ".def =" lines in source.
-             (substitute* "config.c"
-              (("\\.def = \"cpio\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "cpio")
-                              "/bin/cpio\""))
-              (("\\.def = \"dd\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "coreutils")
-                              "/bin/dd\""))
-              (("\\.def = \"debugfs\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "e2fsprogs")
-                              "/sbin/debugfs\""))
-              (("\\.def = \"e2fsck\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "e2fsprogs")
-                              "/sbin/e2fsck\""))
-              (("\\.def = \"genext2fs\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "genext2fs")
-                              "/bin/genext2fs\""))
-              (("\\.def = \"genisoimage\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "cdrkit-libre")
-                              "/bin/genisoimage\""))
-              (("\\.def = \"mcopy\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "mtools")
-                              "/bin/mcopy\""))
-              (("\\.def = \"mmd\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "mtools")
-                              "/bin/mmd\""))
-              ;;; Note: mkcramfs is obsolete.
-              (("\\.def = \"mkdosfs\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "dosfstools")
-                              "/sbin/mkfs.fat\""))
-              (("\\.def = \"mke2fs\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "e2fsprogs")
-                              "/sbin/mke2fs\""))
-              (("\\.def = \"mkfs\\.jffs2\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "mtd-utils")
-                              "/sbin/mkfs.jffs2\""))
-              (("\\.def = \"mkfs\\.ubifs\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "mtd-utils")
-                              "/sbin/mkfs.ubifs\""))
-              (("\\.def = \"mksquashfs\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "squashfs-tools")
-                              "/bin/mksquashfs\""))
-              (("\\.def = \"qemu-img\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "qemu")
-                              "/bin/qemu-img\""))
-              (("\\.def = \"tar\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "tar")
-                              "/bin/tar\""))
-              (("\\.def = \"tune2fs\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "e2fsprogs")
-                              "/sbin/tune2fs\""))
-              (("\\.def = \"ubinize\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "mtd-utils")
-                              "/sbin/ubinize\""))
-              (("\\.def = \"mkimage\"")
-               (string-append ".def = \""
-                              (assoc-ref inputs "u-boot-tools")
-                              "/bin/mkimage\"")))
-             (substitute* "test/basic-images.test"
-              ;; Work around bug in sharness.sh.
-              (("mkdosfs")
-               "mkfs.fat")
-              ;; Work around bug in sharness.sh.
-              (("dd,mkfs\\.fat,mcopy")
-               "dd,mkfs_fat,mcopy")
-              ;; Should be in the next upstream release.
-              (("qemu_img") "qemu-img"))
-             (substitute* "util.c"
-              (("\"/bin/sh\"")
-               (string-append "\"" (assoc-ref inputs "bash") "/bin/sh\"")))
-             ;; We don't have /etc/passwd so uid 0 is not known as "root".
-             ;; Thus patch it out.
-             (substitute* '("test/ext2test.dump"
-                            "test/ext3test.dump"
-                            "test/ext4test.dump"
-                            "test/ext2test-percent.dump"
-                            "test/mke2fs.dump")
-              (("root") "unknown"))
-             #t))
-         (add-before 'check 'setenv-check
-           (lambda _
-             ;; Our container doesn't provide access to /etc/mtab
-             (setenv "EXT2FS_NO_MTAB_OK" "1")
-             ;; Make test reproducible
-             (setenv "GENIMAGE_MKFJFFS2" "mkfs.jffs2 -U")
-             (setenv "GENIMAGE_MKE2FS" "mke2fs -E no_copy_xattrs")
-             #t))
-         (replace 'check
-           (lambda _
-             (invoke "make" "TEST_LOG_COMPILER=" "check"))))))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ;;; Note: cramfs is obsolete.
-       ("dtc" ,dtc) ; for the tests
-       ("pkg-config" ,pkg-config)
-       ("util-linux" ,util-linux))) ; for the tests
-    (inputs
-     `(("bash" ,bash)
-       ("cdrkit-libre" ,cdrkit-libre)
-       ("cpio" ,cpio)
-       ;; Note: invoked by final executable.
-       ("coreutils" ,coreutils) ; chmod, dd
-       ("dosfstools" ,dosfstools)
-       ("e2fsprogs" ,e2fsprogs)
-       ("genext2fs" ,genext2fs)
-       ("libconfuse" ,libconfuse)
-       ("mtd-utils" ,mtd-utils)
-       ("mtools" ,mtools)
-       ("qemu" ,qemu-minimal)
-       ("squashfs-tools" ,squashfs-tools)
-       ("tar" ,tar)
-       ("u-boot-tools" ,u-boot-tools)))
-    (synopsis "Create Flash images according to specification")
-    (description "@command{genimage} creates Flash images according to a
+  (let ((commit "11bb04455eaf5434f0723c91a2224918ebd0a196")
+        (revision "1"))
+    (package
+      (name "genimage")
+      (version (git-version "14" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/pengutronix/genimage")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1dq3lk0awk12v2aidry35gvrci5a3nr6rzcq0j9hyyf0w1z1rn0l"))
+                (patches
+                 (search-patches "genimage-mke2fs-test.patch"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:modules
+         ((ice-9 match)
+          ,@%gnu-build-system-modules)
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'guixify
+             (lambda* (#:key inputs #:allow-other-keys)
+               (map (match-lambda
+                      ((input directory regexp)
+                       (substitute* "config.c"
+                         (((format #f "\\.def = \"(~a)\"" regexp) _ command)
+                          (format #f ".def = \"~a/~a/~a\""
+                                  (assoc-ref inputs input) directory command)))))
+                    '(("cpio"           "bin"  "cpio")
+                      ("coreutils"      "bin"  "dd")
+                      ("e2fsprogs"      "sbin" "debugfs|e2fsck|mke2fs|tune2fs")
+                      ("genext2fs"      "bin"  "genext2fs")
+                      ("cdrkit-libre"   "bin"  "genisoimage")
+                      ("mtools"         "bin"  "mcopy|mmd")
+                      ;; mkcramfs is obsolete.
+                      ("dosfstools"     "sbin" "mkdosfs")
+                      ("mtd-utils"      "sbin" "mkfs.(jffs2|ubifs)|ubinize")
+                      ("squashfs-tools" "bin"  "mksquashfs")
+                      ("qemu"           "bin"  "qemu-img")
+                      ("tar"            "bin"  "tar")
+                      ("u-boot-tools"   "bin"  "mkimage")))
+               (substitute* "util.c"
+                 (("\"/bin/sh\"")
+                  (string-append "\"" (assoc-ref inputs "bash") "/bin/sh\"")))))
+           (add-before 'check 'fix-failing-tests
+             (lambda _
+               ;; We don't have /etc/passwd so uid 0 is not known as "root".
+               ;; Thus patch it out.
+               (substitute* '("test/ext2test.0.dump"
+                              "test/ext3test.0.dump"
+                              "test/ext4test.0.dump"
+                              "test/ext2test-percent.0.dump"
+                              "test/mke2fs.0.dump")
+                 (("root") "unknown"))))
+           (add-before 'check 'setenv-check
+             (lambda _
+               ;; Our container doesn't provide access to /etc/mtab
+               (setenv "EXT2FS_NO_MTAB_OK" "1")
+               ;; Make test reproducible
+               (setenv "GENIMAGE_MKFJFFS2" "mkfs.jffs2 -U")
+               (setenv "GENIMAGE_MKE2FS" "mke2fs -E no_copy_xattrs")))
+           (replace 'check
+             (lambda _
+               (invoke "make" "TEST_LOG_COMPILER=" "check"))))))
+      (native-inputs
+       (list autoconf
+             automake
+             ;;; Note: cramfs is obsolete.
+             dtc ; for the tests
+             pkg-config
+             util-linux)) ; for the tests
+      (inputs
+       `(("bash" ,bash)
+         ("cdrkit-libre" ,cdrkit-libre)
+         ("cpio" ,cpio)
+         ;; Note: invoked by final executable.
+         ("coreutils" ,coreutils) ; chmod, dd
+         ("dosfstools" ,dosfstools)
+         ("e2fsprogs" ,e2fsprogs)
+         ("genext2fs" ,genext2fs)
+         ("libconfuse" ,libconfuse)
+         ("mtd-utils" ,mtd-utils)
+         ("mtools" ,mtools)
+         ("qemu" ,qemu-minimal)
+         ("squashfs-tools" ,squashfs-tools)
+         ("tar" ,tar)
+         ("u-boot-tools" ,u-boot-tools)))
+      (synopsis "Create Flash images according to specification")
+      (description "@command{genimage} creates Flash images according to a
 specification file.")
-    (home-page "https://github.com/pengutronix/genimage")
-    (license license:gpl2)))
+      (home-page "https://github.com/pengutronix/genimage")
+      (license license:gpl2))))
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 0be0703b82..547340f865 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
-;;; Copyright © 2018, 2019, 2020 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2018, 2019, 2020, 2021 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019, 2021 Wiktor Żelazny <wzelazny@vurv.cz>
@@ -17,6 +17,7 @@
 ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2021 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2021 Nikolay Korotkiy <sikmir@disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -59,8 +60,11 @@
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpp)
+  #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages datastructures)
@@ -75,6 +79,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gps)
+  #:use-module (gnu packages graphics)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages haskell-apps)
   #:use-module (gnu packages image)
@@ -84,6 +89,7 @@
   #:use-module (gnu packages kde)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
@@ -92,7 +98,9 @@
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
+  #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
@@ -161,10 +169,9 @@
        ("seed" ,seed)
        ("vala" ,vala)))
     (inputs
-     `(("expat" ,expat)
-       ("glib" ,glib)))
+     (list expat glib))
     (propagated-inputs
-     `(("cairo" ,cairo)))
+     (list cairo))
     (synopsis "Map-rendering for OpenSteetMap")
     (description "Memphis is a map-rendering application and a library for
 OpenStreetMap written in C using eXpat, Cairo and GLib.")
@@ -194,7 +201,7 @@ OpenStreetMap written in C using eXpat, Cairo and GLib.")
                         (("/bin/sh") (which "sh")))
                       #t)))))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (home-page "https://geos.osgeo.org/")
     (synopsis "Geometry Engine for Geographic Information Systems")
     (description
@@ -211,32 +218,32 @@ topology functions.")
 (define-public gnome-maps
   (package
     (name "gnome-maps")
-    (version "3.38.5")
+    (version "41.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1llgzm2ni3iy31dznqkc81vadv0fpqgpz2l9zzrj5jshvyq0akgh"))))
+                "037xmkmcmcw87vb1c1s3y225m8757k331cvk1m8cshf6mx61p0l1"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+       #:glib-or-gtk? #t
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
            ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "meson_post_install.py"
-               (("gtk-update-icon-cache") "true"))
-             #t))
+               (("gtk-update-icon-cache") "true"))))
          (add-after 'unpack 'patch-dbus-service
            (lambda* (#:key outputs #:allow-other-keys)
              (substitute* "data/org.gnome.Maps.service.in"
                (("@pkgdatadir@/org.gnome.Maps")
-                (string-append  (assoc-ref outputs "out") "/bin/gnome-maps")))
-             #t))
+                (string-append  (assoc-ref outputs "out")
+                                "/bin/gnome-maps")))))
          (add-after 'install 'wrap
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
@@ -274,11 +281,12 @@ topology functions.")
        ("folks" ,folks)
        ("libchamplain" ,libchamplain)
        ("libgee" ,libgee)
+       ("libhandy" ,libhandy)
        ("libsecret" ,libsecret)
-       ("libsoup" ,libsoup)
+       ("libsoup" ,libsoup-minimal-2)
        ("libgweather" ,libgweather)
        ("libxml2" ,libxml2)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("glib-networking" ,glib-networking)
        ("geoclue" ,geoclue)
        ("geocode-glib" ,geocode-glib)
@@ -289,7 +297,7 @@ topology functions.")
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gtk+" ,gtk+)
        ("rest" ,rest)
-       ("webkitgtk" ,webkitgtk)))
+       ("webkitgtk" ,webkitgtk-with-libsoup2)))
     (synopsis "Graphical map viewer and wayfinding program")
     (description "GNOME Maps is a graphical map viewer.  It uses map data from
 the OpenStreetMap project.  It can provide directions for walking, bicycling,
@@ -321,12 +329,10 @@ and driving.")
            #t))))
     (build-system gnu-build-system)
     (inputs
-     `(("libjpeg-turbo" ,libjpeg-turbo)
-       ("libtiff" ,libtiff)
-       ("zlib" ,zlib)))
+     (list libjpeg-turbo libtiff zlib))
     (propagated-inputs
-     `(;; libgeotiff headers include proj headers, so ensure those are available.
-       ("proj" ,proj)))
+     (list ;; libgeotiff headers include proj headers, so ensure those are available.
+           proj))
     (arguments
      `(#:configure-flags
        (list "--disable-static"
@@ -361,27 +367,27 @@ writing GeoTIFF information tags.")
          "1x24gqp4hsq97c31ncwxblab0x0863q8v1z42jil7lvsq3glqa7p"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("cairo" ,cairo)
-       ("curl" ,curl)
-       ("freetype" ,freetype)
-       ("freexl" ,freexl)
-       ("giflib" ,giflib)
-       ("libgeotiff" ,libgeotiff)
-       ("libjpeg-turbo" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("librttopo" ,librttopo)
-       ("libspatialite" ,libspatialite)
-       ("libtiff" ,libtiff)
-       ("libwebp" ,libwebp)
-       ("libxml2" ,libxml2)
-       ("lz4" ,lz4)
-       ("minizip" ,minizip)
-       ("openjpeg" ,openjpeg)
-       ("proj" ,proj)
-       ("sqlite" ,sqlite)
-       ("zstd" ,zstd "lib")))
+     (list cairo
+           curl
+           freetype
+           freexl
+           giflib
+           libgeotiff
+           libjpeg-turbo
+           libpng
+           librttopo
+           libspatialite
+           libtiff
+           libwebp
+           libxml2
+           lz4
+           minizip
+           openjpeg
+           proj
+           sqlite
+           `(,zstd "lib")))
     (synopsis "Library to work with huge raster coverages using a SpatiaLite")
     (description
      "librasterlite2 is a library that stores and retrieves huge raster
@@ -438,12 +444,9 @@ coverages using a SpatiaLite DBMS.")
                              (string-append "LIBTOOLIZE=" libtoolize "\n"))))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("geos" ,geos)))
+     (list geos))
     (synopsis "Library to handle SQL/MM topologies")
     (description
      "The RT Topology Library exposes an API to create and manage standard
@@ -465,15 +468,15 @@ coverages using a SpatiaLite DBMS.")
          "164y82rw2lrp5glfc0rkn7n6xvx5dvlgmh7bb7815067251wkjzf"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("freexl" ,freexl)
-       ("geos" ,geos)
-       ("librttopo" ,librttopo)
-       ("libxml2" ,libxml2)
-       ("minizip" ,minizip)
-       ("proj" ,proj)
-       ("sqlite" ,sqlite)))
+     (list freexl
+           geos
+           librttopo
+           libxml2
+           minizip
+           proj
+           sqlite))
     (arguments
      `(#:configure-flags
        '("--enable-rttopo=yes")
@@ -503,7 +506,7 @@ fully fledged Spatial SQL capabilities.")
 (define-public proj
   (package
     (name "proj")
-    (version "6.3.1")
+    (version "7.2.1")
     (source
      (origin
        (method url-fetch)
@@ -511,22 +514,24 @@ fully fledged Spatial SQL capabilities.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1y46ij32j9b4x1kjnnlykcwk3kkjwkg44sfc1ziwm3a3g0ki3q3d"))))
-    (build-system gnu-build-system)
+         "050apzdn0isxpsblys1shrl9ccli5vd32kgswlgx1imrbwpg915k"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags '("-DUSE_EXTERNAL_GTEST=ON")))
     (inputs
-     `(("sqlite" ,sqlite)))
+     (list curl libjpeg-turbo libtiff sqlite))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list googletest pkg-config))
     (home-page "https://proj.org/")
     (synopsis "Coordinate transformation software")
     (description
      "Proj is a generic coordinate transformation software that transforms
-geospatial coordinates from one coordinate reference system (CRS) to another.
-This includes cartographic projections as well as geodetic transformations.
-PROJ includes command line applications for easy conversion of coordinates
-from text files or directly from user input.  In addition, proj also exposes
-an application programming interface that lets developers use the
-functionality of proj in their own software.")
+geospatial coordinates from one @acronym{CRS, coordinate reference system}
+to another.  This includes cartographic projections as well as geodetic
+transformations.  Proj includes command line applications for easy
+conversion of coordinates from text files or directly from user input.
+In addition, Proj also exposes an application programming interface that
+lets developers use the functionality of Proj in their own software.")
     (license (list license:expat
                    ;; src/projections/patterson.cpp
                    license:asl2.0
@@ -567,7 +572,7 @@ functionality of proj in their own software.")
                (("\tPROJ_LIB.*" all) (string-append  "#" all)))
              #t)))))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (home-page "https://proj.org/")
     (synopsis "Cartographic Projections Library")
     (description
@@ -583,6 +588,138 @@ projections.")
                    ;; cmake/*
                    license:boost1.0))))
 
+(define-public python-pyproj
+  (package
+    (name "python-pyproj")
+    (version "3.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "pyproj" version))
+        (sha256
+          (base32
+            "0xrqpy708qlyd7nqjra0dl7nvkqzaj9w0v7wq4j5pxazha9n14sa"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-proj-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((proj (assoc-ref inputs "proj")))
+               (setenv "PROJ_DIR" proj)
+               (substitute* "pyproj/datadir.py"
+                 (("(internal_datadir = ).*$" all var)
+                  (string-append var "Path(\"" proj "/share/proj\")\n")))))))))
+    (inputs
+      (list proj))
+    (propagated-inputs
+      (list python-certifi))
+    (native-inputs
+      (list python-cython python-numpy python-pandas python-pytest
+            python-xarray))
+    (home-page "https://github.com/pyproj4/pyproj")
+    (synopsis
+      "Python interface to PROJ")
+    (description
+      "This package provides a Python interface to PROJ, a cartographic
+projections and coordinate transformations library.")
+    (license license:expat)))
+
+(define-public python-fiona
+  (package
+    (name "python-fiona")
+    (version "1.8.20")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "Fiona" version))
+        (sha256
+          (base32
+            "0fql7i7dg1xpbadmk8d26dwp91v7faixxc4wq14zg0kvhp9041d7"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'remove-local-fiona
+           (lambda _
+             ; This would otherwise interfere with finding the installed
+             ; fiona when running tests.
+             (delete-file-recursively "fiona")))
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (add-installed-pythonpath inputs outputs)
+             (when tests?
+               (invoke "pytest" "-m" "not network and not wheel")))))))
+    (inputs
+      (list gdal))
+    (propagated-inputs
+      (list python-attrs
+            python-certifi
+            python-click
+            python-click-plugins
+            python-cligj
+            python-munch
+            python-setuptools
+            python-six
+            python-pytz))
+    (native-inputs
+      (list gdal ; for gdal-config
+            python-boto3
+            python-cython
+            python-pytest
+            python-pytest-cov))
+    (home-page "https://github.com/Toblerity/Fiona")
+    (synopsis
+      "Fiona reads and writes spatial data files")
+    (description
+      "Fiona is GDAL’s neat and nimble vector API for Python programmers.
+Fiona is designed to be simple and dependable.  It focuses on reading
+and writing data in standard Python IO style and relies upon familiar
+Python types and protocols such as files, dictionaries, mappings, and
+iterators instead of classes specific to OGR.  Fiona can read and write
+real-world data using multi-layered GIS formats and zipped virtual file
+systems and integrates readily with other Python GIS packages such as
+pyproj, Rtree, and Shapely.")
+    (license license:bsd-3)))
+
+(define-public python-geopandas
+  (package
+    (name "python-geopandas")
+    (version "0.9.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "geopandas" version))
+        (sha256
+          (base32
+            "02k389zyyjv51gd09c92vlr83sv46awdq0066jgh5i24vjs2m5v3"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest"
+                       ; Disable test that fails with
+                       ; NotImplementedError in pandas.
+                       "-k" "not test_fillna_no_op_returns_copy"
+                       ; Disable tests that require internet access.
+                       "-m" "not web")))))))
+    (propagated-inputs
+      (list python-fiona python-pandas python-pyproj python-shapely))
+    (native-inputs
+      (list python-pytest))
+    (home-page "http://geopandas.org")
+    (synopsis "Geographic pandas extensions")
+    (description "The goal of GeoPandas is to make working with
+geospatial data in Python easier.  It combines the capabilities of
+Pandas and Shapely, providing geospatial operations in Pandas and a
+high-level interface to multiple geometries to Shapely.  GeoPandas
+enables you to easily do operations in Python that would otherwise
+require a spatial database such as PostGIS.")
+    (license license:bsd-3)))
+
 (define-public mapnik
   (package
     (name "mapnik")
@@ -597,21 +734,21 @@ projections.")
          "06frcikaj2mgz3abfk5h0z4j3hbksi0zikwjngbjv4p5f3pwxf8q"))))
     (build-system scons-build-system)
     (inputs
-     `(("boost" ,boost)
-       ("cairo" ,cairo)
-       ("freetype" ,freetype)
-       ("harfbuzz" ,harfbuzz)
-       ("icu4c" ,icu4c)
-       ("libjpeg-turbo" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libtiff" ,libtiff)
-       ("libwebp" ,libwebp)
-       ("libxml2" ,libxml2)
-       ("proj.4" ,proj.4)
-       ("sqlite" ,sqlite)
-       ("zlib" ,zlib)))
+     (list boost
+           cairo
+           freetype
+           harfbuzz
+           icu4c
+           libjpeg-turbo
+           libpng
+           libtiff
+           libwebp
+           libxml2
+           proj.4
+           sqlite
+           zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:scons ,scons-python2
        #:scons-flags
@@ -652,28 +789,28 @@ development.")
         (base32 "0cyv4cycl073p9lnnnglcb72qn71g8h9g5zn4gzw7swcy5nxjj5s"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("curl" ,curl)
-       ("freexl" ,freexl)
-       ("geos" ,geos)
-       ("giflib" ,giflib)
-       ("libjpeg-turbo" ,libjpeg-turbo)
-       ("librasterlite2" ,librasterlite2)
-       ("librttopo" ,librttopo)
-       ("libspatialite" ,libspatialite)
-       ("libwebp" ,libwebp)
-       ("libxlsxwriter" ,libxlsxwriter)
-       ("libxml2" ,libxml2)
-       ("lz4" ,lz4)
-       ("minizip" ,minizip)
-       ("openjpeg" ,openjpeg)
-       ("postgresql" ,postgresql)
-       ("proj" ,proj)
-       ("sqlite" ,sqlite)
-       ("virtualpg" ,virtualpg)
-       ("wxwidgets" ,wxwidgets)
-       ("zstd" ,zstd "lib")))
+     (list curl
+           freexl
+           geos
+           giflib
+           libjpeg-turbo
+           librasterlite2
+           librttopo
+           libspatialite
+           libwebp
+           libxlsxwriter
+           libxml2
+           lz4
+           minizip
+           openjpeg
+           postgresql
+           proj
+           sqlite
+           virtualpg
+           wxwidgets
+           `(,zstd "lib")))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-after 'unpack 'fix-gui
@@ -745,24 +882,24 @@ development.")
              (substitute* "frmts/mrf/mrf_band.cpp"
                (("\"../zlib/zlib.h\"") "<zlib.h>")))))))
     (inputs
-     `(("expat" ,expat)
-       ("freexl" ,freexl)
-       ("geos" ,geos)
-       ("giflib" ,giflib)
-       ("json-c" ,json-c)
-       ("libgeotiff" ,libgeotiff)
-       ("libjpeg-turbo" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libtiff" ,libtiff)
-       ("libwebp" ,libwebp)
-       ("netcdf" ,netcdf)
-       ("pcre" ,pcre)
-       ("postgresql" ,postgresql) ; libpq
-       ("proj" ,proj)
-       ("sqlite" ,sqlite)
-       ("zlib" ,zlib)))
+     (list expat
+           freexl
+           geos
+           giflib
+           json-c
+           libgeotiff
+           libjpeg-turbo
+           libpng
+           libtiff
+           libwebp
+           netcdf
+           pcre
+           postgresql ; libpq
+           proj
+           sqlite
+           zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://gdal.org/")
     (synopsis "Raster and vector geospatial data format library")
     (description "GDAL is a translator library for raster and vector geospatial
@@ -805,9 +942,9 @@ utilities for data translation and processing.")
              #t)))))
     (native-inputs '())
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (inputs
-     `(("gdal" ,gdal)))
+     (list gdal))
     (synopsis "GDAL (Geospatial Data Abstraction Library) python bindings")))
 
 (define-public python-pyshp
@@ -833,8 +970,7 @@ utilities for data translation and processing.")
                ;; This is the only test file.
                (invoke "python" "-m" "pytest" "test_shapefile.py")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest python-pytest-runner))
     (home-page "https://github.com/GeospatialPython/pyshp")
     (synopsis "Read/write support for ESRI Shapefile format")
     (description
@@ -866,19 +1002,16 @@ utilities for data translation and processing.")
                        ;; This one too but it's not marked as such.
                        "-k" "not test_gridliner_labels_bbox_style")))))))
     (propagated-inputs
-     `(("python-matplotlib" ,python-matplotlib)
-       ("python-numpy" ,python-numpy)
-       ("python-pykdtree" ,python-pykdtree)
-       ("python-pyshp" ,python-pyshp)
-       ("python-scipy" ,python-scipy)
-       ("python-shapely" ,python-shapely)))
+     (list python-matplotlib
+           python-numpy
+           python-pykdtree
+           python-pyshp
+           python-scipy
+           python-shapely))
     (inputs
-     `(("geos" ,geos)
-       ("proj" ,proj)))
+     (list geos proj))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-flufl-lock" ,python-flufl-lock)
-       ("python-pytest" ,python-pytest)))
+     (list python-cython python-flufl-lock python-pytest))
     (home-page "https://scitools.org.uk/cartopy/docs/latest/")
     (synopsis "Cartographic library for visualisation")
     (description
@@ -935,8 +1068,7 @@ Shapely capabilities
        ("protobuf-c" ,protobuf-c)
        ("proj" ,proj)))
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list perl pkg-config))
     (home-page "https://postgis.net")
     (synopsis "Spatial database extender for PostgreSQL")
     (description "PostGIS is a spatial database extender for PostgreSQL
@@ -997,7 +1129,7 @@ delivered to any client.")
 (define-public imposm3
   (package
     (name "imposm3")
-    (version "0.6.0-alpha.4")
+    (version "0.11.1")
     (source
       (origin
         (method url-fetch)
@@ -1006,7 +1138,7 @@ delivered to any client.")
     (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "06f0kwmv52yd5m9jlckqxqmkf0cnqy3hamakrvg9lspplyqrds80"))))
+          "1w7b221z5k9254zn01imycxkyw62xigqizhwvrgxqmq1m9r5410l"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/omniscale/imposm3/cmd/imposm"
@@ -1019,8 +1151,7 @@ delivered to any client.")
                (("0.0.0-dev") ,version))
              #t)))))
     (inputs
-     `(("geos" ,geos)
-       ("leveldb" ,leveldb)))
+     (list geos leveldb))
     (home-page "https://imposm.org/")
     (synopsis "OpenStreetMap importer for PostGIS")
     (description "Imposm is an importer for OpenStreetMap data.  It reads PBF
@@ -1036,7 +1167,7 @@ to create databases that are optimized for rendering/tile/map-services.")
 (define-public libosmium
   (package
     (name "libosmium")
-    (version "2.15.6")
+    (version "2.17.2")
     (source
      (origin
        (method git-fetch)
@@ -1045,21 +1176,22 @@ to create databases that are optimized for rendering/tile/map-services.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0rqy18bbakp41f44y5id9ixh0ar2dby46z17p4115z8k1vv9znq2"))))
+        (base32 "0xgwicnzlyr8pcpgx528xrzh7g6rjfd7f80bi30478fnp8mq8rzr"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("boost" ,boost)
-       ("bzip2" ,bzip2)
-       ("expat" ,expat)
-       ("gdal" ,gdal)
-       ("geos" ,geos)
-       ("proj" ,proj)
-       ("protozero" ,protozero)
-       ("sparsehash" ,sparsehash)
-       ("utfcpp" ,utfcpp)
-       ("zlib" ,zlib)))
+     (list boost
+           bzip2
+           expat
+           gdal
+           geos
+           lz4
+           proj
+           protozero
+           sparsehash
+           utfcpp
+           zlib))
     (native-inputs
-     `(("doxygen" ,doxygen)))
+     (list doxygen))
     (home-page "https://osmcode.org/libosmium/")
     (synopsis "C++ library for working with OpenStreetMap data")
     (description "Libosmium is a fast and flexible C++ library for working with
@@ -1069,7 +1201,7 @@ OpenStreetMap data.")
 (define-public osm2pgsql
   (package
     (name "osm2pgsql")
-    (version "1.2.2")
+    (version "1.5.1")
     (source
      (origin
        (method git-fetch)
@@ -1078,7 +1210,7 @@ OpenStreetMap data.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1j35aa8qinhavliqi5pdm0viyi7lm5xyk402rliaxxs1r2hbsafn"))
+        (base32 "0i18mskcs087dn3f3h9n7j0wafn8502m0h13mrjwin38xsz0crfj"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -1096,18 +1228,17 @@ OpenStreetMap data.")
                             (assoc-ref %build-inputs "protozero")
                             "/include"))))
     (inputs
-     `(("boost" ,boost)
-       ("bzip2" ,bzip2)
-       ("expat" ,expat)
-       ("libosmium" ,libosmium)
-       ("lua" ,lua)
-       ("postgresql" ,postgresql)
-       ("proj" ,proj)
-       ("protozero" ,protozero)
-       ("zlib" ,zlib)))
+     (list boost
+           bzip2
+           expat
+           libosmium
+           lua
+           postgresql
+           proj
+           protozero
+           zlib))
     (native-inputs
-     `(("python" ,python)
-       ("python-psycopg2" ,python-psycopg2)))
+     (list python python-psycopg2))
     (home-page "https://github.com/openstreetmap/osm2pgsql")
     (synopsis "OSM data importer to postgresql")
     (description "Osm2pgsql is a tool for loading OpenStreetMap data into a
@@ -1137,9 +1268,7 @@ map, geocoding with Nominatim, or general analysis.")
        (list (string-append "CC=" ,(cc-for-target))
              (string-append "PREFIX=" (assoc-ref %outputs "out")))))
     (inputs
-     `(("perl" ,perl)
-       ("sqlite" ,sqlite)
-       ("zlib" ,zlib)))
+     (list perl sqlite zlib))
     (home-page "https://github.com/mapbox/tippecanoe")
     (synopsis "Vector tile server for maps")
     (description "Tippecanoe creates scale-independent view of data, so that
@@ -1163,10 +1292,9 @@ dropping features at lower levels.")
          "1m8d3r1q1v05pkr8k9czrmb4xjszw6hvgsf3kn9pf0v14gpn4r8f"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://gitlab.com/osm-c-tools/osmctools")
     (synopsis "Tools to convert, filter and update OpenStreetMap data files")
     (description "This project contains a few tools which are used in the
@@ -1189,15 +1317,9 @@ OpenStreetMap data files.")
          "11imsf4cz1dpxdjh178k2s29axmq86rkfg1pqmn7incyxmjzhbwg"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gnome-common" ,gnome-common)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("pkg-config" ,pkg-config)))
+     (list gnome-common gtk-doc/stable pkg-config))
     (inputs
-     `(("cairo" ,cairo)
-       ("glib" ,glib)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk+" ,gtk+)
-       ("libsoup" ,libsoup)))
+     (list cairo glib gobject-introspection gtk+ libsoup-minimal-2))
     (home-page "https://nzjrs.github.io/osm-gps-map/")
     (synopsis "GTK+ widget for displaying OpenStreetMap tiles")
     (description
@@ -1252,16 +1374,16 @@ map display.  Downloads map data from a number of websites, including
                   (string-append "\"" font "/share/fonts/\"")))))))
        #:tests? #f)) ; no tests
     (native-inputs
-     `(("qttools" ,qttools)))
+     (list qttools))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("font-liberation" ,font-liberation)
-       ("libnova" ,libnova)
-       ("libpng" ,libpng)
-       ("openjpeg" ,openjpeg)
-       ("proj.4" ,proj.4)
-       ("qtbase" ,qtbase-5)
-       ("zlib" ,zlib)))
+     (list bzip2
+           font-liberation
+           libnova
+           libpng
+           openjpeg
+           proj
+           qtbase-5
+           zlib))
     (native-search-paths
      (list (search-path-specification
             (variable "XDG_DATA_DIRS")
@@ -1313,6 +1435,40 @@ persisted.
 ")
     (license license:expat)))
 
+(define-public python-rtree
+  (package
+    (name "python-rtree")
+    (version "0.9.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Rtree" version))
+       (sha256
+        (base32 "0gna530vy6rh76035cqh7i2lx199cvxjrzjczg9rm6k96k5751xy"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'find-libspatialindex
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "SPATIALINDEX_C_LIBRARY"
+                     (string-append (assoc-ref inputs "libspatialindex")
+                                    "/lib/libspatialindex.so"))))
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest")))))))
+    (native-inputs
+     (list python-numpy python-pytest python-wheel))
+    (inputs
+     (list libspatialindex))
+    (home-page "https://github.com/Toblerity/rtree")
+    (synopsis "R-Tree spatial index for Python GIS")
+    (description
+     "RTree is a Python package with bindings for @code{libspatialindex}.")
+    (license license:expat)))
+
 (define-public java-jmapviewer
   (package
     (name "java-jmapviewer")
@@ -1327,7 +1483,7 @@ persisted.
                 "0sy6r5fkbb9bclw0is6gwnbzz627m7pjfnsqydxz58pbndakkhrv"))))
     (build-system ant-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (arguments
      `(#:build-target "pack"
        #:tests? #f; No tests
@@ -1383,11 +1539,9 @@ an independent project by the JOSM team.")
                        file))
              #t)))))
     (inputs
-     `(("java-jetbrains-annotations" ,java-jetbrains-annotations)))
+     (list java-jetbrains-annotations))
     (native-inputs
-     `(("javacc" ,javacc)
-       ("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list javacc java-junit java-hamcrest-core))
     (home-page "https://github.com/simonpoole/OpeningHoursParser")
     (synopsis "Java parser for the OpenStreetMap opening hour format")
     (description "This is a very simplistic parser for string values according
@@ -1397,7 +1551,7 @@ to the OSM opening hours specification.")
 (define-public josm
   (package
     (name "josm")
-    (version "18193")
+    (version "18303")
     (source (origin
               (method svn-fetch)
               (uri (svn-reference
@@ -1406,7 +1560,7 @@ to the OSM opening hours specification.")
                      (recursive? #f)))
               (sha256
                (base32
-                "162hdck29bkag1d97nisx8v7395pdw00bl7nf0p02hr30fc1fcrh"))
+                "1bn3s4lkxx0nlh8ax42qcwn6kn53a5i3qzr47mrvsmcp6hdrnxwx"))
               (file-name (string-append name "-" version "-checkout"))
               (modules '((guix build utils)))
             (snippet
@@ -1415,19 +1569,19 @@ to the OSM opening hours specification.")
                 #t))))
     (build-system ant-build-system)
     (native-inputs
-     `(("javacc" ,javacc)))
+     (list javacc))
     (inputs
-     `(("java-commons-jcs" ,java-commons-jcs)
-       ("java-commons-compress" ,java-commons-compress)
-       ("java-jmapviewer" ,java-jmapviewer)
-       ("java-jsonp-api" ,java-jsonp-api)
-       ("java-jsonp-impl" ,java-jsonp-impl); runtime dependency
-       ("java-jsr305" ,java-jsr305)
-       ("java-metadata-extractor" ,java-metadata-extractor)
-       ("java-opening-hours-parser" ,java-opening-hours-parser)
-       ("java-openjfx-media" ,java-openjfx-media)
-       ("java-signpost-core" ,java-signpost-core)
-       ("java-svg-salamander" ,java-svg-salamander)))
+     (list java-commons-jcs
+           java-commons-compress
+           java-jmapviewer
+           java-jsonp-api
+           java-jsonp-impl ; runtime dependency
+           java-jsr305
+           java-metadata-extractor
+           java-opening-hours-parser
+           java-openjfx-media
+           java-signpost-core
+           java-svg-salamander))
     (arguments
      `(#:tests? #f
        #:jar-name "josm.jar"
@@ -1514,14 +1668,17 @@ to the OSM opening hours specification.")
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out               (assoc-ref outputs "out"))
                    (share-directories '("applications" "icons" "man" "menu"
-                                        "metainfo" "mime" "pixmaps")))
+                                        "metainfo" "mime" "pixmaps"))
+                   (desktop "org.openstreetmap.josm.desktop"))
                (for-each (lambda (directory)
                            (copy-recursively (string-append
                                               "native/linux/tested/usr/share/"
                                               directory)
                                              (string-append
                                               out "/share/" directory)))
-                         share-directories))
+                         share-directories)
+               (substitute* (string-append out "/share/applications/" desktop)
+                 (("josm-MainApplication") "josm-gui-MainApplication")))
              #t))
          (add-after 'install 'install-bin
            (lambda* (#:key outputs inputs #:allow-other-keys)
@@ -1563,7 +1720,7 @@ ways, and relations) and their metadata tags.")
      `(#:make-flags
        (list ,(string-append "CC=" (cc-for-target)))))
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "https://maxmind.github.io/libmaxminddb/")
     (synopsis "C library for the MaxMind DB file format")
     (description "The libmaxminddb library provides a C library for reading
@@ -1588,7 +1745,7 @@ associated with an address.")
     (arguments
      `(#:tests? #f)) ;; Tests require a copy of the maxmind database
     (inputs
-     `(("libmaxminddb" ,libmaxminddb)))
+     (list libmaxminddb))
     (home-page "https://www.maxmind.com/")
     (synopsis "Reader for the MaxMind DB format")
     (description "MaxMind DB is a binary file format that stores data indexed
@@ -1611,8 +1768,7 @@ MaxMind DB files.")
     (arguments
      `(#:tests? #f)) ;; Tests require a copy of the maxmind database
     (inputs
-     `(("python-maxminddb" ,python-maxminddb)
-       ("python-requests" ,python-requests)))
+     (list python-maxminddb python-requests))
     (home-page "https://www.maxmind.com/")
     (synopsis "MaxMind GeoIP2 API")
     (description "Provides an API for the GeoIP2 web services and databases.
@@ -1632,11 +1788,9 @@ The API also works with MaxMind’s free GeoLite2 databases.")
       (base32 "1xa7l2bjn832nk6bc7b481nv8hd2gj41jwhg0d2qy10lqdvjpn5b"))))
    (build-system gnu-build-system)
    (native-inputs
-    `(("perl" ,perl)))
+    (list perl))
    (inputs
-    `(("bzip2" ,bzip2)
-      ("xz" ,xz)
-      ("zlib" ,zlib)))
+    (list bzip2 xz zlib))
    (arguments
     `(#:test-target "test"
       #:phases
@@ -1676,21 +1830,20 @@ using the dataset of topographical information collected by
         (base32 "1l1j2axf94pdqwirwwhwy3y6k8v1aix78ifqbv6j8sv131h2j7y7"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (inputs
-     `(("gdal" ,gdal)
-       ("libjpeg-turbo" ,libjpeg-turbo)
-       ("proj" ,proj)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtlocation" ,qtlocation)
-       ("qtwebchannel" ,qtwebchannel)
-       ("qtwebengine" ,qtwebengine)
-       ("quazip" ,quazip)
-       ("routino" ,routino)
-       ("sqlite" ,sqlite)                      ; See wrap phase
-       ("zlib" ,zlib)))
+     (list gdal
+           libjpeg-turbo
+           proj
+           qtbase-5
+           qtdeclarative
+           qtlocation
+           qtwebchannel
+           qtwebengine
+           quazip-0
+           routino
+           sqlite ; See wrap phase
+           zlib))
     (arguments
      `(#:tests? #f
        #:phases
@@ -1729,8 +1882,7 @@ QLandkarte GT application.")
         (base32 "0igif2bxf4dr82glxz9gyx5mmni0r2dsnx9p9k6pxv3c4lfhaz6v"))))
     (build-system gnu-build-system)
     (inputs
-     `(("expat" ,expat)
-       ("zlib" ,zlib)))
+     (list expat zlib))
     (synopsis "Data extractor for OpenStreetMap files")
     (description
      "ReadOSM is a library to extract valid data from within an OpenStreetMap
@@ -1755,9 +1907,7 @@ input file (in @code{.osm} or @code{.osm.pbf} format).")
         (base32 "1lzch0jf6yqhw391phhafzw4ghmiz98zkf698h4fmq109fa2vhqd"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (home-page "http://shapelib.maptools.org/")
     (synopsis "Provides C library to write and update ESRI Shapefiles")
     (description
@@ -1779,18 +1929,18 @@ associated attribute file (@file{.dbf}).")
         (base32 "070p6pg541wvwb28wkn7k0z1qdyirik2qc2jpj4pf0vzx02w414n"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("expat" ,expat)
-       ("freexl" ,freexl)
-       ("geos" ,geos)
-       ("librttopo" ,librttopo)
-       ("libspatialite" ,libspatialite)
-       ("libxml2" ,libxml2)
-       ("minizip" ,minizip)
-       ("proj" ,proj)
-       ("readosm" ,readosm)
-       ("sqlite" ,sqlite)))
+     (list expat
+           freexl
+           geos
+           librttopo
+           libspatialite
+           libxml2
+           minizip
+           proj
+           readosm
+           sqlite))
     (synopsis "Collection of command line tools for SpatiaLite")
     (description
      "@code{spatialite-tools} is a collection of Command Line Interface (CLI)
@@ -1811,8 +1961,7 @@ tools supporting SpatiaLite.")
         (base32 "12z0l7368r4116ljzg7nljy5hf425r11vxc540w79wlzikmynamy"))))
     (build-system gnu-build-system)
     (inputs
-     `(("postgresql" ,postgresql)
-       ("sqlite" ,sqlite)))
+     (list postgresql sqlite))
     (synopsis "Allow SQLite/SpatiaLite to access PostgreSQL/PostGIS tables")
     (description
      "VirtualPG is a dynamic extension for the SQLite DBMS.  It implements
@@ -1827,7 +1976,7 @@ exchanged form one Spatial DBMS and the other.")
 (define-public opencpn
   (package
     (name "opencpn")
-    (version "5.0.0")
+    (version "5.2.4")
     (source
      (origin
        (method git-fetch)
@@ -1836,46 +1985,49 @@ exchanged form one Spatial DBMS and the other.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1xv3h6svw9aay5ixpql231md3pf00qxvhg62z88daraf18hlkfja"))))
+        (base32 "0ffx0lmz1mp5433zqyxigy4qqav32xprpagd66krvihkyvqp2y6y"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("cairo" ,cairo)
-       ("curl" ,curl)
-       ("glu" ,glu)
-       ("gtk+" ,gtk+)
-       ("libarchive" ,libarchive)
-       ("libelf" ,libelf)
-       ("libexif" ,libexif)
-       ("libsndfile" ,libsndfile)
-       ("lz4" ,lz4)
-       ("mesa" ,mesa)
-       ("pango" ,pango)
-       ("portaudio" ,portaudio)
-       ("sqlite" ,sqlite)
-       ("tinyxml" ,tinyxml)
-       ("wxsvg" ,wxsvg)
-       ("wxwidgets" ,wxwidgets)
-       ("xz" ,xz)
-       ("zlib" ,zlib)))
+     (list bzip2
+           cairo
+           curl
+           glu
+           gtk+
+           libarchive
+           libelf
+           libexif
+           libsndfile
+           lz4
+           mesa
+           pango
+           portaudio
+           sqlite
+           tinyxml
+           wxsvg
+           wxwidgets
+           xz
+           zlib))
     (arguments
-     `(#:configure-flags '("-DENABLE_PORTAUDIO=ON"
-                           "-DENABLE_SNDFILE=ON"
-                           "-DBUNDLE_TCDATA=ON"
-                           "-DBUNDLE_GSHHS=CRUDE"
-                           "-DCMAKE_C_FLAGS=-fcommon")
+     `(#:configure-flags '("-DOCPN_USE_BUNDLED_LIBS=OFF"
+                           "-DOCPN_ENABLE_PORTAUDIO=ON"
+                           "-DOCPN_ENABLE_SNDFILE=ON"
+                           "-DOCPN_BUNDLE_TCDATA=ON"
+                           "-DOCPN_BUNDLE_GSHHS=ON")
        #:tests? #f ; No tests defined
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-build
-           (lambda _
+           (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "CMakeLists.txt"
-               (("set\\(wxWidgets_CONFIG_OPTIONS.*--toolkit=gtk3" all)
-                (string-append all " --libs all")))
-             #t)))))
+               (("wx-32.c; cc")
+                 "wx-32.c; gcc")
+               (("\"/bin/sh\" \"-c\"")
+                (string-append "\"" (which "bash") "\" \"-c\""))
+               (("include\\(TargetSetup\\)")
+                "set(PKG_TARGET \"guix\")\nset(PKG_TARGET_VERSION 1)")))))))
     (synopsis "Chart plotter and marine GPS navigation software")
     (description
      "OpenCPN is a chart plotter and marine navigation software designed to be
@@ -1893,6 +2045,46 @@ track your position right from your laptop.")
                    license:sgifreeb2.0
                    license:zlib))))
 
+(define-public openorienteering-mapper
+  (package
+    (name "openorienteering-mapper")
+    (version "0.9.5")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/OpenOrienteering/mapper")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "11b578h8f3q9yvphbjhqmy2w1cfc9skslzawypqmc3k44v24aj0s"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f
+       #:configure-flags
+       (list
+        "-DLICENSING_PROVIDER:BOOL=OFF"
+        "-DMapper_MANUAL_QTHELP:BOOL=OFF")))
+    (inputs
+     `(("clipper" ,clipper)
+       ("cups" ,cups)
+       ("gdal" ,gdal)
+       ("proj" ,proj)
+       ("qtbase" ,qtbase-5)
+       ("qtimageformats" ,qtimageformats)
+       ("qtlocation" ,qtlocation)
+       ("qtsensors" ,qtsensors)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("qttools" ,qttools)))
+    (home-page "https://www.openorienteering.org/apps/mapper/")
+    (synopsis "OpenOrienteering Mapper (OOM)")
+    (description
+     "OpenOrienteering Mapper is a software for creating maps for the
+orienteering sport.")
+    (license license:gpl3+)))
+
 (define-public grass
   (let* ((version "7.8.5")
          (majorminor (string-join (list-head (string-split version #\.) 2) ""))
@@ -1926,7 +2118,7 @@ track your position right from your laptop.")
          ("openblas" ,openblas)
          ("perl" ,perl)
          ("postgresql" ,postgresql)
-         ("proj.4" ,proj.4)
+         ("proj" ,proj)
          ("python" ,python)
          ("python-dateutil" ,python-dateutil)
          ("python-numpy" ,python-numpy)
@@ -1981,7 +2173,7 @@ track your position right from your laptop.")
                        "--with-netcdf"
                        "--with-postgres"
                        (string-append "--with-proj-share="
-                                      (assoc-ref inputs "proj.4")
+                                      (assoc-ref inputs "proj")
                                       "/share/proj")
                        "--with-pthread"
                        "--with-readline"
@@ -2028,24 +2220,23 @@ visualization.")
         (base32 "1n051yxxkylly0k9rlkx2ih3j2lf9d4csg00sm7161r7nhjvggd1"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("swig" ,swig)))
+     (list pkg-config swig))
     (inputs
-     `(("curl" ,curl)
-       ("fftw" ,fftw)
-       ("gdal" ,gdal)
-       ("hdf5" ,hdf5)
-       ("jasper" ,jasper)
-       ("libharu" ,libharu)
-       ("libtiff" ,libtiff)
-       ("opencv" ,opencv)
-       ("postgresql" ,postgresql)
-       ("proj" ,proj)
-       ("python" ,python)
-       ("qhull" ,qhull)
-       ("unixodbc" ,unixodbc)
-       ("vigra" ,vigra)
-       ("wxwidgets" ,wxwidgets)))
+     (list curl
+           fftw
+           gdal
+           hdf5
+           jasper
+           libharu
+           libtiff
+           opencv
+           postgresql
+           proj
+           python
+           qhull
+           unixodbc
+           vigra
+           wxwidgets))
     (arguments
      '(#:configure-flags '("--enable-python")))
     (synopsis "System for Automated Geoscientific Analyses")
@@ -2252,62 +2443,62 @@ growing set of geoscientific methods.")
                  `("GISBASE" = (,grass))))
              #t)))))
     (inputs
-     `(("exiv2" ,exiv2)
-       ("expat" ,expat)
-       ("gdal" ,gdal)
-       ("geos" ,geos)
-       ("gpsbabel" ,gpsbabel)
-       ("grass" ,grass)
-       ("gsl" ,gsl)
-       ("hdf5" ,hdf5)
-       ("libspatialindex" ,libspatialindex)
-       ("libspatialite" ,libspatialite)
-       ("libxml2" ,libxml2)
-       ("libzip" ,libzip)
-       ("netcdf" ,netcdf)
-       ("postgresql" ,postgresql)
-       ("proj" ,proj)
-       ("protobuf" ,protobuf)
-       ("python" ,python)
-       ("python-chardet" ,python-chardet)
-       ("python-dateutil" ,python-dateutil)
-       ("python-future" ,python-future)
-       ("python-gdal" ,python-gdal)
-       ("python-jinja2" ,python-jinja2)
-       ("python-numpy" ,python-numpy)
-       ("python-owslib" ,python-owslib)
-       ("python-psycopg2" ,python-psycopg2)
-       ("python-pygments" ,python-pygments)
-       ("python-pyqt+qscintilla" ,python-pyqt+qscintilla)
-       ("python-pytz" ,python-pytz)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-requests" ,python-requests)
-       ("python-sip" ,python-sip)
-       ("python-six" ,python-six)
-       ("python-urllib3" ,python-urllib3)
-       ("qca" ,qca)
-       ("qscintilla" ,qscintilla)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtkeychain" ,qtkeychain)
-       ("qtlocation" ,qtlocation)
-       ("qtserialport" ,qtserialport)
-       ("qtsvg" ,qtsvg)
-       ("qtwebkit" ,qtwebkit)
-       ("qwt" ,qwt)
-       ;;("saga" ,saga)
-       ("sqlite" ,sqlite)))
+     (list exiv2
+           expat
+           gdal
+           geos
+           gpsbabel
+           grass
+           gsl
+           hdf5
+           libspatialindex
+           libspatialite
+           libxml2
+           libzip
+           netcdf
+           postgresql
+           proj
+           protobuf
+           python
+           python-chardet
+           python-dateutil
+           python-future
+           python-gdal
+           python-jinja2
+           python-numpy
+           python-owslib
+           python-psycopg2
+           python-pygments
+           python-pyqt+qscintilla
+           python-pytz
+           python-pyyaml
+           python-requests
+           python-sip
+           python-six
+           python-urllib3
+           qca
+           qscintilla
+           qtbase-5
+           qtdeclarative
+           qtkeychain
+           qtlocation
+           qtserialport
+           qtsvg
+           qtwebkit
+           qwt
+           ;;("saga" ,saga)
+           sqlite))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("perl" ,perl)
-       ("perl-yaml-tiny" ,perl-yaml-tiny)
-       ("pkg-config" ,pkg-config)
-       ("python-mock" ,python-mock)
-       ("python-nose2" ,python-nose2)
-       ("qttools" ,qttools)
-       ("shellcheck" ,shellcheck)
-       ("xorg-server" ,xorg-server-for-tests)))
+     (list bison
+           flex
+           perl
+           perl-yaml-tiny
+           pkg-config
+           python-mock
+           python-nose2
+           qttools
+           shellcheck
+           xorg-server-for-tests))
     (home-page "https://qgis.org")
     (synopsis "Geographical information system")
     (description "QGIS is an easy to use Geographical Information
@@ -2384,16 +2575,16 @@ architecture.")
           "0fx0cv0kgbvynpmjgsvq2fpsyngd5idiscdn8pd5201f1ngii3mq"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-geographiclib" ,python-geographiclib)))
+     (list python-geographiclib))
     (native-inputs
-     `(("python-async-generator" ,python-async-generator)
-       ("python-coverage" ,python-coverage)
-       ("python-flake8" ,python-flake8)
-       ("python-isort" ,python-isort)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-aiohttp" ,python-pytest-aiohttp)
-       ("python-readme-renderer" ,python-readme-renderer)
-       ("python-pytz" ,python-pytz)))
+     (list python-async-generator
+           python-coverage
+           python-flake8
+           python-isort
+           python-pytest
+           python-pytest-aiohttp
+           python-readme-renderer
+           python-pytz))
     (home-page "https://github.com/geopy/geopy")
     (synopsis "Geocoding library for Python")
     (description "@code{geopy} is a Python client for several popular geocoding
@@ -2402,42 +2593,41 @@ coordinates of addresses, cities, countries, and landmarks across the globe
 using third-party geocoders and other data sources.")
     (license license:expat)))
 
-(define-public marble-qt
-  (let ((release "17.08")
-        (commit "fc7166eeef784732033c999ba605364f9c82d21c")
-        (revision "1"))
-    (package
-      (name "marble-qt")
-      (version (git-version release revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://invent.kde.org/education/marble.git/")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0m0sf3sddaib7vc5lhbmh7ziw07p1hahg02f65sgfylyl5f5kj92"))
-         (patches (search-patches
-                   "marble-qt-add-qt-headers.patch"))))
-      (build-system cmake-build-system)
-      (arguments
-       `(#:tests? #f ; libmarblewidget-qt5.so.28 not found
-         #:configure-flags
-         '("-DCMAKE_BUILD_TYPE=Release"
-           "-DWITH_KF5=FALSE")))
-      (native-inputs
-       `(("qttools" ,qttools)))
-      (inputs
-       `(("qtbase" ,qtbase-5)
-         ("qtsvg" ,qtsvg)
-         ("qtdeclarative" ,qtdeclarative)
-         ("qtwebkit" ,qtwebkit)
-         ("qtlocation" ,qtlocation)))
-      (home-page "https://marble.kde.org/")
-      (synopsis "Virtual globe and world atlas")
-      (description "Marble is similar to a desktop globe.  At closer scale it
-becomes a world atlas, while OpenStreetMap takes the user to street level.  It
-supports searching for places of interest, viewing Wikipedia articles,
-creating routes by drag and drop and more.")
-      (license license:gpl3))))
+(define-public gplates
+  (package
+    (name "gplates")
+    (version "2.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri "https://www.earthbyte.org/download/8421/")
+              (file-name (string-append name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0lrcmcxc924ixddii8cyglqlwwxvk7f00g4yzbss5i3fgcbh8n96"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags (list "-DBoost_NO_BOOST_CMAKE=ON")
+       #:tests? #f)) ;no test target
+    (inputs
+     `(("boost" ,boost)
+       ("cgal" ,cgal)
+       ("gdal" ,gdal)
+       ("glew" ,glew)
+       ("glu" ,glu)
+       ("gmp" ,gmp)
+       ("mesa" ,mesa)
+       ("mpfr" ,mpfr)
+       ("proj" ,proj)
+       ("python-3" ,python-3)
+       ("python-numpy" ,python-numpy)
+       ("qt" ,qtbase-5)
+       ("qtsvg" ,qtsvg)
+       ("qtxmlpatterns" ,qtxmlpatterns)
+       ("qwt" ,qwt)
+       ("zlib" ,zlib)))
+    (home-page "https://www.gplates.org")
+    (synopsis "Plate tectonics simulation program")
+    (description "GPlates is a plate tectonics program.  Manipulate
+reconstructions of geological and paleogeographic features through geological
+time.  Interactively visualize vector, raster and volume data.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm
index a71af5bbe3..e20d4d1427 100644
--- a/gnu/packages/gettext.scm
+++ b/gnu/packages/gettext.scm
@@ -64,13 +64,12 @@
     (outputs '("out"
                "doc"))                            ;9 MiB of HTML
     (inputs
-     `(("libunistring" ,libunistring)
-       ("libxml2" ,libxml2)
-
-       ;; TODO: ncurses is only needed for the 'libtextstyle' library.
-       ;; The next version of gettext can use a separate libtextstyle,
-       ;; but for now we include it here in 'gettext-minimal'.
-       ("ncurses" ,ncurses)))
+     (list libunistring
+           libxml2
+           ;; TODO: ncurses is only needed for the 'libtextstyle' library.
+           ;; The next version of gettext can use a separate libtextstyle,
+           ;; but for now we include it here in 'gettext-minimal'.
+           ncurses))
     (arguments
      `(#:configure-flags '("--with-included-libunistring=no"
                            "--with-included-libxml=no")
@@ -199,22 +198,21 @@ color, font attributes (weight, posture), or underlining.")
         (base32 "0kgbm0af7jwpfspa2xxiy9nc2l1r2s1rhbhz4r229zcqv49ak6sq"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-bump2version" ,python-bump2version)
-       ("python-flake8" ,python-flake8)
-       ("python-flake8-implicit-str-concat" ,python-flake8-implicit-str-concat)
-       ("python-flake8-print" ,python-flake8-print)
-       ("python-isort" ,python-isort)
-       ("python-pre-commit" ,python-pre-commit)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-sphinx" ,python-sphinx)
-       ("python-sphinx-argparse" ,python-sphinx-argparse)
-       ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
-       ("python-twine" ,python-twine)
-       ("python-yamllint" ,python-yamllint)))
+     (list python-bump2version
+           python-flake8
+           python-flake8-implicit-str-concat
+           python-flake8-print
+           python-isort
+           python-pre-commit
+           python-pytest
+           python-pytest-cov
+           python-sphinx
+           python-sphinx-argparse
+           python-sphinx-rtd-theme
+           python-twine
+           python-yamllint))
     (propagated-inputs
-     `(("python-polib" ,python-polib)
-       ("python-pymd4c" ,python-pymd4c)))
+     (list python-polib python-pymd4c))
     (home-page "https://github.com/mondeja/mdpo")
     (synopsis "Markdown file translation utilities using pofiles")
     (description
@@ -296,7 +294,7 @@ from Markdown files.")
        ("perl-yaml-tiny" ,perl-yaml-tiny)
        ("texlive" ,texlive-tiny)))
     (inputs
-     `(("perl-pod-parser" ,perl-pod-parser)))
+     (list perl-pod-parser))
     (home-page "https://po4a.org/")
     (synopsis "Scripts to ease maintenance of translations")
     (description
diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm
index 35e637648c..ca522e52ab 100644
--- a/gnu/packages/ghostscript.scm
+++ b/gnu/packages/ghostscript.scm
@@ -88,7 +88,7 @@ Consortium standard (ICC), approved as ISO 15076-1.")
                      "0zhcx67afb6b5r936w5jmaydj3ks8zh83n9rm5sv3m3k8q8jib1q"))))
    (build-system gnu-build-system)
    (native-inputs
-    `(("automake" ,automake))) ; For up to date 'config.guess' and 'config.sub'.
+    (list automake)) ; For up to date 'config.guess' and 'config.sub'.
    (arguments
     `(#:configure-flags '("--disable-static")
       #:phases
@@ -124,7 +124,7 @@ paper size.")
             (sha256 (base32
                      "1r4ab1fvgganm02kmm70b2r1azwzbav2am41gbigpa2bb1wynlrq"))))
    (build-system gnu-build-system)
-   (inputs `(("perl" ,perl)))
+   (inputs (list perl))
    (arguments
     `(#:tests? #f ; none provided
       #:phases
@@ -314,9 +314,7 @@ output file formats and printers.")
    (source (package-source ghostscript))
    (build-system gnu-build-system)
    (native-inputs
-    `(("libtool"    ,libtool)
-      ("automake"   ,automake)
-      ("autoconf"   ,autoconf)))
+    (list libtool automake autoconf))
    (arguments
     `(#:phases
       (modify-phases %standard-phases
@@ -399,8 +397,8 @@ Ghostscript.  It currently includes the 35 standard PostScript fonts.")
              (base32
               "1vgvxp77d5d9chhx4i9cv9hifw4x10jgw6aw8l2v90dgnm99rbj9"))))
    (build-system gnu-build-system)
-   (inputs `(("ghostscript" ,ghostscript)))
-   (native-inputs `(("pkg-config" ,pkg-config)))
+   (inputs (list ghostscript))
+   (native-inputs (list pkg-config))
    (synopsis "Postscript rendering library")
    (description
     "libspectre is a small library for rendering Postscript documents.
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index 1bb660ccff..f1f8529580 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,6 +39,8 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages build-tools)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages glib)
@@ -49,11 +52,13 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages patchutils)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages sdl)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xorg))
 
@@ -117,15 +122,15 @@
                 (string-append doc "/share/doc/poly2tri-c"))
                #t))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("doxygen" ,doxygen)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("unzip" ,unzip)
-       ("which" ,which)))
+     (list autoconf
+           automake
+           doxygen
+           libtool
+           pkg-config
+           unzip
+           which))
     (propagated-inputs
-     `(("glib" ,glib)))
+     (list glib))
     (synopsis "2D constrained Delaunay triangulation library")
     (description "Poly2Tri-C is a library for generating, refining and rendering
 2-Dimensional Constrained Delaunay Triangulations.")
@@ -151,7 +156,7 @@
     (arguments
      `(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
      `(("alsa" ,alsa-lib)
        ("cairo" ,cairo)
@@ -168,7 +173,7 @@ of a larger interface.")
 (define-public babl
   (package
     (name "babl")
-    (version "0.1.86")
+    (version "0.1.88")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "https://download.gimp.org/pub/babl/"
@@ -182,17 +187,17 @@ of a larger interface.")
                                         "/babl-" version ".tar.xz")))
               (sha256
                (base32
-                "1w68h81kqkqnziixrx21qs0gfv2z79651h19sxn226xdb58mjgqb"))))
+                "0fbh2ss1dy3sba4xjmfm4vxxjmx9a6rzgba9ycjygchbm957y3ag"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
        (list "-Denable-gir=false"
              "-Dwith-docs=false")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list gobject-introspection pkg-config vala))
     (propagated-inputs
      ;; Propagated to satisfy ‘babl.pc’.
-     `(("lcms" ,lcms)))
+     (list lcms))
     (home-page "https://gegl.org/babl/")
     (synopsis "Image pixel format conversion library")
     (description
@@ -208,7 +213,7 @@ provided, as well as a framework to add new color models and data types.")
 (define-public gegl
   (package
     (name "gegl")
-    (version "0.4.30")
+    (version "0.4.32")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "https://download.gimp.org/pub/gegl/"
@@ -222,7 +227,7 @@ provided, as well as a framework to add new color models and data types.")
                                         "/gegl-" version ".tar.xz")))
               (sha256
                (base32
-                "1pd8xkx70k0fsi1hrzrmaify7112wjmxzk0p6bi6js89yhn7h4n1"))))
+                "18cg566lplw7y7dn5v05pal24vxbfiic6097a40gnxdgkxmkr3k6"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -240,22 +245,35 @@ provided, as well as a framework to add new color models and data types.")
                 (string-append match "0")))
              (substitute* (find-files "tests" "^meson\\.build$")
                (("timeout ?: [0-9]+" match)
-                (string-append match "0")))
-             #t)))))
+                (string-append match "0"))))))))
     ;; These are propagated to satisfy 'gegl-0.4.pc'.
     (propagated-inputs
-     `(("babl" ,babl)
-       ("glib" ,glib)
-       ("json-glib" ,json-glib)))
+     (list babl glib json-glib))
     (inputs
+     ;; All inputs except libjpeg and libpng are optional.
      `(("cairo" ,cairo)
-       ("pango" ,pango)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("gexiv2" ,gexiv2)
+       ("jasper" ,jasper)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libnsgif" ,libnsgif)
        ("libpng" ,libpng)
-       ("libjpeg" ,libjpeg-turbo)))
+       ("libraw" ,libraw)
+       ("librsvg" ,librsvg)
+       ("libspiro" ,libspiro)
+       ("libtiff" ,libtiff)
+       ("libwebp" ,libwebp)
+       ("maxflow" ,maxflow)
+       ("openexr" ,openexr-2)
+       ("pango" ,pango)
+       ("poppler" ,poppler)
+       ("sdl2" ,sdl2)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib" ,glib "bin")             ; for gtester
-       ("intltool" ,intltool)))
+     (list `(,glib "bin") ; for gtester
+           gobject-introspection
+           intltool
+           pkg-config
+           vala))
     (home-page "https://gegl.org")
     (synopsis "Graph based image processing framework")
     (description "GEGL (Generic Graphics Library) provides infrastructure to
@@ -268,7 +286,7 @@ buffers.")
 (define-public gimp
   (package
     (name "gimp")
-    (version "2.10.24")
+    (version "2.10.28")
     (source
      (origin
        (method url-fetch)
@@ -276,7 +294,7 @@ buffers.")
                            (version-major+minor version)
                            "/gimp-" version ".tar.bz2"))
        (sha256
-        (base32 "17lq6ns5qhspd171zqh76yf98xnn5n0hcl7hbhbx63cc6ribf6xx"))))
+        (base32 "09l80zxcnydbpm3nn64qw48klnvp0mgbaamazqkg1d8szwnc4kag"))))
     (build-system gnu-build-system)
     (outputs '("out"
                "doc"))                            ; 9 MiB of gtk-doc HTML
@@ -314,30 +332,36 @@ buffers.")
                    (format port "for dir in '~a'.split(':'):~%" pythonpath)
                    (format port "    site.addsitedir(dir)~%")))))))))
     (inputs
-     `(("babl" ,babl)
+     `(("atk" ,atk)
+       ("babl" ,babl)
+       ("gegl" ,gegl)
+       ("gexiv2" ,gexiv2)
        ("glib" ,glib)
        ("glib-networking" ,glib-networking)
-       ("libtiff" ,libtiff)
-       ("libwebp" ,libwebp)
-       ("libjpeg" ,libjpeg-turbo)
-       ("atk" ,atk)
-       ("gexiv2" ,gexiv2)
        ("gtk+" ,gtk+-2)
+       ("libjpeg" ,libjpeg-turbo)
        ("libmypaint" ,libmypaint)
+       ("libtiff" ,libtiff)
+       ("libwebp" ,libwebp)
        ("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)))
+       ("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
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-compile-resources and gdbus-codegen
-       ("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("glib:bin" ,glib "bin") ; for glib-compile-resources and gdbus-codegen
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
     (home-page "https://www.gimp.org")
     (synopsis "GNU Image Manipulation Program")
     (description
@@ -389,17 +413,17 @@ that is extensible via a plugin system.")
                (mkdir-p target))
              #t)))))
     (inputs
-     `(("fftw" ,fftw)
-       ("gimp" ,gimp)
-       ;; needed by gimp-2.0.pc
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("gegl" ,gegl)
-       ("cairo" ,cairo)
-       ("glib" ,glib)
-       ;; needed by gimpui-2.0.pc
-       ("gtk+" ,gtk+-2)))
+     (list fftw
+           gimp
+           ;; needed by gimp-2.0.pc
+           gdk-pixbuf
+           gegl
+           cairo
+           glib
+           ;; needed by gimpui-2.0.pc
+           gtk+-2))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.lprp.fr/gimp_plugin_en/#fourier")
     (synopsis "GIMP plug-in to edit image in fourier space")
     (description
@@ -423,14 +447,12 @@ inverse fourier transform.")
                 "0priwpmc7dizccqvn21ig6d649bprl3xl1hmjj7nddznjgr585vl"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     ;; As needed by 'libmypaint.pc'.
     (propagated-inputs
-     `(("json-c" ,json-c)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list json-c gobject-introspection))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (synopsis "Artistic brushes library")
     (description "Libmypaint, also called \"brushlib\", is a library for making
 brushstrokes which is used by MyPaint and GIMP.")
@@ -452,8 +474,7 @@ brushstrokes which is used by MyPaint and GIMP.")
         (base32 "0kcqz13vzpy24dhmrx9hbs6s7hqb8y305vciznm15h277sabpmw9"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (synopsis "Default brushes for MyPaint")
     (description "This package provides the default set of brushes for
 MyPaint.")
@@ -529,12 +550,12 @@ MyPaint.")
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gimp" ,gimp)
-       ("gdk-pixbuf" ,gdk-pixbuf)                 ; needed by gimp-2.0.pc
-       ("cairo" ,cairo)
-       ("gegl" ,gegl)
-       ("gtk+" ,gtk+-2)                           ; needed by gimpui-2.0.pc
-       ("glib" ,glib)))
+     (list gimp
+           gdk-pixbuf ; needed by gimp-2.0.pc
+           cairo
+           gegl
+           gtk+-2 ; needed by gimpui-2.0.pc
+           glib))
     (home-page "https://github.com/bootchk/resynthesizer")
     (synopsis "GIMP plugins for texture synthesis")
     (description
diff --git a/gnu/packages/gkrellm.scm b/gnu/packages/gkrellm.scm
index 153e27c7f0..1f9e74e7b4 100644
--- a/gnu/packages/gkrellm.scm
+++ b/gnu/packages/gkrellm.scm
@@ -46,7 +46,7 @@
        ("libice" ,libice)
        ("libsm" ,libsm)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:tests? #f                      ; there is no check target
        #:phases
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 769389e370..411ffeccef 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -5,7 +5,6 @@
 ;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016 David Thompson <davet@gnu.org>
 ;;; Copyright © 2017, 2018, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
@@ -84,7 +83,7 @@
                 "1xqhk9bn10nbvffw3r4p4rjslwz1l7gaycc0x2pqkr2irp7q9x7n"))))
     (build-system gnu-build-system)
     (propagated-inputs
-     `(("mesa" ,mesa))) ; according to glu.pc
+     (list mesa)) ; according to glu.pc
     (home-page "http://www.opengl.org/archives/resources/faq/technical/glu.htm")
     (synopsis "Mesa OpenGL Utility library")
     (description
@@ -117,14 +116,10 @@ as ASCII text.")
     (arguments
      '(#:tests? #f                      ;no test target
        #:configure-flags '("-DFREEGLUT_BUILD_STATIC_LIBS=OFF")))
-    (inputs `(("libx11" ,libx11)
-              ("libxi" ,libxi)
-              ("libxrandr" ,libxrandr)
-              ("libxxf86vm" ,libxxf86vm)))
+    (inputs (list libx11 libxi libxrandr libxxf86vm))
     (propagated-inputs
      ;; Headers from Mesa and GLU are needed.
-     `(("glu" ,glu)
-       ("mesa" ,mesa)))
+     (list glu mesa))
     (home-page "http://freeglut.sourceforge.net/")
     (synopsis "Alternative to the OpenGL Utility Toolkit (GLUT)")
     (description
@@ -175,15 +170,10 @@ the X-Consortium license.")
     (arguments
      `(#:configure-flags '("--disable-static")))
     ;; The pkg-config file lists "freetype2" as Requires.private.
-    (propagated-inputs `(("freetype" ,freetype)))
-    (inputs `(("libx11" ,libx11)
-              ("mesa" ,mesa)
-              ("glu" ,glu)))
+    (propagated-inputs (list freetype))
+    (inputs (list libx11 mesa glu))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list pkg-config autoconf automake libtool))
     (synopsis "Font rendering library for OpenGL applications")
     (description
      "FTGL is a font rendering library for OpenGL applications.  Supported
@@ -206,11 +196,9 @@ Polygon meshes, and Extruded polygon meshes.")
         (base32 "1fg323fk7wlv2xh6lw66wswgcv6qi8aaadk7c28h2f2lj1s7njnf"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (inputs
-     `(("mesa-headers" ,mesa-headers)))
+     (list mesa-headers))
     (home-page "https://github.com/divVerent/s2tc")
     (synopsis "S3 Texture Compression implementation")
     (description
@@ -239,7 +227,7 @@ also known as DXTn or DXTC) for Mesa.")
 (define-public mesa
   (package
     (name "mesa")
-    (version "21.1.6")
+    (version "21.2.5")
     (source
       (origin
         (method url-fetch)
@@ -251,26 +239,25 @@ also known as DXTn or DXTC) for Mesa.")
                                   version "/mesa-" version ".tar.xz")))
         (sha256
          (base32
-          "0dwyk7cxlwna24ap23i8i92a2qcc6xhp16i03zzakpqiz4i03jxi"))
+          "1fxcdf4qs4vmyjcns7jv62w4jy3gr383ar5b7mr77nb0nxgmhjcf"))
         (patches
          (search-patches "mesa-skip-tests.patch"))))
     (build-system meson-build-system)
     (propagated-inputs
-      `(;; The following are in the Requires.private field of gl.pc.
-        ("libdrm" ,libdrm)
-        ("libvdpau" ,libvdpau)
-        ("libx11" ,libx11)
-        ("libxdamage" ,libxdamage)
-        ("libxfixes" ,libxfixes)
-        ("libxshmfence" ,libxshmfence)
-        ("libxxf86vm" ,libxxf86vm)
-        ("xorgproto" ,xorgproto)))
+      (list ;; The following are in the Requires.private field of gl.pc.
+            libdrm
+            libvdpau
+            libx11
+            libxdamage
+            libxfixes
+            libxshmfence
+            libxxf86vm
+            xorgproto))
     (inputs
       `(("expat" ,expat)
         ("libelf" ,elfutils)  ;required for r600 when using llvm
         ("libva" ,(force libva-without-mesa))
         ("libxml2" ,libxml2)
-        ;; TODO: Add 'libxml2-python' for OpenGL ES 1.1 and 2.0 support
         ("libxrandr" ,libxrandr)
         ("libxvmc" ,libxvmc)
         ,@(match (%current-system)
@@ -292,6 +279,7 @@ also known as DXTn or DXTC) for Mesa.")
              `()))
         ("pkg-config" ,pkg-config)
         ("python" ,python-wrapper)
+        ("python-libxml2", python-libxml2) ;for OpenGL ES 1.1 and 2.0 support
         ("python-mako" ,python-mako)
         ("which" ,(@ (gnu packages base) which))))
     (outputs '("out" "bin"))
@@ -333,7 +321,7 @@ also known as DXTn or DXTC) for Mesa.")
          ;; Enable the Vulkan overlay layer on architectures using llvm.
          ,@(match (%current-system)
              ((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux" "powerpc-linux")
-              '("-Dvulkan-overlay-layer=true"))
+              '("-Dvulkan-layers=device-select,overlay"))
              (_
               '()))
 
@@ -397,12 +385,6 @@ also known as DXTn or DXTC) for Mesa.")
                       (("disasm\\.c'") "delay.c',\n    link_args: ld_args_build_id"))))
                  (_
                   '((display "No tests to disable on this architecture.\n"))))))
-         (add-after 'unpack 'fix-tests
-           (lambda _
-             ;; See <https://gitlab.freedesktop.org/mesa/mesa/-/issues/3181>.
-             (substitute* "src/compiler/glsl/glcpp/tests/084-unbalanced-parentheses.c.expected"
-              (("unexpected \\$end") "unexpected end of file"))
-             #t))
          (add-before 'configure 'fix-dlopen-libnames
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -420,8 +402,7 @@ also known as DXTn or DXTC) for Mesa.")
                  ;; it's never installed since Mesa removed its
                  ;; egl_gallium support.
                  (("\"gbm_dri\\.so")
-                  (string-append "\"" out "/lib/dri/gbm_dri.so")))
-               #t)))
+                  (string-append "\"" out "/lib/dri/gbm_dri.so"))))))
          (add-after 'install 'split-outputs
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
@@ -466,8 +447,7 @@ also known as DXTn or DXTC) for Mesa.")
                                                        file)
                                               (symlink reference file)))
                                         others))))
-                         (delete-duplicates inodes))
-               #t))))))
+                         (delete-duplicates inodes))))))))
     (home-page "https://mesa3d.org/")
     (synopsis "OpenGL and Vulkan implementations")
     (description "Mesa is a free implementation of the OpenGL and Vulkan
@@ -561,7 +541,7 @@ from software emulation to complete hardware acceleration for modern GPUs.")
        ("glut" ,freeglut)
        ("glew" ,glew)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -611,13 +591,10 @@ glxgears, glxheads, and glxinfo.")
                                          (assoc-ref %outputs "out")))
        #:tests? #f))                              ;no 'check' target
     (inputs
-     `(("libxi" ,libxi)
-       ("libxmu" ,libxmu)
-       ("libx11" ,libx11)
-       ("mesa" ,mesa)))
+     (list libxi libxmu libx11 mesa))
 
     ;; <GL/glew.h> includes <GL/glu.h>.
-    (propagated-inputs `(("glu" ,glu)))
+    (propagated-inputs (list glu))
 
     (home-page "http://glew.sourceforge.net/")
     (synopsis "OpenGL extension loading library for C and C++")
@@ -640,11 +617,8 @@ extension functionality is exposed in a single header file.")
               (base32
                "13qfx4xh8baryxqrv986l848ygd0piqwm6s2s90pxk9c0m9vklim"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("guile" ,guile-2.2)
-              ("mesa" ,mesa)
-              ("glu" ,glu)
-              ("freeglut" ,freeglut)))
+    (native-inputs (list pkg-config))
+    (inputs (list guile-2.2 mesa glu freeglut))
     (arguments
      '(#:phases (modify-phases %standard-phases
                  (add-after 'configure 'patch-makefile
@@ -694,10 +668,7 @@ OpenGL graphics API.")
                   "_guile_versions_to_search=\"3.0 "))
                #t))))))
     (inputs
-     `(("guile" ,guile-3.0)
-       ("mesa" ,mesa)
-       ("glu" ,glu)
-       ("freeglut" ,freeglut)))))
+     (list guile-3.0 mesa glu freeglut))))
 
 (define-public libepoxy
   (package
@@ -728,11 +699,10 @@ OpenGL graphics API.")
                #t))))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)))
+     (list pkg-config python))
     (propagated-inputs
      ;; epoxy.pc: 'Requires.private: gl egl'
-     `(("mesa" ,mesa)))
+     (list mesa))
     (home-page "https://github.com/anholt/libepoxy/")
     (synopsis "A library for handling OpenGL function pointer management")
     (description
@@ -766,11 +736,9 @@ OpenGL graphics API.")
                         (("if with_glx")
                          "if false")))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("xorgproto" ,xorgproto)))
+     (list libx11 libxext xorgproto))
     (synopsis "Vendor-neutral OpenGL dispatch library")
     (description
      "libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL
@@ -817,9 +785,9 @@ Both GLX and EGL are supported, in any combination with OpenGL and OpenGL ES.")
                           ;; Remove these flags from 'install' commands.
                           (("-o root -g root") ""))))))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (inputs
-     `(("mesa" ,mesa)))
+     (list mesa))
     (home-page "https://www.lonesock.net/soil.html")
     (synopsis "OpenGL texture loading library")
     (description
@@ -844,18 +812,16 @@ OpenGL.")
      '(#:tests? #f ; no test target
        #:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("unzip" ,unzip)))
+     (list doxygen unzip))
     (propagated-inputs
-     `(("mesa" ,mesa)                             ;included in public headers
-
-       ;; These are in 'Requires.private' of 'glfw3.pc'.
-       ("libx11" ,libx11)
-       ("libxrandr" ,libxrandr)
-       ("libxi" ,libxi)
-       ("libxinerama" ,libxinerama)
-       ("libxcursor" ,libxcursor)
-       ("libxxf86vm" ,libxxf86vm)))
+     (list mesa ;included in public headers
+           ;; These are in 'Requires.private' of 'glfw3.pc'.
+           libx11
+           libxrandr
+           libxi
+           libxinerama
+           libxcursor
+           libxxf86vm))
     (home-page "https://www.glfw.org")
     (synopsis "OpenGL application development library")
     (description
@@ -883,7 +849,7 @@ and surfaces, receiving input and events.")
       (build-system cmake-build-system)
       (arguments `(#:tests? #f))        ; no tests included
       (inputs
-       `(("mesa" ,mesa)))
+       (list mesa))
       ;; Extempore refuses to build on architectures other than x86_64
       (supported-systems '("x86_64-linux"))
       (home-page "https://github.com/extemporelang/nanovg")
@@ -908,9 +874,7 @@ and visualizations.")
         (base32 "1sgzv547h7hrskb9qd0x5yp45kmhvibjwj2mfswv95lg070h074d"))))
     (build-system cmake-build-system)
     (inputs
-     `(("libpng" ,libpng)
-       ("mesa" ,mesa)
-       ("zlib" ,zlib)))
+     (list libpng mesa zlib))
     (arguments
      `(#:tests? #f))                    ; no tests
     (home-page "http://www.geuz.org/gl2ps/")
@@ -946,12 +910,8 @@ mixed vector/bitmap output.")
                                          (assoc-ref %outputs "out") "/lib")
                           "-DVGL_USESSL=1"))) ; use OpenSSL
     (build-system cmake-build-system)
-    (inputs `(("glu" ,glu)
-              ("libjpeg-turbo" ,libjpeg-turbo)
-              ("libxtst" ,libxtst)
-              ("mesa" ,mesa)
-              ("openssl" ,openssl)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list glu libjpeg-turbo libxtst mesa openssl))
+    (native-inputs (list pkg-config))
     (home-page "https://www.virtualgl.org")
     (synopsis "Redirects 3D commands from an OpenGL application onto a 3D
 graphics card")
@@ -1068,7 +1028,7 @@ the glProgramViewportFlip before it was replaced with glProgramViewportInfo.")
                  (install-file "csharp/bin/MojoShader-CS.dll" (string-append out "/lib"))
                  #t))))))
       (native-inputs
-       `(("mono" ,mono)))
+       (list mono))
       (home-page "https://github.com/FNA-XNA/MojoShader")
       (synopsis "C# wrapper for MojoShader")
       (description
@@ -1118,17 +1078,17 @@ is written in a way that can be used for any general C# application.")
                  (("libGLESv2.so") (string-append mesa "/lib/libGLESv2.so")))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("eudev" ,eudev)
-       ("libdrm" ,libdrm)
-       ("libjpeg-turbo" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libx11" ,libx11)
-       ("libxcb" ,libxcb)
-       ("mesa" ,mesa)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+     (list eudev
+           libdrm
+           libjpeg-turbo
+           libpng
+           libx11
+           libxcb
+           mesa
+           wayland
+           wayland-protocols))
     (home-page "https://github.com/glmark2/glmark2")
     (synopsis "OpenGL 2.0 and OpenGL ES 2.0 benchmark")
     (description
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 8117d7904d..3e51045cd1 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -54,6 +54,7 @@
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages libffi)
+  #:use-module (gnu packages libunwind)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages nettle)
@@ -140,20 +141,20 @@
                             "sysconfdir=/tmp/dummy"
                             "install"))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ;; Dependencies to generate the doc.
-       ("docbook-xml" ,docbook-xml-4.4)
-       ("docbook-xsl" ,docbook-xsl)
-       ("doxygen" ,doxygen)
-       ("xmlto" ,xmlto)
-       ("libxml2" ,libxml2)             ;for XML_CATALOG_FILES
-       ("libxslt" ,libxslt)
-       ("yelp-tools" ,yelp-tools)))
+     (list pkg-config
+           ;; Dependencies to generate the doc.
+           docbook-xml-4.4
+           docbook-xsl
+           doxygen
+           xmlto
+           libxml2 ;for XML_CATALOG_FILES
+           libxslt
+           yelp-tools))
     (inputs
-     `(("expat" ,expat)
-       ;; Add a dependency on libx11 so that 'dbus-launch' has support for
-       ;; '--autolaunch'.
-       ("libx11" ,libx11)))
+     (list expat
+           ;; Add a dependency on libx11 so that 'dbus-launch' has support for
+           ;; '--autolaunch'.
+           libx11))
     (outputs '("out" "doc"))            ;22 MiB of HTML doc
     (home-page "https://www.freedesktop.org/wiki/Software/dbus/")
     (synopsis "Message bus for inter-process communication (IPC)")
@@ -178,7 +179,7 @@ shared NFS home directories.")
 (define glib
   (package
     (name "glib")
-    (version "2.68.3")
+    (version "2.70.0")
     (source
      (origin
        (method url-fetch)
@@ -187,7 +188,7 @@ shared NFS home directories.")
                        name "/" (string-take version 4) "/"
                        name "-" version ".tar.xz"))
        (sha256
-        (base32 "0f1iprj7v0b5wn9njj39dkl25g6filfs7i4ybk20jq821k1a7qg7"))
+        (base32 "0hh7hk02fkm1bn48k4z8f3kgv9qbni5z22gizd567fn527w7s390"))
        (patches
         (search-patches "glib-appinfo-watch.patch"
                         "glib-skip-failing-test.patch"))
@@ -195,12 +196,12 @@ shared NFS home directories.")
        (snippet
         '(begin
            (substitute* "tests/spawn-test.c"
-             (("/bin/sh") "sh"))
-           #t))))
+             (("/bin/sh") "sh"))))))
     (build-system meson-build-system)
     (outputs '("out"                    ;libraries, locales, etc
                "static"                 ;static libraries
-               "bin"))                  ;executables; depends on Python
+               "bin"                    ;executables; depends on Python
+               "debug"))
     (arguments
      `(#:disallowed-references
        (,tzdata-for-tests
@@ -211,9 +212,12 @@ shared NFS home directories.")
                    `(,(this-package-native-input "python")
                      ,(this-package-native-input "python-wrapper")))
               '()))
-       #:configure-flags '("--default-library=both"
-                           "-Dman=true"
-                           "-Dselinux=disabled")
+       #:configure-flags (list "--default-library=both"
+                               "-Dman=false"
+                               "-Dselinux=disabled"
+                               (string-append "--bindir="
+                                              (assoc-ref %outputs "bin")
+                                              "/bin"))
        #:phases
        (modify-phases %standard-phases
          ;; Needed to pass the test phase on slower ARM and i686 machines.
@@ -224,6 +228,9 @@ shared NFS home directories.")
                 (string-append first " = " second "0")))))
          (add-after 'unpack 'disable-failing-tests
            (lambda _
+             (substitute* "gio/tests/meson.build"
+               ((".*'testfilemonitor'.*") ;marked as flaky
+                ""))
              (with-directory-excursion "glib/tests"
                (substitute* '("unix.c" "utils.c")
                  (("[ \t]*g_test_add_func.*;") "")))
@@ -232,18 +239,16 @@ shared NFS home directories.")
                               "gdbus-peer.c" "appinfo.c" "desktop-app-info.c")
                  (("[ \t]*g_test_add_func.*;") "")))
 
-             ,@(if (let ((system (or (%current-target-system)
-                                     (%current-system))))
-                     (or (string-prefix? "i686-" system)
-                         (string-prefix? "i586-" system)))
-                   ;; Add the 'volatile' qualifier for doubles to avoid excess
-                   ;; precision, which leads to test failures:
+             ,@(if (target-x86-32?)
+                   ;; Comment out parts of timer.c that fail on i686 due to
+                   ;; excess precision when building with GCC 10:
                    ;; <https://gitlab.gnome.org/GNOME/glib/-/issues/820>.
                    '((substitute* "glib/tests/timer.c"
-                       (("gdouble elapsed")
-                        "volatile gdouble elapsed")))
-                   '())
-             #t))
+                       (("^  g_assert_cmpuint \\(micros.*" all)
+                        (string-append "//" all "\n"))
+                       (("^  g_assert_cmpfloat \\(elapsed, ==.*" all)
+                        (string-append "//" all "\n"))))
+                   '())))
          ;; Python references are not being patched in patch-phase of build,
          ;; despite using python-wrapper as input. So we patch them manually.
          ;;
@@ -271,27 +276,19 @@ shared NFS home directories.")
                                              "share/zoneinfo"))
              ;; Some tests want write access there.
              (setenv "HOME" (getcwd))
-             (setenv "XDG_CACHE_HOME" (getcwd))
-             #t))
+             (setenv "XDG_CACHE_HOME" (getcwd))))
          (add-after 'install 'move-static-libraries
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
                    (static (assoc-ref outputs "static")))
                (mkdir-p (string-append static "/lib"))
-               (for-each (lambda (file)
-                           (link file (string-append static "/lib/"
-                                                     (basename file)))
-                           (delete-file file))
-                         (find-files (string-append out "/lib") "\\.a$")))))
-         ;; Meson does not permit the bindir to be outside of prefix.
-         (add-after 'install 'move-bin
+               (for-each (lambda (a)
+                           (rename-file a (string-append static "/lib/"
+                                                         (basename a))))
+                         (find-files out "\\.a$")))))
+         (add-after 'install 'patch-pkg-config-files
            (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin (assoc-ref outputs "bin")))
-               (mkdir-p bin)
-               (rename-file
-                (string-append out "/bin")
-                (string-append bin "/bin"))
+             (let ((out (assoc-ref outputs "out")))
                ;; Do not refer to "bindir", which points to "${prefix}/bin".
                ;; We don't patch "bindir" to point to "$bin/bin", because that
                ;; would create a reference cycle between the "out" and "bin"
@@ -300,36 +297,34 @@ shared NFS home directories.")
                    (list
                     (string-append out "/lib/pkgconfig/gio-2.0.pc")
                     (string-append out "/lib/pkgconfig/glib-2.0.pc"))
-                 (("bindir=\\$\\{prefix\\}/bin") "")
-                 (("=\\$\\{bindir\\}/") "="))
-               #t))))))
+                 (("^bindir=.*")
+                  "")
+                 (("=\\$\\{bindir\\}/")
+                  "="))))))))
     (native-inputs
-     `(("docbook-xsl" ,docbook-xsl)
-       ("gettext" ,gettext-minimal)
+     `(("gettext" ,gettext-minimal)
        ("m4" ,m4)                       ; for installing m4 macros
        ("perl" ,perl)                   ; needed by GIO tests
        ("pkg-config" ,pkg-config)
        ("python" ,python)               ; For 'patch-python-references
        ("python-wrapper" ,python-wrapper)
-       ("tzdata" ,tzdata-for-tests)     ; for tests/gdatetime.c
-       ("xmllint" ,libxml2)
-       ("xsltproc" ,libxslt)))
+       ("tzdata" ,tzdata-for-tests)))   ; for tests/gdatetime.c
     (inputs
-     `(("bash-completion" ,bash-completion)
-       ;; "python", "python-wrapper" and "bash-minimal"
-       ;; are for the 'patch-shebangs' phase, to make
-       ;; sure the installed scripts end up with a correct shebang
-       ;; when cross-compiling.
-       ("python" ,python)
-       ("python-wrapper" ,python-wrapper)
-       ("bash-minimal" ,bash-minimal)
-       ("dbus" ,dbus)
-       ("libelf" ,libelf)))
+     (list bash-completion
+           ;; "python", "python-wrapper" and "bash-minimal"
+           ;; are for the 'patch-shebangs' phase, to make
+           ;; sure the installed scripts end up with a correct shebang
+           ;; when cross-compiling.
+           python
+           python-wrapper
+           bash-minimal
+           dbus
+           libelf))
     (propagated-inputs
-     `(("libffi" ,libffi) ; in the Requires.private field of gobject-2.0.pc
-       ("pcre" ,pcre)   ; in the Requires.private field of glib-2.0.pc
-       ("util-linux" ,util-linux "lib") ;for libmount
-       ("zlib" ,zlib))) ; in the Requires.private field of glib-2.0.pc
+     (list libffi ; in the Requires.private field of gobject-2.0.pc
+           pcre ; in the Requires.private field of glib-2.0.pc
+           `(,util-linux "lib") ;for libmount
+           zlib))         ; in the Requires.private field of glib-2.0.pc
     (native-search-paths
      ;; This variable is not really "owned" by GLib, but several related
      ;; packages refer to it: gobject-introspection's tools use it as a search
@@ -350,25 +345,28 @@ libraries and applications written in C.  It provides the core object system
 used in GNOME, the main loop implementation, and a large set of utility
 functions for strings and common data structures.")
     (home-page "https://wiki.gnome.org/Projects/GLib")
-    (license license:lgpl2.1+)))
+    (license license:lgpl2.1+)
+    (properties '((hidden? . #t)))))
 
 (define-public glib-with-documentation
   ;; glib's doc must be built in a separate package since it requires gtk-doc,
   ;; which in turn depends on glib.
   (package/inherit glib
-    ;; (properties (alist-delete 'hidden? (package-properties glib)))
-    (properties '((hidden? . #t)))
+    (properties (alist-delete 'hidden? (package-properties glib)))
     (outputs (cons "doc" (package-outputs glib))) ; 20 MiB of GTK-Doc reference
     (native-inputs
      `(("docbook-xml-4.2" ,docbook-xml-4.2)
        ("docbook-xml-4.5" ,docbook-xml)
-       ("gtk-doc" ,gtk-doc)             ; for the doc
+       ("docbook-xsl" ,docbook-xsl)
+       ("gtk-doc" ,gtk-doc)
        ("libxml2" ,libxml2)
+       ("xsltproc" ,libxslt)
        ,@(package-native-inputs glib)))
     (arguments
      (substitute-keyword-arguments (package-arguments glib)
        ((#:configure-flags flags ''())
-        `(cons "-Dgtk_doc=true" ,flags))
+        `(cons "-Dgtk_doc=true"
+               (delete "-Dman=false" ,flags)))
        ((#:phases phases)
         `(modify-phases ,phases
            (add-after 'unpack 'patch-docbook-xml
@@ -380,8 +378,7 @@ functions for strings and common data structures.")
                                    "/xml/dtd/docbook/"))
                    (("http://www.oasis-open.org/docbook/xml/4\\.2/")
                     (string-append (assoc-ref inputs "docbook-xml-4.2")
-                                   "/xml/dtd/docbook/"))))
-               #t))
+                                   "/xml/dtd/docbook/"))))))
            (add-after 'install 'move-doc
              (lambda* (#:key outputs #:allow-other-keys)
                (let* ((out (assoc-ref outputs "out"))
@@ -390,8 +387,7 @@ functions for strings and common data structures.")
                  (mkdir-p (string-append doc "/share"))
                  (rename-file
                   (string-append out html)
-                  (string-append doc html))
-                 #t)))))))))
+                  (string-append doc html)))))))))))
 
 (define (python-extension-suffix python triplet)
   "Determine the suffix for C extensions for PYTHON when compiled
@@ -492,10 +488,10 @@ be used when cross-compiling."
      `(("python" ,python)
        ("zlib" ,zlib)))
     (propagated-inputs
-     `(("glib" ,glib)
-       ;; In practice, GIR users will need libffi when using
-       ;; gobject-introspection.
-       ("libffi" ,libffi)))
+     (list glib
+           ;; In practice, GIR users will need libffi when using
+           ;; gobject-introspection.
+           libffi))
     (native-search-paths
      (list
       (search-path-specification
@@ -531,7 +527,7 @@ provide bindings to call into the C library.")
                "1karx4sb7bnm2j67q0q74hspkfn6lqprpy5r99vkn5bb36a4viv7"))))
     (build-system gnu-build-system)
     (inputs
-     `(("file" ,file)))
+     (list file))
     (propagated-inputs
      `(;; Propagate gettext because users expect it to be there, and so does
        ;; the `intltool-update' script.
@@ -579,9 +575,7 @@ The intltool collection can be used to do these things:
                "1acjgf8zlyk7qckdk19iqaca4jcmywd7vxjbcs1mm6kaf8icqcv2"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libxml2" ,libxml2)
-       ("python-libxml2" ,python-libxml2)
-       ("python" ,python)))
+     (list libxml2 python-libxml2 python))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -638,13 +632,11 @@ translated.")
                 #+(file-append this-package "/bin/dbus-binding-tool"))))
          '()))
     (propagated-inputs ; according to dbus-glib-1.pc
-     `(("dbus" ,dbus)
-       ("glib" ,glib)))
+     (list dbus glib))
     (inputs
-     `(("expat" ,expat)))
+     (list expat))
     (native-inputs
-     `(("glib" ,glib "bin")
-       ("pkg-config" ,pkg-config)))
+     (list `(,glib "bin") pkg-config))
     (home-page "https://dbus.freedesktop.org/doc/dbus-glib/")
     (synopsis "D-Bus GLib bindings")
     (description
@@ -701,7 +693,7 @@ by GDBus included in Glib.")
        ("xmllint" ,libxml2)
        ("xsltproc" ,libxslt)))
     (inputs
-     `(("boost" ,boost)))
+     (list boost))
     (home-page "https://libsigcplusplus.github.io/libsigcplusplus/")
     (synopsis "Type-safe callback system for standard C++")
     (description
@@ -799,8 +791,7 @@ by GDBus included in Glib.")
        ("pkg-config" ,pkg-config)
        ("xsltproc" ,libxslt)))
     (propagated-inputs
-     `(("libsigc++" ,libsigc++)
-       ("glib" ,glib)))
+     (list libsigc++ glib))
     (home-page "https://gtkmm.org/")
     (synopsis "C++ interface to the GLib library")
     (description
@@ -823,8 +814,8 @@ useful for C++.")
        (sha256
         (base32 "11m37sbx0i18cl17d0fkq0bik4bbzlb5n8kcl651jhci5ipci3sh"))))
      (propagated-inputs
-      `(("libsigc++" ,libsigc++-2)
-        ,@(package-propagated-inputs glibmm)))))
+      (modify-inputs (package-propagated-inputs glibmm)
+        (prepend libsigc++-2)))))
 
 (define-public python2-pygobject-2
   (package
@@ -854,7 +845,7 @@ useful for C++.")
        ("python2-pycairo" ,python2-pycairo)
        ("gobject-introspection" ,gobject-introspection)))
     (propagated-inputs
-     `(("libffi" ,libffi)))             ;mentioned in pygobject-2.0.pc
+     (list libffi))             ;mentioned in pygobject-2.0.pc
     (arguments
      `(#:tests? #f                      ;segfaults during tests
        #:configure-flags '("LIBS=-lcairo-gobject")))
@@ -899,15 +890,13 @@ useful for C++.")
     (native-inputs
      `(("glib-bin" ,glib "bin")
        ("pkg-config" ,pkg-config)
-       ("python-pytest" ,python-pytest)))
+       ("python-pytest" ,python-pytest)
+       ("python-wrapper" ,python-wrapper))) ; For patching shebangs
     (inputs
-     `(("python" ,python)
-       ("python-pycairo" ,python-pycairo)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list python python-pycairo gobject-introspection))
     (propagated-inputs
      ;; pygobject-3.0.pc refers to all these.
-     `(("glib" ,glib)
-       ("libffi" ,libffi)))
+     (list glib libffi))
     ;; For finding typelib files, since gobject-introscpetion isn't propagated.
     (native-search-paths (package-native-search-paths gobject-introspection))
     (home-page "https://live.gnome.org/PyGObject")
@@ -960,10 +949,9 @@ useful for C++.")
                 "1q5075d6v2g5sm675hyzrcpxsrh09z83crfci8b0wl3jwmnz0frg"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-extutils-depends" ,perl-extutils-depends)
-       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+     (list perl-extutils-depends perl-extutils-pkgconfig))
     (propagated-inputs
-     `(("glib" ,glib)))
+     (list glib))
     (home-page "https://metacpan.org/release/Glib")
     (synopsis "Perl wrappers for the GLib utility and Object libraries")
     (description "This module provides perl access to GLib and GLib's GObject
@@ -986,12 +974,9 @@ up the Gnome environment, and are used in many unrelated projects.")
         (base32 "0mxg6pz8qfyipw0ypr54alij0c4adzg94f62702b2a6hkp5jhij6"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-extutils-depends" ,perl-extutils-depends)
-       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+     (list perl-extutils-depends perl-extutils-pkgconfig))
     (propagated-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("perl-cairo-gobject" ,perl-cairo-gobject)
-       ("perl-glib" ,perl-glib)))
+     (list gobject-introspection perl-cairo-gobject perl-glib))
     (home-page "https://metacpan.org/dist/Glib-Object-Introspection")
     (synopsis "Dynamically create Perl language bindings")
     (description "Glib::Object::Introspection uses the gobject-introspection and
@@ -1002,7 +987,7 @@ libraries.  Examples include gtk+, webkit, libsoup and many more.")
 (define telepathy-glib
   (package
     (name "telepathy-glib")
-    (version "0.24.1")
+    (version "0.24.2")
     (source
      (origin
       (method url-fetch)
@@ -1012,19 +997,7 @@ libraries.  Examples include gtk+, webkit, libsoup and many more.")
          "telepathy-glib-" version ".tar.gz"))
        (sha256
         (base32
-         "1symyzbjmxvksn2ifdkk50lafjm2llf2sbmky062gq2pz3cg23cy"))
-       (patches
-        (list
-         (search-patch "telepathy-glib-channel-memory-leak.patch")
-         ;; Don't use the same test name for multiple tests.
-         ;; <https://bugs.freedesktop.org/show_bug.cgi?id=92245>
-         (origin
-           (method url-fetch)
-           (uri "https://bugs.freedesktop.org/attachment.cgi?id=118608")
-           (file-name (string-append "telepathy-glib-duplicate-tests.patch"))
-           (sha256
-            (base32
-             "0z261fwrszxb28ccg3hsg9rizig4s84zvwmx6y31a4pyv7bvs5w3")))))))
+         "1w3kja8j3gz2apal79bi3hq44xk5g78aphrqbw983l6df7bp98xh"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--enable-vala-bindings")
@@ -1056,9 +1029,7 @@ libraries.  Examples include gtk+, webkit, libsoup and many more.")
        ("xsltproc" ,libxslt)))
     (propagated-inputs
      ;; There are all in the Requires.private field of telepathy-glib.pc.
-     `(("dbus" ,dbus)
-       ("dbus-glib" ,dbus-glib)
-       ("glib" ,glib)))
+     (list dbus dbus-glib glib))
     (home-page "https://telepathy.freedesktop.org/wiki/")
     (synopsis "GLib Real-time communications framework over D-Bus")
     (description "Telepathy is a flexible, modular communications framework
@@ -1087,13 +1058,11 @@ This package provides the library for GLib applications.")
                 "0qafmy2i6dzx4n1dqp6pygyy6gjljnb7hwjcj2z11c1wgclsq4dw"))))
     (build-system gnu-build-system)
     (propagated-inputs
-     `(("dbus" ,dbus)))                      ;mentioned in the pkg-config file
+     (list dbus))                      ;mentioned in the pkg-config file
     (inputs
-     `(("efl" ,efl)
-       ("expat" ,expat)
-       ("glib" ,glib)))
+     (list efl expat glib libunwind))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(;; The 'configure' machinery fails to detect that it needs -lpthread.
        #:configure-flags (list "LDFLAGS=-lpthread")
@@ -1128,14 +1097,13 @@ programming language.  It also provides the @command{dbusxx-xml2cpp} and
      `(#:configure-flags '("-DENABLE_TESTS=ON"
                            "-DENABLE_TOOLS=ON"
                            "-DENABLE_GLIBMM=ON")))
-    (inputs `(("dbus" ,dbus)
-              ("libsigc++" ,libsigc++)
-              ("glibmm" ,glibmm)
-              ("python" ,python)
-              ("popt" ,popt)
-              ("expat" ,expat)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("m4" ,m4)))
+    (inputs (list dbus
+                  libsigc++
+                  glibmm
+                  python
+                  popt
+                  expat))
+    (native-inputs (list pkg-config m4))
     (synopsis "C++ wrapper for dbus")
     (description "Dbus-cxx is a C++ wrapper for dbus.\n
 It exposes the C API to allow direct manipulation and
@@ -1179,7 +1147,7 @@ Some codes examples can be find at:
        ("gtk+" ,gtk+)
        ("json-glib" ,json-glib)
        ("libarchive" ,libarchive)
-       ("libsoup" ,libsoup)))
+       ("libsoup" ,libsoup-minimal-2)))
     (arguments
      `(#:configure-flags
        (list "-Ddep11=false"
@@ -1218,13 +1186,11 @@ metadata.")
          "1g0w8i5scmh7kfy9mmvv8q326627qf38z26mvczmn8x1yjgar8g7"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list pkg-config perl-test-pod perl-test-pod-coverage))
     (inputs
-     `(("dbus" ,dbus)))
+     (list dbus))
     (propagated-inputs
-     `(("perl-xml-twig" ,perl-xml-twig)))
+     (list perl-xml-twig))
     (home-page "https://metacpan.org/release/Net-DBus")
     (synopsis "Extension for the DBus bindings")
     (description "@code{Net::DBus} provides a Perl XS API to the DBus
@@ -1246,9 +1212,9 @@ of the DBus APIs, not concerning itself yet with the GLib or QT wrappers.")
          "1z4mbv8z0rad604xahijpg5szzi8qak07hbahh230z4jf96fkxvj"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("dbus-glib" ,dbus-glib)))
+     (list dbus-glib))
     (home-page "https://metacpan.org/release/Net-DBus-GLib")
     (synopsis "Perl extension for the DBus GLib bindings")
     (description "This package provides an extension to the @code{Net::DBus}
@@ -1309,18 +1275,16 @@ simple methods via GObject-Introspection.")
                 "03sj1h0c2l08xa8phw013fnxr4fgav7l2mkjhzf9xk3dykwxcj8p"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-
-       ;; For tests.
-       ("dbus" ,dbus)
-
-       ;; These are required to build the manual.
-       ("docbook-xml" ,docbook-xml-4.3)
-       ("docbook-xsl" ,docbook-xsl)
-       ("libxml2" ,libxml2)
-       ("xsltproc" ,libxslt)))
+     (list pkg-config
+           ;; For tests.
+           dbus
+           ;; These are required to build the manual.
+           docbook-xml-4.3
+           docbook-xsl
+           libxml2
+           libxslt))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (home-page "https://github.com/flatpak/xdg-dbus-proxy")
     (synopsis "D-Bus connection proxy")
     (description
@@ -1358,9 +1322,7 @@ to the host system, optionally with filters applied.")
                (("/bin/true") (which "true")))
              #t)))))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("glib" ,glib)
-       ("dbus-glib" ,dbus-glib)))
+     (list gtk+ glib dbus-glib))
     (native-inputs
      `(("glib:bin" ,glib "bin")
        ("intltool" ,intltool)
diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
index c41ead3997..0e3147e604 100644
--- a/gnu/packages/gnome-xyz.scm
+++ b/gnu/packages/gnome-xyz.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019, 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2019, 2020, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2019, 2021 Alexandros Theodotou <alex@zrythm.org>
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
@@ -11,6 +11,9 @@
 ;;; Copyright © 2020 Ellis Kenyo <me@elken.dev>
 ;;; Copyright © 2020 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 Songlin Jiang <hollowman@hollowman.ml>
+;;; Copyright © 2021 Justin Veilleux <terramorpha@cock.li>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -76,11 +79,10 @@
                (("^\"\\$srcdir/configure\".*") ""))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
     (propagated-inputs
-     `(("moka-icon-theme" ,moka-icon-theme)))
+     (list moka-icon-theme))
     (synopsis "Arc icon theme")
     (description "The Arc icon theme provides a set of icons matching the
 style of the Arc GTK theme.  Icons missing from the Arc theme are provided by
@@ -143,8 +145,7 @@ the Obsidian icon theme.")
              (substitute* "meson.build"
                (("meson.add_install_script.*") "")))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (synopsis "Faba icon theme")
     (description
      "Faba is a minimal icon set used as a basis for other themes such as
@@ -170,7 +171,7 @@ Moka")
     (propagated-inputs
      ;; Moka is based on Faba by using it as a fallback icon set instead of
      ;; bundling it, so we need to add it as a propagated input.
-     `(("faba-icon-theme" ,faba-icon-theme)))
+     (list faba-icon-theme))
     (synopsis "Moka icon theme")
     (description "Moka is a stylized desktop icon set, designed to be clear,
 simple and consistent.")
@@ -281,6 +282,39 @@ GNOME Shell.")
 that caches clipboard history.")
     (license license:expat)))
 
+(define-public gnome-shell-extension-customize-ibus
+  (package
+    (name "gnome-shell-extension-customize-ibus")
+    (version "78")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/openSUSE/Customize-IBus.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1hnnsjriq7xaakk8biwz55mn077lnm9nsmi4wz5zk7clgxmasvq9"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list (string-append "VERSION=" ,version)
+             (string-append "INSTALLBASE=" (assoc-ref %outputs "out")
+                            "/share/gnome-shell/extensions"))
+       #:tests? #f ; No test target
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'bootstrap)
+         (delete 'configure))))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")))
+    (home-page "https://github.com/openSUSE/Customize-IBus")
+    (synopsis "GNOME Shell Extension for IBus Customization")
+    (description "Customize IBus provides full customization of appearance,
+behavior, system tray and input source indicator for IBus.")
+    (license license:gpl3+)))
+
 (define-public gnome-shell-extension-topicons-redux
   (package
     (name "gnome-shell-extension-topicons-redux")
@@ -296,7 +330,7 @@ that caches clipboard history.")
         (base32 "1dli9xb545n3xlj6q4wl0y5gzkm903zs47p8fiq71pdvbr6v38rj"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("glib" ,glib "bin")))
+     (list `(,glib "bin")))
     (arguments
      `(#:tests? #f                      ;no test defined in the project
        #:phases
@@ -325,7 +359,7 @@ easier to keep track of applications running in the background.")
 (define-public gnome-shell-extension-dash-to-dock
   (package
     (name "gnome-shell-extension-dash-to-dock")
-    (version "67")
+    (version "71")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -334,7 +368,7 @@ easier to keep track of applications running in the background.")
                                            version))))
               (sha256
                (base32
-                "1746xm0iyvyzj6m3pvjx11smh9w1s7naz426ki0dlr5l7jh3mpy5"))
+                "12b6ljzs5071zs0kcf5yj4jfhq10b1gnldv0hmbksnqzz5g719wf"))
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
@@ -349,9 +383,10 @@ easier to keep track of applications running in the background.")
     (native-inputs
      `(("glib:bin" ,glib "bin")
        ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("sassc" ,sassc)))
     (propagated-inputs
-     `(("glib" ,glib)))
+     (list glib))
     (synopsis "Transforms GNOME's dash into a dock")
     (description "This extension moves the dash out of the
 overview, transforming it into a dock for easier application launching and
@@ -436,7 +471,6 @@ faster window switching.")
        ("nautilus" ,nautilus)
        ("openssh" ,openssh)
        ("openssl" ,openssl)
-       ("python-nautilus" ,python-nautilus)
        ("python-pygobject" ,python-pygobject)
        ("upower" ,upower)))
     (native-inputs
@@ -486,10 +520,9 @@ control.")
                  (copy-recursively dir (string-append out pre dir))
                  #t))))))
       (native-inputs
-       `(("glib" ,glib "bin")
-         ("intltool" ,intltool)))
+       (list `(,glib "bin") intltool))
       (propagated-inputs
-       `(("glib" ,glib)))
+       (list glib))
       (synopsis "Hide app icon from GNOME's panel")
       (description "This extension hides the icon and/or title of the
 currently focused application in the top panel of the GNOME shell.")
@@ -504,7 +537,7 @@ currently focused application in the top panel of the GNOME shell.")
 (define-public gnome-shell-extension-dash-to-panel
   (package
     (name "gnome-shell-extension-dash-to-panel")
-    (version "38")
+    (version "45")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -512,7 +545,7 @@ currently focused application in the top panel of the GNOME shell.")
                     (commit (string-append "v" version))))
               (sha256
                (base32
-                "1kvybb49l1vf0fvh8d0c6xkwnry8m330scamf5x40y63d4i213j1"))
+                "05bfd3b1g9zd86pl1rpgfqsmip271lasyfj8phpqf1gdds5yz6f6"))
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
@@ -528,11 +561,10 @@ currently focused application in the top panel of the GNOME shell.")
          (delete 'bootstrap)
          (delete 'configure))))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (propagated-inputs
-     `(("glib" ,glib)
-       ("glib" ,glib "bin")))
+     (list glib
+           `(,glib "bin")))
     (synopsis "Icon taskbar for GNOME Shell")
     (description "This extension moves the dash into the gnome main
 panel so that the application launchers and system tray are combined
@@ -603,7 +635,7 @@ notebooks and tiling window managers.")
 (define-public arc-theme
   (package
     (name "arc-theme")
-    (version "20201013")
+    (version "20210412")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -612,30 +644,25 @@ notebooks and tiling window managers.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1x2l1mwjx68dwf3jb1i90c1q8nqsl1wf2zggcn8im6590k5yv39s"))))
-    (build-system gnu-build-system)
+                "0zs44dagp6baiyszlr1kj5ncap43fg32dv07rl46nxbds2p65lh4"))))
+    (build-system meson-build-system)
     (arguments
      '(#:configure-flags
-       (list "--disable-cinnamon")
+       '("-Dthemes=gnome-shell,gtk2,gtk3,metacity,plank,unity,xfwm")
        #:phases
        (modify-phases %standard-phases
-         ;; autogen.sh calls configure at the end of the script.
-         (replace 'bootstrap
-           (lambda _ (invoke "autoreconf" "-vfi")))
          (add-before 'build 'set-home   ;placate Inkscape
            (lambda _
              (setenv "HOME" (getcwd))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("glib" ,glib "bin")             ; for glib-compile-resources
-       ("gnome-shell" ,gnome-shell)
-       ("gtk+" ,gtk+)
-       ("inkscape" ,inkscape)
-       ("optipng" ,optipng)
-       ("pkg-config" ,pkg-config)
-       ("sassc" ,sassc/libsass-3.5)))
+     (list `(,glib "bin") ; for glib-compile-resources
+           gnome-shell
+           gtk+
+           inkscape
+           optipng
+           pkg-config
+           sassc/libsass-3.5))
     (synopsis "A flat GTK+ theme with transparent elements")
     (description "Arc is a flat theme with transparent elements for GTK 3, GTK
 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
@@ -660,12 +687,12 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
                 "154qawiga792iimkpk3a6q8f4gm4r158wmsagkbqqbhj33kxgxhg"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("gtk+" ,gtk+)
-       ("glib:bin" ,glib "bin")         ; for "glib-compile-resources"
-       ("librsvg" ,librsvg)
-       ("pkg-config" ,pkg-config)
-       ("ruby-sass" ,ruby-sass)
-       ("sassc" ,sassc)))
+     (list gtk+
+           `(,glib "bin") ; for "glib-compile-resources"
+           librsvg
+           pkg-config
+           ruby-sass
+           sassc))
     (home-page "https://shimmerproject.org/")
     (synopsis "Grey GTK+ theme based on Bluebird")
     (description "Greybird is a grey derivative of the Bluebird theme by the
@@ -707,10 +734,9 @@ Shimmer Project.  It supports GNOME, Unity, and Xfce.")
            (invoke "./install.sh" "-d" themesdir)
            #t))))
     (inputs
-     `(("gtk-engines" ,gtk-engines)))
+     (list gtk-engines))
     (native-inputs
-     `(("bash" ,bash)
-       ("coreutils" ,coreutils)))
+     (list bash coreutils))
     (synopsis "Flat design theme for GTK 3, GTK 2 and GNOME-Shell")
     (description "Matcha is a flat Design theme for GTK 3, GTK 2 and
 Gnome-Shell which supports GTK 3 and GTK 2 based desktop environments
@@ -735,8 +761,7 @@ like Gnome, Unity, Budgie, Pantheon, XFCE, Mate and others.")
             "0qaxxafsn5zd2ysgr0jyv5j73360mfdmxyd55askswlsfphssn74"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("gtk+" ,gtk+)
-       ("sassc" ,sassc)))
+     (list gtk+ sassc))
     (home-page "https://github.com/nana-4/materia-theme")
     (synopsis "Material Design theme for a wide range of environments")
     (description "Materia is a Material Design theme for GNOME/GTK based
@@ -779,9 +804,6 @@ dark elements.  It supports GNOME, Unity, Xfce, and Openbox.")
     (home-page "https://numixproject.github.io")
     (license license:gpl3+)))
 
-(define-public numix-theme
-  (deprecated-package "numix-theme" numix-gtk-theme))
-
 (define-public orchis-theme
   (package
     (name "orchis-theme")
@@ -832,11 +854,10 @@ dark elements.  It supports GNOME, Unity, Xfce, and Openbox.")
              (apply invoke "./install.sh" configure-flags)
              #t)))))
     (inputs
-     `(("gtk-engines" ,gtk-engines)))
+     (list gtk-engines))
     (native-inputs
-     `(;("coreutils" ,coreutils)
-       ("gtk+" ,gtk+)
-       ("sassc" ,sassc)))
+     (list ;("coreutils" ,coreutils)
+           gtk+ sassc))
     (home-page "https://github.com/vinceliuice/Orchis-theme")
     (synopsis "Material Design theme for a wide range of environments")
     (description "Orchis is a Material Design them for GNOME/GTK based
@@ -849,7 +870,7 @@ variants.")
 (define-public markets
   (package
     (name "markets")
-    (version "0.5.2")
+    (version "0.5.3")
     (source
       (origin
         (method git-fetch)
@@ -859,7 +880,7 @@ variants.")
         (file-name (git-file-name name version))
         (sha256
          (base32
-          "0nk1bs7i6b7r90g5qwd3s2m462vk3kvza0drq7rzb5sdaiz9ccnz"))))
+          "0sfdmz7cp8i2bymippp8jyxsidxjn69v9cqm40q77j81kfm84bfv"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -885,8 +906,8 @@ variants.")
        ("json-glib" ,json-glib)
        ("vala" ,vala)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib" ,glib "bin"))) ; for 'glib-compile-resources'
+     (list pkg-config
+           `(,glib "bin"))) ; for 'glib-compile-resources'
     (home-page "https://github.com/bitstower/markets")
     (synopsis "Stock, currency and cryptocurrency tracker")
     (description
@@ -900,7 +921,7 @@ track stocks, currencies and cryptocurrencies.")
     ;; Note to maintainer: VLS must be built with a Vala toolchain the same
     ;; version or newer. Therefore when you update this package you may need
     ;; to update Vala too.
-    (version "0.48.1")
+    (version "0.48.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -908,17 +929,13 @@ track stocks, currencies and cryptocurrencies.")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "12k095052jkvbiyz8gzkj6w7r7p16d5m18fyikl48yvh5nln8fw0"))))
+               (base32 "1gnvc91gdp3wj9r3r3xxfr09f9lw39cfypn2q5f0443dhhmp059j"))))
     (build-system meson-build-system)
     (arguments '(#:glib-or-gtk? #t))
     (inputs
-     `(("glib" ,glib)
-       ("json-glib" ,json-glib)
-       ("jsonrpc-glib" ,jsonrpc-glib)
-       ("libgee" ,libgee)
-       ("vala" ,vala)))
+     (list glib json-glib jsonrpc-glib libgee vala))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/benwaffle/vala-language-server")
     (synopsis "Language server for Vala")
     (description "The Vala language server is an implementation of the Vala
@@ -956,40 +973,38 @@ palette.")
    (license license:gpl3))))
 
 (define-public tiramisu
-  (let ((commit "8eb946dae0e2f98d3850d89e1bb535640e8c3266")
-        (revision "0"))
-    (package
-      (name "tiramisu")
-      (version (git-version "1.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/Sweets/tiramisu")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "0wz2r8369d40vnxswknx0zxzbs03gzv0nc8al4g0ffg972p15j25"))
-                (file-name (git-file-name name version))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (delete 'check)
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 (install-file "tiramisu" (string-append out "/bin"))
-                 #t))))
-         #:make-flags
-         (list (string-append "CC=" ,(cc-for-target)))))
-      (inputs
-       `(("glib" ,glib)))
-      (native-inputs
-       `(("pkg-config" ,pkg-config)))
-      (home-page "https://github.com/Sweets/tiramisu")
-      (synopsis "Desktop notifications, the UNIX way")
-      (description "tiramisu is a notification daemon based on dunst that
-outputs notifications to STDOUT in order to allow the user to process
-notifications any way they prefer.")
-      (license license:expat))))
+  (package
+    (name "tiramisu")
+    (version "2.0.20211107")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Sweets/tiramisu")
+                    (commit version)))
+              (sha256
+               (base32
+                "1n1x1ybbwbanibw7b90k7v4cadagl41li17hz2l8s2sapacvq3mw"))
+              (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'check)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (install-file "tiramisu" (string-append out "/bin"))
+               #t))))
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target)))))
+    (inputs
+     (list glib))
+    (native-inputs
+     (list pkg-config vala))
+    (home-page "https://github.com/Sweets/tiramisu")
+    (synopsis "Desktop notifications, the UNIX way")
+    (description "tiramisu is a notification daemon based on dunst that outputs
+notifications to STDOUT in order to allow the user to process notifications any
+way they prefer.")
+    (license license:expat)))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index b00a02b81f..0759348762 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -27,7 +27,7 @@
 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
 ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
-;;; Copyright © 2017, 2020 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2017, 2020, 2021 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
@@ -39,16 +39,16 @@
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
-;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
 ;;; Copyright © 2019, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
-;;; Copyright © 2019, 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2019, 2020, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
-;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
 ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
@@ -63,6 +63,8 @@
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch>
+;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -108,6 +110,7 @@
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages dns)
   #:use-module (gnu packages docbook)
+  #:use-module (gnu packages docker)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages flex)
@@ -138,6 +141,7 @@
   #:use-module (gnu packages inkscape)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages kerberos)
+  #:use-module (gnu packages language)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages libunistring)
@@ -145,9 +149,11 @@
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lirc)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages mail)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages markup)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages music)
@@ -165,7 +171,6 @@
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages photo)
-  #:use-module (gnu packages php)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages popt)
@@ -173,7 +178,6 @@
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-compression)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
@@ -252,6 +256,11 @@
                   (string-append (assoc-ref inputs "docbook-xml-4.1.2")
                                  "/xml/dtd/docbook/"))))
              #t))
+         (add-before 'check 'set-home
+           (lambda _
+             ;; A test using GIO expects ~/.config/glib-2.0/settings to be
+             ;; writable.
+             (setenv "HOME" (getcwd))))
          (add-after 'install 'move-doc
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -270,11 +279,7 @@
        ("gtk-doc" ,gtk-doc/stable)
        ("pkg-config" ,pkg-config)))
     (propagated-inputs
-     `(("glib" ,glib)
-       ("glib-networking" ,glib-networking)
-       ("gssdp" ,gssdp)
-       ("gupnp" ,gupnp)
-       ("libsoup" ,libsoup)))
+     (list glib glib-networking gssdp gupnp libsoup))
     (synopsis "UPnP IGD for GNOME")
     (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
     (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
@@ -283,7 +288,7 @@
 (define-public brasero
   (package
     (name "brasero")
-    (version "3.12.2")
+    (version "3.12.3")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/brasero/"
@@ -291,7 +296,7 @@
                                  "brasero-" version ".tar.xz"))
              (sha256
               (base32
-               "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
+               "05gabybkl7xfinwx97i4scp9hic0dlxj7gh03dyj0hd16fp9wx47"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags (list
@@ -303,32 +308,33 @@
                                          "/lib/girepository-1.0"))
        #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'embed-growisofs
+         (add-before 'configure 'embed-growisofs-reference
            (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "plugins/growisofs/burn-growisofs.c"
-               (("\"growisofs") (string-append "\"" (which "growisofs"))))
-             #t)))))
+             (let ((dvd+rw-tools (assoc-ref inputs "dvd+rw-tools")))
+               (substitute* "plugins/growisofs/burn-growisofs.c"
+                 (("(\")(growisofs)" _ prefix command)
+                  (string-append prefix dvd+rw-tools "/bin/" command)))))))))
     (propagated-inputs
-     `(("hicolor-icon-theme" ,hicolor-icon-theme)))
-    (native-inputs
-     `(("intltool" ,intltool)
-       ("itstool" ,itstool)
-       ("glib" ,glib "bin")                       ; glib-compile-schemas, etc.
-       ("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("dvd+rw-tools" ,dvd+rw-tools)
-       ("glib" ,glib)
-       ("gnome-doc-utils" ,gnome-doc-utils)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gtk+" ,gtk+)
-       ("libcanberra" ,libcanberra)
-       ("libice" ,libice)
-       ("libnotify" ,libnotify)
-       ("libsm" ,libsm)
-       ("libxml2" ,libxml2)
-       ("totem-pl-parser" ,totem-pl-parser)))
+     (list hicolor-icon-theme))
+    (native-inputs
+     (list intltool
+           itstool
+           `(,glib "bin") ; glib-compile-schemas, etc.
+           gobject-introspection
+           pkg-config))
+    (inputs
+     (list dvd+rw-tools
+           glib
+           gnome-doc-utils
+           gstreamer
+           gst-plugins-base
+           gtk+
+           libcanberra
+           libice
+           libnotify
+           libsm
+           libxml2
+           totem-pl-parser))
     (home-page "https://wiki.gnome.org/Apps/Brasero")
     (synopsis "CD/DVD burning tool for Gnome")
     (description "Brasero is an application to burn CD/DVD for the Gnome
@@ -336,46 +342,32 @@ Desktop.  It is designed to be as simple as possible and has some unique
 features to enable users to create their discs easily and quickly.")
     (license license:gpl2+)))
 
-(define-public libcloudproviders
+;;; Minimal variant, used to break a cycle with Inkscape.
+(define-public libcloudproviders-minimal
   (package
-    (name "libcloudproviders")
+    (name "libcloudproviders-minimal")
     (version "0.3.1")
     (source
      (origin
        (method url-fetch)
        (uri
-        (string-append "mirror://gnome/sources/" name "/"
-                       (version-major+minor version) "/"
-                       name "-" version ".tar.xz"))
+        (string-append "mirror://gnome/sources/libcloudproviders/"
+                       (version-major+minor version)
+                       "/libcloudproviders-" version ".tar.xz"))
        (sha256
         (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
     (build-system meson-build-system)
-    (outputs '("out" "doc"))
     (arguments
-     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
-       #:configure-flags
-       (list
-        "-Denable-gtk-doc=true")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'move-doc
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (assoc-ref outputs "doc")))
-               (mkdir-p (string-append doc "/share"))
-               (rename-file
-                (string-append out "/share/gtk-doc")
-                (string-append doc "/share/gtk-doc"))
-               #t))))))
+     `(#:glib-or-gtk? #t             ; To wrap binaries and/or compile schemas
+       #:configure-flags (list "-Dintrospection=false"
+                               "-Denable-gtk-doc=false"
+                               "-Dvapigen=false")))
     (native-inputs
      `(("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
     (inputs
-     `(("glib" ,glib)
-       ("glib-networking" ,glib-networking)))
+     (list glib glib-networking))
     (synopsis "Cloudproviders Integration API")
     (description "Libcloudproviders is a DBus API that allows cloud storage sync
 clients to expose their services.  Clients such as file managers and desktop
@@ -384,6 +376,31 @@ services.")
     (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
     (license license:lgpl3+)))
 
+(define-public libcloudproviders
+  (package/inherit libcloudproviders-minimal
+    (name "libcloudproviders")
+    (version "0.3.1")
+    (outputs (cons "doc" (package-outputs libcloudproviders-minimal)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments libcloudproviders-minimal)
+       ((#:configure-flags _)
+        '(list "-Denable-gtk-doc=true")) ;false by default
+       ((#:phases phases '%standard-phases)
+        `(modify-phases %standard-phases
+           (add-after 'install 'move-doc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (doc (assoc-ref outputs "doc")))
+                 (mkdir-p (string-append doc "/share"))
+                 (rename-file
+                  (string-append out "/share/gtk-doc")
+                  (string-append doc "/share/gtk-doc")))))))))
+    (native-inputs
+     (append
+         `(("gobject-introspection" ,gobject-introspection)
+           ("gtk-doc" ,gtk-doc/stable))
+         (package-native-inputs libcloudproviders-minimal)))))
+
 (define-public libgrss
   (package
     (name "libgrss")
@@ -419,14 +436,10 @@ services.")
                                  "/xml/dtd/docbook/"))))
              #t)))))
     (native-inputs
-     `(("docbook-xml" ,docbook-xml-4.1.2)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("pkg-config" ,pkg-config)))
+     (list docbook-xml-4.1.2 gobject-introspection gtk-doc/stable
+           pkg-config))
     (propagated-inputs
-     `(("glib" ,glib)
-       ("libsoup" ,libsoup)
-       ("libxml2" ,libxml2)))
+     (list glib libsoup libxml2))
     (synopsis "Glib library for feeds")
     (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
 and other formats.")
@@ -580,23 +593,20 @@ in JavaScript.")
                                  "/xml/dtd/docbook/"))))
              #t)))))
     (native-inputs
-     `(("check" ,check)
-       ("docbook-xml" ,docbook-xml-4.3)
-       ("gobject-introspection" ,gobject-introspection)
-       ("pedansee" ,pedansee)
-       ("pkg-config" ,pkg-config)
-       ("vala" ,vala)))
+     (list check
+           docbook-xml-4.3
+           gobject-introspection
+           pedansee
+           pkg-config
+           vala))
     (inputs
      `(("avahi" ,avahi)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("gee" ,libgee)
        ("gst-plugins-base" ,gst-plugins-base)
        ("gtk+" ,gtk+)))
     (propagated-inputs
-     `(("glib" ,glib)
-       ("glib-networking" ,glib-networking)
-       ("gstreamer" ,gstreamer)
-       ("libsoup" ,libsoup)))
+     (list glib glib-networking gstreamer libsoup-minimal-2))
     (synopsis "Media management library")
     (description "Libdmapsharing is a library which allows programs to access,
 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
@@ -627,11 +637,9 @@ It is written in C using GObject and libsoup.")
                        (assoc-ref %outputs "doc")
                        "/share/gtk-doc/html"))))
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("pkg-config" ,pkg-config)))
+     (list gobject-introspection gtk-doc/stable pkg-config))
     (propagated-inputs
-     `(("glib" ,glib)))
+     (list glib))
     (synopsis "GLib Testing Framework")
     (description "GTX is a small collection of convenience functions intended to
 enhance the GLib testing framework.  With specific emphasis on easing the pain
@@ -708,7 +716,7 @@ of writing test cases for asynchronous interactions.")
     (inputs
      `(("icu" ,icu4c)))
     (propagated-inputs
-     `(("glib" ,glib)))
+     (list glib))
     (synopsis "Model to synchronize multiple instances over DBus")
     (description "Dee is a library that uses DBus to provide objects allowing
 you to create Model-View-Controller type programs across DBus.  It also consists
@@ -789,7 +797,7 @@ of known objects without needing a central registrar.")
        ("python-rdflib" ,python-rdflib)
        ("xapian-config" ,xapian)))
     (propagated-inputs
-     `(("glib" ,glib)))
+     (list glib))
     (synopsis "Desktop Activity Logging")
     (description "Zeitgeist is a service which logs the users’s activities and
 events, anywhere from files opened to websites visited and conversations.  It
@@ -865,20 +873,21 @@ tomorrow, the rest of the week and for special occasions.")
 (define-public gnome-photos
   (package
     (name "gnome-photos")
-    (version "3.34.2")
+    (version "40.0")
     (source
      (origin
        (method url-fetch)
        (uri
         (string-append "mirror://gnome/sources/" name "/"
-                       (version-major+minor version) "/"
+                       (version-major version) "/"
                        name "-" version ".tar.xz"))
        (sha256
         (base32
-         "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
+         "1bzi79plw6ji6qlckhxnwfnswy6jpnhzmmyanml2i2xg73hp6bg0"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+       #:glib-or-gtk? #t
        #:configure-flags
        (list "-Ddogtail=false"     ; Not available
              ;; Required for RUNPATH validation.
@@ -891,8 +900,8 @@ tomorrow, the rest of the week and for special occasions.")
              (let*
                  ((out (assoc-ref outputs "out")))
                (wrap-program (string-append out "/bin/gnome-photos")
-                 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
-             #t)))))
+                 `("GRL_PLUGIN_PATH" =
+                   (,(getenv "GRL_PLUGIN_PATH"))))))))))
     (native-inputs
      `(("dbus" ,dbus)
        ("desktop-file-utils" ,desktop-file-utils)
@@ -907,7 +916,7 @@ tomorrow, the rest of the week and for special occasions.")
     (inputs
      `(("babl" ,babl)
        ("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("gegl" ,gegl)
        ("geocode-glib" ,geocode-glib)
        ("gexiv2" ,gexiv2)
@@ -919,6 +928,7 @@ tomorrow, the rest of the week and for special occasions.")
        ("libdazzle" ,libdazzle)
        ("libgdata" ,libgdata)
        ("libgfbgraph" ,gfbgraph)
+       ("libhandy" ,libhandy)
        ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
        ("librest" ,rest)
@@ -935,20 +945,21 @@ cloud integration is offered through GNOME Online Accounts.")
 (define-public gnome-music
   (package
     (name "gnome-music")
-    (version "3.34.5")
+    (version "40.1.1")
     (source
      (origin
        (method url-fetch)
        (uri
         (string-append "mirror://gnome/sources/" name "/"
-                       (version-major+minor version) "/"
+                       (version-major version) "/"
                        name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
+         "0lcdal4qdhclr8961p57xf010y92l6wwmkw86lyi9wy224z6gjr0"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+       #:glib-or-gtk? #t
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'wrap-gnome-music
@@ -960,11 +971,14 @@ cloud integration is offered through GNOME Online Accounts.")
                                           (package-version python))
                                         "/site-packages")))
                (wrap-program (string-append out "/bin/gnome-music")
-                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
-                 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
-                 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
-                 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))))
-             #t)))))
+                 `("GI_TYPELIB_PATH" =
+                   (,(getenv "GI_TYPELIB_PATH")))
+                 `("GST_PLUGIN_SYSTEM_PATH" =
+                   (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
+                 `("GRL_PLUGIN_PATH" =
+                   (,(getenv "GRL_PLUGIN_PATH")))
+                 `("GUIX_PYTHONPATH" =
+                   (,(getenv "GUIX_PYTHONPATH") ,pylib)))))))))
     (native-inputs
      `(("desktop-file-utils" ,desktop-file-utils)
        ("gettext" ,gettext-minimal)
@@ -978,11 +992,13 @@ cloud integration is offered through GNOME Online Accounts.")
        ("grilo" ,grilo)
        ("grilo-plugins" ,grilo-plugins)
        ("gst-plugins-base" ,gst-plugins-base)
+       ("gst-plugins-good" ,gst-plugins-good)
        ("gstreamer" ,gstreamer)
        ("gvfs" ,gvfs)
+       ("json-glib" ,json-glib)
        ("libdazzle" ,libdazzle)
        ("libmediaart" ,libmediaart)
-       ("libsoup" ,libsoup)
+       ("libsoup" ,libsoup-minimal-2)
        ("pycairo" ,python-pycairo)
        ("pygobject" ,python-pygobject)
        ("tracker" ,tracker)
@@ -1022,7 +1038,7 @@ between different kinds of computer systems.")
 (define-public tepl
   (package
     (name "tepl")
-    (version "4.4.0")
+    (version "6.00.0")
     (source
      (origin
        (method url-fetch)
@@ -1032,26 +1048,42 @@ between different kinds of computer systems.")
                        name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
-    (build-system glib-or-gtk-build-system)
+         "0qvs7s86gqyyrzi0r5fbrj8zczlgv8xhdjswgbgc1afwjnl9fqx8"))))
+    (build-system meson-build-system)
     (arguments
-     `(#:tests? #f))                    ; FIX-ME: Requires gvfs
+     `(#:glib-or-gtk? #t
+       #:tests? #f))                    ; FIX-ME: Requires gvfs
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)))
+     (list `(,glib "bin") gobject-introspection pkg-config))
     (inputs
-     `(("amtk" ,amtk)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("gtksourceview" ,gtksourceview)
-       ("libxml2" ,libxml2)
-       ("uchardet" ,uchardet)))
+     (list amtk
+           glib
+           gtk+
+           gtksourceview
+           libxml2
+           uchardet))
     (synopsis "Text editor product line")
     (description "Tepl is a library that eases the development of
 GtkSourceView-based text editors and IDEs.")
     (home-page "https://wiki.gnome.org/Projects/Tepl")
     (license license:lgpl2.1+)))
 
+(define-public tepl-5
+  (package
+    (inherit tepl)
+    (name "tepl")
+    (version "5.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0118j64s4fb350phbgda2rk6sv19rfgglxc7nf248llzc1klj9xi"))))))
+
 (define-public krb5-auth-dialog
   (package
     (name "krb5-auth-dialog")
@@ -1068,17 +1100,9 @@ GtkSourceView-based text editors and IDEs.")
          "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("itstool" ,itstool)
-       ("libxml2" ,libxml2)
-       ("pkg-config" ,pkg-config)
-       ("python-wrapper" ,python-wrapper)))
+     (list intltool itstool libxml2 pkg-config python-wrapper))
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libnotify" ,libnotify)
-       ("mit-krb5" ,mit-krb5)
-       ("network-manager" ,network-manager)))
+     (list glib gtk+ libnotify mit-krb5 network-manager))
     (synopsis "Popup dialogs for Kerberos 5")
     (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
 tickets, and pops up a dialog when they are about to expire.")
@@ -1101,12 +1125,9 @@ tickets, and pops up a dialog when they are about to expire.")
          "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("x11" ,libx11)))
+     (list glib gtk+ libx11))
     (synopsis "Notification Daemon for GNOME Desktop")
     (description "Notification-Daemon is the server implementation of the
 freedesktop.org desktop notification specification.")
@@ -1142,7 +1163,7 @@ freedesktop.org desktop notification specification.")
        ("pkg-config" ,pkg-config)
        ("sed" ,sed)))
     (inputs
-     `(("python" ,python)))
+     (list python))
     (synopsis "Module of GNOME C++ bindings")
     (description "The mm-common module provides the build infrastructure
 and utilities shared among the GNOME C++ binding libraries.  Release
@@ -1188,9 +1209,7 @@ Library reference documentation.")
       ("gtk-doc" ,gtk-doc/stable)
       ("pkg-config" ,pkg-config)))
    (inputs
-    `(("avahi" ,avahi)
-      ("libgudev" ,libgudev)
-      ("libsoup" ,libsoup)))
+    (list avahi libgudev libsoup))
    (synopsis "WebDav server implementation using libsoup")
    (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
 but it is generic enough to be reused in other projects,
@@ -1201,7 +1220,7 @@ in particular in the GNOME desktop.")
 (define-public gnome-color-manager
   (package
    (name "gnome-color-manager")
-   (version "3.32.0")
+   (version "3.36.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -1209,7 +1228,7 @@ in particular in the GNOME desktop.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
+              "0fxdng74d8hwhfx1nwl1i4jx9h9f6c2hkyc12f01kqbjcimrxnwx"))))
    (build-system meson-build-system)
    (arguments
     `(#:glib-or-gtk? #t
@@ -1231,19 +1250,19 @@ in particular in the GNOME desktop.")
       ("pkg-config" ,pkg-config)
       ("xorg-server" ,xorg-server-for-tests)))
    (inputs
-    `(("adwaita-icon-theme" ,adwaita-icon-theme)
-      ("appstream-glib" ,appstream-glib)
-      ("colord-gtk" ,colord-gtk)
-      ("exiv2" ,exiv2)
-      ("gnome-desktop" ,gnome-desktop)
-      ("libcanberra" ,libcanberra)
-      ("libexif" ,libexif)
-      ("libtiff" ,libtiff)
-      ("libxrandr" ,libxrandr)
-      ("libxtst" ,libxtst)
-      ("libxxf86vm" ,libxxf86vm)
-      ("vte" ,vte)
-      ("xorgproto" ,xorgproto)))
+    (list adwaita-icon-theme
+          appstream-glib
+          colord-gtk
+          exiv2
+          gnome-desktop
+          libcanberra
+          libexif
+          libtiff
+          libxrandr
+          libxtst
+          libxxf86vm
+          vte
+          xorgproto))
    (synopsis "Color profile manager for the GNOME desktop")
    (description "GNOME Color Manager is a session framework that makes
 it easy to manage, install and generate color profiles
@@ -1262,13 +1281,30 @@ in the GNOME desktop.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
+                "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))
+              (patches
+               (search-patches
+                "gnome-online-miners-tracker-3.patch"))))
     (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-configure
+           (lambda _
+             (substitute* "configure.ac"
+               (("AX_CHECK_ENABLE_DEBUG.*")
+                ""))))
+         (add-after 'fix-configure 'autoreconf
+           (lambda _
+             (invoke "autoreconf" "-vif"))))))
     (native-inputs
-     `(("gettext" ,gettext-minimal)
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("gtk+:bin" ,gtk+ "bin")
+       ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("gnome-online-accounts" ,gnome-online-accounts)
@@ -1307,8 +1343,10 @@ It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
       ("pkg-config" ,pkg-config)
       ("vala" ,vala)))
    (inputs
-    `(("gtk+" ,gtk+)
-      ("libsoup" ,libsoup)))
+    (list gtk+))
+   (propagated-inputs
+    ;; The .pc file "Requires" libsoup-2.4.
+    `(("libsoup" ,libsoup-minimal-2)))
    (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
 Protocol} for GNOME")
    (description "This package provides a library to handle resource discovery
@@ -1345,12 +1383,10 @@ a debugging tool, @command{gssdp-device-sniffer}.")
       ("pkg-config" ,pkg-config)
       ("vala" ,vala)))
    (inputs
-    `(("gssdp" ,gssdp)
-      ("gtk+" ,gtk+)
-      ("libsoup" ,libsoup)))
+    (list gssdp gtk+ libsoup))
    (propagated-inputs
-    `(;; For ‘org.gnome.system.proxy’.
-      ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
+    (list ;; For ‘org.gnome.system.proxy’.
+          gsettings-desktop-schemas))
    (synopsis "PnP API for GNOME")
    (description "This package provides GUPnP, an object-oriented framework
 for creating UPnP devices and control points, written in C using
@@ -1372,19 +1408,17 @@ for creating UPnP devices and control points, written in C using
               "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
    (build-system gnu-build-system)
    (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("glib:bin" ,glib "bin")
-      ("gobject-introspection" ,gobject-introspection)
-      ("gtk-doc" ,gtk-doc/stable)
-      ("libxml" ,libxml2)
-      ("pkg-config" ,pkg-config)
-      ("vala" ,vala)))
+    (list gettext-minimal
+          `(,glib "bin")
+          gobject-introspection
+          gtk-doc/stable
+          libxml2
+          pkg-config
+          vala))
    (inputs
-    `(("gstreamer" ,gstreamer)
-      ("gupnp" ,gupnp)))
+    (list gstreamer gupnp))
    (propagated-inputs
-    `(("gst-plugins-base" ,gst-plugins-base)
-      ("gst-plugins-good" ,gst-plugins-good)))
+    (list gst-plugins-base gst-plugins-good))
    (synopsis "GUPnP DLNA for GNOME")
    (description "This package provides a small utility library to
 support DLNA-related tasks such as media profile guessing, transcoding to a
@@ -1406,16 +1440,15 @@ given profile, etc.  DLNA is a subset of UPnP A/V.")
               "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
    (build-system gnu-build-system)
    (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("glib:bin" ,glib "bin")
-      ("gobject-introspection" ,gobject-introspection)
-      ("gtk-doc" ,gtk-doc/stable)
-      ("libxml" ,libxml2)
-      ("pkg-config" ,pkg-config)
-      ("vala" ,vala)))
+    (list gettext-minimal
+          `(,glib "bin")
+          gobject-introspection
+          gtk-doc/stable
+          libxml2
+          pkg-config
+          vala))
    (inputs
-    `(("gtk+" ,gtk+)
-      ("gupnp" ,gupnp)))
+    (list gtk+ gupnp))
    (synopsis "GUPnP A/V for GNOME")
    (description "This package provides a small library for handling
 and implementation of UPnP A/V profiles.")
@@ -1436,14 +1469,10 @@ and implementation of UPnP A/V profiles.")
                 "1mlw1qgj8nkd9ll6b6h54r1gfdy3zp8a8xqz7qfyfaj85jjgbph7"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("pkg-config" ,pkg-config)))
+     (list `(,glib "bin") pkg-config))
     (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
-       ("gettext" ,gettext-minimal)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk+:doc" ,gtk+ "doc")
-       ("vala" ,vala)))
+     (list gdk-pixbuf gettext-minimal gobject-introspection
+           `(,gtk+ "doc") vala))
     (synopsis "Media art library for the GNOME desktop")
     (description
      "The libmediaart library is the foundation for media art caching,
@@ -1454,18 +1483,19 @@ extraction, and lookup for applications on the desktop.")
 (define-public gnome-initial-setup
   (package
    (name "gnome-initial-setup")
-   (version "3.32.1")
+   (version "40.4")
    (source (origin
             (method url-fetch)
            (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
-                                (version-major+minor version)
+                                (version-major version)
                                 "/gnome-initial-setup-" version ".tar.xz"))
             (sha256
              (base32
-              "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
+              "06q3p4f8g9zr7a4mw3qr556mi0dg9qzrj8n46ybdz93fxs26aaj1"))))
    (build-system meson-build-system)
    (arguments
-    '(#:configure-flags '(;; Enable camera support for user selfie.
+    `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+      #:configure-flags '(;; Enable camera support for user selfie.
                           "-Dcheese=auto"
                           "-Dsystemd=false")
       #:phases (modify-phases %standard-phases
@@ -1488,10 +1518,10 @@ extraction, and lookup for applications on the desktop.")
    (inputs
     `(("accountsservice" ,accountsservice)
       ;("adwaita-icon-theme" ,adwaita-icon-theme)
+      ("elogind" ,elogind)
       ("gdm" ,gdm)
       ("geoclue" ,geoclue)
       ("gnome-desktop" ,gnome-desktop)
-      ("gnome-getting-started-docs" ,gnome-getting-started-docs)
       ("gnome-online-accounts" ,gnome-online-accounts)
       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
       ("gstreamer" ,gstreamer)
@@ -1507,7 +1537,7 @@ extraction, and lookup for applications on the desktop.")
       ("pwquality" ,libpwquality)
       ("rest" ,rest)
       ("upower" ,upower)
-      ("webkitgtk" ,webkitgtk)
+      ("webkitgtk" ,webkitgtk-with-libsoup2)
       ("libgnomekbd" ,libgnomekbd)))
    (synopsis "Initial setup wizard for GNOME desktop")
    (description "This package provides a set-up wizard when a
@@ -1519,7 +1549,7 @@ tour of all gnome components and allows the user to set them up.")
 (define-public gnome-user-share
   (package
    (name "gnome-user-share")
-   (version "3.33.1")
+   (version "3.34.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -1527,12 +1557,13 @@ tour of all gnome components and allows the user to set them up.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
+              "04r9ck9v4i0d31grbli1d4slw2d6dcsfkpaybkwbzi7wnj72l30x"))))
    (build-system meson-build-system)
    (arguments
-    `(#:glib-or-gtk? #t
+    `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+      #:glib-or-gtk? #t
       #:configure-flags
-       `("-Dsystemd=false"
+       `("-Dsystemduserunitdir=/tmp/empty"
          ;; Enable nautilus extension for file sharing.
          "-Dnautilus_extension=true")))
    (native-inputs
@@ -1543,12 +1574,12 @@ tour of all gnome components and allows the user to set them up.")
       ("pkg-config" ,pkg-config)
       ("yelp-tools" ,yelp-tools)))
    (inputs
-    `(("glib" ,glib)
-      ("gnome-bluetooth" ,gnome-bluetooth)
-      ("gtk+" ,gtk+)
-      ("libcanberra" ,libcanberra)
-      ("libnotify" ,libnotify)
-      ("nautilus" ,nautilus)))      ; For nautilus extension.
+    (list glib
+          gnome-bluetooth
+          gtk+
+          libcanberra
+          libnotify
+          nautilus))      ; For nautilus extension.
    (synopsis "File sharing for GNOME desktop")
    (description "GNOME User Share is a small package that binds together
 various free software projects to bring easy to use user-level file
@@ -1559,7 +1590,7 @@ sharing to the masses.")
 (define-public sushi
   (package
     (name "sushi")
-    (version "3.32.1")
+    (version "3.38.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -1567,7 +1598,7 @@ sharing to the masses.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
+                "1sc8i0vrw6bn43rklnwp2fl1gq0r0xfd3bszcqxd0a2mh46d3rpk"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -1577,11 +1608,11 @@ sharing to the masses.")
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((prog (string-append (assoc-ref outputs "out")
                                         "/bin/sushi")))
-               ;; Put existing typelibs before sushi's deps, so as to correctly
-               ;; infer gdk-pixbuf
+               ;; Put existing typelibs before sushi's deps, so as to
+               ;; correctly infer gdk-pixbuf.
                (wrap-program prog
-                 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
-               #t))))))
+                 `("GI_TYPELIB_PATH" suffix
+                   (,(getenv "GI_TYPELIB_PATH"))))))))))
     (native-inputs
      `(("glib:bin" ,glib "bin")
        ("gettext" ,gettext-minimal)
@@ -1597,16 +1628,16 @@ sharing to the masses.")
        ("gjs" ,gjs)
        ("gst-plugins-base" ,gst-plugins-base)
        ("gstreamer" ,gstreamer)
-       ("gtksourceview" ,gtksourceview-3)
+       ("gtksourceview" ,gtksourceview)
        ("harfbuzz" ,harfbuzz)
        ("libepoxy" ,libepoxy)
        ("libmusicbrainz" ,libmusicbrainz)
        ("libxml2" ,libxml2)
        ("neon" ,neon)
-       ("webkitgtk" ,webkitgtk)))
+       ("webkitgtk" ,webkitgtk-with-libsoup2)))
     (synopsis "File previewer for the GNOME desktop")
-    (description "Sushi is a DBus-activated service that allows applications to
-preview files on the GNOME desktop.")
+    (description "Sushi is a DBus-activated service that allows applications
+to preview files on the GNOME desktop.")
     (home-page "https://gitlab.gnome.org/GNOME/sushi")
     (license license:gpl2+)))
 
@@ -1639,22 +1670,22 @@ mpris,playbin,ruih,tracker3")))
        ("dockbook-xsl" ,docbook-xsl)
        ("xsltproc" ,libxslt)))
     (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
-       ("gssdp" ,gssdp)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gst-editing-services" ,gst-editing-services)
-       ("gtk+" ,gtk+)
-       ("gupnp" ,gupnp)
-       ("gupnp-av" ,gupnp-av)
-       ("gupnp-dlna" ,gupnp-dlna)
-       ("json-glib" ,json-glib)
-       ("libgee" ,libgee)
-       ("libmediaart" ,libmediaart)
-       ("libsoup" ,libsoup)
-       ("libxslt" ,libxslt)
-       ("libunistring" ,libunistring)
-       ("tracker" ,tracker)))
+     (list gdk-pixbuf
+           gssdp
+           gstreamer
+           gst-plugins-base
+           gst-editing-services
+           gtk+
+           gupnp
+           gupnp-av
+           gupnp-dlna
+           json-glib
+           libgee
+           libmediaart
+           libsoup
+           libxslt
+           libunistring
+           tracker))
     (synopsis "Share audio, video, and pictures with other devices")
     (description
      "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
@@ -1704,11 +1735,8 @@ client devices can handle.")
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
     (inputs
-     `(("gcr" ,gcr)
-       ("gtk+" ,gtk+)
-       ("iso-codes" ,iso-codes)
-       ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
-       ("network-manager" ,network-manager)))
+     (list gcr gtk+ iso-codes mobile-broadband-provider-info
+           network-manager))
     (synopsis "Network Manager's applet library")
     (description "Libnma is an applet library for Network Manager.  It was
 initially part of network-manager-applet and has now become a separate
@@ -1721,7 +1749,7 @@ project.")
 (define-public gnome-menus
   (package
     (name "gnome-menus")
-    (version "3.32.0")
+    (version "3.36.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/gnome-menus/"
@@ -1729,12 +1757,10 @@ project.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
+                "07xvaf8s0fiv0035nk8zpzymn5www76w2a1vflrgqmp9plw8yd6r"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("glib" ,glib)
-       ("pkg-config" ,pkg-config)))
+     (list gettext-minimal glib pkg-config))
     (synopsis "Menu support for GNOME desktop")
     (description "GNOME Menus contains the libgnome-menu library, the layout
 configuration files for the GNOME menu, as well as a simple menu editor.")
@@ -1744,14 +1770,14 @@ configuration files for the GNOME menu, as well as a simple menu editor.")
 (define-public deja-dup
   (package
     (name "deja-dup")
-    (version "40.6")
+    (version "42.8")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
                                   version "/deja-dup-" version ".tar.bz2"))
               (sha256
                (base32
-                "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
+                "0d1jnlxpk52x56aqxz1g2xb4y4sm24h08p2di8mc1k8n8b52rpi4"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -1787,19 +1813,28 @@ configuration files for the GNOME menu, as well as a simple menu editor.")
            (lambda _
              (substitute* "data/post-install.sh"
                (("gtk-update-icon-cache") "true"))
-             #t)))))
+             #t))
+         (add-after 'install 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             ;; Add duplicity to the search path
+             (wrap-program (string-append (assoc-ref outputs "out")
+                                          "/bin/deja-dup")
+               `("PATH" ":" prefix
+                 (,(string-append (assoc-ref inputs "duplicity") "/bin")))))))))
     (inputs
-     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+     `(("bash-minimal" ,bash-minimal)
        ("duplicity" ,duplicity)
-       ("python" ,python)
-       ("python-pygobject" ,python-pygobject)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gtk+" ,gtk+)
        ("json-glib" ,json-glib)
-       ("libnotify" ,libnotify)
        ("libgpg-error" ,libgpg-error)
+       ("libnotify" ,libnotify)
        ("libsecret" ,libsecret)
-       ("libsoup" ,libsoup)
-       ("packagekit" ,packagekit)))
+       ("libsoup" ,libsoup-minimal-2)
+       ("libhandy" ,libhandy)
+       ("packagekit" ,packagekit)
+       ("python" ,python)
+       ("python-pygobject" ,python-pygobject)))
     (native-inputs
      `(("appstream-glib" ,appstream-glib)
        ("desktop-file-utils" ,desktop-file-utils)
@@ -1831,20 +1866,17 @@ either on a local, or remote machine via a number of methods.")
         (base32 "0f7l2pkyh3r1qk4hhavl7387l3bq5my3snpdppiavcpnji28dpa5"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils)
-       ("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("googletest" ,googletest)
-       ("intltool" ,intltool)
-       ("itstool" ,itstool)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("gconf" ,gconf)
-       ("gnome-vfs" ,gnome-vfs)
-       ("gtk+" ,gtk+-2)
-       ("libxml2" ,libxml2)))
+     (list desktop-file-utils
+           gettext-minimal
+           `(,glib "bin")
+           gobject-introspection
+           googletest
+           intltool
+           itstool
+           libtool
+           pkg-config))
+    (inputs
+     (list gconf gnome-vfs gtk+-2 libxml2))
     (home-page "https://gcmd.github.io/")
     (synopsis "Two-pane graphical file manager for the GNOME desktop")
     (description
@@ -1857,21 +1889,18 @@ and running smart commands.")
 (define-public gnome-user-docs
   (package
    (name "gnome-user-docs")
-   (version "3.32.3")
+   (version "40.5")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
-                          (version-major+minor version)
+                          (version-major version)
                           "/gnome-user-docs-" version ".tar.xz"))
       (sha256
-       (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
+       (base32 "0p6ysdqlfc7vvzsrcanl9bhsc7666sv42xxzpbgsf5j55z3yrkpr"))))
    (build-system gnu-build-system)
    (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("itstool" ,itstool)
-      ("pkg-config" ,pkg-config)
-      ("xmllint" ,libxml2)))
+    (list gettext-minimal itstool pkg-config libxml2))
    (synopsis "User documentation for the GNOME desktop")
    (description
     "The GNOME User Documentation explains how to use the GNOME desktop and its
@@ -1880,34 +1909,6 @@ and system administrators.")
    (home-page "https://live.gnome.org/DocumentationProject")
    (license license:cc-by3.0)))
 
-(define-public gnome-getting-started-docs
-  (package
-   (name "gnome-getting-started-docs")
-   (version "3.32.2")
-   (source
-    (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
-                          (version-major+minor version)
-                          "/gnome-getting-started-docs-" version ".tar.xz"))
-      (sha256
-       (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
-   (build-system gnu-build-system)
-   (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("itstool" ,itstool)
-      ("pkg-config" ,pkg-config)
-      ("xmllint" ,libxml2)))
-   (synopsis "Help to get new users started with the GNOME desktop")
-   (description
-    "The GNOME Getting Started Documentation contains GNOME's intuitive
-\"Getting Started\" tour, with video guides, that can be viewed with Yelp.
-
-It is normally used together with @command{gnome-initial-setup}, but is also
-useful as a tutorial and users' guide for new or less experienced users.")
-   (home-page "https://live.gnome.org/DocumentationProject")
-   (license license:cc-by-sa3.0)))
-
 (define-public dia
   ;; This version from GNOME's repository includes fixes for compiling with
   ;; recent versions of the build tools.  The latest activity on the
@@ -1929,20 +1930,17 @@ useful as a tutorial and users' guide for new or less experienced users.")
                   "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
       (build-system meson-build-system)
       (inputs
-       `(("graphene" ,graphene)
-         ("gtk+" ,gtk+-2)
-         ("libxml2" ,libxml2)
-         ("libxslt" ,libxslt)
-         ("poppler" ,poppler)
-         ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
-         ;; ERROR: Unknown method "dependency" in object.
-         ("python-2" ,python-2)))
+       (list graphene
+             gtk+-2
+             libxml2
+             libxslt
+             poppler
+             ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
+             ;; ERROR: Unknown method "dependency" in object.
+             python-2))
       (native-inputs
-       `(("appstream-glib" ,appstream-glib)
-         ("docbook-xsl" ,docbook-xsl)
-         ("glib" ,glib "bin")
-         ("intltool" ,intltool)
-         ("pkg-config" ,pkg-config)))
+       (list appstream-glib docbook-xsl
+             `(,glib "bin") intltool pkg-config))
       (home-page "https://wiki.gnome.org/Apps/Dia")
       (synopsis "Diagram creation for GNOME")
       (description "Dia can be used to draw different types of diagrams, and
@@ -1951,12 +1949,10 @@ relationship modeling, and network diagrams.  The program supports various file
 formats like PNG, SVG, PDF and EPS.")
       (license license:gpl2+))))
 
-;; This is the unstable release, but it is required for the current stable
-;; release of gvfs (1.38.1).
 (define-public libgdata
   (package
     (name "libgdata")
-    (version "0.17.9")
+    (version "0.18.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -1964,36 +1960,30 @@ formats like PNG, SVG, PDF and EPS.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
-    (build-system gnu-build-system)
+                "1iq4d1qy0vkmy29xvr13dgz4pxvn5v3yi2swryld0ajinvp951fx"))))
+    (build-system meson-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (add-before 'check 'set-home-for-tests
            (lambda _
-             (setenv "HOME" "/tmp")))
-         (add-before 'check 'disable-failing-tests
-           (lambda _
-             ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
-             ;; They have been removed in libgdata 0.17.6, so just do the same.
-             (substitute* "gdata/tests/Makefile"
-               (("picasaweb\\$\\(EXEEXT\\) ") "")))))))
+             (setenv "HOME" "/tmp"))))))
     (native-inputs
      `(("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
        ("uhttpmock" ,uhttpmock)))
     (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("glib-networking" ,glib-networking)))
+     (list cyrus-sasl glib-networking vala))
     (propagated-inputs
      `(("gcr" ,gcr)
        ("glib" ,glib)
        ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
        ("json-glib" ,json-glib)
        ("liboauth" ,liboauth)
-       ("libsoup" ,libsoup)
+       ("libsoup" ,libsoup-minimal-2)
        ("libxml2" ,libxml2)))
     (home-page "https://wiki.gnome.org/Projects/libgdata")
     (synopsis "Library for accessing online service APIs")
@@ -2017,18 +2007,12 @@ access the common Google services, and has full asynchronous support.")
                 "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)))
+     (list gobject-introspection pkg-config))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libjpeg" ,libjpeg-turbo)
-       ("lcms" ,lcms)
-       ("libtiff" ,libtiff)))
+     (list gtk+ libjpeg-turbo lcms libtiff))
     (propagated-inputs
      ;; In Requires of libgxps.pc.
-     `(("cairo" ,cairo)
-       ("glib" ,glib)
-       ("libarchive" ,libarchive)))
+     (list cairo glib libarchive))
     (home-page "https://wiki.gnome.org/Projects/libgxps")
     (synopsis "GObject-based library for handling and rendering XPS documents")
     (description
@@ -2040,19 +2024,20 @@ to other formats.")
 (define-public gnome-characters
   (package
     (name "gnome-characters")
-    (version "3.30.0")
+    (version "40.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://gnome/sources/"
-                           "gnome-characters/" (version-major+minor version)
+                           "gnome-characters/" (version-major version)
                            "/gnome-characters-" version ".tar.xz"))
        (sha256
         (base32
-         "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
+         "0z2xa4w921bzpzj6gv88pvbrijcnnwni6jxynwz0ybaravyzaqha"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+       #:glib-or-gtk? #t
        #:phases (modify-phases %standard-phases
                   (add-after 'install 'wrap
                     (lambda* (#:key outputs #:allow-other-keys)
@@ -2061,8 +2046,7 @@ to other formats.")
                       (wrap-program (string-append (assoc-ref outputs "out")
                                                    "/bin/gnome-characters")
                         `("GI_TYPELIB_PATH" ":" prefix
-                          (,(getenv "GI_TYPELIB_PATH"))))
-                      #t)))))
+                          (,(getenv "GI_TYPELIB_PATH")))))))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
@@ -2070,10 +2054,7 @@ to other formats.")
        ("pkg-config" ,pkg-config)
        ("python" ,python-minimal)))
     (inputs
-     `(("gjs" ,gjs)
-       ("gtk+" ,gtk+)
-       ("libunistring" ,libunistring)
-       ("gnome-desktop" ,gnome-desktop)))
+     (list gjs gtk+ libhandy libunistring gnome-desktop))
     (home-page "https://wiki.gnome.org/Apps/CharacterMap")
     (synopsis "Find and insert unusual characters")
     (description "Characters is a simple utility application to find
@@ -2106,15 +2087,15 @@ commonly used macros.")
 (define-public gnome-contacts
   (package
     (name "gnome-contacts")
-    (version "3.38.1")
+    (version "40.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/gnome-contacts/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0hsq0dwxjahcaxnm1m4r1lync9k2fkwzybfmkchrmn95vqcwwvf9"))))
+                "0w2g5xhw65adzvwzakrj5kaim4sw1w7s8qqwm3nm6inq50znzpn9"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags '("-Dcheese=disabled")
@@ -2128,16 +2109,16 @@ commonly used macros.")
 
              (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
                      "--library=goa-1.0"
-                     (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
-             #t))
+                     (string-append goa "/share/gir-1.0/Goa-1.0.gir"))))
          (add-after 'unpack 'skip-gtk-update-icon-cache
            ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "build-aux/meson_post_install.py"
-               (("gtk-update-icon-cache") "true"))
-             #t)))))
+               (("gtk-update-icon-cache") "true")))))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")
+     `(("docbook-xml" ,docbook-xml-4.2)
+       ("docbook-xsl" ,docbook-xsl)
+       ("glib:bin" ,glib "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("docbook-xml" ,docbook-xml)
@@ -2150,12 +2131,12 @@ commonly used macros.")
        ("gst-plugins-base" ,gst-plugins-base)
        ("gtk+" ,gtk+)
        ("libgee" ,libgee)
+       ("libhandy" ,libhandy)
        ("libxslt" ,libxslt)
        ("telepathy-glib" ,telepathy-glib)
        ("vala" ,vala)))
     (propagated-inputs
-     `(("folks" ,folks)
-       ("telepathy-mission-control" ,telepathy-mission-control)))
+     (list folks telepathy-mission-control))
     (synopsis "GNOME's integrated address book")
     (description
      "GNOME Contacts organizes your contact information from online and
@@ -2166,16 +2147,16 @@ offline sources, providing a centralized place for managing your contacts.")
 (define-public gnome-desktop
   (package
     (name "gnome-desktop")
-    (version "3.34.2")
+    (version "40.4")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnome/sources/" name "/"
-                          (version-major+minor version)  "/"
+                          (version-major version)  "/"
                           name "-" version ".tar.xz"))
       (sha256
        (base32
-        "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
+        "1vs5knn2yj6a449p9bn5w5407i1yvxfxg8xv844qgl70hpsrdbl8"))))
     (build-system meson-build-system)
     (arguments
      '(#:phases
@@ -2221,19 +2202,19 @@ offline sources, providing a centralized place for managing your contacts.")
        ("xorg-server" ,xorg-server-for-tests)))
     (propagated-inputs
      ;; Required by gnome-desktop-3.0.pc.
-     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ("iso-codes" ,iso-codes)
-       ("libseccomp" ,libseccomp)
-       ("libx11" ,libx11)
-       ("xkeyboard-config" ,xkeyboard-config)))
-    (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
-       ("bubblewrap" ,bubblewrap)
-       ("libxext" ,libxext)
-       ("libxkbfile" ,libxkbfile)
-       ("libxrandr" ,libxrandr)))
+     (list gsettings-desktop-schemas
+           gtk+
+           iso-codes
+           libseccomp
+           libx11
+           xkeyboard-config))
+    (inputs
+     (list gdk-pixbuf
+           glib
+           bubblewrap
+           libxext
+           libxkbfile
+           libxrandr))
     (home-page "https://www.gnome.org/")
     (synopsis
      "Libgnome-desktop, gnome-about, and desktop-wide documents")
@@ -2262,13 +2243,13 @@ The gnome-about program helps find which version of GNOME is installed.")
         "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("docbook-xml" ,docbook-xml-4.4)
-       ("python2-libxml2" ,python2-libxml2)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("pkg-config" ,pkg-config)
-       ("python-2" ,python-2)))
+     (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")
@@ -2281,18 +2262,19 @@ and keep up to date translations of documentation.")
 (define-public gnome-disk-utility
   (package
     (name "gnome-disk-utility")
-    (version "3.34.0")
+    (version "40.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
+                "1rr1ypb89p51b6428yqvczmpmylwjfnhnkgx78hzm3vxm3m15lff"))))
     (build-system meson-build-system)
     (arguments
-     '(#:configure-flags '("-Dlogind=libelogind")
+     `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+       #:configure-flags '("-Dlogind=libelogind")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
@@ -2310,17 +2292,18 @@ and keep up to date translations of documentation.")
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)))
     (inputs
-     `(("elogind" ,elogind)
-       ("glib" ,glib)
-       ("appstream-glib" ,appstream-glib)
-       ("gnome-settings-daemon" ,gnome-settings-daemon)
-       ("gtk+" ,gtk+)
-       ("libcanberra" ,libcanberra)
-       ("libdvdread" ,libdvdread)
-       ("libnotify" ,libnotify)
-       ("libpwquality" ,libpwquality)
-       ("libsecret" ,libsecret)
-       ("udisks" ,udisks)))
+     (list elogind
+           glib
+           appstream-glib
+           gnome-settings-daemon
+           gtk+
+           libcanberra
+           libdvdread
+           libhandy
+           libnotify
+           libpwquality
+           libsecret
+           udisks))
     (home-page "https://git.gnome.org/browse/gnome-disk-utility")
     (synopsis "Disk management utility for GNOME")
     (description "Disk management utility for GNOME.")
@@ -2329,18 +2312,19 @@ and keep up to date translations of documentation.")
 (define-public gnome-font-viewer
   (package
     (name "gnome-font-viewer")
-    (version "3.30.0")
+    (version "40.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
-                                  (version-major+minor version)
+                                  (version-major version)
                                   "/gnome-font-viewer-" version ".tar.xz"))
               (sha256
                (base32
-                "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
+                "0hpyi0sz3gcqqs9lkwyk8b6hr39m3n27432x98kxr436jj37dk6j"))))
     (build-system meson-build-system)
     (arguments
-     '(#:phases
+     `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-post-install-script
            (lambda _
@@ -2362,9 +2346,7 @@ and keep up to date translations of documentation.")
        ("glib:bin" ,glib "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("glib" ,glib)
-       ("gnome-desktop" ,gnome-desktop)
-       ("gtk+" ,gtk+)))
+     (list glib gnome-desktop gtk+ libhandy libxml2))
     (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
     (synopsis "GNOME Fonts")
     (description "Application to show you the fonts installed on your computer
@@ -2375,7 +2357,7 @@ the font would look under various sizes.")
 (define-public gcr
   (package
     (name "gcr")
-    (version "3.34.0")
+    (version "3.41.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -2383,8 +2365,8 @@ the font would look under various sizes.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
-    (build-system gnu-build-system)
+                "00fsf82ycac8qi0kkiq759p6jrn63pyz4ksn4wnq7m4ax94zq289"))))
+    (build-system meson-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -2392,23 +2374,38 @@ the font would look under various sizes.")
          ;; build environment.
          (add-after 'unpack 'disable-failing-tests
            (lambda _
-             (substitute* "Makefile.in"
-               (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
+             (substitute* "gcr/meson.build"
+               (("[[:blank:]]+'system-prompt',")
                 ""))
              #t))
+         (add-after 'unpack 'skip-gtk-update-icon-cache
+           ;; Don't create 'icon-theme.cache'.
+           (lambda _
+             (substitute* "meson_post_install.py"
+               (("gtk-update-icon-cache") "true"))
+             #t))
+         (add-after 'unpack 'fix-systemd-detection
+           (lambda _
+             (substitute* "gcr/gcr-ssh-agent-service.c"
+               (("#ifdef WITH_SYSTEMD")
+                "#if (WITH_SYSTEMD)"))))
          (add-before 'check 'pre-check
            (lambda _
              ;; Some tests expect to write to $HOME.
              (setenv "HOME" "/tmp")
              #t)))))
     (inputs
-     `(("dbus" ,dbus)
-       ("gnupg" ,gnupg)                ;called as a child process during tests
-       ("libgcrypt" ,libgcrypt)))
+     (list dbus gnupg ;called as a child process during tests
+           libgcrypt libsecret))
     (native-inputs
      `(("python" ,python-wrapper)       ;for tests
+       ("openssh" ,openssh)             ;for tests
        ("pkg-config" ,pkg-config)
        ("gettext" ,gettext-minimal)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("gtk-doc" ,gtk-doc)
        ("glib" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("libxml2" ,libxml2)
@@ -2416,9 +2413,7 @@ the font would look under various sizes.")
        ("xsltproc" ,libxslt)))
     ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
     (propagated-inputs
-     `(("p11-kit" ,p11-kit)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)))
+     (list p11-kit glib gtk+))
     (home-page "https://www.gnome.org")
     (synopsis "Libraries for displaying certificates and accessing key stores")
     (description
@@ -2445,20 +2440,20 @@ GNOME Desktop.")
                 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("glib" ,glib "bin")             ; for glib-genmarshal, etc.
-       ("gnome-common" ,gnome-common)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("libtool" ,libtool)
-       ("which" ,which)))
-    (inputs
-     `(("libxml2" ,libxml2)))
+     (list autoconf
+           automake
+           `(,glib "bin") ; for glib-genmarshal, etc.
+           gnome-common
+           gtk-doc/stable
+           intltool
+           pkg-config
+           libtool
+           which))
+    (inputs
+     (list libxml2))
     (propagated-inputs
      ;; The gdl-3.0.pc file 'Requires' GTK+.
-     `(("gtk+" ,gtk+)))
+     (list gtk+))
     (home-page "https://gitlab.gnome.org/GNOME/gdl/")
     (synopsis "GNOME docking library")
     (description "This library provides docking features for gtk+.")
@@ -2497,15 +2492,13 @@ GNOME Desktop.")
                "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libgcrypt" ,libgcrypt)
-       ("dbus" ,dbus)))
+     (list libgcrypt dbus))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib" ,glib "bin")
-       ("intltool" ,intltool)))
+     (list pkg-config
+           `(,glib "bin") intltool))
     (propagated-inputs
      ;; Referred to in .h files and .pc.
-     `(("glib" ,glib)))
+     (list glib))
     (home-page "https://www.gnome.org")
     (synopsis "Accessing passwords from the GNOME keyring")
     (description
@@ -2517,15 +2510,15 @@ GNOME Desktop.")
 (define-public gnome-keyring
   (package
     (name "gnome-keyring")
-    (version "3.34.0")
+    (version "40.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
-                                 (version-major+minor version)  "/"
+                                 (version-major version)  "/"
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
+               "0cdrlcw814zayhvlaxqs1sm9bqlfijlp22dzzd0g5zg2isq4vlm3"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
@@ -2562,11 +2555,7 @@ GNOME Desktop.")
              (invoke "aclocal")
              (invoke "automake" "-ac"))))))
     (inputs
-     `(("libgcrypt" ,libgcrypt)
-       ("linux-pam" ,linux-pam)
-       ("openssh" ,openssh)
-       ("dbus" ,dbus)
-       ("gcr" ,gcr)))
+     (list libgcrypt linux-pam openssh dbus gcr))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("glib" ,glib "bin")
@@ -2576,10 +2565,10 @@ GNOME Desktop.")
        ("autoconf" ,autoconf)
        ("automake" ,automake)
        ("libxslt" ,libxslt) ;for documentation
-       ("docbook-xml" ,docbook-xml-4.2)
+       ("docbook-xml" ,docbook-xml-4.3)
        ("docbook-xsl" ,docbook-xsl)))
     (propagated-inputs
-     `(("gcr" ,gcr)))
+     (list gcr))
     (home-page "https://www.gnome.org")
     (synopsis "Daemon to store passwords and encryption keys")
     (description
@@ -2604,7 +2593,8 @@ forgotten when the session ends.")
                 "0xrwls1bhvny8vvd7mfjy9p26zjch0pd6x6j9jn9g2ka6xwyrxqg"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+       #:glib-or-gtk? #t
        #:build-type "release"
        #:configure-flags
        '("-Dnautilus=false"
@@ -2622,32 +2612,32 @@ forgotten when the session ends.")
                (("gtk-update-icon-cache") "true"))
              #t)))))
     (inputs
-     `(("libarchive" ,libarchive)
-       ("libgxps" ,libgxps)
-       ("libspectre" ,libspectre)
-       ("djvulibre" ,djvulibre)
-       ("ghostscript" ,ghostscript)
-       ("poppler" ,poppler)
-       ("libtiff" ,libtiff)
-       ("texlive-libkpathsea" ,texlive-libkpathsea) ; for DVI support
-       ("gnome-desktop" ,gnome-desktop)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gspell" ,gspell)
-       ("libgnome-keyring" ,libgnome-keyring)
-       ("adwaita-icon-theme" ,adwaita-icon-theme)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("atk" ,atk)
-       ("pango" ,pango)
-       ("gtk+" ,gtk+)
-       ("glib" ,glib)
-       ("libxml2" ,libxml2)
-       ("libsm" ,libsm)
-       ("libice" ,libice)
-       ("shared-mime-info" ,shared-mime-info)
-       ("dconf" ,dconf)
-       ("libcanberra" ,libcanberra)
-       ("libsecret" ,libsecret)
-       ("libhandy" ,libhandy)))
+     (list libarchive
+           libgxps
+           libspectre
+           djvulibre
+           ghostscript
+           poppler
+           libtiff
+           texlive-libkpathsea ; for DVI support
+           gnome-desktop
+           gsettings-desktop-schemas
+           gspell
+           libgnome-keyring
+           adwaita-icon-theme
+           gdk-pixbuf
+           atk
+           pango
+           gtk+
+           glib
+           libxml2
+           libsm
+           libice
+           shared-mime-info
+           dconf
+           libcanberra
+           libsecret
+           libhandy))
     (native-inputs
      `(("itstool" ,itstool)
        ("intltool" ,intltool)
@@ -2667,16 +2657,16 @@ on the GNOME Desktop with a single simple application.")
 (define-public gsettings-desktop-schemas
   (package
     (name "gsettings-desktop-schemas")
-    (version "3.34.0")
+    (version "41.0")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnome/sources/" name "/"
-                          (version-major+minor version)  "/"
-                          name "-" version ".tar.xz"))
-      (sha256
-       (base32
-        "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/" name "/"
+                           (version-major version)  "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1v9jagk679m01nji0acirynxinziv036618c7xc49l4nwmr9ja3p"))))
     (build-system meson-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -2685,27 +2675,23 @@ on the GNOME Desktop with a single simple application.")
                       (let ((theme (assoc-ref inputs "gnome-backgrounds")))
                         (substitute* (find-files "schemas"
                                                  "\\.gschema\\.xml\\.in$")
-                          ;; Provide the correct file name of the default GNOME
-                          ;; background, 'adwaita-timed.xml'.
+                          ;; Provide the correct file name of the default
+                          ;; GNOME background, 'adwaita-timed.xml'.
                           (("@datadir@/backgrounds/gnome")
                            (string-append theme "/share/backgrounds/gnome"))
                           ;; Do not reference fonts, that may not exist.
-                          (("'Source Code Pro 10'") "'Monospace 11'"))
-                        #t))))))
+                          (("'Source Code Pro 10'") "'Monospace 11'"))))))))
     (inputs
-     `(("glib" ,glib)
-       ("gnome-backgrounds" ,gnome-backgrounds)))
+     (list glib gnome-backgrounds))
     (native-inputs
      `(("gettext" ,gettext-minimal)
-       ("glib" ,glib "bin")                       ; glib-compile-schemas, etc.
+       ("glib" ,glib "bin")             ; glib-compile-schemas, etc.
        ("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)))
     (home-page "https://launchpad.net/gsettings-desktop-schemas")
-    (synopsis
-     "GNOME settings for various desktop components")
-    (description
-     "Gsettings-desktop-schemas contains a collection of GSettings schemas
-for settings shared by various components of the GNOME desktop.")
+    (synopsis "GNOME settings for various desktop components")
+    (description "Gsettings-desktop-schemas contains a collection of GSettings
+schemas for settings shared by various components of the GNOME desktop.")
     (license license:lgpl2.1+)))
 
 (define-public python-liblarch
@@ -2732,11 +2718,11 @@ for settings shared by various components of the GNOME desktop.")
              (setenv "DISPLAY" ":1")
              #t)))))
     (native-inputs
-     `(("xorg-server" ,xorg-server-for-tests)))
+     (list xorg-server-for-tests))
     (inputs
-     `(("gtk+" ,gtk+)))
+     (list gtk+))
     (propagated-inputs
-     `(("python-pygobject" ,python-pygobject)))
+     (list python-pygobject))
     (home-page "https://wiki.gnome.org/Projects/liblarch")
     (synopsis "Library to easily handle complex data structures")
     (description
@@ -2788,16 +2774,16 @@ and how they are displayed (View).")
        ("gtk+:bin" ,gtk+ "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf+svg)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ("pango" ,pango)
-       ("python-dbus" ,python-dbus)
-       ("python-liblarch" ,python-liblarch)
-       ("python-lxml" ,python-lxml)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)
-       ("python-pyxdg" ,python-pyxdg)))
+     (list librsvg
+           gsettings-desktop-schemas
+           gtk+
+           pango
+           python-dbus
+           python-liblarch
+           python-lxml
+           python-pycairo
+           python-pygobject
+           python-pyxdg))
     (home-page "https://wiki.gnome.org/Apps/GTG")
     (synopsis "Personal organizer for the GNOME desktop")
     (description
@@ -2823,8 +2809,7 @@ know, from small tasks to large projects.")
         "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
     (build-system gnu-build-system)
     (inputs
-     `(("perl" ,perl)
-       ("perl-xml-simple" ,perl-xml-simple)))
+     (list perl perl-xml-simple))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -2867,9 +2852,7 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
               (true      (string-append coreutils "/bin/true")))
          (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
     (native-inputs
-     `(("icon-naming-utils" ,icon-naming-utils)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list icon-naming-utils intltool pkg-config))
     (home-page "https://wiki.gnome.org/Personalization")
     (synopsis "GNOME icon theme")
     (description "Icons for the GNOME desktop.")
@@ -2877,7 +2860,7 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
 
 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
 (define-public adwaita-icon-theme
-  (package (inherit gnome-icon-theme)
+  (package/inherit gnome-icon-theme
     (name "adwaita-icon-theme")
     (version "40.1.1")
     (source (origin
@@ -2889,7 +2872,11 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
                (base32
                 "1xpqa1rgmixlp953938d08xvf7kv36h747ysial8g65dsrp46v0b"))))
     (native-inputs
-     `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
+     ;; The following requires the SVG pixbuf loader, provided by librsvg,
+     ;; available on x86_64 only.
+     `(,@(if (target-64bit?)
+             `(("gtk-encode-symbolic-svg" ,gtk+ "bin"))
+             '())))))
 
 (define-public tango-icon-theme
   (package
@@ -2904,10 +2891,7 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
                 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("icon-naming-utils" ,icon-naming-utils)
-       ("intltool" ,intltool)
-       ("imagemagick" ,imagemagick)
-       ("pkg-config" ,pkg-config)))
+     (list icon-naming-utils intltool imagemagick pkg-config))
     (home-page "http://tango-project.org/")
     (synopsis "Tango icon theme")
     (description "This is an icon theme that follows the Tango visual
@@ -2932,8 +2916,7 @@ guidelines.")
      ;; The build system appears not to be parallel-safe.
      '(#:parallel-build? #f))
     (inputs
-     `(("glib" ,glib)
-       ("libxml2" ,libxml2)))
+     (list glib libxml2))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("itstool" ,itstool)
@@ -3000,29 +2983,29 @@ database is translated at Transifex.")
                        "scp-dbus-service"))))
              #t)))))
     (inputs
-     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gobject-introspection" ,gobject-introspection)
-       ("python" ,python)
-       ("cups" ,cups)
-       ("gtk+" ,gtk+)
-       ("python-dbus" ,python-dbus)
-       ("python-pygobject" ,python-pygobject)
-       ("python-pycups" ,python-pycups)
-       ("python-requests" ,python-requests)
-       ("python-pycairo" ,python-pycairo)
-       ("libnotify" ,libnotify)
-       ("packagekit" ,packagekit)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("desktop-file-utils" ,desktop-file-utils)
-       ("glib" ,glib)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("intltool" ,intltool)
-       ("xmlto" ,xmlto)
-       ("docbook-xml" ,docbook-xml-4.1.2)
-       ("docbook-xsl" ,docbook-xsl)
-       ("libxml2" ,libxml2)))
+     (list gsettings-desktop-schemas
+           gobject-introspection
+           python
+           cups
+           gtk+
+           python-dbus
+           python-pygobject
+           python-pycups
+           python-requests
+           python-pycairo
+           libnotify
+           packagekit))
+    (native-inputs
+     (list pkg-config
+           desktop-file-utils
+           glib
+           autoconf
+           automake
+           intltool
+           xmlto
+           docbook-xml-4.1.2
+           docbook-xsl
+           libxml2))
     (home-page "https://github.com/zdohnal/system-config-printer")
     (synopsis "CUPS administration tool")
     (description
@@ -3082,12 +3065,10 @@ configuring CUPS.")
                                "/manpages/docbook.xsl")))
              #t)))))
     (propagated-inputs
-     `(;; In Requires of libnotify.pc.
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)))
+     (list ;; In Requires of libnotify.pc.
+           gdk-pixbuf glib))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libpng" ,libpng)))
+     (list gtk+ libpng))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("glib" ,glib "bin")
@@ -3135,10 +3116,7 @@ some form of information without getting in the user's way.")
                (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
                #t))))))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("glade" ,glade3)
-       ("python" ,python)
-       ("python-pygobject" ,python-pygobject)))
+     (list gtk+ glade3 python python-pygobject))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("gettext" ,gettext-minimal)
@@ -3147,7 +3125,7 @@ some form of information without getting in the user's way.")
        ("xorg-server" ,xorg-server-for-tests)))
     (propagated-inputs
      ;; The .pc file "Requires" gobject-introspection.
-     `(("gobject-introspection" ,gobject-introspection)))
+     (list gobject-introspection))
     (home-page "https://wiki.gnome.org/Libpeas")
     (synopsis "GObject plugin system")
     (description
@@ -3181,14 +3159,10 @@ API.")
              (substitute* "gdk/gdkglshapes.c"
                ((" index") " triangle_index"))
              #t)))))
-    (inputs `(("gtk+" ,gtk+-2)
-              ("mesa" ,mesa)
-              ("glu" ,glu)
-              ("libx11" ,libx11)
-              ("libxt" ,libxt)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("glib" ,glib "bin")))
-    (propagated-inputs `(("pangox-compat" ,pangox-compat)))
+    (inputs (list gtk+-2 mesa glu libx11 libxt))
+    (native-inputs (list pkg-config
+                         `(,glib "bin")))
+    (propagated-inputs (list pangox-compat))
     (home-page "https://projects.gnome.org/gtkglext")
     (synopsis "OpenGL extension to GTK+")
     (description "GtkGLExt is an OpenGL extension to GTK+.  It provides
@@ -3213,38 +3187,43 @@ API add-ons to make GTK+ widgets OpenGL-capable.")
                         "glade-test-widget-null-icon.patch"))))
     (build-system meson-build-system)
     (arguments
-     `(#:phases
+     `(#:meson ,meson-0.59
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
            ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "meson_post_install.py"
                (("gtk-update-icon-cache") "true"))))
-         ;; XXX: Remove it once this issue is fixed:
-         ;; https://issues.guix.gnu.org/50105.
-         (add-after 'unpack 'fix-tests
-           (lambda _
-             (substitute* "tests/meson.build"
-               (("\\['modules") "#['modules"))))
+
+         ,@(if (this-package-native-input "gjs")
+               '()
+               '((add-after 'unpack 'skip-gjs-test
+                   (lambda _
+                     ;; When the optional dependency on GJS is missing, skip
+                     ;; the GJS plugin tests.
+                     (substitute* "tests/modules.c"
+                       (("g_test_add.*JavaScript.*" all)
+                        (string-append "// " all "\n")))
+                     (delete-file "tests/catalogs/gjsplugin.xml")))))
+
          (add-before 'configure 'fix-docbook
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "man/meson.build"
-               (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
+               (("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")))
-             #t))
+                               "/manpages/docbook.xsl")))))
          (add-before 'check 'pre-check
            (lambda _
              (setenv "HOME" "/tmp")
              ;; Tests require a running X server.
              (system "Xvfb :1 &")
-             (setenv "DISPLAY" ":1")
-             #t)))))
+             (setenv "DISPLAY" ":1"))))))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libxml2" ,libxml2)))
+     (list gtk+ libxml2))
     (native-inputs
      `(("hicolor-icon-theme" ,hicolor-icon-theme)
        ("intltool" ,intltool)
@@ -3255,7 +3234,13 @@ API add-ons to make GTK+ widgets OpenGL-capable.")
        ("glib:bin" ,glib "bin")
        ("python-pygobject" ,python-pygobject)
        ("gobject-introspection" ,gobject-introspection)
-       ("gjs" ,gjs)
+
+       ;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS
+       ;; dependency on other platforms (FIXME).
+       ,@(if (target-x86-64?)
+             `(("gjs" ,gjs))
+             '())
+
        ("pkg-config" ,pkg-config)
        ("xorg-server" ,xorg-server-for-tests)))
     (home-page "https://glade.gnome.org")
@@ -3286,11 +3271,9 @@ the GNOME desktop environment.")
                 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("libxml2" ,libxml2)
-       ("zlib" ,zlib)))
+     (list glib libxml2 zlib))
     (home-page "https://github.com/GNOME/libcroco")
     (synopsis "CSS2 parsing and manipulation library")
     (description
@@ -3357,12 +3340,9 @@ XML/CSS rendering engine.")
        ("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("zlib" ,zlib)))
+     (list bzip2 gdk-pixbuf zlib))
     (propagated-inputs
-     `(("glib" ,glib)
-       ("libxml2" ,libxml2)))
+     (list glib libxml2))
     (synopsis "G Structured File Library")
     (description "Libgsf aims to provide an efficient extensible I/O abstraction
 for dealing with different structured file formats.")
@@ -3390,7 +3370,7 @@ for dealing with different structured file formats.")
               (snippet
                '(begin (delete-file-recursively "vendor")))))
     (build-system cargo-build-system)
-    (outputs '("out" "doc"))
+    (outputs '("out" "doc" "debug"))
     (arguments
      `(#:install-source? #f
        #:modules
@@ -3462,17 +3442,20 @@ for dealing with different structured file formats.")
              (substitute* '("Makefile.am" "Makefile.in")
                (("--locked") ""))))
          (add-before 'configure 'pre-configure
-           (lambda _
+           (lambda* (#:key outputs #:allow-other-keys)
              (substitute* "gdk-pixbuf-loader/Makefile.in"
                ;; By default the gdk-pixbuf loader is installed under
                ;; gdk-pixbuf's prefix.  Work around that.
                (("gdk_pixbuf_moduledir = .*$")
                 (string-append "gdk_pixbuf_moduledir = "
-                               "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
-                               "loaders\n"))
-               ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
-               (("gdk_pixbuf_cache_file = .*$")
-                "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))))
+                               "$(prefix)/"
+                               ,(dirname %gdk-pixbuf-loaders-cache-file) "/"
+                               "loaders\n")))
+             (substitute* "configure"
+               (("gdk_pixbuf_cache_file=.*")
+                (string-append "gdk_pixbuf_cache_file="
+                               (assoc-ref outputs "out") "/"
+                               ,%gdk-pixbuf-loaders-cache-file "\n")))))
          (add-after 'configure 'gnu-configure
            (lambda* (#:key outputs #:allow-other-keys #:rest args)
              (apply (assoc-ref gnu:%standard-phases 'configure)
@@ -3521,26 +3504,24 @@ for dealing with different structured file formats.")
          (replace 'install
            (assoc-ref gnu:%standard-phases 'install)))))
     (native-inputs
-     `(("docbook-xml" ,docbook-xml-4.3)
-       ("glib" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)
-       ("ruby" ,ruby)
-       ("vala" ,vala)))
-    (inputs
-     `(("bzip2" ,bzip2)
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("harfbuzz" ,harfbuzz)
-       ("libcroco" ,libcroco)
-       ("libgsf" ,libgsf)
-       ("libxml2" ,libxml2)
-       ("pango" ,pango)))
+     (list docbook-xml-4.3
+           `(,glib "bin")
+           gobject-introspection
+           pkg-config
+           python-wrapper
+           ruby
+           vala))
+    (inputs
+     (list bzip2
+           fontconfig
+           freetype
+           harfbuzz
+           libcroco
+           libgsf
+           libxml2
+           pango))
     (propagated-inputs
-     `(("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)))
+     (list cairo gdk-pixbuf glib))
     (synopsis "SVG rendering library")
     (description "Librsvg is a library to render SVG images to Cairo surfaces.
 GNOME uses this to render SVG icons.  Outside of GNOME, other desktop
@@ -3549,6 +3530,104 @@ diagrams.")
     (home-page "https://wiki.gnome.org/LibRsvg")
     (license license:lgpl2.1+)))
 
+;; This copy of librsvg uses the bundled rust libraries. It is useful for
+;; packages which have too many dependencies to be rebuilt as frequently
+;; as the rust inputs are updated.
+;; TODO: Remove this package and use packaged rust libraries!
+(define-public librsvg-bootstrap
+  (package
+    (inherit librsvg)
+    (name "librsvg")
+    (version "2.50.7")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/librsvg/"
+                                  (version-major+minor version)  "/"
+                                  "librsvg-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (for-each delete-file (find-files "vendor" "\\.a$"))))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments librsvg)
+       ((#:vendor-dir _ "vendor") "vendor")
+       ((#:cargo-inputs _) '())
+       ((#:cargo-development-inputs _) '())))
+    (properties '((hidden? . #t)))))
+
+(define-public librsvg-2.40
+  ;; This is the last version implemented in C.
+  (package
+    (inherit librsvg)
+    (version "2.40.21")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/librsvg/"
+                                  (version-major+minor version)
+                                  "/librsvg-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags (list "--disable-static")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'pre-configure
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "gdk-pixbuf-loader/Makefile.in"
+               ;; By default the gdk-pixbuf loader is installed under
+               ;; gdk-pixbuf's prefix.  Work around that.
+               (("gdk_pixbuf_moduledir = .*$")
+                (string-append "gdk_pixbuf_moduledir = "
+                               "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
+                                "loaders\n"))
+               ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
+               (("gdk_pixbuf_cache_file = .*$")
+                "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
+             #t))
+         (add-before 'check 'remove-failing-tests
+           (lambda _
+             (with-directory-excursion "tests/fixtures/reftests"
+               (for-each delete-file
+                         '(;; This test fails on i686:
+                           "svg1.1/masking-path-04-b.svg"
+                           ;; This test fails on armhf:
+                           "svg1.1/masking-mask-01-b.svg"
+                           ;; This test fails on aarch64:
+                           "bugs/777834-empty-text-children.svg"
+
+                           ;; These two tests fail due to slightly different
+                           ;; text rendering (different kerning or similar),
+                           ;; nothing alarming.
+                           "bugs/340047.svg"
+                           "bugs/749415.svg"))))))))
+    (native-inputs
+     (list pkg-config
+           `(,glib "bin") ; glib-mkenums, etc.
+           gobject-introspection)) ; g-ir-compiler, etc.
+    (inputs
+     (list pango libcroco bzip2 libgsf libxml2))
+    (propagated-inputs
+     ;; librsvg-2.0.pc refers to all of that.
+     (list cairo gdk-pixbuf glib))
+    (synopsis "Render SVG files using Cairo (ancient C version)")
+    (properties '((hidden? . #t)))))
+
+(define* (librsvg-for-system #:optional
+                             (system (or (%current-target-system)
+                                         (%current-system))))
+  ;; Since librsvg 2.50 depends on Rust, and Rust is only correctly supported
+  ;; on x86_64 so far, use the ancient C version on other platforms (FIXME).
+  (if (string-prefix? "x86_64-" system)
+      librsvg
+      librsvg-2.40))
+
+(export librsvg-for-system)
+
 (define-public libidl
   (package
     (name "libidl")
@@ -3562,11 +3641,9 @@ diagrams.")
                (base32
                 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
     (build-system gnu-build-system)
-    (inputs `(("glib" ,glib)))
+    (inputs (list glib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("flex" ,flex)
-       ("bison" ,bison)))
+     (list pkg-config flex bison))
     (home-page "http://freecode.com/projects/libidl")
     (synopsis "Create trees of CORBA Interface Definition Language files")
     (description  "Libidl is a library for creating trees of CORBA Interface
@@ -3606,15 +3683,22 @@ functionality was designed to be as reusable and portable as possible.")
        ;; ... which they then completly ignore !!
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'fix-parallel-build
+           ;; Parallel build fails because of a failed dependency,
+           ;; https://bugzilla.gnome.org/show_bug.cgi?id=732274
+           (lambda _
+             (substitute* "src/services/name/Makefile.am"
+               (("orbit_name_server_2_DEPENDENCIES = \\$(DEPS) CosNaming.h")
+                "orbit_name_server_2_DEPENDENCIES = \
+$(DEPS) CosNaming.h libname-server-2.a"))))
          (add-before 'configure 'ignore-deprecations
            (lambda _
              (substitute* "linc2/src/Makefile.in"
-               (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
-             #t)))))
-    (inputs `(("glib" ,glib)
-              ("libidl" ,libidl)))
+               (("-DG_DISABLE_DEPRECATED")
+                "-DGLIB_DISABLE_DEPRECATION_WARNINGS")))))))
+    (inputs (list glib libidl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://projects.gnome.org/orbit2/")
     (synopsis "CORBA 2.4-compliant Object Request Broker")
     (description  "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
@@ -3659,18 +3743,16 @@ featuring mature C, C++ and Python bindings.")
        ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
        ;; Thus, disable parallel builds.
        #:parallel-build? #f))
-    (inputs `(("popt" ,popt)
-              ("libxml2" ,libxml2)))
+    (inputs (list popt libxml2))
     ;; The following are Required by the .pc file
     (propagated-inputs
-     `(("glib" ,glib)
-       ("orbit2" ,orbit2)))
+     (list glib orbit2))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("glib" ,glib "bin")             ; for glib-genmarshal, etc.
-       ("flex" ,flex)
-       ("bison" ,bison)))
+     (list intltool
+           pkg-config
+           `(,glib "bin") ; for glib-genmarshal, etc.
+           flex
+           bison))
     (home-page "https://developer.gnome.org/libbonobo/")
     (synopsis "Framework for creating reusable components for use in GNOME applications")
     (description "Bonobo is a framework for creating reusable components for
@@ -3695,14 +3777,13 @@ use in GNOME applications, built on top of CORBA.")
               (sha256
                (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
     (build-system gnu-build-system)
-    (inputs `(("dbus-glib" ,dbus-glib)
-              ("libxml2" ,libxml2)))
-    (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
-                         ("orbit2" ,orbit2)))
+    (inputs (list dbus-glib libxml2))
+    (propagated-inputs (list glib ; referred to in the .pc file
+                             orbit2))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("glib" ,glib "bin")             ; for glib-genmarshal, etc.
-       ("pkg-config" ,pkg-config)))
+     (list intltool
+           `(,glib "bin") ; for glib-genmarshal, etc.
+           pkg-config))
     (home-page "https://projects.gnome.org/gconf/")
     (synopsis "Store application preferences")
     (description "Gconf is a system for storing application preferences.  It
@@ -3725,8 +3806,7 @@ is intended for user preferences; not arbitrary data storage.")
                 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)
-       ("intltool" ,intltool)))
+     (list perl intltool))
     (arguments
      '(#:phases (modify-phases %standard-phases
                   (add-after 'configure 'use-our-intltool
@@ -3773,15 +3853,10 @@ designed to be accessed through the MIME functions in GnomeVFS.")
              (substitute* "test/test-async-cancel.c"
                (("EXIT_FAILURE") "77"))
              #t)))))
-    (inputs `(("libxml2" ,libxml2)
-              ("dbus-glib" ,dbus-glib)
-              ("gconf" ,gconf)
-              ("gnome-mime-data" ,gnome-mime-data)
-              ("zlib" ,zlib)))
+    (inputs (list libxml2 dbus-glib gconf gnome-mime-data zlib))
     (native-inputs
-     `(("glib" ,glib "bin")             ; for glib-mkenums, etc.
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list `(,glib "bin") ; for glib-mkenums, etc.
+           intltool pkg-config))
     (home-page "https://developer.gnome.org/gnome-vfs/")
     (synopsis "Access files and folders in GNOME applications")
     (description
@@ -3814,21 +3889,16 @@ to access local and remote files with a single consistent API.")
              (substitute* "libgnome/Makefile.in"
                (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
              #t)))))
-    (inputs `(("libxml2" ,libxml2)))
+    (inputs (list libxml2))
     (native-inputs
-     `(("glib" ,glib "bin")             ; for glib-mkenums, etc.
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list `(,glib "bin") ; for glib-mkenums, etc.
+           intltool pkg-config))
     ;; The following are listed as Required in the .pc file
     ;; (except for libcanberra -- which seems to be oversight on the part
     ;; of the upstream developers -- anything that links against libgnome,
     ;; must also link against libcanberra
     (propagated-inputs
-     `(("libcanberra" ,libcanberra)
-       ("libbonobo" ,libbonobo)
-       ("gconf" ,gconf)
-       ("gnome-vfs" ,gnome-vfs)
-       ("popt" ,popt)))                       ;gnome-program.h includes popt.h
+     (list libcanberra libbonobo gconf gnome-vfs popt))                       ;gnome-program.h includes popt.h
     (home-page "https://developer.gnome.org/libgnome/")
     (synopsis "Useful routines for building applications")
     (description  "The libgnome library provides a number of useful routines
@@ -3852,7 +3922,7 @@ files and URIs, and displaying help.")
                 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://people.gnome.org/~mathieu/libart")
     (synopsis "2D drawing library")
     (description  "Libart is a 2D drawing library intended as a
@@ -3875,12 +3945,11 @@ high-quality vector-based 2D library with antialiasing and alpha composition.")
                 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
     (build-system gnu-build-system)
     ;; Mentioned as Required in the .pc file
-    (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
-                         ("gtk+" ,gtk+-2)))
+    (propagated-inputs (list libart-lgpl gtk+-2))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("glib" ,glib "bin")             ; for glib-genmarshal, etc.
-       ("pkg-config" ,pkg-config)))
+     (list intltool
+           `(,glib "bin") ; for glib-genmarshal, etc.
+           pkg-config))
     (home-page "https://developer.gnome.org/libgnomecanvas/")
     (synopsis "Flexible widget for creating interactive structured graphics")
     (description  "The GnomeCanvas widget provides a flexible widget for
@@ -3900,10 +3969,9 @@ creating interactive structured graphics.")
                (base32
                 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
     (build-system gnu-build-system)
-    (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
+    (propagated-inputs (list libgnomecanvas))
     (native-inputs
-     `(("gtkmm-2" ,gtkmm-2)
-       ("pkg-config" ,pkg-config)))
+     (list gtkmm-2 pkg-config))
     (home-page "https://gtkmm.org")
     (synopsis "C++ bindings to the GNOME Canvas library")
     (description "C++ bindings to the GNOME Canvas library.")
@@ -3924,19 +3992,12 @@ creating interactive structured graphics.")
                 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
     (build-system gnu-build-system)
     ;; Mentioned as Required in the .pc file
-    (propagated-inputs `(("libbonoboui" ,libbonoboui)
-                         ("libgnome" ,libgnome)
-                         ("libgnomecanvas" ,libgnomecanvas)
-                         ("libgnome-keyring" ,libgnome-keyring)))
-    (inputs `(("libjpeg" ,libjpeg-turbo)
-              ("popt" ,popt)
-              ("libbonobo" ,libbonobo)
-              ("libxml2" ,libxml2)
-              ("libglade" ,libglade)))
-    (native-inputs
-     `(("glib" ,glib "bin")             ; for glib-mkenums, etc.
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+    (propagated-inputs (list libbonoboui libgnome libgnomecanvas
+                             libgnome-keyring))
+    (inputs (list libjpeg-turbo popt libbonobo libxml2 libglade))
+    (native-inputs
+     (list `(,glib "bin") ; for glib-mkenums, etc.
+           intltool pkg-config))
     (home-page "https://developer.gnome.org/libgnomeui/")
     (synopsis "Additional widgets for applications")
     (description "The libgnomeui library provides additional widgets for
@@ -3958,12 +4019,11 @@ ported to GTK+.")
                 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
     (build-system gnu-build-system)
     (inputs
-     `(("python" ,python))) ;; needed for the optional libglade-convert program
+     (list python)) ;; needed for the optional libglade-convert program
     (propagated-inputs
-     `(("gtk+-2" ,gtk+-2)
-       ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
+     (list gtk+-2 libxml2)) ; required by libglade-2.0.pc
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://developer.gnome.org/libglade")
     (synopsis "Load glade interfaces and access the glade built widgets")
     (description "Libglade is a library that provides interfaces for loading
@@ -3998,18 +4058,14 @@ widgets built in the loading process.")
                ;; Therefore we must do it.
                (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
     ;; Mentioned as Required by the .pc file
-    (propagated-inputs `(("libxml2" ,libxml2)))
+    (propagated-inputs (list libxml2))
     (inputs
-     `(("popt" ,popt)
-       ("pangox-compat" ,pangox-compat)
-       ("libgnome" ,libgnome)
-       ("libgnomecanvas" ,libgnomecanvas)
-       ("libglade" ,libglade)))
+     (list popt pangox-compat libgnome libgnomecanvas libglade))
     (native-inputs
-     `(("glib" ,glib "bin")             ; for glib-genmarshal, etc.
-       ("intltool" ,intltool)
-       ("xorg-server" ,xorg-server-for-tests) ; For running the tests
-       ("pkg-config" ,pkg-config)))
+     (list `(,glib "bin") ; for glib-genmarshal, etc.
+           intltool
+           xorg-server-for-tests ; For running the tests
+           pkg-config))
     (home-page "https://developer.gnome.org/libbonoboui/")
     (synopsis "Some user interface controls using Bonobo")
     (description  "The Bonobo UI library provides a number of user interface
@@ -4030,14 +4086,12 @@ controls using the Bonobo component framework.")
                 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib" ,glib "bin") ; for glib-mkenums
-       ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
-       ("intltool" ,intltool)))
+     (list pkg-config
+           `(,glib "bin") ; for glib-mkenums
+           gobject-introspection ; for g-ir-scanner
+           intltool))
     (propagated-inputs
-     `(("gtk+" ,gtk+)
-       ("libxres" ,libxres)
-       ("startup-notification" ,startup-notification)))
+     (list gtk+ libxres startup-notification))
     (home-page "https://developer.gnome.org/libwnck/")
     (synopsis "Window Navigator Construction Kit")
     (description
@@ -4062,12 +4116,9 @@ Hints specification (EWMH).")
                 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (propagated-inputs
-     `(("gtk+" ,gtk+-2)
-       ("libxres" ,libxres)
-       ("startup-notification" ,startup-notification)))))
+     (list gtk+-2 libxres startup-notification))))
 
 (define-public goffice
   (package
@@ -4088,15 +4139,10 @@ Hints specification (EWMH).")
                                               (assoc-ref %outputs "doc")
                                               "/share/gtk-doc/html"))))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libgsf" ,libgsf)
-       ("librsvg" ,librsvg)
-       ("libxslt" ,libxslt)
-       ("libxml2" ,libxml2)))
+     (list gtk+ libgsf librsvg libxslt libxml2))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("glib" ,glib "bin")
-       ("pkg-config" ,pkg-config)))
+     (list intltool
+           `(,glib "bin") pkg-config))
     (home-page "https://developer.gnome.org/goffice/")
     (synopsis "Document-centric objects and utilities")
     (description "A GLib/GTK+ set of document-centric objects and utilities.")
@@ -4128,7 +4174,7 @@ Hints specification (EWMH).")
        ,@(package-arguments goffice)))
     (propagated-inputs
      ;; libgoffice-0.8.pc mentions libgsf-1
-     `(("libgsf" ,libgsf)))
+     (list libgsf))
     (inputs
      `(("gtk" ,gtk+-2)
        ,@(alist-delete "gtk" (package-inputs goffice))))))
@@ -4165,16 +4211,16 @@ Hints specification (EWMH).")
                                (assoc-ref outputs "out")
                                "/goffice/plugins"))))))))
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("goffice" ,goffice)
-       ("libgsf" ,libgsf)
-       ("librsvg" ,librsvg)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("python" ,python)
-       ("python-pygobject" ,python-pygobject)
-       ("zlib" ,zlib)))
+     (list glib
+           gtk+
+           goffice
+           libgsf
+           librsvg
+           libxml2
+           libxslt
+           python
+           python-pygobject
+           zlib))
     (native-inputs
      `(("bison" ,bison)
        ("docbook-xml" ,docbook-xml)
@@ -4232,12 +4278,12 @@ engineering.")
        ("gtk+:bin" ,gtk+ "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf+svg)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ("pango" ,pango)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)))
+     (list librsvg
+           gsettings-desktop-schemas
+           gtk+
+           pango
+           python-pycairo
+           python-pygobject))
     (home-page "https://maoschanz.github.io/drawing/")
     (synopsis "Basic image editor for GNOME")
     (description
@@ -4283,15 +4329,15 @@ engineering.")
 (define-public seahorse
   (package
     (name "seahorse")
-    (version "3.36.2")
+    (version "41.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://gnome/sources/" name "/"
-                           (version-major+minor version) "/" name "-"
+                           (version-major version) "/" name "-"
                            version ".tar.xz"))
        (sha256
-        (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5"))))
+        (base32 "1x99i7kdvd8hbxcs5rfrq7nw6r9bfzaw263zaigjjj04h6gc1vp6"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
@@ -4302,7 +4348,11 @@ engineering.")
            (lambda _
              (substitute* "build-aux/meson_post_install.py"
                (("gtk-update-icon-cache") "true"))
-             #t)))))
+             #t))
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a writable HOME.
+             (setenv "HOME" (getcwd)))))))
     (inputs
      `(("gtk+" ,gtk+)
        ("gcr" ,gcr)
@@ -4311,10 +4361,10 @@ engineering.")
        ("openldap" ,openldap)
        ("openssh" ,openssh)
        ("avahi" ,avahi)
-       ("libhandy" ,libhandy-0.0)
+       ("libhandy" ,libhandy)
        ("libpwquality" ,libpwquality)
        ("libsecret" ,libsecret)
-       ("libsoup" ,libsoup)))
+       ("libsoup" ,libsoup-minimal-2)))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
@@ -4332,7 +4382,7 @@ passwords in the GNOME keyring.")
 (define-public vala
   (package
     (name "vala")
-    (version "0.52.0")
+    (version "0.54.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/vala/"
@@ -4340,7 +4390,7 @@ passwords in the GNOME keyring.")
                                   "vala-" version ".tar.xz"))
               (sha256
                (base32
-                "12y6p8wdjp01vmfhxg2cgh32xnyqq6ivblvrar9clnj6vc867qhx"))))
+                "048k5c6c6y7jyb961krnrb7m0kghr0yrkpnfx3j5ckbx652yfkc8"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      '(#:configure-flags '("--enable-coverage")
@@ -4352,8 +4402,7 @@ passwords in the GNOME keyring.")
                (substitute* '("manual.xml" "version.xml.in")
                  (("http://www.oasis-open.org/docbook/xml/4.4/")
                   (string-append (assoc-ref inputs "docbook-xml")
-                                 "/xml/dtd/docbook/"))))
-             #t))
+                                 "/xml/dtd/docbook/"))))))
          (add-before 'check 'pre-check
            (lambda _
              (setenv "CC" "gcc")
@@ -4384,10 +4433,23 @@ the GObject type system and has additional code generation routines that make
 targeting the GNOME stack simple.")
     (license license:lgpl2.1+)))
 
+;;; An older variant kept to build libsoup-minimal-2.
+(define-public vala-0.52
+  (package/inherit vala
+    (version "0.52.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/vala/"
+                                  (version-major+minor version) "/"
+                                  "vala-" version ".tar.xz"))
+              (sha256
+               (base32
+                "12y6p8wdjp01vmfhxg2cgh32xnyqq6ivblvrar9clnj6vc867qhx"))))))
+
 (define-public vte
   (package
     (name "vte")
-    (version "0.60.3")
+    (version "0.64.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/vte/"
@@ -4395,7 +4457,7 @@ targeting the GNOME stack simple.")
                                   "vte-" version ".tar.xz"))
               (sha256
                (base32
-                "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
+                "063ys3330cvhbz1dln9irhciavb2prw098lvhpcc2rx6cl5q4g1b"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -4410,9 +4472,9 @@ targeting the GNOME stack simple.")
        ("gperf" ,gperf)
        ("xmllint" ,libxml2)))
     (propagated-inputs
-     `(("gtk+" ,gtk+)                   ; required by vte-2.91.pc
-       ("gnutls" ,gnutls)               ; ditto
-       ("pcre2" ,pcre2)))               ; ditto
+     (list gtk+ ; required by vte-2.91.pc
+           gnutls ; ditto
+           pcre2))               ; ditto
     (home-page "https://www.gnome.org/")
     (synopsis "Virtual Terminal Emulator")
     (description
@@ -4437,8 +4499,8 @@ editors, IDEs, etc.")
                 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("gtk-doc" ,gtk-doc/stable)
-       ,@(package-native-inputs vte)))
+     (modify-inputs (package-native-inputs vte)
+       (prepend gtk-doc/stable)))
     (arguments
      `(#:configure-flags '("-Ddocs=true")))
   (synopsis "Enhanced VTE terminal widget")
@@ -4467,12 +4529,11 @@ selection and URL hints.")))
     (arguments
      '(#:configure-flags '("--disable-python")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("glib" ,glib "bin")))   ; for glib-genmarshal, etc.
+     (list pkg-config intltool
+           `(,glib "bin")))   ; for glib-genmarshal, etc.
     (propagated-inputs
-     `(("gtk+" ,gtk+-2)         ; required by libvte.pc
-       ("ncurses" ,ncurses))))) ; required by libvte.la
+     (list gtk+-2 ; required by libvte.pc
+           ncurses)))) ; required by libvte.la
 
 (define-public vinagre
   (package
@@ -4492,7 +4553,8 @@ selection and URL hints.")))
     (arguments
      ;; Disable -Werror and such, to avoid build failures on compilation
      ;; warnings.
-     '(#:configure-flags '("--enable-compile-warnings=minimum")
+     '(#:configure-flags '("--enable-compile-warnings=minimum"
+                           "CFLAGS=-O2 -g -fcommon")
        #:phases
        (modify-phases %standard-phases
          (add-before 'install 'skip-gtk-update-icon-cache
@@ -4512,15 +4574,15 @@ selection and URL hints.")))
        ("itstool" ,itstool)
        ("glib-bin" ,glib "bin")))                 ;for glib-compile-schemas
     (inputs
-     `(("libxml2" ,libxml2)
-       ("gtk-vnc" ,gtk-vnc)
-       ("gnome-keyring" ,gnome-keyring)
-       ("libsecret" ,libsecret)
-       ("freerdp" ,freerdp)
-       ("spice" ,spice)
-       ("spice-gtk" ,spice-gtk)
-       ("telepathy-glib" ,telepathy-glib)
-       ("vte" ,vte)))
+     (list libxml2
+           gtk-vnc
+           gnome-keyring
+           libsecret
+           freerdp
+           spice
+           spice-gtk
+           telepathy-glib
+           vte))
     (home-page "https://wiki.gnome.org/Apps/Vinagre")
     (synopsis "Remote desktop viewer for GNOME")
     (description "Vinagre is a remote display client supporting the VNC, SPICE
@@ -4530,7 +4592,7 @@ and RDP protocols.")
 (define-public dconf
   (package
     (name "dconf")
-    (version "0.36.0")
+    (version "0.40.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -4539,14 +4601,13 @@ and RDP protocols.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz"))))
+                "0cs5nayg080y8pb9b7qccm1ni8wkicdmqp1jsgc22110r6j24zyg"))))
     (build-system meson-build-system)
     (propagated-inputs
      ;; In Requires of dconf.pc.
-     `(("glib" ,glib)))
+     (list glib))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("dbus" ,dbus)))
+     (list gtk+ dbus))
     (native-inputs
      `(("bash-completion" ,bash-completion)
        ("libxslt" ,libxslt)                     ;for xsltproc
@@ -4559,7 +4620,7 @@ and RDP protocols.")
        ("vala" ,vala)))
     (arguments
      `(#:glib-or-gtk? #t
-       #:configure-flags '("-Denable-gtk-doc=true")
+       #:configure-flags '("-Dgtk_doc=true")
        #:phases (modify-phases %standard-phases
                   (add-after 'unpack 'increase-test-timeout
                     (lambda _
@@ -4567,8 +4628,7 @@ and RDP protocols.")
                       ;; much longer than the default of 30 seconds.
                       (substitute* "tests/meson.build"
                         (("test\\(unit_test\\[0\\], exe" all)
-                         (string-append all ", timeout : 90")))
-                      #t)))))
+                         (string-append all ", timeout: 300"))))))))
     (home-page "https://developer.gnome.org/dconf/")
     (synopsis "Low-level GNOME configuration system")
     (description "Dconf is a low-level configuration system.  Its main purpose
@@ -4576,78 +4636,29 @@ is to provide a backend to GSettings on platforms that don't already have
 configuration storage systems.")
     (license license:lgpl2.1+)))
 
-(define-public json-glib
+(define-public json-glib-minimal
   (package
-    (name "json-glib")
+    (name "json-glib-minimal")
     (version "1.6.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+              (uri (string-append "mirror://gnome/sources/json-glib/"
+                                  (version-major+minor version)
+                                  "/json-glib-" version ".tar.xz"))
               (sha256
                (base32
                 "092g2dyy1hhl0ix9kp33wcab0pg1qicnsv0cj5ms9g9qs336cgd3"))))
     (build-system meson-build-system)
-    (outputs '("out" "doc"))
     (arguments
-     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
-       #:configure-flags
-       (list
-        "-Ddocs=true"
-        "-Dman=true"
-        ,@(if (%current-target-system)
-              ;; If enabled, gtkdoc-scangobj will try to execute a
-              ;; cross-compiled binary.
-              '("-Dgtk_doc=disabled"
-                ;; Trying to build introspection data when cross-compiling
-                ;; causes errors during linking.
-                "-Dintrospection=disabled")
-              '()))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-docbook
-           (lambda* (#:key native-inputs inputs #:allow-other-keys)
-             (with-directory-excursion "doc"
-               (substitute* (find-files "." "\\.xml$")
-                 (("http://www.oasis-open.org/docbook/xml/4\\.3/")
-                  (string-append (assoc-ref (or native-inputs inputs)
-                                            "docbook-xml")
-                                 "/xml/dtd/docbook/")))
-               (substitute* "meson.build"
-                 (("http://docbook.sourceforge.net/release/xsl/current/")
-                  (string-append (assoc-ref (or native-inputs inputs)
-                                            "docbook-xsl")
-                                 "/xml/xsl/docbook-xsl-1.79.2/"))))
-             #t))
-         ;; When cross-compiling, there are no docs to move.
-         ,(if (%current-target-system)
-              '(add-after 'install 'stub-docs
-                 (lambda* (#:key outputs #:allow-other-keys)
-                   ;; The daemon doesn't like empty output paths.
-                   (mkdir (assoc-ref outputs "doc"))))
-              '(add-after 'install 'move-docs
-                 (lambda* (#:key outputs #:allow-other-keys)
-                   (let* ((out (assoc-ref outputs "out"))
-                          (doc (assoc-ref outputs "doc")))
-                     (mkdir-p (string-append doc "/share"))
-                     (rename-file
-                      (string-append out "/share/gtk-doc")
-                      (string-append doc "/share/gtk-doc"))
-                     #t)))))))
+     `(#:glib-or-gtk? #t))           ; To wrap binaries and/or compile schemas
     (native-inputs
-     `(("docbook-xml" ,docbook-xml-4.3)
-       ("docbook-xsl" ,docbook-xsl)
-       ("gettext" ,gettext-minimal)
-       ("glib" ,glib "bin")      ;for glib-mkenums and glib-genmarshal
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc)
-       ("pkg-config" ,pkg-config)
-       ("xsltproc" ,libxslt)))
+     `(("gettext" ,gettext-minimal)
+       ("glib" ,glib "bin")             ;for glib-mkenums and glib-genmarshal
+       ("pkg-config" ,pkg-config)))
     (inputs
-     `(("bash-minimal" ,bash-minimal)))
+     (list bash-minimal))
     (propagated-inputs
-     `(("glib" ,glib)))                 ;according to json-glib-1.0.pc
+     (list glib))                 ;according to json-glib-1.0.pc
     (home-page "https://wiki.gnome.org/Projects/JsonGlib")
     (synopsis "Glib and GObject implementation of JSON")
     (description "JSON-GLib is a library providing serialization and
@@ -4655,6 +4666,61 @@ described by RFC 4627.  It implements a full JSON parser and generator using
 GLib and GObject, and integrates JSON with GLib data types.")
     (license license:lgpl2.1+)))
 
+(define-public json-glib
+  (package/inherit json-glib-minimal
+    (name "json-glib")
+    (outputs (cons "doc" (package-outputs json-glib-minimal)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments json-glib-minimal)
+       ((#:configure-flags _)
+        `(list "-Ddocs=true"
+               "-Dman=true"
+               ,@(if (%current-target-system)
+                     ;; If enabled, gtkdoc-scangobj will try to execute a
+                     ;; cross-compiled binary.
+                     '("-Dgtk_doc=disabled"
+                       ;; Trying to build introspection data when cross-compiling
+                       ;; causes errors during linking.
+                       "-Dintrospection=disabled")
+                     '())))
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'patch-docbook
+             (lambda* (#:key native-inputs inputs #:allow-other-keys)
+               (with-directory-excursion "doc"
+                 (substitute* (find-files "." "\\.xml$")
+                   (("http://www.oasis-open.org/docbook/xml/4\\.3/")
+                    (string-append (assoc-ref (or native-inputs inputs)
+                                              "docbook-xml")
+                                   "/xml/dtd/docbook/")))
+                 (substitute* "meson.build"
+                   (("http://docbook.sourceforge.net/release/xsl/current/")
+                    (string-append (assoc-ref (or native-inputs inputs)
+                                              "docbook-xsl")
+                                   "/xml/xsl/docbook-xsl-1.79.2/"))))))
+           ;; When cross-compiling, there are no docs to move.
+           ,(if (%current-target-system)
+                '(add-after 'install 'stub-docs
+                   (lambda* (#:key outputs #:allow-other-keys)
+                     ;; The daemon doesn't like empty output paths.
+                     (mkdir (assoc-ref outputs "doc"))))
+                '(add-after 'install 'move-docs
+                   (lambda* (#:key outputs #:allow-other-keys)
+                     (let* ((out (assoc-ref outputs "out"))
+                            (doc (assoc-ref outputs "doc")))
+                       (mkdir-p (string-append doc "/share"))
+                       (rename-file
+                        (string-append out "/share/gtk-doc")
+                        (string-append doc "/share/gtk-doc"))))))))))
+    (native-inputs
+     (append
+         `(("docbook-xml" ,docbook-xml-4.3)
+           ("docbook-xsl" ,docbook-xsl)
+           ("gobject-introspection" ,gobject-introspection)
+           ("gtk-doc" ,gtk-doc)
+           ("xsltproc" ,libxslt))
+         (package-native-inputs json-glib-minimal)))))
+
 (define-public libxklavier
   (package
     (name "libxklavier")
@@ -4688,14 +4754,9 @@ GLib and GObject, and integrates JSON with GLib data types.")
        ("libtool" ,libtool)))
     (propagated-inputs
      ;; Required by libxklavier.pc.
-     `(("glib"    ,glib)
-       ("libxml2" ,libxml2)))
+     (list glib libxml2))
     (inputs
-     `(("iso-codes"        ,iso-codes)
-       ("libxi"            ,libxi)
-       ("libxkbfile"       ,libxkbfile)
-       ("xkbcomp"          ,xkbcomp)
-       ("xkeyboard-config" ,xkeyboard-config)))
+     (list iso-codes libxi libxkbfile xkbcomp xkeyboard-config))
     (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
     (synopsis "High-level API for X Keyboard Extension")
     (description
@@ -4721,11 +4782,9 @@ indicators etc).")
          "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("python" ,python-2)
-       ("python2-pygtk" ,python2-pygtk)
-       ("librsvg" ,librsvg)))
+     (list python-2 python2-pygtk librsvg))
     (home-page "https://www.gnome.org")
     (synopsis "Python bindings to librsvg")
     (description
@@ -4739,7 +4798,7 @@ library.")
 (define-public glib-networking
   (package
     (name "glib-networking")
-    (version "2.68.2")
+    (version "2.70.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/glib-networking/"
@@ -4747,18 +4806,26 @@ library.")
                                   "glib-networking-" version ".tar.xz"))
               (sha256
                (base32
-                "0kwrsp1xbqf852nqmd5cr7hqw771q0dxkzpzlibdp5zn9q2vqpjk"))
+                "0dbg1na239mbavn4hknkax5sns9q2dbdnqw9wcpmhv58mzkhid36"))
               (patches
                (search-patches "glib-networking-gnutls-binding.patch"))))
     (build-system meson-build-system)
+    (arguments
+     (if (target-64bit?)
+         '()
+         (list #:phases
+               #~(modify-phases %standard-phases
+                   (add-after 'unpack 'work-around-32-bit-time-t
+                     (lambda _
+                       (invoke "patch" "--force" "-p1" "-i"
+                               #$(local-file
+                                  (search-patch
+                                   "glib-networking-32-bit-time.patch")))))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("gettext" ,gettext-minimal)))
     (inputs
-     `(("glib" ,glib)
-       ("gnutls" ,gnutls)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("libproxy" ,libproxy)))
+     (list glib gnutls gsettings-desktop-schemas libproxy))
     (home-page "https://wiki.gnome.org/Projects/GLib")
     (synopsis "Network extensions for GLib")
     (description
@@ -4794,7 +4861,7 @@ from the GSettings schemas in gsettings-desktop-schemas.")
     (propagated-inputs
      ;; rest-0.7.pc refers to all these.
      `(("glib"    ,glib)
-       ("libsoup" ,libsoup)
+       ("libsoup" ,libsoup-minimal-2)
        ("libxml2" ,libxml2)))
     (home-page "https://www.gtk.org/")
     (synopsis "RESTful web api query library")
@@ -4804,10 +4871,11 @@ claim to be \"RESTful\".  It includes convenience wrappers for libsoup and
 libxml to ease remote use of the RESTful API.")
     (license license:lgpl2.1+)))
 
-(define-public libsoup
+;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
+(define-public libsoup-minimal
   (package
-    (name "libsoup")
-    (version "2.72.0")
+    (name "libsoup-minimal")
+    (version "3.0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/libsoup/"
@@ -4815,25 +4883,12 @@ libxml to ease remote use of the RESTful API.")
                                   "libsoup-" version ".tar.xz"))
               (sha256
                (base32
-                "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
+                "0pp2s9rj7pp45ac99hbqszznln5ljj38cbc8lbljfc5fmm6v0rai"))))
     (build-system meson-build-system)
-    (outputs '("out" "doc"))
     (arguments
-     `(#:modules ((guix build utils)
-                  (guix build meson-build-system)
-                  (ice-9 popen))
-
-       #:configure-flags '("-Dgtk_doc=true")
+     `(#:configure-flags '("-Dgtk_doc=false")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-docbook-xml
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
-                                          "/xml/dtd/docbook")))
-               (substitute* (find-files "docs/reference")
-                 (("http://.*/docbookx\\.dtd")
-                  (string-append xmldoc "/docbookx.dtd")))
-               #t)))
          (add-after 'unpack 'adjust-tests
            (lambda _
              ;; This test fails due to missing /etc/nsswitch.conf
@@ -4842,53 +4897,37 @@ libxml to ease remote use of the RESTful API.")
                ((".*/sockets/unconnected.*") ""))
 
              ;; These fail because "subdomain.localhost" does not resolve in
-             ;; the build environment.
-             (substitute* "tests/hsts-test.c"
-               ((".*/hsts/basic.*") "")
-               ((".*/hsts/subdomains.*") "")
-               ((".*/hsts/superdomain.*") "")
-               ((".*/hsts/utf8-address.*") ""))
-             (substitute* "tests/hsts-db-test.c"
-               ((".*/hsts-db/subdomains.*") ""))
-
-             ;; FIXME: ssl-test fails, starting with
-             ;; glib-networking 2.68.x.
+             ;; the build environment.  Moreover, the hsts-test suite fails on
+             ;; i686-linux because of errors from `session_get_uri' like
+             ;; "Unexpected status 200 OK (expected 301 Moved Permanently)"
+             ;; (see: https://gitlab.gnome.org/GNOME/libsoup/-/issues/239).
              (substitute* "tests/meson.build"
-               (("[ \t]*\\['ssl', true, \\[\\]\\],") ""))
-             #t))
-         (add-after 'install 'move-doc
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (doc (assoc-ref outputs "doc")))
-               (mkdir-p (string-append doc "/share"))
-               (copy-recursively (string-append out "/share/gtk-doc")
-                                 (string-append doc "/share/gtk-doc"))
-               (delete-file-recursively (string-append out "/share/gtk-doc"))
-               #t))))))
-    (native-inputs
-     `(("docbook-xml" ,docbook-xml-4.1.2)
-       ("glib:bin" ,glib "bin")                   ; for glib-mkenums
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)
-       ("vala" ,vala)
-       ("php" ,php)
-       ("curl" ,curl)
-       ("httpd" ,httpd)))
+               ((".*'name': 'hsts'.*") ""))
+             (substitute* "tests/hsts-db-test.c"
+               ((".*/hsts-db/subdomains.*") "")))))))
+    (native-inputs
+     (list `(,glib "bin") ;for glib-mkenums
+           gobject-introspection
+           intltool
+           pkg-config
+           python-wrapper
+           vala
+           curl
+           gnutls ;for 'certtool'
+           httpd))
     (propagated-inputs
-     ;; libsoup-2.4.pc refers to all of these (except where otherwise noted)
-     `(("brotli" ,google-brotli)
-       ("glib" ,glib)
-       ("glib-networking" ,glib-networking)       ; for GIO runtime modules
-       ("libpsl" ,libpsl)
-       ("libxml2" ,libxml2)
-       ("sqlite" ,sqlite)
-       ("zlib" ,zlib)))
-    (inputs
-     `(("mit-krb5" ,mit-krb5)
-       ("ntlm_auth" ,samba))) ; For ntlm_auth support
+     ;; libsoup-3.0.pc refers to all of these (except where otherwise noted)
+     (list brotli
+           glib
+           glib-networking ; for GIO runtime modules
+           libpsl
+           nghttp2 ;for pkg-config
+           `(,nghttp2 "lib")
+           libxml2
+           sqlite
+           zlib))
+    (inputs
+     (list mit-krb5 samba/fixed))     ; For ntlm_auth support
     (home-page "https://wiki.gnome.org/Projects/libsoup")
     (synopsis "GLib-based HTTP Library")
     (description
@@ -4896,20 +4935,61 @@ libxml to ease remote use of the RESTful API.")
 and the GLib main loop, to integrate well with GNOME applications.")
     (license license:lgpl2.0+)))
 
+;;; An older variant kept to build the 'rest' package.
+(define-public libsoup-minimal-2
+  (package/inherit libsoup-minimal
+    (version "2.72.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/libsoup/"
+                                  (version-major+minor version) "/"
+                                  "libsoup-" version ".tar.xz"))
+              (sha256
+               (base32
+                "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments libsoup-minimal)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'disable-failing-tests
+             (lambda _
+               ;; Disable the SSL test, failing since 2.68 and resolved in
+               ;; libsoup 3.
+               (substitute* "tests/meson.build"
+                 (("[ \t]*\\['ssl', true, \\[\\]\\],") ""))))))))
+    (native-inputs
+     (modify-inputs (package-native-inputs libsoup-minimal)
+       (replace "vala" vala-0.52)))))
 
-;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
-(define-public libsoup-minimal
-  (package/inherit libsoup
-    (name "libsoup-minimal")
-    (outputs (delete "doc" (package-outputs libsoup)))
+(define-public libsoup
+  (package/inherit libsoup-minimal
+    (name "libsoup")
+    (outputs (cons "doc" (package-outputs libsoup-minimal)))
     (arguments
-     (substitute-keyword-arguments (package-arguments libsoup)
+     (substitute-keyword-arguments (package-arguments libsoup-minimal)
        ((#:configure-flags configure-flags)
-        `(delete "-Dgtk_doc=true" ,configure-flags))
+        `(cons "-Dgtk_doc=true"
+               (delete "-Dgtk_doc=false" ,configure-flags)))
        ((#:phases phases)
         `(modify-phases ,phases
-           (delete 'move-doc)))))
-    (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
+           (add-after 'unpack 'patch-docbook-xml
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
+                                            "/xml/dtd/docbook")))
+                 (substitute* (find-files "docs/reference")
+                   (("http://.*/docbookx\\.dtd")
+                    (string-append xmldoc "/docbookx.dtd"))))))
+           (add-after 'install 'move-doc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out"))
+                     (doc (assoc-ref outputs "doc")))
+                 (mkdir-p (string-append doc "/share"))
+                 (copy-recursively (string-append out "/share/gtk-doc")
+                                   (string-append doc "/share/gtk-doc"))
+                 (delete-file-recursively
+                  (string-append out "/share/gtk-doc")))))))))
+    (native-inputs (modify-inputs (package-native-inputs libsoup-minimal)
+                     (prepend docbook-xml-4.1.2 gtk-doc)))))
 
 (define-public libsecret
   (package
@@ -4947,13 +5027,11 @@ and the GLib main loop, to integrate well with GNOME applications.")
        ;("python2-pygobject" ,python2-pygobject)
        ;("python2-pygobject-2" ,python2-pygobject-2)))
     (propagated-inputs
-     `(("glib" ,glib))) ; required by libsecret-1.pc
+     (list glib)) ; required by libsecret-1.pc
     (inputs
      ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
      ;; doesn't seem to affect the build result.
-     `(("docbook-xsl" ,docbook-xsl)
-       ("libgcrypt" ,libgcrypt)
-       ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
+     (list docbook-xsl libgcrypt libxml2)) ; for XML_CATALOG_FILES
     (home-page "https://wiki.gnome.org/Projects/Libsecret/")
     (synopsis "GObject bindings for \"Secret Service\" API")
     (description
@@ -4993,9 +5071,7 @@ and other secrets.  It communicates with the \"Secret Service\" using DBus.")
        ("vala" ,vala)
        ("xmllint" ,libxml2)))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libgnome-games-support" ,libgnome-games-support)
-       ("librsvg" ,librsvg)))
+     (list gtk+ libgnome-games-support librsvg))
     (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
     (synopsis "Logic puzzle game")
     (description "Five or More is a game where you try to align
@@ -5007,25 +5083,25 @@ and other secrets.  It communicates with the \"Secret Service\" using DBus.")
 (define-public gnome-mines
   (package
     (name "gnome-mines")
-    (version "3.36.1")
+    (version "40.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://gnome/sources/" name "/"
-                           (version-major+minor version) "/"
+                           (version-major version) "/"
                            name "-" version ".tar.xz"))
        (sha256
-        (base32 "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i"))))
+        (base32 "0sf6kdvhr4pr3hddnj6ql9larz2wy108sri31id6x9g459nbly8z"))))
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t
+       #:meson ,meson-0.59
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
            (lambda _
              (substitute* "build-aux/meson_post_install.py"
-               (("gtk-update-icon-cache") (which "true")))
-             #t)))))
+               (("gtk-update-icon-cache") (which "true"))))))))
     (native-inputs
      `(("glib:bin" ,glib "bin")       ; for glib-compile-resources
        ("pkg-config" ,pkg-config)
@@ -5036,9 +5112,7 @@ and other secrets.  It communicates with the \"Secret Service\" using DBus.")
        ("yelp" ,yelp)
        ("appstream-glib" ,appstream-glib)))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libgnome-games-support" ,libgnome-games-support)
-       ("librsvg" ,librsvg)))
+     (list gtk+ libgnome-games-support librsvg))
     (home-page "https://wiki.gnome.org/Apps/Mines")
     (synopsis "Minesweeper game")
     (description
@@ -5073,13 +5147,13 @@ floating in an ocean using only your brain and a little bit of luck.")
      `(("glib:bin" ,glib "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("glib" ,glib)                   ; for gio
-       ("gusb" ,gusb)
-       ("udisks" ,udisks)
-       ("libgudev" ,libgudev)
-       ("libcanberra" ,libcanberra)
-       ("polkit" ,polkit)))
+     (list gtk+
+           glib ; for gio
+           gusb
+           udisks
+           libgudev
+           libcanberra
+           polkit))
     (home-page "https://wiki.gnome.org/Apps/MultiWriter")
     (synopsis "Write to multiple USB devices at once")
     (description
@@ -5090,26 +5164,26 @@ once.")
 (define-public gnome-sudoku
   (package
     (name "gnome-sudoku")
-    (version "3.34.1")
+    (version "40.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://gnome/sources/" name "/"
-                           (version-major+minor version) "/"
+                           (version-major version) "/"
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
+         "18slsxifad5cjz4fqi818i66jc9b7kzgn01qxa0ra4y7wcqha4in"))))
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t
+       #:meson ,meson-0.59
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
            (lambda _
              (substitute* "build-aux/post_install.py"
-               (("gtk-update-icon-cache") (which "true")))
-             #t)))))
+               (("gtk-update-icon-cache") (which "true"))))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("desktop-file-utils" ,desktop-file-utils)
@@ -5119,11 +5193,7 @@ once.")
        ("vala" ,vala)
        ("xmllint" ,libxml2)))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("json-glib" ,json-glib)
-       ("libgee" ,libgee)
-       ("librsvg" ,librsvg)
-       ("qqwing" ,qqwing)))
+     (list gtk+ json-glib libgee librsvg qqwing))
     (home-page "https://wiki.gnome.org/Apps/Sudoku")
     (synopsis "Japanese logic game")
     (description
@@ -5136,7 +5206,7 @@ more fun.")
 (define-public gnome-terminal
   (package
     (name "gnome-terminal")
-    (version "3.34.2")
+    (version "3.40.3")
     (source
      (origin
        (method url-fetch)
@@ -5145,7 +5215,7 @@ more fun.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
+         "08hsic7sn32xw12i3j0ard2bhfhp8gmzqm0pa8xzl5l1jhzsmsfb"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      '(#:configure-flags
@@ -5154,24 +5224,26 @@ more fun.")
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-/bin/true
-                     (lambda _
-                       (substitute* "configure"
-                         (("/bin/true") (which "true"))))))))
+           (lambda _
+             (substitute* "configure"
+               (("/bin/true") (which "true"))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("docbook-xsl" ,docbook-xsl)
+       ("pkg-config" ,pkg-config)
        ("desktop-file-utils" ,desktop-file-utils)
        ("intltool" ,intltool)
        ("itstool" ,itstool)
+       ("libxslt" ,libxslt)
        ("xmllint" ,libxml2)))
     (propagated-inputs
-     `(("dconf" ,dconf)))
-    (inputs
-     `(("gtk+" ,gtk+)
-       ("vte" ,vte)
-       ("gnutls" ,gnutls)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("util-linux" ,util-linux "lib")
-       ("vala" ,vala)))
+     (list dconf))
+    (inputs
+     (list gtk+
+           vte
+           gnutls
+           gsettings-desktop-schemas
+           `(,util-linux "lib")
+           vala))
     (home-page "https://wiki.gnome.org/Apps/Terminal")
     (synopsis "Terminal emulator")
     (description
@@ -5183,9 +5255,9 @@ It supports several profiles, multiple tabs and implements several
 keyboard shortcuts.")
     (license license:gpl3+)))
 
-(define-public colord
+(define-public colord-minimal
   (package
-    (name "colord")
+    (name "colord-minimal")
     (version "1.4.5")
     (source
      (origin
@@ -5196,33 +5268,27 @@ keyboard shortcuts.")
         (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
     (build-system meson-build-system)
     (arguments
-     '(;; FIXME: One test fails:
+     '( ;; FIXME: One test fails:
        ;; /colord/icc-store (in lib/colord/colord-self-test-private):
        ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
        ;; application/x-zerosize
        #:tests? #f
        #:glib-or-gtk? #t
-       #:configure-flags (list "-Dlocalstatedir=/var"
-                               ;; No dep on systemd.
-                               "-Dsystemd=false"
-                               ;; Wants to install to global completion dir;
-                               ;; punt.
+       #:configure-flags (list "-Dargyllcms_sensor=false" ;requires spotread
                                "-Dbash_completion=false"
                                "-Ddaemon_user=colord"
+                               "-Ddocs=false"
+                               "-Dlocalstatedir=/var"
+                               "-Dman=false"
                                "-Dsane=true"
-                               "-Dvapi=true"
-                               ;; Requires spotread.
-                               "-Dargyllcms_sensor=false"
-                               ;; TODO: Requires docbook2x.
-                               "-Dman=false")
+                               "-Dsystemd=false") ;no systemd
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-build-system
            (lambda* (#:key outputs #:allow-other-keys)
              (substitute* "rules/meson.build"
                (("udev.get_pkgconfig_variable\\('udevdir'\\)")
-                (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
-             #t))
+                (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))))
          (add-before 'configure 'set-sqlite3-file-name
            (lambda* (#:key inputs #:allow-other-keys)
              ;; "colormgr dump" works by invoking the "sqlite3" command.
@@ -5230,13 +5296,10 @@ keyboard shortcuts.")
              (let ((sqlite (assoc-ref inputs "sqlite")))
                (substitute* "client/cd-util.c"
                  (("\"sqlite3\"")
-                  (string-append "\"" sqlite "/bin/sqlite3\"")))
-               #t))))))
+                  (string-append "\"" sqlite "/bin/sqlite3\"")))))))))
     (native-inputs
      `(("glib:bin" ,glib "bin")         ; for glib-compile-resources, etc.
        ("gettext" ,gettext-minimal)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
     (propagated-inputs
@@ -5246,7 +5309,8 @@ keyboard shortcuts.")
        ("udev" ,eudev)))
     (inputs
      `(("dbus-glib" ,dbus-glib)
-       ("gusb" ,gusb)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gusb" ,gusb-minimal)
        ("libgudev" ,libgudev)
        ("libusb" ,libusb)
        ("polkit" ,polkit)
@@ -5260,6 +5324,41 @@ install and generate color profiles to accurately color manage input and
 output devices.")
     (license license:gpl2+)))
 
+(define-public colord
+  (package/inherit colord-minimal
+    (name "colord")
+    (arguments
+     (substitute-keyword-arguments
+         (package-arguments colord-minimal)
+       ((#:configure-flags flags)
+        `(begin
+           (use-modules (srfi srfi-1))
+           (append '("-Dbash_completion=true"
+                     "-Ddocs=true"
+                     "-Dman=true"
+                     "-Dvapi=true")
+               (fold delete ,flags '("-Dbash_completion=false"
+                                     "-Ddocs=false"
+                                     "-Dman=false")))))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'fix-bash-completion-dir
+             (lambda* (#:key outputs #:allow-other-keys)
+               (substitute* "data/meson.build"
+                 (("bash_completion.get_pkgconfig_variable\
+\\('completionsdir'\\)")
+                  (string-append "'" (assoc-ref outputs "out")
+                                 "/etc/bash_completion.d'")))))))))
+    (native-inputs
+     (append
+         `(("bash-completion" ,bash-completion)
+           ("docbook-xsl-ns" ,docbook-xsl-ns)
+           ("gtk-doc" ,gtk-doc/stable)
+           ("libxml2" ,libxml2)         ;for XML_CATALOG_FILES
+           ("libxslt" ,libxslt)
+           ("vala" ,vala))              ;for VAPI, needed by simple-scan
+         (package-native-inputs colord-minimal)))))
+
 (define-public geoclue
   (package
     (name "geoclue")
@@ -5275,20 +5374,20 @@ output devices.")
        (patches (search-patches "geoclue-config.patch"))))
     (build-system meson-build-system)
     (arguments
-     '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
+     '(#:configure-flags (list "-Ddbus-srv-user=geoclue")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gobject-introspection" ,gobject-introspection)
-       ("modem-manager" ,modem-manager)
-       ("libnotify" ,libnotify)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("intltool" ,intltool)))
+     (list pkg-config
+           gobject-introspection
+           modem-manager
+           libnotify
+           gtk-doc/stable
+           intltool))
     (inputs
      `(("avahi" ,avahi)
        ("glib:bin" ,glib "bin")
        ("glib-networking" ,glib-networking)
        ("json-glib" ,json-glib)
-       ("libsoup" ,libsoup)))
+       ("libsoup" ,libsoup-minimal-2)))
     (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
     (synopsis "Geolocation service")
     (description "Geoclue is a D-Bus service that provides location
@@ -5329,9 +5428,9 @@ permission from user.")
        ("json-glib" ,json-glib)))
     (propagated-inputs
      ;; geocode-glib-1.0.pc refers to GIO.
-     `(("glib" ,glib)))
+     (list glib))
     (inputs
-     `(("libsoup" ,libsoup)))
+     `(("libsoup" ,libsoup-minimal-2)))
     (home-page "https://github.com/GNOME/geocode-glib/")
     (synopsis "Geocoding and reverse-geocoding library")
     (description
@@ -5386,33 +5485,29 @@ faster results and to avoid unnecessary server load.")
                                               (assoc-ref %outputs "out")
                                               "/lib/udev/rules.d"))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc)
-       ("intltool" ,intltool)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("which" ,which)                 ; for ./autogen.sh
-
-       ;; For tests.
-       ("python-dbus" ,python-dbus)
-       ("python-dbusmock" ,python-dbusmock)
-       ("python-pygobject" ,python-pygobject)
-       ("umockdev" ,umockdev)
-
-       ;; For man pages.
-       ("docbook-xsl" ,docbook-xsl)
-       ("libxslt" ,libxslt)             ; for 'xsltproc'
-       ("libxml2" ,libxml2)))           ; for 'XML_CATALOG_FILES'
-    (inputs
-     `(("dbus-glib" ,dbus-glib)
-       ("libgudev" ,libgudev)
-       ("libusb" ,libusb)))
+     (list autoconf
+           automake
+           gobject-introspection
+           gtk-doc
+           intltool
+           libtool
+           pkg-config
+           python
+           which ; for ./autogen.sh
+           ;; For tests.
+           python-dbus
+           python-dbusmock
+           python-pygobject
+           umockdev
+           ;; For man pages.
+           docbook-xsl
+           libxslt ; for 'xsltproc'
+           libxml2))           ; for 'XML_CATALOG_FILES'
+    (inputs
+     (list dbus-glib libgudev libusb))
     (propagated-inputs
      ;; In Requires of upower-glib.pc.
-     `(("glib" ,glib)))
+     (list glib))
     (home-page "https://upower.freedesktop.org/")
     (synopsis "System daemon for managing power devices")
     (description
@@ -5425,15 +5520,15 @@ service via the system message bus.")
 (define-public libgweather
   (package
     (name "libgweather")
-    (version "3.34.0")
+    (version "40.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
+                "1rkf4yv43qcahyx7bismdv6z2vh5azdnm1fqfmnzrada9cm8ykna"))))
     (build-system meson-build-system)
     (arguments
      `(#:tests? #f ; one of two tests requires network access
@@ -5446,17 +5541,18 @@ service via the system message bus.")
        ("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)
-       ("intltool" ,intltool)))
+       ("intltool" ,intltool)
+       ("python-pygobject" ,python-pygobject)))
     (propagated-inputs
      ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
      ;; libsoup.
      `(("gtk+" ,gtk+)
        ("gdk-pixbuf" ,gdk-pixbuf)
        ("libxml2" ,libxml2)
-       ("libsoup" ,libsoup)
+       ("libsoup" ,libsoup-minimal-2)
        ("geocode-glib" ,geocode-glib)))
     (inputs
-     `(("tzdata" ,tzdata)))
+     (list tzdata))
     (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
     (synopsis "Location, time zone, and weather library for GNOME")
     (description
@@ -5467,20 +5563,21 @@ services for numerous locations.")
 (define-public gnome-settings-daemon
   (package
     (name "gnome-settings-daemon")
-    (version "3.34.1")
+    (version "41.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://gnome/sources/" name "/"
-                           (version-major+minor version) "/"
+                           (version-major version) "/"
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))
+         "111qcvlqjpasnswdniy5n53wyrs1y7a91qx1w4nsppnizdhn7jp6"))
        (patches (search-patches "gnome-settings-daemon-gc.patch"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59
+       #:glib-or-gtk? #t
        #:configure-flags
        (list (string-append "-Dudev_dir="
                             (assoc-ref %outputs "out")
@@ -5502,8 +5599,7 @@ services for numerous locations.")
                         (substitute* "plugins/housekeeping/gsd-disk-space.c"
                           (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
                            (string-append "g_strdup (\"" baobab
-                                          "/bin/baobab\")")))
-                        #t))))
+                                          "/bin/baobab\")")))))))
 
        ;; Color management test can't reach the colord system service.
        #:tests? #f))
@@ -5516,32 +5612,32 @@ services for numerous locations.")
        ("docbook-xml" ,docbook-xml-4.2)
        ("docbook-xsl" ,docbook-xsl)))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("baobab" ,baobab)
-       ("colord" ,colord)
-       ("libgudev" ,libgudev)
-       ("upower" ,upower)
-       ("polkit" ,polkit)
-       ("pulseaudio" ,pulseaudio)
-       ("libcanberra" ,libcanberra)
-       ("libx11" ,libx11)
-       ("libxtst" ,libxtst)
-       ("lcms" ,lcms)
-       ("libnotify" ,libnotify)
-       ("geoclue" ,geoclue)
-       ("geocode-glib" ,geocode-glib)
-       ("libgweather" ,libgweather)
-       ("gnome-desktop" ,gnome-desktop)
-       ("nss" ,nss)
-       ("cups" ,cups)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("libwacom" ,libwacom)
-       ("librsvg" ,librsvg)
-       ("xf86-input-wacom" ,xf86-input-wacom)
-       ("wayland" ,wayland)
-       ("network-manager" ,network-manager)
-       ("gcr" ,gcr)
-       ("modem-manager" ,modem-manager)))
+     (list alsa-lib
+           baobab
+           colord
+           libgudev
+           upower
+           polkit
+           pulseaudio
+           libcanberra
+           libx11
+           libxtst
+           lcms
+           libnotify
+           geoclue
+           geocode-glib
+           libgweather
+           gnome-desktop
+           nss
+           cups
+           gsettings-desktop-schemas
+           libwacom
+           librsvg
+           xf86-input-wacom
+           wayland
+           network-manager
+           gcr
+           modem-manager))
     (home-page "https://www.gnome.org")
     (synopsis "GNOME settings daemon")
     (description
@@ -5568,18 +5664,12 @@ settings, themes, mouse settings, and startup of other daemons.")
     ;; FIXME: Tests require gvfs.
     `(#:tests? #f))
    (native-inputs
-    `(("intltool" ,intltool)
-      ("glib" ,glib "bin")
-      ("gobject-introspection" ,gobject-introspection)
-      ("pkg-config" ,pkg-config)))
+    (list intltool
+          `(,glib "bin") gobject-introspection pkg-config))
    (propagated-inputs
-    `(("glib" ,glib)
-      ("gmime" ,gmime)
-      ("libarchive" ,libarchive)
-      ("libgcrypt" ,libgcrypt)
-      ("libxml2" ,libxml2)))
+    (list glib gmime libarchive libgcrypt libxml2))
    (inputs
-    `(("libsoup" ,libsoup)))
+    (list libsoup))
    (home-page "https://projects.gnome.org/totem")
    (synopsis "Library to parse and save media playlists for GNOME")
    (description "Totem-pl-parser is a GObjects-based library to parse and save
@@ -5611,10 +5701,7 @@ playlists in a variety of formats.")
        ("pkg-config" ,pkg-config)
        ("xmllint" ,libxml2)))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("guile" ,guile-2.2)
-       ("libcanberra" ,libcanberra)
-       ("librsvg" ,librsvg)))
+     (list gtk+ guile-2.2 libcanberra librsvg))
     (home-page "https://wiki.gnome.org/Apps/Aisleriot")
     (synopsis "Solitaire card games")
     (description
@@ -5625,7 +5712,7 @@ which are easy to play with the aid of a mouse.")
 (define-public amtk
   (package
     (name "amtk")
-    (version "5.0.2")
+    (version "5.3.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/amtk/"
@@ -5633,18 +5720,14 @@ which are easy to play with the aid of a mouse.")
                                   "amtk-" version ".tar.xz"))
               (sha256
                (base32
-                "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
-    (build-system gnu-build-system)
-    (arguments
-     '(#:configure-flags '("--enable-gtk-doc")))
+                "12v3nj1bb7507ndprjggq0hpz8k719b4bwvl8sm43p3ibmn27anm"))))
+    (build-system meson-build-system)
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("glib:bin" ,glib "bin")         ; for glib-mkenums
-       ("gtk-doc" ,gtk-doc/stable)
-       ("pkg-config" ,pkg-config)))
+     (list gobject-introspection
+           `(,glib "bin") ; for glib-mkenums
+           gtk-doc/stable pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)))
+     (list glib gtk+))
     (home-page "https://wiki.gnome.org/Projects/Amtk")
     (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
     (description
@@ -5656,26 +5739,33 @@ both a traditional UI or a modern UI with a GtkHeaderBar.")
 (define-public devhelp
   (package
     (name "devhelp")
-    (version "3.34.0")
+    (version "41.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
+                "1lk0gycjvs6gibhy0zs3ffkrkzrkyl5nkp7n60hgpa6syjq91apc"))))
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t
+       #:meson ,meson-0.59
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
            ;; Don't create 'icon-theme.cache'.
            (lambda _
-             (substitute* "meson_post_install.py"
-               (("gtk-update-icon-cache") "true"))
-             #t)))))
+             (substitute* "build-aux/meson/meson_post_install.py"
+               (("gtk-update-icon-cache") "true"))))
+         (add-after 'unpack 'fix-devhelp-gir-inputs
+           ;; It still mentions webkitgtk 4.0
+           (lambda _
+             (substitute* "devhelp/meson.build"
+               (("'WebKit2-4.0'") "'WebKit2-4.1'")))))))
+    (propagated-inputs
+     (list gsettings-desktop-schemas))
     (native-inputs
      `(("intltool" ,intltool)
        ("itstool" ,itstool)
@@ -5683,9 +5773,7 @@ both a traditional UI or a modern UI with a GtkHeaderBar.")
        ("glib:bin" ,glib "bin") ; for glib-mkmenus
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("amtk" ,amtk)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("webkitgtk" ,webkitgtk)))
+     (list amtk gsettings-desktop-schemas webkitgtk))
     (home-page "https://wiki.gnome.org/Apps/Devhelp")
     (synopsis "API documentation browser for GNOME")
     (description
@@ -5694,6 +5782,22 @@ natively with GTK-Doc (the API reference system developed for GTK+ and used
 throughout GNOME for API documentation).")
     (license license:gpl2+)))
 
+(define-public devhelp-with-libsoup2
+  (package/inherit devhelp
+    (arguments
+     (substitute-keyword-arguments (package-arguments devhelp)
+       ((#:phases phases '%standard-phases)
+        `(modify-phases %standard-phases
+           (add-after 'unpack 'skip-gtk-update-icon-cache
+             ;; Don't create 'icon-theme.cache'.
+             (lambda _
+               (substitute* "build-aux/meson/meson_post_install.py"
+                 (("gtk-update-icon-cache") "true"))))))))
+    (inputs
+     `(("amtk" ,amtk)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("webkitgtk" ,webkitgtk-with-libsoup2)))))
+
 (define-public cogl
   (package
     (name "cogl")
@@ -5715,21 +5819,21 @@ throughout GNOME for API documentation).")
        ("xorg-server" ,xorg-server-for-tests)
        ("pkg-config" ,pkg-config)))
     (propagated-inputs
-     `(("glib" ,glib)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxfixes" ,libxfixes)
-       ("libxdamage" ,libxdamage)
-       ("libxcomposite" ,libxcomposite)
-       ("libxrandr" ,libxrandr)))
-    (inputs
-     `(("mesa" ,mesa)
-       ("cairo" ,cairo)
-       ("pango" ,pango)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("wayland" ,wayland)))
+     (list glib
+           gdk-pixbuf
+           libx11
+           libxext
+           libxfixes
+           libxdamage
+           libxcomposite
+           libxrandr))
+    (inputs
+     (list mesa
+           cairo
+           pango
+           gstreamer
+           gst-plugins-base
+           wayland))
     (arguments
      `(#:disallowed-references (,xorg-server-for-tests)
        #:configure-flags (list "--enable-cogl-gst"
@@ -5801,16 +5905,16 @@ without stepping on each others toes.")
        ("pkg-config" ,pkg-config)
        ("xsltproc" ,libxslt)))
     (propagated-inputs
-     `(("cogl" ,cogl)
-       ("cairo" ,cairo)
-       ("atk" ,atk)
-       ("gtk+" ,gtk+)
-       ("json-glib" ,json-glib)
-       ("glib" ,glib)
-       ("libxcomposite" ,libxcomposite)
-       ("libxdamage" ,libxdamage)
-       ("libxext" ,libxext)
-       ("xinput" ,xinput)))
+     (list cogl
+           cairo
+           atk
+           gtk+
+           json-glib
+           glib
+           libxcomposite
+           libxdamage
+           libxext
+           xinput))
     (inputs
      `(("libxkbcommon" ,libxkbcommon)
        ("udev" ,eudev)))
@@ -5847,12 +5951,10 @@ presentations, kiosk style applications and so on.")
          "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list pkg-config gobject-introspection))
     (propagated-inputs
      ;; clutter-gtk.pc refers to all these.
-     `(("clutter" ,clutter)
-       ("gtk+" ,gtk+)))
+     (list clutter gtk+))
     (home-page "http://www.clutter-project.org")
     (synopsis "OpenGL-based interactive canvas library GTK+ widget")
     (description
@@ -5875,13 +5977,10 @@ presentations, kiosk style applications and so on.")
         (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("glib:bin" ,glib "bin")         ; for glib-mkenums
-       ("pkg-config" ,pkg-config)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list `(,glib "bin") ; for glib-mkenums
+           pkg-config gobject-introspection))
     (inputs
-     `(("clutter" ,clutter)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)))
+     (list clutter gstreamer gst-plugins-base))
     (home-page "http://www.clutter-project.org")
     (synopsis "Integration library for using GStreamer with Clutter")
     (description
@@ -5894,7 +5993,7 @@ OpenGL-based interactive canvas library.")
 (define-public libchamplain
   (package
     (name "libchamplain")
-    (version "0.12.16")
+    (version "0.12.20")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -5902,22 +6001,19 @@ OpenGL-based interactive canvas library.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
-    (build-system gnu-build-system)
-    (arguments '(#:configure-flags '("--enable-vala")))
+                "0rihpb0npqpihqcdz4w03rq6xl7jdckfqskvv9diq2hkrnzv8ch2"))))
+    (build-system meson-build-system)
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)
-       ("vala" ,vala)))
+     (list gobject-introspection pkg-config vala))
     (propagated-inputs
-     `(("libsoup" ,libsoup)
-       ("sqlite" ,sqlite)
-       ("clutter" ,clutter)
-       ("clutter-gtk" ,clutter-gtk)
-       ("glib:bin" ,glib "bin")                   ;glib-mkenums, etc.
-       ("cairo" ,cairo)
-       ("gtk+3" ,gtk+)
-       ("glib" ,glib)))
+     (list libsoup-minimal-2
+           sqlite
+           clutter
+           clutter-gtk
+           `(,glib "bin") ;glib-mkenums, etc.
+           cairo
+           gtk+
+           glib))
     (home-page "https://projects.gnome.org/libchamplain/")
     (synopsis "C library providing a ClutterActor to display maps")
     (description
@@ -5942,13 +6038,9 @@ such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
          "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list intltool pkg-config gobject-introspection))
     (inputs
-     `(("glib" ,glib)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("sqlite" ,sqlite)))
+     (list glib gdk-pixbuf sqlite))
     ;; XXX TODO: Figure out how to run the test suite.
     (arguments `(#:tests? #f))
     (home-page "https://wiki.gnome.org/Projects/Gom")
@@ -5982,13 +6074,10 @@ queries upon that data.")
                 (setenv "HOME" (getcwd))
                 #t)))))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("vala" ,vala)))
+     (list intltool pkg-config vala))
     (propagated-inputs
      ;; Required by libgnome-games-support-1.0.pc
-     `(("gtk+" ,gtk+)
-       ("libgee" ,libgee)))
+     (list gtk+ libgee))
     (home-page "https://www.gnome.org/")
     (synopsis "Useful functionality shared among GNOME games")
     (description
@@ -6028,9 +6117,7 @@ GNOME Games, but it may be used by others.")
        ("vala" ,vala)
        ("xmllint" ,libxml2)))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libgnome-games-support" ,libgnome-games-support)
-       ("librsvg" ,librsvg)))
+     (list gtk+ libgnome-games-support librsvg))
     (home-page "https://wiki.gnome.org/Apps/Klotski")
     (synopsis "Sliding block puzzles")
     (description
@@ -6054,20 +6141,20 @@ as possible!")
         (base32 "0ywjvh7xw4ql1q4fvl0q5n06n08pga1g1nc9l7c3x5214gr3fj6i"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("glib:bin" ,glib "bin")         ; for glib-mkenums and glib-genmarshal
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("vala" ,vala)))
-    (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libxml2" ,libxml2)
-       ("liboauth" ,liboauth)
-       ("libsoup" ,libsoup)
-       ("totem-pl-parser" ,totem-pl-parser)))
+     (list `(,glib "bin") ; for glib-mkenums and glib-genmarshal
+           intltool
+           pkg-config
+           gobject-introspection
+           gtk-doc/stable
+           vala))
+    (inputs
+     (list cyrus-sasl
+           glib
+           gtk+
+           libxml2
+           liboauth
+           libsoup-minimal-2
+           totem-pl-parser))
     (native-search-paths
      (list (search-path-specification
             (variable "GRL_PLUGIN_PATH")
@@ -6163,39 +6250,40 @@ discovery protocols.")
        ("xmllint" ,libxml2)
        ("xorg-server" ,xorg-server-for-tests)))
     (propagated-inputs
-     `(("dconf" ,dconf)))
-    (inputs
-     `(("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("atk" ,atk)
-       ("cairo" ,cairo)
-       ("dbus-glib" ,dbus-glib)
-       ("clutter" ,clutter)
-       ("clutter-gtk" ,clutter-gtk)
-       ("clutter-gst" ,clutter-gst)
-       ("xorgproto" ,xorgproto)
-       ("libxxf86vm" ,libxxf86vm)
-       ("libxtst" ,libxtst)
-       ("libxrandr" ,libxrandr)
-       ("libxml2" ,libxml2)
-       ("libsoup" ,libsoup)
-       ("libpeas" ,libpeas)
-       ("librsvg" ,librsvg)
-       ("lirc" ,lirc)
-       ("gnome-desktop" ,gnome-desktop)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gst-plugins-good" ,gst-plugins-good)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("adwaita-icon-theme" ,adwaita-icon-theme)
-       ("python" ,python)
-       ("python-pygobject" ,python-pygobject)
-       ("totem-pl-parser" ,totem-pl-parser)
-       ("grilo" ,grilo)
-       ("grilo-plugins" ,grilo-plugins)
-       ("vala" ,vala)))
-    (arguments
-     `(#:glib-or-gtk? #t
+     (list dconf))
+    (inputs
+     (list gtk+
+           gdk-pixbuf
+           atk
+           cairo
+           dbus-glib
+           clutter
+           clutter-gtk
+           clutter-gst
+           xorgproto
+           libxxf86vm
+           libxtst
+           libxrandr
+           libxml2
+           libsoup
+           libpeas
+           librsvg
+           lirc
+           gnome-desktop
+           gstreamer
+           gst-plugins-base
+           gst-plugins-good
+           gsettings-desktop-schemas
+           adwaita-icon-theme
+           python
+           python-pygobject
+           totem-pl-parser
+           grilo
+           grilo-plugins
+           vala))
+    (arguments
+     `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+       #:glib-or-gtk? #t
 
        ;; Disable automatic GStreamer plugin installation via PackageKit and
        ;; all that.
@@ -6283,7 +6371,7 @@ which can read a large number of file formats.")
                `("GUIX_PYTHONPATH"             ":" prefix (,python-path))))
            #t)))))
    (propagated-inputs
-    `(("dconf" ,dconf)))
+    (list dconf))
    (native-inputs
     `(("itstool" ,itstool)
       ("intltool" ,intltool)
@@ -6297,7 +6385,7 @@ which can read a large number of file formats.")
       ("tdb" ,tdb)
       ("gnome-desktop" ,gnome-desktop)
       ("python" ,python)
-      ("python-pygobject" ,python2-pygobject)
+      ("python-pygobject" ,python-pygobject)
       ("vala" ,vala)
       ("gmime" ,gmime)
       ("adwaita-icon-theme" ,adwaita-icon-theme)
@@ -6313,6 +6401,7 @@ which can read a large number of file formats.")
       ("libsoup" ,libsoup)
       ("libnotify" ,libnotify)
       ("libpeas" ,libpeas)
+      ("libsoup" ,libsoup-minimal-2)
       ("lirc" ,lirc)
       ;; TODO: clutter* only used by visualizer plugin, which also requires mx
       ;;("clutter" ,clutter)
@@ -6335,18 +6424,19 @@ supports playlists, song ratings, and any codecs installed through gstreamer.")
 (define-public eog
  (package
    (name "eog")
-   (version "3.34.1")
+   (version "40.3")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version) "/"
+                                (version-major version) "/"
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
+              "0ddjwcd77nw0rxb5x5bz5hd671m8gya9827p8rsnb58x103kpai8"))))
    (build-system meson-build-system)
    (arguments
-    `(#:configure-flags
+    `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+      #:configure-flags
       ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
       (list (string-append "-Dc_link_args=-Wl,-rpath="
                            (assoc-ref %outputs "out") "/lib/eog"))
@@ -6356,17 +6446,15 @@ supports playlists, song ratings, and any codecs installed through gstreamer.")
            ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "meson_post_install.py"
-               (("gtk-update-icon-cache") "true"))
-             #t))
+               (("gtk-update-icon-cache") "true"))))
         (add-after 'install 'wrap-eog
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((out               (assoc-ref outputs "out"))
                   (gi-typelib-path   (getenv "GI_TYPELIB_PATH")))
               (wrap-program (string-append out "/bin/eog")
-                `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
-            #t)))))
+                `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
    (propagated-inputs
-    `(("dconf" ,dconf)))
+    (list dconf))
    (native-inputs
     `(("intltool" ,intltool)
       ("itstool" ,itstool)
@@ -6382,6 +6470,7 @@ supports playlists, song ratings, and any codecs installed through gstreamer.")
       ("lcms" ,lcms)
       ("libexif" ,libexif)
       ("libpeas" ,libpeas)
+      ("libportal" ,libportal)
       ("libjpeg" ,libjpeg-turbo)
       ("librsvg" ,librsvg)
       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
@@ -6399,7 +6488,7 @@ supports image conversion, rotation, and slideshows.")
   ;; 'XDG_DATA_DIRS' appropriately set.
   (package
     (name "eog-plugins")
-    (version "3.26.4")
+    (version "3.26.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/eog-plugins/"
@@ -6407,20 +6496,19 @@ supports image conversion, rotation, and slideshows.")
                                   "eog-plugins-" version ".tar.xz"))
               (sha256
                (base32
-                "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
+                "0gbvl54hjawcrj2cbkvsw5jx11p6jv1xkc58c8ikwwpb56gc3ric"))))
     (build-system gnu-build-system)
     (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
     (synopsis "Extensions for the Eye of GNOME image viewer")
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gettext" ,gettext-minimal)))
+     (list pkg-config gettext-minimal))
     (inputs
-     `(("eog" ,eog)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libpeas" ,libpeas)
-       ("libexif" ,libexif)
-       ("libchamplain" ,libchamplain)))
+     (list eog
+           glib
+           gtk+
+           libpeas
+           libexif
+           libchamplain))
     (description
      "This package provides plugins for the Eye of GNOME (EOG) image viewer,
 notably:
@@ -6454,8 +6542,8 @@ side panel;
        ("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)))
     (propagated-inputs
-     `(("glib" ,glib)                   ; in Requires of gudev-1.0.pc
-       ("eudev" ,eudev)))               ; in Requires.private of gudev-1.0.pc
+     (list glib ; in Requires of gudev-1.0.pc
+           eudev))               ; in Requires.private of gudev-1.0.pc
     (inputs
      `(("udev" ,eudev)))
     (home-page "https://wiki.gnome.org/Projects/libgudev")
@@ -6468,7 +6556,7 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
 (define-public gvfs
   (package
     (name "gvfs")
-    (version "1.40.2")
+    (version "1.48.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/gvfs/"
@@ -6476,13 +6564,11 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
                                   "gvfs-" version ".tar.xz"))
               (sha256
                (base32
-                "07lpcfric3h0302n9b1pwa38mjb76r9s98kg2867y2d1qvzfivxx"))
-              ;; This patch may be removed when upgrading to version 1.46.x.
-              (patches
-               (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
+                "1hlxl6368h6nyqp1888szxs9hnpcw98k3h23dgqi29xd38klzsmj"))))
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59
+       #:glib-or-gtk? #t
        #:configure-flags
        (list "-Dsystemduserunitdir=no"
              "-Dtmpfilesdir=no"
@@ -6490,7 +6576,7 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
              (string-append "-Dc_link_args=-Wl,-rpath="
                             (assoc-ref %outputs "out") "/lib/gvfs"))))
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
+     `(("glib:bin" ,glib "bin")         ;for glib-genmarshal, etc.
        ("gettext" ,gettext-minimal)
        ("gtk-doc" ,gtk-doc/stable)
        ("pkg-config" ,pkg-config)
@@ -6501,10 +6587,11 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
        ("docbook-xsl" ,docbook-xsl)
        ("dbus" ,dbus)
        ("elogind" ,elogind)
-       ("fuse" ,fuse)
+       ("fuse" ,fuse-3)
        ("gcr" ,gcr)
        ("glib" ,glib)
        ("gnome-online-accounts" ,gnome-online-accounts)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("libarchive" ,libarchive)
        ("libbluray" ,libbluray)
        ("libcap" ,libcap)
@@ -6523,47 +6610,47 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
        ("openssh" ,openssh)
        ("polkit" ,polkit)
        ("udisks" ,udisks)))
-    ;; CVE-2019-{12447,12448,12449} are fixed in the 1.40.2 release.
-    (properties '((lint-hidden-cve . ("CVE-2019-12447"
-                                      "CVE-2019-12448"
-                                      "CVE-2019-12449"))))
     (home-page "https://wiki.gnome.org/gvfs/")
     (synopsis "Userspace virtual file system for GIO")
     (description
      "GVFS is a userspace virtual file system designed to work with the I/O
-abstraction of GIO.  It contains a GIO module that seamlessly adds GVFS support
-to all applications using the GIO API.  It also supports exposing the GVFS
-mounts to non-GIO applications using FUSE.
+abstraction of GIO.  It contains a GIO module that seamlessly adds GVFS
+support to all applications using the GIO API.  It also supports exposing the
+GVFS mounts to non-GIO applications using FUSE.
 
 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
 DAV, and others.")
     (license license:lgpl2.0+)))
 
-(define-public gusb
+(define-public gusb-minimal
   (package
-    (name "gusb")
+    (name "gusb-minimal")
     (version "0.3.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                     (url "https://github.com/hughsie/libgusb")
-                     (commit version)))
+                    (url "https://github.com/hughsie/libgusb")
+                    (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
                 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
     (build-system meson-build-system)
-    (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)
-       ("vala" ,vala)
-       ("gtk-doc" ,gtk-doc/stable)))
+    (arguments
+     `(#:tests? #f          ;libusb fails to initialize.  Wonder what that is.
+       #:configure-flags
+       (cons "-Ddocs=false"
+             (if ,(%current-target-system)
+                 ;; Introspection data cannot currently be cross-compiled.
+                 '("-Dintrospection=false"
+                   ;; Requires introspection data.
+                   "-Dvapi=false")
+                 '()))))
+    (native-inputs
+     (list gobject-introspection pkg-config vala))
     (propagated-inputs
      ;; Both of these are required by gusb.pc.
-     `(("glib" ,glib)
-       ("libusb" ,libusb)))
-    (arguments
-     `(#:tests? #f)) ;libusb fails to initialize.  Wonder what that is.
+     (list glib libusb))
     (home-page "https://github.com/hughsie/libgusb")
     (synopsis "GLib binding for libusb1")
     (description
@@ -6573,22 +6660,35 @@ and integration into a mainloop.  This makes it easy to integrate low level
 USB transfers with your high-level application or system daemon.")
     (license license:lgpl2.1+)))
 
+(define-public gusb
+  (package/inherit gusb-minimal
+    (name "gusb")
+    (arguments
+     (substitute-keyword-arguments (package-arguments gusb-minimal)
+       ((#:configure-flags flags)
+        `(cons "-Ddocs=true"
+               (delete "-Ddocs=false" ,flags)))))
+    (native-inputs
+     (cons `("gtk-doc" ,gtk-doc/stable)
+           (package-native-inputs gusb-minimal)))))
+
 (define-public simple-scan
   (package
     (name "simple-scan")
-    (version "3.38.2")
+    (version "40.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://gnome/sources/simple-scan/"
-                           (version-major+minor version) "/"
+                           (version-major version) "/"
                            "simple-scan-" version ".tar.xz"))
        (sha256
-        (base32 "02sdkhxgr6i7iy481h4xavgaqd0a5dlsipzwrm4qd242jrr813d8"))))
+        (base32 "195rh8zj5n497gj42rd77mvkdl15hk0i08ll5h4hb9kcrgj7jlzb"))))
     (build-system meson-build-system)
     ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
     (arguments
-     '(#:glib-or-gtk? #t))
+     `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+       #:glib-or-gtk? #t))
     (inputs
      `(("gtk" ,gtk+)
        ("zlib" ,zlib)
@@ -6596,6 +6696,7 @@ USB transfers with your high-level application or system daemon.")
        ("colord" ,colord)
        ("gdk-pixbuf" ,gdk-pixbuf)
        ("gusb" ,gusb)
+       ("libhandy" ,libhandy)
        ("libsane" ,sane-backends)))
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -6686,48 +6787,46 @@ a secret password store, an adblocker, and a modern UI.")
 (define-public epiphany
   (package
     (name "epiphany")
-    (version "3.34.4")
+    (version "40.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/epiphany/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   "epiphany-" version ".tar.xz"))
               (sha256
                (base32
-                "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
+                "0r7m34xzz3shdfxf2abxb069izak3yv3ijlg29qy4pfmyawkilfs"))))
 
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t
+       #:meson ,meson-0.59
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
            ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "post_install.py"
-               (("gtk-update-icon-cache") "true"))
-             #t))
+               (("gtk-update-icon-cache") "true"))))
          (add-after 'unpack 'disable-failing-tests
            (lambda _
              (substitute* "tests/meson.build"
-               ;; embed_shell fails, because webkitgtk apparently no longer supports
-               ;; overriding the ftp schema
-               ;; web_app_utils fails due to missing network access
+               ;; embed_shell fails, because webkitgtk apparently no longer
+               ;; supports overriding the ftp schema web_app_utils fails due
+               ;; to missing network access.
                (("(embed_shell|web_app_utils)_test,")
-                "find_program('sh'), args: ['-c', 'exit 77'],"))
-             #t))
+                "find_program('sh'), args: ['-c', 'exit 77'],"))))
          (add-before 'check 'pre-check
            (lambda _
              ;; Tests require a running X server.
              (system "Xvfb :1 &")
-             (setenv "DISPLAY" ":1")
-             #t)))
+             (setenv "DISPLAY" ":1"))))
        #:configure-flags
        ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
        (list (string-append "-Dc_link_args=-Wl,-rpath="
                             (assoc-ref %outputs "out") "/lib/epiphany"))))
     (propagated-inputs
-     `(("dconf" ,dconf)))
+     (list dconf))
     (native-inputs
      `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
        ("glib:bin" ,glib "bin") ; for glib-mkenums
@@ -6739,19 +6838,22 @@ a secret password store, an adblocker, and a modern UI.")
     (inputs
      `(("avahi" ,avahi)
        ("gcr" ,gcr)
-       ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
+       ("librsvg" ,librsvg) ; for loading SVG files
        ("glib-networking" ,glib-networking)
        ("gnome-desktop" ,gnome-desktop)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("json-glib" ,json-glib)
        ("iso-codes" ,iso-codes)
+       ("libarchive" ,libarchive)
        ("libdazzle" ,libdazzle)
+       ("libhandy" ,libhandy)
        ("libnotify" ,libnotify)
+       ("libportal" ,libportal)
        ("libsecret" ,libsecret)
        ("libxslt" ,libxslt)
        ("nettle" ,nettle) ; for hogweed
        ("sqlite" ,sqlite)
-       ("webkitgtk" ,webkitgtk)))
+       ("webkitgtk" ,webkitgtk-with-libsoup2)))
     (home-page "https://wiki.gnome.org/Apps/Web")
     (synopsis "GNOME web browser")
     (description
@@ -6821,16 +6923,16 @@ of running programs and invoke methods on those interfaces.")
 (define-public yelp-xsl
   (package
     (name "yelp-xsl")
-    (version "3.34.2")
+    (version "41.0")
     (source
      (origin
        (method url-fetch)
        (uri
         (string-append "mirror://gnome/sources/" name "/"
-                       (version-major+minor version) "/"
+                       (version-major version) "/"
                        name "-" version ".tar.xz"))
        (sha256
-        (base32 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
+        (base32 "19d46rkajvr0f04560vlrzwvac88x5j8ilvzwkawbn5vjg069kf8"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -6863,29 +6965,23 @@ jQuery.Syntax JavaScript libraries.")
 (define-public yelp
   (package
     (name "yelp")
-    (version "3.32.2")
+    (version "41.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
+                "11shrqass8ak8m10nayqssa6sbrrxa13ffpamvqi1c0yzkxdk9r5"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
-       ("intltool" ,intltool)
-       ("itstool" ,itstool)
-       ("pkg-config" ,pkg-config)))
+     (list `(,glib "bin") ; for glib-genmarshal, etc.
+           intltool itstool pkg-config))
     (propagated-inputs
-     `(("dconf" ,dconf)))
+     (list dconf))
     (inputs
-     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("libxslt" ,libxslt)
-       ("sqlite" ,sqlite)
-       ("webkitgtk" ,webkitgtk)
-       ("yelp-xsl" ,yelp-xsl)))
+     (list gsettings-desktop-schemas libxslt sqlite webkitgtk yelp-xsl))
     (home-page "https://wiki.gnome.org/Apps/Yelp")
     (synopsis "GNOME help browser")
     (description
@@ -6909,9 +7005,9 @@ freedesktop.org help system specification.")
         (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("yelp-xsl" ,yelp-xsl)))
+     (list yelp-xsl))
     (propagated-inputs
      ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
      `(("itstool" ,itstool)
@@ -6951,11 +7047,9 @@ wraps things up in a developer-friendly way.")
                 (("@INTROSPECTION_TYPELIBDIR@")
                  (string-append out "/lib/girepository-1.0/")))))))))
     (native-inputs
-     `(("glib" ,glib "bin")
-       ("pkg-config" ,pkg-config)))
+     (list `(,glib "bin") pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list glib gobject-introspection))
     (home-page "https://wiki.gnome.org/Projects/Libgee")
     (synopsis "GObject collection library")
     (description
@@ -6977,16 +7071,13 @@ classes for commonly used data structures.")
                 "0k4ljzzz5dwqndw8awvlw3ala8rh3b2rk9i4jzvywc53mi9ba8i3"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("gcr" ,gcr)
-       ("glib" ,glib "bin")
-       ("pkg-config" ,pkg-config)
-       ("vala" ,vala)))
+     (list gcr
+           `(,glib "bin") pkg-config vala))
     (propagated-inputs
      ;; Listed in "Requires" section of gexiv2.pc
-     `(("exiv2" ,exiv2)))
+     (list exiv2))
     (inputs
-     `(("glib" ,glib)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list glib gobject-introspection))
     (home-page "https://wiki.gnome.org/Projects/gexiv2")
     (synopsis "GObject wrapper around the Exiv2 photo metadata library")
     (description
@@ -7019,7 +7110,7 @@ metadata in photo and video files of various formats.")
                (("update-desktop-database") (which "true")))
              #t)))))
     (propagated-inputs
-     `(("dconf" ,dconf)))
+     (list dconf))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
@@ -7037,10 +7128,9 @@ metadata in photo and video files of various formats.")
        ("libgphoto2" ,libgphoto2)
        ("libgudev" ,libgudev)
        ("libraw" ,libraw)
-       ("libsoup" ,libsoup)
        ("libxml2" ,libxml2)
        ("sqlite" ,sqlite)
-       ("webkitgtk" ,webkitgtk)))
+       ("webkitgtk" ,webkitgtk-with-libsoup2)))
     (home-page "https://wiki.gnome.org/Apps/Shotwell")
     (synopsis "Photo manager for GNOME 3")
     (description
@@ -7053,7 +7143,7 @@ share them with others via social networking and more.")
 (define-public file-roller
   (package
     (name "file-roller")
-    (version "3.38.0")
+    (version "3.40.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/file-roller/"
@@ -7061,24 +7151,24 @@ share them with others via social networking and more.")
                                   "file-roller-" version ".tar.xz"))
               (sha256
                (base32
-                "06ikvjjcgb8nxabkn2rywy76a1c7s6w8dszaxvaxldbxarp1qgbj"))))
+                "039w1dcpa5ypmv6sm634alk9vbcdkyvy595vkh5gn032jsiqca2a"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
-       ("intltool" ,intltool)
-       ("itstool" ,itstool)
-       ("pkg-config" ,pkg-config)
-       ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
-       ("glib:bin" ,glib "bin")))
+     (list desktop-file-utils ; for update-desktop-database
+           intltool
+           itstool
+           pkg-config
+           `(,gtk+ "bin") ; gtk-update-icon-cache
+           `(,glib "bin")))
     ;; TODO: Add libnautilus.
     (inputs
-     `(("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("json-glib" ,json-glib)
-       ("libarchive" ,libarchive)
-       ("libnotify" ,libnotify)
-       ("nettle" ,nettle)
-       ("libxml2" ,libxml2)))
+     (list gtk+
+           gdk-pixbuf
+           json-glib
+           libarchive
+           libnotify
+           nettle
+           libxml2))
     (synopsis "Graphical archive manager for GNOME")
     (description "File Roller is an archive manager for the GNOME desktop
 environment that allows users to view, unpack, and create compressed archives
@@ -7089,44 +7179,35 @@ such as gzip tarballs.")
 (define-public gnome-session
   (package
     (name "gnome-session")
-    (version "3.34.2")
+    (version "40.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
+              (patches (search-patches "gnome-session-support-elogind.patch"))
               (sha256
                (base32
-                "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
+                "02z0xr6sv9ibl7awbw9j4y05hf4jk1zgvsbbmh7n27hhjvsvc8pl"))))
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59
+       #:glib-or-gtk? #t
        #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'pre-configure
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; Use elogind instead of systemd.
-             (substitute* "meson.build"
-               (("libsystemd-login") "libelogind")
-               (("and libsystemd_daemon_dep.found.*") ","))
-             (substitute* "gnome-session/gsm-systemd.c"
-               (("#include <systemd/sd-login.h>")
-                "#include <elogind/sd-login.h>"))
-             ;; Remove uses of the systemd daemon.
-             (substitute* "gnome-session/gsm-autostart-app.c"
-               (("#ifdef HAVE_SYSTEMD") "#if 0"))
-             #t))
          (add-after 'install 'wrap-gnome-session
            (lambda* (#:key inputs outputs #:allow-other-keys)
              ;; Make sure 'gnome-session' finds the 'gsettings' program.
              (let ((glib (assoc-ref inputs "glib:bin"))
                    (out  (assoc-ref outputs "out")))
                (wrap-program (string-append out "/bin/gnome-session")
-                 `("PATH" ":" prefix (,(string-append glib "/bin"))))
-               #t))))
+                 `("PATH" ":" prefix (,(string-append glib "/bin"))))))))
 
        #:configure-flags
        '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
          "-Dman=false" ; FIXME: disabled because of docbook validation error
+         "-Delogind=true"
+         "-Dsystemd=false"
+         "-Dsystemd_session=disable"
          "-Dsystemd_journal=false")))
     (build-system meson-build-system)
     (native-inputs
@@ -7139,17 +7220,17 @@ such as gzip tarballs.")
        ("docbook-xml" ,docbook-xml)
        ("xmlto" ,xmlto)))
     (inputs
-     `(("elogind" ,elogind)
-       ("gnome-desktop" ,gnome-desktop)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ("json-glib" ,json-glib)
-       ("libsm" ,libsm)
-       ("libxcomposite" ,libxcomposite)
-       ("libxtst" ,libxtst)
-       ("mesa" ,mesa)
-       ("upower" ,upower)
-       ("xtrans" ,xtrans)))
+     (list elogind
+           gnome-desktop
+           gsettings-desktop-schemas
+           gtk+
+           json-glib
+           libsm
+           libxcomposite
+           libxtst
+           mesa
+           upower
+           xtrans))
     (synopsis "Session manager for GNOME")
     (description
      "This package contains the GNOME session manager, as well as a
@@ -7160,7 +7241,7 @@ configuration program to choose applications starting on login.")
 (define-public gjs
   (package
     (name "gjs")
-    (version "1.68.2")
+    (version "1.70.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -7168,7 +7249,7 @@ configuration program to choose applications starting on login.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0c7fclm53v41n5vfndymp35fbh1x218lrk65iqrk1wc2lsnh5zvh"))
+                "0pqwhq0znprs0h5ixz396912acwzk9zvjfhi9qvh52ii38s2j1jb"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -7199,12 +7280,9 @@ 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.
-     `(("cairo" ,cairo)
-       ("gobject-introspection" ,gobject-introspection)
-       ("mozjs" ,mozjs-78)))
+     (list cairo gobject-introspection mozjs-78))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("readline" ,readline)))
+     (list gtk+ readline))
     (synopsis "Javascript bindings for GNOME")
     (home-page "https://live.gnome.org/Gjs")
     (description
@@ -7215,18 +7293,19 @@ javascript engine and the GObject introspection framework.")
 (define-public gedit
   (package
     (name "gedit")
-    (version "3.34.1")
+    (version "40.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
+                "149ngl9qw6h59546lir1pa7hvw23ppsnqlj9mfqphmmn5jl99qsm"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+       #:glib-or-gtk? #t
        #:configure-flags
        ;; Otherwise, the RUNPATH will lack the final path component.
        (list (string-append "-Dc_link_args=-Wl,-rpath="
@@ -7267,7 +7346,7 @@ javascript engine and the GObject introspection framework.")
                                                                "/share")))))
              #t)))))
     (propagated-inputs
-     `(("dconf" ,dconf)))
+     (list dconf))
     (native-inputs
      `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
        ("intltool" ,intltool)
@@ -7285,21 +7364,23 @@ javascript engine and the GObject introspection framework.")
             (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("glib" ,glib)
-       ("gspell" ,gspell)
-       ("gtk+" ,gtk+)
-       ("gtksourceview" ,gtksourceview)
-       ("libpeas" ,libpeas)
-       ("libxml2" ,libxml2)
-       ("iso-codes" ,iso-codes)
-       ("python-pygobject" ,python-pygobject)
-       ("python" ,python)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("libx11" ,libx11)
-       ("vala" ,vala)
-       ("adwaita-icon-theme" ,adwaita-icon-theme)
-       ("libsoup" ,libsoup)
-       ("gnome-desktop" ,gnome-desktop)))
+     (list amtk
+           glib
+           gspell
+           gtk+
+           gtksourceview
+           libpeas
+           libxml2
+           iso-codes
+           python-pygobject
+           python
+           tepl
+           gsettings-desktop-schemas
+           libx11
+           vala
+           adwaita-icon-theme
+           libsoup
+           gnome-desktop))
     (home-page "https://wiki.gnome.org/Apps/Gedit")
     (synopsis "GNOME text editor")
     (description "While aiming at simplicity and ease of use, gedit is a
@@ -7320,12 +7401,9 @@ powerful general purpose text editor.")
                 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("itstool" ,itstool)
-       ("pkg-config" ,pkg-config)))
+     (list gettext-minimal itstool pkg-config))
     (inputs
-     `(("libnotify" ,libnotify)
-       ("webkitgtk" ,webkitgtk)))
+     (list libnotify webkitgtk))
     (synopsis "Display graphical dialog boxes from shell scripts")
     (home-page "https://www.gnome.org")
     (description
@@ -7336,69 +7414,143 @@ to display dialog boxes from the commandline and shell scripts.")
 (define-public mutter
   (package
     (name "mutter")
-    (version "3.34.2")
+    (version "41.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
+                "17pqrm48kddqrc3fl96n5knhaxyn0crg0zv7zpmqhk848jks307s"))))
     ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
     ;; versions of cogl and clutter.  As a result, many of the inputs,
     ;; propagated-inputs, and configure flags used in cogl and clutter are
     ;; needed here as well.
     (build-system meson-build-system)
     (arguments
-     '(;; XXX: All mutter tests fail with the following error:
-       ;;   Settings schema 'org.gnome.mutter' is not installed
-       #:tests? #f
+     `(#:imported-modules (,@%meson-build-system-modules
+                           (guix build syscalls))
+       #:modules ((guix build meson-build-system)
+                  (guix build syscalls)
+                  (guix build utils)
+                  (ice-9 match))
        #:glib-or-gtk? #t
        #:configure-flags
-       ;; TODO: Enable profiler when Sysprof is packaged.
-       (list "-Dprofiler=false"
-             ;; Otherwise, the RUNPATH will lack the final path component.
-             (string-append "-Dc_link_args=-Wl,-rpath="
-                            (assoc-ref %outputs "out") "/lib:"
-                            (assoc-ref %outputs "out") "/lib/mutter-5")
-
-             ;; The following flags are needed for the bundled clutter
-             (string-append "-Dxwayland_path="
-                            (assoc-ref %build-inputs "xorg-server-xwayland")
-                            "/bin/Xwayland")
-
-             ;; the remaining flags are needed for the bundled cogl
-             (string-append "-Dopengl_libname="
-                            (assoc-ref %build-inputs "mesa")
-                            "/lib/libGL.so"))
-       #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'fix-build-with-mesa-20
-                    (lambda _
-                      ;; Mimic upstream commit a444a4c5f58ea516ad for
-                      ;; compatibility with Mesa 20.  Remove for 3.36.
-                      (substitute* '("src/backends/meta-egl-ext.h"
-                                     "src/backends/meta-egl.c"
-                                     "src/backends/meta-egl.h")
-                        (("#include <EGL/eglext\\.h>" all)
-                         (string-append all "\n#include <EGL/eglmesaext.h>")))
-                      (substitute* "cogl/cogl/meson.build"
-                        (("#include <EGL/eglext\\.h>" all)
-                         (string-append all "\\n#include <EGL/eglmesaext.h>")))
-                      #t)))))
+       (list
+        ;; Otherwise, the RUNPATH will lack the final path component.
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out") "/lib:"
+                       (assoc-ref %outputs "out") "/lib/mutter-9")
+        ;; Disable systemd support.
+        "-Dsystemd=false"
+        ;; The following flags are needed for the bundled clutter
+        (string-append "-Dxwayland_path="
+                       (assoc-ref %build-inputs "xorg-server-xwayland")
+                       "/bin/Xwayland")
+        ;; the remaining flags are needed for the bundled cogl
+        (string-append "-Dopengl_libname="
+                       (assoc-ref %build-inputs "mesa")
+                       "/lib/libGL.so")
+        (string-append "-Dgles2_libname="
+                       (assoc-ref %build-inputs "mesa")
+                       "/lib/libGLESv2.so")
+        "-Degl_device=true"              ;false by default
+        "-Dwayland_eglstream=true")      ;false by default
+       #:test-options
+       (list "--verbose")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-dlopen-calls
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "src/wayland/meta-wayland-egl-stream.c"
+               (("libnvidia-egl-wayland.so.1")
+                (string-append (assoc-ref inputs "egl-wayland")
+                               "/lib/libnvidia-egl-wayland.so.1")))))
+         (add-before 'configure 'set-udev-dir
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (setenv "PKG_CONFIG_UDEV_UDEVDIR"
+                     (string-append (assoc-ref outputs "out")
+                                    "/lib/udev"))))
+         (add-after 'unpack 'disable-problematic-tests
+           (lambda _
+             ;; The native-headless test hangs due to attempting to use audio,
+             ;; unavailable in the container.
+             ;; Note: the following sed expression deletes the whole test(...)
+             ;; expression paragraph.  For an explanation, see: info '(sed)
+             ;; Multiline techniques'.
+             (invoke "sed" "/./{H;$!d} ; x ; s/^.*native-headless.*$//"
+                     "-i" "src/tests/meson.build")))
+         (replace 'check
+           (lambda* (#:key tests? test-options parallel-tests?
+                     #:allow-other-keys)
+             (when tests?
+               ;; Setup (see the 'test-mutter' CI target at
+               ;; https://gitlab.gnome.org/GNOME/mutter/-/raw/main/.gitlab-ci.yml).
+               (setenv "XDG_RUNTIME_DIR" "runtime-dir")
+               (setenv "GSETTINGS_SCHEMA_DIR" "data")
+               (setenv "MUTTER_DEBUG_DUMMY_MODE_SPECS" "800x600@10.0")
+               (setenv "PIPEWIRE_DEBUG" "2")
+               (setenv "PIPEWIRE_LOG" "meson-logs/pipewire.log")
+               (setenv "XVFB_SERVER_ARGS" "+iglx -noreset")
+               (setenv "G_SLICE" "always-malloc")
+               (setenv "MALLOC_CHECK" "3")
+               (setenv "NO_AT_BRIDGE" "1")
+               ;; This is needed, otherwise the "mutter:core+mutter/unit /
+               ;; anonymous-file" test would fail (see:
+               ;; https://gitlab.gnome.org/GNOME/mutter/-/issues/2017).
+               (setenv "CI_JOB_ID" "1")
+
+               (invoke "glib-compile-schemas" (getenv "GSETTINGS_SCHEMA_DIR"))
+               (mkdir-p (getenv "XDG_RUNTIME_DIR"))
+               (chmod (getenv "XDG_RUNTIME_DIR") #o755)
+               (invoke "pipewire" "--version") ;check for pipewire
+               (system "pipewire &")    ;always returns 0 due to forking
+
+               (setenv "MESON_TESTTHREADS"
+                       (if parallel-tests?
+                           (number->string (parallel-job-count))
+                           "1"))
+               (match (primitive-fork)
+                 (0                     ;child process
+                  (set-child-subreaper!)
+                  ;; Use tini so that signals are properly handled and
+                  ;; doubly-forked processes get reaped; otherwise,
+                  ;; python-dbusmock would waste time polling for the dbus
+                  ;; processes it spawns to be reaped, in vain.
+                  (apply execlp "tini" "--"
+                         "dbus-run-session" "--"
+                         "xvfb-run" "-a" "-s" (getenv "XVFB_SERVER_ARGS")
+                         "meson" "test" "-t" "0" "--print-errorlogs"
+                         test-options))
+                 (pid
+                  (match (waitpid pid)
+                    ((_ . status)
+                     (unless (zero? status)
+                       (error "`meson test' exited with status"
+                              status))))))))))))
     (native-inputs
      `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
-       ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+       ("glib:bin" ,glib "bin")         ; for glib-compile-schemas, etc.
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
-       ("xorg-server" ,xorg-server-for-tests)
+       ("xvfb-run" ,xvfb-run)
        ;; For git build
        ("autoconf" ,autoconf)
        ("automake" ,automake)
-       ("libtool" ,libtool)))
+       ("libtool" ,libtool)
+       ;; For tests.
+       ;; Warnings are configured to be fatal during the tests; add an icon
+       ;; theme to please libxcursor.
+       ("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("libxcursor" ,libxcursor)       ;for XCURSOR_PATH
+       ("pipewire" ,pipewire-0.3)
+       ("python-dbus" ,python-dbus)
+       ("python-dbusmock" ,python-dbusmock)
+       ("tini" ,tini)))                 ;acting as init (zombie reaper)
     (propagated-inputs
-     `(;; libmutter.pc refers to these:
+     `( ;; libmutter.pc refers to these:
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gtk+" ,gtk+)
        ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
@@ -7410,19 +7562,23 @@ to display dialog boxes from the commandline and shell scripts.")
        ("libinput" ,libinput)
        ("libx11" ,libx11)
        ("libxcomposite" ,libxcomposite)
+       ("libxcvt" ,libxcvt)
        ("libxdamage" ,libxdamage)
        ("libxext" ,libxext)
        ("libxfixes" ,libxfixes)
        ("libxkbcommon" ,libxkbcommon)
+       ("libxml2" ,libxml2)
        ("libxrandr" ,libxrandr)
        ("mesa" ,mesa)
        ("pango" ,pango)
        ("udev" ,eudev)
        ("xinput" ,xinput)))
     (inputs
-     `(("elogind" ,elogind)
+     `(("egl-wayland" ,egl-wayland)     ;for wayland-eglstream-protocols
+       ("elogind" ,elogind)
        ("gnome-desktop" ,gnome-desktop)
        ("gnome-settings-daemon" ,gnome-settings-daemon)
+       ("graphene" ,graphene)
        ("libcanberra-gtk" ,libcanberra)
        ("libgudev" ,libgudev)
        ("libice" ,libice)
@@ -7431,8 +7587,9 @@ to display dialog boxes from the commandline and shell scripts.")
        ("libxkbfile" ,libxkbfile)
        ("libxrandr" ,libxrandr)
        ("libxtst" ,libxtst)
-       ("pipewire" ,pipewire)
+       ("pipewire" ,pipewire-0.3)
        ("startup-notification" ,startup-notification)
+       ("sysprof" ,sysprof)
        ("upower-glib" ,upower)
        ("xkeyboard-config" ,xkeyboard-config)
        ("xorg-server-xwayland" ,xorg-server-xwayland)
@@ -7449,7 +7606,7 @@ window manager.")
 (define-public gnome-online-accounts
   (package
     (name "gnome-online-accounts")
-    (version "3.36.0")
+    (version "3.43.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -7457,7 +7614,7 @@ window manager.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
+                "1s5pmy3hx6hhnyi40r7b773py9kn2qbkxnpxv6149z9fl5ikdjrv"))))
     (outputs '("out" "lib"))
     (build-system glib-or-gtk-build-system)
     (arguments
@@ -7476,8 +7633,7 @@ window manager.")
                  (("@datadir@") (string-append lib "/share")))
                ;; Make sure gobject-introspection knows about the output
                ;; too (see <https://bugs.gnu.org/36535>).
-               (setenv "outputs" "out lib")
-               #t))))))
+               (setenv "outputs" "out lib")))))))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
        ("gobject-introspection" ,gobject-introspection)
@@ -7486,41 +7642,37 @@ window manager.")
        ("vala" ,vala)
        ("xsltproc" ,libxslt)))
     (propagated-inputs
-     `(("glib" ,glib)           ; required by goa-1.0.pc
-       ("gtk+" ,gtk+)))         ; required by goa-backend-1.0.pc
+     (list glib ; required by goa-1.0.pc
+           gtk+))         ; required by goa-backend-1.0.pc
     (inputs
      `(("docbook-xsl" ,docbook-xsl)
        ("json-glib" ,json-glib)
        ("libsecret" ,libsecret)
        ("rest" ,rest)
-       ("webkitgtk" ,webkitgtk)))
+       ;; WebKitGtk propagates libsoup 3, which causes the build to fail; so
+       ;; use a special variant.
+       ("webkitgtk" ,webkitgtk-with-libsoup2)))
     (synopsis "Single sign-on framework for GNOME")
     (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
     (description
      "GNOME Online Accounts provides interfaces so that applications and
-libraries in GNOME can access the user's online accounts.  It has providers for
-Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
-Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
+libraries in GNOME can access the user's online accounts.  It has providers
+for Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare,
+Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
     (license license:lgpl2.0+)))
 
 (define-public evolution-data-server
   (package
     (name "evolution-data-server")
-    (version "3.34.2")
+    (version "3.42.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://gnome/sources/" name "/"
                            (version-major+minor version) "/"
                            name "-" version ".tar.xz"))
-       (patches
-        (search-patches "evolution-data-server-locales.patch"
-                        "evolution-data-server-libical-compat.patch"
-                        "evolution-data-server-CVE-2020-14928.patch"
-                        "evolution-data-server-CVE-2020-16117.patch"
-                        "evolution-data-server-printableoptions.patch"))
        (sha256
-        (base32 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
+        (base32 "0a7my8spwcaf2i2fz8ndddi1drv6l9gxq0qblmnkxzyhfwm7zrp6"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
@@ -7546,27 +7698,25 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
              ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
              (delete-file-recursively "tests/book-migration")
              (substitute* "tests/CMakeLists.txt"
-               (("add_subdirectory\\(book-migration\\)") ""))
-             #t))
+               (("add_subdirectory\\(book-migration\\)") ""))))
          (add-after 'unpack 'patch-paths
           (lambda _
             (substitute* '("tests/test-server-utils/e-test-server-utils.c"
                            "tests/libedata-book/data-test-utils.c"
                            "tests/libedata-book/test-book-cache-utils.c"
                            "tests/libedata-cal/test-cal-cache-utils.c")
-              (("/bin/rm") (which "rm")))
-            #t))
+              (("/bin/rm") (which "rm")))))
          (add-before 'configure 'dont-override-rpath
            (lambda _
              (substitute* "CMakeLists.txt"
                ;; CMakeLists.txt hard-codes runpath to just the libdir.
                ;; Remove it so the configure flag is respected.
-               (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
-             #t)))))
+               (("SET\\(CMAKE_INSTALL_RPATH .*") "")))))))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
        ("gobject-introspection" ,gobject-introspection)
        ("gperf" ,gperf)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)
@@ -7576,7 +7726,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
      `(("gtk+" ,gtk+)
        ("libical" ,libical)
        ("libsecret" ,libsecret)
-       ("libsoup" ,libsoup)
+       ("libsoup" ,libsoup-minimal-2)
        ("nss" ,nss)
        ("sqlite" ,sqlite)))
     (inputs
@@ -7588,7 +7738,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
        ("libgweather" ,libgweather)
        ("mit-krb5" ,mit-krb5)
        ("openldap" ,openldap)
-       ("webkitgtk" ,webkitgtk)))
+       ("webkitgtk" ,webkitgtk-with-libsoup2)))
     (synopsis "Store address books and calendars")
     (home-page "https://wiki.gnome.org/Apps/Evolution")
     (description
@@ -7646,10 +7796,7 @@ Evolution (hence the name), but is now used by other packages as well.")
        ("xsltproc" ,libxslt)))
     (propagated-inputs
      ;; caribou-1.0.pc refers to all these.
-     `(("libgee" ,libgee)
-       ("libxklavier" ,libxklavier)
-       ("libxtst" ,libxtst)
-       ("gtk+" ,gtk+)))
+     (list libgee libxklavier libxtst gtk+))
     (inputs
      `(("clutter" ,clutter)
        ("dconf" ,dconf)
@@ -7665,30 +7812,24 @@ users.")
 (define-public network-manager
   (package
     (name "network-manager")
-    (version "1.24.0")
+    (version "1.32.12")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/NetworkManager/"
                                   (version-major+minor version) "/"
                                   "NetworkManager-" version ".tar.xz"))
-              (patches (search-patches "network-manager-plugin-path.patch"))
+              (patches (search-patches "network-manager-plugin-path.patch"
+                                       "network-manager-meson.patch"))
               (sha256
                (base32
-                "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  (substitute* "src/devices/wwan/nm-modem-manager.c"
-                    (("systemd") "elogind"))
-                  #t))))
+                "0jzmz0zw64dgvdn2g7pppr7bkywpbxcbdb1viv6p7zh2lnh3dax8"))))
     (build-system meson-build-system)
     (outputs '("out"
-               "doc")) ; 8 MiB of gtk-doc HTML
+               "doc"))                  ; 8 MiB of gtk-doc HTML
     (arguments
      `(#:configure-flags
        (let ((out      (assoc-ref %outputs "out"))
-             (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
-                                      "/sbin/dhclient")))
+             (dhclient (search-input-file %build-inputs "/sbin/dhclient")))
          (list
           ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
           ;; component.
@@ -7724,33 +7865,38 @@ users.")
              ;; cope with being already in the Guix build jail as that jail
              ;; lacks some features that they would like to proxy over (like
              ;; a /sys mount).
-             (substitute* "src/platform/tests/meson.build"
+             (substitute* "src/core/tests/meson.build"
+               ((".*test-l3cfg.*") ""))
+             (substitute* "src/core/devices/tests/meson.build"
+               ((".*test-acd.*") "")
+               ((".*test-lldp.*") ""))
+             (substitute* "src/core/platform/tests/meson.build"
                ((".*test-address-linux.*") "")
                ((".*test-cleanup-linux.*") "")
                ((".*test-link-linux.*") "")
-               ((".*test-route-linux.*") ""))
-             (substitute* "src/devices/tests/meson.build"
-               ((".*test-acd.*") "")
-               ((".*test-lldp.*") ""))
-             #t))
+               ((".*test-lldp.*") "")
+               ((".*test-route-linux.*") "")
+               ((".*test-tc-linux.*") ""))
+             ;; FIXME: The jansson check fails (see:
+             ;; https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/837
+             (substitute* "src/libnm-core-impl/tests/test-setting.c"
+               (("g_assert\\(nm_json_vt\\(\\)\\);")
+                "return TRUE;"))))
          (add-after 'unpack 'patch-docbook-xml
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
                                           "/xml/dtd/docbook")))
                (substitute* (find-files "." ".*\\.(xsl|xml)")
                  (("http://.*/docbookx\\.dtd")
-                  (string-append xmldoc "/docbookx.dtd")))
-               #t)))
+                  (string-append xmldoc "/docbookx.dtd"))))))
          (add-before 'check 'pre-check
            (lambda _
              ;; For the missing /etc/machine-id.
-             (setenv "DBUS_FATAL_WARNINGS" "0")
-             #t))
+             (setenv "DBUS_FATAL_WARNINGS" "0")))
          (add-before 'install 'no-polkit-magic
            ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
            (lambda _
-             (setenv "PKEXEC_UID" "something")
-             #t))
+             (setenv "PKEXEC_UID" "something")))
          (add-after 'install 'move-doc
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
@@ -7761,10 +7907,9 @@ users.")
                                              (string-append doc directory))
                            (delete-file-recursively
                             (string-append out directory)))
-                         '("/share/doc" "/share/gtk-doc"))
-               #t))))))
+                         '("/share/doc" "/share/gtk-doc"))))))))
     (propagated-inputs
-     `(("glib" ,glib)))
+     (list glib))
     (native-inputs
      `(("glib:bin" ,glib "bin")         ; for gdbus-codegen
        ("gtk-doc" ,gtk-doc/stable)
@@ -7800,8 +7945,8 @@ users.")
        ("libsoup" ,libsoup)
        ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
        ("modem-manager" ,modem-manager)
-       ("newt" ,newt)                       ;for the 'nmtui' console interface
-       ("openresolv" ,openresolv)           ; alternative resolv.conf manager
+       ("newt" ,newt)                   ;for the 'nmtui' console interface
+       ("openresolv" ,openresolv)       ; alternative resolv.conf manager
        ("polkit" ,polkit)
        ("ppp" ,ppp)
        ("readline" ,readline)
@@ -7855,15 +8000,14 @@ services.")
                 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("kmod" ,kmod)
-       ("openvpn" ,openvpn)
-       ("network-manager" ,network-manager)
-       ("libnma" ,libnma)
-       ("libsecret" ,libsecret)))
+     (list gtk+
+           kmod
+           openvpn
+           network-manager
+           libnma
+           libsecret))
     (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
     (synopsis "OpenVPN plug-in for NetworkManager")
     (description
@@ -7906,15 +8050,14 @@ to virtual private networks (VPNs) via OpenVPN.")
                     (("/sbin/modprobe") modprobe)))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("kmod" ,kmod)
-       ("vpnc" ,vpnc)
-       ("network-manager" ,network-manager)
-       ("libnma" ,libnma)
-       ("libsecret" ,libsecret)))
+     (list gtk+
+           kmod
+           vpnc
+           network-manager
+           libnma
+           libsecret))
     (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
     (synopsis "VPNC plug-in for NetworkManager")
     (description
@@ -7952,18 +8095,16 @@ Compatible with Cisco VPN concentrators configured to use IPsec.")
                  (("/sbin/modprobe") modprobe)))
              #t)))))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("libnma" ,libnma)
-       ("pkg-config" ,pkg-config)))
+     (list intltool libnma pkg-config))
     (inputs
-     `(("gcr" ,gcr)
-       ("gtk+" ,gtk+)
-       ("kmod" ,kmod)
-       ("libsecret" ,libsecret)
-       ("libxml2" ,libxml2)
-       ("lz4" ,lz4)
-       ("network-manager" ,network-manager)
-       ("openconnect" ,openconnect)))
+     (list gcr
+           gtk+
+           kmod
+           libsecret
+           libxml2
+           lz4
+           network-manager
+           openconnect))
     (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
     (synopsis "OpenConnect plug-in for NetworkManager")
     (description
@@ -8013,7 +8154,8 @@ Cisco's AnyConnect SSL VPN.")
                 "1gj6lqqi613j2m49v9i82lqg1rv7kwwc8z4nxjcwpaa0ins803f7"))))
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59
+       #:glib-or-gtk? #t
        #:configure-flags
        '("-Dappindicator=yes")))
     (native-inputs
@@ -8024,20 +8166,18 @@ Cisco's AnyConnect SSL VPN.")
        ("pkg-config" ,pkg-config)))
     (propagated-inputs
      ;; libnm-gtk.pc refers to all these.
-     `(("dbus-glib" ,dbus-glib)
-       ("gtk+" ,gtk+)
-       ("network-manager" ,network-manager)
-       ;; nm-applet need by org.gnome.nm-applet.gschema.xml
-       ("libnma" ,libnma)))
-    (inputs
-     `(("gcr" ,gcr)
-       ("libappindicator" ,libappindicator)
-       ("libgudev" ,libgudev)
-       ("libnotify" ,libnotify)
-       ("libsecret" ,libsecret)
-       ("libselinux" ,libselinux)
-       ("jansson" ,jansson) ; for team support
-       ("modem-manager" ,modem-manager)))
+     (list dbus-glib gtk+ network-manager
+           ;; nm-applet need by org.gnome.nm-applet.gschema.xml
+           libnma))
+    (inputs
+     (list gcr
+           libappindicator
+           libgudev
+           libnotify
+           libsecret
+           libselinux
+           jansson ; for team support
+           modem-manager))
     (synopsis "Applet for managing network connections")
     (home-page "https://wiki.gnome.org/Projects/NetworkManager")
     (description
@@ -8080,20 +8220,19 @@ the available networks and allows users to easily switch between them.")
                   (string-append xsldoc "/html/chunk.xsl")))))))))
     (propagated-inputs
      ;; libxml++-3.0.pc refers to all these.
-     `(("glibmm" ,glibmm-2.64)
-       ("libxml2" ,libxml2)))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("doxygen" ,doxygen)
-       ("docbook-xml" ,docbook-xml)
-       ("docbook-xsl" ,docbook-xsl)
-       ("graphviz" ,graphviz) ; for dot
-       ("libtool" ,libtool)
-       ("libxslt" ,libxslt)
-       ("mm-common" ,mm-common)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list glibmm-2.64 libxml2))
+    (native-inputs
+     (list autoconf
+           automake
+           doxygen
+           docbook-xml
+           docbook-xsl
+           graphviz ; for dot
+           libtool
+           libxslt
+           mm-common
+           perl
+           pkg-config))
     (home-page "https://github.com/libxmlplusplus/libxmlplusplus/")
     (synopsis "C++ bindings to the libxml2 XML parser library")
     (description
@@ -8121,128 +8260,151 @@ library.")
 (define-public gdm
   (package
     (name "gdm")
-    (version "3.34.1")
+    (version "40.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
-              (patches (search-patches "gdm-default-session.patch"))))
-    (build-system glib-or-gtk-build-system)
+                "1zbks7bwbys1pn7sk0aq0dbn09adx51amb441z4z4j28cvma3f5b"))
+              (patches
+               (search-patches
+                "gdm-default-session.patch"
+                "gdm-elogind-support.patch"
+                "gdm-remove-hardcoded-xwayland-path.patch"
+                "gdm-wayland-session-wrapper-from-env.patch"
+                "gdm-pass-gdk-pixbuf-loader-env.patch"))))
+    (build-system meson-build-system)
     (arguments
-     '(#:configure-flags
-       `("--without-plymouth"
-         "--disable-systemd-journal"
-
-         ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
-         ;; instead of having to replace it (i.e., stopping the mingetty
-         ;; service for TTY 1 before starting GDM).
-         "--with-initial-vt=7"
-
-         ;; Use '/etc/environment' for locale settings instead of the
-         ;; systemd-specific '/etc/locale.conf'.
-         "--with-lang-file=/etc/environment"
-
-         ,(string-append "--with-udevdir="
-                         (assoc-ref %outputs "out") "/lib/udev")
-
-         "--localstatedir=/var"
-         ,(string-append "--with-default-path="
-                         (string-join '("/run/setuid-programs"
-                                        "/run/current-system/profile/bin"
-                                        "/run/current-system/profile/sbin")
-                                      ":"))
-         ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
-         ;; XDG_DATA_DIRS so that it finds its schemas.
-         "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
+     `(#:glib-or-gtk? #t
+       #:configure-flags
+       ,#~(list
+           "-Dplymouth=disabled"
+           "-Dsystemd-journal=false"
+
+           ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
+           ;; instead of having to replace it (i.e., stopping the mingetty
+           ;; service for TTY 1 before starting GDM).
+           "-Dinitial-vt=7"
+
+           ;; Use elogind instead of systemd.
+           "-Dlogind-provider=elogind"
+           "-Dsystemdsystemunitdir=no"
+           "-Dsystemduserunitdir=no"
+
+           ;; Use '/etc/environment' for locale settings instead of the
+           ;; systemd-specific '/etc/locale.conf'.
+           "-Dlang-file=/etc/environment"
+
+           (string-append "-Dudev-dir=" #$output "/lib/udev")
+
+           "--localstatedir=/var"
+           (string-append "-Ddefault-path="
+                          (string-join '("/run/setuid-programs"
+                                         "/run/current-system/profile/bin"
+                                         "/run/current-system/profile/sbin")
+                                       ":"))
+           ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
+           ;; XDG_DATA_DIRS so that it finds its schemas.
+           "--sbindir" (string-append #$output "/bin"))
        #:phases
        (modify-phases %standard-phases
          (add-before
-          'configure 'pre-configure
-          (lambda* (#:key inputs outputs #:allow-other-keys)
-            ;; We don't have <systemd/sd-daemon.h>.
-            (substitute* '("common/gdm-log.c"
-                           "daemon/gdm-server.c"
-                           "daemon/gdm-session-worker.c"
-                           "daemon/gdm-session-worker-job.c")
-              (("#include <systemd/sd-daemon\\.h>") ""))
-            ;; Use elogind for sd-login.
-            (substitute* '("common/gdm-common.c"
-                           "daemon/gdm-local-display-factory.c"
-                           "daemon/gdm-manager.c"
-                           "libgdm/gdm-user-switching.c")
-              (("#include <systemd/sd-login\\.h>")
-               "#include <elogind/sd-login.h>"))
-            ;; Check for elogind.
-            (substitute* '("configure")
-              (("libsystemd")
-               "libelogind"))
-            ;; Look for system-installed sessions in
-            ;; /run/current-system/profile/share.
-            (substitute* '("libgdm/gdm-sessions.c"
-                           "daemon/gdm-session.c"
-                           "daemon/gdm-display.c"
-                           "daemon/gdm-launch-environment.c")
-              (("DATADIR \"/x")
-               "\"/run/current-system/profile/share/x")
-              (("DATADIR \"/wayland")
-               "\"/run/current-system/profile/share/wayland")
-              (("DATADIR \"/gnome")
-               "\"/run/current-system/profile/share/gnome"))
-            (let ((propagate '("GDM_CUSTOM_CONF"
-                               "GDM_DBUS_DAEMON"
-                               "GDM_X_SERVER"
-                               "GDM_X_SESSION"
-                               ;; XXX: Remove this once GNOME Shell is
-                               ;; a dependency of GDM.
-                               "XDG_DATA_DIRS")))
-              (substitute* "daemon/gdm-session.c"
-                (("set_up_session_environment \\(self\\);")
-                 (apply string-append
-                        "set_up_session_environment (self);\n"
-                        (map (lambda (name)
-                               (string-append
-                                "gdm_session_set_environment_variable "
-                                "(self, \"" name "\","
-                                "g_getenv (\"" name "\"));\n"))
-                             propagate)))))
-            ;; Find the configuration file using an environment variable.
-            (substitute* '("common/gdm-settings.c")
-              (("GDM_CUSTOM_CONF")
-               (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
-                              " ? g_getenv(\"GDM_CUSTOM_CONF\")"
-                              " : GDM_CUSTOM_CONF)")))
-            ;; Use service-supplied path to X.
-            (substitute* '("daemon/gdm-server.c")
-              (("\\(X_SERVER X_SERVER_ARG_FORMAT")
-               "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
-            (substitute* '("daemon/gdm-wayland-session.c"
-                           "daemon/gdm-x-session.c")
-              (("\"dbus-daemon\"")
-               "g_getenv (\"GDM_DBUS_DAEMON\")")
-              (("X_SERVER")
-               "g_getenv (\"GDM_X_SERVER\")")
-              (("GDMCONFDIR \"/Xsession\"")
-               "g_getenv (\"GDM_X_SESSION\")"))
-            ;; Use an absolute path for GNOME Session.
-            (substitute* "daemon/gdm-launch-environment.c"
-              (("\"gnome-session\"")
-               (string-append "\"" (assoc-ref inputs "gnome-session")
-                              "/bin/gnome-session\"")))
-            ;; Do not automatically select the placeholder session.
-            (substitute* "daemon/gdm-session.c"
-              (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
-               (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
-                              "(g_strcmp0(search_dirs[i], \""
-                              (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
-                              "\") == 0 && "
-                              "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
-              (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
-               "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
-            #t))
+             'configure 'pre-configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             ;; We don't have <systemd/sd-daemon.h>.
+             (substitute* '("common/gdm-log.c"
+                            "daemon/gdm-server.c"
+                            "daemon/gdm-session-worker.c"
+                            "daemon/gdm-session-worker-job.c")
+               (("#include <systemd/sd-daemon\\.h>") ""))
+             ;; Use elogind for sd-login.
+             (substitute* '("common/gdm-common.c"
+                            "daemon/gdm-local-display-factory.c"
+                            "daemon/gdm-manager.c"
+                            "libgdm/gdm-user-switching.c")
+               (("#include <systemd/sd-login\\.h>")
+                "#include <elogind/sd-login.h>"))
+             ;; Look for system-installed sessions in
+             ;; /run/current-system/profile/share.
+             (substitute* '("libgdm/gdm-sessions.c"
+                            "daemon/gdm-session.c"
+                            "daemon/gdm-display.c"
+                            "daemon/gdm-launch-environment.c")
+               (("DATADIR \"/x")
+                "\"/run/current-system/profile/share/x")
+               (("DATADIR \"/wayland")
+                "\"/run/current-system/profile/share/wayland")
+               (("DATADIR \"/gnome")
+                "\"/run/current-system/profile/share/gnome"))
+             (let ((propagate '("GDM_CUSTOM_CONF"
+                                "GDM_DBUS_DAEMON"
+                                "GDM_X_SERVER"
+                                "GDM_X_SESSION"
+                                ;; XXX: Remove this once GNOME Shell is
+                                ;; a dependency of GDM.
+                                "XDG_DATA_DIRS")))
+               (substitute* "daemon/gdm-session.c"
+                 (("set_up_session_environment \\(self\\);")
+                  (apply string-append
+                         "set_up_session_environment (self);\n"
+                         (map (lambda (name)
+                                (string-append
+                                 "gdm_session_set_environment_variable "
+                                 "(self, \"" name "\","
+                                 "g_getenv (\"" name "\"));\n"))
+                              propagate)))))
+             ;; Find the configuration file using an environment variable.
+             (substitute* '("common/gdm-settings.c")
+               (("GDM_CUSTOM_CONF")
+                (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
+                               " ? g_getenv(\"GDM_CUSTOM_CONF\")"
+                               " : GDM_CUSTOM_CONF)")))
+             ;; Use service-supplied path to X.
+             (substitute* '("daemon/gdm-server.c")
+               (("\\(X_SERVER X_SERVER_ARG_FORMAT")
+                "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
+             (substitute* '("daemon/gdm-wayland-session.c"
+                            "daemon/gdm-x-session.c")
+               (("\"dbus-daemon\"")
+                "g_getenv (\"GDM_DBUS_DAEMON\")")
+               (("X_SERVER")
+                "g_getenv (\"GDM_X_SERVER\")")
+               (("GDMCONFDIR \"/Xsession\"")
+                "g_getenv (\"GDM_X_SESSION\")"))
+             ;; Use an absolute path for GNOME Session.
+             (substitute* "daemon/gdm-launch-environment.c"
+               (("\"gnome-session\"")
+                (string-append "\"" (assoc-ref inputs "gnome-session")
+                               "/bin/gnome-session\"")))
+             ;; Do not automatically select the placeholder session.
+             (substitute* "daemon/gdm-session.c"
+               (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
+                (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
+                               "(g_strcmp0(search_dirs[i], \""
+                               (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
+                               "\") == 0 && "
+                               "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
+               (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
+                "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))))
+         (add-before 'install 'install-logo
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (guix-icons (assoc-ref inputs "guix-icons"))
+                    (icon
+                     (string-append guix-icons "/share/icons/hicolor/\
+scalable/apps/guix-white-icon.svg"))
+                    (schema
+                     (string-append out "/share/glib-2.0/schemas/\
+org.gnome.login-screen.gschema.override")))
+               (mkdir-p (dirname schema))
+               (with-output-to-file schema
+                 (lambda ()
+                   (format #t "\
+[org.gnome.login-screen]
+logo='~a'~%" icon))))))
          ;; GDM requires that there be at least one desktop entry
          ;; file.  This phase installs a hidden one that simply
          ;; fails.  This enables users to use GDM with a
@@ -8264,8 +8426,7 @@ library.")
                       "Name=Fail\n"
                       "Comment=This session fails immediately.\n"
                       "NoDisplay=true\n"
-                      "Exec=false\n"))))
-               #t)))
+                      "Exec=false\n")))))))
          ;; GDM needs GNOME Session to run these applications.  We link
          ;; their autostart files in `share/gdm/greeter/autostart'
          ;; because GDM explicitly tells GNOME Session to look there.
@@ -8282,26 +8443,28 @@ library.")
                (with-directory-excursion autostart
                  (for-each (lambda (desktop)
                              (symlink desktop (basename desktop)))
-                           (find-files (string-append settings "/etc/xdg"))))
-               #t))))))
+                           (find-files
+                            (string-append settings "/etc/xdg"))))))))))
     (native-inputs
      `(("dconf" ,dconf)
        ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
        ("gobject-introspection" ,gobject-introspection)
+       ("guix-icons" ,guix-icons)
        ("intltool" ,intltool)
        ("itstool" ,itstool)
        ("pkg-config" ,pkg-config)
        ("xmllint" ,libxml2)))
     (inputs
-     `(("accountsservice" ,accountsservice)
-       ("check" ,check-0.14)            ;for testing
-       ("elogind" ,elogind)
-       ("gnome-session" ,gnome-session)
-       ("gnome-settings-daemon" ,gnome-settings-daemon)
-       ("gtk+" ,gtk+)
-       ("iso-codes" ,iso-codes)
-       ("libcanberra" ,libcanberra)
-       ("linux-pam" ,linux-pam)))
+     (list accountsservice
+           check-0.14 ;for testing
+           elogind
+           eudev
+           gnome-session
+           gnome-settings-daemon
+           gtk+
+           iso-codes
+           libcanberra
+           linux-pam))
     (synopsis "Display manager for GNOME")
     (home-page "https://wiki.gnome.org/Projects/GDM/")
     (description
@@ -8323,12 +8486,9 @@ providing graphical log-ins and managing local and remote displays.")
                 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("intltool" ,intltool)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list gobject-introspection intltool perl pkg-config))
     (propagated-inputs
-     `(("glib" ,glib))) ; required by libgtop-2.0.pc
+     (list glib)) ; required by libgtop-2.0.pc
     (synopsis "Portable system access library")
     (home-page "https://www.gnome.org/")
     (description
@@ -8339,31 +8499,31 @@ usage and information about running processes.")
 (define-public gnome-bluetooth
   (package
     (name "gnome-bluetooth")
-    (version "3.34.2")
+    (version "3.34.5")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/gnome-bluetooth/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "gnome-bluetooth-" version ".tar.xz"))
               (sha256
                (base32
-                "0lmjvb49vgr4jjplrisv6pi29jsn1q42715i6c5a0p9ad3gawyyv"))))
+                "1a9ynlwwkb3wpg293ym517vmrkk63y809mmcv9a21k5yr199x53c"))))
     (build-system meson-build-system)
+    (arguments `(#:meson ,meson-0.59))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
        ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
+       ("python" ,python)
+       ("python-dbus" ,python-dbus)
        ("xmllint" ,libxml2)))
     (propagated-inputs
      ;; gnome-bluetooth-1.0.pc refers to all these.
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)))
+     (list glib gtk+))
     (inputs
-     `(("eudev" ,eudev)
-       ("libcanberra" ,libcanberra)
-       ("libnotify" ,libnotify)))
+     (list eudev libcanberra libnotify python-dbus))
     (synopsis "GNOME Bluetooth subsystem")
     (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
     (description
@@ -8374,18 +8534,19 @@ devices using the GNOME desktop.")
 (define-public gnome-control-center
   (package
     (name "gnome-control-center")
-    (version "3.34.2")
+    (version "40.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
+                "0rr4d5m2a72vrb31jgyx49dp0s2pwgyxsrk4hyw5ym66wq63c3v1"))))
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+       #:glib-or-gtk? #t
        #:configure-flags
        (list "-Dcheese=false"
              (string-append "-Dgnome_session_libexecdir="
@@ -8410,8 +8571,8 @@ devices using the GNOME desktop.")
                  (("\"gkbd-keyboard-display")
                   (string-append "\"" libgnomekbd
                                  "/bin/gkbd-keyboard-display")))
-               (substitute* '("panels/network/net-device-wifi.c"
-                              "panels/network/net-device.c"
+               (substitute* '("panels/network/net-device-bluetooth.c"
+                              "panels/network/net-device-mobile.c"
                               "panels/network/connection-editor/net-connection-editor.c")
                  (("\"nm-connection-editor")
                   (string-append "\"" nm-applet
@@ -8419,23 +8580,15 @@ devices using the GNOME desktop.")
                (substitute* '("panels/user-accounts/run-passwd.c")
                  (("/usr/bin/passwd")
                   "/run/setuid-programs/passwd"))
-               (substitute* "panels/info/cc-info-overview-panel.c"
+               (substitute* "panels/info-overview/cc-info-overview-panel.c"
                  (("DATADIR \"/gnome/gnome-version.xml\"")
                   (string-append "\"" gnome-desktop
-                                 "/share/gnome/gnome-version.xml\"")))
-               #t)))
-         ;; XXX: This appears to be fixed in 3.35.90:
-         ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=957285.
-         (add-before 'configure 'set-cflags
-           (lambda _
-             (setenv "CFLAGS" "-fcommon")
-             #t))
+                                 "/share/gnome/gnome-version.xml\""))))))
          (add-after 'unpack 'skip-gtk-update-icon-cache
            ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "build-aux/meson/meson_post_install.py"
-               (("gtk-update-icon-cache") (which "true")))
-             #t)))))
+               (("gtk-update-icon-cache") (which "true"))))))))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
        ("intltool" ,intltool)
@@ -8469,7 +8622,7 @@ devices using the GNOME desktop.")
        ("libnma" ,libnma)
        ("libpwquality" ,libpwquality)
        ("libsecret" ,libsecret)
-       ("libsoup" ,libsoup)
+       ("libsoup" ,libsoup-minimal-2)
        ("libxml2" ,libxml2)
        ("libwacom" ,libwacom)
        ("mesa" ,mesa)
@@ -8494,34 +8647,20 @@ properties, screen resolution, and other GNOME parameters.")
 (define-public gnome-shell
   (package
     (name "gnome-shell")
-    (version "3.34.5")
+    (version "41.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0l3mdn7g2c22mdhrqkxvvc1pk2w0v32f2v4a6n1phvaalwcg75nj"))
-              (patches (search-patches "gnome-shell-CVE-2020-17489.patch"
-                                       "gnome-shell-theme.patch"
-                                       "gnome-shell-disable-test.patch"))
-              (modules '((guix build utils)))
-              (snippet
-               #~(begin
-                   ;; Copy images for use on the GDM log-in screen.
-                   (copy-file #$(file-append %artwork-repository
-                                             "/slim/0.x/background.png")
-                              "data/theme/guix-background.png")
-                   (copy-file #$(file-append %artwork-repository
-                                             "/logo/Guix-horizontal-white.svg")
-                              "data/theme/guix-logo.svg")
-                   #t))))
+                "0ragmcln210zvzhc2br33yprbkj9drjzd7inp5sdxra0a7l73yaj"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+       #:glib-or-gtk? #t
        #:disallowed-references ,(list (gexp-input glib "bin")
-                                      (gexp-input inkscape)
                                       (gexp-input libxslt)
                                       (gexp-input ruby-sass))
        #:configure-flags
@@ -8544,13 +8683,12 @@ properties, screen resolution, and other GNOME parameters.")
                               out "/share/gnome-control-center/keybindings")))
                (substitute* "meson.build"
                  (("keysdir =.*")
-                  (string-append "keysdir = '" keysdir "'\n")))
-               #t)))
-         (add-before 'configure 'convert-logo-to-png
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; Convert the logo from SVG to PNG.
-             (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
-                     "data/theme/guix-logo.svg")))
+                  (string-append "keysdir = '" keysdir "'\n"))))))
+         (add-after 'unpack 'skip-gtk-update-icon-cache
+           ;; Don't create 'icon-theme.cache'.
+           (lambda _
+             (substitute* "meson/postinstall.py"
+               (("gtk-update-icon-cache") "true"))))
          (add-before 'configure 'record-absolute-file-names
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "js/misc/ibusManager.js"
@@ -8560,51 +8698,41 @@ properties, screen resolution, and other GNOME parameters.")
              (substitute* "js/ui/status/keyboard.js"
                (("'gkbd-keyboard-display'")
                 (string-append "'" (assoc-ref inputs "libgnomekbd")
-                               "/bin/gkbd-keyboard-display'")))
-             #t))
+                               "/bin/gkbd-keyboard-display'")))))
          (add-before 'check 'pre-check
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Tests require a running X server.
              (system "Xvfb :1 &")
              (setenv "DISPLAY" ":1")
-             #t))
+             (setenv "HOME" "/tmp")))   ;to avoid "fatal" warnings
          (add-after 'install 'wrap-programs
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out              (assoc-ref outputs "out"))
                    (gi-typelib-path  (getenv "GI_TYPELIB_PATH"))
                    (python-path      (getenv "GUIX_PYTHONPATH")))
                (wrap-program (string-append out "/bin/gnome-shell")
-                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
-                 ;; FIXME: gnome-shell loads these libraries with unqualified
-                 ;; names only, so they need to be on LD_LIBRARY_PATH.  The
-                 ;; alternative might be to patch gnome-shell.
-                 `("LD_LIBRARY_PATH" ":" prefix
-                   ,(map (lambda (pkg)
-                           (string-append (assoc-ref inputs pkg) "/lib"))
-                         '("gdk-pixbuf"
-                           "gnome-bluetooth" "librsvg" "libgweather"))))
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
                (for-each
                 (lambda (prog)
                   (wrap-program (string-append out "/bin/" prog)
                     `("GUIX_PYTHONPATH"      ":" prefix (,python-path))
                     `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
-                '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
-               #t)))
+                '("gnome-shell-extension-tool" "gnome-shell-perf-tool")))))
          (replace 'glib-or-gtk-wrap
            (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
              (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
-               ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
+               ;; By default intltool et al. would end up in the XDG_DATA_DIRS
                ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
                ;; phase.  Fix that since we don't need these.
                (wrap #:inputs (fold alist-delete inputs
-                                    '("inkscape" "intltool" "glib:bin"))
+                                    '("intltool" "glib:bin"))
                      #:outputs outputs)))))))
     (native-inputs
      `(("asciidoc" ,asciidoc)
        ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
        ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
        ("gobject-introspection" ,gobject-introspection)
-       ("inkscape" ,inkscape)
+       ("hicolor-icon-theme" ,hicolor-icon-theme)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
        ("python" ,python)
@@ -8614,42 +8742,41 @@ properties, screen resolution, and other GNOME parameters.")
        ;; For tests
        ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     `(("accountsservice" ,accountsservice)
-       ("caribou" ,caribou)
-       ("docbook-xsl" ,docbook-xsl)
-       ("evolution-data-server" ,evolution-data-server)
-       ("gcr" ,gcr)
-       ("gdm" ,gdm)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
-       ("gjs" ,gjs)
-       ("gnome-autoar" ,gnome-autoar)
-       ("gnome-bluetooth" ,gnome-bluetooth)
-       ("gnome-desktop" ,gnome-desktop)
-       ("gnome-settings-daemon" ,gnome-settings-daemon)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("ibus" ,ibus)
-       ("libcanberra" ,libcanberra)
-       ("libcroco" ,libcroco)
-       ("libgnomekbd" ,libgnomekbd)               ;for gkbd-keyboard-display
-       ("libgweather" ,libgweather)
-       ("libnma" ,libnma)
-       ("libsoup" ,libsoup)
-       ("mesa-headers" ,mesa-headers)
-       ("mutter" ,mutter)
-       ("network-manager-applet" ,network-manager-applet)
-       ("polkit" ,polkit)
-       ("pulseaudio" ,pulseaudio)
-       ("python-pygobject" ,python-pygobject)
-       ("startup-notification" ,startup-notification)
-       ("telepathy-logger" ,telepathy-logger)
-       ("upower" ,upower)
-       ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
-       ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
-       ("librsvg" ,librsvg)
-       ("geoclue" ,geoclue)))
-    ;; CVE-2019-3820 was fixed before GNOME 3.34 was released, in upstream
-    ;; commit f0a7395b3006360905ccdc642982f9fc67378927.
-    (properties '((lint-hidden-cve . ("CVE-2019-3820"))))
+     (list accountsservice
+           caribou
+           docbook-xsl
+           evolution-data-server
+           gcr
+           gdm
+           librsvg
+           gjs
+           gtk
+           gnome-autoar
+           gnome-bluetooth
+           gnome-desktop
+           gnome-settings-daemon
+           graphene
+           gst-plugins-base
+           ibus
+           libcanberra
+           libcroco
+           libgnomekbd ;for gkbd-keyboard-display
+           libgweather
+           libnma
+           libsoup
+           mesa-headers
+           mutter
+           network-manager-applet
+           polkit
+           pulseaudio
+           python-pygobject
+           startup-notification
+           telepathy-logger
+           upower
+           ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
+           ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
+           librsvg
+           geoclue))
     (synopsis "Desktop shell for GNOME")
     (home-page "https://wiki.gnome.org/Projects/GnomeShell")
     (description
@@ -8685,7 +8812,7 @@ like switching to windows and launching applications.")
        ("vala" ,vala)))
     (inputs
      `(("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("glib" ,glib)
        ("gnutls" ,gnutls)
        ("libgcrypt" ,libgcrypt)
@@ -8694,7 +8821,7 @@ like switching to windows and launching applications.")
        ("x11" ,libx11)
        ("zlib" ,zlib)))
     (propagated-inputs
-     `(("gtk+" ,gtk+)))
+     (list gtk+))
     (synopsis "VNC client viewer widget for GTK+")
     (description "GTK-VNC is a project providing client side APIs for the RFB
 protocol / VNC remote desktop technology.  It is built using coroutines allowing
@@ -8706,7 +8833,7 @@ core C library, and bindings for Python (PyGTK).")
 (define-public gnome-autoar
   (package
     (name "gnome-autoar")
-    (version "0.3.3")
+    (version "0.4.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -8714,15 +8841,15 @@ core C library, and bindings for Python (PyGTK).")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "012w7rhhpxvlrnnhqy01vwzg1wxqpy8jbqgizn47wnip7bvh0917"))))
-    (build-system glib-or-gtk-build-system)
+                "03hmm7cjgjvyxlflghfa89s1amj16qapl2c9pv0r2bfrp87dasv4"))))
+    (build-system meson-build-system)
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)))
+     (list gobject-introspection
+           `(,glib "bin") pkg-config))
     (propagated-inputs
-     `(("libarchive" ,libarchive)))  ; Required by gnome-autoar-0.pc
+     (list libarchive))  ; Required by gnome-autoar-0.pc
     (inputs
-     `(("gtk+" ,gtk+)))
+     (list gtk+))
     (synopsis "Archives integration support for GNOME")
     (home-page "https://git.gnome.org/browse/gnome-autoar/")
     (description
@@ -8792,7 +8919,7 @@ easy, safe, and automatic.")
        ("libxml2" ,libxml2)
        ("icu4c" ,icu4c)                 ; libunistring gets miner-miner-fs test to fail.
        ("json-glib" ,json-glib)
-       ("libsoup" ,libsoup)))
+       ("libsoup" ,libsoup-minimal-2))) ; tracker-miners requires the same version.
     (synopsis "Metadata database, indexer and search tool")
     (home-page "https://wiki.gnome.org/Projects/Tracker")
     (description
@@ -8911,7 +9038,7 @@ endpoint and it understands SPARQL. ")
        ("libosinfo" ,libosinfo)
        ("libpng" ,libpng)
        ("libseccomp" ,libseccomp)
-       ("libsoup" ,libsoup)
+       ("libsoup" ,libsoup-minimal-2) ; because tracker requires this version.
        ("libtiff" ,libtiff)
        ("libvorbis" ,libvorbis)
        ("libxml2" ,libxml2)
@@ -8937,26 +9064,26 @@ shared object databases, search tools and indexing.")
 (define-public nautilus
   (package
     (name "nautilus")
-    (version "3.38.2")
+    (version "41.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "19ln84d6s05h6cvx3c500bg5pvkz4k6p6ykmr2201rblq9afp76h"))))
+                "1rd1a0wjh2sc7mzw6m61rryvgxpi2lin4xj0x9khqw04q6nl3fgr"))))
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t
+       #:meson ,meson-0.59
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
            ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "build-aux/meson/postinstall.py"
-               (("gtk-update-icon-cache") "true"))
-             #t)))
+               (("gtk-update-icon-cache") "true")))))
        ;; XXX: FAIL: check-nautilus
        ;;   Settings schema 'org.gnome.nautilus.preferences' is not installed
        #:tests? #f))
@@ -8975,9 +9102,11 @@ shared object databases, search tools and indexing.")
        ("gnome-autoar" ,gnome-autoar)
        ("gst-plugins-base" ,gst-plugins-base)
        ("json-glib" ,json-glib)
+       ("libhandy" ,libhandy)
+       ("libportal" ,libportal)
        ("libseccomp" ,libseccomp)
        ("libselinux" ,libselinux)
-       ("libsoup" ,libsoup)
+       ("libsoup" ,libsoup-minimal-2) ; to satisfy tracker dependencies
        ("tracker" ,tracker)
        ("tracker-miners" ,tracker-miners)
        ;; XXX: gtk+ is required by libnautilus-extension.pc
@@ -8999,16 +9128,16 @@ files.")
 (define-public baobab
   (package
     (name "baobab")
-    (version "3.38.0")
+    (version "40.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "mirror://gnome/sources/" name "/"
-                    (version-major+minor version) "/"
+                    (version-major version) "/"
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0ac3fbl15l836yvgw724q4whbkws9v4b6l2xy6bnp0b0g0a6i104"))))
+                "19yii3bdgivxrcka1c4g6dpbmql5nyawwhzlsph7z6bs68nambm6"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t))
@@ -9022,7 +9151,7 @@ files.")
        ("glib" ,glib "bin")
        ("vala" ,vala)))
     (inputs
-     `(("gtk+" ,gtk+)))
+     (list gtk+ libhandy))
     (synopsis "Disk usage analyzer for GNOME")
     (description
      "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
@@ -9035,16 +9164,16 @@ is complete it provides a graphical representation of each selected folder.")
 (define-public gnome-backgrounds
   (package
     (name "gnome-backgrounds")
-    (version "3.34.0")
+    (version "40.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://gnome/sources/" name "/"
-                           (version-major+minor version) "/"
+                           (version-major version) "/"
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
+         "03m7ldfk00cly9igrq0qizq1y0f45vijmm23f1dl5kh1lc6qmpv0"))))
     (build-system meson-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)))
@@ -9063,16 +9192,18 @@ can add your own files to the collection.")
 (define-public gnome-screenshot
   (package
     (name "gnome-screenshot")
-    (version "3.34.0")
+    (version "40.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://gnome/sources/" name "/"
-                           (version-major+minor version) "/"
+                           (version-major version) "/"
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
+         "1qm544ymwibk31s30k47vnn79xg30m18r7l4di0c57g375dak31n"))
+       (patches
+        (search-patches "gnome-screenshot-meson-0.60.patch"))))
     (build-system meson-build-system)
     (arguments
      '(#:phases
@@ -9090,10 +9221,7 @@ can add your own files to the collection.")
        ("appstream-glib" ,appstream-glib)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libcanberra" ,libcanberra)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)))
+     (list gtk+ libcanberra libhandy libx11 libxext))
     (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
     (synopsis "Take pictures of your screen")
     (description
@@ -9105,7 +9233,7 @@ beautifying border effects.")
 (define-public dconf-editor
   (package
     (name "dconf-editor")
-    (version "3.34.2")
+    (version "3.38.3")
     (source
      (origin
        (method url-fetch)
@@ -9114,7 +9242,7 @@ beautifying border effects.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
+         "1qvrxrk1h8bd75xwasxbvlkqrw6xkavjimvc7sslkw6lvb3z86jp"))))
     (build-system meson-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
@@ -9123,9 +9251,9 @@ beautifying border effects.")
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
     (inputs
-     `(("dconf" ,dconf)
-       ("gtk+" ,gtk+)
-       ("libxml2" ,libxml2)))
+     (list dconf gtk+ libxml2))
+    (arguments
+     `(#:meson ,meson-0.59))
     (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
     (synopsis "Graphical editor for GNOME's dconf configuration system")
     (description
@@ -9141,8 +9269,7 @@ software that do not provide their own configuration interface.")
     (build-system trivial-build-system)
     (source #f)
     (propagated-inputs
-     `(("nautilus" ,nautilus)
-       ("evince" ,evince)))
+     (list nautilus evince))
     (arguments
      `(#:modules ((guix build utils))
        #:builder
@@ -9182,15 +9309,15 @@ associations for GNOME.")
               "1y0x1wyakj3ya33hgj0w1jkbcn50q21gmn2zyalxysqp55i1ij8x"))))
    (build-system glib-or-gtk-build-system)
    (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("glib:bin" ,glib "bin")
-      ("gobject-introspection" ,gobject-introspection)
-      ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-      ("gtk+:bin" ,gtk+ "bin")
-      ("pkg-config" ,pkg-config)))
+    (list gettext-minimal
+          `(,glib "bin")
+          gobject-introspection
+          gsettings-desktop-schemas
+          `(,gtk+ "bin")
+          pkg-config))
    (inputs
-    `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
-      ("librest" ,rest)))
+    (list glib-networking ; GIO plugin--for the tests
+          rest))
    (synopsis "GoVirt Library")
    (description "GoVirt is a GObject wrapper for the oVirt REST API.")
    (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
@@ -9199,15 +9326,15 @@ associations for GNOME.")
 (define-public gnome-weather
   (package
    (name "gnome-weather")
-   (version "3.34.0")
+   (version "40.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version) "/"
+                                (version-major version) "/"
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
+              "0k9wnyinvx6433r07kvjyahgqc605g7gbpf3d0h6vi4p8x61849x"))))
    (build-system meson-build-system)
    (native-inputs
     `(("gettext" ,gettext-minimal)
@@ -9216,34 +9343,39 @@ associations for GNOME.")
       ("gtk+:bin" ,gtk+ "bin")
       ("pkg-config" ,pkg-config)))
    (inputs
-    `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
-      ("appstream-glib" ,appstream-glib)
-      ("geoclue" ,geoclue)
-      ("gdk-pixbuf" ,gdk-pixbuf)
-      ("gjs" ,gjs)
-      ("gnome-desktop" ,gnome-desktop)
-      ("libgweather" ,libgweather)))
+    (list appstream-glib
+          geoclue
+          gjs
+          gnome-desktop
+          libgweather
+          libhandy))
    (arguments
-    `(#:glib-or-gtk? #t
+    `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+      #:glib-or-gtk? #t
       #:phases
-      (modify-phases %standard-phases
-        (add-after 'install 'fix-desktop-file
-          ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
-          ;; See https://issues.guix.gnu.org/issue/39324.
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let* ((out (assoc-ref outputs "out"))
-                   (applications (string-append out "/share/applications")))
-              (substitute* (string-append applications "/org.gnome.Weather.desktop")
-                (("Exec=.*") "Exec=gnome-weather\n"))
-              #t)))
-        (add-after 'install 'wrap
-          (lambda* (#:key inputs outputs #:allow-other-keys)
-            (let ((out               (assoc-ref outputs "out"))
-                  (gi-typelib-path   (getenv "GI_TYPELIB_PATH")))
-              ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
-              (wrap-program (string-append out "/bin/gnome-weather")
-                `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
-              #t))))))
+      ,#~(modify-phases %standard-phases
+           (add-after 'unpack 'fix-service-file
+             (lambda _
+               (substitute* "data/org.gnome.Weather.service.in"
+                 (("Exec=[[:graph:]]+")
+                  (string-append "Exec=" #$output
+                                 "/bin/gnome-weather")))))
+           (add-after 'install 'fix-desktop-file
+             ;; FIXME: "gapplication launch org.gnome.Weather" fails for some
+             ;; reason.  See https://issues.guix.gnu.org/issue/39324.
+             (lambda _
+               (let ((applications
+                      (string-append #$output "/share/applications")))
+                 (substitute* (string-append applications
+                                             "/org.gnome.Weather.desktop")
+                   (("Exec=.*") "Exec=gnome-weather\n")))))
+           (add-after 'install 'wrap
+             (lambda _
+               (let ((gi-typelib-path   (getenv "GI_TYPELIB_PATH")))
+                 ;; GNOME Weather needs the typelib files of GTK+, Pango etc
+                 ;; at runtime.
+                 (wrap-program (string-append #$output "/bin/gnome-weather")
+                   `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
    (synopsis "Weather monitoring for GNOME desktop")
    (description "GNOME Weather is a small application that allows you to
 monitor the current weather conditions for your city, or anywhere in the
@@ -9259,15 +9391,12 @@ world.")
     (build-system trivial-build-system)
     (arguments '(#:builder (begin (mkdir %output) #t)))
     (propagated-inputs
-     ;; TODO: Add or remove packages according to:
-     ;;       <https://calc.disroot.org/2nu6mpf88ynq.html>.
-     `(
-     ;; GNOME-Core-OS-Services
+     `(;; GNOME-Core-OS-Services
        ("accountsservice" ,accountsservice)
        ("network-manager" ,network-manager)
        ("packagekit" ,packagekit)
        ("upower" ,upower)
-     ;; GNOME-Core-Shell
+       ;; GNOME-Core-Shell
        ("adwaita-icon-theme" ,adwaita-icon-theme)
        ("gdm" ,gdm)
        ("glib-networking" ,glib-networking)
@@ -9276,7 +9405,6 @@ world.")
        ("gnome-color-manager" ,gnome-color-manager)
        ("gnome-control-center" ,gnome-control-center)
        ("gnome-desktop" ,gnome-desktop)
-       ("gnome-getting-started-docs" ,gnome-getting-started-docs)
        ("gnome-initial-setup" ,gnome-initial-setup)
        ("gnome-keyring" ,gnome-keyring)
        ("gnome-menus" ,gnome-menus)
@@ -9293,7 +9421,7 @@ world.")
        ("orca" ,orca)
        ("rygel" ,rygel)
        ("sushi" ,sushi)
-     ;; GNOME-Core-Utilities
+       ;; GNOME-Core-Utilities
        ("baobab" ,baobab)
        ("cheese" ,cheese)
        ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
@@ -9314,8 +9442,8 @@ world.")
        ("gnome-disk-utility" ,gnome-disk-utility)
        ("gnome-font-viewer" ,gnome-font-viewer)
        ("gnome-maps" ,gnome-maps)
-       ; TODO: ("gnome-music" ,gnome-music)
-       ; TODO: ("gnome-photos" ,gnome-photos)
+       ("gnome-music" ,gnome-music)
+       ("gnome-photos" ,gnome-photos)
        ("gnome-screenshot" ,gnome-screenshot)
        ("gnome-system-monitor" ,gnome-system-monitor)
        ("gnome-terminal" ,gnome-terminal)
@@ -9323,17 +9451,18 @@ world.")
        ("nautilus" ,nautilus)
        ("simple-scan" ,simple-scan)
        ("totem" ,totem)
+       ("tracker-miners" ,tracker-miners)
        ("yelp" ,yelp)
-     ;; Others
+       ;; Others
        ("hicolor-icon-theme" ,hicolor-icon-theme)
        ("gnome-online-accounts" ,gnome-online-accounts)
 
        ;; Packages not part of GNOME proper but that are needed for a good
        ;; experience.  See <https://bugs.gnu.org/39646>.
        ;; XXX: Find out exactly which ones are needed and why.
-       ("font-cantarell"            ,font-cantarell)
+       ("font-abattis-cantarell"            ,font-abattis-cantarell)
        ("font-dejavu"               ,font-dejavu)
-       ("at-spi2-core"              ,at-spi2-core)
+       ("at-spi2-core"              ,at-spi2-core-minimal)
        ("dbus"                      ,dbus)
        ("dconf"                     ,dconf)
        ("desktop-file-utils"        ,desktop-file-utils)
@@ -9388,18 +9517,15 @@ documents and diagrams, playing media, scanning, and much more.")
                  (("-Werror") ""))
                #t)))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("gnome-common" ,gnome-common)
-         ("intltool" ,intltool)
-         ("libtool" ,libtool)
-         ("pkg-config" ,pkg-config)
-         ("which" ,which)))
+       (list autoconf
+             automake
+             gnome-common
+             intltool
+             libtool
+             pkg-config
+             which))
       (inputs
-       `(("glib" ,glib)
-         ("gstreamer" ,gstreamer)
-         ("gst-plugins-base" ,gst-plugins-base)
-         ("gtk+" ,gtk+)))
+       (list glib gstreamer gst-plugins-base gtk+))
       (synopsis "Desktop recording program")
       (description "Byzanz is a simple desktop recording program with a
 command-line interface.  It can record part or all of an X display for a
@@ -9446,18 +9572,18 @@ specified duration and save it as a GIF encoded animated image file.")
        ("gtk+:bin" ,gtk+ "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ("libhandy" ,libhandy-0.0)
-       ("libsecret" ,libsecret)
-       ("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-pillow" ,python-pillow)
-       ("python-pyfavicon" ,python-pyfavicon)
-       ("python-pygobject" ,python-pygobject)
-       ("python-pyotp" ,python-pyotp)
-       ("python-pyzbar" ,python-pyzbar)
-       ("yoyo-migrations" ,yoyo-migrations)
-       ("zbar" ,zbar)))
+     (list gsettings-desktop-schemas
+           gtk+
+           libhandy-0.0
+           libsecret
+           python-beautifulsoup4
+           python-pillow
+           python-pyfavicon
+           python-pygobject
+           python-pyotp
+           python-pyzbar
+           yoyo-migrations
+           zbar))
     (home-page "https://gitlab.gnome.org/World/Authenticator/")
     (synopsis "Two-factor authentication application built for GNOME")
     (description
@@ -9479,23 +9605,20 @@ Features:
 (define-public gsound
   (package
     (name "gsound")
-    (version "1.0.2")
+    (version "1.0.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/gsound/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "gsound-" version ".tar.xz"))
               (sha256
                (base32
-                "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
-    (build-system glib-or-gtk-build-system)
+                "06l80xgykj7x1kqkjvcq06pwj2rmca458zvs053qc55x3sg06bfa"))))
+    (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gobject-introspection" ,gobject-introspection)
-       ("vala" ,vala)))
-    (inputs
-     `(("glib" ,glib)
-       ("libcanberra" ,libcanberra)))
+     (list pkg-config gobject-introspection vala))
+    (propagated-inputs
+     (list libcanberra))   ; in Requires.private of gsound.pc
     (home-page "https://wiki.gnome.org/Projects/GSound")
     (synopsis "GObject wrapper for libcanberra")
     (description
@@ -9518,13 +9641,9 @@ library.")
                 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list gobject-introspection intltool pkg-config))
     (inputs
-     `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
-       ("json-glib" ,json-glib)
-       ("rest" ,rest)))
+     (list `(,gnome-online-accounts "lib") json-glib rest))
     (home-page "https://wiki.gnome.org/Projects/Zapojit")
     (synopsis "Library for accessing SkyDrive and Hotmail")
     (description
@@ -9535,15 +9654,15 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.")
 (define-public gnome-clocks
   (package
     (name "gnome-clocks")
-    (version "3.34.0")
+    (version "40.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
+                "02d3jg46sn8d9gd4dsaly22gg5vkbz2gpq4pmwpvncb4rsqk7sn2"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
@@ -9553,8 +9672,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.")
            ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "build-aux/post-install.py"
-               (("gtk-update-icon-cache") "true"))
-             #t)))))
+               (("gtk-update-icon-cache") "true")))))))
     (native-inputs
      `(("vala" ,vala)
        ("pkg-config" ,pkg-config)
@@ -9563,13 +9681,14 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.")
        ("gettext" ,gettext-minimal)
        ("itstool" ,itstool)))
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("gsound" ,gsound)
-       ("geoclue" ,geoclue)
-       ("geocode-glib" ,geocode-glib)
-       ("libgweather" ,libgweather)
-       ("gnome-desktop" ,gnome-desktop)))
+     (list glib
+           gtk+
+           gsound
+           geoclue
+           geocode-glib
+           libgweather
+           libhandy
+           gnome-desktop))
     (home-page "https://wiki.gnome.org/Apps/Clocks")
     (synopsis "GNOME's clock application")
     (description
@@ -9580,18 +9699,19 @@ desktop.  It supports world clock, stop watch, alarms, and count down timer.")
 (define-public gnome-calendar
   (package
     (name "gnome-calendar")
-    (version "3.34.2")
+    (version "40.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
+                "0czasxnmbw2zm21lmxam8qixacagciq3f815s809hn0f9byh2dwy"))))
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:glib-or-gtk? #t
+       #:meson ,meson-0.59
        ;; gnome-calendar has to be installed before the tests can be run
        ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
        #:tests? #f
@@ -9613,9 +9733,10 @@ desktop.  It supports world clock, stop watch, alarms, and count down timer.")
        ("libdazzle" ,libdazzle)
        ("libedataserverui" ,evolution-data-server)
        ("libgweather" ,libgweather)
+       ("libhandy" ,libhandy)
        ("geoclue" ,geoclue)))
     (propagated-inputs
-     `(("evolution-data-server" ,evolution-data-server)))
+     (list evolution-data-server))
     (home-page "https://wiki.gnome.org/Apps/Calendar")
     (synopsis "GNOME's calendar application")
     (description
@@ -9626,46 +9747,43 @@ desktop.  It supports multiple calendars, month, week and year view.")
 (define-public gnome-todo
   (package
     (name "gnome-todo")
-    (version "3.28.1")
+    (version "40.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
-              (patches
-               (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
+                "1r1fb3zgjvkhx93by24j8cg1w1g3zvwr49vqkscjn261vqs44jq3"))))
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t
-       #:phases (modify-phases %standard-phases
-                  (add-after
-                      'install 'wrap-gnome-todo
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      (let ((out               (assoc-ref outputs "out"))
-                            (gi-typelib-path   (getenv "GI_TYPELIB_PATH"))
-                            (python-path       (getenv "GUIX_PYTHONPATH")))
-                        (wrap-program (string-append out "/bin/gnome-todo")
-                          ;; XXX: gi plugins are broken.
-                          ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
-                          ;; For plugins.
-                          `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
-                          `("GUIX_PYTHONPATH" ":" prefix (,python-path))))
-                      #t)))))
+     `(#:glib-or-gtk? #t
+       ;; XXX: Some tests fail with the following error:
+       ;; Settings schema 'org.gnome.todo' is not installed.
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-gtk-update-icon-cache
+           ;; Don't create 'icon-theme.cache'.
+           (lambda _
+             (substitute* "build-aux/meson/meson_post_install.py"
+               (("gtk-update-icon-cache") "true")))))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("gobject-introspection" ,gobject-introspection)
        ("glib:bin" ,glib "bin")         ; For glib-compile-resources
-       ("gtk+-bin" ,gtk+ "bin")         ; For gtk-update-icon-cache
+       ("gtk-bin" ,gtk "bin")           ; For gtk-update-icon-cache
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("rest" ,rest)                   ; For Todoist plugin
+       ("gtk" ,gtk)
        ("json-glib" ,json-glib)         ; For Todoist plugin
+       ("libadwaita" ,libadwaita)
        ("libedataserverui" ,evolution-data-server)
        ("libical" ,libical)
        ("libpeas" ,libpeas)
+       ("libportal" ,libportal)
        ("python-pygobject" ,python-pygobject)
        ("evolution-data-server" ,evolution-data-server)
        ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
@@ -9680,26 +9798,25 @@ fit the GNOME desktop.")
 (define-public gnome-dictionary
   (package
     (name "gnome-dictionary")
-    (version "3.26.1")
+    (version "40.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
+                "1d8dhcfys788vv27v34i3s3x3jdvdi2kqn2a5p8c937a9hm0qr9f"))))
     (build-system meson-build-system)
-    (arguments '(#:glib-or-gtk? #t
-                 #:phases (modify-phases %standard-phases
-                            (add-after 'unpack 'patch-install-script
-                              (lambda _
-                                ;; This script attempts to compile glib schemas
-                                ;; and create an empty MIME database.  We do
-                                ;; that elsewhere, so prevent it from running.
-                                (substitute* "build-aux/post-install.sh"
-                                  (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
-                                #t)))))
+    (arguments
+     '(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-gtk-update-icon-cache
+           ;; Don't create 'icon-theme.cache'.
+           (lambda _
+             (substitute* "build-aux/meson/post-install.py"
+               (("gtk-update-icon-cache") "true")))))))
     (native-inputs
      `(("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
@@ -9708,8 +9825,7 @@ fit the GNOME desktop.")
        ("pkg-config" ,pkg-config)
        ("xmllint" ,libxml2)))
     (inputs
-     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)))
+     (list gsettings-desktop-schemas gtk+))
     (home-page "https://wiki.gnome.org/Apps/Dictionary")
     (synopsis "Look up words in dictionary sources")
     (description
@@ -9720,20 +9836,21 @@ existing databases over the internet.")
 (define-public gnome-tweaks
   (package
     (name "gnome-tweaks")
-    (version "3.34.1")
+    (version "40.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   "gnome-tweaks-" version ".tar.xz"))
               (patches
                (list (search-patch "gnome-tweaks-search-paths.patch")))
               (sha256
                (base32
-                "19y62dj4n5i6v4zpjllxl51dch6ndy8xs45v5aqmmq9xyfrqk5yq"))))
+                "0sn3xsjhnini0f2dyi1ymrr3fb8mi7w5j5lsyw11rc5h67h3ypzr"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
+       #:meson ,meson-0.59
        #:configure-flags '("-Dlocalstatedir=/tmp"
                            "-Dsysconfdir=/tmp")
        #:imported-modules ((guix build python-build-system)
@@ -9744,31 +9861,37 @@ existing databases over the internet.")
            ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "meson-postinstall.py"
-               (("gtk-update-icon-cache") "true"))
-             #t))
+               (("gtk-update-icon-cache") "true"))))
          (add-after 'install 'wrap
            (@@ (guix build python-build-system) wrap))
-         (add-after 'wrap 'wrap-gi-typelib
+         (add-after 'wrap 'wrap-gi-typelib-and-python
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out               (assoc-ref outputs "out"))
                    (gi-typelib-path   (getenv "GI_TYPELIB_PATH")))
-               (wrap-program (string-append out "/bin/gnome-tweaks")
-                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
-             #t)))))
-    (native-inputs
-     `(("intltool" ,intltool)
+               (let ((python-path
+                      (string-append out "/lib/python"
+                                     ,(version-major+minor
+                                       (package-version python))
+                                     "/site-packages")))
+                 (wrap-program (string-append out "/bin/gnome-tweaks")
+                   `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                   `("GUIX_PYTHONPATH" ":" prefix (,python-path))))))))))
+    (native-inputs
+     `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
+       ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gnome-desktop" ,gnome-desktop)
-       ("gtk+" ,gtk+)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("libhandy" ,libhandy-0.0)
-       ("libnotify" ,libnotify)
-       ("libsoup" ,libsoup)
-       ("nautilus" ,nautilus)
-       ("python" ,python)
-       ("python-pygobject" ,python-pygobject)))
+     (list bash-minimal ; to execute the wrapper program
+           gnome-desktop
+           gtk+
+           gobject-introspection
+           gsettings-desktop-schemas
+           libhandy
+           libnotify
+           libsoup
+           nautilus
+           python
+           python-pygobject))
     (synopsis "Customize advanced GNOME 3 options")
     (home-page "https://wiki.gnome.org/Apps/Tweaks")
     (description
@@ -9781,15 +9904,15 @@ GNOME Shell appearance and extension, etc.")
 (define-public gnome-shell-extensions
   (package
     (name "gnome-shell-extensions")
-    (version "3.34.2")
+    (version "41.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version)  "/"
+                                  (version-major version)  "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
+                "0s7wcsa0ysdgh5zpxpa95id5rz4ajb2r1561v5szjf4b8k0slkyq"))))
     (build-system meson-build-system)
     (arguments
      '(#:configure-flags '("-Dextension_set=all")))
@@ -9798,7 +9921,7 @@ GNOME Shell appearance and extension, etc.")
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
     (propagated-inputs
-     `(("glib" ,glib)))
+     (list glib))
     (synopsis "Extensions for GNOME Shell")
     (description "GNOME Shell extensions modify and extend GNOME Shell
 functionality and behavior.")
@@ -9808,7 +9931,7 @@ functionality and behavior.")
 (define-public folks
   (package
     (name "folks")
-    (version "0.14.0")
+    (version "0.15.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -9817,7 +9940,7 @@ functionality and behavior.")
                     "folks-" version ".tar.xz"))
               (sha256
                (base32
-                "1f9b52vmwnq7s51vj26w2618dn2ph5g12ibbkbyk6fvxcgd7iryn"))))
+                "19a4qp9ry8y24jx1v5456qn9lnw843571vkkah3bxx4ky3x3gmr1"))))
     (build-system meson-build-system)
     (arguments
      '(#:phases
@@ -9829,13 +9952,13 @@ functionality and behavior.")
                (("gtk-update-icon-cache") "true"))
              #t)))))
     (inputs
-     `(("bdb" ,bdb)
-       ("dbus-glib" ,dbus-glib)
-       ("evolution-data-server" ,evolution-data-server)
-       ("glib" ,glib)
-       ("libgee" ,libgee)
-       ("readline" ,readline)
-       ("telepathy-glib" ,telepathy-glib)))
+     (list bdb
+           dbus-glib
+           evolution-data-server
+           glib
+           libgee
+           readline
+           telepathy-glib))
     (native-inputs
      `(("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
@@ -9872,15 +9995,14 @@ compiled.")
                            "--enable-gtk-doc"
                            "--enable-introspection")))
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("pkg-config" ,pkg-config)
-
-       ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("which" ,which)))
+     (list gobject-introspection
+           gtk-doc/stable
+           pkg-config
+           ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
+           autoconf
+           automake
+           libtool
+           which))
     (inputs
      `(("json-glib" ,json-glib)
        ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
@@ -9905,14 +10027,11 @@ GLib/GObject code.")
                 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib" ,glib "bin")
-       ("intltool" ,intltool)))
+     (list pkg-config
+           `(,glib "bin") intltool))
     (propagated-inputs
      ;; Referred to in .h files and .pc.
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libxklavier" ,libxklavier)))
+     (list glib gtk+ libxklavier))
     (home-page "https://www.gnome.org")
     (synopsis "GNOME keyboard configuration library")
     (description
@@ -9948,7 +10067,7 @@ environment, which can notably display keyboard layouts.")
        ("gtk-doc" ,gtk-doc/stable)))
     (propagated-inputs
      ;; Referred to in .h files and .pc.
-     `(("gtk+" ,gtk+)))
+     (list gtk+))
     (home-page "https://wiki.gnome.org/Attic/LibUnique")
     (synopsis "Library for writing single instance applications")
     (description
@@ -9963,18 +10082,25 @@ handling the startup notification side.")
 (define-public gnome-calculator
   (package
     (name "gnome-calculator")
-    (version "3.36.0")
+    (version "40.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://gnome/sources/" name "/"
-                           (version-major+minor version) "/"
+                           (version-major version) "/"
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1cqd4b25qp1i0p04m669jssg1l5sdapc1mniv9jssvw5r7wk1s52"))))
+         "1xkazxbkpn1z5pfphhps7fc5q4yc8lp7f6b222n8bx5iyxhwbrkz"))))
     (build-system meson-build-system)
-    (arguments '(#:glib-or-gtk? #t))
+    (arguments
+     '(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a writable HOME.
+             (setenv "HOME" (getcwd)))))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
@@ -9986,7 +10112,8 @@ handling the startup notification side.")
      `(("glib" ,glib)
        ("gtksourceview" ,gtksourceview)
        ("libgee" ,libgee)
-       ("libsoup" ,libsoup)
+       ("libhandy" ,libhandy)
+       ("libsoup" ,libsoup-minimal-2)
        ("libxml2" ,libxml2)
        ("mpc" ,mpc)
        ("mpfr" ,mpfr)))
@@ -10012,14 +10139,10 @@ is suitable as a default application in a Desktop environment.")
          "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gtk+:bin" ,gtk+ "bin")
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake
+           `(,gtk+ "bin") intltool pkg-config))
     (inputs
-     `(("gtksourceview" ,gtksourceview-3)
-       ("libsm" ,libsm)))
+     (list gtksourceview-3 libsm))
     (home-page "https://wiki.gnome.org/Apps/Xpad")
     (synopsis "Virtual sticky note")
     (description
@@ -10125,9 +10248,7 @@ only know by its Unicode name or code point.")
        ("gtk+:bin" ,gtk+ "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ("libportal" ,libportal)))
+     (list gsettings-desktop-schemas gtk+ libportal))
     (home-page "https://www.hjdskes.nl/projects/gcolor3/")
     (synopsis "Simple color chooser written in GTK3")
     (description "Color Picker is a simple color chooser written in GTK3.  It
@@ -10147,15 +10268,9 @@ supports both X and Wayland display servers.")
         (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list desktop-file-utils intltool pkg-config))
     (inputs
-     `(("enchant" ,enchant)
-       ("gtk+" ,gtk+)
-       ("python" ,python-wrapper)
-       ("xmllint" ,libxml2)
-       ("gucharmap" ,gucharmap)))
+     (list enchant gtk+ python-wrapper libxml2 gucharmap))
     (home-page "http://bluefish.openoffice.nl")
     (synopsis "Web development studio")
     (description
@@ -10167,16 +10282,16 @@ Bluefish supports many programming and markup languages.")
 (define-public gnome-system-monitor
   (package
     (name "gnome-system-monitor")
-    (version "3.32.1")
+    (version "40.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://gnome/sources/" name "/"
-                           (version-major+minor version) "/"
+                           (version-major version) "/"
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
+         "06hxd4igxas2kyind5jwfq5qbfkknykpdfy2sy3anylhcx1hzczx"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t
@@ -10190,12 +10305,13 @@ Bluefish supports many programming and markup languages.")
        ("polkit" ,polkit)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
-       ("gtk+" ,gtk+)
-       ("gtkmm" ,gtkmm)
-       ("librsvg" ,librsvg)
-       ("libxml2" ,libxml2)
-       ("libwnck" ,libwnck)))
+     (list gdk-pixbuf ; for loading SVG files.
+           gtk+
+           gtkmm-3
+           libhandy
+           librsvg
+           libxml2
+           libwnck))
     (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
     (synopsis "Process viewer and system resource monitor for GNOME")
     (description
@@ -10232,11 +10348,11 @@ from gi.repository import Gtk
 from gi.repository import Atspi"))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("python" ,python)))
+     (list python))
     (propagated-inputs
-     `(("python-pygobject" ,python-pygobject)))
+     (list python-pygobject))
     (synopsis "Python client bindings for D-Bus AT-SPI")
     (home-page "https://wiki.linuxfoundation.org/accessibility\
 /atk/at-spi/at-spi_on_d-bus")
@@ -10257,16 +10373,16 @@ accessibility infrastructure.")
 (define-public orca
   (package
     (name "orca")
-    (version "3.34.1")
+    (version "40.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "mirror://gnome/sources/" name "/"
-                    (version-major+minor version) "/"
+                    (version-major version) "/"
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
+                "0hq0zdcn80ficpcffbk667907v6m7dih3dhyc7ss01mrj3iyw000"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      '(#:phases
@@ -10348,7 +10464,7 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).")
              (setenv "ASPELL_DICT_DIR"
                      (search-input-directory inputs "/lib/aspell")))))))
     (inputs
-     `(("iso-codes" ,iso-codes)))
+     (list iso-codes))
     (native-inputs
      `(("glib" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
@@ -10361,9 +10477,7 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).")
        ("xorg-server" ,xorg-server-for-tests)))
     (propagated-inputs
      ;; Referred by .pc file.
-     `(("enchant" ,enchant)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)))
+     (list enchant glib gtk+))
     (home-page "https://wiki.gnome.org/Projects/gspell")
     (synopsis "GNOME's alternative spell checker")
     (description
@@ -10395,19 +10509,17 @@ text views, and buttons to choose the language.")
                    '("--build=aarch64-unknown-linux-gnu")
                    '()))))
     (inputs
-     `(("libgnomecanvas" ,libgnomecanvas)
-       ("libgnomeui" ,libgnomeui)
-       ("libglade" ,libglade)
-       ("gnome-vfs" ,gnome-vfs)
-       ("gconf" ,gconf)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("gtk+" ,gtk+)
-       ("glib" ,glib)))
-    (native-inputs
-     `(("intltool" ,intltool)
-       ("scrollkeeper" ,scrollkeeper)
-       ("pkg-config" ,pkg-config)))
+     (list libgnomecanvas
+           libgnomeui
+           libglade
+           gnome-vfs
+           gconf
+           libxml2
+           libxslt
+           gtk+
+           glib))
+    (native-inputs
+     (list intltool scrollkeeper pkg-config))
     (home-page "https://wiki.gnome.org/Apps/Planner")
     (synopsis "Project management software for the GNOME desktop")
     (description
@@ -10424,14 +10536,14 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
 (define-public lollypop
   (package
     (name "lollypop")
-    (version "1.4.6")
+    (version "1.4.24")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://adishatz.org/lollypop/"
                            "lollypop-" version ".tar.xz"))
        (sha256
-        (base32 "1hlahr50gsagx1ifcdk4yn43xps6w0vqn0gnd6xckfc7qmg1pgq7"))))
+        (base32 "10cw3x75siibmnbh4zhfmf2vd08fqjs3lj3l4wpk6zj9h22ncfxw"))))
     (build-system meson-build-system)
     (arguments
      `(#:imported-modules
@@ -10455,8 +10567,7 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
          (add-after 'install 'wrap-python
            (assoc-ref python:%standard-phases 'wrap)))))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("itstool" ,itstool)
+     `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")         ; For glib-compile-resources
        ("gtk+:bin" ,gtk+ "bin")         ; For gtk-update-icon-cache
        ("pkg-config" ,pkg-config)))
@@ -10468,7 +10579,7 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
        ("libnotify" ,libnotify)
        ("libsecret" ,libsecret)
        ("libhandy" ,libhandy)
-       ("libsoup" ,libsoup)
+       ("libsoup" ,libsoup-minimal-2)
        ("python" ,python)
        ("python-beautifulsoup4" ,python-beautifulsoup4)
        ("python-gst" ,python-gst)
@@ -10479,10 +10590,9 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
        ("totem-pl-parser" ,totem-pl-parser)
        ("webkitgtk" ,webkitgtk)))
     (propagated-inputs
-     `(;; gst-plugins-base is required to start Lollypop,
-       ;; the others are required to play streaming.
-       ("gst-plugins-good" ,gst-plugins-good)
-       ("gst-plugins-ugly" ,gst-plugins-ugly)))
+     (list ;; gst-plugins-base is required to start Lollypop,
+           ;; the others are required to play streaming.
+           gst-plugins-good gst-plugins-ugly))
     (home-page "https://wiki.gnome.org/Apps/Lollypop")
     (synopsis "GNOME music playing application")
     (description
@@ -10506,8 +10616,7 @@ automatically and it can stream songs from online music services and charts.")
                 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+     (list gettext-minimal pkg-config))
     (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
     (synopsis "Video effects for Cheese and other GNOME applications")
     (description
@@ -10529,7 +10638,8 @@ photo-booth-like software, such as Cheese.")
                 "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))
               (patches (search-patches "cheese-vala-update.patch"))))
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+       #:glib-or-gtk? #t
        ;; Tests require GDK.
        #:tests? #f
        #:phases
@@ -10569,23 +10679,23 @@ photo-booth-like software, such as Cheese.")
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
     (propagated-inputs
-     `(("gnome-video-effects" ,gnome-video-effects)
-       ("clutter" ,clutter)
-       ("clutter-gst" ,clutter-gst)
-       ("clutter-gtk" ,clutter-gtk)
-       ("libcanberra" ,libcanberra)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
-       ("gstreamer" ,gstreamer)))
-    (inputs
-     `(("gnome-desktop" ,gnome-desktop)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gst-plugins-good" ,gst-plugins-good)
-       ("gst-plugins-bad" ,gst-plugins-bad)
-       ("gtk+" ,gtk+)
-       ("libx11" ,libx11)
-       ("libxtst" ,libxtst)))
+     (list gnome-video-effects
+           clutter
+           clutter-gst
+           clutter-gtk
+           libcanberra
+           gdk-pixbuf
+           glib
+           gstreamer))
+    (inputs
+     (list gnome-desktop
+           gobject-introspection
+           gst-plugins-base
+           gst-plugins-good
+           gst-plugins-bad
+           gtk+
+           libx11
+           libxtst))
     (home-page "https://wiki.gnome.org/Apps/Cheese")
     (synopsis "Webcam photo booth software for GNOME")
     (description
@@ -10632,13 +10742,13 @@ apply fancy special effects and lets you share the fun with others.")
        ("gtk+:bin" ,gtk+ "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("glib" ,glib)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ("libhandy" ,libhandy)
-       ("libpwquality" ,libpwquality)
-       ("python-pygobject" ,python-pygobject)
-       ("python-pykeepass" ,python-pykeepass)))
+     (list glib
+           gsettings-desktop-schemas
+           gtk+
+           libhandy
+           libpwquality
+           python-pygobject
+           python-pykeepass))
     (home-page "https://gitlab.gnome.org/World/PasswordSafe")
     (synopsis "Password manager for the GNOME desktop")
     (description
@@ -10662,23 +10772,19 @@ and uncluttered interface for the management of password databases.")
          "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils)
-       ("intltool" ,intltool)
-       ("itstool" ,itstool)
-       ("pkg-config" ,pkg-config)
-       ("xmllint" ,libxml2)))
-    (inputs
-     `(("gtk+" ,gtk+)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gst-plugins-good" ,gst-plugins-good)
-       ("iso-codes" ,iso-codes)
-       ("libbrasero-media3" ,brasero)
-       ("libcanberra" ,libcanberra)
-       ("libdiscid" ,libdiscid)
-       ("libmusicbrainz" ,libmusicbrainz)
-       ("neon" ,neon)))
+     (list desktop-file-utils intltool itstool pkg-config libxml2))
+    (inputs
+     (list gtk+
+           gsettings-desktop-schemas
+           gstreamer
+           gst-plugins-base
+           gst-plugins-good
+           iso-codes
+           brasero
+           libcanberra
+           libdiscid
+           libmusicbrainz
+           neon))
     (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
     (synopsis "Audio music cd ripper")
     (description "Sound Juicer extracts audio from compact discs and convert it
@@ -10729,11 +10835,7 @@ mp3, Ogg Vorbis and FLAC")
        ("pkg-config" ,pkg-config)
        ("glib:bin" ,glib "bin")))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("python" ,python)
-       ("python-pygobject" ,python-pygobject)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)))
+     (list gtk+ python python-pygobject gstreamer gst-plugins-base))
     (home-page "https://soundconverter.org/")
     (synopsis "Convert between audio formats with a graphical interface")
     (description
@@ -10745,7 +10847,7 @@ configurable file renaming. ")
 (define-public workrave
   (package
     (name "workrave")
-    (version "1.10.43")
+    (version "1.10.48")
     (source
      (origin
        (method git-fetch)
@@ -10756,22 +10858,22 @@ configurable file renaming. ")
                                          version)))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1baa9qjzd4b3q1zy5vhvyrx0hyz17mk237373ca48647897kw4cr"))))
+        (base32 "0qcknxylk9mr0xzszsd1rkgh2zpnix20m998dfclkm9x8zh9pvyr"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      ;; The only tests are maintainer tests (in po/), which fail.
      `(#:tests? #f))
-    (inputs `(("glib" ,glib)
-              ("gtk+" ,gtk+)
-              ("gdk-pixbuf" ,gdk-pixbuf)
-              ("gtkmm" ,gtkmm)
-              ("glibmm" ,glibmm)
-              ("libx11" ,libx11)
-              ("libxtst" ,libxtst)
-              ("dconf" ,dconf)
-              ("libice" ,libice)
-              ("libsm" ,libsm)
-              ("libxscrnsaver" ,libxscrnsaver)))
+    (inputs (list glib
+                  gtk+
+                  gdk-pixbuf
+                  gtkmm-3
+                  glibmm
+                  libx11
+                  libxtst
+                  dconf
+                  libice
+                  libsm
+                  libxscrnsaver))
     (native-inputs `(("boost" ,boost)
                      ("pkg-config" ,pkg-config)
                      ("gettext" ,gettext-minimal)
@@ -10854,15 +10956,12 @@ hexadecimal or ASCII.  It is useful for editing binary files in general.")
              (setenv "DISPLAY" ":1")
              #t)))))
     (native-inputs
-     `(("glib" ,glib "bin")             ; glib-compile-resources
-       ("pkg-config" ,pkg-config)
-       ;; For tests.
-       ("xorg-server" ,xorg-server-for-tests)))
+     (list `(,glib "bin") ; glib-compile-resources
+           pkg-config
+           ;; For tests.
+           xorg-server-for-tests))
     (inputs
-     `(("glib" ,glib)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk+" ,gtk+)
-       ("vala" ,vala)))
+     (list glib gobject-introspection gtk+ vala))
     (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
     (synopsis "Companion library to GObject and Gtk+")
     (description "The libdazzle library is a companion library to GObject and
@@ -10875,7 +10974,7 @@ generic enough to work for everyone.")
 (define-public evolution
   (package
     (name "evolution")
-    (version "3.34.2")
+    (version "3.42.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/evolution/"
@@ -10883,9 +10982,7 @@ generic enough to work for everyone.")
                                   "evolution-" version ".tar.xz"))
               (sha256
                (base32
-                "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))
-              (patches (search-patches "evolution-CVE-2020-11879.patch"
-                                       "evolution-printableoptions.patch"))))
+                "0igfzapdvgfx2gnpwfkjfkn7l5j186wk88ni39vqas1sl7ijlls6"))))
     (build-system cmake-build-system)
     (arguments
      `(#:imported-modules (,@%cmake-build-system-modules
@@ -10907,17 +11004,14 @@ generic enough to work for everyone.")
              (substitute* "src/modules/alarm-notify/CMakeLists.txt"
                (("\\$\\{edsuimoduledir\\}")
                 (string-append (assoc-ref outputs "out")
-                               "/lib/evolution-data-server/ui-modules")))
-             #t))
+                               "/lib/evolution-data-server/ui-modules")))))
          (add-after 'install 'glib-or-gtk-compile-schemas
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
          (add-after 'install 'glib-or-gtk-wrap
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
     (native-inputs
-     `(("glib" ,glib "bin")             ; glib-mkenums
-       ("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("itstool" ,itstool)))
+     (list `(,glib "bin") ; glib-mkenums
+           pkg-config intltool itstool))
     (inputs
      `(("enchant" ,enchant)
        ("evolution-data-server" ,evolution-data-server) ; must be the same version
@@ -10933,7 +11027,7 @@ generic enough to work for everyone.")
        ("libsoup" ,libsoup)
        ("nss" ,nss)
        ("openldap" ,openldap)
-       ("webkitgtk" ,webkitgtk)
+       ("webkitgtk" ,webkitgtk-with-libsoup2) ; because of evolution-data-server
        ("ytnef" ,ytnef)))
     (home-page "https://gitlab.gnome.org/GNOME/evolution")
     (synopsis "Manage your email, contacts and schedule")
@@ -10948,7 +11042,7 @@ functionality.")
 (define-public gthumb
   (package
     (name "gthumb")
-    (version "3.10.3")
+    (version "3.12.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/gthumb/"
@@ -10956,10 +11050,15 @@ functionality.")
                                   "gthumb-" version ".tar.xz"))
               (sha256
                (base32
-                "04n2sgasc03kiczyzkq362pjilj12hq2r5qj07lynqr9rivkzdys"))))
+                "0grqiq6v26z8avl7mj24xy4i9bl1niwpqhqw6rblprl40c1zrvrx"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
+
+       ;; See
+       ;; <https://github.com/mesonbuild/meson/issues/9492#issuecomment-973117289>.
+       #:meson ,meson-0.59
+
        #:configure-flags
        ;; Ensure the RUNPATH contains all installed library locations.
        (list (string-append "-Dc_link_args=-Wl,-rpath="
@@ -10969,23 +11068,27 @@ functionality.")
                             (assoc-ref %outputs "out")
                             "/lib/gthumb/extensions"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
        ("glib:bin" ,glib "bin")                   ; for glib-compile-resources
        ("gtk+:bin" ,gtk+ "bin")                   ; for gtk-update-icon-cache
-       ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
        ("intltool" ,intltool)
-       ("itstool" ,itstool)))
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)))
     (inputs
-     `(("exiv2" ,exiv2)
-       ("gtk" ,gtk+)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gstreamer" ,gstreamer)
-       ("clutter" ,clutter)
+     `(("clutter" ,clutter)
        ("clutter-gst" ,clutter-gst)
        ("clutter-gtk" ,clutter-gtk)
+       ("colord" ,colord)
+       ("exiv2" ,exiv2)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gstreamer" ,gstreamer)
+       ("gtk" ,gtk+)
+       ("libheif" ,libheif)
        ("libjpeg" ,libjpeg-turbo)
+       ("libraw" ,libraw)
+       ("librsvg" ,librsvg)
        ("libtiff" ,libtiff)
-       ("libraw" ,libraw)))
+       ("libwebp" ,libwebp)))
     (home-page "https://wiki.gnome.org/Apps/Gthumb")
     (synopsis "GNOME image viewer and browser")
     (description "GThumb is an image viewer, browser, organizer, editor and
@@ -11026,7 +11129,7 @@ advanced image management tool")
        ("python-pygobject" ,python-pygobject)
        ("vte" ,vte)))
     (propagated-inputs
-     `(("python-configobj" ,python-configobj)))
+     (list python-configobj))
     (arguments
      ;; One test out of 28 fails due to dbus-python and python-notify; skip
      ;; tests.
@@ -11043,8 +11146,7 @@ advanced image management tool")
              ;; python-dbus cannot be found but it's really there.  See
              ;; https://github.com/SpotlightKid/jack-select/issues/2
              (substitute* "setup.py"
-               (("'dbus-python',") ""))
-             #t))
+               (("'dbus-python',") ""))))
          (add-after 'install 'wrap-program
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((prog (string-append (assoc-ref outputs "out")
@@ -11055,9 +11157,8 @@ advanced image management tool")
                                            (package-version python))
                                          "/site-packages")))
                (wrap-program prog
-                 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
-                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
-               #t)))
+                 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
+                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
          (add-after 'wrap-program 'glib-or-gtk-wrap
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
     (home-page "https://gnome-terminator.org/")
@@ -11106,8 +11207,7 @@ tabs, and it supports drag and drop re-ordering of terminals.")
              (setenv "DISPLAY" ":1")
              #t)))))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("glade" ,glade3)))
+     (list gtk+ glade3))
     (native-inputs
      `(("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
@@ -11162,18 +11262,17 @@ for usage on small and big screens.")
                 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("glib:bin" ,glib "bin") ;; For glib-mkenums
-       ("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)
-       ("python-pygobject" ,python-pygobject)
-       ("python-wrapper" ,python-wrapper)
-       ("vala" ,vala)))
+     (list `(,glib "bin") ;; For glib-mkenums
+           gobject-introspection
+           pkg-config
+           python-pygobject
+           python-wrapper
+           vala))
     (inputs
-     `(("glib" ,glib)
-       ("libssh2" ,libssh2)))
+     (list glib libssh2))
     (propagated-inputs
-     `(;; In Requires of libgit2-glib.pc.
-       ("libgit2" ,libgit2)))
+     (list ;; In Requires of libgit2-glib.pc.
+           libgit2))
     (synopsis "GLib wrapper around the libgit2 Git access library")
     (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
 access library.  It only implements the core plumbing functions, not really the
@@ -11195,7 +11294,8 @@ higher level porcelain stuff.")
                 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59
+       #:glib-or-gtk? #t
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'disable-post-install-partially
@@ -11210,6 +11310,19 @@ higher level porcelain stuff.")
              (substitute* "tests/libgitg/test-commit.vala"
                (("/bin/bash") (which "bash")))
              #t))
+         ;; XXX: Remove upon next version bump
+         (add-after 'unpack 'harden
+           (lambda _
+             ;; See <https://gitlab.gnome.org/GNOME/gitg/-/issues/337>
+             (substitute* "libgitg/gitg-date.vala"
+               (("(val\|tzs) == null" all val)
+                (string-append val " == null || " val " == \"\""))
+               (("(val\|tzs) != null" all val)
+                (string-append val " != null && " val " != \"\"")))
+             ;; See <https://gitlab.gnome.org/GNOME/gitg/-/merge_requests/159>
+             (substitute* "gitg/gitg-action-support.vala"
+               (("stash_if_needed\\((.*), Gitg.Ref head" all other)
+                (string-append "stash_if_needed(" other ", Gitg.Ref? head")))))
          (add-after 'glib-or-gtk-wrap 'wrap-typelib
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((prog (string-append (assoc-ref outputs "out")
@@ -11218,19 +11331,19 @@ higher level porcelain stuff.")
                  `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
                #t))))))
     (inputs
-     `(("glib" ,glib)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ("gtkspell3" ,gtkspell3)
-       ("gtksourceview" ,gtksourceview-3)
-       ("json-glib" ,json-glib)
-       ("libdazzle" ,libdazzle)
-       ("libgee" ,libgee)
-       ("libgit2-glib" ,libgit2-glib)
-       ("libpeas" ,libpeas)
-       ("libsecret" ,libsecret)
-       ("libsoup" ,libsoup)
-       ("libxml2" ,libxml2)))
+     (list glib
+           gsettings-desktop-schemas
+           gtk+
+           gtkspell3
+           gtksourceview-3
+           json-glib
+           libdazzle
+           libgee
+           libgit2-glib
+           libpeas
+           libsecret
+           libsoup-minimal-2
+           libxml2))
     (native-inputs
      `(("glib:bin" ,glib "bin")
        ("gtk+:bin" ,gtk+ "bin")
@@ -11303,7 +11416,7 @@ repository and commit your work.")
                             line))))))
                '()))))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ,@(if (and=> (%current-target-system) target-aarch64?)
@@ -11342,11 +11455,9 @@ library which detects when a file or a directory has been modified.")
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
     (propagated-inputs
-     `(("dconf" ,dconf)))
+     (list dconf))
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("librsvg" ,librsvg)))
+     (list glib gtk+ librsvg))
     (synopsis "Mahjongg tile-matching game")
     (description "GNOME Mahjongg is a game based on the classic Chinese
 tile-matching game Mahjong.  It features multiple board layouts, tile themes,
@@ -11395,34 +11506,34 @@ index files needed for Adwaita to be used outside of GNOME.")
 (define-public gnote
   (package
     (name "gnote")
-    (version "3.38.1")
+    (version "40.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://gnome/sources/" name "/"
-                           (version-major+minor version)  "/"
+                           (version-major version)  "/"
                            "gnote-" version ".tar.xz"))
        (sha256
-        (base32 "1adjfjhmsm2d33999khjyzvli6kiz1jlzavn77jhd49kfzhxa9y4"))))
+        (base32 "01fqdfgcl32cf40jw9q0h7f5bghl1lvf89vln1lh41ncrk0iw6vy"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("intltool" ,intltool)
-       ("itstool" ,itstool)
-       ("pkg-config" ,pkg-config)
-       ("unittest-cpp" ,unittest-cpp))) ;FIXME: not found by pkg-config
-    (inputs
-     `(("glibmm" ,glibmm)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gspell" ,gspell)
-       ("gtk+" ,gtk+)
-       ("gtkmm" ,gtkmm)
-       ("libsecret" ,libsecret)
-       ("libuuid" ,util-linux "lib")
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)))
+     (list desktop-file-utils
+           `(,glib "bin")
+           gobject-introspection
+           intltool
+           itstool
+           pkg-config
+           unittest-cpp)) ;FIXME: not found by pkg-config
+    (inputs
+     (list glibmm
+           gsettings-desktop-schemas
+           gspell
+           gtk+
+           gtkmm-3
+           libsecret
+           `(,util-linux "lib")
+           libxml2
+           libxslt))
     (synopsis "Note-taking application for the GNOME desktop")
     (description
      "Gnote is a note-taking application written for the GNOME desktop
@@ -11433,18 +11544,19 @@ environment.")
 (define-public polari
   (package
     (name "polari")
-    (version "3.36.3")
+    (version "40.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/polari/"
-                                  (version-major+minor version)
+                                  (version-major version)
                                   "/polari-" version ".tar.xz"))
               (sha256
                (base32
-                "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
+                "001h9gppn79gnj7dl61jl9gas5wmbjdx0v8xwsx7v4xsv2hwz91g"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59
+       #:glib-or-gtk? #t
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
@@ -11452,6 +11564,13 @@ environment.")
              (substitute* "meson/meson-postinstall.sh"
                (("gtk-update-icon-cache") (which "true")))
              #t))
+         (add-after 'install 'fix-desktop-file
+           ;; Hardcode launcher to be on the safe side
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* (string-append out "/share/applications/"
+                                           "org.gnome.Polari.desktop")
+                 (("Exec=.*") (string-append "Exec=" out "/bin/polari\n"))))))
          (add-after 'glib-or-gtk-wrap 'wrap-typelib
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((prog (string-append (assoc-ref outputs "out")
@@ -11460,24 +11579,23 @@ environment.")
                  `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
                #t))))))
     (inputs
-     `(("glib" ,glib)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gspell" ,gspell)
-       ("gtk+" ,gtk+)
-       ("gjs" ,gjs)
-       ("libsecret" ,libsecret)
-       ("libsoup" ,libsoup)
-       ("telepathy-glib" ,telepathy-glib)
-       ("telepathy-logger" ,telepathy-logger)))
-    (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("yelp-tools" ,yelp-tools)))
+     (list glib
+           gsettings-desktop-schemas
+           gspell
+           gtk
+           gjs
+           libsecret
+           libsoup-minimal-2
+           telepathy-glib
+           telepathy-logger))
+    (native-inputs
+     (list `(,glib "bin")
+           gobject-introspection
+           intltool
+           pkg-config
+           yelp-tools))
     (propagated-inputs
-     `(("telepathy-idle" ,telepathy-idle)
-       ("telepathy-mission-control" ,telepathy-mission-control)))
+     (list telepathy-idle telepathy-mission-control))
     (synopsis "Simple IRC Client")
     (description
      "Polari is a simple Internet Relay Chat (IRC) client that is designed to
@@ -11488,26 +11606,29 @@ integrate seamlessly with the GNOME desktop.")
 (define-public gnome-boxes
   (package
     (name "gnome-boxes")
-    (version "3.38.2")
+    (version "41.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://gnome/sources/gnome-boxes/"
-                           (version-major+minor version) "/"
+                           (version-major version) "/"
                            "gnome-boxes-" version ".tar.xz"))
        (sha256
-        (base32 "1zjvng0izbws3506998l3dwsxjbm7wnhqipb8nmqzvi096czvajl"))))
+        (base32 "1wzhm8n485cqhbai4qshgrwl05ix881g8gjshilrj6vg8p1li79h"))
+       (patches
+        (search-patches "gnome-boxes-add-guix-logo.patch"))))
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t
+     `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
+       #:glib-or-gtk? #t
        #:configure-flags (list "-Drdp=false"
                                (string-append "-Dc_link_args=-Wl,-rpath="
                                               (assoc-ref %outputs "out")
                                               "/lib/gnome-boxes"))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")             ; for glib-compile-resources
-       ("gtk+:bin" ,gtk+ "bin")             ; for gtk-update-icon-cache
-       ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
+     `(("glib:bin" ,glib "bin")                   ;for glib-compile-resources
+       ("gtk+:bin" ,gtk+ "bin")                   ;for gtk-update-icon-cache
+       ("desktop-file-utils" ,desktop-file-utils) ;for update-desktop-database
        ("itstool" ,itstool)
        ("intltool" ,intltool)
        ("vala" ,vala)
@@ -11520,9 +11641,10 @@ integrate seamlessly with the GNOME desktop.")
        ("gtk-vnc" ,gtk-vnc)
        ("gtksourceview" ,gtksourceview)
        ("json-glib" ,json-glib)
+       ("libhandy" ,libhandy)
        ("libosinfo" ,libosinfo)
        ("libsecret" ,libsecret)
-       ("libsoup" ,libsoup)
+       ("libsoup" ,libsoup-minimal-2)
        ("libusb" ,libusb)
        ("libvirt" ,libvirt)
        ("libvirt-glib" ,libvirt-glib)
@@ -11530,7 +11652,7 @@ integrate seamlessly with the GNOME desktop.")
        ("spice-gtk" ,spice-gtk)
        ("sparql-query" ,sparql-query)
        ("vte" ,vte)
-       ("webkitgtk" ,webkitgtk)
+       ("webkitgtk" ,webkitgtk-with-libsoup2) ;for webkit2gtk-4.0
        ("tracker" ,tracker)
        ("libgudev" ,libgudev)))
     (home-page "https://wiki.gnome.org/Apps/Boxes")
@@ -11549,67 +11671,84 @@ these services on the Guix System.")
 (define-public geary
   (package
     (name "geary")
-    (version "3.34.1")
+    (version "40.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://gitlab.gnome.org/GNOME/geary")
-                    (commit version)))
+                    (url "https://gitlab.gnome.org/GNOME/geary.git")
+                    (commit (string-append "gnome-" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))
-              (patches (search-patches "geary-CVE-2020-24661.patch"))))
+                "04hvw86r8sczvjm1z3ls5y5y5h6nyfb648rjkfx05ib00mqq5v1x"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
+       #:configure-flags
+       '("-Dprofile=release")
        #:phases (modify-phases %standard-phases
                   (add-after 'unpack 'disable-failing-tests
                     (lambda _
-                      (substitute* "test/meson.build"
-                        (("test\\('client-tests', geary_test_client_bin\\)")
-                         ""))
-                      #t))
+                      (substitute* "test/test-client.vala"
+                        (("client.add_suite\\(new Application.CertificateManagerTest\\(\\).suite\\);")
+                         ""))))
+                  (add-after 'unpack 'generate-vapis
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      ;; It’s not possible to generate the GMime vapi, because
+                      ;; there’s custom metadata that gmime didn’t
+                      ;; install. Thus, the vapi should be built and installed
+                      ;; with gmime.
+                      (define gmime
+                        (assoc-ref inputs "gmime"))
+                      (copy-file (string-append gmime "/share/vala/vapi/gmime-3.0.vapi")
+                                 "bindings/vapi/gmime-3.0.vapi")))
                   (add-after 'unpack 'disable-postinstall-script
                     (lambda _
-                      (substitute* "meson.build"
-                        (("meson.add_install_script\\(\
-join_paths\\('build-aux', 'post_install.py'\\)\\)")
-                         ""))
-                      #t))
+                      (substitute* "build-aux/post_install.py"
+                        (("gtk-update-icon-cache")
+                         "true"))))
+                  (add-before 'check 'setup-home
+                    (lambda _
+                      ;; Tests require a writable HOME.
+                      (setenv "HOME" (getcwd))))
                   (add-before 'check 'setup-xvfb
                     (lambda _
                       (system "Xvfb :1 &")
-                      (setenv "DISPLAY" ":1")
-                      #t)))))
+                      (setenv "DISPLAY" ":1"))))))
     (inputs
      `(("enchant" ,enchant)
        ("folks" ,folks)
        ("gcr" ,gcr)
        ("glib" ,glib)
-       ("gmime" ,gmime-2.6)
+       ("gmime" ,gmime)
        ("gnome-online-accounts:lib"
         ,gnome-online-accounts "lib")
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gspell" ,gspell)
+       ("gsound" ,gsound)
        ("gtk+" ,gtk+)
        ("iso-codes" ,iso-codes)
        ("json-glib" ,json-glib)
        ("libcanberra" ,libcanberra)
        ("libgee" ,libgee)
-       ("libhandy" ,libhandy-0.0)
+       ("libhandy" ,libhandy)
        ("libpeas" ,libpeas)
        ("libsecret" ,libsecret)
+       ("libstemmer" ,libstemmer)
        ("libunwind" ,libunwind)
        ("sqlite" ,sqlite)
-       ("webkitgtk" ,webkitgtk)
+       ("webkitgtk" ,webkitgtk-with-libsoup2)
        ("ytnef" ,ytnef)))
     (native-inputs
      `(("appstream-glib" ,appstream-glib)
        ("cmake-minimal" ,cmake-minimal)
        ("desktop-file-utils" ,desktop-file-utils)
        ("gettext" ,gettext-minimal)
+       ("glib" ,glib)
        ("glib:bin" ,glib "bin")
+       ("gmime" ,gmime)
        ("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("itstool" ,itstool)
        ("libarchive" ,libarchive)
        ("libxml2" ,libxml2)
@@ -11657,9 +11796,7 @@ to.")
        ("itstool" ,itstool)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("librsvg" ,librsvg)
-       ("libxml2" ,libxml2)))
+     (list gtk+ librsvg libxml2))
     (arguments
      `(#:configure-flags '("CFLAGS=-fcommon")))
     (home-page "https://glabels.org/")
@@ -11670,11 +11807,10 @@ designed to work with various laser/ink-jet peel-off label and business
 card sheets that you’ll find at most office supply stores.")
     (license license:gpl3+)))
 
-;; Version 3.38.0 is out but requires tepl>=5 which requires glib>=2.64.
 (define-public gnome-latex
   (package
     (name "gnome-latex")
-    (version "3.36.0")
+    (version "3.38.0")
     (source
      (origin
        (method url-fetch)
@@ -11682,28 +11818,28 @@ card sheets that you’ll find at most office supply stores.")
                            (version-major+minor version)  "/"
                            "gnome-latex-" version ".tar.xz"))
        (sha256
-        (base32 "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn"))))
+        (base32 "0xqd49pgi82dygqnxj08i1v22b0vwwhx3zvdinhrx4jny339yam8"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("intltool" ,intltool)
-       ("itstool" ,itstool)
-       ("pkg-config" ,pkg-config)
-       ("vala" ,vala)))
-    (inputs
-     `(("amtk" ,amtk)
-       ("dconf" ,dconf)
-       ("glib" ,glib)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gspell" ,gspell)
-       ("gtk+" ,gtk+)
-       ("gtksourceview" ,gtksourceview)
-       ("libgee" ,libgee)
-       ("tepl" ,tepl)
-       ("uchardet" ,uchardet)))
+     (list gettext-minimal
+           `(,glib "bin")
+           gobject-introspection
+           gtk-doc/stable
+           intltool
+           itstool
+           pkg-config
+           vala))
+    (inputs
+     (list amtk
+           dconf
+           glib
+           gsettings-desktop-schemas
+           gspell
+           gtk+
+           gtksourceview
+           libgee
+           tepl-5
+           uchardet))
     (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
     (synopsis "LaTeX editor for the GNOME desktop")
     (description
@@ -11773,7 +11909,7 @@ GTK+.  It integrates well with the GNOME desktop environment.")
 (define-public apostrophe
   (package
     (name "apostrophe")
-    (version "2.4")
+    (version "2.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -11782,7 +11918,7 @@ GTK+.  It integrates well with the GNOME desktop environment.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1qzy3zhi18wf42m034s8kcmx9gl05j620x3hf6rnycq2fvy7g4gz"))))
+                "06yfiflmj3ip7ppcz41nb3xpgb5ggw5h74w0v87yaqqkq7qh31lp"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -11809,34 +11945,35 @@ GTK+.  It integrates well with the GNOME desktop environment.")
                                     (search-input-file inputs
                                                        "/bin/pandoc")))))))))))
     (inputs
-     `(("glib" ,glib)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gspell" ,gspell)
-       ("gtk+" ,gtk+)
-       ("libhandy" ,libhandy)
-       ("pandoc" ,pandoc)
-       ("python-chardet" ,python-chardet)
-       ("python-levenshtein" ,python-levenshtein)
-       ("python-regex" ,python-regex)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)
-       ("python-pyenchant" ,python-pyenchant)
-       ("python-pypandoc" ,python-pypandoc)
-       ("webkitgtk" ,webkitgtk)))
+     (list glib
+           gobject-introspection
+           gspell
+           gtk+
+           libhandy
+           pandoc
+           python-chardet
+           python-levenshtein
+           python-regex
+           python-pycairo
+           python-pygobject
+           python-pyenchant
+           python-pypandoc
+           webkitgtk))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("sassc" ,sassc)))
     (home-page "https://gitlab.gnome.org/somas/apostrophe")
     (synopsis "Markdown editor written in Python with GTK+")
-    (description "Apostrophe is a GTK+ based distraction free Markdown editor.
+    (description "Apostrophe is a GTK+ based distraction-free Markdown editor.
 It uses pandoc as back-end for parsing Markdown.")
     (license license:gpl3)))
 
 (define-public libratbag
   (package
     (name "libratbag")
-    (version "0.14")
+    (version "0.16")
     (source
      (origin
        (method git-fetch)
@@ -11845,7 +11982,7 @@ It uses pandoc as back-end for parsing Markdown.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
+        (base32 "0jjf6xc3a37icp5dvbxla3ai9is2ns31m0llbfq1bmb6dk8cd4n0"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -11870,10 +12007,7 @@ It uses pandoc as back-end for parsing Markdown.")
                  python-wrap)
                #t))))))
     (native-inputs
-     `(("check" ,check)
-       ("pkg-config" ,pkg-config)
-       ("swig" ,swig)
-       ("valgrind" ,valgrind)))
+     (list check pkg-config swig valgrind))
     (inputs
      `(("glib" ,glib)
        ("json-glib" ,json-glib)
@@ -11903,7 +12037,7 @@ your operating-system definition:
 (define-public piper
   (package
     (name "piper")
-    (version "0.5.1")
+    (version "0.6")
     (source
      (origin
        (method git-fetch)
@@ -11911,7 +12045,7 @@ your operating-system definition:
              (url "https://github.com/libratbag/piper")
              (commit version)))
        (sha256
-        (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
+        (base32 "02x4d4n0078slj2pl0rvgayrrxvna6y6vj8fxfamvazsh5xyfzwk"))
        (file-name (git-file-name name version))))
     (build-system meson-build-system)
     (native-inputs
@@ -11924,6 +12058,7 @@ your operating-system definition:
      `(("adwaita-icon-theme" ,adwaita-icon-theme)
        ("gtk" ,gtk+)
        ("gtk:bin" ,gtk+ "bin")
+       ("libratbag" ,libratbag)
        ("librsvg" ,librsvg)
        ("python-evdev" ,python-evdev)
        ("python-lxml" ,python-lxml)
@@ -11967,7 +12102,7 @@ provided there is a DBus service present:
 (define-public parlatype
   (package
     (name "parlatype")
-    (version "2.1")
+    (version "3.0")
     (source
      (origin
        (method git-fetch)
@@ -11976,13 +12111,17 @@ provided there is a DBus service present:
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
+        (base32 "0mvzagkg9kq2ji6mffi37mdjxmlj3wa65d4lcayij9hsmjlklnzs"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
        #:tests? #f                      ;require internet access
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'skip-gtk-update-icon-cache
+           (lambda _
+             (substitute* "data/meson_post_install.py"
+               (("gtk-update-icon-cache") "true"))))
          (add-after 'install 'wrap-parlatype
            ;; Add gstreamer plugin provided in this package to system's
            ;; plugins.
@@ -11993,8 +12132,7 @@ provided there is a DBus service present:
                                       ":"
                                       (getenv "GST_PLUGIN_SYSTEM_PATH"))))
                (wrap-program (string-append out "/bin/parlatype")
-                 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
-             #t)))))
+                 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path)))))))))
     (native-inputs
      `(("appstream-glib" ,appstream-glib)
        ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
@@ -12003,14 +12141,15 @@ provided there is a DBus service present:
        ("pkg-config" ,pkg-config)
        ("yelp-tools" ,yelp-tools)))
     (inputs
-     `(("gst-plugins-base" ,gst-plugins-base)
-       ("gst-plugins-good" ,gst-plugins-good)
-       ("gstreamer" ,gstreamer)
-       ("gtk+" ,gtk+)
-       ("pocketsphinx" ,pocketsphinx)
-       ("pulseaudio" ,pulseaudio)
-       ("sphinxbase" ,sphinxbase)))
-    (home-page "http://gkarsay.github.io/parlatype/")
+     (list gst-plugins-base
+           gst-plugins-good
+           gstreamer
+           gtk+
+           iso-codes
+           pocketsphinx
+           pulseaudio
+           sphinxbase))
+    (home-page "https://www.parlatype.org")
     (synopsis "GNOME audio player for transcription")
     (description "Parlatype is an audio player for the GNOME desktop
 environment.  Its main purpose is the manual transcription of spoken
@@ -12031,13 +12170,11 @@ audio files.")
                 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
     (build-system meson-build-system)
     (inputs
-     `(("json-glib" ,json-glib)
-       ("glib" ,glib)))
+     (list json-glib glib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
-       ("gobject-introspection" ,gobject-introspection)
-       ("vala" ,vala)))
+     (list pkg-config
+           `(,glib "bin") ; for glib-genmarshal, etc.
+           gobject-introspection vala))
     (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
     (synopsis "JSON-RPC library for GLib")
     (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
@@ -12062,17 +12199,11 @@ host to avoid parser overhead and memory-allocator fragmentation.")
                 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)
-       ("vala" ,vala)))
+     (list `(,glib "bin") gobject-introspection pkg-config vala))
     (inputs
-     `(("dbus" ,dbus)
-       ("gsound" ,gsound)
-       ("json-glib" ,json-glib)
-       ("libgudev" ,libgudev)))
+     (list dbus gsound json-glib libgudev))
     (propagated-inputs
-     `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
+     (list glib)) ; in Requires of libfeedback-0.0.pc
     (synopsis "Haptic/visual/audio feedback via DBus")
     (description "Feedbackd provides a DBus daemon to act on events to provide
 haptic, visual and audio feedback.  It offers the libfeedbackd library and
@@ -12084,7 +12215,7 @@ GObject introspection bindings.")
 (define-public sysprof
   (package
     (name "sysprof")
-    (version "3.36.0")
+    (version "3.42.1")
     (source
      (origin
        (method url-fetch)
@@ -12092,7 +12223,7 @@ GObject introspection bindings.")
                            (version-major+minor version) "/"
                            "sysprof-" version ".tar.xz"))
        (sha256
-        (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
+        (base32 "0090986ar3lz9m9fy7l5y9ibzzmgsx54cm6gp8ggsxgf0habi5hp"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -12108,11 +12239,10 @@ GObject introspection bindings.")
                (("gtk-update-icon-cache") "true")
                (("update-desktop-database") "true"))
              #t)))))
+    (propagated-inputs
+     (list polkit))
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libdazzle" ,libdazzle)
-       ("polkit" ,polkit)))
+     (list glib gtk+ json-glib libdazzle polkit))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
@@ -12135,25 +12265,22 @@ libraries.  Applications do not need to be recompiled--or even restarted.")
 (define-public gnome-builder
   (package
     (name "gnome-builder")
-    (version "3.36.1")
+    (version "41.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
+                "04p031i999dccbnlbysmr6f93x7dji7b559j6yhdsqbqgxb7ncan"))))
     (build-system meson-build-system)
     (arguments
-     `(#:configure-flags (list "-Dnetwork_tests=false"
+     `(#:glib-or-gtk? #t     ; To wrap binaries and compile schemas
+       #:configure-flags (list "-Dnetwork_tests=false"
                                ;; TODO: Enable all plugins...
-                               "-Dplugin_clang=false"
+                               ;; Flatpak plugin wants libsoup 2
                                "-Dplugin_flatpak=false"
-                               "-Dplugin_glade=false"
-                               ;; XXX: This one has been shown not to work in
-                               ;;      <https://issues.guix.gnu.org/45272>
-                               "-Dplugin_jedi=false"
                                ;; ... except this one.
                                "-Dplugin_update_manager=false")
        #:phases
@@ -12166,8 +12293,7 @@ libraries.  Applications do not need to be recompiled--or even restarted.")
              (substitute* "src/libide/meson.build"
                (("/usr/lib")
                 (string-append (assoc-ref inputs "python-pygobject")
-                               "/lib")))
-             #t))
+                               "/lib")))))
          (add-after 'configure 'fix-ninja
            (lambda _
              ;; #43296: meson(?) incorrectly assumes we want to link
@@ -12181,7 +12307,10 @@ libraries.  Applications do not need to be recompiled--or even restarted.")
              (setenv "DISPLAY" ":1")
              #t)))))
     (inputs
-     `(("devhelp" ,devhelp)
+     `(("cmark" ,cmark)
+       ("clang" ,clang)
+       ("devhelp" ,devhelp-with-libsoup2)
+       ("glade" ,glade3)
        ("gspell" ,gspell)
        ("gtk+" ,gtk+)
        ("json-glib" ,json-glib)
@@ -12189,13 +12318,16 @@ libraries.  Applications do not need to be recompiled--or even restarted.")
        ("libdazzle" ,libdazzle)
        ("libgit2-glib" ,libgit2-glib)
        ("libpeas" ,libpeas)
+       ("libportal" ,libportal)
+       ("libsoup" ,libsoup-minimal-2)
+       ("llvm" ,llvm)
        ("python-pygobject" ,python-pygobject)
        ("sysprof" ,sysprof)
        ("template-glib" ,template-glib)
        ("vte" ,vte)
-       ("webkitgtk" ,webkitgtk)))
+       ("webkitgtk" ,webkitgtk-with-libsoup2)))
     (propagated-inputs
-     `(("gtksourceview" ,gtksourceview)))         ;needed for settings
+     (list gtksourceview))         ;needed for settings
     (native-inputs
      `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
        ("glib:bin" ,glib "bin")
@@ -12214,7 +12346,7 @@ integrated profiler via Sysprof, debugging support, and more.")
 (define-public komikku
   (package
     (name "komikku")
-    (version "0.31.0")
+    (version "0.35.2")
     (source
      (origin
        (method git-fetch)
@@ -12224,7 +12356,7 @@ integrated profiler via Sysprof, debugging support, and more.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0vldcjq24y4xxg8dzlyhfpqxbqn5g160lz1lmmkp7g9im2zrxh52"))))
+         "11iq2mc8k7ny70vb0iqfjhj1hii0wvr4cv2p6b5rnjqdp6hc63n9"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -12251,31 +12383,31 @@ integrated profiler via Sysprof, debugging support, and more.")
                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
               #t))))))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libhandy" ,libhandy)
-       ("libnotify" ,libnotify)
-       ("libsecret" ,libsecret)
-       ("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-brotli" ,python-brotli)
-       ("python-cloudscraper" ,python-cloudscraper)
-       ("python-dateparser" ,python-dateparser)
-       ("python-keyring" ,python-keyring)
-       ("python-lxml" ,python-lxml)
-       ("python-magic" ,python-magic)
-       ("python-natsort" ,python-natsort)
-       ("python-pillow" ,python-pillow)
-       ("python-pure-protobuf" ,python-pure-protobuf)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)
-       ("python-requests" ,python-requests)
-       ("python-unidecode" ,python-unidecode)
-       ("webkitgtk" ,webkitgtk)))
-    (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils)
-       ("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)))
+     (list gtk+
+           libhandy
+           libnotify
+           libsecret
+           python-beautifulsoup4
+           python-brotli
+           python-cloudscraper
+           python-dateparser
+           python-keyring
+           python-lxml
+           python-magic
+           python-natsort
+           python-pillow
+           python-pure-protobuf
+           python-pycairo
+           python-pygobject
+           python-requests
+           python-unidecode
+           webkitgtk-with-libsoup2))
+    (native-inputs
+     (list desktop-file-utils
+           gettext-minimal
+           `(,glib "bin")
+           gobject-introspection
+           pkg-config))
     (home-page "https://gitlab.com/valos/Komikku")
     (synopsis "Manga reader for GNOME")
     (description "Komikku is an online/offline manga reader for GNOME,
@@ -12295,10 +12427,15 @@ developed with the aim of being used with the Librem 5 phone.")
                                                version "." "_")))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "18rg773gq9v3cdywpmrp12c5xyp97ir9yqjinccpi22sksb1kl8a"))))
+        (base32 "18rg773gq9v3cdywpmrp12c5xyp97ir9yqjinccpi22sksb1kl8a"))
+       (modules '((guix build utils)))
+       (snippet
+        ;; Remove the bundled sqlite, but keep its header because code relies
+        ;; on this header variant.
+        '(delete-file "libgda/sqlite/sqlite-src/sqlite3.c"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags '("--enable-vala")
+     `(#:configure-flags '("--enable-system-sqlite" "--enable-vala")
        ;; There's a race between check_cnc_lock and check_threaded_cnc
        ;; in tests/multi-threading.
        #:parallel-tests? #f
@@ -12329,15 +12466,16 @@ developed with the aim of being used with the Librem 5 phone.")
                         (string-append moduledir "/" shlib))
                #t))))))
     (propagated-inputs
-     `(("libxml2" ,libxml2)))           ; required by libgda-5.0.pc
+     (list libxml2))           ; required by libgda-5.0.pc
     (inputs
-     `(("glib" ,glib)
-       ("glade" ,glade3)
-       ("gtk+" ,gtk+)
-       ("libsecret" ,libsecret)
-       ("libxslt" ,libxslt)
-       ("openssl" ,openssl)
-       ("vala" ,vala)))
+     (list glib
+           glade3
+           gtk+
+           libsecret
+           libxslt
+           openssl
+           sqlite
+           vala))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("autoconf-archive" ,autoconf-archive)
@@ -12365,15 +12503,15 @@ your data.")
 (define-public gtranslator
   (package
     (name "gtranslator")
-    (version "3.36.0")
+    (version "40.0")
         (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid"))))
+                "0d48nc11z0m91scy21ah56ysxns82zvswx8lglvlkig1vqvblgpc"))))
     (build-system meson-build-system)
     (inputs
      `(("json-glib" ,json-glib)
@@ -12385,15 +12523,17 @@ your data.")
        ("gspell" ,gspell)
        ("libdazzle" ,libdazzle)
        ("libgda" ,libgda)
-       ("libsoup" ,libsoup)))
+       ("libhandy" ,libhandy)
+       ("libsoup" ,libsoup-minimal-2)))
     (native-inputs
      `(("glib:bin" ,glib "bin")
        ("itstool" ,itstool)
        ("pkg-config" ,pkg-config)))
     (propagated-inputs
-     `(("gtksourceview" ,gtksourceview))) ; required for source view
+     (list gtksourceview)) ; required for source view
     (arguments
-     `(#:build-type "release"
+     `(#:meson ,meson-0.59
+       #:build-type "release"
        #:glib-or-gtk? #t
        #:phases
        (modify-phases %standard-phases
@@ -12474,3 +12614,68 @@ world.")
     (description "OCRFeeder is a complete Optical Character Recognition and
 Document Analysis and Recognition program.")
     (license license:gpl3+)))
+
+(define-public libadwaita
+  (let ((commit "8d66b987a19979d9d7b85dacc6bad5ce0c8743fe")
+        (revision "1"))
+    (package
+      (name "libadwaita")
+      (version (git-version "0.0.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://gitlab.gnome.org/GNOME/libadwaita.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0i3wav6jsyi4w4i2r1rad769m5y5s9djj4zqb7dfyh0bad24ba3q"))))
+      (build-system meson-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-before 'check 'pre-check
+             (lambda* (#:key inputs #:allow-other-keys)
+               ;; Tests require a running X server.
+               (system "Xvfb :1 &")
+               (setenv "DISPLAY" ":1"))))))
+      (native-inputs
+       `(("sassc" ,sassc)
+         ("glib:bin" ,glib "bin")
+         ("gtk-doc" ,gtk-doc/stable)
+         ("pkg-config" ,pkg-config)
+         ("vala" ,vala)
+         ("xvfb" ,xorg-server-for-tests)))
+      (inputs
+       (list gtk gobject-introspection libportal))
+      (home-page "https://gnome.pages.gitlab.gnome.org/libadwaita/")
+      (synopsis "Building blocks for GNOME applications")
+      (description
+       "@code{libadwaita} offers widgets and objects to build GNOME
+applications scaling from desktop workstations to mobile phones.  It is the
+successor of @code{libhandy} for GTK4.")
+      (license license:lgpl2.1+))))
+
+(define-public gnome-power-manager
+  (package
+    (name "gnome-power-manager")
+    (version "3.32.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0drfn3wcc8l4n07qwv6p0rw2dwcd00hwzda282q62l6sasks2b2g"))))
+    (build-system meson-build-system)
+    (inputs
+     (list upower gtk+ gsettings-desktop-schemas adwaita-icon-theme))
+    (native-inputs
+     (list desktop-file-utils
+           `(,glib "bin") gettext-minimal pkg-config))
+    (home-page "https://gitlab.gnome.org/GNOME/gnome-power-manager")
+    (synopsis "Power management daemon for the GNOME desktop")
+    (description "@code{gnome-power-manager} is a tool for viewing present and
+historical battery usage and related statistics.")
+    (license license:gpl2)))
diff --git a/gnu/packages/gnu-pw-mgr.scm b/gnu/packages/gnu-pw-mgr.scm
index d6f0cd6f86..08968f1241 100644
--- a/gnu/packages/gnu-pw-mgr.scm
+++ b/gnu/packages/gnu-pw-mgr.scm
@@ -55,7 +55,7 @@
                (("/dev/tty") "/dev/null"))
              #t)))))
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (home-page "https://www.gnu.org/software/gnu-pw-mgr/")
     (synopsis "Retrieve login credentials without recording passwords")
     (description
diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm
index 41c387a909..ee7ca3cfde 100644
--- a/gnu/packages/gnucash.scm
+++ b/gnu/packages/gnucash.scm
@@ -83,7 +83,7 @@
        ("libofx" ,libofx)
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
-       ("webkitgtk" ,webkitgtk)
+       ("webkitgtk" ,webkitgtk-with-libsoup2)
        ("aqbanking" ,aqbanking)
        ("python" ,python)
        ("perl-date-manip" ,perl-date-manip)
@@ -100,7 +100,7 @@
        ("pkg-config" ,pkg-config)))
     (propagated-inputs
      ;; dconf is required at runtime according to README.dependencies.
-     `(("dconf" ,dconf)))
+     (list dconf))
     (outputs '("out" "doc" "debug" "python"))
     (arguments
      `(#:test-target "check"
@@ -274,12 +274,9 @@ to be read using the GNOME Yelp program.")
              (string-append "--with-openssl-libs="
                             (assoc-ref %build-inputs "openssl") "/lib"))))
     (inputs
-     `(("libgcrypt" ,libgcrypt)
-       ("gnutls" ,gnutls)
-       ("openssl" ,openssl)
-       ("gtk+" ,gtk+)))
+     (list libgcrypt gnutls openssl gtk+))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.aquamaniac.de/sites/aqbanking/index.php")
     (synopsis "Utility library for networking and security applications")
     (description
@@ -292,29 +289,25 @@ applications and libraries.  It is used by AqBanking.")
 (define-public aqbanking
   (package
     (name "aqbanking")
-    (version "6.3.0")
+    (version "6.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.aquamaniac.de/rdm/attachments/"
-                           "download/372/aqbanking-" version ".tar.gz"))
+                           "download/386/aqbanking-" version ".tar.gz"))
        (sha256
-        (base32 "1k2mhdnk0jc0inq1hmp74m3y7azxrjm8r07x5k1pp4ic0yi5vs50"))))
+        (base32 "061l7qja7x557650kphbg1gzxc52a7557nibgdhv5jwqf8pv8ym9"))))
     (build-system gnu-build-system)
     (arguments
      `(;; Parallel building fails because aqhbci is required before it's
        ;; built.
        #:parallel-build? #f))
     (propagated-inputs
-     `(("gwenhywfar" ,gwenhywfar)))
+     (list gwenhywfar))
     (inputs
-     `(("gmp" ,gmp)
-       ("xmlsec" ,xmlsec)
-       ("gnutls" ,gnutls)))
+     (list gmp xmlsec gnutls))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gettext-minimal" ,gettext-minimal)
-       ("libltdl" ,libltdl)))
+     (list pkg-config gettext-minimal libltdl))
     (home-page "https://www.aquamaniac.de/sites/aqbanking/index.php")
     (synopsis "Interface for online banking tasks")
     (description
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index c1ccf8d702..5c0dd348cc 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -113,7 +113,7 @@
       ("libvorbis" ,libvorbis)
       ("zlib" ,zlib)))
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    (list pkg-config))
    (outputs '("out"
               "static")) ; 420 KiB .a files
    (arguments
@@ -168,11 +168,7 @@ tool to extract metadata from a file and print the results.")
             (patches (search-patches "libmicrohttpd-0.9.73-test-ssl3.patch"))))
    (build-system gnu-build-system)
    (inputs
-    `(("curl" ,curl)
-      ("gnutls" ,gnutls/dane)
-      ("libgcrypt" ,libgcrypt)
-      ("openssl" ,openssl)
-      ("zlib" ,zlib)))
+    (list curl gnutls/dane libgcrypt openssl zlib))
    (synopsis "C library implementing an HTTP 1.1 server")
    (description
     "GNU libmicrohttpd is a small, embeddable HTTP server implemented as a
@@ -201,10 +197,7 @@ authentication and support for SSL3 and TLS.")
              ("libidn2" ,libidn2)
              ("zlib" ,zlib)))
    (native-inputs
-    `(("libtool" ,libtool)
-      ("perl" ,perl)
-      ("pkg-config" ,pkg-config)
-      ("python" ,python)))
+    (list libtool perl pkg-config python))
    (arguments
     `(#:configure-flags
       ;; All of these produce errors during configure.
@@ -290,11 +283,8 @@ supports HTTP, HTTPS and GnuTLS.")
       ("zbar" ,zbar)
       ("zlib" ,zlib)))
    (native-inputs
-    `(("curl" ,curl)
-      ("pkg-config" ,pkg-config)
-      ("python" ,python)
-      ("xxd" ,xxd)
-      ("which" ,(@ (gnu packages base) which))))
+    (list curl pkg-config python xxd
+          (@ (gnu packages base) which)))
    (arguments
     '(#:parallel-tests? #f ; Parallel tests aren't supported.
       #:phases
@@ -368,11 +358,8 @@ kinds of basic applications for the foundation of a GNU internet.")
                  (base32
                   "0nqc18jh9j30y4l6yh6j35byfg6qalq7yr3frv9rk10qa041c2sv"))))
       (build-system gnu-build-system)
-      (native-inputs `(("pkg-config" ,pkg-config)
-                       ("autoconf" ,autoconf)
-                       ("automake" ,automake)))
-      (inputs `(("guile" ,guile-2.0)
-                ("gnunet" ,gnunet)))
+      (native-inputs (list pkg-config autoconf automake))
+      (inputs (list guile-2.0 gnunet))
       (synopsis "Guile bindings for GNUnet services")
       (description
        "This package provides Guile bindings to the client libraries of various
@@ -411,8 +398,7 @@ services.")
        ("libunique" ,libunique)
        ("qrencode" ,qrencode)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("libglade" ,libglade)))
+     (list pkg-config libglade))
     (synopsis "Graphical front-end tools for GNUnet")
     (properties '((ftp-server . "ftp.gnu.org")
                   (ftp-directory . "/gnunet")))))
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index e04c16ef59..7706688b93 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2014, 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2014, 2015, 2016, 2020 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2015, 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
@@ -20,6 +20,7 @@
 ;;; Copyright © 2020 Fredrik Salomonsson <plattfot@posteo.net>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2021 Nikita Domnitskii <nikita@domnitskii.me>
+;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -74,6 +75,7 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages popt)
   #:use-module (gnu packages xdisorg)
+  #:use-module (guix gexp)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix utils)
@@ -204,8 +206,7 @@ generation.")
         "1r1lvcp67gn5lfrj1g388sd77ca6qwnmxndirdysd71gk362z34f"))))
     (build-system gnu-build-system)
     (propagated-inputs
-     `(("libgpg-error" ,libgpg-error)
-       ("pth" ,pth)))
+     (list libgpg-error pth))
     (home-page "https://gnupg.org")
     (synopsis
      "IPC library used by GnuPG and related software")
@@ -233,9 +234,9 @@ provided.")
         "12x40y9ihs8nw2xs2y2vjfw90mhikbm5rvabma0dh5frybk87mns"))))
     (build-system gnu-build-system)
     (propagated-inputs
-     `(("libgpg-error" ,libgpg-error)))
+     (list libgpg-error))
     (native-inputs
-     `(("libgpg-error" ,libgpg-error)))
+     (list libgpg-error))
     (arguments
      `(#:configure-flags
        (list ,@(if (%current-target-system)
@@ -280,7 +281,7 @@ compatible to GNU Pth.")
 (define-public gnupg
   (package
     (name "gnupg")
-    (version "2.2.29")
+    (version "2.2.30")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
@@ -288,22 +289,22 @@ compatible to GNU Pth.")
               (patches (search-patches "gnupg-default-pinentry.patch"))
               (sha256
                (base32
-                "1j8cpp08zlz9a9n4g9z6352m1bvl369r94p4pjg8z0948pdprl1r"))))
+                "1111ry31gaxv76miqsy6l0kwxwlx8sz0jk41jhyrjwx649p6sqyc"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("gnutls" ,gnutls)
-       ("libassuan" ,libassuan)
-       ("libgcrypt" ,libgcrypt)
-       ("libgpg-error" ,libgpg-error)
-       ("libksba" ,libksba)
-       ("npth" ,npth)
-       ("openldap" ,openldap)
-       ("pcsc-lite" ,pcsc-lite)
-       ("readline" ,readline)
-       ("sqlite" ,sqlite)
-       ("zlib" ,zlib)))
+     (list gnutls
+           libassuan
+           libgcrypt
+           libgpg-error
+           libksba
+           npth
+           openldap
+           pcsc-lite
+           readline
+           sqlite
+           zlib))
    (arguments
     `(#:configure-flags '(;; Otherwise, the test suite looks for the `gpg`
                           ;; executable in its installation directory in
@@ -317,14 +318,12 @@ compatible to GNU Pth.")
             (substitute* "scd/scdaemon.c"
               (("\"(libpcsclite\\.so[^\"]*)\"" _ name)
                (string-append "\"" (assoc-ref inputs "pcsc-lite")
-                              "/lib/" name "\"")))
-            #t))
+                              "/lib/" name "\"")))))
         (add-after 'build 'patch-scheme-tests
           (lambda _
             (substitute* (find-files "tests" ".\\.scm$")
               (("/usr/bin/env gpgscm")
-               (string-append (getcwd) "/tests/gpgscm/gpgscm")))
-            #t))
+               (string-append (getcwd) "/tests/gpgscm/gpgscm")))))
         (add-before 'build 'patch-test-paths
           (lambda _
             (substitute* '("tests/inittests"
@@ -336,8 +335,7 @@ compatible to GNU Pth.")
             (substitute* "common/t-exectool.c"
               (("/bin/cat") (which "cat"))
               (("/bin/true") (which "true"))
-              (("/bin/false") (which "false")))
-            #t)))))
+              (("/bin/false") (which "false"))))))))
     (home-page "https://gnupg.org/")
     (synopsis "GNU Privacy Guard")
     (description
@@ -351,6 +349,25 @@ libskba (working with X.509 certificates and CMS data).")
     (properties '((ftp-server . "ftp.gnupg.org")
                   (ftp-directory . "/gcrypt/gnupg")))))
 
+(define-public gnupg-2.2.32
+  (package
+    (inherit gnupg)
+    (version "2.2.32")
+
+    ;; Hide this version because packages like 'emacs-pinentry' propagate the
+    ;; default GnuPG and "guix install gnupg emacs-pinentry" would fail with a
+    ;; collision error.
+    (properties `((hidden? . #t)
+                  ,@(package-properties gnupg)))
+
+    (source (origin
+              (inherit (package-source gnupg))
+              (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
+                                  ".tar.bz2"))
+              (sha256
+               (base32
+                "0506gv54z10c96z5821z9p0ksibk1pfilsmag39ffqrcz0sinmxj"))))))
+
 (define-public gnupg-1
   (package (inherit gnupg)
     (version "1.4.23")
@@ -364,11 +381,7 @@ libskba (working with X.509 certificates and CMS data).")
               (patches (search-patches "gnupg-1-build-with-gcc10.patch"))))
     (native-inputs '())
     (inputs
-     `(("zlib" ,zlib)
-       ("bzip2" ,bzip2)
-       ("curl" ,curl)
-       ("readline" ,readline)
-       ("libgpg-error" ,libgpg-error)))
+     (list zlib bzip2 curl readline libgpg-error))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -390,12 +403,12 @@ libskba (working with X.509 certificates and CMS data).")
        (base32 "1bg13l5s8x9p1v0jyv29n84bay27pflindpzjsc9gj7i4wdkrg7f"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gnupg" ,gnupg)))
+     (list gnupg))
     (propagated-inputs
      ;; Needs to be propagated because gpgme.h includes gpg-error.h.
-     `(("libgpg-error" ,libgpg-error)))
+     (list libgpg-error))
     (inputs
-     `(("libassuan" ,libassuan)))
+     (list libassuan))
     (home-page "https://www.gnupg.org/related_software/gpgme/")
     (synopsis "Library providing simplified access to GnuPG functionality")
     (description
@@ -429,12 +442,15 @@ and every application benefits from this.")
              (chdir "lang/qt")
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ,@(package-native-inputs gpgme)))
+     ;; Use GnuPG 2.2.32.  With 2.2.30, 'testSymmetricEncryptDecrypt' in
+     ;; t-encrypt.cpp fails because 'gpg' wrongfully ask for a passphrase do
+     ;; decrypt the cypher text.
+     (modify-inputs (package-native-inputs gpgme)
+       (replace "gnupg" gnupg-2.2.32)
+       (prepend pkg-config)))
     (inputs
-     `(("gpgme" ,gpgme)
-       ("qtbase" ,qtbase-5)
-       ,@(package-inputs gpgme)))
+     (modify-inputs (package-inputs gpgme)
+       (prepend gpgme qtbase-5)))
     (synopsis "Qt API bindings for gpgme")
     (description "QGpgme provides a very high level Qt API around GpgMEpp.
 
@@ -475,14 +491,9 @@ gpgpme starting with version 1.7.")
                          (search-input-file inputs "bin/libgcrypt-config"))
                         ":" (getenv "PATH")))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("texinfo" ,texinfo)
-       ("guile" ,guile-3.0)))
+     (list pkg-config autoconf automake texinfo guile-3.0))
     (inputs
-     `(("guile" ,guile-3.0)
-       ("libgcrypt" ,libgcrypt)))
+     (list guile-3.0 libgcrypt))
     (synopsis "Cryptography library for Guile using Libgcrypt")
     (description
      "Guile-Gcrypt provides a Guile interface to a subset of the
@@ -496,25 +507,22 @@ interface (FFI) of Guile.")
   (package (inherit guile-gcrypt)
     (name "guile2.0-gcrypt")
     (native-inputs
-     `(("guile" ,guile-2.0)
-       ,@(alist-delete "guile" (package-native-inputs guile-gcrypt))))
+     (modify-inputs (package-native-inputs guile-gcrypt)
+       (replace "guile" guile-2.0)))
     (inputs
-     `(("guile" ,guile-2.0)
-       ,@(alist-delete "guile" (package-inputs guile-gcrypt))))))
+     (modify-inputs (package-inputs guile-gcrypt)
+       (replace "guile" guile-2.0)))))
 
 (define-public guile2.2-gcrypt
   (package
     (inherit guile-gcrypt)
     (name "guile2.2-gcrypt")
     (native-inputs
-     `(("guile" ,guile-2.2)
-       ,@(alist-delete "guile" (package-native-inputs guile-gcrypt))))
+     (modify-inputs (package-native-inputs guile-gcrypt)
+       (replace "guile" guile-2.2)))
     (inputs
-     `(("guile" ,guile-2.2)
-       ,@(alist-delete "guile" (package-inputs guile-gcrypt))))))
-
-(define-public guile3.0-gcrypt
-  (deprecated-package "guile3.0-gcrypt" guile-gcrypt))
+     (modify-inputs (package-inputs guile-gcrypt)
+       (replace "guile" guile-2.2)))))
 
 (define-public python-gpg
   (package
@@ -537,9 +545,9 @@ interface (FFI) of Guile.")
              #t)))
        #:tests? #f)) ; No test suite.
     (inputs
-     `(("gpgme" ,gpgme)))
+     (list gpgme))
     (native-inputs
-     `(("swig" ,swig)))
+     (list swig))
     (home-page (package-home-page gpgme))
     (synopsis "Python bindings for GPGME GnuPG cryptography library")
     (description "This package provides Python bindings to the GPGME GnuPG
@@ -575,9 +583,9 @@ distributed separately.")
            (lambda _ (invoke "make" "check"))))))
     (build-system python-build-system)
     (native-inputs
-     `(("gnupg" ,gnupg-1)))
+     (list gnupg-1))
     (inputs
-     `(("gpgme" ,gpgme)))
+     (list gpgme))
     (home-page "https://launchpad.net/pygpgme")
     (synopsis "Python module for working with OpenPGP messages")
     (description
@@ -591,32 +599,33 @@ decrypt messages using the OpenPGP format by making use of GPGME.")
 (define-public python-gnupg
   (package
     (name "python-gnupg")
-    (version "0.4.4")
+    (version "0.4.7")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-gnupg" version))
        (sha256
         (base32
-         "03pvjyp6q9pr8qa22i38az06ddzhvzy5kj192hxa3gbhnchg1nj5"))))
+         "1isazrg2h126xg3vvk4wrhx8k8yfsg5sxybvfa99phj235mzaq90"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _
-             (substitute* "test_gnupg.py"
-               ;; Unsure why this test fails.
-               (("'test_search_keys'") "True")
-               (("def test_search_keys") "def disabled__search_keys"))
-             (setenv "USERNAME" "guixbuilder")
-             ;; The doctests are extremely slow and sometimes time out,
-             ;; so we disable them.
-             (invoke "python"
-                     "test_gnupg.py" "--no-doctests"))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (substitute* "test_gnupg.py"
+                 ;; Unsure why this test fails.
+                 (("'test_search_keys'") "True")
+                 (("def test_search_keys") "def disabled__search_keys"))
+               (setenv "USERNAME" "guixbuilder")
+               ;; The doctests are extremely slow and sometimes time out,
+               ;; so we disable them.
+               (invoke "python"
+                       "test_gnupg.py" "--no-doctests")))))))
     (native-inputs
-     `(("gnupg" ,gnupg-1)))
-    (home-page "https://packages.python.org/python-gnupg/index.html")
+     (list gnupg))
+    (home-page "https://pythonhosted.org/python-gnupg/index.html")
     (synopsis "Wrapper for the GNU Privacy Guard")
     (description
       "This module allows easy access to GnuPG’s key management, encryption
@@ -647,14 +656,11 @@ and signature functionality from Python programs.")
              (delete-file "t/encrypt_symmetrically.t")
              #t)))))
     (inputs
-     `(("gnupg" ,gnupg-1)))
+     (list gnupg-1))
     (propagated-inputs
-     `(("perl-moo" ,perl-moo)
-       ("perl-moox-handlesvia" ,perl-moox-handlesvia)
-       ("perl-moox-late" ,perl-moox-late)))
+     (list perl-moo perl-moox-handlesvia perl-moox-late))
     (native-inputs
-     `(("which" ,which)
-       ("perl-module-install" ,perl-module-install)))
+     (list which perl-module-install))
     (home-page "https://metacpan.org/release/GnuPG-Interface")
     (synopsis "Perl interface to GnuPG")
     (description "@code{GnuPG::Interface} and its associated modules are
@@ -724,12 +730,12 @@ PGP keysigning parties.")
      ;; 'configure phase.
      `(("autoconf" ,autoconf-wrapper)
        ("automake" ,automake)))
-    (inputs `(("perl" ,perl)
-              ("perl-text-template" ,perl-text-template)
-              ("perl-mime-tools" ,perl-mime-tools)
-              ("perl-gnupg-interface" ,perl-gnupg-interface)
-              ("perl-net-idn-encode" ,perl-net-idn-encode)
-              ("libmd" ,libmd)))
+    (inputs (list perl
+                  perl-text-template
+                  perl-mime-tools
+                  perl-gnupg-interface
+                  perl-net-idn-encode
+                  libmd))
     (arguments
      `(#:tests? #f ; no test suite
        #:phases
@@ -812,23 +818,22 @@ including tools for signing keys, keyring analysis, and party preparation.
 (define-public pinentry-tty
   (package
     (name "pinentry-tty")
-    (version "1.1.1")
+    (version "1.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnupg/pinentry/pinentry-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "0zx5vg6wws2sp2yxwi01b8i1pnsqkydncpj7x0p8xl9y05ja04nd"))))
+                "0w34c4x5hkxaxnnkcrm1azlzwzxcziv5dkci3xcd0hz0ld2j01qh"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--enable-pinentry-tty")))
     (inputs
-     `(("ncurses" ,ncurses)
-       ("libassuan" ,libassuan)
-       ("libsecret" ,libsecret "out")))
+     (list ncurses libassuan
+           `(,libsecret "out")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://gnupg.org/aegypten2/")
     (synopsis "GnuPG's interface to passphrase input")
     (description
@@ -856,9 +861,8 @@ enter a passphrase when required by @code{gpg} or other software.")))
     (arguments
      `(#:configure-flags '("--enable-fallback-curses")))
     (inputs
-     `(("gtk+" ,gtk+-2)
-       ("glib" ,glib)
-       ,@(package-inputs pinentry-tty)))
+     (modify-inputs (package-inputs pinentry-tty)
+       (prepend gtk+-2 glib)))
     (description
      "Pinentry provides a console and a GTK+ GUI that allows users to enter a
 passphrase when @code{gpg} is run and needs it.")))
@@ -868,10 +872,8 @@ passphrase when @code{gpg} is run and needs it.")))
     (inherit pinentry-tty)
     (name "pinentry-gnome3")
     (inputs
-     `(("gtk+" ,gtk+-2)
-       ("gcr" ,gcr)
-       ("glib" ,glib)
-       ,@(package-inputs pinentry-tty)))
+     (modify-inputs (package-inputs pinentry-tty)
+       (prepend gtk+-2 gcr glib)))
     (arguments
      `(#:configure-flags '("--enable-pinentry-gnome3"
                            "--enable-fallback-curses")))
@@ -887,8 +889,8 @@ software.")))
     (arguments
      `(#:configure-flags '("--enable-fallback-curses")))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ,@(package-inputs pinentry-tty)))
+     (modify-inputs (package-inputs pinentry-tty)
+       (prepend qtbase-5)))
   (description
    "Pinentry provides a console and a Qt GUI that allows users to enter a
 passphrase when @code{gpg} is run and needs it.")))
@@ -911,8 +913,8 @@ passphrase when @code{gpg} is run and needs it.")))
        ("gettext" ,gettext-minimal)
        ,@(package-native-inputs pinentry-tty)))
     (inputs
-     `(("efl" ,efl)
-       ,@(package-inputs pinentry-tty)))
+     (modify-inputs (package-inputs pinentry-tty)
+       (prepend efl)))
     (description
    "Pinentry provides a console and a graphical interface for @acronym{EFL,
 the Enlightenment Foundation Libraries} that allows users to enter a
@@ -955,13 +957,8 @@ passphrase when @code{gpg} is run and needs it.")))
            (lambda* rest
              (invoke "make" "installcheck"))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("autoconf-archive" ,autoconf-archive)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)))
-    (inputs `(("guile" ,guile-3.0)
-              ("rofi" ,rofi)))
+     (list autoconf autoconf-archive automake pkg-config texinfo))
+    (inputs (list guile-3.0 rofi))
     (synopsis "Rofi GUI for GnuPG's passphrase input")
     (description "Pinentry-rofi is a simple graphical user interface for
 passphrase or PIN when required by @code{gpg} or other software.  It is using
@@ -973,7 +970,7 @@ with @code{rofi-pass} a good front end for @code{password-store}.")
 (define-public pinentry-bemenu
   (package
     (name "pinentry-bemenu")
-    (version "0.7.0")
+    (version "0.7.1")
     (source
      (origin
        (method git-fetch)
@@ -982,15 +979,12 @@ with @code{rofi-pass} a good front end for @code{password-store}.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1faxaydhc9lr97b2r3sylcy320bn54g4a5p727y3227mz3gg1mn1"))))
+        (base32 "09nw49pyfs65m35a40kpzh6h0mf5yyjzmzq3jxp660885m0b29g8"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("bemenu" ,bemenu)
-       ("libassuan" ,libassuan)
-       ("libgpg-error" ,libgpg-error)
-       ("popt" ,popt)))
+     (list bemenu libassuan libgpg-error popt))
     (home-page "https://github.com/t-8ch/pinentry-bemenu")
     (synopsis "Pinentry implementation based on @code{bemenu}")
     (description
@@ -1036,22 +1030,21 @@ them to transform your existing public key into a secret key.")
 (define-public pgpdump
   (package
     (name "pgpdump")
-    (version "0.33")
+    (version "0.34")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.mew.org/~kazu/proj/pgpdump/pgpdump-"
                            version ".tar.gz"))
        (sha256
-        (base32 "1j001jra2m89n6cys3n0hs574bipjdzfxhzpnd4jfyv95mqwl7n4"))))
+        (base32 "080ayqqxb13ngpg6zvaipszwnjadafw3ni7w7gg189cmh3lab7cq"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; no make check
-       #:configure-flags (list "--prefix=/")
-       #:make-flags (list ,(string-append "CC=" (cc-for-target))
-                          (string-append "DESTDIR=" (assoc-ref %outputs "out")))))
+     (list #:tests? #f                  ; no make check
+           #:make-flags
+           #~(list (string-append "CC=" #$(cc-for-target)))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://www.mew.org/~kazu/proj/pgpdump/en/")
     (synopsis "PGP packet visualizer")
     (description "pgpdump displays the sequence of OpenPGP or PGP version 2
@@ -1084,7 +1077,7 @@ however, pgpdump produces more detailed and easier to understand output.")
                  `("PATH" ":" prefix (,(string-append gnupg "/bin"))))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("gnupg" ,gnupg)
        ("gpgme" ,gpgme)
@@ -1153,7 +1146,7 @@ files, to verify signatures, and to manage the private and public keys.")
        ("perl-xml-twig" ,perl-xml-twig)
        ("torsocks" ,torsocks)))
     (native-inputs
-     `(("xorg-server" ,xorg-server-for-tests)))
+     (list xorg-server-for-tests))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1234,8 +1227,7 @@ over.")
                #t))))
        #:tests? #f)) ; no test phase
     (inputs
-     `(("gnupg" ,gnupg)
-       ("perl" ,perl)))
+     (list gnupg perl))
     (home-page "https://joeyh.name/code/jetring/")
     (synopsis "GnuPG keyring maintenance using changesets")
     (description
diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm
index 012afebd01..eef3863949 100644
--- a/gnu/packages/gnustep.scm
+++ b/gnu/packages/gnustep.scm
@@ -54,7 +54,7 @@
     (arguments
      '(#:tests? #f)) ; no check target
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (home-page "http://gnustep.org")
     (synopsis "GNUstep make package")
     (description "The makefile package is a simple, powerful and extensible way
@@ -144,7 +144,7 @@ to easily create cross-compiled binaries.")
        ("libpng" ,libpng)
        ("libtiff" ,libtiff)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://windowmaker.org/")
     (description
      "Window Maker is an X11 window manager originally designed to provide
@@ -170,13 +170,9 @@ interface.  It is fast, feature rich, easy to configure, and easy to use.")
     (build-system gnu-build-system)
     (arguments '(#:tests? #f)) ; no "check" target
     (inputs
-     `(("glib" ,glib)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxpm" ,libxpm)
-       ("upower" ,upower)))
+     (list glib libx11 libxext libxpm upower))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.dockapps.net/wmbattery")
     (synopsis "Display laptop battery info")
     (description
@@ -200,11 +196,9 @@ graph), and battery status (high - green, low - yellow, or critical - red).")
                 "01s37d8cfpncza1mlw13ar4rcwbrc1vgaj3ifhglmlcnzvvayg0n"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxpm" ,libxpm)))
+     (list libx11 libxext libxpm))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://www.thregr.org/~wavexx/software/wmnd/")
     (synopsis "Network interface monitor")
     (description
@@ -226,11 +220,9 @@ other compatible window managers.")
                 "1334y0axnxydwv05d172f405iljrfakg4kcyg9kmn46v6ywv424g"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxpm" ,libxpm)))
+     (list libx11 libxext libxpm))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.dockapps.net/wmcpuload")
     (synopsis "Monitor CPU usage")
     (description
@@ -255,14 +247,10 @@ on.")
                 "1lx276ba8r2yydhmwj1g586jdqg695ad89ng36fr3mb067gvb2rz"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxpm" ,libxpm)))
+     (list libx11 libxext libxpm))
     ;; wmclock requires autoreconf to generate its configure script.
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (home-page "https://www.dockapps.net/wmclock")
     (synopsis "Display the date and time")
     (description
@@ -286,10 +274,9 @@ display, and can run a user-specified program on mouse click.")
                (search-patches "wmfire-update-for-new-gdk-versions.patch"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gtk+" ,gtk+-2)
-       ("libgtop" ,libgtop)))
+     (list gtk+-2 libgtop))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://www.improbability.net/")
     (synopsis "Display flames to represent resource usage")
     (description
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 5273fbddf0..4e86ab835c 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -13,10 +13,12 @@
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2019, 2020 Adrian Malacoda <malacoda@monarch-pass.net>
-;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
+;;; Copyright © 2020, 2021 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 ;;; 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 Baptiste Strazzul <bstrazzull@hotmail.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -53,6 +55,7 @@
   #:use-module (gnu packages admin)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages m4)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages databases)
@@ -67,6 +70,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages fonts)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libreoffice)  ;for hunspell
   #:use-module (gnu packages image)
@@ -77,6 +81,7 @@
   #:use-module (gnu packages node)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages gl)
+  #:use-module (gnu packages pciutils)
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages rust)
   #:use-module (gnu packages rust-apps)
@@ -115,9 +120,9 @@
        ("pkg-config" ,pkg-config)
        ("python" ,python-2)))
     (propagated-inputs
-     `(("nspr" ,nspr))) ; in the Requires.private field of mozjs-17.0.pc
+     (list nspr)) ; in the Requires.private field of mozjs-17.0.pc
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (arguments
      `(;; XXX: parallel build fails, lacking:
        ;;   mkdir -p "system_wrapper_js/"
@@ -192,8 +197,7 @@ in C/C++.")
                                 '("--host=aarch64-unknown-linux-gnu")
                                 '())))))))))
     (inputs
-     `(("libffi" ,libffi)
-       ("zlib" ,zlib)))))
+     (list libffi zlib))))
 
 (define-public mozjs-38
   (package
@@ -276,10 +280,7 @@ in C/C++.")
        ("pkg-config" ,pkg-config)
        ("python-2" ,python-2)))
     (inputs
-     `(("libffi" ,libffi)
-       ("readline" ,readline)
-       ("icu4c" ,icu4c)
-       ("zlib" ,zlib)))))
+     (list libffi readline icu4c zlib))))
 
 (define-public mozjs-52
   ;; No releases yet at <https://archive.mozilla.org/pub/spidermonkey/releases/>.
@@ -345,9 +346,8 @@ in C/C++.")
                         (cons (string-append "--prefix=" out)
                               configure-flags))))))))
       (native-inputs
-       `(("autoconf" ,autoconf-2.13)
-         ("automake" ,automake)
-         ,@(package-native-inputs mozjs-38))))))
+       (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/>.
@@ -428,7 +428,7 @@ in C/C++.")
 (define-public mozjs-78
   (package
     (inherit mozjs-60)
-    (version "78.10.1")
+    (version "78.15.0")
     (source (origin
               (method url-fetch)
               ;; TODO: Switch to IceCat source once available on ftp.gnu.org.
@@ -437,7 +437,7 @@ in C/C++.")
                                   version "esr.source.tar.xz"))
               (sha256
                (base32
-                "0gyg2p6i1wmmfghwg13pp6fj8j8xz6c14f6bbnf4pf0f5c3la7y4"))))
+                "0l91cxdc5v9fps79ckb1kid4gw6v5qng1jd9zvaacwaiv628shx4"))))
     (arguments
      `(#:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
        #:modules ((guix build cargo-utils)
@@ -560,21 +560,19 @@ in C/C++.")
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("python" ,python-3)
-       ("rust" ,rust-1.41)
-       ("cargo" ,rust-1.41 "cargo")))
+       ("rust" ,rust)
+       ("cargo" ,rust "cargo")))
     (inputs
-     `(("icu4c" ,icu4c)
-       ("readline" ,readline)
-       ("zlib" ,zlib)))))
+     (list icu4c readline zlib))))
 
 (define mozilla-compare-locales
   (origin
     (method hg-fetch)
     (uri (hg-reference
           (url "https://hg.mozilla.org/l10n/compare-locales/")
-          (changeset "RELEASE_8_0_0")))
+          (changeset "RELEASE_8_1_0")))
     (file-name "mozilla-compare-locales")
-    (sha256 (base32 "0052wq92sg4i776x407b5838jx9h3phl9xy69m2q34f31n3gdyk2"))))
+    (sha256 (base32 "00bpkaqf2ng1nn9ajyb5mli0jq58q5fm2n3yy90jy0hp4q2gbs50"))))
 
 (define (mozilla-locale locale changeset hash-string)
   (origin
@@ -594,118 +592,110 @@ in C/C++.")
   (mozilla-locales
    ;;                      sha256                            changeset    locale
    ;;---------------------------------------------------------------------------
-   ("1q1p7nl97478hkf1msbbcdh98k6fn87xwqihbw8np00ll5gk9k4v" "97cf3c155484" "ach")
-   ("0sajpblp639l448xywx7xlybjr5dm0rfrzx511a8pa9wn7dma4mf" "46929b4dda4e" "af")
-   ("04s756aaf1yyli1dn1vfdjymgyjs1pz2n7jvz76j27x4nzdgss7l" "96ffd2b04ba3" "an")
-   ("16nw7slm7irsnjf81r6zl273kbzri8sdbimzgzxwm0vh6xr61rgs" "1c4231166ddf" "ar")
-   ("0i0qrj4j8zjv55cisbmr21dp8mz933hc9wkpn3abz5k5pn84gpry" "bc4384b8be78" "ast")
-   ("1r77mmwg9x1jfa7g5lqa31rgyfrnix1zj80ibn5rq9gyhhsdrwbd" "dd56aead51fa" "az")
-   ("1kzjpy5bnvps8di72ksynhbhc9bpw1ml6hvphm74z8dz55ai4c18" "9d2bff64ddfb" "be")
-   ("1fygvjgph3siknfm7l0fh9y4ava72z1rxkip1zgmcdgq7jz8wzpf" "3808f4fe4db6" "bg")
-   ("1x9nlqia441xh04rhkmkw6qrgpwnyqw0grrf5n2qw96939wnmgl7" "5ca8752ed8df" "bn")
-   ("18yyxqzab44bgqx7h052d5nxyhv0l5bidgr16z1b3ak2crsfyx9q" "4c5d30ca9bf2" "br")
-   ("11bschjz7pgsm4r1qan5l4s3nkzm5jb0kivpp186wd1xsjci5bjb" "cf2478a7eae1" "bs")
-   ("12bak64nl6qi092l55xv330vh38mfsicrrf4wi693nn7zqb3mbpw" "4aa2cc349211" "ca")
-   ("0p97d7pnxqs971rr5c57i6cw3mx1mp3iasa0xdmdk0zpz9pjd3s4" "806914072144" "ca-valencia")
-   ("1rligf98h9r16mw3r3n5jalzi74xn2dnh6hkiixp7s2bvhjicwa4" "db2163383129" "cak")
-   ("18y5j8ljh72mj2nbx0m64mi3fyjbwyx992i004sv3zvs4d4z18w4" "d1d09eedddde" "cs")
-   ("12i4m9q6f8sl8arm8ja4gs4sl9m59p3kddlqi68srpz9mk66rqxz" "1caf58c64227" "cy")
-   ("16wacsd23zd4j0yi6vbj033wylia8hlpswx949x5hy1h9817j4vn" "9ef3b56aa243" "da")
-   ("1ddxnqpfi1wnciwmzkvvjinb51h22bg70r0dn7db17q64p4271rk" "a050b0eaec0a" "de")
-   ("0gw5h52rw3bc2lwffnv845sjwwj22gmabchmpa1rw2y6087dc7zk" "613135cb0759" "dsb")
-   ("0v17da37w1kbs73i6xql4c9xng6rfachyylpy3w8hpibpvi7i30n" "903db7c76b31" "el")
-   ("0ky1nj4kp070nriw0igsa64l39plcv2365zl8lqpbydyp6clwc3m" "6bb74673e9aa" "en-CA")
-   ("15jck6si2l4h5lrs8zjx56y97p70njpi26nnq6xfmvj1dk5qb4g2" "c06bd83a9295" "en-GB")
-   ("1gc400n8j8qk70vdw7fkf4m9yviia35cmj6361pxnyvsjrgm4qvm" "ae0fda5114c4" "eo")
-   ("0y01lahdrd3krsh6nrr3iw36r2x4advh5qw54vf92w11l3aiyvfz" "0c294dc9ce40" "es-AR")
-   ("16jjbsfa62dxk36ccziv7nmh26c1s0b05960in6zs5nnfrv4yh35" "7c30b2981fb4" "es-CL")
-   ("0qh8c8f8dsv1v56n1mcpn84l39bpnqfl8v8iacq12zh322srr549" "ad1444f4f833" "es-ES")
-   ("1vh3hm5r4ch6mk3ymbk12b9rppwc75fmbi0i7cml82kxsi77bzw5" "0a26cdb23536" "es-MX")
-   ("159l92jxx48lgba1g8ig3mdzhwsf3jpg3nx1g9blq4majk5hqr6q" "65a38a830795" "et")
-   ("1ha8y1wbgb66dqm26x1q2xwygy7bblkjz40y9vh5d2qlpr3fn0av" "21e0930b221d" "eu")
-   ("0rq4pcw6klm0bbljm1wdfvna8bpa35cm47hh2s63i2xdax4scahf" "5a4bb020cf09" "fa")
-   ("1py2594gsvpgrxnplz278ffb7grsf384kzjskrl1zyps0jw8fb1x" "4a4f712cd4aa" "ff")
-   ("1dyd55ngsglp1w2gh0yaacwb0vsq23gdvnj76f2x6g39h1li9s0z" "9c51cd915e2b" "fi")
-   ("0kimwivpq6pr63jh1k9fszsv8bi8vns3scg76mmnvbhh2ca8q7wj" "4f9e24a696ee" "fr")
-   ("1sbbnnp12lgy5qan2kix02942830b1969bd7jxrv7piwqfch9i06" "9e21a0eeb5b1" "fy-NL")
-   ("0dsvvyfrzkx5h44gqgdci7arb8h4lq48w20cnr8fc7j17grvnkzz" "999a995bc09d" "ga-IE")
-   ("1487msbsgrfzmyijhf6a4wbqdjpd7b7ki9nwrjjjjlnbw0h0ljpb" "6a9ddcab3240" "gd")
-   ("1kzc4fwr18kgisdzba2acj1ag8mxbifqpk5p30jv68nmvqfsvl8d" "51eb5e352db9" "gl")
-   ("13gy3wn44kcxr7j3sbl69fp415875f4vb0gm91hx0fysqlvryhcs" "b9de1ffe3224" "gn")
-   ("0w5nvzpjn5vr35c1852rlff581vpy71nc096cz125852kyqkzkc3" "5b3307475ada" "gu-IN")
-   ("1ycakc4qpy9vcy50j3ricryjfnjr9v3a5ijj6bbfl4y6aks157fy" "c742df968ffd" "he")
-   ("1b2jf83c500wm5wcdnijq0b7y4m8n6271smq8pygahn5nq17f0gq" "1a3039a52b8a" "hi-IN")
-   ("19bbw8ix5m83cf4yarcmjl7jqa8xfabwqnh3nj6vi52rwvn7whk5" "8dc50e269ef3" "hr")
-   ("12rrsvgg6bb2h8fhni7jbx8pv983q8ym5fhfjim957n9q2yp5db6" "67e40f48dec7" "hsb")
-   ("0apyh713p3hrlj8041xwblcssahbmsqp9v9hbmb50ayf4z850kr1" "40073a597b1b" "hu")
-   ("0q0r076lq250d3vmnz9d92wj137c2v8i362c2avmkgp5zr3mcl0z" "2ea33335afdb" "hy-AM")
-   ("0qza33gdc1i9259dwd2f7vd78s0a6rg34aqdkhcn7f2l6ybw6xd6" "930041db15eb" "ia")
-   ("1211h0gp7gianh3qf76w04gfzk4n2bnyc9i8dviyz0vh4cjbx11m" "08811a49b41c" "id")
-   ("12lcr841g1j7453s7gb51vrvxmshx4ha3h1jx4vh8wr891xv8l6a" "2f7a8d31e0ba" "is")
-   ("1x585g0r2kcv0d3phnxx85bk5g0pi1yl0hwp4idv19yc9hslr04s" "188357cc04b4" "it")
-   ("09v35g9v7j6x0p1hggydm3a1rmq2fh4z7g1l88z3w5k6wq2nhj1b" "45cee0ba4771" "ja")
-   ("0prs3vycfvvaffjigdgyxiq41ak2rc34lnan5a6cwdqjgy7z450s" "d60a19d9bf17" "ja-JP-mac")
-   ("1nskzm8rgczrbgcxlzzq5zqdfd456ad0cylq27nf0wjiyq6kjzcm" "00cb00e78672" "ka")
-   ("0g6zznmhiam172nm7g2qzfpk415mna8kiihm73z2sdns64xb3ymg" "77a293a4bced" "kab")
-   ("17dld9lrym7rpvpvnkssivp4wx1f11zpk86wczbq1h52qgd70p55" "2c9b33a56d5d" "kk")
-   ("1nlzl8930c8ql3yq425wyqlxvq8arrjv20xpm5g7yfxd54av89ac" "9cddd42af05c" "km")
-   ("07hkrcdksvrqk816yimd036dlw15nc4sjk4gmw16ywbp093v0mqq" "e0c2969a8398" "kn")
-   ("08aqggvk3qbv5bzks9i1iba9akhkpm01d2c9k0zf41mpr2r5yfg2" "827567d0dafc" "ko")
-   ("0vagaiwy80bs1k3gkacshlzb5zchkcshx0ypwirvayc63sw4yl8l" "694b2a24e868" "lij")
-   ("1r43kp1kzahrbza0hiyavqplk9h08pzsb6rpjy79jr6l1iqb89sy" "d6728db7e060" "lt")
-   ("0sq2wbsj79xl7fi454k6q5xdhxyck1whjz315rv37vphqpx86b9b" "61e9b33f4d94" "lv")
-   ("0q8jxg1af22hs9wjdf0jd3bqk4rafxyzvsjl35k75am7l2y1fl3c" "9e482f6dd72c" "mk")
-   ("1zsfzjrzbc58d30a9yz12h5vphywgpw8xg6y6zn3677a785dvr20" "1fd2763336a4" "mr")
-   ("1rzygkkpn1a59daygd3hdaqph2np6sqvpgh68j0xr4il958ymnsm" "67ddab62dab4" "ms")
-   ("16jp6w5gizfxs7jvncg3ly13m59vqvh4rlmjd0q23m5g5ff9sklc" "3ed015b51bf3" "my")
-   ("1wfv023j67lb4iyf49fsknwm4z3xy0xqcf25b2nzanggxj26n01x" "d01801233a8f" "nb-NO")
-   ("1946vfia58vbjfippb5pfsskbjj95w7hb340smn6ry2vmza99mxp" "582defb08fb2" "ne-NP")
-   ("12w5ywh4c3s55y3zqc48cp1gcpwwjg444yfh1bghhhb9ni1xkh5i" "05f6359a29a6" "nl")
-   ("17jb076320cgkw1ypwmws2vjxsqlv2ww8aaisa3j334vbrw1m4zx" "50b41a1ddded" "nn-NO")
-   ("1y840j0v5zdgj94cbacy6j1snf44rynmzxq3yk8i26arcar62akl" "a6a138531a44" "oc")
-   ("0jq1hq4xhqxpa26r8pb1bgbaljgfkhn9l6p5pbnslkllpbh70q6l" "e70a3afaef25" "pa-IN")
-   ("1hih138skwy2gb8q10ngg6zalrk3aa3d549mg79gqzxbi5zy19fw" "e035f33389eb" "pl")
-   ("1hhif4hx4k351wm1bzykzycfzb5q8msxmiwh5r1cy32rh8wkxwhh" "54098495f37f" "pt-BR")
-   ("0gkjs12rxjml1m3mljskpz1gr6aph0c31nwpwdqybfg54w9qslib" "3fdf021f624e" "pt-PT")
-   ("0anyvwd9v6mr8y3ww33s6qnxkawqn5lz65vrxx3m3kzky63ai1xk" "794f9374eb87" "rm")
-   ("1p4drj25gsfv7lwgm5saazh38iqrh53952n8i4bmxpn0nadbm2n5" "71ce18bcf6cc" "ro")
-   ("17yssf4axd3zvncl4ka4wkfnwcn0z0arp3390vb9cps67na29p36" "3a9587227699" "ru")
-   ("0xk6rksspcw1222v4rgk5a6gzrpx64k29hm7p9qkqwd70s34yj46" "c020582a72ce" "si")
-   ("1ax5ibydyn7sj208r66zcxlcr8dxdqrw28vqyjif4jx583rp4lfp" "745a699b7f51" "sk")
-   ("13rin7hm1dv8g0hbcv8mp2hiwpk1k5bhzvkqpqajkkik4lx523mc" "8e437e2351ef" "sl")
-   ("0yh5jkl5zw3f7x1w2w6zfj3dyvcl4wj1zv4di7qsq2nl2yyizf7x" "2d99e2eff94f" "son")
-   ("0vzq7s27jsdbw5k59wfykysg1kd8w229ab5d4zjdf30l59igkahh" "69bbdf07bd80" "sq")
-   ("1mwivvs8vrk6vjq6i33kwlrlisra7dy35521ayps9p2rz2dll4rr" "215df5c5125c" "sr")
-   ("0g97yz1rg5cfflj8vvq3sqliyvm06x818z9yldfh5rjg1y6n9fjd" "8be00a1a50d4" "sv-SE")
-   ("0ii02jn3lh2i6d0s95whx9aj6w3x8axc7w1rlzj0lc2s9n52krz3" "170a84339dbe" "ta")
-   ("1ss7symad2crapxjqc0xhc0n17l79r5vf7flvkgk7npjky4vb7nv" "72a79a304f7f" "te")
-   ("11iqmg8zamgscnvs4n2xpw3g9azn6w38qs313wiwm86pyx6694ss" "8e91ce3064c5" "th")
-   ("1zgkvn9flb8by62ip9r3gmpgxwgkww1zhml5mwa0djq3ppfdgi1c" "0f914d0cda56" "tl")
-   ("1filkhdak6dbrd83q602x1qw1703nlm53nm9gcyab8s16gsx6ylz" "62ca6a8eaeba" "tr")
-   ("0cgagdy0ixprk3knczdmkqxkmx4ybmshhh0956kxbd0iab0dfcf6" "f110ccac4cde" "trs")
-   ("1f1ghk67zwnwc5x3nk82vcv94nf8glngkfya1hg074q3088sj9pa" "56c0102d5f1c" "uk")
-   ("0iyw1b2jjylkdwxv9sxvj4ikxl64sx612b2dvvmf1di8bw86w74r" "7d53bce5ae98" "ur")
-   ("1q83cp5pfgs8l03zirwi8r5qp8qyh4zvxdx1ilgaqqlyg42yql7c" "9b500e1a054d" "uz")
-   ("1d4nkybz2hk64ay04k965b9lc5nhhpmzcs5ww3b6q4n93rf9c2z7" "2a000025928a" "vi")
-   ("1cnrsfnyl3sw3sxsggmjwydvphb2diy0vzknvxdhpnvq3ln18hga" "74724087c25b" "xh")
-   ("1j6l66v1xw27z8w78mpsnmqgv8m277mf4r0hgqcrb4zx7xc2vqyy" "527e5e090608" "zh-CN")
-   ("1frwx35klpyz3sdwrkz7945ivb2dwaawhhyfnz4092h9hn7rc4ky" "6cd366ad2947" "zh-TW")))
-
-(define* (computed-origin-method gexp-promise hash-algo hash
-                                 #:optional (name "source")
-                                 #:key (system (%current-system))
-                                 (guile (default-guile)))
-  "Return a derivation that executes the G-expression that results
-from forcing GEXP-PROMISE."
-  (mlet %store-monad ((guile (package->derivation guile system)))
-    (gexp->derivation (or name "computed-origin")
-                      (force gexp-promise)
-                      #:graft? #f       ;nothing to graft
-                      #:system system
-                      #:guile-for-build guile)))
-
-(define %icecat-version "78.14.0-guix0-preview1")
-(define %icecat-build-id "20210907000000") ;must be of the form YYYYMMDDhhmmss
+   ("0f2lkv79gqf46f74905mab3zwyz1532chxlf9d28s548p1hw6lv9" "8312cd2e0777" "ach")
+   ("1v5jpmd0b04mizm9pjffp4r9q121vpq3yzkkxcgmrcwj4gc5jb2y" "21bf766c19d8" "af")
+   ("1fqjiq2la543z5pbbvd9kfs0wdc2phmqjbxascfsak854qy1z9f9" "34b6a4f0790d" "an")
+   ("0pl6j99xnali25glyr3g9fmj67v9vqmhd9k74i97f8q5n4xmv3ym" "513c3e8dac97" "ar")
+   ("0d1fbk9jcai19pi8b7i4y4r0gscqi1inr9dbahd6h0xbxfwc0zif" "19ca0cd0d1bf" "ast")
+   ("08f9b63wxxy28zaimjn1ab9w51bvrarc3pp75s7v6kzm5bk1jwic" "44aa0dad7964" "az")
+   ("15pksy9bgaxcbcnvvp8jwqnqxvvhq9vnljpai6jlh52yyrsglbwi" "5e4499355167" "be")
+   ("0gdg84jp1i4il4nc6gwaswdhc4ljbb9inyip7vhkng09v3pmwm0h" "98d006107851" "bg")
+   ("0i6vl0ag74phj4l38cvds1ds3jjdal1c8d7hy6pf4aqrp4ai32mh" "2ca52cbb680a" "bn")
+   ("16yavargwq8rhipzpmrrvyh68g3a6disz9g5m8xbhxvixhcsi5fr" "ce92556a0a90" "br")
+   ("1512dzp394pj66i13nsz76qh6fmjpz7r7fmvk8d0h7pjk0d6n0dy" "1c79dabdb120" "bs")
+   ("19wg0kbr2ihbn4lscsxg9agz04r8bsih4692vfgb6nyn1z8vx2i0" "a22912c01617" "ca")
+   ("1ixpzjb7caq1d9c7c044rxg3ymxs3hjw120kq85v004jrrb4d9c6" "34bf3fd631d4" "ca-valencia")
+   ("1abizdmd1c56syni1aanwwrfvmgzz25fmimbj2324bcw801ma9h0" "e2e4ba2c37bc" "cak")
+   ("0wgrg2wiz1jcj52nd4zl4shfkjhbngfj6p1gw1ywj266hk8g6pvw" "a60792bff6ff" "cs")
+   ("132f29111jd2z9yxpakkyri80mi2ggnik6zxaxqrp4vlcrd1fxd2" "66369fcad8c7" "cy")
+   ("04lpic3cxdj1imcwjkbk81avp9dpa1c9b1zcchrr1a4vyy4yfjpy" "af198d43f7d6" "da")
+   ("1h0rkwlsqls8k1qi1y68plw6xk0z2c5xc2y4nqywiirl71yz7fi5" "816fcef20c05" "de")
+   ("11lzdyl1h42zb1x2yxiv3r0wih8jy1gr0gzs5d1isdq53sa9cqnq" "962e5a544415" "dsb")
+   ("146jgrhl41k6zbxg58hxh1s088padsjz7ny8nm59i9i8d00jpv0a" "e7c49fd88463" "el")
+   ("1qppr44hdnrb1z1igcd1p0w5sy9vpihzilkl2w44y0v0v9rigppv" "5a0e35b08a48" "en-CA")
+   ("1v2irfms24cx9g5s6r1glmp2c000wi91axyca1pn37s7c01r0n4b" "72f8c5d8305d" "en-GB")
+   ("1y0rbbmax1w6jy4jacy27xgy4aqnd43izysw8qjwm0qhhfjvf3xh" "40994fca693d" "eo")
+   ("0kmjvinqpb3y81mqda1qq8k202aa36as9z1z775745bx6sbvkggz" "6cf3c836995d" "es-AR")
+   ("06rvd1z3l0r7hwnsnw90i0f5j2ysbv6wd3cl64g0bgifmwjk75hi" "8727dda3935e" "es-CL")
+   ("0gzw1rn9nzpgcrrc10indnbqqpax87azczrfxv8mn5n56j734hc0" "5351aba49895" "es-ES")
+   ("0bnmgisxfkb6rb12avhipbsj1yr0dyv56qjj9471gnc2ppq7k3c9" "dd834a4af402" "es-MX")
+   ("1951975h9w813qxanbk3frjz7c8knzx5rvq9i82j9i6x6a3fh6fi" "1f2150796079" "et")
+   ("1vkb5rd0k6vh9dbll3fhyzg8rfpkxxkd2rxwf66b8l3hg4fqd7f2" "2911663f4a7c" "eu")
+   ("1cj9zblfp94h86m7zd762bfmcfz0yxc1q4ra35s4wnnlqajarzwj" "04ec3c3bbe92" "fa")
+   ("1ininsyzaj7xd8ppmklm3zglgw1i0nhdy43iiyva32hb592zxy4m" "0cf866f9bc4e" "ff")
+   ("1hc308d71iygarrpliv7pxjz49gxwqg10d0pv8j4sbb2pw39bprl" "04a600fc54a4" "fi")
+   ("02nl54db9130rg59wmrrnh0z726fg5ir1njfcnhxagb4g5b7s69f" "64a3576df276" "fr")
+   ("1qbby23qlkxjz3vwlk8pd2w1w4cxdff8cq7j0ipk44mijkxkry0c" "c84177dfa254" "fy-NL")
+   ("1x23pg36ld5qnrmdn149rkl85ia8lmiqbzcac2bm0iqprnjdszii" "31590cffac56" "ga-IE")
+   ("005fpyr1lvw23dja3yrzx4y8wdih7vx6ljjpisf4pd3k5zai4x81" "ba4f274ac4a1" "gd")
+   ("0kdlb5q74n0fl5fxfy873s392kry69dmdl8b4gvqdyh5sy66vsqm" "56b41bdcd401" "gl")
+   ("0v8r8b0nrk1l4xipzhq16klmh0pinzcrma0s0gyhgzqqli6z7aym" "59e2afb65c08" "gn")
+   ("1grb1lq1f9p5jxgh9v78jl1wswxmsqxkcssm35l30k6y24pglr0m" "33b4409fb615" "gu-IN")
+   ("172fg55y8l90ix4c8s5x7f8mg6rc7779p6l852cnnkfqjgqa5a5f" "92f9f8238189" "he")
+   ("0i52nmg0yv3y1y3rkinxcyh51mgjksk7c3jlc8014801m3zvyxj7" "00090f7a2a3f" "hi-IN")
+   ("074q8n00yq54kzk632dwbs64r0sygvybbvwpd6hbvfpn38lz8hxf" "6e4a3fdc01f3" "hr")
+   ("1jxiz8zyxbpnwgk5xkwfxlr5f1zfyc88jcsajy8wcaifdkld3cwn" "7fd9bc25e49d" "hsb")
+   ("0ca11pmkzyd9ccrnrbmk0jrpcb03k88v4zivxblnxj4w03g0hyhq" "ce3b378ce950" "hu")
+   ("1yszljbh8f7w6lckfw22jwximy3yhis4430lfynfb8lh9nm0fw59" "c91a4a3e8821" "hy-AM")
+   ("0hhl8b8szqlhjdxhsa81zmgr303kr0jx5d6rzbi840qwf01h12sz" "4f235acc839e" "ia")
+   ("063yfk3nz3kignbri7r9sr3jwr5p9yyqc6sckgqs94hx6lvc355p" "fface86a34e4" "id")
+   ("1qszxkgliall4haaq6v0xayxikq43ddcdsn1d4m1mwyp7gdpbry5" "5978ae767b44" "is")
+   ("1fsfz9iz5pdd5r9ckdal6grvddchsc4r3r8gn4w6f2bja6vpbs05" "0c7d2a0e1304" "it")
+   ("1phkw0apiicgbw2nq3g392xncw1v2c4yac595h3nchs4q6rp9pd9" "1c923f3e88b9" "ja")
+   ("1y4gc4l6g72nphhsw4aqhcl80a7wi9qdy61h66c6jc6h14i7278d" "66f700940cfa" "ja-JP-mac")
+   ("0iqwj0y19zqcdclnn92z490s1g9vh2qr9gmkyfnpsz69llxidx1j" "49b4a7c6bb2c" "ka")
+   ("111nm2khff0zxnqqfc68rbi3j0b1nx5r4xai7b8yymyv1i0qbsxd" "4854facbd60b" "kab")
+   ("12p7lg2p6pcqdlb4bqbz5isxilw2r9vb8344sh8zrvv9cb9jq04f" "d2fda8a1b287" "kk")
+   ("142vpw9npqgc8b5zcg5cy2lh07s4mg8xfbaymg44fb4j3s6agw88" "3a5a1cae9b93" "km")
+   ("00v1sd2byj2ksxw1020z142cdlxa7ri2v1rzjrhay9l465bj3k8x" "6ed122b33cac" "kn")
+   ("1s07yhwzpxj0l5vj5lzbvgw115sjx1g2zgbqca5wln95dds39npl" "49bc07645a47" "ko")
+   ("1b4brfww0w7x1h3ff19i6xi8xq2cb1hxysilira6yq4rb6vhlmly" "93f04df12616" "lij")
+   ("1i30my0bbgm9z02rxxi7x4vc69bs3bnjs9l2q6jd8xvs1ga3vc7n" "e1f4e0d87509" "lt")
+   ("1bjh4xlx6562hxq527cqcn4b5295dsdpwn4c4y5ci902nlh6fc8l" "daea4ba4e7f4" "lv")
+   ("0vig42slcx6bhpisyc1bnyklr95lbv7vqd1ckiywp5c5qzfa9afi" "0c4ca0f4fc17" "mk")
+   ("10qfnkqi2snmgvm4vcrmp2489klchv3hn2c4rmkdhi5bilfk42jx" "9be8d5951976" "mr")
+   ("1bkn8ds3fyz710ck4gg4g5vpv23bi573ssm9xbiyl8y59pvbig9b" "0f44d0bcfda2" "ms")
+   ("1j9af3axbijn0s8y96310mvgaq5a36m0r3ij550jv5bv52862crj" "ccbf0c4355d6" "my")
+   ("0lspnp9jn3rrgz3djnmc0qrb6ymigvqnr3fb0jbhmf83r4yfs8z1" "a6cf2c6e3594" "nb-NO")
+   ("1xp2884m9gqm9gaakc747bd9j55wssrh3qsf4y4k02ijh08sfmwb" "c1636a1a7507" "ne-NP")
+   ("0y1fxp9pxia6x2wxdharh2ynvzdqcmzpya1gdb89pcv5qyrzqgcl" "60ed1c2397a6" "nl")
+   ("1nbp924p7fp2c76ym71wp34vk96z89i4g2rfgpsi54cgv42a6vgq" "a7f9a3d35875" "nn-NO")
+   ("1yrmhyvb6skypcyvi6j3py51sdkq9vn35zkryx6rdp8ygqwm1va7" "9ac29828960e" "oc")
+   ("0rn2414ji1icar627arf5rjwl9r9vxhznbfsyxgrmrf0p6dp72fv" "87720cc32205" "pa-IN")
+   ("09lam6yaprc8zyisq0pcdj4afpg930c2x3x47gdxnqfyhmcfygs7" "56b2c592ffba" "pl")
+   ("0mbc1a8wvjs3k928qh0k800d230251i0rw0myhdpc6mk3xjna7i5" "89f1b173c9b1" "pt-BR")
+   ("1v1qa5slllz78222rlqr4b8k7c8dapmx8d7s5nb90wdffic0zcqy" "27adc5dad781" "pt-PT")
+   ("04k6h5d7c740lz1hx1vavj6p0fmhgn9mm3nwvk4p9iccy5nw5pmf" "83e2e4833fc3" "rm")
+   ("0f0hz792wr17mgi6n190dliqx67479aqg3y2ak0jg0fiz2c8qr7p" "69cdc288966f" "ro")
+   ("17yngj0v30687m7fa1ls0g86vjg8jzxs7bnsca91jpxf3ij44xp6" "03046775600f" "ru")
+   ("1fvz23nphs9i4gdkx9fcy5ahdk2f879281pchclwi0qlciq7digr" "61ea93a50fff" "sco")
+   ("0yc1iwqbnpnf1i7yz3zqrx6g8pinc7l53pvbczywfkq3rz6wmmf5" "2b134d24c046" "si")
+   ("0kizljksn2vn4yw7qlv7c8h2m75f7n9ddg6n6ag3hwxxip83hn4y" "6d69c24dc8db" "sk")
+   ("1ll936b18wy464623jc5smf3c6dpimh0qwn28a991h7zcw31n3kp" "29e195d1d160" "sl")
+   ("14w9n994z9gf0wx7vrqisyxkngvhmmnayx8r0vwiq8k7jy81sxlm" "60a3b235fe1d" "son")
+   ("0z7bcfvq6x6dxf4d4bbjsg36r5npkr89087b0j360ljampk6c2fn" "8588cbc89847" "sq")
+   ("1fcq9g89lhzckzr2qb6x0w0z6q486n9jdqfi6h70dx8b069b3jfj" "198f7e89f10d" "sr")
+   ("0ap3m1sbibnaj9s2l139m7l8cc8s2ky4jlxwgzbxdzvqxfz7n954" "b098e2ebc049" "sv-SE")
+   ("0k93gnwfs5mahb9vz1c65ddcbkav0cwhxnrww3qk7gcmn7q88gqk" "25951b964d5b" "szl")
+   ("0b0v5pcwvhvhg8vlzy26g3j0m1r8svrpq07hq0q7lxldwlb48phz" "94659c83c9d8" "ta")
+   ("1v35cl6m3ikzsriq6zkjzjs3p9bhl8zmbp2gl14mga1f1zy4kcah" "eb59646a5d36" "te")
+   ("0y3r30mjgxngjraqmf5cm00kgqx2pvhbvy8sfxb3fhypv9vda3yr" "10d257301a2d" "th")
+   ("1inyqk495py20jwjvs4yl0n5ncf3hhb896bs1lwfsgpvbvr5hbq1" "9be6adca0e51" "tl")
+   ("0vsirjs655cia9n8dys2r84bvg303hcxkk2w6a9j3dkbifq5ymk6" "51354c936bf6" "tr")
+   ("050x882c0ywil290k4g861njw70ffw2y55dqk3w0kffi972mm909" "d7510f2d01dc" "trs")
+   ("001ykwxkwibavbi1k42b1hmysb3gmrwcs68zmw96m1vc80p29nz1" "4d1fa878042b" "uk")
+   ("0lsz6jlmmsqdg47pdx8b1djjvcavi0wlyr0mkpyhjgpginag21zx" "ad3035f28183" "ur")
+   ("0d3ggm3q76pkpg4n3lz2ji4pbb47n885byqxbp7sk6n9vlgzir7l" "8ea7a5a051db" "uz")
+   ("0v7d8y6xsr6yf2s1sjxnsjmw0hdnj91f0w2da6spkifb52lmbv6v" "67fe2acb306f" "vi")
+   ("0j8l09vzqlw4zlkyp6wkh44c5gr1xgbcmnawks1zj7xz02ambwii" "abc22dfb6d84" "xh")
+   ("1c01pbyswixkjg42714fvfy33b09mpdbf4d8f8kcs88c86jpf07z" "d6d6f9bb6113" "zh-CN")
+   ("0yq8fqdz862pnlbvfsqfc152rhpsqgncvp8bqkd653mdfv4qkwr4" "0cbdc5f1a048" "zh-TW")))
+
+;; XXXX: Workaround 'snippet' limitations.
+(define computed-origin-method (@@ (guix packages) computed-origin-method))
+
+(define %icecat-version "91.4.0-guix0-preview1")
+(define %icecat-build-id "20211207000000") ;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'
@@ -727,11 +717,11 @@ from forcing GEXP-PROMISE."
                   "firefox-" upstream-firefox-version ".source.tar.xz"))
             (sha256
              (base32
-              "1ymjlg6p23c510m764pqr4sldrvk0c7g490a29js2cqc2nj2h3ma"))))
+              "09xkzk27krzyj1qx8cjjn2zpnws1cncka75828kk7ychnjfq48p7"))))
 
-         (upstream-icecat-base-version "78.7.0") ; maybe older than base-version
+         (upstream-icecat-base-version "91.4.0") ; maybe older than base-version
          ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version))
-         (gnuzilla-commit "abfe5eebaca3c2787f1a9505669393674493c177")
+         (gnuzilla-commit "dd79d69e5dc6e6e751195001f322b30746be6903")
          (gnuzilla-source
           (origin
             (method git-fetch)
@@ -743,7 +733,7 @@ from forcing GEXP-PROMISE."
                                       (string-take gnuzilla-commit 8)))
             (sha256
              (base32
-              "00ws3540x5whpicc5fx4k949ff73cqvajz6jp13ahn49wqdads47"))))
+              "1vv97wmgdmkwddh8n30dak5l8akzbw49ca0w6krhq9dnj7n74cxh"))))
 
          ;; 'search-patch' returns either a valid file name or #f, so wrap it
          ;; in 'assume-valid-file-name' to avoid 'local-file' warnings.
@@ -768,10 +758,10 @@ from forcing GEXP-PROMISE."
                     (icecat-dir
                      (string-append "icecat-" #$%icecat-version)))
 
-                (mkdir "/tmp/bin")
                 (set-path-environment-variable
                  "PATH" '("bin")
-                 (list "/tmp"
+                 (list #+rename
+                       #+python
                        #+(canonical-package bash)
                        #+(canonical-package coreutils)
                        #+(canonical-package findutils)
@@ -781,11 +771,20 @@ from forcing GEXP-PROMISE."
                        #+(canonical-package grep)
                        #+(canonical-package bzip2)
                        #+(canonical-package gzip)
-                       #+(canonical-package tar)
-                       #+rename))
+                       #+(canonical-package tar)))
 
-                (symlink #+(file-append rename "/bin/rename")
-                         "/tmp/bin/prename")
+                (set-path-environment-variable
+                 "PYTHONPATH"
+                 (list #+(format #f "lib/python~a/site-packages"
+                                 (version-major+minor
+                                  (package-version python))))
+                 '#+(cons python-jsonschema
+                          (map second
+                               (package-transitive-propagated-inputs
+                                python-jsonschema))))
+
+                ;; Needed by the 'makeicecat' script.
+                (setenv "RENAME_CMD" "rename")
 
                 ;; We copy the gnuzilla source directory because it is
                 ;; read-only in 'gnuzilla-source', and the makeicecat script
@@ -802,20 +801,22 @@ from forcing GEXP-PROMISE."
                           "-p1" "--input" #+makeicecat-patch)
                   (patch-shebang "makeicecat")
                   (substitute* "makeicecat"
-                    (("^FFMAJOR=(.*)" all ffmajor)
+                    (("^readonly FFMAJOR=(.*)" all ffmajor)
                      (unless (string=? #$major-version
                                        (string-trim-both ffmajor))
                        ;; The makeicecat script cannot be expected to work
                        ;; properly on a different version of Firefox, even if
                        ;; no errors occur during execution.
                        (error "makeicecat major version mismatch"))
-                     (string-append "FFMAJOR=" #$major-version "\n"))
-                    (("^FFMINOR=.*")
-                     (string-append "FFMINOR=" #$minor-version "\n"))
-                    (("^FFSUB=.*")
-                     (string-append "FFSUB=" #$sub-version "\n"))
-                    (("^DATA=.*")
-                     "DATA=/tmp/gnuzilla/data\n")
+                     (string-append "readonly FFMAJOR=" #$major-version "\n"))
+                    (("^readonly FFMINOR=.*")
+                     (string-append "readonly FFMINOR=" #$minor-version "\n"))
+                    (("^readonly FFSUB=.*")
+                     (string-append "readonly FFSUB=" #$sub-version "\n"))
+                    (("^readonly DATADIR=.*")
+                     "readonly DATADIR=/tmp/gnuzilla/data\n")
+                    (("^readonly SOURCEDIR=.*")
+                     (string-append "readonly SOURCEDIR=" icecat-dir "\n"))
                     (("/bin/sed")
                      #+(file-append (canonical-package sed) "/bin/sed"))))
 
@@ -853,14 +854,15 @@ from forcing GEXP-PROMISE."
                                       #:log (%make-void-port "w"))
                     (delete-file "compare-locales/.gitignore")
                     (delete-file "compare-locales/.hgignore")
-                    (delete-file "compare-locales/.hgtags"))
+                    (delete-file "compare-locales/.hgtags")))
 
-                  (format #t "Running makeicecat script...~%")
-                  (force-output)
-                  (invoke "bash" "/tmp/gnuzilla/makeicecat"))
+                (format #t "Running makeicecat script...~%")
+                (force-output)
+                (invoke "bash" "/tmp/gnuzilla/makeicecat")
 
                 (format #t "Packing IceCat source tarball...~%")
                 (force-output)
+                (setenv "XZ_DEFAULTS" (string-join (%xz-parallel-args)))
                 (invoke "tar" "cfa" #$output
                         ;; Avoid non-determinism in the archive.  We set the
                         ;; mtime of files in the archive to early 1980 because
@@ -871,9 +873,7 @@ from forcing GEXP-PROMISE."
                         "--owner=root:0"
                         "--group=root:0"
                         "--sort=name"
-                        icecat-dir)
-
-                #t))))))))
+                        icecat-dir)))))))))
 
 (define-public icecat
   (package
@@ -891,12 +891,15 @@ from forcing GEXP-PROMISE."
        ("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)
@@ -908,29 +911,31 @@ from forcing GEXP-PROMISE."
        ("libxt" ,libxt)
        ("libffi" ,libffi)
        ("ffmpeg" ,ffmpeg)
-       ;; UNBUNDLE-ME! ("libvpx" ,libvpx)
-       ("icu4c" ,icu4c-67)
+       ("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)
-       ;; UNBUNDLE-ME! ("sqlite" ,sqlite)
+       ("sqlite" ,sqlite)
        ("eudev" ,eudev)
        ("unzip" ,unzip)
        ("zip" ,zip)
-       ;; UNBUNDLE-ME! ("zlib" ,zlib)
-       ))
+       ("zlib" ,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 68.
+     `(;; 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"
@@ -942,9 +947,9 @@ from forcing GEXP-PROMISE."
 
        ("rust" ,rust)
        ("cargo" ,rust "cargo")
-       ("rust-cbindgen" ,rust-cbindgen-0.14)
-       ("llvm" ,llvm)
-       ("clang" ,clang)
+       ("rust-cbindgen" ,rust-cbindgen-0.19)
+       ("llvm" ,llvm-11)
+       ("clang" ,clang-11)
        ("perl" ,perl)
        ("node" ,node)
        ("python" ,python)
@@ -953,16 +958,17 @@ from forcing GEXP-PROMISE."
        ("yasm" ,yasm)
        ("nasm" ,nasm)  ; XXX FIXME: only needed on x86_64 and i686
        ("pkg-config" ,pkg-config)
-       ("autoconf" ,autoconf-2.13)
+       ("m4" ,m4)
        ("which" ,which)))
     (arguments
-     `(#:tests? #f          ; no check target
-       #:out-of-source? #t  ; must be built outside of the source directory
+     `(#:tests? #f  ;not worth the cost
 
-       #:configure-flags `("--enable-default-toolkit=cairo-gtk3-wayland"
+       ;; 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"
@@ -980,6 +986,12 @@ from forcing GEXP-PROMISE."
                            "--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
@@ -1000,7 +1012,8 @@ from forcing GEXP-PROMISE."
 
                            ;; Avoid bundled libraries.
                            "--with-system-jpeg"        ; must be libjpeg-turbo
-                           ;; UNBUNDLE-ME! "--with-system-zlib"
+                           "--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"
@@ -1020,26 +1033,14 @@ from forcing GEXP-PROMISE."
                            "--enable-system-pixman"
                            "--enable-system-ffi"
                            ;; UNBUNDLE-ME! "--enable-system-sqlite"
-
-                           ;; Fails with "--with-system-png won't work because
-                           ;; the system's libpng doesn't have APNG support".
-                           ;; According to
-                           ;; http://sourceforge.net/projects/libpng-apng/ ,
-                           ;; "the Animated Portable Network Graphics (APNG)
-                           ;; is an unofficial extension of the Portable
-                           ;; Network Graphics (PNG) format";
-                           ;; we probably do not wish to support it.
-                           ;; "--with-system-png"
                            )
 
        #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
 
        #:modules ((ice-9 ftw)
-                  (ice-9 rdelim)
-                  (ice-9 regex)
                   (ice-9 match)
-                  (srfi srfi-34)
-                  (srfi srfi-35)
+                  (srfi srfi-1)
+                  (srfi srfi-26)
                   (rnrs bytevectors)
                   (rnrs io ports)
                   (guix elf)
@@ -1059,8 +1060,7 @@ from forcing GEXP-PROMISE."
                               (format #t "applying '~a'...~%" file)
                               (invoke patch "--force" "--no-backup-if-mismatch"
                                       "-p1" "--input" file))))
-                         (or native-inputs inputs)))
-             #t))
+                         (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
@@ -1109,56 +1109,45 @@ from forcing GEXP-PROMISE."
                          ;; UNBUNDLE-ME! "gfx/graphite2"
                          "js/src/ctypes/libffi"
                          ;; UNBUNDLE-ME! "db/sqlite3"
-                         ))
-             #t))
-         (add-after 'remove-bundled-libraries 'link-libxul-with-libraries
-           (lambda _
-             ;; libxul.so dynamically opens libraries, so here we explicitly
-             ;; link them into libxul.so instead.
-             ;;
-             ;; TODO: It might be preferable to patch in absolute file names in
-             ;; calls to dlopen or PR_LoadLibrary, but that didn't seem to
-             ;; work.  More investigation is needed.
-             (substitute* "toolkit/library/moz.build"
-               (("^# This library needs to be last" all)
-                (string-append "OS_LIBS += [
-    'GL', 'gnome-2', 'canberra', 'Xss', 'cups', 'gssapi_krb5',
-    'avcodec', 'avutil', 'pulse' ]\n\n"
-                               all)))
-             #t))
-         (add-after 'link-libxul-with-libraries 'fix-ffmpeg-runtime-linker
+                         ))))
+         (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))
-               ;; Populate the sandbox read-path whitelist as needed by ffmpeg.
-               (let* ((mime-info (assoc-ref inputs "shared-mime-info"))
-                      (libavcodec-runpath (call-with-input-file libavcodec
-                                            (compose elf-dynamic-info-runpath
-                                                     elf-dynamic-info
-                                                     parse-elf
-                                                     get-bytevector-all)))
-                      (whitelist (cons (string-append mime-info "/share/mime/")
-                                       (map (lambda (dir)
-                                              (string-append dir "/"))
-                                            libavcodec-runpath)))
-                      (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))
-               #t)))
-         (replace 'bootstrap
-           (lambda _
-             (invoke "sh" "-c" "autoconf old-configure.in > old-configure")
-             ;; 'configure' must be newer than 'old-configure.in', or else the
-             ;; build system will raise an alarm and abort.
-             (invoke "touch" "configure")))
+                  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))
@@ -1187,8 +1176,8 @@ from forcing GEXP-PROMISE."
                            "intl"
                            "servo"
                            "security/manager/ssl"
-                           "build")))
-             #t))
+                           "build")))))
+         (delete 'bootstrap)
          (replace 'configure
            ;; configure does not work followed by both "SHELL=..." and
            ;; "CONFIG_SHELL=..."; set environment variables instead
@@ -1196,57 +1185,92 @@ from forcing GEXP-PROMISE."
              (let* ((out (assoc-ref outputs "out"))
                     (bash (which "bash"))
                     (abs-srcdir (getcwd))
-                    (srcdir (string-append "../" (basename abs-srcdir)))
                     (flags `(,(string-append "--prefix=" out)
                              ,(string-append "--with-l10n-base="
                                              abs-srcdir "/l10n")
                              ,@configure-flags)))
                (setenv "SHELL" bash)
                (setenv "CONFIG_SHELL" bash)
-               (setenv "AUTOCONF" (which "autoconf")) ; must be autoconf-2.13
-               (setenv "CC" "gcc")  ; apparently needed when Stylo is enabled
-               (setenv "MOZ_BUILD_DATE" ,%icecat-build-id) ; avoid timestamp
+
+               (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"))
-               (mkdir "../build")
-               (chdir "../build")
+
+               (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)
-               (apply invoke bash
-                      (string-append srcdir "/configure")
-                      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
-           ;; The build system often spuriously fails.  See
-           ;; <https://bugs.gentoo.org/show_bug.cgi?id=680934>.  To
-           ;; work around this, we try the standard 'build' phase up
-           ;; to 5 times.
-           (lambda args
-             (let ((build (assoc-ref %standard-phases 'build)))
-               (let retry ((remaining-attempts 5))
-                 (if (= remaining-attempts 1)
-                     (apply build args)
-                     (guard (c ((invoke-error? c)
-                                (format #t "~%Retrying build! (~a attempts remaining)~%~%"
-                                        (- remaining-attempts 1))
-                                (force-output)
-                                (retry (- remaining-attempts 1))))
-                       (apply build args)))))))
+           (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.
-             (substitute*
-                 "dist/bin/chrome/toolkit/content/global/buildconfig.html"
-               (((format #f "(~a/)([0-9a-df-np-sv-z]{32})"
-                         (regexp-quote (%store-directory)))
-                 _ store hash)
-                (string-append store
-                               (string-take hash 8)
-                               "<!-- Guix: not a runtime dependency -->"
-                               (string-drop hash 8))))
-             #t))
-         (add-before 'configure 'install-desktop-entry
+             (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")
@@ -1258,8 +1282,7 @@ from forcing GEXP-PROMISE."
                  (("Icon=.*")          "Icon=icecat\n")
                  (("NewWindow")        "new-window")
                  (("NewPrivateWindow") "new-private-window"))
-               (install-file desktop-file applications)
-               #t)))
+               (install-file desktop-file applications))))
          (add-after 'install-desktop-entry 'install-icons
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -1273,39 +1296,17 @@ from forcing GEXP-PROMISE."
                       (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"))
-                 #t))))
-         ;; This fixes the file chooser crash that happens with GTK 3.
-         (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 (lib)
-                                    (string-append (assoc-ref inputs lib)
-                                                   "/lib"))
-                              '("libxscrnsaver"
-                                "mesa"
-                                "mit-krb5"
-                                "eudev"
-                                "pulseaudio"))))
-               (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))
-               #t))))))
+                    "mozicon128.png" "default256.png")))))))))
     (home-page "https://www.gnu.org/software/gnuzilla/")
     (synopsis "Entirely free browser derived from Mozilla Firefox")
     (description
      "IceCat is the GNU version of the Firefox browser.  It is entirely free
 software, which does not recommend non-free plugins and addons.  It also
-features built-in privacy-protecting features.
+features built-in privacy-protecting features.  This package also includes the
+@command{geckodriver} command, which can be useful for automated web
+testing.
 
-WARNING: IceCat 78 has not yet been released by the upstream IceCat project.
+WARNING: IceCat 91 has not yet been released by the upstream IceCat project.
 This is a preview release, and does not currently meet the privacy-respecting
 standards of the IceCat project.")
     (license license:mpl2.0)     ;and others, see toolkit/content/license.html
@@ -1315,11 +1316,11 @@ standards of the IceCat project.")
        (cpe-version . ,(first (string-split version #\-)))))))
 
 ;; Update this together with icecat!
-(define %icedove-build-id "20210810000000") ;must be of the form YYYYMMDDhhmmss
+(define %icedove-build-id "20211207000000") ;must be of the form YYYYMMDDhhmmss
 (define-public icedove
   (package
     (name "icedove")
-    (version "78.13.0")
+    (version "91.4.0")
     (source icecat-source)
     (properties
      `((cpe-name . "thunderbird_esr")))
@@ -1338,7 +1339,6 @@ standards of the IceCat project.")
              (mkdir "comm")
              (copy-recursively (assoc-ref inputs "thunderbird-sources")
                                "comm")
-             (delete-file-recursively "obj-x86_64-pc-linux-gnu")
              (delete-file "sourcestamp.txt")
              #t))
          (add-after 'patch-source-shebangs 'patch-cargo-checksums
@@ -1360,14 +1360,12 @@ standards of the IceCat project.")
          (add-after 'patch-source-shebangs 'fix-profile-setting
            (lambda _
              (substitute* "comm/mail/moz.configure"
-               (("'MOZ_DEDICATED_PROFILES', True")
-                "'MOZ_DEDICATED_PROFILES', False"))
+               (("MOZ_DEDICATED_PROFILES, True")
+                "MOZ_DEDICATED_PROFILES, False"))
              #t))
          (add-after 'prepare-thunderbird-sources 'rename-to-icedove
            (lambda _
              (substitute* "comm/mail/confvars.sh"
-               (("MOZ_APP_BASENAME=Thunderbird")
-                "MOZ_APP_BASENAME=Icedove\nMOZ_APP_DISPLAYNAME=Icedove")
                (("MOZ_APP_NAME=thunderbird")
                 "MOZ_APP_NAME=icedove")
                (("MOZ_UPDATER=1")
@@ -1411,7 +1409,8 @@ standards of the IceCat project.")
                               "enterprisepolicies/schemas/moz.build")
                  (("Thunderbird") "Icedove")))
              (substitute* '("comm/mailnews/base/prefs/content/accountUtils.js"
-                            "comm/common/src/customizeToolbar.js")
+                            "comm/mail/base/content/customizeToolbar.js"
+                            "comm/suite/components/customizeToolbar.js")
                (("AppConstants.MOZ_APP_NAME (.)= \"thunderbird" _ e)
                 (format #f "AppConstants.MOZ_APP_NAME ~a= \"icedove" e)))
 
@@ -1445,6 +1444,7 @@ standards of the IceCat project.")
                                "<!-- Guix: not a runtime dependency -->"
                                (string-drop hash 8))))
              #t))
+         (delete 'bootstrap)
          (replace 'configure
            (lambda* (#:key inputs outputs configure-flags #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -1455,10 +1455,6 @@ standards of the IceCat project.")
                              ,@configure-flags))
                     (mozconfig (string-append (getcwd) "/.mozconfig")))
                (setenv "SHELL" bash)
-               (setenv "AUTOCONF"
-                       (string-append (assoc-ref %build-inputs
-                                                 "autoconf")
-                                      "/bin/autoconf"))
                (setenv "CONFIG_SHELL" bash)
                (setenv "QA_CONFIGURE_OPTIONS" ".*")
                (setenv "MOZBUILD_STATE_PATH"
@@ -1467,9 +1463,11 @@ standards of the IceCat project.")
                        (string-append (getcwd) "/.mozconfig"))
                (setenv "CC" "gcc")
                (setenv "MOZ_NOSPAM" "1")
+               (setenv "MACH_USE_SYSTEM_PYTHON" "1")
                (setenv "PYTHON"
                        (search-input-file inputs "/bin/python"))
                (setenv "MOZ_BUILD_DATE" ,%icedove-build-id) ; avoid timestamp
+               (setenv "MOZ_APP_NAME" "icedove")
                (setenv "LDFLAGS" (string-append "-Wl,-rpath="
                                                 (assoc-ref outputs "out")
                                                 "/lib/icedove"))
@@ -1489,7 +1487,6 @@ standards of the IceCat project.")
                      "ac_add_options --disable-updater\n"
                      "ac_add_options --disable-webrtc\n"
                      "ac_add_options --enable-application=comm/mail\n"
-                     "ac_add_options --enable-calendar\n"
                      "ac_add_options --enable-default-toolkit=\"cairo-gtk3\"\n"
                      "ac_add_options --enable-optimize\n"
                      "ac_add_options --enable-pulseaudio\n"
@@ -1506,7 +1503,7 @@ standards of the IceCat project.")
                      "ac_add_options --with-system-jpeg\n"
                      "ac_add_options --with-system-libevent\n"
                      "ac_add_options --with-system-nspr\n"
-                     "ac_add_options --with-system-nss\n"
+                     ;"ac_add_options --with-system-nss\n"
                      "ac_add_options --with-system-zlib\n"
                      "ac_add_options --with-user-appdir=\\.icedove\n"
                      "mk_add_options MOZ_MAKE_FLAGS=-j"
@@ -1571,7 +1568,7 @@ standards of the IceCat project.")
        ("gtk+" ,gtk+)
        ("gtk+-2" ,gtk+-2)
        ("hunspell" ,hunspell)
-       ("icu4c" ,icu4c-67)
+       ("icu4c" ,icu4c)
        ("libcanberra" ,libcanberra)
        ("libevent" ,libevent)
        ("libffi" ,libffi)
@@ -1586,8 +1583,9 @@ standards of the IceCat project.")
        ("libxt" ,libxt)
        ("mesa" ,mesa)
        ("mit-krb5" ,mit-krb5)
-       ("nspr" ,nspr)
-       ("nss" ,nss)
+       ("nspr" ,nspr-4.32)
+       ; FIXME: create nss >= 3.68 after core-updates merge
+       ;("nss" ,nss)
        ("pango" ,pango)
        ("pixman" ,pixman)
        ("pulseaudio" ,pulseaudio)
@@ -1603,20 +1601,20 @@ standards of the IceCat project.")
         ;; in the Thunderbird release tarball.  We don't use the release
         ;; tarball because it duplicates the Icecat sources and only adds the
         ;; "comm" directory, which is provided by this repository.
-        ,(let ((changeset "adcfedf831da719455116546865f9a5faea848a6"))
+        ,(let ((changeset "ab6dfcf3a37bf53aac1a9d632d45ee51047050bb"))
            (origin
              (method hg-fetch)
              (uri (hg-reference
-                   (url "https://hg.mozilla.org/releases/comm-esr78")
+                   (url "https://hg.mozilla.org/releases/comm-esr91")
                    (changeset changeset)))
              (file-name (string-append "thunderbird-" version "-checkout"))
              (sha256
               (base32
-               "1dahf3y8bm3kh7amf341wnmh82a2r0ksqihc6dwiakh6x86a94cm")))))
-       ("autoconf" ,autoconf-2.13)
+               "00zj1k3c8p66ylf9n7xp42y6kiv3h6hf8ba7bk6f8wj3hh0r2hrd")))))
        ("cargo" ,rust "cargo")
        ("clang" ,clang)
        ("llvm" ,llvm)
+       ("m4" ,m4)
        ("nasm" ,nasm)
        ("node" ,node)
        ("perl" ,perl)
@@ -1624,7 +1622,7 @@ standards of the IceCat project.")
        ("python" ,python)
        ("python2" ,python-2.7)
        ("rust" ,rust)
-       ("rust-cbindgen" ,rust-cbindgen-0.14)
+       ("rust-cbindgen" ,rust-cbindgen-0.19)
        ("which" ,which)
        ("yasm" ,yasm)))
     (home-page "https://www.thunderbird.net")
@@ -1685,8 +1683,7 @@ Thunderbird.  It supports email, news feeds, chat, calendar and contacts.")
                 "17yyyxp47z4m8hnflcq34rc1y871515kr3f1y42j1l0yx3g0il07"))))
     (build-system trivial-build-system)
     (inputs
-     `(("nss" ,nss)
-       ("python" ,python)))
+     (list nss python))
     (arguments
      `(#:modules ((guix build utils))
        #:builder
@@ -1709,3 +1706,41 @@ Thunderbird.  It supports email, news feeds, chat, calendar and contacts.")
     (description "Firefox Decrypt is a tool to extract passwords from
 Mozilla (Firefox, Waterfox, Thunderbird, SeaMonkey) profiles.")
     (license license:gpl3+)))
+
+(define-public lz4json
+  (package
+    (name "lz4json")
+    (version "2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/andikleen/lz4json")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1xxn8yzr6j8j6prmbj6mxspdczigarfiv3vlm9k70yxmky65ijh3"))))
+    (build-system gnu-build-system)
+    (native-inputs (list pkg-config))
+    (inputs (list lz4))
+    (arguments
+     `(#:tests? #f                              ; no check target
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)                    ; no configure script
+         (replace 'install                      ; no install target
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (man (string-append out "/share/man/man1")))
+               (install-file "lz4jsoncat" bin)
+               (install-file "lz4jsoncat.1" man)))))
+       #:make-flags `(,(string-append "CC=" ,(cc-for-target)))))
+    (home-page "https://github.com/andikleen/lz4json")
+    (synopsis "C decompress tool for mozilla lz4json format")
+    (description
+     "@code{lz4json} is a little utility to unpack lz4json files as generated
+by Firefox's bookmark backups and session restore.  This is a different format
+from what the normal lz4 utility expects.  The data is dumped to stdout.")
+    (license license:bsd-2)))
diff --git a/gnu/packages/gobby.scm b/gnu/packages/gobby.scm
index 03e8a065b3..f948074c39 100644
--- a/gnu/packages/gobby.scm
+++ b/gnu/packages/gobby.scm
@@ -49,7 +49,7 @@
                 "088yqq60wjx3jqjlhl12893p15gl9asjpavrbhh590qzpqndhp8m"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:configure-flags
        (list "--disable-static")
@@ -65,8 +65,7 @@
                 (string-append "gnutls_priority_set_direct"
                                "(session, \"NORMAL:+ANON-DH\", NULL)"))))))))
     (inputs
-     `(("libsigc++" ,libsigc++-2)
-       ("gnutls" ,gnutls)))
+     (list libsigc++-2 gnutls))
     (home-page "https://gobby.github.io/")
     (synopsis "Network access framework for IPv4/IPv6")
     (description
@@ -90,11 +89,9 @@
      `(#:configure-flags
        (list "--disable-static")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libsigc++" ,libsigc++-2)
-       ("gnutls" ,gnutls)
-       ("libnet6" ,libnet6)))
+     (list libsigc++-2 gnutls libnet6))
     (home-page "https://gobby.github.io/")
     (synopsis "Library for building collaborative editors")
     (description
@@ -119,8 +116,7 @@ documents in one session.  Obby is used by the Gobby collaborative editor.")
                 "0w8q01lf6bcdz537b29m7rwlbc7k87b12vnpm1h6219ypvzqkgcc"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
      `(("libxml++-2" ,libxml++-2)
        ("gnutls" ,gnutls)
@@ -156,13 +152,11 @@ connect to a server running the old 0.4 protocol.")
                 "1p2wbnchxy2wdzk19p7bxfpbq5zawa0l500na57jp8jgk3qz7czx"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("itstool" ,itstool)))
+     (list pkg-config intltool itstool))
     (inputs
      `(("gnutls" ,gnutls)
        ("gsasl" ,gsasl)
-       ("gtkmm" ,gtkmm)
+       ("gtkmm" ,gtkmm-3)
        ("gtksourceview" ,gtksourceview-3)
        ("libinfinity" ,libinfinity)
        ("libxml++-2" ,libxml++-2)))
@@ -198,12 +192,9 @@ together over the internet in real-time.")
          "17i3g61hxz9pzl3ryd1yr15142r25m06jfzjrpdy7ic1b8vjjw3f"))))
     (build-system gnu-build-system)
     (inputs
-     `(("glib" ,glib)
-       ("gsasl" ,gsasl)
-       ("gtk+" ,gtk+)
-       ("libxml2" ,libxml2)))
+     (list glib gsasl gtk+ libxml2))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:configure-flags (list "--disable-static"
                                "--with-inftextgtk"
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index e9cf75bd7d..c863388475 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -30,6 +30,8 @@
 ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
 ;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
+;;; Copyright © 2021 Chadwain Holness <chadwainholness@gmail.com>
+;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -227,10 +229,7 @@
        ("pcre" ,pcre)
        ("gcc:lib" ,(canonical-package gcc) "lib")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("which" ,which)
-       ("net-base" ,net-base)
-       ("perl" ,perl)))
+     (list pkg-config which net-base perl))
 
     (home-page "https://golang.org/")
     (synopsis "Compiler and libraries for Go, a statically-typed language")
@@ -270,7 +269,8 @@ in the style of communicating sequential processes (@dfn{CSP}).")
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
                       (ld (string-append (assoc-ref inputs "libc") "/lib"))
-                      (loader (car (find-files ld "^ld-linux.+")))
+                      (loader (car (append (find-files ld "^ld-linux.+")
+                                           (find-files ld "^ld(64)?\\.so.+"))))
                       (net-base (assoc-ref inputs "net-base"))
                       (tzdata-path
                        (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
@@ -407,6 +407,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                  (setenv "GOOS" "linux")
                  (setenv "GOROOT" (dirname (getcwd)))
                  (setenv "GOROOT_FINAL" output)
+                 (setenv "GOCACHE" "/tmp/go-cache")
                  (setenv "CGO_ENABLED" "1")
                  (invoke "sh" "all.bash"))))
            (replace 'install
@@ -445,7 +446,9 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                  (copy-recursively "../" output)
                  #t)))))))
     (native-inputs
-     `(("go" ,go-1.4)
+     `(,@(if (member (%current-system) (package-supported-systems go-1.4))
+           `(("go" ,go-1.4))
+           `(("go" ,gccgo-10)))
        ("go-skip-gc-test.patch" ,(search-patch "go-skip-gc-test.patch"))
        ,@(match (%current-system)
            ((or "armhf-linux" "aarch64-linux")
@@ -458,7 +461,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
   (package
     (inherit go-1.14)
     (name "go")
-    (version "1.16.8")
+    (version "1.16.12")
     (source
      (origin
        (method git-fetch)
@@ -468,7 +471,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "00zv65v09kr2cljxxqypk980r4b4aqjijhbw4ikppn8km68h831n"))))
+         "06c8dcmni38za638ma069izd9kbxr6ii6ccflbibgc6k54lpc3fb"))))
     (arguments
      (substitute-keyword-arguments (package-arguments go-1.14)
        ((#:tests? _) #t)
@@ -617,7 +620,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
   (package
     (inherit go-1.16)
     (name "go")
-    (version "1.17.1")
+    (version "1.17.5")
     (source
      (origin
        (method git-fetch)
@@ -627,7 +630,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0wk99lwpzp4qwrksl932lm9vb70nyf4vgb5lxwh7gzjcbhlqj992"))))
+         "1yjhg4j89vgb26m35gc0799x2fd0xav03gcvcg2xwcfvvcar5gza"))))
     (outputs '("out" "tests")) ; 'tests' contains distribution tests.
     (arguments
      `(#:modules ((ice-9 match)
@@ -793,7 +796,13 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                   (install-file file (string-append out "/share/doc/go")))
                 '("AUTHORS" "CONTRIBUTORS" "CONTRIBUTING.md" "PATENTS"
                   "README.md" "SECURITY.md"))))))))
-    (inputs (alist-delete "gcc:lib" (package-inputs go-1.16)))))
+    (inputs (alist-delete "gcc:lib" (package-inputs go-1.16)))
+    (native-inputs
+     `(,@(if (not (member (%current-system) (package-supported-systems go-1.4)))
+           ;; gccgo-10.4, 11.3 and lower has a bug which causes bootstrapping
+           ;; to fail. Use go-1.16 until we have a newer version available.
+           (alist-replace "go" (list go-1.16) (package-native-inputs go-1.16))
+           (package-native-inputs go-1.16))))))
 
 (define-public go go-1.14)
 
@@ -817,11 +826,9 @@ in the style of communicating sequential processes (@dfn{CSP}).")
       (arguments
        `(#:import-path "0xacab.org/leap/shapeshifter"))
       (propagated-inputs
-       `(("go-github-com-operatorfoundation-obfs4"
-          ,go-github-com-operatorfoundation-obfs4)
-         ("go-github-com-operatorfoundation-shapeshifter-transports"
-          ,go-github-com-operatorfoundation-shapeshifter-transports)
-         ("go-golang-org-x-net" ,go-golang-org-x-net)))
+       (list go-github-com-operatorfoundation-obfs4
+             go-github-com-operatorfoundation-shapeshifter-transports
+             go-golang-org-x-net))
       (home-page "https://0xacab.org/leap/shapeshifter")
       (synopsis "Shapeshifter Dispatcher Library")
       (description "Shapeshifter provides network protocol shapeshifting
@@ -928,33 +935,21 @@ filtering devices.")
                "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2"
                "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")))))))
     (native-inputs
-     `(("go-github-com-stretchr-testify"
-        ,go-github-com-stretchr-testify)))
+     (list go-github-com-stretchr-testify))
     (propagated-inputs
-     `(("go-github-com-aead-chacha20"
-        ,go-github-com-aead-chacha20)
-       ("go-github-com-blanu-dust"
-        ,go-github-com-blanu-dust)
-       ("go-github-com-deckarep-golang-set"
-        ,go-github-com-deckarep-golang-set)
-       ("go-github-com-kataras-golog"
-        ,go-github-com-kataras-golog)
-       ("go-github-com-mufti1-interconv"
-        ,go-github-com-mufti1-interconv)
-       ("go-github-com-opentracing-opentracing-go"
-        ,go-github-com-opentracing-opentracing-go)
-       ("go-github-com-operatorfoundation-monolith-go"
-        ,go-github-com-operatorfoundation-monolith-go)
-       ("go-github-com-operatorfoundation-obfs4"
-        ,go-github-com-operatorfoundation-obfs4)
-       ("go-github-com-operatorfoundation-shapeshifter-ipc"
-        ,go-github-com-operatorfoundation-shapeshifter-ipc)
-       ("go-github-com-shadowsocks-go-shadowsocks2"
-        ,go-github-com-shadowsocks-go-shadowsocks2)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
-       ("go-golang-org-x-net" ,go-golang-org-x-net)
-       ("go-torproject-org-pluggable-transports-goptlib"
-        ,go-torproject-org-pluggable-transports-goptlib)))
+     (list go-github-com-aead-chacha20
+           go-github-com-blanu-dust
+           go-github-com-deckarep-golang-set
+           go-github-com-kataras-golog
+           go-github-com-mufti1-interconv
+           go-github-com-opentracing-opentracing-go
+           go-github-com-operatorfoundation-monolith-go
+           go-github-com-operatorfoundation-obfs4
+           go-github-com-operatorfoundation-shapeshifter-ipc
+           go-github-com-shadowsocks-go-shadowsocks2
+           go-golang-org-x-crypto
+           go-golang-org-x-net
+           go-torproject-org-pluggable-transports-goptlib))
     (home-page "https://github.com/OperatorFoundation/shapeshifter-transports")
     (synopsis "Go implementation of Pluggable Transports")
     (description "Shapeshifter-Transports is a set of Pluggable Transports
@@ -983,8 +978,7 @@ networks where it would otherwise be blocked or heavily throttled.")
     (arguments
      `(#:import-path "github.com/kataras/golog"))
     (propagated-inputs
-     `(("go-github-com-kataras-pio"
-        ,go-github-com-kataras-pio)))
+     (list go-github-com-kataras-pio))
     (home-page "https://github.com/kataras/golog")
     (synopsis "Logging foundation for Go applications")
     (description "GoLog is a level-based logger written in Go.")
@@ -1033,12 +1027,8 @@ terminals.")
     (arguments
      `(#:import-path "github.com/shadowsocks/go-shadowsocks2"))
     (propagated-inputs
-     `(("go-github-com-riobard-go-bloom"
-        ,go-github-com-riobard-go-bloom)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
-       ("go-golang-org-x-net" ,go-golang-org-x-net)
-       ("go-golang-org-x-sys" ,go-golang-org-x-sys)
-       ("go-golang-org-x-text" ,go-golang-org-x-text)))
+     (list go-github-com-riobard-go-bloom go-golang-org-x-crypto
+           go-golang-org-x-net go-golang-org-x-sys go-golang-org-x-text))
     (home-page "https://github.com/shadowsocks/go-shadowsocks2")
     (synopsis "Shadowsocks tunnel proxy")
     (description "Go-ShadowSocks is a Go implementation of the Shadowsocks tunnel
@@ -1089,7 +1079,7 @@ proxy protocol.")
       (arguments
        `(#:import-path "github.com/aead/chacha20"))
       (propagated-inputs
-       `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+       (list go-golang-org-x-sys))
       (home-page "https://github.com/aead/chacha20")
       (synopsis "ChaCha20 and XChaCha20 stream ciphers")
       (description "ChaCha is a stream cipher family created by Daniel Bernstein.
@@ -1140,8 +1130,7 @@ standardized in RFC 7539.")
     (arguments
      `(#:import-path "github.com/opentracing/opentracing-go"))
     (native-inputs
-     `(("go-github-com-stretchr-testify"
-        ,go-github-com-stretchr-testify)))
+     (list go-github-com-stretchr-testify))
     (home-page "https://github.com/opentracing/opentracing-go")
     (synopsis "OpenTracing API for Go")
     (description "OpenTracing-Go is a Go implementation of the OpenTracing API.")
@@ -1167,8 +1156,7 @@ standardized in RFC 7539.")
        #:unpack-path "github.com/OperatorFoundation/monolith-go"
        #:import-path "github.com/OperatorFoundation/monolith-go/monolith"))
     (propagated-inputs
-     `(("go-github-com-deckarep-golang-set"
-        ,go-github-com-deckarep-golang-set)))
+     (list go-github-com-deckarep-golang-set))
     (home-page "https://github.com/OperatorFoundation/monolith-go")
     (synopsis "Byte sequences library")
     (description "Monolith-Go is a Go library for working with byte sequences.")
@@ -1196,6 +1184,33 @@ standardized in RFC 7539.")
     (description "Set is the set collection for the Go language.")
     (license license:expat)))
 
+(define-public go-github-com-dhowett-go-plist
+  (let ((commit "1454fab16a0642638feb0ae98c41f79eccb2a20a")
+        (revision "1"))
+    (package
+      (name "go-github-com-dhowett-go-plist")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/DHowett/go-plist")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "01c9wmhny2rxywcjipq1xa0xw4qm7yd001239grwxcja3b4n45v8"))))
+      (build-system go-build-system)
+      (arguments `(#:import-path "howett.net/plist"))
+      (inputs
+       (list go-github.com-jessevdk-go-flags go-github-com-kr-pretty
+             go-gopkg-in-check-v1 go-gopkg-in-yaml-v2))
+      (home-page "https://github.com/DHowett/go-plist")
+      (synopsis "Apple property list transcoder")
+      (description "This list transcoder supports encoding/decoding property
+lists (Apple XML, Apple Binary, OpenStep, and GNUStep) from/to arbitrary Go
+types.")
+      (license license:giftware))))
+
 (define-public go-github-com-blanu-dust
   (package
     (name "go-github-com-blanu-dust")
@@ -1277,11 +1292,8 @@ standardized in RFC 7539.")
                "github.com/blanu/Dust/go/v2/interface"
                "github.com/blanu/Dust/go/v2/shaping")))))))
     (propagated-inputs
-     `(("go-github-com-operatorfoundation-ed25519"
-        ,go-github-com-operatorfoundation-ed25519)
-       ("go-github-com-op-go-logging"
-        ,go-github-com-op-go-logging)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
+     (list go-github-com-operatorfoundation-ed25519
+           go-github-com-op-go-logging go-golang-org-x-crypto))
     (home-page "https://github.com/blanu/Dust")
     (synopsis "Censorship-resistant internet transport protocol")
     (description "Dust is an Internet protocol designed to resist a number of
@@ -1478,16 +1490,12 @@ protocol from the Pluggable Transports 2.0 specification.")
                "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4"
                "github.com/OperatorFoundation/obfs4/transports")))))))
     (propagated-inputs
-     `(("go-github-com-dchest-siphash"
-        ,go-github-com-dchest-siphash)
-       ("go-github-com-operatorfoundation-ed25519"
-        ,go-github-com-operatorfoundation-ed25519)
-       ("go-github-com-willscott-goturn"
-        ,go-github-com-willscott-goturn)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
-       ("go-golang-org-x-net" ,go-golang-org-x-net)
-       ("go-torproject-org-pluggable-transports-goptlib"
-        ,go-torproject-org-pluggable-transports-goptlib)))
+     (list go-github-com-dchest-siphash
+           go-github-com-operatorfoundation-ed25519
+           go-github-com-willscott-goturn
+           go-golang-org-x-crypto
+           go-golang-org-x-net
+           go-torproject-org-pluggable-transports-goptlib))
     (home-page "https://github.com/OperatorFoundation/obfs4")
     (synopsis "Network obfourscator to scramble network traffic")
     (description "Obfs4 is a look-like nothing obfuscation protocol that
@@ -1575,7 +1583,7 @@ Go.")
     (arguments
      `(#:import-path "github.com/sevlyar/go-daemon"))
     (propagated-inputs
-     `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+     (list go-golang-org-x-sys))
     (home-page "https://github.com/sevlyar/go-daemon")
     (synopsis "Library for writing system daemons")
     (description "Go-Daemon is a library for writing system daemons in Go.")
@@ -1612,9 +1620,7 @@ Go.")
                (substitute* "src/github.com/keybase/go-ps/process_openbsd.go"
                  (("^// \\+build ignore") "")))))))
       (native-inputs
-       `(("coreutils" ,coreutils)
-         ("go-github-com-stretchr-testify"
-          ,go-github-com-stretchr-testify)))
+       (list coreutils go-github-com-stretchr-testify))
       (home-page "https://github.com/keybase/go-ps")
       (synopsis "Process list library for Go")
       (description "Go-Ps is a library for Go that implements OS-specific APIs
@@ -1815,10 +1821,8 @@ jar struct to manage the cookies added to the cookie jar.")
      '(#:unpack-path "github.com/gizak/termui"
        #:import-path "github.com/gizak/termui/v3"))
     (propagated-inputs
-     `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
-       ("go-github-com-mitchellh-go-wordwrap"
-        ,go-github-com-mitchellh-go-wordwrap)
-       ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)))
+     (list go-github.com-mattn-go-runewidth
+           go-github-com-mitchellh-go-wordwrap go-github.com-nsf-termbox-go))
     (home-page "https://github.com/gizak/termui")
     (synopsis "Terminal dashboard widget Go library")
     (description
@@ -1869,7 +1873,7 @@ mouse, and terminal resizing events.")
     (arguments
      '(#:import-path "github.com/mitchellh/go-wordwrap"))
     (propagated-inputs
-     `(("go-gopkg-in-yaml-v2" ,go-gopkg-in-yaml-v2)))
+     (list go-gopkg-in-yaml-v2))
     (home-page "https://github.com/mitchellh/go-wordwrap")
     (synopsis "Go library for word-wrapping strings")
     (description
@@ -1920,7 +1924,7 @@ generally useful thing to do.")
     (arguments
      '(#:import-path "github.com/daviddengcn/go-colortext"))
     (native-inputs
-     `(("go-github-com-golangplus-testing" ,go-github-com-golangplus-testing)))
+     (list go-github-com-golangplus-testing))
     (synopsis "Change the color of console text and background")
     (description
      "This is a package to change the color of the text and background in the
@@ -1947,7 +1951,7 @@ Under Windows, the console APIs are used.  Otherwise, ANSI texts are output.")
     (arguments
      '(#:import-path "github.com/golangplus/testing"))
     (propagated-inputs
-     `(("go-github-com-golangplus-fmt" ,go-github-com-golangplus-fmt)))
+     (list go-github-com-golangplus-fmt))
     (synopsis "Additions to Go's standard testing package")
     (description "This package provides additions to Go's stdlib testing.")
     (license license:bsd-3)))
@@ -1970,7 +1974,7 @@ Under Windows, the console APIs are used.  Otherwise, ANSI texts are output.")
     (arguments
      '(#:import-path "github.com/leodido/go-urn"))
     (native-inputs
-     `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
+     (list go-github-com-stretchr-testify))
     (synopsis "Parser for uniform resource names as seen on RFC 2141")
     (description
      "This package implements a parser for uniform resource names (URN) as
@@ -2077,7 +2081,7 @@ implemented features include
     (arguments
      '(#:import-path "github.com/go-playground/universal-translator"))
     (propagated-inputs
-     `(("go-github-com-go-playground-locales" ,go-github-com-go-playground-locales)))
+     (list go-github-com-go-playground-locales))
     (synopsis "Translator using Unicode CLDR data and pluralization rules")
     (description
      "This package offers an Internalization Translator for Go using
@@ -2115,12 +2119,10 @@ professionally translated
     (arguments
      '(#:import-path "gopkg.in/go-playground/validator.v9"))
     (native-inputs
-     `(("go-gopkg-in-go-playground-assert-v1"
-        ,go-gopkg-in-go-playground-assert-v1)))
+     (list go-gopkg-in-go-playground-assert-v1))
     (propagated-inputs
-     `(("go-github-com-go-playground-universal-translator"
-        ,go-github-com-go-playground-universal-translator)
-       ("go-github-com-leodido-go-urn" ,go-github-com-leodido-go-urn)))
+     (list go-github-com-go-playground-universal-translator
+           go-github-com-leodido-go-urn))
     (synopsis "Validator for structs and individual fields based on tags")
     (description
      "This package implements value validations for structs and individual
@@ -2165,10 +2167,9 @@ web framework
      '(#:import-path "github.com/aws/aws-sdk-go/aws"
        #:unpack-path "github.com/aws/aws-sdk-go"))
     (propagated-inputs
-     `(("go-github-com-go-sql-driver-mysql" ,go-github-com-go-sql-driver-mysql)
-       ("go-github-com-jmespath-go-jmespath" ,go-github-com-jmespath-go-jmespath)
-       ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
-       ("go-golang-org-x-net" ,go-golang-org-x-net)))
+     (list go-github-com-go-sql-driver-mysql
+           go-github-com-jmespath-go-jmespath go-github-com-pkg-errors
+           go-golang-org-x-net))
     (home-page "https://github.com/aws/aws-sdk-go")
     (synopsis "Library to access Amazon Web Services (AWS)")
     (description
@@ -2275,7 +2276,7 @@ per-goroutine.")
     (arguments
      `(#:import-path "github.com/saracen/walker"))
     (inputs
-     `(("go-golang-org-x-sync" ,go-golang-org-x-sync)))
+     (list go-golang-org-x-sync))
     (home-page "https://github.com/saracen/walker")
     (synopsis "Faster, parallel version of Go's filepath.Walk")
     (license license:expat)
@@ -2399,7 +2400,7 @@ Go programming language.")
                       ".*\\.gz$"))
                #t)))))
       (propagated-inputs
-       `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+       (list go-golang-org-x-sys))
       (synopsis "Supplementary cryptographic libraries in Go")
       (description "This package provides supplementary cryptographic libraries
 for the Go language.")
@@ -2614,7 +2615,7 @@ time.")
       (arguments
        `(#:import-path "golang.org/x/oauth2"))
       (propagated-inputs
-       `(("go-golang-org-x-net" ,go-golang-org-x-net)))
+       (list go-golang-org-x-net))
       (home-page "https://go.googlesource.com/oauth2")
       (synopsis "Client implementation of the OAuth 2.0 spec")
       (description "This package contains a client implementation for OAuth 2.0
@@ -2645,6 +2646,41 @@ time.")
       (home-page "https://godoc.org/golang.org/x/xerrors")
       (license license:bsd-3))))
 
+(define-public go-golang-org-x-mod
+  (let ((commit "0f08993efd8a8ec67e75bcccf86b0e1569b0ab0a")
+        (revision "0"))
+    (package
+      (name "go-golang-org-x-mod")
+      (version (git-version "0.5.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/golang/mod")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0pl0jc5jvg7hxj4z66zg6kglnq5g7li09f3k9klwvyr4jx5dw88k"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "golang.org/x/mod/"
+         #:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           ;; Source-only package
+           (delete 'build))))
+      (home-page "https://golang.org/x/mod")
+      (synopsis "Tools to work directly with Go module mechanics")
+      (description
+       "This repository holds packages for writing tools that work directly
+with Go module mechanics.  That is, it is for direct manipulation of Go modules
+themselves.
+
+The specific case of loading packages should still be done by invoking the
+@command{go} command, which remains the single point of truth for package
+loading algorithms.")
+      (license license:bsd-3))))
+
 (define-public go-github-com-burntsushi-toml
   (package
     (name "go-github-com-burntsushi-toml")
@@ -2688,8 +2724,7 @@ is similar to Go's standard library @code{json} and @code{xml} package.")
       (arguments
        '(#:import-path "github.com/getsentry/raven-go"))
       (propagated-inputs
-       `(("go-github-com-certifi-gocertifi" ,go-github-com-certifi-gocertifi)
-         ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
+       (list go-github-com-certifi-gocertifi go-github-com-pkg-errors))
       (home-page "https://github.com/getsentry/raven-go")
       (synopsis "Sentry client in Go")
       (description "This package is a Go client API for the Sentry event/error
@@ -2976,41 +3011,6 @@ with the HTTP protocol definition.")
 API service accounts for Go.")
     (license license:asl2.0)))
 
-(define-public go-github-com-google-gmail-oauth2-tools-go-sendgmail
-  (let ((commit "e3229155a4037267ce40f1a3a681f53221aa4d8d")
-        (revision "0"))
-    (package
-      (name "go-github-com-google-gmail-oauth2-tools-go-sendgmail")
-      (version (git-version "0.0.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/google/gmail-oauth2-tools")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1cxpkiaajhq1gjsg47r2b5xgck0r63pvkyrkm7af8c8dw7fyn64f"))))
-      (propagated-inputs
-       `(("go-golang-org-x-oauth2" ,go-golang-org-x-oauth2)
-         ("go-cloud-google-com-go-compute-metadata"
-          ,go-cloud-google-com-go-compute-metadata)))
-      (build-system go-build-system)
-      (arguments
-       '(#:unpack-path "github.com/google/gmail-oauth2-tools"
-         #:import-path "github.com/google/gmail-oauth2-tools/go/sendgmail"))
-      (home-page
-       "https://github.com/google/gmail-oauth2-tools/tree/master/go/sendgmail")
-      (synopsis
-       "Sendmail-compatible tool for using Gmail with @code{git send-email}")
-      (description
-       "The @command{sendgmail} command provides a minimal sendmail-compatible
-front-end that connects to Gmail using OAuth2.  It is specifically designed
-for use with @code{git send-email}.  The command needs a Gmail API key to
-function.")
-      (license license:asl2.0))))
-
 (define-public go-github-com-google-cadvisor
   (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
         (revision "0"))
@@ -3279,7 +3279,7 @@ middleware for Go web applications and services.")
     (arguments
      `(#:import-path "github.com/spf13/cast"))
     (native-inputs
-     `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
+     (list go-github-com-stretchr-testify))
     (home-page "https://github.com/spf13/cast")
     (synopsis "Safe and easy casting from one type to another in Go")
     (description "Safe and easy casting from one type to another in Go")
@@ -3328,7 +3328,7 @@ applications as well as a program to generate applications and command files.")
     (arguments
      `(#:import-path "github.com/spf13/jwalterweatherman"))
     (native-inputs
-     `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
+     (list go-github-com-stretchr-testify))
     (home-page "https://github.com/spf13/jwalterweatherman")
     (synopsis "Go logging library")
     (description "Go logging library")
@@ -3393,7 +3393,7 @@ GNU extensions} to the POSIX recommendations for command-line options.")
        ("gopkg.in/ini.v1" ,go-gopkg-in-ini-v1)
        ("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2)))
     (native-inputs
-     `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
+     (list go-github-com-stretchr-testify))
     (home-page "https://github.com/spf13/viper")
     (synopsis "Go configuration with fangs")
     (description
@@ -3517,7 +3517,7 @@ application's http.Handlers.")
     (arguments
      `(#:import-path "github.com/subosito/gotenv"))
     (native-inputs
-     `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
+     (list go-github-com-stretchr-testify))
     (home-page "https://github.com/subosito/gotenv")
     (synopsis "Go library for loading environment variables from files")
     (description "Go library for loading environment variables from files")
@@ -3539,11 +3539,9 @@ application's http.Handlers.")
          "0rvqzic2zz7fpxyizmqxwmhv1m52ii9bgxnqa6km8wsa0l08wh42"))))
     (build-system go-build-system)
     (propagated-inputs
-     `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)
-       ("go-github-com-pmezard-go-difflib" ,go-github-com-pmezard-go-difflib)
-       ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
-       ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+     (list go-github-com-davecgh-go-spew go-github-com-pmezard-go-difflib
+           go-github-com-stretchr-testify go-golang-org-x-crypto
+           go-golang-org-x-sys))
     (arguments
      '(#:import-path "github.com/sirupsen/logrus"))
     (home-page "https://github.com/sirupsen/logrus")
@@ -3569,7 +3567,7 @@ compatible with the standard library logger.")
     (arguments
      `(#:import-path "github.com/rifflock/lfshook"))
     (propagated-inputs
-     `(("go-github-com-sirupsen-logrus" ,go-github-com-sirupsen-logrus)))
+     (list go-github-com-sirupsen-logrus))
     (home-page "https://github.com/rifflock/lfshook")
     (synopsis "Local File System hook for Logrus logger")
     (description "This package provides a hook for Logrus to write directly to
@@ -3624,8 +3622,7 @@ finding resources located relative to the executable file.")
            "0x0cn7l5gda2khsfypix7adxd5yqighzn04mxjw6hc4ayrh7his5"))))
       (build-system go-build-system)
       (native-inputs
-       `(("go-github-com-kardianos-osext"
-          ,go-github-com-kardianos-osext)))
+       (list go-github-com-kardianos-osext))
       (arguments
        '(#:tests? #f                ;FIXME tests fail: Service is not running.
          #:import-path "github.com/ayufan/golang-kardianos-service"))
@@ -3656,11 +3653,8 @@ SysVinit, and more.")
            "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
       (build-system go-build-system)
       (native-inputs
-       `(("go-golang-org-x-sys" ,go-golang-org-x-sys)
-         ("go-github-com-sirupsen-logrus"
-          ,go-github-com-sirupsen-logrus)
-         ("go-golang-org-x-crypto"
-          ,go-golang-org-x-crypto)))
+       (list go-golang-org-x-sys go-github-com-sirupsen-logrus
+             go-golang-org-x-crypto))
       (arguments
        '(#:import-path "github.com/docker/distribution"
          #:phases
@@ -3782,7 +3776,7 @@ which satisfies the cron expression.")
     (arguments
      '(#:import-path "gopkg.in/check.v1"))
     (propagated-inputs
-     `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
+     (list go-github-com-kr-pretty))
     (home-page "https://gopkg.in/check.v1")
     (synopsis "Test framework for the Go language")
     (description "This package provides a test library for the Go language.")
@@ -3815,7 +3809,7 @@ which satisfies the cron expression.")
 (define-public go-gopkg-in-yaml-v2
   (package
     (name "go-gopkg-in-yaml-v2")
-    (version "2.2.2")
+    (version "2.4.0")
     (source
       (origin
         (method git-fetch)
@@ -3825,12 +3819,23 @@ which satisfies the cron expression.")
         (file-name (git-file-name name version))
         (sha256
          (base32
-          "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"))))
+          "1pbmrpj7gcws34g8vwna4i2nhm9p6235piww36436xhyaa10cldr"))
+        (modules '((guix build utils)))
+        (snippet
+         '(begin
+            ;; https://github.com/go-yaml/yaml/issues/441 and
+            ;; https://github.com/go-yaml/yaml/pull/442
+            ;; Don't assume 64-bit wide integers
+            (substitute* "decode_test.go"
+              (("bin: (-0b1000000000000000000000000000000000000000000000000000000000000000)" all number)
+               (string-append "int64_min_base2: " number))
+              (("map\\[string\\]interface\\{\\}\\{\"bin\": -9223372036854775808\\}")
+               "map[string]int64{\"int64_min_base2\": math.MinInt64}"))))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "gopkg.in/yaml.v2"))
     (native-inputs
-     `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
+     (list go-gopkg-in-check-v1))
     (home-page "https://gopkg.in/yaml.v2")
     (synopsis "YAML reader and writer for the Go language")
     (description
@@ -3855,7 +3860,7 @@ values.")
     (arguments
      '(#:import-path "gopkg.in/yaml.v3"))
     (native-inputs
-     `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
+     (list go-gopkg-in-check-v1))
     (home-page "https://gopkg.in/yaml.v3")
     (synopsis "YAML reader and writer for the Go language")
     (description
@@ -3880,7 +3885,7 @@ The yaml package supports most of YAML 1.2, but preserves some behavior from
          "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali"))))
     (build-system go-build-system)
     (propagated-inputs
-     `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+     (list go-golang-org-x-sys))
     (arguments
      '(#:import-path "github.com/mattn/go-isatty"))
     (home-page "https://github.com/mattn/go-isatty")
@@ -3907,8 +3912,7 @@ terminal.")
          "0q34zqwbnls72md8q8mhj368s7p3i4xspvs3rk8fs76s0pn7dr2l"))))
     (build-system go-build-system)
     (native-inputs
-     `(("go-github-com-mattn-go-isatty"
-        ,go-github-com-mattn-go-isatty)))
+     (list go-github-com-mattn-go-isatty))
     (arguments
      '(#:import-path "github.com/mattn/go-colorable"))
     (synopsis "Handle ANSI color escapes on Windows")
@@ -3960,10 +3964,7 @@ makes it possible to handle ANSI color escapes on Windows.")
            "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
       (build-system go-build-system)
       (native-inputs
-       `(("go-github-com-mattn-go-isatty"
-          ,go-github-com-mattn-go-isatty)
-         ("go-github-com-mattn-go-colorable"
-          ,go-github-com-mattn-go-colorable)))
+       (list go-github-com-mattn-go-isatty go-github-com-mattn-go-colorable))
       (arguments
        '(#:import-path "github.com/mgutz/ansi"))
       (home-page "https://github.com/mgutz/ansi")
@@ -3995,7 +3996,7 @@ generate ANSI colored strings.")
       ;; be built again.  Thus its CGO requirements must be made available in
       ;; the environment, that is, they must be propagated.
       (propagated-inputs
-       `(("lua" ,lua)))
+       (list lua))
       (arguments
        `(#:unpack-path "github.com/aarzilli/golua"
          #:import-path "github.com/aarzilli/golua/lua"
@@ -4037,8 +4038,7 @@ run a Lua virtual machine.")
            "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm"))))
       (build-system go-build-system)
       (native-inputs
-       `(("lua" ,lua)
-         ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
+       (list lua go-github-com-aarzilli-golua))
       (arguments
        `(#:unpack-path "gitlab.com/ambrevar/golua"
          #:import-path "gitlab.com/ambrevar/golua/unicode"
@@ -4130,7 +4130,7 @@ similar word.")
            "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c"))))
       (build-system go-build-system)
       (native-inputs
-       `(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
+       (list go-github-com-aarzilli-golua))
       (arguments
        `(#:tests? #f                    ; Upstream tests are broken.
          #:import-path "github.com/stevedonovan/luar"))
@@ -4171,7 +4171,7 @@ be performed.")
            "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4"))))
       (build-system go-build-system)
       (native-inputs
-       `(("go-github-com-kr-text" ,go-github-com-kr-text)))
+       (list go-github-com-kr-text))
       (arguments
        `(#:tests? #f                    ; Upstream tests seem to be broken.
          #:import-path "github.com/michiwend/golang-pretty"))
@@ -4205,8 +4205,7 @@ functions in packages @code{fmt} and @code{log}.")
            "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn"))))
       (build-system go-build-system)
       (native-inputs
-       `(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty)
-         ("go-github-com-kr-text" ,go-github-com-kr-text)))
+       (list go-github-com-michiwend-golang-pretty go-github-com-kr-text))
       (arguments
        `(#:import-path "github.com/michiwend/gomusicbrainz"))
       (home-page "https://github.com/michiwend/gomusicbrainz")
@@ -4238,8 +4237,7 @@ and lookup requests.  Browse requests are not supported yet.")
       ;; be built again.  Thus its CGO requirements must be made available in
       ;; the environment, that is, they must be propagated.
       (propagated-inputs
-       `(("pkg-config" ,pkg-config)
-         ("taglib" ,taglib)))
+       (list pkg-config taglib))
       (arguments
        `(#:import-path "github.com/wtolson/go-taglib"
          ;; Tests don't pass "vet" on Go since 1.11.  See
@@ -4404,7 +4402,7 @@ implementing the same interface.")
        '(#:unpack-path "github.com/btcsuite/btcd"
          #:import-path "github.com/btcsuite/btcd/btcec"))
       (native-inputs
-       `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)))
+       (list go-github-com-davecgh-go-spew))
       (home-page "https://github.com/btcsuite/btcd")
       (synopsis "Elliptic curve cryptography to work with Bitcoin")
       (description "Package @command{btcec} implements elliptic curve
@@ -4475,10 +4473,8 @@ Architecture Processors\" by J. Guilford et al.")
       (arguments
        '(#:import-path "github.com/libp2p/go-libp2p-crypto"))
       (native-inputs
-       `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
-         ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
-         ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
-         ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)))
+       (list go-golang-org-x-crypto go-github-com-btcsuite-btcd-btcec
+             go-github-com-gogo-protobuf go-github-com-minio-sha256-simd))
       (home-page
        "https://github.com/libp2p/go-libp2p-crypto")
       (synopsis "Various cryptographic utilities used by IPFS")
@@ -4642,12 +4638,12 @@ required by Go's standard Hash interface.")
       (arguments
        '(#:import-path "github.com/multiformats/go-multihash"))
       (native-inputs
-       `(("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
-         ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
-         ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
-         ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
-         ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
-         ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
+       (list go-github-com-mr-tron-base58
+             go-github-com-gxed-hashland-keccakpg
+             go-github-com-minio-blake2b-simd
+             go-github-com-minio-sha256-simd
+             go-github-com-spaolacci-murmur3
+             go-golang-org-x-crypto))
       (home-page "https://github.com/multiformats/go-multihash")
       (synopsis "Multihash implementation in Go")
       (description "Multihash implementation in Go.")
@@ -4673,16 +4669,16 @@ required by Go's standard Hash interface.")
       (arguments
        '(#:import-path "github.com/libp2p/go-libp2p-peer"))
       (native-inputs
-       `(("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
-         ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
-         ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
-         ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
-         ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
-         ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
-         ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
-         ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
-         ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
-         ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
+       (list go-github-com-libp2p-go-libp2p-crypto
+             go-github-com-gogo-protobuf
+             go-github-com-minio-sha256-simd
+             go-github-com-minio-blake2b-simd
+             go-github-com-btcsuite-btcd-btcec
+             go-github-com-mr-tron-base58
+             go-github-com-multiformats-go-multihash
+             go-github-com-gxed-hashland-keccakpg
+             go-github-com-spaolacci-murmur3
+             go-golang-org-x-crypto))
       (home-page "https://github.com/libp2p/go-libp2p-peer")
       (synopsis "PKI based identities for use in go-libp2p")
       (description "PKI based identities for use in @command{go-libp2p}.")
@@ -4733,19 +4729,19 @@ required by Go's standard Hash interface.")
       (arguments
        '(#:import-path "github.com/libp2p/go-libp2p-metrics"))
       (native-inputs
-       `(("go-github-com-libp2p-go-flow-metrics" ,go-github-com-libp2p-go-flow-metrics)
-         ("go-github-com-libp2p-go-libp2p-peer" ,go-github-com-libp2p-go-libp2p-peer)
-         ("go-github-com-libp2p-go-libp2p-protocol" ,go-github-com-libp2p-go-libp2p-protocol)
-         ("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
-         ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
-         ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
-         ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
-         ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
-         ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
-         ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
-         ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
-         ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
-         ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
+       (list go-github-com-libp2p-go-flow-metrics
+             go-github-com-libp2p-go-libp2p-peer
+             go-github-com-libp2p-go-libp2p-protocol
+             go-github-com-libp2p-go-libp2p-crypto
+             go-github-com-mr-tron-base58
+             go-github-com-multiformats-go-multihash
+             go-github-com-btcsuite-btcd-btcec
+             go-github-com-gogo-protobuf
+             go-github-com-gxed-hashland-keccakpg
+             go-github-com-minio-blake2b-simd
+             go-github-com-minio-sha256-simd
+             go-github-com-spaolacci-murmur3
+             go-golang-org-x-crypto))
       (home-page "https://github.com/libp2p/go-libp2p-metrics")
       (synopsis "Connection wrapper for go-libp2p that provides bandwidth metrics")
       (description "A connection wrapper for @command{go-libp2p} that provides bandwidth
@@ -4855,7 +4851,7 @@ unknown structures such as those decoded from JSON.")
     (arguments
      `(#:import-path "github.com/mitchellh/copystructure"))
     (native-inputs
-     `(("go-github-com-mitchellh-reflectwalk" ,go-github-com-mitchellh-reflectwalk)))
+     (list go-github-com-mitchellh-reflectwalk))
     (home-page "https://github.com/mitchellh/copystructure")
     (synopsis "Go library for decoding deep copying values")
     (description "@code{copystructure} is a Go library for deep copying values
@@ -4887,13 +4883,13 @@ references.")
        '(#:import-path
          "github.com/multiformats/go-multiaddr"))
       (native-inputs
-       `(("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
-         ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
-         ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
-         ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
-         ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
-         ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
-         ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
+       (list go-github-com-multiformats-go-multihash
+             go-github-com-gxed-hashland-keccakpg
+             go-github-com-minio-blake2b-simd
+             go-github-com-minio-sha256-simd
+             go-github-com-mr-tron-base58
+             go-github-com-spaolacci-murmur3
+             go-golang-org-x-crypto))
       (home-page "https://github.com/multiformats/go-multiaddr")
       (synopsis "Composable and future-proof network addresses")
       (description "Multiaddr is a standard way to represent addresses that
@@ -4930,14 +4926,14 @@ does the following:
                ;; TODO: Tests fail because they try to access the network.
                #:tests? #f)))
       (native-inputs
-       `(("go-github-com-multiformats-go-multiaddr" ,go-github-com-multiformats-go-multiaddr)
-         ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
-         ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
-         ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
-         ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
-         ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
-         ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
-         ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
+       (list go-github-com-multiformats-go-multiaddr
+             go-github-com-multiformats-go-multihash
+             go-github-com-gxed-hashland-keccakpg
+             go-github-com-minio-blake2b-simd
+             go-github-com-minio-sha256-simd
+             go-github-com-mr-tron-base58
+             go-github-com-spaolacci-murmur3
+             go-golang-org-x-crypto))
       (home-page "https://github.com/multiformats/go-multiaddr-net")
       (synopsis "Multiaddress net tools")
       (description "This package provides Multiaddr specific versions of
@@ -5024,7 +5020,7 @@ as conversion to and from @command{net.Addr}.")
        '(#:import-path
          "github.com/sabhiram/go-gitignore"))
       (native-inputs
-       `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
+       (list go-github-com-stretchr-testify))
       (home-page "https://github.com/sabhiram/go-gitignore")
       (synopsis "Gitignore parser for Go")
       (description "A @command{.gitignore} parser for Go.")
@@ -5049,7 +5045,7 @@ as conversion to and from @command{net.Addr}.")
     (arguments
      '(#:import-path "github.com/urfave/cli"))
     (propagated-inputs
-     `(("go-github-com-go-md2man" ,go-github-com-go-md2man)))
+     (list go-github-com-go-md2man))
     (home-page "https://github.com/urfave/cli")
     (synopsis "Simple, fast, and fun package for building command line apps in Go")
     (description "@command{cli} is a simple, fast, and fun package for
@@ -5099,7 +5095,7 @@ fast and distributable command line applications in an expressive way.")
     (arguments
      '(#:import-path "github.com/cpuguy83/go-md2man"))
     (propagated-inputs
-     `(("go-github-com-russross-blackfriday" ,go-github-com-russross-blackfriday)))
+     (list go-github-com-russross-blackfriday))
     (home-page "https://github.com/cpuguy83/go-md2man")
     (synopsis "Convert markdown into roff")
     (description "Go-md2man is a Go program that converts markdown to roff for
@@ -5124,10 +5120,9 @@ the purpose of building man pages.")
     (arguments
      '(#:import-path "github.com/russross/blackfriday"))
     (propagated-inputs
-     `(("go-github-com-shurcool-sanitized-anchor-name"
-        ,go-github-com-shurcool-sanitized-anchor-name)))
+     (list go-github-com-shurcool-sanitized-anchor-name))
     (native-inputs
-     `(("go-github-com-pmezard-go-difflib" ,go-github-com-pmezard-go-difflib)))
+     (list go-github-com-pmezard-go-difflib))
     (home-page "https://github.com/russross/blackfriday")
     (synopsis "Markdown processor in Go")
     (description "Blackfriday is a Markdown processor in Go.")
@@ -5319,7 +5314,7 @@ format in Go.")
                 "0vzfz06y9q8gs2nxx0kys0591vzp78k0fvpb8digi5n15h3b25hy"))))
     (build-system go-build-system)
     (propagated-inputs
-     `(("go-github-com-kr-text" ,go-github-com-kr-text)))
+     (list go-github-com-kr-text))
     (arguments
      '(#:import-path "github.com/kr/pretty"))
     (synopsis "Pretty printer for Go values")
@@ -5441,7 +5436,7 @@ golang's database/sql package.")
     (arguments
      '(#:import-path "github.com/lucasb-eyer/go-colorful"))
     (native-inputs
-     `(("go-golang-org-sql-mock" ,go-golang-org-sql-mock)))
+     (list go-golang-org-sql-mock))
     (synopsis "Convert between colorspaces and generate colors")
     (description "This package implements Go's @code{color.Color} interface
 and provides a means of converting colors stored as RGB to various
@@ -5467,7 +5462,7 @@ colorspaces.")
     (arguments
      '(#:import-path "github.com/gdamore/encoding"))
     (inputs
-     `(("go-golang-org-x-text" ,go-golang-org-x-text)))
+     (list go-golang-org-x-text))
     (home-page "https://github.com/gdamore/encoding")
     (synopsis "Provide encodings missing from Go")
     (description "This package provides useful encodings not included in the
@@ -5506,10 +5501,8 @@ non-UTF-friendly sources.")
                            (find-files out "\\.gz$"))
                  #t))))))
       (inputs
-       `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
-         ("go-golang-org-colorful" ,go-golang-org-colorful)
-         ("go-golang-org-x-text" ,go-golang-org-x-text)
-         ("go-github-com-gdamore-encoding" ,go-github-com-gdamore-encoding)))
+       (list go-github.com-mattn-go-runewidth go-golang-org-colorful
+             go-golang-org-x-text go-github-com-gdamore-encoding))
       (home-page "https://github.com/gdamore/tcell")
       (synopsis "Provide a cell-based view for text terminals")
       (description "This package includes a full parser and expander for
@@ -5545,9 +5538,8 @@ systems.")
                  (for-each make-file-writable
                            (find-files out "\\.gz$"))))))))
       (propagated-inputs
-       `(("go-golang-org-x-term" ,go-golang-org-x-term)
-         ("go-golang-org-x-sys" ,go-golang-org-x-sys)
-         ,@(package-inputs go-github-com-gdamore-tcell)))))
+       (modify-inputs (package-inputs go-github-com-gdamore-tcell)
+         (prepend go-golang-org-x-term go-golang-org-x-sys)))))
 
 (define-public go-github-com-mattn-go-shellwords
   (let ((commit "2444a32a19f450fabaa0bb3e96a703f15d9a97d2")
@@ -5646,7 +5638,7 @@ mutex, simply ignore the RLock/RUnlock functions.")
        ;; The test suite requires networking.
        #:tests? #f))
     (propagated-inputs
-     `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
+     (list go-golang-org-x-crypto))
     (synopsis "TLS 1.3 with QUIC in Go")
     (description "This package provides @code{qtls}, a QUIC-capable variant of
 the Go standard library's TLS 1.3 implementation.")
@@ -5692,7 +5684,7 @@ internal ChaCha20 package.")
     (arguments
      '(#:import-path "github.com/cheekybits/genny"))
     (propagated-inputs
-     `(("go-golang-org-x-tools" ,go-golang-org-x-tools)))
+     (list go-golang-org-x-tools))
     (synopsis "Generics for Go")
     (description "This package provides @code{genny}, a Go language
 implementation of generics.")
@@ -5718,11 +5710,10 @@ implementation of generics.")
        ;; XXX More packages required...
        #:tests? #f))
     (propagated-inputs
-     `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
-       ("go-github-com-cheekybits-genny" ,go-github-com-cheekybits-genny)
-       ("go-github-com-marten-seemann-chacha20" ,go-github-com-marten-seemann-chacha20)
-       ("go-github-com-marten-seemann-qtls" ,go-github-com-marten-seemann-qtls)
-       ("go-github-com-golang-protobuf-proto" ,go-github-com-golang-protobuf-proto)))
+     (list go-golang-org-x-crypto go-github-com-cheekybits-genny
+           go-github-com-marten-seemann-chacha20
+           go-github-com-marten-seemann-qtls
+           go-github-com-golang-protobuf-proto))
     (synopsis "QUIC in Go")
     (description "This package provides a Go language implementation of the QUIC
 network protocol.")
@@ -5746,7 +5737,7 @@ network protocol.")
     (arguments
      '(#:import-path "github.com/francoispqt/gojay"))
     (propagated-inputs
-     `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
+     (list go-github-com-stretchr-testify))
     (synopsis "JSON encoder/decoder with powerful stream API for Golang")
     (description "GoJay is a performant JSON encoder/decoder for Golang.  It has
 a simple API and doesn't use reflection.  It relies on small interfaces to
@@ -5892,7 +5883,7 @@ fnmatch gist (https://gist.github.com/kballard/272720).")
       (arguments
        '(#:import-path "github.com/ddevault/go-libvterm"))
       (propagated-inputs
-       `(("go-github-com-mattn-go-pointer" ,go-github-com-mattn-go-pointer)))
+       (list go-github-com-mattn-go-pointer))
       (home-page "https://github.com/ddevault/go-libvterm")
       (synopsis "Go binding to libvterm")
       (description
@@ -5917,7 +5908,7 @@ fnmatch gist (https://gist.github.com/kballard/272720).")
     (arguments
      '(#:import-path "github.com/emersion/go-imap"))
     (native-inputs
-     `(("go-golang-org-x-text" ,go-golang-org-x-text)))
+     (list go-golang-org-x-text))
     (home-page "https://github.com/emersion/go-imap")
     (synopsis "IMAP4rev1 library written in Go")
     (description "This package provides an IMAP4rev1 library written in Go.  It
@@ -5968,9 +5959,8 @@ can be used to build a client and/or a server.")
       (arguments
        '(#:import-path "github.com/emersion/go-imap-idle"))
       (native-inputs
-       `(("go-github-com-emersion-go-imap" ,go-github-com-emersion-go-imap)
-         ("go-github-com-emersion-go-sasl" ,go-github-com-emersion-go-sasl)
-         ("go-golang-org-x-text" ,go-golang-org-x-text)))
+       (list go-github-com-emersion-go-imap go-github-com-emersion-go-sasl
+             go-golang-org-x-text))
       (home-page "https://github.com/emersion/go-imap-idle")
       (synopsis "IDLE extension for go-imap")
       (description "This package provides an IDLE extension for go-imap.")
@@ -6016,7 +6006,7 @@ colorized or SGR defined output to the standard output.")
      '(#:import-path "github.com/google/go-cmp/cmp"
        #:unpack-path "github.com/google/go-cmp"))
     (propagated-inputs
-     `(("go-golang-org-x-xerrors" ,go-golang-org-x-xerrors)))
+     (list go-golang-org-x-xerrors))
     (synopsis "Determine equality of values in Go")
     (description "This package provides a more powerful and safer
 alternative to @code{reflect.DeepEqual} for comparing whether two values
@@ -6116,8 +6106,7 @@ into URL query parameters.")
        #:import-path "github.com/google/go-github/v26/github"
        #:unpack-path "github.com/google/go-github/v26"))
     (native-inputs
-     `(("go-github-com-google-go-querystring" ,go-github-com-google-go-querystring)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
+     (list go-github-com-google-go-querystring go-golang-org-x-crypto))
     (home-page "https://github.com/google/go-github/")
     (synopsis "Client library for accessing the GitHub API v3")
     (description "@code{go-github} is a Go client library for accessing the
@@ -6205,9 +6194,7 @@ common task.")
 (define-public go-gotest-tools-internal-format
   (package (inherit (go-gotest-tools-package "internal/format"))
     (native-inputs
-     `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
-       ("go-github-com-google-go-cmp-cmp"
-        ,go-github-com-google-go-cmp-cmp)))
+     (list go-github-com-pkg-errors go-github-com-google-go-cmp-cmp))
     (synopsis "Formats messages for use with gotest-tools")
     (description "This package provides a way to format messages for use
 with gotest-tools.")))
@@ -6221,8 +6208,7 @@ with gotest-tools.")))
 (define-public go-gotest-tools-internal-source
   (package (inherit (go-gotest-tools-package "internal/source"))
     (native-inputs
-     `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
-       ("go-github-com-google-go-cmp-cmp" ,go-github-com-google-go-cmp-cmp)))
+     (list go-github-com-pkg-errors go-github-com-google-go-cmp-cmp))
     (synopsis "Source code AST formatters for gotest-tools")
     (description "This package provides source code AST formatters for
 gotest-tools.")))
@@ -6237,9 +6223,7 @@ gotest-tools.")))
     ;(propagated-inputs
     ; `(("go-gotest-tools-internal-format" ,go-gotest-tools-internal-format)))
     (native-inputs
-     `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
-       ("go-github-com-google-go-cmp-cmp"
-        ,go-github-com-google-go-cmp-cmp)))
+     (list go-github-com-pkg-errors go-github-com-google-go-cmp-cmp))
     (synopsis "Compare values and fail a test when a comparison fails")
     (description "This package provides a way to compare values and fail a
 test when a comparison fails.")
@@ -6263,29 +6247,22 @@ test when a comparison fails.")
     (arguments
      '(#:import-path "gotest.tools/gotestsum"))
     (native-inputs
-     `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
-       ("go-golang.org-x-sync-errgroup" ,go-golang.org-x-sync-errgroup)
-       ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
-       ("go-github-com-sirupsen-logrus"
-        ,go-github-com-sirupsen-logrus)
-       ("go-github-com-spf13-pflag" ,go-github-com-spf13-pflag)
-       ("go-github-com-jonboulle-clockwork"
-        ,go-github-com-jonboulle-clockwork)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
-       ("go-gotest-tools-assert" ,go-gotest-tools-assert)
-       ("go-github-com-google-go-cmp-cmp"
-        ,go-github-com-google-go-cmp-cmp)
-       ;; TODO: This would be better as a propagated-input of
-       ;; go-gotest-tools-assert, but that does not work for
-       ;; some reason.
-       ("go-gotest-tools-internal-format"
-        ,go-gotest-tools-internal-format)
-       ("go-gotest-tools-internal-difflib"
-        ,go-gotest-tools-internal-difflib)
-       ("go-gotest-tools-internal-source"
-        ,go-gotest-tools-internal-source)
-       ("go-github-com-google-go-cmp-cmp"
-        ,go-github-com-google-go-cmp-cmp)))
+     (list go-github-com-fatih-color
+           go-golang.org-x-sync-errgroup
+           go-github-com-pkg-errors
+           go-github-com-sirupsen-logrus
+           go-github-com-spf13-pflag
+           go-github-com-jonboulle-clockwork
+           go-golang-org-x-crypto
+           go-gotest-tools-assert
+           go-github-com-google-go-cmp-cmp
+           ;; TODO: This would be better as a propagated-input of
+           ;; go-gotest-tools-assert, but that does not work for
+           ;; some reason.
+           go-gotest-tools-internal-format
+           go-gotest-tools-internal-difflib
+           go-gotest-tools-internal-source
+           go-github-com-google-go-cmp-cmp))
     (synopsis "Go test runner with output optimized for humans")
     (description "This package provides a @code{go test} runner with output
 optimized for humans, JUnit XML for CI integration, and a summary of the
@@ -6412,8 +6389,7 @@ efficient space usage.")
                (("spaolacci") "twmb"))
              #t)))))
     (propagated-inputs
-     `(("go-github-com-twmb-murmur3" ,go-github-com-twmb-murmur3)
-       ("go-github-com-willf-bitset" ,go-github-com-willf-bitset)))
+     (list go-github-com-twmb-murmur3 go-github-com-willf-bitset))
     (synopsis "Bloom filters in Go")
     (description "This package provides a Go implementation of bloom filters,
 based on murmurhash.")
@@ -6465,7 +6441,7 @@ characters with their ASCII approximations.")
       (arguments
        `(#:import-path "github.com/golang/freetype"))
       (propagated-inputs
-       `(("go-golang-org-x-image" ,go-golang-org-x-image)))
+       (list go-golang-org-x-image))
       (home-page "https://github.com/golang/freetype")
       (synopsis "Freetype font rasterizer in the Go programming language")
       (description "The Freetype font rasterizer in the Go programming language.")
@@ -6490,7 +6466,7 @@ characters with their ASCII approximations.")
      `(#:tests? #f      ; Issue with test flags.
        #:import-path "github.com/fogleman/gg"))
     (propagated-inputs
-     `(("go-github-com-golang-freetype" ,go-github-com-golang-freetype)))
+     (list go-github-com-golang-freetype))
     (home-page "https://github.com/fogleman/gg")
     (synopsis "2D rendering in Go")
     (description "@code{gg} is a library for rendering 2D graphics in pure Go.")
@@ -6615,8 +6591,7 @@ used by other processes.")
       (arguments
        `(#:import-path "github.com/surgebase/porter2"))
       (native-inputs
-       `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
-         ("go-github-com-surge-glog" ,go-github-com-surge-glog)))
+       (list go-github-com-stretchr-testify go-github-com-surge-glog))
       (home-page "https://github.com/surgebase/porter2")
       (synopsis "Go library implementing english Porter2 stemmer")
       (description "Porter2 implements the
@@ -6715,7 +6690,7 @@ which are widely used in other languages but absent in Go package strings.")
     (arguments
      `(#:import-path "github.com/imdario/mergo"))
     (native-inputs
-     `(("go-gopkg-in-yaml-v2" ,go-gopkg-in-yaml-v2)))
+     (list go-gopkg-in-yaml-v2))
     (home-page "https://github.com/imdario/mergo/")
     (synopsis "Helper to merge structs and maps in Golang")
     (description "Helper to merge structs and maps in Golang.  Useful for
@@ -6745,16 +6720,16 @@ maps (because they are not addressable using Go reflection).")
      `(#:tests? #f ;network tests only
        #:import-path "github.com/Masterminds/sprig"))
     (native-inputs
-     `(("go-github-com-masterminds-goutils" ,go-github-com-masterminds-goutils)
-       ("go-github-com-masterminds-semver" ,go-github-com-masterminds-semver)
-       ("go-github-com-google-uuid" ,go-github-com-google-uuid)
-       ("go-github-com-huandu-xstrings" ,go-github-com-huandu-xstrings)
-       ("go-github-com-imdario-mergo" ,go-github-com-imdario-mergo)
-       ("go-github-com-mitchellh-reflectwalk" ,go-github-com-mitchellh-reflectwalk)
-       ("go-github-com-mitchellh-copystructure" ,go-github-com-mitchellh-copystructure)
-       ("go-github-com-spf13-cast" ,go-github-com-spf13-cast)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
-       ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
+     (list go-github-com-masterminds-goutils
+           go-github-com-masterminds-semver
+           go-github-com-google-uuid
+           go-github-com-huandu-xstrings
+           go-github-com-imdario-mergo
+           go-github-com-mitchellh-reflectwalk
+           go-github-com-mitchellh-copystructure
+           go-github-com-spf13-cast
+           go-golang-org-x-crypto
+           go-github-com-stretchr-testify))
     (home-page "https://github.com/Masterminds/sprig/")
     (synopsis "Template functions for Go templates")
     (description "Sprig is a library that provides more than 100 commonly used
@@ -6829,7 +6804,7 @@ matching and globbing with support for \"doublestar\" patterns.")
     (arguments
      `(#:import-path "github.com/alecthomas/colour"))
     (native-inputs
-     `(("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)))
+     (list go-github-com-mattn-go-isatty))
     (home-page "https://github.com/alecthomas/colour/")
     (synopsis "Colour terminal text for Go")
     (description "Package colour provides Quake-style colour formatting for
@@ -6859,7 +6834,7 @@ stripped.")
       (arguments
        `(#:import-path "github.com/alecthomas/repr"))
       (native-inputs
-       `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
+       (list go-github-com-stretchr-testify))
       (home-page "https://github.com/alecthomas/repr/")
       (synopsis "Represent Go values in an almost direct form")
       (description "This package attempts to represent Go values in a form that
@@ -6884,7 +6859,7 @@ can be used almost directly in Go source code.")
      `(#:import-path "github.com/sergi/go-diff/diffmatchpatch"
        #:unpack-path "github.com/sergi/go-diff"))
     (native-inputs
-     `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
+     (list go-github-com-stretchr-testify))
     (home-page "https://github.com/sergi/go-diff/")
     (synopsis "Algorithms to perform operations for synchronizing plain text")
     (description "@code{go-diff} offers algorithms to perform operations required for
@@ -6915,10 +6890,8 @@ synchronizing plain text:
       (arguments
        `(#:import-path "github.com/alecthomas/assert"))
       (native-inputs
-       `(("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
-         ("go-github-com-alecthomas-colour" ,go-github-com-alecthomas-colour)
-         ("go-github-com-alecthomas-repr" ,go-github-com-alecthomas-repr)
-         ("go-github-com-sergi-go-diff" ,go-github-com-sergi-go-diff)))
+       (list go-github-com-mattn-go-isatty go-github-com-alecthomas-colour
+             go-github-com-alecthomas-repr go-github-com-sergi-go-diff))
       (home-page "https://github.com/alecthomas/assert/")
       (synopsis "Go assertion library")
       (description "Assertion library that:
@@ -6946,12 +6919,12 @@ synchronizing plain text:
     (arguments
      `(#:import-path "github.com/alecthomas/chroma"))
     (native-inputs
-     `(("go-github-com-dlclark-regexp2" ,go-github-com-dlclark-regexp2)
-       ("go-github-com-alecthomas-assert" ,go-github-com-alecthomas-assert)
-       ("go-github-com-alecthomas-colour" ,go-github-com-alecthomas-colour)
-       ("go-github-com-alecthomas-repr" ,go-github-com-alecthomas-repr)
-       ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
-       ("go-github-com-sergi-go-diff" ,go-github-com-sergi-go-diff)))
+     (list go-github-com-dlclark-regexp2
+           go-github-com-alecthomas-assert
+           go-github-com-alecthomas-colour
+           go-github-com-alecthomas-repr
+           go-github-com-mattn-go-isatty
+           go-github-com-sergi-go-diff))
     (home-page "https://github.com/alecthomas/chroma/")
     (synopsis "General purpose syntax highlighter in pure Go")
     (description "Chroma takes source code and other structured text and
@@ -6975,7 +6948,7 @@ converts it into syntax highlighted HTML, ANSI-coloured text, etc.")
     (arguments
      `(#:import-path "github.com/andybalholm/cascadia"))
     (native-inputs
-     `(("go-golang-org-x-net" ,go-golang-org-x-net)))
+     (list go-golang-org-x-net))
     (home-page "https://github.com/andybalholm/cascadia/")
     (synopsis "CSS selectors for HTML")
     (description "The Cascadia package implements CSS selectors for use with
@@ -6999,8 +6972,7 @@ the parse trees produced by the html package.")
     (arguments
      `(#:import-path "github.com/PuerkitoBio/goquery"))
     (propagated-inputs
-     `(("go-github-com-andybalholm-cascadia" ,go-github-com-andybalholm-cascadia)
-       ("go-golang-org-x-net" ,go-golang-org-x-net)))
+     (list go-github-com-andybalholm-cascadia go-golang-org-x-net))
     (home-page "https://github.com/PuerkitoBio/goquery")
     (synopsis "Features similar to jQuery to the Go language")
     (description "@code{goquery} brings a syntax and a set of features similar
@@ -7025,9 +6997,8 @@ to jQuery to the Go language.")
     (arguments
      '(#:import-path "github.com/jmespath/go-jmespath"))
     (native-inputs
-     `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)
-       ("go-github-com-pmezard-go-difflib" ,go-github-com-pmezard-go-difflib)
-       ("go-gopkg-in-yaml-v2" ,go-gopkg-in-yaml-v2)))
+     (list go-github-com-davecgh-go-spew go-github-com-pmezard-go-difflib
+           go-gopkg-in-yaml-v2))
     (home-page "https://github.com/jmespath/go-jmespath")
     (synopsis "Golang implementation of JMESPath")
     (description
@@ -7052,10 +7023,9 @@ transforms one JSON document into another through a JMESPath expression.")
     (arguments
      `(#:import-path "github.com/aymerick/douceur"))
     (native-inputs
-     `(("go-github-com-puerkitobio-goquery" ,go-github-com-puerkitobio-goquery)
-       ("go-github-com-andybalholm-cascadia" ,go-github-com-andybalholm-cascadia)
-       ("go-golang-org-x-net" ,go-golang-org-x-net)
-       ("go-github-com-gorilla-css" ,go-github-com-gorilla-css)))
+     (list go-github-com-puerkitobio-goquery
+           go-github-com-andybalholm-cascadia go-golang-org-x-net
+           go-github-com-gorilla-css))
     (home-page "https://github.com/aymerick/douceur/")
     (synopsis "CSS parser and inliner")
     (description "This package provides a CSS parser and inliner.")
@@ -7078,11 +7048,9 @@ transforms one JSON document into another through a JMESPath expression.")
     (arguments
      `(#:import-path "github.com/chris-ramon/douceur"))
     (native-inputs
-     `(("go-github-com-aymerick-douceur" ,go-github-com-aymerick-douceur)
-       ("go-github-com-puerkitobio-goquery" ,go-github-com-puerkitobio-goquery)
-       ("go-github-com-andybalholm-cascadia" ,go-github-com-andybalholm-cascadia)
-       ("go-golang-org-x-net" ,go-golang-org-x-net)
-       ("go-github-com-gorilla-css" ,go-github-com-gorilla-css)))
+     (list go-github-com-aymerick-douceur go-github-com-puerkitobio-goquery
+           go-github-com-andybalholm-cascadia go-golang-org-x-net
+           go-github-com-gorilla-css))
     (home-page "https://github.com/chris-ramon/douceur/")
     (synopsis "CSS parser and inliner")
     (description "This package provides a CSS parser and inliner.")
@@ -7105,10 +7073,8 @@ transforms one JSON document into another through a JMESPath expression.")
     (arguments
      `(#:import-path "github.com/microcosm-cc/bluemonday"))
     (native-inputs
-     `(("go-github-com-chris-ramon-douceur" ,go-github-com-chris-ramon-douceur)
-       ("go-github-com-aymerick-douceur" ,go-github-com-aymerick-douceur)
-       ("go-github-com-gorilla-css" ,go-github-com-gorilla-css)
-       ("go-golang-org-x-net" ,go-golang-org-x-net)))
+     (list go-github-com-chris-ramon-douceur go-github-com-aymerick-douceur
+           go-github-com-gorilla-css go-golang-org-x-net))
     (home-page "https://github.com/microcosm-cc/bluemonday/")
     (synopsis "HTML sanitizer")
     (description "@code{bluemonday} is a HTML sanitizer implemented in Go.")
@@ -7132,7 +7098,7 @@ transforms one JSON document into another through a JMESPath expression.")
      `(#:import-path "github.com/muesli/reflow/wordwrap"
        #:unpack-path "github.com/muesli/reflow"))
     (native-inputs
-     `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)))
+     (list go-github.com-mattn-go-runewidth))
     (home-page "https://github.com/muesli/reflow/")
     (synopsis "Collection of methods helping to transform blocks of text")
     (description "This package provides a collection of ANSI-aware methods and
@@ -7180,10 +7146,8 @@ io.Writers helping you to transform blocks of text.")
     (arguments
      `(#:import-path "github.com/muesli/termenv"))
     (native-inputs
-     `(("go-github-com-google-goterm" ,go-github-com-google-goterm)
-       ("go-golang-org-colorful" ,go-golang-org-colorful)
-       ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
-       ("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)))
+     (list go-github-com-google-goterm go-golang-org-colorful
+           go-github-com-mattn-go-isatty go-github.com-mattn-go-runewidth))
     (home-page "https://github.com/muesli/termenv/")
     (synopsis "Advanced styling options on the terminal")
     (description "termenv lets you safely use advanced styling options on the
@@ -7212,7 +7176,7 @@ escape sequences and color conversions.")
     (arguments
      `(#:import-path "github.com/nwidger/jsoncolor"))
     (native-inputs
-     `(("go-github-com-fatih-color" ,go-github-com-fatih-color)))
+     (list go-github-com-fatih-color))
     (synopsis "Colorized JSON marshalling and encoding")
     (description
      "@code{jsoncolor} is a drop-in replacement for @code{encoding/json}'s
@@ -7237,7 +7201,7 @@ which produce colorized output using github.com/fatih/color.")
     (arguments
      `(#:import-path "github.com/olekukonko/tablewriter"))
     (native-inputs
-     `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)))
+     (list go-github.com-mattn-go-runewidth))
     (home-page "https://github.com/olekukonko/tablewriter/")
     (synopsis "Generate ASCII table")
     (description "This package generates ASCII tables.  Features:
@@ -7298,25 +7262,25 @@ which produce colorized output using github.com/fatih/color.")
     (arguments
      `(#:import-path "github.com/charmbracelet/glamour"))
     (native-inputs
-     `(("go-github-com-alecthomas-chroma" ,go-github-com-alecthomas-chroma)
-       ("go-github-com-danwakefield-fnmatch" ,go-github-com-danwakefield-fnmatch)
-       ("go-github-com-dlclark-regexp2" ,go-github-com-dlclark-regexp2)
-       ("go-github-com-microcosm-cc-bluemonday" ,go-github-com-microcosm-cc-bluemonday)
-       ("go-github-com-chris-ramon-douceur" ,go-github-com-chris-ramon-douceur)
-       ("go-github-com-aymerick-douceur" ,go-github-com-aymerick-douceur)
-       ("go-github-com-gorilla-css" ,go-github-com-gorilla-css)
-       ("go-github-com-muesli-reflow-ansi" ,go-github-com-muesli-reflow-ansi)
-       ("go-github-com-muesli-reflow-wordwrap" ,go-github-com-muesli-reflow-wordwrap)
-       ("go-github-com-muesli-reflow-indent" ,go-github-com-muesli-reflow-indent)
-       ("go-github-com-muesli-reflow-padding" ,go-github-com-muesli-reflow-padding)
-       ("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
-       ("go-github-com-muesli-termenv" ,go-github-com-muesli-termenv)
-       ("go-github-com-google-goterm" ,go-github-com-google-goterm)
-       ("go-golang-org-colorful" ,go-golang-org-colorful)
-       ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
-       ("go-github-com-olekukonko-tablewriter" ,go-github-com-olekukonko-tablewriter)
-       ("go-github-com-yuin-goldmark" ,go-github-com-yuin-goldmark)
-       ("go-golang-org-x-net" ,go-golang-org-x-net)))
+     (list go-github-com-alecthomas-chroma
+           go-github-com-danwakefield-fnmatch
+           go-github-com-dlclark-regexp2
+           go-github-com-microcosm-cc-bluemonday
+           go-github-com-chris-ramon-douceur
+           go-github-com-aymerick-douceur
+           go-github-com-gorilla-css
+           go-github-com-muesli-reflow-ansi
+           go-github-com-muesli-reflow-wordwrap
+           go-github-com-muesli-reflow-indent
+           go-github-com-muesli-reflow-padding
+           go-github.com-mattn-go-runewidth
+           go-github-com-muesli-termenv
+           go-github-com-google-goterm
+           go-golang-org-colorful
+           go-github-com-mattn-go-isatty
+           go-github-com-olekukonko-tablewriter
+           go-github-com-yuin-goldmark
+           go-golang-org-x-net))
     (home-page "https://github.com/charmbracelet/glamour/")
     (synopsis "Write handsome command-line tools with glamour")
     (description "@code{glamour} lets you render markdown documents and
@@ -7411,8 +7375,7 @@ errors (warnings).")
     (arguments
      `(#:import-path "github.com/go-git/gcfg"))
     (native-inputs
-     `(("go-gopkg-in-warnings" ,go-gopkg-in-warnings)
-       ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
+     (list go-gopkg-in-warnings go-github-com-pkg-errors))
     (build-system go-build-system)
     (home-page "https://github.com/go-git/gcfg/")
     (synopsis "Gcfg reads INI-style configuration files into Go structs")
@@ -7436,7 +7399,7 @@ errors (warnings).")
     (arguments
      `(#:import-path "github.com/go-git/go-billy/v5"))
     (native-inputs
-     `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
+     (list go-gopkg-in-check-v1))
     (home-page "https://github.com/go-git/go-billy/")
     (synopsis "File system abstraction for Go")
     (description "Billy implements an interface based on the OS's standard
@@ -7514,7 +7477,7 @@ can manipulate a @file{ssh_config} file from a program.")
     (arguments
      `(#:import-path "github.com/xanzy/ssh-agent"))
     (native-inputs
-     `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
+     (list go-golang-org-x-crypto))
     (home-page "https://github.com/xanzy/ssh-agent/")
     (synopsis "Control ssh-agent from Go")
     (description "Package agent implements the ssh-agent protocol, and
@@ -7551,11 +7514,8 @@ ssh-agent process using the sample server. ")
        `(#:import-path "github.com/alcortesm/tgz"
          #:phases
          (modify-phases %standard-phases
-           (add-after 'unpack 'make-git-checkout-writable
-             (lambda* (#:key outputs #:allow-other-keys)
-               (for-each make-file-writable (find-files "."))
-               (for-each make-file-writable (find-files (assoc-ref outputs "out")))
-               #t)))))
+           ;; Files are test fixtures, not generated.
+           (delete 'reset-gzip-timestamps))))
       (home-page "https://github.com/alcortesm/tgz/")
       (synopsis "Go library to extract tgz files to temporal directories")
       (description "This package provides a Go library to extract tgz files to
@@ -7582,10 +7542,8 @@ temporal directories.")
        (modify-phases %standard-phases
          (delete 'reset-gzip-timestamps))))
     (native-inputs
-     `(("go-github-com-alcortesm-tgz" ,go-github-com-alcortesm-tgz)
-       ("go-github-com-go-git-go-billy" ,go-github-com-go-git-go-billy)
-       ("go-golang-org-x-sys" ,go-golang-org-x-sys)
-       ("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
+     (list go-github-com-alcortesm-tgz go-github-com-go-git-go-billy
+           go-golang-org-x-sys go-gopkg-in-check-v1))
     (home-page "https://github.com/go-git/go-git-fixtures/")
     (synopsis "Fixtures used by @code{go-git}")
     (description "This package provides fixtures used by @code{go-git}.")
@@ -7610,7 +7568,7 @@ temporal directories.")
       (arguments
        `(#:import-path "github.com/pkg/diff"))
       (native-inputs
-       `(("go-github-com-sergi-go-diff" ,go-github-com-sergi-go-diff)))
+       (list go-github-com-sergi-go-diff))
       (home-page "https://github.com/pkg/diff/")
       (synopsis "Create and print diffs")
       (description
@@ -7656,7 +7614,7 @@ temporal directories.")
     (arguments
      `(#:import-path "github.com/twpayne/go-vfs"))
     (native-inputs
-     `(("go-github-com-bmatcuk-doublestar" ,go-github-com-bmatcuk-doublestar)))
+     (list go-github-com-bmatcuk-doublestar))
     (home-page "https://github.com/twpayne/go-vfs/")
     (synopsis "Abstraction of the @code{os} and @code{ioutil} Go packages")
     (description "Package @code{vfs} provides an abstraction of the @code{os}
@@ -7680,8 +7638,7 @@ and @code{ioutil} packages that is easy to test.")
     (arguments
      `(#:import-path "github.com/twpayne/go-vfsafero"))
     (native-inputs
-     `(("go-github-com-twpayne-go-vfs" ,go-github-com-twpayne-go-vfs)
-       ("go-github-com-spf13-afero" ,go-github-com-spf13-afero)))
+     (list go-github-com-twpayne-go-vfs go-github-com-spf13-afero))
     (home-page "https://github.com/twpayne/go-vfsafero/")
     (synopsis "Compatibility later between @code{go-vfs} and @code{afero}")
     (description
@@ -7706,8 +7663,7 @@ and @code{ioutil} packages that is easy to test.")
     (arguments
      `(#:import-path "github.com/twpayne/go-xdg/v3"))
     (native-inputs
-     `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
-       ("go-github-com-twpayne-go-vfs" ,go-github-com-twpayne-go-vfs)))
+     (list go-github-com-stretchr-testify go-github-com-twpayne-go-vfs))
     (home-page "https://github.com/twpayne/go-xdg/")
     (synopsis "Functions related to freedesktop.org")
     (description "Package @code{xdg} provides functions related to
@@ -7732,7 +7688,7 @@ and @code{ioutil} packages that is easy to test.")
      `(#:tests? #f ;no /var/run/dbus/system_bus_socket
        #:import-path "github.com/godbus/dbus"))
     (native-inputs
-     `(("dbus" ,dbus))) ;dbus-launch
+     (list dbus)) ;dbus-launch
     (home-page "https://github.com/godbus/dbus/")
     (synopsis "Native Go client bindings for the D-Bus")
     (description "@code{dbus} is a library that implements native Go client
@@ -7757,8 +7713,7 @@ bindings for the D-Bus message bus system.")
      `(#:tests? #f ;XXX: Fix dbus tests
        #:import-path "github.com/zalando/go-keyring"))
     (native-inputs
-     `(("go-github-com-godbus-dbus" ,go-github-com-godbus-dbus)
-       ("dbus" ,dbus)))
+     (list go-github-com-godbus-dbus dbus))
     (home-page "https://github.com/zalando/go-keyring/")
     (synopsis "Library for working with system keyring")
     (description "@code{go-keyring} is a library for setting, getting and
@@ -7782,7 +7737,7 @@ deleting secrets from the system keyring.")
     (arguments
      `(#:import-path "go.etcd.io/bbolt"))
     (propagated-inputs
-     `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+     (list go-golang-org-x-sys))
     (home-page "https://pkg.go.dev/go.etcd.io/bbolt/")
     (synopsis "Low-level key/value store in Go")
     (description "This package implements a low-level key/value store in Go.")
@@ -7885,36 +7840,42 @@ error messages.")
 inspired by the causal messaging system in the Pony programming language.")
       (license license:expat))))
 
-(define-public go-github-com-cheggaaa-pb
+(define-public go-github-com-cheggaaa-pb-v3
   (package
-    (name "go-github-com-cheggaaa-pb")
-    (version "3.0.4")
+    (name "go-github-com-cheggaaa-pb-v3")
+    (version "3.0.8")
     (source
-      (origin
+     (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/cheggaaa/pb/")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0xhsv9yf3fz918ay6w0d87jnb3hk9vxvi16jk172kqq26x7jixd0"))))
+        (base32 "0d701s2niy39r650d1phjw19h4l27b1yfc2ih6s31f56b3zzqspx"))))
     (build-system go-build-system)
     (arguments
-     '(#:import-path "github.com/cheggaaa/pb/"))
+     '(#:import-path "github.com/cheggaaa/pb/v3"
+       ;; XXX: it does have tests but I'm not sure how to run them.
+       ;; go-build-system is looking in the wrong directory.
+       #:tests? #f))
     (propagated-inputs
-     `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
-       ("go-github-com-mattn-go-colorable" ,go-github-com-mattn-go-colorable)
-       ("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
-       ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
-    (native-inputs
-     `(("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)))
+     (list go-golang-org-x-sys
+           go-github-com-rivo-uniseg
+           go-github-com-mattn-go-runewidth
+           go-github-com-mattn-go-isatty
+           go-github-com-mattn-go-colorable
+           go-github-com-fatih-color
+           go-github-com-vividcortex-ewma))
     (home-page "https://github.com/cheggaaa/pb/")
     (synopsis "Console progress bar for Go")
     (description "This package is a Go library that draws progress bars on
 the terminal.")
     (license license:bsd-3)))
 
+(define-public go-github-com-cheggaaa-pb
+  (deprecated-package "go-github-com-cheggaaa-pb" go-github-com-cheggaaa-pb-v3))
+
 (define-public go-github-com-gologme-log
   ;; this is the same as v1.2.0, only the LICENSE file changed
   (let ((commit "720ba0b3ccf0a91bc6018c9967a2479f93f56a55"))
@@ -7961,8 +7922,7 @@ additions.")
     (arguments
      '(#:import-path "github.com/frankban/quicktest"))
     (propagated-inputs
-     `(("go-github-com-google-go-cmp-cmp" ,go-github-com-google-go-cmp-cmp)
-       ("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
+     (list go-github-com-google-go-cmp-cmp go-github-com-kr-pretty))
     (home-page "https://github.com/frankban/quicktest")
     (synopsis "Quick helpers for testing Go applications")
     (description
@@ -8018,7 +7978,7 @@ tests.")
                  (invoke "go" "test" import-path "-tags" "dev"))
              #t)))))
     (propagated-inputs
-     `(("libsass" ,libsass)))
+     (list libsass))
     (native-inputs
      `(("go-github-com-frankban-quicktest" ,go-github-com-frankban-quicktest)
        ("libsass-src" ,(package-source libsass))))
@@ -8086,7 +8046,7 @@ JSON data to the machine.")
        ;; source: golang.zx2c4.com/wireguard
        (uri (git-reference
              (url "https://git.zx2c4.com/wireguard-go/")
-             (commit (string-append "v" version))))
+             (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32
@@ -8095,10 +8055,8 @@ JSON data to the machine.")
     (arguments
      '(#:import-path "golang.zx2c4.com/wireguard"))
     (propagated-inputs
-     `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
-       ("go-golang-org-x-net" ,go-golang-org-x-net)
-       ("go-golang-org-x-sys" ,go-golang-org-x-sys)
-       ("go-golang-org-x-text" ,go-golang-org-x-text)))
+     (list go-golang-org-x-crypto go-golang-org-x-net go-golang-org-x-sys
+           go-golang-org-x-text))
     (home-page "https://git.zx2c4.com/wireguard")
     (synopsis "Implementation of WireGuard in Go")
     (description "This package is a Go Implementation of WireGuard.")
@@ -8148,11 +8106,9 @@ modifying them.")
     (arguments
      `(#:import-path "github.com/goccy/go-yaml"))
     (propagated-inputs
-     `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
-       ("go-golang-org-x-xerrors" ,go-golang-org-x-xerrors)))
+     (list go-github-com-fatih-color go-golang-org-x-xerrors))
     (native-inputs
-     `(("go-gopkg-in-go-playground-validator-v9"
-        ,go-gopkg-in-go-playground-validator-v9)))
+     (list go-gopkg-in-go-playground-validator-v9))
     (synopsis "YAML support for the Go language")
     (description
      "This package provides features beyond the
@@ -8235,7 +8191,7 @@ compressed streams in Go.")
        ;; and require network access.
        #:tests? #f))
     (propagated-inputs
-     `(("go-github-com-goccy-yaml" ,go-github-com-goccy-yaml)))
+     (list go-github-com-goccy-yaml))
     (synopsis "Go library to get configuration values from gitconfig")
     (description "@{gitconfig} is a package to get configuration values from gitconfig.")
     (license license:expat)))
@@ -8288,7 +8244,7 @@ algorithm.")
           (base32 "16p77p3d1v26qd3knxn087jqlad2qm23q8m796cdr66hrdc0gahq"))))
       (build-system go-build-system)
       (inputs
-       `(("pulseaudio" ,pulseaudio)))
+       (list pulseaudio))
       (arguments
        `(#:import-path "github.com/akosmarton/papipes"
          #:phases
@@ -8326,8 +8282,7 @@ sinks and sources.")
           (base32 "1awwczsa9yy99p035ckajqfs8m6mab0lz82mzlj1c5cj9lnmwplj"))))
       (build-system go-build-system)
       (propagated-inputs
-       `(("pkg-config" ,pkg-config)
-         ("pulseaudio" ,pulseaudio)))
+       (list pkg-config pulseaudio))
       (arguments
        '(#:import-path "github.com/mesilliac/pulse-simple"))
       (home-page "https://github.com/mesilliac/pulse-simple")
@@ -8377,8 +8332,7 @@ programs that use traditional command lines.")
     (arguments
      '(#:import-path "go.uber.org/atomic"))
     (native-inputs
-     `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
-       ("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)))
+     (list go-github-com-stretchr-testify go-github-com-davecgh-go-spew))
     (home-page "https://go.uber.org/atomic")
     (synopsis "Wrapper types for sync/atomic")
     (description
@@ -8403,9 +8357,9 @@ atomic access.")
     (arguments
      '(#:import-path "go.uber.org/multierr"))
     (native-inputs
-     `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
+     (list go-github-com-stretchr-testify))
     (propagated-inputs
-     `(("go-go-uber-org-atomic" ,go-go-uber-org-atomic)))
+     (list go-go-uber-org-atomic))
     (home-page "https://go.uber.org/multierr")
     (synopsis "Error combination for Go")
     (description
@@ -8432,7 +8386,7 @@ atomic access.")
        '(#:import-path "golang.org/x/lint"
          #:tests? #f)) ;; TODO: Fix tests
       (propagated-inputs
-       `(("go-golang-org-x-tools" ,go-golang-org-x-tools)))
+       (list go-golang-org-x-tools))
       (home-page "https://golang.org/x/lint")
       (synopsis "Linter for Go source code")
       (description
@@ -8486,9 +8440,8 @@ tools with similar semantics.")
        (modify-phases %standard-phases
          (delete 'build))))
     (propagated-inputs
-     `(("go-golang-org-x-tools" ,go-golang-org-x-tools)
-       ("go-github-com-kisielk-gotool",go-github-com-kisielk-gotool)
-       ("go-github-com-burntsushi-toml" ,go-github-com-burntsushi-toml)))
+     (list go-golang-org-x-tools go-github-com-kisielk-gotool
+           go-github-com-burntsushi-toml))
     (home-page "https://honnef.co/go/tools")
     (synopsis "Staticcheck advanced Go linter")
     (description
@@ -8515,14 +8468,11 @@ simplifications, and enforces style rules.")
      '(#:import-path "go.uber.org/zap"
        #:tests? #f)) ; TODO: Fix tests
     (native-inputs
-     `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
-       ("go-golang-org-x-lint" ,go-golang-org-x-lint)
-       ("go-honnef-co-go-tools" ,go-honnef-co-go-tools)))
+     (list go-github-com-stretchr-testify go-golang-org-x-lint
+           go-honnef-co-go-tools))
     (propagated-inputs
-     `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
-       ("go-go-uber-org-atomic" ,go-go-uber-org-atomic)
-       ("go-go-uber-org-multierr" ,go-go-uber-org-multierr)
-       ("go-gopkg-in-yaml-v2" ,go-gopkg-in-yaml-v2)))
+     (list go-github-com-pkg-errors go-go-uber-org-atomic
+           go-go-uber-org-multierr go-gopkg-in-yaml-v2))
     (home-page "https://go.uber.org/zap")
     (synopsis "Logging library for Go")
     (description
@@ -8597,7 +8547,7 @@ back.")
     (arguments
      '(#:import-path "lukechampine.com/blake3"))
     (propagated-inputs
-     `(("go-github-com-klauspost-cpuid" ,go-github-com-klauspost-cpuid)))
+     (list go-github-com-klauspost-cpuid))
     (home-page "https://pkg.go.dev/lukechampine.com/blake3")
     (synopsis "Implementation of the BLAKE3 cryptographic hash function")
     (description "@code{blake3} implements the BLAKE3 cryptographic hash
@@ -8623,7 +8573,7 @@ performance for large inputs and outputs.")
     (build-system go-build-system)
     (arguments '(#:import-path "golang.org/x/term"))
     (propagated-inputs
-     `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+     (list go-golang-org-x-sys))
     (home-page "https://pkg.go.dev/golang.org/x/term")
     (synopsis "Go terminal/console support")
     (description "@code{term} provides support functions for dealing with
@@ -8648,8 +8598,7 @@ terminals, as commonly found on Unix systems.")
     (arguments
      '(#:import-path "github.com/flynn/noise"))
     (propagated-inputs
-     `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
+     (list go-gopkg-in-check-v1 go-golang-org-x-crypto))
     (home-page "https://github.com/flynn/noise")
     (synopsis "Go implementation of the Noise protocol framework")
     (description "@code{noise} implements the Noise protocol framework.  Noise
@@ -8684,7 +8633,7 @@ zero round-trip encryption, and other advanced features.")
              (for-each make-file-writable
                        (find-files (assoc-ref outputs "out") ".gz$")))))))
     (propagated-inputs
-     `(("go-github-com-golang-snappy" ,go-github-com-golang-snappy)))
+     (list go-github-com-golang-snappy))
     (home-page "https://github.com/klauspost/compress")
     (synopsis "Go compression library")
     (description "@code{compress} provides various compression algorithms.")
@@ -8732,15 +8681,15 @@ non-cryptographic hash algorithm, working at speeds close to RAM limits.")
     (arguments
      '(#:import-path "github.com/aswinkarthik/csvdiff"))
     (propagated-inputs
-     `(("go-golang-org-x-sys" ,go-golang-org-x-sys)
-       ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
-       ("go-github-com-spf13-cobra" ,go-github-com-spf13-cobra)
-       ("go-github-com-spf13-afero" ,go-github-com-spf13-afero)
-       ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
-       ("go-github-com-mattn-go-colorable" ,go-github-com-mattn-go-colorable)
-       ("go-github-com-fatih-color" ,go-github-com-fatih-color)
-       ("go-github-com-cespare-xxhash" ,go-github-com-cespare-xxhash)
-       ("go-github-com-oneofone-xxhash" ,go-github-com-oneofone-xxhash)))
+     (list go-golang-org-x-sys
+           go-github-com-stretchr-testify
+           go-github-com-spf13-cobra
+           go-github-com-spf13-afero
+           go-github-com-spaolacci-murmur3
+           go-github-com-mattn-go-colorable
+           go-github-com-fatih-color
+           go-github-com-cespare-xxhash
+           go-github-com-oneofone-xxhash))
     (home-page "https://github.com/aswinkarthik/csvdiff")
     (synopsis "Fast diff tool for comparing CSV files")
     (description "@code{csvdiff} is a diff tool to compute changes between two
@@ -8757,3 +8706,129 @@ line.  @code{csvdiff} supports
 JSON for post-processing
 @end itemize")
     (license license:expat)))
+
+(define-public go-gopkg-in-djherbis-times-v1
+  (package
+    (name "go-gopkg-in-djherbis-times-v1")
+    (version "1.5.0")
+    (home-page "https://gopkg.in/djherbis/times.v1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1xvl3rgjif5yf62p16yk05kxrsmzhz1kkqisvw4k02svzq10qbfy"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "gopkg.in/djherbis/times.v1"))
+    (synopsis "Go library for getting file times")
+    (description
+     "Provides a platform-independent way to get atime, mtime, ctime and btime for files.")
+    (license license:expat)))
+
+(define-public go-github-com-vividcortex-ewma
+  (package
+    (name "go-github-com-vividcortex-ewma")
+    (version "1.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/VividCortex/ewma")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0whx516l9nm4n41spagb605ry7kfnz1qha96mcshnfjlahhnnylq"))))
+    (build-system go-build-system)
+    (arguments '(#:import-path "github.com/vividcortex/ewma"))
+    (home-page "https://github.com/VividCortex/ewma")
+    (synopsis "Exponentially Weighted Moving Average algorithms for Go")
+    (description
+     "This package implements algorithms for exponentially weighted moving
+averages.")
+    (license license:expat)))
+
+(define-public go-github-com-rivo-uniseg
+  (package
+    (name "go-github-com-rivo-uniseg")
+    (version "0.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rivo/uniseg")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0j7h22vfmjj562vr8gpsyrkrwp1pq9ayh5fylv24skxb467g9f0q"))))
+    (build-system go-build-system)
+    (arguments '(#:import-path "github.com/rivo/uniseg"))
+    (home-page "https://github.com/rivo/uniseg")
+    (synopsis "Unicode Text Segmentation for Go")
+    (description
+     "This package implements Unicode Text Segmentation according to
+@url{https://unicode.org/reports/tr29/, Unicode Standard Annex #29}.")
+    (license license:expat)))
+
+(define-public go-github-com-mattn-go-runewidth
+  (package
+    (name "go-github-com-mattn-go-runewidth")
+    (version "0.0.13")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mattn/go-runewidth")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1yir0f3wc5z5hnkwhvx5qb6nmpfb05zp2gvfjvna63s8kmla1rrn"))))
+    (build-system go-build-system)
+    (arguments '(#:import-path "github.com/mattn/go-runewidth"))
+    (propagated-inputs
+     (list go-github-com-rivo-uniseg))
+    (home-page "https://github.com/mattn/go-runewidth")
+    (synopsis "Rune width implementation for Go")
+    (description
+     "This package provides functions to get the fixed width of a character or
+string.")
+    (license license:expat)))
+
+(define-public go-github-com-arceliar-ironwood
+  (package
+    (name "go-github-com-arceliar-ironwood")
+    (version "0.0.0-20210912013146-c2bc55bb349c")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Arceliar/ironwood")
+             (commit (go-version->git-ref version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1dfkqnkfxwlwcsk8g9r1pv84lfzgn8r1vam13zlmk81cgan2r6fx"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/Arceliar/ironwood"
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         ;; Source-only package
+         (delete 'build))))
+    (propagated-inputs
+     (list go-golang-org-x-crypto go-github-com-arceliar-phony))
+    (home-page "https://github.com/Arceliar/ironwood")
+    (synopsis "Experimental network routing library")
+    (description
+     "Ironwood is a routing library with a @code{net.PacketConn}-compatible
+interface using @code{ed25519.PublicKey}s as addresses.  Basically, you use it
+when you want to communicate with some other nodes in a network, but you can't
+guarantee that you can directly connect to every node in that network.  It was
+written to test improvements to / replace the routing logic in
+@url{https://github.com/yggdrasil-network/yggdrasil-go,Yggdrasil}, but it may
+be useful for other network applications.")
+    (license license:mpl2.0)))
diff --git a/gnu/packages/gpodder.scm b/gnu/packages/gpodder.scm
index 0c8f1cf50d..8df7c0c22b 100644
--- a/gnu/packages/gpodder.scm
+++ b/gnu/packages/gpodder.scm
@@ -62,26 +62,26 @@
        (patches (search-patches "gpodder-disable-updater.patch"))))
     (build-system python-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("python-coverage" ,python-coverage)
-       ("python-minimock" ,python-minimock)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-httpserver" ,python-pytest-httpserver)
-       ("which" ,which)))
+     (list intltool
+           python-coverage
+           python-minimock
+           python-pytest
+           python-pytest-cov
+           python-pytest-httpserver
+           which))
     (inputs
-     `(("bash-minimal" ,bash-minimal)
-       ("gtk+" ,gtk+)
-       ("python-pygobject" ,python-pygobject)
-       ("python-pycairo" ,python-pycairo)
-       ("python-requests" ,python-requests)
-       ("python-dbus" ,python-dbus)
-       ("python-html5lib" ,python-html5lib)
-       ("python-mutagen" ,python-mutagen)
-       ("python-mygpoclient" ,python-mygpoclient)
-       ("python-podcastparser" ,python-podcastparser)
-       ("youtube-dl" ,youtube-dl)
-       ("xdg-utils" ,xdg-utils)))
+     (list bash-minimal
+           gtk+
+           python-pygobject
+           python-pycairo
+           python-requests
+           python-dbus
+           python-html5lib
+           python-mutagen
+           python-mygpoclient
+           python-podcastparser
+           youtube-dl
+           xdg-utils))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -144,7 +144,7 @@ locally for later listening.")
                                        "libmygpo-qt-missing-qt5-modules.patch"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("qt" ,qtbase-5)))
     (arguments
@@ -172,9 +172,7 @@ and track podcasts.")
          "1fi5x6k1mngr0iviw2s4n1f3y2x7pwqy5ivkcrjdprzvwr37f0mh"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-minimock" ,python-minimock)
-       ("python-nose" ,python-nose)))
+     (list python-coverage python-minimock python-nose))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -200,7 +198,7 @@ downloading episode status changes.")
        (sha256
         (base32 "0m24r2qhck0win44xfhxajbppkss4ha6am0042s0xyq3408883m3"))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -230,15 +228,8 @@ in Python.")
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("ronn-ng" ,ronn-ng)))
-    (inputs `(("curl" ,curl)
-              ("glib" ,glib)
-              ("id3lib" ,id3lib)
-              ("libxml2" ,libxml2)))
+     (list autoconf automake libtool pkg-config ronn-ng))
+    (inputs (list curl glib id3lib libxml2))
     (synopsis "Command line podcast downloader")
     (description
      "castget is a simple, command-line based RSS enclosure downloader.  It is
diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm
index 19f8a73eef..290fa76289 100644
--- a/gnu/packages/gps.scm
+++ b/gnu/packages/gps.scm
@@ -7,7 +7,6 @@
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2021 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
-;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -83,14 +82,9 @@
      `(#:configure-flags
        '("--with-zlib=system")))
     (inputs
-     `(("expat" ,expat)
-       ("libusb" ,libusb)
-       ("qtbase" ,qtbase-5)
-       ("zlib" ,zlib)))
+     (list expat libusb qtbase-5 zlib))
     (native-inputs
-     `(("which" ,which)
-       ("qttools" ,qttools)
-       ("libxml2" ,libxml2)))              ;'xmllint' needed for the KML tests
+     (list which qttools libxml2))              ;'xmllint' needed for the KML tests
     (home-page "https://www.gpsbabel.org/")
     (synopsis "Convert and exchange data with GPS and map programs")
     (description
@@ -128,14 +122,9 @@ manipulate maps.")
                                "\n")))
              #t)))))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libxml2" ,libxml2)
-       ("exiv2" ,exiv2)))
+     (list gtk+ libxml2 exiv2))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("docbook-xml" ,docbook-xml)
-       ("docbook-xsl" ,docbook-xsl)
-       ("libxslt" ,libxslt)))
+     (list pkg-config docbook-xml docbook-xsl libxslt))
     (home-page "https://dfandrich.github.io/gpscorrelate/")
     (synopsis "GPS photo correlation tool to geo-localize images")
     (description
@@ -149,7 +138,7 @@ between two other data points.")
 (define-public gama
   (package
     (name "gama")
-    (version "2.14")
+    (version "2.15")
     (source
       (origin
         (method url-fetch)
@@ -157,7 +146,7 @@ between two other data points.")
                             version ".tar.gz"))
         (sha256
          (base32
-          "04mhbgpqbynnmm8ww4k2yk1w2j66c276dns9xwn8cvrq58kjimln"))
+          "1lsa7k9anxla2r3wxzg2yhxgxlp8xibz56gaxhgf5rd3mzf51flx"))
         (modules '((guix build utils)))
         (snippet
          '(begin
@@ -167,11 +156,10 @@ between two other data points.")
     (build-system gnu-build-system)
     (arguments '(#:parallel-tests? #f)) ; race condition
     (native-inputs
-     `(("libxml2" ,libxml2)))
+     (list libxml2))
     (inputs
-     `(("expat" ,expat)
-       ("sqlite" ,sqlite)))
-    (home-page "https://www.gnu.org/software/gama")
+     (list expat sqlite))
+    (home-page "https://www.gnu.org/software/gama/")
     (synopsis "Adjustment of geodetic networks")
     (description
      "GNU Gama is a program for the adjustment of geodetic networks.  It is
@@ -183,7 +171,7 @@ coordinates as well as partial support for adjustments in global coordinate syst
 (define-public gpxsee
   (package
     (name "gpxsee")
-    (version "7.37")
+    (version "10.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -192,7 +180,7 @@ coordinates as well as partial support for adjustments in global coordinate syst
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0fpb43smh0kwic5pdxs46c0hkqj8g084h72pa024x1my6w12y9b8"))))
+                "0kj7130imhppb0bam34a1xr2lxk76fyida31idzvfk3m7z39w02w"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -207,9 +195,9 @@ coordinates as well as partial support for adjustments in global coordinate syst
                      (string-append "PREFIX="
                                     (assoc-ref outputs "out"))))))))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5 qtlocation))
     (native-inputs
-     `(("qttools" ,qttools)))
+     (list qttools))
     (home-page "https://www.gpxsee.org")
     (synopsis "GPS log file viewer and analyzer")
     (description
@@ -222,31 +210,30 @@ such as elevation, speed, heart rate, power, temperature, and gear shifts.")
 (define-public gpsd
   (package
     (name "gpsd")
-    (version "3.23")
+    (version "3.23.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download-mirror.savannah.gnu.org"
                            "/releases/gpsd/gpsd-" version ".tar.xz"))
        (sha256
-        (base32 "1px9im0qfn8k7mnvjcw5myakzd7mad2drwyzji400hpwyswjjr73"))))
+        (base32 "1hd8b09is4gd73lpsdywxxdx11iijikmqgxd0y57pic3yxnlcb6a"))))
     (build-system scons-build-system)
     (native-inputs
-     `(("bc" ,bc)
-       ("pkg-config" ,pkg-config)))
+     (list bc pkg-config))
     (inputs
-     `(("bluez" ,bluez)
-       ("dbus" ,dbus)
-       ("gtk+" ,gtk+)
-       ("libcap" ,libcap)
-       ("libusb" ,libusb)
-       ("ncurses" ,ncurses)
-       ("python" ,python)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)
-       ("python-pyserial" ,python-pyserial)
-       ("python-wrapper" ,python-wrapper)
-       ("qtbase" ,qtbase-5)))
+     (list bluez
+           dbus
+           gtk+
+           libcap
+           libusb
+           ncurses
+           python
+           python-pycairo
+           python-pygobject
+           python-pyserial
+           python-wrapper
+           qtbase-5))
     (arguments
      `(#:scons-flags
        (list (string-append "prefix=" %output)
@@ -262,8 +249,7 @@ such as elevation, speed, heart rate, power, temperature, and gear shifts.")
              (setenv "TAR" "noop")
              (substitute* "SConscript"
                (("envs = \\{\\}")
-                "envs = os.environ"))
-             #t))
+                "envs = os.environ"))))
          (add-after 'install 'wrap-python-scripts
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -284,8 +270,7 @@ such as elevation, speed, heart rate, power, temperature, and gear shifts.")
                            (wrap-program (string-append out "/bin/" script)
                              `("GUIX_PYTHONPATH" ":" prefix (,pythonpath))))
                          '("gegps" "gpscat" "gpsfake" "gpsprof"
-                           "ubxtool" "xgps" "xgpsspeed" "zerk")))
-             #t)))))
+                           "ubxtool" "xgps" "xgpsspeed" "zerk"))))))))
     (synopsis "GPS service daemon")
     (description
      "@code{gpsd} is a service daemon that monitors one or more GPSes or AIS
diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm
index c9486935ae..084fdf8c90 100644
--- a/gnu/packages/graph.scm
+++ b/gnu/packages/graph.scm
@@ -35,7 +35,6 @@
   #:use-module (guix build-system r)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
-  #:use-module (gnu packages gcc)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages bioconductor)
   #:use-module (gnu packages bioinformatics)
@@ -80,12 +79,12 @@
              "--with-external-blas"
              "--with-external-lapack")))
     (inputs
-     `(("gmp" ,gmp)
-       ("glpk" ,glpk)
-       ("libxml2" ,libxml2)
-       ("lapack" ,lapack)
-       ("openblas" ,openblas)
-       ("zlib" ,zlib)))
+     (list gmp
+           glpk
+           libxml2
+           lapack
+           openblas
+           zlib))
     (home-page "https://igraph.org")
     (synopsis "Network analysis and visualization")
     (description
@@ -120,12 +119,11 @@ more.")
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "-v"))))))
     (inputs
-     `(("igraph" ,igraph)))
+     (list igraph))
     (propagated-inputs
-     `(("python-texttable" ,python-texttable)))
+     (list python-texttable))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-pytest" ,python-pytest)))
+     (list pkg-config python-pytest))
     (home-page "https://pypi.org/project/python-igraph/")
     (synopsis "Python bindings for the igraph network analysis library")))
 
@@ -146,7 +144,7 @@ more.")
                   "1yahqrcrqpbcywv73y9rlmyz8apdnp08afialibrr93ch0p06f8z"))))
       (build-system r-build-system)
       (propagated-inputs
-       `(("r-igraph" ,r-igraph)))
+       (list r-igraph))
       (home-page "http://www.biofabric.org/")
       (synopsis "BioFabric network visualization")
       (description "This package provides an implementation of the function
@@ -192,17 +190,15 @@ lines.")
                  (find-files out "\\.gz"))
                #t))))))
     (native-inputs
-     `(("python-ipywidgets" ,python-ipywidgets)
-       ("python-pytest" ,python-pytest)
-       ("python-xarray" ,python-xarray)))
+     (list python-ipywidgets python-pytest python-xarray))
     (propagated-inputs
-     `(("python-ipython" ,python-ipython)
-       ("python-pandas" ,python-pandas)
-       ("python-pillow" ,python-pillow)
-       ("python-requests" ,python-requests)
-       ("python-retrying" ,python-retrying)
-       ("python-six" ,python-six)
-       ("python-statsmodels" ,python-statsmodels)))
+     (list python-ipython
+           python-pandas
+           python-pillow
+           python-requests
+           python-retrying
+           python-six
+           python-statsmodels))
     (home-page "https://plotly.com/python/")
     (synopsis "Interactive plotting library for Python")
     (description "Plotly's Python graphing library makes interactive,
@@ -223,12 +219,12 @@ subplots, multiple-axes, polar charts, and bubble charts. ")
           "0s9gk2fl53x8wwncs3fwii1vzfngr0sskv15v3mpshqmrqfrk27m"))))
    (native-inputs '())
    (propagated-inputs
-    `(("python-decorator" ,python-decorator)
-      ("python-nbformat" ,python-nbformat)
-      ("python-pandas" ,python-pandas)
-      ("python-pytz" ,python-pytz)
-      ("python-requests" ,python-requests)
-      ("python-six" ,python-six)))
+    (list python-decorator
+          python-nbformat
+          python-pandas
+          python-pytz
+          python-requests
+          python-six))
     (arguments
      '(#:tests? #f)))) ; The tests are not distributed in the release
 
@@ -244,8 +240,7 @@ subplots, multiple-axes, polar charts, and bubble charts. ")
         (base32 "1sqp97fwh4asx0jr72x8hil8z8fcg2xq92jklmh2m599pvgnx19a"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-networkx" ,python-networkx)
-       ("python-numpy" ,python-numpy)))
+     (list python-networkx python-numpy))
     (home-page "https://github.com/taynaud/python-louvain")
     (synopsis "Louvain algorithm for community detection")
     (description
@@ -269,13 +264,11 @@ algorithm for community detection in large networks.")
                 "0w31537sifkf65sck1iaip5i6d8g64pa3wdwad83d6p9jwkck57k"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-ddt" ,python-ddt)
-       ("python-igraph" ,python-igraph)))
+     (list python-ddt python-igraph))
     (inputs
-     `(("igraph" ,igraph)))
+     (list igraph))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-pytest" ,python-pytest)))
+     (list pkg-config python-pytest))
     (home-page "https://github.com/vtraag/louvain-igraph")
     (synopsis "Algorithm for methods of community detection in large networks")
     (description
@@ -366,9 +359,9 @@ install(TARGETS ${faiss_lib}_static ARCHIVE DESTINATION lib)
                              "/test"))
              #t)))))
     (inputs
-     `(("openblas" ,openblas)))
+     (list openblas))
     (native-inputs
-     `(("googletest" ,googletest)))
+     (list googletest))
     (home-page "https://github.com/facebookresearch/faiss")
     (synopsis "Efficient similarity search and clustering of dense vectors")
     (description "Faiss is a library for efficient similarity search and
@@ -418,8 +411,7 @@ CPUFLAGS = ~{~a ~}~%"
        ("python*" ,python)
        ("swig" ,swig)))
     (propagated-inputs
-     `(("python-matplotlib" ,python-matplotlib)
-       ("python-numpy" ,python-numpy)))
+     (list python-matplotlib python-numpy))
     (description "Faiss is a library for efficient similarity search and
 clustering of dense vectors.  This package provides Python bindings to the
 Faiss library.")))
@@ -438,11 +430,11 @@ Faiss library.")))
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; tests are not included
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("igraph" ,igraph)))
+     (list igraph))
     (propagated-inputs
-     `(("python-igraph" ,python-igraph)))
+     (list python-igraph))
     (home-page "https://github.com/vtraag/leidenalg")
     (synopsis "Community detection in large networks")
     (description
@@ -472,9 +464,7 @@ of the Louvain algorithm, for a number of different methods.")
          "01cm7ay1njkfsdnmnvh5zwc7wg7x189hq1vbfhh9p3ihrbnmqzh8"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (synopsis "Embedding of planar graphs")
     (description "The package provides a reference implementation of the
 linear time edge addition algorithm for embedding planar graphs and
@@ -498,9 +488,9 @@ isolating planarity obstructions.")
          "1rv2v42x2506x7f10349m1wpmmfxrv9l032bkminni2gbip9cjg0"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("igraph" ,igraph)))
+     (list igraph))
     (home-page "https://sourceforge.net/projects/rankwidth/")
     (synopsis "Rank-width and rank-decomposition of graphs")
     (description "rw computes rank-width and rank-decompositions
@@ -521,9 +511,9 @@ of graphs.")
          "08yw3maxhn5fl1lff81gmcrpa4j9aas4mmby1g9w5qcr0np82d1w"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("gd" ,gd)))
+     (list gd))
     (home-page "http://www.mcternan.me.uk/mscgen/")
     (synopsis "Message Sequence Chart Generator")
     (description "Mscgen is a small program that parses Message Sequence Chart
@@ -550,36 +540,28 @@ transformed into common image formats for display or printing.")
                 "0v58in4rwk9fhjarjw6xfxpx5zz2z13sy3yvd14b5kr0884yw6sz"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags
+     `(#:imported-modules (,@%gnu-build-system-modules
+                           (guix build python-build-system))
+       #:modules (,@%gnu-build-system-modules
+                  ((guix build python-build-system) #:select (site-packages)))
+       #:configure-flags
        (list (string-append "--with-boost="
                             (assoc-ref %build-inputs "boost"))
              (string-append "--with-python-module-path="
-                            (assoc-ref %outputs "out")
-                            "/lib/python"
-                            ,(version-major+minor
-                              (package-version
-                               (car (assoc-ref
-                                     (package-inputs this-package)
-                                     "python"))))
-                            "/site-packages/"))))
+                            (site-packages %build-inputs %outputs)))))
     (native-inputs
-     `(("gcc-10" ,gcc-10)
-       ("ncurses" ,ncurses)
-       ("pkg-config" ,pkg-config)))
+     (list ncurses pkg-config))
     (inputs
-     `(("boost" ,boost)
-       ("cairomm" ,cairomm)
-       ("cgal" ,cgal)
-       ("expat" ,expat)
-       ("gmp" ,gmp)
-       ("gtk+" ,gtk+)
-       ("python" ,python-wrapper)
-       ("sparsehash" ,sparsehash)))
+     (list boost
+           cairomm-1.14
+           cgal
+           expat
+           gmp
+           gtk+
+           python-wrapper
+           sparsehash))
     (propagated-inputs
-     `(("python-matplotlib" ,python-matplotlib)
-       ("python-numpy" ,python-numpy)
-       ("python-pycairo" ,python-pycairo)
-       ("python-scipy" ,python-scipy)))
+     (list python-matplotlib python-numpy python-pycairo python-scipy))
     (synopsis "Manipulate and analyze graphs with Python efficiently")
     (description "Graph-tool is an efficient Python module for manipulation
 and statistical analysis of graphs (a.k.a. networks).  Contrary to most other
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index adffd466a6..3f83c72599 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -21,11 +21,12 @@
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
 ;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net>
 ;;; Copyright © 2021 Andy Tai <atai@atai.org>
 ;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -118,85 +119,6 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
-(define-public eglexternalplatform
-  (package
-    (name "eglexternalplatform")
-    (version "1.1")
-    (source
-     (origin
-       (method git-fetch)
-       (uri
-        (git-reference
-         (url "https://github.com/NVIDIA/eglexternalplatform")
-         (commit version)))
-       (file-name
-        (git-file-name name version))
-       (sha256
-        (base32 "0lr5s2xa1zn220ghmbsiwgmx77l156wk54c7hybia0xpr9yr2nhb"))))
-    (build-system copy-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-pkgconfig
-           (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* "eglexternalplatform.pc"
-               (("/usr")
-                (assoc-ref outputs "out")))
-             #t))
-         (add-after 'install 'revise
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out")))
-               (mkdir-p (string-append out "/include/EGL"))
-               (rename-file
-                (string-append out "/interface")
-                (string-append out "/include/EGL"))
-               (mkdir-p (string-append out "/share/pkgconfig"))
-               (rename-file
-                (string-append out "/eglexternalplatform.pc")
-                (string-append out "/share/pkgconfig/eglexternalplatform.pc"))
-               (for-each delete-file-recursively
-                         (list
-                          (string-append out "/samples")
-                          (string-append out "/COPYING")
-                          (string-append out "/README.md"))))
-             #t)))))
-    (synopsis "EGL External Platform interface")
-    (description "EGLExternalPlatform is an specification of the EGL External
-Platform interface for writing EGL platforms and their interactions with modern
-window systems on top of existing low-level EGL platform implementations.  This
-keeps window system implementation specifics out of EGL drivers by using
-application-facing EGL functions.")
-    (home-page "https://github.com/NVIDIA/eglexternalplatform")
-    (license license:expat)))
-
-(define-public egl-wayland
-  (package
-    (name "egl-wayland")
-    (version "1.1.7")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/NVIDIA/egl-wayland")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0xcx1132zwyp4qps074m72ngjlfmysi1jc2d0lp1ml1r9bllkam6"))))
-    (build-system meson-build-system)
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (inputs
-     `(("mesa" ,mesa)
-       ("wayland" ,wayland)))
-    (propagated-inputs
-     `(("eglexternalplatform" ,eglexternalplatform)))
-    (synopsis "EGLStream-based Wayland external platform")
-    (description "EGL-Wayland is an implementation of a EGL External Platform
-library to add client-side Wayland support to EGL on top of EGLDevice and
-EGLStream families of extensions.")
-    (home-page "https://github.com/NVIDIA/egl-wayland")
-    (license license:expat)))
-
 (define-public mmm
   (package
     (name "mmm")
@@ -214,12 +136,9 @@ EGLStream families of extensions.")
         (base32 "1xmcv6rwinqsbr863rgl9005h2jlmd7k2qrwsc1h4fb8r61ykpjl"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("luajit" ,luajit)
-       ("pkg-config" ,pkg-config)))
+     (list luajit pkg-config))
     (inputs
-     `(("alsa" ,alsa-lib)
-       ("sdl" ,sdl)
-       ("sdl2" ,sdl2)))
+     (list alsa-lib sdl sdl2))
     (synopsis "Memory Mapped Machine")
     (description "MMM is a shared memory protocol for virtualising access to
 framebuffer graphics, audio output and input event.")
@@ -250,11 +169,7 @@ framebuffer graphics, audio output and input event.")
                (("^.*\\$srcdir/configure.*") ""))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool perl pkg-config))
     (inputs
      `(("alsa" ,alsa-lib)
        ("ffmpeg" ,ffmpeg)
@@ -267,7 +182,6 @@ framebuffer graphics, audio output and input event.")
        ("libcddb" ,libcddb)
        ("libdrm" ,libdrm)
        ("libtimidity" ,libtimidity)
-       ("linux-headers" ,linux-libre-headers)
        ("mad" ,libmad)
        ("mng" ,libmng)
        ("mpeg2" ,libmpeg2)
@@ -288,7 +202,7 @@ framebuffer graphics, audio output and input event.")
        ("xproto" ,xorgproto)
        ("zlib" ,zlib)))
     (propagated-inputs
-     `(("flux" ,flux)))
+     (list flux))
     (synopsis "DFB Graphics Library")
     (description "DirectFB is a graphics library which was designed with embedded
 systems in mind.  It offers maximum hardware accelerated performance at a
@@ -312,10 +226,7 @@ minimum of resource usage and overhead.")
         (base32 "11f3ypg0sdq5kj69zgz6kih1yrzgm48r16spyvzwvlswng147410"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (synopsis "Interface description language")
     (description "Flux is an interface description language used by DirectFB.
 Fluxcomp compiles .flux files to .cpp or .c files.")
@@ -347,7 +258,7 @@ Fluxcomp compiles .flux files to .cpp or .c files.")
                                 "/include/freetype2"))))
              #t)))))
     (native-inputs
-     `(("doxygen" ,doxygen)))
+     (list doxygen))
     (inputs
      `(("bzip2" ,lbzip2)
        ("freetype" ,freetype)
@@ -453,8 +364,7 @@ with the @command{autotrace} utility or as a C library, @code{libautotrace}.")
          (list
           "-DEMBREE_ISPC_SUPPORT=OFF")))
     (inputs
-     `(("tbb" ,tbb)
-       ("glfw" ,glfw)))
+     (list tbb glfw))
     (home-page "https://www.embree.org/")
     (synopsis "High performance ray tracing kernels")
     (description
@@ -483,13 +393,9 @@ applications.")
        (list (string-append "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath="
                             (assoc-ref %outputs "out") "/lib"))))
     (inputs
-     `(("boost" ,boost)
-       ("c-blosc" ,c-blosc)
-       ("ilmbase" ,ilmbase)
-       ("tbb" ,tbb)
-       ("zlib" ,zlib)))
+     (list boost c-blosc ilmbase tbb-2020 zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.openvdb.org/")
     (synopsis "Sparse volume data structure and tools")
     (description "OpenVDB is a C++ library comprising a hierarchical data
@@ -502,14 +408,14 @@ typically encountered in feature film production.")
 (define-public blender
   (package
     (name "blender")
-    (version "2.92.0")
+    (version "2.93.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.blender.org/source/"
                                   "blender-" version ".tar.xz"))
               (sha256
                (base32
-                "15a5vffn18a920286x0avbc2rap56k6y531wgibq68r90g2cz4g7"))))
+                "19i84bh8jiamf38fj9p24q8w8fhg3hhl49940dh74h4flyfyqfg7"))))
     (build-system cmake-build-system)
     (arguments
       (let ((python-version (version-major+minor (package-version python))))
@@ -552,13 +458,19 @@ typically encountered in feature film production.")
                #t))
            (add-after 'set-paths 'add-ilmbase-include-path
              (lambda* (#:key inputs #:allow-other-keys)
-               ;; OpenEXR propagates ilmbase, but its include files do not appear
-               ;; in the CPATH, so we need to add "$ilmbase/include/OpenEXR/" to
-               ;; the CPATH to satisfy the dependency on "half.h".
-               (setenv "CPATH"
-                       (string-append
-                        (search-input-directory inputs "include/OpenEXR")
-                        ":" (or (getenv "CPATH") "")))))))))
+               ;; OpenEXR propagates ilmbase, but its include files do not
+               ;; appear in the C_INCLUDE_PATH, so we need to add
+               ;; "$ilmbase/include/OpenEXR/" to the C_INCLUDE_PATH to satisfy
+               ;; the dependency on "half.h" and "Iex.h".
+               (let ((headers (string-append
+                               (assoc-ref inputs "ilmbase")
+                               "/include/OpenEXR")))
+                 (setenv "C_INCLUDE_PATH"
+                         (string-append headers ":"
+                                        (or (getenv "C_INCLUDE_PATH") "")))
+                 (setenv "CPLUS_INCLUDE_PATH"
+                         (string-append headers ":"
+                                        (or (getenv "CPLUS_INCLUDE_PATH") ""))))))))))
     (inputs
      `(("boost" ,boost)
        ("jemalloc" ,jemalloc)
@@ -567,7 +479,7 @@ typically encountered in feature film production.")
        ("libxrender" ,libxrender)
        ("opencolorio" ,opencolorio)
        ("openimageio" ,openimageio)
-       ("openexr" ,openexr)
+       ("openexr" ,openexr-2)
        ("opensubdiv" ,opensubdiv)
        ("ilmbase" ,ilmbase)
        ("openjpeg" ,openjpeg)
@@ -585,7 +497,7 @@ typically encountered in feature film production.")
        ("python" ,python)
        ("python-numpy" ,python-numpy)
        ("openvdb" ,openvdb)
-       ("tbb" ,tbb)
+       ("tbb" ,tbb-2020)
        ("zlib" ,zlib)
        ("embree" ,embree)))
     (home-page "https://blender.org/")
@@ -666,7 +578,7 @@ application can be customized via its API for Python scripting.")
        ("libx11" ,libx11)
        ("opencolorio" ,opencolorio)
        ("openimageio" ,openimageio)
-       ("openexr" ,openexr)
+       ("openexr" ,openexr-2)
        ("ilmbase" ,ilmbase)
        ("openjpeg" ,openjpeg)
        ("libjpeg" ,libjpeg-turbo)
@@ -697,7 +609,7 @@ OpenGL 3.  It is retained for use with older computers.")
 (define-public goxel
   (package
     (name "goxel")
-    (version "0.10.7")
+    (version "0.10.8")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -706,7 +618,7 @@ OpenGL 3.  It is retained for use with older computers.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1v6m6nhl1if8ik5bmblhq46bip6y2qz18a04s8a9awb4yh9ls039"))))
+                "0qvz566awhp03yp696fn3c80hnky41fpbi4sqg4lx69ibx4zvl9k"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f
@@ -714,7 +626,7 @@ OpenGL 3.  It is retained for use with older computers.")
        #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
                           "release")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("gtk3" ,gtk+)
        ("glfw" ,glfw)
@@ -742,7 +654,7 @@ and export to various formats including the format used by Magicavoxel.")
                 "1rhyqfhzifdj7yibyanph3rh13ykw3i98dnn8mz65j780472hw28"))))
     (build-system cmake-build-system)
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "http://www.assimp.org/")
     (synopsis "Asset import library")
     (description
@@ -775,9 +687,7 @@ more.")
                             ,name "-" ,version))
        #:tests? #f))                    ; no test target
     (inputs
-     `(("mpfr" ,mpfr)
-       ("gmp" ,gmp)
-       ("boost" ,boost)))
+     (list mpfr gmp boost))
     (home-page "https://www.cgal.org/")
     (synopsis "Computational geometry algorithms library")
     (description
@@ -794,6 +704,28 @@ many more.")
     ;; permissive licenses.
     (license license:gpl3+)))
 
+(define-public imath
+  (package
+    (name "imath")
+    (version "3.1.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/AcademySoftwareFoundation/Imath")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1nyld18mf220ghm1vidnfnn0rdns9z5i4l9s66xgd0kfdgarb31f"))))
+    (build-system cmake-build-system)
+    (home-page "https://github.com/AcademySoftwareFoundation/Imath")
+    (synopsis "Library of math operations for computer graphics")
+    (description
+     "Imath is a C++ representation of 2D and 3D vectors and matrices and other
+mathematical objects, functions, and data types common in computer graphics
+applications, including the \"half\" 16-bit floating-point type.")
+    (license license:bsd-3)))
+
 (define-public ilmbase
   (package
     (name "ilmbase")
@@ -826,94 +758,88 @@ exception-handling library.")
     (license license:bsd-3)))
 
 (define-public lib2geom
-  ;; Use the latest master commit, as the 1.0 release suffer build problems.
-  (let ((revision "4")
-        (commit "b29d60e49a58f4e8069544b44863b1a623e4ee59"))
-    (package
-      (name "lib2geom")
-      (version (git-version "1.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://gitlab.com/inkscape/lib2geom.git")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0xd8f3cgfnipdav4w8j54r7hzy9f3m7xk42ppcfhdjz2hriggyk6"))
-                (patches
-                 ;; Patch submitted to upstream (see:
-                 ;; https://gitlab.com/inkscape/lib2geom/-/merge_requests/32).
-                 (search-patches "lib2geom-fix-tests.patch"))
-                (modules '((guix build utils)))
-                (snippet
-                 '(begin
-                    ;; Fix py2geom module initialization (see:
-                    ;; https://gitlab.com/inkscape/lib2geom/merge_requests/18).
-                    (substitute* "src/py2geom/__init__.py"
-                      (("_py2geom") "py2geom._py2geom"))
-                    #t))))
-      (build-system cmake-build-system)
-      (arguments
-       `(#:imported-modules ((guix build python-build-system)
-                             ,@%cmake-build-system-modules)
-         #:configure-flags '("-D2GEOM_BUILD_SHARED=ON"
-                             "-D2GEOM_BOOST_PYTHON=ON"
-                             ;; Compiling the Cython bindings fail (see:
-                             ;; https://gitlab.com/inkscape/lib2geom/issues/21).
-                             "-D2GEOM_CYTHON_BINDINGS=OFF")
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'patch-python-lib-install-path
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let* ((python-version (@ (guix build python-build-system)
-                                         python-version))
-                      (python-maj-min-version (python-version
-                                               (assoc-ref inputs "python")))
-                      (site-package (string-append
-                                     (assoc-ref outputs "out")
-                                     "/lib/python" python-maj-min-version
-                                     "/site-packages")))
-                 (substitute* '("src/cython/CMakeLists.txt"
-                                "src/py2geom/CMakeLists.txt")
-                   (("PYTHON_LIB_INSTALL \"[^\"]*\"")
-                    (format #f "PYTHON_LIB_INSTALL ~s" site-package))))
-               #t)))))
-      (native-inputs `(("python" ,python-wrapper)
-                       ("googletest" ,googletest)
-                       ("pkg-config" ,pkg-config)))
-      (inputs `(("cairo" ,cairo)
-                ("pycairo" ,python-pycairo)
-                ("double-conversion" ,double-conversion)
-                ("glib" ,glib)
-                ("gsl" ,gsl)))
-      (propagated-inputs
-       `(("boost" ,boost)))             ;referred to in 2geom/pathvector.h.
-      (home-page "https://gitlab.com/inkscape/lib2geom/")
-      (synopsis "C++ 2D graphics library")
-      (description "2geom is a C++ library of mathematics for paths, curves,
+  (package
+    (name "lib2geom")
+    (version "1.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/inkscape/lib2geom.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "03bx9k1m4bfhmx0ldsg0bks6i8h7fmvl5vbg6gmpq0bk0nkmpnmv"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:imported-modules ((guix build python-build-system)
+                           ,@%cmake-build-system-modules)
+       #:configure-flags '("-D2GEOM_BUILD_SHARED=ON"
+                           "-D2GEOM_BOOST_PYTHON=ON"
+                           ;; Compiling the Cython bindings fail (see:
+                           ;; https://gitlab.com/inkscape/lib2geom/issues/21).
+                           "-D2GEOM_CYTHON_BINDINGS=OFF")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-python-lib-install-path
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((python-version (@ (guix build python-build-system)
+                                       python-version))
+                    (python-maj-min-version (python-version
+                                             (assoc-ref inputs "python")))
+                    (site-package (string-append
+                                   (assoc-ref outputs "out")
+                                   "/lib/python" python-maj-min-version
+                                   "/site-packages")))
+               (substitute* '("src/cython/CMakeLists.txt"
+                              "src/py2geom/CMakeLists.txt")
+                 (("PYTHON_LIB_INSTALL \"[^\"]*\"")
+                  (format #f "PYTHON_LIB_INSTALL ~s" site-package))))))
+         ,@(if (target-x86-32?)
+               `((add-after 'unpack 'skip-faulty-test
+                   (lambda _
+                     ;; This test fails on i686 when comparing floating point
+                     ;; values, probably due to excess precision.  However,
+                     ;; '-fexcess-precision' is not implemented for C++ in
+                     ;; GCC 10 so just skip it.
+                     (substitute* "tests/CMakeLists.txt"
+                       (("bezier-test") "")))))
+               '()))))
+    (native-inputs `(("python" ,python-wrapper)
+                     ("googletest" ,googletest)
+                     ("pkg-config" ,pkg-config)))
+    (inputs `(("cairo" ,cairo)
+              ("pycairo" ,python-pycairo)
+              ("double-conversion" ,double-conversion)
+              ("glib" ,glib)
+              ("gsl" ,gsl)))
+    (propagated-inputs
+     (list boost))               ;referred to in 2geom/pathvector.h.
+    (home-page "https://gitlab.com/inkscape/lib2geom/")
+    (synopsis "C++ 2D graphics library")
+    (description "2geom is a C++ library of mathematics for paths, curves,
 and other geometric calculations.  Designed for vector graphics, it tackles
 Bézier curves, conic sections, paths, intersections, transformations, and
 basic geometries.")
-      ;; Because the library is linked with the GNU Scientific Library
-      ;; (GPLv3+), the combined work must be licensed as GPLv3+ (see:
-      ;; https://gitlab.com/inkscape/inkscape/issues/784).
-      (license license:gpl3+))))
+    ;; Because the library is linked with the GNU Scientific Library
+    ;; (GPLv3+), the combined work must be licensed as GPLv3+ (see:
+    ;; https://gitlab.com/inkscape/inkscape/issues/784).
+    (license license:gpl3+)))
 
 (define-public pstoedit
   (package
     (name "pstoedit")
-    (version "3.75")
+    (version "3.77")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/pstoedit/pstoedit/"
                                   version "/pstoedit-" version ".tar.gz"))
               (sha256
                (base32
-                "1kv46g2wsvsvcngkavxl5gnw3l6g5xqnh4kmyx4b39a01d8xiddp"))))
+                "02av76j75g5sq3bg353yl6dlllda9ihmmk4c8hvgiscix816nv4s"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("ghostscript" ,ghostscript)
        ("imagemagick" ,imagemagick)
@@ -992,9 +918,7 @@ other vector formats such as:
             (base32 "1xhk34pzpha6k5l2j150capq66y8czhmsi04ib09wvb34ahqxpby"))))
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("freetype" ,freetype)
-       ("stb-rect-pack" ,stb-rect-pack)
-       ("stb-truetype" ,stb-truetype)))
+     (list freetype stb-rect-pack stb-truetype))
     (home-page "https://github.com/ocornut/imgui")
     (synopsis "Immediate-mode C++ GUI library with minimal dependencies")
     (description
@@ -1061,16 +985,16 @@ operating system features.")
        ("googletest" ,googletest-1.8)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("font-dejavu" ,font-dejavu)
-       ("freeimage" ,freeimage)
-       ("freetype" ,freetype)
-       ("glu" ,glu)
-       ("libxaw" ,libxaw)
-       ("libxrandr" ,libxrandr)
-       ("pugixml" ,pugixml)
-       ("sdl2" ,sdl2)
-       ("tinyxml" ,tinyxml)
-       ("zziplib" ,zziplib)))
+     (list font-dejavu
+           freeimage
+           freetype
+           glu
+           libxaw
+           libxrandr
+           pugixml
+           sdl2
+           tinyxml
+           zziplib))
     (synopsis "Scene-oriented, flexible 3D engine written in C++")
     (description
      "OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented,
@@ -1083,17 +1007,46 @@ graphics.")
 (define-public openexr
   (package
     (name "openexr")
+    (version "3.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/AcademySoftwareFoundation/openexr")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0vyclrrikphwkkpyjg8kzh3qzflzk3d6xsidgqllgfdgllr9wmgv"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         ;; /var/tmp does not exist in the Guix build environment
+         (add-after 'unpack 'patch-test-directory
+           (lambda _
+             (substitute* '("src/test/OpenEXRUtilTest/tmpDir.h"
+                            "src/test/OpenEXRFuzzTest/tmpDir.h"
+                            "src/test/OpenEXRTest/tmpDir.h"
+                            "src/test/OpenEXRCoreTest/main.cpp")
+               (("/var/tmp") "/tmp")))))))
+    (inputs
+     (list imath zlib))
+    (home-page "https://www.openexr.com/")
+    (synopsis "High-dynamic-range file format library")
+    (description
+     "OpenEXR provides the specification and reference implementation of the
+EXR file format.  The purpose of EXR format is to accurately and efficiently
+represent high-dynamic-range scene-linear image data and associated metadata,
+with strong support for multi-part, multi-channel use cases.")
+    (license license:bsd-3)))
+
+(define-public openexr-2
+  (package
+    (name "openexr")
     (version (package-version ilmbase))
     (source (origin
               (inherit (package-source ilmbase))
-              (file-name (git-file-name "openexr" version))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  (substitute* (find-files "OpenEXR" "tmpDir\\.h")
-                    (("\"/var/tmp/\"")
-                     "\"/tmp/\""))
-                  #t))))
+              (file-name (git-file-name "openexr" version))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -1102,6 +1055,12 @@ graphics.")
            (lambda _
              (chdir "OpenEXR")
              #t))
+         (add-after 'change-directory 'patch-test-directory
+           (lambda _
+             (substitute* '("IlmImfFuzzTest/tmpDir.h"
+                            "IlmImfTest/tmpDir.h"
+                            "IlmImfUtilTest/tmpDir.h")
+               (("/var/tmp") "/tmp"))))
          (add-after 'change-directory 'increase-test-timeout
            (lambda _
              ;; On armhf-linux, we need to override the CTest default
@@ -1123,17 +1082,14 @@ graphics.")
                      #t)))
                '()))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
-     `(("ilmbase" ,ilmbase)                       ;used in public headers
-       ("zlib" ,zlib)))                           ;OpenEXR.pc reads "-lz"
-    (home-page "https://www.openexr.com/")
-    (synopsis "High-dynamic range file format library")
-    (description
-     "OpenEXR is a high dynamic-range (HDR) image file format developed for
-use in computer imaging applications.  The IlmImf C++ libraries support
-storage of the \"EXR\" file format for storing 16-bit floating-point images.")
-    (license license:bsd-3)))
+     (list ilmbase ;used in public headers
+           zlib))                           ;OpenEXR.pc reads "-lz"
+    (home-page (package-home-page openexr))
+    (synopsis (package-synopsis openexr))
+    (description (package-description openexr))
+    (license (package-license openexr))))
 
 (define-public openimageio
   (package
@@ -1156,7 +1112,7 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.")
      `(#:tests? #f
        #:configure-flags (list "-DUSE_EXTERNAL_PUGIXML=1")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("boost" ,boost)
        ("fmt" ,fmt)
@@ -1165,7 +1121,7 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.")
        ("libjpeg" ,libjpeg-turbo)
        ("libtiff" ,libtiff)
        ("giflib" ,giflib)
-       ("openexr" ,openexr)
+       ("openexr" ,openexr-2)
        ("ilmbase" ,ilmbase)
        ("pugixml" ,pugixml)
        ("python" ,python-wrapper)
@@ -1207,8 +1163,7 @@ visual effects work for film.")
                             (assoc-ref %outputs "out") "/lib:"
                             (assoc-ref %outputs "out") "/lib64"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("unzip" ,unzip)))
+     (list pkg-config unzip))
     (inputs
      `(("giflib" ,giflib)
        ("libjpeg" ,libjpeg-turbo)       ; required for the JPEG texture plugin.
@@ -1227,32 +1182,56 @@ virtual reality, scientific visualization and modeling.")
     ;; LGPL 2.1, but with 4 exceptions. This version is called OSGPL.
     (license license:lgpl2.1)))
 
-;; We need this for simgear
-(define-public openscenegraph-3.4
-  (package (inherit openscenegraph)
-    (name "openscenegraph")
-    (version "3.4.1")
+(define-public gr-framework
+  (package
+    (name "gr-framework")
+    (version "0.58.1")
     (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/openscenegraph/OpenSceneGraph")
-             (commit (string-append "OpenSceneGraph-" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "1fbzg1ihjpxk6smlq80p3h3ggllbr16ihd2fxpfwzam8yr8yxip9"))))
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/sciapp/gr")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0q1rz4iyxbh0dc22y4w28ry3hr0yypdwdm6pw2zlwgjya7wkbvsw"))
+        (modules '((guix build utils)))
+        (snippet
+         '(begin
+            (delete-file-recursively "3rdparty")
+            #t))))
+    (build-system cmake-build-system)
     (arguments
-     (substitute-keyword-arguments (package-arguments openscenegraph)
-       ((#:configure-flags flags)
-        `(cons
-          ;; The jpeg plugin requires conversion between integers and booleans
-          "-DCMAKE_CXX_FLAGS=-fpermissive"
-          ,flags))))
+     `(#:tests? #f))    ; no test target
     (inputs
-     `(("libjpeg" ,libjpeg-turbo)
-       ,@(package-inputs openscenegraph)))))
-
+     `(("bzip2" ,bzip2)
+       ("cairo" ,cairo)
+       ("fontconfig" ,fontconfig)
+       ("ffmpeg" ,ffmpeg)
+       ("freetype" ,freetype)
+       ("ghostscript" ,ghostscript)
+       ("glfw" ,glfw)
+       ("libjpeg-turbo" ,libjpeg-turbo)
+       ("libpng" ,libpng)
+       ("libtiff" ,libtiff)
+       ("libx11" ,libx11)
+       ("libxft" ,libxft)
+       ("libxt" ,libxt)
+       ("pixman" ,pixman)
+       ("qtbase" ,qtbase-5)
+       ("qhull" ,qhull)
+       ("zlib" ,zlib)))
+    (home-page "https://gr-framework.org/")
+    (synopsis "Graphics library for visualisation applications")
+    (description "GR is a universal framework for cross-platform visualization
+applications.  It offers developers a compact, portable and consistent graphics
+library for their programs.  Applications range from publication quality 2D
+graphs to the representation of complex 3D scenes.  GR is essentially based on
+an implementation of a @acronym{GKS, Graphical Kernel System}.  As a
+self-contained system it can quickly and easily be integrated into existing
+applications (i.e. using the @code{ctypes} mechanism in Python or @code{ccall}
+in Julia).")
+    (license license:expat)))
 
 (define-public openmw-openscenegraph
   ;; OpenMW prefers its own fork of openscenegraph:
@@ -1310,15 +1289,13 @@ virtual reality, scientific visualization and modeling.")
                   #t))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
      `(("boost" ,boost)
        ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
        ("libtiff" ,libtiff)
-       ("openexr" ,openexr)
+       ("openexr" ,openexr-2)
        ("sdl" ,sdl)
        ("zlib" ,zlib)))
     (arguments
@@ -1395,11 +1372,7 @@ realistic reflections, shading, perspective and other effects.")
     ;; These libraries are listed in the "Required" section of the pkg-config
     ;; file.
     (propagated-inputs
-     `(("librsvg" ,librsvg)
-       ("cairo" ,cairo)
-       ("pango" ,pango)
-       ("libxml2" ,libxml2)
-       ("python2-enum34" ,python2-enum34)))
+     (list librsvg cairo pango libxml2 python2-enum34))
     (inputs
      `(("gdk-pixbuf" ,gdk-pixbuf)
        ("libpng" ,libpng-1.2)
@@ -1439,7 +1412,7 @@ and is connected to the programming logic using data bindings and commands.")
     (arguments '(#:tests? #f))                    ;no 'test' target
 
     ;; Headers include OpenEXR and IlmBase headers.
-    (propagated-inputs `(("openexr" ,openexr)))
+    (propagated-inputs (list openexr-2))
 
     (home-page "http://ampasctl.sourceforge.net")
     (synopsis "Color Transformation Language")
@@ -1500,13 +1473,9 @@ exec -a \"$0\" ~a/.brdf-real~%"
                             (chmod "brdf" #o555)))
                         #t)))))
       (native-inputs
-       `(("qttools" ,qttools))) ;for 'qmake'
+       (list qttools)) ;for 'qmake'
       (inputs
-       `(("qtbase" ,qtbase-5)
-         ("mesa" ,mesa)
-         ("glew" ,glew)
-         ("freeglut" ,freeglut)
-         ("zlib" ,zlib)))
+       (list qtbase-5 mesa glew freeglut zlib))
       (home-page "https://www.disneyanimation.com/technology/brdf.html")
       (synopsis
        "Analyze bidirectional reflectance distribution functions (BRDFs)")
@@ -1538,7 +1507,8 @@ and understanding different BRDFs (and other component functions).")
                                         version ".tar.gz")))
               (sha256
                (base32 "07wii4i824vy9qsvjsgqxppgqmfdxq0xa87i5yk53fijriadq7mb"))
-              (patches (search-patches "agg-am_c_prototype.patch"))))
+              (patches (search-patches "agg-am_c_prototype.patch"
+                                       "agg-2.5-gcc8.patch"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -1555,14 +1525,9 @@ and understanding different BRDFs (and other component functions).")
              (substitute* "autogen.sh" (("./configure") "# ./configure"))
              (invoke "sh" "autogen.sh"))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("libtool" ,libtool)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list pkg-config libtool autoconf automake))
     (inputs
-     `(("libx11" ,libx11)
-       ("freetype" ,freetype)
-       ("sdl" ,sdl)))
+     (list libx11 freetype sdl))
 
     ;; Antigrain.com was discontinued.
     (home-page "http://agg.sourceforge.net/antigrain.com/index.html")
@@ -1590,7 +1555,7 @@ rendering @acronym{SVG, Scalable Vector Graphics}.")
                   (replace 'check
                     (lambda _ (invoke "pytest" "pastel" "tests/"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/sdispater/pastel")
     (synopsis "Library to colorize strings in your terminal")
     (description "Pastel is a simple library to help you colorize strings in
@@ -1661,7 +1626,7 @@ your terminal.")
                  `("PERL5LIB" ":" prefix (,perl5lib)))
                #t))))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     ;; TODO: Add missing optional dependency: facedetect.
     (inputs
      `(("imagemagick" ,imagemagick)
@@ -1711,15 +1676,15 @@ requirements.")
                       (setenv "DISPLAY" ":1")
                       #t)))))
     (native-inputs
-     `(("xorg-server" ,xorg-server-for-tests)))
+     (list xorg-server-for-tests))
     (inputs
-     `(("glew" ,glew)
-       ("libxrandr" ,libxrandr)
-       ("libxcursor" ,libxcursor)
-       ("libxinerama" ,libxinerama)
-       ("libxi" ,libxi)
-       ("zlib" ,zlib)
-       ("glfw" ,glfw)))
+     (list glew
+           libxrandr
+           libxcursor
+           libxinerama
+           libxi
+           zlib
+           glfw))
     (home-page "https://graphics.pixar.com/opensubdiv/")
     (synopsis "High performance subdivision surface evaluation")
     (description "OpenSubdiv is a set of libraries that implement high
@@ -1756,8 +1721,7 @@ and GPU architectures.")
            (add-before 'build 'skip-example
              (lambda _ (chdir "src") #t)))))
       (inputs
-       `(("glew" ,glew)
-         ("freeglut" ,freeglut)))
+       (list glew freeglut))
       (synopsis "Library for rendering Constructive Solid Geometry (CSG)")
       (description
        "OpenCSG is a library for rendering Constructive Solid Geometry (CSG) using
@@ -1794,12 +1758,9 @@ or by subtracting one shape from the other.")
              #t))))
       (build-system cmake-build-system)
       (native-inputs
-       `(("doxygen" ,doxygen)
-         ("graphviz" ,graphviz)))
+       (list doxygen graphviz))
       (inputs
-       `(("boost" ,boost)
-         ("freeglut" ,freeglut)
-         ("glew" ,glew)))
+       (list boost freeglut glew))
       (arguments
        `(#:configure-flags
          (list
@@ -1847,12 +1808,9 @@ software in the scientific and engineering community.")
              #t))))
     (build-system cmake-build-system)
     (native-inputs
-      `(("doxygen" ,doxygen)
-        ("graphviz" ,graphviz)))
+      (list doxygen graphviz))
     (inputs
-      `(("boost" ,boost)
-        ("freeglut" ,freeglut)
-        ("glew" ,glew)))
+      (list boost freeglut glew))
     (arguments
       `(#:configure-flags
         (list
@@ -1926,22 +1884,21 @@ Automated palette selection is supported.")
        '(#:configure-flags
          (list "-DTESTS=ON" "-DTOOLS=ON" "-DKIS_TABLET=ON")))
       (native-inputs
-       `(("extra-cmake-modules" ,extra-cmake-modules)
-         ("pkg-config" ,pkg-config)))
+       (list extra-cmake-modules pkg-config))
       (inputs
-       `(("giflib" ,giflib)
-         ("karchive" ,karchive)
-         ("kdnssd" ,kdnssd)
-         ("libmicrohttpd" ,libmicrohttpd)
-         ("libsodium" ,libsodium)
-         ("libvpx" ,libvpx)
-         ("libxi" ,libxi)
-         ;; ("miniupnpc" ,miniupnpc) ;segfaults for some reason
-         ("qtbase" ,qtbase-5)
-         ("qtkeychain" ,qtkeychain)
-         ("qtmultimedia" ,qtmultimedia)
-         ("qtsvg" ,qtsvg)
-         ("qtx11extras" ,qtx11extras)))
+       (list giflib
+             karchive
+             kdnssd
+             libmicrohttpd
+             libsodium
+             libvpx
+             libxi
+             ;; ("miniupnpc" ,miniupnpc) ;segfaults for some reason
+             qtbase-5
+             qtkeychain
+             qtmultimedia
+             qtsvg
+             qtx11extras))
       (home-page "https://drawpile.net")
       (synopsis "Collaborative drawing program")
       (description "Drawpile is a drawing program that allows share the canvas
@@ -1986,9 +1943,7 @@ Some feature highlights:
        ("v4l" ,v4l-utils)
        ("vulkan-loader" ,vulkan-loader)))
     (native-inputs
-     `(("eigen" ,eigen)
-       ("pkg-config" ,pkg-config)
-       ("vulkan-headers" ,vulkan-headers)))
+     (list eigen pkg-config vulkan-headers))
     (arguments
      `(#:configure-flags
        (list "-Dinstall-active-runtime=false")))
diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm
index 5fa8d5a80c..ab39e49d7d 100644
--- a/gnu/packages/graphviz.scm
+++ b/gnu/packages/graphviz.scm
@@ -10,6 +10,8 @@
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
+;;; Copyright © 2021 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2021 Justin Veilleux <terramorpha@cock.li>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -50,6 +52,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages sphinx)
@@ -63,7 +66,7 @@
 (define-public graphviz
   (package
     (name "graphviz")
-    (version "2.48.0")
+    (version "2.49.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://gitlab.com/api/v4/projects/4207231"
@@ -71,7 +74,7 @@
                                   version "/graphviz-" version ".tar.xz"))
               (sha256
                (base32
-                "0lgv508zyfdv4wl95avaj58nmjhbvb5za65nhrkl5nn818ayvggn"))))
+                "042s6mbi681pwgffqww2ap780230nrsrfpfiz9a41dcjb5a0m524"))))
     (build-system gnu-build-system)
     (arguments
      ;; FIXME: rtest/rtest.sh is a ksh script (!).  Add ksh as an input.
@@ -114,9 +117,7 @@
        ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)))
     (native-inputs
-     `(("bison" ,bison)
-       ("swig" ,swig)
-       ("pkg-config" ,pkg-config)))
+     (list bison swig pkg-config))
     (outputs '("out" "doc"))                      ; 5 MiB of html + pdfs
     (home-page "https://www.graphviz.org/")
     (synopsis "Graph visualization software")
@@ -165,13 +166,13 @@ interfaces for other technical domains.")
                 (lambda _
                   (invoke (which "sh") "autogen.sh" "NOCONFIG") #t))))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("flex" ,flex)
-         ("perl" ,perl)
-         ("tcl" ,tcl)
-         ,@(package-native-inputs graphviz))))))
+       (modify-inputs (package-native-inputs graphviz)
+         (prepend autoconf
+                  automake
+                  libtool
+                  flex
+                  perl
+                  tcl))))))
 
 (define-public python-graphviz
   (package
@@ -193,14 +194,13 @@ interfaces for other technical domains.")
                           (format #t "test suite not run~%"))
                       #t)))))
     (native-inputs
-     `(("unzip" ,unzip)
-
-       ;; For tests.
-       ("graphviz" ,graphviz)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-mock" ,python-pytest-mock)))
+     (list unzip
+           ;; For tests.
+           graphviz
+           python-mock
+           python-pytest
+           python-pytest-cov
+           python-pytest-mock))
     (home-page "https://github.com/xflr6/graphviz")
     (synopsis "Simple Python interface for Graphviz")
     (description
@@ -227,12 +227,10 @@ visualization tool suite.")
          "0jqc3dzy9n0hn3b99zq8jp53901zpjzvvi5ns5mbaxg8kdrb1lfx"))))
     (build-system python-build-system)
     (inputs
-     `(("graphviz" ,graphviz)))
+     (list graphviz))
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-doctest-ignore-unicode" ,python-doctest-ignore-unicode)))
+     (list python-nose python-mock python-pytest
+           python-doctest-ignore-unicode))
     (home-page "https://pygraphviz.github.io")
     (synopsis "Python interface to Graphviz")
     (description "PyGraphviz is a Python interface to the Graphviz graph
@@ -244,7 +242,7 @@ structure and layout algorithms.")
 (define-public python-uqbar
   (package
     (name "python-uqbar")
-    (version "0.5.1")
+    (version "0.5.6")
     (source
      (origin
        (method git-fetch)
@@ -254,7 +252,7 @@ structure and layout algorithms.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0413nyhd8z8v3lvsgaghhafnyxg90fi1q80j1kbl21gpmpnc9a7n"))))
+         "1ml3x2mf7nlnvrh9lari5yk0sz2mmg39jwsbjxnpzhnw4kcwpdrs"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -263,8 +261,8 @@ structure and layout algorithms.")
            (lambda _
              (substitute* "setup.py"
                ;; Latest versions of sphink-rtd-theme require npm to build.
-               (("sphinx-rtd-theme >= 0.4.0") "sphinx-rtd-theme >= 0.2.4")
-               (("black == 19.10b0") "black >= 19.10b0"))
+               (("sphinx-rtd-theme >= 0.5.0") "sphinx-rtd-theme >= 0.2.4")
+               (("black") "black >= 19.10b0"))
              #t))
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
@@ -272,17 +270,15 @@ structure and layout algorithms.")
                (invoke "python" "-m" "pytest" "tests"))
              #t)))))
     (native-inputs
-     `(("graphviz" ,graphviz)
-       ("python-flake8" ,python-flake8)
-       ("python-isort" ,python-isort)
-       ("python-mypy" ,python-mypy)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list graphviz
+           python-flake8
+           python-isort
+           python-mypy
+           python-pytest
+           python-pytest-cov))
     (propagated-inputs
-     `(("python-black" ,python-black)
-       ("python-sphinx" ,python-sphinx)
-       ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
-       ("python-unidecode" ,python-unidecode)))
+     (list python-black python-sphinx python-sphinx-rtd-theme
+           python-unidecode))
     (home-page "https://github.com/josiah-wolf-oberholtzer/uqbar")
     (synopsis "Tools for building documentation with Sphinx, Graphviz and LaTeX")
     (description
@@ -314,10 +310,10 @@ Graphviz and LaTeX.")
        ;; See <http://sourceforge.net/p/gts/bugs/41/>.
        #:tests? #f))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
      ;; The gts.pc file has glib-2.0 as required.
-     `(("glib" ,glib)))
+     (list glib))
     (home-page "http://gts.sourceforge.net/")
 
     ;; Note: Despite the name, this is not official GNU software.
@@ -351,16 +347,18 @@ Graphviz and LaTeX.")
                     (assoc-ref inputs "gtk+") "/lib/girepository-1.0"
                     ":" (assoc-ref inputs "pango") "/lib/girepository-1.0"
                     ":" (assoc-ref inputs "gdk-pixbuf") "/lib/girepository-1.0"
-                    ":" (assoc-ref inputs "atk") "/lib/girepository-1.0")))
+                    ":" (assoc-ref inputs "atk") "/lib/girepository-1.0"
+                    ":" (assoc-ref inputs "harfbuzz") "/lib/girepository-1.0")))
                `("PATH" ":" prefix
                  (,(dirname (search-input-file inputs "bin/dot"))))))))))
     (inputs
-     `(("atk" ,atk)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
-       ("graphviz" ,graphviz)
-       ("gtk+" ,gtk+)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)))
+     (list atk
+           librsvg
+           harfbuzz
+           graphviz
+           gtk+
+           python-pycairo
+           python-pygobject))
     (home-page "https://pypi.org/project/xdot/")
     (synopsis "Interactive viewer for graphviz dot files")
     (description "Xdot is an interactive viewer for graphs written in
@@ -395,10 +393,9 @@ can be used either as a standalone application, or as a Python library.")
              #t)))))
     (native-inputs
      ;; For tests.
-     `(("graphviz" ,graphviz)
-       ("python-chardet" ,python-chardet)))
+     (list graphviz python-chardet))
     (propagated-inputs
-     `(("python-pyparsing" ,python-pyparsing)))
+     (list python-pyparsing))
     (home-page "https://github.com/pydot/pydot")
     (synopsis "Python interface to Graphviz's DOT language")
     (description
@@ -423,10 +420,9 @@ graphs in Graphviz's DOT language, written in pure Python.")
     (arguments
      `(#:python ,python-2))
     (inputs
-     `(("texlive-latex-preview" ,texlive-latex-preview)
-       ("graphviz" ,graphviz)))
+     (list texlive-latex-preview graphviz))
     (propagated-inputs
-     `(("python-pyparsing" ,python2-pyparsing)))
+     (list python2-pyparsing))
     (home-page "https://github.com/kjellmf/dot2tex")
     (synopsis "Graphviz to LaTeX converter")
     (description
@@ -441,3 +437,45 @@ This approach allows:
 @item Using backend specific styles to customize the output
 @end itemize")
     (license license:expat)))
+
+(define-public gprof2dot
+  (package
+    (name "gprof2dot")
+    (version "2021.02.21")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jrfonseca/gprof2dot")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1jjhsjf5fdi1fkn7mvhnzkh6cynl8gcjrygd3cya5mmda3akhzic"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "tests/test.py")))))))
+    (native-inputs
+     (list graphviz))
+    (home-page "https://github.com/jrfonseca/gprof2dot")
+    (synopsis "Generate a dot graph from the output of several profilers")
+    (description "This package provides a Python script to convert the output
+from many profilers into a dot graph.
+
+It can:
+
+@itemize
+
+@item prune nodes and edges below a certain threshold;
+@item use an heuristic to propagate time inside mutually recursive functions;
+@item use color efficiently to draw attention to hot-spots;
+@item work on any platform where Python and Graphviz is available.
+
+@end itemize")
+    (license license:lgpl3+)))
diff --git a/gnu/packages/groff.scm b/gnu/packages/groff.scm
index fdb8440a39..1d2af7ff07 100644
--- a/gnu/packages/groff.scm
+++ b/gnu/packages/groff.scm
@@ -60,7 +60,7 @@
    ;; own HTML doc, nor does it change its capabilities, so we removed netpbm
    ;; from 'inputs'.
 
-   (inputs `(("ghostscript" ,ghostscript)))
+   (inputs (list ghostscript))
 
    ;; When cross-compiling, this package depends upon a native install of
    ;; itself.
@@ -207,7 +207,7 @@ is usually the formatter of \"man\" documentation pages.")
                  #t))))))
       (native-inputs `(("html-tree" ,perl-html-tree))) ; for test
       (inputs
-       `(("perl" ,perl)))
+       (list perl))
       (home-page "https://daniel.haxx.se/projects/roffit/")
       (synopsis "Convert nroff files to HTML")
       (description
@@ -250,9 +250,7 @@ It is typically used to display man pages on a web site.")
                                          "ruby-nokogiri")))))
              #t)))))
     (inputs
-     `(("ruby-kramdown" ,ruby-kramdown)
-       ("ruby-mustache" ,ruby-mustache)
-       ("ruby-nokogiri" ,ruby-nokogiri)))
+     (list ruby-kramdown ruby-mustache ruby-nokogiri))
     (synopsis
      "Build manuals in HTML and Unix man page format from Markdown")
     (description
diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm
index 73a62e1045..ecbd0cb0bd 100644
--- a/gnu/packages/groovy.scm
+++ b/gnu/packages/groovy.scm
@@ -102,7 +102,7 @@
        ("java-asm-util" ,java-asm-util-8)
        ("java-classpathx-servletapi" ,java-classpathx-servletapi)
        ("java-commons-cli" ,java-commons-cli)
-       ("java-jansi" ,java-jansi)
+       ("java-jansi" ,java-jansi-1)
        ("java-jline-2" ,java-jline-2)
        ("java-picocli" ,java-picocli)
        ("java-xstream" ,java-xstream)))
diff --git a/gnu/packages/gsasl.scm b/gnu/packages/gsasl.scm
index d2aba5450d..787bbae2bb 100644
--- a/gnu/packages/gsasl.scm
+++ b/gnu/packages/gsasl.scm
@@ -62,9 +62,7 @@
             (sha256 (base32
                      "1syyvh3k659xf1hdv9pilnnhbbhs6vfapayp4xgdcc8mfgf9v4gz"))))
    (build-system gnu-build-system)
-   (inputs `(("nettle" ,nettle)
-             ("shishi" ,shishi)
-             ("zlib" ,zlib)))
+   (inputs (list nettle shishi zlib))
    (synopsis "Generic Security Service library")
    (description
     "The GNU Generic Security Service provides a free implementation of the
@@ -92,18 +90,14 @@ the underlying security implementation.")
     `(#:configure-flags '("--with-gssapi-impl=mit"
                           "--disable-static")))
    (inputs
-    `(("libgcrypt" ,libgcrypt)
-      ("libidn" ,libidn)
-      ("libntlm" ,libntlm)
-      ("mit-krb5" ,mit-krb5)
-      ("zlib" ,zlib)))
+    (list libgcrypt libidn libntlm mit-krb5 zlib))
    (native-inputs
-    `(;; Needed for cross compiling.
-      ("libgcrypt" ,libgcrypt)))
+    (list ;; Needed for cross compiling.
+          libgcrypt))
    (propagated-inputs
     ;; Propagate GnuTLS because libgnutls.la reads `-lnettle', and Nettle is a
     ;; propagated input of GnuTLS.
-    `(("gnutls" ,gnutls)))
+    (list gnutls))
    (synopsis "Simple Authentication and Security Layer library")
    (description
     "GNU SASL is an implementation of the Simple Authentication and
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 83d95673dd..87adb7c92a 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -37,9 +37,11 @@
   #:use-module (guix build-system trivial)
   #:use-module (guix utils)
   #:use-module (gnu packages)
+  #:use-module (gnu packages aidc)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages curl)
@@ -49,6 +51,7 @@
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -57,16 +60,22 @@
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages image-processing)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages java)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages mp3)
+  #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages music)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ocr)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages photo)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdf)
@@ -84,6 +93,8 @@
   #:use-module (gnu packages telephony)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
+  #:use-module (gnu packages vulkan)
+  #:use-module (gnu packages webkit)
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages xml))
 
@@ -138,18 +149,15 @@ and for middleware components.")
                (base32 "1v8gq54n1pg8izn7s15yylwjf8r1l1dmzbm2yvf6pv2fmb4mz41b"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen perl pkg-config))
     (inputs
-     `(("glu" ,glu)
-       ("libraw1394" ,libraw1394)
-       ("libusb" ,libusb)
-       ("libxv" ,libxv)
-       ("linux-headers" ,linux-libre-headers)
-       ("mesa" ,mesa)
-       ("sdl" ,sdl)
-       ("v4l" ,v4l-utils)))
+     (list glu
+           libraw1394
+           libusb
+           libxv
+           mesa
+           sdl
+           v4l-utils))
     (synopsis "1394-Based Digital Camera Control Library")
     (description "LibDC1394 is a library that provides functionality to control
 any camera that conforms to the 1394-Based Digital Camera Specification written
@@ -241,7 +249,7 @@ and very fast.")
        ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("sdl" ,sdl)))
+     (list sdl))
     (native-search-paths
      (list
       (search-path-specification
@@ -300,13 +308,13 @@ applications that want audio visualisation and audio visualisation plugins.")
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("esound" ,esound)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("gtk+" ,gtk+-2)
        ("jack" ,jack-2)
        ("libx11" ,libx11)
        ("libxext" ,libxext)))
     (propagated-inputs
-     `(("libvisual" ,libvisual)))
+     (list libvisual))
     (synopsis "Audio visualisation library")
     (description "Libvisual is a library that acts as a middle layer between
 applications that want audio visualisation and audio visualisation plugins.")
@@ -329,20 +337,18 @@ applications that want audio visualisation and audio visualisation plugins.")
         (base32 "141jg70fim276i8k2kyypm84gy89i1k9mm4yf68mfwnybvjw1d6n"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gettext-minimal)
-       ("gnome-common" ,gnome-common)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("tcsh" ,tcsh)                      ; for the tests
-       ("which" ,which)))
+     (list autoconf
+           automake
+           gettext-minimal
+           gnome-common
+           libtool
+           pkg-config
+           tcsh ; for the tests
+           which))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("pcaudiolib" ,pcaudiolib)
-       ("tcp-wrappers" ,tcp-wrappers)))
+     (list alsa-lib pcaudiolib tcp-wrappers))
     (propagated-inputs
-     `(("audiofile" ,audiofile)))
+     (list audiofile))
     (synopsis "Enlightened Sound Daemon")
     (description "The Enlightened Sound Daemon mixes several audio streams for
 playback by a single audio device.  You can also pre-load samples, and play them
@@ -384,7 +390,7 @@ http://www.tux.org/~ricdude/overview.html")
                 "if (error) return 77;"))
              #t)))))
     (native-inputs
-     `(("gtk-doc" ,gtk-doc/stable)))
+     (list gtk-doc/stable))
     (home-page "https://gstreamer.freedesktop.org/modules/orc.html")
     (synopsis "Oil runtime compiler")
     (description
@@ -398,7 +404,7 @@ arrays of data.")
 (define-public gstreamer-docs
   (package
     (name "gstreamer-docs")
-    (version "1.18.2")
+    (version "1.18.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -406,7 +412,7 @@ arrays of data.")
                     "/gstreamer-docs-" version ".tar.xz"))
               (sha256
                (base32
-                "07hrgn11ll16yahyyh5684k8ms1j9npsyb8lj0skwbapin4czshm"))))
+                "1xvqrqv1zxqdpvd02dvr0xspk30c8b940vvnr9x75a08nx0x75xh"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -424,11 +430,9 @@ arrays of data.")
              (invoke (string-append tar "/bin/tar") "-xvf" source
                      "--strip-components=3"
                      (string-append ,name "-" ,version
-                                    "/devhelp/books/GStreamer")))
-           #t))))
+                                    "/devhelp/books/GStreamer")))))))
     (native-inputs
-     `(("tar" ,tar)
-       ("xz" ,xz)))
+     (list tar xz))
     (home-page "https://gstreamer.freedesktop.org/")
     (synopsis "Developer documentation for GStreamer")
     (description
@@ -455,22 +459,21 @@ the GStreamer multimedia framework.")
           (("'CK_DEFAULT_TIMEOUT', '[0-9]*'")
            "'CK_DEFAULT_TIMEOUT', '600'")
           (("timeout ?: .*\\)")
-           "timeout: 90 * 60)"))
-        #t))))
+           "timeout: 90 * 60)"))))))
 
 (define-public gstreamer
   (package
     (name "gstreamer")
-    (version "1.18.2")
+    (version "1.18.5")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append
-            "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-"
-            version ".tar.xz"))
-      (sha256
-       (base32
-        "0ijlmvr660m8zn09xlmnq1ajrziqsivp2hig5a9mabhcjx7ypkb6"))))
+       (method url-fetch)
+       (uri (string-append
+             "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-"
+             version ".tar.xz"))
+       (sha256
+        (base32
+         "02p8my6dzmm4rvd93s3qnh8w5bm9bh4f7gdydbsvnn9llqr251jm"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -487,29 +490,42 @@ the GStreamer multimedia framework.")
                        (("tcase_add_test \\(tc_chain, test_stress_cleanup_unschedule.*")
                         "")
                        (("tcase_add_test \\(tc_chain, test_stress_reschedule.*")
-                      ""))
-                     #t)))
+                        "")))))
                '())
-         ;; XXX: This test fails undeterministically.
-         (add-after 'unpack 'disable-test
+         (add-after 'unpack 'disable-problematic-tests
            (lambda _
+             ;; Disable the 'pipelines-seek' test, which appears to be load
+             ;; sensitive (see:
+             ;; https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/854).
              (substitute* "tests/check/meson.build"
-               ((".*libs/gstnetclientclock\\.c.*") "")))))))
-    (propagated-inputs `(("glib" ,glib))) ; required by gstreamer-1.0.pc.
+               ((".*'pipelines/seek.c'.*")
+                "")))))))
+    (propagated-inputs
+     ;; In gstreamer-1.0.pc:
+     ;;   Requires: glib-2.0, gobject-2.0
+     ;;   Requires.private: gmodule-no-export-2.0 libunwind libdw
+     (list elfutils ; libdw
+           glib libunwind))
     (native-inputs
-     `(("bison" ,bison)
+     `(("bash-completion" ,bash-completion)
+       ("bison" ,bison)
        ("flex" ,flex)
+       ("gettext" ,gettext-minimal)
        ("glib" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("python-wrapper" ,python-wrapper)))
+    (inputs
+     (list gmp libcap
+           ;; For tests.
+           gsl))
     (native-search-paths
      (list (search-path-specification
             (variable "GST_PLUGIN_SYSTEM_PATH")
             (files '("lib/gstreamer-1.0")))))
     (home-page "https://gstreamer.freedesktop.org/")
-    (synopsis "Multimedia library")
+    (synopsis "Multimedia framework")
     (description
      "GStreamer is a library for constructing graphs of media-handling
 components.  The applications it supports range from simple Ogg/Vorbis
@@ -526,21 +542,22 @@ This package provides the core library and elements.")
 (define-public gst-plugins-base
   (package
     (name "gst-plugins-base")
-    (version "1.18.2")
+    (version "1.18.5")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/"
                           name "-" version ".tar.xz"))
-      (patches (search-patches "gst-plugins-base-fix-id3v2-invalid-read.patch"))
       (sha256
        (base32
-        "1b05kg46azrxxvq42c71071lfsnc34pw4vynnkczdqi6g0gzn16x"))))
+        "18vg8kk7p2p8za8zaqg0v7z6898yw5a3b12vvl7xn02pb3s7l2wn"))))
     (build-system meson-build-system)
     (propagated-inputs
      `(("glib" ,glib)              ;required by gstreamer-sdp-1.0.pc
        ("gstreamer" ,gstreamer)    ;required by gstreamer-plugins-base-1.0.pc
-
+       ;; wayland-client.h is referred to in
+       ;; include/gstreamer-1.0/gst/gl/wayland/gstgldisplay_wayland.h
+       ("wayland" ,wayland)
        ;; XXX: Do not enable Orc optimizations on ARM systems because
        ;; it leads to two test failures.
        ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/683
@@ -549,6 +566,7 @@ This package provides the core library and elements.")
              '()
              `(("orc" ,orc)))))         ;required by gstreamer-audio-1.0.pc
     (inputs
+     ;; TODO: Add libvorbisidec
      `(("cdparanoia" ,cdparanoia)
        ("pango" ,pango)
        ("libogg" ,libogg)
@@ -559,26 +577,48 @@ This package provides the core library and elements.")
        ("libXext" ,libxext)
        ("libxv" ,libxv)
        ("alsa-lib" ,alsa-lib)
-       ;; XXX Don't build with opus on 32-bit systems:
-       ;; <https://bugs.gnu.org/32360>
-       ,@(if (target-64bit?)
-             `(("opus" ,opus))
-             '())))
+       ("opus" ,opus)
+       ("graphene" ,graphene)
+       ("iso-codes" ,iso-codes)
+       ("libgudev" ,libgudev)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libpng" ,libpng)
+       ("libvisual" ,libvisual)
+       ("mesa" ,mesa)
+       ("wayland-protocols" ,wayland-protocols)))
     (native-inputs
-      `(("pkg-config" ,pkg-config)
-        ("glib:bin" ,glib "bin")
-        ("gobject-introspection" ,gobject-introspection)
-        ("python-wrapper" ,python-wrapper)))
+     `(("pkg-config" ,pkg-config)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("python-wrapper" ,python-wrapper)
+       ("gettext" ,gettext-minimal)
+       ("xorg-server" ,xorg-server-for-tests)))
     (arguments
-     `(#:configure-flags '("-Dgl=disabled")
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          ,@%common-gstreamer-phases
+         (add-after 'unpack 'disable-problematic-tests
+           (lambda _
+             (substitute* "tests/check/meson.build"
+               ;; This test causes nondeterministic failures (see:
+               ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/950).
+               ((".*'elements/appsrc.c'.*")
+                ""))))
          (add-before 'configure 'patch
            (lambda _
              (substitute* "tests/check/libs/pbutils.c"
-               (("/bin/sh") (which "sh")))
-             #t)))))
+               (("/bin/sh") (which "sh")))))
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1")
+             ;; Tests write to $HOME.
+             (setenv "HOME" (getcwd))
+             ;; Tests look for $XDG_RUNTIME_DIR.
+             (setenv "XDG_RUNTIME_DIR" (getcwd))
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0"))))))
     (home-page "https://gstreamer.freedesktop.org/")
     (synopsis
      "Plugins for the GStreamer multimedia library")
@@ -589,7 +629,7 @@ for the GStreamer multimedia library.")
 (define-public gst-plugins-good
   (package
     (name "gst-plugins-good")
-    (version "1.18.2")
+    (version "1.18.5")
     (source
      (origin
        (method url-fetch)
@@ -597,11 +637,9 @@ for the GStreamer multimedia library.")
         (string-append
          "https://gstreamer.freedesktop.org/src/" name "/"
          name "-" version ".tar.xz"))
-       (patches (search-patches "gst-plugins-good-fix-test.patch"
-                                "gst-plugins-good-CVE-2021-3497.patch"
-                                "gst-plugins-good-CVE-2021-3498.patch"))
+       (patches (search-patches "gst-plugins-good-fix-test.patch"))
        (sha256
-        (base32 "1929nhjsvbl4bw37nfagnfsnxz737cm2x3ayz9ayrn9lwkfm45zp"))))
+        (base32 "0svrapawych2s3lm4lx3x023zxq5kcx50jnfmh0qigszfskyxbis"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
@@ -635,7 +673,7 @@ for the GStreamer multimedia library.")
        ("bzip2" ,bzip2)
        ("cairo" ,cairo)
        ("flac" ,flac)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,(librsvg-for-system))
        ("glib" ,glib)
        ("glib-networking" ,glib-networking)
        ("glu" ,glu)
@@ -668,8 +706,7 @@ for the GStreamer multimedia library.")
        ("wavpack" ,wavpack)
        ("zlib" ,zlib)))
     (propagated-inputs
-     `(("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)))
+     (list gstreamer gst-plugins-base))
     (synopsis "GStreamer plugins and helper libraries")
     (description "GStreamer-Plugins-Good is a collection of plug-ins you'd want
 to have right next to you on the battlefield.  Shooting sharp and making no
@@ -682,18 +719,24 @@ model to base your own plug-in on, here it is.")
 (define-public gst-plugins-bad
   (package
     (name "gst-plugins-bad")
-    (version "1.18.2")
+    (version "1.18.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://gstreamer.freedesktop.org/src/"
                                   name "/" name "-" version ".tar.xz"))
-              (patches (search-patches "gst-plugins-bad-fix-overflow.patch"))
               (sha256
                (base32
-                "06ildd4rl6cynirv3p00d2ddf5is9svj4i7mkahldzhq24pq5mca"))))
+                "13k7mm2wmsbhd04a20v9lj4afpf0w33ambpwlrw8bl7hjhxr4r51"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Delete bundled copy of usrsctp.
+                  (delete-file-recursively "ext/sctp/usrsctp")))))
     (build-system meson-build-system)
     (arguments
-     `(#:phases
+     `(#:configure-flags '("-Dsctp-internal-usrsctp=disabled")
+       #:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
        (modify-phases %standard-phases
          ,@%common-gstreamer-phases
          ,@(if (string-prefix? "arm" (or (%current-target-system)
@@ -704,8 +747,7 @@ model to base your own plug-in on, here it is.")
                    (lambda _
                      (substitute* "tests/check/meson.build"
                        (("\\[\\['elements/asfmux\\.c'\\]\\],")
-                        ""))
-                     #t)))
+                        "")))))
                '())
          (add-after 'unpack 'adjust-tests
            (lambda* (#:key native-inputs inputs #:allow-other-keys)
@@ -718,6 +760,15 @@ model to base your own plug-in on, here it is.")
                   (string-append "'GST_PLUGIN_SYSTEM_PATH_1_0', '"
                                  gst-plugins-good "/lib/gstreamer-1.0'"))
 
+                 ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1136
+                 ((".*elements/msdkh264enc\\.c.*") "")
+                 ((".*elements/svthevcenc\\.c.*") "")
+
+                 ;; The 'elements_shm.test_shm_live' test sometimes times out
+                 ;; (see:
+                 ;; https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/790).
+                 ((".*'elements/shm\\.c'.*") "")
+
                  ;; FIXME: Why is this failing.
                  ((".*elements/dash_mpd\\.c.*") "")
 
@@ -726,61 +777,133 @@ model to base your own plug-in on, here it is.")
                  ((".*elements/curlhttpsrc\\.c.*") "")
                  ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1412
                  ((".*elements/dtls\\.c.*") ""))
-               #t))))))
+               (substitute* "tests/check/elements/zxing.c"
+                 ;; zxing 1.2.0 seemingly changed the type representation of
+                 ;; the EAN_13 structure; disable it.
+                 ((".*\"EAN_13\".*")
+                  "")))))
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1")
+             ;; Tests write to $HOME.
+             (setenv "HOME" (getcwd))
+             ;; Tests look for $XDG_RUNTIME_DIR.
+             (setenv "XDG_RUNTIME_DIR" (getcwd))
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0"))))))
     (propagated-inputs
-     `(("gst-plugins-base" ,gst-plugins-base)))
+     (list gstreamer gst-plugins-base))
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
+     `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")         ; for glib-mkenums, etc.
        ("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gst-plugins-good" ,gst-plugins-good) ;for tests
+       ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-       ("python" ,python)))
+       ("python" ,python-wrapper)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     ;; XXX: The following dependencies are missing:
-     ;;  vo-amrwbenc, vo-aacenc, bs2b, chromaprint, directfb, daala, libdts,
-     ;;  faac, flite, libgsm, libde265, libmms, libmimic, mjpegtools,
-     ;;  mpeg2enc, libofa, opencv, openh264, openni2, libtimemmgr, wildmidi,
-     ;;  openspc, gme, sbc, schroedinger, zbar, librtmp, spandsp
      `(("bluez" ,bluez)
+       ("bzip2" ,bzip2)
+       ("cairo" ,cairo)
+       ;; ("ccextractor" ,ccextractor)
+       ("chromaprint" ,chromaprint)
        ("curl" ,curl)
+       ("directfb" ,directfb)
+       ;;("dssim" ,dssim)
+       ("faac" ,faac)
        ("faad2" ,faad2)
+       ("flite" ,flite)
        ("fluidsynth" ,fluidsynth)
+       ("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("glu" ,glu)
+       ("gsm" ,gsm)
        ("gtk+" ,gtk+)
+       ("iqa" ,iqa)
        ("ladspa" ,ladspa)
+       ("lcms" ,lcms)
+       ("libaom" ,libaom)
        ("libass" ,libass)
+       ("libbs2b" ,libbs2b)
+       ("libdc1394" ,libdc1394)
+       ("libdca" ,libdca)
+       ("libde265" ,libde265)
+       ("libdrm" ,libdrm)
        ("libdvdnav" ,libdvdnav)
        ("libdvdread" ,libdvdread)
+       ("libexif" ,libexif)
+       ("libfdk" ,libfdk)
        ("libgcrypt" ,libgcrypt)
+       ("libgme" ,libgme)
        ("libgudev" ,libgudev)
        ("libkate" ,libkate)
+       ("libmfx" ,mediasdk)
+       ("libmms" ,libmms)
        ("libmodplug" ,libmodplug)
+       ("libmpcdec" ,libmpcdec)
        ("libnice" ,libnice)
+       ("libofa" ,libofa)
+       ("libopenmpt" ,libopenmpt)
        ("librsvg" ,librsvg)
        ("libsndfile" ,libsndfile)
        ("libsrtp" ,libsrtp)
        ("libssh2" ,libssh2)
+       ("libtiff" ,libtiff)
        ("libusb" ,libusb)
+       ("libva" ,libva)
        ("libvdpau" ,libvdpau)
        ("libwebp" ,libwebp)
+       ("libx11" ,libx11)
+       ("libxcb" ,libxcb)
+       ("libxext" ,libxext)
+       ("libxkbcommon" ,libxkbcommon)
        ("libxml2" ,libxml2)
+       ("libxshm" ,libxshmfence)
+       ("lilv" ,lilv)
        ("lrdf" ,lrdf)
+       ("lv2" ,lv2)
        ("mesa" ,mesa)
+       ("mjpegtools" ,mjpegtools)
        ("neon" ,neon)
+       ("nettle" ,nettle)
        ("openal" ,openal)
+       ;; ("opencv" ,opencv)
        ("openexr" ,openexr)
+       ("openh264" ,openh264)
        ("openjpeg" ,openjpeg)
+       ;; ("openni2" ,openni2)
+       ("opensles" ,opensles)
        ("openssl" ,openssl)
        ("opus" ,opus)
        ("orc" ,orc)
-       ;("qtbase" ,qtbase-5)
-       ;("qtdeclarative" ,qtdeclarative)
-       ;("qtx11extras" ,qtx11extras)
+       ("pango" ,pango)
+       ("rtmp" ,rtmpdump)
+       ("sbc" ,sbc)
+       ("sctp" ,lksctp-tools)
        ("soundtouch" ,soundtouch)
-       ;; GStreamer is not yet compatible with srt > 1.4.1.
-       ("srt" ,srt-1.4.1)
+       ("spandsp" ,spandsp)
+       ("srt" ,srt)
+       ("svthevcenc" ,svt-hevc)
+       ("tinyalsa" ,tinyalsa)
+       ("transcode" ,transcode)
+       ("usrsctp" ,usrsctp)
+       ("v4l" ,v4l-utils)
+       ("voaacenc", vo-aacenc)
+       ("voamrwbenc" ,vo-amrwbenc)
+       ("vulkan-headers" ,vulkan-headers)
+       ("vulkan-loader" ,vulkan-loader)
        ("x265" ,x265)
-       ("webrtc-audio-processing" ,webrtc-audio-processing)
-       ("wayland" ,wayland)))
+       ("wayland" ,wayland)
+       ("webrtcdsp" ,webrtc-audio-processing)
+       ("wildmidi" ,wildmidi)
+       ("wpebackend-fdo" ,wpebackend-fdo)
+       ;; ("wpewebkit" ,wpewebkit)
+       ("zbar" ,zbar)
+       ("zxing" ,zxing-cpp-1.2)))
     (home-page "https://gstreamer.freedesktop.org/")
     (synopsis "Plugins for the GStreamer multimedia library")
     (description
@@ -791,16 +914,15 @@ par compared to the rest.")
 (define-public gst-plugins-ugly
   (package
     (name "gst-plugins-ugly")
-    (version "1.18.2")
+    (version "1.18.5")
     (source
      (origin
        (method url-fetch)
        (uri
         (string-append "https://gstreamer.freedesktop.org/src/"
                        name "/" name "-" version ".tar.xz"))
-       (patches (search-patches "gst-plugins-ugly-fix-out-of-bound-reads.patch"))
        (sha256
-        (base32 "1nwbcv5yaib3d8icvyja3zf6lyjf5zf1hndbijrhj8j7xlia0dx3"))))
+        (base32 "1nb6kz3gbn8r0sld6xkm16qpgyb2bvhafb7sff9rgagqk0z80cnz"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
@@ -817,8 +939,7 @@ par compared to the rest.")
              ;; Tests look for $XDG_RUNTIME_DIR.
              (setenv "XDG_RUNTIME_DIR" (getcwd))
              ;; For missing '/etc/machine-id'.
-             (setenv "DBUS_FATAL_WARNINGS" "0")
-             #t)))))
+             (setenv "DBUS_FATAL_WARNINGS" "0"))))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
@@ -829,18 +950,17 @@ par compared to the rest.")
        ("python-wrapper" ,python-wrapper)
        ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     `(("glib" ,glib)
-       ("glib-networking" ,glib-networking)
-       ("liba52" ,liba52)
-       ("libcdio" ,libcdio)
-       ("libdvdread" ,libdvdread)
-       ("libmpeg2" ,libmpeg2)
-       ("libx264" ,libx264)
-       ("opencore-amr" ,opencore-amr)
-       ("orc" ,orc)))
+     (list glib
+           glib-networking
+           liba52
+           libcdio
+           libdvdread
+           libmpeg2
+           libx264
+           opencore-amr
+           orc))
     (propagated-inputs
-     `(("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)))
+     (list gstreamer gst-plugins-base))
     (synopsis "GStreamer plugins and helper libraries")
     (description "Gst-Plugins-Ugly are the ones that might have a patent noose
 around their neck, or a lock-up license, or any other problem that makes you
@@ -851,7 +971,7 @@ think twice about shipping them.")
 (define-public gst-libav
   (package
     (name "gst-libav")
-    (version "1.18.2")
+    (version "1.18.5")
     (source
      (origin
        (method url-fetch)
@@ -859,20 +979,15 @@ think twice about shipping them.")
         (string-append
          "https://gstreamer.freedesktop.org/src/" name "/"
          name "-" version ".tar.xz"))
-       (patches (search-patches "gst-libav-64channels-stack-corruption.patch"))
        (sha256
-        (base32 "0jbzams9ggk3sq9ywv4gsl9rghyn203l2582m6l5c1sz9ka9m5in"))))
+        (base32 "0j55jgk9sbhinfx2gsg21q609x6yzrixrn5xxlxd378fj6500bl2"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)
-       ("ruby" ,ruby)))
+     (list perl pkg-config python-wrapper ruby))
     (inputs
-     `(("ffmpeg" ,ffmpeg)))
+     (list ffmpeg))
     (propagated-inputs
-     `(("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)))
+     (list gstreamer gst-plugins-base))
     (synopsis "GStreamer plugins and helper libraries")
     (description "Gst-Libav contains a GStreamer plugin for using the encoders,
 decoders, muxers, and demuxers provided by FFmpeg.")
@@ -882,7 +997,7 @@ decoders, muxers, and demuxers provided by FFmpeg.")
 (define-public gst-editing-services
   (package
     (name "gst-editing-services")
-    (version "1.18.2")
+    (version "1.18.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -890,16 +1005,18 @@ decoders, muxers, and demuxers provided by FFmpeg.")
                     "gst-editing-services-" version ".tar.xz"))
               (sha256
                (base32
-                "0pv2k8zlpn3vv2sdlspi3m63ixcwzi90pjly2ypbkg59ab97rb15"))))
+                "1x8db4021qv4ypq1g6n5q2awrb7glr4xp1h650c3w7q59lwsix4a"))))
     (build-system meson-build-system)
     (arguments
      ;; FIXME: 16/22 failing tests.
      `(#:tests? #f
+       #:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:phases (modify-phases %standard-phases
                   ,@%common-gstreamer-phases)))
+    (propagated-inputs
+     (list gstreamer gst-plugins-base))
     (inputs
-     `(("gst-plugins-base" ,gst-plugins-base)
-       ("libxml2" ,libxml2)))
+     (list glib glib-networking gtk+ libxml2))
     (native-inputs
      `(("flex" ,flex)
        ("gobject-introspection" ,gobject-introspection)
@@ -908,7 +1025,7 @@ decoders, muxers, and demuxers provided by FFmpeg.")
        ("gst-plugins-good" ,gst-plugins-good)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-       ("python" ,python)))
+       ("python" ,python-wrapper)))
     (home-page "https://gstreamer.freedesktop.org/")
     (synopsis "GStreamer library for non-linear editors")
     (description
@@ -938,17 +1055,10 @@ given, also pass them to the build system instead of the ones used by PKG."
                     (("'auto'") "'disabled'"))
                   #t)))))))))
 
-(define-public gst-transcoder
-  (deprecated-package
-   "gst-transcoder"
-   (gst-plugins/selection gst-plugins-bad
-                          #:plugins '("transcoder")
-                          #:configure-flags '("-Dintrospection=enabled"))))
-
 (define-public python-gst
   (package
     (name "python-gst")
-    (version "1.18.2")
+    (version "1.18.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -956,7 +1066,7 @@ given, also pass them to the build system instead of the ones used by PKG."
                     "gst-python-" version ".tar.xz"))
               (sha256
                (base32
-                "171qxzndii7ynn9ag3a12h9vyydxzwy1j4ip3cb8hgim1dv0z7g1"))))
+                "0lmwwmr3wm56qlrdrb0d5cpmqxkcmarz61wmp1nrv5852f3qadjk"))))
     (build-system meson-build-system)
     (arguments
      `(#:modules ((guix build meson-build-system)
@@ -969,11 +1079,9 @@ given, also pass them to the build system instead of the ones used by PKG."
               "-Dpygi-overrides-dir="
               (python:site-packages %build-inputs %outputs) "gi/overrides"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)))
+     (list pkg-config python))
     (propagated-inputs
-     `(("gst-plugins-base" ,gst-plugins-base)
-       ("python-pygobject" ,python-pygobject)))
+     (list gst-plugins-base python-pygobject))
     (home-page "https://gstreamer.freedesktop.org/")
     (synopsis "GStreamer GObject Introspection overrides for Python")
     (description
@@ -994,12 +1102,9 @@ be used by Python applications using GStreamer.")
                 "0zaa117n4wkya9p903vkj8hj58lmdb66pxsdx5wwcv7nffbp5d67"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gtk+" ,gtk+-2)
-       ("ncurses" ,ncurses)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)))
+     (list gtk+-2 ncurses gstreamer gst-plugins-base))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://space.twc.de/~stefan/gst123.php")
     (synopsis "Flexible command line media player based on gstreamer")
     (description "The program gst123 is designed to be a more flexible command
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 842a46a846..f18cd5bc9a 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -28,6 +28,7 @@
 ;;; 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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -52,6 +53,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module ((guix build utils) #:select (alist-replace))
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
@@ -93,11 +95,15 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages version-control)
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages vulkan)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
@@ -128,7 +134,7 @@
                ;; on the build system.
                '("-Dintrospection=false"))
              '())))
-    (propagated-inputs `(("glib" ,glib))) ; required by atk.pc
+    (propagated-inputs (list glib)) ; required by atk.pc
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib" ,glib "bin")             ; glib-mkenums, etc.
@@ -248,12 +254,10 @@ output.  Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.")
    (outputs '("out"
               "bin")) ; 160K, only hb-view depend on cairo
    (inputs
-    `(("cairo" ,cairo)))
+    (list cairo))
    (propagated-inputs
     ;; There are all in the Requires or Requires.private field of '.pc'.
-    `(("glib" ,glib)
-      ("graphite2" ,graphite2)
-      ("icu4c" ,icu4c)))
+    (list glib graphite2 icu4c))
    (native-inputs
     `(("glib:bin" ,glib "bin")          ;for glib-mkenums
       ("gobject-introspection" ,gobject-introspection)
@@ -272,6 +276,19 @@ output.  Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.")
                        "See 'COPYING' in the distribution."))
    (home-page "https://www.freedesktop.org/wiki/Software/HarfBuzz/")))
 
+(define-public harfbuzz-3.0
+  (package
+    (inherit harfbuzz)
+    (version "3.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/harfbuzz/harfbuzz"
+                                  "/releases/download/" version
+                                  "/harfbuzz-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1ngk8vn06rryx3s4v5pbl91bw1j1pd4431n77rw3j5a533hhwsq3"))))))
+
 (define-public libdatrie
   (package
     (name "libdatrie")
@@ -295,8 +312,7 @@ output.  Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.")
            ;; conditions when running tests in parallel.
            #:parallel-tests? #f))
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen pkg-config))
     (synopsis "Double-Array Trie Library")
     (description "Libdatrie is an implementation of double-array structure for
 representing trie.  Trie is a kind of digital search tree.")
@@ -324,11 +340,11 @@ representing trie.  Trie is a kind of digital search tree.")
                        (assoc-ref %outputs "doc")
                        "/share/doc/libthai/html"))))
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)
-       ("libdatrie" ,libdatrie))) ; for 'trietool'
+     `(("datrie" ,libdatrie)
+       ("doxygen" ,doxygen)
+       ("pkg-config" ,pkg-config)))
     (propagated-inputs
-     `(("libdatrie" ,libdatrie)))
+     `(("datrie" ,libdatrie)))
     (synopsis "Thai language support library")
     (description "LibThai is a set of Thai language support routines aimed to
 ease developers’ tasks to incorporate Thai language support in their
@@ -339,7 +355,7 @@ applications.")
 (define-public pango
   (package
     (name "pango")
-    (version "1.48.9")
+    (version "1.48.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/pango/"
@@ -348,21 +364,20 @@ applications.")
               (patches (search-patches "pango-skip-libthai-test.patch"))
               (sha256
                (base32
-                "1akj11n0ycqrm1rvi0fdfldqk7l5zk9vb8sq77009ap57xyna4x9"))))
+                "166wxhsjb6hb0dk7wkkdcmpvasl9n0a0aa64mdgagzfdidwzbq91"))))
     (build-system meson-build-system)
     (arguments
-     '(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+     '(#:glib-or-gtk? #t             ; To wrap binaries and/or compile schemas
        #:phases (modify-phases %standard-phases
                   (add-after 'unpack 'disable-cantarell-tests
                     (lambda _
                       (substitute* "tests/meson.build"
-                        ;; XXX FIXME: These tests require "font-cantarell", but
+                        ;; XXX FIXME: These tests require "font-abattis-cantarell", but
                         ;; adding it here would introduce a circular dependency.
                         (("\\[ 'test-layout'.*") "")
                         (("\\[ 'test-itemize'.*") "")
                         (("\\[ 'test-font'.*") "")
-                        (("\\[ 'test-harfbuzz'.*") ""))
-                      #t)))))
+                        (("\\[ 'test-harfbuzz'.*") "")))))))
     (propagated-inputs
      ;; These are all in Requires or Requires.private of the '.pc' files.
      `(("cairo" ,cairo)
@@ -377,10 +392,9 @@ applications.")
        ("libxft" ,libxft)
        ("libxrender" ,libxrender)))
     (inputs
-     `(("bash-minimal" ,bash-minimal) ; for glib-or-gtk-wrap
-       ("zlib" ,zlib)))
+     (list bash-minimal zlib))
     (native-inputs
-     `(("glib" ,glib "bin")             ; glib-mkenums, etc.
+     `(("glib" ,glib "bin")                             ; glib-mkenums, etc.
        ("gobject-introspection" ,gobject-introspection) ; g-ir-compiler, etc.
        ("help2man" ,help2man)
        ("perl" ,perl)
@@ -436,11 +450,9 @@ handling for GTK+-2.x.")
                "0ip0ziys6mrqqmz4n71ays0kf5cs1xflj1gfpvs4fgy2nsrr482m"))))
     (build-system gnu-build-system)
     (inputs
-     `(("glib" ,glib)
-       ("pango" ,pango-1.42)))
+     (list glib pango-1.42))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (home-page "https://developer.gnome.org/pango")
     (synopsis "Obsolete pango functions")
     (description  "Pangox was a X backend to pango.  It is now obsolete and no
@@ -475,8 +487,8 @@ functions which were removed.")
      `(("gtk" ,gtk+-2)
        ("gtkmm" ,gtkmm-2)))
     (native-inputs
-     `(("glib" ,glib "bin")             ; for glib-genmarshal, etc.
-       ("pkg-config" ,pkg-config)))
+     (list `(,glib "bin") ; for glib-genmarshal, etc.
+           pkg-config))
     (home-page "https://drobilla.net/software/ganv/")
     (synopsis "GTK+ widget for interactive graph-like environments")
     (description
@@ -502,12 +514,12 @@ diagrams.")
                   "gtksourceview-2-add-default-directory.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("glib" ,glib "bin")             ; for glib-genmarshal, etc.
-       ("pkg-config" ,pkg-config)
-       ;; For testing.
-       ("xorg-server" ,xorg-server-for-tests)
-       ("shared-mime-info" ,shared-mime-info)))
+     (list intltool
+           `(,glib "bin") ; for glib-genmarshal, etc.
+           pkg-config
+           ;; For testing.
+           xorg-server-for-tests
+           shared-mime-info))
     (propagated-inputs
      ;; As per the pkg-config file.
      `(("gtk" ,gtk+-2)
@@ -581,9 +593,7 @@ printing and other features typical of a source code editor.")
       ("shared-mime-info" ,shared-mime-info)))
    (propagated-inputs
     ;; gtksourceview-3.0.pc refers to all these.
-    `(("glib" ,glib)
-      ("gtk+" ,gtk+)
-      ("libxml2" ,libxml2)))
+    (list glib gtk+ libxml2))
    (home-page "https://wiki.gnome.org/Projects/GtkSourceView")
    (synopsis "GNOME source code widget")
    (description "GtkSourceView is a text widget that extends the standard
@@ -617,9 +627,10 @@ highlighting and other features typical of a source code editor.")
                (base32
                 "0k9f9177qxaryaxprwrhqnv5p2gdq4a8i6y05gm98qa8izc5v77y"))))
     (build-system meson-build-system)
+    (outputs '("out" "debug"))
     (arguments
-     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
-       #:configure-flags '("-Dinstalled_tests=false" "-Djasper=true")
+     `(#:glib-or-gtk? #t             ; To wrap binaries and/or compile schemas
+       #:configure-flags '("-Dinstalled_tests=false")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-docbook
@@ -632,8 +643,9 @@ highlighting and other features typical of a source code editor.")
                                  "/xml/xsl/docbook-xsl-1.79.2/")))
                (substitute* (find-files "." "\\.xml$")
                  (("http://www.oasis-open.org/docbook/xml/4\\.3/")
-                  (string-append (assoc-ref (or native-inputs inputs)
-                                            "docbook-xml")
+                  (string-append (assoc-ref ,(if (%current-target-system)
+                                                 '(or native-inputs inputs)
+                                                 'inputs) "docbook-xml")
                                  "/xml/dtd/docbook/"))))))
          (add-before 'configure 'disable-failing-tests
            (lambda _
@@ -648,15 +660,16 @@ highlighting and other features typical of a source code editor.")
                        (invoke "meson" "test" "--timeout-multiplier" "5")))))
                '()))))
     (propagated-inputs
-     `( ;; Required by gdk-pixbuf-2.0.pc
-       ("glib" ,glib)
-       ;; Required by gdk-pixbuf-xlib-2.0.pc
-       ("libx11" ,libx11)
-       ;; Used for testing and required at runtime.
-       ("shared-mime-info" ,shared-mime-info)))
+     (list ;; Required by gdk-pixbuf-2.0.pc
+           glib
+           ;; Required by gdk-pixbuf-xlib-2.0.pc
+           libx11
+           ;; Used for testing and required at runtime.
+           shared-mime-info))
     (inputs
-     `(("bash-minimal" ,bash-minimal) ; for glib-or-gtk-wrap
-       ("jasper" ,jasper)
+     `(,@(if (%current-target-system)
+             `(("bash-minimal" ,bash-minimal)) ; for glib-or-gtk-wrap
+             '())
        ("libjpeg" ,libjpeg-turbo)
        ("libpng"  ,libpng)
        ("libtiff" ,libtiff)))
@@ -664,11 +677,19 @@ highlighting and other features typical of a source code editor.")
      `(("docbook-xml" ,docbook-xml-4.3)
        ("docbook-xsl" ,docbook-xsl)
        ("gettext" ,gettext-minimal)
-       ("glib" ,glib "bin")             ; glib-mkenums, etc.
+       ("glib" ,glib "bin")                             ; glib-mkenums, etc.
        ("gobject-introspection" ,gobject-introspection) ; g-ir-compiler, etc.
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("xsltproc" ,libxslt)))
+    (native-search-paths
+     ;; This file is produced by the gdk-pixbuf-loaders-cache-file
+     ;; profile hook.
+     (list (search-path-specification
+            (variable "GDK_PIXBUF_MODULE_FILE")
+            (files (list %gdk-pixbuf-loaders-cache-file))
+            (separator #f)              ;single valued
+            (file-type 'regular))))
     (synopsis "Image loading library")
     (description "GdkPixbuf is a library that loads image data in various
 formats and stores it as linear buffers in memory.  The buffers can then be
@@ -676,141 +697,93 @@ scaled, composited, modified, saved, or rendered.")
     (home-page "https://wiki.gnome.org/Projects/GdkPixbuf")
     (license license:lgpl2.1+)))
 
-;; To build gdk-pixbuf with SVG support, we need librsvg, and librsvg depends
-;; on gdk-pixbuf, so this new varibale.  Also, librsvg adds 90MiB to the
-;; closure size.
-(define-public gdk-pixbuf+svg
-  (package/inherit gdk-pixbuf
-    (name "gdk-pixbuf+svg")
-    (inputs
-     `(("librsvg" ,librsvg)
-       ,@(package-inputs gdk-pixbuf)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments gdk-pixbuf)
-        ((#:phases phases)
-          `(modify-phases ,phases
-         (add-after 'install 'register-svg-loader
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out     (assoc-ref outputs "out"))
-                    (librsvg (assoc-ref inputs "librsvg"))
-                    (loaders
-                     (append
-                      (find-files out "^libpixbufloader-.*\\.so$")
-                      (find-files librsvg "^libpixbufloader-.*\\.so$")))
-                    (gdk-pixbuf-query-loaders
-                     (string-append out "/bin/gdk-pixbuf-query-loaders")))
-               (apply invoke
-                      gdk-pixbuf-query-loaders
-                      "--update-cache"
-                      loaders))))))))
-    (synopsis "Image loading library, with SVG support")))
-
-(define-public at-spi2-core
-  (package
-    (name "at-spi2-core")
-    (version "2.40.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version)  "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0a9l6cfxynjn6jcp29d72i75xbkrzs1l5kmqcwmfal801b9sg5j1"))))
-    (build-system meson-build-system)
-    (outputs '("out" "doc"))
-    (arguments
-     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
-       #:configure-flags
-       ;; Generating documentation requires running binaries for the host
-       ;; on the build machine.
-       (list ,(if (%current-target-system)
-                  "-Ddocs=false"
-                  "-Ddocs=true"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-documentation-path
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; Ensure that the cross-references point to the "doc" output.
-             (substitute* "doc/libatspi/meson.build"
-               (("docpath =.*")
-                (string-append "docpath = '" (assoc-ref outputs "doc")
-                               "/share/gtk-doc/html'\n")))))
-         (add-before 'install 'prepare-doc-directory
-           (lambda* (#:key outputs #:allow-other-keys)
-             (mkdir-p (string-append (assoc-ref outputs "doc") "/share"))))
-         (add-after 'unpack 'patch-docbook-sgml
-           (lambda* (#:key native-inputs inputs #:allow-other-keys)
-             (let* ((xmldoc
-                     (string-append (assoc-ref (or native-inputs inputs)
-                                               "docbook-xml")
-                                    "/xml/dtd/docbook")))
-               (substitute* "doc/libatspi/libatspi-docs.sgml"
-                 (("http://.*/docbookx\\.dtd")
-                  (string-append xmldoc "/docbookx.dtd"))))))
-         ,@(if (%current-target-system)
-               '()
-               '((add-after 'install 'move-documentation
-                   (lambda* (#:key outputs #:allow-other-keys)
-                     (let ((out (assoc-ref outputs "out"))
-                           (doc (assoc-ref outputs "doc")))
-                       (copy-recursively
-                        (string-append out "/share/gtk-doc")
-                        (string-append doc "/share/gtk-doc"))
-                       (delete-file-recursively
-                        (string-append out "/share/gtk-doc")))))))
-         (add-after 'install 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME
-             ;; Run test-suite under a dbus session.
-             (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service
-                     (string-append %output "/share"))
-             ;; Don't fail on missing  '/etc/machine-id'.
-             (setenv "DBUS_FATAL_WARNINGS" "0") ;
-             (when tests?
-               (invoke "dbus-launch" "ninja" "test"))))
-         (delete 'check))))
-    (inputs
-     `(("bash-minimal" ,bash-minimal)))
-    (propagated-inputs
-     ;; atspi-2.pc refers to all these.
-     `(("dbus" ,dbus)
-       ("glib" ,glib)
-       ("libx11" ,libx11)
-       ("libxi" ,libxi)
-       ("libxtst" ,libxtst)))
-    (native-inputs
-     `(("docbook-xml" ,docbook-xml-4.3)
-       ("gettext" ,gettext-minimal)
-       ("glib" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)))
-    (synopsis "Assistive Technology Service Provider Interface, core components")
-    (description
-     "The Assistive Technology Service Provider Interface, core components,
+;;; A minimal variant used to prevent a cycle with Inkscape.
+(define-public at-spi2-core-minimal
+  (hidden-package
+   (package
+     (name "at-spi2-core")
+     (version "2.40.0")
+     (source (origin
+               (method url-fetch)
+               (uri (string-append "mirror://gnome/sources/" name "/"
+                                   (version-major+minor version)  "/"
+                                   name "-" version ".tar.xz"))
+               (sha256
+                (base32
+                 "0a9l6cfxynjn6jcp29d72i75xbkrzs1l5kmqcwmfal801b9sg5j1"))))
+     (build-system meson-build-system)
+     (arguments
+      '(#:glib-or-gtk? #t    ; To wrap binaries and/or compile schemas
+        #:phases
+        (modify-phases %standard-phases
+          (add-after 'install 'check
+            (lambda _
+              (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME
+              ;; Run test-suite under a dbus session.
+              (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service
+                      (string-append %output "/share"))
+              ;; Don't fail on missing  '/etc/machine-id'.
+              (setenv "DBUS_FATAL_WARNINGS" "0") ;
+              (invoke "dbus-launch" "ninja" "test")))
+          (delete 'check))))
+     (inputs
+      (list bash-minimal))
+     (propagated-inputs
+      ;; atspi-2.pc refers to all these.
+      (list dbus glib libx11 libxi libxtst))
+     (native-inputs
+      `(("gettext" ,gettext-minimal)
+        ("glib" ,glib "bin")
+        ("gobject-introspection" ,gobject-introspection)
+        ("pkg-config" ,pkg-config)
+        ("python" ,python-wrapper)))
+     (synopsis "Assistive Technology Service Provider Interface, core components")
+     (description
+      "The Assistive Technology Service Provider Interface, core components,
 is part of the GNOME accessibility project.")
-    (license license:lgpl2.1+)
-    (home-page "https://wiki.gnome.org/Accessibility/")))
+     (license license:lgpl2.1+)
+     (home-page "https://wiki.gnome.org/Accessibility/"))))
 
-;;; A minimal variant used to prevent a cycle with Inkscape.
-(define at-spi2-core-minimal
-  (package
-    (inherit at-spi2-core)
-    (name "at-spi2-core-minimal")
-    (outputs (delete "doc" (package-outputs at-spi2-core)))
+(define-public at-spi2-core
+  (package/inherit at-spi2-core-minimal
+    (outputs (cons "doc" (package-outputs at-spi2-core-minimal)))
     (arguments
-     (substitute-keyword-arguments (package-arguments at-spi2-core)
-       ((#:configure-flags configure-flags)
-        `(delete "-Ddocs=true" ,configure-flags))
+     (substitute-keyword-arguments (package-arguments at-spi2-core-minimal)
+       ((#:configure-flags flags ''())
+        `(cons ,(if (%current-target-system)
+                    "-Ddocs=false"
+                    "-Ddocs=true")
+               ,flags))
        ((#:phases phases)
         `(modify-phases ,phases
-           (delete 'set-documentation-path)
-           (delete 'prepare-doc-directory)
-           (delete 'move-documentation)))))
+           (add-after 'unpack 'set-documentation-path
+             (lambda* (#:key outputs #:allow-other-keys)
+               ;; Ensure that the cross-references point to the "doc" output.
+               (substitute* "doc/libatspi/meson.build"
+                 (("docpath =.*")
+                  (string-append "docpath = '" (assoc-ref outputs "doc")
+                                 "/share/gtk-doc/html'\n")))))
+           (add-before 'install 'prepare-doc-directory
+             (lambda* (#:key outputs #:allow-other-keys)
+               (mkdir-p (string-append (assoc-ref outputs "doc") "/share"))))
+           ,@(if (%current-target-system)
+                 '()
+                 '((add-after 'install 'move-documentation
+                     (lambda* (#:key outputs #:allow-other-keys)
+                       (let ((out (assoc-ref outputs "out"))
+                             (doc (assoc-ref outputs "doc")))
+                         (copy-recursively
+                          (string-append out "/share/gtk-doc")
+                          (string-append doc "/share/gtk-doc"))
+                         (delete-file-recursively
+                          (string-append out "/share/gtk-doc")))))))))))
     (native-inputs
-     (alist-delete "gtk-doc" (package-native-inputs at-spi2-core)))))
+     (append `(("docbook-xml" ,docbook-xml-4.3)
+               ("gtk-doc" ,gtk-doc/stable)
+               ("libxml2" ,libxml2))    ;for XML_CATALOG_FILES
+         (package-native-inputs at-spi2-core-minimal)))
+    (properties (alist-delete 'hidden?
+                              (package-properties at-spi2-core-minimal)))))
 
 (define-public at-spi2-atk
   (package
@@ -839,17 +812,12 @@ is part of the GNOME accessibility project.")
              (setenv "DBUS_FATAL_WARNINGS" "0")
              (invoke "dbus-launch" "meson" "test"))))))
     (propagated-inputs
-     ;; TODO: Replace by at-spi2-core-minimal in the next staging window, or
-     ;; when Inkscape 0.92 is upgraded to 1.0 to avoid a cycle.
-     `(("at-spi2-core" ,at-spi2-core))) ; required by atk-bridge-2.0.pc
+     (list at-spi2-core-minimal)) ; required by atk-bridge-2.0.pc
     (inputs
-     `(("atk" ,atk)
-       ("glib" ,glib)))
+     (list atk glib))
     (native-inputs
-     `(("dbus" ,dbus)                ; For tests
-       ("gobject-introspection" ,gobject-introspection)
-       ("libxml2" ,libxml2)
-       ("pkg-config" ,pkg-config)))
+     (list dbus ; For tests
+           gobject-introspection libxml2 pkg-config))
     (synopsis "Assistive Technology Service Provider Interface, ATK bindings")
     (description
      "The Assistive Technology Service Provider Interface
@@ -871,42 +839,38 @@ is part of the GNOME accessibility project.")
                 "1nn6kks1zyvb5xikr9y2k7r9bwjy1g4b0m0s66532bclymbwfamc"))
               (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"
                                        "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch"
-                                       "gtk2-theme-paths.patch"))))
+                                       "gtk2-theme-paths.patch"
+                                       "gtk2-fix-builder-test.patch"))))
     (build-system gnu-build-system)
-    (outputs '("out" "bin" "doc"))
+    (outputs '("out" "bin" "doc" "debug"))
     (propagated-inputs
-     `(("atk" ,atk)
-       ("cairo" ,cairo)
-       ;; SVG support is optional and requires librsvg, which pulls in rust.
-       ;; Rust is not supported well on every architecture yet.
-       ("gdk-pixbuf" ,(if (string-prefix? "x86_64" (or (%current-target-system)
-                                                       (%current-system)))
-                          gdk-pixbuf+svg
-                          gdk-pixbuf))
-       ("glib" ,glib)
-       ("pango" ,pango)))
+     (list atk cairo
+           (if (target-x86-64?)
+             librsvg-bootstrap
+             librsvg-2.40)
+           glib pango))
     (inputs
-     `(("cups" ,cups)
-       ("libx11" ,libx11)
-       ("libxcomposite" ,libxcomposite)
-       ("libxcursor" ,libxcursor)
-       ("libxext" ,libxext)
-       ("libxdamage" ,libxdamage)
-       ("libxi" ,libxi)
-       ("libxinerama" ,libxinerama)
-       ("libxkbcommon" ,libxkbcommon)
-       ("libxrandr" ,libxrandr)
-       ("libxrender" ,libxrender)
-       ("libxshmfence" ,libxshmfence)))
+     (list cups
+           libx11
+           libxcomposite
+           libxcursor
+           libxext
+           libxdamage
+           libxi
+           libxinerama
+           libxkbcommon
+           libxrandr
+           libxrender
+           libxshmfence))
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("glib" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("intltool" ,intltool)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python-wrapper" ,python-wrapper)
-       ("xorg-server" ,xorg-server-for-tests)))
+     (list gettext-minimal
+           `(,glib "bin")
+           gobject-introspection
+           intltool
+           perl
+           pkg-config
+           python-wrapper
+           xorg-server-for-tests))
     (arguments
      `(#:parallel-tests? #f
        #:configure-flags
@@ -974,60 +938,63 @@ application suites.")
        (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
                                 "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
     (propagated-inputs
-     `(("atk" ,atk)
-       ("at-spi2-atk" ,at-spi2-atk)
-       ("cairo" ,cairo)
-       ("fribidi" ,fribidi)
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ;; SVG support is optional and requires librsvg, which pulls in rust.
-       ;; Rust is not supported well on every architecture yet.
-       ("gdk-pixbuf" ,(if (target-x86-64?)
-                          gdk-pixbuf+svg
-                          gdk-pixbuf))
-       ("glib" ,glib)
-       ("libcloudproviders" ,libcloudproviders)
-       ("libepoxy" ,libepoxy)
-       ("libx11" ,libx11)
-       ("libxcomposite" ,libxcomposite)
-       ("libxcursor" ,libxcursor)
-       ("libxdamage" ,libxdamage)
-       ("libxext" ,libxext)
-       ("libxfixes" ,libxfixes)
-       ("libxi" ,libxi)
-       ("libxinerama" ,libxinerama)
-       ("libxkbcommon" ,libxkbcommon)
-       ("libxrandr" ,libxrandr)
-       ("libxrender" ,libxrender)
-       ("mesa" ,mesa)
-       ("pango" ,pango)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+     (list atk
+           at-spi2-atk
+           cairo
+           fribidi
+           fontconfig
+           freetype
+           (if (target-x86-64?)
+             librsvg-bootstrap
+             librsvg-2.40)
+           glib
+           libcloudproviders-minimal
+           libepoxy
+           libx11
+           libxcomposite
+           libxcursor
+           libxdamage
+           libxext
+           libxfixes
+           libxi
+           libxinerama
+           libxkbcommon
+           libxrandr
+           libxrender
+           mesa
+           pango
+           wayland
+           wayland-protocols))
     (inputs
-     `(("colord" ,colord)
-       ("cups" ,cups)
-       ("graphene" ,graphene)
-       ("harfbuzz" ,harfbuzz)
-       ("iso-codes" ,iso-codes)
-       ("json-glib" ,json-glib)
-       ("libxml2" ,libxml2)
-       ("rest" ,rest)))
+     (list colord-minimal ;to prevent a cycle with inkscape
+           cups
+           graphene
+           harfbuzz
+           iso-codes
+           json-glib-minimal
+           libxml2
+           rest))
     (native-inputs
-     `(("docbook-xml" ,docbook-xml-4.1.2)
-       ("gettext" ,gettext-minimal)
-       ("glib" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("hicolor-icon-theme" ,hicolor-icon-theme)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python-wrapper" ,python-wrapper)
-       ("sassc" ,sassc)
-       ;; By using a special xorg-server for GTK+'s tests, we reduce the impact
-       ;; of updating xorg-server directly on the master branch.
-       ("xorg-server" ,xorg-server-for-tests)
-       ("xsltproc" ,libxslt)))
+     (list docbook-xml-4.1.2
+           gettext-minimal
+           `(,glib "bin")
+           gobject-introspection
+           hicolor-icon-theme
+           perl
+           pkg-config
+           python-wrapper
+           sassc
+           ;; By using a special xorg-server for GTK+'s tests, we reduce the impact
+           ;; of updating xorg-server directly on the master branch.
+           xorg-server-for-tests
+           libxslt))
     (arguments
-     `(#:disallowed-references (,xorg-server-for-tests)
+     `(#:imported-modules ((guix build glib-or-gtk-build-system)
+                           ,@%gnu-build-system-modules)
+       #:modules ((guix build utils)
+                  (guix build gnu-build-system)
+                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:))
+       #:disallowed-references (,xorg-server-for-tests)
        ;; 47 MiB goes to "out" (24 of which is locale data!), and 26 MiB goes
        ;; to "doc".
        #:configure-flags (list (string-append "--with-html-dir="
@@ -1043,6 +1010,9 @@ application suites.")
                                "--enable-broadway-backend")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
+           (assoc-ref glib-or-gtk:%standard-phases
+                      'generate-gdk-pixbuf-loaders-cache-file))
          (add-after 'unpack 'disable-failing-tests
            (lambda _
              (substitute* "testsuite/gtk/Makefile.in"
@@ -1051,12 +1021,7 @@ application suites.")
                (("notify no-gtk-init object objects-finalize papersize rbtree")
                 "no-gtk-init papersize rbtree")
                (("stylecontext templates textbuffer textiter treemodel treepath")
-                "stylecontext textbuffer textiter treemodel treepath")
-               ;; The ‘icontheme’ test needs SVG support.
-               ,@(if (not (target-x86-64?))
-                     '((("floating focus gestures grid gtkmenu icontheme keyhash listbox")
-                        "floating focus gestures grid gtkmenu keyhash listbox"))
-                     '()))
+                "stylecontext textbuffer textiter treemodel treepath"))
              (substitute* "testsuite/a11y/Makefile.in"
                (("accessibility-dump tree-performance text children derive")
                 "tree-performance text children derive"))
@@ -1090,6 +1055,183 @@ application suites.")
             (variable "GUIX_GTK3_PATH")
             (files '("lib/gtk-3.0")))))))
 
+(define-public gtk
+  (package
+    (name "gtk")
+    (version "4.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/" name "/"
+                           (version-major+minor version)  "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1rh9fd5axf79pmd93hb2fmmflic5swcvqvq6vqghlgz4bmvnjc82"))
+       (patches
+        (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch"))))
+    (build-system meson-build-system)
+    (outputs '("out" "bin" "doc"))
+    (arguments
+     `(#:modules ((guix build utils)
+                  (guix build meson-build-system)
+                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:))
+       #:configure-flags
+       (list
+        "-Dbroadway-backend=true"      ;for broadway display-backend
+        "-Dcloudproviders=enabled"     ;for cloud-providers support
+        "-Dtracker=enabled"            ;for filechooser search support
+        "-Dcolord=enabled"             ;for color printing support
+        ,@(if (%current-target-system)
+              ;; If true, gtkdoc-scangobj will try to execute a
+              ;; cross-compiled binary.
+              '("-Dgtk_doc=false")
+              '("-Dgtk_doc=true"))
+        "-Dman-pages=true")
+       #:parallel-tests? #f             ;parallel tests are not supported
+       #:test-options '("--setup=x11"   ;defaults to wayland
+                        ;; Use the same test options as upstream uses for
+                        ;; their CI.
+                        "--suite=gtk"
+                        "--no-suite=gsk-compare-broadway")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
+           (assoc-ref glib-or-gtk:%standard-phases
+                      'generate-gdk-pixbuf-loaders-cache-file))
+         (add-after 'unpack 'patch
+           (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
+             ;; Correct DTD resources of docbook.
+             (substitute* (find-files "docs" "\\.xml$")
+               (("http://www.oasis-open.org/docbook/xml/4.3/")
+                (string-append
+                 (assoc-ref (or native-inputs inputs) "docbook-xml-4.3")
+                 "/xml/dtd/docbook/")))
+             ;; Disable building of icon cache.
+             (substitute* "meson.build"
+               (("gtk_update_icon_cache: true")
+                "gtk_update_icon_cache: false"))
+             ;; Disable failing tests.
+             (substitute* (find-files "testsuite" "meson.build")
+               (("[ \t]*'empty-text.node',") "")
+               (("[ \t]*'testswitch.node',") "")
+               (("[ \t]*'widgetfactory.node',") ""))
+             (substitute* "testsuite/reftests/meson.build"
+               (("[ \t]*'label-wrap-justify.ui',") "")) ))
+         (add-before 'build 'set-cache
+           (lambda _
+             (setenv "XDG_CACHE_HOME" (getcwd))))
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1")
+             ;; Tests write to $HOME.
+             (setenv "HOME" (getcwd))
+             ;; Tests look for those variables.
+             (setenv "XDG_RUNTIME_DIR" (getcwd))
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")))
+         (add-after 'install 'move-files
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (assoc-ref outputs "bin"))
+                    (doc (assoc-ref outputs "doc")))
+               (for-each mkdir-p
+                         (list
+                          (string-append bin "/bin")
+                          (string-append bin "/share/applications")
+                          (string-append bin "/share/icons")
+                          (string-append bin "/share/man")
+                          (string-append bin "/share/metainfo")
+                          (string-append doc "/share/doc")))
+               ;; Move programs and related files to output 'bin'.
+               (for-each (lambda (dir)
+                           (rename-file
+                            (string-append out dir)
+                            (string-append bin dir)))
+                         (list
+                          "/bin"
+                          "/share/applications"
+                          "/share/icons"
+                          "/share/man"
+                          "/share/metainfo"))
+               ;; Move HTML documentation to output 'doc'.
+               (rename-file
+                (string-append out "/share/doc")
+                (string-append doc "/share/doc"))))))))
+    (native-inputs
+     `(("docbook-xml-4.3" ,docbook-xml-4.3)
+       ("docbook-xsl" ,docbook-xsl)
+       ("gettext-minimal" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection) ;for building introspection data
+       ("gtk-doc" ,gtk-doc)             ;for building documentation
+       ("intltool" ,intltool)
+       ("libxslt" ,libxslt)             ;for building man-pages
+       ("pkg-config" ,pkg-config)
+       ;; These python modules are required for building documentation.
+       ("python-jinja2" ,python-jinja2)
+       ("python-markdown" ,python-markdown)
+       ("python-markupsafe" ,python-markupsafe)
+       ("python-pygments" ,python-pygments)
+       ("python-toml" ,python-toml)
+       ("python-typogrify" ,python-typogrify)
+       ("sassc" ,sassc)                 ;for building themes
+       ("vala" ,vala)
+       ("xorg-server-for-tests" ,xorg-server-for-tests)))
+    (inputs
+     (list colord ;for color printing support
+           cups ;for CUPS print-backend
+           ffmpeg ;for ffmpeg media-backend
+           fribidi
+           gstreamer ;for gstreamer media-backend
+           gst-plugins-bad ;provides gstreamer-player
+           gst-plugins-base ;provides gstreamer-gl
+           harfbuzz
+           iso-codes
+           json-glib
+           libcloudproviders ;for cloud-providers support
+           librsvg
+           python
+           rest
+           tracker))          ;for filechooser search support
+    (propagated-inputs
+     ;; Following dependencies are referenced in .pc files.
+     `(("cairo" ,cairo)
+       ("fontconfig" ,fontconfig)
+       ("librsvg" ,librsvg)
+       ("glib" ,glib)
+       ("graphene" ,graphene)
+       ("libepoxy" ,libepoxy)
+       ("libx11" ,libx11)               ;for x11 display-backend
+       ("libxcomposite" ,libxcomposite)
+       ("libxcursor" ,libxcursor)
+       ("libxdamage" ,libxdamage)
+       ("libxext" ,libxext)
+       ("libxfixes" ,libxfixes)
+       ("libxi" ,libxi)
+       ("libxinerama" ,libxinerama)     ;for xinerama support
+       ("libxkbcommon" ,libxkbcommon)
+       ("libxrandr" ,libxrandr)
+       ("libxrender" ,libxrender)
+       ("pango" ,pango)
+       ("vulkan-headers" ,vulkan-headers)
+       ("vulkan-loader" ,vulkan-loader) ;for vulkan graphics API support
+       ("wayland" ,wayland)             ;for wayland display-backend
+       ("wayland-protocols" ,wayland-protocols)))
+    (native-search-paths
+     (list
+      (search-path-specification
+       (variable "GUIX_GTK4_PATH")
+       (files '("lib/gtk-4.0")))))
+    (search-paths native-search-paths)
+    (home-page "https://www.gtk.org/")
+    (synopsis "Cross-platform widget toolkit")
+    (description "GTK is a multi-platform toolkit for creating graphical user
+interfaces.  Offering a complete set of widgets, GTK is suitable for projects
+ranging from small one-off tools to complete application suites.")
+    (license license:lgpl2.1+)))
+
 ;;;
 ;;; Guile bindings.
 ;;;
@@ -1150,14 +1292,12 @@ application suites.")
                          (find-files module-dir "\\.scm$"))
                #t))))))
     (inputs
-     `(("guile-lib" ,guile-lib)
-       ("expat" ,expat)
-       ("guile" ,guile-3.0)))
+     (list guile-lib expat guile-3.0))
     (propagated-inputs
      ;; The .pc file refers to 'cairo'.
-     `(("cairo" ,cairo)))
+     (list cairo))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.nongnu.org/guile-cairo/")
     (synopsis "Cairo bindings for GNU Guile")
     (description
@@ -1179,9 +1319,6 @@ exceptions, macros, and a dynamic programming environment.")
        ,@(fold alist-delete (package-inputs guile-cairo)
                '("guile" "guile-lib"))))))
 
-(define-public guile3.0-cairo
-  (deprecated-package "guile3.0-cairo" guile-cairo))
-
 (define-public guile-rsvg
   ;; Use a recent snapshot that supports Guile 2.2 and beyond.
   (let ((commit "05c6a2fd67e4fea1a7c3ff776729dc931bae6678")
@@ -1239,15 +1376,10 @@ exceptions, macros, and a dynamic programming environment.")
                                        file "-o" go)))
                            (find-files module-dir "\\.scm$"))
                  #t))))))
-      (native-inputs `(("pkg-config" ,pkg-config)
-                       ("autoconf" ,autoconf)
-                       ("automake" ,automake)
-                       ("libtool" ,libtool)
-                       ("texinfo" ,texinfo)))
-      (inputs `(("guile" ,guile-3.0)
-                ("librsvg" ,librsvg)
-                ("guile-lib" ,guile-lib)))        ;for (unit-test)
-      (propagated-inputs `(("guile-cairo" ,guile-cairo)))
+      (native-inputs (list pkg-config autoconf automake libtool texinfo))
+      (inputs (list guile-3.0
+                    (librsvg-for-system) guile-lib))        ;for (unit-test)
+      (propagated-inputs (list guile-cairo))
       (synopsis "Render SVG images using Cairo from Guile")
       (description
        "Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG
@@ -1266,9 +1398,6 @@ images onto Cairo surfaces.")
                '("guile" "guile-lib"))))
     (propagated-inputs `(("guile-cairo" ,guile2.2-cairo)))))
 
-(define-public guile3.0-rsvg
-  (deprecated-package "guile3.0-rsvg" guile-rsvg))
-
 (define-public guile-present
   (package
     (name "guile-present")
@@ -1312,13 +1441,11 @@ images onto Cairo surfaces.")
                                  out "/share/guile/site/" version " -C "
                                  out "/lib/guile/" version "/site-ccache "))))
              #t)))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("guile" ,guile-3.0)))
+    (native-inputs (list pkg-config))
+    (inputs (list guile-3.0))
     (propagated-inputs
      ;; These are used by the (present …) modules.
-     `(("guile-lib" ,guile-lib)
-       ("guile-cairo" ,guile-cairo)
-       ("guile-rsvg" ,guile-rsvg)))
+     (list guile-lib guile-cairo guile-rsvg))
     (home-page "https://wingolog.org/software/guile-present/")
     (synopsis "Create SVG or PDF presentations in Guile")
     (description
@@ -1333,15 +1460,12 @@ documents.")
   (package
     (inherit guile-present)
     (name "guile2.2-present")
-    (inputs `(("guile" ,guile-2.2)))
+    (inputs (list guile-2.2))
     (propagated-inputs
      `(("guile-lib" ,guile2.2-lib)
        ("guile-cairo" ,guile2.2-cairo)
        ("guile-rsvg" ,guile2.2-rsvg)))))
 
-(define-public guile3.0-present
-  (deprecated-package "guile3.0-present" guile-present))
-
 (define-public guile-gnome
    (package
     (name "guile-gnome")
@@ -1357,23 +1481,23 @@ documents.")
                "1gnf3j96nip5kl99a268i0dy1hj7s1cfs66sps3zwysnkd7qr399"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("atk" ,atk)
-       ;;("corba" ,corba) ; not packaged yet
-       ("gconf" ,gconf)
-       ("gobject-introspection" ,gobject-introspection)
-       ;;("gthread" ,gthread) ; not packaged yet
-       ("gnome-vfs" ,gnome-vfs)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("gtk+" ,gtk+-2)
-       ("libglade" ,libglade)
-       ("libgnome" ,libgnome)
-       ("libgnomecanvas" ,libgnomecanvas)
-       ("libgnomeui" ,libgnomeui)
-       ("pango" ,pango)
-       ("libffi" ,libffi)
-       ("glib" ,glib)))
-    (inputs `(("guile" ,guile-2.2)))
+     (list pkg-config
+           atk
+           ;;("corba" ,corba) ; not packaged yet
+           gconf
+           gobject-introspection
+           ;;("gthread" ,gthread) ; not packaged yet
+           gnome-vfs
+           gdk-pixbuf
+           gtk+-2
+           libglade
+           libgnome
+           libgnomecanvas
+           libgnomeui
+           pango
+           libffi
+           glib))
+    (inputs (list guile-2.2))
     (propagated-inputs
      `(("guile-cairo" ,guile2.2-cairo)
        ("g-wrap" ,g-wrap)
@@ -1443,8 +1567,7 @@ guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.")
     (inputs
      `(("fontconfig" ,fontconfig)))
     (propagated-inputs
-     `(("libsigc++" ,libsigc++)
-       ("cairo" ,cairo)))
+     (list libsigc++ cairo))
     (home-page "https://cairographics.org/")
     (synopsis "C++ bindings to the Cairo 2D graphics library")
     (description
@@ -1466,8 +1589,8 @@ library.")
        (sha256
         (base32 "1qwdj9xw1w651kqwh82nipbryimm1ir5n3c6q34nphsx576bj9h1"))))
     (propagated-inputs
-     `(("libsigc++" ,libsigc++-2)
-       ,@(package-propagated-inputs cairomm)))))
+     (modify-inputs (package-propagated-inputs cairomm)
+       (prepend libsigc++-2)))))
 
 (define-public pangomm
   (package
@@ -1508,10 +1631,7 @@ library.")
        ("pkg-config" ,pkg-config)
        ("xsltproc" ,libxslt)))
     (propagated-inputs
-     `(("cairo" ,cairo)
-       ("cairomm" ,cairomm)
-       ("glibmm" ,glibmm)
-       ("pango" ,pango)))
+     (list cairo cairomm glibmm pango))
     (home-page "https://pango.gnome.org//")
     (synopsis "C++ interface to the Pango text rendering library")
     (description
@@ -1534,9 +1654,7 @@ library.")
        (sha256
         (base32 "06zczkaxf5p5kjgnzrfylzi40w9a8lxpndgs7rpn12qrsq27sy6k"))))
     (propagated-inputs
-     `(("cairomm" ,cairomm-1.14)
-       ("glibmm" ,glibmm-2.64)
-       ("pango" ,pango)))))
+     (list cairomm-1.14 glibmm-2.64 pango))))
 
 (define-public atkmm
   (package
@@ -1577,7 +1695,7 @@ library.")
        ("pkg-config" ,pkg-config)
        ("xsltproc" ,libxslt)))
     (propagated-inputs
-     `(("glibmm" ,glibmm) ("atk" ,atk)))
+     (list glibmm atk))
     (synopsis "C++ bindings for ATK")
     (description "ATKmm is the C++ binding for the ATK library.")
     (home-page "https://wiki.gnome.org/Accessibility")
@@ -1603,13 +1721,13 @@ library.")
        (sha256
         (base32 "1b8vycqzr3lfvk2l73f4kk74hj48081zbh9r1r2ilr3h8xh7cs0i"))))
     (propagated-inputs
-     `(("glibmm" ,glibmm-2.64)
-       ,@(package-propagated-inputs atkmm)))))
+     (modify-inputs (package-propagated-inputs atkmm)
+       (prepend glibmm-2.64)))))
 
 (define-public gtkmm
   (package
     (name "gtkmm")
-    (version "3.24.4")
+    (version "4.4.0")
     (source
      (origin
        (method url-fetch)
@@ -1618,21 +1736,26 @@ library.")
                        (version-major+minor version)  "/"
                        name "-" version ".tar.xz"))
        (sha256
-        (base32 "0hv7pviln4cpjvpz7m7ga5krcsbibqzixdcn0dwzpz0cx71p3swv"))))
+        (base32 "1nhdf1s437k41af6frbqw2sky46qci0hgkg9h86a9rlnc0r69d1f"))))
     (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
      `(#:configure-flags '("-Dbuild-documentation=true")
        #:phases
        (modify-phases %standard-phases
+         (add-before 'build 'set-cache
+           (lambda _
+             (setenv "XDG_CACHE_HOME" (getcwd))))
          (add-before 'check 'pre-check
            (lambda _
              ;; Tests require a running X server.
              (system "Xvfb :1 +extension GLX &")
              (setenv "DISPLAY" ":1")
+             ;; Tests write to $HOME.
+             (setenv "HOME" (getcwd))
+             (setenv "XDG_RUNTIME_DIR" (getcwd))
              ;; For missing '/etc/machine-id'.
-             (setenv "DBUS_FATAL_WARNINGS" "0")
-             #t))
+             (setenv "DBUS_FATAL_WARNINGS" "0")))
          (add-after 'install 'move-doc
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -1640,8 +1763,7 @@ library.")
                (mkdir-p (string-append doc "/share"))
                (rename-file
                 (string-append out "/share/doc")
-                (string-append doc "/share/doc"))
-               #t))))))
+                (string-append doc "/share/doc"))))))))
     (native-inputs
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)
@@ -1653,15 +1775,11 @@ library.")
        ("xsltproc" ,libxslt)
        ("xorg-server" ,xorg-server-for-tests)))
     (propagated-inputs
-     `(("atkmm" ,atkmm-2.28)
-       ("cairomm" ,cairomm-1.14)
-       ("glibmm" ,glibmm)
-       ("gtk+" ,gtk+)
-       ("pangomm" ,pangomm-2.46)))
+     (list atkmm cairomm glibmm gtk pangomm))
     (synopsis "C++ Interfaces for GTK+ and GNOME")
     (description "GTKmm is the official C++ interface for the popular GUI
-library GTK+.  Highlights include typesafe callbacks, and a comprehensive set of
-widgets that are easily extensible via inheritance.  You can create user
+library GTK+.  Highlights include typesafe callbacks, and a comprehensive set
+of widgets that are easily extensible via inheritance.  You can create user
 interfaces either in code or with the Glade User Interface designer, using
 libglademm.  There's extensive documentation, including API reference and a
 tutorial.")
@@ -1673,6 +1791,33 @@ tutorial.")
       ;; Tools
       license:gpl2+))))
 
+(define-public gtkmm-3
+  (package
+    (inherit gtkmm)
+    (name "gtkmm")
+    (version "3.24.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "1ri2msp3cmzi6r65ghwb8gfavfaxv0axpwi3q60nm7v8hvg36qw5"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments gtkmm)
+       ;; Use meson 0.59 to workaround a new issue with meson 0.60 (see:
+       ;; https://github.com/mesonbuild/meson/issues/9350#issuecomment-953799600).
+       ((#:meson _ #f)
+        meson-0.59)))
+    (propagated-inputs
+     `(("atkmm-2.28" ,atkmm-2.28)
+       ("cairomm-1.14" ,cairomm-1.14)
+       ("glibmm" ,glibmm)
+       ("gtk+" ,gtk+)
+       ("pangomm-2.42" ,pangomm-2.46)))))
+
 (define-public gtkmm-2
   (package
     (inherit gtkmm)
@@ -1689,29 +1834,10 @@ tutorial.")
         (base32 "0wkbzvsx4kgw16f6xjdc1dz7f77ldngdila4yi5lw2zrgcxsb006"))))
     (build-system gnu-build-system)
     (arguments
-     (substitute-keyword-arguments (package-arguments gtkmm)
-       ((#:modules modules %gnu-build-system-modules)
-        `((srfi srfi-1)
-          ,@modules))
-       ((#:configure-flags flags)
-        `(fold delete
-               ,flags
-               '("-Dbuild-documentation=true")))))
-    (native-inputs
-     `(("dot" ,graphviz)
-       ("doxygen" ,doxygen)
-       ("m4" ,m4)
-       ("mm-common" ,mm-common)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("xsltproc" ,libxslt)
-       ("xorg-server" ,xorg-server-for-tests)))
+     (strip-keyword-arguments
+      '(#:configure-flags) (package-arguments gtkmm)))
     (propagated-inputs
-     `(("atkmm" ,atkmm-2.28)
-       ("cairomm" ,cairomm-1.14)
-       ("glibmm" ,glibmm-2.64)
-       ("gtk+" ,gtk+-2)
-       ("pangomm" ,pangomm-2.46)))))
+     (list atkmm-2.28 cairomm-1.14 glibmm-2.64 gtk+-2 pangomm-2.46))))
 
 (define-public gtksourceviewmm
   (package
@@ -1726,12 +1852,10 @@ tutorial.")
                (base32 "0fgvmhm4h4qmxig87qvangs6ijw53mi40siz7pixlxbrsgiil22i"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
      ;; In 'Requires' of gtksourceviewmm-3.0.pc.
-     `(("glibmm" ,glibmm)
-       ("gtkmm" ,gtkmm)
-       ("gtksourceview" ,gtksourceview-3)))
+     (list glibmm gtkmm-3 gtksourceview-3))
     (synopsis "C++ interface to the GTK+ 'GtkTextView' widget")
     (description
      "gtksourceviewmm is a portable C++ library that extends the standard GTK+
@@ -1759,10 +1883,9 @@ printing and other features typical of a source code editor.")
         "1326aa2ybhhhrvz3n4p22z5sic25m016ddb5yq0hvbprnw6a35an"))))
     (build-system python-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-pytest" ,python-pytest)))
+     (list pkg-config python-pytest))
     (propagated-inputs                  ;pycairo.pc references cairo
-     `(("cairo" ,cairo)))
+     (list cairo))
     (home-page "https://cairographics.org/pycairo/")
     (synopsis "Python bindings for cairo")
     (description
@@ -1805,7 +1928,7 @@ printing and other features typical of a source code editor.")
     (outputs '("out"
                "doc"))                            ;13 MiB of gtk-doc HTML
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("python" ,python-2)
 
@@ -1872,10 +1995,9 @@ write GNOME applications.")
                 "0zq78dv22arg35ma6kah9cwfd1zx8gg7amsibzd128qw81p766c2"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-extutils-depends" ,perl-extutils-depends)
-       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+     (list perl-extutils-depends perl-extutils-pkgconfig))
     (propagated-inputs
-     `(("cairo" ,cairo)))
+     (list cairo))
     (home-page "https://metacpan.org/release/Cairo")
     (synopsis "Perl interface to the cairo 2d vector graphics library")
     (description "Cairo provides Perl bindings for the vector graphics library
@@ -1896,11 +2018,9 @@ produces identical output on all those targets.")
         (base32 "0l2wcz77ndmbgvxx34gdm919a3dxh9fixqr47p50n78ysx2692cd"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-extutils-depends" ,perl-extutils-depends)
-       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+     (list perl-extutils-depends perl-extutils-pkgconfig))
     (propagated-inputs
-     `(("perl-cairo" ,perl-cairo)
-       ("perl-glib" ,perl-glib)))
+     (list perl-cairo perl-glib))
     (home-page "https://metacpan.org/dist/Cairo-GObject")
     (synopsis "Integrate Cairo into the Glib type system")
     (description "Cairo::GObject registers Cairo's types with Glib's type systems,
@@ -1920,12 +2040,11 @@ so that they can be used normally in signals and properties.")
                 "0ry9jfvfgdwzalxcvwsgr7plhk3agx7p40l0fqdf3vrf7ds47i29"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-extutils-depends" ,perl-extutils-depends)
-       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+     (list perl-extutils-depends perl-extutils-pkgconfig))
     (inputs
-     `(("gtk+" ,gtk+-2)))
+     (list gtk+-2))
     (propagated-inputs
-     `(("perl-pango" ,perl-pango)))
+     (list perl-pango))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1973,11 +2092,8 @@ yet remaining very close in spirit to original API.")
        ("perl-test-simple" ,perl-test-simple)
        ("xorg-server" ,xorg-server-for-tests)))
     (propagated-inputs
-     `(("gtk+" ,gtk+)
-       ("perl-cairo-gobject" ,perl-cairo-gobject)
-       ("perl-carp" ,perl-carp)
-       ("perl-exporter" ,perl-exporter)
-       ("perl-glib-object-introspection" ,perl-glib-object-introspection)))
+     (list gtk+ perl-cairo-gobject perl-carp perl-exporter
+           perl-glib-object-introspection))
     (home-page "https://metacpan.org/dist/Gtk3")
     (synopsis "Perl interface to the 3.x series of the gtk+ toolkit")
     (description "Perl bindings to the 3.x series of the gtk+ toolkit.
@@ -1999,13 +2115,11 @@ yet remaining very close in spirit to original API.")
                 "0wdcidnfnb6nm79fzfs39ivawj3x8m98a147fmcxgv1zvwia9c1l"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-extutils-depends" ,perl-extutils-depends)
-       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
+     (list perl-extutils-depends perl-extutils-pkgconfig))
     (inputs
-     `(("pango" ,pango)))
+     (list pango))
     (propagated-inputs
-     `(("perl-cairo" ,perl-cairo)
-       ("perl-glib" ,perl-glib)))
+     (list perl-cairo perl-glib))
     (home-page "https://metacpan.org/release/Pango")
     (synopsis "Layout and render international text")
     (description "Pango is a library for laying out and rendering text, with an
@@ -2042,7 +2156,7 @@ and routines to assist in editing internationalized text.")
                      ("glib:bin" ,glib "bin")
                      ("xorg-server" ,xorg-server-for-tests)))
     ;; Listed in 'Requires.private' of 'girara.pc'.
-    (propagated-inputs `(("gtk+" ,gtk+)))
+    (propagated-inputs (list gtk+))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-before 'check 'start-xserver
@@ -2127,21 +2241,21 @@ information.")
        ("pkg-config" ,pkg-config)
        ("python-wrapper" ,python-wrapper)))
     (inputs
-     `(("bc" ,bc)
-       ("dblatex" ,dblatex)
-       ("docbook-xml" ,docbook-xml-4.3)
-       ("docbook-xsl" ,docbook-xsl)
-       ("glib" ,glib)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("python" ,python)
-       ("python-anytree" ,python-anytree)
-       ("python-lxml" ,python-lxml)
-       ("python-parameterized" ,python-parameterized)
-       ("python-pygments" ,python-pygments)
-       ("python-unittest2" ,python-unittest2)
-       ("source-highlight" ,source-highlight)
-       ("yelp-tools" ,yelp-tools)))
+     (list bc
+           dblatex
+           docbook-xml-4.3
+           docbook-xsl
+           glib
+           libxml2
+           libxslt
+           python
+           python-anytree
+           python-lxml
+           python-parameterized
+           python-pygments
+           python-unittest2
+           source-highlight
+           yelp-tools))
     (home-page "https://wiki.gnome.org/DocumentationProject/GtkDoc")
     (synopsis "GTK+ DocBook Documentation Generator")
     (description "GtkDoc is a tool used to extract API documentation from C-code
@@ -2184,11 +2298,10 @@ with some extra work.")
      `(#:configure-flags
        `("--enable-animation")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
      ;; Don't propagate GTK+ to reduce "profile pollution".
-     `(("gtk+" ,gtk+-2))) ; required by gtk-engines-2.pc
+     (list gtk+-2)) ; required by gtk-engines-2.pc
     (home-page "https://live.gnome.org/GnomeArt")
     (synopsis "Theming engines for GTK+ 2.x")
     (description
@@ -2215,10 +2328,9 @@ Redmond95 and ThinIce.")
        `("--enable-animation"
          "--enable-animationrtl")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (propagated-inputs
-     `(("gtk+" ,gtk+-2)))
+     (list gtk+-2))
     (home-page "https://live.gnome.org/GnomeArt")
     (synopsis "Cairo-based theming engine for GTK+ 2.x")
     (description
@@ -2239,15 +2351,11 @@ glass artworks done by Venicians glass blowers.")
                 "0cjp6xdcnzh6kka42w9g0w2ihqjlq8yl8hjm9wsfnixk6qwgch5h"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("vala" ,vala)))
+     (list intltool pkg-config vala))
     (inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("gtk+" ,gtk+)
-       ("pango" ,pango)))
+     (list gobject-introspection gtk+ pango))
     (propagated-inputs
-     `(("enchant" ,enchant)))           ; gtkspell3-3.0.pc refers to it
+     (list enchant))           ; gtkspell3-3.0.pc refers to it
     (home-page "http://gtkspell.sourceforge.net")
     (synopsis "Spell-checking addon for GTK's TextView widget")
     (description
@@ -2270,12 +2378,9 @@ misspelled words in a GtkTextView widget.")
         (base32 "05xi29v2y0rvb33fmvrz7r9j4l858qj7ngwd7dp4pzpkkaybjln0"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake intltool pkg-config))
     (inputs
-     `(("gtk+" ,gtk+-2)))
+     (list gtk+-2))
     (home-page "https://github.com/CristianHenzel/ClipIt")
     (synopsis "Lightweight GTK+ clipboard manager")
     (description
@@ -2287,7 +2392,7 @@ Parcellite and adds bugfixes and features.")
 (define-public graphene
   (package
     (name "graphene")
-    (version "1.10.0")
+    (version "1.10.6")
     (source
      (origin
        (method git-fetch)
@@ -2297,7 +2402,7 @@ Parcellite and adds bugfixes and features.")
          (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "14a0j1rvjlc7yhfdmhmckdmkzy4ch61qbzywdlw1xv58h23wx29p"))))
+        (base32 "0g2jjy6xizzjxlp0dr81h1f5l16dzcnhznhj6jvhpdjqcvgp98xr"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
@@ -2309,13 +2414,12 @@ Parcellite and adds bugfixes and features.")
               '("-Dintrospection=false")
               '()))))
     (native-inputs
-     `(("git" ,git-minimal)
+     `(("git" ,git-minimal/fixed)
        ("gobject-introspection" ,gobject-introspection)
        ("mutest" ,mutest)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("glib" ,glib)
-       ("python" ,python)))
+     (list glib python))
     (synopsis "Thin layer of graphic data types")
     (description "Graphene provides graphic types and their relative API; it
 does not deal with windowing system surfaces, drawing, scene graphs, or input.")
@@ -2335,12 +2439,11 @@ does not deal with windowing system surfaces, drawing, scene graphs, or input.")
         (base32 "09rzgp7gabnzab460x874a1ibgyjiibpwzsz5srn9zs6jv2jdxjb"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("glib" ,glib "bin")             ; for glib-genmarshal, etc.
-       ("pkg-config" ,pkg-config)))
+     (list `(,glib "bin") ; for glib-genmarshal, etc.
+           pkg-config))
     ;; In 'Requires' of spread-sheet-widget.pc.
     (propagated-inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)))
+     (list glib gtk+))
     (home-page "https://www.gnu.org/software/ssw/")
     (synopsis "Gtk+ widget for dealing with 2-D tabular data")
     (description
@@ -2349,6 +2452,40 @@ viewing and manipulating 2 dimensional tabular data in a manner similar to many
 popular spread sheet programs.")
     (license license:gpl3+)))
 
+(define-public pnmixer
+  (package
+    (name "pnmixer")
+    (version "0.7.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nicklan/pnmixer/")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0416pa933ddf4b7ph9zxhk5jppkk7ppcq1aqph6xsrfnka4yb148"))))
+    (build-system cmake-build-system)
+    (arguments `(#:tests? #f))          ;no check target
+    (native-inputs
+     (list gettext-minimal pkg-config))
+    (inputs
+     (list alsa-lib glib gtk+ libnotify libx11))
+    (home-page "https://github.com/nicklan/pnmixer/")
+    (synopsis "Simple mixer application designed to run in system tray")
+    (description
+     "PNMixer is a simple mixer application designed to run in system tray.
+It integrates nicely into desktop environments that don't have a panel that
+supports applets and therefore can't run a mixer applet.  In particular, it's
+been used quite a lot with fbpanel and tint2 but should run fine in any system
+tray.
+
+PNMixer is designed to work on systems that use ALSA for sound management.
+Any other sound driver like OSS or FFADO are, currently, not supported.  There
+is no official PulseAudio support, at the moment, but it seems that PNMixer
+behaves quite well anyway when PA is running.")
+    (license license:gpl3)))
+
 (define-public volumeicon
   (package
     (name "volumeicon")
@@ -2365,12 +2502,9 @@ popular spread sheet programs.")
      `(#:configure-flags
        (list "--enable-notify")))       ; optional libnotify support
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("gtk+" ,gtk+)
-       ("libnotify" ,libnotify)))
+     (list alsa-lib gtk+ libnotify))
     (home-page "http://nullwise.com/volumeicon.html")
     (synopsis "System tray volume applet")
     (description
@@ -2409,13 +2543,9 @@ independent of your desktop environment, and supports global key bindings.")
            (lambda _
              (invoke "intltoolize" "--force" "--automake"))))))
     (inputs
-     `(("gspell" ,gspell)
-       ("gtk+" ,gtk+)))
+     (list gspell gtk+))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake intltool pkg-config))
     (home-page "https://sourceforge.net/projects/yad-dialog/")
     (synopsis "GTK+ dialog boxes for shell scripts")
     (description
@@ -2439,8 +2569,8 @@ shell scripts.  Example of how to use @code{yad} can be consulted at
               (base32
                "0fgzz39007fdjwq72scp0qygp2v3zc5f1xkm0sxaa8zxm25g1bra"))))
    (build-system gnu-build-system)
-   (inputs `(("gtk+" ,gtk+)))
-   (native-inputs `(("pkg-config" ,pkg-config)))
+   (inputs (list gtk+))
+   (native-inputs (list pkg-config))
    (arguments
     `(#:tests? #f                       ; no check
       #:make-flags
@@ -2546,10 +2676,8 @@ displayed on the other side of the bus.")
         (base32 "1kcp4p3s7sdh9lwniybjdarfy8z69j2j23hfrw98amhwhq39gdcc"))))
     (build-system meson-build-system)
     (arguments `(#:configure-flags (list "-Dtests=true")))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("gobject-introspection" ,gobject-introspection)))
-    (inputs `(("wayland" ,wayland)
-              ("gtk+" ,gtk+)))
+    (native-inputs (list pkg-config gobject-introspection))
+    (inputs (list wayland gtk+))
     (home-page "https://github.com/wmww/gtk-layer-shell")
     (synopsis "Library to create Wayland desktop components using the Layer
 Shell protocol")
@@ -2581,10 +2709,7 @@ popovers.")
        ("pkg-config" ,pkg-config)
        ("python" ,python)))
     (inputs
-     `(("cairo" ,cairo)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("python-pygobject" ,python-pygobject)))
+     (list cairo glib gtk+ python-pygobject))
     (arguments
      `(#:configure-flags '("--disable-rebuilds"
                            "--disable-static")
@@ -2623,7 +2748,8 @@ library for drawing.")
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list "--enable-glade"
-                               "--enable-introspection")
+                               "--enable-introspection"
+                               "CFLAGS=-fcommon")
        #:phases
        (modify-phases %standard-phases
          ;; The "configure" script is present, but otherwise the project is
@@ -2633,11 +2759,14 @@ library for drawing.")
            (lambda _
              (delete-file "configure")
              #t))
-         (add-after 'unpack 'rename-type
+         (add-after 'unpack 'patch-for-compatibility
            (lambda _
              (substitute* "glade/glade-gtksheet-editor.c"
                (("GladeEditableIface") "GladeEditableInterface"))
-             #t))
+             ;; Glade 3.37 renamed the macro GWA_GET_CLASS to
+             ;; GLADE_WIDGET_ADAPTOR_GET_ADAPTOR_CLASS.
+             (substitute* "glade/glade-gtksheet-editor.c"
+               (("GWA_GET_CLASS") "GLADE_WIDGET_ADAPTOR_GET_ADAPTOR_CLASS"))))
          ;; Fix glade install directories.
          (add-before 'bootstrap 'configure-glade-directories
            (lambda* (#:key outputs #:allow-other-keys)
@@ -2650,16 +2779,9 @@ library for drawing.")
                 (string-append (assoc-ref outputs "out") "/share/pixmaps")))
              #t)))))
     (inputs
-     `(("glade" ,glade3)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libxml2" ,libxml2)))
+     (list glade3 glib gtk+ libxml2))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gobject-introspection" ,gobject-introspection)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake gobject-introspection libtool pkg-config))
     (home-page "https://fpaquet.github.io/gtksheet/")
     (synopsis "Spreadsheet widget for GTK+")
     (description "GtkSheet is a matrix widget for GTK+.  It consists of an
@@ -2691,9 +2813,9 @@ foreground and background colors, text justification and more.")
         (base32 "1qykm551bx8j8pfgxs60l2vhpi8lv4r8va69zvn2594lchh71vlb"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("gtk+" ,gtk+)))
+     (list gtk+))
     (synopsis "Display widget for dynamic data")
     (description "GtkDatabox is a widget for live display of large amounts of
 fluctuating numerical data.  It enables data presentation (for example, on
@@ -2730,14 +2852,9 @@ user interaction (e.g.  measuring distances).")
                   (string-append pulse "/lib/libpulse.so.0")))
                #t))))))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libxfixes" ,libxfixes)
-       ("pulseaudio" ,pulseaudio)))
+     (list gtk+ libxfixes pulseaudio))
     (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python-click python-pycairo python-pygobject python-pyyaml))
     (home-page "https://buzz.github.io/volctl/")
     (synopsis "Per-application volume control and on-screen display (OSD) for graphical desktops")
     (description "Volctl is a PulseAudio-enabled tray icon volume control and
diff --git a/gnu/packages/guile-wm.scm b/gnu/packages/guile-wm.scm
index e2c1bd432b..911cda8968 100644
--- a/gnu/packages/guile-wm.scm
+++ b/gnu/packages/guile-wm.scm
@@ -58,9 +58,7 @@
                                             "--with-guile-site-ccache-dir="
                                             (assoc-ref %outputs "out")
                                             "/lib/guile/2.2/site-ccache"))))
-      (native-inputs `(("guile" ,guile-2.2)
-                       ("pkg-config" ,pkg-config)
-                       ("texinfo" ,texinfo)))
+      (native-inputs (list guile-2.2 pkg-config texinfo))
       (inputs `(("guile" ,guile-2.2)
                 ("xcb" ,xcb-proto)))
       (home-page "https://github.com/mwitmer/guile-xcb")
@@ -174,12 +172,8 @@ dependencies.")
                                     Type=Application~%"
                              ,name ,synopsis %output))))
                #t)))))
-      (native-inputs `(("guile" ,guile-2.2)
-                       ("guile-xcb" ,guile-xcb)
-                       ("pkg-config" ,pkg-config)
-                       ("texinfo" ,texinfo)))
-      (inputs `(("guile" ,guile-2.2)
-                ("guile-xcb" ,guile-xcb)))
+      (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")
       (description
        "Guile-WM is a simple window manager that's completely customizable—you
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index b41dce8002..8346d99996 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com>
 ;;; Copyright © 2016, 2019, 2020, 2021 Eraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2016, 2017, 2021 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016, 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
 ;;; Copyright © 2016, 2021 Amirouche <amirouche@hypermove.net>
 ;;; Copyright © 2016, 2019, 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@@ -31,13 +31,14 @@
 ;;; Copyright © 2020, 2021 Masaya Tojo <masaya@tojo.tokyo>
 ;;; Copyright © 2020 Jesse Gibbons <jgibbons2357@gmail.com>
 ;;; Copyright © 2020 Mike Rosset <mike.rosset@gmail.com>
-;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2020, 2021 pukkamustard <pukkamustard@posteo.net>
 ;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
 ;;; Copyright © 2021 Zelphir Kaltstahl <zelphirkaltstahl@posteo.de>
 ;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2021 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,6 +58,7 @@
 (define-module (gnu packages guile-xyz)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages aspell)
   #:use-module (gnu packages autotools)
@@ -167,17 +169,13 @@
                   #t))))
     (build-system gnu-build-system)
     (inputs
-     `(("guile" ,guile-3.0)
-       ("nspr" ,nspr)
-       ("nss" ,nss)))
+     (list guile-3.0 nspr nss))
     ;; FIXME the bundled csv contains one more exported procedure
     ;; (sxml->csv-string) than guile-csv. The author is maintainer of both
     ;; projects.
     ;; TODO: Add guile-dbi and guile-dbd optional dependencies.
     (propagated-inputs
-     `(("guile-json" ,guile-json-3)
-       ("guile-readline" ,guile-readline)
-       ("guile-redis" ,guile-redis)))
+     (list guile-json-3 guile-readline guile-redis))
     (native-inputs
      `(("bash"       ,bash)         ;for the `source' builtin
        ("pkgconfig"  ,pkg-config)
@@ -256,6 +254,33 @@ more.")
     (home-page "https://www.gnu.org/software/artanis/")
     (license (list license:gpl3+ license:lgpl3+)))) ;dual license
 
+;; There are no releases yet of this package.
+(define-public guile-pipe
+  (let ((commit "0746ec38d19d844dff0c6f62f209b2b6c8d8872e")
+        (revision "0"))
+    (package
+      (name "guile-pipe")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/joshwalters/guile-pipe")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "038gwrhfywgs8372q478wn4623lhcmkknfj4p8yaa93bykfc0fml"))))
+      (build-system guile-build-system)
+      (native-inputs
+       (list guile-3.0))
+      (home-page "https://github.com/joshwalters/guile-pipe")
+      (synopsis "Guile pipe macros for functional chaining")
+      (description
+       "This package provides macros for functional chaining in Guile, similar
+to UNIX pipes (@code{|}), Clojure's threading macros (@code{->} and
+@code{->>}).")
+      (license license:gpl3+))))
+
 (define-public guile-f-scm
   (package
     (name "guile-f-scm")
@@ -271,7 +296,7 @@ more.")
         (base32 "14wyrs3m1649l3km4pl2175dmap1372j5h8nkhykrbxg5xqp6ivd"))))
     (build-system guile-build-system)
     (native-inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "https://git.sr.ht/~brown121407/f.scm")
     (synopsis "Library for working with files and directories")
     (description
@@ -316,12 +341,10 @@ AM_SCM_LOG_FLAGS =  --no-auto-compile -s")
                  (("tests/database.scm") ""))
                #t)))))
       (inputs
-       `(("guile" ,guile-2.0)))
+       (list guile-2.0))
       (native-inputs
-       `(("zip" ,zip) ; for tests
-         ("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("texinfo" ,texinfo)))
+       (list zip ; for tests
+             autoconf automake texinfo))
       (synopsis "Package manager for Guile")
       (description
        "Guildhall is a package manager written for Guile Scheme.  A guild is
@@ -367,9 +390,8 @@ $(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n"))
                            (string-append "\"" aspell
                                           "/lib/libaspell\"")))
                         #t))))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("guile" ,guile-2.2)
-              ("aspell" ,aspell)))
+    (native-inputs (list pkg-config))
+    (inputs (list guile-2.2 aspell))
     (home-page "https://github.com/spk121/guile-aspell")
     (synopsis "Spell-checking from Guile")
     (description
@@ -477,11 +499,7 @@ and then run @command{scm example.scm}.")
                (base32
                 "031wm13srak3wsnll7j2mbbi29g1pcm4swdb71ds9yn567pn20qw"))))
     (build-system gnu-build-system)
-    (native-inputs `(("autoconf" ,autoconf)
-                     ("automake" ,automake)
-                     ("guile" ,guile-2.2)
-                     ("pkg-config" ,pkg-config)
-                     ("texinfo" ,texinfo)))
+    (native-inputs (list autoconf automake guile-2.2 pkg-config texinfo))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-before 'configure 'setenv
@@ -513,9 +531,9 @@ Note that 8sync is only available for Guile 2.2.")
                 "08gaqrgjlly9k5si72vvpbr4xhq5v52l5ma5y6a7spid5dd057cy"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("guile" ,guile-2.2)))
+     (list guile-3.0))
     (home-page "https://github.com/alezost/guile-daemon")
     (synopsis "Evaluate code in a running Guile process")
     (description
@@ -527,7 +545,7 @@ you send to a FIFO file.")
 (define-public guile-dsv
   (package
     (name "guile-dsv")
-    (version "0.4.0")
+    (version "0.5.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -536,15 +554,12 @@ you send to a FIFO file.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "1mvyc8i38j56frjh3p6vwziv8lrzlyqndz30663h5nwcp0044sdn"))))
+                "0s9zan08ala7432pn44z3vmb3sc19rf18zfr9mskydnam5xn6qlw"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)))
-    (inputs `(("guile" ,guile-3.0)))
-    (propagated-inputs `(("guile-lib" ,guile-lib)))
+     (list autoconf automake pkg-config texinfo))
+    (inputs (list guile-3.0))
+    (propagated-inputs (list guile-lib))
     (arguments
      `(#:modules (((guix build guile-build-system)
                    #:select (target-guile-effective-version))
@@ -552,21 +567,6 @@ you send to a FIFO file.")
        #:imported-modules ((guix build guile-build-system)
                            ,@%gnu-build-system-modules)
        #:phases (modify-phases %standard-phases
-                  (add-before 'configure 'set-guilesitedir
-                    (lambda _
-                      (substitute* "Makefile.in"
-                        (("^guilesitedir =.*$")
-                         "guilesitedir = \
-$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n"))
-                      (substitute* "modules/Makefile.in"
-                        (("^guilesitedir =.*$")
-                         "guilesitedir = \
-$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n"))
-                      (substitute* "modules/dsv/Makefile.in"
-                        (("^guilesitedir =.*$")
-                         "guilesitedir = \
-$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n"))
-                      #t))
                   (add-after 'install 'wrap-program
                     (lambda* (#:key inputs outputs #:allow-other-keys)
                       (let* ((out (assoc-ref outputs "out"))
@@ -597,7 +597,7 @@ Unix-style DSV format and RFC 4180 format.")
   (package
     (inherit guile-dsv)
     (name "guile2.2-dsv")
-    (inputs `(("guile" ,guile-2.2)))
+    (inputs (list guile-2.2))
     (propagated-inputs `(("guile-lib" ,guile2.2-lib)))))
 
 (define-public guile-fibers
@@ -654,10 +654,9 @@ Unix-style DSV format and RFC 4180 format.")
                         (rename-file old new)
                         #t))))))
     (native-inputs
-     `(("texinfo" ,texinfo)
-       ("pkg-config" ,pkg-config)))
+     (list texinfo pkg-config))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (synopsis "Lightweight concurrency facility for Guile")
     (description
      "Fibers is a Guile library that implements a a lightweight concurrency
@@ -677,10 +676,7 @@ is not available for Guile 2.0.")
   (package
     (inherit guile-fibers)
     (name "guile2.2-fibers")
-    (inputs `(("guile" ,guile-2.2)))))
-
-(define-public guile3.0-fibers
-  (deprecated-package "guile3.0-fibers" guile-fibers))
+    (inputs (list guile-2.2))))
 
 (define-public guile-filesystem
   (package
@@ -697,12 +693,9 @@ is not available for Guile 2.0.")
                 "1shmkc0y9r2sj3kw7hrsnamnp7y8xifkhf3m3rnfxczqg63k67vy"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)))
+     (list autoconf automake pkg-config texinfo))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "https://gitlab.com/leoprikler/guile-filesystem")
     (synopsis "Complementary library to Guile's built-in file system procedures")
     (description "@code{guile-filesystem} provides a set of utility functions,
@@ -713,13 +706,13 @@ that augment Guile's support for handling files and their names.")
   (package
     (inherit guile-filesystem)
     (name "guile2.0-filesystem")
-    (inputs `(("guile" ,guile-2.0)))))
+    (inputs (list guile-2.0))))
 
 (define-public guile2.2-filesystem
   (package
     (inherit guile-filesystem)
     (name "guile2.2-filesystem")
-    (inputs `(("guile" ,guile-2.2)))))
+    (inputs (list guile-2.2))))
 
 (define-public guile-syntax-highlight
   (package
@@ -744,9 +737,9 @@ that augment Guile's support for handling files and their names.")
                   #t))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (synopsis "General-purpose syntax highlighter for GNU Guile")
     (description "Guile-syntax-highlight is a general-purpose syntax
 highlighting library for GNU Guile.  It can parse code written in various
@@ -772,20 +765,15 @@ HTML (via SXML) or any other format for rendering.")
                  (base32
                   "18zlg4mkgd3swgv2ggfz91ivnnzc0zhvc9ybgrxg1y762va9hyvj"))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("texinfo" ,texinfo)
-         ,@(package-native-inputs guile-syntax-highlight)))
+       (modify-inputs (package-native-inputs guile-syntax-highlight)
+         (prepend autoconf automake texinfo)))
       (properties '((hidden? . #t))))))
 
 (define-public guile2.2-syntax-highlight
   (package
     (inherit guile-syntax-highlight)
     (name "guile2.2-syntax-highlight")
-    (inputs `(("guile" ,guile-2.2)))))
-
-(define-public guile3.0-syntax-highlight
-  (deprecated-package "guile3.0-syntax-highlight" guile-syntax-highlight))
+    (inputs (list guile-2.2))))
 
 (define-public guile-sjson
   (package
@@ -808,11 +796,9 @@ HTML (via SXML) or any other format for rendering.")
                   #t))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "https://gitlab.com/dustyweb/guile-sjson")
     (synopsis "S-expression based json reader/writer for Guile")
     (description "guile-sjson is a json reader/writer for Guile.
@@ -823,7 +809,7 @@ It has a nice, simple s-expression based syntax.")
   (package
     (inherit guile-sjson)
     (name "guile2.2-sjson")
-    (inputs `(("guile" ,guile-2.2)))))
+    (inputs (list guile-2.2))))
 
 (define-public guile-squee
   (let ((commit "c1497a216e881cfde39d6aa7c73d0bf6b497c89b")
@@ -854,9 +840,9 @@ It has a nice, simple s-expression based syntax.")
                    "\"")))
                #t)))))
       (inputs
-       `(("postgresql" ,postgresql)))
+       (list postgresql))
       (native-inputs
-       `(("guile" ,guile-3.0)))
+       (list guile-3.0))
       (home-page "https://notabug.org/cwebber/guile-squee")
       (synopsis "Connect to PostgreSQL using Guile")
       (description
@@ -868,12 +854,8 @@ using Guile's foreign function interface.")
   (package
     (inherit guile-squee)
     (name "guile2.2-squee")
-    (native-inputs `(("guile" ,guile-2.2)
-                     ,@(alist-delete "guile"
-                                     (package-native-inputs guile-squee))))))
-
-(define-public guile3.0-squee
-  (deprecated-package "guile3.0-squee" guile-squee))
+    (native-inputs (modify-inputs (package-native-inputs guile-squee)
+                     (replace "guile" guile-2.2)))))
 
 (define-public guile-colorized
   (package
@@ -890,7 +872,7 @@ using Guile's foreign function interface.")
         (base32 "10mv8c63159r3qvwwdvsgnsvdg7nc2ghak85zapwqpv4ywrqp9zc"))))
     (build-system guile-build-system)
     (native-inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "https://gitlab.com/NalaGinrut/guile-colorized")
     (synopsis "Colorized REPL for Guile")
     (description
@@ -901,10 +883,7 @@ using Guile's foreign function interface.")
   (package
     (inherit guile-colorized)
     (name "guile2.2-colorized")
-    (native-inputs `(("guile" ,guile-2.2)))))
-
-(define-public guile3.0-colorized
-  (deprecated-package "guile3.0-colorized" guile-colorized))
+    (native-inputs (list guile-2.2))))
 
 (define-public guile-pfds
   (package
@@ -956,7 +935,7 @@ using Guile's foreign function interface.")
                                   "sequences.sls"
                                   "sets.sls")))))))
     (native-inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (synopsis "Purely functional data structures for Guile")
     (description
      "This package provides purely functional data structures written in R6RS
@@ -998,12 +977,10 @@ Vicare Scheme and IronScheme.  Right now it contains:
                (("\\/share\\/guile\\/site") "/share/guile/site/2.0"))
              #t)))))
     (native-inputs
-     `(("procps" ,procps)               ; fake-cluster-control uses ps
-       ("guile" ,guile-2.0)
-       ("postgresql" ,postgresql)))
+     (list procps ; fake-cluster-control uses ps
+           guile-2.0 postgresql))
     (inputs
-     `(("guile" ,guile-2.0)
-       ("postgresql" ,postgresql)))
+     (list guile-2.0 postgresql))
     (home-page "https://www.nongnu.org/guile-pg/")
     (synopsis "Guile modules for accessing PostgreSQL")
     (description
@@ -1031,12 +1008,9 @@ works with Guile 1.4.x to 2.0.x.")
               (file-name (string-append name "-" version "-checkout"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("guile" ,guile-3.0)))
+     (list pkg-config autoconf automake guile-3.0))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "https://git.cbaines.net/guile/prometheus")
     (synopsis "Prometheus client library for Guile")
     (description
@@ -1049,7 +1023,7 @@ types are supported.")
   (package
     (inherit guile-pfds)
     (name "guile2.2-pfds")
-    (native-inputs `(("guile" ,guile-2.2)))
+    (native-inputs (list guile-2.2))
     (arguments
      (substitute-keyword-arguments (package-arguments guile-pfds)
        ((#:phases phases)
@@ -1067,9 +1041,6 @@ types are supported.")
                          (find-files "." "\\.sls$"))
                #t))))))))
 
-(define-public guile3.0-pfds
-  (deprecated-package "guile3.0-pfds" guile-pfds))
-
 (define-public guile-aa-tree
   (package
     (name "guile-aa-tree")
@@ -1082,7 +1053,7 @@ types are supported.")
                (base32
                 "0044c105r3q9vpl17pv3phl1b79kjm1llhkakqgiasixyav01blh"))))
     (build-system guile-build-system)
-    (native-inputs `(("guile" ,guile-2.2)))
+    (native-inputs (list guile-2.2))
     ;; https://savannah.nongnu.org/projects/guile-aa-tree
     (home-page "https://qlfiles.net/guile-aa-tree/")
     (synopsis "AA tree data structure for Guile")
@@ -1116,12 +1087,9 @@ convenient nested tree operations.")
          '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings
 
       (native-inputs
-       `(("guile" ,guile-3.0)))
+       (list guile-3.0))
       (inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)
-         ("zeromq" ,zeromq)))
+       (list autoconf automake pkg-config zeromq))
       (home-page "https://github.com/jerry40/guile-simple-zmq")
       (synopsis "Guile wrapper over ZeroMQ library")
       (description
@@ -1133,10 +1101,7 @@ messaging library.")
   (package
     (inherit guile-simple-zmq)
     (name "guile2.2-simple-zmq")
-    (native-inputs `(("guile" ,guile-2.2)))))
-
-(define-public guile3.0-simple-zmq
-  (deprecated-package "guile3.0-simple-zmq" guile-simple-zmq))
+    (native-inputs (list guile-2.2))))
 
 (define-public jupyter-guile-kernel
   (let ((commit "f25fb90b95529b17a006a807bd04e6aee12ea304")
@@ -1215,10 +1180,7 @@ messaging library.")
                                               ", \"-s"))))
                           #t))))))
       (inputs
-       `(("openssl" ,openssl)
-         ("guile" ,guile-3.0)
-         ("guile-json" ,guile-json-3)
-         ("guile-simple-zmq" ,guile-simple-zmq)))
+       (list openssl guile-3.0 guile-json-3 guile-simple-zmq))
       (synopsis "Guile kernel for the Jupyter Notebook")
       (description
        "This package provides a Guile 2.x kernel for the Jupyter Notebook.  It
@@ -1239,9 +1201,9 @@ allows users to interact with the Guile REPL through Jupyter.")
              (base32 "1jf4972f9fpm0rd865xpnc9mzl3xv6vhfnp0iygadydy905z9nln"))))
    (build-system gnu-build-system)
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    (list pkg-config))
    (inputs
-    `(("guile" ,guile-3.0)))
+    (list guile-3.0))
    (home-page "https://github.com/roelj/guile-sparql")
    (synopsis "SPARQL module for Guile")
    (description "This package provides the functionality to query a SPARQL
@@ -1262,10 +1224,9 @@ using S-expressions.")
                 "1cc63nw3xdfjrfk8c58r6d5lidmfq5cpqcy32yd5xp81yccprvn9"))))
     (build-system gnu-build-system)
     (propagated-inputs
-     `(("guile-email" ,guile-email)))
+     (list guile-email))
     (native-inputs
-     `(("guile" ,guile-3.0)
-       ("pkg-config" ,pkg-config)))
+     (list guile-3.0 pkg-config))
     (home-page "https://savannah.gnu.org/projects/guile-debbugs/")
     (synopsis "Guile interface to the Debbugs bug tracking service")
     (description
@@ -1285,13 +1246,14 @@ tracker's SOAP service, such as @url{https://bugs.gnu.org}.")
              version ".tar.lz"))
        (sha256
         (base32
-         "1rc8r0fgvflnyq5ckl7ii8sghpsgpkzxa8vskjr1ak2kyar6m35k"))))
+         "1rc8r0fgvflnyq5ckl7ii8sghpsgpkzxa8vskjr1ak2kyar6m35k"))
+       (patches
+        (search-patches "guile-email-fix-tests.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("lzip" ,lzip)))
+     (list pkg-config lzip))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (arguments
      '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ; to prevent guild warnings
     (home-page "https://guile-email.systemreboot.net")
@@ -1303,8 +1265,8 @@ format.")
     (license license:agpl3+)))
 
 (define-public guile-email-latest
-  (let ((commit "ca0520a33c9042a68691d85c6849f88412ca8357")
-        (revision "1"))
+  (let ((commit "ea60bb902d3677d5c653851c7aa6afbbf710140e")
+        (revision "2"))
     (package
       (inherit guile-email)
       (name "guile-email-latest")
@@ -1318,22 +1280,16 @@ format.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1l5mikalawq83786rnb9zky908ncsd5dna9vyz6bx6kc2frrl7xv"))))
+           "1g4rn7ai3nfxmpppc8qbpv8b18wnsld29y5xa58cv9b8pf3pbwnj"))))
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("texinfo" ,texinfo))))))
+       (list pkg-config autoconf automake texinfo)))))
 
 (define-public guile2.2-email
   (package
     (inherit guile-email)
     (name "guile2.2-email")
-    (inputs `(("guile" ,guile-2.2)
-              ,@(alist-delete "guile" (package-inputs guile-email))))))
-
-(define-public guile3.0-email
-  (deprecated-package "guile3.0-email" guile-email))
+    (inputs (modify-inputs (package-inputs guile-email)
+              (replace "guile" guile-2.2)))))
 
 (define-public guile-newt
   (package
@@ -1353,12 +1309,9 @@ format.")
      '(#:make-flags
        '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings
     (inputs
-     `(("guile" ,guile-3.0)
-       ("newt" ,newt)))
+     (list guile-3.0 newt))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (synopsis "Guile bindings to Newt")
     (description
      "This package provides bindings for Newt, a programming library for
@@ -1371,11 +1324,8 @@ Scheme by using Guile’s foreign function interface.")
   (package
     (inherit guile-newt)
     (name "guile2.2-newt")
-    (inputs `(("guile" ,guile-2.2)
-              ,@(alist-delete "guile" (package-inputs guile-newt))))))
-
-(define-public guile3.0-newt
-  (deprecated-package "guile3.0-newt" guile-newt))
+    (inputs (modify-inputs (package-inputs guile-newt)
+              (replace "guile" guile-2.2)))))
 
 (define-public guile-mastodon
   (let ((commit "74b75bcf547df92acee1e0466ecd7ec07f775392")
@@ -1394,15 +1344,9 @@ Scheme by using Guile’s foreign function interface.")
                   "1wx5h6wa9c0na8mrnr2nv1nzjvq68zyrly8yyp11dsskhaw4y33h"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("emacs" ,emacs-minimal)
-         ("pkg-config" ,pkg-config)
-         ("texinfo" ,texinfo)))
+       (list autoconf automake emacs-minimal pkg-config texinfo))
       (inputs
-       `(("guile" ,guile-3.0)
-         ("gnutls" ,gnutls)
-         ("guile-json" ,guile-json-4)))
+       (list guile-3.0 gnutls guile-json-4))
       (home-page "https://framagit.org/prouby/guile-mastodon")
       (synopsis "Guile Mastodon REST API module")
       (description "This package provides Guile modules to access the
@@ -1429,14 +1373,11 @@ microblogging service.")
      '(#:make-flags
        '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings
     (inputs
-     `(("guile" ,guile-3.0)
-       ("parted" ,parted)))
+     (list guile-3.0 parted))
     (propagated-inputs
-     `(("guile-bytestructures" ,guile-bytestructures)))
+     (list guile-bytestructures))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (synopsis "Guile bindings to GNU Parted")
     (description
      "This package provides bindings for GNU Parted library, a C library
@@ -1449,18 +1390,15 @@ written in pure Scheme by using Guile's foreign function interface.")
   (package
     (inherit guile-parted)
     (name "guile2.2-parted")
-    (inputs `(("guile" ,guile-2.2)
-              ,@(alist-delete "guile" (package-inputs guile-parted))))
+    (inputs (modify-inputs (package-inputs guile-parted)
+              (replace "guile" guile-2.2)))
     (propagated-inputs
      `(("guile-bytestructures" ,guile2.2-bytestructures)))))
 
-(define-public guile3.0-parted
-  (deprecated-package "guile3.0-parted" guile-parted))
-
 (define-public guile-xosd
   (package
     (name "guile-xosd")
-    (version "0.2.1")
+    (version "0.2.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/alezost/" name
@@ -1468,16 +1406,22 @@ written in pure Scheme by using Guile's foreign function interface.")
                                   "/" name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1ri5065c16kmgrf2pysn2ymxjqi5302lhpb07wkl1jr75ym8fn8p"))))
+                "10r29bpyrsvjalnzkam2falj9k34lvxmch05zs606zp1nk93whp3"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'set-cpath
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "CPATH"
+                     (string-append
+                      (assoc-ref inputs "guile") "/include/guile/3.0:"
+                      (or (getenv "CPATH") "")))
+             #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("guile" ,guile-2.2)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxinerama" ,libxinerama)
-       ("xosd" ,xosd)))
+     (list guile-3.0 libx11 libxext libxinerama xosd))
     (home-page "https://github.com/alezost/guile-xosd")
     (synopsis "XOSD bindings for Guile")
     (description
@@ -1489,143 +1433,147 @@ library}.")
 (define-public guile-dbi
   (package
     (name "guile-dbi")
-    (version "2.1.6")
+    (version "2.1.8")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://example.org") ;only hosted on Software Heritage
-                    (commit "e19b019e9683faf66c3f385b20fcc112e65f8c6e")))
+                    (url "https://github.com/opencog/guile-dbi")
+                    (commit (string-append "guile-dbi-" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "09ys5hj7gnj5w1iv1m194j06jk6b8sdhc8j6hcv3bprq1428kyxw"))))
+                "123m4j82bi60s1v95pjh4djb7bh6zdwmljbpyg7zq8ni2gyal7lw"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags
-       (list (string-append
-              "--with-guile-site-dir=" %output "/share/guile/site/2.2"))
-       #:make-flags
+     `(#:modules (((guix build guile-build-system)
+                   #:select (target-guile-effective-version))
+                  ,@%gnu-build-system-modules)
+       #:imported-modules ((guix build guile-build-system)
+                           ,@%gnu-build-system-modules)
+       #:configure-flags
        (list (string-append
-              "LDFLAGS=-Wl,-rpath=" %output "/lib:"
-              (assoc-ref %build-inputs "guile-dbd-sqlite3") "/lib" ":"
-              (assoc-ref %build-inputs "guile-dbd-postgresql") "/lib"))
+              "--with-guile-site-dir=" %output "/share/guile/site/"
+              (target-guile-effective-version (assoc-ref %build-inputs "guile"))))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _
+             ;; The upstream Git repository contains all the code, so change
+             ;; to the directory specific to guile-dbi.
+             (chdir "guile-dbi")))
          (add-after 'install 'patch-extension-path
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out     (assoc-ref outputs "out"))
-                    (dbi.scm (string-append
-                              out "/share/guile/site/2.2/dbi/dbi.scm"))
-                    (ext     (string-append out "/lib/libguile-dbi")))
-               (substitute* dbi.scm (("libguile-dbi") ext))
-               #t))))))
-    (inputs
-     `(("guile-dbd-sqlite3" ,guile-dbd-sqlite3)
-       ("guile-dbd-postgresql" ,guile-dbd-postgresql))) ; only shared library, no scheme files
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (dbi.scm (string-append out "/share/guile/site/"
+                                            (target-guile-effective-version
+                                             (assoc-ref inputs "guile"))
+                                            "/dbi/dbi.scm"))
+                    (ext (string-append out "/lib/libguile-dbi")))
+               (substitute* dbi.scm (("libguile-dbi") ext))))))))
+    (native-inputs
+     (list autoconf automake libtool perl texinfo))
     (propagated-inputs
-     `(("guile" ,guile-2.2)))
+     (list guile-2.2))
     (synopsis "Guile database abstraction layer")
-    (home-page "https://web.archive.org/web/20160328232717/http://home.gna.org/guile-dbi/guile-dbi.html")
+    (home-page "https://github.com/opencog/guile-dbi")
     (description
      "guile-dbi is a library for Guile that provides a convenient interface to
 SQL databases.  Database programming with guile-dbi is generic in that the same
 programming interface is presented regardless of which database system is used.
 It currently supports MySQL, Postgres and SQLite3.")
-    (license license:gpl2+)))
+    (license license:gpl2+)
+    (native-search-paths
+     (list (search-path-specification
+            (variable "GUILE_DBD_PATH")
+            (files '("lib")))))))
 
-(define guile-dbi-bootstrap
+(define-public guile-dbd-sqlite3
   (package
     (inherit guile-dbi)
-    (name "guile-dbi-bootstrap")
-    (inputs '())
+    (name "guile-dbd-sqlite3")
     (arguments
      (substitute-keyword-arguments (package-arguments guile-dbi)
-       ((#:make-flags _) '(list))))))
-
-(define-public guile-dbd-sqlite3
-  (package
-    (name "guile-dbd-sqlite3")
-    (version "2.1.6")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://example.org") ;only hosted on Software Heritage
-                    (commit "0758c615e9e85ad76d153d5dc6179881f1f50089")))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1rwf3z6ib6nkhfnk2nw8p6fqirdx2pparcrlmsm0i2ii62plpqhb"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("guile-dbi-bootstrap" ,guile-dbi-bootstrap))) ; only required for headers
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (replace 'chdir
+             (lambda _
+               ;; The upstream Git repository contains all the code, so change
+               ;; to the directory specific to guile-dbd-sqlite3.
+               (chdir "guile-dbd-sqlite3")))
+           (delete 'patch-extension-path)))))
     (inputs
-     `(("sqlite" ,sqlite)
-       ("zlib" ,(@ (gnu packages compression) zlib))))
+     (list sqlite zlib))
+    (native-inputs
+     (modify-inputs (package-native-inputs guile-dbi)
+       (prepend guile-dbi ; only required for headers
+                pkg-config)))
     (synopsis "Guile DBI driver for SQLite")
-    ;; Unofficial home-page.
-    ;; Added by b9cbfa52f71505de8447fefabd97f16d0a9cbde6 (2016-06)
-    (home-page "https://github.com/jkalbhenn/guile-dbd-sqlite3")
     (description
      "guile-dbi is a library for Guile that provides a convenient interface to
-SQL databases.  This package implements the interface for SQLite.")
-    (license license:gpl2+)))
+SQL databases.  This package implements the interface for SQLite.")))
 
 (define-public guile-dbd-postgresql
-  (let ((commit "e97589b6b018b206c901e4cc24db463407a4036b")
-        (revision 0))
-    (package
-      (name "guile-dbd-postgresql")
-      (version (string-append
-                "2.1.6-" (number->string revision) "." (string-take commit 7)))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/opencog/guile-dbi")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0n1gv9a0kdys10a4qmnrwvg5sydwb03880asri4gqdchcj3fimni"))))
-      (build-system gnu-build-system)
-      (arguments
-       '(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'chdir
+  (package
+    (inherit guile-dbi)
+    (name "guile-dbd-postgresql")
+    (arguments
+     (substitute-keyword-arguments (package-arguments guile-dbi)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (replace 'chdir
              (lambda _
                ;; The upstream Git repository contains all the code, so change
-               ;; to the relevant directory.
-               (chdir "guile-dbd-postgresql")
-               #t))
-           (add-after 'chdir 'patch-src/Makefile.am
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "src/Makefile.am"
-                 (("/usr/include")
-                  (string-append (assoc-ref inputs "postgresql") "/include")))
-               #t))
-           (add-after 'patch-src/Makefile.am 'patch-src
+               ;; to the directory specific to guile-dbd-mysql.
+               (chdir "guile-dbd-postgresql")))
+           (add-after 'chdir 'patch-src
              (lambda _
                (substitute* "src/guile-dbd-postgresql.c"
-                 (("postgresql/libpq-fe\\.h") "libpq-fe.h"))
-               #t)))))
-      (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("automake" ,automake)
-         ("autoconf" ,autoconf)
-         ("perl" ,perl)
-         ("libtool" ,libtool)
-         ("guile-dbi-bootstrap" ,guile-dbi-bootstrap)))
-      (inputs
-       `(("postgresql" ,postgresql)
-         ("zlib" ,zlib)))
-      (synopsis "Guile DBI driver for PostgreSQL")
-      (home-page
-       "https://github.com/opencog/guile-dbi/tree/master/guile-dbd-postgresql")
-      (description
-       "@code{guile-dbi} is a library for Guile that provides a convenient
+                 (("postgresql/libpq-fe\\.h") "libpq-fe.h"))))
+           (delete 'patch-extension-path)))))
+    (inputs
+     (list postgresql zlib))
+    (native-inputs
+     (modify-inputs (package-native-inputs guile-dbi)
+       (prepend guile-dbi ; only required for headers
+                )))
+    (synopsis "Guile DBI driver for PostgreSQL")
+    (description
+     "@code{guile-dbi} is a library for Guile that provides a convenient
 interface to SQL databases.  This package implements the interface for
-PostgreSQL.")
-      (license license:gpl2+))))
+PostgreSQL.")))
+
+(define-public guile-dbd-mysql
+  (package
+    (inherit guile-dbi)
+    (name "guile-dbd-mysql")
+    (arguments
+     (substitute-keyword-arguments (package-arguments guile-dbi)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (replace 'chdir
+             (lambda _
+               ;; The upstream Git repository contains all the code, so change
+               ;; to the directory specific to guile-dbd-mysql.
+               (chdir "guile-dbd-mysql")))
+           (add-after 'chdir 'patch-src
+             (lambda _
+               (substitute* "configure.ac"
+                 (("mariadbclient") "mariadb"))
+               (substitute* "src/guile-dbd-mysql.c"
+                 (("<mariadb/") "<mysql/"))))
+           (delete 'patch-extension-path)))))
+    (inputs
+     (list `(,mariadb "dev")
+           `(,mariadb "lib") zlib))
+    (native-inputs
+     (modify-inputs (package-native-inputs guile-dbi)
+       (prepend guile-dbi ; only required for headers
+                )))
+    (synopsis "Guile DBI driver for MySQL")
+    (description "@code{guile-dbi} is a library for Guile that provides a
+convenient interface to SQL databases.  This package implements the interface
+for MySQL.")
+    (license license:gpl2+)))
 
 (define-public guile-config
   (package
@@ -1642,11 +1590,8 @@ PostgreSQL.")
                 "09028ylbddjdp3d67zdjz3pnsjqz6zs2bfck5rr3dfaa0qjap40n"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)))
-    (inputs `(("guile" ,guile-3.0)))
+     (list autoconf automake pkg-config texinfo))
+    (inputs (list guile-3.0))
     (synopsis
      "Guile application configuration parsing library.")
     (description
@@ -1665,11 +1610,8 @@ above command-line parameters.")
   (package
     (inherit guile-config)
     (name "guile2.2-config")
-    (inputs `(("guile" ,guile-2.2)
-              ,@(alist-delete "guile" (package-inputs guile-config))))))
-
-(define-public guile3.0-config
-  (deprecated-package "guile3.0-config" guile-config))
+    (inputs (modify-inputs (package-inputs guile-config)
+              (replace "guile" guile-2.2)))))
 
 (define-public guile-hall
   (package
@@ -1733,13 +1675,10 @@ above command-line parameters.")
                           ,''("hall"))
                         #t))))))))
     (native-inputs
-      `(("autoconf" ,autoconf)
-        ("automake" ,automake)
-        ("pkg-config" ,pkg-config)
-        ("texinfo" ,texinfo)))
-    (inputs `(("guile" ,guile-3.0)))
+      (list autoconf automake pkg-config texinfo))
+    (inputs (list guile-3.0))
     (propagated-inputs
-     `(("guile-config" ,guile-config)))
+     (list guile-config))
     (synopsis "Guile project tooling")
     (description
      "Hall is a command-line application and a set of Guile libraries that
@@ -1753,16 +1692,13 @@ provides tight coupling to Guix.")
   (package
     (inherit guile-hall)
     (name "guile2.2-hall")
-    (inputs `(("guile" ,guile-2.2)
-              ,@(alist-delete "guile" (package-inputs guile-hall))))
+    (inputs (modify-inputs (package-inputs guile-hall)
+              (replace "guile" guile-2.2)))
     (propagated-inputs
      `(("guile-config" ,guile2.2-config)
        ,@(alist-delete "guile-config"
                        (package-propagated-inputs guile-hall))))))
 
-(define-public guile3.0-hall
-  (deprecated-package "guile3.0-hall" guile-hall))
-
 (define-public guile-ics
   (package
     (name "guile-ics")
@@ -1785,6 +1721,9 @@ provides tight coupling to Guix.")
                      "GUILE_PKG([3.0 2.2 2.0])\n"))
                   #t))))
     (build-system gnu-build-system)
+    ;; XXX: Tests expect 'test-runner-current' to not return #f after
+    ;; 'test-end', which is no longer the case in Guile 3.0.7.
+    (arguments '(#:tests? #f))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -1792,8 +1731,8 @@ provides tight coupling to Guix.")
        ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'.
        ("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
-    (inputs `(("guile" ,guile-3.0) ("which" ,which)))
-    (propagated-inputs `(("guile-lib" ,guile-lib)))
+    (inputs (list guile-3.0 which))
+    (propagated-inputs (list guile-lib))
     (home-page "https://github.com/artyom-poptsov/guile-ics")
     (synopsis "Guile parser library for the iCalendar format")
     (description
@@ -1807,13 +1746,10 @@ The library is shipped with documentation in Info format and usage examples.")
   (package
     (inherit guile-ics)
     (name "guile2.2-ics")
-    (inputs `(("guile" ,guile-2.2)
-              ,@(alist-delete "guile" (package-inputs guile-ics))))
+    (inputs (modify-inputs (package-inputs guile-ics)
+              (replace "guile" guile-2.2)))
     (propagated-inputs `(("guile-lib" ,guile2.2-lib)))))
 
-(define-public guile3.0-ics
-  (deprecated-package "guile3.0-ics" guile-ics))
-
 (define-public guile-imanifest
   (let ((commit "ccd5a2111b008d778106f5595a3a585954d95d0")
         (revision "0"))
@@ -1831,11 +1767,9 @@ The library is shipped with documentation in Info format and usage examples.")
                   "0i5qllcrhdjhspyj7j9h4dc9y37d3cfbpackmybm3030qgfxqirf"))))
       (build-system guile-build-system)
       (native-inputs
-       `(("guile" ,guile-3.0)))
+       (list guile-3.0))
       (propagated-inputs
-       `(("guile-readline" ,guile-readline)
-         ("guile-colorized" ,guile-colorized)
-         ("guix" ,guix)))
+       (list guile-readline guile-colorized guix))
       (home-page "https://sr.ht/~brown121407/guile-imanifest")
       (synopsis "Interactive Guix manifests")
       (description "This package provides functions to generate Guix manifests
@@ -1846,7 +1780,7 @@ user which package sets would they like to install from it.")
 (define-public guile-wisp
   (package
     (name "guile-wisp")
-    (version "1.0.5")
+    (version "1.0.6")
     (source (origin
               (method hg-fetch)
               (uri (hg-reference
@@ -1855,7 +1789,7 @@ user which package sets would they like to install from it.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "00iknn03gf421gg3061g35fbraqrkcqypkrfn10rhlgg6j0lgk67"))))
+                "0df0vch2p6qymz3f96clrkl2gphjk6x7fbya236yzxc07hkz2j3g"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((guix build gnu-build-system)
@@ -1871,13 +1805,11 @@ user which package sets would they like to install from it.")
        (modify-phases %standard-phases
          (replace 'bootstrap
            (lambda _
-             (invoke "autoreconf" "-vif")
-             #t))
+             (invoke "autoreconf" "-vif")))
          (add-before 'configure 'patch-/usr/bin/env
            (lambda _
              (substitute* "Makefile.in"
-               (("/usr/bin/env bash") (which "bash")))
-             #t))
+               (("/usr/bin/env bash") (which "bash")))))
          ;; auto compilation breaks, but if we set HOME to /tmp,
          ;; that works ok
          (add-before 'check 'auto-compile-hacky-workaround
@@ -1901,8 +1833,7 @@ user which package sets would they like to install from it.")
                                   (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-emacs-files
            (assoc-ref emacs:%standard-phases 'install))
          (add-after 'install-emacs-files 'compile-emacs-files
@@ -1911,7 +1842,7 @@ user which package sets would they like to install from it.")
            (assoc-ref emacs:%standard-phases 'make-autoloads)))))
     (home-page "https://www.draketo.de/english/wisp")
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -1929,15 +1860,12 @@ users and in some situations.")
   (package
     (inherit guile-wisp)
     (name "guile2.2-wisp")
-    (inputs `(("guile" ,guile-2.2)))))
-
-(define-public guile3.0-wisp
-  (deprecated-package "guile3.0-wisp" guile-wisp))
+    (inputs (list guile-2.2))))
 
 (define-public guile-udev
   (package
     (name "guile-udev")
-    (version "0.1.0")
+    (version "0.2.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1946,19 +1874,18 @@ users and in some situations.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1l6csncjqnx58c6c3wdl7rshnhk4pzhjq2q8lnkg483564s9w5py"))))
+                "037md1sg7bgsa4478hz1dbsivsxzdnl5acadlrsh4ds2yxbsb5jp"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gettext-minimal)
-       ("libtool" ,libtool)
-       ("texinfo" ,texinfo)
-       ("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list autoconf
+           automake
+           gettext-minimal
+           libtool
+           texinfo
+           pkg-config
+           which))
     (inputs
-     `(("guile" ,guile-3.0)
-       ("eudev" ,eudev)))
+     (list guile-3.0 eudev))
     (home-page "https://github.com/artyom-poptsov/guile-udev")
     (synopsis "Guile bindings to libudev")
     (description
@@ -2002,15 +1929,11 @@ users and in some situations.")
              (string-append "--with-libgslcblas-prefix="
                             (assoc-ref %build-inputs "gsl")))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
-     `(("guile-sdl" ,guile-sdl)
-       ("guile-opengl" ,guile-opengl)))
+     (list guile-sdl guile-opengl))
     (inputs
-     `(("guile" ,guile-2.2)
-       ("gsl" ,gsl)
-       ("freeimage" ,freeimage)
-       ("mesa" ,mesa)))
+     (list guile-2.2 gsl freeimage mesa))
     (synopsis "2D/3D game engine for GNU Guile")
     (description "Sly is a 2D/3D game engine written in Guile Scheme.  Sly
 features a functional reactive programming interface and live coding
@@ -2049,7 +1972,7 @@ capabilities.")
          ("gtk" ,gtk+)
          ("glib" ,glib)))
       (propagated-inputs
-       `(("gobject-introspection" ,gobject-introspection)))
+       (list gobject-introspection))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -2118,12 +2041,11 @@ object-oriented programming system, GOOPS.")
                 "0ak0bha37dfpj9kmyw1r8fj8nva639aw5xr66wr5gd3l1rqf5xhg"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
-     `(("guile" ,guile-2.2)
-       ("guile-lib" ,guile-lib)))
+     (list guile-2.2 guile-lib))
     (inputs
-     `(("libffi" ,libffi)))
+     (list libffi))
     (arguments
      `(#:configure-flags '("--disable-Werror")
        #:phases
@@ -2161,7 +2083,7 @@ provides access to that interface and its types from the Scheme level.")
                   "09q51zkw2fypad5xixskfzw2cjhjgs5cswdp3i7cpp651rb3zndh"))))
       (build-system guile-build-system)
       (native-inputs
-       `(("guile" ,guile-2.2)))
+       (list guile-2.2))
       (home-page "https://github.com/fisherdj/miniAdapton")
       (synopsis "Minimal implementation of incremental computation in Guile
 Scheme")
@@ -2198,7 +2120,7 @@ understand, extend, and port to host languages other than Scheme.")
                (when tests?
                  (invoke "guile" "-L" "." "-s" "test.scm")))))))
       (native-inputs
-       `(("guile" ,guile-3.0)))
+       (list guile-3.0))
       (home-page "https://github.com/lloda/guile-raw-strings")
       (synopsis "Guile reader extension for `raw strings'")
       (description "This package provides A Guile reader extension for `raw
@@ -2218,9 +2140,8 @@ quotes. ")
                 (base32
                  "1fyjckmygkhq22lq8nqc86yl5zzbqd7a944dnz5c1f6vx92b9hiq"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkgconfig" ,pkg-config)
-                     ("gperf" ,gperf)))
-    (inputs `(("guile" ,guile-3.0)))
+    (native-inputs (list pkg-config gperf))
+    (inputs (list guile-3.0))
     (synopsis "Framework for building readers for GNU Guile")
     (description
      "Guile-Reader is a simple framework for building readers for GNU Guile.
@@ -2241,7 +2162,7 @@ many readers as needed).")
   (package
     (inherit guile-reader)
     (name "guile2.2-reader")
-    (inputs `(("guile" ,guile-2.2)))))
+    (inputs (list guile-2.2))))
 
 (define-public guile-ncurses
   (package
@@ -2255,9 +2176,8 @@ many readers as needed).")
               (base32
                "038xbffalhymg26lvmzgf7ljilxz2f2zmqg5r5nfzbipfbprwjhf"))))
     (build-system gnu-build-system)
-    (inputs `(("ncurses" ,ncurses)
-              ("guile" ,guile-3.0)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list ncurses guile-3.0))
+    (native-inputs (list pkg-config))
     (arguments
      `(#:modules ((guix build gnu-build-system)
                   ((guix build guile-build-system)
@@ -2294,11 +2214,7 @@ library.")
   (package
     (inherit guile-ncurses)
     (name "guile2.2-ncurses")
-    (inputs `(("ncurses" ,ncurses)
-              ("guile" ,guile-2.2)))))
-
-(define-public guile3.0-ncurses
-  (deprecated-package "guile3.0-ncurses" guile-ncurses))
+    (inputs (list ncurses guile-2.2))))
 
 (define-public guile-ncurses/gpm
   (package
@@ -2307,13 +2223,6 @@ library.")
     (inputs `(("ncurses" ,ncurses/gpm)
               ("guile" ,guile-3.0)))))
 
-(define-public guile3.0-ncurses/gpm
-  (package
-    (inherit guile3.0-ncurses)
-    (name "guile3.0-ncurses-with-gpm")
-    (inputs `(("ncurses" ,ncurses/gpm)
-              ("guile" ,guile-3.0)))))
-
 (define-public guile-lib
   (package
     (name "guile-lib")
@@ -2345,7 +2254,7 @@ $(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")))))))
        ("guile" ,guile-3.0)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("guile" ,guile-3.0)))           ;for cross-compilation
+     (list guile-3.0))           ;for cross-compilation
     (home-page "https://www.nongnu.org/guile-lib/")
     (synopsis "Collection of useful Guile Scheme modules")
     (description
@@ -2409,9 +2318,6 @@ for Guile\".  It provides the following modules:
      (alist-replace "guile" (list guile-2.2)
                     (package-inputs guile-lib)))))
 
-(define-public guile3.0-lib
-  (deprecated-package "guile3.0-lib" guile-lib))
-
 (define-public guile-minikanren
   (package
     (name "guile-minikanren")
@@ -2427,7 +2333,7 @@ for Guile\".  It provides the following modules:
                 "0r50jlpzi940jlmxyy3ddqqwmj5r12gb4bcv0ssini9v8km13xz6"))))
     (build-system guile-build-system)
     (native-inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "https://github.com/ijp/minikanren")
     (synopsis "MiniKanren declarative logic system, packaged for Guile")
     (description
@@ -2446,16 +2352,13 @@ See http://minikanren.org/ for more on miniKanren generally.")
   (package
     (inherit guile-minikanren)
     (name "guile2.0-minikanren")
-    (native-inputs `(("guile" ,guile-2.0)))))
+    (native-inputs (list guile-2.0))))
 
 (define-public guile2.2-minikanren
   (package
     (inherit guile-minikanren)
     (name "guile2.2-minikanren")
-    (native-inputs `(("guile" ,guile-2.2)))))
-
-(define-public guile3.0-minikanren
-  (deprecated-package "guile3.0-minikanren" guile-minikanren))
+    (native-inputs (list guile-2.2))))
 
 (define-public guile-irregex
   (package
@@ -2488,7 +2391,7 @@ See http://minikanren.org/ for more on miniKanren generally.")
                       #t)))
        #:source-directory "src"))
     (native-inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "http://synthcode.com/scheme/irregex")
     (synopsis "S-expression based regular expressions")
     (description
@@ -2501,16 +2404,13 @@ inspired by the SCSH regular expression system.")
   (package
     (inherit guile-irregex)
     (name "guile2.0-irregex")
-    (native-inputs `(("guile" ,guile-2.0)))))
+    (native-inputs (list guile-2.0))))
 
 (define-public guile2.2-irregex
   (package
     (inherit guile-irregex)
     (name "guile2.2-irregex")
-    (native-inputs `(("guile" ,guile-2.2)))))
-
-(define-public guile3.0-irregex
-  (deprecated-package "guile3.0-irregex" guile-irregex))
+    (native-inputs (list guile-2.2))))
 
 (define-public haunt
   (package
@@ -2565,15 +2465,13 @@ inspired by the SCSH regular expression system.")
                                          deps))))
                              #t)))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)))
+     (list pkg-config texinfo))
     (inputs
      ;; Depend on the latest Guile to avoid bytecode compatibility issues when
      ;; using modules built against the latest version.
-     `(("guile" ,guile-3.0-latest)))
+     (list guile-3.0-latest))
     (propagated-inputs
-     `(("guile-reader" ,guile-reader)
-       ("guile-commonmark" ,guile-commonmark)))
+     (list guile-reader guile-commonmark))
     (synopsis "Functional static site generator")
     (description "Haunt is a static site generator written in Guile
 Scheme.  Haunt features a functional build system and an extensible
@@ -2585,7 +2483,7 @@ interface for reading articles in any format.")
   (package
     (inherit haunt)
     (name "guile2.2-haunt")
-    (inputs `(("guile" ,guile-2.2)))
+    (inputs (list guile-2.2))
     (propagated-inputs
      `(("guile-reader" ,guile2.2-reader)
        ("guile-commonmark" ,guile2.2-commonmark)))))
@@ -2594,10 +2492,7 @@ interface for reading articles in any format.")
   (package
     (inherit haunt)
     (name "guile2.0-haunt")
-    (inputs `(("guile" ,guile-2.0)))))
-
-(define-public guile3.0-haunt
-  (deprecated-package "guile3.0-haunt" haunt))
+    (inputs (list guile-2.0))))
 
 (define-public guile-redis
   (package
@@ -2617,10 +2512,7 @@ interface for reading articles in any format.")
     (arguments
      '(#:make-flags '("GUILE_AUTO_COMPILE=0")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("guile" ,guile-3.0)))
+     (list autoconf automake pkg-config guile-3.0))
     (synopsis "Redis client library for Guile")
     (description "Guile-redis provides a Scheme interface to the Redis
 key-value cache and store.")
@@ -2630,9 +2522,8 @@ key-value cache and store.")
   (package
     (inherit guile-redis)
     (name "guile2.2-redis")
-    (native-inputs `(("guile" ,guile-2.2)
-                     ,@(alist-delete "guile"
-                                     (package-native-inputs guile-redis))))))
+    (native-inputs (modify-inputs (package-native-inputs guile-redis)
+                     (replace "guile" guile-2.2)))))
 
 (define-public guile2.0-redis
   (package
@@ -2650,9 +2541,8 @@ key-value cache and store.")
                 "(rnrs io ports)"))
              #t)))
        ,@(package-arguments guile-redis)))
-    (native-inputs `(("guile" ,guile-2.0)
-                     ,@(alist-delete "guile"
-                                     (package-native-inputs guile-redis))))))
+    (native-inputs (modify-inputs (package-native-inputs guile-redis)
+                     (replace "guile" guile-2.0)))))
 
 (define-public guile-commonmark
   (package
@@ -2689,9 +2579,9 @@ key-value cache and store.")
                (("\\(exit.*") ""))
              #t)))))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "CommonMark parser for Guile")
     (description
      "guile-commonmark is a library for parsing CommonMark, a fully specified
@@ -2706,16 +2596,13 @@ is no support for parsing block and inline level HTML.")
   (package
     (inherit guile-commonmark)
     (name "guile2.2-commonmark")
-    (inputs `(("guile" ,guile-2.2)))))
+    (inputs (list guile-2.2))))
 
 (define-public guile2.0-commonmark
   (package
     (inherit guile-commonmark)
     (name "guile2.0-commonmark")
-    (inputs `(("guile" ,guile-2.0)))))
-
-(define-public guile3.0-commonmark
-  (deprecated-package "guile3.0-commonmark" guile-commonmark))
+    (inputs (list guile-2.0))))
 
 (define-public mcron
   (package
@@ -2751,7 +2638,7 @@ is no support for parsing block and inline level HTML.")
                      ("tzdata" ,tzdata-for-tests)
                      ("guile-native"              ;for 'guild compile'
                       ,@(assoc-ref (package-inputs this-package) "guile"))))
-    (inputs `(("guile" ,guile-3.0)))
+    (inputs (list guile-3.0))
     (home-page "https://www.gnu.org/software/mcron/")
     (synopsis "Run jobs at scheduled times")
     (description
@@ -2765,10 +2652,7 @@ format is also supported.")
   (package
     (inherit mcron)
     (name "guile2.2-mcron")
-    (inputs `(("guile" ,guile-2.2)))))
-
-(define-public guile3.0-mcron
-  (deprecated-package "guile3.0-mcron" mcron))
+    (inputs (list guile-2.2))))
 
 (define-public guile-picture-language
   (let ((commit "a1322bf11945465241ca5b742a70893f24156d12")
@@ -2787,16 +2671,11 @@ format is also supported.")
                   "03i528z92ainccgm28shg4haxiav5x4cyhyi5dggq1rm027vbm99"))))
       (build-system gnu-build-system)
       (inputs
-       `(("guile" ,guile-3.0)))
+       (list guile-3.0))
       (propagated-inputs
-       `(("guile-cairo" ,guile-cairo)
-         ("guile-rsvg" ,guile-rsvg)))
+       (list guile-cairo guile-rsvg))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("librsvg" ,librsvg)
-         ("pkg-config" ,pkg-config)
-         ("texinfo" ,texinfo)))
+       (list autoconf automake librsvg pkg-config texinfo))
       (home-page "https://git.elephly.net/software/guile-picture-language.git")
       (synopsis "Picture language for Guile")
       (description
@@ -2810,14 +2689,9 @@ The picture values can directly be displayed in Geiser.")
   (package
     (inherit guile-picture-language)
     (name "guile2.2-picture-language")
-    (inputs `(("guile" ,guile-2.2)))
+    (inputs (list guile-2.2))
     (propagated-inputs
-     `(("guile-cairo" ,guile2.2-cairo)
-       ("guile-rsvg" ,guile2.2-rsvg)))))
-
-(define-public guile3.0-picture-language
-  (deprecated-package "guile3.0-picture-language"
-                      guile-picture-language))
+     (list guile2.2-cairo guile2.2-rsvg))))
 
 (define-public guile-studio
   (let ((commit "dd0ad42e51feafebda7cc29afe7c8bc7a182a842")
@@ -2861,25 +2735,25 @@ The picture values can directly be displayed in Geiser.")
            (delete 'configure)
            (delete 'install))))
       (inputs
-       `(("guile" ,guile-3.0)
-         ("guile-picture-language" ,guile-picture-language)
-         ("emacs" ,emacs)
-         ("emacs-f" ,emacs-f)                       ; needed by doom-modeline
-         ("emacs-memoize" ,emacs-memoize)           ; needed by all-the-icons
-         ("emacs-all-the-icons" ,emacs-all-the-icons) ; needed by doom-modeline
-         ("emacs-all-the-icons-dired" ,emacs-all-the-icons-dired)
-         ("emacs-dired-sidebar" ,emacs-dired-sidebar)
-         ("emacs-doom-modeline" ,emacs-doom-modeline)
-         ("emacs-modus-themes" ,emacs-modus-themes)
-         ("emacs-geiser" ,emacs-geiser)
-         ("emacs-geiser-guile" ,emacs-geiser-guile)
-         ("emacs-company" ,emacs-company)
-         ("emacs-ivy" ,emacs-ivy)
-         ("emacs-flycheck" ,emacs-flycheck)
-         ("emacs-flycheck-guile" ,emacs-flycheck-guile)
-         ("emacs-paren-face" ,emacs-paren-face)))
+       (list guile-3.0
+             guile-picture-language
+             emacs
+             emacs-f ; needed by doom-modeline
+             emacs-memoize ; needed by all-the-icons
+             emacs-all-the-icons ; needed by doom-modeline
+             emacs-all-the-icons-dired
+             emacs-dired-sidebar
+             emacs-doom-modeline
+             emacs-modus-themes
+             emacs-geiser
+             emacs-geiser-guile
+             emacs-company
+             emacs-ivy
+             emacs-flycheck
+             emacs-flycheck-guile
+             emacs-paren-face))
       (native-inputs
-       `(("texinfo" ,texinfo)))
+       (list texinfo))
       (home-page "https://gnu.org/software/guile")
       (synopsis "IDE for Guile")
       (description
@@ -2914,11 +2788,9 @@ completion, a simple mode line, etc.")
              (delete-file "parser/stis-parser/lang/.#calc.scm")
              #t)))))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (home-page "https://gitlab.com/tampe/stis-parser")
     (synopsis "Parser combinator framework")
     (description
@@ -2963,12 +2835,9 @@ chunks can be expressions as well as simple tokens.")
                   (format #f "\"~a/lib/guile/3.0/extensions/libguile-persist\"" out)))
                #t))))))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (home-page "https://gitlab.com/tampe/guile-persist")
     (synopsis "Persistence programming framework for Guile")
     (description
@@ -3032,15 +2901,9 @@ serializing continuations or delimited continuations.")
                    (,compiled-path)))
                #t))))))
     (inputs
-     `(("guile" ,guile-3.0)
-       ("guile-persist" ,guile-persist)
-       ("guile-readline" ,guile-readline)
-       ("guile-stis-parser" ,guile-stis-parser)))
+     (list guile-3.0 guile-persist guile-readline guile-stis-parser))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (synopsis "Python implementation in Guile")
     (description
      "This package allows you to compile a Guile Python file to any target
@@ -3070,9 +2933,9 @@ from @code{tree-il}.")
                 "guilemoddir = $(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n"))
              #t)))))
     (inputs
-     `(("guile" ,guile-2.2)))
+     (list guile-2.2))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://gitlab.com/brandoninvergo/guile-file-names")
     (synopsis "Manipulate file names")
     (description
@@ -3104,6 +2967,16 @@ list of components.  This module takes care of that for you.")
                   (ice-9 rdelim))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'remove-dotted-circle-from-combining-character
+           ;; The test/string.scm files contain ◌̀, which is a dotted circle
+           ;; (U+25cc) followed by an upper combining character (U+0300). The
+           ;; old guile 3.0.2 reader incorrectly ignores the dotted circle,
+           ;; and parses it as the combining character alone, but the new
+           ;; guile reader does not.
+           ;; See https://github.com/spk121/guile-gi/issues/112
+           (lambda* _
+             (substitute* "test/string.scm"
+               (("#\\\\◌̀") "#\\x0300"))))
          (add-after 'unpack 'patch-references-to-extension
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((effective (read-line
@@ -3143,7 +3016,7 @@ list of components.  This module takes care of that for you.")
        ("gtk+" ,gtk+)
        ("guile-lib" ,guile-lib)
        ("webkitgtk" ,webkitgtk)))
-    (inputs `(("guile" ,guile-3.0)))
+    (inputs (list guile-3.0))
     (home-page "https://github.com/spk121/guile-gi")
     (synopsis "GObject bindings for Guile")
     (description
@@ -3157,11 +3030,8 @@ pre-alpha code.")
     (inherit guile-gi)
     (name "guile2.2-gi")
     (inputs
-     `(("guile" ,guile-2.2)
-       ,@(alist-delete "guile" (package-inputs guile-gi))))))
-
-(define-public guile3.0-gi
-  (deprecated-package "guile3.0-gi" guile-gi))
+     (modify-inputs (package-inputs guile-gi)
+       (replace "guile" guile-2.2)))))
 
 (define-public guile-srfi-89
   (package
@@ -3179,7 +3049,7 @@ pre-alpha code.")
        (file-name (git-file-name name version))))
     (build-system guile-build-system)
     (native-inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "https://gitlab.com/mjbecze/guile-srfi-89")
     (synopsis "Hygienic implementation of SRFI-89 for Guile")
     (description
@@ -3203,7 +3073,7 @@ parameters, which  define* and lambda* special forms")
        (file-name (git-file-name name version))))
     (build-system guile-build-system)
     (native-inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "https://gitlab.com/mjbecze/guile-srfi-145")
     (synopsis "SRFI-145 port for Guile")
     (description
@@ -3227,11 +3097,9 @@ denote the invalidity of certain code paths in a Scheme program.")
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "https://gitlab.com/samplet/guile-srfi-158")
     (synopsis "SRFI 158 (Generators and Accumulators) for Guile")
     (description "This package provides an implementation of SRFI 158
@@ -3262,7 +3130,7 @@ implementation in a thin Guile compatibility layer.")
        ;; should not be compiled separately, but they must be installed.
        '(#:not-compiled-file-regexp "-impl\\.scm$"))
       (inputs
-       `(("guile" ,guile-2.2)))
+       (list guile-2.2))
       (synopsis "Formatting combinators for Guile")
       (description
        "The @code{(srfi-159)} module and its sub-modules implement the
@@ -3299,9 +3167,9 @@ more expressive and flexible than the traditional @code{format} procedure.")
       (arguments
        '(#:not-compiled-file-regexp "body\\.scm$"))
       (native-inputs
-       `(("guile" ,guile-3.0)))
+       (list guile-3.0))
       (propagated-inputs
-       `(("guile-srfi-145" ,guile-srfi-145)))
+       (list guile-srfi-145))
       (home-page "https://srfi.schemers.org/srfi-180/")
       (synopsis "JSON parser and printer for Guile")
       (description
@@ -3352,12 +3220,12 @@ API.")
        ("texinfo" ,texinfo)
        ("texlive" ,(texlive-updmap.cfg (list texlive-epsf)))))
     (inputs
-     `(("dbus-glib" ,dbus-glib)
-       ("guile" ,guile-3.0)
-       ("guile-lib" ,guile-lib)
-       ("guile-readline" ,guile-readline)
-       ("freeglut" ,freeglut)
-       ("webkitgtk" ,webkitgtk)))
+     (list dbus-glib
+           guile-3.0
+           guile-lib
+           guile-readline
+           freeglut
+           webkitgtk))
     (propagated-inputs
      `(("glib-networking" ,glib-networking)
        ("gssettings-desktop-schemas" ,gsettings-desktop-schemas)))
@@ -3469,10 +3337,7 @@ in C using Gtk+-3 and WebKitGtk.")
                     #t))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)
-         ("guile" ,guile-2.2)))
+       (list autoconf automake pkg-config guile-2.2))
       (synopsis "JPEG file parsing library for Guile")
       (description
        "Guile-JPEG is a Scheme library to parse JPEG image files and to
@@ -3630,9 +3495,7 @@ feature-set, fully programmable in Guile Scheme.")
                      (string-append (assoc-ref inputs "vigra-c") "/lib"))
              #t)))))
     (inputs
-     `(("vigra" ,vigra)
-       ("vigra-c" ,vigra-c)
-       ("guile" ,guile-2.2)))
+     (list vigra vigra-c guile-2.2))
     (native-inputs
      `(("texlive" ,(texlive-updmap.cfg (list texlive-booktabs
                                         texlive-lm
@@ -3684,8 +3547,7 @@ clean and easy to use high level API.")
                (invoke "guile" "-L" "mod"
                        "-s" "test/test-ffi-fftw.scm"))))))
       (inputs
-       `(("fftw" ,fftw)
-         ("guile" ,guile-2.2)))
+       (list fftw guile-2.2))
       (home-page "https://github.com/lloda/guile-ffi-fftw/")
       (synopsis "Access FFTW through Guile's FFI")
       (description "This is a minimal set of Guile FFI bindings for the FFTW
@@ -3713,9 +3575,9 @@ anything other than straight complex DFTs.")
        (modify-phases %standard-phases
          (delete 'build))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("guile" ,guile-2.2)))
+     (list guile-2.2))
     (home-page "https://ngyro.com/software/srfi-64-driver.html")
     (synopsis "Automake test driver for SRFI 64 test suites")
     (description "This package provides an Automake test driver that can
@@ -3736,9 +3598,9 @@ tests being run, resulting clearer and more specific output.")
                 "109p4n39ln44cxvwdccf9kgb96qx54makvd2ir521ssz6wchjyag"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "https://ngyro.com/software/guile-semver.html")
     (synopsis "Semantic Versioning (SemVer) for Guile")
     (description "This Guile library provides tools for reading,
@@ -3746,15 +3608,12 @@ comparing, and writing Semantic Versions.  It also includes ranges in
 the style of the Node Package Manager (NPM).")
     (license license:gpl3+)))
 
-(define-public guile3.0-semver
-  (deprecated-package "guile3.0-semver" guile-semver))
-
 (define-public guile2.2-semver
   (package
     (inherit guile-semver)
     (name "guile2.2-semver")
     (inputs
-     `(("guile" ,guile-2.2)))))
+     (list guile-2.2))))
 
 (define-public guile-hashing
   (package
@@ -3799,7 +3658,7 @@ the style of the Node Package Manager (NPM).")
                       (rename-file "private" "hashing/private")
                       #t)))))
     (native-inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (synopsis "Cryprographic hash functions implemented in Scheme")
     (description
      "The @code{(hashing @dots{})} modules implement cryptographic hash
@@ -3812,10 +3671,7 @@ SHA-512).")
     (inherit guile-hashing)
     (name "guile2.2-hashing")
     (native-inputs
-     `(("guile" ,guile-2.2)))))
-
-(define-public guile3.0-hashing
-  (deprecated-package "guile3.0-hashing" guile-hashing))
+     (list guile-2.2))))
 
 (define-public guile-packrat
   (package
@@ -3844,7 +3700,7 @@ SHA-512).")
                          (object->string '(only (guile) error))))
                       #t)))))
     (native-inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (synopsis "Packrat parser library in R6RS Scheme")
     (description
      "This is an R6RS Scheme adaptation of the
@@ -3904,9 +3760,9 @@ and space linear in the size of the input text.")
 
                       #t)))))
     (native-inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (propagated-inputs
-     `(("guile-packrat" ,guile-packrat)))
+     (list guile-packrat))
     (synopsis "D-Bus protocol implementation in R6RS Scheme")
     (description
      "AC/D-Bus is an implementation of the D-Bus wire protocol.  D-Bus is an
@@ -3942,15 +3798,11 @@ gnome-keyring, and many more.")
                     #t))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)
-         ("texinfo" ,texinfo)))
+       (list autoconf automake pkg-config texinfo))
       (inputs
-       `(("guile" ,guile-3.0)))
+       (list guile-3.0))
       (propagated-inputs
-       `(("guile-irregex" ,guile-irregex)
-         ("guile-gcrypt" ,guile-gcrypt)))
+       (list guile-irregex guile-gcrypt))
       (home-page "https://notabug.org/cwebber/guile-webutils")
       (synopsis "Web application authoring utilities for Guile")
       (description
@@ -3963,10 +3815,9 @@ as signed sessions, multipart message support, etc.")
     (inherit guile-webutils)
     (name "guile2.2-webutils")
     (inputs
-     `(("guile" ,guile-2.2)))
+     (list guile-2.2))
     (propagated-inputs
-     `(("guile-irregex" ,guile2.2-irregex)
-       ("guile-gcrypt" ,guile2.2-gcrypt)))))
+     (list guile2.2-irregex guile2.2-gcrypt))))
 
 (define-public guile-lens
   (let ((commit "14b15d07255f9d3f55d40a3b750d13c9ee3a154f")
@@ -3992,12 +3843,12 @@ as signed sessions, multipart message support, etc.")
                (setenv "HOME" "/tmp")   ; for ~/.hall
                (invoke "hall" "dist" "-x"))))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("guile" ,guile-3.0)
-         ("guile-hall" ,guile-hall)
-         ("pkg-config" ,pkg-config)
-         ("texinfo" ,texinfo)))
+       (list autoconf
+             automake
+             guile-3.0
+             guile-hall
+             pkg-config
+             texinfo))
       (home-page "https://gitlab.com/a-sassmannshausen/guile-lens.git")
       (synopsis "Composable lenses for data structures in Guile")
       (description
@@ -4012,8 +3863,8 @@ over, or update a value in arbitrary data structures.")
     (inherit guile-lens)
     (name "guile2.2-lens")
     (native-inputs
-     `(("guile" ,guile-2.2)
-       ,@(alist-delete "guile" (package-native-inputs guile-lens))))))
+     (modify-inputs (package-native-inputs guile-lens)
+       (replace "guile" guile-2.2)))))
 
 (define-public guile-xapian
   (package
@@ -4028,21 +3879,26 @@ over, or update a value in arbitrary data structures.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "16k61f1jn3g48jaf3730b9l0izr5j933jzyri73nmcnjd09gm35i"))))
+         "16k61f1jn3g48jaf3730b9l0izr5j933jzyri73nmcnjd09gm35i"))
+       (modules '((guix build utils)))
+       (snippet
+        ;; Guile >= 3.0.7 no longer uses libltdl so we need to explicitly add
+        ;; ".libs" so that 'load-extension' finds the '.so' file.
+        '(substitute* "pre-inst-env.in"
+           (("^LD_LIBRARY_PATH=.*$")
+            "LD_LIBRARY_PATH=\"$abs_top_builddir/.libs\"\n")))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ; to prevent guild warnings
     (inputs
-     `(("guile" ,guile-3.0)
-       ("xapian" ,xapian)
-       ("zlib" ,zlib)))
+     (list guile-3.0 xapian zlib))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("autoconf-archive" ,autoconf-archive)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("swig" ,swig)))
+     (list autoconf
+           autoconf-archive
+           automake
+           libtool
+           pkg-config
+           swig))
     (synopsis "Guile bindings for Xapian")
     (description "@code{guile-xapian} provides Guile bindings for Xapian, a
 search engine library.  Xapian is a highly adaptable toolkit which allows
@@ -4056,11 +3912,8 @@ models and also supports a rich set of boolean query operators.")
     (inherit guile-xapian)
     (name "guile2.2-xapian")
     (inputs
-     `(("guile" ,guile-2.2)
-       ,@(alist-delete "guile" (package-inputs guile-xapian))))))
-
-(define-public guile3.0-xapian
-  (deprecated-package "guile3.0-xapian" guile-xapian))
+     (modify-inputs (package-inputs guile-xapian)
+       (replace "guile" guile-2.2)))))
 
 (define-public guile-torrent
   (package
@@ -4077,14 +3930,14 @@ models and also supports a rich set of boolean query operators.")
                       "1yiagi55ncq1x7s9n7salzywjm4l96y3n7y3s47a9anvz87mrmim"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("guile" ,guile-2.2)
-       ("texinfo" ,texinfo)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf
+           automake
+           guile-2.2
+           texinfo
+           perl
+           pkg-config))
     (propagated-inputs
-     `(("guile-gcrypt" ,guile-gcrypt)))
+     (list guile-gcrypt))
     (home-page "https://github.com/o-nly/torrent")
     (synopsis "Torrent library for GNU Guile")
     (description "This package provides facilities for working with
@@ -4111,12 +3964,9 @@ according to Bitorrent BEP003.")
       (arguments
        `(#:configure-flags '("--enable-gnutls=yes")))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("texinfo" ,texinfo)))
+       (list autoconf automake texinfo))
       (inputs
-       `(("gnutls" ,gnutls)
-         ("guile" ,guile-3.0)))
+       (list gnutls guile-3.0))
       (home-page "https://github.com/rekado/guile-irc")
       (synopsis "IRC library for Guile")
       (description "This package provides a Guile library for @dfn{Internet
@@ -4145,20 +3995,15 @@ Relay Chat} (IRC).")
        '(#:make-flags
          '("GUILE_AUTO_COMPILE=0")))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)))
+       (list autoconf automake pkg-config))
       (inputs
-       `(("guile" ,guile-3.0)))
+       (list guile-3.0))
       (synopsis "Websocket server/client for Guile")
       (description "Guile-websocket provides an implementation of the
 WebSocket protocol as defined by RFC 6455.")
       (home-page "https://git.dthompson.us/guile-websocket.git")
       (license license:lgpl3+))))
 
-(define-public guile3.0-websocket
-  (deprecated-package "guile3.0-websocket" guile-websocket))
-
 (define-public guile-rdf
   (package
     (name "guile-rdf")
@@ -4177,12 +4022,9 @@ WebSocket protocol as defined by RFC 6455.")
     (arguments
      `(#:tests? #f)); tests require network
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)))
+     (list automake autoconf pkg-config texinfo))
     (home-page "https://framagit.org/tyreunom/guile-rdf")
     (synopsis "Guile implementation of the RDF abstract and concrete syntaxes")
     (description "Guile RDF is an implementation of the RDF (Resource Description
@@ -4218,12 +4060,9 @@ manipulating graphs and datasets.")
        ("guile-json" ,guile-json-4)
        ("guile-rdf" ,guile-rdf)))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)))
+     (list automake autoconf pkg-config texinfo))
     (home-page "https://framagit.org/tyreunom/guile-jsonld")
     (synopsis "Guile implementation of the JsonLD API specification")
     (description "Guile JsonLD is an implementation of the JsonLD (Json for
@@ -4269,7 +4108,7 @@ more objects or strings, represented by a Json object or an IRI.")
                                 files)
                       #t)))))
     (native-inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "https://github.com/weinholt/struct-pack")
     (synopsis "R6RS library for working with packed byte structures")
     (description
@@ -4313,9 +4152,9 @@ similar to struct in Python or pack and unpack in Perl.")
                                 files)
                       #t)))))
     (native-inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (propagated-inputs
-     `(("guile-struct-pack" ,guile-struct-pack)))
+     (list guile-struct-pack))
     (home-page "https://github.com/weinholt/machine-code")
     (synopsis "Tools that relate to machine code and object formats")
     (description
@@ -4361,7 +4200,7 @@ object formats and related areas.")
                                 files)
                       #t)))))
     (native-inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "https://github.com/weinholt/laesare")
     (synopsis "R6RS Scheme library that provides a reader")
     (description
@@ -4415,14 +4254,9 @@ errors.")
                           out (target-guile-effective-version))))
                #t))))))
       (inputs
-       `(("guile" ,guile-3.0)
-         ("avahi" ,avahi)))
+       (list guile-3.0 avahi))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("pkg-config" ,pkg-config)
-         ("texinfo" ,texinfo)))
+       (list autoconf automake libtool pkg-config texinfo))
       (synopsis "Guile bindings to Avahi")
       (description
        "This package provides bindings for Avahi.  It allows programmers to
@@ -4432,45 +4266,6 @@ Discovery (DNS-SD).")
       (home-page "https://www.nongnu.org/guile-avahi/")
       (license license:lgpl3+))))
 
-(define-public guile-mkdir-p
-  (package
-    (name "guile-mkdir-p")
-    (version "1.0.1")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://code.divoplade.fr/mkdir-p.git")
-             (commit (string-append "v" version))))
-       (sha256
-        (base32 "01k20rjcv6p0spmw8ls776aar6bfw0jxw46d2n12w0cb2p79xjv8"))
-       (file-name (git-file-name name version))
-       (snippet
-        `(begin
-           (with-output-to-file ".tarball-version"
-             (lambda _ (format #t "~a~%" ,version)))
-           #t))))
-    (build-system gnu-build-system)
-    (arguments `())
-    (native-inputs
-     `(("guile" ,guile-3.0)
-       ("texinfo" ,texinfo)
-       ("autoconf" ,autoconf)
-       ("autoconf-archive" ,autoconf-archive)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("gettext" ,gettext-minimal)))
-    (inputs `(("guile" ,guile-3.0)))
-    (synopsis "Implementation of a recursive @code{mkdir} for Guile")
-    (description
-     "This package provides within the @code{(mkdir-p)} module the
-@code{mkdir-p} function that tries to create the chain of directories
-recursively.  It also provides new versions of @code{open-output-file},
-@code{call-with-output-file} and @code{with-output-to-file} to create the
-directory of its argument if it does not exist.")
-    (home-page "https://mkdir-p.divoplade.fr")
-    (license license:asl2.0)))
-
 (define-public guile-jwt
   (package
     (name "guile-jwt")
@@ -4487,13 +4282,11 @@ directory of its argument if it does not exist.")
          "1p8sapiv5im18rjnzc8xnw6y7dr661rycf9g10z5ww0dl4rfz3z1"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (propagated-inputs
-     `(("guile-json" ,guile-json-4)))
+     (list guile-json-4))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "https://github.com/aconchillo/guile-jwt")
     (synopsis "JSON Web Token library for Guile")
     (description
@@ -4518,12 +4311,9 @@ JWT.  Supported algorithms: HS256, HS384, HS512.")
     (build-system gnu-build-system)
     (arguments `())
     (native-inputs
-      `(("autoconf" ,autoconf)
-        ("automake" ,automake)
-        ("pkg-config" ,pkg-config)
-        ("texinfo" ,texinfo)))
-    (inputs `(("guile" ,guile-3.0)))
-    (propagated-inputs `(("libsodium" ,libsodium)))
+      (list autoconf automake pkg-config texinfo))
+    (inputs (list guile-3.0))
+    (propagated-inputs (list libsodium))
     (synopsis "Guile bindings to the libsodium cryptographic library")
     (description
      "This package provides Guile bindings to the libsodium cryptographic library
@@ -4547,15 +4337,15 @@ tools.")
     (build-system gnu-build-system)
     (arguments '())
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)
-       ;; test dependency
-       ("guile-srfi-180" ,guile-srfi-180)))
-    (inputs `(("guile" ,guile-3.0)))
+     (list autoconf
+           automake
+           pkg-config
+           texinfo
+           ;; test dependency
+           guile-srfi-180))
+    (inputs (list guile-3.0))
     (propagated-inputs
-     `(("guile-sodium" ,guile-sodium)))
+     (list guile-sodium))
     (synopsis "Guile implementation of the Encoding for Robust Immutable Storage (ERIS)")
     (description
      "Guile-ERIS is the reference implementation of the Encoding for Robust
@@ -4583,7 +4373,7 @@ read-capability.")
     (arguments
      `(#:compile-flags '("--r6rs")))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "https://gitlab.com/joolean/r6rs-protobuf/")
     (synopsis "Scheme implementation of Protocol Buffers")
     (description
@@ -4614,18 +4404,18 @@ including parsing and code generation.")
              (delete-file-recursively "docs")
              #t))
          (add-after 'install 'install-info-documentation
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((share (string-append (assoc-ref outputs "out") "/share"))
                     (doc (string-append share "/doc/" ,name "-" ,version))
                     (info (string-append share "/info/"))
-                    (makeinfo (string-append (assoc-ref %build-inputs "texinfo")
-                                             "/bin/makeinfo")))
+                    (makeinfo (search-input-file inputs
+                                                 "/bin/makeinfo")))
                (invoke makeinfo "guile-shapefile.texi" "-o" info)
                #t))))))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (home-page "https://github.com/HugoNikanor/guile-shapefile")
     (synopsis "Parse shapefiles in Guile")
     (description
@@ -4648,16 +4438,11 @@ including parsing and code generation.")
          "1m2x62n3x5hi5vnsvv2zgqhgpzrfq7r5095fzzjd1aaybi9i9igg"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)
-       ("sed" ,sed)))
+     (list autoconf automake pkg-config texinfo sed))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (propagated-inputs
-     `(("guile-bytestructures" ,guile-bytestructures)
-       ("nyacc" ,nyacc)))
+     (list guile-bytestructures nyacc))
     (home-page "https://git.elephly.net/software/guile-drmaa.git")
     (synopsis "Guile bindings to DRMAA")
     (description "This project provides Guile bindings to the DRMAA library
@@ -4666,8 +4451,8 @@ schedulers.")
     (license license:gpl3+)))
 
 (define-public guile-libyaml
-  (let ((commit "f5d33a6880e96571d3cb079ed7755ffc156cac46")
-        (revision "1"))
+  (let ((commit "2bdacb72a65ab63264b2edc9dac9692df7ec9b3e")
+        (revision "2"))
     (package
       (name "guile-libyaml")
       (version (git-version "0" revision commit))
@@ -4680,7 +4465,7 @@ schedulers.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "12x91983fh1j39zy7kbk19acc1rqdh8515ddx1mh7l26j04k9wgq"))))
+           "1bssby1ri1vjll2rvi8b33xr2ghwjyxsd4yc15najj3h8n2ss87i"))))
       (build-system gnu-build-system)
       (arguments
        `(#:modules (((guix build guile-build-system)
@@ -4694,38 +4479,23 @@ schedulers.")
            (delete 'configure)
            (add-after 'unpack 'remove-unused-files
              (lambda* (#:key inputs #:allow-other-keys)
-               (for-each delete-file
-                         '("guix.scm" "demo1.yml" "demo1.scm"
-                           "yaml/libyaml.scm"
-                           ;; This file is mismatched with the generated FFI code.
-                           "yaml/ffi-help-rt.scm"))
-               (copy-file (search-input-file
-                           inputs "/share/guile/site/3.0/system/ffi-help-rt.scm")
-                          "yaml/ffi-help-rt.scm")
-               (substitute* "yaml/ffi-help-rt.scm"
-                 (("system ffi-help-rt") "yaml ffi-help-rt"))
-               #true))
+               (for-each delete-file '("guix.scm" "demo1.yml" "demo1.scm"))))
            (add-before 'build 'build-ffi
              (lambda* (#:key inputs #:allow-other-keys)
                (invoke "guild" "compile-ffi"
                        "--no-exec" ; allow us to patch the generated file
                        "yaml/libyaml.ffi")
                (substitute* "yaml/libyaml.scm"
-                 (("system ffi-help-rt") "yaml ffi-help-rt")
                  (("dynamic-link \"libyaml\"")
                   (format #false "dynamic-link \"~a/lib/libyaml\""
-                          (assoc-ref inputs "libyaml"))))
-               #true))
+                          (assoc-ref inputs "libyaml"))))))
            (replace 'build
              (assoc-ref guile:%standard-phases 'build))
            (delete 'install))))
       (inputs
-       `(("guile" ,guile-3.0)
-         ("libyaml" ,libyaml)))
+       (list guile-3.0 libyaml))
       (propagated-inputs
-       `(("guile-bytestructures" ,guile-bytestructures)))
-      (native-inputs
-       `(("nyacc" ,nyacc)))
+       (list guile-bytestructures nyacc))
       (home-page "https://github.com/mwette/guile-libyaml")
       (synopsis "Guile wrapper for libyaml")
       (description
@@ -4751,9 +4521,9 @@ ffi-helper from nyacc.")
       (build-system cmake-build-system)
       (arguments `(#:tests? #f))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (inputs
-       `(("guile" ,guile-2.2)))
+       (list guile-2.2))
       (home-page "https://github.com/arximboldi/schmutz")
       (synopsis "Bind C++ code to Scheme")
       (description "Schmutz is a header-only library to declare Scheme bindings
@@ -4776,11 +4546,8 @@ or @code{LuaBind} but for Scheme.")
     (build-system gnu-build-system)
     (arguments `())
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)))
-    (inputs `(("guile" ,guile-3.0)))
+     (list autoconf automake pkg-config texinfo))
+    (inputs (list guile-3.0))
     (synopsis "Guile implementation of CBOR")
     (description
      "The Concise Binary Object Representation (CBOR), as specified by RFC 8949, is
@@ -4804,9 +4571,9 @@ a Guile implementation of CBOR.")
                 "03mwi1l3354x52nar0zwhcm0x29yai9xjln4p4gbchwvx5dsr6fb"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "https://ngyro.com/software/guile-quickcheck.html")
     (synopsis "Randomized property-based testing for Guile")
     (description "Guile-Quickcheck is a library for random testing of program
@@ -4831,7 +4598,7 @@ in a large number of randomly generated test cases.")
          "118d84p443w7hrslv8hjyhgws631ia08mggiyklkmk0b9plfdsvz"))))
     (build-system guile-build-system)
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (home-page "https://notabug.org/ZelphirKaltstahl/guile-fslib")
     (synopsis "Helper functions for working with locations in file systems")
     (description
@@ -4842,7 +4609,7 @@ locations.")
 (define-public guile-netlink
   (package
     (name "guile-netlink")
-    (version "1.0.1")
+    (version "1.1.1")
     (source
      (origin
        (method git-fetch)
@@ -4852,17 +4619,16 @@ locations.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "03zmsha2d7whlwb52gna83jdas9bqi18rq3sss7kkicv814qb35g"))))
+         "0jcl6mzqy04if5drflmygmggbgzsxa42mlmskqb3cfqmksq0zj0y"))))
     (build-system gnu-build-system)
-    (arguments
-     `(#:tests? #f)); no tests
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)))
+     (list automake
+           autoconf
+           pkg-config
+           guile-3.0 ;for 'guild compile' + guile.m4
+           texinfo))
     (home-page "https://git.lepiller.eu/guile-netlink")
     (synopsis "Netlink protocol implementation for Guile")
     (description "Guile Netlink is a GNU Guile library providing an implementation
@@ -4872,3 +4638,183 @@ It provides a generic library for writing implementations of a netlink
 protocol, a low-level rtnetlink implementation that uses that library and a
 high-level API for network management that uses rtnetlink.")
     (license license:gpl3+)))
+
+(define-public guile-gitlab
+  (package
+    (name "guile-gitlab")
+    (version "0.2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/artyom-poptsov/guile-gitlab")
+             (commit (string-append "v" version))))
+       (file-name (string-append name "-" version))
+       (sha256
+        (base32
+         "0srkmchd4kmfa7q65r6fdzwklhgdlck1ll0s7smzs8ddjdgz2lwm"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags '("GUILE_AUTO_COMPILE=0")     ;to prevent guild warnings
+       #:modules (((guix build guile-build-system)
+                   #:select (target-guile-effective-version))
+                  ,@%gnu-build-system-modules)
+       #:imported-modules ((guix build guile-build-system)
+                           ,@%gnu-build-system-modules)
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out       (assoc-ref outputs "out"))
+                    (bin       (string-append out "/bin"))
+                    (guile-lib (assoc-ref inputs "guile-lib"))
+                    (json      (assoc-ref inputs "guile-json"))
+                    (tls       (assoc-ref inputs "guile-gnutls"))
+                    (version   (target-guile-effective-version))
+                    (scm       (string-append "/share/guile/site/"
+                                              version))
+                    (go        (string-append  "/lib/guile/"
+                                               version "/site-ccache")))
+               (wrap-program (string-append bin "/gitlab-cli")
+                 `("GUILE_LOAD_PATH" prefix
+                   (,(string-append out scm)
+                    ,(string-append guile-lib scm)
+                    ,(string-append json scm)
+                    ,(string-append tls scm)))
+                 `("GUILE_LOAD_COMPILED_PATH" prefix
+                   (,(string-append out go)
+                    ,(string-append guile-lib go)
+                    ,(string-append json go)
+                    ,(string-append tls go))))))))))
+    (native-inputs
+     (list autoconf automake pkg-config texinfo))
+    (inputs
+     `(("bash" ,bash-minimal)
+       ("guile" ,guile-2.2)
+       ("guile-json" ,guile2.2-json)
+       ("guile-lib" ,guile2.2-lib)
+       ("guile-gnutls" ,guile2.2-gnutls)))
+    (home-page "https://github.com/artyom-poptsov/guile-gitlab")
+    (synopsis "Guile interface to GitLab")
+    (description
+     "This package provides bindings to the GitLab Community Edition REST API
+as well as the @samp{gitlab-cli} command line tool for interacting with a
+GitLab instance.")
+    (license license:gpl3)))
+
+(define-public guile-smc
+  (package
+    (name "guile-smc")
+    (version "0.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/artyom-poptsov/guile-smc")
+             (commit (string-append "v" version))))
+       (file-name (string-append name "-" version))
+       (sha256
+        (base32
+         "0szkjmasi70m1vppck7nhdxg4lnxzjq6mihi6r1552s8sxm5z008"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags '("GUILE_AUTO_COMPILE=0")     ;to prevent guild warnings
+       #:modules (((guix build guile-build-system)
+                   #:select (target-guile-effective-version))
+                  ,@%gnu-build-system-modules)
+       #:imported-modules ((guix build guile-build-system)
+                           ,@%gnu-build-system-modules)
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'strip)
+         (add-after 'configure 'patch
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* "modules/smc/core/log.scm"
+               (("  #:use-module \\(logging logger\\)")
+                (string-append
+                 "  #:use-module (logging logger)\n"
+                 "  #:use-module (logging rotating-log)"))
+               (("#:init-value \"logger\"")
+                (format #f
+                        "#:init-value \"~a/bin/logger\""
+                        (assoc-ref inputs "inetutils")))
+             (("\\(add-handler! %logger %syslog\\)")
+              (string-append
+               "(add-handler! %logger\n"
+               "              (make <rotating-log>\n"
+               "                    #:file-name \"smc.log\"))\n")))
+             #t))
+         (add-after 'install 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out       (assoc-ref outputs "out"))
+                    (bin       (string-append out "/bin"))
+                    (guile-lib (assoc-ref inputs "guile-lib"))
+                    (version   (target-guile-effective-version))
+                    (scm       (string-append "/share/guile/site/"
+                                              version))
+                    (go        (string-append  "/lib/guile/"
+                                               version "/site-ccache")))
+               (wrap-program (string-append bin "/smc")
+                 `("GUILE_LOAD_PATH" prefix
+                   (,(string-append out scm)
+                    ,(string-append guile-lib scm)))
+                 `("GUILE_LOAD_COMPILED_PATH" prefix
+                   (,(string-append out go)
+                    ,(string-append guile-lib go)))))
+             #t)))))
+    (native-inputs
+     (list autoconf automake pkg-config texinfo))
+    (inputs
+     `(("bash"      ,bash-minimal)
+       ("guile"     ,guile-3.0)
+       ("guile-lib" ,guile-lib)
+       ("inetutils" ,inetutils)))
+    (home-page "https://github.com/artyom-poptsov/guile-smc")
+    (synopsis "GNU Guile state machine compiler")
+    (description
+     "Guile-SMC is a state machine compiler that allows users to describe
+finite state machines (FSMs) in Scheme in terms of transition tables.  It is
+capable to generate such transition tables from a @url{https://plantuml.com/,
+PlantUML} state diagrams.
+
+A transition table can be verified and checked for dead-ends and infinite
+loops.  Also Guile-SMC FSMs gather statistics when they run.
+
+Guile-SMC comes with a Scheme program called @command{smc} -- a state machine
+compiler itself.  It produces a Scheme code for an FSM from the PlantUML
+format.  This tool is meant to be called on a PlantUML file when a program
+with a FSM is being built (for example, from a Makefile.)")
+    (license license:gpl3)))
+
+(define-public guile-ini
+  (package
+    (name "guile-ini")
+    (version "0.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/artyom-poptsov/guile-ini")
+             (commit (string-append "v" version))))
+       (file-name (string-append name "-" version))
+       (sha256
+        (base32
+         "0injn60530valhx3gsmdp72g6z886yf0n08hscky21h3dafm14kc"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags '("GUILE_AUTO_COMPILE=0")))     ;to prevent guild warnings
+    (native-inputs
+     (list autoconf automake pkg-config texinfo))
+    (inputs
+     `(("bash" ,bash-minimal)
+       ("guile" ,guile-3.0)
+       ("guile-lib" ,guile-lib)))
+    (propagated-inputs
+     (list guile-smc))
+    (home-page "https://github.com/artyom-poptsov/guile-ini")
+    (synopsis "Guile library for INI format support")
+    (description
+     "@code{guile-ini} is a GNU Guile library for working with the
+@url{https://en.wikipedia.org/wiki/INI_file, INI format}.  This library
+provides API for reading and writing INI data.")
+    (license license:gpl3)))
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 9fa223713b..28887dd69f 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -63,9 +63,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system guile)
   #:use-module (guix deprecation)
-  #:use-module (guix utils)
-  #:use-module (ice-9 match)
-  #:use-module ((srfi srfi-1) #:prefix srfi-1:))
+  #:use-module (guix utils))
 
 ;;; Commentary:
 ;;;
@@ -270,6 +268,13 @@ without requiring the source code to be rewritten.")
                           (for-each delete-file
                                     (find-files "prebuilt" "\\.go$"))
                           #t))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments guile-2.0)
+       ((#:configure-flags flags ''())
+        (if (target-x86-32?)            ;<https://issues.guix.gnu.org/49368>
+            `(append ,flags '("CFLAGS=-g -O2 -fexcess-precision=standard"))
+            flags))))
+
     (properties '((timeout . 72000)               ;20 hours
                   (max-silent-time . 36000)))     ;10 hours (needed on ARM
                                                   ;  when heavily loaded)
@@ -320,11 +325,10 @@ without requiring the source code to be rewritten.")
     ;; Build with the bundled mini-GMP to avoid interference with GnuTLS' own
     ;; use of GMP via Nettle: <https://issues.guix.gnu.org/46330>.
     (propagated-inputs
-     (srfi-1:fold srfi-1:alist-delete
-                  (package-propagated-inputs guile-2.2)
-                  '("gmp" "libltdl")))
+     (modify-inputs (package-propagated-inputs guile-2.2)
+       (delete "gmp" "libltdl")))
     (arguments
-     (substitute-keyword-arguments (package-arguments guile-2.2)
+     (substitute-keyword-arguments (package-arguments guile-2.0)
        ((#:configure-flags flags ''())
         ;; XXX: JIT-enabled Guile crashes in obscure ways on GNU/Hurd.
         `(cons* ,@(if (hurd-target?)
@@ -334,6 +338,8 @@ without requiring the source code to be rewritten.")
                 ;; i686-linux, otherwise "numbers.test" will fail
                 ;; (see <https://issues.guix.gnu.org/49368> and
                 ;; <https://issues.guix.gnu.org/49659>).
+                ;; TODO: Keep this in GUILE-2.2 and remove from here on next
+                ;; rebuild cycle.
                 ,@(if (target-x86-32?)
                       '("CFLAGS=-g -O2 -fexcess-precision=standard")
                       '())
@@ -356,14 +362,17 @@ without requiring the source code to be rewritten.")
                        ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45214
                        (substitute* "bootstrap/Makefile.in"
                          (("^GUILE_OPTIMIZATIONS.*")
-                          "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n"))))
-                   (add-after 'unpack 'skip-failing-fdes-test
-                     (lambda _
-                       ;; ERROR: ((system-error "seek" "~A" ("Bad file descriptor") (9)))
-                       (substitute* "test-suite/tests/ports.test"
-                         (("fdes not closed\"" all) (string-append all "(exit 77)")))
-                       #t)))
-                 '())))))
+                          "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n")))))
+                 '())
+           ,@(if (or (target-ppc32?)
+                     (target-riscv64?))
+               `((add-after 'unpack 'skip-failing-fdes-test
+                   (lambda _
+                     ;; ERROR: ((system-error "seek" "~A" ("Bad file descriptor") (9)))
+                     (substitute* "test-suite/tests/ports.test"
+                       (("fdes not closed\"" all) (string-append all "(exit 77)")))
+                     #t)))
+               '())))))
 
     (native-search-paths
      (list (search-path-specification
@@ -385,8 +394,8 @@ without requiring the source code to be rewritten.")
    (package
      (inherit guile-3.0-latest)
      (propagated-inputs
-      `(("bdw-gc" ,libgc-7)
-        ,@(srfi-1:alist-delete "bdw-gc" (package-propagated-inputs guile-3.0)))))))
+      (modify-inputs (package-propagated-inputs guile-3.0)
+        (replace "bdw-gc" libgc-7))))))
 
 (define-public guile-3.0/fixed
   ;; A package of Guile that's rarely changed.  It is the one used in the
@@ -521,39 +530,6 @@ GNU@tie{}Guile.  Use the @code{(ice-9 readline)} module and call its
                            (guile-variant-package-name "guile2.2")
                            #:deep? #f))
 
-(define-syntax define-deprecated-guile3.0-package
-  (lambda (s)
-    "Define a deprecated package alias for \"guile3.0-something\"."
-    (syntax-case s ()
-      ((_ name)
-       (and (identifier? #'name)
-            (string-prefix? "guile3.0-" (symbol->string (syntax->datum
-                                                         #'name))))
-       (let ((->guile (lambda (str)
-                        (let ((base (string-drop str
-                                                 (string-length "guile3.0-"))))
-                          (string-append "guile-" base)))))
-         (with-syntax ((package-name (symbol->string (syntax->datum #'name)))
-                       (package
-                         (datum->syntax
-                          #'name
-                          (string->symbol
-                           (->guile (symbol->string (syntax->datum
-                                                     #'name))))))
-                       (old-name
-                        ;; XXX: This is the name generated by
-                        ;; 'define-deprecated'.
-                        (datum->syntax
-                         #'name
-                         (symbol-append '% (syntax->datum #'name)
-                                        '/deprecated))))
-           #'(begin
-               (define-deprecated name package
-                 (deprecated-package package-name package))
-               (export old-name))))))))
-
-(define-deprecated-guile3.0-package guile3.0-readline)
-
 (define-public guile-for-guile-emacs
   (let ((commit "15ca78482ac0dd2e3eb36dcb31765d8652d7106d")
         (revision "1"))
@@ -587,18 +563,18 @@ GNU@tie{}Guile.  Use the @code{(ice-9 readline)} module and call its
                  ;; FAIL: test-out-of-memory
                  (substitute* "test-suite/standalone/Makefile.am"
                    (("(check_SCRIPTS|TESTS) \\+= test-out-of-memory") ""))
-                 
+
                  (patch-shebang "build-aux/git-version-gen")
                  (invoke "sh" "autogen.sh")
                  #t))))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("flex" ,flex)
-         ("texinfo" ,texinfo)
-         ("gettext" ,gettext-minimal)
-         ,@(package-native-inputs guile-2.2))))))
+       (modify-inputs (package-native-inputs guile-2.2)
+         (prepend autoconf
+                  automake
+                  libtool
+                  flex
+                  texinfo
+                  gettext-minimal))))))
 
 
 ;;;
@@ -662,9 +638,6 @@ specification.  These are the main features:
     (native-inputs (list pkg-config guile-3.0))
     (inputs (list guile-3.0))))
 
-(define-public guile3.0-json
-  (deprecated-package "guile3.0-json" guile-json-3))
-
 (define-public guile-json-4
   (package
     (inherit guile-json-3)
@@ -734,8 +707,6 @@ Guile's foreign function interface.")
 (define-public guile2.2-gdbm-ffi
   (package-for-guile-2.2 guile-gdbm-ffi))
 
-(define-deprecated-guile3.0-package guile3.0-gdbm-ffi)
-
 (define-public guile-sqlite3
   (package
     (name "guile-sqlite3")
@@ -764,8 +735,6 @@ Guile's foreign function interface.")
 (define-public guile2.2-sqlite3
   (package-for-guile-2.2 guile-sqlite3))
 
-(define-deprecated-guile3.0-package guile3.0-sqlite3)
-
 (define-public guile-bytestructures
   (package
     (name "guile-bytestructures")
@@ -810,8 +779,6 @@ type system, elevating types to first-class status.")
 (define-public guile2.2-bytestructures
   (package-for-guile-2.2 guile-bytestructures))
 
-(define-deprecated-guile3.0-package guile3.0-bytestructures)
-
 (define-public guile-git
   (package
     (name "guile-git")
@@ -825,7 +792,9 @@ type system, elevating types to first-class status.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "11a51acibwi2hpaygmrpn6nwbr4lqalc87ihrgj3mhz6swbsk9n7"))))
+                "11a51acibwi2hpaygmrpn6nwbr4lqalc87ihrgj3mhz6swbsk9n7"))
+              (patches (search-patches
+                        "guile-git-adjust-for-libgit2-1.2.0.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags '("GUILE_AUTO_COMPILE=0")))     ; to prevent guild warnings
@@ -847,8 +816,6 @@ manipulate repositories of the Git version control system.")
 (define-public guile2.0-git
   (package-for-guile-2.0 guile-git))
 
-(define-deprecated-guile3.0-package guile3.0-git)
-
 (define-public guile-zlib
   (package
     (name "guile-zlib")
diff --git a/gnu/packages/gv.scm b/gnu/packages/gv.scm
index b2e1fbb211..f18051261c 100644
--- a/gnu/packages/gv.scm
+++ b/gnu/packages/gv.scm
@@ -64,7 +64,7 @@
              ("libxpm" ,libxpm)
              ("zlib" ,zlib)))
    (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
    (synopsis "PostScript and PDF viewer using Ghostscript as a back-end")
    (description
     "GNU GV is a graphical user interface to the Ghostscript interpreter.
diff --git a/gnu/packages/gxmessage.scm b/gnu/packages/gxmessage.scm
index 0150dd0d6f..498c13d25e 100644
--- a/gnu/packages/gxmessage.scm
+++ b/gnu/packages/gxmessage.scm
@@ -48,10 +48,9 @@
                (("gtk-update-icon-cache") "true"))
              #t)))))
     (inputs
-     `(("gtk+" ,gtk+)))
+     (list gtk+))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (home-page "https://www.gnu.org/software/gxmessage/")
     (synopsis "Open popup message window with buttons for return")
     (description "GNU gxmessage is a program that pops up dialog windows, which display
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index ff21c9c724..ddd0f5acc1 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -5,6 +5,9 @@
 ;;; Copyright © 2021 Evgeny Pisemsky <evgeny@pisemsky.com>
 ;;; Copyright © 2021 Léo Le Bouter <lle-bout@zaclys.net>
 ;;; Copyright © 2021 Denis Carikli <GNUtoo@cyberdimension.org>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,6 +25,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages hardware)
+  #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages bash)
@@ -31,6 +35,7 @@
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -49,12 +54,14 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages virtualization)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -66,6 +73,107 @@
 ;; This is a module for packages related to physical hardware that don't (yet)
 ;; have a more specific home like gps.scm, security-token.scm, &c.
 
+(define-public hwinfo
+  (package
+    (name "hwinfo")
+    (version "21.78")
+    (home-page "https://github.com/openSUSE/hwinfo")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url home-page)
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0v3smzdplh0cdvl19dw3in8gfmkhb2fgkfl60aqhn9qlbjf3p0mr"))
+       (modules
+        '((guix build utils)))
+       (snippet
+        `(begin
+           ;; Remove git2log program file.
+           (delete-file "git2log")
+           ;; Remove variables that depends on git2log.
+           (substitute* "Makefile"
+             (("GIT2LOG.*\\:=.*$") "")
+             (("GITDEPS.*\\:=.*$") "")
+             (("BRANCH.*\\:=.*$") ""))
+           ;; Create version file.
+           (call-with-output-file "VERSION"
+             (lambda (port)
+               (format port ,version)))))))
+    (build-system gnu-build-system)
+    (outputs '("out" "dev" "doc"))
+    (arguments
+     `(#:tests? #f                      ; no test-suite available
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (dev (assoc-ref outputs "dev"))
+                    (doc (assoc-ref outputs "doc"))
+                    (incl-dir (string-append dev "/include"))
+                    (lib-dir (string-append dev "/lib"))
+                    (sbin-dir (string-append out "/sbin"))
+                    (share-dir (string-append out "/share"))
+                    (doc-dir (string-append doc "/share/doc")))
+               ;; Generate HTML documentation in the output "doc".
+               (mkdir-p doc-dir)
+               (substitute* "doc/libhd.doxy"
+                 (("OUTPUT_DIRECTORY.*=.*libhd")
+                  (string-append "OUTPUT_DIRECTORY = " doc-dir "/libhd")))
+               ;; Correct values of the version and install directories.
+               (substitute* "Makefile"
+                 (("VERSION.*\\:=.*$")
+                  (string-append "VERSION := " ,version "\n"))
+                 (("LIBDIR.*\\?=.*$")
+                  (string-append "LIBDIR ?= " lib-dir "\n"))
+                 (("/usr/include") incl-dir)
+                 (("/(usr|var)/(lib|lib64)") lib-dir)
+                 (("/usr/sbin") sbin-dir)
+                 (("/usr/share") share-dir)
+                 (("\\$\\(DESTDIR\\)/sbin ") ""))
+               ;; Add output "dev" to the run-path.
+               (substitute* "Makefile.common"
+                 (("-Lsrc")
+                  (string-append "-Lsrc " "-Wl,-rpath=" lib-dir)))
+               ;; Correct program name of the lexical analyzer.
+               (substitute* "src/isdn/cdb/Makefile"
+                 (("lex isdn_cdb.lex") "flex isdn_cdb.lex"))
+               ;; Patch pkgconfig file to point to output "dev".
+               (substitute* "hwinfo.pc.in"
+                 (("/usr") dev)))))
+         (delete 'configure)
+         (replace 'build
+           (lambda _
+             (setenv "CC" ,(cc-for-target))
+             (invoke "make" "shared")
+             (invoke "make" "doc")))
+         (add-after 'install 'install-manpages
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (man-dir (string-append out "/share/man"))
+                    (man1-dir (string-append man-dir "/man1"))
+                    (man8-dir (string-append man-dir "/man8")))
+               (for-each
+                (lambda (x) (install-file x man1-dir))
+                (find-files "doc" "\\.1$"))
+               (for-each
+                (lambda (y) (install-file y man8-dir))
+                (find-files "doc" "\\.8$"))))))))
+    (native-inputs
+     (list doxygen flex perl pkg-config))
+    (inputs
+     `(("libx86emu" ,libx86emu)
+       ("util-linux:lib" ,util-linux "lib")))
+    (synopsis "Hardware information tool")
+    (description "HwInfo is used to probe for the hardware present in the system.
+It can be used to generate a system overview log which can be later used for
+support.")
+    (license license:gpl2+)))
+
 (define-public ddcutil
   (package
     (name "ddcutil")
@@ -79,15 +187,15 @@
         (base32 "19kkwb9ijzn6ya3mvjanggh1c96fcc0lkbk7xnyi2qp6wsr4nhxp"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("eudev" ,eudev)
-       ("glib" ,glib)
-       ("libdrm" ,libdrm)               ; enhanced diagnostics
-       ("libusb" ,libusb)               ; support USB monitors
-       ("libx11" ,libx11)               ; enhanced diagnostics
-       ("libxrandr" ,libxrandr)
-       ("zlib" ,zlib)))
+     (list eudev
+           glib
+           libdrm ; enhanced diagnostics
+           libusb ; support USB monitors
+           libx11 ; enhanced diagnostics
+           libxrandr
+           zlib))
     (home-page "https://www.ddcutil.com/")
     (synopsis "Control external monitor settings")
     (description
@@ -125,12 +233,9 @@ calibrated, and restored when the calibration is applied.")
     (arguments
      '(#:tests? #f))                    ; No test suite
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (inputs
-     `(("ddcutil" ,ddcutil)
-       ("glib" ,glib)
-       ("qtbase" ,qtbase-5)))
+     (list ddcutil glib qtbase-5))
     (home-page "https://www.ddcutil.com/")
     (synopsis "Graphical user interface for ddcutil")
     (description "ddcui is a graphical user interface for ddcutil, implemented
@@ -198,11 +303,7 @@ human-readable format and checks if it conforms to the standards.")
          ;; build container.
          #:tests? #f))
       (inputs
-       `(("python2" ,python-2)
-         ("python2-pycurl", python2-pycurl)
-         ("python2-pygtk", python2-pygtk)
-         ("pciutils", pciutils)
-         ("usbutils", usbutils)))
+       (list python-2 python2-pycurl python2-pygtk pciutils usbutils))
       (synopsis "Graphical client for the h-node hardware database
 project")
       (description
@@ -230,6 +331,8 @@ whether the hardware works with a fully free operating system or not.")
          (file-name (git-file-name name version))
          (sha256
           (base32 "0jxm63a8y1mfl1sa4mzzfs3bgnym6achj1yc0jglmp05xal16lm1"))
+         (patches
+          (search-patches "i7z-gcc-10.patch"))
          (modules '((guix build utils)))
          (snippet
           '(begin
@@ -247,7 +350,7 @@ whether the hardware works with a fully free operating system or not.")
          (modify-phases %standard-phases
            (delete 'configure))))       ; no configure script
       (inputs
-       `(("ncurses" ,ncurses)))
+       (list ncurses))
       (home-page "https://github.com/afontenot/i7z")
       (synopsis "Thermal and C-state reporting on older Intel Core CPUs")
       (description
@@ -287,7 +390,7 @@ information can be viewed in real time and/or logged to a file.")
        ("perl" ,perl)
        ("python" ,python)))
     (inputs
-     `(("libxml2" ,libxml2)))
+     (list libxml2))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -347,7 +450,7 @@ specific SMBIOS tables.")
                #t))))))
     (native-inputs
      ;; Newer GCCs fail with a deluge of "multiple definition of `__foo'" errors.
-     `(("gcc" ,gcc-4.9)))
+     (list gcc-4.9))
     (supported-systems (list "i686-linux" "x86_64-linux"))
     (home-page "https://www.memtest.org/")
     (synopsis "Thorough real-mode memory tester")
@@ -438,7 +541,7 @@ It can also be told to test memory starting at a particular physical address.")
                #t))))
        #:tests? #f))                    ; no test suite
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     ;; These registers and the CPUID instruction only exist on (most) x86 chips.
     (supported-systems (list "i686-linux" "x86_64-linux"))
     (home-page "https://01.org/msr-tools/")
@@ -460,10 +563,36 @@ MSR addresses differ (greatly) between processors, and any such modification can
 be dangerous and may void your CPU or system board's warranty.")
     (license license:gpl2)))     ; cpuid.c is gpl2, {rd,wr}msr.c are gpl2+
 
+(define-public openhmd
+  (package
+    (name "openhmd")
+    (version "0.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/OpenHMD/OpenHMD")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1hkpdl4zgycag5k8njvqpx01apxmm8m8pvhlsxgxpqiqy9a38ccg"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:tests? #f)) ; no test target although there is a test folder
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list hidapi))
+    (home-page "http://www.openhmd.net/")
+    (synopsis "API and drivers for immersive technology")
+    (description "OpenHMD aims to provide an API and drivers for immersive
+technology, such as head mounted displays with built in head tracking.")
+    (license license:boost1.0)))
+
 (define-public wavemon
   (package
     (name "wavemon")
-    (version "0.9.3")
+    (version "0.9.4")
     (source
      (origin
        (method git-fetch)
@@ -472,7 +601,7 @@ be dangerous and may void your CPU or system board's warranty.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0m9n5asjxs1ir5rqprigqcrm976mgjvh4yql1jhfnbszwbf95193"))))
+        (base32 "0s3yz15vzx90fxyb8bgryksn0cr2gpz9inbcx4qjrgs7zfbm4pgh"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -483,11 +612,9 @@ be dangerous and may void your CPU or system board's warranty.")
                             "/share/doc/" ,name "-" ,version))
        #:tests? #f))                    ; no tests
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libcap" ,libcap)
-       ("libnl" ,libnl)
-       ("ncurses" ,ncurses)))
+     (list libcap libnl ncurses))
     (home-page "https://github.com/uoaerg/wavemon")
     (synopsis "Wireless network device monitor")
     (description
@@ -519,11 +646,9 @@ supported by the Linux kernel.")
           (base32 "0zwrkqfxd671iy69v3q0844gfdpm1yk51i9qh2rqc969bd8glxga"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)))
+       (list autoconf automake pkg-config))
       (inputs
-       `(("libusb" ,libusb)))
+       (list libusb))
       (home-page "https://github.com/rockchip-linux/rkdeveloptool")
       (synopsis "Read from and write to RockChicp devices over USB")
       (description
@@ -547,8 +672,7 @@ as the Pinebook Pro.")
                 "008vvw504kh40br5v2xkqavnp9vpmjvf768faqzv1d00fd53ingn"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("xmllint" ,libxml2)))
+     (list pkg-config libxml2))
     (home-page "https://clusterlabs.github.io/libqb/")
     (synopsis "Library providing high performance logging, tracing, ipc, and poll")
     (description "Libqb is a library with the primary purpose of providing
@@ -655,15 +779,14 @@ Simply put, it is a USB device whitelisting tool.")
         (base32 "0gv3xj9sbk1wsyijfw9xjnvy8pg7j4arjnma2r2kfi18qy32wd30"))))
     (build-system gnu-build-system)
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+-2)))
+     (list glib gtk+-2))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("intltool" ,intltool)
-       ("libtool" ,libtool)
-       ("glib" ,glib "bin")
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf
+           intltool
+           libtool
+           `(,glib "bin")
+           automake
+           pkg-config))
     (synopsis "Simple screen testing tool")
     (description "This is a program for testing the quality of CRT/LCD
 screens.  It displays various patterns and allows you to estimate the quality
@@ -685,11 +808,9 @@ of your CRT/LCD monitor.")
         (base32 "05xynpwq851fp8f5fy7ac0blvz8mr5m5cbqj3gslgbwv63kjnfbq"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("curl" ,curl)
-       ("json-c" ,json-c)
-       ("openssl" ,openssl)))
+     (list curl json-c openssl))
     (home-page "https://tpm2-software.github.io/")
     (synopsis "OSS Implementation of the TCG TPM2 Software Stack (TSS2)")
     (description
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 486f5411b6..ed977f369f 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -40,6 +40,7 @@
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system haskell)
+  #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages gl)
@@ -58,7 +59,7 @@
 (define-public apply-refact
   (package
     (name "apply-refact")
-    (version "0.6.0.0")
+    (version "0.9.3.0")
     (source
      (origin
        (method url-fetch)
@@ -67,23 +68,20 @@
              version ".tar.gz"))
        (sha256
         (base32
-         "0p2mqgjcqr1zcmk8zgr0yq7g8z1agsa6l493lkj6g3ya9lyhxgig"))))
+         "1sn5g71sx8xa4ggyk49m661iip6zrzl65vb87l16l31kf79bbm7w"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-refact" ,ghc-refact)
-       ("ghc-exactprint" ,ghc-exactprint)
-       ("ghc-syb" ,ghc-syb)
-       ("ghc-temporary" ,ghc-temporary)
-       ("ghc-filemanip" ,ghc-filemanip)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-optparse-applicative"
-        ,ghc-optparse-applicative)))
+     (list ghc-refact
+           ghc-exactprint
+           ghc-syb
+           ghc-extra
+           ghc-uniplate
+           ghc-filemanip
+           ghc-unix-compat
+           ghc-optparse-applicative))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-golden" ,ghc-tasty-golden)
-       ("ghc-tasty-expected-failure"
-        ,ghc-tasty-expected-failure)
-       ("ghc-silently" ,ghc-silently)))
+     (list ghc-tasty ghc-tasty-golden ghc-tasty-expected-failure
+           ghc-silently))
     (home-page "https://hackage.haskell.org/package/apply-refact")
     (synopsis "Perform refactorings specified by the refact library")
     (description
@@ -91,14 +89,12 @@
 library.  It is primarily used with HLint's @code{--refactor} flag.")
     (license license:bsd-3)))
 
-;; In Stackage LTS 14, this package is at 2.4.1.0.  However, that
-;; version requires version 2.4.1.0 of the 'Cabal' package, which is
-;; provided by GHC 8.6.5 at version 2.4.0.1.  Hence, we use an older
-;; version to match the compiler's library.
+;; cabal-install depends on Cabal, which is part of GHC. You can only
+;; update this packages after updating GHC.
 (define-public cabal-install
  (package
   (name "cabal-install")
-   (version "2.4.0.0")
+   (version "3.2.0.0")
    (source
     (origin
      (method url-fetch)
@@ -106,36 +102,35 @@ library.  It is primarily used with HLint's @code{--refactor} flag.")
             "https://hackage.haskell.org/package/cabal-install/cabal-install-"
             version
             ".tar.gz"))
+      (patches (search-patches "cabal-install-base16-bytestring1.0.patch"
+                               "cabal-install-ghc8.10.patch"))
       (sha256
-       (base32 "1xmyl0x8wqfrnray6ky5wy0g0samv4264fbdlzxhqsvk9dbfja8k"))))
+       (base32 "1c0cc256bha97aj7l0lf76l5swlnmwcqppiz8l4cl5xgba4mwmd0"))))
    (build-system haskell-build-system)
-   (arguments
-    `(#:cabal-revision
-      ("2" "1xil5pim6j1ckqj61zz6l7xpfxxr3rkw2hvpws2f7pr9shk645dl")
-      #:phases
+    (arguments
+     `(#:phases
        (modify-phases %standard-phases
          (add-before 'configure 'update-constraints
            (lambda _
              (substitute* "cabal-install.cabal"
-               (("zip-archive >= 0\\.3\\.2\\.5 && < 0\\.4,")
-                "zip-archive >= 0.3.2.5 && <= 0.4.1,"))
-             #t)))))
+               (("(base|base16-bytestring|random)\\s+[^,]+" all dep)
+                dep)))))))
    (inputs
-    `(("ghc-async" ,ghc-async)
-      ("ghc-base16-bytestring" ,ghc-base16-bytestring)
-      ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
-      ("ghc-echo" ,ghc-echo)
-      ("ghc-edit-distance" ,ghc-edit-distance)
-      ("ghc-hackage-security" ,ghc-hackage-security)
-      ("ghc-hashable" ,ghc-hashable)
-      ("ghc-http" ,ghc-http)
-      ("ghc-network-uri" ,ghc-network-uri)
-      ("ghc-network" ,ghc-network)
-      ("ghc-random" ,ghc-random)
-      ("ghc-resolv" ,ghc-resolv)
-      ("ghc-tar" ,ghc-tar)
-      ("ghc-zip-archive" ,ghc-zip-archive)
-      ("ghc-zlib" ,ghc-zlib)))
+    (list ghc-async
+          ghc-base16-bytestring
+          ghc-cryptohash-sha256
+          ghc-echo
+          ghc-edit-distance
+          ghc-hackage-security
+          ghc-hashable
+          ghc-http
+          ghc-network-uri
+          ghc-network
+          ghc-random
+          ghc-resolv
+          ghc-tar
+          ghc-zip-archive
+          ghc-zlib))
    (home-page "https://www.haskell.org/cabal/")
    (synopsis "Command-line interface for Cabal and Hackage")
    (description
@@ -144,41 +139,10 @@ Haskell software by automating the fetching, configuration, compilation and
 installation of Haskell libraries and programs.")
    (license license:bsd-3)))
 
-(define-public corrode
-  (let ((revision "0")
-        (commit "b6699fb2fa552a07c6091276285a44133e5c9789"))
-    (package
-      (name "corrode")
-      (version (git-version "0.0.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/jameysharp/corrode")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "02v0yyj6sk4gpg2222wzsdqjxn8w66scbnf6b20x0kbmc69qcz4r"))))
-      (build-system haskell-build-system)
-      (inputs
-       `(("ghc-language-c" ,ghc-language-c)
-         ("ghc-markdown-unlit" ,ghc-markdown-unlit)))
-      (home-page "https://github.com/jameysharp/corrode")
-      (synopsis "Automatic semantics-preserving translation from C to Rust")
-      (description
-       "This program reads a C source file and prints an equivalent module in
-Rust syntax.  It is intended to be useful for two different purposes:
-
-@enumerate
-@item Partial automation for migrating legacy code that was implemented in C.
-@item A new, complementary approach to static analysis for C programs.
-@end enumerate\n")
-      (license license:gpl2+))))
-
 (define-public cpphs
   (package
     (name "cpphs")
-    (version "1.20.8")
+    (version "1.20.9.1")
     (source
      (origin
        (method url-fetch)
@@ -187,12 +151,10 @@ Rust syntax.  It is intended to be useful for two different purposes:
              name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1bh524asqhk9v1s0wvipl0hgn7l63iy3js867yv0z3h5v2kn8vg5"))))
+         "17wi7fma2qaqdm1hwgaam3fd140v9bpa8ky0wg708h1pqc5v2nbz"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-polyparse" ,ghc-polyparse)
-       ("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-old-time" ,ghc-old-time)))
+     (list ghc-polyparse ghc-old-locale ghc-old-time))
     (home-page "http://projects.haskell.org/cpphs/")
     (synopsis "Liberalised re-implementation of cpp, the C pre-processor")
     (description "Cpphs is a re-implementation of the C pre-processor that is
@@ -210,7 +172,7 @@ unlit literate code files; and an option to turn off macro-expansion.")
 (define-public darcs
   (package
     (name "darcs")
-    (version "2.14.2")
+    (version "2.16.4")
     (source
      (origin
        (method url-fetch)
@@ -218,7 +180,7 @@ unlit literate code files; and an option to turn off macro-expansion.")
                            "darcs-" version ".tar.gz"))
        (sha256
         (base32
-         "0zm2486gyhiga1amclbg92cd09bvki6vgh0ll75hv5kl72j61lb5"))
+         "07dygwh6p4fsrlgxmq6r7yvxmf4n2y04izzd30jzqgs0pi9645p4"))
        (modules '((guix build utils)))
        ;; Remove time-dependent code for reproducibility.
        (snippet
@@ -229,8 +191,7 @@ unlit literate code files; and an option to turn off macro-expansion.")
            #t))))
     (build-system haskell-build-system)
     (arguments
-     `(#:cabal-revision
-       ("1" "0xl7j5cm704pbl2ms0dkydh7jvrz0ym76d725ifpg4h902m1zkhg")
+     `(#:tests? #f ; TODO: Needs QuickCheck ==2.13.*, and more…
        #:configure-flags '("-fpkgconfig" "-fcurl" "-flibiconv" "-fthreaded"
                            "-fnetwork-uri" "-fhttp" "--flag=executable"
                            "--flag=library")
@@ -244,53 +205,58 @@ unlit literate code files; and an option to turn off macro-expansion.")
          (add-before 'configure 'update-constraints
            (lambda _
              (substitute* "darcs.cabal"
-               (("QuickCheck   >= 2\\.8\\.2 && < 2\\.13,")
-                "QuickCheck   >= 2.8.2 && < 2.14,"))
-             #t)))))
+               (("(constraints)\\s+[^,]+" all dep)
+                dep)
+               (("(cryptonite)\\s+[^,]+" all dep)
+                dep)))))))
     (inputs
-     `(("ghc-cmdargs" ,ghc-cmdargs)
-       ("ghc-split" ,ghc-split)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-findbin" ,ghc-findbin)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-async" ,ghc-async)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-base16-bytestring" ,ghc-base16-bytestring)
-       ("ghc-bytestring-builder" ,ghc-bytestring-builder)
-       ("ghc-cryptohash" ,ghc-cryptohash)
-       ("ghc-data-ordlist" ,ghc-data-ordlist)
-       ("ghc-fgl" ,ghc-fgl)
-       ("ghc-system-filepath" ,ghc-system-filepath)
-       ("ghc-graphviz" ,ghc-graphviz)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-html" ,ghc-html)
-       ("ghc-mmap" ,ghc-mmap)
-       ("ghc-old-time" ,ghc-old-time)
-       ("ghc-random" ,ghc-random)
-       ("ghc-regex-applicative" ,ghc-regex-applicative)
-       ("ghc-regex-compat-tdfa" ,ghc-regex-compat-tdfa)
-       ("ghc-sandi" ,ghc-sandi)
-       ("ghc-shelly" ,ghc-shelly)
-       ("ghc-tar" ,ghc-tar)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-zip-archive" ,ghc-zip-archive)
-       ("ghc-zlib" ,ghc-zlib)
-       ("ghc-http" ,ghc-http)
-       ("curl" ,curl)
-       ("ghc" ,ghc)
-       ("ncurses" ,ncurses)
-       ("perl" ,perl)
-       ("libiconv" ,libiconv)
-       ("ghc-network" ,ghc-network)
-       ("ghc-network-uri" ,ghc-network-uri)))
+     (list ghc-cmdargs
+           ghc-split
+           ghc-test-framework-quickcheck2
+           ghc-test-framework-hunit
+           ghc-test-framework
+           ghc-quickcheck
+           ghc-constraints
+           ghc-findbin
+           ghc-hunit
+           ghc-cryptonite
+           ghc-http-conduit
+           ghc-http-types
+           ghc-async
+           ghc-attoparsec
+           ghc-base16-bytestring
+           ghc-bytestring-builder
+           ghc-cryptohash
+           ghc-data-ordlist
+           ghc-fgl
+           ghc-system-filepath
+           ghc-graphviz
+           ghc-hashable
+           ghc-html
+           ghc-mmap
+           ghc-old-time
+           ghc-random
+           ghc-regex-applicative
+           ghc-regex-compat-tdfa
+           ghc-sandi
+           ghc-shelly
+           ghc-tar
+           ghc-transformers-compat
+           ghc-unix-compat
+           ghc-utf8-string
+           ghc-vector
+           ghc-zip-archive
+           ghc-zlib
+           ghc-http
+           curl
+           ghc
+           ncurses
+           perl
+           libiconv
+           ghc-network
+           ghc-network-uri))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://darcs.net")
     (synopsis "Distributed Revision Control System")
     (description
@@ -322,14 +288,10 @@ unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}.
         (base32 "0yqc1pkfajnr56gnh43sbj50r7c3r41b2jfz07ivgl6phi4frjbq"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-extra" ,ghc-extra)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-cmdargs" ,ghc-cmdargs)
-       ("ghc-fsnotify" ,ghc-fsnotify)
-       ("ghc-terminal-size" ,ghc-terminal-size)))
+     (list ghc-extra ghc-ansi-terminal ghc-cmdargs ghc-fsnotify
+           ghc-terminal-size))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty ghc-tasty-hunit))
     (home-page "https://github.com/ndmitchell/ghcid#readme")
     (synopsis "GHCi based bare bones IDE")
     (description
@@ -344,14 +306,14 @@ to @code{cabal repl}).")
 (define-public git-annex
   (package
     (name "git-annex")
-    (version "8.20210903")
+    (version "8.20211123")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/"
                            "git-annex/git-annex-" version ".tar.gz"))
        (sha256
-        (base32 "1p6zgk98jmxvqdin5xsdxhgq276bjdr2spi0wabj8x0ziry97rvl"))))
+        (base32 "0i9dhh601axv0b1i56yzn6jnfp160z530fp9pd557kpq4nbvg5kl"))))
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags
@@ -400,15 +362,15 @@ to @code{cabal repl}).")
                  (format out "main = buildMansOrWarn~%")))
              (invoke "runhaskell" "Build/MakeMans.hs")))
          (replace 'check
-           (lambda _
+           (lambda* (#:key tests? #:allow-other-keys)
              ;; We need to set the path so that Git recognizes
              ;; `git annex' as a custom command.
              (setenv "PATH" (string-append (getenv "PATH") ":"
                                            (getcwd) "/dist/build/git-annex"))
-             (with-directory-excursion "dist/build/git-annex"
-               (symlink "git-annex" "git-annex-shell"))
-             (invoke "git-annex" "test")
-             #t))
+             (when tests?
+               (with-directory-excursion "dist/build/git-annex"
+                 (symlink "git-annex" "git-annex-shell"))
+               (invoke "git-annex" "test"))))
          (add-after 'check 'unpatch-shell-and-rebuild
            (lambda args
              ;; Undo `patch-shell-for-tests'.
@@ -442,69 +404,66 @@ to @code{cabal repl}).")
                (lambda ()
                  (display "static output not used\n"))))))))
     (inputs
-     `(("curl" ,curl)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-async" ,ghc-async)
-       ("ghc-aws" ,ghc-aws)
-       ("ghc-bloomfilter" ,ghc-bloomfilter)
-       ("ghc-byteable" ,ghc-byteable)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-concurrent-output" ,ghc-concurrent-output)
-       ("ghc-crypto-api" ,ghc-crypto-api)
-       ("ghc-cryptonite" ,ghc-cryptonite)
-       ("ghc-data-default" ,ghc-data-default)
-       ("ghc-dav" ,ghc-dav)
-       ("ghc-disk-free-space" ,ghc-disk-free-space)
-       ("ghc-dlist" ,ghc-dlist)
-       ("ghc-edit-distance" ,ghc-edit-distance)
-       ("ghc-esqueleto" ,ghc-esqueleto)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-feed" ,ghc-feed)
-       ("ghc-filepath-bytestring" ,ghc-filepath-bytestring)
-       ("ghc-free" ,ghc-free)
-       ("ghc-hinotify" ,ghc-hinotify)
-       ("ghc-hslogger" ,ghc-hslogger)
-       ("ghc-http-client" ,ghc-http-client)
-       ("ghc-http-conduit" ,ghc-http-conduit)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-ifelse" ,ghc-ifelse)
-       ("ghc-magic" ,ghc-magic)
-       ("ghc-memory" ,ghc-memory)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-monad-logger" ,ghc-monad-logger)
-       ("ghc-mountpoints" ,ghc-mountpoints)
-       ("ghc-network" ,ghc-network)
-       ("ghc-network-info" ,ghc-network-info)
-       ("ghc-network-multicast" ,ghc-network-multicast)
-       ("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-persistent" ,ghc-persistent)
-       ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
-       ("ghc-persistent-template" ,ghc-persistent-template)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-random" ,ghc-random)
-       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-safesemaphore" ,ghc-safesemaphore)
-       ("ghc-sandi" ,ghc-sandi)
-       ("ghc-securemem" ,ghc-securemem)
-       ("ghc-socks" ,ghc-socks)
-       ("ghc-split" ,ghc-split)
-       ("ghc-stm-chans" ,ghc-stm-chans)
-       ("ghc-tagsoup" ,ghc-tagsoup)
-       ("ghc-torrent" ,ghc-torrent)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-uuid" ,ghc-uuid)
-       ("git" ,git)
-       ("rsync" ,rsync)))
+     (list curl
+           ghc-aeson
+           ghc-async
+           ghc-aws
+           ghc-bloomfilter
+           ghc-byteable
+           ghc-case-insensitive
+           ghc-concurrent-output
+           ghc-crypto-api
+           ghc-cryptonite
+           ghc-data-default
+           ghc-dav
+           ghc-disk-free-space
+           ghc-dlist
+           ghc-edit-distance
+           ghc-esqueleto
+           ghc-exceptions
+           ghc-feed
+           ghc-filepath-bytestring
+           ghc-free
+           ghc-hinotify
+           ghc-hslogger
+           ghc-http-client
+           ghc-http-conduit
+           ghc-http-types
+           ghc-ifelse
+           ghc-magic
+           ghc-memory
+           ghc-monad-control
+           ghc-monad-logger
+           ghc-mountpoints
+           ghc-network
+           ghc-network-info
+           ghc-network-multicast
+           ghc-old-locale
+           ghc-optparse-applicative
+           ghc-persistent
+           ghc-persistent-sqlite
+           ghc-persistent-template
+           ghc-quickcheck
+           ghc-random
+           ghc-regex-tdfa
+           ghc-resourcet
+           ghc-safesemaphore
+           ghc-sandi
+           ghc-securemem
+           ghc-socks
+           ghc-split
+           ghc-stm-chans
+           ghc-tagsoup
+           ghc-torrent
+           ghc-unix-compat
+           ghc-unordered-containers
+           ghc-utf8-string
+           ghc-uuid
+           git
+           rsync))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-tasty-rerun" ,ghc-tasty-rerun)
-       ("perl" ,perl)))
+     (list ghc-tasty ghc-tasty-hunit ghc-tasty-quickcheck ghc-tasty-rerun
+           perl))
     (home-page "https://git-annex.branchable.com/")
     (synopsis "Manage files with Git, without checking in their contents")
     (description "This package allows managing files with Git, without
@@ -525,7 +484,7 @@ used to keep a folder in sync between computers.")
 (define-public hlint
   (package
     (name "hlint")
-    (version "2.1.26")
+    (version "3.2.7")
     (source
      (origin
        (method url-fetch)
@@ -534,24 +493,25 @@ used to keep a folder in sync between computers.")
              "/" name "-" version ".tar.gz"))
        (sha256
         (base32
-         "16zkkpbfrd69853cdqf597fva969lirfc86b039i9zd7ghlrcayc"))))
+         "0z6gxndrh7blzapkdn6fq1pkbkjlmbgjbq9ydnvy2wm00fb3v73g"))))
     (build-system haskell-build-system)
     (inputs
-     `(("cpphs" ,cpphs)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-yaml" ,ghc-yaml)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-data-default" ,ghc-data-default)
-       ("ghc-cmdargs" ,ghc-cmdargs)
-       ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
-       ("ghc-haskell-src-exts-util" ,ghc-haskell-src-exts-util)
-       ("ghc-uniplate" ,ghc-uniplate)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-extra" ,ghc-extra)
-       ("ghc-refact" ,ghc-refact)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-lib-parser" ,ghc-lib-parser)
-       ("hscolour" ,hscolour)))
+     (list ghc-unordered-containers
+           ghc-yaml
+           ghc-vector
+           ghc-data-default
+           ghc-file-embed
+           ghc-utf8-string
+           cpphs
+           ghc-filepattern
+           ghc-lib-parser-ex
+           hscolour
+           ghc-cmdargs
+           ghc-uniplate
+           ghc-ansi-terminal
+           ghc-extra
+           ghc-refact
+           ghc-aeson))
     (home-page "https://github.com/ndmitchell/hlint")
     (synopsis "Suggest improvements for Haskell source code")
     (description "HLint reads Haskell programs and suggests changes that
@@ -562,7 +522,7 @@ unwanted suggestions, and to add your own custom suggestions.")
 (define-public hoogle
   (package
     (name "hoogle")
-    (version "5.0.17.11")
+    (version "5.0.18.2")
     (source
      (origin
        (method url-fetch)
@@ -572,38 +532,38 @@ unwanted suggestions, and to add your own custom suggestions.")
          version ".tar.gz"))
        (sha256
         (base32
-         "1svp8z9pad8z2j386pr0dda0ds8ddxab0salnz4gm51q877w93p1"))))
+         "1xacx2f33x1a4qlv25f8rlmb4wi0cjfzrj22nlnkrd0knghik3m7"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-blaze-markup" ,ghc-blaze-markup)
-       ("ghc-cmdargs" ,ghc-cmdargs)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-connection" ,ghc-connection)
-       ("ghc-extra" ,ghc-extra)
-       ("ghc-foundation" ,ghc-foundation)
-       ("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
-       ("ghc-http-conduit" ,ghc-http-conduit)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-js-flot" ,ghc-js-flot)
-       ("ghc-js-jquery" ,ghc-js-jquery)
-       ("ghc-mmap" ,ghc-mmap)
-       ("ghc-process-extras" ,ghc-process-extras)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-storable-tuple" ,ghc-storable-tuple)
-       ("ghc-tar" ,ghc-tar)
-       ("ghc-uniplate" ,ghc-uniplate)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-wai" ,ghc-wai)
-       ("ghc-wai-logger" ,ghc-wai-logger)
-       ("ghc-warp" ,ghc-warp)
-       ("ghc-warp-tls" ,ghc-warp-tls)
-       ("ghc-zlib" ,ghc-zlib)))
+     (list ghc-quickcheck
+           ghc-aeson
+           ghc-blaze-html
+           ghc-blaze-markup
+           ghc-cmdargs
+           ghc-conduit
+           ghc-conduit-extra
+           ghc-connection
+           ghc-extra
+           ghc-foundation
+           ghc-old-locale
+           ghc-haskell-src-exts
+           ghc-http-conduit
+           ghc-http-types
+           ghc-js-flot
+           ghc-js-jquery
+           ghc-mmap
+           ghc-process-extras
+           ghc-resourcet
+           ghc-storable-tuple
+           ghc-tar
+           ghc-uniplate
+           ghc-utf8-string
+           ghc-vector
+           ghc-wai
+           ghc-wai-logger
+           ghc-warp
+           ghc-warp-tls
+           ghc-zlib))
     (home-page "https://hoogle.haskell.org/")
     (synopsis "Haskell API Search")
     (description "Hoogle is a Haskell API search engine, which allows
@@ -675,17 +635,17 @@ and mIRC chat codes.")
                (copy-recursively "keymap" (string-append doc "/keymap"))
                #t))))))
     (inputs
-     `(("ghc-cereal" ,ghc-cereal)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-lens" ,ghc-lens)
-       ("ghc-megaparsec" ,ghc-megaparsec)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-rio" ,ghc-rio)
-       ("ghc-unagi-chan" ,ghc-unagi-chan)
-       ("ghc-unliftio" ,ghc-unliftio)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)))
+     (list ghc-cereal
+           ghc-exceptions
+           ghc-hashable
+           ghc-lens
+           ghc-megaparsec
+           ghc-optparse-applicative
+           ghc-resourcet
+           ghc-rio
+           ghc-unagi-chan
+           ghc-unliftio
+           ghc-unordered-containers))
     (home-page "https://github.com/david-janssen/kmonad")
     (synopsis "Advanced keyboard manager")
     (description "KMonad is a keyboard remapping utility that supports
@@ -710,13 +670,18 @@ Wayland, and Linux console environments alike.")
         (base32 "1ispgl8rc2scr6v8bb6sks7px856jf61x74zj2iyddrn5qamkb3n"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-megaparsec" ,ghc-megaparsec)
-       ("ghc-parser-combinators" ,ghc-parser-combinators)
-       ("ghc-cmdargs" ,ghc-cmdargs)
-       ("ghc-safe-exceptions" ,ghc-safe-exceptions)))
+     (list ghc-megaparsec ghc-parser-combinators ghc-cmdargs
+           ghc-safe-exceptions))
     (arguments
      `(#:cabal-revision
-       ("1" "1hsj0jh6siph3afd9c2wii09sffl48rzqv653n4clpd8qy0rn48d")))
+       ("1" "1hsj0jh6siph3afd9c2wii09sffl48rzqv653n4clpd8qy0rn48d")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'update-constraints
+           (lambda _
+             (substitute* "nixfmt.cabal"
+               (("(base|megaparsec)\\s+[^,]+" all dep)
+                dep)))))))
     (home-page "https://github.com/serokell/nixfmt")
     (synopsis "Opinionated formatter for Nix")
     (description
@@ -739,19 +704,19 @@ formatting by forgetting all existing formatting during parsing.")
         (base32 "1baw360dcnyavacf7a8v6wq4m5g6bcmyybkckv4cz7r4xl5p3qws"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxscrnsaver" ,libxscrnsaver)
-       ("ghc-x11" ,ghc-x11)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-microlens" ,ghc-microlens)
-       ("ghc-microlens-mtl" ,ghc-microlens-mtl)
-       ("ghc-protolude" ,ghc-protolude-0.3)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-wordexp" ,ghc-wordexp)))
+     (list libx11
+           libxext
+           libxscrnsaver
+           ghc-x11
+           ghc-exceptions
+           ghc-hashable
+           ghc-microlens
+           ghc-microlens-mtl
+           ghc-protolude
+           ghc-vector
+           ghc-wordexp))
     (home-page "https://github.com/erebe/greenclip")
     (synopsis "Simple Clipboard manager")
     (description "@code{greenclip} is a clipboard manager written in
@@ -783,14 +748,14 @@ Haskell.")
                                     "/lib"))))
                #t))))))
     (inputs
-     `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
-       ("ghc-random" ,ghc-random)
-       ("ghc-glut" ,ghc-glut)
-       ("freeglut" ,freeglut)
-       ("ghc-opengl" ,ghc-opengl)
-       ("ghc-sdl2" ,ghc-sdl2)
-       ("ghc-sdl2-image" ,ghc-sdl2-image)
-       ("ghc-sdl2-mixer" ,ghc-sdl2-mixer)))
+     (list ghc-extensible-exceptions
+           ghc-random
+           ghc-glut
+           freeglut
+           ghc-opengl
+           ghc-sdl2
+           ghc-sdl2-image
+           ghc-sdl2-mixer))
     (home-page "https://www.gamecreation.org/games/raincat")
     (synopsis "Puzzle game with a cat in lead role")
     (description "Project Raincat is a game developed by Carnegie Mellon
@@ -829,14 +794,14 @@ is programmed in Haskell.")
                  (display "static output not used\n")))
              #t)))))
     (inputs
-     `(("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-data-default" ,ghc-data-default)
-       ("ghc-ifelse" ,ghc-ifelse)
-       ("ghc-monad-loops" ,ghc-monad-loops)
-       ("ghc-ncurses" ,ghc-ncurses)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-random" ,ghc-random)
-       ("ghc-vector" ,ghc-vector)))
+     (list ghc-case-insensitive
+           ghc-data-default
+           ghc-ifelse
+           ghc-monad-loops
+           ghc-ncurses
+           ghc-optparse-applicative
+           ghc-random
+           ghc-vector))
     (home-page "https://joeyh.name/code/scroll/")
     (synopsis "scroll(6), a roguelike game")
     (description
@@ -848,7 +813,7 @@ too slow and you'll get wound up in the scroll and crushed.")
 (define-public shellcheck
   (package
     (name "shellcheck")
-    (version "0.7.1")
+    (version "0.8.0")
     (source
      (origin
        (method url-fetch)
@@ -856,11 +821,12 @@ too slow and you'll get wound up in the scroll and crushed.")
              "https://hackage.haskell.org/package/ShellCheck/ShellCheck-"
              version ".tar.gz"))
        (sha256
-        (base32 "06m4wh891nah3y0br4wh3adpsb16zawkb2ijgf1vcz61fznj6ps1"))
+        (base32 "05jlapp4m997w36h2wszdxz9gvczdczaylypsbn14jqpb650w232"))
        (file-name (string-append name "-" version ".tar.gz"))))
     (build-system haskell-build-system)
     (arguments
-     '(#:phases
+     '(#:haddock? #f ; TODO: Fails to build.
+       #:phases
        (modify-phases %standard-phases
          (add-after 'build 'build-man-page
            (lambda _
@@ -871,12 +837,9 @@ too slow and you'll get wound up in the scroll and crushed.")
                            (string-append (assoc-ref outputs "out")
                                           "/share/man/man1/")))))))
     (native-inputs
-     `(("pandoc" ,pandoc)))
+     (list pandoc))
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-diff" ,ghc-diff)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
+     (list ghc-aeson ghc-diff ghc-quickcheck ghc-regex-tdfa))
     (home-page "https://www.shellcheck.net/")
     (synopsis "Static analysis for shell scripts")
     (description "@code{shellcheck} provides static analysis for
@@ -928,16 +891,16 @@ advanced user's otherwise working script to fail under future circumstances.
                    (format #t "test suite not run~%"))
                #t))))))
     (inputs
-     `(("ghc-diff" ,ghc-diff)
-       ("ghc-cmdargs" ,ghc-cmdargs)
-       ("ghc-filemanip" ,ghc-filemanip)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-pretty-show" ,ghc-pretty-show)
-       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
-       ("ghc-safe" ,ghc-safe)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+     (list ghc-diff
+           ghc-cmdargs
+           ghc-filemanip
+           ghc-hunit
+           ghc-pretty-show
+           ghc-regex-tdfa
+           ghc-safe
+           ghc-utf8-string
+           ghc-test-framework
+           ghc-test-framework-hunit))
     (home-page "https://github.com/simonmichael/shelltestrunner")
     (synopsis "Test CLI programs")
     (description
@@ -950,30 +913,32 @@ output, stderr, and exit status.")
 (define-public stylish-haskell
   (package
     (name "stylish-haskell")
-    (version "0.9.2.2")
+    (version "0.13.0.0")
     (source
      (origin
        (method url-fetch)
        (uri
         (string-append
-         "mirror://hackage/package/stylish-haskell/"
+         "https://hackage.haskell.org/package/stylish-haskell/"
          "stylish-haskell-" version ".tar.gz"))
        (sha256
         (base32
-         "1zs624xqp6j8vrl6pfv18dm8vz8hvz25grri65ximxhcizgwhnax"))))
+         "0x9w3zh1lzp6l5xj3mynnlr0fzb5mbv0wwpfxp8fr6bk0jcrzjwf"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-file-embed" ,ghc-file-embed)
-       ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-syb" ,ghc-syb)
-       ("ghc-yaml" ,ghc-yaml)
-       ("ghc-strict" ,ghc-strict)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+     (list ghc-aeson
+           ghc-file-embed
+           ghc-haskell-src-exts
+           ghc-semigroups
+           ghc-syb
+           ghc-hsyaml
+           ghc-hsyaml-aeson
+           ghc-lib-parser
+           ghc-strict
+           ghc-optparse-applicative
+           ghc-hunit
+           ghc-test-framework
+           ghc-test-framework-hunit))
     (home-page "https://github.com/jaspervdj/stylish-haskell")
     (synopsis "Haskell code prettifier")
     (description "Stylish-haskell is a Haskell code prettifier.  The goal is
@@ -999,6 +964,3 @@ Replace some ASCII sequences by their Unicode equivalent (turned off by
 default)
 @end itemize")
     (license license:bsd-3)))
-
-(define-public ghc-stylish-haskell
-  (deprecated-package "ghc-stylish-haskell" stylish-haskell))
diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm
index a200c1b60c..e647d65a89 100644
--- a/gnu/packages/haskell-check.scm
+++ b/gnu/packages/haskell-check.scm
@@ -42,7 +42,7 @@
 (define-public ghc-tasty-ant-xml
   (package
     (name "ghc-tasty-ant-xml")
-    (version "1.1.6")
+    (version "1.1.8")
     (source
      (origin
        (method url-fetch)
@@ -52,13 +52,10 @@
              ".tar.gz"))
        (sha256
         (base32
-         "13qqpl1prr9dda87dp45mqybay24n8rhxxgvpc9j34kh72g8j5qw"))))
+         "0h9mllhw9cd0rn34xhj8grwmbny7z7hpd8qmp9lfcdj0s4qx9vx8"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-generic-deriving" ,ghc-generic-deriving)
-       ("ghc-xml" ,ghc-xml)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-tasty" ,ghc-tasty)))
+     (list ghc-generic-deriving ghc-xml ghc-tagged ghc-tasty))
     (home-page
      "https://github.com/ocharles/tasty-ant-xml")
     (synopsis
@@ -72,7 +69,7 @@ framework.")
 (define-public ghc-tasty-smallcheck
   (package
     (name "ghc-tasty-smallcheck")
-    (version "0.8.1")
+    (version "0.8.2")
     (source
      (origin
        (method url-fetch)
@@ -82,13 +79,10 @@ framework.")
              ".tar.gz"))
        (sha256
         (base32
-         "1n66ngzllf3xrlqykwszlkwsi96n5nkm7xbpfq7774vpvfnafjri"))))
+         "0csgwn3vch0jnpqyyfnrfjq4z0dpl67imh5a7byll3hhlyidgjym"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-smallcheck" ,ghc-smallcheck)
-       ("ghc-async" ,ghc-async)
-       ("ghc-tagged" ,ghc-tagged)))
+     (list ghc-tasty ghc-smallcheck ghc-async ghc-tagged))
     (home-page "https://documentup.com/feuerbach/tasty")
     (synopsis "SmallCheck support for the Tasty test framework")
     (description "This package provides SmallCheck support for the Tasty
@@ -98,7 +92,7 @@ Haskell test framework.")
 (define-public ghc-tasty-quickcheck
   (package
     (name "ghc-tasty-quickcheck")
-    (version "0.10.1")
+    (version "0.10.1.2")
     (source
      (origin
        (method url-fetch)
@@ -107,16 +101,16 @@ Haskell test framework.")
              "tasty-quickcheck-" version ".tar.gz"))
        (sha256
         (base32
-         "0k4vvd5vmrncv1s6gdf03l4xijwlk428sb9jfx8n1zaz02971msh"))))
+         "0i1i78587znqzwps49milyr5n2k388ld2kr9ysz1vw8gcw51qq49"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-random" ,ghc-random)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-pcre-light" ,ghc-pcre-light)))
+     (list ghc-quickcheck
+           ghc-tagged
+           ghc-tasty
+           ghc-random
+           ghc-ansi-terminal
+           ghc-tasty-hunit
+           ghc-pcre-light))
     (home-page "http://documentup.com/feuerbach/tasty")
     (synopsis "QuickCheck support for the Tasty test framework")
     (description "This package provides QuickCheck support for the Tasty
@@ -126,7 +120,7 @@ Haskell test framework.")
 (define-public ghc-tasty-golden
   (package
     (name "ghc-tasty-golden")
-    (version "2.3.2")
+    (version "2.3.4")
     (source
      (origin
        (method url-fetch)
@@ -136,16 +130,16 @@ Haskell test framework.")
              ".tar.gz"))
        (sha256
         (base32
-         "0k3ibjhjc9vcwzrjnl4rnwvfm8l81q347nb7dgvcib6n5wm3s404"))))
+         "1nskavqgfxx1cw7q6c0cmizlwj54rnlv93yhgssaa77gv1nbvwpn"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-temporary" ,ghc-temporary)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-async" ,ghc-async)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-temporary-rc" ,ghc-temporary-rc)))
+     (list ghc-async
+           ghc-optparse-applicative
+           ghc-tagged
+           ghc-tasty
+           ghc-temporary
+           ghc-unix-compat))
+    (native-inputs (list ghc-tasty-hunit))
     (home-page
      "https://github.com/feuerbach/tasty-golden")
     (synopsis "Golden tests support for tasty")
@@ -159,7 +153,7 @@ contains the correct result for the test.")
 (define-public ghc-tasty
   (package
     (name "ghc-tasty")
-    (version "1.2.3")
+    (version "1.4.2")
     (source
      (origin
        (method url-fetch)
@@ -169,17 +163,17 @@ contains the correct result for the test.")
              ".tar.gz"))
        (sha256
         (base32
-         "0qpn0avpw4w1qq5r2gwh2piipj0llqq6ylagr3xnqiraq6mhg8cc"))))
+         "0574hbqzxzyv6vsk5kzbf04kz58y0iy8x9ydcj4b8fpncgmgy63g"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-tagged" ,ghc-tagged)
-       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-unbounded-delays" ,ghc-unbounded-delays)
-       ("ghc-async" ,ghc-async)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-clock-bootstrap" ,ghc-clock-bootstrap)
-       ("ghc-wcwidth" ,ghc-wcwidth-bootstrap)))
+     (list ghc-tagged
+           ghc-regex-tdfa
+           ghc-optparse-applicative
+           ghc-unbounded-delays
+           ghc-async
+           ghc-ansi-terminal
+           ghc-clock-bootstrap
+           ghc-wcwidth-bootstrap))
     (home-page "http://documentup.com/feuerbach/tasty")
     (synopsis "Modern and extensible testing framework")
     (description "Tasty is a modern testing framework for Haskell.  It lets
@@ -190,7 +184,7 @@ and any other types of tests into a single test suite.")
 (define-public ghc-tasty-hedgehog
   (package
     (name "ghc-tasty-hedgehog")
-    (version "1.0.0.1")
+    (version "1.1.0.0")
     (source
      (origin
        (method url-fetch)
@@ -198,17 +192,12 @@ and any other types of tests into a single test suite.")
                            "tasty-hedgehog/tasty-hedgehog-" version ".tar.gz"))
        (sha256
         (base32
-         "1mbg5q0c0xfrk4npfj60pi693igb7r5l78x6xf9fk2jglw0nmxhz"))))
+         "0cy49z8n124xh2ra2482vfy5if1n6d9lbdjma2zg1mxfj0k0zyfb"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-tagged" ,ghc-tagged)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-hedgehog" ,ghc-hedgehog)))
+     (list ghc-tagged ghc-tasty ghc-hedgehog))
     (native-inputs
-     `(("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)))
-    (arguments
-     `(#:cabal-revision
-       ("1" "1n6797fm8swyrk8cw7zxz593gq82wx8dayvm204rmgcz75bslcpn")))
+     (list ghc-tasty-expected-failure))
     (home-page "https://github.com/qfpl/tasty-hedgehog")
     (synopsis "Integration for tasty and hedgehog")
     (description "This package provides the means for integrating the
@@ -220,28 +209,29 @@ framework}.")
 (define-public ghc-tasty-hspec
   (package
     (name "ghc-tasty-hspec")
-    (version "1.1.5.1")
+    (version "1.1.6")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/tasty-hspec/tasty-hspec-"
+             "https://hackage.haskell.org/package/tasty-hspec/tasty-hspec-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "0i9kdzjpk750sa078jj3iyhp72k0177zk7vxl131r6dkyz09x27y"))))
+         "02s82ijs2ringqxsqbm7m3vcy5brmwxa617azxv0v2phi3rdkjvl"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-hspec-core" ,ghc-hspec-core)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+     (list ghc-hspec
+           ghc-hspec-core
+           ghc-quickcheck
+           ghc-tagged
+           ghc-tasty
+           ghc-tasty-smallcheck
+           ghc-tasty-quickcheck))
     (arguments
      `(#:cabal-revision
-       ("4" "1yppwhs2r2rlwrzli9ccv5ldgl95h5p7pqhsr898r3das6daf6sk")))
+       ("1" "0za15rg0szacxq9yfxxjzddr77ai7ng5827a20pj9dr5anjlnajj")))
     (home-page
      "https://github.com/mitchellwrosen/tasty-hspec")
     (synopsis
@@ -253,7 +243,7 @@ framework}.")
 (define-public ghc-tasty-hunit
   (package
     (name "ghc-tasty-hunit")
-    (version "0.10.0.2")
+    (version "0.10.0.3")
     (source
      (origin
        (method url-fetch)
@@ -263,11 +253,10 @@ framework}.")
              ".tar.gz"))
        (sha256
         (base32
-         "1xvf5xs0r8xqkcg354klz4wyzwyzvinalyl6f4fnxwqmzrgch8s8"))))
+         "0gz6zz3w7s44pymw33xcxnawryl27zk33766sab96nz2xh91kvxp"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-call-stack" ,ghc-call-stack-boot)
-       ("ghc-tasty" ,ghc-tasty)))
+     (list ghc-call-stack-boot ghc-tasty))
     (home-page "http://documentup.com/feuerbach/tasty")
     (synopsis "HUnit support for the Tasty test framework")
     (description "This package provides HUnit support for the Tasty Haskell
@@ -287,9 +276,7 @@ test framework.")
                 "14yvlpli6cv6bn3kh8mlfp4x1l6ns4fvmfv6hmj75cvxyzq029d7"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty ghc-tasty-quickcheck ghc-tasty-hunit))
     (home-page "https://github.com/vincenthz/tasty-kat")
     (synopsis "Known Answer Tests (KAT) framework for tasty")
     (description
@@ -300,7 +287,7 @@ tasty.")
 (define-public ghc-tasty-lua
   (package
     (name "ghc-tasty-lua")
-    (version "0.2.0.1")
+    (version "0.2.3.2")
     (source
      (origin
        (method url-fetch)
@@ -308,14 +295,12 @@ tasty.")
                            "tasty-lua/tasty-lua-" version ".tar.gz"))
        (sha256
         (base32
-         "0xlj36rrhkx312h7smx6ay20rhlhxvw2ma2ckdnzv1pvmdn6p5qx"))))
+         "0wa73ihkjcxi50lgpdzwwdx7s903lqi79hw7hxlvhbcvdly1cq53"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-file-embed" ,ghc-file-embed)
-       ("ghc-hslua" ,ghc-hslua)
-       ("ghc-tasty" ,ghc-tasty)))
+     (list ghc-file-embed ghc-hslua ghc-tasty))
     (native-inputs
-     `(("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty-hunit))
     (home-page "https://github.com/hslua/tasty-lua")
     (synopsis "Write tests in Lua, integrate into tasty")
     (description "This package gives users the ability to define tasty tests
@@ -337,9 +322,7 @@ from Lua.")
          "0b2ivrw2257m4cy4rjnkwqlarh83j1y3zywnmaqqqbvy667sqnj3"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-haskell-src-exts ghc-tasty ghc-tasty-hunit))
     (home-page "https://github.com/bennofs/tasty-th")
     (synopsis "Automatically generate tasty TestTrees")
     (description
@@ -352,7 +335,7 @@ test-framework.")
 (define-public ghc-tasty-rerun
   (package
     (name "ghc-tasty-rerun")
-    (version "1.1.14")
+    (version "1.1.18")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -360,14 +343,11 @@ test-framework.")
                     "tasty-rerun-" version ".tar.gz"))
               (sha256
                (base32
-                "0s0zj8ds4g1w2cjzm2lh25ivg962jigqdrbj08v3dbz64lx4mlzr"))))
+                "0sccp5zx9v2rx741nbmgd8mzjhy5m4v74hk26d23xz93ph8aqx7s"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-reducers" ,ghc-reducers)
-       ("ghc-split" ,ghc-split)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-tasty" ,ghc-tasty)))
+     (list ghc-optparse-applicative ghc-reducers ghc-split ghc-tagged
+           ghc-tasty))
     (home-page "https://github.com/ocharles/tasty-rerun")
     (synopsis "Run tests by filtering the test tree")
     (description "This package adds the ability to run tests by filtering the
@@ -379,7 +359,7 @@ been added since previous test run.")
 (define-public ghc-tasty-expected-failure
   (package
     (name "ghc-tasty-expected-failure")
-    (version "0.11.1.2")
+    (version "0.12.3")
     (source
      (origin
        (method url-fetch)
@@ -388,11 +368,16 @@ been added since previous test run.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "175gdk1mkslcwjxajkbl4zmaigzf8h4svzd7va5qb519y0dxk28n"))))
+         "0zlgxs24d54byfhvwdg85xk1572zpjs71bjlxxrxcvralrfcq1yb"))))
     (build-system haskell-build-system)
+    (arguments `(#:tests? #f)) ; TODO: Loops.
+;    (native-inputs
+;     `(("ghc-tasty-hunit" ,ghc-tasty-hunit)
+;       ("ghc-tasty-golden" ,ghc-tasty-golden)
+;       ("ghc-hedgehog" ,ghc-hedgehog)
+;       ("ghc-tasty-hedgehog" ,ghc-tasty-hedgehog)))
     (inputs
-     `(("ghc-tagged" ,ghc-tagged)
-       ("ghc-tasty" ,ghc-tasty)))
+     (list ghc-tagged ghc-tasty ghc-unbounded-delays))
     (home-page "https://github.com/nomeata/tasty-expected-failure")
     (synopsis "Mark tasty tests as failure expected")
     (description
@@ -405,7 +390,7 @@ development.")
 (define-public ghc-quickcheck-instances
   (package
     (name "ghc-quickcheck-instances")
-    (version "0.3.22")
+    (version "0.3.25.2")
     (source
      (origin
        (method url-fetch)
@@ -415,24 +400,28 @@ development.")
              version ".tar.gz"))
        (sha256
         (base32
-         "14asr9r7da3w7p4hjj51w2yb002nz8x0np8hdz9z4yjvi60vyrax"))))
+         "0ihqbarl2ddrfgq3mq09lswwn8213qpw13g49qxs5mjkcm6gbk3h"))))
     (build-system haskell-build-system)
     (arguments
      `(#:cabal-revision
-       ("2" "1ia5fjhpg7rz793552v88gv2iqx7hl9mi2g09m0llasy1cpzc9jr")))
+       ("2" "1lsa3pbg4ljlk29fhm3mdklnx3hwffyga1nr5krbpcyc3ywq8fq8")))
     (inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-old-time" ,ghc-old-time)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-time-compat" ,ghc-time-compat)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-uuid-types" ,ghc-uuid-types)
-       ("ghc-vector" ,ghc-vector)))
+     (list ghc-case-insensitive
+           ghc-data-fix
+           ghc-hashable
+           ghc-integer-logarithms
+           ghc-old-time
+           ghc-quickcheck
+           ghc-scientific
+           ghc-splitmix
+           ghc-strict
+           ghc-tagged
+           ghc-these
+           ghc-time-compat
+           ghc-transformers-compat
+           ghc-unordered-containers
+           ghc-uuid-types
+           ghc-vector))
     (home-page "https://github.com/aslatter/qc-instances")
     (synopsis "Common quickcheck instances")
     (description "This package provides QuickCheck instances for types
@@ -453,7 +442,7 @@ provided by the Haskell Platform.")
         (base32
          "0s43s1bzbg3gwsjgm7fpyksd1339f0m26dlw2famxwyzgvm0a80k"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
+    (inputs (list ghc-quickcheck))
     (home-page
      "https://github.com/bos/quickcheck-unicode")
     (synopsis "Generator functions Unicode-related tests")
@@ -477,8 +466,7 @@ testing Unicode-related software.")
          "08k4v7pkgjf30pv5j2dfv1gqv6hclxlniyq2sps8zq4zswcr2xzv"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hunit" ,ghc-hunit)))
+     (list ghc-quickcheck ghc-hunit))
     (home-page
      "https://github.com/hspec/quickcheck-io#readme")
     (synopsis "Use HUnit assertions as QuickCheck properties")
@@ -489,8 +477,7 @@ use HUnit assertions as QuickCheck properties.")
 (define-public ghc-quickcheck
   (package
     (name "ghc-quickcheck")
-    (version "2.13.2")
-    (outputs '("out" "static" "doc"))
+    (version "2.14.2")
     (source
      (origin
        (method url-fetch)
@@ -500,11 +487,10 @@ use HUnit assertions as QuickCheck properties.")
              ".tar.gz"))
        (sha256
         (base32
-         "0426j43af8v3qmdjjqxivazsvr3a2brac8yw09vpgpjkb2m0nmkv"))))
+         "1wrnrm9sq4s0bly0q58y80g4153q45iglqa34xsi2q3bd62nqyyq"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-random" ,ghc-random)
-       ("ghc-splitmix" ,ghc-splitmix-bootstrap)))
+     (list ghc-random ghc-splitmix-bootstrap))
     (home-page "https://github.com/nick8325/quickcheck")
     (synopsis "Automatic testing of Haskell programs")
     (description
@@ -529,11 +515,9 @@ expressed in Haskell, using combinators defined in the QuickCheck library.")
         (base32 "1kyam4cy7qmnizjwjm8jamq43w7f0fs6ljfplwj0ib6wi2kjh0wv"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)))
+     (list ghc-hspec))
     (inputs
-     `(("ghc-ieee754" ,ghc-ieee754)
-       ("ghc-pretty-show" ,ghc-pretty-show)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-ieee754 ghc-pretty-show ghc-quickcheck))
     (home-page "https://github.com/s9gf4ult/quickcheck-assertions")
     (synopsis "HUnit-like assertions for QuickCheck")
     (description
@@ -558,10 +542,9 @@ HUnit.")
     (arguments
      `(#:tests? #f  ; FIXME: Tests do not build.
        #:cabal-revision
-       ("5" "18g92ajx3ghznd6k3ihj22ln29n676ailzwx3k0f1kj3bmpilnh6")))
+       ("6" "0wbq9wiaag69nsqxwijzhs5y1hb9kbpkp1x65dvx158cxp8i9w9r")))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-hunit ghc-quickcheck))
     (inputs
      `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
        ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
@@ -600,9 +583,7 @@ reporting and test statistics output.")
      `(#:cabal-revision
        ("3" "0i9mlalv7cl1iq43ld5myrnpszq5rxmd79hk495dcb08rglhgl3z")))
     (inputs
-     `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-test-framework" ,ghc-test-framework)))
+     (list ghc-extensible-exceptions ghc-hunit ghc-test-framework))
     (home-page "https://batterseapower.github.io/test-framework/")
     (synopsis "HUnit support for test-framework")
     (description
@@ -625,12 +606,10 @@ reporting and test statistics output.")
     (build-system haskell-build-system)
     (arguments
      `(#:cabal-revision
-       ("1" "1vmpk70h1594h9s216d3ngkb399fpny1d3sh4gg0vrc75p4as68d")))
+       ("3" "0mglqfimla4vvv80mg08aj76zf4993wmngqlirh05h8i9nmgv6lh")))
     (inputs
-     `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-random" ,ghc-random)
-       ("ghc-test-framework" ,ghc-test-framework)))
+     (list ghc-extensible-exceptions ghc-quickcheck ghc-random
+           ghc-test-framework))
     (home-page "https://batterseapower.github.io/test-framework/")
     (synopsis "QuickCheck2 support for test-framework")
     (description
@@ -652,8 +631,7 @@ package.")
         (base32 "1xpgpk1gp4w7w46b4rhj80fa0bcyz8asj2dcjb5x1c37b7rw90b0"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-smallcheck" ,ghc-smallcheck)
-       ("ghc-test-framework" ,ghc-test-framework)))
+     (list ghc-smallcheck ghc-test-framework))
     (home-page "https://github.com/Bodigrim/smallcheck")
     (synopsis "SmallCheck support for test-framework")
     (description
@@ -676,10 +654,8 @@ test-framework.  New projects should use ghc-tasty-smallcheck instead.")
          "12lw7yj02jb9s0i7rb98jjam43j2h0gzmnbj9zi933fx7sg0sy4b"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-language-haskell-extract" ,ghc-language-haskell-extract)
-       ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
-       ("ghc-regex-posix" ,ghc-regex-posix)))
+     (list ghc-test-framework ghc-language-haskell-extract
+           ghc-haskell-src-exts ghc-regex-posix))
     (home-page "https://github.com/finnsson/test-generator")
     (synopsis "Auto generate the HUnit- and Quickcheck-bulk-code
 using Template Haskell")
@@ -698,7 +674,7 @@ using Template Haskell")
 (define-public ghc-hunit
   (package
     (name "ghc-hunit")
-    (version "1.6.0.0")
+    (version "1.6.2.0")
     (outputs '("out" "static" "doc"))
     (source
      (origin
@@ -707,12 +683,12 @@ using Template Haskell")
                            "HUnit-" version ".tar.gz"))
        (sha256
         (base32
-         "1pnhwqq5v8h48gbp3ibv3skfj25mf4zs5svxcavq93p9cswycj3l"))))
+         "1as4sw5y39c3zrmr6sb8zbw74c9gdn4401y0dx45ih7zf6457dxh"))))
     (build-system haskell-build-system)
     (inputs
      ;; We cannot use ghc-call-stack there, because it depends on
      ;; ghc-nanospec, which depends on ghc-hunit.
-     `(("ghc-call-stack" ,ghc-call-stack-boot)))
+     (list ghc-call-stack-boot))
     (home-page "http://hunit.sourceforge.net/")
     (synopsis "Unit testing framework for Haskell")
     (description
@@ -723,7 +699,7 @@ JUnit tool for Java.")
 (define-public hspec-discover
   (package
     (name "hspec-discover")
-    (version "2.7.1")
+    (version "2.7.10")
     (source
      (origin
        (method url-fetch)
@@ -732,11 +708,10 @@ JUnit tool for Java.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "0r47fm94wa6qrhp8cc1zzkjrxc32rnagfn9m9ga4dm6p6ydw4c8b"))))
+         "13yzvd3b679skvs1insk4s0wc4zvmz6hs38kc8q0j6vzqq06smqa"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hspec-meta" ,ghc-hspec-meta)))
+     (list ghc-quickcheck ghc-hspec-meta))
     (home-page "https://hspec.github.io/")
     (synopsis "Automatically discover and run Hspec tests")
     (description "hspec-discover is a tool which automatically discovers and
@@ -746,7 +721,7 @@ runs Hspec tests.")
 (define-public ghc-hspec-core
   (package
     (name "ghc-hspec-core")
-    (version "2.7.1")
+    (version "2.7.10")
     (source
      (origin
        (method url-fetch)
@@ -754,19 +729,19 @@ runs Hspec tests.")
                            "hspec-core-" version ".tar.gz"))
        (sha256
         (base32
-         "08vk8588lap00hsln8zl64dazbb28lzk4b4h5vnm7xvhg7r21k1c"))))
+         "12k9yp5gznrda449ir60d5wv3xl7nnyffkb5mhfc0svw9f8lxlv1"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
     (inputs
-     `(("ghc-setenv" ,ghc-setenv)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-clock" ,ghc-clock)
-       ("ghc-quickcheck-io" ,ghc-quickcheck-io)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hspec-expectations" ,ghc-hspec-expectations)
-       ("ghc-silently" ,ghc-silently)
-       ("ghc-tf-random" ,ghc-tf-random)))
+     (list ghc-setenv
+           ghc-ansi-terminal
+           ghc-clock
+           ghc-quickcheck-io
+           ghc-hunit
+           ghc-quickcheck
+           ghc-hspec-expectations
+           ghc-silently
+           ghc-tf-random))
     (home-page "https://hspec.github.io/")
     (synopsis "Testing framework for Haskell")
     (description "This library exposes internal types and functions that can
@@ -776,7 +751,7 @@ be used to extend Hspec's functionality.")
 (define-public ghc-hspec-meta
   (package
     (name "ghc-hspec-meta")
-    (version "2.6.0")
+    (version "2.7.8")
     (source
      (origin
        (method url-fetch)
@@ -784,17 +759,17 @@ be used to extend Hspec's functionality.")
                            "hspec-meta-" version ".tar.gz"))
        (sha256
         (base32
-         "1n1a4633wfivylglji8920f67mx7qz8j4q58n8p7dxk6yg4h3mz6"))))
+         "0sfj0n2hy1r8ifysgbcmfdygcd7vyzr13ldkcp0l2ml337f8j0si"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-clock" ,ghc-clock)
-       ("ghc-hspec-expectations" ,ghc-hspec-expectations)
-       ("ghc-setenv" ,ghc-setenv)
-       ("ghc-random" ,ghc-random)
-       ("ghc-quickcheck-io" ,ghc-quickcheck-io)))
+     (list ghc-quickcheck
+           ghc-hunit
+           ghc-ansi-terminal
+           ghc-clock
+           ghc-hspec-expectations
+           ghc-setenv
+           ghc-random
+           ghc-quickcheck-io))
     (home-page "https://hspec.github.io/")
     (synopsis "Version of Hspec to test Hspec itself")
     (description "This library provides a stable version of Hspec which is
@@ -804,7 +779,7 @@ used to test the in-development version of Hspec.")
 (define-public ghc-hspec
   (package
     (name "ghc-hspec")
-    (version "2.7.1")
+    (version "2.7.10")
     (source
      (origin
        (method url-fetch)
@@ -812,17 +787,17 @@ used to test the in-development version of Hspec.")
                            "hspec-" version ".tar.gz"))
        (sha256
         (base32
-         "1x8rcr7j1azcaw0fg1xzp8j0gr4ias36z09aj24i4xp8pnyfp341"))))
+         "0z0lwrmrqkglr78n6k2c36n4h68142bh785ys0x4jaibjshvs6rw"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
     (inputs
-     `(("ghc-hspec-core" ,ghc-hspec-core)
-       ("hspec-discover" ,hspec-discover)
-       ("ghc-hspec-expectations" ,ghc-hspec-expectations)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-stringbuilder" ,ghc-stringbuilder)
-       ("ghc-hspec-meta" ,ghc-hspec-meta)))
+     (list ghc-hspec-core
+           hspec-discover
+           ghc-hspec-expectations
+           ghc-quickcheck
+           ghc-hunit
+           ghc-stringbuilder
+           ghc-hspec-meta))
     (home-page "https://hspec.github.io/")
     (synopsis "Testing Framework for Haskell")
     (description "This library provides the Hspec testing framework for
@@ -843,12 +818,9 @@ Haskell, inspired by the Ruby library RSpec.")
                 "0hhzxaa3fxz5mk5qcsrnfr98a7bn3szx2ydgr0x9mbqmm1jg06rc"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hspec-core" ,ghc-hspec-core)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-hspec-core ghc-hunit ghc-hspec ghc-quickcheck))
     (native-inputs
-     `(("hspec-discover" ,hspec-discover)))
+     (list hspec-discover))
     (home-page "https://hspec.github.io/")
     (synopsis "Contributed functionality for Hspec")
     (description
@@ -871,7 +843,7 @@ Haskell, inspired by the Ruby library RSpec.")
     (build-system haskell-build-system)
     ;; Tests depend on ghc-nanospec.
     (arguments '(#:tests? #f))
-    (inputs `(("ghc-hunit" ,ghc-hunit)))
+    (inputs (list ghc-hunit))
     (home-page "https://github.com/sol/hspec-expectations")
     (synopsis "Catchy combinators for HUnit")
     (description "This library provides catchy combinators for HUnit, see
@@ -893,8 +865,7 @@ Haskell, inspired by the Ruby library RSpec.")
          "1rcmhl9bhyfvanalnf1r86wkx6rq6wdvagnw1h011jcnnb1cq56g"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-silently" ,ghc-silently)))
+     (list ghc-hspec ghc-silently))
     (home-page "https://github.com/hspec/nanospec#readme")
     (synopsis "Lightweight implementation of a subset of Hspec's API")
     (description
@@ -916,14 +887,14 @@ minimal dependencies.")
         (base32
          "19wqignlq90qwpam01hnmmrxaxh5lkax9l1l6rlbi4a07nvp1dnz"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-quickcheck" ,ghc-quickcheck)
-              ("ghc-hunit" ,ghc-hunit)
-              ("ghc-test-framework" ,ghc-test-framework)
-              ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-              ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-              ("ghc-byteable" ,ghc-byteable)
-              ("ghc-securemem" ,ghc-securemem)
-              ("ghc-crypto-cipher-types" ,ghc-crypto-cipher-types)))
+    (inputs (list ghc-quickcheck
+                  ghc-hunit
+                  ghc-test-framework
+                  ghc-test-framework-quickcheck2
+                  ghc-test-framework-hunit
+                  ghc-byteable
+                  ghc-securemem
+                  ghc-crypto-cipher-types))
     (home-page "https://github.com/vincenthz/hs-crypto-cipher")
     (synopsis "Generic cryptography cipher tests for Haskell")
     (description " This Haskell package contains generic tests for
@@ -934,36 +905,33 @@ implementations of cryptographic ciphers.")
 (define-public ghc-hedgehog
   (package
     (name "ghc-hedgehog")
-    (version "1.0.1")
+    (version "1.0.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/hedgehog/hedgehog-"
+             "https://hackage.haskell.org/package/hedgehog/hedgehog-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "1qc7hkqbnsk3f5r26wc35r3qiy941nmcxhfqgcq9027kw4gs0bi0"))))
+         "1qsqs8lmxa3wmw228cwi98vvvh9hqbc9d43i1sy2c9igw9xlhfi6"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-async" ,ghc-async)
-       ("ghc-concurrent-output" ,ghc-concurrent-output)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-fail" ,ghc-fail)
-       ("ghc-lifted-async" ,ghc-lifted-async)
-       ("ghc-mmorph" ,ghc-mmorph)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-pretty-show" ,ghc-pretty-show)
-       ("ghc-primitive" ,ghc-primitive)
-       ("ghc-random" ,ghc-random)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-th-lift" ,ghc-th-lift)
-       ("ghc-transformers-base" ,ghc-transformers-base)
-       ("ghc-wl-pprint-annotated"
-        ,ghc-wl-pprint-annotated)))
+     (list ghc-ansi-terminal
+           ghc-async
+           ghc-concurrent-output
+           ghc-erf
+           ;("ghc-exceptions" ,ghc-exceptions)
+           ghc-lifted-async
+           ghc-mmorph
+           ghc-monad-control
+           ghc-pretty-show
+           ghc-primitive
+           ghc-random
+           ghc-resourcet
+           ghc-transformers-base
+           ghc-wl-pprint-annotated))
     (home-page "https://hedgehog.qa")
     (synopsis "Property-based testing in the spirt of QuickCheck")
     (description
@@ -989,6 +957,9 @@ To get started quickly, see the examples:
         (base32
          "03if74imlhhk7m56nci5f1wclniwqdmwl4hl177040j1gnlac9i0"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("2" "05v1awad3d1wvc763xcgvxm4n6n7bs7byc6s14kdbw35zcaddlcb")))
     (home-page "https://github.com/phadej/cabal-doctest")
     (synopsis "Setup.hs helper for running doctests")
     (description
@@ -1034,10 +1005,8 @@ testing frameworks.")
             "1v2qzzpf1s008g7q6q67glf7vbm1pkpq4rc3ii74f4g6vhfx610r"))))
     (build-system haskell-build-system)
     (inputs
-      `(("ghc-quickcheck" ,ghc-quickcheck)
-        ("ghc-size-based" ,ghc-size-based)
-        ("ghc-testing-type-modifiers" ,ghc-testing-type-modifiers)
-        ("ghc-semigroups" ,ghc-semigroups)))
+      (list ghc-quickcheck ghc-size-based ghc-testing-type-modifiers
+            ghc-semigroups))
     (home-page "https://github.com/JonasDuregard/testing-feat")
     (synopsis "Functional Enumeration of Algebraic Types")
     (description "Feat (Functional Enumeration of Algebraic Types)
@@ -1050,7 +1019,7 @@ random testing, and hybrids of the two.")
 (define-public ghc-inspection-testing
   (package
     (name "ghc-inspection-testing")
-    (version "0.4.2.2")
+    (version "0.4.6.0")
     (source
      (origin
        (method url-fetch)
@@ -1059,7 +1028,7 @@ random testing, and hybrids of the two.")
              "inspection-testing-" version ".tar.gz"))
        (sha256
         (base32
-         "1bppz99p6ix6hah8lbr9mapl2zxgmkg9i7h6hk8wq6zf54hwz3yp"))))
+         "0qz1npyycj4bvyly9xmjbnhw569l52h38gx02rk0r7zhapw83aig"))))
     (build-system haskell-build-system)
     (home-page
      "https://github.com/nomeata/inspection-testing")
@@ -1087,28 +1056,147 @@ See the documentation in \"Test.Inspection\" or the project webpage for more
 examples and more information.")
     (license license:expat)))
 
-(define-public ghc-easytest
+(define-public ghc-quickcheck-classes-base
   (package
-    (name "ghc-easytest")
-    (version "0.2.1")
+    (name "ghc-quickcheck-classes-base")
+    (version "0.6.2.0")
     (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/easytest/easytest-"
-             version ".tar.gz"))
-       (sha256
-        (base32
-         "0gdyawzlw6d15yz7ji599xjgfr0g7l1iq11ffr4aw3j6g3dc6m8i"))))
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/quickcheck-classes-base/quickcheck-classes-base-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32 "16c6gq4cqpkwnq1pzkhm6r7mrwk4an50ha5w77bmiia2qkhla6ch"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-async" ,ghc-async)
-       ("ghc-random" ,ghc-random)
-       ("ghc-call-stack" ,ghc-call-stack)))
-    (home-page "https://github.com/joelburget/easytest")
-    (synopsis "Testing library for Haskell")
-    (description "EasyTest is a testing toolkit, meant to replace most uses of
-QuickCheck, SmallCheck, HUnit, and frameworks like Tasty, etc.  Tests can be
-written with ordinary Haskell code, with control flow explicit and under
-programmer control.")
+      (list ghc-quickcheck
+            ghc-contravariant
+            ghc-bifunctors
+            ghc-semigroups
+            ghc-fail
+            ghc-tagged))
+    (home-page "https://github.com/andrewthad/quickcheck-classes#readme")
+    (synopsis "QuickCheck common typeclasses from `base`")
+    (description
+      "This library is a minimal variant of `quickcheck-classes`
+that only provides laws for typeclasses from `base`. The main
+purpose of splitting this out is so that `primitive` can depend
+on `quickcheck-classes-base` in its test suite, avoiding the
+circular dependency that arises if `quickcheck-classes` is used
+instead. . This library provides QuickCheck properties to ensure
+that typeclass instances adhere to the set of laws that they are
+supposed to. There are other libraries that do similar things,
+such as `genvalidity-hspec` and `checkers`. This library differs
+from other solutions by not introducing any new typeclasses that
+the user needs to learn. . /Note:/ on GHC < 8.5, this library
+uses the higher-kinded typeclasses ('Data.Functor.Classes.Show1',
+'Data.Functor.Classes.Eq1', 'Data.Functor.Classes.Ord1', etc.),
+but on GHC >= 8.5, it uses `-XQuantifiedConstraints` to express
+these constraints more cleanly.")
+    (license license:bsd-3)))
+
+(define-public ghc-doctest-lib
+  (package
+    (name "ghc-doctest-lib")
+    (version "0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/doctest-lib/doctest-lib-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32 "1vswam0dhw52dihgnzirh18gqs8rj8h6jd7pl6y1mg2f9f9zmih2"))))
+    (build-system haskell-build-system)
+    (home-page "https://hub.darcs.net/thielema/doctest-lib/")
+    (synopsis "Parts of doctest exposed as library")
+    (description
+      "Parts of doctest exposed as library. For use with the doctest-extract utility.")
     (license license:expat)))
+
+(define-public ghc-doctest-exitcode-stdio
+  (package
+    (name "ghc-doctest-exitcode-stdio")
+    (version "0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/doctest-exitcode-stdio/doctest-exitcode-stdio-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32 "1g3c7yrqq2mwqbmvs8vkx1a3cf0p0x74b7fnn344dsk7bsfpgv0x"))))
+    (build-system haskell-build-system)
+    (inputs
+      (list ghc-doctest-lib ghc-quickcheck ghc-semigroups))
+    (home-page "https://hub.darcs.net/thielema/doctest-exitcode-stdio/")
+    (synopsis "Run Doctests in a @code{Cabal.Test.exitcode-stdio} environment")
+    (description
+      "This package allows on to run Doctests in a Cabal.Test.exitcode-stdio
+environment.")
+    (license license:bsd-3)))
+
+(define-public ghc-cabal-doctest
+  (package
+    (name "ghc-cabal-doctest")
+    (version "1.0.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/cabal-doctest/cabal-doctest-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32 "03if74imlhhk7m56nci5f1wclniwqdmwl4hl177040j1gnlac9i0"))))
+    (build-system haskell-build-system)
+    (arguments
+      `(#:cabal-revision
+        ("2" "05v1awad3d1wvc763xcgvxm4n6n7bs7byc6s14kdbw35zcaddlcb")))
+    (home-page "https://github.com/phadej/cabal-doctest")
+    (synopsis "@file{Setup.hs} helper for Doctests running")
+    (description
+      "This package provides helpers for running Doctests in @file{Setup.hs}.")
+    (license license:bsd-3)))
+
+(define-public ghc-tasty-silver
+  (package
+    (name "ghc-tasty-silver")
+    (version "3.2.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/tasty-silver/tasty-silver-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32 "0nvh2k8iqqkanmp7lpwd3asimyarzisly8wavbdahcxryn0j4xb7"))))
+    (build-system haskell-build-system)
+    (inputs
+      (list ghc-ansi-terminal
+            ghc-async
+            ghc-optparse-applicative
+            ghc-process-extras
+            ghc-regex-tdfa
+            ghc-semigroups
+            ghc-tagged
+            ghc-tasty
+            ghc-temporary))
+    (native-inputs
+     (list ghc-tasty-hunit ghc-silently))
+    (home-page "https://github.com/phile314/tasty-silver")
+    (synopsis "Fancy test runner, including support for golden tests")
+    (description
+      "This package provides a fancy test runner and support for @dfn{golden
+testing}.  A golden test is an IO action that writes its result to a file.  To
+pass the test, this output file should be identical to the corresponding
+``golden'' file, which contains the correct result for the test.  The test
+runner allows filtering tests using regexes, and to interactively inspect the
+result of golden tests.")
+    (license license:expat)))
+
diff --git a/gnu/packages/haskell-crypto.scm b/gnu/packages/haskell-crypto.scm
index 032c6fb899..422e00035b 100644
--- a/gnu/packages/haskell-crypto.scm
+++ b/gnu/packages/haskell-crypto.scm
@@ -37,7 +37,7 @@
 (define-public ghc-asn1-types
   (package
     (name "ghc-asn1-types")
-    (version "0.3.3")
+    (version "0.3.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -45,11 +45,10 @@
                                   version ".tar.gz"))
               (sha256
                (base32
-                "162lacdl9jr42pdhaj9hxqlba6hjxm6g866anna74q6v3cvw5ssp"))))
+                "1a119qxhxhr0yn37r26dkydm6g5kykdkx98ghb59i4ipa6i95vkq"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-memory" ,ghc-memory)
-       ("ghc-hourglass" ,ghc-hourglass)))
+     (list ghc-memory ghc-hourglass))
     (home-page "https://github.com/vincenthz/hs-asn1-types")
     (synopsis "ASN.1 types for Haskell")
     (description
@@ -71,11 +70,9 @@ format.")
                 "02nsr30h5yic1mk7znf0q4z3n560ip017n60hg7ya25rsfmxxy6r"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hourglass" ,ghc-hourglass)
-       ("ghc-asn1-types" ,ghc-asn1-types)))
+     (list ghc-hourglass ghc-asn1-types))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+     (list ghc-tasty ghc-tasty-quickcheck))
     (home-page "https://github.com/vincenthz/hs-asn1")
     (synopsis "ASN1 data reader and writer in RAW, BER and DER forms")
     (description
@@ -97,8 +94,7 @@ supports for high level forms of ASN1 (BER, and DER).")
                 "17pk8y3nwv9b9i5j15qlmwi7fmq9ab2z4kfpjk2rvcrh9lsf27wg"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-asn1-types" ,ghc-asn1-types)
-       ("ghc-asn1-encoding" ,ghc-asn1-encoding)))
+     (list ghc-asn1-types ghc-asn1-encoding))
     (home-page "https://github.com/vincenthz/hs-asn1")
     (synopsis "Simple monadic parser for ASN1 stream types")
     (description
@@ -120,9 +116,7 @@ when ASN1 pattern matching is not convenient.")
         (base32
          "19bsmkqkpnvh01b77pmyarx00fic15j4hvg4pzscrj4prskrx2i9"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-cereal" ,ghc-cereal)
-              ("ghc-tagged" ,ghc-tagged)
-              ("ghc-entropy" ,ghc-entropy)))
+    (inputs (list ghc-cereal ghc-tagged ghc-entropy))
     (home-page "https://github.com/TomMD/crypto-api")
     (synopsis "Provides generic interface for cryptographic operations
 for Haskell")
@@ -152,13 +146,13 @@ algorithm (ex: padding) is within scope of this package.")
          "0w3j43jdrlj28jryp18hc6q84nkl2yf4vs1hhgrsk7gb9kfyqjpl"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
-    (inputs `(("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-              ("ghc-crypto-api" ,ghc-crypto-api)
-              ("ghc-cereal" ,ghc-cereal)
-              ("ghc-test-framework" ,ghc-test-framework)
-              ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-              ("ghc-hunit" ,ghc-hunit)
-              ("ghc-quickcheck" ,ghc-quickcheck)))
+    (inputs (list ghc-test-framework-quickcheck2
+                  ghc-crypto-api
+                  ghc-cereal
+                  ghc-test-framework
+                  ghc-test-framework-hunit
+                  ghc-hunit
+                  ghc-quickcheck))
     (home-page "https://github.com/TomMD/crypto-api-tests")
     (synopsis "Test framework and KATs for cryptographic operations for Haskell")
     (description "This Haskell package provides a test framework for hash and
@@ -181,14 +175,14 @@ for common cryptographic algorithms are included.")
          "1yr2iyb779znj79j3fq4ky8l1y8a600a2x1fx9p5pmpwq5zq93y2"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-byteable" ,ghc-byteable)
-       ("ghc-cryptonite" ,ghc-cryptonite)
-       ("ghc-memory" ,ghc-memory)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-byteable
+           ghc-cryptonite
+           ghc-memory
+           ghc-hunit
+           ghc-quickcheck
+           ghc-tasty
+           ghc-tasty-quickcheck
+           ghc-tasty-hunit))
     (home-page "https://github.com/vincenthz/hs-cryptohash")
     (synopsis "Collection of cryptographic hashes in Haskell")
     (description
@@ -201,7 +195,7 @@ that hides the C implementation.")
 (define-public ghc-cryptohash-md5
   (package
     (name "ghc-cryptohash-md5")
-    (version "0.11.100.1")
+    (version "0.11.101.0")
     (source
      (origin
        (method url-fetch)
@@ -210,17 +204,10 @@ that hides the C implementation.")
                            "cryptohash-md5-" version ".tar.gz"))
        (sha256
         (base32
-         "1y8q7s2bn4gdknw1wjikdnar2b5pgz3nv3220lxrlgpsf23x82vi"))))
+         "018g13hkmq5782i24b4518hcd926fl6x6fh5hd7b9wlxwc5dn21v"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:cabal-revision
-       ("4" "0gzaibjkipijwj9m9l6wrhfk5s3kdvfbhdl7cl1373cjfs41v0m3")
-       #:tests? #f)) ; tests require old version of ghc-hunit (0.9)
-    (native-inputs `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
-                     ("ghc-puremd5" ,ghc-puremd5)
-                     ("ghc-tasty" ,ghc-tasty)
-                     ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-                     ("ghc-hunit" ,ghc-hunit)))
+    (native-inputs (list ghc-base16-bytestring ghc-puremd5 ghc-tasty
+                         ghc-tasty-hunit ghc-tasty-quickcheck))
     (home-page "https://github.com/hvr/cryptohash-md5")
     (synopsis "MD5 implementation for Haskell")
     (description "This Haskell package provides implementation of MD5.")
@@ -242,13 +229,10 @@ that hides the C implementation.")
     (build-system haskell-build-system)
     (arguments
      `(#:cabal-revision
-       ("4" "0qb2wasfc4dpf6f9ahvhlv8njb3p3p9iwblg4032ssi95cg85718")
+       ("6" "10rpxrmqgwihmplczglwxf5q3l13z9j3kvi065z884y4dymmnkgc")
        #:tests? #f)) ; tests require old version of ghc-hunit (0.9)
-    (native-inputs `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
-                     ("ghc-sha" ,ghc-sha)
-                     ("ghc-tasty" ,ghc-tasty)
-                     ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-                     ("ghc-hunit" ,ghc-hunit)))
+    (native-inputs (list ghc-base16-bytestring ghc-sha ghc-tasty
+                         ghc-tasty-quickcheck ghc-hunit))
     (home-page "https://github.com/hvr/cryptohash-sha1")
     (synopsis "SHA-1 implementation for Haskell")
     (description "This Haskell package provides an incremental and one-pass,
@@ -263,7 +247,7 @@ the C implementation.")
 (define-public ghc-cryptohash-sha256
   (package
     (name "ghc-cryptohash-sha256")
-    (version "0.11.101.0")
+    (version "0.11.102.1")
     (source
      (origin
        (method url-fetch)
@@ -272,19 +256,15 @@ the C implementation.")
                            "cryptohash-sha256-" version ".tar.gz"))
        (sha256
         (base32
-         "1p85vajcgw9hmq8zsz9krzx0vxh7aggwbg5w9ws8w97avcsn8xaj"))))
+         "1xkb7iqplbw4fy1122p79xf1zcb7k44rl0wmfj1q06l7cdqxr9vk"))))
     (build-system haskell-build-system)
     (arguments
      `(#:cabal-revision
-       ("3" "1arhz4y792kx439s2zv9x291gvvl2zxcfx9sq0nxsjlz7c3hpyp1")
-       #:tests? #f)) ; tests require old version of ghc-hunit (0.9)
-    (inputs
-     `(("ghc-base16-bytestring" ,ghc-base16-bytestring)))
+       ("1" "0v5ppc7r2lxbk49h1kwj4b5vyb1dw2fnppykvp5m9rm0p3vhlykr")
+       #:tests? #f)) ; TODO: tasty ==1.1.*
     (native-inputs
-     `(("ghc-sha" ,ghc-sha)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-hunit" ,ghc-hunit)))
+     (list ghc-base16-bytestring ghc-sha ghc-tasty ghc-tasty-hunit
+           ghc-tasty-quickcheck))
     (home-page "https://github.com/hvr/cryptohash-sha1")
     (synopsis "SHA-256 implementation for Haskell")
     (description "This Haskell package provides an incremental and
@@ -299,7 +279,7 @@ the C implementation.")
 (define-public ghc-cryptonite
   (package
     (name "ghc-cryptonite")
-    (version "0.25")
+    (version "0.29")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -307,21 +287,16 @@ the C implementation.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "131wbbdr5yavs5k1ah9sz6fqx1ffyvaxf66pwjzsfc47mwc1mgl9"))))
+                "13xhp3hshb8x06bw37kp16c9jpjmgfn06nkj9drz745fv8f04fnq"))))
     (build-system haskell-build-system)
     ;; FIXME: tests are broken.
     ;; See https://github.com/haskell-crypto/cryptonite/issues/260
     (arguments '(#:tests? #f))
     (outputs '("out" "static" "doc"))
     (inputs
-     `(("ghc-basement" ,ghc-basement)
-       ("ghc-memory" ,ghc-memory)
-       ("ghc-byteable" ,ghc-byteable)))
+     (list ghc-basement ghc-memory ghc-byteable))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-kat" ,ghc-tasty-kat)))
+     (list ghc-tasty ghc-tasty-quickcheck ghc-tasty-hunit ghc-tasty-kat))
     (home-page "https://github.com/haskell-crypto/cryptonite")
     (synopsis "Cryptography primitives")
     (description
@@ -334,7 +309,7 @@ generators, and more.")
 (define-public ghc-digest
   (package
     (name "ghc-digest")
-    (version "0.0.1.2")
+    (version "0.0.1.3")
     (source
      (origin
        (method url-fetch)
@@ -344,12 +319,12 @@ generators, and more.")
              ".tar.gz"))
        (sha256
         (base32
-         "04gy2zp8yzvv7j9bdfvmfzcz3sqyqa6rwslqcn4vyair2vmif5v4"))))
+         "1l5383l5pvp018rj3vabrppnzcqrr2g0dvgvmsrbjdn02wzab5jm"))))
     (build-system haskell-build-system)
     (arguments
      `(#:extra-directories ("zlib")))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page
      "https://hackage.haskell.org/package/digest")
     (synopsis
@@ -363,7 +338,7 @@ are implemented as FFI bindings to efficient code from zlib.")
 (define-public ghc-entropy
   (package
     (name "ghc-entropy")
-    (version "0.4.1.5")
+    (version "0.4.1.6")
     (source
      (origin
        (method url-fetch)
@@ -371,7 +346,7 @@ are implemented as FFI bindings to efficient code from zlib.")
                            "entropy-" version "/"
                            "entropy-" version ".tar.gz"))
        (sha256
-        (base32 "0szf8hi1pi8g0kxnkcymh65gk1b0niyl1nnkckzdqyar87qal0jm"))))
+        (base32 "0qmzz0zgad13zl0kjrxz6cxg8ckn2w8saas2a2j72vbafpzmkixd"))))
     (build-system haskell-build-system)
     (home-page "https://github.com/TomMD/entropy")
     (synopsis "Provides platform independent entropy source for Haskell")
@@ -392,14 +367,10 @@ to obtain cryptographically strong entropy.")
                 "1m7qjsxrd8m88cvkqmr8kscril500j2a9y0iynvksjyjkhdlq33p"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-basement" ,ghc-basement)
-       ("ghc-memory" ,ghc-memory)))
+     (list ghc-basement ghc-memory))
     (native-inputs
-     `(("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-test-framework ghc-test-framework-quickcheck2
+           ghc-test-framework-hunit ghc-hunit ghc-quickcheck))
     (home-page "https://github.com/vincenthz/hs-pem")
     (synopsis "Privacy Enhanced Mail (PEM) format reader and writer")
     (description
@@ -410,7 +381,7 @@ Mail} (PEM) format.")
 (define-public ghc-puremd5
   (package
     (name "ghc-puremd5")
-    (version "2.1.3")
+    (version "2.1.4")
     (source
      (origin
        (method url-fetch)
@@ -419,17 +390,12 @@ Mail} (PEM) format.")
                            "pureMD5-" version ".tar.gz"))
        (sha256
         (base32
-         "0zdilz41cla2ck7mcw1a9702gyg2abq94mqahr4vci9sbs53bwxy"))))
+         "0qwkvxwi9wh6knn69rg2hvc8ngmv1if77kmpcnp0xqr0l30fwavq"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-cereal" ,ghc-cereal)
-              ("ghc-crypto-api" ,ghc-crypto-api)
-              ("ghc-tagged" ,ghc-tagged)))
-    (native-inputs `(("ghc-crypto-api-tests" ,ghc-crypto-api-tests)
-                     ("ghc-quickcheck" ,ghc-quickcheck)
-                     ("ghc-test-framework" ,ghc-test-framework)
-                     ("ghc-test-framework-quickcheck2"
-                      ,ghc-test-framework-quickcheck2)
-                     ("ghc-pretty-hex" ,ghc-pretty-hex)))
+    (inputs (list ghc-cereal ghc-crypto-api ghc-tagged))
+    (native-inputs (list ghc-crypto-api-tests ghc-quickcheck
+                         ghc-test-framework ghc-test-framework-quickcheck2
+                         ghc-pretty-hex))
     (home-page "https://github.com/TomMD/pureMD5")
     (synopsis "Haskell implementation of the MD5 hash algorithm")
     (description "This package provides a Haskell-only implementation of
@@ -450,9 +416,8 @@ interface.")
                 "0i4b2wjisivdy72synal711ywhx05mfqfba5n65rk8qidggm1nbb"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-quickcheck ghc-test-framework
+           ghc-test-framework-quickcheck2))
     (home-page "https://hackage.haskell.org/package/SHA")
     (synopsis "SHA suite of message digest functions")
     (description
@@ -477,16 +442,15 @@ libraries, like OpenSSL.")
                 "1j67c35g8334jx7x32hh6awhr43dplp0qwal5gnlkmx09axzrc5i"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-memory" ,ghc-memory)
-       ("ghc-hourglass" ,ghc-hourglass)
-       ("ghc-pem" ,ghc-pem)
-       ("ghc-asn1-types" ,ghc-asn1-types)
-       ("ghc-asn1-encoding" ,ghc-asn1-encoding)
-       ("ghc-asn1-parse" ,ghc-asn1-parse)
-       ("ghc-cryptonite" ,ghc-cryptonite)))
+     (list ghc-memory
+           ghc-hourglass
+           ghc-pem
+           ghc-asn1-types
+           ghc-asn1-encoding
+           ghc-asn1-parse
+           ghc-cryptonite))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+     (list ghc-tasty ghc-tasty-quickcheck))
     (home-page "https://github.com/vincenthz/hs-certificate")
     (synopsis "X509 reader and writer")
     (description
@@ -507,14 +471,10 @@ libraries, like OpenSSL.")
                 "1y8yyr1i95jkllg8k0z54k5v4vachp848clc07m33xpxidn3b1lp"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-pem" ,ghc-pem)
-       ("ghc-asn1-types" ,ghc-asn1-types)
-       ("ghc-asn1-encoding" ,ghc-asn1-encoding)
-       ("ghc-cryptonite" ,ghc-cryptonite)
-       ("ghc-x509" ,ghc-x509)))
+     (list ghc-pem ghc-asn1-types ghc-asn1-encoding ghc-cryptonite
+           ghc-x509))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty ghc-tasty-hunit))
     (home-page "https://github.com/vincenthz/hs-certificate")
     (synopsis "X.509 collection accessing and storing methods")
     (description
@@ -536,19 +496,18 @@ collections, certificates, revocation lists, and exception lists.")
                 "16yihzljql3z8w5rgdl95fv3hgk7yd86kbl9b3glllsark5j2hzr"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-memory" ,ghc-memory)
-       ("ghc-byteable" ,ghc-byteable)
-       ("ghc-hourglass" ,ghc-hourglass)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-pem" ,ghc-pem)
-       ("ghc-asn1-types" ,ghc-asn1-types)
-       ("ghc-asn1-encoding" ,ghc-asn1-encoding)
-       ("ghc-x509" ,ghc-x509)
-       ("ghc-x509-store" ,ghc-x509-store)
-       ("ghc-cryptonite" ,ghc-cryptonite)))
+     (list ghc-memory
+           ghc-byteable
+           ghc-hourglass
+           ghc-data-default-class
+           ghc-pem
+           ghc-asn1-types
+           ghc-asn1-encoding
+           ghc-x509
+           ghc-x509-store
+           ghc-cryptonite))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty ghc-tasty-hunit))
     (home-page "https://github.com/vincenthz/hs-certificate")
     (synopsis "X.509 certificate and revocation list validation")
     (description
@@ -570,9 +529,7 @@ list validation.")
                 "06a4m9c7vlr9nhp9gmqbb46arf0yj1dkdm4nip03hzy67spdmp20"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-pem" ,ghc-pem)
-       ("ghc-x509" ,ghc-x509)
-       ("ghc-x509-store" ,ghc-x509-store)))
+     (list ghc-pem ghc-x509 ghc-x509-store))
     (home-page "https://github.com/vincenthz/hs-certificate")
     (synopsis "Handle system X.509 accessors and storage")
     (description
@@ -594,8 +551,7 @@ for X.509 certificates.")
         (base32
          "03qa1i1kj07pfrxsi7fiaqnnd0vi94jd4jfswbmnm4gp1nvzcwr0"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-byteable" ,ghc-byteable)
-              ("ghc-securemem" ,ghc-securemem)))
+    (inputs (list ghc-byteable ghc-securemem))
     (home-page "https://github.com/vincenthz/hs-crypto-cipher")
     (synopsis "Generic cryptography cipher types for Haskell")
     (description "This Haskell package provides basic typeclasses and types
@@ -616,13 +572,10 @@ for symmetric ciphers.")
         (base32
          "05ahz6kjq0fl1w66gpiqy0vndli5yx1pbsbw9ni3viwqas4p3cfk"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-byteable" ,ghc-byteable)
-              ("ghc-securemem" ,ghc-securemem)
-              ("ghc-crypto-cipher-types" ,ghc-crypto-cipher-types)))
-    (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)
-                     ("ghc-test-framework" ,ghc-test-framework)
-                     ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-                     ("ghc-crypto-cipher-tests" ,ghc-crypto-cipher-tests)))
+    (inputs (list ghc-byteable ghc-securemem ghc-crypto-cipher-types))
+    (native-inputs (list ghc-quickcheck ghc-test-framework
+                         ghc-test-framework-quickcheck2
+                         ghc-crypto-cipher-tests))
     (home-page "https://github.com/vincenthz/hs-cipher-aes")
     (synopsis "AES cipher implementation with advanced mode of operations for
 Haskell")
@@ -656,8 +609,7 @@ AES-NI available, or you'll need to use a different implementation.")
         (base32
          "0139kbbb2h7vshf68y3fvjda29lhj7jjwl4vq78w4y8k8hc7l2hp"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-securemem" ,ghc-securemem)
-              ("ghc-vector" ,ghc-vector)))
+    (inputs (list ghc-securemem ghc-vector))
     (home-page "https://github.com/vincenthz/hs-crypto-random")
     (synopsis "Simple cryptographic random related types for Haskell")
     (description "Simple cryptographic random related types: a safe
@@ -678,9 +630,7 @@ abstraction for CPRNGs.")
         (base32
          "1wr15kbmk1g3l8a75n0iwbzqg24ixv78slwzwb2q6rlcvq0jlnb4"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-byteable" ,ghc-byteable)
-              ("ghc-crypto-random" ,ghc-crypto-random)
-              ("ghc-cipher-aes" ,ghc-cipher-aes)))
+    (inputs (list ghc-byteable ghc-crypto-random ghc-cipher-aes))
     (home-page "https://github.com/vincenthz/hs-cprng-aes")
     (synopsis "Crypto Pseudo Random Number Generator using AES in counter mode
 in Haskell")
@@ -726,7 +676,7 @@ percent.
     (build-system haskell-build-system)
     (arguments
      `(#:cabal-revision
-       ("2" "1cq6h3jqkb1kvd9fjfhsllg5gq78sdiyf2gy9862xhlbv6wil19f")
+       ("3" "1yidh86ymzwmp2b449pwim6vvfcs1qgkkncbixw1zmb7wj6v167v")
        ;; We omit these test suites because they require old versions of
        ;; packages and packages we do not have.
        #:configure-flags
@@ -743,32 +693,30 @@ guidelines.")
 (define-public ghc-tls
   (package
     (name "ghc-tls")
-    (version "1.4.1")
+    (version "1.5.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "tls/tls-" version ".tar.gz"))
               (sha256
                (base32
-                "1y083724mym28n6xfaz7pcc7zqxdhjpaxpbvzxfbs25qq2px3smv"))))
+                "0j1rxxq5lzs584nk19610mk7mmsqqkgfxw2qj74ibb1zsk7baj4a"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-cereal" ,ghc-cereal)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-memory" ,ghc-memory)
-       ("ghc-cryptonite" ,ghc-cryptonite)
-       ("ghc-asn1-types" ,ghc-asn1-types)
-       ("ghc-asn1-encoding" ,ghc-asn1-encoding)
-       ("ghc-x509" ,ghc-x509)
-       ("ghc-x509-store" ,ghc-x509-store)
-       ("ghc-x509-validation" ,ghc-x509-validation)
-       ("ghc-async" ,ghc-async)
-       ("ghc-network" ,ghc-network)
-       ("ghc-hourglass" ,ghc-hourglass)))
+     (list ghc-cereal
+           ghc-data-default-class
+           ghc-memory
+           ghc-cryptonite
+           ghc-asn1-types
+           ghc-asn1-encoding
+           ghc-x509
+           ghc-x509-store
+           ghc-x509-validation
+           ghc-async
+           ghc-network
+           ghc-hourglass))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-tasty ghc-tasty-quickcheck ghc-quickcheck))
     (home-page "https://github.com/vincenthz/hs-tls")
     (synopsis
      "TLS/SSL protocol native implementation (Server and Client)")
@@ -785,7 +733,7 @@ extensions.")
 (define-public ghc-hsopenssl
   (package
     (name "ghc-hsopenssl")
-    (version "0.11.4.17")
+    (version "0.11.7.2")
     (source
      (origin
        (method url-fetch)
@@ -793,13 +741,12 @@ extensions.")
                            "HsOpenSSL/HsOpenSSL-" version ".tar.gz"))
        (sha256
         (base32
-         "0qivl9clmybfglwxqp2sq308rv4ia4rhwshcsc8b029bvpp0mpsi"))))
+         "0ysdfl8ck3nzhx597fa13dqf31jq5gzwajlak6r91jajks9w0dl5"))))
     (build-system haskell-build-system)
     (arguments
      `(#:extra-directories ("openssl")))
     (inputs
-     `(("ghc-network" ,ghc-network)
-       ("openssl" ,openssl)))
+     (list ghc-network openssl))
     (home-page "https://github.com/vshabanov/HsOpenSSL")
     (synopsis "Partial OpenSSL binding for Haskell")
     (description "HsOpenSSL is an OpenSSL binding for Haskell.  It can
@@ -815,7 +762,7 @@ implementation of SSL.")
 (define-public ghc-openssl-streams
   (package
     (name "ghc-openssl-streams")
-    (version "1.2.2.0")
+    (version "1.2.3.0")
     (source
      (origin
        (method url-fetch)
@@ -824,16 +771,12 @@ implementation of SSL.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "0rplym6ayydkpr7x9mw3l13p0vzzfzzxw244d7sd3jcvaxpv0rmr"))))
+         "10pnnpzgb5xr811kc9qdk7h2cgn6hk2yiyhnzz8f8p0fjzc0pwjm"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hsopenssl" ,ghc-hsopenssl)
-       ("ghc-io-streams" ,ghc-io-streams)
-       ("ghc-network" ,ghc-network)))
+     (list ghc-hsopenssl ghc-io-streams ghc-network))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+     (list ghc-hunit ghc-test-framework ghc-test-framework-hunit))
     (home-page "https://hackage.haskell.org/package/openssl-streams")
     (synopsis "OpenSSL network support for io-streams")
     (description "This library contains io-streams routines for secure
@@ -855,17 +798,15 @@ networking using OpenSSL (by way of HsOpenSSL).")
          "1bldcmda4xh52mw1wfrjljv8crhw3al7v7kv1j0vidvr7ymnjpbh"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-conduit" ,ghc-conduit)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-cryptonite" ,ghc-cryptonite)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-memory" ,ghc-memory)
-       ("ghc-resourcet" ,ghc-resourcet)))
+     (list ghc-conduit
+           ghc-conduit-extra
+           ghc-cryptonite
+           ghc-exceptions
+           ghc-memory
+           ghc-resourcet))
     (native-inputs
-     `(("ghc-conduit-combinators" ,ghc-conduit-combinators)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+     (list ghc-conduit-combinators ghc-tasty ghc-tasty-hunit
+           ghc-tasty-quickcheck))
     (arguments
      `(#:cabal-revision
        ("1" "1hh2nzfz4qpxgivfilgk4ll416lph8b2fdkzpzrmqfjglivydfmz")))
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index a250bb4262..d95b87639c 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -55,7 +55,7 @@
          "1m9sx6gr9y9yxvkmcap8xsks8cnhznvma1mrfl39zljkv005azms"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-quickcheck))
     (home-page "https://github.com/ndmitchell/tagsoup")
     (synopsis
      "Parsing and extracting information from (possibly malformed) HTML/XML
@@ -71,7 +71,7 @@ for screen-scraping.")
 (define-public ghc-cookie
   (package
     (name "ghc-cookie")
-    (version "0.4.4")
+    (version "0.4.5")
     (source
      (origin
        (method url-fetch)
@@ -81,17 +81,17 @@ for screen-scraping.")
              ".tar.gz"))
        (sha256
         (base32
-         "1qy09i0jh2z9i9avy2khf8a8afq4fqgnv0fyrszgfg4kmq2fsi9j"))))
+         "10rmdasb7mypbwxdj2mhr810vqhkakpik7hyd8fvj60hng8r8zvh"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+     (list ghc-old-locale
+           ghc-blaze-builder
+           ghc-data-default-class
+           ghc-hunit
+           ghc-quickcheck
+           ghc-tasty
+           ghc-tasty-hunit
+           ghc-tasty-quickcheck))
     (home-page "https://github.com/snoyberg/cookie")
     (synopsis "HTTP cookie parsing and rendering")
     (description "HTTP cookie parsing and rendering library for Haskell.")
@@ -110,7 +110,7 @@ for screen-scraping.")
                 "0vj4hpaa30jz7c702xpsfvqaqdxz28zslsqnsfx6bf6dpwvck1wh"))))
     (build-system haskell-build-system)
     (inputs
-     `(("curl" ,curl)))
+     (list curl))
     (home-page "https://hackage.haskell.org/package/curl")
     (synopsis "Haskell bindings for libcurl")
     (description
@@ -132,9 +132,7 @@ This package provides a Haskell binding to libcurl.")
          "19dgdimpzr7pxk7pqvyin6j87gmvnf0rm35gzhmna8qr835wy3sr"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-network-bsd" ,ghc-network-bsd)
-       ("ghc-network-uri" ,ghc-network-uri)
-       ("ghc-network" ,ghc-network)))
+     (list ghc-network-bsd ghc-network-uri ghc-network))
     (home-page "https://hackage.haskell.org/package/httpd-shed")
     (synopsis "Simple web-server with an interact style API")
     (description
@@ -157,13 +155,10 @@ requests, and the library is intended for implementing Ajax APIs.")
          "05j00b9nqmwh9zaq9y9x50k81v2pd3j7a71kd91zlnbl8xk4m2jf"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-doctest" ,ghc-doctest)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-doctest ghc-hspec ghc-quickcheck ghc-quickcheck-instances
+           hspec-discover))
     (inputs
-     `(("ghc-case-insensitive" ,ghc-case-insensitive)))
+     (list ghc-case-insensitive))
     (home-page "https://github.com/aristidb/http-types")
     (synopsis "Generic HTTP types for Haskell")
     (description "This package provides generic HTTP types for Haskell (for
@@ -173,7 +168,7 @@ both client and server code).")
 (define-public ghc-http
   (package
     (name "ghc-http")
-    (version "4000.3.14")
+    (version "4000.3.16")
     (outputs '("out" "static" "doc"))
     (source
      (origin
@@ -182,23 +177,21 @@ both client and server code).")
                            "HTTP-" version ".tar.gz"))
        (sha256
         (base32
-         "0yv8mbjicpl7l2017c4dhm49117lblgwpy1llv368wci1vrxf0m6"))))
+         "0bgyj3ahqlyg0jw6qsm2sncp8mklc4h0dj91s043vb3ig01iq2fn"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-httpd-shed" ,ghc-httpd-shed)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+     (list ghc-httpd-shed ghc-hunit ghc-test-framework
+           ghc-test-framework-hunit))
     (inputs
-     `(("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-old-time" ,ghc-old-time)
-       ("ghc-puremd5" ,ghc-puremd5)
-       ("ghc-network" ,ghc-network)
-       ("ghc-network-uri" ,ghc-network-uri)
-       ("ghc-split" ,ghc-split)))
+     (list ghc-case-insensitive
+           ghc-conduit
+           ghc-conduit-extra
+           ghc-http-types
+           ghc-old-time
+           ghc-puremd5
+           ghc-network
+           ghc-network-uri
+           ghc-split))
     (arguments
      `(#:tests? #f  ; FIXME: currently missing libraries used for tests.
        #:phases
@@ -228,7 +221,7 @@ responses coming back.")
 (define-public ghc-http-client
   (package
     (name "ghc-http-client")
-    (version "0.6.4")
+    (version "0.6.4.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -236,29 +229,29 @@ responses coming back.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1n9rnbp8lwkd4whi2anniywi4y1bn9kx6nzfigfvz28d7pn7i4in"))))
+                "1y12xfh6xvsfvyapbssmgrpjz025rmyccprbnmzhs0y1cmlz6hjp"))))
     (build-system haskell-build-system)
     ;; Tests require access to the web.
     (arguments `(#:tests? #f))
     (inputs
-     `(("ghc-async" ,ghc-async)
-       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-cookie" ,ghc-cookie)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-memory" ,ghc-memory)
-       ("ghc-mime-types" ,ghc-mime-types)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-network" ,ghc-network)
-       ("ghc-network-uri" ,ghc-network-uri)
-       ("ghc-random" ,ghc-random)
-       ("ghc-streaming-commons" ,ghc-streaming-commons)
-       ("ghc-zlib" ,ghc-zlib)))
+     (list ghc-async
+           ghc-base64-bytestring
+           ghc-blaze-builder
+           ghc-case-insensitive
+           ghc-cookie
+           ghc-data-default-class
+           ghc-exceptions
+           ghc-http-types
+           ghc-memory
+           ghc-mime-types
+           ghc-monad-control
+           ghc-network
+           ghc-network-uri
+           ghc-random
+           ghc-streaming-commons
+           ghc-zlib))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)))
+     (list ghc-hspec))
     (home-page "https://github.com/snoyberg/http-client")
     (synopsis "HTTP client engine")
     (description
@@ -282,14 +275,14 @@ for more user-friendly packages.")
     ;; Tests require Internet access
     (arguments `(#:tests? #f))
     (inputs
-     `(("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-http-client" ,ghc-http-client)
-       ("ghc-connection" ,ghc-connection)
-       ("ghc-network" ,ghc-network)
-       ("ghc-tls" ,ghc-tls)
-       ("ghc-http-types" ,ghc-http-types)))
+     (list ghc-data-default-class
+           ghc-http-client
+           ghc-connection
+           ghc-network
+           ghc-tls
+           ghc-http-types))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)))
+     (list ghc-hspec))
     (home-page "https://github.com/snoyberg/http-client")
     (synopsis "Backend for http-client using the TLS library")
     (description
@@ -301,7 +294,7 @@ libraries, such as http-conduit.")
 (define-public ghc-http-date
   (package
     (name "ghc-http-date")
-    (version "0.0.8")
+    (version "0.0.11")
     (source
      (origin
        (method url-fetch)
@@ -310,15 +303,12 @@ libraries, such as http-conduit.")
                            "http-date-" version ".tar.gz"))
        (sha256
         (base32
-         "09slbzqayjnqqz9zybk7slgzvizgplikqgg4b2flzgks91466k0g"))))
+         "1lzlrj2flcnz3k5kfhf11nk5n8m6kcya0lkwrsnzxgfr3an27y9j"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)))
+     (list ghc-attoparsec))
     (native-inputs
-     `(("ghc-doctest" ,ghc-doctest)
-       ("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)
-       ("ghc-old-locale" ,ghc-old-locale)))
+     (list ghc-doctest ghc-hspec hspec-discover ghc-old-locale))
     (home-page "https://github.com/kazu-yamamoto/http-date")
     (synopsis "HTTP Date parser/formatter")
     (description "Library for Parsing and formatting HTTP
@@ -328,7 +318,7 @@ Date in Haskell.")
 (define-public ghc-http2
   (package
     (name "ghc-http2")
-    (version "1.6.5")
+    (version "3.0.2")
     (source
      (origin
        (method url-fetch)
@@ -337,23 +327,31 @@ Date in Haskell.")
                            "http2-" version ".tar.gz"))
        (sha256
         (base32
-         "1vlmy8vnp6ml2n2pr11aa5fzigldsscgzmibrni64ykgfvpd3sqn"))))
+         "13c2z35gdimncgpyg5dn5cpjvd83rbrigc8b40crg36678m0k0d1"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-network-byte-order" ,ghc-network-byte-order)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-aeson-pretty" ,ghc-aeson-pretty)
-       ("ghc-base16-bytestring" ,ghc-base16-bytestring)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-word8" ,ghc-word8)
-       ("ghc-psqueues" ,ghc-psqueues)))
+     (list ghc-aeson
+           ghc-aeson-pretty
+           ghc-base16-bytestring
+           ghc-case-insensitive
+           ghc-cryptonite
+           ghc-http-types
+           ghc-network-byte-order
+           ghc-network
+           ghc-network-run
+           ghc-psqueues
+           ghc-time-manager
+           ghc-unix-time
+           ghc-unordered-containers
+           ghc-vector
+           ghc-word8))
     (native-inputs
-     `(("ghc-glob" ,ghc-glob)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-doctest" ,ghc-doctest)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-async
+           ghc-doctest
+           ghc-glob
+           ghc-hspec
+           hspec-discover
+           ghc-typed-process))
     (home-page "https://github.com/kazu-yamamoto/http2")
     (synopsis "HTTP/2 library including frames, priority queues and HPACK")
     (description "This package provides a HTTP/2.0 library including frames
@@ -363,7 +361,7 @@ and HPACK.  Currently HTTP/2 16 framing and HPACK 10 is supported.")
 (define-public ghc-http-conduit
   (package
     (name  "ghc-http-conduit")
-    (version "2.3.7.3")
+    (version "2.3.8")
     (source
      (origin
        (method url-fetch)
@@ -372,46 +370,46 @@ and HPACK.  Currently HTTP/2 16 framing and HPACK 10 is supported.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "00rshi1y0h8y4rvsnnad0bppxgpvp40sk7lw1kxmdwy8pi8xrvbs"))))
+         "1bj24phbcb7s3k6v48l5gk82m3m23j8zy9l7c5ccxp3ghn9z5gng"))))
     (build-system haskell-build-system)
     ;; FIXME: `httpLbs TLS` in test-suite `test` fails with
     ;; ConnectionFailure getProtocolByName: does not exist (no such protocol
     ;; name: tcp)
     (arguments `(#:tests? #f))
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-lifted-base" ,ghc-lifted-base)
-       ("ghc-http-client" ,ghc-http-client)
-       ("ghc-http-client-tls" ,ghc-http-client-tls)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-unliftio" ,ghc-unliftio)))
+     (list ghc-aeson
+           ghc-resourcet
+           ghc-conduit
+           ghc-conduit-extra
+           ghc-http-types
+           ghc-lifted-base
+           ghc-http-client
+           ghc-http-client-tls
+           ghc-monad-control
+           ghc-exceptions
+           ghc-unliftio))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-connection" ,ghc-connection)
-       ("ghc-warp-tls" ,ghc-warp-tls)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-lifted-base" ,ghc-lifted-base)
-       ("ghc-network" ,ghc-network)
-       ("ghc-wai" ,ghc-wai)
-       ("ghc-warp" ,ghc-warp)
-       ("ghc-wai-conduit" ,ghc-wai-conduit)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-cookie" ,ghc-cookie)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-streaming-commons" ,ghc-streaming-commons)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-temporary" ,ghc-temporary)
-       ("ghc-resourcet" ,ghc-resourcet)))
+     (list ghc-hunit
+           ghc-hspec
+           ghc-data-default-class
+           ghc-connection
+           ghc-warp-tls
+           ghc-blaze-builder
+           ghc-conduit
+           ghc-utf8-string
+           ghc-case-insensitive
+           ghc-lifted-base
+           ghc-network
+           ghc-wai
+           ghc-warp
+           ghc-wai-conduit
+           ghc-http-types
+           ghc-cookie
+           ghc-conduit-extra
+           ghc-streaming-commons
+           ghc-aeson
+           ghc-temporary
+           ghc-resourcet))
     (home-page "https://hackage.haskell.org/package/http-conduit")
     (synopsis "HTTP/HTTPS client with conduit interface")
     (description "This library uses attoparsec for parsing the actual
@@ -434,23 +432,21 @@ which allow you to avoid direct usage of conduits.")
          "1a6i5njf85b2lhg8m83njagcf09wih5q2irnyb2890s724qr277v"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-word8" ,ghc-word8)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-http-client" ,ghc-http-client)
-       ("ghc-wai" ,ghc-wai)
-       ("ghc-network" ,ghc-network)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-wai-logger" ,ghc-wai-logger)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-unliftio" ,ghc-unliftio)
-       ("ghc-streaming-commons" ,ghc-streaming-commons)))
+     (list ghc-case-insensitive
+           ghc-http-types
+           ghc-word8
+           ghc-blaze-builder
+           ghc-http-client
+           ghc-wai
+           ghc-network
+           ghc-conduit
+           ghc-conduit-extra
+           ghc-wai-logger
+           ghc-resourcet
+           ghc-unliftio
+           ghc-streaming-commons))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-warp" ,ghc-warp)
-       ("ghc-http-conduit" ,ghc-http-conduit)))
+     (list ghc-hspec ghc-warp ghc-http-conduit))
     (home-page
      "https://github.com/fpco/http-reverse-proxy")
     (synopsis
@@ -464,7 +460,7 @@ approach performs full request/response parsing via WAI and http-conduit.")
 (define-public ghc-wai
   (package
     (name "ghc-wai")
-    (version "3.2.2.1")
+    (version "3.2.3")
     (source
      (origin
        (method url-fetch)
@@ -474,20 +470,17 @@ approach performs full request/response parsing via WAI and http-conduit.")
              ".tar.gz"))
        (sha256
         (base32
-         "058871axlq6r0gcqxbjw37w57df9xbv81dmz99b1zq59wf329xzy"))))
+         "1y19h9v0cq1fl17ywcyyvd6419fhgyw2s0yk0ki8z60021adcx2m"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-bytestring-builder" ,ghc-bytestring-builder)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-vault" ,ghc-vault)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-network" ,ghc-network)
-       ("ghc-http-types" ,ghc-http-types)))
+     (list ghc-bytestring-builder
+           ghc-unix-compat
+           ghc-vault
+           ghc-blaze-builder
+           ghc-network
+           ghc-http-types))
     (native-inputs
-     `(("hspec-discover" ,hspec-discover)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-hspec" ,ghc-hspec)))
+     (list hspec-discover ghc-quickcheck ghc-hunit ghc-hspec))
     (home-page "https://hackage.haskell.org/package/wai")
     (synopsis "Web application interface for Haskell")
     (description "This package provides a Web Application Interface (WAI)
@@ -498,7 +491,7 @@ communication between web applications and web servers.")
 (define-public ghc-wai-logger
   (package
     (name "ghc-wai-logger")
-    (version "2.3.5")
+    (version "2.3.6")
     (source
      (origin
        (method url-fetch)
@@ -508,21 +501,21 @@ communication between web applications and web servers.")
              ".tar.gz"))
        (sha256
         (base32
-         "05gbipyw0672irynsc3wqvvgzqixhmq69ay2mxh2phb734r8bcmm"))))
+         "0hbm7if28p6qa36cgpyq6i569275si53z9gsl2g1z8x09z3xiyz2"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f)) ; FIXME: Tests cannot find libraries exported
                                ; by propagated-inputs.
     (inputs
-     `(("ghc-auto-update" ,ghc-auto-update)
-       ("ghc-byteorder" ,ghc-byteorder)
-       ("ghc-easy-file" ,ghc-easy-file)
-       ("ghc-unix-time" ,ghc-unix-time)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-fast-logger" ,ghc-fast-logger)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-network" ,ghc-network)
-       ("ghc-wai" ,ghc-wai)))
+     (list ghc-auto-update
+           ghc-byteorder
+           ghc-easy-file
+           ghc-unix-time
+           ghc-blaze-builder
+           ghc-case-insensitive
+           ghc-fast-logger
+           ghc-http-types
+           ghc-network
+           ghc-wai))
     (home-page "https://hackage.haskell.org/package/wai-logger")
     (synopsis "Logging system for WAI")
     (description "This package provides the logging system for WAI.")
@@ -531,7 +524,7 @@ communication between web applications and web servers.")
 (define-public ghc-wai-extra
   (package
     (name "ghc-wai-extra")
-    (version "3.0.28")
+    (version "3.1.7")
     (source
      (origin
        (method url-fetch)
@@ -541,35 +534,29 @@ communication between web applications and web servers.")
              ".tar.gz"))
        (sha256
         (base32
-         "0iky7k4kirngvk1p2nz19zgzffb5hppfaxdjan80v06ikc8w1wm7"))))
+         "1avf7bjcsbs8l6klp5kkd0cd2dc5n0j0a2yf8813pnwfn5b7qyd4"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-cookie" ,ghc-cookie)
-       ("ghc-network" ,ghc-network)
-       ("ghc-lifted-base" ,ghc-lifted-base)
-       ("ghc-streaming-commons" ,ghc-streaming-commons)
-       ("ghc-stringsearch" ,ghc-stringsearch)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-fast-logger" ,ghc-fast-logger)
-       ("ghc-wai-logger" ,ghc-wai-logger)
-       ("ghc-zlib" ,ghc-zlib)
-       ("ghc-word8" ,ghc-word8)
-       ("ghc-iproute" ,ghc-iproute)
-       ("ghc-void" ,ghc-void)
-       ("ghc-wai" ,ghc-wai)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-http2" ,ghc-http2)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-vault" ,ghc-vault)
-       ("ghc-aeson" ,ghc-aeson)))
+     (list ghc-ansi-terminal
+           ghc-base64-bytestring
+           ghc-call-stack
+           ghc-cookie
+           ghc-network
+           ghc-streaming-commons
+           ghc-resourcet
+           ghc-fast-logger
+           ghc-wai-logger
+           ghc-word8
+           ghc-iproute
+           ghc-wai
+           ghc-http-types
+           ghc-http2
+           ghc-case-insensitive
+           ghc-data-default-class
+           ghc-vault
+           ghc-aeson))
     (native-inputs
-     `(("hspec-discover" ,hspec-discover)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-hunit" ,ghc-hunit)))
+     (list hspec-discover ghc-hspec ghc-hunit ghc-zlib))
     (home-page "https://github.com/yesodweb/wai")
     (synopsis "Some basic WAI handlers and middleware")
     (description "This library provides basic WAI handlers and middleware
@@ -591,10 +578,7 @@ functionality.")
          "07yn41rn2skd5p3wqqa09wa761vj7ibl8l19gh4bi4i8slxhk417"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-conduit" ,ghc-conduit)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-wai" ,ghc-wai)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)))
+     (list ghc-conduit ghc-http-types ghc-wai ghc-blaze-builder))
     (home-page "https://github.com/yesodweb/wai")
     (synopsis "Conduit wrappers for Haskell's WAI")
     (description "This package provides data streaming abstraction for
@@ -620,15 +604,17 @@ Haskell's Web Application Interface (WAI).")
      `(;; XXX: As of 0.0.4, one property test ("Identical output as Blaze")
        ;; fails on i686-linux.
        #:tests? ,(not (string-prefix? "i686" (or (%current-target-system)
-                                                 (%current-system))))))
+                                                 (%current-system))))
+       #:cabal-revision
+       ("3" "15hg352id2f4x0dnvv47bdiz6gv5hp5a2mki9yzmhc7ajpk31mdd")))
     (native-inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-hedgehog" ,ghc-hedgehog)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hedgehog" ,ghc-tasty-hedgehog)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-doctest" ,ghc-doctest)))
+     (list ghc-attoparsec
+           ghc-blaze-builder
+           ghc-hedgehog
+           ghc-tasty
+           ghc-tasty-hedgehog
+           ghc-tasty-hunit
+           ghc-doctest))
     (home-page "https://github.com/sjakobi/bsb-http-chunked")
     (synopsis "Chunked HTTP transfer encoding for bytestring builders")
     (description "This Haskell library contains functions for encoding
@@ -639,7 +625,7 @@ transfers.")
 (define-public ghc-warp
   (package
     (name "ghc-warp")
-    (version "3.2.28")
+    (version "3.3.17")
     (source
      (origin
        (method url-fetch)
@@ -647,36 +633,38 @@ transfers.")
                            "warp-" version "/" "warp-" version
                            ".tar.gz"))
        (sha256
-        (base32 "0w2w3aiccpb2f8zssqiszcxzqdysihqi5xply23lwif5arz4saw7"))))
+        (base32 "0v54ca3wpa79gdyiikwhbv9h8b5vr3d60piq3ndb2v7s7fi1qpm0"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-async" ,ghc-async)
-       ("ghc-auto-update" ,ghc-auto-update)
-       ("ghc-bsb-http-chunked" ,ghc-bsb-http-chunked)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-iproute" ,ghc-iproute)
-       ("ghc-network" ,ghc-network)
-       ("ghc-streaming-commons" ,ghc-streaming-commons)
-       ("ghc-time-manager" ,ghc-time-manager)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-vault" ,ghc-vault)
-       ("ghc-wai" ,ghc-wai)
-       ("ghc-word8" ,ghc-word8)
-       ("ghc-http-date" ,ghc-http-date)
-       ("ghc-simple-sendfile" ,ghc-simple-sendfile)
-       ("ghc-http2" ,ghc-http2)))
+     (list ghc-async
+           ghc-auto-update
+           ghc-bsb-http-chunked
+           ghc-case-insensitive
+           ghc-hashable
+           ghc-http-types
+           ghc-iproute
+           ghc-network
+           ghc-streaming-commons
+           ghc-time-manager
+           ghc-unix-compat
+           ghc-vault
+           ghc-wai
+           ghc-word8
+           ghc-http-date
+           ghc-simple-sendfile
+           ghc-unliftio
+           ghc-x509
+           ghc-http2))
     (native-inputs
-     `(("curl" ,curl)
-       ("ghc-silently" ,ghc-silently)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-doctest" ,ghc-doctest)
-       ("ghc-lifted-base" ,ghc-lifted-base)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-http-client" ,ghc-http-client)
-       ("hspec-discover" ,hspec-discover)))
+     (list curl
+           ghc-silently
+           ghc-hspec
+           ghc-doctest
+           ghc-lifted-base
+           ghc-quickcheck
+           ghc-hunit
+           ghc-http-client
+           hspec-discover))
     (home-page "https://github.com/yesodweb/wai")
     (synopsis "HTTP server library for Haskell's WAI")
     (description "Warp is a server library for HTTP/1.x and HTTP/2
@@ -686,7 +674,7 @@ based WAI (Web Application Interface in Haskell).")
 (define-public ghc-tls-session-manager
   (package
   (name "ghc-tls-session-manager")
-  (version "0.0.3")
+  (version "0.0.4")
   (source
     (origin
       (method url-fetch)
@@ -696,13 +684,10 @@ based WAI (Web Application Interface in Haskell).")
              version ".tar.gz"))
       (sha256
         (base32
-          "0k57flqp2b4bipafiyfipnqmdqv04ky39yr4s4s9sx577zz2j2yi"))))
+          "134kb5nz668f4xrr5g98g7fc1bwb3ri6q433a1i6asjkniwpy85s"))))
   (build-system haskell-build-system)
   (inputs
-    `(("ghc-auto-update" ,ghc-auto-update)
-      ("ghc-clock" ,ghc-clock)
-      ("ghc-psqueues" ,ghc-psqueues)
-      ("ghc-tls" ,ghc-tls)))
+    (list ghc-auto-update ghc-clock ghc-psqueues ghc-tls))
   (home-page "https://hackage.haskell.org/package/tls-session-manager")
   (synopsis "In-memory TLS session manager")
   (description "This Haskell library provides a TLS session manager with
@@ -712,7 +697,7 @@ limitation, automatic pruning, energy saving and replay resistance.")
 (define-public ghc-warp-tls
   (package
     (name "ghc-warp-tls")
-    (version "3.2.8")
+    (version "3.3.2")
     (source
      (origin
        (method url-fetch)
@@ -721,17 +706,18 @@ limitation, automatic pruning, energy saving and replay resistance.")
                            "warp-tls-" version ".tar.gz"))
        (sha256
         (base32
-         "1z5jzl40x1gp249fk8h51gkw6m3hzxchm2bp3kbpqdgmw8r5im8y"))))
+         "0b9viw26ymzq4q8snfddz3w59sqcf5ankxnw6f99iacxjhk6zs6m"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-cryptonite" ,ghc-cryptonite)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-network" ,ghc-network)
-       ("ghc-streaming-commons" ,ghc-streaming-commons)
-       ("ghc-tls" ,ghc-tls)
-       ("ghc-tls-session-manager" ,ghc-tls-session-manager)
-       ("ghc-wai" ,ghc-wai)
-       ("ghc-warp" ,ghc-warp)))
+     (list ghc-cryptonite
+           ghc-data-default-class
+           ghc-network
+           ghc-streaming-commons
+           ghc-tls
+           ghc-tls-session-manager
+           ghc-unliftio
+           ghc-wai
+           ghc-warp))
     (home-page "https://github.com/yesodweb/wai")
     (synopsis "SSL/TLS support for Warp")
     (description "This package provides SSL/TLS support for Warp,
@@ -741,34 +727,33 @@ a WAI handler, via the native Haskell TLS implementation.")
 (define-public ghc-websockets
   (package
     (name "ghc-websockets")
-    (version "0.12.6.1")
+    (version "0.12.7.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/websockets/websockets-"
+             "https://hackage.haskell.org/package/websockets/websockets-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "1vp3790w3hmr6v96314vdx74f7sg2c7hvnc93gafq0xhbxnr7nvx"))))
+         "1b92a41l2var1ccg350mh2bjmb2plb6d79yzvmlwkd41nifmmi44"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-bytestring-builder" ,ghc-bytestring-builder)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-network" ,ghc-network)
-       ("ghc-random" ,ghc-random)
-       ("ghc-sha" ,ghc-sha)
-       ("ghc-streaming-commons" ,ghc-streaming-commons)
-       ("ghc-entropy" ,ghc-entropy)))
+     (list ghc-attoparsec
+           ghc-base64-bytestring
+           ghc-bytestring-builder
+           ghc-case-insensitive
+           ghc-network
+           ghc-random
+           ghc-sha
+           ghc-clock
+           ghc-async
+           ghc-streaming-commons
+           ghc-entropy))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-hunit ghc-quickcheck ghc-test-framework
+           ghc-test-framework-hunit ghc-test-framework-quickcheck2))
     (home-page "https://jaspervdj.be/websockets/")
     (synopsis
      "Write WebSocket-capable servers in Haskell")
@@ -805,11 +790,8 @@ See also:
          "0b2xmdsrsqpssyib53wbr6r8hf75789ndyyanv37sv99iyqcwz4i"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-wai" ,ghc-wai)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-network" ,ghc-network)
-       ("ghc-websockets" ,ghc-websockets)
-       ("ghc-http-types" ,ghc-http-types)))
+     (list ghc-wai ghc-case-insensitive ghc-network ghc-websockets
+           ghc-http-types))
     (arguments
      `(#:configure-flags '("--flags=-example")))
     (home-page "https://github.com/yesodweb/wai")
@@ -834,14 +816,9 @@ See also:
          "1d72s3a6520iwwc1wbn9v2znqgbw6a5wwzb23iq8ny9ccnjyx1dk"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-tagsoup" ,ghc-tagsoup)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-css-text" ,ghc-css-text)
-       ("ghc-network-uri" ,ghc-network-uri)))
+     (list ghc-tagsoup ghc-utf8-string ghc-css-text ghc-network-uri))
     (native-inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-hunit" ,ghc-hunit)))
+     (list ghc-attoparsec ghc-hspec ghc-hunit))
     (home-page "https://github.com/yesodweb/haskell-xss-sanitize")
     (synopsis "Sanitize untrusted HTML to prevent XSS attacks")
     (description "This library provides @code{sanitizeXSS}.  Run untrusted
@@ -865,9 +842,7 @@ attacks.")
          "0ynd9f4hn2sfwqzbsa0y7phmxq8za7jiblpjwx0ry8b372zhgxaz"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-attoparsec ghc-hspec ghc-quickcheck))
     (home-page "https://www.yesodweb.com/")
     (synopsis "CSS parser and renderer")
     (description "This package provides a CSS parser and renderer for
@@ -919,7 +894,7 @@ documents.")
 (define-public ghc-html-conduit
   (package
     (name "ghc-html-conduit")
-    (version "1.3.2.1")
+    (version "1.3.2.2")
     (source
      (origin
        (method url-fetch)
@@ -928,18 +903,17 @@ documents.")
              "html-conduit-" version ".tar.gz"))
        (sha256
         (base32
-         "196c8zcnjp1pc5qvqxd8arx3xkw0a90rvg9mmiw2l4zwnx65709n"))))
+         "09bwrdam3y47kqllgg6w098ghqb8jb10dp4wxirsvx5ddpx9zpi6"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-xml-conduit" ,ghc-xml-conduit)
-       ("ghc-xml-types" ,ghc-xml-types)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)))
+     (list ghc-resourcet
+           ghc-conduit
+           ghc-xml-conduit
+           ghc-xml-types
+           ghc-attoparsec
+           ghc-conduit-extra))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-hunit" ,ghc-hunit)))
+     (list ghc-hspec ghc-hunit))
     (home-page "https://github.com/snoyberg/xml")
     (synopsis "Parse HTML documents using xml-conduit datatypes")
     (description
@@ -965,16 +939,15 @@ entity decoding bugfixes applied.")
         (base32
          "0k1r1hddjgqighazcazxrx6xfhvy2gm8il8l82ainv3cai13yl30"))))
     (build-system haskell-build-system)
-    (outputs '("out" "static" "doc"))
+    (arguments
+     `(#:tests? #f ; TODO: Depends on quickcheck<2.14
+       #:cabal-revision
+       ("1" "0wvlfb3rd9cm3p894p5rl9kggrsr5da3n8x9ydrbagx91yvkxns9")))
     (inputs
-     `(("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-blaze-markup" ,ghc-blaze-markup)))
+     (list ghc-blaze-builder ghc-blaze-markup))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-hunit ghc-quickcheck ghc-test-framework
+           ghc-test-framework-hunit ghc-test-framework-quickcheck2))
     (home-page "http://jaspervdj.be/blaze")
     (synopsis "Fast HTML combinator library")
     (description "This library provides HTML combinators for Haskell.")
@@ -983,7 +956,7 @@ entity decoding bugfixes applied.")
 (define-public ghc-aeson
   (package
     (name "ghc-aeson")
-    (version "1.4.5.0")
+    (version "1.5.6.0")
     (source
      (origin
        (method url-fetch)
@@ -993,33 +966,43 @@ entity decoding bugfixes applied.")
              ".tar.gz"))
        (sha256
         (base32
-         "1jhabz1lbbv6yqxqiybifi86cb5xlsadrn368n5dd0wzzc7ja4iz"))))
+         "1s5z4bgb5150h6a4cjf5vh8dmyrn6ilh29gh05999v6jwd5w6q83"))))
     (build-system haskell-build-system)
-    (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
+    (arguments
+     `(#:tests? #f ; FIXME: testing libraries are missing.
+       #:cabal-revision
+       ("2" "1zxkarvmbgc2cpcc9sx1rlqm7nfh473052898ypiwk8azawp1hbj")))
     (outputs '("out" "static" "doc"))
     (inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-dlist" ,ghc-dlist)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-th-abstraction" ,ghc-th-abstraction)
-       ("ghc-time-locale-compat" ,ghc-time-locale-compat)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-uuid-types" ,ghc-uuid-types)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-integer-logarithms" ,ghc-integer-logarithms)
-       ("ghc-base-orphans" ,ghc-base-orphans)
-       ("ghc-base16-bytestring" ,ghc-base16-bytestring)
-       ("ghc-generic-deriving" ,ghc-generic-deriving)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-       ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
-       ("ghc-hashable-time" ,ghc-hashable-time)))
+     (list ghc-attoparsec
+           ghc-base-compat-batteries
+           ghc-data-fix
+           ghc-dlist
+           ghc-hashable
+           ghc-primitive
+           ghc-scientific
+           ghc-strict
+           ghc-tagged
+           ghc-th-abstraction
+           ghc-these
+           ghc-time-compat
+           ghc-unordered-containers
+           ghc-uuid-types
+           ghc-vector))
+;    (native-inputs
+;     `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
+;       ("ghc-base-compat" ,ghc-base-compat)
+;       ("ghc-base-orphans" ,ghc-base-orphans)
+;       ("ghc-diff" ,ghc-diff)
+;       ("ghc-generic-deriving" ,ghc-generic-deriving)
+;       ("ghc-hashable-time" ,ghc-hashable-time)
+;       ("ghc-integer-logarithms" ,ghc-integer-logarithms)
+;       ("ghc-quickcheck" ,ghc-quickcheck)
+;       ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
+;       ("ghc-tasty" ,ghc-tasty)
+;       ("ghc-tasty-golden" ,ghc-tasty-golden)
+;       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+;       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
     (home-page "https://github.com/bos/aeson")
     (synopsis "Fast JSON parsing and encoding")
     (description "This package provides a JSON parsing and encoding library
@@ -1030,7 +1013,7 @@ naming: in Greek mythology, Aeson was the father of Jason.)")
 (define-public ghc-aeson-pretty
   (package
     (name "ghc-aeson-pretty")
-    (version "0.8.8")
+    (version "0.8.9")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1038,16 +1021,16 @@ naming: in Greek mythology, Aeson was the father of Jason.)")
                     version ".tar.gz"))
               (sha256
                (base32
-                "09n7gs91y1fbw6gjszrd2na3isnvk3y5rsi90lzjrwywnqfadkl1"))))
+                "021az9az6xik9c9s3rnar5fr1lgy2h3igibf5ixnc7ps3m2lzg2x"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-cmdargs" ,ghc-cmdargs)))
+     (list ghc-aeson
+           ghc-base-compat
+           ghc-scientific
+           ghc-vector
+           ghc-unordered-containers
+           ghc-attoparsec
+           ghc-cmdargs))
     (home-page "https://github.com/informatikr/aeson-pretty")
     (synopsis "JSON pretty-printing library and command-line tool")
     (description
@@ -1063,25 +1046,24 @@ essentially the opposite of pretty-printing.")
 (define-public ghc-aeson-qq
   (package
     (name "ghc-aeson-qq")
-    (version "0.8.2")
+    (version "0.8.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "aeson-qq/aeson-qq-" version ".tar.gz"))
               (sha256
                (base32
-                "0ln13jqyfh5726hdrk1rad9a6cgrrj201plmwcfcpvq18v4m5ckd"))))
+                "0dpklq2xdhrkg1rdc7zfdjnzm6c3qxx2i1xskrqdxpqi84ffnlyh"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-haskell-src-meta" ,ghc-haskell-src-meta)))
+     (list ghc-base-compat
+           ghc-attoparsec
+           ghc-scientific
+           ghc-vector
+           ghc-aeson
+           ghc-haskell-src-meta))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec hspec-discover))
     (home-page "https://github.com/zalora/aeson-qq")
     (synopsis "JSON quasiquoter for Haskell")
     (description
@@ -1106,13 +1088,13 @@ of a JSON value into a @code{Data.Aeson.Value}.")
          "09vkyrhwak3bmpfsqcd2az8hfqqkxyhg468hv5avgisy0nzh3w38"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-dlist" ,ghc-dlist)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-void" ,ghc-void)))
+     (list ghc-aeson
+           ghc-unordered-containers
+           ghc-dlist
+           ghc-scientific
+           ghc-vector
+           ghc-transformers-compat
+           ghc-void))
     (home-page
      "https://github.com/hdgarrood/aeson-better-errors")
     (synopsis
@@ -1126,7 +1108,7 @@ good error messages when parsing fails.  See also
 (define-public ghc-multipart
   (package
     (name "ghc-multipart")
-    (version "0.1.3")
+    (version "0.2.1")
     (source
      (origin
        (method url-fetch)
@@ -1136,10 +1118,10 @@ good error messages when parsing fails.  See also
              ".tar.gz"))
        (sha256
         (base32
-         "1x4n4yyva22dhfr1pg5ki112qvvzb4hyd7bwpm189iq4gcp52q4z"))))
+         "0p6n4knxpjv70nbl6cmd6x7gkdjsjqp4ya7fz00bfrqp7jvhlivn"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-stringsearch" ,ghc-stringsearch)))
+     (list ghc-stringsearch))
     (home-page
      "http://www.github.com/silkapp/multipart")
     (synopsis
@@ -1151,7 +1133,7 @@ good error messages when parsing fails.  See also
 (define-public ghc-uri-encode
   (package
     (name "ghc-uri-encode")
-    (version "1.5.0.5")
+    (version "1.5.0.7")
     (source
      (origin
        (method url-fetch)
@@ -1160,11 +1142,10 @@ good error messages when parsing fails.  See also
              version ".tar.gz"))
        (sha256
         (base32
-         "11miwb5vvnn17m92ykz1pzg9x6s8fbpz3mmsyqs2s4b3mn55haz8"))))
+         "0lj2h701af12539p957rw24bxr07mfqd5r4h52i42f43ax165767"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-network-uri" ,ghc-network-uri)))
+     (list ghc-utf8-string ghc-network-uri))
     (home-page "https://hackage.haskell.org/package/uri-encode")
     (synopsis "Unicode aware uri-encoding")
     (description "Unicode aware uri-encoding for Haskell.")
@@ -1184,9 +1165,7 @@ good error messages when parsing fails.  See also
         (base32
          "0vx3sivcsld76058925hym2j6hm3g71f0qjr7v59f1g2afgx82q8"))))
     (build-system haskell-build-system)
-    (native-inputs `(("ghc-hunit" ,ghc-hunit)
-                     ("ghc-hspec" ,ghc-hspec)
-                     ("ghc-quickcheck" ,ghc-quickcheck)))
+    (native-inputs (list ghc-hunit ghc-hspec ghc-quickcheck))
     (home-page "https://github.com/yesodweb/path-pieces")
     (synopsis "Used in Yesod to automatically marshall data in the request path")
     (description  "This Haskell package provides two typeclasses for converting
@@ -1207,10 +1186,8 @@ Haskell data types to and from route pieces.")
         (base32
          "1jdqdk0rz2wnvw735clnj8jh0a9rkrbqjg7vk3w6wczdql6cm0pq"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-cereal" ,ghc-cereal)
-              ("ghc-tagged" ,ghc-tagged)
-              ("ghc-crpto-api" ,ghc-crypto-api)))
-    (native-inputs `(("ghc-hspec" ,ghc-hspec)))
+    (inputs (list ghc-cereal ghc-tagged ghc-crypto-api))
+    (native-inputs (list ghc-hspec))
     (home-page "https://github.com/yesodweb/path-pieces")
     (synopsis "Skein family of cryptographic hash functions for Haskell")
     (description "@uref{(http://www.skein-hash.info, Skein} is a family of
@@ -1235,19 +1212,17 @@ This Haskell package uses bindings to the optimized C implementation of Skein.")
         (base32
          "0s6h4ykj16mpf7nlw2iqn2ji0p8g1fn5ni0s7yqaili6vv2as5ar"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-cereal" ,ghc-cereal)
-              ("ghc-tagged" ,ghc-tagged)
-              ("ghc-crypto-api" ,ghc-crypto-api)
-              ("ghc-skein" ,ghc-skein)
-              ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-              ("ghc-entropy" ,ghc-entropy)
-              ("ghc-cprng-aes" ,ghc-cprng-aes)
-              ("ghc-cipher-aes" ,ghc-cipher-aes)
-              ("ghc-crypto-random" ,ghc-crypto-random)
-              ("ghc-setenv" ,ghc-setenv)))
-    (native-inputs `(("ghc-hunit" ,ghc-hunit)
-                     ("ghc-hspec" ,ghc-hspec)
-                     ("ghc-quickcheck" ,ghc-quickcheck)))
+    (inputs (list ghc-cereal
+                  ghc-tagged
+                  ghc-crypto-api
+                  ghc-skein
+                  ghc-base64-bytestring
+                  ghc-entropy
+                  ghc-cprng-aes
+                  ghc-cipher-aes
+                  ghc-crypto-random
+                  ghc-setenv))
+    (native-inputs (list ghc-hunit ghc-hspec ghc-quickcheck))
     (home-page "https://github.com/yesodweb/clientsession/tree/master")
     (synopsis "Haskell library for securely store session data in a
 client-side cookie")
@@ -1259,7 +1234,7 @@ avoid any issues with characters.")
 (define-public ghc-yesod-core
   (package
     (name "ghc-yesod-core")
-    (version "1.6.17.2")
+    (version "1.6.21.0")
     (source
      (origin
        (method url-fetch)
@@ -1268,56 +1243,56 @@ avoid any issues with characters.")
                            "yesod-core-" version ".tar.gz"))
        (sha256
         (base32
-         "0rcfksbxnwcpg5qh9vjkddv39q95mx4nxzgix51bbwa128hhzcwf"))))
-    (build-system haskell-build-system)
-    (inputs `(("ghc-wai" ,ghc-wai)
-              ("ghc-extra" ,ghc-extra)
-              ("ghc-shakespeare" ,ghc-shakespeare)
-              ("ghc-blaze-builder" ,ghc-blaze-builder)
-              ("ghc-clientsession" ,ghc-clientsession)
-              ("ghc-random" ,ghc-random)
-              ("ghc-cereal" ,ghc-cereal)
-              ("ghc-old-locale" ,ghc-old-locale)
-              ("ghc-unliftio" ,ghc-unliftio)
-              ("ghc-unordered-containers" ,ghc-unordered-containers)
-              ("ghc-monad-control" ,ghc-monad-control)
-              ("ghc-transformers-base" ,ghc-transformers-base)
-              ("ghc-cookie" ,ghc-cookie)
-              ("ghc-http-types" ,ghc-http-types)
-              ("ghc-case-insensitive" ,ghc-case-insensitive)
-              ("ghc-vector" ,ghc-vector)
-              ("ghc-aeson" ,ghc-aeson)
-              ("ghc-fast-logger" ,ghc-fast-logger)
-              ("ghc-wai-logger" ,ghc-wai-logger)
-              ("ghc-monad-logger" ,ghc-monad-logger)
-              ("ghc-conduit" ,ghc-conduit)
-              ("ghc-resourcet" ,ghc-resourcet)
-              ("ghc-rio" ,ghc-rio)
-              ("ghc-lifted-base" ,ghc-lifted-base)
-              ("ghc-blaze-html" ,ghc-blaze-html)
-              ("ghc-blaze-markup" ,ghc-blaze-markup)
-              ("ghc-data-default" ,ghc-data-default)
-              ("ghc-safe" ,ghc-safe)
-              ("ghc-warp" ,ghc-warp)
-              ("ghc-unix-compat" ,ghc-unix-compat)
-              ("ghc-conduit-extra" ,ghc-conduit-extra)
-              ("ghc-exceptions" ,ghc-exceptions)
-              ("ghc-deepseq-generics" ,ghc-deepseq-generics)
-              ("ghc-mwc-random" ,ghc-mwc-random)
-              ("ghc-primitive" ,ghc-primitive)
-              ("ghc-word8" ,ghc-word8)
-              ("ghc-auto-update" ,ghc-auto-update)
-              ("ghc-semigroups" ,ghc-semigroups)
-              ("ghc-byteable" ,ghc-byteable)))
-    (native-inputs `(("ghc-hspec" ,ghc-hspec)
-                     ("ghc-path-pieces" ,ghc-path-pieces)
-                     ("ghc-hunit" ,ghc-hunit)
-                     ("ghc-hspec-expectations" ,ghc-hspec-expectations)
-                     ("ghc-quickcheck" ,ghc-quickcheck)
-                     ("ghc-network" ,ghc-network)
-                     ("ghc-async" ,ghc-async)
-                     ("ghc-streaming-commons" ,ghc-streaming-commons)
-                     ("ghc-wai-extra" ,ghc-wai-extra)))
+         "0wmh7ip318p89lyy6k5mvxkkpq43knp41wlq9iaf3icz0ahqdmb7"))))
+    (build-system haskell-build-system)
+    (inputs (list ghc-wai
+                  ghc-extra
+                  ghc-shakespeare
+                  ghc-blaze-builder
+                  ghc-clientsession
+                  ghc-random
+                  ghc-cereal
+                  ghc-old-locale
+                  ghc-unliftio
+                  ghc-unordered-containers
+                  ghc-monad-control
+                  ghc-transformers-base
+                  ghc-cookie
+                  ghc-http-types
+                  ghc-case-insensitive
+                  ghc-vector
+                  ghc-aeson
+                  ghc-fast-logger
+                  ghc-wai-logger
+                  ghc-monad-logger
+                  ghc-conduit
+                  ghc-resourcet
+                  ghc-rio
+                  ghc-lifted-base
+                  ghc-blaze-html
+                  ghc-blaze-markup
+                  ghc-data-default
+                  ghc-safe
+                  ghc-warp
+                  ghc-unix-compat
+                  ghc-conduit-extra
+                  ghc-exceptions
+                  ghc-deepseq-generics
+                  ghc-mwc-random
+                  ghc-primitive
+                  ghc-word8
+                  ghc-auto-update
+                  ghc-semigroups
+                  ghc-byteable))
+    (native-inputs (list ghc-hspec
+                         ghc-path-pieces
+                         ghc-hunit
+                         ghc-hspec-expectations
+                         ghc-quickcheck
+                         ghc-network
+                         ghc-async
+                         ghc-streaming-commons
+                         ghc-wai-extra))
     (home-page "https://www.yesodweb.com")
     (synopsis "Core package for the Yesod web framework")
     (description "This Haskell package provides all core functionality, for
@@ -1328,7 +1303,7 @@ functions, widgets, etc.")
 (define-public ghc-yesod-persistent
   (package
     (name "ghc-yesod-persistent")
-    (version "1.6.0.4")
+    (version "1.6.0.7")
     (source
      (origin
        (method url-fetch)
@@ -1337,20 +1312,18 @@ functions, widgets, etc.")
                            "yesod-persistent-" version ".tar.gz"))
        (sha256
         (base32
-         "1gsiw2zx6z7za7a164h0fxfggkrdqz6fn0qyb2zn9qr7r2jbg1c0"))))
+         "102xmp7n08sk1g5rv31jpln2v9kqf1zsqsnmi83mnhmgggcbj1k4"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f)) ; FIXME: hspec-discover not available in PATH.
-    (inputs `(("ghc-yesod-core" ,ghc-yesod-core)
-              ("ghc-persistent" ,ghc-persistent)
-              ("ghc-persistent-template" ,ghc-persistent-template)
-              ("ghc-blaze-builder" ,ghc-blaze-builder)
-              ("ghc-conduit" ,ghc-conduit)
-              ("ghc-resourcet" ,ghc-resourcet)
-              ("ghc-resource-pool" ,ghc-resource-pool)))
-    (native-inputs `(("ghc-hspec" ,ghc-hspec)
-                     ("ghc-wai-extra" ,ghc-wai-extra)
-                     ("ghc-yesod-core" ,ghc-yesod-core)
-                     ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)))
+    (inputs (list ghc-yesod-core
+                  ghc-persistent
+                  ghc-persistent-template
+                  ghc-blaze-builder
+                  ghc-conduit
+                  ghc-resourcet
+                  ghc-resource-pool))
+    (native-inputs (list ghc-hspec ghc-wai-extra ghc-yesod-core
+                         ghc-persistent-sqlite))
     (home-page "https://www.yesodweb.com/")
     (synopsis "Helpers for using Persistent from Yesod")
     (description "This Haskell package provides helpers for using Persistent
@@ -1360,7 +1333,7 @@ from Yesod.")
 (define-public ghc-yesod-form
     (package
     (name "ghc-yesod-form")
-    (version "1.6.7")
+    (version "1.7.0")
     (source
       (origin
         (method url-fetch)
@@ -1370,27 +1343,27 @@ from Yesod.")
                ".tar.gz"))
         (sha256
           (base32
-            "0mny71dyp6cp5akyp5wvmrhmip5rkqi8ibdn3lipvmajx9h58r5d"))))
+            "170gby381h5pg9njn908cyx2931yiv79x3rc5npg2rd74kif06vi"))))
     (build-system haskell-build-system)
     (inputs
-      `(("ghc-yesod-core" ,ghc-yesod-core)
-        ("ghc-yesod-persistent" ,ghc-yesod-persistent)
-        ("ghc-shakespeare" ,ghc-shakespeare)
-        ("ghc-persistent" ,ghc-persistent)
-        ("ghc-data-default" ,ghc-data-default)
-        ("ghc-xss-sanitize" ,ghc-xss-sanitize)
-        ("ghc-blaze-builder" ,ghc-blaze-builder)
-        ("ghc-email-validate" ,ghc-email-validate)
-        ("ghc-wai" ,ghc-wai)
-        ("ghc-blaze-html" ,ghc-blaze-html)
-        ("ghc-blaze-markup" ,ghc-blaze-markup)
-        ("ghc-attoparsec" ,ghc-attoparsec)
-        ("ghc-byteable" ,ghc-byteable)
-        ("ghc-aeson" ,ghc-aeson)
-        ("ghc-resourcet" ,ghc-resourcet)
-        ("ghc-semigroups" ,ghc-semigroups)
-        ("ghc-network-uri" ,ghc-network-uri)
-        ("ghc-hspec" ,ghc-hspec)))
+      (list ghc-yesod-core
+            ghc-yesod-persistent
+            ghc-shakespeare
+            ghc-persistent
+            ghc-data-default
+            ghc-xss-sanitize
+            ghc-blaze-builder
+            ghc-email-validate
+            ghc-wai
+            ghc-blaze-html
+            ghc-blaze-markup
+            ghc-attoparsec
+            ghc-byteable
+            ghc-aeson
+            ghc-resourcet
+            ghc-semigroups
+            ghc-network-uri
+            ghc-hspec))
     (home-page "https://www.yesodweb.com")
     (synopsis "Form handling support for Yesod Web Framework")
     (description "This Haskell package provides a set of basic form inputs such
@@ -1402,7 +1375,7 @@ providing richtext field using Nic editor. ")
 (define-public ghc-yesod
   (package
     (name "ghc-yesod")
-    (version "1.6.0")
+    (version "1.6.1.2")
     (source
      (origin
        (method url-fetch)
@@ -1411,31 +1384,26 @@ providing richtext field using Nic editor. ")
              version ".tar.gz"))
        (sha256
         (base32
-         "0wx77nbpzdh40p1bm527kimfj48vs9d2avpvvz2w42zi3pz2y94a"))))
+         "13r0ispprj41kgn2rkc7zhy1rxfmgpjbmdlnys15h0ihhh3zhw2f"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-yesod-core" ,ghc-yesod-core)
-       ("ghc-yesod-persistent" ,ghc-yesod-persistent)
-       ("ghc-yesod-form" ,ghc-yesod-form)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-wai" ,ghc-wai)
-       ("ghc-wai-extra" ,ghc-wai-extra)
-       ("ghc-warp" ,ghc-warp)
-       ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-blaze-markup" ,ghc-blaze-markup)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-yaml" ,ghc-yaml)
-       ("ghc-monad-logger" ,ghc-monad-logger)
-       ("ghc-fast-logger" ,ghc-fast-logger)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-shakespeare" ,ghc-shakespeare)
-       ("ghc-streaming-commons" ,ghc-streaming-commons)
-       ("ghc-wai-logger" ,ghc-wai-logger)
-       ("ghc-semigroups" ,ghc-semigroups)))
+     (list ghc-yesod-core
+           ghc-yesod-persistent
+           ghc-yesod-form
+           ghc-wai
+           ghc-wai-extra
+           ghc-warp
+           ghc-aeson
+           ghc-file-embed
+           ghc-data-default-class
+           ghc-unordered-containers
+           ghc-yaml
+           ghc-monad-logger
+           ghc-fast-logger
+           ghc-conduit
+           ghc-shakespeare
+           ghc-streaming-commons
+           ghc-wai-logger))
     (home-page "https://www.yesodweb.com")
     (synopsis "Framework for creating type-safe, RESTful web applications")
     (description "The Haskell package package groups together the various
@@ -1446,7 +1414,7 @@ whereas most of the core code lives in @code{ghc-yesod-core}.")
 (define-public ghc-hxt-charproperties
   (package
     (name "ghc-hxt-charproperties")
-    (version "9.4.0.0")
+    (version "9.5.0.0")
     (source
      (origin
        (method url-fetch)
@@ -1455,7 +1423,7 @@ whereas most of the core code lives in @code{ghc-yesod-core}.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1bk88hj2pqlvcnyfncqyb9j7w9vvdxcq3cgr0w2l09c0abas23pm"))))
+         "0jm98jddbsd60jc2bz8wa71rslagbaqf00ia7fvfsaiaa54nk0r8"))))
     (build-system haskell-build-system)
     (home-page "https://github.com/UweSchmidt/hxt")
     (synopsis "Character properties and classes for XML and Unicode")
@@ -1481,7 +1449,7 @@ supported Unicode version is 7.0.0")
          "0rj48cy8z4fl3zpg5bpa458kqr83adav6jnqv4i71dclpprj6n3v"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)))
+     (list ghc-hxt-charproperties))
     (home-page
      "http://www.fh-wedel.de/~si/HXmlToolbox/index.html https://github.com/UweSchmidt/hxt")
     (synopsis
@@ -1496,7 +1464,7 @@ ignored.")
 (define-public ghc-hxt-regex-xmlschema
   (package
     (name "ghc-hxt-regex-xmlschema")
-    (version "9.2.0.3")
+    (version "9.2.0.7")
     (source
      (origin
        (method url-fetch)
@@ -1505,11 +1473,10 @@ ignored.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1c4jr0439f5yc05h7iz53fa47g6l2wrvqp6gvwf01mlqajk3nx7l"))))
+         "0ynrf65m7abq2fjnarlwq6i1r99pl89npibxx05rlplcgpybrdmr"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
-       ("ghc-hunit" ,ghc-hunit)))
+     (list ghc-hxt-charproperties ghc-hunit))
     (home-page "https://wiki.haskell.org/Regular_expressions_for_XML_Schema")
     (synopsis "Regular expression library for W3C XML Schema regular expressions")
     (description
@@ -1521,7 +1488,7 @@ derivations of regular expressions.")
 (define-public ghc-hxt
   (package
     (name "ghc-hxt")
-    (version "9.3.1.18")
+    (version "9.3.1.22")
     (source
      (origin
        (method url-fetch)
@@ -1531,14 +1498,12 @@ derivations of regular expressions.")
              ".tar.gz"))
        (sha256
         (base32
-         "0836k65px3w9c5h1h2bmzq5a7mp6ajxwvfg3pfr2kbxwkgc0j63j"))))
+         "1n9snbdl46x23ka7bbsls1vsn0plpmfmbpbl0msjfm92fkk2yq7g"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
     (inputs
-     `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
-       ("ghc-hxt-unicode" ,ghc-hxt-unicode)
-       ("ghc-hxt-regex-xmlschema" ,ghc-hxt-regex-xmlschema)
-       ("ghc-network-uri" ,ghc-network-uri)))
+     (list ghc-hxt-charproperties ghc-hxt-unicode ghc-hxt-regex-xmlschema
+           ghc-network-uri))
     (home-page "https://github.com/UweSchmidt/hxt")
     (synopsis "Collection of tools for processing XML with Haskell")
     (description
@@ -1549,7 +1514,7 @@ introduces a more general approach for processing XML with Haskell.")
 (define-public ghc-http-common
   (package
     (name "ghc-http-common")
-    (version "0.8.2.0")
+    (version "0.8.3.4")
     (source
      (origin
        (method url-fetch)
@@ -1557,14 +1522,15 @@ introduces a more general approach for processing XML with Haskell.")
                            "http-common/http-common-" version ".tar.gz"))
        (sha256
         (base32
-         "14s5a178sb2vm5k00rs21760mds5dz2gs10k9iyn22h01mxyf599"))))
+         "1xpbnfac0fqa5r670ggwm4kq3cmz9jpaw9bx40j9w9qiw6xi4i28"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-network" ,ghc-network)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)))
+     (list ghc-base64-bytestring
+           ghc-blaze-builder
+           ghc-case-insensitive
+           ghc-network
+           ghc-random
+           ghc-unordered-containers))
     (home-page "https://github.com/afcowie/http-streams/")
     (synopsis "Common types for HTTP clients and servers")
     (description "Base types used by a variety of HTTP clients and
@@ -1577,7 +1543,7 @@ pipes-http re-export this package's types and functions.")
 (define-public ghc-http-streams
   (package
     (name "ghc-http-streams")
-    (version "0.8.6.1")
+    (version "0.8.9.4")
     (source
      (origin
        (method url-fetch)
@@ -1585,21 +1551,21 @@ pipes-http re-export this package's types and functions.")
                            "http-streams/http-streams-" version ".tar.gz"))
        (sha256
         (base32
-         "18vxd35n7s3z4gjvad94bknc8z1w9d7ccgphnhsxlz5cackizmxq"))))
+         "03xdcb0v735xdrkjlm1w56mskh3x08cbsjrcd7wn4li65ixc20xa"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-io-streams" ,ghc-io-streams)
-       ("ghc-hsopenssl" ,ghc-hsopenssl)
-       ("ghc-openssl-streams" ,ghc-openssl-streams)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-http-common" ,ghc-http-common)
-       ("ghc-network-uri" ,ghc-network-uri)
-       ("ghc-network" ,ghc-network)))
+     (list ghc-attoparsec
+           ghc-base64-bytestring
+           ghc-blaze-builder
+           ghc-case-insensitive
+           ghc-io-streams
+           ghc-hsopenssl
+           ghc-openssl-streams
+           ghc-unordered-containers
+           ghc-aeson
+           ghc-http-common
+           ghc-network-uri
+           ghc-network))
     (arguments
      `(#:tests? #f)) ; tests rely on an outdated version of snap-server
     (home-page "https://github.com/afcowie/http-streams/")
@@ -1613,7 +1579,7 @@ deal with the result.")
 (define-public ghc-snap-core
   (package
     (name "ghc-snap-core")
-    (version "1.0.4.0")
+    (version "1.0.4.2")
     (source
      (origin
        (method url-fetch)
@@ -1621,34 +1587,38 @@ deal with the result.")
                            "snap-core/snap-core-" version ".tar.gz"))
        (sha256
         (base32
-         "0dklxgrbqhnb6bc4ic358g4fyj11ywmjrkxxhqcjmci2hhpn00mr"))))
+         "0zxdhx4wk70bkn71574lyz3zhq79yy98rv05r4564rd100xw3fqs"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:tests? #f ; TODO: Fail to compile.
+       #:cabal-revision
+       ("1" "065v61clskzikywv0gy9n4fjaszi2fnjklal83kqbzhzzgkf83ng")))
     (inputs
-     `(("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-bytestring-builder" ,ghc-bytestring-builder)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-lifted-base" ,ghc-lifted-base)
-       ("ghc-io-streams" ,ghc-io-streams)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-random" ,ghc-random)
-       ("ghc-readable" ,ghc-readable)
-       ("ghc-regex-posix" ,ghc-regex-posix)
-       ("ghc-transformers-base" ,ghc-transformers-base)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-network-uri" ,ghc-network-uri)
-       ("ghc-network" ,ghc-network)))
+     (list ghc-old-locale
+           ghc-hunit
+           ghc-attoparsec
+           ghc-bytestring-builder
+           ghc-case-insensitive
+           ghc-lifted-base
+           ghc-io-streams
+           ghc-hashable
+           ghc-monad-control
+           ghc-random
+           ghc-readable
+           ghc-regex-posix
+           ghc-transformers-base
+           ghc-unix-compat
+           ghc-unordered-containers
+           ghc-vector
+           ghc-network-uri
+           ghc-network))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-parallel" ,ghc-parallel)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-       ("ghc-zlib" ,ghc-zlib)))
+     (list ghc-quickcheck
+           ghc-parallel
+           ghc-test-framework
+           ghc-test-framework-hunit
+           ghc-test-framework-quickcheck2
+           ghc-zlib))
     (home-page "http://snapframework.com/")
     (synopsis "Haskell Web Framework (core interfaces and types)")
     (description "Snap is a simple and fast web development framework
@@ -1660,7 +1630,7 @@ contains the core definitions and types for the Snap framework.")
 (define-public ghc-snap-server
   (package
     (name "ghc-snap-server")
-    (version "1.1.1.1")
+    (version "1.1.2.0")
     (source
      (origin
        (method url-fetch)
@@ -1668,38 +1638,35 @@ contains the core definitions and types for the Snap framework.")
                            "snap-server/snap-server-" version ".tar.gz"))
        (sha256
         (base32
-         "0lw475wp0lnrbgc3jcfif3qjjc3pmrh2k74d8cgpnc1304g6a2s5"))))
+         "0w4yv9a5ilpma0335ariwap2iscmdbaaif88lq3cm7px910nyc4j"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-bytestring-builder" ,ghc-bytestring-builder)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-clock" ,ghc-clock)
-       ("ghc-io-streams" ,ghc-io-streams)
-       ("ghc-io-streams-haproxy" ,ghc-io-streams-haproxy)
-       ("ghc-lifted-base" ,ghc-lifted-base)
-       ("ghc-network" ,ghc-network)
-       ("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-snap-core" ,ghc-snap-core)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-vector" ,ghc-vector)))
+     (list ghc-attoparsec
+           ghc-blaze-builder
+           ghc-bytestring-builder
+           ghc-case-insensitive
+           ghc-clock
+           ghc-io-streams
+           ghc-io-streams-haproxy
+           ghc-lifted-base
+           ghc-network
+           ghc-old-locale
+           ghc-snap-core
+           ghc-unix-compat
+           ghc-vector))
     (native-inputs
-     `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-random" ,ghc-random)
-       ("ghc-threads" ,ghc-threads)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-http-streams" ,ghc-http-streams)
-       ("ghc-http-common" ,ghc-http-common)
-       ("ghc-parallel" ,ghc-parallel)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
-    (arguments
-     `(#:cabal-revision
-       ("1" "094b7ll47lxd4lvr6kd59jyw0vz686gw5cx16w758d6fli0cy3x3")))
+     (list ghc-base16-bytestring
+           ghc-monad-control
+           ghc-random
+           ghc-threads
+           ghc-hunit
+           ghc-quickcheck
+           ghc-http-streams
+           ghc-http-common
+           ghc-parallel
+           ghc-test-framework
+           ghc-test-framework-hunit
+           ghc-test-framework-quickcheck2))
     (home-page "http://snapframework.com/")
     (synopsis "Web server for the Snap Framework")
     (description "Snap is a simple and fast web development framework
@@ -1753,7 +1720,7 @@ users (e.g. Debian).")
          "0yjyzqh3qzhy5h3nql1fckw0gcfb0f4wj9pm85nafpfqp2kg58hv"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-http" ,ghc-http)))
+     (list ghc-http))
     (home-page "https://github.com/ndmitchell/js-flot")
     (synopsis "Obtain minified flot code")
     (description "This package bundles the minified
@@ -1767,7 +1734,7 @@ requirements of downstream users (e.g. Debian).")
 (define-public ghc-happstack-server
   (package
     (name "ghc-happstack-server")
-    (version "7.5.4")
+    (version "7.7.1.1")
     (source
      (origin
        (method url-fetch)
@@ -1776,32 +1743,30 @@ requirements of downstream users (e.g. Debian).")
              version ".tar.gz"))
        (sha256
         (base32
-         "0i7csvmwv7n68gkwqzi985p2mjdgzipjnlj873sdiknhx9pfmq70"))))
+         "0nc5rnvrzl9m3pinmdq234m80qkf4jszbdqnd567f7lh09yiqw9n"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-network" ,ghc-network)
-       ("ghc-network-bsd" ,ghc-network-bsd)
-       ("ghc-network-uri" ,ghc-network-uri)
-       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-extensible-exceptions"
-        ,ghc-extensible-exceptions)
-       ("ghc-hslogger" ,ghc-hslogger)
-       ("ghc-html" ,ghc-html)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-sendfile" ,ghc-sendfile)
-       ("ghc-system-filepath" ,ghc-system-filepath)
-       ("ghc-syb" ,ghc-syb)
-       ("ghc-threads" ,ghc-threads)
-       ("ghc-transformers-base" ,ghc-transformers-base)
-       ("ghc-transformers-compat"
-        ,ghc-transformers-compat)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-zlib" ,ghc-zlib)))
-    (native-inputs `(("ghc-hunit" ,ghc-hunit)))
+     (list ghc-network
+           ghc-network-bsd
+           ghc-network-uri
+           ghc-base64-bytestring
+           ghc-blaze-html
+           ghc-exceptions
+           ghc-extensible-exceptions
+           ghc-hslogger
+           ghc-html
+           ghc-monad-control
+           ghc-old-locale
+           ghc-semigroups
+           ghc-sendfile
+           ghc-system-filepath
+           ghc-syb
+           ghc-threads
+           ghc-transformers-base
+           ghc-transformers-compat
+           ghc-utf8-string
+           ghc-zlib))
+    (native-inputs (list ghc-hunit))
     (home-page "http://happstack.com")
     (synopsis "Web related tools and services for Haskell")
     (description
@@ -1824,7 +1789,7 @@ cookies, serving files, and more.")
         (base32
          "0988snmx3bylpw3kcq8hsgji8idc6xcrcfp275qjv3apfdgc9rp0"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-network" ,ghc-network)))
+    (inputs (list ghc-network))
     (home-page
      "https://hub.darcs.net/stepcut/sendfile")
     (synopsis "Portable sendfile library for Haskell")
@@ -1835,7 +1800,7 @@ cookies, serving files, and more.")
 (define-public ghc-scalpel-core
   (package
     (name "ghc-scalpel-core")
-    (version "0.6.0")
+    (version "0.6.2")
     (source
       (origin
         (method url-fetch)
@@ -1844,17 +1809,17 @@ cookies, serving files, and more.")
                "scalpel-core-" version ".tar.gz"))
         (sha256
          (base32
-          "1qf0gnidyh8zk0acj99vn6hsj37m410lrm50sqpiv1i36rpmmsqh"))))
+          "07mjff8aqwabx8yhq8bd7jpnarkkrjqss8h8s2wkfmfj808fllmf"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-data-default" ,ghc-data-default)
-       ("ghc-fail" ,ghc-fail)
-       ("ghc-pointedlist" ,ghc-pointedlist)
-       ("ghc-regex-base" ,ghc-regex-base)
-       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
-       ("ghc-tagsoup" ,ghc-tagsoup)
-       ("ghc-vector" ,ghc-vector)))
-    (native-inputs `(("ghc-hunit" ,ghc-hunit)))
+     (list ghc-data-default
+           ghc-fail
+           ghc-pointedlist
+           ghc-regex-base
+           ghc-regex-tdfa
+           ghc-tagsoup
+           ghc-vector))
+    (native-inputs (list ghc-hunit))
     (home-page "https://github.com/fimad/scalpel")
     (synopsis
      "High level web scraping library for Haskell")
@@ -1867,7 +1832,7 @@ non-Haskell dependencies.")
 (define-public ghc-scalpel
   (package
     (name "ghc-scalpel")
-    (version "0.6.0")
+    (version "0.6.2")
     (source
       (origin
         (method url-fetch)
@@ -1876,15 +1841,15 @@ non-Haskell dependencies.")
                "scalpel-" version ".tar.gz"))
         (sha256
          (base32
-          "0jbrfcgljl8kbcwi2zqx1jp3c3dpxrkc94za44x56kcz68n89hlz"))))
+          "04hhvk0yjxha3yg6n9fxivrz97hpjjiiblnj0bvs5myax1ggkjch"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-scalpel-core" ,ghc-scalpel-core)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-data-default" ,ghc-data-default)
-       ("ghc-http-client" ,ghc-http-client)
-       ("ghc-http-client-tls" ,ghc-http-client-tls)
-       ("ghc-tagsoup" ,ghc-tagsoup)))
+     (list ghc-scalpel-core
+           ghc-case-insensitive
+           ghc-data-default
+           ghc-http-client
+           ghc-http-client-tls
+           ghc-tagsoup))
     (home-page "https://github.com/fimad/scalpel")
     (synopsis
      "High level web scraping library for Haskell")
@@ -1897,23 +1862,21 @@ declarative and monadic interface.")
 (define-public ghc-sourcemap
   (package
     (name "ghc-sourcemap")
-    (version "0.1.6")
+    (version "0.1.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/sourcemap/sourcemap-"
+             "https://hackage.haskell.org/package/sourcemap/sourcemap-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "0ynfm44ym8y592wnzdwa0d05dbkffyyg5sm26y5ylzpynk64r85r"))))
+         "0kz8xpcd5syg5s4qa2qq8ylaxjhabj127w42may46vv6i0q1bf8a"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-utf8-string" ,ghc-utf8-string)))
+     (list ghc-aeson ghc-unordered-containers ghc-attoparsec
+           ghc-utf8-string))
     (arguments
      `(#:tests? #f ; FIXME: Fail to compile
        #:cabal-revision
@@ -1931,27 +1894,22 @@ proposed by Google and Mozilla here
 (define-public ghc-language-javascript
   (package
     (name "ghc-language-javascript")
-    (version "0.7.0.0")
+    (version "0.7.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/language-javascript/language-javascript-"
+             "https://hackage.haskell.org/package/language-javascript/language-javascript-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "15bpqpkjf2y3fk8wff9zlnkpsjc63bnbvhlkxrs9alj0bikq17nk"))))
+         "0s6igb54cxm2jywgc3sq53f52gcsc39wd3g78yisfzvl9jm3d86i"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-utf8-string" ,ghc-utf8-string)))
+     (list ghc-blaze-builder ghc-utf8-string))
     (native-inputs
-     `(("ghc-alex" ,ghc-alex)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-happy" ,ghc-happy)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-utf8-light" ,ghc-utf8-light)))
+     (list ghc-alex ghc-quickcheck ghc-happy ghc-hspec ghc-utf8-light))
     (home-page
      "https://github.com/erikd/language-javascript")
     (synopsis "Parser for JavaScript")
@@ -1976,14 +1934,10 @@ as frontend to hjsmin.")
          "0wvygg3rdbxzrmr61a9w6ddv9pfric85ih8hnxyk0ydzn7i59abs"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-aeson-better-errors" ,ghc-aeson-better-errors)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-transformers" ,ghc-transformers)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)))
+     (list ghc-aeson ghc-aeson-better-errors ghc-scientific
+           ghc-transformers ghc-unordered-containers))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty ghc-tasty-hunit))
     (home-page "https://github.com/hdgarrood/bower-json")
     (synopsis "Read bower.json from Haskell")
     (description
@@ -2004,21 +1958,21 @@ Bower's package manifest file, bower.json.")
         (base32 "1isvi4fahq70lzxfz23as7qzkc01g7kba568l6flrgd0j1984fsy"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-data-default" ,ghc-data-default)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-http-client" ,ghc-http-client)
-       ("ghc-http-client-tls" ,ghc-http-client-tls)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-lens" ,ghc-lens)
-       ("ghc-transformers-base" ,ghc-transformers-base)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-xml-conduit" ,ghc-xml-conduit)
-       ("ghc-xml-hamlet" ,ghc-xml-hamlet)
-       ("ghc-network" ,ghc-network)
-       ("ghc-network-uri" ,ghc-network-uri)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
+     (list ghc-case-insensitive
+           ghc-data-default
+           ghc-exceptions
+           ghc-http-client
+           ghc-http-client-tls
+           ghc-http-types
+           ghc-lens
+           ghc-transformers-base
+           ghc-transformers-compat
+           ghc-utf8-string
+           ghc-xml-conduit
+           ghc-xml-hamlet
+           ghc-network
+           ghc-network-uri
+           ghc-optparse-applicative))
     (home-page "http://floss.scru.org/hDAV")
     (synopsis "RFC 4918 WebDAV support")
     (description "This package provides a library for the Web Distributed
@@ -2029,7 +1983,7 @@ Authoring and Versioning (WebDAV) extensions to HTTP as well an executable,
 (define-public ghc-yesod-test
   (package
     (name "ghc-yesod-test")
-    (version "1.6.9")
+    (version "1.6.12")
     (source
      (origin
        (method url-fetch)
@@ -2037,34 +1991,31 @@ Authoring and Versioning (WebDAV) extensions to HTTP as well an executable,
                            "yesod-test/yesod-test-" version ".tar.gz"))
        (sha256
         (base32
-         "0v25lqq7hgd5lggnyfd9kamkzd4126rd7vlhc131n253n4by4yak"))))
+         "1xgy7dzhqjgllqcpyyxs0spdg6vlz2c1sjvni7w7qnsf0ckyw2l8"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-cookie" ,ghc-cookie)
-       ("ghc-hspec-core" ,ghc-hspec-core)
-       ("ghc-html-conduit" ,ghc-html-conduit)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-network" ,ghc-network)
-       ("ghc-memory" ,ghc-memory)
-       ("ghc-pretty-show" ,ghc-pretty-show)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-wai" ,ghc-wai)
-       ("ghc-wai-extra" ,ghc-wai-extra)
-       ("ghc-xml-conduit" ,ghc-xml-conduit)
-       ("ghc-xml-types" ,ghc-xml-types)
-       ("ghc-yesod-core" ,ghc-yesod-core)))
+     (list ghc-hunit
+           ghc-aeson
+           ghc-attoparsec
+           ghc-blaze-builder
+           ghc-blaze-html
+           ghc-case-insensitive
+           ghc-conduit
+           ghc-cookie
+           ghc-hspec-core
+           ghc-html-conduit
+           ghc-http-types
+           ghc-network
+           ghc-memory
+           ghc-pretty-show
+           ghc-semigroups
+           ghc-wai
+           ghc-wai-extra
+           ghc-xml-conduit
+           ghc-xml-types
+           ghc-yesod-core))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-yesod-form" ,ghc-yesod-form)
-       ("ghc-unliftio" ,ghc-unliftio)
-       ("ghc-unliftio-core" ,ghc-unliftio-core)))
+     (list ghc-hspec ghc-yesod-form ghc-unliftio ghc-unliftio-core))
     (home-page "https://www.yesodweb.com")
     (synopsis "Integration testing for WAI/Yesod Applications")
     (description "This package's main goal is to encourage integration
@@ -2077,7 +2028,7 @@ HTML responses using CSS selectors.")
 (define-public ghc-wai-app-static
   (package
     (name "ghc-wai-app-static")
-    (version "3.1.7.1")
+    (version "3.1.7.2")
     (source
      (origin
        (method url-fetch)
@@ -2086,33 +2037,30 @@ HTML responses using CSS selectors.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "10k6jb450p89r6dgpnwh428gg0wfw2qbx9n126jkvbchcjr1f4v8"))))
+         "138gd5482psq0wbm8s1az672lksi7vbavq6ayiyjkliivf6xpry8"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-wai" ,ghc-wai)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-file-embed" ,ghc-file-embed)
-       ("ghc-cryptonite" ,ghc-cryptonite)
-       ("ghc-memory" ,ghc-memory)
-       ("ghc-http-date" ,ghc-http-date)
-       ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-blaze-markup" ,ghc-blaze-markup)
-       ("ghc-mime-types" ,ghc-mime-types)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-zlib" ,ghc-zlib)
-       ("ghc-wai-extra" ,ghc-wai-extra)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-warp" ,ghc-warp)))
+     (list ghc-wai
+           ghc-http-types
+           ghc-unix-compat
+           ghc-old-locale
+           ghc-file-embed
+           ghc-cryptonite
+           ghc-memory
+           ghc-http-date
+           ghc-blaze-html
+           ghc-blaze-markup
+           ghc-mime-types
+           ghc-unordered-containers
+           ghc-zlib
+           ghc-wai-extra
+           ghc-optparse-applicative
+           ghc-warp))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-network" ,ghc-network)
-       ("ghc-temporary" ,ghc-temporary)
-       ("ghc-mockery" ,ghc-mockery)))
+     (list ghc-hspec ghc-network ghc-temporary ghc-mockery))
     (arguments
      `(#:cabal-revision
-       ("1" "0bkmml30rzifvb7nxddj3pxczk0kniahra19mjn0qrkzy1n5752p")))
+       ("1" "1q7zwjasysgbp9rdp75535igd7s6mhi2bnl4pzsn6vbyfw3qnsxd")))
     (home-page "https://www.yesodweb.com/book/web-application-interface")
     (synopsis "WAI application for static serving")
     (description "This package provides a Web Application
@@ -2141,10 +2089,9 @@ helper functions and datatypes for use outside of WAI.")
              (substitute* '("test/test-cli.hs" "test/cli/core/runner")
                (("dist-newstyle") "dist")))))))
     (inputs
-     `(("ghc-language-javascript" ,ghc-language-javascript)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
+     (list ghc-language-javascript ghc-optparse-applicative))
     (native-inputs
-     `(("ghc-extra" ,ghc-extra)))
+     (list ghc-extra))
     (home-page "https://github.com/erikd/hjsmin")
     (synopsis "Haskell implementation of a JavaScript minifier")
     (description "This library provides tools reduce the size of
@@ -2155,7 +2102,7 @@ syntactic elements, without changing the semantics.")
 (define-public ghc-yesod-static
   (package
     (name "ghc-yesod-static")
-    (version "1.6.0.1")
+    (version "1.6.1.0")
     (source
      (origin
        (method url-fetch)
@@ -2163,35 +2110,31 @@ syntactic elements, without changing the semantics.")
                            "yesod-static/yesod-static-" version ".tar.gz"))
        (sha256
         (base32
-         "1jd0ryfr2vyrwasyvbqmc6j4ngv1lgz78w427f169l7gyl1firxb"))))
+         "18f5hm9ncvkzl8bkn39cg841z0k5iqs5w45afsyk9y6k98pjd54p"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-async" ,ghc-async)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-cryptonite" ,ghc-cryptonite)
-       ("ghc-cryptonite-conduit" ,ghc-cryptonite-conduit)
-       ("ghc-css-text" ,ghc-css-text)
-       ("ghc-data-default" ,ghc-data-default)
-       ("ghc-file-embed" ,ghc-file-embed)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-hjsmin" ,ghc-hjsmin)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-memory" ,ghc-memory)
-       ("ghc-mime-types" ,ghc-mime-types)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-wai" ,ghc-wai)
-       ("ghc-wai-app-static" ,ghc-wai-app-static)
-       ("ghc-yesod-core" ,ghc-yesod-core)))
+     (list ghc-async
+           ghc-attoparsec
+           ghc-base64-bytestring
+           ghc-blaze-builder
+           ghc-conduit
+           ghc-cryptonite
+           ghc-cryptonite-conduit
+           ghc-css-text
+           ghc-data-default
+           ghc-file-embed
+           ghc-hashable
+           ghc-hjsmin
+           ghc-http-types
+           ghc-memory
+           ghc-mime-types
+           ghc-unix-compat
+           ghc-unordered-containers
+           ghc-wai
+           ghc-wai-app-static
+           ghc-yesod-core))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-yesod-test" ,ghc-yesod-test)
-       ("ghc-wai-extra" ,ghc-wai-extra)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-rio" ,ghc-rio)))
+     (list ghc-hspec ghc-yesod-test ghc-wai-extra ghc-hunit ghc-rio))
     (home-page "https://www.yesodweb.com/")
     (synopsis "Static file serving subsite for Yesod")
     (description "This package provides a static file serving subsite
@@ -2213,11 +2156,8 @@ for the Yesod Web Framework.")
          "1ifqgyc1ccig5angh5l1iq7vyms4lvi8wzvysg5dw82nml49n02m"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-wai" ,ghc-wai)
-       ("ghc-warp" ,ghc-warp)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-streaming-commons" ,ghc-streaming-commons)
-       ("ghc-async" ,ghc-async)))
+     (list ghc-wai ghc-warp ghc-http-types ghc-streaming-commons
+           ghc-async))
     (home-page "https://hackage.haskell.org/package/wai-handler-launch")
     (synopsis "Launch a Web application in the default browser")
     (description "This package handles cross-platform Web browser
@@ -2248,25 +2188,44 @@ server no longer receives pings, it shuts down.")
            (lambda _
              (invoke "runhaskell" "Setup.hs" "test" "unit-tests"))))))
     (inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-base-unicode-symbols" ,ghc-base-unicode-symbols)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-wai" ,ghc-wai)))
+     (list ghc-attoparsec ghc-base-unicode-symbols ghc-case-insensitive
+           ghc-http-types ghc-wai))
     (native-inputs
-     `(("ghc-network" ,ghc-network)
-       ("ghc-wai-websockets" ,ghc-wai-websockets)
-       ("ghc-warp" ,ghc-warp)
-       ("ghc-websockets" ,ghc-websockets)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-wai-extra" ,ghc-wai-extra)
-       ("ghc-wai-websockets" ,ghc-wai-websockets)
-       ("ghc-warp" ,ghc-warp)
-       ("ghc-websockets" ,ghc-websockets)))
+     (list ghc-network
+           ghc-wai-websockets
+           ghc-warp
+           ghc-websockets
+           ghc-tasty
+           ghc-tasty-hunit
+           ghc-wai-extra
+           ghc-wai-websockets
+           ghc-warp
+           ghc-websockets))
     (home-page "https://github.com/larskuhtz/wai-cors")
     (synopsis "Cross-Origin Resource Sharing (CORS) for WAI")
     (description "This package provides an implementation of Cross-Origin
 Resource Sharing (CORS) for the Web Application Framework (WAI) that
 aims to be compliant with @url{https://www.w3.org/TR/cors}.")
     (license license:expat)))
+
+(define-public ghc-network-run
+  (package
+    (name "ghc-network-run")
+    (version "0.2.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/network-run/network-run-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32 "0w3dmwk03j4n01xkiq8m4sqa27bskh239mpw7m4ihjmkxqcwc5gl"))))
+    (build-system haskell-build-system)
+    (inputs (list ghc-network))
+    (home-page "https://hackage.haskell.org/package/network-run")
+    (synopsis "Simple network runner library")
+    (description
+     "This package provides a simple network runner library in Haskell.")
+    (license license:bsd-3)))
+
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 5ff283da37..f5d15bcc2f 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -49,6 +49,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages graphviz)
@@ -68,6 +69,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages serialization)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system haskell)
@@ -92,7 +94,7 @@
         (base32
          "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-random" ,ghc-random)))
+    (inputs (list ghc-random))
     (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
     (synopsis "Abstract, parameterized interface to mutable Deques for Haskell")
     (description "This Haskell package provides an abstract interface to
@@ -141,7 +143,7 @@ module for more details.")
 (define-public ghc-active
   (package
     (name "ghc-active")
-    (version "0.2.0.14")
+    (version "0.2.0.15")
     (source
      (origin
        (method url-fetch)
@@ -149,16 +151,13 @@ module for more details.")
                            "active/active-" version ".tar.gz"))
        (sha256
         (base32
-         "0x3b4ln6csa554qls28wbxvclkbdz3yi60i1m0q5ing0cs16fifz"))))
+         "019xr66pahsssqr2hybs88mga4qshv1vmd22j7624wqafqm57d74"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-vector" ,ghc-vector)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-semigroupoids" ,ghc-semigroupoids)
-       ("ghc-lens" ,ghc-lens)
-       ("ghc-linear" ,ghc-linear)))
+     (list ghc-vector ghc-semigroups ghc-semigroupoids ghc-lens
+           ghc-linear))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-quickcheck))
     (home-page "https://hackage.haskell.org/package/active")
     (synopsis "Abstractions for animation")
     (description "This package defines an @code{Active} abstraction for
@@ -187,20 +186,18 @@ diagrams framework}.")
      `(#:cabal-revision
        ("2" "1yfsjx7dqikg3hvld7i91xfsg5lawmr5980lvfd794sybmgxsf17")))
     (inputs
-     `(("ghc-profunctors" ,ghc-profunctors)
-       ("ghc-comonad" ,ghc-comonad)
-       ("ghc-contravariant" ,ghc-contravariant)
-       ("ghc-distributive" ,ghc-distributive)
-       ("ghc-free" ,ghc-free)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-semigroupoids" ,ghc-semigroupoids)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-void" ,ghc-void)))
-    (native-inputs
-     `(("ghc-generic-deriving" ,ghc-generic-deriving)
-       ("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-profunctors
+           ghc-comonad
+           ghc-contravariant
+           ghc-distributive
+           ghc-free
+           ghc-tagged
+           ghc-semigroupoids
+           ghc-semigroups
+           ghc-transformers-compat
+           ghc-void))
+    (native-inputs
+     (list ghc-generic-deriving ghc-hspec hspec-discover))
     (home-page "https://github.com/ekmett/adjunctions/")
     (synopsis "Adjunctions and representable functors")
     (description "This library provides adjunctions and representable functors
@@ -210,7 +207,7 @@ for Haskell.")
 (define-public ghc-aeson-compat
   (package
     (name "ghc-aeson-compat")
-    (version "0.3.9")
+    (version "0.3.10")
     (source
      (origin
        (method url-fetch)
@@ -219,22 +216,25 @@ for Haskell.")
                            "aeson-compat-" version ".tar.gz"))
        (sha256
         (base32
-         "1j13gykv4ryvmr14w5blz0nnpdb4p0hpa27wahw3mhb1lwdr8hz0"))))
-    (build-system haskell-build-system)
-    (arguments `(#:tests? #f))  ;  FIXME: Tests require QuickCheck >= 2.10
-    (inputs `(("ghc-base-compat" ,ghc-base-compat)
-              ("ghc-aeson" ,ghc-aeson)
-              ("ghc-attoparsec" ,ghc-attoparsec)
-              ("ghc-attoparsec" ,ghc-attoparsec-iso8601)
-              ("ghc-exceptions" ,ghc-exceptions)
-              ("ghc-hashable" ,ghc-hashable)
-              ("ghc-scientific" ,ghc-scientific)
-              ("ghc-time-locale-compat" ,ghc-time-locale-compat)
-              ("ghc-unordered-containers" ,ghc-unordered-containers)
-              ("ghc-vector" ,ghc-vector)
-              ("ghc-tagged" ,ghc-tagged)
-              ("ghc-semigroups" ,ghc-semigroups)
-              ("ghc-nats" ,ghc-nats)))
+         "0ia3qfdpbrzhwwg4ywpdwca0z1m85k081pcz6jh1sx8qjsvcr71w"))))
+    (build-system haskell-build-system)
+    (inputs (list ghc-base-compat
+                  ghc-aeson
+                  ghc-attoparsec
+                  ghc-attoparsec-iso8601
+                  ghc-hashable
+                  ghc-scientific
+                  ghc-time-locale-compat
+                  ghc-unordered-containers
+                  ghc-vector
+                  ghc-tagged))
+    (native-inputs
+     (list ghc-tasty
+           ghc-tasty-hunit
+           ghc-tasty-quickcheck
+           ghc-quickcheck
+           ghc-quickcheck-instances
+           ghc-base-orphans))
     (home-page "https://github.com/phadej/aeson-compat")
     (synopsis "Compatibility layer for ghc-aeson")
     (description "This Haskell package provides compatibility layer for
@@ -244,7 +244,7 @@ ghc-aeson.")
 (define-public ghc-aeson-diff
   (package
     (name "ghc-aeson-diff")
-    (version "1.1.0.7")
+    (version "1.1.0.9")
     (source
      (origin
        (method url-fetch)
@@ -252,26 +252,26 @@ ghc-aeson.")
                            "aeson-diff/aeson-diff-" version ".tar.gz"))
        (sha256
         (base32
-         "01d48pd7d1mb9cd5yxfajln8rmjdjq8ch91s0lav4qw1azv6vp2r"))))
+         "18bm4qyjjwgrr6dxc4y0vai0z6qgrh2lcqb4jrr4xqs4cxrlwr92"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-edit-distance-vector" ,ghc-edit-distance-vector)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
-    (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
-       ("ghc-glob" ,ghc-glob)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-doctest" ,ghc-doctest)
-       ("hlint" ,hlint)))
+     (list ghc-aeson
+           ghc-edit-distance-vector
+           ghc-hashable
+           ghc-scientific
+           ghc-unordered-containers
+           ghc-vector
+           ghc-semigroups
+           ghc-optparse-applicative))
+    (native-inputs
+     (list ghc-quickcheck
+           ghc-quickcheck-instances
+           ghc-glob
+           ghc-quickcheck
+           ghc-quickcheck-instances
+           ghc-quickcheck
+           ghc-doctest
+           hlint))
     (home-page "https://github.com/thsutton/aeson-diff")
     (synopsis "Extract and apply patches to JSON documents")
     (description "This is a small library for working with changes to JSON
@@ -283,7 +283,7 @@ systems.")
 (define-public ghc-alex
   (package
     (name "ghc-alex")
-    (version "3.2.4")
+    (version "3.2.6")
     (source
      (origin
        (method url-fetch)
@@ -293,7 +293,7 @@ systems.")
              ".tar.gz"))
        (sha256
         (base32
-         "0cpjixgsr0b2x4s6hz4aa6gnmjw9i7xd9nlfi8m37zqlidq4v3nm"))))
+         "042lrkn0dbpjn5ivj6j26jzb1fwrj8c1aj18ykxja89isg0hiali"))))
     (build-system haskell-build-system)
     (arguments
      `(#:phases
@@ -304,9 +304,9 @@ systems.")
                                            (getenv "PATH")))
              (setenv "alex_datadir" (string-append (getcwd) "/data"))
              #t)))))
-    (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
+    (inputs (list ghc-quickcheck))
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (home-page "https://www.haskell.org/alex/")
     (synopsis
      "Tool for generating lexical analysers in Haskell")
@@ -335,10 +335,9 @@ tool lex or flex for C/C++.")
     (arguments
      `(#:extra-directories ("alsa-lib")))
     (inputs
-     `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
-       ("alsa-lib" ,alsa-lib)))
+     (list ghc-extensible-exceptions alsa-lib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://wiki.haskell.org/ALSA")
     (synopsis "Binding to the ALSA Library API (Exceptions)")
     (description "This package provides access to ALSA infrastructure, that is
@@ -360,8 +359,8 @@ needed by both alsa-seq and alsa-pcm.")
       (base32
        "00ny2p3276jilidjs44npc8zmbhynz3f2lpmlwwl6swwx5yijsnb"))))
    (build-system haskell-build-system)
-   (inputs `(("ghc-alsa-core" ,ghc-alsa-core)))
-   (native-inputs `(("ghc-c2hs" ,ghc-c2hs)))
+   (inputs (list ghc-alsa-core))
+   (native-inputs (list ghc-c2hs))
    (home-page "https://github.com/ttuegel/alsa-mixer")
    (synopsis "Bindings to the ALSA simple mixer API")
    (description
@@ -396,7 +395,7 @@ a variety of ways.")
 (define-public ghc-ansi-terminal
   (package
     (name "ghc-ansi-terminal")
-    (version "0.9.1")
+    (version "0.11")
     (source
      (origin
        (method url-fetch)
@@ -406,10 +405,10 @@ a variety of ways.")
              ".tar.gz"))
        (sha256
         (base32
-         "1yr0ld0kqns3w3j9gl62bdwshvyazidx4dv1qkvq19ivnf08w23l"))))
+         "14rp62c7y79n9dmmi7m0l9n3mcq6dh331b4yyyrivm5da6g1nqf6"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-colour" ,ghc-colour)))
+     (list ghc-colour))
     (home-page "https://github.com/feuerbach/ansi-terminal")
     (synopsis "ANSI terminal support for Haskell")
     (description "This package provides ANSI terminal support for Haskell.  It
@@ -431,8 +430,11 @@ cursor, and changing the title.")
         (base32
          "1b2fg8px98dzbaqyns10kvs8kn6cl1hdq5wb9saz40izrpkyicm7"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("2" "1xrv66v5hqchjhj8a0g3awy1qpsswk2jqb4w4yh3mm1py5s0dlr0")))
     (inputs
-     `(("ghc-ansi-terminal" ,ghc-ansi-terminal)))
+     (list ghc-ansi-terminal))
     (home-page "https://github.com/ekmett/ansi-wl-pprint")
     (synopsis "Wadler/Leijen Pretty Printer for colored ANSI terminal output")
     (description "This is a pretty printing library based on Wadler's paper
@@ -465,7 +467,7 @@ style.")
 (define-public ghc-assoc
   (package
     (name "ghc-assoc")
-    (version "1.0.1")
+    (version "1.0.2")
     (source
      (origin
        (method url-fetch)
@@ -475,11 +477,10 @@ style.")
              ".tar.gz"))
        (sha256
         (base32
-         "1m9n4vp190bvn2wcrd4ggfwa9pi93jp0zgx02mdgywn2zfidw020"))))
+         "0kqlizznjy94fm8zr1ng633yxbinjff7cnsiaqs7m33ix338v66q"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-bifunctors" ,ghc-bifunctors)
-       ("ghc-tagged" ,ghc-tagged)))
+     (list ghc-bifunctors ghc-tagged))
     (home-page
      "http://hackage.haskell.org/package/assoc")
     (synopsis
@@ -493,7 +494,7 @@ similar operations (e.g. @code{Either}, @code{These}).")
 (define-public ghc-async
   (package
     (name "ghc-async")
-    (version "2.2.2")
+    (version "2.2.4")
     (source
      (origin
        (method url-fetch)
@@ -503,13 +504,12 @@ similar operations (e.g. @code{Either}, @code{These}).")
              ".tar.gz"))
        (sha256
         (base32
-         "1zxvfcyy4sg8lmzphi5dgnavksj5pav6rbvd5kc48lf4hanb2jjb"))))
+         "09d7w3krfhnmf9dp6yffa9wykinhw541wibnjgnlyv77w1dzhka8"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hashable" ,ghc-hashable)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+     (list ghc-hashable))
+    (native-inputs
+     (list ghc-hunit ghc-test-framework ghc-test-framework-hunit))
     (home-page "https://github.com/simonmar/async")
     (synopsis "Library to run IO operations asynchronously")
     (description "Async provides a library to run IO operations
@@ -521,7 +521,7 @@ will eventually deliver a value of type @code{a}.")
 (define-public ghc-atomic-primops
   (package
     (name "ghc-atomic-primops")
-    (version "0.8.3")
+    (version "0.8.4")
     (source
      (origin
        (method url-fetch)
@@ -529,9 +529,9 @@ will eventually deliver a value of type @code{a}.")
                            "/atomic-primops-" version ".tar.gz"))
        (sha256
         (base32
-         "03n5dmyplrqgbyf8dr91izkxci7gkl3i3fnp82i5ld869zrgjfh0"))))
+         "0gidqyk913vhcz3q4vnpadx3vkkrwb66rqhsxvdba8g2p5z63a12"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-primitive" ,ghc-primitive)))
+    (inputs (list ghc-primitive))
     (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
     (synopsis "Safe approach to CAS and other atomic ops")
     (description
@@ -556,13 +556,9 @@ This library provides a safer method based on the concept of @code{Ticket}s.")
          "1xs3shwnlj8hmnm3q6jc8nv78z0481i5n4hrqqdmbpx8grvlnqyl"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-temporary" ,ghc-temporary)
-       ("ghc-unix-compat" ,ghc-unix-compat)))
+     (list ghc-temporary ghc-unix-compat))
     (native-inputs
-     `(("ghc-temporary" ,ghc-temporary)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-temporary ghc-unix-compat ghc-hspec hspec-discover))
     (home-page "https://github.com/stackbuilders/atomic-write")
     (synopsis "Atomically write to a file")
     (description
@@ -591,7 +587,7 @@ permissions while atomically writing to a file.")
 (define-public ghc-attoparsec
   (package
     (name "ghc-attoparsec")
-    (version "0.13.2.3")
+    (version "0.13.2.5")
     (source
      (origin
        (method url-fetch)
@@ -601,7 +597,7 @@ permissions while atomically writing to a file.")
              ".tar.gz"))
        (sha256
         (base32
-         "1ngjn9h5n0vyki0m2jir4mg85875ysswy9hznpmj1r856mqwc6ix"))))
+         "0vv88m5m7ynjrg114psp4j4s69f1a5va3bvn293vymqrma7g7q11"))))
     (build-system haskell-build-system)
     (arguments
      `(#:phases
@@ -617,13 +613,10 @@ permissions while atomically writing to a file.")
                ((", testProperty \"satisfyWith\" satisfyWith")
                 "")))))))
     (inputs
-     `(("ghc-scientific" ,ghc-scientific)))
+     (list ghc-scientific))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-quickcheck-unicode" ,ghc-quickcheck-unicode)
-       ("ghc-vector" ,ghc-vector)))
+     (list ghc-tasty ghc-tasty-quickcheck ghc-quickcheck
+           ghc-quickcheck-unicode ghc-vector))
     (home-page "https://github.com/bos/attoparsec")
     (synopsis "Fast combinator parsing for bytestrings and text")
     (description "This library provides a fast parser combinator library,
@@ -644,7 +637,7 @@ complicated text/binary file formats.")
 (define-public ghc-attoparsec-iso8601
   (package
     (name "ghc-attoparsec-iso8601")
-    (version "1.0.1.0")
+    (version "1.0.2.0")
     (source
      (origin
        (method url-fetch)
@@ -653,13 +646,12 @@ complicated text/binary file formats.")
                            "attoparsec-iso8601-" version ".tar.gz"))
        (sha256
         (base32
-         "0hj10w15qp2z5bz2v4xahhmbgzclpyfi5l2sv97wqycysg9gp7s9"))))
+         "162gc101mwhmjbfhhv1wm3yvk2h4ra34wpw5x87735cfqxvjv582"))))
     (build-system haskell-build-system)
     (arguments
      `(#:cabal-revision
-       ("1" "1rjhscmczgs1bwyqx7lvkm8py3ylxjd2797mrzgnq60fvm292750")))
-    (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
-              ("ghc-base-compat" ,ghc-base-compat)))
+       ("2" "18557xy5gvkhj0sb35wwxmhqirkiqrkwm0y0pqygsr0aimccs5zm")))
+    (inputs (list ghc-attoparsec ghc-base-compat-batteries ghc-time-compat))
     (home-page "https://github.com/bos/aeson")
     (synopsis "Parse ISO 8601 dates")
     (description "Haskell library for parsing of ISO 8601 dates, originally
@@ -682,10 +674,7 @@ from aeson.")
          "1i36xc2i34aync8271x3pv515l3zb53i518dybn8ghqkhzf27q7l"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-retry" ,ghc-retry)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec ghc-hunit ghc-retry hspec-discover))
     (home-page "https://github.com/yesodweb/wai")
     (synopsis "Efficiently run periodic, on-demand actions")
     (description "This library provides mechanisms to efficiently run
@@ -695,52 +684,64 @@ periodic, on-demand actions in Haskell.")
 (define-public ghc-aws
   (package
     (name "ghc-aws")
-    (version "0.20")
+    (version "0.22")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/"
                            "aws-" version "/aws-" version ".tar.gz"))
        (sha256 (base32
-                "0pwpabmypi1w8rni9qfwabgn95jks4h8dyw6889mn8xzsrhdhyf0"))))
-    (build-system haskell-build-system)
-    (arguments `(#:tests? #f)) ; Tests require AWS credentials.
-    (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-base16-bytestring" ,ghc-base16-bytestring)
-       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-byteable" ,ghc-byteable)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-cereal" ,ghc-cereal)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-cryptonite" ,ghc-cryptonite)
-       ("ghc-data-default" ,ghc-data-default)
-       ("ghc-http-conduit" ,ghc-http-conduit)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-lifted-base" ,ghc-lifted-base)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-network" ,ghc-network)
-       ("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-safe" ,ghc-safe)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-xml-conduit" ,ghc-xml-conduit)))
-    (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-errors" ,ghc-errors)
-       ("ghc-http-client" ,ghc-http-client)
-       ("ghc-http-client-tls" ,ghc-http-client-tls)
-       ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-conduit-combinators" ,ghc-conduit-combinators)))
+                "1l3f94mpih7slz37ikyjkyrwvlf110w87997d8sbnbd8glwlcb8r"))))
+    (build-system haskell-build-system)
+    (arguments
+     `(#:tests? #f ; Tests require AWS credentials.
+       #:configure-flags (list "-fNetworkBSD") ; Use network-bsd.
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'update-constraints
+           (lambda _
+             (substitute* "aws.cabal"
+               (("(base16-bytestring)\\s+==\\s+0\\.1\\.\\*" all dep)
+                dep)
+               (("(base64-bytestring)\\s+==\\s+1\\.0\\.\\*" all dep)
+                dep)))))))
+    (inputs
+     (list ghc-aeson
+           ghc-attoparsec
+           ghc-base16-bytestring
+           ghc-base64-bytestring
+           ghc-blaze-builder
+           ghc-byteable
+           ghc-case-insensitive
+           ghc-cereal
+           ghc-conduit
+           ghc-conduit-extra
+           ghc-cryptonite
+           ghc-data-default
+           ghc-http-conduit
+           ghc-http-types
+           ghc-lifted-base
+           ghc-monad-control
+           ghc-network
+           ghc-network-bsd
+           ghc-old-locale
+           ghc-safe
+           ghc-scientific
+           ghc-tagged
+           ghc-unordered-containers
+           ghc-utf8-string
+           ghc-vector
+           ghc-xml-conduit))
+    (native-inputs
+     (list ghc-quickcheck
+           ghc-errors
+           ghc-http-client
+           ghc-http-client-tls
+           ghc-quickcheck-instances
+           ghc-tasty
+           ghc-tasty-quickcheck
+           ghc-tasty-hunit
+           ghc-conduit-combinators))
     (home-page "https://github.com/aristidb/aws")
     (synopsis "Amazon Web Services for Haskell")
     (description "This package attempts to provide support for using
@@ -752,7 +753,7 @@ Web Services.")
 (define-public ghc-base16-bytestring
   (package
     (name "ghc-base16-bytestring")
-    (version "0.1.1.6")
+    (version "1.0.1.0")
     (source
      (origin
        (method url-fetch)
@@ -761,8 +762,11 @@ Web Services.")
              "base16-bytestring-" version ".tar.gz"))
        (sha256
         (base32
-         "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs"))))
+         "1ynnplw8iz3v5ld0xxgpxgasb0hg62x62wxxf5lx6lxyb15hmiy0"))))
     (build-system haskell-build-system)
+    (native-inputs
+     (list ghc-hunit ghc-quickcheck ghc-test-framework
+           ghc-test-framework-hunit ghc-test-framework-quickcheck2))
     (home-page "https://github.com/bos/base16-bytestring")
     (synopsis "Fast base16 (hex) encoding and decoding for ByteStrings")
     (description
@@ -773,7 +777,7 @@ data quickly and efficiently, using the ByteString type.")
 (define-public ghc-base64-bytestring
   (package
     (name "ghc-base64-bytestring")
-    (version "1.0.0.2")
+    (version "1.1.0.0")
     (source
      (origin
        (method url-fetch)
@@ -782,7 +786,7 @@ data quickly and efficiently, using the ByteString type.")
              version
              ".tar.gz"))
        (sha256
-        (base32 "13305brzlac24pifiqd5a2z10c6k6amhpdy9cc0z5ryrkgnm8dhr"))))
+        (base32 "1adcnkcx4nh3d59k94bkndj0wkgbvchz576qwlpaa7148a86q391"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f))         ; FIXME: testing libraries are missing.
     (home-page "https://github.com/bos/base64-bytestring")
@@ -794,7 +798,7 @@ Haskell @code{ByteString}s.")
 (define-public ghc-base-compat
   (package
     (name "ghc-base-compat")
-    (version "0.10.5")
+    (version "0.11.2")
     (source
      (origin
        (method url-fetch)
@@ -804,13 +808,11 @@ Haskell @code{ByteString}s.")
              ".tar.gz"))
        (sha256
         (base32
-         "0hgvlqcr852hfp52jp99snhbj550mvxxpi8qn15d8ml9aqhyl2lr"))))
+         "1nyvkaij4m01jndw72xl8931czz1xp6jpnynpajabys2ahabb9jk"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-quickcheck ghc-hspec hspec-discover))
     (home-page "https://hackage.haskell.org/package/base-compat")
     (synopsis "Haskell compiler compatibility library")
     (description "This library provides functions available in later versions
@@ -821,7 +823,7 @@ pragmas in your code.")
 (define-public ghc-base-compat-batteries
   (package
     (name "ghc-base-compat-batteries")
-    (version "0.10.5")
+    (version "0.11.2")
     (source
      (origin
        (method url-fetch)
@@ -830,17 +832,12 @@ pragmas in your code.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1vkhc639vqiv5p39jn1v312z32i7yk5q2lf0ap4jxl1v8p8wyp8p"))))
+         "08rh9nlm9ir28fm42xim06ga8qwdqdcvkbb5ckz99bwnmajndq1i"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-base-compat" ,ghc-base-compat)))
+     (list ghc-base-compat))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("hspec-discover" ,hspec-discover)))
-    (arguments
-     `(#:cabal-revision
-       ("1" "15sn2qc8k0hxbb2nai341kkrci98hlhzcj2ci087m0zxcg5jcdbp")))
+     (list ghc-hspec ghc-quickcheck hspec-discover))
     (home-page "https://hackage.haskell.org/package/base-compat-batteries")
     (synopsis "base-compat with extra batteries")
     (description "This library provides functions available in later
@@ -854,7 +851,7 @@ than @code{base-compat}, which has no dependencies.")
 (define-public ghc-basement
   (package
     (name "ghc-basement")
-    (version "0.0.11")
+    (version "0.0.12")
     (source
      (origin
        (method url-fetch)
@@ -862,7 +859,7 @@ than @code{base-compat}, which has no dependencies.")
                            "basement/basement-" version ".tar.gz"))
        (sha256
         (base32
-         "0srlws74yiraqaapgcjd9p5d1fwb3zr9swcz74jpjm55fls2nn37"))))
+         "12zsnxkgv86im2prslk6ddhy0zwpawwjc1h4ff63kpxp2xdl7i2k"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
     (home-page "https://github.com/haskell-foundation/foundation")
@@ -875,7 +872,7 @@ packages.")
 (define-public ghc-base-orphans
   (package
     (name "ghc-base-orphans")
-    (version "0.8.1")
+    (version "0.8.5")
     (source
      (origin
        (method url-fetch)
@@ -885,12 +882,10 @@ packages.")
              ".tar.gz"))
        (sha256
         (base32
-         "1nwr9av27i9p72k0sn96mw3ywdczw65dy5gd5wxpabhhxlxdcas4"))))
+         "1lw1jhrrsdq7x9wr2bwkxq9mscidcad0n30kh9gfk8kgifl5xh9k"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-quickcheck ghc-hspec hspec-discover))
     (home-page "https://hackage.haskell.org/package/base-orphans")
     (synopsis "Orphan instances for backwards compatibility")
     (description "This package defines orphan instances that mimic instances
@@ -900,7 +895,7 @@ available in later versions of base to a wider (older) range of compilers.")
 (define-public ghc-base-prelude
   (package
     (name "ghc-base-prelude")
-    (version "1.3")
+    (version "1.4")
     (source
      (origin
        (method url-fetch)
@@ -909,7 +904,7 @@ available in later versions of base to a wider (older) range of compilers.")
                            "base-prelude-" version ".tar.gz"))
        (sha256
         (base32
-         "1zk728sd09hh2r4xwz4lazsrrgg5cshydn64932sm0vckplndk73"))))
+         "0nn5v2y9kl7i3n21250m7cvn55lvkmzj22wx6q4kaag5ycwwczrs"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
     (home-page "https://github.com/nikita-volkov/base-prelude")
@@ -934,17 +929,17 @@ the bounds of \"base\" as well.")
 (define-public ghc-base-unicode-symbols
   (package
     (name "ghc-base-unicode-symbols")
-    (version "0.2.3")
+    (version "0.2.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/base-unicode-symbols/base-unicode-symbols-"
+             "https://hackage.haskell.org/package/base-unicode-symbols/base-unicode-symbols-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "1ia6li7qjg1zkak4gf6mnbshw45mq9bfjr0jch58ds0lscmvwyzf"))))
+         "0qkhp4ybmx4nbqqkrmw3hkm47bv61i2wpi20qb09wvk10g2dcr23"))))
     (build-system haskell-build-system)
     (home-page "https://wiki.haskell.org/Unicode-symbols")
     (synopsis "Unicode alternatives for common functions and operators")
@@ -974,10 +969,7 @@ stand for certain ASCII character sequences, i.e. → instead of @code{->},
          "0yckmnvm6i4vw0mykj4fzl4ldsf67v8d2h0vp1bakyj84n4myx8h"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hashable" ,ghc-hashable)
-       ("ghc-unordered-containers"
-        ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)))
+     (list ghc-hashable ghc-unordered-containers ghc-vector))
     (home-page "https://github.com/snoyberg/basic-prelude#readme")
     (synopsis "Enhanced core prelude; a common foundation for alternate preludes")
     (description
@@ -1012,10 +1004,9 @@ wishing to create a new prelude should use CorePrelude.")
         (base32 "0znv0y3b3zm5jvhlvj5f5s7y93db67j9yd59w1bnrw2pqv30gqaq"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-transformers-compat" ,ghc-transformers-compat)))
+     (list ghc-transformers-compat))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-hspec ghc-quickcheck))
     (home-page "https://hackage.haskell.org/package/bencode")
     (synopsis "Parsers and printers for bencoded data")
     (description
@@ -1027,7 +1018,7 @@ storing and transmitting loosely structured data.")
 (define-public ghc-bifunctors
   (package
     (name "ghc-bifunctors")
-    (version "5.5.5")
+    (version "5.5.11")
     (source
      (origin
        (method url-fetch)
@@ -1037,19 +1028,17 @@ storing and transmitting loosely structured data.")
              ".tar.gz"))
        (sha256
         (base32
-         "0rn47q8dzv0g1fyams99p4py6q0asxdc50q9k0nj497brk738xcb"))))
+         "070964w7gz578379lyj6xvdbcf367csmz22cryarjr5bz9r9csrb"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-base-orphans" ,ghc-base-orphans)
-       ("ghc-comonad" ,ghc-comonad)
-       ("ghc-th-abstraction" ,ghc-th-abstraction)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-semigroups" ,ghc-semigroups)))
+     (list ghc-base-orphans
+           ghc-comonad
+           ghc-th-abstraction
+           ghc-transformers-compat
+           ghc-tagged
+           ghc-semigroups))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-hspec hspec-discover ghc-quickcheck))
     (home-page "https://github.com/ekmett/bifunctors/")
     (synopsis "Bifunctors for Haskell")
     (description "This package provides bifunctors for Haskell.")
@@ -1104,7 +1093,7 @@ functions.")
 (define-public ghc-blaze-builder
   (package
     (name "ghc-blaze-builder")
-    (version "0.4.1.0")
+    (version "0.4.2.2")
     (source
      (origin
        (method url-fetch)
@@ -1114,11 +1103,17 @@ functions.")
              ".tar.gz"))
        (sha256
         (base32
-         "05681dih2d8s96an945wkbwl05w8ddbcfx8n3r3ck79ydyb8pz4i"))))
+         "0rxg6vjr0ji6g1nngrqpl4k1q9w66fwkhld9cqm5yfhx0a69kp1c"))))
     (build-system haskell-build-system)
-    (arguments `(#:tests? #f))          ; FIXME: Missing test libraries.
     (inputs
-     `(("ghc-utf8-string" ,ghc-utf8-string)))
+     (list ghc-bytestring-builder ghc-semigroups))
+    (native-inputs
+     (list ghc-hunit
+           ghc-quickcheck
+           ghc-test-framework
+           ghc-test-framework-hunit
+           ghc-test-framework-quickcheck2
+           ghc-utf8-string))
     (home-page "https://github.com/lpsmith/blaze-builder")
     (synopsis "Efficient buffered output")
     (description "This library provides an implementation of the older
@@ -1131,7 +1126,7 @@ interoperate with code that uses the new implementation.")
 (define-public ghc-blaze-markup
   (package
     (name "ghc-blaze-markup")
-    (version "0.8.2.3")
+    (version "0.8.2.8")
     (source
      (origin
        (method url-fetch)
@@ -1140,7 +1135,7 @@ interoperate with code that uses the new implementation.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1g9m7ansj7fdyzhz1wqkbzn5amjm50vjgjdwkbjc5qqhagnv1y3j"))))
+         "0jd30wg5yz0a97b36zwqg4hv8faifza1n2gys3l1p3fwf9l3zz23"))))
     (build-system haskell-build-system)
     (arguments
      `(#:phases
@@ -1151,13 +1146,10 @@ interoperate with code that uses the new implementation.")
                (("tasty            >= 1\\.0  && < 1\\.1")
                 "tasty            >= 1.0  && < 1.2")))))))
     (inputs
-     `(("ghc-blaze-builder" ,ghc-blaze-builder)))
+     (list ghc-blaze-builder))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+     (list ghc-hunit ghc-quickcheck ghc-tasty ghc-tasty-hunit
+           ghc-tasty-quickcheck))
     (home-page "https://jaspervdj.be/blaze")
     (synopsis "Fast markup combinator library for Haskell")
     (description "This library provides core modules of a markup combinator
@@ -1178,10 +1170,8 @@ library for Haskell.")
          "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-random" ,ghc-random)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-quickcheck ghc-random ghc-test-framework
+           ghc-test-framework-quickcheck2))
     (home-page "https://github.com/bos/bloomfilter")
     (synopsis "Pure and impure Bloom filter implementations")
     (description "This package provides both mutable and immutable Bloom
@@ -1202,8 +1192,7 @@ interface.")
         (base32 "1hsnmw95i58d4bkpxby3ddsj1cawypw4mdyb18m393s5i8p7iq9q"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-split" ,ghc-split)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-split ghc-quickcheck))
     (home-page "https://hackage.haskell.org/package/boxes")
     (synopsis "2D text pretty-printing library")
     (description
@@ -1258,7 +1247,7 @@ system.")
 (define-public ghc-bytes
   (package
    (name "ghc-bytes")
-   (version "0.15.5")
+   (version "0.17.1")
    (source
     (origin
      (method url-fetch)
@@ -1269,16 +1258,15 @@ system.")
      (file-name (string-append name "-" version ".tar.gz"))
      (sha256
       (base32
-       "063il2vrn0p88r9gzndh4ijs0mxj37khkc9ym9bqdsv7ngk3b683"))))
+       "1qmps8vvg98wfm9xm734hwzi56bsk8r1zc6vx20rlhc79krv5s9s"))))
    (build-system haskell-build-system)
-   (inputs `(("ghc-cereal" ,ghc-cereal)
-             ("cabal-doctest" ,cabal-doctest)
-             ("ghc-doctest" ,ghc-doctest)
-             ("ghc-scientific" ,ghc-scientific)
-             ("ghc-transformers-compat" ,ghc-transformers-compat)
-             ("ghc-unordered-containers" ,ghc-unordered-containers)
-             ("ghc-void" ,ghc-void)
-             ("ghc-vector" ,ghc-vector)))
+   (inputs (list ghc-binary-orphans
+                 ghc-cereal
+                 ghc-hashable
+                 ghc-scientific
+                 ghc-transformers-compat
+                 ghc-unordered-containers
+                 ghc-void))
    (synopsis "Serialization between @code{binary} and @code{cereal}")
    (description "This package provides a simple compatibility shim that lets
 you work with both @code{binary} and @code{cereal} with one chunk of
@@ -1324,20 +1312,10 @@ Compatibility package for older packages.")
     (build-system haskell-build-system)
     (arguments
      `(#:cabal-revision
-       ("1" "0x11aj6w1lijh84jcdq1qgyvdnc7i9ivbyq4wf9rxicg57viisz9")
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'update-constraints
-           (lambda _
-             (substitute* "bytestring-handle.cabal"
-               (("QuickCheck >= 2\\.1\\.2 && < 2\\.11")
-                "QuickCheck >= 2.1.2 && < 2.14")))))))
-    (inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+       ("2" "1x1sy3dz2ph9v6jk22wmcv5gk2bka5fv4s68i8q0j9m9pk085w37")))
+    (inputs
+     (list ghc-hunit ghc-quickcheck ghc-test-framework
+           ghc-test-framework-hunit ghc-test-framework-quickcheck2))
     (home-page "https://hub.darcs.net/ganesh/bytestring-handle")
     (synopsis "ByteString-backed Handles")
     (description "ByteString-backed Handles") ; There is no description
@@ -1346,7 +1324,7 @@ Compatibility package for older packages.")
 (define-public ghc-bytestring-lexing
   (package
     (name "ghc-bytestring-lexing")
-    (version "0.5.0.2")
+    (version "0.5.0.7")
     (source
      (origin
        (method url-fetch)
@@ -1355,8 +1333,10 @@ Compatibility package for older packages.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "0wrzniawhgpphc6yx1v972gyqxdbv0pizaz9bafahrshyb9svy81"))))
+         "1p7i2haix4m11an3djaq65cnd293hzwqy4cd2i8jxzcl248pk6iy"))))
     (build-system haskell-build-system)
+    (native-inputs
+     (list ghc-tasty ghc-tasty-quickcheck ghc-tasty-smallcheck))
     (home-page "http://code.haskell.org/~wren/")
     (synopsis "Parse and produce literals from strict or lazy bytestrings")
     (description
@@ -1378,13 +1358,10 @@ from strict or lazy bytestrings.")
          "0a21zin5plsl37hkxh2jv8cxwyjrbs2fy7n5cyrzgdaa7lmp6b7b"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-bindings-dsl" ,ghc-bindings-dsl)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-resourcet" ,ghc-resourcet)))
+     (list ghc-bindings-dsl ghc-conduit ghc-data-default-class
+           ghc-resourcet))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-random" ,ghc-random)))
+     (list ghc-hspec ghc-random))
     (home-page "https://github.com/snoyberg/bzlib-conduit")
     (synopsis "Streaming compression/decompression via conduits")
     (description
@@ -1395,7 +1372,7 @@ streaming compression and decompression.")
 (define-public ghc-c2hs
   (package
     (name "ghc-c2hs")
-    (version "0.28.6")
+    (version "0.28.8")
     (source
      (origin
        (method url-fetch)
@@ -1405,19 +1382,24 @@ streaming compression and decompression.")
              ".tar.gz"))
        (sha256
         (base32
-         "1nplgxfin139x12sb656f5870rpdclrhzi8mq8pry035qld15pci"))))
+         "0k482wv94jbpwd96a2c2lc7qz9k8072slx7l7943472nzk7k41ir"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-language-c" ,ghc-language-c)
-       ("ghc-dlist" ,ghc-dlist)))
+     (list ghc-language-c ghc-dlist))
     (native-inputs
-     `(("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-shelly" ,ghc-shelly)))
+     (list ghc-test-framework ghc-test-framework-hunit ghc-hunit
+           ghc-shelly))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         ;; The tarball on Hackage does not ship these tests. See
+         ;; https://github.com/haskell/c2hs/issues/269
+         (add-after 'unpack 'disable-tests
+           (lambda _
+             (substitute* "tests/test-bugs.hs"
+               ((", testCase \"Issue #242\" issue242") ""))
+             (substitute* "tests/test-system.hs"
+               ((", testCase \"Interruptible\" test_interruptible") ""))))
          (add-before 'check 'set-cc
            ;; add a cc executable in the path, needed for some tests to pass
            (lambda* (#:key inputs #:allow-other-keys)
@@ -1447,7 +1429,7 @@ imported with the correct Haskell types.")
 (define-public ghc-cairo
   (package
     (name "ghc-cairo")
-    (version "0.13.5.0")
+    (version "0.13.8.1")
     (source
      (origin
        (method url-fetch)
@@ -1455,62 +1437,12 @@ imported with the correct Haskell types.")
                            "cairo-" version ".tar.gz"))
        (sha256
         (base32
-         "1wxylv4d8120ri0vgar168ikqa9m6533ipdwi38qlmxmw20ws2j2"))))
+         "1hpkyhrlg1d24s34kq6d379z8l8fvznm98wpq37haqjma4nl25hk"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:modules ((guix build haskell-build-system)
-                  (guix build utils)
-                  (ice-9 match)
-                  (srfi srfi-26))
-       #:phases
-       (modify-phases %standard-phases
-         ;; FIXME: This is a copy of the standard configure phase with a tiny
-         ;; difference: this package needs the -package-db flag to be passed
-         ;; to "runhaskell" in addition to the "configure" action, because it
-         ;; depends on gtk2hs-buildtools, which provide setup hooks.  Without
-         ;; this option the Setup.hs file cannot be evaluated.  The
-         ;; haskell-build-system should be changed to pass "-package-db" to
-         ;; "runhaskell" in any case.
-         (replace 'configure
-           (lambda* (#:key outputs inputs tests? (configure-flags '())
-                     #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (name-version (strip-store-file-name out))
-                    (input-dirs (match inputs
-                                  (((_ . dir) ...)
-                                   dir)
-                                  (_ '())))
-                    (ghc-path (getenv "GHC_PACKAGE_PATH"))
-                    (params (append `(,(string-append "--prefix=" out))
-                                    `(,(string-append "--libdir=" out "/lib"))
-                                    `(,(string-append "--bindir=" out "/bin"))
-                                    `(,(string-append
-                                        "--docdir=" out
-                                        "/share/doc/" name-version))
-                                    '("--libsubdir=$compiler/$pkg-$version")
-                                    '("--package-db=../package.conf.d")
-                                    '("--global")
-                                    `(,@(map
-                                         (cut string-append "--extra-include-dirs=" <>)
-                                         (search-path-as-list '("include") input-dirs)))
-                                    `(,@(map
-                                         (cut string-append "--extra-lib-dirs=" <>)
-                                         (search-path-as-list '("lib") input-dirs)))
-                                    (if tests?
-                                        '("--enable-tests")
-                                        '())
-                                    configure-flags)))
-               (unsetenv "GHC_PACKAGE_PATH")
-               (apply invoke "runhaskell" "-package-db=../package.conf.d"
-                      "Setup.hs" "configure" params)
-               (setenv "GHC_PACKAGE_PATH" ghc-path)
-               #t))))))
     (inputs
-     `(("ghc-utf8-string" ,ghc-utf8-string)
-       ("cairo" ,cairo)))
+     (list ghc-utf8-string cairo))
     (native-inputs
-     `(("ghc-gtk2hs-buildtools" ,ghc-gtk2hs-buildtools)
-       ("pkg-config" ,pkg-config)))
+     (list ghc-gtk2hs-buildtools pkg-config))
     (home-page "http://projects.haskell.org/gtk2hs/")
     (synopsis "Haskell bindings to the Cairo vector graphics library")
     (description
@@ -1522,7 +1454,7 @@ documents, amongst others.")
 (define-public ghc-call-stack
   (package
     (name "ghc-call-stack")
-    (version "0.1.0")
+    (version "0.3.0")
     (source
      (origin
        (method url-fetch)
@@ -1531,9 +1463,9 @@ documents, amongst others.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj"))))
+         "0ski7ihdxah7x4x07qgkjljg8hzqs9d6aa5k4cmr40bzp3i8s3mq"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-nanospec" ,ghc-nanospec)))
+    (native-inputs (list ghc-nanospec))
     (home-page "https://github.com/sol/call-stack#readme")
     (synopsis "Use GHC call-stacks in a backward compatible way")
     (description "This package provides a compatibility layer for using GHC
@@ -1547,12 +1479,12 @@ call stacks with different versions of the compiler.")
    (package
      (inherit ghc-call-stack)
      (arguments '(#:tests? #f))
-     (inputs '()))))
+     (native-inputs '()))))
 
 (define-public ghc-case-insensitive
   (package
     (name "ghc-case-insensitive")
-    (version "1.2.0.11")
+    (version "1.2.1.0")
     (outputs '("out" "static" "doc"))
     (source
      (origin
@@ -1563,11 +1495,11 @@ call stacks with different versions of the compiler.")
              ".tar.gz"))
        (sha256
         (base32
-         "1qrpxfirsxckg7jv28f5ah2qc8lh95hp7rnqkbqs1ahcwlbnvkm7"))))
+         "01p40hfjyldfds5jg6vlvvn3ihs4ki63xn6fh8yzngaz1izc2v99"))))
     (build-system haskell-build-system)
     ;; these inputs are necessary to use this library
     (inputs
-     `(("ghc-hashable" ,ghc-hashable)))
+     (list ghc-hashable))
     (arguments
      `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
     (home-page
@@ -1596,25 +1528,25 @@ the resulting type will be insensitive to cases.")
          "01h1zrdqb313cjd4rqm1107azzx4czqi018c2djf66a5i7ajl3dk"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-only" ,ghc-only)
-       ("ghc-text-short" ,ghc-text-short)
-       ("ghc-bytestring-builder" ,ghc-bytestring-builder)))
-    (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-attoparsec
+           ghc-hashable
+           ghc-scientific
+           ghc-unordered-containers
+           ghc-vector
+           ghc-only
+           ghc-text-short
+           ghc-bytestring-builder))
+    (native-inputs
+     (list ghc-hunit
+           ghc-quickcheck
+           ghc-quickcheck-instances
+           ghc-test-framework
+           ghc-test-framework-hunit
+           ghc-test-framework-quickcheck2))
     (arguments
      `(#:cabal-revision
-       ("1"
-        "1ph8rf91z4nf1ryrh9s4gd1kq98jlgk2manwddkpch8k0n9xvfk4")
+       ("4"
+        "19rkq41r5vj8drnj850b1wqnc54mxpw0x5z54brq0nvyww5f8ai8")
        #:configure-flags '("--flags=-bytestring--lt-0_10_4")))
     (home-page "https://github.com/haskell-hvr/cassava")
     (synopsis "CSV parsing and encoding library")
@@ -1664,7 +1596,7 @@ very simple example of encoding CSV data:
 (define-public ghc-cassava-megaparsec
   (package
     (name "ghc-cassava-megaparsec")
-    (version "2.0.1")
+    (version "2.0.4")
     (source
      (origin
        (method url-fetch)
@@ -1675,16 +1607,12 @@ very simple example of encoding CSV data:
              ".tar.gz"))
        (sha256
         (base32
-         "0q4skw98nzy6icmgpwqvgw0c5pqcgi25rf7nmwh2pksvv94pi3p3"))))
+         "0pg9z38jmrylbj683b6pf7psipp7lrdq6mn1hbj8v2gj5lh8yf8n"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-cassava" ,ghc-cassava)
-       ("ghc-megaparsec" ,ghc-megaparsec)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)))
+     (list ghc-cassava ghc-megaparsec ghc-unordered-containers ghc-vector))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-hspec-megaparsec" ,ghc-hspec-megaparsec)))
+     (list ghc-hspec ghc-hspec-megaparsec))
     (home-page "https://github.com/stackbuilders/cassava-megaparsec")
     (synopsis "Megaparsec parser for CSV files that plays nicely with Cassava")
     (description
@@ -1695,32 +1623,31 @@ provides for better error messages at the expense of some speed.")
 (define-public ghc-cborg
   (package
     (name "ghc-cborg")
-    (version "0.2.2.0")
+    (version "0.2.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/cborg/cborg-"
+             "https://hackage.haskell.org/package/cborg/cborg-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "1rdnvy0w17s70ikmbyrnwax5rvqh19l95sh8i7ipgxi23z1r0bp1"))))
+         "08da498bpbnl5c919m45mjm7sr78nn6qs7xyl0smfgd06wwm65xf"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-half" ,ghc-half)
-       ("ghc-primitive" ,ghc-primitive)))
+     (list ghc-half ghc-primitive))
     (native-inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-base16-bytestring" ,ghc-base16-bytestring)
-       ("ghc-fail" ,ghc-fail)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-vector" ,ghc-vector)))
+     (list ghc-aeson
+           ghc-base64-bytestring
+           ghc-base16-bytestring
+           ghc-fail
+           ghc-quickcheck
+           ghc-scientific
+           ghc-tasty
+           ghc-tasty-hunit
+           ghc-tasty-quickcheck
+           ghc-vector))
     (home-page "http://hackage.haskell.org/package/cborg")
     (synopsis "Concise Binary Object Representation")
     (description
@@ -1754,13 +1681,16 @@ command-line utility for working with CBOR data.")
        (sha256
         (base32 "0ysilz7rrjk94sqr3a61s98hr9qfi1xg13bskmlpc6mpgi2s4s5b"))))
     (build-system haskell-build-system)
-    (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-aeson-pretty" ,ghc-aeson-pretty)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-cborg" ,ghc-cborg)))
+    (arguments
+     `(#:cabal-revision
+       ("3" "1sn2f9nfjcbr0n62n4kklbdi3pzpwrcy7ilg7m3v41nwrk53ifwy")))
+    (inputs
+     (list ghc-aeson
+           ghc-aeson-pretty
+           ghc-unordered-containers
+           ghc-scientific
+           ghc-vector
+           ghc-cborg))
     (home-page "https://github.com/well-typed/cborg")
     (synopsis "A library for encoding JSON as CBOR")
     (description
@@ -1784,10 +1714,8 @@ defined in the CBOR specification, RFC 7049.")
          "1mqvd1iwzr50az4y24332x3g3wsrzw8j1iwph02vr7jbjfn8i7id"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-fail" ,ghc-fail)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-quickcheck ghc-fail ghc-test-framework
+           ghc-test-framework-quickcheck2))
     (home-page "https://hackage.haskell.org/package/cereal")
     (synopsis "Binary serialization library")
     (description "This package provides a binary serialization library,
@@ -1810,11 +1738,9 @@ parser isolation, and labeled blocks for better error messages.")
          "1srr7agvgfw78q5s1npjq5sgynvhjgllpihiv37ylkwqm4c4ap6r"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-conduit" ,ghc-conduit)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-cereal" ,ghc-cereal)))
+     (list ghc-conduit ghc-resourcet ghc-cereal))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)))
+     (list ghc-hunit))
     (home-page "https://github.com/snoyberg/conduit")
     (synopsis "Turn Data.Serialize Gets and Puts into Sources, Sinks, and Conduits")
     (description
@@ -1825,7 +1751,7 @@ parser isolation, and labeled blocks for better error messages.")
 (define-public ghc-cgi
   (package
     (name "ghc-cgi")
-    (version "3001.4.0.0")
+    (version "3001.5.0.0")
     (source
      (origin
        (method url-fetch)
@@ -1835,16 +1761,12 @@ parser isolation, and labeled blocks for better error messages.")
              ".tar.gz"))
        (sha256
         (base32
-         "1d0nh5ymkqskkp4yn0gfz4mff8i0cxyw1wws8xxp6k1mg1ywa25k"))))
+         "09wvp9vkqasns4flw9z46nhcy96r4qxjv6h47d5f90drz77pmm8a"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-multipart" ,ghc-multipart)
-       ("ghc-network-uri" ,ghc-network-uri)
-       ("ghc-network" ,ghc-network)))
+     (list ghc-exceptions ghc-multipart ghc-network-uri ghc-network))
     (native-inputs
-     `(("ghc-doctest" ,ghc-doctest)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-doctest ghc-quickcheck))
     (home-page
      "https://github.com/cheecheeo/haskell-cgi")
     (synopsis "Library for writing CGI programs")
@@ -1855,7 +1777,7 @@ parser isolation, and labeled blocks for better error messages.")
 (define-public ghc-charset
   (package
     (name "ghc-charset")
-    (version "0.3.7.1")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
@@ -1865,14 +1787,10 @@ parser isolation, and labeled blocks for better error messages.")
              ".tar.gz"))
        (sha256
         (base32
-         "1gn0m96qpjww8hpp2g1as5yy0wcwy4iq73h3kz6g0yxxhcl5sh9x"))))
+         "1rw6y2insgljbi5l1nwqwv9v865sswjly9rvwipd8zajkgks7aks"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:cabal-revision
-       ("1" "1z6nxw2g9vgsjq0g159sk8mwj68lwzxzi5iv5ynha0h85jcqxszy")))
     (inputs
-     `(("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)))
+     (list ghc-semigroups ghc-unordered-containers))
     (home-page "https://github.com/ekmett/charset")
     (synopsis "Fast unicode character sets for Haskell")
     (description "This package provides fast unicode character sets for
@@ -1882,7 +1800,7 @@ Haskell, based on complemented PATRICIA tries.")
 (define-public ghc-chart
   (package
     (name "ghc-chart")
-    (version "1.9.1")
+    (version "1.9.3")
     (source
      (origin
        (method url-fetch)
@@ -1890,15 +1808,18 @@ Haskell, based on complemented PATRICIA tries.")
                            "Chart-" version ".tar.gz"))
        (sha256
         (base32
-         "1pn735k9ifxlb9mdh8xy7wi22cxni8xyr28n8zx9w0j6vprcg89l"))))
+         "0p69kq5kh40gd4y8wqabypmw67pqh42vaaw64zv9sf8j075g85ry"))))
     (build-system haskell-build-system)
-    (inputs
-     `(("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-lens" ,ghc-lens)
-       ("ghc-colour" ,ghc-colour)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-operational" ,ghc-operational)
-       ("ghc-vector" ,ghc-vector)))
+    (arguments
+     `(#:cabal-revision
+       ("2" "04mmsm54mdqcrypvgawhhbwjscmky3j7g5841bc71c0q6d33h2k4")))
+    (inputs
+     (list ghc-old-locale
+           ghc-lens
+           ghc-colour
+           ghc-data-default-class
+           ghc-operational
+           ghc-vector))
     (home-page "https://github.com/timbod7/haskell-chart/wiki")
     (synopsis "Library for generating 2D charts and plots")
     (description
@@ -1909,7 +1830,7 @@ backends provided by the @code{Cairo} and @code{Diagrams} libraries.")
 (define-public ghc-chart-cairo
   (package
     (name "ghc-chart-cairo")
-    (version "1.9.1")
+    (version "1.9.3")
     (source
      (origin
        (method url-fetch)
@@ -1917,16 +1838,20 @@ backends provided by the @code{Cairo} and @code{Diagrams} libraries.")
                            "Chart-cairo-" version ".tar.gz"))
        (sha256
         (base32
-         "0hknj4rsjf2m8p5pyq5zff8ai7v80yvmxb5c6n0bkgxs4317nbl9"))))
+         "0clm68alzsakkn5m4h49dgx33crajacsykb4hry2fh9zxp9j743f"))))
     (build-system haskell-build-system)
-    (inputs
-     `(("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-cairo" ,ghc-cairo)
-       ("ghc-colour" ,ghc-colour)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-operational" ,ghc-operational)
-       ("ghc-lens" ,ghc-lens)
-       ("ghc-chart" ,ghc-chart)))
+    (arguments
+     `(#:cabal-revision
+       ("2" "0z93znn3dpgj80iiz3a67m90x0j9ljr0jd1ws9jkzj7rk88014gp")))
+    (inputs
+     (list ghc-old-locale
+           ghc-cairo
+           ghc-colour
+           ghc-data-default-class
+           ghc-operational
+           ghc-lens
+           ghc-chart
+           zlib))
     (home-page "https://github.com/timbod7/haskell-chart/wiki")
     (synopsis "Cairo backend for Charts")
     (description "This package provides a Cairo vector graphics rendering
@@ -1936,7 +1861,7 @@ backend for the Charts library.")
 (define-public ghc-chasingbottoms
   (package
     (name "ghc-chasingbottoms")
-    (version "1.3.1.7")
+    (version "1.3.1.10")
     (source
      (origin
        (method url-fetch)
@@ -1944,12 +1869,10 @@ backend for the Charts library.")
                            "ChasingBottoms-" version ".tar.gz"))
        (sha256
         (base32
-         "0ziiqfsvv1ypdra6kd0bhbsl852i0wqn43jkfii38yl879cdacan"))))
+         "1flr56hd8ny0ddlv1agi0ikdjv5wgx0aba6xqdsn3nv6dyw9nbf3"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-random" ,ghc-random)
-       ("ghc-syb" ,ghc-syb)))
+     (list ghc-quickcheck ghc-random ghc-syb))
     (home-page "https://hackage.haskell.org/package/ChasingBottoms")
     (synopsis "Testing of partial and infinite values in Haskell")
     (description
@@ -1966,7 +1889,7 @@ Partial and Infinite Values\"}.")
 (define-public ghc-cheapskate
   (package
     (name "ghc-cheapskate")
-    (version "0.1.1.1")
+    (version "0.1.1.2")
     (source
      (origin
        (method url-fetch)
@@ -1976,14 +1899,11 @@ Partial and Infinite Values\"}.")
              ".tar.gz"))
        (sha256
         (base32
-         "0qnyd8bni2rby6b02ff4bvfdhm1hwc8vzpmnms84jgrlg1lly3fm"))))
+         "17n6laihqrjn62l8qw4565nf77zkvrl68bjmc3vzr4ckqfblhdzd"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-xss-sanitize" ,ghc-xss-sanitize)
-       ("ghc-data-default" ,ghc-data-default)
-       ("ghc-syb" ,ghc-syb)
-       ("ghc-uniplate" ,ghc-uniplate)))
+     (list ghc-blaze-html ghc-xss-sanitize ghc-data-default ghc-syb
+           ghc-uniplate))
     (home-page "https://github.com/jgm/cheapskate")
     (synopsis "Experimental markdown processor")
     (description "Cheapskate is an experimental Markdown processor in pure
@@ -2011,10 +1931,8 @@ cross-site scripting (@dfn{XSS}) attacks.")
      `(#:cabal-revision
        ("1" "1q93wrw03ix4cmnkz3lzkixcvvizw6i2ia2zifdfak1dvxnblxk0")))
     (inputs
-     `(("ghc-options-bootstrap" ,ghc-options-bootstrap)
-       ("ghc-patience" ,ghc-patience)
-       ("ghc-random" ,ghc-random)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)))
+     (list ghc-options-bootstrap ghc-patience ghc-random
+           ghc-ansi-terminal))
     (home-page "https://john-millikin.com/software/chell/")
     (synopsis "Simple and intuitive library for automated testing")
     (description
@@ -2045,12 +1963,10 @@ testing strategies.")
            (lambda _
              (substitute* "chell-quickcheck.cabal"
                (("QuickCheck >= 2\\.3 && < 2\\.13")
-                "QuickCheck >= 2.3 && < 2.14")))))))
+                "QuickCheck >= 2.3 && < 2.15")))))))
     (inputs
-     `(("ghc-chell" ,ghc-chell)
-       ("ghc-chell-quickcheck-bootstrap" ,ghc-chell-quickcheck-bootstrap)
-       ("ghc-random" ,ghc-random)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-chell ghc-chell-quickcheck-bootstrap ghc-random
+           ghc-quickcheck))
     (home-page "https://john-millikin.com/software/chell/")
     (synopsis "QuickCheck support for the Chell testing library")
     (description "More complex tests for @code{chell}.")
@@ -2082,7 +1998,7 @@ testing strategies.")
            (lambda _
              (substitute* "chell-quickcheck.cabal"
                (("QuickCheck >= 2\\.3 && < 2\\.13")
-                "QuickCheck >= 2.3 && < 2.14")))))))
+                "QuickCheck >= 2.3 && < 2.15")))))))
     (home-page "https://john-millikin.com/software/chell/")
     (synopsis "QuickCheck support for the Chell testing library")
     (description "More complex tests for @code{chell}.")
@@ -2102,8 +2018,7 @@ testing strategies.")
         (base32
          "16m7y7fwrirbjbqqcsfmr4yxa9qvfax6r7pw0zl9ky71ms0wa47p"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-vector" ,ghc-vector)
-              ("ghc-semigroups" ,ghc-semigroups)))
+    (inputs (list ghc-vector ghc-semigroups))
     (home-page "https://github.com/snoyberg/mono-traversable")
     (synopsis "Typeclasses for dealing with various chunked data
 representations for Haskell")
@@ -2114,7 +2029,7 @@ classy-prelude.")
 (define-public ghc-clock
   (package
     (name "ghc-clock")
-    (version "0.8")
+    (version "0.8.2")
     (source
      (origin
        (method url-fetch)
@@ -2123,11 +2038,10 @@ classy-prelude.")
              "clock/"
              "clock-" version ".tar.gz"))
        (sha256
-        (base32 "0539w9bjw6xbfv9v6aq9hijszxqdnqhilwpbwpql1400ji95r8q8"))))
+        (base32 "0qg4ljwmw28vvxjzr4sknh8220abjcx2b0sq3ljqprh3qw8b2p8b"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+     (list ghc-tasty ghc-tasty-quickcheck))
     (home-page "https://hackage.haskell.org/package/clock")
     (synopsis "High-resolution clock for Haskell")
     (description "A package for convenient access to high-resolution clock and
@@ -2159,7 +2073,7 @@ timer functions of different operating systems via a unified API.")
                 "1p41z6z8dqxk62287lvhhg4ayy9laai9ljh4azsnzb029v6mbv0d"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)))
+     (list ghc-hunit))
     (home-page "https://github.com/jgm/commonmark-hs")
     (synopsis "Fast, accurate CommonMark (Markdown) parser and renderer")
     (description
@@ -2172,7 +2086,7 @@ sources, and does not require prior installation of the C library.")
 (define-public ghc-cmark-gfm
   (package
     (name "ghc-cmark-gfm")
-    (version "0.2.0")
+    (version "0.2.2")
     (source
      (origin
        (method url-fetch)
@@ -2181,10 +2095,10 @@ sources, and does not require prior installation of the C library.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "03xflrkyw84qv3yjly5iks9311bqv5cmrmsylr763v4ph0fn7rjq"))))
+         "1skzdg1icmhn0zrkhbnba4200ymah8sd5msk4qfgawrk77zilw7f"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)))
+     (list ghc-hunit))
     (home-page "https://github.com/kivikakk/cmark-gfm-hs")
     (synopsis
      "Fast, accurate GitHub Flavored Markdown parser and renderer")
@@ -2198,7 +2112,7 @@ of the C library.")
 (define-public ghc-cmdargs
   (package
     (name "ghc-cmdargs")
-    (version "0.10.20")
+    (version "0.10.21")
     (source
      (origin
        (method url-fetch)
@@ -2207,7 +2121,7 @@ of the C library.")
              version ".tar.gz"))
        (sha256
         (base32
-         "0cbkmgrcnwgigg6z88y3c09gm7g6dwm7gzbgr53h8k1xik29s9hf"))))
+         "0xfabq187n1vqrnnm4ciprpl0dcjq97rksyjnpcniwva9rffmn7p"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
     (home-page
@@ -2220,7 +2134,7 @@ of the C library.")
 (define-public ghc-code-page
   (package
   (name "ghc-code-page")
-  (version "0.2")
+  (version "0.2.1")
   (source
    (origin
      (method url-fetch)
@@ -2229,7 +2143,7 @@ of the C library.")
            version ".tar.gz"))
       (sha256
        (base32
-        "0i0qbrbhvrwkbikqb7hh7yxaipaavwzvyrw211d0vkz99f62mqxz"))))
+        "1aiavczjk6f2kc1cdwjc1mwkr4d9shiz3xwmfbzsdn0yqqchxydj"))))
   (build-system haskell-build-system)
   (home-page "https://github.com/RyanGlScott/code-page")
   (synopsis "Windows code page library for Haskell")
@@ -2239,35 +2153,35 @@ nothing.")
   (license license:bsd-3)))
 
 (define-public ghc-colour
-(package
-  (name "ghc-colour")
-  (version "2.3.5")
-  (source
-   (origin
-     (method url-fetch)
-     (uri (string-append
-           "https://hackage.haskell.org/package/colour/colour-"
-           version ".tar.gz"))
-     (sha256
-      (base32
-       "1rq4l46jx4lpdppy71wf7m1n7pw2jwy788rm35ycwzb1g4clg39v"))))
-  (arguments
-   ;; The tests for this package have the following dependency cycle:
-   ;; ghc-test-framework -> ghc-ansi-terminal -> ghc-colour.
-   `(#:tests? #f))
-  (build-system haskell-build-system)
-  (home-page "https://wiki.haskell.org/Colour")
-  (synopsis "Model for human colour perception")
-  (description
-   "This package provides a data type for colours and transparency.
+  (package
+    (name "ghc-colour")
+    (version "2.3.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/colour/colour-"
+             version ".tar.gz"))
+       (sha256
+        (base32
+         "0wgqj64mh2y2zk77kv59k3xb3dk4wmgfp988y74sp9a4d76mvlrc"))))
+    (arguments
+     ;; The tests for this package have the following dependency cycle:
+     ;; ghc-test-framework -> ghc-ansi-terminal -> ghc-colour.
+     `(#:tests? #f))
+    (build-system haskell-build-system)
+    (home-page "https://wiki.haskell.org/Colour")
+    (synopsis "Model for human colour perception")
+    (description
+     "This package provides a data type for colours and transparency.
 Colours can be blended and composed.  Various colour spaces are
 supported.  A module of colour names (\"Data.Colour.Names\") is provided.")
-  (license license:expat)))
+    (license license:expat)))
 
 (define-public ghc-comonad
   (package
     (name "ghc-comonad")
-    (version "5.0.5")
+    (version "5.0.8")
     (source
      (origin
        (method url-fetch)
@@ -2277,17 +2191,11 @@ supported.  A module of colour names (\"Data.Colour.Names\") is provided.")
              ".tar.gz"))
        (sha256
         (base32
-         "1l7snp2mszgnjgd0nc9kzfyd13vla0rlazqi03rwx2akcxk14n3c"))))
+         "04rxycp2pbkrvhjgpgx08jmsipjz4cdmhv59dbp47k4jq8ndyv7g"))))
     (build-system haskell-build-system)
-    (native-inputs
-     `(("cabal-doctest" ,cabal-doctest)
-       ("ghc-doctest" ,ghc-doctest)))
     (inputs
-     `(("ghc-contravariant" ,ghc-contravariant)
-       ("ghc-distributive" ,ghc-distributive)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)))
+     (list ghc-distributive ghc-tagged ghc-indexed-traversable
+           ghc-transformers-compat))
     (home-page "https://github.com/ekmett/comonad/")
     (synopsis "Comonads for Haskell")
     (description "This library provides @code{Comonad}s for Haskell.")
@@ -2333,13 +2241,10 @@ postfix notation.  For more information on stack based languages, see
      ;; XXX: The ReadWriteLock 'stressTest' fails.
      `(#:tests? #f))
     (inputs
-     `(("ghc-unbounded-delays" ,ghc-unbounded-delays)))
+     (list ghc-unbounded-delays))
     (native-inputs
-     `(("ghc-async" ,ghc-async)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-random" ,ghc-random)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+     (list ghc-async ghc-hunit ghc-random ghc-test-framework
+           ghc-test-framework-hunit))
     (home-page "https://github.com/basvandijk/concurrent-extra")
     (synopsis "Extra concurrency primitives")
     (description "This Haskell library offers (among other things) the
@@ -2369,23 +2274,20 @@ Python.")
 (define-public ghc-concurrent-output
   (package
     (name "ghc-concurrent-output")
-    (version "1.10.11")
+    (version "1.10.12")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/concurrent-output/concurrent-output-"
+             "https://hackage.haskell.org/package/concurrent-output/concurrent-output-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "1d1aaqg5814k59b0iws3fh06p3g2siaj922gkhs75qgncj0my2p3"))))
+         "081wpag1d5znr0ynrjvkc14xl816m88vz9hgfm3g3sp6ak7s3y47"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-async" ,ghc-async)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-terminal-size" ,ghc-terminal-size)))
+     (list ghc-async ghc-exceptions ghc-ansi-terminal ghc-terminal-size))
     (home-page
      "https://hackage.haskell.org/package/concurrent-output")
     (synopsis
@@ -2413,22 +2315,19 @@ concurrent threads.  Can be used for progress displays etc.")
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
     (inputs
-     `(("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-lifted-base" ,ghc-lifted-base)
-       ("ghc-mono-traversable" ,ghc-mono-traversable)
-       ("ghc-mmorph" ,ghc-mmorph)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-silently" ,ghc-silently)
-       ("ghc-transformers-base" ,ghc-transformers-base)
-       ("ghc-unliftio" ,ghc-unliftio)
-       ("ghc-unliftio-core" ,ghc-unliftio-core)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-void" ,ghc-void)))
-    (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-safe" ,ghc-safe)
-       ("ghc-split" ,ghc-split)))
+     (list ghc-exceptions
+           ghc-lifted-base
+           ghc-mono-traversable
+           ghc-mmorph
+           ghc-resourcet
+           ghc-silently
+           ghc-transformers-base
+           ghc-unliftio
+           ghc-unliftio-core
+           ghc-vector
+           ghc-void))
+    (native-inputs
+     (list ghc-quickcheck ghc-hspec ghc-safe ghc-split))
     (home-page "https://github.com/snoyberg/conduit")
     (synopsis "Streaming data library ")
     (description
@@ -2454,26 +2353,24 @@ space as enumerator/iteratee and pipes.")
          "0c1jwz30kkvimx7lb61782yk0kyfamrf5bqc3g1h7g51lk8bbv9i"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-async" ,ghc-async)
-       ("ghc-bzlib-conduit" ,ghc-bzlib-conduit)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-conduit-combinators" ,ghc-conduit-combinators)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-conduit-zstd" ,ghc-conduit-zstd)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-lzma-conduit" ,ghc-lzma-conduit)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-pqueue" ,ghc-pqueue)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-stm-conduit" ,ghc-stm-conduit)
-       ("ghc-streaming-commons" ,ghc-streaming-commons)
-       ("ghc-unliftio-core" ,ghc-unliftio-core)
-       ("ghc-vector" ,ghc-vector)))
-    (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-th" ,ghc-test-framework-th)))
+     (list ghc-async
+           ghc-bzlib-conduit
+           ghc-conduit
+           ghc-conduit-combinators
+           ghc-conduit-extra
+           ghc-conduit-zstd
+           ghc-exceptions
+           ghc-lzma-conduit
+           ghc-monad-control
+           ghc-pqueue
+           ghc-resourcet
+           ghc-stm-conduit
+           ghc-streaming-commons
+           ghc-unliftio-core
+           ghc-vector))
+    (native-inputs
+     (list ghc-hunit ghc-test-framework ghc-test-framework-hunit
+           ghc-test-framework-th))
     (home-page "https://github.com/luispedro/conduit-algorithms#readme")
     (synopsis "Conduit-based algorithms")
     (description
@@ -2495,24 +2392,21 @@ level asynchronous processing and some other utilities.")
         (base32
          "1lz70vwp4y4lpsivxl0cshq7aq3968rh48r6rjvpyaj2l0bdj5wp"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-conduit" ,ghc-conduit)
-              ("ghc-conduit-extra" ,ghc-conduit-extra)
-              ("ghc-transformers-base" ,ghc-transformers-base)
-              ("ghc-primitive" ,ghc-primitive)
-              ("ghc-vector" ,ghc-vector)
-              ("ghc-void" ,ghc-void)
-              ("ghc-mwc-random" ,ghc-mwc-random)
-              ("ghc-unix-compat" ,ghc-unix-compat)
-              ("ghc-base16-bytestring" ,ghc-base16-bytestring)
-              ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-              ("ghc-resourcet" ,ghc-resourcet)
-              ("ghc-monad-control" ,ghc-monad-control)
-              ("ghc-chunked-data" ,ghc-chunked-data)
-              ("ghc-mono-traversable" ,ghc-mono-traversable)))
-    (native-inputs `(("ghc-hspec" ,ghc-hspec)
-                     ("ghc-silently" ,ghc-silently)
-                     ("ghc-safe" ,ghc-safe)
-                     ("ghc-quickcheck" ,ghc-quickcheck)))
+    (inputs (list ghc-conduit
+                  ghc-conduit-extra
+                  ghc-transformers-base
+                  ghc-primitive
+                  ghc-vector
+                  ghc-void
+                  ghc-mwc-random
+                  ghc-unix-compat
+                  ghc-base16-bytestring
+                  ghc-base64-bytestring
+                  ghc-resourcet
+                  ghc-monad-control
+                  ghc-chunked-data
+                  ghc-mono-traversable))
+    (native-inputs (list ghc-hspec ghc-silently ghc-safe ghc-quickcheck))
     (home-page "https://github.com/snoyberg/mono-traversable")
     (synopsis "Commonly used conduit functions, for both chunked and
 unchunked data")
@@ -2523,7 +2417,7 @@ as well as a convenient Conduit module.")
 (define-public ghc-conduit-extra
   (package
     (name "ghc-conduit-extra")
-    (version "1.3.4")
+    (version "1.3.5")
     (source
      (origin
        (method url-fetch)
@@ -2532,26 +2426,26 @@ as well as a convenient Conduit module.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1d853d39vj5pb8yxfcsnjwdzqzkm34ixzbnba8bslpihb7182wxi"))))
+         "1n8js1y1rdswvp0bkjmmz19fag19bdxgwsrqz93yc09w43p8sr4a"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-conduit" ,ghc-conduit)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-transformers-base" ,ghc-transformers-base)
-       ("ghc-typed-process" ,ghc-typed-process)
-       ("ghc-async" ,ghc-async)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-network" ,ghc-network)
-       ("ghc-primitive" ,ghc-primitive)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-streaming-commons" ,ghc-streaming-commons)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-bytestring-builder" ,ghc-bytestring-builder)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-conduit
+           ghc-exceptions
+           ghc-monad-control
+           ghc-transformers-base
+           ghc-typed-process
+           ghc-async
+           ghc-attoparsec
+           ghc-blaze-builder
+           ghc-network
+           ghc-primitive
+           ghc-resourcet
+           ghc-streaming-commons
+           ghc-hspec
+           ghc-bytestring-builder
+           ghc-quickcheck))
     (native-inputs
-     `(("hspec-discover" ,hspec-discover)))
+     (list hspec-discover))
     (home-page "https://github.com/snoyberg/conduit")
     (synopsis "Conduit adapters for common libraries")
     (description
@@ -2565,7 +2459,7 @@ dependencies.  The basic idea is that this package should only depend on
 (define-public ghc-conduit-zstd
   (package
     (name "ghc-conduit-zstd")
-    (version "0.0.1.1")
+    (version "0.0.2.0")
     (source
      (origin
        (method url-fetch)
@@ -2573,18 +2467,13 @@ dependencies.  The basic idea is that this package should only depend on
                            "conduit-zstd/conduit-zstd-" version ".tar.gz"))
        (sha256
         (base32
-         "04h7w2903hgw4gjcx2pg29yinnmfapawvc19hd3r57rr12fzb0c6"))))
+         "0f0ir4zs3skw33c8mfppxhfsyqh1c2cnc4gkf8bvv3bdiikdj1yl"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-conduit" ,ghc-conduit)
-       ("ghc-zstd" ,ghc-zstd)))
+     (list ghc-conduit ghc-zstd))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-conduit-combinators" ,ghc-conduit-combinators)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-th" ,ghc-test-framework-th)))
+     (list ghc-conduit-combinators ghc-conduit-extra
+           ghc-quickcheck-instances ghc-tasty ghc-tasty-quickcheck))
     (home-page "https://github.com/luispedro/conduit-zstd#readme")
     (synopsis "Conduit-based ZStd Compression")
     (description "Zstandard compression packaged as a conduit.  This is
@@ -2612,13 +2501,9 @@ interface}.")
        #:cabal-revision
        ("2" "0iwraaa0y1b3xdsg760j1wpylkqshky0k2djcg0k4s97lrwqpbcz")))
     (native-inputs
-     `(("ghc-doctest" ,ghc-doctest)
-       ("ghc-hedgehog" ,ghc-hedgehog)
-       ("ghc-ini" ,ghc-ini)
-       ("ghc-microlens" ,ghc-microlens)))
+     (list ghc-doctest ghc-hedgehog ghc-ini ghc-microlens))
     (inputs
-     `(("ghc-megaparsec" ,ghc-megaparsec)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)))
+     (list ghc-megaparsec ghc-unordered-containers))
     (home-page "https://github.com/aisamanra/config-ini")
     (synopsis "Monadic Haskell DSL for parsing simple INI configuration files")
     (description
@@ -2646,14 +2531,10 @@ human-readable error messages when things go wrong.")
          "1d1iq1knwiq6ia5g64rw5hqm6dakz912qj13r89737rfcxmrkfbf"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)))
+     (list ghc-attoparsec ghc-hashable ghc-unix-compat
+           ghc-unordered-containers))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+     (list ghc-hunit ghc-test-framework ghc-test-framework-hunit))
     (home-page "https://github.com/bos/configurator")
     (synopsis "Configuration management")
     (description
@@ -2687,15 +2568,15 @@ and daemons.  The features include:
                 "1nbmafhlg0wy4aa3p7amjddbamdz6avzrxn4py3lvhrjqn4raxax"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-byteable" ,ghc-byteable)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-network" ,ghc-network)
-       ("ghc-tls" ,ghc-tls)
-       ("ghc-socks" ,ghc-socks)
-       ("ghc-x509" ,ghc-x509)
-       ("ghc-x509-store" ,ghc-x509-store)
-       ("ghc-x509-system" ,ghc-x509-system)
-       ("ghc-x509-validation" ,ghc-x509-validation)))
+     (list ghc-byteable
+           ghc-data-default-class
+           ghc-network
+           ghc-tls
+           ghc-socks
+           ghc-x509
+           ghc-x509-store
+           ghc-x509-system
+           ghc-x509-validation))
     (home-page "https://github.com/vincenthz/hs-connection")
     (synopsis "Simple and easy network connections API")
     (description
@@ -2707,7 +2588,7 @@ the choice of SSL/TLS, and SOCKS.")
 (define-public ghc-constraints
   (package
     (name "ghc-constraints")
-    (version "0.10.1")
+    (version "0.13")
     (source
      (origin
        (method url-fetch)
@@ -2716,15 +2597,13 @@ the choice of SSL/TLS, and SOCKS.")
              version ".tar.gz"))
        (sha256
         (base32
-         "1xy3vv78jxc17hm0z7qqspxjwv7l2jbcbj670yrl2f053qkfr02q"))))
+         "143558jykvya7y8134dx30g6nh27q5s61nbq369p69igd1aayncj"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hashable" ,ghc-hashable)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)))
+     (list ghc-hashable ghc-semigroups ghc-transformers-compat
+           ghc-type-equality))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec hspec-discover))
     (home-page "https://github.com/ekmett/constraints/")
     (synopsis "Constraint manipulation")
     (description
@@ -2736,7 +2615,7 @@ a vocabulary for working with them.")
 (define-public ghc-contravariant
   (package
     (name "ghc-contravariant")
-    (version "1.5.2")
+    (version "1.5.5")
     (source
      (origin
        (method url-fetch)
@@ -2746,13 +2625,10 @@ a vocabulary for working with them.")
              ".tar.gz"))
        (sha256
         (base32
-         "0366gl62wwwdbl9i6kqy60asf60876k55v91la6bmhnwwcj2q9n4"))))
+         "1ynz89vfn7czxpa203zmdqknkvpylzzl9rlkpasx1anph1jxcbq6"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-void" ,ghc-void)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-statevar" ,ghc-statevar)
-       ("ghc-semigroups" ,ghc-semigroups)))
+     (list ghc-void ghc-transformers-compat ghc-statevar ghc-semigroups))
     (home-page
      "https://github.com/ekmett/contravariant/")
     (synopsis "Contravariant functors")
@@ -2762,7 +2638,7 @@ a vocabulary for working with them.")
 (define-public ghc-contravariant-extras
   (package
     (name "ghc-contravariant-extras")
-    (version "0.3.4")
+    (version "0.3.5.2")
     (source
      (origin
        (method url-fetch)
@@ -2771,16 +2647,10 @@ a vocabulary for working with them.")
                            "contravariant-extras-" version ".tar.gz"))
        (sha256
         (base32
-         "0gg62ccl94kvh7mnvdq09pifqxjx2kgs189si90nmg44bafj7a9n"))))
+         "0ikwzg0992j870yp0x2ssf4mv2hw2nml979apg493m72xnvr1jz9"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:cabal-revision
-       ("1" "1h2955ahga6i4fn7k8v66l03v77p6fhsac6ck8gpabkc08ij60wp")))
     (inputs
-     `(("ghc-tuple-th" ,ghc-tuple-th)
-       ("ghc-contravariant" ,ghc-contravariant)
-       ("ghc-base-prelude" ,ghc-base-prelude)
-       ("ghc-semigroups" ,ghc-semigroups)))
+     (list ghc-contravariant ghc-template-haskell-compat-v0208))
     (home-page "https://github.com/nikita-volkov/contravariant-extras")
     (synopsis "Extras for the @code{ghc-contravariant} Haskell package")
     (description "This Haskell package provides extras for the
@@ -2831,8 +2701,7 @@ Free Monads, MPC'08}
          "0v18ap1mccnndgxmbfgyjdicg8jlss01bd5fq8a576dr0h4sgyg9"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-old-time" ,ghc-old-time)
-       ("ghc-old-locale" ,ghc-old-locale)))
+     (list ghc-old-time ghc-old-locale))
     (home-page "https://hackage.haskell.org/package/convertible")
     (synopsis "Typeclasses and instances for converting between types")
     (description
@@ -2858,6 +2727,14 @@ function performs the conversion you desire.")
         (base32
          "00767ai09wm7f0yzmpqck3cpgxncpr9djnmmz5l17ajz69139x4c"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'fix-Setup.hs
+           (lambda _
+             (substitute* "Setup.hs"
+               (("defaultMainWithHooks defaultUserHooks")
+                "defaultMain")))))))
     (home-page "http://hackage.haskell.org/package/csv")
     (synopsis "CSV loader and dumper")
     (description
@@ -2870,15 +2747,15 @@ lingua franca for spreadsheets, and for certain web services.")
 (define-public ghc-data-accessor
   (package
     (name "ghc-data-accessor")
-    (version "0.2.2.8")
+    (version "0.2.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/data-accessor/data-accessor-"
+             "https://hackage.haskell.org/package/data-accessor/data-accessor-"
              version ".tar.gz"))
        (sha256
-        (base32 "1fq4gygxbz0bd0mzgvc1sl3m4gjnsv8nbgpnmdpa29zj5lb9agxc"))))
+        (base32 "0f1yvvzr24qgrx6k2g101s7vp012802iw6kli903n28nig93yn0x"))))
     (build-system haskell-build-system)
     (home-page "https://wiki.haskell.org/Record_access")
     (synopsis
@@ -2900,7 +2777,7 @@ manipulating fields of records.")
        (sha256
         (base32 "0yp030vafbpddl27m606aibbbr5ar5j5bsv4bksscz3cq4yq5j10"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-data-accessor" ,ghc-data-accessor)))
+    (inputs (list ghc-data-accessor))
     (home-page "https://wiki.haskell.org/Record_access")
     (synopsis "Use Accessor to access state in transformers State monad")
     (description "This package provides Haskell modules to allow use of
@@ -2920,7 +2797,7 @@ Accessor to access state in transformers State monad.")
         (base32 "1mwfhnmvi3vicyjzl33m6pcipi2v887zazyqxygq258ndd010s9m"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-quickcheck))
     (arguments
      `(#:cabal-revision
        ("1" "13hg7a3d4ky8b765dl03ryxg28lq8iaqj5ky3j51r0i1i4f2a9hy")))
@@ -2948,16 +2825,10 @@ observed.")
         (base32 "04d5n8ybmcxba9qb6h389w9zfq1lvj81b82jh6maqp6pkhkmvydh"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-data-default-class"
-        ,ghc-data-default-class)
-       ("ghc-data-default-instances-base"
-        ,ghc-data-default-instances-base)
-       ("ghc-data-default-instances-containers"
-        ,ghc-data-default-instances-containers)
-       ("ghc-data-default-instances-dlist"
-        ,ghc-data-default-instances-dlist)
-       ("ghc-data-default-instances-old-locale"
-        ,ghc-data-default-instances-old-locale)))
+     (list ghc-data-default-class ghc-data-default-instances-base
+           ghc-data-default-instances-containers
+           ghc-data-default-instances-dlist
+           ghc-data-default-instances-old-locale))
     (home-page "https://hackage.haskell.org/package/data-default")
     (synopsis "Types with default values")
     (description
@@ -3000,7 +2871,7 @@ packages.")
         (base32 "0ym1sw3ssdzzifxxhh76qlv8kkmb2iclc158incv1dklyr9y8kw4"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-data-default-class" ,ghc-data-default-class)))
+     (list ghc-data-default-class))
     (home-page "https://hackage.haskell.org/package/data-default-instances-base")
     (synopsis "Default instances for types in base")
     (description
@@ -3023,7 +2894,7 @@ package.")
         (base32 "06h8xka031w752a7cjlzghvr8adqbl95xj9z5zc1b62w02phfpm5"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-data-default-class" ,ghc-data-default-class)))
+     (list ghc-data-default-class))
     (home-page "https://hackage.haskell.org/package/data-default-instances-containers")
     (synopsis "Default instances for types in containers")
     (description "Provides default instances for types from the containers
@@ -3045,8 +2916,7 @@ package.")
         (base32 "0narkdqiprhgayjiawrr4390h4rq4pl2pb6mvixbv2phrc8kfs3x"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-dlist" ,ghc-dlist)))
+     (list ghc-data-default-class ghc-dlist))
     (home-page "https://hackage.haskell.org/package/data-default-instances-dlist")
     (synopsis "Default instances for types in dlist")
     (description "Provides default instances for types from the dlist
@@ -3068,8 +2938,7 @@ package.")
           (base32 "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-old-locale" ,ghc-old-locale)))
+     (list ghc-data-default-class ghc-old-locale))
     (home-page
       "https://hackage.haskell.org/package/data-default-instances-old-locale")
     (synopsis "Default instances for types in old-locale")
@@ -3080,16 +2949,17 @@ package.")
 (define-public ghc-data-fix
   (package
     (name "ghc-data-fix")
-    (version "0.2.0")
+    (version "0.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/data-fix/"
+             "https://hackage.haskell.org/package/data-fix/"
              "data-fix-" version ".tar.gz"))
        (sha256
-        (base32 "14hk6hq5hdb3l5bhmzhw086jpzlvp9qbw9dzw30wlz5jbh2ihmvy"))))
+        (base32 "1k0rcbb6dzv0ggdxqa2bh4jr829y0bczjrg98mrk5733q0xjs5rs"))))
     (build-system haskell-build-system)
+    (inputs (list ghc-hashable))
     (home-page "https://github.com/spell-music/data-fix")
     (synopsis "Fixpoint data types")
     (description
@@ -3112,9 +2982,8 @@ Thanks for contribution to: Matej Kollar, Herbert Valerio Riedel")
         (base32 "1ghbqvc48gf9p8wiy71hdpaj7by3b9cw6wgwi3qqz8iw054xs5wi"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-quickcheck ghc-test-framework
+           ghc-test-framework-quickcheck2))
     (home-page "https://hackage.haskell.org/package/data-hash")
     (synopsis "Combinators for building fast hashing functions")
     (description
@@ -3145,37 +3014,37 @@ It includes hashing functions for all basic Haskell98 types.")
 (define-public ghc-dbus
   (package
     (name "ghc-dbus")
-    (version "1.2.7")
+    (version "1.2.17")
     (source
       (origin
         (method url-fetch)
         (uri
          (string-append
-          "mirror://hackage/package/dbus/dbus-"
+          "https://hackage.haskell.org/package/dbus/dbus-"
           version ".tar.gz"))
         (sha256
           (base32
-            "0ypkjlw9fn65g7p28kb3p82glk7qs7p7vyffccw7qxa3z57s12w5"))))
-    (build-system haskell-build-system)
-    (inputs
-      `(("ghc-cereal" ,ghc-cereal)
-        ("ghc-conduit" ,ghc-conduit)
-        ("ghc-exceptions" ,ghc-exceptions)
-        ("ghc-lens" ,ghc-lens)
-        ("ghc-network" ,ghc-network)
-        ("ghc-random" ,ghc-random)
-        ("ghc-split" ,ghc-split)
-        ("ghc-th-lift" ,ghc-th-lift)
-        ("ghc-vector" ,ghc-vector)
-        ("ghc-xml-conduit" ,ghc-xml-conduit)
-        ("ghc-xml-types" ,ghc-xml-types)))
-    (native-inputs
-      `(("ghc-extra" ,ghc-extra)
-        ("ghc-quickcheck" ,ghc-quickcheck)
-        ("ghc-resourcet" ,ghc-resourcet)
-        ("ghc-tasty" ,ghc-tasty)
-        ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-        ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+            "0iyfnkxcnm1vl379ry88fqxgn2y8q6ilsvpic6ciassnyv5pcbrv"))))
+    (build-system haskell-build-system)
+    (inputs
+      (list ghc-cereal
+            ghc-conduit
+            ghc-exceptions
+            ghc-lens
+            ghc-network
+            ghc-random
+            ghc-split
+            ghc-th-lift
+            ghc-vector
+            ghc-xml-conduit
+            ghc-xml-types))
+    (native-inputs
+      (list ghc-extra
+            ghc-quickcheck
+            ghc-resourcet
+            ghc-tasty
+            ghc-tasty-hunit
+            ghc-tasty-quickcheck))
     ;; FIXME - Some tests try to talk to network.
     (arguments `(#:tests? #f))
     (home-page "https://github.com/rblaze/haskell-dbus")
@@ -3194,7 +3063,7 @@ interfaces common to foreign bindings.")
 (define-public ghc-decimal
   (package
     (name "ghc-decimal")
-    (version "0.5.1")
+    (version "0.5.2")
     (source
      (origin
        (method url-fetch)
@@ -3204,14 +3073,11 @@ interfaces common to foreign bindings.")
              ".tar.gz"))
        (sha256
         (base32
-         "0k7kh05mr2f54w1lpgq1nln0h8k6s6h99dyp5jzsb9cfbb3aap2p"))))
+         "19w7i9f0lbiyzwa0v3bm95233vi7f1688f0xms6cnjsf88h04ym3"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+     (list ghc-hunit ghc-quickcheck ghc-test-framework
+           ghc-test-framework-quickcheck2 ghc-test-framework-hunit))
     (home-page "https://github.com/PaulJohnson/Haskell-Decimal")
     (synopsis "Decimal numbers with variable precision")
     (description
@@ -3235,11 +3101,9 @@ value.")
     (build-system haskell-build-system)
     (arguments
      `(#:cabal-revision
-       ("4" "0928s2qnbqsjzrm94x88rvmvbigfmhcyp4m73gw6asinp2qg1kii")))
+       ("6" "1qwnpdjsrqzn18pjmvv9aqz3l12fbdcimf62wkj33yfh69rx4s42")))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+     (list ghc-hunit ghc-test-framework ghc-test-framework-hunit))
     (home-page "https://github.com/hvr/deepseq-generics")
     (synopsis "Generic RNF implementation")
     (description
@@ -3263,15 +3127,14 @@ providing an @code{rnf} implementation.")
          "1m7jjxahqxj7ilic3r9806mwp5rnnsmn8vvipkmk40xl65wplxzp"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-math-functions" ,ghc-math-functions)
-       ("ghc-primitive" ,ghc-primitive)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-vector-algorithms" ,ghc-vector-algorithms)
-       ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
-       ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
+     (list ghc-math-functions
+           ghc-primitive
+           ghc-vector
+           ghc-vector-algorithms
+           ghc-vector-th-unbox
+           ghc-vector-binary-instances))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-hspec ghc-quickcheck))
     (home-page "https://hackage.haskell.org/package/dense-linear-algebra")
     (synopsis "Simple and incomplete implementation of linear algebra")
     (description "This library is simply a collection of linear-algebra
@@ -3294,13 +3157,9 @@ related modules split from the statistics library.")
          "0y5693zm2kvqjilybbmrcv1g6n6x2p6zjgi0k0axjw1sdhh1g237"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-bifunctors" ,ghc-bifunctors)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-vector" ,ghc-vector)))
+     (list ghc-aeson ghc-bifunctors ghc-scientific ghc-vector))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-hspec" ,ghc-hspec)))
+     (list ghc-hunit ghc-hspec))
     (home-page
      "https://github.com/chrisdone/descriptive")
     (synopsis
@@ -3313,7 +3172,7 @@ and parsers with useful semantics.")
 (define-public ghc-diagrams-core
   (package
     (name "ghc-diagrams-core")
-    (version "1.4.2")
+    (version "1.5.0")
     (source
      (origin
        (method url-fetch)
@@ -3321,18 +3180,18 @@ and parsers with useful semantics.")
                            "diagrams-core/diagrams-core-" version ".tar.gz"))
        (sha256
         (base32
-         "0qgb43vy23g4fxh3nmxfq6jyp34imqvkhgflaa6rz0iq6d60gl43"))))
+         "0y3smp3hiyfdirdak3j4048cgqv7a5q9p2jb6z8na2llys5mrmdn"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-monoid-extras" ,ghc-monoid-extras)
-       ("ghc-dual-tree" ,ghc-dual-tree)
-       ("ghc-lens" ,ghc-lens)
-       ("ghc-linear" ,ghc-linear)
-       ("ghc-adjunctions" ,ghc-adjunctions)
-       ("ghc-distributive" ,ghc-distributive)
-       ("ghc-profunctors" ,ghc-profunctors)))
+     (list ghc-unordered-containers
+           ghc-semigroups
+           ghc-monoid-extras
+           ghc-dual-tree
+           ghc-lens
+           ghc-linear
+           ghc-adjunctions
+           ghc-distributive
+           ghc-profunctors))
     (home-page "https://archives.haskell.org/projects.haskell.org/diagrams/")
     (synopsis "Core libraries for diagrams embedded domain-specific language")
     (description "This package provides the core modules underlying
@@ -3343,7 +3202,7 @@ declarative drawing.")
 (define-public ghc-diagrams-lib
   (package
     (name "ghc-diagrams-lib")
-    (version "1.4.2.3")
+    (version "1.4.4")
     (source
      (origin
        (method url-fetch)
@@ -3351,40 +3210,38 @@ declarative drawing.")
                            "diagrams-lib/diagrams-lib-" version ".tar.gz"))
        (sha256
         (base32
-         "175yzi5kw4yd8ykdkpf64q85c7j3p89l90m3h6qcsx9ipv6av9r5"))))
-    (build-system haskell-build-system)
-    (inputs
-     `(("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-monoid-extras" ,ghc-monoid-extras)
-       ("ghc-dual-tree" ,ghc-dual-tree)
-       ("ghc-diagrams-core" ,ghc-diagrams-core)
-       ("ghc-diagrams-solve" ,ghc-diagrams-solve)
-       ("ghc-active" ,ghc-active)
-       ("ghc-colour" ,ghc-colour)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-fingertree" ,ghc-fingertree)
-       ("ghc-intervals" ,ghc-intervals)
-       ("ghc-lens" ,ghc-lens)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-juicypixels" ,ghc-juicypixels)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-linear" ,ghc-linear)
-       ("ghc-adjunctions" ,ghc-adjunctions)
-       ("ghc-distributive" ,ghc-distributive)
-       ("ghc-fsnotify" ,ghc-fsnotify)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-profunctors" ,ghc-profunctors)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-cereal" ,ghc-cereal)))
-    (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-numeric-extras" ,ghc-numeric-extras)))
+         "09np7kj8si8kcb854f95a0cq392mgbxif8lnazbpfsa1k87d9vzy"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-semigroups
+           ghc-monoid-extras
+           ghc-dual-tree
+           ghc-diagrams-core
+           ghc-diagrams-solve
+           ghc-active
+           ghc-colour
+           ghc-data-default-class
+           ghc-fingertree
+           ghc-intervals
+           ghc-lens
+           ghc-tagged
+           ghc-optparse-applicative
+           ghc-juicypixels
+           ghc-hashable
+           ghc-linear
+           ghc-adjunctions
+           ghc-distributive
+           ghc-fsnotify
+           ghc-unordered-containers
+           ghc-profunctors
+           ghc-exceptions
+           ghc-cereal))
+    (native-inputs
+     (list ghc-tasty ghc-tasty-hunit ghc-tasty-quickcheck
+           ghc-numeric-extras))
     (arguments
      `(#:cabal-revision
-       ("3" "157y2qdsh0aczs81vzlm377mks976mpv6y3aqnchwsnr7apzp8ai")))
+       ("1" "1c7kpnbvxwdcmk5znqyig3l6s986ppj168ck5v72dfbp8cjvwa8i")))
     (home-page "https://archives.haskell.org/projects.haskell.org/diagrams/")
     (synopsis "Embedded domain-specific language for declarative graphics")
     (description "Diagrams is a flexible, extensible embedded
@@ -3397,7 +3254,7 @@ primitives and operations for creating diagrams.")
 (define-public ghc-diagrams-solve
   (package
     (name "ghc-diagrams-solve")
-    (version "0.1.1")
+    (version "0.1.3")
     (source
      (origin
        (method url-fetch)
@@ -3406,15 +3263,13 @@ primitives and operations for creating diagrams.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "17agchqkmj14b17sw50kzxq4hm056g5d8yy0wnqn5w8h1d0my7x4"))))
+         "09qqwcvbvd3a0j5fnp40dbzw0i3py9c7kgizj2aawajwbyjvpd17"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+     (list ghc-tasty ghc-tasty-hunit ghc-tasty-quickcheck))
     (arguments
      `(#:cabal-revision
-       ("5" "1yl8cs05fzqcz49p601am1ij66m9pa70yamhfxgcvya2pf8nimlf")))
+       ("1" "0dp61igq17l7hvhs3167skdi1vmlm773qrrmsqmj08951l4cgv0h")))
     (home-page "https://archives.haskell.org/projects.haskell.org/diagrams/")
     (synopsis "Pure Haskell solver routines used by diagrams")
     (description "This library provides Pure Haskell solver routines for
@@ -3428,7 +3283,7 @@ and cyclic tridiagonal linear systems.")
 (define-public ghc-diagrams-svg
   (package
     (name "ghc-diagrams-svg")
-    (version "1.4.2")
+    (version "1.4.3")
     (source
      (origin
        (method url-fetch)
@@ -3436,24 +3291,24 @@ and cyclic tridiagonal linear systems.")
                            "diagrams-svg/diagrams-svg-" version ".tar.gz"))
        (sha256
         (base32
-         "1lnyxx45yawqas7hmvvannwaa3ycf1l9g40lsl2m8sl2ja6vcmal"))))
+         "1ysv6cz0fngrndl4wjmw4hrdj2rik5fxa1dkxzwnlgf1xwpvxgk8"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-colour" ,ghc-colour)
-       ("ghc-diagrams-core" ,ghc-diagrams-core)
-       ("ghc-diagrams-lib" ,ghc-diagrams-lib)
-       ("ghc-monoid-extras" ,ghc-monoid-extras)
-       ("ghc-svg-builder" ,ghc-svg-builder)
-       ("ghc-juicypixels" ,ghc-juicypixels)
-       ("ghc-split" ,ghc-split)
-       ("ghc-lens" ,ghc-lens)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-semigroups" ,ghc-semigroups)))
+     (list ghc-base64-bytestring
+           ghc-colour
+           ghc-diagrams-core
+           ghc-diagrams-lib
+           ghc-monoid-extras
+           ghc-svg-builder
+           ghc-juicypixels
+           ghc-split
+           ghc-lens
+           ghc-hashable
+           ghc-optparse-applicative
+           ghc-semigroups))
     (arguments
      `(#:cabal-revision
-       ("2" "15sn85xaachw4cj56w61bjcwrbf4qmnkfl8mbgdapxi5k0y4f2qv")))
+       ("4" "0irjf0g1barr06fy409r0ld2hypihrhh6n80ig3487xxny6gfzs0")))
     (home-page "https://archives.haskell.org/projects.haskell.org/diagrams/")
     (synopsis "Scalable Vector Grpahics backend for the diagrams framework")
     (description "This package provides a modular backend for rendering
@@ -3487,20 +3342,18 @@ members are shared.")
 (define-public ghc-diff
   (package
     (name "ghc-diff")
-    (version "0.3.4")
+    (version "0.4.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "Diff/Diff-" version ".tar.gz"))
-              (patches (search-patches "ghc-diff-swap-cover-args.patch"))
               (sha256
                (base32
-                "0bqcdvhxx8dmqc3793m6axg813wv9ldz2j37f1wygbbrbbndmdvp"))))
+                "1is9y5rlqyxacnj6kbi6h9laym5shp699r0hkj5p9d6qi84sr43j"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-quickcheck ghc-test-framework
+           ghc-test-framework-quickcheck2))
     (home-page "https://hub.darcs.net/sterlingclover/Diff")
     (synopsis "O(ND) diff algorithm in Haskell")
     (description
@@ -3531,7 +3384,7 @@ disk space usage.")
 (define-public ghc-distributive
   (package
     (name "ghc-distributive")
-    (version "0.6.2")
+    (version "0.6.2.1")
     (source
      (origin
        (method url-fetch)
@@ -3541,19 +3394,13 @@ disk space usage.")
              ".tar.gz"))
        (sha256
         (base32
-         "1j93zkfffm6s16kgr0j0z87y5ds28rw0r2gyc5ncwcylvrqy4kl2"))))
+         "14bb66qyfn43bj688igfvnfjw7iycjf4n2k38sm8rxbqw2916dfp"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-tagged" ,ghc-tagged)
-       ("ghc-base-orphans" ,ghc-base-orphans)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-generic-deriving" ,ghc-generic-deriving)))
+     (list ghc-tagged ghc-base-orphans ghc-transformers-compat
+           ghc-semigroups ghc-generic-deriving))
     (native-inputs
-     `(("cabal-doctest" ,cabal-doctest)
-       ("ghc-doctest" ,ghc-doctest)
-       ("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list cabal-doctest ghc-doctest ghc-hspec hspec-discover))
     (home-page "https://github.com/ekmett/distributive/")
     (synopsis "Distributive functors for Haskell")
     (description "This package provides distributive functors for Haskell.
@@ -3563,7 +3410,7 @@ Dual to @code{Traversable}.")
 (define-public ghc-dlist
   (package
     (name "ghc-dlist")
-    (version "0.8.0.7")
+    (version "1.0")
     (source
      (origin
        (method url-fetch)
@@ -3572,10 +3419,10 @@ Dual to @code{Traversable}.")
              version
              ".tar.gz"))
        (sha256
-        (base32 "0b5spkzvj2kx8pk86xz0djkxs13j7dryf5fl16dk4mlp1wh6mh53"))))
+        (base32 "0581a60xw4gw7pmqlmg5w2hr4hm9yjgx4c2z6v63y5xv51rn6g8p"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-quickcheck))
     (home-page "https://github.com/spl/dlist")
     (synopsis "Difference lists")
     (description
@@ -3587,7 +3434,7 @@ Writer monad), where list append quickly becomes too expensive.")
 (define-public ghc-doctemplates
   (package
     (name "ghc-doctemplates")
-    (version "0.2.2.1")
+    (version "0.9")
     (source
      (origin
        (method url-fetch)
@@ -3596,17 +3443,20 @@ Writer monad), where list append quickly becomes too expensive.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1gyckfg3kgvzhxw14i7iwrw0crygvsp86sy53bbr1yn7bxbgn33b"))))
+         "048h8ka849h1f0xxwkasjbrrwq03rfz2m7aqg5xc5286kp02w9ns"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-blaze-markup" ,ghc-blaze-markup)
-       ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-scientific" ,ghc-scientific)))
+     (list ghc-aeson
+           ghc-doclayout
+           ghc-hsyaml
+           ghc-safe
+           ghc-scientific
+           ghc-text-conversions
+           ghc-unordered-containers
+           ghc-vector))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)))
+     (list ghc-glob ghc-tasty ghc-tasty-golden ghc-tasty-hunit
+           ghc-temporary))
     (home-page "https://github.com/jgm/doctemplates#readme")
     (synopsis "Pandoc-style document templates")
     (description
@@ -3616,7 +3466,7 @@ Writer monad), where list append quickly becomes too expensive.")
 (define-public ghc-doctest
   (package
     (name "ghc-doctest")
-    (version "0.16.2")
+    (version "0.17")
     (source
      (origin
        (method url-fetch)
@@ -3626,22 +3476,19 @@ Writer monad), where list append quickly becomes too expensive.")
              ".tar.gz"))
        (sha256
         (base32
-         "0lk4cjfzi5bx2snfzw1zi06li0gvgz3ckfh2kwa98l7nxfdl39ag"))))
+         "0f0knggq6yjcznyri35fll619q5jr8vcsbiyvdiz4prkawhaa4pz"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f))          ; FIXME: missing test framework
     (inputs
-     `(("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-code-page" ,ghc-code-page)
-       ("ghc-paths" ,ghc-paths)
-       ("ghc-syb" ,ghc-syb)))
-    (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-mockery" ,ghc-mockery)
-       ("ghc-setenv" ,ghc-setenv)
-       ("ghc-silently" ,ghc-silently)
-       ("ghc-stringbuilder" ,ghc-stringbuilder)))
+     (list ghc-base-compat ghc-code-page ghc-paths ghc-syb))
+    (native-inputs
+     (list ghc-hunit
+           ghc-quickcheck
+           ghc-hspec
+           ghc-mockery
+           ghc-setenv
+           ghc-silently
+           ghc-stringbuilder))
     (home-page
      "https://github.com/sol/doctest#readme")
     (synopsis "Test interactive Haskell examples")
@@ -3653,17 +3500,17 @@ It is modeled after doctest for Python, see
 (define-public ghc-dotgen
   (package
     (name "ghc-dotgen")
-    (version "0.4.2")
+    (version "0.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/dotgen/dotgen-"
+             "https://hackage.haskell.org/package/dotgen/dotgen-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "148q93qsmqgr5pzdwvpjqfd6bdm1pwzcp2rblfwswx2x8c5f43fg"))))
+         "1jcn5m9342jrdq7jln2v9msf9978ngrx0pq9rrjh8izhvbvph76s"))))
     (build-system haskell-build-system)
     (home-page "https://github.com/ku-fpg/dotgen")
     (synopsis
@@ -3689,10 +3536,8 @@ monadic interface for building graphs.")
          "0sx2kc1gw72mjvd8vph8bbjw5whfxfv92rsdhjg1c0al75rf3ka4"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-hunit ghc-test-framework ghc-test-framework-hunit
+           ghc-test-framework-quickcheck2))
     (home-page "https://github.com/bos/double-conversion")
     (synopsis "Fast conversion between double precision floating point and text")
     (description
@@ -3703,7 +3548,7 @@ between double precision floating point and text.")
 (define-public ghc-dual-tree
   (package
     (name "ghc-dual-tree")
-    (version "0.2.2.1")
+    (version "0.2.3.0")
     (source
      (origin
        (method url-fetch)
@@ -3711,15 +3556,17 @@ between double precision floating point and text.")
                            "dual-tree/dual-tree-" version ".tar.gz"))
        (sha256
         (base32
-         "17kdfnf0df0z5pkiifxrlmyd1xd7hjjaazd2kzyajl0gd00vbszx"))))
+         "0qyn7kb42wvlcvb1wbf1qx3isc2y6k3hzp5iq6ab0r0llw9g6qlg"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:tests? #f ; TODO: ghc-testing-feat does not build.
+       #:cabal-revision
+       ("1" "1babd7ybsgk73x57yl35q0n1i7mbbqmv4am710kq1hzg3in4g9dv")))
     (inputs
-     `(("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-newtype-generics" ,ghc-newtype-generics)
-       ("ghc-monoid-extras" ,ghc-monoid-extras)))
-    (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-testing-feat" ,ghc-testing-feat)))
+     (list ghc-semigroups ghc-newtype-generics ghc-monoid-extras))
+;    (native-inputs
+;     `(("ghc-quickcheck" ,ghc-quickcheck)
+;       ("ghc-testing-feat" ,ghc-testing-feat)))
     (home-page "https://hackage.haskell.org/package/dual-tree")
     (synopsis "Rose trees with cached and accumulating monoidal annotations")
     (description "Rose (@math{n}-ary) trees with both upwards- (i.e.
@@ -3763,7 +3610,7 @@ diagrams framework}, but potentially has other applications as well.")
        (sha256
         (base32 "18kndgvdj2apjpfga6fp7m16y1gx8zrwp3c5vfj03sx4v6jvciqk"))))
     (build-system haskell-build-system)
-    (propagated-inputs `(("gnuplot" ,gnuplot)))
+    (propagated-inputs (list gnuplot))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-after 'unpack 'fix-setup-suffix
@@ -3777,7 +3624,7 @@ Haskell, using gnuplot for rendering.")
 (define-public ghc-echo
   (package
     (name "ghc-echo")
-    (version "0.1.3")
+    (version "0.1.4")
     (source
      (origin
        (method url-fetch)
@@ -3786,7 +3633,7 @@ Haskell, using gnuplot for rendering.")
              version ".tar.gz"))
        (sha256
         (base32
-         "1vw5ykpwhr39wc0hhcgq3r8dh59zq6ib4zxbz1qd2wl21wqhfkvh"))))
+         "0hqfdd4kvpp59cjjv790bkf72yqr9xjfqlbjcrdsc9a8j3r1pzn9"))))
     (build-system haskell-build-system)
     (arguments
      `(#:cabal-revision
@@ -3800,53 +3647,6 @@ This library provides an alternative interface which works with both
 MinTTY and other consoles.")
     (license license:bsd-3)))
 
-(define-public ghc-edisonapi
-  (package
-    (name "ghc-edisonapi")
-    (version "1.3.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://hackage.haskell.org/package/EdisonAPI"
-                           "/EdisonAPI-" version ".tar.gz"))
-       (sha256
-        (base32 "0vmmlsj8ggbpwx6fkf5fvb6jp0zpx6iba6b28m80lllr2p8bi8wm"))))
-    (build-system haskell-build-system)
-    (home-page "http://rwd.rdockins.name/edison/home/")
-    (synopsis "Library of efficient, purely-functional data structures (API)")
-    (description
-     "Edison is a library of purely functional data structures written by
-Chris Okasaki.  It is named after Thomas Alva Edison and for the mnemonic
-value EDiSon (Efficient Data Structures).  Edison provides several families of
-abstractions, each with multiple implementations.  The main abstractions
-provided by Edison are: Sequences such as stacks, queues, and dequeues;
-Collections such as sets, bags and heaps; and Associative Collections such as
-finite maps and priority queues where the priority and element are distinct.")
-    (license license:expat)))
-
-(define-public ghc-edisoncore
-  (package
-    (name "ghc-edisoncore")
-    (version "1.3.2.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://hackage.haskell.org/package/EdisonCore"
-                           "/EdisonCore-" version ".tar.gz"))
-       (sha256
-        (base32 "0fgj5iwiv3v2gdgx7kjcr15dcs4x1kvmjspp3p99wyhh0x6h3ikk"))))
-    (build-system haskell-build-system)
-    (inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-edisonapi" ,ghc-edisonapi)))
-    (home-page "http://rwd.rdockins.name/edison/home/")
-    (synopsis "Library of efficient, purely-functional data structures")
-    (description
-     "This package provides the core Edison data structure implementations,
-including multiple sequence, set, bag, and finite map concrete implementations
-with various performance characteristics.")
-    (license license:expat)))
-
 (define-public ghc-edit-distance
   (package
     (name "ghc-edit-distance")
@@ -3860,18 +3660,12 @@ with various performance characteristics.")
         (base32 "0jkca97zyv23yyilp3jydcrzxqhyk27swhzh82llvban5zp8b21y"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'update-constraints
-           (lambda _
-             (substitute* "edit-distance.cabal"
-               (("QuickCheck >= 2\\.4 && <2\\.9")
-                "QuickCheck >= 2.4 && < 2.14")))))))
-    (inputs
-     `(("ghc-random" ,ghc-random)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     `(#:tests? #f ; TODO: Needs quickcheck<2.10
+       #:cabal-revision
+       ("1" "1vjn4ryzdilz7l1ad7czh11nw48h5mj8if7ij3q0mmc3sffa8csd")))
+    (inputs
+     (list ghc-random ghc-test-framework ghc-quickcheck
+           ghc-test-framework-quickcheck2))
     (home-page "https://github.com/phadej/edit-distance")
     (synopsis "Levenshtein and restricted Damerau-Levenshtein edit distances")
     (description
@@ -3895,10 +3689,9 @@ Damerau-Levenshtein algorithms.")
          "07qgc8dyi9kkzkd3xcd78wdlljy0xwhz65b4r2qg2piidpcdvpxp"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-vector" ,ghc-vector)))
+     (list ghc-vector))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
+     (list ghc-quickcheck ghc-quickcheck-instances))
     (home-page "https://github.com/thsutton/edit-distance-vector")
     (synopsis "Calculate edit distances and edit scripts between vectors")
     (description "This package provides implementation of the
@@ -3927,6 +3720,9 @@ but is otherwise agnostic to:
         (base32
          "09yzki8ss56xhy9vggdw1rls86b2kf55hjl5wi0vbv02d8fxahq2"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("1" "03bgnq55lc6f1nx4p662gidfsyyfm3xm4fi84h77wnsppxrpa5j1")))
     (inputs `(("ghc-bifunctors" ,ghc-bifunctors)
               ("ghc-exceptions" ,ghc-exceptions)
               ("ghc-free" ,ghc-free)
@@ -3938,9 +3734,8 @@ but is otherwise agnostic to:
               ("ghc-semigroupoids" ,ghc-semigroupoids)
               ("ghc-transformers-base" ,ghc-transformers-base)))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-quickcheck ghc-test-framework
+           ghc-test-framework-quickcheck2))
     (home-page "https://github.com/ekmett/either")
     (synopsis "Provides an either monad transformer for Haskell")
     (description "This Haskell package provides an either monad transformer.")
@@ -3949,7 +3744,7 @@ but is otherwise agnostic to:
 (define-public ghc-email-validate
   (package
     (name "ghc-email-validate")
-    (version "2.3.2.12")
+    (version "2.3.2.15")
     (source
      (origin
        (method url-fetch)
@@ -3960,13 +3755,10 @@ but is otherwise agnostic to:
              ".tar.gz"))
        (sha256
         (base32
-         "0ar3cfjia3x11chb7w60mi7hp5djanms883ddk875l6lifr2lyqf"))))
+         "0n67wss6k8lhwfkybkhsa04bbdfdv541sacbxlylkx2hqpj5r5gh"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-doctest" ,ghc-doctest)))
+     (list ghc-attoparsec ghc-hspec ghc-quickcheck ghc-doctest))
     (home-page
      "https://github.com/Porges/email-validate-hs")
     (synopsis "Email address validator for Haskell")
@@ -3992,13 +3784,10 @@ address string against RFC 5322.")
     ;; "thread blocked indefinitely in an MVar operation"
     (arguments '(#:tests? #f))
     (inputs
-     `(("ghc-lifted-base" ,ghc-lifted-base)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-async" ,ghc-async)
-       ("ghc-transformers-base" ,ghc-transformers-base)))
+     (list ghc-lifted-base ghc-monad-control ghc-async
+           ghc-transformers-base))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-hspec ghc-quickcheck))
     (home-page "https://github.com/jcristovao/enclosed-exceptions")
     (synopsis "Catch all exceptions from within an enclosed computation")
     (description
@@ -4020,10 +3809,8 @@ asynchronous exceptions.")
         (base32 "167njzd1cf32aa7br90rjafrxy6hw3fxkk8awifqbxjrcwm5maqp"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-stmonadtrans" ,ghc-stmonadtrans)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-fail" ,ghc-fail)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-stmonadtrans ghc-transformers-compat ghc-fail
+           ghc-quickcheck))
     (home-page "https://github.com/pa-ba/equivalence")
     (synopsis "Maintaining an equivalence relation implemented as union-find")
     (description
@@ -4070,11 +3857,9 @@ Double.")
          "0hqw82m8bbrxy5vgdwb83bhzdx070ibqrm9rshyja7cb808ahijm"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-base-orphans" ,ghc-base-orphans)))
+     (list ghc-base-orphans))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-quickcheck ghc-hspec hspec-discover))
     (home-page "https://hackage.haskell.org/package/errorcall-eq-instance")
     (synopsis "Orphan Eq instance for ErrorCall")
     (description
@@ -4097,10 +3882,8 @@ This package provides an orphan instance.")
          "0x8znwn31qcx6kqx99wp7bc86kckfb39ncz3zxvj1s07kxlfawk7"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-unexceptionalio" ,ghc-unexceptionalio)
-       ("ghc-safe" ,ghc-safe)))
+     (list ghc-exceptions ghc-transformers-compat ghc-unexceptionalio
+           ghc-safe))
     (home-page "https://github.com/gabriel439/haskell-errors-library")
     (synopsis "Error handling library for Haskell")
     (description "This library encourages an error-handling style that
@@ -4110,7 +3893,7 @@ directly uses the type system, rather than out-of-band exceptions.")
 (define-public ghc-esqueleto
   (package
     (name "ghc-esqueleto")
-    (version "3.3.1.1")
+    (version "3.5.3.0")
     (source
      (origin
        (method url-fetch)
@@ -4118,46 +3901,33 @@ directly uses the type system, rather than out-of-band exceptions.")
                            "esqueleto/esqueleto-" version ".tar.gz"))
        (sha256
         (base32
-         "1qi28ma8j5kfygjxnixlazxsyrkdqv8ljz3icwqi5dlscsnj6v3v"))))
+         "0z3cf49sha6q965qw2m08jfmb91ki2rsdpnr7l39lka5b4ffxjlz"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:haddock? #f  ; Haddock reports an internal error.
-       #:phases
-       (modify-phases %standard-phases
-         ;; This package normally runs tests for the MySQL, PostgreSQL, and
-         ;; SQLite backends.  Since we only have Haskell packages for
-         ;; SQLite, we remove the other two test suites.  FIXME: Add the
-         ;; other backends and run all three test suites.
-         (add-before 'configure 'remove-non-sqlite-test-suites
-           (lambda _
-             (use-modules (ice-9 rdelim))
-             (with-atomic-file-replacement "esqueleto.cabal"
-               (lambda (in out)
-                 (let loop ((line (read-line in 'concat)) (deleting? #f))
-                   (cond
-                    ((eof-object? line) #t)
-                    ((string-every char-set:whitespace line)
-                     (unless deleting? (display line out))
-                     (loop (read-line in 'concat) #f))
-                    ((member line '("test-suite mysql\n"
-                                    "test-suite postgresql\n"))
-                     (loop (read-line in 'concat) #t))
-                    (else
-                     (unless deleting? (display line out))
-                     (loop (read-line in 'concat) deleting?)))))))))))
-    (inputs
-     `(("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-monad-logger" ,ghc-monad-logger)
-       ("ghc-persistent" ,ghc-persistent)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-unliftio" ,ghc-unliftio)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)))
-    (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
-       ("ghc-persistent-template" ,ghc-persistent-template)))
+     `(#:tests? #f))  ; TODO: Cannot connect to mysql server.
+    (inputs
+     (list ghc-aeson
+           ghc-attoparsec
+           ghc-blaze-html
+           ghc-conduit
+           ghc-monad-logger
+           ghc-persistent
+           ghc-resourcet
+           ghc-tagged
+           ghc-unliftio
+           ghc-unordered-containers
+           openssl
+           zlib))
+    (native-inputs
+     (list ghc-hspec-core
+           ghc-hspec
+           ghc-mysql
+           ghc-mysql-simple
+           ghc-persistent-mysql
+           ghc-persistent-postgresql
+           ghc-persistent-sqlite
+           ghc-postgresql-simple
+           ghc-quickcheck))
     (home-page "https://github.com/bitemyapp/esqueleto")
     (synopsis "Type-safe embedded domain specific language for SQL queries")
     (description "This library provides a type-safe embedded domain specific
@@ -4170,7 +3940,7 @@ generated SQL and optimize it for your backend.")
 (define-public ghc-exactprint
   (package
     (name "ghc-exactprint")
-    (version "0.6.1")
+    (version "0.6.4")
     (source
      (origin
        (method url-fetch)
@@ -4179,17 +3949,12 @@ generated SQL and optimize it for your backend.")
              "ghc-exactprint/ghc-exactprint-" version ".tar.gz"))
        (sha256
         (base32
-         "12nqpqmi9c57a3hgpfy8q073zryz66ylmcvf29hyffpj7vmmnvhl"))))
+         "0a6baza962d4pz2m02hxmh8234i47zkizmwhsy68namr05dmlgpw"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-paths" ,ghc-paths)
-       ("ghc-syb" ,ghc-syb)
-       ("ghc-free" ,ghc-free)))
+     (list ghc-paths ghc-syb ghc-free))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-diff" ,ghc-diff)
-       ("ghc-silently" ,ghc-silently)
-       ("ghc-filemanip" ,ghc-filemanip)))
+     (list ghc-hunit ghc-diff ghc-silently ghc-filemanip))
     (home-page
      "https://hackage.haskell.org/package/ghc-exactprint")
     (synopsis "ExactPrint for GHC")
@@ -4202,7 +3967,7 @@ excluding @file{.lhs} files.")
 (define-public ghc-exceptions
   (package
     (name "ghc-exceptions")
-    (version "0.10.3")
+    (version "0.10.4")
     (source
      (origin
        (method url-fetch)
@@ -4212,15 +3977,16 @@ excluding @file{.lhs} files.")
              ".tar.gz"))
        (sha256
         (base32
-         "1w25j4ys5s6v239vbqlbipm9fdwxl1j2ap2lzms7f7rgnik5ir24"))))
+         "1kw4pmx7j7zwbdwm0dyn9rcs6kp4byfxy48861yxdz6gam1zn2sd"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("2" "1154g0dqil2xf4wc1v6gndzhnbf5saf2dzf77c6lcjxssx360m6j")))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-quickcheck ghc-test-framework ghc-test-framework-hunit
+           ghc-test-framework-quickcheck2))
     (inputs
-     `(("ghc-transformers-compat" ,ghc-transformers-compat)))
+     (list ghc-transformers-compat))
     (home-page "https://github.com/ekmett/exceptions/")
     (synopsis "Extensible optionally-pure exceptions")
     (description "This library provides extensible optionally-pure exceptions
@@ -4272,7 +4038,7 @@ versions of GHC (i.e., < 6.10).")
 (define-public ghc-extra
   (package
     (name "ghc-extra")
-    (version "1.6.21")
+    (version "1.7.9")
     (source
      (origin
        (method url-fetch)
@@ -4282,13 +4048,11 @@ versions of GHC (i.e., < 6.10).")
              ".tar.gz"))
        (sha256
         (base32
-         "1gjx98w4w61g043k6rzc8i34cbxpcigi8lb6i7pp1vwp8w8jm5vl"))))
+         "17fzmxwrv0w7inhq7kia36prc2nsx845r9v56sihqvr17fk2cvpn"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-clock" ,ghc-clock)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
+     (list ghc-clock ghc-semigroups ghc-quickcheck
+           ghc-quickcheck-instances))
     (home-page "https://github.com/ndmitchell/extra")
     (synopsis "Extra Haskell functions")
     (description "This library provides extra functions for the standard
@@ -4325,7 +4089,7 @@ when used with GHC versions which already provide the
 (define-public ghc-fast-logger
   (package
     (name "ghc-fast-logger")
-    (version "2.4.17")
+    (version "3.0.5")
     (source
      (origin
        (method url-fetch)
@@ -4335,16 +4099,12 @@ when used with GHC versions which already provide the
              ".tar.gz"))
        (sha256
         (base32
-         "02mxb1ckvx1s2r2m11l5i2l5rdl7232p0f61af6773haykjp0qxk"))))
+         "1mbnah6n8lig494523czcd95dfn01f438qai9pf20wpa2gdbz4x6"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-auto-update" ,ghc-auto-update)
-       ("ghc-easy-file" ,ghc-easy-file)
-       ("ghc-unix-time" ,ghc-unix-time)
-       ("ghc-unix-compat" ,ghc-unix-compat)))
+     (list ghc-auto-update ghc-easy-file ghc-unix-time ghc-unix-compat))
     (native-inputs
-     `(("hspec-discover" ,hspec-discover)
-       ("ghc-hspec" ,ghc-hspec)))
+     (list hspec-discover ghc-hspec))
     (home-page "https://hackage.haskell.org/package/fast-logger")
     (synopsis "Fast logging system")
     (description "This library provides a fast logging system for Haskell.")
@@ -4353,7 +4113,7 @@ when used with GHC versions which already provide the
 (define-public ghc-feed
   (package
     (name "ghc-feed")
-    (version "1.2.0.1")
+    (version "1.3.2.0")
     (source
      (origin
        (method url-fetch)
@@ -4361,22 +4121,26 @@ when used with GHC versions which already provide the
                            "feed/feed-" version ".tar.gz"))
        (sha256
         (base32
-         "004lwdng4slj6yl8mgscr3cgj0zzc8hzkf4450dby2l6cardg4w0"))))
+         "0kv3vx3njqlhwvkmf12m1gmwl8jj97kfa60da2362vwdavhcf4dk"))))
     (build-system haskell-build-system)
+    (arguments `(#:tests? #f)) ; TODO: Fail.
     (inputs
-     `(("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-old-time" ,ghc-old-time)
-       ("ghc-safe" ,ghc-safe)
-       ("ghc-time-locale-compat" ,ghc-time-locale-compat)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-xml-conduit" ,ghc-xml-conduit)
-       ("ghc-xml-types" ,ghc-xml-types)))
+     (list ghc-base-compat
+           ghc-old-locale
+           ghc-old-time
+           ghc-safe
+           ghc-time-locale-compat
+           ghc-utf8-string
+           ghc-xml-conduit
+           ghc-xml-types))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-markdown-unlit" ,ghc-markdown-unlit)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+     (list ghc-doctest-driver-gen
+           ghc-doctest
+           ghc-hunit
+           ghc-markdown-unlit
+           ghc-syb
+           ghc-test-framework
+           ghc-test-framework-hunit))
     (home-page "https://github.com/bergmark/feed")
     (synopsis "Haskell package for handling various syndication formats")
     (description "This Haskell package includes tools for generating and
@@ -4386,7 +4150,7 @@ consuming feeds in both RSS (Really Simple Syndication) and Atom format.")
 (define-public ghc-fgl
   (package
     (name "ghc-fgl")
-    (version "5.7.0.1")
+    (version "5.7.0.3")
     (outputs '("out" "static" "doc"))
     (source
      (origin
@@ -4397,7 +4161,7 @@ consuming feeds in both RSS (Really Simple Syndication) and Atom format.")
              ".tar.gz"))
        (sha256
         (base32
-         "04793yh778ck3kz1z2svnfdwwls2kisbnky4lzvf4zjfgpv7mkpz"))))
+         "04k5grp5d381wkc7sxgcl0sd3z3nlm6l6mmh103vhzh6p49vhs99"))))
     (build-system haskell-build-system)
     (arguments
      `(#:phases
@@ -4410,8 +4174,7 @@ consuming feeds in both RSS (Really Simple Syndication) and Atom format.")
                (("hspec >= 2\\.1 && < 2\\.7")
                 "hspec >= 2.1 && < 2.8")))))))
     (inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-hspec ghc-quickcheck))
     (home-page "https://web.engr.oregonstate.edu/~erwig/fgl/haskell")
     (synopsis
      "Martin Erwig's Functional Graph Library")
@@ -4424,7 +4187,7 @@ encourages inductive, recursive definitions of graph algorithms.")
 (define-public ghc-fgl-arbitrary
   (package
     (name "ghc-fgl-arbitrary")
-    (version "0.2.0.3")
+    (version "0.2.0.6")
     (source
      (origin
        (method url-fetch)
@@ -4433,22 +4196,10 @@ encourages inductive, recursive definitions of graph algorithms.")
              version ".tar.gz"))
        (sha256
         (base32
-         "0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm"))))
+         "1mykbd1r43gpsn10ys8q3nr0i4wnhn6wq23hcici18mxxji11wkc"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'update-constraints
-           (lambda _
-             (substitute* "fgl-arbitrary.cabal"
-               (("QuickCheck >= 2\\.3 && < 2\\.10")
-                "QuickCheck >= 2.3 && < 2.14")
-               (("hspec >= 2\\.1 && < 2\\.5")
-                "hspec >= 2.1 && < 2.8")))))))
     (inputs
-     `(("ghc-fgl" ,ghc-fgl)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hspec" ,ghc-hspec)))
+     (list ghc-fgl ghc-quickcheck ghc-hspec))
     (home-page "https://hackage.haskell.org/package/fgl-arbitrary")
     (synopsis "QuickCheck support for fgl")
     (description
@@ -4461,7 +4212,7 @@ for generating graph-like data structures.")
 (define-public ghc-file-embed
   (package
     (name "ghc-file-embed")
-    (version "0.0.11")
+    (version "0.0.15.0")
     (source
      (origin
        (method url-fetch)
@@ -4469,7 +4220,7 @@ for generating graph-like data structures.")
                            "file-embed-" version ".tar.gz"))
        (sha256
         (base32
-         "0l6dkwccbzzyx8rcav03lya2334dgi3vfwk96h7l93l0fc4x19gf"))))
+         "1pavxj642phrkq67620g10wqykjfhmm9yj2rm8pja83sadfvhrph"))))
     (build-system haskell-build-system)
     (home-page "https://github.com/snoyberg/file-embed")
     (synopsis "Use Template Haskell to embed file contents directly")
@@ -4492,7 +4243,7 @@ embedded in your Haskell code.")
                 "0ilqr8jv41zxcj5qyicg29m8s30b9v70x6f9h2h2rw5ap8bxldl8"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-unix-compat" ,ghc-unix-compat)))
+     (list ghc-unix-compat))
     (home-page "https://github.com/bos/filemanip")
     (synopsis "File and directory manipulation for Haskell")
     (description
@@ -4504,7 +4255,7 @@ file contents, and more.")
 (define-public ghc-filepath-bytestring
   (package
     (name "ghc-filepath-bytestring")
-    (version "1.4.2.1.6")
+    (version "1.4.2.1.8")
     (source
      (origin
        (method url-fetch)
@@ -4513,10 +4264,10 @@ file contents, and more.")
               "filepath-bytestring-" version ".tar.gz"))
        (sha256
         (base32
-         "11xrrzdkm5i96dazbz0gi1qp8nnj2lwbnxzwy7f4cnahskz4f4g7"))))
+         "0qrrvbjpjsk75ghqrdqzwqg7wjgm3rr9kk7p04ax98ilv90pm0ip"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-quickcheck))
     (home-page "https://hackage.haskell.org/package/filepath-bytestring")
     (synopsis "Library for manipulating RawFilePaths in a cross-platform way")
     (description "This package provides a drop-in replacement for the standard
@@ -4562,11 +4313,8 @@ an executable.")
          "0zvandj8fysck7ygpn0dw5bhrhmj1s63i326nalxbfkh2ls4iacm"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-hunit ghc-quickcheck ghc-test-framework
+           ghc-test-framework-hunit ghc-test-framework-quickcheck2))
     (home-page "https://hackage.haskell.org/package/fingertree")
     (synopsis "Generic finger-tree structure")
     (description "This library provides finger trees, a general sequence
@@ -4619,7 +4367,7 @@ arithmetic.")
 (define-public ghc-fmlist
   (package
     (name "ghc-fmlist")
-    (version "0.9.3")
+    (version "0.9.4")
     (source
      (origin
        (method url-fetch)
@@ -4629,7 +4377,7 @@ arithmetic.")
          version ".tar.gz"))
        (sha256
         (base32
-         "1w9nhm2zybdx4c1lalkajwqr8wcs731lfjld2r8gknd7y96x8pwf"))))
+         "19h95ph7lh7llw6j1v1rssrdi5k7xw8x0iac9rgzss371s2w3g9d"))))
     (build-system haskell-build-system)
     (home-page "https://github.com/sjoerdvisscher/fmlist")
     (synopsis "FoldMap lists")
@@ -4643,7 +4391,7 @@ completely unverified though.")
 (define-public ghc-foldl
   (package
     (name "ghc-foldl")
-    (version "1.4.5")
+    (version "1.4.12")
     (source
      (origin
        (method url-fetch)
@@ -4652,20 +4400,20 @@ completely unverified though.")
                            "foldl-" version ".tar.gz"))
        (sha256
         (base32
-         "19qjmzc7gaxfwgqbgy0kq4vhbxvh3qjnwsxnc7pzwws2if5bv80b"))))
+         "0zf4yljh3s2ddxa7dhzdglmylj14kfldhkclc44g37zvjq6kcnag"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
-    (inputs `(("ghc-mwc-randam" ,ghc-mwc-random)
-              ("ghc-primitive" ,ghc-primitive)
-              ("ghc-vector" ,ghc-vector)
-              ("ghc-unordered-containers" ,ghc-unordered-containers)
-              ("ghc-hashable" ,ghc-hashable)
-              ("ghc-contravariant" ,ghc-contravariant)
-              ("ghc-semigroups" ,ghc-semigroups)
-              ("ghc-profunctors" ,ghc-profunctors)
-              ("ghc-semigroupoids" ,ghc-semigroupoids)
-              ("ghc-comonad" ,ghc-comonad)
-              ("ghc-vector-builder" ,ghc-vector-builder)))
+    (inputs (list ghc-comonad
+                  ghc-contravariant
+                  ghc-hashable
+                  ghc-primitive
+                  ghc-profunctors
+                  ghc-random
+                  ghc-semigroupoids
+                  ghc-semigroups
+                  ghc-unordered-containers
+                  ghc-vector))
+    (native-inputs (list ghc-doctest))
     (home-page "https://github.com/Gabriel439/Haskell-Foldl-Library")
     (synopsis "Composable, streaming, and efficient left folds for Haskell")
     (description "This Haskell library provides strict left folds that stream
@@ -4677,7 +4425,7 @@ and are often as efficient as hand-written folds.")
 (define-public ghc-foundation
   (package
     (name "ghc-foundation")
-    (version "0.0.25")
+    (version "0.0.26.1")
     (source
      (origin
        (method url-fetch)
@@ -4685,7 +4433,7 @@ and are often as efficient as hand-written folds.")
                            "foundation/foundation-" version ".tar.gz"))
        (sha256
         (base32
-         "0q6kx57ygmznlpf8n499hid4x6mj3180paijx0a8dgi9hh7man61"))))
+         "1hri3raqf6nhh6631gfm2yrkv4039gb0cqfa9cqmjp8bbqv28w5d"))))
     (build-system haskell-build-system)
     (arguments
      `(#:phases
@@ -4698,7 +4446,7 @@ and are often as efficient as hand-written folds.")
                ((", testDividible proxy") ""))
              #t)))))
     (outputs '("out" "static" "doc"))
-    (inputs `(("ghc-basement" ,ghc-basement)))
+    (inputs (list ghc-basement))
     (home-page "https://github.com/haskell-foundation/foundation")
     (synopsis "Alternative prelude with batteries and no dependencies")
     (description
@@ -4722,7 +4470,7 @@ Foundation has the following goals:
 (define-public ghc-free
   (package
     (name "ghc-free")
-    (version "5.1.2")
+    (version "5.1.7")
     (source
      (origin
        (method url-fetch)
@@ -4732,20 +4480,20 @@ Foundation has the following goals:
              ".tar.gz"))
        (sha256
         (base32
-         "0vlf3f2ckl3cr7z2zl8c9c8qkdlfgvmh04gxkp2fg0z9dz80nlyb"))))
+         "121b81wxjk30nc27ivwzxjxi1dcwc30y0gy8l6wac3dxwvkx2c5j"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
     (inputs
-     `(("ghc-prelude-extras" ,ghc-prelude-extras)
-       ("ghc-profunctors" ,ghc-profunctors)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-bifunctors" ,ghc-bifunctors)
-       ("ghc-comonad" ,ghc-comonad)
-       ("ghc-distributive" ,ghc-distributive)
-       ("ghc-semigroupoids" ,ghc-semigroupoids)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-transformers-base" ,ghc-transformers-base)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)))
+     (list ghc-prelude-extras
+           ghc-profunctors
+           ghc-exceptions
+           ghc-bifunctors
+           ghc-comonad
+           ghc-distributive
+           ghc-semigroupoids
+           ghc-semigroups
+           ghc-transformers-base
+           ghc-transformers-compat))
     (home-page "https://github.com/ekmett/free/")
     (synopsis "Unrestricted monads for Haskell")
     (description "This library provides free monads, which are useful for many
@@ -4771,14 +4519,14 @@ definition of @code{Monad}.")
                 "19bdbz9wb9jvln6yg6qm0hz0w84bypvkxf0wjhgrgd52f9gidlny"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-async" ,ghc-async)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-hinotify" ,ghc-hinotify)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-random" ,ghc-random)
-       ("ghc-shelly" ,ghc-shelly)
-       ("ghc-temporary" ,ghc-temporary)))
+     (list ghc-async
+           ghc-unix-compat
+           ghc-hinotify
+           ghc-tasty
+           ghc-tasty-hunit
+           ghc-random
+           ghc-shelly
+           ghc-temporary))
     (home-page "https://github.com/haskell-fswatch/hfsnotify")
     (synopsis "Cross platform library for file change notification.")
     (description "Cross platform library for file creation, modification, and
@@ -4789,7 +4537,7 @@ specific Windows, Mac, and Linux file system event notification.")
 (define-public ghc-generic-deriving
   (package
     (name "ghc-generic-deriving")
-    (version "1.12.4")
+    (version "1.14.1")
     (source
      (origin
        (method url-fetch)
@@ -4799,14 +4547,13 @@ specific Windows, Mac, and Linux file system event notification.")
              ".tar.gz"))
        (sha256
         (base32
-         "0vdg9qdq35jl3m11a87wk8cq1y71qm4i1g1b2pxki0wk70yw20a4"))))
+         "19qpahcfhs9nqqv6na8znybrvpw885cajbdnrfylxbsmm0sys4s7"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
     (inputs
-     `(("ghc-th-abstraction" ,ghc-th-abstraction)))
+     (list ghc-th-abstraction))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec hspec-discover))
     (home-page "https://hackage.haskell.org/package/generic-deriving")
     (synopsis "Generalise the deriving mechanism to arbitrary classes")
     (description "This package provides functionality for generalising the
@@ -4826,9 +4573,9 @@ deriving mechanism in Haskell to arbitrary classes.")
        (sha256
         (base32 "130lmblycxnpqbsl7vf6a90zccibnvcb5zaclfajcn3by39007lv"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
+    (inputs (list ghc-quickcheck))
     (native-inputs
-     `(("ghc-inspection-testing" ,ghc-inspection-testing)))
+     (list ghc-inspection-testing))
     (arguments
      `(#:cabal-revision
        ("1" "1d0hx41r7yq2a86ydnfh2fv540ah8cz05l071s2z4wxcjw0ymyn4")))
@@ -4856,7 +4603,7 @@ and @code{withBaseCase}) or implicitly (@code{genericArbitrary'}).")
 (define-public ghc-generic-random-1.3.0.1
   (package
     (inherit ghc-generic-random)
-    (version "1.3.0.1")
+    (version "1.4.0.0")
     (source
      (origin
        (method url-fetch)
@@ -4864,13 +4611,13 @@ and @code{withBaseCase}) or implicitly (@code{genericArbitrary'}).")
              "https://hackage.haskell.org/package/generic-random/"
              "generic-random-" version ".tar.gz"))
        (sha256
-        (base32 "0d9w7xcmsb31b95fr9d5jwbsajcl1yi4347dlbw4bybil2vjwd7k"))))
+        (base32 "12rvb1dzrfjc46n9vdcw3yv773iih8vwhrac3hpzq70yp2z77jdw"))))
     (arguments '())))
 
 (define-public ghc-generics-sop
   (package
     (name "ghc-generics-sop")
-    (version "0.4.0.1")
+    (version "0.5.1.1")
     (source
      (origin
        (method url-fetch)
@@ -4879,12 +4626,11 @@ and @code{withBaseCase}) or implicitly (@code{genericArbitrary'}).")
                            "generics-sop-" version ".tar.gz"))
        (sha256
         (base32
-         "160knr2phnzh2gldfv954lz029jzc7y8kz5xpmbf4z3vb5ngm6fw"))))
+         "1n65wjdbb9fswa43ys5k6c746c905877lw5ij33y66iabj5w7dw1"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
     (inputs
-     `(("ghc-sop-core" ,ghc-sop-core)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)))
+     (list ghc-sop-core ghc-th-abstraction))
     (home-page "https://github.com/well-typed/generics-sop")
     (synopsis "Generic Programming using True Sums of Products for Haskell")
     (description "This Haskell package supports the definition of generic
@@ -4896,7 +4642,7 @@ each constructor are represented using an n-ary product.")
 (define-public ghc-geniplate-mirror
   (package
     (name "ghc-geniplate-mirror")
-    (version "0.7.6")
+    (version "0.7.8")
     (source
      (origin
        (method url-fetch)
@@ -4904,11 +4650,8 @@ each constructor are represented using an n-ary product.")
                            "/geniplate-mirror"
                            "/geniplate-mirror-" version ".tar.gz"))
        (sha256
-        (base32 "1y0m0bw5zpm1y1y6d9qmxj3swl8j8hlw1shxbr5awycf6k884ssb"))))
+        (base32 "1kw4q7l556sfd82r2p0z3cv4sg8kcr45wb4s2sy996bs3ymn8fjb"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:cabal-revision
-       ("2" "03fg4vfm1wgq4mylggawdx0bfvbbjmdn700sqx7v3hk1bx0kjfzh")))
     (home-page "https://github.com/danr/geniplate")
     (synopsis "Use Template Haskell to generate Uniplate-like functions")
     (description
@@ -4920,7 +4663,7 @@ geniplate} package, written by Lennart Augustsson.")
 (define-public ghc-genvalidity
   (package
     (name "ghc-genvalidity")
-    (version "0.8.0.0")
+    (version "0.11.0.2")
     (source
      (origin
        (method url-fetch)
@@ -4930,15 +4673,12 @@ geniplate} package, written by Lennart Augustsson.")
              ".tar.gz"))
        (sha256
         (base32
-         "0w38aq9hfyymidncgkrs6yvja7j573d9sap5qfg5rz910fhsij9a"))))
+         "16bd5dx0ngc8z7mij23i2l3a8v3c112x8ksd623alik18zx7pi8j"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-validity" ,ghc-validity)))
+     (list ghc-quickcheck ghc-validity))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)
-       ("ghc-hspec-core" ,ghc-hspec-core)))
+     (list ghc-hspec hspec-discover ghc-hspec-core))
     (home-page
      "https://github.com/NorfairKing/validity")
     (synopsis
@@ -4951,7 +4691,7 @@ with the @code{Validity} typeclass.")
 (define-public ghc-genvalidity-property
   (package
     (name "ghc-genvalidity-property")
-    (version "0.4.0.0")
+    (version "0.5.0.1")
     (source
      (origin
        (method url-fetch)
@@ -4962,15 +4702,16 @@ with the @code{Validity} typeclass.")
              ".tar.gz"))
        (sha256
         (base32
-         "0zayycx62226w54rvkxwhvqhznsr33dk3ds55yyqrfqbnhvph1s9"))))
+         "0cvzc4z4771vpycwfgcj0yswyglzl6cl1h2wrfhs224nrcmk5a7z"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-genvalidity" ,ghc-genvalidity)
-       ("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)
-       ("ghc-validity" ,ghc-validity)))
-    (native-inputs `(("ghc-doctest" ,ghc-doctest)))
+     (list ghc-quickcheck
+           ghc-genvalidity
+           ghc-hspec
+           hspec-discover
+           ghc-pretty-show
+           ghc-validity))
+    (native-inputs (list ghc-doctest))
     (home-page
      "https://github.com/NorfairKing/validity")
     (synopsis
@@ -4995,16 +4736,9 @@ properties for functions operating on them.")
          "1rszkcn1rg38wf35538ljk5bbqjc57y9sb3a0al7qxm82gy8yigr"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-base-orphans" ,ghc-base-orphans)
-       ("ghc-generics-sop" ,ghc-generics-sop)
-       ("ghc-tagged" ,ghc-tagged)))
+     (list ghc-base-compat ghc-base-orphans ghc-generics-sop ghc-tagged))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-safe" ,ghc-safe)
-       ("ghc-silently" ,ghc-silently)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-quickcheck ghc-hspec ghc-safe ghc-silently hspec-discover))
     (home-page "https://github.com/soenkehahn/getopt-generics")
     (synopsis "Create command line interfaces with ease")
     (description "This library provides tools to create command line
@@ -5023,7 +4757,7 @@ interfaces with ease.")
        (sha256
         (base32 "0cl3lfm6k1h8fxp2vxa6ihfp4v8igkz9h35iwyq2frzm4kdn96d8"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-base-compat" ,ghc-base-compat)))
+    (inputs (list ghc-base-compat))
     (home-page "https://github.com/acfoltzer/gitrev")
     (synopsis "Compile git revision info into Haskell projects")
     (description
@@ -5036,7 +4770,7 @@ info for more informative bug reports.")
 (define-public ghc-glob
   (package
     (name "ghc-glob")
-    (version "0.10.0")
+    (version "0.10.1")
     (source
      (origin
        (method url-fetch)
@@ -5045,18 +4779,13 @@ info for more informative bug reports.")
                            "Glob-" version ".tar.gz"))
        (sha256
         (base32
-         "0953f91f62ncna402vsrfzdcyxhdpjna3bgdw017kad0dfymacs7"))))
+         "05fknrb114qvfzv6324ngx0fz43cwgrhrc700l3h2is9jinlgr6a"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-dlist" ,ghc-dlist)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)))
+     (list ghc-dlist ghc-semigroups ghc-transformers-compat))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-hunit ghc-quickcheck ghc-test-framework
+           ghc-test-framework-hunit ghc-test-framework-quickcheck2))
     (home-page "http://iki.fi/matti.niemenmaa/glob/")
     (synopsis "Haskell library matching glob patterns against file paths")
     (description "This package provides a Haskell library for @dfn{globbing}:
@@ -5079,7 +4808,7 @@ matching patterns against file paths.")
          "1i2xi35n5z0d372px9mh6cyhgg1m0cfaiy3fnspkf6kbn9fgsqxq"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-openglraw" ,ghc-openglraw)))
+     (list ghc-openglraw))
     (home-page "https://wiki.haskell.org/Opengl")
     (synopsis "Raw Haskell bindings GLU")
     (description "GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL
@@ -5090,7 +4819,7 @@ basis for a nicer interface.")
 (define-public ghc-glut
   (package
     (name "ghc-glut")
-    (version "2.7.0.15")
+    (version "2.7.0.16")
     (source
      (origin
        (method url-fetch)
@@ -5100,13 +4829,10 @@ basis for a nicer interface.")
              ".tar.gz"))
        (sha256
         (base32
-         "0271vnf6wllhxjwy0m348x90kv27aybxcbqkkglmd5w4cpwjg5g9"))))
+         "0vdkfj4wjzigdpzgr5l001y9wkhwgl00mclr26gf93kps14fkymn"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-statevar" ,ghc-statevar)
-       ("ghc-opengl" ,ghc-opengl)
-       ("ghc-openglraw" ,ghc-openglraw)
-       ("freeglut" ,freeglut)))
+     (list ghc-statevar ghc-opengl ghc-openglraw freeglut))
     (home-page "https://wiki.haskell.org/Opengl")
     (synopsis "Haskell bindings for the OpenGL Utility Toolkit")
     (description "This library provides Haskell bindings for the OpenGL
@@ -5117,23 +4843,23 @@ programs.")
 (define-public ghc-gnuplot
   (package
     (name "ghc-gnuplot")
-    (version "0.5.6")
+    (version "0.5.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/gnuplot/gnuplot-"
+             "https://hackage.haskell.org/package/gnuplot/gnuplot-"
              version ".tar.gz"))
        (sha256
-        (base32 "1g6xgnlkh17avivn1rlq7l2nvs26dvrbx4rkfld0bf6kyqaqwrgp"))))
+        (base32 "1rfq94lnsyjr8y9p5r56jpllv3p8rvh9xxzjji016b6r5adi8cnb"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-temporary" ,ghc-temporary)
-       ("ghc-utility-ht" ,ghc-utility-ht)
-       ("ghc-data-accessor-transformers" ,ghc-data-accessor-transformers)
-       ("ghc-data-accessor" ,ghc-data-accessor)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("gnuplot" ,gnuplot)))
+     (list ghc-temporary
+           ghc-utility-ht
+           ghc-data-accessor-transformers
+           ghc-data-accessor
+           ghc-semigroups
+           gnuplot))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -5152,38 +4878,25 @@ programs.")
 (define-public ghc-graphviz
   (package
     (name "ghc-graphviz")
-    (version "2999.20.0.3")
+    (version "2999.20.1.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "graphviz/graphviz-" version ".tar.gz"))
               (sha256
                (base32
-                "04k26zw61nfv1pkd00iaq89pgsaiym0sf4cbzkmm2k2fj5xa587g"))))
+                "0l0zxgb938hh09qirggbaskq79mgj3s081cnr42y5vm1rp1jir2s"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'update-constraints
-           (lambda _
-             (substitute* "graphviz.cabal"
-               (("QuickCheck >= 2\\.3 && < 2\\.13")
-                "QuickCheck >= 2.3 && < 2.14")
-               (("hspec >= 2\\.1 && < 2\\.7")
-                "hspec >= 2.1 && < 2.8")))))))
     (inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-colour" ,ghc-colour)
-       ("ghc-dlist" ,ghc-dlist)
-       ("ghc-fgl" ,ghc-fgl)
-       ("ghc-fgl-arbitrary" ,ghc-fgl-arbitrary)
-       ("ghc-polyparse" ,ghc-polyparse)
-       ("ghc-temporary" ,ghc-temporary)
-       ("ghc-wl-pprint-text" ,ghc-wl-pprint-text)))
+     (list ghc-colour
+           ghc-dlist
+           ghc-fgl
+           ghc-polyparse
+           ghc-temporary
+           ghc-wl-pprint-text))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("graphviz" ,graphviz)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec graphviz ghc-fgl-arbitrary ghc-quickcheck
+           hspec-discover))
     (home-page "https://hackage.haskell.org/package/graphviz")
     (synopsis "Bindings to Graphviz for graph visualisation")
     (description
@@ -5207,7 +4920,7 @@ and edge labels with positional information, etc.
 (define-public ghc-groups
   (package
     (name "ghc-groups")
-    (version "0.4.1.0")
+    (version "0.5.3")
     (source
       (origin
         (method url-fetch)
@@ -5215,7 +4928,7 @@ and edge labels with positional information, etc.
                             "groups/groups-" version ".tar.gz"))
         (sha256
           (base32
-            "0ggkygkyxw5ga4cza82bjvdraavl294k0h6b62d2px7z3nvqhifx"))))
+            "0f5c8dg9b74glfw2sdvdcl9c8igs6knz1bayk4gvvzvypsl547nf"))))
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/groups")
     (synopsis "Haskell 98 groups")
@@ -5226,7 +4939,7 @@ monoid with invertibility.")
 (define-public ghc-gtk2hs-buildtools
   (package
     (name "ghc-gtk2hs-buildtools")
-    (version "0.13.5.4")
+    (version "0.13.8.1")
     (source
      (origin
        (method url-fetch)
@@ -5235,14 +4948,12 @@ monoid with invertibility.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1flxsacxwmabzzalhn8558kmj95z01c0lmikrn56nxh7p62nxm25"))))
+         "102x753jbc90lfm9s0ng5kvm0risqwpar331xwsd752as0bms142"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-random" ,ghc-random)
-       ("ghc-hashtables" ,ghc-hashtables)))
+     (list ghc-random ghc-hashtables))
     (native-inputs
-     `(("ghc-alex" ,ghc-alex)
-       ("ghc-happy" ,ghc-happy)))
+     (list ghc-alex ghc-happy))
     (home-page "http://projects.haskell.org/gtk2hs/")
     (synopsis "Tools to build the Gtk2Hs suite of user interface libraries")
     (description
@@ -5257,7 +4968,7 @@ tools are not needed to actually run Gtk2Hs programs.")
 (define-public ghc-hackage-security
   (package
     (name "ghc-hackage-security")
-    (version "0.5.3.0")
+    (version "0.6.0.1")
     (source
      (origin
        (method url-fetch)
@@ -5266,30 +4977,31 @@ tools are not needed to actually run Gtk2Hs programs.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "08bwawc7ramgdh54vcly2m9pvfchp0ahhs8117jajni6x4bnx66v"))))
+         "05rgz31cmp52137j4jk0074z8lfgk8mrf2x56bzw28asmxrv8qli"))))
     (build-system haskell-build-system)
     (arguments
      `(#:cabal-revision
-       ("6" "1xs2nkzlvkdz8g27yzfxbjdbdadfmgiydnlpn5dm77cg18r495ay")
+       ("8" "1xpzcdpfz0agbv75sadsylq6r8pq7zr0pyzbzrz0nz130yixsv5f")
        #:tests? #f)) ; Tests fail because of framework updates.
     (inputs
-     `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
-       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-cryptohash-sha256" ,ghc-cryptohash-sha256)
-       ("ghc-ed25519" ,ghc-ed25519)
-       ("ghc-network" ,ghc-network)
-       ("ghc-network-uri" ,ghc-network-uri)
-       ("ghc-tar" ,ghc-tar)
-       ("ghc-zlib" ,ghc-zlib)))
-    (native-inputs
-     `(("ghc-network-uri" ,ghc-network-uri)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-tar" ,ghc-tar)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-temporary" ,ghc-temporary)
-       ("ghc-zlib" ,ghc-zlib)))
+     (list ghc-base16-bytestring
+           ghc-base64-bytestring
+           ghc-cryptohash-sha256
+           ghc-ed25519
+           ghc-lukko
+           ghc-network
+           ghc-network-uri
+           ghc-tar
+           ghc-zlib))
+    (native-inputs
+     (list ghc-aeson
+           ghc-quickcheck
+           ghc-tasty
+           ghc-tasty-hunit
+           ghc-tasty-quickcheck
+           ghc-temporary
+           ghc-unordered-containers
+           ghc-vector))
     (home-page "https://github.com/haskell/hackage-security")
     (synopsis "Hackage security library")
     (description "This Hackage security library provides both server and
@@ -5304,7 +5016,7 @@ Tor project}.")
 (define-public ghc-haddock
   (package
     (name "ghc-haddock")
-    (version "2.22.0")
+    (version "2.24.2")
     (source
      (origin
        (method url-fetch)
@@ -5314,39 +5026,21 @@ Tor project}.")
              ".tar.gz"))
        (sha256
         (base32
-         "1k42z2zh550rl93c8pa9cg2xsanp6wvb031xvan6cmngnplmdib6"))))
+         "1ha4hrnidwkmwalqwd1ixa2933as5n4sj1lvz0cx89a3png7r930"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:phases
+     `(#:tests? #f ; TODO: haddock-test does not build.
+       #:phases
        (modify-phases %standard-phases
-         ;; The release tarball for 2.22.0 is missing the test data for
-         ;; the Hoogle test, causing it to fail.  This is fixed in the
-         ;; next release, but for now we disable it.
-         (add-before 'configure 'remove-hoogle-test
-           (lambda _
-             (use-modules (ice-9 rdelim))
-             (with-atomic-file-replacement "haddock.cabal"
-               (lambda (in out)
-                 (let loop ((line (read-line in 'concat)) (deleting? #f))
-                   (cond
-                    ((eof-object? line) #t)
-                    ((string-every char-set:whitespace line)
-                     (unless deleting? (display line out))
-                     (loop (read-line in 'concat) #f))
-                    ((string=? line "test-suite hoogle-test\n")
-                     (loop (read-line in 'concat) #t))
-                    (else
-                     (unless deleting? (display line out))
-                     (loop (read-line in 'concat) deleting?))))))))
          (add-before 'check 'add-haddock-to-path
            (lambda _
              (setenv "PATH" (string-append (getcwd) "/dist/build/haddock"
                                            ":" (getenv "PATH")))
              #t)))))
-    (inputs `(("ghc-haddock-api" ,ghc-haddock-api)))
-    (native-inputs
-     `(("ghc-haddock-test" ,ghc-haddock-test)
-       ("ghc-hspec" ,ghc-hspec)))
+    (inputs (list ghc-haddock-api))
+;    (native-inputs
+;     `(("ghc-haddock-test" ,ghc-haddock-test)
+;       ("ghc-hspec" ,ghc-hspec)))
     (home-page "https://www.haskell.org/haddock/")
     (synopsis
      "Documentation-generation tool for Haskell libraries")
@@ -5357,7 +5051,7 @@ Tor project}.")
 (define-public ghc-haddock-api
   (package
     (name "ghc-haddock-api")
-    (version "2.22.0")
+    (version "2.24.2")
     (source
      (origin
        (method url-fetch)
@@ -5365,28 +5059,14 @@ Tor project}.")
              "https://hackage.haskell.org/package/haddock-api/haddock-api-"
              version
              ".tar.gz"))
-       (patches (search-patches "ghc-haddock-api-fix-haddock.patch"))
        (sha256
         (base32
-         "149q4zlf4m7wcrr4af2n2flh0jxjsypshbc229vsj1m0kmz4z014"))))
+         "1jj2csi85nlywsyvnbwhclfdz27j2kyfbhrl9cm7av0243br9vg1"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'update-constraints
-           (lambda _
-             (substitute* "haddock-api.cabal"
-               (("QuickCheck      \\^>= 2\\.11")
-                "QuickCheck      ^>= 2.13")
-               (("hspec           >= 2\\.4\\.4 && < 2\\.6")
-                "hspec           >= 2.4.4 && < 2.8")))))))
-    (inputs
-     `(("ghc-paths" ,ghc-paths)
-       ("ghc-haddock-library" ,ghc-haddock-library)))
-    (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+    (inputs
+     (list ghc-paths ghc-haddock-library))
+    (native-inputs
+     (list ghc-quickcheck ghc-hspec hspec-discover))
     (home-page "https://www.haskell.org/haddock/")
     (synopsis "API for documentation-generation tool Haddock")
     (description "This package provides an API to Haddock, the
@@ -5396,7 +5076,7 @@ documentation-generation tool for Haskell libraries.")
 (define-public ghc-haddock-library
   (package
     (name "ghc-haddock-library")
-    (version "1.7.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
@@ -5406,26 +5086,16 @@ documentation-generation tool for Haskell libraries.")
              ".tar.gz"))
        (sha256
         (base32
-         "04fhcjk0pvsaqvsgp2w06cv2qvshq1xs1bwc157q4lmkgr57khp7"))))
+         "15ak06q8yp11xz1hwr0sg2jqi3r78p1n89ik05hicqvxl3awf1pq"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         ;; Since there is no revised Cabal file upstream, we have to
-         ;; patch it manually.
-         (add-before 'configure 'relax-test-suite-dependencies
-           (lambda _
-             (substitute* "haddock-library.cabal"
-               (("hspec\\s*>= 2.4.4   && < 2.6") "hspec")
-               (("QuickCheck\\s*\\^>= 2.11") "QuickCheck"))
-             #t)))))
+    (arguments `(#:tests? #f)) ; TODO: optparse-applicative ==0.15.*, tree-diff ==0.1.*
     (native-inputs
-     `(("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-tree-diff" ,ghc-tree-diff)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-base-compat
+           ghc-hspec
+           ghc-optparse-applicative
+           ghc-quickcheck
+           ghc-tree-diff
+           hspec-discover))
     (home-page "https://www.haskell.org/haddock/")
     (synopsis "Library exposing some functionality of Haddock")
     (description
@@ -5472,7 +5142,7 @@ the ‘haddock’ package.")
 (define-public ghc-half
   (package
     (name "ghc-half")
-    (version "0.3")
+    (version "0.3.1")
     (source
      (origin
        (method url-fetch)
@@ -5481,11 +5151,11 @@ the ‘haddock’ package.")
              version ".tar.gz"))
        (sha256
         (base32
-         "14r0nx8hm5fic9gz0ybjjw4kyc758zfgvhhwvzsshpx5caq6zch6"))))
+         "1l8m2spqg0ac50qys2jk5b32v6wxklbbk5ypjp3ga6z14hkw7bz2"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-test-framework ghc-test-framework-quickcheck2
+           ghc-quickcheck))
     (home-page "https://github.com/ekmett/half")
     (synopsis "Half-precision floating-point computations")
     (description "This library provides a half-precision floating-point
@@ -5495,7 +5165,7 @@ computation library for Haskell.")
 (define-public ghc-happy
   (package
     (name "ghc-happy")
-    (version "1.19.12")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
@@ -5505,7 +5175,7 @@ computation library for Haskell.")
              ".tar.gz"))
        (sha256
         (base32
-         "03xlmq6qmdx4zvzw8bp33kd9g7yvcq5cz4wg50xilw812kj276pv"))))
+         "1346r2x5ravs5fqma65bzjragqbb2g6v41wz9maknwm2jf7kl79v"))))
     (build-system haskell-build-system)
     (arguments
      `(#:phases
@@ -5527,8 +5197,7 @@ Happy works in a similar way to the yacc tool for C.")
 (define-public ghc-hashable
   (package
     (name "ghc-hashable")
-    (version "1.2.7.0")
-    (outputs '("out" "static" "doc"))
+    (version "1.3.0.0")
     (source
      (origin
        (method url-fetch)
@@ -5538,19 +5207,15 @@ Happy works in a similar way to the yacc tool for C.")
              ".tar.gz"))
        (sha256
         (base32
-         "1gra8gq3kb7b2sd845h55yxlrfqx3ii004c6vjhga8v0b30fzdgc"))))
+         "1d4sn4xjf0swrfg8pl93ipavbj12ch3a9aykhkl6mjnczc9m8bl2"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:cabal-revision
-       ("1" "197063dpl0wn67dp7a06yc2hxp81n24ykk7klbjx0fndm5n87dh3")))
-    (inputs
-     `(("ghc-random" ,ghc-random)))
+     `(#:tests? #f ; TODO: Tests require random<1.2
+       #:cabal-revision
+       ("2" "16va8hx4ynw0n5s2warhs13ilj7hrs5fcdn140h1fiix480as36n")))
     (native-inputs
-     `(("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-test-framework ghc-test-framework-hunit
+           ghc-test-framework-quickcheck2 ghc-hunit ghc-quickcheck))
     (home-page "https://github.com/tibbe/hashable")
     (synopsis "Class for types that can be converted to a hash value")
     (description
@@ -5573,7 +5238,7 @@ combine hash values.")
 (define-public ghc-hashable-time
   (package
     (name "ghc-hashable-time")
-    (version "0.2.0.2")
+    (version "0.2.1")
     (source
      (origin
        (method url-fetch)
@@ -5583,12 +5248,13 @@ combine hash values.")
              ".tar.gz"))
        (sha256
         (base32
-         "1q7y4plqqwy5286hhx2fygn12h8lqk0y047b597sbdckskxzfqgs"))))
+         "1zw2gqagpbwq1hgx5rlvy6mhsnb15cxg3pmhawwv0ylfihmx2yxh"))))
     (build-system haskell-build-system)
     (arguments
      `(#:cabal-revision
-       ("2" "006phc5y9rrvsshdcmjmhxzxh8dpgs685mpqbkjm9c40xb1ydjbz")))
-    (inputs `(("ghc-hashable" ,ghc-hashable)))
+       ("1" "151gxiprdlj3masa95vvrxal9nwa72n3p1y15xyj4hp7mvvl4s2l")))
+    (inputs
+     (list ghc-hashable ghc-time-compat))
     (home-page "https://hackage.haskell.org/package/hashable-time")
     (synopsis "Hashable instances for Data.Time")
     (description
@@ -5599,7 +5265,7 @@ combine hash values.")
 (define-public ghc-hashtables
   (package
     (name "ghc-hashtables")
-    (version "1.2.3.4")
+    (version "1.2.4.1")
     (source
      (origin
        (method url-fetch)
@@ -5607,12 +5273,17 @@ combine hash values.")
              "https://hackage.haskell.org/package/hashtables/hashtables-"
              version ".tar.gz"))
        (sha256
-        (base32 "1rjmxnr30g4hygiywkpz5p9sanh0abs7ap4zc1kgd8zv04kycp0j"))))
+        (base32 "0vgggm7bqq55zmqj6qji89bfj3k1rdkikkfhyg81vsqf0f3bzhqa"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hashable" ,ghc-hashable)
-       ("ghc-primitive" ,ghc-primitive)
-       ("ghc-vector" ,ghc-vector)))
+     (list ghc-hashable ghc-primitive ghc-vector))
+    (native-inputs
+     (list ghc-mwc-random
+           ghc-quickcheck
+           ghc-hunit
+           ghc-test-framework
+           ghc-test-framework-quickcheck2
+           ghc-test-framework-hunit))
     (home-page "https://github.com/gregorycollins/hashtables")
     (synopsis "Haskell Mutable hash tables in the ST monad")
     (description "This package provides a Haskell library including a
@@ -5621,7 +5292,7 @@ monad, as well as a typeclass abstracting their common operations, and
 a set of wrappers to use the hash tables in the IO monad.")
     (license license:bsd-3)))
 
-(define-public ghc-haskeline-0.8
+(define-public ghc-haskeline
   (package
     (name "ghc-haskeline")
     (version "0.8.0.0")
@@ -5636,8 +5307,8 @@ a set of wrappers to use the hash tables in the IO monad.")
         (base32
          "0gqsa5s0drim9m42hv4wrq61mnvcdylxysfxfw3acncwilfrn9pb"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-exceptions" ,ghc-exceptions)))
-    (native-inputs `(("ghc-hunit" ,ghc-hunit)))
+    (inputs (list ghc-exceptions))
+    (native-inputs (list ghc-hunit))
     ;; FIXME: Tests failing
     (arguments `(#:tests? #f))
     (home-page "https://github.com/judah/haskeline")
@@ -5655,7 +5326,7 @@ Haskeline runs both on POSIX-compatible systems and on Windows.")
 (define-public ghc-haskell-lexer
   (package
     (name "ghc-haskell-lexer")
-    (version "1.0.2")
+    (version "1.1")
     (source
      (origin
        (method url-fetch)
@@ -5663,7 +5334,7 @@ Haskeline runs both on POSIX-compatible systems and on Windows.")
              "https://hackage.haskell.org/package/haskell-lexer/haskell-lexer-"
              version ".tar.gz"))
        (sha256
-        (base32 "1wyxd8x33x4v5vxyzkhm610pl86gbkc8y439092fr1735q9g7kfq"))))
+        (base32 "1mb3np20ig0hbgnfxrzr3lczq7ya4p76g20lvnxch8ikck61afii"))))
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/haskell-lexer")
     (synopsis "Fully compliant Haskell 98 lexer")
@@ -5674,7 +5345,7 @@ Haskeline runs both on POSIX-compatible systems and on Windows.")
 (define-public ghc-haskell-src
   (package
     (name "ghc-haskell-src")
-    (version "1.0.3.0")
+    (version "1.0.3.1")
     (source
      (origin
        (method url-fetch)
@@ -5684,11 +5355,13 @@ Haskeline runs both on POSIX-compatible systems and on Windows.")
              ".tar.gz"))
        (sha256
         (base32
-         "1g4dj1f0j68bhn4ixfac63wjzy6gsp6kwgxryb1k5nl3i0g99d5l"))))
+         "0cjigvshk4b8wqdk0v0hz9ag1kyjjsmqsy4a1m3n28ac008cg746"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("4" "0cyqdw77clzz7mq0b4c0jg2d1kdz9xii41268w2psmqmfpyn29pc")))
     (inputs
-     `(("ghc-happy" ,ghc-happy)
-       ("ghc-syb" ,ghc-syb)))
+     (list ghc-happy ghc-syb))
     (home-page
      "https://hackage.haskell.org/package/haskell-src")
     (synopsis
@@ -5703,7 +5376,7 @@ package are to parse or generate Haskell 98 code.")
 (define-public ghc-haskell-src-exts
   (package
     (name "ghc-haskell-src-exts")
-    (version "1.21.1")
+    (version "1.23.1")
     (source
      (origin
        (method url-fetch)
@@ -5713,18 +5386,13 @@ package are to parse or generate Haskell 98 code.")
              ".tar.gz"))
        (sha256
         (base32
-         "0q1y8n3d82gid9bcx8wxsqqmj9mq11fg3gp5yzpfbw958dhi3j9f"))))
+         "01bcrxs9af4yqpclw43aijmsd1g19qhyzb47blz7vzwz2r3k11b7"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
     (inputs
-     `(("cpphs" ,cpphs)
-       ("ghc-happy" ,ghc-happy)
-       ("ghc-pretty-show" ,ghc-pretty-show)))
+     (list cpphs ghc-happy ghc-pretty-show))
     (native-inputs
-     `(("ghc-smallcheck" ,ghc-smallcheck)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
-       ("ghc-tasty-golden" ,ghc-tasty-golden)))
+     (list ghc-smallcheck ghc-tasty ghc-tasty-smallcheck ghc-tasty-golden))
     (home-page "https://github.com/haskell-suite/haskell-src-exts")
     (synopsis "Library for manipulating Haskell source")
     (description "Haskell-Source with Extensions (HSE, haskell-src-exts) is an
@@ -5749,10 +5417,8 @@ patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
          "0fvqi72m74p7q5sbpy8m2chm8a1lgy10mfrcxcz8wrh59vngj0n8"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-data-default" ,ghc-data-default)
-       ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-uniplate" ,ghc-uniplate)))
+     (list ghc-data-default ghc-haskell-src-exts ghc-semigroups
+           ghc-uniplate))
     (home-page "https://github.com/pepeiborra/haskell-src-exts-util")
     (synopsis "Helper functions for working with haskell-src-exts trees")
     (description
@@ -5763,7 +5429,7 @@ patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
 (define-public ghc-haskell-src-meta
   (package
     (name "ghc-haskell-src-meta")
-    (version "0.8.3")
+    (version "0.8.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -5771,16 +5437,12 @@ patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "17znnaqj2hnnfyc9p9xjzbs97h2jh1h4f4qbw648y3xa14wx5ra9"))))
+                "1yy2dfb1ip1zqx3xh28g92209555abzvxrxiwcl95j27zzqxc6in"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
-       ("ghc-syb" ,ghc-syb)
-       ("ghc-th-orphans" ,ghc-th-orphans)))
+     (list ghc-haskell-src-exts ghc-syb ghc-th-orphans))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-hunit ghc-tasty ghc-tasty-hunit))
     (home-page "https://hackage.haskell.org/package/haskell-src-meta")
     (synopsis "Parse source to template-haskell abstract syntax")
     (description
@@ -5791,7 +5453,7 @@ template-haskell abstract syntax.")
 (define-public ghc-hasktags
   (package
     (name "ghc-hasktags")
-    (version "0.71.2")
+    (version "0.72.0")
     (source
      (origin
        (method url-fetch)
@@ -5801,16 +5463,15 @@ template-haskell abstract syntax.")
              ".tar.gz"))
        (sha256
         (base32
-         "1s2k9qrgy1jily96img2pmn7g35mwnnfiw6si3aw32jfhg5zsh1c"))))
+         "09p79w16fgpqi6bwq162769xdrnyb7wnmz56k00nz6dj1a0bbbdd"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("1" "0q39ssdgm6lcmqj92frjvr53i34divx53zli0qar39mx8ka1l8ml")))
     (inputs
-     `(("ghc-system-filepath" ,ghc-system-filepath)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
+     (list ghc-system-filepath ghc-optparse-applicative))
     (native-inputs
-     `(("ghc-json" ,ghc-json)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-microlens-platform" ,ghc-microlens-platform)
-       ("ghc-hunit" ,ghc-hunit)))
+     (list ghc-json ghc-utf8-string ghc-microlens-platform ghc-hunit))
     (home-page "https://github.com/MarcWeber/hasktags")
     (synopsis "Make @code{Ctags} and @code{Etags} files for Haskell programs")
     (description
@@ -5821,7 +5482,7 @@ Vim.")
 (define-public ghc-hex
   (package
     (name "ghc-hex")
-    (version "0.1.2")
+    (version "0.2.0")
     (source
      (origin
        (method url-fetch)
@@ -5830,7 +5491,7 @@ Vim.")
                            "hex-" version ".tar.gz"))
        (sha256
         (base32
-         "1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj"))))
+         "1mc66758254d93m7vab7q6lhn7qphzxd6wyc3v6yq1diy0gji4va"))))
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/hex")
     (synopsis "Convert strings into hexadecimal and back")
@@ -5852,11 +5513,9 @@ hexadecimal string representation.")
                 "1bqv00gfmrsf0jjr4qf3lhshvfkyzmhbi3pjb6mafbnsyn2k7f6q"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-diff" ,ghc-diff)
-       ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)))
+     (list ghc-diff ghc-regex-pcre-builtin))
     (native-inputs
-     `(("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-utf8-string" ,ghc-utf8-string)))
+     (list ghc-blaze-html ghc-utf8-string))
     (home-page "https://github.com/jgm/highlighting-kate")
     (synopsis "Syntax highlighting library")
     (description
@@ -5871,7 +5530,7 @@ descriptions.")
 (define-public ghc-hindent
   (package
     (name "ghc-hindent")
-    (version "5.3.1")
+    (version "5.3.2")
     (source
      (origin
        (method url-fetch)
@@ -5881,7 +5540,7 @@ descriptions.")
              ".tar.gz"))
        (sha256
         (base32
-         "008s8zm9qs972b7v5kkmr8l3i9kc6zm7yj33mkw6dv69b7h3c01l"))))
+         "129gkn8qg68wsd60mq8yk7hrqsc8sd8v56xn41m5ii3hriq1mmv7"))))
     (build-system haskell-build-system)
     (arguments
      `(#:modules ((guix build haskell-build-system)
@@ -5904,15 +5563,15 @@ descriptions.")
                (install-file elisp-file dest)
                (emacs-generate-autoloads "hindent" dest)))))))
     (inputs
-     `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
-       ("ghc-monad-loops" ,ghc-monad-loops)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-yaml" ,ghc-yaml)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-path" ,ghc-path)
-       ("ghc-path-io" ,ghc-path-io)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
+     (list ghc-haskell-src-exts
+           ghc-monad-loops
+           ghc-utf8-string
+           ghc-exceptions
+           ghc-yaml
+           ghc-unix-compat
+           ghc-path
+           ghc-path-io
+           ghc-optparse-applicative))
     (native-inputs
      `(("ghc-hspec" ,ghc-hspec)
        ("ghc-diff" ,ghc-diff)
@@ -5928,7 +5587,7 @@ library and an executable.")
 (define-public ghc-hinotify
   (package
     (name "ghc-hinotify")
-    (version "0.4")
+    (version "0.4.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -5936,10 +5595,10 @@ library and an executable.")
                     "hinotify-" version ".tar.gz"))
               (sha256
                (base32
-                "1x1lm685ws2q0z0ibwq6x3l72xh67mj06s36xiga3al48d92q63x"))))
+                "06pqfikfa61i45g92b65br83kplwmizqkm42yp8d0ddgmq0b21qk"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-async" ,ghc-async)))
+     (list ghc-async))
     (home-page "https://github.com/kolmodin/hinotify.git")
     (synopsis "Haskell binding to inotify")
     (description "This library provides a wrapper to the Linux kernel's inotify
@@ -5950,7 +5609,7 @@ accessed or modified.")
 (define-public ghc-hledger-lib
   (package
     (name "ghc-hledger-lib")
-    (version "1.14.1")
+    (version "1.21")
     (source
      (origin
        (method url-fetch)
@@ -5960,35 +5619,38 @@ accessed or modified.")
              ".tar.gz"))
        (sha256
         (base32
-         "1w6qp01cak6spnpldm01czlm6i5a2alw47w76875l2nagrc4rfp2"))))
-    (build-system haskell-build-system)
-    (inputs
-     `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-base-compat-batteries" ,ghc-base-compat-batteries)
-       ("ghc-blaze-markup" ,ghc-blaze-markup)
-       ("ghc-call-stack" ,ghc-call-stack)
-       ("ghc-cassava" ,ghc-cassava)
-       ("ghc-cassava-megaparsec" ,ghc-cassava-megaparsec)
-       ("ghc-cmdargs" ,ghc-cmdargs)
-       ("ghc-data-default" ,ghc-data-default)
-       ("ghc-decimal" ,ghc-decimal)
-       ("ghc-easytest" ,ghc-easytest)
-       ("ghc-extra" ,ghc-extra)
-       ("ghc-file-embed" ,ghc-file-embed)
-       ("ghc-glob" ,ghc-glob)
-       ("ghc-hashtables" ,ghc-hashtables)
-       ("ghc-megaparsec" ,ghc-megaparsec)
-       ("ghc-mtl-compat" ,ghc-mtl-compat)
-       ("ghc-old-time" ,ghc-old-time)
-       ("ghc-parser-combinators" ,ghc-parser-combinators)
-       ("ghc-pretty-show" ,ghc-pretty-show)
-       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
-       ("ghc-safe" ,ghc-safe)
-       ("ghc-split" ,ghc-split)
-       ("ghc-tabular" ,ghc-tabular)
-       ("ghc-uglymemo" ,ghc-uglymemo)
-       ("ghc-utf8-string" ,ghc-utf8-string)))
-    (native-inputs `(("ghc-doctest" ,ghc-doctest)))
+         "00prslqk8vnbyz388cpc0nsamzy8xcjzday5q9n3m9lx4p2dhb5y"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-aeson
+           ghc-aeson-pretty
+           ghc-ansi-terminal
+           ghc-base-compat-batteries
+           ghc-blaze-markup
+           ghc-call-stack
+           ghc-cassava
+           ghc-cassava-megaparsec
+           ghc-cmdargs
+           ghc-data-default
+           ghc-decimal
+           ghc-extra
+           ghc-file-embed
+           ghc-glob
+           ghc-hashtables
+           ghc-megaparsec
+           ghc-old-time
+           ghc-parser-combinators
+           ghc-pretty-simple
+           ghc-regex-tdfa
+           ghc-safe
+           ghc-tabular
+           ghc-tasty
+           ghc-tasty-hunit
+           ghc-timeit
+           ghc-uglymemo
+           ghc-unordered-containers
+           ghc-utf8-string))
+    (native-inputs (list ghc-doctest))
     (home-page "https://hledger.org")
     (synopsis "Reusable library providing the core functionality of hledger")
     (description
@@ -6006,7 +5668,7 @@ Accounting.")
 (define-public ghc-hmatrix
   (package
     (name "ghc-hmatrix")
-    (version "0.20.0.0")
+    (version "0.20.2")
     (source
      (origin
        (method url-fetch)
@@ -6014,18 +5676,18 @@ Accounting.")
              "https://hackage.haskell.org/package/hmatrix/hmatrix-"
              version ".tar.gz"))
        (sha256
-        (base32 "1sqy1aci5zfagkb34mz3xdil7cl96z4b4cx28cha54vc5sx1lhpg"))))
+        (base32 "05462prqkbqpxfbzsgsp8waf0sirg2qz6lzsk7r1ll752n7gqkbg"))))
     (build-system haskell-build-system)
     (arguments
      `(#:extra-directories ("lapack")))
     (inputs
-     `(("ghc-random" ,ghc-random)
-       ("ghc-split" ,ghc-split)
-       ("ghc-storable-complex" ,ghc-storable-complex)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-vector" ,ghc-vector)
-       ;;("openblas" ,openblas)
-       ("lapack" ,lapack)))
+     (list ghc-random
+           ghc-split
+           ghc-storable-complex
+           ghc-semigroups
+           ghc-vector
+           ;;("openblas" ,openblas)
+           lapack))
     ;; Guix's OpenBLAS is built with the flag "NO_LAPACK=1" which
     ;; disables inclusion of the LAPACK functions.
     ;; (arguments `(#:configure-flags '("--flags=openblas")))
@@ -6052,11 +5714,8 @@ numerical computations based on BLAS and LAPACK.")
     (arguments
      `(#:extra-directories ("gsl")))
     (inputs
-     `(("ghc-hmatrix" ,ghc-hmatrix)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-random" ,ghc-random)
-       ("gsl" ,gsl)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+     (list ghc-hmatrix ghc-vector ghc-random gsl))
+    (native-inputs (list pkg-config))
     (home-page "https://github.com/albertoruiz/hmatrix")
     (synopsis "Haskell GSL binding")
     (description "This Haskell library provides a purely functional
@@ -6079,11 +5738,8 @@ using GSL.")
         (base32 "1cq049sj3q5r06x7i35hqrkf2jc4p4kfi9zv0jmi2vp7w4644i5q"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-vector" ,ghc-vector)
-       ("ghc-storable-complex" ,ghc-storable-complex)
-       ("ghc-hmatrix" ,ghc-hmatrix)
-       ("gsl" ,gsl)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+     (list ghc-vector ghc-storable-complex ghc-hmatrix gsl))
+    (native-inputs (list pkg-config))
     (home-page "http://code.haskell.org/hmatrix-gsl-stats")
     (synopsis "GSL Statistics interface for Haskell")
     (description "This Haskell library provides a purely functional
@@ -6105,8 +5761,7 @@ interface for statistics based on hmatrix and GSL.")
         (base32 "1mywr61kr852sbff26n9x95kswx9l4ycbv6s68qsbkh02xzqq7qz"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hmatrix" ,ghc-hmatrix)
-       ("ghc-hmatrix-gsl" ,ghc-hmatrix-gsl)))
+     (list ghc-hmatrix ghc-hmatrix-gsl))
     (home-page "https://github.com/albertoruiz/hmatrix")
     (synopsis "Haskell interface to GSL special functions")
     (description "This library provides an interface to GSL special
@@ -6145,11 +5800,9 @@ determine the hostname.")
                 "0jnay5j13vpz6i1rkaj3j0d9v8jfpri499xn3l7wd01f81f5ncs4"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-old-locale" ,ghc-old-locale)))
+     (list ghc-old-locale))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty ghc-tasty-quickcheck ghc-tasty-hunit))
     (home-page "https://github.com/vincenthz/hs-hourglass")
     (synopsis "Simple time-related library for Haskell")
     (description
@@ -6163,38 +5816,37 @@ representations of current time.")
 (define-public ghc-hpack
   (package
     (name "ghc-hpack")
-    (version "0.31.2")
+    (version "0.34.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/hpack/"
                            "hpack-" version ".tar.gz"))
-       (patches (search-patches "ghc-hpack-fix-tests.patch"))
        (sha256
         (base32
-         "1l2d6185lawwhsj70swxkvcacm0hvcn9qsrlx4ph4gs6k578603g"))))
-    (build-system haskell-build-system)
-    (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-bifunctors" ,ghc-bifunctors)
-       ("ghc-cryptonite" ,ghc-cryptonite)
-       ("ghc-glob" ,ghc-glob)
-       ("ghc-http-client" ,ghc-http-client)
-       ("ghc-http-client-tls" ,ghc-http-client-tls)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-infer-license" ,ghc-infer-license)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-yaml" ,ghc-yaml)))
-    (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-interpolate" ,ghc-interpolate)
-       ("ghc-mockery" ,ghc-mockery)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-temporary" ,ghc-temporary)
-       ("hspec-discover" ,hspec-discover)))
+         "0gmm6jgi1sgyilphww6apq1x04grqznm7xhyb7g1rj5j7my40ws2"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-aeson
+           ghc-bifunctors
+           ghc-cryptonite
+           ghc-glob
+           ghc-http-client
+           ghc-http-client-tls
+           ghc-http-types
+           ghc-infer-license
+           ghc-scientific
+           ghc-unordered-containers
+           ghc-vector
+           ghc-yaml))
+    (native-inputs
+     (list ghc-hspec
+           ghc-hunit
+           ghc-interpolate
+           ghc-mockery
+           ghc-quickcheck
+           ghc-temporary
+           hspec-discover))
     (home-page "https://github.com/sol/hpack")
     (synopsis "Tools for an alternative Haskell package format")
     (description
@@ -6209,7 +5861,7 @@ are described in a file named @code{package.yaml}.  Both @code{cabal2nix} and
 (define-public ghc-hspec-megaparsec
   (package
     (name "ghc-hspec-megaparsec")
-    (version "2.0.1")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
@@ -6220,13 +5872,12 @@ are described in a file named @code{package.yaml}.  Both @code{cabal2nix} and
              ".tar.gz"))
        (sha256
         (base32
-         "0w8nn2rh01lkiwsiyqh3gviklhfmy0245rakj94dmliyljw8skfg"))))
+         "0hyf06gzzqd6sqd76crwxycwgx804sd39z7i0c2vmv1qgsxv82gn"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hspec-expectations" ,ghc-hspec-expectations)
-       ("ghc-megaparsec" ,ghc-megaparsec)))
+     (list ghc-hspec-expectations ghc-megaparsec))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)))
+     (list ghc-hspec))
     (home-page "https://github.com/mrkkrp/hspec-megaparsec")
     (synopsis "Utility functions for testing Megaparsec parsers with Hspec")
     (description
@@ -6237,7 +5888,7 @@ with Hspec.")
 (define-public ghc-hs-bibutils
   (package
     (name "ghc-hs-bibutils")
-    (version "6.7.0.0")
+    (version "6.10.0.0")
     (source
      (origin
        (method url-fetch)
@@ -6246,9 +5897,9 @@ with Hspec.")
              version ".tar.gz"))
        (sha256
         (base32
-         "1qfyssl76lm4g09yxr3y10kmf8cnzls46g5h0ijk0wpk9wlhbln5"))))
+         "1wnpy1v5rbii2iwlcc9psnww8pkirv9zl21s64cmbi6q7dv15g3n"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-syb" ,ghc-syb)))
+    (inputs (list ghc-syb))
     (home-page "https://hackage.haskell.org/package/hs-bibutils")
     (synopsis "Haskell bindings to bibutils")
     (description
@@ -6260,7 +5911,7 @@ MODS-format XML intermediate.")
 (define-public ghc-hslogger
   (package
     (name "ghc-hslogger")
-    (version "1.2.12")
+    (version "1.3.1.0")
     (source
      (origin
        (method url-fetch)
@@ -6268,13 +5919,15 @@ MODS-format XML intermediate.")
                            "hslogger-" version "/" "hslogger-"
                            version ".tar.gz"))
        (sha256 (base32
-                "0ykcsk7wqygvrg60r5kpl6xfinr706al8pfyk5wj67wjs24lqypr"))))
+                "0nyar9xcblx5jwks85y8f4jfy9k1h4ss6rvj4mdbiidrq3v688vz"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("3" "04mda3bwr2a00f5nbkqc84d46lmqfsk3gibzg3amdh74ngb451xq")))
     (inputs
-     `(("ghc-network" ,ghc-network)
-       ("ghc-old-locale" ,ghc-old-locale)))
+     (list ghc-network ghc-old-locale))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)))
+     (list ghc-hunit ghc-network-bsd))
     (home-page "https://software.complete.org/hslogger")
     (synopsis "Logging framework for Haskell, similar to Python's logging module")
     (description "Hslogger lets each log message have a priority and source be
@@ -6286,29 +5939,28 @@ handler built in.")
 (define-public ghc-hslua
   (package
     (name "ghc-hslua")
-    (version "1.0.3.2")
+    (version "1.3.0.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "hslua/hslua-" version ".tar.gz"))
               (sha256
                (base32
-                "183bgl5jcx5y2r94lviqfw0a5w9089nxjd1z40k8vx9y2h60pm6j"))))
+                "0p39xm0mmxzs5x6aim11qkb7npn0d9h7li2kwfhry0dijd1vm18i"))))
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags '("-fsystem-lua")
        #:extra-directories ("lua")))
     (inputs
-     `(("lua" ,lua)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-fail" ,ghc-fail)))
+     (list lua ghc-base-compat))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
+     (list ghc-tasty
+           ghc-tasty-hunit
+           ghc-tasty-quickcheck
+           ghc-quickcheck
+           ghc-quickcheck-instances
+           ghc-fail
+           ghc-semigroups))
     (home-page "https://hackage.haskell.org/package/hslua")
     (synopsis "Lua language interpreter embedding in Haskell")
     (description
@@ -6319,7 +5971,7 @@ described in @url{https://www.lua.org/}.")
 (define-public ghc-hslua-module-system
   (package
     (name "ghc-hslua-module-system")
-    (version "0.2.1")
+    (version "0.2.2.1")
     (source
      (origin
        (method url-fetch)
@@ -6328,15 +5980,12 @@ described in @url{https://www.lua.org/}.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1m7wz3g5c34pyizqw5mllzhsy2vziddhlbhjfwdvd7nhd3p4v3hh"))))
+         "0hk2splyasbplnggknjhlb423axc5b32xq8aq8zal4vvwlqhzvf1"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-hslua" ,ghc-hslua)
-       ("ghc-temporary" ,ghc-temporary)))
+     (list ghc-hslua ghc-temporary))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty ghc-tasty-lua ghc-tasty-hunit))
     (home-page "https://github.com/hslua/hslua-module-system")
     (synopsis "Lua module wrapper around Haskell's System module")
     (description "This library provides access to system information and
@@ -6349,7 +5998,7 @@ already been loaded before the loader can be added.")
 (define-public ghc-hslua-module-text
   (package
     (name "ghc-hslua-module-text")
-    (version "0.2.1")
+    (version "0.3.0.1")
     (source
      (origin
        (method url-fetch)
@@ -6358,13 +6007,12 @@ already been loaded before the loader can be added.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1ikdwvvxhbd5wmfr85dzs2ccamh9rbbpgy899z7s1vlv5q1dj0hk"))))
+         "1vmd15n905i2pcsx748hz3h9kv5nnv74y663rj57q8mp0b40cbfl"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hslua" ,ghc-hslua)))
+     (list ghc-hslua))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty ghc-tasty-lua ghc-tasty-hunit))
     (home-page "https://github.com/hslua/hslua-module-text")
     (synopsis "Lua module for text")
     (description
@@ -6376,7 +6024,7 @@ for Haskell.  The functions provided by this module are @code{upper},
 (define-public ghc-hsyaml
   (package
     (name "ghc-hsyaml")
-    (version "0.1.2.0")
+    (version "0.2.1.0")
     (source
      (origin
        (method url-fetch)
@@ -6384,11 +6032,17 @@ for Haskell.  The functions provided by this module are @code{upper},
                            "HsYAML/HsYAML-" version ".tar.gz"))
        (sha256
         (base32
-         "1pajfhj16559v64ixm8j7bvxdqmxg6c3c0z3wz7in8ckswgzfp54"))))
+         "10qzhsg789h37q22hm9p27dx4rhbykcbxp7p3pvkws8fr7ajgxv0"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:cabal-revision
-       ("1" "0j6qmmcz5yqh89hs2cq453maix50q61vl2h0ahj5lg02bygn42cf")))
+     `(#:tests? #f ; TODO: Loops.
+       #:cabal-revision
+       ("2" "0f7867jfzlmlqnkv3fjrzjvvfzjlvhbm10kmg7n0qk69ic8grkbc")))
+;    (native-inputs
+;     `(("ghc-hsyaml" ,ghc-hsyaml)
+;       ("ghc-quickcheck" ,ghc-quickcheck)
+;       ("ghc-tasty" ,ghc-tasty)
+;       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
     (home-page "https://github.com/haskell-hvr/HsYAML")
     (synopsis "Pure Haskell YAML 1.2 parser")
     (description "This library provides a
@@ -6421,7 +6075,7 @@ for user-defined custom schemas).
 (define-public ghc-http-api-data
   (package
     (name "ghc-http-api-data")
-    (version "0.4.1")
+    (version "0.4.2")
     (source
      (origin
        (method url-fetch)
@@ -6430,25 +6084,25 @@ for user-defined custom schemas).
                            "http-api-data-" version ".tar.gz"))
        (sha256
         (base32
-         "1ps4bvln43gz72dr9mc3c9n1rn38c4rz6m49vxzz9nz6jz1978rv"))))
-    (build-system haskell-build-system)
-    (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
-              ("ghc-attoparsec-iso8601" ,ghc-attoparsec-iso8601)
-              ("ghc-cookie" ,ghc-cookie)
-              ("ghc-hashable" ,ghc-hashable)
-              ("ghc-http-types" ,ghc-http-types)
-              ("ghc-time-compat" ,ghc-time-compat)
-              ("ghc-unordered-containers" ,ghc-unordered-containers)
-              ("ghc-uuid-types" ,ghc-uuid-types)))
-    (native-inputs
-     `(("cabal-doctest" ,cabal-doctest)
-       ("ghc-nats" ,ghc-nats)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
-       ("ghc-doctest" ,ghc-doctest)
-       ("hspec-discover" ,hspec-discover)))
+         "0xzfvxxh33ivlnrnzmm19cni3jgb5ph18n9hykkw3d6l3rhwzcnl"))))
+    (build-system haskell-build-system)
+    (inputs (list ghc-attoparsec
+                  ghc-attoparsec-iso8601
+                  ghc-cookie
+                  ghc-hashable
+                  ghc-http-types
+                  ghc-time-compat
+                  ghc-unordered-containers
+                  ghc-uuid-types))
+    (native-inputs
+     (list cabal-doctest
+           ghc-nats
+           ghc-hunit
+           ghc-hspec
+           ghc-quickcheck
+           ghc-quickcheck-instances
+           ghc-doctest
+           hspec-discover))
     (home-page "https://github.com/fizruk/http-api-data")
     (synopsis "Convert to/from HTTP API data like URL pieces, headers and
 query parameters")
@@ -6512,10 +6166,9 @@ monads with anaphoric variants on @code{if} and @code{when} and a C-like
     ;; This package needs an older version of tasty.
     (arguments '(#:tests? #f))
     (inputs
-     `(("ghc-concatenative" ,ghc-concatenative)))
+     (list ghc-concatenative))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty ghc-tasty-hunit))
     (home-page "https://github.com/jaspervdj/indents")
     (synopsis "Indentation sensitive parser-combinators for parsec")
     (description
@@ -6538,10 +6191,9 @@ lines continued at an indented level below.")
          "0wlfm6bf55kfvm74xar9lmjg5v1103rs9m3grw1rq5bmcmhzxrhj"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-text-metrics" ,ghc-text-metrics)))
+     (list ghc-text-metrics))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec hspec-discover))
     (home-page "https://hackage.haskell.org/package/infer-license")
     (synopsis "Infer software license from a given license file")
     (description "This library provides tools to infer a software
@@ -6560,10 +6212,9 @@ license from a given license file.")
        (sha256
         (base32 "0mvwii8jbh2ll54qb9dij5m66c6324s2y4vrwz1qr4wz40m3qa8l"))))
     (build-system haskell-build-system)
-    (native-inputs `(("ghc-hspec" ,ghc-hspec)))
+    (native-inputs (list ghc-hspec))
     (inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)))
+     (list ghc-attoparsec ghc-unordered-containers))
     (home-page "https://github.com/chrisdone/ini")
     (synopsis
      "Haskell library to easily handle configuration files in the INI format")
@@ -6575,7 +6226,7 @@ read and write configuration files in the simple INI format.")
 (define-public ghc-inline-c
   (package
     (name "ghc-inline-c")
-    (version "0.7.0.1")
+    (version "0.9.1.5")
     (source
      (origin
        (method url-fetch)
@@ -6583,20 +6234,14 @@ read and write configuration files in the simple INI format.")
                            "inline-c-" version ".tar.gz"))
        (sha256
         (base32
-         "19scbviwiv1fbsdcjji3dscjg7w0xa8r97xwkqqrwm7zhvrg5wns"))))
+         "0a0m3bhh910c5g46cwkxgflsgw5ab7lzymwll9hijyvwgnsw3h7i"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
-       ("ghc-cryptohash" ,ghc-cryptohash)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-parsers" ,ghc-parsers)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)))
-    (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)
-       ("ghc-regex-posix" ,ghc-regex-posix)))
+     (list ghc-ansi-wl-pprint ghc-hashable ghc-parsers
+           ghc-unordered-containers ghc-vector))
+    (native-inputs
+     (list ghc-quickcheck ghc-hspec ghc-raw-strings-qq ghc-regex-posix
+           ghc-split))
     (home-page "https://hackage.haskell.org/package/inline-c")
     (synopsis "Write Haskell source files including C code inline")
     (description
@@ -6609,7 +6254,7 @@ minimal overhead.  No FFI required.")
 (define-public ghc-inline-c-cpp
   (package
     (name "ghc-inline-c-cpp")
-    (version "0.3.0.3")
+    (version "0.4.0.3")
     (source
      (origin
        (method url-fetch)
@@ -6617,13 +6262,12 @@ minimal overhead.  No FFI required.")
                            "inline-c-cpp-" version ".tar.gz"))
        (sha256
         (base32
-         "1sxwx9dh60qfpa72dymj015zwd6prhb70x5mkabqzi7nhg3aakln"))))
+         "0bqrhyic3cw1pqg7knsmkqx5swpr4kvf9bmz0mhmqbl6brmv5il0"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-inline-c" ,ghc-inline-c)
-       ("ghc-safe-exceptions" ,ghc-safe-exceptions)))
+     (list ghc-inline-c ghc-safe-exceptions))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)))
+     (list ghc-hspec))
     (home-page "https://hackage.haskell.org/package/inline-c-cpp")
     (synopsis "Lets you embed C++ code into Haskell")
     (description
@@ -6634,7 +6278,7 @@ minimal overhead.  No FFI required.")
 (define-public ghc-integer-logarithms
   (package
     (name "ghc-integer-logarithms")
-    (version "1.0.3")
+    (version "1.0.3.1")
     (source
      (origin
        (method url-fetch)
@@ -6643,23 +6287,16 @@ minimal overhead.  No FFI required.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "05pc5hws66csvcvfswlwcr2fplwn1lbssvwifjxkbbwqhq0n5qjs"))))
+         "0zzapclfabc76g8jzsbsqwdllx2zn0gp4raq076ib6v0mfgry2lv"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'update-constraints
-           (lambda _
-             (substitute* "integer-logarithms.cabal"
-               (("tasty >= 0\\.10 && < 1\\.1")
-                "tasty >= 0.10 && < 1.2")))))))
-    (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-smallcheck" ,ghc-smallcheck)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)))
+    (arguments `(#:tests? #f)) ; TODO: Needs tasty<1.4
+    (native-inputs
+     (list ghc-quickcheck
+           ghc-smallcheck
+           ghc-tasty
+           ghc-tasty-hunit
+           ghc-tasty-quickcheck
+           ghc-tasty-smallcheck))
     (home-page "https://github.com/Bodigrim/integer-logarithms")
     (synopsis "Integer logarithms")
     (description
@@ -6682,7 +6319,7 @@ in migrated modules.")
 (define-public ghc-interpolate
   (package
     (name "ghc-interpolate")
-    (version "0.2.0")
+    (version "0.2.1")
     (source
      (origin
        (method url-fetch)
@@ -6690,16 +6327,13 @@ in migrated modules.")
                            "interpolate-" version ".tar.gz"))
        (sha256
         (base32
-         "1gkaj98yz363v38fv78sqby236mp8yqwqcilx7kr2b9z0w3204bf"))))
+         "03jrkj9c62w0c2awym8mhpsgpd0jffl50cqwfrm7bbdfhd8dsxi7"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-haskell-src-meta" ,ghc-haskell-src-meta)))
+     (list ghc-haskell-src-meta))
     (native-inputs
-     `(("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-base-compat ghc-hspec ghc-quickcheck
+           ghc-quickcheck-instances hspec-discover))
     (home-page "https://github.com/sol/interpolate")
     (synopsis "String interpolation library")
     (description "This package provides a string interpolation library for
@@ -6709,7 +6343,7 @@ Haskell.")
 (define-public ghc-intervalmap
   (package
     (name "ghc-intervalmap")
-    (version "0.6.1.1")
+    (version "0.6.1.2")
     (source
      (origin
        (method url-fetch)
@@ -6717,10 +6351,10 @@ Haskell.")
                            "IntervalMap-" version ".tar.gz"))
        (sha256
         (base32
-         "0vdlvxvhf7vjyv0mfn6jaj2i2gclqv8419ck32s2jxfcmki5m5g8"))))
+         "03smzhwk1zf5na544b0azp49j4gvafqsih9ggwf6yng38yhixwld"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-quickcheck))
     (home-page "http://www.chr-breitkopf.de/comp/IntervalMap")
     (synopsis "Containers for intervals, with efficient search")
     (description
@@ -6732,7 +6366,7 @@ example code on the home page for a quick introduction.")
 (define-public ghc-intervals
   (package
     (name "ghc-intervals")
-    (version "0.8.1")
+    (version "0.9.2")
     (source
      (origin
        (method url-fetch)
@@ -6740,28 +6374,22 @@ example code on the home page for a quick introduction.")
                            "intervals/intervals-" version ".tar.gz"))
        (sha256
         (base32
-         "00vyxf3ba9d7aas3npfapr53w71fslgh69fczjb25axr66fvzqww"))))
+         "1qibvgys8lw61x9na3iy3dcglyj9qyhcbfc00glnagl7cbk1shlv"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-distributive" ,ghc-distributive)))
+     (list ghc-distributive))
     (native-inputs
-     `(("cabal-doctest" ,cabal-doctest)
-       ("ghc-doctest" ,ghc-doctest)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
-    (arguments
-     `(#:cabal-revision
-       ("4" "1qx3q0v13l1zaln9zdk8chxpxhshbz5x0vqm0qda7d1kpv7h6a7r")))
+     (list ghc-quickcheck))
     (home-page "https://github.com/ekmett/intervals")
     (synopsis "Interval arithmetic")
-    (description "This library provides
-@code{Numeric.Interval.Interval}, which represets a closed, convex set
-of floating point values.")
+    (description "This library provides @code{Numeric.Interval.Interval},
+which represets a closed, convex set of floating point values.")
     (license license:bsd-3)))
 
 (define-public ghc-invariant
   (package
     (name "ghc-invariant")
-    (version "0.5.3")
+    (version "0.5.4")
     (source
      (origin
        (method url-fetch)
@@ -6770,23 +6398,21 @@ of floating point values.")
              version ".tar.gz"))
        (sha256
         (base32
-         "03245nhcqxx6b0yw81fzqaqd7cgllmx8awzhvs2xv7ys73pmsgnp"))))
+         "1jlp0gbfjsx7k08275djh8m3v4rpg8llw5gdkg9s9qfx0lc0mymr"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-bifunctors" ,ghc-bifunctors)
-       ("ghc-comonad" ,ghc-comonad)
-       ("ghc-contravariant" ,ghc-contravariant)
-       ("ghc-profunctors" ,ghc-profunctors)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-statevar" ,ghc-statevar)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-th-abstraction" ,ghc-th-abstraction)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)))
+     (list ghc-bifunctors
+           ghc-comonad
+           ghc-contravariant
+           ghc-profunctors
+           ghc-semigroups
+           ghc-statevar
+           ghc-tagged
+           ghc-th-abstraction
+           ghc-transformers-compat
+           ghc-unordered-containers))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec ghc-quickcheck hspec-discover))
     (home-page "https://github.com/nfrisby/invariant-functors")
     (synopsis "Haskell98 invariant functors")
     (description "Haskell98 invariant functors (also known as exponential
@@ -6797,7 +6423,7 @@ functors).  For more information, see Edward Kmett's article
 (define-public ghc-io-streams
   (package
     (name "ghc-io-streams")
-    (version "1.5.1.0")
+    (version "1.5.2.1")
     (source
      (origin
        (method url-fetch)
@@ -6805,22 +6431,22 @@ functors).  For more information, see Edward Kmett's article
                            "io-streams/io-streams-" version ".tar.gz"))
        (sha256
         (base32
-         "1c7byr943x41nxpc3bnz152fvfbmakafq2958wyf9qiyp2pz18la"))))
+         "1y3sqmxrwiksz7pl4hf3vzvg8p8n00qnv98nj5xbpcadlh468rny"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-bytestring-builder" ,ghc-bytestring-builder)
-       ("ghc-network" ,ghc-network)
-       ("ghc-primitive" ,ghc-primitive)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-zlib-bindings" ,ghc-zlib-bindings)))
+     (list ghc-attoparsec
+           ghc-bytestring-builder
+           ghc-network
+           ghc-primitive
+           ghc-vector
+           ghc-zlib-bindings))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-       ("ghc-zlib" ,ghc-zlib)))
+     (list ghc-hunit
+           ghc-quickcheck
+           ghc-test-framework
+           ghc-test-framework-hunit
+           ghc-test-framework-quickcheck2
+           ghc-zlib))
     (home-page "https://hackage.haskell.org/package/io-streams")
     (synopsis "Simple and composable stream I/O")
     (description "This library contains simple and easy-to-use
@@ -6841,14 +6467,13 @@ primitives for I/O using streams.")
         (base32
          "1dcn5hd4fiwyq7m01r6fi93vfvygca5s6mz87c78m0zyj29clkmp"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("3" "02k9halblgnynlm781ahc81yxla8z7cck1gikm8555v78rf5hv7x")))
     (inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-io-streams" ,ghc-io-streams)
-       ("ghc-network" ,ghc-network)))
+     (list ghc-attoparsec ghc-io-streams ghc-network))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+     (list ghc-hunit ghc-test-framework ghc-test-framework-hunit))
     (home-page "http://snapframework.com/")
     (synopsis "HAProxy protocol 1.5 support for io-streams")
     (description "HAProxy protocol version 1.5 support
@@ -6861,7 +6486,7 @@ through a forwarding proxy that is configured to speak this protocol.")
 (define-public ghc-iproute
   (package
     (name "ghc-iproute")
-    (version "1.7.7")
+    (version "1.7.11")
     (source
      (origin
        (method url-fetch)
@@ -6871,15 +6496,12 @@ through a forwarding proxy that is configured to speak this protocol.")
              ".tar.gz"))
        (sha256
         (base32
-         "0gab5930nvzrpvisx3x43ydnp2rd4fbmy9cq1zpgqy1adx5gx8z6"))))
+         "12wa59b1zgjqp8dmygq2x44ml0cb89fhn1k0zkj4aqz7rhkwsp90"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f)) ; FIXME: Tests cannot find System.ByteOrder,
                                ; exported by ghc-byteorder.  Doctest issue.
     (inputs
-     `(("ghc-appar" ,ghc-appar)
-       ("ghc-byteorder" ,ghc-byteorder)
-       ("ghc-network" ,ghc-network)
-       ("ghc-safe" ,ghc-safe)))
+     (list ghc-appar ghc-byteorder ghc-network ghc-safe))
     (home-page "https://www.mew.org/~kazu/proj/iproute/")
     (synopsis "IP routing table")
     (description "IP Routing Table is a tree of IP ranges to search one of
@@ -6890,7 +6512,7 @@ removed.  Both IPv4 and IPv6 are supported.")
 (define-public ghc-ipynb
   (package
     (name "ghc-ipynb")
-    (version "0.1")
+    (version "0.1.0.2")
     (source
      (origin
        (method url-fetch)
@@ -6898,20 +6520,13 @@ removed.  Both IPv4 and IPv6 are supported.")
                            "ipynb/ipynb-" version ".tar.gz"))
        (sha256
         (base32
-         "0daadhzil4q573mqb0rpvjzm0vpkzgzqcimw480qpvlh6rhppwj5"))))
+         "0qky4l5aaiq7ypwbxh0mr7s572290fi596f18dg68qpyzc49a9kx"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-semigroups" ,ghc-semigroups)))
+     (list ghc-unordered-containers ghc-base64-bytestring ghc-aeson
+           ghc-semigroups))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-aeson-diff" ,ghc-aeson-diff)
-       ("ghc-microlens-aeson" ,ghc-microlens-aeson)
-       ("ghc-microlens" ,ghc-microlens)
-       ("ghc-vector" ,ghc-vector)))
+     (list ghc-tasty ghc-tasty-hunit ghc-microlens-aeson ghc-microlens))
     (home-page "https://hackage.haskell.org/package/ipynb")
     (synopsis "Data structure for working with Jupyter notebooks")
     (description "This library defines a data structure for representing
@@ -6934,7 +6549,7 @@ instances for conversion to and from JSON .ipynb files.")
     (arguments
      `(#:extra-directories ("wireless-tools")))
     (inputs
-     `(("wireless-tools" ,wireless-tools)))
+     (list wireless-tools))
     (home-page "https://github.com/jaor/iwlib")
     (synopsis "Haskell binding to the iw wireless networking library")
     (description
@@ -6946,7 +6561,7 @@ supported systems.")
 (define-public ghc-json
   (package
     (name "ghc-json")
-    (version "0.9.3")
+    (version "0.10")
     (source
      (origin
        (method url-fetch)
@@ -6954,21 +6569,24 @@ supported systems.")
                            "json-" version ".tar.gz"))
        (sha256
         (base32
-         "1z8s3mfg76p2flqqd2wqsi96l5bg8k8w8m58zlv81pw3k7h1vbwb"))))
+         "1fjnd2r4gl2hfqx158db3cn3rsyin4ch7rf9scb2hcy90cy6l10c"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("1" "16fp0y95gaibjravzj1hxdkng1cr8zqjqzd14m48kf4jrq3npz6r")))
     (inputs
-     `(("ghc-syb" ,ghc-syb)))
+     (list ghc-syb))
     (home-page "https://hackage.haskell.org/package/json")
     (synopsis "Serializes Haskell data to and from JSON")
     (description "This package provides a parser and pretty printer for
-converting between Haskell values and JSON.
-JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
+converting between Haskell values and JSON.  @acronym{JavaScript Object
+Notation, JSON} is a lightweight data-interchange format.")
     (license license:bsd-3)))
 
 (define-public ghc-juicypixels
   (package
     (name "ghc-juicypixels")
-    (version "3.3.4")
+    (version "3.3.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -6976,14 +6594,11 @@ JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0qacrnz2qcykj3f6c4k2p8qd31pa2slpv3ykfblgizrfh3401q6x"))))
+                "1f8giivsqxma19ax78dr7j4gir12iyfqn2mlsd27zzl8dn7dy6w1"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
     (inputs
-     `(("ghc-zlib" ,ghc-zlib)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-primitive" ,ghc-primitive)
-       ("ghc-mmap" ,ghc-mmap)))
+     (list ghc-zlib ghc-vector ghc-primitive))
     (home-page "https://github.com/Twinside/Juicy.Pixels")
     (synopsis "Picture loading and serialization library")
     (description
@@ -6994,7 +6609,7 @@ TIFF and GIF formats.")
 (define-public ghc-kan-extensions
   (package
     (name "ghc-kan-extensions")
-    (version "5.2")
+    (version "5.2.3")
     (source
      (origin
        (method url-fetch)
@@ -7004,18 +6619,18 @@ TIFF and GIF formats.")
              ".tar.gz"))
        (sha256
         (base32
-         "1lyvyiwwh962j2nnnsqzlvp5zq6z8p3spvhmji99cjvldxc7wwkb"))))
+         "1rkjxwc2k2425d2shdra6wzd4f4dpj76hxmq8mish4f0lz9gxxml"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-adjunctions" ,ghc-adjunctions)
-       ("ghc-comonad" ,ghc-comonad)
-       ("ghc-contravariant" ,ghc-contravariant)
-       ("ghc-distributive" ,ghc-distributive)
-       ("ghc-free" ,ghc-free)
-       ("ghc-invariant" ,ghc-invariant)
-       ("ghc-semigroupoids" ,ghc-semigroupoids)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)))
+     (list ghc-adjunctions
+           ghc-comonad
+           ghc-contravariant
+           ghc-distributive
+           ghc-free
+           ghc-invariant
+           ghc-semigroupoids
+           ghc-tagged
+           ghc-transformers-compat))
     (home-page "https://github.com/ekmett/kan-extensions/")
     (synopsis "Kan extensions library")
     (description "This library provides Kan extensions, Kan lifts, various
@@ -7035,10 +6650,9 @@ forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
         (base32
          "0bi02jdirkys8v7flf39vrpla2a74z1z0sdhy9lb9v7cmcc6rmpk"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-syb" ,ghc-syb)))
+    (inputs (list ghc-syb))
     (native-inputs
-     `(("ghc-happy" ,ghc-happy)
-       ("ghc-alex" ,ghc-alex)))
+     (list ghc-happy ghc-alex))
     (home-page "https://visq.github.io/language-c/")
     (synopsis "Analysis and generation of C code")
     (description
@@ -7060,7 +6674,7 @@ and a large set of GNU extensions.")
         (base32
          "0hdg67ainlqpjjghg3qin6fg4p783m0zmjqh4rd5gyizwiplxkp1"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-prettyclass" ,ghc-prettyclass)))
+    (inputs (list ghc-prettyclass))
     (arguments
      `(#:tests? #f
        #:cabal-revision
@@ -7081,12 +6695,23 @@ representation, parsing, and pretty-printing of GLSL 1.50 code.")
        (uri (string-append "https://hackage.haskell.org/package/"
                            "language-haskell-extract-" version "/"
                            "language-haskell-extract-" version ".tar.gz"))
+       (patches (search-patches "ghc-language-haskell-extract-ghc-8.10.patch"))
        (sha256
         (base32
          "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("1" "1chx4g8ngb1hpyh3r9rbl8rkjkm67klms4wmw3p1g2llg47vvqip")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'update-constraints
+           (lambda _
+             (substitute* "language-haskell-extract.cabal"
+               (("(template-haskell)\\s+[^,]+" all dep)
+                dep)))))))
     (inputs
-     `(("ghc-regex-posix" ,ghc-regex-posix)))
+     (list ghc-regex-posix ghc-template-haskell))
     (home-page "https://github.com/finnsson/template-helper")
     (synopsis "Haskell module to automatically extract functions from
 the local code")
@@ -7102,7 +6727,7 @@ with @code{wc} (for a web service).")
 (define-public ghc-lens
   (package
     (name "ghc-lens")
-    (version "4.17.1")
+    (version "4.19.2")
     (source
      (origin
        (method url-fetch)
@@ -7110,43 +6735,46 @@ with @code{wc} (for a web service).")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1gpkc53l2cggnfrgg5k4ih82rycjbdvpj9pnbi5cq8ms0dbvs4a7"))))
+         "0fy2vr5r11cc6ana8m2swqgs3zals4kims55vd6119bi76p5iy2j"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:tests? #f ; TODO: Needs vector<0.12.2
+       #:cabal-revision
+       ("6" "1k08my9rh1il3ibiyhljxkgndfgk143pn5a6nyzjnckw3la09myl")))
     (outputs '("out" "static" "doc"))
     (inputs
-     `(("ghc-base-orphans" ,ghc-base-orphans)
-       ("ghc-bifunctors" ,ghc-bifunctors)
-       ("ghc-distributive" ,ghc-distributive)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-free" ,ghc-free)
-       ("ghc-kan-extensions" ,ghc-kan-extensions)
-       ("ghc-parallel" ,ghc-parallel)
-       ("ghc-reflection" ,ghc-reflection)
-       ("ghc-semigroupoids" ,ghc-semigroupoids)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-call-stack" ,ghc-call-stack)
-       ("ghc-comonad" ,ghc-comonad)
-       ("ghc-contravariant" ,ghc-contravariant)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-profunctors" ,ghc-profunctors)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-void" ,ghc-void)
-       ("ghc-generic-deriving" ,ghc-generic-deriving)
-       ("ghc-nats" ,ghc-nats)
-       ("ghc-simple-reflect" ,ghc-simple-reflect)
-       ("hlint" ,hlint)))
-    (native-inputs
-     `(("cabal-doctest" ,cabal-doctest)
-       ("ghc-doctest" ,ghc-doctest)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-th" ,ghc-test-framework-th)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-base-orphans
+           ghc-bifunctors
+           ghc-distributive
+           ghc-exceptions
+           ghc-free
+           ghc-kan-extensions
+           ghc-parallel
+           ghc-reflection
+           ghc-semigroupoids
+           ghc-vector
+           ghc-call-stack
+           ghc-comonad
+           ghc-contravariant
+           ghc-hashable
+           ghc-profunctors
+           ghc-semigroups
+           ghc-tagged
+           ghc-transformers-compat
+           ghc-unordered-containers
+           ghc-void
+           ghc-generic-deriving
+           ghc-nats
+           ghc-simple-reflect
+           hlint))
+    (native-inputs
+     (list cabal-doctest
+           ghc-doctest
+           ghc-hunit
+           ghc-test-framework
+           ghc-test-framework-hunit
+           ghc-test-framework-quickcheck2
+           ghc-quickcheck))
     (home-page "https://github.com/ekmett/lens/")
     (synopsis "Lenses, Folds and Traversals")
     (description "This library provides @code{Control.Lens}.  The combinators
@@ -7158,17 +6786,17 @@ indexed variants.")
 (define-public ghc-lens-family-core
   (package
     (name "ghc-lens-family-core")
-    (version "1.2.3")
+    (version "2.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/lens-family-core/lens-family-core-"
+             "https://hackage.haskell.org/package/lens-family-core/lens-family-core-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "009rf10pj1cb50v44cc1pq7qvfrmkkk9dikahs9qmvbvgl3mykwi"))))
+         "0ni6s873hy2h3b316835ssmlyr05yinb3a8jq5b01p9ppp9zrd0r"))))
     (build-system haskell-build-system)
     (home-page
      "http://hackage.haskell.org/package/lens-family-core")
@@ -7204,8 +6832,8 @@ lenses and traversals for those who require Haskell 98.")
         (base32
          "0g7jnhng3j7z5517aaqga0144aamibsbpgm3yynwyfzkq1kp0f28"))))
     (build-system haskell-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("libffi" ,libffi)))
+    (native-inputs (list pkg-config))
+    (inputs (list libffi))
     (home-page "https://hackage.haskell.org/package/libffi")
     (synopsis "Haskell binding to libffi")
     (description
@@ -7216,32 +6844,23 @@ to be called from Haskell.")
 (define-public ghc-libmpd
   (package
     (name "ghc-libmpd")
-    (version "0.9.0.10")
+    (version "0.10.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/libmpd/libmpd-"
+             "https://hackage.haskell.org/package/libmpd/libmpd-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "0vy287mn1vk8kvij5i3hc0p02l886cpsq5dds7kl6g520si3abkb"))))
+         "088vlir0n3wps2p5ydgyx51p41nfjcm2v02sszpyjj3c8z7f4qkh"))))
     (build-system haskell-build-system)
-    ;; Tests fail on i686.
-    ;; See https://github.com/vimus/libmpd-haskell/issues/112
-    (arguments `(#:tests? #f))
     (inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-network" ,ghc-network)
-       ("ghc-safe-exceptions" ,ghc-safe-exceptions)
-       ("ghc-utf8-string" ,ghc-utf8-string)))
+     (list ghc-attoparsec ghc-data-default-class ghc-network
+           ghc-safe-exceptions ghc-utf8-string))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-quickcheck ghc-hspec hspec-discover))
     (home-page "https://github.com/vimus/libmpd-haskell")
     (synopsis "Haskell client library for the Music Player Daemon")
     (description "This package provides a pure Haskell client library for the
@@ -7251,7 +6870,7 @@ Music Player Daemon.")
 (define-public ghc-lib-parser
   (package
     (name "ghc-lib-parser")
-    (version "8.8.0.20190424")
+    (version "8.10.7.20210828")
     (source
      (origin
        (method url-fetch)
@@ -7259,12 +6878,11 @@ Music Player Daemon.")
                            "ghc-lib-parser/ghc-lib-parser-" version ".tar.gz"))
        (sha256
         (base32
-         "12gsh994pr13bsybwlravmi21la66dyw74pk74yfw2pnz682wv10"))))
+         "178v4f7q9ndqmlhg2vhlk6ifm3ilajlrz8iw84vggzs7rp0fnlx0"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc")) ; documentation is 39M
     (native-inputs
-     `(("ghc-alex" ,ghc-alex)
-       ("ghc-happy" ,ghc-happy)))
+     (list ghc-alex ghc-happy))
     (home-page "https://github.com/digital-asset/ghc-lib")
     (synopsis "The GHC API, decoupled from GHC versions")
     (description "This library implements the GHC API.  It is like the
@@ -7286,7 +6904,7 @@ compiler versions.")
          "01zvk86kg726lf2vnlr7dxiz7g3xwi5a4ak9gcfbwyhynkzjmsfi"))))
     (build-system haskell-build-system)
     (inputs
-     `(("libxml2" ,libxml2)))
+     (list libxml2))
     (arguments
      `(#:configure-flags
        `(,(string-append "--extra-include-dirs="
@@ -7301,7 +6919,7 @@ compiler versions.")
 (define-public ghc-libyaml
   (package
     (name "ghc-libyaml")
-    (version "0.1.1.0")
+    (version "0.1.2")
     (source
      (origin
        (method url-fetch)
@@ -7309,7 +6927,7 @@ compiler versions.")
                            "libyaml/libyaml-" version ".tar.gz"))
        (sha256
         (base32
-         "0psznm9c3yjsyj9aj8m2svvv9m2v0x90hnwarcx5sbswyi3l00va"))
+         "1dcpbsjg6n305l07isxmavgp01lbv1qggy16acjyxjlz35pxchlg"))
        (modules '((guix build utils)))
        (snippet
         ;; Delete bundled LibYAML.
@@ -7321,9 +6939,7 @@ compiler versions.")
      `(#:configure-flags `("--flags=system-libyaml")
        #:extra-directories ("libyaml+static")))
     (inputs
-     `(("ghc-conduit" ,ghc-conduit)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("libyaml+static" ,libyaml+static)))
+     (list ghc-conduit ghc-resourcet libyaml+static))
     (home-page "https://github.com/snoyberg/yaml#readme")
     (synopsis "Low-level, streaming YAML interface.")
     (description "This package provides a Haskell wrapper over the
@@ -7333,7 +6949,7 @@ LibYAML C library.")
 (define-public ghc-lifted-async
   (package
     (name "ghc-lifted-async")
-    (version "0.10.0.4")
+    (version "0.10.2.1")
     (source
      (origin
        (method url-fetch)
@@ -7342,19 +6958,19 @@ LibYAML C library.")
              version ".tar.gz"))
        (sha256
         (base32
-         "0cwl1d0wjpdk0v1l1qxiqiksmak950c8gx169c1q77cg0z18ijf9"))))
+         "0j4f5471qfxkxy84ri87bcvp30ikh4m30imcggwn8m5v8igp218d"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-async" ,ghc-async)
-       ("ghc-lifted-base" ,ghc-lifted-base)
-       ("ghc-transformers-base" ,ghc-transformers-base)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-constraints" ,ghc-constraints)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-th" ,ghc-tasty-th)))
+     (list ghc-async
+           ghc-lifted-base
+           ghc-transformers-base
+           ghc-monad-control
+           ghc-constraints
+           ghc-hunit
+           ghc-tasty
+           ghc-tasty-expected-failure
+           ghc-tasty-hunit
+           ghc-tasty-th))
     (home-page "https://github.com/maoe/lifted-async")
     (synopsis "Run lifted IO operations asynchronously and wait for their results")
     (description
@@ -7379,10 +6995,8 @@ instance of @code{MonadBase} or @code{MonadBaseControl}.")
     (build-system haskell-build-system)
     (arguments `(#:tests? #f)) ; FIXME: Missing testing libraries.
     (inputs
-     `(("ghc-transformers-base" ,ghc-transformers-base)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-hunit" ,ghc-hunit)))
+     (list ghc-transformers-base ghc-monad-control ghc-transformers-compat
+           ghc-hunit))
     (home-page "https://github.com/basvandijk/lifted-base")
     (synopsis "Lifted IO operations from the base library")
     (description "Lifted-base exports IO operations from the @code{base}
@@ -7395,7 +7009,7 @@ Kaseorg.")
 (define-public ghc-linear
   (package
     (name "ghc-linear")
-    (version "1.20.9")
+    (version "1.21.6")
     (source
      (origin
        (method url-fetch)
@@ -7403,31 +7017,31 @@ Kaseorg.")
                            "linear-" version ".tar.gz"))
        (sha256
         (base32
-         "0h7yqigq593n7wsl7nz6a5f137wznm7y679wsii0ph0zsc4v5af5"))))
-    (build-system haskell-build-system)
-    (inputs
-     `(("ghc-adjunctions" ,ghc-adjunctions)
-       ("ghc-base-orphans" ,ghc-base-orphans)
-       ("ghc-bytes" ,ghc-bytes)
-       ("ghc-cereal" ,ghc-cereal)
-       ("ghc-distributive" ,ghc-distributive)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-lens" ,ghc-lens)
-       ("ghc-reflection" ,ghc-reflection)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-semigroupoids" ,ghc-semigroupoids)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-void" ,ghc-void)))
-    (native-inputs
-     `(("cabal-doctest" ,cabal-doctest)
-       ("ghc-doctest" ,ghc-doctest)
-       ("ghc-simple-reflect" ,ghc-simple-reflect)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-hunit" ,ghc-hunit)))
+         "0ax6prmc7b53w0lz5ddc40wrjj9bm7wldpp57283gx9hdf8qrb35"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-adjunctions
+           ghc-base-orphans
+           ghc-bytes
+           ghc-cereal
+           ghc-distributive
+           ghc-hashable
+           ghc-lens
+           ghc-reflection
+           ghc-semigroups
+           ghc-semigroupoids
+           ghc-tagged
+           ghc-transformers-compat
+           ghc-unordered-containers
+           ghc-vector
+           ghc-void))
+    (native-inputs
+     (list cabal-doctest
+           ghc-doctest
+           ghc-simple-reflect
+           ghc-test-framework
+           ghc-test-framework-hunit
+           ghc-hunit))
     (home-page "https://github.com/ekmett/linear/")
     (synopsis "Linear algebra library for Haskell")
     (description
@@ -7438,7 +7052,7 @@ vector spaces.")
 (define-public ghc-listlike
   (package
     (name "ghc-listlike")
-    (version "4.6.2")
+    (version "4.7.6")
     (source
      (origin
        (method url-fetch)
@@ -7448,16 +7062,16 @@ vector spaces.")
          version ".tar.gz"))
        (sha256
         (base32
-         "0m65x8yaq7q50gznln8mga2wrc8cvjx6gw9rim8s7xqcrx6y5zjh"))))
+         "08jip0q2f9qc95wcqka2lrqpf8r7sswsi5104w73kyrbmfirqnrd"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-vector" ,ghc-vector)
-       ("ghc-dlist" ,ghc-dlist)
-       ("ghc-fmlist" ,ghc-fmlist)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-random" ,ghc-random)
-       ("ghc-utf8-string" ,ghc-utf8-string)))
+     (list ghc-vector
+           ghc-dlist
+           ghc-fmlist
+           ghc-hunit
+           ghc-quickcheck
+           ghc-random
+           ghc-utf8-string))
     (home-page "https://github.com/JohnLato/listlike")
     (synopsis "Generic support for list-like structures")
     (description "The ListLike module provides a common interface to the
@@ -7484,13 +7098,9 @@ can handle infinite lists.")
          "0pxb5ah8r5pzpz2ibqw3g9g1isigb4z7pbzfrwr8kmcjn74ab3kf"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-fail" ,ghc-fail)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)))
+     (list ghc-attoparsec ghc-fail ghc-unordered-containers))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+     (list ghc-tasty ghc-tasty-hunit ghc-tasty-quickcheck))
     (home-page "https://github.com/llvm-hs/llvm-hs/")
     (synopsis "Pure Haskell LLVM functionality (no FFI)")
     (description "llvm-hs-pure is a set of pure Haskell types and functions
@@ -7513,19 +7123,16 @@ llvm-hs-pure does not require LLVM to be available.")
          "0723xgh45h9cyxmmjsvxnsp8bpn1ljy4qgh7a7vqq3sj9d6wzq00"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-llvm-hs-pure" ,ghc-llvm-hs-pure)
-       ("llvm" ,llvm-9)))
+     (list ghc-attoparsec ghc-exceptions ghc-utf8-string ghc-llvm-hs-pure
+           llvm-9))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-temporary" ,ghc-temporary)
-       ("ghc-pretty-show" ,ghc-pretty-show)
-       ("ghc-temporary" ,ghc-temporary)))
+     (list ghc-tasty
+           ghc-tasty-hunit
+           ghc-tasty-quickcheck
+           ghc-quickcheck
+           ghc-temporary
+           ghc-pretty-show
+           ghc-temporary))
     (home-page "https://github.com/llvm-hs/llvm-hs/")
     (synopsis "General purpose LLVM bindings for Haskell")
     (description "llvm-hs is a set of Haskell bindings for LLVM.  Unlike other
@@ -7550,8 +7157,7 @@ into Haskell.")
                 "0d0lwxxgd16is9aw6v3ps4r9prv3dj8xscmm45fvzq3nicjiawcf"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec hspec-discover))
     (home-page "https://hackage.haskell.org/package/logging-facade")
     (synopsis "Simple logging abstraction that allows multiple back-ends")
     (description
@@ -7562,7 +7168,7 @@ back-ends.")
 (define-public ghc-logict
   (package
     (name "ghc-logict")
-    (version "0.7.0.2")
+    (version "0.7.1.0")
     (source
      (origin
        (method url-fetch)
@@ -7572,11 +7178,11 @@ back-ends.")
              ".tar.gz"))
        (sha256
         (base32
-         "1xfgdsxg0lp8m0a2cb83rcxrnnc37asfikay2kydi933anh9ihfc"))))
+         "1d22b7r8lnak5k8ars166cxbk1lv7gf8g0qs604irsx2s474ybi7"))))
     (build-system haskell-build-system)
+    (inputs (list ghc-fail))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-async ghc-tasty ghc-tasty-hunit))
     (home-page "http://code.haskell.org/~dolio/")
     (synopsis "Backtracking logic-programming monad")
     (description "This library provides a continuation-based, backtracking,
@@ -7589,7 +7195,7 @@ online}.")
 (define-public ghc-lucid
   (package
     (name "ghc-lucid")
-    (version "2.9.12")
+    (version "2.9.12.1")
     (source
      (origin
        (method url-fetch)
@@ -7599,17 +7205,13 @@ online}.")
              ".tar.gz"))
        (sha256
         (base32
-         "156wniydd1hlb7rygbm95zln8ky8lai8rn2apkkv0rax9cdw6jrh"))))
+         "0nky4pqxd6828kg3js90ks6r3hxs5x48ibfz37pw2dr7y1nygq21"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-mmorph" ,ghc-mmorph)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)))
+     (list ghc-blaze-builder ghc-hashable ghc-mmorph
+           ghc-unordered-containers))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-bifunctors" ,ghc-bifunctors)))
+     (list ghc-hunit ghc-hspec ghc-bifunctors))
     (arguments
      `(#:cabal-revision
        ("1"
@@ -7644,13 +7246,10 @@ Same combinator can be used for attributes and elements
     (arguments
      '(#:tests? #f ; requires older versions of QuickCheck and tasty.
        #:cabal-revision
-       ("3" "1sify6gnsalyp6dakfzi0mdy5jcz2kcp9jsdsgkmxd40nfzgd44m")))
+       ("6" "1sh2g5wkh0m6646cxnii0k20f0crwdcnprfl9jfg7gxn5875bkip")))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+     (list ghc-hunit ghc-quickcheck ghc-tasty ghc-tasty-hunit
+           ghc-tasty-quickcheck))
     (home-page "https://github.com/hvr/lzma")
     (synopsis "LZMA/XZ compression and decompression")
     (description
@@ -7662,7 +7261,7 @@ monadic incremental interface is provided as well.")
 (define-public ghc-lzma-conduit
   (package
     (name "ghc-lzma-conduit")
-    (version "1.2.1")
+    (version "1.2.2")
     (source
      (origin
        (method url-fetch)
@@ -7670,19 +7269,17 @@ monadic incremental interface is provided as well.")
                            "lzma-conduit-" version ".tar.gz"))
        (sha256
         (base32
-         "0hm72da7xk9l3zxjh274yg444vf405djxqbkf3q3p2qhicmxlmg9"))))
+         "1z6q16hzp2r5a4gdbg9akky5l9bfarzzhzswrgvh0v28ax400whb"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-conduit" ,ghc-conduit)
-       ("ghc-lzma" ,ghc-lzma)
-       ("ghc-resourcet" ,ghc-resourcet)))
+     (list ghc-conduit ghc-lzma ghc-resourcet))
     (native-inputs
-     `(("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-base-compat
+           ghc-test-framework
+           ghc-test-framework-hunit
+           ghc-test-framework-quickcheck2
+           ghc-hunit
+           ghc-quickcheck))
     (home-page "https://github.com/alphaHeavy/lzma-conduit")
     (synopsis "Conduit interface for lzma/xz compression")
     (description
@@ -7715,17 +7312,17 @@ than its name.")
 (define-public ghc-managed
   (package
     (name "ghc-managed")
-    (version "1.0.6")
+    (version "1.0.8")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/managed/managed-"
+             "https://hackage.haskell.org/package/managed/managed-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "1kbrw99yh5x5blykmx2n88mplbbi4ss1ij5j17b7asw6q0ihm9zi"))))
+         "00wzfy9facwgimrilz7bxaigr79w10733h8zfgyhll644p2rnz38"))))
     (build-system haskell-build-system)
     (home-page "http://hackage.haskell.org/package/managed")
     (synopsis "Monad for managed values")
@@ -7751,24 +7348,24 @@ orphan instances
 (define-public ghc-markdown-unlit
   (package
     (name "ghc-markdown-unlit")
-    (version "0.5.0")
+    (version "0.5.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "mirror://hackage/package/markdown-unlit/"
+                    "https://hackage.haskell.org/package/markdown-unlit/"
                     "markdown-unlit-" version ".tar.gz"))
               (sha256
                (base32
-                "1gy79vr85vcp13rdjh0hz7zv6daqqffww4j0cqn2lpjjh9xhsbg7"))))
+                "0njzn56m8z6lm70xyixbylbnpjz1gk7x8vdsdvi3qld9m66gc3n7"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-silently" ,ghc-silently)
-       ("ghc-stringbuilder" ,ghc-stringbuilder)
-       ("ghc-temporary" ,ghc-temporary)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-base-compat
+           ghc-hspec
+           ghc-quickcheck
+           ghc-silently
+           ghc-stringbuilder
+           ghc-temporary
+           hspec-discover))
     (home-page "https://github.com/sol/markdown-unlit#readme")
     (synopsis "Literate Haskell support for Markdown")
     (description "This package allows you to have a README.md that at the
@@ -7778,7 +7375,7 @@ same time is a literate Haskell program.")
 (define-public ghc-math-functions
   (package
     (name "ghc-math-functions")
-    (version "0.3.3.0")
+    (version "0.3.4.2")
     (source
      (origin
        (method url-fetch)
@@ -7787,20 +7384,18 @@ same time is a literate Haskell program.")
                            "math-functions-" version ".tar.gz"))
        (sha256
         (base32
-         "1s5nbs40sc3r4z08n0j8bw40cy0zkp03fjjn3p27zkd4fvm9kib3"))))
+         "18y1hlc8p6yyxa14zdbm84aaq58kksbrlfp3rj2bd4ilsb00mrf1"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f))  ; FIXME: 1 test fails.
     (inputs
-     `(("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)))
+     (list ghc-data-default-class ghc-vector ghc-vector-th-unbox))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-erf" ,ghc-erf)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-hunit
+           ghc-quickcheck
+           ghc-erf
+           ghc-test-framework
+           ghc-test-framework-hunit
+           ghc-test-framework-quickcheck2))
     (home-page "https://github.com/bos/math-functions")
     (synopsis "Special functions and Chebyshev polynomials for Haskell")
     (description "This Haskell library provides implementations of
@@ -7811,7 +7406,7 @@ functions are often useful in statistical and numerical computing.")
 (define-public ghc-megaparsec
   (package
     (name "ghc-megaparsec")
-    (version "7.0.5")
+    (version "9.0.1")
     (source
      (origin
        (method url-fetch)
@@ -7820,17 +7415,12 @@ functions are often useful in statistical and numerical computing.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "0bqx1icbmk8s7wmbcdzsgnlh607c7kzg8l80cp02dxr5valjxp7j"))))
+         "00953zvxfyjibw8c1ssmixxh0cwn59pz24zbh6s34rk3v14vqa3j"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-parser-combinators" ,ghc-parser-combinators)
-       ("ghc-scientific" ,ghc-scientific)))
+     (list ghc-case-insensitive ghc-parser-combinators ghc-scientific))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-hspec-expectations" ,ghc-hspec-expectations)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-quickcheck ghc-hspec ghc-hspec-expectations hspec-discover))
     (home-page "https://github.com/mrkkrp/megaparsec")
     (synopsis "Monadic parser combinators")
     (description
@@ -7842,22 +7432,19 @@ speed, flexibility, and quality of parse errors.")
 (define-public ghc-memory
   (package
     (name "ghc-memory")
-    (version "0.14.18")
+    (version "0.15.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "memory/memory-" version ".tar.gz"))
               (sha256
                (base32
-                "01rmq3vagxzjmm96qnfxk4f0516cn12bp5m8inn8h5r918bqsigm"))))
+                "0a9mxcddnqn4359hk59d6l2zbh0vp154yb5vs1a8jw4l38n8kzz3"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-basement" ,ghc-basement)
-       ("ghc-foundation" ,ghc-foundation)))
+     (list ghc-basement ghc-foundation))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty ghc-tasty-quickcheck ghc-tasty-hunit))
     (home-page "https://github.com/vincenthz/hs-memory")
     (synopsis "Memory abstractions for Haskell")
     (description
@@ -7871,7 +7458,7 @@ set, memory copy, ..) and more")
 (define-public ghc-memotrie
   (package
     (name "ghc-memotrie")
-    (version "0.6.9")
+    (version "0.6.10")
     (source
      (origin
        (method url-fetch)
@@ -7881,10 +7468,10 @@ set, memory copy, ..) and more")
              ".tar.gz"))
        (sha256
         (base32
-         "157p0pi6rrq74a35mq6zkkycv4ah7xhkbrcmnkb9xf7pznw4aq0x"))))
+         "0lxsarhyhhkp58wpbp7b08scmjxq7s46jfl9vhp2yfq973hz0kaq"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-newtype-generics" ,ghc-newtype-generics)))
+     (list ghc-newtype-generics))
     (home-page "https://github.com/conal/MemoTrie")
     (synopsis "Trie-based memo functions")
     (description "This package provides a functional library for creating
@@ -7894,7 +7481,7 @@ efficient memo functions using tries.")
 (define-public ghc-microlens
   (package
     (name "ghc-microlens")
-    (version "0.4.10")
+    (version "0.4.12.0")
     (source
      (origin
        (method url-fetch)
@@ -7903,7 +7490,7 @@ efficient memo functions using tries.")
                            "microlens-" version ".tar.gz"))
        (sha256
         (base32
-         "1v277yyy4p9q57xr2lfp6qs24agglfczmcabrapxrzci3jfshmcw"))))
+         "10q7gl9yavcln58sxdxzih7ff0ixxq5hpd87icvxw97yqf1p6hmm"))))
     (build-system haskell-build-system)
     (home-page
      "https://github.com/aelve/microlens")
@@ -7919,29 +7506,27 @@ stripped.  As the result, this package has no dependencies.")
 (define-public ghc-microlens-aeson
   (package
     (name "ghc-microlens-aeson")
-    (version "2.3.0.4")
+    (version "2.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/"
                            "microlens-aeson/microlens-aeson-"
                            version ".tar.gz"))
-       (patches (search-patches "ghc-microlens-aeson-fix-tests.patch"))
        (sha256
         (base32
-         "0w630kk5bnily1qh41081gqgbwmslrh5ad21899gwnb2r3jripyw"))))
+         "074mzpk7av6i0xf7xy42jpzgljlmyw805md1vz4sqy85m99f0ikr"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-microlens" ,ghc-microlens)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)))
+     (list ghc-aeson
+           ghc-attoparsec
+           ghc-hashable
+           ghc-microlens
+           ghc-scientific
+           ghc-unordered-containers
+           ghc-vector))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty ghc-tasty-hunit))
     (home-page "https://github.com/fosskers/microlens-aeson")
     (synopsis "Law-abiding lenses for Aeson, using microlens")
     (description "This library provides law-abiding lenses for Aeson, using
@@ -7951,7 +7536,7 @@ microlens.")
 (define-public ghc-microlens-ghc
   (package
     (name "ghc-microlens-ghc")
-    (version "0.4.10")
+    (version "0.4.13")
     (source
      (origin
        (method url-fetch)
@@ -7961,9 +7546,9 @@ microlens.")
              ".tar.gz"))
        (sha256
         (base32
-         "102dbrdsdadxbbhvx8avv1wbk84767a7lkb8ckp3zxk9g7qlly33"))))
+         "1r6x788br3f9rksj0dmk1nyh5mfvd9zzasclf1mi3rxhb7c0j926"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-microlens" ,ghc-microlens)))
+    (inputs (list ghc-microlens))
     (home-page "https://github.com/monadfix/microlens")
     (synopsis "Use @code{microlens} with GHC libraries like @code{array}")
     (description "This library provides everything that @code{microlens}
@@ -7977,7 +7562,7 @@ microlens} family; see the readme
 (define-public ghc-microlens-mtl
   (package
     (name "ghc-microlens-mtl")
-    (version "0.1.11.1")
+    (version "0.2.0.1")
     (source
      (origin
        (method url-fetch)
@@ -7987,11 +7572,10 @@ microlens} family; see the readme
              ".tar.gz"))
        (sha256
         (base32
-         "0l6z1gkzwcpv89bxf5vgfrjb6gq2pj7sjjc53nvi5b9alx34zryk"))))
+         "0ijy7xyd5lbc3calhcrhy8czkf3fjcxrv68p7kd2a5b352rfi7fp"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-microlens" ,ghc-microlens)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)))
+     (list ghc-microlens ghc-transformers-compat))
     (home-page "https://github.com/monadfix/microlens")
     (synopsis
      "@code{microlens} support for Reader/Writer/State from mtl")
@@ -8006,7 +7590,7 @@ readme @uref{https://github.com/aelve/microlens#readme, on Github}.")
 (define-public ghc-microlens-platform
   (package
     (name "ghc-microlens-platform")
-    (version "0.3.11")
+    (version "0.4.2")
     (source
      (origin
        (method url-fetch)
@@ -8015,16 +7599,16 @@ readme @uref{https://github.com/aelve/microlens#readme, on Github}.")
              "microlens-platform/microlens-platform-" version ".tar.gz"))
        (sha256
         (base32
-         "18950lxgmsg5ksvyyi3zs1smjmb1qf1q73a3p3g44bh21miz0xwb"))))
+         "0yf0z0glq2d6mpclzswc64h9w2cck4fd8l8ffm89pyb0a5n8m4c7"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-hashable" ,ghc-hashable)
-       ("ghc-microlens" ,ghc-microlens)
-       ("ghc-microlens-ghc" ,ghc-microlens-ghc)
-       ("ghc-microlens-mtl" ,ghc-microlens-mtl)
-       ("ghc-microlens-th" ,ghc-microlens-th)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)))
+     (list ghc-hashable
+           ghc-microlens
+           ghc-microlens-ghc
+           ghc-microlens-mtl
+           ghc-microlens-th
+           ghc-unordered-containers
+           ghc-vector))
     (home-page "https://github.com/monadfix/microlens")
     (synopsis "Feature-complete microlens")
     (description
@@ -8049,7 +7633,7 @@ readme @uref{https://github.com/aelve/microlens#readme, on Github}.")
 (define-public ghc-microlens-th
   (package
     (name "ghc-microlens-th")
-    (version "0.4.2.3")
+    (version "0.4.3.10")
     (source
      (origin
        (method url-fetch)
@@ -8058,13 +7642,10 @@ readme @uref{https://github.com/aelve/microlens#readme, on Github}.")
                            "microlens-th-" version ".tar.gz"))
        (sha256
         (base32
-         "13qw0pwcgd6f6i39rwgqwcwk1d4da5x7wv3gna7gdlxaq331h41j"))))
+         "1dg2xhj85fy8q39m5dd94kjlabjyxgc0336vzkg0174l6l110l1c"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:cabal-revision
-       ("1" "167in7b1qhgrspx81bdm2jyg9qji66sk7id282c0s99kmp0d01n6")))
-    (inputs `(("ghc-microlens" ,ghc-microlens)
-              ("ghc-th-abstraction" ,ghc-th-abstraction)))
+    (inputs (list ghc-microlens ghc-th-abstraction))
+    (native-inputs (list ghc-tagged))
     (home-page
      "https://github.com/aelve/microlens")
     (synopsis "Automatic generation of record lenses for
@@ -8078,7 +7659,7 @@ used both from lens and microlens).")
 (define-public ghc-missingh
   (package
     (name "ghc-missingh")
-    (version "1.4.1.0")
+    (version "1.4.3.0")
     (source
      (origin
        (method url-fetch)
@@ -8086,24 +7667,26 @@ used both from lens and microlens).")
                            "MissingH-" version ".tar.gz"))
        (sha256
         (base32
-         "1jp0vk6w9a7fzrbxfhx773105jp2s1n50klq9ak6spfl7bgx5v29"))))
+         "196cniya5wzcv2d777nr0f7hinclpals4ia1mkzzv35870pqr6lw"))))
     (build-system haskell-build-system)
-    ;; Tests require the unmaintained testpack package, which depends on the
-    ;; outdated QuickCheck version 2.7, which can no longer be built with
-    ;; recent versions of GHC and Haskell libraries.
-    (arguments '(#:tests? #f))
-    (inputs
-     `(("ghc-network" ,ghc-network)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-regex-compat" ,ghc-regex-compat)
-       ("ghc-hslogger" ,ghc-hslogger)
-       ("ghc-random" ,ghc-random)
-       ("ghc-old-time" ,ghc-old-time)
-       ("ghc-old-locale" ,ghc-old-locale)))
-    (native-inputs
-     `(("ghc-errorcall-eq-instance" ,ghc-errorcall-eq-instance)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hunit" ,ghc-hunit)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'update-constraints
+           (lambda _
+             (substitute* "MissingH.cabal"
+               (("(random)\\s+[^,]+" all dep)
+                dep)))))))
+    (inputs
+     (list ghc-network
+           ghc-hunit
+           ghc-regex-compat
+           ghc-hslogger
+           ghc-random
+           ghc-old-time
+           ghc-old-locale))
+    (native-inputs
+     (list ghc-errorcall-eq-instance ghc-quickcheck ghc-hunit))
     ;; ‘Official’ <http://software.complete.org/missingh> redirects to a 404.
     (home-page "https://github.com/haskell-hvr/missingh")
     (synopsis "Large utility library")
@@ -8137,7 +7720,7 @@ do on-demand loading.")
 (define-public ghc-mmorph
   (package
     (name "ghc-mmorph")
-    (version "1.1.3")
+    (version "1.1.5")
     (source
      (origin
        (method url-fetch)
@@ -8147,10 +7730,10 @@ do on-demand loading.")
              ".tar.gz"))
        (sha256
         (base32
-         "0rfsy9n9mlinpmqi2s17fhc67fzma2ig5fbmh6m5m830canzf8vr"))))
+         "0bq9m3hlfax1826gg5yhih79x33rvfx59wdh8yf43azd7l74bys6"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-transformers-compat" ,ghc-transformers-compat)))
+     (list ghc-transformers-compat))
     (home-page "https://hackage.haskell.org/package/mmorph")
     (synopsis "Monad morphisms")
     (description
@@ -8171,12 +7754,9 @@ manipulating monad transformer stacks.")
                 "09ypgm3z69gq8mj6y66ss58kbjnk15r8frwcwbqcfbfksfnfv8dp"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-temporary" ,ghc-temporary)
-       ("ghc-logging-facade" ,ghc-logging-facade)
-       ("ghc-base-compat" ,ghc-base-compat)))
+     (list ghc-temporary ghc-logging-facade ghc-base-compat))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec hspec-discover))
     (home-page "https://hackage.haskell.org/package/mockery")
     (synopsis "Support functions for automated testing")
     (description
@@ -8186,7 +7766,7 @@ manipulating monad transformer stacks.")
 (define-public ghc-monad-control
   (package
     (name "ghc-monad-control")
-    (version "1.0.2.3")
+    (version "1.0.3.1")
     (source
      (origin
        (method url-fetch)
@@ -8195,11 +7775,10 @@ manipulating monad transformer stacks.")
              "/monad-control-" version ".tar.gz"))
        (sha256
         (base32
-         "1c92833gr6cadidjdp8mlznkpp8lyxl0w3y7d19y8yi3klc3843c"))))
+         "0g3if9km8ik80bcy130a826ig9wlk4bnf0qli3vmwdwr9nhaw2xf"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-transformers-base" ,ghc-transformers-base)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)))
+     (list ghc-transformers-base ghc-transformers-compat))
     (home-page "https://github.com/basvandijk/monad-control")
     (synopsis "Monad transformers to lift control operations like exception
 catching")
@@ -8211,7 +7790,7 @@ a subset of @code{MonadBase} into which generic control operations such as
 (define-public ghc-monad-logger
   (package
     (name "ghc-monad-logger")
-    (version "0.3.30")
+    (version "0.3.36")
     (source
      (origin
        (method url-fetch)
@@ -8220,20 +7799,20 @@ a subset of @code{MonadBase} into which generic control operations such as
                            "monad-logger-" version ".tar.gz"))
        (sha256
         (base32
-         "102l0v75hbvkmrypiyg4ybb6rbc7nij5nxs1aihmqfdpg04rkkp7"))))
-    (build-system haskell-build-system)
-    (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
-              ("ghc-stm-chans" ,ghc-stm-chans)
-              ("ghc-lifted-base" ,ghc-lifted-base)
-              ("ghc-resourcet" ,ghc-resourcet)
-              ("ghc-conduit" ,ghc-conduit)
-              ("ghc-conduit-extra" ,ghc-conduit-extra)
-              ("ghc-fast-logger" ,ghc-fast-logger)
-              ("ghc-transformers-base" ,ghc-transformers-base)
-              ("ghc-monad-control" ,ghc-monad-control)
-              ("ghc-monad-loops" ,ghc-monad-loops)
-              ("ghc-blaze-builder" ,ghc-blaze-builder)
-              ("ghc-exceptions" ,ghc-exceptions)))
+         "12rw0k01gkhiqjm2fhxgkmribksmizhj14xphfn8fkd86wzl0vbh"))))
+    (build-system haskell-build-system)
+    (inputs (list ghc-transformers-compat
+                  ghc-stm-chans
+                  ghc-lifted-base
+                  ghc-resourcet
+                  ghc-conduit
+                  ghc-conduit-extra
+                  ghc-fast-logger
+                  ghc-transformers-base
+                  ghc-monad-control
+                  ghc-monad-loops
+                  ghc-blaze-builder
+                  ghc-exceptions))
     (home-page "https://github.com/kazu-yamamoto/logger")
     (synopsis "Provides a class of monads which can log messages for Haskell")
     (description "This Haskell package uses a monad transformer approach
@@ -8257,8 +7836,7 @@ code locations of messages.")
         (base32
          "062c2sn3hc8h50p1mhqkpyv6x8dydz2zh3ridvlfjq9nqimszaky"))))
     (build-system haskell-build-system)
-    (native-inputs `(("ghc-tasty" ,ghc-tasty)
-                     ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+    (native-inputs (list ghc-tasty ghc-tasty-hunit))
     (home-page "https://github.com/mokus0/monad-loops")
     (synopsis "Monadic loops for Haskell")
     (description "This Haskell package provides some useful control
@@ -8268,30 +7846,30 @@ operators for looping.")
 (define-public ghc-monad-par
   (package
     (name "ghc-monad-par")
-    (version "0.3.4.8")
+    (version "0.3.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/"
                            "monad-par-" version "/"
                            "monad-par-" version ".tar.gz"))
-       (patches (search-patches "ghc-monad-par-fix-tests.patch"))
-       (sha256
-        (base32
-         "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q"))))
-    (build-system haskell-build-system)
-    (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
-              ("ghc-abstract-deque" ,ghc-abstract-deque)
-              ("ghc-monad-par-extras" ,ghc-monad-par-extras)
-              ("ghc-mwc-random" ,ghc-mwc-random)
-              ("ghc-parallel" ,ghc-parallel)))
-    (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)
-                     ("ghc-hunit" ,ghc-hunit)
-                     ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-                     ("ghc-test-framework-quickcheck2"
-                      ,ghc-test-framework-quickcheck2)
-                     ("ghc-test-framework" ,ghc-test-framework)
-                     ("ghc-test-framework-th" ,ghc-test-framework-th)))
+       (sha256
+        (base32
+         "1a8m99g9x1ivch4vhksk7fdzygbil3d33w8gdqngxbmwdikdafl2"))))
+    (build-system haskell-build-system)
+    (arguments
+     `(#:tests? #f ; TODO: ghc-test-framework-th does not build.
+       #:cabal-revision
+       ("1" "17l7zjykf5iqjmw1pq4iwls7v9x9d3in94iikxabx43q5l2iccsm")))
+    (inputs (list ghc-abstract-par ghc-abstract-deque ghc-monad-par-extras
+                  ghc-mwc-random ghc-parallel))
+    (native-inputs (list ghc-quickcheck
+                         ghc-hunit
+                         ghc-test-framework-hunit
+                         ghc-test-framework-quickcheck2
+                         ghc-test-framework
+                         ;("ghc-test-framework-th" ,ghc-test-framework-th)
+                         ))
     (home-page "https://github.com/simonmar/monad-par")
     (synopsis "Haskell library for parallel programming based on a monad")
     (description "The @code{Par} monad offers an API for parallel
@@ -8315,9 +7893,7 @@ that are much lighter weight than IO-threads.")
         (base32
          "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
-              ("ghc-cereal" ,ghc-cereal)
-              ("ghc-random" ,ghc-random)))
+    (inputs (list ghc-abstract-par ghc-cereal ghc-random))
     (home-page "https://github.com/simonmar/monad-par")
     (synopsis "Combinators and extra features for Par monads for Haskell")
     (description "This Haskell package provides additional data structures,
@@ -8327,7 +7903,7 @@ and other added capabilities layered on top of the @code{Par} monad.")
 (define-public ghc-monadrandom
   (package
     (name "ghc-monadrandom")
-    (version "0.5.1.1")
+    (version "0.5.3")
     (source
      (origin
        (method url-fetch)
@@ -8336,12 +7912,10 @@ and other added capabilities layered on top of the @code{Par} monad.")
                            "MonadRandom-" version ".tar.gz"))
        (sha256
         (base32
-         "0w44jl1n3kqvqaflh82l1wj3xxbhzfs3kf4m8rk7w6fgg8llmnmb"))))
+         "17qaw1gg42p9v6f87dj5vih7l88lddbyd8880ananj8avanls617"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
-              ("ghc-primitive" ,ghc-primitive)
-              ("ghc-fail" ,ghc-fail)
-              ("ghc-random" ,ghc-random)))
+    (inputs (list ghc-transformers-compat ghc-primitive ghc-fail
+                  ghc-random))
     (home-page "https://github.com/byorgey/MonadRandom")
     (synopsis "Random-number generation monad for Haskell")
     (description "This Haskell package provides support for computations
@@ -8374,7 +7948,7 @@ the @code{mtl-tf} package.")
 (define-public ghc-mono-traversable
   (package
     (name "ghc-mono-traversable")
-    (version "1.0.13.0")
+    (version "1.0.15.3")
     (source
      (origin
        (method url-fetch)
@@ -8383,19 +7957,12 @@ the @code{mtl-tf} package.")
                            "mono-traversable-" version ".tar.gz"))
        (sha256
         (base32
-         "1bqy982lpdb83lacfy76n8kqw5bvd31avxj25kg8gkgycdh0g0ma"))))
+         "1dvlp7r7r1lc3fxkwaz68f1nffg83240q8a989x24x1x67rj1clq"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
-    (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
-              ("ghc-hashable" ,ghc-hashable)
-              ("ghc-vector" ,ghc-vector)
-              ("ghc-vector-algorithms" ,ghc-vector-algorithms)
-              ("ghc-split" ,ghc-split)))
-    (native-inputs `(("ghc-hspec" ,ghc-hspec)
-                     ("ghc-hunit" ,ghc-hunit)
-                     ("ghc-quickcheck" ,ghc-quickcheck)
-                     ("ghc-semigroups" ,ghc-semigroups)
-                     ("ghc-foldl" ,ghc-foldl)))
+    (inputs (list ghc-unordered-containers ghc-hashable ghc-vector
+                  ghc-vector-algorithms ghc-split))
+    (native-inputs (list ghc-hspec ghc-hunit ghc-quickcheck ghc-foldl))
     (home-page "https://github.com/snoyberg/mono-traversable")
     (synopsis "Haskell classes for mapping, folding, and traversing monomorphic
 containers")
@@ -8409,7 +7976,7 @@ data structures as non-empty.")
 (define-public ghc-monoid-extras
   (package
     (name "ghc-monoid-extras")
-    (version "0.5.1")
+    (version "0.6")
     (source
      (origin
        (method url-fetch)
@@ -8417,15 +7984,10 @@ data structures as non-empty.")
                            "monoid-extras/monoid-extras-" version ".tar.gz"))
        (sha256
         (base32
-         "0xfrkgqn9d31z54l617m3w3kkd5m9vjb4yl247r3zzql3mpb1f37"))))
+         "0ki1d3b1xpf653qj7brlqdgngghwrnmapy5gja75iiydfx2506a1"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-groups" ,ghc-groups)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-semigroupoids" ,ghc-semigroupoids)))
-    (arguments
-     `(#:cabal-revision
-       ("1" "0b8x5d6vh7mpigvjvcd8f38a1nyzn1vfdqypslw7z9fgsr742913")))
+     (list ghc-groups ghc-semigroupoids))
     (home-page "https://hackage.haskell.org/package/monoid-extras")
     (synopsis "Various extra monoid-related definitions and utilities")
     (description "This package provides various extra monoid-related
@@ -8516,7 +8078,7 @@ binding.")
 (define-public ghc-mwc-random
   (package
     (name "ghc-mwc-random")
-    (version "0.14.0.0")
+    (version "0.15.0.2")
     (source
      (origin
        (method url-fetch)
@@ -8525,20 +8087,15 @@ binding.")
                            "mwc-random-" version ".tar.gz"))
        (sha256
         (base32
-         "18pg24sw3b79b32cwx8q01q4k0lm34mwr3l6cdkchl8alvd0wdq0"))))
+         "0ny2mw4am24d6ykrm8rbcjnrq6p2cjmzjb4m6qfk54wfdxflvmim"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-primitive" ,ghc-primitive)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-math-functions" ,ghc-math-functions)))
+     (list ghc-primitive ghc-vector ghc-math-functions))
     (arguments
      `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-hunit ghc-quickcheck ghc-test-framework
+           ghc-test-framework-hunit ghc-test-framework-quickcheck2))
     (home-page "https://github.com/bos/mwc-random")
     (synopsis "Random number generation library for Haskell")
     (description "This Haskell package contains code for generating
@@ -8569,7 +8126,7 @@ between 2 and 3 times faster than the Mersenne Twister.")
     (build-system haskell-build-system)
     (arguments `(#:haddock? #f))
     (inputs
-     `(("ghc-hashable" ,ghc-hashable)))
+     (list ghc-hashable))
     (home-page "https://hackage.haskell.org/package/nats")
     (synopsis "Natural numbers")
     (description "This library provides the natural numbers for Haskell.")
@@ -8612,8 +8169,8 @@ between 2 and 3 times faster than the Mersenne Twister.")
        #:cabal-revision
        ("1"
         "1wfdy716s5p1sqp2gsg43x8wch2dxg0vmbbndlb2h3d8c9jzxnca")))
-    (inputs `(("ncurses" ,ncurses)))
-    (native-inputs `(("ghc-c2hs" ,ghc-c2hs)))
+    (inputs (list ncurses))
+    (native-inputs (list ghc-c2hs))
     (home-page "https://john-millikin.com/software/haskell-ncurses/")
     (synopsis "Modernised bindings to GNU ncurses")
     (description "GNU ncurses is a library for creating command-line application
@@ -8624,7 +8181,7 @@ ncurses.")
 (define-public ghc-network
   (package
     (name "ghc-network")
-    (version "2.8.0.1")
+    (version "3.1.1.1")
     (outputs '("out" "static" "doc"))
     (source
      (origin
@@ -8635,15 +8192,13 @@ ncurses.")
              ".tar.gz"))
        (sha256
         (base32
-         "0im8k51rw3ahmr23ny10pshwbz09jfg0fdpam0hzf2hgxnzmvxb1"))))
+         "16ic2hgvadyiy0zfnyd2zknf8rxqmwzpy5mw5x9apwpzfc0mkvyp"))))
     (build-system haskell-build-system)
     ;; The regression tests depend on an unpublished module.
     (arguments `(#:tests? #f))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-doctest" ,ghc-doctest)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+     (list ghc-hunit ghc-doctest ghc-test-framework
+           ghc-test-framework-hunit))
     (home-page "https://github.com/haskell/network")
     (synopsis "Low-level networking interface")
     (description
@@ -8653,7 +8208,7 @@ ncurses.")
 (define-public ghc-network-bsd
   (package
     (name "ghc-network-bsd")
-    (version "2.8.0.0")
+    (version "2.8.1.0")
     (source
      (origin
        (method url-fetch)
@@ -8661,10 +8216,13 @@ ncurses.")
                            "network-bsd/network-bsd-" version ".tar.gz"))
        (sha256
         (base32
-         "0dfbwgrr28y6ypw7p1ppqg7v746qf14569q4xazj4ahdjw2xkpi5"))))
+         "0kid0811lv4x761fd5gv6lsc8p5j2bn41rfd366pjb642p562jfr"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("4" "1gd9a8j7fwg0jz0s6il5fk9sl0hm19ja1w56ix51wa0qi2h5x56d")))
     (inputs
-     `(("ghc-network" ,ghc-network)))
+     (list ghc-network))
     (home-page "https://github.com/haskell/network-bsd")
     (synopsis "POSIX network database (<netdb.h>) API")
     (description "This package provides Haskell bindings to the the POSIX
@@ -8674,7 +8232,7 @@ network database (<netdb.h>) API.")
 (define-public ghc-network-byte-order
   (package
     (name "ghc-network-byte-order")
-    (version "0.1.1.1")
+    (version "0.1.6")
     (source
      (origin
        (method url-fetch)
@@ -8683,10 +8241,10 @@ network database (<netdb.h>) API.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "19cs6157amcc925vwr92q1azwwzkbam5g0k70i6qi80fhpikh37c"))))
+         "0pnwcg13k4qw82n0zc1xibyc24sc77y79j5a62pqdmjrnz4wrc7j"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-doctest" ,ghc-doctest)))
+     (list ghc-doctest))
     (home-page "https://hackage.haskell.org/package/network-byte-order")
     (synopsis "Network byte order utilities")
     (description "This library provides peek and poke functions for network
@@ -8731,8 +8289,7 @@ IPv4, IPv6 and MAC addresses.")
          "0whvi0pbwjy6dbwfdf9rv1j3yr3lcmfp3q7a8pwq63g537l4l2l3"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-network" ,ghc-network)
-       ("ghc-network-bsd" ,ghc-network-bsd)))
+     (list ghc-network ghc-network-bsd))
     (home-page
      "http://hackage.haskell.org/package/network-multicast")
     (synopsis "Simple multicast library for Haskell")
@@ -8748,7 +8305,7 @@ sending UDP datagrams over multicast (class D) addresses.")
 (define-public ghc-network-uri
   (package
     (name "ghc-network-uri")
-    (version "2.6.1.0")
+    (version "2.6.4.1")
     (outputs '("out" "static" "doc"))
     (source
      (origin
@@ -8759,14 +8316,13 @@ sending UDP datagrams over multicast (class D) addresses.")
              ".tar.gz"))
        (sha256
         (base32
-         "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2"))))
+         "111m485rx2kyqdymi1x6sl08hi6lp34q3f41yqcx99086swnv1ap"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:tests? #f))  ; FIXME: currently missing libraries used for tests.
     (inputs
-     `(("ghc-network" ,ghc-network)))
+     (list ghc-th-compat))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)))
+     (list ghc-hunit ghc-quickcheck ghc-tasty ghc-tasty-hunit
+           ghc-tasty-quickcheck))
     (home-page
      "https://github.com/haskell/network-uri")
     (synopsis "Library for URI manipulation")
@@ -8778,7 +8334,7 @@ sending UDP datagrams over multicast (class D) addresses.")
 (define-public ghc-newtype-generics
   (package
     (name "ghc-newtype-generics")
-    (version "0.5.4")
+    (version "0.6")
     (source
      (origin
        (method url-fetch)
@@ -8787,11 +8343,10 @@ sending UDP datagrams over multicast (class D) addresses.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "0cprfg4n0z62cnix1qrbc79bfdd4s50b05fj9m9hk6vm1pc3szq0"))))
+         "04bymwhkvlsgcsd0v630mndrzf0xnh3v81ba6nfzwcvbg3ksr2wa"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec hspec-discover))
     (home-page "https://github.com/sjakobi/newtype-generics")
     (synopsis "Typeclass and set of functions for working with newtypes")
     (description "The @code{Newtype} typeclass represents the packing and
@@ -8817,9 +8372,7 @@ and an alternative to newtype-th.")
          "0f01q916dzkl1i0v15qrw9cviycki5g3fgi6x8gs45iwbzssq52n"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-utility-ht" ,ghc-utility-ht)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-semigroups ghc-utility-ht ghc-quickcheck))
     (home-page "https://hackage.haskell.org/package/non-negative")
     (synopsis "Non-negative numbers class")
     (description "This library provides a class for non-negative numbers,
@@ -8842,11 +8395,12 @@ of Peano numbers).")
         (base32
          "1q9ph0aq51mvdvydnriqd12sfin36pfb8f588zgac1ybn8r64ksb"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("2" "09xvg4lpmb1hw153afhbjrdg9v3npfwpdfhpv5y8b0qvb4zi3n9q")))
     (inputs
-     `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-entropy" ,ghc-entropy)
-       ("ghc-unliftio" ,ghc-unliftio)
-       ("ghc-unliftio-core" ,ghc-unliftio-core)))
+     (list ghc-base64-bytestring ghc-entropy ghc-unliftio
+           ghc-unliftio-core))
     (home-page "https://github.com/prowdsponsor/nonce")
     (synopsis "Generate cryptographic nonces in Haskell")
     (description
@@ -8944,7 +8498,7 @@ date and time formats.")
      `(#:cabal-revision
        ("2" "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9")))
     (inputs
-     `(("ghc-old-locale" ,ghc-old-locale)))
+     (list ghc-old-locale))
     (home-page "https://hackage.haskell.org/package/old-time")
     (synopsis "Time compatibility library for Haskell")
     (description "Old-time is a package for backwards compatibility with the
@@ -9003,10 +8557,7 @@ traditionally so named type-wrapper for attaching typeclass instances.")
      `(#:cabal-revision
        ("1" "1748mrb6r9mpf5jbrx436lwbg8w6dadyy8dhxw2dwnrj5z7zf741")))
     (inputs
-     `(("ghc-objectname" ,ghc-objectname)
-       ("ghc-gluraw" ,ghc-gluraw)
-       ("ghc-statevar" ,ghc-statevar)
-       ("ghc-openglraw" ,ghc-openglraw)))
+     (list ghc-objectname ghc-gluraw ghc-statevar ghc-openglraw))
     (home-page "https://wiki.haskell.org/Opengl")
     (synopsis "Haskell bindings for the OpenGL graphics system")
     (description "This package provides Haskell bindings for the OpenGL
@@ -9017,7 +8568,7 @@ version 1.3).")
 (define-public ghc-openglraw
   (package
     (name "ghc-openglraw")
-    (version "3.3.3.0")
+    (version "3.3.4.0")
     (source
      (origin
        (method url-fetch)
@@ -9027,14 +8578,12 @@ version 1.3).")
              ".tar.gz"))
        (sha256
         (base32
-         "0zgllb4bcash2i2cispa3j565aw3dpxs41ghmhpvyvi4a6xmyldx"))))
+         "0gmsmysqzpm13qnyq4vvqxm4dzw25nayfd9wi5x645pympm6jqbm"))))
     (build-system haskell-build-system)
     (arguments
      `(#:extra-directories ("glu")))
     (inputs
-     `(("ghc-half" ,ghc-half)
-       ("ghc-fixed" ,ghc-fixed)
-       ("glu" ,glu)))
+     (list ghc-half ghc-fixed glu))
     (home-page "https://wiki.haskell.org/Opengl")
     (synopsis "Raw Haskell bindings for the OpenGL graphics system")
     (description "OpenGLRaw is a raw Haskell binding for the OpenGL 4.5
@@ -9051,7 +8600,7 @@ found at runtime, a userError is thrown.")
 (define-public ghc-operational
   (package
     (name "ghc-operational")
-    (version "0.2.3.5")
+    (version "0.2.4.0")
     (source
      (origin
        (method url-fetch)
@@ -9059,10 +8608,10 @@ found at runtime, a userError is thrown.")
                            "operational-" version ".tar.gz"))
        (sha256
         (base32
-         "1x2abg2q9d26h1vzj40r6k7k3gqgappbs4g9d853vvg77837km4i"))))
+         "1hwmwbsxzwv68b39rv4gn3da6irv8zm89gqrkc3rdsgwi5ziyn3i"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-random" ,ghc-random)))
+     (list ghc-random))
     (home-page "http://wiki.haskell.org/Operational")
     (synopsis "Implementation of difficult monads made easy with operational semantics")
     (description
@@ -9119,9 +8668,7 @@ arguments.")
                (("chell >= 0\\.4 && < 0\\.5") "chell >= 0.4 && < 0.6"))
              #t)))))
     (inputs
-     `(("ghc-monads-tf" ,ghc-monads-tf)
-       ("ghc-chell" ,ghc-chell)
-       ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)))
+     (list ghc-monads-tf ghc-chell ghc-chell-quickcheck))
     (home-page "https://john-millikin.com/software/haskell-options/")
     (synopsis "Powerful and easy-to-use command-line option parser")
     (description
@@ -9159,7 +8706,7 @@ easily work with command-line options.")
 (define-public ghc-optparse-applicative
   (package
     (name "ghc-optparse-applicative")
-    (version "0.14.3.0")
+    (version "0.16.1.0")
     (source
      (origin
        (method url-fetch)
@@ -9168,16 +8715,15 @@ easily work with command-line options.")
              "/optparse-applicative-" version ".tar.gz"))
        (sha256
         (base32
-         "0qvn1s7jwrabbpmqmh6d6iafln3v3h9ddmxj2y4m0njmzq166ivj"))))
+         "16nnrkmgd28h540f17nb017ziq4gbzgkxpdraqicaczkca1jf1b2"))))
     (build-system haskell-build-system)
     (arguments
      `(#:cabal-revision
-       ("2" "1a08dqjly1xy730f6jf45frr8g8gap0n1vg9b0mpzpydv0kgzmrp")))
+       ("1" "0401ik87gm9gjpch6lmkczygp59na3f1j7bcs6mc2r929c2xgsqn")))
     (inputs
-     `(("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)))
+     (list ghc-transformers-compat ghc-ansi-wl-pprint))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-quickcheck))
     (home-page "https://github.com/pcapriotti/optparse-applicative")
     (synopsis "Utilities and combinators for parsing command line options")
     (description "This package provides utilities and combinators for parsing
@@ -9187,7 +8733,7 @@ command line options in Haskell.")
 (define-public ghc-jira-wiki-markup
   (package
     (name "ghc-jira-wiki-markup")
-    (version "1.0.0")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
@@ -9195,11 +8741,10 @@ command line options in Haskell.")
              "https://hackage.haskell.org/package/jira-wiki-markup/"
              "jira-wiki-markup-" version ".tar.gz"))
        (sha256
-        (base32 "1sl2jjcsqg61si33mxjwpf8zdn56kbbgcwqqqzbgifx2qbv4wmf8"))))
+        (base32 "0p6axj6km4440ss5naw68r3r85si4qxqgrklp6ssfyapawy0s88w"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty ghc-tasty-hunit))
     (home-page "https://github.com/tarleb/jira-wiki-markup")
     (synopsis "Handle Jira wiki markup")
     (description
@@ -9210,7 +8755,7 @@ to other formats.")
 (define-public ghc-emojis
   (package
     (name "ghc-emojis")
-    (version "0.1")
+    (version "0.1.2")
     (source
      (origin
        (method url-fetch)
@@ -9218,10 +8763,10 @@ to other formats.")
              "https://hackage.haskell.org/package/emojis/"
              "emojis-" version ".tar.gz"))
        (sha256
-        (base32 "1c6zkj9gmk1y90gbdrn50hyp7mw1mggzhnr2khqd728ryipw60ss"))))
+        (base32 "09x2xrppwypi369y7rzf3ln2g7c3g9qfckn2gydxpfzglcp9rziw"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)))
+     (list ghc-hunit))
     (home-page "https://github.com/jgm/emojis#readme")
     (synopsis "Conversion between emoji characters and their names.")
     (description
@@ -9243,7 +8788,7 @@ require aeson
 (define-public ghc-text-conversions
   (package
     (name "ghc-text-conversions")
-    (version "0.3.0")
+    (version "0.3.1")
     (source
      (origin
        (method url-fetch)
@@ -9251,15 +8796,12 @@ require aeson
              "https://hackage.haskell.org/package/text-conversions/"
              "text-conversions-" version ".tar.gz"))
        (sha256
-        (base32 "089c56vdj9xysqfr1hnvbnrghlg83q6w10xk02gflpsidcpvwmhp"))))
+        (base32 "0kbxin1q8xj9sgdl185gncrdjwcfzndp8sl5qll8y93l60yq8dxi"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
-       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-errors" ,ghc-errors)))
+     (list ghc-base16-bytestring ghc-base64-bytestring ghc-errors))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec hspec-discover))
     (home-page "https://github.com/cjdev/text-conversions#readme")
     (synopsis "Safe conversions between textual types")
     (description "Safe conversions between textual types")
@@ -9280,17 +8822,14 @@ require aeson
         (base32
          "0xyrxlb602z8bc9sr2y1fag0x56a20yj5qrkvy7iwc6hnznrynxz"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-hashable" ,ghc-hashable)))
+    (inputs (list ghc-hashable))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-quickcheck-instances"
-        ,ghc-quickcheck-instances)))
+     (list ghc-tasty ghc-tasty-quickcheck ghc-tasty-hunit
+           ghc-quickcheck-instances))
     (arguments
-     `(#:cabal-revision
-       ("2"
-        "17cb7p0qywf2dsrq3g8qb3ssknd9wl5k0nc2pxz9gc3l8rxpkw51")))
+     `(#:tests? #f ; TODO: Needs tasty<1.3
+       #:cabal-revision
+       ("3" "1wjy98ihhipzr34b310sgjjq3cc12aydhckbrgr21kxkzwglm4nv")))
     (home-page "https://hackage.haskell.org/package/text-short")
     (synopsis "Memory-efficient representation of Unicode text strings")
     (description "This package provides the @code{ShortText} type which
@@ -9307,21 +8846,19 @@ plus the length of the UTF-8 encoded payload.")
 (define-public ghc-text-zipper
   (package
     (name "ghc-text-zipper")
-    (version "0.10.1")
+    (version "0.11")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/text-zipper/"
                            "text-zipper-" version ".tar.gz"))
        (sha256
-        (base32 "0jxicjp0ak1fyl1n3yspxq6hv9l90zzy75glsv8bc2svsn9ypyls"))))
+        (base32 "07l1pyx93gv95cn1wh1di129axhm9sqsn4znykliacv60ld854ys"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec ghc-quickcheck hspec-discover))
     (inputs
-     `(("ghc-vector" ,ghc-vector)))
+     (list ghc-vector))
     (home-page "https://github.com/jtdaugherty/text-zipper/")
     (synopsis "Text editor zipper library")
     (description
@@ -9337,7 +8874,7 @@ Implementations using both of these examples are provided.")
 (define-public ghc-doclayout
   (package
     (name "ghc-doclayout")
-    (version "0.3")
+    (version "0.3.1.1")
     (source
      (origin
        (method url-fetch)
@@ -9345,14 +8882,13 @@ Implementations using both of these examples are provided.")
              "https://hackage.haskell.org/package/doclayout/"
              "doclayout-" version ".tar.gz"))
        (sha256
-        (base32 "1wmnwq28jcyd6c80srivsnd5znmyl9sgmwwnlk2crwiiwqadbal7"))))
+        (base32 "1p9kgjlf7y4p1symvkwndgs4lvyw2c45bsgld09y9r4aiqbhdrxp"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-safe" ,ghc-safe)))
+     (list ghc-safe ghc-emojis))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-golden" ,ghc-tasty-golden)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty ghc-tasty-golden ghc-tasty-hunit
+           ghc-tasty-quickcheck))
     (home-page "https://github.com/jgm/doclayout")
     (synopsis "Pretty-printing library for laying out text documents")
     (description
@@ -9364,17 +8900,15 @@ code.  It was designed for use in @code{Pandoc}.")
 (define-public ghc-pandoc
   (package
     (name "ghc-pandoc")
-    (version "2.7.3")
+    (version "2.14.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/pandoc/pandoc-"
                            version ".tar.gz"))
-       (patches (search-patches "ghc-pandoc-fix-html-tests.patch"
-                                "ghc-pandoc-fix-latex-test.patch"))
        (sha256
         (base32
-         "0dpjrr40h54cljzhvixyym07z792a9izg6b9dmqpjlgcg4rj0xx8"))))
+         "1pgd6125mrvzj2faxbsfmackb7kchzcr6bjkrwqbyn9hzxdzbqw2"))))
     (build-system haskell-build-system)
     (arguments
      `(#:phases
@@ -9388,54 +8922,68 @@ code.  It was designed for use in @code{Pandoc}.")
              #t)))))
     (outputs '("out" "static" "doc"))
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-aeson-pretty" ,ghc-aeson-pretty)
-       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-blaze-markup" ,ghc-blaze-markup)
-       ("ghc-cmark-gfm" ,ghc-cmark-gfm)
-       ("ghc-data-default" ,ghc-data-default)
-       ("ghc-diff" ,ghc-diff)
-       ("ghc-doctemplates" ,ghc-doctemplates)
-       ("ghc-executable-path" ,ghc-executable-path)
-       ("ghc-glob" ,ghc-glob)
-       ("ghc-haddock-library" ,ghc-haddock-library)
-       ("ghc-hslua" ,ghc-hslua)
-       ("ghc-hslua-module-system" ,ghc-hslua-module-system)
-       ("ghc-hslua-module-text" ,ghc-hslua-module-text)
-       ("ghc-hsyaml" ,ghc-hsyaml)
-       ("ghc-http" ,ghc-http)
-       ("ghc-http-client" ,ghc-http-client)
-       ("ghc-http-client-tls" ,ghc-http-client-tls)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-ipynb" ,ghc-ipynb)
-       ("ghc-juicypixels" ,ghc-juicypixels)
-       ("ghc-network" ,ghc-network)
-       ("ghc-network-uri" ,ghc-network-uri)
-       ("ghc-pandoc-types" ,ghc-pandoc-types)
-       ("ghc-random" ,ghc-random)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-sha" ,ghc-sha)
-       ("ghc-skylighting" ,ghc-skylighting)
-       ("ghc-split" ,ghc-split)
-       ("ghc-syb" ,ghc-syb)
-       ("ghc-tagsoup" ,ghc-tagsoup)
-       ("ghc-temporary" ,ghc-temporary)
-       ("ghc-texmath" ,ghc-texmath)
-       ("ghc-unicode-transforms" ,ghc-unicode-transforms)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-xml" ,ghc-xml)
-       ("ghc-zip-archive" ,ghc-zip-archive)
-       ("ghc-zlib" ,ghc-zlib)))
-    (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-golden" ,ghc-tasty-golden)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-lua" ,ghc-tasty-lua)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hunit" ,ghc-hunit)))
+     (list ghc-aeson
+           ghc-aeson-pretty
+           ghc-attoparsec
+           ghc-base64-bytestring
+           ghc-base-compat
+           ghc-blaze-html
+           ghc-blaze-markup
+           ghc-case-insensitive
+           ghc-citeproc
+           ghc-commonmark-extensions
+           ghc-commonmark
+           ghc-commonmark-pandoc
+           ghc-connection
+           ghc-data-default
+           ghc-doclayout
+           ghc-doctemplates
+           ghc-emojis
+           ghc-file-embed
+           ghc-glob
+           ghc-haddock-library
+           ghc-hslua
+           ghc-hslua-module-path
+           ghc-hslua-module-system
+           ghc-hslua-module-text
+           ghc-hsyaml
+           ghc-http-client
+           ghc-http-client-tls
+           ghc-http
+           ghc-http-types
+           ghc-ipynb
+           ghc-jira-wiki-markup
+           ghc-juicypixels
+           ghc-network
+           ghc-network-uri
+           ghc-pandoc-types
+           ghc-random
+           ghc-safe
+           ghc-scientific
+           ghc-sha
+           ghc-skylighting-core
+           ghc-skylighting
+           ghc-split
+           ghc-syb
+           ghc-tagsoup
+           ghc-temporary
+           ghc-texmath
+           ghc-text-conversions
+           ghc-unicode-collation
+           ghc-unicode-transforms
+           ghc-unordered-containers
+           ghc-xml-conduit
+           ghc-xml
+           ghc-zip-archive
+           ghc-zlib))
+    (native-inputs
+     (list ghc-tasty
+           ghc-tasty-golden
+           ghc-tasty-hunit
+           ghc-tasty-lua
+           ghc-tasty-quickcheck
+           ghc-diff
+           ghc-quickcheck))
     (home-page "https://pandoc.org")
     (synopsis "Conversion between markup formats")
     (description
@@ -9527,9 +9075,13 @@ getDataFileName name = do
               inputs)
              #t))
          (delete 'check)
+         ;; Remove libraries. If you need them, install ghc-pandoc instead.
+         (add-after 'register 'delete-libraries
+           (lambda* (#:key outputs #:allow-other-keys)
+             (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib"))))
          (add-after 'install 'post-install-check
            (assoc-ref %standard-phases 'check)))))
-    (outputs '("out" "lib" "static" "doc"))
+    (outputs '("out" "doc" "static"))
     (inputs
      (let* ((direct-inputs (package-inputs ghc-pandoc))
             (all-static-inputs
@@ -9539,7 +9091,9 @@ getDataFileName name = do
                   (delete-duplicates
                    (append (map cadr direct-inputs)
                            (filter (lambda (pkg)
-                                     (string-prefix? "ghc-" (package-name pkg)))
+                                     (and
+                                      (string-prefix? "ghc-" (package-name pkg))
+                                      (not (string=? "ghc-next" (package-name pkg)))))
                                    (package-closure
                                     (map cadr direct-inputs))))))))
        `(("zlib:static" ,zlib "static")
@@ -9554,178 +9108,18 @@ getDataFileName name = do
                   (delete-duplicates
                    (append (map cadr direct-inputs)
                            (filter (lambda (pkg)
-                                     (string-prefix? "ghc-" (package-name pkg)))
+                                     (and
+                                      (string-prefix? "ghc-" (package-name pkg))
+                                      (not (string=? "ghc-next" (package-name pkg)))))
                                    (package-closure
                                     (map cadr direct-inputs))))))))
        `(,@all-static-inputs
          ,@direct-inputs)))))
 
-(define-public ghc-pandoc-citeproc
-  (package
-    (name "ghc-pandoc-citeproc")
-    (version "0.16.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://hackage.haskell.org/package/"
-                           "pandoc-citeproc/pandoc-citeproc-"
-                           version ".tar.gz"))
-       (sha256
-        (base32
-         "15mm17awgi1b5yazwhr5nh8b59qml1qk6pz6gpyijks70fq2arsv"))))
-    (build-system haskell-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         ;; Many YAML tests (44) are failing do to changes in ghc-yaml:
-         ;; <https://github.com/jgm/pandoc-citeproc/issues/342>.
-         (add-before 'configure 'patch-tests
-           (lambda _
-             (substitute* "tests/test-pandoc-citeproc.hs"
-               (("let allTests = citeprocTests \\+\\+ biblio2yamlTests")
-                "let allTests = citeprocTests"))))
-         ;; Tests need to be run after installation.
-         (delete 'check)
-         (add-after 'install 'post-install-check
-           (assoc-ref %standard-phases 'check)))))
-    (inputs
-     `(("ghc-pandoc-types" ,ghc-pandoc-types)
-       ("ghc-pandoc" ,ghc-pandoc)
-       ("ghc-tagsoup" ,ghc-tagsoup)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-xml-conduit" ,ghc-xml-conduit)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-data-default" ,ghc-data-default)
-       ("ghc-setenv" ,ghc-setenv)
-       ("ghc-split" ,ghc-split)
-       ("ghc-yaml" ,ghc-yaml)
-       ("ghc-hs-bibutils" ,ghc-hs-bibutils)
-       ("ghc-rfc5051" ,ghc-rfc5051)
-       ("ghc-syb" ,ghc-syb)
-       ("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-aeson-pretty" ,ghc-aeson-pretty)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-temporary" ,ghc-temporary)))
-    (home-page "https://github.com/jgm/pandoc-citeproc")
-    (synopsis "Library for using pandoc with citeproc")
-    (description
-     "The @code{pandoc-citeproc} library exports functions for using the
-citeproc system with pandoc.  It relies on @code{citeproc-hs}, a library for
-rendering bibliographic reference citations into a variety of styles using a
-macro language called @dfn{Citation Style Language} (CSL).  This package also
-contains an executable @code{pandoc-citeproc}, which works as a pandoc filter,
-and also has a mode for converting bibliographic databases a YAML format
-suitable for inclusion in pandoc YAML metadata.")
-    (license license:bsd-3)))
-
-(define-public pandoc-citeproc
-  (package (inherit ghc-pandoc-citeproc)
-    (name "pandoc-citeproc")
-    (arguments
-     `(#:configure-flags
-       (list "-fstatic"
-             "--disable-shared"
-             "--disable-executable-dynamic"
-             ;; That's where we place all static libraries
-             "--extra-lib-dirs=static-libs/"
-             "--ghc-option=-static")
-       #:modules ((guix build haskell-build-system)
-                  (guix build utils)
-                  (ice-9 match)
-                  (srfi srfi-1))
-       #:phases
-       (modify-phases %standard-phases
-         ;; Many YAML tests (44) are failing do to changes in ghc-yaml:
-         ;; <https://github.com/jgm/pandoc-citeproc/issues/342>.
-         (add-before 'configure 'patch-tests
-           (lambda _
-             (substitute* "tests/test-pandoc-citeproc.hs"
-               (("let allTests = citeprocTests \\+\\+ biblio2yamlTests")
-                "let allTests = citeprocTests"))))
-         ;; Tests need to be run after installation.
-         (delete 'check)
-         (add-after 'install 'post-install-check
-           (assoc-ref %standard-phases 'check))
-         (add-after 'unpack 'create-simple-paths-module
-           (lambda* (#:key outputs #:allow-other-keys)
-             (call-with-output-file "Paths_pandoc_citeproc.hs"
-               (lambda (port)
-                 (format port "\
-{-# LANGUAGE CPP #-}
-{-# LANGUAGE NoRebindableSyntax #-}
-{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
-module Paths_pandoc_citeproc (version,getDataFileName) where
-import Prelude
-import Data.Version (Version(..))
-import System.Info
-version :: Version
-version = Version [~a] []
-
-datadir :: FilePath
-datadir = \"~a/share/\" ++
-  arch ++ \"-\" ++
-  os ++ \"-\" ++
-  compilerName ++ \"-~a/pandoc-citeproc-~a\"
-
-getDataDir :: IO FilePath
-getDataDir = return datadir
-
-getDataFileName :: FilePath -> IO FilePath
-getDataFileName name = do
-  dir <- getDataDir
-  return (dir ++ \"/\" ++ name)
-"
-                         (string-map (lambda (chr) (if (eq? chr #\.) #\, chr))
-                                     ,(package-version ghc-pandoc-citeproc))
-                         (assoc-ref outputs "out")
-                         ,(package-version ghc)
-                         ,(package-version ghc-pandoc-citeproc))))
-             #t))
-         (add-after 'unpack 'prepare-static-libraries
-           (lambda* (#:key inputs #:allow-other-keys)
-             (mkdir-p (string-append (getcwd) "/static-libs"))
-             (for-each
-              (lambda (input)
-                (when (or (string-prefix? "static-" (car input))
-                          (string-prefix? "ghc" (car input)))
-                  (match (find-files (cdr input) "\\.a$")
-                    ((and (first . rest) libs)
-                     (for-each (lambda (lib)
-                                 (let ((target (string-append (getcwd) "/static-libs/"
-                                                              (basename lib))))
-                                   (unless (file-exists? target)
-                                     (symlink first target))))
-                               libs))
-                    (_ #f))))
-              inputs)
-             #t)))))
-    (inputs
-     (let* ((direct-inputs
-             (cons `("ghc-pandoc" ,pandoc)
-                   (alist-delete "ghc-pandoc"
-                                 (package-inputs ghc-pandoc-citeproc))))
-            (all-static-inputs
-             (map (lambda (pkg)
-                    (list (string-append "static-" (package-name pkg))
-                          pkg "static"))
-                  (delete-duplicates
-                   (append (map cadr direct-inputs)
-                           (filter (lambda (pkg)
-                                     (string-prefix? "ghc-" (package-name pkg)))
-                                   (package-closure
-                                    (map cadr direct-inputs))))))))
-       `(("zlib:static" ,zlib "static")
-         ("pandoc" ,pandoc "lib")
-         ,@all-static-inputs
-         ,@direct-inputs)))
-    (outputs '("out" "lib" "static" "doc"))
-    (synopsis "Pandoc filter for bibliographic references")))
-
 (define-public ghc-pandoc-types
   (package
     (name "ghc-pandoc-types")
-    (version "1.17.6.1")
+    (version "1.22.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -9733,7 +9127,7 @@ getDataFileName name = do
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1d6ygq991ddria71l7hg9yd7lq94sjy4m71rdws1v8hq943c4d0q"))))
+                "0z2j306jsiriwhib0201hsllwyck7qcvqci5c25frwsmknr3mls2"))))
     (build-system haskell-build-system)
     (arguments
      `(#:phases
@@ -9756,15 +9150,14 @@ version = Version [~a] []
 " (string-map (lambda (chr) (if (eq? chr #\.) #\, chr)) ,version))))
              #t)))))
     (inputs
-     `(("ghc-syb" ,ghc-syb)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-string-qq" ,ghc-string-qq)))
-    (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-       ("ghc-hunit" ,ghc-hunit)))
+     (list ghc-syb ghc-aeson))
+    (native-inputs
+     (list ghc-quickcheck
+           ghc-test-framework
+           ghc-test-framework-hunit
+           ghc-test-framework-quickcheck2
+           ghc-string-qq
+           ghc-hunit))
     (home-page "https://pandoc.org")
     (synopsis "Types for representing a structured document")
     (description
@@ -9789,6 +9182,9 @@ building up, manipulating and serialising @code{Pandoc} structures.")
         (base32
          "1xkfi96w6yfpppd0nw1rnszdxmvifwzm699ilv6332ra3akm610p"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("3" "1lv3y3zrdfc09nsiqxg7mzcahgnqi6z9caspd4lvifhhfrqy2722")))
     (home-page "https://hackage.haskell.org/package/parallel")
     (synopsis "Parallel programming library")
     (description
@@ -9817,7 +9213,7 @@ building up, manipulating and serialising @code{Pandoc} structures.")
 (define-public ghc-parser-combinators
   (package
     (name "ghc-parser-combinators")
-    (version "1.1.0")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
@@ -9826,7 +9222,7 @@ building up, manipulating and serialising @code{Pandoc} structures.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "149yhbnrrl108h1jinrsxni3rwrldhphpk9bbmbpr90q5fbl4xmc"))))
+         "0k95nvgnl5820y094yfh7b868l0xd1diclm4kx9560p5rm02w5h3"))))
     (build-system haskell-build-system)
     (home-page "https://github.com/mrkkrp/parser-combinators")
     (synopsis "Commonly useful parser combinators")
@@ -9853,11 +9249,12 @@ combinators.")
     (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy
                                ; -package attoparsec-0.13.0.1"
     (inputs
-     `(("ghc-base-orphans" ,ghc-base-orphans)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-charset" ,ghc-charset)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)))
+     (list ghc-base-orphans
+           ghc-attoparsec
+           ghc-scientific
+           ghc-semigroups
+           ghc-charset
+           ghc-unordered-containers))
     (home-page "https://github.com/ekmett/parsers/")
     (synopsis "Parsing combinators")
     (description "This library provides convenient combinators for working
@@ -9870,7 +9267,7 @@ the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
 (define-public ghc-path
   (package
     (name "ghc-path")
-    (version "0.6.1")
+    (version "0.8.0")
     (source
      (origin
        (method url-fetch)
@@ -9880,25 +9277,21 @@ the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
              ".tar.gz"))
        (sha256
         (base32
-         "0nayla4k1gb821k8y5b9miflv1bi8f0czf9rqr044nrr2dddi2sb"))))
+         "0vzsa41q5sxs1ni72yv1vfpnc6r5mjdwnmdb6jrs6cszb2xlkjr4"))))
     (build-system haskell-build-system)
     (arguments
-     ;; TODO: There are some Windows-related tests and modules that need to be
-     ;; danced around.
-     `(#:tests? #f
-       #:cabal-revision
-       ("1" "05b1zwx2a893h4h5wvgpc5g5pyx71hfmx409rqisd8s1bq1hn463")))
+     `(#:cabal-revision
+       ("1" "02vhx94mqapyigvayb6cj7p7snn354pb542n3qyvsm0gih52wlja")))
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-hashable" ,ghc-hashable)))
+     (list ghc-aeson ghc-hashable))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-genvalidity" ,ghc-genvalidity)
-       ("ghc-genvalidity-property" ,ghc-genvalidity-property)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-validity" ,ghc-validity)))
+     (list ghc-hspec
+           ghc-quickcheck
+           ghc-genvalidity
+           ghc-genvalidity-hspec
+           ghc-genvalidity-property
+           ghc-hspec
+           ghc-validity))
     (home-page
      "https://hackage.haskell.org/package/path")
     (synopsis "Support for well-typed paths")
@@ -9909,7 +9302,7 @@ invariants.")
 (define-public ghc-path-io
   (package
     (name "ghc-path-io")
-    (version "1.4.2")
+    (version "1.6.3")
     (source
      (origin
        (method url-fetch)
@@ -9919,17 +9312,20 @@ invariants.")
              ".tar.gz"))
        (sha256
         (base32
-         "0jqx3mi4an4kb3kg78n1p3xrz832yrfrnvj795b0xhkv6h1z5ir3"))))
+         "1dnc48hf8x83p0jy05qi8j8gmfmsy50swnql9ssdv74lsryp615n"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("3" "0rsr9r2175lf7zcz2sns0mhxkvl21pm50sjidjq5v75nalrsw6rp")))
     (inputs
-     `(("ghc-dlist" ,ghc-dlist)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-path" ,ghc-path)
-       ("ghc-transformers-base" ,ghc-transformers-base)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-temporary" ,ghc-temporary)))
+     (list ghc-dlist
+           ghc-exceptions
+           ghc-path
+           ghc-transformers-base
+           ghc-unix-compat
+           ghc-temporary))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)))
+     (list ghc-hspec))
     (home-page
      "https://github.com/mrkkrp/path-io")
     (synopsis "Functions for manipulating well-typed paths")
@@ -10012,7 +9408,7 @@ rules.")
 (define-public ghc-pcre-light
   (package
     (name "ghc-pcre-light")
-    (version "0.4.0.4")
+    (version "0.4.1.0")
     (source
      (origin
        (method url-fetch)
@@ -10022,14 +9418,14 @@ rules.")
              ".tar.gz"))
        (sha256
         (base32
-         "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82"))))
+         "0lqvsmc6bfhdv6igm3fmw8nklyhw3j3jsl0s1k6r3fhb6ambzxhn"))))
     (build-system haskell-build-system)
     (arguments
      `(#:extra-directories ("pcre")))
     (inputs
-     `(("pcre" ,pcre)))
+     (list pcre))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config ghc-hunit))
     (home-page "https://github.com/Daniel-Diaz/pcre-light")
     (synopsis "Haskell library for Perl 5 compatible regular expressions")
     (description "This package provides a small, efficient, and portable regex
@@ -10041,7 +9437,7 @@ syntax and semantics as Perl 5.")
 (define-public ghc-persistent
   (package
     (name "ghc-persistent")
-    (version "2.10.4")
+    (version "2.13.2.1")
     (source
      (origin
        (method url-fetch)
@@ -10050,39 +9446,41 @@ syntax and semantics as Perl 5.")
              "persistent-" version ".tar.gz"))
        (sha256
         (base32
-         "1cxswz72sqdg2z1nbpgp1k5qr41djgk8qbf8nz7wfppsrhacyffi"))))
-    (build-system haskell-build-system)
-    (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-fast-logger" ,ghc-fast-logger)
-       ("ghc-http-api-data" ,ghc-http-api-data)
-       ("ghc-monad-logger" ,ghc-monad-logger)
-       ("ghc-path-pieces" ,ghc-path-pieces)
-       ("ghc-resource-pool" ,ghc-resource-pool)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-silently" ,ghc-silently)
-       ("ghc-unliftio-core" ,ghc-unliftio-core)
-       ("ghc-unliftio" ,ghc-unliftio)
-       ("ghc-unordered-containers"
-        ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)))
-    (native-inputs `(("ghc-hspec" ,ghc-hspec)))
+         "13lp9i94f57qhifdmr1vnsrra34526f7kqa1sybcaj2jh2v3q85k"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-aeson
+           ghc-attoparsec
+           ghc-base64-bytestring
+           ghc-blaze-html
+           ghc-conduit
+           ghc-fast-logger
+           ghc-http-api-data
+           ghc-lift-type
+           ghc-monad-logger
+           ghc-path-pieces
+           ghc-resource-pool
+           ghc-resourcet
+           ghc-scientific
+           ghc-silently
+           ghc-th-lift-instances
+           ghc-unliftio-core
+           ghc-unliftio
+           ghc-unordered-containers
+           ghc-vector))
+    (native-inputs
+     (list ghc-hspec ghc-quickcheck ghc-quickcheck-instances
+           ghc-shakespeare))
     (home-page "https://www.yesodweb.com/book/persistent")
     (synopsis "Type-safe, multi-backend data serialization for Haskell")
     (description "This Haskell package allows Haskell programs to access data
-storage systems like PostgreSQL, SQLite, MySQL and MongoDB in a type-safe
-way.")
+storage systems like PostgreSQL, SQLite, and MariaDB in a type-safe way.")
     (license license:expat)))
 
 (define-public ghc-persistent-sqlite
   (package
     (name "ghc-persistent-sqlite")
-    (version "2.10.5.2")
+    (version "2.13.0.3")
     (source
      (origin
        (method url-fetch)
@@ -10091,31 +9489,29 @@ way.")
              "persistent-sqlite-" version ".tar.gz"))
        (sha256
         (base32
-         "0agag3cgivl6mk38pqzr0qw5lxps9p2bgdwvi5658l46hs7bixxn"))))
-    (build-system haskell-build-system)
-    (inputs
-     `(("ghc-persistent" ,ghc-persistent)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-microlens-th" ,ghc-microlens-th)
-       ("ghc-monad-logger" ,ghc-monad-logger)
-       ("ghc-resource-pool" ,ghc-resource-pool)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-unliftio-core" ,ghc-unliftio-core)
-       ("ghc-unordered-containers"
-        ,ghc-unordered-containers)))
-    (native-inputs
-     `(("ghc-persistent-template"
-        ,ghc-persistent-template)
-       ("ghc-persistent-test" ,ghc-persistent-test)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-fast-logger" ,ghc-fast-logger)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-system-fileio" ,ghc-system-fileio)
-       ("ghc-system-filepath" ,ghc-system-filepath)
-       ("ghc-temporary" ,ghc-temporary)))
+         "12za89crbk74mya4qxpw5fp5fqp64vwz5s8vbjd7m8r3j3vbw338"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-persistent
+           ghc-aeson
+           ghc-conduit
+           ghc-microlens-th
+           ghc-monad-logger
+           ghc-resource-pool
+           ghc-resourcet
+           ghc-unliftio-core
+           ghc-unordered-containers))
+    (native-inputs
+     (list ghc-persistent-template
+           ghc-persistent-test
+           ghc-exceptions
+           ghc-fast-logger
+           ghc-hspec
+           ghc-hunit
+           ghc-quickcheck
+           ghc-system-fileio
+           ghc-system-filepath
+           ghc-temporary))
     (home-page
      "https://www.yesodweb.com/book/persistent")
     (synopsis "Backend for the persistent library using sqlite3")
@@ -10127,7 +9523,7 @@ system dependencies.")
 (define-public ghc-persistent-template
   (package
     (name "ghc-persistent-template")
-    (version "2.8.0")
+    (version "2.12.0.0")
     (source
      (origin
        (method url-fetch)
@@ -10136,21 +9532,19 @@ system dependencies.")
              "persistent-template-" version ".tar.gz"))
        (sha256
         (base32
-         "16yjrl0gh4jbs4skr7iv6a55lny59bqhd6hjmvch1cl9j5d0c0g3"))))
+         "0c9cs27j43azimj74s2m2cdks87682ibpy1xbyzvygipgmb8nj6w"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-persistent" ,ghc-persistent)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-http-api-data" ,ghc-http-api-data)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-monad-logger" ,ghc-monad-logger)
-       ("ghc-path-pieces" ,ghc-path-pieces)
-       ("ghc-th-lift-instances" ,ghc-th-lift-instances)
-       ("ghc-unordered-containers"
-        ,ghc-unordered-containers)))
+     (list ghc-persistent
+           ghc-aeson
+           ghc-http-api-data
+           ghc-monad-control
+           ghc-monad-logger
+           ghc-path-pieces
+           ghc-th-lift-instances
+           ghc-unordered-containers))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-hspec ghc-quickcheck))
     (home-page "https://www.yesodweb.com/book/persistent")
     (synopsis "Type-safe, non-relational, multi-backend persistence")
     (description "This Haskell package provides interfaces and helper
@@ -10160,7 +9554,7 @@ functions for the ghc-persistent package.")
 (define-public ghc-persistent-test
   (package
     (name "ghc-persistent-test")
-    (version "2.0.3.1")
+    (version "2.13.0.3")
     (source
      (origin
        (method url-fetch)
@@ -10169,29 +9563,26 @@ functions for the ghc-persistent package.")
              "persistent-test-" version ".tar.gz"))
        (sha256
         (base32
-         "11aq5cy0n43jamf6mg4sr4300bc2zdbjxsczzxwjkb4hzs0ijsdv"))))
+         "07q53jvhz00cf10k7a8fkvykgwcl10fgzh8k9gv1d248f336crvs"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-monad-logger" ,ghc-monad-logger)
-       ("ghc-path-pieces" ,ghc-path-pieces)
-       ("ghc-persistent" ,ghc-persistent)
-       ("ghc-persistent-template" ,ghc-persistent-template)
-       ("ghc-random" ,ghc-random)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-transformers-base" ,ghc-transformers-base)
-       ("ghc-unliftio" ,ghc-unliftio)
-       ("ghc-unliftio-core" ,ghc-unliftio-core)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)))
-    (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-hspec-expectations" ,ghc-hspec-expectations)
-       ("ghc-hunit" ,ghc-hunit)))
+     (list ghc-aeson
+           ghc-blaze-html
+           ghc-conduit
+           ghc-monad-control
+           ghc-monad-logger
+           ghc-path-pieces
+           ghc-persistent
+           ghc-persistent-template
+           ghc-random
+           ghc-resourcet
+           ghc-transformers-base
+           ghc-unliftio
+           ghc-unliftio-core
+           ghc-unordered-containers))
+    (native-inputs
+     (list ghc-quickcheck ghc-quickcheck-instances ghc-hspec
+           ghc-hspec-expectations ghc-hunit))
     (home-page "https://www.yesodweb.com/book/persistent")
     (synopsis "Tests for the Persistent database library")
     (description
@@ -10216,13 +9607,10 @@ libraries.")
          "15g6qh0fb7kjj3l0w8cama7cxgnhnhybw760md9yy7cqfq15cfzg"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-vector" ,ghc-vector)))
+     (list ghc-vector))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-doctest" ,ghc-doctest)))
+     (list ghc-hunit ghc-tasty ghc-tasty-hunit ghc-tasty-quickcheck
+           ghc-doctest))
     (home-page
      "https://github.com/quchen/pgp-wordlist")
     (synopsis
@@ -10242,7 +9630,7 @@ For further information, see
 (define-public ghc-pipes
   (package
     (name "ghc-pipes")
-    (version "4.3.13")
+    (version "4.3.16")
     (source
      (origin
        (method url-fetch)
@@ -10251,18 +9639,13 @@ For further information, see
              "pipes-" version ".tar.gz"))
        (sha256
         (base32
-         "1ch3xr5f5if0psd3lsyrpkwrgh36synnzqcpimghprys68l4zfkn"))))
+         "163lx5sf68zx5kik5h1fjsyckwr9shdsn5k2dsjq3mhg077nxqgl"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-mmorph" ,ghc-mmorph)
-       ("ghc-void" ,ghc-void)
-       ("ghc-semigroups" ,ghc-semigroups)))
+     (list ghc-exceptions ghc-mmorph ghc-void ghc-semigroups))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-quickcheck2"
-        ,ghc-test-framework-quickcheck2)))
+     (list ghc-quickcheck ghc-test-framework
+           ghc-test-framework-quickcheck2))
     (home-page
      "https://hackage.haskell.org/package/pipes")
     (synopsis "Compositional pipelines")
@@ -10310,7 +9693,7 @@ other end when progressing past the actual edge.")
 (define-public ghc-polyparse
   (package
     (name "ghc-polyparse")
-    (version "1.12.1")
+    (version "1.13")
     (source
      (origin
        (method url-fetch)
@@ -10320,8 +9703,11 @@ other end when progressing past the actual edge.")
              ".tar.gz"))
        (sha256
         (base32
-         "19fs18g7fvfdkm9zy28cgighjcxfa6mcpqgyp6whmsjkb3h393fx"))))
+         "0yvhg718dlksiw3v27m2d8m1sn4r4f5s0p56zq3lynhy1sc74k0w"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("2" "1n5q6w7x46cvcq7j1pg9jx9h72vcsc5di35rbkmwgjw6pq4w4gfl")))
     (home-page
      "http://code.haskell.org/~malcolm/polyparse/")
     (synopsis
@@ -10338,7 +9724,7 @@ Strings.")
 (define-public ghc-pqueue
   (package
     (name "ghc-pqueue")
-    (version "1.4.1.2")
+    (version "1.4.1.3")
     (source
      (origin
        (method url-fetch)
@@ -10346,10 +9732,10 @@ Strings.")
                            "pqueue/pqueue-" version ".tar.gz"))
        (sha256
         (base32
-         "1v4zhv2sc1zsw91hvnarkjhayx2dnf7ccxz6rrhsqpcs0szaranj"))))
+         "1sz7hlnfd86hbwrgqxczmsjsl1ki0ryi9dgzscxlsgjkdgcdia2p"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-quickcheck))
     (home-page "https://hackage.haskell.org/package/pqueue")
     (synopsis "Reliable, persistent, fast priority queues")
     (description
@@ -10403,23 +9789,25 @@ types.")
 (define-public ghc-prettyprinter
   (package
     (name "ghc-prettyprinter")
-    (version "1.2.1.1")
+    (version "1.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/prettyprinter/prettyprinter-"
+             "https://hackage.haskell.org/package/prettyprinter/prettyprinter-"
              version
              ".tar.gz"))
        (sha256
-        (base32 "1p9c3q55hba4c0zyxc624g5df7wgsclpsmd8wqpdnmib882q9d1v"))))
+        (base32 "0i8b3wjjpdvp5b857j065jwyrpgcnzgk75imrj7i3yhl668acvjy"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-doctest" ,ghc-doctest)
-       ("ghc-pgp-wordlist" ,ghc-pgp-wordlist)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+     (list ghc-doctest
+           ghc-pgp-wordlist
+           ghc-quickcheck
+           ghc-quickcheck-instances
+           ghc-tasty
+           ghc-tasty-hunit
+           ghc-tasty-quickcheck))
     (home-page "https://github.com/quchen/prettyprinter")
     (synopsis
      "Modern, easy to use, well-documented, extensible pretty-printer")
@@ -10429,40 +9817,22 @@ ANSI terminal backend exists, HTML backend is trivial to implement, no name
 clashes, @code{Text}-based, extensible.")
     (license license:bsd-2)))
 
-(define-public ghc-prettyprinter-1.6
-  (package
-    (inherit ghc-prettyprinter)
-    (version "1.6.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "mirror://hackage/package/prettyprinter/prettyprinter-"
-             version
-             ".tar.gz"))
-       (sha256
-        (base32 "10fphxh8lvdaw7i8jyllwmj87w02db92mf99zfw5vddp9mv6b5rz"))))
-    (inputs
-     `(("ghc-quickckeck-instances" , ghc-quickcheck-instances)
-       ,@(package-inputs ghc-prettyprinter)))))
-
 (define-public ghc-prettyprinter-ansi-terminal
   (package
     (name "ghc-prettyprinter-ansi-terminal")
-    (version "1.1.1.2")
+    (version "1.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/prettyprinter-ansi-terminal/"
+             "https://hackage.haskell.org/package/prettyprinter-ansi-terminal/"
              "prettyprinter-ansi-terminal-" version ".tar.gz"))
        (sha256
-        (base32 "0ha6vz707qzb5ky7kdsnw2zgphg2dnxrpbrxy8gaw119vwhb9q6k"))))
+        (base32 "1cqxbcmy9ykk4pssq5hp6h51g2h547zfz549awh0c1fni8q3jdw1"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-prettyprinter" ,ghc-prettyprinter-1.6)))
-    (native-inputs `(("ghc-doctest" ,ghc-doctest)))
+     (list ghc-ansi-terminal ghc-prettyprinter))
+    (native-inputs (list ghc-doctest))
     (home-page
      "https://github.com/quchen/prettyprinter")
     (synopsis
@@ -10473,7 +9843,7 @@ clashes, @code{Text}-based, extensible.")
 (define-public ghc-pretty-hex
   (package
     (name "ghc-pretty-hex")
-    (version "1.0")
+    (version "1.1")
     (source
      (origin
        (method url-fetch)
@@ -10482,7 +9852,7 @@ clashes, @code{Text}-based, extensible.")
                            "pretty-hex-" version ".tar.gz"))
        (sha256
         (base32
-         "0ylwkvvjvmpprha9nx83xb8gkhyanhk5fffc0r7lb96n4ch5z6pz"))))
+         "0c8pa0rdb2q8rf4acy4gww0hj5lrzclzdh52yi2aiaaij4lqzir7"))))
     (build-system haskell-build-system)
     (home-page "https://github.com/GaloisInc/hexdump")
     (synopsis "Haskell library for hex dumps of ByteStrings")
@@ -10493,7 +9863,7 @@ ByteStrings in the style of other common *nix hex dump tools.")
 (define-public ghc-pretty-show
   (package
     (name "ghc-pretty-show")
-    (version "1.9.5")
+    (version "1.10")
     (source
      (origin
        (method url-fetch)
@@ -10501,11 +9871,10 @@ ByteStrings in the style of other common *nix hex dump tools.")
                            "pretty-show-" version ".tar.gz"))
        (sha256
         (base32
-         "0gs2pabi4qa4b0r5vffpf9b1cf5n9y2939a3lljjw7cmg6xvx5dh"))))
+         "1lkgvbv00v1amvpqli6y4dzsbs25l4v3wlagvhwx8qxhw2390zrh"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-haskell-lexer" ,ghc-haskell-lexer)
-       ("ghc-happy" ,ghc-happy)))
+     (list ghc-haskell-lexer ghc-happy))
     (home-page "https://wiki.github.com/yav/pretty-show")
     (synopsis "Tools for working with derived `Show` instances")
     (description
@@ -10521,23 +9890,22 @@ examination.")
 (define-public ghc-pretty-simple
   (package
     (name "ghc-pretty-simple")
-    (version "2.2.0.1")
+    (version "4.0.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/pretty-simple/"
+             "https://hackage.haskell.org/package/pretty-simple/"
              "pretty-simple-" version ".tar.gz"))
        (sha256
-        (base32 "0wsi9235ihm15s145lxi7325vv2k4bhighc5m88kn1lk0pl81aqq"))))
+        (base32 "1srvx854ml2gffnkxr2fm12xk8syjsk078rfzrq0a3idwgv46myw"))))
     (build-system haskell-build-system)
+
     (inputs
-     `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-glob" ,ghc-glob)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-aeson" ,ghc-aeson)))
+     (list ghc-aeson ghc-optparse-applicative
+           ghc-prettyprinter-ansi-terminal ghc-prettyprinter))
     (native-inputs
-     `(("ghc-doctest" ,ghc-doctest)))
+     (list cabal-doctest ghc-doctest ghc-glob ghc-quickcheck))
     (home-page "https://github.com/cdepillabout/pretty-simple")
     (synopsis "Pretty printer for data types with a 'Show' instance")
     (description
@@ -10548,8 +9916,7 @@ Show instance.")
 (define-public ghc-primitive
   (package
     (name "ghc-primitive")
-    (version "0.6.4.0")
-    (outputs '("out" "static" "doc"))
+    (version "0.7.2.0")
     (source
      (origin
        (method url-fetch)
@@ -10559,11 +9926,17 @@ Show instance.")
              ".tar.gz"))
        (sha256
         (base32
-         "0r0cda7acvplgwaxy69kviv4jp7kkfi038by68gj4yfx4iwszgjc"))))
+         "1facmq2wxhn5mbgd209zz5swyaw1q970fv3hd84klaxrhabqaxwi"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:cabal-revision
-       ("1" "18a14k1yiam1m4l29rin9a0y53yp3nxvkz358nysld8aqwy2qsjv")))
+    (arguments `(#:tests? #f)) ; TODO: Loops.
+;    (native-inputs
+;     `(("ghc-base-orphans" ,ghc-base-orphans)
+;       ("ghc-quickcheck-classes-base" ,ghc-quickcheck-classes-base)
+;       ("ghc-quickcheck" ,ghc-quickcheck)
+;       ("ghc-tasty" ,ghc-tasty)
+;       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+;       ("ghc-tagged" ,ghc-tagged)
+;       ("ghc-transformers-compat" ,ghc-transformers-compat)))
     (home-page
      "https://github.com/haskell/primitive")
     (synopsis "Primitive memory-related operations")
@@ -10587,10 +9960,7 @@ Show instance.")
          "0klqgr37f1z2z6i0a9b0giapmq0p35l5k9kz1p7f0k1597w7agi9"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-data-default" ,ghc-data-default)
-       ("ghc-generic-deriving" ,ghc-generic-deriving)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-listlike" ,ghc-listlike)))
+     (list ghc-data-default ghc-generic-deriving ghc-hunit ghc-listlike))
     (home-page "https://github.com/seereason/process-extras")
     (synopsis "Extra tools for managing processes")
     (description "This package extends
@@ -10604,7 +9974,7 @@ API.")
 (define-public ghc-profunctors
   (package
     (name "ghc-profunctors")
-    (version "5.3")
+    (version "5.6.2")
     (source
      (origin
        (method url-fetch)
@@ -10614,17 +9984,17 @@ API.")
              ".tar.gz"))
        (sha256
         (base32
-         "1dx3nkc27yxsrbrhh3iwhq7dl1xn6bj7n62yx6nh8vmpbg62lqvl"))))
+         "0an9v003ivxmjid0s51qznbjhd5fsa1dkcfsrhxllnjja1xmv5b5"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
     (inputs
-     `(("ghc-base-orphans" ,ghc-base-orphans)
-       ("ghc-bifunctors" ,ghc-bifunctors)
-       ("ghc-comonad" ,ghc-comonad)
-       ("ghc-contravariant" ,ghc-contravariant)
-       ("ghc-distributive" ,ghc-distributive)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-tagged" ,ghc-tagged)))
+     (list ghc-base-orphans
+           ghc-bifunctors
+           ghc-comonad
+           ghc-contravariant
+           ghc-distributive
+           ghc-semigroups
+           ghc-tagged))
     (home-page "https://github.com/ekmett/profunctors/")
     (synopsis "Profunctors for Haskell")
     (description "This library provides profunctors for Haskell.")
@@ -10633,7 +10003,7 @@ API.")
 (define-public ghc-project-template
   (package
     (name "ghc-project-template")
-    (version "0.2.0.1")
+    (version "0.2.1.0")
     (source
      (origin
        (method url-fetch)
@@ -10642,21 +10012,13 @@ API.")
              version ".tar.gz"))
        (sha256
         (base32
-         "1p69ww4rhah2qxragl615wl4a6mk4x9w09am8knmz3s4lxpljlpb"))))
+         "0ac43x36i6b595jhflif1qqhri1rrqw90ama5n7rsh0ffnzyb69d"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-resourcet" ,ghc-resourcet)))
+     (list ghc-base64-bytestring ghc-conduit ghc-conduit-extra
+           ghc-resourcet))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
-    (arguments
-     `(#:cabal-revision
-       ("1"
-        "0lq3sqnq0nr0gbvgzp0lqdl3j3mqdmdlf8xsw0j3pjh581xj3k0a")))
+     (list ghc-hspec hspec-discover ghc-quickcheck))
     (home-page "https://github.com/fpco/haskell-ide")
     (synopsis "Specify Haskell project templates and generate files")
     (description
@@ -10673,23 +10035,21 @@ the ideal templating system.")
 (define-public ghc-protolude
   (package
     (name "ghc-protolude")
-    (version "0.2.3")
+    (version "0.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/protolude/protolude-"
+             "https://hackage.haskell.org/package/protolude/protolude-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "0zzkyxz0vmcbncpid7gp72fpjj0fla3gqhlfkij5c5lg12skjgfj"))))
+         "1b6wprbwfdjyvds2bm6na0fbqgzdkj5ikkk33whbkyh3krd3i0s0"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-async" ,ghc-async)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-mtl-compat" ,ghc-mtl-compat)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)))
+     (list ghc-async ghc-hashable ghc-mtl-compat ghc-paths
+           ghc-transformers-compat))
     (home-page "https://github.com/protolude/protolude")
     (synopsis "Sensible set of defaults for writing custom Preludes")
     (description
@@ -10697,22 +10057,6 @@ the ideal templating system.")
 replace the standard one provided by GHC.")
     (license license:expat)))
 
-(define-public ghc-protolude-0.3
-  (package
-    (inherit ghc-protolude)
-    (name "ghc-protolude")
-    (version "0.3.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "mirror://hackage/package/protolude/protolude-"
-             version
-             ".tar.gz"))
-       (sha256
-        (base32
-         "1b6wprbwfdjyvds2bm6na0fbqgzdkj5ikkk33whbkyh3krd3i0s0"))))))
-
 (define-public ghc-psqueue
   (package
     (name "ghc-psqueue")
@@ -10725,6 +10069,9 @@ replace the standard one provided by GHC.")
                (base32
                 "1cik7sw10sacsijmfhghzy54gm1qcyxw14shlp86lx8z89kcnkza"))))
     (build-system haskell-build-system)
+    (arguments
+     '(#:cabal-revision
+       ("2" "0n1yrv1x1dxbjn9hjr8lk4k5in9c75ixzldlmszayi26bvax7329")))
     (home-page "https://hackage.haskell.org/package/PSQueue")
     (synopsis "Priority search queue")
     (description
@@ -10750,15 +10097,19 @@ keys, in linear time.")
         (base32
          "1yckx2csqswghiy9nfj03cybmza8104nmnpbpcc9ngwlbmakn9i6"))))
     (build-system haskell-build-system)
+    (arguments
+     '(#:tests? #f ; TODO: Needs quickcheck<2.14
+       #:cabal-revision
+       ("1" "0d0mm3c8x31dasfzp1884r2irkm3c9irvvbahjzfr1bzzxfb7vyv")))
     (inputs
-     `(("ghc-hashable" ,ghc-hashable)))
+     (list ghc-hashable))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+     (list ghc-hunit
+           ghc-quickcheck
+           ghc-tagged
+           ghc-tasty
+           ghc-tasty-hunit
+           ghc-tasty-quickcheck))
     (home-page "https://github.com/jaspervdj/psqueues")
     (synopsis "Pure priority search queues")
     (description "The psqueues package provides
@@ -10816,10 +10167,7 @@ Typical applications of Priority Search Queues include:
          "1cpvlwzg3qznhygrr78f75p65mnljd9v5cvnagfxjqppnrkay6bj"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-cryptohash" ,ghc-cryptohash)
-       ("ghc-random" ,ghc-random)
-       ("ghc-byteable" ,ghc-byteable)))
+     (list ghc-base64-bytestring ghc-cryptohash ghc-random ghc-byteable))
     (home-page "https://github.com/PeterScott/pwstore")
     (synopsis "Secure password storage")
     (description
@@ -10834,7 +10182,7 @@ usable.")
 (define-public ghc-random
   (package
     (name "ghc-random")
-    (version "1.1")
+    (version "1.2.0")
     (outputs '("out" "static" "doc"))
     (source
      (origin
@@ -10844,14 +10192,41 @@ usable.")
              version
              ".tar.gz"))
        (sha256
-        (base32 "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"))))
+        (base32 "1pmr7zbbqg58kihhhwj8figf5jdchhi7ik2apsyxbgsqq3vrqlg4"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:tests? #f
+       #:cabal-revision
+       ("6" "1hzfz9b1cxrsya8i53yx145iypaakfsfjix7l8girhx7vbz0cm8r")))
+    (inputs `(("ghc-splitmix" ,ghc-splitmix-bootstrap)))
+   ;; ghc-random is widely used and causes quite a few loops.
+;    (native-inputs
+;     `(("ghc-doctest" ,ghc-doctest)
+;       ("ghc-mwc-random" ,ghc-mwc-random)
+;       ("ghc-primitive" ,ghc-primitive)
+;       ("ghc-unliftio" ,ghc-unliftio)
+;       ("ghc-vector" ,ghc-vector)
+;       ("ghc-smallcheck" ,ghc-smallcheck)
+;       ("ghc-tasty" ,ghc-tasty)
+;       ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
+;       ("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)
+;       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
     (home-page "https://hackage.haskell.org/package/random")
     (synopsis "Random number library")
     (description "This package provides a basic random number generation
 library, including the ability to split random number generators.")
     (license license:bsd-3)))
 
+(define-public ghc-random-bootstrap
+  (package
+    (inherit ghc-random)
+    (name "ghc-random-bootstrap")
+    (arguments
+     `(#:tests? #f
+       ,@(package-arguments ghc-random)))
+    (native-inputs '())
+    (properties '((hidden? #t)))))
+
 (define-public ghc-raw-strings-qq
   (package
     (name "ghc-raw-strings-qq")
@@ -10866,7 +10241,7 @@ library, including the ability to split random number generators.")
         (base32
          "1lxy1wy3awf52968iy5y9r5z4qgnn2sxkdrh7js3m9gadb11w09f"))))
     (build-system haskell-build-system)
-    (native-inputs `(("ghc-hunit" ,ghc-hunit)))
+    (native-inputs (list ghc-hunit))
     (home-page "https://github.com/23Skidoo/raw-strings-qq")
     (synopsis "Raw string literals for Haskell")
     (description
@@ -10900,7 +10275,7 @@ includes efficient implementations for common data types.")
 (define-public ghc-rebase
   (package
     (name "ghc-rebase")
-    (version "1.3.1.1")
+    (version "1.13.0.1")
     (source
      (origin
        (method url-fetch)
@@ -10909,24 +10284,26 @@ includes efficient implementations for common data types.")
                            "rebase-" version ".tar.gz"))
        (sha256
         (base32
-         "0q4m2fa7wkgxs0grir8rlqwibasmi3s1x7c107ynndwfm62nzv0a"))))
+         "0sh1vha10n28c4jb97p99xglghqph8ppydqzbnb2h25a34057927"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
-    (inputs `(("ghc-hashable" ,ghc-hashable)
-              ("ghc-vector" ,ghc-vector)
-              ("ghc-unordered-containers" ,ghc-unordered-containers)
-              ("ghc-scientific" ,ghc-scientific)
-              ("ghc-uuid" ,ghc-uuid)
-              ("ghc-dlist" ,ghc-dlist)
-              ("ghc-void" ,ghc-void)
-              ("ghc-bifunctors" ,ghc-bifunctors)
-              ("ghc-profunctors" ,ghc-profunctors)
-              ("ghc-contravariant" ,ghc-contravariant)
-              ("ghc-contravariant-extras" ,ghc-contravariant-extras)
-              ("ghc-semigroups" ,ghc-semigroups)
-              ("ghc-either" ,ghc-either)
-              ("ghc-fail" ,ghc-fail)
-              ("ghc-base-prelude" ,ghc-base-prelude)))
+    (inputs
+     (list ghc-bifunctors
+           ghc-comonad
+           ghc-contravariant
+           ghc-dlist
+           ghc-either
+           ghc-hashable
+           ghc-hashable-time
+           ghc-profunctors
+           ghc-scientific
+           ghc-selective
+           ghc-semigroupoids
+           ghc-unordered-containers
+           ghc-uuid-types
+           ghc-vector
+           ghc-vector-instances
+           ghc-void))
     (home-page "https://github.com/nikita-volkov/rebase")
     (synopsis "Progressive alternative to the base package
 for Haskell")
@@ -10968,12 +10345,12 @@ the community, with the missing features being added with pull-requests.")
         (base32
          "09wf8pl9ycglcv6qj5ba26gkg2s5iy81hsx9xp0q8na0cwvp71ki"))))
     (build-system haskell-build-system)
+    (arguments
+     '(#:cabal-revision
+       ("2" "1kd38n9h2hxl09khvkvkhnflgm6rbky1zkw3iazlpb8xk9zkk39s")))
     (inputs
-     `(("ghc-fingertree" ,ghc-fingertree)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-semigroupoids" ,ghc-semigroupoids)
-       ("ghc-semigroups" ,ghc-semigroups)))
+     (list ghc-fingertree ghc-hashable ghc-unordered-containers
+           ghc-semigroupoids ghc-semigroups))
     (home-page "https://github.com/ekmett/reducers/")
     (synopsis "Semigroups, specialized containers and a general map/reduce framework")
     (description "This library provides various semigroups, specialized
@@ -11005,7 +10382,7 @@ specify refactorings without depending on GHC.")
 (define-public ghc-reflection
   (package
     (name "ghc-reflection")
-    (version "2.1.5")
+    (version "2.1.6")
     (source
      (origin
        (method url-fetch)
@@ -11015,13 +10392,11 @@ specify refactorings without depending on GHC.")
              ".tar.gz"))
        (sha256
         (base32
-         "0xr947nj1vww5b8fwqmypxm3y3j5sxl4z8wnf834f83jzfzyjbi7"))))
+         "1kd6dgnp99dzbkxdnj01g81j03v7zq5cwg0sf19rlcmvgs8i8gmz"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-tagged" ,ghc-tagged)))
+    (inputs (list ghc-tagged))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec ghc-quickcheck hspec-discover))
     (home-page "https://github.com/ekmett/reflection")
     (synopsis "Reify arbitrary terms into types that can be reflected back
 into terms")
@@ -11034,7 +10409,7 @@ configurations to coexist without resorting to mutable global variables or
 (define-public ghc-regex
   (package
     (name "ghc-regex")
-    (version "1.0.2.0")
+    (version "1.1.0.0")
     (source
      (origin
        (method url-fetch)
@@ -11042,7 +10417,7 @@ configurations to coexist without resorting to mutable global variables or
                            "regex-" version ".tar.gz"))
        (sha256
         (base32
-         "1f2z025hif1fr24b5khq3qxxyvpxrnhyx8xmbms332arw28rpkda"))))
+         "02hxgy5ck3h5pwd5gzs4565qbql8457cjdbbc2yrk236qzc1qa8x"))))
     (build-system haskell-build-system)
     (arguments
      `(#:phases
@@ -11056,15 +10431,14 @@ configurations to coexist without resorting to mutable global variables or
                 "template-haskell >= 2.7\n"))
              #t)))))
     (inputs
-     `(("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-regex-base" ,ghc-regex-base)
-       ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
-       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
-       ("ghc-regex-tdfa-text" ,ghc-regex-tdfa-text)
-       ("ghc-time-locale-compat" ,ghc-time-locale-compat)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-utf8-string" ,ghc-utf8-string)))
+     (list ghc-base-compat
+           ghc-hashable
+           ghc-regex-base
+           ghc-regex-pcre-builtin
+           ghc-regex-tdfa
+           ghc-time-locale-compat
+           ghc-unordered-containers
+           ghc-utf8-string))
     (home-page "http://regex.uk")
     (synopsis "Toolkit for regex-base")
     (description
@@ -11079,7 +10453,7 @@ copious examples.")
 (define-public ghc-regex-applicative
   (package
     (name "ghc-regex-applicative")
-    (version "0.3.3.1")
+    (version "0.3.4")
     (source
      (origin
        (method url-fetch)
@@ -11088,13 +10462,11 @@ copious examples.")
              "regex-applicative-" version ".tar.gz"))
        (sha256
         (base32
-         "0p0anx5vamrhrdvviwkh2zn6pa3pv2bjb7nfyc7dvz2q7g14y1lg"))))
+         "0di66pi2kq5rrsn0k6pwakzwa0bgi9jfb2csm72kp5gzqdws8s8p"))))
     (build-system haskell-build-system)
-    (inputs
-     `(("ghc-smallcheck" ,ghc-smallcheck)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+    (inputs (list ghc-filtrable))
+    (native-inputs
+     (list ghc-smallcheck ghc-tasty ghc-tasty-hunit ghc-tasty-smallcheck))
     (home-page "https://github.com/feuerbach/regex-applicative")
     (synopsis "Regex-based parsing with applicative interface")
     (description
@@ -11105,7 +10477,7 @@ regular expressions.  Parsers can be built using Applicative interface.")
 (define-public ghc-regex-base
   (package
     (name "ghc-regex-base")
-    (version "0.93.2")
+    (version "0.94.0.1")
     (source
      (origin
        (method url-fetch)
@@ -11115,7 +10487,7 @@ regular expressions.  Parsers can be built using Applicative interface.")
              ".tar.gz"))
        (sha256
         (base32
-         "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10"))))
+         "1ngdmmrxs1rhvib052c6shfa40yad82jylylikz327r0zxpxkcbi"))))
     (build-system haskell-build-system)
     (home-page
      "https://sourceforge.net/projects/lazy-regex")
@@ -11127,7 +10499,7 @@ regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.")
 (define-public ghc-regex-compat
   (package
     (name "ghc-regex-compat")
-    (version "0.95.1")
+    (version "0.95.2.1")
     (source
      (origin
        (method url-fetch)
@@ -11137,11 +10509,10 @@ regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.")
              ".tar.gz"))
        (sha256
         (base32
-         "0fwmima3f04p9y4h3c23493n1xj629ia2dxaisqm6rynljjv2z6m"))))
+         "0ivrdrcphrz3g6nr5wbsmfiv8i82caw0kf6z5qlmlq7xf9n3hywg"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-regex-base" ,ghc-regex-base)
-       ("ghc-regex-posix" ,ghc-regex-posix)))
+     (list ghc-regex-base ghc-regex-posix))
     (home-page "https://sourceforge.net/projects/lazy-regex")
     (synopsis "Replaces/Enhances Text.Regex")
     (description "This library provides one module layer over
@@ -11163,8 +10534,7 @@ regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.")
          "1p90fn90yhp7fvljjdqjp41cszidcfz4pw7fwvzyx4739b98x8sg"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-regex-base" ,ghc-regex-base)
-       ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
+     (list ghc-regex-base ghc-regex-tdfa))
     (home-page "https://hub.darcs.net/shelarcy/regex-compat-tdfa")
     (synopsis "Unicode Support version of Text.Regex, using regex-tdfa")
     (description
@@ -11177,20 +10547,22 @@ this problem.")
 (define-public ghc-regex-pcre
   (package
     (name "ghc-regex-pcre")
-    (version "0.94.4")
+    (version "0.95.0.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "regex-pcre/regex-pcre-" version ".tar.gz"))
               (sha256
                (base32
-                "1h16w994g9s62iwkdqa7bar2n9cfixmkzz2rm8svm960qr57valf"))))
+                "0nn76q4bsjnxim0j0d01jifmh36as9jdpcvm001a851vvq86zb8n"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:extra-directories ("pcre")))
+     `(#:extra-directories ("pcre")
+       #:cabal-revision
+       ("3" "1mxy2y7dmv37hhsasm17x2mb9dhmzza13pc7jfrk77inpig78ib8")))
+    (native-inputs (list pkg-config))
     (inputs
-     `(("ghc-regex-base" ,ghc-regex-base)
-       ("pcre" ,pcre)))
+     (list ghc-regex-base pcre))
     (home-page "https://hackage.haskell.org/package/regex-pcre")
     (synopsis "Enhancement of the builtin Text.Regex library")
     (description
@@ -11202,7 +10574,7 @@ expressions.")
 (define-public ghc-regex-pcre-builtin
   (package
     (name "ghc-regex-pcre-builtin")
-    (version "0.94.5.8.8.35")
+    (version "0.95.2.3.8.44")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -11210,10 +10582,10 @@ expressions.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1s755qdg1mxrf125sh83bsc5kjkrj8fkq8wf6dg1jan86c7p7gl4"))))
+                "0pn55ssrwr05c9sa9jvp0knvzjksz04wn3pmzf5dz4xgbyjadkna"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-regex-base" ,ghc-regex-base)))
+     (list ghc-regex-base))
     (home-page "https://hackage.haskell.org/package/regex-pcre-builtin")
     (synopsis "Enhancement of the builtin Text.Regex library")
     (description
@@ -11225,7 +10597,7 @@ providing the PCRE backend to accompany regex-base, with bundled code from
 (define-public ghc-regex-posix
   (package
     (name "ghc-regex-posix")
-    (version "0.95.2")
+    (version "0.96.0.1")
     (source
      (origin
        (method url-fetch)
@@ -11235,10 +10607,10 @@ providing the PCRE backend to accompany regex-base, with bundled code from
              ".tar.gz"))
        (sha256
         (base32
-         "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an"))))
+         "1715b57z67q4hg0jz44wkxrxi3v7n5iagw6gw48pf8hr34wpr0n7"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-regex-base" ,ghc-regex-base)))
+     (list ghc-regex-base))
     (home-page "https://sourceforge.net/projects/lazy-regex")
     (synopsis "POSIX regular expressions for Haskell")
     (description "This library provides the POSIX regex backend used by the
@@ -11248,7 +10620,7 @@ Haskell library @code{regex-base}.")
 (define-public ghc-regex-tdfa
   (package
     (name "ghc-regex-tdfa")
-    (version "1.2.3.2")
+    (version "1.3.1.1")
     (source
      (origin
        (method url-fetch)
@@ -11257,11 +10629,14 @@ Haskell library @code{regex-base}.")
              version ".tar.gz"))
        (sha256
         (base32
-         "03yhpqrqz977nwlnhnyz9dacnbzw8xb6j18h365rkgmbc05sb3hf"))))
+         "1msrq31k4jmn2lmrdzn87jqarqhw265ca69rfg5jpa5adrzm3gmi"))))
     (build-system haskell-build-system)
-    (outputs '("out" "static" "doc"))
+    (arguments
+     '(#:cabal-revision
+       ("1" "02gwf740vs0jy3l6dgw72r8c04yggshia6w16n140ncpsici8c4r")))
     (inputs
-     `(("ghc-regex-base" ,ghc-regex-base)))
+     (list ghc-regex-base))
+    (native-inputs (list ghc-utf8-string))
     (home-page "https://github.com/haskell-hvr/regex-tdfa")
     (synopsis "POSIX extended regular expressions in Haskell.")
     (description
@@ -11270,45 +10645,23 @@ extended regular expressions.  It is a \"tagged\" DFA regex engine. It is
 inspired by libtre.")
     (license license:bsd-3)))
 
-(define-public ghc-regex-tdfa-text
-  (package
-    (name "ghc-regex-tdfa-text")
-    (version "1.0.0.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/regex-tdfa-text/"
-             "regex-tdfa-text-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq"))))
-    (build-system haskell-build-system)
-    (inputs
-     `(("ghc-regex-base" ,ghc-regex-base)
-       ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
-    (home-page
-     "https://hackage.haskell.org/package/regex-tdfa-text")
-    (synopsis "Text interface for regex-tdfa")
-    (description
-     "This provides an extra text interface for regex-tdfa.")
-    (license license:bsd-3)))
-
 (define-public ghc-repline
   (package
     (name "ghc-repline")
-    (version "0.2.0.0")
+    (version "0.4.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/repline/repline-"
+             "https://hackage.haskell.org/package/repline/repline-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "1ph21kbbanlcs8n5lwk16g9vqkb98mkbz5mzwrp8j2rls2921izc"))))
+         "1dspwi28krinkxdd7waq4y6plz0dfmzz72885p9pcqp1r14qrhj3"))))
     (build-system haskell-build-system)
+    (inputs
+     (list ghc-exceptions ghc-haskeline))
     (home-page "https://github.com/sdiehl/repline")
     (synopsis "Haskeline wrapper for GHCi-like REPL interfaces")
     (description
@@ -11316,28 +10669,10 @@ inspired by libtre.")
 normal mtl transformers.")
     (license license:expat)))
 
-(define-public ghc-repline-0.3
-  (package
-    (inherit ghc-repline)
-    (version "0.3.0.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "mirror://hackage/package/repline/repline-"
-             version
-             ".tar.gz"))
-       (sha256
-        (base32
-         "0niihfyggg2qisadg7w49cr5k5qyyynia93iip0ng2bbmzwi88g8"))))
-    (inputs
-     `(("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-haskeline" ,ghc-haskeline-0.8)))))
-
 (define-public ghc-rerebase
   (package
     (name "ghc-rerebase")
-    (version "1.3.1.1")
+    (version "1.13.0.1")
     (source
      (origin
        (method url-fetch)
@@ -11346,11 +10681,11 @@ normal mtl transformers.")
              version ".tar.gz"))
        (sha256
         (base32
-         "1jbqif6k249rkknm2zwk8v8jil3kgi9ar53358v8l4ffx346rm82"))))
+         "0j50l96whwi65ir35nfhn24h6103zy1ilfjsqiax63ajzw169fkv"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
     (inputs
-     `(("ghc-rebase" ,ghc-rebase)))
+     (list ghc-rebase))
     (home-page "https://github.com/nikita-volkov/rerebase")
     (synopsis "Reexports from ``base'' with many other standard libraries")
     (description "A rich drop-in replacement for @code{base}.  For details and
@@ -11361,7 +10696,7 @@ the project's home page}.")
 (define-public ghc-resolv
   (package
     (name "ghc-resolv")
-    (version "0.1.1.2")
+    (version "0.1.2.0")
     (source
      (origin
        (method url-fetch)
@@ -11370,22 +10705,16 @@ the project's home page}.")
              version ".tar.gz"))
        (sha256
         (base32
-         "0wczdy3vmpfcfwjn1m95bygc5d83m97xxmavhdvy5ayn8c402fp4"))))
+         "0wa6wsh6i52q4ah2z0hgzlks325kigch4yniz0y15nw4skxbm8l1"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'update-constraints
-           (lambda _
-             (substitute* "resolv.cabal"
-               (("tasty         >= 1\\.1     && < 1\\.2")
-                "tasty         >= 1.1     && < 1.3"))
-             #t)))))
+     `(#:tests? #f ; TODO: tasty >=1.2.3 && <1.3 || >=1.3.1 && <1.4
+       #:cabal-revision
+       ("3" "0af5dsdyn04i76d012xhhfkkml10bqzl6q2yivkhf8rlvh1fiii5")))
     (inputs
-     `(("ghc-base16-bytestring" ,ghc-base16-bytestring)))
+     (list ghc-base16-bytestring))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty ghc-tasty-hunit))
     (home-page "https://github.com/haskell/hackage-security")
     (synopsis "Domain Name Service (DNS) lookup via @code{libresolv}")
     (description "This package implements an API for accessing the
@@ -11409,10 +10738,8 @@ Unix systems.")
         (base32
          "04mw8b9djb14zp4rdi6h7mc3zizh597ffiinfbr4m0m8psifw9w6"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-hashable" ,ghc-hashable)
-              ("ghc-monad-control" ,ghc-monad-control)
-              ("ghc-transformers-base" ,ghc-transformers-base)
-              ("ghc-vector" ,ghc-vector)))
+    (inputs (list ghc-hashable ghc-monad-control ghc-transformers-base
+                  ghc-vector))
     (home-page "https://github.com/bos/pool")
     (synopsis "Striped resource pooling implementation in Haskell")
     (description "This Haskell package provides striped pooling abstraction
@@ -11423,7 +10750,7 @@ connections.")
 (define-public ghc-resourcet
   (package
     (name "ghc-resourcet")
-    (version "1.2.2")
+    (version "1.2.4.3")
     (source
      (origin
        (method url-fetch)
@@ -11431,18 +10758,17 @@ connections.")
                            "resourcet-" version ".tar.gz"))
        (sha256
         (base32
-         "1rfbfcv3r1h29y0yqr3x6a1s04lbc3vzm3jqnfg4f9rqp9d448qk"))))
+         "0zrvnikw1a0r2j59k12fxikyrg0ki5a7xhqhjgfl9h6dqpz54h85"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-transformers-base" ,ghc-transformers-base)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-mmorph" ,ghc-mmorph)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-unliftio-core" ,ghc-unliftio-core)))
+     (list ghc-transformers-base
+           ghc-monad-control
+           ghc-transformers-compat
+           ghc-mmorph
+           ghc-exceptions
+           ghc-unliftio-core))
     (native-inputs
-     `(("ghc-lifted-base" ,ghc-lifted-base)
-       ("ghc-hspec" ,ghc-hspec)))
+     (list ghc-lifted-base ghc-hspec))
     (home-page "https://github.com/snoyberg/conduit")
     (synopsis "Deterministic allocation and freeing of scarce resources")
     (description "ResourceT is a monad transformer which creates a region of
@@ -11452,7 +10778,7 @@ code where you can safely allocate resources.")
 (define-public ghc-retry
   (package
     (name "ghc-retry")
-    (version "0.8.1.0")
+    (version "0.8.1.2")
     (source
      (origin
        (method url-fetch)
@@ -11460,17 +10786,13 @@ code where you can safely allocate resources.")
                            "retry/retry-" version ".tar.gz"))
        (sha256
         (base32
-         "02k03r86amg1vbrsvb644342ym13d9jwkzki9sk93pdg5l8j35dj"))))
+         "0nwyis42xpmxfw8nz8qn59r3v7q0dkfzkzkhllgn30cdjbbmwhf5"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-random" ,ghc-random)))
+     (list ghc-exceptions ghc-random))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-hedgehog" ,ghc-tasty-hedgehog)
-       ("ghc-hedgehog" ,ghc-hedgehog)))
+     (list ghc-hunit ghc-tasty ghc-tasty-hunit ghc-tasty-hedgehog
+           ghc-hedgehog))
     (home-page "https://github.com/Soostone/retry")
     (synopsis "Retry combinators for monadic actions that may fail")
     (description "This package exposes combinators that can wrap
@@ -11486,7 +10808,7 @@ the query instead of simply raising an exception.")
 (define-public ghc-rfc5051
   (package
     (name "ghc-rfc5051")
-    (version "0.1.0.4")
+    (version "0.2")
     (source
      (origin
        (method url-fetch)
@@ -11494,7 +10816,7 @@ the query instead of simply raising an exception.")
                            "rfc5051-" version ".tar.gz"))
        (sha256
         (base32
-         "1lxkq414ni986ciml4gbvf463fn55z299knky7pq3ixb1qislpb1"))))
+         "0nri7js5ymywh2gi3li25wrkl1nf712qhbzw5hn46fib83qsq73k"))))
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/rfc5051")
     (synopsis "Simple unicode collation as per RFC5051")
@@ -11509,7 +10831,7 @@ better for some purposes.")
 (define-public ghc-rio
   (package
     (name "ghc-rio")
-    (version "0.1.12.0")
+    (version "0.1.21.0")
     (source
      (origin
        (method url-fetch)
@@ -11518,20 +10840,20 @@ better for some purposes.")
              version ".tar.gz"))
        (sha256
         (base32
-         "0xzjkh6aavynpyskikhs8dmv0zhkiqiwz9zdn80zbd25b2182pif"))))
+         "013m4xgsmg8h1rba9krxppz49lc5wz26gksms5zibsjj0w59m58h"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-microlens" ,ghc-microlens)
-       ("ghc-primitive" ,ghc-primitive)
-       ("ghc-typed-process" ,ghc-typed-process)
-       ("ghc-unliftio" ,ghc-unliftio)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)))
+     (list ghc-hashable
+           ghc-microlens
+           ghc-microlens-mtl
+           ghc-primitive
+           ghc-typed-process
+           ghc-unliftio-core
+           ghc-unliftio
+           ghc-unordered-containers
+           ghc-vector))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec ghc-quickcheck hspec-discover))
     (home-page "https://github.com/commercialhaskell/rio#readme")
     (synopsis "A standard library for Haskell")
     (description "This package works as a prelude replacement for Haskell,
@@ -11550,7 +10872,7 @@ expose it from another module in the hierarchy.
 (define-public ghc-safe
   (package
     (name "ghc-safe")
-    (version "0.3.17")
+    (version "0.3.19")
     (source
      (origin
        (method url-fetch)
@@ -11560,10 +10882,10 @@ expose it from another module in the hierarchy.
              ".tar.gz"))
        (sha256
         (base32
-         "0p3yaf5slvyz1cyy51jq64c5rlp8yzwim8iy2dlnk42if4gc9ibr"))))
+         "18pp6cn9np9jgs01x9mac6wk41k34g86fx5ibfarbapqr1138115"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-quickcheck))
     (home-page "https://github.com/ndmitchell/safe#readme")
     (synopsis "Library of safe (exception free) functions")
     (description "This library provides wrappers around @code{Prelude} and
@@ -11574,7 +10896,7 @@ exceptions.")
 (define-public ghc-safe-exceptions
   (package
     (name "ghc-safe-exceptions")
-    (version "0.1.7.0")
+    (version "0.1.7.2")
     (source
      (origin
        (method url-fetch)
@@ -11583,16 +10905,10 @@ exceptions.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "0sd0zfsm9pcll5bzzj523rbn45adjrnavdkz52hgmdjjgdcdrk8q"))))
+         "15a80s87f603w8l7fnaba2cyqx62042vvcidpjzyga2685wpyqv9"))))
     (build-system haskell-build-system)
-    (arguments
-     '(#:cabal-revision
-       ("4" "0fid41gishzsyb47wzxhd5falandfirqcp760hcja81qjpfmqd32")))
-    (inputs `(("ghc-exceptions" ,ghc-exceptions)))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-void" ,ghc-void)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec ghc-void hspec-discover))
     (home-page "https://github.com/fpco/safe-exceptions")
     (synopsis "Safe, consistent, and easy exception handling")
     (description "Runtime exceptions - as exposed in @code{base} by the
@@ -11618,15 +10934,11 @@ handling wrong.")
          "04g3070cbjdqj0h9l9ii6470xcbn40xfv4fr89a8yvnkdim9nyfm"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-conduit" ,ghc-conduit)
-       ("ghc-conduit-combinators" ,ghc-conduit-combinators)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-resourcet" ,ghc-resourcet)))
+     (list ghc-conduit ghc-conduit-combinators ghc-exceptions
+           ghc-resourcet))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-th" ,ghc-test-framework-th)))
+     (list ghc-hunit ghc-test-framework ghc-test-framework-hunit
+           ghc-test-framework-th))
     (home-page "https://github.com/luispedro/safeio")
     (synopsis "Write output to disk atomically")
     (description
@@ -11648,7 +10960,7 @@ avoid the problem of partial intermediate files.")
          "0rpg9j6fy70i0b9dkrip9d6wim0nac0snp7qzbhykjkqlcvvgr91"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)))
+     (list ghc-hunit))
     (home-page "https://github.com/ChrisKuklewicz/SafeSemaphore")
     (synopsis "Exception safe semaphores")
     (description "This library provides exception safe semaphores that can be
@@ -11671,14 +10983,14 @@ are not exception safe and can be broken by @code{killThread}.")
          "1ndgai8idlxyccvkz5zsgq06v58blc30i6hkky5b1sf5x6gs2h29"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-stringsearch" ,ghc-stringsearch)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-tasty-th" ,ghc-tasty-th)))
+     (list ghc-stringsearch
+           ghc-conduit
+           ghc-exceptions
+           ghc-hunit
+           ghc-tasty
+           ghc-tasty-hunit
+           ghc-tasty-quickcheck
+           ghc-tasty-th))
     (home-page "https://hackage.haskell.org/package/sandi")
     (synopsis "Data encoding library")
     (description "Reasonably fast data encoding library.")
@@ -11700,9 +11012,7 @@ are not exception safe and can be broken by @code{killThread}.")
          "1r5kffjfwpas45g74sip8glrj1m9nygrnxjm7xgw898rq9pnafgn"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)
-       ("ghc-unliftio" ,ghc-unliftio)))
+     (list ghc-hspec hspec-discover ghc-unliftio))
     (home-page "https://github.com/fpco/say")
     (synopsis
      "Send textual messages to a Handle in a thread-friendly way")
@@ -11721,7 +11031,7 @@ as sending some messages to the terminal - that has the following properties:
 (define-public ghc-scientific
   (package
     (name "ghc-scientific")
-    (version "0.3.6.2")
+    (version "0.3.7.0")
     (source
      (origin
        (method url-fetch)
@@ -11731,20 +11041,18 @@ as sending some messages to the terminal - that has the following properties:
              ".tar.gz"))
        (sha256
         (base32
-         "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397"))))
+         "1aa3ngb71l2sh1x2829napnr1w285q0sn2f7z2wvi3ynng2238d3"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-integer-logarithms" ,ghc-integer-logarithms)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-primitive" ,ghc-primitive)))
+     (list ghc-integer-logarithms ghc-hashable ghc-primitive))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-smallcheck" ,ghc-smallcheck)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-tasty
+           ghc-tasty-ant-xml
+           ghc-tasty-hunit
+           ghc-tasty-smallcheck
+           ghc-tasty-quickcheck
+           ghc-smallcheck
+           ghc-quickcheck))
     (home-page "https://github.com/basvandijk/scientific")
     (synopsis "Numbers represented using scientific notation")
     (description "This package provides @code{Data.Scientific}, which provides
@@ -11782,7 +11090,7 @@ notation}.")
          "00y67v80a8l09i3k76z09lg25kw72ivl09nag8ckdlk4a0cfnzfq"))))
     (build-system haskell-build-system)
     (inputs
-     `(("sdl" ,sdl)))
+     (list sdl))
     (home-page "https://hackage.haskell.org/package/SDL")
     (synopsis "LibSDL for Haskell")
     (description "Simple DirectMedia Layer (libSDL) is a cross-platform
@@ -11795,7 +11103,7 @@ award winning Linux port of \"Civilization: Call To Power.\"")
 (define-public ghc-sdl2
   (package
     (name "ghc-sdl2")
-    (version "2.5.0.0")
+    (version "2.5.3.0")
     (source
      (origin
        (method url-fetch)
@@ -11803,18 +11111,13 @@ award winning Linux port of \"Civilization: Call To Power.\"")
                            "sdl2/sdl2-" version ".tar.gz"))
        (sha256
         (base32
-         "1x368yhdd55b3cvx8dvj1sj6nzygzigbhrwhssjs4k0rcxlwqfw8"))))
+         "08l24cb92spnx3bn26bj0z2cszpsawhaa9vvhblvsr3d6z76065q"))))
     (build-system haskell-build-system)
     (arguments '(#:tests? #f)) ; tests require graphical environment
     (inputs
-     `(("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-linear" ,ghc-linear)
-       ("ghc-statevar" ,ghc-statevar)
-       ("ghc-vector" ,ghc-vector)
-       ("sdl2" ,sdl2)))
+     (list ghc-exceptions ghc-linear ghc-statevar ghc-vector sdl2))
     (native-inputs
-     `(("ghc-weigh" ,ghc-weigh)
-       ("pkg-config" ,pkg-config)))
+     (list ghc-weigh pkg-config))
     (home-page "https://hackage.haskell.org/package/sdl2")
     (synopsis "High- and low-level bindings to the SDL library")
     (description
@@ -11842,10 +11145,9 @@ programming.")
          "1pr6dkg73cy9z0w54lrkj9c5bhxj56nl92lxikjy8kz6nyr455rr"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-sdl2" ,ghc-sdl2)
-       ("sdl2-image" ,sdl2-image)))
+     (list ghc-sdl2 sdl2-image))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://hackage.haskell.org/package/sdl2-image")
     (synopsis "Bindings to SDL2_image")
     (description "This package provides Haskell bindings to
@@ -11866,14 +11168,14 @@ programming.")
          "1k8avyccq5l9z7bwxigim312yaancxl1sr3q6a96bcm7pnhiak0g"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-lifted-base" ,ghc-lifted-base)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-sdl2" ,ghc-sdl2)
-       ("ghc-vector" ,ghc-vector)
-       ("sdl2-mixer" ,sdl2-mixer)))
+     (list ghc-data-default-class
+           ghc-lifted-base
+           ghc-monad-control
+           ghc-sdl2
+           ghc-vector
+           sdl2-mixer))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://hackage.haskell.org/package/sdl2-mixer")
     (synopsis "Bindings to SDL2 mixer")
     (description "This package provides Haskell bindings to
@@ -11901,8 +11203,7 @@ programming.")
               (sdl-image-include (string-append sdl-image "/include/SDL")))
          (list (string-append "--extra-include-dirs=" sdl-image-include)))))
     (inputs
-     `(("ghc-sdl" ,ghc-sdl)
-       ("sdl-image" ,sdl-image)))
+     (list ghc-sdl sdl-image))
     (home-page "https://hackage.haskell.org/package/SDL-image")
     (synopsis "Haskell bindings to libSDL_image")
     (description "SDL_image is an image file loading library.  It loads images
@@ -11931,8 +11232,7 @@ PNG, PNM, TGA, TIFF, XCF, XPM, XV.")
               (sdl-mixer-include (string-append sdl-mixer "/include/SDL")))
          (list (string-append "--extra-include-dirs=" sdl-mixer-include)))))
     (inputs
-     `(("ghc-sdl" ,ghc-sdl)
-       ("sdl-mixer" ,sdl-mixer)))
+     (list ghc-sdl sdl-mixer))
     (home-page "https://hackage.haskell.org/package/SDL-mixer")
     (synopsis "Haskell bindings to libSDL_mixer")
     (description "SDL_mixer is a sample multi-channel audio mixer library.  It
@@ -11955,8 +11255,7 @@ MIDI, Ogg Vorbis, and SMPEG MP3 libraries.")
         (base32
          "19hnw2cfbsfjynxq1bq9f6djbxhsc1k751ml0y1ab3ah913mm29j"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-byteable" ,ghc-byteable)
-              ("ghc-memory" ,ghc-memory)))
+    (inputs (list ghc-byteable ghc-memory))
     (home-page "https://github.com/vincenthz/hs-securemem")
     (synopsis "Auto-scrubbing and const-time-eq memory chunk abstraction for
 Haskell")
@@ -11967,7 +11266,7 @@ a memory chunk that will be auto-scrubbed after it run out of scope.")
 (define-public ghc-semialign
   (package
     (name "ghc-semialign")
-    (version "1")
+    (version "1.1.0.1")
     (source
      (origin
        (method url-fetch)
@@ -11977,20 +11276,16 @@ a memory chunk that will be auto-scrubbed after it run out of scope.")
              ".tar.gz"))
        (sha256
         (base32
-         "004x0a80sqqdgvsyk4z0nasxpi6z3g1d8kgwj804bj9ka8dlc75m"))))
+         "11qs4imy3cq4cx9mm6g30r6qk3rngqrmz7lkl5379gs1yvgvs44q"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-these" ,ghc-these)
-       ("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-semigroupoids" ,ghc-semigroupoids)))
-    (arguments
-     `(#:cabal-revision
-       ("1"
-        "0qnqnyfng4kwy2h2anrcy5id2ijnawava3zcc5h5b8ri1y6ks6zi")))
+     (list ghc-these
+           ghc-base-compat
+           ghc-hashable
+           ghc-tagged
+           ghc-unordered-containers
+           ghc-vector
+           ghc-semigroupoids))
     (home-page
      "https://github.com/isomorphism/these")
     (synopsis
@@ -12007,7 +11302,7 @@ class, forming lattice-like structure.")
 (define-public ghc-semigroupoids
   (package
     (name "ghc-semigroupoids")
-    (version "5.3.3")
+    (version "5.3.6")
     (source
      (origin
        (method url-fetch)
@@ -12017,23 +11312,20 @@ class, forming lattice-like structure.")
              ".tar.gz"))
        (sha256
         (base32
-         "016hc4imr9l4szs3p7f1aahvxr5wv4clvr3qzrm3nibssg5vrs61"))))
+         "0glhqc9x8i5z3bdg23xvl2lfns95msid3h3x0jksna7i6c8j869n"))))
     (build-system haskell-build-system)
     (outputs '("out" "static" "doc"))
     (inputs
-     `(("ghc-base-orphans" ,ghc-base-orphans)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-bifunctors" ,ghc-bifunctors)
-       ("ghc-comonad" ,ghc-comonad)
-       ("ghc-contravariant" ,ghc-contravariant)
-       ("ghc-distributive" ,ghc-distributive)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)))
-    (native-inputs
-     `(("cabal-doctest" ,cabal-doctest)
-       ("ghc-doctest" ,ghc-doctest)))
+     (list ghc-base-orphans
+           ghc-transformers-compat
+           ghc-bifunctors
+           ghc-comonad
+           ghc-contravariant
+           ghc-distributive
+           ghc-generic-deriving
+           ghc-hashable
+           ghc-tagged
+           ghc-unordered-containers))
     (home-page "https://github.com/ekmett/semigroupoids")
     (synopsis "Semigroupoids operations for Haskell")
     (description "This library provides a wide array of (semi)groupoids and
@@ -12049,7 +11341,7 @@ just a @code{Semigroup} are added.")
 (define-public ghc-semigroups
   (package
     (name "ghc-semigroups")
-    (version "0.18.5")
+    (version "0.19.2")
     (source
      (origin
        (method url-fetch)
@@ -12059,13 +11351,10 @@ just a @code{Semigroup} are added.")
              ".tar.gz"))
        (sha256
         (base32
-         "17g29h62g1k51ghhvzkw72zksjgi6vs6bfipkj81pqw1dsprcamb"))))
+         "0h1sl3i6k8csy5zkkpy65rxzds9wg577z83aaakybr3n1gcv4855"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-nats" ,ghc-nats)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-hashable" ,ghc-hashable)))
+     (list ghc-nats ghc-tagged ghc-unordered-containers ghc-hashable))
     (home-page "https://github.com/ekmett/semigroups/")
     (synopsis "Semigroup operations for Haskell")
     (description "This package provides semigroups for Haskell.  In
@@ -12082,43 +11371,38 @@ semigroup.")
     (inherit ghc-semigroups)
     (name "ghc-semigroups-bootstrap")
     (inputs
-     `(("ghc-nats" ,ghc-nats-bootstrap)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-unordered-containers" ,ghc-unordered-containers-bootstrap)
-       ("ghc-hashable" ,ghc-hashable-bootstrap)))
+     (list ghc-nats-bootstrap ghc-tagged
+           ghc-unordered-containers-bootstrap ghc-hashable-bootstrap))
     (properties '((hidden? #t)))))
 
 (define-public ghc-serialise
   (package
     (name "ghc-serialise")
-    (version "0.2.1.0")
+    (version "0.2.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/serialise/serialise-"
+             "https://hackage.haskell.org/package/serialise/serialise-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "19ary6ivzk8z7wcxhm860qmh7pwqj0qjqzav1h42y85l608zqgh4"))))
+         "0vp4wyxpximpx10pssfgdsir1pc23zb62fg3kj3iblpzqfrryy69"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-cborg" ,ghc-cborg)
-       ("ghc-half" ,ghc-half)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-primitive" ,ghc-primitive)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)))
+     (list ghc-cborg
+           ghc-half
+           ghc-hashable
+           ghc-primitive
+           ghc-unordered-containers
+           ghc-vector))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
+     (list ghc-quickcheck ghc-tasty ghc-tasty-hunit ghc-tasty-quickcheck
+           ghc-quickcheck-instances))
     (arguments
      `(#:cabal-revision
-       ("1" "1rknhad1i8bpknsnphmcmb6dnb48c2p2c13ia2qqch3hkhsvfpr6")))
+       ("2" "1qcsp15v0swxy2qlvc40fil09zq32y3wl00y3passc2a4b4yhmr4")))
     (home-page "https://github.com/well-typed/cborg")
     (synopsis "Binary serialisation library for Haskell values")
     (description
@@ -12162,7 +11446,7 @@ environment variables.")
 (define-public ghc-setlocale
   (package
     (name "ghc-setlocale")
-    (version "1.0.0.9")
+    (version "1.0.0.10")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -12170,7 +11454,7 @@ environment variables.")
                     version "/setlocale-" version ".tar.gz"))
               (sha256
                (base32
-                "18b6xafspzxrmz5m9r9nzy3z053crqi59xc8n8aqd4gw0pvqdcrv"))))
+                "19rv89jkhq5ic7j5rzpygnmsbzim2mn8ip0m292za613q88gywir"))))
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/setlocale")
     (synopsis "Haskell bindings to setlocale")
@@ -12181,7 +11465,7 @@ environment variables.")
 (define-public ghc-shakespeare
   (package
     (name "ghc-shakespeare")
-    (version "2.0.22")
+    (version "2.0.25")
     (source
      (origin
        (method url-fetch)
@@ -12190,18 +11474,16 @@ environment variables.")
                            "shakespeare-" version ".tar.gz"))
        (sha256
         (base32
-         "1mc1a0vv070gcawwcx6vzpj6gpfh1qnlqrndiyfic3p500y656vh"))))
+         "1fjv3yg425d87d3dih0l3ff95g5a5yp9w85m58sjara6xqivj9s4"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-aeson" ,ghc-aeson)
-              ("ghc-blaze-markup" ,ghc-blaze-markup)
-              ("ghc-blaze-html" ,ghc-blaze-html)
-              ("ghc-exceptions" ,ghc-exceptions)
-              ("ghc-vector" ,ghc-vector)
-              ("ghc-unordered-containers" ,ghc-unordered-containers)
-              ("ghc-scientific" ,ghc-scientific)))
-    (native-inputs `(("ghc-hspec" ,ghc-hspec)
-                     ("ghc-hunit" ,ghc-hunit)
-                     ("hspec-discover" ,hspec-discover)))
+    (inputs (list ghc-aeson
+                  ghc-blaze-markup
+                  ghc-blaze-html
+                  ghc-vector
+                  ghc-th-lift
+                  ghc-unordered-containers
+                  ghc-scientific))
+    (native-inputs (list ghc-hspec ghc-hunit hspec-discover))
     (home-page "https://www.yesodweb.com/book/shakespearean-templates")
     (synopsis "Family of type-safe template languages for Haskell")
     (description "This Haskell package provides a family of type-safe
@@ -12213,7 +11495,7 @@ interpolates variables according to the type being inserted.")
 (define-public ghc-shelly
   (package
     (name "ghc-shelly")
-    (version "1.8.1")
+    (version "1.9.0")
     (source
      (origin
        (method url-fetch)
@@ -12222,22 +11504,22 @@ interpolates variables according to the type being inserted.")
              version ".tar.gz"))
        (sha256
         (base32
-         "023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y"))))
+         "1kma77gixhyciimh19p64h1ndbcrs9qhk8fgyv71iqh5q57zvday"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-system-filepath-bootstrap" ,ghc-system-filepath-bootstrap)
-       ("ghc-system-fileio-bootstrap" ,ghc-system-fileio-bootstrap)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-lifted-base" ,ghc-lifted-base)
-       ("ghc-lifted-async" ,ghc-lifted-async)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
-       ("ghc-async" ,ghc-async)
-       ("ghc-transformers-base" ,ghc-transformers-base)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-hspec-contrib" ,ghc-hspec-contrib)))
+     (list ghc-unix-compat
+           ghc-system-filepath-bootstrap
+           ghc-system-fileio-bootstrap
+           ghc-monad-control
+           ghc-lifted-base
+           ghc-lifted-async
+           ghc-exceptions
+           ghc-enclosed-exceptions
+           ghc-async
+           ghc-transformers-base
+           ghc-hunit
+           ghc-hspec
+           ghc-hspec-contrib))
     (home-page "https://github.com/yesodweb/Shelly.hs")
     (synopsis "Shell-like (systems) programming in Haskell")
     (description
@@ -12261,8 +11543,6 @@ spirit to POSIX shells.  Shelly is originally forked  from the Shellish package.
          "1lgs1gsr5dp0x21diqn4l03fxgai2kgdmj85gqp0iz3zykvbmjbz"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f)) ;; circular dependency with nanospec
-    ;; (inputs
-    ;;  `(("ghc-temporary" ,ghc-temporary)))
     (home-page "https://github.com/hspec/silently")
     (synopsis "Prevent writing to stdout")
     (description "This package provides functions to prevent or capture
@@ -12311,13 +11591,9 @@ them.")
          "112j0qfsjazf9wg1zywf7hjybgsiywk9wkm27yi8xzv27hmlv1mn"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-conduit" ,ghc-conduit)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-network" ,ghc-network)
-       ("ghc-resourcet" ,ghc-resourcet)))
+     (list ghc-conduit ghc-conduit-extra ghc-network ghc-resourcet))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec hspec-discover))
     (home-page "https://github.com/kazu-yamamoto/simple-sendfile")
     (synopsis "Cross platform library for the sendfile system call")
     (description "This library tries to call minimum system calls which
@@ -12338,12 +11614,18 @@ are the bottleneck of web servers.")
          "06hmlic0n73ncwlkpx49xlv09bzsrr27ncnp5byhzlknak2gd7vp"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-dictionary-sharing" ,ghc-dictionary-sharing)
-       ("ghc-testing-type-modifiers" ,ghc-testing-type-modifiers)
-       ("ghc-semigroups" ,ghc-semigroups)))
+     (list ghc-dictionary-sharing ghc-testing-type-modifiers
+           ghc-template-haskell))
     (arguments
      `(#:cabal-revision
-       ("1" "0kax1ypjyglkn6iff1x4yz12y7f2n249m95xvdhrc63hsa4xlcqv")))
+       ("1" "0kax1ypjyglkn6iff1x4yz12y7f2n249m95xvdhrc63hsa4xlcqv")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'update-constraints
+           (lambda _
+             (substitute* "size-based.cabal"
+               (("(template-haskell)\\s+.+$" all dep)
+                (string-append dep "\n"))))))))
     (home-page "https://hackage.haskell.org/package/size-based")
     (synopsis "Sized functors for size-based enumerations")
     (description "This library provides a framework for size-based
@@ -12353,7 +11635,7 @@ enumerations.")
 (define-public ghc-skylighting-core
   (package
     (name "ghc-skylighting-core")
-    (version "0.8.2.1")
+    (version "0.10.5.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -12361,29 +11643,27 @@ enumerations.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0hdchivb4af9w7v5v7lrwfwawd3kcwmpzk69m1vkkm3pis8lcr1s"))))
-    (build-system haskell-build-system)
-    (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-colour" ,ghc-colour)
-       ("ghc-hxt" ,ghc-hxt)
-       ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
-       ("ghc-safe" ,ghc-safe)
-       ("ghc-utf8-string" ,ghc-utf8-string)))
-    (native-inputs
-     `(("ghc-diff" ,ghc-diff)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-pretty-show" ,ghc-pretty-show)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-golden" ,ghc-tasty-golden)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+                "0bskci0gng6nf324wna9ss4xbr1mwjkgk3mlfkr96r1m3wza5g3d"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-aeson
+           ghc-ansi-terminal
+           ghc-attoparsec
+           ghc-base64-bytestring
+           ghc-blaze-html
+           ghc-case-insensitive
+           ghc-colour
+           ghc-safe
+           ghc-utf8-string
+           ghc-xml-conduit))
+    (native-inputs
+     (list ghc-diff
+           ghc-pretty-show
+           ghc-quickcheck
+           ghc-tasty
+           ghc-tasty-golden
+           ghc-tasty-hunit
+           ghc-tasty-quickcheck))
     (home-page "https://github.com/jgm/skylighting")
     (synopsis "Syntax highlighting library")
     (description "Skylighting is a syntax highlighting library with support
@@ -12397,22 +11677,22 @@ provided.  Skylighting is intended to be the successor to highlighting-kate.")
   (package
     (inherit ghc-skylighting-core)
     (name "ghc-skylighting")
-    (version "0.8.2.1")
+    (version "0.10.5.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/skylighting-"
                                   version "/skylighting-" version ".tar.gz"))
               (sha256
                (base32
-                "1xls8ycad77m55ax4hp55k60h3pi5sm3m32hycbc8baixbgfx5xz"))))
+                "152ywiy7h04xjy0fdl571jwahl6c9350isqbm4p0na4cjd9cczzh"))))
     (inputs
-     `(("ghc-skylighting-core" ,ghc-skylighting-core)
-       ,@(package-inputs ghc-skylighting-core)))))
+     (modify-inputs (package-inputs ghc-skylighting-core)
+       (prepend ghc-skylighting-core)))))
 
 (define-public ghc-smallcheck
   (package
     (name "ghc-smallcheck")
-    (version "1.1.5")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
@@ -12422,10 +11702,10 @@ provided.  Skylighting is intended to be the successor to highlighting-kate.")
              ".tar.gz"))
        (sha256
         (base32
-         "195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h"))))
+         "0sf87zjlrgjw7q6a0499g2ywx66zvpv6rg6953fjc18fnl8rs7z4"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-logict" ,ghc-logict)))
+     (list ghc-logict))
     (home-page
      "https://github.com/feuerbach/smallcheck")
     (synopsis "Property-based testing library")
@@ -12447,9 +11727,7 @@ automatically by SmallCheck.")
                 "0wvaxy3dkv97wrncjv1rxrmjr4014hgxz82kixvcwqdhidalfi3k"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-cereal" ,ghc-cereal)
-       ("ghc-basement" ,ghc-basement)
-       ("ghc-network" ,ghc-network)))
+     (list ghc-cereal ghc-basement ghc-network))
     (home-page "https://github.com/vincenthz/hs-socks")
     (synopsis "SOCKS proxy (version 5) implementation")
     (description
@@ -12459,7 +11737,7 @@ automatically by SmallCheck.")
 (define-public ghc-sop-core
   (package
     (name "ghc-sop-core")
-    (version "0.4.0.0")
+    (version "0.5.0.1")
     (source
      (origin
        (method url-fetch)
@@ -12467,7 +11745,7 @@ automatically by SmallCheck.")
                            "sop-core/sop-core-" version ".tar.gz"))
        (sha256
         (base32
-         "07ci2mh8cbjvipb576rxsj3iyhkj5c5dnsns4xkdppp2p3pv10d3"))))
+         "1c4xk4bw1ij4gpgy35iv08bhcxhv1siy55qnvp2xd6wcc3qnghys"))))
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/sop-core")
     (synopsis "True Sums of Products")
@@ -12494,9 +11772,7 @@ generics-sop}.")
          "1kkdw2c4d2hha99v9f89ahmifjxp7fxmxyfwq9a8xk6s0h9xs51w"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-scientific" ,ghc-scientific)
-       ("ghc-ieee754" ,ghc-ieee754)
-       ("ghc-nats" ,ghc-nats)))
+     (list ghc-scientific ghc-ieee754 ghc-nats))
     (home-page
      "https://github.com/minad/special-values#readme")
     (synopsis "Typeclass providing special values")
@@ -12508,8 +11784,7 @@ used for example by QuickCheck, see quickcheck-special."  )
 (define-public ghc-split
   (package
     (name "ghc-split")
-    (version "0.2.3.3")
-    (outputs '("out" "static" "doc"))
+    (version "0.2.3.4")
     (source
      (origin
        (method url-fetch)
@@ -12519,13 +11794,13 @@ used for example by QuickCheck, see quickcheck-special."  )
              ".tar.gz"))
        (sha256
         (base32
-         "04qlmkcyklznl03gsjg95b4nzb6i96gdapqg60rny9szgi7ngk8x"))))
+         "0ahzdjcxw5wywr3w4msspia99k6fkckddam1m5506h4z9h8fa7r7"))))
     (build-system haskell-build-system)
     (arguments
      `(#:cabal-revision
-       ("2" "1c8bcssxq5rkxkixgms6w6x6lzf4n7cxk6cx6av1dp3lixdy9j34")))
+       ("1" "06pmlvyrz4rr7rsrghpyrdypprphm9522rvnz4l3i8333n4pb304")))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-quickcheck))
     (home-page "https://hackage.haskell.org/package/split")
     (synopsis "Combinator library for splitting lists")
     (description "This package provides a collection of Haskell functions for
@@ -12536,7 +11811,7 @@ mainstream languages.")
 (define-public ghc-splitmix
   (package
     (name "ghc-splitmix")
-    (version "0.0.3")
+    (version "0.1.0.3")
     (source
      (origin
        (method url-fetch)
@@ -12544,16 +11819,19 @@ mainstream languages.")
                            "splitmix/splitmix-" version ".tar.gz"))
        (sha256
         (base32
-         "1k0amgkz7rvyz3lnw7m786ilnr1cibwhx9sc4qynq329gxan5r7w"))))
+         "0das5n44dhlcv5i233iakx37d17kidqvhrvp6w9nd7hc015ry026"))))
     (build-system haskell-build-system)
-    (inputs
-     `(("ghc-random" ,ghc-random)))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-async" ,ghc-async)
-       ("ghc-base-compat-batteries" ,ghc-base-compat-batteries)
-       ("ghc-tf-random" ,ghc-tf-random)
-       ("ghc-vector" ,ghc-vector)))
+     (list ghc-async
+           ghc-base-compat-batteries
+           ghc-base-compat
+           ghc-hunit
+           ghc-math-functions
+           ghc-random-bootstrap
+           ghc-test-framework
+           ghc-test-framework-hunit
+           ghc-tf-random
+           ghc-vector))
     (home-page "https://hackage.haskell.org/package/splitmix")
     (synopsis "Fast and splittable pseudorandom number generator")
     (description "This package provides a Pure Haskell implementation of the
@@ -12612,7 +11890,7 @@ Note that this suffers from the
 (define-public ghc-statevar
   (package
     (name "ghc-statevar")
-    (version "1.2")
+    (version "1.2.2")
     (source
      (origin
        (method url-fetch)
@@ -12622,7 +11900,7 @@ Note that this suffers from the
              ".tar.gz"))
        (sha256
         (base32
-         "12sz6zkc9j5z3lwrjvljrkfxa5vhwnir5wsarigz2f6d3w13dh5g"))))
+         "098q4lk60najzpbfal4bg4sh7izxm840aa5h4ycaamjn77d3jjsy"))))
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/StateVar")
     (synopsis "State variables for Haskell")
@@ -12633,7 +11911,7 @@ in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
 (define-public ghc-statistics
   (package
     (name "ghc-statistics")
-    (version "0.15.1.1")
+    (version "0.15.2.0")
     (source
      (origin
        (method url-fetch)
@@ -12642,31 +11920,33 @@ in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
                            "statistics-" version ".tar.gz"))
        (sha256
         (base32
-         "015rn74f1glii26j4b2fh1fc63xvxzrh2xckiancz48kc8jdzabj"))))
+         "0j9awbg47fzb58k5z2wgkp6a0042j7hqrl1g6lyflrbsfswdp5n4"))))
     (build-system haskell-build-system)
     (arguments
      '(;; Two tests fail: "Discrete CDF is OK" and "Quantile is CDF inverse".
-       #:tests? #f))
-    (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-async" ,ghc-async)
-       ("ghc-base-orphans" ,ghc-base-orphans)
-       ("ghc-dense-linear-algebra" ,ghc-dense-linear-algebra)
-       ("ghc-math-functions" ,ghc-math-functions)
-       ("ghc-monad-par" ,ghc-monad-par)
-       ("ghc-mwc-random" ,ghc-mwc-random)
-       ("ghc-primitive" ,ghc-primitive)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-vector-algorithms" ,ghc-vector-algorithms)
-       ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
-       ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
-    (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-ieee754" ,ghc-ieee754)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+       #:tests? #t))
+    (inputs
+     (list ghc-aeson
+           ghc-async
+           ghc-base-orphans
+           ghc-data-default-class
+           ghc-dense-linear-algebra
+           ghc-math-functions
+           ghc-monad-par
+           ghc-mwc-random
+           ghc-primitive
+           ghc-vector
+           ghc-vector-algorithms
+           ghc-vector-th-unbox
+           ghc-vector-binary-instances))
+    (native-inputs
+     (list ghc-erf
+           ghc-ieee754
+           ghc-quickcheck
+           ghc-tasty-expected-failure
+           ghc-tasty
+           ghc-tasty-hunit
+           ghc-tasty-quickcheck))
     (home-page "https://github.com/bos/mwc-random")
     (synopsis "Haskell library of statistical types, data, and functions")
     (description "This library provides a number of common functions
@@ -12694,7 +11974,7 @@ and regression and autocorrelation analysis.
 (define-public ghc-stm-chans
   (package
     (name "ghc-stm-chans")
-    (version "3.0.0.4")
+    (version "3.0.0.6")
     (source
      (origin
        (method url-fetch)
@@ -12703,7 +11983,7 @@ and regression and autocorrelation analysis.
                            "stm-chans-" version ".tar.gz"))
        (sha256
         (base32
-         "0f27sp09yha43xk9q55sc185jyjs5h7gq2dhsyx6bm9kz9dzqi13"))))
+         "04hafqjq8ngvhcavkfx88a0zky8yc7i18q2n9ajav03kns1kwvpa"))))
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/stm-chans")
     (synopsis "Additional types of channels for ghc-stm")
@@ -12726,23 +12006,23 @@ features.")
          "0hhlxvpp7mah8dcvkknh6skx44jfk3092zz2w52zlr255bkmn3p8"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-stm-chans" ,ghc-stm-chans)
-       ("ghc-cereal" ,ghc-cereal)
-       ("ghc-cereal-conduit" ,ghc-cereal-conduit)
-       ("ghc-conduit" ,ghc-conduit)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-async" ,ghc-async)
-       ("ghc-monad-loops" ,ghc-monad-loops)
-       ("ghc-unliftio" ,ghc-unliftio)))
-    (native-inputs
-     `(("ghc-doctest" ,ghc-doctest)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-stm-chans
+           ghc-cereal
+           ghc-cereal-conduit
+           ghc-conduit
+           ghc-conduit-extra
+           ghc-exceptions
+           ghc-resourcet
+           ghc-async
+           ghc-monad-loops
+           ghc-unliftio))
+    (native-inputs
+     (list ghc-doctest
+           ghc-quickcheck
+           ghc-hunit
+           ghc-test-framework
+           ghc-test-framework-hunit
+           ghc-test-framework-quickcheck2))
     (home-page "https://github.com/cgaebel/stm-conduit")
     (synopsis "Introduces conduits to channels and promotes using conduits concurrently")
     (description
@@ -12753,15 +12033,22 @@ source and a sink.")
 (define-public ghc-stmonadtrans
   (package
     (name "ghc-stmonadtrans")
-    (version "0.4.3")
+    (version "0.4.6")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/STMonadTrans"
                            "/STMonadTrans-" version ".tar.gz"))
        (sha256
-        (base32 "1nr26fnmi5fdjc6d00w13kjhmfyvb5b837d0006w4dj0yxndaksp"))))
+        (base32 "0rvhh0hhwz601ibpzisry7xf3j61r5sxfgp47imaa37i5bvrlynb"))))
     (build-system haskell-build-system)
+    (arguments `(#:tests? #f)) ; TODO: Loops.
+    (inputs (list ghc-fail))
+;    (native-inputs
+;     `(("ghc-tasty" ,ghc-tasty)
+;       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+;       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+;       ("ghc-stmonadtrans" ,ghc-stmonadtrans)))
     (home-page "https://hackage.haskell.org/package/STMonadTrans")
     (synopsis "Monad transformer version of the ST monad")
     (description
@@ -12783,7 +12070,7 @@ for strict state threads.")
         (base32 "0fnwbfmd5vsaaqvf9182qdcjrzcfjd1zhdyvjwzifbwvn6r9kx4s"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-base-orphans" ,ghc-base-orphans)))
+     (list ghc-base-orphans))
     (home-page "https://github.com/cartazio/storable-complex")
     (synopsis "Haskell Storable instance for Complex")
     (description "This package provides a Haskell library including a
@@ -12794,7 +12081,7 @@ and Fortran complex data types.")
 (define-public ghc-storable-record
   (package
     (name "ghc-storable-record")
-    (version "0.0.4")
+    (version "0.0.5")
     (source
      (origin
        (method url-fetch)
@@ -12804,13 +12091,10 @@ and Fortran complex data types.")
          "storable-record-" version ".tar.gz"))
        (sha256
         (base32
-         "0hjs1km0fc9ch0i1rbycxia5w3939hk4p4md73ikgg4aipqb5zyf"))))
+         "17nf0bx3g169cpslf8prr5h5lvxl389m23rbsyb3kdai45fibpwf"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-utility-ht" ,ghc-utility-ht)
-       ("ghc-storablevector" ,ghc-storablevector)
-       ("ghc-timeit" ,ghc-timeit)))
+     (list ghc-semigroups ghc-utility-ht ghc-storablevector ghc-timeit))
     (home-page "https://hackage.haskell.org/package/storable-record")
     (synopsis "Elegant definition of Storable instances for records")
     (description "With this package you can build a Storable instance of
@@ -12839,9 +12123,7 @@ alignment of the record elements.")
          "0dfzhxgkn1l6ls7zh6iifhyvhm8l47n40z0ar23c6ibsa94w1ynw"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-storable-record" ,ghc-storable-record)
-       ("ghc-utility-ht" ,ghc-utility-ht)
-       ("ghc-base-orphans" ,ghc-base-orphans)))
+     (list ghc-storable-record ghc-utility-ht ghc-base-orphans))
     (home-page "https://hackage.haskell.org/package/storable-tuple")
     (synopsis "Storable instance for pairs and triples")
     (description "This package provides a Storable instance for pairs
@@ -12854,7 +12136,7 @@ together.")
 (define-public ghc-storablevector
   (package
     (name "ghc-storablevector")
-    (version "0.2.13")
+    (version "0.2.13.1")
     (source
      (origin
        (method url-fetch)
@@ -12864,15 +12146,15 @@ together.")
          version ".tar.gz"))
        (sha256
         (base32
-         "1zmr738vwnhnyxbikayqnaz31ilv2qlmscp6iqgl7adcfbal4dzq"))))
+         "06fgxbnc5vwmiv7dxywj7ncjhmxv0wjs0bys5hza6mrwn3sw5r2w"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-non-negative" ,ghc-non-negative)
-       ("ghc-utility-ht" ,ghc-utility-ht)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-unsafe" ,ghc-unsafe)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-syb" ,ghc-syb)))
+     (list ghc-non-negative
+           ghc-utility-ht
+           ghc-semigroups
+           ghc-unsafe
+           ghc-quickcheck
+           ghc-syb))
     (home-page "https://wiki.haskell.org/Storable_Vector")
     (synopsis "Fast, packed, strict storable arrays with a list interface")
     (description "This library provides fast, packed, strict storable
@@ -12904,15 +12186,9 @@ a library that provides fusion with lazy lists.")
          "1lmyx3wkjsayhy5yilzvy0kf8qwmycwlk26r1d8f3cxbfhkr7s52"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-async" ,ghc-async)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-network" ,ghc-network)
-       ("ghc-random" ,ghc-random)
-       ("ghc-zlib" ,ghc-zlib)))
+     (list ghc-async ghc-blaze-builder ghc-network ghc-random ghc-zlib))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-quickcheck ghc-hspec hspec-discover))
     (home-page "https://hackage.haskell.org/package/streaming-commons")
     (synopsis "Conduit and pipes needed by some streaming data libraries")
     (description "This package provides low-dependency functionality commonly
@@ -12923,15 +12199,17 @@ needed by various Haskell streaming data libraries, such as @code{conduit} and
 (define-public ghc-strict
   (package
     (name "ghc-strict")
-    (version "0.3.2")
+    (version "0.4.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/strict/strict-"
                            version ".tar.gz"))
        (sha256
-        (base32 "08cjajqz9h47fkq98mlf3rc8n5ghbmnmgn8pfsl3bdldjdkmmlrc"))))
+        (base32 "0hb24a09c3agsq7sdv8r2b2jc2f4g1blg2xvj4cfadynib0apxnz"))))
     (build-system haskell-build-system)
+    (inputs
+     (list ghc-hashable ghc-these ghc-assoc))
     (home-page "https://hackage.haskell.org/package/strict")
     (synopsis "Strict data types and String IO")
     (description
@@ -12979,7 +12257,7 @@ literals.")
          "0wfxkw4x6j6jq9nd82k83g2k3hskpsvk1dp4cpkshvjr4wg9qny8"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)))
+     (list ghc-hunit))
     (home-page "https://hackage.haskell.org/package/string-qq")
     (synopsis
      "QuasiQuoter for non-interpolated strings, texts and bytestrings.")
@@ -13028,12 +12306,10 @@ occurrences of a substring (the first in case of overlaps) with another.")
          "1k420f497lzkymmxin88ql6ib8dziic43avykv31yq65rgrf7l2g"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)))
+     (list ghc-blaze-builder ghc-hashable ghc-unordered-containers))
     (arguments
      `(#:cabal-revision
-       ("1" "1bhp9gvid2iis411k1vvyj5krzc4ahxcqcd9cwx9h37jxg180xw1")))
+       ("3" "1zc7shja5i63rn7kd9mnq2m052qhp7nh44qy8qp93dm64v9m9pi2")))
     (home-page "https://github.com/diagrams/svg-builder.git")
     (synopsis "Domain-specific language for building Scalable Vector Graphics")
     (description "Easy-to-write domain-specific language (DSL) for
@@ -13043,7 +12319,7 @@ building Scalable Vector Graphics (SVG).")
 (define-public ghc-syb
   (package
     (name "ghc-syb")
-    (version "0.7.1")
+    (version "0.7.2.1")
     (outputs '("out" "static" "doc"))
     (source
      (origin
@@ -13054,10 +12330,10 @@ building Scalable Vector Graphics (SVG).")
              ".tar.gz"))
        (sha256
         (base32
-         "0077vxzyi9ppbphi2ialac3p376k49qly1kskdgf57wdwix9qjp0"))))
+         "15ld5929n3lzfb5sy9nnm77x2l6i2sgsxw47jdrqcrz6fxpwc1qq"))))
     (build-system haskell-build-system)
-    (inputs
-     `(("ghc-hunit" ,ghc-hunit)))
+    (native-inputs
+     (list ghc-tasty ghc-tasty-hunit))
     (home-page
      "http://www.cs.uu.nl/wiki/GenericProgramming/SYB")
     (synopsis "Scrap Your Boilerplate")
@@ -13092,9 +12368,7 @@ variety of traversals.")
                (("chell >= 0\\.4 && < 0\\.5") "chell >= 0.4"))
              #t)))))
     (inputs
-     `(("ghc-system-filepath" ,ghc-system-filepath)
-       ("ghc-chell" ,ghc-chell)
-       ("ghc-temporary" ,ghc-temporary)))
+     (list ghc-system-filepath ghc-chell ghc-temporary))
     (home-page "https://github.com/fpco/haskell-filesystem")
     (synopsis "Consistent file system interaction across GHC versions")
     (description
@@ -13136,7 +12410,6 @@ In particular, this library supports working with POSIX files that have paths
 which can't be decoded in the current locale encoding.")
     (license license:expat)))
 
-
 (define-public ghc-system-filepath
   (package
     (name "ghc-system-filepath")
@@ -13151,16 +12424,12 @@ which can't be decoded in the current locale encoding.")
         (base32
          "14yras4pz2dh55xpwmazcgxijvi8913pjgzb9iw50mjq1lycwmhn"))))
     (build-system haskell-build-system)
-    ;; FIXME: One of the tests fails:
-    ;; [ FAIL  ] tests.validity.posix
-    ;; note: seed=7310214548328823169
-    ;; *** Failed! Falsifiable (after 24 tests):
-    ;; FilePath "/r2\ENQ52\t ;$/o\US=/okG\146\&6\n<u\DC3/5\182\223a\DELN\EOT#\NUL/`[m/\USEKV\ETX([)b6/\ACK\SOo\245\ETBO/f\128\STX`|\EM\"/*\EMA\USD3/\143\&4/\CAN?\SUBee\CANR/9/B0\187Kx4/Vqr\232'b:/\a\234\DLE.\"\179/\ENQ{J/|/G)@^\237/\219ml/\DC3pd\ESC"
-    (arguments `(#:tests? #f))
-    (inputs
-     `(("ghc-chell" ,ghc-chell)
-       ("ghc-chell-quickcheck" ,ghc-chell-quickcheck)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+    (arguments
+     `(#:tests? #f ; TODO: Needs chell ==0.4.*
+       #:cabal-revision
+       ("1" "18llfvisghrn9w9yfgacqn51gs50a0lngah3bmg852h0swj7vkp8")))
+    (native-inputs
+     (list ghc-chell ghc-chell-quickcheck ghc-quickcheck))
     (home-page "https://github.com/fpco/haskell-filesystem")
     (synopsis "High-level, byte-based file and directory path manipulations")
     (description
@@ -13202,7 +12471,7 @@ increasing type safety.")
 (define-public ghc-tabular
   (package
     (name "ghc-tabular")
-    (version "0.2.2.7")
+    (version "0.2.2.8")
     (source
      (origin
        (method url-fetch)
@@ -13212,11 +12481,10 @@ increasing type safety.")
              ".tar.gz"))
        (sha256
         (base32
-         "1ysgq7rrks7f98nnvxil8xz1q27hxdgz4szbjhqwzbwd209dmy0k"))))
+         "0z936gh8n8i8qdkagyxwd9gqq13skd5fv013vdvwsibrxkm0czfb"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-csv" ,ghc-csv)
-       ("ghc-html" ,ghc-html)))
+     (list ghc-csv ghc-html))
     (home-page "https://github.com/bgamari/tabular")
     (synopsis "Two-dimensional data tables with rendering functions")
     (description
@@ -13246,7 +12514,7 @@ B 3 ||       meh |   well... ||  worst ever |          ok
 (define-public ghc-tagged
   (package
     (name "ghc-tagged")
-    (version "0.8.6")
+    (version "0.8.6.1")
     (source
      (origin
        (method url-fetch)
@@ -13256,13 +12524,13 @@ B 3 ||       meh |   well... ||  worst ever |          ok
              ".tar.gz"))
        (sha256
         (base32
-         "1pciqzxf9ncv954v4r527xkxkn7r5hcr13mfw5dg1xjci3qdw5md"))))
+         "00kcc6lmj7v3xm2r3wzw5jja27m4alcw1wi8yiismd0bbzwzrq7m"))))
     (build-system haskell-build-system)
     (arguments
      `(#:cabal-revision
-       ("1" "070xwfw7y81hd63il76dmwbdl9ca1rd07c54zynfx6vpr4wyx4vh")))
+       ("2" "0qi63c3z40i9qm44r571yjzcpb8d473vj2km4kq0fij0ljc7vii9")))
     (inputs
-     `(("ghc-transformers-compat" ,ghc-transformers-compat)))
+     (list ghc-transformers-compat))
     (home-page "https://hackage.haskell.org/package/tagged")
     (synopsis "Haskell phantom types to avoid passing dummy arguments")
     (description "This library provides phantom types for Haskell 98, to avoid
@@ -13283,13 +12551,12 @@ having to unsafely pass dummy arguments.")
         (base32
          "1ppim7cgmn7ng8zbdrwkxhhizc30h15h1c9cdlzamc5jcagl915k"))))
     (build-system haskell-build-system)
-    ;; FIXME: 2/24 tests fail.
-    (arguments `(#:tests? #f))
+    (arguments
+     `(#:cabal-revision
+       ("4" "03a33nj9k62f318qgmp5pgk7i99c8cyqy5f7m7p0bwc5ni39ysfq")))
     (inputs
-     `(("ghc-bytestring-handle" ,ghc-bytestring-handle)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+     (list ghc-bytestring-handle ghc-quickcheck ghc-tasty
+           ghc-tasty-quickcheck))
     (home-page "https://hackage.haskell.org/package/tar")
     (synopsis "Reading, writing and manipulating \".tar\" archive files")
     (description
@@ -13316,15 +12583,10 @@ an index.")
          "0bgn3hyf20g1gfnzy8f41s7nj54kfcyjk2izw99svrw8f3dphi80"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-conduit" ,ghc-conduit)
-       ("ghc-conduit-combinators" ,ghc-conduit-combinators)
-       ("ghc-safe-exceptions" ,ghc-safe-exceptions)))
+     (list ghc-conduit ghc-conduit-combinators ghc-safe-exceptions))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-weigh" ,ghc-weigh)))
+     (list ghc-quickcheck ghc-conduit-extra ghc-hspec ghc-hspec
+           ghc-weigh))
     (home-page "https://github.com/snoyberg/tar-conduit#readme")
     (synopsis "Extract and create tar files using conduit for streaming")
     (description "This library provides a conduit-based, streaming
@@ -13347,12 +12609,9 @@ interface for extracting and creating tar files.")
          "144qhwfwg37l3k313raf4ssiz16jbgwlm1nf4flgqpsbd69jji4c"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-random" ,ghc-random)))
+     (list ghc-exceptions ghc-random))
     (native-inputs
-     `(("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-base-compat ghc-tasty ghc-tasty-hunit))
     (home-page "https://www.github.com/batterseapower/temporary")
     (synopsis "Temporary file and directory support")
     (description "The functions for creating temporary files and directories
@@ -13377,7 +12636,7 @@ installed.")
         (base32
          "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-exceptions" ,ghc-exceptions)))
+    (inputs (list ghc-exceptions))
     (home-page
      "https://www.github.com/feuerbach/temporary")
     (synopsis
@@ -13413,23 +12672,19 @@ dependency.")
 (define-public ghc-texmath
   (package
     (name "ghc-texmath")
-    (version "0.11.3")
+    (version "0.12.3.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "texmath/texmath-" version ".tar.gz"))
               (sha256
                (base32
-                "03rpxbp43bjs62mmw4hv4785n6f6nbf8kj2y9mma5nzk6i2xs09f"))))
+                "1d9r3na7hmkgr0j63fs50ssll506l1wyqhw0dpap7jk0rdz8pv6n"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-syb" ,ghc-syb)
-       ("ghc-network-uri" ,ghc-network-uri)
-       ("ghc-split" ,ghc-split)
-       ("ghc-temporary" ,ghc-temporary)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-xml" ,ghc-xml)
-       ("ghc-pandoc-types" ,ghc-pandoc-types)))
+     (list ghc-syb ghc-network-uri ghc-split ghc-xml ghc-pandoc-types))
+    (native-inputs
+     (list ghc-temporary ghc-utf8-string))
     (home-page "https://github.com/jgm/texmath")
     (synopsis "Conversion between formats used to represent mathematics")
     (description
@@ -13466,7 +12721,7 @@ text package.")
 (define-public ghc-text-manipulate
   (package
     (name "ghc-text-manipulate")
-    (version "0.2.0.1")
+    (version "0.3.0.0")
     (source
      (origin
        (method url-fetch)
@@ -13477,11 +12732,10 @@ text package.")
              ".tar.gz"))
        (sha256
         (base32
-         "0bwxyjj3ll45srxhsp2ihikgqglvjc6m02ixr8xpvyqwkcfwgsg0"))))
+         "0pmzp38m3r0k6ps97b1wqplxlgvvlaid09x53jl3gxng0fwq910a"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty ghc-tasty-hunit))
     (home-page
      "https://github.com/brendanhay/text-manipulate")
     (synopsis
@@ -13504,7 +12758,7 @@ upgraded.  Consider yourself warned!")
 (define-public ghc-text-metrics
   (package
     (name "ghc-text-metrics")
-    (version "0.3.0")
+    (version "0.3.1")
     (source
      (origin
        (method url-fetch)
@@ -13512,13 +12766,12 @@ upgraded.  Consider yourself warned!")
                            "text-metrics/text-metrics-" version ".tar.gz"))
        (sha256
         (base32
-         "18mzxwkdvjp31r720ai9bnxr638qq8x3a2v408bz0d8f0rsayx1q"))))
+         "17bp1lnbkqr5ykrcd6v5sqv0fhljck7hky8zrrpw7rlkb1f3sdc2"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-vector" ,ghc-vector)))
+     (list ghc-vector))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-hspec" ,ghc-hspec)))
+     (list ghc-quickcheck ghc-hspec))
     (arguments
      `(#:cabal-revision
        ("4" "017drxq9x56b345d8w5m8xdsi1zzs0z16pbdx8j35cd1lsnh3kf1")))
@@ -13544,8 +12797,7 @@ string metrics efficiently.")
         (base32 "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-primitive" ,ghc-primitive)
-       ("ghc-random" ,ghc-random)))
+     (list ghc-primitive ghc-random))
     (home-page "https://hackage.haskell.org/package/tf-random")
     (synopsis "High-quality splittable pseudorandom number generator")
     (description "This package contains an implementation of a high-quality
@@ -13558,7 +12810,7 @@ Hashing\" by Claessen, Pałka for details and the rationale of the design.")
 (define-public ghc-th-abstraction
   (package
     (name "ghc-th-abstraction")
-    (version "0.3.1.0")
+    (version "0.4.3.0")
     (source
      (origin
        (method url-fetch)
@@ -13567,7 +12819,7 @@ Hashing\" by Claessen, Pałka for details and the rationale of the design.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1f81w0gshvc816cf9qz0f19jsrzh6wpzmmy317xrgn63dv61p7jb"))))
+         "01nyscmjriga4fh4362b4zjad48hdv33asjkd28sj8hx3pii7fy8"))))
     (build-system haskell-build-system)
     (home-page "https://github.com/glguy/th-abstraction")
     (synopsis "Nicer interface for reified information about data types")
@@ -13581,7 +12833,7 @@ Template Haskell.")
 (define-public ghc-th-expand-syns
   (package
     (name "ghc-th-expand-syns")
-    (version "0.4.5.0")
+    (version "0.4.8.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -13589,10 +12841,13 @@ Template Haskell.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1p4wfyycan8zsp9wi7npx36qwbfsbcgdyxi3ii51scf69dkrx42y"))))
+                "1mw0yxfbmicv0irfrcz4s6pn39za7yjd7zz09ialwym1b46624si"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("1" "0l30cmwm20lgjpvr3a5yxj6429s1hqahjsij8z2ap88754phd41l")))
     (inputs
-     `(("ghc-syb" ,ghc-syb)))
+     (list ghc-syb ghc-th-abstraction))
     (home-page "https://hackage.haskell.org/package/th-expand-syns")
     (synopsis "Expands type synonyms in Template Haskell ASTs")
     (description
@@ -13603,17 +12858,17 @@ Template Haskell.")
 (define-public ghc-th-lift
   (package
     (name "ghc-th-lift")
-    (version "0.8.0.1")
+    (version "0.8.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "th-lift/th-lift-" version ".tar.gz"))
               (sha256
                (base32
-                "1a6qlbdg15cfr5rvl9g3blgwx4v1p0xic0pzv13zx165xbc36ld0"))))
+                "1r2wrnrn6qwy6ysyfnlqn6xbfckw0b22h8n00pk67bhhg81jfn9s"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-th-abstraction" ,ghc-th-abstraction)))
+     (list ghc-th-abstraction))
     (home-page "https://github.com/mboes/th-lift")
     (synopsis "Derive Template Haskell's Lift class for datatypes")
     (description
@@ -13624,7 +12879,7 @@ datatypes.")
 (define-public ghc-th-lift-instances
   (package
     (name "ghc-th-lift-instances")
-    (version "0.1.14")
+    (version "0.1.18")
     (source
      (origin
        (method url-fetch)
@@ -13633,12 +12888,10 @@ datatypes.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "0r1b4jnvcj64wp4hfccwkl4a70n1p1q7qzyx6ax7cmd8k961jz78"))))
+         "09nv1zsffvv6zfz1fjzcqrla3lc350qr4i4xf7wgvzp049sprrdy"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-th-lift" ,ghc-th-lift)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-th-lift ghc-vector ghc-quickcheck))
     (home-page "https://github.com/bennofs/th-lift-instances/")
     (synopsis "Lift instances for template-haskell for common data types.")
     (description "Most data types in the Haskell platform do not have Lift
@@ -13649,22 +12902,27 @@ instances.  This package provides orphan instances for @code{containers},
 (define-public ghc-th-orphans
   (package
     (name "ghc-th-orphans")
-    (version "0.13.9")
+    (version "0.13.12")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "th-orphans/th-orphans-" version ".tar.gz"))
               (sha256
                (base32
-                "1xj1gssv77hdx1r3ndg8k49v3ipj3a6r7crkyvx13jrps3m6ng1z"))))
+                "03n6qxnpxhbzyzbyrjq77d1y62dwgx39mmxfwmnc04l8pawgrxxz"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("1" "0vfz9dl5g9xwp2zmwqc5gngyvjaqj3i0s97vbcslafcqhdqw3qaj")))
     (inputs
-     `(("ghc-th-lift" ,ghc-th-lift)
-       ("ghc-th-lift-instances" ,ghc-th-lift-instances)
-       ("ghc-th-reify-many" ,ghc-th-reify-many)
-       ("ghc-generic-deriving" ,ghc-generic-deriving)))
+     (list ghc-th-lift
+           ghc-th-lift-instances
+           ghc-th-reify-many
+           ghc-th-compat
+           ghc-th-expand-syns
+           ghc-generic-deriving))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)))
+     (list ghc-hspec))
     (home-page "https://hackage.haskell.org/package/th-orphans")
     (synopsis "Orphan instances for TH datatypes")
     (description
@@ -13677,7 +12935,7 @@ package, and that's where the version number started.")
 (define-public ghc-these
   (package
     (name "ghc-these")
-    (version "1.0.1")
+    (version "1.1.1.1")
     (source
      (origin
        (method url-fetch)
@@ -13687,20 +12945,13 @@ package, and that's where the version number started.")
              ".tar.gz"))
        (sha256
         (base32
-         "1k0pi65g7cm9hzdw6my6bzz2zvddkmj1qs45ymqmi316bpiixk3r"))))
+         "027m1gd7i6jf2ppfkld9qrv3xnxg276587pmx10z9phpdvswk66p"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-assoc" ,ghc-assoc)
-       ("ghc-semigroupoids" ,ghc-semigroupoids)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-hashable ghc-assoc))
     (arguments
      `(#:cabal-revision
-       ("1"
-        "0923r86fnmgpx0msm68aszirh2n19nn5bccgjxfh2146jw4z7w3z")))
+       ("2" "16x3am622jn97j1d9879x7j5zbjn33bkfaa0dq0xyp1fbc0s7h5x")))
     (home-page
      "https://github.com/isomorphism/these")
     (synopsis "Either-or-both data type")
@@ -13745,10 +12996,8 @@ variant of @code{These}.
          "0bjnjhnq3km6xqk0fn1fgyz5xdw4h6lylbwwbcmkkfzwcz0c76hk"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-concurrent-extra" ,ghc-concurrent-extra)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+     (list ghc-concurrent-extra ghc-hunit ghc-test-framework
+           ghc-test-framework-hunit))
     (home-page "https://github.com/basvandijk/threads")
     (synopsis "Fork threads and wait for their result")
     (description "This package provides functions to fork threads and
@@ -13771,7 +13020,7 @@ package is similar to the @code{threadmanager}, @code{async} and
 (define-public ghc-th-reify-many
   (package
     (name "ghc-th-reify-many")
-    (version "0.1.9")
+    (version "0.1.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -13779,11 +13028,10 @@ package is similar to the @code{threadmanager}, @code{async} and
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0hxf56filzqnyrc8q7766vai80y6cgrrbrczx6n93caskl1dv2gq"))))
+                "19g4gc1q3zxbylmvrgk3dqjzychq2k02i7fwvs3vhbrg4ihhw9cx"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-safe" ,ghc-safe)
-       ("ghc-th-expand-syns" ,ghc-th-expand-syns)))
+     (list ghc-safe ghc-th-expand-syns))
     (home-page "https://github.com/mgsloan/th-reify-many")
     (synopsis "Recurseively reify template haskell datatype info")
     (description
@@ -13796,7 +13044,7 @@ function which generates instances.")
 (define-public ghc-time-compat
   (package
     (name "ghc-time-compat")
-    (version "1.9.2.2")
+    (version "1.9.5")
     (source
      (origin
        (method url-fetch)
@@ -13804,21 +13052,21 @@ function which generates instances.")
                            "time-compat/time-compat-" version ".tar.gz"))
        (sha256
         (base32
-         "05va0rqs759vbridbcl6hksp967j9anjvys8vx72fnfkhlrn2s52"))))
+         "19p3056i6kh8lgcdsnwsh8pj80xyi23kmw9n7hmdacczs5kv49ii"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-base-orphans" ,ghc-base-orphans)))
+     (list ghc-base-orphans))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+     (list ghc-hunit
+           ghc-base-compat
+           ghc-quickcheck
+           ghc-tagged
+           ghc-tasty
+           ghc-tasty-hunit
+           ghc-tasty-quickcheck))
     (arguments
      `(#:cabal-revision
-       ("1" "0k8ph4sydaiqp8dav4if6hpiaq8h1xsr93khmdr7a1mmfwdxr64r")))
+       ("1" "1f6r8cyfgzpfg9nrsqbf99pi44fyds9wcmgwxb4s0zmlb5dbv1m5")))
     (home-page "https://github.com/phadej/time-compat")
     (synopsis "Compatibility package for time")
     (description "This package tries to compat as many @code{time}
@@ -13839,7 +13087,7 @@ features as possible.")
         (base32
          "0b2hmj8wwrfkndwzgm11qr496ca2ahwdxcj3m0ii91bxvrk1bzq7"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-old-locale" ,ghc-old-locale)))
+    (inputs (list ghc-old-locale))
     (home-page "https://github.com/khibino/haskell-time-locale-compat")
     (synopsis "Compatibility of TimeLocale between old-locale and time-1.5")
     (description "This package contains a wrapped name module for
@@ -13860,7 +13108,7 @@ features as possible.")
          "1nzwj0fxz370ks6vr1sylcidx33rnqq45y3q9yv9n4dj43nid9lh"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-auto-update" ,ghc-auto-update)))
+     (list ghc-auto-update))
     (home-page "https://github.com/yesodweb/wai")
     (synopsis "Scalable timer")
     (description "This library contains scalable timer functions provided by a
@@ -13914,21 +13162,20 @@ create timezone series, see the ghc-timezone-olson package.")
 (define-public ghc-timezone-olson
   (package
    (name "ghc-timezone-olson")
-   (version "0.1.9")
+   (version "0.2.0")
    (source
     (origin
      (method url-fetch)
      (uri
       (string-append
-       "mirror://hackage/package/timezone-olson/timezone-olson-"
+       "https://hackage.haskell.org/package/timezone-olson/timezone-olson-"
        version ".tar.gz"))
      (sha256
       (base32
-       "05abywx1nrcaz0nqzfy4zw62bc5qd7pdfnjvv4drxkwv084ha8rj"))))
+       "0b9vh27b9nz803yhd93d5z63bs370lvn4vkdajxaak9clxlw6mwg"))))
    (build-system haskell-build-system)
    (inputs
-    `(("ghc-timezone-series" ,ghc-timezone-series)
-      ("ghc-extensible-exceptions" ,ghc-extensible-exceptions)))
+    (list ghc-timezone-series ghc-extensible-exceptions))
    (home-page "https://archives.haskell.org/projects.haskell.org/time-ng/")
    (synopsis "Parser and renderer for binary Olson timezone files")
    (description
@@ -13943,7 +13190,7 @@ objects from the timezone-series package.")
 (define-public ghc-tldr
   (package
     (name "ghc-tldr")
-    (version "0.4.0.2")
+    (version "0.9.2")
     (source
      (origin
        (method url-fetch)
@@ -13953,16 +13200,18 @@ objects from the timezone-series package.")
              ".tar.gz"))
        (sha256
         (base32
-         "1zy9yyg7bxiyz1prkvrscggsb9p0f8y0nqxxxzlgzvnh2nmqf8f2"))))
+         "1yypb9zhsj9ks7bbw2sayqv3rn9y8z3w5p1xmsnwb4w99dqmvcx5"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-cmark" ,ghc-cmark)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-typed-process" ,ghc-typed-process)
-       ("ghc-semigroups" ,ghc-semigroups)))
+     (list ghc-ansi-terminal
+           ghc-attoparsec
+           ghc-cmark
+           ghc-http-conduit
+           ghc-optparse-applicative
+           ghc-semigroups
+           ghc-zip-archive))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-golden" ,ghc-tasty-golden)))
+     (list ghc-tasty ghc-tasty-golden))
     (home-page "https://github.com/psibi/tldr-hs#readme")
     (synopsis "Haskell tldr client")
     (description "This package provides the @command{tldr} command and a
@@ -13985,8 +13234,7 @@ man pages with practical examples.")
         (base32 "0m7s0q7f8c7glxzqhf2j86ch5xhk6jnzwwsa4mkywag22119c290"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-bencode" ,ghc-bencode)
-       ("ghc-syb" ,ghc-syb)))
+     (list ghc-bencode ghc-syb))
     (home-page "https://hackage.haskell.org/package/torrent")
     (synopsis "BitTorrent file parser and generator")
     (description "This library provides support for parsing and generating
@@ -14035,7 +13283,7 @@ other transformers.")
 (define-public ghc-transformers-base
   (package
     (name "ghc-transformers-base")
-    (version "0.4.5.2")
+    (version "0.4.6")
     (source
      (origin
        (method url-fetch)
@@ -14045,10 +13293,10 @@ other transformers.")
              ".tar.gz"))
        (sha256
         (base32
-         "1s256bi0yh0x2hp2gwd30f3mg1cv53zz397dv1yhfsnfzmihrj6h"))))
+         "146g69yxmlrmvqnzwcw4frxfl3z04lda9zqwcqib34dnkrlghfrj"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-transformers-compat" ,ghc-transformers-compat)))
+     (list ghc-transformers-compat))
     (home-page
      "https://hackage.haskell.org/package/transformers-compat")
     (synopsis
@@ -14062,7 +13310,7 @@ compatibility to run on old versions of the platform.")
 (define-public ghc-transformers-compat
   (package
     (name "ghc-transformers-compat")
-    (version "0.6.5")
+    (version "0.6.6")
     (source
      (origin
        (method url-fetch)
@@ -14071,7 +13319,7 @@ compatibility to run on old versions of the platform.")
              "/transformers-compat-" version ".tar.gz"))
        (sha256
         (base32
-         "02v2fjbvcrlpvhcsssap8dy8y9pp95jykrlc5arm39sxa48wyrys"))))
+         "1yd936az31g9995frc84g05rrb5b7w59ajssc5183lp6wm8h4bky"))))
     (build-system haskell-build-system)
     (home-page "https://github.com/ekmett/transformers-compat/")
     (synopsis "Small compatibility shim between transformers 0.3 and 0.4")
@@ -14084,7 +13332,7 @@ but also need those types.")
 (define-public ghc-tree-diff
   (package
     (name "ghc-tree-diff")
-    (version "0.1")
+    (version "0.2.1")
     (source
      (origin
        (method url-fetch)
@@ -14094,31 +13342,31 @@ but also need those types.")
              ".tar.gz"))
        (sha256
         (base32
-         "1156nbqn0pn9lp4zjsy4vv5g5wmy4zxwmbqdgvq349rydynh3ng3"))))
+         "0bybi4qp7nj9117yza5qqgw2f7s6rk3i7q642jqd7sdn3bx5cnap"))))
     (build-system haskell-build-system)
-    (inputs
-     `(("ghc-aeson" ,ghc-aeson)
-       ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-bytestring-builder" ,ghc-bytestring-builder)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-parsers" ,ghc-parsers)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-tagged" ,ghc-tagged)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-uuid-types" ,ghc-uuid-types)
-       ("ghc-vector" ,ghc-vector)))
-    (native-inputs
-     `(("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
-       ("ghc-trifecta" ,ghc-trifecta)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-golden" ,ghc-tasty-golden)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+    (arguments
+     `(#:cabal-revision
+       ("1" "0brlnq5ddmambidll1dn4jnjac2i44a9hd5hwp2p0rbh1s8jfyhm")))
+    (inputs
+     (list ghc-aeson
+           ghc-ansi-terminal
+           ghc-ansi-wl-pprint
+           ghc-base-compat
+           ghc-bytestring-builder
+           ghc-hashable
+           ghc-parsers
+           ghc-primitive
+           ghc-quickcheck
+           ghc-scientific
+           ghc-semialign
+           ghc-strict
+           ghc-tagged
+           ghc-these
+           ghc-unordered-containers
+           ghc-uuid-types
+           ghc-vector))
+    (native-inputs
+     (list ghc-trifecta ghc-tasty ghc-tasty-golden ghc-tasty-quickcheck))
     (home-page "https://github.com/phadej/tree-diff")
     (synopsis "Compute difference between (expression) trees")
     (description "This Haskell library provides a function for computing
@@ -14130,7 +13378,7 @@ compute the difference between arbitrary abstract datatypes (ADTs) using
 (define-public ghc-trifecta
   (package
     (name "ghc-trifecta")
-    (version "2")
+    (version "2.1.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -14138,33 +13386,28 @@ compute the difference between arbitrary abstract datatypes (ADTs) using
                     "trifecta-" version ".tar.gz"))
               (sha256
                (base32
-                "0hznd8i65s81xy13i2qc7cvipw3lfb2yhkv53apbdsh6sbljz5sk"))))
-    (build-system haskell-build-system)
-    (arguments
-     `(#:tests? #f ; doctest suite fails to build on i686
-       #:cabal-revision
-       ("4" "0xbwyvwl6f2zylk60f2akwgq03qv49113xil7b1z1s3vlwbn5aj1")))
-    (inputs
-     `(("ghc-reducers" ,ghc-reducers)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-blaze-markup" ,ghc-blaze-markup)
-       ("ghc-charset" ,ghc-charset)
-       ("ghc-comonad" ,ghc-comonad)
-       ("ghc-fingertree" ,ghc-fingertree)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-lens" ,ghc-lens)
-       ("ghc-parsers" ,ghc-parsers)
-       ("ghc-profunctors" ,ghc-profunctors)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-utf8-string" ,ghc-utf8-string)))
-    (native-inputs
-     `(("cabal-doctest" ,cabal-doctest)
-       ("ghc-doctest" ,ghc-doctest)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+                "1lhzi0xxvilvgjy3yf3f85wfmrks562hhsnl0kg1xwji36rgwp6y"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-ansi-terminal
+           ghc-blaze-builder
+           ghc-blaze-html
+           ghc-blaze-markup
+           ghc-charset
+           ghc-comonad
+           ghc-fingertree
+           ghc-hashable
+           ghc-indexed-traversable
+           ghc-lens
+           ghc-parsers
+           ghc-prettyprinter-ansi-terminal
+           ghc-prettyprinter
+           ghc-profunctors
+           ghc-reducers
+           ghc-unordered-containers
+           ghc-utf8-string))
+    (native-inputs
+     (list ghc-quickcheck))
     (home-page "https://github.com/ekmett/trifecta/")
     (synopsis "Parser combinator library with convenient diagnostics")
     (description "Trifecta is a modern parser combinator library for Haskell,
@@ -14196,40 +13439,36 @@ statically known size.")
 (define-public ghc-turtle
   (package
     (name "ghc-turtle")
-    (version "1.5.15")
+    (version "1.5.22")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/turtle/turtle-"
+             "https://hackage.haskell.org/package/turtle/turtle-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "0yckgsc2a4g5x867gni80ldp226bsnhncfbil4ql6v2zwm4r8p7f"))))
+         "14lf43b5rxci6p9sy1gkb715m4b1s4rl65swn2qpdqv3h2yvpi4s"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
-       ("ghc-async" ,ghc-async)
-       ("ghc-clock" ,ghc-clock)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-foldl" ,ghc-foldl)
-       ("ghc-hostname" ,ghc-hostname)
-       ("ghc-managed" ,ghc-managed)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-system-filepath" ,ghc-system-filepath)
-       ("ghc-system-fileio" ,ghc-system-fileio)
-       ("ghc-streaming-commons" ,ghc-streaming-commons)
-       ("ghc-temporary" ,ghc-temporary)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-optional-args" ,ghc-optional-args)
-       ("ghc-unix-compat" ,ghc-unix-compat)))
+     (list ghc-ansi-wl-pprint
+           ghc-async
+           ghc-clock
+           ghc-exceptions
+           ghc-foldl
+           ghc-hostname
+           ghc-managed
+           ghc-semigroups
+           ghc-system-filepath
+           ghc-system-fileio
+           ghc-streaming-commons
+           ghc-temporary
+           ghc-optparse-applicative
+           ghc-optional-args
+           ghc-unix-compat))
     (native-inputs
-     `(("ghc-doctest" ,ghc-doctest)
-       ("ghc-fail" ,ghc-fail)))
-    (arguments
-     `(#:cabal-revision
-       ("1" "02q1rv7zx31xz9wnmcqwd4w3iw7623p07iyi21zr0cqlignic5pg")))
+     (list ghc-doctest ghc-fail))
     (home-page
      "http://hackage.haskell.org/package/turtle")
     (synopsis "Shell programming, Haskell-style")
@@ -14259,7 +13498,7 @@ similar functionality.")
 (define-public ghc-typed-process
   (package
     (name "ghc-typed-process")
-    (version "0.2.6.0")
+    (version "0.2.6.3")
     (source
      (origin
        (method url-fetch)
@@ -14268,16 +13507,12 @@ similar functionality.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1cf2pfym8zdxvvy7xv72ixj7wy3rjrdss6f57k1ysgs66cgsi8ii"))))
+         "071mw4yv4xr5n82si33qbcqcxvcr7h56zlyd8gmsfrsdnacbq47k"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-async" ,ghc-async)
-       ("ghc-unliftio-core" ,ghc-unliftio-core)))
+     (list ghc-async ghc-unliftio-core))
     (native-inputs
-     `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)
-       ("ghc-temporary" ,ghc-temporary)))
+     (list ghc-base64-bytestring ghc-hspec hspec-discover ghc-temporary))
     (home-page "https://haskell-lang.org/library/typed-process")
     (synopsis "Run external processes with strong typing of streams")
     (description
@@ -14311,7 +13546,7 @@ function.")
 (define-public ghc-unagi-chan
   (package
     (name "ghc-unagi-chan")
-    (version "0.4.1.2")
+    (version "0.4.1.3")
     (source
      (origin
        (method url-fetch)
@@ -14319,16 +13554,12 @@ function.")
                            "/unagi-chan-" version ".tar.gz"))
        (sha256
         (base32
-         "1lnl5n4jnjmm4chp461glcwkrrw63rjz3fvprwxcy3lkpbkrqvgn"))))
+         "15fnk9x4fd2ryp31fjfrwm8k61m3a0qyb95m4065zc0yi0jyacp2"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-atomic-primops" ,ghc-atomic-primops)
-       ("ghc-primitive" ,ghc-primitive)))
+     (list ghc-atomic-primops ghc-primitive))
     (arguments
-     `(#:tests? #f ; FIXME: Tests expect primitive 0.7
-       #:cabal-revision
-       ("1"
-        "09pqi867wskwgc5lpn197f895mbn1174ydgllvcppcsmrz2b6yr6")))
+     `(#:tests? #f)) ; TODO: Fail.
     (home-page "https://hackage.haskell.org/package/unagi-chan")
     (synopsis "Fast concurrent queues with a Chan-like API, and more")
     (description
@@ -14342,7 +13573,7 @@ instruction is not available.")
 (define-public ghc-unbounded-delays
   (package
     (name "ghc-unbounded-delays")
-    (version "0.1.1.0")
+    (version "0.1.1.1")
     (source
      (origin
        (method url-fetch)
@@ -14352,7 +13583,7 @@ instruction is not available.")
              ".tar.gz"))
        (sha256
         (base32
-         "1ir9fghbrc214c97bwafk5ck6cacxz1pdnq4i18p604d1b8zg9wa"))))
+         "11b1vmlfv4pmmpl4kva58w7cf50xsj819cq3wzqgnbz3px9pxbar"))))
     (build-system haskell-build-system)
     (home-page "https://github.com/basvandijk/unbounded-delays")
     (synopsis "Unbounded thread delays and timeouts")
@@ -14365,15 +13596,17 @@ unbounded @code{Integer} type.")
 (define-public ghc-unexceptionalio
   (package
     (name "ghc-unexceptionalio")
-    (version "0.4.0")
+    (version "0.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/"
                            "unexceptionalio-" version "/" "unexceptionalio-"
                            version ".tar.gz"))
-       (sha256 (base32 "09gynk472l7nn5l2w320n4dwigwp0wh0shfp6dyw6r5h2jdxz18p"))))
+       (sha256 (base32 "07py2nffdgxpz8sryvqcghzb2kiiagpdf5ja1dia4z0rpwi79smh"))))
     (build-system haskell-build-system)
+    (native-inputs
+     (list ghc-hunit ghc-test-framework ghc-test-framework-hunit))
     (home-page "https://github.com/singpolyma/unexceptionalio")
     (synopsis "IO without any non-error, synchronous exceptions")
     (description "When you've caught all the exceptions that can be
@@ -14383,7 +13616,7 @@ handled safely, this is what you're left with.")
 (define-public ghc-unicode-transforms
   (package
     (name "ghc-unicode-transforms")
-    (version "0.3.6")
+    (version "0.3.7.1")
     (source
      (origin
        (method url-fetch)
@@ -14392,14 +13625,10 @@ handled safely, this is what you're left with.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1akscvyssif4hki3g6hy0jmjyr8cqly1whzvzj0km2b3qh0x09l3"))))
+         "1010sahi4mjzqmxqlj3w73rlymbl2370x5vizjqbx7mb86kxzx4f"))))
     (build-system haskell-build-system)
-    (inputs
-     `(("ghc-bitarray" ,ghc-bitarray)))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-getopt-generics" ,ghc-getopt-generics)
-       ("ghc-split" ,ghc-split)))
+     (list ghc-quickcheck ghc-getopt-generics ghc-split ghc-hspec))
     (home-page "https://github.com/composewell/unicode-transforms")
     (synopsis "Unicode normalization")
     (description "This library provides tools for fast Unicode 12.1.0
@@ -14434,7 +13663,7 @@ constant-time:
 (define-public ghc-uniplate
   (package
     (name "ghc-uniplate")
-    (version "1.6.12")
+    (version "1.6.13")
     (source
      (origin
        (method url-fetch)
@@ -14444,12 +13673,10 @@ constant-time:
              ".tar.gz"))
        (sha256
         (base32
-         "1dx8f9aw27fz8kw0ad1nm6355w5rdl7bjvb427v2bsgnng30pipw"))))
+         "1lis5qcb5j7yzd1cqjaqpb6bmkyjfb7l4nhk3ykmcma4513cjxz7"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-syb" ,ghc-syb)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)))
+     (list ghc-syb ghc-hashable ghc-unordered-containers))
     (home-page "https://github.com/ndmitchell/uniplate")
     (synopsis "Simple, concise and fast generic operations")
     (description "Uniplate is a library for writing simple and concise generic
@@ -14460,7 +13687,7 @@ work, but is substantially simpler and faster.")
 (define-public ghc-unix-compat
   (package
     (name "ghc-unix-compat")
-    (version "0.5.2")
+    (version "0.5.3")
     (source
      (origin
        (method url-fetch)
@@ -14470,7 +13697,7 @@ work, but is substantially simpler and faster.")
              ".tar.gz"))
        (sha256
         (base32
-         "1a8brv9fax76b1fymslzyghwa6ma8yijiyyhn12msl3i5x24x6k5"))))
+         "1j75i3dj489rz60ij3nfza774mb7mw33amhdkm10dd0dxabvb4q8"))))
     (build-system haskell-build-system)
     (home-page
      "https://github.com/jystic/unix-compat")
@@ -14500,8 +13727,7 @@ isn't available, portable implementations are used.")
      `(#:tests? #f)) ; FIXME: Test fails with "System.Time not found".  This
                      ; is weird, that should be provided by GHC 7.10.2.
     (inputs
-     `(("ghc-old-time" ,ghc-old-time)
-       ("ghc-old-locale" ,ghc-old-locale)))
+     (list ghc-old-time ghc-old-locale))
     (home-page "https://hackage.haskell.org/package/unix-time")
     (synopsis "Unix time parser/formatter and utilities")
     (description "This library provides fast parsing and formatting utilities
@@ -14511,7 +13737,7 @@ for Unix time in Haskell.")
 (define-public ghc-unliftio
   (package
     (name "ghc-unliftio")
-    (version "0.2.12")
+    (version "0.2.20")
     (source
      (origin
        (method url-fetch)
@@ -14521,14 +13747,13 @@ for Unix time in Haskell.")
              ".tar.gz"))
        (sha256
         (base32
-         "02gy1zrxgzg4xmzm8lafsf1nyr3as1q20r8ld73xg3q7rkag9acg"))))
+         "0mbm57h7r16qd7kpglbm50qrnfjmazd70avbrl647n4jwhlrp7my"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f)) ; FIXME: hspec-discover not in PATH
     (outputs '("out" "static" "doc"))
     (inputs
-     `(("ghc-async" ,ghc-async)
-       ("ghc-unliftio-core" ,ghc-unliftio-core)))
-    (native-inputs `(("ghc-hspec" ,ghc-hspec)))
+     (list ghc-async ghc-unliftio-core))
+    (native-inputs (list ghc-hspec))
     (home-page "https://github.com/fpco/unliftio")
     (synopsis "Provides MonadUnliftIO typecplass for unlifting monads to
 IO (batteries included)")
@@ -14540,7 +13765,7 @@ working with it.")
 (define-public ghc-unliftio-core
   (package
     (name "ghc-unliftio-core")
-    (version "0.1.2.0")
+    (version "0.2.0.1")
     (source
      (origin
        (method url-fetch)
@@ -14549,11 +13774,11 @@ working with it.")
                            "unliftio-core-" version ".tar.gz"))
        (sha256
         (base32
-         "0y3siyx3drkw7igs380a87h8qfbbgcyxxlcnshp698hcc4yqphr4"))))
+         "16i97jax8rys57l0g0qswfwxh1cl5bgw2lw525rm6bzajw90v7wi"))))
     (build-system haskell-build-system)
     (arguments
      `(#:cabal-revision
-       ("2" "0jqrjjbgicx48wzcjxs1xmih48ay79rhmrz6081dldlfxynli6vz")))
+       ("2" "1xx9nmxxg87nhwxgbmmw0xbrppnjc23ppyryar04i3njyg9wvazr")))
     (home-page
      "https://github.com/fpco/unliftio/tree/master/unliftio-core#readme")
     (synopsis "The MonadUnliftIO typeclass for unlifting monads to IO")
@@ -14565,7 +13790,7 @@ functions.")
 (define-public ghc-unordered-containers
   (package
     (name "ghc-unordered-containers")
-    (version "0.2.10.0")
+    (version "0.2.14.0")
     (outputs '("out" "static" "doc"))
     (source
      (origin
@@ -14575,16 +13800,16 @@ functions.")
              "/unordered-containers-" version ".tar.gz"))
        (sha256
         (base32
-         "0wy5hfrs880hh8hvp648bl07ws777n3kkmczzdszr7papnyigwb5"))))
+         "0rw8kmg7xjlacmr1hcpin95abkd387awf154s9ran7zg9jllh3x1"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-chasingbottoms" ,ghc-chasingbottoms)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-       ("ghc-hashable" ,ghc-hashable)))
+     (list ghc-chasingbottoms
+           ghc-hunit
+           ghc-quickcheck
+           ghc-test-framework
+           ghc-test-framework-hunit
+           ghc-test-framework-quickcheck2
+           ghc-hashable))
     (home-page
      "https://github.com/tibbe/unordered-containers")
     (synopsis
@@ -14634,7 +13859,7 @@ a style ready for qualification, that is, you should import them by
 (define-public ghc-uri-bytestring
   (package
     (name "ghc-uri-bytestring")
-    (version "0.3.2.2")
+    (version "0.3.3.1")
     (source
      (origin
        (method url-fetch)
@@ -14643,19 +13868,17 @@ a style ready for qualification, that is, you should import them by
                            "uri-bytestring-" version ".tar.gz"))
        (sha256
         (base32
-         "0spzv3mwlpxiamd7347sxwcy2xri16ak1y7p1v4fisnvq4jprm67"))))
+         "0s0k26v5x6601rbpkjkl5vp3dkp9xwj1dlgy4xkl470i4sna1rzk"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-attoparsec" ,ghc-attoparsec)
-              ("ghc-blaze-builder" ,ghc-blaze-builder)
-              ("ghc-th-lift-instances" ,ghc-th-lift-instances)))
-    (native-inputs `(("ghc-hunit" ,ghc-hunit)
-                     ("ghc-tasty" ,ghc-tasty)
-                     ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-                     ("ghc-hedgehog" ,ghc-hedgehog)
-                     ("ghc-tasty-hedgehog" ,ghc-tasty-hedgehog)
-                     ("ghc-base-compat" ,ghc-base-compat)
-                     ("ghc-semigroups" ,ghc-semigroups)
-                     ("ghc-safe" ,ghc-safe)))
+    (inputs (list ghc-attoparsec ghc-blaze-builder ghc-th-lift-instances))
+    (native-inputs (list ghc-hunit
+                         ghc-tasty
+                         ghc-tasty-hunit
+                         ghc-hedgehog
+                         ghc-tasty-hedgehog
+                         ghc-base-compat
+                         ghc-semigroups
+                         ghc-safe))
     (home-page "https://github.com/Soostone/uri-bytestring")
     (synopsis "Haskell URI parsing as ByteStrings")
     (description "This Haskell package aims to be an RFC3986 compliant URI
@@ -14690,7 +13913,7 @@ including only one module.")
 (define-public ghc-utf8-string
   (package
     (name "ghc-utf8-string")
-    (version "1.0.1.1")
+    (version "1.0.2")
     (source
      (origin
        (method url-fetch)
@@ -14699,11 +13922,9 @@ including only one module.")
              version
              ".tar.gz"))
        (sha256
-        (base32 "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"))))
+        (base32 "16mh36ffva9rh6k37bi1046pgpj14h0cnmj1iir700v0lynxwj7f"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:cabal-revision
-       ("3" "02vhj5gykkqa2dyn7s6gn8is1b5fdn9xcqqvlls268g7cpv6rk38")))
+    (native-inputs (list ghc-hunit))
     (home-page "https://github.com/glguy/utf8-string/")
     (synopsis "Support for reading and writing UTF8 Strings")
     (description
@@ -14715,16 +13936,17 @@ UTF8 without truncation.")
 (define-public ghc-utility-ht
   (package
     (name "ghc-utility-ht")
-    (version "0.0.14")
+    (version "0.0.16")
     (home-page "https://hackage.haskell.org/package/utility-ht")
     (source
      (origin
        (method url-fetch)
        (uri (string-append home-page "/utility-ht-" version ".tar.gz"))
        (sha256
-        (base32 "1a7bgk7wv7sqbxbiv7kankiimr3wij7zdm7s83zwsf886ghyxhk9"))))
+        (base32 "10dvmfhhhj5w4wz5drhvs6i0yv35kbbcbzhy6ci34r3ppcik5rdw"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
+    (native-inputs
+     (list ghc-quickcheck ghc-doctest-exitcode-stdio ghc-doctest-lib))
     (synopsis "Haskell helper functions for Lists, Maybes, Tuples, Functions")
     (description "This package includes Hakell modules providing various
 helper functions for Lists, Maybes, Tuples, Functions.")
@@ -14733,7 +13955,7 @@ helper functions for Lists, Maybes, Tuples, Functions.")
 (define-public ghc-uuid
   (package
     (name "ghc-uuid")
-    (version "1.3.13")
+    (version "1.3.15")
     (source
      (origin
        (method url-fetch)
@@ -14742,32 +13964,16 @@ helper functions for Lists, Maybes, Tuples, Functions.")
                            "uuid-" version ".tar.gz"))
        (sha256
         (base32
-         "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z"))))
+         "0r05h16gd7fgfpq9iz43jcn9jzrgfa0gk4cv1xy0p4rli66rb1gq"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:cabal-revision
-       ("2" "0m185q62jkfb5jsv358nxbnrkv8y8hd0qqvgvh22wvc5g9ipz0r9")
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'strip-test-framework-constraints
-           (lambda _
-             (substitute* "uuid.cabal"
-               (("HUnit            >= 1\\.2   && < 1\\.4") "HUnit")
-               (("QuickCheck       >= 2\\.4   && < 2\\.10") "QuickCheck")
-               (("tasty            >= 0\\.10  && < 0\\.12") "tasty")
-               (("tasty-hunit      == 0\\.9\\.\\*") "tasty-hunit")
-               (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
-    (inputs `(("ghc-cryptohash-sha1" ,ghc-cryptohash-sha1)
-              ("ghc-cryptohash-md5" ,ghc-cryptohash-md5)
-              ("ghc-entropy" ,ghc-entropy)
-              ("ghc-network-info" ,ghc-network-info)
-              ("ghc-random" ,ghc-random)
-              ("ghc-uuid-types" ,ghc-uuid-types)))
-    (native-inputs `(("ghc-hunit" ,ghc-hunit)
-                     ("ghc-quickcheck" ,ghc-quickcheck)
-                     ("ghc-tasty" ,ghc-tasty)
-                     ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-                     ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+    (inputs (list ghc-cryptohash-sha1
+                  ghc-cryptohash-md5
+                  ghc-entropy
+                  ghc-network-info
+                  ghc-random
+                  ghc-uuid-types))
+    (native-inputs (list ghc-quickcheck ghc-tasty ghc-tasty-hunit
+                         ghc-tasty-quickcheck))
     (home-page "https://github.com/hvr/uuid")
     (synopsis "Haskell library to create, compare, parse, and print UUIDs")
     (description "This Haskell library provides utilities creating, comparing,
@@ -14777,7 +13983,7 @@ parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.")
 (define-public ghc-uuid-types
   (package
     (name "ghc-uuid-types")
-    (version "1.0.3")
+    (version "1.0.5")
     (source
      (origin
        (method url-fetch)
@@ -14786,26 +13992,12 @@ parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.")
                            "uuid-types-" version ".tar.gz"))
        (sha256
         (base32
-         "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"))))
+         "1pd7xd6inkmmwjscf7pmiwqjks9y0gi1p8ahqbapvh34gadvhs5d"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'strip-test-framework-constraints
-           (lambda _
-             (substitute* "uuid-types.cabal"
-               (("HUnit >=1\\.2 && < 1\\.4") "HUnit")
-               (("QuickCheck >=2\\.4 && < 2\\.9") "QuickCheck")
-               (("tasty >= 0\\.10 && < 0\\.12") "tasty")
-               (("tasty-hunit == 0\\.9\\.\\*") "tasty-hunit")
-               (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
-    (inputs `(("ghc-hashable" ,ghc-hashable)
-              ("ghc-random" ,ghc-random)))
-    (native-inputs `(("ghc-hunit" ,ghc-hunit)
-                     ("ghc-quickcheck" ,ghc-quickcheck)
-                     ("ghc-tasty" ,ghc-tasty)
-                     ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-                     ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+    (arguments `(#:tests? #f)) ; TODO: Wrong byteorder version?
+    (inputs (list ghc-hashable ghc-random))
+    (native-inputs (list ghc-byteorder ghc-quickcheck ghc-tasty
+                         ghc-tasty-hunit ghc-tasty-quickcheck))
     (home-page "https://github.com/hvr/uuid")
     (synopsis "Haskell type definitions for UUIDs")
     (description "This Haskell library contains type definitions for
@@ -14817,29 +14009,23 @@ functions.")
 (define-public ghc-validation
   (package
     (name "ghc-validation")
-    (version "1.1")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/validation/validation-"
+             "https://hackage.haskell.org/package/validation/validation-"
              version
              ".tar.gz"))
        (sha256
         (base32
-         "1acj7mh3581ks405xswxw6667z7y1y0slisg6jvp6chc191ji9l5"))))
+         "1dv7azpljdcf7irbnznnz31hq611bn1aj2m6ywghz3hgv835qqak"))))
     (build-system haskell-build-system)
-    (arguments
-     `(#:cabal-revision
-       ("1" "1rrjg9z399k6pb55nv85mlr5bkmdqbjwkvl1cy7ydccdx6ks4syp")))
     (inputs
-     `(("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-semigroupoids" ,ghc-semigroupoids)
-       ("ghc-bifunctors" ,ghc-bifunctors)
-       ("ghc-lens" ,ghc-lens)))
+     (list ghc-semigroups ghc-semigroupoids ghc-assoc ghc-bifunctors
+           ghc-lens))
     (native-inputs
-     `(("ghc-hedgehog" ,ghc-hedgehog)
-       ("ghc-hunit" ,ghc-hunit)))
+     (list ghc-hedgehog ghc-hunit))
     (home-page "https://github.com/qfpl/validation")
     (synopsis
      "Data-type like Either but with an accumulating Applicative")
@@ -14864,7 +14050,7 @@ example of, \"An applicative functor that is not a monad.\"")
 (define-public ghc-validity
   (package
     (name "ghc-validity")
-    (version "0.9.0.2")
+    (version "0.11.0.1")
     (source
      (origin
        (method url-fetch)
@@ -14874,10 +14060,9 @@ example of, \"An applicative functor that is not a monad.\"")
              ".tar.gz"))
        (sha256
         (base32
-         "1aa93lp1pqwv7vhx19nazlig8qhbp3psblbz360s5lii3s5rli2v"))))
+         "086nj5ymp4mxxfw9qjgjhd4j3z7gl2y9d89p0b7bkap5ampgdw2x"))))
     (build-system haskell-build-system)
-    (native-inputs `(("ghc-hspec" ,ghc-hspec)
-                     ("hspec-discover" ,hspec-discover)))
+    (native-inputs (list ghc-hspec hspec-discover))
     (home-page
      "https://github.com/NorfairKing/validity")
     (synopsis "Validity typeclass")
@@ -14890,7 +14075,7 @@ explicit by providing a function to check whether the invariants hold.")
 (define-public ghc-vault
   (package
     (name "ghc-vault")
-    (version "0.3.1.3")
+    (version "0.3.1.5")
     (source
      (origin
        (method url-fetch)
@@ -14900,12 +14085,10 @@ explicit by providing a function to check whether the invariants hold.")
              ".tar.gz"))
        (sha256
         (base32
-         "0vdm472vn734xa27jjm2mjacl37mxiqaaahvm4hzqjgyh4cqq377"))))
+         "181ksk1yixjg0jiggw5jvm8am8m8c7lim4xaixf8qnaqvxm6namc"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-semigroups" ,ghc-semigroups)))
+     (list ghc-unordered-containers ghc-hashable ghc-semigroups))
     (home-page
      "https://github.com/HeinrichApfelmus/vault")
     (synopsis "Persistent store for arbitrary values")
@@ -14920,7 +14103,7 @@ representing a store for a single element.")
 (define-public ghc-vector
   (package
     (name "ghc-vector")
-    (version "0.12.0.3")
+    (version "0.12.3.1")
     (outputs '("out" "static" "doc"))
     (source
      (origin
@@ -14931,21 +14114,19 @@ representing a store for a single element.")
              ".tar.gz"))
        (sha256
         (base32
-         "1a756s4w759ji3als5alfxwlckh5zcmykfg9rll4mlr2knzvz8mq"))))
+         "0dczbcisxhhix859dng5zhxkn3xvlnllsq60apqzvmyl5g056jpv"))))
     (build-system haskell-build-system)
     ;; FIXME: To simplify upgrading all Haskell packages, we leave the tests
     ;; disabled for now.
     (arguments
      `(#:tests? #f))
     (inputs
-     `(("ghc-primitive" ,ghc-primitive)
-       ("ghc-random" ,ghc-random)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ;; ("ghc-hunit" ,ghc-hunit)
-       ;; ("ghc-test-framework" ,ghc-test-framework)
-       ;; ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ;; ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-       ))
+     (list ghc-primitive
+           ;; ("ghc-hunit" ,ghc-hunit)
+           ;; ("ghc-test-framework" ,ghc-test-framework)
+           ;; ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+           ;; ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
+           ))
     (home-page "https://github.com/haskell/vector")
     (synopsis "Efficient Arrays")
     (description "This library provides an efficient implementation of
@@ -14956,7 +14137,7 @@ optimisation framework.")
 (define-public ghc-vector-algorithms
   (package
     (name "ghc-vector-algorithms")
-    (version "0.8.0.1")
+    (version "0.8.0.4")
     (source
      (origin
        (method url-fetch)
@@ -14965,12 +14146,12 @@ optimisation framework.")
                            "vector-algorithms-" version ".tar.gz"))
        (sha256
         (base32
-         "1zip8r7hh5g12xrjvhbg38z6hfxy7l6h6pl88qcqc0ygdmwdxg0m"))))
+         "0fxg6w0vh5g2vzw4alajj9ywdijfn9nyx28hbckhmwwbfxb6l5vn"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-vector" ,ghc-vector)))
+     (list ghc-vector))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-quickcheck))
     (home-page "https://github.com/bos/math-functions")
     (synopsis "Algorithms for vector arrays in Haskell")
     (description "This Haskell library algorithms for vector arrays.")
@@ -14979,7 +14160,7 @@ optimisation framework.")
 (define-public ghc-vector-binary-instances
   (package
     (name "ghc-vector-binary-instances")
-    (version "0.2.5.1")
+    (version "0.2.5.2")
     (source
      (origin
        (method url-fetch)
@@ -14989,13 +14170,12 @@ optimisation framework.")
              version ".tar.gz"))
        (sha256
         (base32
-         "04n5cqm1v95pw1bp68l9drjkxqiy2vswxdq0fy1rqcgxisgvji9r"))))
+         "0kgmlb4rf89b18d348cf2k06xfhdpamhmvq7iz5pab5014hknbmp"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-vector" ,ghc-vector)))
+     (list ghc-vector))
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+     (list ghc-tasty ghc-tasty-quickcheck))
     (home-page "https://github.com/bos/vector-binary-instances")
     (synopsis "Instances of Data.Binary and Data.Serialize for vector")
     (description "This library provides instances of @code{Binary} for the
@@ -15008,7 +14188,7 @@ boxed and storable vectors.")
 (define-public ghc-vector-builder
   (package
     (name "ghc-vector-builder")
-    (version "0.3.8")
+    (version "0.3.8.2")
     (source
      (origin
        (method url-fetch)
@@ -15017,18 +14197,16 @@ boxed and storable vectors.")
                            "vector-builder-" version ".tar.gz"))
        (sha256
         (base32
-         "0ww0l52p8s6gmh985adnjbvm1vrqpqbm08qdcrvxwhhcqmxgv6m3"))))
+         "1g1zxp6xcwcq3372a5qqs44cl09a48p21m1jsys5bsampprlmcgs"))))
     (build-system haskell-build-system)
-    (inputs `(("ghc-vector" ,ghc-vector)
-              ("ghc-semigroups" ,ghc-semigroups)
-              ("ghc-base-prelude" ,ghc-base-prelude)))
-    (native-inputs `(("ghc-attoparsec" ,ghc-attoparsec)
-                     ("ghc-tasty" ,ghc-tasty)
-                     ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-                     ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-                     ("ghc-hunit" ,ghc-hunit)
-                     ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
-                     ("ghc-rerebase" ,ghc-rerebase)))
+    (inputs (list ghc-vector ghc-semigroups ghc-base-prelude))
+    (native-inputs (list ghc-attoparsec
+                         ghc-tasty
+                         ghc-tasty-hunit
+                         ghc-tasty-quickcheck
+                         ghc-hunit
+                         ghc-quickcheck-instances
+                         ghc-rerebase))
     (home-page "https://github.com/nikita-volkov/vector-builder")
     (synopsis "Vector builder for Haskell")
     (description "This Haskell package provides an API for constructing vectors.
@@ -15043,7 +14221,7 @@ vector. ")
 (define-public ghc-vector-th-unbox
   (package
     (name "ghc-vector-th-unbox")
-    (version "0.2.1.7")
+    (version "0.2.1.9")
     (source
      (origin
        (method url-fetch)
@@ -15052,11 +14230,10 @@ vector. ")
                            "vector-th-unbox-" version ".tar.gz"))
        (sha256
         (base32
-         "0q8dqnbv1c2gi7jjdhqj14abj1vik23ki6lq4iz2sz18yc7q69fi"))))
+         "0jbzm31d91kxn8m0h6iplj54h756q6f4zzdrnb2w7rzz5zskgqyl"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-vector" ,ghc-vector)
-       ("ghc-data-default" ,ghc-data-default)))
+     (list ghc-vector ghc-data-default))
     (home-page "https://github.com/liyang/vector-th-unbox")
     (synopsis "Deriver for Data.Vector.Unboxed using Template Haskell")
     (description "This Haskell library provides a Template Haskell
@@ -15080,8 +14257,7 @@ and from some existing type with an Unbox instance.")
          "05vk3x1r9a2pqnzfji475m5gdih2im1h7rbi2sc67p1pvj6pbbsk"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-hashable" ,ghc-hashable)))
+     (list ghc-semigroups ghc-hashable))
     (home-page "https://github.com/ekmett/void")
     (synopsis
      "Logically uninhabited data type")
@@ -15113,14 +14289,9 @@ given term should not exist.")
                (("temporary.* < 1\\.3")
                 "temporary >= 1.1 && < 1.4")))))))
     (inputs
-     `(("ghc-cereal" ,ghc-cereal)
-       ("ghc-data-default-class"
-        ,ghc-data-default-class)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-temporary" ,ghc-temporary)))
+     (list ghc-cereal ghc-data-default-class ghc-quickcheck ghc-temporary))
     (native-inputs
-     `(("hspec-discover" ,hspec-discover)
-       ("ghc-hspec" ,ghc-hspec)))
+     (list hspec-discover ghc-hspec))
     (home-page "https://github.com/mrkkrp/wave")
     (synopsis "Work with WAVE and RF64 files in Haskell")
     (description "This package allows you to work with WAVE and RF64
@@ -15141,9 +14312,7 @@ files in Haskell.")
          "1n1fq7v64b59ajf5g50iqj9sa34wm7s2j3viay0kxpmvlcv8gipz"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-setlocale" ,ghc-setlocale)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-attoparsec" ,ghc-attoparsec)))
+     (list ghc-setlocale ghc-utf8-string ghc-attoparsec))
     (home-page "https://github.com/solidsnack/wcwidth/")
     (synopsis "Haskell bindings to wcwidth")
     (description "This package provides Haskell bindings to your system's
@@ -15157,15 +14326,13 @@ widths to the Char type.")
     (inherit ghc-wcwidth)
     (name "ghc-wcwidth-bootstrap")
     (inputs
-     `(("ghc-setlocale" ,ghc-setlocale)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-attoparsec" ,ghc-attoparsec-bootstrap)))
+     (list ghc-setlocale ghc-utf8-string ghc-attoparsec-bootstrap))
     (properties '((hidden? #t)))))
 
 (define-public ghc-weigh
   (package
     (name "ghc-weigh")
-    (version "0.0.14")
+    (version "0.0.16")
     (source
      (origin
        (method url-fetch)
@@ -15173,11 +14340,10 @@ widths to the Char type.")
                            "weigh-" version ".tar.gz"))
        (sha256
         (base32
-         "0l85marb5rl9nr1c0id42dnr5i9fk1jciy5h6lywhb34w3hbj61g"))))
+         "13pbjr7fzqy3s9c1nd2jhfwzbpccmpfwdn7y46z9k2bfkch1jam9"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-split" ,ghc-split)
-       ("ghc-temporary" ,ghc-temporary)))
+     (list ghc-split ghc-temporary))
     (home-page "https://github.com/fpco/weigh#readme")
     (synopsis "Measure allocations of a Haskell functions/values")
     (description "This package provides tools to measure the memory usage of a
@@ -15200,7 +14366,7 @@ Haskell value or function.")
          "1clvbd1ckhvy29qrbmpkn7bya7300fq6znnps23nn3nxyrxhsr85"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-control-monad-free" ,ghc-control-monad-free)))
+     (list ghc-control-monad-free))
     (arguments
      `(#:cabal-revision
        ("1"
@@ -15263,8 +14429,7 @@ instances of the @code{Pretty} class.")
          "1br7qyf27iza213inwhf9bm2k6in0zbmfw6w4clqlc9f9cj2nrkb"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+     (list ghc-tasty ghc-tasty-hunit))
     (home-page
      "https://github.com/minad/wl-pprint-annotated#readme")
     (synopsis
@@ -15280,7 +14445,7 @@ modernized interface.")
 (define-public ghc-wl-pprint-text
   (package
     (name "ghc-wl-pprint-text")
-    (version "1.2.0.0")
+    (version "1.2.0.1")
     (source
      (origin
        (method url-fetch)
@@ -15289,10 +14454,10 @@ modernized interface.")
              version ".tar.gz"))
        (sha256
         (base32
-         "0g3w92rad6x5appfb22rbzcas2ix2h0hy91sdxhq8a4a5cnlrpa0"))))
+         "030ckgzz14sv2c317g4j5g68hyq9xi40cmv0apwclw6sc6xgsvly"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-base-compat" ,ghc-base-compat)))
+     (list ghc-base-compat))
     (home-page "https://hackage.haskell.org/package/wl-pprint-text")
     (synopsis "Wadler/Leijen Pretty Printer for Text values")
     (description
@@ -15311,7 +14476,7 @@ modernized interface.")
        (sha256
         (base32 "15rcqhg9vb7qisk9ryjnyhhfgigxksnkrczycaw2rin08wczjwpb"))))
     (build-system haskell-build-system)
-    (native-inputs `(("ghc-hspec" ,ghc-hspec)))
+    (native-inputs (list ghc-hspec))
     (arguments
      `(#:cabal-revision
        ("1" "1k4w4g053vhmpp08542hrqaw81p3p35i567xgdarqmpghfrk68pp")))
@@ -15337,8 +14502,7 @@ modernized interface.")
          "12jx7f13d2h1djq4fh4dyrab61sm49mj1w61j3rzp2vjfm696c16"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec hspec-discover))
     (home-page "https://hackage.haskell.org/package/word8")
     (synopsis "Word8 library for Haskell")
     (description "Word8 library to be used with @code{Data.ByteString}.")
@@ -15359,9 +14523,9 @@ modernized interface.")
         (base32
          "1mbcrq89jz0dcibw66w0jdy4f4bfpx4zwjfs98rm3jjgdikwdzb4"))))
     (build-system haskell-build-system)
-    (native-inputs `(("ghc-c2hs" ,ghc-c2hs)))
+    (native-inputs (list ghc-c2hs))
     (inputs
-     `(("ghc-semigroups" ,ghc-semigroups)))
+     (list ghc-semigroups))
     (home-page "https://hackage.haskell.org/package/wordexp")
     (synopsis "Library wrapping @code{wordexp} for Haskell")
     (description "@code{wordexp(3)} wrapper library for Haskell to perform
@@ -15371,24 +14535,21 @@ word expansion like a posix-shell.")
 (define-public ghc-x11
   (package
     (name "ghc-x11")
-    (version "1.9.1")
+    (version "1.10.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/X11/"
                            "X11-" version ".tar.gz"))
        (sha256
-        (base32 "0gg6852mrlgl8zng1j84fismz7k81jr5fk92glgkscf8q6ryg0bm"))))
+        (base32 "1ip207l97s8nw4daxp9s254agk8f0wibpf0prx0n695klqyn8bz1"))))
     (build-system haskell-build-system)
     (arguments
      `(#:extra-directories
        ("libx11" "libxrandr" "libxinerama" "libxscrnsaver")))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxrandr" ,libxrandr)
-       ("libxinerama" ,libxinerama)
-       ("libxscrnsaver" ,libxscrnsaver)
-       ("ghc-data-default" ,ghc-data-default)))
+     (list libx11 libxrandr libxinerama libxscrnsaver
+           ghc-data-default-class))
     (home-page "https://github.com/haskell-pkg-janitors/X11")
     (synopsis "Bindings to the X11 graphics library")
     (description
@@ -15410,13 +14571,9 @@ bindings are a direct translation of the C bindings.")
     (arguments
      `(#:extra-directories ("libx11" "libxft" "xorgproto")))
     (inputs
-     `(("ghc-x11" ,ghc-x11)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("libx11" ,libx11)
-       ("libxft" ,libxft)
-       ("xorgproto" ,xorgproto)))
+     (list ghc-x11 ghc-utf8-string libx11 libxft xorgproto))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/X11-xft")
     (synopsis "Bindings to Xft")
@@ -15467,7 +14624,7 @@ parts.")
 (define-public ghc-xml-conduit
   (package
     (name "ghc-xml-conduit")
-    (version "1.8.0.1")
+    (version "1.9.1.1")
     (source
      (origin
        (method url-fetch)
@@ -15475,21 +14632,19 @@ parts.")
                            "xml-conduit-" version ".tar.gz"))
        (sha256
         (base32
-         "177gmyigxql1pn3ncz0r8annwv5cbxnihbgrrg1dhm4gmc9jy2wq"))))
+         "1zzh7xnmbm68dab1vqsjkr6ghxqgnla5nik4amrwlmhbdih1gcdx"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-conduit" ,ghc-conduit)
-       ("ghc-conduit-extra" ,ghc-conduit-extra)
-       ("ghc-doctest" ,ghc-doctest)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-xml-types" ,ghc-xml-types)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-blaze-markup" ,ghc-blaze-markup)
-       ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-hspec" ,ghc-hspec)
-       ("ghc-hunit" ,ghc-hunit)))
+     (list ghc-conduit
+           ghc-conduit-extra
+           ghc-resourcet
+           ghc-xml-types
+           ghc-attoparsec
+           ghc-data-default-class
+           ghc-blaze-markup
+           ghc-blaze-html))
+    (native-inputs
+     (list ghc-doctest ghc-hspec ghc-cabal-doctest ghc-hunit))
     (home-page "https://github.com/snoyberg/xml")
     (synopsis "Utilities for dealing with XML with the conduit package")
     (description
@@ -15500,7 +14655,7 @@ the @code{conduit} package.")
 (define-public ghc-xml-types
   (package
     (name "ghc-xml-types")
-    (version "0.3.6")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
@@ -15508,7 +14663,7 @@ the @code{conduit} package.")
                            "xml-types-" version ".tar.gz"))
        (sha256
         (base32
-         "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr"))))
+         "102cm0nvfmf9gn8hvn5z8qvmg931laczs33wwd5iyz9bc37f9mfs"))))
     (build-system haskell-build-system)
     (home-page "https://john-millikin.com/software/haskell-xml/")
     (synopsis "Basic types for representing XML")
@@ -15529,11 +14684,9 @@ documents.")
         (base32 "0jrhcjy7ww59dafg857f2g2df1fw2jmbwcs1q379ph0pc5rxj3lj"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-shakespeare" ,ghc-shakespeare)
-       ("ghc-xml-conduit" ,ghc-xml-conduit)))
+     (list ghc-shakespeare ghc-xml-conduit))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-hunit" ,ghc-hunit)))
+     (list ghc-hspec ghc-hunit))
     (home-page "https://www.yesodweb.com/")
     (synopsis "Hamlet-style quasiquoter for XML content")
     (description "This package provides a type-safe tool for generating XML
@@ -15543,34 +14696,33 @@ code via quasi-quoting built on top of @code{ghc-shakespeare}.")
 (define-public ghc-yaml
   (package
     (name "ghc-yaml")
-    (version "0.11.1.2")
+    (version "0.11.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "yaml/yaml-" version ".tar.gz"))
               (sha256
                (base32
-                "028pz77n92l6kjgjv263h4b6yhw1iibdbf3a3dkn5qnz537xpzhc"))))
-    (build-system haskell-build-system)
-    (inputs
-     `(("ghc-conduit" ,ghc-conduit)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-temporary" ,ghc-temporary)
-       ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions)
-       ("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-libyaml" ,ghc-libyaml)))
-    (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-hunit" ,ghc-hunit)
-       ("hspec-discover" ,hspec-discover)
-       ("ghc-mockery" ,ghc-mockery)
-       ("ghc-raw-strings-qq" ,ghc-raw-strings-qq)))
+                "0s08kw0hqxixxripwjmz7b4yh9130dws3jaj460x8ds8q4b6khbx"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-conduit
+           ghc-resourcet
+           ghc-aeson
+           ghc-unordered-containers
+           ghc-vector
+           ghc-attoparsec
+           ghc-scientific
+           ghc-libyaml
+           ghc-optparse-applicative))
+    (native-inputs
+     (list ghc-hspec
+           ghc-hunit
+           ghc-base-compat
+           hspec-discover
+           ghc-mockery
+           ghc-raw-strings-qq
+           ghc-temporary))
     (home-page "https://github.com/snoyberg/yaml/")
     (synopsis "Parsing and rendering YAML documents")
     (description
@@ -15603,13 +14755,9 @@ code via quasi-quoting built on top of @code{ghc-shakespeare}.")
                (setenv "PATH" (string-append unzip "/bin:" which "/bin:" path))
                #t))))))
     (inputs
-     `(("ghc-digest" ,ghc-digest)
-       ("ghc-temporary" ,ghc-temporary)
-       ("ghc-zlib" ,ghc-zlib)))
+     (list ghc-digest ghc-temporary ghc-zlib))
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)
-       ("unzip" ,unzip)
-       ("which" ,which)))
+     (list ghc-hunit unzip which))
     (home-page "https://hackage.haskell.org/package/zip-archive")
     (synopsis "Zip archive library for Haskell")
     (description "The zip-archive library provides functions for creating,
@@ -15619,7 +14767,7 @@ modifying, and extracting files from zip archives in Haskell.")
 (define-public ghc-zlib
   (package
     (name "ghc-zlib")
-    (version "0.6.2.1")
+    (version "0.6.2.3")
     (outputs '("out" "static" "doc"))
     (source
      (origin
@@ -15630,7 +14778,7 @@ modifying, and extracting files from zip archives in Haskell.")
              ".tar.gz"))
        (sha256
         (base32
-         "1l11jraslcrp9d4wnhwfyhwk4fsiq1aq8i6vj81vcq1m2zzi1y7h"))))
+         "125wbayk8ifp0gp8cb52afck2ziwvqfrjzbmwmy52g6bz7fnnzw0"))))
     (build-system haskell-build-system)
     (arguments
      `(#:extra-directories ("zlib")
@@ -15642,12 +14790,9 @@ modifying, and extracting files from zip archives in Haskell.")
                (("tasty            >= 0\\.8 && < 0\\.12") "tasty")
                (("tasty-hunit      >= 0\\.8 && < 0\\.10") "tasty-hunit")
                (("tasty-quickcheck == 0\\.8\\.\\*") "tasty-quickcheck")))))))
-    (inputs `(("zlib" ,zlib)))
+    (inputs (list zlib))
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+     (list ghc-quickcheck ghc-tasty ghc-tasty-hunit ghc-tasty-quickcheck))
     (home-page "https://hackage.haskell.org/package/zlib")
     (synopsis
      "Compression and decompression in the gzip and zlib formats")
@@ -15674,10 +14819,9 @@ provides access to the full zlib feature set.")
          "02ciywlz4wdlymgc3jsnicz9kzvymjw1www2163gxidnz4wb8fy8"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-zlib" ,ghc-zlib)))
+     (list ghc-zlib))
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
+     (list ghc-hspec ghc-quickcheck))
     (arguments
      `(#:cabal-revision
        ("2" "0fq49694gqkab8m0vq4i879blswczwd66n7xh4r4gwiahf0ryvqc")))
@@ -15690,7 +14834,7 @@ provides access to the full zlib feature set.")
 (define-public ghc-zstd
   (package
     (name "ghc-zstd")
-    (version "0.1.1.2")
+    (version "0.1.3.0")
     (source
      (origin
        (method url-fetch)
@@ -15698,12 +14842,11 @@ provides access to the full zlib feature set.")
                            "zstd/zstd-" version ".tar.gz"))
        (sha256
         (base32
-         "147s496zvw13akxqzg65mgfvk3bvhrcilxgf8n786prxg5cm4jz2"))))
+         "0vghl48cxcqy72sqk2gpi7rvy5ya36j13vndaxi6kck6bqivbhm0"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+     (list ghc-quickcheck ghc-test-framework
+           ghc-test-framework-quickcheck2))
     (home-page "https://github.com/luispedro/hs-zstd")
     (synopsis "Haskell bindings to the Zstandard compression algorithm")
     (description "This library provides Haskell bindings to the
@@ -15711,3 +14854,1176 @@ Zstandard compression algorithm, a fast lossless compression algorithm
 targeting real-time compression scenarios at zlib-level and better
 compression ratios.")
     (license license:bsd-3)))
+
+(define-public ghc-indexed-traversable
+  (package
+    (name "ghc-indexed-traversable")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/indexed-traversable/indexed-traversable-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "0fc18vdm1894yjbjkj9wjm27bf37ac3gvkzak677mgiw2pinmhvs"))))
+    (build-system haskell-build-system)
+    (inputs (list ghc-generic-deriving))
+    (arguments
+     `(#:cabal-revision
+       ("1" "0krvp9v5dh4w2076kar48cpkk62ndqp769v2ai3b38rsa5bj6q74")))
+    (home-page "https://hackage.haskell.org/package/indexed-traversable")
+    (synopsis "Indexed Functor, Foldable, and Traversable typeclasses")
+    (description
+     "This Haskell package provides three useful generalizations:
+
+@example
+class Functor f => FunctorWithIndex i f | f -> i where
+  imap :: (i -> a -> b) -> f a -> f b
+@end example
+
+@example
+class Foldable f => FoldableWithIndex i f | f -> i where
+  ifoldMap :: Monoid m => (i -> a -> m) -> f a -> m
+@end example
+
+@example
+class (FunctorWithIndex i t, FoldableWithIndex i t, Traversable t)
+       => TraversableWithIndex i t | t -> i where
+  itraverse :: Applicative f => (i -> a -> f b) -> t a -> f (t b)
+@end example
+
+The @code{ghc-keys} package provides similar functionality, but uses
+associated @code{TypeFamilies} instead of @code{FunctionalDependencies}.")
+    (license license:bsd-2)))
+
+(define-public ghc-type-equality
+  (package
+    (name "ghc-type-equality")
+    (version "1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/type-equality/type-equality-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "1s4cl11rvvv7n95i3pq9lmmx08kwh4z7l3d1hbv4wi8il81baa27"))))
+    (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("2" "1a3irpv5kyg3rywhmcp5fwg5irrdbdr0hrlw7asdk113nakrba7j")))
+    (home-page "https://github.com/hesselink/type-equality")
+    (synopsis "@code{Data.Type.Equality} compatibility package")
+    (description
+     "This library defines a propositional equality data type, shims
+@code{Data.Type.Equality} as well as possible for older GHC versions (< 7.8).
+
+@example
+data a :~: b where
+  Refl :: a :~: a
+@end example
+
+The module @code{Data.Type.Equality.Hetero} shims @@code{:~~:} equality, and
+for compilers with @code{PolyKinds}.")
+    (license license:bsd-3)))
+
+(define-public ghc-selective
+  (package
+    (name "ghc-selective")
+    (version "0.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/selective/selective-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "1mg5hnr3f4zjh3ajy16jkxj630rnfa9iqnnmpjqd9gkjdxpssd5l"))))
+    (build-system haskell-build-system)
+    (native-inputs
+     (list ghc-quickcheck ghc-tasty ghc-tasty-expected-failure
+           ghc-tasty-quickcheck))
+    (home-page "https://github.com/snowleopard/selective")
+    (synopsis "Selective applicative functors")
+    (description
+     "This package implements selective applicative functors, which allow you
+to declare your effects statically, and select which to execute dynamically.
+See the
+@uref{https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf, paper
+on selective functors} for more details.")
+    (license license:expat)))
+
+(define-public ghc-keys
+  (package
+    (name "ghc-keys")
+    (version "3.12.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/keys/keys-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "0ik6wsff306dnbz0v3gpiajlj5b558hrk9176fzcb2fclf4447nm"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-comonad
+           ghc-free
+           ghc-hashable
+           ghc-semigroupoids
+           ghc-semigroups
+           ghc-tagged
+           ghc-transformers-compat
+           ghc-unordered-containers))
+    (home-page "http://github.com/ekmett/keys/")
+    (synopsis "Keyed functors and containers")
+    (description
+     "This package provides a bunch of ad hoc classes for accessing parts of
+a container.  In practice this package is largely subsumed by the
+@code{ghc-lens}, but it is maintained for now as it has much simpler
+dependencies.")
+    (license license:bsd-3)))
+
+(define-public ghc-pointed
+  (package
+    (name "ghc-pointed")
+    (version "5.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/pointed/pointed-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "07p92y62dibys3xa59rvx52xyyr39nghl73z7hzwnksa3ry3vfmq"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-data-default-class
+           ghc-comonad
+           ghc-kan-extensions
+           ghc-semigroupoids
+           ghc-semigroups
+           ghc-tagged
+           ghc-transformers-compat
+           ghc-hashable
+           ghc-unordered-containers))
+    (home-page "https://github.com/ekmett/pointed/")
+    (synopsis "Pointed and copointed data types")
+    (description
+     "This Haskell library provides pointed and copointed data types.")
+    (license license:bsd-3)))
+
+(define-public ghc-vector-instances
+  (package
+    (name "ghc-vector-instances")
+    (version "3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/vector-instances/vector-instances-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "10akvpa5w9bp0d8hflab63r9laa9gy2hv167smhjsdzq1kplc0hv"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-vector
+           ghc-semigroupoids
+           ghc-semigroups
+           ghc-comonad
+           ghc-pointed
+           ghc-keys
+           ghc-hashable))
+    (home-page "https://github.com/ekmett/vector-instances")
+    (synopsis "Orphan instances for @code{Data.Vector}")
+    (description
+     "This Haskell library provides a place for lots of orphan instances for
+the @code{ghc-vector} package.")
+    (license license:bsd-3)))
+
+(define-public ghc-th-compat
+  (package
+    (name "ghc-th-compat")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/th-compat/th-compat-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "1il1hs5yjfkb417c224pw1vrh4anyprasfwmjbd4fkviyv55jl3b"))))
+    (build-system haskell-build-system)
+    (native-inputs
+     (list ghc-base-compat ghc-hspec hspec-discover))
+    (home-page "https://github.com/haskell-compat/th-compat")
+    (synopsis
+     "Backward- and forward-compatible @code{Quote} and @code{Code} types")
+    (description
+     "This package defines a @code{Language.Haskell.TH.Syntax.Compat} module,
+which backports the @code{Quote} and @code{Code} types to work across a wide
+range of @code{template-haskell} versions.  On recent versions of
+@code{template-haskell} (2.17.0.0 or later), this module simply re-exports
+@code{Quote} and @code{Code} from @code{Language.Haskell.TH.Syntax}.")
+    (license license:bsd-3)))
+
+(define-public ghc-filepattern
+  (package
+    (name "ghc-filepattern")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/filepattern/filepattern-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "0nznzji5haxl4ninm2a79dqf4c7fj6pc3z9gdc6wbf5h1pp14afr"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-extra ghc-semigroups))
+    (native-inputs (list ghc-quickcheck))
+    (home-page "https://github.com/ndmitchell/filepattern")
+    (synopsis "File path glob-like matching")
+    (description
+     "This package provides Haskell library for matching files using patterns
+such as @code{\\\"src\\/**\\/*.png\\\"} for all @@file{.png} files recursively
+under the @@file{src} directory.
+
+Some of its features include:
+
+@itemize
+@item All matching is O(n).
+
+@item Most functions pre-compute some information given only one argument.
+
+@item Uses @code{match} and @code{substitute} to extract suitable strings from
+the @code{*} and @code{**} matches, and substitutes them back into other
+patterns.
+
+@item Uses @code{step} and @code{matchMany} to perform bulk matching of many
+patterns against many paths simultaneously.
+
+@item Uses @code{System.FilePattern.Directory} to perform optimised directory
+traverals using patterns.
+@end itemize")
+    (license license:bsd-3)))
+
+(define-public ghc-lib-parser-ex
+  (package
+    (name "ghc-lib-parser-ex")
+    (version "8.10.0.23")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/ghc-lib-parser-ex/ghc-lib-parser-ex-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "0r5sl7hhn0cxp0b1dskx1lshplc0yka7hcvs2nh10nrj07fjd3vj"))))
+    (build-system haskell-build-system)
+    (inputs (list ghc-uniplate))
+    (native-inputs
+     (list ghc-tasty ghc-tasty-hunit ghc-extra))
+    (home-page "https://github.com/shayne-fletcher/ghc-lib-parser-ex")
+    (synopsis "Algorithms on GHC parse trees")
+    (description
+     "The @code{ghc-lib-parser-ex} package contains GHC API parse tree utilities.")
+    (license license:bsd-3)))
+
+(define-public ghc-lift-type
+  (package
+    (name "ghc-lift-type")
+    (version "0.1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/lift-type/lift-type-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "1195iyf0s8zmibjmvd10bszyccp1a2g4wdysn7yk10d3j0q9xdxf"))))
+    (build-system haskell-build-system)
+    (home-page "https://github.com/parsonsmatt/lift-type")
+    (synopsis
+     "Lift a type from a Typeable constraint to a Template Haskell type")
+    (description
+     "This library provides a utility function @code{liftType}, which accepts a type
+application argument and returns the Template Haskell @code{Type} representation of
+it.")
+    (license license:bsd-3)))
+
+(define-public ghc-unicode-collation
+  (package
+    (name "ghc-unicode-collation")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/unicode-collation/unicode-collation-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "0nbxkpd29ivdi6vcikbaasffkcz9m2vd4nhv29p6gmvckzmhj7zi"))))
+    (build-system haskell-build-system)
+    (inputs (list ghc-th-lift-instances))
+    (native-inputs
+     (list ghc-tasty ghc-tasty-quickcheck ghc-tasty-hunit
+           ghc-unicode-transforms ghc-doctest))
+    (home-page "https://github.com/jgm/unicode-collation")
+    (synopsis "Haskell implementation of the Unicode Collation Algorithm")
+    (description
+     "This library provides a pure Haskell implementation of the Unicode
+Collation Algorithm described at @uref{http://www.unicode.org/reports/tr10/}.
+It is not as fully-featured or as performant as @code{text-icu}, but it avoids
+a dependency on a large C library.  Locale-specific tailorings are also
+provided.")
+    (license license:bsd-3)))
+
+(define-public ghc-citeproc
+  (package
+    (name "ghc-citeproc")
+    (version "0.4.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/citeproc/citeproc-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "13hgbcbr7jbyfbxp8fsc43c2wq4fhlbxzqwh1plfkdi5n9bif1lv"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-safe
+           ghc-case-insensitive
+           ghc-vector
+           ghc-scientific
+           ghc-uniplate
+           ghc-xml-conduit
+           ghc-attoparsec
+           ghc-data-default
+           ghc-aeson
+           ghc-file-embed
+           ghc-pandoc-types
+           ghc-unicode-collation
+           ghc-base-compat
+           ghc-aeson-pretty))
+    (native-inputs (list ghc-timeit ghc-diff))
+    (home-page "https://hackage.haskell.org/package/citeproc")
+    (synopsis "Generate citations and bibliography from CSL styles")
+    (description
+     "@code{ghc-citeproc} parses @acronym{Citation Style Language, CSL} style files
+and uses them to generate a list of formatted citations and bibliography
+entries.  For more information about CSL, see @uref{https://citationstyles.org/}.")
+    (license license:bsd-2)))
+
+(define-public ghc-commonmark
+  (package
+    (name "ghc-commonmark")
+    (version "0.2.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/commonmark/commonmark-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "105szy7l4ji255fwv0kbfcy3i3a3a4197zgj6s9jb12kwbn6n0c7"))))
+    (build-system haskell-build-system)
+    (inputs (list ghc-unicode-transforms))
+    (native-inputs
+     (list ghc-tasty ghc-tasty-quickcheck ghc-tasty-hunit))
+    (home-page "https://github.com/jgm/commonmark-hs")
+    (synopsis "Pure Haskell Commonmark parser")
+    (description
+     "This library provides the core data types and functions for parsing
+@uref{https://spec.commonmark.org, Commonmark}.  The parser is fully
+Commonmark-compliant and passes the test suite.  It is designed to be
+customizable and easily extensible.  To customize the output, create an AST,
+or support a new output format, one need only define some new typeclass
+instances.  It is also easy to add new syntax elements or modify existing
+ones.
+
+Accurate information about source positions is available for all block and
+inline elements.  Thus the library can be used to create an accurate syntax
+highlighter or an editor with live preview. The parser has been designed for
+robust performance even in pathological cases that tend to cause stack
+overflows or exponential slowdowns in other parsers, with parsing speed that
+varies linearly with input length.")
+    (license license:bsd-3)))
+
+(define-public ghc-commonmark-extensions
+  (package
+    (name "ghc-commonmark-extensions")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/commonmark-extensions/commonmark-extensions-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "0jm6w84p2a2gyaljvnlvjjwrwnir1lss3ps53d0bd8mkvhixxrqr"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-network-uri ghc-commonmark ghc-emojis))
+    (native-inputs
+     (list ghc-tasty ghc-tasty-hunit))
+    (home-page "https://github.com/jgm/commonmark-hs")
+    (synopsis "Extensions for @code{ghc-commonmark}")
+    (description
+     "This library provides some useful extensions for @code{ghc-commonmark}
+to parser core commonmark syntax: smart quotes, definition lists, tables,
+footnotes, math, and more.")
+    (license license:bsd-3)))
+
+(define-public ghc-commonmark-pandoc
+  (package
+    (name "ghc-commonmark-pandoc")
+    (version "0.2.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/commonmark-pandoc/commonmark-pandoc-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "15rfaz49msswb7gh5wyxpm9vckbf3wzyd2m5m2f3hggb82ydk5cp"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-commonmark ghc-commonmark-extensions ghc-pandoc-types))
+    (home-page "https://github.com/jgm/commonmark-hs")
+    (synopsis "Bridge between Commonmark and Pandoc AST.")
+    (description
+     "This library provides typeclasses for rendering @code{ghc-commonmark} to
+Pandoc types.")
+    (license license:bsd-3)))
+
+(define-public ghc-hslua-module-path
+  (package
+    (name "ghc-hslua-module-path")
+    (version "0.1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/hslua-module-path/hslua-module-path-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "1zxfljcn74rky26ijqmba6grpj0h9plgr47wxdaf7gcz1y8dhn68"))))
+    (build-system haskell-build-system)
+    (inputs (list ghc-hslua))
+    (native-inputs
+     (list ghc-tasty ghc-tasty-hunit ghc-tasty-lua))
+    (home-page "https://github.com/hslua/hslua-module-path")
+    (synopsis "Lua module to work with file paths")
+    (description
+     "This Haskell library provides a Lua module to work with file paths in a
+platform independent way.")
+    (license license:expat)))
+
+(define-public ghc-template-haskell
+  (package
+    (name "ghc-template-haskell")
+    (version "2.16.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/template-haskell/template-haskell-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "1nk1cv35szp80qkhbyh5gn6vn194zzl0wz186qrqdrdx3a9r9w4g"))))
+    (build-system haskell-build-system)
+    (inputs (list ghc-boot-th))
+    (home-page "http://hackage.haskell.org/package/template-haskell")
+    (synopsis "Support library for Template Haskell")
+    (description
+     "This package provides modules containing facilities for manipulating
+Haskell source code using Template Haskell. See
+@uref{http://www.haskell.org/haskellwiki/Template_Haskell} for more
+information.")
+    (license license:bsd-3)))
+
+(define-public ghc-genvalidity-hspec
+  (package
+    (name "ghc-genvalidity-hspec")
+    (version "0.7.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/genvalidity-hspec/genvalidity-hspec-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "0aajx07n2rznyqxb0c4pn9j2cvkzw5brz9ki4grhhigbcri3jzmv"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-quickcheck
+           ghc-genvalidity
+           ghc-genvalidity-property
+           ghc-hspec
+           hspec-discover
+           ghc-hspec-core
+           ghc-validity))
+    (home-page "https://github.com/NorfairKing/validity")
+    (synopsis "Standard spec's for @code{GenValidity} instances")
+    (description
+     "This haskell library provides validity and validity-based testing for
+@code{ghc-hspec}. ")
+    (license license:expat)))
+
+(define-public ghc-boot-th
+  (package
+    (name "ghc-boot-th")
+    (version "8.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/ghc-boot-th/ghc-boot-th-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "0vhhmsd32p7zn9vhpv4d0k0b55n2dyhzy42xblndrma617kz8gli"))))
+    (build-system haskell-build-system)
+    (home-page "http://hackage.haskell.org/package/ghc-boot-th")
+    (synopsis
+     "Shared functionality between GHC and Template Haskell")
+    (description
+     "This library contains various bits shared between GHC and Template
+Haskell.  This package exists to ensure that @code{template-haskell} has a
+minimal set of transitive dependencies, since it is intended to be depended
+upon by user code.")
+    (license license:bsd-3)))
+
+(define-public ghc-binary-orphans
+  (package
+    (name "ghc-binary-orphans")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/binary-orphans/binary-orphans-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "0gbmn5rpvyxhw5bxjmxwld6918lslv03b2f6hshssaw1il5x86j3"))))
+    (build-system haskell-build-system)
+    (native-inputs
+     (list ghc-quickcheck ghc-quickcheck-instances ghc-tagged ghc-tasty
+           ghc-tasty-quickcheck))
+    (arguments
+     `(#:cabal-revision
+       ("5" "1h2d37szfrcwn9rphnijn4q9l947b0wwqjs1aqmm62xkhbad7jf6")))
+    (home-page "http://hackage.haskell.org/package/binary-orphans")
+    (synopsis "Compatibility package for binary")
+    (description
+     "This package provides instances defined in later versions of
+@code{ghc-binary} package.")
+    (license license:bsd-3)))
+
+(define-public ghc-netlink
+  (package
+    (name "ghc-netlink")
+    (version "1.1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/netlink/netlink-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "1q8sxycv93sap6dgbw70scklnpjj5vav6qlvsxm5500jlvb3jnf0"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-cereal ghc-monad-loops ghc-pretty-hex ghc-language-c
+           ghc-regex-pcre))
+    (home-page "https://github.com/Ongy/netlink-hs")
+    (synopsis "Netlink communication for Haskell")
+    (description
+     "This is library provides utility to use Netlink from Haskell.  The scope of
+this package extends over general Netlink support to specific implementations
+of Netlink families.")
+    (license license:bsd-3)))
+
+(define-public ghc-doctest-driver-gen
+  (package
+    (name "ghc-doctest-driver-gen")
+    (version "0.3.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/doctest-driver-gen/doctest-driver-gen-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "1fbqi4s4ajxhyv4a7nbh3v98limla0z8rfqlh02pwc1a90qpwy1a"))))
+    (build-system haskell-build-system)
+    (arguments `(#:tests? #f)) ; TODO: Fail to open shared library.
+    (native-inputs (list ghc-doctest))
+    (home-page "https://github.com/Hexirp/doctest-driver-gen")
+    (synopsis "Generate driver file for Doctest's Cabal integration")
+    (description
+     "@code{ghc-doctest-driver-gen} is a Doctest's driver file generator.  It
+lets you automatically generate driver file for Doctest's Cabal integration.")
+    (license license:bsd-3)))
+
+(define-public ghc-template-haskell-compat-v0208
+  (package
+    (name "ghc-template-haskell-compat-v0208")
+    (version "0.1.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/template-haskell-compat-v0208/template-haskell-compat-v0208-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "1s2ba86y2r9n4r1dwfg734y3nfqxak560s8srd04kbn623hnrkw8"))))
+    (build-system haskell-build-system)
+    (home-page "https://github.com/nikita-volkov/template-haskell-compat-v0208")
+    (synopsis "Backwards compatibility layer for Template Haskell newer than 2.8")
+    (description
+     "This package provides a backwards compatibility layer for Template
+Haskell newer than 2.8.")
+    (license license:expat)))
+
+(define-public ghc-mysql
+  (package
+    (name "ghc-mysql")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/mysql/mysql-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "051w428arxbix06a52dacqjpnkfx42zbazxsd3l9d857dsd0kl3g"))))
+    (build-system haskell-build-system)
+    (arguments `(#:tests? #f)) ; TODO: Fails to connect to server.
+    (inputs
+     (list mysql zlib openssl))
+    (native-inputs (list ghc-hspec))
+    (home-page "https://github.com/paul-rouse/mysql")
+    (synopsis "Low-level MySQL client library")
+    (description
+     "This library provides Haskell bindings to the MySQL @code{mysqlclient}
+client library.  It is a fairly faithful, low level library that implements
+most of the MySQL client API.  The major departure from the C API is that in
+Haskell, resource management is mostly automatic and safe.
+
+This library deliberately avoids the question of providing a ``good'' API.
+Its purpose is to serve as a base upon which higher-level libraries can be
+built.")
+    (license license:bsd-3)))
+
+(define-public ghc-blaze-textual
+  (package
+    (name "ghc-blaze-textual")
+    (version "0.2.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/blaze-textual/blaze-textual-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "0zjnwnjpcpnnm0815h9ngr3a3iy0szsnb3nrcavkbx4905s9k4bs"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-blaze-builder ghc-old-locale ghc-vector))
+    (native-inputs
+     (list ghc-quickcheck ghc-double-conversion ghc-test-framework
+           ghc-test-framework-quickcheck2))
+    (home-page "https://github.com/bos/blaze-textual")
+    (synopsis "Fast rendering of common datatypes")
+    (description
+     "@code{ghc-blaze-textual} is a fast Haskell library for rendering common
+Haskell datatypes in text form using the @code{ghc-blaze-builder} library.")
+    (license license:bsd-3)))
+
+(define-public ghc-mysql-simple
+  (package
+    (name "ghc-mysql-simple")
+    (version "0.4.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/mysql-simple/mysql-simple-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "1mhmszpq64h8kxr20iaj1laq46wr2gaqc8xxq1k821i7jfxfld6j"))))
+    (build-system haskell-build-system)
+    (arguments `(#:tests? #f)) ; TODO: Fails to connect to server.
+    (inputs
+     (list ghc-attoparsec
+           ghc-base16-bytestring
+           ghc-blaze-builder
+           ghc-mysql
+           ghc-pcre-light
+           ghc-old-locale
+           ghc-blaze-textual
+           ghc-vector
+           openssl
+           zlib))
+    (native-inputs (list ghc-hspec))
+    (home-page "https://github.com/paul-rouse/mysql-simple")
+    (synopsis "Mid-level MySQL client library")
+    (description
+     "This library implements mid-level Haskell bindings to the MySQL
+@code{mysqlclient} client library.  It is aimed at speed and ease of use.")
+    (license license:bsd-3)))
+
+(define-public ghc-persistent-qq
+  (package
+    (name "ghc-persistent-qq")
+    (version "2.12.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/persistent-qq/persistent-qq-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "1dvniapxjaw2vmdqd5cplwxdxiy2l6z6gns8gp3ci3rn3xp0pf6p"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-haskell-src-meta ghc-persistent))
+    (native-inputs
+     (list ghc-hunit
+           ghc-aeson
+           ghc-fast-logger
+           ghc-hspec
+           ghc-monad-logger
+           ghc-persistent-sqlite
+           ghc-resourcet
+           ghc-unliftio))
+    (home-page "https://github.com/yesodweb/persistent")
+    (synopsis "Quasi-quoter for raw SQL for @code{ghc-persistent}")
+    (description
+     "This package provides a quasi-quoter for raw @acronym{SQL, Structured Query
+Language} for @code{ghc-persistent}.")
+    (license license:expat)))
+
+(define-public ghc-persistent-mysql
+  (package
+    (name "ghc-persistent-mysql")
+    (version "2.13.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/persistent-mysql/persistent-mysql-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "18ji7a7lb1mjgqvi2mv2cg4vlgjkyzg2hgp09s7c9v071p3ll732"))))
+    (build-system haskell-build-system)
+    (arguments `(#:tests? #f)) ; TODO: Fails to import MaybeFieldDefsTest.
+    (inputs
+     (list ghc-persistent
+           ghc-aeson
+           ghc-blaze-builder
+           ghc-conduit
+           ghc-monad-logger
+           ghc-mysql
+           ghc-mysql-simple
+           ghc-resourcet
+           ghc-resource-pool
+           ghc-unliftio-core
+           openssl
+           zlib))
+    (native-inputs
+     (list ghc-fast-logger
+           ghc-hspec
+           ghc-http-api-data
+           ghc-hunit
+           ghc-path-pieces
+           ghc-persistent-qq
+           ghc-persistent-test
+           ghc-quickcheck
+           ghc-quickcheck-instances))
+    (home-page "http://www.yesodweb.com/book/persistent")
+    (synopsis
+     "Backend for the @code{ghc-persistent} library using MySQL database server")
+    (description
+     "This package contains a backend for @code{ghc-persistent} using the MySQL database
+server.  Internally it uses the @code{ghc-mysql-simple} and @code{mysql} packages in order
+to access the database.  This package supports only MySQL 5.1 and above.
+However, it has been tested only on MySQL 5.5.  Only the InnoDB storage engine
+is officially supported.")
+    (license license:expat)))
+
+(define-public ghc-hspec-expectations-lifted
+  (package
+    (name "ghc-hspec-expectations-lifted")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/hspec-expectations-lifted/hspec-expectations-lifted-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "0a1qwz0n80lph8m9cq6cb06m8bsmqgg8ifx0acpylvrrkd8g3k92"))))
+    (build-system haskell-build-system)
+    (inputs (list ghc-hspec-expectations))
+    (home-page "https://hackage.haskell.org/package/hspec-expectations-lifted")
+    (synopsis "Version of @code{ghc-hspec-expectations} generalized to @code{MonadIO}")
+    (description
+     "This package provides a version of @code{ghc-hspec-expectations} generalized
+to @code{MonadIO}.")
+    (license license:expat)))
+
+(define-public ghc-string-conversions
+  (package
+    (name "ghc-string-conversions")
+    (version "0.4.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/string-conversions/string-conversions-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "150rdank90h7v08x0wq4dffjbxv2daf5v9sqfs5mab76kinwxg26"))))
+    (build-system haskell-build-system)
+    (inputs (list ghc-utf8-string))
+    (native-inputs
+     (list hspec-discover ghc-hspec ghc-quickcheck-instances
+           ghc-quickcheck))
+    (home-page "https://github.com/soenkehahn/string-conversions")
+    (synopsis "Simplify dealing with different types for strings")
+    (description
+     "This package provides a simple type class for converting values of different
+string types into values of other string types.")
+    (license license:bsd-3)))
+
+(define-public ghc-postgresql-libpq
+  (package
+    (name "ghc-postgresql-libpq")
+    (version "0.9.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/postgresql-libpq/postgresql-libpq-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "1gfnhc5pibn7zmifdf2g0c112xrpzsk756ln2kjzqljkspf4dqp3"))))
+    (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("1" "1clivf13z15w954a0kcfkv8yc0d8kx61b68x2hk7a9236ck7l2m2")))
+    (inputs (list postgresql))
+    (home-page "https://github.com/haskellari/postgresql-libpq")
+    (synopsis "Low-level bindings to @code{libpq}")
+    (description
+     "This package provides bindings to @code{libpq}: the C application
+programmer's interface to PostgreSQL.  @code{libpq} is a set of library
+functions that allow client programs to pass queries to the PostgreSQL backend
+server and to receive the results of these queries.")
+    (license license:bsd-3)))
+
+(define-public ghc-postgresql-simple
+  (package
+    (name "ghc-postgresql-simple")
+    (version "0.6.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/postgresql-simple/postgresql-simple-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "0rz2bklxp4pvbxb2w49h5p6pbwabn6d5d4j4mrya4fpa0d13k43d"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-time-compat
+           ghc-aeson
+           ghc-attoparsec
+           ghc-bytestring-builder
+           ghc-case-insensitive
+           ghc-hashable
+           ghc-only
+           ghc-postgresql-libpq
+           ghc-scientific
+           ghc-uuid-types
+           ghc-vector))
+    (native-inputs
+     (list ghc-inspection-testing
+           ghc-tasty
+           ghc-tasty-hunit
+           ghc-base16-bytestring
+           ghc-cryptohash-md5
+           ghc-hunit
+           ghc-tasty
+           ghc-tasty-golden
+           ghc-tasty-hunit))
+    (arguments
+     `(#:cabal-revision
+       ("2" "1kwjlj0bsc1yd4dgfc0ydawq9acfjlf0bymwc830dryp16wpj9zv")))
+    (home-page "http://hackage.haskell.org/package/postgresql-simple")
+    (synopsis "Mid-Level PostgreSQL client library")
+    (description
+     "This package provides a mid-Level PostgreSQL client library, forked from
+@code{ghc-mysql-simple}.")
+    (license license:bsd-3)))
+
+(define-public ghc-persistent-postgresql
+  (package
+    (name "ghc-persistent-postgresql")
+    (version "2.13.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/persistent-postgresql/persistent-postgresql-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "07pnr8m0nk43jaz6l293lzx4ivyqgnw94fjypazzm008b4irh7ir"))))
+    (build-system haskell-build-system)
+    (arguments `(#:tests? #f)) ; TODO: Cannot import MaybeFieldDefsTest.
+    (inputs
+     (list ghc-persistent
+           ghc-aeson
+           ghc-attoparsec
+           ghc-blaze-builder
+           ghc-conduit
+           ghc-monad-logger
+           ghc-postgresql-simple
+           ghc-postgresql-libpq
+           ghc-resourcet
+           ghc-resource-pool
+           ghc-string-conversions
+           ghc-unliftio-core
+           ghc-unliftio))
+    (native-inputs
+     (list ghc-persistent-qq
+           ghc-persistent-test
+           ghc-fast-logger
+           ghc-hunit
+           ghc-hspec
+           ghc-hspec-expectations
+           ghc-hspec-expectations-lifted
+           ghc-quickcheck
+           ghc-quickcheck-instances
+           ghc-path-pieces
+           ghc-http-api-data
+           ghc-unordered-containers
+           ghc-vector))
+    (home-page "http://www.yesodweb.com/book/persistent")
+    (synopsis "Backend for the @code{ghc-persistent library} using Postgresql")
+    (description
+     "This package provides a backend for the @code{ghc-persistent} library
+using the @code{ghc-postgresql-simple} package.")
+    (license license:expat)))
+
+(define-public ghc-filtrable
+  (package
+    (name "ghc-filtrable")
+    (version "0.1.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/filtrable/filtrable-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "058jl7wjaxzvcayc9qzpikxvi9x42civ4sb02jh66rcvpndbfh5y"))))
+    (build-system haskell-build-system)
+    (arguments `(#:tests? #f)) ; TODO: Needs tasty >=1.3.1 && <1.4
+    (native-inputs
+     (list ghc-smallcheck ghc-tasty ghc-tasty-smallcheck))
+    (home-page "https://github.com/strake/filtrable.hs")
+    (synopsis "Class of filtrable containers")
+    (description "This package provides filtrable containers.")
+    (license license:bsd-3)))
+
+(define-public ghc-filelock
+  (package
+    (name "ghc-filelock")
+    (version "0.1.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/filelock/filelock-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "06a44i7a956d7xkk2na4090xj2a7b7a228pk4spmccs4x20ymssh"))))
+    (build-system haskell-build-system)
+    (native-inputs
+     (list ghc-async ghc-async))
+    (home-page "https://github.com/takano-akio/filelock")
+    (synopsis "Portable interface to file locking")
+    (description
+     "This package provides an interface to file locking functionalities.")
+    (license license:public-domain)))
+
+(define-public ghc-hsyaml-aeson
+  (package
+    (name "ghc-hsyaml-aeson")
+    (version "0.2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/HsYAML-aeson/HsYAML-aeson-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "12sxww260pc0bbpiyirm7911haxhljdi2f08a9ddpbgw8d5n7ffg"))))
+    (build-system haskell-build-system)
+    (inputs
+     (list ghc-hsyaml ghc-aeson ghc-scientific ghc-unordered-containers
+           ghc-vector))
+    (arguments
+     `(#:cabal-revision
+       ("3" "0vhdndyj5f07vvvnssn5ybdja5wmaydq0n2lfpihvdg4dkhczrx2")))
+    (home-page "https://hackage.haskell.org/package/HsYAML-aeson")
+    (synopsis "JSON to YAML adapter")
+    (description
+     "The @uref{https://yaml.org/spec/1.2/spec.html, YAML 1.2} format provides
+a much richer data-model and feature-set than the
+@uref{https://tools.ietf.org/html/rfc7159, @acronym{JavaScript Object
+Notation, JSON}} format.  However, sometimes it's desirable to ignore the extra
+capabilities and treat YAML as if it was merely a more convenient markup
+format for humans to write JSON data.  To this end this module provides a
+compatibility layer atop @code{ghc-hsyaml} ,which allows decoding YAML
+documents in the more limited JSON data-model while also providing convenience
+by reusing @code{ghc-aeson}'s @code{FromJSON} instances for decoding the YAML
+data into native Haskell data types.")
+    (license license:gpl2+)))
+
+(define-public ghc-lukko
+  (package
+    (name "ghc-lukko")
+    (version "0.1.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/lukko/lukko-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "07xb926kixqv5scqdl8w34z42zjzdpbq06f0ha3f3nm3rxhgn3m8"))))
+    (build-system haskell-build-system)
+    (native-inputs
+     (list ghc-async
+           ghc-singleton-bool
+           ghc-tasty
+           ghc-tasty-expected-failure
+           ghc-tasty-hunit
+           ghc-temporary))
+    (arguments
+     `(#:cabal-revision
+       ("1" "0mmq1q82mrbayiij0p8wdnkf0j8drmq1iibg8kn4cak3nrn9pd1d")))
+    (home-page "https://hackage.haskell.org/package/lukko")
+    (synopsis "File locking")
+    (description
+     "This package provides access to platform dependent file locking APIs.  There
+are alternative file locking packages:
+
+@itemize
+@item @code{GHC.IO.Handle.Lock} in @code{base >= 4.10} is good enough for most
+use cases.  However, uses only @code{Handle}s so these locks cannot be used
+for intra-process locking.
+
+@item @code{ghc-filelock} doesn't support @acronym{OFD, open file descriptor}
+locking.
+@end itemize")
+
+    (license (list license:gpl2+ license:bsd-3))))
+
+(define-public ghc-dec
+  (package
+    (name "ghc-dec")
+    (version "0.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/dec/dec-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "0yslffafmqfkvhcw2arpc53hfmn1788z85ss9lxnbclr29lbvzgc"))))
+    (build-system haskell-build-system)
+    (home-page "https://github.com/phadej/vec")
+    (synopsis "Decidable propositions")
+    (description
+     "This package provides a @code{Dec} type for representing deciable
+relations.
+
+@example
+type Neg a = a -> Void
+
+data Dec a
+    = Yes a
+    | No (Neg a)
+@end example")
+    (license license:bsd-3)))
+
+(define-public ghc-singleton-bool
+  (package
+    (name "ghc-singleton-bool")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/singleton-bool/singleton-bool-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32 "17w9vv6arn7vvc7kykqcx81q2364ji43khrryl27r1cjx9yxapa0"))))
+    (build-system haskell-build-system)
+    (inputs (list ghc-dec))
+    (arguments
+     `(#:cabal-revision
+       ("3" "11rhzpy4xiry39bbxzwrqff75f0f4g7z0vkr3v9l8rv3w40jlf7x")))
+    (home-page "https://github.com/phadej/singleton-bool")
+    (synopsis "Type-level booleans")
+    (description
+     "This package provides Type-level booleans.")
+    (license license:bsd-3)))
+
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 32691b608e..699b45e45a 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -91,7 +92,7 @@
                (setenv "HASKELLPROG" "./bin/clisp-haskell")
                #t)))))
       (inputs
-       `(("clisp" ,clisp)))
+       (list clisp))
       (home-page "https://git.elephly.net/software/yale-haskell.git")
       (synopsis "Port of the Yale Haskell system to CLISP")
       (description "This package provides the Yale Haskell system running on
@@ -421,9 +422,7 @@ interactive environment for the functional language Haskell.")
        (sha256
         (base32 "1ch4j2asg7pr52ai1hwzykxyj553wndg7wq93i47ql4fllspf48i"))))
     (inputs
-     `(("gmp" ,gmp)
-       ("ncurses" ,ncurses)
-       ("libffi" ,libffi)))
+     (list gmp ncurses libffi))
     (native-inputs
      `(("perl" ,perl)
        ("python" ,python)               ; for tests
@@ -611,14 +610,9 @@ interactive environment for the functional language Haskell.")
                                 (file-pattern ".*\\.conf\\.d$")
                                 (file-type 'directory))))))
 
-;; Versions newer than ghc defined below (i.e. the compiler
-;; haskell-build-system uses) should use ghc-next as their name to
-;; ensure ghc (without version specification) and ghc-* packages are
-;; always compatible. See https://issues.guix.gnu.org/issue/47335.
-
 (define-public ghc-8.8
   (package (inherit ghc-8.6)
-    (name "ghc-next")
+    (name "ghc")
     (version "8.8.4")
     (source
      (origin
@@ -639,7 +633,7 @@ interactive environment for the functional language Haskell.")
            (sha256
             (base32
              "0c55pj2820q26rikhpf636sn4mjgqsxjrl94vsywrh79dxp3k14z"))))
-       ("git" ,git)                     ; invoked during tests
+       ("git" ,git-minimal/fixed)                 ; invoked during tests
        ,@(filter (match-lambda
                    (("ghc-bootstrap" . _) #f)
                    (("ghc-testsuite" . _) #f)
@@ -671,7 +665,7 @@ interactive environment for the functional language Haskell.")
 (define-public ghc-8.10
   (package
     (inherit ghc-8.8)
-    (name "ghc-next")
+    (name "ghc")
     (version "8.10.7")
     (source
      (origin
@@ -692,7 +686,7 @@ interactive environment for the functional language Haskell.")
            (sha256
             (base32
              "1zl25gg6bpx5601k8h3cqnns1xfc0nqgwnh8jvn2s65ra3f2g1nz"))))
-       ("git" ,git-minimal)                     ; invoked during tests
+       ("git" ,git-minimal/fixed)                 ; invoked during tests
        ,@(filter (match-lambda
                    (("ghc-bootstrap" . _) #f)
                    (("ghc-testsuite" . _) #f)
@@ -714,7 +708,21 @@ interactive environment for the functional language Haskell.")
                (substitute* '("testsuite/tests/driver/T16521/all.T")
                  (("extra_files" all) (string-append "[" all))
                  (("\\]\\), " all)
-                  (string-append all "expect_broken(0)], ")))))))))
+                  (string-append all "expect_broken(0)], ")))))
+           ;; TODO: Turn this into an undconditional patch on the next rebuild.
+           ,@(if (string-prefix? "i686" (or (%current-target-system)
+                                                  (%current-system)))
+              '((add-after 'skip-more-tests 'skip-failing-tests-i686
+                 (lambda _
+                   (substitute* '("testsuite/tests/codeGen/should_compile/all.T")
+                     (("(test\\('T15155l', )when\\(unregisterised\\(\\), skip\\)" all before)
+                      (string-append before "when(arch('i386'), skip)")))
+                   ;; Unexpected failures:
+                   ;;    quasiquotation/T14028.run  T14028 [bad stderr] (dyn)
+                   (substitute* '("testsuite/tests/quasiquotation/all.T")
+                     (("unless\\(config.have_ext_interp, skip\\),")
+                      "unless(config.have_ext_interp, skip), when(arch('i386'), skip),")))))
+              '())))))
     (native-search-paths (list (search-path-specification
                                 (variable "GHC_PACKAGE_PATH")
                                 (files (list
@@ -722,7 +730,12 @@ interactive environment for the functional language Haskell.")
                                 (file-pattern ".*\\.conf\\.d$")
                                 (file-type 'directory))))))
 
-(define-public ghc-8 ghc-8.6)
+;; Versions newer than ghc defined below (i.e. the compiler
+;; haskell-build-system uses) should use ghc-next as their name to
+;; ensure ghc (without version specification) and ghc-* packages are
+;; always compatible. See https://issues.guix.gnu.org/issue/47335.
+
+(define-public ghc-8 ghc-8.10)
 
 (define-public ghc ghc-8)
 
diff --git a/gnu/packages/hexedit.scm b/gnu/packages/hexedit.scm
index e5ea18cde6..20f3cbfe7b 100644
--- a/gnu/packages/hexedit.scm
+++ b/gnu/packages/hexedit.scm
@@ -60,11 +60,9 @@
                                "/share/man/man1/hexedit.1.gz\"")))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (inputs
-     `(("man-db" ,man-db)
-       ("ncurses" ,ncurses)))
+     (list man-db ncurses))
     (synopsis "View and edit files or devices in hexadecimal or ASCII")
     (description "hexedit shows a file both in ASCII and in hexadecimal.  The
 file can be a device as the file is read a piece at a time.  You can modify
@@ -86,8 +84,7 @@ the file and search through it.")
                 "0w2xnw3z9ws9qrdpb80q55h6ynhh3aziixcfn45x91bzrbifix9i"))))
     (build-system gnu-build-system)
     (inputs
-     `(("lzo" ,lzo)
-       ("ncurses" ,ncurses)))
+     (list lzo ncurses))
     (synopsis "Viewer, editor, and analyzer for executable binaries")
     (description
      "ht is a terminal-based program to view, edit, and analyze any file, but
@@ -112,7 +109,7 @@ Development Environment} (IDE).")
     (build-system gnu-build-system)
     (arguments '(#:tests? #f))          ; no check target
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (synopsis "Binary file editor")
     (description "@command{bvi} is a display-oriented editor for binary files,
 based on the @command{vi} text editor.")
diff --git a/gnu/packages/hugs.scm b/gnu/packages/hugs.scm
index a14b8a8583..c9915e4cd6 100644
--- a/gnu/packages/hugs.scm
+++ b/gnu/packages/hugs.scm
@@ -72,7 +72,7 @@
              #t)))
        #:tests? #f)) ; no test target
     ;; FIXME: Fails to build with GCC 5.
-    (native-inputs `(("gcc" ,gcc-4.9)))
+    (native-inputs (list gcc-4.9))
     (home-page "https://www.haskell.org/hugs/")
     (synopsis "Functional programming system based on Haskell 98")
     (description
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 7a1827aa8b..d6ce00e15d 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -102,9 +102,7 @@ GNU/Hurd."
 
            #:tests? #f))
        (native-inputs
-        `(("autoconf" ,autoconf)
-          ("automake" ,automake)
-          ("texinfo" ,texinfo-4)))
+        (list autoconf automake texinfo-4))
        (home-page "https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html")
        (synopsis "GNU Mach kernel headers")
        (description
@@ -125,12 +123,9 @@ GNU/Hurd."
         "1gyda8sq6b379nx01hkpbd85lz39irdvz2b9wbr63gicicx8i706"))))
     (build-system gnu-build-system)
     ;; Flex is needed both at build and run time.
-    (inputs `(("gnumach-headers" ,gnumach-headers)
-              ("flex" ,flex)
-              ("perl" ,perl)))
+    (inputs (list gnumach-headers flex perl))
     (native-inputs
-     `(("flex" ,flex)
-       ("bison" ,bison)))
+     (list flex bison))
     (arguments `(#:tests? #f
                  #:phases
                  (modify-phases %standard-phases
@@ -182,9 +177,7 @@ communication.")
                (file-name (git-file-name name version))))
      (build-system gnu-build-system)
      (native-inputs
-      `(("mig" ,mig)
-        ("autoconf" ,autoconf)
-        ("automake" ,automake)))
+      (list mig autoconf automake))
      (arguments
       `(#:phases
         (modify-phases %standard-phases
@@ -229,7 +222,7 @@ Library and other user programs.")
 (define-public hurd-minimal
   (package (inherit hurd-headers)
     (name "hurd-minimal")
-    (inputs `(("glibc-hurd-headers" ,glibc/hurd-headers)))
+    (inputs (list glibc/hurd-headers))
     (arguments
      (substitute-keyword-arguments (package-arguments hurd-headers)
        ((#:phases _)
@@ -285,9 +278,7 @@ Library for GNU/Hurd.")
                         (union-build (assoc-ref %outputs "out")
                                      directories)
                         #t))))))
-    (inputs `(("gnumach-headers" ,gnumach-headers)
-              ("hurd-headers" ,hurd-headers)
-              ("hurd-minimal" ,hurd-minimal)))
+    (inputs (list gnumach-headers hurd-headers hurd-minimal))
     (synopsis "Union of the Hurd headers and libraries")
     (description
      "This package contains the union of the Mach and Hurd headers and the
@@ -301,6 +292,8 @@ Hurd-minimal package which are needed for both glibc and GCC.")
     (name "gnumach")
     (arguments
      (substitute-keyword-arguments (package-arguments gnumach-headers)
+       ((#:make-flags flags ''())
+        `(cons "CFLAGS=-fcommon" ,flags))
        ((#:configure-flags flags ''())
         `(cons "--enable-kdb" ,flags))            ;enable kernel debugger
        ((#:phases phases '%standard-phases)
@@ -310,14 +303,9 @@ Hurd-minimal package which are needed for both glibc and GCC.")
                (let* ((out  (assoc-ref outputs "out"))
                       (boot (string-append out "/boot")))
                  (invoke "make" "gnumach.gz")
-                 (install-file "gnumach.gz" boot)
-                 #t)))))))
+                 (install-file "gnumach.gz" boot))))))))
     (native-inputs
-     `(("mig" ,mig)
-       ("perl" ,perl)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("texinfo" ,texinfo-4)))
+     (list mig perl autoconf automake texinfo-4))
     (supported-systems (cons "i686-linux" %hurd-systems))
     (synopsis "Microkernel of the GNU system")
     (description
@@ -507,16 +495,18 @@ exec ${system}/rc \"$@\"
                (copy-file "unifont"
                           (string-append datadir "/vga-system.bdf"))
                #t))))
-       #:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath="
-                                              %output "/lib")
-                          "--disable-ncursesw"
-                          "--without-libbz2"
-                          "--without-libz"
-                          "--without-parted"
-                          ;; This is needed to pass the configure check for
-                          ;; clnt_create
-                          "ac_func_search_save_LIBS=-ltirpc"
-                          "ac_cv_search_clnt_create=false")))
+       #:configure-flags
+       ,#~(list (string-append "LDFLAGS=-Wl,-rpath="
+                               #$output "/lib")
+                "--disable-ncursesw"
+                "--without-libbz2"
+                "--without-libz"
+                "--without-parted"
+                ;; This is needed to pass the configure check for
+                ;; clnt_create
+                "ac_func_search_save_LIBS=-ltirpc"
+                "ac_cv_search_clnt_create=false"
+                "CFLAGS=-fcommon")))
     (build-system gnu-build-system)
     (inputs
      `(("glibc-hurd-headers" ,glibc/hurd-headers)
@@ -578,15 +568,15 @@ implementing them.")
       (build-system gnu-build-system)
       (arguments
        `(#:make-flags
-         (list (string-append "SHELL=" (assoc-ref %build-inputs "bash")
-                              "/bin/bash")
+         (list (string-append "SHELL="
+                              (search-input-file %build-inputs "/bin/bash"))
                "PKGDIR=libdde_linux26"
                ,@(if (%current-target-system)
                      (list "CC=i586-pc-gnu-gcc"
                            "LINK_PROGRAM=i586-pc-gnu-gcc")
                      (list "CC=gcc")))
          #:configure-flags
-         (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
+         ,#~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib"))
          #:phases
          (modify-phases %standard-phases
            (delete 'configure)
@@ -622,9 +612,7 @@ implementing them.")
                                             "/bin"))
                #t)))))
       (inputs
-       `(("hurd" ,hurd)
-         ("libpciaccess" ,libpciaccess)
-         ("zlib" ,zlib)))
+       (list hurd libpciaccess zlib))
       (native-inputs
        `(("coreutils" ,coreutils)
          ("gawk" ,gawk)
diff --git a/gnu/packages/hyperledger.scm b/gnu/packages/hyperledger.scm
index 82680cd5e4..2a4b87e927 100644
--- a/gnu/packages/hyperledger.scm
+++ b/gnu/packages/hyperledger.scm
@@ -63,10 +63,7 @@
               (file-name (git-file-name name version))))
     (build-system go-build-system)
     (native-inputs
-     `(("which" ,which)
-       ("docker-cli" ,docker-cli)
-       ("git" ,git)
-       ("curl" ,curl)))
+     (list which docker-cli git curl))
     (arguments
      `(#:import-path "github.com/hyperledger/fabric"
        #:unpack-path "github.com/hyperledger/fabric"
@@ -122,7 +119,7 @@ different components.")
                 "0kr1zwah8mhnpfrpk3h6hdafyqdl3ixhs7czdfscqv6vxqfiabc4"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("googletest" ,googletest)))
+     (list googletest))
     (arguments
      `(#:tests? #f      ; Tests don't build because CMake cannot find GTest main.
        #:configure-flags '("-DHUNTER_ENABLED=OFF"
@@ -182,20 +179,16 @@ link-time.  New implementations can be added as well.")
        #:test-target "."))
     ;; https://github.com/hyperledger/iroha/blob/master/vcpkg/VCPKG_DEPS_LIST
     (native-inputs
-     `(("fmt" ,fmt)
-       ("googletest" ,googletest)
-       ("rapidjson" ,rapidjson)
-       ("rxcpp" ,rxcpp)
-       ("spdlog" ,spdlog)))
+     (list fmt googletest rapidjson rxcpp spdlog))
     (inputs
-     `(("boost" ,boost)
-       ("gflags" ,gflags)
-       ("grpc" ,grpc-1.16.1)
-       ("hyperledger-iroha-ed25519" ,hyperledger-iroha-ed25519)
-       ("postgresql" ,postgresql)
-       ("protobuf" ,protobuf)
-       ("soci" ,soci)
-       ("tbb" ,tbb)))
+     (list boost
+           gflags
+           grpc-1.16.1
+           hyperledger-iroha-ed25519
+           postgresql
+           protobuf
+           soci
+           tbb))
     (synopsis "Simple, decentralized ledger")
     (description "Iroha is a distributed ledger technology (DLT).  Iroha has
 essential functionality for your asset, information and identity management
diff --git a/gnu/packages/i2p.scm b/gnu/packages/i2p.scm
index 1a9958c8d0..b945018ba8 100644
--- a/gnu/packages/i2p.scm
+++ b/gnu/packages/i2p.scm
@@ -44,10 +44,7 @@
         (base32 "1a35grcfw5a9dsj0rnm2i86fjf4px96xbnjj3hkril7hv5jvl37k"))))
     (build-system cmake-build-system)
     (inputs
-     `(("boost" ,boost)
-       ("miniupnpc" ,miniupnpc)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list boost miniupnpc openssl zlib))
     (arguments
      '(#:configure-flags
        (let ((source (assoc-ref %build-inputs "source")))
diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm
index 297d490d3f..edaeb59641 100644
--- a/gnu/packages/ibus.scm
+++ b/gnu/packages/ibus.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2020 kanichos <kanichos@yandex.ru>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021 Songlin Jiang <hollowman@hollowman.ml>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,6 +33,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
+  #:use-module (guix build-system python)
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages anthy)
@@ -55,6 +57,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages python-web)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages textutils)
@@ -268,9 +271,8 @@ may also simplify input method development.")
        ("pygobject2" ,python-pygobject)
        ("gtk+" ,gtk+)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("glib" ,glib "bin")))
+     (list pkg-config intltool
+           `(,glib "bin")))
     (synopsis "Chinese pinyin and ZhuYin input methods for IBus")
     (description
      "This package includes a Chinese pinyin input method and a Chinese
@@ -292,10 +294,9 @@ ZhuYin (Bopomofo) input method based on libpinyin for IBus.")
                 "10h5mjgv4ibhispvr3s1k36a4aclx4dcvcc2knd4sg1xibw0dp4w"))))
     (build-system gnu-build-system)
     (inputs
-     `(("glib" ,glib)
-       ("bdb" ,bdb)))
+     (list glib bdb))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Library to handle Chinese pinyin")
     (description
      "The libpinyin C++ library provides algorithms needed for sentence-based
@@ -341,11 +342,7 @@ Chinese pinyin input methods.")
        ("pkg-config" ,pkg-config)
        ("python" ,python)))
     (inputs
-     `(("anthy" ,anthy)
-       ("gtk+" ,gtk+)
-       ("ibus" ,ibus)
-       ("gobject-introspection" ,gobject-introspection)
-       ("python-pygobject" ,python-pygobject)))
+     (list anthy gtk+ ibus gobject-introspection python-pygobject))
     (synopsis "Anthy Japanese language input method for IBus")
     (description "IBus-Anthy is an engine for the input bus \"IBus\").  It
 adds the Anthy Japanese language input method to IBus.  Because most graphical
@@ -387,17 +384,15 @@ Japanese language input in most graphical applications.")
                (("link_directories\\($\\{PROJECT_SOURCE_DIR\\}/thirdparty/lib\\)") ""))
              #t)))))
     (inputs
-     `(("boost" ,boost)
-       ("capnproto" ,capnproto)
-       ("glog" ,glog)
-       ("leveldb" ,leveldb)
-       ("marisa" ,marisa)
-       ("opencc" ,opencc)
-       ("yaml-cpp" ,yaml-cpp)))
+     (list boost
+           capnproto
+           glog
+           leveldb
+           marisa
+           opencc
+           yaml-cpp))
     (native-inputs
-     `(("googletest" ,googletest)
-       ("pkg-config" ,pkg-config)
-       ("xorgproto" ,xorgproto))) ; keysym.h
+     (list googletest pkg-config xorgproto)) ; keysym.h
     (home-page "https://rime.im/")
     (synopsis "The core library of Rime Input Method Engine")
     (description "@dfn{librime} is the core library of Rime Input Method
@@ -741,12 +736,12 @@ Method Engine.")
                 "DESTINATION \"${CMAKE_INSTALL_DATADIR}/rime-data\""))
              #t)))))
     (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
-       ("ibus" ,ibus)
-       ("libnotify" ,libnotify)
-       ("librime" ,librime)
-       ("rime-data" ,rime-data)))
+     (list gdk-pixbuf
+           glib
+           ibus
+           libnotify
+           librime
+           rime-data))
     (native-inputs
      `(("cmake" ,cmake-minimal)
        ("pkg-config" ,pkg-config)))
@@ -812,14 +807,41 @@ hanja dictionary and small hangul character classification.")
        ("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")))
     (inputs
-     `(("ibus" ,ibus)
-       ("glib" ,glib)
-       ("python-pygobject" ,python-pygobject)
-       ("gtk+" ,gtk+)
-       ("libhangul" ,libhangul)
-       ("python" ,python)))
+     (list ibus
+           glib
+           python-pygobject
+           gtk+
+           libhangul
+           python))
     (home-page "https://github.com/libhangul/ibus-hangul")
     (synopsis "Hangul engine for IBus")
     (description
      "ibus-hangul is a Korean input method engine for IBus.")
     (license gpl2+)))
+
+(define-public ibus-theme-tools
+  (package
+    (name "ibus-theme-tools")
+    (version "4.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/openSUSE/IBus-Theme-Tools")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0i8vwnikwd1bfpv4xlgzc51gn6s18q58nqhvcdiyjzcmy3z344c2"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ; No tests
+    (propagated-inputs
+     (list python-tinycss2 python-pygobject))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)))
+    (home-page "https://github.com/openSUSE/IBus-Theme-Tools")
+    (synopsis "Tool for IBus Themes")
+    (description "IBus Theme Tools can extract IBus-specific settings from
+GTK themes to apply both within and without GNOME Shell.")
+    (license gpl3+)))
diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm
index b9671a6ab1..ec526e5ed3 100644
--- a/gnu/packages/icu4c.scm
+++ b/gnu/packages/icu4c.scm
@@ -61,7 +61,7 @@
             `(("icu4c-build-root" ,icu4c-build-root))
             '())))
    (inputs
-    `(("perl" ,perl)))
+    (list perl))
    (arguments
     `(#:configure-flags
       (list
@@ -200,9 +200,7 @@ C/C++ part.")
                (install-file "icu4j.jar" share)
                #t))))))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-junitparams" ,java-junitparams)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-junitparams java-hamcrest-core))
     (home-page "http://site.icu-project.org/")
     (synopsis "International Components for Unicode")
     (description
diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm
index ca2772b904..3e480e06b4 100644
--- a/gnu/packages/idris.scm
+++ b/gnu/packages/idris.scm
@@ -47,44 +47,43 @@
               (sha256
                (base32
                 "1pachwc6msw3n1mz2z1r1w6h518w9gbhdvbaa5vi1qp3cn3wm6q4"))
-              (patches (search-patches "idris-disable-test.patch"))))
+              (patches (search-patches "idris-disable-test.patch"
+                                       "idris-build-with-haskeline-0.8.patch"
+                                       "idris-build-with-megaparsec-9.patch"))))
     (build-system haskell-build-system)
     (native-inputs                      ;For tests
-     `(("perl" ,perl)
-       ("ghc-cheapskate" ,ghc-cheapskate)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-golden" ,ghc-tasty-golden)
-       ("ghc-tasty-rerun" ,ghc-tasty-rerun)))
+     (list perl ghc-cheapskate ghc-tasty ghc-tasty-golden
+           ghc-tasty-rerun))
     (inputs
-     `(("gmp" ,gmp)
-       ("ncurses" ,ncurses)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-annotated-wl-pprint" ,ghc-annotated-wl-pprint)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
-       ("ghc-async" ,ghc-async)
-       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
-       ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-blaze-markup" ,ghc-blaze-markup)
-       ("ghc-cheapskate" ,ghc-cheapskate)
-       ("ghc-code-page" ,ghc-code-page)
-       ("ghc-fingertree" ,ghc-fingertree)
-       ("ghc-fsnotify" ,ghc-fsnotify)
-       ("ghc-ieee754" ,ghc-ieee754)
-       ("ghc-libffi" ,ghc-libffi)
-       ("ghc-megaparsec" ,ghc-megaparsec)
-       ("ghc-network" ,ghc-network)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
-       ("ghc-safe" ,ghc-safe)
-       ("ghc-split" ,ghc-split)
-       ("ghc-terminal-size" ,ghc-terminal-size)
-       ("ghc-uniplate" ,ghc-uniplate)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)
-       ("ghc-zip-archive" ,ghc-zip-archive)))
+     (list gmp
+           ncurses
+           ghc-aeson
+           ghc-annotated-wl-pprint
+           ghc-ansi-terminal
+           ghc-ansi-wl-pprint
+           ghc-async
+           ghc-base64-bytestring
+           ghc-blaze-html
+           ghc-blaze-markup
+           ghc-cheapskate
+           ghc-code-page
+           ghc-fingertree
+           ghc-fsnotify
+           ghc-ieee754
+           ghc-libffi
+           ghc-megaparsec
+           ghc-network
+           ghc-optparse-applicative
+           ghc-regex-tdfa
+           ghc-safe
+           ghc-split
+           ghc-terminal-size
+           ghc-uniplate
+           ghc-unordered-containers
+           ghc-utf8-string
+           ghc-vector
+           ghc-vector-binary-instances
+           ghc-zip-archive))
     (arguments
      `(#:configure-flags
        (list (string-append "--datasubdir="
@@ -97,12 +96,11 @@
            (lambda _
              (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/dist/build"))
              #t))
-         (add-after 'unpack 'update-constraints
+         (add-before 'configure 'update-constraints
            (lambda _
              (substitute* "idris.cabal"
-               (("ansi-terminal < 0\\.9") "ansi-terminal < 0.10")
-               (("cheapskate >= 0\\.1\\.1\\.2 && < 0\\.2") "cheapskate >= 0.1.1.1 && < 0.2"))
-             #t))
+               (("(aeson|ansi-terminal|haskeline|megaparsec|optparse-applicative)\\s+[^,]+" all dep)
+                dep))))
          (add-before 'configure 'set-cc-command
            (lambda _
              (setenv "CC" "gcc")
@@ -213,7 +211,7 @@ Epigram and Agda.")
                   "1pkxnn3ryr0v0cin4nasw7kgkc9dnnpja1nfbj466mf3qv5s98af"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("idris" ,idris)))
+       (list idris))
       (arguments (idris-default-arguments name))
       (home-page "https://github.com/ziman/lightyear")
       (synopsis "Lightweight parser combinator library for Idris")
@@ -238,7 +236,7 @@ difference: backtracking.")
                   "0g7c3y9smifdz4sivi3qmvymhdr7v9kfq45fmfmmvkqcrix0spzn"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("idris" ,idris)))
+       (list idris))
       (arguments (idris-default-arguments name))
       (home-page "https://github.com/shayan-najd/wl-pprint")
       (synopsis "Pretty printing library")
@@ -263,7 +261,7 @@ wl-pprint library.")
                   "02vbsd3rmgnj0l1qq787709qcxjbr9890cbad4ykn27f77jk81h4"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("idris" ,idris)))
+       (list idris))
       (arguments (idris-default-arguments name))
       (home-page "https://github.com/HuwCampbell/Idris-Bifunctors")
       (synopsis "Bifunctor library")
@@ -287,9 +285,9 @@ excellent Haskell Bifunctors package from Edward Kmett.")
                   "06jzfj6rad08rk92w8jk5byi79svmyg0mrcqhibgx8rkjjy6vmai"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("idris" ,idris)))
+       (list idris))
       (propagated-inputs
-       `(("idris-bifunctors" ,idris-bifunctors)))
+       (list idris-bifunctors))
       (arguments (idris-default-arguments name))
       (home-page "https://github.com/HuwCampbell/idris-lens")
       (synopsis "Van Laarhoven lenses for Idris")
diff --git a/gnu/packages/idutils.scm b/gnu/packages/idutils.scm
index d16f2ffdeb..6d2f003734 100644
--- a/gnu/packages/idutils.scm
+++ b/gnu/packages/idutils.scm
@@ -36,7 +36,6 @@
              (sha256
               (base32
                "1hmai3422iaqnp34kkzxdnywl7n7pvlxp11vrw66ybxn9wxg90c1"))
-             (patches (search-patches "diffutils-gets-undeclared.patch"))
              (modules '((guix build utils)))
              (snippet
               '(begin
@@ -49,7 +48,11 @@
                                    "# define _IO_IN_BACKUP 0x100\n"
                                    "#endif\n\n"
                                    "/* BSD stdio derived implementations")))
-                 #t))))
+
+                 ;; 'gets' is deprecated in glibc 2.33 and its declaration is
+                 ;; no longer visible by default from <stdio.h>.
+                 (substitute* "lib/stdio.in.h"
+                   (("_GL_WARN_ON_USE \\(gets.*") ""))))))
     (build-system gnu-build-system)
     (arguments
      ;; XXX: These Gnulib tests fail with GCC 10 and glibc 2.33; skip them.
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index b27a80a1a7..93fe384aa8 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
 ;;; Copyright © 2021 Paul Garlick <pgarlick@tourbillion-technology.com>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,6 +58,7 @@
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages geo)
   #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages gimp)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -104,15 +106,15 @@
         (base32 "13j5yf3p6qj3mr17d77r3kcqchf055hgvk1w15vmdr8f54mwcnb8"))))
     (build-system cmake-build-system)
     (inputs
-     `(("icu4c" ,icu4c)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libtiff" ,libtiff)
-       ("libxml2" ,libxml2)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list icu4c
+           libjpeg-turbo
+           libpng
+           libtiff
+           libxml2
+           openssl
+           zlib))
     (native-inputs
-     `(("doxygen" ,doxygen)))           ; for HTML documentation
+     (list doxygen))           ; for HTML documentation
     (home-page "https://dcmtk.org")
     (synopsis "Libraries and programs implementing parts of the DICOM standard")
     (description "DCMTK is a collection of libraries and applications
@@ -161,7 +163,7 @@ licences similar to the Modified BSD licence."))))
        ("maxflow" ,maxflow)
        ("niftilib" ,niftilib)
        ("nlopt" ,nlopt)
-       ("openexr" ,openexr)
+       ("openexr" ,openexr-2)
        ("python-lxml" ,python2-lxml)
        ("vtk" ,vtk)))
     (native-inputs
@@ -224,15 +226,12 @@ of external libraries that provide additional functionality.")
                (("/bin/sh") (which "bash")))
              #t)))))
     (native-inputs
-     `(("git" ,git)
-       ("pkg-config" ,pkg-config)))
+     (list git pkg-config))
     (inputs
      ;; XXX Adding freeglut, glew, ilmbase, mesa, and openimageio for
      ;; ocioconvert fails: error: conflicting declaration ?typedef void
      ;; (* PFNGLGETFRAGMENTMATERIALFVSGIXPROC)(GLenum, GLenum, GLfloat*)
-     `(("lcms" ,lcms)
-       ("openexr" ,openexr)
-       ("tinyxml" ,tinyxml)))
+     (list lcms openexr-2 tinyxml))
     (home-page "https://opencolorio.org")
     (synopsis "Color management for visual effects and animation")
     (description
@@ -333,7 +332,7 @@ many popular formats.")
        ("mesa" ,mesa)
        ("netcdf" ,netcdf)
        ("png" ,libpng)
-       ("proj" ,proj.4)
+       ("proj" ,proj)
        ("python", python)
        ;("pugixml" ,pugixml)
        ("sqlite" ,sqlite)
@@ -343,98 +342,7 @@ many popular formats.")
     (propagated-inputs
      ;; VTK's 'VTK-vtk-module-find-packages.cmake' calls
      ;; 'find_package(THEORA)', which in turns looks for libogg.
-     `(("libogg" ,libogg)))
-    (home-page "https://vtk.org/")
-    (synopsis "Libraries for 3D computer graphics")
-    (description
-     "The Visualization Toolkit (VTK) is a C++ library for 3D computer graphics,
-image processing and visualization.  It supports a wide variety of
-visualization algorithms including: scalar, vector, tensor, texture, and
-volumetric methods; and advanced modeling techniques such as: implicit
-modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay
-triangulation.  VTK has an extensive information visualization framework, has
-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)))
-
-;; freecad needs an old version of VTK, because VTK's API changed from 8 to 9
-(define-public vtk-8
-  (package
-    (name "vtk")
-    (version "8.2.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://vtk.org/files/release/"
-                                  (version-major+minor version)
-                                  "/VTK-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1fspgp8k0myr6p2a6wkc21ldcswb4bvmb484m12mxgk1a9vxrhrl"))
-              (patches
-               (search-patches "vtk-8-fix-freetypetools-build-failure.patch"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  (for-each
-                    (lambda (dir)
-                      (delete-file-recursively
-                        (string-append "ThirdParty/" dir "/vtk" dir)))
-                    ;; ogg, pugixml depended upon unconditionally
-                    '("doubleconversion" "eigen" "expat" "freetype" "gl2ps"
-                      "glew" "hdf5" "jpeg" "jsoncpp" "libproj" "libxml2" "lz4"
-                      "netcdf" "png" "sqlite" "theora" "tiff" "zlib"))
-                  #t))))
-    (build-system cmake-build-system)
-    (arguments
-     '(#:build-type "Release"           ;Build without '-g' to save space.
-       #:configure-flags '(;"-DBUILD_TESTING:BOOL=TRUE"
-                           ;"-DVTK_MODULE_USE_EXTERNAL_vtkogg:BOOL=TRUE"    ; not honored
-                           "-DVTK_USE_SYSTEM_DOUBLECONVERSION:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_EIGEN:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_EXPAT:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_FREETYPE:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_GL2PS:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_GLEW:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_HDF5:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_JPEG:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_JSONCPP:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_LIBPROJ:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_LIBXML2:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_LZ4:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_NETCDF:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_PNG:BOOL=TRUE"
-                           ;"-DVTK_USE_SYSTEM_PUGIXML:BOOL=TRUE"    ; breaks IO/CityGML
-                           "-DVTK_USE_SYSTEM_SQLITE:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_THEORA:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_TIFF:BOOL=TRUE"
-                           "-DVTK_USE_SYSTEM_ZLIB:BOOL=TRUE")
-       #:tests? #f))        ;XXX: test data not included
-    (inputs
-     `(("double-conversion" ,double-conversion)
-       ("eigen" ,eigen)
-       ("expat" ,expat)
-       ("freetype" ,freetype)
-       ("gl2ps" ,gl2ps)
-       ("glew" ,glew)
-       ("glu" ,glu)
-       ("hdf5" ,hdf5)
-       ("jpeg" ,libjpeg-turbo)
-       ("jsoncpp" ,jsoncpp)
-       ;("libogg" ,libogg)
-       ("libtheora" ,libtheora)
-       ("libX11" ,libx11)
-       ("libxml2" ,libxml2)
-       ("libXt" ,libxt)
-       ("lz4" ,lz4)
-       ("mesa" ,mesa)
-       ("netcdf" ,netcdf)
-       ("png" ,libpng)
-       ("proj" ,proj.4)
-       ;("pugixml" ,pugixml)
-       ("sqlite" ,sqlite)
-       ("tiff" ,libtiff)
-       ("xorgproto" ,xorgproto)
-       ("zlib" ,zlib)))
+     (list libogg))
     (home-page "https://vtk.org/")
     (synopsis "Libraries for 3D computer graphics")
     (description
@@ -461,8 +369,8 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
                (base32
                 "0pla1r5mvkgl4sl213gfdhzrypdgai0h3z5mfgm6p9jz9hsr794j"))))
     (inputs
-     `(("jsoncpp" ,jsoncpp-for-tensorflow)
-       ,@(alist-delete "jsoncpp" (package-inputs vtk))))))
+     (modify-inputs (package-inputs vtk)
+       (replace "jsoncpp" jsoncpp-for-tensorflow)))))
 
 (define-public opencv
   (package
@@ -635,7 +543,7 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
               ("libwebp" ,libwebp)
               ("zlib" ,zlib)
               ("gtkglext" ,gtkglext)
-              ("openexr" ,openexr)
+              ("openexr" ,openexr-2)
               ("ilmbase" ,ilmbase)
               ("gtk+" ,gtk+-2)
               ("python-numpy" ,python-numpy)
@@ -681,30 +589,29 @@ vision algorithms.  It can be used to do things like:
         (base32 "0vjsh3i0861f6h9as3bch956cidz824zz499pvhjs3lfjn6hhs14"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)))
+     (list gobject-introspection pkg-config))
     (inputs
-     `(("expat" ,expat)
-       ("fftw" ,fftw)
-       ("giflib" ,giflib)
-       ("glib" ,glib)
-       ("hdf5" ,hdf5)
-       ("imagemagick" ,imagemagick)
-       ("lcms" ,lcms)
-       ("libexif" ,libexif)
-       ("libgsf" ,libgsf)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("librsvg" ,librsvg)
-       ("libtiff" ,libtiff)
-       ("libxml2" ,libxml2)
-       ("libwebp" ,libwebp)
-       ("matio" ,matio)
-       ("niftilib" ,niftilib)
-       ("openexr" ,openexr)
-       ("orc" ,orc)
-       ("pango" ,pango)
-       ("poppler" ,poppler)))
+     (list expat
+           fftw
+           giflib
+           glib
+           hdf5
+           imagemagick
+           lcms
+           libexif
+           libgsf
+           libjpeg-turbo
+           libpng
+           librsvg
+           libtiff
+           libxml2
+           libwebp
+           matio
+           niftilib
+           openexr-2
+           orc
+           pango
+           poppler))
     (home-page "https://libvips.github.io/libvips/")
     (synopsis "Multithreaded image processing system with low memory needs")
     (description
@@ -743,18 +650,18 @@ due to its architecture which automatically parallelises the image workflows.")
                       "-Wl,-rpath="
                       (assoc-ref outputs "out") "/lib")))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("curl" ,curl)
-       ("fftw" ,fftw)
-       ("graphicsmagick" ,graphicsmagick)
-       ("libjpeg-turbo" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libtiff" ,libtiff)
-       ("libx11" ,libx11)
-       ;;("opencv" ,opencv) ;OpenCV is currently broken in the CI
-       ("openexr" ,openexr)
-       ("zlib" ,zlib)))
+     (list curl
+           fftw
+           graphicsmagick
+           libjpeg-turbo
+           libpng
+           libtiff
+           libx11
+           ;;("opencv" ,opencv) ;OpenCV is currently broken in the CI
+           openexr-2
+           zlib))
     (home-page "https://gmic.eu/")
     (synopsis "Full-featured framework for digital image processing")
     (description "G'MIC is a full-featured framework for digital image
@@ -780,12 +687,10 @@ including 2D color images.")
             (add-after 'unpack 'qt-chdir
               (lambda _ (chdir "gmic-qt") #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (inputs
-     `(("gmic" ,gmic)
-       ("qtbase" ,qtbase-5)
-       ,@(package-inputs gmic)))
+     (modify-inputs (package-inputs gmic)
+       (prepend gmic qtbase-5)))
     (synopsis "Qt frontend for the G'MIC image processing framework")
     (license license:gpl3+)))
 
@@ -801,6 +706,22 @@ including 2D color images.")
                               (assoc-ref %build-inputs "gmic") "/lib")))))
     (synopsis "Krita plugin for the G'MIC image processing framework")))
 
+(define-public gmic-qt-gimp
+  (package
+    (inherit gmic-qt)
+    (name "gmic-qt-gimp")
+    (inputs
+     ;; GIMP and its dependencies.
+     (modify-inputs (package-inputs gmic-qt)
+       (prepend gimp gdk-pixbuf cairo gegl)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments gmic-qt)
+       ((#:configure-flags flags)
+        '(list "-DGMIC_QT_HOST=gimp" "-DENABLE_DYNAMIC_LINKING=ON"
+               (string-append "-DGMIC_LIB_PATH="
+                              (assoc-ref %build-inputs "gmic") "/lib")))))
+    (synopsis "GIMP plugin for the G'MIC image processing framework")))
+
 (define-public nip2
   (package
     (name "nip2")
@@ -840,13 +761,11 @@ including 2D color images.")
        ("matio" ,matio)
        ("lcms" ,lcms)
        ("libwebp" ,libwebp)
-       ("openexr" ,openexr)
+       ("openexr" ,openexr-2)
        ("poppler" ,poppler)
        ("gsl" ,gsl)))
     (native-inputs
-     `(("flex" ,flex)
-       ("bison" ,bison)
-       ("pkg-config" ,pkg-config)))
+     (list flex bison pkg-config))
     (home-page "https://github.com/libvips/nip2")
     (synopsis "Spreadsheet-like GUI for libvips")
     (description "This package provide a graphical user interface (GUI) for
@@ -886,11 +805,7 @@ recalculates.")
            #t))))
     (build-system cmake-build-system)
     (inputs
-     `(("libgeotiff" ,libgeotiff)
-       ("libtiff" ,libtiff)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("zlib" ,zlib)))
+     (list libgeotiff libtiff libjpeg-turbo libpng zlib))
     (home-page "https://github.com/vxl/vxl/")
     (synopsis "Collection of C++ libraries for computer vision")
     (description "VXL (the Vision-something-Libraries) is a collection of C++
@@ -976,8 +891,7 @@ libraries designed for computer vision research and implementation.")
        ("vxl" ,vxl-1)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("googletest" ,googletest)
-       ("pkg-config" ,pkg-config)))
+     (list googletest pkg-config))
     (home-page "https://github.com/InsightSoftwareConsortium/ITK/")
     (synopsis "Scientific image processing, segmentation and registration")
     (description "The Insight Toolkit (ITK) is a toolkit for N-dimensional
@@ -1233,7 +1147,7 @@ substituted by matching images.")
            "0kixwjb2x457dq7927hkh34c803p7yh1pmn6n61rk9shqrcg492h"))))
       (build-system qt-build-system)
       (native-inputs
-       `(("qttools" ,qttools)))
+       (list qttools))
       (inputs
        `(("boost" ,boost)
          ("libjpeg" ,libjpeg-turbo)
@@ -1276,9 +1190,7 @@ and Scan Tailor Enhanced versions as well as including many more bug fixes.")
         (base32 "14m92dskzw7bwsr64ha4p0mj3ndv13gwcbfic3qxrs3zq5353s7l"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libtiff" ,libtiff)
-       ("zlib" ,zlib)
-       ("libjpeg-turbo" ,libjpeg-turbo)))
+     (list libtiff zlib libjpeg-turbo))
     (home-page "https://www.astromatic.net/software/stiff")
     (synopsis "Convert scientific FITS images to TIFF format")
     (description
@@ -1312,11 +1224,8 @@ purposes.")
                (invoke "pytest" "-v" "tests"))
              #t)))))
     (propagated-inputs
-      `(("python-matplotlib" ,python-matplotlib)
-        ("python-numpy" ,python-numpy)
-        ("python-pillow" ,python-pillow)
-        ("python-pyyaml" ,python-pyyaml)))
-    (native-inputs `(("python-pytest" ,python-pytest)))
+      (list python-matplotlib python-numpy python-pillow python-pyyaml))
+    (native-inputs (list python-pytest))
     (home-page "http://github.com/wkentaro/imgviz")
     (synopsis "Image Visualization Tools")
     (description "Python library for object detection, semantic and instance
@@ -1326,7 +1235,7 @@ segmentation.")
 (define-public labelme
   (package
     (name "labelme")
-    (version "4.5.9")
+    (version "4.5.13")
     (source
      (origin
        ;; PyPi tarball lacks tests.
@@ -1336,11 +1245,17 @@ segmentation.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "12wn291516kdv0wqngz4l04j95g3rwc6cvkcb0gw8rrv4wgc7c66"))))
+        (base32 "0cmi2xb4dgh7738l259rgwhn9l134f0vnaaqc2gflc5yr3lqhrv2"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'loosen-requirements
+           (lambda _
+             ;; Don't require an outdated version of matplotlib.
+             (substitute* "setup.py"
+               (("matplotlib<3\\.3")
+                "matplotlib"))))
          (add-before 'check 'start-xserver
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((xorg-server (assoc-ref inputs "xorg-server")))
@@ -1362,17 +1277,15 @@ segmentation.")
                (setenv "MPLBACKEND" "agg")
                (invoke "pytest" "-v" "tests" "-m" "not gpu")))))))
     (propagated-inputs
-      `(("python-imgviz" ,python-imgviz)
-        ("python-matplotlib" ,python-matplotlib)
-        ("python-numpy" ,python-numpy)
-        ("python-pillow" ,python-pillow)
-        ("python-pyyaml" ,python-pyyaml)
-        ("python-qtpy" ,python-qtpy)
-        ("python-termcolor" ,python-termcolor)))
+      (list python-imgviz
+            python-matplotlib
+            python-numpy
+            python-pillow
+            python-pyyaml
+            python-qtpy
+            python-termcolor))
     (native-inputs
-      `(("python-pytest" ,python-pytest)
-        ("python-pytest-qt" ,python-pytest-qt)
-        ("xorg-server" ,xorg-server-for-tests)))
+      (list python-pytest python-pytest-qt xorg-server-for-tests))
     (home-page "https://github.com/wkentaro/labelme")
     (synopsis
       "Image Polygonal Annotation")
diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm
index de83084cdc..5d0313d6ae 100644
--- a/gnu/packages/image-viewers.scm
+++ b/gnu/packages/image-viewers.scm
@@ -21,6 +21,8 @@
 ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
 ;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2021 dissent <disseminatedissent@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -49,6 +51,7 @@
   #:use-module (guix build-system python)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages boost)
@@ -72,6 +75,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages photo)
@@ -81,6 +85,7 @@
   #:use-module (gnu packages qt)
   #:use-module (gnu packages suckless)
   #:use-module (gnu packages terminals)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages video)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
@@ -224,24 +229,24 @@
                 "report at: https://issues.guix.gnu.org"))))
          (delete 'configure))))         ;no configure script
     (inputs
-     `(("bash" ,bash)
-       ("catimg" ,catimg)
-       ("chafa" ,chafa)
-       ("coreutils" ,coreutils)
-       ("curl" ,curl)
-       ("dmenu" ,dmenu)
-       ("fzf" ,fzf)
-       ("gawk" ,gawk)
-       ("grep" ,grep)
-       ("jp2a" ,jp2a)
-       ("jq" ,jq)
-       ("libnotify" ,libnotify)
-       ("mpv" ,mpv)
-       ("ncurses" ,ncurses)
-       ("python-ueberzug" ,python-ueberzug)
-       ("sed" ,sed)
-       ("util-linux" ,util-linux)
-       ("youtube-dl" ,youtube-dl)))
+     (list bash
+           catimg
+           chafa
+           coreutils
+           curl
+           dmenu
+           fzf
+           gawk
+           grep
+           jp2a
+           jq
+           libnotify
+           mpv
+           ncurses
+           python-ueberzug
+           sed
+           util-linux
+           youtube-dl))
     (synopsis "Watch PeerTube or YouTube videos from the terminal")
     (description "@code{ytfzf} is a POSIX script that helps you find PeerTube or
 YouTube videos without requiring API and opens/downloads them using mpv/ytdl.")
@@ -250,7 +255,7 @@ YouTube videos without requiring API and opens/downloads them using mpv/ytdl.")
 (define-public feh
   (package
     (name "feh")
-    (version "3.7.1")
+    (version "3.7.2")
     (home-page "https://feh.finalrewind.org/")
     (source (origin
               (method url-fetch)
@@ -258,7 +263,7 @@ YouTube videos without requiring API and opens/downloads them using mpv/ytdl.")
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "1djqjagp7k9rris1p8wgz0q8albgsd8gasc0hyanbjap3yk1rasp"))))
+                "0n42kj18ldlcmrmk5qir9gs9irdl1vz9913n8p941x8cfb98ywc4"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases (delete 'configure))
@@ -269,15 +274,14 @@ YouTube videos without requiring API and opens/downloads them using mpv/ytdl.")
              "exif=1"
              "inotify=1")))
     (native-inputs
-     `(("perl" ,perl)
-       ("perl-test-command" ,perl-test-command)))
-    (inputs `(("imlib2" ,imlib2)
-              ("curl" ,curl)
-              ("libexif" ,libexif)
-              ("libpng" ,libpng)
-              ("libxt" ,libxt)
-              ("libx11" ,libx11)
-              ("libxinerama" ,libxinerama)))
+     (list perl perl-test-command))
+    (inputs (list imlib2
+                  curl
+                  libexif
+                  libpng
+                  libxt
+                  libx11
+                  libxinerama))
     (native-search-paths
      ;; Feh allows overriding the libcurl builtin CA path (unset in Guix)
      ;; with the same variable as the `curl` command line HTTP tool.
@@ -300,7 +304,7 @@ actions.")
 (define-public geeqie
   (package
     (name "geeqie")
-    (version "1.5")
+    (version "1.6")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -308,27 +312,43 @@ actions.")
                     (commit (string-append "v" version))))
               (sha256
                (base32
-                "0nf45sh3pwsv98sppcrqj81b6mdi31n1sbc7gn88m8mhpfp1qq6k"))
-              (file-name (git-file-name name version))))
+                "1i9yd8lddp6b9s9vjjjzbpqj4bvwidxc6kiba6vdrk7dda5akyky"))
+              (file-name (git-file-name name version))
+              (patches (search-patches "geeqie-clutter.patch"))))
     (build-system gnu-build-system)
     (arguments
-     `( ;; Enable support for a "map" pane using GPS data.
-       #:configure-flags '("CFLAGS=-fcommon"
+     ;; Enable support for a "map" pane using GPS data.
+     `(#:configure-flags '("CFLAGS=-O2 -g -fcommon"
                            "--enable-map"
-                           "--enable-gtk3")))
+                           "--enable-gtk3")
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'correctly-locate-aux-scripts
+                    ;; The git checkout has symlinks under the auxdir
+                    ;; directory pointing to /usr/share/automake-1.16/depcomp
+                    ;; and /usr/share/automake-1.16/install-sh, which causes
+                    ;; the configure phase to fail (see:
+                    ;; https://github.com/BestImageViewer/geeqie/issues/936).
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (let ((automake (assoc-ref inputs "automake")))
+                        (delete-file "auxdir/depcomp")
+                        (symlink (car (find-files automake "depcomp"))
+                                 "auxdir/depcomp")
+                        (delete-file "auxdir/install-sh")
+                        (symlink (car (find-files automake "install-sh"))
+                                 "auxdir/install-sh")))))))
     (inputs
-     `(("clutter" ,clutter)
-       ("libchamplain" ,libchamplain)
-       ("lcms" ,lcms)
-       ("exiv2" ,exiv2)
-       ("libpng" ,libpng)
-       ("gtk+" ,gtk+)))
+     (list clutter
+           libchamplain
+           lcms
+           exiv2
+           libpng
+           gtk+))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("glib" ,glib "bin")                       ; glib-gettextize
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf
+           automake
+           `(,glib "bin") ; glib-gettextize
+           intltool
+           pkg-config))
     (home-page "http://www.geeqie.org/")
     (synopsis "Lightweight GTK+ based image viewer")
     (description
@@ -353,10 +373,8 @@ collection.  Geeqie was initially based on GQview.")
                (base32
                 "0hi9v0rdx47nys0wvm9xasdrafa34r5kq6crb074a0ipwmc60iiq"))))
     (build-system gnu-build-system)
-    (inputs `(("gtk+" ,gtk+-2)
-              ("libjpeg" ,libjpeg-turbo)))
-    (native-inputs `(("intltool"   ,intltool)
-                     ("pkg-config" ,pkg-config)))
+    (inputs (list gtk+-2 libjpeg-turbo))
+    (native-inputs (list intltool pkg-config))
     (synopsis "Simple and fast image viewer for X")
     (description "gpicview is a lightweight GTK+ 2.x based image viewer.
 It is the default image viewer on LXDE desktop environment.")
@@ -401,12 +419,12 @@ It is the default image viewer on LXDE desktop environment.")
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke "make" "-C" "icon" "install" make-flags))))))
     (inputs
-     `(("freetype" ,freetype)
-       ("giflib" ,giflib)
-       ("imlib2" ,imlib2)
-       ("libexif" ,libexif)
-       ("libx11" ,libx11)
-       ("libxft" ,libxft)))
+     (list freetype
+           giflib
+           imlib2
+           libexif
+           libx11
+           libxft))
     (home-page "https://github.com/muennich/sxiv")
     (synopsis "Simple X Image Viewer")
     (description
@@ -417,10 +435,67 @@ base should be kept small and clean to make it easy for you to dig into
 it and customize it for your needs.")
     (license license:gpl2+)))
 
+(define-public nsxiv
+  (package
+    (name "nsxiv")
+    (version "27.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nsxiv/nsxiv")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1na7f0hpc9g04nm7991gzaqr5gkj08n2azx833hgxcm2w1pnn1bk"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ;no check target
+       #:make-flags
+       (list (string-append "PREFIX=" %output)
+             (string-append "CC=" ,(cc-for-target)))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ;no configure script
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Xft.h #includes <ft2build.h> without ‘freetype2/’.  The
+             ;; Makefile works around this by hard-coding /usr/include &
+             ;; $PREFIX.
+             (let ((freetype (string-append (assoc-ref inputs "freetype")
+                                            "/include/freetype2")))
+               (substitute* "Makefile"
+                 (("-I/usr/include/freetype2 -I\\$\\(PREFIX\\)/include/freetype2")
+                  (string-append "-I" freetype))))))
+         (add-after 'install 'install-desktop-file
+           (lambda* (#:key outputs #:allow-other-keys)
+             (install-file "nsxiv.desktop"
+                           (string-append (assoc-ref outputs "out")
+                                          "/share/applications"))))
+         (add-after 'install 'install-icons
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "-C" "icon" "install" make-flags))))))
+    (inputs
+     (list freetype
+           giflib
+           imlib2
+           libexif
+           libx11
+           libxft))
+    (home-page "https://github.com/nsxiv/nsxiv")
+    (synopsis "Neo Simple X Image Viewer")
+    (description
+     "nsxiv is a fork of sxiv.  Its primary goal is to provide the most basic
+features required for fast image viewing.  It has vi key bindings and works
+nicely with tiling window managers.  Its code base should be kept small and
+clean to make it easy for you to dig into it and customize it for your
+needs.")
+    (license license:gpl2+)))
+
 (define-public viewnior
   (package
     (name "viewnior")
-    (version "1.7")
+    (version "1.8")
     (source
       (origin
         (method git-fetch)
@@ -429,8 +504,7 @@ it and customize it for your needs.")
                (commit (string-append name "-" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32
-          "0y4hk3vq8psba5k615w18qj0kbdfp5w0lm98nv5apy6hmcpwfyig"))))
+         (base32 "14qvx1wajncd5ab0207274cwk32f4ipfnlaci6phmah0cwra2did"))))
     (build-system meson-build-system)
     (arguments
      '(#:phases
@@ -451,7 +525,7 @@ it and customize it for your needs.")
      `(("exiv2" ,exiv2)
        ("gdk-pixbuf" ,gdk-pixbuf)
        ("gtk+-2" ,gtk+-2)))
-    (home-page "http://siyanpanayotov.com/project/viewnior")
+    (home-page "https://siyanpanayotov.com/project/viewnior")
     (synopsis "Simple, fast and elegant image viewer")
     (description "Viewnior is an image viewer program.  Created to be simple,
 fast and elegant.  Its minimalistic interface provides more screenspace for
@@ -506,7 +580,7 @@ your images.  Among its features are:
                                        "/bin/catimg.sh"))
              #t)))))
     (inputs
-     `(("imagemagick" ,imagemagick))) ; for the bash script version
+     (list imagemagick)) ; for the bash script version
     (home-page "https://github.com/posva/catimg")
     (synopsis "Render images in the terminal")
     (description
@@ -528,8 +602,7 @@ It supports JPEG, PNG and GIF formats.")
                 "188q0l63nfasqfvwbq4mwx2vh7wsfi2bq9n5nksddspl1qz01lnp"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (inputs
      `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
@@ -544,7 +617,7 @@ It supports JPEG, PNG and GIF formats.")
        ("libpng" ,libpng)
        ("libjpeg" ,libjpeg-turbo)
        ("lcms" ,lcms)
-       ("openexr" ,openexr)
+       ("openexr" ,openexr-2)
        ("fftw" ,fftwf)
        ("gsl" ,gsl)
        ("libtiff" ,libtiff)))
@@ -598,10 +671,7 @@ imaging.  It supports several HDR and LDR image formats, and it can:
            "05zl0dkjwbdcm2zlk4nz9w33amlqj8pbf32a8ymshc2356fqhhi5"))))
       (build-system python-build-system)
       (inputs
-       `(("p7zip" ,p7zip)
-         ("python-pillow" ,python-pillow)
-         ("python-pygobject" ,python-pygobject)
-         ("python-pycairo" ,python-pycairo)))
+       (list p7zip python-pillow python-pygobject python-pycairo))
       (arguments
        `(#:tests? #f                    ; FIXME: How do we run tests?
          #:phases
@@ -699,9 +769,7 @@ For PDF support, install the @emph{mupdf} package.")
                (("updateText\\(\\);") ""))
              #t)))))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtimageformats" ,qtimageformats)))
+     (list qtbase-5 qtsvg qtimageformats))
     (home-page "https://interversehq.com/qview/")
     (synopsis "Convenient and minimal image viewer")
     (description "qView is a Qt image viewer designed with visually
@@ -723,12 +791,9 @@ preloading.")
                 "18rb82bfqj1sj2g4irazx4lwq9q4b4k7my1r0q714vf9yhs41ls6"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("freetype" ,freetype)
-       ("libjpeg" ,libjpeg-turbo)
-       ("glib" ,glib)
-       ("imagemagick" ,imagemagick)))
+     (list freetype libjpeg-turbo glib imagemagick))
     (synopsis "Convert images to ANSI/Unicode characters")
     (description
      "Chafa is a command-line utility that converts all kinds of images,
@@ -740,21 +805,20 @@ displayed in a terminal.")
 (define-public imv
   (package
     (name "imv")
-    (version "4.1.0")
+    (version "4.3.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/eXeC64/imv")
+                    (url "https://git.sr.ht/~exec64/imv")
                     (commit (string-append "v" version))))
               (sha256
                (base32
-                "0gk8g178i961nn3bls75a8qpv6wvfvav6hd9lxca1skaikd33zdx"))
+                "01x6qg7nhikqh68gnzrdvq0rxma5v9z19il89y8bvdrcr7r1vh40"))
               (file-name (git-file-name name version))))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (delete 'configure)
          (add-after 'install 'record-absolute-file-names
            (lambda* (#:key outputs #:allow-other-keys)
              ;; 'imv' is a script that execs 'imv-x11' or 'imv-wayland'.
@@ -763,24 +827,22 @@ displayed in a terminal.")
                     (bin (string-append out "/bin")))
                (substitute* (string-append bin "/imv")
                  (("imv-")
-                  (string-append bin "/imv-")))
-               #t))))
-       #:make-flags
-       (list ,(string-append "CC=" (cc-for-target))
-             (string-append "PREFIX=" (assoc-ref %outputs "out"))
-             (string-append "CONFIGPREFIX="
-                            (assoc-ref %outputs "out") "/etc"))))
-    (inputs
-     `(("asciidoc" ,asciidoc)
-       ("freeimage" ,freeimage)
-       ("glu" ,glu)
-       ("librsvg" ,librsvg)
-       ("libxkbcommon" ,libxkbcommon)
-       ("pango" ,pango)
-       ("wayland" ,wayland)))
+                  (string-append bin "/imv-")))))))))
     (native-inputs
-     `(("cmocka" ,cmocka)
-       ("pkg-config" ,pkg-config)))
+     (list asciidoc
+           pkg-config))
+    (inputs
+     (list freeimage
+           glu
+           libheif
+           libjpeg-turbo
+           libinih
+           libnsgif
+           librsvg
+           libtiff
+           libxkbcommon
+           pango
+           wayland))
     (synopsis "Image viewer for tiling window managers")
     (description "@code{imv} is a command line image viewer intended for use
 with tiling window managers.  Features include:
@@ -800,25 +862,32 @@ with tiling window managers.  Features include:
 @item Configurable key bindings and behavior.
 @item Highly scriptable with IPC via imv-msg.
 @end itemize\n")
-    (home-page "https://github.com/eXeC64/imv")
+    (home-page "https://git.sr.ht/~exec64/imv/")
     (license license:expat)))
 
 (define-public qiv
   (package
     (name "qiv")
-    (version "2.3.1")
+    (version "2.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://spiegl.de/qiv/download/qiv-"
                            version ".tgz"))
        (sha256
-        (base32 "1rlf5h67vhj7n1y7jqkm9k115nfnzpwngj3kzqsi2lg676srclv7"))))
+        (base32 "1mc0f2nnas4q0d7zc9r6g4z93i32xlx0p9hl4fn5zkyml24a1q28"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Fix a typo.  This can probably be removed on the next update.
+           (substitute* "Makefile"
+             (("\\$\\(PREFIX\\)/man")
+              "$(PREFIX)/share/man"))))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ;; That is required for testing.
-       ("xorg-server" ,xorg-server-for-tests)))
+     (list pkg-config
+           ;; That is required for testing.
+           xorg-server-for-tests))
     (inputs
      `(("imlib2" ,imlib2)
        ("glib" ,glib)
@@ -844,8 +913,7 @@ with tiling window managers.  Features include:
              ;; There must be a running X server and make install doesn't start one.
              ;; Therefore we must do it.
              (system "Xvfb :1 &")
-             (setenv "DISPLAY" ":1")
-             #t)))
+             (setenv "DISPLAY" ":1"))))
        #:tests? #f                      ; there is no check target
        #:make-flags
        (list
@@ -860,6 +928,49 @@ rotate left/right, jump/forward/backward images, filename filter and use it
 to set X desktop background.")
     (license license:gpl2)))
 
+(define-public pqiv
+  (package
+    (name "pqiv")
+    (version "2.12")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/phillipberndt/pqiv")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "18nvrqmlifh4m8nfs0d19sb9d1l3a95xc89qxqdr881jcxdsgflw"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list ffmpeg
+           gtk+
+           imagemagick
+           libarchive
+           libspectre
+           libwebp
+           poppler))
+    (arguments
+     `(#:tests? #f                      ;no tests
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))           ;no configure script
+       #:make-flags
+       (list
+        (string-append "PREFIX=" (assoc-ref %outputs "out"))
+        (string-append "CC=" ,(cc-for-target))
+        (string-append "PKG_CONFIG=" ,(pkg-config-for-target)))))
+    (home-page "https://www.pberndt.com/Programme/Linux/pqiv")
+    (synopsis "Powerful image viewer with minimal UI")
+    (description
+     "pqiv is a GTK-3 based command-line image viewer with a minimal UI.
+It is highly customizable, can be fully controlled from scripts, and has
+support for various file formats including PDF, Postscript, video files and
+archives.")
+    (license license:gpl3+)))
+
 (define-public nomacs
   (package
     (name "nomacs")
@@ -904,7 +1015,7 @@ to set X desktop background.")
        ("libtiff" ,libtiff)
        ("opencv" ,opencv)
        ("python" ,python-wrapper)
-       ("quazip" ,quazip)
+       ("quazip" ,quazip-0)
        ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (native-inputs
@@ -950,10 +1061,9 @@ synchronization of multiple instances.")
                (install-file "src/xzgv" bin))))) ; just install the executable
        #:tests? #f))                             ; no rule for target 'test'
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("gtk+" ,gtk+-2)
-       ("libexif" ,libexif)))
+     (list gtk+-2 libexif))
     (home-page "https://sourceforge.net/projects/xzgv/")
     (synopsis "Picture viewer for X with a thumbnail-based selector")
     (description
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 2dd64d7c4c..a4cec470cb 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -11,7 +11,7 @@
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2016, 2017, 2020 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016, 2017, 2020, 2021 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2017,2019,2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
@@ -31,6 +31,7 @@
 ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
+;;; Copyright © 2021 Alexandr Vityazev <avityazev@posteo.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -62,7 +63,6 @@
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
-  #:use-module (gnu packages gcc)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gimp)
   #:use-module (gnu packages gl)
@@ -91,6 +91,7 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages fonts)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -160,7 +161,7 @@ code is Valgrind-clean and unit tested.")
     `(#:configure-flags '("--disable-static")))
 
    ;; libpng.la says "-lz", so propagate it.
-   (propagated-inputs `(("zlib" ,zlib)))
+   (propagated-inputs (list zlib))
 
    (synopsis "Library for handling PNG files")
    (description
@@ -224,10 +225,10 @@ library.  It supports almost all PNG features and is extensible.")
                    (base32
                     "1dh0250mw9b2hx7cdmnb2blk7ddl49n6vx8zz7jdmiwxy38v4fw2"))))))
     (native-inputs
-     `(("libtool" ,libtool)))
+     (list libtool))
     ;; libpng.la says "-lz", so propagate it.
     (propagated-inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (synopsis "APNG patch for libpng")
     (description
      "APNG (Animated Portable Network Graphics) is an unofficial
@@ -282,8 +283,7 @@ APNG patch provides APNG support to libpng.")
                (string-append (assoc-ref outputs "out") "/")))
             #t)))))
    (inputs
-    `(("libpng" ,libpng)
-      ("zlib" , zlib)))
+    (list libpng zlib))
    (home-page "https://pmt.sourceforge.io/pngcrush")
    (synopsis "Utility to compress PNG files")
    (description "Pngcrush optimizes @acronym{PNG, Portable Network Graphics}
@@ -338,7 +338,7 @@ images.  It can further losslessly compress them by as much as 40%.")
                  (install-file "pnglite.h" include)
                  (install-file "README.md" doc)
                  #t))))))
-      (inputs `(("zlib" ,zlib)))
+      (inputs (list zlib))
       (home-page "https://github.com/dankar/pnglite")
       (synopsis "Pretty small png library")
       (description "A pretty small png library.
@@ -388,12 +388,9 @@ and other PNG optimizers.")
        #:configure-flags
        '("--with-openmp" "--with-lcms2")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libpng" ,libpng)
-       ("zlib" , zlib)
-       ("lcms" ,lcms)
-       ("libimagequant" ,libimagequant)))
+     (list libpng zlib lcms libimagequant))
     (home-page "https://pngquant.org/")
     (synopsis "Utility and library for lossy compressing PNG images")
     (description "pngquant is a PNG compressor that significantly reduces file
@@ -564,8 +561,7 @@ maximum quality factor.")
                 "1hjm8lwap7bjyyxsyi94fh5817xzqhk4kb5y0b7mb6675xw10prk"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libpng" ,libpng)
-       ("jasper" ,jasper)))
+     (list libpng jasper))
     (arguments
      `(#:tests? #t)) ; No tests.
     (home-page "http://icns.sourceforge.net/")
@@ -631,11 +627,11 @@ collection of tools for doing simple manipulations of TIFF images.")
         (base32 "12ddln72z5l3icz0i9rpsfkg5xik8fcwcn8lb0cp3jigjxi8gvkg"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gnuplot" ,gnuplot)             ;needed for test suite
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list gnuplot ;needed for test suite
+           autoconf
+           automake
+           libtool
+           pkg-config))
     (inputs
      `(("giflib" ,giflib)
        ("libjpeg" ,libjpeg-turbo)
@@ -859,12 +855,9 @@ test suite, including conformance tests (following Rec. ITU-T T.803 | ISO/IEC
                (("subsampling.*") "")
                (("zoo.*") "")))))))
     (native-inputs
-     `(("openjpeg-data" ,openjpeg-data))) ; Files for test-suite
+     (list openjpeg-data)) ; Files for test-suite
     (inputs
-     `(("lcms" ,lcms)
-       ("libpng" ,libpng)
-       ("libtiff" ,libtiff)
-       ("zlib" ,zlib)))
+     (list lcms libpng libtiff zlib))
     (synopsis "OPENJPEG Library and Applications")
     (description "OpenJPEG is an implementation of JPEG 2000 codec written in C
 language.  It has been developed in order to promote the use of JPEG 2000, a
@@ -979,7 +972,7 @@ compose, and analyze GIF images.")
                    (("^EXECINPUT=.*")
                     (format #f "EXECINPUT=~a~%" execinput)))
                  (invoke "sh" "testit.sh"))))))))
-    (native-inputs `(("drm-tools" ,drm-tools))) ;for tests
+    (native-inputs (list drm-tools)) ;for tests
     (home-page "http://libuemf.sourceforge.net/")
     (synopsis "Library for working with WFM, EMF and EMF+ images")
     (description "The libUEMF library is a portable C99 implementation for
@@ -1000,7 +993,7 @@ Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files.")
                (base32
                 "0cnksimmmjngdrys302ik1385sg1sj4i0gxivzldhgwd46n7x2kh"))))
     (build-system gnu-build-system)
-    (inputs `(("perl" ,perl)))          ;package ships some perl tools
+    (inputs (list perl))          ;package ships some perl tools
     (home-page "http://giflib.sourceforge.net/")
     (synopsis "GIF decompression library")
     (description
@@ -1072,8 +1065,7 @@ more modular, simple, and flexible.")
                 "1b4bmbmj52glq0s898lppkpzxlprq9aav49r06j2wx4dv3212rhp"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("imlib2" ,imlib2)))
+     (list libx11 imlib2))
     (home-page
      ;; This vanished page is universally accepted as giblib's home despite not
      ;; mentioning the package once.
@@ -1157,8 +1149,7 @@ supplies a generic doubly-linked list and some string functions.")
                            "-I" (assoc-ref %build-inputs "libjxr") "/include/jxrlib"))
       #:tests? #f)) ; no check target
    (native-inputs
-    `(("pkg-config" ,pkg-config)
-      ("unzip" ,unzip)))
+    (list pkg-config unzip))
    (inputs
     `(("libjpeg" ,libjpeg-turbo)
       ("libjxr" ,libjxr)
@@ -1166,7 +1157,7 @@ supplies a generic doubly-linked list and some string functions.")
       ("libraw" ,libraw)
       ("libtiff" ,libtiff)
       ("libwebp" ,libwebp)
-      ("openexr" ,openexr)
+      ("openexr" ,openexr-2)
       ("openjpeg" ,openjpeg)
       ("zlib" ,zlib)))
    (synopsis "Library for handling popular graphics image formats")
@@ -1207,9 +1198,9 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.")
         ("libjpeg" ,libjpeg-turbo)
         ("libpng" ,libpng)
         ("libtiff" ,libtiff)
-        ("openexr" ,openexr)
+        ("openexr" ,openexr-2)
         ("python" ,python-wrapper)
-        ("python-numpy" ,python-numpy)
+        ;("python-numpy" ,python-numpy)
         ("zlib" ,zlib)))
      (native-inputs
       `(("doxygen" ,doxygen)
@@ -1236,6 +1227,8 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.")
                                "/lib/python"
                                ,(version-major+minor (package-version python))
                                "/site-packages")
+                ;; Vigranumpy isn't compatible with numpy >= 1.20.
+                "-DWITH_VIGRANUMPY=0"
                 ;; OpenEXR is not enabled by default.
                 "-DWITH_OPENEXR=1"
                 ;; Fix rounding error on 32-bit machines
@@ -1277,12 +1270,9 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.")
       (arguments
        `(#:tests? #f))                  ; No test target.
       (native-inputs
-       `(("doxygen" ,doxygen)))
+       (list doxygen))
       (inputs
-       `(("fftw" ,fftw)
-         ("fftwf" ,fftwf)
-         ("hdf5" ,hdf5)
-         ("vigra" ,vigra)))
+       (list fftw fftwf hdf5 vigra))
       (synopsis "C interface to the VIGRA computer vision library")
       (description
        "This package provides a C interface to the VIGRA C++ computer vision
@@ -1313,9 +1303,7 @@ language bindings to VIGRA.")
        ("libpng" ,libpng)
        ("libtiff" ,libtiff)))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (arguments
      '(#:configure-flags '("--enable-libwebpmux"
                            "--enable-libwebpdemux"
@@ -1360,24 +1348,29 @@ channels.")
 (define-public exiv2
   (package
     (name "exiv2")
-    (version "0.27.4")
+    (version "0.27.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.exiv2.org/builds/exiv2-" version
                            "-Source.tar.gz"))
        (sha256
-        (base32 "0klhxkxvkzzzcqpzv8jb56pykq0gyhb6rk9vc2kzjahngjx6sdl4"))))
+        (base32 "1qm6bvj28l42km009nc60gffn1qhngc0m2wjlhf90si3mcc8d99m"))))
     (build-system cmake-build-system)
     (arguments
      '(#:test-target "tests"
-       #:configure-flags (list "-DEXIV2_BUILD_UNIT_TESTS=ON")))
+       #:configure-flags (list "-DEXIV2_BUILD_UNIT_TESTS=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'delete-static-libraries
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib")))
+               (for-each delete-file (find-files lib "\\.a$"))))))))
     (propagated-inputs
-     `(("expat" ,expat)
-       ("zlib" ,zlib)))
+     (list expat zlib))
     (native-inputs
-     `(("googletest" ,googletest)
-       ("python" ,python)))
+     (list googletest python))
     (home-page "https://www.exiv2.org/")
     (synopsis "Library and command-line utility to manage image metadata")
     (description
@@ -1412,14 +1405,14 @@ and XMP metadata of images in various formats.")
          (add-before 'configure 'change-directory
            (lambda _ (chdir "DevIL") #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("lcms" ,lcms)
        ("libjpeg" ,libjpeg-turbo)
        ("libmng" ,libmng)
        ("libpng" ,libpng)
        ("libtiff" ,libtiff)
-       ("openexr" ,openexr)
+       ("openexr" ,openexr-2)
        ("zlib" ,zlib)))
     (synopsis "Library for manipulating many image formats")
     (description "Developer's Image Library (DevIL) is a library to develop
@@ -1431,7 +1424,7 @@ convert, manipulate, filter and display a wide variety of image formats.")
 (define-public jasper
   (package
     (name "jasper")
-    (version "2.0.32")
+    (version "2.0.33")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1440,10 +1433,10 @@ convert, manipulate, filter and display a wide variety of image formats.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0hhggh2jxp1wn7nwzvbx2z1vi1ih8wmz4av17bljyn0c3mxjs22k"))))
+                "0p3fj89gkhd2ys5ci75cwb6p7rvb2pf52jd8c9d4g76qp846njnx"))))
     (build-system cmake-build-system)
     (inputs
-     `(("libjpeg" ,libjpeg-turbo)))
+     (list libjpeg-turbo))
     (synopsis "JPEG-2000 library")
     (description "The JasPer Project is an initiative to provide a reference
 implementation of the codec specified in the JPEG-2000 Part-1 standard (i.e.,
@@ -1454,7 +1447,7 @@ ISO/IEC 15444-1).")
 (define-public zimg
   (package
     (name "zimg")
-    (version "2.9.3")
+    (version "3.0.3")
     (source
       (origin
         (method git-fetch)
@@ -1463,12 +1456,10 @@ ISO/IEC 15444-1).")
               (commit (string-append "release-" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "1dqyrq3p8bkgvj4ci50ac342hjnhyz6xxvhiwp7wpi3v3nbj7s02"))))
+         (base32 "0pwgf1mybpa3fs13p6jryzm32vfldyql9biwaypqdcimlnlmyk20"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (synopsis "Scaling, colorspace conversion, and dithering library")
     (description "Zimg implements the commonly required image processing basics
 of scaling, colorspace conversion, and depth conversion.  A simple API enables
@@ -1493,7 +1484,7 @@ the programmer.")
        (sha256
         (base32 "0yys55f9i9g3wjjg0j2m0p0k21zwnid8520a8lrr30khm4k5gibp"))))
     (build-system cmake-build-system)
-    (inputs `(("freeimage" ,freeimage)))
+    (inputs (list freeimage))
     (arguments
      '(#:phases (modify-phases %standard-phases
                   (add-after 'unpack 'fix-tests
@@ -1572,8 +1563,7 @@ changed, making the embedding resistant against first-order statistical tests.")
             #t))))
     (build-system gnu-build-system)
     (inputs
-     `(("libpng" ,libpng)
-       ("zlib" ,zlib)))
+     (list libpng zlib))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -1613,7 +1603,7 @@ PNG, and performs PNG integrity checks and corrections.")
              (rename-file "imgp.py" "imgp")
              #t)))))
     (inputs
-     `(("python-pillow" ,python-pillow)))
+     (list python-pillow))
     (home-page "https://github.com/jarun/imgp")
     (synopsis "High-performance CLI batch image resizer & rotator")
     (description
@@ -1672,7 +1662,7 @@ is hereby granted."))))
                 "0pbv6pc97kbj7ib31qcwi7lnmm9xg5y3b11aasmkhfjvf7rgdy0n"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("nasm" ,nasm)))
+     (list nasm))
     (arguments
      `(#:configure-flags '("-DCMAKE_INSTALL_LIBDIR:PATH=lib"
                            "-DENABLE_STATIC=0"
@@ -1757,7 +1747,7 @@ and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.).")
              #t))
          (delete 'configure))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (synopsis "Library for reading and writing files in the nifti-1 format")
     (description "Niftilib is a set of i/o libraries for reading and writing
 files in the nifti-1 data format - a binary file format for storing
@@ -1845,10 +1835,9 @@ parsing, viewing, modifying, and saving this metadata.")
          "1z77igs60lz106vsf6wsayxjafxm3llf2lm4dpvsqyyrxybfq191"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("qttools" ,qttools)))
+     (list qttools))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+     (list qtbase-5 qtsvg))
     (arguments
      `(#:tests? #f))                    ;no tests
     (home-page "https://github.com/flameshot-org/flameshot")
@@ -1868,7 +1857,7 @@ Features:
 (define-public swappy
   (package
     (name "swappy")
-    (version "1.2.1")
+    (version "1.4.0")
     (source
      (origin
        (method git-fetch)
@@ -1877,15 +1866,16 @@ Features:
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "14ac2jmnak7avcz0jhqjm30vk7pv3gq5aq5rdyh84k8c613kkicf"))))
+        (base32 "1s2lp3bz30svqdg6467jvncim0qgl0q1b1nqxnnci6kljbp5g0xh"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("scdoc" ,scdoc)
-       ("glib" ,glib "bin"))) ; for 'glib-compile-resources'
+     (list pkg-config scdoc
+           `(,glib "bin"))) ; for 'glib-compile-resources'
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libnotify" ,libnotify)))
+     (list gtk+ libnotify))
+    (propagated-inputs
+     ;; Needed to properly render the icons.
+     (list font-awesome))
     (home-page "https://github.com/jtheoof/swappy")
     (synopsis "Grab and edit on the fly snapshots of a Wayland compositor")
     (description
@@ -1920,8 +1910,8 @@ stdout.")
               (("/bin/rm")
                (which "rm")))
             #t)))))
-   (native-inputs `(("perl" ,perl)))    ; only for tests
-   (inputs `(("libx11" ,libx11)))
+   (native-inputs (list perl))    ; only for tests
+   (inputs (list libx11))
    (home-page "https://www.lcdf.org/gifsicle/")
    (synopsis "Edit GIF images and animations")
    (description "Gifsicle is a command-line GIF image manipulation tool that:
@@ -1956,9 +1946,7 @@ identical visual appearance.")
           "076frk3pa16s4r1b10zgy81vdlz0385zh3ykbnkaij25jn5aqc09"))))
     (build-system gnu-build-system)
     (inputs
-     `(("curl" ,curl)
-       ("libjpeg" ,libjpeg-turbo)
-       ("ncurses" ,ncurses)))
+     (list curl libjpeg-turbo ncurses))
     (home-page "https://csl.name/jp2a/")
     (synopsis "Convert JPEG images to ASCII")
     (description
@@ -1979,12 +1967,8 @@ identical visual appearance.")
      (sha256
       (base32 "1l4gwvvc0zvg5b6f6w92xjhmwj7cg9hlgrf43lc7ygaz8dh6cmzg"))))
    (build-system meson-build-system)
-   (native-inputs `(("pkg-config" ,pkg-config)
-                    ("scdoc" ,scdoc)))
-   (inputs `(("cairo" ,cairo)
-             ("libjpeg-turbo" ,libjpeg-turbo)
-             ("wayland" ,wayland)
-             ("wayland-protocols" ,wayland-protocols)))
+   (native-inputs (list pkg-config scdoc))
+   (inputs (list cairo libjpeg-turbo wayland wayland-protocols))
    (home-page "https://github.com/emersion/grim")
    (synopsis "Create screenshots from a Wayland compositor")
    (description "grim can create screenshots from a Wayland compositor.")
@@ -2006,13 +1990,9 @@ identical visual appearance.")
       (base32 "00dx6ds1227qnxqrw58k0am78q8fa49rgp1zingrkjcbpbi7g475"))))
    (build-system meson-build-system)
    (native-inputs
-    `(("pkg-config" ,pkg-config)
-      ("scdoc" ,scdoc)))
+    (list pkg-config scdoc))
    (inputs
-    `(("cairo" ,cairo)
-      ("libxkbcommon" ,libxkbcommon)
-      ("wayland" ,wayland)
-      ("wayland-protocols" ,wayland-protocols)))
+    (list cairo libxkbcommon wayland wayland-protocols))
    (home-page "https://github.com/emersion/slurp")
    (synopsis "Select a region in a Wayland compositor")
    (description "Slurp can select a region in a Wayland compositor and print it
@@ -2043,9 +2023,8 @@ to the standard output.  It works well together with grim.")
        (list (string-append "--with-rgbtxt="
                             (assoc-ref %build-inputs "xorg-rgb")
                             "/share/X11/rgb.txt"))))
-    (inputs `(("xorg-rgb" ,xorg-rgb)
-              ("libpng" ,libpng)))
-    (native-inputs `(("pngsuite" ,pngsuite)))
+    (inputs (list xorg-rgb libpng))
+    (native-inputs (list pngsuite))
     (home-page "http://sng.sourceforge.net")
     (synopsis "Markup language for representing PNG contents")
     (description "SNG (Scriptable Network Graphics) is a minilanguage designed
@@ -2073,9 +2052,7 @@ losslessly translates between SNG and PNG.")
         (base32 "0jy2iigarskwfhskyladbb6l92x1fb3i3vz4bvcks0za4w5hfxk5"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("cmake" ,cmake)
-       ("doctest" ,doctest)
-       ("gcc" ,gcc-8)))
+     (list cmake doctest))
     (home-page "https://github.com/Nheko-Reborn/blurhash")
     (synopsis "C++ blurhash encoder/decoder")
     (description "Simple encoder and decoder for blurhashes.  Contains a
@@ -2150,10 +2127,9 @@ wrapper with a more convenient interface on top.")
         (base32 "1q66cksms4l62y0wizb8vfavhmf7kyfgcfkynil3n99s0hny1aqp"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libpng" ,libpng)
-       ("perl" ,perl)))
+     (list libpng perl))
     (propagated-inputs
-     `(("perl-libwww" ,perl-libwww)))
+     (list perl-libwww))
     (home-page "https://www.nongnu.org/icoutils/")
     (synopsis "Extract and convert bitmaps from Windows icon and cursor files")
     (description "Icoutils are a set of program for extracting and converting
@@ -2186,7 +2162,11 @@ This package can be used to create @code{favicon.ico} files for web sites.")
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags '("-DAVIF_CODEC_AOM=ON" "-DAVIF_CODEC_DAV1D=ON"
-                           "-DAVIF_CODEC_RAV1E=ON"
+                           ,@(if (string-prefix? "x86_64"
+                                                 (or (%current-target-system)
+                                                     (%current-system)))
+                                 '("-DAVIF_CODEC_RAV1E=ON")
+                                 '())
                            "-DAVIF_BUILD_TESTS=ON")
        #:phases
        (modify-phases %standard-phases
@@ -2197,12 +2177,16 @@ This package can be used to create @code{favicon.ico} files for web sites.")
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (doc (string-append out "/share/doc/libavif-" ,version)))
-               (install-file "../source/README.md" doc)
-               #t))))))
+               (install-file "../source/README.md" doc)))))))
     (inputs
      `(("dav1d" ,dav1d)
        ("libaom" ,libaom)
-       ("rav1e" ,rav1e)))
+       ;; XXX: rav1e depends on rust, which currently only works on x86_64.
+       ;; See also the related configure flag when changing this.
+       ,@(if (string-prefix? "x86_64" (or (%current-target-system)
+                                          (%current-system)))
+             `(("rav1e" ,rav1e))
+             '())))
     (synopsis "Encode and decode AVIF files")
     (description "Libavif is a C implementation of @acronym{AVIF, the AV1 Image
 File Format}.  It can encode and decode all YUV formats and bit depths supported
@@ -2228,20 +2212,14 @@ by AOM, including with alpha.")
     (arguments
      `(#:tests? #f)) ;no test target although there is a tests folder
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
      `(("gdk-pixbuf" ,gdk-pixbuf) ;optional
        ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)))
      ;; Propagated to satisfy 'libheif.pc'.
      (propagated-inputs
-      `(("dav1d" ,dav1d)
-        ("libaom" ,libaom)
-        ("libde265" ,libde265)
-        ("x265" ,x265)))
+      (list dav1d libaom libde265 x265))
     (home-page "https://github.com/strukturag/libheif")
     (synopsis "HEIF and AVIF file format decoder and encoder")
     (description
@@ -2339,16 +2317,16 @@ GIF, TIFF, WEBP, BMP, PNG, XPM formats.")
        ("swig" ,swig)
        ("gettext" ,gettext-minimal)))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
-       ("hicolor-icon-theme" ,hicolor-icon-theme)
-       ("libmypaint" ,libmypaint)
-       ("mypaint-brushes" ,mypaint-brushes)
-       ("json-c" ,json-c)
-       ("lcms" ,lcms)
-       ("python-numpy" ,python-numpy)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)))
+     (list gtk+
+           librsvg
+           hicolor-icon-theme
+           libmypaint
+           mypaint-brushes
+           json-c
+           lcms
+           python-numpy
+           python-pycairo
+           python-pygobject))
     (home-page "http://mypaint.org/")
     (synopsis "Fast and simple painting app for artists")
     (description
@@ -2359,7 +2337,7 @@ Wacom-style graphics tablets.")
 (define-public phockup
   (package
     (name "phockup")
-    (version "1.5.9")
+    (version "1.7.1")
     (source
      (origin
        (method git-fetch)
@@ -2369,7 +2347,7 @@ Wacom-style graphics tablets.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "13ajj0xch7yfqaaxbw0awxs0fz17n1rxir4gqh2wcgxjysqk1j2y"))))
+         "0nqd89g4ppwc96gxyh9npain7ipnzj66p6n3irsvhrpi4k54h388"))))
     (build-system copy-build-system)
     (arguments
      `(#:install-plan '(("src" "share/phockup/")
@@ -2389,14 +2367,18 @@ Wacom-style graphics tablets.")
              (let ((out (assoc-ref outputs "out")))
                (mkdir (string-append out "/bin"))
                (symlink (string-append out "/share/phockup/phockup.py")
-                        (string-append out "/bin/phockup")))
-             #t)))))
+                        (string-append out "/bin/phockup")))))
+         (add-after 'install-bin 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/phockup")
+                 `("GUIX_PYTHONPATH" prefix
+                   ,(search-path-as-string->list
+                     (getenv "GUIX_PYTHONPATH"))))))))))
     (inputs
-     `(("perl-image-exiftool" ,perl-image-exiftool)
-       ("python" ,python)))
+     (list perl-image-exiftool python python-tqdm))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-mock" ,python-pytest-mock)))
+     (list python-pytest python-pytest-mock))
     (home-page "https://github.com/ivandokov/phockup")
     (synopsis "Organize photos and videos in folders")
     (description "Phockup is a media sorting tool that uses creation date and
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index f7cd961c05..06ed80cbac 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -127,7 +127,7 @@
                ("freetype" ,freetype)
                ("bzip2" ,bzip2)
                ("xz" ,xz)))
-     (native-inputs `(("pkg-config" ,pkg-config)))
+     (native-inputs (list pkg-config))
      (outputs '("out"
                 "doc"))                 ; 26 MiB of HTML documentation
      (home-page "https://www.imagemagick.org/")
@@ -175,8 +175,8 @@ text, lines, polygons, ellipses and Bézier curves.")
         (base32
          "0n9afy1z5bhf9phrbahnkwhgcmijn8jggpbzwrivw1zhliliiy68"))))
     (build-system perl-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("imagemagick" ,imagemagick)))
+    (native-inputs (list pkg-config))
+    (inputs (list imagemagick))
     (arguments
      `(#:tests? #f ;;Failed 2/23 test programs. 2/353 subtests failed.
        #:phases
@@ -253,7 +253,7 @@ script.")
        ("xz" ,xz)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (outputs '("out"                  ; 13 MiB
                "doc"))                ; ~7 MiB
     (home-page "http://www.graphicsmagick.org")
diff --git a/gnu/packages/inklingreader.scm b/gnu/packages/inklingreader.scm
index 6cdc4b3330..88c1c2144c 100644
--- a/gnu/packages/inklingreader.scm
+++ b/gnu/packages/inklingreader.scm
@@ -43,13 +43,9 @@
                 "0ikg95mgwfqh0bq4dzvkfmdiycacqvv27g91hl6adwk5y3gzl96g"))))
     (build-system gnu-build-system)
     (inputs
-     `(("glib" ,glib)
-       ("cairo" ,cairo)
-       ("gtk+" ,gtk+)
-       ("librsvg" ,librsvg)
-       ("libusb" ,libusb)))
+     (list glib cairo gtk+ librsvg libusb))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.gnu.org/software/inklingreader/")
     (synopsis "Wacom Inkling sketch format conversion and manipulation")
     (description
diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
index 1e19ea592e..c87f148329 100644
--- a/gnu/packages/inkscape.scm
+++ b/gnu/packages/inkscape.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Boris A. Dekshteyn <boris.dekshteyn@gmail.com>
 ;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
 ;;;
@@ -55,82 +55,15 @@
 (define-public inkscape
   (package
     (name "inkscape")
-    (version "0.92.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://media.inkscape.org/dl/"
-                                  "resources/file/"
-                                  "inkscape-" version ".tar.bz2"))
-              (patches (search-patches "inkscape-poppler-0.76.patch"))
-              (sha256
-               (base32
-                "0pjinhjibfsz1aywdpgpj3k23xrsszpj4a1ya5562dkv2yl2vv2p"))))
-    (build-system cmake-build-system)
-    (inputs
-     `(("aspell" ,aspell)
-       ("gtkmm" ,gtkmm-2)
-       ("gtk" ,gtk+-2)
-       ("gsl" ,gsl)
-       ("poppler" ,poppler)
-       ("libpng" ,libpng)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("libgc" ,libgc)
-       ("freetype" ,freetype)
-       ("popt" ,popt)
-       ("potrace" ,potrace)
-       ("python" ,python-wrapper)
-       ("lcms" ,lcms)
-       ("boost" ,boost)))
-    (native-inputs
-     `(("intltool" ,intltool)
-       ("glib" ,glib "bin")
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
-    ;; FIXME: tests require gmock
-    (arguments
-     `(#:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-icon-cache-generator
-           (lambda _
-             (substitute* "share/icons/application/CMakeLists.txt"
-              (("gtk-update-icon-cache") "true"))
-             #t))
-         (add-after 'unpack 'adjust-for-new-poppler
-           (lambda _
-             (substitute* (find-files "src/extension/internal/pdfinput")
-               ;; Needed for Poppler 0.82.
-               (("Unicode \\*u") "Unicode const *u")
-               ;; Needed for Poppler 0.83.
-               (("\\(GfxPath") "(const GfxPath")
-               (("GfxSubpath") "const GfxSubpath")
-               (("new GlobalParams\\(\\)")
-                "std::unique_ptr<GlobalParams>(new GlobalParams())")
-               (("new GlobalParams\\(poppler_datadir\\)")
-                "std::unique_ptr<GlobalParams>(new GlobalParams(poppler_datadir))"))
-             #t)))))
-    (home-page "https://inkscape.org/")
-    (synopsis "Vector graphics editor")
-    (description "Inkscape is a vector graphics editor.  What sets Inkscape
-apart is its use of Scalable Vector Graphics (SVG), an XML-based W3C standard,
-as the native format.")
-    (license license:gpl2+)))
-
-(define-public inkscape-1.1
-  (package
-    (name "inkscape")
-    (version "1.1")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://media.inkscape.org/dl/"
                            "resources/file/"
                            "inkscape-" version ".tar.xz"))
-       (patches (search-patches "inkscape-1.1-fix-build-witch-gcc7.5.patch"))
        (sha256
-        (base32
-         "1rlm2wqg8bgdxkdvnadh49wfp0mrbrk7d8n4vdcjyw6z7z7firki"))
+        (base32 "1bvqg5xfs3m6r7qfdhmgzwhd1hx8wvg3nhvhmalwzcdm6ffhpjmf"))
        (modules '((guix build utils)
                   (ice-9 format)))
        (snippet
@@ -211,12 +144,10 @@ endif()~%~%"
            ;; Lift the requirement on the double-conversion library, as
            ;; it is only needed by lib2geom, which is now unbundled.
            (substitute* "CMakeScripts/DefineDependsandFlags.cmake"
-             ((".*find_package\\(DoubleConversion.*") ""))
-           #t))))
+             ((".*find_package\\(DoubleConversion.*") ""))))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #t
-       #:test-target "check"            ;otherwise some test binaries are missing
+     `(#:test-target "check"            ;otherwise some test binaries are missing
        #:imported-modules (,@%cmake-build-system-modules
                            (guix build glib-or-gtk-build-system))
        #:modules ((guix build cmake-build-system)
@@ -224,11 +155,13 @@ endif()~%~%"
                   (guix build utils))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
+           (assoc-ref glib-or-gtk:%standard-phases
+                      'generate-gdk-pixbuf-loaders-cache-file))
          (add-after 'unpack 'patch-icon-cache-generator
            (lambda _
              (substitute* "share/icons/application/CMakeLists.txt"
-               (("gtk-update-icon-cache") "true"))
-             #t))
+               (("gtk-update-icon-cache") "true"))))
          (add-after 'unpack 'disable-latex-export-tests
            ;; FIXME: For some reason the test.pdf_tex file generated by the
            ;; "--export-latex" lacks "some text" in its content when run in
@@ -236,14 +169,11 @@ endif()~%~%"
            (lambda _
              (substitute* "testfiles/cli_tests/CMakeLists.txt"
                (("add_cli_test\\(export-latex")
-                "message(TEST_DISABLED: export-latex"))
-             #t))
+                "message(TEST_DISABLED: export-latex"))))
          (add-after 'unpack 'set-home
            ;; Mute Inkscape warnings during tests.
            (lambda _
-             (setenv "HOME" (getcwd))
-             (format #t "ARGS is set to: ~a" (getenv "ARGS"))
-             #t))
+             (setenv "HOME" (getcwd))))
          ;; Move the check phase after the install phase, as when run in the
          ;; tests, Inkscape relies on files that are not yet installed, such
          ;; as the "share/inkscape/ui/units.xml" file.
@@ -259,13 +189,13 @@ endif()~%~%"
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (wrap-program (string-append out "/bin/inkscape")
-                 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))))
-             #t)))))
+                 `("GUIX_PYTHONPATH" ":" prefix
+                   (,(getenv "GUIX_PYTHONPATH"))))))))))
     (inputs
      `(("aspell" ,aspell)
        ("autotrace" ,autotrace)
        ("gdl" ,gdl-minimal)
-       ("gtkmm" ,gtkmm)
+       ("gtkmm" ,gtkmm-3)
        ("gtk" ,gtk+)
        ("gtkspell3" ,gtkspell3)
        ("gsl" ,gsl)
@@ -276,7 +206,7 @@ endif()~%~%"
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
        ("libgc" ,libgc)
-       ("libsoup" ,libsoup-minimal)
+       ("libsoup" ,libsoup-minimal-2)
        ("libcdr" ,libcdr)
        ("libvisio" ,libvisio)
        ("libwpd" ,libwpd)
@@ -292,12 +222,12 @@ endif()~%~%"
        ("python-numpy" ,python-numpy)
        ("python-lxml" ,python-lxml)))
     (native-inputs
-     `(("imagemagick" ,imagemagick)     ;for tests
-       ("intltool" ,intltool)
-       ("glib" ,glib "bin")
-       ("googletest" ,googletest)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list imagemagick ;for tests
+           intltool
+           `(,glib "bin")
+           googletest
+           perl
+           pkg-config))
     (home-page "https://inkscape.org/")
     (synopsis "Vector graphics editor")
     (description "Inkscape is a vector graphics editor.  What sets Inkscape
diff --git a/gnu/packages/installers.scm b/gnu/packages/installers.scm
index c768a367aa..04357b9719 100644
--- a/gnu/packages/installers.scm
+++ b/gnu/packages/installers.scm
@@ -48,7 +48,7 @@
       (native-inputs `(("xgcc" ,xgcc)
                        ("xbinutils" ,xbinutils)
                        ("mingw-w64" ,xlibc)))
-      (inputs `(("zlib" ,zlib)))
+      (inputs (list zlib))
       (arguments
        `(#:scons ,scons-python2
          #:modules ((srfi srfi-1)
diff --git a/gnu/packages/instrumentation.scm b/gnu/packages/instrumentation.scm
new file mode 100644
index 0000000000..564547324c
--- /dev/null
+++ b/gnu/packages/instrumentation.scm
@@ -0,0 +1,234 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Olivier Dion <olivier.dion@polymtl.ca>
+;;;
+;;; 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 instrumentation)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages datastructures)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages elf)
+  #:use-module (gnu packages flex)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages llvm)
+  #:use-module (gnu packages man)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages popt)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages sphinx)
+  #:use-module (gnu packages swig)
+  #:use-module (gnu packages tbb)
+  #:use-module (gnu packages xml)
+  #:use-module (guix build-system cmake)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages))
+
+(define-public babeltrace
+  (package
+    (name "babeltrace")
+    (version "2.0.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.efficios.com/files/babeltrace/babeltrace2-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32 "1jlv925pr7hykc48mdvbmqm4ipy1r11xwzapa6fdpdfshmk12kvp"))))
+
+    (build-system gnu-build-system)
+
+    (arguments
+     `(;; FIXME - When Python's bindings are enabled, tests do not pass.
+       #:configure-flags '("--enable-debug-info"
+                           "--enable-man-pages"
+                           "--disable-python-bindings"
+                           "--disable-python-plugins")
+                         #:phases
+                         (modify-phases %standard-phases
+                           ;; These are recommended in the project's README for a development
+                           ;; build configuration.
+                           (add-before 'configure 'set-environment-variables
+                             (lambda _
+                               (setenv "BABELTRACE_DEV_MODE" "1")
+                               (setenv "BABELTRACE_MINIMAL_LOG_LEVEL" "TRACE"))))))
+    (inputs
+     (list glib))
+    ;; NOTE - elfutils is used for the LTTng debug information filter
+    ;; component class.  This can be moved to `native-inputs` if
+    ;; `--enable-debug-info` is replaced by `--disable-debug-info` in
+    ;; `#:configure-flags`.
+    (propagated-inputs
+     (list elfutils))
+    ;; NOTE - python-3 is set here for generating the bindings.  Users need to
+    ;; install python-3 in their profile in order to use these bindings.
+    (native-inputs
+     (list asciidoc
+           bison
+           flex
+           pkg-config
+           python-3
+           python-sphinx
+           swig
+           xmltoman))
+    (home-page "https://babeltrace.org/")
+    (synopsis "Trace manipulation toolkit")
+    (description "Babeltrace 2 is a framework for viewing, converting,
+transforming, and analyzing traces.  It is also the reference parser
+implementation of the Common Trace Format (CTF), produced by tools such as
+LTTng and barectf.  This package provides a library with a C API, Python 3
+bindings, and the command-line tool @command{babeltrace2}.")
+    (license license:expat)))
+
+(define-public dyninst
+  (package
+    (name "dyninst")
+    ;; Newer versions are not promoted on main home page.
+    ;; Upgrade to 12.0.1 if anyone require a newer version.
+    (version "10.2.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/dyninst/dyninst")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "1m04pg824rqx647wvk9xl33ri8i6mm0vmrz9924li25dxbr4zqd5"))))
+
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f
+       ;; STERILE_BUILD: Do not download/build third-party dependencies from
+       ;; source.
+       #:configure-flags
+       (list "-DSTERILE_BUILD=ON")
+       ;; NOTE: dyninst needs to search for shared libraries that are linked
+       ;; against the instrumented binary in order to rebuild the entire
+       ;; program.  For this purpose, one can use LD_LIBRARY_PATH or
+       ;; DYNISNT_REWRITER_PATHS environment variables to add paths for dyinst
+       ;; to search.  However, dyninst also tries to be smart by executing
+       ;; ldconfig, which is not portable.  If ldconfig is not available on
+       ;; the system, dyinst wrongly assumes that the shared libraries can not
+       ;; be found, even though it can.  This bad logic is still there with
+       ;; newer versions of dyinst.  Thus, this substitution makes the bad
+       ;; code path unreachable.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-bad-logic
+           (lambda _
+             (substitute* "dyninstAPI/src/linux.C"
+               (("if\\(\\!fgets\\(buffer, 512, ldconfig\\)\\)")
+                "fgets(buffer, 512, ldconfig); if (false)")))))))
+    (propagated-inputs
+     (list elfutils boost tbb-2020))
+    (home-page "https://dyninst.org/")
+    (synopsis "Dynamic instrumentation")
+    (description "Dyninst is a collection of libraries for instrumenting,
+analyzing and editing binaries.  It can attach to an existing program or
+create a new one out of an ELF file for analysis or modification.  It come
+with a handful of C++ libraries.")
+    (license license:lgpl2.1+)))
+
+(define-public lttng-ust
+  (package
+    (name "lttng-ust")
+    (version "2.13.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://lttng.org/files/lttng-ust/"
+                                  "lttng-ust-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0l0p6y2zrd9hgd015dhafjmpcj7waz762n6wf5ws1xlwcwrwkr2l"))))
+    (build-system gnu-build-system)
+    (inputs
+     (list liburcu numactl))
+    (native-inputs
+     (list python-3 pkg-config))
+    (home-page "https://lttng.org/")
+    (synopsis "LTTng userspace tracer libraries")
+    (description "The user space tracing library, liblttng-ust, is the LTTng
+user space tracer.  It receives commands from a session daemon, for example to
+enable and disable specific instrumentation points, and writes event records
+to ring buffers shared with a consumer daemon.")
+    (license license:lgpl2.1+)))
+
+(define-public lttng-tools
+  (package
+    (name "lttng-tools")
+    (version "2.13.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://lttng.org/files/lttng-tools/"
+                                  "lttng-tools-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1df8ag2a1yyjn6hz6wxgcz0p847cq91b8inf0zyhgz1im1yxzrng"))))
+    (build-system gnu-build-system)
+    (arguments
+     `( ;; FIXME - Currently there's a segmentation fault by swig when enabling
+       ;; Python's bindings.  Thus, bindings are disable here.  Replace
+       ;; `disable` by `enable` in #:configure-flags when this is fixed.
+       #:configure-flags '("--disable-python-bindings")
+       ;; FIXME - Tests are disabled for now because one test hangs
+       ;; indefinetely.  Also, parallel testing is not possible because of how
+       ;; the lttng-daemon handles sessions.  Thus, keep parallel testing
+       ;; disabled even after tests are enabled!
+       #:tests? #f
+       #:parallel-tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'set-environment-variables
+           (lambda _
+             (setenv "HOME" "/tmp")
+             (setenv "LTTNG_HOME" "/tmp")))
+         ;; We don't put (which "man") here because LTTng uses execlp.
+         (add-after 'unpack 'patch-default-man-path
+           (lambda _
+             (substitute* "src/common/defaults.h"
+               (("/usr/bin/man") "man")))))))
+    ;; NOTE - Users have to install python-3 in their profile to use the
+    ;; bindings.  We don't put it in the inputs, because the rest of the tools
+    ;; can work without it.
+    (inputs
+     (list liburcu popt numactl))
+    (propagated-inputs
+     (list kmod module-init-tools))
+    (native-inputs
+     (list pkg-config
+           perl
+           libpfm4
+           python-3
+           swig
+           procps
+           which
+           flex
+           bison
+           asciidoc
+           libxml2
+           lttng-ust))
+    (home-page "https://lttng.org/")
+    (synopsis "LTTng userspace tracer libraries")
+    (description "The lttng-tools project provides a session
+daemon @code{lttng-sessiond} that acts as a tracing registry, the @command{lttng} command
+line for tracing control, a @code{lttng-ctl} library for tracing control and a
+@code{lttng-relayd} for network streaming.")
+    (license (list  license:gpl2 license:lgpl2.1))))
diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm
index 57701991e3..f566b850aa 100644
--- a/gnu/packages/ipfs.scm
+++ b/gnu/packages/ipfs.scm
@@ -25,7 +25,9 @@
   #:use-module (guix git-download)
   #:use-module (guix download)
   #:use-module (guix build-system go)
-  #:use-module (gnu packages golang))
+  #:use-module (gnu packages golang)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages shells))
 
 (define-public go-github-com-ipfs-go-ipfs-cmdkit-files
   (let ((commit
@@ -78,26 +80,26 @@ that are shared between @command{go-ipfs/commands} and its rewrite
          ;; TODO: Tests fail, might need network access.
          #:tests? #f))
       (native-inputs
-       `(("go-github-com-ipfs-go-ipfs-cmdkit-files" ,go-github-com-ipfs-go-ipfs-cmdkit-files)
-         ("go-github-com-libp2p-go-libp2p-metrics" ,go-github-com-libp2p-go-libp2p-metrics)
-         ("go-github-com-libp2p-go-flow-metrics" ,go-github-com-libp2p-go-flow-metrics)
-         ("go-github-com-libp2p-go-libp2p-peer" ,go-github-com-libp2p-go-libp2p-peer)
-         ("go-github-com-libp2p-go-libp2p-protocol" ,go-github-com-libp2p-go-libp2p-protocol)
-         ("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
-         ("go-github-com-mitchellh-go-homedir" ,go-github-com-mitchellh-go-homedir)
-         ("go-github-com-multiformats-go-multiaddr" ,go-github-com-multiformats-go-multiaddr)
-         ("go-github-com-multiformats-go-multiaddr-net" ,go-github-com-multiformats-go-multiaddr-net)
-         ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
-         ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
-         ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
-         ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
-         ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
-         ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
-         ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
-         ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
-         ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
-         ("go-github-com-whyrusleeping-tar-utils" ,go-github-com-whyrusleeping-tar-utils)
-         ("go-github-com-cheekybits-is" ,go-github-com-cheekybits-is)))
+       (list go-github-com-ipfs-go-ipfs-cmdkit-files
+             go-github-com-libp2p-go-libp2p-metrics
+             go-github-com-libp2p-go-flow-metrics
+             go-github-com-libp2p-go-libp2p-peer
+             go-github-com-libp2p-go-libp2p-protocol
+             go-github-com-libp2p-go-libp2p-crypto
+             go-github-com-mitchellh-go-homedir
+             go-github-com-multiformats-go-multiaddr
+             go-github-com-multiformats-go-multiaddr-net
+             go-github-com-btcsuite-btcd-btcec
+             go-github-com-gogo-protobuf
+             go-github-com-minio-blake2b-simd
+             go-github-com-minio-sha256-simd
+             go-github-com-mr-tron-base58
+             go-github-com-multiformats-go-multihash
+             go-golang-org-x-crypto
+             go-github-com-spaolacci-murmur3
+             go-github-com-gxed-hashland-keccakpg
+             go-github-com-whyrusleeping-tar-utils
+             go-github-com-cheekybits-is))
       (home-page "https://github.com/ipfs/go-ipfs-api")
       (synopsis "Unofficial Go interface to IPFS's HTTP API")
       (description "An unofficial Go interface to IPFS's HTTP API")
@@ -120,32 +122,32 @@ that are shared between @command{go-ipfs/commands} and its rewrite
     (arguments
      '(#:import-path "github.com/whyrusleeping/gx"))
     (native-inputs
-     `(("go-github-com-blang-semver" ,go-github-com-blang-semver)
-       ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
-       ("go-github-com-ipfs-go-ipfs-api" ,go-github-com-ipfs-go-ipfs-api)
-       ("go-github-com-ipfs-go-ipfs-cmdkit-files" ,go-github-com-ipfs-go-ipfs-cmdkit-files)
-       ("go-github-com-libp2p-go-flow-metrics" ,go-github-com-libp2p-go-flow-metrics)
-       ("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
-       ("go-github-com-libp2p-go-libp2p-metrics" ,go-github-com-libp2p-go-libp2p-metrics)
-       ("go-github-com-libp2p-go-libp2p-peer" ,go-github-com-libp2p-go-libp2p-peer)
-       ("go-github-com-libp2p-go-libp2p-protocol" ,go-github-com-libp2p-go-libp2p-protocol)
-       ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
-       ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
-       ("go-github-com-mitchellh-go-homedir" ,go-github-com-mitchellh-go-homedir)
-       ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
-       ("go-github-com-multiformats-go-multiaddr" ,go-github-com-multiformats-go-multiaddr)
-       ("go-github-com-multiformats-go-multiaddr-net" ,go-github-com-multiformats-go-multiaddr-net)
-       ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
-       ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
-       ("go-github-com-whyrusleeping-tar-utils" ,go-github-com-whyrusleeping-tar-utils)
-       ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
-       ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
-       ("go-github-com-sabhiram-go-gitignore" ,go-github-com-sabhiram-go-gitignore)
-       ("go-github-com-urfave-cli" ,go-github-com-urfave-cli)
-       ("go-github-com-whyrusleeping-json-filter" ,go-github-com-whyrusleeping-json-filter)
-       ("go-github-com-whyrusleeping-progmeter" ,go-github-com-whyrusleeping-progmeter)
-       ("go-github-com-whyrusleeping-stump" ,go-github-com-whyrusleeping-stump)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
+     (list go-github-com-blang-semver
+           go-github-com-gxed-hashland-keccakpg
+           go-github-com-ipfs-go-ipfs-api
+           go-github-com-ipfs-go-ipfs-cmdkit-files
+           go-github-com-libp2p-go-flow-metrics
+           go-github-com-libp2p-go-libp2p-crypto
+           go-github-com-libp2p-go-libp2p-metrics
+           go-github-com-libp2p-go-libp2p-peer
+           go-github-com-libp2p-go-libp2p-protocol
+           go-github-com-minio-blake2b-simd
+           go-github-com-minio-sha256-simd
+           go-github-com-mitchellh-go-homedir
+           go-github-com-mr-tron-base58
+           go-github-com-multiformats-go-multiaddr
+           go-github-com-multiformats-go-multiaddr-net
+           go-github-com-multiformats-go-multihash
+           go-github-com-spaolacci-murmur3
+           go-github-com-whyrusleeping-tar-utils
+           go-github-com-btcsuite-btcd-btcec
+           go-github-com-gogo-protobuf
+           go-github-com-sabhiram-go-gitignore
+           go-github-com-urfave-cli
+           go-github-com-whyrusleeping-json-filter
+           go-github-com-whyrusleeping-progmeter
+           go-github-com-whyrusleeping-stump
+           go-golang-org-x-crypto))
     (home-page "https://github.com/whyrusleeping/gx")
     (synopsis "Package management tool using IPFS")
     (description "@command{gx} is a packaging tool built around the
@@ -179,32 +181,32 @@ powerful and simple.")
     (arguments
      '(#:import-path "github.com/whyrusleeping/gx-go"))
     (native-inputs
-     `(("go-github-com-whyrusleeping-gx-util" ,go-github-com-whyrusleeping-gx-util)
-       ("go-github-com-kr-fs" ,go-github-com-kr-fs)
-       ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
-       ("go-github-com-ipfs-go-ipfs-api" ,go-github-com-ipfs-go-ipfs-api)
-       ("go-github-com-ipfs-go-ipfs-cmdkit-files" ,go-github-com-ipfs-go-ipfs-cmdkit-files)
-       ("go-github-com-libp2p-go-flow-metrics" ,go-github-com-libp2p-go-flow-metrics)
-       ("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
-       ("go-github-com-libp2p-go-libp2p-metrics" ,go-github-com-libp2p-go-libp2p-metrics)
-       ("go-github-com-libp2p-go-libp2p-peer" ,go-github-com-libp2p-go-libp2p-peer)
-       ("go-github-com-libp2p-go-libp2p-protocol" ,go-github-com-libp2p-go-libp2p-protocol)
-       ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
-       ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
-       ("go-github-com-mitchellh-go-homedir" ,go-github-com-mitchellh-go-homedir)
-       ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
-       ("go-github-com-multiformats-go-multiaddr" ,go-github-com-multiformats-go-multiaddr)
-       ("go-github-com-multiformats-go-multiaddr-net" ,go-github-com-multiformats-go-multiaddr-net)
-       ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
-       ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
-       ("go-github-com-whyrusleeping-tar-utils" ,go-github-com-whyrusleeping-tar-utils)
-       ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
-       ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
-       ("go-github-com-sabhiram-go-gitignore" ,go-github-com-sabhiram-go-gitignore)
-       ("go-github-com-urfave-cli" ,go-github-com-urfave-cli)
-       ("go-github-com-whyrusleeping-progmeter" ,go-github-com-whyrusleeping-progmeter)
-       ("go-github-com-whyrusleeping-stump" ,go-github-com-whyrusleeping-stump)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
+     (list go-github-com-whyrusleeping-gx-util
+           go-github-com-kr-fs
+           go-github-com-gxed-hashland-keccakpg
+           go-github-com-ipfs-go-ipfs-api
+           go-github-com-ipfs-go-ipfs-cmdkit-files
+           go-github-com-libp2p-go-flow-metrics
+           go-github-com-libp2p-go-libp2p-crypto
+           go-github-com-libp2p-go-libp2p-metrics
+           go-github-com-libp2p-go-libp2p-peer
+           go-github-com-libp2p-go-libp2p-protocol
+           go-github-com-minio-blake2b-simd
+           go-github-com-minio-sha256-simd
+           go-github-com-mitchellh-go-homedir
+           go-github-com-mr-tron-base58
+           go-github-com-multiformats-go-multiaddr
+           go-github-com-multiformats-go-multiaddr-net
+           go-github-com-multiformats-go-multihash
+           go-github-com-spaolacci-murmur3
+           go-github-com-whyrusleeping-tar-utils
+           go-github-com-btcsuite-btcd-btcec
+           go-github-com-gogo-protobuf
+           go-github-com-sabhiram-go-gitignore
+           go-github-com-urfave-cli
+           go-github-com-whyrusleeping-progmeter
+           go-github-com-whyrusleeping-stump
+           go-golang-org-x-crypto))
     (home-page "https://github.com/whyrusleeping/gx-go")
     (synopsis "Golang subtool for the @command{gx} package manager")
     (description "A subtool for the @command{gx} package manager for packages
@@ -214,7 +216,7 @@ written in Go.")
 (define-public go-ipfs
   (package
     (name "go-ipfs")
-    (version "0.8.0")
+    (version "0.11.0")
     (source
      (origin
        (method url-fetch/tarbomb)
@@ -222,12 +224,13 @@ written in Go.")
              "https://dist.ipfs.io/go-ipfs/v" version
              "/go-ipfs-source.tar.gz"))
        (sha256
-        (base32 "0k2qzlfz8ks9c70rxsy7jvk6d2s6yll1b8v9k2kcw07r989gxbdq"))
+        (base32 "13pmj83hwpz6mk7x52qn0cjnfqxqw2qri3r0k4b270w3bafcccwm"))
        (file-name (string-append name "-" version "-source"))))
     (build-system go-build-system)
     (arguments
-     '(#:unpack-path "github.com/ipfs/go-ipfs"
+     `(#:unpack-path "github.com/ipfs/go-ipfs"
        #:import-path "github.com/ipfs/go-ipfs/cmd/ipfs"
+       #:go ,go-1.17
        #:phases (modify-phases %standard-phases
                   (add-before 'reset-gzip-timestamps 'make-files-writable
                     (lambda* (#:key outputs #:allow-other-keys)
@@ -237,6 +240,8 @@ written in Go.")
                         (for-each make-file-writable
                                   (find-files out "\\.gz$"))
                         #t))))))
+    (native-inputs
+     (list python-minimal-wrapper zsh))
     (home-page "https://ipfs.io")
     (synopsis "Go implementation of IPFS, a peer-to-peer hypermedia protocol")
     (description "IPFS is a global, versioned, peer-to-peer file system.  It
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 470c7ec8f3..3b88e8d4d2 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -47,6 +47,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
@@ -124,9 +125,7 @@
                #t))))
        #:tests? #f)) ; no test target
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules pkg-config qttools))
     (inputs
      `(("inxi" ,inxi-minimal)
        ("libdbusmenu-qt" ,libdbusmenu-qt)
@@ -167,6 +166,7 @@ irssi, but graphical.")
                (setenv "CONFIG_SHELL" (which "bash"))
                (invoke "./configure"
                        (string-append "--prefix=" out)
+                       (string-append "--enable-true-color")
                        (string-append "--with-proxy")
                        (string-append "--with-socks")
                        (string-append "--with-bot")))))
@@ -174,12 +174,9 @@ irssi, but graphical.")
            (lambda _
              (setenv "HOME" (getcwd)))))))
     (inputs
-     `(("glib" ,glib)
-       ("ncurses" ,ncurses)
-       ("openssl" ,openssl)
-       ("perl" ,perl)))
+     (list glib ncurses openssl perl utf8proc))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://irssi.org/")
     (synopsis "Terminal-based IRC client")
     (description
@@ -190,39 +187,52 @@ SILC and ICB protocols via plugins.")
 (define-public weechat
   (package
     (name "weechat")
-    (version "3.2")
+    (version "3.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://weechat.org/files/src/weechat-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1a47knznlm9f2f83d71s3c4fm50m6iq6iq1bvp4m61p8fkrsva1r"))))
+                "1pyb1yaw61cbdg1g4cc22px1wsh8wm0gsx1yzp684idyz25apzna"))))
     (build-system cmake-build-system)
+    (outputs '("out" "doc"))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)
+       ("ruby-asciidoctor" ,ruby-asciidoctor)
        ;; For tests.
        ("cpputest" ,cpputest)))
     (inputs
-     `(("aspell" ,aspell)
-       ("curl" ,curl)
-       ("gnutls" ,gnutls)
-       ("libgcrypt" ,libgcrypt "out")
-       ("ncurses" ,ncurses)
-       ("zlib" ,zlib)
-
-       ;; Scripting language plug-ins.
-       ("guile" ,guile-3.0)
-       ("lua" ,lua-5.1)
-       ("perl" ,perl)
-       ("python" ,python)
-       ("tcl" ,tcl)))
+     (list aspell
+           curl
+           gnutls
+           `(,libgcrypt "out")
+           ncurses
+           zlib
+           ;; Scripting language plug-ins.
+           guile-3.0
+           lua-5.1
+           perl
+           python
+           ruby
+           tcl))
     (arguments
      `(#:configure-flags
        (list "-DENABLE_PHP=OFF"
-             "-DENABLE_RUBY=OFF"
+             "-DENABLE_MAN=ON"
+             "-DENABLE_DOC=ON"
              "-DENABLE_TESTS=ON")       ; ‘make test’ fails otherwise
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'move-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                   (doc (assoc-ref outputs "doc"))
+                   (from (string-append out "/share/doc/weechat"))
+                   (to (string-append doc "/share/doc/weechat")))
+               (mkdir-p (string-append doc "/share/doc"))
+               (rename-file from to)))))
        ;; Tests hang indefinitely on non-Intel platforms.
        #:tests? ,(if (any (cute string-prefix? <> (or (%current-target-system)
                                                       (%current-system)))
@@ -242,7 +252,7 @@ using a mouse.  It is customizable and extensible with plugins and scripts.")
 (define-public srain
   (package
     (name "srain")
-    (version "1.2.3")
+    (version "1.3.0")
     (source
      (origin
        (method git-fetch)
@@ -251,7 +261,7 @@ using a mouse.  It is customizable and extensible with plugins and scripts.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0rlpygcpacgcfjxw3brw99ad3rc7zs96p5c6rg6j79p6sy38lrfs"))))
+        (base32 "14s0h5wgvlkdylnjis2fa7m835142jzw0d0yqjnir1wqnwmq1rld"))))
     (build-system meson-build-system)
     (arguments
      `(#:tests? #f ;there are no tests
@@ -263,13 +273,13 @@ using a mouse.  It is customizable and extensible with plugins and scripts.")
        ("python" ,python-wrapper)
        ("python-sphinx" ,python-sphinx)))
     (inputs
-     `(("glib-networking" ,glib-networking)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ("libconfig" ,libconfig)
-       ("libsecret" ,libsecret)
-       ("libsoup" ,libsoup)
-       ("openssl" ,openssl)))
+     (list glib-networking
+           gsettings-desktop-schemas
+           gtk+
+           libconfig
+           libsecret
+           libsoup
+           openssl))
     (home-page "https://srain.im")
     (synopsis "Modern IRC client written in GTK")
     (description
@@ -314,17 +324,56 @@ for the IRCv3 protocol.")
                (("/bin/rm") "rm")
                (("/bin/mv") "mv")))))))
     (inputs
-     `(("ncurses" ,ncurses)
-       ("openssl" ,openssl)))
+     (list ncurses openssl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("perl" ,perl)))
+     (list pkg-config perl))
     (home-page "http://www.eterna.com.au/ircii/")
     (synopsis "Terminal-based IRC and ICB client")
     (description
      "ircII is a terminal based IRC and ICB client for UNIX systems.")
     (license license:bsd-3)))
 
+(define-public catgirl
+  (package
+    (name "catgirl")
+    (version "1.9a")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://git.causal.agency/catgirl/snapshot/"
+                                  name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0pci8crcgm33zb58y7ky2aydzyqsirj8ri8ik1zdlz6npadbjj9h"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:make-flags (list (string-append "PREFIX=" %output)
+                          ,(string-append "CC=" (cc-for-target)))))
+    (native-inputs
+     (list universal-ctags pkg-config))
+    (inputs
+     (list libressl ncurses))
+    (home-page "https://git.causal.agency/catgirl")
+    (synopsis "TLS-only terminal IRC client")
+    (description
+     "@command{catgirl} is a TLS-only terminal IRC client.
+
+Notable features include:
+@itemize
+@item Tab complete: most recently seen or mentioned nicks are completed first.
+  Commas are inserted between multiple nicks.
+@item Prompt: the prompt clearly shows whether input will be interpreted as a
+command or sent as a message.
+@item Split scroll: keeps the latest messages in view while scrolling.
+@item URL detection: recent URLs from a particular user or matching a
+substring can be opened or copied.
+@item Nick coloring: color generation based on usernames remains stable across
+nick changes.  Mentions of users in messages are colored.
+@item Topic diffing: the modified portion of a channel topic change is
+highlighted.
+@end itemize")
+    (license license:gpl3+)))
+
 (define-public ii
   (package
     (name "ii")
@@ -378,7 +427,7 @@ for the IRCv3 protocol.")
 (define-public kirc
   (package
     (name "kirc")
-    (version "0.2.7")
+    (version "0.2.9")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -386,7 +435,7 @@ for the IRCv3 protocol.")
                      (commit version)))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "0phx00lr7ya8rx1hskv1wdwbq2vlihiqhnplqdvk1r3m23is7al9"))))
+               (base32 "0ahmfxhgcvnlgmxxbv9vga5x6krab1n7qq55ygj7hj3x7s7ra419"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -417,16 +466,16 @@ all RFC 2812 commands, and customized color scheme definitions.")
         (base32 "0853xk1ps3v6lkmfx50wv56vynnzpl84v66hxnhl8i34zl36kk3c"))))
     (build-system python-build-system)
     (inputs
-     `(("python-pytz" ,python-pytz)
-       ("python-chardet" ,python-chardet)
-       ("python-dateutil" ,python-dateutil)
-       ("python-gnupg" ,python-gnupg)
-       ("python-feedparser" ,python-feedparser)
-       ("python-sqlalchemy" ,python-sqlalchemy)
-       ("python-socksipy-branch" ,python-socksipy-branch)
-       ("python-ecdsa" ,python-ecdsa)))
+     (list python-pytz
+           python-chardet
+           python-dateutil
+           python-gnupg
+           python-feedparser
+           python-sqlalchemy
+           python-socksipy-branch
+           python-ecdsa))
     (native-inputs
-     `(("python-mock" ,python-mock)))
+     (list python-mock))
     ;; Despite the existence of a test folder there is no test phase.
     ;; We need to package https://github.com/ProgVal/irctest and write
     ;; our own testphase.
@@ -504,14 +553,14 @@ other enhancements and bug fixes.")
                                       (assoc-ref %build-inputs "tcl")
                                       "/lib/tclConfig.sh"))))))))
     (inputs
-     `(("libressl" ,libressl)
-       ("ncurses" ,ncurses)
-       ("libarchive" ,libarchive) ; CHANGELOG: "Support for loading zip files"
-       ("perl" ,perl)
-       ("tcl" ,tcl)
-       ("ruby" ,ruby)))
+     (list libressl
+           ncurses
+           libarchive ; CHANGELOG: "Support for loading zip files"
+           perl
+           tcl
+           ruby))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://epicsol.org")
     (synopsis "Epic5 IRC Client")
     (description
@@ -527,6 +576,37 @@ interface for those who are accustomed to the ircII way of doing things.")
                    ;; distribute binaries.
                    (license:non-copyleft "http://epicsol.org/copyright")))))
 
+(define-public litterbox
+  (package
+    (name "litterbox")
+    (version "1.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://git.causal.agency/litterbox/snapshot/litterbox-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "0ll5d18slngdg2qhaxkvrcq2p1admh0h7sr06wx8347ka0vvrgjl"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; There are no tests.
+       #:make-flags
+       (list
+        (string-append "CC=" ,(cc-for-target))
+        (string-append "PREFIX=" %output))))
+    (native-inputs
+      (list pkg-config universal-ctags))
+    (inputs
+      (list libressl sqlite))
+    (home-page "https://code.causal.agency/june/litterbox")
+    (synopsis "TLS-only IRC logger")
+    (description
+"@command{litterbox} is a TLS-only IRC logger.  It logs
+events from IRC in a SQLite database, indexing messages for full-text
+search.  It is intended for use with the IRC bouncer @command{pounce},
+but can also be used independently as a logging bot.")
+    (license license:gpl3+)))
+
 (define-public inspircd
   (package
     (name "inspircd")
@@ -581,21 +661,21 @@ interface for those who are accustomed to the ircII way of doing things.")
                        (string-append "--config-dir=" out-etc name)))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("argon2" ,argon2)
-       ("gnutls" ,gnutls)
-       ("libmaxminddb" ,libmaxminddb)
-       ("mbedtls-apache" ,mbedtls-apache)
-       ("mysql" ,mysql)
-       ("openldap" ,openldap)
-       ("openssl" ,openssl)
-       ("pcre" ,pcre "bin")
-       ("perl" ,perl)
-       ("postgresql" ,postgresql)
-       ("re2" ,re2)
-       ("sqlite" ,sqlite)
-       ("tre" ,tre)))
+     (list argon2
+           gnutls
+           libmaxminddb
+           mbedtls-apache
+           mysql
+           openldap
+           openssl
+           `(,pcre "bin")
+           perl
+           postgresql
+           re2
+           sqlite
+           tre))
     (synopsis "Modular IRC server written in C++")
     (description "InspIRCd is a modular Internet Relay Chat
 server written in C++ for Unix-like operating systems.")
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 5cb92840dc..804e3196c0 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -29,7 +29,6 @@
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages freedesktop)
-  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -437,13 +436,12 @@
        ("webrtc-audio-processing" ,webrtc-audio-processing)
        ("yaml-cpp" ,yaml-cpp)))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gcc" ,gcc-8)                   ;charconv requires GCC 8.1+
-       ("libtool" ,libtool)
-       ("perl" ,perl)                   ;to generate manpages with pod2man
-       ("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list autoconf
+           automake
+           libtool
+           perl ;to generate manpages with pod2man
+           pkg-config
+           which))
     (arguments
      `(#:tests? #f         ; The tests fail to compile due to missing headers.
        #:make-flags '("V=1")            ;build verbosely
@@ -472,10 +470,9 @@ protocols, as well as decentralized calling using P2P-DHT.")
     (build-system cmake-build-system)
     (outputs '("out" "debug"))
     (inputs
-     `(("libring" ,libring)
-       ("network-manager" ,network-manager)))
+     (list libring network-manager))
     (propagated-inputs
-     `(("qtbase" ,qtbase-5)))     ; Qt is included in several installed headers.
+     (list qtbase-5))     ; Qt is included in several installed headers.
     (arguments
      `(#:tests? #f                      ; There is no testsuite.
        #:configure-flags
@@ -515,25 +512,25 @@ decentralized calling using P2P-DHT.")
     (build-system cmake-build-system)
     (outputs '("out" "debug"))
     (inputs
-     `(("clutter" ,clutter)
-       ("clutter-gtk" ,clutter-gtk)
-       ("gtk+" ,gtk+)
-       ("libcanberra" ,libcanberra)
-       ("libappindicator" ,libappindicator)
-       ("libnotify" ,libnotify)
-       ("libringclient" ,libringclient)
-       ("network-manager" ,network-manager)
-       ("qrencode" ,qrencode)
-       ("sqlite" ,sqlite)
-       ("webkitgtk" ,webkitgtk)))
+     (list clutter
+           clutter-gtk
+           gtk+
+           libcanberra
+           libappindicator
+           libnotify
+           libringclient
+           network-manager
+           qrencode
+           sqlite
+           webkitgtk))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")))       ;for glib-compile-resources
     (propagated-inputs
-     `(("libring" ,libring) ; Contains 'dring', the daemon, which is
-                            ; automatically started by DBus.
-       ("adwaita-icon-theme" ,adwaita-icon-theme)))
+     (list libring ; Contains 'dring', the daemon, which is
+           ; automatically started by DBus.
+           adwaita-icon-theme))
     (arguments
      `(#:tests? #f                      ;no test suite
        #:imported-modules (,@%cmake-build-system-modules
@@ -546,6 +543,11 @@ decentralized calling using P2P-DHT.")
          (add-after 'unpack 'change-directory
            (lambda _
              (chdir "client-gnome")))
+         (add-after 'change-directory 'fix-webkit-detection
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("WEBKIT webkit2gtk-4.0")
+                "WEBKIT webkit2gtk-4.1"))))
          (add-after 'install 'glib-or-gtk-compile-schemas
            (assoc-ref gtk:%standard-phases 'glib-or-gtk-compile-schemas))
          (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
@@ -579,25 +581,22 @@ decentralized calling using P2P-DHT.")
              (lambda _
                (chdir "client-qt"))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)
-       ("doxygen" ,doxygen)
-       ("graphviz" ,graphviz)))
+     (list pkg-config qttools doxygen graphviz))
     (inputs
-     `(("libnotify" ,libnotify)
-       ("libringclient" ,libringclient)
-       ("network-manager" ,network-manager)
-       ("qrencode" ,qrencode)
-       ("qtsvg" ,qtsvg)
-       ("qtwebengine" ,qtwebengine)
-       ("qtwebchannel" ,qtwebchannel)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtgraphicaleffects" ,qtgraphicaleffects)
-       ("qtquickcontrols" ,qtquickcontrols)
-       ("qtquickcontrols2" ,qtquickcontrols2)))
+     (list libnotify
+           libringclient
+           network-manager
+           qrencode
+           qtsvg
+           qtwebengine
+           qtwebchannel
+           qtmultimedia
+           qtdeclarative
+           qtgraphicaleffects
+           qtquickcontrols
+           qtquickcontrols2))
     (propagated-inputs
-     `(("libring" ,libring)))           ;for dring
+     (list libring))           ;for dring
     (home-page "https://jami.net")
     (synopsis "Qt Jami client")
     (description "This package provides the Jami Qt client.  Jami is a secure
diff --git a/gnu/packages/java-compression.scm b/gnu/packages/java-compression.scm
index 033b55c988..32d04a2fa6 100644
--- a/gnu/packages/java-compression.scm
+++ b/gnu/packages/java-compression.scm
@@ -237,9 +237,7 @@ compressor/decompressor.")
          (replace 'install (install-from-pom "pom.xml")))))
     (home-page "https://github.com/dain/snappy")
     (native-inputs
-     `(("java-guava" ,java-guava)
-       ("java-snappy" ,java-snappy)
-       ("java-testng" ,java-testng)))
+     (list java-guava java-snappy java-testng))
     (synopsis "Java port of the Snappy (de)compressor")
     (description
      "Iq80-snappy is a port of the Snappy compressor and decompressor rewritten
@@ -263,8 +261,7 @@ output created by the original C++ code, and is extremely fast.")
                 "0ncmhlqmrfmj96nqf6p77b9ws35lcfsvpfxzwxi2asissc83z1l3"))))
     (build-system ant-build-system)
     (native-inputs
-     `(("unzip" ,unzip)
-       ("java-junit" ,java-junit)))
+     (list unzip java-junit))
     (arguments
      `(#:tests? #f                      ; no tests
        #:jar-name "jbzip2.jar"
@@ -319,7 +316,7 @@ It can be used as a replacement for the Apache @code{CBZip2InputStream} /
         (replace 'install
           (install-from-pom "pom.xml")))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://tukaani.org")
     (synopsis "XZ in Java")
     (description "Tukaani-xz is an implementation of xz compression/decompression
diff --git a/gnu/packages/java-graphics.scm b/gnu/packages/java-graphics.scm
index 960579f770..9a71548b9c 100644
--- a/gnu/packages/java-graphics.scm
+++ b/gnu/packages/java-graphics.scm
@@ -48,7 +48,7 @@
          (add-after 'unpack 'chdir
            (lambda _ (chdir "core") #t)))))
     (inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "http://piccolo2d.org")
     (synopsis "Structured 2D graphics framework")
     (description "Piccolo2D is a framework (in the Jazz ZUI tradition) to
@@ -79,10 +79,9 @@ libraries.")
              (setenv "DISPLAY" ":1")
              #t)))))
     (inputs
-     `(("java-piccolo2d-core" ,java-piccolo2d-core)
-       ("java-junit" ,java-junit)))
+     (list java-piccolo2d-core java-junit))
     (native-inputs
-     `(("xorg-server" ,xorg-server))) ; for tests
+     (list xorg-server)) ; for tests
     (description "Piccolo2D is a framework (in the Jazz ZUI tradition) to
 create robust, full-featured graphical applications in Java, with features
 such as zooming and multiple representation.  This package provides additional
@@ -109,8 +108,7 @@ features not found in the core libraries.")))
      `(#:jar-name "marlin.jar"
        #:test-include (list "src/test/java/RunJUnitTest.java")))
     (inputs
-     `(("java-hamcrest-core" ,java-hamcrest-core)
-       ("java-junit" ,java-junit)))
+     (list java-hamcrest-core java-junit))
     (home-page "https://github.com/bourgesl/marlin-renderer/")
     (synopsis "Rendering engine")
     (description "Marlin is a Java2D @code{RenderingEngine} optimized for
diff --git a/gnu/packages/java-maths.scm b/gnu/packages/java-maths.scm
index 97343e0a16..45c42297ad 100644
--- a/gnu/packages/java-maths.scm
+++ b/gnu/packages/java-maths.scm
@@ -74,7 +74,7 @@
                (install-file (string-append "jblas-" ,version ".jar") target))
              #t)))))
     (inputs
-     `(("openblas" ,openblas)))
+     (list openblas))
     (native-inputs
      `(("ant" ,ant)
        ("ruby" ,ruby)                   ; for configure script
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 9a6ca926be..6332b58b98 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -60,6 +60,7 @@
   #:use-module (gnu packages elf)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gawk)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages ghostscript) ;lcms
@@ -2173,14 +2174,15 @@ new Date();"))
 (define-public openjdk11
   (package
     (name "openjdk")
-    (version "11.28")
+    (version "11.0.13")
     (source (origin
               (method url-fetch)
-              (uri "http://hg.openjdk.java.net/jdk/jdk/archive/76072a077ee1.tar.bz2")
+              (uri (string-append "https://openjdk-sources.osci.io/openjdk11/openjdk-"
+                                  version "-ga.tar.xz"))
               (file-name (string-append name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "0v705w1s9lrqalzahir78pk397rkk9gfvzq821yv8h3xha0bqi6w"))
+                "0xavz7msaadprq65p5bhp6sxcyp12p0zlbhb3aaz0cvp21c9pdm9"))
               (modules '((guix build utils)))
               (snippet
                `(begin
@@ -2422,6 +2424,7 @@ new Date();"))
        ("libpng" ,libpng)
        ("libx11" ,libx11)
        ("libxext" ,libxext)
+       ("libxrandr" ,libxrandr)
        ("libxrender" ,libxrender)
        ("libxt" ,libxt)
        ("libxtst" ,libxtst)))
@@ -2628,14 +2631,44 @@ new Date();"))
                ;; The build system copies a few .template files from the
                ;; source directory into the build directory and then modifies
                ;; them in-place.  So these files have to be writable.
-               (for-each
-                (lambda (file)
-                  (invoke "chmod" "u+w" file))
+               (for-each make-file-writable
                 (find-files "src/java.base/share/classes/jdk/internal/misc/"
-                            "\\.template$"))
-               #t))))))
+                            "\\.template$"))))))))
     (home-page "https://openjdk.java.net/projects/jdk/16")))
 
+(define-public openjdk17
+  (package
+    (inherit openjdk16)
+    (name "openjdk")
+    (version "17.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/openjdk/jdk17u")
+                    (commit (string-append "jdk-" version "-ga"))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1l1jgbz8q7zq66npfg88r0l5xga427vrz35iys09j44b6qllrldd"))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("openjdk16:jdk" ,openjdk16 "jdk")
+       ("pkg-config" ,pkg-config)
+       ("unzip" ,unzip)
+       ("which" ,which)
+       ("zip" ,zip)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments openjdk16)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (replace 'fix-java-shebangs
+             (lambda _
+               ;; This file was "fixed" by patch-source-shebangs, but it requires
+               ;; this exact first line.
+               (substitute* "make/data/blockedcertsconverter/blocked.certs.pem"
+                 (("^#!.*") "#! java BlockedCertsConverter SHA-256\n"))))))))
+    (home-page "https://openjdk.java.net/projects/jdk/17")))
+
 (define-public icedtea icedtea-8)
 
 
@@ -2733,8 +2766,8 @@ new Date();"))
                  (delete-file-recursively lib)
                  #t)))))))
     (inputs
-     `(("java-commons-bcel" ,java-commons-bcel)
-       ,@(package-inputs ant/java8)))))
+     (modify-inputs (package-inputs ant/java8)
+       (prepend java-commons-bcel)))))
 
 (define-public ant-junit
   (package
@@ -2765,8 +2798,8 @@ new Date();"))
                  (delete-file-recursively lib)
                  #t)))))))
     (inputs
-     `(("java-junit" ,java-junit)
-       ,@(package-inputs ant/java8)))))
+     (modify-inputs (package-inputs ant/java8)
+       (prepend java-junit)))))
 
 (define-public java-openjfx-build
   (package
@@ -2804,11 +2837,9 @@ new Date();"))
                      "buildSrc/src/main/java/com/sun/scenario/effect/compiler"
                      "buildSrc/src/main/antlr/JSL.g"))))))
     (inputs
-     `(("antlr3" ,antlr3)
-       ("java-stringtemplate" ,java-stringtemplate)))
+     (list antlr3 java-stringtemplate))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (home-page "https://openjfx.io")
     (synopsis "Graphical application toolkit in Java")
     (description "OpenJFX is a client application platform for desktop,
@@ -2844,7 +2875,7 @@ distribution.")
                (delete-file "com/sun/javafx/runtime/VersionInfoTest.java"))
              #t)))))
     (propagated-inputs
-     `(("java-openjfx-build" ,java-openjfx-build)))
+     (list java-openjfx-build))
     (description "OpenJFX is a client application platform for desktop,
 mobile and embedded systems built on Java.  Its goal is to produce a
 modern, efficient, and fully featured toolkit for developing rich client
@@ -2939,8 +2970,7 @@ distribution.")))
                                         (string-append target new-name))))
                          (find-files "netbeans" "\\.so$"))))))))
     (propagated-inputs
-     `(("java-openjfx-base" ,java-openjfx-base)
-       ("java-swt" ,java-swt)))
+     (list java-openjfx-base java-swt))
     ;; XXX: for unknown reasons
     ;; modules/graphics/src/main/native-prism-sw/JNativeSurface.c is missing
     ;; in this revision.
@@ -3126,7 +3156,7 @@ debugging, etc.")
                #t))))))
 
     (native-inputs
-     `(("javacc" ,javacc-4)))))
+     (list javacc-4))))
 
 ;; This is the last 3.x release of ECJ
 (define-public java-ecj-3
@@ -3194,7 +3224,7 @@ Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n"
              #t))
          (replace 'install (install-jars ".")))))
     (native-inputs
-     `(("unzip" ,unzip)))))
+     (list unzip))))
 
 (define-public java-ecj
   (package (inherit java-ecj-3)
@@ -3426,11 +3456,9 @@ libraries from the SIS division at ETH Zurich like jHDF5.")
            (add-after 'unpack 'unpack-build-resources
              (lambda* (#:key inputs #:allow-other-keys)
                (mkdir-p "../build_resources")
-               (invoke "tar" "xf" (assoc-ref inputs "build-resources")
-                       "-C" "../build_resources"
-                       "--strip-components=1")
-               (mkdir-p "../build_resources/lib")
-               #t))
+               (copy-recursively (assoc-ref inputs "build-resources")
+                                 "../build_resources")
+               (mkdir-p "../build_resources/lib")))
            (add-after 'unpack-build-resources 'fix-dependencies
              (lambda* (#:key inputs #:allow-other-keys)
                ;; FIXME: There should be a more convenient abstraction for
@@ -3477,7 +3505,7 @@ libraries from the SIS division at ETH Zurich like jHDF5.")
                #t))
            (replace 'install (install-jars "targets/dist")))))
       (inputs
-       `(("java-cisd-base" ,java-cisd-base)))
+       (list java-cisd-base))
       (native-inputs
        `(("ecj" ,java-ecj-3.5)
          ("build-resources"
@@ -3649,12 +3677,12 @@ libraries from the SIS division at ETH Zurich like jHDF5.")
            (replace 'install
              (install-jars "targets/dist")))))
       (inputs
-       `(("java-cisd-base" ,java-cisd-base)
-         ("java-cisd-args4j" ,java-cisd-args4j)
-         ("java-commons-lang" ,java-commons-lang)
-         ("java-commons-io" ,java-commons-io)
-         ("hdf5" ,hdf5-1.8)
-         ("zlib" ,zlib)))
+       (list java-cisd-base
+             java-cisd-args4j
+             java-commons-lang
+             java-commons-io
+             hdf5-1.8
+             zlib))
       (native-inputs
        `(("jdk" ,icedtea-8)
          ("java-testng" ,java-testng)
@@ -3751,7 +3779,7 @@ API and version 2.1 of the Java ServerPages API.")
                                "http/LocalStrings_fr.properties")))
                #t)))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://javaee.github.io/servlet-spec/")
     (synopsis "Java servlet API")
     (description "Java Servlet is the foundation web specification in the
@@ -3831,8 +3859,7 @@ specification.")
        ("mesa" ,mesa)
        ("glu" ,glu)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("unzip" ,unzip)))
+     (list pkg-config unzip))
     (home-page "https://www.eclipse.org/swt/")
     (synopsis "Widget toolkit for Java")
     (description
@@ -4013,9 +4040,9 @@ documentation tools.")
                              target))
              #t)))))
     (inputs
-     `(("java-asm-bootstrap" ,java-asm-bootstrap)))
+     (list java-asm-bootstrap))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://code.google.com/archive/p/jarjar/")
     (synopsis "Repackage Java libraries")
     (description
@@ -4112,7 +4139,7 @@ private Method[] allMethods = getSortedMethods();")))
      `(("java-qdox-1.12" ,java-qdox-1.12)
        ("java-jarjar" ,java-jarjar)))
     (propagated-inputs
-     `(("java-hamcrest-parent-pom" ,java-hamcrest-parent-pom)))
+     (list java-hamcrest-parent-pom))
     (home-page "http://hamcrest.org/")
     (synopsis "Library of matchers for building test expressions")
     (description
@@ -4165,8 +4192,7 @@ testing frameworks, mocking libraries and UI validation rules.")
           (replace 'install
             (install-from-pom "pom/hamcrest-library.pom"))))))
     (propagated-inputs
-     `(("java-hamcrest-core" ,java-hamcrest-core)
-       ("java-hamcrest-parent-pom" ,java-hamcrest-parent-pom)))))
+     (list java-hamcrest-core java-hamcrest-parent-pom))))
 
 (define-public java-junit
   (package
@@ -4203,9 +4229,9 @@ testing frameworks, mocking libraries and UI validation rules.")
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-hamcrest-core))
     (native-inputs
-     `(("java-hamcrest-library" ,java-hamcrest-library)))
+     (list java-hamcrest-library))
     (home-page "https://junit.org/junit4/")
     (synopsis "Test framework for Java")
     (description
@@ -4234,11 +4260,9 @@ sharing common test data, and test runners for running tests.")
        #:test-dir "src/test"
        #:test-exclude (list "**/SuperclassTest.java")))
     (inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)
-       ("java-assertj" ,java-assertj)))
+     (list java-junit java-hamcrest-core java-assertj))
     (home-page "https://github.com/Pragmatists/JUnitParams")
     (synopsis "Parameterised test support for JUnit")
     (description "The JUnitParams project adds a new runner to JUnit and
@@ -4299,10 +4323,9 @@ cli/shell/BourneShell.java"
              #t))
          (replace 'install (install-from-pom "pom.xml")))))
     (native-inputs
-     `(("java-hamcrest-core" ,java-hamcrest-core)
-       ("java-junit" ,java-junit)))
+     (list java-hamcrest-core java-junit))
     (propagated-inputs
-     `(("plexus-parent-pom" ,plexus-parent-pom-5.1)))
+     (list plexus-parent-pom-5.1))
     (home-page "https://codehaus-plexus.github.io/plexus-utils/")
     (synopsis "Common utilities for the Plexus framework")
     (description "This package provides various Java utility classes for the
@@ -4347,8 +4370,7 @@ more.")
     (propagated-inputs
      `(("plexus-parent-pom-5.1" ,plexus-parent-pom-5.1)))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (home-page "https://codehaus-plexus.github.io/plexus-interpolation/")
     (synopsis "Java components for interpolating ${} strings and the like")
     (description "Plexus interpolator is a modular, flexible interpolation
@@ -4384,7 +4406,7 @@ these two libraries to vary independently of one another.")
     (propagated-inputs
      `(("plexus-parent-pom-5.1" ,plexus-parent-pom-5.1)))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://codehaus-plexus.github.io/plexus-classworlds/")
     (synopsis "Java class loader framework")
     (description "Plexus classworlds replaces the native @code{ClassLoader}
@@ -4486,11 +4508,9 @@ implementation.")
              #t))
          (replace 'install (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("java-plexus-utils" ,java-plexus-utils-3.3.0)
-       ("java-commons-io" ,java-commons-io)
-       ("plexus-parent-pom" ,plexus-parent-pom-5.1)))
+     (list java-plexus-utils-3.3.0 java-commons-io plexus-parent-pom-5.1))
     (inputs
-     `(("java-jsr305" ,java-jsr305)))
+     (list java-jsr305))
     (native-inputs
      `(("junit" ,java-junit)
        ("hamcrest" ,java-hamcrest-core)
@@ -4544,11 +4564,8 @@ reusing it in maven.")
              #t))
          (replace 'install (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("java-plexus-utils" ,java-plexus-utils-3.3.0)
-       ("java-plexus-io" ,java-plexus-io)
-       ("java-iq80-snappy" ,java-iq80-snappy)
-       ("java-commons-compress" ,java-commons-compress)
-       ("plexus-parent-pom" ,plexus-parent-pom-6.1)))
+     (list java-plexus-utils-3.3.0 java-plexus-io java-iq80-snappy
+           java-commons-compress plexus-parent-pom-6.1))
     (inputs
      `(("java-jsr305" ,java-jsr305)
        ("java-plexus-container-default"
@@ -4630,7 +4647,7 @@ archives (jar).")
          (replace 'install
            (install-from-pom "plexus-component-annotations/pom.xml")))))
     (propagated-inputs
-     `(("java-plexus-containers-parent-pom" ,java-plexus-containers-parent-pom)))
+     (list java-plexus-containers-parent-pom))
     (inputs '())
     (native-inputs '())
     (synopsis "Plexus descriptors generator")
@@ -4672,9 +4689,7 @@ from source tags and class annotations.")))
        ("java-jdom2" ,java-jdom2)
        ("java-asm" ,java-asm)))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-guava" ,java-guava)
-       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)))
+     (list java-junit java-guava java-geronimo-xbean-reflect))
     (synopsis "Inversion-of-control container for Maven")
     (description "The Plexus project provides a full software stack for creating
 and executing software projects.  Based on the Plexus container, the
@@ -4718,12 +4733,11 @@ provides the Maven plugin generating the component metadata.")))
              #t))
          (replace 'install (install-from-pom "pom.xml")))))
     (inputs
-     `(("java-cdi-api" ,java-cdi-api)
-       ("java-javax-inject" ,java-javax-inject)))
+     (list java-cdi-api java-javax-inject))
     (propagated-inputs
-     `(("java-sonatype-spice-parent-pom" ,java-sonatype-spice-parent-pom-15)))
+     (list java-sonatype-spice-parent-pom-15))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://github.com/sonatype/plexus-cipher")
     (synopsis "Encryption/decryption Component")
     (description "Plexus-cipher contains a component to deal with encryption
@@ -4771,15 +4785,12 @@ and decryption.")
          (replace 'install
            (install-from-pom "plexus-java/pom.xml")))))
     (propagated-inputs
-     `(("java-asm" ,java-asm)
-       ("java-qdox" ,java-qdox-2-M9)
-       ("java-javax-inject" ,java-javax-inject)
-       ("plexus-parent-pom" ,plexus-parent-pom-4.0)))
+     (list java-asm java-qdox-2-M9 java-javax-inject
+           plexus-parent-pom-4.0))
     (inputs
-     `(("java-plexus-component-annotations" ,java-plexus-component-annotations)))
+     (list java-plexus-component-annotations))
     (native-inputs
-     `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
-       ("java-junit" ,java-junit)))
+     (list java-plexus-component-metadata java-junit))
     (home-page "https://codehaus-plexus.github.io/plexus-languages/plexus-java")
     (synopsis "Shared language features for Java")
     (description "This package contains shared language features of the Java
@@ -4813,7 +4824,7 @@ language, for the plexus project.")
        ("java-plexus-compiler-pom" ,java-plexus-compiler-pom)
        ("java-plexus-util" ,java-plexus-utils)))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://github.com/codehaus-plexus/plexus-compiler")
     (synopsis "Plexus Compilers component's API to manipulate compilers")
     (description "This package contains the API used by components to manipulate
@@ -4895,12 +4906,10 @@ compilers.")
          (replace 'install
            (install-from-pom "plexus-compiler-manager/pom.xml")))))
     (propagated-inputs
-     `(("java-plexus-compiler-api" ,java-plexus-compiler-api)
-       ("java-plexus-compiler-pom" ,java-plexus-compiler-pom)
-       ("java-plexus-container-default" ,java-plexus-container-default)))
+     (list java-plexus-compiler-api java-plexus-compiler-pom
+           java-plexus-container-default))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("java-plexus-component-metadata" ,java-plexus-component-metadata)))
+     (list unzip java-plexus-component-metadata))
     (synopsis "Compiler management for Plexus Compiler component")
     (description "Plexus Compiler is a Plexus component to use different
 compilers through a uniform API.  This component chooses the compiler
@@ -4944,9 +4953,8 @@ implementation to use in a project.")))
          (replace 'install
            (install-from-pom "plexus-compilers/plexus-compiler-javac/pom.xml")))))
     (propagated-inputs
-     `(("java-plexus-compiler-api" ,java-plexus-compiler-api)
-       ("java-plexus-utils" ,java-plexus-utils)
-       ("java-plexus-container-default" ,java-plexus-container-default)))
+     (list java-plexus-compiler-api java-plexus-utils
+           java-plexus-container-default))
     (synopsis "Javac Compiler support for Plexus Compiler component")
     (description "This package contains the Javac Compiler support for Plexus
 Compiler component.")))
@@ -5004,10 +5012,9 @@ packages.")
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("java-plexus-utils" ,java-plexus-utils)
-       ("plexus-components-pom-1.1.20" ,plexus-components-pom-1.1.20)))
+     (list java-plexus-utils plexus-components-pom-1.1.20))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://github.com/codehaus-plexus/plexus-digest")
     (synopsis "Hash function utilities for Java")
     (description "This package is a plexus component that contains hash
@@ -5082,9 +5089,8 @@ function utilities.")
              #t))
          (replace 'install (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("java-plexus-utils" ,java-plexus-utils)
-       ("java-plexus-cipher" ,java-plexus-cipher)
-       ("java-sonatype-spice-parent-pom" ,java-sonatype-spice-parent-pom-12)))
+     (list java-plexus-utils java-plexus-cipher
+           java-sonatype-spice-parent-pom-12))
     (native-inputs
      `(("java-modello-core" ,java-modello-core)
        ;; for modello:
@@ -5127,13 +5133,10 @@ This component decrypts a string passed to it.")
        #:jdk ,icedtea-8
        #:test-dir "src/test"))
     (inputs
-     `(("java-commons-cli" ,java-commons-cli)
-       ("java-plexus-container-default" ,java-plexus-container-default)
-       ("java-plexus-classworlds" ,java-plexus-classworlds)))
+     (list java-commons-cli java-plexus-container-default
+           java-plexus-classworlds))
     (native-inputs
-     `(("java-plexus-utils" ,java-plexus-utils)
-       ("java-junit" ,java-junit)
-       ("java-guava" ,java-guava)))
+     (list java-plexus-utils java-junit java-guava))
     (home-page "https://codehaus-plexus.github.io/plexus-cli")
     (synopsis "CLI building library for plexus")
     (description "This package is a library to help creating CLI around
@@ -5190,8 +5193,7 @@ which behaves as if all files were just created.</description>\n
          (replace 'install
            (install-from-pom "pom.xml")))))
     (inputs
-     `(("java-plexus-utils" ,java-plexus-utils)
-       ("java-plexus-container-default" ,java-plexus-container-default)))
+     (list java-plexus-utils java-plexus-container-default))
     (home-page "https://github.com/sonatype/sisu-build-api/")
     (synopsis "Base build API for maven")
     (description "This package contains the base build API for maven and
@@ -5235,14 +5237,11 @@ project and determining what files need to be rebuilt.")
                  (("src/test") "modello-core/src/test")))
              #t)))))
     (propagated-inputs
-     `(("java-plexus-utils" ,java-plexus-utils)
-       ("java-plexus-container-default" ,java-plexus-container-default)
-       ("java-sisu-build-api" ,java-sisu-build-api)))
+     (list java-plexus-utils java-plexus-container-default
+           java-sisu-build-api))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-plexus-classworlds" ,java-plexus-classworlds)
-       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
-       ("java-guava" ,java-guava)))
+     (list java-junit java-plexus-classworlds java-geronimo-xbean-reflect
+           java-guava))
     (home-page "https://codehaus-plexus.github.io/modello/")
     (synopsis "Framework for code generation from a simple model")
     (description "Modello is a framework for code generation from a simple model.
@@ -5283,7 +5282,7 @@ XSD and documentation.")
                                "build/classes")
              #t)))))
     (inputs
-     `(("java-modello-core" ,java-modello-core)))
+     (list java-modello-core))
     (synopsis "Modello Java Plugin")
     (description "Modello Java Plugin generates Java objects for the model.")))
 
@@ -5313,8 +5312,7 @@ XSD and documentation.")
                  (("src/test") "modello-plugins/modello-plugin-xml/src/test")))
              #t)))))
     (propagated-inputs
-     `(("java-modello-core" ,java-modello-core)
-       ("java-modello-plugins-java" ,java-modello-plugins-java)))
+     (list java-modello-core java-modello-plugins-java))
     (synopsis "Modello XML Plugin")
     (description "Modello XML Plugin contains shared code for every plugins
 working on XML representation of the model.")))
@@ -5329,10 +5327,8 @@ working on XML representation of the model.")))
        #:tests? #f; no tests
        #:jdk ,icedtea-8))
     (inputs
-     `(("java-plexus-utils" ,java-plexus-utils)
-       ("java-plexus-compiler-api" ,java-plexus-compiler-api)
-       ("java-plexus-compiler-javac" ,java-plexus-compiler-javac)
-       ("java-plexus-container-default" ,java-plexus-container-default)))
+     (list java-plexus-utils java-plexus-compiler-api
+           java-plexus-compiler-javac java-plexus-container-default))
     (synopsis "Modello test package")
     (description "The modello test package contains the basis to create
 Modello generator unit-tests, including sample models and xml files to test
@@ -5358,13 +5354,11 @@ every feature for every plugin.")))
                                "build/classes")
              #t)))))
     (propagated-inputs
-     `(("java-modello-core" ,java-modello-core)
-       ("java-modello-plugins-java" ,java-modello-plugins-java)
-       ("java-modello-plugins-xml" ,java-modello-plugins-xml)))
+     (list java-modello-core java-modello-plugins-java
+           java-modello-plugins-xml))
     (native-inputs
-     `(("java-xmlunit" ,java-xmlunit)
-       ("java-modello-test" ,java-modello-test)
-       ,@(package-native-inputs java-modello-core)))
+     (modify-inputs (package-native-inputs java-modello-core)
+       (prepend java-xmlunit java-modello-test)))
     (synopsis "Modello XPP3 Plugin")
     (description "The modello XPP3 plugin generates XML readers and writers based
 on the XPP3 API (XML Pull Parser).")))
@@ -5421,9 +5415,9 @@ on the XPP3 API (XML Pull Parser).")))
          (replace 'install
            (install-from-pom "archive/asm.pom")))))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (propagated-inputs
-     `(("java-org-ow2-parent-pom" ,java-org-ow2-parent-pom-1.3)))
+     (list java-org-ow2-parent-pom-1.3))
     (home-page "https://asm.ow2.io/")
     (synopsis "Very small and fast Java bytecode manipulation framework")
     (description "ASM is an all purpose Java bytecode manipulation and
@@ -5503,7 +5497,7 @@ including java-asm.")
        ;; tests depend on junit5
        #:tests? #f))
     (inputs
-     `(("java-asm" ,java-asm-8)))))
+     (list java-asm-8))))
 
 (define-public java-asm-analysis-8
   (package
@@ -5516,8 +5510,7 @@ including java-asm.")
        ;; tests depend on junit5
        #:tests? #f))
     (inputs
-     `(("java-asm" ,java-asm-8)
-       ("java-asm-tree" ,java-asm-tree-8)))))
+     (list java-asm-8 java-asm-tree-8))))
 
 (define-public java-asm-util-8
   (package
@@ -5530,9 +5523,7 @@ including java-asm.")
        ;; tests depend on junit5
        #:tests? #f))
     (inputs
-     `(("java-asm" ,java-asm-8)
-       ("java-asm-analysis" ,java-asm-analysis-8)
-       ("java-asm-tree" ,java-asm-tree-8)))))
+     (list java-asm-8 java-asm-analysis-8 java-asm-tree-8))))
 
 (define-public java-cglib
   (package
@@ -5562,8 +5553,7 @@ including java-asm.")
          (add-after 'unpack 'chdir
            (lambda _ (chdir "cglib") #t)))))
     (inputs
-     `(("java-asm" ,java-asm)
-       ("java-junit" ,java-junit)))
+     (list java-asm java-junit))
     (home-page "https://github.com/cglib/cglib/")
     (synopsis "Java byte code generation library")
     (description "The byte code generation library CGLIB is a high level API
@@ -5589,8 +5579,7 @@ to generate and transform Java byte code.")
        #:source-dir "main/src/"
        #:test-dir "main/src/test/"))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (home-page "http://objenesis.org/")
     (synopsis "Bypass the constructor when creating an object")
     (description "Objenesis is a small Java library that serves one purpose:
@@ -5651,12 +5640,9 @@ constructor on object instantiation.")
                (delete-file "tests2/EasyMockPropertiesTest.java"))
              #t)))))
     (inputs
-     `(("java-asm" ,java-asm)
-       ("java-cglib" ,java-cglib)
-       ("java-objenesis" ,java-objenesis)))
+     (list java-asm java-cglib java-objenesis))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (home-page "https://easymock.org/")
     (synopsis "Java library providing mock objects for unit tests")
     (description "EasyMock is a Java library that provides an easy way to use
@@ -5715,10 +5701,7 @@ The jMock library
                (base32
                 "12b7l22g3nrjvf2dzcw3z03fpd2chrgp0d8xkvn8w55rwb57pax6"))))
     (inputs
-     `(("java-hamcrest-all" ,java-hamcrest-all)
-       ("java-asm" ,java-asm)
-       ("java-bsh" ,java-bsh)
-       ("java-junit" ,java-junit)))
+     (list java-hamcrest-all java-asm java-bsh java-junit))
     (native-inputs
      `(("cglib" ,java-cglib)))
     (arguments
@@ -5759,15 +5742,15 @@ The jMock library
                           (string-append "jmock-legacy/src/test/java/" file))
                #t))))))
     (inputs
-     `(("java-hamcrest-all" ,java-hamcrest-all)
-       ("java-objenesis" ,java-objenesis)
-       ("java-cglib" ,java-cglib)
-       ("java-jmock" ,java-jmock)
-       ("java-asm" ,java-asm)
-       ("java-bsh" ,java-bsh)
-       ("java-junit" ,java-junit)))
+     (list java-hamcrest-all
+           java-objenesis
+           java-cglib
+           java-jmock
+           java-asm
+           java-bsh
+           java-junit))
     (native-inputs
-     `(("java-jmock-junit4" ,java-jmock-junit4)))))
+     (list java-jmock-junit4))))
 
 (define-public java-hamcrest-all
   (package (inherit java-hamcrest-core)
@@ -5818,16 +5801,16 @@ The jMock library
                                          (not (string-suffix? "-sources.jar" name)))))))
                    #t)))))))
     (inputs
-     `(("java-junit" ,java-junit)
-       ("java-jmock" ,java-jmock-1)
-       ;; This is necessary because of what seems to be a race condition.
-       ;; This package would sometimes fail to build because hamcrest-core.jar
-       ;; could not be found, even though it is built as part of this package.
-       ;; Adding java-hamcrest-core appears to fix this problem.  See
-       ;; https://debbugs.gnu.org/31390 for more information.
-       ("java-hamcrest-core" ,java-hamcrest-core)
-       ("java-easymock" ,java-easymock)
-       ,@(package-inputs java-hamcrest-core)))))
+     (modify-inputs (package-inputs java-hamcrest-core)
+       (prepend java-junit
+                java-jmock-1
+                ;; This is necessary because of what seems to be a race condition.
+                ;; This package would sometimes fail to build because hamcrest-core.jar
+                ;; could not be found, even though it is built as part of this package.
+                ;; Adding java-hamcrest-core appears to fix this problem.  See
+                ;; https://debbugs.gnu.org/31390 for more information.
+                java-hamcrest-core
+                java-easymock)))))
 
 (define-public java-jopt-simple
   (package
@@ -5901,12 +5884,12 @@ overly clever.")
      `(#:build-target "jar"
        #:test-target "test"
        #:make-flags
-       (let ((hamcrest (assoc-ref %build-inputs "java-hamcrest-core"))
-             (junit    (assoc-ref %build-inputs "java-junit")))
-         (list (string-append "-Djunit.jar="
-                              (car (find-files junit "jar$")))
-               (string-append "-Dhamcrest.jar="
-                              (car (find-files hamcrest ".*.jar$")))))
+       ,#~(let ((hamcrest #$(this-package-native-input "java-hamcrest-core"))
+                (junit    #$(this-package-native-input "java-junit")))
+            (list (string-append "-Djunit.jar="
+                                 (car (find-files junit "jar$")))
+                  (string-append "-Dhamcrest.jar="
+                                 (car (find-files hamcrest ".*.jar$")))))
        #:phases
        (modify-phases %standard-phases
          ;; We want to build the jar in the build phase and run the tests
@@ -5915,14 +5898,12 @@ overly clever.")
            (lambda _
              (substitute* "build.xml"
                (("name=\"jar\" depends=\"test\"")
-                "name=\"jar\" depends=\"compile\""))
-             #t))
+                "name=\"jar\" depends=\"compile\""))))
          ;; There is no install target.
          (replace 'install
            (install-from-pom "pom.xml")))))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (home-page "https://commons.apache.org/math/")
     (synopsis "Apache Commons mathematics library")
     (description "Commons Math is a library of lightweight, self-contained
@@ -5963,11 +5944,9 @@ available in the Java programming language or Commons Lang.")
              ;; respectively.
              (delete-file-recursively "jmh-archetypes"))))))
     (propagated-inputs
-     `(("java-jopt-simple" ,java-jopt-simple-4)
-       ("java-commons-math3" ,java-commons-math3)))
+     (list java-jopt-simple-4 java-commons-math3))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (home-page "https://openjdk.java.net/projects/code-tools/jmh/")
     (synopsis "Benchmark harness for the JVM")
     (description "JMH is a Java harness for building, running, and analysing
@@ -5991,23 +5970,21 @@ targeting the JVM.")
     (arguments
      `(#:test-target "test"
        #:make-flags
-       (let ((hamcrest (assoc-ref %build-inputs "java-hamcrest-core"))
-             (junit    (assoc-ref %build-inputs "java-junit"))
-             (easymock (assoc-ref %build-inputs "java-easymock")))
-         (list (string-append "-Djunit.jar="
-                              (car (find-files junit "jar$")))
-               (string-append "-Dhamcrest.jar="
-                              (car (find-files hamcrest "jar$")))
-               (string-append "-Deasymock.jar=" easymock
-                              "/share/java/easymock.jar")))
+       ,#~(let ((hamcrest #$(this-package-native-input "java-hamcrest-core"))
+                (junit    #$(this-package-native-input "java-junit"))
+                (easymock #$(this-package-native-input "java-easymock")))
+            (list (string-append "-Djunit.jar="
+                                 (car (find-files junit "jar$")))
+                  (string-append "-Dhamcrest.jar="
+                                 (car (find-files hamcrest "jar$")))
+                  (string-append "-Deasymock.jar=" easymock
+                                 "/share/java/easymock.jar")))
        #:phases
        (modify-phases %standard-phases
          (replace 'install
            (install-jars "target")))))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)
-       ("java-easymock" ,java-easymock)))
+     (list java-junit java-hamcrest-core java-easymock))
     (home-page "https://commons.apache.org/collections/")
     (synopsis "Collections framework")
     (description "The Java Collections Framework is the recognised standard
@@ -6131,19 +6108,18 @@ setter and getter method.")
     (arguments
      `(#:test-target "test"
        #:make-flags
-       (list (string-append "-Djunit.jar="
-                            (car (find-files (assoc-ref %build-inputs "java-junit")
-                                             "jar$"))))
+       ,#~(list (string-append "-Djunit.jar="
+                               (car (find-files #$(this-package-native-input "java-junit")
+                                                "jar$"))))
        #:phases
        (modify-phases %standard-phases
          (add-after 'build 'build-javadoc ant-build-javadoc)
          (replace 'install (install-from-pom "pom.xml"))
          (add-after 'install 'install-doc (install-javadoc "target/apidocs")))))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (propagated-inputs
-     `(("apache-commons-parent-pom" ,apache-commons-parent-pom-39)))
+     (list apache-commons-parent-pom-39))
     (home-page "https://commons.apache.org/io/")
     (synopsis "Common useful IO related classes")
     (description "Commons-IO contains utility classes, stream implementations,
@@ -6166,9 +6142,9 @@ file filters and endian classes.")
     (arguments
      `(#:test-target "test"
        #:make-flags
-       (list (string-append "-Dmaven.junit.jar="
-                            (car (find-files (assoc-ref %build-inputs "java-junit")
-                                             "jar$"))))
+       ,#~(list (string-append "-Dmaven.junit.jar="
+                               (car (find-files #$(this-package-native-input "java-junit")
+                                                "jar$"))))
        #:phases
        (modify-phases %standard-phases
          (add-before 'build 'delete-network-tests
@@ -6181,7 +6157,7 @@ file filters and endian classes.")
          (delete 'check)
          (replace 'install (install-jars "target")))))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://commons.apache.org/proper/commons-exec/")
     (synopsis "Common program execution related classes")
     (description "Commons-Exec simplifies executing external processes.")
@@ -6202,11 +6178,11 @@ file filters and endian classes.")
     (arguments
      `(#:test-target "test"
        #:make-flags
-       (list (string-append "-Dmaven.junit.jar="
-                            (car (find-files (assoc-ref %build-inputs "java-junit")
-                                             "jar$")))
-             "-Dmaven.compiler.source=1.7"
-             "-Dmaven.compiler.target=1.7")
+       ,#~(list (string-append "-Dmaven.junit.jar="
+                               (car (find-files #$(this-package-native-input "java-junit")
+                                                "jar$")))
+                "-Dmaven.compiler.source=1.7"
+                "-Dmaven.compiler.target=1.7")
        #:phases
        (modify-phases %standard-phases
          (add-before 'build 'delete-network-tests
@@ -6226,8 +6202,7 @@ file filters and endian classes.")
          (delete 'check)
          (replace 'install (install-jars "target")))))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))))
+     (list java-junit java-hamcrest-core))))
 
 (define-public java-commons-lang
   (package
@@ -6259,7 +6234,7 @@ time/FastDateFormatTest.java"
          (replace 'install (install-jars "target"))
          (add-after 'install 'install-doc (install-javadoc "target/apidocs")))))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://commons.apache.org/lang/")
     (synopsis "Extension of the java.lang package")
     (description "The Commons Lang components contains a set of Java classes
@@ -6305,7 +6280,7 @@ included:
        (modify-phases %standard-phases
          (replace 'install (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("apache-commons-parent-pom" ,apache-commons-parent-pom-48)))
+     (list apache-commons-parent-pom-48))
     (home-page "https://commons.apache.org/lang/")
     (synopsis "Extension of the java.lang package")
     (description "The Commons Lang components contains a set of Java classes
@@ -6375,9 +6350,9 @@ in the @code{java.lang} package.  The following classes are included:
              #t))
          (replace 'install (install-jars "build")))))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (inputs
-     `(("java-commons-logging-minimal" ,java-commons-logging-minimal)))
+     (list java-commons-logging-minimal))
     (home-page "https://commons.apache.org/proper/commons-bsf")
     (synopsis "Bean Scripting Framework")
     (description "The Bean Scripting Framework (BSF) is a set of Java classes
@@ -6413,7 +6388,7 @@ these scripting language engines.")
        ("java-jdom" ,java-jdom)
        ("java-commons-beanutils" ,java-commons-beanutils)))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://commons.apache.org/jxpath/")
     (synopsis "Simple interpreter of an expression language called XPath.")
     (description "The org.apache.commons.jxpath package defines a simple
@@ -6440,12 +6415,9 @@ contexts, DOM etc, including mixtures thereof.")
        (list "**/PerformanceTest.java")))
     (build-system ant-build-system)
     (inputs
-     `(("java-cglib" ,java-cglib)))
+     (list java-cglib))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)
-       ("java-asm" ,java-asm)
-       ("java-objenesis" ,java-objenesis)))
+     (list java-junit java-hamcrest-core java-asm java-objenesis))
     (home-page "https://commons.apache.org/proper/commons-pool/")
     (synopsis "Object-pooling API in Java")
     (description "The commons-pool package provides an object-pooling API
@@ -6474,7 +6446,7 @@ creating new pool implementations.")
        ("java-commons-logging" ,java-commons-logging-minimal)
        ("java-jboss-transaction-api-spec" ,java-jboss-transaction-api-spec)))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (build-system ant-build-system)
     (home-page "https://commons.apache.org/proper/commons-dbcp/")
     (synopsis "Database Connection Pool for Java")
@@ -6516,12 +6488,10 @@ reduce that load.")
                (delete-file "admin/servlet/JCSAdminServlet.java"))
              #t)))))
     (propagated-inputs
-     `(("java-classpathx-servletapi" ,java-classpathx-servletapi)
-       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
-       ("java-commons-httpclient" ,java-commons-httpclient)
-       ("java-commons-dbcp" ,java-commons-dbcp)))
+     (list java-classpathx-servletapi java-commons-logging-minimal
+           java-commons-httpclient java-commons-dbcp))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://commons.apache.org/proper/commons-jcs/")
     (synopsis "Distributed caching system in Java")
     (description "JCS is a distributed caching system written in Java.  It
@@ -6639,9 +6609,9 @@ It provides packages in the @code{javax.annotations} namespace.")
              #t))
          (replace 'install (install-from-pom "guava/pom.xml")))))
     (inputs
-     `(("java-jsr305" ,java-jsr305)))
+     (list java-jsr305))
     (propagated-inputs
-     `(("java-guava-parent-pom" ,java-guava-parent-pom)))
+     (list java-guava-parent-pom))
     (home-page "https://github.com/google/guava")
     (synopsis "Google core libraries for Java")
     (description "Guava is a set of core libraries that includes new
@@ -6764,10 +6734,7 @@ used with any logging implementation at runtime.")
                  (("import org.mockito.cglib") "import net.sf.cglib")))
              #t)))))
     (inputs
-     `(("java-junit" ,java-junit)
-       ("java-objenesis" ,java-objenesis)
-       ("java-cglib" ,java-cglib)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-objenesis java-cglib java-hamcrest-core))
     (home-page "http://mockito.org")
     (synopsis "Mockito is a mock library for Java")
     (description "Mockito is a mocking library for Java which lets you write
@@ -6795,11 +6762,9 @@ it records all mock invocations, including methods arguments.")
          (add-after 'unpack 'chdir
            (lambda _ (chdir "httpcore") #t)))))
     (inputs
-     `(("java-commons-logging-minimal" ,java-commons-logging-minimal)
-       ("java-commons-lang3" ,java-commons-lang3)))
+     (list java-commons-logging-minimal java-commons-lang3))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-mockito" ,java-mockito-1)))
+     (list java-junit java-mockito-1))
     (home-page "https://hc.apache.org/httpcomponents-core-4.4.x/index.html")
     (synopsis "Low level HTTP transport components")
     (description "HttpCore is a set of low level HTTP transport components
@@ -6821,9 +6786,8 @@ This package provides the blocking I/O model library.")
          (add-after 'unpack 'chdir
            (lambda _ (chdir "httpcore-nio") #t)))))
     (inputs
-     `(("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
-       ("java-hamcrest-core" ,java-hamcrest-core)
-       ,@(package-inputs java-httpcomponents-httpcore)))
+     (modify-inputs (package-inputs java-httpcomponents-httpcore)
+       (prepend java-httpcomponents-httpcore java-hamcrest-core)))
     (description "HttpCore is a set of low level HTTP transport components
 that can be used to build custom client and server side HTTP services with a
 minimal footprint.  HttpCore supports two I/O models: blocking I/O model based
@@ -6843,10 +6807,9 @@ NIO.")))
          (add-after 'unpack 'chdir
            (lambda _ (chdir "httpcore-ab") #t)))))
     (inputs
-     `(("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
-       ("java-commons-cli" ,java-commons-cli)
-       ("java-hamcrest-core" ,java-hamcrest-core)
-       ,@(package-inputs java-httpcomponents-httpcore)))
+     (modify-inputs (package-inputs java-httpcomponents-httpcore)
+       (prepend java-httpcomponents-httpcore java-commons-cli
+                java-hamcrest-core)))
     (synopsis "Apache HttpCore benchmarking tool")
     (description "This package provides the HttpCore benchmarking tool.  It is
 an Apache AB clone based on HttpCore.")))
@@ -6871,12 +6834,12 @@ an Apache AB clone based on HttpCore.")))
          (add-after 'unpack 'chdir
            (lambda _ (chdir "httpclient") #t)))))
     (inputs
-     `(("java-commons-logging-minimal" ,java-commons-logging-minimal)
-       ("java-commons-codec" ,java-commons-codec)
-       ("java-hamcrest-core" ,java-hamcrest-core)
-       ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
-       ("java-mockito" ,java-mockito-1)
-       ("java-junit" ,java-junit)))
+     (list java-commons-logging-minimal
+           java-commons-codec
+           java-hamcrest-core
+           java-httpcomponents-httpcore
+           java-mockito-1
+           java-junit))
     (home-page "https://hc.apache.org/httpcomponents-client-ga/")
     (synopsis "HTTP client library for Java")
     (description "Although the @code{java.net} package provides basic
@@ -6897,10 +6860,8 @@ standards and recommendations.")
          (add-after 'unpack 'chdir
            (lambda _ (chdir "httpmime") #t)))))
     (inputs
-     `(("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
-       ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
-       ("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))))
+     (list java-httpcomponents-httpclient java-httpcomponents-httpcore
+           java-junit java-hamcrest-core))))
 
 (define-public java-commons-net
   (package
@@ -6921,8 +6882,7 @@ standards and recommendations.")
        #:tests? #f
        #:jar-name "commons-net.jar"))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (home-page "https://commons.apache.org/net/")
     (synopsis "Client library for many basic Internet protocols")
     (description "The Apache Commons Net library implements the client side of
@@ -6949,7 +6909,7 @@ fundamental protocol access, not higher-level abstractions.")
        (modify-phases %standard-phases
          (replace 'install (install-jars "dist")))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "http://www.jcraft.com/jsch/")
     (synopsis "Pure Java implementation of SSH2")
     (description "JSch is a pure Java implementation of SSH2.  JSch allows you
@@ -6992,11 +6952,9 @@ programs.")
              #t))
          (replace 'install (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("java-xz" ,java-xz)
-       ("apache-commons-parent-pom" ,apache-commons-parent-pom-41)))
+     (list java-xz apache-commons-parent-pom-41))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-mockito" ,java-mockito-1)))
+     (list java-junit java-mockito-1))
     (home-page "https://commons.apache.org/proper/commons-compress/")
     (synopsis "Java library for working with compressed files")
     (description "The Apache Commons Compress library defines an API for
@@ -7085,7 +7043,7 @@ components.")
      `(#:tests? #f ; no tests
        #:jar-name "osgi-core.jar"))
     (inputs
-     `(("java-osgi-annotation" ,java-osgi-annotation)))
+     (list java-osgi-annotation))
     (home-page "https://www.osgi.org")
     (synopsis "Core module of OSGi framework")
     (description
@@ -7112,8 +7070,7 @@ the OSGi Core module.")
      `(#:tests? #f ; no tests
        #:jar-name "osgi-service-event.jar"))
     (inputs
-     `(("java-osgi-annotation" ,java-osgi-annotation)
-       ("java-osgi-core" ,java-osgi-core)))
+     (list java-osgi-annotation java-osgi-core))
     (home-page "https://www.osgi.org")
     (synopsis "OSGi service event module")
     (description
@@ -7140,7 +7097,7 @@ the OSGi @code{org.osgi.service.event} module.")
      `(#:tests? #f ; no tests included
        #:jar-name "eclipse-equinox-osgi.jar"))
     (inputs
-     `(("java-osgi-annotation" ,java-osgi-annotation)))
+     (list java-osgi-annotation))
     (home-page "http://www.eclipse.org/equinox/")
     (synopsis "Eclipse Equinox OSGi framework")
     (description "This package provides an implementation of the OSGi Core
@@ -7165,7 +7122,7 @@ specification.")
      `(#:tests? #f ; no tests included
        #:jar-name "eclipse-equinox-common.jar"))
     (inputs
-     `(("java-eclipse-osgi" ,java-eclipse-osgi)))
+     (list java-eclipse-osgi))
     (home-page "http://www.eclipse.org/equinox/")
     (synopsis "Common Eclipse runtime")
     (description "This package provides the common Eclipse runtime.")
@@ -7189,8 +7146,7 @@ specification.")
      `(#:tests? #f ; no tests included
        #:jar-name "eclipse-core-jobs.jar"))
     (inputs
-     `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common)
-       ("java-eclipse-osgi" ,java-eclipse-osgi)))
+     (list java-eclipse-equinox-common java-eclipse-osgi))
     (home-page "http://www.eclipse.org/equinox/")
     (synopsis "Eclipse jobs mechanism")
     (description "This package provides the Eclipse jobs mechanism.")
@@ -7214,9 +7170,8 @@ specification.")
      `(#:tests? #f ; no tests included
        #:jar-name "eclipse-equinox-registry.jar"))
     (inputs
-     `(("java-eclipse-core-jobs" ,java-eclipse-core-jobs)
-       ("java-eclipse-equinox-common" ,java-eclipse-equinox-common)
-       ("java-eclipse-osgi" ,java-eclipse-osgi)))
+     (list java-eclipse-core-jobs java-eclipse-equinox-common
+           java-eclipse-osgi))
     (home-page "http://www.eclipse.org/equinox/")
     (synopsis "Eclipse extension registry support")
     (description "This package provides support for the Eclipse extension
@@ -7241,10 +7196,8 @@ registry.")
      `(#:tests? #f ; no tests included
        #:jar-name "eclipse-equinox-app.jar"))
     (inputs
-     `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common)
-       ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry)
-       ("java-eclipse-osgi" ,java-eclipse-osgi)
-       ("java-osgi-service-event" ,java-osgi-service-event)))
+     (list java-eclipse-equinox-common java-eclipse-equinox-registry
+           java-eclipse-osgi java-osgi-service-event))
     (home-page "http://www.eclipse.org/equinox/")
     (synopsis "Equinox application container")
     (description "This package provides the Equinox application container for
@@ -7269,9 +7222,8 @@ Eclipse.")
      `(#:tests? #f ; no tests included
        #:jar-name "eclipse-equinox-preferences.jar"))
     (inputs
-     `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common)
-       ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry)
-       ("java-eclipse-osgi" ,java-eclipse-osgi)))
+     (list java-eclipse-equinox-common java-eclipse-equinox-registry
+           java-eclipse-osgi))
     (home-page "http://www.eclipse.org/equinox/")
     (synopsis "Eclipse preferences mechanism")
     (description "This package provides the Eclipse preferences mechanism with
@@ -7296,10 +7248,8 @@ the module @code{org.eclipse.equinox.preferences}.")
      `(#:tests? #f ; no tests included
        #:jar-name "eclipse-core-contenttype.jar"))
     (inputs
-     `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common)
-       ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences)
-       ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry)
-       ("java-eclipse-osgi" ,java-eclipse-osgi)))
+     (list java-eclipse-equinox-common java-eclipse-equinox-preferences
+           java-eclipse-equinox-registry java-eclipse-osgi))
     (home-page "http://www.eclipse.org/")
     (synopsis "Eclipse content mechanism")
     (description "This package provides the Eclipse content mechanism in the
@@ -7324,13 +7274,13 @@ the module @code{org.eclipse.equinox.preferences}.")
      `(#:tests? #f ; no tests included
        #:jar-name "eclipse-core-runtime.jar"))
     (inputs
-     `(("java-eclipse-core-contenttype" ,java-eclipse-core-contenttype)
-       ("java-eclipse-core-jobs" ,java-eclipse-core-jobs)
-       ("java-eclipse-equinox-app" ,java-eclipse-equinox-app)
-       ("java-eclipse-equinox-common" ,java-eclipse-equinox-common)
-       ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry)
-       ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences)
-       ("java-eclipse-osgi" ,java-eclipse-osgi)))
+     (list java-eclipse-core-contenttype
+           java-eclipse-core-jobs
+           java-eclipse-equinox-app
+           java-eclipse-equinox-common
+           java-eclipse-equinox-registry
+           java-eclipse-equinox-preferences
+           java-eclipse-osgi))
     (home-page "https://www.eclipse.org/")
     (synopsis "Eclipse core runtime")
     (description "This package provides the Eclipse core runtime with the
@@ -7355,9 +7305,8 @@ module @code{org.eclipse.core.runtime}.")
      `(#:tests? #f ; no tests included
        #:jar-name "eclipse-core-filesystem.jar"))
     (inputs
-     `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common)
-       ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry)
-       ("java-eclipse-osgi" ,java-eclipse-osgi)))
+     (list java-eclipse-equinox-common java-eclipse-equinox-registry
+           java-eclipse-osgi))
     (home-page "https://www.eclipse.org/")
     (synopsis "Eclipse core file system")
     (description "This package provides the Eclipse core file system with the
@@ -7382,11 +7331,9 @@ module @code{org.eclipse.core.filesystem}.")
      `(#:tests? #f ; no tests included
        #:jar-name "eclipse-core-expressions.jar"))
     (inputs
-     `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common)
-       ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry)
-       ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences)
-       ("java-eclipse-core-runtime" ,java-eclipse-core-runtime)
-       ("java-eclipse-osgi" ,java-eclipse-osgi)))
+     (list java-eclipse-equinox-common java-eclipse-equinox-registry
+           java-eclipse-equinox-preferences java-eclipse-core-runtime
+           java-eclipse-osgi))
     (home-page "https://www.eclipse.org/")
     (synopsis "Eclipse core expression language")
     (description "This package provides the Eclipse core expression language
@@ -7411,11 +7358,9 @@ with the @code{org.eclipse.core.expressions} module.")
      `(#:tests? #f ; no tests included
        #:jar-name "eclipse-core-variables.jar"))
     (inputs
-     `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common)
-       ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry)
-       ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences)
-       ("java-eclipse-core-runtime" ,java-eclipse-core-runtime)
-       ("java-eclipse-osgi" ,java-eclipse-osgi)))
+     (list java-eclipse-equinox-common java-eclipse-equinox-registry
+           java-eclipse-equinox-preferences java-eclipse-core-runtime
+           java-eclipse-osgi))
     (home-page "https://www.eclipse.org/platform")
     (synopsis "Eclipse core variables")
     (description "This package provides the Eclipse core variables module
@@ -7440,14 +7385,14 @@ with the @code{org.eclipse.core.expressions} module.")
      `(#:tests? #f ; no tests included
        #:jar-name "eclipse-ant-core.jar"))
     (inputs
-     `(("java-eclipse-equinox-app" ,java-eclipse-equinox-app)
-       ("java-eclipse-equinox-common" ,java-eclipse-equinox-common)
-       ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry)
-       ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences)
-       ("java-eclipse-core-contenttype" ,java-eclipse-core-contenttype)
-       ("java-eclipse-core-runtime" ,java-eclipse-core-runtime)
-       ("java-eclipse-core-variables" ,java-eclipse-core-variables)
-       ("java-eclipse-osgi" ,java-eclipse-osgi)))
+     (list java-eclipse-equinox-app
+           java-eclipse-equinox-common
+           java-eclipse-equinox-registry
+           java-eclipse-equinox-preferences
+           java-eclipse-core-contenttype
+           java-eclipse-core-runtime
+           java-eclipse-core-variables
+           java-eclipse-osgi))
     (home-page "https://www.eclipse.org/platform")
     (synopsis "Ant build tool core libraries")
     (description "This package provides the ant build tool core libraries with
@@ -7472,16 +7417,16 @@ the module @code{org.eclipse.ant.core}.")
      `(#:tests? #f ; no tests included
        #:jar-name "eclipse-core-resources.jar"))
     (inputs
-     `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common)
-       ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences)
-       ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry)
-       ("java-eclipse-core-contenttype" ,java-eclipse-core-contenttype)
-       ("java-eclipse-core-expressions" ,java-eclipse-core-expressions)
-       ("java-eclipse-core-filesystem" ,java-eclipse-core-filesystem)
-       ("java-eclipse-core-jobs" ,java-eclipse-core-jobs)
-       ("java-eclipse-core-runtime" ,java-eclipse-core-runtime)
-       ("java-eclipse-ant-core" ,java-eclipse-ant-core)
-       ("java-eclipse-osgi" ,java-eclipse-osgi)))
+     (list java-eclipse-equinox-common
+           java-eclipse-equinox-preferences
+           java-eclipse-equinox-registry
+           java-eclipse-core-contenttype
+           java-eclipse-core-expressions
+           java-eclipse-core-filesystem
+           java-eclipse-core-jobs
+           java-eclipse-core-runtime
+           java-eclipse-ant-core
+           java-eclipse-osgi))
     (home-page "https://www.eclipse.org/")
     (synopsis "Eclipse core resource management")
     (description "This package provides the Eclipse core resource management
@@ -7506,10 +7451,8 @@ module @code{org.eclipse.core.resources}.")
      `(#:tests? #f ; no tests included
        #:jar-name "eclipse-compare-core.jar"))
     (inputs
-     `(("java-eclipse-core-runtime" ,java-eclipse-core-runtime)
-       ("java-eclipse-equinox-common" ,java-eclipse-equinox-common)
-       ("java-eclipse-osgi" ,java-eclipse-osgi)
-       ("java-icu4j" ,java-icu4j)))
+     (list java-eclipse-core-runtime java-eclipse-equinox-common
+           java-eclipse-osgi java-icu4j))
     (home-page "https://www.eclipse.org/")
     (synopsis "Eclipse core compare support")
     (description "This package provides the Eclipse core compare support
@@ -7534,16 +7477,16 @@ module @code{org.eclipse.compare.core}.")
      `(#:tests? #f ; no tests included
        #:jar-name "eclipse-team-core.jar"))
     (inputs
-     `(("java-eclipse-compare-core" ,java-eclipse-compare-core)
-       ("java-eclipse-core-contenttype" ,java-eclipse-core-contenttype)
-       ("java-eclipse-core-filesystem" ,java-eclipse-core-filesystem)
-       ("java-eclipse-core-jobs" ,java-eclipse-core-jobs)
-       ("java-eclipse-core-resources" ,java-eclipse-core-resources)
-       ("java-eclipse-core-runtime" ,java-eclipse-core-runtime)
-       ("java-eclipse-equinox-common" ,java-eclipse-equinox-common)
-       ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry)
-       ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences)
-       ("java-eclipse-osgi" ,java-eclipse-osgi)))
+     (list java-eclipse-compare-core
+           java-eclipse-core-contenttype
+           java-eclipse-core-filesystem
+           java-eclipse-core-jobs
+           java-eclipse-core-resources
+           java-eclipse-core-runtime
+           java-eclipse-equinox-common
+           java-eclipse-equinox-registry
+           java-eclipse-equinox-preferences
+           java-eclipse-osgi))
     (home-page "https://www.eclipse.org/platform")
     (synopsis "Eclipse team support core")
     (description "This package provides the Eclipse team support core module
@@ -7568,7 +7511,7 @@ module @code{org.eclipse.compare.core}.")
      `(#:tests? #f ; no tests included
        #:jar-name "eclipse-core-commands.jar"))
     (inputs
-     `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common)))
+     (list java-eclipse-equinox-common))
     (home-page "https://www.eclipse.org/platform")
     (synopsis "Eclipse core commands")
     (description "This package provides Eclipse core commands in the module
@@ -7620,9 +7563,8 @@ module @code{org.eclipse.compare.core}.")
                 "Positions.put(category, new ArrayList<Position>());"))
              #t)))))
     (inputs
-     `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common)
-       ("java-eclipse-core-commands" ,java-eclipse-core-commands)
-       ("java-icu4j" ,java-icu4j)))
+     (list java-eclipse-equinox-common java-eclipse-core-commands
+           java-icu4j))
     (home-page "http://www.eclipse.org/platform")
     (synopsis "Eclipse text library")
     (description "Platform Text is part of the Platform UI project and
@@ -7665,17 +7607,17 @@ and contributes the Eclipse default text editor.")
                          (find-files "." ".*.(props|properties|rsc)")))
              #t)))))
     (inputs
-     `(("java-eclipse-core-contenttype" ,java-eclipse-core-contenttype)
-       ("java-eclipse-core-filesystem" ,java-eclipse-core-filesystem)
-       ("java-eclipse-core-jobs" ,java-eclipse-core-jobs)
-       ("java-eclipse-core-resources" ,java-eclipse-core-resources)
-       ("java-eclipse-core-runtime" ,java-eclipse-core-runtime)
-       ("java-eclipse-equinox-app" ,java-eclipse-equinox-app)
-       ("java-eclipse-equinox-common" ,java-eclipse-equinox-common)
-       ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences)
-       ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry)
-       ("java-eclipse-osgi" ,java-eclipse-osgi)
-       ("java-eclipse-text" ,java-eclipse-text)))
+     (list java-eclipse-core-contenttype
+           java-eclipse-core-filesystem
+           java-eclipse-core-jobs
+           java-eclipse-core-resources
+           java-eclipse-core-runtime
+           java-eclipse-equinox-app
+           java-eclipse-equinox-common
+           java-eclipse-equinox-preferences
+           java-eclipse-equinox-registry
+           java-eclipse-osgi
+           java-eclipse-text))
     (home-page "https://www.eclipse.org/jdt")
     (synopsis "Java development tools core libraries")
     (description "This package provides the core libraries of the Eclipse Java
@@ -7701,7 +7643,7 @@ development tools.")
        #:jar-name "eclipse-jdt-compiler-apt.jar"
        #:jdk ,openjdk11))
     (inputs
-     `(("java-eclipse-jdt-core" ,java-eclipse-jdt-core)))
+     (list java-eclipse-jdt-core))
     (home-page "https://www.eclipse.org/jdt/apt/")
     (synopsis "Annotation processing tool")
     (description "APT stands for Annotation Processing Tool.  APT provides a
@@ -7747,7 +7689,7 @@ definition intended to be inherited by other packages.")
              (copy-recursively "org.eclipse.lsp4j.debug/src/main/xtend-gen"
                                "org.eclipse.lsp4j.debug/src/main/java"))))))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (inputs
      `(("java-gson" ,java-gson-2.8.6)
        ("java-eclipse-lsp4j-generaor" ,java-eclipse-lsp4j-generator)
@@ -7769,7 +7711,7 @@ LSP4J Java bindings for the Debug Server Protocol.")))
        #:tests? #f; no tests
        #:source-dir "org.eclipse.lsp4j.generator/src/main/java"))
     (inputs
-     `(("java-eclipse-lsp4j-jsonrpc" ,java-eclipse-lsp4j-jsonrpc)))
+     (list java-eclipse-lsp4j-jsonrpc))
     (synopsis "Eclipse LSP4J Generator")
     (description "Eclipse LSP4J provides Java bindings for the Language
 Server Protocol and the Debug Adapter Protocol.  This package contains its
@@ -7785,9 +7727,9 @@ LSP4J code generator for Language Server Protocol classes.")))
        #:source-dir "org.eclipse.lsp4j.jsonrpc/src/main/java"
        #:test-dir "org.eclipse.lsp4j.jsonrpc/src/test"))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (inputs
-     `(("java-gson" ,java-gson-2.8.6)))
+     (list java-gson-2.8.6))
     (synopsis "Java JSON-RPC implementation")
     (description "Eclipse LSP4J provides Java bindings for the Language
 Server Protocol and the Debug Adapter Protocol.  This package contains its
@@ -7803,10 +7745,9 @@ JSON-RPC implementation.")))
        #:source-dir "org.eclipse.lsp4j.jsonrpc.debug/src/main/java"
        #:test-dir "org.eclipse.lsp4j.jsonrpc.debug/src/test"))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (inputs
-     `(("java-eclipse-lsp4j-jsonrpc" ,java-eclipse-lsp4j-jsonrpc)
-       ("java-gson" ,java-gson-2.8.6)))
+     (list java-eclipse-lsp4j-jsonrpc java-gson-2.8.6))
     (synopsis "Java JSON-RPC implementation (debug protocol)")
     (description "Eclipse LSP4J provides Java bindings for the Language
 Server Protocol and the Debug Adapter Protocol.  This package contains its
@@ -7833,9 +7774,9 @@ JSON-RPC implementation's debug protocol.")))
        #:source-dir "org.eclipse.xtext.xbase.lib/src"
        #:test-dir "org.eclipse.xtext.xbase.lib.tests/src"))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (inputs
-     `(("java-guava" ,java-guava)))
+     (list java-guava))
     (home-page "https://www.eclipse.org/Xtext/")
     (synopsis "Eclipse Xbase Runtime Library")
     (description "This package contains runtime libraries for Xbase languages
@@ -7871,21 +7812,20 @@ JavaMail API.")
 (define-public java-log4j-api
   (package
     (name "java-log4j-api")
-    (version "2.4.1")
+    (version "2.16.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://apache/logging/log4j/" version
                                   "/apache-log4j-" version "-src.tar.gz"))
               (sha256
                (base32
-                "0j5p9gik0jysh37nlrckqbky12isy95cpwg2gv5fas1rcdqbraxd"))))
+                "1943lsqf3rywh11h6g5apyqm25am42cvrxpfc8sb9k8aqhlfvl0a"))))
     (build-system ant-build-system)
     (arguments
      `(#:tests? #f ; tests require unpackaged software
        #:jar-name "log4j-api.jar"
        #:make-flags
-       (list (string-append "-Ddist.dir=" (assoc-ref %outputs "out")
-                            "/share/java"))
+       ,#~(list (string-append "-Ddist.dir=" #$output "/share/java"))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'enter-dir
@@ -7897,9 +7837,8 @@ JavaMail API.")
          (add-after 'enter-dir 'delete-tests
            (lambda _ (delete-file-recursively "src/test") #t)))))
     (inputs
-     `(("java-osgi-core" ,java-osgi-core)
-       ("java-hamcrest-core" ,java-hamcrest-core)
-       ("java-junit" ,java-junit)))
+     (list java-osgi-core java-hamcrest-core java-junit))
+    (properties '((cpe-name . "log4j")))
     (home-page "https://logging.apache.org/log4j/2.x/")
     (synopsis "API module of the Log4j logging framework for Java")
     (description
@@ -7917,7 +7856,11 @@ Java.")
        ("java-log4j-api" ,java-log4j-api)
        ("java-mail" ,java-mail)
        ("java-jboss-jms-api-spec" ,java-jboss-jms-api-spec)
+       ("java-conversant-disruptor" ,java-conversant-disruptor)
        ("java-lmax-disruptor" ,java-lmax-disruptor)
+       ("java-jctools-core" ,java-jctools-core-1)
+       ("java-stax2-api" ,java-stax2-api)
+       ("java-jansi" ,java-jansi)
        ("java-kafka" ,java-kafka-clients)
        ("java-datanucleus-javax-persistence" ,java-datanucleus-javax-persistence)
        ("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
@@ -7941,8 +7884,7 @@ Java.")
        #:jar-name "log4j-core.jar"
        #:jdk ,icedtea-8
        #:make-flags
-       (list (string-append "-Ddist.dir=" (assoc-ref %outputs "out")
-                            "/share/java"))
+       ,#~(list (string-append "-Ddist.dir=" #$output "/share/java"))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'enter-dir
@@ -7965,6 +7907,7 @@ logging framework for Java.")))
     (inputs
      `(("log4j-api" ,java-log4j-api)
        ("log4j-core" ,java-log4j-core)
+       ("java-jboss-jms-api-spec" ,java-jboss-jms-api-spec)
        ("osgi-core" ,java-osgi-core)
        ("eclipse-osgi" ,java-eclipse-osgi)
        ("java-lmax-disruptor" ,java-lmax-disruptor)))))
@@ -7989,8 +7932,7 @@ logging framework for Java.")))
          (replace 'install
            (install-from-pom "pom.xml")))))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (home-page "https://commons.apache.org/cli/")
     (synopsis "Command line arguments and options parsing library")
     (description "The Apache Commons CLI library provides an API for parsing
@@ -8047,10 +7989,9 @@ This is a part of the Apache Commons Project.")
                 "return;"))))
          (replace 'install (install-from-pom "pom.xml")))))
     (native-inputs
-     `(("java-commons-lang3" ,java-commons-lang3)
-       ("java-junit" ,java-junit)))
+     (list java-commons-lang3 java-junit))
     (propagated-inputs
-      `(("apache-commons-parent-pom" ,apache-commons-parent-pom-50)))
+      (list apache-commons-parent-pom-50))
     (home-page "https://commons.apache.org/codec/")
     (synopsis "Common encoders and decoders such as Base64, Hex, Phonetic and URLs")
     (description "The codec package contains simple encoder and decoders for
@@ -8081,7 +8022,7 @@ This is a part of the Apache Commons Project.")
          (replace 'install (install-jars "dist"))
          (add-after 'install 'install-doc (install-javadoc "dist/docs/api")))))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://commons.apache.org/daemon/")
     (synopsis "Library to launch Java applications as daemons")
     (description "The Daemon package from Apache Commons can be used to
@@ -8111,8 +8052,7 @@ This is a part of the Apache Commons Project.")
     (build-system ant-build-system)
     (arguments `(#:jar-name "javaewah.jar"))
     (inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (home-page "https://github.com/lemire/javaewah")
     (synopsis "Compressed alternative to the Java @code{BitSet} class")
     (description "This is a word-aligned compressed variant of the Java
@@ -8170,10 +8110,9 @@ more efficient storage-wise than an uncompressed bitmap (as implemented in the
          (replace 'install
            (install-from-pom "slf4j-api/pom.xml")))))
     (propagated-inputs
-     `(("java-slf4j-parent" ,java-slf4j-parent)))
+     (list java-slf4j-parent))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (home-page "https://www.slf4j.org/")
     (synopsis "Simple logging facade for Java")
     (description "The Simple Logging Facade for Java (SLF4J) serves as a
@@ -8223,10 +8162,9 @@ time.")
          (replace 'install
            (install-from-pom "slf4j-simple/pom.xml")))))
     (propagated-inputs
-     `(("java-slf4j-api" ,java-slf4j-api)))
+     (list java-slf4j-api))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (home-page "https://www.slf4j.org/")
     (synopsis "Simple implementation of simple logging facade for Java")
     (description "SLF4J binding for the Simple implementation, which outputs
@@ -8720,9 +8658,9 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;"))
        #:source-dir "org.abego.treelayout/src/main/java"
        #:test-dir "org.abego.treelayout/src/test"))
     (inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (native-inputs
-     `(("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-hamcrest-core))
     (home-page "http://treelayout.sourceforge.net")
     (synopsis "Tree Layout Algorithm in Java")
     (description "TreeLayout creates tree layouts for arbitrary trees.  It is
@@ -8912,14 +8850,14 @@ sources by ANTLR.")
                (invoke "antlr3" "SourceGenTriggers.g"))
              #t)))))
     (inputs
-     `(("antlr3" ,antlr3)
-       ("java-antlr4-runtime" ,java-antlr4-runtime)
-       ("java-icu4j" ,java-icu4j)
-       ("java-jsonp-api" ,java-jsonp-api)
-       ("java-stringtemplate" ,java-stringtemplate)
-       ("java-treelayout" ,java-treelayout)))
+     (list antlr3
+           java-antlr4-runtime
+           java-icu4j
+           java-jsonp-api
+           java-stringtemplate
+           java-treelayout))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (synopsis "Parser and lexer generator in Java")
     (description "ANTLR (ANother Tool for Language Recognition) is a powerful
 parser generator for reading, processing, executing, or translating structured
@@ -8949,7 +8887,7 @@ parse trees.")))
                (chmod "build.xml" #o644)
                #t))))))
     (inputs
-     `(("java-treelayout" ,java-treelayout)))))
+     (list java-treelayout))))
 
 (define-public antlr4-4.1
   (package
@@ -9128,7 +9066,7 @@ the runtime library of ANTLR.")))
                 "dir=\"${test.home}\""))
              #t)))))
     (native-inputs
-     `(("java-junit" ,java-junit)))))
+     (list java-junit))))
 
 (define-public java-microemulator-cldc
   (package
@@ -9541,7 +9479,7 @@ and service platform for the Java programming language.")
      `(#:jar-name "osgi-service-log.jar"
        #:tests? #f)); no tests
     (inputs
-     `(("java-osgi-framework" ,java-osgi-framework)))
+     (list java-osgi-framework))
     (home-page "https://www.osgi.org")
     (synopsis "Provides methods for bundles to write messages to the log")
     (description
@@ -10192,8 +10130,7 @@ Processor.  It also includes the default implementation of handler types
              (copy-recursively "src/main/resources" "build/classes")
              #t)))))
     (inputs
-     `(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
-       ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)))
+     (list java-fasterxml-jackson-annotations java-fasterxml-jackson-core))
     (home-page "https://github.com/FasterXML/jackson-databind")
     (synopsis "Data-binding functionality and tree-model for the Jackson Data Processor")
     (description "This package contains the general-purpose data-binding
@@ -10241,11 +10178,10 @@ configuration.")
              (copy-recursively "jaxb/src/main/resources" "build/classes")
              #t)))))
     (inputs
-     `(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
-       ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)
-       ("java-fasterxml-jackson-databind" ,java-fasterxml-jackson-databind)))
+     (list java-fasterxml-jackson-annotations java-fasterxml-jackson-core
+           java-fasterxml-jackson-databind))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://github.com/FasterXML/jackson-modules-base")
     (synopsis "Jaxb annotations jackson module")
     (description "This package is the jaxb annotations module for jackson.")
@@ -10286,13 +10222,10 @@ configuration.")
                  (("@projectartifactid@") "jackson-module-mrbean")))
              #t)))))
     (inputs
-     `(("java-asm" ,java-asm)
-       ("java-fasterxml-jackson-annotations"
-        ,java-fasterxml-jackson-annotations)
-       ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)
-       ("java-fasterxml-jackson-databind" ,java-fasterxml-jackson-databind)))
+     (list java-asm java-fasterxml-jackson-annotations
+           java-fasterxml-jackson-core java-fasterxml-jackson-databind))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://github.com/FasterXML/jackson-modules-base")
     (synopsis "POJO type materialization for Java")
     (description "This package implements POJO type materialization.
@@ -10356,10 +10289,8 @@ of deserialization.")
                  (("@projectartifactid@") "jackson-dataformat-yaml")))
              #t)))))
     (inputs
-     `(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
-       ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)
-       ("java-fasterxml-jackson-databind" ,java-fasterxml-jackson-databind)
-       ("java-snakeyaml" ,java-snakeyaml)))
+     (list java-fasterxml-jackson-annotations java-fasterxml-jackson-core
+           java-fasterxml-jackson-databind java-snakeyaml))
     (native-inputs
      `(("junit" ,java-junit)
        ("hamcrest" ,java-hamcrest-core)
@@ -10588,9 +10519,9 @@ the subsequent value resolution at any given level.")
              #t))
          (replace 'install (install-jars "dist")))))
     (inputs
-     `(("java-asm" ,java-asm)))
+     (list java-asm))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://github.com/nhatminhle/cofoja")
     (synopsis "Contracts for Java")
     (description "Contracts for Java, or Cofoja for short, is a contract
@@ -10703,12 +10634,12 @@ the dependency is said to be unsatisfied, and the application is broken.")
          (replace 'install
            (install-from-pom "core/pom.xml")))))
     (propagated-inputs
-     `(("java-aopalliance" ,java-aopalliance)
-       ("java-asm" ,java-asm)
-       ("java-cglib" ,java-cglib)
-       ("java-guava" ,java-guava)
-       ("java-javax-inject" ,java-javax-inject)
-       ("java-guice-parent-pom" ,java-guice-parent-pom)))
+     (list java-aopalliance
+           java-asm
+           java-cglib
+           java-guava
+           java-javax-inject
+           java-guice-parent-pom))
     (home-page "https://github.com/google/guice")
     (synopsis "Lightweight dependency injection framework")
     (description "Guice is a lightweight dependency injection framework for
@@ -10917,11 +10848,9 @@ annotations.")
          (replace 'install
            (install-from-pom "pom.xml")))))
     (inputs
-     `(("java-classpathx-servletapi" ,java-classpathx-servletapi)
-       ("java-commons-bsf" ,java-commons-bsf)))
+     (list java-classpathx-servletapi java-commons-bsf))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("javacc" ,javacc-3)))
+     (list java-junit javacc-3))
     (home-page "http://beanshell.org/")
     (synopsis "Lightweight Scripting for Java")
     (description "BeanShell is a small, free, embeddable Java source
@@ -11006,15 +10935,15 @@ those in Perl and JavaScript.")
          "**/MessageFormatter_format_Test.java"
          "**/internal/*/*_assert*_Test.java")))
     (inputs
-     `(("java-fest-util" ,java-fest-util)))
+     (list java-fest-util))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-fest-test" ,java-fest-test)
-       ("java-hamcrest-core" ,java-hamcrest-core)
-       ("java-mockito" ,java-mockito-1)
-       ("java-cglib" ,java-cglib)
-       ("java-objenesis" ,java-objenesis)
-       ("java-asm" ,java-asm)))
+     (list java-junit
+           java-fest-test
+           java-hamcrest-core
+           java-mockito-1
+           java-cglib
+           java-objenesis
+           java-asm))
     (home-page "https://github.com/alexruiz/fest-assert-2.x")
     (synopsis "FEST fluent assertions")
     (description "FEST-Assert provides a fluent interface for assertions.")
@@ -11138,9 +11067,7 @@ to use.")
                        "org.testng.TestNG" "-testclass"
                        "build/test-classes/com/neilalexander/jnacl/NaClTest.class"))))))
       (native-inputs
-       `(("java-testng" ,java-testng)
-         ("java-fest-util" ,java-fest-util)
-         ("java-fest-assert" ,java-fest-assert)))
+       (list java-testng java-fest-util java-fest-assert))
       (home-page "https://github.com/neilalexander/jnacl")
       (synopsis "Java implementation of NaCl")
       (description "Pure Java implementation of the NaCl: Networking and
@@ -11244,11 +11171,9 @@ configuration and string construction.")
                (invoke "java" "javacc" "Parser.jj"))
              #t)))))
     (inputs
-     `(("java-commons-logging-minimal" ,java-commons-logging-minimal)))
+     (list java-commons-logging-minimal))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)
-       ("javacc" ,javacc-4)))
+     (list java-junit java-hamcrest-core javacc-4))
     (home-page "https://commons.apache.org/proper/commons-jexl/")
     (synopsis "Java Expression Language ")
     (description "JEXL is a library intended to facilitate the implementation
@@ -11334,7 +11259,7 @@ algorithms and xxHash hashing algorithm.")
          (replace 'install
            (install-jars "build/artifacts/jdk1.5/jars")))))
     (inputs
-     `(("java-javax-mail" ,java-javax-mail)))
+     (list java-javax-mail))
     (native-inputs
      `(("unzip" ,unzip)
        ("junit" ,java-junit)
@@ -11349,15 +11274,16 @@ programming language.")
 (define-public java-lmax-disruptor
   (package
     (name "java-lmax-disruptor")
-    (version "3.3.7")
+    (version "3.4.4")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/LMAX-Exchange/disruptor/"
-                                  "archive/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/LMAX-Exchange/disruptor")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "17da2gwj5abnlsfgn2xqjk5lgzbg4vkb0hdv2dvc8r2fx4bi7w3g"))))
+                "02c5kp3n8a73dq9ay7ar53s1k3x61z9yzc5ikqb03m6snr1wpfqn"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "java-lmax-disruptor.jar"
@@ -11381,6 +11307,67 @@ for high performance inter-thread communication that avoids the need for
 message queues or resource locking.")
     (license license:asl2.0)))
 
+(define-public java-conversant-disruptor
+  (package
+    (name "java-conversant-disruptor")
+    (version "1.2.19")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/conversant/disruptor")
+                     (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0gx1dm7sfg7pa05cs4qby10gfcplai5b5lf1f7ik1a76dh3vhl0g"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "java-conversant-disruptor.jar"
+       #:source-dir "src/main/java"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'copy-resources
+           (lambda _
+            (copy-recursively "src/main/resources" "build/classes")))
+         (add-before 'build 'remove-module
+           (lambda _
+             (delete-file "src/main/java/module-info.java"))))))
+    (native-inputs
+     (list java-junit))
+    (home-page "https://github.com/conversant/disruptor")
+    (synopsis "High performance intra-thread communication")
+    (description "Conversant Disruptor is the highest performing intra-thread
+transfer mechanism available in Java.  Conversant Disruptor is an implementation
+of this type of ring buffer that has almost no overhead and that exploits a
+particularly simple design.")
+    (license license:asl2.0)))
+
+(define-public java-jctools-core-1
+  (package
+    (name "java-jctools-core")
+    (version "1.2.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/JCTools/JCTools")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "105my29nwd4djvdllmq8s3jdzbyplbkxzwmddxiiilb4yqr1pghb"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "java-jctools-core.jar"
+       #:source-dir "jctools-core/src/main/java"
+       #:test-dir "jctools-core/src/test"))
+    (native-inputs
+     (list java-junit java-hamcrest-all))
+    (home-page "https://github.com/JCTools/JCTools")
+    (synopsis "Concurrency tools for Java")
+    (description "This library implements concurrent data structures that are
+not natively available in Java.")
+    (license license:asl2.0)))
+
 (define-public java-commons-bcel
   (package
     (name "java-commons-bcel")
@@ -11472,7 +11459,7 @@ streams, etc.")
        #:source-dir "powermock-reflect/src/main/java"
        #:test-dir "powermock-reflect/src/test"))
     (inputs
-     `(("java-objenesis" ,java-objenesis)))
+     (list java-objenesis))
     (native-inputs
      `(("junit" ,java-junit)
        ("cglib" ,java-cglib)
@@ -11716,7 +11703,7 @@ protocol-independent framework to build mail and messaging applications.")
          "**/RouterSpecTest.java"
          "**/ProxyTest.java")))
     (inputs
-     `(("java-jnacl" ,java-jnacl)))
+     (list java-jnacl))
     (native-inputs
      `(("java-hamcrest-core" ,java-hamcrest-core)
        ("junit" ,java-junit)))
@@ -11754,8 +11741,7 @@ protocol-independent framework to build mail and messaging applications.")
          ;; Undeterministic failure, seems to affect mostly ci
          "**/GarbageCollectedMemoryPoolTest.java")))
     (inputs
-     `(("java-slf4j-api" ,java-slf4j-api)
-       ("java-lz4" ,java-lz4)))
+     (list java-slf4j-api java-lz4))
     (native-inputs
      `(("junit" ,java-junit)
        ("hamcrest" ,java-hamcrest-all)
@@ -11848,7 +11834,7 @@ outputting XML data from Java code.")
        ("log4j-core" ,java-log4j-core)
        ("logging" ,java-commons-logging-minimal)))
     (propagated-inputs
-     `(("java-geronimo-parent-pom" ,java-geronimo-parent-pom)))
+     (list java-geronimo-parent-pom))
     (native-inputs
      `(("junit" ,java-junit)))
     (home-page "https://geronimo.apache.org/maven/xbean/3.6/xbean-reflect/")
@@ -11964,7 +11950,7 @@ public Bundle getBundle()"))
        #:source-dir "xbean-asm-util/src/main/java"
        #:tests? #f)); no tests
     (inputs
-     `(("java-asm" ,java-asm)))
+     (list java-asm))
     (native-inputs '())))
 
 (define-public java-geronimo-xbean-finder
@@ -11976,15 +11962,14 @@ public Bundle getBundle()"))
        #:source-dir "xbean-finder/src/main/java"
        #:test-dir "xbean-finder/src/test"))
     (inputs
-     `(("java-slf4j-api" ,java-slf4j-api)
-       ("java-asm" ,java-asm)
-       ("java-geronimo-xbean-bundleutils" ,java-geronimo-xbean-bundleutils)
-       ("java-geronimo-xbean-asm-util" ,java-geronimo-xbean-asm-util)
-       ("java-osgi-service-packageadmin" ,java-osgi-service-packageadmin)
-       ("java-osgi-framework" ,java-osgi-framework)))
+     (list java-slf4j-api
+           java-asm
+           java-geronimo-xbean-bundleutils
+           java-geronimo-xbean-asm-util
+           java-osgi-service-packageadmin
+           java-osgi-framework))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))))
+     (list java-junit java-hamcrest-core))))
 
 (define-public java-gson
   (package
@@ -12003,8 +11988,7 @@ public Bundle getBundle()"))
        #:source-dir "gson/src/main/java"
        #:test-dir "gson/src/test"))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (home-page "https://github.com/google/gson")
     (synopsis "Java serialization/deserialization library from/to JSON")
     (description "Gson is a Java library that can be used to convert Java
@@ -12087,9 +12071,7 @@ including pre-existing objects that you do not have source-code of.")
          (replace 'install
            (install-from-pom "hawtjni-runtime/pom.xml")))))
     (inputs
-     `(("java-commons-cli" ,java-commons-cli)
-       ("java-asm" ,java-asm)
-       ("java-geronimo-xbean-finder" ,java-geronimo-xbean-finder)))
+     (list java-commons-cli java-asm java-geronimo-xbean-finder))
     (home-page "https://fusesource.github.io/hawtjni/")
     (synopsis "JNI code generator")
     (description "HawtJNI is a code generator that produces the JNI code needed
@@ -12154,7 +12136,7 @@ that is part of the SWT Tools project.")
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("java-hawtjni" ,java-hawtjni)))
+     (list java-hawtjni))
     (home-page "https://fusesource.github.io/jansi/")
     (synopsis "Native library for jansi")
     (description "This package provides the native library for jansi, a small
@@ -12165,17 +12147,81 @@ console output.")
 (define-public java-jansi
   (package
     (name "java-jansi")
-    (version "1.16")
+    (version "2.4.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/fusesource/jansi/archive/"
-                                  "jansi-project-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/fusesource/jansi")
+                     (commit (string-append "jansi-" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "11kh3144i3fzp21dpy8zg52mjmsr214k7km9p8ly0rqk2px0qq2z"))))
+                "1s6fva06990798b5fyxqzr30zwyj1byq5wrm54j2larcydaryggf"))
+              (modules '((guix build utils)))
+              (snippet
+                ;; contains pre-compiled libraries
+                '(delete-file-recursively
+                   "src/main/resources/org/fusesource/jansi/internal"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "jansi.jar"
+       #:source-dir "src/main/java"
+       #:test-dir "src/test"
+       #:tests? #f; require junit 3
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'build-native
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "src/main/native"
+               (for-each
+                 (lambda (cfile)
+                   (let ((cfile (basename cfile))
+                         (ofile (string-append (basename cfile ".c") ".o")))
+                     (invoke ,(cc-for-target) "-c" cfile "-o" ofile
+                             (string-append "-I" (assoc-ref inputs "jdk")
+                                            "/include/linux")
+                             "-fPIC" "-O2")))
+                 (find-files "." "\\.c$"))
+               (apply invoke ,(cc-for-target) "-o" "libjansi.so" "-shared"
+                      (find-files "." "\\.o$")))))
+         (add-before 'build 'install-native
+           (lambda _
+             (let ((dir (string-append "build/classes/org/fusesource/"
+                                       "jansi/internal/native/"
+                                       ,(match (or (%current-target-system) (%current-system))
+                                          ("i686-linux" "Linux/x86")
+                                          ("x86_64-linux" "Linux/x86_64")
+                                          ("armhf-linux" "Linux/armv7")
+                                          ("aarch64-linux" "Linux/arm64")
+                                          ("mips64el-linux" "Linux/mips64")
+                                          (_ "unknown-kernel")))))
+               (install-file "src/main/native/libjansi.so" dir))))
+         (add-before 'build 'copy-resources
+           (lambda _
+             (copy-recursively "src/main/resources" "build/classes")))
+         (replace 'install
+           (install-from-pom "pom.xml")))))
+    (home-page "https://fusesource.github.io/jansi/")
+    (synopsis "Portable ANSI escape sequences")
+    (description "Jansi is a Java library that allows you to use ANSI escape
+sequences to format your console output which works on every platform.")
+    (license license:asl2.0)))
+
+(define-public java-jansi-1
+  (package
+    (inherit java-jansi)
+    (version "1.16")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/fusesource/jansi")
+                     (commit (string-append "jansi-project-" version))))
+              (file-name (git-file-name "jansi" version))
+              (sha256
+               (base32
+                "0ikk0x352gh30b42qn1jd89xwsjj0mavrc5kms7fss15bd8vsayx"))))
+    (arguments
+     `(#:jar-name "jansi.jar"
        #:source-dir "jansi/src/main/java"
        #:test-dir "jansi/src/test"
        #:phases
@@ -12201,15 +12247,9 @@ console output.")
          (replace 'install
            (install-from-pom "jansi/pom.xml")))))
     (propagated-inputs
-     `(("java-jansi-native" ,java-jansi-native)))
+     (list java-jansi-native))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
-    (home-page "https://fusesource.github.io/jansi/")
-    (synopsis "Portable ANSI escape sequences")
-    (description "Jansi is a Java library that allows you to use ANSI escape
-sequences to format your console output which works on every platform.")
-    (license license:asl2.0)))
+     (list java-junit java-hamcrest-core))))
 
 (define-public java-jboss-el-api-spec
   (package
@@ -12237,7 +12277,7 @@ sequences to format your console output which works on every platform.")
          (replace 'install
            (install-from-pom "pom.xml")))))
     (inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://github.com/jboss/jboss-el-api_spec")
     (synopsis "JSR-341 expression language 3.0 API")
     (description "This package contains an implementation of the JSR-341
@@ -12308,13 +12348,10 @@ specific events.")
          (replace 'install
            (install-from-pom "api/pom.xml")))))
     (propagated-inputs
-     `(("java-javax-inject" ,java-javax-inject)
-       ("java-jboss-el-api-spec" ,java-jboss-el-api-spec)
-       ("java-jboss-interceptors-api-spec" ,java-jboss-interceptors-api-spec)
-       ("java-weld-parent-pom" ,java-weld-parent-pom)))
+     (list java-javax-inject java-jboss-el-api-spec
+           java-jboss-interceptors-api-spec java-weld-parent-pom))
     (native-inputs
-     `(("java-testng" ,java-testng)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-testng java-hamcrest-core))
     (home-page "http://cdi-spec.org/")
     (synopsis "Contexts and Dependency Injection APIs")
     (description "Java-cdi-api contains the required APIs for Contexts and
@@ -12341,10 +12378,9 @@ Dependency Injection (CDI).")
        ;; Contains only interfaces and base classes (no test)
        #:test-exclude (list "**/test*/**.java")))
     (inputs
-     `(("java-guava" ,java-guava)))
+     (list java-guava))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (home-page "https://www.joda.org/joda-convert/")
     (synopsis "Conversion between Objects and Strings")
     (description "Joda-Convert provides a small set of classes to aid
@@ -12408,11 +12444,9 @@ wider problem of Object to Object transformation.")
              (copy-recursively "src/test/resources" "build/test-classes")
              #t)))))
     (inputs
-     `(("java-joda-convert" ,java-joda-convert)))
+     (list java-joda-convert))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)
-       ("tzdata" ,tzdata)))
+     (list java-junit java-hamcrest-core tzdata))
     (home-page "https://www.joda.org/joda-time/")
     (synopsis "Replacement for the Java date and time classes")
     (description "Joda-Time is a replacement for the Java date and time
@@ -12461,8 +12495,7 @@ classes prior to Java SE 8.")
             #t))
          (replace 'install (install-jars "build")))))
     (inputs
-     `(("java-apache-xml-commons-resolver" ,java-apache-xml-commons-resolver)
-       ("java-jaxp" ,java-jaxp)))
+     (list java-apache-xml-commons-resolver java-jaxp))
     (home-page "https://xerces.apache.org/xerces2-j/")
     (synopsis "Validating XML parser for Java with DOM level 3 support")
     (description "The Xerces2 Java parser is the reference implementation of
@@ -12549,7 +12582,7 @@ generator for Java.")
              (copy-recursively "src/main/resources" "build/classes")
              #t)))))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://jline.github.io")
     (synopsis "Console input handling library")
     (description "JLine is a Java library for handling console input.  It is
@@ -12572,23 +12605,22 @@ features that bring it on par with the Z shell line editor.")
      `(#:jdk ,icedtea-8
        ,@(package-arguments java-jline)))
     (inputs
-     `(("java-jansi" ,java-jansi)
-       ("java-jansi-native" ,java-jansi-native)))
-    (native-inputs
-     `(("java-powermock-modules-junit4" ,java-powermock-modules-junit4)
-       ("java-powermock-modules-junit4-common" ,java-powermock-modules-junit4-common)
-       ("java-powermock-api-easymock" ,java-powermock-api-easymock)
-       ("java-powermock-api-support" ,java-powermock-api-support)
-       ("java-powermock-core" ,java-powermock-core)
-       ("java-powermock-reflect" ,java-powermock-reflect)
-       ("java-easymock" ,java-easymock)
-       ("java-jboss-javassist" ,java-jboss-javassist)
-       ("java-objenesis" ,java-objenesis)
-       ("java-asm" ,java-asm)
-       ("java-hamcrest-core" ,java-hamcrest-core)
-       ("java-cglib" ,java-cglib)
-       ("java-junit" ,java-junit)
-       ("java-hawtjni" ,java-hawtjni)))))
+     (list java-jansi-1 java-jansi-native))
+    (native-inputs
+     (list java-powermock-modules-junit4
+           java-powermock-modules-junit4-common
+           java-powermock-api-easymock
+           java-powermock-api-support
+           java-powermock-core
+           java-powermock-reflect
+           java-easymock
+           java-jboss-javassist
+           java-objenesis
+           java-asm
+           java-hamcrest-core
+           java-cglib
+           java-junit
+           java-hawtjni))))
 
 (define-public java-jline-terminal
   (package
@@ -12635,7 +12667,7 @@ features that bring it on par with the Z shell line editor.")
                         (string-append build "/jar/" jar-name)
                         (find-files ".")))))))))
     (inputs
-     `(("ncurses" ,ncurses))); infocmp
+     (list ncurses)); infocmp
     (home-page "https://github.com/jline/jline3")
     (synopsis "Java JLine Terminal API and implementations")
     (description "JLine is a Java library for handling console input.  It is
@@ -12673,10 +12705,9 @@ This package includes the @var{Terminal} API and implementations.")
              ;; conflicts with build directory generated by ant-build-system
              (delete-file "build"))))))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-easymock" ,java-easymock)))
+     (list java-junit java-easymock))
     (inputs
-     `(("java-jline-terminal" ,java-jline-terminal)))
+     (list java-jline-terminal))
     (home-page "https://github.com/jline/jline3")
     (synopsis "Java JLine line reader")
     (description "JLine is a Java library for handling console input.  It is
@@ -12745,8 +12776,7 @@ against expected outcomes.")
        #:source-dir "xmlunit-legacy/src/main/java"
        #:test-dir "xmlunit-legacy/src/test"))
     (inputs
-     `(("java-xmlunit" ,java-xmlunit)
-       ("java-junit" ,java-junit)))
+     (list java-xmlunit java-junit))
     (native-inputs
      `(("java-mockito-1" ,java-mockito-1)))))
 
@@ -12778,8 +12808,7 @@ against expected outcomes.")
              (copy-recursively (assoc-ref inputs "resources") "test-resources")
              #t)))))
     (inputs
-     `(("java-xmlunit" ,java-xmlunit)
-       ("java-junit" ,java-junit)))))
+     (list java-xmlunit java-junit))))
 
 (define-public java-openchart2
   (package
@@ -12811,9 +12840,7 @@ against expected outcomes.")
              #t))
          (replace 'install (install-jars ".")))))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list unzip java-junit java-hamcrest-core))
     (home-page "https://approximatrix.com/products/openchart2/")
     (synopsis "Simple plotting for Java")
     (description "Openchart2 provides a simple, yet powerful, interface for
@@ -12904,12 +12931,12 @@ authentication, HTTP state management, and HTTP connection management.")
                  "commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs"))
              #t)))))
     (inputs
-     `(("java-commons-collections4" ,java-commons-collections4)
-       ("java-commons-compress" ,java-commons-compress)
-       ("java-commons-httpclient" ,java-commons-httpclient)
-       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
-       ("java-commons-net" ,java-commons-net)
-       ("java-jsch" ,java-jsch)))
+     (list java-commons-collections4
+           java-commons-compress
+           java-commons-httpclient
+           java-commons-logging-minimal
+           java-commons-net
+           java-jsch))
     (home-page "https://commons.apache.org/proper/commons-vfs/")
     (synopsis "Java file system library")
     (description "Commons VFS provides a single API for accessing various
@@ -13002,12 +13029,9 @@ from ORO, Inc.")
          (replace 'install
            (install-jars "build")))))
     (inputs
-     `(("libffi" ,libffi)
-       ("libx11" ,libx11)
-       ("libxt" ,libxt)))
+     (list libffi libx11 libxt))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list gcc-7 java-junit java-hamcrest-core))
     (home-page "https://github.com/java-native-access/jna")
     (synopsis "Access to native shared libraries from Java")
     (description "JNA provides Java programs easy access to native shared
@@ -13048,7 +13072,7 @@ Java method invocation.")
          (replace 'install
            (install-jars "dist")))))
     (inputs
-     `(("java-native-access" ,java-native-access)))
+     (list java-native-access))
     (synopsis "Cross-platform mappings for jna")
     (description "java-native-access-platform has cross-platform mappings
 and mappings for a number of commonly used platform functions, including a
@@ -13088,7 +13112,7 @@ will be allowed to use these programs for authentication.")
        #:source-dir "jsch-agent-proxy-sshagent/src/main/java"
        #:tests? #f)); no tests
     (inputs
-     `(("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core)))
+     (list java-jsch-agentproxy-core))
     (synopsis "Proxy to ssh-agent")
     (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent
 and Pageant included in Putty. This component contains the code for a proxy to
@@ -13103,8 +13127,7 @@ ssh-agent.")))
        #:source-dir "jsch-agent-proxy-usocket-jna/src/main/java"
        #:tests? #f)); no tests
     (inputs
-     `(("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core)
-       ("java-native-access" ,java-native-access)))
+     (list java-jsch-agentproxy-core java-native-access))
     (synopsis "USocketFactory implementation using JNA")
     (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent
 and Pageant included in Putty. This component contains an implementation of
@@ -13119,9 +13142,8 @@ USocketFactory using @dfn{JNA} (Java Native Access).")))
        #:source-dir "jsch-agent-proxy-pageant/src/main/java"
        #:tests? #f)); no tests
     (inputs
-     `(("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core)
-       ("java-native-access" ,java-native-access)
-       ("java-native-access-platform" ,java-native-access-platform)))
+     (list java-jsch-agentproxy-core java-native-access
+           java-native-access-platform))
     (synopsis "Proxy to pageant")
     (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent
 and Pageant included in Putty. This component contains the code for a proxy to
@@ -13136,7 +13158,7 @@ pageant.")))
        #:source-dir "jsch-agent-proxy-usocket-nc/src/main/java"
        #:tests? #f)); no tests
     (inputs
-     `(("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core)))
+     (list java-jsch-agentproxy-core))
     (synopsis "USocketFactory implementation using netcat")
     (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent
 and Pageant included in Putty. This component contains an implementation of
@@ -13151,11 +13173,9 @@ USocketFactory using netcat.")))
        #:source-dir "jsch-agent-proxy-connector-factory/src/main/java"
        #:tests? #f)); no tests
     (inputs
-     `(("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core)
-       ("java-jsch-agentproxy-sshagent" ,java-jsch-agentproxy-sshagent)
-       ("java-jsch-agentproxy-usocket-jna" ,java-jsch-agentproxy-usocket-jna)
-       ("java-jsch-agentproxy-pageant" ,java-jsch-agentproxy-pageant)
-       ("java-jsch-agentproxy-usocket-nc" ,java-jsch-agentproxy-usocket-nc)))
+     (list java-jsch-agentproxy-core java-jsch-agentproxy-sshagent
+           java-jsch-agentproxy-usocket-jna java-jsch-agentproxy-pageant
+           java-jsch-agentproxy-usocket-nc))
     (synopsis "Connector factory for jsch agent proxy")
     (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent
 and Pageant included in Putty. This component contains a connector factory.")))
@@ -13169,8 +13189,7 @@ and Pageant included in Putty. This component contains a connector factory.")))
        #:source-dir "jsch-agent-proxy-jsch/src/main/java"
        #:tests? #f)); no tests
     (inputs
-     `(("java-jsch" ,java-jsch)
-       ("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core)))
+     (list java-jsch java-jsch-agentproxy-core))
     (synopsis "JSch integration library for agentproxy")
     (description "jsch-agent-proxy is a proxy program to OpenSSH's ssh-agent
 and Pageant included in Putty. This component contains a library to use
@@ -13248,18 +13267,18 @@ jsch-agent-proxy with JSch.")))
                (chmod ivy #o755)
                #t))))))
     (inputs
-     `(("java-bouncycastle" ,java-bouncycastle)
-       ("java-commons-cli" ,java-commons-cli)
-       ("java-commons-collections" ,java-commons-collections)
-       ("java-commons-httpclient" ,java-commons-httpclient)
-       ("java-commons-lang" ,java-commons-lang)
-       ("java-commons-vfs" ,java-commons-vfs)
-       ("java-jakarta-oro" ,java-jakarta-oro)
-       ("java-jsch" ,java-jsch)
-       ("java-jsch-agentproxy-core" ,java-jsch-agentproxy-core)
-       ("java-jsch-agentproxy-connector-factory" ,java-jsch-agentproxy-connector-factory)
-       ("java-jsch-agentproxy-jsch" ,java-jsch-agentproxy-jsch)
-       ("java-junit" ,java-junit)))
+     (list java-bouncycastle
+           java-commons-cli
+           java-commons-collections
+           java-commons-httpclient
+           java-commons-lang
+           java-commons-vfs
+           java-jakarta-oro
+           java-jsch
+           java-jsch-agentproxy-core
+           java-jsch-agentproxy-connector-factory
+           java-jsch-agentproxy-jsch
+           java-junit))
     (home-page "https://ant.apache.org/ivy")
     (synopsis "Dependency manager for the Java programming language")
     (description "Ivy is a tool for managing (recording, tracking, resolving
@@ -13300,20 +13319,19 @@ and reporting) project dependencies.  It is characterized by the following:
          (replace 'install
            (install-from-pom "org.eclipse.sisu.inject/pom.xml")))))
     (propagated-inputs
-     `(("java-guice" ,java-guice)
-       ("java-sisu-inject-parent-pom" ,java-sisu-inject-parent-pom)))
-    (inputs
-     `(("java-guice-servlet" ,java-guice-servlet)
-       ("java-javax-inject" ,java-javax-inject)
-       ("java-javaee-servletapi" ,java-javaee-servletapi)
-       ("java-junit" ,java-junit)
-       ("java-slf4j-api" ,java-slf4j-api)
-       ("java-jsr305" ,java-jsr305)
-       ("java-jsr250" ,java-jsr250)
-       ("java-cdi-api" ,java-cdi-api)
-       ("java-osgi-framework" ,java-osgi-framework)
-       ("java-osgi-util-tracker" ,java-osgi-util-tracker)
-       ("java-testng" ,java-testng)))
+     (list java-guice java-sisu-inject-parent-pom))
+    (inputs
+     (list java-guice-servlet
+           java-javax-inject
+           java-javaee-servletapi
+           java-junit
+           java-slf4j-api
+           java-jsr305
+           java-jsr250
+           java-cdi-api
+           java-osgi-framework
+           java-osgi-util-tracker
+           java-testng))
     (home-page "https://www.eclipse.org/sisu/")
     (synopsis "Classpath scanning, auto-binding, and dynamic auto-wiring")
     (description "Sisu is a modular JSR330-based container that supports
@@ -13403,23 +13421,23 @@ OSGi Service Registry is a goal of this project.")
          (replace 'install
            (install-from-pom "org.eclipse.sisu.plexus/pom.xml")))))
     (propagated-inputs
-     `(("java-plexus-classworlds" ,java-plexus-classworlds)
-       ("java-plexus-utils" ,java-plexus-utils)
-       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
-       ("java-cdi-api" ,java-cdi-api)
-       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
-       ("java-sisu-plexus-parent-pom" ,java-sisu-plexus-parent-pom)))
-    (inputs
-     `(("java-osgi-framework" ,java-osgi-framework)
-       ("java-slf4j-api" ,java-slf4j-api)
-       ("java-javax-inject" ,java-javax-inject)
-       ("java-guice" ,java-guice)
-       ("java-guava" ,java-guava)
-       ("java-aopalliance" ,java-aopalliance)
-       ("java-asm" ,java-asm)
-       ("java-cglib" ,java-cglib)))
-    (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-plexus-classworlds
+           java-plexus-utils
+           java-plexus-component-annotations
+           java-cdi-api
+           java-eclipse-sisu-inject
+           java-sisu-plexus-parent-pom))
+    (inputs
+     (list java-osgi-framework
+           java-slf4j-api
+           java-javax-inject
+           java-guice
+           java-guava
+           java-aopalliance
+           java-asm
+           java-cglib))
+    (native-inputs
+     (list java-junit))
     (home-page "https://www.eclipse.org/sisu/")
     (synopsis "Plexus support for the sisu container")
     (description "Sisu is a modular JSR330-based container that supports
@@ -13487,10 +13505,9 @@ and @code{ISimpleCompiler} interfaces.")
              (chdir "janino")
              #t)))))
     (inputs
-     `(("java-commons-compiler" ,java-commons-compiler)))
+     (list java-commons-compiler))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (description "Janino is a Java compiler.  Janino can compile a set of
 source files to a set of class files like @code{javac}, but also compile a
 Java expression, block, class body or source file in memory, load the bytecode
@@ -13588,11 +13605,10 @@ This module lays the groundwork for the other two modules.")
              (invoke "ant" "jar")
              #t)))))
     (inputs
-     `(("java-logback-core" ,java-logback-core)
-       ("java-slf4j-api" ,java-slf4j-api)
-       ,@(package-inputs java-logback-core)))
+     (modify-inputs (package-inputs java-logback-core)
+       (prepend java-logback-core java-slf4j-api)))
     (native-inputs
-     `(("groovy" ,groovy)))
+     (list groovy))
     (description "Logback is intended as a successor to the popular log4j project.
 This module can be assimilated to a significantly improved version of log4j.
 Moreover, @code{logback-classic} natively implements the slf4j API so that you
@@ -13632,10 +13648,8 @@ such as log4j or @code{java.util.logging} (JUL).")))
                       (find-files "." "\\.properties$")))
              #t)))))
     (inputs
-     `(("java-classpathx-servletapi" ,java-classpathx-servletapi)
-       ("java-javaewah" ,java-javaewah)
-       ("java-jsch" ,java-jsch)
-       ("java-slf4j-api" ,java-slf4j-api)))
+     (list java-classpathx-servletapi java-javaewah java-jsch
+           java-slf4j-api))
     (home-page "https://eclipse.org/jgit/")
     (synopsis "Java library implementing the Git version control system")
     (description "JGit is a lightweight, pure Java library implementing the
@@ -13670,9 +13684,7 @@ network protocols, and core version control algorithms.")
                  (("wordinbits") "WORD_IN_BITS"))
                #t))))))
     (inputs
-     `(("java-javaewah" ,java-javaewah)
-       ("java-jsch" ,java-jsch)
-       ("java-slf4j-api" ,java-slf4j-api)))))
+     (list java-javaewah java-jsch java-slf4j-api))))
 
 (define-public abcl
   (package
@@ -13691,7 +13703,7 @@ network protocols, and core version control algorithms.")
          "abcl-fix-build-xml.patch"))))
     (build-system ant-build-system)
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (arguments
      `(#:build-target "abcl.jar"
        #:test-target "abcl.test"
@@ -13786,7 +13798,7 @@ and allows building a Java object model for JSON text using API classes
                "build/classes")
              #t)))))
     (propagated-inputs
-     `(("java-jsonp-api" ,java-jsonp-api)))
+     (list java-jsonp-api))
     (description "JSON Processing (JSON-P) is a Java API to process (e.g.
 parse, generate, transform and query) JSON messages.  This package contains
 a reference implementation of that API.")))
@@ -13826,7 +13838,7 @@ a reference implementation of that API.")))
                (string-append (assoc-ref outputs "out") "/share/doc/java-xmp"))
              #t)))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://www.adobe.com/devnet/xmp.html")
     (synopsis "Extensible Metadat Platform (XMP) support in Java")
     (description "Adobe's Extensible Metadata Platform (XMP) is a labeling
@@ -13883,7 +13895,7 @@ library and the API is similar.")
                                "spi/Messages_ru.properties")))
              #t)))))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://args4j.kohsuke.org/")
     (synopsis "Command line parser library")
     (description "Args4j is a small Java class library that makes it easy to
@@ -13916,10 +13928,9 @@ parse command line options/arguments in your CUI application.")
                (("/java\">") "\">"))
              #t)))))
     (propagated-inputs
-     `(("java-xmp" ,java-xmp)))
+     (list java-xmp))
     (native-inputs
-     `(("java-hamcrest-core" ,java-hamcrest-core)
-       ("java-junit" ,java-junit)))
+     (list java-hamcrest-core java-junit))
     (home-page "https://github.com/drewnoakes/metadata-extractor")
     (synopsis "Extract metadata from image and video files")
     (description "Metadata-extractor is a straightforward Java library for
@@ -13966,7 +13977,7 @@ IPTC, XMP, ICC and more formats.")
          (replace 'install
            (install-jars "dist")))))
     (native-inputs
-     `(("javacc" ,javacc)))
+     (list javacc))
     (home-page "https://github.com/blackears/svgSalamander")
     (synopsis "SVG engine for Java")
     (description "SVG Salamander is an SVG engine for Java that's designed
@@ -13995,8 +14006,7 @@ rich interactive menus to charts and graphcs to complex animations.")
        #:source-dir "src/main/java"
        #:tests? #f)); no tests
     (inputs
-     `(("java-cdi-api" ,java-cdi-api)
-       ("java-jboss-interceptors-api-spec" ,java-jboss-interceptors-api-spec)))
+     (list java-cdi-api java-jboss-interceptors-api-spec))
     (home-page "https://github.com/jboss/jboss-transaction-api_spec")
     (synopsis "Generic transaction management API in Java")
     (description "Java-jboss-transaction-api-spec implements the Transactions
@@ -14137,11 +14147,9 @@ can be interpreted by IDEs and static analysis tools to improve code analysis.")
          (replace 'install
            (install-jars "build/jar")))))
     (inputs
-     `(("java-guava" ,java-guava)
-       ("java-jboss-javassist" ,java-jboss-javassist)
-       ("java-jsonp-api" ,java-jsonp-api)))
+     (list java-guava java-jboss-javassist java-jsonp-api))
     (native-inputs
-     `(("javacc" ,javacc)))
+     (list javacc))
     (home-page "http://javaparser.org/")
     (synopsis "Parser for Java")
     (description
@@ -14153,16 +14161,21 @@ can be interpreted by IDEs and static analysis tools to improve code analysis.")
                license:asl2.0))))
 
 (define-public tla2tools
-  (let* ((version "1.8.0")
-         (tag (string-append "v" version)))
+  ;; This package was originally based on the "v1.8.0" tag, but that merely
+  ;; points to the moving master branch.  That might be because the ‘latest
+  ;; release’ at GitHub is currently 1.7.1.  We'll see!  For now, rather than
+  ;; downgrade to 1.7.1 proper, use the commit that we originally dubbed 1.8.0.
+  (let* ((release "1.7.1")
+         (revision "0")
+         (commit "6932e19083fc6df42473464857fc1280cb5aaecc"))
     (package
       (name "tla2tools")
-      (version version)
+      (version (git-version release revision commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
                       (url "https://github.com/tlaplus/tlaplus")
-                      (commit tag)))
+                      (commit commit)))
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
@@ -14186,7 +14199,7 @@ can be interpreted by IDEs and static analysis tools to improve code analysis.")
            #:make-flags '("-f" ,build-xml)
            #:phases
            (modify-phases %standard-phases
-            ;; Replace packed libs with references to jars in store
+             ;; Replace packed libs with references to jars in store
              (add-after 'unpack 'replace-libs
                (lambda* (#:key inputs #:allow-other-keys)
                  (define (input-jar input)
@@ -14209,24 +14222,24 @@ can be interpreted by IDEs and static analysis tools to improve code analysis.")
                     ("junit-4.12.jar" . "java-junit")
                     ("easymock-3.3.1.jar" . "java-easymock")))
                  ;; Retain a tiny subset of the original X-Git-*
-                 ;; manifest values just to aid in debugging
+                 ;; manifest values just to aid in debugging.
                  (substitute* ,build-xml
-                   (("\\$\\{git.tag\\}") ,tag))))
+                   (("\\$\\{git.tag\\}") (string-append "v" ,release)))))
              (add-before 'check 'prepare-tests
                (lambda _
-                 ;; pcal tests write to cfg files
+                 ;; The pcal tests write to .cfg files.
                  (for-each (cut chmod <> #o644)
                            (find-files (string-append ,tlatools
                                                       "/test-model/pcal")
                                        "\\.cfg$"))))
              (replace 'install
-               (lambda* (#:key inputs #:allow-other-keys)
-                 (let* ((share (string-append %output "/share/java"))
+               (lambda* (#:key inputs outputs #:allow-other-keys)
+                 (let* ((share (string-append (assoc-ref outputs "out") "/share/java"))
                         (jar-name "tla2tools.jar"); set in project.properties
                         (jar (string-append ,tlatools
                                             "/dist/" jar-name))
                         (java-cp (string-append share "/" jar-name))
-                        (bin (string-append %output "/bin"))
+                        (bin (string-append (assoc-ref outputs "out") "/bin"))
                         (java (search-input-file inputs "/bin/java")))
                    (install-file jar share)
                    (mkdir-p bin)
@@ -14252,16 +14265,15 @@ can be interpreted by IDEs and static analysis tools to improve code analysis.")
                       ("tlc2" . "tlc2.TLC")
                       ("tlc2-repl" . "tlc2.REPL"))))))))))
       (native-inputs
-       `(("java-junit" ,java-junit)
-         ("java-easymock" ,java-easymock)))
+       (list java-junit java-easymock))
       (inputs
-       `(("java-javax-mail" ,java-javax-mail)
-         ("java-gson" ,java-gson-2.8.6)
-         ("java-jline-terminal" ,java-jline-terminal)
-         ("java-jline-reader" ,java-jline-reader)
-         ("java-eclipse-lsp4j-jsonrpc" ,java-eclipse-lsp4j-jsonrpc)
-         ("java-eclipse-lsp4j-jsonrpc-debug" ,java-eclipse-lsp4j-jsonrpc-debug)
-         ("java-eclipse-lsp4j-debug" ,java-eclipse-lsp4j-debug)))
+       (list java-javax-mail
+             java-gson-2.8.6
+             java-jline-terminal
+             java-jline-reader
+             java-eclipse-lsp4j-jsonrpc
+             java-eclipse-lsp4j-jsonrpc-debug
+             java-eclipse-lsp4j-debug))
       (home-page "https://lamport.azurewebsites.net/tla/tools.html")
       (synopsis "TLA+ tools (analyzer, TLC, TLATeX, PlusCal translator)")
       (description "TLA+ is a high-level language for modeling programs and
diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm
index 81de5b67a6..bc735d1c45 100644
--- a/gnu/packages/javascript.scm
+++ b/gnu/packages/javascript.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2021 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,8 +27,9 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages lisp-xyz)
+  #:use-module (gnu packages node)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages uglifyjs)
   #:use-module (gnu packages web)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -80,14 +82,13 @@
          (use-modules (guix build utils))
          (chdir (assoc-ref %build-inputs "source"))
          (let ((target (string-append %output "/share/javascript/context-menu")))
-           (apply invoke (string-append (assoc-ref %build-inputs "esbuild")
-                                        "/bin/esbuild")
+           (apply invoke (search-input-file %build-inputs "/bin/esbuild")
                   "--bundle"
                   "--tsconfig=tsconfig.json"
                   (string-append "--outdir=" target)
                   (find-files "ts" "\\.ts$"))))))
     (native-inputs
-     `(("esbuild" ,esbuild)))
+     (list esbuild))
     (home-page "https://github.com/zorkow/context-menu")
     (synopsis "Generic context menu")
     (description "This package provides a reimplementation of the MathJax
@@ -163,14 +164,14 @@ context menu in TypeScript.")
                 (cond
                  ((string-match "\\.js$" file)
                   (mkdir-p (dirname installed))
-                  (let ((minified (open-pipe* OPEN_READ "uglify-js" file)))
+                  (let ((minified (open-pipe* OPEN_READ "uglifyjs" file)))
                     (call-with-output-file installed
                       (lambda (port)
                         (dump-port minified port)))
 
                     (let ((exit (close-pipe minified)))
                       (unless (zero? exit)
-                        (error "dear, uglify-js failed" exit)))))
+                        (error "dear, uglifyjs failed" exit)))))
                  (else
                   (install-file file (dirname installed))))))
             (find-files "."))
@@ -179,7 +180,7 @@ context menu in TypeScript.")
     (native-inputs
      `(("font-mathjax" ,font-mathjax)
        ("glibc-utf8-locales" ,glibc-utf8-locales)
-       ("uglify-js" ,uglify-js)
+       ("uglifyjs" ,node-uglify-js)
        ,@(package-native-inputs font-mathjax)))
     (synopsis "JavaScript display engine for LaTeX, MathML, and AsciiMath")
     (description "MathJax is a JavaScript display engine for LaTeX, MathML,
@@ -188,6 +189,125 @@ plugins or software to be installed on the browser.  So the page author can
 write web documents that include mathematics and be confident that readers will
 be able to view it naturally and easily.")))
 
+(define-public js-mathjax-3
+  (package
+    (name "js-mathjax")
+    (version "3.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/mathjax/MathJax-src")
+              (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "05lm6nw7rzpcc5yz7xsjxi4id9369vvnrksx82nglxrqrpws97wx"))
+       (patches (search-patches "mathjax-disable-webpack.patch"
+                                "mathjax-no-a11y.patch"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'prepare-sources
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; All a11y components depend on speech-rule-engine, which cannot be
+             ;; built from source. Since this only affects accessibility, remove them.
+             (delete-file-recursively "ts/a11y")
+             (delete-file-recursively "components/src/a11y")
+             (delete-file-recursively "components/src/sre")
+             (delete-file-recursively "components/src/node-main")
+
+             ;; Copy sources of dependencies, so we can create symlinks.
+             (mkdir-p "node_modules")
+             (with-directory-excursion "node_modules"
+               (for-each
+                (lambda (p)
+                 (copy-recursively (assoc-ref inputs (string-append "node-" p)) p))
+                '("mj-context-menu" "mhchemparser")))
+
+             ;; Make sure esbuild can find imports. This way we don’t have to rewrite files.
+             (symlink "ts" "js")
+             (symlink "ts" "node_modules/mj-context-menu/js")))
+         (delete 'configure)
+         (replace 'build
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((esbuild (string-append (assoc-ref inputs "esbuild")
+                                           "/bin/esbuild"))
+                   (node (string-append (assoc-ref inputs "node")
+                                        "/bin/node"))
+                   (target (string-append (assoc-ref outputs "out")
+                                          "/share/javascript/mathjax/es5")))
+               ;; Preprocess files and generate lib/ subdirs.
+               (invoke node "components/bin/makeAll")
+               ;; Build components.
+               (apply
+                invoke
+                esbuild
+                "--bundle"
+                "--minify"
+                ;; esbuild cannot transpile some features to ES5, so use ES6 instead.
+                "--target=es6"
+                (string-append "--outdir=" target)
+                "--sourcemap"
+                "--outbase=components/src"
+                "--define:__dirname=\"/\""
+                ;; In the browser the global object is window, see
+                ;; https://developer.mozilla.org/en-US/docs/Glossary/Global_object
+                "--define:global=window"
+                ;; Find all component entry points, which have the same name as their
+                ;; parent directory.
+                (filter
+                 (lambda (f)
+                     (string=?
+                       (basename (dirname f))
+                       (string-drop-right (basename f) 3)))
+                 (find-files "components/src" "\\.js$")))
+               ;; Move all .js files into their parent directory, where MathJax
+               ;; expects them.
+               (for-each
+                 (lambda (f)
+                     (rename-file f (string-append (dirname (dirname f)) "/" (basename f))))
+                 (find-files target "\\.js(\\.map)?$"))
+               ;; Copy font files.
+               (copy-recursively
+                 "ts/output/chtml/fonts/tex-woff-v2"
+                 (string-append target "/output/chtml/fonts/woff-v2")))))
+         (delete 'check)
+         (delete 'install))))
+    (native-inputs
+     `(("esbuild" ,esbuild)
+       ("node" ,node-lts)
+       ("node-mj-context-menu"
+        ,(let ((name "context-menu")
+               (version "0.6.1"))
+           (origin
+             (method git-fetch)
+             (uri (git-reference
+                    (url "https://github.com/zorkow/context-menu.git")
+                    (commit (string-append "v" version))))
+             (file-name (git-file-name name version))
+             (sha256
+              (base32
+               "1q063l6477z285j6h5wvccp6iswvlp0jmb96sgk32sh0lf7nhknh")))))
+       ("node-mhchemparser"
+        ,(let ((name "mhchemparser")
+               ;; Version 4.1.1. There are no tags.
+               (version "b1bd0670df7e9bbd5a724ac642aa2664d6e500b3"))
+           (origin
+             (method git-fetch)
+             (uri (git-reference
+                    (url "https://github.com/mhchem/mhchemParser.git")
+                    (commit version)))
+             (file-name (git-file-name name version))
+             (sha256
+              (base32
+               "1g72kbxzf9f2igidpma3jwk28ln4bp3qhwspmhnm79baf3701dgv")))))))
+    (home-page "https://www.mathjax.org/")
+    (synopsis (package-synopsis js-mathjax))
+    (description (package-description js-mathjax))
+    (license license:asl2.0)))
+
 (define-public js-commander
   (package
     (name "js-commander")
@@ -209,8 +329,7 @@ be able to view it naturally and easily.")))
        (begin
          (use-modules (guix build utils))
          (chdir (assoc-ref %build-inputs "source"))
-         (let ((esbuild (string-append (assoc-ref %build-inputs "esbuild")
-                                       "/bin/esbuild"))
+         (let ((esbuild (search-input-file %build-inputs "/bin/esbuild"))
                (target (string-append %output "/share/javascript/commander")))
            (invoke esbuild
                    "--bundle"
@@ -220,7 +339,7 @@ be able to view it naturally and easily.")))
                    (string-append "--outfile=" target "/index.min.js")
                    "index.js")))))
     (native-inputs
-     `(("esbuild" ,esbuild)))
+     (list esbuild))
     (home-page "https://github.com/tj/commander.js")
     (synopsis "Library for node.js command-line interfaces")
     (description "Commander.js aims to be the complete solution for node.js
@@ -251,8 +370,7 @@ command-line interfaces.  ")
          (begin
            (use-modules (guix build utils))
            (chdir (assoc-ref %build-inputs "source"))
-           (let ((esbuild (string-append (assoc-ref %build-inputs "esbuild")
-                                         "/bin/esbuild"))
+           (let ((esbuild (search-input-file %build-inputs "/bin/esbuild"))
                  (target (string-append %output "/share/javascript/xmldom-sre")))
              (invoke esbuild
                      "--bundle"
@@ -261,7 +379,7 @@ command-line interfaces.  ")
                      (string-append "--outfile=" target "/dom-parser.min.js")
                      "dom-parser.js")))))
       (native-inputs
-       `(("esbuild" ,esbuild)))
+       (list esbuild))
       (home-page "https://github.com/zorkow/xmldom/")
       (synopsis "DOM parser and XML serializer")
       (description "This is a fork of the xmldom library.  It allows the use
@@ -430,7 +548,7 @@ detection.")
      `(#:javascript-files '("media/js/dataTables.bootstrap.js"
                             "media/js/jquery.dataTables.js")))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://datatables.net")
     (synopsis "DataTables plug-in for jQuery")
     (description "DataTables is a table enhancing plug-in for the jQuery
@@ -527,8 +645,7 @@ means that these shams cause many ES5 methods to silently fail.")
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-uglification
-           ;; Remove "export" keyword which prevents the file from being
-           ;; uglified by uglify-js.  Moreover, that keyword is not present in
+           ;; Remove "export" keyword. That keyword is not present in
            ;; the minified version of the library some projects are using,
            ;; e.g.,
            ;; <https://github.com/jmoenig/Snap--Build-Your-Own-Blocks/blob/master/FileSaver.min.js>
@@ -557,7 +674,7 @@ external server.")
 (define-public mujs
   (package
     (name "mujs")
-    (version "1.1.1")
+    (version "1.1.3")
     (source
      (origin
        (method git-fetch)
@@ -566,7 +683,7 @@ external server.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ivqz06fq8v36p2gkjh64vgv0gm7nghds0n42vrv7vm46phdffvb"))))
+        (base32 "0qizld89qw24i9v6i2j9cxjyqn425xbiqfp1b7qfrkyxqkn0byws"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -581,7 +698,7 @@ external server.")
              (string-append "prefix=" (assoc-ref %outputs "out")))
        #:tests? #f))                    ; no tests
     (inputs
-     `(("readline" ,readline)))
+     (list readline))
     (home-page "https://mujs.com/")
     (synopsis "JavaScript interpreter written in C")
     (description "MuJS is a lightweight Javascript interpreter designed for
@@ -638,12 +755,31 @@ Javascript and a small built-in standard library with C library wrappers.")
                 "19szwxzvl2g65fw95ggvb8h0ma5bd9vvnnccn59hwnc4dida1x4n"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f                      ; No tests.
+     `(#:tests? #f                      ; No tests.
        #:make-flags (list "-f" "Makefile.sharedlibrary"
                           (string-append "INSTALL_PREFIX=" %output))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure))))
+         (delete 'configure)
+         ;; At least another major GNU/Linux distribution carries their own
+         ;; .pc file with this package.
+         (add-after 'install 'install-pkg-config
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (pkg-config-dir (string-append out "/lib/pkgconfig")))
+               (mkdir-p pkg-config-dir)
+               (with-output-to-file (string-append pkg-config-dir "/duktape.pc")
+                 (lambda _
+                   (format #t "prefix=~@*~a~@
+                               libdir=${prefix}/lib~@
+                               includedir=${prefix}/include~@
+
+                               Name: duktape~@
+                               Description: Embeddable Javascript engine~@
+                               Version: ~a~@
+                               Libs: -L${libdir} -lduktape~@
+                               Cflags: -I${includedir}~%"
+                           out ,version)))))))))
     (home-page "https://duktape.org/")
     (synopsis "Small embeddable Javascript engine")
     (description "Duktape is an embeddable Javascript engine, with a focus on
diff --git a/gnu/packages/jemalloc.scm b/gnu/packages/jemalloc.scm
index 21a315303b..2e25780257 100644
--- a/gnu/packages/jemalloc.scm
+++ b/gnu/packages/jemalloc.scm
@@ -91,4 +91,4 @@ fragmentation avoidance and scalable concurrency support.")
         ;; https://github.com/jemalloc/jemalloc/issues/937
         ((#:configure-flags base-configure-flags '())
          `(cons "--disable-initial-exec-tls" ,base-configure-flags))))
-    (inputs `(("perl" ,perl)))))
+    (inputs (list perl))))
diff --git a/gnu/packages/jose.scm b/gnu/packages/jose.scm
index 3ac7921315..9e0787bce7 100644
--- a/gnu/packages/jose.scm
+++ b/gnu/packages/jose.scm
@@ -41,10 +41,8 @@
                (base32
                 "09c2kn9cjqkgx4g0rf6c2k3ng9970r468c9z7067j8kyf7ksywp2"))))
     (build-system meson-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("jansson" ,jansson)
-              ("zlib" ,zlib)
-              ("libcrypto" ,openssl)))
+    (native-inputs (list pkg-config))
+    (inputs (list jansson zlib openssl))
     (home-page "https://github.com/latchset/jose")
     (synopsis "Object Signing and Encryption")
     (description "C-language implementation of Javascript Object Signing and
diff --git a/gnu/packages/jrnl.scm b/gnu/packages/jrnl.scm
index 85d3863e05..45f9dab148 100644
--- a/gnu/packages/jrnl.scm
+++ b/gnu/packages/jrnl.scm
@@ -45,16 +45,16 @@
         (base32 "1bjjyfc3fnsy0h299s3jj42wnigj43xdyp5ppi1cvkqbwl369935"))))
     (build-system python-build-system)
     (native-inputs
-     `(("behave" ,behave)))
+     (list behave))
     (inputs
-     `(("python" ,python)
-       ("python-keyring" ,python-keyring)
-       ("python-pycrypto" ,python-pycrypto)
-       ("python-pytz" ,python-pytz)
-       ("python-tzlocal" ,python-tzlocal)
-       ("python-six" ,python-six)
-       ("python-dateutil" ,python-dateutil)
-       ("python-parsedatetime" ,python-parsedatetime)))
+     (list python
+           python-keyring
+           python-pycrypto
+           python-pytz
+           python-tzlocal
+           python-six
+           python-dateutil
+           python-parsedatetime))
     (home-page "https://maebert.github.io/jrnl/")
     (synopsis "Personal journal application")
     (description
diff --git a/gnu/packages/julia-jll.scm b/gnu/packages/julia-jll.scm
index d18971ad48..594c36b6ce 100644
--- a/gnu/packages/julia-jll.scm
+++ b/gnu/packages/julia-jll.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
 ;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -36,6 +37,7 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages graphics)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
@@ -76,7 +78,7 @@
      '(#:tests? #f                      ; No runtests.jl
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
               (lambda (wrapper)
@@ -89,9 +91,9 @@
               (find-files "src/wrappers/" "\\.jl$"))
              #t)))))
     (inputs
-     `(("bzip2" ,bzip2)))
+     (list bzip2))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/Bzip2_jll.jl")
     (synopsis "Bzip2 binary wrappers")
     (description "This Julia module provides a wrapper for the @code{Bzip2}
@@ -116,7 +118,7 @@ compression program.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -126,19 +128,19 @@ compression program.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("cairo" ,cairo)))
-    (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-bzip2-jll" ,julia-bzip2-jll)
-       ("julia-fontconfig-jll" ,julia-fontconfig-jll)
-       ("julia-freetype2-jll" ,julia-freetype2-jll)
-       ("julia-glib-jll" ,julia-glib-jll)
-       ("julia-libpng-jll" ,julia-libpng-jll)
-       ("julia-lzo-jll" ,julia-lzo-jll)
-       ("julia-pixman-jll" ,julia-pixman-jll)
-       ("julia-xorg-libxext-jll" ,julia-xorg-libxext-jll)
-       ("julia-xorg-libxrender-jll" ,julia-xorg-libxrender-jll)
-       ("julia-zlib-jll" ,julia-zlib-jll)))
+     (list cairo))
+    (propagated-inputs
+     (list julia-jllwrappers
+           julia-bzip2-jll
+           julia-fontconfig-jll
+           julia-freetype2-jll
+           julia-glib-jll
+           julia-libpng-jll
+           julia-lzo-jll
+           julia-pixman-jll
+           julia-xorg-libxext-jll
+           julia-xorg-libxrender-jll
+           julia-zlib-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Cairo_jll.jl")
     (synopsis "Cairo library wrappers")
     (description "This package provides a wrapper for the cairo library.")
@@ -162,7 +164,7 @@ compression program.")
      `(#:tests? #f                      ; no runtests.jl
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
               (lambda (wrapper)
@@ -177,7 +179,7 @@ compression program.")
     (inputs                             ;required by artifacts
      `(("gfortran:lib" ,gfortran "lib")))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/CompilerSupportLibraries_jll.jl")
     (synopsis "Internal wrappers")
     (description "This package provides compiler support for libraries.  It is
@@ -204,7 +206,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -216,9 +218,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("expat" ,expat)))
+     (list expat))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/Expat_jll.jl")
     (synopsis "Expat library wrappers")
     (description "This package provides a wrapper for the expat library.")
@@ -242,7 +244,7 @@ build tree Yggdrasil.")
      '(#:tests? #f ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -252,22 +254,22 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("ffmpeg" ,ffmpeg)))
-    (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-bzip2-jll" ,julia-bzip2-jll)
-       ("julia-freetype2-jll" ,julia-freetype2-jll)
-       ("julia-fribidi-jll" ,julia-fribidi-jll)
-       ("julia-lame-jll" ,julia-lame-jll)
-       ("julia-libass-jll" ,julia-libass-jll)
-       ("julia-libfdk-aac-jll" ,julia-libfdk-aac-jll)
-       ("julia-libvorbis-jll" ,julia-libvorbis-jll)
-       ("julia-openssl-jll" ,julia-openssl-jll)
-       ("julia-opus-jll" ,julia-opus-jll)
-       ("julia-ogg-jll" ,julia-ogg-jll)
-       ("julia-x264-jll" ,julia-x264-jll)
-       ("julia-x265-jll" ,julia-x265-jll)
-       ("julia-zlib-jll" ,julia-zlib-jll)))
+     (list ffmpeg))
+    (propagated-inputs
+     (list julia-jllwrappers
+           julia-bzip2-jll
+           julia-freetype2-jll
+           julia-fribidi-jll
+           julia-lame-jll
+           julia-libass-jll
+           julia-libfdk-aac-jll
+           julia-libvorbis-jll
+           julia-openssl-jll
+           julia-opus-jll
+           julia-ogg-jll
+           julia-x264-jll
+           julia-x265-jll
+           julia-zlib-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/FFMPEG_jll.jl")
     (synopsis "ffmpeg library wrappers")
     (description "This package provides a wrapper for ffmpeg.")
@@ -291,7 +293,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -305,12 +307,12 @@ build tree Yggdrasil.")
     (inputs
      `(("fontconfig" ,fontconfig)))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-bzip2-jll" ,julia-bzip2-jll)
-       ("julia-expat-jll" ,julia-expat-jll)
-       ("julia-freetype2-jll" ,julia-freetype2-jll)
-       ("julia-libuuid-jll" ,julia-libuuid-jll)
-       ("julia-zlib-jll" ,julia-zlib-jll)))
+     (list julia-jllwrappers
+           julia-bzip2-jll
+           julia-expat-jll
+           julia-freetype2-jll
+           julia-libuuid-jll
+           julia-zlib-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Fontconfig_jll.jl")
     (synopsis "Fontconfig library wrappers")
     (description "This package provides a wrapper for the fontconfig library.")
@@ -334,7 +336,7 @@ build tree Yggdrasil.")
      '(#:tests? #f                      ; No runtests.jl
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
               (lambda (wrapper)
@@ -347,11 +349,9 @@ build tree Yggdrasil.")
               (find-files "src/wrappers/" "\\.jl$"))
              #t)))))
     (inputs
-     `(("freetype" ,freetype)))
+     (list freetype))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-bzip2-jll" ,julia-bzip2-jll)
-       ("julia-zlib-jll" ,julia-zlib-jll)))
+     (list julia-jllwrappers julia-bzip2-jll julia-zlib-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/FreeType2_jll.jl")
     (synopsis "Freetype2 binary wrappers")
     (description "This Julia module provides a wrapper for the freetype font
@@ -376,7 +376,7 @@ rendering library.")
      '(#:tests? #f ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -386,9 +386,9 @@ rendering library.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("fribidi" ,fribidi)))
+     (list fribidi))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/FriBidi_jll.jl")
     (synopsis "Fribidi library wrappers")
     (description "This package provides a wrapper for the fribidi library.")
@@ -412,7 +412,7 @@ rendering library.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -426,10 +426,8 @@ rendering library.")
     (inputs
      `(("gettext" ,gettext-minimal)))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-compilersupportlibraries-jll" ,julia-compilersupportlibraries-jll)
-       ("julia-libiconv-jll" ,julia-libiconv-jll)
-       ("julia-xml2-jll" ,julia-xml2-jll)))
+     (list julia-jllwrappers julia-compilersupportlibraries-jll
+           julia-libiconv-jll julia-xml2-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Gettext_jll.jl")
     (synopsis "Gettext library wrappers")
     (description "This package provides a wrapper for the gettext library.")
@@ -453,7 +451,7 @@ rendering library.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -465,14 +463,14 @@ rendering library.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("glfw" ,glfw)))
-    (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-libglvnd-jll" ,julia-libglvnd-jll)
-       ("julia-xorg-libxcursor-jll" ,julia-xorg-libxcursor-jll)
-       ("julia-xorg-libxinerama-jll" ,julia-xorg-libxinerama-jll)
-       ("julia-xorg-libxrandr-jll" ,julia-xorg-libxrandr-jll)
-       ("julia-xorg-libxi-jll" ,julia-xorg-libxi-jll)))
+     (list glfw))
+    (propagated-inputs
+     (list julia-jllwrappers
+           julia-libglvnd-jll
+           julia-xorg-libxcursor-jll
+           julia-xorg-libxinerama-jll
+           julia-xorg-libxrandr-jll
+           julia-xorg-libxi-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/GLFW_jll.jl")
     (synopsis "Glfw library wrappers")
     (description "This package provides a wrapper for the glfw library.")
@@ -496,7 +494,7 @@ rendering library.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -508,20 +506,69 @@ rendering library.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("glib" ,glib)))
-    (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-gettext-jll" ,julia-gettext-jll)
-       ("julia-libffi-jll" ,julia-libffi-jll)
-       ("julia-libiconv-jll" ,julia-libiconv-jll)
-       ("julia-libmount-jll" ,julia-libmount-jll)
-       ("julia-pcre-jll" ,julia-pcre-jll)
-       ("julia-zlib-jll" ,julia-zlib-jll)))
+     (list glib))
+    (propagated-inputs
+     (list julia-jllwrappers
+           julia-gettext-jll
+           julia-libffi-jll
+           julia-libiconv-jll
+           julia-libmount-jll
+           julia-pcre-jll
+           julia-zlib-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Glib_jll.jl")
     (synopsis "Glib library wrappers")
     (description "This package provides a wrapper for the glib library.")
     (license license:expat)))
 
+(define-public julia-gr-jll
+  (package
+    (name "julia-gr-jll")
+    (version "0.58.1+0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaBinaryWrappers/GR_jll.jl")
+               (commit (string-append "GR-v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "16m22n0wh86v3lh0im2pc9bg381djbmqji5hjx42j6aaz634gqiq"))))
+    (build-system julia-build-system)
+    (arguments
+     '(#:tests? #f  ; no runtests
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'link-depot 'override-binary-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (map
+               (lambda (wrapper)
+                 (substitute* wrapper
+                   (("generate_wrapper_header.*")
+                    (string-append
+                      "generate_wrapper_header(\"GR\", \""
+                      (assoc-ref inputs "gr-framework") "\")\n"))))
+               ;; There's a Julia file for each platform, override them all
+               (find-files "src/wrappers/" "\\.jl$")))))))
+    (inputs
+     (list gr-framework))
+    (propagated-inputs
+     (list julia-jllwrappers
+           julia-bzip2-jll
+           julia-cairo-jll
+           julia-ffmpeg-jll
+           julia-fontconfig-jll
+           julia-glfw-jll
+           julia-jpegturbo-jll
+           julia-libpng-jll
+           julia-libtiff-jll
+           julia-pixman-jll
+           julia-qt5base-jll
+           julia-zlib-jll))
+    (home-page "https://github.com/JuliaBinaryWrappers/GR_jll.jl")
+    (synopsis "GR framework library wrappers")
+    (description "This package provides a wrapper for the GR framework.")
+    (license license:expat)))
+
 (define-public julia-gumbo-jll
   (package
     (name "julia-gumbo-jll")
@@ -540,7 +587,7 @@ rendering library.")
      '(#:tests? #f ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((gumbo (string-append (assoc-ref inputs "gumbo-parser"))))
                (for-each
@@ -553,9 +600,9 @@ rendering library.")
                 ;; There's a Julia file for each platform, override them all
                 (find-files "src/wrappers/" "\\.jl$"))))))))
     (inputs
-     `(("gumbo-parser" ,gumbo-parser)))
+     (list gumbo-parser))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/Gumbo_jll.jl")
     (synopsis "Gumbo HTML parsing library wrappers")
     (description "This package provides a wrapper for Gumbo HTML parsing library.")
@@ -580,7 +627,7 @@ rendering library.")
      '(#:tests? #f ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -592,13 +639,10 @@ rendering library.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-jpegturbo-jll" ,julia-jpegturbo-jll)
-       ("julia-libpng-jll" ,julia-libpng-jll)
-       ("julia-libtiff-jll" ,julia-libtiff-jll)
-       ("julia-zlib-jll" ,julia-zlib-jll)))
+     (list julia-jllwrappers julia-jpegturbo-jll julia-libpng-jll
+           julia-libtiff-jll julia-zlib-jll))
     (inputs
-     `(("imagemagick" ,imagemagick)))
+     (list imagemagick))
     (home-page "https://github.com/JuliaBinaryWrappers/ImageMagick_jll.jl")
     (synopsis "Imagemagick library wrappers")
     (description "This package provides a wrapper for Imagemagick.")
@@ -622,7 +666,7 @@ rendering library.")
      '(#:tests? #f
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'custom-override-path
+         (add-after 'link-depot 'custom-override-path
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Make @generate_wrapper_header take an optional argument that
              ;; guix packagers can pass to override the default "override"
@@ -641,7 +685,7 @@ rendering library.")
              #t)))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-preferences" ,julia-preferences)))
+     (list julia-preferences))
     (home-page "https://github.com/JuliaPackaging/JLLWrappers.jl")
     (synopsis "Julia macros used by JLL packages")
     (description "This package contains Julia macros that enable JLL packages
@@ -668,7 +712,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -678,9 +722,9 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libjpeg-turbo" ,libjpeg-turbo)))
+     (list libjpeg-turbo))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/JpegTurbo_jll.jl")
     (synopsis "Libjpeg-turbo library wrappers")
     (description "This package provides a wrapper for the libjpeg-turbo library.")
@@ -704,7 +748,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
      '(#:tests? #f ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -714,9 +758,9 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("lame" ,lame)))
+     (list lame))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/LAME_jll.jl")
     (synopsis "Lame library wrappers")
     (description "This package provides a wrapper for the lame audio encoder.")
@@ -740,7 +784,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
      '(#:tests? #f ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -750,13 +794,10 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libass" ,libass)))
+     (list libass))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-bzip2-jll" ,julia-bzip2-jll)
-       ("julia-freetype2-jll" ,julia-freetype2-jll)
-       ("julia-fribidi-jll" ,julia-fribidi-jll)
-       ("julia-zlib-jll" ,julia-zlib-jll)))
+     (list julia-jllwrappers julia-bzip2-jll julia-freetype2-jll
+           julia-fribidi-jll julia-zlib-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/libass_jll.jl")
     (synopsis "Libass library wrappers")
     (description "This package provides a wrapper for libass.")
@@ -780,7 +821,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
      '(#:tests? #f ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -790,9 +831,9 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libfdk" ,libfdk)))
+     (list libfdk))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/libfdk_aac_jll.jl")
     (synopsis "FDK library wrappers")
     (description "This package provides a wrapper for the libfdk audio library.")
@@ -816,7 +857,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -827,9 +868,9 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libffi" ,libffi)))
+     (list libffi))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/Libffi_jll.jl")
     (synopsis "Libffi library wrappers")
     (description "This package provides a wrapper for the libffi library.")
@@ -853,7 +894,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -865,10 +906,9 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libgcrypt" ,libgcrypt)))
+     (list libgcrypt))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-libgpg-error-jll" ,julia-libgpg-error-jll)))
+     (list julia-jllwrappers julia-libgpg-error-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Libgcrypt_jll.jl")
     (synopsis "libgcrypt library wrappers")
     (description "This package provides a wrapper for the libgcrypt library.")
@@ -892,7 +932,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -902,11 +942,9 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libglvnd" ,libglvnd)))
+     (list libglvnd))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-libx11-jll" ,julia-xorg-libx11-jll)
-       ("julia-xorg-libxext-jll" ,julia-xorg-libxext-jll)))
+     (list julia-jllwrappers julia-xorg-libx11-jll julia-xorg-libxext-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Libglvnd_jll.jl")
     (synopsis "Libglvnd library wrappers")
     (description "This package provides a wrapper for the libglvnd library.")
@@ -930,7 +968,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -942,9 +980,9 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libgpg-error" ,libgpg-error)))
+     (list libgpg-error))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/Libgpg_error_jll.jl")
     (synopsis "libgpg-error library wrappers")
     (description "This package provides a wrapper for the libgpg-error library.")
@@ -968,7 +1006,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -980,9 +1018,9 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libiconv" ,libiconv)))
+     (list libiconv))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/Libiconv_jll.jl")
     (synopsis "Libiconv library wrappers")
     (description "This package provides a wrapper for the libiconv library.")
@@ -1006,7 +1044,7 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1018,9 +1056,9 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("util-linux" ,util-linux "lib")))
+     (list `(,util-linux "lib")))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/Libmount_jll.jl")
     (synopsis "Libmount library wrappers")
     (description "This package provides a wrapper for the libmount library
@@ -1045,7 +1083,7 @@ from util-linux.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1055,15 +1093,57 @@ from util-linux.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libpng" ,libpng)))
+     (list libpng))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-zlib-jll" ,julia-zlib-jll)))
+     (list julia-jllwrappers julia-zlib-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/LibPNG_jll.jl")
     (synopsis "Libpng library wrappers")
     (description "This package provides a wrapper for the libpng library.")
     (license license:expat)))
 
+(define-public julia-libsass-jll
+  (let ((commit "69bf10603aad0ebf1f6df088c5fd7c4a5d1eb0ca"))
+    (package
+      (name "julia-libsass-jll")
+      (version "3.5.5+0")                 ;tag not created upstream
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/JuliaBinaryWrappers/libsass_jll.jl")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1fb6rf422533bsmfslvc20ag1hr50bf9xaj32rvh7nv593sbiygn"))))
+      (build-system julia-build-system)
+      (arguments
+       `(#:tests? #f                      ; no runtests.jl
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'link-depot 'override-binary-path
+             (lambda* (#:key inputs #:allow-other-keys)
+               (map
+                (lambda (wrapper)
+                  (substitute* wrapper
+                    (("generate_wrapper_header.*")
+                     (string-append
+                      "generate_wrapper_header(\"libsass\", \""
+                      (assoc-ref inputs "libsass") "\")\n"))))
+                ;; There's a Julia file for each platform, override them all
+                (find-files "src/wrappers/" "\\.jl$"))
+               #t)))))
+      (inputs
+       (list libsass))
+      (propagated-inputs
+       (list julia-jllwrappers))
+      (home-page "https://github.com/JuliaBinaryWrappers/libsass_jll.jl")
+      (synopsis "Julia wrapper for libsass")
+      (description "This package provides a wrapper for libsass.  It is an
+autogenerated source package constructed using @code{BinaryBuilder.jl}.  The
+originating @code{build_tarballs.jl} script can be found on the community
+build tree Yggdrasil.")
+      (license license:expat))))
+
 (define-public julia-libtiff-jll
   (package
     (name "julia-libtiff-jll")
@@ -1082,7 +1162,7 @@ from util-linux.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1092,12 +1172,10 @@ from util-linux.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libtiff" ,libtiff)))
+     (list libtiff))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-jpegturbo-jll" ,julia-jpegturbo-jll)
-       ("julia-zlib-jll" ,julia-zlib-jll)
-       ("julia-zstd-jll" ,julia-zstd-jll)))
+     (list julia-jllwrappers julia-jpegturbo-jll julia-zlib-jll
+           julia-zstd-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Libtiff_jll.jl")
     (synopsis "Libtiff library wrappers")
     (description "This package provides a wrapper for libtiff")
@@ -1121,7 +1199,7 @@ from util-linux.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1133,9 +1211,9 @@ from util-linux.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("util-linux" ,util-linux "lib")))
+     (list `(,util-linux "lib")))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/Libmount_jll.jl")
     (synopsis "Libuuid library wrappers")
     (description "This package provides a wrapper for the libuuid library from util-linux.")
@@ -1159,7 +1237,7 @@ from util-linux.")
      '(#:tests? #f ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1169,10 +1247,9 @@ from util-linux.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libvorbis" ,libvorbis)))
+     (list libvorbis))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-ogg-jll" ,julia-ogg-jll)))
+     (list julia-jllwrappers julia-ogg-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/libvorbis_jll.jl")
     (synopsis "Libvorbis library wrappers")
     (description
@@ -1197,7 +1274,7 @@ from util-linux.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1209,9 +1286,9 @@ from util-linux.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("lzo" ,lzo)))
+     (list lzo))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/LZO_jll.jl")
     (synopsis "LZO library wrappers")
     (description "This package provides a wrapper for the lzo library.")
@@ -1235,7 +1312,7 @@ from util-linux.")
      '(#:tests? #f                      ; No runtests.jl
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
               (lambda (wrapper)
@@ -1247,8 +1324,8 @@ from util-linux.")
               ;; There's a Julia file for each platform, override them all
               (find-files "src/wrappers/" "\\.jl$"))
              #t)))))
-    (inputs `(("mbedtls-apache" ,mbedtls-apache)))
-    (propagated-inputs `(("julia-jllwrappers" ,julia-jllwrappers)))
+    (inputs (list mbedtls-apache))
+    (propagated-inputs (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/MbedTLS_jll.jl")
     (synopsis "Apache's mbed TLS binary wrappers")
     (description "This Julia module provides @code{mbed TLS} libraries and
@@ -1273,7 +1350,7 @@ wrappers.")
      '(#:tests? #f ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1283,9 +1360,9 @@ wrappers.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libogg" ,libogg)))
+     (list libogg))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/Ogg_jll.jl")
     (synopsis "Libogg library wrappers")
     (description "This package provides a wrapper for the libogg library.")
@@ -1310,7 +1387,7 @@ wrappers.")
        `(#:tests? #f                      ; no runtests.jl
          #:phases
          (modify-phases %standard-phases
-           (add-after 'unpack 'override-binary-path
+           (add-after 'link-depot 'override-binary-path
              (lambda* (#:key inputs #:allow-other-keys)
                (map
                 (lambda (wrapper)
@@ -1323,10 +1400,9 @@ wrappers.")
                 (find-files "src/wrappers/" "\\.jl$"))
                #t)))))
       (inputs
-       `(("openspecfun" ,openspecfun)))
+       (list openspecfun))
       (propagated-inputs
-       `(("julia-jllwrappers" ,julia-jllwrappers)
-         ("julia-compilersupportlibraries-jll" ,julia-compilersupportlibraries-jll)))
+       (list julia-jllwrappers julia-compilersupportlibraries-jll))
       (home-page "https://github.com/JuliaBinaryWrappers/OpenSpecFun_jll.jl")
       (synopsis "Internal wrappers")
       (description "This package provides a wrapper for OpenSpecFun.  It is an
@@ -1353,7 +1429,7 @@ build tree Yggdrasil.")
      '(#:tests? #f ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1363,9 +1439,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/OpenSSL_jll.jl")
     (synopsis "Openssl library wrappers")
     (description "This package provides a wrapper for the openssl library.")
@@ -1389,7 +1465,7 @@ build tree Yggdrasil.")
      '(#:tests? #f ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1399,9 +1475,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("opus" ,opus)))
+     (list opus))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/Opus_jll.jl")
     (synopsis "Opus library wrappers")
     (description "This package provides a wrapper for the opus audio library.")
@@ -1425,7 +1501,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1437,9 +1513,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("pcre" ,pcre)))
+     (list pcre))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/PCRE_jll.jl")
     (synopsis "PCRE library wrappers")
     (description "This package provides a wrapper for the pcre library.")
@@ -1463,7 +1539,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1475,9 +1551,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("pixman" ,pixman)))
+     (list pixman))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/Pixman_jll.jl")
     (synopsis "Pixman library wrappers")
     (description "This package provides a wrapper for the pixman library.")
@@ -1501,7 +1577,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1513,22 +1589,22 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("qtbase" ,qtbase-5)))
-    (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-libglvnd-jll" ,julia-libglvnd-jll)
-       ("julia-compilersupportlibraries-jll" ,julia-compilersupportlibraries-jll)
-       ("julia-fontconfig-jll" ,julia-fontconfig-jll)
-       ("julia-glib-jll" ,julia-glib-jll)
-       ("julia-openssl-jll" ,julia-openssl-jll)
-       ("julia-xkbcommon-jll" ,julia-xkbcommon-jll)
-       ("julia-xorg-libxcb-jll" ,julia-xorg-libxcb-jll)
-       ("julia-xorg-libxext-jll" ,julia-xorg-libxext-jll)
-       ("julia-xorg-xcb-util-image-jll" ,julia-xorg-xcb-util-image-jll)
-       ("julia-xorg-xcb-util-keysyms-jll" ,julia-xorg-xcb-util-keysyms-jll)
-       ("julia-xorg-xcb-util-renderutil-jll" ,julia-xorg-xcb-util-renderutil-jll)
-       ("julia-xorg-xcb-util-wm-jll" ,julia-xorg-xcb-util-wm-jll)
-       ("julia-zlib-jll" ,julia-zlib-jll)))
+     (list qtbase-5))
+    (propagated-inputs
+     (list julia-jllwrappers
+           julia-libglvnd-jll
+           julia-compilersupportlibraries-jll
+           julia-fontconfig-jll
+           julia-glib-jll
+           julia-openssl-jll
+           julia-xkbcommon-jll
+           julia-xorg-libxcb-jll
+           julia-xorg-libxext-jll
+           julia-xorg-xcb-util-image-jll
+           julia-xorg-xcb-util-keysyms-jll
+           julia-xorg-xcb-util-renderutil-jll
+           julia-xorg-xcb-util-wm-jll
+           julia-zlib-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Qt5Base_jll.jl")
     (synopsis "Qtbase library wrappers")
     (description "This package provides a wrapper for the qtbase library.")
@@ -1552,7 +1628,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1562,12 +1638,10 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("wayland" ,wayland)))
+     (list wayland))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-expat-jll" ,julia-expat-jll)
-       ("julia-libffi-jll" ,julia-libffi-jll)
-       ("julia-xml2-jll" ,julia-xml2-jll)))
+     (list julia-jllwrappers julia-expat-jll julia-libffi-jll
+           julia-xml2-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Wayland_jll.jl")
     (synopsis "Wayland library wrappers")
     (description "This package provides a wrapper for the wayland library.")
@@ -1591,7 +1665,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1601,10 +1675,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("wayland-protocols" ,wayland-protocols)))
+     (list wayland-protocols))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-wayland-jll" ,julia-wayland-jll)))
+     (list julia-jllwrappers julia-wayland-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Wayland_protocols_jll.jl")
     (synopsis "Wayland-protocols library wrappers")
     (description "This package provides a wrapper for the wayland-protocols library.")
@@ -1628,7 +1701,7 @@ build tree Yggdrasil.")
      `(#:tests? #f ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((libx264 (assoc-ref inputs "libx264")))
               (map
@@ -1643,9 +1716,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$"))))))))
     (inputs
-     `(("libx264" ,libx264)))
+     (list libx264))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/x264_jll.jl")
     (synopsis "x264 library wrappers")
     (description "This package provides a wrapper for the x264 video library.")
@@ -1669,7 +1742,7 @@ build tree Yggdrasil.")
      '(#:tests? #f ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1679,9 +1752,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("x265" ,x265)))
+     (list x265))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/x265_jll.jl")
     (synopsis "x265 library wrappers")
     (description "This package provides a wrapper for the x265 video library.")
@@ -1705,7 +1778,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1715,13 +1788,11 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libxkbcommon" ,libxkbcommon)))
+     (list libxkbcommon))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-libxcb-jll" ,julia-xorg-libxcb-jll)
-       ("julia-xorg-xkeyboard-config-jll" ,julia-xorg-xkeyboard-config-jll)
-       ("julia-wayland-jll" ,julia-wayland-jll)
-       ("julia-wayland-protocols-jll" ,julia-wayland-protocols-jll)))
+     (list julia-jllwrappers julia-xorg-libxcb-jll
+           julia-xorg-xkeyboard-config-jll julia-wayland-jll
+           julia-wayland-protocols-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/xkbcommon_jll.jl")
     (synopsis "Libxkbcommon library wrappers")
     (description "This package provides a wrapper for the libxkbcommon library.")
@@ -1745,7 +1816,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1757,11 +1828,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libxml2" ,libxml2)))
+     (list libxml2))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-libiconv-jll" ,julia-libiconv-jll)
-       ("julia-zlib-jll" ,julia-zlib-jll)))
+     (list julia-jllwrappers julia-libiconv-jll julia-zlib-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/XML2_jll.jl")
     (synopsis "XML2 library wrappers")
     (description "This package provides a wrapper for the libxml2 library.")
@@ -1785,7 +1854,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1795,10 +1864,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libpthread-stubs" ,libpthread-stubs)))
+     (list libpthread-stubs))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xslt-jll" ,julia-xslt-jll)))
+     (list julia-jllwrappers julia-xslt-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_libpthread_stubs_jll.jl")
     (synopsis "Libpthread-stubs library wrappers")
     (description "This package provides a wrapper for the libpthread-stubs library.")
@@ -1822,7 +1890,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1832,11 +1900,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libx11" ,libx11)))
+     (list libx11))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-libxcb-jll" ,julia-xorg-libxcb-jll)
-       ("julia-xorg-xtrans-jll" ,julia-xorg-xtrans-jll)))
+     (list julia-jllwrappers julia-xorg-libxcb-jll julia-xorg-xtrans-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_libX11_jll.jl")
     (synopsis "LibX11 library wrappers")
     (description "This package provides a wrapper for the libx11 library.")
@@ -1860,7 +1926,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1870,9 +1936,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libxau" ,libxau)))
+     (list libxau))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_libXau_jll.jl")
     (synopsis "Libxau library wrappers")
     (description "This package provides a wrapper for the libxau library.")
@@ -1896,7 +1962,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1906,13 +1972,11 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libxcb" ,libxcb)))
+     (list libxcb))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-libxau-jll" ,julia-xorg-libxau-jll)
-       ("julia-xorg-libpthread-stubs-jll" ,julia-xorg-libpthread-stubs-jll)
-       ("julia-xorg-libxdmcp-jll" ,julia-xorg-libxdmcp-jll)
-       ("julia-xslt-jll" ,julia-xslt-jll)))
+     (list julia-jllwrappers julia-xorg-libxau-jll
+           julia-xorg-libpthread-stubs-jll julia-xorg-libxdmcp-jll
+           julia-xslt-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_libxcb_jll.jl")
     (synopsis "Libxcb library wrappers")
     (description "This package provides a wrapper for the libxcb library.")
@@ -1936,7 +2000,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1946,11 +2010,10 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libxcursor" ,libxcursor)))
+     (list libxcursor))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-libxfixes-jll" ,julia-xorg-libxfixes-jll)
-       ("julia-xorg-libxrender-jll" ,julia-xorg-libxrender-jll)))
+     (list julia-jllwrappers julia-xorg-libxfixes-jll
+           julia-xorg-libxrender-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_libXcursor_jll.jl")
     (synopsis "Libxcursor library wrappers")
     (description "This package provides a wrapper for the libxcursor library.")
@@ -1974,7 +2037,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -1984,9 +2047,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libxdmcp" ,libxdmcp)))
+     (list libxdmcp))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_libXdmcp_jll.jl")
     (synopsis "Libxdmcp library wrappers")
     (description "This package provides a wrapper for the libxdmcp library.")
@@ -2010,7 +2073,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2020,10 +2083,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libxext" ,libxext)))
+     (list libxext))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-libx11-jll" ,julia-xorg-libx11-jll)))
+     (list julia-jllwrappers julia-xorg-libx11-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_libXext_jll.jl")
     (synopsis "LibXext library wrappers")
     (description "This package provides a wrapper for the libxext library.")
@@ -2047,7 +2109,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2057,10 +2119,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libxfixes" ,libxfixes)))
+     (list libxfixes))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-libx11-jll" ,julia-xorg-libx11-jll)))
+     (list julia-jllwrappers julia-xorg-libx11-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_libXfixes_jll.jl")
     (synopsis "Libxfixes library wrappers")
     (description "This package provides a wrapper for the libxfixes library.")
@@ -2084,7 +2145,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2094,11 +2155,10 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libxi" ,libxi)))
+     (list libxi))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-libxext-jll" ,julia-xorg-libxext-jll)
-       ("julia-xorg-libxfixes-jll" ,julia-xorg-libxfixes-jll)))
+     (list julia-jllwrappers julia-xorg-libxext-jll
+           julia-xorg-libxfixes-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_libXi_jll.jl")
     (synopsis "Libxi library wrappers")
     (description "This package provides a wrapper for the libxi library.")
@@ -2122,7 +2182,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2132,10 +2192,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libxinerama" ,libxinerama)))
+     (list libxinerama))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-libxext-jll" ,julia-xorg-libxext-jll)))
+     (list julia-jllwrappers julia-xorg-libxext-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_libXinerama_jll.jl")
     (synopsis "Libxinerama library wrappers")
     (description "This package provides a wrapper for the libxinerama library.")
@@ -2159,7 +2218,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2169,10 +2228,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libxkbfile" ,libxkbfile)))
+     (list libxkbfile))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-libx11-jll" ,julia-xorg-libx11-jll)))
+     (list julia-jllwrappers julia-xorg-libx11-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_libxkbfile_jll.jl")
     (synopsis "Libxkbfile library wrappers")
     (description "This package provides a wrapper for the libxkbfile library.")
@@ -2196,7 +2254,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2206,11 +2264,10 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libxrandr" ,libxrandr)))
+     (list libxrandr))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-libxext-jll" ,julia-xorg-libxext-jll)
-       ("julia-xorg-libxrender-jll" ,julia-xorg-libxrender-jll)))
+     (list julia-jllwrappers julia-xorg-libxext-jll
+           julia-xorg-libxrender-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_libXrandr_jll.jl")
     (synopsis "Libxrandr library wrappers")
     (description "This package provides a wrapper for the libxrandr library.")
@@ -2234,7 +2291,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2244,10 +2301,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libxrender" ,libxrender)))
+     (list libxrender))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-libx11-jll" ,julia-xorg-libx11-jll)))
+     (list julia-jllwrappers julia-xorg-libx11-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_libXrender_jll.jl")
     (synopsis "libXrender library wrappers")
     (description "This package provides a wrapper for the libXrender library.")
@@ -2271,7 +2327,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2281,10 +2337,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("xcb-util" ,xcb-util)))
+     (list xcb-util))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-libxcb-jll" ,julia-xorg-libxcb-jll)))
+     (list julia-jllwrappers julia-xorg-libxcb-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_xcb_util_jll.jl")
     (synopsis "Xcb-util library wrappers")
     (description "This package provides a wrapper for the xcb-util library.")
@@ -2308,7 +2363,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2318,10 +2373,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("xcb-util-image" ,xcb-util-image)))
+     (list xcb-util-image))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-xcb-util-jll" ,julia-xorg-xcb-util-jll)))
+     (list julia-jllwrappers julia-xorg-xcb-util-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_xcb_util_image_jll.jl")
     (synopsis "Xcb-util-image library wrappers")
     (description "This package provides a wrapper for the xcb-util-image library.")
@@ -2345,7 +2399,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2355,10 +2409,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("xcb-util-keysyms" ,xcb-util-keysyms)))
+     (list xcb-util-keysyms))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-xcb-util-jll" ,julia-xorg-xcb-util-jll)))
+     (list julia-jllwrappers julia-xorg-xcb-util-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_xcb_util_keysyms_jll.jl")
     (synopsis "Xcb-util-keysyms library wrappers")
     (description "This package provides a wrapper for the xcb-util-keysyms library.")
@@ -2382,7 +2435,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2392,10 +2445,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("xcb-util-renderutil" ,xcb-util-renderutil)))
+     (list xcb-util-renderutil))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-xcb-util-jll" ,julia-xorg-xcb-util-jll)))
+     (list julia-jllwrappers julia-xorg-xcb-util-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_xcb_util_renderutil_jll.jl")
     (synopsis "Xcb-util-renderutil library wrappers")
     (description "This package provides a wrapper for the xcb-util-renderutil library.")
@@ -2419,7 +2471,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2429,10 +2481,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("xcb-util-wm" ,xcb-util-wm)))
+     (list xcb-util-wm))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-xcb-util-jll" ,julia-xorg-xcb-util-jll)))
+     (list julia-jllwrappers julia-xorg-xcb-util-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_xcb_util_wm_jll.jl")
     (synopsis "Xcb-util-wm library wrappers")
     (description "This package provides a wrapper for the xcb-util-wm library.")
@@ -2456,7 +2507,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2466,10 +2517,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("xkbcomp" ,xkbcomp)))
+     (list xkbcomp))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-libxkbfile-jll" ,julia-xorg-libxkbfile-jll)))
+     (list julia-jllwrappers julia-xorg-libxkbfile-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_xkbcomp_jll.jl")
     (synopsis "xkbcomp library wrappers")
     (description "This package provides a wrapper for the xkbcomp library.")
@@ -2493,7 +2543,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2503,10 +2553,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("xkeyboard-config" ,xkeyboard-config)))
+     (list xkeyboard-config))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-xorg-xkbcomp-jll" ,julia-xorg-xkbcomp-jll)))
+     (list julia-jllwrappers julia-xorg-xkbcomp-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_xkeyboard_config_jll.jl")
     (synopsis "Xkeyboard-config library wrappers")
     (description "This package provides a wrapper for the xkeyboard-config library.")
@@ -2530,7 +2579,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2540,9 +2589,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("xtrans" ,xtrans)))
+     (list xtrans))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/Xorg_xtrans_jll.jl")
     (synopsis "xtrans library wrappers")
     (description "This package provides a wrapper for the xtrans library.")
@@ -2566,7 +2615,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2578,14 +2627,14 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("libxslt" ,libxslt)))
-    (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)
-       ("julia-libgcrypt-jll" ,julia-libgcrypt-jll)
-       ("julia-libgpg-error-jll" ,julia-libgpg-error-jll)
-       ("julia-libiconv-jll" ,julia-libiconv-jll)
-       ("julia-xml2-jll" ,julia-xml2-jll)
-       ("julia-zlib-jll" ,julia-zlib-jll)))
+     (list libxslt))
+    (propagated-inputs
+     (list julia-jllwrappers
+           julia-libgcrypt-jll
+           julia-libgpg-error-jll
+           julia-libiconv-jll
+           julia-xml2-jll
+           julia-zlib-jll))
     (home-page "https://github.com/JuliaBinaryWrappers/XSLT_jll.jl")
     (synopsis "Xslt library wrappers")
     (description "This package provides a wrapper for the libxslt library.")
@@ -2609,7 +2658,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2621,9 +2670,9 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/Zlib_jll.jl")
     (synopsis "Zlib library wrappers")
     (description "This package provides a wrapper for Zlib.")
@@ -2647,7 +2696,7 @@ build tree Yggdrasil.")
      '(#:tests? #f  ; no runtests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'override-binary-path
+         (add-after 'link-depot 'override-binary-path
            (lambda* (#:key inputs #:allow-other-keys)
              (map
                (lambda (wrapper)
@@ -2661,8 +2710,46 @@ build tree Yggdrasil.")
     (inputs
      `(("zstd:lib" ,zstd "lib")))
     (propagated-inputs
-     `(("julia-jllwrappers" ,julia-jllwrappers)))
+     (list julia-jllwrappers))
     (home-page "https://github.com/JuliaBinaryWrappers/Zstd_jll.jl")
     (synopsis "Zstd library wrappers")
     (description "This package provides a wrapper for the zstd library.")
     (license license:expat)))
+
+(define-public julia-sundials-jll
+  (package
+    (name "julia-sundials-jll")
+    (version "5.2.1+0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaBinaryWrappers/Sundials_jll.jl")
+               (commit (string-append "Sundials-v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0cijb9frq8gj8bjpqf2lr5d0jxlj262y6h6xi4z3536dingrvffc"))))
+    (build-system julia-build-system)
+    (arguments
+     '(#:tests? #f  ; no runtests
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'link-depot 'override-binary-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (map
+               (lambda (wrapper)
+                 (substitute* wrapper
+                   (("global artifact_dir.*")
+                    (string-append
+                     "global artifact_dir = \""
+                      (assoc-ref inputs "sundials") "\"\n"))))
+               ;; There's a Julia file for each platform, override them all
+               (find-files "src/wrappers/" "\\.jl$")))))))
+    (inputs
+     `(("sundials" ,sundials-julia)))
+    (propagated-inputs
+     (list julia-jllwrappers))
+    (home-page "https://github.com/JuliaBinaryWrappers/Sundials_jll.jl")
+    (synopsis "SUndials library wrappers")
+    (description "This package provides a wrapper for the sundials library.")
+    (license license:expat)))
diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index a80964c2b0..2ad1c4cd5d 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
 ;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,11 +23,15 @@
 (define-module (gnu packages julia-xyz)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
+  #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix git-download)
   #:use-module (guix build-system julia)
   #:use-module (gnu packages gcc)
-  #:use-module (gnu packages julia-jll))
+  #:use-module (gnu packages julia-jll)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages version-control))
 
 (define-public julia-abstractffts
   (package
@@ -43,7 +48,7 @@
         (base32 "0083pwdyxjb04i330ir9pc8kmp4bwk59lx1jgc9qi05y8j7xzbp0"))))
     (build-system julia-build-system)
     (inputs                             ;required for tests
-     `(("julia-unitful" ,julia-unitful)))
+     (list julia-unitful))
     (home-page "https://github.com/JuliaGPU/Adapt.jl")
     (synopsis "General framework for fast Fourier transforms (FFTs)")
     (description "This package allows multiple FFT packages to co-exist with
@@ -98,10 +103,30 @@ acts like @code{convert(T, x)}, but without the restriction of returning a
 be GPU compatible without throwing away the wrapper.")
     (license license:expat)))
 
+(define-public julia-ansicoloredprinters
+  (package
+    (name "julia-ansicoloredprinters")
+    (version "0.0.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDocs/ANSIColoredPrinters.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0dp5agljr0g50s5gn0pr70wrz01ggck6pb40ay3l4szhswq7mqzf"))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/JuliaDocs/ANSIColoredPrinters.jl")
+    (synopsis "ANSI escape code translator")
+    (description "@code{ANSIColoredPrinters.jl} converts a text qualified by
+ANSI escape codes to another format.")
+    (license license:expat)))
+
 (define-public julia-aqua
   (package
     (name "julia-aqua")
-    (version "0.5.0")
+    (version "0.5.1")
     (source
       (origin
         (method git-fetch)
@@ -110,8 +135,10 @@ be GPU compatible without throwing away the wrapper.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "0zcvrwnyhh2kr4d2xv7ps8dh7byw78dx6yb1m9m4dblgscn5kypb"))))
+         (base32 "1g0kyzcdykgs247j72jpc2qqall696jwgb3hnn4cxmbi8bkf7wpk"))))
     (build-system julia-build-system)
+    (arguments
+     `(#:parallel-tests? #f))
     (home-page "https://github.com/JuliaTesting/Aqua.jl")
     (synopsis "Automated quality assurance for Julia packages")
     (description "@acronym{Aqua.jl, Auto QUality Assurance for Julia packages},
@@ -132,17 +159,21 @@ provides functions to run a few automatable checks for Julia packages.")
         (sha256
          (base32 "0cmldnzvdgmfnrnrzgj6v1mfr2rvk5096392rwmhd3iyx7v0pq33"))))
     (build-system julia-build-system)
+    (arguments
+     ;; XXXX: Unexpected failures for i686, e.g.,
+     ;; Expression: @inferred(ArrayInterface.size(Rnr)) === (StaticInt(4),)
+     ;; Evaluated: (static(2),) === (static(4),)
+     ;; Disable as stopgap.
+     `(#:tests? ,(not (target-x86-32?))))
     (propagated-inputs
-     `(("julia-ifelse" ,julia-ifelse)
-       ("julia-requires" ,julia-requires)
-       ("julia-static" ,julia-static)))
+     (list julia-ifelse julia-requires julia-static))
     (native-inputs
-     `(("julia-aqua" ,julia-aqua)
-       ("julia-bandedmatrices" ,julia-bandedmatrices)
-       ("julia-blockbandedmatrices" ,julia-blockbandedmatrices)
-       ("julia-ifelse" ,julia-ifelse)
-       ("julia-offsetarrays" ,julia-offsetarrays)
-       ("julia-staticarrays" ,julia-staticarrays)))
+     (list julia-aqua
+           julia-bandedmatrices
+           julia-blockbandedmatrices
+           julia-ifelse
+           julia-offsetarrays
+           julia-staticarrays))
     (home-page "https://github.com/JuliaArrays/ArrayInterface.jl")
     (synopsis "Base array interface primitives")
     (description "The purpose of this library is to solidify extensions to the
@@ -157,7 +188,7 @@ no issues with the upgrade.")
 (define-public julia-arraylayouts
   (package
     (name "julia-arraylayouts")
-    (version "0.7.3")
+    (version "0.7.6")
     (source
       (origin
         (method git-fetch)
@@ -166,10 +197,10 @@ no issues with the upgrade.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "0ri05xhfrj2909c6yy09qm6zi8v8s5fvmbbwbg8qgjq0yxnviw32"))))
+         (base32 "05q62pks8j23pgbrfny072rrwzrz6q19l68srnjxxv39ncmdmrvg"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-fillarrays" ,julia-fillarrays)))
+     (list julia-fillarrays))
     (home-page "https://github.com/JuliaMatrices/ArrayLayouts.jl")
     (synopsis "Array layouts and general fast linear algebra")
     (description "This package implements a trait-based framework for describing
@@ -193,7 +224,7 @@ much wider class of matrix types than Julia's in-built @code{StridedArray}.")
          (base32 "00x85lnfln7xkfnirpplzyi8r6q92nfqwya8il156bf7b1pa20gk"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-woodburymatrices" ,julia-woodburymatrices)))
+     (list julia-woodburymatrices))
     (home-page "https://github.com/timholy/AxisAlgorithms.jl")
     (synopsis "Filtering and linear algebra routines for multidimensional arrays")
     (description "@code{AxisAlgorithms} is a collection of filtering and linear
@@ -217,12 +248,9 @@ axis (dimension).")
          (base32 "03kzan1lm4fxfhzv1xjg3ysf6y7nagcc61vfz15kvdrp1dqxlynk"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-rangearrays" ,julia-rangearrays)
-       ("julia-intervalsets" ,julia-intervalsets)
-       ("julia-itertools" ,julia-itertools)))
+     (list julia-rangearrays julia-intervalsets julia-itertools))
     (native-inputs
-     `(("julia-offsetarrays" ,julia-offsetarrays)
-       ("julia-unitful" ,julia-unitful)))
+     (list julia-offsetarrays julia-unitful))
     (home-page "http://juliaarrays.github.io/AxisArrays.jl/latest/")
     (synopsis "Arrays where each dimension can have a named axis with values")
     (description "This package for the Julia language provides an array type
@@ -248,10 +276,9 @@ axes, allowing column names or interval selections.")
          (base32 "0rlfj9gr9ss621v5kw5b06206yaak21s2vq9vk7r8a7p2ylncism"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-arraylayouts" ,julia-arraylayouts)
-       ("julia-fillarrays" ,julia-fillarrays)))
+     (list julia-arraylayouts julia-fillarrays))
     (native-inputs
-     `(("julia-genericlinearalgebra" ,julia-genericlinearalgebra)))
+     (list julia-genericlinearalgebra))
     (home-page "https://github.com/JuliaMatrices/BandedMatrices.jl")
     (synopsis "Julia package for representing banded matrices")
     (description "This package supports representing banded matrices by only
@@ -272,7 +299,26 @@ the entries on the bands.")
        (sha256
         (base32 "1xz3kdrphp4b158pg7dwkiry49phs2fjjpdvk1hjpww5ykxacks8"))))
     (build-system julia-build-system)
-    (propagated-inputs `(("julia-json" ,julia-json)))
+    (arguments
+     `(#:phases
+       ,@(if (target-x86-32?)
+           '((modify-phases %standard-phases
+               (add-after 'unpack 'remove-failing-tests-i686
+                 (lambda _
+                   (substitute* "test/GroupsTests.jl"
+                     (("@test sprint\\(show, g1\\)")
+                      "@test_broken sprint(show, g1)")
+                     (("@test sprint\\(show, g1; context = :boundto => 1\\)")
+                      "@test_broken sprint(show, g1; context = :boundto => 1)")
+                     (("@test sprint\\(show, g1; context = :limit => false\\)")
+                      "@test_broken sprint(show, g1; context = :limit => false)")
+                     (("@test @test_deprecated") "@test_broken"))
+                   (substitute* "test/ExecutionTests.jl"
+                     ;; Evaluated: 12 == 8
+                     (("@test @ballocated\\(Ref\\(1\\)\\)")
+                      "@test_broken @ballocated(Ref(1))"))))))
+           '(%standard-phases))))
+    (propagated-inputs (list julia-json))
     (home-page "https://github.com/JuliaCI/BenchmarkTools.jl")
     (synopsis "Benchmarking framework for the Julia language")
     (description "@code{BenchmarkTools.jl} makes performance tracking of Julia
@@ -283,7 +329,7 @@ benchmarks as well as comparing benchmark results.")
 (define-public julia-blockarrays
   (package
     (name "julia-blockarrays")
-    (version "0.16.3")
+    (version "0.16.8")
     (source
       (origin
         (method git-fetch)
@@ -292,15 +338,21 @@ benchmarks as well as comparing benchmark results.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "1f9pnnfv97vww2dxklpx8pa2k85fw2l3pzsj7n28nws1xlwnj96c"))))
+         (base32 "1by26036fk9mawmcgqxpwizgbs398v9p6vrbsgg7h6llqn3q9iw1"))))
     (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       ,@(if (target-64bit?)
+           '(%standard-phases)
+           '((modify-phases %standard-phases
+               (add-after 'unpack 'fix-tests-int32-i686
+                 (lambda _
+                   (substitute* "test/test_blockarrays.jl"
+                     (("Int64") "Int32")))))))))
     (propagated-inputs
-     `(("julia-arraylayouts" ,julia-arraylayouts)
-       ("julia-fillarrays" ,julia-fillarrays)))
+     (list julia-arraylayouts julia-fillarrays))
     (native-inputs
-     `(("julia-lazyarrays" ,julia-lazyarrays)
-       ("julia-offsetarrays" ,julia-offsetarrays)
-       ("julia-staticarrays" ,julia-staticarrays)))
+     (list julia-lazyarrays julia-offsetarrays julia-staticarrays))
     (home-page "https://github.com/JuliaArrays/BlockArrays.jl")
     (synopsis "BlockArrays for Julia")
     (description "A block array is a partition of an array into blocks or
@@ -331,11 +383,8 @@ access to the full matrix to use in in for example a linear solver.")
          (base32 "10n1r6kmmv2wa307jfg9y2m6p16j8hngjp3fjavpbdy1r5haasm9"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-arraylayouts" ,julia-arraylayouts)
-       ("julia-bandedmatrices" ,julia-bandedmatrices)
-       ("julia-blockarrays" ,julia-blockarrays)
-       ("julia-fillarrays" ,julia-fillarrays)
-       ("julia-matrixfactorizations" ,julia-matrixfactorizations)))
+     (list julia-arraylayouts julia-bandedmatrices julia-blockarrays
+           julia-fillarrays julia-matrixfactorizations))
     (home-page "https://github.com/JuliaMatrices/BlockBandedMatrices.jl")
     (synopsis "Block-banded matrices and banded-block-banded matrices")
     (description "This package supports representing block-banded and
@@ -344,6 +393,29 @@ A @code{BlockBandedMatrix} is a subtype of @code{BlockMatrix} of
 @code{BlockArrays.jl} whose layout of non-zero blocks is banded.")
     (license license:expat)))
 
+(define-public julia-bson
+  (package
+    (name "julia-bson")
+    (version "0.3.3")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaIO/BSON.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1l5608ma2ys7v2gpcqbiv9mwfc6yrlqkihrfx1pf7fgv5llhd4fn"))))
+    (build-system julia-build-system)
+    (native-inputs
+     (list julia-dataframes))
+    (home-page "https://github.com/JuliaIO/BSON.jl")
+    (synopsis "Binary JSON serialisation format")
+    (description "@code{BSON.jl} is a Julia package for working with the Binary
+JSON serialisation format.  It can be used as a general store for Julia data
+structures.")
+    (license license:expat)))
+
 (define-public julia-bufferedstreams
   (package
     (name "julia-bufferedstreams")
@@ -363,8 +435,9 @@ A @code{BlockBandedMatrix} is a subtype of @code{BlockMatrix} of
     ;; https://travis-ci.org/BioJulia/BufferedStreams.jl/jobs/491050182
     (arguments
      '(#:tests? #f
-       #:julia-package-name "BufferedStreams"))
-    (propagated-inputs `(("julia-compat" ,julia-compat)))
+       #:julia-package-name "BufferedStreams"
+       #:julia-package-uuid "e1450e63-4bb3-523b-b2a4-4ffa8c0fd77d"))
+    (propagated-inputs (list julia-compat))
     (home-page "https://github.com/BioJulia/BufferedStreams.jl")
     (synopsis "Fast composable IO streams")
     (description "@code{BufferedStreams.jl} provides buffering for IO
@@ -411,14 +484,14 @@ methods.")
         (base32 "1bcfylxdaizgasnmlkjjkf4dgfvy2y9ycnphw2d0z6mm9vx3n04x"))))
     (build-system julia-build-system)
     (native-inputs
-     `(("julia-pooledarrays" ,julia-pooledarrays)))
+     (list julia-pooledarrays))
     (propagated-inputs
-     `(("julia-dataapi" ,julia-dataapi)
-       ("julia-json" ,julia-json)
-       ("julia-json3" ,julia-json3)
-       ("julia-missings" ,julia-missings)
-       ("julia-recipesbase" ,julia-recipesbase)
-       ("julia-structtypes" ,julia-structtypes)))
+     (list julia-dataapi
+           julia-json
+           julia-json3
+           julia-missings
+           julia-recipesbase
+           julia-structtypes))
     (home-page "https://github.com/JuliaData/CategoricalArrays.jl")
     (synopsis "Arrays for working with categorical data")
     (description "This package provides tools for working with categorical
@@ -441,15 +514,11 @@ variables, both with unordered (nominal variables) and ordered categories
         (base32 "0if93pd3b3scg2x3gmk1cbwjk0ax1n792vy8c38y3xl7jpd5cb70"))))
     (build-system julia-build-system)
     (inputs                             ;required for test
-     `(("julia-chainrulestestutils" ,julia-chainrulestestutils)
-       ("julia-finitedifferences" ,julia-finitedifferences)
-       ("julia-nanmath" ,julia-nanmath)
-       ("julia-specialfunctions" ,julia-specialfunctions)))
+     (list julia-chainrulestestutils julia-finitedifferences julia-nanmath
+           julia-specialfunctions))
     (propagated-inputs
-     `(("julia-chainrulescore" ,julia-chainrulescore)
-       ("julia-compat" ,julia-compat)
-       ("julia-reexport" ,julia-reexport)
-       ("julia-requires" ,julia-requires)))
+     (list julia-chainrulescore julia-compat julia-reexport
+           julia-requires))
     (home-page "https://github.com/JuliaDiff/ChainRules.jl")
     (synopsis "Common utilities for automatic differentiation")
     (description "The is package provides a variety of common utilities that
@@ -472,10 +541,9 @@ execute forward-, reverse-, and mixed-mode primitives.")
         (base32 "1866xv30h1bi7f2m993nljzf58wwmv8zlgn6ffn9j3wckch1nfpb"))))
     (build-system julia-build-system)
     (inputs                             ;required for tests
-     `(("julia-benchmarktools" ,julia-benchmarktools)
-       ("julia-staticarrays" ,julia-staticarrays)))
+     (list julia-benchmarktools julia-staticarrays))
     (propagated-inputs
-     `(("julia-compat" ,julia-compat)))
+     (list julia-compat))
     (home-page "https://github.com/JuliaDiff/ChainRulesCore.jl")
     (synopsis "Common utilities used by downstream automatic differentiation tools")
     (description "The package provides a light-weight dependency for defining
@@ -485,7 +553,7 @@ sensitivities for functions without the need to depend on ChainRules itself.")
 (define-public julia-chainrulestestutils
   (package
     (name "julia-chainrulestestutils")
-    (version "1.0.0")
+    (version "1.2.3")
     (source
      (origin
        (method git-fetch)
@@ -494,12 +562,10 @@ sensitivities for functions without the need to depend on ChainRules itself.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "07l4sjc7avmmp4v1dsym1jyb46q4jsvv7i0yzszf72gj8d9k6lwa"))))
+        (base32 "1vlkyp72d514gyb4k3yhjl1g7f24ncmz61j56p4sdi9f76rk9fx9"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-chainrulescore" ,julia-chainrulescore)
-       ("julia-compat" ,julia-compat)
-       ("julia-finitedifference" ,julia-finitedifferences)))
+     (list julia-chainrulescore julia-compat julia-finitedifferences))
     (home-page "https://github.com/JuliaDiff/ChainRulesTestUtils.jl")
     (synopsis "Common utilities used by downstream automatic differentiation tools")
     (description "This package is designed to help in testing
@@ -514,6 +580,37 @@ can be a test-only dependency, allowing it to have potentially heavy
 dependencies, while keeping @code{ChainRulesCore.jl} as light-weight as possible.")
     (license license:expat)))
 
+(define-public julia-codeczlib
+  (package
+    (name "julia-codeczlib")
+    (version "0.7.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/JuliaIO/CodecZlib.jl")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xm603nylkwk4bzx66zv1g3syzrvn3jh9spdx7kvcvgszzyrrgh4"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'reset-gzip-timestamps 'make-files-writable
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (for-each make-file-writable
+                         (find-files out "\\.gz$"))
+               #t))))))
+    (propagated-inputs
+     (list julia-zlib-jll julia-transcodingstreams))
+    (home-page "https://github.com/JuliaIO/CodecZlib.jl")
+    (synopsis "Zlib codecs for @code{TranscodingStreams.jl}")
+    (description "This package provides zlib codecs for
+@code{TranscodingStreams.jl}.")
+    (license license:expat)))
+
 (define-public julia-colors
   (package
     (name "julia-colors")
@@ -529,9 +626,7 @@ dependencies, while keeping @code{ChainRulesCore.jl} as light-weight as possible
         (base32 "0kx3hq7rf8p5zx6ly9k5j90zijmc7yrwmy96cgkl2ibdfbnhmya3"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-colortypes" ,julia-colortypes)
-       ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
-       ("julia-reexport" ,julia-reexport)))
+     (list julia-colortypes julia-fixedpointnumbers julia-reexport))
     (home-page "https://github.com/JuliaGraphics/Colors.jl")
     (synopsis "Tools for dealing with color")
     (description "This package provides a wide array of functions for dealing
@@ -543,7 +638,7 @@ color scales for graphics.")
 (define-public julia-colorschemes
   (package
     (name "julia-colorschemes")
-    (version "3.13.0")
+    (version "3.15.0")
     (source
       (origin
         (method git-fetch)
@@ -552,13 +647,11 @@ color scales for graphics.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "13gy1njxlkfnxmpj2z6aj1bzbzn7jipaxr9fgkv41yiy0xjhqiyh"))))
+         (base32 "0kpjhmqd5cj8dh8bmh9b5g6bscyp7h23hzpr2s93pnrp57q1wvhq"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-colors" ,julia-colors)
-       ("julia-colortypes" ,julia-colortypes)
-       ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
-       ("julia-staticarrays" ,julia-staticarrays)))
+     (list julia-colors julia-colortypes julia-fixedpointnumbers
+           julia-staticarrays))
     (home-page "https://github.com/JuliaGraphics/ColorSchemes.jl")
     (synopsis "Colorschemes, colormaps, gradients, and palettes")
     (description "This package provides a collection of colorschemes.")
@@ -577,11 +670,11 @@ color scales for graphics.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0n7h70caqv7yd0khjhn90iax62r73mcif8qzkwj5b4q46li1r8ih"))))
-    (arguments
-     '(#:tests? #f))                    ;require Documenter, not packaged yet
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-fixedpointnumbers" ,julia-fixedpointnumbers)))
+     (list julia-fixedpointnumbers))
+    (native-inputs
+     (list julia-documenter))
     (home-page "https://github.com/JuliaGraphics/ColorTypes.jl")
     (synopsis "Basic color types and constructor")
     (description "This minimalistic package serves as the foundation for
@@ -593,7 +686,7 @@ with.")
 (define-public julia-colorvectorspace
   (package
     (name "julia-colorvectorspace")
-    (version "0.9.5")
+    (version "0.9.7")
     (source
       (origin
         (method git-fetch)
@@ -602,14 +695,12 @@ with.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "1gx4k1bvf6lkzxphnvpkw857ihrkifhb68yvsj889k9pf1vda3fq"))))
+         (base32 "02gk7f5g5wjxdasbjf8bvv1m7clksh7mw1xmygjdirjz1q0d6dwi"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-colortypes" ,julia-colortypes)
-       ("julia-specialfunctions" ,julia-specialfunctions)
-       ("julia-tensorcore" ,julia-tensorcore)))
+     (list julia-colortypes julia-specialfunctions julia-tensorcore))
     (native-inputs
-     `(("julia-colors" ,julia-colors)))
+     (list julia-colors))
     (home-page "https://github.com/JuliaGraphics/ColorVectorSpace.jl")
     (synopsis "Treat colors as n-vectors for the purposes of arithmetic")
     (description "This package is an add-on to @code{ColorTypes.jl} and provides
@@ -653,7 +744,7 @@ focusing mostly (as of now) on enumerative combinatorics and permutations.")
         (base32 "0mgy90kk8ksv3l720kkk04gnhn4aqhh2dj4sp3x8yy3limngfjay"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-macrotools" ,julia-macrotools)))
+     (list julia-macrotools))
     (home-page "https://github.com/rdeits/CommonSubexpressions.jl")
     (synopsis "@code{@@cse} macro for Julia")
     (description "This package provides the @code{@@cse} macro, which performs
@@ -663,7 +754,7 @@ common subexpression elimination.")
 (define-public julia-compat
   (package
     (name "julia-compat")
-    (version "3.32.0")
+    (version "3.39.0")
     (source
      (origin
        (method git-fetch)
@@ -672,7 +763,7 @@ common subexpression elimination.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1zif3dj0a85w7xqbg0chrdhw8dk410zxcqbnkf764xmylwbps498"))))
+        (base32 "0qzvaqi5gqgc747fnajbvvf5vqbh6cwykwky00c7glvmvdsgk3z0"))))
     (build-system julia-build-system)
     (home-page "https://github.com/JuliaLang/Compat.jl")
     (synopsis "Compatibility across Julia versions")
@@ -682,6 +773,51 @@ provides a macro that lets you use the latest syntax in a backwards-compatible
 way.")
     (license license:expat)))
 
+(define-public julia-configurations
+  (package
+    (name "julia-configurations")
+    (version "0.16.4")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/Roger-luo/Configurations.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1b23p0zk8dx2sf01cnw177mqci7qd81b9s32ixz9clsh0r0icl1b"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'link-depot 'fix-tests
+           (lambda _
+             (substitute* "test/runtests.jl"
+               (("option.toml") "test/option.toml"))))
+         (add-after 'link-depot 'dont-use-exproniconlite
+           (lambda _
+             (substitute* '("Project.toml"
+                            "src/Configurations.jl"
+                            "test/runtests.jl")
+               (("ExproniconLite") "Expronicon"))
+             (substitute* "Project.toml"
+               (("55351af7-c7e9-48d6-89ff-24e801d99491")
+                "6b7a57c9-7cc1-4fdf-b7f5-e857abae3636"))))
+         ,@(if (target-64bit?)
+             '()
+             '((add-after 'unpack 'fix-tests-int32-i686
+                 (lambda _
+                   (substitute* "test/runtests.jl"
+                     (("Int64") "Int32")))))))))
+    (propagated-inputs
+     (list julia-crayons julia-expronicon julia-orderedcollections))
+    (home-page "https://configurations.rogerluo.dev/stable/")
+    (synopsis "Tools for options and configurations in Julia")
+    (description "@code{Configurations.jl} provides a macro @code{@@option} to
+let you define @code{structs} to represent options/configurations, and serialize
+between different option/configuration file formats such as @code{TOML}.")
+    (license license:expat)))
+
 (define-public julia-constructionbase
   (package
     (name "julia-constructionbase")
@@ -716,14 +852,10 @@ for construction of objects.")
         (sha256
          (base32 "15zbkn32v7xlz7559s0r5a0vkwmjwsswxaqpzijly4lky4jnp33d"))))
     (build-system julia-build-system)
-    (arguments
-     `(#:tests? #f))    ; Documenter.jl not packaged yet.
     (propagated-inputs
-     `(("julia-staticarrays" ,julia-staticarrays)))
-    ;(native-inputs
-    ; `(("julia-documenter" ,julia-documenter)
-    ;   ("julia-forwarddiff" ,julia-forwarddiff)
-    ;   ("julia-unitful" ,julia-unitful)))
+     (list julia-staticarrays))
+    (native-inputs
+    (list julia-documenter julia-forwarddiff julia-unitful))
     (home-page "https://github.com/JuliaGeometry/CoordinateTransformations.jl")
     (synopsis "Coordinate transformations in Julia")
     (description "@code{CoordinateTransformations} is a Julia package to manage
@@ -782,6 +914,63 @@ moving the function definition to DataAPI.jl and each package taking a
 dependency on it.")
     (license license:expat)))
 
+(define-public julia-dataframes
+  (package
+    (name "julia-dataframes")
+    (version "1.2.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaData/DataFrames.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1bk0amrghgjrkyn1mm4ac23swwbgszl1d0qyl9137qj5zvv9dasp"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'link-depot 'skip-failing-test
+           (lambda _
+             ;; Tests with non-standard colors.
+             (substitute* "test/show.jl"
+               (("test (sprint\\(show, df, context=:color=>true)" _ test)
+                (string-append "test_nowarn " test)))
+             (substitute* "test/io.jl"
+               (("testset \\\"improved.*" all)
+                (string-append all "return\n")))
+             (substitute* "test/join.jl"
+               (("test (levels\\(outerjoin\\(B)" _ test)
+                (string-append "test_nowarn " test)))
+             #t)))))
+    (propagated-inputs
+     (list julia-dataapi
+           julia-invertedindices
+           julia-iteratorinterfaceextensions
+           julia-missings
+           julia-pooledarrays
+           julia-prettytables
+           julia-reexport
+           julia-sortingalgorithms
+           julia-tables
+           julia-tabletraits))
+    (native-inputs
+     (list julia-categoricalarrays
+           julia-combinatorics
+           julia-datastructures
+           julia-datavalues
+           julia-offsetarrays
+           julia-unitful))
+    (home-page "https://dataframes.juliadata.org/stable/")
+    (synopsis "In-memory tabular data")
+    (description "This package provides a set of tools for working with tabular
+data in Julia.  Its design and functionality are similar to those of Pandas from
+Python or @code{data.frame}, @code{data.table} and @code{dplyr} from R, making
+it a great general purpose data science tool, especially for those coming to
+Julia from R or Python.")
+    (license license:expat)))
+
 (define-public julia-datastructures
   (package
     (name "julia-datastructures")
@@ -796,9 +985,21 @@ dependency on it.")
        (sha256
         (base32 "0hdqp8ipsqdw5bqqkdvz4j6n67x80sj5azr9vzyxwjfsgkfbnk2l"))))
     (propagated-inputs
-     `(("julia-compat" ,julia-compat)
-       ("julia-orderedcollections" ,julia-orderedcollections)))
+     (list julia-compat julia-orderedcollections))
     (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       ,@(if (target-x86-32?)
+           '((modify-phases %standard-phases
+               (add-after 'unpack 'remove-failing-test-i686
+                 (lambda _
+                   ;; The evaluation returns the correct value,
+                   ;; Evaluated: "Accumulator(1 => 3, 3 => 4)"
+                   ;; but, for some reasons, is considered as failed.
+                   (substitute* "test/test_accumulator.jl"
+                     (("@test sprint\\(show,Accumulator\\(1 => 3, 3 => 4\\)\\)")
+                      "@test_broken sprint(show, Accumulator(1 => 3, 3 => 4))"))))))
+           '(%standard-phases))))
     (home-page "https://github.com/JuliaCollections/DataStructures.jl")
     (synopsis "Julia module providing different data structures")
     (description "This package implements a variety of data structures,
@@ -845,7 +1046,7 @@ without having to take direct dependencies.")
      `(#:tests? #f      ; Tests need upgrading with newer Julia version.
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'skip-known-failing-tests
+         (add-after 'link-depot 'skip-known-failing-tests
            (lambda _
              ;; See upstream report:
              ;; https://github.com/queryverse/DataValues.jl/issues/83
@@ -854,7 +1055,7 @@ without having to take direct dependencies.")
                ((".*DataValue\\(method\\(f.*") ""))
              #t)))))
     (propagated-inputs
-     `(("julia-datavalueinterfaces" ,julia-datavalueinterfaces)))
+     (list julia-datavalueinterfaces))
     (home-page "https://github.com/queryverse/DataValues.jl")
     (synopsis "Missing values for Julia")
     (description "This package provides the type @code{DataValue} that is used
@@ -899,7 +1100,7 @@ dictionaries where values associated with a particular key may change,
          (base32 "1mm43hm8hd6sgmkkpqhbqhvap7mpkjwzmz5algxi6manp580gkr5"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-indexing" ,julia-indexing)))
+     (list julia-indexing))
     (home-page "https://github.com/andyferris/Dictionaries.jl")
     (synopsis "Alternative interface for dictionaries in Julia")
     (description "This package provides an alternative interface for
@@ -923,7 +1124,7 @@ dictionaries in Julia, for improved productivity and performance.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'skip-flakey-tests
+         (add-after 'link-depot 'skip-flakey-tests
            (lambda _
              ;; Some combination of these tests fail nondeterministically
              ;; each of the times this package is built.
@@ -933,10 +1134,9 @@ dictionaries in Julia, for improved productivity and performance.")
                (("test dist\\(z, x") "test_nowarn dist(z, x")
                (("test dist\\(z, y") "test_nowarn dist(z, y")))))))
     (propagated-inputs
-     `(("julia-statsapi" ,julia-statsapi)))
+     (list julia-statsapi))
     (native-inputs
-     `(("julia-offsetarrays" ,julia-offsetarrays)
-       ("julia-unitful" ,julia-unitful)))
+     (list julia-offsetarrays julia-unitful))
     (home-page "https://github.com/JuliaStats/Distances.jl")
     (synopsis "Julia package for evaluating distances (metrics) between vectors")
     (description "A Julia package for evaluating distances(metrics) between
@@ -970,6 +1170,123 @@ cases that including them with the default Julia installation is not seen as
 valuable enough at this time.")
     (license license:expat)))
 
+;; By removing all the javascript and css downloads any HTML documentation
+;; produced by this package will not be very useful.
+(define-public julia-documenter
+  (package
+    (name "julia-documenter")
+    (version "0.27.7")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDocs/Documenter.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "00ai3c24i3fkn5plmavampcxm0ijhwk0v5cn9xwm7rvbjnnvaaam"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'link-depot 'patch-source
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "src/Deps.jl"
+               (("pip install")
+                (string-append (assoc-ref inputs "python")
+                               "/bin/pip install")))
+             #t))
+         (add-after 'link-depot 'remove-javascript-downloads
+           (lambda _
+             (substitute* "src/Writers/HTMLWriter.jl"
+               (("cdnjs.cloudflare.com") "example.com"))
+             ;; Removing the javascript downloads causes these tests fail.
+             (substitute* "test/examples/tests.jl"
+               ((".*Main\\.examples_html_doc.*") "")
+               ((".*Main\\.examples_html_mathjax3_doc.*") ""))
+             #t)))))
+    (propagated-inputs
+     (list julia-ansicoloredprinters julia-docstringextensions
+           julia-iocapture julia-json))
+    (inputs
+     `(("python" ,python-wrapper)))
+    (native-inputs
+     `(("git" ,git-minimal)
+       ("julia-documentermarkdown" ,julia-documentermarkdown)
+       ("julia-documentertools" ,julia-documentertools)))
+    (home-page "https://juliadocs.github.io/Documenter.jl")
+    (synopsis "Documentation generator for Julia")
+    (description "This package provides a documentation generator for Julia.")
+    (license license:expat)))
+
+(define julia-documenter-bootstrap
+  (package
+    (inherit julia-documenter)
+    (name "julia-documenter-bootstrap")
+    (arguments
+     (substitute-keyword-arguments (package-arguments julia-documenter)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (delete 'patch-source)))
+       ;; Not all dependencies available in bootstrap version.
+       ((#:tests? _ #f) #f)))
+    (inputs `())
+    (native-inputs `())))
+
+(define-public julia-documentermarkdown
+  (package
+    (name "julia-documentermarkdown")
+    (version "0.2.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDocs/DocumenterMarkdown.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0sx89hi5p2f8zi2rp5qrv06m270d90pxj5d2y5cxls1spax7wqx8"))))
+    (build-system julia-build-system)
+    (inputs
+     ;; We don't want to propagate the bootstrap version.
+     ;; Cycle with Documenter.jl in later versions.
+     (list julia-documenter-bootstrap))
+    (home-page "https://github.com/JuliaDocs/DocumenterMarkdown.jl")
+    (synopsis "Documenter's Markdown")
+    (description "This package enables the Markdown / MkDocs backend of
+@code{Documenter.jl}.")
+    (license license:expat)))
+
+(define-public julia-documentertools
+  (package
+    (name "julia-documentertools")
+    (version "0.1.13")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDocs/DocumenterTools.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "05p57p8xlkn42m1lv9gq4hl96vp7hpj19d51p828ai1rbpcpi3a6"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f))    ; Tests require network.
+    (inputs
+     ;; We don't want to propagate the bootstrap version.
+     ;; Cycle with Documenter.jl in later versions.
+     `(("julia-documenter" ,julia-documenter-bootstrap)))
+    (propagated-inputs
+     (list julia-docstringextensions julia-gumbo julia-sass))
+    (native-inputs
+     (list julia-example))
+    (home-page "https://github.com/JuliaDocs/DocumenterTools.jl")
+    (synopsis "Extra tools for setting up Documenter.jl")
+    (description "This package contains utilities for setting up documentation
+generation with @code{Documenter.jl}.")
+    (license license:expat)))
+
 (define-public julia-diffresults
   (package
     (name "julia-diffresults")
@@ -984,7 +1301,7 @@ valuable enough at this time.")
        (sha256
         (base32 "1w6p3yxajvclax5b9g7cr2jmbc7lvr5nk4gq0aljxdycdq1d2y3v"))))
     (propagated-inputs
-     `(("julia-staticarrays" ,julia-staticarrays)))
+     (list julia-staticarrays))
     (build-system julia-build-system)
     (home-page "https://github.com/JuliaDiff/DiffResults.jl")
     (synopsis "In-place differentiation methods of primal values at multi-order")
@@ -1006,8 +1323,7 @@ be passed to in-place differentiation methods instead of an output buffer.")
        (sha256
         (base32 "0cwjvj4gma7924fm3yas0nf0jlnwwx4v7fi79ii3s290lkdldzfl"))))
     (propagated-inputs
-     `(("julia-nanmath" ,julia-nanmath)
-       ("julia-specialfunctions" ,julia-specialfunctions)))
+     (list julia-nanmath julia-specialfunctions))
     (build-system julia-build-system)
     (home-page "https://github.com/JuliaDiff/DiffRules.jl")
     (synopsis "Primitive differentiation rules")
@@ -1054,15 +1370,13 @@ stressing the robustness of differentiation tools.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'adjust-test-suite
+         (add-after 'link-depot 'adjust-test-suite
            (lambda _
              (substitute* "test/runtests.jl"
                ;; Seems to not play nicely with SpecialFunctions
                ((".*isempty.*") "")))))))
     (propagated-inputs
-     `(("julia-calculus" ,julia-calculus)
-       ("julia-nanmath" ,julia-nanmath)
-       ("julia-specialfunctions" ,julia-specialfunctions)))
+     (list julia-calculus julia-nanmath julia-specialfunctions))
     (home-page "https://github.com/JuliaDiff/DualNumbers.jl")
     (synopsis "Represent dual numbers and for perform dual algebra")
     (description "The @code{DualNumbers} Julia package defines the @code{Dual}
@@ -1088,13 +1402,13 @@ combinations of dual numbers with predefined Julia numeric types.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'adjust-test-suite
+         (add-after 'link-depot 'adjust-test-suite
            (lambda _
              (substitute* "test/runtests.jl"
                ;; Seems to not play nicely with Julia-1.6.
                ((".*basic.jl.*") "")))))))
     (propagated-inputs
-     `(("julia-arrayinterface" ,julia-arrayinterface)))
+     (list julia-arrayinterface))
     (home-page "https://github.com/ChrisRackauckas/EllipsisNotation.jl")
     (synopsis "Elipsis notation implementation")
     (description "This implements the notation @code{..} for indexing arrays.
@@ -1122,6 +1436,40 @@ before (or after)\".")
       (description "This package provides various examples.")
       (license license:expat))))
 
+;; ExproniconLite.jl is autogenerated from this package.
+(define-public julia-expronicon
+  (package
+    (name "julia-expronicon")
+    (version "0.6.10")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/Roger-luo/Expronicon.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0h8aaynqlxrkn8575k5vqmhzil4vvxchhf0bcxa6zwawp558gj2y"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'link-depot 'skip-network-tests
+           (lambda _
+             (substitute* "test/runtests.jl"
+               ;; This test tries to access the Julia package registry.
+               ((".*expand\\.jl.*") "")))))))
+    (propagated-inputs
+     (list julia-mlstyle))
+    (native-inputs
+     (list julia-documenter))
+    (home-page "https://expronicon.rogerluo.dev/dev/")
+    (synopsis "Collective tools for metaprogramming on Julia Expr")
+    (description "This package provides a collection of tools for
+metaprogramming on Julia Expr, the meta programming standard library for
+@code{MLStyle}.")
+    (license license:expat)))
+
 (define-public julia-exprtools
   (package
     (name "julia-exprtools")
@@ -1158,8 +1506,7 @@ performant tooling without requiring additional package dependencies.")
          (base32 "1ldxbp0kq3ip67x7sp82dz56aq4p5i0chspbgx2zgskr6jcbjj1b"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-ffmpeg-jll" ,julia-ffmpeg-jll)
-       ("julia-x264-jll" ,julia-x264-jll)))
+     (list julia-ffmpeg-jll julia-x264-jll))
     (home-page "https://github.com/JuliaIO/FFMPEG.jl")
     (synopsis "Julia Package for ffmpeg")
     (description "This package is made to be included into packages that just
@@ -1185,7 +1532,7 @@ need the ffmpeg binaries + executables, and don't want the overhead of
      `(#:phases
        (modify-phases %standard-phases
          (delete 'reset-gzip-timestamps)
-         (add-after 'unpack 'skip-network-tests
+         (add-after 'link-depot 'skip-network-tests
            (lambda _
              ;; These tests try to download audio/video files.
              (substitute* "test/query.jl"
@@ -1203,11 +1550,9 @@ need the ffmpeg binaries + executables, and don't want the overhead of
              (substitute* "test/runtests.jl"
                ((".*test_mimesave.*") "")))))))
     (propagated-inputs
-     `(("julia-requires" ,julia-requires)))
+     (list julia-requires))
     (native-inputs
-     `(("julia-colortypes" ,julia-colortypes)
-       ("julia-filepathsbase" ,julia-filepathsbase)
-       ("julia-http" ,julia-http)))
+     (list julia-colortypes julia-filepathsbase julia-http))
     (home-page "https://github.com/JuliaIO/FileIO.jl")
     (synopsis "Main Package for IO, loading all different kind of files")
     (description "@code{FileIO} aims to provide a common framework for detecting
@@ -1242,7 +1587,7 @@ working with filesystem paths in Julia.")
 (define-public julia-fillarrays
   (package
     (name "julia-fillarrays")
-    (version "0.12.1")
+    (version "0.12.6")
     (source
      (origin
        (method git-fetch)
@@ -1251,10 +1596,10 @@ working with filesystem paths in Julia.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1va8vvcxbxcy5xp487hdqfp0ps3m8q0819xrxygsf5135azp3qrh"))))
+        (base32 "1sx96pzrgyh8k7x2w8vmyi6cazlmp7rg1n7wbl47qfzqjggka6kz"))))
     (build-system julia-build-system)
     (inputs                             ;required by tests
-     `(("julia-staticarrays" ,julia-staticarrays)))
+     (list julia-staticarrays))
     (home-page "https://github.com/JuliaArrays/FillArrays.jl")
     (synopsis "Lazy matrix representation")
     (description "This package lazily represents matrices filled with
@@ -1287,13 +1632,10 @@ following types: @code{Eye}, @code{Fill}, @code{Ones}, @code{Zeros},
              (setenv "GROUP" "Core")
              #t)))))
     (propagated-inputs
-     `(("julia-arrayinterface" ,julia-arrayinterface)
-       ("julia-requires" ,julia-requires)
-       ("julia-staticarrays" ,julia-staticarrays)))
+     (list julia-arrayinterface julia-requires julia-staticarrays))
     (native-inputs
-     `(("julia-bandedmatrices" ,julia-bandedmatrices)
-       ("julia-blockbandedmatrices" ,julia-blockbandedmatrices)
-       ("julia-safetestsets" ,julia-safetestsets)))
+     (list julia-bandedmatrices julia-blockbandedmatrices
+           julia-safetestsets))
     (home-page "https://github.com/JuliaDiff/FiniteDiff.jl")
     (synopsis "Calculations of gradients, Jacobians, and Hessians")
     (description "This package is for calculating derivatives, gradients,
@@ -1316,12 +1658,21 @@ types and sparsity.")
        (sha256
         (base32 "09nsf9cgk49yrvprflnhd9h5rrgs280rgj8sad3csghxdx6jqk5c"))))
     (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       ,@(if (target-x86-32?)
+           '((modify-phases %standard-phases
+               (add-after 'unpack 'remove-failing-test-i686
+                 (lambda _
+                   ;; Machine Precision incorrectly handled
+                   (substitute* "test/methods.jl"
+                     (("@test central_fdm\\(15, 5, adapt=2\\)\\(exp, 1.0\\)")
+                      "@test_broken central_fdm(15, 5, adapt=2)(exp, 1.0)"))))))
+           '(%standard-phases))))
     (inputs
-     `(("julia-benchmarktools" ,julia-benchmarktools)))
+     (list julia-benchmarktools))
     (propagated-inputs
-     `(("julia-chainrulescore" ,julia-chainrulescore)
-       ("julia-richardson" ,julia-richardson)
-       ("julia-staticarrays" ,julia-staticarrays)))
+     (list julia-chainrulescore julia-richardson julia-staticarrays))
     (home-page "https://github.com/JuliaDiff/FiniteDifferences.jl")
     (synopsis "Estimates derivatives with finite differences")
     (description "This package calculates approximate derivatives numerically
@@ -1345,13 +1696,13 @@ using finite difference.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'disable-failing-test
+         (add-after 'link-depot 'disable-failing-test
            (lambda* (#:key outputs #:allow-other-keys)
              (substitute* "test/fixed.jl"
                ;; A deprecation warning is not thrown
                (("@test_logs.*:warn" all) (string-append "# " all)))
              #t)))))
-    (propagated-inputs `(("julia-compat" ,julia-compat)))
+    (propagated-inputs (list julia-compat))
     (home-page "https://github.com/JuliaMath/FixedPointNumbers.jl")
     (synopsis "Fixed point types for Julia")
     (description "@code{FixedPointNumbers.jl} implements fixed-point number
@@ -1397,16 +1748,21 @@ c-style numerical formatting.")
        (sha256
         (base32 "1vb46x8mcn61g1l14qrk22c043khg2ml4q1ci7h4k2v34f2ak5fs"))))
     (build-system julia-build-system)
+    (arguments
+     ;; XXXX: Unexpected and non-deterministic failures for i686, e.g.,
+     ;; Expression: dual_isapprox(FDNUM ^ PRIMAL, exp(PRIMAL * log(FDNUM)))
+     ;; ERROR: LoadError: LoadError: There was an error during testing
+     ;; Disable as stopgap.
+     `(#:tests? ,(not (target-x86-32?))))
     (inputs                             ;required for tests
-     `(("julia-calculus" ,julia-calculus)
-       ("julia-difftests" ,julia-difftests)))
+     (list julia-calculus julia-difftests))
     (propagated-inputs
-     `(("julia-commonsubexpressions" ,julia-commonsubexpressions)
-       ("julia-diffresults" ,julia-diffresults)
-       ("julia-diffrules" ,julia-diffrules)
-       ("julia-nanmath" ,julia-nanmath)
-       ("julia-specialfunctions" ,julia-specialfunctions)
-       ("julia-staticarrays" ,julia-staticarrays)))
+     (list julia-commonsubexpressions
+           julia-diffresults
+           julia-diffrules
+           julia-nanmath
+           julia-specialfunctions
+           julia-staticarrays))
     (home-page "https://github.com/JuliaDiff/ForwardDiff.jl")
     (synopsis "Methods to take multidimensional derivatives")
     (description "This package implements methods to take derivatives,
@@ -1432,7 +1788,7 @@ differentiation (AD).")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'adjust-tests
+         (add-after 'link-depot 'adjust-tests
            (lambda _
              (substitute* "test/runtests.jl"
                (("testset \\\"Abstract.*" all)
@@ -1443,6 +1799,31 @@ differentiation (AD).")
 arbitrary functions.")
     (license license:expat)))
 
+(define-public julia-functors
+  (package
+    (name "julia-functors")
+    (version "0.2.7")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/FluxML/Functors.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "03ry1wn1y2jssq65l29bi6q4ki041aa6gl1nd2w6cgl00k2mrxf3"))))
+    (build-system julia-build-system)
+    (home-page "https://fluxml.ai/Functors.jl/stable/")
+    (synopsis "Design pattern for structures as in machine learning")
+    (description "This package provides tools to express a design pattern for
+dealing with large/ nested structures, as in machine learning and
+optimisation.  For large machine learning models it can be cumbersome or
+inefficient to work with parameters as one big, flat vector, and structs help
+in managing complexity; but it is also desirable to easily operate over all
+parameters at once, e.g. for changing precision or applying an optimiser
+update step.")
+    (license license:expat)))
+
 (define-public julia-fuzzycompletions
   (package
     (name "julia-fuzzycompletions")
@@ -1460,7 +1841,7 @@ arbitrary functions.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'skip-failing-test
+         (add-after 'link-depot 'skip-failing-test
            (lambda _
              (substitute* "test/runtests.jl"
                ((".*RPLE.*") "")))))))
@@ -1487,12 +1868,12 @@ arbitrary functions.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'adjust-test-suite
+         (add-after 'link-depot 'adjust-test-suite
            (lambda _
              (substitute* "test/runtests.jl"
                ((".*lapack.*") "")))))))
     (native-inputs
-     `(("julia-quaternions" ,julia-quaternions)))
+     (list julia-quaternions))
     (home-page "https://github.com/JuliaLinearAlgebra/GenericLinearAlgebra.jl")
     (synopsis "Generic numerical linear algebra")
     (description "The purpose of this package is partly to extend linear algebra
@@ -1518,7 +1899,7 @@ algebra routines written in Julia (except for optimized BLAS).")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'adjust-test-suite
+         (add-after 'link-depot 'adjust-test-suite
            (lambda _
              (substitute* "test/complex.jl"
                ;; expected Array{Int32,1}, got a value of type Array{Int64,1}
@@ -1538,6 +1919,75 @@ analysis of dense matrices.  The diagonal eigen-decomposition of normal
 matrices the Schur form is often more useful.")
     (license license:expat)))
 
+(define-public julia-geometrybasics
+  (package
+    (name "julia-geometrybasics")
+    (version "0.4.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaGeometry/GeometryBasics.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "057j3hjpli3q5b98cqkpi4p10x2k9pyksrz62hjmv1kb5qzdvhsj"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'link-depot 'remove-earcut
+           (lambda _
+             (substitute* '("Project.toml"
+                            "src/GeometryBasics.jl")
+               ((".*EarCut.*") ""))))
+         (add-after 'link-depot 'skip-incompatible-test
+           (lambda _
+             (substitute* "test/runtests.jl"
+               (("@testset.*MetaT and heterogeneous data.*" all)
+                (string-append all "return\n")))))
+         ,@(if (target-64bit?)
+             '()
+             '((add-after 'unpack 'fix-tests-int32-i686
+                 (lambda _
+                   (substitute* "test/runtests.jl"
+                     (("Int64") "Int32")))))))))
+    (propagated-inputs
+     (list julia-itertools julia-staticarrays julia-structarrays
+           julia-tables))
+    (native-inputs
+     (list julia-offsetarrays))
+    (home-page "https://github.com/JuliaGeometry/GeometryBasics.jl")
+    (synopsis "Basic Geometry Types")
+    (description "This package aims to offer a standard set of Geometry types,
+which easily work with metadata, query frameworks on geometries and different
+memory layouts.  The aim is to create a solid basis for Graphics/Plotting,
+finite elements analysis, Geo applications, and general geometry manipulations
+- while offering a Julian API, that still allows performant C-interop.")
+    (license license:expat)))
+
+(define-public julia-gr
+  (package
+    (name "julia-gr")
+    (version "0.58.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/jheinen/GR.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "18zxa1w2wmrf44c5l10qbh99zjdp7h94gxlymh47cf5kj5fc4xmx"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     (list julia-gr-jll))
+    (home-page "https://github.com/jheinen/GR.jl")
+    (synopsis "Plotting for Julia based on GR")
+    (description "This module provides a Julia interface to GR, a framework for
+visualisation applications.")
+    (license license:expat)))
+
 (define-public julia-graphics
   (package
     (name "julia-graphics")
@@ -1553,8 +2003,7 @@ matrices the Schur form is often more useful.")
          (base32 "10h1s09v7qkvrjr6l678zamb1p248n8jv4rrwkf8g7d2bpfz9amn"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-colors" ,julia-colors)
-       ("julia-nanmath" ,julia-nanmath)))
+     (list julia-colors julia-nanmath))
     (home-page "https://github.com/JuliaGraphics/Graphics.jl")
     (synopsis "Base graphics in Julia")
     (description "@code{Graphics.jl} is an abstraction layer for graphical
@@ -1576,8 +2025,7 @@ operations in Julia.")
         (base32 "1g22dv3v7caakspv3pdahnqn937fzzsg9y87rj72hid9g8lxl1gm"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-abstracttrees" ,julia-abstracttrees)
-       ("julia-gumbo-jll" ,julia-gumbo-jll)))
+     (list julia-abstracttrees julia-gumbo-jll))
     (home-page "https://github.com/JuliaWeb/Gumbo.jl")
     (synopsis "Julia wrapper around Google's gumbo C library for parsing HTML")
     (description "@code{Gumbo.jl} is a Julia wrapper around Google's gumbo
@@ -1629,13 +2077,10 @@ library for parsing HTML.")
                 (string-append all "return\n")))
              #t)))))
     (propagated-inputs
-     `(("julia-inifile" ,julia-inifile)
-       ("julia-mbedtls" ,julia-mbedtls)
-       ("julia-uris" ,julia-uris)))
+     (list julia-inifile julia-mbedtls julia-uris))
     ;; required for tests
     (inputs
-     `(("julia-json" ,julia-json)
-       ("julia-bufferedstreams" ,julia-bufferedstreams)))
+     (list julia-json julia-bufferedstreams))
     (home-page "https://juliaweb.github.io/HTTP.jl/")
     (synopsis "HTTP support for Julia")
     (description "@code{HTTP.jl} is a Julia library for HTTP Messages,
@@ -1657,7 +2102,7 @@ implementing both a client and a server.")
          (base32 "0jvl4xn8f8k70sn473li5q62wbiycl5qi25b5k456h3a0j1lbiml"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-offsetarrays" ,julia-offsetarrays)))
+     (list julia-offsetarrays))
     (home-page "https://github.com/JuliaArrays/IdentityRanges.jl")
     (synopsis "Ranges that preserve indices of views")
     (description "@code{IdentityRanges} are Julia-language a helper type for
@@ -1703,12 +2148,10 @@ conditional ifelse.  It is similar to @code{Core.ifelse} but it is extendable.")
          (base32 "15zqxani1jjh8849s7rdps6b6prqdwv8yxx893y536vkpk7i07qd"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-axisarrays" ,julia-axisarrays)
-       ("julia-imagecore" ,julia-imagecore)
-       ("julia-reexport" ,julia-reexport)
-       ("julia-simpletraits" ,julia-simpletraits)))
+     (list julia-axisarrays julia-imagecore julia-reexport
+           julia-simpletraits))
     (native-inputs
-     `(("julia-unitful" ,julia-unitful)))
+     (list julia-unitful))
     (home-page "https://github.com/JuliaImages/ImageAxes.jl")
     (synopsis "Julia package for giving \"meaning\" to the axes of an image")
     (description "This small package supports the representation of images as
@@ -1733,8 +2176,7 @@ such arrays easy via traits.")
     (arguments
      `(#:tests? #f))    ; Cycle with ImageMagick.jl.
     (propagated-inputs
-     `(("julia-imagecore" ,julia-imagecore)
-       ("julia-reexport" ,julia-reexport)))
+     (list julia-imagecore julia-reexport))
     ;(native-inputs
     ; `(("julia-imagemagick" ,julia-imagemagick)
     ;   ("julia-offsetarrays" ,julia-offsetarrays)
@@ -1764,16 +2206,16 @@ dependencies.")
     (arguments
      `(#:tests? #f))    ; Cycle with ImageMagick.jl.
     (propagated-inputs
-     `(("julia-abstractffts" ,julia-abstractffts)
-       ("julia-colors" ,julia-colors)
-       ("julia-colorvectorspace" ,julia-colorvectorspace)
-       ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
-       ("julia-graphics" ,julia-graphics)
-       ("julia-mappedarrays" ,julia-mappedarrays)
-       ("julia-mosaicviews" ,julia-mosaicviews)
-       ("julia-offsetarrays" ,julia-offsetarrays)
-       ("julia-paddedviews" ,julia-paddedviews)
-       ("julia-reexport" ,julia-reexport)))
+     (list julia-abstractffts
+           julia-colors
+           julia-colorvectorspace
+           julia-fixedpointnumbers
+           julia-graphics
+           julia-mappedarrays
+           julia-mosaicviews
+           julia-offsetarrays
+           julia-paddedviews
+           julia-reexport))
     ;(native-inputs
     ; `(("julia-aqua" ,julia-aqua)
     ;   ("julia-colorvectorspace" ,julia-colorvectorspace)
@@ -1806,10 +2248,7 @@ of packages designed to support image processing and computer vision.")
     (arguments
      `(#:tests? #f))    ; Cycle with ReferenceTests.jl.
     (propagated-inputs
-     `(("julia-crayons" ,julia-crayons)
-       ("julia-imagebase" ,julia-imagebase)
-       ("julia-imagecore" ,julia-imagecore)
-       ("julia-requires" ,julia-requires)))
+     (list julia-crayons julia-imagebase julia-imagecore julia-requires))
     ;(native-inputs
     ; `(("julia-coordinatetransformations" ,julia-coordinatetransformations)
     ;   ("julia-imagemagick" ,julia-imagemagick)
@@ -1844,7 +2283,7 @@ be downscaled to fit into the size of your active terminal session.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'skip-failing-test
+         (add-after 'link-depot 'skip-failing-test
            (lambda _
              ;; These tests try to download from the imagemagick.org
              (substitute* "test/runtests.jl"
@@ -1855,18 +2294,16 @@ be downscaled to fit into the size of your active terminal session.")
                (("test (B == map)" _ test) (string-append "test_nowarn " test)))
              #t)))))
     (propagated-inputs
-     `(("julia-fileio" ,julia-fileio)
-       ("julia-imagecore" ,julia-imagecore)
-       ("julia-imagemagick-jll" ,julia-imagemagick-jll)))
+     (list julia-fileio julia-imagecore julia-imagemagick-jll))
     (native-inputs
-     `(("julia-colors" ,julia-colors)
-       ("julia-colorvectorspace" ,julia-colorvectorspace)
-       ("julia-imagemetadata" ,julia-imagemetadata)
-       ("julia-imageshow" ,julia-imageshow)
-       ("julia-imagetransformations" ,julia-imagetransformations)
-       ("julia-indirectarrays" ,julia-indirectarrays)
-       ("julia-offsetarrays" ,julia-offsetarrays)
-       ("julia-zipfile" ,julia-zipfile)))
+     (list julia-colors
+           julia-colorvectorspace
+           julia-imagemetadata
+           julia-imageshow
+           julia-imagetransformations
+           julia-indirectarrays
+           julia-offsetarrays
+           julia-zipfile))
     (home-page "https://github.com/JuliaIO/ImageMagick.jl")
     (synopsis "Thin wrapper for ImageMagick")
     (description "This package provides a wrapper around ImageMagick version 6.
@@ -1888,14 +2325,10 @@ It was split off from @code{Images.jl} to make image I/O more modular.")
          (base32 "0iv154ms370xgcr56bwsjl13iwmy671cbxjl9ld5yfj85pclcwi1"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-axisarrays" ,julia-axisarrays)
-       ("julia-imageaxes" ,julia-imageaxes)
-       ("julia-imagecore" ,julia-imagecore)
-       ("julia-indirectarrays" ,julia-indirectarrays)))
+     (list julia-axisarrays julia-imageaxes julia-imagecore
+           julia-indirectarrays))
     (native-inputs
-     `(("julia-offsetarrays" ,julia-offsetarrays)
-       ("julia-simpletraits" ,julia-simpletraits)
-       ("julia-unitful" ,julia-unitful)))
+     (list julia-offsetarrays julia-simpletraits julia-unitful))
     (home-page "https://github.com/JuliaImages/ImageMetadata.jl")
     (synopsis "Julia package for images having metadata")
     (description "@code{ImageMetadata} is a simple package providing utilities
@@ -1922,11 +2355,8 @@ information about the detector used to acquire the image.")
     (arguments
      `(#:tests? #f))    ; cycle with ImageMagick.jl.
     (propagated-inputs
-     `(("julia-fileio" ,julia-fileio)
-       ("julia-imagebase" ,julia-imagebase)
-       ("julia-imagecore" ,julia-imagecore)
-       ("julia-offsetarrays" ,julia-offsetarrays)
-       ("julia-stackviews" ,julia-stackviews)))
+     (list julia-fileio julia-imagebase julia-imagecore
+           julia-offsetarrays julia-stackviews))
     ;(native-inputs
     ; `(("julia-imagedistances" ,julia-imagedistances)
     ;   ("julia-imagemagick" ,julia-imagemagick)
@@ -1957,15 +2387,15 @@ inline presentation of greyscale or color images.")
     (arguments
      `(#:tests? #f))    ; Cycle with ImageMagick.jl.
     (propagated-inputs
-     `(("julia-axisalgorithms" ,julia-axisalgorithms)
-       ("julia-colorvectorspace" ,julia-colorvectorspace)
-       ("julia-coordinatetransformations" ,julia-coordinatetransformations)
-       ("julia-identityranges" ,julia-identityranges)
-       ("julia-imagecore" ,julia-imagecore)
-       ("julia-interpolations" ,julia-interpolations)
-       ("julia-offsetarrays" ,julia-offsetarrays)
-       ("julia-rotations" ,julia-rotations)
-       ("julia-staticarrays" ,julia-staticarrays)))
+     (list julia-axisalgorithms
+           julia-colorvectorspace
+           julia-coordinatetransformations
+           julia-identityranges
+           julia-imagecore
+           julia-interpolations
+           julia-offsetarrays
+           julia-rotations
+           julia-staticarrays))
     ;(native-inputs
     ; `(("julia-imagemagick" ,julia-imagemagick)
     ;   ("julia-referencetests" ,julia-referencetests)
@@ -2012,9 +2442,7 @@ out of dictionaries, tuples, etc, extending this ability beyond
          (base32 "0l0jq0jnr9z3k431ni82xycq7mqapgxrbrx4yyk6lycvi41ipm4s"))))
     (build-system julia-build-system)
     (native-inputs
-     `(("julia-colors" ,julia-colors)
-       ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
-       ("julia-mappedarrays" ,julia-mappedarrays)))
+     (list julia-colors julia-fixedpointnumbers julia-mappedarrays))
     (home-page "https://github.com/JuliaArrays/IndirectArrays.jl")
     (synopsis "Julia implementation of indexed arrays")
     (description "An @code{IndirectArray} is one that encodes data using a
@@ -2024,6 +2452,39 @@ assigned its own index, which is used to retrieve the value from the
 indexed images, sometimes called \"colormap images\" or \"paletted images.\"")
     (license license:expat)))
 
+(define-public julia-infinity
+  (package
+    (name "julia-infinity")
+    (version "0.2.4")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/cjdoris/Infinity.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1941lwvrdjnrynigzixxin3chpg1ba6xplvcwc89x0f6z658hwmm"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'link-depot 'remove-timezones.jl
+           (lambda _
+             (substitute* "test/runtests.jl"
+               (("using TimeZones.*") "")
+               ((".*infextendedtime.*") ""))
+             #t)))))
+    (propagated-inputs
+     (list julia-requires))
+    (native-inputs
+     (list julia-compat))
+    (home-page "https://docs.juliahub.com/Infinity/")
+    (synopsis "Representation of infinity in Julia")
+    (description "This package provides representations for infinity and
+negative infinity in Julia.")
+    (license license:expat)))
+
 (define-public julia-inifile
   (package
     (name "julia-inifile")
@@ -2058,19 +2519,23 @@ interfaces with @file{.ini} files.")
         (sha256
          (base32 "1236c20k388qlh7k74mhf7hkbn0vf7ss8b1rgh1a6aj0234ayfnc"))))
     (build-system julia-build-system)
+    (arguments
+     `(#:parallel-tests? #f
+       ;; XXXX: Unexpected failures for i686, e.g.,
+       ;; Got exception outside of a @test
+       ;; OverflowError: 96908232 * 106943408 overflowed for type Int32
+       ;; Disable as stopgap.
+       #:tests? ,(not (target-x86-32?))))
     (propagated-inputs
-     `(("julia-axisalgorithms" ,julia-axisalgorithms)
-       ("julia-offsetarrays" ,julia-offsetarrays)
-       ("julia-ratios" ,julia-ratios)
-       ("julia-requires" ,julia-requires)
-       ("julia-staticarrays" ,julia-staticarrays)
-       ("julia-woodburymatrices" ,julia-woodburymatrices)))
+     (list julia-axisalgorithms
+           julia-offsetarrays
+           julia-ratios
+           julia-requires
+           julia-staticarrays
+           julia-woodburymatrices))
     (native-inputs
-     `(("julia-dualnumbers" ,julia-dualnumbers)
-       ("julia-forwarddiff" ,julia-forwarddiff)
-       ("julia-offsetarrays" ,julia-offsetarrays)
-       ("julia-unitful" ,julia-unitful)
-       ("julia-zygote" ,julia-zygote)))
+     (list julia-dualnumbers julia-forwarddiff julia-offsetarrays
+           julia-unitful julia-zygote))
     (home-page "https://github.com/JuliaMath/Interpolations.jl")
     (synopsis "Continuous interpolation of discrete datasets")
     (description "This package implements a variety of interpolation schemes for
@@ -2092,10 +2557,24 @@ and exceptional performance.")
         (sha256
          (base32 "0gsz89cd3iygbl5qr389k9vwpg7w1nk0s90g25nsmk34y9hifxag"))))
     (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       ,@(if (target-x86-32?)
+           '((modify-phases %standard-phases
+               (add-after 'unpack 'remove-failing-test-i686
+                 (lambda _
+                   (substitute* "test/runtests.jl"
+                     ;; For some reason, the output is correct but the test
+                     ;; is considered as failed:
+                     ;; Expression: duration(ClosedInterval(A, B)) ≡ 60
+                     ;; Evaluated: 60 ≡ 60
+                     (("@test duration\\(ClosedInterval")
+                      "@test_broken duration(ClosedInterval"))))))
+           '(%standard-phases))))
     (propagated-inputs
-     `(("julia-ellipsisnotation" ,julia-ellipsisnotation)))
+     (list julia-ellipsisnotation))
     (native-inputs
-     `(("julia-offsetarrays" ,julia-offsetarrays)))
+     (list julia-offsetarrays))
     (home-page "https://github.com/JuliaMath/IntervalSets.jl")
     (synopsis "Interval Sets for Julia")
     (description "This package is intended to implement a \"minimal\" foundation
@@ -2119,7 +2598,7 @@ unambiguously define the @code{..} and @code{±} operators.")
          (base32 "1179z20yxnkyziip7gn26wr1g3k3ssl1ci7pig3khc900f62di46"))))
     (build-system julia-build-system)
     (native-inputs
-     `(("julia-offsetarrays" ,julia-offsetarrays)))
+     (list julia-offsetarrays))
     (home-page "https://github.com/mbauman/InvertedIndices.jl")
     (synopsis "Index type that allows for inverted selections")
     (description "This package just exports one type: the @code{InvertedIndex},
@@ -2161,11 +2640,11 @@ as a string together with the return value.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "11334fcg2slpwcj0raxf457brhf7pxglgxc6cy8q58ggrpxqfqql"))))
-    (arguments
-     '(#:tests? #f))                    ;require Documenter, not packaged yet
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-macrotools" ,julia-macrotools)))
+     (list julia-macrotools))
+    (native-inputs
+     (list julia-documenter))
     (home-page "https://github.com/FluxML/IRTools.jl")
     (synopsis "Simple and flexible IR format")
     (description "This package provides a simple and flexible IR format,
@@ -2214,6 +2693,25 @@ extensions to the iterator interface.")
      "Common functional iterator patterns (formerly @code{Iterators.jl}).")
     (license license:expat)))
 
+(define-public julia-jive
+  (package
+    (name "julia-jive")
+    (version "0.2.20")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/wookay/Jive.jl")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0khwsdh8472jxcfi9lqw14l49sqlbsixql1jb4irnyajxkdjrcsf"))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/wookay/Jive.jl")
+    (synopsis "Julia package to help with writing tests")
+    (description "@code{Jive.jl} is a Julia package to help with writing tests.")
+    (license license:expat)))
+
 (define-public julia-json
   (package
     (name "julia-json")
@@ -2229,10 +2727,8 @@ extensions to the iterator interface.")
         (base32 "1f9k613kbknmp4fgjxvjaw4d5sfbx8a5hmcszmp1w9rqfqngjx9m"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-datastructures" ,julia-datastructures)
-       ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
-       ("julia-parsers" ,julia-parsers)
-       ("julia-offsetarrays" ,julia-offsetarrays)))
+     (list julia-datastructures julia-fixedpointnumbers julia-parsers
+           julia-offsetarrays))
     (home-page "https://github.com/JuliaIO/JSON.jl")
     (synopsis "JSON parsing and printing library for Julia")
     (description "@code{JSON.jl} is a pure Julia module which supports parsing
@@ -2254,18 +2750,39 @@ and printing JSON documents.")
          (base32 "11z5maz7v50wd99id8z7838higza0cllh2amkdkrlskbri3v2f17"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-parsers" ,julia-parsers)
-       ("julia-structtypes" ,julia-structtypes)))
+     (list julia-parsers julia-structtypes))
     (home-page "https://github.com/quinnj/JSON3.jl")
     (synopsis "JSON package for Julia")
     (description "This package provides another JSON package for Julia, with a
 focus on speed and slick struct mapping.")
     (license license:expat)))
 
+(define-public julia-latexstrings
+  (package
+    (name "julia-latexstrings")
+    (version "1.2.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/stevengj/LaTeXStrings.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "117z27krcf8fydgp6mb0pgn75r4gng9qs7v90qb4bqzsry3faadp"))))
+    (build-system julia-build-system)
+    (native-inputs
+     (list julia-documenter))
+    (home-page "https://github.com/stevengj/LaTeXStrings.jl")
+    (synopsis "Input and display of LaTeX equation strings")
+    (description "This is a small package to make it easier to type LaTeX
+equations in string literals in the Julia language.")
+    (license license:expat)))
+
 (define-public julia-lazyarrays
   (package
     (name "julia-lazyarrays")
-    (version "0.21.14")
+    (version "0.22.2")
     (source
       (origin
         (method git-fetch)
@@ -2274,16 +2791,22 @@ focus on speed and slick struct mapping.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "130kqyfk0h17s9dr9r1p9n1dgvzzlb1jwn6pj14lwr83s36glpv1"))))
+         (base32 "17rhlrmgfvdw8w62pg32ikr9j4xy2ylr7mx7ar0hnpzryv929rp5"))))
     (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       ,@(if (target-64bit?)
+           '(%standard-phases)
+           '((modify-phases %standard-phases
+               (add-after 'unpack 'fix-tests-int32-i686
+                 (lambda _
+                   (substitute* "test/multests.jl"
+                     (("Int64") "Int32")))))))))
     (propagated-inputs
-     `(("julia-arraylayouts" ,julia-arraylayouts)
-       ("julia-fillarrays" ,julia-fillarrays)
-       ("julia-macrotools" ,julia-macrotools)
-       ("julia-matrixfactorizations" ,julia-matrixfactorizations)
-       ("julia-staticarrays" ,julia-staticarrays)))
+     (list julia-arraylayouts julia-fillarrays julia-macrotools
+           julia-matrixfactorizations julia-staticarrays))
     (native-inputs
-     `(("julia-tracker" ,julia-tracker)))
+     (list julia-tracker))
     (home-page "https://github.com/JuliaArrays/LazyArrays.jl")
     (synopsis "Lazy arrays and linear algebra")
     (description "This package supports lazy analogues of array operations like
@@ -2306,9 +2829,9 @@ implementation of matrix-free methods for iterative solvers.")
          (base32 "0rvms3mmq8a1viqlyzdgs2ccddcy6j0c677dlb8m5nk6hkiwr16n"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-docstringextensions" ,julia-docstringextensions)))
+     (list julia-docstringextensions))
     (native-inputs
-     `(("julia-offsetarrays" ,julia-offsetarrays)))
+     (list julia-offsetarrays))
     (home-page "https://github.com/JuliaStats/LogExpFunctions.jl")
     (synopsis "Special functions based on @code{log} and @code{exp}")
     (description "Various special functions based on log and exp moved from
@@ -2352,12 +2875,19 @@ that let you do deep transformations of code.")
         (sha256
          (base32 "0l5adird8m1cmnsxwhzi5hcr7q9bm1rf7a6018zc7kcn2yxdshy3"))))
     (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       ,@(if (target-64bit?)
+           '(%standard-phases)
+           '((modify-phases %standard-phases
+               (add-after 'unpack 'fix-tests-int32-i686
+                 (lambda _
+                   (substitute* "test/runtests.jl"
+                     (("Int64") "Int32")))))))))
     (propagated-inputs
-     `(("julia-fixedpointnumbers" ,julia-fixedpointnumbers)))
+     (list julia-fixedpointnumbers))
     (native-inputs
-     `(("julia-colortypes" ,julia-colortypes)
-       ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
-       ("julia-offsetarrays" ,julia-offsetarrays)))
+     (list julia-colortypes julia-fixedpointnumbers julia-offsetarrays))
     (home-page "https://github.com/JuliaArrays/MappedArrays.jl")
     (synopsis "Lazy in-place transformations of arrays")
     (description "This package implements \"lazy\" in-place elementwise
@@ -2385,7 +2915,7 @@ comes from the fact that @code{M == map(f, A)}.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'skip-failing-test
+         (add-after 'link-depot 'skip-failing-test
            (lambda _
              ;; Tests with math functions are hard.
              (substitute* "test/test_ul.jl"
@@ -2394,7 +2924,7 @@ comes from the fact that @code{M == map(f, A)}.")
                (("test String") "test_nowarn String"))
              #t)))))
     (propagated-inputs
-     `(("julia-arraylayouts" ,julia-arraylayouts)))
+     (list julia-arraylayouts))
     (home-page "https://github.com/JuliaMatrices/MatrixFactorizations.jl")
     (synopsis "Julia package to contain non-standard matrix factorizations")
     (description "A Julia package to contain non-standard matrix factorizations.
@@ -2426,13 +2956,40 @@ may include other factorizations such as the LQ factorization.")
              (substitute* "test/runtests.jl"
                (("testhost =") "return #"))
              #t)))))
-    (propagated-inputs `(("julia-mbedtls-jll" ,julia-mbedtls-jll)))
+    (propagated-inputs (list julia-mbedtls-jll))
     (home-page "https://github.com/JuliaLang/MbedTLS.jl")
     (synopsis "Apache's mbed TLS library wrapper")
     (description "@code{MbedTLS.jl} provides a wrapper around the @code{mbed
 TLS} and cryptography C library for Julia.")
     (license license:expat)))
 
+(define-public julia-measurements
+  (package
+    (name "julia-measurements")
+    (version "2.6.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaPhysics/Measurements.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "05p3f0gr4sv4maq8cix5fi8ldq0zagswqsd43xn6fhy046f936mz"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     (list julia-calculus julia-recipesbase julia-requires))
+    (native-inputs
+     (list julia-quadgk julia-specialfunctions julia-unitful))
+    (home-page "https://juliaphysics.github.io/Measurements.jl/stable/")
+    (synopsis "Error propagation calculator and library")
+    (description "@code{Measurements.jl} is an error propagation calculator and
+library for physical measurements.  It supports real and complex numbers with
+uncertainty, arbitrary precision calculations, operations with arrays, and
+numerical integration.  The linear error propagation theory is employed to
+propagate the errors.")
+    (license license:expat)))
+
 (define-public julia-measures
   (package
     (name "julia-measures")
@@ -2455,10 +3012,60 @@ expressions involving differing types of units that are then evaluated,
 resolving them into absolute units.")
     (license license:expat)))
 
+(define-public julia-media
+  (package
+    (name "julia-media")
+    (version "0.5.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JunoLab/Media.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "05jq9j3vs8yfj2lwz3sh1vk5rha06xdcikp9s2q3dn316vryy6di"))))
+    (build-system julia-build-system)
+    ;; Package without Project.toml
+    (arguments
+     '(#:julia-package-name "Media"
+       #:julia-package-uuid "e89f7d12-3494-54d1-8411-f7d8b9ae1f27"))
+    (propagated-inputs
+     (list julia-macrotools))
+    (home-page "https://github.com/JunoLab/Media.jl")
+    (synopsis "Unified measure and coordinates types")
+    (description "This package provides a display system which enables the
+user handle multiple input/output devices and decide what media types get
+displayed where.")
+    (license license:expat)))
+
+(define-public julia-millboard
+  (package
+    (name "julia-millboard")
+    (version "0.2.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/wookay/Millboard.jl")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0k9jqgp285qhckldvvsmfk6s69dcr8s74m2fijgm2vxjj2gqjs1n"))))
+    (build-system julia-build-system)
+    (native-inputs
+     (list julia-jive))
+    (home-page "https://github.com/wookay/Millboard.jl")
+    (synopsis "Displaying data in tables for Julia")
+    (description
+     "@code{Millboard.jl} provides a library for getting data in a tablized
+format to arrange into rows and columns of cells.")
+    (license license:expat)))
+
 (define-public julia-missings
   (package
     (name "julia-missings")
-    (version "1.0.0")
+    (version "1.0.2")
     (source
       (origin
         (method git-fetch)
@@ -2467,20 +3074,42 @@ resolving them into absolute units.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "131ma44yvswvj85jdjhm37frzfz46cc60lwj65a9jcmgc77dshsm"))))
+         (base32 "1k481rm5lahmjyh34j177d4n10svgr0wm7ps5m3ar3xx6nr26ad5"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-dataapi" ,julia-dataapi)))
+     (list julia-dataapi))
     (home-page "https://github.com/JuliaData/Missings.jl")
     (synopsis "Additional missing value support for Julia")
     (description "This package provides additional functionality for working
 with @code{missing} values in Julia.")
     (license license:expat)))
 
+(define-public julia-mlstyle
+  (package
+    (name "julia-mlstyle")
+    (version "0.4.10")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/thautwarm/MLStyle.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0h1cd7cr4c4cnpqyj3180113gdbvcc047lqphp8a8gq5smp3c059"))))
+    (build-system julia-build-system)
+    (native-inputs
+     (list julia-datastructures))
+    (home-page "https://thautwarm.github.io/MLStyle.jl/latest/")
+    (synopsis "Julia functional programming infrastructures")
+    (description "This package provides consistent and extensible functional
+programming infrastructures, and metaprogramming facilities.")
+    (license license:expat)))
+
 (define-public julia-mocking
   (package
     (name "julia-mocking")
-    (version "0.7.1")
+    (version "0.7.3")
     (source
       (origin
         (method git-fetch)
@@ -2489,10 +3118,10 @@ with @code{missing} values in Julia.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "10jz716v6i3gpd403rmcrip6cncjl9lqr12cdl321x1994a5g8ck"))))
+         (base32 "1cg2is83bjmrchmmxcgx57k8c9b9vlamrw38v4fdhbb6d4six5cg"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-exprtools" ,julia-exprtools)))
+     (list julia-compat julia-exprtools))
     (home-page "https://github.com/invenia/Mocking.jl")
     (synopsis "Overload Julia function calls")
     (description "The purpose of this package is to allow Julia function calls
@@ -2516,9 +3145,7 @@ to be temporarily overloaded for the purpose of testing.")
     (arguments
      `(#:tests? #f))    ; Cycle with ImageCore.jl
     (propagated-inputs
-     `(("julia-mappedarrays" ,julia-mappedarrays)
-       ("julia-paddedviews" ,julia-paddedviews)
-       ("julia-stackviews" ,julia-stackviews)))
+     (list julia-mappedarrays julia-paddedviews julia-stackviews))
     ;(native-inputs
     ; `(("julia-colorvectorspace" ,julia-colorvectorspace)
     ;   ("julia-imagecore" ,julia-imagecore)))
@@ -2565,8 +3192,24 @@ Julia, with type-driven, overloadable packing/unpacking functionality.")
         (sha256
          (base32 "1isyj8h4nx96cr6892d154v8pw1nhr7mjyz5bd6ffr2mkzb2bq4f"))))
     (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       ,@(if (target-x86-32?)
+           '((modify-phases %standard-phases
+               (add-after 'unpack 'remove-failing-test-i686
+                 (lambda _
+                   (substitute* "test/utilities.jl"
+                     ;; Non-deterministic returned value, e.g.,
+                     ;;    Expression: n == @allocated(f())
+                     ;;    Evaluated: 240 == 120
+                     ;; and for some other values:
+                     ;;    Got correct result, please change to @test
+                     ;; so @test_broken is not enough.
+                     (("@test n == @allocated f\\(\\)")
+                      " "))))))
+           '(%standard-phases))))
     (propagated-inputs
-     `(("julia-offsetarrays" ,julia-offsetarrays)))
+     (list julia-offsetarrays))
     (home-page "https://github.com/jump-dev/MutableArithmetics.jl")
     (synopsis "Interface for arithmetics on mutable types in Julia")
     (description "MutableArithmetics is a Julia package which allows:
@@ -2612,12 +3255,9 @@ still being completely generic
          (base32 "0n8qh5a2ghjx1j70zxn0hmh8gzpa46kmjg8di879y9974bfk0f98"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-diffresults" ,julia-diffresults)
-       ("julia-finitediff" ,julia-finitediff)
-       ("julia-forwarddiff" ,julia-forwarddiff)))
+     (list julia-diffresults julia-finitediff julia-forwarddiff))
     (native-inputs
-     `(("julia-optimtestproblems" ,julia-optimtestproblems)
-       ("julia-recursivearraytools" ,julia-recursivearraytools)))
+     (list julia-optimtestproblems julia-recursivearraytools))
     (home-page "https://github.com/JuliaNLSolvers/NLSolversBase.jl")
     (synopsis "Optimization and equation solver software in JuliaNLSolvers")
     (description "This package aims at establishing common ground for Optim.jl,
@@ -2629,7 +3269,7 @@ interface to interact with these types.")
 (define-public julia-nnlib
   (package
     (name "julia-nnlib")
-    (version "0.7.25")
+    (version "0.7.29")
     (source
       (origin
         (method git-fetch)
@@ -2638,25 +3278,21 @@ interface to interact with these types.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "0vp4kcn9ivkhmqgkyvnabcdqi6pv7ghbmjc1llkwv1kzhylyf86p"))))
+         (base32 "16vn5w5274kcywh1xp0zqjk5q10xrk125aznz5av6wifwrvghk8s"))))
     (build-system julia-build-system)
     (arguments
-     `(#:tests? #f      ; Test suite not updated for ChainRulesTestUtils-1.0.
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'drop-cuda-support
+         (add-after 'link-depot 'skip-cuda-tests
            (lambda _
              (substitute* "test/runtests.jl"
-               (("using CUDA") ""))
+               (("using CUDA") "")
+               (("&& CUDA\\.functional\\(\\)") ""))
              (setenv "NNLIB_TEST_CUDA" "false"))))))
     (propagated-inputs
-     `(("julia-adapt" ,julia-adapt)
-       ("julia-chainrulescore" ,julia-chainrulescore)
-       ("julia-requires" ,julia-requires)))
+     (list julia-adapt julia-chainrulescore julia-requires))
     (native-inputs
-     `(("julia-chainrulestestutils" ,julia-chainrulestestutils)
-       ("julia-stablerngs" ,julia-stablerngs)
-       ("julia-zygote" ,julia-zygote)))
+     (list julia-chainrulestestutils julia-stablerngs julia-zygote))
     (home-page "https://github.com/FluxML/NNlib.jl")
     (synopsis "Neural Network primitives with multiple backends")
     (description "This package will provide a library of functions useful for
@@ -2679,7 +3315,8 @@ doesn't provide any other \"high-level\" functionality like layers or AD.")
          (base32 "10h47x5ws42pkqjccimaz0yxfvz41w0yazq6inamfk4lg5g2g3d9"))))
     (build-system julia-build-system)
     (arguments
-     `(#:julia-package-name "OptimTestProblems"))
+     `(#:julia-package-name "OptimTestProblems"
+       #:julia-package-uuid "cec144fc-5a64-5bc6-99fb-dde8f63e154c"))
     (home-page "https://github.com/JuliaNLSolvers/OptimTestProblems.jl")
     (synopsis "Collection of optimization test problems")
     (description "The purpose of this package is to provide test problems for
@@ -2723,7 +3360,7 @@ which they were added to the collection.")
         (base32 "0j5a8ar8yc0j9h87gwfyrcqm23wpyv5yv5gn8vzilpg4vr0fiasc"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-adapt" ,julia-adapt)))
+     (list julia-adapt))
     ;; CatIndices depends on OffsetArrays, introducing a recursive dependency
     (arguments '(#:tests? #f))
     (home-page "https://juliaarrays.github.io/OffsetArrays.jl/stable/")
@@ -2747,10 +3384,10 @@ languages like Fortran.")
         (sha256
          (base32 "0ran2vj6ahlzib0g77y7g0jhavy3k9s2mqq23ybpgp9z677wf26h"))))
     (build-system julia-build-system)
-    (arguments
-     '(#:tests? #f))                    ;require Documenter, not packaged yet
     (propagated-inputs
-     `(("julia-offsetarrays" ,julia-offsetarrays)))
+     (list julia-offsetarrays))
+    (native-inputs
+     (list julia-documenter))
     (home-page "https://github.com/JuliaArrays/PaddedViews.jl")
     (synopsis "Add virtual padding to the edges of an array")
     (description "@code{PaddedViews} provides a simple wrapper type,
@@ -2775,8 +3412,7 @@ Multiple arrays may be \"promoted\" to have common indices using the
          (base32 "0b8lawi7kcws4axfsdf023gyxca15irl648ciyi1kw3wghz3pfi2"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-orderedcollections" ,julia-orderedcollections)
-       ("julia-unpack" ,julia-unpack)))
+     (list julia-orderedcollections julia-unpack))
     (home-page "https://github.com/mauro3/Parameters.jl")
     (synopsis "Numerical-model parameter helpers")
     (description "This package contains types with default field values, keyword
@@ -2844,8 +3480,7 @@ actual computation.")
          (base32 "1fd27w9z1vhz0d1bzrs5vcavpb5r5jviyh27d9c4ka37phz4xvmh"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-plotutils" ,julia-plotutils)
-       ("julia-requires" ,julia-requires)))
+     (list julia-plotutils julia-requires))
     (home-page "https://github.com/JuliaPlots/PlotThemes.jl")
     (synopsis "Themes for the Julia plotting package Plots.jl")
     (description
@@ -2855,7 +3490,7 @@ actual computation.")
 (define-public julia-plotutils
   (package
     (name "julia-plotutils")
-    (version "1.0.11")
+    (version "1.0.15")
     (source
       (origin
         (method git-fetch)
@@ -2864,14 +3499,12 @@ actual computation.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "0pqd3yvs3w48sr50c8rcqk5pzvpdy9nf4kimcvyz9dvwc3jgh6rd"))))
+         (base32 "12aw5gkkcfhpczv2w510k65w1j0hjnh825ihimi223v8plsi5105"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-colors" ,julia-colors)
-       ("julia-colorschemes" ,julia-colorschemes)
-       ("julia-reexport" ,julia-reexport)))
+     (list julia-colors julia-colorschemes julia-reexport))
     (native-inputs
-     `(("julia-stablerngs" ,julia-stablerngs)))
+     (list julia-stablerngs))
     (home-page "https://github.com/JuliaPlots/PlotUtils.jl")
     (synopsis "Helper algorithms for building plotting components")
     (description "This package contains generic helper algorithms for building
@@ -2881,7 +3514,7 @@ plotting components.")
 (define-public julia-pooledarrays
   (package
     (name "julia-pooledarrays")
-    (version "1.2.1")
+    (version "1.3.0")
     (source
       (origin
         (method git-fetch)
@@ -2890,10 +3523,10 @@ plotting components.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "0ihvhzkxdw4qf0i6sbrickhdcwkmlin9zyixxn9xvgzm8nc0iwqy"))))
+         (base32 "0qdwvf1p5z6z0q4s4hn85ysd8wq47zy6hlzddc5ijvhk86ccqlrr"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-dataapi" ,julia-dataapi)))
+     (list julia-dataapi))
     (home-page "https://github.com/JuliaData/PooledArrays.jl")
     (synopsis "Pooled representation of arrays in Julia")
     (description "This package provides a pooled representation of arrays for
@@ -2915,8 +3548,7 @@ purposes of compression when there are few unique elements.")
          (base32 "1wxy6ak7f3hvibcgc8q88cgkf9zvi649mmjy1zlkx1qk80hgvz23"))))
     (build-system julia-build-system)
     (native-inputs
-     `(("julia-forwarddiff" ,julia-forwarddiff)
-       ("julia-reversediff" ,julia-reversediff)))
+     (list julia-forwarddiff julia-reversediff))
     (home-page "https://github.com/timholy/PositiveFactorizations.jl")
     (synopsis "Positive-definite \"approximations\" to matrices")
     (description "@code{PositiveFactorizations} is a package for computing a
@@ -2969,22 +3601,147 @@ everything from run time algorithm choice to code generation at compile time.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'skip-color-tests
+         (add-after 'link-depot 'skip-color-tests
            (lambda _
              (substitute* "test/text_backend.jl"
                ((".*colors\\.jl.*") ""))
              #t)))))
     (propagated-inputs
-     `(("julia-crayons" ,julia-crayons)
-       ("julia-formatting" ,julia-formatting)
-       ("julia-reexport" ,julia-reexport)
-       ("julia-tables" ,julia-tables)))
+     (list julia-crayons julia-formatting julia-reexport julia-tables))
     (home-page "https://github.com/ronisbr/PrettyTables.jl")
     (synopsis "Print data in formatted tables")
     (description "This package has the purpose to print data in matrices in a
 human-readable format.")
     (license license:expat)))
 
+(define-public julia-pycall
+  (package
+    (name "julia-pycall")
+    (version "1.92.5")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaPy/PyCall.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "1fj5d1ihnhnm0pl4hbx6hcd2bpdyhm8jiaqah2axsbd069j70saf"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:imported-modules ((guix build python-build-system)
+                           ,@%julia-build-system-modules)
+       #:modules ((guix build julia-build-system)
+                  (guix build utils)
+                  ((guix build python-build-system) #:prefix python:))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'link-depot 'remove-conda
+           (lambda _
+             (substitute* "Project.toml"
+               ((".*Conda.*") ""))
+             (substitute* (list "src/PyCall.jl"
+                                "test/runtests.jl")
+               (("import Conda") ""))
+             (substitute* "deps/depsutils.jl"
+               (("Conda.PYTHONDIR") "\"/\""))
+             #t))
+         (add-after 'link-depot 'set-python
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((python (assoc-ref inputs "python")))
+               (setenv "PYCALL_JL_RUNTIME_PYTHON"
+                       (string-append python "/bin/python3"))
+               (with-output-to-file "deps/deps.jl"
+                 (lambda _
+                   (format #t
+                           "const python = \"~a/bin/python3\"~@
+                           const pyprogramname = \"~a/bin/python3\"~@
+                           const libpython = \"~a/lib/libpython~a.so.1.0\"~@
+                           const PYTHONHOME = \"~a\"~@
+                           const pyversion_build = v\"~a\"~@
+                           const conda = false~%"
+                           python
+                           python
+                           python
+                           (python:python-version python)
+                           python
+                           ,(package-version python))))
+               #t)))
+         (add-before 'check 'pre-check
+           (lambda _
+             (setenv "CI" "true")
+             (setenv "JULIA_PKGEVAL" "true")
+             #t)))))
+    (propagated-inputs
+     (list julia-macrotools julia-versionparsing))
+    (inputs
+     (list python))
+    (native-inputs
+     (list python-numpy))
+    (home-page "https://github.com/JuliaPy/PyCall.jl")
+    (synopsis "Call Python functions from the Julia language")
+    (description "This package provides the ability to directly call and fully
+interoperate with Python from the Julia language.  You can import arbitrary
+Python modules from Julia, call Python functions (with automatic conversion of
+types between Julia and Python), define Python classes from Julia methods, and
+share large data structures between Julia and Python without copying them.")
+    (license license:expat)))
+
+(define-public julia-pyplot
+  (package
+    (name "julia-pyplot")
+    (version "2.10.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaPy/PyPlot.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "007zs0imfgs69f30pp2a3rc93kl0qiq7qjx6ig35z4wzkmps4skd"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     (list julia-colors
+           julia-latexstrings
+           julia-pycall
+           julia-versionparsing
+           ;; python-matplotlib is expected to be available at runtime.
+           python-matplotlib))
+    (home-page "https://github.com/JuliaPy/PyPlot.jl")
+    (synopsis "Plotting for Julia based on matplotlib.pyplot")
+    (description "This package provides a Julia interface to the Matplotlib
+plotting library from Python, and specifically to the @code{matplotlib.pyplot}
+module.  PyPlot uses the Julia PyCall package to call Matplotlib directly from
+Julia with little or no overhead (arrays are passed without making a copy).")
+    (license license:expat)))
+
+(define-public julia-quadgk
+  (package
+    (name "julia-quadgk")
+    (version "2.4.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaMath/QuadGK.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1hy0629yai6xflgxaflk9764lzr1lzhlghimxk1aqi212q9c6n33"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     (list julia-datastructures))
+    (home-page "https://github.com/JuliaMath/QuadGK.jl")
+    (synopsis "Adaptive 1d numerical Gauss–Kronrod integration")
+    (description "This package provides support for one-dimensional numerical
+integration in Julia using adaptive Gauss-Kronrod quadrature.  The code was
+originally part of Base Julia.  It supports integration of arbitrary numeric
+types, including arbitrary precision (@code{BigFloat}), and even integration of
+arbitrary normed vector spaces (e.g. matrix-valued integrands).")
+    (license license:expat)))
+
 (define-public julia-quadmath
   (package
     (name "julia-quadmath")
@@ -3002,7 +3759,7 @@ human-readable format.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'hardcode-libmath-location
+         (add-after 'link-depot 'hardcode-libmath-location
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((gcclib (assoc-ref inputs "gcc:lib")))
                (substitute* "src/Quadmath.jl"
@@ -3010,11 +3767,11 @@ human-readable format.")
                  (("libquadmath.so.0" lib) (string-append gcclib "/lib/" lib)))
                #t))))))
     (propagated-inputs
-     `(("julia-requires" ,julia-requires)))
+     (list julia-requires))
     (inputs
      `(("gcc:lib" ,gcc "lib")))
     (native-inputs
-     `(("julia-specialfunctions" ,julia-specialfunctions)))
+     (list julia-specialfunctions))
     (home-page "https://github.com/JuliaMath/Quadmath.jl")
     (synopsis "Float128 and libquadmath for the Julia language")
     (description "This is a Julia interface to @code{libquadmath}, providing a
@@ -3037,7 +3794,7 @@ format.")
          (base32 "1zhynyvchc50hywws2jznpkwydr3njh8cv84d2ylyabhcwwmil9s"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-dualnumbers" ,julia-dualnumbers)))
+     (list julia-dualnumbers))
     (home-page "https://github.com/JuliaGeometry/Quaternions.jl")
     (synopsis "Quaternion and dual-quaternion functionality")
     (description "Quaternions are best known for their suitability as
@@ -3060,9 +3817,8 @@ extension of complex numbers.")
          (base32 "06zm4cbn3x49lbpgshhdfvvmgz066qkc8q0d57igm5p8bcp6js22"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-datastructures" ,julia-datastructures)
-       ("julia-iteratorinterfaceextensions" ,julia-iteratorinterfaceextensions)
-       ("julia-tableshowutils" ,julia-tableshowutils)))
+     (list julia-datastructures julia-iteratorinterfaceextensions
+           julia-tableshowutils))
     (home-page "https://github.com/queryverse/QueryOperators.jl")
     (synopsis "Query operators for Julia")
     (description "This package contains the underlying query operators that are
@@ -3151,9 +3907,7 @@ more complex visualizations.")
     (arguments
      `(#:tests? #f))    ; Cycle with Plots.jl.
     (propagated-inputs
-     `(("julia-nanmath" ,julia-nanmath)
-       ("julia-plotutils" ,julia-plotutils)
-       ("julia-recipesbase" ,julia-recipesbase)))
+     (list julia-nanmath julia-plotutils julia-recipesbase))
     (home-page "http://juliaplots.org/RecipesPipeline.jl/dev/")
     (synopsis "Utilities for processing recipes")
     (description "This package was factored out of @code{Plots.jl} to allow any
@@ -3181,13 +3935,13 @@ recipes to full specifications for a plot.")
     (arguments
      `(#:tests? #f))    ; Cycle with OrdinaryDiffEq.jl.
     (propagated-inputs
-     `(("julia-arrayinterface" ,julia-arrayinterface)
-       ("julia-chainrulescore" ,julia-chainrulescore)
-       ("julia-docstringextensions" ,julia-docstringextensions)
-       ("julia-recipesbase" ,julia-recipesbase)
-       ("julia-requires" ,julia-requires)
-       ("julia-staticarrays" ,julia-staticarrays)
-       ("julia-zygoterules" ,julia-zygoterules)))
+     (list julia-arrayinterface
+           julia-chainrulescore
+           julia-docstringextensions
+           julia-recipesbase
+           julia-requires
+           julia-staticarrays
+           julia-zygoterules))
     ;(native-inputs
     ; `(("julia-forwarddiff" ,julia-forwarddiff)
     ;   ("julia-nlsolve" ,julia-nlsolve)
@@ -3203,7 +3957,7 @@ recursive arrays like arrays of arrays.")
 (define-public julia-reexport
   (package
     (name "julia-reexport")
-    (version "1.1.0")
+    (version "1.2.2")
     (source
      (origin
        (method git-fetch)
@@ -3212,7 +3966,7 @@ recursive arrays like arrays of arrays.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1wj4vnxxmnblm6ajkkdvwb7v4835qrrc406q5is74qv1n68xql7l"))))
+        (base32 "0inf5q6f01ncd5c5wm8mwzv2hs627ng6xlh8dhrlflp321hbamwf"))))
     (build-system julia-build-system)
     (home-page "https://github.com/simonster/Reexport.jl")
     (synopsis "Re-export modules and symbols")
@@ -3236,11 +3990,8 @@ recursive arrays like arrays of arrays.")
     (arguments
      `(#:tests? #f))    ; Cycle with ImageCore.jl through ImageMagick.jl.
     (propagated-inputs
-     `(("julia-deepdiffs" ,julia-deepdiffs)
-       ("julia-distances" ,julia-distances)
-       ("julia-fileio" ,julia-fileio)
-       ("julia-imagecore" ,julia-imagecore)
-       ("julia-imageinterminal" ,julia-imageinterminal)))
+     (list julia-deepdiffs julia-distances julia-fileio julia-imagecore
+           julia-imageinterminal))
     ;(native-inputs
     ; `(("julia-csvfiles" ,julia-csvfiles)
     ;   ("julia-dataframes" ,julia-dataframes)
@@ -3271,10 +4022,12 @@ package can help create and update if need be.")
        (sha256
         (base32 "03hyfy7c0ma45b0y756j76awi3az2ii4bz4s8cxm3xw9yy1z7b01"))))
     (build-system julia-build-system)
+    (arguments
+     `(#:parallel-tests? #f))
     (inputs                             ;required for test
-     `(("julia-example" ,julia-example)))
+     (list julia-example))
     (propagated-inputs
-     `(("julia-colors" ,julia-colors)))
+     (list julia-colors))
     (home-page "https://github.com/JuliaPackaging/Requires.jl/")
     (synopsis "Faster package loader")
     (description "This package make loading packages faster, maybe.  It
@@ -3297,18 +4050,23 @@ can be avoided.")
         (sha256
          (base32 "1wrr6sqj2xl9grkvdp88rw3manxy9vbx28zq2wssya5ns1xabsnl"))))
     (build-system julia-build-system)
+    (arguments
+     ;; XXXX: Test suite failing for i686, e.g.,
+     ;; Expression: hash(tr_float, hash(1)) === hash(v_float, hash(1))
+     ;; MethodError: no method matching decompose(::ReverseDiff.TrackedReal{Float64, Float64, Nothing})
+     ;; Disable as stopgap.
+     `(#:tests? ,(not (target-x86-32?))))
     (propagated-inputs
-     `(("julia-diffresults" ,julia-diffresults)
-       ("julia-diffrules" ,julia-diffrules)
-       ("julia-forwarddiff" ,julia-forwarddiff)
-       ("julia-functionwrappers" ,julia-functionwrappers)
-       ("julia-macrotools" ,julia-macrotools)
-       ("julia-nanmath" ,julia-nanmath)
-       ("julia-specialfunctions" ,julia-specialfunctions)
-       ("julia-staticarrays" ,julia-staticarrays)))
+     (list julia-diffresults
+           julia-diffrules
+           julia-forwarddiff
+           julia-functionwrappers
+           julia-macrotools
+           julia-nanmath
+           julia-specialfunctions
+           julia-staticarrays))
     (native-inputs
-     `(("julia-difftests" ,julia-difftests)
-       ("julia-fillarrays" ,julia-fillarrays)))
+     (list julia-difftests julia-fillarrays))
     (home-page "https://github.com/JuliaDiff/ReverseDiff.jl")
     (synopsis "Reverse Mode Automatic Differentiation for Julia")
     (description "@code{ReverseDiff.jl} is a fast and compile-able tape-based
@@ -3362,11 +4120,9 @@ other power series in @code{h}.")
            (base32 "01wwqbdmj61yiz7rkmams4xg7gb9hbmg325173846ky4b9x1wb19"))))
       (build-system julia-build-system)
       (propagated-inputs
-       `(("julia-staticarrays" ,julia-staticarrays)))
+       (list julia-staticarrays))
       (native-inputs
-       `(("julia-benchmarktools" ,julia-benchmarktools)
-         ("julia-forwarddiff" ,julia-forwarddiff)
-         ("julia-unitful" ,julia-unitful)))
+       (list julia-benchmarktools julia-forwarddiff julia-unitful))
       (home-page "https://github.com/JuliaGeometry/Rotations.jl")
       (synopsis "Julia implementations for different rotation parameterisations")
       (description "This package implements various 3D rotation parameterizations
@@ -3394,15 +4150,38 @@ through matrix-vector multiplication.")
            (base32 "1fb1dfdmiw2ggx60hf70954xlps0r48fcb3k3dvxynlz7ylphp96"))))
       (build-system julia-build-system)
       (arguments
-       `(#:julia-package-name "SafeTestsets"))
+       `(#:julia-package-name "SafeTestsets"
+         #:julia-package-uuid "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"))
       (native-inputs
-       `(("julia-staticarrays" ,julia-staticarrays)))
+       (list julia-staticarrays))
       (home-page "https://github.com/YingboMa/SafeTestsets.jl")
       (synopsis "Julia's testset in a module")
       (description "This package contains the testset from Julia, packaged into
 a loadable module.")
       (license license:expat))))
 
+(define-public julia-sass
+  (package
+    (name "julia-sass")
+    (version "0.2.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/piever/Sass.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0y7kkkj717h5cj659ssry89i5r64symr6pvhr6vv4qmaxrnjxj92"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     (list julia-libsass-jll))
+    (home-page "https://github.com/piever/Sass.jl")
+    (synopsis "Compile scss and sass file to css")
+    (description "This package provides a simple Julian API to use the
+@code{libsass} library to compile scss and sass files to css.")
+    (license license:expat)))
+
 (define-public julia-scratch
   (package
     (name "julia-scratch")
@@ -3467,7 +4246,7 @@ in @code{Gadfly}, @code{Plots} and @code{Makie} to label axes and keys.")
          (base32 "1qvmkqcvhc2nilvkk36szccxdlcv9ls2i0ksxgl2yfjr3b3qlr05"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-macrotools" ,julia-macrotools)))
+     (list julia-macrotools))
     (home-page "https://github.com/mauro3/SimpleTraits.jl")
     (synopsis "Simple Traits for Julia")
     (description "This package provides a macro-based implementation of traits.
@@ -3477,6 +4256,29 @@ types can be added to a trait after the creation of the trait, whereas Union
 types are fixed after creation.")
     (license license:expat)))
 
+(define-public julia-softglobalscope
+  (package
+    (name "julia-softglobalscope")
+    (version "1.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/stevengj/SoftGlobalScope.jl")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1n3l0al1vw5jpb4k9a29a71666cdb617nmiqg34wcmyfzrxpvv39"))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/stevengj/SoftGlobalScope.jl")
+    (synopsis "Utilities for soft global scope in interactive Julia environments")
+    (description
+     "SoftGlobalScope is a package for the Julia language that simplifies the
+variable scoping rules for code in global scope.  It is intended for interactive
+shells to make it easier to work interactively with Julia, especially for
+beginners.")
+    (license license:expat)))
+
 (define-public julia-sortingalgorithms
   (package
     (name "julia-sortingalgorithms")
@@ -3494,7 +4296,7 @@ types are fixed after creation.")
     (arguments
      `(#:tests? #f))    ; cycle with StatsBase.jl
     (propagated-inputs
-     `(("julia-datastructures" ,julia-datastructures)))
+     (list julia-datastructures))
     ;(native-inputs
     ; `(("julia-statsbase" ,julia-statsbase)))
     (home-page "https://github.com/JuliaCollections/SortingAlgorithms.jl")
@@ -3519,11 +4321,10 @@ timsort and radixsort.")
         (base32 "0nfpnglx7zl9g20w2mgfkg17hcw9ri0shaq2rwplj0ij5pwz8yf0"))))
     (build-system julia-build-system)
     (inputs
-     `(("julia-chainrulestestutils" ,julia-chainrulestestutils)))
+     (list julia-chainrulestestutils))
     (propagated-inputs
-     `(("julia-chainrulescore" ,julia-chainrulescore)
-       ("julia-logexpfunctions" ,julia-logexpfunctions)
-       ("julia-openspecfun-jll" ,julia-openspecfun-jll)))
+     (list julia-chainrulescore julia-logexpfunctions
+           julia-openspecfun-jll))
     (home-page "https://github.com/JuliaMath/SpecialFunctions.jl")
     (synopsis "Special mathematical functions")
     (description "This package provides special mathematical functions,
@@ -3547,8 +4348,7 @@ polygamma functions.")
          (base32 "1qzaqvk57b0s5krzn8bxkzmr5kz6hi9dm3jbf2sl7z4vznsgbn9x"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-dictionaries" ,julia-dictionaries)
-       ("julia-indexing" ,julia-indexing)))
+     (list julia-dictionaries julia-indexing))
     (home-page "https://github.com/JuliaData/SplitApplyCombine.jl")
     (synopsis "Split-apply-combine strategies for Julia")
     (description "@code{SplitApplyCombine.jl} provides high-level, generic tools
@@ -3596,19 +4396,17 @@ some performance improvements).")
          (base32 "1fwiaxdpx1z9dli3jr8kyraych0jbdiny3qklynf0r13px25r6i7"))))
     (build-system julia-build-system)
     (arguments
-     `(#:tests? #f  ; Documenter.jl not packaged yet
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'skip-doctest
+         (add-after 'link-depot 'skip-doctest
            (lambda _
              (substitute* "test/runtests.jl"
                ((".*doctest.*") ""))
              #t)))))
     (propagated-inputs
-     `(("julia-offsetarrays" ,julia-offsetarrays)))
-    ;(native-inputs
-    ; `(("julia-aqua" ,julia-aqua)
-    ;   ("julia-documenter" ,julia-documenter)))
+     (list julia-offsetarrays))
+    (native-inputs
+    (list julia-aqua julia-documenter))
     (home-page "https://github.com/JuliaArrays/StackViews.jl")
     (synopsis "No more catcat")
     (description "StackViews provides only one array type: @code{StackView}.
@@ -3636,9 +4434,9 @@ There are multiple ways to understand @code{StackView}:
          (base32 "19k7h47zhz3zz28i0l4b3cc0r07pzp8kf35z0yammpy361b644l2"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-ifelse" ,julia-ifelse)))
+     (list julia-ifelse))
     (native-inputs
-     `(("julia-aqua" ,julia-aqua)))
+     (list julia-aqua))
     (home-page "https://github.com/SciML/Static.jl")
     (synopsis "Static types useful for dispatch and generated functions")
     (description "Static.jl defines a limited set of statically parameterized
@@ -3648,7 +4446,7 @@ types and a common interface that is shared between them.")
 (define-public julia-staticarrays
   (package
     (name "julia-staticarrays")
-    (version "1.2.9")
+    (version "1.2.13")
     (source
      (origin
        (method git-fetch)
@@ -3657,10 +4455,10 @@ types and a common interface that is shared between them.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1902bl9p96mfq7d1rbilwp98wz2g82ml9svcgx7sczglyjbs4nsk"))))
+        (base32 "041mijzgzm8r61a3gwspr2wcxjikqksvj2rbnl4gmcy41alqmx79"))))
     (build-system julia-build-system)
     (inputs
-     `(("julia-benchmarktools" ,julia-benchmarktools)))
+     (list julia-benchmarktools))
     (home-page "https://github.com/JuliaArrays/StaticArrays.jl")
     (synopsis "Statically sized arrays")
     (description "This package provides a framework for implementing
@@ -3708,13 +4506,10 @@ dependency on it.")
          (base32 "02y4pm5yvg713a2pn970bbcfkrn2h133rxbxk1da18svhqw3czhi"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-dataapi" ,julia-dataapi)
-       ("julia-datastructures" ,julia-datastructures)
-       ("julia-missings" ,julia-missings)
-       ("julia-sortingalgorithms" ,julia-sortingalgorithms)
-       ("julia-statsapi" ,julia-statsapi)))
+     (list julia-dataapi julia-datastructures julia-missings
+           julia-sortingalgorithms julia-statsapi))
     (native-inputs
-     `(("julia-stablerngs" ,julia-stablerngs)))
+     (list julia-stablerngs))
     (home-page "https://github.com/JuliaStats/StatsBase.jl")
     (synopsis "Basic statistics for Julia")
     (description "StatsBase.jl is a Julia package that provides basic support
@@ -3738,7 +4533,7 @@ ranking, covariances, sampling, and empirical density estimation.")
          (base32 "0n5707wplbibzhhv1xmshvc025d7xk6mnikclc3hvq5cdc0gy9f7"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-distances" ,julia-distances)))
+     (list julia-distances))
     (home-page "https://github.com/matthieugomez/StringDistances.jl")
     (synopsis "String Distances in Julia")
     (description "This package provides string distances in Julia.  Distances
@@ -3747,6 +4542,45 @@ are defined for @code{AbstractStrings}, and any iterator that define
 applied to any distance.")
     (license license:expat)))
 
+(define-public julia-structarrays
+  (package
+    (name "julia-structarrays")
+    (version "0.6.3")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaArrays/StructArrays.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0rjcpyjwzg70n87q5r9c5i1qzigavncslxssm3rk5a3y549py56v"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       ,@(if (target-64bit?)
+           '(%standard-phases)
+           '((modify-phases %standard-phases
+               (add-after 'unpack 'fix-tests-int32-i686
+                 (lambda _
+                   (substitute* '("src/utils.jl"
+                                  "test/runtests.jl")
+                     (("Int64") "Int32")))))))))
+    (propagated-inputs
+     (list julia-dataapi julia-staticarrays julia-tables))
+    (native-inputs
+     (list julia-documenter julia-offsetarrays julia-pooledarrays
+           julia-typedtables julia-weakrefstrings))
+    (home-page "https://github.com/JuliaArrays/StructArrays.jl")
+    (synopsis "Efficient implementation of struct arrays in Julia")
+    (description "This package introduces the type @code{StructArray} which is
+an @code{AbstractArray} whose elements are @code{struct} (for example
+@code{NamedTuples}, or @code{ComplexF64}, or a custom user defined
+@code{struct}).  While a @code{StructArray} iterates @code{structs}, the layout
+is column based (meaning each field of the @code{struct} is stored in a separate
+@code{Array}).")
+    (license license:expat)))
+
 (define-public julia-structtypes
   (package
     (name "julia-structtypes")
@@ -3825,13 +4659,10 @@ the @code{Pluto.jl} tabular data import functionality.")
          (base32 "1sqqagzqvav8b1rv5ywwbgy9ixvlmipq95fkwfwn0m8769i8jwzb"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-dataapi" ,julia-dataapi)
-       ("julia-datavalueinterfaces" ,julia-datavalueinterfaces)
-       ("julia-iteratorinterfaceextensions" ,julia-iteratorinterfaceextensions)
-       ("julia-tabletraits" ,julia-tabletraits)))
+     (list julia-dataapi julia-datavalueinterfaces
+           julia-iteratorinterfaceextensions julia-tabletraits))
     (native-inputs
-     `(("julia-datavalues" ,julia-datavalues)
-       ("julia-queryoperators" ,julia-queryoperators)))
+     (list julia-datavalues julia-queryoperators))
     (home-page "https://github.com/JuliaData/Tables.jl")
     (synopsis "Interface for tables in Julia")
     (description "The @code{Tables.jl} package provides simple, yet powerful
@@ -3856,8 +4687,7 @@ interface functions for working with all kinds tabular data.")
            (base32 "0gp3hpj3jvzfhkp9r345vfic2j2n2s60729wv38hwn75csp74cg5"))))
       (build-system julia-build-system)
       (propagated-inputs
-       `(("julia-datavalues" ,julia-datavalues)
-         ("julia-json" ,julia-json)))
+       (list julia-datavalues julia-json))
       (home-page "https://github.com/queryverse/TableShowUtils.jl")
       (synopsis "Implement show for TableTraits.jl types")
       (description "This package provides some common helper functions that make
@@ -3880,7 +4710,7 @@ participate in the @code{TableTraits.jl} ecosystem.")
          (base32 "08ssb2630wm6j8f2qa985mn2vfibfm5kjcn4ayl2qkhfcyp8daw4"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-iteratorinterfaceextensions" ,julia-iteratorinterfaceextensions)))
+     (list julia-iteratorinterfaceextensions))
     (home-page "https://github.com/queryverse/TableTraits.jl")
     (synopsis "Traits for Julia tables")
     (description "TableTraits defines a generic interface for tabular data.")
@@ -3926,11 +4756,8 @@ dimensions}.")
     (arguments
      `(#:tests? #f))    ; cycle with ImageMagick.jl
     (propagated-inputs
-     `(("julia-axisarrays" ,julia-axisarrays)
-       ("julia-colortypes" ,julia-colortypes)
-       ("julia-fileio" ,julia-fileio)
-       ("julia-offsetarrays" ,julia-offsetarrays)
-       ("julia-stringdistances" ,julia-stringdistances)))
+     (list julia-axisarrays julia-colortypes julia-fileio
+           julia-offsetarrays julia-stringdistances))
     ;(native-inputs
     ; `(("julia-colors" ,julia-colors)
     ;   ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
@@ -3962,22 +4789,50 @@ package.")
         (patches (search-patches "julia-tracker-16-compat.patch"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-adapt" ,julia-adapt)
-       ("julia-diffrules" ,julia-diffrules)
-       ("julia-forwarddiff" ,julia-forwarddiff)
-       ("julia-macrotools" ,julia-macrotools)
-       ("julia-nanmath" ,julia-nanmath)
-       ("julia-nnlib" ,julia-nnlib)
-       ("julia-requires" ,julia-requires)
-       ("julia-specialfunctions" ,julia-specialfunctions)))
+     (list julia-adapt
+           julia-diffrules
+           julia-forwarddiff
+           julia-macrotools
+           julia-nanmath
+           julia-nnlib
+           julia-requires
+           julia-specialfunctions))
     (native-inputs
-     `(("julia-pdmats" ,julia-pdmats)))
+     (list julia-pdmats))
     (home-page "https://github.com/FluxML/Tracker.jl")
     (synopsis "Operator overloading reverse-mode automatic differentiator")
     (description "@code{Tracker.jl} previously provided @code{Flux.jl} with
 automatic differentiation for its machine learning platform.")
     (license license:expat)))
 
+(define-public julia-transcodingstreams
+  (package
+    (name "julia-transcodingstreams")
+    (version "0.9.6")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaIO/TranscodingStreams.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1w3klii293caqiclfh28jggv7f53xclm9fr6xmw38brwrn1hjb48"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f))                ; Circular dependency with various codecs.
+    (home-page "https://github.com/JuliaIO/TranscodingStreams.jl")
+    (synopsis "Fast I/O transcoding data streams")
+    (description "This package provides tools for transcoding data streams
+which are:
+@itemize
+@item fast: small overhead and specialized methods
+@item consistent: basic I/O operations work as expected
+@item generic: support any I/O objects like files, buffers, pipes, etc.
+@item extensible: easy definition for new codec to transcode data
+@end itemize")
+    (license license:expat)))
+
 (define-public julia-typedtables
   (package
     (name "julia-typedtables")
@@ -3993,9 +4848,7 @@ automatic differentiation for its machine learning platform.")
          (base32 "0nk6zhqvl2r8yhjdhb59kxq0srd3vy4ysg4d8rszj9a43dnn3w3i"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-adapt" ,julia-adapt)
-       ("julia-splitapplycombine" ,julia-splitapplycombine)
-       ("julia-tables" ,julia-tables)))
+     (list julia-adapt julia-splitapplycombine julia-tables))
     (home-page "https://github.com/JuliaData/TypedTables.jl")
     (synopsis "Column-based storage for data analysis in Julia")
     (description "@code{TypedTables.jl} provides two column-based storage
@@ -4040,6 +4893,7 @@ types, modules, and dictionaries.")
     (build-system julia-build-system)
     (arguments
      '(#:julia-package-name "URIs"      ;required to run tests
+       #:julia-package-uuid "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4"
        #:phases
        (modify-phases %standard-phases
          (add-before 'check 'change-dir
@@ -4047,10 +4901,10 @@ types, modules, and dictionaries.")
            (lambda* (#:key source outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (chdir
-                (string-append out "/share/julia/packages/URIs/test")))
+                (string-append out "/share/julia/loadpath/URIs/test")))
              #t)))))
     ;; required for tests
-    (inputs `(("julia-json" ,julia-json)))
+    (inputs (list julia-json))
     (home-page "https://github.com/JuliaWeb/URIs.jl")
     (synopsis "URI parsing in Julia")
     (description "@code{URIs.jl} is a Julia package that allows parsing and
@@ -4072,8 +4926,10 @@ working with @acronym{URIs,Uniform Resource Identifiers}, as defined in RFC
        (sha256
         (base32 "10qwscd15dnmvx116dwvg99m7kmwgmj5ahdkq7psiq48lcc554gq"))))
     (build-system julia-build-system)
+    (arguments
+     `(#:parallel-tests? #f))
     (propagated-inputs
-     `(("julia-constructionbase" ,julia-constructionbase)))
+     (list julia-constructionbase))
     (home-page "https://painterqubits.github.io/Unitful.jl/stable/")
     (synopsis "Physical units in Julia")
     (description "This package supports SI units and also many other unit
@@ -4120,8 +4976,7 @@ useful in order to support @code{VersionNumber} comparisons applied to
          (base32 "14h1vdnc3rx87w6v2rr59lgb4kai2hd1wzqpxhmzsi8karg2z219"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-dataapi" ,julia-dataapi)
-       ("julia-parsers" ,julia-parsers)))
+     (list julia-dataapi julia-parsers))
     (home-page "https://github.com/JuliaData/WeakRefStrings.jl")
     (synopsis "Efficient string representation and transfer in Julia")
     (description "This package provides a minimal String type for Julia that
@@ -4142,6 +4997,16 @@ allows for efficient string representation and transfer")
         (sha256
          (base32 "04yykivi8zrbryxlmb0p5xa6lma8iq22r5s863117dnnqj5gaffd"))))
     (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       ,@(if (target-x86-32?)
+           '((modify-phases %standard-phases
+               (add-after 'unpack 'remove-failing-test-i686
+                 (lambda _
+                   (substitute* "test/woodbury.jl"
+                     (("@test logdet\\(W\\)")
+                      "@test_broken logdet(W)"))))))
+           '(%standard-phases))))
     (home-page "https://github.com/timholy/WoodburyMatrices.jl")
     (synopsis "Support for the Woodbury matrix identity for Julia")
     (description "This package provides support for the Woodbury matrix identity
@@ -4167,7 +5032,7 @@ inaccuracy in the result.")
           "15bm3ki5mb9nvqs2byznrryq0bilnjcvsfy3k05hxhk9vapilw7k"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-zlib-jll" ,julia-zlib-jll)))
+     (list julia-zlib-jll))
     (home-page "https://github.com/fhs/ZipFile.jl")
     (synopsis "Read/Write ZIP archives in Julia")
     (description "This module provides support for reading and writing ZIP
@@ -4189,7 +5054,7 @@ archives in Julia.")
         (base32 "07i2mf6rr5b8i6l82qgwl5arsb5pwyyzyfasgnszhdqllk9501bs"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-macrotools" ,julia-macrotools)))
+     (list julia-macrotools))
     (home-page "https://github.com/FluxML/ZygoteRules.jl")
     (synopsis "Add minimal custom gradients to Zygote")
     (description "Minimal package which enables to add custom gradients to
diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm
index 636bdc57c1..0bdac66175 100644
--- a/gnu/packages/julia.scm
+++ b/gnu/packages/julia.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -54,26 +55,6 @@
   #:use-module (gnu packages wget)
   #:use-module (ice-9 match))
 
-(define libuv-julia
-  (let ((commit "fb3e3364c33ae48c827f6b103e05c3f0e78b79a9")
-        (revision "3"))
-    ;; When upgrading Julia, also upgrade this.  Get the commit from
-    ;; https://github.com/JuliaLang/julia/blob/v1.6.1/deps/libuv.version
-    (package
-      (inherit libuv)
-      (name "libuv-julia")
-      (version (git-version "2.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                       (url "https://github.com/JuliaLang/libuv")
-                       (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1kqpn19d20aka30h6q5h8lnzyp0vw0xzgx0wm4w2r5j6yf76m2hr"))))
-      (home-page "https://github.com/JuliaLang/libuv"))))
-
 (define libunwind-julia
   ;; The Julia projects requires their patched version.
   ;; Get from https://github.com/JuliaLang/julia/tree/master/deps/patches
@@ -90,144 +71,30 @@
         (base32
          "1y0l08k6ak1mqbfj6accf9s5686kljwgsl4vcqpxzk5n74wpm6a3"))
        (patches
-        (list
-         (julia-patch "libunwind-prefer-extbl"
-                      "0lr4dafw8qyfh8sw8hhbwkql1dlhqv8px7k81y2l20hhxfgnh2m1")
-         (julia-patch "libunwind-static-arm"
-                      "1jk3bmiw61ypcchqkk1fyg5wh8wpggk574wxyfyaic870zh3lhgq")
-         (julia-patch "libunwind-cfa-rsp"
-                      "1aswjhvysahhldbzh1afbf0hsjxrvs6xidsz2i7s1cjkjbdiia1z")))))
+        (append
+            ;; Fix linker issue for i686-linux because GCC10 changed default
+            ;; (see '-fno-common' option).
+            (search-patches "libunwind-julia-fix-GCC10-fno-common.patch")
+            (list
+             (julia-patch "libunwind-prefer-extbl"
+                          "0lr4dafw8qyfh8sw8hhbwkql1dlhqv8px7k81y2l20hhxfgnh2m1")
+             (julia-patch "libunwind-static-arm"
+                          "1jk3bmiw61ypcchqkk1fyg5wh8wpggk574wxyfyaic870zh3lhgq")
+             (julia-patch "libunwind-cfa-rsp"
+                          "1aswjhvysahhldbzh1afbf0hsjxrvs6xidsz2i7s1cjkjbdiia1z"))))))
     (home-page "https://github.com/JuliaLang/tree/master/deps/")))
 
 (define (julia-patch-url version name)
   (string-append "https://raw.githubusercontent.com/JuliaLang/julia/v" version
                  "/deps/patches/" name ".patch"))
 
-(define (julia-patch name sha)
+(define-public (julia-patch name sha)
   (let ((version "1.6.1"))
     (origin (method url-fetch)
             (uri (julia-patch-url version name))
             (sha256 (base32 sha))
             (file-name name))))
 
-(define llvm-julia
-  (package
-    (inherit llvm-11)
-    (name "llvm-julia")
-    (source (origin
-              (inherit (package-source llvm-11))
-              ;; Those patches are inside the Julia source repo.
-              ;; They are _not_ Julia specific (https://github.com/julialang/julia#llvm)
-              ;; but they are required to build Julia.
-              ;; Discussion: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919628
-              (patches
-               (map (match-lambda
-                      ((name hash)
-                       (julia-patch name hash)))
-                    (list
-                     '("llvm-D27629-AArch64-large_model_6.0.1"
-                       "1qrshmlqvnasdyc158vfn3hnbigqph3lsq7acb9w8lwkpnnm2j4z")
-                     '("llvm8-D34078-vectorize-fdiv"
-                       "19spqc3xsazn1xs9gpcgv9ldadfkv49rmc5khl7sf1dlmhgi4602")
-                     '("llvm-7.0-D44650"
-                       "1h55kkmkiisfj6sk956if2bcj9s0v6n5czn8dxb870vp5nccj3ir")
-                     '("llvm-6.0-DISABLE_ABI_CHECKS"
-                       "014fawd1ba7yckalypfld22zgic87x9nx3cim42zrwygywd36pyg")
-                     '("llvm9-D50010-VNCoercion-ni"
-                       "1s1d3sjsiq4vxg7ncy5cz56zgy5vcq6ls3iqaiqkvr23wyryqmdx")
-                     '("llvm7-revert-D44485"
-                       "0f59kq3p3mpwsbmskypbi4zn01l6ig0x7v2rjp08k2r8z8m6fa8n")
-                     '("llvm-11-D75072-SCEV-add-type"
-                       "176xi1lnbnv2rcs05ywhyb7pd0xgmibayvwzksksg44wg2dh8mbx")
-                     '("llvm-julia-tsan-custom-as"
-                       "0awh40kf6lm4wn1nsjd1bmhfwq7rqj811szanp2xkpspykw9hg9s")
-                     '("llvm-D80101"
-                       "1gsdwmgmpbignvqyxcnlprj899259p3dvdznlncd84ss445qgq3j")
-                     '("llvm-D84031"
-                       "0nks9sbk7p0r5gyr0idrmm93a5fmdai8kihz9532dx4zhcvvqbjc")
-                     '("llvm-10-D85553"
-                       "1zjq7j9q2qp56hwkc8yc8f0z7kvam3j7hj8sb7qyd77r255ff78l")
-                     '("llvm-10-unique_function_clang-sa"
-                       "1jys9w2zqk3dasnxqh0qz5ij7rxi6mkgq9pqjsclmamr5169zyan")
-                     ;'("llvm-D88630-clang-cmake"
-                     ;  "0rs6s71nqnjkny7i69gqazhqj5jqfdr0bkxs2v5a55sfx8fa1k54")
-                     '("llvm-11-D85313-debuginfo-empty-arange"
-                       "1f672d5385xpgb8yrim8d3b7wg2z1l81agnshm1q61kdvjixqx32")
-                     '("llvm-11-D90722-rtdyld-absolute-relocs"
-                       "0kmnai229yyxkmpk9lxd180mcnhk2i8d87k2sg89gc8as18w10r6")
-                     '("llvm-invalid-addrspacecast-sink"
-                       "1n1b7j4s80vj7x5377aj9vyphmxx1q6bm0chhkxp6zsy3mx3g2ry")
-                     '("llvm-11-D92906-ppc-setjmp"
-                       "0cmd4dsblp7a8m03j16dqxws0ijh55zf4jzzxmj341qxa1gamdp9")
-                     '("llvm-11-PR48458-X86ISelDAGToDAG"
-                       "0vwzvlhsdazhxg4gj8g2f00a4f8qc5cgac23w575xk3pgba1jh6y")
-                     '("llvm-11-D93092-ppc-knownbits"
-                       "1748bypsc7c9lbs3fnkv0kwvch6bn85kj98j4jdaz254ig0wa6xj")
-                     '("llvm-11-D93154-globalisel-as"
-                       "1k5wd4z3pa7zj0gyjkif7viqj906dhqlbb7dc95gig40nbxv6zpj")
-                     '("llvm-11-ppc-half-ctr"
-                       "0piywisfz6cmw3133kz7vzhiqflq2y7igakqxlym0gi8pqylv7w9")
-                     '("llvm-11-ppc-sp-from-bp"
-                       "1wmg3485cx5f9pbykyl3jibk1wwv4w1x30hl4jyfndzr2yh8azf9")
-                     '("llvm-rGb498303066a6-gcc11-header-fix"
-                       "0hkd4rwhvh8g2yh13g29wiwnjpv2yd1hdyiv1ryw8izl25bz9c67")
-                     '("llvm-11-D94813-mergeicmps"
-                       "0cmy0ywkgyrdcvr9bd6pd912lyd4gcsrib4z0v05dwgcdxhk7y29")
-                     '("llvm-11-D94980-CTR-half"
-                       "1yf8cxib3z8hz7zi9n6v2g2c6vpfr4slq9hpx8m8yq8f1jbyw3fw")
-                     '("llvm-11-D94058-sext-atomic-ops"
-                       "1x6p6k6q651z5jcqxx8vj17cxnv196mka7mwn7dpp6c23lwgfdpb")
-                     '("llvm-11-D96283-dagcombine-half"
-                       "0lv4iq2f8qrcz1xyxfic3bcr5p0aqam3a7c6pp6fnw3riixm096k"))))
-              (patch-flags '("-p1"))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments llvm-11)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-after 'unpack 'patch-round-two
-             ;; We have to do the patching in two rounds because we can't
-             ;; pass '-p1' and '-p2' in the source field.
-             (lambda* (#:key inputs #:allow-other-keys)
-               (map (lambda (patchname)
-                      (invoke "patch" patchname "-p2"))
-                    (list "llvm-11-AArch64-FastIsel-bug"
-                          "llvm-11-D97435-AArch64-movaddrreg"
-                          "llvm-11-D97571-AArch64-loh"
-                          "llvm-11-aarch64-addrspace"))))))
-       ((#:build-type _) "Release")
-       ((#:configure-flags flags)
-        `(list
-           ;; Build a native compiler and the NVPTX backend (NVIDIA) since
-           ;; Julia insists on it, nothing more.  This reduces build times and
-           ;; disk usage.
-           ,(string-append "-DLLVM_TARGETS_TO_BUILD=" (system->llvm-target))
-           "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=NVPTX"
-
-           "-DLLVM_INSTALL_UTILS=ON"
-           "-DLLVM_BUILD_TESTS=ON"
-           "-DLLVM_ENABLE_FFI=ON"
-           "-DLLVM_ENABLE_RTTI=ON"
-           ;; "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
-           ;; "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
-           ;; "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly"
-           "-DLLVM_ENABLE_DUMP=ON"
-           "-DLLVM_LINK_LLVM_DYLIB=ON"))))
-    (inputs
-     (append
-       (package-inputs llvm-11)
-       `(("llvm-11-AArch64-FastIsel-bug"
-          ,(julia-patch "llvm-11-AArch64-FastIsel-bug"
-                        "1m2vddj1mw4kbij8hbrx82piyy6bvr2x7wwdnlxfaqcm72ipzyh9"))
-         ("llvm-11-D97435-AArch64-movaddrreg"
-          ,(julia-patch "llvm-11-D97435-AArch64-movaddrreg"
-                        "10jnavq9ljkj7j2gqj2zd1pwqpqb5zs3zp9h96pmz0djbmxwa86y"))
-         ("llvm-11-D97571-AArch64-loh"
-          ,(julia-patch "llvm-11-D97571-AArch64-loh"
-                        "128zcbg1w1j7hngsf7z1a7alc6lig6l2rqgjp6i8nk3k3f842v6n"))
-         ("llvm-11-aarch64-addrspace"
-          ,(julia-patch "llvm-11-aarch64-addrspace"
-                        "0ckbzgfirxrf2d5bpinpngp7gnilbjrk0cbdfyl3h6f5v6i6xj6m")))))))
-
 (define-public libwhich
   (package
     (name "libwhich")
@@ -261,7 +128,7 @@
              #t)))))
     (native-inputs
      ;; used for tests
-     `(("zlib" ,zlib)))
+     (list zlib))
     (build-system gnu-build-system)
     (home-page "https://github.com/vtjnash/libwhich")
     (synopsis "Like @code{which}, for dynamic libraries")
@@ -272,7 +139,7 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
 (define-public julia
   (package
     (name "julia")
-    (version "1.6.2")
+    (version "1.6.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -280,9 +147,10 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
                     version "/julia-" version ".tar.gz"))
               (sha256
                (base32
-                "0plbj4laifzz8ppk889iv3gaxj1mdddzv7yad6ghml6bfnn24r6m"))
+                "1515x8fs25l3f9csbmd1v4nm041zvjnvigy6s5iidy4yrkwdx4r5"))
               (patches
-               (search-patches "julia-SOURCE_DATE_EPOCH-mtime.patch"))))
+               (search-patches "julia-SOURCE_DATE_EPOCH-mtime.patch"
+                               "julia-allow-parallel-build.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -328,8 +196,7 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
                (("(install: .*) \\$\\(BUILDROOT\\)/doc/_build/html/en/index.html" _ line)
                 (string-append line "\n"))
                (("src ui doc deps")
-                "src ui deps"))
-             #t))
+                "src ui deps"))))
          (add-after 'unpack 'use-system-libwhich
            (lambda* (#:key inputs #:allow-other-keys)
              ;; don't build it
@@ -338,15 +205,13 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
              ;; call our version
              (substitute* "base/Makefile"
                (("\\$\\$\\(build_depsbindir\\)/libwhich")
-                (search-input-file inputs "/bin/libwhich")))
-             #t))
+                (search-input-file inputs "/bin/libwhich")))))
          (add-after 'unpack 'change-number-of-precompile-statements
            (lambda _
              ;; Remove nss-certs drops the number of statements below 1200,
              ;; causing the build to fail prematurely.
              (substitute* "contrib/generate_precompile.jl"
-               (("1200") "1100"))
-             #t))
+               (("1200") "1100"))))
          ;; For some reason libquadmath is unavailable on this architecture.
          ;; https://github.com/JuliaLang/julia/issues/41613
          ,@(if (target-aarch64?)
@@ -388,8 +253,7 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
          (add-before 'build 'replace-default-shell
            (lambda _
              (substitute* "base/client.jl"
-               (("/bin/sh") (which "sh")))
-             #t))
+               (("/bin/sh") (which "sh")))))
          (add-before 'build 'shared-objects-paths
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((jlpath
@@ -453,8 +317,14 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
                   (to "suitesparse" "libsuitesparseconfig"))
                  (((from "libumfpack")) (to "suitesparse" "libumfpack")))
                (substitute* (jlpath "Zlib")
-                 (((from "libz")) (to "zlib" "libz"))))
-              #t))
+                 (((from "libz")) (to "zlib" "libz"))))))
+         (add-after 'unpack 'enable-parallel-tests
+           (lambda* (#:key parallel-tests? #:allow-other-keys)
+             (setenv "JULIA_CPU_THREADS" (if parallel-tests?
+                                             (number->string (parallel-job-count))
+                                             "1"))
+             (format #t "JULIA_CPU_THREADS environment variable set to ~a~%"
+                     (getenv "JULIA_CPU_THREADS"))))
          (add-after 'unpack 'adjust-test-suite
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((pcre2 (assoc-ref inputs "pcre2"))
@@ -477,8 +347,7 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
                (substitute* "stdlib/SuiteSparse_jll/test/runtests.jl"
                  (("5004") ,(string-replace-substring
                               (version-major+minor
-                                (package-version suitesparse)) "." "0")))
-               #t)))
+                                (package-version suitesparse)) "." "0"))))))
          (add-before 'check 'disable-broken-tests
            (lambda _
              ;; disabling REPL tests because they require a stdin
@@ -491,8 +360,8 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
              ;; Dates/io tests fail on master when networking is unavailable
              ;; https://github.com/JuliaLang/julia/issues/34655
              (substitute* "stdlib/Dates/test/io.jl"
-               (("\"Dates.Date") "\"Date")
-               (("\"Dates.Time") "\"Time"))
+               (("using Dates") "import Dates
+using Dates: @dateformat_str, Date, DateTime, DateFormat, Time"))
              ;; Upstream bug I found when packaging
              ;; https://github.com/JuliaLang/julia/issues/35785
              (substitute* "test/file.jl"
@@ -516,7 +385,19 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
              (substitute* "test/cmdlineargs.jl"
                (("test v\\[3") "test_broken v[3")
                (("test isempty\\(v\\[3") "test_broken isempty(v[3"))
-             #t))
+             ;; These tests randomly fails because they depend on CPU.
+             (substitute* "stdlib/LinearAlgebra/test/matmul.jl"
+               ;; Fixed in v1.6.4 (see:
+               ;; https://github.com/JuliaLang/julia/blob/v1.6.4/
+               ;; stdlib/LinearAlgebra/test/matmul.jl#L155).
+               (("@test mul\\!\\(C, vf, transpose\\(vf\\), 2, 3\\)\
+ == 2vf\\*vf' \\.\\+ 3C0")
+                "@test mul!(C, vf, transpose(vf), 2, 3) ≈ 2vf*vf' .+ 3C0"))
+             (substitute* "test/math.jl"
+               ;; @test_broken cannot be used because if the test randomly
+               ;; passes, then it also raises an error.
+               (("@test isinf\\(log1p\\(-one\\(T\\)\\)\\)")
+                " "))))
          (add-before 'install 'symlink-libraries
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((link
@@ -537,8 +418,7 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
                (link "zlib" "usr/lib/julia/" "libz\\.so")
                (link "libunwind" "usr/lib/julia/" "libunwind\\.so")
                (symlink (string-append (assoc-ref inputs "p7zip") "/bin/7z")
-                        "usr/libexec/7z")
-               #t)))
+                        "usr/libexec/7z"))))
          (add-after 'install 'symlink-llvm-utf8proc
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -552,9 +432,8 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
                                                               (basename file)))))
                         (find-files (string-append (assoc-ref inputs pkgname)
                                                    "/lib") pred)))))
-               (link "llvm" "libLLVM-11\\.so")
-               (link "utf8proc" "libutf8proc\\.so")
-               #t)))
+               (link "llvm" "libLLVM-11jl\\.so")
+               (link "utf8proc" "libutf8proc\\.so"))))
          (add-after 'install 'make-wrapper
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -565,8 +444,7 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
                    `("JULIA_LOAD_PATH" ":" prefix
                      ("" "$JULIA_LOAD_PATH"))
                    `("JULIA_DEPOT_PATH" ":" prefix
-                     ("" "$JULIA_DEPOT_PATH"))))
-               #t))))
+                     ("" "$JULIA_DEPOT_PATH"))))))))
        #:make-flags
        (list
         (string-append "prefix=" (assoc-ref %outputs "out"))
@@ -642,7 +520,7 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
        ("gfortran:lib" ,gfortran "lib")
        ("gmp" ,gmp)
        ("lapack" ,lapack)
-       ("libgit2" ,libgit2)
+       ("libgit2" ,libgit2-1.1)
        ("libnghttp2" ,nghttp2 "lib")
        ("libssh2" ,libssh2)
        ("libunwind" ,libunwind-julia)
@@ -672,7 +550,7 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.")
     (native-search-paths
       (list (search-path-specification
               (variable "JULIA_LOAD_PATH")
-              (files (list "share/julia/packages/")))
+              (files (list "share/julia/loadpath/")))
             (search-path-specification
               (variable "JULIA_DEPOT_PATH")
               (files (list "share/julia/")))))
diff --git a/gnu/packages/jupyter.scm b/gnu/packages/jupyter.scm
index 0de7ad998a..56ced35204 100644
--- a/gnu/packages/jupyter.scm
+++ b/gnu/packages/jupyter.scm
@@ -58,15 +58,10 @@
                 "1bk3as5yw9y5nmq6l15nr46aby34phmvsx9kxgqnm5pd5q2b5h57"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-jupyter-core" ,python-jupyter-core)
-       ("python-pyzmq" ,python-pyzmq)
-       ("python-traitlets" ,python-traitlets)))
+     (list python-dateutil python-jupyter-core python-pyzmq
+           python-traitlets))
     (native-inputs
-     `(("python-ipykernel" ,python-ipykernel)
-       ("python-ipython" ,python-ipython)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-ipykernel python-ipython python-mock python-pytest))
     (home-page "https://jupyter.org")
     (synopsis "Jupyter protocol implementation")
     (description
@@ -88,17 +83,14 @@ protocol} to be used by both clients and kernels.")
                 "0i7a78dn89ca8h0a42giyxwcmk6y4wrdr7q8h2ax9vybb84c795q"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-entrypoints" ,python-entrypoints)
-       ("python-jupyter-core" ,python-jupyter-core)
-       ("python-jupyter-protocol" ,python-jupyter-protocol)
-       ("python-pyzmq" ,python-pyzmq)
-       ("python-traitlets" ,python-traitlets)))
+     (list python-dateutil
+           python-entrypoints
+           python-jupyter-core
+           python-jupyter-protocol
+           python-pyzmq
+           python-traitlets))
     (native-inputs
-     `(("python-ipykernel" ,python-ipykernel)
-       ("python-ipython" ,python-ipython)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-ipykernel python-ipython python-mock python-pytest))
     (home-page "https://jupyter.org")
     (synopsis "Discover, launch, and communicate with Jupyter kernels")
     (description
@@ -140,9 +132,8 @@ launching and using Jupyter kernels.")
                                               "\\.py$"))
                         #t))))))
     (propagated-inputs
-     `(("python-jupyter-kernel-mgmt" ,python-jupyter-kernel-mgmt)
-       ("python-jupyter-protocol" ,python-jupyter-protocol)
-       ("python-jsonschema" ,python-jsonschema)))
+     (list python-jupyter-kernel-mgmt python-jupyter-protocol
+           python-jsonschema))
     (synopsis "Test Jupyter kernels")
     (description
      "@code{jupyter_kernel_test} is a tool for testing Jupyter kernels.  It
@@ -170,21 +161,20 @@ Messaging Protocol}.")
                            "-DDISABLE_ARCH_NATIVE=ON" ;no '-march=native'
                            "-DBUILD_TESTING=ON")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-
-       ;; The following inputs are used by the test suite.
-       ("googletest" ,googletest)
-       ("python-pytest" ,python-pytest)
-       ("python" ,python-3)
-       ("python-jupyter-kernel-test" ,python-jupyter-kernel-test)
-       ("python-jupyter-client" ,python-jupyter-client)))
+     (list pkg-config
+           ;; The following inputs are used by the test suite.
+           googletest
+           python-pytest
+           python-3
+           python-jupyter-kernel-test
+           python-jupyter-client))
     (inputs
-     `(("xtl" ,xtl)
-       ("json-modern-cxx" ,json-modern-cxx)
-       ("cppzmq" ,cppzmq)
-       ("zeromq" ,zeromq)
-       ("openssl" ,openssl)
-       ("util-linux" ,util-linux "lib")))         ;libuuid
+     (list xtl
+           json-modern-cxx
+           cppzmq
+           zeromq
+           openssl
+           `(,util-linux "lib")))         ;libuuid
     (home-page "https://quantstack.net/xeus")
     (synopsis "C++ implementation of the Jupyter Kernel protocol")
     (description
@@ -212,7 +202,7 @@ alternative Python kernel for Jupyter.")
     (build-system python-build-system)
     (arguments '(#:tests? #false)) ; there are no tests
     (propagated-inputs
-     `(("python-pygments" ,python-pygments)))
+     (list python-pygments))
     (home-page "https://jupyter.org")
     (synopsis "Pygments theme using JupyterLab CSS variables")
     (description
@@ -233,17 +223,11 @@ the JupyterLab CSS variables.")
          "0r015c0m713d19asmpimsw6bk2sqv2lpd2nccgjzjdj5h1crg0bg"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-deprecation" ,python-deprecation)
-       ("python-packaging" ,python-packaging)
-       ("python-setuptools" ,python-setuptools)
-       ("python-tomlkit" ,python-tomlkit)
-       ("python-wheel" ,python-wheel)))
+     (list python-deprecation python-packaging python-setuptools
+           python-tomlkit python-wheel))
     (native-inputs
-     `(("python-pypa-build" ,python-pypa-build)
-       ("python-coverage" ,python-coverage)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-mock" ,python-pytest-mock)))
+     (list python-pypa-build python-coverage python-pytest
+           python-pytest-cov python-pytest-mock))
     (home-page "https://jupyter.org")
     (synopsis "Jupyter packaging utilities")
     (description "This package provides tools to help build and install
@@ -286,31 +270,31 @@ JavaScript build steps.")
                          ;; Integration tests require a server.
                          "-m" "not integration_test"))))))))
     (propagated-inputs
-     `(("python-anyio" ,python-anyio)
-       ("python-argon2-cffi" ,python-argon2-cffi)
-       ("python-ipython-genutils" ,python-ipython-genutils)
-       ("python-jinja2" ,python-jinja2)
-       ("python-jupyter-client" ,python-jupyter-client)
-       ("python-jupyter-core" ,python-jupyter-core)
-       ("python-nbconvert" ,python-nbconvert)
-       ("python-nbformat" ,python-nbformat)
-       ("python-prometheus-client" ,python-prometheus-client)
-       ("python-pyzmq" ,python-pyzmq)
-       ("python-requests-unixsocket" ,python-requests-unixsocket)
-       ("python-send2trash" ,python-send2trash)
-       ("python-terminado" ,python-terminado)
-       ("python-tornado" ,python-tornado-6)
-       ("python-traitlets" ,python-traitlets)
-       ("python-websocket-client" ,python-websocket-client)))
+     (list python-anyio
+           python-argon2-cffi
+           python-ipython-genutils
+           python-jinja2
+           python-jupyter-client
+           python-jupyter-core
+           python-nbconvert
+           python-nbformat
+           python-prometheus-client
+           python-pyzmq
+           python-requests-unixsocket
+           python-send2trash
+           python-terminado
+           python-tornado-6
+           python-traitlets
+           python-websocket-client))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-ipykernel" ,python-ipykernel)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-console-scripts" ,python-pytest-console-scripts)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-pytest-tornasync" ,python-pytest-tornasync)
-       ("python-requests" ,python-requests)))
+     (list python-coverage
+           python-ipykernel
+           python-pytest
+           python-pytest-console-scripts
+           python-pytest-cov
+           python-pytest-mock
+           python-pytest-tornasync
+           python-requests))
     (home-page "https://jupyter.org")
     (synopsis "Core services, APIs, and REST endpoints for Jupyter web applications")
     (description
@@ -331,8 +315,7 @@ endpoints—to Jupyter web applications.")
          "0y7vhhas3qndiypcpcfnhrj9n92v2w4hdc86nn620s9h9nl2j6jw"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-jupyter-packaging" ,python-jupyter-packaging)
-       ("python-setuptools" ,python-setuptools)))
+     (list python-jupyter-packaging python-setuptools))
     (home-page "https://github.com/jupyter-widgets/ipywidgets")
     (synopsis "Interactive widgets for Jupyter Notebooks")
     (description "ipywidgets, also known as jupyter-widgets or simply widgets,
@@ -355,31 +338,28 @@ are interactive HTML widgets for Jupyter notebooks and the IPython kernel.")
     ;; nbconvert.
     (arguments '(#:tests? #false))
     (propagated-inputs
-     `(("python-async-generator" ,python-async-generator)
-       ("python-jupyter-client" ,python-jupyter-client)
-       ("python-nbformat" ,python-nbformat)
-       ("python-nest-asyncio" ,python-nest-asyncio)
-       ("python-traitlets" ,python-traitlets)))
+     (list python-async-generator python-jupyter-client python-nbformat
+           python-nest-asyncio python-traitlets))
     (native-inputs
-     `(("python-black" ,python-black)
-       ("python-bumpversion" ,python-bumpversion)
-       ("python-check-manifest" ,python-check-manifest)
-       ("python-codecov" ,python-codecov)
-       ("python-coverage" ,python-coverage)
-       ("python-flake8" ,python-flake8)
-       ;; ("python-ipykernel" ,python-ipykernel)
-       ;; ("python-ipython" ,python-ipython)
-       ;; ("python-ipywidgets" ,python-ipywidgets)
-       ("python-mypy" ,python-mypy)
-       ("python-pip" ,python-pip)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-setuptools" ,python-setuptools)
-       ("python-testpath" ,python-testpath)
-       ("python-tox" ,python-tox)
-       ("python-twine" ,python-twine)
-       ("python-wheel" ,python-wheel)
-       ("python-xmltodict" ,python-xmltodict)))
+     (list python-black
+           python-bumpversion
+           python-check-manifest
+           python-codecov
+           python-coverage
+           python-flake8
+           ;; ("python-ipykernel" ,python-ipykernel)
+           ;; ("python-ipython" ,python-ipython)
+           ;; ("python-ipywidgets" ,python-ipywidgets)
+           python-mypy
+           python-pip
+           python-pytest
+           python-pytest-cov
+           python-setuptools
+           python-testpath
+           python-tox
+           python-twine
+           python-wheel
+           python-xmltodict))
     (home-page "https://jupyter.org")
     (synopsis "Client library for executing notebooks")
     (description
@@ -420,28 +400,26 @@ nix-shell-wrapper|repo2docker-entrypoint)")
                       (let* ((out (assoc-ref outputs "doc"))
                              (doc (string-append out "/share/doc/"
                                                  ,name)))
-                        (setenv "PYTHONPATH"
+                        (setenv "GUIX_PYTHONPATH"
                                 (string-append (getcwd) ":"
-                                               (getenv "PYTHONPATH")))
+                                               (getenv "GUIX_PYTHONPATH")))
                         (with-directory-excursion "docs"
                           (invoke  "make" "html")
                           (copy-recursively "build/html"
                                             (string-append doc "/html")))))))))
     (inputs
-     `(("python-traitlets" ,python-traitlets)
-       ("python-toml" ,python-toml)
-       ("python-semver" ,python-semver)
-       ("python-ruamel.yaml" ,python-ruamel.yaml)
-       ("python-requests" ,python-requests)
-       ("python-json-logger" ,python-json-logger)
-       ("python-jinja2" ,python-jinja2)
-       ("python-escapism" ,python-escapism)
-       ("python-docker" ,python-docker)))
+     (list python-traitlets
+           python-toml
+           python-semver
+           python-ruamel.yaml
+           python-requests
+           python-json-logger
+           python-jinja2
+           python-escapism
+           python-docker))
     (native-inputs
-     `(("python-sphinx" ,python-sphinx)
-       ("python-recommonmark" ,python-recommonmark)
-       ("python-sphinxcontrib-autoprogram" ,python-sphinxcontrib-autoprogram)
-       ("python-pydata-sphinx-theme" ,python-pydata-sphinx-theme)))
+     (list python-sphinx python-recommonmark
+           python-sphinxcontrib-autoprogram python-pydata-sphinx-theme))
     (home-page "https://repo2docker.readthedocs.io/en/latest/index.html#")
     (synopsis "Generate docker images from repositories")
     (description
@@ -484,11 +462,9 @@ Docker registry.")
               (invoke "python" "-m" "bash_kernel.install" "--prefix" out)
               #t))))))
    (inputs
-     `(("bash" ,bash)))
+     (list bash))
    (propagated-inputs
-     `(("python-pexpect" ,python-pexpect)
-       ("python-ipykernel" ,python-ipykernel)
-       ("python-jupyter-client" ,python-jupyter-client)))
+     (list python-pexpect python-ipykernel python-jupyter-client))
    (home-page "https://github.com/takluyver/bash_kernel")
    (synopsis "Jupyter kernel for Bash")
    (description "A bash shell kernel for Jupyter.")
@@ -525,14 +501,10 @@ Docker registry.")
                  (string-append "--InstallKernelSpec.prefix=" out))
                #t))))))
     (native-inputs
-     `(("python-traitlets" ,python-traitlets)
-       ("python-jupyter-client" ,python-jupyter-client)
-       ("python-notebook" ,python-notebook)
-       ("python-ipykernel" ,python-ipykernel)
-       ("python-html5lib" ,python-html5lib-0.9)))
+     (list python-traitlets python-jupyter-client python-notebook
+           python-ipykernel python-html5lib-0.9))
     (propagated-inputs
-     `(("python-sparqlwrapper" ,python-sparqlwrapper)
-       ("python-pygments" ,python-pygments)))
+     (list python-sparqlwrapper python-pygments))
     (home-page "https://github.com/paulovn/sparql-kernel")
     (synopsis "Jupyter kernel for SPARQL")
     (description "This module installs a Jupyter kernel for SPARQL.  It allows
@@ -553,19 +525,17 @@ a notebook.")
          "0krfc95yjlhjdmrsladhy6lpf4xs1zw49nmkyl4pkykndglvwa1m"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-jupyter-client" ,python-jupyter-client)
-       ("python-jupyter-server" ,python-jupyter-server)
-       ("python-nbclient" ,python-nbclient)
-       ("python-nbconvert" ,python-nbconvert)))
+     (list python-jupyter-client python-jupyter-server python-nbclient
+           python-nbconvert))
     (native-inputs
-     `(("python-ipywidgets" ,python-ipywidgets)
-       ("python-jupyter-packaging" ,python-jupyter-packaging)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-tornasync" ,python-pytest-tornasync)
-       ("python-setuptools" ,python-setuptools)
-       ("python-tornado" ,python-tornado-6)))
+     (list python-ipywidgets
+           python-jupyter-packaging
+           python-matplotlib
+           python-mock
+           python-pytest
+           python-pytest-tornasync
+           python-setuptools
+           python-tornado-6))
     (home-page "https://github.com/voila-dashboards/voila")
     (synopsis "Render live Jupyter notebooks with interactive widgets")
     (description
diff --git a/gnu/packages/kawa.scm b/gnu/packages/kawa.scm
index 9550a01720..49a3ca6e16 100644
--- a/gnu/packages/kawa.scm
+++ b/gnu/packages/kawa.scm
@@ -48,7 +48,7 @@
                  `("JAVA_HOME" ":" = (,(assoc-ref inputs "icedtea"))))
                #t))))))
     (inputs
-     `(("icedtea" ,icedtea-8 "jdk")))
+     (list `(,icedtea-8 "jdk")))
     (home-page "https://www.gnu.org/software/kawa/")
     (synopsis "Java framework and implementation of Scheme, Elisp, and more")
     (description
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 83bf7bd95a..65937f8970 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -33,6 +33,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
+  #:use-module (guix gexp)
   #:use-module (gnu packages)
   #:use-module (gnu packages acl)
   #:use-module (gnu packages admin)
@@ -167,11 +168,9 @@ common build settings used in software produced by the KDE community.")
     (native-inputs
      ;; TODO: Think about adding pulseaudio. Is it required for sound?
      ;; TODO: Add building the super experimental QML support
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules pkg-config qttools))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (arguments
      `(#:configure-flags
        '("-DCMAKE_CXX_FLAGS=-fPIC"
@@ -206,17 +205,15 @@ common build settings used in software produced by the KDE community.")
                 "1wk1ip2w7fkh65zk6rilj314dna0hgsv2xhjmpr5w08xa8sii1y5"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules pkg-config qttools))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("phonon" ,phonon)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("libxml2" ,libxml2)))
+     (list qtbase-5
+           phonon
+           qtbase-5
+           qtx11extras
+           gstreamer
+           gst-plugins-base
+           libxml2))
     (arguments
      `(#:configure-flags
        '( "-DPHONON_BUILD_PHONON4QT5=ON")))
@@ -256,9 +253,9 @@ Phonon-GStreamer is a backend based on the GStreamer multimedia library.")
              (substitute* "autotests/CMakeLists.txt"
                ((".*providertest.cpp") "")))))))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Open Collaboration Service client library")
     (description "Attica is a Qt library that implements the Open
@@ -288,18 +285,17 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/")
                 "1kqhps4qyvqm0qmk7fb3w41bib898amipchf8csdzacw4bzpri9k"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("dbus" ,dbus)
-       ("extra-cmake-modules" ,extra-cmake-modules)))
+     (list dbus extra-cmake-modules))
     (inputs
      ;; TODO: qtdeclarative (yields one failing test)
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (arguments
-     `(#:configure-flags
-       (list (string-append
-              "-DUDEV_RULES_INSTALL_DIR=" %output "/lib/udev/rules.d"))
-       ;; TODO: Make tests pass: DBUS_FATAL_WARNINGS=0 still yields 7/8 tests
-       ;; failing.  When running after install, tests hang.
-       #:tests? #f))
+     (list #:configure-flags
+           #~(list (string-append
+                    "-DUDEV_RULES_INSTALL_DIR=" #$output "/lib/udev/rules.d"))
+           ;; TODO: Make tests pass: DBUS_FATAL_WARNINGS=0 still yields 7/8 tests
+           ;; failing.  When running after install, tests hang.
+           #:tests? #f))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "QML wrapper for BlueZ")
     (description "bluez-qt is a Qt-style library for accessing the bluez
@@ -321,11 +317,9 @@ Bluetooth stack.  It is used by the KDE Bluetooth stack, BlueDevil.")
                 "0lqglrjgjb4ralgmr7lb9k7acmn8q4jm18s4p3gbgd9iswyqgsbm"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("fdupes" ,fdupes)
-       ("libxml2" ,libxml2)))
+     (list extra-cmake-modules fdupes libxml2))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Default KDE Plasma 5 icon theme")
     (description "Breeze provides a freedesktop.org compatible icon theme.
@@ -352,17 +346,15 @@ It is the default icon theme for the KDE Plasma 5 desktop.")
     (arguments
      `(#:tests? #f)) ; has no test target
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (propagated-inputs
      ;; kapidox is a python programm
      ;; TODO: check if doxygen has to be installed, the readme does not
      ;; mention it. The openSuse .rpm lists doxygen, graphviz, graphviz-gd,
      ;; and python-xml.
-     `(("python" ,python)
-       ("python-jinja2" ,python-jinja2)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python python-jinja2 python-pyyaml))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Doxygen Tools")
     (description "This framework contains scripts and data for building API
@@ -392,12 +384,9 @@ documentation.")
                 "0z8asn357pdbv4g9g0x18p72wskca1qanxljyix7wzc5rsi63wzm"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("qtbase" ,qtbase-5)
-       ("xz" ,xz)
-       ("zlib" ,zlib)))
+     (list bzip2 qtbase-5 xz zlib))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Qt 5 addon providing access to numerous types of archives")
     (description "KArchive provides classes for easy reading, creation and
@@ -426,12 +415,9 @@ GZip format, via a subclass of QIODevice.")
                 "1y1f8gc1g9yn9kgmn53f1zvkizasfs667dfin3fyci657r5qwpw2"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("perl" ,perl)
-       ("tzdata" ,tzdata-for-tests)))
+     (list extra-cmake-modules perl tzdata-for-tests))
     (inputs
-     `(("libical" ,libical)
-       ("qtbase" ,qtbase-5)))
+     (list libical qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -486,11 +472,9 @@ and the older vCalendar.")
                 "0y9n2a5n18pasdmrp0xb84hla9l27yj2x3k4p1c041sd9nkwixpk"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("gperf" ,gperf)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules gperf qttools))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "String encoding and manipulating library")
     (description "KCodecs provide a collection of methods to manipulate
@@ -522,13 +506,10 @@ Internet).")
                 "1s3h4hfpw7c0894cifj66bj1yhx8g94ckvl71jm7qqsb5x5h6y9n"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("dbus" ,dbus)
-       ("extra-cmake-modules" ,extra-cmake-modules)
-       ("inetutils" ,inetutils)
-       ("qttools" ,qttools)
-       ("xorg-server" ,xorg-server-for-tests)))
+     (list dbus extra-cmake-modules inetutils qttools
+           xorg-server-for-tests))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -587,13 +568,11 @@ propagate their changes to their respective configuration files.")
                 "10a7zys3limsawl7lk9ggymk3msk2bp0y8hp0jmsvk3l405pd1ps"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)
-       ("shared-mime-info" ,shared-mime-info)
-       ;; TODO: FAM: File alteration notification http://oss.sgi.com/projects/fam
-       ("xorg-server" ,xorg-server-for-tests))) ; for the tests
+     (list extra-cmake-modules qttools shared-mime-info
+           ;; TODO: FAM: File alteration notification http://oss.sgi.com/projects/fam
+           xorg-server-for-tests)) ; for the tests
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -645,13 +624,9 @@ many more.")
               (patches (search-patches "kdbusaddons-kinit-file-name.patch"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("dbus" ,dbus)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules dbus qttools))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)
-       ("kinit" ,kinit-bootstrap))) ;; kinit-bootstrap: kinit package which does not depend on kdbusaddons.
+     (list qtbase-5 qtx11extras kinit-bootstrap)) ;; kinit-bootstrap: kinit package which does not depend on kdbusaddons.
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -689,11 +664,10 @@ as well as an API to create KDED modules.")
                 "0wadknnf472rqg2xnqzs5v23qzqfr336wj6d96yg2ayqm0chbppy"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules qttools))
     (inputs
-     `(("avahi" ,avahi) ; alternativly dnssd could be used
-       ("qtbase" ,qtbase-5)))
+     (list avahi ; alternativly dnssd could be used
+           qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Network service discovery using Zeroconf")
     (description "KDNSSD is a library for handling the DNS-based Service
@@ -716,16 +690,14 @@ infrastructure.")
                 "1h6pgg89gvxl8gw7wmkabyqqrzad5pxyv5lsmn1fl4ir8lcc5q2l"))))
     (build-system cmake-build-system)
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("boost" ,boost)
-       ("graphviz" ,graphviz)
-       ("kiconthemes" ,kiconthemes)
-       ("kparts" ,kparts)
-       ("qtsvg" ,qtsvg)))
+     (list qtbase-5
+           boost
+           graphviz
+           kiconthemes
+           kparts
+           qtsvg))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list pkg-config extra-cmake-modules kdoctools))
     (home-page "https://apps.kde.org/en/kgraphviewer")
     (synopsis "Graphviz dot graph viewer for KDE")
     (description "KGraphViewer is a Graphviz DOT graph file viewer, aimed to
@@ -751,11 +723,9 @@ replace the other outdated Graphviz tools.")
     ;; python-sip, clang-python, libclang.  Requires python-2 in all cases for
     ;; clang-python.
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+     (list qtbase-5 qtx11extras))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Utilities for graphical user interfaces")
     (description "The KDE GUI addons provide utilities for graphical user
@@ -786,11 +756,9 @@ interfaces in the areas of colors, fonts, text, images, keyboard input.")
                  (display "[testDefaultRegions]\n*\n")))
              #t)))))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules qttools))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list qtbase-5 qtdeclarative))
     (home-page "https://invent.kde.org/frameworks/kholidays")
     (synopsis "Library for regional holiday information")
     (description "This library provides a C++ API that determines holiday and
@@ -815,11 +783,9 @@ other special events for a geographical region.")
      `(("gettext" ,gettext-minimal)
        ("python" ,python)))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtscript" ,qtscript)))
+     (list qtbase-5 qtdeclarative qtscript))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -855,12 +821,10 @@ translation scripting.")
                 "0vbxs80a8kh2xbxclx8zwl7acynsasa7i0cs171fxr26d0dmmhm5"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (inputs
-     `(("libxscrnsaver" ,libxscrnsaver) ; X-Screensaver based poller, fallback mode
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+     (list libxscrnsaver ; X-Screensaver based poller, fallback mode
+           qtbase-5 qtx11extras))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Reporting of idle time of user and system")
     (description "KIdleTime is a singleton reporting information on idle time.
@@ -887,19 +851,18 @@ or user activity.")
     (properties `((upstream-name . "kirigami2")))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules qttools))
     (inputs
-     `(("kwindowsystem" ,kwindowsystem)
-       ;; TODO: Find a way to activate this optional include without
-       ;; introducing a recursive dependency.
-       ;;("plasma-frameworks" ,plasma-framework) ;; Tier 3!
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtquickcontrols2" ,qtquickcontrols2)
-       ("qtsvg" ,qtsvg)
-       ;; Run-time dependency
-       ("qtgraphicaleffects" ,qtgraphicaleffects)))
+     (list kwindowsystem
+           ;; TODO: Find a way to activate this optional include without
+           ;; introducing a recursive dependency.
+           ;;("plasma-frameworks" ,plasma-framework) ;; Tier 3!
+           qtbase-5
+           qtdeclarative
+           qtquickcontrols2
+           qtsvg
+           ;; Run-time dependency
+           qtgraphicaleffects))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "QtQuick components for mobile user interfaces")
     (description "Kirigami is a set of high level QtQuick components looking
@@ -922,10 +885,9 @@ of applications that follow the Kirigami Human Interface Guidelines.")
                 "0x7y5shg2pp490hvmkz81b8j01cha9j1001q34m7pnyf0n3zknzc"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list qtbase-5 qtdeclarative))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Set of item models extending the Qt model-view framework")
     (description "KItemModels provides the following models:
@@ -973,10 +935,9 @@ model to observers
                 "04vlmkvc3y5h7cpb6kdv9gha5axxkimhqh44mdg2ncyn4sas6j68"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules qttools))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Set of item views extending the Qt model-view framework")
     (description "KItemViews includes a set of views, which can be used with
@@ -999,10 +960,9 @@ to flat and hierarchical lists.")
                 "1wj4n2a8iz9ml1y0012xkpsx3dfp5gl2dn80sifrzvkxjxrhwach"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules qttools))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Data plotting library")
     (description "KPlotWidget is a QWidget-derived class that provides a virtual
@@ -1027,13 +987,11 @@ pixel units.")
                 "12jn7lqsp86329spai7n1n8i65nwhxh8gp33wkq543h7w3i2a3jb"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("perl" ,perl)
-       ("qttools" ,qttools)
-       ;; Optional, for compile-time validation of syntax definition files:
-       ("qtxmlpatterns" ,qtxmlpatterns)))
+     (list extra-cmake-modules perl qttools
+           ;; Optional, for compile-time validation of syntax definition files:
+           qtxmlpatterns))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1076,13 +1034,9 @@ integration with a custom editor as well as a ready-to-use
                 "0hrpbfzixjpnfy9q5x66q1fff0p7n80rrs127zzdv68pyi6456ry"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtwayland" ,qtwayland)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+     (list qtbase-5 qtwayland wayland wayland-protocols))
     (arguments
      `(#:tests? #f ; FIXME tests require weston to run
                    ; weston requires wayland flags in mesa
@@ -1117,11 +1071,9 @@ represented by a QPoint or a QSize.")
                 "03l37lh219np7pqfa56r2v7n5s5xg4rjq005qng4b5izd95ri56j"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)
-       ("xorg-server" ,xorg-server-for-tests)))
+     (list extra-cmake-modules qttools xorg-server-for-tests))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1154,12 +1106,12 @@ configuration pages, message boxes, and password requests.")
                 "0a68cj0bsl5a9sxfd969khznycrn9p6grp2b08hqacxqdknzs0wh"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("dbus" ,dbus) ; for the tests
-       ("openbox" ,openbox) ; for the tests
-       ("qttools" ,qttools)
-       ("xorg-server" ,xorg-server-for-tests))) ; for the tests
+     (list extra-cmake-modules
+           pkg-config
+           dbus ; for the tests
+           openbox ; for the tests
+           qttools
+           xorg-server-for-tests)) ; for the tests
     (inputs
      `(("libxrender" ,libxrender)
        ("qtbase" ,qtbase-5)
@@ -1217,14 +1169,12 @@ lower level classes for interaction with the X Windowing System.")
                 "0ydq1l823jgp0yrrpqi1zdk5dsg65ydk1x082qwsa9a0vzs0np3x"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("dbus" ,dbus)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules dbus pkg-config))
     (propagated-inputs
      ;; Headers contain #include <ModemManager/ModemManager.h>
-     `(("modem-manager" ,modem-manager)))
+     (list modem-manager))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1255,15 +1205,13 @@ messages.")
                 "1h2kdw5vs7mn3n7bvqwm36a48ra9iap6384kanz14zjbankj04c1"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("dbus" ,dbus)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules dbus pkg-config))
     (propagated-inputs
      ;; Headers contain #include <NetworkManager.h> and
      ;;                 #include <libnm/NetworkManager.h>
-     `(("network-manager" ,network-manager)))
+     (list network-manager))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1294,10 +1242,9 @@ which are used in DBus communication.")
                 "1rjsnz0g7zyzgii26sk370adb6jcyvr2lm8qi23fvqimifngqm2c"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("fdupes" ,fdupes)))
+     (list extra-cmake-modules fdupes))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Oxygen provides the standard icon theme for the KDE desktop")
     (description "Oxygen icon theme for the KDE desktop")
@@ -1318,11 +1265,9 @@ which are used in DBus communication.")
         (base32 "1qflivvb593d2npc218xkdn3w5zvl7x8v1b52ydnggsxzbgkqvb4"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("libdmtx" ,libdmtx)
-       ("qrencode" ,qrencode)
-       ("qtbase" ,qtbase-5))) ;; TODO: rethink: nix propagates this
+     (list libdmtx qrencode qtbase-5)) ;; TODO: rethink: nix propagates this
     (home-page "https://api.kde.org/frameworks/prison/html/index.html")
     (synopsis "Barcode generation abstraction layer")
     (description "Prison is a Qt-based barcode abstraction layer/library and
@@ -1342,13 +1287,9 @@ provides uniform access to generation of barcodes with data.")
                 "1i0ql68kxv9jxs24rsd3s7jhjid3f2fq56fj4wbp16zb4wd14099"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("pulseaudio" ,pulseaudio)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtbase" ,qtbase-5)))
+     (list glib pulseaudio qtdeclarative qtbase-5))
     (home-page "https://invent.kde.org/libraries/pulseaudio-qt/")
     (synopsis "Qt bindings for PulseAudio")
     (description
@@ -1375,17 +1316,16 @@ libpulse.")
                 "1n47cl082zqdw6ykil04rw6bws4fn1m8wfx4vxv1aqj9warbdks3"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (inputs
-     `(("kauth" ,kauth)
-       ("kconfigwidgets" ,kconfigwidgets) ; optional
-       ("kcoreaddons" ,kcoreaddons)
-       ("kiconthemes" ,kiconthemes) ; optional
-       ("kirigami" ,kirigami)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtquickcontrols2" ,qtquickcontrols2)))
+     (list kauth
+           kconfigwidgets ; optional
+           kcoreaddons
+           kiconthemes ; optional
+           kirigami
+           qtbase-5
+           qtdeclarative
+           qtquickcontrols2))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "QtQuickControls2 style that integrates with the desktop")
     (description "This is a style for QtQuickControls2 which is using
@@ -1416,11 +1356,7 @@ feel.")
              (setenv "DBUS_FATAL_WARNINGS" "0")
              (invoke "dbus-launch" "ctest" "."))))))
     (native-inputs
-     `(("bison" ,bison)
-       ("dbus" ,dbus)
-       ("extra-cmake-modules" ,extra-cmake-modules)
-       ("flex" ,flex)
-       ("qttools" ,qttools)))
+     (list bison dbus extra-cmake-modules flex qttools))
     (inputs
      `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
@@ -1448,13 +1384,11 @@ system.")
                 "0b88h5fw1n8zyrg0vq3lj2jbjjyh0mk64lj6ab3643kxzqxbn30w"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules pkg-config qttools))
     (inputs
-     `(("hunspell" ,hunspell)
-       ;; TODO: hspell (for Hebrew), Voikko (for Finish)
-       ("qtbase" ,qtbase-5)))
+     (list hunspell
+           ;; TODO: hspell (for Hebrew), Voikko (for Finish)
+           qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Multi-language spell checker")
     (description "Sonnet is a plugin-based spell checking library for Qt-based
@@ -1477,9 +1411,9 @@ ASpell and HUNSPELL.")
                 "0y1q0wy073lf11g4jrp4bdw4kpj4ibqfscsxj6zlh8ban9zlf389"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Helper for multithreaded programming")
     (description "ThreadWeaver is a helper for multithreaded programming.  It
@@ -1507,26 +1441,26 @@ uses a job-based interface to queue tasks and execute them in an efficient way."
                 "1whsp0f87lrcn61s9rfhy0aj68hm6zgfa38mq6frlkcjksi0z1vn"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
-    (inputs
-     `(("boost" ,boost)
-       ("kauth" ,kauth)
-       ("kbookmarks" ,kbookmarks)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kio" ,kio)
-       ("kitemviews" ,kitemviews)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("solid" ,solid)))
+     (list extra-cmake-modules))
+    (inputs
+     (list boost
+           kauth
+           kbookmarks
+           kcodecs
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kio
+           kitemviews
+           kjobwidgets
+           kservice
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           qtbase-5
+           qtdeclarative
+           solid))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Core components for the KDE Activity concept")
     (description "KActivities provides the infrastructure needed to manage a
@@ -1552,13 +1486,9 @@ with other frameworks.")
                 "0nmdz7ra3hpg0air4lfkzilv7cwx3zxs29k7sh8l3i1fs3qpjwxm"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("dbus" ,dbus)
-       ("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list dbus extra-cmake-modules qttools))
     (inputs
-     `(("kcoreaddons" ,kcoreaddons)
-       ("polkit-qt" ,polkit-qt)
-       ("qtbase" ,qtbase-5)))
+     (list kcoreaddons polkit-qt qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1599,12 +1529,9 @@ utilities.")
                 "1pjgya8wi28jx63hcdi9v5f5487gzbkw2j1iganhd7bhcb8s7zpy"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules qttools))
     (inputs
-     `(("kconfig" ,kconfig)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase-5)))
+     (list kconfig kwidgetsaddons qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Powerful autocompletion framework and widgets")
     (description "This framework helps implement autocompletion in Qt-based
@@ -1627,16 +1554,12 @@ integrated it into your application's other widgets.")
                 "182ma11z3kqxq3cwy7kwprfqkb9bcmn44w7k9vixbid4pv5wa0lb"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("xorg-server" ,xorg-server))) ; for the tests
+     (list extra-cmake-modules xorg-server)) ; for the tests
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (propagated-inputs
-     `(;; As required by KF5ContactsConfig.cmake.
-       ("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)))
+     (list ;; As required by KF5ContactsConfig.cmake.
+           kcodecs kconfig kcoreaddons ki18n))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1672,12 +1595,9 @@ localized country name to ISO 3166-1 alpha 2 code mapping and vice verca.
                 "11sy9hrjpvybqi53qjrnncy9mzifrb3vqxi2d12ldjzqyqd8pirp"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kcoreaddons" ,kcoreaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+     (list kcoreaddons kwindowsystem qtbase-5 qtx11extras))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Graceful handling of application crashes")
     (description "KCrash provides support for intercepting and handling
@@ -1699,17 +1619,17 @@ application crashes.")
                 "0g0k83np2xaxk05spf14h5fvzy0n7kbcwx1sa9wjh570f6jx87am"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("docbook-xml" ,docbook-xml)
-       ("docbook-xsl" ,docbook-xsl)
-       ("karchive" ,karchive)
-       ("ki18n" ,ki18n)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("perl" ,perl)
-       ("perl-uri" ,perl-uri)
-       ("qtbase" ,qtbase-5)))
+     (list docbook-xml
+           docbook-xsl
+           karchive
+           ki18n
+           libxml2
+           libxslt
+           perl
+           perl-uri
+           qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1773,20 +1693,20 @@ from DocBook files.")
        ("pkg-config" ,pkg-config)
        ("python-2" ,python-2)))
     (inputs
-     `(("attr" ,attr)
-       ;; TODO: EPub http://sourceforge.net/projects/ebook-tools
-       ("karchive" ,karchive)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtbase" ,qtbase-5)
-       ;; Required run-time packages
-       ("catdoc" ,catdoc)
-       ;; Optional run-time packages
-       ("exiv2" ,exiv2)
-       ("ffmpeg" ,ffmpeg)
-       ("poppler-qt5" ,poppler-qt5)
-       ("taglib" ,taglib)))
+     (list attr
+           ;; TODO: EPub http://sourceforge.net/projects/ebook-tools
+           karchive
+           kcoreaddons
+           ki18n
+           qtmultimedia
+           qtbase-5
+           ;; Required run-time packages
+           catdoc
+           ;; Optional run-time packages
+           exiv2
+           ffmpeg
+           poppler-qt5
+           taglib))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Extract metadata from different fileformats")
     (description "KFileMetaData provides a simple library for extracting the
@@ -1810,12 +1730,11 @@ by applications to write metadata.")
                 "0pk4b725wapzdxv1mm6ddqcl6z8ffcpr32i5vrhrin8awi5gx13s"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (inputs
-     `(("karchive" ,karchive) ; for Krita and OpenRaster images
-       ("openexr" ,openexr) ; for OpenEXR high dynamic-range images
-       ("qtbase" ,qtbase-5)))
+     (list karchive ; for Krita and OpenRaster images
+           openexr-2 ; for OpenEXR high dynamic-range images
+           qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1864,13 +1783,9 @@ formats.")
                 "13kdczzyyh17hf6vlhh4li5bn4yq5bab5xa8mm63r9rynxihgclf"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules qttools))
     (inputs
-     `(("kcoreaddons" ,kcoreaddons)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+     (list kcoreaddons kwidgetsaddons qtbase-5 qtx11extras))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Widgets for showing progress of asynchronous jobs")
     (description "KJobWIdgets provides widgets for showing progress of
@@ -1892,20 +1807,18 @@ asynchronous jobs.")
                 "01bn23xw2n53h9nl99lm3cjnqs8s66bmwkzf6fkpg9rzkykizbyc"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("dbus" ,dbus)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules dbus qttools))
     (inputs
-     `(("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("phonon" ,phonon)
-       ("qtbase" ,qtbase-5)
-       ("qtspeech" ,qtspeech)
-       ;; TODO: Think about adding dbusmenu-qt5 from
-       ;; https://launchpad.net/libdbusmenu-qt
-       ("qtx11extras" ,qtx11extras)))
+     (list kcodecs
+           kconfig
+           kcoreaddons
+           kwindowsystem
+           phonon
+           qtbase-5
+           qtspeech
+           ;; TODO: Think about adding dbusmenu-qt5 from
+           ;; https://launchpad.net/libdbusmenu-qt
+           qtx11extras))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1942,14 +1855,14 @@ covers feedback and persistent events.")
                                        "kpackage-fix-KF5PackageMacros.cmake.patch"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("karchive" ,karchive)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kdoctools" ,kdoctools)
-       ("ki18n" ,ki18n)
-       ("qtbase" ,qtbase-5)))
+     (list karchive
+           kconfig
+           kcoreaddons
+           kdoctools
+           ki18n
+           qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2000,12 +1913,11 @@ were traditional plugins.")
                 "1hp6iilr2asf2269linfazjv4yjg7rsi8wydxx53yyr99r0bgmah"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ;; TODO: utempter, for managing UTMP entries
-       ("qtbase" ,qtbase-5)))
+     (list kcoreaddons ki18n
+           ;; TODO: utempter, for managing UTMP entries
+           qtbase-5))
     (arguments
      `(#:tests? #f ; FIXME: 1/1 tests fail.
        #:phases
@@ -2047,10 +1959,9 @@ and communicating with them using a pty.")
              (substitute* "autotests/convertertest.cpp"
                (("const int numThreads = 2") "const int numThreads = 0")))))))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("ki18n" ,ki18n)
-       ("qtbase" ,qtbase-5)))
+     (list ki18n qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Converting physical units")
     (description "KUnitConversion provides functions to convert values in
@@ -2074,10 +1985,9 @@ gallons).")
                 "1n3x8s1z4kd30xirfr07hi87vwhk4rilb5kslcjcgp5n9c0imcpv"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kcodecs" ,kcodecs)
-       ("qtbase" ,qtbase-5)))
+     (list kcodecs qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "RSS/Atom parser library")
     (description "@code{syndication} supports RSS (0.9/1.0, 0.91..2.0) and
@@ -2107,29 +2017,27 @@ between feed formats.")
                 "1cf5pp9hn3pqypwyzh63ksasap3n7qz6n3y2xgb83ss3fra90pjf"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("kcoreaddons" ,kcoreaddons)
-       ("kfilemetadata" ,kfilemetadata)))
-    (native-inputs
-     `(("dbus" ,dbus)
-       ("extra-cmake-modules" ,extra-cmake-modules)))
-    (inputs
-     `(("kbookmarks" ,kbookmarks)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kidletime" ,kidletime)
-       ("kio" ,kio)
-       ("kitemviews" ,kitemviews)
-       ("ki18n" ,ki18n)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("lmdb" ,lmdb)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("solid" ,solid)))
+     (list kcoreaddons kfilemetadata))
+    (native-inputs
+     (list dbus extra-cmake-modules))
+    (inputs
+     (list kbookmarks
+           kcompletion
+           kconfig
+           kcrash
+           kdbusaddons
+           kidletime
+           kio
+           kitemviews
+           ki18n
+           kjobwidgets
+           kservice
+           kwidgetsaddons
+           kxmlgui
+           lmdb
+           qtbase-5
+           qtdeclarative
+           solid))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2181,13 +2089,9 @@ maintaining an index of the contents of your files.")
                 "1cnfdnxkw9hwbqdzdygp2vzwxqwqhxyipzwdcgar0clgnf7zi7wx"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("boost" ,boost)
-       ("kactivities" ,kactivities)
-       ("kconfig" ,kconfig)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list boost kactivities kconfig qtbase-5 qtdeclarative))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Access usage statistics collected by the activity manager")
     (description "The KActivitiesStats library provides a querying mechanism for
@@ -2211,19 +2115,18 @@ by which applications, and what documents have been linked to which activity.")
                 "1i5vcyvyc9whmflbcg2kc562ch93yscfic1c1n9z347g26jmgras"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("kwidgetsaddons" ,kwidgetsaddons)))
-    (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
-    (inputs
-     `(("kauth" ,kauth)
-       ("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kiconthemes" ,kiconthemes)
-       ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase-5)))
+     (list kwidgetsaddons))
+    (native-inputs
+     (list extra-cmake-modules qttools))
+    (inputs
+     (list kauth
+           kcodecs
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kiconthemes
+           kxmlgui
+           qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2254,10 +2157,9 @@ using the XBEL format.")
                 "08f4yr546brl1dppp0khvsw9ihmh9a7rp505913pdhi0sklaiimz"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("kconfigwidgets" ,kconfigwidgets)
-       ("kservice" ,kservice)))
+     (list kconfigwidgets kservice))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2273,20 +2175,20 @@ using the XBEL format.")
                 (string-append a " KCM plugin\" << mod.service()->library() << \":\"" c)))
              #t)))))
     (inputs
-     `(("kauth" ,kauth)
-       ("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kdeclarative" ,kdeclarative)
-       ("kguiaddons" ,kguiaddons)
-       ("kiconthemes" ,kiconthemes)
-       ("kitemviews" ,kitemviews)
-       ("ki18n" ,ki18n)
-       ("kpackage" ,kpackage)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list kauth
+           kcodecs
+           kconfig
+           kcoreaddons
+           kdeclarative
+           kguiaddons
+           kiconthemes
+           kitemviews
+           ki18n
+           kpackage
+           kwidgetsaddons
+           kxmlgui
+           qtbase-5
+           qtdeclarative))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Utilities for KDE System Settings modules")
     (description "KCMUtils provides various classes to work with KCModules.
@@ -2308,20 +2210,16 @@ KCModules can be created with the KConfigWidgets framework.")
                 "195dw7nyr3fp78y3vfnyjh0hwgwk46f80wdcm8dck5rkscl3v9xz"))))
     (build-system qt-build-system)
     (propagated-inputs
-     `(("kauth" ,kauth)
-       ("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("kwidgetsaddons" ,kwidgetsaddons)))
+     (list kauth kcodecs kconfig kwidgetsaddons))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("kcoreaddons" ,kcoreaddons)
-       ("kguiaddons" ,kguiaddons)
-       ("ki18n" ,ki18n)
-       ;; todo: PythonModuleGeneration
-       ("qtbase" ,qtbase-5)
-       ("qttools" ,qttools)))
+     (list kcoreaddons
+           kguiaddons
+           ki18n
+           ;; todo: PythonModuleGeneration
+           qtbase-5
+           qttools))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2355,34 +2253,31 @@ their settings.")
                 "1vq9pkrb0zsphi2sfx7cyy1kb6pklzjkmqdf5202z8vydlkc4549"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("kconfig" ,kconfig)
-       ("kpackage" ,kpackage)))
-    (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("xorg-server" ,xorg-server-for-tests)))
-    (inputs
-     `(("kauth" ,kauth)
-       ("kbookmarks" ,kbookmarks)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kglobalaccel" ,kglobalaccel)
-       ("kguiaddons" ,kguiaddons)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kitemviews" ,kitemviews)
-       ("ki18n" ,ki18n)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libepoxy" ,libepoxy)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("solid" ,solid)))
+     (list kconfig kpackage))
+    (native-inputs
+     (list extra-cmake-modules pkg-config xorg-server-for-tests))
+    (inputs
+     (list kauth
+           kbookmarks
+           kcodecs
+           kcompletion
+           kconfigwidgets
+           kcoreaddons
+           kglobalaccel
+           kguiaddons
+           kiconthemes
+           kio
+           kitemviews
+           ki18n
+           kjobwidgets
+           kservice
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libepoxy
+           qtbase-5
+           qtdeclarative
+           solid))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2417,16 +2312,16 @@ that offer bindings to some of the Frameworks.")
                 "0zqd33vy4ny7g9as3bhd75qi1chz1nlqq133pgw8kjanvghwwnk9"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdoctools" ,kdoctools)
-       ("kinit" ,kinit)
-       ("kservice" ,kservice)
-       ("qtbase" ,qtbase-5)))
+     (list kconfig
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           kdoctools
+           kinit
+           kservice
+           qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Central daemon of KDE work spaces")
     (description "KDED stands for KDE Daemon.  KDED runs in the background and
@@ -2450,26 +2345,25 @@ started on demand.")
                 "0dr6gcag2yzx8fvxis4x403jrcisywds95cywmiyz3pb5727cak2"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
-    (inputs
-     `(("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kdoctools" ,kdoctools)
-       ("qtbase" ,qtbase-5)
-       ;; optional:
-       ("kcompletion" ,kcompletion)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kiconthemes" ,kiconthemes)
-       ("kitemviews" ,kitemviews)
-       ("kio" ,kio)
-       ("kplotting" ,kplotting)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kdewebkit" ,kdewebkit)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("qtwebkit" ,qtwebkit)
-       ("sonnet" ,sonnet)))
+     (list extra-cmake-modules qttools))
+    (inputs
+     (list kconfig
+           kcoreaddons
+           kdoctools
+           qtbase-5
+           ;; optional:
+           kcompletion
+           kconfigwidgets
+           kiconthemes
+           kitemviews
+           kio
+           kplotting
+           ktextwidgets
+           kdewebkit
+           kwidgetsaddons
+           kxmlgui
+           qtwebkit
+           sonnet))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Integrating KDE frameworks widgets with Qt Designer")
     (description "This framework provides plugins for Qt Designer that allow it
@@ -2493,15 +2387,11 @@ ini-style description files.")
                 "17k29g7jwgqj5xdmr509438b9sq65zx8khdr4viybjf5xpi0cf5m"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("kpty" ,kpty)))
+     (list kpty))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kservice" ,kservice)
-       ("qtbase" ,qtbase-5)))
+     (list kconfig kcoreaddons ki18n kservice qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "User interface for running shell commands with root privileges")
     (description "KDESU provides functionality for building GUI front ends for
@@ -2524,18 +2414,17 @@ with su and ssh respectively.")
                 "0y9ja3znkvzdbjfs91dwr4cmvl9fk97zpz2lkf0f9zhm2nw6q008"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules qttools))
     (inputs
-     `(("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kio" ,kio)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kparts" ,kparts)
-       ("kservice" ,kservice)
-       ("kwallet" ,kwallet)
-       ("qtbase" ,qtbase-5)
-       ("qtwebkit" ,qtwebkit)))
+     (list kconfig
+           kcoreaddons
+           kio
+           kjobwidgets
+           kparts
+           kservice
+           kwallet
+           qtbase-5
+           qtwebkit))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Integration for QtWebKit")
     (description "This library provides KDE integration of the HTML rendering
@@ -2557,14 +2446,11 @@ engine WebKit via QtWebKit.")
                 "11v1srn3nii4j7cn4f19qvdw96pczwxhanzxlg4a9gf8kmnp5gxr"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("kservice" ,kservice)))
+     (list kservice))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("karchive" ,karchive)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("qtbase" ,qtbase-5)))
+     (list karchive kconfig kcoreaddons qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2597,20 +2483,18 @@ emoticons coming from different providers.")
                 "0hmqigc8myiwwh7m6y2cm4vn0d3kmrhia179hyb84vpvvn3lm93z"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules pkg-config qttools))
     (inputs
-     `(("kconfig" ,kconfig)
-       ("kcrash" ,kcrash)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kservice" ,kservice)
-       ("kwindowsystem" ,kwindowsystem)
-       ("libxcb" ,libxcb)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)
-       ("xcb-util-keysyms" ,xcb-util-keysyms)))
+     (list kconfig
+           kcrash
+           kcoreaddons
+           kdbusaddons
+           kservice
+           kwindowsystem
+           libxcb
+           qtbase-5
+           qtx11extras
+           xcb-util-keysyms))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Global desktop keyboard shortcuts")
     (description "KGlobalAccel allows you to have global accelerators that are
@@ -2633,21 +2517,19 @@ window does not need focus for them to be activated.")
                 "09bqpf3drqyfc81vgab9bsh1wm5qbzdwqjlczhax38660nnvh0r9"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)
-       ("shared-mime-info" ,shared-mime-info)))
+     (list extra-cmake-modules qttools shared-mime-info))
     (inputs
-     `(("karchive" ,karchive)
-       ("kauth" ,kauth)
-       ("kcodecs" ,kcodecs)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("ki18n" ,ki18n)
-       ("kitemviews" ,kitemviews)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+     (list karchive
+           kauth
+           kcodecs
+           kcoreaddons
+           kconfig
+           kconfigwidgets
+           ki18n
+           kitemviews
+           kwidgetsaddons
+           qtbase-5
+           qtsvg))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2700,32 +2582,31 @@ in applications using the KDE Frameworks.")
             (variable "KDEINIT5_LIBRARY_PATH")
             (files '("lib/")))))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("kauth" ,kauth)
-       ("kbookmarks" ,kbookmarks)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdoctools" ,kdoctools)
-       ("kio" ,kio)
-       ("kitemviews" ,kitemviews)
-       ("ki18n" ,ki18n)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kparts" ,kparts)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libcap" ,libcap) ; to install start_kdeinit with CAP_SYS_RESOURCE
-       ("plasma-framework" ,plasma-framework)
-       ("qtbase" ,qtbase-5)
-       ("solid" ,solid)))
+     (list extra-cmake-modules pkg-config))
+    (inputs
+     (list kauth
+           kbookmarks
+           kcodecs
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           kdoctools
+           kio
+           kitemviews
+           ki18n
+           kjobwidgets
+           kparts
+           kservice
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libcap ; to install start_kdeinit with CAP_SYS_RESOURCE
+           plasma-framework
+           qtbase-5
+           solid))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Library to speed up start of applications on KDE workspaces")
     (description "Kdeinit is a process launcher similar to init used for booting
@@ -2752,20 +2633,18 @@ consumption.")
               (patches (search-patches "kio-search-smbd-on-PATH.patch"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("kbookmarks" ,kbookmarks)
-       ("kconfig" ,kconfig)
-       ("kcompletion" ,kcompletion)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kitemviews" ,kitemviews)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kservice" ,kservice)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("solid" ,solid)))
-    (native-inputs
-     `(("dbus" ,dbus)
-       ("qttools" ,qttools)
-       ("extra-cmake-modules" ,extra-cmake-modules)))
+     (list kbookmarks
+           kconfig
+           kcompletion
+           kcoreaddons
+           kitemviews
+           kjobwidgets
+           kservice
+           kwindowsystem
+           kxmlgui
+           solid))
+    (native-inputs
+     (list dbus qttools extra-cmake-modules))
     (inputs
      `(;; TODO:  LibACL , <ftp://oss.sgi.com/projects/xfs/cmd_tars>
        ("krb5" ,mit-krb5)
@@ -2845,31 +2724,29 @@ KIO enabled infrastructure.")
                 "1hpxj4nawh57w8l64gjplb5mk5fpxiffm4x49kg75m637rxy19fq"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("attica" ,attica)
-       ("kservice" ,kservice)
-       ("kxmlgui" ,kxmlgui)))
-    (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
-    (inputs
-     `(("karchive" ,karchive)
-       ("kauth" ,kauth)
-       ("kbookmarks" ,kbookmarks)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kio" ,kio)
-       ("kitemviews" ,kitemviews)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kjobwidgets" ,kjobwidgets)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("solid" ,solid)
-       ("sonnet" ,sonnet)))
+     (list attica kservice kxmlgui))
+    (native-inputs
+     (list extra-cmake-modules))
+    (inputs
+     (list karchive
+           kauth
+           kbookmarks
+           kcodecs
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kio
+           kitemviews
+           ki18n
+           kiconthemes
+           kjobwidgets
+           ktextwidgets
+           kwidgetsaddons
+           qtbase-5
+           qtdeclarative
+           solid
+           sonnet))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2901,26 +2778,26 @@ specification.")
                 "1d483qrgyamwsqvcl70klv1g8744hn8z1h2j3qfydcvlwz8jy0gj"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
-    (inputs
-     `(("kauth" ,kauth)
-       ("kbookmarks" ,kbookmarks)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kio" ,kio)
-       ("kitemviews" ,kitemviews)
-       ("ki18n" ,ki18n)
-       ("kjobwidgets" ,kjobwidgets)
-       ("knotifications" ,knotifications)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("phonon" ,phonon)
-       ("qtbase" ,qtbase-5)
-       ("solid" ,solid)))
+     (list extra-cmake-modules))
+    (inputs
+     (list kauth
+           kbookmarks
+           kcodecs
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kio
+           kitemviews
+           ki18n
+           kjobwidgets
+           knotifications
+           kservice
+           kwidgetsaddons
+           kxmlgui
+           phonon
+           qtbase-5
+           solid))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Configuration dialog for desktop notifications")
     (description "KNotifyConfig provides a configuration dialog for desktop
@@ -2953,29 +2830,26 @@ notifications which can be embedded in your application.")
                         (("partloadertest\\.cpp") ""))
                       #t)))))
     (propagated-inputs
-     `(("kio" ,kio)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kxmlgui" ,kxmlgui)))
-    (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("shared-mime-info" ,shared-mime-info)))
-    (inputs
-     `(("kauth" ,kauth)
-       ("kbookmarks" ,kbookmarks)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kiconthemes" ,kiconthemes)
-       ("kitemviews" ,kitemviews)
-       ("ki18n" ,ki18n)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase-5)
-       ("solid" ,solid)
-       ("sonnet" ,sonnet)))
+     (list kio ktextwidgets kxmlgui))
+    (native-inputs
+     (list extra-cmake-modules shared-mime-info))
+    (inputs
+     (list kauth
+           kbookmarks
+           kcodecs
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kiconthemes
+           kitemviews
+           ki18n
+           kjobwidgets
+           kservice
+           kwidgetsaddons
+           qtbase-5
+           solid
+           sonnet))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Plugin framework for user interface components")
     (description "This library implements the framework for KDE parts, which are
@@ -2997,16 +2871,16 @@ widgets with a user-interface defined in terms of actions.")
                 "1dhvly19pj9lx78g7mc89scibzmra1vhv4zz33222zidkbrf9ryl"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kitemviews" ,kitemviews)
-       ("ki18n" ,ki18n)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list kconfig
+           kcoreaddons
+           kitemviews
+           ki18n
+           kservice
+           kwidgetsaddons
+           qtbase-5
+           qtdeclarative))
     (arguments
      `(#:tests? #f)) ; FIXME: 1/3 tests fail.
     (home-page "https://community.kde.org/Frameworks")
@@ -3033,45 +2907,44 @@ to easily extend the contacts collection.")
                 "0fhb26vi9z1mky79kq12qq4g4ghz3530cx84n5l3sdgkd6nfsyqf"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("plasma-framework" ,plasma-framework)))
-    (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-
-       ;; For tests.
-       ("dbus" ,dbus)))
-    (inputs
-     `(("kauth" ,kauth)
-       ("kbookmarks" ,kbookmarks)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kio" ,kio)
-       ("kitemviews" ,kitemviews)
-       ("ki18n" ,ki18n)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kpackage" ,kpackage)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("solid" ,solid)
-       ("threadweaver" ,threadweaver)))
+     (list plasma-framework))
+    (native-inputs
+     (list extra-cmake-modules
+           ;; For tests.
+           dbus))
+    (inputs
+     (list kauth
+           kbookmarks
+           kcodecs
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kio
+           kitemviews
+           ki18n
+           kjobwidgets
+           kpackage
+           kservice
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           qtbase-5
+           qtdeclarative
+           solid
+           threadweaver))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-paths-for-test
            ;; This test tries to access paths like /home, /usr/bin and /bin/ls
            ;; which don't exist in the build-container. Change to existing paths.
-           (lambda _
+           (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "autotests/runnercontexttest.cpp"
                (("/home\"") "/tmp\"") ;; single path-part
                (("//usr/bin\"") (string-append (getcwd) "\"")) ;; multiple path-parts
-               (("/bin/ls" path)
-                (string-append (assoc-ref %build-inputs "coreutils") path)))))
+               (("/bin/ls")
+                (search-input-file inputs "/bin/ls")))))
          (add-before 'check 'check-setup
            (lambda _
              (setenv "HOME" (getcwd))
@@ -3109,18 +2982,11 @@ typed.")
                 "0g49p5331f7dl46rvi43akmjm1jx70w9797j6d17jy7z9s9sqikw"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)))
+     (list kconfig kcoreaddons))
     (native-inputs
-     `(("bison" ,bison)
-       ("extra-cmake-modules" ,extra-cmake-modules)
-       ("flex" ,flex)))
+     (list bison extra-cmake-modules flex))
     (inputs
-     `(("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdoctools" ,kdoctools)
-       ("ki18n" ,ki18n)
-       ("qtbase" ,qtbase-5)))
+     (list kcrash kdbusaddons kdoctools ki18n qtbase-5))
     (arguments
      `(#:tests? #f ; FIXME: 6/10 tests fail.
        #:phases
@@ -3168,39 +3034,38 @@ types or handled by application specific code.")
                 "0k10yj1ia1w1mznj4g5nvp65p226zcvgwxc85ycn2w8lbkknidf7"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("kparts" ,kparts)))
-    (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(;; TODO: editor-config
-       ("karchive" ,karchive)
-       ("kauth" ,kauth)
-       ("kbookmarks" ,kbookmarks)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kguiaddons" ,kguiaddons)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kitemviews" ,kitemviews)
-       ("ki18n" ,ki18n)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kservice" ,kservice)
-       ("ksyntaxhighlighting" ,ksyntaxhighlighting)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libgit2" ,libgit2)
-       ("perl" ,perl)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtscript" ,qtscript)
-       ("qtxmlpatterns" ,qtxmlpatterns)
-       ("solid" ,solid)
-       ("sonnet" ,sonnet)))
+     (list kparts))
+    (native-inputs
+     (list extra-cmake-modules pkg-config))
+    (inputs
+     (list ;; TODO: editor-config
+           karchive
+           kauth
+           kbookmarks
+           kcodecs
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kguiaddons
+           kiconthemes
+           kio
+           kitemviews
+           ki18n
+           kjobwidgets
+           kservice
+           ksyntaxhighlighting
+           ktextwidgets
+           kwidgetsaddons
+           kxmlgui
+           libgit2
+           perl
+           qtbase-5
+           qtdeclarative
+           qtscript
+           qtxmlpatterns
+           solid
+           sonnet))
     (arguments
      `(#:tests? #f ; FIXME: 2/54 tests fail: Cannot find fontdirectory qtbase/lib/font
        #:phases
@@ -3249,24 +3114,22 @@ library.")
                 "1609rlwba674kr9whawk93vb1b14b5ly7wvir7kjyjp4j715f47w"))))
     (build-system qt-build-system)
     (propagated-inputs
-     `(("ki18n" ,ki18n)
-       ("sonnet" ,sonnet)))
-    (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
-    (inputs
-     `(("kauth" ,kauth)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kiconthemes" ,kiconthemes)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("qtbase" ,qtbase-5)
-       ("qtspeech" ,qtspeech)))
+     (list ki18n sonnet))
+    (native-inputs
+     (list extra-cmake-modules qttools))
+    (inputs
+     (list kauth
+           kcodecs
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kiconthemes
+           kservice
+           kwidgetsaddons
+           kwindowsystem
+           qtbase-5
+           qtspeech))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Text editing widgets")
     (description "KTextWidgets provides widgets for displaying and editing text.
@@ -3289,26 +3152,26 @@ It supports rich text as well as plain text.")
                 "1ps6ywcirv7xcisvwfcpvk53wm7m8y5lrz4nhkm36rizrdglw19r"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
-    (inputs
-     `(("gpgme" ,gpgme)
-       ("kauth" ,kauth)
-       ("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdoctools" ,kdoctools)
-       ("kiconthemes" ,kiconthemes)
-       ("ki18n" ,ki18n)
-       ("knotifications" ,knotifications)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("libgcrypt" ,libgcrypt)
-       ("phonon" ,phonon)
-       ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase-5)))
+     (list extra-cmake-modules))
+    (inputs
+     (list gpgme
+           kauth
+           kcodecs
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kdbusaddons
+           kdoctools
+           kiconthemes
+           ki18n
+           knotifications
+           kservice
+           kwidgetsaddons
+           kwindowsystem
+           libgcrypt
+           phonon
+           qgpgme
+           qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Safe desktop-wide storage for passwords")
     (description "This framework contains an interface to KWallet, a safe
@@ -3331,25 +3194,23 @@ the passwords on KDE work spaces.")
                 "0cvzcq2dcz89c0ffhvfb820hfmqa87mfdbjvrqjwdysc9lr8zx8f"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)))
-    (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
-    (inputs
-     `(("attica" ,attica)
-       ("kauth" ,kauth)
-       ("kcodecs" ,kcodecs)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kglobalaccel" ,kglobalaccel)
-       ("kiconthemes" ,kiconthemes)
-       ("kitemviews" ,kitemviews)
-       ("ki18n" ,ki18n)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("qtbase" ,qtbase-5)
-       ("sonnet" ,sonnet)))
+     (list kconfig kconfigwidgets))
+    (native-inputs
+     (list extra-cmake-modules qttools))
+    (inputs
+     (list attica
+           kauth
+           kcodecs
+           kcoreaddons
+           kglobalaccel
+           kiconthemes
+           kitemviews
+           ki18n
+           ktextwidgets
+           kwidgetsaddons
+           kwindowsystem
+           qtbase-5
+           sonnet))
     (arguments
      `(#:tests? #f ; FIXME: 1/5 tests fail.
        #:phases
@@ -3384,25 +3245,25 @@ descriptions for integrating actions from plugins.")
                 "1cmfv2w9yfi8jhj5nawfz7kw8jbr1k5cr3n5xv3z59pg2vazsx8b"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("kio" ,kio)))
-    (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
-    (inputs
-     `(("kauth" ,kauth)
-       ("kbookmarks" ,kbookmarks)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kitemviews" ,kitemviews)
-       ("ki18n" ,ki18n)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase-5)
-       ("solid" ,solid)))
+     (list kio))
+    (native-inputs
+     (list extra-cmake-modules))
+    (inputs
+     (list kauth
+           kbookmarks
+           kcodecs
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kitemviews
+           ki18n
+           kjobwidgets
+           kservice
+           kwidgetsaddons
+           kxmlgui
+           qtbase-5
+           solid))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "XML-RPC client")
     (description "This library contains simple XML-RPC Client support.  It is a
@@ -3428,11 +3289,9 @@ setUrl, setUserAgent and call.")
               (patches (search-patches "plasma-framework-fix-KF5PlasmaMacros.cmake.patch"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("kpackage" ,kpackage)
-       ("kservice" ,kservice)))
+     (list kpackage kservice))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (inputs
      `(("kactivities" ,kactivities)
        ("karchive" ,karchive)
@@ -3498,17 +3357,17 @@ script engines.")
                 "1pxlx2hgj42zsisws8f486n8sg0vn5a5mhb85prifwkaw0rqzgah"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(;;TODO: ("kaccounts" ,kaccounts)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("knotifications" ,knotifications)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kirigami" ,kirigami)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list ;;TODO: ("kaccounts" ,kaccounts)
+           kconfig
+           kcoreaddons
+           knotifications
+           ki18n
+           kio
+           kirigami
+           qtbase-5
+           qtdeclarative))
     (arguments
      `(#:tests? #f  ;; seem to require network; don't find QTQuick components
        #:phases
@@ -3571,8 +3430,7 @@ need.")
                 "1lvccvhhkzdv1hw627kw3ds18gfq4bxdhlvh959piqxq5gh9d2n0"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     ;; TODO: Optional packages not yet in Guix: packagekitqt5, AppStreamQt
     (inputs
      `(("kconfig" ,kconfig)
@@ -3628,54 +3486,54 @@ workspace.")
         (base32 "0imkibjlfc0jshdzr05fz5dy2xmfhvgsfan9b1r35spwsn5qkawx"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("dbus" ,dbus)
-       ("docbook-xml" ,docbook-xml-4.4) ; optional
-       ("extra-cmake-modules" ,extra-cmake-modules)
-       ("perl" ,perl)
-       ("perl-uri" ,perl-uri)
-       ("pkg-config" ,pkg-config)
-       ("shared-mime-info" ,shared-mime-info)
-       ("kjobwidgets" ,kjobwidgets) ;; required for running the tests
-       ("strace" ,strace)
-       ("tzdata" ,tzdata-for-tests)))
+     (list dbus
+           docbook-xml-4.4 ; optional
+           extra-cmake-modules
+           perl
+           perl-uri
+           pkg-config
+           shared-mime-info
+           kjobwidgets ;; required for running the tests
+           strace
+           tzdata-for-tests))
     (propagated-inputs
      ;; These are required to be installed along with this package, see
      ;; lib64/cmake/KF5KDELibs4Support/KF5KDELibs4SupportConfig.cmake
-     `(("karchive" ,karchive)
-       ("kauth" ,kauth)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdesignerplugin" ,kdesignerplugin)
-       ("kdoctools" ,kdoctools)
-       ("kemoticons" ,kemoticons)
-       ("kguiaddons" ,kguiaddons)
-       ("kiconthemes" ,kiconthemes)
-       ("kinit" ,kinit)
-       ("kitemmodels" ,kitemmodels)
-       ("knotifications" ,knotifications)
-       ("kparts" ,kparts)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kunitconversion" ,kunitconversion)
-       ("kwindowsystem" ,kwindowsystem)
-       ("qtbase" ,qtbase-5)))
-    (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kded" ,kded)
-       ("kglobalaccel" ,kglobalaccel)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libsm" ,libsm)
-       ("networkmanager-qt" ,networkmanager-qt)
-       ("openssl" ,openssl)
-       ("qtsvg" ,qtsvg)
-       ("qttools" ,qttools)
-       ("qtx11extras" ,qtx11extras)))
+     (list karchive
+           kauth
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           kdesignerplugin
+           kdoctools
+           kemoticons
+           kguiaddons
+           kiconthemes
+           kinit
+           kitemmodels
+           knotifications
+           kparts
+           ktextwidgets
+           kunitconversion
+           kwindowsystem
+           qtbase-5))
+    (inputs
+     (list kcompletion
+           kconfig
+           kded
+           kglobalaccel
+           ki18n
+           kio
+           kservice
+           kwidgetsaddons
+           kxmlgui
+           libsm
+           networkmanager-qt
+           openssl
+           qtsvg
+           qttools
+           qtx11extras))
     ;; FIXME: Use Guix ca-bundle.crt in etc/xdg/ksslcalist and
     ;; share/kf5/kssl/ca-bundle.crt
     ;; TODO: NixOS has nix-kde-include-dir.patch to change std-dir "include"
@@ -3744,32 +3602,31 @@ http://community.kde.org/Frameworks/Porting_Notes should help with this.")
         (base32 "1jh0g6xv57hyclnh54x0f72lby1gvlisan23y7mzlqf67aky52s5"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("perl" ,perl)))
-    (inputs
-     `(("giflib" ,giflib)
-       ("gperf" ,gperf)
-       ("karchive" ,karchive)
-       ("kcodecs" ,kcodecs)
-       ("kglobalaccel" ,kglobalaccel)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kjs" ,kjs)
-       ("knotifications" ,knotifications)
-       ("kparts" ,kparts)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwallet" ,kwallet)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("openssl" ,openssl)
-       ("phonon" ,phonon)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)
-       ("sonnet" ,sonnet)))
+     (list extra-cmake-modules perl))
+    (inputs
+     (list giflib
+           gperf
+           karchive
+           kcodecs
+           kglobalaccel
+           ki18n
+           kiconthemes
+           kio
+           kjs
+           knotifications
+           kparts
+           ktextwidgets
+           kwallet
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libjpeg-turbo
+           libpng
+           openssl
+           phonon
+           qtbase-5
+           qtx11extras
+           sonnet))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Frameworks 5 HTML widget and component")
     (description "KHTML is a web rendering engine, based on the KParts
@@ -3795,13 +3652,9 @@ technology and using KJS for JavaScript support.")
         (base32 "0s3n0pdz59p5v967zrxcas3lb94k5bv9vi8058fi0l20nwwlcgh5"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules kdoctools perl pkg-config))
     (inputs
-     `(("pcre" ,pcre)
-       ("qtbase" ,qtbase-5)))
+     (list pcre qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Frameworks 5 support for Javascript scripting in Qt
 applications")
@@ -3828,14 +3681,9 @@ support.")
         (base32 "0976faazhxhhi1wpvpcs8hwb2knz0z7j44v3ay3hw73rq4p3bipm"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules kdoctools qttools))
     (inputs
-     `(("ki18n" ,ki18n)
-       ("kjs" ,kjs)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+     (list ki18n kjs qtbase-5 qtsvg))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Frameworks 5 embedded Javascript engine for Qt")
     (description "KJSEmbed provides a method of binding Javascript objects to
@@ -3857,19 +3705,17 @@ QObjects, so you can script your applications.")
         (base32 "0lrm4y727nhwaivl37zpmnrwx048gfhyjw19m6q5z9p37lk43jja"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules kdoctools qttools))
     (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kparts" ,kparts)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase-5)))
+     (list kcompletion
+           kcoreaddons
+           ki18n
+           kiconthemes
+           kio
+           kparts
+           kwidgetsaddons
+           kxmlgui
+           qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Frameworks 5 plugin interface for media player features")
     (description "KMediaPlayer builds on the KParts framework to provide a
@@ -3895,19 +3741,17 @@ KParts instead.")
         (base32 "12b527l12rcf421p613ydbacilp9v9iy90ma35w21sdf9a15k675"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules kdoctools qttools))
     (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kparts" ,kparts)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase-5)
-       ("qtscript" ,qtscript)))
+     (list kcompletion
+           kcoreaddons
+           ki18n
+           kiconthemes
+           kparts
+           kwidgetsaddons
+           kxmlgui
+           qtbase-5
+           qtscript))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Frameworks 5 solution for application scripting")
     (description "Kross is a scripting bridge for the KDE Development Platform
diff --git a/gnu/packages/kde-internet.scm b/gnu/packages/kde-internet.scm
index 223e1aab7a..4e08bd5337 100644
--- a/gnu/packages/kde-internet.scm
+++ b/gnu/packages/kde-internet.scm
@@ -64,36 +64,34 @@
         (base32 "0zm4nkpmvd181xlkis7ydzx54p3vn0zgpdzgh54f1hsjy6ahsq16"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules kdoctools pkg-config))
     (inputs
-     `(("attica" ,attica)
-       ("kcmutils" ,kcmutils)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kdewebkit" ,kdewebkit)
-       ("kemoticons" ,kemoticons)
-       ("kglobalaccel" ,kglobalaccel)
-       ("kguiaddons" ,kguiaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("knotifications" ,knotifications)
-       ("knotifyconfig" ,knotifyconfig)
-       ("kparts" ,kparts)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwallet" ,kwallet)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ;; TODO: telepathy
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("purpose" ,purpose)
-       ("qca" ,qca)
-       ("qoauth" ,qoauth)
-       ("qtbase" ,qtbase-5)
-       ("qtnetworkauth" ,qtnetworkauth)
-       ("qtwebkit" ,qtwebkit)
-       ("sonnet" ,sonnet)))
+     (list attica
+           kcmutils
+           kconfigwidgets
+           kcoreaddons
+           kdewebkit
+           kemoticons
+           kglobalaccel
+           kguiaddons
+           ki18n
+           kio
+           knotifications
+           knotifyconfig
+           kparts
+           ktextwidgets
+           kwallet
+           kwidgetsaddons
+           kxmlgui
+           ;; TODO: telepathy
+           oxygen-icons ; default icon set
+           purpose
+           qca
+           qoauth
+           qtbase-5
+           qtnetworkauth
+           qtwebkit
+           sonnet))
     (home-page "https://kde.org/applications/internet/org.kde.choqok")
     (synopsis "Micro-Blogging Client")
     (description "Choqok is a fast, efficient and simple to use micro-blogging
@@ -127,43 +125,41 @@ Other notable features include:
         (base32 "1swx58wcig8zq8ibhczhcw7l8mqjm7pq8zca9gmny9kda5q04f5m"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (inputs
-     `(("boost" ,boost)
-       ("gmp" ,gmp)
-       ("gpgme" ,gpgme)
-       ("kcmutils" ,kcmutils)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdelibs4support" ,kdelibs4support) ;; KLocale
-       ("kdoctools" ,kdoctools)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kitemviews" ,kitemviews)
-       ("knotifications" ,knotifications)
-       ("knotifyconfig" ,knotifyconfig)
-       ("kparts" ,kparts)
-       ("kservice" ,kservice)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwallet" ,kwallet)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libgcrypt" ,libgcrypt)
-       ("libktorrent" ,libktorrent)
-       ;; TODO: libmms
-       ;; TODO: LibKWorkspace - plasma-workspace?
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("qca" ,qca)
-       ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase-5)
-       ))
+     (list boost
+           gmp
+           gpgme
+           kcmutils
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           kdelibs4support ;; KLocale
+           kdoctools
+           ki18n
+           kiconthemes
+           kio
+           kitemviews
+           knotifications
+           knotifyconfig
+           kparts
+           kservice
+           ktextwidgets
+           kwallet
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libgcrypt
+           libktorrent
+           ;; TODO: libmms
+           ;; TODO: LibKWorkspace - plasma-workspace?
+           oxygen-icons ; default icon set
+           qca
+           qgpgme
+           qtbase-5))
     (home-page "http://www.kde.org/")
     (synopsis "Versatile and user-friendly download manager")
     (description "KGet is an advanced download manager with support for
@@ -188,35 +184,34 @@ This package is part of the KDE networking module.")
         (base32 "19qqq9s8k0cl71ib33xn07f26j5ji2g4336jk65im6452cf1dv27"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("karchive" ,karchive)
-       ("kbookmarks" ,kbookmarks)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kemoticons" ,kemoticons)
-       ("kglobalaccel" ,kglobalaccel)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kidletime" ,kidletime)
-       ("kio" ,kio)
-       ("kitemviews" ,kitemviews)
-       ("knotifications" ,knotifications)
-       ("knotifyconfig" ,knotifyconfig)
-       ("kparts" ,kparts)
-       ("kwallet" ,kwallet)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("phonon" ,phonon)
-       ("qtbase" ,qtbase-5)
-       ("qca" ,qca)
-       ("solid" ,solid)
-       ("sonnet" ,sonnet)))
+     (list karchive
+           kbookmarks
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           kemoticons
+           kglobalaccel
+           ki18n
+           kiconthemes
+           kidletime
+           kio
+           kitemviews
+           knotifications
+           knotifyconfig
+           kparts
+           kwallet
+           kwidgetsaddons
+           kwindowsystem
+           oxygen-icons ; default icon set
+           phonon
+           qtbase-5
+           qca
+           solid
+           sonnet))
     (home-page "https://kde.org/applications/internet/org.kde.konversations")
     (synopsis "Graphical Internet Relay Chat (IRC) client for KDE")
     (description "Konversation is a graphical Internet Relay Chat client (IRC)
@@ -259,54 +254,52 @@ Features are:
         (base32 "149gi9hkyl825kf046iqkam3gkzfwdc2sihbf8gs6njachzvb81y"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules kdoctools pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("boost" ,boost)
-       ("expat" ,expat)
-       ("glib" ,glib)
-       ("gpgme" ,gpgme)
-       ("jsoncpp" ,jsoncpp)
-       ("kcmutils" ,kcmutils)
-       ("kconfig" ,kconfig)
-       ("kcontacts" ,kcontacts)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdelibs4support" ,kdelibs4support)
-       ("kdnssd" ,kdnssd)
-       ("kemoticons" ,kemoticons)
-       ("khtml" ,khtml)
-       ("ki18n" ,ki18n)
-       ("kidentitymanagement" ,kidentitymanagement)
-       ("kjs" ,kjs)
-       ;; TODO? kleopatra (additionally to libkleo)
-       ("knotifyconfig" ,knotifyconfig)
-       ("kparts" ,kparts)
-       ("kpimtextedit" ,kpimtextedit)
-       ("ktexteditor" ,ktexteditor)
-       ("kwallet" ,kwallet)
-       ;; TODO: Libgadu
-       ("libidn" ,libidn)
-       ("libkleo" ,libkleo)
-       ;; TODO: LibMeanwhile
-       ("libotr" ,libotr)
-       ("libsrtp" ,libsrtp)
-       ("libxml2" ,libxml2)
-       ("libxstl" ,libxslt)
-       ;; TODO: Mediastreamer
-       ("openssl" ,openssl)
-       ("ortp" ,ortp)
-       ("phonon" ,phonon)
-       ("qca" ,qca)
-       ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase-5)
-       ("speex" ,speex)
-       ("v4l-utils" ,v4l-utils)
-       ;; TODO: Xmms
-       ("zlib" ,zlib)))
+     (list alsa-lib
+           boost
+           expat
+           glib
+           gpgme
+           jsoncpp
+           kcmutils
+           kconfig
+           kcontacts
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           kdelibs4support
+           kdnssd
+           kemoticons
+           khtml
+           ki18n
+           kidentitymanagement
+           kjs
+           ;; TODO? kleopatra (additionally to libkleo)
+           knotifyconfig
+           kparts
+           kpimtextedit
+           ktexteditor
+           kwallet
+           ;; TODO: Libgadu
+           libidn
+           libkleo
+           ;; TODO: LibMeanwhile
+           libotr
+           libsrtp
+           libxml2
+           libxslt
+           ;; TODO: Mediastreamer
+           openssl
+           ortp
+           phonon
+           qca
+           qgpgme
+           qtbase-5
+           speex
+           v4l-utils
+           ;; TODO: Xmms
+           zlib))
     ;; TODO: enable video support
     (home-page "https://kde.org/applications/internet/org.kde.kopete")
     (synopsis "Instant messaging and chat application")
@@ -337,28 +330,27 @@ This package is part of the KDE networking module.")
         (base32 "1hp23k3nsrcxpv2qiynjgm71zn3l6ds00cpd4frc68szgiblrw9r"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("kbookmarks" ,kbookmarks)
-       ("freerdp" ,freerdp)
-       ("kcmutils" ,kcmutils)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kdnssd" ,kdnssd)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("knotifications" ,knotifications)
-       ("knotifyconfig" ,knotifyconfig)
-       ("knotifyconfig" ,knotifyconfig)
-       ("kwallet" ,kwallet)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libssh2" ,libssh)
-       ;; TODO: libvnc{server,client} - is not tigervnc-{server,client}
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("qtbase" ,qtbase-5)))
+     (list kbookmarks
+           freerdp
+           kcmutils
+           kcompletion
+           kconfig
+           kdnssd
+           ki18n
+           kiconthemes
+           knotifications
+           knotifyconfig
+           knotifyconfig
+           kwallet
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libssh
+           ;; TODO: libvnc{server,client} - is not tigervnc-{server,client}
+           oxygen-icons ; default icon set
+           qtbase-5))
     (home-page "https://kde.org/applications/internet/org.kde.krdc")
     (synopsis "Remote desktop client")
     (description "KRDC is a client application that allows you to view or even
@@ -382,42 +374,41 @@ This package is part of the KDE networking module.")
         (base32 "0kwd0npxfg4mdh7f3xadd2zjlqalpb1jxk61505qpcgcssijf534"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("boost" ,boost)
-       ("gmp" ,gmp)
-       ("karchive" ,karchive)
-       ("kcmutils" ,kcmutils)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdewebkit" ,kdewebkit)
-       ("kdnssd" ,kdnssd)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("knotifications" ,knotifications)
-       ("knotifyconfig" ,knotifyconfig)
-       ("kparts" ,kparts)
-       ("kplotting" ,kplotting)
-       ("kross" ,kross)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libgcrypt" ,libgcrypt)
-       ("libktorrent" ,libktorrent)
-       ;; TODO: LibKWorkspace -> plasma-workspace?
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("phonon" ,phonon)
-       ("qtbase" ,qtbase-5)
-       ("qtscript" ,qtscript)
-       ("qtwebkit" ,qtwebkit)
-       ("solid" ,solid)
-       ("syndication" ,syndication)
-       ("taglib" ,taglib)))
+     (list boost
+           gmp
+           karchive
+           kcmutils
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           kdewebkit
+           kdnssd
+           ki18n
+           kiconthemes
+           kio
+           knotifications
+           knotifyconfig
+           kparts
+           kplotting
+           kross
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libgcrypt
+           libktorrent
+           ;; TODO: LibKWorkspace -> plasma-workspace?
+           oxygen-icons ; default icon set
+           phonon
+           qtbase-5
+           qtscript
+           qtwebkit
+           solid
+           syndication
+           taglib))
     (home-page "https://kde.org/applications/internet/org.kde.ktorrent")
     (synopsis "BitTorrent client")
     (description "KTorrent is a BitTorrent application by KDE which allows you
@@ -439,15 +430,15 @@ a full-featured client for BitTorrent.")
         (base32 "0981ci2kr20v4fk11h57rqya0brgslfazpgq1yk5yqiwyqqm49r2"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kconfig" ,kconfig)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kpimcommon" ,kpimcommon)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase-5)))
+     (list kconfig
+           ki18n
+           kio
+           kpimcommon
+           ktextwidgets
+           kwidgetsaddons
+           qtbase-5))
     (arguments
      `(#:tests? #f)) ;; 2/7 tests fail (due to network issues?)
     (home-page "https://invent.kde.org/pim/libgravatar")
@@ -472,18 +463,18 @@ unnecessary network operations.")
         (base32 "0051zh8bb4p9wmcfn5ql987brhsaiw9880xdck7b5dm1a05mri2w"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("boost" ,boost)
-       ("gmp" ,gmp)
-       ("karchive" ,karchive)
-       ("kcrash" ,kcrash)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("libgcrypt" ,libgcrypt)
-       ("qca" ,qca)
-       ("qtbase" ,qtbase-5)
-       ("solid" ,solid)))
+     (list boost
+           gmp
+           karchive
+           kcrash
+           ki18n
+           kio
+           libgcrypt
+           qca
+           qtbase-5
+           solid))
     (home-page "https://invent.kde.org/network/libktorrent")
     (synopsis "BitTorrent protocol library for C++ / Qt 5 / KDE Frameworks")
     (description "The KTorrent library supports connectivity to HTTP and UDP
diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm
index 4e28fe1367..7537ac1ddd 100644
--- a/gnu/packages/kde-multimedia.scm
+++ b/gnu/packages/kde-multimedia.scm
@@ -24,6 +24,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
+  #:use-module (guix gexp)
   #:use-module (gnu packages)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages base)
@@ -58,20 +59,19 @@
         (base32 "0qlnxxbayqhz25jbvzis27jw2zbw1pmacp8rv7v5wa7zfqn3kmyk"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("cdparanoia" ,cdparanoia)
-       ("flac" ,flac)
-       ("kcmutils" ,kcmutils)
-       ("kconfig" ,kconfig)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("libkcddb" ,libkcddb)
-       ("libkcompactdisc" ,libkcompactdisc)
-       ("libvorbis" ,libvorbis)
-       ("phonon" ,phonon)
-       ("qtbase" ,qtbase-5)))
+     (list cdparanoia
+           flac
+           kcmutils
+           kconfig
+           ki18n
+           kio
+           libkcddb
+           libkcompactdisc
+           libvorbis
+           phonon
+           qtbase-5))
     (home-page "https://kde.org/applications/multimedia/org.kde.kio_audiocd")
     (synopsis "Transparent audio CD integration for applications using the KDE
 Platform")
@@ -98,27 +98,26 @@ This package is part of the KDE multimedia module.")
         (base32 "1sssg20a1vpwk816lp5jgwahilaswb9f3hgfqvc73il4g11ky1xj"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kjobwidgets" ,kjobwidgets)
-       ("knotifications" ,knotifications)
-       ("kparts" ,kparts)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("phonon" ,phonon)
-       ("phonon-backend-gstreamer" ,phonon-backend-gstreamer)
-       ("qtbase" ,qtbase-5)
-       ("solid" ,solid)))
+     (list kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kio
+           kjobwidgets
+           knotifications
+           kparts
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           oxygen-icons ; default icon set
+           phonon
+           phonon-backend-gstreamer
+           qtbase-5
+           solid))
     (home-page "https://kde.org/applications/multimedia/org.kde.dragonplayer")
     (synopsis "Simple video player")
     (description "Dragon Player is a multimedia player where the focus is on
@@ -144,41 +143,38 @@ This package is part of the KDE multimedia module.")
         (base32 "02450lsnbd37fms1i2bb9qc9wir4vym6qqd9p5hr6a6s6qwfs6qf"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("dbus" ,dbus)
-       ("kdoctools" ,kdoctools)
-       ("xorg-server" , xorg-server-for-tests)))
+     (list extra-cmake-modules pkg-config dbus kdoctools
+           xorg-server-for-tests))
     (inputs
-     `(("kconfig" ,kconfig)
-       ("baloo" ,baloo)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kcmutils" ,kcmutils)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdeclarative" ,kdeclarative)
-       ("kfilemetadata" ,kfilemetadata)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kirigami" ,kirigami)
-       ("kmediaplayer" ,kmediaplayer)
-       ("kparts" ,kparts)
-       ("kpackage" ,kpackage)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("phonon" ,phonon)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtgraphicaleffects" ,qtgraphicaleffects) ; not listed as dependency
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtquickcontrols" ,qtquickcontrols)
-       ("qtquickcontrols2" ,qtquickcontrols2)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)
-       ;; TODO: upnpqt https://gitlab.com/homeautomationqt/upnp-player-qt
-       ("vlc" ,vlc)))
+     (list kconfig
+           baloo
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kcmutils
+           kdbusaddons
+           kdeclarative
+           kfilemetadata
+           ki18n
+           kio
+           kirigami
+           kmediaplayer
+           kparts
+           kpackage
+           kwidgetsaddons
+           kxmlgui
+           oxygen-icons ; default icon set
+           phonon
+           qtbase-5
+           qtdeclarative
+           qtgraphicaleffects ; not listed as dependency
+           qtmultimedia
+           qtquickcontrols
+           qtquickcontrols2
+           qtsvg
+           qtx11extras
+           ;; TODO: upnpqt https://gitlab.com/homeautomationqt/upnp-player-qt
+           vlc))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -218,14 +214,9 @@ its own database.  You can build and play your own playlist.")
         (base32 "17l50z33a1h5zkrrfkb261yi2hms66qj36l1mndq7mvs97y2ggmc"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (inputs
-     `(("ffmpeg" ,ffmpeg)
-       ("kconfig" ,kconfig)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("qtbase" ,qtbase-5)))
+     (list ffmpeg kconfig ki18n kio qtbase-5))
     (home-page "https://kde.org/applications/multimedia/org.kde.ffmpegthumbs")
     (synopsis "Video thumbnail generator for KDE using ffmpeg")
     (description "
@@ -249,31 +240,31 @@ This package is part of the KDE multimedia module.")
         (base32 "06vsh7knyhcbcbf632jhldbqpzfkdyils2l8dbcdw5nj5hhgzzmr"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kcoreaddons" ,kcoreaddons)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdoctools" ,kdoctools)
-       ("kglobalaccel" ,kglobalaccel)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kio" ,kio)
-       ("knotifications" ,knotifications)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwallet" ,kwallet)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("phonon" ,phonon)
-       ("phonon-backend-gstreamer" ,phonon-backend-gstreamer)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("taglib" ,taglib)))
+     (list kcoreaddons
+           kcompletion
+           kconfig
+           kcrash
+           kdbusaddons
+           kdoctools
+           kglobalaccel
+           ki18n
+           kiconthemes
+           kjobwidgets
+           kio
+           knotifications
+           ktextwidgets
+           kwallet
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           oxygen-icons ; default icon set
+           phonon
+           phonon-backend-gstreamer
+           qtbase-5
+           qtsvg
+           taglib))
     (home-page "https://kde.org/applications/multimedia/org.kde.juk")
     (synopsis "Music jukebox / music player")
     (description "JuK is a powerful music player capable of managing a large
@@ -307,11 +298,11 @@ This package is part of the KDE multimedia module.")
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'set-absolute-library-paths
-           (lambda _
+           (lambda* (#:key inputs #:allow-other-keys)
              ;; Set absolute paths for dlopened libraries. We can’t use k3b’s
              ;; runpath as they are loaded by the Qt library.
-             (let ((libcdio-paranoia (assoc-ref %build-inputs "libcdio-paranoia"))
-                   (libdvdcss (assoc-ref %build-inputs "libdvdcss")))
+             (let ((libcdio-paranoia (assoc-ref inputs "libcdio-paranoia"))
+                   (libdvdcss (assoc-ref inputs "libdvdcss")))
                (substitute* "libk3b/tools/k3bcdparanoialib.cpp"
                  (("\"(cdio_cdda|cdio_paranoia)\"" _ library)
                   (string-append "\"" libcdio-paranoia "/lib/" library "\"")))
@@ -320,60 +311,58 @@ This package is part of the KDE multimedia module.")
                   (string-append "\"" libdvdcss "/lib/" library "\""))))
              #t))
          (add-after 'qt-wrap 'wrap-path
-           (lambda _
+           (lambda* (#:key inputs outputs #:allow-other-keys)
              ;; Set paths to backend programs.
-             (wrap-program (string-append (assoc-ref %outputs "out") "/bin/k3b")
+             (wrap-program (string-append (assoc-ref outputs "out") "/bin/k3b")
                `("PATH" ":" prefix
                  ,(map (lambda (input)
-                         (string-append (assoc-ref %build-inputs input) "/bin"))
+                         (string-append (assoc-ref inputs input) "/bin"))
                        '("cdrdao" "dvd+rw-tools" "libburn" "sox"))))
              #t)))))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules pkg-config kdoctools))
     (inputs
-     `(("cdrdao" ,cdrdao)
-       ("dvd+rw-tools" ,dvd+rw-tools)
-       ("ffmpeg" ,ffmpeg)
-       ("flac" ,flac)
-       ("karchive" ,karchive)
-       ("kcmutils" ,kcmutils)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kfilemetadata" ,kfilemetadata)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kjobwidgets" ,kjobwidgets)
-       ("knewstuff" ,knewstuff)
-       ("knotifications" ,knotifications)
-       ("knotifyconfig" ,knotifyconfig)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("lame" ,lame)
-       ("libburn" ,libburn)
-       ("libcdio-paranoia" ,libcdio-paranoia)
-       ("libdvdcss" ,libdvdcss)
-       ("libdvdread" ,libdvdread)
-       ;; TODO: LibFuzzer
-       ("libiconv" ,libiconv)
-       ("libkcddb" ,libkcddb)
-       ("libmad" ,libmad)
-       ("libmpcdec" ,libmpcdec)
-       ;;("libmusicbrainz" ,libmusicbrainz) ; wants old version 2
-       ("libsamplerate" ,libsamplerate)
-       ("libsndfile" ,libsndfile)
-       ("libvorbis" ,libvorbis)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("qtbase" ,qtbase-5)
-       ("qtwebkit" ,qtwebkit)
-       ("shared-mime-info" ,shared-mime-info)
-       ("solid" ,solid)
-       ("sox" ,sox)
-       ("taglib" ,taglib)
-       ("zlib" ,zlib)))
+     (list cdrdao
+           dvd+rw-tools
+           ffmpeg
+           flac
+           karchive
+           kcmutils
+           kconfig
+           kcoreaddons
+           kfilemetadata
+           ki18n
+           kiconthemes
+           kio
+           kjobwidgets
+           knewstuff
+           knotifications
+           knotifyconfig
+           kservice
+           kwidgetsaddons
+           kxmlgui
+           lame
+           libburn
+           libcdio-paranoia
+           libdvdcss
+           libdvdread
+           ;; TODO: LibFuzzer
+           libiconv
+           libkcddb
+           libmad
+           libmpcdec
+           ;;("libmusicbrainz" ,libmusicbrainz) ; wants old version 2
+           libsamplerate
+           libsndfile
+           libvorbis
+           oxygen-icons ; default icon set
+           qtbase-5
+           qtwebkit
+           shared-mime-info
+           solid
+           sox
+           taglib
+           zlib))
     (home-page "https://kde.org/applications/multimedia/org.kde.k3b")
     (synopsis "Sophisticated CD/DVD burning application")
     (description "K3b is CD-writing software which intends to be feature-rich
@@ -399,25 +388,23 @@ available CD drives.")
         (base32 "10dnhr9v2jlki44i3gmjagky66ybixmv6f29z5imk9clgddrlyfr"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules pkg-config kdoctools))
     (inputs
-     `(("eudev" ,eudev)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libxscrnsaver" ,libxscrnsaver)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)
-       ("solid" ,solid)
-       ("v4l-utils" ,v4l-utils) ; libdvbv5
-       ("vlc" ,vlc)))
+     (list eudev
+           kcoreaddons
+           kdbusaddons
+           ki18n
+           kio
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libxscrnsaver
+           oxygen-icons ; default icon set
+           qtbase-5
+           qtx11extras
+           solid
+           v4l-utils ; libdvbv5
+           vlc))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -457,28 +444,28 @@ autoloading of subtitle files for use while playing video.")
        ("kdoctools" ,kdoctools)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("kconfig" ,kconfig)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kirigami" ,kirigami)
-       ("knotifications" ,knotifications)
-       ("kparts" ,kparts)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("purpose" ,purpose)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtgraphicaleffects" ,qtgraphicaleffects)
-       ("qtquickcontrols" ,qtquickcontrols)
-       ("qtquickcontrols2" ,qtquickcontrols2) ; not listed as dependency
-       ("qtx11extras" ,qtx11extras)))
+     (list gstreamer
+           gst-plugins-base
+           kconfig
+           ki18n
+           kio
+           kirigami
+           knotifications
+           kparts
+           oxygen-icons ; default icon set
+           purpose
+           qtbase-5
+           qtdeclarative
+           qtgraphicaleffects
+           qtquickcontrols
+           qtquickcontrols2 ; not listed as dependency
+           qtx11extras))
     (arguments
-     `(#:tests? #f ; test program gets built, but is not found
-       #:configure-flags
-       (list (string-append "-DCMAKE_CXX_FLAGS=-I"
-                            (assoc-ref %build-inputs "gst-plugins-base")
-                            "/include/gstreamer-1.0"))))
+     (list #:tests? #f ; test program gets built, but is not found
+           #:configure-flags
+           #~(list (string-append "-DCMAKE_CXX_FLAGS=-I"
+                                  #$(this-package-input "gst-plugins-base")
+                                  "/include/gstreamer-1.0"))))
     (home-page "https://kde.org/applications/multimedia/org.kde.kamoso")
     (synopsis "Take pictures and videos out of your webcam")
     (description "Kamoso is a simple and friendly program to use your
@@ -499,31 +486,30 @@ camera.  Use it to take pictures and make videos to share.")
        (base32 "1na52ypp57wqrc6pl1khinx9i6fidv1k97nnxcy8zb4l7d5sh1nd"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("glib" ,glib)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdoctools" ,kdoctools)
-       ("kglobalaccel" ,kglobalaccel)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("knotifications" ,knotifications)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libcanberra" ,libcanberra)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("plasma-framework" ,plasma-framework)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ("solid" ,solid)))
+     (list alsa-lib
+           glib
+           kconfigwidgets
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcrash
+           kdbusaddons
+           kdoctools
+           kglobalaccel
+           ki18n
+           kiconthemes
+           knotifications
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libcanberra
+           oxygen-icons ; default icon set
+           plasma-framework
+           pulseaudio
+           qtbase-5
+           solid))
     (home-page "https://kde.org/applications/multimedia/org.kde.kmix")
     (synopsis "Volume control and mixer")
     (description "KMix is an audio device mixer, used to adjust volume, select
@@ -549,37 +535,36 @@ This package is part of the KDE multimedia module.")
                  "kmplayer-upstream_Fix-build-with-Qt-5.9.patch"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules pkg-config kdoctools))
     (inputs
-     `(("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kdelibs4support" ,kdelibs4support)
-       ("ki18n" ,ki18n)
-       ("kinit" ,kinit)
-       ("kio" ,kio)
-       ("kparts" ,kparts)
-       ("kmediaplayer" ,kmediaplayer)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("libxcb" ,libxcb) ;; FIXME: why does cmake not find XEVIE and XPRINT?
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("phonon" ,phonon)
-       ("qtbase" ,qtbase-5)
-       ("cairo" ,cairo)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-cursor" ,xcb-util-cursor)
-       ("xcb-util-errors" ,xcb-util-errors)
-       ("xcb-util-image" ,xcb-util-image)
-       ("xcb-util-keysyms" ,xcb-util-keysyms)
-       ("xcb-util-wm" ,xcb-util-wm)))
+     (list kconfig
+           kcoreaddons
+           kdelibs4support
+           ki18n
+           kinit
+           kio
+           kparts
+           kmediaplayer
+           kwidgetsaddons
+           libxcb ;; FIXME: why does cmake not find XEVIE and XPRINT?
+           oxygen-icons ; default icon set
+           phonon
+           qtbase-5
+           cairo
+           qtsvg
+           qtx11extras
+           xcb-util
+           xcb-util-cursor
+           xcb-util-errors
+           xcb-util-image
+           xcb-util-keysyms
+           xcb-util-wm))
     (arguments
-     `(#:configure-flags
-       (list (string-append
-              "-DCMAKE_CXX_FLAGS=-I"
-              (assoc-ref %build-inputs "qtx11extras") "/include/qt5"))))
+     (list #:configure-flags
+           #~(list (string-append
+                    "-DCMAKE_CXX_FLAGS=-I"
+                    #$(this-package-input "qtx11extras")
+                    "/include/qt5"))))
     (home-page "https://kde.org/applications/multimedia/org.kde.kmplayer")
     (synopsis "Media player using mplayer/phonon as backend")
     (description "Kmplayer can play all the audio/video supported by
@@ -612,38 +597,35 @@ Some features:
         (base32 "0ysa873pc2gip95cxr8yv7ifd9qql5zg6h67i9n9q3iqa6v58iyw"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("librsvg" ,librsvg)
-       ("pkg-config" ,pkg-config)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules librsvg pkg-config kdoctools))
     (inputs
-     `(("also-lib" ,alsa-lib)
-       ("audiofile" ,audiofile)
-       ("flac" ,flac)
-       ("id3lib" ,id3lib)
-       ("karchive" ,karchive)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kservice" ,kservice)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libmad" ,libmad)
-       ("libsamplerate" ,libsamplerate)
-       ("libvorbis" ,libvorbis)
-       ("opus" ,opus)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtmultimedia" ,qtmultimedia)
-       ("zlib" ,zlib)))
+     (list alsa-lib
+           audiofile
+           flac
+           id3lib
+           karchive
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kiconthemes
+           kio
+           kservice
+           ktextwidgets
+           kwidgetsaddons
+           kxmlgui
+           libmad
+           libsamplerate
+           libvorbis
+           opus
+           oxygen-icons ; default icon set
+           pulseaudio
+           qtbase-5
+           qtmultimedia
+           zlib))
     (home-page "https://kde.org/applications/multimedia/org.kde.kwave")
     (synopsis "Sound editor for KDE")
     (description "Kwave is a sound editor designed for the KDE Desktop
@@ -689,16 +671,15 @@ Its features include:
         (base32 "1fwryaj8ldmsqhl5qxjda8by9i7xlb97r8p9rqzckw697hkfhs0h"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("libmusicbrainz" ,libmusicbrainz)
-       ("qtbase" ,qtbase-5)))
+     (list kcodecs
+           kconfig
+           ki18n
+           kio
+           kwidgetsaddons
+           libmusicbrainz
+           qtbase-5))
     (arguments
      `(#:tests? #f)) ; Most tests require network
     (home-page "https://invent.kde.org/multimedia/libkcddb")
@@ -720,14 +701,14 @@ Its features include:
         (base32 "0iy4i0hxqsrnndd4iqkww7v1rqry7kvi5paxdw5qjfffwn8kcsbx"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("phonon" ,phonon)
-       ("qtbase" ,qtbase-5)
-       ("solid" ,solid)))
+     (list alsa-lib
+           kcoreaddons
+           ki18n
+           phonon
+           qtbase-5
+           solid))
     (home-page "https://invent.kde.org/multimedia/libkcompactdisc")
     (synopsis "KDE library for playing & ripping CDs")
     (description "The KDE Compact Disc library provides an API for
diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm
index d0e67fa37a..dd18a95062 100644
--- a/gnu/packages/kde-pim.scm
+++ b/gnu/packages/kde-pim.scm
@@ -58,30 +58,28 @@
                  "akonadi-not-relocatable.patch"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)
-       ("shared-mime-info" ,shared-mime-info)))
+     (list extra-cmake-modules qttools shared-mime-info))
     (inputs
-     `(("boost" ,boost)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kitemviews" ,kitemviews)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ;; Do NOT add mysql or postgresql to the inputs. Otherwise the binaries
-       ;; and wrapped files will refer to them, even if the user choices none
-       ;; of these.  Executables are searched on $PATH then.
-       ("qtbase" ,qtbase-5)
-       ("sqlite" ,sqlite)))
+     (list boost
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           ki18n
+           kiconthemes
+           kio
+           kitemmodels
+           kitemviews
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libxml2
+           libxslt
+           ;; Do NOT add mysql or postgresql to the inputs. Otherwise the binaries
+           ;; and wrapped files will refer to them, even if the user choices none
+           ;; of these.  Executables are searched on $PATH then.
+           qtbase-5
+           sqlite))
     (arguments
      `(#:tests? #f ;; TODO 135/167 tests fail
        #:configure-flags '("-DDATABASE_BACKEND=SQLITE") ; lightweight
@@ -90,10 +88,10 @@
        #:phases
        (modify-phases (@ (guix build qt-build-system) %standard-phases)
          (add-before 'configure 'add-definitions
-           (lambda _
-             (let ((out (assoc-ref %outputs "out"))
-                   (mysql (assoc-ref %build-inputs "mysql"))
-                   (pgsql (assoc-ref %build-inputs "postgresql")))
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             (let ((out   (assoc-ref outputs "out"))
+                   (mysql (assoc-ref inputs "mysql"))
+                   (pgsql (assoc-ref inputs "postgresql")))
                (with-output-to-file "CMakeLists.txt.new"
                  (lambda _
                    (display
@@ -131,28 +129,28 @@ programs.")
         (base32 "1mq76qyd3jcngb2yfanpn7qvklzllza399fxwii0mqppp1vmnb2b"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-contacts" ,akonadi-contacts)
-       ("akonadi-mime" ,akonadi-mime)
-       ("boost" ,boost)
-       ("kcalendarcore" ,kcalendarcore)
-       ("kcalutils" ,kcalutils)
-       ("kcodecs" ,kcodecs)
-       ("kcontacts" ,kcontacts)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kidentitymanagement" ,kidentitymanagement)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kmailtransport" ,kmailtransport)
-       ("kmime" ,kmime)
-       ("kpimtextedit" ,kpimtextedit)
-       ("ksmtp" ,ksmtp)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwallet" ,kwallet)
-       ("qtbase" ,qtbase-5)))
+     (list akonadi
+           akonadi-contacts
+           akonadi-mime
+           boost
+           kcalendarcore
+           kcalutils
+           kcodecs
+           kcontacts
+           ki18n
+           kiconthemes
+           kidentitymanagement
+           kio
+           kitemmodels
+           kmailtransport
+           kmime
+           kpimtextedit
+           ksmtp
+           ktextwidgets
+           kwallet
+           qtbase-5))
     (arguments
      `(#:tests? #f))  ;; TODO: 1/1 test fails
     (home-page "https://api.kde.org/kdepim/akonadi/html/index.html")
@@ -174,32 +172,32 @@ collection and item views.")
         (base32 "0igggarnl99s5pl73dgrpha4lf7vnr000iy69vcwmqs5lxb7cyli"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("boost" ,boost)
-       ("kauth" ,kauth)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcontacts" ,kcontacts)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kitemmodels" ,kitemmodels)
-       ("kitemviews" ,kitemviews)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kmime" ,kmime)
-       ("kservice" ,kservice)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("prison" ,prison)
-       ("kio" ,kio)
-       ("qtbase" ,qtbase-5)
-       ("solid" ,solid)
-       ("sonnet" ,sonnet)))
+     (list akonadi
+           boost
+           kauth
+           kcodecs
+           kcompletion
+           kconfigwidgets
+           kcontacts
+           kcoreaddons
+           kdbusaddons
+           ki18n
+           kiconthemes
+           kitemmodels
+           kitemviews
+           kjobwidgets
+           kmime
+           kservice
+           ktextwidgets
+           kwidgetsaddons
+           kxmlgui
+           prison
+           kio
+           qtbase-5
+           solid
+           sonnet))
     (home-page "https://api.kde.org/kdepim/akonadi/html/index.html")
     (synopsis "Akonadi contacts access library")
     (description "Akonadi Contacts is a library that effectively bridges the
@@ -225,23 +223,22 @@ to list and filter contacts.")
         (base32 "1wd776ia3z22a79biq04y4m83n8xpvfmyg8bcsslr7lmc3avdg8w"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("libxslt" ,libxslt) ;; xslt for generating interface descriptions
-       ("shared-mime-info" ,shared-mime-info)))
+     (list extra-cmake-modules libxslt ;; xslt for generating interface descriptions
+           shared-mime-info))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("boost" ,boost)
-       ("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kmime" ,kmime)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase-5)))
+     (list akonadi
+           boost
+           kcodecs
+           kconfig
+           kconfigwidgets
+           kdbusaddons
+           ki18n
+           kio
+           kitemmodels
+           kmime
+           kwidgetsaddons
+           kxmlgui
+           qtbase-5))
     (home-page "https://api.kde.org/kdepim/akonadi/html/index.html")
     (arguments
      `(#:phases
@@ -278,13 +275,9 @@ with emails through Akonadi easier.")
         (base32 "04y293kjrmjjcbb7fkjl7hl4vrks4cjjxnvc6ibzyv81rn6cdhh2"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("kcodecs" ,kcodecs)
-       ("ki18n" ,ki18n)
-       ("kmime" ,kmime)
-       ("qtbase" ,qtbase-5)))
+     (list akonadi kcodecs ki18n kmime qtbase-5))
     (home-page "https://api.kde.org/kdepim/akonadi/html/index.html")
     (synopsis "Akonadi notes access library")
     (description "Akonadi Notes is a library that effectively bridges the
@@ -307,27 +300,26 @@ wrapping notes into KMime::Message objects.")
         (base32 "1h5p44y244gzf7ndzw7afrvq9c76ybp8ddvg82p3lzjh02rrvd50"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-
-       ;; For tests.
-       ("dbus" ,dbus)))
+     (list extra-cmake-modules
+           ;; For tests.
+           dbus))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-mime" ,akonadi-mime)
-       ("boost" ,boost)
-       ("kcalendarcore" ,kcalendarcore)
-       ("kcmutils" ,kcmutils)
-       ("kcontacts" ,kcontacts)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kmime" ,kmime)
-       ("krunner" ,krunner)
-       ("kwindowsystem" ,kwindowsystem)
-       ("qtbase" ,qtbase-5)
-       ("xapian" ,xapian)))
+     (list akonadi
+           akonadi-mime
+           boost
+           kcalendarcore
+           kcmutils
+           kcontacts
+           kcrash
+           kdbusaddons
+           ki18n
+           kio
+           kitemmodels
+           kmime
+           krunner
+           kwindowsystem
+           qtbase-5
+           xapian))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-after 'unpack 'disable-failing-test
@@ -364,35 +356,35 @@ Akonadi PIM data server.  It uses Xapian for indexing and querying.")
     (properties `((upstream-name . "incidenceeditor")))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-calendar" ,akonadi-calendar)
-       ("akonadi-contacts" ,akonadi-contacts)
-       ("akonadi-mime" ,akonadi-mime)
-       ("boost" ,boost)
-       ("kcalendarcore" ,kcalendarcore)
-       ("kcalendarsupport" ,kcalendarsupport)
-       ("kcalutils" ,kcalutils)
-       ("kcodecs" ,kcodecs)
-       ("kcontacts" ,kcontacts)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdepim-apps-libs" ,kdepim-apps-libs)
-       ("kdiagram" ,kdiagram)
-       ("keventviews" ,keventviews)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kidentitymanagement" ,kidentitymanagement)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kldap" ,kldap)
-       ("kmailtransport" ,kmailtransport)
-       ("kmime" ,kmime)
-       ("kpimtextedit" ,kpimtextedit)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwallat" ,kwallet)
-       ("libkdepim" ,libkdepim)
-       ("qtbase" ,qtbase-5)))
+     (list akonadi
+           akonadi-calendar
+           akonadi-contacts
+           akonadi-mime
+           boost
+           kcalendarcore
+           kcalendarsupport
+           kcalutils
+           kcodecs
+           kcontacts
+           kdbusaddons
+           kdepim-apps-libs
+           kdiagram
+           keventviews
+           ki18n
+           kiconthemes
+           kidentitymanagement
+           kio
+           kitemmodels
+           kldap
+           kmailtransport
+           kmime
+           kpimtextedit
+           ktextwidgets
+           kwallet
+           libkdepim
+           qtbase-5))
     (home-page "https://invent.kde.org/pim/incidenceeditor")
     (synopsis "KDE PIM library for editing incidences")
     (description "This library provides an incidence editor for KDE PIM.")
@@ -412,42 +404,42 @@ Akonadi PIM data server.  It uses Xapian for indexing and querying.")
         (base32 "1vpdhdj87ai2sxjn2jk3mh6bzfr1n3yzydnkgv7nc8v1m2fdawap"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-contacts" ,akonadi-contacts)
-       ("akonadi-mime" ,akonadi-mime)
-       ("akonadi-search" ,akonadi-search)
-       ("boost" ,boost)
-       ("gpgme" ,gpgme)
-       ("grantlee" ,grantlee)
-       ("grantleetheme" ,grantleetheme)
-       ("kcalendarcore" ,kcalendarcore)
-       ("kcmutils" ,kcmutils)
-       ("kcompletion" ,kcompletion)
-       ("kcontacts" ,kcontacts)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdepim-apps-libs" ,kdepim-apps-libs)
-       ("kdoctools" ,kdoctools)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kimap" ,kimap)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kmime" ,kmime)
-       ("kontactinterface" ,kontactinterface)
-       ("kparts" ,kparts)
-       ("kpimcommon" ,kpimcommon)
-       ("kpimtextedit" ,kpimtextedit)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdepim" ,libkdepim)
-       ("libkleo" ,libkleo)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests
-       ("prison" ,prison)
-       ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase-5)))
+     (list akonadi
+           akonadi-contacts
+           akonadi-mime
+           akonadi-search
+           boost
+           gpgme
+           grantlee
+           grantleetheme
+           kcalendarcore
+           kcmutils
+           kcompletion
+           kcontacts
+           kcrash
+           kdbusaddons
+           kdepim-apps-libs
+           kdoctools
+           ki18n
+           kiconthemes
+           kimap
+           kio
+           kitemmodels
+           kmime
+           kontactinterface
+           kparts
+           kpimcommon
+           kpimtextedit
+           ktextwidgets
+           kxmlgui
+           libkdepim
+           libkleo
+           oxygen-icons ; default icon set, required for tests
+           prison
+           qgpgme
+           qtbase-5))
     (home-page "https://kontact.kde.org/components/kaddressbook.html")
     (synopsis "Address Book application to manage your contacts")
     (description "KAddressBook stores all the personal details of your family,
@@ -469,26 +461,26 @@ CalDAV server.")
         (base32 "0g0bm4zzzcpl2pqqf609349zagwrgj6a4ibxpgg4zf21aacdq8bi"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("boost" ,boost)
-       ("kcalendarcore" ,kcalendarcore)
-       ("kcalutils" ,kcalutils)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kholidays" ,kholidays)
-       ("ki18n" ,ki18n)
-       ("kidentitymanagement" ,kidentitymanagement)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kpimtextedit" ,kpimtextedit)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase-5)))
+     (list akonadi
+           boost
+           kcalendarcore
+           kcalutils
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kdbusaddons
+           kholidays
+           ki18n
+           kidentitymanagement
+           kio
+           kitemmodels
+           kpimtextedit
+           ktextwidgets
+           kxmlgui
+           qtbase-5))
     (arguments
      `(#:tests? #f)) ;; TODO: TZ setup
     (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
@@ -510,15 +502,15 @@ calendar data.")
         (base32 "0pi3axs58wsz5vq6vyisz73s24q739zplwrblyvkcm16nll4mvhk"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kcalendarcore" ,kcalendarcore)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kxmlrpcclient" ,kxmlrpcclient)
-       ("qtbase" ,qtbase-5)
-       ("syndication" ,syndication)))
+     (list kcalendarcore
+           kcoreaddons
+           ki18n
+           kio
+           kxmlrpcclient
+           qtbase-5
+           syndication))
     ;; Note: Some tests take up to 90 sec.
     (home-page "https://invent.kde.org/pim/kblog")
     (synopsis "Client-side support library for web application remote blogging
@@ -545,31 +537,30 @@ one of the APIs mentioned above.")
     (properties `((upstream-name . "calendarsupport")))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules qttools))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-calendar" ,akonadi-calendar)
-       ("akonadi-mime" ,akonadi-mime)
-       ("boost" ,boost)
-       ("kcalendarcore" ,kcalendarcore)
-       ("kcalutils" ,kcalutils)
-       ("kcompletion" ,kcompletion)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdepim-apps-libs" ,kdepim-apps-libs)
-       ("kguiaddons" ,kguiaddons)
-       ("kholidays" ,kholidays)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kidentitymanagement" ,kidentitymanagement)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kmime" ,kmime)
-       ("kpimcommon" ,kpimcommon)
-       ("kpimtextedit" ,kpimtextedit)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase-5)))
+     (list akonadi
+           akonadi-calendar
+           akonadi-mime
+           boost
+           kcalendarcore
+           kcalutils
+           kcompletion
+           kdbusaddons
+           kdepim-apps-libs
+           kguiaddons
+           kholidays
+           ki18n
+           kiconthemes
+           kidentitymanagement
+           kio
+           kitemmodels
+           kmime
+           kpimcommon
+           kpimtextedit
+           ktextwidgets
+           kxmlgui
+           qtbase-5))
     (home-page "https://api.kde.org/stable/calendarsupport/")
     (synopsis "Calendar Support library for KDE PIM")
     (description "The Calendar Support library provides helper utilities for
@@ -590,23 +581,22 @@ calendaring applications.")
         (base32 "0v268w8vhgqxq1nwv9b9cy4h7zqgjrv19r44g3zc9w5j76ivix86"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("libxml2" ,libxml2))) ;; xmllint required for tests
+     (list extra-cmake-modules libxml2)) ;; xmllint required for tests
     (inputs
-     `(("grantlee" ,grantlee)
-       ("kcalendarcore" ,kcalendarcore)
-       ("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kidentitymanagement" ,kidentitymanagement)
-       ("kpimtextedit" ,kpimtextedit)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests
-       ("qtbase" ,qtbase-5)))
+     (list grantlee
+           kcalendarcore
+           kcodecs
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           ki18n
+           kiconthemes
+           kidentitymanagement
+           kpimtextedit
+           ktextwidgets
+           kwidgetsaddons
+           oxygen-icons ; default icon set, required for tests
+           qtbase-5))
     (arguments
      `(#:tests? #f)) ;; TODO: seem to pull in some wrong theme
     (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
@@ -629,13 +619,9 @@ functions for accessing calendar data using the kcalcore API.")
         (base32 "0445gl4xm0h39igkxgb6vmq5iaa04wkgrgbs7nfd0zwngk8xaidn"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("qtbase" ,qtbase-5)
-       ("qtxmlpatterns" ,qtxmlpatterns)))
+     (list kcoreaddons ki18n kio qtbase-5 qtxmlpatterns))
     (home-page "https://invent.kde.org/frameworks/kdav")
     (synopsis "DAV protocol implementation with KJobs")
     (description "This is a DAV protocol implementation with KJobs.  Calendars
@@ -657,30 +643,30 @@ supported using GroupDAV or CardDAV.")
         (base32 "0m9qrfjs97anh9h6ibggx23ddlm1zkxjap2iyf3gf672ip01fvci"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-contacts" ,akonadi-contacts)
-       ("boost" ,boost)
-       ("gpgme" ,gpgme)
-       ("grantlee" ,grantlee)
-       ("grantleetheme" ,grantleetheme)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcontacts" ,kcontacts)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kimap" ,kimap)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kmime" ,kmime)
-       ("kpimcommon" ,kpimcommon)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("libkleo" ,libkleo)
-       ("prison" ,prison)
-       ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase-5)))
+     (list akonadi
+           akonadi-contacts
+           boost
+           gpgme
+           grantlee
+           grantleetheme
+           kconfig
+           kconfigwidgets
+           kcontacts
+           kcoreaddons
+           ki18n
+           kimap
+           kio
+           kitemmodels
+           kmime
+           kpimcommon
+           kservice
+           kwidgetsaddons
+           libkleo
+           prison
+           qgpgme
+           qtbase-5))
     (home-page "https://invent.kde.org/pim/kdepim-apps-libs")
     (synopsis "KDE PIM mail related libraries and data files")
     (description "This package provides mail related libraries and data files
@@ -701,53 +687,49 @@ for KDE PIM.")
         (base32 "1in4x4wvgclkni72cfkw9jx35d0qd0jmfwybm3ksx5qx5sbki9gg"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("dbus" ,dbus)
-       ("kdoctools" ,kdoctools)
-       ("libxslt" ,libxslt)
-       ("shared-mime-info" ,shared-mime-info)))
+     (list extra-cmake-modules dbus kdoctools libxslt shared-mime-info))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-calendar" ,akonadi-calendar)
-       ("akonadi-contacts" ,akonadi-contacts)
-       ("akonadi-mime" ,akonadi-mime)
-       ("akonadi-notes" ,akonadi-notes)
-       ("boost" ,boost)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("kalarmcal" ,kalarmcal)
-       ("kcalendarcore" ,kcalendarcore)
-       ("kcalutils" ,kcalutils)
-       ("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcontacts" ,kcontacts)
-       ("kdav" ,kdav)
-       ("kholidays" ,kholidays)
-       ("kidentitymanagement" ,kidentitymanagement)
-       ("kimap" ,kimap)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kmailtransport" ,kmailtransport)
-       ("kmbox" ,kmbox)
-       ("kmime" ,kmime)
-       ("knotifications" ,knotifications)
-       ("knotifyconfig" ,knotifyconfig)
-       ("kpimcommon" ,kpimcommon)
-       ("kpimtextedit" ,kpimtextedit)
-       ("kross" ,kross)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwallet" ,kwallet)
-       ("kwindowsystem" ,kwindowsystem)
-       ("libkgapi" ,libkgapi)
-       ;; TODO: libkolab
-       ("qca" ,qca)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtnetworkauth" ,qtnetworkauth)
-       ("qtspeech" ,qtspeech)
-       ("qtwebchannel" ,qtwebchannel)
-       ("qtwebengine" ,qtwebengine)
-       ("qtxmlpatterns" ,qtxmlpatterns)))
+     (list akonadi
+           akonadi-calendar
+           akonadi-contacts
+           akonadi-mime
+           akonadi-notes
+           boost
+           cyrus-sasl
+           kalarmcal
+           kcalendarcore
+           kcalutils
+           kcodecs
+           kconfig
+           kconfigwidgets
+           kcontacts
+           kdav
+           kholidays
+           kidentitymanagement
+           kimap
+           kio
+           kitemmodels
+           kmailtransport
+           kmbox
+           kmime
+           knotifications
+           knotifyconfig
+           kpimcommon
+           kpimtextedit
+           kross
+           ktextwidgets
+           kwallet
+           kwindowsystem
+           libkgapi
+           ;; TODO: libkolab
+           qca
+           qtbase-5
+           qtdeclarative
+           qtnetworkauth
+           qtspeech
+           qtwebchannel
+           qtwebengine
+           qtxmlpatterns))
     (arguments
       ;; TODO: 5/45 tests fail for quite different reasons, even with
       ;; "offscreen" and dbus
@@ -787,36 +769,35 @@ package.")
     (properties `((upstream-name . "eventviews")))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules qttools))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-calendar" ,akonadi-calendar)
-       ("akonadi-contacts" ,akonadi-contacts)
-       ("boost" ,boost)
-       ("kcalendarcore" ,kcalendarcore)
-       ("kcalendarsupport" ,kcalendarsupport)
-       ("kcalutils" ,kcalutils)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcontacts" ,kcontacts)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdiagram" ,kdiagram)
-       ("kguiaddons" ,kguiaddons)
-       ("kholidays" ,kholidays)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kidentitymanagement" ,kidentitymanagement)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kmime" ,kmime)
-       ("kpimtextedit" ,kpimtextedit)
-       ("kservice" ,kservice)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdepim" ,libkdepim)
-       ("qtbase" ,qtbase-5)))
+     (list akonadi
+           akonadi-calendar
+           akonadi-contacts
+           boost
+           kcalendarcore
+           kcalendarsupport
+           kcalutils
+           kcodecs
+           kcompletion
+           kconfigwidgets
+           kcontacts
+           kdbusaddons
+           kdiagram
+           kguiaddons
+           kholidays
+           ki18n
+           kiconthemes
+           kidentitymanagement
+           kio
+           kitemmodels
+           kmime
+           kpimtextedit
+           kservice
+           ktextwidgets
+           kxmlgui
+           libkdepim
+           qtbase-5))
     (home-page "https://invent.kde.org/pim/eventviews")
     (synopsis "KDE PIM library for creating events")
     (description "This library provides an event creator for KDE PIM.")
@@ -836,33 +817,32 @@ package.")
         (base32 "03d3gsbara7ga2cyrhafkw11qq9cj804h9vpvxl4wd2a9c90snkh"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("gnupg" ,gnupg)  ;; TODO: Remove after gpgme uses fixed path
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules gnupg ;; TODO: Remove after gpgme uses fixed path
+           kdoctools))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-contacts" ,akonadi-contacts)
-       ("boost" ,boost)
-       ("gpgme" ,gpgme)
-       ("karchive" ,karchive)
-       ("kcodecs" ,kcodecs)
-       ("kcontacts" ,kcontacts)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kjobwidgets" ,kjobwidgets)
-       ("knotifications" ,knotifications)
-       ("kservice" ,kservice)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase-5)))
+     (list akonadi
+           akonadi-contacts
+           boost
+           gpgme
+           karchive
+           kcodecs
+           kcontacts
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kiconthemes
+           kio
+           kitemmodels
+           kjobwidgets
+           knotifications
+           kservice
+           ktextwidgets
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           oxygen-icons ;; default icon set
+           qtbase-5))
     (home-page "https://kde.org/applications/utilities/org.kde.kgpg")
     (synopsis "Graphical front end for GNU Privacy Guard")
     (description "Kgpg manages cryptographic keys for the GNU Privacy Guard,
@@ -884,19 +864,19 @@ cryptography to the contents of the clipboard.")
         (base32 "0flp9p9hlr1zfgvsy5i1nq55p7bvnhqxkxbif1lyw0cq6iblxhgr"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kemoticons" ,kemoticons)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kpimtextedit" ,kpimtextedit)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase-5)))
+     (list kcodecs
+           kcompletion
+           kconfig
+           kcoreaddons
+           kemoticons
+           kiconthemes
+           kio
+           kpimtextedit
+           ktextwidgets
+           kxmlgui
+           qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -923,14 +903,14 @@ cryptography to the contents of the clipboard.")
         (base32 "1x22wfzqp92mn1fy2xl89k9yjfk2vgcva0fd30i9rrqj4aw2rsma"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kmime" ,kmime)
-       ("qtbase" ,qtbase-5)))
+     (list cyrus-sasl
+           kcoreaddons
+           ki18n
+           kio
+           kmime
+           qtbase-5))
     (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
     (synopsis "Library for handling IMAP")
     (description "This library provides a job-based API for interacting with
@@ -954,16 +934,11 @@ easier to do so.")
         (base32 "0whlp586ycsx0qf0nr81avwscpq62w5js46z7vayy0dxkhrhfayr"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase-5)))
+     (list ki18n kio kwidgetsaddons qtbase-5))
     (propagated-inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("openldap" ,openldap)))
+     (list cyrus-sasl openldap))
     (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
     (synopsis "Library for accessing LDAP")
     (description " This is a library for accessing LDAP with a convenient Qt
@@ -984,34 +959,32 @@ protocol for querying and modifying directory services running over TCP/IP. ")
         (base32 "1m50nzb2m27fkb8z3k34cv4zi2akr0fx8zn7lk5swhg49sgrip6n"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("dbus" ,dbus)
-       ("extra-cmake-modules" ,extra-cmake-modules)
-       ("gnupg" ,gnupg)  ;; TODO: Remove after gpgme uses fixed path
-       ("kdoctools" ,kdoctools)))
+     (list dbus extra-cmake-modules gnupg ;; TODO: Remove after gpgme uses fixed path
+           kdoctools))
     (inputs
-     `(("boost" ,boost)
-       ("gpgme" ,gpgme)
-       ("kcmutils" ,kcmutils)
-       ("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kitemmodels" ,kitemmodels)
-       ("kmime" ,kmime)
-       ("knotifications" ,knotifications)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libassuan" ,libassuan)
-       ("libkleo" ,libkleo)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase-5)))
+     (list boost
+           gpgme
+           kcmutils
+           kcodecs
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kiconthemes
+           kitemmodels
+           kmime
+           knotifications
+           ktextwidgets
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libassuan
+           libkleo
+           oxygen-icons ;; default icon set
+           qgpgme
+           qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1042,67 +1015,65 @@ and retrieving certificates from LDAP servers.")
        (patches (search-patches "kmail-Fix-missing-link-libraries.patch"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("dbus" ,dbus)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules dbus kdoctools))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-contacts" ,akonadi-contacts)
-       ("akonadi-mime" ,akonadi-mime)
-       ("akonadi-search" ,akonadi-search)
-       ("boost" ,boost)
-       ("gpgme" ,gpgme)
-       ("kbookmarks" ,kbookmarks)
-       ("kcalendarcore" ,kcalendarcore)
-       ("kcalutils" ,kcalutils)
-       ("kcmutils" ,kcmutils)
-       ("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcontacts" ,kcontacts)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdepim-apps-libs" ,kdepim-apps-libs)
-       ("kguiaddons" ,kguiaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kidentitymanagement" ,kidentitymanagement)
-       ("kimap" ,kimap)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kitemviews" ,kitemviews)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kldap" ,kldap)
-       ("kmailcommon" ,kmailcommon)
-       ("kmailtransport" ,kmailtransport)
-       ("kmessagelib" ,kmessagelib)
-       ("kmime" ,kmime)
-       ("kmime" ,kmime)
-       ("knotifications" ,knotifications)
-       ("knotifyconfig" ,knotifyconfig)
-       ("kontactinterface" ,kontactinterface)
-       ("kparts" ,kparts)
-       ("kpimcommon" ,kpimcommon)
-       ("kpimtextedit" ,kpimtextedit)
-       ("kservice" ,kservice)
-       ("ksyntaxhighlighting" ,ksyntaxhighlighting)
-       ("ktextwidgets" ,ktextwidgets)
-       ("ktnef" ,ktnef)
-       ("kwallet" ,kwallet)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libgravatar" ,libgravatar)
-       ("libkdepim" ,libkdepim)
-       ("libkleo" ,libkleo)
-       ("libksieve" ,libksieve)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests
-       ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtwebchannel" ,qtwebchannel)
-       ("qtwebengine" ,qtwebengine)
-       ("sonnet" ,sonnet)))
+     (list akonadi
+           akonadi-contacts
+           akonadi-mime
+           akonadi-search
+           boost
+           gpgme
+           kbookmarks
+           kcalendarcore
+           kcalutils
+           kcmutils
+           kcodecs
+           kconfig
+           kconfigwidgets
+           kcontacts
+           kcrash
+           kdbusaddons
+           kdepim-apps-libs
+           kguiaddons
+           ki18n
+           kiconthemes
+           kidentitymanagement
+           kimap
+           kio
+           kitemmodels
+           kitemviews
+           kjobwidgets
+           kldap
+           kmailcommon
+           kmailtransport
+           kmessagelib
+           kmime
+           kmime
+           knotifications
+           knotifyconfig
+           kontactinterface
+           kparts
+           kpimcommon
+           kpimtextedit
+           kservice
+           ksyntaxhighlighting
+           ktextwidgets
+           ktnef
+           kwallet
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libgravatar
+           libkdepim
+           libkleo
+           libksieve
+           oxygen-icons ; default icon set, required for tests
+           qgpgme
+           qtbase-5
+           qtdeclarative
+           qtwebchannel
+           qtwebengine
+           sonnet))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1137,50 +1108,47 @@ manager from KDE.")
     (properties `((upstream-name . "mailcommon")))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("dbus" ,dbus)
-       ("gnupg" ,gnupg)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules dbus gnupg qttools))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-contacts" ,akonadi-contacts)
-       ("akonadi-mime" ,akonadi-mime)
-       ("boost" ,boost)
-       ("gpgme" ,gpgme)
-       ("karchive" ,karchive)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcontacts" ,kcontacts)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdesignerplugin" ,kdesignerplugin)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kidentitymanagement" ,kidentitymanagement)
-       ("kimap" ,kimap)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kitemviews" ,kitemviews)
-       ("kldap" ,kldap)
-       ("kmailimporter" ,kmailimporter)
-       ("kmailtransport" ,kmailtransport)
-       ("kmessagelib" ,kmessagelib)
-       ("kmime" ,kmime)
-       ("kpimcommon" ,kpimcommon)
-       ("kpimtextedit" ,kpimtextedit)
-       ("ksyntaxhighlighting" ,ksyntaxhighlighting)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwallet" ,kwallet)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdepim" ,libkdepim)
-       ("libkleo" ,libkleo)
-       ("libxslt" ,libxslt)
-       ("phonon" ,phonon)
-       ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase-5)))
+     (list akonadi
+           akonadi-contacts
+           akonadi-mime
+           boost
+           gpgme
+           karchive
+           kcodecs
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcontacts
+           kdbusaddons
+           kdesignerplugin
+           ki18n
+           kiconthemes
+           kidentitymanagement
+           kimap
+           kio
+           kitemmodels
+           kitemviews
+           kldap
+           kmailimporter
+           kmailtransport
+           kmessagelib
+           kmime
+           kpimcommon
+           kpimtextedit
+           ksyntaxhighlighting
+           ktextwidgets
+           kwallet
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libkdepim
+           libkleo
+           libxslt
+           phonon
+           qgpgme
+           qtbase-5))
     (arguments
      `(#:tests? #f))  ;; TODO: 4/56 tests fail, even with "offscreen" and dbus
     (home-page "https://invent.kde.org/pim/mailcommon")
@@ -1204,24 +1172,24 @@ dealing with email.")
     (properties `((upstream-name . "mailimporter")))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-mime" ,akonadi-mime)
-       ("boost" ,boost)
-       ("karchive" ,karchive)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kmime" ,kmime)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdepim" ,libkdepim)
-       ("qtbase" ,qtbase-5)))
+     (list akonadi
+           akonadi-mime
+           boost
+           karchive
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kdbusaddons
+           ki18n
+           kio
+           kitemmodels
+           kmime
+           kxmlgui
+           libkdepim
+           qtbase-5))
     (home-page "https://invent.kde.org/pim/mailimporter")
     (synopsis "KDE mail importer library")
     (description "This package provides libraries for importing mails other
@@ -1242,27 +1210,26 @@ e-mail client programs into KMail and KDE PIM.")
         (base32 "1swqlgzxzlqffm119sbhszy9lr93m8lzwygr0q4raa660b6yiavm"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-mime" ,akonadi-mime)
-       ("boost" ,boost)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("kcalendarcore" ,kcalendarcore)
-       ("kcmutils" ,kcmutils)
-       ("kcontacts" ,kcontacts)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("ki18n" ,ki18n)
-       ("kitemmodels" ,kitemmodels)
-       ("kio" ,kio)
-       ("kmime" ,kmime)
-       ("ksmtp" ,ksmtp)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwallet" ,kwallet)
-       ("libkgapi" ,libkgapi)
-       ("qtbase" ,qtbase-5)))
+     (list akonadi
+           akonadi-mime
+           boost
+           cyrus-sasl
+           kcalendarcore
+           kcmutils
+           kcontacts
+           kdbusaddons
+           kconfigwidgets
+           ki18n
+           kitemmodels
+           kio
+           kmime
+           ksmtp
+           ktextwidgets
+           kwallet
+           libkgapi
+           qtbase-5))
     (arguments
      `(#:tests? #f)) ;; TODO - 3/3 tests fail, require drkonqi
     (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
@@ -1284,11 +1251,9 @@ mail transport.")
         (base32 "03cny38v4y1lmcrs6d34hbj9assqgf51rqryf5rdzkiaq79c1krc"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kcodecs" ,kcodecs)
-       ("kmime" ,kmime)
-       ("qtbase" ,qtbase-5)))
+     (list kcodecs kmime qtbase-5))
     (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
     (synopsis "Library for handling mbox mailboxes")
     (description "This is a library for handling mailboxes in mbox format,
@@ -1309,61 +1274,59 @@ using a Qt/KMime C++ API.")
     (properties `((upstream-name . "messagelib")))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("gnupg" ,gnupg)
-       ("libxml2" ,libxml2)))
+     (list extra-cmake-modules gnupg libxml2))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-contacts" ,akonadi-contacts)
-       ("akonadi-mime" ,akonadi-mime)
-       ("akonadi-notes" ,akonadi-notes)
-       ("akonadi-search" ,akonadi-search)
-       ("boost" ,boost)
-       ("gpgme" ,gpgme)
-       ("grantlee" ,grantlee)
-       ("grantleetheme" ,grantleetheme)
-       ("karchive" ,karchive)
-       ("kcalendarcore" ,kcalendarcore)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcontacts" ,kcontacts)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdepim-apps-libs" ,kdepim-apps-libs)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kidentitymanagement" ,kidentitymanagement)
-       ("kimap" ,kimap)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kitemviews" ,kitemviews)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kldap" ,kldap)
-       ("kmailtransport" ,kmailtransport)
-       ("kmbox" ,kmbox)
-       ("kmime" ,kmime)
-       ("knewstuff" ,knewstuff)
-       ("kpimcommon" ,kpimcommon)
-       ("kpimtextedit" ,kpimtextedit)
-       ("kservice" ,kservice)
-       ("ksyntaxhighlighting" ,ksyntaxhighlighting)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwallet" ,kwallet)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libgravatar" ,libgravatar)
-       ("libkdepim" ,libkdepim)
-       ("libkleo" ,libkleo)
-       ("qca" ,qca)
-       ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtwebchannel" ,qtwebchannel)
-       ("qtwebengine" ,qtwebengine)
-       ("qtwebkit" ,qtwebkit)
-       ("sonnet" ,sonnet)))
+     (list akonadi
+           akonadi-contacts
+           akonadi-mime
+           akonadi-notes
+           akonadi-search
+           boost
+           gpgme
+           grantlee
+           grantleetheme
+           karchive
+           kcalendarcore
+           kcodecs
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcontacts
+           kdbusaddons
+           kdepim-apps-libs
+           ki18n
+           kiconthemes
+           kidentitymanagement
+           kimap
+           kio
+           kitemmodels
+           kitemviews
+           kjobwidgets
+           kldap
+           kmailtransport
+           kmbox
+           kmime
+           knewstuff
+           kpimcommon
+           kpimtextedit
+           kservice
+           ksyntaxhighlighting
+           ktextwidgets
+           kwallet
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libgravatar
+           libkdepim
+           libkleo
+           qca
+           qgpgme
+           qtbase-5
+           qtdeclarative
+           qtwebchannel
+           qtwebengine
+           qtwebkit
+           sonnet))
     (arguments
      `(#:tests? #f     ;TODO many test fail for quite different reasons
        #:phases (modify-phases %standard-phases
@@ -1396,11 +1359,9 @@ kwebengineviewer.")
         (base32 "1dkdxfr1ry10qyql5sp1ai4li11f0ncf9hipg27j59y70mlyrl2r"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kcodecs" ,kcodecs)
-       ("ki18n" ,ki18n)
-       ("qtbase" ,qtbase-5)))
+     (list kcodecs ki18n qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1434,51 +1395,50 @@ information in non-ASCII character sets.")
         (base32 "13h4n7fb5p6g1f5kmw6pblpd76j904psm30s3a5d3kykni57dijx"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("libxslt" ,libxslt)))
+     (list extra-cmake-modules libxslt))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-contacts" ,akonadi-contacts)
-       ("akonadi-mime" ,akonadi-mime)
-       ("akonadi-notes" ,akonadi-notes)
-       ("akonadi-search" ,akonadi-search)
-       ("boost" ,boost)
-       ("grantlee" ,grantlee)
-       ("grantleetheme" ,grantleetheme)
-       ("kcalendarcore" ,kcalendarcore)
-       ("kcalutils" ,kcalutils)
-       ("kcmutils" ,kcmutils)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcontacts" ,kcontacts)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdnssd" ,kdnssd)
-       ("kdoctools" ,kdoctools)
-       ("kglobalaccel" ,kglobalaccel)
-       ("kiconthemes" ,kiconthemes)
-       ("kimap" ,kimap)
-       ("kitemmodels" ,kitemmodels)
-       ("kitemviews" ,kitemviews)
-       ("kmime" ,kmime)
-       ("kmime" ,kmime)
-       ("knewstuff" ,knewstuff)
-       ("knotifications" ,knotifications)
-       ("knotifyconfig" ,knotifyconfig)
-       ("kontactinterface" ,kontactinterface)
-       ("kparts" ,kparts)
-       ("kpimcommon" ,kpimcommon)
-       ("kpimtextedit" ,kpimtextedit)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdepim" ,libkdepim)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+     (list akonadi
+           akonadi-contacts
+           akonadi-mime
+           akonadi-notes
+           akonadi-search
+           boost
+           grantlee
+           grantleetheme
+           kcalendarcore
+           kcalutils
+           kcmutils
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcontacts
+           kcoreaddons
+           kcrash
+           kdnssd
+           kdoctools
+           kglobalaccel
+           kiconthemes
+           kimap
+           kitemmodels
+           kitemviews
+           kmime
+           kmime
+           knewstuff
+           knotifications
+           knotifyconfig
+           kontactinterface
+           kparts
+           kpimcommon
+           kpimtextedit
+           ktextwidgets
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           kxmlgui
+           libkdepim
+           oxygen-icons ; default icon set, required for tests
+           qtbase-5
+           qtx11extras))
     (home-page "https://kontact.kde.org/components/knotes.html")
     (synopsis "Note-taking utility")
     (description "KNotes lets you write the computer equivalent of sticky
@@ -1507,15 +1467,15 @@ Features:
         (base32 "0s1qm1wjkvbb1film94r7g88d8vgh26bm0hm6gpyqv5bazw5qx3j"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kparts" ,kparts)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase-5)))
+     (list kcoreaddons
+           ki18n
+           kiconthemes
+           kparts
+           kwindowsystem
+           kxmlgui
+           qtbase-5))
     (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
     (synopsis "Kontact interface library")
     (description " This library provides the glue necessary for
@@ -1535,58 +1495,55 @@ application \"Parts\" to be embedded as a Kontact component (or plugin).")
         (base32 "04lz3ldrr0lpy9zpsg9ja1i9gxzlcjpqcwn3g7l4jjdky4frcr2r"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("dbus" ,dbus)
-       ("qttools" ,qttools)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules dbus qttools kdoctools))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-calendar" ,akonadi-calendar)
-       ("akonadi-contacts" ,akonadi-contacts)
-       ("akonadi-mime" ,akonadi-mime)
-       ("akonadi-notes" ,akonadi-notes)
-       ("akonadi-search" ,akonadi-search)
-       ("boost" ,boost)
-       ("kcalendarcore" ,kcalendarcore)
-       ("kcalendarsupport" ,kcalendarsupport)
-       ("kcalutils" ,kcalutils)
-       ("kcmutils" ,kcmutils)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcontacts" ,kcontacts)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdepim-apps-libs" ,kdepim-apps-libs)
-       ("keventviews" ,keventviews)
-       ("kholidays" ,kholidays)
-       ("kiconthemes" ,kiconthemes)
-       ("kidentitymanagement" ,kidentitymanagement)
-       ("kimap" ,kimap)
-       ("kincidenceeditor" ,kincidenceeditor)
-       ("kitemmodels" ,kitemmodels)
-       ("kitemviews" ,kitemviews)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kldap" ,kldap)
-       ("kmailtransport" ,kmailtransport)
-       ("kmime" ,kmime)
-       ("knewstuff" ,knewstuff)
-       ("knotifications" ,knotifications)
-       ("kontactinterface" ,kontactinterface)
-       ("kparts" ,kparts)
-       ("kpimcommon" ,kpimcommon)
-       ("kpimtextedit" ,kpimtextedit)
-       ("kservice" ,kservice)
-       ("kwallet" ,kwallet)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdepim" ,libkdepim)
-       ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests
-       ("phonon" ,phonon)
-       ("qtbase" ,qtbase-5)))
+     (list akonadi
+           akonadi-calendar
+           akonadi-contacts
+           akonadi-mime
+           akonadi-notes
+           akonadi-search
+           boost
+           kcalendarcore
+           kcalendarsupport
+           kcalutils
+           kcmutils
+           kcodecs
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcontacts
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           kdepim-apps-libs
+           keventviews
+           kholidays
+           kiconthemes
+           kidentitymanagement
+           kimap
+           kincidenceeditor
+           kitemmodels
+           kitemviews
+           kjobwidgets
+           kldap
+           kmailtransport
+           kmime
+           knewstuff
+           knotifications
+           kontactinterface
+           kparts
+           kpimcommon
+           kpimtextedit
+           kservice
+           kwallet
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libkdepim
+           oxygen-icons ; default icon set, required for tests
+           phonon
+           qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1638,11 +1595,9 @@ and exchanging calendar data, vCalendar and iCalendar.")
                       (setenv "HOME" "/tmp")
                       #t)))))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kcontacts" ,kcontacts)
-       ("kpeople" ,kpeople)
-       ("qtbase" ,qtbase-5)))
+     (list kcontacts kpeople qtbase-5))
     (home-page "https://invent.kde.org/pim/kpeoplevcard")
     (synopsis "Expose vCard contacts to KPeople")
     (description
@@ -1664,44 +1619,43 @@ Virtual Contact File}) files to the KPeople contact management library.")
     (properties `((upstream-name . "pimcommon")))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules qttools))
     (inputs
-     `(("karchive" ,karchive)
-       ("akonadi" ,akonadi)
-       ("akonadi-contacts" ,akonadi-contacts)
-       ("akonadi-mime" ,akonadi-mime)
-       ("boost" ,boost)
-       ("grantlee" ,grantlee)
-       ;; TODO: ("kaccounts" ,kaccounts)
-       ("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcontacts" ,kcontacts)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kdesignerplugin" ,kdesignerplugin)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kimap" ,kimap)
-       ("kio" ,kio)
-       ("kirigami" ,kirigami) ;; run-time dependency
-       ("kitemmodels" ,kitemmodels)
-       ("kitemviews" ,kitemviews)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kmime" ,kmime)
-       ("knewstuff" ,knewstuff)
-       ("kpimtextedit" ,kpimtextedit)
-       ("kservice" ,kservice)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwallet" ,kwallet)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libkdepim" ,libkdepim)
-       ("libxslt" ,libxslt)
-       ("purpose" ,purpose)
-       ("qtbase" ,qtbase-5)
-       ("qtwebengine" ,qtwebengine)))
+     (list karchive
+           akonadi
+           akonadi-contacts
+           akonadi-mime
+           boost
+           grantlee
+           ;; TODO: ("kaccounts" ,kaccounts)
+           kcodecs
+           kconfig
+           kconfigwidgets
+           kcontacts
+           kcoreaddons
+           kdesignerplugin
+           ki18n
+           kiconthemes
+           kimap
+           kio
+           kirigami ;; run-time dependency
+           kitemmodels
+           kitemviews
+           kjobwidgets
+           kmime
+           knewstuff
+           kpimtextedit
+           kservice
+           ktextwidgets
+           kwallet
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libkdepim
+           libxslt
+           purpose
+           qtbase-5
+           qtwebengine))
     (arguments
      `(#:tests? #f)) ;; TODO tests hang
     (home-page "https://invent.kde.org/pim/pimcommon")
@@ -1723,25 +1677,24 @@ Virtual Contact File}) files to the KPeople contact management library.")
         (base32 "0j6d4sv405c3x0ww75qsww94apidsb8aaqf59akhv96zmv0vx5wy"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules qttools))
     (inputs
-     `(("grantlee" ,grantlee)
-       ("kcodecs" ,kcodecs)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kdesignerplugin" ,kdesignerplugin)
-       ("kemoticons" ,kemoticons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("ksyntaxhighlighting" ,ksyntaxhighlighting)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase-5)
-       ("qtspeech" ,qtspeech)
-       ("sonnet" ,sonnet)))
+     (list grantlee
+           kcodecs
+           kconfigwidgets
+           kcoreaddons
+           kdesignerplugin
+           kemoticons
+           ki18n
+           kiconthemes
+           kio
+           ksyntaxhighlighting
+           ktextwidgets
+           kwidgetsaddons
+           kxmlgui
+           qtbase-5
+           qtspeech
+           sonnet))
     (arguments
      `(#:tests? #f)) ;; TODO - test suite hangs
     (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
@@ -1765,15 +1718,15 @@ text in the text edit to all kinds of markup, like HTML or BBCODE.")
         (base32 "1xyaahibm0dc3qdwiak5yqa66szxaxnylvqxi6k21ayvzn2vxbhx"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("qtbase" ,qtbase-5)))
+     (list cyrus-sasl
+           kcodecs
+           kconfig
+           kcoreaddons
+           ki18n
+           kio
+           qtbase-5))
     (arguments
      `(#:tests? #f ;; TODO: does not find sasl mechs
        #:phases
@@ -1805,16 +1758,16 @@ standard protocols for e-mail transmission.")
         (base32 "0cn5p32w2kas56yyc15c22kll4hd02lvvxz2n6cz1wda8alspj19"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kcalendarcore" ,kcalendarcore)
-       ("kcalutils" ,kcalutils)
-       ("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("kcontacts" ,kcontacts)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("qtbase" ,qtbase-5)))
+     (list kcalendarcore
+           kcalutils
+           kcodecs
+           kconfig
+           kcontacts
+           kcoreaddons
+           ki18n
+           qtbase-5))
     (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/ktnef/html/")
     (synopsis "Library for handling mail attachments using TNEF format")
     (description "Ktnef is a library for handling data in the TNEF
@@ -1837,35 +1790,34 @@ and allows one to view/extract message formatted text in Rich Text Format.")
         (base32 "0bask561laxgkgm3rxfpyxqs6jx1l9xjk058lhycq0pik6vwhdha"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules qttools))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-contacts" ,akonadi-contacts)
-       ("akonadi-mime" ,akonadi-mime)
-       ("akonadi-search" ,akonadi-search)
-       ("boost" ,boost)
-       ("kcmutils" ,kcmutils)
-       ("kcodecs" ,kcodecs)
-       ("kcalendarcore" ,kcalendarcore)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcontacts" ,kcontacts)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdesignerplugin" ,kdesignerplugin)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kitemviews" ,kitemviews)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kldap" ,kldap)
-       ("kmime" ,kmime)
-       ("kwallet" ,kwallet)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase-5)))
+     (list akonadi
+           akonadi-contacts
+           akonadi-mime
+           akonadi-search
+           boost
+           kcmutils
+           kcodecs
+           kcalendarcore
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcontacts
+           kcoreaddons
+           kdbusaddons
+           kdesignerplugin
+           ki18n
+           kiconthemes
+           kio
+           kitemmodels
+           kitemviews
+           kjobwidgets
+           kldap
+           kmime
+           kwallet
+           kwidgetsaddons
+           qtbase-5))
     (home-page "https://invent.kde.org/pim/libkdepim")
     (synopsis "Libraries for common KDE PIM apps")
     (description "This package provided libraries for common KDE PIM apps.")
@@ -1885,20 +1837,19 @@ and allows one to view/extract message formatted text in Rich Text Format.")
         (base32 "0nvd5fqrvyb7c3g7rf1lxbbv38q9sqnhd6irgx7awwgw92inxky4"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules qttools))
     (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("ki18n" ,ki18n)
-       ("kcontacts" ,kcontacts)
-       ("kcalendarcore" ,kcalendarcore)
-       ("kio" ,kio)
-       ("kwallet" ,kwallet)
-       ("kwindowsystem" ,kwindowsystem)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtwebchannel" ,qtwebchannel)
-       ("qtwebengine" ,qtwebengine)))
+     (list cyrus-sasl
+           ki18n
+           kcontacts
+           kcalendarcore
+           kio
+           kwallet
+           kwindowsystem
+           qtbase-5
+           qtdeclarative
+           qtwebchannel
+           qtwebengine))
     (arguments
      `(#:tests? #f)) ;; TODO 6/48 tests fail
     (home-page "https://invent.kde.org/pim/libkgapi")
@@ -1921,24 +1872,22 @@ various Google services.")
         (base32 "0rijpmqyx4mrr7csik3vkfcra7kfywk6yz548fmq3ha8wa9ax8fv"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules kdoctools qttools))
     (inputs
-     `(("boost" ,boost)
-       ("gpgme" ,gpgme)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("ki18n" ,ki18n)
-       ("kitemmodels" ,kitemmodels)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kpimtextedit" ,kpimtextedit)
-       ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase-5)))
+     (list boost
+           gpgme
+           kcodecs
+           kcompletion
+           kconfig
+           kcoreaddons
+           kcrash
+           ki18n
+           kitemmodels
+           kwidgetsaddons
+           kwindowsystem
+           kpimtextedit
+           qgpgme
+           qtbase-5))
     (home-page "https://invent.kde.org/pim/libkleo")
     (synopsis "KDE PIM cryptographic library")
     (description "@code{libkleo} is a library for Kleopatra and other parts of
@@ -1960,31 +1909,30 @@ KDE using certificate-based crypto.")
        (patches (search-patches "libksieve-Fix-missing-link-libraries.patch"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("karchive" ,karchive)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kidentitymanagement" ,kidentitymanagement)
-       ("kimap" ,kimap)
-       ("kio" ,kio)
-       ("kmailtransport" ,kmailtransport)
-       ("kmime" ,kmime)
-       ("knewstuff" ,knewstuff)
-       ("kpimcommon" ,kpimcommon)
-       ("kpimtextedit" ,kpimtextedit)
-       ("ksyntaxhighlighting" ,ksyntaxhighlighting)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwallet" ,kwallet)
-       ("kwindowsystem" ,kwindowsystem)
-       ("libkdepim" ,libkdepim)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtwebchannel" ,qtwebchannel)
-       ("qtwebengine" ,qtwebengine)))
+     (list akonadi
+           cyrus-sasl
+           karchive
+           ki18n
+           kiconthemes
+           kidentitymanagement
+           kimap
+           kio
+           kmailtransport
+           kmime
+           knewstuff
+           kpimcommon
+           kpimtextedit
+           ksyntaxhighlighting
+           ktextwidgets
+           kwallet
+           kwindowsystem
+           libkdepim
+           qtbase-5
+           qtdeclarative
+           qtwebchannel
+           qtwebengine))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 96e7ec6907..5621d8ea35 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -25,6 +25,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix gexp)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system qt)
   #:use-module (gnu packages compression)
@@ -60,23 +61,22 @@
     ;; - kwin-style-breeze
     ;; - qml-module-qtquick-controls-styles-breeze - QtQuick style
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (inputs
-     `(("kcmutils" ,kcmutils) ; optional
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kde-frameworkintegration" ,kde-frameworkintegration) ; optional
-       ("kdecoration" ,kdecoration)
-       ("kguiaddons" ,kguiaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes) ; for optional kde-frameworkintegration
-       ("kpackage" ,kpackage)
-       ("kwayland" ,kwayland) ; optional
-       ("kwindowsystem" ,kwindowsystem)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative) ; optional
-       ("qtx11extras" ,qtx11extras)))
+     (list kcmutils ; optional
+           kconfigwidgets
+           kcoreaddons
+           kde-frameworkintegration ; optional
+           kdecoration
+           kguiaddons
+           ki18n
+           kiconthemes ; for optional kde-frameworkintegration
+           kpackage
+           kwayland ; optional
+           kwindowsystem
+           qtbase-5
+           qtdeclarative ; optional
+           qtx11extras))
     (home-page "https://invent.kde.org/plasma/breeze")
     (synopsis "Default KDE Plasma theme")
     (description "Artwork, styles and assets for the Breeze visual style for
@@ -96,10 +96,9 @@ the Plasma Desktop.  Breeze is the default theme for the KDE Plasma desktop.")
                 "0pn8n7zyb0adzjnn92vmbcf7pmpss60k9k1rk5llamj016xzfgnf"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("ki18n" ,ki18n)
-       ("qtbase" ,qtbase-5)))
+     (list ki18n qtbase-5))
     (home-page "https://invent.kde.org/plasma/kdecoration")
     (synopsis "Plugin based library to create window decorations")
     (description "KDecoration is a library to create window decorations.
@@ -120,14 +119,9 @@ manager which re-parents a Client window to a window decoration frame.")
                 "1k2va2v9051f71w78dn3gihk642iyy5yzrkcfnp97fag8g6dpisi"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kwallet" ,kwallet)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase-5)))
+     (list kcoreaddons ki18n kwallet kwidgetsaddons qtbase-5))
     (home-page "https://invent.kde.org/plasma/ksshaskpass")
     (synopsis "Front-end for ssh-add using kwallet")
     (description "Ksshaskpass is a front-end for @code{ssh-add} which stores the
@@ -167,11 +161,9 @@ call it if it is not associated to a terminal.")
                    (invoke "dbus-launch" "ctest" ".")))
              #t)))))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ;; For tests.
-       ("dbus" ,dbus)
-       ("xorg-server" ,xorg-server-for-tests)))
+     (list extra-cmake-modules pkg-config
+           ;; For tests.
+           dbus xorg-server-for-tests))
     (inputs
      `(("kcmutils" ,kcmutils)
        ("kcrash" ,kcrash)
@@ -214,14 +206,11 @@ call it if it is not associated to a terminal.")
         (base32 "0rf1pm0yyc069f4n5s9ipdx4glzfr9zvv5cbrmn4q9i4v6z1qd8i"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ;; For testing.
-       ("dbus" ,dbus)))
+     (list extra-cmake-modules
+           ;; For testing.
+           dbus))
     (inputs
-     `(("kwayland" ,kwayland)
-       ("libxrandr" ,libxrandr)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+     (list kwayland libxrandr qtbase-5 qtx11extras))
     (arguments
      '(#:tests? #f)) ; FIXME: 55% tests passed, 5 tests failed out of 11
     (home-page "https://community.kde.org/Solid/Projects/ScreenManagement")
@@ -243,8 +232,7 @@ basic needs and easy to configure for those who want special setups.")
        (sha256
         (base32 "1kd0h3p8bf9k5pqp0frhr81pa0yyrpkckg9zznirk9p1v88v7bfq"))))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (inputs
      `(("kconfigwidgets" ,kconfigwidgets)
        ("kiconthemes" ,kiconthemes)
@@ -269,21 +257,22 @@ basic needs and easy to configure for those who want special setups.")
        ("zlib" ,zlib)))
     (build-system qt-build-system)
     (arguments
-     `(#:configure-flags
-       `(,(string-append "-DKDE_INSTALL_DATADIR="
-                         (assoc-ref %outputs "out") "/share"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'patch-cmakelists
-           (lambda _
-             ;; TODO: Verify: This should no longer be necessary, since
-             ;; KF5AuthConfig.cmake.in contains this already.
-             (substitute* "processcore/CMakeLists.txt"
-               (("KAUTH_HELPER_INSTALL_DIR") "KDE_INSTALL_LIBEXECDIR"))))
-         (replace 'check
-           (lambda _
-             ;; TODO: Fix this failing test-case
-             (invoke "ctest" "-E" "processtest"))))))
+     (list #:configure-flags
+           #~`(,(string-append "-DKDE_INSTALL_DATADIR="
+                               #$output "/share"))
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-before 'configure 'patch-cmakelists
+                 (lambda _
+                   ;; TODO: Verify: This should no longer be necessary, since
+                   ;; KF5AuthConfig.cmake.in contains this already.
+                   (substitute* "processcore/CMakeLists.txt"
+                     (("KAUTH_HELPER_INSTALL_DIR")
+                      "KDE_INSTALL_LIBEXECDIR"))))
+               (replace 'check
+                 (lambda _
+                   ;; TODO: Fix this failing test-case
+                   (invoke "ctest" "-E" "processtest"))))))
     (home-page "https://userbase.kde.org/KSysGuard")
     (synopsis "Network enabled task and system monitoring")
     (description "KSysGuard can obtain information on system load and
diff --git a/gnu/packages/kde-systemtools.scm b/gnu/packages/kde-systemtools.scm
index 86f169e819..3fab9089f3 100644
--- a/gnu/packages/kde-systemtools.scm
+++ b/gnu/packages/kde-systemtools.scm
@@ -49,34 +49,31 @@
         (base32 "0xr5s0s40i2bsfjfapvpa7dxh9s4604cxirg97xcaacd6fdvhpds"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)
-       ("ruby" ,ruby)
-       ("ruby-test-unit" ,ruby-test-unit)))
+     (list extra-cmake-modules kdoctools ruby ruby-test-unit))
     (inputs
-     `(("baloo" ,baloo)
-       ("baloo-widgets" ,baloo-widgets)
-       ("kactivities" ,kactivities)
-       ("kbookmarks" ,kbookmarks)
-       ("kcmutils" ,kcmutils)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kinit" ,kinit)
-       ("kio" ,kio)
-       ("knewstuff" ,knewstuff)
-       ("knotifications" ,knotifications)
-       ("kparts" ,kparts)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwindowsystem" ,kwindowsystem)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("phonon" ,phonon)
-       ("qtbase" ,qtbase-5)
-       ("solid" ,solid)))
+     (list baloo
+           baloo-widgets
+           kactivities
+           kbookmarks
+           kcmutils
+           kcompletion
+           kconfig
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kiconthemes
+           kinit
+           kio
+           knewstuff
+           knotifications
+           kparts
+           ktextwidgets
+           kwindowsystem
+           oxygen-icons ;; default icon set
+           phonon
+           qtbase-5
+           solid))
     (arguments
      `(#:tests? #f)) ;; TODO: 4/15 tests fail even with offscreen
     (home-page "https://kde.org/applications/system/org.kde.dolphin")
@@ -108,15 +105,15 @@ The main features of Dolphin are:
         (base32 "12g44s6g7ma6avp15l45l42qyzbglswvahm2wji79zdls5vjnz7r"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("dolphin" ,dolphin)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("ktexteditor" ,ktexteditor)
-       ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase-5)))
+     (list dolphin
+           ki18n
+           kio
+           ktexteditor
+           kxmlgui
+           oxygen-icons ;; default icon set
+           qtbase-5))
     (home-page "http://www.kde.org/")
     (synopsis "VCS-Plugins for Dolphin")
     (description "This package contains plugins that offer integration in
@@ -136,28 +133,27 @@ Dolphin with the version control systems: Bzr, Git, Mercurial, Subversion.")
         (base32 "0wxzjragvjcfc7c4qja8wzpshhaywficj7f7wkmppzybcsxwn9qb"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("grantlee" ,grantlee)
-       ("karchive" ,karchive)
-       ("kbookmarks" ,kbookmarks)
-       ("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kdbusaddons" ,kdbusaddons)
-       ("khtml" ,khtml)
-       ("ki18n" ,ki18n)
-       ("kinit" ,kinit)
-       ("kio" ,kio)
-       ("kjs" ,kjs)
-       ("kparts" ,kparts)
-       ("kservice" ,kservice)
-       ("kwindowsystem" ,kwindowsystem)
-       ("libxml2" ,libxml2)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase-5)
-       ("xapian" ,xapian)))
+     (list grantlee
+           karchive
+           kbookmarks
+           kcodecs
+           kconfig
+           kcoreaddons
+           kdbusaddons
+           khtml
+           ki18n
+           kinit
+           kio
+           kjs
+           kparts
+           kservice
+           kwindowsystem
+           libxml2
+           oxygen-icons ;; default icon set
+           qtbase-5
+           xapian))
     (arguments
      `(#:tests? #f)) ;; 1/1 test fails
     (home-page "https://kde.org/applications/system/org.kde.Help")
@@ -186,35 +182,34 @@ document meta data file.")
         (base32 "0ckr7bjkyaw0gr5kx569jfnhkhwmlk4lqk41ng61qwxlb4bsdbdm"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("kbookmarks" ,kbookmarks)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kguiaddons" ,kguiaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kinit" ,kinit)
-       ("kio" ,kio)
-       ("knewstuff" ,knewstuff)
-       ("kglobalaccel" ,kglobalaccel)
-       ("knotifications" ,knotifications)
-       ("knotifyconfig" ,knotifyconfig)
-       ("kparts" ,kparts)
-       ("kpty" ,kpty)
-       ("kservice" ,kservice)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase-5)
-       ("qtscript" ,qtscript)))
+     (list kbookmarks
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           kguiaddons
+           ki18n
+           kiconthemes
+           kinit
+           kio
+           knewstuff
+           kglobalaccel
+           knotifications
+           knotifyconfig
+           kparts
+           kpty
+           kservice
+           ktextwidgets
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           oxygen-icons ;; default icon set
+           qtbase-5
+           qtscript))
     (arguments
      `(#:tests? #f)) ;; TODO: 2/15 tests fail even with HOME, offscreen, SHELL, debus
     (home-page "http://www.kde.org/")
@@ -241,31 +236,29 @@ This package is part of the KDE base applications module.")
         (base32 "092ijn88jpmgk2zwz37vzf35jisl234mc3krc9jl7bd955akx51k"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules pkg-config kdoctools))
     (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdnssd" ,kdnssd)
-       ("ki18n" ,ki18n)
-       ("knotifications" ,knotifications)
-       ("kwallet" ,kwallet)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libvnc" ,libvnc)
-       ("libxcb" ,libxcb)
-       ("libxtst" ,libxtst)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("pipewire" ,pipewire)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)
-       ("xcb-util-image" ,xcb-util-image)
-       ("zlib" ,zlib)))
+     (list kcompletion
+           kconfig
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           kdnssd
+           ki18n
+           knotifications
+           kwallet
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           libvnc
+           libxcb
+           libxtst
+           oxygen-icons ;; default icon set
+           pipewire-0.3
+           qtbase-5
+           qtx11extras
+           xcb-util-image
+           zlib))
     (home-page "https://kde.org/applications/internet/org.kde.krfb")
     (synopsis "Desktop Sharing utility")
     (description "KDE Desktop Sharing is a server application that allows you
@@ -293,23 +286,22 @@ This package is part of the KDE networking module.")
         (base32 "1826h89ynvlxdwzyqil2d79cvynglww6fax7qp41wxasgarxhsni"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
      ;; Not including Journald since this is not used in guix
-     `(("karchive" ,karchive)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kitemviews" ,kitemviews)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase-5)))
+     (list karchive
+           kcompletion
+           kconfig
+           kcoreaddons
+           ki18n
+           kiconthemes
+           kio
+           kitemviews
+           ktextwidgets
+           kwidgetsaddons
+           kxmlgui
+           oxygen-icons ;; default icon set
+           qtbase-5))
     (home-page "https://kde.org/applications/system/org.kde.ksystemlog")
     (synopsis "System log viewer")
     (description "This program is developed for being used by beginner users,
@@ -333,29 +325,29 @@ This package is part of the KDE administration module.")
                 "02pal9xx1wbpw7dimvs2aw1xnyjqlvbjlybkkfhf8x7c6m1r63aa"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("breeze-icons" ,breeze-icons)
-       ("karchive" ,karchive)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kglobalaccel" ,kglobalaccel)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("knewstuff" ,knewstuff)
-       ("knotifications" ,knotifications)
-       ("knotifyconfig" ,knotifyconfig)
-       ("konsole" ,konsole)
-       ("kparts" ,kparts)
-       ("kwayland" ,kwayland)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)))
+     (list breeze-icons
+           karchive
+           kconfig
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           kglobalaccel
+           ki18n
+           kiconthemes
+           kio
+           knewstuff
+           knotifications
+           knotifyconfig
+           konsole
+           kparts
+           kwayland
+           kwidgetsaddons
+           kwindowsystem
+           qtbase-5
+           qtsvg
+           qtx11extras))
     (home-page "https://www.kde.org/applications/system/yakuake/")
     (synopsis "Quad-style terminal emulator for KDE")
     (description "Yakuake is a drop-down terminal emulator based on KDE Konsole
diff --git a/gnu/packages/kde-utils.scm b/gnu/packages/kde-utils.scm
index 47e25409ee..2b3a0dd15e 100644
--- a/gnu/packages/kde-utils.scm
+++ b/gnu/packages/kde-utils.scm
@@ -77,35 +77,32 @@
                            (string-append p "/bin"))
                          (list lrzip lzop p7zip unzip zip zstd))))))))))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("kdoctools" ,kdoctools)
-       ("xorg-server" ,xorg-server)))
+     (list extra-cmake-modules pkg-config kdoctools xorg-server))
     (inputs
-     `(("breeze-icons" ,breeze-icons)
-       ("karchive" ,karchive)
-       ("kconfig" ,kconfig)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("khtml" ,khtml)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kitemmodels" ,kitemmodels)
-       ("kparts" ,kparts)
-       ("kpty" ,kpty)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("libarchive" ,libarchive)
-       ("libzip" ,libzip)
-       ("qtbase" ,qtbase-5)
-       ("zlib" ,zlib)
-       ;; Command line tools used by Ark.
-       ("lrzip" ,lrzip)
-       ("lzop" ,lzop)
-       ("p7zip" ,p7zip)
-       ("unzip" ,unzip)
-       ("zip" ,zip)
-       ("zstd" ,zstd)))
+     (list breeze-icons
+           karchive
+           kconfig
+           kcrash
+           kdbusaddons
+           khtml
+           ki18n
+           kio
+           kitemmodels
+           kparts
+           kpty
+           kservice
+           kwidgetsaddons
+           libarchive
+           libzip
+           qtbase-5
+           zlib
+           ;; Command line tools used by Ark.
+           lrzip
+           lzop
+           p7zip
+           unzip
+           zip
+           zstd))
     (home-page "https://apps.kde.org/en/ark")
     (synopsis "Graphical archiving tool")
     (description "Ark is a graphical file compression/decompression utility
@@ -126,30 +123,29 @@ well as CD-ROM images.")
         (base32 "0nrby307syrqlxrf9lwdzc9c15ifw47418qwszqwg345ma2pww7i"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("kactivities" ,kactivities)
-       ("kconfig" ,kconfig)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kguiaddons" ,kguiaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kitemmodels" ,kitemmodels)
-       ("threadweaver" ,threadweaver)
-       ("knewstuff" ,knewstuff)
-       ("kio" ,kio)
-       ("kjobwidgets" ,kjobwidgets)
-       ("kparts" ,kparts)
-       ("ktexteditor" ,ktexteditor)
-       ("kwallet" ,kwallet)
-       ("plasma-framework" ,plasma-framework)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase-5)
-       ("qtscript" ,qtscript)))
+     (list kactivities
+           kconfig
+           kcrash
+           kdbusaddons
+           kguiaddons
+           ki18n
+           kiconthemes
+           kitemmodels
+           threadweaver
+           knewstuff
+           kio
+           kjobwidgets
+           kparts
+           ktexteditor
+           kwallet
+           plasma-framework
+           kwindowsystem
+           kxmlgui
+           oxygen-icons ;; default icon set
+           qtbase-5
+           qtscript))
     (arguments
      `(#:tests? #f ;; 2/7 tests fail
        #:phases
@@ -193,15 +189,14 @@ Kate's features include:
        (base32 "18lk8i2r90gvw8q5j179xgpniih92mwk06krk7w4jv98yinqf6m5"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ;; TODO: QAccessibilityClient - libqaccessibilityclien
-       ("qtbase" ,qtbase-5)))
+     (list ki18n
+           kio
+           kxmlgui
+           oxygen-icons ;; default icon set
+           ;; TODO: QAccessibilityClient - libqaccessibilityclien
+           qtbase-5))
     (home-page "https://kde.org/applications/utilities/org.kde.kmag")
     (synopsis "Screen magnifier tool")
     (description "You can use KMagnifier to magnify a part of the screen just
@@ -224,23 +219,22 @@ artists to web-designers to people with low vision.")
         (base32 "01j6bx8zihns4ip8maj0gb3w3bhx1ha2ljhfmsm6lcyay531ay98"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("kauth" ,kauth)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("knotifications" ,knotifications)
-       ("kxmlgui" ,kxmlgui)
-       ("kwindowsystem" ,kwindowsystem)
-       ("libxtst" ,libxtst)
-       ("libxt" ,libxt)
-       ("phonon" ,phonon)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase-5)))
+     (list kauth
+           kcoreaddons
+           kconfigwidgets
+           kdbusaddons
+           ki18n
+           kiconthemes
+           knotifications
+           kxmlgui
+           kwindowsystem
+           libxtst
+           libxt
+           phonon
+           oxygen-icons ;; default icon set
+           qtbase-5))
     (home-page "https://kde.org/applications/utilities/org.kde.kmousetool")
     (synopsis "Automatic mouse click and mouse manipulation tool for the
 disabled")
@@ -263,21 +257,20 @@ whom pressing buttons hurts.")
         (base32 "1afgxlys9mvmc3rd33g7gchfb0ylx83x3x0a0qf3dra6cpgsgcg7"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase-5)
-       ("qtspeech" ,qtspeech)))
+     (list kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           ki18n
+           kio
+           kwidgetsaddons
+           kxmlgui
+           oxygen-icons ;; default icon set
+           qtbase-5
+           qtspeech))
     (home-page "https://kde.org/applications/utilities/org.kde.kmouth")
     (synopsis "Type-and-say frontend for speech synthesizers")
     (description "KMouth is a program which enables persons that cannot speak
@@ -303,19 +296,18 @@ sentences to be re-spoken.")
         (base32 "05hs8729a3aqjpwmn2xdf2sriacrll4sj4ax3lm4s1ravj09n9bm"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("kauth" ,kauth)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("ki18n" ,ki18n)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase-5)))
+     (list kauth
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           ki18n
+           kwidgetsaddons
+           kxmlgui
+           oxygen-icons ;; default icon set
+           qtbase-5))
     (home-page "https://kde.org/applications/utilities/org.kde.kronometer")
     (synopsis "Simple stopwatch application")
     (description "Kronometer is a stopwatch application.  It features the
@@ -337,31 +329,30 @@ to save the times and resume them later.")
         (base32 "02b1jz5a7cjr13v6c7fczrhs1xmg1krnva5fxk8x2bf4nd1rm8s1"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("karchive" ,karchive)
-       ("kbookmarks" ,kbookmarks)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kguiaddons" ,kguiaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kitemviews" ,kitemviews)
-       ("knotifications" ,knotifications)
-       ("kparts" ,kparts)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwallet" ,kwallet)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase-5)
-       ("solid" ,solid)
-       ("zlib" ,zlib)))
+     (list karchive
+           kbookmarks
+           kcodecs
+           kcompletion
+           kconfig
+           kcoreaddons
+           kguiaddons
+           ki18n
+           kiconthemes
+           kio
+           kitemviews
+           knotifications
+           kparts
+           ktextwidgets
+           kwallet
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           oxygen-icons ;; default icon set
+           qtbase-5
+           solid
+           zlib))
     (home-page "https://www.krusader.org")
     (synopsis "Twin-panel (commander-style) file manager")
     (description "Krusader is a simple, easy, yet powerful,
@@ -392,14 +383,9 @@ great on your desktop.")
         (base32 "1q6blvcqz6hxdfrkdi0fplmz7rmk3im56kpp68r0yrivhx3hn8sc"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules kdoctools pkg-config))
     (inputs
-     `(("ktexteditor" ,ktexteditor)
-       ("imagemagick" ,imagemagick)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+     (list ktexteditor imagemagick qtbase-5 qtx11extras))
     (home-page "https://kde.org/applications/en/graphics/org.kde.kxstitch")
     (synopsis "Create and print cross stitch patterns")
     (description
@@ -421,30 +407,27 @@ either be created or generated from a image.")
         (base32 "03wsv83l1cay2dpcsksad124wzan7kh8zxdw1h0yicn398kdbck4"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)
-       ("qttools" ,qttools)
-       ("shared-mime-info" ,shared-mime-info)))
+     (list extra-cmake-modules kdoctools qttools shared-mime-info))
     (inputs
-     `(("kbookmarks" ,kbookmarks)
-       ("kcmutils" ,kcmutils)
-       ("kcodecs" ,kcodecs)
-       ("kcrash" ,kcrash)
-       ("kcompletion" ,kcompletion)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("knewstuff" ,knewstuff)
-       ("kparts" ,kparts)
-       ("kservice" ,kservice)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qca" ,qca)
-       ("qtbase" ,qtbase-5)
-       ("qtscript" ,qtscript)))
+     (list kbookmarks
+           kcmutils
+           kcodecs
+           kcrash
+           kcompletion
+           kconfigwidgets
+           kdbusaddons
+           ki18n
+           kiconthemes
+           kio
+           knewstuff
+           kparts
+           kservice
+           kwidgetsaddons
+           kxmlgui
+           oxygen-icons ;; default icon set
+           qca
+           qtbase-5
+           qtscript))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -483,25 +466,24 @@ redone.")
         (base32 "0yjv5awngi2hk6xzlwzmj92i6qppnfc0inqdp16rd8gzfpw7xqqw"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("kauth" ,kauth)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kidletime" ,kidletime)
-       ("knotifications" ,knotifications)
-       ("knotifyconfig" ,knotifyconfig)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase-5)))
+     (list kauth
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kiconthemes
+           kidletime
+           knotifications
+           knotifyconfig
+           ktextwidgets
+           kwindowsystem
+           kxmlgui
+           oxygen-icons ;; default icon set
+           qtbase-5))
     (home-page "https://kde.org/applications/utilities/org.kde.rsibreak")
     (synopsis "Assists in the Recovery and Prevention of Repetitive Strain
 Injury")
@@ -524,33 +506,32 @@ remind you to take a break now and then.")
         (base32 "0hz6nfd845bykf78s4g2qs77szl96gy6g8rpg44pqd39a0k0xbh7"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("kauth" ,kauth)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcompletion" ,kcompletion)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kjobwidgets" ,kjobwidgets)
-       ("knotifications" ,knotifications)
-       ("knotifyconfig" ,knotifyconfig)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwallet" ,kwallet)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("libsmbclient" ,samba)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("plasma-framework" ,plasma-framework)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("solid" ,solid)))
+     (list kauth
+           kconfig
+           kconfigwidgets
+           kcompletion
+           kcoreaddons
+           kcrash
+           kdbusaddons
+           ki18n
+           kiconthemes
+           kio
+           kjobwidgets
+           knotifications
+           knotifyconfig
+           ktextwidgets
+           kwallet
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           samba
+           oxygen-icons ;; default icon set
+           plasma-framework
+           qtbase-5
+           qtdeclarative
+           solid))
     (home-page "https://kde.org/applications/utilities/org.kde.smb4k")
     (synopsis "Samba (SMB) share advanced browser")
     (description "Smb4K is an network neighborhood browser for the KDE
@@ -596,21 +577,20 @@ Features:
         (base32 "1az3c2khnh51bbmqpamj4p26d3a0ff4l5rd3vcrylg94mk7wgh59"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("kactivities-stats" ,kactivities-stats)
-       ("kbookmarks" ,kbookmarks)
-       ("kcrash" ,kcrash)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kxmlgui" ,kxmlgui)
-       ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase-5)))
+     (list kactivities-stats
+           kbookmarks
+           kcrash
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           ki18n
+           kio
+           ktextwidgets
+           kxmlgui
+           oxygen-icons ;; default icon set
+           qtbase-5))
     (home-page "https://kde.org/applications/utilities/org.kde.sweeper")
     (synopsis "Temporary file and history cleaner")
     (description "
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index bcf7146782..851a3495b7 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -11,7 +11,7 @@
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com>
-;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2020, 2021 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2021 Alexandros Theodotou <alex@zrythm.org>
 ;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org>
 ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
@@ -57,10 +57,12 @@
   #:use-module (gnu packages ebook)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages geo)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gps)
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages image)
   #:use-module (gnu packages kde-frameworks)
@@ -74,6 +76,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
@@ -97,13 +100,9 @@
         (base32 "1x4v79vhvc5ixkbsf3jyjz5ig1lf78rfw3r7g3llpb4j1kcp3wh0"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("baloo" ,baloo)
-       ("kconfig" ,kconfig)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("qtbase" ,qtbase-5)))
+     (list baloo kconfig ki18n kio qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -132,15 +131,14 @@ This package contains GUI widgets for baloo.")
     (build-system qt-build-system)
     (arguments `(#:tests? #f))  ; unexpected error in the test suite.
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("libxml2" ,libxml2))) ;; xmllint required for tests
+     (list extra-cmake-modules libxml2)) ;; xmllint required for tests
     (inputs
-     `(("grantlee" ,grantlee)
-       ("kguiaddons" ,kguiaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("knewstuff" ,knewstuff)
-       ("qtbase" ,qtbase-5)))
+     (list grantlee
+           kguiaddons
+           ki18n
+           kiconthemes
+           knewstuff
+           qtbase-5))
     (home-page "https://invent.kde.org/pim/grantleetheme")
     (synopsis "Library providing Grantlee theme support")
     (description "This library provides Grantlee theme support.")
@@ -173,40 +171,39 @@ This package contains GUI widgets for baloo.")
                  `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))
                #t))))))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("akonadi" ,akonadi)
-       ("akonadi-contacts" ,akonadi-contacts)
-       ("akonadi-mime" ,akonadi-mime)
-       ("boost" ,boost)
-       ("breeze-icons" ,breeze-icons)
-       ("gpgme" ,gpgme)
-       ("grantlee" ,grantlee)
-       ("grantleetheme" ,grantleetheme)
-       ("kcmutils" ,kcmutils)
-       ("kcontacts" ,kcontacts)
-       ("kcrash" ,kcrash)
-       ("kimap" ,kimap)
-       ("kitemmodels" ,kitemmodels)
-       ("kmessagelib" ,kmessagelib)
-       ("kmime" ,kmime)
-       ("knotifications" ,knotifications)
-       ("knotifyconfig" ,knotifyconfig)
-       ("kontactinterface" ,kontactinterface)
-       ("kpimcommon" ,kpimcommon)
-       ("kpimtextedit" ,kpimtextedit)
-       ("kqtquickcharts" ,kqtquickcharts)
-       ("ktexteditor" ,ktexteditor)
-       ("kuserfeedback" ,kuserfeedback)
-       ("libkdepim" ,libkdepim)
-       ("libkleo" ,libkleo)
-       ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtwebchannel" ,qtwebchannel)
-       ("qtwebengine" ,qtwebengine)
-       ("syndication" ,syndication)))
+     (list akonadi
+           akonadi-contacts
+           akonadi-mime
+           boost
+           breeze-icons
+           gpgme
+           grantlee
+           grantleetheme
+           kcmutils
+           kcontacts
+           kcrash
+           kimap
+           kitemmodels
+           kmessagelib
+           kmime
+           knotifications
+           knotifyconfig
+           kontactinterface
+           kpimcommon
+           kpimtextedit
+           kqtquickcharts
+           ktexteditor
+           kuserfeedback
+           libkdepim
+           libkleo
+           qgpgme
+           qtbase-5
+           qtdeclarative
+           qtwebchannel
+           qtwebengine
+           syndication))
     (home-page "https://apps.kde.org/en/akregator")
     (synopsis "KDE Feed Reader")
     (description
@@ -219,7 +216,7 @@ browser for easy news reading.")
     (license license:gpl2+)))
 
 (define-public kdenlive
-  (let ((version "20.08.3"))
+  (let ((version "21.08.3"))
     (package
       (name "kdenlive")
       (version version)
@@ -231,45 +228,47 @@ browser for easy news reading.")
                (commit (string-append "v" version))))
          (file-name (string-append name "-" version "-checkout"))
          (sha256
-          (base32 "0x0qfwf6wfnybjyjvmllpf87sm27d1n2akslhp2k8ins838qy55i"))))
-      (build-system cmake-build-system)
+          (base32 "0lpspak5djkbn2xbmmbxls258310g45n3a08sghkjl08bx6ilvc9"))))
+      (build-system qt-build-system)
       (native-inputs
-       `(("extra-cmake-modules" ,extra-cmake-modules)
-         ("pkg-config" ,pkg-config)
-         ("qttools" ,qttools)))
+       (list extra-cmake-modules pkg-config qttools))
       (inputs
-       `(("shared-mime-info" ,shared-mime-info)
-         ("frei0r-plugins" ,frei0r-plugins)
-         ("ffmpeg" ,ffmpeg)
-         ("rttr" ,rttr)
-         ("mlt" ,mlt-6)
-         ("qtbase" ,qtbase-5)
-         ("qtscript" ,qtscript)
-         ("qtsvg" ,qtsvg)
-         ("qtmultimedia" ,qtmultimedia)
-         ("kparts" ,kparts)
-         ("knotifications" ,knotifications)
-         ("karchive" ,karchive)
-         ("kdbusaddons" ,kdbusaddons)
-         ("kcrash" ,kcrash)
-         ("kguiaddons" ,kguiaddons)
-         ("knewstuff" ,knewstuff)
-         ("knotifyconfig" ,knotifyconfig)
-         ("kfilemetadata" ,kfilemetadata)
-         ("kdoctools" ,kdoctools)
-         ("kdeclarative" ,kdeclarative)
-         ("qtdeclarative" ,qtdeclarative)
-         ("qtquickcontrols" ,qtquickcontrols)
-         ("qtquickcontrols2" ,qtquickcontrols2)
-         ("kiconthemes" ,kiconthemes)
-         ("breeze" ,breeze) ; make dark them available easily
-         ("breeze-icons" ,breeze-icons) ; recommended icon set
-         ("purpose" ,purpose)
-         ("qtwebkit" ,qtwebkit)
-         ("qtgraphicaleffects" ,qtgraphicaleffects)
-         ("kplotting" ,kplotting)))
+       (list breeze ; make dark them available easily
+             breeze-icons ; recommended icon set
+             ffmpeg
+             frei0r-plugins
+             karchive
+             kcrash
+             kdbusaddons
+             kdeclarative
+             kdoctools
+             kfilemetadata
+             kguiaddons
+             kiconthemes
+             knewstuff
+             knotifications
+             knotifyconfig
+             kparts
+             kplotting
+             mlt
+             purpose
+             qtbase-5
+             qtdeclarative
+             qtgraphicaleffects
+             qtmultimedia
+             qtnetworkauth
+             qtquickcontrols
+             qtquickcontrols2
+             qtscript
+             qtsvg
+             qtwebkit
+             shared-mime-info))
       (arguments
-       `(#:tests? #f                    ;TODO needs X
+       ;; XXX: there is a single test that spawns other tests and
+       ;; 1/3 tests failed and 1/327 assertions failed.  It seems
+       ;; that individual tests can't be skipped.
+       `(#:configure-flags (list "-DBUILD_TESTING=off")
+         #:tests? #f
          #:phases
          (modify-phases %standard-phases
            (add-after 'install 'wrap-executable
@@ -277,26 +276,16 @@ browser for easy news reading.")
                (let* ((out (assoc-ref outputs "out"))
                       (qtbase (assoc-ref inputs "qtbase"))
                       (frei0r (assoc-ref inputs "frei0r-plugins"))
-                      (ffmpeg (assoc-ref inputs "ffmpeg"))
-                      (breeze (assoc-ref inputs "breeze"))
-                      (breeze-icons (assoc-ref inputs "breeze-icons")))
+                      (ffmpeg (assoc-ref inputs "ffmpeg")))
                  (wrap-program (string-append out "/bin/kdenlive")
                    `("PATH" ":" prefix
                      ,(list (string-append ffmpeg "/bin")))
-                   `("XDG_DATA_DIRS" ":" prefix
-                     ,(list (string-append breeze "/share")
-                            (string-append breeze-icons "/share")))
-                   `("QT_PLUGIN_PATH" ":" prefix
-                     ,(list (getenv "QT_PLUGIN_PATH")))
                    `("FREI0R_PATH" ":" =
                      (,(string-append frei0r "/lib/frei0r-1/")))
                    `("QT_QPA_PLATFORM_PLUGIN_PATH" ":" =
                      (,(string-append qtbase "/lib/qt5/plugins/platforms")))
-                   `("QML2_IMPORT_PATH" ":" prefix
-                     ,(list (getenv "QML2_IMPORT_PATH")))
                    `("MLT_PREFIX" ":" =
-                     (,(assoc-ref inputs "mlt")))))
-               #t)))))
+                     (,(assoc-ref inputs "mlt"))))))))))
       (home-page "https://kdenlive.org")
       (synopsis "Non-linear video editor")
       (description "Kdenlive is an acronym for KDE Non-Linear Video Editor.
@@ -321,10 +310,7 @@ projects.")
          (base32 "02ip5r67hjfpywkm3mz86n6wbqcr7996ifzfd2fyzsvm4998hi4y"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("shared-mime-info" ,shared-mime-info)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules pkg-config shared-mime-info qttools))
     (inputs
      `(("boost" ,boost)
        ("clang" ,clang)
@@ -414,9 +400,9 @@ software (Git, Subversion, Mercurial, CVS and Bazaar).")
        (sha256
         (base32 "1kfab4p717acbdkcdi41d98vwch7v431gb2qi6s38hmclsf8bf8g"))))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (build-system cmake-build-system)
     (home-page "https://kde.org")
     (synopsis "Parser generator library for KDevplatform")
@@ -442,11 +428,9 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).")
                  "kdiagram-Fix-missing-link-libraries.patch"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules qttools))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+     (list qtbase-5 qtsvg))
     (home-page "https://invent.kde.org/graphics/kdiagram")
     (synopsis "Libraries for creating business diagrams")
     (description "This package provides libraries for integrating business
@@ -461,7 +445,7 @@ illustrate project schedules.")
 (define-public krita
   (package
     (name "krita")
-    (version "4.4.5")
+    (version "4.4.8")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -469,7 +453,7 @@ illustrate project schedules.")
                     "/krita-" version ".tar.gz"))
               (sha256
                (base32
-                "0s3mzgkxb316y1wncrr8l3w5nnqszhvdh8qi1nh6040dhy075zab"))))
+                "1y0d8gnxfdg5nfwk8dgx8fc2bwskvnys049napb1a9fr25bqmimw"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f
@@ -494,51 +478,51 @@ illustrate project schedules.")
                          qt)))
                #t))))))
     (native-inputs
-     `(("curl" ,curl)
-       ("eigen" ,eigen)
-       ("extra-cmake-modules" ,extra-cmake-modules)
-       ("gettext-minimal" ,gettext-minimal)
-       ("kitemmodels" ,kitemmodels)
-       ("pkg-config" ,pkg-config)
-       ("qwt" ,qwt)
-       ("vc" ,vc)))
+     (list curl
+           eigen
+           extra-cmake-modules
+           gettext-minimal
+           kitemmodels
+           pkg-config
+           qwt
+           vc))
     (inputs
-     `(("boost" ,boost)
-       ("exiv2" ,exiv2)
-       ("fftw" ,fftw)
-       ("gsl" ,gsl)
-       ("ilmbase" ,ilmbase)
-       ("karchive" ,karchive)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kguiaddons" ,kguiaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kitemviews" ,kitemviews)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kwindowsystem" ,kwindowsystem)
-       ("kxmlgui" ,kxmlgui)
-       ("lcms" ,lcms)
-       ("libjpeg-turbo" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libraw" ,libraw-0.18)
-       ("libtiff" ,libtiff)
-       ("libx11" ,libx11)
-       ("libxcb" ,libxcb)
-       ("libxi" ,libxi)
-       ("openexr" ,openexr)
-       ("perl" ,perl)
-       ("poppler-qt5" ,poppler-qt5)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)
-       ("quazip" ,quazip)
-       ("zlib" ,zlib)))
+     (list boost
+           exiv2
+           fftw
+           gsl
+           ilmbase
+           karchive
+           kcompletion
+           kconfig
+           kcoreaddons
+           kcrash
+           kguiaddons
+           ki18n
+           kiconthemes
+           kio
+           kitemviews
+           kwidgetsaddons
+           kwindowsystem
+           kxmlgui
+           lcms
+           libjpeg-turbo
+           libpng
+           libraw-0.18
+           libtiff
+           libx11
+           libxcb
+           libxi
+           openexr-2
+           perl
+           poppler-qt5
+           qtbase-5
+           qtdeclarative
+           qtmultimedia
+           qtsvg
+           qtx11extras
+           quazip-0
+           zlib))
     (home-page "https://krita.org")
     (synopsis "Digital painting application")
     (description
@@ -561,20 +545,18 @@ features include brush stabilizers, brush engines and wrap-around mode.")
         (base32 "0v8z6r9gngzckvqyxjm9kp7hilwfqibyk2f9vag9l98ar0iwr97q"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)
-       ("shared-mime-info" ,shared-mime-info)))
+     (list extra-cmake-modules pkg-config shared-mime-info))
     (inputs
-     `(("karchive" ,karchive)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kparts" ,kparts)
-       ("kdiagram" ,kdiagram)
-       ("kgraphviewer" ,kgraphviewer)
-       ("kio" ,kio)
-       ("ki18n" ,ki18n)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtxmlpatterns" ,qtxmlpatterns)))
+     (list karchive
+           kcoreaddons
+           kparts
+           kdiagram
+           kgraphviewer
+           kio
+           ki18n
+           qtbase-5
+           qtsvg
+           qtxmlpatterns))
     (home-page "https://apps.kde.org/en/massif-visualizer")
     (synopsis "Visualize massif data generated by Valgrind")
     (description
@@ -596,16 +578,15 @@ compressed massif files can also be opened transparently.")
         (sha256
          (base32 "0m8m7sgpf2f4nxpaaymyvihlk0pcyblyd99mcbibrnyr5kzkzzdc"))))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (inputs
-     `(("kcodecs" ,kcodecs)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase-5)))
+     (list kcodecs
+           kconfig
+           kcoreaddons
+           ki18n
+           kio
+           kxmlgui
+           qtbase-5))
     (build-system cmake-build-system)
     (home-page "https://kde.org")
     (synopsis "Library to compare files and strings, used in Kompare and KDevelop")
@@ -629,10 +610,9 @@ used in KDE development tools Kompare and KDevelop.")
          (base32 "0rvvf97la95lah67jcj0p06n4br0pc2mri0q1hn4x522hndqybjn"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("openssl" ,openssl)
-       ("qtbase" ,qtbase-5)))
+     (list openssl qtbase-5))
     (home-page "https://userbase.kde.org/QCA")
     (synopsis "Libraries for the Qt Cryptographic Architecture")
     (description "The Qt Cryptographic Architecture (QCA) provides a
@@ -656,16 +636,15 @@ cards.")
                 "0jsig7algmab9h0fb09my0axjqzw83zgscamhzl8931lribs6idm"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules pkg-config))
     (inputs
-     `(("kauth" ,kauth)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase-5)
-       ("qca" ,qca)
-       ("util-linux" ,util-linux "lib")))
+     (list kauth
+           kcoreaddons
+           ki18n
+           kwidgetsaddons
+           qtbase-5
+           qca
+           `(,util-linux "lib")))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Library for managing partitions")
     (description "Library for managing partitions.")
@@ -687,10 +666,9 @@ cards.")
     (arguments
      `(#:tests? #f)) ; both tests fail, require display
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)))
+     (list extra-cmake-modules qttools))
     (home-page "https://techbase.kde.org/Projects/Snorenotify")
     (synopsis "Qt notification framework")
     (description "Snorenotify is a multi platform Qt notification framework.
@@ -730,27 +708,27 @@ different notification systems.")
        ("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)))
     (inputs
-     `(("kcmutils" ,kcmutils)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kdbusaddons" ,kdbusaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kirigami" ,kirigami)
-       ("knotifications" ,knotifications)
-       ("kpeople" ,kpeople)
-       ("kpeoplevcard" ,kpeoplevcard)
-       ("kwayland" ,kwayland)
-       ("libfakekey" ,libfakekey)
-       ("pulseaudio-qt" ,pulseaudio-qt)
-       ("qca" ,qca)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtgraphicaleffects" ,qtgraphicaleffects)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtquickcontrols" ,qtquickcontrols)
-       ("qtquickcontrols2" ,qtquickcontrols2)
-       ("qtx11extras" ,qtx11extras)))
+     (list kcmutils
+           kconfigwidgets
+           kdbusaddons
+           ki18n
+           kiconthemes
+           kio
+           kirigami
+           knotifications
+           kpeople
+           kpeoplevcard
+           kwayland
+           libfakekey
+           pulseaudio-qt
+           qca
+           qtbase-5
+           qtdeclarative
+           qtgraphicaleffects
+           qtmultimedia
+           qtquickcontrols
+           qtquickcontrols2
+           qtx11extras))
     (home-page "https://community.kde.org/KDEConnect")
     (synopsis "Enable your devices to communicate with each other")
     (description "KDE Connect is a project that enables all your devices to
@@ -806,39 +784,39 @@ communicate with each other.  Here's a few things KDE Connect can do:
        ("python" ,python-wrapper)
        ("qttools" ,qttools)))
     (inputs
-     `(("breeze" ,breeze) ;for dark themes
-       ("breeze-icons" ,breeze-icons) ;for icons
-       ("gsl" ,gsl)
-       ("karchive" ,karchive)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kcrash" ,kcrash)
-       ("kdoctools" ,kdoctools)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("knewstuff" ,knewstuff)
-       ("kparts" ,kparts)
-       ("kservice" ,kservice)
-       ("ksyntaxhighlighting" ,ksyntaxhighlighting)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kuserfeedback" ,kuserfeedback)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("shared-mime-info" ,shared-mime-info)
-       ;; Optional.
-       ("cfitsio" ,cfitsio)
-       ("fftw" ,fftw)
-       ("hdf5" ,hdf5)
-       ("libcerf" ,libcerf)
-       ("lz4" ,lz4)
-       ("netcdf" ,netcdf)
-       ("qtserialport" ,qtserialport)
-       ("zlib" ,zlib)))
+     (list breeze ;for dark themes
+           breeze-icons ;for icons
+           gsl
+           karchive
+           kcompletion
+           kconfig
+           kconfigwidgets
+           kcoreaddons
+           kcrash
+           kdoctools
+           ki18n
+           kiconthemes
+           kio
+           knewstuff
+           kparts
+           kservice
+           ksyntaxhighlighting
+           ktextwidgets
+           kuserfeedback
+           kwidgetsaddons
+           kxmlgui
+           qtbase-5
+           qtsvg
+           shared-mime-info
+           ;; Optional.
+           cfitsio
+           fftw
+           hdf5
+           libcerf
+           lz4
+           netcdf
+           qtserialport
+           zlib))
     (home-page "https://labplot.kde.org/")
     (synopsis "Interactive graphing and analysis of scientific data")
     (description "LabPlot is a tool for interactive graphing and analysis of
@@ -861,10 +839,9 @@ to perform data analysis.")
           "1wxp35mf9zlpgzi4msdl86b2krdq2ipqw371gyx23r7j84vdyxi3"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list qtbase-5 qtdeclarative))
     (home-page "https://phabricator.kde.org/source/kqtquickcharts/")
     (synopsis "Interactive charts for Qt Quick")
     (description
@@ -885,19 +862,18 @@ charts.")
                 "0ba67hs4vlb3qyvdzhnpmf8p62df12s8aqw4hzf9vnxff3qix5k1"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("kcmutils" ,kcmutils)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcoreaddons" ,kcoreaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("knotifications" ,knotifications)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase-5)))
+     (list kcmutils
+           kconfigwidgets
+           kcoreaddons
+           ki18n
+           kiconthemes
+           kio
+           knotifications
+           kwidgetsaddons
+           kxmlgui
+           qtbase-5))
     (home-page "https://kde.org/applications/system/kdk")
     (synopsis "View Disk Usage")
     (description "KDiskFree displays the available file devices (hard drive
@@ -919,17 +895,9 @@ unmount drives and view them in a file manager.")
                 "0fx17s6fj1pxl1mgfrqhchk8sihkbji1x8y3nhb1r0971wzd1nsc"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("perl" ,perl)
-       ("python" ,python)
-       ("qttools" ,qttools)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules perl python qttools kdoctools))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("karchive" ,karchive)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("kdbusaddons" ,kdbusaddons)))
+     (list qtbase-5 karchive ki18n kio kdbusaddons))
     ;; Note: The 'hotshot2calltree' and 'pprof2calltree' scripts depend on
     ;; Python and PHP, respectively.  These are optional and we ignore them
     ;; for now.
@@ -961,39 +929,95 @@ Python, PHP, and Perl.")
        (base32 "1xsrrvhwjwi5aajcaxydmzc69i4yx6shs8ly8vr85njc188ycg13"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("karchive" ,karchive)
-       ("kbookmarks" ,kbookmarks)
-       ("kcodecs" ,kcodecs)
-       ("kcompletion" ,kcompletion)
-       ("kconfigwidgets" ,kconfigwidgets)
-       ("kcrash" ,kcrash)
-       ("kdbusaddons" ,kdbusaddons)
-       ("kdeclarative" ,kdeclarative)
-       ("kdnssd" ,kdnssd)
-       ("kglobalaccel" ,kglobalaccel)
-       ("kguiaddons" ,kguiaddons)
-       ("ki18n" ,ki18n)
-       ("kiconthemes" ,kiconthemes)
-       ;("kio" ,kio)
-       ("kitemviews" ,kitemviews)
-       ("kjobwidgets" ,kjobwidgets)
-       ("knewstuff" ,knewstuff)
-       ("kservice" ,kservice)
-       ("ktextwidgets" ,ktextwidgets)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("kxmlgui" ,kxmlgui)
-       ("libsndfile" ,libsndfile)
-       ("openal" ,openal)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list karchive
+           kbookmarks
+           kcodecs
+           kcompletion
+           kconfigwidgets
+           kcrash
+           kdbusaddons
+           kdeclarative
+           kdnssd
+           kglobalaccel
+           kguiaddons
+           ki18n
+           kiconthemes
+           ;("kio" ,kio)
+           kitemviews
+           kjobwidgets
+           knewstuff
+           kservice
+           ktextwidgets
+           kwidgetsaddons
+           kxmlgui
+           libsndfile
+           openal
+           qtbase-5
+           qtdeclarative
+           qtsvg))
     (home-page "https://games.kde.org/")
     (synopsis "Runtime library for kdegames")
     (description "Runtime library for kdegames")
     (license (list license:gpl2+  license:fdl1.2+))))
 
+(define-public marble-qt
+  (package
+    (name "marble-qt")
+    (version "21.08.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://invent.kde.org/education/marble.git/")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "15gqym45z0gjzdc4ypfj0fki96c3dad4ygsi6lfr8yvwsx8swrb6"))))
+    (build-system qt-build-system)
+    (arguments
+     ;; FIXME: libmarblewidget-qt5.so.28 not found.  Also enable the
+     ;; corresponding configure flag to build tests.
+     `(#:tests? #f
+       #:configure-flags
+       (list "-DBUILD_MARBLE_TOOLS=YES" ; file conversion tools
+             "-DBUILD_TOUCH=YES"
+             "-DBUILD_MARBLE_TESTS=FALSE")))
+    (native-inputs
+     (list extra-cmake-modules qttools))
+    ;; One optional dependency missing: libwlocate.
+    (inputs
+     (list gpsd
+           kcoreaddons
+           kcrash
+           kdoctools
+           ki18n
+           kio
+           knewstuff
+           kparts
+           krunner
+           kwallet
+           perl
+           phonon
+           protobuf
+           qtbase-5
+           qtdeclarative
+           qtlocation
+           qtserialport
+           qtsvg
+           ;; ("qtwebengine" ,qtwebengine) ; FIXME: not found by CMake
+           shapelib
+           shared-mime-info
+           zlib))
+    (home-page "https://marble.kde.org/")
+    (synopsis "Virtual globe and world atlas")
+    (description "Marble is similar to a desktop globe.  At closer scale it
+becomes a world atlas, while OpenStreetMap takes the user to street level.  It
+supports searching for places of interest, viewing Wikipedia articles,
+creating routes by drag and drop and more.")
+    (license license:lgpl2.1+)))
+
 (define-public okular
   (package
     (name "okular")
@@ -1014,46 +1038,44 @@ Python, PHP, and Perl.")
        #:configure-flags
        (list "-DBUILD_TESTING=OFF")))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)
-       ("pkg-config" ,pkg-config)))
+     (list extra-cmake-modules kdoctools pkg-config))
     (inputs
-     `(("ebook-tools" ,ebook-tools)
-       ("breeze-icons" ,breeze-icons)
-       ("discount" ,discount)
-       ("djvulibre" ,djvulibre)
-       ("kactivities" ,kactivities)
-       ("khtml" ,khtml)
-       ("chmlib" ,chmlib)
-       ("kdegraphics-mobipocket" ,kdegraphics-mobipocket)
-       ("karchive" ,karchive)
-       ("kbookmarks" ,kbookmarks)
-       ("kcompletion" ,kcompletion)
-       ("kconfig" ,kconfig)
-       ("qtbase" ,qtbase-5)
-       ("libjpeg-turbo" ,libjpeg-turbo)
-       ("libtiff" ,libtiff)
-       ("kirigami" ,kirigami)
-       ("purpose" ,purpose)
-       ("freetype" ,freetype)
-       ("kiconthemes" ,kiconthemes)
-       ("kio" ,kio)
-       ("kparts" ,kparts)
-       ("kpty" ,kpty)
-       ("qtspeech" ,qtspeech)
-       ("kwallet" ,kwallet)
-       ("kwindowsystem" ,kwindowsystem)
-       ("libkexiv2" ,libkexiv2)
-       ("libspectre" ,libspectre)
-       ("libzip" ,libzip)
-       ("phonon" ,phonon)
-       ("poppler-qt5" ,poppler-qt5)
-       ("qca" ,qca)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)
-       ("threadweaver" ,threadweaver)
-       ("kcrash" ,kcrash)
-       ("kjs" ,kjs)))
+     (list ebook-tools
+           breeze-icons
+           discount
+           djvulibre
+           kactivities
+           khtml
+           chmlib
+           kdegraphics-mobipocket
+           karchive
+           kbookmarks
+           kcompletion
+           kconfig
+           qtbase-5
+           libjpeg-turbo
+           libtiff
+           kirigami
+           purpose
+           freetype
+           kiconthemes
+           kio
+           kparts
+           kpty
+           qtspeech
+           kwallet
+           kwindowsystem
+           libkexiv2
+           libspectre
+           libzip
+           phonon
+           poppler-qt5
+           qca
+           qtdeclarative
+           qtsvg
+           threadweaver
+           kcrash
+           kjs))
     (home-page "https://kde.org/applications/graphics/okular/")
     (synopsis "Document viewer")
     (description
@@ -1075,11 +1097,9 @@ a variety of formats, including PDF, PostScript, DejaVu, and EPub.")
                 "1smjvblx0jcv3afs2sr4qcmvhqd44iw24hvr9fppa3nxhrmjwmlk"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("kdoctools" ,kdoctools)))
+     (list extra-cmake-modules kdoctools))
     (inputs
-     `(("gettext" ,gettext-minimal)
-       ("qtbase" ,qtbase-5)))
+     (list gettext-minimal qtbase-5))
     (home-page "https://kde.org/applications/development")
     (synopsis "Tools for translating DocBook XML files with Gettext")
     (description "This is a collection of tools that facilitate translating
@@ -1101,10 +1121,9 @@ PO template files.")
         (base32 "0fm880lp9g60zgrkjyh4jxws6x0s77l9ia4f8pza3w8sxcbbswk5"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kio" ,kio)
-       ("qtbase" ,qtbase-5)))
+     (list kio qtbase-5))
     (home-page "https://apps.kde.org/en/kdegraphics_mobipocket")
     (synopsis "KDE thumbnailer for Mobipocket files")
     (description "This package provides a KDE plugin that shows thumbnails of
@@ -1124,10 +1143,9 @@ Mobipocket e-books in Dolphin and other KDE apps.")
         (base32 "0k0iinf7s8qlk3fwvq7iic1b4zn2gm65rfd58q7d3wb1i1j2hjjk"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("exiv2" ,exiv2)
-       ("qtbase" ,qtbase-5)))
+     (list exiv2 qtbase-5))
     (home-page "https://invent.kde.org/graphics/libkexiv2")
     (synopsis "Manipulate the metadata of images")
     (description "Libkexiv2 wraps the Exiv2 library, allowing to manipulate
@@ -1147,13 +1165,9 @@ picture metadata as EXIF/IPTC and XMP.")
         (base32 "1qck5jyc4psslpibhki8sz8aj0hsnx8z791vzyn10lmdzn71vx8c"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     (list extra-cmake-modules))
     (inputs
-     `(("kdbusaddons" ,kdbusaddons)
-       ("kdnssd" ,kdnssd)
-       ("ki18n" ,ki18n)
-       ("kio" ,kio)
-       ("qtbase" ,qtbase-5)))
+     (list kdbusaddons kdnssd ki18n kio qtbase-5))
     (home-page "https://kde.org/applications/internet/org.kde.zeroconf_ioslave")
     (synopsis "DNS-SD Service Discovery Monitor")
     (description "Adds an entry to Dolphin's Network page to show local
@@ -1178,20 +1192,17 @@ or Bonjour by other projects).")
         (base32 "1dwx9fscnfp3zsxdir774skn8xvad2dvscnaaw3ji6mrnkmm6bss"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)
-       ;; For optional component "Survey target expression parser"
-       ("bison" ,bison)
-       ("flex" ,flex)
-       ;; For syntax checking and unit tests of PHP server code
-       ;;("php" ,php)
-       ;;("phpunit" ,phpunit)
-       ))
+     (list extra-cmake-modules
+           qttools
+           ;; For optional component "Survey target expression parser"
+           bison
+           flex
+           ;; For syntax checking and unit tests of PHP server code
+           ;;("php" ,php)
+           ;;("phpunit" ,phpunit)
+           ))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtcharts" ,qtcharts)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtsvg" ,qtsvg)))
+     (list qtbase-5 qtcharts qtdeclarative qtsvg))
     (arguments
      `(#:tests? #f))  ;; 4/17 fail
     (home-page "https://api.kde.org/frameworks/kuserfeedback/html/")
diff --git a/gnu/packages/kerberos.scm b/gnu/packages/kerberos.scm
index 739b0169dc..bf87a066a5 100644
--- a/gnu/packages/kerberos.scm
+++ b/gnu/packages/kerberos.scm
@@ -10,7 +10,7 @@
 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -57,8 +57,7 @@
 (define-public mit-krb5
   (package
     (name "mit-krb5")
-    (replacement mit-krb5-1.19.2)
-    (version "1.19.1")
+    (version "1.19.2")
     (source (origin
               (method url-fetch)
               (uri (list
@@ -71,14 +70,12 @@
               (patches (search-patches "mit-krb5-hurd.patch"))
               (sha256
                (base32
-                "02xjpsfy84l6v7vjlxzhrl6mx2zrmxz0v01w2j33bv73nxzgh5ps"))))
+                "0snz1jm2w4dkk65zcz953jmmv9mqa30fanch2bk8r3rs9vp3yi8h"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("bison" ,bison)
-       ("perl" ,perl)
-       ("tcl" ,tcl)))                   ;required for some tests
+     (list bison perl tcl))                   ;required for some tests
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (arguments
      `(;; XXX: On 32-bit systems, 'kdb5_util' hangs on an fcntl/F_SETLKW call
        ;; while running the tests in 'src/tests'. Also disable tests when
@@ -121,23 +118,6 @@ cryptography.")
     (home-page "https://web.mit.edu/kerberos/")
     (properties '((cpe-name . "kerberos")))))
 
-(define mit-krb5-1.19.2
-  (package
-    (inherit mit-krb5)
-    (version "1.19.2")
-    (source (origin
-              (inherit (package-source mit-krb5))
-              (uri (list
-                    (string-append "https://web.mit.edu/kerberos/dist/krb5/"
-                                   (version-major+minor version)
-                                   "/krb5-" version ".tar.gz")
-                    (string-append "https://kerberos.org/dist/krb5/"
-                                   (version-major+minor version)
-                                   "/krb5-" version ".tar.gz")))
-              (sha256
-               (base32
-                "0snz1jm2w4dkk65zcz953jmmv9mqa30fanch2bk8r3rs9vp3yi8h"))))))
-
 (define-public shishi
   (package
     (name "shishi")
@@ -167,14 +147,14 @@ cryptography.")
              (("^install-data-hook:")
               "install-data-hook:\nx:\n"))
             #t)))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
-     `(("gnutls" ,gnutls)
-       ("libidn" ,libidn)
-       ("linux-pam" ,linux-pam-1.2)
-       ("zlib" ,zlib)
-       ("libgcrypt" ,libgcrypt)
-       ("libtasn1" ,libtasn1)))
+     (list gnutls
+           libidn
+           linux-pam-1.2
+           zlib
+           libgcrypt
+           libtasn1))
     (home-page "https://www.gnu.org/software/shishi/")
     (synopsis "Implementation of the Kerberos 5 network security system")
     (description
@@ -204,8 +184,7 @@ After installation, the system administrator should generate keys using
                   (substitute* "configure"
                     (("User=.*$") "User=Guix\n")
                     (("Host=.*$") "Host=GNU")
-                    (("Date=.*$") "Date=2019\n"))
-                  #t))))
+                    (("Date=.*$") "Date=2019\n"))))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -249,17 +228,21 @@ After installation, the system administrator should generate keys using
                                (("ac_cv_prog_COMPILE_ET=\\$\\{with_cross_tools\\}compile_et")
                                 "ac_cv_PROG_COMPILE_ET=compile_et")))
                            '())
-                     (substitute* '("appl/afsutil/pagsh.c" "appl/su/su.c")
-                       (("/bin/sh")
-                        (search-input-file inputs "bin/sh"))
-                       ;; Use the cross-compiled bash instead of the
-                       ;; native bash (XXX shouldn't _PATH_BSHELL point
-                       ;; to a cross-compiled bash?).
-                       (("_PATH_BSHELL")
-                        (string-append
-                         "\"" (search-input-file inputs "bin/sh") "\"")))
-                     (substitute* '("tools/Makefile.in")
-                       (("/bin/sh") (which "sh")))))
+                     ,@(if (%current-target-system)
+                           '((substitute* '("appl/afsutil/pagsh.c" "appl/su/su.c")
+                               (("/bin/sh")
+                                (search-input-file inputs "bin/sh"))
+                               ;; Use the cross-compiled bash instead of the
+                               ;; native bash (XXX shouldn't _PATH_BSHELL point
+                               ;; to a cross-compiled bash?).
+                               (("_PATH_BSHELL")
+                                (string-append
+                                 "\"" (search-input-file inputs "bin/sh") "\"")))
+                             (substitute* '("tools/Makefile.in")
+                               (("/bin/sh") (which "sh"))))
+                           '((substitute* '("appl/afsutil/pagsh.c"
+                                            "tools/Makefile.in")
+                               (("/bin/sh") (which "sh")))))))
                   (add-before 'check 'pre-check
                     (lambda _
                       ;; For 'getxxyyy-test'.
@@ -269,21 +252,19 @@ After installation, the system administrator should generate keys using
                       ;; FIXME: figure out why 'kdc' tests fail.
                       (with-output-to-file "tests/db/have-db.in"
                         (lambda ()
-                          (format #t "#!~a~%exit 1~%" (which "sh"))))
-                      #t)))
+                          (format #t "#!~a~%exit 1~%" (which "sh")))))))
        ;; Tests fail when run in parallel.
        #:parallel-tests? #f))
-    (native-inputs `(("e2fsprogs" ,e2fsprogs)     ;for 'compile_et'
-                     ("texinfo" ,texinfo)
-                     ("unzip" ,unzip)             ;for tests
-                     ,@(if (%current-target-system)
-                           `(("perl" ,perl))
-                           '())))
-    (inputs `(("readline" ,readline)
-              ("bash-minimal" ,bash-minimal)
-              ("bdb" ,bdb)
-              ("e2fsprogs" ,e2fsprogs)            ;for libcom_err
-              ("sqlite" ,sqlite)))
+    (native-inputs (list e2fsprogs ;for 'compile_et'
+                         texinfo
+                         unzip ;for tests
+                         perl))
+    (inputs (list readline
+                  bash-minimal
+                  bdb
+                  e2fsprogs ;for libcom_err
+                  mit-krb5
+                  sqlite))
     (home-page "http://www.h5l.org/")
     (synopsis "Kerberos 5 network authentication")
     (description
diff --git a/gnu/packages/key-mon.scm b/gnu/packages/key-mon.scm
index 884bef042f..e7b549d184 100644
--- a/gnu/packages/key-mon.scm
+++ b/gnu/packages/key-mon.scm
@@ -44,9 +44,7 @@
      `(#:python ,python-2                    ;uses the Python 2 'print' syntax
        #:tests? #f))                         ;no tests
     (inputs
-     `(("python2-xlib" ,python2-xlib)
-       ("python2-pygtk" ,python2-pygtk)
-       ("python2-rsvg" ,python2-rsvg)))
+     (list python2-xlib python2-pygtk python2-rsvg))
     (home-page "https://code.google.com/p/key-mon")
     (synopsis "Show keyboard and mouse status")
     (description
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index 0ed5d829fb..fc8c5b124e 100644
--- a/gnu/packages/kodi.scm
+++ b/gnu/packages/kodi.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -256,10 +257,8 @@ generator library for C++.")
     (arguments
      '(#:configure-flags '("SH=sh")))
     (native-inputs
-     `(("ghostscript" ,ghostscript) ; ps2pdf
-       ("groff" ,groff)
-       ("libtool" ,libtool)
-       ("which" ,which)))
+     (list ghostscript ; ps2pdf
+           groff libtool which))
     (synopsis "fuzzy comparison of strings")
     (description
      "The fstrcmp project provides a library that is used to make fuzzy
@@ -403,7 +402,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
        ("ffmpeg" ,ffmpeg)
        ("flac" ,flac)
        ("flatbuffers" ,flatbuffers)
-       ("fmt" ,fmt)
+       ("fmt" ,fmt-7)
        ("fontconfig" ,fontconfig)
        ("freetype" ,freetype)
        ("fribidi" ,fribidi)
@@ -498,9 +497,7 @@ plug-in system.")
                 (file-name (string-append name "-" version "-checkout"))))
       (build-system trivial-build-system)
       (inputs
-       `(("bash"        ,bash)
-         ("curl"        ,curl)
-         ("mps-youtube" ,mps-youtube)))
+       (list bash curl mps-youtube))
       (arguments
        `(#:modules ((guix build utils))
          #:builder
@@ -508,8 +505,8 @@ plug-in system.")
            (use-modules (guix build utils))
            (copy-recursively (assoc-ref %build-inputs "source") ".")
            (substitute* "kodi-cli"
-             (("/bin/bash") (string-append (assoc-ref %build-inputs "bash")
-                                           "/bin/bash"))
+             (("/bin/bash")
+              (search-input-file %build-inputs "/bin/bash"))
              (("output=\\$\\((curl)" all curl)
               (string-append "output=$("
                              (assoc-ref %build-inputs "curl")
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index 83838b5689..6a0f1af2fa 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -194,7 +194,7 @@
        ("xkbcommon" ,libxkbcommon)
        ("xklavier" ,libxklavier)))
     (propagated-inputs
-     `(("glib" ,glib)))
+     (list glib))
     (synopsis "Lightweight input method framework")
     (description "Nimf is a lightweight, fast and extensible input method
 framework.  This package provides a fork of the original nimf project, that
@@ -321,8 +321,7 @@ Random Cage Fighting Birds, Cool Music etc.")
        ("python" ,python-wrapper)
        ("texinfo" ,texinfo)))
     (inputs
-     `(("ncurses" ,ncurses)
-       ("sqlite" ,sqlite)))
+     (list ncurses sqlite))
     (synopsis "Chinese phonetic input method")
     (description "Chewing is an intelligent phonetic (Zhuyin/Bopomofo) input
 method, one of the most popular choices for Traditional Chinese users.")
@@ -410,7 +409,7 @@ Marburg.")
        ("makeinfo" ,texinfo)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("libxml2" ,libxml2)))
+     (list libxml2))
     (propagated-inputs
      `(("liblouis" ,liblouis)
        ("liblouis:bin" ,liblouis "bin")))
@@ -474,9 +473,9 @@ languages.")
          "015ximzdp42v824llwlg2pd77vd0d172lb4xs55q9f9zhqf6s5qx"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-lingua-en-words2nums" ,perl-lingua-en-words2nums)))
+     (list perl-lingua-en-words2nums))
     (home-page "https://metacpan.org/release/Lingua-EN-FindNumber")
-    (synopsis "Locate (written) numbers in English text ")
+    (synopsis "Locate (written) numbers in English text")
     (description "This module provides a regular expression for finding
 numbers in English text.  It also provides functions for extracting and
 manipulating such numbers.")
@@ -495,7 +494,7 @@ manipulating such numbers.")
         (base32
          "0j8d1f1wvmgc11d71pc8xp8fv5a1nb2yfw1dgd19xhscn1klpvzw"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-module-build" ,perl-module-build)))
+    (native-inputs (list perl-module-build))
     (home-page "https://metacpan.org/release/Lingua-EN-Inflect")
     (synopsis "Convert singular to plural")
     (description "Lingua::EN::Inflect provides plural inflections,
@@ -519,7 +518,7 @@ provided.  Where appropriate, \"classical\" variants (for example: \"brother\"
          "1gxccynkaqav43ww43jp4rzkyr36x97jd03yb5f6yx0jhn1k7yv6"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-lingua-en-inflect" ,perl-lingua-en-inflect)))
+     (list perl-lingua-en-inflect))
     (home-page "https://metacpan.org/release/Lingua-EN-Inflect-Number")
     (synopsis "Force number of words to singular or plural")
     (description "This module extends the functionality of Lingua::EN::Inflect
@@ -541,13 +540,11 @@ converting a word to singular or plural.")
          "1a6y1l2pjim2242wcpgz066di4pbzfgsjjdl7vg5a5wzm48qj1am"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-nowarnings" ,perl-test-nowarnings)))
+     (list perl-test-nowarnings))
     (propagated-inputs
-     `(("perl-lingua-en-findnumber" ,perl-lingua-en-findnumber)
-       ("perl-lingua-en-inflect" ,perl-lingua-en-inflect)
-       ("perl-lingua-en-inflect-number" ,perl-lingua-en-inflect-number)
-       ("perl-lingua-en-number-isordinal" ,perl-lingua-en-number-isordinal)
-       ("perl-lingua-en-tagger" ,perl-lingua-en-tagger)))
+     (list perl-lingua-en-findnumber perl-lingua-en-inflect
+           perl-lingua-en-inflect-number perl-lingua-en-number-isordinal
+           perl-lingua-en-tagger))
     (home-page "https://metacpan.org/release/Lingua-EN-Inflect-Phrase")
     (synopsis "Inflect short English phrases")
     (description "This module attempts to pluralize or singularize short
@@ -568,10 +565,9 @@ English phrases.")
          "1mhqjvh2ad30gjab5b3a6mbr4aysyrscp4wp42yy5x6001a6km98"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-try-tiny" ,perl-try-tiny)
-       ("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-try-tiny perl-test-fatal))
     (propagated-inputs
-     `(("perl-lingua-en-findnumber" ,perl-lingua-en-findnumber)))
+     (list perl-lingua-en-findnumber))
     (home-page "https://metacpan.org/release/Lingua-EN-Number-IsOrdinal")
     (synopsis "Detect if English number is ordinal or cardinal")
     (description "This module will tell you if a number, either in words or as
@@ -592,10 +588,8 @@ digits, is a cardinal or ordinal number.")
          "0nrnkvsf9f0a7lp82sanmy89ms2nqq1lvjqicvsagsvzp513bl5b"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-memoize-expirelru" ,perl-memoize-expirelru)
-       ("perl-lingua-stem" ,perl-lingua-stem)
-       ("perl-html-parser" ,perl-html-parser)
-       ("perl-html-tagset" ,perl-html-tagset)))
+     (list perl-memoize-expirelru perl-lingua-stem perl-html-parser
+           perl-html-tagset))
     (home-page "https://metacpan.org/release/Lingua-EN-Tagger")
     (synopsis "Part-of-speech tagger for English natural language processing")
     (description "This module is a probability based, corpus-trained tagger
@@ -661,16 +655,16 @@ Moreira, V. and Huyck, C.")
          "12avh2mnnc7llmmshrr5bgb473fvydxnlqrqbl2815mf2dp4pxcg"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-lingua-pt-stemmer" ,perl-lingua-pt-stemmer)
-       ("perl-lingua-stem-fr" ,perl-lingua-stem-fr)
-       ("perl-lingua-stem-it" ,perl-lingua-stem-it)
-       ("perl-lingua-stem-ru" ,perl-lingua-stem-ru)
-       ("perl-lingua-stem-snowball-da" ,perl-lingua-stem-snowball-da)
-       ("perl-snowball-norwegian" ,perl-snowball-norwegian)
-       ("perl-snowball-swedish" ,perl-snowball-swedish)
-       ("perl-text-german" ,perl-text-german)))
+     (list perl-lingua-pt-stemmer
+           perl-lingua-stem-fr
+           perl-lingua-stem-it
+           perl-lingua-stem-ru
+           perl-lingua-stem-snowball-da
+           perl-snowball-norwegian
+           perl-snowball-swedish
+           perl-text-german))
     (home-page "https://metacpan.org/release/Lingua-Stem")
     (synopsis "Stemming of words in various languages")
     (description "This routine applies stemming algorithms to its parameters,
@@ -767,7 +761,7 @@ Lingua::Stem::Snowball::Se.")
         (base32
          "0675v45bbsh7vr7kpf36xs2q79g02iq1kmfw22h20xdk4rzqvkqx"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-module-build" ,perl-module-build)))
+    (native-inputs (list perl-module-build))
     (home-page "https://metacpan.org/release/Snowball-Norwegian")
     (synopsis "Porters stemming algorithm for Norwegian")
     (description "Lingua::Stem::Snowball::No is a perl port of the norwegian
@@ -787,7 +781,7 @@ stemmer at http://snowball.tartarus.org.")
         (base32
          "0agwc12jk5kmabnpsplw3wf4ii5w1zb159cpin44x3srb0sr5apg"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-module-build" ,perl-module-build)))
+    (native-inputs (list perl-module-build))
     (home-page "https://metacpan.org/release/Snowball-Swedish")
     (synopsis "Porters stemming algorithm for Swedish")
     (description "Lingua::Stem::Snowball::Se is a perl port of the swedish
@@ -808,9 +802,8 @@ stemmer at http://snowball.sourceforge.net.")
          "12nw7h2yiybhdw0vnnpc7bif8ylhsn6kqf6s39dsrf9h54iq9yrs"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-lingua-en-inflect-phrase" ,perl-lingua-en-inflect-phrase)
-       ("perl-text-unidecode" ,perl-text-unidecode)
-       ("perl-namespace-clean" ,perl-namespace-clean)))
+     (list perl-lingua-en-inflect-phrase perl-text-unidecode
+           perl-namespace-clean))
     (home-page "https://metacpan.org/release/String-ToIdentifier-EN")
     (synopsis "Convert strings to English program identifiers")
     (description "This module provides a utility method, \"to_identifier\" for
@@ -892,10 +885,9 @@ extensions in EXTS."
                 "candidates"))
              #t)))))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("swig" ,swig)))
+     (list pkg-config swig))
     (home-page "https://tegaki.github.io/")
     (synopsis
      "Chinese and Japanese Handwriting Recognition (Recognition engine)")
@@ -945,8 +937,7 @@ suitable for both the desktop and mobile devices.")
     (inputs '())
     (native-inputs '())
     (propagated-inputs
-     `(("python2-tegaki-wagomu" ,python2-tegaki-wagomu)
-       ("python2-zinnia" ,python2-zinnia)))
+     (list python2-tegaki-wagomu python2-zinnia))
     (synopsis
      "Chinese and Japanese Handwriting Recognition (Base python library)")
     (license (list license:gpl2+        ; all files except...
@@ -981,12 +972,10 @@ suitable for both the desktop and mobile devices.")
                   (search-input-file inputs
                                      (string-append "/lib/" so))))))))))
     (inputs ; required for sending key strokes
-     `(("libx11" ,libx11)
-       ("libxtst" ,libxtst)))
+     (list libx11 libxtst))
     (native-inputs '()) ; override inherited inputs
     (propagated-inputs
-     `(("python2-pygtk" ,python2-pygtk)
-       ("python2-tegaki-python" ,python2-tegaki-python)))
+     (list python2-pygtk python2-tegaki-python))
     (synopsis "Chinese and Japanese Handwriting Recognition (Base UI library)")
     (license license:gpl2+)))
 
@@ -1008,7 +997,7 @@ suitable for both the desktop and mobile devices.")
      (substitute-keyword-arguments (package-arguments python2-tegaki-wagomu)
        ((#:phases _) '%standard-phases)))
     (inputs
-     `(("python2-tegaki-pygtk" ,python2-tegaki-pygtk)))
+     (list python2-tegaki-pygtk))
     ;; override inherited inputs
     (native-inputs '())
     (propagated-inputs '())
@@ -1097,7 +1086,7 @@ suitable for both the desktop and mobile devices.")
     ;; override inherited inputs
     (inputs '())
     (native-inputs
-     `(("python2-tegaki-tools" ,python2-tegaki-tools)))
+     (list python2-tegaki-tools))
     (propagated-inputs '())
     (native-search-paths
      (list (search-path-specification
@@ -1362,7 +1351,7 @@ noun phrases, verb phrases, etc.).")
        ("jack" ,jack-1)
        ("publesaudio" ,pulseaudio)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.fon.hum.uva.nl/praat/")
     (synopsis "Doing phonetics by computer")
     (description "Praat is a tool to perform phonetics tasks.  It can do speech
diff --git a/gnu/packages/lean.scm b/gnu/packages/lean.scm
index cc593291fd..6ac7f1668a 100644
--- a/gnu/packages/lean.scm
+++ b/gnu/packages/lean.scm
@@ -40,7 +40,7 @@
                 "09mklc1p6ms1jayg2f89hqfmhca3h5744lli936l38ypn1d00sxx"))))
     (build-system cmake-build-system)
     (inputs
-     `(("gmp" ,gmp)))
+     (list gmp))
     (arguments
      `(#:build-type "Release"           ; default upstream build type
        ;; XXX: Test phases currently fail on 32-bit sytems.
diff --git a/gnu/packages/lego.scm b/gnu/packages/lego.scm
index 5b72c0e0be..19a4a5eba0 100644
--- a/gnu/packages/lego.scm
+++ b/gnu/packages/lego.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2017, 2019 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -100,7 +101,7 @@ restrictions that stem from limitations of the standard RCX firmware.")
 (define-public leocad
   (package
     (name "leocad")
-    (version "19.07.1")
+    (version "21.06")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -109,14 +110,12 @@ restrictions that stem from limitations of the standard RCX firmware.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "02kv1m18g6s4dady9jv4sjivfkrp192bmdw2a3d9lzlp60zks0p2"))))
+                "1ifbxngkbmg6d8vv08amxbnfvlyjdwzykrjp98lbwvgb0b843ygq"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("qttools" ,qttools)))           ; for lrelease
+     (list qttools))           ; for lrelease
     (inputs
-     `(("mesa" ,mesa)
-       ("qtbase" ,qtbase-5)
-       ("zlib" ,zlib)))
+     (list mesa qtbase-5 zlib))
     (arguments
      '(#:tests? #f
        #:phases
diff --git a/gnu/packages/less.scm b/gnu/packages/less.scm
index 334d5864d9..e23b5d0c24 100644
--- a/gnu/packages/less.scm
+++ b/gnu/packages/less.scm
@@ -45,7 +45,7 @@
        (sha256
         (base32 "044fl3izmsi8n1vqzsqdp65q0qyyn5kmsg4sk7id0mxzx15zbbba"))))
     (build-system gnu-build-system)
-    (inputs `(("ncurses" ,ncurses)))
+    (inputs (list ncurses))
     (home-page "https://www.gnu.org/software/less/")
     (synopsis "Paginator for terminals")
     (description
@@ -59,7 +59,7 @@ text editors.")
 (define-public lesspipe
   (package
     (name "lesspipe")
-    (version "1.86")
+    (version "1.91")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -68,7 +68,7 @@ text editors.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "14qsfwvsqn6r0najpfh5p68by4jwlg2hj4250cfi1hx3j9i5nhgn"))))
+                "04dqvq6j4h451xqbvxzv6pv679hzzfm39pdm5vg7h3r45gzg0kps"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no tests
@@ -79,8 +79,7 @@ text editors.")
                         (delete-file "Makefile") ; force generating
                         (invoke "./configure"
                                 (string-append "--prefix=" out)
-                                "--yes")
-                        #t)))
+                                "--yes"))))
                   (add-before 'install 'patch-tput-and-file
                     (lambda* (#:key inputs #:allow-other-keys)
                       (substitute* "lesspipe.sh"
@@ -91,9 +90,8 @@ text editors.")
                          (string-append (search-input-file inputs "/bin/file")
                                         " -"))))))))
     (inputs
-     `(("file" ,file)
-       ("ncurses" ,ncurses)))  ; for tput
-    (native-inputs `(("perl" ,perl)))
+     (list file ncurses))  ; for tput
+    (native-inputs (list perl))
     (home-page "https://github.com/wofr06/lesspipe")
     (synopsis "Input filter for less")
     (description "To browse files, the excellent viewer @code{less} can be
diff --git a/gnu/packages/lesstif.scm b/gnu/packages/lesstif.scm
index 6326cd3a22..8f017f41be 100644
--- a/gnu/packages/lesstif.scm
+++ b/gnu/packages/lesstif.scm
@@ -39,10 +39,9 @@
             "1qzpxjjf7ri1jzv71mvq5m9g8hfaj5yzwp30rwxlm6n2b24a6jpb"))))
     (build-system gnu-build-system)
     (propagated-inputs
-     `(("printproto" ,printproto)))
+     (list printproto))
     (inputs
-      `(("libxext" ,libxext)
-        ("libxt" ,libxt)))
+      (list libxext libxt))
     (home-page "http://lesstif.sourceforge.net/")
     (synopsis "Clone of the Motif toolkit for the X window system")
     (description "Clone of the Motif toolkit for the X window system.")
diff --git a/gnu/packages/libcanberra.scm b/gnu/packages/libcanberra.scm
index e263ba2efc..337aa6840a 100644
--- a/gnu/packages/libcanberra.scm
+++ b/gnu/packages/libcanberra.scm
@@ -82,7 +82,7 @@
        ("udev" ,eudev)
        ("sound-theme-freedesktop" ,sound-theme-freedesktop)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -122,7 +122,7 @@ null) and is designed to be portable.")
                (base32
                 "054abv4gmfk9maw93fis0bf605rc56dah7ys5plc4pphxqh8nlfb"))))
     (build-system gnu-build-system)
-    (native-inputs `(("intltool" ,intltool)))
+    (native-inputs (list intltool))
     (synopsis "Audio samples for use as a desktop sound theme")
     (description
      "This package provides audio samples that can be used by libcanberra as
@@ -149,7 +149,7 @@ sounds for various system events.")
     (arguments
      `(#:tests? #f)) ;No tests included.
     (propagated-inputs
-     `(("libcanberra" ,libcanberra)))
+     (list libcanberra))
     (synopsis "Ctypes wrapper for the libcanberra API")
     (description
      "Pycanberra is a basic Python wrapper for libcanberra.")
diff --git a/gnu/packages/libedit.scm b/gnu/packages/libedit.scm
index e02c72fdac..f04d3aafe4 100644
--- a/gnu/packages/libedit.scm
+++ b/gnu/packages/libedit.scm
@@ -40,7 +40,7 @@
        (base32 "0wch48nml28jj6ild889745dsg2agm7mpvrmbl1gi98nw6vjrf6v"))))
     (build-system gnu-build-system)
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (home-page "https://thrysoee.dk/editline/")
     (synopsis "NetBSD Editline library")
     (description
diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm
index 0ca903f5c2..b3a5cd915e 100644
--- a/gnu/packages/libevent.scm
+++ b/gnu/packages/libevent.scm
@@ -28,6 +28,7 @@
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
   #:use-module (gnu packages autotools)
@@ -59,7 +60,7 @@
     (inputs
      `(("python" ,python-wrapper)))     ;for 'event_rpcgen.py'
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (home-page "https://libevent.org/")
     (synopsis "Event notification library")
     (description
@@ -116,12 +117,9 @@ limited support for fork events.")
      '(#:configure-flags '("--disable-static")
        ;; XXX: Some tests want /dev/tty, attempt to make connections, etc.
        #:tests? #f))
-    (native-inputs `(("autoconf" ,autoconf)
-                     ("automake" ,automake)
-                     ("libtool" ,libtool)
-
-                     ;; libuv.pc is installed only when pkg-config is found.
-                     ("pkg-config" ,pkg-config)))
+    (native-inputs (list autoconf automake libtool
+                         ;; libuv.pc is installed only when pkg-config is found.
+                         pkg-config))
     (home-page "https://github.com/libuv/libuv")
     (synopsis "Library for asynchronous I/O")
     (description
@@ -140,16 +138,37 @@ resolution, asynchronous file system operations, and threading primitives.")
   (package
     (inherit libuv)
     (name "libuv")
-    (version "1.40.0")
+    (version "1.42.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://dist.libuv.org/dist/v" version
                                   "/libuv-v" version ".tar.gz"))
               (sha256
                (base32
-                "1551k3ab27vbg9517l9b4iqbramwxdkwgpf53knas05cbfwhvab1"))))
+                "0wpb9pz3r8nksnrf4zbixj2kk9whr7abi45ydrwyv2js2ljrc4j3"))))
     (properties '((hidden? . #t)))))
 
+(define-public libuv-julia
+  (let ((commit "fb3e3364c33ae48c827f6b103e05c3f0e78b79a9")
+        (revision "3"))
+    ;; When upgrading Julia, also upgrade this.  Get the commit from
+    ;; https://github.com/JuliaLang/julia/blob/v1.6.1/deps/libuv.version
+    (package
+      (inherit libuv)
+      (name "libuv-julia")
+      (version (git-version "2.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/JuliaLang/libuv")
+                       (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1kqpn19d20aka30h6q5h8lnzyp0vw0xzgx0wm4w2r5j6yf76m2hr"))))
+      (home-page "https://github.com/JuliaLang/libuv")
+      (properties '((hidden? . #t))))))
+
 (define-public perl-anyevent
   (package
     (name "perl-anyevent")
@@ -163,15 +182,15 @@ resolution, asynchronous file system operations, and threading primitives.")
                 "11drlj8r02czhjgzkb39axnr8zzyp506r043xfmf93q9kilfmgjh"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-canary-stability" ,perl-canary-stability)))
+     (list perl-canary-stability))
     (propagated-inputs
-     `(("perl-async-interrupt" ,perl-async-interrupt)
-       ("perl-ev" ,perl-ev)
-       ("perl-guard" ,perl-guard)
-       ("perl-json" ,perl-json)
-       ("perl-json-xs" ,perl-json-xs)
-       ("perl-net-ssleay" ,perl-net-ssleay)
-       ("perl-task-weaken" ,perl-task-weaken)))
+     (list perl-async-interrupt
+           perl-ev
+           perl-guard
+           perl-json
+           perl-json-xs
+           perl-net-ssleay
+           perl-task-weaken))
     (home-page "https://metacpan.org/release/AnyEvent")
     (synopsis
      "API for I/O, timer, signal, child process and completion events")
@@ -216,7 +235,7 @@ not rely on XS.")
      `(("libev-source" ,(package-source libev))
        ("perl-canary-stability" ,perl-canary-stability)))
     (propagated-inputs
-     `(("perl-common-sense" ,perl-common-sense)))
+     (list perl-common-sense))
     (home-page "https://metacpan.org/release/EV")
     (synopsis "Perl interface to libev")
     (description
@@ -240,11 +259,9 @@ and still be faster than other event loops currently supported in Perl.")
          "1qwb284z4ig3xzy21m1b3w8bkb8k6l2ij6cjz93znn2j6qs42pwp"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-simple" ,perl-test-simple)))
+     (list perl-module-build perl-test-simple))
     (propagated-inputs
-     `(("perl-anyevent" ,perl-anyevent)
-       ("perl-data-sexpression" ,perl-data-sexpression)))
+     (list perl-anyevent perl-data-sexpression))
     (arguments
      ;; Tests seem to fail because they try to start a server.
      `(#:tests? #f))
diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm
index b0a66c11c5..286620882d 100644
--- a/gnu/packages/libffi.scm
+++ b/gnu/packages/libffi.scm
@@ -91,12 +91,11 @@ conversions for values passed between the two languages.")
        (base32 "0v080s7vlrjz9z823x2yh36yc8drwpvvir6w8wfkkzd7k2z5qihs"))))
     (build-system python-build-system)
     (inputs
-     `(("libffi" ,libffi)))
+     (list libffi))
     (propagated-inputs ; required at run-time
-     `(("python-pycparser" ,python-pycparser)))
+     (list python-pycparser))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-pytest" ,python-pytest)))
+     (list pkg-config python-pytest))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -231,11 +230,9 @@ project.")
                  (format #t "test suite not run~%"))
              #t)))))
     (native-inputs
-     `(("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rubygems-tasks" ,ruby-rubygems-tasks)))
+     (list ruby-rake-compiler ruby-rspec ruby-rubygems-tasks))
     (inputs
-     `(("libffi" ,libffi)))
+     (list libffi))
     (synopsis "Ruby foreign function interface library")
     (description "Ruby-FFI is a Ruby extension for programmatically loading
 dynamic libraries, binding functions within them, and calling those functions
diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index bbb98ff1f4..e39e0b3d71 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -39,7 +39,7 @@
                 "0x0vncf6i92slgrn0h7ghkskqbglbs534220qa84d0qg114zndpc"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("libusb" ,libusb))) ; required by libftdi1.pc
+     (list libusb)) ; required by libftdi1.pc
     (home-page "https://www.intra2net.com/en/developer/libftdi/")
     (synopsis "FTDI USB driver with bitbang mode")
     (description
diff --git a/gnu/packages/libidn.scm b/gnu/packages/libidn.scm
index b2234ff126..7c8b77f6fb 100644
--- a/gnu/packages/libidn.scm
+++ b/gnu/packages/libidn.scm
@@ -69,7 +69,7 @@ Java libraries.")
                (base32
                 "0b8gsksj2g9f4iywwdma3v4jcg7i9rqvdxfmclwvbf1n72a89xla"))))
     (inputs
-     `(("libunistring" ,libunistring)))
+     (list libunistring))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--disable-static")))
diff --git a/gnu/packages/libphidget.scm b/gnu/packages/libphidget.scm
index 765b0df9e9..edeeb5b408 100644
--- a/gnu/packages/libphidget.scm
+++ b/gnu/packages/libphidget.scm
@@ -38,7 +38,7 @@
             (sha256
              (base32 "07w54dmr75vq2imngfy66nk1sxlvkzhl2p6g362q0a02f099jy0f"))))
    (build-system gnu-build-system)
-   (inputs `(("libusb" ,libusb)))
+   (inputs (list libusb))
    (outputs '("out" "debug"))
    (home-page "https://www.phidgets.com/")
    (license lgpl3+)
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index 4ce833aa2c..b17a144f7c 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -100,11 +100,9 @@
          "17q84mhy4rb3masvjw24x549irdjmccnc8n04xh58v9l7hxn8v22"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("mdds" ,mdds)
-       ("python" ,python)
-       ("spdlog" ,spdlog)))
+     (list mdds python spdlog))
     (home-page "https://gitlab.com/ixion/ixion")
     (synopsis "General purpose formula parser and interpreter")
     (description "Ixion is a library for calculating the results of formula
@@ -129,12 +127,9 @@ their dependencies automatically upon calculation.")
     (arguments
      `(#:configure-flags '("--disable-static")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("ixion" ,ixion)
-       ("mdds" ,mdds)
-       ("python" ,python)
-       ("zlib" ,zlib)))
+     (list ixion mdds python zlib))
     (home-page "https://gitlab.com/orcus/orcus")
     (synopsis "File import filter library for spreadsheet documents")
     (description "Orcus is a library that provides a collection of standalone
@@ -186,7 +181,7 @@ CSV, CSS and XML.")
                    "None)]\n")))
                #t))))))
     (inputs
-     `(("libreoffice" ,libreoffice)))
+     (list libreoffice))
     (home-page "http://dag.wiee.rs/home-made/unoconv/")
     (synopsis "Convert between any document format supported by LibreOffice")
     (description
@@ -215,13 +210,11 @@ All required fonts must be installed on the converting system.")
                "1cj76cz4mqcy2mgv9l5xlc95bypyk8zbq0ls9cswqrs2y0lhfgwk"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit doxygen pkg-config))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (propagated-inputs                  ; Referenced by .la files
-     `(("boost" ,boost)))
+     (list boost))
     (arguments
      ;; avoid triggering configure errors by simple inclusion of boost headers
      `(#:configure-flags '("--disable-werror"
@@ -249,12 +242,11 @@ spreadsheets and presentations.")
     (arguments
      `(#:configure-flags '("--disable-werror")))
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen pkg-config))
     (propagated-inputs
-     `(("librevenge" ,librevenge))) ; in Requires field of .pkg
+     (list librevenge)) ; in Requires field of .pkg
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "http://libwpd.sourceforge.net/")
     (synopsis "Library for importing WordPerfect documents")
     (description "Libwpd is a C++ library designed to help process
@@ -284,16 +276,11 @@ into other word processors.")
               "true, true, &status"))))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("gperf" ,gperf)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit gperf pkg-config))
     (propagated-inputs ; in Requires or Requires.private field of .pkg
-     `(("icu4c" ,icu4c)
-       ("liblangtag" ,liblangtag)
-       ("librevenge" ,librevenge)
-       ("libxml2" ,libxml2)))
+     (list icu4c liblangtag librevenge libxml2))
     (inputs
-      `(("boost" ,boost)))
+      (list boost))
     (arguments
      ;; avoid triggering configure errors by simple inclusion of boost headers
      `(#:configure-flags '("--disable-werror")))
@@ -321,13 +308,11 @@ ZVR (simple compressed text format).")
          "1b8mc9zzrqypj1v9zdy3ybc48pw0rfr06cyi7n6grvybjjwq9q03"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit pkg-config))
     (inputs
-     `(("libxml2" ,libxml2)
-       ("boost" ,boost)))
+     (list libxml2 boost))
     (propagated-inputs         ; in Requires field of .pkg
-     `(("librevenge" ,librevenge)))
+     (list librevenge))
     (home-page "https://sourceforge.net/projects/libepubgen/")
     (synopsis "EPUB generator library for librevenge")
     (description "libepubgen is an EPUB generator for librevenge.  It supports
@@ -348,13 +333,11 @@ way--presentation and vector drawing interfaces.")
                "074x159immf139szkswv2zapnq75p7xk10dbha2p9193hgwggcwr"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen pkg-config))
     (propagated-inputs
-     `(("libwpd" ,libwpd))) ; in Requires field of .pkg
+     (list libwpd)) ; in Requires field of .pkg
     (inputs
-     `(("perl" ,perl)
-       ("zlib" ,zlib)))
+     (list perl zlib))
     (home-page "http://libwpg.sourceforge.net/")
     (synopsis "Library and tools for the WordPerfect Graphics format")
     (description "The libwpg project provides a library and tools for
@@ -375,15 +358,11 @@ working with graphics in the WPG (WordPerfect Graphics) format.")
         "18h0a2gsfxvlv03nlcfvw9bzsflq5sin9agq6za103hr0ab8vcfp"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit pkg-config))
     (propagated-inputs ; in Requires field of .pkg
-     `(("curl" ,curl)
-       ("libxml2" ,libxml2)))
+     (list curl libxml2))
     (inputs
-     `(("boost" ,boost)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("openssl" ,openssl)))
+     (list boost cyrus-sasl openssl))
     (arguments
      `(#:configure-flags
         (list
@@ -417,15 +396,11 @@ as Alfresco or Nuxeo.")
                "1vbfrmnvib3cym0yyyabnd8xpx4f7wp20vnn09s6dln347fajqz7"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("gperf" ,gperf)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen gperf perl pkg-config))
     (propagated-inputs ; in Requires or Requires.private field of .pkg
-     `(("librevenge" ,librevenge)
-       ("libxml2" ,libxml2)))
+     (list librevenge libxml2))
     (inputs
-     `(("boost" ,boost)))
+     (list boost))
     (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libabw")
     (synopsis "Library for parsing the AbiWord format")
     (description "Libabw is a library that parses the file format of
@@ -445,16 +420,11 @@ AbiWord documents.")
                "1m6dirmyhqwnrpv80z97x5k5hdh4kh8a8zlq3smbjrilc6fj8rjn"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit doxygen pkg-config))
     (propagated-inputs ; in Requires or Requires.private field of .pkg
-     `(("icu4c" ,icu4c)
-       ("lcms" ,lcms)
-       ("librevenge" ,librevenge)
-       ("zlib" ,zlib)))
+     (list icu4c lcms librevenge zlib))
     (inputs
-     `(("boost" ,boost)))
+     (list boost))
     (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libcdr")
     (synopsis "Library for parsing the CorelDRAW format")
     (description "Libcdr is a library that parses the file format of
@@ -476,19 +446,11 @@ CorelDRAW documents of all versions.")
     (arguments
      `(#:configure-flags '("--with-mdds=1.5")))
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("doxygen" ,doxygen)
-       ("gperf" ,gperf)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit doxygen gperf pkg-config))
     (propagated-inputs ; in Requires or Requires.private field of .pkg
-     `(("liblangtag" ,liblangtag)
-       ("librevenge" ,librevenge)
-       ("libxml2" ,libxml2)
-       ("zlib" ,zlib)))
+     (list liblangtag librevenge libxml2 zlib))
     (inputs
-     `(("boost" ,boost)
-       ("glm" ,glm)
-       ("mdds" ,mdds)))
+     (list boost glm mdds))
     (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libetonyek")
     (synopsis "Library for parsing the Apple Keynote format")
     (description "Libetonyek is a library that parses the file format of
@@ -508,10 +470,9 @@ Apple Keynote documents.  It currently supports Keynote versions 2 to 5.")
          (base32 "1g9kwxx60q0hpwvs66ys1cb9qg54hfvbivadwli8sfpc085a44hz"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list libtool pkg-config))
     (inputs
-     `(("libxml2" ,libxml2)))
+     (list libxml2))
     (home-page "https://bitbucket.org/tagoh/liblangtag")
     (synopsis "Library to access tags for identifying languages")
     (description "Liblangtag implements an interface to work with tags
@@ -565,17 +526,11 @@ library primarily intended for language guessing.")
                          (string-append all ";\n")))
                       #t)))))
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("doxygen" ,doxygen)
-       ("gperf" ,gperf)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit doxygen gperf perl pkg-config))
     (inputs
-     `(("icu4c" ,icu4c)
-       ("lcms" ,lcms)))
+     (list icu4c lcms))
     (propagated-inputs ; in Requires or Requires.private field of .pkg
-     `(("librevenge" ,librevenge)
-       ("zlib" ,zlib)))
+     (list librevenge zlib))
     (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libfreehand")
     (synopsis "Library for parsing the FreeHand format")
     (description "Libfreehand is a library that parses the file format of
@@ -603,14 +558,11 @@ Aldus/Macromedia/Adobe FreeHand documents.")
              (string-append all "\n#include <cstdint>")))))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen pkg-config))
     (propagated-inputs ; in Requires or Requires.private field of .pkg
-     `(("icu4c" ,icu4c)
-       ("librevenge" ,librevenge)
-       ("zlib" ,zlib)))
+     (list icu4c librevenge zlib))
     (inputs
-     `(("boost" ,boost)))
+     (list boost))
     (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libmspub")
     (synopsis "Library for parsing the Microsoft Publisher format")
     (description "Libmspub is a library that parses the file format of
@@ -655,13 +607,11 @@ Java.")
     (arguments
      `(#:configure-flags '("--disable-werror")))
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen pkg-config))
     (propagated-inputs ; in Requires field of .pkg
-     `(("librevenge" ,librevenge)))
+     (list librevenge))
     (inputs
-     `(("boost" ,boost)
-       ("zlib" ,zlib)))
+     (list boost zlib))
     (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libpagemaker")
     (synopsis "Library for parsing the PageMaker format")
     (description "Libpagemaker is a library that parses the file format of
@@ -682,17 +632,11 @@ created by PageMaker version 6.x and 7.")
                "0k7adcbbf27l7n453cca1m6s9yj6qvb5j6bsg2db09ybf3w8vbwg"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("doxygen" ,doxygen)
-       ("gperf" ,gperf)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit doxygen gperf perl pkg-config))
     (propagated-inputs ; in Requires or Requires.private field of .pkg
-     `(("icu4c" ,icu4c)
-       ("librevenge" ,librevenge)
-       ("libxml2" ,libxml2)))
+     (list icu4c librevenge libxml2))
     (inputs
-     `(("boost" ,boost)))
+     (list boost))
     (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libvisio")
     (synopsis "Library for parsing the Microsoft Visio format")
     (description "Libvisio is a library that parses the file format of
@@ -712,14 +656,11 @@ Microsoft Visio documents of all versions.")
                "0986c5gw4vdfz7bcmpdfz07inba5wxsx4f6xvndknqj6zlkh082m"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen pkg-config))
     (propagated-inputs ; in Requires field of .pkg
-     `(("librevenge" ,librevenge)))
+     (list librevenge))
     (inputs
-     `(("boost" ,boost)
-       ("libxml2" ,libxml2)
-       ("zlib" ,zlib)))
+     (list boost libxml2 zlib))
     (arguments
      ;; Avoid triggering configure errors by simple inclusion of Boost headers.
      `(#:configure-flags '("--disable-werror")))
@@ -744,13 +685,11 @@ text documents, vector drawings, presentations and spreadsheets.")
        (base32 "1bx5xnw8sk5h26x2z7hfac7hfbm68zqg0jilp15qr0pwxqsf4wmj"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen pkg-config))
     (propagated-inputs                  ; in Requires field of .pc file
-     `(("librevenge" ,librevenge)))
+     (list librevenge))
     (inputs
-     `(("boost" ,boost)
-       ("zlib" ,zlib)))
+     (list boost zlib))
     (home-page "https://sourceforge.net/p/libmwaw/wiki/Home/")
     (synopsis "Import library for some old Macintosh text documents")
     (description "Libmwaw contains some import filters for old Macintosh
@@ -771,10 +710,9 @@ spreadsheet documents.")
                 "1ny8411273k2bq7mnpmcvri3rd46b2j67wfypqkp3y8nhanv0kzr"))))
     (build-system gnu-build-system)
     (inputs
-     `(("librevenge" ,librevenge)
-       ("zlib" ,zlib)))
+     (list librevenge zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/fosnola/libstaroffice")
     (synopsis "Provides LibreOffice support for old StarOffice documents")
     (description "@code{libstaroffice} is an import filter for the document formats
@@ -794,13 +732,11 @@ from the old StarOffice (.sdc, .sdw, ...).")
                "1nsfacqp5sfkyayw7q0wp68lidksd1wjdix8qmsbf0vdl19gn6p2"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen pkg-config))
     (propagated-inputs                  ; in Requires field of .pkg
-     `(("librevenge" ,librevenge)))
+     (list librevenge))
     (inputs
-     `(("boost" ,boost)
-       ("zlib" ,zlib)))
+     (list boost zlib))
     (home-page "http://libwps.sourceforge.net/")
     (synopsis "Import library for Microsoft Works text documents")
     (description "Libwps is a library for importing files in the Microsoft
@@ -823,15 +759,9 @@ Works word processor file format.")
     ;; A harmless 'sign-compare' error pops up on i686 so disable '-Werror'.
     '(#:configure-flags '("--disable-werror")))
    (inputs
-    `(("boost" ,boost)
-      ("icu4c" ,icu4c)
-      ("libpng" ,libpng)
-      ("librevenge" ,librevenge)
-      ("zlib" ,zlib)))
+    (list boost icu4c libpng librevenge zlib))
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit doxygen pkg-config))
     (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libzmf")
     (synopsis "Parses file format of Zoner Callisto/Draw documents")
     (description "Libzmf is a library that parses the file format of Zoner
@@ -855,11 +785,9 @@ Zoner Draw version 4 and 5.")
           "0qxlkd012r45ppd21kldbq9k5ac5nmxz290z6m2kch9l56v768k1"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (native-search-paths (list (search-path-specification
                                 (variable "DICPATH")
                                 (files '("share/hunspell")))))
@@ -888,7 +816,7 @@ word compounding or character encoding.")
                (base32
                 "139hfrn5p87sl8hqmgkf6sgvnxrk2mm8vd8xsm8sm98qjnwlg0f9"))))
     (build-system trivial-build-system)
-    (native-inputs `(("unzip" ,unzip)))
+    (native-inputs (list unzip))
     (arguments
      `(#:modules ((guix build utils))
        #:builder (begin
@@ -960,7 +888,7 @@ library.")
                 "14mzf8glxkp2775dcqisb1zv6r8ncm3bvzl46q352rwyl2dg1c59"))))
 
     (build-system trivial-build-system)
-    (native-inputs `(("unzip" ,unzip)))
+    (native-inputs (list unzip))
     (arguments
      `(#:modules ((guix build utils))
        #:builder (begin
@@ -972,8 +900,8 @@ library.")
                           (myspell  (string-append out "/share/myspell"))
                           (doc      (string-append out "/share/doc/"
                                                    ,name))
-                          (unzip (string-append (assoc-ref %build-inputs "unzip")
-                                                "/bin/unzip")))
+                          (unzip (search-input-file %build-inputs
+                                                    "/bin/unzip")))
                      (invoke unzip "-j" "-o" (assoc-ref %build-inputs "source"))
                      (invoke unzip "-j" "-o" "pl_PL.zip")
                      (for-each (cut install-file <> hunspell)
@@ -1019,9 +947,7 @@ library.")
                #t))))
        #:tests? #f))        ; no tests
     (native-inputs
-     `(("hunspell" ,hunspell)
-       ("ispell" ,ispell)
-       ("perl" ,perl)))
+     (list hunspell ispell perl))
     (synopsis "Hunspell dictionary for German (de_DE)")
     (description "This package provides a dictionary for the Hunspell
 spell-checking library.")
@@ -1042,7 +968,7 @@ spell-checking library.")
                "01ap9pr6zzzbp4ky0vy7i1983fwyqy27pl0ld55s30fdxka3ciih"))))
     (build-system gnu-build-system)
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "http://hunspell.sourceforge.net/")
     (synopsis "Hyphenation library")
     (description "Hyphen is a hyphenation library using TeX hyphenation
@@ -1064,10 +990,9 @@ patterns, which are pre-processed by a perl script.")
                "0prh19wy1c74kmzkkavm9qslk99gz8h8wmjvwzjc6lf8v2az708y"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("hunspell" ,hunspell)
-       ("perl" ,perl)))
+     (list hunspell perl))
     (home-page "http://hunspell.sourceforge.net/")
     (synopsis "Thesaurus")
     (description "MyThes is a simple thesaurus that uses a structured text
@@ -1089,14 +1014,11 @@ and to return information on pronunciations, meanings and synonyms.")
                 "0p4lb84m05wqd8qr8ni9sp80ivlm83ffn0nxiv4m42hj22qvcdz1"))))
     (build-system gnu-build-system)
     (inputs
-     `(("boost" ,boost)
-       ("icu4c" ,icu4c)
-       ("zlib" ,zlib)))
+     (list boost icu4c zlib))
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit pkg-config))
     (propagated-inputs
-     `(("librevenge" ,librevenge))) ; mentioned in Requires field
+     (list librevenge)) ; mentioned in Requires field
     (home-page "https://www.libreoffice.org")
     (synopsis "Library and tools for the QuarkXPress file format")
     (description "libqxp is a library and a set of tools for reading and
diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm
index db4d07c84a..db7ae86cc7 100644
--- a/gnu/packages/libusb.scm
+++ b/gnu/packages/libusb.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de>
-;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Christopher Howard <christopher@librehacker.com>
@@ -93,9 +93,9 @@ devices on various operating systems.")
         "0nn5icrfm9lkhzw1xjvaks9bq3w6mjg86ggv3fn7kgi4nfvg8kj0"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libusb" ,libusb)))
+     (list libusb))
     (home-page "https://libusb.info")
     (synopsis "Compatibility shim for libusb")
     (description
@@ -152,7 +152,7 @@ version of libusb to run with newer libusb.")
                (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
                #t)))))
       (inputs
-       `(("libusb" ,libusb)))
+       (list libusb))
       (native-inputs
        `(("jdk" ,icedtea "jdk")))
       (home-page "https://github.com/usb4java/libusb4java/")
@@ -212,10 +212,7 @@ with usb4java.")
                   (string-append "assumeUsbTestsEnabled();" line))))
              #t)))))
     (inputs
-     `(("libusb4java" ,libusb4java)
-       ("java-commons-lang3" ,java-commons-lang3)
-       ("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list libusb4java java-commons-lang3 java-junit java-hamcrest-core))
     (home-page "http://usb4java.org/")
     (synopsis "USB library for Java")
     (description
@@ -258,7 +255,7 @@ implementing @code{javax.usb} (JSR-80).")
                                    "^libusb.*\\.so\\..*"))
                  "\"")))
              #t)))))
-    (propagated-inputs `(("libusb" ,libusb)))
+    (propagated-inputs (list libusb))
     (home-page "https://github.com/vpelletier/python-libusb1")
     (synopsis "Pure-python wrapper for libusb-1.0")
     (description "Libusb is a library that gives applications easy access to
@@ -298,7 +295,7 @@ wrapper for accessing libusb-1.0.")
                  "\"")))
              #t)))))
     (inputs
-     `(("libusb" ,libusb)))
+     (list libusb))
     (home-page "https://pyusb.github.io/pyusb/")
     (synopsis "Python bindings to the libusb library")
     (description
@@ -333,10 +330,7 @@ wrapper for accessing libusb-1.0.")
                                          "50-capablerobot-usbhub.rules"))
                #t))))))
     (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-construct" ,python-construct)
-       ("python-pyusb" ,python-pyusb)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python-click python-construct python-pyusb python-pyyaml))
     (home-page
      "https://github.com/CapableRobot/CapableRobot_USBHub_Driver")
     (synopsis
@@ -368,13 +362,9 @@ I2C and SPI devices attached to the USB Hub.")
        ;; 'large.test' and 'largecmp.test'.
        #:parallel-tests? #f))
     (inputs
-     `(("python" ,python)))
+     (list python))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("python-cython" ,python-cython))) ; to build Python bindings
+     (list autoconf automake libtool pkg-config python-cython)) ; to build Python bindings
     (home-page "https://libimobiledevice.org/")
     (synopsis "C library to handle Apple Property List files")
     (description "This package provides a small portable C library to handle
@@ -395,8 +385,7 @@ Apple Property List files in binary or XML.")
                 "084vg570g1qb506jd7axg6c080mfsmbf52v3lngzlknsaf2q0snc"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("libplist" ,libplist)))
+     (list pkg-config libplist))
     (home-page "https://libimobiledevice.org/")
     (synopsis "Library to multiplex connections from and to iOS devices")
     (description "This package provides a client library to multiplex
@@ -421,14 +410,11 @@ connections from and to iOS devices by connecting to a socket provided by a
     (arguments
      '(#:configure-flags '("PYTHON_VERSION=3")))
     (propagated-inputs
-     `(("openssl" ,openssl)
-       ("libplist" ,libplist)
-       ("libusbmuxd" ,libusbmuxd)))
+     (list openssl libplist libusbmuxd))
     (inputs
-     `(("python" ,python)))
+     (list python))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-cython" ,python-cython)))
+     (list pkg-config python-cython))
     (home-page "https://libimobiledevice.org/")
     (synopsis "Protocol library and tools to communicate with Apple devices")
     (description "libimobiledevice is a software library that talks the
@@ -452,10 +438,9 @@ music and video to the device.")
                (base32
                 "11wdv44qwia77sh38n36809ysaib52rwd4fvqwb5ybsbz4p70l1m"))))
     (inputs
-     `(("fuse" ,fuse)
-       ("libimobiledevice" ,libimobiledevice)))
+     (list fuse libimobiledevice))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (build-system gnu-build-system)
     (home-page "https://libimobiledevice.org/")
     (synopsis "Mount iOS devices")
@@ -476,11 +461,9 @@ iOS devices and access their contents.")
                (base32
                 "17idzpxrvkbff0jpynf35df95lh7wsm8vndynp63bxib2w09gv60"))))
     (inputs
-     `(("libplist" ,libplist)
-       ("libusb" ,libusb)
-       ("libimobiledevice" ,libimobiledevice)))
+     (list libplist libusb libimobiledevice))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (build-system gnu-build-system)
     (home-page "https://libimobiledevice.org/")
     (synopsis "Multiplex connections over USB to an iOS device")
@@ -493,22 +476,22 @@ over USB.")
 (define-public libmtp
   (package
     (name "libmtp")
-    (version "1.1.18")
+    (version "1.1.19")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/libmtp/libmtp/" version
                                  "/libmtp-" version ".tar.gz"))
              (sha256
               (base32
-               "1w41l93yi0dmw218daiw36rylkc8rammxx37csh1ij24q18gx03j"))))
+               "0a1jlf5b2c2vylkvdd3cxjs20a96jlbrdyx7rwai5rzmcdpszd6y"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libgcrypt" ,libgcrypt)))
+     (list libgcrypt))
     (propagated-inputs
      ;; libmtp.pc refers to all these.
-     `(("libusb" ,libusb)))
+     (list libusb))
     (arguments
      `(#:configure-flags
        (list "--disable-static"
@@ -549,13 +532,9 @@ proposed for standardization.")
           (string-append "ID3TAG_CFLAGS=-I" libid3tag "/include")
           (string-append "ID3TAG_LIBS=-L" libid3tag "/lib -lid3tag -lz")))))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("flac" ,flac)
-       ("libvorbis" ,libvorbis)
-       ("libid3tag" ,libid3tag)
-       ("libmtp" ,libmtp)))
+     (list gtk+ flac libvorbis libid3tag libmtp))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://gmtp.sourceforge.net/")
     (synopsis "Simple graphical MTP client")
     (description "gMTP is a simple graphical client for the Media Transfer Protocol
@@ -578,13 +557,9 @@ devices.")
         (base32 "1nr4z4b10vpbh3ss525r7spz4i43zim2ba5qzfl15dgdxshxxivb"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libusb" ,libusb)
-       ("udev" ,eudev)))
+     (list libusb eudev))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (home-page "https://github.com/libusb/hidapi")
     (synopsis "HID API library")
     (description
@@ -639,11 +614,9 @@ HID-Class devices.")
                      (string-append "--prefix=" (assoc-ref outputs "out"))
                      "--single-version-externally-managed" "--root=/"))))))
     (inputs
-     `(("hidapi" ,hidapi)
-       ("libusb" ,libusb)
-       ("eudev" ,eudev)))
+     (list hidapi libusb eudev))
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (home-page "https://github.com/trezor/cython-hidapi")
     (synopsis "Cython interface to hidapi")
     (description "This package provides a Cython interface to @code{hidapi}.")
diff --git a/gnu/packages/license.scm b/gnu/packages/license.scm
index bc9ca7238d..79ad3df4c8 100644
--- a/gnu/packages/license.scm
+++ b/gnu/packages/license.scm
@@ -51,11 +51,9 @@
         (base32 "0kznpv628jrndn4nw646f6pl7yqvmacwljlygvsjfdkyh0i4sr2k"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-regexp-pattern" ,perl-regexp-pattern)
-       ("perl-test-exception" ,perl-test-exception)))
+     (list perl-regexp-pattern perl-test-exception))
     (propagated-inputs
-     `(("perl-strictures" ,perl-strictures-2)
-       ("perl-try-tiny" ,perl-try-tiny)))
+     (list perl-strictures-2 perl-try-tiny))
     (home-page "https://metacpan.org/release/Regexp-Pattern-License")
     (synopsis "Regular expressions for legal licenses")
     (description "Regexp::Pattern::License provides a hash of regular
@@ -79,9 +77,9 @@ Regexp::Pattern is a convention for organizing reusable regex patterns.")
          "0fzymv065nn3glwnw34nkyadzw2dh4rcz8avmki4zrnk4k45m01a"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-number-range" ,perl-number-range)))
+     (list perl-number-range))
     (propagated-inputs
-     `(("perl-exporter-tiny" ,perl-exporter-tiny)))
+     (list perl-exporter-tiny))
     (home-page "https://metacpan.org/release/String-Copyright")
     (synopsis "Representation of text-based copyright statements")
     (description "String::Copyright Parses common styles of copyright
@@ -103,10 +101,9 @@ statements and serializes in normalized format.")
          "128pbm9pf5drakm9bpkifc1zg8f005xabfwzg21nc03m5mhfligb"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-try-tiny" ,perl-try-tiny)))
+     (list perl-try-tiny))
     (propagated-inputs
-     `(("perl-data-section" ,perl-data-section)
-       ("perl-text-template" ,perl-text-template)))
+     (list perl-data-section perl-text-template))
     (home-page "https://metacpan.org/release/Software-License")
     (synopsis "Templated software licenses")
     (description "This package provides templated software licenses.")
@@ -126,14 +123,14 @@ statements and serializes in normalized format.")
                 "12l83zf85zagpagizmzy3bwkc659sbzqf18cycx8g4h6d3mc5kqw"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-regexp-pattern" ,perl-regexp-pattern)
-       ("perl-software-license" ,perl-software-license)
-       ("perl-test-requires" ,perl-test-requires)
-       ("perl-test-roo" ,perl-test-roo)
-       ("perl-test-script" ,perl-test-script)
-       ("perl-universal-require" ,perl-universal-require)
-       ("perl-number-range" ,perl-number-range)
-       ("perl-sub-quote" ,perl-sub-quote)))
+     (list perl-regexp-pattern
+           perl-software-license
+           perl-test-requires
+           perl-test-roo
+           perl-test-script
+           perl-universal-require
+           perl-number-range
+           perl-sub-quote))
     (propagated-inputs
      `(("perl-getopt-long-descriptive" ,perl-getopt-long-descriptive)
        ("perl-moo" ,perl-moo-2)
@@ -179,15 +176,14 @@ belonging to various licenses.")
         (base32 "00gqpw124lz6kf3gi6m2i1bnxp3k5n3id0bgqff0bj08jga7pj49"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-pytest python-setuptools-scm))
     (inputs
-     `(("python-binaryornot" ,python-binaryornot)
-       ("python-boolean.py" ,python-boolean.py)
-       ("python-debian" ,python-debian)
-       ("python-jinja2" ,python-jinja2)
-       ("python-license-expression" ,python-license-expression)
-       ("python-requests" ,python-requests)))
+     (list python-binaryornot
+           python-boolean.py
+           python-debian
+           python-jinja2
+           python-license-expression
+           python-requests))
     (home-page "https://reuse.software/")
     (synopsis "Provide and verify copyright and licensing information")
     (description
@@ -230,7 +226,7 @@ designed to be simple.")
                 "\"filenames\": [\"CMakeLists.txt\"], \n        \"extensions\": [],"))
              #t)))))
     (propagated-inputs
-     `(("python-regex" ,python-regex)))
+     (list python-regex))
     (home-page "https://github.com/johann-petrak/licenseheaders")
     (synopsis "Add or change license headers for all files in a directory")
     (description
diff --git a/gnu/packages/lighting.scm b/gnu/packages/lighting.scm
index 4718795a8a..5850da84d8 100644
--- a/gnu/packages/lighting.scm
+++ b/gnu/packages/lighting.scm
@@ -54,15 +54,14 @@
          (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("bison" ,bison)
-         ("cppunit" ,cppunit)
-         ("flex" ,flex)
-         ("pkg-config" ,pkg-config)
-
-         ;; For git repository bootstrapping.
-         ("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)))
+       (list bison
+             cppunit
+             flex
+             pkg-config
+             ;; For git repository bootstrapping.
+             autoconf
+             automake
+             libtool))
       (inputs
        `(("libftdi" ,libftdi)
          ("libmicrohttpd" ,libmicrohttpd)
@@ -70,7 +69,7 @@
          ("libuuid" ,util-linux "lib")
          ("zlib" ,zlib)))
       (propagated-inputs
-       `(("protobuf" ,protobuf)))       ; for pkg-config --libs libola
+       (list protobuf))       ; for pkg-config --libs libola
       (arguments
        `( ;; G++ >= 4.8 macro expansion tracking requires lots of memory, causing
          ;; build to fail on low memory systems.  We disable that with the
diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index 1c60e767b0..285ecb58fd 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -122,7 +122,7 @@
                   (string-append out "/share/BCUnit/Examples")
                   (string-append doc "/share/BCUnit/Examples"))))))))
       (inputs
-       `(("ncurses" ,ncurses)))
+       (list ncurses))
       (synopsis "Belledonne Communications Unit Testing Framework")
       (description "BCUnit is a fork of the defunct project CUnit, with
 several fixes and patches applied.  It is a unit testing framework for
@@ -235,7 +235,7 @@ Communications software like belle-sip, mediastreamer2 and linphone.")
                 ;; name, so have it match.
                 (string-append tester "/share/belr_tester"))))))))
     (inputs
-     `(("bctoolbox" ,bctoolbox)))
+     (list bctoolbox))
     (synopsis "Belledonne Communications Language Recognition Library")
     (description "Belr is Belledonne Communications' language recognition
 library, written in C++11.  It parses text inputs formatted according to a
@@ -293,8 +293,7 @@ IETF.")
                                                      "/bin/belcard_tester")))
                  (invoke belcard_tester))))))))
     (inputs
-     `(("bctoolbox" ,bctoolbox)
-       ("belr" ,belr)))
+     (list bctoolbox belr))
     (synopsis "Belledonne Communications VCard Library")
     (description "Belcard is a C++ library to manipulate VCard standard
 format.")
@@ -445,7 +444,7 @@ such as conferencing.")
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)))
     (inputs
-     `(("bctoolbox" ,bctoolbox)))
+     (list bctoolbox))
     (synopsis "Belledonne Communications RTP Library")
     (description "oRTP is a C library implementing the RTP protocol.  It
 implements the RFC 3550 standard.")
@@ -552,9 +551,7 @@ including both ARM and x86.")
                                ;;"HTTP stack"
                                "Object"))))))))
     (inputs
-     `(("avahi" ,avahi)
-       ("bctoolbox" ,bctoolbox)
-       ("zlib" ,zlib)))
+     (list avahi bctoolbox zlib))
     (synopsis "Belledonne Communications SIP Library")
     (description "Belle-sip is a modern library implementing SIP transport,
 transaction and dialog layers.  It is written in C, with an object-oriented
@@ -721,9 +718,7 @@ including media capture, encoding and decoding, and rendering.")
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)))
     (inputs
-     `(("bctoolbox" ,bctoolbox)
-       ("belle-sip" ,belle-sip)
-       ("soci" ,soci)))
+     (list bctoolbox belle-sip soci))
     (synopsis "Belledonne Communications Encryption Library")
     (description "LIME is an encryption library for one-to-one and group
 instant messaging, allowing users to exchange messages privately and
@@ -851,21 +846,20 @@ and video calls or instant messaging capabilities to an application.")
                (symlink (string-append liblinphone "/share/belr/grammars")
                         grammar-dest)))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (inputs
-     `(("bctoolbox" ,bctoolbox)
-       ("belcard" ,belcard)
-       ("belr" ,belr)
-       ("liblinphone" ,liblinphone)
-       ("mediastreamer2" ,mediastreamer2)
-       ("ortp" ,ortp)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtgraphicaleffects" ,qtgraphicaleffects)
-       ("qtquickcontrols" ,qtquickcontrols)
-       ("qtquickcontrols2" ,qtquickcontrols2)
-       ("qtsvg" ,qtsvg)))
+     (list bctoolbox
+           belcard
+           belr
+           liblinphone
+           mediastreamer2
+           ortp
+           qtbase-5
+           qtdeclarative
+           qtgraphicaleffects
+           qtquickcontrols
+           qtquickcontrols2
+           qtsvg))
     (synopsis "Desktop client for the Linphone SIP softphone")
     (description "Linphone is a SIP softphone for voice and video over IP calling
 (VoIP) and instant messaging.  Amongst its features are:
@@ -911,10 +905,7 @@ and video calls or instant messaging capabilities to an application.")
          #:configure-flags
          (list "-DENABLE_STATIC=NO")))  ; Not required
       (inputs
-       `(("bctoolbox" ,bctoolbox)
-         ("mediastreamer2" ,mediastreamer2)
-         ("openh264" ,openh264)
-         ("ortp" ,ortp)))
+       (list bctoolbox mediastreamer2 openh264 ortp))
       (synopsis "Media Streamer H.264 Codec")
       (description "MsOpenH264 is an  H.264 encoder/decoder plugin for
  mediastreamer2 based on the openh264 library.")
@@ -942,9 +933,7 @@ and video calls or instant messaging capabilities to an application.")
          #:configure-flags
          (list "-DENABLE_STATIC=NO")))  ; Not required
       (inputs
-       `(("bctoolbox" ,bctoolbox)
-         ("mediastreamer2" ,mediastreamer2)
-         ("ortp" ,ortp)))
+       (list bctoolbox mediastreamer2 ortp))
       (synopsis "Media Streamer SILK Codec")
       (description "MSSILK is a plugin of MediaStreamer, adding support for AMR
 codec.  It is based on the Skype's SILK implementation.")
@@ -995,9 +984,7 @@ codec.  It is based on the Skype's SILK implementation.")
                "1maqychrgwy0z4zypa03qp726l2finw64z6cymdzhd58ql3p1lvm"))))
          ("python" ,python-wrapper)))
       (inputs
-       `(("bctoolbox" ,bctoolbox)
-         ("mediastreamer2" ,mediastreamer2)
-         ("ortp" ,ortp)))
+       (list bctoolbox mediastreamer2 ortp))
       (synopsis "Media Streamer WebRTC Codec")
       (description "MSWebRTC is a plugin of MediaStreamer, adding support for
 WebRTC codec.  It includes features from WebRTC, such as, iSAC and AECM.")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 3c8b4546af..97b2120cd0 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -30,12 +30,11 @@
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
 ;;; Copyright © 2018, 2020 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2018 Manuel Graf <graf@init.at>
-;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
 ;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Stefan Stefanović <stefanx2ovic@gmail.com>
-;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2019, 2020, 2021 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com>
@@ -57,6 +56,9 @@
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch>
+;;; Copyright © 2021 Olivier Dion <olivier.dion@polymtl.ca>
+;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -80,6 +82,7 @@
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages avahi)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
@@ -220,18 +223,8 @@ defconfig.  Return the appropriate make target if applicable, otherwise return
           (file-name (string-append "linux-libre-deblob-check-" version "-" gnu-revision))
           (sha256 deblob-check-hash))))
 
-(define* (computed-origin-method gexp-promise hash-algo hash
-                                 #:optional (name "source")
-                                 #:key (system (%current-system))
-                                 (guile (default-guile)))
-  "Return a derivation that executes the G-expression that results
-from forcing GEXP-PROMISE."
-  (mlet %store-monad ((guile (package->derivation guile system)))
-    (gexp->derivation (or name "computed-origin")
-                      (force gexp-promise)
-                      #:graft? #f       ;nothing to graft
-                      #:system system
-                      #:guile-for-build guile)))
+;; XXXX: Workaround 'snippet' limitations
+(define computed-origin-method (@@ (guix packages) computed-origin-method))
 
 (define (make-linux-libre-source version
                                  upstream-source
@@ -361,125 +354,110 @@ 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.14-version "5.14.4")
-(define-public linux-libre-5.14-gnu-revision "gnu")
-(define deblob-scripts-5.14
+(define-public linux-libre-5.15-version "5.15.10")
+(define-public linux-libre-5.15-gnu-revision "gnu")
+(define deblob-scripts-5.15
   (linux-libre-deblob-scripts
-   linux-libre-5.14-version
-   linux-libre-5.14-gnu-revision
-   (base32 "00vv2a51cvw2nx8iazmiy9i4h3jj9gvvpwz9gxp2v1hcmrsxq935")
-   (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
-(define-public linux-libre-5.14-pristine-source
-  (let ((version linux-libre-5.14-version)
-        (hash (base32 "1dijf7qsjlqx893c2sxg5jrjdm8v1nv4hicvqlmp1v92s3h7kqj2")))
+   linux-libre-5.15-version
+   linux-libre-5.15-gnu-revision
+   (base32 "1rfhwfzifmbpnrhmrn3srm736nkm1v6affw915d0fgqzqgi8qfai")
+   (base32 "04fj1x3zmi310cr3m9hxpi26gdcmwfsqciv5yb6q6rrnqjqs1pc0")))
+(define-public linux-libre-5.15-pristine-source
+  (let ((version linux-libre-5.15-version)
+        (hash (base32 "0jsv8lialjwp91qg9c9rh8rhn49a70ryyhzl19bxq3fhz1fwyks8")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
-                            deblob-scripts-5.14)))
-
-(define-public linux-libre-5.13-version "5.13.17")
-(define-public linux-libre-5.13-gnu-revision "gnu1")
-(define deblob-scripts-5.13
-  (linux-libre-deblob-scripts
-   linux-libre-5.13-version
-   linux-libre-5.13-gnu-revision
-   (base32 "0hj3w3vh1rj24xgl4v72mr6vaz1qzsnc5xzdfjga1zy84bw8lhkp")
-   (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
-(define-public linux-libre-5.13-pristine-source
-  (let ((version linux-libre-5.13-version)
-        (hash (base32 "06qa3c8wx87l4mh9h8gjcra5k5l6bcirs59s7baxdfjkxlihvrsa")))
-   (make-linux-libre-source version
-                            (%upstream-linux-source version hash)
-                            deblob-scripts-5.13)))
+                            deblob-scripts-5.15)))
 
 ;; The "longterm" kernels — the older releases with long-term upstream support.
 ;; Here are the support timelines:
 ;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-5.10-version "5.10.65")
+(define-public linux-libre-5.10-version "5.10.87")
 (define-public linux-libre-5.10-gnu-revision "gnu1")
 (define deblob-scripts-5.10
   (linux-libre-deblob-scripts
    linux-libre-5.10-version
    linux-libre-5.10-gnu-revision
-   (base32 "19d1pdsilq1ycnx1zw3vhf9mwdxbi5nmgzm0g1kj1lkkf1y4i1mv")
-   (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
+   (base32 "1swy3y851jnnmk3hc0khllpsifb98camlwyskpn1dyvjsgjljd8x")
+   (base32 "024rz0bp3n3r5nkwbib7byx10d72c2fh5cw9iv00diyzgnp819g7")))
 (define-public linux-libre-5.10-pristine-source
   (let ((version linux-libre-5.10-version)
-        (hash (base32 "0riyq1gdm18642fpnhpcw8hspcjqzprzhqnygjxabjjvrvdxxlzd")))
+        (hash (base32 "0jz6xhph7x0x11cjmypaw5gh8z4d53dcgx2gmg7k6d06ydq8n4h3")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.10)))
 
-(define-public linux-libre-5.4-version "5.4.146")
+(define-public linux-libre-5.4-version "5.4.167")
 (define-public linux-libre-5.4-gnu-revision "gnu1")
 (define deblob-scripts-5.4
   (linux-libre-deblob-scripts
    linux-libre-5.4-version
    linux-libre-5.4-gnu-revision
-   (base32 "1cdxljvmivdwcy9v9fr5iv0x0d1884pf3876p9nzrly599lz2wnl")
+   (base32 "1nlgk8ajb5wl3aa96h9a0pb9j5a5wmrbpk63varn557x1d00r7wj")
    (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
 (define-public linux-libre-5.4-pristine-source
   (let ((version linux-libre-5.4-version)
-        (hash (base32 "1bjkfk24j86akm6df3c5b28viyq363drhssml7rcrl69286f92dk")))
+        (hash (base32 "19x5f3s5f4nqzjb61g22rs0hnmk43q4b7sm7mc4j1q3y44b33r5l")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.4)))
 
-(define-public linux-libre-4.19-version "4.19.206")
+(define-public linux-libre-4.19-version "4.19.221")
 (define-public linux-libre-4.19-gnu-revision "gnu1")
 (define deblob-scripts-4.19
   (linux-libre-deblob-scripts
    linux-libre-4.19-version
    linux-libre-4.19-gnu-revision
-   (base32 "1hiaagdyfy6b0f9ivdy7zq0cd6akaj6v3c4nzikrgsk12vgc1a1q")
+   (base32 "06pqv050bkii0hc2v7ymny5264w1bca8db0dp1pw9mfmjg865am5")
    (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
 (define-public linux-libre-4.19-pristine-source
   (let ((version linux-libre-4.19-version)
-        (hash (base32 "1h44lvzxd0cngj71bk8qba9dz7jlqj68ir6xjwfafglb81ppgsxp")))
+        (hash (base32 "1yg1cibyn53gpjnxfgj2qxxi8k3l7gv1ri6kywvp6sk5bygx8jd3")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.19)))
 
-(define-public linux-libre-4.14-version "4.14.246")
+(define-public linux-libre-4.14-version "4.14.258")
 (define-public linux-libre-4.14-gnu-revision "gnu1")
 (define deblob-scripts-4.14
   (linux-libre-deblob-scripts
    linux-libre-4.14-version
    linux-libre-4.14-gnu-revision
-   (base32 "0cnax38650m9sxiwvc1xm5saymlsmx427j3jqpx34df2ah2rnrwf")
+   (base32 "02rxvr0gmxb3zfsyyzdmzgfq04gkdkv1cc38md0xfl0mxzdzdfyk")
    (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
 (define-public linux-libre-4.14-pristine-source
   (let ((version linux-libre-4.14-version)
-        (hash (base32 "0fpgig84shpas1jc0h4s3aw9brkcq1as84gjbk4bfhc48bpi4mlw")))
+        (hash (base32 "162bzhm0k8kipgk0ma745rjcl33rqhpwxdfdz3q6rkp48b82kbvi")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.14)))
 
-(define-public linux-libre-4.9-version "4.9.282")
+(define-public linux-libre-4.9-version "4.9.293")
 (define-public linux-libre-4.9-gnu-revision "gnu1")
 (define deblob-scripts-4.9
   (linux-libre-deblob-scripts
    linux-libre-4.9-version
    linux-libre-4.9-gnu-revision
-   (base32 "1n74ddrifnw06hx7ih2sk8jaiqlm1jyyhswyjpxiyhrrcvjcilch")
+   (base32 "0nai5m4rbh37qaj1xf2qj7656l2gacfh0847q5d07y22b048fq5n")
    (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
 (define-public linux-libre-4.9-pristine-source
   (let ((version linux-libre-4.9-version)
-        (hash (base32 "059fin4si93ya13xy831w84q496ksxidpd3kyw38918sfy4p6wk7")))
+        (hash (base32 "0l64rz6ly5ls23lqq0cv98xb4z2mimp2jrsjrs6kq3zm4k2mm4gs")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.9)))
 
-(define-public linux-libre-4.4-version "4.4.283")
+(define-public linux-libre-4.4-version "4.4.295")
 (define-public linux-libre-4.4-gnu-revision "gnu1")
 (define deblob-scripts-4.4
   (linux-libre-deblob-scripts
    linux-libre-4.4-version
    linux-libre-4.4-gnu-revision
-   (base32 "11397dgj6cdfv6anxrj7jwgvnqvwh5i0ci6c8mb85ry6h4fnfmq4")
+   (base32 "1mmnv77432la5dkhpy1n8w59c0v6l08fyf2ggh294gyrx8nbci11")
    (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
 (define-public linux-libre-4.4-pristine-source
   (let ((version linux-libre-4.4-version)
-        (hash (base32 "1d9v4h4cbc4i371lhhwpxbmg88gna6xyi2ahfvv0clz60802y982")))
+        (hash (base32 "1h3i2lgm2sy325f58jildip7m6sb4hr2n9pm3gc3h2gash65kc2r")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.4)))
@@ -512,29 +490,15 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
     (patches (append (origin-patches source)
                      patches))))
 
-(define-public linux-libre-5.14-source
-  (source-with-patches linux-libre-5.14-pristine-source
+(define-public linux-libre-5.15-source
+  (source-with-patches linux-libre-5.15-pristine-source
                        (list %boot-logo-patch
-                             %linux-libre-arm-export-__sync_icache_dcache-patch
-                             ;; Pinebook Pro patch to fix LCD display
-                             (search-patch
-                              "linux-libre-arm64-generic-pinebook-lcd.patch"))))
-
-(define-public linux-libre-5.13-source
-  (source-with-patches linux-libre-5.13-pristine-source
-                       (list %boot-logo-patch
-                             %linux-libre-arm-export-__sync_icache_dcache-patch
-                             ;; Pinebook Pro patch to fix LCD display
-                             (search-patch
-                              "linux-libre-arm64-generic-pinebook-lcd.patch"))))
+                             %linux-libre-arm-export-__sync_icache_dcache-patch)))
 
 (define-public linux-libre-5.10-source
   (source-with-patches linux-libre-5.10-pristine-source
                        (list %boot-logo-patch
-                             %linux-libre-arm-export-__sync_icache_dcache-patch
-                             ;; Pinebook Pro patch to fix LCD display
-                             (search-patch
-                              "linux-libre-arm64-generic-pinebook-lcd.patch"))))
+                             %linux-libre-arm-export-__sync_icache_dcache-patch)))
 
 (define-public linux-libre-5.4-source
   (source-with-patches linux-libre-5.4-pristine-source
@@ -638,15 +602,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
     (description "Headers of the Linux-Libre kernel.")
     (license license:gpl2)))
 
-(define-public linux-libre-headers-5.14
-  (make-linux-libre-headers* linux-libre-5.14-version
-                             linux-libre-5.14-gnu-revision
-                             linux-libre-5.14-source))
-
-(define-public linux-libre-headers-5.13
-  (make-linux-libre-headers* linux-libre-5.13-version
-                             linux-libre-5.13-gnu-revision
-                             linux-libre-5.13-source))
+(define-public linux-libre-headers-5.15
+  (make-linux-libre-headers* linux-libre-5.15-version
+                             linux-libre-5.15-gnu-revision
+                             linux-libre-5.15-source))
 
 (define-public linux-libre-headers-5.10
   (make-linux-libre-headers* linux-libre-5.10-version
@@ -854,15 +813,18 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
          (add-after 'unpack 'patch-/bin/pwd
            (lambda _
              (substitute* (find-files "." "^Makefile(\\.include)?$")
-               (("/bin/pwd") "pwd"))
-             #t))
+               (("/bin/pwd") "pwd"))))
          (replace 'configure
            (lambda* (#:key inputs native-inputs target #:allow-other-keys)
-             ;; Avoid introducing timestamps
+             ;; Avoid introducing timestamps.
              (setenv "KCONFIG_NOTIMESTAMP" "1")
              (setenv "KBUILD_BUILD_TIMESTAMP" (getenv "SOURCE_DATE_EPOCH"))
 
-             ;; Set ARCH and CROSS_COMPILE
+             ;; Other variables useful for reproducibility.
+             (setenv "KBUILD_BUILD_USER" "guix")
+             (setenv "KBUILD_BUILD_HOST" "guix")
+
+             ;; Set ARCH and CROSS_COMPILE.
              (let ((arch ,(system->linux-architecture
                            (or (%current-target-system)
                                (%current-system)))))
@@ -933,8 +895,7 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
                  (false-if-file-not-found
                   (delete-file (string-append moddir "/" version "/build")))
                  (false-if-file-not-found
-                  (delete-file (string-append moddir "/" version "/source"))))
-               #t))))
+                  (delete-file (string-append moddir "/" version "/source"))))))))
        #:tests? #f))
     (home-page "https://www.gnu.org/software/linux-libre/")
     (synopsis "100% free redistribution of a cleaned Linux kernel")
@@ -949,25 +910,18 @@ It has been modified to remove all non-free binary blobs.")
 ;;; Generic kernel packages.
 ;;;
 
-(define-public linux-libre-5.14
-  (make-linux-libre* linux-libre-5.14-version
-                     linux-libre-5.14-gnu-revision
-                     linux-libre-5.14-source
-                     '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "riscv64-linux")
-                     #:configuration-file kernel-config))
-
-(define-public linux-libre-5.13
-  (make-linux-libre* linux-libre-5.13-version
-                     linux-libre-5.13-gnu-revision
-                     linux-libre-5.13-source
+(define-public linux-libre-5.15
+  (make-linux-libre* linux-libre-5.15-version
+                     linux-libre-5.15-gnu-revision
+                     linux-libre-5.15-source
                      '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "riscv64-linux")
                      #:configuration-file kernel-config))
 
-(define-public linux-libre-version         linux-libre-5.13-version)
-(define-public linux-libre-gnu-revision    linux-libre-5.13-gnu-revision)
-(define-public linux-libre-pristine-source linux-libre-5.13-pristine-source)
-(define-public linux-libre-source          linux-libre-5.13-source)
-(define-public linux-libre                 linux-libre-5.13)
+(define-public linux-libre-version         linux-libre-5.15-version)
+(define-public linux-libre-gnu-revision    linux-libre-5.15-gnu-revision)
+(define-public linux-libre-pristine-source linux-libre-5.15-pristine-source)
+(define-public linux-libre-source          linux-libre-5.15-source)
+(define-public linux-libre                 linux-libre-5.15)
 
 (define-public linux-libre-5.10
   (make-linux-libre* linux-libre-5.10-version
@@ -1045,9 +999,6 @@ It has been modified to remove all non-free binary blobs.")
                         ("CONFIG_RTC_DRV_RK808" . #t))
                       %default-extra-linux-options)))
 
-(define-public linux-libre-arm-veyron
-  (deprecated-package "linux-libre-arm-veyron" linux-libre-arm-generic))
-
 (define-public linux-libre-arm-generic-5.10
   (make-linux-libre* linux-libre-5.10-version
                      linux-libre-5.10-gnu-revision
@@ -1201,9 +1152,9 @@ It has been modified to remove all non-free binary blobs.")
 (define-public linux-libre-with-bpf
   (let ((base-linux-libre
          (make-linux-libre*
-          linux-libre-5.13-version
-          linux-libre-5.13-gnu-revision
-          linux-libre-5.13-source
+          linux-libre-5.15-version
+          linux-libre-5.15-gnu-revision
+          linux-libre-5.15-source
           '("x86_64-linux" "i686-linux" "armhf-linux"
             "aarch64-linux" "riscv64-linux")
           #:extra-version "bpf"
@@ -1213,7 +1164,8 @@ It has been modified to remove all non-free binary blobs.")
                   %default-extra-linux-options))))
     (package
       (inherit base-linux-libre)
-      (inputs `(("cpio" ,cpio) ,@(package-inputs base-linux-libre))))))
+      (inputs (modify-inputs (package-inputs base-linux-libre)
+                (prepend cpio))))))
 
 
 
@@ -1271,7 +1223,7 @@ and should be used with caution, especially on untested models.")
 (define-public corefreq
   (package
     (name "corefreq")
-    (version "1.86.7")
+    (version "1.87.4")
     (source
      (origin
        (method git-fetch)
@@ -1280,48 +1232,48 @@ and should be used with caution, especially on untested models.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1k8pyxcahc78kcc8q1h76dr91i1r33jciqhgkajkz3xa28qx8mhn"))))
+        (base32 "01g1smhfzb02gmfjm8c7rchc79dan9jc9pv9c0f8f7fly2hy5zvs"))))
     (build-system linux-module-build-system)
     (outputs (list "out" "linux-module"))
     (arguments
-     `(#:imported-modules ((guix build gnu-build-system)
-                           ,@%linux-module-build-system-modules)
-       #:modules ((guix build linux-module-build-system)
-                  ((guix build gnu-build-system) #:prefix gnu:)
-                  (guix build utils))
-       #:make-flags
-       (list (string-append "CC=" ,(cc-for-target))
-             "OPTIM_LVL=3"
-             (string-append "PREFIX=" (assoc-ref %outputs "out")))
-       #:tests? #f                      ; no test suite
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'untangle-module-targets
-           ;; Having to build everything in one pass would complicate the
-           ;; definition.  Let each build system handle what it's good at.
-           (lambda _
-             (substitute* "Makefile"
-               ((".*MAKE.*KERNELDIR.*") ""))))
-         (add-after 'build 'gnu:build
-           (assoc-ref gnu:%standard-phases 'build))
-         (add-after 'install 'gnu:install
-           (assoc-ref gnu:%standard-phases 'install))
-         (add-after 'install 'separate-module
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; Adding INSTALL_MOD_PATH= to #:make-flags would still create an
-             ;; empty <out>/lib/modules directory, so just do it all by hand.
-             (let* ((out    (assoc-ref outputs "out"))
-                    (module (assoc-ref outputs "linux-module")))
-               (mkdir-p (string-append module "/lib"))
-               (rename-file (string-append out    "/lib/modules")
-                            (string-append module "/lib/modules")))))
-         (add-after 'install 'install-README
-           ;; There is no proper documentation.  Provide something.
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (string-append out "/share/doc/"
-                                        ,name "-" ,version)))
-               (install-file "README.md" doc)))))))
+     (list #:imported-modules `((guix build gnu-build-system)
+                                ,@%linux-module-build-system-modules)
+           #:modules `((guix build linux-module-build-system)
+                       ((guix build gnu-build-system) #:prefix gnu:)
+                       (guix build utils))
+           #:make-flags
+           #~(list (string-append "CC=" #$(cc-for-target))
+               "OPTIM_LVL=3"
+               (string-append "PREFIX=" #$output))
+           #:tests? #f                      ; no test suite
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'untangle-module-targets
+                 ;; Having to build everything in one pass would complicate the
+                 ;; definition.  Let each build system handle what it's good at.
+                 (lambda _
+                   (substitute* "Makefile"
+                     ((".*MAKE.*KERNELDIR.*") ""))))
+               (add-after 'build 'gnu:build
+                 (assoc-ref gnu:%standard-phases 'build))
+               (add-after 'install 'gnu:install
+                 (assoc-ref gnu:%standard-phases 'install))
+               (add-after 'install 'separate-module
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   ;; Adding INSTALL_MOD_PATH= to #:make-flags would still create an
+                   ;; empty <out>/lib/modules directory, so just do it all by hand.
+                   (let* ((out    (assoc-ref outputs "out"))
+                          (module (assoc-ref outputs "linux-module")))
+                     (mkdir-p (string-append module "/lib"))
+                     (rename-file (string-append out    "/lib/modules")
+                                  (string-append module "/lib/modules")))))
+               (add-after 'install 'install-README
+                 ;; There is no proper documentation.  Provide something.
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (let* ((out (assoc-ref outputs "out"))
+                          (doc (string-append out "/share/doc/"
+                                              #$name "-" #$version)))
+                     (install-file "README.md" doc)))))))
     (home-page "https://github.com/cyring/CoreFreq")
     (synopsis
      "Measure performance data & tweak low-level settings on x86-64 CPUs")
@@ -1382,55 +1334,9 @@ battery charging thresholds, keyboard backlight, fans and thermal monitors,
 and the notification, WiFi, and Bluetooth LED.")
     (license license:gpl2)))
 
-(define-public rtl8812au-aircrack-ng-linux-module
-  (let ((commit "b8167e66b4ac046b3b76c2c40008d84528e91594")
-        (revision "5"))
-    (package
-      (name "rtl8812au-aircrack-ng-linux-module")
-      (version (git-version "5.6.4.2" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/aircrack-ng/rtl8812au")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "1940f2yz5c4q2fhcd91zfzl32fhdsgr297vzamm7nd8kdk0gymi2"))
-         (modules '((guix build utils)))
-         (snippet
-          '(begin
-             ;; Remove bundled tarballs, APKs, word lists, speadsheets,
-             ;; and other unnecessary unlicenced things.
-             (for-each delete-file-recursively (list "android"
-                                                     "docs"
-                                                     "tools"))
-             #t))))
-      (build-system linux-module-build-system)
-      (arguments
-       `(#:make-flags
-         (list (string-append "KSRC="
-                              (assoc-ref %build-inputs "linux-module-builder")
-                              "/lib/modules/build"))
-         #:phases
-         (modify-phases %standard-phases
-           (replace 'build
-             (lambda* (#:key (make-flags '()) #:allow-other-keys)
-               (apply invoke "make" make-flags))))
-         #:tests? #f))                  ; no test suite
-      (supported-systems '("x86_64-linux" "i686-linux"))
-      (home-page "https://github.com/aircrack-ng/rtl8812au")
-      (synopsis "Linux driver for Realtek USB wireless network adapters")
-      (description
-       "This is Realtek's rtl8812au Linux driver for USB 802.11n wireless
-network adapters, modified by the aircrack-ng project to support monitor mode
-and frame injection.  It provides a @code{88XXau} kernel module that supports
-RTL8812AU, RTL8821AU, and RTL8814AU chips.")
-      (license license:gpl2+))))
-
 (define-public rtl8821ce-linux-module
-  (let ((commit "897e7c4c15dd5a0a569745dc223d969a26ff5bfc")
-        (revision "3"))
+  (let ((commit "ca204c60724d23ab10244f920d4e50759ed1affb")
+        (revision "4"))
     (package
       (name "rtl8821ce-linux-module")
       (version (git-version "0.0.0" revision commit))
@@ -1443,19 +1349,24 @@ RTL8812AU, RTL8821AU, and RTL8814AU chips.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0935dzz0njxh78wfd17yqah1dxn6b3kaszvzclwwrwwhwcrdp80j"))))
+           "18ma8a8h1l90dss0k6al7q6plwr57jc9g67p22g9917k1jfbhm97"))))
       (build-system linux-module-build-system)
       (arguments
        `(#:make-flags
-         (list "CC=gcc"
+         (list (string-append "CC=" ,(cc-for-target))
                (string-append "KSRC="
                               (assoc-ref %build-inputs "linux-module-builder")
                               "/lib/modules/build"))
          #:phases
          (modify-phases %standard-phases
            (replace 'build
-             (lambda* (#:key (make-flags '()) #:allow-other-keys)
-               (apply invoke "make" make-flags))))
+             (lambda* (#:key (make-flags '()) (parallel-build? #t)
+                       #:allow-other-keys)
+               (apply invoke "make"
+                      `(,@(if parallel-build?
+                              `("-j" ,(number->string (parallel-job-count)))
+                              '())
+                        ,@make-flags)))))
          #:tests? #f))                  ; no test suite
       (home-page "https://github.com/tomaspinho/rtl8821ce")
       (synopsis "Linux driver for Realtek RTL8821CE wireless network adapters")
@@ -1463,10 +1374,44 @@ RTL8812AU, RTL8821AU, and RTL8814AU chips.")
 network adapters.")
       (license license:gpl2))))
 
+(define-public rtl8812au-aircrack-ng-linux-module
+  (let ((commit "307d694076b056588c652c2bdaa543a89eb255d9")
+        (revision "6"))
+    (package
+      (inherit rtl8821ce-linux-module)
+      (name "rtl8812au-aircrack-ng-linux-module")
+      (version (git-version "5.6.4.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/aircrack-ng/rtl8812au")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1g2zga7jqzp4azwqpgxxx3lg07ijaaqw3zqnaa3i2brycwlnf8l9"))
+         (modules '((guix build utils)))
+         (snippet
+          '(begin
+             ;; Remove bundled tarballs, APKs, word lists, speadsheets,
+             ;; and other unnecessary unlicenced things.
+             (for-each delete-file-recursively (list "android"
+                                                     "docs"
+                                                     "tools"))))))
+      (supported-systems '("x86_64-linux" "i686-linux"))
+      (home-page "https://github.com/aircrack-ng/rtl8812au")
+      (synopsis "Linux driver for Realtek USB wireless network adapters")
+      (description
+       "This is Realtek's rtl8812au Linux driver for USB 802.11n wireless
+network adapters, modified by the aircrack-ng project to support monitor mode
+and frame injection.  It provides a @code{88XXau} kernel module that supports
+RTL8812AU, RTL8821AU, and RTL8814AU chips.")
+      (license license:gpl2+))))
+
 (define-public vhba-module
   (package
     (name "vhba-module")
-    (version "20210418")
+    (version "20211023")
     (source
      (origin
        (method url-fetch)
@@ -1474,7 +1419,7 @@ network adapters.")
              "http://downloads.sourceforge.net/cdemu/vhba-module/vhba-module-"
              version ".tar.xz"))
        (sha256
-        (base32 "119zgav6caialmf3hr096wkf72l9h76sqc9w5dhx26kj4yp85g8q"))))
+        (base32 "045zvsdb2yjhzhmb6b7rzsn151ylygz0civ8sl3gmki8m6m7n230"))))
     (build-system linux-module-build-system)
     (arguments
      `(#:tests? #f))                    ; no test suite
@@ -1517,18 +1462,19 @@ graphics card on Optimus laptops.")
 (define-public ddcci-driver-linux
   (package
     (name "ddcci-driver-linux")
-    (version "0.3.4")
+    ;; Use an as-yet unmerged commit to fix the build with Linux-Libre 5.15:
+    ;; https://gitlab.com/ddcci-driver-linux/ddcci-driver-linux/-/merge_requests/8
+    (version "0.4.1-0.bf9d798")
     (source
      (origin
        (method git-fetch)
        (uri
         (git-reference
          (url "https://gitlab.com/ddcci-driver-linux/ddcci-driver-linux.git")
-         (commit (string-append "v" version))))
+         (commit "bf9d79852cbd0aa5c2e288ce51b8280f74a1f5d2")))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0b50hhkna6ika2vwahzb9za9b41g39ialgv5y1y0kakqi50qi0ld"))))
+        (base32 "1lww3mnqhxqzj0qbxzbwbq93v9zw49myp7p9ib873a5izbq8nadi"))))
     (build-system linux-module-build-system)
     (arguments
      `(#:tests? #f                               ; no tests
@@ -1540,16 +1486,14 @@ graphics card on Optimus laptops.")
               (lambda (module)
                 (with-directory-excursion module
                   (apply (assoc-ref %standard-phases 'build) args)))
-              '("ddcci" "ddcci-backlight"))
-             #t))
+              '("ddcci" "ddcci-backlight"))))
          (replace 'install
            (lambda args
              (for-each
               (lambda (module)
                 (with-directory-excursion module
                   (apply (assoc-ref %standard-phases 'install) args)))
-              '("ddcci" "ddcci-backlight"))
-             #t)))))
+              '("ddcci" "ddcci-backlight")))))))
     (home-page "https://gitlab.com/ddcci-driver-linux/ddcci-driver-linux")
     (synopsis "Pair of Linux kernel drivers for DDC/CI monitors")
     (description "This package provides two Linux kernel drivers, ddcci and
@@ -1648,12 +1592,11 @@ rules, which need to be installed separately.")
 
     (build-system gnu-build-system)
     (native-inputs
-     `(("flex" ,flex)
-
-       ;; TODO: optional dependencies
-       ;; ("libxcrypt" ,libxcrypt)
-       ;; ("cracklib" ,cracklib)
-       ))
+     (list flex
+           ;; TODO: optional dependencies
+           ;; ("libxcrypt" ,libxcrypt)
+           ;; ("cracklib" ,cracklib)
+           ))
     (arguments
      `(;; Most users, such as `shadow', expect the headers to be under
        ;; `security'.
@@ -1730,9 +1673,9 @@ at login.  Local and dynamic reconfiguration are its key features.")
                  (invoke "python" "-m" "pamela" "-a" "`whoami`"))
                #t))))))
     (inputs
-     `(("linux-pam" ,linux-pam)))
+     (list linux-pam))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/minrk/pamela")
     (synopsis "PAM interface using ctypes")
     (description "This package provides a PAM interface using @code{ctypes}.")
@@ -1753,12 +1696,9 @@ at login.  Local and dynamic reconfiguration are its key features.")
                 "1bf91gi6zmfzzmczxm7pajxdlgnikasvg5xsd3j0a368rcr7lf9l"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gnupg" ,gnupg)
-       ("linux-pam" ,linux-pam)))
+     (list gnupg linux-pam))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (arguments
      `(#:tests? #f ;no tests suite
        #:configure-flags
@@ -1805,14 +1745,16 @@ It provides the commands @code{powercap-info} and @code{powercap-set}.")
 (define-public powerstat
   (package
     (name "powerstat")
-    (version "0.02.26")
+    (version "0.02.27")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://kernel.ubuntu.com/~cking/tarballs/"
-                           "powerstat/powerstat-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ColinIanKing/powerstat")
+             (commit (string-append "V" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "18m85k83hryj05vix63fay1hh0sb9h87hy5r7g1dqg2y9i8lzgxk"))))
+        (base32 "1ik5yv2bhz2hvyga4h1m28rf0xpi20zpqm4swhvskyf1g6qf381z"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -1859,7 +1801,7 @@ deviation, and minimum and maximum values.  It can show a nice histogram too.")
                 "ac_cv_func_malloc_0_nonnull=yes"
                 "ac_cv_func_realloc_0_nonnull=yes"))
              '())))
-    (inputs `(("ncurses" ,ncurses)))
+    (inputs (list ncurses))
     (home-page "https://gitlab.com/psmisc/psmisc")
     (synopsis "Small utilities that use the proc file system")
     (description
@@ -1957,16 +1899,14 @@ providing the system administrator with some help in common tasks.")
                          (string-append
                           all "\n"
                           "ts_skip \"setarch tests are unreliable under QEMU\"")))))
-                  ,@(if (target-x86-32?)
-                        `((add-before 'check 'disable-lsns-test
-                            (lambda _
-                              ;; The lsns tests can fail due to ioctl(_, NS_GET_USERNS)
-                              ;; returning ENOTTY, indicating this kernel does not
-                              ;; support user namespaces.  Curiously, this test can fail
-                              ;; on i686 even if the same test passes on x86_64 on the
-                              ;; same machine.  See <https://issues.guix.gnu.org/49933>.
-                              (delete-file "tests/ts/lsns/ioctl_ns"))))
-                        '())
+                  (add-before 'check 'disable-lsns-test
+                    (lambda _
+                      ;; The lsns tests can fail due to ioctl(_, NS_GET_USERNS)
+                      ;; returning ENOTTY, indicating this kernel does not
+                      ;; support user namespaces.  Curiously, this test can fail
+                      ;; on i686 even if the same test passes on x86_64 on the
+                      ;; same machine.  See <https://issues.guix.gnu.org/49933>.
+                      (delete-file "tests/ts/lsns/ioctl_ns")))
                   (add-after 'install 'move-static-libraries
                     (lambda* (#:key outputs #:allow-other-keys)
                       (let ((lib    (assoc-ref outputs "lib"))
@@ -2091,8 +2031,7 @@ by Robert Shea and Robert Anton Wilson.")
        #:parallel-build? #f
        #:tests? #f))                    ; no test suite
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (home-page "http://users.telenet.be/geertu/Linux/fbdev/")
     (synopsis "Show and modify Linux frame buffer settings")
     (description
@@ -2137,7 +2076,7 @@ parameters.")
                                     '("^kill" "^uptime"))))
               (for-each delete-file dup)
               #t))))))
-    (inputs `(("ncurses" ,ncurses)))
+    (inputs (list ncurses))
     (home-page "https://gitlab.com/procps-ng/procps/")
     (synopsis "Utilities that give information about processes")
     (description
@@ -2150,14 +2089,14 @@ slabtop, tload, top, vmstat, w, watch and sysctl.")
 (define-public usbutils
   (package
     (name "usbutils")
-    (version "013")
+    (version "014")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://kernel.org/linux/utils/usb/usbutils/"
                           "usbutils-" version ".tar.xz"))
       (sha256
-       (base32 "0f0klk6d3hmbpf6p4dcwa1qjzblmkhbxs1wsw87aidvqri7lj8wy"))))
+       (base32 "0sgwfvr1b5w3ai1c0rmvzhk67y9vh7bq490rcxxj4q05svx9q1rs"))))
     (build-system gnu-build-system)
     (outputs (list "out" "python"))
     (arguments
@@ -2166,12 +2105,7 @@ slabtop, tload, top, vmstat, w, watch and sysctl.")
          (add-before 'bootstrap 'patch-bootstrap-scripts
            (lambda _
              (substitute* "usbhid-dump/bootstrap"
-               (("/bin/sh") (which "sh")))
-
-             ;; Don't let autogen.sh run configure with bogus options & CFLAGS.
-             (substitute* "autogen.sh"
-               (("^\\./configure.*") ""))
-             #t))
+               (("/bin/sh") (which "sh")))))
          (add-after 'install 'separate-python-output
            ;; Separating one Python script shaves more than 106 MiB from :out.
            (lambda* (#:key outputs #:allow-other-keys)
@@ -2182,17 +2116,11 @@ slabtop, tload, top, vmstat, w, watch and sysctl.")
                                  (new (string-append out:python "/" file)))
                              (mkdir-p (dirname new))
                              (rename-file old new)))
-                         (list "bin/lsusb.py"))
-               #t))))))
+                         (list "bin/lsusb.py"))))))))
     (inputs
-     `(("eudev" ,eudev)
-       ("libusb" ,libusb)
-       ("python" ,python)))
+     (list eudev libusb python))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (home-page "http://www.linux-usb.org/")
     (synopsis
      "Tools for working with USB devices, such as lsusb")
@@ -2217,7 +2145,7 @@ slabtop, tload, top, vmstat, w, watch and sysctl.")
      `(("automake" ,automake)
        ("autoreconf" ,autoconf)
        ("libtool" ,libtool)))
-    (inputs `(("eudev" ,eudev)))
+    (inputs (list eudev))
     (home-page (package-home-page linux-libre))
     (synopsis "Utilities for sharing USB devices over IP networks")
     (description
@@ -2235,7 +2163,7 @@ module.")
 (define-public e2fsprogs
   (package
     (name "e2fsprogs")
-    (version "1.45.6")
+    (version "1.46.4")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -2244,15 +2172,14 @@ module.")
                    "e2fsprogs-" version ".tar.xz"))
              (sha256
               (base32
-               "0mj2yizwygs7xww8jfy5mxjn8ww4pvc0b1hg1p2vsnirailsx9zz"))))
+               "04wp77fg842dhribgn0xvbd77idh0n7a839ga4bwy78v7i9l445i"))))
     (build-system gnu-build-system)
-    (inputs `(("util-linux" ,util-linux "lib")))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("texinfo" ,texinfo)       ;for the libext2fs Info manual
-
-                     ;; For tests.
-                     ("perl" ,perl)
-                     ("procps" ,procps)))
+    (inputs (list `(,util-linux "lib")))
+    (native-inputs (list pkg-config
+                         texinfo ;for the libext2fs Info manual
+                         ;; For tests.
+                         perl
+                         procps))
     (arguments
      '(;; util-linux is the preferred source for some of the libraries and
        ;; commands, so disable them (see, e.g.,
@@ -2286,8 +2213,7 @@ module.")
                 "INSTALL_SYMLINK = sh"))
              (substitute* (find-files "." "^Makefile.in$")
                (("#!/bin/sh")
-                (string-append "#!" (which "sh"))))
-             #t))
+                (string-append "#!" (which "sh"))))))
            (add-after 'install 'install-libs
              (lambda* (#:key outputs #:allow-other-keys)
                (let* ((out (assoc-ref outputs "out"))
@@ -2302,8 +2228,7 @@ module.")
                  (let ((archives (find-files lib "\\.a$")))
                    (for-each (lambda (file)
                                (chmod file #o666))
-                             archives))
-                 #t))))))
+                             archives))))))))
     (home-page "http://e2fsprogs.sourceforge.net/")
     (synopsis "Creating and checking ext2/ext3/ext4 file systems")
     (description
@@ -2330,7 +2255,7 @@ module.")
     (build-system trivial-build-system)
     (source #f)
     (inputs
-     `(("e2fsprogs" ,e2fsprogs/static)))
+     (list e2fsprogs/static))
     (arguments
      `(#:modules ((guix build utils))
        #:builder
@@ -2339,8 +2264,7 @@ module.")
                       (ice-9 ftw)
                       (srfi srfi-26))
 
-         (let ((e2fsck (string-append (assoc-ref %build-inputs "e2fsprogs")
-                                      "/sbin/e2fsck"))
+         (let ((e2fsck (search-input-file %build-inputs "/sbin/e2fsck"))
                (bin    (string-append (assoc-ref %outputs "out") "/sbin")))
            (mkdir-p bin)
            (with-directory-excursion bin
@@ -2369,7 +2293,7 @@ from the e2fsprogs package.  It is meant to be used in initrds.")
          "1x0r7ylxlp9lbj3d7sqf6j2a222dwy2nfpff05jd6mkh4ihxvyd1"))
        (patches (search-patches "extundelete-e2fsprogs-1.44.patch"))))
     (build-system gnu-build-system)
-    (inputs `(("e2fsprogs" ,e2fsprogs)))
+    (inputs (list e2fsprogs))
     (home-page "http://extundelete.sourceforge.net/")
     (synopsis "Recover deleted files from ext2/3/4 partitions")
     (description
@@ -2423,7 +2347,8 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
                                  "/strace-" version ".tar.xz"))
              (sha256
               (base32
-               "0mmns22bjjvakxj29si0x4dcylcgy26llpcimkb0llcxif439k2s"))))
+               "0mmns22bjjvakxj29si0x4dcylcgy26llpcimkb0llcxif439k2s"))
+             (patches (search-patches "strace-readlink-tests.patch"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -2436,10 +2361,6 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
          (add-after 'unpack 'disable-failing-tests
            (lambda _
              (substitute* "tests/Makefile.in"
-               ;; XXX: This test fails because an extra readlink call is made
-               ;; by the glibc when using the ld.so cache.
-               (("readlink.gen.test[^:]") " ")
-
                ;; XXX: These hang forever even if the test time-out is
                ;; extended.
                (("^\tstrace-DD?D?\\.test \\\\.*") "")
@@ -2451,7 +2372,7 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
        #:configure-flags '("--enable-mpers=check")
        ;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32459>.
        #:parallel-tests? #f))           ; undeterministic failures
-    (native-inputs `(("perl" ,perl)))
+    (native-inputs (list perl))
     (synopsis "System call tracer for Linux")
     (description
      "strace is a system call tracer, i.e. a debugging tool which prints out a
@@ -2569,8 +2490,7 @@ configuration files that can be used for specific audio hardware.")
                (symlink topology-share (string-append alsa "/topology")))
              #t)))))
     (inputs
-     `(("alsa-ucm-conf" ,alsa-ucm-conf)
-       ("alsa-topology-conf" ,alsa-topology-conf)))
+     (list alsa-ucm-conf alsa-topology-conf))
     (home-page "https://www.alsa-project.org/wiki/Main_Page")
     (synopsis "The Advanced Linux Sound Architecture libraries")
     (description
@@ -2619,10 +2539,7 @@ MIDI functionality to the Linux-based operating system.")
     (native-inputs
      `(("gettext" ,gettext-minimal)))
     (inputs
-     `(("libsamplerate" ,libsamplerate)
-       ("ncurses" ,ncurses)
-       ("alsa-lib" ,alsa-lib)
-       ("xmlto" ,xmlto)))
+     (list libsamplerate ncurses alsa-lib xmlto))
     (home-page "http://www.alsa-project.org/")
     (synopsis "Utilities for the Advanced Linux Sound Architecture (ALSA)")
     (description
@@ -2684,14 +2601,14 @@ MIDI functionality to the Linux-based operating system.")
                          (find-files out ".*pulse\\.(la|so)"))
                #t))))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("speex" ,speex) ; libspeexdsp resampling plugin
-       ("libsamplerate" ,libsamplerate) ; libsamplerate resampling plugin
-       ("ffmpeg" ,ffmpeg) ; libavcodec resampling plugin, a52 plugin
-       ("pulseaudio" ,pulseaudio))) ; PulseAudio plugin
+     (list alsa-lib
+           jack-1
+           speex ; libspeexdsp resampling plugin
+           libsamplerate ; libsamplerate resampling plugin
+           ffmpeg ; libavcodec resampling plugin, a52 plugin
+           pulseaudio)) ; PulseAudio plugin
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://www.alsa-project.org/")
     (synopsis "Plugins for the Advanced Linux Sound Architecture (ALSA)")
     (description
@@ -2719,12 +2636,9 @@ external rate conversion.")
         (base32 "1w6qx3sxzkv80shk21f63rq41c84irpx68k62m2cv629n1mwj2f1"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("flex" ,flex)
-       ("bison" ,bison)))
+     (list pkg-config flex bison))
     (inputs
-     `(("libmnl" ,libmnl)
-       ("libnftnl" ,libnftnl)))
+     (list libmnl libnftnl/fixed))
     (arguments
      '(#:tests? #f       ; no test suite
        #:configure-flags ; add $libdir to the RUNPATH of executables
@@ -2745,7 +2659,7 @@ Both commands are targeted at system administrators.")
 (define-public jitterentropy-rngd
   (package
     (name "jitterentropy-rngd")
-    (version "1.2.0")
+    (version "1.2.6")
     (source
      (origin
        (method git-fetch)
@@ -2754,7 +2668,7 @@ Both commands are targeted at system administrators.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1fb8zfwhwkl1d8n4cdn7rdv5rwd75qgc00d36pmkl7wgnj3c9xda"))))
+        (base32 "03cbcxkscjcmn6ybkmssq7i39sn5cfsap9fv058pi0k2mr90djwq"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no test suite
@@ -2824,8 +2738,7 @@ name.")
                "0apxgmkhsk3vxn9q3libxn3dgrdljrxyy4mli2gk49m7hi3na7xp"))))
     (build-system gnu-build-system)
     (inputs
-     `(("perl" ,perl)
-       ("iptables" ,iptables)))
+     (list perl iptables))
     (synopsis "Ethernet bridge frame table administration")
     (home-page "https://ebtables.netfilter.org/")
     (description
@@ -2838,7 +2751,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
 (define-public iproute
   (package
     (name "iproute2")
-    (version "5.13.0")
+    (version "5.15.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2846,7 +2759,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "0dhvdybfm33q9lz73sfnc24pxy2r42xywzb1gdgydjfafhvyb8kj"))))
+                "1zwin8sjnnwf2a9rjwzb3q8lkhcpy06s29sh05f5gxd7z6jy9qrq"))))
     (build-system gnu-build-system)
     (arguments
      `( ;; There is a test suite, but it wants network namespaces and sudo.
@@ -2885,9 +2798,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
        ("iptables" ,iptables)
        ("libmnl" ,libmnl)))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("pkg-config" ,pkg-config)))
+     (list bison flex pkg-config))
     ;; For tests.
     ;; ("libmnl" ,libmnl)
     ;; ("util-linux" ,util-linux)
@@ -3017,7 +2928,7 @@ configuration (iptunnel, ipmaddr).")
                                                (%current-target-system) "-")
                                "BUILD_CC=gcc")
                              '()))))
-    (native-inputs `(("perl" ,perl)))
+    (native-inputs (list perl))
     (supported-systems (delete "i586-gnu" %supported-systems))
     (home-page "https://sites.google.com/site/fullycapable/")
     (synopsis "Library for working with POSIX capabilities")
@@ -3031,37 +2942,20 @@ Linux-based operating systems.")
 (define-public bridge-utils
   (package
     (name "bridge-utils")
-    (version "1.7")
+    (version "1.7.1")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://kernel.org/linux/kernel/people/shemminger/"
+       (uri (string-append "mirror://kernel.org/linux/utils/net/"
                            "bridge-utils/bridge-utils-" version ".tar.xz"))
        (sha256
-        (base32 "0zlrigizac2nfwgvksm92v4wafrpgxlbci3gwimc795ib7k8g6ck"))))
+        (base32 "03p6cmhm6cqhnfsfa1wv7frhb361y12daf7gr1h5qh51y7j8n7d6"))))
     (build-system gnu-build-system)
 
     ;; The tarball lacks all the generated files.
-    (native-inputs `(("autoconf" ,autoconf)
-                     ("automake" ,automake)))
+    (native-inputs (list autoconf automake))
     (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-before 'bootstrap 'patch-stuff
-           (lambda _
-             ;; Fix "field ‘ip6’ has incomplete type" errors.
-             (substitute* "libbridge/libbridge.h"
-               (("#include <linux/if_bridge.h>")
-                "#include <linux/in6.h>\n#include <linux/if_bridge.h>"))
-
-             ;; Ensure that the entire build fails if one of the
-             ;; sub-Makefiles fails.
-             (substitute* "Makefile.in"
-               (("\\$\\(MAKE\\) \\$\\(MFLAGS\\) -C \\$\\$x ;")
-                "$(MAKE) $(MFLAGS) -C $$x || exit 1;"))
-
-             #t)))
-       #:tests? #f))                              ; no 'check' target
+     '(#:tests? #f))                    ; no 'check' target
 
     (home-page "https://wiki.linuxfoundation.org/networking/bridge")
     (synopsis "Manipulate Ethernet bridges")
@@ -3140,7 +3034,7 @@ configuration and monitoring interfaces.")
                     `(("python-2" ,python-2)))
                    ((string=? python "python3")
                     `(("python-3" ,python-3))))))
-      (propagated-inputs `(("libnl" ,libnl)))
+      (propagated-inputs (list libnl))
       (outputs '("out"))
       (arguments
        `(#:modules ((guix build gnu-build-system)
@@ -3177,8 +3071,8 @@ configuration and monitoring interfaces.")
                (base32
                 "12ddd6vh6vs97135bnlyr0szv7hvpbnmfh48584frzab0z0725ph"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("libnl" ,libnl)))
+    (native-inputs (list pkg-config))
+    (inputs (list libnl))
     (arguments
      `(#:make-flags
        (let* ((target ,(%current-target-system))
@@ -3235,11 +3129,7 @@ devices.  It replaces @code{iwconfig}, which is deprecated.")
                  (("/usr/sbin/hciconfig") "hciconfig"))
                #t))))))
     (inputs
-     `(("kmod" ,kmod)
-       ("libnl" ,libnl)
-       ("ncurses" ,ncurses)
-       ("pciutils" ,pciutils)
-       ("zlib" ,zlib)))
+     (list kmod libnl ncurses pciutils zlib))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -3269,7 +3159,10 @@ settings.")
                (base32
                 "0a8fwyxnc5qdxff8sl2sfsbnvgh6pkij4yafiln0fxgg6bal7knj"))))
     (build-system gnu-build-system)
-    (inputs `(("ncurses" ,ncurses)))
+    (arguments
+     ;; Allow compilation with GCC 10.
+     '(#:configure-flags '("CFLAGS=-O2 -g -fcommon")))
+    (inputs (list ncurses))
     (home-page "http://www.jpj.net/~trevor/aumix.html")
     (synopsis "Audio mixer for X and the console")
     (description
@@ -3299,7 +3192,7 @@ the command line or a script.")
              #t)))
        ;; There are currently no checks in the package.
        #:tests? #f))
-    (native-inputs `(("python" ,python)))
+    (native-inputs (list python))
     (home-page "http://guichaz.free.fr/iotop/")
     (synopsis
      "Displays the IO activity of running processes")
@@ -3323,8 +3216,7 @@ processes currently causing I/O.")
               (patches (search-patches "fuse-overlapping-headers.patch"))))
     (build-system gnu-build-system)
     (inputs
-     `(("bash-minimal" ,bash-minimal)
-       ("util-linux" ,util-linux)))
+     (list bash-minimal util-linux))
     (arguments
      '(#:configure-flags (list (string-append "MOUNT_FUSE_PATH="
                                               (assoc-ref %outputs "out")
@@ -3372,10 +3264,70 @@ user-space processes.")
     (license (list license:lgpl2.1                ;library
                    license:gpl2+))))              ;command-line utilities
 
+(define-public fuse-3
+  (package
+    (inherit fuse)
+    (name "fuse")
+    (version "3.10.5")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://github.com/libfuse/libfuse/releases/"
+                              "download/fuse-" version
+                              "/fuse-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0rlnnsiw614qcmgy8xz67044gqc1pbvvf2yxjv44lh27bm487qmj"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:configure-flags
+       ,#~(list
+           (string-append "-Dudevrulesdir=" #$output "/udev/rules.d")
+           "-Duseroot=false")
+       #:tests? #f
+       #:phases
+       ,#~(modify-phases %standard-phases
+            (add-after 'unpack 'set-file-names
+              (lambda* (#:key inputs #:allow-other-keys)
+                ;; libfuse calls out to mount(8) and umount(8).  Make sure
+                ;; it refers to the right ones.
+                (substitute* '("lib/mount_util.c")
+                  (("/bin/(u?)mount" _ maybe-u)
+                   (search-input-file inputs
+                                      (string-append "bin/"
+                                                     maybe-u "mount"))))
+                (substitute* '("util/mount.fuse.c")
+                  (("/bin/sh")
+                   (search-input-file inputs "/bin/sh")))
+
+                ;; This hack leads libfuse to search for 'fusermount' in
+                ;; $PATH, where it may find a setuid-root binary, instead of
+                ;; trying solely $out/sbin/fusermount and failing because
+                ;; it's not setuid.
+                (substitute* "lib/meson.build"
+                  (("-DFUSERMOUNT_DIR=[[:graph:]]+")
+                   "-DFUSERMOUNT_DIR=\"/var/empty\"'"))))
+            (add-after 'unpack 'fix-install
+              (lambda* (#:key inputs #:allow-other-keys)
+                (substitute* '("util/meson.build")
+                  (("install_helper.sh") "true"))
+               (substitute* '("util/meson.build")
+                  (("fuseconf_path = .*")
+                   "fuseconf_path = '/etc/fuse.conf'"))))
+            (add-before 'configure 'set-paths
+              (lambda* (#:key inputs outputs #:allow-other-keys)
+                (let ((dummy-init.d
+                       (string-append (getcwd) "/etc/init.d")))
+                  (setenv "MOUNT_FUSE_PATH"
+                          (string-append #$output "/sbin"))
+                  (setenv "UDEV_RULES_PATH"
+                          (string-append #$output
+                                         "/lib/udev/rules.d"))))))))))
+
 (define-public unionfs-fuse
   (package
     (name "unionfs-fuse")
-    (version "2.1")
+    (version "2.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3384,11 +3336,11 @@ user-space processes.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0bwx70x834qgqh53vqp18bhbxbsny80hz922rbgj8k9wj7cbfilm"))))
+                "1yigh8z1q6iq6yjyq7kl7vpbpjnxjld32apvjaw2bl44pqqg56hh"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("python" ,python)))
-    (inputs `(("fuse" ,fuse)))
+     (list python))
+    (inputs (list fuse))
     (arguments
      ;; The tests were never actually run ("collected 0 items"), but in recent
      ;; versions of pytest that causes an error.
@@ -3469,10 +3421,9 @@ UnionFS-FUSE additionally supports copy-on-write.")
                 "00fir2iykdx11g8nv5gijg0zjrp2g3ldypnv0yi6lq3h5pg5v13h"))))
     (build-system gnu-build-system)
     (inputs
-     `(("fuse" ,fuse)
-       ("glib" ,glib)))
+     (list fuse glib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/libfuse/sshfs")
     (synopsis "Mount remote file systems over SSH")
     (description
@@ -3499,9 +3450,8 @@ file system is as easy as logging into the server with an SSH client.")
        (sha256
         (base32 "1cy5b6qril9c3ry6fv7ir87s8iyy5vxxmbyx90dm86fbra0vjaf5"))))
     (build-system gnu-build-system)
-    (inputs `(("fuse" ,fuse)
-              ("libarchive" ,libarchive)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list fuse libarchive))
+    (native-inputs (list pkg-config))
     (home-page "https://www.cybernoia.de/software/archivemount.html")
     (synopsis "Tool for mounting archive files with FUSE")
     (description "archivemount is a FUSE-based file system for Unix variants,
@@ -3622,8 +3572,7 @@ NUMA performance on your system.")
                              `("PATH" ":" prefix (,bin))))
                          '("unicode_start" "unicode_stop"))))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf pkg-config))
     (inputs
      `(("bzip2" ,bzip2)
        ("gzip" ,gzip)
@@ -3696,9 +3645,7 @@ for systems using the Linux kernel.  This includes commands such as
                 "1m8avqccrhm38krlhp88a7v949f3hrzx060bbrr5dp5qw2nmw9j2"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (arguments
      `(#:configure-flags
        (list "--disable-static")))
@@ -3724,9 +3671,9 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.")
               (patches (search-patches "kmod-module-directory.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ;; For tests.
-       ("zstd" ,zstd)))
+     (list pkg-config
+           ;; For tests.
+           zstd))
     (inputs
      `(("xz" ,xz)
        ("zlib" ,zlib)
@@ -3808,8 +3755,8 @@ from the module-init-tools project.")
                             (string-append "PREFIX=" prefix)
                             (string-append "SYSCONFDIR=" prefix "/etc")))
        #:test-target "test"))
-    (native-inputs `(("go" ,go)           ;for the test suite
-                     ("pandoc" ,pandoc))) ;to generate the manpage
+    (native-inputs (list go ;for the test suite
+                         pandoc)) ;to generate the manpage
     (home-page "https://github.com/rfjakob/earlyoom")
     (synopsis "Simple out of memory (OOM) daemon for the Linux kernel")
     (description "Early OOM is a minimalist out of memory (OOM) daemon that
@@ -3905,8 +3852,8 @@ to the in-kernel OOM killer.")
      ;; When linked against libblkid, eudev can populate /dev/disk/by-label
      ;; and similar; it also installs the '60-persistent-storage.rules' file,
      ;; which contains the rules to do that.
-     `(("util-linux" ,util-linux "lib")           ;for blkid
-       ("kmod" ,kmod)))
+     (list `(,util-linux "lib") ;for blkid
+           kmod))
     (outputs '("out" "static"))
     (home-page "https://wiki.gentoo.org/wiki/Project:Eudev")
     (synopsis "Userspace device management")
@@ -3926,8 +3873,6 @@ time.")
        (sha256
         (base32 "0kb3636yaw9l8xi8s184w0r0n9ic5dw3b8hx048jf9fpzss4kimi"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("kernel-headers" ,linux-libre-headers)))
     (arguments
      `(#:tests? #f                      ;no rule for tests
        #:phases
@@ -3955,7 +3900,7 @@ devices that can inject events directly into the input subsystem.")
 (define-public interception-tools
   (package
     (name "interception-tools")
-    (version "0.6.7")
+    (version "0.6.8")
     (home-page "https://gitlab.com/interception/linux/tools")
     (source (origin
               (method git-fetch)
@@ -3965,17 +3910,14 @@ devices that can inject events directly into the input subsystem.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0wcmppa7092b33wb8vc782day5phf90pc25cn1x7rk0rlw565z36"))))
+                "1sbidym6ld4c8cx2ww5i54zsv8v0kygv15zq1yimz44v4my605wf"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("boost" ,boost)
-       ("libevdev" ,libevdev)
-       ("libudev" ,eudev)
-       ("yaml-cpp" ,yaml-cpp)))
+     (list boost libevdev eudev yaml-cpp))
     (arguments
-     `(#:tests? #f)) ; no test suite
+     `(#:tests? #f))                    ; no test suite
     (synopsis "Utilities for operating on input events of evdev devices")
     (description
      "Interception Tools provides a composable infrastructure on top of
@@ -4007,8 +3949,7 @@ devices that can inject events directly into the input subsystem.")
                 "0s49vbg3j4rwh78i8rx8qr7myql09p7b3lhrjl0p7dd98xp6ann6"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libevdev" ,libevdev)
-       ("yaml-cpp" ,yaml-cpp)))
+     (list libevdev yaml-cpp))
     (arguments
      `(#:make-flags (list ,(string-append "CC=" (cc-for-target))
                           ,(string-append "CXX=" (cxx-for-target))
@@ -4060,8 +4001,7 @@ one to send arbitrary keycodes when a given key is tapped or held.")
               (patches (search-patches "lvm2-static-link.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("procps" ,procps)))                       ;tests use 'pgrep'
+     (list pkg-config procps))                       ;tests use 'pgrep'
     (inputs
      `(("libaio" ,libaio)
        ("udev" ,eudev)))
@@ -4170,9 +4110,7 @@ mapper.  Kernel components are part of Linux-libre.")
      `(("automake" ,automake)
        ("autoreconf" ,autoconf)))
     (inputs
-     `(("boost" ,boost)
-       ("expat" ,expat)
-       ("libaio" ,libaio)))
+     (list boost expat libaio))
     (synopsis "Tools for manipulating the metadata of device-mapper targets")
     (description "A suite of tools for manipulating the metadata of the
 dm-thin, dm-cache and dm-era device-mapper targets.")
@@ -4305,9 +4243,8 @@ interface.")
                        (string-append "REG_BIN=" regdb
                                       "/lib/crda/regulatory.bin")
                        "all_noverify"))))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("wireless-regdb" ,wireless-regdb)))
-    (inputs `(("libnl" ,libnl)))
+    (native-inputs (list pkg-config wireless-regdb))
+    (inputs (list libnl))
     (home-page
      "https://wireless.wiki.kernel.org/en/developers/Regulatory/CRDA")
     (synopsis "Central regulatory domain agent (CRDA) for WiFi")
@@ -4403,14 +4340,8 @@ country-specific regulations for the wireless spectrum.")
         (base32 "1ipf6wjx037sqyhy0r5jh4983h216anq9l68ckn2x5c3qc4wfmzn"))
        (patches (search-patches "lm-sensors-hwmon-attrs.patch"))))
     (build-system gnu-build-system)
-    (inputs `(("rrdtool" ,rrdtool)
-              ("perl" ,perl)
-              ("kmod" ,kmod)
-              ("gnuplot" ,gnuplot)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("flex" ,flex)
-                     ("bison" ,bison)
-                     ("which" ,which)))
+    (inputs (list rrdtool perl kmod gnuplot))
+    (native-inputs (list pkg-config flex bison which))
     (outputs '("lib"                    ; avoid perl in closure
                "out"))
     (arguments
@@ -4509,7 +4440,7 @@ create a firmware image suitable for the Linux kernel, and more.")
        ;; No configure script.
        #:phases (modify-phases %standard-phases (delete 'configure))))
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "http://jdelvare.nerim.net/devel.html#i2ctools")
     (synopsis "I2C tools for Linux")
     (description
@@ -4534,7 +4465,7 @@ SMBus access.")
     (build-system gnu-build-system)
     (inputs `(("lm-sensors" ,lm-sensors "lib")
               ("gtk" ,gtk+-2)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -4764,7 +4695,7 @@ Translation (@dfn{SAT}) are also supported.")
 (define-public nvme-cli
   (package
     (name "nvme-cli")
-    (version "1.14")
+    (version "1.15")
     (home-page "https://github.com/linux-nvme/nvme-cli")
     (source (origin
               (method git-fetch)
@@ -4772,7 +4703,7 @@ Translation (@dfn{SAT}) are also supported.")
                     (url home-page)
                     (commit (string-append "v" version))))
               (sha256
-               (base32 "0dpadz945482srqpsbfx1bh7rc499fgpyzz1flhk9g9xjbpapkzc"))
+               (base32 "0qr1wa163cb7z6g083nl3zcc28mmlbxh1m97pd54bp3gyrhmdhhr"))
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
@@ -4845,14 +4776,14 @@ about ACPI devices.")
 (define-public acpid
   (package
     (name "acpid")
-    (version "2.0.32")
+    (version "2.0.33")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/acpid2/acpid-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0zhmxnhnhg4v1viw82yjr22kram6k5k1ixznhayk8cnw7q5x7lpj"))))
+                "1s6vf8lqwrcqi14k0ww47pk1kifbvxin73ha7mk1njmk7qdzfmh8"))))
     (build-system gnu-build-system)
     (home-page "https://sourceforge.net/projects/acpid2/")
     (synopsis "Daemon for delivering ACPI events to user-space programs")
@@ -4888,50 +4819,40 @@ also contains the libsysfs library.")
     ;; The rest is mostly gpl2, with a few files indicating gpl2+.
     (license (list license:gpl2 license:gpl2+ license:lgpl2.1+))))
 
-(define-public sysfsutils-1
-  (package
-    (inherit sysfsutils)
-    (version "1.3.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri
-        (string-append
-         "mirror://sourceforge/linux-diag/sysfsutils/sysfsutils-" version
-         "/sysfsutils-" version ".tar.gz"))
-       (sha256
-        (base32 "0kdhs07fm8263pxwd5blwn2x211cg4fk63fyf9ijcdkvzmwxrqq3"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           (substitute* "Makefile.in"
-             (("includedir = /usr/include/sysfs")
-              "includedir = @includedir@"))
-           (substitute* "configure"
-             (("includedir='(\\$\\{prefix\\}/include)'" all orig)
-              (string-append "includedir='" orig "/sysfs'")))
-           #t))))
-    (synopsis "System utilities based on Linux sysfs (version 1.x)")))
-
 (define-public cpufrequtils
   (package
     (name "cpufrequtils")
-    (version "0.3")
+    (version "008")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kernel.org/linux/utils/kernel/cpufreq/"
                            "cpufrequtils-" version ".tar.gz"))
        (sha256
-        (base32 "0qfqv7nqmjfr3p0bwrdlxkiqwqr7vmx053cadaa548ybqbghxmvm"))
-       (patches (search-patches "cpufrequtils-fix-aclocal.patch"))))
+        (base32 "0xjs8j44hh0cz6qpig1n0iw8xjpr6s5qmcmwh965ngapxgarr7af"))))
     (build-system gnu-build-system)
-    (native-inputs
-     `(("sysfsutils" ,sysfsutils-1)))
     (arguments
-     '(#:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
-                                         (assoc-ref %outputs "out") "/lib"))))
-    (home-page "https://www.kernel.org/pub/linux/utils/kernel/cpufreq/")
+     `(#:tests? #f                      ; no test suite
+       #:make-flags
+       (let ((out (assoc-ref %outputs "out")))
+         (list "PROC=false"             ; obsoleted by sysfs in Linux 2.6(!)
+               (string-append "CC=" ,(cc-for-target))
+               (string-append "LDFLAGS=-Wl,-rpath=" out "/lib")
+               "INSTALL=install"
+               (string-append "bindir=" out "/bin")
+               (string-append "sbindir=" out "/sbin")
+               (string-append "mandir=" out "/share/man")
+               (string-append "includedir=" out "/include")
+               (string-append "libdir=" out "/lib")
+               (string-append "localedir=" out "/share/locale")
+               (string-append "docdir=" out "/share/doc/" ,name)))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))         ; no configure script
+    (native-inputs
+     `(("gettext" ,gettext-minimal)))
+    (home-page
+     "http://ftp.be.debian.org/pub/linux/utils/kernel/cpufreq/cpufrequtils.html")
     (synopsis "Utilities to get and set CPU frequency on Linux")
     (description
      "The cpufrequtils suite contains utilities to retrieve CPU frequency
@@ -4975,9 +4896,9 @@ protocol in question.")
                 "0lsv46jdqvdx5hx92v0z2cz3yh6212pz9gk0k3513sbaa04zzcbw"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
-     `(("libraw1394" ,libraw1394))) ; required by libavc1394.pc
+     (list libraw1394)) ; required by libavc1394.pc
     (home-page "https://sourceforge.net/projects/libavc1394/")
     (synopsis "AV/C protocol library for IEEE 1394")
     (description
@@ -4999,9 +4920,9 @@ the 1394 Trade Association.  AV/C stands for Audio/Video Control.")
                 "17ph458zya2l8dr2xwqnzy195qd9swrir31g78qkgb3g4xz2rq6i"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
-     `(("libraw1394" ,libraw1394))) ; required by libiec61883.pc
+     (list libraw1394)) ; required by libiec61883.pc
     (home-page "https://ieee1394.wiki.kernel.org/index.php/Main_Page")
     (synopsis "Isochronous streaming media library for IEEE 1394")
     (description
@@ -5176,12 +5097,9 @@ arrays when needed.")
              #t))
          (delete 'configure))))         ; no configure script
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("valgrind" ,valgrind)
-
-       ;; For tests.
-       ("cmocka" ,cmocka)))
+     (list perl pkg-config valgrind
+           ;; For tests.
+           cmocka))
     (inputs
      `(("json-c" ,json-c)
        ("libaio" ,libaio)
@@ -5294,9 +5212,9 @@ event traces from the kernel (via the relaying through the debug file system).")
                 "1liig5856crb331dps18mp0s13zbkv7yh007zqhq97m94fcddfhc"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libsndfile" ,libsndfile)))
+     (list libsndfile))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.kernel.org/pub/linux/bluetooth/")
     (synopsis "Bluetooth subband audio codec")
     (description
@@ -5307,7 +5225,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
 (define-public bluez
   (package
     (name "bluez")
-    (version "5.55")
+    (version "5.61")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -5315,7 +5233,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "124v9s4y1s7s6klx5vlmzpk1jlr4x84ch7r7scm7x2f42dqp2qw8"))))
+                "0fs2kjsdhylxniqhii63i85fjszbqbz3iddwmgz4nmbr472xdbw3"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -5360,13 +5278,10 @@ Bluetooth audio output devices like headphones or loudspeakers.")
                #t))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
+       ("rst2man" ,python-docutils)
        ("gettext" ,gettext-minimal)))
     (inputs
-     `(("glib" ,glib)
-       ("dbus" ,dbus)
-       ("eudev" ,eudev)
-       ("libical" ,libical)
-       ("readline" ,readline)))
+     (list glib dbus eudev libical readline))
     (home-page "http://www.bluez.org/")
     (synopsis "Linux Bluetooth protocol stack")
     (description
@@ -5388,9 +5303,9 @@ is flexible, efficient and uses a modular implementation.")
                 "1lz00q8g4590mrdqmf13ba1s9zrqq645ymgm5p9y99ad0qv22r87"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("fuse" ,fuse)))
+     (list fuse))
     (home-page "https://github.com/relan/exfat")
     (synopsis "Mount exFAT file systems")
     (description
@@ -5411,11 +5326,9 @@ write access to exFAT devices.")
                 "127xql52dcdhmh7s5m9xc6q39jdlj3zhbjar1j821kb6gl3jw94b"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("fuse" ,fuse)
-       ("glib" ,glib)
-       ("zlib" ,zlib)))
+     (list fuse glib zlib))
     (home-page "https://sourceforge.net/projects/fuseiso/")
     (synopsis "Mount ISO file system images")
     (description
@@ -5464,12 +5377,12 @@ Ridge, Joliet, and zisofs.")
                                               (assoc-ref %outputs "out")
                                               "/lib"))))
     (native-inputs
-     `(("texinfo" ,texinfo)
-       ("bison" ,bison)
-       ("flex" ,flex)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list texinfo
+           bison
+           flex
+           autoconf
+           automake
+           libtool))
     (home-page "https://www.nico.schottelius.org/software/gpm/")
     (synopsis "Mouse support for the Linux console")
     (description
@@ -5481,7 +5394,7 @@ and copy/paste text in the console and in xterm.")
 (define-public btrfs-progs
   (package
     (name "btrfs-progs")
-    (version "5.14")
+    (version "5.15.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kernel.org/linux/kernel/"
@@ -5489,7 +5402,7 @@ and copy/paste text in the console and in xterm.")
                                   "btrfs-progs-v" version ".tar.xz"))
               (sha256
                (base32
-                "0mwxhwws6scjjpfws5xp7988wwwfa46jp5y3kn6jjmjpxiqm85da"))))
+                "085rg9p7kifhh8kjyyhs38y86srwk820s6v07min5gb177rzhc32"))))
     (build-system gnu-build-system)
     (outputs '("out"
                "static"))      ; static versions of the binaries in "out"
@@ -5500,8 +5413,7 @@ and copy/paste text in the console and in xterm.")
                       (substitute* "Makefile"
                         (("\\$\\(DESTDIR\\)\\$\\(udevruledir\\)")
                          (string-append (assoc-ref outputs "out")
-                                        "/lib/udev/rules.d")))
-                      #t))
+                                        "/lib/udev/rules.d")))))
                  (add-after 'build 'build-static
                    (lambda _ (invoke "make" "static")))
                  (add-after 'install 'install-bash-completion
@@ -5510,8 +5422,7 @@ and copy/paste text in the console and in xterm.")
                             (bashcomp (string-append out "/etc/bash_completion.d")))
                        (mkdir-p bashcomp)
                        (copy-file "btrfs-completion"
-                                  (string-append bashcomp "/btrfs"))
-                       #t)))
+                                  (string-append bashcomp "/btrfs")))))
                  (add-after 'install 'install-static
                    (let ((staticbin (string-append (assoc-ref %outputs "static")
                                                   "/bin")))
@@ -5534,9 +5445,6 @@ and copy/paste text in the console and in xterm.")
                      ("asciidoc" ,asciidoc)
                      ("python" ,python)
                      ("xmlto" ,xmlto)
-                     ;; Remove this input entirely when the default headers
-                     ;; version provides blk_zone.capacity (>= 5.9).
-                     ("linux-libre-headers" ,linux-libre-headers-5.10)
                      ;; For building documentation.
                      ("libxml2" ,libxml2)
                      ("docbook-xsl" ,docbook-xsl)
@@ -5613,7 +5521,7 @@ from the btrfs-progs package.  It is meant to be used in initrds.")
                (install-file "cramfsck" (string-append out "/sbin")))
              #t)))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (synopsis "Tools to manage Cramfs file systems")
     (description "Cramfs is a Linux file system designed to be simple, small,
 and to compress things well.  It is used on a number of embedded systems and
@@ -5636,7 +5544,7 @@ blocks and random block placement.")
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
-     `(("btrfs-progs" ,btrfs-progs)))
+     (list btrfs-progs))
     (arguments
      `(#:tests? #f                      ; No tests.
        #:make-flags
@@ -5691,10 +5599,7 @@ obviously it can be shared with files outside our set).")
                (install-file "mkfs/f2fs_format_utils.h" out-include)
                #t))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
      `(("libuuid" ,util-linux "lib")
        ("libselinux" ,libselinux)))
@@ -5788,7 +5693,7 @@ disks and SD cards.  This package provides the userland utilities.")
              (chmod fsck #o555))
            #t))))
     (inputs
-     `(("f2fs-tools-static" ,f2fs-tools/static)))
+     (list f2fs-tools/static))
     (home-page (package-home-page f2fs-tools/static))
     (synopsis "Statically-linked fsck.f2fs command from f2fs-tools")
     (description "This package provides statically-linked fsck.f2fs command taken
@@ -5833,7 +5738,7 @@ feature, and a laptop with an accelerometer.  It has no effect on SSDs.")
 (define-public thinkfan
   (package
     (name "thinkfan")
-    (version "1.2.2")
+    (version "1.3.0")
     (source
      (origin
        (method git-fetch)
@@ -5842,7 +5747,7 @@ feature, and a laptop with an accelerometer.  It has no effect on SSDs.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "01l1pnj1cgy3dwgyys2s5iqzyv6kk47vlpy09qjafk8py21ijik3"))))
+        (base32 "1whdhf3aw0g4xwbn1csy2wz6g1hw5nlw64r91nnxba9qn25nl9k4"))))
     (build-system cmake-build-system)
     (arguments
      `(#:modules ((guix build cmake-build-system)
@@ -5874,10 +5779,9 @@ feature, and a laptop with an accelerometer.  It has no effect on SSDs.")
                   (string-append out directory)))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libatasmart" ,libatasmart)
-       ("yaml-cpp" ,yaml-cpp)))
+     (list libatasmart yaml-cpp))
     (home-page "https://github.com/vmatare/thinkfan")
     (synopsis "Simple fan control program")
     (description
@@ -5933,7 +5837,7 @@ from userspace.")
                          (list "battery_asl" "examples" "README.md"))
                #t))))))
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "https://github.com/teleshoes/tpacpi-bat")
     (synopsis "ThinkPad battery charge controller")
     (description
@@ -5977,7 +5881,7 @@ supported.")
                #t)))
          (delete 'configure))))         ; no configure script
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (home-page (package-home-page linux-libre))
     (synopsis "Monitor and test the Linux thermal subsystem in real time")
     (description
@@ -6018,7 +5922,7 @@ by hand is no trivial task: @command{tmon} aims to make it understandable.")
              #t))
          (delete 'configure))))         ; no configure script
     (inputs
-     `(("libcap" ,libcap)))
+     (list libcap))
     (supported-systems '("i686-linux" "x86_64-linux"))
     (home-page (package-home-page linux-libre))
     (synopsis "Report x86 processor frequency and idle statistics")
@@ -6039,15 +5943,14 @@ invocations of itself.")
 (define-public ntfs-3g
   (package
     (name "ntfs-3g")
-    (version "2017.3.23")
+    (version "2021.8.22")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://tuxera.com/opensource/"
                                   "ntfs-3g_ntfsprogs-" version ".tgz"))
-              (patches (search-patches "ntfs-3g-CVE-2019-9755.patch"))
               (sha256
                (base32
-                "1mb228p80hv97pgk3myyvgp975r9mxq56c6bdn1n24kngcfh4niy"))
+                "1yrf42xr92qv3pads8lzp5nyssz6875ncfgg8v3jwjyr0nm87f2m"))
               (modules '((guix build utils)))
               (snippet '(begin
                           ;; Install under $prefix.
@@ -6056,9 +5959,9 @@ invocations of itself.")
                              "@sbindir@"))
                           #t))))
     (build-system gnu-build-system)
-    (inputs `(("util-linux" ,util-linux)
-              ("fuse" ,fuse)))                    ;libuuid
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list util-linux ; libuuid
+                  fuse))
+    (native-inputs (list pkg-config))
     (arguments
      '(#:configure-flags (list "--disable-static"
                                "--disable-ldconfig" ;not necessary
@@ -6088,6 +5991,52 @@ commonly found on Microsoft Windows.  It is implemented as a FUSE file system.
 The package provides additional NTFS tools.")
     (license license:gpl2+)))
 
+(define-public ntfs-3g/static
+  (static-package
+   (package
+     (inherit ntfs-3g)
+     (name "ntfs-3g-static")
+     (arguments
+      (substitute-keyword-arguments (package-arguments ntfs-3g)
+        ((#:configure-flags flags)
+         `(append ,flags
+                  (list "--enable-really-static"
+                        ;; The FUSE driver isn't currently used by our initrd.
+                        "--disable-ntfs-3g")))
+        ((#:phases phases)
+         `(modify-phases ,phases
+            (add-after 'unpack 'make-really-static-really-static
+              (lambda _
+                (substitute* "ntfsprogs/Makefile.in"
+                  ((" -static") " -all-static"))))
+            (delete 'install-link))))))))
+
+(define-public ntfsfix/static
+  (package
+    (name "ntfsfix-static")
+    (version (package-version ntfs-3g/static))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((ntfs-3g (assoc-ref %build-inputs "ntfs-3g"))
+                (out     (assoc-ref %outputs "out"))
+                (bin     (string-append out "/bin")))
+           (install-file (string-append ntfs-3g "/bin/ntfsfix") bin)
+           (with-directory-excursion bin
+             (remove-store-references "ntfsfix"))))))
+    (inputs
+     `(("ntfs-3g" ,ntfs-3g/static)))
+    (home-page (package-home-page ntfs-3g/static))
+    (synopsis "Statically linked @command{ntfsfix} from ntfs-3g")
+    (description
+     "This package provides a statically linked @command{ntfsfix} taken
+from the ntfs-3g package.  It is meant to be used in initrds.")
+    (license (package-license ntfs-3g/static))))
+
 (define-public rdma-core
   (package
     (name "rdma-core")
@@ -6182,7 +6131,7 @@ The following service daemons are also provided:
                             "src/raw_ethernet_send_lat.c")
                (("/usr/include/netinet/ip.h") "netinet/ip.h"))
              #t)))))
-    (inputs `(("rdma-core" ,rdma-core)))
+    (inputs (list rdma-core))
     (home-page "https://github.com/linux-rdma/perftest/")
     (synopsis "Open Fabrics Enterprise Distribution (OFED) Performance Tests")
     (description "This is a collection of tests written over uverbs intended for
@@ -6203,7 +6152,7 @@ The collection contains a set of bandwidth and latency benchmark such as:
   (package
     (name "rng-tools")
     (home-page "https://github.com/nhorman/rng-tools")
-    (version "6.13")
+    (version "6.14")
     (source (origin
               (method git-fetch)
               (uri (git-reference (url home-page)
@@ -6211,7 +6160,7 @@ The collection contains a set of bandwidth and latency benchmark such as:
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0m4895f44a668r0z7md5ifq7syndsb2by2dfhk794vmhprsk1406"))))
+                "1hrbm4y7fbzkg5j2f7vpj19ri2ff2lp77al17fhi4mv0bvdfjd9m"))))
     (build-system gnu-build-system)
     (arguments
      `(;; Disable support for various hardware entropy sources as they need
@@ -6221,9 +6170,7 @@ The collection contains a set of bandwidth and latency benchmark such as:
                            "--without-pkcs11"
                            "--without-rtlsdr")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
      `(("libsysfs" ,sysfsutils)
        ("openssl" ,openssl)))
@@ -6267,7 +6214,7 @@ from that to the system kernel's @file{/dev/random} machinery.")
                             "PACKAGE_BUGREPORT=bug-guix@gnu.org"))
        #:tests? #f)) ;no tests
     (native-inputs `(("gettext" ,gettext-minimal)))
-    (inputs `(("pciutils" ,pciutils)))
+    (inputs (list pciutils))
     (home-page (package-home-page linux-libre))
     (synopsis "CPU frequency and voltage scaling tools for Linux")
     (description
@@ -6312,7 +6259,7 @@ cpufreq sub-system is enabled or not.")
 (define-public haveged
   (package
     (name "haveged")
-    (version "1.9.14")
+    (version "1.9.15")
     (source
      (origin
        (method git-fetch)
@@ -6321,8 +6268,11 @@ cpufreq sub-system is enabled or not.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "050hmnh5s2s4mb83f4d1fk23mk27pprg840c1aagc6v1sz6x5dhq"))))
+        (base32 "1zb790adsmqq3r26zlaxfrk2hpgxjcjz8l73hn3hli3l3javykvd"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "--disable-static")))
     (home-page "https://www.issihosts.com/haveged")
     (synopsis "Entropy source for the Linux random number generator")
     (description
@@ -6400,9 +6350,8 @@ not as a replacement for it.")
                  (("/sbin/dmsetup")
                   (string-append lvm2 "/sbin/dmsetup")))))))))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("perl" ,perl)                   ; for pod2man
-       ("pkg-config" ,pkg-config)))
+     (list intltool perl ; for pod2man
+           pkg-config))
     (inputs
      `(("keyutils" ,keyutils)
        ("linux-pam" ,linux-pam)
@@ -6441,7 +6390,7 @@ native Linux file system, and has been part of the Linux kernel since version
                                          (assoc-ref %outputs "out")
                                          "/lib/libnfsidmap"))))
     (native-inputs
-     `(("autoconf" ,autoconf)))         ; 0.27 still needs autoheader
+     (list autoconf))         ; 0.27 still needs autoheader
     (home-page
      "http://www.citi.umich.edu/projects/nfsv4/crossrealm/libnfsidmap_config.html")
     (synopsis "NFSv4 support library for name/ID mapping")
@@ -6488,7 +6437,7 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.")
 (define-public mcelog
   (package
     (name "mcelog")
-    (version "176")
+    (version "179")
     (source
      (origin
        (method git-fetch)
@@ -6497,14 +6446,13 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1mlwn6ck9qiwqa2vg5wg1gvfva3jv7ygjr7p7bam0qszajs5pirk"))
+        (base32 "0fz9j0p8jyp4m09wshl8cdhdvrdidf29bjp9hgwvv6xvg8lma06g"))
        (modules '((guix build utils)))
        (snippet
         `(begin
            ;; The checkout lacks a .git directory, breaking ‘git describe’.
            (substitute* "Makefile"
-             (("\"unknown\"") (string-append "\"v" ,version "\"")))
-           #t))))
+             (("\"unknown\"") (string-append "\"v" ,version "\"")))))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -6542,8 +6490,7 @@ exceeded.")
     (arguments
      '(#:configure-flags '("--enable-unit-tests")))
     (native-inputs
-     `(("cmocka" ,cmocka)
-       ("pkg-config" ,pkg-config)))
+     (list cmocka pkg-config))
     (inputs
      `(("acl" ,acl)                     ; extended attributes (xattr)
        ("libuuid" ,util-linux "lib")
@@ -6564,7 +6511,7 @@ of flash storage.")
 (define-public libseccomp
   (package
     (name "libseccomp")
-    (version "2.5.1")
+    (version "2.5.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/seccomp/libseccomp/"
@@ -6572,7 +6519,7 @@ of flash storage.")
                                   "/libseccomp-" version ".tar.gz"))
               (sha256
                (base32
-                "0m8dlg1v7kflcxvajs4p76p275qwsm2abbf5mfapkakp7hw7wc7f"))))
+                "0xhan73zn4p0n7s8vx6s47wjmidvk4x8r90vfbljairn6f3mq1jr"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")
@@ -6581,11 +6528,9 @@ of flash storage.")
                     (lambda _
                       ;; This test does a native system call and fails when
                       ;; run under QEMU user-mode emulation.  Just skip it.
-                      (delete-file "tests/52-basic-load.tests")
-                      #t)))))
+                      (delete-file "tests/52-basic-load.tests"))))))
     (native-inputs
-     `(("gperf" ,gperf)
-       ("which" ,which)))
+     (list gperf which))
     (synopsis "Interface to Linux's seccomp syscall filtering mechanism")
     (description "The libseccomp library provides an easy to use, platform
 independent, interface to the Linux Kernel's syscall filtering mechanism.  The
@@ -6599,7 +6544,7 @@ developers.")
 (define-public radeontop
   (package
     (name "radeontop")
-    (version "1.3")
+    (version "1.4")
     (source
      (origin
        (method git-fetch)
@@ -6608,7 +6553,7 @@ developers.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ay6vl9zsz9b2scy0fnsy482pzizj52i27syxwny4z4i9wrk2wmn"))))
+        (base32 "0kwqddidr45s1blp0h8r8h1dd1p50l516yb6mb4s6zsc827xzgg3"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -6618,20 +6563,16 @@ developers.")
                     (lambda _
                       (substitute* "getver.sh"
                         (("ver=unknown")
-                         (string-append "ver=" ,version)))
-                      #t))
+                         (string-append "ver=" ,version)))))
                   (delete 'configure))  ; no configure script
-       #:make-flags (list "CC=gcc"
+       #:make-flags (list (string-append "CC=" ,(cc-for-target))
                           (string-append "PREFIX=" %output))
        #:tests? #f))                    ; no tests
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("libdrm" ,libdrm)
-       ("libpciaccess" ,libpciaccess)
-       ("libxcb" ,libxcb)
-       ("ncurses" ,ncurses)))
+     (list libdrm libpciaccess libxcb ncurses))
     (home-page "https://github.com/clbr/radeontop/")
     (synopsis "Usage monitor for AMD Radeon graphics")
     (description "RadeonTop monitors resource consumption on supported AMD
@@ -6676,9 +6617,9 @@ under OpenGL graphics workloads.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("popt" ,popt)))
+     (list popt))
     (home-page "https://github.com/rhboot/efivar")
     (synopsis "Tool and library to manipulate EFI variables")
     (description "This package provides a library and a command line
@@ -6712,10 +6653,9 @@ interface to the variable facility of UEFI boot firmware.")
                           "EFIDIR=gnu")
        #:phases (modify-phases %standard-phases (delete 'configure))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("efivar" ,efivar)
-       ("popt" ,popt)))
+     (list efivar popt))
     (home-page "https://github.com/rhinstaller/efibootmgr")
     (synopsis "Modify the Extensible Firmware Interface (EFI) boot manager")
     (description
@@ -6777,7 +6717,8 @@ monitoring tools for Linux.  These include @code{mpstat}, @code{iostat},
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases
+     `(#:configure-flags '("CFLAGS=-fcommon")
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-udev-rules-absolute-path-bins
            (lambda* (#:key inputs #:allow-other-keys)
@@ -6792,8 +6733,7 @@ monitoring tools for Linux.  These include @code{mpstat}, @code{iostat},
                 "90-backlight.rules" (string-append out "/lib/udev/rules.d"))
                #t))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (home-page "https://haikarainen.github.io/light/")
     (synopsis "GNU/Linux application to control backlights")
     (description
@@ -6840,9 +6780,9 @@ set the screen to be pitch black at a value of 0 (or higher).
                (("/bin/") "/run/current-system/profile/bin/"))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("elogind" ,elogind)))
+     (list elogind))
     (synopsis "Backlight and LED brightness control")
     (description
      "This program allows you read and control device brightness.  Devices
@@ -6856,7 +6796,7 @@ interface in sysfs, which can be accomplished with the included udev rules.")
 (define-public tlp
   (package
     (name "tlp")
-    (version "1.3.1")
+    (version "1.4.0")
     (source
      (origin
        (method git-fetch)
@@ -6865,9 +6805,9 @@ interface in sysfs, which can be accomplished with the included udev rules.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "14fcnaz9pw534v4d8dddqq4wcvpf1kghr8zlrk62r5lrl46sp1p5"))))
+        (base32 "0bnsz9bw9rj1apl80jwz39zj5mnlps3jbckihvl8bbdbrbhj6p06"))))
     (native-inputs
-     `(("shellcheck" ,shellcheck)))
+     (list shellcheck))
     (inputs
      `(("bash" ,bash)
        ("dbus" ,dbus)
@@ -6909,6 +6849,7 @@ interface in sysfs, which can be accomplished with the included udev rules.")
                (setenv "TLP_NO_INIT" "1")
                (setenv "TLP_NO_PMUTILS" "1")
                (setenv "TLP_SBIN" (string-append out "/bin"))
+               (setenv "TLP_BATD" (string-append out "/share/tlp/bat.d"))
                (setenv "TLP_BIN" (string-append out "/bin"))
                (setenv "TLP_TLIB" (string-append out "/share/tlp"))
                (setenv "TLP_FLIB" (string-append out "/share/tlp/func.d"))
@@ -6916,6 +6857,8 @@ interface in sysfs, which can be accomplished with the included udev rules.")
                (setenv "TLP_CONFDEF"
                        (string-append out "/share/tlp/defaults.conf"))
                (setenv "TLP_CONFDIR" (string-append out "/etc/tlp.d"))
+               (setenv "TLP_CONFREN"
+                       (string-append out "/share/tlp/rename.conf"))
                (setenv "TLP_ELOD"
                        (string-append out "/lib/elogind/system-sleep"))
                (setenv "TLP_SHCPL"
@@ -7031,19 +6974,19 @@ re-use code and to avoid re-inventing the wheel.")
 (define-public libnftnl
   (package
     (name "libnftnl")
-    (version "1.2.0")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://netfilter.org/libnftnl/"
                            "libnftnl-" version ".tar.bz2"))
        (sha256
-        (base32 "1xblq1cbcxhr6qmjpy98i1qdza148idgz99vbhjc7s4vzvfizc4h"))))
+        (base32 "0z4khm2mnys9mcl8ckwf19cw20jgrv8650nfncy3xcgs2k2aa23m"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libmnl" ,libmnl)))
+     (list libmnl))
     (home-page "https://www.netfilter.org/projects/libnftnl/index.html")
     (synopsis "Netlink programming interface to the Linux nf_tables subsystem")
     (description "Libnftnl is a userspace library providing a low-level netlink
@@ -7052,10 +6995,28 @@ libnftnl has been previously known as libnftables.  This library is currently
 used by nftables.")
     (license license:gpl2+)))
 
+;; This is used in iptables, which contributes to rust.  We're pinning this
+;; variant to avoid accidental rebuilds of rust.
+(define-public libnftnl/fixed
+  (package (inherit libnftnl)
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://netfilter.org/libnftnl/"
+                           "libnftnl-" version ".tar.bz2"))
+       (sha256
+        (base32 "1xblq1cbcxhr6qmjpy98i1qdza148idgz99vbhjc7s4vzvfizc4h"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list libmnl))))
+
 (define-public nftables
   (package
     (name "nftables")
-    (version "1.0.0")
+    (version "1.0.1")
     (source
      (origin
        (method url-fetch)
@@ -7064,18 +7025,14 @@ used by nftables.")
                   (string-append "https://www.nftables.org/projects/nftables"
                                  "/files/nftables-" version ".tar.bz2")))
        (sha256
-        (base32 "1x25zs2czmn14mmq1nqi4zibsvh04vqjbx5lxj42nylnmxym9gsq"))))
+        (base32 "08x4xw0s5sap3q7jfr91v7mrkxrydi4dvsckw85ims0qb1ibmviw"))))
     (build-system gnu-build-system)
     (arguments `(#:configure-flags
                  '("--disable-man-doc"  ; FIXME: needs docbook2x
-                   "--disable-static")))
-    (inputs `(("gmp" ,gmp)
-              ("libmnl" ,libmnl)
-              ("libnftnl" ,libnftnl)
-              ("readline" ,readline)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("bison" ,bison)
-                     ("flex" ,flex)))
+                   "--disable-static"
+                   "--with-cli=readline")))
+    (inputs (list gmp libmnl libnftnl readline))
+    (native-inputs (list pkg-config bison flex))
     (home-page "https://www.nftables.org")
     (synopsis "Userspace utility for Linux packet filtering")
     (description "nftables is the project that aims to replace the existing
@@ -7087,143 +7044,140 @@ userspace queueing component and the logging subsystem.")
     (license license:gpl2)))
 
 (define-public proot
-  (package
-    (name "proot")
-    ;; The last stable release was made in 2015, and fails to build for
-    ;; the aarch64 platform.
-    (version "5.2.0-alpha")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/proot-me/PRoot")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "09vp806y4hqfq2fn2hpi873rh4j6a3c572ph4mkirx1n32wj8srl"))))
-    (build-system gnu-build-system)
-    ;; The powerpc64le-linux and mips64el-linux architectures are not
-    ;; supported (see:
-    ;; https://github.com/proot-me/proot/blob/master/src/arch.h#L51).
-    (supported-systems '("x86_64-linux" "i686-linux"
-                         "armhf-linux" "aarch64-linux" "i586-gnu"))
-    (arguments
-     ;; Disable the test suite on ARM platforms, as there are too many
-     ;; failures to keep track of (see for example:
-     ;; https://github.com/proot-me/proot/issues/263).
-     `(#:tests? ,(not (string-match "^(arm|aarch64)"
-                                    (or (%current-target-system)
-                                        (%current-system))))
-       #:make-flags '("-C" "src")
-       #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'patch-sources
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (substitute* (find-files "src" "\\.[ch]$")
-                        (("\"/bin/sh\"")
-                         (string-append "\"" (assoc-ref inputs "bash")
-                                        "/bin/sh\"")))
-
-                      (substitute* "src/GNUmakefile"
-                        (("/bin/echo") (which "echo")))
-
-                      (substitute* (find-files "test" "\\.sh$")
-                        ;; Some of the tests try to "bind-mount" /bin/true.
-                        (("-b /bin/true:")
-                         (string-append "-b " (which "true") ":"))
-                        ;; Likewise for /bin.
-                        (("-b /bin:") "-b /gnu:")
-                        ;; Others try to run /bin/sh.
-                        (("/bin/sh") (which "sh"))
-                        ;; Others assume /etc/fstab exists.
-                        (("/etc/fstab") "/etc/passwd"))
-                      (substitute* "test/GNUmakefile"
-                        (("-b /bin:") "-b /gnu:"))
-                      (substitute* "test/test-c6b77b77.mk"
-                        (("/bin/bash") (which "bash"))
-                        (("/usr/bin/test") (which "test")))
-                      (substitute* "test/test-16573e73.c"
-                        (("/bin/([a-z-]+)" _ program)
-                         (which program)))
-                      (substitute* "test/test-d2175fc3.sh"
-                        (("\\^/bin/true\\$") "$(which true)"))
-                      (substitute* "test/test-5467b986.sh"
-                        (("-w /usr") "-w /gnu")
-                        (("-w usr") "-w gnu")
-                        (("/usr/share") "/gnu/store")
-                        (("share") "store"))
-                      (substitute* "test/test-092c5e26.sh"
-                        (("-q echo ")
-                         "-q $(which echo) "))
-
-                      ;; The following tests are known to fail (see:
-                      ;; https://github.com/proot-me/proot/issues/184).
-                      (delete-file "test/test-0228fbe7.sh")
-                      (delete-file "test/test-2db65cd2.sh")
-
-                      ;; This one fails with "bind: Address already in use"
-                      ;; (see: https://github.com/proot-me/proot/issues/260).
-                      (delete-file "test/test-ssssssss.c")
-
-                      ;; This one fails on a waitpid call that returns 1 (see:
-                      ;; https://github.com/proot-me/proot/issues/261).
-                      (delete-file "test/test-ptrace01.c")
-
-                      ;; XXX: This test fails in an obscure corner case, just
-                      ;; skip it.
-                      (delete-file "test/test-kkkkkkkk.c")
-
-                      ;; The socket tests requires networking.
-                      (for-each delete-file
-                                (find-files "test" "test-socket.*\\.sh$"))))
-                  (delete 'configure)
-                  (add-after 'build 'build-manpage
-                    (lambda _
-                      (with-directory-excursion "doc"
-                        (invoke "make" "proot/man.1" "SUFFIX=.py"))))
-                  (replace 'check
-                    (lambda* (#:key tests? #:allow-other-keys)
-                      (when tests?
-                        (let ((n (parallel-job-count)))
-                          ;; There are lots of segfaults with seccomp support
-                          ;; (x86_64, Linux-libre 4.11.0) (see:
-                          ;; https://github.com/proot-me/proot/issues/106).
-                          (setenv "PROOT_NO_SECCOMP" "1")
-                          ;; Most of the tests expect "/bin" to be in $PATH so
-                          ;; they can run things that live in $ROOTFS/bin.
-                          (setenv "PATH"
-                                  (string-append (getenv "PATH") ":/bin"))
-                          (invoke "make" "check" "-C" "test"
-                                  ;;"V=1"
-                                  "-j" (number->string n))))))
-                  (replace 'install
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      ;; The 'install' rule does nearly nothing.
-                      (let* ((out (assoc-ref outputs "out"))
-                             (man1 (string-append out "/share/man/man1")))
-                        ;; TODO: 'make install-care' (does not even
-                        ;; build currently.)
-                        (invoke "make" "-C" "src" "install"
-                                (string-append "PREFIX=" out))
-                        (mkdir-p man1)
-                        (copy-file "doc/proot/man.1"
-                                   (string-append man1 "/proot.1"))))))))
-    (native-inputs `(("which" ,which)
-                     ;; For 'mcookie', used by some of the tests.
-                     ("util-linux" ,util-linux)
-                     ;; XXX: Choose the old coreutils because its 'stat'
-                     ;; program does not use statx(2) when running 'stat -c
-                     ;; %a' or similar, which PRoot doesn't properly support
-                     ;; (see: https://github.com/proot-me/proot/issues/262).
-                     ("coreutils-old" ,coreutils-8.30)
-                     ("pkg-config" ,pkg-config)
-                     ;; For rst2man, used to generate the manual page.
-                     ("python-docutils" ,python-docutils)))
-    (inputs `(("libarchive" ,libarchive)
-              ("talloc" ,talloc)))
-    (home-page "https://github.com/proot-me/PRoot")
-    (synopsis "Unprivileged chroot, bind mount, and binfmt_misc")
-    (description
-     "PRoot is a user-space implementation of @code{chroot}, @code{mount --bind},
+  (let ((revision "0")
+        (commit "a70023ab3db47d011265451b99a1abef7b9d7afc"))
+    (package
+      (name "proot")
+      ;; The last stable release was made in 2015, and fails to build for the
+      ;; aarch64 platform.  Use the latest commit, which includes fixes for
+      ;; the supported ARM architectures and the test suite, among others.
+      (version (git-version "5.2.0-alpha" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/proot-me/PRoot")
+               (commit (string-append commit))))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1kmry3rb967phxnxjfnx310gy1d4gpmjd6fp3hbm9v9jciysxy4z"))))
+      (build-system gnu-build-system)
+      ;; The powerpc64le-linux and mips64el-linux architectures are not
+      ;; supported (see:
+      ;; https://github.com/proot-me/proot/blob/master/src/arch.h#L51).
+      (supported-systems '("x86_64-linux" "i686-linux"
+                           "armhf-linux" "aarch64-linux" "i586-gnu"))
+      (arguments
+       ;; Disable the test suite on armhf-linux, as there are too many
+       ;; failures to keep track of (see for example:
+       ;; https://github.com/proot-me/proot/issues/286).
+       `(#:tests? ,(not (string-prefix? "armhf"
+                                        (or (%current-target-system)
+                                            (%current-system))))
+         #:make-flags '("-C" "src")
+         #:phases (modify-phases %standard-phases
+                    (add-after 'unpack 'patch-sources
+                      (lambda* (#:key inputs #:allow-other-keys)
+                        (substitute* (find-files "src" "\\.[ch]$")
+                          (("\"/bin/sh\"")
+                           (string-append "\"" (assoc-ref inputs "bash")
+                                          "/bin/sh\"")))
+
+                        (substitute* "src/GNUmakefile"
+                          (("/bin/echo") (which "echo"))
+                          (("^VERSION = .*")
+                           (string-append "VERSION := " ,version "\n")))
+
+                        (substitute* (find-files "test" "\\.sh$")
+                          ;; Some of the tests try to "bind-mount" /bin/true.
+                          (("-b /bin/true:")
+                           (string-append "-b " (which "true") ":"))
+                          ;; Likewise for /bin.
+                          (("-b /bin:") "-b /gnu:")
+                          ;; Others try to run /bin/sh.
+                          (("/bin/sh") (which "sh"))
+                          ;; Others assume /etc/fstab exists.
+                          (("/etc/fstab") "/etc/passwd"))
+                        (substitute* "test/GNUmakefile"
+                          (("-b /bin:") "-b /gnu:"))
+                        (substitute* "test/test-c6b77b77.mk"
+                          (("/bin/bash") (which "bash"))
+                          (("/usr/bin/test") (which "test")))
+                        (substitute* "test/test-16573e73.c"
+                          (("/bin/([a-z-]+)" _ program)
+                           (which program)))
+                        (substitute* "test/test-d2175fc3.sh"
+                          (("\\^/bin/true\\$") "$(which true)"))
+                        (substitute* "test/test-5467b986.sh"
+                          (("-w /usr") "-w /gnu")
+                          (("-w usr") "-w gnu")
+                          (("/usr/share") "/gnu/store")
+                          (("share") "store"))
+                        (substitute* "test/test-092c5e26.sh"
+                          (("-q echo ")
+                           "-q $(which echo) "))
+
+                        ;; The following tests are known to fail (see:
+                        ;; https://github.com/proot-me/proot/issues/184).
+                        (delete-file "test/test-0228fbe7.sh")
+                        (delete-file "test/test-2db65cd2.sh")
+                        (delete-file "test/test-cdd39012.sh")
+                        (delete-file "test/test-d92b57ca.sh")
+
+                        ;; This one fails on a waitpid call that returns 1 (see:
+                        ;; https://github.com/proot-me/proot/issues/261).
+                        (delete-file "test/test-ptrace01.c")
+
+                        ;; XXX: This test fails in an obscure corner case, just
+                        ;; skip it.
+                        (delete-file "test/test-kkkkkkkk.c")
+
+                        ;; This one requires Docker.
+                        (delete-file "test/test-docker.sh")
+
+                        ;; The socket tests requires networking.
+                        (for-each delete-file
+                                  (find-files "test" "test-socket.*\\.sh$"))))
+                    (delete 'configure)
+                    (add-after 'build 'build-manpage
+                      (lambda _
+                        (with-directory-excursion "doc"
+                          (invoke "make" "proot/man.1" "SUFFIX=.py"))))
+                    (replace 'check
+                      (lambda* (#:key tests? #:allow-other-keys)
+                        (when tests?
+                          (let ((n (parallel-job-count)))
+                            ;; Most of the tests expect "/bin" to be in $PATH so
+                            ;; they can run things that live in $ROOTFS/bin.
+                            (setenv "PATH"
+                                    (string-append (getenv "PATH") ":/bin"))
+                            (invoke "make" "check" "-C" "test"
+                                    ;;"V=1"
+                                    "-j" (number->string n))))))
+                    (replace 'install
+                      (lambda* (#:key outputs #:allow-other-keys)
+                        ;; The 'install' rule does nearly nothing.
+                        (let* ((out (assoc-ref outputs "out"))
+                               (man1 (string-append out "/share/man/man1")))
+                          ;; TODO: 'make install-care' (does not even
+                          ;; build currently.)
+                          (invoke "make" "-C" "src" "install"
+                                  (string-append "PREFIX=" out))
+                          (mkdir-p man1)
+                          (copy-file "doc/proot/man.1"
+                                     (string-append man1 "/proot.1"))))))))
+      (native-inputs (list which
+                           ;; For 'mcookie', used by some of the tests.
+                           util-linux
+                           coreutils
+                           pkg-config
+                           ;; For rst2man, used to generate the manual page.
+                           python-docutils))
+      (inputs (list libarchive talloc))
+      (home-page "https://github.com/proot-me/PRoot")
+      (synopsis "Unprivileged chroot, bind mount, and binfmt_misc")
+      (description
+       "PRoot is a user-space implementation of @code{chroot}, @code{mount --bind},
 and @code{binfmt_misc}.  This means that users don't need any privileges or
 setup to do things like using an arbitrary directory as the new root
 file system, making files accessible somewhere else in the file system
@@ -7232,7 +7186,7 @@ transparently through QEMU user-mode.  Also, developers can use PRoot as a
 generic process instrumentation engine thanks to its extension mechanism.
 Technically PRoot relies on @code{ptrace}, an unprivileged system-call
 available in the kernel Linux.")
-    (license license:gpl2+)))
+      (license license:gpl2+))))
 
 (define-public proot-static
   (package
@@ -7259,14 +7213,14 @@ available in the kernel Linux.")
 (define-public cpuid
   (package
     (name "cpuid")
-    (version "20201006")
+    (version "20211210")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://www.etallen.com/cpuid/cpuid-"
                                   version ".src.tar.gz"))
               (sha256
                (base32
-                "19jnkh57f979b78ak5mpxmdvnkgc33r55cw9shgd2hc380b3zi8k"))))
+                "0i2z1r0zwsmvnx2azwsz3x6van6dj9480lh26s1ny6ny01bqjag0"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -7281,12 +7235,11 @@ available in the kernel Linux.")
                       ;; Make the compressed manpages writable so that the
                       ;; reset-gzip-timestamps phase does not error out.
                       (substitute* "Makefile"
-                        (("-m 444") "-m 644"))
-                      #t)))))
-    (inputs `(("perl" ,perl)))
+                        (("-m 444") "-m 644")))))))
+    (inputs (list perl))
     (supported-systems '("i686-linux" "x86_64-linux"))
     (home-page "http://www.etallen.com/cpuid.html")
-    (synopsis "Linux tool to dump x86 CPUID information about the CPU(s)")
+    (synopsis "Dump x86 CPUID processor information")
     (description "cpuid dumps detailed information about the CPU(s) gathered
 from the CPUID instruction, and also determines the exact model of CPU(s).  It
 supports Intel, AMD, and VIA CPUs, as well as older Transmeta, Cyrix, UMC,
@@ -7309,11 +7262,9 @@ NexGen, Rise, and SiS CPUs.")
           "1pm68agkhrwgrplrfrnbwdcvx5lrivdmqw8pb5gdmm3xppnryji1"))))
     (build-system gnu-build-system)
     (inputs
-     `(("file" ,file)
-       ("fuse" ,fuse)
-       ("libmtp" ,libmtp)))
+     (list file fuse libmtp))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/JasonFerrara/jmtpfs")
     (synopsis "Use a FUSE file system to access data over MTP")
     (description "jmtpfs uses FUSE (file system in userspace) to provide access
@@ -7324,7 +7275,7 @@ the MTP device as a file system.")
 (define-public procenv
   (package
    (name "procenv")
-   (version "0.58")
+   (version "0.60")
    (source
     (origin
      (method git-fetch)
@@ -7333,18 +7284,14 @@ the MTP device as a file system.")
             (commit version)))
      (file-name (git-file-name name version))
      (sha256
-      (base32 "137n630qzml4yraqzp2fij8nzn8341nf8d58yzfhk8ddlzi60sfm"))))
+      (base32 "00d7q0h4qjc8lg435lq77lp2fx6ikm5piq90m81mr1dqqna1g6pz"))))
    (build-system gnu-build-system)
    (native-inputs
-    `(("pkg-config" ,pkg-config)
-
-      ;; For tests.
-      ("check" ,check)
-      ("groff" ,groff)))
+    (list pkg-config
+          ;; For tests.
+          check groff))
    (inputs
-    `(("expat" ,expat)
-      ("libcap" ,libcap)
-      ("libselinux" ,libselinux)))
+    (list expat libcap libselinux))
    (synopsis "Utility to show process environment")
    (description
     "Procenv is a command-line tool that displays as much detail about
@@ -7561,10 +7508,9 @@ emulates the behaviour of Gunnar Monell's older fbgrab utility.")
     (arguments
      `(#:tests? #f))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (inputs
-     `(("linux-pam" ,linux-pam)))
+     (list linux-pam))
     (home-page "https://sourceforge.net/projects/libcg/")
     (synopsis "Control groups management tools")
     (description "Control groups is Linux kernel method for process resource
@@ -7643,8 +7589,7 @@ privileges.")
                       (invoke "make" "install")
                       #t)))))
     (inputs
-     `(("rdma-core" ,rdma-core)
-       ("numactl" ,numactl)))
+     (list rdma-core numactl))
     (synopsis "Intel Performance Scaled Messaging 2 (PSM2) library")
     (description
      "This package is low-level user-level Intel's communications interface.
@@ -7678,6 +7623,7 @@ high-speed networking devices.")
                     (lambda* (#:key inputs outputs #:allow-other-keys)
                       (let* ((out (assoc-ref outputs "out")))
                         (setenv "CC" "gcc")
+                        (setenv "CFLAGS" "-Wno-format-truncation")
                         (invoke "make")
                         #t)))
                   (replace 'install
@@ -7743,8 +7689,7 @@ management tools in userspace.")
     (arguments
      `(#:import-path "github.com/vishvananda/netlink"))
     (native-inputs
-     `(("go-golang-org-x-sys" ,go-golang-org-x-sys)
-       ("go-netns" ,go-netns)))
+     (list go-golang-org-x-sys go-netns))
     (home-page "https://github.com/vishvananda/netlink")
     (synopsis "Simple netlink library for Go")
     (description "The netlink package provides a simple netlink library for
@@ -7767,8 +7712,24 @@ IP addresses and routes, and configure IPsec.")
                (base32
                 "0dqf5j2sw4hq68rqvxbrsf44ygfzx9ypiyzipk4cvp9aimbvsbc6"))))
     (build-system meson-build-system)
+    ;; Install static libraries for use by the initrd's xfsprogs/static.
+    (outputs (list "out" "static"))
     (arguments
-     '(#:configure-flags '("-Ddistro_install=true" "-Ddefault_library=shared")))
+     `(#:configure-flags
+       (list "-Ddistro_install=true"
+             "-Ddefault_library=both")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'separate-static
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out    (assoc-ref outputs "out"))
+                   (static (assoc-ref outputs "static")))
+               (with-directory-excursion out
+                 (for-each (lambda (source)
+                             (let ((target (string-append static "/" source)))
+                               (mkdir-p (dirname target))
+                               (rename-file source target)))
+                           (find-files "lib" "\\.a$")))))))))
     (home-page "https://github.com/benhoyt/inih")
     (synopsis "Simple .INI parser library for C")
     (description "The inih (INI Not Invented Here) library is a simple .INI file
@@ -7781,7 +7742,7 @@ compatible with Python's ConfigParser style of .INI files, including RFC
 (define-public xfsprogs
   (package
     (name "xfsprogs")
-    (version "5.13.0")
+    (version "5.14.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -7789,11 +7750,15 @@ compatible with Python's ConfigParser style of .INI files, including RFC
                     "xfsprogs-" version ".tar.gz"))
               (sha256
                (base32
-                "09s3alwrhs1gaaywkpx2knc5bxb44b77009jw8zgsy9c2wxximns"))))
+                "1kfglkilc8msgbb1168zj7mxs71pypz9rvl4jhiam5qy786difh8"))))
     (build-system gnu-build-system)
     (outputs (list "out" "python"))
     (arguments
      `(#:tests? #f   ; kernel/user integration tests are in package "xfstests"
+       #:configure-flags
+       (list "--disable-static")
+       #:make-flags
+       (list "V=1")
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'separate-python-output
@@ -7807,12 +7772,13 @@ compatible with Python's ConfigParser style of .INI files, including RFC
                                (string-append python script)))
                 (list "/sbin/xfs_scrub_all")))))
          (add-after 'install 'install-headers
-           (lambda _
-             (invoke "make" "install-dev"))))))
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "install-dev" make-flags))))))
     (native-inputs
      `(("gettext" ,gettext-minimal)))
     (inputs
      `(("libinih" ,libinih)
+       ("liburcu" ,liburcu)
        ("libuuid" ,util-linux "lib")
        ("python" ,python-wrapper)))
     (home-page "https://xfs.wiki.kernel.org/")
@@ -7823,6 +7789,60 @@ file systems.")
     ;; licensed under lgpl2.1. the other stuff is licensed under gpl2.
     (license (list license:gpl2 license:lgpl2.1))))
 
+(define-public xfsprogs/static
+  (package
+    (inherit xfsprogs)
+    (name "xfsprogs-static")
+    (outputs (list "out"))
+    (arguments
+     (substitute-keyword-arguments (package-arguments xfsprogs)
+       ((#:configure-flags configure-flags '())
+        `(append ,configure-flags
+                 (list "--enable-static")))
+       ((#:make-flags make-flags ''())
+        `(cons* "LLDFLAGS=-all-static" ,make-flags))
+       ((#:phases _ ''())
+        `(modify-phases %standard-phases
+           (add-after 'install 'delete-useless-files
+             (lambda* (#:key outputs #:allow-other-keys)
+               (with-directory-excursion (assoc-ref outputs "out")
+                 (for-each delete-file-recursively
+                           (list "include" "lib")))))))))
+    (inputs
+     `(("libinih:static" ,libinih "static")
+       ("util-linux:static" ,util-linux "static")
+       ,@(remove (match-lambda
+                   ((label . _)
+                    (member label '("python"))))
+                 (package-inputs xfsprogs))))
+    (synopsis "Statically linked XFS file system tools")))
+
+(define-public xfs_repair/static
+  (package
+    (name "xfs_repair-static")
+    (version (package-version xfsprogs/static))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((xfsprogs (assoc-ref %build-inputs "xfsprogs"))
+                (out      (assoc-ref %outputs "out"))
+                (sbin     (string-append out "/sbin")))
+           (install-file (string-append xfsprogs "/sbin/xfs_repair") sbin)
+           (with-directory-excursion sbin
+             (remove-store-references "xfs_repair"))))))
+    (inputs
+     `(("xfsprogs" ,xfsprogs/static)))
+    (home-page (package-home-page xfsprogs/static))
+    (synopsis "Statically linked @command{xfs_repair} from xfsprogs")
+    (description
+     "This package provides a statically linked @command{xfs_repair} taken
+from the xfsprogs package.  It is meant to be used in initrds.")
+    (license (package-license xfsprogs/static))))
+
 (define-public genext2fs
   (package
     (name "genext2fs")
@@ -7852,8 +7872,7 @@ file systems.")
                     "byteswap_fix.diff"))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (home-page "https://github.com/jeremie-koenig/genext2fs")
     (synopsis "Generate ext2 file system as a normal user")
     (description "This package provides a program to generate an ext2
@@ -7863,120 +7882,143 @@ the superuser to make device nodes.")
     (license license:gpl2)))
 
 (define-public fakeroot
-  ;; glibc-2.33 compatibility was added since the last release.
-  (let ((commit "24d6b0857396cad87b2cabd32fb8af9ef4799915")
-        (revision "1"))
-    (package
-      (name "fakeroot")
-      (version (git-version "1.25.3" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                       (url "https://salsa.debian.org/clint/fakeroot.git")
-                       (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0rg9m30k6v930cmj16qwk1k2vn1l2irxj7r3pp3k1i1sdhfkm3df"))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (replace 'bootstrap
-             (lambda _
-               ;; The "preroll" script takes care of Autoconf and also
-               ;; prepares the translated manuals.
-               (invoke "sh" "./preroll")))
-          (add-after 'configure 'patch-Makefile
-            (lambda _
-              ;; Note: The root of the problem is already in "Makefile.am".
-              (substitute* "Makefile"
+  (package
+    (name "fakeroot")
+    (version "1.26")
+    (source
+     (origin
+       ;; There are no tags in the repository, so take this snapshot.
+       (method url-fetch)
+       (uri (string-append "https://deb.debian.org/debian/pool/main/f/"
+                           "fakeroot/fakeroot_" version ".orig.tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1sg8inv1zzp4h9ncbbmxip3svd11sd86j22cvxrjwnf5zn7mf2j8"))
+       (modules '((guix build utils)
+                  (ice-9 ftw)))
+       (snippet
+        `(begin
+           ;; Delete pregenerated man page translations, but not the originals.
+           (with-directory-excursion "doc"
+             (for-each (lambda (language)
+                         (for-each delete-file
+                                   (find-files language "\\.[0-9]$")))
+                       (scandir "."
+                                (lambda (file)
+                                  (and (not (string-prefix? "." file))
+                                       (eq? 'directory
+                                            (stat:type (lstat file))))))))))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "--disable-static")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-Makefile.am
+           (lambda _
+             (substitute* "Makefile.am"
                (("/bin/sh") (which "sh")))))
-          (add-after 'unpack 'patch-script
-            (lambda*  (#:key inputs #:allow-other-keys)
-              (substitute* "scripts/fakeroot.in"
+         (add-after 'unpack 'patch-script
+           (lambda*  (#:key inputs #:allow-other-keys)
+             (substitute* "scripts/fakeroot.in"
                (("getopt")
-                (search-input-file inputs "/bin/getopt"))
+                (string-append (assoc-ref inputs "util-linux")
+                               "/bin/getopt"))
                (("sed")
-                (search-input-file inputs "/bin/sed"))
-               (("cut")
-                (search-input-file inputs "/bin/cut")) )))
-          (add-before 'configure 'setenv
-            (lambda _
-              (setenv "LIBS" "-lacl")))
-          (add-before 'check 'prepare-check
-            (lambda _
-              (setenv "SHELL" (which "bash"))
-              (setenv "VERBOSE" "1")
-              (substitute* "test/t.touchinstall"
+                (string-append (assoc-ref inputs "sed")
+                               "/bin/sed"))
+               (("cat|cut" command)
+                (string-append (assoc-ref inputs "coreutils")
+                               "/bin/" command)) )))
+         (replace 'bootstrap
+           (lambda _
+             ;; The "preroll" script takes care of Autoconf and also
+             ;; prepares the translated manuals.
+             (invoke "sh" "./preroll")))
+         (add-before 'configure 'setenv
+           (lambda _
+             (setenv "LIBS" "-lacl")))
+         (add-before 'check 'prepare-check
+           (lambda _
+             (setenv "SHELL" (which "bash"))
+             (setenv "VERBOSE" "1")
+             (substitute* "test/t.touchinstall"
                ;; We don't have the name of the root user, so use ID=0.
                (("grep root") "grep \"\\<0\\>\""))
-              (substitute* "test/tartest"
+             (substitute* "test/tartest"
                ;; We don't have the name of the root group, so use ID=0.
                (("ROOTGROUP=root") "ROOTGROUP=0")
                ;; We don't have the name of the daemon user, so use IDs.
                (("daemon:sys") "1:3")
                (("daemon:") "1:"))
-              ;; We don't have an /etc/passwd entry for "root" - use numeric IDs.
-              (substitute* "test/compare-tar"
+             ;; We don't have an /etc/passwd entry for "root" - use numeric IDs.
+             (substitute* "test/compare-tar"
                (("tar -tvf") "tar --numeric-owner -tvf")))))))
-      (native-inputs
-       `(;; For bootstrapping the package.
-         ("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("gettext" ,gettext-minimal)
-         ("po4a" ,po4a)
-
-         ;; For tests.
-         ("sharutils" ,sharutils)
-         ("xz" ,xz)))
-      (inputs
-       `(("acl" ,acl)
-         ("libcap" ,libcap)
-         ("util-linux" ,util-linux)
-         ("sed" ,sed)
-         ("coreutils" ,coreutils)))
-      (synopsis "Provides a fake root environment")
-      (description "@command{fakeroot} runs a command in an environment where
-it appears to have root privileges for file manipulation. This is useful
-for allowing users to create archives (tar, ar, .deb etc.) with files in
-them with root permissions/ownership. Without fakeroot one would have to
-have root privileges to create the constituent files of the archives with
-the correct permissions and ownership, and then pack them up, or one would
-have to construct the archives directly, without using the archiver.")
-      (home-page "http://freshmeat.sourceforge.net/projects/fakeroot")
-      (license license:gpl3+))))
+    (native-inputs
+     `(;; For bootstrapping the package.
+       ("autoconf" ,autoconf-2.71)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("gettext" ,gettext-minimal)
+       ("po4a" ,po4a)
 
-(define-public fakechroot
-  (package
-    (name "fakechroot")
-    (version "2.20.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/dex4er/fakechroot/releases/download/"
-                    version "/fakechroot-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1aijkd0b45wav25v01qhw8zxwa3pl0nnp9fabmmy1nlx7hr09gas"))))
-    (build-system gnu-build-system)
-    (arguments
-     ;; XXX: The tests heavily assume they run on an FHS system so for now
-     ;; skip them.
-     '(#:tests? #f
-       #:configure-flags '("--disable-static")))
-    (synopsis "Emulate @code{chroot} by overriding file system calls")
+       ;; For tests.
+       ("sharutils" ,sharutils)
+       ("xz" ,xz)))
+    (inputs
+     (list acl libcap util-linux sed coreutils))
+    (synopsis "Run commands in an environment with fake root privileges")
     (description
-     "@command{fakechroot} runs a command in an environment were is additional
+     "@command{fakeroot} runs a command in an environment where it appears to
+have root privileges for file manipulation.  This is useful for allowing users
+to create archives (@file{tar}, @file{ar}, @file{deb}, etc.)  with files in
+them with root permissions and/or ownership.
+
+Without fakeroot, one would have to have root privileges to create the
+constituent files of the archives with the correct permissions and ownership,
+and then pack them up, or one would have to construct the archives directly,
+without using the archiver.")
+    (home-page "http://freshmeat.sourceforge.net/projects/fakeroot")
+    (license license:gpl3+)))
+
+(define-public fakechroot
+  ;; XXX: Build from the change submitted at
+  ;; <https://github.com/dex4er/fakechroot/pull/85> to allow compilation
+  ;; against glibc 2.33.  Switch back to the official repository on the next
+  ;; release.
+  (let ((commit "e7c1f3a446e594a4d0cce5f5d499c9439ce1d5c5")
+        (revision "0"))
+    (package
+      (name "fakechroot")
+      (version (git-version "2.20.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/lipnitsk/fakechroot")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0gac6a6djx3nf343vd33sr5qqngz8ss3aij54zl8x9wb47pc11kb"))))
+      (build-system gnu-build-system)
+      (arguments
+       ;; XXX: The tests heavily assume they run on an FHS system so for now
+       ;; skip them.
+       '(#:tests? #f
+         #:configure-flags '("--disable-static")))
+      (native-inputs (list autoconf automake libtool perl))
+      (synopsis "Emulate @code{chroot} by overriding file system calls")
+      (description
+       "@command{fakechroot} runs a command in an environment were is additional
 possibility to use @code{chroot} command without root privileges.  This is
 useful for allowing users to create own chrooted environment with possibility
 to install another packages without need for root privileges.
 
 It works by providing @file{libfakechroot.so}, a shared library meant to be
 set as @code{LD_PRELOAD} to override the C library file system functions.")
-    (home-page "https://github.com/dex4er/fakechroot/")
-    (license license:lgpl2.1+)))
+      (home-page "https://github.com/dex4er/fakechroot/")
+      (license license:lgpl2.1+))))
 
 (define-public inputattach
   (package
@@ -8036,17 +8078,17 @@ types and interfaces and translates so that the X server can use them.")
     (arguments
      '(#:configure-flags '("-Dsystemd=false")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("dbus" ,dbus)
-       ("eudev" ,eudev)
-       ("ffmpeg" ,ffmpeg)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("libva" ,libva)
-       ("sbc" ,sbc)
-       ("sdl2" ,sdl2)))
+     (list alsa-lib
+           dbus
+           eudev
+           ffmpeg
+           gstreamer
+           gst-plugins-base
+           libva
+           sbc
+           sdl2))
     (home-page "https://pipewire.org/")
     (synopsis "Server and user space API to deal with multimedia pipelines")
     (description
@@ -8064,7 +8106,7 @@ of Linux application development.")
   (package
     (inherit pipewire)
     (name "pipewire")
-    (version "0.3.29")
+    (version "0.3.40")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -8073,20 +8115,23 @@ of Linux application development.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "16jjxcnahxqfcawz77ywx837ybhwzcivn7hgqb9cmlp1y2syy8gk"))))
+                "1c6gni23l5w3ghwqnfs712kjj6l1825f0ib8a6r2xc1ymr0sx3kr"))))
     (arguments
      '(#:configure-flags
        (list (string-append "-Dudevrulesdir=" (assoc-ref %outputs "out")
                             "/lib/udev/rules.d")
-             "-Dsystemd=disabled")
+             "-Dsystemd=disabled"
+             "-Dsession-managers=[]")
        #:phases
        (modify-phases %standard-phases
          ;; Skip shrink-runpath, otherwise validate-runpath fails.
          (delete 'shrink-runpath))))
     (inputs
      (append (package-inputs pipewire)
-             `(("bluez" ,bluez)
+             `(("avahi" ,avahi)
+               ("bluez" ,bluez)
                ("jack" ,jack-2)
+               ("ldacbt" ,ldacbt)
                ("pulseaudio" ,pulseaudio)
                ("vulkan-loader" ,vulkan-loader)
                ("vulkan-headers" ,vulkan-headers))))))
@@ -8116,7 +8161,7 @@ of Linux application development.")
                (("/usr/bin/dbus-daemon") (which "dbus-daemon")))
              #t)))))
     (inputs
-     `(("dbus" ,dbus)))
+     (list dbus))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("libtool" ,libtool)
@@ -8131,46 +8176,26 @@ ELL is designed to be efficient and compact enough for use on embedded Linux
 platforms, it is not limited to resource-constrained systems.")
     (license license:lgpl2.1+)))
 
-(define-public lttng-ust
-  (package
-    (name "lttng-ust")
-    (version "2.12.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://lttng.org/files/lttng-ust/"
-                                  "lttng-ust-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "1iwz6p79zvibj8sl8qqw84lcir9a8z1ylq77hhnwg26anrjg1l5w"))))
-    (build-system gnu-build-system)
-    (inputs
-     `(("liburcu" ,liburcu)
-       ("numactl" ,numactl)))
-    (native-inputs
-     `(("python" ,python-3)))
-    (home-page "https://lttng.org/")
-    (synopsis "LTTng userspace tracer libraries")
-    (description "The user space tracing library, liblttng-ust, is the LTTng
-user space tracer.  It receives commands from a session daemon, for example to
-enable and disable specific instrumentation points, and writes event records
-to ring buffers shared with a consumer daemon.")
-    (license license:lgpl2.1+)))
-
 (define-public kexec-tools
   (package
     (name "kexec-tools")
-    (version "2.0.22")
+    (version "2.0.23")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kernel.org/linux/utils/kernel"
                                   "/kexec/kexec-tools-" version ".tar.xz"))
               (sha256
                (base32
-                "1hj9mj6x3qs9c8x8mrri9xd3wsg3gwzbab3jfa5ry146xm4pzjcn"))))
+                "06r44i91g1s9f7k5b9kmvb58j9vrqvysfh32pb70cnyrgmncsqxa"))))
     (build-system gnu-build-system)
     (arguments
      ;; There are no automated tests.
      '(#:tests? #f))
+    ;; This variant of binutils is used for the 64 bit support needed to
+    ;; assemble the `purgatory/arch/i386/compat_x86_64.S' program on i686-linux.
+    (native-inputs (list (make-ld-wrapper "ld-wrapper"
+                                          #:binutils binutils-next)
+                         binutils-next))
     (home-page "https://projects.horms.net/projects/kexec/")
     (synopsis "Tools for booting directly into different kernels")
     (description "This package provides the @code{kexec} program and ancillary
@@ -8228,11 +8253,10 @@ persistent over reboots.")
          "0ilnnm4q22f8fagwp8kb37licy4ks861i2iqh2djsypqhnxvx3fv"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
      ;; In Requires.private of libbpf.pc.
-     `(("libelf" ,libelf)
-       ("zlib" ,zlib)))
+     (list libelf zlib))
     (arguments
      `(#:tests? #f                      ; no tests
        #:make-flags
@@ -8272,8 +8296,7 @@ headers.")
          "1367c0bzrpclvjvmk0sxgi49rh7j2f9izqk5a7g3yvawh1fmvvjh"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (inputs
      `(("clang-toolchain" ,clang-toolchain)
        ("libbpf" ,(package-source libbpf))
@@ -8281,7 +8304,6 @@ headers.")
        ;; archives, only object files.
        ;; https://github.com/iovisor/bcc/issues/504
        ("elfutils" ,elfutils)
-       ("linux-libre-headers" ,linux-libre-headers)
        ("luajit" ,luajit)
        ("python-wrapper" ,python-wrapper)))
     (arguments
@@ -8354,14 +8376,9 @@ and above.")
        (patches (search-patches "bpftrace-disable-bfd-disasm.patch"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (inputs
-     `(("bcc" ,bcc)
-       ("clang-toolchain" ,clang-toolchain)
-       ("elfutils" ,elfutils)
-       ("libbpf" ,libbpf)
-       ("linux-libre-headers" ,linux-libre-headers)))
+     (list bcc clang-toolchain elfutils libbpf))
     (arguments
      `(#:tests? #f ;Tests require googletest sources.
        #:configure-flags
@@ -8412,21 +8429,22 @@ receiving.  It is dedicated to the PL011 UART of the Raspberry Pi.")
 (define-public ipset
   (package
     (name "ipset")
-    (version "7.11")
+    (version "7.15")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://ipset.netfilter.org/"
                            "ipset-" version ".tar.bz2"))
        (sha256
-        (base32 "0zdzp9fhpp6hmirzxy7w27fb9xx9lxd2ykxbn8by7ngi62nvll9i"))))
+        (base32 "0l8pcaym6057hq3a4zwnk53p5y6xg1m3d3c83wn18h5nmnm4am8a"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libmnl" ,libmnl)))
+     (list libmnl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
-     `(#:configure-flags '("--with-kmod=no")))
+     `(#:configure-flags '("--disable-static"
+                           "--with-kmod=no")))
     (home-page "https://ipset.netfilter.org/")
     (synopsis "Administration tool for IP sets")
     (description "IP sets are a framework inside the Linux 2.4.x and 2.6.x kernel which
@@ -8485,7 +8503,7 @@ kernel side implementation.")
 (define-public erofs-utils
   (package
     (name "erofs-utils")
-    (version "1.3")
+    (version "1.4")
     (source
      (origin
        (method git-fetch)
@@ -8494,16 +8512,13 @@ kernel side implementation.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0sqiw05zbxr6l0g9gn3whkc4qc5km2qvfg4lnm08nppwskm8yaw8"))))
+        (base32 "1ygaw69pfz2hfzw9cqzg9rfnjzrdbfkwsiinz6qs2h56dssjz0y9"))))
     (build-system gnu-build-system)
     (inputs
-     `(("lz4" ,lz4)
-       ("libuuid" ,util-linux "lib")))
+     (list lz4
+           `(,util-linux "lib")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (home-page "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/")
     (synopsis "User-space tools for the EROFS file system")
     (description
@@ -8525,10 +8540,8 @@ provides user-space tools for creating EROFS file systems.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "12ih96jwmr7imp9zyckf9zjqqm5ra1kv5fj6kbw71y6yl31069dz"))))
-    (native-inputs `(("autoconf" ,autoconf)
-                     ("automake" ,automake)
-                     ("libtool" ,libtool)))
-    (inputs `(("sqlite" ,sqlite)))
+    (native-inputs (list autoconf automake libtool))
+    (inputs (list sqlite))
     (arguments
      `(#:configure-flags
        (list "--enable-all"
@@ -8579,12 +8592,12 @@ through standard log mechanisms like syslog.")
           "--enable-bindings-cxx"
           "--enable-bindings-python")))
     (native-inputs
-      `(("automake" ,automake)
-        ("autoconf" ,autoconf)
-        ("libtool" ,libtool)
-        ("autoconf-archive" ,autoconf-archive)
-        ("pkg-config" ,pkg-config)
-        ("python" ,python-3)))
+      (list automake
+            autoconf
+            libtool
+            autoconf-archive
+            pkg-config
+            python-3))
     (synopsis "Interact with the Linux GPIO character device")
     (description
      "This package provides a C library with C++/Python bindings and
diff --git a/gnu/packages/lirc.scm b/gnu/packages/lirc.scm
index f840f49a23..1b8e8e37bd 100644
--- a/gnu/packages/lirc.scm
+++ b/gnu/packages/lirc.scm
@@ -69,7 +69,7 @@
            (lambda* (#:key inputs #:allow-other-keys)
              ;; 'lirc-make-devinput' script assumes that linux headers
              ;; are placed in "/usr/...".
-             (let ((headers (assoc-ref inputs "linux-headers")))
+             (let ((headers (assoc-ref inputs "kernel-headers")))
                (substitute* "tools/lirc-make-devinput"
                  (("/usr/include") (string-append headers "/include"))))
              #t))
@@ -85,12 +85,10 @@
                (("^varimage_DATA =.*") "varimage_DATA =\n"))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("libxslt" ,libxslt)))
+     (list pkg-config libxslt))
     (inputs
      `(("libx11" ,libx11)
        ("libusb-compat" ,libusb-compat)
-       ("linux-headers" ,linux-libre-headers)
        ("alsa-lib" ,alsa-lib)
        ("python" ,python)))
     (home-page "https://www.lirc.org/")
@@ -123,9 +121,9 @@ on just one button press.")
            "13s9zqyfh871ls1aha47rhmk13b4mcyfckcn2sw70bvc26832gk6"))))
       (build-system python-build-system)
       (inputs
-       `(("lirc" ,lirc)))
+       (list lirc))
       (native-inputs
-       `(("python-cython" ,python-cython)))
+       (list python-cython))
       (arguments
        `(#:tests? #f         ; the only tests that exist are interactive
          #:phases
diff --git a/gnu/packages/lisp-check.scm b/gnu/packages/lisp-check.scm
index 95918433c4..1cdd7d8300 100644
--- a/gnu/packages/lisp-check.scm
+++ b/gnu/packages/lisp-check.scm
@@ -1,5 +1,13 @@
 ;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
+;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018, 2019, 2020, 2021 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
+;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -16,6 +24,9 @@
 ;;; You should have received a copy of the GNU General Public License
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
+;;; This module only contains Common Lisp libraries related to code testing
+;;; facilities.
+
 (define-module (gnu packages lisp-check)
   #:use-module (gnu packages)
   #:use-module ((guix licenses) #:prefix license:)
@@ -24,10 +35,507 @@
   #:use-module (guix git-download)
   #:use-module (guix build-system asdf))
 
-;;; Commentary:
-;;;
-;;; This module only contains Common Lisp libraries related to code testing
-;;; facilities.
+(define-public sbcl-1am
+  (let ((commit "8b1da94eca4613fd8a20bdf63f0e609e379b0ba5"))
+    (package
+      (name "sbcl-1am")
+      (version (git-version "0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/lmj/1am")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "05ss4nz1jb9kb796295482b62w5cj29msfj8zis33sp2rw2vmv2g"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/lmj/1am")
+      (synopsis "Minimal testing framework for Common Lisp")
+      (description "A minimal testing framework for Common Lisp.")
+      (license license:expat))))
+
+(define-public cl-1am
+  (sbcl-package->cl-source-package sbcl-1am))
+
+(define-public ecl-1am
+  (sbcl-package->ecl-package sbcl-1am))
+
+(define-public sbcl-check-it
+  (let ((commit "b79c9103665be3976915b56b570038f03486e62f"))
+    (package
+      (name "sbcl-check-it")
+      (version (git-version "0.1.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/DalekBaldwin/check-it/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1kbjwpniffdpv003igmlz5r0vy65m7wpfnhg54fhwirp1227hgg7"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-alexandria sbcl-closer-mop sbcl-optima))
+      (native-inputs
+       (list sbcl-stefil))
+      (home-page "https://github.com/arclanguage/Clamp")
+      (synopsis "Randomized specification-based testing for Common Lisp")
+      (description
+       "This is a randomized property-based testing library for Common Lisp.
+Rather than being a full-fledged general test framework in its own right, it's
+designed to embed randomized tests in whatever framework you like.")
+      (license license:llgpl))))
+
+(define-public cl-check-it
+  (sbcl-package->cl-source-package sbcl-check-it))
+
+(define-public ecl-check-it
+  (sbcl-package->ecl-package sbcl-check-it))
+
+(define-public sbcl-checkl
+  (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
+        (revision "1"))
+    (package
+      (name "sbcl-checkl")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/rpav/CheckL")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       ;; Error while trying to load definition for system checkl-test from
+       ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
+       ;; is undefined.
+       '(#:asd-files '("checkl.asd")
+         #:tests? #f))
+      (native-inputs
+       (list sbcl-fiveam))
+      (inputs
+       (list sbcl-marshal))
+      (home-page "https://github.com/rpav/CheckL/")
+      (synopsis "Dynamic testing for Common Lisp")
+      (description
+       "CheckL lets you write tests dynamically, it checks resulting values
+against the last run.")
+      ;; The author specifies both LLGPL and "BSD", but the "BSD" license
+      ;; isn't specified anywhere, so I don't know which kind.  LLGPL is the
+      ;; stronger of the two and so I think only listing this should suffice.
+      (license license:llgpl))))
+
+(define-public cl-checkl
+  (sbcl-package->cl-source-package sbcl-checkl))
+
+(define-public ecl-checkl
+  (sbcl-package->ecl-package sbcl-checkl))
+
+(define-public sbcl-cl-mock
+  ;; .asd version only got updated recently, despired the old GitHug "1.0.1" release.
+  (let ((commit "7988dca2093358911b67597a2cd1570c785dfe76"))
+    (package
+      (name "sbcl-cl-mock")
+      (version (git-version "1.0.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Ferada/cl-mock/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0f40wikcf783jx26ip0nnhwjjfjvjiw7njqsqrb6kaphc8bgw0i1"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-alexandria sbcl-closer-mop sbcl-trivia))
+      (native-inputs
+       (list sbcl-fiveam))
+      (home-page "https://github.com/Ferada/cl-mock")
+      (synopsis "Mocking functions for Common Lisp testing")
+      (description
+       "This small library provides a way to replace the actual implementation
+of either regular or generic functions with mocks.")
+      (license license:agpl3))))
+
+(define-public ecl-cl-mock
+  (sbcl-package->ecl-package sbcl-cl-mock))
+
+(define-public cl-mock
+  (sbcl-package->cl-source-package sbcl-cl-mock))
+
+(define-public sbcl-cl-quickcheck
+  (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-quickcheck")
+      (version (git-version "0.0.4" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/mcandre/cl-quickcheck")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis
+       "Common Lisp port of the QuickCheck unit test framework")
+      (description
+       "Common Lisp port of the QuickCheck unit test framework")
+      (home-page "https://github.com/mcandre/cl-quickcheck")
+      ;; MIT
+      (license license:expat))))
+
+(define-public cl-quickcheck
+  (sbcl-package->cl-source-package sbcl-cl-quickcheck))
+
+(define-public ecl-cl-quickcheck
+  (sbcl-package->ecl-package sbcl-cl-quickcheck))
+
+(define-public sbcl-clunit
+  (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
+        (revision "1"))
+    (package
+      (name "sbcl-clunit")
+      (version (git-version "0.2.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/tgutu/clunit")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "CLUnit is a Common Lisp unit testing framework")
+      (description
+       "CLUnit is a Common Lisp unit testing framework.  It is designed
+to be easy to use so that you can quickly start testing.  CLUnit
+provides a rich set of features aimed at improving your unit testing
+experience.")
+      (home-page "https://tgutu.github.io/clunit/")
+      ;; MIT License
+      (license license:expat))))
+
+(define-public cl-clunit
+  (sbcl-package->cl-source-package sbcl-clunit))
+
+(define-public ecl-clunit
+  (sbcl-package->ecl-package sbcl-clunit))
+
+(define-public sbcl-clunit2
+  (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b")
+        (revision "1"))
+    (package
+      (name "sbcl-clunit2")
+      (version (git-version "0.2.4" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://notabug.org/cage/clunit2.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Unit testing framework for Common Lisp")
+      (description
+       "CLUnit is a Common Lisp unit testing framework.  It is designed to be
+easy to use so that you can quickly start testing.")
+      (home-page "https://notabug.org/cage/clunit2")
+      (license license:expat))))
+
+(define-public cl-clunit2
+  (sbcl-package->cl-source-package sbcl-clunit2))
+
+(define-public ecl-clunit2
+  (sbcl-package->ecl-package sbcl-clunit2))
+
+(define-public sbcl-eos
+  (let ((commit "b4413bccc4d142cbe1bf49516c3a0a22c9d99243")
+        (revision "2"))
+    (package
+      (name "sbcl-eos")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/adlai/Eos")
+               (commit commit)))
+         (sha256
+          (base32 "1afllvmlnx97yzz404gycl3pa3kwx427k3hrbf37rpmjlv47knhk"))
+         (file-name (git-file-name "eos" version))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Unit Testing for Common Lisp")
+      (description
+       "Eos was a unit testing library for Common Lisp.
+It began as a fork of FiveAM; however, FiveAM development has continued, while
+that of Eos has not.  Thus, Eos is now deprecated in favor of FiveAM.")
+      (home-page "https://github.com/adlai/Eos")
+      (license license:expat))))
+
+(define-public cl-eos
+  (sbcl-package->cl-source-package sbcl-eos))
+
+(define-public ecl-eos
+  (sbcl-package->ecl-package sbcl-eos))
+
+(define-public sbcl-fiasco
+  (let ((commit "bb47d2fef4eb24cc16badc1c9a73d73c3a7e18f5")
+        (revision "2"))
+    (package
+      (name "sbcl-fiasco")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/joaotavora/fiasco")
+               (commit commit)))
+         (file-name (git-file-name "fiasco" version))
+         (sha256
+          (base32
+           "1k8i2kq57201bvy3zfpsxld530hd104dgbglxigqb6i408c1a7aw"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-alexandria sbcl-trivial-gray-streams))
+      (synopsis "Simple and powerful test framework for Common Lisp")
+      (description "A Common Lisp test framework that treasures your failures,
+logical continuation of Stefil.  It focuses on interactive debugging.")
+      (home-page "https://github.com/joaotavora/fiasco")
+      ;; LICENCE specifies this is public-domain unless the legislation
+      ;; doesn't allow or recognize it.  In that case it falls back to a
+      ;; permissive licence.
+      (license (list license:public-domain
+                     (license:x11-style "file://LICENCE"))))))
+
+(define-public cl-fiasco
+  (sbcl-package->cl-source-package sbcl-fiasco))
+
+(define-public ecl-fiasco
+  (sbcl-package->ecl-package sbcl-fiasco))
+
+(define-public sbcl-fiveam
+  (package
+    (name "sbcl-fiveam")
+    (version "1.4.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sionescu/fiveam")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name "fiveam" version))
+       (sha256
+        (base32 "04mh5plmlb15jbq3dkd8b9jl1dmbbg4hnd3k7859vpf6s12k5p4j"))))
+    (inputs
+     (list sbcl-alexandria sbcl-net.didierverna.asdf-flv
+           sbcl-trivial-backtrace))
+    (build-system asdf-build-system/sbcl)
+    (synopsis "Common Lisp testing framework")
+    (description "FiveAM is a simple (as far as writing and running tests
+goes) regression testing framework.  It has been designed with Common Lisp's
+interactive development model in mind.")
+    (home-page "https://common-lisp.net/project/fiveam/")
+    (license license:bsd-3)))
+
+(define-public cl-fiveam
+  (sbcl-package->cl-source-package sbcl-fiveam))
+
+(define-public ecl-fiveam
+  (sbcl-package->ecl-package sbcl-fiveam))
+
+(define-public sbcl-hu.dwim.stefil
+  (let ((commit "414902c6f575818c39a8a156b8b61b1adfa73dad"))
+    (package
+      (name "sbcl-hu.dwim.stefil")
+      (version (git-version "0.0.0" "2" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/hu-dwim/hu.dwim.stefil")
+           (commit commit)))
+         (sha256
+          (base32 "14izmjjim590rh74swrssavdmdznj2z8vhqixy780sjhpcr5pmkc"))
+         (file-name (git-file-name "hu.dwim.stefil" version))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       (list sbcl-hu.dwim.asdf))
+      (inputs
+       (list sbcl-alexandria))
+      (home-page "http://dwim.hu/project/hu.dwim.stefil")
+      (synopsis "Simple test framework")
+      (description "Stefil is a simple test framework for Common Lisp,
+with a focus on interactive development.")
+      (license license:public-domain))))
+
+(define-public cl-hu.dwim.stefil
+  (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
+
+(define-public ecl-hu.dwim.stefil
+  (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
+
+(define-public sbcl-kaputt
+  (let ((commit "f26c9b0f8219fe61d86249198ef85174eecafc10")
+        (revision "1"))
+    (package
+      (name "sbcl-kaputt")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/foretspaisibles/cl-kaputt")
+               (commit commit)))
+         (file-name (git-file-name "kaputt" version))
+         (sha256
+          (base32 "10a78032vnf12kjjpfmq9ign38cad237ycyq37dwnx922nxjjaj4"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-cl-ppcre))
+      (home-page "https://github.com/foretspaisibles/cl-kaputt")
+      (synopsis "Simple interactive test framework for Common Lisp")
+      (description
+       "KAPUTT is a test framework for Common Lisp that focuses on the
+following features:
+
+@itemize
+@item KAPUTT is simple, it only defines three abstractions testcase, assertion
+and protocol and does not add any artefact on the backtrace when errors occur.
+
+@item KAPUTT is extensible, it is possible to add problem-specific assertions
+to make test code more informative.
+
+@item KAPUTT fits well interactive development.
+@end itemize\n")
+      (license license:cecill-b))))
+
+(define-public ecl-kaputt
+  (sbcl-package->ecl-package sbcl-kaputt))
+
+(define-public cl-kaputt
+  (sbcl-package->cl-source-package sbcl-kaputt))
+
+(define-public sbcl-lift
+  (let ((commit "2594160d6ca3a77d8750110dfa63214256aab852")
+        (revision "2"))
+    (package
+      (name "sbcl-lift")
+      (version (git-version "1.7.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/gwkkwg/lift")
+               (commit commit)))
+         (sha256
+          (base32 "01xvz9sl5l5lai4h9dabmcjnm659wf5zllaxqbs55lffskp6jwq3"))
+         (file-name (git-file-name "lift" version))
+         (modules '((guix build utils)))
+         (snippet
+          ;; Don't keep the bundled website
+          `(begin
+             (delete-file-recursively "website")
+             #t))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       ;; The tests require a debugger, but we run with the debugger disabled.
+       '(#:tests? #f))
+      (synopsis "LIsp Framework for Testing")
+      (description
+       "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
+Though inspired by SUnit and JUnit, it's built with Lisp in mind.  In LIFT,
+testcases are organized into hierarchical testsuites each of which can have
+its own fixture.  When run, a testcase can succeed, fail, or error.  LIFT
+supports randomized testing, benchmarking, profiling, and reporting.")
+      (home-page "https://github.com/gwkkwg/lift")
+      (license license:expat))))
+
+(define-public cl-lift
+  (sbcl-package->cl-source-package sbcl-lift))
+
+(define-public ecl-lift
+  (sbcl-package->ecl-package sbcl-lift))
+
+(define-public sbcl-lisp-unit
+  (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
+    (package
+      (name "sbcl-lisp-unit")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/OdonataResearchLLC/lisp-unit")
+               (commit commit)))
+         (sha256
+          (base32
+           "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
+         (file-name (git-file-name "lisp-unit" version))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
+      (description
+       "@command{lisp-unit} is a Common Lisp library that supports unit
+testing.  It is an extension of the library written by Chris Riesbeck.")
+      (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
+      (license license:expat))))
+
+(define-public cl-lisp-unit
+  (sbcl-package->cl-source-package sbcl-lisp-unit))
+
+(define-public ecl-lisp-unit
+  (sbcl-package->ecl-package sbcl-lisp-unit))
+
+(define-public sbcl-lisp-unit2
+  ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
+  ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
+  (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
+        (revision "1"))
+    (package
+      (name "sbcl-lisp-unit2")
+      (version (git-version "0.2.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/AccelerationNet/lisp-unit2")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-alexandria sbcl-cl-interpol sbcl-iterate
+             sbcl-symbol-munger))
+      (synopsis "Test Framework for Common Lisp")
+      (description
+       "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
+style of JUnit for Java.  It is a new version of the lisp-unit library written
+by Chris Riesbeck.")
+      (home-page "https://github.com/AccelerationNet/lisp-unit2")
+      (license license:expat))))
+
+(define-public cl-lisp-unit2
+  (sbcl-package->cl-source-package sbcl-lisp-unit2))
+
+(define-public ecl-lisp-unit2
+  (sbcl-package->ecl-package sbcl-lisp-unit2))
 
 (define-public sbcl-nst
   (let ((commit "6c0990f594abcf5887e8d80f1035e3b60454b61b")
@@ -46,8 +554,7 @@
         (base32 "1hf3r6pqbnd9vsd1i24qmz928kia72hdgmiafiwb6jw1hmj3r6ga"))))
      (build-system asdf-build-system/sbcl)
      (inputs
-      `(("closer-mop" ,sbcl-closer-mop)
-        ("org-sampler" ,sbcl-org-sampler)))
+      (list sbcl-closer-mop sbcl-org-sampler))
      (home-page "https://github.com/jphmrst/cl-nst")
      (synopsis "Unit testing for Common Lisp")
      (description
@@ -60,4 +567,305 @@
 (define-public cl-nst
   (sbcl-package->cl-source-package sbcl-nst))
 
-;;; lisp-check.scm ends here
+(define-public sbcl-parachute
+  (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
+        (revision "0"))
+    (package
+      (name "sbcl-parachute")
+      (version (git-version "1.1.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/Shinmera/parachute")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-documentation-utils sbcl-form-fiddle))
+      (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
+      (description
+       "Parachute is a simple-to-use and extensible testing framework.
+In Parachute, things are organised as a bunch of named tests within a package.
+Each test can contain a bunch of test forms that make up its body.")
+      (home-page "https://shinmera.github.io/parachute/")
+      (license license:zlib))))
+
+(define-public cl-parachute
+  (sbcl-package->cl-source-package sbcl-parachute))
+
+(define-public ecl-parachute
+  (sbcl-package->ecl-package sbcl-parachute))
+
+(define-public sbcl-prove
+  (let ((commit "5d71f02795b89e36f34e8c7d50e69b67ec6ca2de")
+        (revision "2"))
+    (package
+      (name "sbcl-prove")
+      (version (git-version "1.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/fukamachi/prove")
+               (commit commit)))
+         (sha256
+          (base32 "0ca6ha3zhmckq3ad9lxm6sbg4i0hg3m81xhan4dkxd3x9898jzpc"))
+         (file-name (git-file-name "prove" version))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-alexandria sbcl-cl-colors sbcl-cl-ppcre
+             sbcl-cl-ansi-text))
+      (synopsis "Yet another unit testing framework for Common Lisp")
+      (description
+       "This project was originally called @command{cl-test-more}.
+@command{prove} is yet another unit testing framework for Common Lisp.  The
+advantages of @command{prove} are:
+
+@itemize
+@item Various simple functions for testing and informative error messages
+@item ASDF integration
+@item Extensible test reporters
+@item Colorizes the report if it's available (note for SLIME)
+@item Reports test durations
+@end itemize\n")
+      (home-page "https://github.com/fukamachi/prove")
+      (license license:expat))))
+
+(define-public cl-prove
+  (sbcl-package->cl-source-package sbcl-prove))
+
+(define-public ecl-prove
+  (sbcl-package->ecl-package sbcl-prove))
+
+(define-public sbcl-ptester
+  (let ((commit "fe69fde54f4bce00ce577feb918796c293fc7253")
+        (revision "1"))
+    (package
+      (name "sbcl-ptester")
+      (version (git-version "2.1.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "http://git.kpe.io/ptester.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1l0lfl7cdnr2qf4zh38hi4llxg22c49zkm639bdkmvlkzwj3ndwf"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "http://quickdocs.org/ptester/")
+      (synopsis "Portable test harness package")
+      (description
+       "@command{ptester} is a portable testing framework based on Franz's
+tester module.")
+      (license license:llgpl))))
+
+(define-public cl-ptester
+  (sbcl-package->cl-source-package sbcl-ptester))
+
+(define-public ecl-ptester
+  (sbcl-package->ecl-package sbcl-ptester))
+
+(define-public sbcl-rove
+  (package
+    (name "sbcl-rove")
+    (version "0.9.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/fukamachi/rove")
+             (commit "f3695db08203bf26f3b861dc22ac0f4257d3ec21")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "07ala4l2fncxf540fzxj3h5mhi9i4wqllhj0rqk8m2ljl5zbz89q"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     (list sbcl-bordeaux-threads sbcl-dissect sbcl-trivial-gray-streams))
+    (home-page "https://github.com/fukamachi/rove")
+    (synopsis
+     "Yet another common lisp testing library")
+    (description
+     "Rove is a unit testing framework for Common Lisp applications.
+This is intended to be a successor of Prove.")
+    (license license:bsd-3)))
+
+(define-public cl-rove
+  (sbcl-package->cl-source-package sbcl-rove))
+
+(define-public ecl-rove
+  (sbcl-package->ecl-package sbcl-rove))
+
+(define-public sbcl-rt
+  (let ((commit "a6a7503a0b47953bc7579c90f02a6dba1f6e4c5a")
+        (revision "1"))
+    (package
+      (name "sbcl-rt")
+      (version (git-version "1990.12.19" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "http://git.kpe.io/rt.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "13si2rrxaagbr0bkvg6sqicxxpyshabx6ad6byc9n2ik5ysna69b"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "MIT Regression Tester")
+      (description
+       "RT provides a framework for writing regression test suites.")
+      (home-page "https://www.cliki.net/rt")
+      (license license:expat))))
+
+(define-public cl-rt
+  (sbcl-package->cl-source-package sbcl-rt))
+
+(define-public ecl-rt
+  (sbcl-package->ecl-package sbcl-rt))
+
+(define-public sbcl-should-test
+  (let ((commit "48facb9f9c07aeceb71fc0c48ce17fd7d54a09d4")
+        (revision "0"))
+    (package
+      (name "sbcl-should-test")
+      (version (git-version "1.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/vseloved/should-test")
+               (commit commit)))
+         (file-name (git-file-name "should-test" version))
+         (sha256
+          (base32 "1fqqa7lhf28qg60ji9libkylkcy747x576qpjn1y7c945j2fxmnm"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-cl-ppcre sbcl-local-time sbcl-osicat sbcl-rutils))
+      (home-page "https://github.com/vseloved/should-test")
+      (synopsis "Minimal yet feature-rich Common Lisp test framework")
+      (description
+       "SHOULD-TEST is a methodology-agnostic and non-opinionated Common Lisp
+test framework, i.e. it doesn't care what kind of test approach you'd like to
+take.")
+      (license license:expat))))
+
+(define-public cl-should-test
+  (sbcl-package->cl-source-package sbcl-should-test))
+
+(define-public ecl-should-test
+  (sbcl-package->ecl-package sbcl-should-test))
+
+(define-public sbcl-stefil
+  (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
+        (revision "0"))
+    (package
+      (name "sbcl-stefil")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.common-lisp.net/stefil/stefil.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("iterate" ,sbcl-iterate)
+         ("metabang-bind" ,sbcl-metabang-bind)
+         ("swank" ,sbcl-slime-swank)))
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'drop-unnecessary-dependency
+             (lambda _
+               (substitute* "package.lisp"
+                 ((":stefil-system") ""))
+               #t)))))
+      (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
+      (synopsis "Simple test framework")
+      (description
+       "Stefil is a simple test framework for Common Lisp, with a focus on
+interactive development.")
+      (license license:public-domain))))
+
+(define-public cl-stefil
+  (sbcl-package->cl-source-package sbcl-stefil))
+
+(define-public ecl-stefil
+  (sbcl-package->ecl-package sbcl-stefil))
+
+(define-public sbcl-unit-test
+  (let ((commit "266afaf4ac091fe0e8803bac2ae72d238144e735")
+        (revision "1"))
+    (package
+      (name "sbcl-unit-test")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/hanshuebner/unit-test")
+               (commit commit)))
+         (file-name (git-file-name "unit-test" version))
+         (sha256
+          (base32 "11hpksz56iqkv7jw25p2a8r3n9dj922fyarn16d98589g6hdskj9"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/hanshuebner/unit-test")
+      (synopsis "Unit-testing framework for Common Lisp")
+      (description "This is a unit-testing framework for Common Lisp.")
+      (license license:unlicense))))
+
+(define-public ecl-unit-test
+  (sbcl-package->ecl-package sbcl-unit-test))
+
+(define-public cl-unit-test
+  (sbcl-package->cl-source-package sbcl-unit-test))
+
+(define-public sbcl-xlunit
+  (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
+        (revision "1"))
+    (package
+      (name "sbcl-xlunit")
+      (version (git-version "0.6.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "http://git.kpe.io/xlunit.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-tests
+             (lambda _
+               (substitute* "xlunit.asd"
+                 ((" :force t") ""))
+               #t)))))
+      (synopsis "Unit testing package for Common Lisp")
+      (description
+       "The XLUnit package is a toolkit for building test suites.  It is based
+on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
+      (home-page "http://quickdocs.org/xlunit/")
+      (license license:bsd-3))))
+
+(define-public cl-xlunit
+  (sbcl-package->cl-source-package sbcl-xlunit))
+
+(define-public ecl-xlunit
+  (sbcl-package->ecl-package sbcl-xlunit))
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index d990212115..407d44e156 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -27,6 +27,10 @@
 ;;; Copyright © 2021 Cage <cage-dev@twistfold.it>
 ;;; Copyright © 2021 Cameron Chaparro <cameron@cameronchaparro.com>
 ;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
+;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
+;;; Copyright © 2021 Jacob MacDonald <jaccarmac@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -67,6 +71,7 @@
   #:use-module (gnu packages file)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages game-development)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -77,6 +82,7 @@
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lisp)
+  #:use-module (gnu packages lisp-check)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages ncurses)
@@ -84,8 +90,11 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages readline)
   #:use-module (gnu packages sdl)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages statistics)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages video)
@@ -114,7 +123,7 @@
      (file-name (git-file-name name version))))
    (build-system asdf-build-system/sbcl)
    (native-inputs
-    `(("rt" ,sbcl-rt)))
+    (list sbcl-rt))
    (synopsis "Collection of portable utilities for Common Lisp")
    (description
     "Alexandria is a collection of portable utilities.  It does not contain
@@ -146,15 +155,15 @@ portable between implementations.")
         (base32 "1z1blj05q71vzh323qwyn9p3xs7v0mq2yhwfyzza5libp37wqm3c"))))
      (build-system asdf-build-system/sbcl)
      (inputs
-      `(("alexandria" ,sbcl-alexandria)
-        ("cffi" ,sbcl-cffi)
-        ("claw" ,sbcl-claw)
-        ("dissect" ,sbcl-dissect)
-        ("local-time" ,sbcl-local-time)
-        ("log4cl" ,sbcl-log4cl)
-        ("split-sequence" ,sbcl-split-sequence)
-        ("static-vectors" ,sbcl-static-vectors)
-        ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+      (list sbcl-alexandria
+            sbcl-cffi
+            sbcl-claw
+            sbcl-dissect
+            sbcl-local-time
+            sbcl-log4cl
+            sbcl-split-sequence
+            sbcl-static-vectors
+            sbcl-trivial-gray-streams))
      (home-page "https://github.com/borodust/bodge-utilities")
      (synopsis "Common Lisp utilities library for CL-BODGE")
      (description
@@ -185,7 +194,7 @@ collection.")
           (base32 "148hjikqk8v2m30mj15xh89zni6szf9z3prav580qk9dqr8djjdr"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (home-page "https://github.com/borodust/bodge-queue")
       (synopsis "Simple queue for Common Lisp")
       (description "This Common Lisp library provides a simple FIFO
@@ -204,19 +213,19 @@ implementation with no external dependencies.")
     (package
       (name "sbcl-golden-utils")
       (version (git-version "0.0.0" revision commit))
+      (home-page "https://github.com/mfiano/mfiano-utils")
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://git.mfiano.net/mfiano/golden-utils")
+               (url home-page)
                (commit commit)))
          (file-name (git-file-name "golden-utils" version))
          (sha256
           (base32 "1ljc8yj32lmd1d60446rzl9m0r1ar15gdzacsf6blw1kny8xlrsr"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)))
-      (home-page "https://git.mfiano.net/mfiano/golden-utils")
+       (list sbcl-alexandria))
       (synopsis "Common Lisp utility library")
       (description
        "This is a Common Lisp library providing various utilities.")
@@ -330,37 +339,6 @@ or cl-launch for portable processing of command-line arguments.")
 (define-public cl-command-line-arguments
   (sbcl-package->cl-source-package sbcl-command-line-arguments))
 
-(define-public sbcl-fiveam
-  (package
-    (name "sbcl-fiveam")
-    (version "1.4.2")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/sionescu/fiveam")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name "fiveam" version))
-       (sha256
-        (base32 "04mh5plmlb15jbq3dkd8b9jl1dmbbg4hnd3k7859vpf6s12k5p4j"))))
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("net.didierverna.asdf-flv" ,sbcl-net.didierverna.asdf-flv)
-       ("trivial-backtrace" ,sbcl-trivial-backtrace)))
-    (build-system asdf-build-system/sbcl)
-    (synopsis "Common Lisp testing framework")
-    (description "FiveAM is a simple (as far as writing and running tests
-goes) regression testing framework.  It has been designed with Common Lisp's
-interactive development model in mind.")
-    (home-page "https://common-lisp.net/project/fiveam/")
-    (license license:bsd-3)))
-
-(define-public cl-fiveam
-  (sbcl-package->cl-source-package sbcl-fiveam))
-
-(define-public ecl-fiveam
-  (sbcl-package->ecl-package sbcl-fiveam))
-
 (define-public sbcl-cl-irc
   (let ((commit "963823537c7bfcda2edd4c44d172192da6722175")
         (revision "0"))
@@ -379,7 +357,7 @@ interactive development model in mind.")
       (build-system asdf-build-system/sbcl)
       (native-inputs
        ;; Tests only.
-       `(("rt" ,sbcl-rt)))
+       (list sbcl-rt))
       (inputs
        `(("cl+ssl" ,sbcl-cl+ssl)
          ("flexi-streams" ,sbcl-flexi-streams)
@@ -430,7 +408,7 @@ Features:
           (base32 "1kninxwvvih9nhh7a9y8lfgi7pdr76675y1clw4ss17vz8fbim5p"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("lift" ,sbcl-lift)))
+       (list sbcl-lift))
       (arguments
        ;; NOTE: (Sharlatan-20210202T231437+0000): Due to the age of this library
        ;; tests use some deprecated functionality and keep failing.
@@ -461,8 +439,8 @@ timeouts.")
                (base32 "19i443fz3488v1pbbr9x24y8h8vlyhny9vj6c9jk5prm702awrp6"))
               (file-name
                (git-file-name "bordeaux-threads" version))))
-    (inputs `(("alexandria" ,sbcl-alexandria)))
-    (native-inputs `(("fiveam" ,sbcl-fiveam)))
+    (inputs (list sbcl-alexandria))
+    (native-inputs (list sbcl-fiveam))
     (build-system asdf-build-system/sbcl)
     (synopsis "Portable shared-state concurrency library for Common Lisp")
     (description "BORDEAUX-THREADS is a proposed standard for a minimal
@@ -509,42 +487,6 @@ thin compatibility layer for gray streams.")
 (define-public ecl-trivial-gray-streams
   (sbcl-package->ecl-package sbcl-trivial-gray-streams))
 
-(define-public sbcl-fiasco
-  (let ((commit "d62f7558b21addc89f87e306f65d7f760632655f")
-        (revision "1"))
-    (package
-      (name "sbcl-fiasco")
-      (version (git-version "0.0.1" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/joaotavora/fiasco")
-               (commit commit)))
-         (file-name (git-file-name "fiasco" version))
-         (sha256
-          (base32
-           "1zwxs3d6iswayavcmb49z2892xhym7n556d8dnmvalc32pm9bkjh"))))
-      (build-system asdf-build-system/sbcl)
-      (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
-      (synopsis "Simple and powerful test framework for Common Lisp")
-      (description "A Common Lisp test framework that treasures your failures,
-logical continuation of Stefil.  It focuses on interactive debugging.")
-      (home-page "https://github.com/joaotavora/fiasco")
-      ;; LICENCE specifies this is public-domain unless the legislation
-      ;; doesn't allow or recognize it.  In that case it falls back to a
-      ;; permissive licence.
-      (license (list license:public-domain
-                     (license:x11-style "file://LICENCE"))))))
-
-(define-public cl-fiasco
-  (sbcl-package->cl-source-package sbcl-fiasco))
-
-(define-public ecl-fiasco
-  (sbcl-package->ecl-package sbcl-fiasco))
-
 (define-public sbcl-flexi-streams
   (package
     (name "sbcl-flexi-streams")
@@ -636,7 +578,7 @@ grammar.")
         (base32 "0dwvr29diqzcg5n6jvbk2rnd90i05l7n828hhw99khmqd0kz7xsi"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("flexi-streams" ,sbcl-flexi-streams)))
+     (list sbcl-flexi-streams))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -705,7 +647,7 @@ compatible with ANSI-compliant Common Lisp implementations.")
         (base32 "1y2gq2sckspnq8118bix55p2j43dk9qn3p8a2rplp1ip2qxqbb1i"))))
      (build-system asdf-build-system/sbcl)
      (inputs
-      `(("parse" ,sbcl-parse)))
+      (list sbcl-parse))
      (home-page "https://github.com/massung/re")
      (synopsis "Lua-style Pattern Matching for Common Lisp")
      (description
@@ -773,7 +715,7 @@ within.")
      `(#:asd-systems
        '("uax-15")))
     (native-inputs
-     `(("fiveam" ,sbcl-fiveam)))
+     (list sbcl-fiveam))
     (inputs
      `(("cl-ppcre" ,sbcl-cl-ppcre)
        ("split-sequence" ,sbcl-split-sequence)))
@@ -805,9 +747,9 @@ RFC7564.")
                 "0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("flexi-streams" ,sbcl-flexi-streams)))
+     (list sbcl-flexi-streams))
     (inputs
-     `(("cl-ppcre" ,sbcl-cl-ppcre)))
+     (list sbcl-cl-ppcre))
     (home-page "http://weitz.de/cl-unicode/")
     (synopsis "Portable Unicode library for Common Lisp")
     (description "CL-UNICODE is a portable Unicode library Common Lisp, which
@@ -825,8 +767,7 @@ ANSI-compliant Common Lisp implementations.")
   (package (inherit sbcl-cl-ppcre)
     (name "sbcl-cl-ppcre-unicode")
     (inputs
-     `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
-       ("sbcl-cl-unicode" ,sbcl-cl-unicode)))
+     (list sbcl-cl-ppcre sbcl-cl-unicode))
     (arguments
      `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
        #:phases
@@ -927,7 +868,7 @@ anti-aliased vectorial paths.")
        '(#:tests? #f           ; spatial-trees.test requires spatial-trees.nns
          #:test-asd-file "spatial-trees.test.asd"))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (home-page "https://github.com/rpav/spatial-trees")
       (synopsis "Dynamic index data structures for spatially-extended data")
       (description
@@ -990,8 +931,7 @@ a sequence (or chain) of such elements.")
           (base32 "0w6igiav35a65h6r4p1g6dw2i7mw0s06mviw31768r6z62l1ny1v"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("iterate" ,sbcl-iterate)
-         ("zpb-ttf" ,sbcl-zpb-ttf)))
+       (list sbcl-iterate sbcl-zpb-ttf))
       (home-page "https://github.com/mbattyani/cl-pdf")
       (synopsis "Common Lisp library for generating PDF files")
       (description
@@ -1022,7 +962,7 @@ files.")
        (file-name (string-append "clx-" version))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("fiasco" ,sbcl-fiasco)))
+     (list sbcl-fiasco))
     (home-page "https://www.cliki.net/portable-clx")
     (synopsis "X11 client library for Common Lisp")
     (description "CLX is an X11 client library for Common Lisp.  The code was
@@ -1061,12 +1001,12 @@ from other CLXes around the net.")
              #t))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("clx" ,sbcl-clx)
-         ("zpb-ttf" ,sbcl-zpb-ttf)
-         ("cl-vectors" ,sbcl-cl-vectors)
-         ("cl-fad" ,sbcl-cl-fad)
-         ("cl-store" ,sbcl-cl-store)
-         ("trivial-features" ,sbcl-trivial-features)))
+       (list sbcl-clx
+             sbcl-zpb-ttf
+             sbcl-cl-vectors
+             sbcl-cl-fad
+             sbcl-cl-store
+             sbcl-trivial-features))
       (home-page "https://github.com/l04m33/clx-truetype")
       (synopsis "Antialiased TrueType font rendering using CLX and XRender")
       (description "CLX-TrueType is pure common lisp solution for
@@ -1080,10 +1020,10 @@ antialiased TrueType font rendering using CLX and XRender extension.")
   (sbcl-package->ecl-package sbcl-clx-truetype))
 
 (define-public sbcl-slynk
-  (let ((commit "fb84318c08f59bc786e047006fc81e2ace568309"))
+  (let ((commit "0470c0281498b9de072fcbf3718fc66720eeb3d0"))
     (package
       (name "sbcl-slynk")
-      (version (git-version "1.0.43" "4" commit))
+      (version (git-version "1.0.43" "5" commit))
       (source
        (origin
          (method git-fetch)
@@ -1092,7 +1032,7 @@ antialiased TrueType font rendering using CLX and XRender extension.")
            (url "https://github.com/joaotavora/sly")
            (commit commit)))
          (sha256
-          (base32 "0z123k9ak7yjb9bxb5qx48f33ma8066rhkqh8xc14z7shk75jybj"))
+          (base32 "1ws2a9azmdkkg47xnd4jggna45nf0bh54gyp0799b44c4bgjp029"))
          (file-name (git-file-name "slynk" version))))
       (build-system asdf-build-system/sbcl)
       (outputs '("out" "image"))
@@ -1102,9 +1042,9 @@ antialiased TrueType font rendering using CLX and XRender extension.")
            (add-after 'create-asdf-configuration 'build-image
              (lambda* (#:key outputs #:allow-other-keys)
                (build-image (string-append
-                             (assoc-ref %outputs "image")
+                             (assoc-ref outputs "image")
                              "/bin/slynk")
-                            %outputs
+                            outputs
                             #:dependencies '("slynk"
                                              "slynk/arglists"
                                              "slynk/fancy-inspector"
@@ -1213,7 +1153,7 @@ else @code{parse-number} signals an error of type @code{invalid-number}.")
          "1lqsbhrkfl0yif46aymvb7l3nb9wdcmj4jyw485blj32jb4famzn"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("rt" ,sbcl-rt)))
+     (list sbcl-rt))
     (home-page "https://common-lisp.net/project/iterate/")
     (synopsis "Iteration construct for Common Lisp")
     (description "@code{iterate} is an iteration construct for Common Lisp.
@@ -1252,11 +1192,8 @@ It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
            "0k39y3c93jgxpr7gwz7w0d8yknn1fdnxrjhd03057lvk5w8js27a"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("sbcl-parse-js" ,sbcl-parse-js)
-         ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
-         ("sbcl-cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
-         ("sbcl-parse-number" ,sbcl-parse-number)
-         ("sbcl-iterate" ,sbcl-iterate)))
+       (list sbcl-parse-js sbcl-cl-ppcre sbcl-cl-ppcre-unicode
+             sbcl-parse-number sbcl-iterate))
       (home-page "https://github.com/mishoo/cl-uglify-js")
       (synopsis "JavaScript compressor library for Common Lisp")
       (description "This is a Common Lisp version of UglifyJS, a JavaScript
@@ -1328,8 +1265,7 @@ compressor.  It works on data produced by @code{parse-js} to generate a
          (chmod script #o755)
          #t)))
     (inputs
-     `(("sbcl" ,sbcl)
-       ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js)))
+     (list sbcl sbcl-cl-uglify-js))
     (synopsis "JavaScript compressor")))
 
 (define-public sbcl-cl-strings
@@ -1424,38 +1360,6 @@ documentation system, explicit development support, etc.")
 (define-public ecl-hu.dwim.asdf
   (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
 
-(define-public sbcl-hu.dwim.stefil
-  (let ((commit "414902c6f575818c39a8a156b8b61b1adfa73dad"))
-    (package
-      (name "sbcl-hu.dwim.stefil")
-      (version (git-version "0.0.0" "2" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri
-          (git-reference
-           (url "https://github.com/hu-dwim/hu.dwim.stefil")
-           (commit commit)))
-         (sha256
-          (base32 "14izmjjim590rh74swrssavdmdznj2z8vhqixy780sjhpcr5pmkc"))
-         (file-name (git-file-name "hu.dwim.stefil" version))))
-      (build-system asdf-build-system/sbcl)
-      (native-inputs
-       `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
-      (inputs
-       `(("sbcl-alexandria" ,sbcl-alexandria)))
-      (home-page "http://dwim.hu/project/hu.dwim.stefil")
-      (synopsis "Simple test framework")
-      (description "Stefil is a simple test framework for Common Lisp,
-with a focus on interactive development.")
-      (license license:public-domain))))
-
-(define-public cl-hu.dwim.stefil
-  (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
-
-(define-public ecl-hu.dwim.stefil
-  (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
-
 (define-public sbcl-babel
   ;; No release since 2014.
   (let ((commit "aeed2d1b76358db48e6b70a64399c05678a6b9ea"))
@@ -1473,10 +1377,9 @@ with a focus on interactive development.")
           (base32 "0lkvv4xdpv4cv1y2bqillmabx8sdb2y4l6pbinq6mjh33w2brpvb"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
+       (list sbcl-hu.dwim.stefil))
       (inputs
-       `(("sbcl-alexandria" ,sbcl-alexandria)
-         ("sbcl-trivial-features" ,sbcl-trivial-features)))
+       (list sbcl-alexandria sbcl-trivial-features))
       (home-page "https://common-lisp.net/project/babel/")
       (synopsis "Charset encoding and decoding library")
       (description "Babel is a charset encoding and decoding library, not unlike
@@ -1540,8 +1443,7 @@ to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
            "1qs1bv3m0ki8l5czhsflxcryh22r9d9g9a3a3b0cr0pl954q5rld"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("trivial-garbage" ,sbcl-trivial-garbage)))
+       (list sbcl-bordeaux-threads sbcl-trivial-garbage))
       (synopsis "Futures promises synchronization mechanism for Common Lisp")
       (description
        "Eager Future2 is a Common Lisp library that provides composable
@@ -1633,7 +1535,7 @@ and macros, primarily for software projects written in CL by the author.")
           (base32 "0s57wvvlvshp1gcp9i9d3qcmqhswnxps3i0y7wbb0v8i1a3p46m4"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("1am" ,sbcl-1am)))
+       (list sbcl-1am))
       (home-page "https://github.com/sjl/cl-pcg")
       (synopsis "Permuted congruential generators in Common Lisp")
       (description
@@ -1664,9 +1566,7 @@ pure Common Lisp.")
           (base32 "1ldpsbp3qrfzvknclsxj3sdyms1jf9ad20dvh4w0kw3zgahn2nr5"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cl-pcg" ,sbcl-cl-pcg)
-         ("golden-utils" ,sbcl-golden-utils)
-         ("ironclad" ,sbcl-ironclad)))
+       (list sbcl-cl-pcg sbcl-golden-utils sbcl-ironclad))
       (home-page "https://git.mfiano.net/mfiano/seedable-rng")
       (synopsis "Common Lisp random number generator")
       (description
@@ -1745,10 +1645,9 @@ several blockable channels.)")
            "08bmf3pi7n5hadpmqqkg65cxcj6kbvm997wcs1f53ml1nb79d9z8"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("jpl-queues" ,sbcl-jpl-queues)
-         ("bordeaux-threads" ,sbcl-bordeaux-threads)))
+       (list sbcl-jpl-queues sbcl-bordeaux-threads))
       (native-inputs
-       `(("eager-future2" ,sbcl-eager-future2)))
+       (list sbcl-eager-future2))
       (synopsis "Thread-safe message-passing channels in Common Lisp")
       (description
        "Calispel is a Common Lisp library for thread-safe message-passing
@@ -1782,39 +1681,9 @@ libraries such as Bordeaux-Threads and Eager Future.")
 (define-public ecl-calispel
   (sbcl-package->ecl-package sbcl-calispel))
 
-(define-public sbcl-eos
-  (let ((commit "b4413bccc4d142cbe1bf49516c3a0a22c9d99243")
-        (revision "2"))
-    (package
-      (name "sbcl-eos")
-      (version (git-version "0.0.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/adlai/Eos")
-               (commit commit)))
-         (sha256
-          (base32 "1afllvmlnx97yzz404gycl3pa3kwx427k3hrbf37rpmjlv47knhk"))
-         (file-name (git-file-name "eos" version))))
-      (build-system asdf-build-system/sbcl)
-      (synopsis "Unit Testing for Common Lisp")
-      (description
-       "Eos was a unit testing library for Common Lisp.
-It began as a fork of FiveAM; however, FiveAM development has continued, while
-that of Eos has not.  Thus, Eos is now deprecated in favor of FiveAM.")
-      (home-page "https://github.com/adlai/Eos")
-      (license license:expat))))
-
-(define-public cl-eos
-  (sbcl-package->cl-source-package sbcl-eos))
-
-(define-public ecl-eos
-  (sbcl-package->ecl-package sbcl-eos))
-
 (define-public sbcl-esrap
-  (let ((commit "da6b24fb18bdb8e7e177bcf2820cdaf0b560deb6")
-        (revision "1"))
+  (let ((commit "866f28fa7a2c1d3fb6d0d0423850d1f9d955750f")
+        (revision "2"))
     (package
       (name "sbcl-esrap")
       (version (git-version "0.18" revision commit))
@@ -1825,13 +1694,13 @@ that of Eos has not.  Thus, Eos is now deprecated in favor of FiveAM.")
                (url "https://github.com/scymtym/esrap")
                (commit commit)))
          (sha256
-          (base32 "12vf3bxwzf8icnf6rw1xalvm7493cfbb46r2vlhc09s59djkf39q"))
+          (base32 "19rb3dmpw3csqqagmrf80dpk5d2qn0l7fpfmxx5zwdnjk367kbwg"))
          (file-name (git-file-name "esrap" version))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
-       `(("alexandria" ,sbcl-alexandria)))
+       (list sbcl-alexandria sbcl-trivial-with-current-source-form))
       (synopsis "Common Lisp packrat parser")
       (description
        "This is a packrat parser for Common Lisp.
@@ -1871,7 +1740,7 @@ In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
        (file-name (git-file-name "split-sequence" version))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("fiveam" ,sbcl-fiveam)))
+     (list sbcl-fiveam))
     (synopsis "Member of the Common Lisp Utilities family of programs")
     (description
      "Splits sequence into a list of subsequences delimited by objects
@@ -1897,8 +1766,7 @@ satisfying the test.")
              version ".tgz"))
        (sha256
         (base32
-         "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
-       (file-name (string-append "colorize" version "-checkout"))))
+         "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))))
     (build-system asdf-build-system/sbcl)
     (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
     (description
@@ -1929,9 +1797,7 @@ satisfying the test.")
          (file-name (git-file-name "colorize" version))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("split-sequence" ,sbcl-split-sequence)
-         ("html-encode" ,sbcl-html-encode)))
+       (list sbcl-alexandria sbcl-split-sequence sbcl-html-encode))
       (synopsis "Common Lisp for syntax highlighting")
       (description
        "@command{colorize} is a Lisp library for syntax highlighting
@@ -2006,7 +1872,7 @@ for parsing, and grammar based on @command{peg-markdown}.")
        (file-name (string-append "cl-fad" version "-checkout"))))
     (build-system asdf-build-system/sbcl)
     (inputs
-     `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
+     (list sbcl-bordeaux-threads))
     (synopsis "Portable pathname library for Common Lisp")
     (description
      "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
@@ -2040,7 +1906,7 @@ Common Lisp.")
           (base32 "0yyp9z6iwx476whz0n1rpjznjyqqhlylhzwpgg5xx92lxmskl752"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("named-readtables" ,sbcl-named-readtables)))
+       (list sbcl-named-readtables))
       (home-page "https://github.com/cbaggers/fn")
       (synopsis "Macros for lambda brevity")
       (description
@@ -2055,34 +1921,6 @@ than the body of the lambda.")
 (define-public cl-fn
   (sbcl-package->cl-source-package sbcl-fn))
 
-(define-public sbcl-rt
-  (let ((commit "a6a7503a0b47953bc7579c90f02a6dba1f6e4c5a")
-        (revision "1"))
-    (package
-      (name "sbcl-rt")
-      (version (git-version "1990.12.19" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "http://git.kpe.io/rt.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "13si2rrxaagbr0bkvg6sqicxxpyshabx6ad6byc9n2ik5ysna69b"))))
-      (build-system asdf-build-system/sbcl)
-      (synopsis "MIT Regression Tester")
-      (description
-       "RT provides a framework for writing regression test suites.")
-      (home-page "https://www.cliki.net/rt")
-      (license license:expat))))
-
-(define-public cl-rt
-  (sbcl-package->cl-source-package sbcl-rt))
-
-(define-public ecl-rt
-  (sbcl-package->ecl-package sbcl-rt))
-
 (define-public sbcl-nibbles
   ;; No tagged release since 2018.
   (let ((commit "dad25240928d5cf8f7df69c4398244e03570bb35")
@@ -2102,7 +1940,7 @@ than the body of the lambda.")
       (build-system asdf-build-system/sbcl)
       (native-inputs
        ;; Tests only.
-       `(("rt" ,sbcl-rt)))
+       (list sbcl-rt))
       (synopsis
        "Common Lisp library for accessing octet-addressed blocks of data")
       (description
@@ -2132,7 +1970,7 @@ also be supported.")
 (define-public sbcl-ironclad
   (package
     (name "sbcl-ironclad")
-    (version "0.55")
+    (version "0.56")
     (source
      (origin
        (method git-fetch)
@@ -2140,15 +1978,14 @@ also be supported.")
              (url "https://github.com/sharplispers/ironclad/")
              (commit (string-append "v" version))))
        (sha256
-        (base32 "1w4slnc4143w1gcff1wxsivzb8kcji0bpd7y9rld3sabay0qprwl"))
+        (base32 "0dhakily94vswl8a6q9ad0af8nk4pnvfgx7sw9kxl1wdq1pkg3ni"))
        (file-name (git-file-name name version))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
      ;; Tests only.
-     `(("rt" ,sbcl-rt)))
+     (list sbcl-rt))
     (inputs
-     `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-       ("flexi-streams" ,sbcl-flexi-streams)))
+     (list sbcl-bordeaux-threads sbcl-flexi-streams))
     (synopsis "Cryptographic toolkit written in Common Lisp")
     (description
      "Ironclad is a cryptography library written entirely in Common Lisp.
@@ -2210,7 +2047,7 @@ readtables, which is akin to package namespacing in Common Lisp.")
         (base32 "0i4rqz5cv7d7c2w81x5lwy05s6fbi3zikf4k5kpi3bkx3cabwdxj"))))
     (build-system asdf-build-system/sbcl)
     (inputs
-     `(("parse-number" ,sbcl-parse-number)))
+     (list sbcl-parse-number))
     (home-page "http://common-lisp.net/project/py-configparser/")
     (synopsis "ConfigParser Python module functionality for Common Lisp")
     (description "The py-configparser package implements the ConfigParser
@@ -2243,7 +2080,7 @@ values in other options.")
          (file-name (git-file-name "pythonic-string-reader" version))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("named-readtables" ,sbcl-named-readtables)))
+       (list sbcl-named-readtables))
       (home-page "https://github.com/smithzvk/pythonic-string-reader")
       (synopsis "Read table modification inspired by Python's three quote strings")
       (description "This piece of code sets up some reader macros that make it
@@ -2261,7 +2098,7 @@ writing code that contains string literals that contain code themselves.")
 (define-public sbcl-slime-swank
   (package
     (name "sbcl-slime-swank")
-    (version "2.26")
+    (version "2.26.1")
     (source
      (origin
        (file-name (git-file-name "slime-swank" version))
@@ -2271,7 +2108,7 @@ writing code that contains string literals that contain code themselves.")
              (commit (string-append "v" version))))
        (sha256
         (base32
-         "0mxb1wnw19v0s72w2wkz5afdlzvpy5nn7pr4vav403qybac0sw5c"))))
+         "1a25ixb7q4svqabxnhwkk43v47mbsh13qwm7qlazkd3zkr8j3cli"))))
     (build-system asdf-build-system/sbcl)
     (arguments
      '(#:asd-systems '("swank")))
@@ -2290,11 +2127,11 @@ processes that doesn't run under Emacs.  Lisp processes created by
   (sbcl-package->ecl-package sbcl-slime-swank))
 
 (define-public sbcl-mgl-pax
-  (let ((commit "4ada6eb26364e71addb169ce58e4ba83bc7a8eaa")
-        (revision "2"))
+  (let ((commit "a7f904784ae59bbeeeb15a14348cda46ed9bdeb3")
+        (revision "0"))
     (package
       (name "sbcl-mgl-pax")
-      (version (git-version "0.0.3" revision commit))
+      (version (git-version "0.0.4" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -2302,17 +2139,22 @@ processes that doesn't run under Emacs.  Lisp processes created by
                (url "https://github.com/melisgl/mgl-pax")
                (commit commit)))
          (sha256
-          (base32 "1s38crgvmd9hgqwsscqpj6m6c10a074zjgg8k5sl15yih1wkpssm"))
+          (base32 "119pb3485m6hqsqsaqpaq2x8xh5lrbqapw7zaqyq425n75vd1mc8"))
          (file-name (git-file-name "mgl-pax" version))))
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("3bmd" ,sbcl-3bmd)
-         ("babel" ,sbcl-babel)
-         ("cl-fad" ,sbcl-cl-fad)
-         ("ironclad" ,sbcl-ironclad)
+         ("alexandria" ,sbcl-alexandria)
+         ("colorize" ,sbcl-colorize)
+         ("md5" ,sbcl-md5)
          ("named-readtables" ,sbcl-named-readtables)
          ("pythonic-string-reader" ,sbcl-pythonic-string-reader)
          ("swank" ,sbcl-slime-swank)))
+      (arguments
+       `(#:asd-systems '("mgl-pax"
+                         "mgl-pax/navigate"
+                         "mgl-pax/document"
+                         "mgl-pax/transcribe")))
       (synopsis "Exploratory programming environment and documentation generator")
       (description
        "PAX provides an extremely poor man's Explorable Programming
@@ -2329,7 +2171,7 @@ With the simplistic tools provided, one may accomplish similar effects as with
 Literate Programming, but documentation is generated from code, not vice versa
 and there is no support for chunking yet.  Code is first, code must look
 pretty, documentation is code.")
-      (home-page "http://quotenil.com/")
+      (home-page "https://melisgl.github.io/mgl-pax/")
       (license license:expat))))
 
 (define-public cl-mgl-pax
@@ -2383,35 +2225,6 @@ project.")
 (define-public cl-mssql
   (sbcl-package->cl-source-package sbcl-mssql))
 
-(define-public sbcl-lisp-unit
-  (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
-    (package
-      (name "sbcl-lisp-unit")
-      (version (git-version "0.0.0" "1" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/OdonataResearchLLC/lisp-unit")
-               (commit commit)))
-         (sha256
-          (base32
-           "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
-         (file-name (git-file-name "lisp-unit" version))))
-      (build-system asdf-build-system/sbcl)
-      (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
-      (description
-       "@command{lisp-unit} is a Common Lisp library that supports unit
-testing.  It is an extension of the library written by Chris Riesbeck.")
-      (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
-      (license license:expat))))
-
-(define-public cl-lisp-unit
-  (sbcl-package->cl-source-package sbcl-lisp-unit))
-
-(define-public ecl-lisp-unit
-  (sbcl-package->ecl-package sbcl-lisp-unit))
-
 (define-public sbcl-anaphora
   (package
     (name "sbcl-anaphora")
@@ -2428,7 +2241,7 @@ testing.  It is an extension of the library written by Chris Riesbeck.")
        (file-name (git-file-name "anaphora" version))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("rt" ,sbcl-rt)))
+     (list sbcl-rt))
     (synopsis "The anaphoric macro collection from Hell")
     (description
      "Anaphora is the anaphoric macro collection from Hell: it includes many
@@ -2443,47 +2256,6 @@ new fiends in addition to old friends like @command{aif} and
 (define-public ecl-anaphora
   (sbcl-package->ecl-package sbcl-anaphora))
 
-(define-public sbcl-lift
-  (let ((commit "2594160d6ca3a77d8750110dfa63214256aab852")
-        (revision "2"))
-    (package
-      (name "sbcl-lift")
-      (version (git-version "1.7.1" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/gwkkwg/lift")
-               (commit commit)))
-         (sha256
-          (base32 "01xvz9sl5l5lai4h9dabmcjnm659wf5zllaxqbs55lffskp6jwq3"))
-         (file-name (git-file-name "lift" version))
-         (modules '((guix build utils)))
-         (snippet
-          ;; Don't keep the bundled website
-          `(begin
-             (delete-file-recursively "website")
-             #t))))
-      (build-system asdf-build-system/sbcl)
-      (arguments
-       ;; The tests require a debugger, but we run with the debugger disabled.
-       '(#:tests? #f))
-      (synopsis "LIsp Framework for Testing")
-      (description
-       "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
-Though inspired by SUnit and JUnit, it's built with Lisp in mind.  In LIFT,
-testcases are organized into hierarchical testsuites each of which can have
-its own fixture.  When run, a testcase can succeed, fail, or error.  LIFT
-supports randomized testing, benchmarking, profiling, and reporting.")
-      (home-page "https://github.com/gwkkwg/lift")
-      (license license:expat))))
-
-(define-public cl-lift
-  (sbcl-package->cl-source-package sbcl-lift))
-
-(define-public ecl-lift
-  (sbcl-package->ecl-package sbcl-lift))
-
 (define-public sbcl-let-plus
   (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
     (package
@@ -2501,10 +2273,9 @@ supports randomized testing, benchmarking, profiling, and reporting.")
          (file-name (git-file-name "let-plus" version))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("anaphora" ,sbcl-anaphora)))
+       (list sbcl-alexandria sbcl-anaphora))
       (native-inputs
-       `(("lift" ,sbcl-lift)))
+       (list sbcl-lift))
       (synopsis "Destructuring extension of let*")
       (description
        "This library implements the let+ macro, which is a dectructuring
@@ -2543,8 +2314,7 @@ not counting tests)
          (file-name (git-file-name "cl-colors" version))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("let-plus" ,sbcl-let-plus)))
+       (list sbcl-alexandria sbcl-let-plus))
       (synopsis "Simple color library for Common Lisp")
       (description
        "This is a very simple color library for Common Lisp, providing
@@ -2568,10 +2338,10 @@ This library is no longer supported by its author.")
   (sbcl-package->ecl-package sbcl-cl-colors))
 
 (define-public sbcl-cl-ansi-text
-  (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
+  (let ((commit "8b129d83c7511b54cdd9d4123825a2d06349b25c"))
     (package
       (name "sbcl-cl-ansi-text")
-      (version (git-version "1.0.0" "1" commit))
+      (version (git-version "2.0.1" "1" commit))
       (source
        (origin
          (method git-fetch)
@@ -2580,14 +2350,13 @@ This library is no longer supported by its author.")
                (commit commit)))
          (sha256
           (base32
-           "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
+           "0nk7ajqfa937w1iy3zy86jjbw8yffm05cqs4wxkgl97v6kmmya14"))
          (file-name (git-file-name "cl-ansi-text" version))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("cl-colors" ,sbcl-cl-colors)))
+       (list sbcl-alexandria sbcl-cl-colors2))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (synopsis "ANSI terminal color implementation for Common Lisp")
       (description
        "@command{cl-ansi-text} provides utilities which enable printing to an
@@ -2604,48 +2373,6 @@ named color.")
 (define-public ecl-cl-ansi-text
   (sbcl-package->ecl-package sbcl-cl-ansi-text))
 
-(define-public sbcl-prove
-  (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
-    (package
-      (name "sbcl-prove")
-      (version (git-version "1.0.0" "1" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/fukamachi/prove")
-               (commit commit)))
-         (sha256
-          (base32
-           "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
-         (file-name (git-file-name "prove" version))))
-      (build-system asdf-build-system/sbcl)
-      (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("cl-ppcre" ,sbcl-cl-ppcre)
-         ("cl-ansi-text" ,sbcl-cl-ansi-text)))
-      (synopsis "Yet another unit testing framework for Common Lisp")
-      (description
-       "This project was originally called @command{cl-test-more}.
-@command{prove} is yet another unit testing framework for Common Lisp.  The
-advantages of @command{prove} are:
-
-@itemize
-@item Various simple functions for testing and informative error messages
-@item ASDF integration
-@item Extensible test reporters
-@item Colorizes the report if it's available (note for SLIME)
-@item Reports test durations
-@end itemize\n")
-      (home-page "https://github.com/fukamachi/prove")
-      (license license:expat))))
-
-(define-public cl-prove
-  (sbcl-package->cl-source-package sbcl-prove))
-
-(define-public ecl-prove
-  (sbcl-package->ecl-package sbcl-prove))
-
 (define-public sbcl-proc-parse
   (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
     (package
@@ -2666,7 +2393,7 @@ advantages of @command{prove} are:
        `(("alexandria" ,sbcl-alexandria)
          ("babel" ,sbcl-babel)))
       (native-inputs
-       `(("prove" ,sbcl-prove)))
+       (list sbcl-prove))
       (arguments
        ;; TODO: Tests don't find "proc-parse-test", why?
        `(#:tests? #f))
@@ -2704,7 +2431,7 @@ pattern-matching-like, but a char-by-char procedural parser.")
        ;; FIXME: https://github.com/soemraws/parse-float/issues/12
        `(#:asd-systems '("parse-float" "parse-float-tests")))
       (native-inputs
-       `(("lisp-unit" ,sbcl-lisp-unit)))
+       (list sbcl-lisp-unit))
       (inputs
        `(("alexandria" ,sbcl-alexandria)))
       (home-page "https://github.com/soemraws/parse-float")
@@ -2730,7 +2457,7 @@ values from a string in Common Lisp.")
        (origin
          (method hg-fetch)
          (uri (hg-reference
-               (url "https://bitbucket.org/vityok/cl-string-match/")
+               (url "https://github.com/vityok/cl-string-match")
                (changeset changeset)))
          (sha256
           (base32
@@ -2750,15 +2477,22 @@ values from a string in Common Lisp.")
       ;; TODO: Tests are not evaluated properly.
       (native-inputs
        ;; For testing:
-       `(("lisp-unit" ,sbcl-lisp-unit)))
+       (list sbcl-lisp-unit))
       (arguments
-       `(#:tests? #f))
+       `(#:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-dependency
+             (lambda _
+               (substitute* "cl-string-match.asd"
+                 ((":mgl-pax")
+                  ":mgl-pax/document")))))))
       (synopsis "Set of utilities to manipulate strings in Common Lisp")
       (description
        "@command{cl-strings} is a small, portable, dependency-free set of
 utilities that make it even easier to manipulate text in Common Lisp.  It has
 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
-      (home-page "https://bitbucket.org/vityok/cl-string-match/")
+      (home-page "https://github.com/vityok/cl-string-match")
       (license license:bsd-3))))
 
 (define-public cl-string-match
@@ -2767,35 +2501,6 @@ utilities that make it even easier to manipulate text in Common Lisp.  It has
 (define-public ecl-cl-string-match
   (sbcl-package->ecl-package sbcl-cl-string-match))
 
-(define-public sbcl-ptester
-  (let ((commit "fe69fde54f4bce00ce577feb918796c293fc7253")
-        (revision "1"))
-    (package
-      (name "sbcl-ptester")
-      (version (git-version "2.1.3" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "http://git.kpe.io/ptester.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "1l0lfl7cdnr2qf4zh38hi4llxg22c49zkm639bdkmvlkzwj3ndwf"))))
-      (build-system asdf-build-system/sbcl)
-      (home-page "http://quickdocs.org/ptester/")
-      (synopsis "Portable test harness package")
-      (description
-       "@command{ptester} is a portable testing framework based on Franz's
-tester module.")
-      (license license:llgpl))))
-
-(define-public cl-ptester
-  (sbcl-package->cl-source-package sbcl-ptester))
-
-(define-public ecl-ptester
-  (sbcl-package->ecl-package sbcl-ptester))
-
 (define-public sbcl-puri
   (let ((commit "4bbab89d9ccbb26346899d1f496c97604fec567b")
         (revision "2"))
@@ -2813,7 +2518,7 @@ tester module.")
           (base32 "0gq2rsr0aihs0z20v4zqvmdl4szq53b52rh97pvnmwrlbn4mapmd"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("ptester" ,sbcl-ptester)))
+       (list sbcl-ptester))
       (home-page "http://puri.kpe.io/")
       (synopsis "Portable URI Library")
       (description
@@ -2845,15 +2550,15 @@ Lisp programs.  It parses URI according to the RFC 2396 specification.")
            "06gw5wxcpdclb6a5i5k9lbmdlyqsp182czrm9bm1cpklzbj0ihrl"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("asdf-finalizers" ,sbcl-asdf-finalizers)
-         ("babel" ,sbcl-babel)
-         ("chipz" ,sbcl-chipz)
-         ("cl+ssl" ,sbcl-cl+ssl)
-         ("flexi-streams" ,sbcl-flexi-streams)
-         ("ironclad" ,sbcl-ironclad)
-         ("salza2" ,sbcl-salza2)
-         ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
-         ("usocket" ,sbcl-usocket)))
+       (list sbcl-asdf-finalizers
+             sbcl-babel
+             sbcl-chipz
+             sbcl-cl+ssl
+             sbcl-flexi-streams
+             sbcl-ironclad
+             sbcl-salza2
+             sbcl-trivial-gray-streams
+             sbcl-usocket))
       (home-page "https://github.com/qitab/qmynd")
       (synopsis "QITAB MySQL Native Driver for Common Lisp")
       (description "QMyND, the QITAB MySQL Native Driver, is a MySQL client
@@ -2922,7 +2627,7 @@ non-consing thread safe queues and fibonacci priority queues.")
           (base32 "0k2f1771wd9kdrcasldy1r00k5bdgi9fd07in52zmjggc0i7dd80"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)))
+       (list sbcl-alexandria))
       (home-page "https://github.com/3b/glsl-packing/")
       (synopsis "Common Lisp utilities to calculate OpenGL layouts")
       (description
@@ -2984,9 +2689,7 @@ from GLSL as data.")
           (base32 "0bhxxnv7ldkkb18zdxyz2rj2a3iawzq2kcp7cn5i91iby7n0082x"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("documentation-utils" ,sbcl-documentation-utils)
-         ("glsl-symbols" ,sbcl-glsl-spec)))
+       (list sbcl-alexandria sbcl-documentation-utils sbcl-glsl-spec))
       (home-page "https://github.com/cbaggers/rtg-math")
       (synopsis "Common Lisp library of game-related math functions")
       (description
@@ -3017,16 +2720,16 @@ for making realtime graphics in Lisp.")
           (base32 "1p9x1wj576x5d31yvls9r1avkjkyhri7kyxbjfkg9z93a1w18j9z"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
-      (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("cl-ppcre" ,sbcl-cl-ppcre)
-         ("documentation-utils" ,sbcl-documentation-utils)
-         ("fn" ,sbcl-fn)
-         ("glsl-spec" ,sbcl-glsl-spec)
-         ("named-readtables" ,sbcl-named-readtables)
-         ("parse-float" ,sbcl-parse-float)
-         ("vas-string-metrics" ,sbcl-vas-string-metrics)))
+       (list sbcl-fiveam))
+      (inputs
+       (list sbcl-alexandria
+             sbcl-cl-ppcre
+             sbcl-documentation-utils
+             sbcl-fn
+             sbcl-glsl-spec
+             sbcl-named-readtables
+             sbcl-parse-float
+             sbcl-vas-string-metrics))
       (home-page "https://github.com/cbaggers/varjo")
       (synopsis "Lisp to GLSL Language Translator")
       (description
@@ -3127,8 +2830,7 @@ package.")
          (file-name (git-file-name "cffi-c-ref" version))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("cffi" ,sbcl-cffi)))
+       (list sbcl-alexandria sbcl-cffi))
       (synopsis "Streamlined access to foreign memory")
       (description
        "This Common Lisp library provides macros to access foreign memory.")
@@ -3185,6 +2887,59 @@ relational database engine.")
 (define-public ecl-cl-sqlite
   (sbcl-package->ecl-package sbcl-cl-sqlite))
 
+(define-public sbcl-cl-redis
+  (let ((commit "7d592417421cf7cd1cffa96043b457af0490df7d")
+        (revision "0"))
+    (package
+      (name "sbcl-cl-redis")
+      (version (git-version "2.3.8" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/vseloved/cl-redis")
+               (commit commit)))
+         (file-name (git-file-name "cl-redis" version))
+         (sha256
+          (base32 "0x5ahxb5cx37biyn3cjycshhm1rr9p5cf1a9l5hd1n1xjxm2f8vi"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-before 'check 'start-redis
+             (lambda _
+               (system "redis-server --port 6379 &"))))))
+      (native-inputs
+       `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+         ("flexi-streams" ,sbcl-flexi-streams)
+         ("redis" ,redis)
+         ("should-test" ,sbcl-should-test)))
+      (inputs
+       `(("babel" ,sbcl-babel)
+         ("cl-ppcre" ,sbcl-cl-ppcre)
+         ("flexi-streams" ,sbcl-flexi-streams)
+         ("rutils" ,sbcl-rutils)
+         ("usocket" ,sbcl-usocket)))
+      (home-page "https://github.com/vseloved/cl-redis")
+      (synopsis "Common Lisp client for Redis")
+      (description "This is a Common Lisp wrapper for interacting with the
+Redis data structure store.")
+      (license license:expat))))
+
+(define-public cl-redis
+  (sbcl-package->cl-source-package sbcl-cl-redis))
+
+(define-public ecl-cl-redis
+  (let ((pkg (sbcl-package->ecl-package sbcl-cl-redis)))
+    (package
+      (inherit pkg)
+      (arguments
+       (substitute-keyword-arguments (package-arguments pkg)
+         ;; Tests are failing on ECL with:
+         ;;   Test L-COMMANDS: An error occurred during initialization:
+         ;;   Protocol not found: "tcp".
+         ((#:tests? _ #f) #f))))))
+
 (define-public sbcl-parenscript
   ;; Source archives are overwritten on every release, we use the Git repo instead.
   (let ((commit "7a1ac46353cecd144fc91915ba9f122aafcf4766"))
@@ -3203,9 +2958,7 @@ relational database engine.")
            "0c22lqarrpbq82dg1sb3y6mp6w2faczp34ymzhnmff88yfq1xzsf"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cl-ppcre" ,sbcl-cl-ppcre)
-         ("anaphora" ,sbcl-anaphora)
-         ("named-readtables" ,sbcl-named-readtables)))
+       (list sbcl-cl-ppcre sbcl-anaphora sbcl-named-readtables))
       (home-page "https://common-lisp.net/project/parenscript/")
       (synopsis "Translator from a subset of Common Lisp to JavaScript")
       (description
@@ -3263,7 +3016,7 @@ JavaScript.
            "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (home-page "https://github.com/hankhero/cl-json")
       (synopsis "JSON encoder and decoder for Common-Lisp")
       (description
@@ -3281,31 +3034,32 @@ settings ensure a very simple mode of operation, similar to that provided by
   (sbcl-package->ecl-package sbcl-cl-json))
 
 (define-public sbcl-unix-opts
-  (package
-    (name "sbcl-unix-opts")
-    (version "0.1.7")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/libre-man/unix-opts")
-             (commit version)))
-       (file-name (git-file-name "unix-opts" version))
-       (sha256
-        (base32
-         "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
-    (build-system asdf-build-system/sbcl)
-    (home-page "https://github.com/hankhero/cl-json")
-    (synopsis "Unix-style command line options parser")
-    (description
-     "This is a minimalistic parser of command line options.  The main
+  (let ((commit "0e61f34b2ecf62288437810d4abb31e572048b04")
+        (revision "1"))
+    (package
+      (name "sbcl-unix-opts")
+      (version (git-version "0.1.7" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/libre-man/unix-opts")
+               (commit commit)))
+         (file-name (git-file-name "unix-opts" version))
+         (sha256
+          (base32 "16mcqpzwrz808p9n3wwl99ckg3hg7yihw08y1i4l7c92aldbkasq"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/hankhero/cl-json")
+      (synopsis "Unix-style command line options parser")
+      (description
+       "This is a minimalistic parser of command line options.  The main
 advantage of the library is the ability to concisely define command line
 options once and then use this definition for parsing and extraction of
 command line arguments, as well as printing description of command line
 options (you get --help for free).  This way you don't need to repeat
 yourself.  Also, @command{unix-opts} doesn't depend on anything and
 precisely controls the behavior of the parser via Common Lisp restarts.")
-    (license license:expat)))
+      (license license:expat))))
 
 (define-public cl-unix-opts
   (sbcl-package->cl-source-package sbcl-unix-opts))
@@ -3328,7 +3082,7 @@ precisely controls the behavior of the parser via Common Lisp restarts.")
         (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("rt" ,sbcl-rt)))
+     (list sbcl-rt))
     (home-page "https://common-lisp.net/project/trivial-garbage/")
     (synopsis "Portable GC-related APIs for Common Lisp")
     (description "@command{trivial-garbage} provides a portable API to
@@ -3387,7 +3141,7 @@ Lisp implementations.")
            "04vix0gmqsj91lm975sx7jhlnz5gq1xf9jp873mp7c8frc5dk1jj"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
        `(("bordeaux-threads" ,sbcl-bordeaux-threads)
          ("cairo" ,cairo)
@@ -3455,43 +3209,57 @@ is a library for creating graphical user interfaces.")
   (sbcl-package->ecl-package sbcl-cl-cffi-gtk))
 
 (define-public sbcl-cl-webkit
-  (let ((commit "cfc4f01ee806169d824750b4014653a93af9353d"))
-    (package
-      (name "sbcl-cl-webkit")
-      (version (git-version "2.4" "16" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/joachifm/cl-webkit")
-               (commit commit)))
-         (file-name (git-file-name "cl-webkit" version))
-         (sha256
-          (base32
-           "18n90m33bi6arnjmwr3q3m0arwzr0kdnydlv4if82crvaagd6m89"))))
-      (build-system asdf-build-system/sbcl)
-      (inputs
-       `(("cffi" ,sbcl-cffi)
-         ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
-         ("webkitgtk" ,webkitgtk)))
-      (arguments
-       `(#:asd-systems '("cl-webkit2")
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'fix-paths
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "webkit2/webkit2.init.lisp"
-                 (("libwebkit2gtk" all)
-                  (string-append
-                   (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
-      (home-page "https://github.com/joachifm/cl-webkit")
-      (synopsis "Binding to WebKitGTK+ for Common Lisp")
-      (description
-       "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
+  (package
+    (name "sbcl-cl-webkit")
+    (version "3.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/joachifm/cl-webkit")
+             (commit version)))
+       (file-name (git-file-name "cl-webkit" version))
+       (sha256
+        (base32
+         "0l6ml7g0r0kzbgf49bsgj2yxhgralh8fc0h9vpc79fvw20qgsd56"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("cffi" ,sbcl-cffi)
+       ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
+       ("webkitgtk" ,webkitgtk)))
+    (native-inputs
+     `(;; Tests seem to need Xorg.
+       ;; ("xorg-server" ,xorg-server-for-tests)
+       ("calispel" ,sbcl-calispel)
+       ("fiveam" ,sbcl-fiveam)
+       ("float-features" ,sbcl-float-features)))
+    (arguments
+     `(#:asd-systems '("cl-webkit2")
+       #:tests? #f                      ; TODO: Tests hang, why?
+       #:phases
+       (modify-phases %standard-phases
+         ;; The following phase is needed for tests:
+         ;; (add-before 'check 'start-xorg-server
+         ;;   (lambda* (#:key inputs #:allow-other-keys)
+         ;;     ;; The test suite requires a running X server.
+         ;;     (system (string-append (assoc-ref inputs "xorg-server")
+         ;;                            "/bin/Xvfb :1 &"))
+         ;;     (setenv "DISPLAY" ":1")
+         ;;     #t))
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "webkit2/webkit2.init.lisp"
+               (("libwebkit2gtk" all)
+                (string-append
+                 (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
+    (home-page "https://github.com/joachifm/cl-webkit")
+    (synopsis "Binding to WebKitGTK+ for Common Lisp")
+    (description
+     "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
 currently targeting WebKit version 2.  The WebKitGTK+ library adds web
 browsing capabilities to an application, leveraging the full power of the
 WebKit browsing engine.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public cl-webkit
   (sbcl-package->cl-source-package sbcl-cl-webkit))
@@ -3616,7 +3384,7 @@ Lisp, featuring:
       (arguments
        '(#:asd-systems '("markup")))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("cl-str" ,sbcl-cl-str)
@@ -3628,7 +3396,7 @@ Lisp, featuring:
        "Markup allows the use of HTML syntax with in Common Lisp code.
 This has the advantage of being able to copy HTML snippets and have them
 instantly be functional, less double quotes than a s-expression approach,
-and designers will be able to understand the embeded HTML.")
+and designers will be able to understand the embedded HTML.")
       (license license:asl2.0))))
 
 (define-public ecl-markup-reader
@@ -3741,7 +3509,7 @@ Lisp (from GBBopen project).")
          "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("rt" ,sbcl-rt)))
+     (list sbcl-rt))
     (inputs
      `(("bordeaux-threads" ,sbcl-bordeaux-threads)
        ("split-sequence" ,sbcl-split-sequence)))
@@ -3824,7 +3592,7 @@ This XML parser implementation has the following limitations:
          "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11"))))
     (build-system asdf-build-system/sbcl)
     (inputs
-     `(("s-xml" ,sbcl-s-xml)))
+     (list sbcl-s-xml))
     (home-page "https://common-lisp.net/project/s-xml-rpc/")
     (synopsis "Implementation of XML-RPC in Common Lisp for both client and server")
     (description
@@ -3883,9 +3651,9 @@ client and server.")
            "0apkgqrscylw3hhm5x2vs0z3hz6h7zd7dl5y3wr2zl8qjpvpc80k"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("xclip" ,xclip)))
+       (list xclip))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -3923,7 +3691,7 @@ client and server.")
         (base32 "1mbaqiwj5034iw6jzw30jyhwzp1pvhnz1zcy0lns0z5j2h9ldapw"))))
      (build-system asdf-build-system/sbcl)
      (native-inputs
-      `(("sbcl-lift" ,sbcl-lift)))
+      (list sbcl-lift))
      (arguments
       `(#:phases
         (modify-phases %standard-phases
@@ -4013,7 +3781,7 @@ RFC 1321 by R. Rivest, published April 1992.")
   (package
     (inherit (sbcl-package->ecl-package sbcl-md5))
     (inputs
-     `(("flexi-streams" ,ecl-flexi-streams)))))
+     (list ecl-flexi-streams))))
 
 (define-public sbcl-cl+ssl
   (let ((commit "701e645081e6533a3f0f0b3ac86389d6f506c4b5")
@@ -4041,14 +3809,14 @@ RFC 1321 by R. Rivest, published April 1992.")
                   (string-append
                    (assoc-ref inputs "openssl") "/lib/" all))))))))
       (inputs
-       `(("openssl" ,openssl)
-         ("sbcl-cffi" ,sbcl-cffi)
-         ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
-         ("sbcl-flexi-streams" ,sbcl-flexi-streams)
-         ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
-         ("sbcl-alexandria" ,sbcl-alexandria)
-         ("sbcl-trivial-features" ,sbcl-trivial-features)))
+       (list openssl
+             sbcl-cffi
+             sbcl-trivial-gray-streams
+             sbcl-flexi-streams
+             sbcl-bordeaux-threads
+             sbcl-trivial-garbage
+             sbcl-alexandria
+             sbcl-trivial-features))
       (home-page "https://common-lisp.net/project/cl-plus-ssl/")
       (synopsis "Common Lisp bindings to OpenSSL")
       (description
@@ -4081,7 +3849,7 @@ Development into CL+SSL was done by David Lichteblau.")
           (base32 "06gx04mah5nc8w78s0j8628divbf1s5w7af8w7pvzb2d5mgvrbd2"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("sbcl-rt" ,sbcl-rt)))
+       (list sbcl-rt))
       (home-page "http://files.kpe.io/kmrcl/")
       (synopsis "General utilities for Common Lisp programs")
       (description
@@ -4112,8 +3880,7 @@ Rosenberg's Common Lisp packages.")
           (base32 "12jj54h0fs6n237cvnp8v6hn0imfksammq22ys6pi0gwz2w47rbj"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs                    ; For tests.
-       `(("sbcl-ptester" ,sbcl-ptester)
-         ("sbcl-kmrcl" ,sbcl-kmrcl)))
+       (list sbcl-ptester sbcl-kmrcl))
       (home-page "http://files.kpe.io/cl-base64/")
       (synopsis
        "Common Lisp package to encode and decode base64 with URI support")
@@ -4145,7 +3912,7 @@ encoding table that uses only URI-compatible characters.")
         (base32 "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd"))))
     (build-system asdf-build-system/sbcl)
     (inputs
-     `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+     (list sbcl-trivial-gray-streams))
     (home-page "https://edicl.github.io/chunga/")
     (synopsis "Portable chunked streams for Common Lisp")
     (description
@@ -4161,8 +3928,8 @@ defined in RFC 2616.")
 
 (define-public sbcl-cl-who
   (let ((version "1.1.4")
-        (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
-        (revision "1"))
+        (commit "0d3826475133271ee8c590937136c1bc41b8cbe0")
+        (revision "2"))
     (package
       (name "sbcl-cl-who")
       (version (git-version version revision commit))
@@ -4172,13 +3939,13 @@ defined in RFC 2616.")
          (uri (git-reference
                (url "https://github.com/edicl/cl-who")
                (commit commit)))
-         (file-name (git-file-name name version))
+         (file-name (git-file-name "cl-who" version))
          (sha256
           (base32
-           "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
+           "0sc8nji9q1df04lhsiwsjy1a35996bibl31w5hp5sh8q6sa122dy"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
+       (list sbcl-flexi-streams))
       (home-page "https://edicl.github.io/cl-who/")
       (synopsis "Yet another Lisp markup language")
       (description
@@ -4213,7 +3980,7 @@ as good or bad as the next one.")
            "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
+       (list sbcl-flexi-streams))
       (home-page "http://method-combination.net/lisp/chipz/")
       (synopsis
        "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
@@ -4235,29 +4002,29 @@ the format used by the popular compression tool bzip2.")
 (define-public sbcl-drakma
   (package
     (name "sbcl-drakma")
-    (version "2.0.7")
+    (version "2.0.8")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/edicl/drakma")
              (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
+       (file-name (git-file-name "cl-drakma" version))
        (sha256
         (base32
-         "1441idnyif9xzx3ln1p3fg36k2v9h4wasjqrzc8y52j61420qpci"))))
+         "1wf2zivfvhsh6zvd6wcwfd67bm8s8a1p2fismszc8xb819dqk9yl"))))
     (build-system asdf-build-system/sbcl)
     (inputs
-     `(("sbcl-puri" ,sbcl-puri)
-       ("sbcl-cl-base64" ,sbcl-cl-base64)
-       ("sbcl-chunga" ,sbcl-chunga)
-       ("sbcl-flexi-streams" ,sbcl-flexi-streams)
-       ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
-       ("sbcl-chipz" ,sbcl-chipz)
-       ("sbcl-usocket" ,sbcl-usocket)
-       ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
+     (list sbcl-puri
+           sbcl-cl-base64
+           sbcl-chunga
+           sbcl-flexi-streams
+           sbcl-cl-ppcre
+           sbcl-chipz
+           sbcl-usocket
+           sbcl-cl+ssl))
     (native-inputs
-     `(("sbcl-fiveam" ,sbcl-fiveam)))
+     (list sbcl-fiveam))
     (home-page "https://edicl.github.io/drakma/")
     (synopsis "HTTP client written in Common Lisp")
     (description
@@ -4275,7 +4042,7 @@ sockets, SSL, continuable uploads, file uploads, cookies, and more.")
 (define-public sbcl-hunchentoot
   (package
     (name "sbcl-hunchentoot")
-    (version "1.2.38")
+    (version "1.3.0")
     (source
      (origin
        (method git-fetch)
@@ -4284,22 +4051,21 @@ sockets, SSL, continuable uploads, file uploads, cookies, and more.")
              (commit (string-append "v" version))))
        (file-name (git-file-name "hunchentoot" version))
        (sha256
-        (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
+        (base32 "1z0m45lp6rv59g69l44gj3q3d2bmjlhqzpii0vgkniam21dcimy9"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("sbcl-cl-who" ,sbcl-cl-who)
-       ("sbcl-drakma" ,sbcl-drakma)))
+     (list sbcl-cl-who sbcl-drakma))
     (inputs
-     `(("sbcl-chunga" ,sbcl-chunga)
-       ("sbcl-cl-base64" ,sbcl-cl-base64)
-       ("sbcl-cl-fad" ,sbcl-cl-fad)
-       ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
-       ("sbcl-flexi-streams" ,sbcl-flexi-streams)
-       ("sbcl-cl+ssl" ,sbcl-cl+ssl)
-       ("sbcl-md5" ,sbcl-md5)
-       ("sbcl-rfc2388" ,sbcl-rfc2388)
-       ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
-       ("sbcl-usocket" ,sbcl-usocket)))
+     (list sbcl-chunga
+           sbcl-cl-base64
+           sbcl-cl-fad
+           sbcl-cl-ppcre
+           sbcl-flexi-streams
+           sbcl-cl+ssl
+           sbcl-md5
+           sbcl-rfc2388
+           sbcl-trivial-backtrace
+           sbcl-usocket))
     (home-page "https://edicl.github.io/hunchentoot/")
     (synopsis "Web server written in Common Lisp")
     (description
@@ -4363,7 +4129,7 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
           (base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("sbcl-alexandria" ,sbcl-alexandria)))
+       (list sbcl-alexandria))
       (home-page "https://github.com/m2ym/cl-annot")
       (synopsis "Python-like Annotation Syntax for Common Lisp.")
       (description
@@ -4502,11 +4268,9 @@ addition, removal, and random selection.")
      ;; "quri">.
      '(#:asd-systems '("quri-test"
                        "quri")))
-    (native-inputs `(("sbcl-prove" ,sbcl-prove)))
-    (inputs `(("sbcl-babel" ,sbcl-babel)
-              ("sbcl-split-sequence" ,sbcl-split-sequence)
-              ("sbcl-cl-utilities" ,sbcl-cl-utilities)
-              ("sbcl-alexandria" ,sbcl-alexandria)))
+    (native-inputs (list sbcl-prove))
+    (inputs (list sbcl-babel sbcl-split-sequence sbcl-cl-utilities
+                  sbcl-alexandria))
     (home-page "https://github.com/fukamachi/quri")
     (synopsis "Yet another URI library for Common Lisp")
     (description
@@ -4541,11 +4305,9 @@ Lisp. It is intended to be a replacement of PURI.")
       ;; by #<SYSTEM "myway">. Why?
       '(#:tests? #f))
      (native-inputs
-      `(("sbcl-prove" ,sbcl-prove)))
+      (list sbcl-prove))
      (inputs
-      `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
-        ("sbcl-quri" ,sbcl-quri)
-        ("sbcl-map-set" ,sbcl-map-set)))
+      (list sbcl-cl-ppcre sbcl-quri sbcl-map-set))
      (home-page "https://github.com/fukamachi/myway")
      (synopsis "Sinatra-compatible URL routing library for Common Lisp")
      (description "My Way is a Sinatra-compatible URL routing library.")
@@ -4578,7 +4340,7 @@ Lisp. It is intended to be a replacement of PURI.")
       ;; required by #<SYSTEM "xsubseq">. Why?
       '(#:tests? #f))
      (native-inputs
-      `(("sbcl-prove" ,sbcl-prove)))
+      (list sbcl-prove))
      (home-page "https://github.com/fukamachi/xsubseq")
      (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
      (description
@@ -4613,10 +4375,9 @@ effieiently.")
        ;; found, required by #<SYSTEM "smart-buffer">. Why?
        `(#:tests? #f))
       (native-inputs
-       `(("sbcl-prove" ,sbcl-prove)))
+       (list sbcl-prove))
       (inputs
-       `(("sbcl-xsubseq" ,sbcl-xsubseq)
-         ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
+       (list sbcl-xsubseq sbcl-flexi-streams))
       (home-page "https://github.com/fukamachi/smart-buffer")
       (synopsis "Smart octets buffer")
       (description
@@ -4654,11 +4415,8 @@ depending on content size.")
        `(("sbcl-prove" ,sbcl-prove)
          ("cl-syntax" ,sbcl-cl-syntax)))
       (inputs
-       `(("sbcl-alexandria" ,sbcl-alexandria)
-         ("sbcl-proc-parse" ,sbcl-proc-parse)
-         ("sbcl-xsubseq" ,sbcl-xsubseq)
-         ("sbcl-smart-buffer" ,sbcl-smart-buffer)
-         ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
+       (list sbcl-alexandria sbcl-proc-parse sbcl-xsubseq
+             sbcl-smart-buffer sbcl-cl-utilities))
       (home-page "https://github.com/fukamachi/fast-http")
       (synopsis "HTTP request/response parser for Common Lisp")
       (description
@@ -4687,10 +4445,9 @@ Lisp.")
        (sha256
         (base32 "079qa20lhanzsz1qf4iags91n0ziylbjgbcymm5a5qj7yryas4fw"))))
     (native-inputs
-     `(("sbcl-fiveam" ,sbcl-fiveam)))
+     (list sbcl-fiveam))
     (inputs
-     `(("sbcl-alexandria" ,sbcl-alexandria)
-       ("sbcl-cffi" ,sbcl-cffi)))
+     (list sbcl-alexandria sbcl-cffi))
     (build-system asdf-build-system/sbcl)
     (home-page "https://github.com/sionescu/static-vectors")
     (synopsis "Allocate SIMPLE-ARRAYs in static memory")
@@ -4735,48 +4492,6 @@ Only minimal changes required to make your CLOS objects serializable.")
 (define-public ecl-marshal
   (sbcl-package->ecl-package sbcl-marshal))
 
-(define-public sbcl-checkl
-  (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
-        (revision "1"))
-    (package
-      (name "sbcl-checkl")
-      (version (git-version "0.0.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/rpav/CheckL")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
-      (build-system asdf-build-system/sbcl)
-      (arguments
-       ;; Error while trying to load definition for system checkl-test from
-       ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
-       ;; is undefined.
-       '(#:asd-files '("checkl.asd")
-         #:tests? #f))
-      (native-inputs
-       `(("sbcl-fiveam" ,sbcl-fiveam)))
-      (inputs
-       `(("sbcl-marshal" ,sbcl-marshal)))
-      (home-page "https://github.com/rpav/CheckL/")
-      (synopsis "Dynamic testing for Common Lisp")
-      (description
-       "CheckL lets you write tests dynamically, it checks resulting values
-against the last run.")
-      ;; The author specifies both LLGPL and "BSD", but the "BSD" license
-      ;; isn't specified anywhere, so I don't know which kind.  LLGPL is the
-      ;; stronger of the two and so I think only listing this should suffice.
-      (license license:llgpl))))
-
-(define-public cl-checkl
-  (sbcl-package->cl-source-package sbcl-checkl))
-
-(define-public ecl-checkl
-  (sbcl-package->ecl-package sbcl-checkl))
-
 (define-public sbcl-fast-io
   (let ((commit "603f4903dd74fb221859da7058ae6ca3853fe64b")
         (revision "2"))
@@ -4800,12 +4515,9 @@ against the last run.")
       '(#:tests? #f
         #:asd-files '("fast-io.asd")))
      (native-inputs
-      `(("sbcl-fiveam" ,sbcl-fiveam)
-        ("sbcl-checkl" ,sbcl-checkl)))
+      (list sbcl-fiveam sbcl-checkl))
      (inputs
-      `(("sbcl-alexandria" ,sbcl-alexandria)
-        ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
-        ("sbcl-static-vectors" ,sbcl-static-vectors)))
+      (list sbcl-alexandria sbcl-trivial-gray-streams sbcl-static-vectors))
      (home-page "https://github.com/rpav/fast-io")
      (synopsis "Fast octet-vector/stream I/O for Common Lisp")
      (description
@@ -4841,12 +4553,9 @@ streams (though primarily the former, while wrapping the latter).")
       ;; required by #<SYSTEM "jonathan">. Why?
       `(#:tests? #f))
      (native-inputs
-      `(("sbcl-prove" ,sbcl-prove)))
+      (list sbcl-prove))
      (inputs
-      `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
-        ("sbcl-fast-io" ,sbcl-fast-io)
-        ("sbcl-proc-parse" ,sbcl-proc-parse)
-        ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
+      (list sbcl-cl-syntax sbcl-fast-io sbcl-proc-parse sbcl-cl-ppcre))
      (home-page "https://rudolph-miller.github.io/jonathan/overview.html")
      (synopsis "JSON encoder and decoder")
      (description
@@ -4882,11 +4591,9 @@ CCL.")
       ;; found, required by #<SYSTEM "http-body">. Why?
       `(#:tests? #f))
      (native-inputs
-      `(("sbcl-prove" ,sbcl-prove)))
+      (list sbcl-prove))
      (inputs
-      `(("sbcl-fast-http" ,sbcl-fast-http)
-        ("sbcl-jonathan" ,sbcl-jonathan)
-        ("sbcl-quri" ,sbcl-quri)))
+      (list sbcl-fast-http sbcl-jonathan sbcl-quri))
      (home-page "https://github.com/fukamachi/http-body")
      (synopsis "HTTP POST data parser")
      (description
@@ -4922,8 +4629,7 @@ multipart/form-data.")
       ;; tests aren't working for some reason.
       `(#:tests? #f))
      (inputs
-      `(("sbcl-fast-io" ,sbcl-fast-io)
-        ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+      (list sbcl-fast-io sbcl-trivial-gray-streams))
      (home-page "https://github.com/fukamachi/circular-streams")
      (synopsis "Circularly readable streams for Common Lisp")
      (description
@@ -4955,7 +4661,7 @@ reset to 0 and you're able to read it again.")
           (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("prove" ,sbcl-prove)))
+       (list sbcl-prove))
       (inputs
        `(("circular-streams" ,sbcl-circular-streams)
          ("http-body" ,sbcl-http-body)
@@ -5006,7 +4712,7 @@ performance and simplicity in mind.")
         (base32 "0wld28xx20k0ysgg6akic5lg4vkjd0iyhv86m388xfrv8xh87wii"))))
      (build-system asdf-build-system/sbcl)
      (native-inputs
-      `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
+      (list sbcl-hu.dwim.stefil))
      (home-page "https://common-lisp.net/project/local-time/")
      (synopsis "Time manipulation library for Common Lisp")
      (description
@@ -5036,11 +4742,9 @@ Long Painful History of Time\".")
         (base32 "0rzrl9is2v1aqbm0sym0qx3blnpd0bl13dkkmll6mb3983k2mkax"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("lisp-unit" ,sbcl-lisp-unit)))
+     (list sbcl-lisp-unit))
     (inputs
-     `(("cl-interpol" ,sbcl-cl-interpol)
-       ("cl-ppcre" ,sbcl-cl-ppcre)
-       ("local-time" ,sbcl-local-time)))
+     (list sbcl-cl-interpol sbcl-cl-ppcre sbcl-local-time))
     (home-page "https://github.com/chaitanyagupta/chronicity")
     (synopsis "Natural language date and time parser for Common Lisp")
     (description
@@ -5071,9 +4775,9 @@ by Ruby's @code{Chronic}.")
           (base32 "00kcm17q5plpzdj1qwg83ldhxksilgpcdkf3m9azxcdr968xs9di"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("stefil" ,sbcl-hu.dwim.stefil)))
+       (list sbcl-hu.dwim.stefil))
       (inputs
-       `(("sbcl-cl-fad" ,sbcl-cl-fad)))
+       (list sbcl-cl-fad))
       (home-page "https://shinmera.github.io/trivial-mimes/")
       (synopsis "Tiny Common Lisp library to detect mime types in files")
       (description
@@ -5130,13 +4834,10 @@ mime-type of a file.")
                  fasl-files)
                #t)))))
       (native-inputs
-       `(("sbcl-prove" ,sbcl-prove)))
+       (list sbcl-prove))
       (inputs
-       `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
-         ("sbcl-myway" ,sbcl-myway)
-         ("sbcl-lack" ,sbcl-lack)
-         ("sbcl-alexandria" ,sbcl-alexandria)
-         ("sbcl-babel" ,sbcl-babel)))
+       (list sbcl-cl-syntax sbcl-myway sbcl-lack sbcl-alexandria
+             sbcl-babel))
       (home-page "https://8arrow.org/ningle/")
       (synopsis "Super micro framework for Common Lisp")
       (description
@@ -5288,9 +4989,9 @@ theory accurate to internal-time-units-per-second.")
           (base32 "0166d9aip366pbpdk5gsi2f6xad6q61lssxgbrypa8zslwjn8736"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("stefil" ,sbcl-stefil)))
+       (list sbcl-stefil))
       (inputs
-       `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
+       (list sbcl-bordeaux-threads))
       (home-page "https://github.com/7max/log4cl")
       (synopsis "Common Lisp logging framework, modeled after Log4J")
       (description
@@ -5380,11 +5081,8 @@ by either a symbol or a keyword.")
           (base32 "0r51ydj5v7afi2jrlscbhxprv13d9vzg5316g1yzwaxc1kzsdsw6"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("dissect" ,sbcl-dissect)
-         ("documentation-utils" ,sbcl-documentation-utils)
-         ("local-time" ,sbcl-local-time)
-         ("piping" ,sbcl-piping)))
+       (list sbcl-bordeaux-threads sbcl-dissect sbcl-documentation-utils
+             sbcl-local-time sbcl-piping))
       (home-page "https://shinmera.github.io/verbose/")
       (synopsis "Logging framework using the piping library")
       (description
@@ -5417,9 +5115,9 @@ by either a symbol or a keyword.")
           (base32
            "0d6dzbb45jh0rx90wgs6v020k2xa87mvzas3mvfzvivjvqqlpryq"))))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
-       `(("sbcl-usocket" ,sbcl-usocket)))
+       (list sbcl-usocket))
       (synopsis "Find open ports programmatically in Common Lisp")
       (description "This is a small Common Lisp library that finds an open
 port within a range.")
@@ -5431,39 +5129,6 @@ port within a range.")
 (define-public ecl-find-port
   (sbcl-package->ecl-package sbcl-find-port))
 
-(define-public sbcl-clunit
-  (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
-        (revision "1"))
-    (package
-      (name "sbcl-clunit")
-      (version (git-version "0.2.3" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/tgutu/clunit")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
-      (build-system asdf-build-system/sbcl)
-      (synopsis "CLUnit is a Common Lisp unit testing framework")
-      (description
-       "CLUnit is a Common Lisp unit testing framework.  It is designed
-to be easy to use so that you can quickly start testing.  CLUnit
-provides a rich set of features aimed at improving your unit testing
-experience.")
-      (home-page "https://tgutu.github.io/clunit/")
-      ;; MIT License
-      (license license:expat))))
-
-(define-public cl-clunit
-  (sbcl-package->cl-source-package sbcl-clunit))
-
-(define-public ecl-clunit
-  (sbcl-package->ecl-package sbcl-clunit))
-
 (define-public sbcl-py4cl
   (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
         (revision "1"))
@@ -5483,14 +5148,14 @@ experience.")
          (modules '((guix build utils)))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("sbcl-clunit" ,sbcl-clunit)))
+       (list sbcl-clunit))
       (inputs
-       `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
+       (list sbcl-trivial-garbage))
       (propagated-inputs
        ;; This package doesn't do anything without python available
-       `(("python" ,python)
-         ;; For multi-dimensional array support
-         ("python-numpy" ,python-numpy)))
+       (list python
+             ;; For multi-dimensional array support
+             python-numpy))
       (arguments
        '(#:phases
          (modify-phases %standard-phases
@@ -5524,6 +5189,39 @@ the CFFI approach used by burgled-batteries, but has the same goal.")
 (define-public ecl-py4cl
   (sbcl-package->ecl-package sbcl-py4cl))
 
+(define-public sbcl-schemeish
+  (let ((commit "dff57bafae5d0cffa104c8fdc4146502f32d7f85")
+        (revision "1"))
+    (package
+      (name "sbcl-schemeish")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/chebert/schemeish")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0q9b07spmhg1b576cnnacvkf7zr3mab2rdydfylbn92y9mms9vyj"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-trivial-arguments))
+      (synopsis "Scheme style syntax/macros/functions for Common Lisp")
+      (description
+       "Schemeish implements several useful Scheme constructs for Common Lisp.
+These include named-let, define, scheme argument lists, and a shortcut to
+FUNCALL with [] instead of ().")
+      (home-page "https://github.com/chebert/schemeish")
+      ;; MIT License
+      (license license:expat))))
+
+(define-public cl-schemeish
+  (sbcl-package->cl-source-package sbcl-schemeish))
+
+(define-public ecl-schemeish
+  (sbcl-package->ecl-package sbcl-schemeish))
+
 (define-public sbcl-parse-declarations
   (let ((commit "549aebbfb9403a7fe948654126b9c814f443f4f2")
         (revision "1"))
@@ -5562,37 +5260,6 @@ high-level way.  This library provides such operators.")
 (define-public ecl-parse-declarations
   (sbcl-package->ecl-package sbcl-parse-declarations))
 
-(define-public sbcl-cl-quickcheck
-  (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
-        (revision "1"))
-    (package
-      (name "sbcl-cl-quickcheck")
-      (version (git-version "0.0.4" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/mcandre/cl-quickcheck")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
-      (build-system asdf-build-system/sbcl)
-      (synopsis
-       "Common Lisp port of the QuickCheck unit test framework")
-      (description
-       "Common Lisp port of the QuickCheck unit test framework")
-      (home-page "https://github.com/mcandre/cl-quickcheck")
-      ;; MIT
-      (license license:expat))))
-
-(define-public cl-quickcheck
-  (sbcl-package->cl-source-package sbcl-cl-quickcheck))
-
-(define-public ecl-cl-quickcheck
-  (sbcl-package->ecl-package sbcl-cl-quickcheck))
-
 (define-public sbcl-burgled-batteries3
   (let ((commit "f65f454d13bb6c40e17e9ec62e41eb5069e09760")
         (revision "2"))
@@ -5608,7 +5275,9 @@ high-level way.  This library provides such operators.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1nzn7jawrfajyzwfnzrg2cmn9xxadcqh4szbpg0jggkhdkdzz4wa"))))
+           "1nzn7jawrfajyzwfnzrg2cmn9xxadcqh4szbpg0jggkhdkdzz4wa"))
+         (patches
+          (search-patches "sbcl-burgled-batteries3-fix-signals.patch"))))
       (build-system asdf-build-system/sbcl)
       (arguments
        `(#:tests? #f
@@ -5635,9 +5304,7 @@ high-level way.  This library provides such operators.")
                   ""))
                #t)))))
       (native-inputs
-       `(("sbcl-cl-fad" ,sbcl-cl-fad)
-         ("sbcl-lift" ,sbcl-lift)
-         ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
+       (list sbcl-cl-fad sbcl-lift sbcl-cl-quickcheck))
       (inputs
        `(("python" ,python)
          ("sbcl-cffi" ,sbcl-cffi)
@@ -5675,7 +5342,7 @@ CPython implementation of Python) and Common Lisp.")
            "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("sbcl-lift" ,sbcl-lift)))
+       (list sbcl-lift))
       (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
       (description
        "Bind extends the idea of of let and destructing to provide a uniform
@@ -5715,7 +5382,7 @@ whole lot more into a single form.")
       (arguments
        `(#:test-asd-file "test/fare-utils-test.asd"))
       (native-inputs
-       `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
+       (list sbcl-hu.dwim.stefil))
       (synopsis "Collection of utilities and data structures")
       (description
        "fare-utils is a small collection of utilities.  It contains a lot of
@@ -5748,8 +5415,7 @@ basic everyday functions and macros.")
            "0maxs8392953fhnaa6zwnm2mdbhxjxipp4g4rvypm06ixr6pyv1c"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("close-mop" ,sbcl-closer-mop)
-         ("fare-utils" ,sbcl-fare-utils)))
+       (list sbcl-closer-mop sbcl-fare-utils))
       (home-page "https://github.com/fare/fare-mop")
       (synopsis "General purpose Common Lisp utilities using the MOP")
       (description
@@ -5783,13 +5449,10 @@ great for REPL interaction and debugging.")
           (base32 "02qx37zzk5j4xmwh77k2qa2wvnzvaj6qml5dh2q7b6b1ljvgcj4m"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
+       (list sbcl-hu.dwim.stefil))
       (inputs
-       `(("alexandira" ,sbcl-alexandria)
-         ("fare-mop" ,sbcl-fare-mop)
-         ("fare-quasiquote" ,sbcl-fare-quasiquote)
-         ("fare-utils" ,sbcl-fare-utils)
-         ("trivia" ,sbcl-trivia)))
+       (list sbcl-alexandria sbcl-fare-mop sbcl-fare-quasiquote
+             sbcl-fare-utils sbcl-trivia))
       (home-page "https://github.com/fare/inferior-shell")
       (synopsis "Spawn local or remote processes and shell pipes")
       (description
@@ -5858,7 +5521,7 @@ UTF-8 has is that it doesn't depend on any other libraries.")
         (base32
          "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
     (inputs
-     `(("split-sequence" ,sbcl-split-sequence)))
+     (list sbcl-split-sequence))
     (synopsis "IDNA string encoding and decoding routines for Common Lisp")
     (description "This Common Lisp library provides string encoding and
 decoding routines for IDNA, the International Domain Names in Applications.")
@@ -5887,9 +5550,9 @@ decoding routines for IDNA, the International Domain Names in Applications.")
         (base32
          "1hw1v1lw26rifyznpnj1csphha9jgzwpiic16ni3pvs6hcsni9rz"))))
     (inputs
-     `(("trivial-features" ,sbcl-trivial-features)))
+     (list sbcl-trivial-features))
     (native-inputs
-     `(("fiveam" ,sbcl-fiveam)))
+     (list sbcl-fiveam))
     (synopsis "Efficient endianness conversion for Common Lisp")
     (description "This Common Lisp library provides optimized byte-swapping
 primitives.  The library can change endianness of unsigned integers of length
@@ -5961,8 +5624,8 @@ and @code{kqueue(2)}), a pathname library and file-system utilities.")
       (inherit parent)
       (propagated-inputs
        ;; Need header to compile.
-       `(("libfixposix" ,libfixposix)
-         ,@(package-propagated-inputs parent))))))
+       (modify-inputs (package-propagated-inputs parent)
+         (prepend libfixposix))))))
 
 (define-public ecl-iolib
   (sbcl-package->ecl-package sbcl-iolib))
@@ -5986,7 +5649,7 @@ and @code{kqueue(2)}), a pathname library and file-system utilities.")
           (base32
            "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (synopsis "IEEE 754 binary representation for floats in Common Lisp")
       (description "This is a Common Lisp library that converts
 floating point values to IEEE 754 binary representation.")
@@ -6043,9 +5706,7 @@ Closure is a reference to the web browser it was originally written for.")
            "13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
       (build-system asdf-build-system/sbcl)
     (inputs
-     `(("closure-common" ,sbcl-closure-common)
-       ("puri" ,sbcl-puri)
-       ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+     (list sbcl-closure-common sbcl-puri sbcl-trivial-gray-streams))
     (synopsis "Common Lisp XML parser")
     (description "CXML implements a namespace-aware, validating XML 1.0
 parser as well as the DOM Level 2 Core interfaces.  Two parser interfaces are
@@ -6059,6 +5720,43 @@ offered, one SAX-like, the other similar to StAX.")
 (define-public ecl-cxml
   (sbcl-package->ecl-package sbcl-cxml))
 
+(define-public sbcl-cxml-rng
+  (let ((commit "bdcfeb92798694b2935a8321e641d8803e814b7b")
+        (revision "1"))
+    (package
+      (name "sbcl-cxml-rng")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "http://www.lichteblau.com/git/cxml-rng.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1rld038hmvm0whaffkszd5ks7mg44z1vfbgddal434df8sgspzql"))))
+      (build-system asdf-build-system/sbcl)
+    (inputs
+     (list sbcl-cxml sbcl-cl-ppcre sbcl-cl-yacc sbcl-parse-number
+           sbcl-cl-base64))
+    (synopsis "Relax NG for Closure XML (CXML)")
+    (description "An implementation of Relax NG schema validation written in
+Common Lisp, including support for compact syntax, DTD Compatibility, and the
+XSD type library.")
+    (home-page "http://www.lichteblau.com/cxml-rng/")
+    (license license:bsd-2))))
+
+(define-public cl-cxml-rng
+  (sbcl-package->cl-source-package sbcl-cxml-rng))
+
+;; FIXME: Fails on ECL with
+;; In function STRUCTURE-SET, the value of the first argument is
+;;   #<empty  0x7fffeb0fd440>
+;; which is not of the expected type %TYPED-PATTERN.
+;; (define-public ecl-cxml-rng
+;;   (sbcl-package->ecl-package sbcl-cxml-rng))
+
 (define-public sbcl-cl-reexport
   (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
         (revision "1"))
@@ -6118,7 +5816,7 @@ cookie headers, cookie creation, cookie jar creation and more.")
          ("cl-ppcre" ,sbcl-cl-ppcre)
          ("local-time" ,sbcl-local-time)))
       (native-inputs
-       `(("prove" ,sbcl-prove)))
+       (list sbcl-prove))
       (arguments
        ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
        `(#:tests? #f))
@@ -6224,7 +5922,7 @@ neat APIs and connection-pooling.  It is meant to supersede Drakma.")
       (inputs
        `(("alexandria" ,sbcl-alexandria)))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (arguments
        `(#:test-asd-file "lisp-namespace.test.asd"
         ;; XXX: Component LISP-NAMESPACE-ASD::LISP-NAMESPACE.TEST not found
@@ -6292,7 +5990,7 @@ and it exports symbols from implementation-specific packages.")
           (base32
            "1i305n0wfmpac63ni4i3vixnnkl8daw5ncxy0k3dv92krgx6qzhp"))))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (synopsis "Common Lisp environment introspection portability layer")
       (description "This library is a small interface to portable but
 nonstandard introspection of Common Lisp environments.  It is intended to
@@ -6343,7 +6041,7 @@ can and/or provide reasonable defaults.")
          ("introspect-environment" ,sbcl-introspect-environment)
          ("trivia.trivial" ,sbcl-trivia.trivial)))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (arguments
        `(#:test-asd-file "type-i.test.asd"))
       (synopsis "Type inference utility on unary predicates for Common Lisp")
@@ -6384,7 +6082,7 @@ the return type of a function.")
        `(("alexandria" ,sbcl-alexandria)
          ("closer-mop" ,sbcl-closer-mop)))
       (native-inputs
-       `(("eos" ,sbcl-eos)))
+       (list sbcl-eos))
       (arguments
        ;; XXX: Circular dependencies: tests depend on optima.ppcre which depends on optima.
        `(#:tests? #f
@@ -6598,7 +6296,7 @@ various string metrics in Common Lisp:
        ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
        ("cl-change-case" ,sbcl-cl-change-case)))
     (native-inputs
-     `(("prove" ,sbcl-prove)))
+     (list sbcl-prove))
     (arguments
      `(#:asd-systems '("str")
        #:test-asd-file "str.test.asd"))
@@ -6636,8 +6334,7 @@ arrows.")
           (base32
            "0w4rqvrgdgk3fwfq3kx4r7wwdr2bv3b6n3bdqwsiriw9psqzpz2s"))))
       (inputs
-       `(("cxml" ,sbcl-cxml)
-         ("cl-ppcre" ,sbcl-cl-ppcre)))
+       (list sbcl-cxml sbcl-cl-ppcre))
       (synopsis "Concise, regexp-like pattern matching on streaming XML for Common Lisp")
       (description "CXML does an excellent job at parsing XML elements, but what
 do you do when you have a XML file that's larger than you want to fit in
@@ -6675,14 +6372,14 @@ power of CXML is available when necessary.")
            "0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("trivial-garbage" ,sbcl-trivial-garbage)
-         ("babel" ,sbcl-babel)
-         ("iolib" ,sbcl-iolib)
-         ("ieee-floats" ,sbcl-ieee-floats)
-         ("flexi-streams" ,sbcl-flexi-streams)
-         ("cl-xmlspam" ,sbcl-cl-xmlspam)
-         ("ironclad" ,sbcl-ironclad)))
+       (list sbcl-alexandria
+             sbcl-trivial-garbage
+             sbcl-babel
+             sbcl-iolib
+             sbcl-ieee-floats
+             sbcl-flexi-streams
+             sbcl-cl-xmlspam
+             sbcl-ironclad))
       (synopsis "D-Bus client library for Common Lisp")
       (description "This is a Common Lisp library that publishes D-Bus
 objects as well as send and notify other objects connected to a bus.")
@@ -6713,12 +6410,10 @@ objects as well as send and notify other objects connected to a bus.")
           (base32
            "0bg3l0a28lw5gqqjp6p6b5nhwqk46sgkb7184w5qbfngw1hk8x9y"))))
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("let-plus" ,sbcl-let-plus)
-         ("trivial-garbage" ,sbcl-trivial-garbage)
-         ("closer-mop" ,sbcl-closer-mop)))
+       (list sbcl-alexandria sbcl-let-plus sbcl-trivial-garbage
+             sbcl-closer-mop))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (synopsis "Hooks extension point mechanism (as in Emacs) for Common Lisp")
       (description "A hook, in the present context, is a certain kind of
 extension point in a program that allows interleaving the execution of
@@ -6814,8 +6509,7 @@ extension-points via the concept of hooks.")
           (base32
            "1fh8r7kf8s3hvqdg6b71b8p7w3v2kkga9bw8j3qqdxhzr6anpm0b"))))
       (inputs
-       `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("usocket" ,sbcl-usocket)))
+       (list sbcl-bordeaux-threads sbcl-usocket))
       (synopsis "Common Lisp abstraction layer over platform dependent functionality")
       (description "@code{s-sysdeps} is an abstraction layer over platform
 dependent functionality.  This simple package is used as a building block in a
@@ -6856,10 +6550,9 @@ number of other open source projects.
           (base32
            "050h6hwv8f16b5v6fzba8zmih92hgaaq27i2x9wv1iib41gbia3r"))))
       (inputs
-       `(("s-sysdeps" ,sbcl-s-sysdeps)
-         ("s-xml" ,sbcl-s-xml)))
+       (list sbcl-s-sysdeps sbcl-s-xml))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (synopsis "Implementation of object prevalence for Common Lisp")
       (description "This Common Lisp library implements object prevalence (see
 @url{https://en.wikipedia.org/wiki/System_prevalence}).  It allows
@@ -6966,7 +6659,7 @@ discontiguous ranges of time.")
            "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("lift" ,sbcl-lift)))
+       (list sbcl-lift))
       (synopsis "Core of the metatilities Common Lisp library")
       (description
        "Metatilities-base is the core of the metatilities Common Lisp library
@@ -6998,7 +6691,7 @@ which implements a set of utilities.")
            "18s6jfq11n8nv9k4biz32pm1s7y9zl054ry1gmdbcf39nisy377y"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("lift" ,sbcl-lift)))
+       (list sbcl-lift))
       (inputs
        `(("metatilities-base" ,sbcl-metatilities-base)))
       (arguments
@@ -7032,44 +6725,6 @@ decisions becomes significantly easier.")
 (define-public ecl-cl-containers
   (sbcl-package->ecl-package sbcl-cl-containers))
 
-(define-public sbcl-xlunit
-  (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
-        (revision "1"))
-    (package
-      (name "sbcl-xlunit")
-      (version (git-version "0.6.3" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "http://git.kpe.io/xlunit.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
-      (build-system asdf-build-system/sbcl)
-      (arguments
-       '(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'fix-tests
-             (lambda _
-               (substitute* "xlunit.asd"
-                 ((" :force t") ""))
-               #t)))))
-      (synopsis "Unit testing package for Common Lisp")
-      (description
-       "The XLUnit package is a toolkit for building test suites.  It is based
-on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
-      (home-page "http://quickdocs.org/xlunit/")
-      (license license:bsd-3))))
-
-(define-public cl-xlunit
-  (sbcl-package->cl-source-package sbcl-xlunit))
-
-(define-public ecl-xlunit
-  (sbcl-package->ecl-package sbcl-xlunit))
-
 (define-public sbcl-cambl
   (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
         (revision "1"))
@@ -7087,7 +6742,7 @@ on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
           (base32 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("xlunit" ,sbcl-xlunit)))
+       (list sbcl-xlunit))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("cl-containers" ,sbcl-cl-containers)
@@ -7173,8 +6828,7 @@ system.")
           (base32 "18ig7rvxcra69437g0i8sxyv7c5dg26jqnx1rc2f9pxmihdprgk8"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("fiveam" ,sbcl-fiveam)))
+       (list sbcl-alexandria sbcl-fiveam))
       (synopsis "Binary search tree for Common Lisp")
       (description
        "BST is a Common Lisp library for working with binary search trees that
@@ -7203,9 +6857,9 @@ can contain any kind of values.")
         (base32 "1hffh98bv4w5yrchagzwqrc43d2p473pvw7ka4kyyvhrr52dk2f8"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("fiveam" ,sbcl-fiveam)))
+     (list sbcl-fiveam))
     (inputs
-     `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+     (list sbcl-trivial-gray-streams))
     (synopsis "In-memory octet streams for Common Lisp")
     (description
      "CL-octet-streams is a library implementing in-memory octet
@@ -7237,7 +6891,7 @@ cl-plumbing libraries.")
           (base32 "09lp7li35h4jkls0448fj1sh6pjslr1w7ranbc4szjr8g0c2bdry"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
        `(("cffi" ,sbcl-cffi)
          ("cl-octet-streams" ,sbcl-cl-octet-streams)
@@ -7283,9 +6937,9 @@ compression/decompression using bindings to the lzlib C library.")
            "0b1cf6c12qx5cy1fw2z42jgh566rp3l8nv5qf0qqc569s7bgmrh4"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
-       `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
+       (list sbcl-bordeaux-threads))
       (synopsis "Portable channel-based concurrency for Common Lisp")
       (description "Common Lisp library for channel-based concurrency.  In
 a nutshell, you create various threads sequentially executing tasks you need
@@ -7318,7 +6972,7 @@ threads.")
            "194srkg8nrym19c6i7zbnkzshc1qhqa82m53qnkirz9fw928bqxr"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("rt" ,sbcl-rt)))
+       (list sbcl-rt))
       (synopsis "Common Lisp library to serialize data")
       (description
        "CL-STORE is a portable serialization package which should give you the
@@ -7349,10 +7003,9 @@ ability to store all Common Lisp data types into streams.")
           (base32 "0r0bgb46q4gy72l78s7djkxq8ibb4bb3yh9brsry5lih7br8lhi0"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("introspect-environment" ,sbcl-introspect-environment)))
+       (list sbcl-alexandria sbcl-introspect-environment))
       (home-page "https://github.com/markcox80/specialization-store")
       (synopsis "Different type of generic function for Common Lisp")
       (description
@@ -7397,7 +7050,7 @@ function.")
          ("glib" ,glib)
          ("gobject-introspection" ,gobject-introspection)))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (arguments
        '(#:phases
          (modify-phases %standard-phases
@@ -7444,7 +7097,7 @@ of C+GObject libraries without the need of writing dedicated bindings.")
        `(#:asd-files '("cl-slug-test.asd" "cl-slug.asd")
          #:asd-systems '("cl-slug-test" "cl-slug")))
       (native-inputs
-       `(("prove" ,sbcl-prove)))
+       (list sbcl-prove))
       (inputs
        `(("ppcre" ,sbcl-cl-ppcre)))
       (home-page "https://github.com/EuAndreh/cl-slug")
@@ -7574,7 +7227,7 @@ special variables, especially in the presence of threads.")
            "17pp86c9zs4y7i1sh7q9gbfw9iqv6655k7fz8qbj9ly1ypgxp4qs"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (synopsis "Size of a file in bytes in Common Lisp")
       (description
        "The canonical way to determine the size of a file in bytes, using Common Lisp,
@@ -7612,7 +7265,7 @@ size of a file in bytes, using system calls when possible.")
            "191hnn4b5j4i3crydmlzbm231kj0h7l8zj6mzj69r1npbzkas4bd"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (synopsis "Portable macroexpand-all for Common Lisp")
       (description
        "This library provides a macroexpand-all function that calls the
@@ -7680,6 +7333,47 @@ supplement, not a competitor, to Alexandria.")
 (define-public ecl-serapeum
   (sbcl-package->ecl-package sbcl-serapeum))
 
+(define-public sbcl-rutils
+  (let ((commit "db3c3f4ae897025b5f0cd81042ca147da60ca0c5")
+        (revision "0"))
+    (package
+      (name "sbcl-rutils")
+      (version (git-version "5.2.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/vseloved/rutils")
+               (commit commit)))
+         (file-name (git-file-name "rutils" version))
+         (sha256
+          (base32 "1d2whscknh1zga2vdqvfqri8wx0gnml3sfqz62igq0ppap6q07y3"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:asd-systems '("rutils" "rutilsx")
+         ;; Tests disabled because of a circular dependency with should-test.
+         #:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-build
+             (lambda _
+               ;; File faild to load, and we don't use it as tests are
+               ;; disabled, so let's delete it.
+               (delete-file "rutilsx-test.asd"))))))
+      (inputs
+       `(("closer-mop" ,sbcl-closer-mop)
+         ("named-readtables" ,sbcl-named-readtables)))
+      (home-page "https://github.com/vseloved/rutils")
+      (synopsis "Radical Utilities for Common Lisp")
+      (description "RUTILS is a syntactic utilities package for Common Lisp.")
+      (license license:bsd-3))))
+
+(define-public cl-rutils
+  (sbcl-package->cl-source-package sbcl-rutils))
+
+(define-public ecl-rutils
+  (sbcl-package->ecl-package sbcl-rutils))
+
 (define-public sbcl-arrows
   (let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
         (revision "0"))
@@ -7698,7 +7392,7 @@ supplement, not a competitor, to Alexandria.")
            "042k9vkssrqx9nhp14wdzm942zgdxvp35mba0p2syz98i75im2yy"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
+       (list sbcl-hu.dwim.stefil))
       (synopsis "Clojure-like arrow macros for Common Lisp")
       (description
        "This library implements the @code{->} and @code{->>} macros from
@@ -7729,9 +7423,9 @@ Clojure, as well as several expansions on the idea.")
           (base32 "0gvbpyff4siifp3cp86cpr9ksmakn66fx21f3h0hpn647zl07nj7"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
-       `(("chanl" ,sbcl-chanl)))
+       (list sbcl-chanl))
       (synopsis "Common Lisp library to evaluate some forms in parallel")
       (description "This is a simple Common Lisp library to evaluate some
 forms in parallel.")
@@ -7758,7 +7452,7 @@ forms in parallel.")
          "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("xlunit" ,sbcl-xlunit)))
+     (list sbcl-xlunit))
     (arguments
      `(#:test-asd-file "cl-heap-tests.asd"))
     (synopsis "Heap and priority queue data structures for Common Lisp")
@@ -7793,8 +7487,7 @@ binary heap and a Fibonacci heap) as well as an efficient priority queue.")
            "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("named-readtables" ,sbcl-named-readtables)))
+       (list sbcl-alexandria sbcl-named-readtables))
       (synopsis "Reader macros for partial application and composition")
       (description
        "This Common Lisp library provides reader macros for concise expression
@@ -7824,8 +7517,7 @@ of function partial application and composition.")
          "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
     (build-system asdf-build-system/sbcl)
     (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+     (list sbcl-alexandria sbcl-trivial-gray-streams))
     (synopsis "Common Lisp JSON parser/encoder")
     (description
      "YASON is a Common Lisp library for encoding and decoding data in the
@@ -7839,49 +7531,6 @@ JSON interchange format.")
 (define-public ecl-yason
   (sbcl-package->ecl-package sbcl-yason))
 
-(define-public sbcl-stefil
-  (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
-        (revision "0"))
-    (package
-      (name "sbcl-stefil")
-      (version (git-version "0.1" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://gitlab.common-lisp.net/stefil/stefil.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
-      (build-system asdf-build-system/sbcl)
-      (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("iterate" ,sbcl-iterate)
-         ("metabang-bind" ,sbcl-metabang-bind)
-         ("swank" ,sbcl-slime-swank)))
-      (arguments
-       '(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'drop-unnecessary-dependency
-             (lambda _
-               (substitute* "package.lisp"
-                 ((":stefil-system") ""))
-               #t)))))
-      (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
-      (synopsis "Simple test framework")
-      (description
-       "Stefil is a simple test framework for Common Lisp, with a focus on
-interactive development.")
-      (license license:public-domain))))
-
-(define-public cl-stefil
-  (sbcl-package->cl-source-package sbcl-stefil))
-
-(define-public ecl-stefil
-  (sbcl-package->ecl-package sbcl-stefil))
-
 (define-public sbcl-graph
   (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
         (revision "0"))
@@ -7901,7 +7550,7 @@ interactive development.")
            "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("stefil" ,sbcl-stefil)))
+       (list sbcl-stefil))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("cl-heap" ,sbcl-cl-heap)
@@ -7979,7 +7628,7 @@ results.")
            "098qhkqskmmrh4wix34mawf7p5c87yql28r51r75yjxj577k5idq"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("trivial-indent" ,sbcl-trivial-indent)))
+       (list sbcl-trivial-indent))
       (synopsis "Few simple tools to document Common Lisp libraries")
       (description
        "This is a small library to help you with managing the Common Lisp
@@ -8011,7 +7660,7 @@ docstrings for your library.")
            "0pn45c9rbxlnhn5nvhqz6kyv0nlirwxpg4j27niwdq80yxzsn51f"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("documentation-utils" ,sbcl-documentation-utils)))
+       (list sbcl-documentation-utils))
       (home-page "https://github.com/sirherrbatka/documentation-utils-extensions")
       (synopsis "Set of extensions for documentation-utils")
       (description
@@ -8051,7 +7700,7 @@ for more information.")
            "041iznc9mpfyrl0sv5893ys9pbb2pvbn9g3clarqi7gsfj483jln"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("documentation-utils" ,sbcl-documentation-utils)))
+       (list sbcl-documentation-utils))
       (synopsis "Utilities to destructure Common Lisp lambda forms")
       (description
        "Often times we need to destructure a form definition in a Common Lisp
@@ -8065,41 +7714,6 @@ macro.  This library provides a set of simple utilities to help with that.")
 (define-public ecl-form-fiddle
   (sbcl-package->ecl-package sbcl-form-fiddle))
 
-(define-public sbcl-parachute
-  (let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
-        (revision "0"))
-    (package
-      (name "sbcl-parachute")
-      (version (git-version "1.1.1" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri
-          (git-reference
-           (url "https://github.com/Shinmera/parachute")
-           (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1mvsm3r0r6a2bg75nw0q7n9vlby3ch45qjl7hnb5k1z2n5x5lh60"))))
-      (build-system asdf-build-system/sbcl)
-      (inputs
-       `(("documentation-utils" ,sbcl-documentation-utils)
-         ("form-fiddle" ,sbcl-form-fiddle)))
-      (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
-      (description
-       "Parachute is a simple-to-use and extensible testing framework.
-In Parachute, things are organised as a bunch of named tests within a package.
-Each test can contain a bunch of test forms that make up its body.")
-      (home-page "https://shinmera.github.io/parachute/")
-      (license license:zlib))))
-
-(define-public cl-parachute
-  (sbcl-package->cl-source-package sbcl-parachute))
-
-(define-public ecl-parachute
-  (sbcl-package->ecl-package sbcl-parachute))
-
 (define-public sbcl-array-utils
   (let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
         (revision "0"))
@@ -8119,9 +7733,9 @@ Each test can contain a bunch of test forms that make up its body.")
            "0zhwfbpr53vs1ii4sx75dz2k9yhh1xpwdqqpg8nmfndxkmhpbi3x"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("parachute" ,sbcl-parachute)))
+       (list sbcl-parachute))
       (inputs
-       `(("documentation-utils" ,sbcl-documentation-utils)))
+       (list sbcl-documentation-utils))
       (synopsis "Tiny collection of array and vector utilities for Common Lisp")
       (description
        "A miniature toolkit that contains some useful shifting/popping/pushing
@@ -8154,8 +7768,7 @@ functions for arrays and vectors.  Originally from Plump.")
            "1w4wz7f6dc2ckdq9wq9r5014bg2nxjifj9yz1zzn41r8h1h5xfcd"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("array-utils" ,sbcl-array-utils)
-         ("documentation-utils" ,sbcl-documentation-utils)))
+       (list sbcl-array-utils sbcl-documentation-utils))
       (synopsis "Lenient XML / XHTML / HTML parser for Common Lisp")
       (description
        "Plump is a parser for HTML/XML-like documents, focusing on being
@@ -8206,7 +7819,7 @@ your own classes.")
          ("trivial-garbage" ,sbcl-trivial-garbage)
          ("trivial-utf-8" ,sbcl-trivial-utf-8)))
       (native-inputs
-       `(("lisp-unit" ,sbcl-lisp-unit)))
+       (list sbcl-lisp-unit))
       (arguments
        '(#:asd-systems '("antik-base"
                          "foreign-array")
@@ -8267,7 +7880,7 @@ computer known.")
            "0z5nypfk26hxihb08p085644afawicrgb4xvadh3lmrn46qbjfn4"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("lisp-unit" ,sbcl-lisp-unit)))
+       (list sbcl-lisp-unit))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("antik-base" ,sbcl-antik-base)
@@ -8353,10 +7966,9 @@ intending to program in Lisp.")
            "1kr00zf62m7la7rxa2m5w49r9cyzamc106hvjcc8ffmi7a4jw490"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cl-unicode" ,sbcl-cl-unicode)
-         ("named-readtables" ,sbcl-named-readtables)))
+       (list sbcl-cl-unicode sbcl-named-readtables))
       (native-inputs
-       `(("flexi-streams" ,sbcl-flexi-streams)))
+       (list sbcl-flexi-streams))
       (synopsis "String interpolation for Common Lisp")
       (description
        "CL-INTERPOL is a library for Common Lisp which modifies the
@@ -8415,44 +8027,6 @@ and camel-case rules.")
 (define-public ecl-symbol-munger
   (sbcl-package->ecl-package sbcl-symbol-munger))
 
-(define-public sbcl-lisp-unit2
-  ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
-  ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
-  (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
-        (revision "1"))
-    (package
-      (name "sbcl-lisp-unit2")
-      (version (git-version "0.2.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/AccelerationNet/lisp-unit2")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
-      (build-system asdf-build-system/sbcl)
-      (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("cl-interpol" ,sbcl-cl-interpol)
-         ("iterate" ,sbcl-iterate)
-         ("symbol-munger" ,sbcl-symbol-munger)))
-      (synopsis "Test Framework for Common Lisp")
-      (description
-       "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
-style of JUnit for Java.  It is a new version of the lisp-unit library written
-by Chris Riesbeck.")
-      (home-page "https://github.com/AccelerationNet/lisp-unit2")
-      (license license:expat))))
-
-(define-public cl-lisp-unit2
-  (sbcl-package->cl-source-package sbcl-lisp-unit2))
-
-(define-public ecl-lisp-unit2
-  (sbcl-package->ecl-package sbcl-lisp-unit2))
-
 (define-public sbcl-cl-csv
   (let ((commit "68ecb5d816545677513d7f6308d9e5e8d2265651")
         (revision "2"))
@@ -8478,7 +8052,7 @@ by Chris Riesbeck.")
          ("cl-interpol" ,sbcl-cl-interpol)
          ("iterate" ,sbcl-iterate)))
       (native-inputs
-       `(("lisp-unit2" ,sbcl-lisp-unit2)))
+       (list sbcl-lisp-unit2))
       (synopsis "Common lisp library for comma-separated values")
       (description
        "This is a Common Lisp library providing functions to read/write CSV
@@ -8510,9 +8084,9 @@ from/to strings, streams and files.")
            "0vww1x3yilb3bjwg6k184vaj4vxyxw4vralhnlm6lk4xac67kc9z"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("trivial-features" ,sbcl-trivial-features)))
+       (list sbcl-trivial-features))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (synopsis "Common Lisp library for running external programs")
       (description
        "EXTERNAL-PROGRAM enables running programs outside the Lisp
@@ -8545,7 +8119,7 @@ sacrificing much in the way of power.")
         (base32 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
      (build-system asdf-build-system/sbcl)
      (native-inputs
-      `(("cl-fad" ,sbcl-cl-fad)))
+      (list sbcl-cl-fad))
      (inputs
       `(("alexandria" ,sbcl-alexandria)
         ("antik" ,sbcl-antik)
@@ -8601,8 +8175,7 @@ visualization.")
                   "0pvsc9fmybx7rxd0kmzq4shi6hszdpwdc1sfy7jwyfxf8n3hnv4p"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cl-fad" ,sbcl-cl-fad)
-         ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+       (list sbcl-cl-fad sbcl-trivial-gray-streams))
       (synopsis "Common Lisp library for tar and cpio archives")
       (description
        "This is a Common Lisp library to read and write disk-based file
@@ -8700,9 +8273,7 @@ for Common Lisp.")
                      #t))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("misc-extensions" ,sbcl-misc-extensions)
-         ("mt19937" ,sbcl-mt19937)
-         ("named-readtables" ,sbcl-named-readtables)))
+       (list sbcl-misc-extensions sbcl-mt19937 sbcl-named-readtables))
       (synopsis "Functional set-theoretic collections library")
       (description
        "FSet is a functional set-theoretic collections library for Common Lisp.
@@ -8741,10 +8312,9 @@ may contain sets, maps may be keyed by sets, etc.")
            "1zf8zvb0i6jm3hhfks4w74hibm6avgc6f9s1qwgjrn2bcik8lrvz"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("closer-mop" ,sbcl-closer-mop)))
+       (list sbcl-alexandria sbcl-closer-mop))
       (native-inputs
-       `(("rt" ,sbcl-rt)))
+       (list sbcl-rt))
       (synopsis "Delimited continuations for Common Lisp")
       (description
        "This is a library that implements delimited continuations by
@@ -8779,7 +8349,7 @@ transforming Common Lisp code to continuation passing style.")
        `(("alexandria" ,sbcl-alexandria)
          ("cl-cont" ,sbcl-cl-cont)))
       (native-inputs
-       `(("prove" ,sbcl-prove)))
+       (list sbcl-prove))
       (arguments
        `(;; TODO: Fix the tests. They fail with:
          ;; "Component CL-COROUTINE-ASD::CL-COROUTINE-TEST not found"
@@ -8988,10 +8558,9 @@ Common Lisp.  It uses the libuv library as backend.")
            "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("vom" ,sbcl-vom)))
+       (list sbcl-vom))
       (native-inputs
-       `(("cl-async" ,sbcl-cl-async)
-         ("fiveam" ,sbcl-fiveam)))
+       (list sbcl-cl-async sbcl-fiveam))
       (synopsis "Promise implementation for Common Lisp")
       (description
        "This is a standalone promise implementation for Common Lisp.  It is
@@ -9023,10 +8592,9 @@ the successor to the now-deprecated cl-async-future project.")
            "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("blackbird" ,sbcl-blackbird)))
+       (list sbcl-blackbird))
       (native-inputs
-       `(("cl-async" ,sbcl-cl-async)
-         ("eos" ,sbcl-eos)))
+       (list sbcl-cl-async sbcl-eos))
       (synopsis "Futures implementation for Common Lisp")
       (description
        "This is futures implementation for Common Lisp.  It plugs in nicely
@@ -9061,7 +8629,7 @@ to cl-async.")
        `(("cl-async-future" ,sbcl-cl-async-future)
          ("cl-cont" ,sbcl-cl-cont)))
       (native-inputs
-       `(("prove" ,sbcl-prove)))
+       (list sbcl-prove))
       (arguments
        `(;; TODO: Fix the tests. They fail with:
          ;; "The function BLACKBIRD::PROMISE-VALUES is undefined"
@@ -9105,7 +8673,7 @@ possible.")
           (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("lisp-unit" ,sbcl-lisp-unit)))
+       (list sbcl-lisp-unit))
       (synopsis "Common Lisp library for base32 encoding and decoding")
       (description
        "This package provides functions for base32 encoding and decoding as
@@ -9136,8 +8704,7 @@ defined in RFC4648.")
           (base32 "0r27pidjaxbm7k1rr90nnajwl5xm2kp65g1fv0fva17lzy45z1mp"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("cl-octet-streams" ,sbcl-cl-octet-streams)
-         ("fiveam" ,sbcl-fiveam)))
+       (list sbcl-cl-octet-streams sbcl-fiveam))
       (synopsis "Common Lisp library for Z85 encoding and decoding")
       (description
        "This package provides functions to encode or decode byte vectors or
@@ -9167,8 +8734,7 @@ ZeroMQ.")
         (base32 "13l2q4mskzilya9xh5wy2xvy30lwn104bd8wrq6ifds56r82iy3x"))))
     (build-system asdf-build-system/sbcl)
     (inputs
-     `(("imagemagick" ,imagemagick)
-       ("tk" ,tk)))
+     (list imagemagick tk))
     (arguments
      `(#:asd-systems '("ltk"
                        "ltk-mw"
@@ -9224,7 +8790,7 @@ in pure Common Lisp and does not require any Tk knowledge for its usage.")
           (base32 "1kg50f76bfpfxcv4dfivq1n9a0xlsra2ajb0vd68lxwgbidgyc2y"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cl-ppcre" ,sbcl-cl-ppcre)))
+       (list sbcl-cl-ppcre))
       (synopsis "Common Lisp macros for generating lexical analyzers")
       (description
        "This is a Common Lisp library providing a set of macros for generating
@@ -9239,35 +8805,6 @@ be used with @code{cl-yacc}.")
 (define-public ecl-cl-lex
   (sbcl-package->ecl-package sbcl-cl-lex))
 
-(define-public sbcl-clunit2
-  (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b")
-        (revision "1"))
-    (package
-      (name "sbcl-clunit2")
-      (version (git-version "0.2.4" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://notabug.org/cage/clunit2.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw"))))
-      (build-system asdf-build-system/sbcl)
-      (synopsis "Unit testing framework for Common Lisp")
-      (description
-       "CLUnit is a Common Lisp unit testing framework.  It is designed to be
-easy to use so that you can quickly start testing.")
-      (home-page "https://notabug.org/cage/clunit2")
-      (license license:expat))))
-
-(define-public cl-clunit2
-  (sbcl-package->cl-source-package sbcl-clunit2))
-
-(define-public ecl-clunit2
-  (sbcl-package->ecl-package sbcl-clunit2))
-
 (define-public sbcl-cl-colors2
   (let ((commit "795aedee593b095fecde574bd999b520dd03ed24")
         (revision "1"))
@@ -9285,10 +8822,9 @@ easy to use so that you can quickly start testing.")
           (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("clunit2" ,sbcl-clunit2)))
+       (list sbcl-clunit2))
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("cl-ppcre" ,sbcl-cl-ppcre)))
+       (list sbcl-alexandria sbcl-cl-ppcre))
       (synopsis "Color library for Common Lisp")
       (description
        "This is a very simple color library for Common Lisp, providing:
@@ -9352,7 +8888,9 @@ for reading and writing JPEG image files.")
                (commit commit)))
          (file-name (git-file-name "cl-png" version))
          (sha256
-          (base32 "173hqwpd0rwqf95mfx1h9l9c3i8bb0gvnpspzmmz3g5x3440czy4"))))
+          (base32 "173hqwpd0rwqf95mfx1h9l9c3i8bb0gvnpspzmmz3g5x3440czy4"))
+         ;; Patch to fix compiling with SBCL >= 2.1.6.
+         (patches (search-patches "sbcl-png-fix-sbcl-compatibility.patch"))))
       (build-system asdf-build-system/sbcl)
       (arguments
        `(#:phases
@@ -9465,7 +9003,7 @@ ones.")
 (define-public sbcl-salza2
   (package
     (name "sbcl-salza2")
-    (version "2.0.9")
+    (version "2.1")
     (source
      (origin
        (method git-fetch)
@@ -9474,8 +9012,12 @@ ones.")
              (commit (string-append "release-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0p38rj4gq7j5k807php7hrz7l2zyyfshv8i9yms7i8lkgg3433ki"))))
+        (base32 "1p48lxdibnps5rpyh5cmnk0vc77bmmxb32qdzfz93zadr8wwas10"))))
     (build-system asdf-build-system/sbcl)
+    (native-inputs
+     (list sbcl-chipz sbcl-flexi-streams sbcl-parachute))
+    (inputs
+     (list sbcl-trivial-gray-streams))
     (synopsis "Common Lisp library for zlib, deflate and gzip compression")
     (description
      "Salza2 is a Common Lisp library for creating compressed data in the zlib,
@@ -9507,10 +9049,9 @@ respectively.")
           (base32 "1n9aszaif3yh8prs5r8v51fbj4r5jd1a048mivd5yij3hplkm82b"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("parachute" ,sbcl-parachute)))
+       (list sbcl-parachute))
       (inputs
-       `(("golden-utils" ,sbcl-golden-utils)
-         ("specialization-store" ,sbcl-specialization-store)))
+       (list sbcl-golden-utils sbcl-specialization-store))
       (home-page "https://git.mfiano.net/mfiano/origin")
       (synopsis "Common Lisp graphics math library")
       (description
@@ -9541,9 +9082,7 @@ performance and correctness.")
           (base32 "0vyczbcwskrygrf1hgrsnk0jil8skmvf1kiaalw5jps4fjrfdkw0"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("babel" ,sbcl-babel)
-         ("chipz" ,sbcl-chipz)
-         ("iterate" ,sbcl-iterate)))
+       (list sbcl-babel sbcl-chipz sbcl-iterate))
       (synopsis "PNG decoder for Common Lisp")
       (description "This is a Common Lisp library for reading PNG images.")
       (home-page "https://github.com/Ramarren/png-read")
@@ -9612,7 +9151,7 @@ read/write Bit Map Font (BMF) into text, JSON and XML.")
         (base32 "0b3ag3jhl3z7kdls3ahdsdxsfhhw5qrizk769984f4wkxhb69rcm"))))
     (build-system asdf-build-system/sbcl)
     (inputs
-     `(("salza2" ,sbcl-salza2)))
+     (list sbcl-salza2))
     (synopsis "PNG encoder for Common Lisp")
     (description "This is a Common Lisp library for creating PNG images.")
     (home-page "https://www.xach.com/lisp/zpng/")
@@ -9639,9 +9178,9 @@ read/write Bit Map Font (BMF) into text, JSON and XML.")
         (base32 "1l5k131dchbf6cj8a8xqa731790p01p3qa1kdy2wa9dawy3ymkxr"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("lisp-unit" ,sbcl-lisp-unit)))
+     (list sbcl-lisp-unit))
     (inputs
-     `(("zpng" ,sbcl-zpng)))
+     (list sbcl-zpng))
     (synopsis "QR code encoder for Common Lisp")
     (description
      "This Common Lisp library provides function to make QR codes and to save
@@ -9684,7 +9223,7 @@ them as PNG files.")
        `(("cffi" ,sbcl-cffi)
          ("hdf5" ,hdf5-1.10)))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (arguments
        `(#:test-asd-file "hdf5-cffi.test.asd"
          ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
@@ -9746,30 +9285,31 @@ generation functions from the GSL library.")
   (sbcl-package->ecl-package sbcl-cl-randist))
 
 (define-public sbcl-float-features
-  (package
-    (name "sbcl-float-features")
-    (version "1.0.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/Shinmera/float-features")
-             (commit "d3ef60181635b0849aa28cfc238053b7ca4644b0")))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "0yj419k7n59x6rh3grwr6frgwwyria2il6f7wxpfazm8cskv4lzr"))))
-    (build-system asdf-build-system/sbcl)
-    (synopsis "Common Lisp IEEE float portability library")
-    (description
-     "Portability library for IEEE float features that are not
+  (let ((commit "c1f86aea91cfaa3aa59799162be23ef8a12b199d")
+        (revision "2"))
+    (package
+      (name "sbcl-float-features")
+      (version (git-version "1.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Shinmera/float-features")
+               (commit commit)))
+         (file-name (git-file-name "float-features" version))
+         (sha256
+          (base32 "0vqm9xhn2i4vbjrxnp4hr1l3lydjflhjykdz6cmqg2j48c5kh3g3"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Common Lisp IEEE float portability library")
+      (description
+       "Portability library for IEEE float features that are not
 covered by the Common Lisp standard.")
-    (home-page "https://github.com/Shinmera/float-features")
-    (license license:zlib)
-    (inputs
-     `(("documentation-utils" ,sbcl-documentation-utils)))
-    (arguments
-     `(#:tests? #f))))
+      (home-page "https://github.com/Shinmera/float-features")
+      (license license:zlib)
+      (inputs
+       `(("documentation-utils" ,sbcl-documentation-utils)))
+      (arguments
+       `(#:tests? #f)))))
 
 (define-public cl-float-features
   (sbcl-package->cl-source-package sbcl-float-features))
@@ -9872,7 +9412,7 @@ the elements in compound type specifier, e.g. @code{dimensions} in
        `(("trivia" ,sbcl-trivia)
          ("alexandria" ,sbcl-alexandria)))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (arguments
        `(#:test-asd-file "type-r.test.asd")))))
 
@@ -9912,7 +9452,7 @@ correctly.")
          ("introspect-environment" ,sbcl-introspect-environment)
          ("type-r" ,sbcl-type-r)))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (arguments
        `(#:asd-systems '("trivialib.type-unify")
          #:test-asd-file "trivialib.type-unify.test.asd")))))
@@ -9940,9 +9480,9 @@ correctly.")
           (base32 "0nhqamn3qgg38i6aw2pshffdwr2hzslycg8ficmn333gw0h9rf4g"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("ptester" ,sbcl-ptester)))
+       (list sbcl-ptester))
       (inputs
-       `(("cl-ppcre" ,sbcl-cl-ppcre)))
+       (list sbcl-cl-ppcre))
       (home-page "https://common-lisp.net/project/cl-unification/")
       (synopsis "Unification framework for Common Lisp")
       (description
@@ -9997,7 +9537,7 @@ code.  The main target of this macro is speed.")
          ("trivial-cltl2" ,sbcl-trivial-cltl2)
          ("type-r" ,sbcl-type-r)))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (arguments
        `(#:asd-files '("specialized-function.asd")
          #:test-asd-file "specialized-function.test.asd")))))
@@ -10037,7 +9577,7 @@ additional form that is considered as a candidate for a constant.")
          ("iterate" ,sbcl-iterate)
          ("lisp-namespace" ,sbcl-lisp-namespace)))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (arguments
        `(#:asd-files '("constantfold.asd")
          #:test-asd-file "constantfold.test.asd")))))
@@ -10078,7 +9618,7 @@ type correctness in Common Lisp.  It is based on CLtL2 extensions.")
          ("iterate" ,sbcl-iterate)
          ("type-r" ,sbcl-type-r)))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (arguments
        `(#:asd-files '("gtype.asd")
          #:test-asd-file "gtype.test.asd")))))
@@ -10118,7 +9658,7 @@ type correctness in Common Lisp.  It is based on CLtL2 extensions.")
          ;; bigger than the default one. Disable them for now.
          #:tests? #f))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("cl-randist" ,sbcl-cl-randist)
@@ -10205,8 +9745,7 @@ lightweight messaging kernel.")
           (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
          (file-name (git-file-name name version))))
       (inputs
-       `(("array-utils" ,sbcl-array-utils)
-         ("plump" ,sbcl-plump)))
+       (list sbcl-array-utils sbcl-plump))
       (build-system asdf-build-system/sbcl)
       (synopsis "DOM tree searching engine based on CSS selectors")
       (description "CLSS is a DOM traversal engine based on CSS
@@ -10237,12 +9776,9 @@ selectors.  It makes use of the Plump-DOM and is used by lQuery.")
           (base32 "0520mcpxc2d6fdm8z61arpgd2z38kan7cf06qs373n5r64rakz6w"))
          (file-name (git-file-name name version))))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
-       `(("array-utils" ,sbcl-array-utils)
-         ("form-fiddle" ,sbcl-form-fiddle)
-         ("plump" ,sbcl-plump)
-         ("clss" ,sbcl-clss)))
+       (list sbcl-array-utils sbcl-form-fiddle sbcl-plump sbcl-clss))
       (build-system asdf-build-system/sbcl)
       (synopsis "Library to allow jQuery-like HTML/DOM manipulation")
       (description "@code{lQuery} is a DOM manipulation library written in
@@ -10277,7 +9813,7 @@ approach to templating.")
           (base32 "0dg5ynx2ww94d0qfwrdrm7plkn43h64hs4iiq9mj2s1s4ixnp3lr"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("stefil" ,sbcl-stefil)))
+       (list sbcl-stefil))
       (inputs
        `(("cffi" ,sbcl-cffi)
          ("mariadb-lib" ,mariadb "lib")))
@@ -10320,7 +9856,7 @@ approach to templating.")
         (base32 "137jci4hn4vlxf48y39k0di27kc89kvxy3brmn3vl9xq56sy6mhz"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("fiveam" ,sbcl-fiveam)))
+     (list sbcl-fiveam))
     (inputs
      `(("alexandria" ,sbcl-alexandria)
        ("bordeaux-threads" ,sbcl-bordeaux-threads)
@@ -10643,10 +10179,7 @@ interfaces as well as a functional and an object oriented interface.")
     (native-inputs
      `(("rt" ,cl-rt)))
     (inputs
-     `(("mysql" ,mysql)
-       ("postgresql" ,postgresql)
-       ("sqlite" ,sqlite)
-       ("zlib" ,zlib)))
+     (list mysql postgresql sqlite zlib))
     (propagated-inputs
      `(("cffi" ,cl-cffi)
        ("md5" ,cl-md5)
@@ -10689,8 +10222,7 @@ interfaces as well as a functional and an object oriented interface.")
           (base32 "00bv1aj89q5vldmq92zp2364jq312zjq2mbd3iyz1s2b4widzhl7"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("cl-ppcre" ,sbcl-cl-ppcre)))
+       (list sbcl-alexandria sbcl-cl-ppcre))
       (synopsis "Purely functional data structure library in Common Lisp")
       (description
        "Sycamore is a fast, purely functional data structure library in Common Lisp.
@@ -10713,6 +10245,36 @@ If features:
 (define-public ecl-sycamore
   (sbcl-package->ecl-package sbcl-sycamore))
 
+(define-public sbcl-funds
+  (let ((commit "39d425818876b898c20780a678803df506df8424")
+        (revision "2"))
+    (package
+      (name "sbcl-funds")
+      (version (git-version "1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/charJe/funds")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "13y1jhvnpzrs9daz6f3z67w6h2y21ggb10j3j4vnc5p3m8i7ps4p"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Purely functional data structure library in Common Lisp")
+      (description
+       "Funds provides portable, purely functional data structures in Common
+Lisp.  It includes tree based implementations for Array, Hash, Queue, Stack, and
+Heap.")
+      (home-page "https://common-lisp.net/project/funds/")
+      (license license:asl2.0))))
+
+(define-public cl-funds
+  (sbcl-package->cl-source-package sbcl-funds))
+
+(define-public ecl-funds
+  (sbcl-package->ecl-package sbcl-funds))
+
 (define-public sbcl-trivial-package-local-nicknames
   (package
     (name "sbcl-trivial-package-local-nicknames")
@@ -10801,10 +10363,9 @@ multiple checkers, including Aspell and Hunspell.")
           (base32 "0qmk341zzcsbf8sq0w9ix3r080zg4ri6vzxym63lhdjfzwz3y8if"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cl-ppcre" ,sbcl-cl-ppcre)
-         ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
+       (list sbcl-cl-ppcre sbcl-cl-ppcre-unicode))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (synopsis
        "Convert Common Lisp strings between camelCase, PascalCase and more")
       (description
@@ -10875,10 +10436,8 @@ tie modules together in functionality, hook into each other and so on.")
           (base32 "12kjvin8hxidwkzfb7inqv5b6g5qzcssnj9wc497v2ixc56fqdz7"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("closer-mop" ,sbcl-closer-mop)
-         ("lambda-fiddle" ,sbcl-lambda-fiddle)
-         ("modularize" ,sbcl-modularize)
-         ("trivial-arguments" ,sbcl-trivial-arguments)))
+       (list sbcl-closer-mop sbcl-lambda-fiddle sbcl-modularize
+             sbcl-trivial-arguments))
       (home-page "https://shinmera.github.io/modularize-hooks/")
       (synopsis "Generic hooks and triggers extension for Modularize")
       (description
@@ -10909,10 +10468,8 @@ define and trigger hooks, which other modules can hook on to.")
           (base32 "0bjf4wy39cwf75m7vh0r7mmcchs09yz2lrbyap98hnq8blq70fhc"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("lambda-fiddle" ,sbcl-lambda-fiddle)
-         ("modularize" ,sbcl-modularize)
-         ("trivial-arguments" ,sbcl-trivial-arguments)
-         ("trivial-indent" ,sbcl-trivial-indent)))
+       (list sbcl-lambda-fiddle sbcl-modularize sbcl-trivial-arguments
+             sbcl-trivial-indent))
       (home-page "https://shinmera.github.io/modularize-interfaces/")
       (synopsis "Programmatical interfaces extension for Modularize")
       (description
@@ -10946,7 +10503,7 @@ compliance control.")
       (inputs
        `(("closer-mop" ,sbcl-closer-mop)))
       (native-inputs
-       `(("lift" ,sbcl-lift)))
+       (list sbcl-lift))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -10966,10 +10523,10 @@ MOP easier to use.")
   (sbcl-package->cl-source-package sbcl-moptilities))
 
 (define-public sbcl-osicat
-  (let ((commit "de0c18a367eedc857e1902a7319828af072a0d97"))
+  (let ((commit "eab6b8cabd71b59e894b51dc555e171683ec3387"))
     (package
       (name "sbcl-osicat")
-      (version (git-version "0.7.0" "1" commit))
+      (version (git-version "0.7.0" "2" commit))
       (home-page "http://www.common-lisp.net/project/osicat/")
       (source
        (origin
@@ -10979,14 +10536,12 @@ MOP easier to use.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "15viw5pi5sa7qq9b4n2rr3dj2jkqr180rh9z1lh8w3rgl42i2adc"))))
+          (base32 "18g137iqf86i247c9cg7d86b8k9cfq3yv272l73fsv734qpnv0g9"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("cffi" ,sbcl-cffi)
-         ("trivial-features" ,sbcl-trivial-features)))
+       (list sbcl-alexandria sbcl-cffi sbcl-trivial-features))
       (native-inputs
-       `(("rt" ,sbcl-rt)))
+       (list sbcl-rt))
       (synopsis "Operating system interface for Common Lisp")
       (description
        "Osicat is a lightweight operating system interface for Common Lisp on
@@ -11020,7 +10575,7 @@ accompaniment to the standard ANSI facilities.")
       (arguments
        `(#:asd-systems '("xembed")))
       (inputs
-       `(("sbcl-clx" ,sbcl-clx)))
+       (list sbcl-clx))
       (synopsis "CL(x) xembed protocol implementation ")
       (description "CL(x) xembed protocol implementation")
       ;; MIT License
@@ -11135,8 +10690,7 @@ Streams in ICDE’05.")
            "0jnyp2kibcf5cwi60l6grjrj8wws9chasjvsw7xzwyym2lyid46f"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("ironclad" ,sbcl-ironclad)
-         ("trivial-utf-8" ,sbcl-trivial-utf-8)))
+       (list sbcl-ironclad sbcl-trivial-utf-8))
       (home-page "https://github.com/dardoria/uuid")
       (synopsis
        "Common Lisp implementation of UUIDs according to RFC4122")
@@ -11167,7 +10721,7 @@ Streams in ICDE’05.")
            "0rmsjkgjl90gl6ssvgd60hb0d5diyhsiyypvw9hbc0ripvbmk5r5"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cl-ppcre" ,sbcl-cl-ppcre)))
+       (list sbcl-cl-ppcre))
       (home-page "https://shinmera.github.io/dissect/")
       (synopsis
        "Introspection library for the call stack and restarts")
@@ -11182,39 +10736,6 @@ and active restarts.")
 (define-public ecl-dissect
   (sbcl-package->ecl-package sbcl-dissect))
 
-(define-public sbcl-rove
-  (package
-    (name "sbcl-rove")
-    (version "0.9.6")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/fukamachi/rove")
-             (commit "f3695db08203bf26f3b861dc22ac0f4257d3ec21")))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "07ala4l2fncxf540fzxj3h5mhi9i4wqllhj0rqk8m2ljl5zbz89q"))))
-    (build-system asdf-build-system/sbcl)
-    (inputs
-     `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-       ("dissect" ,sbcl-dissect)
-       ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
-    (home-page "https://github.com/fukamachi/rove")
-    (synopsis
-     "Yet another common lisp testing library")
-    (description
-     "Rove is a unit testing framework for Common Lisp applications.
-This is intended to be a successor of Prove.")
-    (license license:bsd-3)))
-
-(define-public cl-rove
-  (sbcl-package->cl-source-package sbcl-rove))
-
-(define-public ecl-rove
-  (sbcl-package->ecl-package sbcl-rove))
-
 (define-public sbcl-exponential-backoff
   (let ((commit "8d9e8444d8b3184a524c12ce3449f91613ab714f"))
     (package
@@ -11261,15 +10782,15 @@ learn about each of the parameters.")
           (base32 "1i1crdsf2nbyxxpvjgrwmwpjxn6a4drbcmqs4q4shfi8zyap7vng"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("cl-package-locks" ,sbcl-cl-package-locks)
-         ("cl-syntax" ,sbcl-cl-syntax)
-         ("iterate" ,sbcl-iterate)
-         ("optima" ,sbcl-optima)
-         ("split-sequence" ,sbcl-split-sequence)
-         ("trivial-types" ,sbcl-trivial-types)))
+       (list sbcl-alexandria
+             sbcl-cl-package-locks
+             sbcl-cl-syntax
+             sbcl-iterate
+             sbcl-optima
+             sbcl-split-sequence
+             sbcl-trivial-types))
       (native-inputs
-       `(("prove" ,sbcl-prove)))
+       (list sbcl-prove))
       (home-page "https://github.com/fukamachi/sxql")
       (synopsis "SQL generator for Common Lisp")
       (description "SQL generator for Common Lisp.")
@@ -11281,33 +10802,6 @@ learn about each of the parameters.")
 (define-public ecl-sxql
   (sbcl-package->ecl-package sbcl-sxql))
 
-(define-public sbcl-1am
-  (let ((commit "8b1da94eca4613fd8a20bdf63f0e609e379b0ba5"))
-    (package
-      (name "sbcl-1am")
-      (version (git-version "0.0" "1" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/lmj/1am")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "05ss4nz1jb9kb796295482b62w5cj29msfj8zis33sp2rw2vmv2g"))))
-      (build-system asdf-build-system/sbcl)
-      (home-page "https://github.com/lmj/1am")
-      (synopsis "Minimal testing framework for Common Lisp")
-      (description "A minimal testing framework for Common Lisp.")
-      (license license:expat))))
-
-(define-public cl-1am
-  (sbcl-package->cl-source-package sbcl-1am))
-
-(define-public ecl-1am
-  (sbcl-package->ecl-package sbcl-1am))
-
 (define-public sbcl-cl-ascii-table
   (let ((commit "d9f5e774a56fad1b416e4dadb8f8a5b0e84094e2")
         (revision "1"))
@@ -11428,7 +10922,7 @@ weight, temperature, names of physical quantitites, etc.")
           (base32
            "1639msyagsswj85gc0wd90jgh8588j3qg5q70by9s2brf2q6w4lh"))))
       (inputs
-       `(("acclimation" ,sbcl-acclimation)))
+       (list sbcl-acclimation))
       (build-system asdf-build-system/sbcl)
       (home-page "https://github.com/robert-strandh/Clump")
       (synopsis "Collection of tree implementations for Common Lisp")
@@ -11468,8 +10962,7 @@ sequences of objects.")
            "1bcg13g7qb3dr8z50aihdjqa6miz5ivlc9wsj2csgv1km1mak2kj"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("acclimation" ,sbcl-acclimation)
-         ("clump" ,sbcl-clump)))
+       (list sbcl-acclimation sbcl-clump))
       (home-page "https://github.com/robert-strandh/cluffer")
       (synopsis "Common Lisp library providing a protocol for text-editor buffers")
       (description "Cluffer is a library for representing the buffer of a text
@@ -11502,9 +10995,9 @@ implementations of those protocols for different purposes.")
            "0284aj84xszhkhlivaigf9qj855fxad3mzmv3zfr0qzb5k0nzwrg"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("prove" ,sbcl-prove)))
+       (list sbcl-prove))
       (inputs
-       `(("alexandria" ,sbcl-alexandria)))
+       (list sbcl-alexandria))
       (synopsis "LibSVM data format reader for Common Lisp")
       (description
        "This Common Lisp library provides a fast reader for data in LibSVM
@@ -11536,7 +11029,7 @@ format.")
            "1lfq04lnxivx59nq5dd02glyqsqzf3vdn4s9b8wnaln5fs8g2ph9"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("prove" ,sbcl-prove)))
+       (list sbcl-prove))
       (inputs
        `(("cl-libsvm-format" ,sbcl-cl-libsvm-format)
          ("cl-store" ,sbcl-cl-store)))
@@ -11817,7 +11310,7 @@ non-RLE encoded forms of the files.")
           (base32 "072v417vmcnvmyh8ddq9vmwwrizm7zwz9dpzi14qy9nsw8q649zw"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)))
+       (list sbcl-alexandria))
       (home-page "https://github.com/gigamonkey/monkeylib-binary-data")
       (synopsis "Common Lisp library for reading and writing binary data")
       (description
@@ -11904,7 +11397,7 @@ wrappers of deflate streams.  It currently does not handle compression.")
           (base32 "0f8darhairgxnb5bzqcny7nh7ss3471bdzix5rzcyiwdbr5kymjl"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("cffi" ,sbcl-cffi)
@@ -11956,7 +11449,7 @@ with other libraries which may also use Freetype.")
           (base32 "0458bllabcdjghfrqx6aki49c9qmvfmkk8jl75cfpi7q0i12kh95"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)))
+       (list sbcl-alexandria))
       (home-page "https://github.com/slyrus/opticl-core")
       (synopsis "Core classes and pixel access macros for Opticl")
       (description
@@ -11987,14 +11480,14 @@ macros for the Opticl image processing library.")
           (base32 "0qsn9hpd8j2kp43dk05j8dczz9zppdff5rrclbp45n3ksk9inw8i"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
-      (inputs
-       `(("cl-jpeg" ,sbcl-cl-jpeg)
-         ("com.gigamonkeys.binary-data" ,sbcl-com.gigamonkeys.binary-data)
-         ("deflate" ,sbcl-deflate)
-         ("flexi-streams" ,sbcl-flexi-streams)
-         ("ieee-floats" ,sbcl-ieee-floats)
-         ("opticl-core" ,sbcl-opticl-core)))
+       (list sbcl-fiveam))
+      (inputs
+       (list sbcl-cl-jpeg
+             sbcl-com.gigamonkeys.binary-data
+             sbcl-deflate
+             sbcl-flexi-streams
+             sbcl-ieee-floats
+             sbcl-opticl-core))
       (home-page "https://github.com/slyrus/retrospectiff")
       (synopsis "Common Lisp library for TIFF images")
       (description
@@ -12025,13 +11518,10 @@ in the TIFF (Tagged Image File Format) format.")
           (base32 "0qd0xp20i1pcfn12kkapv9pirb6hd4ns7kz4zf1mmjwykpsln96q"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("cffi" ,sbcl-cffi)
-         ("parachute" ,sbcl-parachute)
-         ("trivial-features" ,sbcl-trivial-features)))
+       (list sbcl-alexandria sbcl-cffi sbcl-parachute
+             sbcl-trivial-features))
       (inputs
-       `(("cffi" ,sbcl-cffi)
-         ("documentation-utils" ,sbcl-documentation-utils)))
+       (list sbcl-cffi sbcl-documentation-utils))
       (home-page "https://shinmera.github.io/mmap/")
       (synopsis "File memory mapping for Common Lisp")
       (description
@@ -12065,12 +11555,12 @@ than a few Kb.")
           (base32 "0kvvlvf50jhhw1s510f3clpr1a68632bq6d698yxcrx722igcrg4"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("babel" ,sbcl-babel)
-         ("cffi" ,sbcl-cffi)
-         ("mmap" ,sbcl-mmap)
-         ("nibbles" ,sbcl-nibbles)
-         ("trivial-features" ,sbcl-trivial-features)))
+       (list sbcl-alexandria
+             sbcl-babel
+             sbcl-cffi
+             sbcl-mmap
+             sbcl-nibbles
+             sbcl-trivial-features))
       (home-page "https://github.com/3b/3bz")
       (synopsis "Deflate decompression for Common Lisp")
       (description
@@ -12172,7 +11662,7 @@ both from files on disk, or streams in memory.")
           (base32 "03rirnnhhisjbimlmpi725h1d3x0cfv00r57988am873dyzawmm1"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("cl-jpeg" ,sbcl-cl-jpeg)
@@ -12214,8 +11704,7 @@ and saving 2-dimensional pixel-based images.")
           (base32 "1xjly8i62z72hfhlnz5kjd9i8xhrwckc7avyizxvhih67pkjmsx0"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)
-         ("pkg-config" ,pkg-config)))
+       (list sbcl-fiveam pkg-config))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("babel" ,sbcl-babel)
@@ -12301,10 +11790,9 @@ specification}, a toolkit for writing GUIs in Common Lisp.")
           (base32 "1xwwlhik1la4fp984qnx2dqq24v012qv4x0y49sngfpwg7n0ya7y"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("lisp-unit2" ,sbcl-lisp-unit2)))
+       (list sbcl-lisp-unit2))
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("cl-ppcre" ,sbcl-cl-ppcre)))
+       (list sbcl-alexandria sbcl-cl-ppcre))
       (home-page "https://github.com/AccelerationNet/cl-inflector")
       (synopsis "Library to pluralize/singularize English and Portuguese words")
       (description
@@ -12336,13 +11824,13 @@ Inflector module.")
           (base32 "1wjdnf4vr9z7lcfc49kl43g6l2i23q9n81siy494k17d766cdvqa"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("babel" ,sbcl-babel)
-         ("cl-ppcre" ,sbcl-cl-ppcre)
-         ("ieee-floats" ,sbcl-ieee-floats)
-         ("local-time" ,sbcl-local-time)
-         ("md5" ,sbcl-md5)
-         ("split-sequence" ,sbcl-split-sequence)))
+       (list sbcl-alexandria
+             sbcl-babel
+             sbcl-cl-ppcre
+             sbcl-ieee-floats
+             sbcl-local-time
+             sbcl-md5
+             sbcl-split-sequence))
       (home-page "https://github.com/dimitri/cl-ixf")
       (synopsis "Parse IBM IXF file format")
       (description
@@ -12371,10 +11859,9 @@ Inflector module.")
         (base32 "1dir0s70ca3hagxv9x15zq4p4ajgl7jrcgqsza2n2y7iqbxh0dwi"))))
     (build-system asdf-build-system/sbcl)
     (inputs
-     `(("metabang-bind" ,sbcl-metabang-bind)
-       ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+     (list sbcl-metabang-bind sbcl-trivial-gray-streams))
     (native-inputs
-     `(("fiveam" ,sbcl-fiveam)))
+     (list sbcl-fiveam))
     (home-page "https://github.com/chaitanyagupta/qbase64")
     (synopsis "Base64 encoder and decoder for Common Lisp")
     (description "@code{qbase64} provides a fast and flexible base64 encoder
@@ -12432,8 +11919,7 @@ LispWorks library that are used in software such as ContextL.")
           (base32 "0gk1izx6l6g48nypmnm9r6mzjx0jixqjj2kc6klf8a88rr5xd226"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("closer-mop" ,sbcl-closer-mop)
-         ("lw-compat" ,sbcl-lw-compat)))
+       (list sbcl-closer-mop sbcl-lw-compat))
       (home-page "https://github.com/pcostanza/contextl")
       (synopsis "Context-oriented programming for Common Lisp")
       (description "ContextL is a CLOS extension for Context-Oriented
@@ -12467,7 +11953,7 @@ overview article about COP which also contains some ContextL examples:
           (base32 "06zkdw3scnaw0d4nmsgkv7pi7sw00dikdgfgsqmbqfbz2yrsdabk"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
+       (list sbcl-hu.dwim.asdf))
       (home-page "http://dwim.hu/project/hu.dwim.common-lisp")
       (synopsis "Redefine some standard Common Lisp names")
       (description "This library is a redefinition of the standard Common Lisp
@@ -12496,14 +11982,14 @@ package that includes a number of renames and shadows. ")
         (base32 "12l1rr6w9m99w0b5gc6hv58ainjfhbc588kz6vwshn4gqsxyzbhp"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
+     (list sbcl-hu.dwim.asdf))
     (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("anaphora" ,sbcl-anaphora)
-       ("closer-mop" ,sbcl-closer-mop)
-       ("hu.dwim.common-lisp" ,sbcl-hu.dwim.common-lisp)
-       ("iterate" ,sbcl-iterate)
-       ("metabang-bind" ,sbcl-metabang-bind)))
+     (list sbcl-alexandria
+           sbcl-anaphora
+           sbcl-closer-mop
+           sbcl-hu.dwim.common-lisp
+           sbcl-iterate
+           sbcl-metabang-bind))
     (home-page "http://dwim.hu/")
     (synopsis "Common Lisp library shared by other hu.dwim systems")
     (description "This package contains a support library for other
@@ -12534,11 +12020,11 @@ hu.dwim systems.")
           (base32 "19ipds9r71qymfdp4izg0l7zmvinp06adr8rdalhaq7v7mzpg83z"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `( ;; These 2 inputs are only needed tests which are disabled, see below.
-         ;; ("hu.dwim.common" ,sbcl-hu.dwim.common)
-         ;; Need cl- package for the :hu.dwim.stefil+hu.dwim.def+swank system.
-         ;; ("hu.dwim.stefil" ,cl-hu.dwim.stefil)
-         ("hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
+       (list ;; These 2 inputs are only needed tests which are disabled, see below.
+             ;; ("hu.dwim.common" ,sbcl-hu.dwim.common)
+             ;; Need cl- package for the :hu.dwim.stefil+hu.dwim.def+swank system.
+             ;; ("hu.dwim.stefil" ,cl-hu.dwim.stefil)
+             sbcl-hu.dwim.asdf))
       (arguments
        `(#:test-asd-file "hu.dwim.defclass-star.test.asd"
          ;; Tests require a circular dependency: hu.dwim.stefil -> hu.dwim.def
@@ -12660,7 +12146,7 @@ can separate configuration system from an implementation.")
           (base32 "1a9kivpy9j2grf1c6gdjk7fwcdlvvq67p3m98jyfhiyzj7axjymd"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("prove" ,sbcl-prove)))
+       (list sbcl-prove))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("cl-package-locks" ,sbcl-cl-package-locks)
@@ -12737,7 +12223,7 @@ like Ruby's ActiveRecord.
          ("cl-interpol" ,sbcl-cl-interpol)
          ("split-sequence" ,sbcl-split-sequence)))
       (native-inputs
-       `(("prove" ,sbcl-prove)))
+       (list sbcl-prove))
       (arguments
        ;; Tests passes but the phase fails with
        ;; Component KEBAB-ASD::KEBAB-TEST not found, required by #<SYSTEM "kebab">.
@@ -12787,7 +12273,7 @@ camelCase, snake_case, kebab-case (lisp-case).")
          ("kebab" ,sbcl-kebab)
          ("log4cl" ,sbcl-log4cl)))
       (native-inputs
-       `(("prove" ,sbcl-prove)))
+       (list sbcl-prove))
       (arguments
        ;; TODO: Tests fail with
        ;; While evaluating the form starting at line 22, column 0
@@ -12825,8 +12311,7 @@ camelCase, snake_case, kebab-case (lisp-case).")
           (base32 "0k2i3d4k9cpci235mwfm0c5a4yqfkijr716bjv7cdlpzx88lazm9"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("babel" ,sbcl-babel)))
+       (list sbcl-alexandria sbcl-babel))
       (synopsis "Percent Encoding (aka URL Encoding) Common Lisp library")
       (description "This library provides trivial percent encoding and
 decoding functions for URLs.")
@@ -12856,7 +12341,7 @@ decoding functions for URLs.")
           (base32 "1xcm31n7afh5316lwz8iqbjx7kn5lw0l11arg8mhdmkx42aj4gkk"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cl-ppcre" ,sbcl-cl-ppcre)))
+       (list sbcl-cl-ppcre))
       (synopsis "Templating system for Common Lisp")
       (description "A mixture of features from eRuby and HTML::Template.  You
 could name it \"Yet Another LSP\" (LispServer Pages) but it's a bit more than
@@ -13020,7 +12505,7 @@ processing.")
          (sha256
           (base32 "1lmvfml2ldbb1wkhm25jqqk2bhwsz52hhcgljbnzj1xr8xhc3anp"))))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (build-system asdf-build-system/sbcl)
       (home-page "https://github.com/rpgoldman/xmls")
       (synopsis "Non-validating XML parser for Common Lisp")
@@ -13042,25 +12527,28 @@ XML to Lisp structures or s-expressions and back.")
          ((#:tests? _ #f) #f))))))
 
 (define-public sbcl-geco
-  (package
-    (name "sbcl-geco")
-    (version "2.1.1")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/gpwwjr/GECO")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name "geco" version))
-       (sha256
-        (base32 "1rc8a4mk40hjx5qy980hjylv6xxqdbq38hg8c4w30y93abfd519s"))))
-    (build-system asdf-build-system/sbcl)
-    (home-page "http://hiwaay.net/~gpw/geco/geco.html")
-    (synopsis "Genetic algorithm toolkit for Common Lisp")
-    (description
-     "GECO (Genetic Evolution through Combination of Objects) is an extensible,
-object-oriented framework for prototyping genetic algorithms in Common Lisp.")
-    (license license:lgpl2.1+)))
+  (let ((commit "db13c9384491092975f46f6a837ccdc04681a93a")
+        (revision "1"))
+    (package
+      (name "sbcl-geco")
+      (version (git-version "2.1.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/gpwwjr/GECO")
+               (commit commit)))
+         (file-name (git-file-name "cl-geco" version))
+         (sha256
+          (base32 "1ncaf9ab7jz59zmga0p97blsjjb1m6db0qih57wipfhqdb5ylz17"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/gpwwjr/GECO")
+      (synopsis "Genetic algorithm toolkit for Common Lisp")
+      (description
+       "GECO (Genetic Evolution through Combination of Objects) is an
+extensible, object-oriented framework for prototyping genetic algorithms in
+Common Lisp.")
+      (license license:lgpl2.0+))))
 
 (define-public cl-geco
   (sbcl-package->cl-source-package sbcl-geco))
@@ -13084,9 +12572,9 @@ object-oriented framework for prototyping genetic algorithms in Common Lisp.")
           (base32 "1b2yl6lf6vis17y4n5s505p7ica96bdafcl6vydy1hg50fy33nfr"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("ppcre" ,sbcl-cl-ppcre)))
+       (list sbcl-cl-ppcre))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (home-page "https://github.com/BnMcGn/html-entities/")
       (synopsis "Encode and decode entities in HTML with Common Lisp")
       (description "Html-entities is a Common Lisp library that lets you
@@ -13115,16 +12603,16 @@ encode and decode entities in HTML.")
           (base32 "16k19zjkhh7r64vjq371k5jwjs7cdfjz83flh561n4h4v1z89fps"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("iterate" ,sbcl-iterate)
-         ("alexandria" ,sbcl-alexandria)
-         ("anaphora" ,sbcl-anaphora)
-         ("ppcre" ,sbcl-cl-ppcre)
-         ("drakma" ,sbcl-drakma)
-         ("html-entities" ,sbcl-html-entities)
-         ("yason" ,sbcl-yason)
-         ("flexi-streams" ,sbcl-flexi-streams)
-         ("do-urlencode" ,sbcl-do-urlencode)))
+       (list sbcl-bordeaux-threads
+             sbcl-iterate
+             sbcl-alexandria
+             sbcl-anaphora
+             sbcl-cl-ppcre
+             sbcl-drakma
+             sbcl-html-entities
+             sbcl-yason
+             sbcl-flexi-streams
+             sbcl-do-urlencode))
       (home-page "https://github.com/tkych/quicksearch/")
       (synopsis "Search Engine Interface for Common Lisp packages")
       (description "Quicksearch is a search-engine-interface for Common Lisp.
@@ -13159,8 +12647,7 @@ function @code{?} is abbreviation wrapper for @code{quicksearch}.")
           (base32 "1xpnyzksk2xld64b6lw6rw0gn5zxlb77jwna59sd4yl7kxhxlfpf"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("trivia" ,sbcl-trivia)))
+       (list sbcl-alexandria sbcl-trivia))
       (home-page "https://github.com/alex-gutev/agutil/")
       (synopsis "Collection of Common Lisp utilities")
       (description "A collection of Common Lisp utility functions and macros
@@ -13222,11 +12709,9 @@ directly.")
           (base32 "1si68n1j6rpns8jw6ksqjpb937pdl30v7xza8rld7j5vh0jhy2yi"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("closer-mop" ,sbcl-closer-mop)
-         ("symbol-munger" ,sbcl-symbol-munger)))
+       (list sbcl-alexandria sbcl-closer-mop sbcl-symbol-munger))
       (native-inputs
-       `(("lisp-unit2" ,sbcl-lisp-unit2)))
+       (list sbcl-lisp-unit2))
       (home-page "https://github.com/AccelerationNet/collectors/")
       (synopsis "Common lisp library providing collector macros")
       (description "A small collection of common lisp macros to make
@@ -13254,12 +12739,9 @@ collecting values easier.")
         (base32 "10jxj043d2dw5vc0i0lz0lsa4qszn8him5is8jdhl4nsyfcazmky"))))
     (build-system asdf-build-system/sbcl)
     (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("anaphora" ,sbcl-anaphora)
-       ("collectors" ,sbcl-collectors)
-       ("optima" ,sbcl-optima)))
+     (list sbcl-alexandria sbcl-anaphora sbcl-collectors sbcl-optima))
     (native-inputs
-     `(("prove" ,sbcl-prove)))
+     (list sbcl-prove))
     (home-page "https://github.com/alex-gutev/cl-environments")
     (synopsis "Implements the Common Lisp standard environment access API")
     (description
@@ -13291,16 +12773,16 @@ environment access API.")
         (base32 "1602vx6ybp0n8mbrrp6q8397fkkyvhrqpahc302pjdb57qildajz"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("fiveam" ,sbcl-fiveam)))
+     (list sbcl-fiveam))
     (inputs
-     `(("agutil" ,sbcl-agutil)
-       ("alexandria" ,sbcl-alexandria)
-       ("anaphora" ,sbcl-anaphora)
-       ("arrows" ,sbcl-arrows)
-       ("cl-environments" ,sbcl-cl-environments)
-       ("closer-mop" ,sbcl-closer-mop)
-       ("iterate" ,sbcl-iterate)
-       ("optima" ,sbcl-optima)))
+     (list sbcl-agutil
+           sbcl-alexandria
+           sbcl-anaphora
+           sbcl-arrows
+           sbcl-cl-environments
+           sbcl-closer-mop
+           sbcl-iterate
+           sbcl-optima))
     (home-page "https://github.com/alex-gutev/static-dispatch")
     (synopsis "Static generic function dispatch for Common Lisp")
     (description "Static dispatch is a Common Lisp library, inspired by
@@ -13339,14 +12821,14 @@ and comparison operations when used heavily in numeric code.")
          "17kdjqmm2ib347b8lqm3k4kca2j53kr0azb6h7m0v5i157ibndsw"))))
     (build-system asdf-build-system/sbcl)
     (inputs
-     `(("agutil" ,sbcl-agutil)
-       ("anaphora" ,sbcl-anaphora)
-       ("arrows" ,sbcl-arrows)
-       ("cl-environments" ,sbcl-cl-environments)
-       ("introspect-environment" ,sbcl-introspect-environment)
-       ("optima" ,sbcl-optima)))
+     (list sbcl-agutil
+           sbcl-anaphora
+           sbcl-arrows
+           sbcl-cl-environments
+           sbcl-introspect-environment
+           sbcl-optima))
     (native-inputs
-     `(("fiveam" ,sbcl-fiveam)))
+     (list sbcl-fiveam))
     (home-page "https://github.com/alex-gutev/cl-form-types")
     (synopsis "determining the types of Common Lisp forms")
     (description "This library provides functions for determining the value
@@ -13391,7 +12873,7 @@ Macros and symbol-macros are fully expanded and all special forms, except
        ("static-dispatch" ,sbcl-static-dispatch)
        ("trivia" ,sbcl-trivia)))
     (native-inputs
-     `(("prove" ,sbcl-prove)))
+     (list sbcl-prove))
     (arguments
      ;; Tests fail because SBCL head size is not high enough.
      ;; https://github.com/alex-gutev/generic-cl/issues/6
@@ -13428,7 +12910,7 @@ objects, which is extensible to user-defined types.")
           (base32 "0lzljvf343xb6mlh6lni2i27hpm5qd376522mk6hr2pa20vd6rdq"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)))
+       (list sbcl-alexandria))
       (home-page "https://github.com/rpav/defpackage-plus")
       (synopsis "Extensible @code{DEFPACKAGE} variant with version support")
       (description
@@ -13501,10 +12983,8 @@ applications with foreign library dependencies that run some kind of GUI.")
           (base32 "062cnb2dwli6pw3zvv46jfxyxdzcbzwsck5pa6nw03qf1j1hyg3k"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("closer-mop" ,sbcl-closer-mop)
-         ("form-fiddle" ,sbcl-form-fiddle)
-         ("lambda-fiddle" ,sbcl-lambda-fiddle)))
+       (list sbcl-bordeaux-threads sbcl-closer-mop sbcl-form-fiddle
+             sbcl-lambda-fiddle))
       (home-page "https://github.com/Shinmera/deeds")
       (synopsis "Extensible Event Delivery System")
       (description
@@ -13592,13 +13072,13 @@ package.")
           (base32 "146yv0hc4hmk72562ssj2d41143pp84dcbd1h7f4nx1c7hf2bb0d"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("cffi" ,sbcl-cffi)
-         ("cl-json" ,sbcl-cl-json)
-         ("cl-ppcre" ,sbcl-cl-ppcre)
-         ("claw-support" ,sbcl-claw-support)
-         ("local-time" ,sbcl-local-time)
-         ("trivial-features" ,sbcl-trivial-features)))
+       (list sbcl-alexandria
+             sbcl-cffi
+             sbcl-cl-json
+             sbcl-cl-ppcre
+             sbcl-claw-support
+             sbcl-local-time
+             sbcl-trivial-features))
       (home-page "https://github.com/borodust/claw")
       (synopsis "Autowrapper for Common Lisp")
       (description
@@ -13630,9 +13110,7 @@ and lean bindings to C libraries.")
           (base32 "01df3kyf2qs3czi332dnz2s35x2j0fq46vgmsw7wjrrvnqc22mk5"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("cffi" ,sbcl-cffi)
-         ("claw" ,sbcl-claw)))
+       (list sbcl-alexandria sbcl-cffi sbcl-claw))
       (home-page "https://github.com/borodust/claw-utils")
       (synopsis "Utilities for easier autowrapping")
       (description
@@ -13663,10 +13141,9 @@ autowrapping with @code{claw}.")
           (base32 "0ip49hhq32w80qsc7jmspyda5r2rsszvw0mk2r3341cld78sz9ya"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("clunit2" ,sbcl-clunit2)))
+       (list sbcl-alexandria sbcl-clunit2))
       (inputs
-       `(("let-plus" ,sbcl-let-plus)))
+       (list sbcl-let-plus))
       (synopsis "Simple array operations library for Common Lisp")
       (description
        "This library is a collection of functions and macros for manipulating
@@ -13699,17 +13176,17 @@ Common Lisp arrays and performing numerical calculations with them.")
          (patches (search-patches "sbcl-clml-fix-types.patch"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandia" ,sbcl-alexandria)
-         ("array-operations" ,sbcl-array-operations)
-         ("cl-fad" ,sbcl-cl-fad)
-         ("cl-ppcre" ,sbcl-cl-ppcre)
-         ("drakma" ,sbcl-drakma)
-         ("introspect-environment" ,sbcl-introspect-environment)
-         ("iterate" ,sbcl-iterate)
-         ("lparallel" ,sbcl-lparallel)
-         ("parse-number" ,sbcl-parse-number)
-         ("split-sequence" ,sbcl-split-sequence)
-         ("trivial-garbage" ,sbcl-trivial-garbage)))
+       (list sbcl-alexandria
+             sbcl-array-operations
+             sbcl-cl-fad
+             sbcl-cl-ppcre
+             sbcl-drakma
+             sbcl-introspect-environment
+             sbcl-iterate
+             sbcl-lparallel
+             sbcl-parse-number
+             sbcl-split-sequence
+             sbcl-trivial-garbage))
       (synopsis "Common Lisp machine learning library")
       (description
        "CLML (Common Lisp Machine Learning) is a high performance and large
@@ -13737,7 +13214,7 @@ scale statistical machine learning package")
           (base32 "1rvyh0srgd81kvbzmq4ysd9y6c0qdwh23naqxc9asw1vh7fq08x1"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (synopsis
        "Convert coordinates between latitude/longitude and UTM or UPS")
       (description
@@ -13770,9 +13247,9 @@ Polar Stereographic).")
           (base32 "0ckvn4hg3wwivzavhfashb6fap4a1q10l8krhbng8bdb54ac10sz"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
-       `(("utm-ups" ,sbcl-utm-ups)))
+       (list sbcl-utm-ups))
       (synopsis
        "Convert coordinates between latitude/longitude and MGRS")
       (description
@@ -13804,7 +13281,7 @@ latitude/longitude and MGRS.")
           (base32 "02p990zprhjvifmsfk8yh3frvz6xyw26ikzxvzglqdixbal36nr3"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (synopsis
        "Convert coordinates between latitude/longitude and Maidenhead")
       (description
@@ -13836,7 +13313,7 @@ latitude/longitude and Maidenhead locator system.")
           (base32 "1lnfhp6z6kc8l605zp4siyjiw74y1h4bdq3jfizi084v505wxhgr"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (synopsis
        "Convert coordinates between latitude/longitude and Open Location Code")
       (description
@@ -13894,7 +13371,7 @@ latitude/longitude and Open Location Code.")
           (base32 "1ph3xjqilvinvgr9q3w47zxqyz1sqnq030nlx7kgkkv8j3bnqk7a"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("sbcl-regex" ,sbcl-regex)))
+       (list sbcl-regex))
       (home-page "https://github.com/sharplispers/clawk")
       (synopsis "Common Lisp AWK")
       (description
@@ -13907,41 +13384,6 @@ latitude/longitude and Open Location Code.")
 (define-public ecl-clawk
   (sbcl-package->ecl-package sbcl-clawk))
 
-(define-public sbcl-check-it
-  (let ((commit "b79c9103665be3976915b56b570038f03486e62f"))
-    (package
-      (name "sbcl-check-it")
-      (version (git-version "0.1.0" "1" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/DalekBaldwin/check-it/")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "1kbjwpniffdpv003igmlz5r0vy65m7wpfnhg54fhwirp1227hgg7"))))
-      (build-system asdf-build-system/sbcl)
-      (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("closer-mop" ,sbcl-closer-mop)
-         ("optima" ,sbcl-optima)))
-      (native-inputs
-       `(("stefil" ,sbcl-stefil)))
-      (home-page "https://github.com/arclanguage/Clamp")
-      (synopsis "Randomized specification-based testing for Common Lisp")
-      (description
-       "This is a randomized property-based testing library for Common Lisp.
-Rather than being a full-fledged general test framework in its own right, it's
-designed to embed randomized tests in whatever framework you like.")
-      (license license:llgpl))))
-
-(define-public cl-check-it
-  (sbcl-package->cl-source-package sbcl-check-it))
-
-(define-public ecl-check-it
-  (sbcl-package->ecl-package sbcl-check-it))
-
 (define-public sbcl-clamp
   (let ((commit "02b8f3953e5753cc61a719807c82f3795cd28fe1"))
     (package
@@ -14006,7 +13448,7 @@ not so easy to copy (ssyntax, argument destructuring, etc.).")
           (base32 "08mpkl5ij5sjfsyn8pq2kvsvpvyvr7ha1r8g1224fa667b8k2q85"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("lift" ,sbcl-lift)))
+       (list sbcl-lift))
       (home-page "http://common-lisp.net/project/trivial-shell/")
       (synopsis "Common Lisp access to the shell")
       (description
@@ -14036,8 +13478,7 @@ It's independent of the implementation and operating system.")
           (base32 "012ry02djnqyvvs61wbbqj3saz621w2l9gczrywdxhi5p4ycx318"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("trivial-shell" ,sbcl-trivial-shell)
-         ("named-readtables" ,sbcl-named-readtables)))
+       (list sbcl-trivial-shell sbcl-named-readtables))
       (home-page "https://github.com/Neronus/Clesh")
       (synopsis "Embed shell code in Common Lisp")
       (description
@@ -14069,8 +13510,7 @@ backtick.  It has been forked from SHELISP.")
           (base32 "04wnxcgk40x8p0gxnz9arv1a5wasdqrdxa8c4p5v7r2mycfps6jj"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("trivial-timeout" ,sbcl-trivial-timeout)))
+       (list sbcl-bordeaux-threads sbcl-trivial-timeout))
       (home-page "https://github.com/rpav/trivial-channels")
       (synopsis "Common Lisp simple thread-safe channels with timeout")
       (description
@@ -14099,7 +13539,7 @@ backtick.  It has been forked from SHELISP.")
           (base32 "06f46zr3gp3wlm2kgxna24qd2gpr1v89x9fynh1x5vrw6c6hqjcv"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("drakma" ,sbcl-drakma)))
+       (list sbcl-drakma))
       (home-page "https://github.com/eudoxia0/trivial-download/")
       (synopsis "Download files from Common Lisp")
       (description
@@ -14128,8 +13568,7 @@ from Common Lisp.  It provides a progress bar.")
         (base32 "0lkraw0dwh4is4x5sp5rjrw6f93m0gr9849abrbi12s25ws7jbw4"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
-     `(("osicat" ,sbcl-osicat)
-       ("prove" ,sbcl-prove)))
+     (list sbcl-osicat sbcl-prove))
     (home-page "https://github.com/cbeo/gtwiwtg/")
     (synopsis "Naive generators for Common Lisp")
     (description
@@ -14160,8 +13599,7 @@ and understandable.")
           (base32 "1ldb4qhmx431n3lsq71ynwb9ybazbfqd55icjbhi06mj52ngndir"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("documentation-utils-extensions" ,sbcl-documentation-utils-extensions)))
+       (list sbcl-bordeaux-threads sbcl-documentation-utils-extensions))
       (home-page "https://github.com/sirherrbatka/cl-progress-bar/")
       (synopsis "Progress bars in Common Lisp")
       (description
@@ -14222,12 +13660,9 @@ whichever package you switch to.")
           (base32 "0n369n6b7y1m49biccnnr7svymjdsk8sksrkqrn3mj21vgv7s7bg"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("cffi-grovel" ,sbcl-cffi)
-         ("rove" ,sbcl-rove)
-         ("cl-ppcre" ,sbcl-cl-ppcre)
-         ("bordeaux-threads" ,sbcl-bordeaux-threads)))
+       (list sbcl-cffi sbcl-rove sbcl-cl-ppcre sbcl-bordeaux-threads))
       (inputs
-       `(("cffi" ,sbcl-cffi)))
+       (list sbcl-cffi))
       (home-page "https://github.com/fukamachi/supertrace")
       (synopsis "Improved Common Lisp tracing for debugging and profiling")
       (description
@@ -14257,7 +13692,7 @@ for debugging and profiling real world applications.")
           (base32 "0fbzqbpm2ixz85555krl36kbbbjyn699vdj6k383khi3g9y629fa"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)))
+       (list sbcl-alexandria))
       (home-page "http://shinmera.github.io/trivial-benchmark/")
       (synopsis "Easy to use benchmarking system for Common Lisp")
       (description
@@ -14290,9 +13725,7 @@ even by adding additional statistical @code{compute}ations. ")
           (base32 "17kai1anbkk5dj5sbrsin2fc019cmcbglb900db60v38myj0y0wf"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cl-ppcre" ,sbcl-cl-ppcre)
-         ("parenscript" ,sbcl-parenscript)
-         ("named-readtables" ,sbcl-named-readtables)))
+       (list sbcl-cl-ppcre sbcl-parenscript sbcl-named-readtables))
       (home-page "https://github.com/ahungry/glyphs/")
       (synopsis "Reduce Common Lisp verbosity")
       (description
@@ -14322,12 +13755,12 @@ Lisp, inspired by BODOL (@url{https://github.com/bodil/BODOL}).")
       (base32 "186v95wgsj2hkxdw2jl9x1w4fddjclp7arp0rrd9vf5ly8h8sbf3"))))
    (build-system asdf-build-system/sbcl)
    (inputs
-    `(("drakma" ,sbcl-drakma)
-      ("alexandria" ,sbcl-alexandria)
-      ("cxml" ,sbcl-cxml)
-      ("ironclad" ,sbcl-ironclad)
-      ("puri" ,sbcl-puri)
-      ("cl-base64" ,sbcl-cl-base64)))
+    (list sbcl-drakma
+          sbcl-alexandria
+          sbcl-cxml
+          sbcl-ironclad
+          sbcl-puri
+          sbcl-cl-base64))
    (synopsis "Work with Amazon S3 and Amazon CloudFront from Common Lisp")
    (description "This is ZS3, a library for working with Amazon's Simple Storage
 Service (S3) and CloudFront service from Common Lisp.")
@@ -14398,7 +13831,7 @@ library are feedforward neural networks trained using backpropagation.")
           (base32 "1774jy8hzbi6nih3sq6vchk66f7g8w86dwgpbvljyfzcnkcaz6ql"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
        `(("cffi" ,sbcl-cffi)
          ("cl-octet-streams" ,sbcl-cl-octet-streams)
@@ -14546,7 +13979,7 @@ bringing dynamism to class definition.")
           (base32 "0p6ysa92fk34bhxpw7bycbfgw150fv11z9x8jr9xb4lh8cm2hvp6"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("alexandria" ,sbcl-alexandria)))
+       (list sbcl-alexandria))
       (inputs
        `(("cffi" ,sbcl-cffi)
          ("ppcre" ,sbcl-cl-ppcre)
@@ -14593,10 +14026,7 @@ determination library using @emph{magic} numbers.")
           (base32 "16ag48sswgimr1fzr582vhym4s03idpd4lkydw5s58lv80ibpim8"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("serapeum" ,sbcl-serapeum)
-         ("ppcre" ,sbcl-cl-ppcre)
-         ("unicode" ,sbcl-cl-unicode)))
+       (list sbcl-alexandria sbcl-serapeum sbcl-cl-ppcre sbcl-cl-unicode))
       (home-page "https://github.com/ruricolist/cl-shlex")
       (synopsis "Common Lisp lexical analyzer for shell-like syntaxes")
       (description
@@ -14612,10 +14042,10 @@ standard library.")
   (sbcl-package->cl-source-package sbcl-shlex))
 
 (define-public sbcl-cmd
-  (let ((commit "8ace7fb45f2ecf0eefae28583ee36c941d142179"))
+  (let ((commit "b0b79adf1214dbec082f3dd2274a72a0ff58efd7"))
     (package
       (name "sbcl-cmd")
-      (version (git-version "0.0.1" "4" commit))
+      (version (git-version "0.0.1" "5" commit))
       (source
        (origin
          (method git-fetch)
@@ -14624,7 +14054,7 @@ standard library.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "1da8sa0fsvsdivnx2s9m6jbb7yszrnkqqcxrn1sszp7k6iwnnkgi"))))
+          (base32 "0kk29vydmi1fyhpbwy3mrsg3bhvx0478r6r7jcsfkr3ci2h8w8a1"))))
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("alexandria" ,sbcl-alexandria)
@@ -14683,15 +14113,14 @@ be usable from multi-threaded programs.")
           (base32 "1c46q9lmzqv14z80d3fwdawgn3pn4922x31fyqvsvbcjm4hd16fb"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("cffi" ,sbcl-cffi)
-         ("osicat" ,sbcl-osicat)
-         ("ppcre" ,sbcl-cl-ppcre)
-         ("split-sequence" ,sbcl-split-sequence)
-         ("trivial-features" ,sbcl-trivial-features)))
+       (list sbcl-alexandria
+             sbcl-cffi
+             sbcl-osicat
+             sbcl-cl-ppcre
+             sbcl-split-sequence
+             sbcl-trivial-features))
       (native-inputs
-       `(("cl-fad" ,sbcl-cl-fad)
-         ("prove" ,sbcl-prove)))
+       (list sbcl-cl-fad sbcl-prove))
       (home-page "https://github.com/fourier/ppath")
       (synopsis "Common Lisp's implementation of the Python's os.path module")
       (description
@@ -14726,9 +14155,9 @@ corresponding OS system functions are called.")
           (base32 "0v6h8lk17iqv1qkxgqjyzn8gi6v0hvq2vmfbb01md3zjvjqxn6lr"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("named-readtables" ,sbcl-named-readtables)))
+       (list sbcl-named-readtables))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (home-page "https://github.com/williamyaoh/trivial-escapes")
       (synopsis "C-style escape directives for Common Lisp")
       (description
@@ -14760,12 +14189,10 @@ It provides four readtables.  The default one lets you write strings like this:
           (base32 "0ha36bhg474vr76vfhr13szc8cfdj1ickg92k1icz791bqaqg67p"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("command-line-arguments" ,sbcl-command-line-arguments)
-         ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+       (list sbcl-alexandria sbcl-command-line-arguments
+             sbcl-trivial-gray-streams))
       (native-inputs
-       `(("trivial-escapes" ,sbcl-trivial-escapes)
-         ("rove" ,sbcl-rove)))
+       (list sbcl-trivial-escapes sbcl-rove))
       (home-page "https://github.com/yitzchak/cl-indentify")
       (synopsis "Code beautifier for Common Lisp")
       (description
@@ -14795,7 +14222,7 @@ source files.")
           (base32 "1lyrglc3h1if44gxd9cwv90wa90nrdjvb7fry39b1xn8ywdfa7di"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("acclimation" ,sbcl-acclimation)))
+       (list sbcl-acclimation))
       (home-page "https://github.com/s-expressionists/Concrete-Syntax-Tree")
       (synopsis "Parse Common Lisp code into a concrete syntax tree")
       (description
@@ -14840,7 +14267,7 @@ the origin.")
        ("closer-mop" ,sbcl-closer-mop)
        ("concrete-syntax-tree" ,sbcl-concrete-syntax-tree)))
     (native-inputs
-     `(("fiveam" ,sbcl-fiveam)))
+     (list sbcl-fiveam))
     (arguments
      '(#:asd-systems '("eclector"
                        "eclector-concrete-syntax-tree")))
@@ -14916,7 +14343,7 @@ objects themselves.")
           (base32 "00p5c053kmgq4ks6l9mxsqz6g3bjcybvkvj0bh3r90qgpkaawm1p"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("documentation-utils" ,sbcl-documentation-utils)))
+       (list sbcl-documentation-utils))
       (home-page "https://shinmera.github.io/system-locale/")
       (synopsis "Get the system's locale and language settings in Common Lisp")
       (description
@@ -14947,7 +14374,7 @@ display messages in the user's native language.")
           (base32 "0py176ibmsc01n5r0q1bs1ykqf5jwdbh8kx0j1a814l9y51241v0"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("documentation-utils" ,sbcl-documentation-utils)))
+       (list sbcl-documentation-utils))
       (home-page "https://shinmera.github.io/language-codes/")
       (synopsis "Map ISO language codes to language names in Common Lisp")
       (description
@@ -14977,9 +14404,8 @@ language name mapping.")
           (base32 "13y5jskx8n2b7kimpfarr8v777w3b7zj5swg1b99nj3hk0843ixw"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("documentation-utils" ,sbcl-documentation-utils)
-         ("language-codes" ,sbcl-language-codes)
-         ("system-locale" ,sbcl-system-locale)))
+       (list sbcl-documentation-utils sbcl-language-codes
+             sbcl-system-locale))
       (home-page "https://shinmera.github.io/multilang-documentation/")
       (synopsis "Add multiple languages support to Common Lisp documentation")
       (description
@@ -15040,25 +14466,25 @@ and @code{doseq*}.")
           (base32 "0si69xfzi769dprwfy7gp1x3bl7lxz6d4n98sa26w9r41wvay5ja"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("babel" ,sbcl-babel)
-         ("bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("cl-base64" ,sbcl-cl-base64)
-         ("cl-indentify" ,sbcl-cl-indentify)
-         ("closer-mop" ,sbcl-closer-mop)
-         ("dissect" ,sbcl-dissect)
-         ("eclector" ,sbcl-eclector)
-         ("ironclad" ,sbcl-ironclad)
-         ("iterate" ,sbcl-iterate)
-         ("multilang-documentation" ,sbcl-multilang-documentation)
-         ("puri" ,sbcl-puri)
-         ("pzmq" ,sbcl-pzmq)
-         ("shasht" ,sbcl-shasht)
-         ("static-vectors" ,sbcl-static-vectors)
-         ("trivial-do" ,sbcl-trivial-do)
-         ("trivial-garbage" ,sbcl-trivial-garbage)
-         ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
-         ("trivial-mimes" ,sbcl-trivial-mimes)))
+       (list sbcl-alexandria
+             sbcl-babel
+             sbcl-bordeaux-threads
+             sbcl-cl-base64
+             sbcl-cl-indentify
+             sbcl-closer-mop
+             sbcl-dissect
+             sbcl-eclector
+             sbcl-ironclad
+             sbcl-iterate
+             sbcl-multilang-documentation
+             sbcl-puri
+             sbcl-pzmq
+             sbcl-shasht
+             sbcl-static-vectors
+             sbcl-trivial-do
+             sbcl-trivial-garbage
+             sbcl-trivial-gray-streams
+             sbcl-trivial-mimes))
       (home-page "https://yitzchak.github.io/common-lisp-jupyter/")
       (synopsis "Common Lisp kernel for Jupyter")
       (description
@@ -15157,7 +14583,7 @@ adaptations.")
           (base32 "1kdxfnhh9fz34j8qs7pn7mwjz3v33q4v9nh0hqkyzraq5xs2j3f4"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("trivial-features" ,sbcl-trivial-features)))
+       (list sbcl-trivial-features))
       (home-page "https://github.com/snmsts/daemon")
       (synopsis "Daemonize Common Lisp processes")
       (description
@@ -15187,9 +14613,7 @@ on UNIX like platforms.")
           (base32 "0n8q818ry2shggjfhp8gjby8v5mla9pg97c5g19pcglpnwim7a74"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cffi" ,sbcl-cffi)
-         ("documentation-utils" ,sbcl-documentation-utils)
-         ("trivial-features" ,sbcl-trivial-features)))
+       (list sbcl-cffi sbcl-documentation-utils sbcl-trivial-features))
       (home-page "https://shinmera.github.io/file-attributes/")
       (synopsis "Access to common file attributes in Common Lisp")
       (description
@@ -15256,7 +14680,7 @@ sequences based on the Python difflib module.")
           (base32 "1varnijivzd4jpimn1cz8p5ks713zzha5cgl4vmb0xr8ahravwzb"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cl-difflib" ,sbcl-cl-difflib)))
+       (list sbcl-cl-difflib))
       (home-page "https://github.com/wiseman/cl-html-diff")
       (synopsis "Generate a human-readable diff of two HTML documents")
       (description
@@ -15271,8 +14695,8 @@ HTML documents.")
   (sbcl-package->cl-source-package sbcl-cl-html-diff))
 
 (define-public sbcl-tooter
-  (let ((commit "b1639d8a58dfe8020c82ed36697b7a668ef41a09")
-        (revision "2"))
+  (let ((commit "ec97bee3431c55913078e532daae81eb0fd90372")
+        (revision "3"))
     (package
       (name "sbcl-tooter")
       (version (git-version "1.0.0" revision commit))
@@ -15284,13 +14708,11 @@ HTML documents.")
                (commit commit)))
          (file-name (git-file-name "tooter" version))
          (sha256
-          (base32 "0842lbj9ml6qxdm5xvhdbm87wyrvrq7bxawa6i8wk80n8lnvmhdw"))))
+          (base32 "02vpjaq38d6laaqmsana9f13c38xzr0xwy05fcfkmzdhh0kllpkv"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
-         ("sbcl-documentation-utils" ,sbcl-documentation-utils)
-         ("sbcl-drakma" ,sbcl-drakma)
-         ("sbcl-yason" ,sbcl-yason)))
+       (list sbcl-cl-ppcre sbcl-documentation-utils sbcl-drakma
+             sbcl-yason))
       (synopsis "Common Lisp client library for Mastodon instances")
       (description
        "This is a Common Lisp library implementing the full v1 REST API
@@ -15305,8 +14727,8 @@ protocol for Mastodon.")
   (sbcl-package->cl-source-package sbcl-tooter))
 
 (define-public sbcl-croatoan
-  (let ((commit "a577951d8dd607f828d6efb3290b4e8ac9f1e654")
-        (revision "3"))
+  (let ((commit "cf875137a23ed4efbfde63e52691f1b544d55d17")
+        (revision "4"))
     (package
       (name "sbcl-croatoan")
       (version (git-version "0.0.1" revision commit))
@@ -15318,7 +14740,7 @@ protocol for Mastodon.")
                (commit commit)))
          (file-name (git-file-name "croatoan" version))
          (sha256
-          (base32 "1y7a13mzy0cz19pw0xvqwca1s7frfaqryaqwl1mrq7iz84sw0fcw"))))
+          (base32 "0dvp8irimlnnvz2m4lnmxp19xbam1yfri3d1i9qqml968i08xcwb"))))
       (build-system asdf-build-system/sbcl)
       (arguments
        '(#:phases
@@ -15364,7 +14786,7 @@ the ncurses terminal library.")
           (base32 "0my1fsgi2rjaqkpk934f2bjy63pmnj7faza3fzvnk6k3l66y19nk"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (synopsis "Common Lisp library to make histograms")
       (description "This is a Common Lisp library to make histograms using
 UTF-8 block characters.")
@@ -15394,13 +14816,10 @@ UTF-8 block characters.")
           (base32 "1knd3n4mpzkc97i1znbas32pscd30416isvmx2pjmgvar6k93pl5"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("lisp-unit2" ,sbcl-lisp-unit2)))
+       (list sbcl-lisp-unit2))
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("anaphora" ,sbcl-anaphora)
-         ("closer-mop" ,sbcl-closer-mop)
-         ("interpol" ,sbcl-cl-interpol)
-         ("iterate" ,sbcl-iterate)))
+       (list sbcl-alexandria sbcl-anaphora sbcl-closer-mop
+             sbcl-cl-interpol sbcl-iterate))
       (synopsis
        "Common lisp library to unify access to dictionary-like structures")
       (description
@@ -15432,7 +14851,7 @@ dictionary-like data structures.")
           (base32 "1agkrj3ymskzc3c7pxbrj123d1kygjqcls145m0ap3i07q96hh1r"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("sxql" ,sbcl-sxql)))
+       (list sbcl-sxql))
       (synopsis "Build and compose SXQL queries dynamically")
       (description
        "This is a Common Lisp library to build and compose SXQL queries
@@ -15447,11 +14866,11 @@ dynamically.")
   (sbcl-package->cl-source-package sbcl-sxql-composer))
 
 (define-public sbcl-cl-i18n
-  (let ((commit "fa0aa5bef8dfbdf2d72f7cc9f49e848ccbb567aa")
+  (let ((commit "4216fe9fc7b54033c0d881dbb835b7af786365ed")
         (revision "1"))
     (package
       (name "sbcl-cl-i18n")
-      (version (git-version "0.5.0" revision commit))
+      (version (git-version "0.5.1" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -15460,12 +14879,10 @@ dynamically.")
                (commit commit)))
          (file-name (git-file-name "cl-i18n" version))
          (sha256
-          (base32 "1hpsdbb3hd79bzbrnbqgk2j3f0ispxvk91snp08fm2z3f1sds5as"))))
+          (base32 "1mdhfkk61djj39vgnns5y1cssd12h0m1cfwd21m8xpa2l3rqvmgf"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("babel" ,sbcl-babel)
-         ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
+       (list sbcl-alexandria sbcl-babel sbcl-cl-ppcre-unicode))
       (synopsis "Internationalisation framework for Common Lisp")
       (description
        "This is a Gettext-style internationalisation framework for Common
@@ -15496,9 +14913,7 @@ Lisp.")
           (base32 "0c0m0ar04jn7qf2v8c4sivamlzki03r13rnxy8b3n27rh9r6hgin"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cl-base64" ,sbcl-cl-base64)
-         ("flexi-stream" ,sbcl-flexi-streams)
-         ("ironclad" ,sbcl-ironclad)))
+       (list sbcl-cl-base64 sbcl-flexi-streams sbcl-ironclad))
       (synopsis "Collection of common cryptography functions")
       (description
        "This is a collection of common cryptography functions for Common
@@ -15529,13 +14944,9 @@ Lisp.")
           (base32 "04if61wigylsmn996rbfl8ylsd0d9hzdmg7p2wiglncibjzcl5k9"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("json-streams" ,sbcl-json-streams)
-         ("split-sequence" ,sbcl-split-sequence)
-         ("stefil" ,sbcl-stefil)))
+       (list sbcl-json-streams sbcl-split-sequence sbcl-stefil))
       (inputs
-       `(("cl-ppcre" ,sbcl-cl-ppcre)
-         ("flexi-stream" ,sbcl-flexi-streams)
-         ("string-case" ,sbcl-string-case)))
+       (list sbcl-cl-ppcre sbcl-flexi-streams sbcl-string-case))
       (synopsis "HTML5 parser for Common Lisp")
       (description "This a Common Lisp library to parse HTML5 documents.")
       (home-page "https://github.com/rotatef/cl-html5-parser")
@@ -15564,10 +14975,9 @@ Lisp.")
           (base32 "0q1lh3sa6mkjr5gcdkgimkpc29rgf9cjhv90f61h8ridj28grq0h"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam"   ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
-       `(("anaphora" ,sbcl-anaphora)
-         ("babel" ,sbcl-babel)))
+       (list sbcl-anaphora sbcl-babel))
       (synopsis "RFC 3986 percent-encoding library")
       (description
        "This is a Common Lisp library providing RFC 3986 percent-encoding.")
@@ -15597,9 +15007,7 @@ Lisp.")
         (base32 "0vza9gj9q42nzb5v8aj22lmn4aqx9vrddsb5a343nbwfz89hbh9x"))))
      (build-system asdf-build-system/sbcl)
      (inputs
-      `(("alexandria" ,sbcl-alexandria)
-        ("cffi" ,sbcl-cffi)
-        ("cl-ppcre" ,sbcl-cl-ppcre)))
+      (list sbcl-alexandria sbcl-cffi sbcl-cl-ppcre))
      (home-page "https://notabug.org/cage/cl-mount-info.git")
      (synopsis "Library to get information about mounted filesystems")
      (description
@@ -15673,7 +15081,7 @@ line tool @code{df} and get disk space information using @code{statvfs}.")
         (base32 "0sdaff9hpsx7bpkkkqavmxmrrlc2d61gmqjjgn8xchncng4a0rf8"))))
     (build-system asdf-build-system/sbcl)
     (inputs
-     `(("cffi" ,sbcl-cffi)))
+     (list sbcl-cffi))
     (home-page "https://github.com/muyinliu/cl-cpus")
     (synopsis "Common Lisp feature to get number of CPUs")
     (description
@@ -15855,8 +15263,7 @@ immediately loaded.")
         (base32 "0r3vnl9lywn4ksy34apcv6j825qp7l1naddawr14v4lwacndb80v"))))
      (build-system asdf-build-system/sbcl)
      (inputs
-      `(("bodge-utilities" ,sbcl-bodge-utilities)
-        ("rtg-math" ,sbcl-rtg-math)))
+      (list sbcl-bodge-utilities sbcl-rtg-math))
      (home-page "https://github.com/borodust/bodge-math")
      (synopsis "Common Lisp core math utilities of BODGE library collection")
      (description
@@ -15887,10 +15294,9 @@ immediately loaded.")
          (base32 "02nd1x6y1akp1ymv1y4z9ympwbnpd1drwi4f86xbjszxqff6jyj8"))))
      (build-system asdf-build-system/sbcl)
      (native-inputs
-      `(("trivial-features" ,sbcl-trivial-features)))
+      (list sbcl-trivial-features))
      (inputs
-      `(("cffi" ,sbcl-cffi)
-        ("sbcl-alexandria" ,sbcl-alexandria)))
+      (list sbcl-cffi sbcl-alexandria))
      (home-page "https://github.com/borodust/bodge-blobs-support")
      (synopsis "Common Lisp utilities for blob packages")
      (description
@@ -15932,7 +15338,7 @@ compiled foreign library collection.")
       '(#:tests? #f
         #:asd-files '("cl-conspack.asd")))
      (native-inputs
-      `(("checkl" ,sbcl-checkl)))
+      (list sbcl-checkl))
      (inputs
       `(("alexandria" ,sbcl-alexandria)
         ("closer-mop" ,sbcl-closer-mop)
@@ -16020,12 +15426,12 @@ OpenGL (Mesa), GLU and GLUT (FreeGLUT) APIs using CFFI.")
           (base32 "0w1i734gkdkziin74ql2nhx7jdjxx02ylssaa6qdrvnj4br1124a"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cffi" ,sbcl-cffi)
-         ("cl-opengl" ,sbcl-cl-opengl)
-         ("glsl-packing" ,sbcl-glsl-packing)
-         ("golden-utils" ,sbcl-golden-utils)
-         ("static-vectors" ,sbcl-static-vectors)
-         ("varjo" ,sbcl-varjo)))
+       (list sbcl-cffi
+             sbcl-cl-opengl
+             sbcl-glsl-packing
+             sbcl-golden-utils
+             sbcl-static-vectors
+             sbcl-varjo))
       (home-page "https://git.mfiano.net/mfiano/shadow")
       (synopsis "Management system for OpenGL shader programs")
       (description
@@ -16059,9 +15465,7 @@ buffer object types (UBO, SSBO currently).")
           (base32 "04vyh2j00zdpb8ryxr8g81wjcmqlz9wrn55r3cypcj4qg970r5wi"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("golden-utils" ,sbcl-golden-utils)
-         ("shadow" ,sbcl-shadow)
-         ("varjo" ,sbcl-varjo)))
+       (list sbcl-golden-utils sbcl-shadow sbcl-varjo))
       (home-page "https://git.mfiano.net/mfiano/umbra")
       (synopsis "Common Lisp library of reusable GPU shader functions")
       (description
@@ -16109,30 +15513,32 @@ abstract, final and singleton classes.")
   (sbcl-package->cl-source-package sbcl-abstract-classes))
 
 (define-public sbcl-coalton
-  (let ((commit "4a42ffb4222fde3abfd1b50d96e455ff2eef9fe8")
-        (revision "1"))
+  (let ((commit "012f6c8db6d73df16f7729090a12a929fb82db17")
+        (revision "2"))
     (package
       (name "sbcl-coalton")
-      (version (git-version "0.0.0" revision commit))
+      (version (git-version "0.0.1" revision commit))
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/stylewarning/coalton")
+               (url "https://github.com/coalton-lang/coalton")
                (commit commit)))
          (file-name (git-file-name "coalton" version))
          (sha256
-          (base32 "0aidwwam7cnhb3p9212zbv5w2dl6kr5iklzanypzr1a9lqaxwdlk"))))
+          (base32 "1j3d12vyyn7y9nz2an4xmaa5si0jbxbwq7y61hq2b7vk376zvw18"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiasco" ,sbcl-fiasco)))
-      (inputs
-       `(("abstract-classes" ,sbcl-abstract-classes)
-         ("alexandria" ,sbcl-alexandria)
-         ("global-vars" ,sbcl-global-vars)
-         ("optima" ,sbcl-optima)
-         ("trivial-garbage" ,sbcl-trivial-garbage)))
-      (home-page "https://github.com/stylewarning/coalton")
+       (list sbcl-fiasco))
+      (inputs
+       (list sbcl-alexandria
+             sbcl-float-features
+             sbcl-fset
+             sbcl-global-vars
+             sbcl-json-streams
+             sbcl-serapeum
+             sbcl-trivia))
+      (home-page "https://coalton-lang.github.io")
       (synopsis "Dialect of ML in Common Lisp")
       (description
        "Coalton is a dialect of ML embedded in Common Lisp.  It emphasizes
@@ -16163,8 +15569,7 @@ allows one to gradually make their programs safer.")
           (base32 "13kkajkva2shm19fvn4yashsw18l6imv2rmy3hmpcky7g5ay7bv3"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("array-utils" ,sbcl-array-utils)
-         ("lquery" ,sbcl-lquery)))
+       (list sbcl-array-utils sbcl-lquery))
       (home-page "https://shinmera.github.io/clip/")
       (synopsis "Common Lisp HTML templating engine")
       (description
@@ -16198,7 +15603,7 @@ lQuery.")
           (base32 "1zm4bf6gajpgmhr7zwf7600zlaf8fs1fcyzabqsh2ma2crkgqdxq"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("parachute" ,sbcl-parachute)))
+       (list sbcl-parachute))
       (home-page "https://shinmera.github.io/pathname-utils/")
       (synopsis "Collection of utilities to help with pathname operations")
       (description
@@ -16230,11 +15635,8 @@ handling the accessing of files on the underlying system however.")
         (base32 "0pnqflgz410zydc1ivwnd8hcl24bgr7x12yjzr7g4lq3ibc8y97b"))))
      (build-system asdf-build-system/sbcl)
      (inputs
-      `(("documentation-utils" ,sbcl-documentation-utils)
-        ("fast-io" ,sbcl-fast-io)
-        ("ieee-floats" ,sbcl-ieee-floats)
-        ("static-vectors" ,sbcl-static-vectors)
-        ("trivial-garbage" ,sbcl-trivial-garbage)))
+      (list sbcl-documentation-utils sbcl-fast-io sbcl-ieee-floats
+            sbcl-static-vectors sbcl-trivial-garbage))
      (home-page "https://shirakumo.github.io/terrable/")
      (synopsis "Parser library for Terragen TER terrain files")
      (description
@@ -16296,7 +15698,7 @@ color palette for a GUI or web page.")
           (base32 "099h0rrdzxnlmn8avi72mg2dl0kccp7w01b2p9nwyy4b8yr32cir"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("flexi-streams" ,sbcl-flexi-streams)))
+       (list sbcl-flexi-streams))
       (home-page "https://github.com/eugeneia/cl-qprint/")
       (synopsis "Implementation of the quoted-printable encoding")
       (description
@@ -16329,11 +15731,9 @@ described in RFC 2045 (see @url{http://tools.ietf.org/html/rfc2045}).")
           (base32 "0qn8if0fj6vzc897pqqqs0m1y107gmzqngpqhqmwrcsp1ckj5k0v"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("ppcre" ,sbcl-cl-ppcre)
-         ("cl-base64" ,sbcl-cl-base64)
-         ("cl-qprint" ,sbcl-cl-qprint)))
+       (list sbcl-cl-ppcre sbcl-cl-base64 sbcl-cl-qprint))
       (native-inputs
-       `(("rove" ,sbcl-rove)))
+       (list sbcl-rove))
       (home-page "https://github.com/eugeneia/cl-qprint/")
       (synopsis "Read and print MIME content in Common Lisp")
       (description
@@ -16409,14 +15809,10 @@ in Common Lisp.")
         (base32 "15vrp1kayhjb5c1vc9x8wlm8rimk73vpa7yc101cf0gsg1fjazl6"))))
     (build-system asdf-build-system/sbcl)
     (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("ppcre" ,sbcl-cl-ppcre)))
+     (list sbcl-alexandria sbcl-cl-ppcre))
     (native-inputs
-     `(("fiveam" ,sbcl-fiveam)
-       ("cl-csv" ,sbcl-cl-csv)
-       ("parse-float" ,sbcl-parse-float)
-       ("lispbuilder-sdl" ,sbcl-lispbuilder-sdl)
-       ("lparallel" ,sbcl-lparallel)))
+     (list sbcl-fiveam sbcl-cl-csv sbcl-parse-float sbcl-lispbuilder-sdl
+           sbcl-lparallel))
     (home-page "https://github.com/privet-kitty/dufy")
     (synopsis "Color library for Common Lisp")
     (description
@@ -16430,33 +15826,6 @@ color spaces, which supports many color models.")
 (define-public cl-dufy
   (sbcl-package->cl-source-package sbcl-dufy))
 
-(define-public sbcl-unit-test
-  (let ((commit "266afaf4ac091fe0e8803bac2ae72d238144e735")
-        (revision "1"))
-    (package
-      (name "sbcl-unit-test")
-      (version (git-version "0.0.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/hanshuebner/unit-test")
-               (commit commit)))
-         (file-name (git-file-name "unit-test" version))
-         (sha256
-          (base32 "11hpksz56iqkv7jw25p2a8r3n9dj922fyarn16d98589g6hdskj9"))))
-      (build-system asdf-build-system/sbcl)
-      (home-page "https://github.com/hanshuebner/unit-test")
-      (synopsis "Unit-testing framework for Common Lisp")
-      (description "This is a unit-testing framework for Common Lisp.")
-      (license license:unlicense))))
-
-(define-public ecl-unit-test
-  (sbcl-package->ecl-package sbcl-unit-test))
-
-(define-public cl-unit-test
-  (sbcl-package->cl-source-package sbcl-unit-test))
-
 (define-public sbcl-bknr-datastore
   (let ((commit "c98d44f47cc88d19ff91ca3eefbd9719a8ace022")
         (revision "1"))
@@ -16534,10 +15903,9 @@ for Common Lisp.")
           (base32 "0ncsxrybnx0pjsndv3j8w4lphlpcsld8sxg3c5b46fb3a8nd4ssf"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
-       `(("clsql" ,sbcl-clsql)
-         ("ironclad" ,sbcl-ironclad)))
+       (list sbcl-clsql sbcl-ironclad))
       (home-page "https://github.com/charje/cl-authentic")
       (synopsis "User/password management for Common Lisp applications")
       (description "Authentic provides a light-weight and extendible
@@ -16569,9 +15937,9 @@ confirmation tokens, and user authentication.")
           (base32 "0qc7m5brhpwi531rgmlaj1c609by533a1ia5hv8f90ilm8ksmw3l"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("parachute" ,sbcl-parachute)))
+       (list sbcl-parachute))
       (inputs
-       `(("documentation-utils" ,sbcl-documentation-utils)))
+       (list sbcl-documentation-utils))
       (home-page "https://shinmera.github.io/3d-vectors/")
       (synopsis "Utility library implementing 2D, 3D, and 4D vectors")
       (description
@@ -16603,10 +15971,9 @@ offers them both in non-modifying and modifying versions where applicable.")
           (base32 "10q9c96gqzq6k8n89agy0khgimmnsn4s69171m3vhghqa2yv5n6v"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("parachute" ,sbcl-parachute)))
+       (list sbcl-parachute))
       (inputs
-       `(("3d-vectors" ,sbcl-3d-vectors)
-         ("documentation-utils" ,sbcl-documentation-utils)))
+       (list sbcl-3d-vectors sbcl-documentation-utils))
       (home-page "https://shinmera.github.io/3d-matrices/")
       (synopsis "Utility library implementing 2x2, 3x3, 4x4 and NxM matrices")
       (description
@@ -16681,10 +16048,8 @@ application fail and be unable to do so using its standard UI.")
           (base32 "0as5796yazchq1qkna3srxlz5v7cf7ffny9cbqi41wsa2s20vbh9"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cl-ppcre" ,sbcl-cl-ppcre)
-         ("documentation-utils" ,sbcl-documentation-utils)
-         ("parse-float" ,sbcl-parse-float)
-         ("trivial-indent" ,sbcl-trivial-indent)))
+       (list sbcl-cl-ppcre sbcl-documentation-utils sbcl-parse-float
+             sbcl-trivial-indent))
       (home-page "https://shirakumo.github.io/glsl-toolkit/")
       (synopsis "Parser for OpenGL Shader Language source files")
       (description
@@ -16715,9 +16080,7 @@ allow to wrangle OpenGL Shader Language (GLSL) source files.")
           (base32 "1ls1pij7dvb65g4nam7nvik1218jvfk5iplr48vy290fw3lq7v98"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("array-utils" ,sbcl-array-utils)
-         ("bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("dissect" ,sbcl-dissect)))
+       (list sbcl-array-utils sbcl-bordeaux-threads sbcl-dissect))
       (home-page "https://shinmera.github.io/simple-tasks/")
       (synopsis "Simple task scheduling framework")
       (description "This is a task scheduling framework for Common Lisp.")
@@ -16746,9 +16109,7 @@ allow to wrangle OpenGL Shader Language (GLSL) source files.")
           (base32 "0bw1887i7396lqg75qvmgjfzz4xbiq9w5dp8wxdgrcsm0qwlraw7"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("simple-tasks" ,sbcl-simple-tasks)
-         ("trivial-features" ,sbcl-trivial-features)))
+       (list sbcl-bordeaux-threads sbcl-simple-tasks sbcl-trivial-features))
       (home-page "https://shinmera.github.io/trivial-main-thread/")
       (synopsis "Compatibility library to run things in the main thread")
       (description
@@ -16845,10 +16206,9 @@ all kind of typesetting applications.")
           (base32 "01mh20s5gj0lajq45anxji77ykq1wcg72mn1y9a1k8i7q1ainjlr"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("parachute" ,sbcl-parachute)))
+       (list sbcl-alexandria sbcl-parachute))
       (inputs
-       `(("trivial-do" ,sbcl-trivial-do)))
+       (list sbcl-trivial-do))
       (home-page "https://yitzchak.github.io/shasht/")
       (synopsis "Common Lisp JSON reading and writing library")
       (description
@@ -17008,8 +16368,7 @@ is built on top of the @code{libev} event library.")
           (base32 "0cia3721im04q73dfkd688d8splgpz03qa4h8s3r39kar4w3xll2"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("cl-quickcheck" ,sbcl-cl-quickcheck)
-         ("flexi-streams" ,sbcl-flexi-streams)))
+       (list sbcl-cl-quickcheck sbcl-flexi-streams))
       (home-page "https://github.com/rotatef/json-streams")
       (synopsis "Common Lisp library for reading and writing JSON")
       (description
@@ -17057,7 +16416,7 @@ building block for higher level libraries.")
        ;;
        `(#:tests? #f))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (inputs
        `(("cl-ppcre" ,sbcl-cl-ppcre)
          ("collectors" ,sbcl-collectors)
@@ -17092,11 +16451,9 @@ or GOLDEN-UTILS.")
           (base32 "1pzhamgni6k5hi6bbvlb3dm659pcllrrr3vhhn3rpjn238zxg5ar"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("stefil" ,sbcl-stefil)))
+       (list sbcl-stefil))
       (inputs
-       `(("flexi-streams" ,sbcl-flexi-streams)
-         ("split-sequence" ,sbcl-split-sequence)
-         ("yacc" ,sbcl-cl-yacc)))
+       (list sbcl-flexi-streams sbcl-split-sequence sbcl-cl-yacc))
       (home-page "https://github.com/rotatef/gettext")
       (synopsis "Common Lisp implementation of Gettext")
       (description
@@ -17218,11 +16575,9 @@ CL-I18N and CL-L10N.")
           (base32 "1ybznf4y5lda6bn163jcvj281qzhm24dfcwhbgxmm5n6f27gdccl"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("clunit" ,sbcl-clunit)))
+       (list sbcl-clunit))
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("anaphora" ,sbcl-anaphora)
-         ("let-plus" ,sbcl-let-plus)))
+       (list sbcl-alexandria sbcl-anaphora sbcl-let-plus))
       (home-page "https://github.com/tpapp/cl-slice")
       (synopsis "Array slices for Common Lisp")
       (description
@@ -17252,22 +16607,22 @@ CL-I18N and CL-L10N.")
           (base32 "1lk2ypm3sacf60h96a7hv9jwjlxkl4k40yzdalmqdg548vrd1jjm"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
-      (inputs
-       `(("access" ,sbcl-access)
-         ("alexandria" ,sbcl-alexandria)
-         ("anaphora" ,sbcl-anaphora)
-         ("babel" ,sbcl-babel)
-         ("cl-locale" ,sbcl-cl-locale)
-         ("cl-ppcre" ,sbcl-cl-ppcre)
-         ("cl-slice" ,sbcl-cl-slice)
-         ("closer-mop" ,sbcl-closer-mop)
-         ("gettext" ,sbcl-gettext)
-         ("iterate" ,sbcl-iterate)
-         ("local-time" ,sbcl-local-time)
-         ("parser-combinators" ,sbcl-parser-combinators)
-         ("split-sequence" ,sbcl-split-sequence)
-         ("trivial-backtrace" ,sbcl-trivial-backtrace)))
+       (list sbcl-fiveam))
+      (inputs
+       (list sbcl-access
+             sbcl-alexandria
+             sbcl-anaphora
+             sbcl-babel
+             sbcl-cl-locale
+             sbcl-cl-ppcre
+             sbcl-cl-slice
+             sbcl-closer-mop
+             sbcl-gettext
+             sbcl-iterate
+             sbcl-local-time
+             sbcl-parser-combinators
+             sbcl-split-sequence
+             sbcl-trivial-backtrace))
       (home-page "https://mmontone.github.io/djula/")
       (synopsis "Common Lisp port of the Django templating language")
       (description
@@ -17298,9 +16653,7 @@ Django with a syntax similar to Python Jinja2.")
           (base32 "1akz9ggh33x2cq3h0f1cd0p632v1mbagv3dzsb0r10bwg9lh3nmv"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("documentation-utils" ,sbcl-documentation-utils)
-         ("form-fiddle" ,sbcl-form-fiddle)
-         ("lambda-fiddle" ,sbcl-lambda-fiddle)))
+       (list sbcl-documentation-utils sbcl-form-fiddle sbcl-lambda-fiddle))
       (home-page "https://shinmera.github.io/for/")
       (synopsis "Extensible iteration macro library")
       (description
@@ -17333,12 +16686,12 @@ require code-walking and is easier to extend.")
           (base32 "00nm3sjngbflj2gd5q0xs2m136w4kix6krww23nk64pkkyq2fs86"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("3d-vectors" ,sbcl-3d-vectors)
-         ("array-utils" ,sbcl-array-utils)
-         ("documentation-utils" ,sbcl-documentation-utils)
-         ("for" ,sbcl-for)
-         ("lambda-fiddle" ,sbcl-lambda-fiddle)
-         ("trivial-garbage" ,sbcl-trivial-garbage)))
+       (list sbcl-3d-vectors
+             sbcl-array-utils
+             sbcl-documentation-utils
+             sbcl-for
+             sbcl-lambda-fiddle
+             sbcl-trivial-garbage))
       (home-page "https://shinmera.github.io/flare/")
       (synopsis "Easy particle systems with fine grained control")
       (description
@@ -17370,8 +16723,7 @@ any existing or future application.")
           (base32 "08vsvqv3768bwb2y8mwxbw5wyqzzwqr7rd004r6gafdgf9p9mcx3"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("documentation-utils" ,sbcl-documentation-utils)))
+       (list sbcl-bordeaux-threads sbcl-documentation-utils))
       (home-page "https://shinmera.github.io/simple-inferiors/")
       (synopsis "Common Lisp library to use inferior processes")
       (description
@@ -17404,10 +16756,8 @@ running into parallelism problems when having to change directory.")
           (base32 "181aqpj4zkfk1aavj5jw8rym6gw4ma3gd64z2h5fpryabgmwk236"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("simple-inferiors" ,sbcl-simple-inferiors)
-         ("lambda-fiddle" ,sbcl-lambda-fiddle)
-         ("cl-ppcre" ,sbcl-cl-ppcre)
-         ("documentation-utils" ,sbcl-documentation-utils)))
+       (list sbcl-simple-inferiors sbcl-lambda-fiddle sbcl-cl-ppcre
+             sbcl-documentation-utils))
       (home-page "https://shinmera.github.io/legit/")
       (synopsis "Interface to the git binary")
       (description
@@ -17586,7 +16936,7 @@ coverage.")
         ("split-sequence" ,sbcl-split-sequence)
         ("varjo" ,sbcl-varjo)))
      (propagated-inputs
-      `(("quickproject" ,sbcl-quickproject)))
+      (list sbcl-quickproject))
      (home-page "https://github.com/cbaggers/cepl")
      (synopsis "Development playground to work with OpenGL")
      (description
@@ -17626,11 +16976,8 @@ window it creates as just another output for your graphics, analogous to how
         (base32 "1hfmh4vj271jdilir97qs6nqbi5nmn5alyls0w3d3xxqwi6ffqjs"))))
      (build-system asdf-build-system/sbcl)
      (inputs
-      `(("alexandria" ,sbcl-alexandria)
-        ("bordeaux-threads" ,sbcl-bordeaux-threads)
-        ("log4cl" ,sbcl-log4cl)
-        ("closer-mop" ,sbcl-closer-mop)
-        ("trivial-garbage" ,sbcl-trivial-garbage)))
+      (list sbcl-alexandria sbcl-bordeaux-threads sbcl-log4cl
+            sbcl-closer-mop sbcl-trivial-garbage))
      (home-page "https://stmx.org/")
      (synopsis "High performance Transactional Memory for Common Lisp")
      (description
@@ -17678,7 +17025,7 @@ resolving the tension between granularity and concurrency.")
         (base32 "0hqikgzic7kjq2n1d924yldfm30qz67cmsk6gghi9cbmxkwdlwp8"))))
      (build-system asdf-build-system/sbcl)
      (native-inputs
-      `(("hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
+      (list sbcl-hu.dwim.stefil))
      (home-page "https://github.com/phoe/binding-arrows")
      (synopsis "Threading macros based on binding anonymous variables")
      (description
@@ -17715,9 +17062,9 @@ impossible to merge back upstream.")
           (base32 "0mp5jdqq0aamdhgnvw149cqqi3zg7dkkibp25qi4rafw1fnpd40z"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("documentation-utils" ,sbcl-documentation-utils)))
+       (list sbcl-documentation-utils))
       (native-inputs
-       `(("parachute" ,sbcl-parachute)))
+       (list sbcl-parachute))
       (home-page "https://shinmera.github.io/atomics/")
       (synopsis "Common Lisp portability layer for atomic operations")
       (description
@@ -17732,41 +17079,6 @@ implementations offer.")
 (define-public cl-atomics
   (sbcl-package->cl-source-package sbcl-atomics))
 
-(define-public sbcl-cl-mock
-  ;; .asd version only got updated recently, despired the old GitHug "1.0.1" release.
-  (let ((commit "7988dca2093358911b67597a2cd1570c785dfe76"))
-    (package
-      (name "sbcl-cl-mock")
-      (version (git-version "1.0.1" "1" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/Ferada/cl-mock/")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0f40wikcf783jx26ip0nnhwjjfjvjiw7njqsqrb6kaphc8bgw0i1"))))
-      (build-system asdf-build-system/sbcl)
-      (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("closer-mop" ,sbcl-closer-mop)
-         ("trivia" ,sbcl-trivia)))
-      (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
-      (home-page "https://github.com/Ferada/cl-mock")
-      (synopsis "Mocking functions for Common Lisp testing")
-      (description
-       "This small library provides a way to replace the actual implementation
-of either regular or generic functions with mocks.")
-      (license license:agpl3))))
-
-(define-public ecl-cl-mock
-  (sbcl-package->ecl-package sbcl-cl-mock))
-
-(define-public cl-mock
-  (sbcl-package->cl-source-package sbcl-cl-mock))
-
 (define-public sbcl-cl-murmurhash
   ;; No release.
   (let ((commit "5433f5e95f1cce63a81259a471150834c6a59364")
@@ -17787,9 +17099,9 @@ of either regular or generic functions with mocks.")
            "0251r0mpjm0y3qsm4lm7ncvrkxvgwc53spdm1p2mpayhvkkqqsws"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("babel" ,sbcl-babel)))
+       (list sbcl-babel))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (synopsis "32-bit version of Murmurhash3 for Common Lisp")
       (description
        "This Common Lisp package offers an implementation of the 32-bit
@@ -17820,9 +17132,9 @@ non-crytographic hashing algorithm.")
           (base32 "1ycbd73ykfj5j9sdhlzamyv18qbjj6xqf7fhm4fa0nsyr6sr3rf5"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cl-murmurhash" ,sbcl-cl-murmurhash)))
+       (list sbcl-cl-murmurhash))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (home-page "https://github.com/danshapero/cl-hamt")
       (synopsis "Dictionary & set data structure using hash array-mapped tries")
       (description
@@ -17845,25 +17157,28 @@ Common Lisp based on the hash array-mapped trie data structure.")
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/mdbergmann/cl-gserver")
-             (commit version)))
+
+             ;; The "1.8.0" tag must have been moved from
+             ;; c83d92a66102faa514b546029a9bd2078b95dc0f to
+             ;; 90832f02f0556463e332cd055c3c1be58f323aea, 22 commits later!
+             (commit "c83d92a66102faa514b546029a9bd2078b95dc0f")))
        (file-name (git-file-name "cl-gserver" version))
        (sha256
         (base32 "1bfz7z8v417dvsp1jz76ir3ihcs8g7zis2d56xx1dpzqzjd95g7z"))))
     (build-system asdf-build-system/sbcl)
     (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("bordeaux-threads" ,sbcl-bordeaux-threads)
-       ("lparallel" ,sbcl-lparallel)
-       ("cl-speedy-queue" ,sbcl-cl-speedy-queue)
-       ("log4cl" ,sbcl-log4cl)
-       ("str" ,sbcl-cl-str)
-       ("blackbird" ,sbcl-blackbird)
-       ("cl-hamt" ,sbcl-cl-hamt)
-       ("binding-arrows" ,sbcl-binding-arrows)
-       ("atomics" ,sbcl-atomics)))
+     (list sbcl-alexandria
+           sbcl-bordeaux-threads
+           sbcl-lparallel
+           sbcl-cl-speedy-queue
+           sbcl-log4cl
+           sbcl-cl-str
+           sbcl-blackbird
+           sbcl-cl-hamt
+           sbcl-binding-arrows
+           sbcl-atomics))
     (native-inputs
-     `(("fiveam" ,sbcl-fiveam)
-       ("mock" ,sbcl-cl-mock)))
+     (list sbcl-fiveam sbcl-cl-mock))
     (home-page "https://mdbergmann.github.io/cl-gserver/index.html")
     (synopsis "Actor framework for easy access to state and async operations")
     (description
@@ -17878,6 +17193,125 @@ computing and event based message handling.")
 (define-public cl-gserver
   (sbcl-package->cl-source-package sbcl-cl-gserver))
 
+(define-public sbcl-assoc-utils
+  (let ((commit "74af16a3c0f10ad35e406167de02984744fc7854")
+        (revision "1"))
+    (package
+      (name "sbcl-assoc-utils")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/fukamachi/assoc-utils")
+               (commit commit)))
+         (file-name (git-file-name "cl-assoc-utils" version))
+         (sha256
+          (base32 "1yac1v7zmdxj0p6rvwrrhyqvy7yjfhmqbchkwqhhr89gpjvvaick"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       ;; All test cases pass, but tests successfully fail at the end:
+       ;;
+       ;; Summary:
+       ;;   All 1 file passed.
+       ;; Unhandled ASDF/FIND-COMPONENT:MISSING-DEPENDENCY in thread
+       ;; #<SB-THREAD:THREAD "main thread" RUNNING {1001858103}>:
+       ;;   Component ASSOC-UTILS-ASD::ASSOC-UTILS-TEST not found, required by
+       ;;   #<SYSTEM "assoc-utils">
+       `(#:tests? #f))
+      (native-inputs
+       (list sbcl-prove))
+      (home-page "https://github.com/fukamachi/assoc-utils")
+      (synopsis "Utilities for manipulating association lists in Common Lisp")
+      (description
+       "@code{assoc-utils} provides utilities for manipulating association
+lists in Common Lisp.")
+      (license license:public-domain))))
+
+(define-public cl-assoc-utils
+  (sbcl-package->cl-source-package sbcl-assoc-utils))
+
+(define-public ecl-assoc-utils
+  (sbcl-package->ecl-package sbcl-assoc-utils))
+
+(define-public sbcl-let-over-lambda
+  (let ((commit "481b2e3ab4646186451dfdd2062113203287d520")
+        (revision "1"))
+    (package
+      (name "sbcl-let-over-lambda")
+      (version (git-version "1.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/thephoeron/let-over-lambda")
+               (commit commit)))
+         (file-name (git-file-name "cl-let-over-lambda" version))
+         (sha256
+          (base32 "114p781lwi9lrbzg27dnkymz9m4cvm1k430j7qsykwd0b58d8qbk"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       ;; All test cases pass, but tests successfully fail at the end:
+       ;;
+       ;; Summary:
+       ;; All 1 file passed.
+       ;; Unhandled ASDF/FIND-COMPONENT:MISSING-DEPENDENCY in thread
+       ;; #<SB-THREAD:THREAD "main thread" RUNNING {1001860103}>:
+       ;;   Component LET-OVER-LAMBDA-ASD::LET-OVER-LAMBDA-TEST not found,
+       ;;   required by #<SYSTEM "let-over-lambda">
+       `(#:tests? #f))
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cl-ppcre" ,sbcl-cl-ppcre)
+         ("named-readtables" ,sbcl-named-readtables)))
+      (native-inputs
+       (list sbcl-prove))
+      (home-page "https://github.com/thephoeron/let-over-lambda")
+      (synopsis "Macros from Let Over Lambda")
+      (description
+       "This package provides Doug Hoyte's \"Production\" version of macros
+from the Let Over Lambda book, including community updates.")
+      (license license:bsd-3))))
+
+(define-public cl-let-over-lambda
+  (sbcl-package->cl-source-package sbcl-let-over-lambda))
+
+(define-public ecl-let-over-lambda
+  (sbcl-package->ecl-package sbcl-let-over-lambda))
+
+(define-public sbcl-flute
+  (let ((commit "90ebcd6e82f637f49b6de7d625ccc51ec4c92900")
+        (revision "1"))
+    (package
+      (name "sbcl-flute")
+      (version (git-version "0.2-dev" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ailisp/flute")
+               (commit commit)))
+         (file-name (git-file-name "cl-flute" version))
+         (sha256
+          (base32 "0q8jhp040cvpppyn820mm6a550yfxyr1lar298x13c42mm807f4f"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-assoc-utils sbcl-let-over-lambda))
+      (native-inputs
+       (list sbcl-fiveam))
+      (home-page "https://github.com/ailisp/flute")
+      (synopsis "HTML5 generation library in Common Lisp")
+      (description
+       "Flute is an easily composable HTML5 generation library in Common
+Lisp.")
+      (license license:expat))))
+
+(define-public cl-flute
+  (sbcl-package->cl-source-package sbcl-flute))
+
+(define-public ecl-flute
+  (sbcl-package->ecl-package sbcl-flute))
+
 (define-public sbcl-cl-posix-mqueue
   (let ((commit "8977370c7206d1f62bd1be80f4254af40654b83f")
         (revision "1"))
@@ -18059,41 +17493,41 @@ joysticks, and other such HID devices.")
           (base32 "1vpv9nrpq93fz1c5cyi1hazaaz9ijbrf1l7zwp7gammndr5v028r"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
-       `(("trivial-features" ,sbcl-trivial-features)))
-      (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("3d-matrices" ,sbcl-3d-matrices)
-         ("3d-vectors" ,sbcl-3d-vectors)
-         ("bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("cl-gamepad" ,sbcl-cl-gamepad)
-         ("cl-jpeg" ,sbcl-cl-jpeg)
-         ("cl-opengl" ,sbcl-cl-opengl)
-         ("cl-ppcre" ,sbcl-cl-ppcre)
-         ("cl-tga" ,sbcl-cl-tga)
-         ("closer-mop" ,sbcl-closer-mop)
-         ("deploy" ,sbcl-deploy)
-         ("fast-io" ,sbcl-fast-io)
-         ("flare" ,sbcl-flare)
-         ("float-features" ,sbcl-float-features)
-         ("flow" ,sbcl-flow)
-         ("for" ,sbcl-for)
-         ("form-fiddle" ,sbcl-form-fiddle)
-         ("glsl-toolkit" ,sbcl-glsl-toolkit)
-         ("ieee-floats" ,sbcl-ieee-floats)
-         ("jsown" ,sbcl-jsown)
-         ("lambda-fiddle" ,sbcl-lambda-fiddle)
-         ("lquery" ,sbcl-lquery)
-         ("messagebox" ,sbcl-messagebox)
-         ("mmap" ,sbcl-mmap)
-         ("pathname-utils" ,sbcl-pathname-utils)
-         ("pngload" ,sbcl-pngload)
-         ("retrospectiff" ,sbcl-retrospectiff)
-         ("static-vectors" ,sbcl-static-vectors)
-         ("terrable" ,sbcl-terrable)
-         ("trivial-garbage" ,sbcl-trivial-garbage)
-         ("trivial-indent" ,sbcl-trivial-indent)
-         ("verbose" ,sbcl-verbose)
-         ("zpng" ,sbcl-zpng)))
+       (list sbcl-trivial-features))
+      (inputs
+       (list sbcl-alexandria
+             sbcl-3d-matrices
+             sbcl-3d-vectors
+             sbcl-bordeaux-threads
+             sbcl-cl-gamepad
+             sbcl-cl-jpeg
+             sbcl-cl-opengl
+             sbcl-cl-ppcre
+             sbcl-cl-tga
+             sbcl-closer-mop
+             sbcl-deploy
+             sbcl-fast-io
+             sbcl-flare
+             sbcl-float-features
+             sbcl-flow
+             sbcl-for
+             sbcl-form-fiddle
+             sbcl-glsl-toolkit
+             sbcl-ieee-floats
+             sbcl-jsown
+             sbcl-lambda-fiddle
+             sbcl-lquery
+             sbcl-messagebox
+             sbcl-mmap
+             sbcl-pathname-utils
+             sbcl-pngload
+             sbcl-retrospectiff
+             sbcl-static-vectors
+             sbcl-terrable
+             sbcl-trivial-garbage
+             sbcl-trivial-indent
+             sbcl-verbose
+             sbcl-zpng))
       (home-page "https://github.com/Shirakumo/trial")
       (synopsis "Common Lisp game engine")
       (description
@@ -18108,6 +17542,86 @@ fit together as required by any particular game.")
 (define-public cl-trial
   (sbcl-package->cl-source-package sbcl-trial))
 
+(define-public sbcl-cl-liballegro
+  (let ((commit "49f632ce97fc4f835bf5d450588793234b980a64")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-liballegro")
+      (version (git-version "0.2.15" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/resttime/cl-liballegro")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0brbr7i342s0gadlnzd3a61w2b9ihhx60l19ararnc2asvyhmz7x"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-allegro-lib-path
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((allegro-lib-path (string-append
+                                        (assoc-ref inputs "allegro") "/lib/")))
+                 (substitute* "src/library.lisp"
+                   (("lib \".so\"" all)
+                    (string-append "\"" allegro-lib-path "\"" " lib \".so\"")))))))))
+      (inputs
+       `(("allegro" ,allegro)
+         ("cffi" ,sbcl-cffi)
+         ("float-features" ,sbcl-float-features)
+         ("trivial-garbage" ,sbcl-trivial-garbage)
+         ("trivial-main-thread" ,sbcl-trivial-main-thread)))
+      (home-page "https://github.com/resttime/cl-liballegro")
+      (synopsis "Allegro 5 game programming library bindings for Common Lisp")
+      (description
+       "This package provides CFFI bindings and interface to Allegro 5 game
+developing library for Common Lisp.")
+      (license license:zlib))))
+
+(define-public ecl-cl-liballegro
+  (sbcl-package->ecl-package sbcl-cl-liballegro))
+
+(define-public cl-liballegro
+  (sbcl-package->cl-source-package sbcl-cl-liballegro))
+
+(define-public sbcl-alloy
+  (let ((commit "e86e22c2887836ec31cd97e039f0bca5248d8f1c")
+        (revision "1"))
+    (package
+      (name "sbcl-alloy")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Shirakumo/alloy")
+               (commit commit)))
+         (file-name (git-file-name "alloy" version))
+         (sha256
+          (base32 "1jsqjr6sf86hcdvnjp4gd10qv0r7kfkr9hmda85irb5lha4q9n7w"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       (list sbcl-alexandria sbcl-parachute))
+      (inputs
+       (list sbcl-array-utils sbcl-closer-mop sbcl-documentation-utils))
+      (home-page "https://shirakumo.github.io/alloy/")
+      (synopsis
+       "Common Lisp user interface protocol and toolkit implementation")
+      (description
+       "Alloy is a user interface toolkit.  It is defined through a set of
+protocols that allow for a clear interface, as well as a standardised way to
+integrate Alloy into a target backend.")
+      (license license:zlib))))
+
+(define-public ecl-alloy
+  (sbcl-package->ecl-package sbcl-alloy))
+
+(define-public cl-alloy
+  (sbcl-package->cl-source-package sbcl-alloy))
+
 (define-public sbcl-org-sampler
   (let ((commit "ee135a417750e5b1d810bb9574eb85223cb3038a")
         (revision "1"))
@@ -18125,7 +17639,7 @@ fit together as required by any particular game.")
         (base32 "1dg029in14928qfxvfshyxmdwhzskzhxx3na0zy98ybx69b21qla"))))
      (build-system asdf-build-system/sbcl)
      (inputs
-      `(("iterate" ,sbcl-iterate)))
+      (list sbcl-iterate))
      (home-page "https://github.com/jphmrst/cl-org-sampler")
      (synopsis "Extracting Common Lisp docstrings as Emacs Org-mode documents")
      (description
@@ -18182,10 +17696,11 @@ functions allow Lisp programs to explore the web.")
 
 (define-public sbcl-aserve
   ;; There does not seem to be proper releases.
-  (let ((commit "cac1d6920998ddcbee8310a873414732e707d8e5"))
+  (let ((commit "cac1d6920998ddcbee8310a873414732e707d8e5")
+        (revision "2"))
     (package
       (name "sbcl-aserve")
-      (version (git-version "1.2.50" "1" commit))
+      (version (git-version "1.2.50" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -18196,7 +17711,14 @@ functions allow Lisp programs to explore the web.")
                (commit commit)))
          (file-name (git-file-name "aserve" version))
          (sha256
-          (base32 "0ak6mqp84sjr0a7h5svr16vra4bf4fcx6wpir0n88dc1vjwy5xqa"))))
+          (base32 "0ak6mqp84sjr0a7h5svr16vra4bf4fcx6wpir0n88dc1vjwy5xqa"))
+         (patches (search-patches
+                   ;; Add HTML5 elements to htmlgen.
+                   ;; Adapted from https://github.com/franzinc/aserve/ commits:
+                   ;; * e47bd763: "rfe12668: add HTML 5 elements to htmlgen"
+                   ;; * 7371ce59: "fix bugs in rfe12668 implementation"
+                   "sbcl-aserve-add-HTML-5-elements.patch"
+                   "sbcl-aserve-fix-rfe12668.patch"))))
       (build-system asdf-build-system/sbcl)
       (arguments
        `(#:phases
@@ -18217,7 +17739,8 @@ functions allow Lisp programs to explore the web.")
                #t)))))
       (inputs
        `(("acl-compat" ,sbcl-acl-compat)))
-      (home-page "https://franz.com/support/documentation/current/doc/aserve/aserve.html")
+      (home-page
+       "https://franz.com/support/documentation/current/doc/aserve/aserve.html")
       (synopsis "AllegroServe, a web server written in Common Lisp")
       (description
        "The server part of AllegroServe can be used either as a standalone web
@@ -18231,11 +17754,11 @@ functions allow Lisp programs to explore the web.")
   (sbcl-package->cl-source-package sbcl-aserve))
 
 (define-public sbcl-yxorp
-  (let ((commit "d2e8f9304549e47ae5c7fa35a6b114804603eac9")
-        (revision "1"))
+  (let ((commit "c306898a467995e123a22316c9b79fcac442415b")
+        (revision "4"))
     (package
       (name "sbcl-yxorp")
-      (version (git-version "0" revision commit))
+      (version (git-version "0.4" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -18244,15 +17767,19 @@ functions allow Lisp programs to explore the web.")
                (commit commit)))
          (file-name (git-file-name "cl-yxorp" version))
          (sha256
-          (base32 "1zz1j678vzwkf817h2z0pf0fcyf4mldv4hiv1wyam58hd4bcrjsw"))))
+          (base32 "0ll1s9w29yhhgqssgiw58fcapw4n040gkvpz4sxwv3q2v60rbidj"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cl+ssl" ,sbcl-cl+ssl)
-         ("cl-binding-arrows" ,sbcl-binding-arrows)
-         ("cl-str" ,sbcl-cl-str)
-         ("cl-usocket" ,sbcl-usocket)
-         ("flexi-streams" ,sbcl-flexi-streams)
-         ("trivial-garbage" ,sbcl-trivial-garbage)))
+       (list sbcl-chipz
+             sbcl-chunga
+             sbcl-cl+ssl
+             sbcl-binding-arrows
+             sbcl-cl-str
+             sbcl-usocket
+             sbcl-flexi-streams
+             sbcl-rutils
+             sbcl-salza2
+             sbcl-trivial-garbage))
       (home-page "https://github.com/charje/cl-yxorp")
       (synopsis
        "Reverse proxy server written in and configurable in Common Lisp")
@@ -18320,9 +17847,7 @@ language).")
           (base32 "0wv3j13fj73gigriw5r9vi920hz05ld7zllsvbxdxvmyfy9k1kly"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("aserve" ,sbcl-aserve)
-         ("kmrcl" ,sbcl-kmrcl)
-         ("xmls" ,sbcl-xmls)))
+       (list sbcl-aserve sbcl-kmrcl sbcl-xmls))
       (home-page "https://github.com/nsrahmad/cl-rss")
       (synopsis "Common Lisp RSS processor")
       (description
@@ -18352,7 +17877,7 @@ RSS feeds data via HTTP.  Currently, it supports RSS versions 0.90,
           (base32 "15zs7mc422ycp1cvcxmirif1dq15mlmv8vzd6l6nzn4qgmph9wz0"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)))
+       (list sbcl-alexandria))
       (home-page "https://github.com/scymtym/trivial-with-current-source-form")
       (synopsis "Help producing better errors for macro users")
       (description
@@ -18387,10 +17912,8 @@ concept of a source-form to report where the error or warning is located.")
           (base32 "1h8m2npdzd2cpnl75pvv4yvvfwxa7kl6qvalc9s0y4yws0kaih3i"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandia" ,sbcl-alexandria)
-         ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)
-         ("trivial-with-current-source-form"
-          ,sbcl-trivial-with-current-source-form)))
+       (list sbcl-alexandria sbcl-trivial-macroexpand-all
+             sbcl-trivial-with-current-source-form))
       (home-page "https://github.com/charje/tailrec")
       (synopsis "Macro to optimize a Common Lisp function for tail recursion")
       (description "Just wrap your Common Lisp function in this macro call and
@@ -18421,10 +17944,7 @@ is not tail recursive.")
           (base32 "1bajb09crzadkirdpd6jrpcc55irjd4sxzavygr25l85pafyhniw"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cl-str" ,sbcl-cl-str)
-         ("global-vars" ,sbcl-global-vars)
-         ("plump" ,sbcl-plump)
-         ("tailrec" ,sbcl-tailrec)))
+       (list sbcl-cl-str sbcl-global-vars sbcl-plump sbcl-tailrec))
       (home-page
        "https://github.com/interactive-ssr/client/blob/master/main.org")
       (synopsis "The core functionality for ISSR server modules")
@@ -18442,11 +17962,11 @@ and DOM cleaning, to ensure that all remote DOMs are the same.")
   (sbcl-package->cl-source-package sbcl-issr-core))
 
 (define-public sbcl-portal
-  (let ((commit "cc7ba6a54cea6ef63b17dcc6e653d91d9907f59e")
-        (revision "1"))
+  (let ((commit "416589fa04cb239971422a1272acba236c8333be")
+        (revision "2"))
     (package
       (name "sbcl-portal")
-      (version (git-version "1" revision commit))
+      (version (git-version "1.2" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -18455,18 +17975,18 @@ and DOM cleaning, to ensure that all remote DOMs are the same.")
                (commit commit)))
          (file-name (git-file-name "portal" version))
          (sha256
-          (base32 "0fc81iwb4lpp8d2scdwafkixxwkfmq4gqns522zyb4bh6c1rfmwy"))))
+          (base32 "1012jc068qdd8df6mmbn8vmmqlniqm5j2jbyrraw3yz8c13c8280"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("arrows" ,sbcl-arrows)
-         ("cl-base64" ,sbcl-cl-base64)
-         ("cl-str" ,sbcl-cl-str)
-         ("flexi-streams" ,sbcl-flexi-streams)
-         ("global-vars" ,sbcl-global-vars)
-         ("ironclad" ,sbcl-ironclad)
-         ("parse-float" ,sbcl-parse-float)
-         ("usocket" ,sbcl-usocket)))
+       (list sbcl-alexandria
+             sbcl-arrows
+             sbcl-cl-base64
+             sbcl-cl-str
+             sbcl-flexi-streams
+             sbcl-global-vars
+             sbcl-ironclad
+             sbcl-parse-float
+             sbcl-usocket))
       (home-page "https://github.com/charJe/portal")
       (synopsis "Portable Websocket Server for Common Lisp")
       (description
@@ -18500,17 +18020,17 @@ customizable errors.")
           (base32 "0826qrvk64pjspdklns29dv3zhzfhd6k42fq030xajv8a7hkcxda"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("cl-base64" ,sbcl-cl-base64)
-         ("cl-str" ,sbcl-cl-str)
-         ("hunchentoot" ,sbcl-hunchentoot)
-         ("issr-core" ,sbcl-issr-core)
-         ("jonathan" ,sbcl-jonathan)
-         ("plump" ,sbcl-plump)
-         ("portal" ,sbcl-portal)))
+       (list sbcl-cl-base64
+             sbcl-cl-str
+             sbcl-hunchentoot
+             sbcl-issr-core
+             sbcl-jonathan
+             sbcl-plump
+             sbcl-portal))
       (home-page "https://github.com/interactive-ssr/hunchenissr")
       (synopsis "Interactive Server Side Rendering backend for Hunchentoot")
       (description
-       "Hunchenissr works together with issr.js for the develpment of
+       "Hunchenissr works together with issr.js for the development of
 interactive (changing without page refreshes) websites making use of websocket
 and Common Lisp server HTML generation instead of mountains of convoluted
 Javascript.")
@@ -18539,10 +18059,8 @@ Javascript.")
           (base32 "1xyqacihxwk4vnffqlg93czmalscglp6sh3bwy3qwb7hdxv6yxz6"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("cl-ppcre" ,sbcl-cl-ppcre)
-         ("cl-unification" ,sbcl-cl-unification)
-         ("hunchenissr" ,sbcl-hunchenissr)))
+       (list sbcl-alexandria sbcl-cl-ppcre sbcl-cl-unification
+             sbcl-hunchenissr))
       (home-page "https://github.com/interactive-ssr/hunchenissr-routes")
       (synopsis "Enable path variables when using Hunchenissr")
       (description
@@ -18558,6 +18076,34 @@ bound to whatever value was in the same place in the URL (as a string).")
 (define-public cl-hunchenissr-routes
   (sbcl-package->cl-source-package sbcl-hunchenissr-routes))
 
+(define-public sbcl-genhash
+  (let ((commit "220ae1af8361dbd2005177f2ee11072b6a33934f")
+        (revision "1"))
+    (package
+      (name "sbcl-genhash")
+      (version (git-version "1.7" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/pnathan/genhash")
+               (commit commit)))
+         (file-name (git-file-name "cl-genhash" version))
+         (sha256
+          (base32 "1jnk1fix1zydhy0kn3cvlp6dy0241x7v8ahq001nlr6v152z1cwk"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/pnathan/genhash")
+      (synopsis "Generic hash tables for Common Lisp")
+      (description
+       "This an implementation of CDR 2: generic hash tables for Common Lisp")
+      (license license:public-domain))))
+
+(define-public cl-genhash
+  (sbcl-package->cl-source-package sbcl-genhash))
+
+(define-public ecl-genhash
+  (sbcl-package->ecl-package sbcl-genhash))
+
 (define-public sbcl-spinneret
   ;; No release since 2019, no tags.
   (let ((commit "02451b32648eda4e6e4022bbb7f91d9ea71bebbc"))
@@ -18575,15 +18121,15 @@ bound to whatever value was in the same place in the URL (as a string).")
           (base32 "0jllnsi2ibw0gax9szpdrjxvw9qqibydpdbnkf683yfb1d5jlci1"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("global-vars" ,sbcl-global-vars)
-         ("parenscript" ,sbcl-parenscript)
-         ("cl-markdown" ,sbcl-cl-markdown)
-         ("ppcre" ,sbcl-cl-ppcre)
-         ("serapeum" ,sbcl-serapeum)
-         ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+       (list sbcl-alexandria
+             sbcl-global-vars
+             sbcl-parenscript
+             sbcl-cl-markdown
+             sbcl-cl-ppcre
+             sbcl-serapeum
+             sbcl-trivial-gray-streams))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)))
+       (list sbcl-fiveam))
       (home-page "https://github.com/ruricolist/spinneret")
       (synopsis "Common Lisp HTML5 generator")
       (description
@@ -18619,6 +18165,39 @@ semantics in Lisp and Parenscript.
 (define-public cl-spinneret
   (sbcl-package->cl-source-package sbcl-spinneret))
 
+(define-public sbcl-path-parse
+  (let ((commit "86183f3752374435f8933394b4c5d8e75a37a113")
+        (revision "1"))
+    (package
+      (name "sbcl-path-parse")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/eudoxia0/path-parse")
+               (commit commit)))
+         (file-name (git-file-name "cl-path-parse" version))
+         (sha256
+          (base32 "10mxm6q62cfpv3hw2w8k968ba8a1xglqdkwlkqs4l4nby3b11aaq"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-split-sequence))
+      (native-inputs
+       (list sbcl-fiveam))
+      (home-page "https://github.com/eudoxia0/path-parse")
+      (synopsis "Parse the PATH environment variable in Common Lisp")
+      (description
+       "This package provides a function to parse the @code{PATH} environment
+variable portably in Common Lisp.")
+      (license license:expat))))
+
+(define-public cl-path-parse
+  (sbcl-package->cl-source-package sbcl-path-parse))
+
+(define-public ecl-path-parse
+  (sbcl-package->ecl-package sbcl-path-parse))
+
 (define-public sbcl-cl-libxml2
   (let ((commit "8d03110c532c1a3fe15503fdfefe82f60669e4bd"))
     (package
@@ -18646,9 +18225,10 @@ semantics in Lisp and Parenscript.
          ("libxml2" ,libxml2)
          ("libxslt" ,libxslt)))
       (native-inputs
-       `(("lift" ,sbcl-lift)))
+       (list sbcl-lift))
       (arguments
-       `(#:phases
+       `(#:tests? #f ; FIXME: Tests get stuck indefinitly
+         #:phases
          (modify-phases %standard-phases
            (add-after 'unpack 'fix-paths
              (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -18705,6 +18285,39 @@ child nodes enumeration, etc.
 (define-public cl-libxml2
   (sbcl-package->cl-source-package sbcl-cl-libxml2))
 
+(define-public sbcl-pileup
+  (let ((commit "f269473a570a8e55881082545ee63cfe5c7d3e72")
+        (revision "1"))
+    (package
+      (name "sbcl-pileup")
+      (version (git-version "1.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/nikodemus/pileup")
+               (commit commit)))
+         (file-name (git-file-name "cl-pileup" version))
+         (sha256
+          (base32 "01gvshpxil0ggjgfmgcymbgmpsfaxy6aggm0bywkn40rck3038vb"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-alexandria sbcl-bordeaux-threads))
+      (native-inputs
+       (list sbcl-hu.dwim.stefil))
+      (home-page "https://github.com/nikodemus/pileup")
+      (synopsis "Simple thread-safe binary heap implementation for Common Lisp")
+      (description
+       "@code{Pileup} is a portable, performant, and thread-safe binary heap
+for Common Lisp.")
+      (license license:expat))))
+
+(define-public cl-pileup
+  (sbcl-package->cl-source-package sbcl-pileup))
+
+(define-public ecl-pileup
+  (sbcl-package->ecl-package sbcl-pileup))
+
 (define-public sbcl-feeder
   ;; No release.
   (let ((commit "b05f517d7729564575cc809e086c262646a94d34")
@@ -18723,9 +18336,7 @@ child nodes enumeration, etc.
           (base32 "1dpbzhycg50snl3j01c8dh8gdvhfhz0hnfl54xy55a3wbr3m6rp7"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("documentation-utils" ,sbcl-documentation-utils)
-         ("local-time" ,sbcl-local-time)
-         ("plump" ,sbcl-plump)))
+       (list sbcl-documentation-utils sbcl-local-time sbcl-plump))
       (home-page "https://shinmera.github.io/feeder/")
       (synopsis "RSS, Atom and general feed parsing and generating")
       (description
@@ -18740,3 +18351,1831 @@ formats within this framework.")
 
 (define-public cl-feeder
   (sbcl-package->cl-source-package sbcl-feeder))
+
+(define-public sbcl-routes
+  (let ((commit "1b79e85aa653e1ec87e21ca745abe51547866fa9")
+        (revision "1"))
+    (package
+      (name "sbcl-routes")
+      (version (git-version "0.2.5" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/archimag/cl-routes")
+               (commit commit)))
+         (file-name (git-file-name "cl-routes" version))
+         (sha256
+          (base32 "1zpk3cp2v8hm50ppjl10yxr437vv4552r8hylvizglzrq2ibsbr1"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-tests
+             (lambda* (#:key inputs #:allow-other-keys)
+               ;; Fix: :FORCE and :FORCE-NOT arguments not allowed in
+               ;; a nested call to ASDF/OPERATE:OPERATE unless
+               ;; identically to toplevel
+               (substitute* "routes.asd"
+                 ((" :force t") "")))))))
+      (inputs
+       `(("iterate" ,sbcl-iterate)
+         ("puri" ,sbcl-puri)
+         ("split-sequence" ,sbcl-split-sequence)))
+      (native-inputs
+       (list sbcl-lift))
+      (home-page "https://github.com/archimag/cl-routes")
+      (synopsis "Rails routes system for Common Lisp")
+      (description
+       "This is a a Common Lisp re-implementation of the Rails routes system
+for mapping URLs.")
+      (license license:llgpl))))
+
+(define-public cl-routes
+  (sbcl-package->cl-source-package sbcl-routes))
+
+(define-public ecl-routes
+  (sbcl-package->ecl-package sbcl-routes))
+
+(define-public sbcl-terminfo
+  (let ((commit "b8b2e3ed786bfcf9f1aa4a264cee2e93135080f5")
+        (revision "1"))
+    (package
+      (name "sbcl-terminfo")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/npatrick04/terminfo")
+               (commit commit)))
+         (file-name (git-file-name "terminfo" version))
+         (sha256
+          (base32 "1nmin9rr6f75xdhxysba66xa1dh62fh27w9ad1cvmj0062armf6b"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Terminfo database front end in Common Lisp")
+      (home-page "https://github.com/npatrick04/terminfo")
+      (description
+        "This is a terminfo database front end in Common Lisp.  The package
+provides a method for determining which capabilities a terminal
+(e.g. \"xterm\") has and methods to compile or put commands to a stream.")
+      (license license:expat))))
+
+(define-public cl-terminfo
+  (sbcl-package->cl-source-package sbcl-terminfo))
+
+(define-public ecl-terminfo
+  (sbcl-package->ecl-package sbcl-terminfo))
+
+(define-public sbcl-conium
+  (let ((commit "089adfd8759ec7973bb6f67b98d7a246e67aeb05")
+        (revision "1"))
+    (package
+      (name "sbcl-conium")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/sharplispers/conium")
+               (commit commit)))
+         (file-name (git-file-name "conium" version))
+         (sha256
+          (base32 "0y31za8xr8734p2pf8mrw1jd1fksh2d4y1p12wwjyn8hxxsvsx1w"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-closer-mop))
+      (home-page "https://github.com/sharplispers/conium")
+      (synopsis "Portability library for debugger- and compiler-related tasks")
+      (description
+       "Conium is a portability library for debugger- and compiler-related
+tasks in Common Lisp.  It is fork of SWANK-BACKEND.")
+      (license license:public-domain))))
+
+(define-public cl-conium
+  (sbcl-package->cl-source-package sbcl-conium))
+
+(define-public ecl-conium
+  (sbcl-package->ecl-package sbcl-conium))
+
+(define-public sbcl-terminal-size
+  (let ((commit "e0b3d56a9dd3366baf2a05d84381da5747a2ef4a")
+        (revision "1"))
+    (package
+      (name "sbcl-terminal-size")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/eudoxia0/terminal-size")
+               (commit commit)))
+         (file-name (git-file-name "cl-terminal-size" version))
+         (sha256
+          (base32 "1212wbadms9jzrqgarpj3d9xh9w4dab8jhx4k2aryqgf116zs42h"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-cffi sbcl-osicat))
+      (native-inputs
+       (list sbcl-fiveam))
+      (home-page "https://github.com/eudoxia0/terminal-size")
+      (synopsis "Get the size of the terminal from Common Lisp")
+      (description
+       "This package provides the @code{terminal-size:size} function to get the
+size of the terminal from Common Lisp.")
+      (license license:expat))))
+
+(define-public cl-terminal-size
+  (sbcl-package->cl-source-package sbcl-terminal-size))
+
+(define-public ecl-terminal-size
+  (sbcl-package->ecl-package sbcl-terminal-size))
+
+(define-public sbcl-cl-readline
+  (let ((commit "8438c9ebd92ccc95ebab9cc9cbe6c72d44fccc58")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-readline")
+      (version (git-version "0.1.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/vindarel/cl-readline")
+               (commit commit)))
+         (file-name (git-file-name "cl-readline" version))
+         (sha256
+          (base32 "14iskvqfw71ssaav483vmqw62lrpznysjs800gjjppxs785p1fa0"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cffi" ,sbcl-cffi)
+         ("readline" ,readline)))
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "cl-readline.lisp"
+                 (("libreadline.so")
+                  (string-append (assoc-ref inputs "readline")
+                                 "/lib/libreadline.so"))))))))
+      (home-page "https://github.com/vindarel/cl-readline")
+      (synopsis "Common Lisp bindings to the GNU Readline library")
+      (description
+        "The Readline library provides a set of functions for use by
+applications that allow users to edit command lines as they are typed in.
+Both Emacs and vi editing modes are available.  The Readline library includes
+additional functions to maintain a list of previously-entered command lines, to
+recall and perhaps reedit those lines, and perform csh-like history expansion on
+previous commands.")
+      (license license:gpl3+))))
+
+(define-public cl-readline
+  (sbcl-package->cl-source-package sbcl-cl-readline))
+
+(define-public ecl-cl-readline
+  (sbcl-package->ecl-package sbcl-cl-readline))
+
+(define-public sbcl-generic-comparability
+  (let ((commit "53fc2846319a6eb46b36581e203e1f1542a8acff")
+        (revision "1"))
+    (package
+      (name "sbcl-generic-comparability")
+      (version (git-version "1.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/pnathan/generic-comparability")
+               (commit commit)))
+         (file-name (git-file-name "generic-comparability" version))
+         (sha256
+          (base32 "01ma0cwirxarwwmdwflnh8kmysmr2smh5kyvzhb2074ljxg8yq2p"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-alexandria))
+      (native-inputs
+       (list sbcl-fiveam))
+      (home-page "https://github.com/pnathan/generic-comparability")
+      (synopsis "Implementation of cdr-8")
+      (description
+        "GENERIC-COMPARABILITY is an implementation of CDR-8 (Generic Equality
+and Comparison for Common Lisp).  CDR-8 provides an interface for the EQUALS
+function, which is defined as a general equality predicate, as well as a set of
+ordering (COMPARE) functions for comparison.  The semantics are described in
+the CDR-8 standard.")
+      (license license:llgpl))))
+
+(define-public cl-generic-comparability
+  (sbcl-package->cl-source-package sbcl-generic-comparability))
+
+(define-public ecl-generic-comparability
+  (sbcl-package->ecl-package sbcl-generic-comparability))
+
+(define-public sbcl-cl-libyaml
+  (let ((commit "a7fe9f68bddfd00b7ca467b65b3b41b276336843")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-libyaml")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/eudoxia0/cl-libyaml")
+               (commit commit)))
+         (file-name (git-file-name "cl-libyaml" version))
+         (sha256
+          (base32
+           "06pvmackyhq03rjmihpx6w63m6cy8wx78ll5xpwwvd85bgrqq817"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       (list sbcl-fiveam))
+      (inputs
+       `(("cffi" ,sbcl-cffi)
+         ("libyaml" ,libyaml)))
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "src/library.lisp"
+                 (("libyaml.so")
+                  (string-append (assoc-ref inputs "libyaml")
+                                 "/lib/libyaml.so"))))))))
+      (home-page "https://github.com/eudoxia0/cl-libyaml")
+      (synopsis "Libyaml bindings for Common Lisp")
+      (description
+        "This is a binding to the libyaml library.  It's not meant as
+a full library for YAML, just a bare binding with a couple of utility macros.
+For a YAML parser and emitter using this, check out cl-yaml.")
+      (license license:expat))))
+
+(define-public cl-libyaml
+  (sbcl-package->cl-source-package sbcl-cl-libyaml))
+
+(define-public ecl-cl-libyaml
+  (sbcl-package->ecl-package sbcl-cl-libyaml))
+
+(define-public sbcl-cl-yaml
+  (let ((commit "c3202be9a753c51f3bc79538a5a498a8865192aa")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-yaml")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/eudoxia0/cl-yaml")
+               (commit commit)))
+         (file-name (git-file-name "cl-yaml" version))
+         (sha256
+          (base32 "1izjg0v6rf7dh069bbnnr67l30lsqj86wdk7y9ggbgiwh6v9j185"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-alexandria sbcl-cl-libyaml sbcl-cl-ppcre
+             sbcl-parse-number))
+      (native-inputs
+       (list sbcl-cl-fad sbcl-fiveam sbcl-generic-comparability
+             sbcl-trivial-benchmark sbcl-yason))
+      (home-page "https://github.com/eudoxia0/cl-yaml")
+      (synopsis "YAML parser for Common Lisp")
+      (description
+        "This is a YAML parser and emitter for Common Lisp built on top of
+libyaml.")
+      (license license:expat))))
+
+(define-public cl-yaml
+  (sbcl-package->cl-source-package sbcl-cl-yaml))
+
+(define-public ecl-cl-yaml
+  (sbcl-package->ecl-package sbcl-cl-yaml))
+
+(define-public sbcl-linedit
+  (let ((commit "0561c97dfca2f5854fcc66558a567a9875ddcb8f")
+        (revision "1"))
+    (package
+      (name "sbcl-linedit")
+      (version (git-version "0.17.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/sharplispers/linedit")
+               (commit commit)))
+         (file-name (git-file-name "cl-linedit" version))
+         (sha256
+          (base32 "0hhh7xn6q12rviayfihg1ym6x6csa0pdjgb88ykqbrz2rs3pgpz5"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-alexandria sbcl-cffi sbcl-osicat sbcl-terminfo))
+      (home-page "https://github.com/sharplispers/linedit")
+      (synopsis "Readline-style line-editor for Common Lisp")
+      (description
+       "Linedit is a readline-style library written in Common Lisp that
+provides customizable line-editing for Common Lisp programs.")
+      (license license:expat))))
+
+(define-public cl-linedit
+  (sbcl-package->cl-source-package sbcl-linedit))
+
+(define-public ecl-linedit
+  (sbcl-package->ecl-package sbcl-linedit))
+
+(define-public sbcl-diff
+  (let ((commit "9c84befa598d4e07c3d223242b5b3f83cd94f301")
+        (revision "1"))
+    (package
+      (name "sbcl-diff")
+      (version (git-version "0.4" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/froydnj/diff")
+               (commit commit)))
+         (file-name (git-file-name "cl-diff" version))
+         (sha256
+          (base32 "1giafck8qfvb688kx5bn9g32rfc12jjywg8vdav36aqbd6lxf5z5"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-cl-ppcre sbcl-trivial-gray-streams))
+      (home-page "https://github.com/froydnj/diff")
+      (synopsis "Common Lisp library for computing differences between files")
+      (description
+        "DIFF is a package for computing various forms of differences between
+blobs of data and then doing neat things with those differences.  Currently diff
+knows how to compute three common forms of differences: \"unified\" format
+diffs, \"context\" format diffs, and \"vdelta\" format binary diffs.")
+      (license license:bsd-3))))
+
+(define-public cl-diff
+  (sbcl-package->cl-source-package sbcl-diff))
+
+(define-public ecl-diff
+  (sbcl-package->ecl-package sbcl-diff))
+
+(define-public sbcl-montezuma
+  (let ((commit "ee2129eece7065760de4ebbaeffaadcb27644738")
+        (revision "1"))
+    (package
+      (name "sbcl-montezuma")
+      (version (git-version "0.1.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/sharplispers/montezuma")
+               (commit commit)))
+         (file-name (git-file-name "cl-montezuma" version))
+         (sha256
+          (base32 "0svmvsbsirydk3c1spzfvj8qmkzcs9i69anpfvk1843i62wb7x2c"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           ;; The _darcs directory contains a second copy of
+           ;; montezuma-indexfiles.asd. Remove the directory to
+           ;; prevent build failure caused by .asd files that have
+           ;; the same filename.
+           (add-after 'unpack 'remove-darcs-directory
+             (lambda _
+               (delete-file-recursively
+                "contrib/montezuma-indexfiles/_darcs")))
+           ;; Tests fail with: :FORCE and :FORCE-NOT arguments not
+           ;; allowed in a nested call to ASDF/OPERATE:OPERATE unless
+           ;; identically to toplevel.
+           (add-after 'unpack 'fix-tests
+             (lambda _
+               (substitute* "montezuma.asd"
+                 ((":force t") "")))))))
+      (inputs
+       `(("babel" ,sbcl-babel)
+         ("cl-fad" ,sbcl-cl-fad)
+         ("cl-ppcre" ,sbcl-cl-ppcre)))
+      (native-inputs
+       (list sbcl-trivial-timeout))
+      (home-page "https://github.com/sharplispers/montezuma")
+      (synopsis "Full-text indexing and search for Common Lisp")
+      (description
+       "Montezuma is a text search engine library for Lisp based on the Ferret
+library for Ruby, which is itself based on the Lucene library for Java.")
+      (license (list license:expat       ; montezuma
+                     license:gpl3+)))))  ; contrib/montezuma-indexfiles
+
+(define-public cl-montezuma
+  (sbcl-package->cl-source-package sbcl-montezuma))
+
+(define-public ecl-montezuma
+  (let ((pkg (sbcl-package->ecl-package sbcl-montezuma)))
+    (package
+      (inherit pkg)
+      (arguments
+       (substitute-keyword-arguments (package-arguments pkg)
+         ;; Tests fail with "Pathname without a physical namestring" error
+         ;; on ECL.
+         ((#:tests? _ #f) #f))))))
+
+(define-public sbcl-cl-charms
+  (let ((commit "64aba59d89f85bc5c9402e445873965338a66a02")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-charms")
+      (version (git-version "0.2.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/HiTECNOLOGYs/cl-charms")
+               (commit commit)))
+         (file-name (git-file-name "cl-charms" version))
+         (sha256
+          (base32 "1jczaypa9dhxr34yyhsxb6lrdnircjx8am4iqkc3shfpjn32q323"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cffi" ,sbcl-cffi)
+         ("ncurses" ,ncurses)))
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "src/low-level/curses-bindings.lisp"
+                 (("libncursesw.so")
+                  (string-append (assoc-ref inputs "ncurses")
+                                 "/lib/libncursesw.so"))))))))
+      (home-page "https://github.com/HiTECNOLOGYs/cl-charms")
+      (synopsis "Interface to libcurses in Common Lisp")
+      (description
+       "@code{cl-charms} is an interface to libcurses in Common Lisp.  It
+provides both a raw, low-level interface to libcurses via CFFI, and a more
+higher-level lispier interface.")
+      (license license:expat))))
+
+(define-public cl-charms
+  (sbcl-package->cl-source-package sbcl-cl-charms))
+
+(define-public ecl-cl-charms
+  (sbcl-package->ecl-package sbcl-cl-charms))
+
+(define-public sbcl-trivial-open-browser
+  (let ((commit "7ab4743dea9d592639f15c565bfa0756e828c427")
+        (revision "1"))
+    (package
+      (name "sbcl-trivial-open-browser")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/eudoxia0/trivial-open-browser")
+               (commit commit)))
+         (file-name (git-file-name "trivial-open-browser" version))
+         (sha256
+          (base32 "0ixay1piq420i6adx642qhw45l6ik7rvgk52lyz27dvx5f8yqsdb"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/eudoxia0/trivial-open-browser")
+      (synopsis "Open a browser window from Common Lisp")
+      (description
+       "This package provides a library to open a web browser to a URL.")
+      (license license:expat))))
+
+(define-public cl-trivial-open-browser
+  (sbcl-package->cl-source-package sbcl-trivial-open-browser))
+
+(define-public ecl-trivial-open-browser
+  (sbcl-package->ecl-package sbcl-trivial-open-browser))
+
+(define-public sbcl-clinenoise
+  (let ((commit "46e21f99d06a55d93eaa382cf652d55d457032ef")
+        (revision "1"))
+    (package
+      (name "sbcl-clinenoise")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/jasom/clinenoise")
+               (commit commit)))
+         (file-name (git-file-name "clinenoise" version))
+         (sha256
+          (base32 "0ydlirfk4dbpqqjwwph99v5swcrhd8v9g8q24fvs35wn2vm08lh1"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-alexandria sbcl-cffi sbcl-split-sequence))
+      (home-page "https://github.com/jasom/clinenoise")
+      (synopsis "Port of linenoise to Common Lisp")
+      (description
+       "This package provides a trivial line-input library for VT-like
+terminals.")
+      (license license:bsd-2))))
+
+(define-public cl-clinenoise
+  (sbcl-package->cl-source-package sbcl-clinenoise))
+
+(define-public ecl-clinenoise
+  (sbcl-package->ecl-package sbcl-clinenoise))
+
+(define-public sbcl-trivial-raw-io
+  (let ((commit "b1a3c876305baa0dead419841de7b3e433a75867")
+        (revision "1"))
+    (package
+      (name "sbcl-trivial-raw-io")
+      (version (git-version "0.0.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/kingcons/trivial-raw-io")
+               (commit commit)))
+         (file-name (git-file-name "trivial-raw-io" version))
+         (sha256
+          (base32 "19290zw2b64k78wr62gv30pp7cmqg07q85vfwjknaffjdd73xwi1"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-alexandria))
+      (home-page "https://github.com/kingcons/trivial-raw-io")
+      (synopsis "Trivial portability for raw *nix IO in Common Lisp")
+      (description
+       "This library exports three symbols: @code{with-raw-io},
+@code{read-char}, and @code{read-line}, to provide raw POSIX I/O in Common
+Lisp.")
+      (license license:bsd-2))))
+
+(define-public cl-trivial-raw-io
+  (sbcl-package->cl-source-package sbcl-trivial-raw-io))
+
+(define-public ecl-trivial-raw-io
+  (sbcl-package->ecl-package sbcl-trivial-raw-io))
+
+(define-public sbcl-terminal-keypress
+  (let ((commit "2ef48c045aa627229764b2aa393a83d392d93d08")
+        (revision "1"))
+    (package
+      (name "sbcl-terminal-keypress")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/eudoxia0/terminal-keypress")
+               (commit commit)))
+         (file-name (git-file-name "cl-terminal-keypress" version))
+         (sha256
+          (base32 "11c4krpq5x55qkchx6ykcnb455ssb4r3jjywx3c3irfrkj733ybp"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-alexandria sbcl-trivial-raw-io))
+      (native-inputs
+       (list sbcl-fiveam))
+      (home-page "https://github.com/eudoxia0/terminal-keypress")
+      (synopsis "Read keyboard events in the terminal from Common Lisp")
+      (description
+       "This is a library for reading semi-raw user input from terminals.
+Semi-raw as in, we can't detect if the user pressed the @code{Control} key
+alone, and the function keys are a mystery.  What is supported, however, is:
+
+@itemize
+@item Regular characters
+@item Control+[key]
+@item Alt+[key]
+@item Control+Alt+[key]
+@end itemize")
+      (license license:expat))))
+
+(define-public cl-terminal-keypress
+  (sbcl-package->cl-source-package sbcl-terminal-keypress))
+
+(define-public ecl-terminal-keypress
+  (sbcl-package->ecl-package sbcl-terminal-keypress))
+
+(define-public sbcl-periodic-table
+  (package
+    (name "sbcl-periodic-table")
+    (version "1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://common-lisp.net/project/chemboy/periodic-table-"
+             version ".tar.gz"))
+       (sha256
+        (base32 "1ircvqm3q93ma4rxbxprb1i9rcax10ld6xmdzdhfnigr27sh5jvg"))))
+    (build-system asdf-build-system/sbcl)
+    (home-page "https://common-lisp.net/project/chemboy/")
+    (synopsis "Periodic table for Common Lisp")
+    (description
+     "This package defines a Common Lisp package, @code{:elements}, with an
+@code{ELEMENT} structure and a number of functions to search the periodic
+table.")
+    (license license:llgpl)))
+
+(define-public cl-periodic-table
+  (sbcl-package->cl-source-package sbcl-periodic-table))
+
+(define-public ecl-periodic-table
+  (sbcl-package->ecl-package sbcl-periodic-table))
+
+(define-public sbcl-chemical-compounds
+  (package
+    (name "sbcl-chemical-compounds")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://common-lisp.net/project/chemboy/chemical-compounds-"
+             version ".tar.gz"))
+       (sha256
+        (base32 "12fd8a6ay5qlsq4givzgh9d55mbg4ci2vvmymig6pjl2ms64v0pf"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("periodic-table" ,sbcl-periodic-table)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-files
+           (lambda _
+             ;; Fix incorrect version number.
+             (substitute* "chemical-compounds.asd"
+               ((":version \"1.0.1\"")
+                (string-append ":version \"" ,version "\"")))
+             ;; Remove incorrect declaration of string type.
+             (substitute* "parsing.lisp"
+               (("\\(declare \\(simple-base-string string\\)")
+                "(declare")))))))
+    (home-page "https://common-lisp.net/project/chemboy/")
+    (synopsis "Chemical formula parser and pretty-printer for Common Lisp")
+    (description
+     "It can sometimes be useful to be able to parse chemical compounds in a
+user-friendly syntax into easy-to-manipulate s-expressions.  You also want to
+be able to go in reverse.  You could probably write your own parser — or you
+could just install the chemical-compounds package.")
+    (license license:llgpl)))
+
+(define-public cl-chemical-compounds
+  (sbcl-package->cl-source-package sbcl-chemical-compounds))
+
+(define-public ecl-chemical-compounds
+  (sbcl-package->ecl-package sbcl-chemical-compounds))
+
+(define-public sbcl-chemboy
+  (package
+    (name "sbcl-chemboy")
+    (version "0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://common-lisp.net/project/chemboy/chemboy-"
+             version ".tar.gz"))
+       (sha256
+        (base32 "0lr134l16mjcgdj3fm2yff4chlfbihn1sji7q80y7lnr176zgs7d"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("chemical-compounds" ,sbcl-chemical-compounds)
+       ("periodic-table" ,sbcl-periodic-table)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-files
+           (lambda _
+             ;; Fix incorrect version number.
+             (substitute* "chemboy.asd"
+               ((":version \"0.2\"")
+                (string-append ":version \"" ,version "\"")))
+             ;; Remove incorrect declaration of string type.
+             (substitute* "query-parsing.lisp"
+               (("\\(declare \\(simple-base-string string\\)")
+                "(declare"))
+             ;; Fix incorrect function calls.
+             (substitute* "conversions.lisp"
+               (("\\(pprint-compound element s\\)")
+                "(pprint-compound element :stream s)")
+               (("\\(pprint-compound parsed-compound s\\)")
+                "(pprint-compound parsed-compound :stream s)")))))))
+    (home-page "https://common-lisp.net/project/chemboy/")
+    (synopsis "Common Lisp program for doing basic chemistry calculations")
+    (description
+     "Chemboy is a Common Lisp program for doing basic chemistry calculations.
+This package provides the text-based interface for Chemboy.")
+    (license license:llgpl)))
+
+(define-public cl-chemboy
+  (sbcl-package->cl-source-package sbcl-chemboy))
+
+(define-public ecl-chemboy
+  (sbcl-package->ecl-package sbcl-chemboy))
+
+(define-public sbcl-cl-pass
+  (let ((commit "e58e97c0c0588dc742c061208afb9bc31e4dbd34")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-pass")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/eudoxia0/cl-pass")
+               (commit commit)))
+         (file-name (git-file-name "cl-pass" version))
+         (sha256
+          (base32 "05qx4jrkxqbqi72cxgswbpnifbdvp9mh7apc7566v522899bh0hb"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-ironclad sbcl-trivial-utf-8 sbcl-split-sequence))
+      (native-inputs
+       (list sbcl-fiveam))
+      (home-page "https://github.com/eudoxia0/cl-pass")
+      (synopsis "Password hashing and verification library")
+      (description
+       "@code{cl-pass} is a password hashing and verification library.")
+      (license license:expat))))
+
+(define-public cl-pass
+  (sbcl-package->cl-source-package sbcl-cl-pass))
+
+(define-public ecl-cl-pass
+  (sbcl-package->ecl-package sbcl-cl-pass))
+
+(define-public sbcl-which
+  (let ((commit "b2333e4fcacab6e5d85eecd28b5ef4944bda1448")
+        (revision "1"))
+    (package
+      (name "sbcl-which")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/eudoxia0/which")
+               (commit commit)))
+         (file-name (git-file-name "cl-which" version))
+         (sha256
+          (base32 "127pm9h4rm4w9aadw5yvamnfzhk2rr69kchx10rf9k7sk7izqqfk"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-cl-fad sbcl-path-parse))
+      (native-inputs
+       (list sbcl-fiveam))
+      (home-page "https://github.com/eudoxia0/which")
+      (synopsis "The which command in Common Lisp")
+      (description
+       "This package provides an implementation of the @code{which} UNIX
+command in Common Lisp.")
+      (license license:expat))))
+
+(define-public cl-which
+  (sbcl-package->cl-source-package sbcl-which))
+
+(define-public ecl-which
+  (sbcl-package->ecl-package sbcl-which))
+
+(define-public sbcl-cl-num-utils
+  (let ((commit "97a88cd34540acf52e872a82ebfef3da0a34fa12")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-num-utils")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/tpapp/cl-num-utils")
+               (commit commit)))
+         (file-name (git-file-name "cl-num-utils" version))
+         (sha256
+          (base32 "15ihsxxs76xnldmqfsbxybckqjwrxwcpphgghiwzr2mnbqjpdqkh"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-anaphora sbcl-alexandria sbcl-array-operations
+             sbcl-cl-slice sbcl-let-plus))
+      (native-inputs
+       (list sbcl-clunit))
+      (home-page "https://github.com/tpapp/cl-num-utils")
+      (synopsis "Numerical utilities for Common Lisp")
+      (description
+       "@code{cl-num-utils} implements simple numerical functions for Common
+Lisp, including:
+@itemize
+@item @code{num=}, a comparison operator for floats
+@item simple arithmeric functions, like @code{sum} and @code{l2norm}
+@item elementwise operations for arrays
+@item intervals
+@item special matrices and shorthand for their input
+@item sample statistics
+@item Chebyshev polynomials
+@item univariate rootfinding
+@end itemize")
+      (license license:boost1.0))))
+
+(define-public cl-num-utils
+  (sbcl-package->cl-source-package sbcl-cl-num-utils))
+
+(define-public ecl-cl-num-utils
+  (sbcl-package->ecl-package sbcl-cl-num-utils))
+
+(define-public sbcl-lla
+  (let ((commit "ded805d1e9b1493e17b601116ba9bd8a3de3024f")
+        (revision "1"))
+    (package
+      (name "sbcl-lla")
+      (version (git-version "0.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/tpapp/lla")
+               (commit commit)))
+         (file-name (git-file-name "cl-lla" version))
+         (sha256
+          (base32 "0n9vc7dnyjbbsv1n7rd8sylwda5fsdf8f890g4nachanyx0xps9k"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "src/configuration.lisp"
+                 (("\"libblas.so.3gf\"")
+                  (string-append "\"" (assoc-ref inputs "lapack")
+                                 "/lib/libblas.so\""))
+                 (("\"liblapack.so.3gf\"")
+                  (string-append "\"" (assoc-ref inputs "lapack")
+                                 "/lib/liblapack.so\""))))))))
+      (inputs
+       `(("anaphora" ,sbcl-anaphora)
+         ("alexandria" ,sbcl-alexandria)
+         ("cffi" ,sbcl-cffi)
+         ("cl-num-utils" ,sbcl-cl-num-utils)
+         ("cl-slice" ,sbcl-cl-slice)
+         ("lapack" ,lapack)
+         ("let-plus" ,sbcl-let-plus)))
+      (native-inputs
+       (list sbcl-clunit))
+      (home-page "https://github.com/tpapp/lla")
+      (synopsis "Linear algebra library for Common Lisp")
+      (description
+       "LLA is a high-level Common Lisp library built on BLAS and LAPACK, but
+providing a much more abstract interface with the purpose of freeing the user
+from low-level concerns and reducing the number of bugs in numerical code.")
+      (license license:boost1.0))))
+
+(define-public cl-lla
+  (sbcl-package->cl-source-package sbcl-lla))
+
+(define-public ecl-lla
+  (sbcl-package->ecl-package sbcl-lla))
+
+(define-public sbcl-cl-rmath
+  (let ((commit "f6add1edda31547691d08e36ccf6c17305161aca")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-rmath")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/tpapp/cl-rmath")
+               (commit commit)))
+         (file-name (git-file-name "cl-rmath" version))
+         (sha256
+          (base32 "1ld8vbpy10paymx2hn0mcgd21i7cjhdrayln1jx0kayqxm12mmk4"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "cl-rmath.lisp"
+                 (("\\(cffi:define-foreign-library librmath" all)
+                  (string-append all "\n"
+                                 "  (:unix \""
+                                 (assoc-ref inputs "librmath")
+                                 "/lib/libRmath.so\")"))))))))
+      (inputs
+       `(("cffi" ,sbcl-cffi)
+         ("librmath" ,rmath-standalone)))
+      (home-page "https://github.com/tpapp/cl-rmath")
+      (synopsis "Common Lisp wrapper for libRmath")
+      (description
+       "@code{cl-rmath} is a simple, autogenerated foreign interface for the
+standalone R API @code{libRmath}.  There has been no effort to provide a
+high-level interface for the original library, instead, this library is meant
+to serve as a building block for such an interface.")
+      (license license:boost1.0))))
+
+(define-public cl-rmath
+  (sbcl-package->cl-source-package sbcl-cl-rmath))
+
+(define-public ecl-cl-rmath
+  (sbcl-package->ecl-package sbcl-cl-rmath))
+
+(define-public sbcl-cl-random
+  (let ((commit "5bb65911037f95a4260bd29a594a09df3849f4ea")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-random")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/tpapp/cl-random")
+               (commit commit)))
+         (file-name (git-file-name "cl-random" version))
+         (sha256
+          (base32 "0jn80xphyvyp2v72acr6b8a2f6dw06myr5vrjfl14brsvks7wr89"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-alexandria
+             sbcl-anaphora
+             sbcl-array-operations
+             sbcl-cl-num-utils
+             sbcl-cl-rmath
+             sbcl-cl-slice
+             sbcl-gsll
+             sbcl-let-plus
+             sbcl-lla))
+      (native-inputs
+       (list sbcl-clunit))
+      (home-page "https://github.com/tpapp/cl-random")
+      (synopsis "Random variates for Common Lisp")
+      (description
+       "@code{cl-random} is a library for generating random draws from various
+commonly used distributions, and for calculating statistical functions, such as
+density, distribution and quantiles for these distributions.")
+      (license license:expat))))
+
+(define-public cl-random
+  (sbcl-package->cl-source-package sbcl-cl-random))
+
+(define-public ecl-cl-random
+  (sbcl-package->ecl-package sbcl-cl-random))
+
+(define-public sbcl-mgl-gpr
+  (let ((commit "cb6ce51e2f87bf1d589f3703c13eea6e25780afe")
+        (revision "1"))
+    (package
+      (name "sbcl-mgl-gpr")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/melisgl/mgl-gpr")
+               (commit commit)))
+         (file-name (git-file-name "cl-mgl-gpr" version))
+         (sha256
+          (base32 "0w51dqixh277k6sl8bqvvp1400y6kd1l5h3d9q2f40l9bpxy8gjx"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-cl-random sbcl-mgl-pax))
+      (home-page "https://melisgl.github.io/mgl-gpr/")
+      (synopsis "Common Lisp library of evolutionary algorithms")
+      (description
+       "@code{MGL-GPR} is a library of evolutionary algorithms such as
+Genetic Programming (evolving typed expressions from a set of operators and
+constants) and Differential Evolution.")
+      (license license:expat))))
+
+(define-public cl-mgl-gpr
+  (sbcl-package->cl-source-package sbcl-mgl-gpr))
+
+(define-public ecl-mgl-gpr
+  (sbcl-package->ecl-package sbcl-mgl-gpr))
+
+(define-public sbcl-cl-tld
+  ;; No release.
+  (let ((commit "f5014da8d831fa9481d4181d4450f10a52850c75"))
+    (package
+      (name "sbcl-cl-tld")
+      (version (git-version "0.1" "2" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/lu4nx/cl-tld")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0sxnn35gzdby1ixil6zbjg72vli9fcspwzsqimqk455310syx9iv"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/lu4nx/cl-tld/")
+      (synopsis "Extract the Top Level Domain from domains, in Common Lisp")
+      (description
+       "This library extracts the TLD (Top Level Domain) from domains.  The
+information is taken from @url{https://publicsuffix.org}.")
+      (license license:public-domain))))
+
+(define-public cl-tld
+  (sbcl-package->cl-source-package sbcl-cl-tld))
+
+(define-public ecl-cl-tld
+  (sbcl-package->ecl-package sbcl-cl-tld))
+
+(define-public sbcl-cl-strftime
+  ;; No release.
+  (let ((commit "21cb57f2595faa26d687893963f24ec41822b63c"))
+    (package
+      (name "sbcl-cl-strftime")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ruricolist/cl-strftime/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "00c8hq7vzgb89ab3q7mrp60x743kiqmsk1g51ynhxlqhph2bnslf"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-alexandria sbcl-local-time sbcl-cl-ppcre sbcl-serapeum))
+      (native-inputs
+       (list sbcl-fiveam sbcl-cffi))
+      (home-page "https://github.com/ruricolist/cl-strftime")
+      (synopsis "Common Lisp compiler for the strftime language")
+      (description
+       "CL-STRFTIME is a Common Lisp compiler for the strftime “language.”")
+      (license license:expat))))
+
+(define-public cl-strftime
+  (sbcl-package->cl-source-package sbcl-cl-strftime))
+
+(define-public ecl-cl-strftime
+  (sbcl-package->ecl-package sbcl-cl-strftime))
+
+(define-public sbcl-exit-hooks
+  ;; No release.
+  (let ((commit "78050f4f55c138fcea86a9d720928782021b6012"))
+    (package
+      (name "sbcl-exit-hooks")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ailisp/exit-hooks/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "00rk0pr2cy3hy6giblh166b7yrg06d5lanipjcqv508gkfb0vi47"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/ailisp/exit-hooks")
+      (synopsis "Call functions automatically when Common Lisp exits")
+      (description
+       "@code{exit-hooks} provides a portable way to automatically call some
+user-defined function when exiting Common Lisp (both @code{quit} from the REPL
+or a kill in a shell).  Like @code{atexit} in C and Python or Java’s
+@code{Runtime.addShutdownHook()}.  It currently supports SBCL, CCL, ECL, ABCL,
+Allegro CL, clisp and CMUCL.  Before exit-hooks, there was no portable way of
+doing so and no staightforward way to use an exit hook on ABCL.  It can be used
+for tasks like parmenantly save something when exiting Lisp.")
+      (license license:bsd-2))))
+
+(define-public cl-exit-hooks
+  (sbcl-package->cl-source-package sbcl-exit-hooks))
+
+(define-public ecl-exit-hooks
+  (sbcl-package->ecl-package sbcl-exit-hooks))
+
+(define-public sbcl-cl-base58
+  (let ((commit "f446835b4104896e0eed6a61d2ceb4ad22f589d8")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-base58")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/eudoxia0/cl-base58/")
+               (commit commit)))
+         (file-name (git-file-name "cl-base58" version))
+         (sha256
+          (base32 "01wiiyz1jzxx3zhxi2hpq5n8hv28g1mn0adk793vwjzh4v5bi5zz"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       '(#:asd-systems '("cl-base58-test" "cl-base58")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-tests
+             (lambda _
+               (substitute* "cl-base58-test.asd"
+                 (("cl-test-more")
+                  "prove"))
+               #t)))))
+      (native-inputs
+       (list sbcl-prove))
+      (home-page "https://github.com/eudoxia0/cl-base58")
+      (synopsis "Implementation of base58 for Common Lisp")
+      (description
+       "This library implements the @code{base58} encoding algorithm.  It's
+basically @code{base64} but with a smaller alphabet (58, as in the name) that
+doesn't include similar looking characters, among other things.  See
+@url{https://github.com/bitcoin/bitcoin/blob/master/src/base58.h} for a full
+reference.")
+      (license license:expat))))
+
+(define-public cl-base58
+  (sbcl-package->cl-source-package sbcl-cl-base58))
+
+(define-public ecl-cl-base58
+  (sbcl-package->ecl-package sbcl-cl-base58))
+
+(define-public sbcl-bit-smasher
+  ;; No release.
+  (let ((commit "c2dcb3b5ec0e485484be681fe17c4e81e58790d9"))
+    (package
+      (name "sbcl-bit-smasher")
+      (version (git-version "1.0.2" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/thephoeron/bit-smasher/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0wjmwn06fjpw0rlpaksf3ab727p8fnzj58z7jajl3m0wqd4ii74w"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("cl-base64" ,sbcl-cl-base64)
+         ("cl-base58" ,sbcl-cl-base58)))
+      ;; Load order matters for tests, both for file reading and evaluation.
+      (arguments
+       `(#:asd-systems '("bit-smasher-test" "bit-smasher")
+         #:asd-files '("bit-smasher.asd" "bit-smasher-test.asd")))
+      (home-page "https://github.com/thephoeron/bit-smasher/")
+      (synopsis "Handle bit vectors, bit vector arithmetic, and type conversions")
+      (description
+       "Utility library for handling bit vectors, bit vector arithmetic, and
+universal integer type conversions between bit-vectors, byte-vectors, octals,
+decimals, and hexadecimal notation.")
+      (license license:expat))))
+
+(define-public cl-bit-smasher
+  (sbcl-package->cl-source-package sbcl-bit-smasher))
+
+(define-public ecl-bit-smasher
+  (sbcl-package->ecl-package sbcl-bit-smasher))
+
+(define-public sbcl-overlord
+  ;; No release.
+  (let ((commit "a8f37b321a8aae1652fc50b78e74e57c771cc763"))
+    (package
+      (name "sbcl-overlord")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ruricolist/overlord/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1maqm53yhlhaa3cka8xcc4sq24ifrr4y3y0s5dyyn682xsh14hb4"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("babel" ,sbcl-babel)
+         ("bit-smasher" ,sbcl-bit-smasher)
+         ("bordeaux-threads" ,sbcl-bordeaux-threads)
+         ("cl-strftime" ,sbcl-cl-strftime)
+         ("cmd" ,sbcl-cmd)
+         ("drakma" ,sbcl-drakma)
+         ("exit-hooks" ,sbcl-exit-hooks)
+         ("fset" ,sbcl-fset)
+         ("local-time" ,sbcl-local-time)
+         ("lparallel" ,sbcl-lparallel)
+         ("md5" ,sbcl-md5)
+         ("murmurhash" ,sbcl-cl-murmurhash)
+         ("named-readtables" ,sbcl-named-readtables)
+         ("ppcre" ,sbcl-cl-ppcre)
+         ("serapeum" ,sbcl-serapeum)
+         ("trivia" ,sbcl-trivia)
+         ("trivial-file-size" ,sbcl-trivial-file-size)))
+      (propagated-inputs
+       `(("quickproject" ,sbcl-quickproject)))
+      (native-inputs
+       (list sbcl-fiveam))
+      (arguments
+       `(#:asd-files '("overlord.asd")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'include-overlord/net
+             (lambda _
+               (substitute* "all.lisp"
+                 (("\\(:import-from :overlord/kernel :nproc\\)")
+                  (string-append
+                   "(:import-from :overlord/kernel :nproc)"
+                   "\n"
+                   "(:import-from :overlord/net)")))
+               #t)))))
+      (home-page "https://github.com/ruricolist/overlord")
+      (synopsis "Build system in Common Lisp")
+      (description
+       "Overlord is a build system in Common Lisp.  It is a real build system,
+with all the modern features: rules with multiple outputs, parallel builds,
+immunity to clock issues, and dynamic dependencies.
+
+But Overlord is more than another build system.  Overlord is a uniform
+approach to dependencies inside or outside of a Lisp image.  Overlord is to
+Make what Lisp macros are to C macros.
+
+Overlord is designed to be used from the Lisp REPL.  A command line interface
+is available in a separate repository.  See
+@url{https://github.com/ruricolist/overlord-cli}.")
+      (license license:expat))))
+
+(define-public cl-overlord
+  (sbcl-package->cl-source-package sbcl-overlord))
+
+;; FIXME: Broken on ECL? https://github.com/ruricolist/overlord/issues/25
+;; (define-public ecl-overlord
+;;   (sbcl-package->ecl-package sbcl-overlord))
+
+(define-public sbcl-xpath
+  ;; No release.
+  (let ((commit "d364da693a534e23bd5eb3a85420e9c25e6c75b3"))
+    (package
+      (name "sbcl-xpath")
+      (version (git-version "0.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/sharplispers/xpath/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1fb03fgnzrvh22lw1jdg04pmyja5fib5n42rzwp5mhr829yvxkvp"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-cxml sbcl-parse-number sbcl-cl-ppcre sbcl-cl-yacc))
+      (home-page "https://github.com/sharplispers/xpath/")
+      (synopsis "Implementation of the XML Path Language (XPath) Version 1.0")
+      (description
+       "This library is an implementation of the XML Path Language (XPath)
+Version 1.0.")
+      (license license:bsd-2))))
+
+;; According to
+;; https://github.com/sharplispers/xpath/blob/master/doc/index.xml ECL is not
+;; supported.
+(define-public cl-xpath
+  (sbcl-package->cl-source-package sbcl-xpath))
+
+(define-public sbcl-fxml
+  ;; No release.
+  (let ((commit "a0e73bb48ef03adea94a55986cc27f522074c8e1"))
+    (package
+      (name "sbcl-fxml")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ruricolist/fxml/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1vxdb1cjjqi986f72bggnw1s4yzv12g4li7vn4y49b6lphshr8lm"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-babel
+             sbcl-named-readtables
+             sbcl-serapeum
+             sbcl-quri
+             sbcl-flexi-streams
+             sbcl-split-sequence
+             sbcl-alexandria
+             sbcl-trivial-gray-streams))
+      (native-inputs
+       (list sbcl-fiveam sbcl-cxml sbcl-cxml-rng sbcl-xpath))
+      (home-page "https://github.com/ruricolist/fxml")
+      (synopsis "XML parser and serializer in Common Lisp")
+      (description
+       "FXML is a secure-by-default, error-recovering XML parser and serializer.
+It is a fork of CXML.
+
+You should use FXML instead of CXML if:
+@itemize
+@item You are parsing potentially ill-formed XML.
+@item You are parsing potentially malicious XML.
+@item You need to use Klacks with namespaces.
+@end itemize
+
+FXML’s API is very close to CXML's, and for the most part you can refer to the
+CXML documentation for usage.")
+      (license license:llgpl))))
+
+(define-public cl-fxml
+  (sbcl-package->cl-source-package sbcl-fxml))
+
+(define-public sbcl-vernacular
+  ;; No release.
+  (let ((commit "79be179e9ada423b3ec41d2a1ea6f6e0266ed21f"))
+    (package
+      (name "sbcl-vernacular")
+      (version (git-version "0.8.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ruricolist/vernacular/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "19vzn28hw4is4sgmvzqin18ds89s0pai21vcm0ky10vmfv6wg745"))
+         (modules '((guix build utils)))
+         (snippet
+          '(begin
+             ;; The demo depends on cl-js, which we don't have at this point.
+             (delete-file-recursively "demo")
+             #t))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("overlord" ,sbcl-overlord)
+         ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)
+         ("local-time" ,sbcl-local-time)
+         ("parse-js" ,sbcl-parse-js)
+         ("trivia" ,sbcl-trivia)
+         ("trivial-garbage" ,sbcl-trivial-garbage)
+         ("named-readtables" ,sbcl-named-readtables)
+         ("alexandria" ,sbcl-alexandria)
+         ("serapeum" ,sbcl-serapeum)
+         ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+      (arguments
+       ;; Circular dependency: Tests depend on core-lisp
+       ;; (http://github.com/ruricolist/core-lisp) which depends on
+       ;; Vernacular.
+       '(#:tests? #f))
+      (home-page "https://github.com/ruricolist/vernacular")
+      (synopsis "Module system for languages that compile to Common Lisp")
+      (description
+       "Vernacular is a build and module system for languages that compile to
+Common Lisp.  It allows languages to compile to Lisp while remaining part of
+the Common Lisp ecosystem.  Vernacular languages interoperate with Common Lisp
+and one another.
+
+Vernacular handles locating files, compiling files into FASLs, tracking
+dependencies and rebuilding, and export and import between your new language,
+Lisp, and any other language Vernacular supports.
+
+Vernacular builds on Overlord and is inspired by Racket.")
+      (license license:expat))))
+
+(define-public cl-vernacular
+  (sbcl-package->cl-source-package sbcl-vernacular))
+
+(define-public sbcl-cmn
+  (package
+    (name "sbcl-cmn")
+    (version "2021.11.22")
+    (source
+     (origin
+       (method url-fetch)
+       (uri "https://ccrma.stanford.edu/software/cmn/cmn.tar.gz")
+       (file-name (string-append "cmn-" version ".tar.gz"))
+       (sha256
+        (base32 "04j1l57cdyfi2zzxqwmvmf1hl899ffgs3bl4r42ba47zsw45kq14"))))
+    (build-system asdf-build-system/sbcl)
+    (home-page "https://ccrma.stanford.edu/software/cmn/")
+    (synopsis "Western music notation package written in Common Lisp")
+    (description
+     "CMN provides a package of functions to hierarchically describe a musical
+score.  When evaluated, the musical score is rendered to an image.")
+    (license license:expat)))
+
+(define-public cl-cmn
+  (sbcl-package->cl-source-package sbcl-cmn))
+
+(define-public ecl-cmn
+  (sbcl-package->ecl-package sbcl-cmn))
+
+(define-public sbcl-core-gp
+  (let ((commit "90ec1c4599a19c5a911be1f703f78d5108aee160")
+        (revision "1"))
+    (package
+      (name "sbcl-core-gp")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/jorgetavares/core-gp")
+               (commit commit)))
+         (file-name (git-file-name "cl-core-gp" version))
+         (sha256
+          (base32 "0nzlb2gwqisa1amlpl4zc5xxph2g3qwhfyaxchci67d31rzws6l3"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/jorgetavares/core-gp")
+      (synopsis "Common Lisp library for genetic programming")
+      (description
+       "@code{core-gp} is a Common Lisp library for genetic programming (GP)
+algorithms.  It allows standard GP, strongly-typed GP, grammatical evolution as
+well as standard genetic algorithms.")
+      (license license:expat))))
+
+(define-public cl-core-gp
+  (sbcl-package->cl-source-package sbcl-core-gp))
+
+(define-public ecl-core-gp
+  (sbcl-package->ecl-package sbcl-core-gp))
+
+(define-public sbcl-data-sift
+  (let ((commit "fd617d8200cdcc1b87ecf45ab59bb38e8b16ef7e")
+        (revision "1"))
+    (package
+      (name "sbcl-data-sift")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/archimag/data-sift")
+               (commit commit)))
+         (file-name (git-file-name "cl-data-sift" version))
+         (sha256
+          (base32 "1v7gf0x4ibjzp0c56n9m77hxdgwcm9356zlk5n4l3fx4i0hj6146"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       ;; All test cases test a function that has been removed.
+       `(#:tests? #f))
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cl-ppcre" ,sbcl-cl-ppcre)
+         ("parse-number" ,sbcl-parse-number)
+         ("puri" ,sbcl-puri)))
+      (native-inputs
+       (list sbcl-lift))
+      (home-page "https://github.com/archimag/data-sift")
+      (synopsis
+       "Common Lisp library for validation and transformation of string data")
+      (description
+       "@code{DATA-SIFT} is a Common Lisp data validation and transformation
+library inspired by @code{cl-data-format-validation} and WTForms validators.")
+      (license license:llgpl))))
+
+(define-public cl-data-sift
+  (sbcl-package->cl-source-package sbcl-data-sift))
+
+(define-public ecl-data-sift
+  (sbcl-package->ecl-package sbcl-data-sift))
+
+(define-public sbcl-restas
+  (let ((commit "81bbbab6b36f81f846f78e71232e9d3d15f6d952")
+        (revision "1"))
+    (package
+      (name "sbcl-restas")
+      (version (git-version "0.1.4" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/archimag/restas")
+               (commit commit)))
+         (file-name (git-file-name "cl-restas" version))
+         (sha256
+          (base32 "00ng6jik1lwjw3bbxhijy8s0ml24lgm73liwrr01gcsb0r6wrjjn"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "contrib/restas-daemon.lisp"
+                 (("/lib64/") "")
+                 (("/lib/") "")
+                 (("libcap.so")
+                  (string-append (assoc-ref inputs "libcap")
+                                 "/lib/libcap.so"))))))))
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("bordeaux-threads" ,sbcl-bordeaux-threads)
+         ("cffi" ,sbcl-cffi)
+         ("data-sift" ,sbcl-data-sift)
+         ("hunchentoot" ,sbcl-hunchentoot)
+         ("libcap" ,libcap)
+         ("routes" ,sbcl-routes)))
+      (home-page "https://github.com/archimag/restas")
+      (synopsis "Common Lisp web framework")
+      (description "@code{RESTAS} is a Common Lisp web application framework.")
+      (license license:llgpl))))
+
+(define-public cl-restas
+  (sbcl-package->cl-source-package sbcl-restas))
+
+(define-public ecl-restas
+  (sbcl-package->ecl-package sbcl-restas))
+
+(define-public sbcl-zsort
+  (let ((commit "f6724a6fff7662a942195cedb0d7f00da59c74ed")
+        (revision "1"))
+    (package
+      (name "sbcl-zsort")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/jorgetavares/zsort")
+               (commit commit)))
+         (file-name (git-file-name "cl-zsort" version))
+         (sha256
+          (base32 "1vyklyh99712zsll4qi0m4mm8yb1nz04403vl8i57bjv5p5max49"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-alexandria))
+      (home-page "https://github.com/jorgetavares/zsort")
+      (synopsis "Collection of portable sorting algorithms in Common Lisp")
+      (description
+       "@code{zsort} is a collection of portable sorting algorithms.  Common
+Lisp provides the @code{sort} and @code{stable-sort} functions but these can
+have different algorithms implemented according to each implementation.  Also,
+the standard sorting functions might not be the best for a certain situations.
+This library aims to provide developers with more options.")
+      (license license:expat))))
+
+(define-public cl-zsort
+  (sbcl-package->cl-source-package sbcl-zsort))
+
+(define-public ecl-zsort
+  (sbcl-package->ecl-package sbcl-zsort))
+
+(define-public sbcl-cl-https-everywhere
+  ;; No release.
+  ;; Don't forget to update the https-everywhere input.
+  (let ((commit "cbcc73b985a5b1c0ce0d4ec38bc982a0538d4bd8"))
+    (package
+      (name "sbcl-cl-https-everywhere")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ruricolist/cl-https-everywhere/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1wcvx1icwym1ncd6wl1wxzkyyndrm796caalbklvjd4a2cbl3xxi"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("global-vars" ,sbcl-global-vars)
+         ("parenscript" ,sbcl-parenscript)
+         ("cl-markdown" ,sbcl-cl-markdown)
+         ("cl-tld" ,sbcl-cl-tld)
+         ("fxml" ,sbcl-fxml)
+         ("overlord" ,sbcl-overlord)
+         ("ppcre" ,sbcl-cl-ppcre)
+         ("serapeum" ,sbcl-serapeum)
+         ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
+         ("vernacular" ,sbcl-vernacular)))
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)
+         ("https-everywhere"
+          ,(let ((version "2021.7.13"))
+             (origin
+               (method git-fetch)
+               (uri (git-reference
+                     (url "https://github.com/EFForg/https-everywhere")
+                     (commit version)))
+               (file-name (git-file-name "https-everywhere" version))
+               (sha256
+                (base32
+                 "1k5gj29imhxf47sv3d8rxyrgr6k65scp2fm040va3nfshayslzia")))))))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'link-https-everywhere-repo
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((https-everywhere (assoc-ref inputs "https-everywhere")))
+                 (symlink https-everywhere "https-everywhere"))))
+           (add-after 'unpack 'fix-overlord-build
+             ;; Upstream bugs?  See
+             ;; https://github.com/ruricolist/cl-https-everywhere/issues/1.
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (rulesets.xml (string-append out "/share/common-lisp/" (%lisp-type)
+                                                   "/cl-https-everywhere/rulesets.xml")))
+                 (substitute* "build.lisp"
+                   (("\\(depends-on https-everywhere-version\\)") "")
+                   ;; Don't rebuild the rulesets just because the timestamp is epoch.
+                   (("\\(vernacular:require-default :cl-https-everywhere/rulesets-file \"rulesets.xml\"\\)")
+                    (format #f "(if (uiop:file-exists-p ~s)
+      (compile-rulesets ~s)
+      (vernacular:require-default :cl-https-everywhere/rulesets-file \"rulesets.xml\"))"
+                            rulesets.xml
+                            rulesets.xml))
+                   (("\\(uiop:parse-unix-namestring \"https-everywhere/src/chrome/content/rules/\\*\\.xml\")")
+                    "\"https-everywhere/src/chrome/content/rules/*.xml\"")
+                   (("\\(out temp :external-format :utf-8\\)")
+                    "(out temp :external-format :utf-8 :if-exists :supersede)")))
+               #t)))))
+      (home-page "https://github.com/ruricolist/cl-https-everywhere/")
+      (synopsis "Use HTTPS Everywhere rules from Lisp")
+      (description
+       "CL-HTTPS-EVERYWHERE parses HTTPS Everywhere rulesets and makes them
+available for use in Lisp programs.")
+      (license (list license:expat
+                     ;; For the ruleset
+                     license:gpl2+)))))
+
+(define-public cl-https-everywhere
+  (sbcl-package->cl-source-package sbcl-cl-https-everywhere))
+
+(define-public sbcl-maxpc
+  (let ((commit "e5e58d053039517d30fd59ab2d128256b87790d5")
+        (revision "1"))
+    (package
+      (name "sbcl-maxpc")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/eugeneia/maxpc")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "15wrjbr2js6j67c1dd4p2qxj49q9iqv1lhb7cwdcwpn79crr39gf"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://mr.gy/software/maxpc/api.html")
+      (synopsis
+       "Library for writing parsers and lexers based on combinatory parsing")
+      (description
+       "@emph{Max’s Parser Combinators} is a simple and pragmatic library for
+writing parsers and lexers based on combinatory parsing.  MaxPC is capable of
+parsing deterministic, context-free languages, provides powerful tools for
+parse tree transformation and error handling, and can operate on
+@dfn{sequences} and @dfn{streams}.  It supports unlimited backtracking, but
+does not implement @url{http://pdos.csail.mit.edu/~baford/packrat/thesis/,
+Packrat Parsing}.  Instead, MaxPC achieves good performance through its
+optimized primitives, and explicit separation of matching and capturing input.
+In practice, MaxPC parsers perform better on typical computer languages—when
+compared to Packrat parsers—at the expense of not producing linear-time
+parsers.")
+      (license license:agpl3))))
+
+(define-public cl-maxpc
+  (sbcl-package->cl-source-package sbcl-maxpc))
+
+(define-public ecl-maxpc
+  (sbcl-package->ecl-package sbcl-maxpc))
+
+(define-public sbcl-random-state
+  (let ((commit "c270d4f15e0b66ba9680ca8734a5de56959cb118")
+        (revision "1"))
+    (package
+      (name "sbcl-random-state")
+      (version (git-version "0.1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Shinmera/random-state")
+               (commit commit)))
+         (file-name (git-file-name "cl-random-state" version))
+         (sha256
+          (base32 "0r3bk6hqpr0qmpza93pknl8wpsd6y0yy9qg7vz751a7gzzww9vj6"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-documentation-utils))
+      (home-page "https://shinmera.github.io/random-state/")
+      (synopsis "Portable random number generation")
+      (description
+       "This library is a collection of @dfn{pseudo random number generators}.
+
+While Common Lisp does provide a @code{RANDOM} function, it does not allow the
+user to pass an explicit @code{SEED}, nor to portably exchange the random
+state between implementations.  This can be a headache in cases like games,
+where a controlled seeding process can be very useful.
+
+For both curiosity and convenience, this library offers multiple algorithms to
+generate random numbers, as well as a bunch of generally useful methods to
+produce desired ranges.")
+      (license license:zlib))))
+
+(define-public cl-random-state
+  (sbcl-package->cl-source-package sbcl-random-state))
+
+(define-public ecl-random-state
+  (sbcl-package->ecl-package sbcl-random-state))
+
+(define-public sbcl-decimals
+  (package
+    (name "sbcl-decimals")
+    (version "2021")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tlikonen/cl-decimals")
+             (commit version)))
+       (file-name (git-file-name "cl-decimals" version))
+       (sha256
+        (base32 "0wn5hq1pwd3wpjqqhpjzarcdk1q6416g8y447iaf55j5nbhlmbn6"))))
+    (build-system asdf-build-system/sbcl)
+    (home-page "https://github.com/tlikonen/cl-decimals")
+    (synopsis "Decimal number parser and formatting package for Common Lisp")
+    (description "This Common Lisp package offers functions for parsing and
+formatting decimal numbers.  The package's main interface are the functions
+@code{parse-decimal-number} and @code{format-decimal-number}.  The former is
+for parsing strings for decimal numbers and the latter for pretty-printing
+them as strings.")
+    (license license:cc0)))
+
+(define-public cl-decimals
+  (sbcl-package->cl-source-package sbcl-decimals))
+
+(define-public ecl-decimals
+  (sbcl-package->ecl-package sbcl-decimals))
+
+(define-public sbcl-simple-date-time
+  (let ((commit "d6992afddedf67a8172a0120a1deac32afcaa2e8")
+        (revision "1"))
+    (package
+      (name "sbcl-simple-date-time")
+      (version (git-version "0.1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/quek/simple-date-time")
+               (commit commit)))
+         (file-name (git-file-name "cl-simple-date-time" version))
+         (sha256
+          (base32 "06iwf13gcdyqhkzfkcsfdl8iqbdl44cx01c3fjsmhl0v1pp8h2m4"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-cl-ppcre))
+      (home-page "https://github.com/quek/simple-date-time")
+      (synopsis "Date and time library for Common Lisp")
+      (description "This package is a simple date and time library.")
+      (license license:bsd-4))))
+
+(define-public cl-simple-date-time
+  (sbcl-package->cl-source-package sbcl-simple-date-time))
+
+(define-public ecl-simple-date-time
+  (sbcl-package->ecl-package sbcl-simple-date-time))
+
+(define-public sbcl-april
+  (let ((commit "963e2d8e5575a7d430c1fba7adedd15cb23c4ce8")
+        (revision "1"))
+    (package
+      (name "sbcl-april")
+      (version (git-version "0.9.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/phantomics/april")
+               (commit commit)))
+         (file-name (git-file-name "cl-april" version))
+         (sha256
+          (base32 "0v27fpss1ayca2r47k0zpqa9a423a86pv8s2mlgc3g5s48lgcmj3"))
+         (modules '((guix build utils)))
+         (snippet '(begin
+                     ;; Remove bundled Apache-relicensed MaxPC.
+                     (delete-file-recursively "maxpc-apache")
+                     ;; Ensure references are to upstream MaxPC.
+                     (substitute* "vex/vex.asd"
+                       (("maxpc-apache") "maxpc"))))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-alexandria
+             sbcl-array-operations
+             sbcl-maxpc
+             sbcl-cl-ppcre
+             sbcl-symbol-munger
+             sbcl-prove
+             sbcl-parse-number
+             sbcl-lparallel
+             sbcl-random-state
+             sbcl-decimals
+             sbcl-simple-date-time
+             sbcl-trivia))
+      (home-page "https://github.com/phantomics/april")
+      (synopsis "Array Programming Re-Imagined in Lisp")
+      (description
+       "April compiles a subset of the APL programming language into
+Common Lisp.  Leveraging Lisp's powerful macros and numeric processing
+faculties, it brings APL's expressive potential to bear for Lisp developers.
+Replace hundreds of lines of number-crunching code with a single line of
+APL.")
+      (license license:asl2.0))))
+
+(define-public cl-april
+  (sbcl-package->cl-source-package sbcl-april))
+
+(define-public ecl-april
+  (sbcl-package->ecl-package sbcl-april))
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index fa8b25ae85..8c1a5f90a0 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -19,6 +19,8 @@
 ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
 ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;; Copyright © 2021 Paul A. Patience <paul@apatience.com>
+;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -229,13 +231,9 @@ Definition Facility.")
            ;; https://www.ma.utexas.edu/pipermail/maxima/2008/009769.html
            (delete 'strip))))
       (inputs
-       `(("bash-minimal" ,bash-minimal)
-         ("gmp" ,gmp)
-         ("libtirpc" ,libtirpc)
-         ("readline" ,readline)))
+       (list bash-minimal gmp libtirpc readline))
       (native-inputs
-       `(("m4" ,m4)
-         ("texinfo" ,texinfo)))
+       (list m4 texinfo))
       (home-page "https://www.gnu.org/software/gcl/")
       (synopsis "A Common Lisp implementation")
       (description "GCL is an implementation of the Common Lisp language.  It
@@ -260,9 +258,7 @@ interface to the Tk widget system.")
     (build-system gnu-build-system)
     ;; src/configure uses 'which' to confirm the existence of 'gzip'.
     (native-inputs
-     `(("cl-asdf" ,cl-asdf)
-       ("which" ,which)
-       ("texinfo" ,texinfo)))
+     (list cl-asdf which texinfo))
     ;; When ECL is embedded in a program that wants to use Common Lisp as an
     ;; extension language, libgmp, libatomic-ops, libgc and libffi must be
     ;; present when compiling the program because they are required by ECL's
@@ -270,10 +266,7 @@ interface to the Tk widget system.")
     ;; Therefore we put these libraries in 'propagated-inputs' instead
     ;; of 'inputs'.
     (propagated-inputs
-     `(("gmp" ,gmp)
-       ("libatomic-ops" ,libatomic-ops)
-       ("libgc" ,libgc)
-       ("libffi" ,libffi)))
+     (list gmp libatomic-ops libgc libffi))
     (arguments
      `(#:configure-flags '("--without-rt")
        ;; FIXME: As of version 20.4.24, we pass 17995 tests and fail 7.
@@ -363,11 +356,8 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.")
         (base32 "0k2dmgl0miz3767iks4p0mvp6xw0ysyxhjpklyh11j010rmh6hqb"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("cl-asdf" ,cl-asdf)))
-    (inputs `(("libffcall" ,libffcall)
-              ("ncurses" ,ncurses)
-              ("readline" ,readline)
-              ("libsigsegv" ,libsigsegv)))
+     (list cl-asdf))
+    (inputs (list libffcall ncurses readline libsigsegv))
     (arguments
      `(#:configure-flags '(,@(if (string-prefix? "armhf-linux"
                                                  (or (%current-system)
@@ -427,14 +417,14 @@ an interpreter, a compiler, a debugger, and much more.")
 (define-public sbcl
   (package
     (name "sbcl")
-    (version "2.1.6")
+    (version "2.1.9")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
                            version "-source.tar.bz2"))
        (sha256
-        (base32 "1vydq6mmssla2vn0plpsrm50n3b42a464zxw72j6qihas9fhq8cb"))))
+        (base32 "189gjqzdz10xh3ybiy4ch1r98bsmkcb4hpnrmggd4y2g5kqnyx4y"))))
     (build-system gnu-build-system)
     (outputs '("out" "doc"))
     (native-inputs
@@ -659,8 +649,7 @@ statistical profiler, a code coverage tool, and many other extensions.")
                 "0x4bjx6cxsjvxyagijhlvmc7jkyxifdvz5q5zvz37028va65243c")
                (_ "0ll017ajcfsyx8f7zsy4394y8xxvz40iz0gcsmznp0n3mf0xi67c"))))))))
     (native-inputs
-     `(("cl-asdf" ,cl-asdf)
-       ("m4" ,m4)))
+     (list cl-asdf m4))
     (arguments
      `(#:tests? #f                      ;no 'check' target
        #:modules ((ice-9 match)
@@ -789,7 +778,7 @@ interface.")
                                "X_EXTRA_LIBS=-lfontconfig"
                                "--with-x")
        #:tests? #f)) ; No make check.
-    (native-inputs `(("intltool" ,intltool)))
+    (native-inputs (list intltool))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("sdl" ,sdl)
@@ -855,9 +844,9 @@ libraries for Machine Learning, Neural Nets and statistical estimation.")
                  (install-file "mdli" bin)
                  #t))))))
       (native-inputs
-       `(("perl" ,perl)))
+       (list perl))
       (inputs
-       `(("libgc" ,libgc)))
+       (list libgc))
       (synopsis "Interpreter for the MIT Design Language (MDL)")
       (description "MDL (the MIT Design Language) is a descendant of Lisp.  It
 was originally developed in 1971 on the PDP-10 computer under the Incompatible
@@ -1125,8 +1114,7 @@ including a built-in database engine and a GUI system.")
        (inherit picolisp32)
        (name "picolisp")
        (native-inputs
-        `(("picolisp32" ,picolisp32)
-          ("which" ,which)))
+        (list picolisp32 which))
        (arguments
         (substitute-keyword-arguments (package-arguments picolisp32)
           ((#:system _ "") (%current-system))
@@ -1173,7 +1161,7 @@ including a built-in database engine and a GUI system.")
 (define-public janet
   (package
     (name "janet")
-    (version "1.12.2")
+    (version "1.19.0")
     (source
      (origin
        (method git-fetch)
@@ -1182,20 +1170,18 @@ including a built-in database engine and a GUI system.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0if514zdmbjvvrsa9x5yfvg2b14sz53yaka12g3yhwkq8ls3qk0c"))))
+        (base32 "1gpwhgnkwxjp95gs3i5dcdpsmv1pa7a299m8hccyy92jxd15pym6"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags (list
-                     (string-append "DESTDIR=" (assoc-ref %outputs "out"))
-                     (string-append "PREFIX=")
-                     (string-append "CC=" (assoc-ref %build-inputs "gcc")
-                                    "/bin/gcc"))
+     `(#:make-flags
+       (list
+         (string-append "DESTDIR=" (assoc-ref %outputs "out"))
+         (string-append "PREFIX=")
+         (string-append "CC=" ,(cc-for-target)))
+       #:test-target "test"
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
-         (replace 'check
-           (lambda _
-             (invoke "make" "test"))))))
+         (delete 'configure))))
     (home-page "https://janet-lang.org/")
     (synopsis "Functional, imperative and embeddable programming language")
     (description
@@ -1270,7 +1256,7 @@ and make for REPLs that start blazing fast.
         (base32 "020ipjfqa3l8skd97cj5kq837wgpj28ygfxnkv64cnjrlbnzh161"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("sbcl" ,sbcl)))
+     (list sbcl))
     (arguments
      `(#:tests? #f
        #:make-flags
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 7cfa02ec99..051bbfeab5 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -16,9 +16,12 @@
 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2021 Lars-Dominik Braun <lars@6xq.net>
+;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,6 +42,7 @@
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix memoization)
   #:use-module (guix utils)
@@ -51,7 +55,9 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages bootstrap)           ;glibc-dynamic-linker
+  #:use-module (gnu packages check)               ;python-lit
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages julia)               ;julia-patch
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages lua)
@@ -64,7 +70,10 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages xml)
-  #:export (system->llvm-target))
+  #:use-module (srfi srfi-1)
+  #:use-module (ice-9 match)
+  #:export (make-lld-wrapper
+            system->llvm-target))
 
 (define* (system->llvm-target #:optional
                               (system (or (and=> (%current-target-system)
@@ -107,7 +116,7 @@ as \"x86_64-linux\"."
     (build-system cmake-build-system)
     (native-inputs (package-native-inputs llvm))
     (inputs
-     `(("llvm" ,llvm)))
+     (list llvm))
     (arguments
      `(;; Don't use '-g' during the build to save space.
        #:build-type "Release"
@@ -177,8 +186,7 @@ given PATCHES.  When TOOLS-EXTRA is given, it must point to the
              `(("clang-tools-extra" ,tools-extra))
              '())))
     (propagated-inputs
-     `(("llvm" ,llvm)
-       ("clang-runtime" ,clang-runtime)))
+     (list llvm clang-runtime))
     (arguments
      `(#:configure-flags
        (list "-DCLANG_INCLUDE_TESTS=True"
@@ -473,6 +481,7 @@ output), and Binutils.")
     (inputs `(("clang" ,clang)
               ("ld-wrapper" ,(car (assoc-ref (%final-inputs) "ld-wrapper")))
               ("binutils" ,binutils)
+              ("libomp" ,libomp)            ;used when linking with '-fopenmp'
               ("libc" ,glibc)
               ("libc-debug" ,glibc "debug")
               ("libc-static" ,glibc "static")))))
@@ -480,31 +489,48 @@ output), and Binutils.")
 (define-public llvm-12
   (package
     (name "llvm")
-    (version "12.0.0")
+    (version "12.0.1")
     (source
      (origin
       (method url-fetch)
       (uri (llvm-uri "llvm" version))
       (sha256
        (base32
-        "0l4b79gwfvxild974aigcq1yigypjsk2j5p59syhl6ksd744gp29"))))
+        "1pzx9zrmd7r3481sbhwvkms68fwhffpp4mmz45dgrkjpyl2q96kx"))))
     (build-system cmake-build-system)
     (outputs '("out" "opt-viewer"))
     (native-inputs
      `(("python" ,python-wrapper)
        ("perl"   ,perl)))
     (inputs
-     `(("libffi" ,libffi)))
+     (list libffi))
     (propagated-inputs
-     `(("zlib" ,zlib)))                 ;to use output from llvm-config
+     (list zlib))                 ;to use output from llvm-config
     (arguments
-     `(#:configure-flags '("-DCMAKE_SKIP_BUILD_RPATH=FALSE"
-                           "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
-                           "-DBUILD_SHARED_LIBS:BOOL=TRUE"
-                           "-DLLVM_ENABLE_FFI:BOOL=TRUE"
-                           "-DLLVM_REQUIRES_RTTI=1" ; For some third-party utilities
-                           "-DLLVM_INSTALL_UTILS=ON") ; Needed for rustc.
-
+     ;; TODO(core-updates): Unconditionally use quasiquote
+     `(#:configure-flags
+       ,#~(#$(if (%current-target-system)
+                 #~quasiquote
+                 #~quote)
+           ;; These options are required for cross-compiling LLVM according to
+           ;; https://llvm.org/docs/HowToCrossCompileLLVM.html.
+           (#$@(if (%current-target-system)
+                   #~(,(string-append "-DLLVM_TABLEGEN="
+                                      #+(file-append this-package
+                                                     "/bin/llvm-tblgen"))
+                      #$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE="
+                                       (%current-target-system))
+                      #$(string-append "-DLLVM_TARGET_ARCH="
+                                       (system->llvm-target))
+                      #$(string-append "-DLLVM_TARGETS_TO_BUILD="
+                                       (system->llvm-target)))
+                   #~())
+            "-DCMAKE_SKIP_BUILD_RPATH=FALSE"
+            "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
+            "-DBUILD_SHARED_LIBS:BOOL=TRUE"
+            "-DLLVM_ENABLE_FFI:BOOL=TRUE"
+            "-DLLVM_REQUIRES_RTTI=1" ; For some third-party utilities
+            "-DLLVM_INSTALL_UTILS=ON")) ; Needed for rustc.
        ;; Don't use '-g' during the build, to save space.
        #:build-type "Release"
        #:phases
@@ -542,22 +568,20 @@ of programming tools as well as libraries with equivalent functionality.")
 (define-public clang-runtime-12
   (clang-runtime-from-llvm
    llvm-12
-   "0d444qihq9jhqnfv003cr704v363va72zl6qaw2algj1c85cva45"))
+   "1950rg294izdwkaasi7yjrmadc9mzdd5paf0q63jjcq2m3rdbj5l"))
 
 (define-public clang-12
   (clang-from-llvm llvm-12 clang-runtime-12
-                   "1vd9rhhrd8ghdg111lac7w8by71y9l14yh5zxfijsm6lj4p4avp2"
-                   #:patches '("clang-11.0-libc-search-path.patch")
+                   "0px4gl27az6cdz6adds89qzdwb1cqpjsfvrldbz9qvpmphrj34bf"
+                   #:patches '("clang-12.0-libc-search-path.patch")
                    #:tools-extra
                    (origin
                      (method url-fetch)
                      (uri (llvm-uri "clang-tools-extra"
                                     (package-version llvm-12)))
-                     (patches
-                      (search-patches "clang-12-tools-extra-directory.patch"))
                      (sha256
                       (base32
-                       "0p3dzr0qa7mar83y66xa5m5apynf6ia0lsdsq6axwnm64ysy0hdd")))))
+                       "1r9a4fdz9ci58b5z2inwvm4z4cdp6scrivnaw05dggkxz7yrwrb5")))))
 
 (define-public clang-toolchain-12
   (make-clang-toolchain clang-12))
@@ -679,7 +703,7 @@ of programming tools as well as libraries with equivalent functionality.")
 (define-public clang-8
   (clang-from-llvm llvm-8 clang-runtime-8
                    "0svk1f70hvpwrjp6x5i9kqwrqwxnmcrw5s7f4cxyd100mdd12k08"
-                   #:patches '("clang-7.0-libc-search-path.patch")))
+                   #:patches '("clang-8.0-libc-search-path.patch")))
 
 (define-public clang-toolchain-8
   (make-clang-toolchain clang-8))
@@ -822,6 +846,8 @@ of programming tools as well as libraries with equivalent functionality.")
      (origin
        (method url-fetch)
        (uri (llvm-uri "llvm" version))
+       (patches
+        (search-patches "llvm-3.6-fix-build-with-gcc-10.patch"))
        (sha256
         (base32
          "153vcvj8gvgwakzr4j0kndc0b7wn91c2g1vy2vg24s6spxcc23gn"))))))
@@ -915,19 +941,51 @@ of programming tools as well as libraries with equivalent functionality.")
                   ,@(package-properties llvm-12)))))
 
 
+
+(define-public libunwind-headers
+  (package
+    (name "libunwind-headers")
+    (version "12.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (llvm-uri "libunwind" version))
+              (sha256
+               (base32
+                "192ww6n81lj2mb9pj4043z79jp3cf58a9c2qrxjwm5c3a64n1shb"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:phases (modify-phases (map (lambda (phase)
+                                      (assq phase %standard-phases))
+                                    '(set-paths unpack))
+                  (add-after 'unpack 'install
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (mkdir out)
+                        (copy-recursively "include"
+                                          (string-append out "/include"))))))))
+    (home-page "https://clang.llvm.org/docs/Toolchain.html")
+    (synopsis "LLVM libunwind header files")
+    (description
+     "This package contains header files for the LLVM C++ unwinding library.")
+    (license license:asl2.0)))          ;with LLVM exceptions
+
 (define-public lld
   (package
     (name "lld")
-    (version "11.0.0")
+    (version "12.0.1")
     (source (origin
               (method url-fetch)
               (uri (llvm-uri "lld" version))
               (sha256
                (base32
-                "077xyh7sij6mhp4dc4kdcmp9whrpz332fa12rwxnzp3wgd5bxrzg"))))
+                "0qg3fgc7wj34hdkqn21y03zcmsdd01szhhm1hfki63iifrm3y2v9"))))
     (build-system cmake-build-system)
+    (native-inputs
+     ;; Note: check <https://bugs.llvm.org/show_bug.cgi?id=49228> to see
+     ;; whether this is still necessary.
+     (list libunwind-headers))
     (inputs
-     `(("llvm" ,llvm-11)))
+     (list llvm-12))
     (arguments
      `(#:build-type "Release"
        ;; TODO: Tests require the lit tool, which isn't installed by the LLVM
@@ -939,25 +997,64 @@ of programming tools as well as libraries with equivalent functionality.")
 components which highly leverage existing libraries in the larger LLVM Project.")
     (license license:asl2.0))) ; With LLVM exception
 
+(define* (make-lld-wrapper lld #:key lld-as-ld?)
+  "Return a LLD wrapper.  When LLD-AS-LD? is true, create a 'ld' symlink that
+points to 'lld'."
+  (package
+    (name (if lld-as-ld? "lld-as-ld-wrapper" "lld-wrapper"))
+    (version "0")
+    (source #f)
+    (build-system trivial-build-system)
+    (inputs (list (make-ld-wrapper "ld.lld-wrapper" #:binutils lld
+                                   #:linker "ld.lld")
+                  (make-ld-wrapper "lld-wrapper" #:binutils lld #:linker
+                                   "lld")))
+    (arguments
+     (list #:builder
+           #~(let ((ld.lld (string-append #$(this-package-input
+                                             "ld.lld-wrapper")
+                                          "/bin/ld.lld"))
+                   (lld (string-append #$(this-package-input "lld-wrapper")
+                                       "/bin/lld")))
+               (mkdir #$output)
+               (mkdir (string-append #$output "/bin"))
+               (symlink ld.lld (string-append #$output "/bin/ld.lld"))
+               (symlink lld (string-append #$output "/bin/lld"))
+               (when #$lld-as-ld?
+                 (symlink ld.lld (string-append #$output "/bin/ld"))))))
+    (synopsis "LLD linker wrapper")
+    (description "This is a linker wrapper for LLD; like @code{ld-wrapper}, it
+wraps the linker to add any missing @code{-rpath} flags, and to detect any
+misuse of libraries outside of the store.")
+    (home-page "https://www.gnu.org/software/guix/")
+    (license license:gpl3+)))
+
+;;; A LLD wrapper suitable to use with -fuse-ld and GCC or with Clang.
+(define-public lld-wrapper
+  (make-lld-wrapper lld))
+
+;;; A LLD wrapper that can be used as a (near) drop-in replacement to GNU ld.
+(define-public lld-as-ld-wrapper
+  (make-lld-wrapper lld #:lld-as-ld? #t))
+
 (define-public lldb
   (package
     (name "lldb")
-    (version "11.0.0")
+    (version "12.0.1")
     (source (origin
               (method url-fetch)
               (uri (llvm-uri "lldb" version))
               (sha256
                (base32
-                "0wic9lyb2la9bkzdc13szkm4f793w1mddp50xvh237iraygw0w45"))))
+                "0g3pj1m3chafavpr35r9fynm85y2hdyla6klj0h28khxs2613i78"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags '("-DCMAKE_CXX_COMPILER=clang++")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("swig" ,swig)))
+     (list pkg-config swig))
     (inputs
-     `(("clang" ,clang-11)
-       ("llvm" ,llvm-11)
+     `(("clang" ,clang-12)
+       ("llvm" ,llvm-12)
 
        ;; Optional (but recommended) inputs.
        ("curses" ,ncurses)
@@ -1003,8 +1100,7 @@ which highly leverage existing libraries in the larger LLVM project.")
                        (getenv "CPLUS_INCLUDE_PATH"))
                #t))))))
     (native-inputs
-     `(("clang" ,clang)
-       ("llvm" ,llvm)))
+     (list clang llvm))
     (home-page "https://libcxx.llvm.org")
     (synopsis "C++ standard library")
     (description
@@ -1025,8 +1121,7 @@ use with Clang, targeting C++11, C++14 and above.")
         (base32
          "0rzw4qvxp6qx4l4h9amrq02gp7hbg8lw4m0sy3k60f50234gnm3n"))))
     (native-inputs
-     `(("clang" ,clang-6)
-       ("llvm" ,llvm-6)))))
+     (list clang-6 llvm-6))))
 
 (define-public libcxxabi-6
   (package
@@ -1077,9 +1172,7 @@ use with Clang, targeting C++11, C++14 and above.")
                (install-file "../libcxxabi/include/__cxxabi_config.h" include-dir)
                (install-file "../libcxxabi/include/cxxabi.h" include-dir)))))))
     (native-inputs
-     `(("clang" ,clang-6)
-       ("llvm" ,llvm-6)
-       ("libcxx" ,libcxx-6)))
+     (list clang-6 llvm-6 libcxx-6))
     (home-page "https://libcxxabi.llvm.org")
     (synopsis "C++ standard library support")
     (description
@@ -1115,9 +1208,7 @@ standard C++ library.")
                        "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
                        (getenv "CPLUS_INCLUDE_PATH"))))))))
     (native-inputs
-     `(("clang" ,clang-6)
-       ("llvm" ,llvm-6)
-       ("libcxxabi" ,libcxxabi-6)))))
+     (list clang-6 llvm-6 libcxxabi-6))))
 
 (define-public libclc
   (package
@@ -1147,9 +1238,7 @@ standard C++ library.")
          (add-after 'unpack 'chdir
            (lambda _ (chdir "libclc") #t)))))
     (native-inputs
-     `(("clang" ,clang)
-       ("llvm" ,llvm)
-       ("python" ,python)))
+     (list clang llvm python))
     (home-page "https://libclc.llvm.org")
     (synopsis "Libraries for the OpenCL programming language")
     (description
@@ -1178,12 +1267,9 @@ requirements according to version 1.1 of the OpenCL specification.")
                            "-DOPENMP_TEST_CXX_COMPILER=clang++")
        #:test-target "check-libomp"))
     (native-inputs
-     `(("clang" ,clang)
-       ("llvm" ,llvm)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list clang llvm perl pkg-config))
     (inputs
-     `(("hwloc" ,hwloc "lib")))
+     (list `(,hwloc "lib")))
     (home-page "https://openmp.llvm.org")
     (synopsis "OpenMP run-time support library")
     (description
@@ -1196,14 +1282,14 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.")
 (define-public python-llvmlite
   (package
     (name "python-llvmlite")
-    (version "0.34.0")
+    (version "0.37.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "llvmlite" version))
        (sha256
         (base32
-         "0qqzs6h34002ig2jn31vk08q9hh5kn84lhmv4bljz3yakg8y0gph"))))
+         "05avhsvdcqh8wfpblx16qslfq3masqcbkfyn8p3c13h1rmqbi4k3"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1222,69 +1308,124 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.")
                                                    "binding/libllvmlite.so")))
                (substitute* "llvmlite/binding/ffi.py"
                  (("_lib_name = get_library_name\\(\\)")
-                  (format #f "_lib_name = ~s" libllvmlite.so)))
-               #t)))
+                  (format #f "_lib_name = ~s" libllvmlite.so))))))
          (add-after 'unpack 'skip-failing-tests
            (lambda _
              (substitute* "llvmlite/tests/test_binding.py"
                (("    def test_libm\\(self\\).*" all)
-                (string-append "    @unittest.skip('Fails on Guix')\n" all)))
-             #t))
+                (string-append "    @unittest.skip('Fails on Guix')\n" all)))))
          (add-before 'build 'set-compiler/linker-flags
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((llvm (assoc-ref inputs "llvm")))
                ;; Refer to ffi/Makefile.linux.
                (setenv "CPPFLAGS" "-fPIC")
                (setenv "LDFLAGS" (string-append "-Wl,-rpath="
-                                                llvm "/lib"))
-               #t))))))
+                                                llvm "/lib"))))))))
     (inputs
-     `(("llvm"
-        ,(let* ((patches-commit "061ab39e1d4591f3aa842458252a19ad01858167")
-                (patch-uri (lambda (name)
-                             (string-append
-                              "https://raw.githubusercontent.com/numba/"
-                              "llvmlite/" patches-commit "/conda-recipes/"
-                              name)))
-                (patch-origin (lambda (name hash)
-                                (origin
-                                  (method url-fetch)
-                                  (uri (patch-uri name))
-                                  (sha256 (base32 hash)))))
-                (arch-independent-patches
-                 (list
-                  (patch-origin
-                   "partial-testing.patch"
-                   "1cwy4jsmijd838q0bylxl77vrwrb7ksijfly5062ay32303jmj86")
-                  (patch-origin
-                   "0001-Revert-Limit-size-of-non-GlobalValue-name.patch"
-                   "0n4k7za0smx6qwdipsh6x5lm7bfvzzb3p9r8q1zq1dqi4na21295"))))
-           (if (string=? "aarch64-linux" (%current-system))
-               (package
-                 (inherit llvm-9)
-                 (source
-                  (origin
-                    (inherit (package-source llvm-9))
-                    (patches
-                     `(,(patch-origin
-                         "intel-D47188-svml-VF_LLVM9.patch"
-                         "1f9ld7wc8bn4gbvdsmk07w1rq371h42vy05rxsq9a22f57rljqbd")
-                       ,@arch-independent-patches
-                       ,@(origin-patches (package-source llvm-9)))))))
-               (package
-                 (inherit llvm-10)
-                 (source
-                  (origin
-                    (inherit (package-source llvm-10))
-                    (patches
-                     `(,(patch-origin
-                         "intel-D47188-svml-VF.patch"
-                         "0n46qjwfl7i12bl7wp0cyxl277axfvaaz5lxx5kdlgwjcpa582dg")
-                       ,(patch-origin
-                         "expect-fastmath-entrypoints-in-add-TLI-mappings.ll.patch"
-                         "0jxhjkkwwi1cy898l2n57l73ckpw0v73lqnrifp7r1mwpsh624nv")
-                       ,@arch-independent-patches
-                       ,@(origin-patches (package-source llvm-10))))))))))))
+     (list (let* ((patches-commit
+                                 "a4a19e8af2c5ef9b9901f20193e4be070726da97") (
+                                                                          patch-uri (
+                                                                                lambda (
+                                                                                  name)
+                                                                                  (
+                                                                                  string-append
+                                                                                               "https://raw.githubusercontent.com/numba/"
+                                                                                               "llvmlite/"
+                                                                                               patches-commit
+                                                                                               "/conda-recipes/"
+                                                                                               name)))
+                                                                          (
+                                                                          patch-origin (
+                                                                                      lambda (
+                                                                                           name
+                                                                                             hash)
+                                                                                           (
+                                                                                           origin (
+                                                                                                 method
+                                                                                                      url-fetch)
+                                                                                                 (
+                                                                                                 uri (
+                                                                                                    patch-uri
+                                                                                                            name))
+                                                                                                 (
+                                                                                                 sha256 (
+                                                                                                       base32
+                                                                                                            hash)))))
+                                                                          (
+                                                                          arch-independent-patches (
+                                                                                                  list (
+                                                                                                     patch-origin
+                                                                                                               "partial-testing.patch"
+                                                                                                               "0g3nkci87knvmn7piqhmh4bcc65ff8r921cvfcibyiv65klv3syg")
+                                                                                                     (
+                                                                                                     patch-origin
+                                                                                                                 "0001-Revert-Limit-size-of-non-GlobalValue-name.patch"
+                                                                                                                 "0n4k7za0smx6qwdipsh6x5lm7bfvzzb3p9r8q1zq1dqi4na21295"))))
+                 (package (inherit llvm-11)
+                          (source (origin (inherit (package-source
+                                                                   llvm-11))
+                                          (patches (if (string=?
+                                                                 "aarch64-linux"
+                                                                 (
+                                                                 %current-system))
+                                                       `(,(patch-origin
+                                                                     "intel-D47188-svml-VF_LLVM9.patch"
+                                                                     "0gnnlfxr8p1a7ls93hzcpfqpa8r0icypfwj8l9cmkslq5sz8p64r") (
+                                                                                                                           unquote-splicing
+                                                                                                                                         arch-independent-patches)
+                                                                                                                           (
+                                                                                                                           unquote-splicing (
+                                                                                                                                           origin-patches (
+                                                                                                                                                        package-source
+                                                                                                                                                                    llvm-11))))
+                                                       `(,(patch-origin
+                                                                     "intel-D47188-svml-VF.patch"
+                                                                     "0gnnlfxr8p1a7ls93hzcpfqpa8r0icypfwj8l9cmkslq5sz8p64r") ,(
+                                                                                                                           patch-origin
+                                                                                                                                   "expect-fastmath-entrypoints-in-add-TLI-mappings.ll.patch"
+                                                                                                                                   "0jxhjkkwwi1cy898l2n57l73ckpw0v73lqnrifp7r1mwpsh624nv")
+                                                                                                                           (
+                                                                                                                           unquote-splicing
+                                                                                                                                           arch-independent-patches)
+                                                                                                                           (
+                                                                                                                           unquote-splicing (
+                                                                                                                                           origin-patches (
+                                                                                                                                                        package-source
+                                                                                                                                                                    llvm-11))))))))
+                          (arguments (substitute-keyword-arguments (
+                                                                   package-arguments
+                                                                                  llvm-11)
+                                                                   ((#:phases
+                                                                             phases) `(
+                                                                                    modify-phases ,
+                                                                                              phases
+                                                                                              (
+                                                                                              add-after '
+                                                                                                       unpack
+                                                                                                       '
+                                                                                                       patch-round-two
+                                                                                                       ;; We have to do the patching in two rounds because we can't
+                                                                                                       ;; pass '-p1' and '-p2' in the source field.
+                                                                                                       (
+                                                                                                       lambda* (
+                                                                                                              #:key
+                                                                                                                  inputs
+                                                                                                                  #:allow-other-keys)
+                                                                                                              (
+                                                                                                              invoke
+                                                                                                                    "patch"
+                                                                                                                    (
+                                                                                                                    assoc-ref
+                                                                                                                             inputs
+                                                                                                                             "llvm_11_consecutive_registers")
+                                                                                                                    "-p2")))))))
+                          (native-inputs `(("llvm_11_consecutive_registers" ,(
+                                                                          patch-origin
+                                                                               "llvm_11_consecutive_registers.patch"
+                                                                               "04msd34dnpr3lpss0pam3mckwnvzrab266z6sml1hya0akv0m3f3")) (
+                                                                                                                                    unquote-splicing (
+                                                                                                                                                package-native-inputs
+                                                                                                                                                                llvm-11))))))))
     (home-page "https://llvmlite.pydata.org")
     (synopsis "Wrapper around basic LLVM functionality")
     (description
@@ -1318,7 +1459,7 @@ setup(name=\"clang\", packages=[\"clang\"])\n")))))
                         (substitute* "clang/cindex.py"
                           (("libclang\\.so")
                            (string-append clang "/lib/libclang.so")))))))))
-    (inputs `(("clang" ,clang)))
+    (inputs (list clang))
     (synopsis "Python bindings to libclang")))
 
 (define-public python-clang-10
@@ -1336,7 +1477,7 @@ setup(name=\"clang\", packages=[\"clang\"])\n")))))
     (name "emacs-clang-format")
     (build-system emacs-build-system)
     (inputs
-     `(("clang" ,clang)))
+     (list clang))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1360,7 +1501,7 @@ C/C++/Obj-C code according to a set of style options, see
     (name "emacs-clang-rename")
     (build-system emacs-build-system)
     (inputs
-     `(("clang" ,clang)))
+     (list clang))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1376,6 +1517,11 @@ C/C++/Obj-C code according to a set of style options, see
     (description "This package renames every occurrence of a symbol at point
 using @code{clang-rename}.")))
 
+
+;;;
+;;; LLVM variants.
+;;;
+
 (define make-ocaml-llvm
   ;; Make it a memoizing procedure so its callers below don't end up defining
   ;; two equal-but-not-eq "ocaml-llvm" packages for the default LLVM.
@@ -1402,15 +1548,11 @@ using @code{clang-rename}.")))
              (lambda _
                (invoke "cmake" "-P" "bindings/ocaml/cmake_install.cmake"))))))
       (inputs
-       `(("llvm" ,llvm)))
+       (list llvm))
       (native-inputs
-       `(("ocaml" ,ocaml)
-         ("ocaml-findlib" ,ocaml-findlib)
-         ("ocaml-ounit" ,ocaml-ounit)
-         ("python" ,python)))
+       (list ocaml ocaml-findlib ocaml-ounit python))
       (propagated-inputs
-       `(("ocaml-integers" ,ocaml-integers)
-         ("ocaml-ctypes" ,ocaml-ctypes)))
+       (list ocaml-integers ocaml-ctypes))
       (synopsis "OCaml bindings to LLVM")
       (description "This package contains the OCaml bindings distributed with
 LLVM."))))
@@ -1419,3 +1561,310 @@ LLVM."))))
 (define-public ocaml-llvm-9 (make-ocaml-llvm llvm-9))
 (define-public ocaml-llvm-10 (make-ocaml-llvm llvm-10))
 (define-public ocaml-llvm-11 (make-ocaml-llvm llvm-11))
+
+(define-public llvm-julia
+  (package
+    (inherit llvm-11)
+    (name "llvm-julia")
+    (properties `((hidden? . #t)
+                  ,@(package-properties llvm-11)))
+    (source (origin
+              (inherit (package-source llvm-11))
+              ;; Those patches are inside the Julia source repo.
+              ;; They are _not_ Julia specific (https://github.com/julialang/julia#llvm)
+              ;; but they are required to build Julia.
+              ;; Discussion: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919628
+              (patches
+               (map (match-lambda
+                      ((name hash)
+                       (julia-patch name hash)))
+                    (list
+                     '("llvm-D27629-AArch64-large_model_6.0.1"
+                       "1qrshmlqvnasdyc158vfn3hnbigqph3lsq7acb9w8lwkpnnm2j4z")
+                     '("llvm8-D34078-vectorize-fdiv"
+                       "19spqc3xsazn1xs9gpcgv9ldadfkv49rmc5khl7sf1dlmhgi4602")
+                     '("llvm-7.0-D44650"
+                       "1h55kkmkiisfj6sk956if2bcj9s0v6n5czn8dxb870vp5nccj3ir")
+                     '("llvm7-symver-jlprefix"
+                       "00ng32x6xhm9czczirn5r1q1mc1myad44fqhi061hwh1vb46dwgm")
+                     '("llvm-6.0-DISABLE_ABI_CHECKS"
+                       "014fawd1ba7yckalypfld22zgic87x9nx3cim42zrwygywd36pyg")
+                     '("llvm9-D50010-VNCoercion-ni"
+                       "1s1d3sjsiq4vxg7ncy5cz56zgy5vcq6ls3iqaiqkvr23wyryqmdx")
+                     '("llvm7-revert-D44485"
+                       "0f59kq3p3mpwsbmskypbi4zn01l6ig0x7v2rjp08k2r8z8m6fa8n")
+                     '("llvm-11-D75072-SCEV-add-type"
+                       "176xi1lnbnv2rcs05ywhyb7pd0xgmibayvwzksksg44wg2dh8mbx")
+                     '("llvm-julia-tsan-custom-as"
+                       "0awh40kf6lm4wn1nsjd1bmhfwq7rqj811szanp2xkpspykw9hg9s")
+                     '("llvm-D80101"
+                       "1gsdwmgmpbignvqyxcnlprj899259p3dvdznlncd84ss445qgq3j")
+                     '("llvm-D84031"
+                       "0nks9sbk7p0r5gyr0idrmm93a5fmdai8kihz9532dx4zhcvvqbjc")
+                     '("llvm-10-D85553"
+                       "1zjq7j9q2qp56hwkc8yc8f0z7kvam3j7hj8sb7qyd77r255ff78l")
+                     '("llvm-10-unique_function_clang-sa"
+                       "1jys9w2zqk3dasnxqh0qz5ij7rxi6mkgq9pqjsclmamr5169zyan")
+                     ;'("llvm-D88630-clang-cmake"
+                     ;  "0rs6s71nqnjkny7i69gqazhqj5jqfdr0bkxs2v5a55sfx8fa1k54")
+                     '("llvm-11-D85313-debuginfo-empty-arange"
+                       "1f672d5385xpgb8yrim8d3b7wg2z1l81agnshm1q61kdvjixqx32")
+                     '("llvm-11-D90722-rtdyld-absolute-relocs"
+                       "0kmnai229yyxkmpk9lxd180mcnhk2i8d87k2sg89gc8as18w10r6")
+                     '("llvm-invalid-addrspacecast-sink"
+                       "1n1b7j4s80vj7x5377aj9vyphmxx1q6bm0chhkxp6zsy3mx3g2ry")
+                     '("llvm-11-D92906-ppc-setjmp"
+                       "0cmd4dsblp7a8m03j16dqxws0ijh55zf4jzzxmj341qxa1gamdp9")
+                     '("llvm-11-PR48458-X86ISelDAGToDAG"
+                       "0vwzvlhsdazhxg4gj8g2f00a4f8qc5cgac23w575xk3pgba1jh6y")
+                     '("llvm-11-D93092-ppc-knownbits"
+                       "1748bypsc7c9lbs3fnkv0kwvch6bn85kj98j4jdaz254ig0wa6xj")
+                     '("llvm-11-D93154-globalisel-as"
+                       "1k5wd4z3pa7zj0gyjkif7viqj906dhqlbb7dc95gig40nbxv6zpj")
+                     '("llvm-11-ppc-half-ctr"
+                       "0piywisfz6cmw3133kz7vzhiqflq2y7igakqxlym0gi8pqylv7w9")
+                     '("llvm-11-ppc-sp-from-bp"
+                       "1wmg3485cx5f9pbykyl3jibk1wwv4w1x30hl4jyfndzr2yh8azf9")
+                     '("llvm-rGb498303066a6-gcc11-header-fix"
+                       "0hkd4rwhvh8g2yh13g29wiwnjpv2yd1hdyiv1ryw8izl25bz9c67")
+                     '("llvm-11-D94813-mergeicmps"
+                       "0cmy0ywkgyrdcvr9bd6pd912lyd4gcsrib4z0v05dwgcdxhk7y29")
+                     '("llvm-11-D94980-CTR-half"
+                       "1yf8cxib3z8hz7zi9n6v2g2c6vpfr4slq9hpx8m8yq8f1jbyw3fw")
+                     '("llvm-11-D94058-sext-atomic-ops"
+                       "1x6p6k6q651z5jcqxx8vj17cxnv196mka7mwn7dpp6c23lwgfdpb")
+                     '("llvm-11-D96283-dagcombine-half"
+                       "0lv4iq2f8qrcz1xyxfic3bcr5p0aqam3a7c6pp6fnw3riixm096k"))))
+              (patch-flags '("-p1"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments llvm-11)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'patch-round-two
+             ;; We have to do the patching in two rounds because we can't
+             ;; pass '-p1' and '-p2' in the source field.
+             (lambda* (#:key inputs #:allow-other-keys)
+               (map (lambda (patchname)
+                      (invoke "patch" patchname "-p2"))
+                    (list "llvm-11-AArch64-FastIsel-bug"
+                          "llvm-11-D97435-AArch64-movaddrreg"
+                          "llvm-11-D97571-AArch64-loh"
+                          "llvm-11-aarch64-addrspace"))))))
+       ((#:build-type _) "Release")
+       ((#:configure-flags flags)
+        `(list
+           ;; Build a native compiler and the NVPTX backend (NVIDIA) since
+           ;; Julia insists on it, nothing more.  This reduces build times and
+           ;; disk usage.
+           ,(string-append "-DLLVM_TARGETS_TO_BUILD=" (system->llvm-target))
+           "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=NVPTX"
+
+           "-DLLVM_INSTALL_UTILS=ON"
+           "-DLLVM_BUILD_TESTS=ON"
+           "-DLLVM_ENABLE_FFI=ON"
+           "-DLLVM_ENABLE_RTTI=ON"
+           ;; "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
+           ;; "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
+           ;; "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly"
+           "-DLLVM_ENABLE_DUMP=ON"
+           "-DLLVM_LINK_LLVM_DYLIB=ON"
+           "-DLLVM_VERSION_SUFFIX:STRING=jl"))))
+    (inputs
+     (append
+       (package-inputs llvm-11)
+       `(("llvm-11-AArch64-FastIsel-bug"
+          ,(julia-patch "llvm-11-AArch64-FastIsel-bug"
+                        "1m2vddj1mw4kbij8hbrx82piyy6bvr2x7wwdnlxfaqcm72ipzyh9"))
+         ("llvm-11-D97435-AArch64-movaddrreg"
+          ,(julia-patch "llvm-11-D97435-AArch64-movaddrreg"
+                        "10jnavq9ljkj7j2gqj2zd1pwqpqb5zs3zp9h96pmz0djbmxwa86y"))
+         ("llvm-11-D97571-AArch64-loh"
+          ,(julia-patch "llvm-11-D97571-AArch64-loh"
+                        "128zcbg1w1j7hngsf7z1a7alc6lig6l2rqgjp6i8nk3k3f842v6n"))
+         ("llvm-11-aarch64-addrspace"
+          ,(julia-patch "llvm-11-aarch64-addrspace"
+                        "0ckbzgfirxrf2d5bpinpngp7gnilbjrk0cbdfyl3h6f5v6i6xj6m")))))))
+
+(define %cling-version "0.9")
+
+(define llvm-cling             ;LLVM 9 with approximately 10 patches for cling
+  (let ((base llvm-9))
+    (package/inherit base
+      (name "llvm-cling")
+      (source
+       (origin
+         (inherit (package-source base))
+         (method git-fetch)
+         (uri (git-reference
+               (url "http://root.cern/git/llvm.git")
+               (commit (string-append "cling-v" %cling-version))))
+         (file-name (git-file-name "llvm-cling" %cling-version))
+         (sha256
+          (base32
+           "0y3iwv3c9152kybmdrwvadggjs163r25h7rmlxzr3hfpr463pnwf"))
+         (modules '((guix build utils)))
+         (snippet
+          ;; The source is missing an include directive (see:
+          ;; https://github.com/vgvassilev/cling/issues/219).
+          '(substitute* "utils/benchmark/src/benchmark_register.h"
+             (("^#include <vector>.*" all)
+              (string-append all "#include <limits>\n"))))))
+      (outputs '("out"))
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:configure-flags _ ''())
+          '(list "-DLLVM_PARALLEL_LINK_JOBS=1" ;cater to smaller build machines
+                 ;; Only enable compiler support for the host architecture to
+                 ;; save on build time.
+                 "-DLLVM_TARGETS_TO_BUILD=host;NVPTX"
+                 "-DLLVM_INSTALL_UTILS=ON"
+                 "-DLLVM_ENABLE_RTTI=ON"
+                 "-DLLVM_ENABLE_FFI=ON"
+                 "-DLLVM_BUILD_LLVM_DYLIB=ON"
+                 "-DLLVM_LINK_LLVM_DYLIB=ON"))
+         ((#:phases phases '%standard-phases)
+          `(modify-phases ,phases
+             (delete 'shared-lib-workaround)
+             (delete 'install-opt-viewer))))))))
+
+(define clang-cling-runtime
+  (let ((base clang-runtime-9))
+    (package/inherit base
+      (name "clang-cling-runtime")
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:phases phases '%standard-phases)
+          `(modify-phases ,phases
+             (add-after 'install 'delete-static-libraries
+               ;; This reduces the size from 22 MiB to 4 MiB.
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (let ((out (assoc-ref outputs "out")))
+                   (for-each delete-file (find-files out "\\.a$")))))))))
+      (inputs (modify-inputs (package-inputs base)
+                (replace "llvm" llvm-cling))))))
+
+(define clang-cling              ;modified clang 9 with ~ 60 patches for cling
+  (let ((base clang-9))
+    (package/inherit base
+      (name "clang-cling")
+      (source
+       (origin
+         (inherit (package-source base))
+         (method git-fetch)
+         (uri (git-reference
+               (url "http://root.cern/git/clang.git")
+               (commit (string-append "cling-v" %cling-version))))
+         (file-name (git-file-name "clang-cling" %cling-version))
+         (sha256
+          (base32
+           "128mxkwghss6589wvm6amzv183aq88rdrnfxjiyjcji5hx84vpby"))))
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:phases phases '%standard-phases)
+          `(modify-phases ,phases
+             (add-after 'install 'delete-static-libraries
+               ;; This reduces the size by half, from 220 MiB to 112 MiB.
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (let ((out (assoc-ref outputs "out")))
+                   (for-each delete-file (find-files out "\\.a$")))))))))
+      (propagated-inputs
+       (modify-inputs (package-propagated-inputs base)
+         (replace "llvm" llvm-cling)
+         (replace "clang-runtime" clang-cling-runtime))))))
+
+(define-public cling
+  ;; The tagged v0.9 release doesn't build, so use the latest commit.
+  (let ((commit "d78d1a03fedfd2bf6d2b6ff295aca576d98940df")
+        (revision "1")
+        (version* "0.9"))
+    (package
+      (name "cling")
+      (version (git-version version* revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "http://root.cern/git/cling.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0lsbxv21b4qw11xkw9iipdpca64jjwwqxm0qf5v2cgdlibf8m8n9"))
+                ;; Patch submitted upstream here:
+                ;; https://github.com/root-project/cling/pull/433.
+                (patches (search-patches "cling-use-shared-library.patch"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:build-type "Release"         ;keep the build as lean as possible
+         #:tests? #f                    ;FIXME: 78 tests fail (out of ~200)
+         #:test-target "check-cling"
+         #:configure-flags
+         (list (string-append "-DCLING_CXX_PATH="
+                              (assoc-ref %build-inputs "gcc") "/bin/g++")
+               ;; XXX: The AddLLVM.cmake module expects LLVM_EXTERNAL_LIT to
+               ;; be a Python script, not a shell executable.
+               (string-append "-DLLVM_EXTERNAL_LIT="
+                              (assoc-ref %build-inputs "python-lit")
+                              "/bin/.lit-real"))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'set-version
+             (lambda _
+               (make-file-writable "VERSION")
+               (call-with-output-file "VERSION"
+                 (lambda (port)
+                   (format port "~a~%" ,version)))))
+           (add-after 'unpack 'patch-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "lib/Interpreter/CIFactory.cpp"
+                 (("\bsed\b")
+                  (which "sed"))
+                 ;; This ensures that the default C++ library used by Cling is
+                 ;; that of the compiler that was used to build it, rather
+                 ;; than that of whatever g++ happens to be on PATH.
+                 (("ReadCompilerIncludePaths\\(CLING_CXX_RLTV")
+                  (string-append "ReadCompilerIncludePaths(\""
+                                 (assoc-ref inputs "gcc") "/bin/g++\""))
+                 ;; Cling uses libclang's CompilerInvocation::GetResourcesPath
+                 ;; to resolve Clang's library prefix, but this fails on Guix
+                 ;; because it is relative to the output of cling rather than
+                 ;; clang (see:
+                 ;; https://github.com/root-project/cling/issues/434).  Fully
+                 ;; shortcut the logic in this method to return the correct
+                 ;; static location.
+                 (("static std::string getResourceDir.*" all)
+                  (string-append all
+                                 "    return std::string(\""
+                                 (assoc-ref inputs "clang-cling")
+                                 "/lib/clang/" ,(package-version clang-cling)
+                                 "\");")))
+               ;; Check for the 'lit' command for the tests, not 'lit.py'
+               ;; (see: https://github.com/root-project/cling/issues/432).
+               (substitute* "CMakeLists.txt"
+                 (("lit.py")
+                  "lit"))))
+           (add-after 'unpack 'adjust-lit.cfg
+             ;; See: https://github.com/root-project/cling/issues/435.
+             (lambda _
+               (substitute* "test/lit.cfg"
+                 (("config.llvm_tools_dir \\+ '")
+                  "config.cling_obj_root + '/bin"))))
+           (add-after 'install 'delete-static-libraries
+             ;; This reduces the size from 17 MiB to 5.4 MiB.
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (for-each delete-file (find-files out "\\.a$"))))))))
+      (native-inputs
+       (list python python-lit))
+      (inputs
+       (list clang-cling llvm-cling))
+      (home-page "https://root.cern/cling/")
+      (synopsis "Interactive C++ interpreter")
+      (description "Cling is an interactive C++17 standard compliant
+interpreter, built on top of LLVM and Clang.  Cling can be used as a
+read-eval-print loop (REPL) to assist with rapid application development.
+Here's how to print @samp{\"Hello World!\"} using @command{cling}:
+
+@example
+cling '#include <stdio.h>' 'printf(\"Hello World!\\n\");'
+@end example")
+      (license license:lgpl2.1+))))     ;for the combined work
diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm
index 34dc124cb6..7e07f4dd67 100644
--- a/gnu/packages/logging.scm
+++ b/gnu/packages/logging.scm
@@ -89,10 +89,8 @@ staying as close to their API as is reasonable.")
               (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("perl" ,perl)                             ;for tests
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list perl ;for tests
+           autoconf automake libtool))
     (synopsis "C++ logging library")
     (description
      "Google glog is a library that implements application-level logging.
@@ -115,10 +113,8 @@ command line.")
          "0wl2wm6p3pc0vkk33s7rzgcfvs9cwxfmlz997pdfhlw72r00l7s5"))))
     (build-system python-build-system)
     (inputs
-     `(("python-pyyaml" ,python-pyyaml)
-       ("python-sockjs-tornado" ,python-sockjs-tornado)
-       ("python-tornado-http-auth" ,python-tornado-http-auth)
-       ("python-tornado" ,python-tornado)))
+     (list python-pyyaml python-sockjs-tornado python-tornado-http-auth
+           python-tornado))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -170,7 +166,7 @@ commands, displaying the results via a web interface.")
              #t))
          (delete 'configure))           ; no configure script
        #:tests? #f)) ; no test suite (make check just runs cppcheck)
-    (inputs `(("ncurses" ,ncurses)))
+    (inputs (list ncurses))
     (home-page "https://vanheusden.com/multitail/")
     (synopsis "Monitor multiple log files")
     (description
@@ -181,7 +177,7 @@ output in multiple windows in a terminal.")
 (define-public spdlog
   (package
     (name "spdlog")
-    (version "1.8.5")
+    (version "1.9.2")
     (source
      (origin
        (method git-fetch)
@@ -190,7 +186,7 @@ output in multiple windows in a terminal.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "179krvg5sad6dviqpcjwg6czzknnilqszrg1d0fgp12h6sy66vqg"))))
+        (base32 "1img03ka63hf3sb62v5f02ax5jc9mlpz5cijr38xxzymvcg1s98r"))))
     (build-system cmake-build-system)
     ;; TODO run benchmark. Currently not possible, as adding
     ;; (gnu packages benchmark) forms a dependency cycle
diff --git a/gnu/packages/logo.scm b/gnu/packages/logo.scm
index cf70910656..347c52e753 100644
--- a/gnu/packages/logo.scm
+++ b/gnu/packages/logo.scm
@@ -37,7 +37,7 @@
          "0cpyj1ji6hjy7zzz05672f0j6fr0mwpc1y3sq36hhkv2fkpidw22"))))
     (build-system gnu-build-system)
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/lout.scm b/gnu/packages/lout.scm
index ac66b4ecfc..a9323fc4bb 100644
--- a/gnu/packages/lout.scm
+++ b/gnu/packages/lout.scm
@@ -38,7 +38,7 @@
     (build-system gnu-build-system)     ; actually, just a makefile
     (outputs '("out" "doc"))
     (native-inputs
-     `(("ghostscript" ,ghostscript)))
+     (list ghostscript))
     (arguments
      `(#:modules ((guix build utils)
                   (guix build gnu-build-system)
diff --git a/gnu/packages/lsof.scm b/gnu/packages/lsof.scm
index b317902ee7..98bcdab468 100644
--- a/gnu/packages/lsof.scm
+++ b/gnu/packages/lsof.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,79 +32,76 @@
 
 (define-public lsof
   (package
-   (name "lsof")
-   (version "4.94.0")
-   (source
-    (origin
-      (method git-fetch)
-      (uri (git-reference
-            (url "https://github.com/lsof-org/lsof")
-            (commit version)))
-      (file-name (git-file-name name version))
-      (sha256
-       (base32 "0yxv2jg6rnzys49lyrz9yjb4knamah4xvlqj596y6ix3vm4k3chp"))
-      (patches (search-patches "lsof-fatal-test-failures.patch"))))
-   (build-system gnu-build-system)
-   (native-inputs
-    `(("groff" ,groff)                  ; for soelim
-      ("perl" ,perl)))
-   (arguments
-    `(#:phases
-      (modify-phases %standard-phases
-        (replace 'configure
-          (lambda _
-            (setenv "LSOF_CC" ,(cc-for-target))
-            (setenv "LSOF_MAKE" "make")
+    (name "lsof")
+    (version "4.94.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/lsof-org/lsof")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0yxv2jg6rnzys49lyrz9yjb4knamah4xvlqj596y6ix3vm4k3chp"))
+       (patches (search-patches "lsof-fatal-test-failures.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list groff ; for soelim
+           perl))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda _
+             (setenv "LSOF_CC" ,(cc-for-target))
+             (setenv "LSOF_MAKE" "make")
 
-            ;; By default, the makefile captures the output of 'uname -a'.
-            ;; Provide a fixed output instead to make builds reproducible.
-            (setenv "LSOF_SYSINFO"
-                    (string-append "GNU/" (utsname:sysname (uname))
-                                   " (GNU Guix)"))
+             ;; By default, the makefile captures the output of 'uname -a'.
+             ;; Provide a fixed output instead to make builds reproducible.
+             (setenv "LSOF_SYSINFO"
+                     (string-append "GNU/" (utsname:sysname (uname))
+                                    " (GNU Guix)"))
 
-            (invoke "./Configure" "linux")
-            #t))
-        (add-after 'configure 'patch-timestamps
-          (lambda _
-            (substitute* "Makefile"
-              (("`date`") "`date --date=@1`"))
-            #t))
-        (add-after 'build 'build-man-page
-          (lambda _
-            (with-output-to-file "lsof.8"
-              (lambda _ (invoke "soelim" "Lsof.8")))
-            #t))
-        (add-before 'check 'disable-failing-tests
-          (lambda _
-            (substitute* "tests/Makefile"
-              ;; Fails with ‘ERROR!!! client gethostbyaddr() failure’.
-              (("(STDTST=.*) LTsock" _ prefix) prefix)
-              ;; Fails without access to a remote NFS server.
-              (("(OPTTST=.*) LTnfs"  _ prefix) prefix))
-            #t))
-        (replace 'check
-          (lambda* (#:key tests? #:allow-other-keys)
-            (when tests?
-              (with-directory-excursion "tests"
-                ;; Tests refuse to run on ‘unvalidated’ platforms.
-                (make-file-writable "TestDB")
-                (invoke "./Add2TestDB")
+             (invoke "./Configure" "linux")))
+         (add-after 'configure 'patch-timestamps
+           (lambda _
+             (substitute* "Makefile"
+               (("`date`") "`date --date=@1`"))))
+         (add-after 'build 'build-man-page
+           (lambda _
+             (with-output-to-file "lsof.8"
+               (lambda _ (invoke "soelim" "Lsof.8")))))
+         (add-before 'check 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/Makefile"
+               ;; Fails with ‘ERROR!!! client gethostbyaddr() failure’.
+               (("(STDTST=.*) LTsock" _ prefix) prefix)
+               ;; LTnfs fails without access to a remote NFS server, and LTlock
+               ;; fails when run on a Btrfs file system (see:
+               ;; https://github.com/lsof-org/lsof/issues/152).
+               (("OPTTST=[[:space:]]*LTbigf LTdnlc LTlock LTnfs")
+                "OPTTST = LTbigf LTdnlc"))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (with-directory-excursion "tests"
+                 ;; Tests refuse to run on ‘unvalidated’ platforms.
+                 (make-file-writable "TestDB")
+                 (invoke "./Add2TestDB")
 
-                ;; The ‘standard’ tests suggest running ‘optional’ ones as well.
-                (invoke "make" "standard" "optional")))
-            #t))
-        (replace 'install
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let ((out (assoc-ref outputs "out")))
-              (install-file "lsof" (string-append out "/bin"))
-              (install-file "lsof.8" (string-append out "/share/man/man8")))
-            #t)))))
-   (synopsis "Display information about open files")
-   (description
-    "Lsof stands for LiSt Open Files, and it does just that.
+                 ;; The ‘standard’ tests suggest running ‘optional’ ones as well.
+                 (invoke "make" "standard" "optional")))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (install-file "lsof" (string-append out "/bin"))
+               (install-file "lsof.8" (string-append out "/share/man/man8"))))))))
+    (synopsis "Display information about open files")
+    (description
+     "Lsof stands for LiSt Open Files, and it does just that.
 It lists information about files that are open by the processes running
 on the system.")
-   (license (license:fsf-free
-             "file://00FAQ"
-             "License inspired by zlib, see point 1.9 of 00FAQ in the distribution."))
-   (home-page "https://people.freebsd.org/~abe/")))
+    (license (license:fsf-free
+              "file://00FAQ"
+              "License inspired by zlib, see point 1.9 of 00FAQ in the distribution."))
+    (home-page "https://people.freebsd.org/~abe/")))
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index 7cadba6392..ff4d4824eb 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2020 Simon South <simon@simonsouth.net>
 ;;; Copyright © 2020 Paul A. Patience <paul@apatience.com>
 ;;; Copyright © 2021 Vinícius dos Santos Oliveira <vini.ipsmaker@gmail.com>
+;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -43,7 +44,6 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages build-tools)
-  #:use-module (gnu packages gcc)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages libevent)
@@ -72,7 +72,7 @@
              (patches (search-patches "lua-pkgconfig.patch"
                                       "lua-liblua-so.patch"))))
     (build-system gnu-build-system)
-    (inputs `(("readline" ,readline)))
+    (inputs (list readline))
     (arguments
      `(#:modules ((guix build gnu-build-system)
                   (guix build utils)
@@ -228,8 +228,7 @@ some projects.")))
              (invoke "lua" "tests/test.lua")
              (invoke "lua" "tests/test-lom.lua"))))))
     (inputs
-     `(("lua" ,lua)
-       ("expat" ,expat)))
+     (list lua expat))
     (home-page "https://matthewwild.co.uk/projects/luaexpat/")
     (synopsis "SAX XML parser based on the Expat library")
     (description "LuaExpat is a SAX XML parser based on the Expat library.")
@@ -272,7 +271,7 @@ some projects.")))
                (invoke "lua" "test/testsrvr.lua"))
              (invoke "lua" "test/testclnt.lua"))))))
     (inputs
-     `(("lua" ,lua)))
+     (list lua))
     (home-page "http://www.tecgraf.puc-rio.br/~diego/professional/luasocket/")
     (synopsis "Socket library for Lua")
     (description "LuaSocket is a Lua extension library that is composed by two
@@ -322,7 +321,7 @@ handy.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (inputs
-     `(("lua" ,lua)))
+     (list lua))
     (home-page "https://keplerproject.github.io/luafilesystem/index.html")
     (synopsis "File system library for Lua")
     (description "LuaFileSystem is a Lua library developed to complement the
@@ -378,8 +377,7 @@ directory structure and file attributes.")
                            (find-files "." "^[0-9].*\\.lua$"))))
              #t)))))
     (inputs
-     `(("lua" ,lua)
-       ("openssl" ,openssl)))
+     (list lua openssl))
     (home-page "https://25thandclement.com/~william/projects/luaossl.html")
     (synopsis "OpenSSL bindings for Lua")
     (description "The luaossl extension module for Lua provides comprehensive,
@@ -426,8 +424,7 @@ binds OpenSSL's bignum, message digest, HMAC, cipher, and CSPRNG interfaces.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (inputs
-     `(("lua" ,lua)
-       ("openssl" ,openssl)))
+     (list lua openssl))
     (propagated-inputs
      `(("lua-socket"
         ,(make-lua-socket
@@ -530,12 +527,11 @@ secure session between the peers.")
 
                (apply invoke "make" "check" make-flags)))))))
     (native-inputs
-     `(("m4" ,m4)))
+     (list m4))
     (inputs
-     `(("lua" ,lua)
-       ("openssl" ,openssl)))
+     (list lua openssl))
     (propagated-inputs
-     `(("lua-ossl" ,lua-ossl)))
+     (list lua-ossl))
     (home-page "https://25thandclement.com/~william/projects/cqueues.html")
     (synopsis "Event loop for Lua using continuation queues")
     (description "The cqueues extension module for Lua implements an event loop
@@ -567,9 +563,9 @@ to be non-intrusive, composable, and embeddable within existing applications.")
         (base32 "0qc2d1riyr4b5a0gnsmdw2lz5pw65s4ac60hc34w3mmk9l6yg6nl"))))
     (build-system trivial-build-system)
     (inputs
-     `(("lua" ,lua)))
+     (list lua))
     (propagated-inputs
-     `(("lua-filesystem" ,lua-filesystem)))
+     (list lua-filesystem))
     (arguments
      `(#:modules ((guix build utils))
        #:builder
@@ -607,9 +603,9 @@ standard libraries.")
         (base32 "1h0cf7bp4am54r0j8lhjs2l1c7q5vz74ba0jvw9qdbaqimls46g8"))))
     (build-system gnu-build-system)
     (inputs
-     `(("lua" ,lua)))
+     (list lua))
     (propagated-inputs
-     `(("lua-penlight" ,lua-penlight)))
+     (list lua-penlight))
     (arguments
      `(#:tests? #f                 ;tests must run after installation.
        #:phases
@@ -697,8 +693,8 @@ describing the commented declarations and functions.")
              (setenv "DISPLAY" ":1")
              #t)))))
     (native-inputs
-     `(("dbus" ,dbus)                   ;tests use 'dbus-run-session'
-       ("pkg-config" ,pkg-config)))
+     (list dbus ;tests use 'dbus-run-session'
+           pkg-config))
     (inputs
      `(("cairo" ,cairo)
        ("glib" ,glib)
@@ -751,7 +747,7 @@ Notable examples are GTK+, GStreamer and Webkit.")
                              (string-append out "/share/lua/" lua-version))
                #t))))
        #:test-target "test"))
-    (inputs `(("lua" ,lua)))
+    (inputs (list lua))
     (synopsis "Pattern-matching library for Lua")
     (description
      "LPeg is a pattern-matching library for Lua, based on Parsing Expression
@@ -803,8 +799,7 @@ Grammars (PEGs).")
                                     (or (getenv "CPATH") "")))
              #t)))))
     (inputs
-     `(("lua" ,lua)
-       ("libuv" ,libuv)))
+     (list lua libuv))
     (native-inputs
      `(("lua-compat"
         ,(origin
@@ -856,7 +851,7 @@ Grammars (PEGs).")
        #:phases
        (modify-phases %standard-phases
          (delete 'configure))))
-    (inputs `(("lua" ,lua)))
+    (inputs (list lua))
     (home-page "https://bitop.luajit.org/index.html")
     (synopsis "Bitwise operations on numbers for Lua")
     (description
@@ -917,8 +912,7 @@ on numbers.")
                (chdir "./runner")
                (invoke "./test_runner")))))))
     (native-inputs
-     `(("lua" ,lua)
-       ("pkg-config" ,pkg-config)))
+     (list lua pkg-config))
     (home-page "https://github.com/jeremyong/Selene")
     (synopsis "Lua C++11 bindings")
     (description
@@ -1132,26 +1126,25 @@ shell command executions.")
             "-Denable_manpages=false"
             "-Dversion_suffix=-guix1")))
    (native-inputs
-    `(("gcc" ,gcc-10) ; gcc-7 is too old for our C++17 needs
-      ("luajit-lua52-openresty" ,luajit-lua52-openresty)
-      ("pkg-config" ,pkg-config)
-      ("re2c" ,re2c)
-      ("xxd" ,xxd)))
+    (list luajit-lua52-openresty
+          pkg-config
+          re2c
+          xxd))
    (inputs
-    `(("boost" ,boost)
-      ("boost-static" ,boost-static)
-      ("fmt" ,fmt)
-      ;; LuaJIT has a 2GiB addressing limit[1] that has been fixed on OpenResty
-      ;; fork. Emilua is severely affected by this limit, so the upstream package
-      ;; is avoided. Emilua also depends on the -DLUAJIT_ENABLE_LUA52COMPAT
-      ;; configure flag[2] for some features to work (e.g. __pairs on HTTP
-      ;; headers).
-      ;;
-      ;; [1] <http://hacksoflife.blogspot.com/2012/12/integrating-luajit-with-x-plane-64-bit.html>
-      ;; [2] <http://luajit.org/extensions.html#lua52>
-      ("luajit-lua52-openresty" ,luajit-lua52-openresty)
-      ("ncurses" ,ncurses)
-      ("openssl" ,openssl)))
+    (list boost
+          boost-static
+          fmt-7
+          ;; LuaJIT has a 2GiB addressing limit[1] that has been fixed on OpenResty
+          ;; fork. Emilua is severely affected by this limit, so the upstream package
+          ;; is avoided. Emilua also depends on the -DLUAJIT_ENABLE_LUA52COMPAT
+          ;; configure flag[2] for some features to work (e.g. __pairs on HTTP
+          ;; headers).
+          ;;
+          ;; [1] <http://hacksoflife.blogspot.com/2012/12/integrating-luajit-with-x-plane-64-bit.html>
+          ;; [2] <http://luajit.org/extensions.html#lua52>
+          luajit-lua52-openresty
+          ncurses
+          openssl))
    (native-search-paths
     (list
      (search-path-specification
@@ -1169,7 +1162,7 @@ enabled.")
 (define-public fennel
   (package
     (name "fennel")
-    (version "0.9.1")
+    (version "1.0.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1178,11 +1171,7 @@ enabled.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "07qgycf5cxm9zcc4fgpgvplg95ndavh3ynpdjpvzkikzbnyj7xia"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  (delete-file "fennelview.lua") #t))))
+                "0d4rpf0f2aqxlca3kxrbhjjhf1knhiz8ccwlx8xid05mc16la70y"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
@@ -1191,29 +1180,15 @@ enabled.")
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
-         (add-before 'build 'patch-lua-calls
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((lua (search-input-file inputs "/bin/lua")))
-               (setenv "LUA" lua)
-               (substitute* "old/launcher.lua"
-                 (("/usr/bin/env lua") lua))
-               #t)))
          (add-after 'build 'patch-fennel
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "fennel"
                (("/usr/bin/env .*lua")
-                (search-input-file inputs "/bin/lua")))
-             #t))
+                (search-input-file inputs "/bin/lua")))))
          (delete 'check)
          (add-after 'install 'check
-           (assoc-ref %standard-phases 'check))
-         (add-after 'install 'install-manpage
-           (lambda* (#:key outputs #:allow-other-keys)
-             (install-file "fennel.1"
-                           (string-append (assoc-ref outputs "out")
-                                          "/share/man/man1"))
-             #t)))))
-    (inputs `(("lua" ,lua)))
+           (assoc-ref %standard-phases 'check)))))
+    (inputs (list lua))
     (home-page "https://fennel-lang.org/")
     (synopsis "Lisp that compiles to Lua")
     (description
diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
index 15cabe702b..e3cdd6a1c6 100644
--- a/gnu/packages/lxde.scm
+++ b/gnu/packages/lxde.scm
@@ -77,14 +77,13 @@
                (base32
                 "1rfira3lx8v6scz1aq69925j4vslpp36bmgrrzcfby2c60q2c155"))))
     (build-system gnu-build-system)
-    (inputs `(("glib" ,glib)
-              ("gtk+" ,gtk+-2)))
-    (native-inputs `(("intltool"   ,intltool)
-                     ("glib"       ,glib "bin") ; for gtester
-                     ("libtool"    ,libtool)
-                     ("menu-cache" ,menu-cache)
-                     ("pkg-config" ,pkg-config)
-                     ("vala"       ,vala)))
+    (inputs (list glib gtk+-2))
+    (native-inputs (list intltool
+                         `(,glib "bin") ; for gtester
+                         libtool
+                         menu-cache
+                         pkg-config
+                         vala))
     (synopsis "File management support (core library)")
     (description "LibFM provides file management functions built on top of
 Glib/GIO giving a higher-level API.")
@@ -95,10 +94,8 @@ Glib/GIO giving a higher-level API.")
   (package (inherit libfm)
     (name "libfm-extra")
     (arguments '(#:configure-flags '("--with-extra-only")))
-    (inputs `(("glib" ,glib)))
-    (native-inputs `(("intltool"   ,intltool)
-                     ("libtool"    ,libtool)
-                     ("pkg-config" ,pkg-config)))
+    (inputs (list glib))
+    (native-inputs (list intltool libtool pkg-config))
     (synopsis "File management support (extra library)")
     (description "This package contains a stand-alone library which extends the
 libFM file management library.")))
@@ -115,9 +112,8 @@ libFM file management library.")))
        (sha256
         (base32 "0f4bjaamfxxdr9civvy55pa6vv9dx1hjs522gjbbgx7yp1cdh8kj"))))
     (build-system gnu-build-system)
-    (inputs `(("gtk+" ,gtk+-2)))
-    (native-inputs `(("intltool"   ,intltool)
-                     ("pkg-config" ,pkg-config)))
+    (inputs (list gtk+-2))
+    (native-inputs (list intltool pkg-config))
     (synopsis "LXDE GTK+ theme switcher")
     (description "LXAppearance is a desktop-independent GTK+ theme switcher
 able to change themes, icons, and fonts used by GTK+ applications.")
@@ -149,10 +145,8 @@ able to change themes, icons, and fonts used by GTK+ applications.")
                (("(\"|')xrandr\"" _ match)
                 (string-append match (which "xrandr") "\"")))
              #t)))))
-    (inputs `(("gtk+" ,gtk+-2)
-              ("xrandr" ,xrandr)))
-    (native-inputs `(("intltool"   ,intltool)
-                     ("pkg-config" ,pkg-config)))
+    (inputs (list gtk+-2 xrandr))
+    (native-inputs (list intltool pkg-config))
     (synopsis "LXDE monitor configuration tool")
     (description "LXRandR is a very basic monitor configuration tool.  It
 relies on the X11 resize-and-rotate (RandR) extension but doesn't aim to be a
@@ -176,9 +170,8 @@ or external monitor.")
                (base32
                 "0b2fxg8jjjpk219gh7qa18g45365598nd2bq7rrq0bdvqjdxy5i2"))))
     (build-system gnu-build-system)
-    (inputs `(("gtk+" ,gtk+-2)))
-    (native-inputs `(("intltool"   ,intltool)
-                     ("pkg-config" ,pkg-config)))
+    (inputs (list gtk+-2))
+    (native-inputs (list intltool pkg-config))
     (synopsis "LXDE task manager")
     (description "LXTask is a lightweight task manager derived from Xfce task
 manager with all dependencies on Xfce removed.  LXTask is based on the GTK+
@@ -199,10 +192,8 @@ toolkit.  It allows users to monitor and control of running processes.")
                (base32
                 "1124pghrhnx6q4391ri8nvi6bsmvbj1dx81an08mird8jf2b2rii"))))
     (build-system gnu-build-system)
-    (inputs `(("gtk+" ,gtk+-2)
-              ("vte"  ,vte/gtk+-2)))
-    (native-inputs `(("intltool"   ,intltool)
-                     ("pkg-config" ,pkg-config)))
+    (inputs (list gtk+-2 vte/gtk+-2))
+    (native-inputs (list intltool pkg-config))
     (synopsis "LXDE terminal emulator")
     (description "LXTerminal is a VTE-based terminal emulator.  It supports
 multiple tabs and has only minimal dependencies thus being completely
@@ -226,7 +217,7 @@ performance, all instances of the terminal are sharing a single process.")
     (build-system gnu-build-system)
     (inputs `(("glib"  ,glib)
               ("libfm" ,libfm-extra)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (arguments
      `(#:configure-flags '("CFLAGS=-fcommon")))
     (synopsis "LXDE implementation of the freedesktop menu's cache")
@@ -248,15 +239,11 @@ speed up the access to freedesktop.org defined application menus.")
                (base32
                 "1xqc2k2jh165mm81xg0ghxx0ml1s3rhh4ndvbzkcri4kfhj7pjql"))))
     (build-system gnu-build-system)
-    (inputs `(("gtk+"   ,gtk+-2)
-              ("gvfs"   ,gvfs)          ; for trash and mount support
-              ("libfm"  ,libfm)
-              ("libx11" ,libx11)))
-    (native-inputs `(("intltool"   ,intltool)
-                     ("libtool"    ,libtool)
-                     ("pkg-config" ,pkg-config)))
+    (inputs (list gtk+-2 gvfs ; for trash and mount support
+                  libfm libx11))
+    (native-inputs (list intltool libtool pkg-config))
     (propagated-inputs
-     `(("lxmenu-data" ,lxmenu-data)))   ; for "Open With..." application list
+     (list lxmenu-data))   ; for "Open With..." application list
     (synopsis "LXDE file manager")
     (description "PCMan is a lightweight GTK+ based file manager, compliant
 with freedesktop.org standard.")
@@ -296,33 +283,33 @@ with freedesktop.org standard.")
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("bash" ,bash)
-       ("btrfs-progs" ,btrfs-progs)
-       ("cairo" ,cairo)
-       ("coreutils" ,coreutils)
-       ("curlftpfs" ,curlftpfs)
-       ("e2fsprogs" ,e2fsprogs)
-       ("eudev" ,eudev)
-       ("fakeroot" ,fakeroot)
-       ("ffmpegthumbnailer" ,ffmpegthumbnailer)
-       ("fsarchiver" ,fsarchiver)
-       ("fuseiso" ,fuseiso)
-       ("glib" ,glib)
-       ("gphotofs" ,gphotofs)
-       ("gtk+" ,gtk+)
-       ("ifuse" ,ifuse)
-       ("jmtpfs" ,jmtpfs)
-       ("ktsuss" ,ktsuss)
-       ("libx11" ,libx11)
-       ("lsof" ,lsof)
-       ("ntfs-3g" ,ntfs-3g)
-       ("pango" ,pango)
-       ("procps" ,procps)
-       ("shared-mime-info" ,shared-mime-info)
-       ("startup-notification" ,startup-notification)
-       ("udevil" ,udevil)
-       ("util-linux" ,util-linux)
-       ("wget" ,wget)))
+     (list bash
+           btrfs-progs
+           cairo
+           coreutils
+           curlftpfs
+           e2fsprogs
+           eudev
+           fakeroot
+           ffmpegthumbnailer
+           fsarchiver
+           fuseiso
+           glib
+           gphotofs
+           gtk+
+           ifuse
+           jmtpfs
+           ktsuss
+           libx11
+           lsof
+           ntfs-3g
+           pango
+           procps
+           shared-mime-info
+           startup-notification
+           udevil
+           util-linux
+           wget))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -435,8 +422,7 @@ customizable menu system, and Bash integration.")
          "1f5sh2dvb3pdnjlcsyzq9543ck2jsqizkx3204cr22zm5s6j3qwz"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (synopsis "Freedesktop.org desktop menus for LXDE")
     (description
      "Lxmenu-data provides files required to build freedesktop.org
@@ -458,7 +444,7 @@ menu spec-compliant desktop menus for LXDE.")
          "0v4i6x86fr2hbx4fb2si7y2qzmj7h6hcjwaifnin18r8kwwvgl73"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "LXDE default icon theme based on nuoveXT2")
     (description
      "Lxde-icon-theme provides an default icon theme for LXDE.")
@@ -490,14 +476,11 @@ menu spec-compliant desktop menus for LXDE.")
                                           "/bin/lxsession")))
                         #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("lxmenu-data" ,lxmenu-data)
-       ("lxde-icon-theme" ,lxde-icon-theme)))
+     (list pkg-config intltool lxmenu-data lxde-icon-theme))
     (inputs
-     `(("lxsession" ,lxsession)
-       ;; ("lxlock" ,lxlock) ;for 'lxde-screenlock.desktop'
-       ))
+     (list lxsession
+           ;; ("lxlock" ,lxlock) ;for 'lxde-screenlock.desktop'
+           ))
     (synopsis "Common files of the LXDE Desktop")
     (description
      "Lxde-common provides common files of the LXDE Desktop.")
@@ -518,10 +501,9 @@ menu spec-compliant desktop menus for LXDE.")
          "123f3yn4rp1w5b3n5aj3ad9snkxab29qkrs7bcvf5bx4cn57g3sf"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gtk+-2" ,gtk+-2)))
+     (list gtk+-2))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (synopsis "Tool for mouse and keyboard configuration in LXDE")
     (description
      "Lxinput provides a small program to configure keyboard and mouse
@@ -568,14 +550,13 @@ in LXDE.")
      `(("gtk+-2" ,gtk+-2)
        ("polkit" ,polkit)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("docbook-xsl" ,docbook-xsl)
-       ("vala" ,vala)
-
-       ;; For bootstrapping.
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list pkg-config
+           intltool
+           docbook-xsl
+           vala
+           ;; For bootstrapping.
+           autoconf
+           automake))
     (synopsis "Lightweight X11 session manager")
     (description
      "Lxsession provides an lightweight X11 session manager.")
@@ -619,14 +600,9 @@ in LXDE.")
        ("libx11" ,libx11)
        ("wireless-tools" ,wireless-tools)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("docbook-xml" ,docbook-xml)
-       ("gettext-minimal" ,gettext-minimal)))
+     (list pkg-config intltool docbook-xml gettext-minimal))
     (propagated-inputs
-     `(("lxmenu-data" ,lxmenu-data)
-       ("libfm" ,libfm)
-       ("menu-cache" ,menu-cache)))
+     (list lxmenu-data libfm menu-cache))
     (synopsis "X11 Desktop panel for LXDE")
     (description
      "Lxpanel provides an X11 desktop panel for LXDE.")
@@ -644,23 +620,23 @@ in LXDE.")
      ;; TODO:
      ;; lxshortcut, lxsession-edit
      ;; lxappearance-obconf
-     `(("menu-cache" ,menu-cache)
-       ("gpicview" ,gpicview)
-       ("leafpad" ,leafpad)
-       ("lxappearance" ,lxappearance)
-       ("lxde-icon-theme" ,lxde-icon-theme)
-       ("lxde-common" ,lxde-common)
-       ("lxmenu-data" ,lxmenu-data)
-       ("lxpanel" ,lxpanel)
-       ("lxrandr" ,lxrandr)
-       ("lxsession" ,lxsession)
-       ("libfm" ,libfm)
-       ("libfm-extra" ,libfm-extra)
-       ("lxtask" ,lxtask)
-       ("lxterminal" ,lxterminal)
-       ("pcmanfm" ,pcmanfm)
-       ("openbox" ,openbox)
-       ("obconf" ,obconf)))
+     (list menu-cache
+           gpicview
+           leafpad
+           lxappearance
+           lxde-icon-theme
+           lxde-common
+           lxmenu-data
+           lxpanel
+           lxrandr
+           lxsession
+           libfm
+           libfm-extra
+           lxtask
+           lxterminal
+           pcmanfm
+           openbox
+           obconf))
     (synopsis "Lightweight X11 Desktop Environment")
     (description
      "LXDE, which stands for Lightweight X11 Desktop Environment, is a
diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm
index c797b63754..a0a3a0f15b 100644
--- a/gnu/packages/lxqt.scm
+++ b/gnu/packages/lxqt.scm
@@ -88,9 +88,9 @@
      ;; XXX: Tests require a dbus session and some icons.
      '(#:tests? #f))
     (native-inputs
-     `(("doxygen" ,doxygen)))
+     (list doxygen))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (home-page "https://launchpad.net/libdbusmenu-qt")
     (synopsis "Qt implementation of the DBusMenu spec")
     (description "This library provides a Qt implementation of the DBusMenu
@@ -101,20 +101,21 @@ and import their menus over DBus.")
 (define-public libstatgrab
   (package
     (name "libstatgrab")
-    (version "0.92")
+    (version "0.92.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://ftp.i-scream.org/pub/i-scream/libstatgrab/"
                            name "-" version ".tar.gz"))
        (sha256
-        (base32 "15m1sl990l85ijf8pnc6hdfha6fqyiq74mijrzm3xz4zzxm91wav"))))
+        (base32 "04bcbln3qlilxsyh5hrwdrv7x4pfv2lkwdwa98bxfismd15am22n"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--enable-tests")))
+     '(#:configure-flags '("--enable-tests"
+                           "--disable-static")))
     (native-inputs
      ;; For testing.
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "https://www.i-scream.org/libstatgrab/")
     (synopsis "Provides access to statistics about the system")
     (description "libstatgrab is a library that provides cross platform access
@@ -147,13 +148,12 @@ to statistics about the system on which it's run.")
        '("-DLXQT_DATA_DIR=/run/current-system/profile/share"
          "-DLXQT_ETC_XDG_DIR=/run/current-system/profile/etc/xdg")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib" ,glib)))
+     (list pkg-config glib))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (propagated-inputs
      ;; Dependent projects require Perl via the CMake files.
-     `(("perl" ,perl)))
+     (list perl))
     (synopsis "LXQt Build tools")
     (description
      "Lxqt-build-tools is providing several tools needed to build LXQt
@@ -187,12 +187,9 @@ itself as well as other components maintained by the LXQt project.")
              #t)))))
     (propagated-inputs
      ;; required by Qt5XdgIconLoader.pc
-     `(("glib" ,glib)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+     (list glib qtbase-5 qtsvg))
     (native-inputs
-     `(("lxqt-build-tools" ,lxqt-build-tools)
-       ("pkg-config" ,pkg-config)))
+     (list lxqt-build-tools pkg-config))
     (home-page "https://github.com/lxqt/libqtxdg")
     (synopsis "Qt implementation of freedesktop.org xdg specifications")
     (description "Libqtxdg implements the freedesktop.org xdg specifications
@@ -230,15 +227,14 @@ in Qt.")
                                "/share/lxqt/translations")))
              #t)))))
     (inputs
-     `(("kwindowsystem" ,kwindowsystem)
-       ("libqtxdg" ,libqtxdg)
-       ("libxscrnsaver" ,libxscrnsaver)
-       ("polkit-qt" ,polkit-qt)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)))
+     (list kwindowsystem
+           libqtxdg
+           libxscrnsaver
+           polkit-qt
+           qtsvg
+           qtx11extras))
     (native-inputs
-     `(("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list lxqt-build-tools qttools))
     (home-page "https://lxqt-project.org")
     (synopsis "Core utility library for all LXQt components")
     (description "liblxqt provides the basic libraries shared by the
@@ -259,9 +255,9 @@ components of the LXQt desktop environment.")
     (build-system cmake-build-system)
     (arguments '(#:tests? #f))          ; no tests
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (native-inputs
-     `(("lxqt-build-tools" ,lxqt-build-tools)))
+     (list lxqt-build-tools))
     (home-page "https://lxqt-project.org")
     (synopsis "Library used to query system info and statistics")
     (description "libsysstat is a library to query system information like CPU
@@ -284,15 +280,14 @@ and memory usage or network traffic.")
         (base32 "04riqf2xgbcnq67l5zb0dfnnmc4a2zljx8zfn3jlvxirnd73l0zm"))))
     (build-system cmake-build-system)
     (inputs
-     `(("kwindowsystem" ,kwindowsystem)
-       ("liblxqt" ,liblxqt)
-       ("libqtxdg" ,libqtxdg)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)))
+     (list kwindowsystem
+           liblxqt
+           libqtxdg
+           qtbase-5
+           qtsvg
+           qtx11extras))
     (native-inputs
-     `(("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list lxqt-build-tools qttools))
     (arguments
      '(#:tests? #f                      ; no tests
        #:phases
@@ -327,15 +322,14 @@ LXQt and the system it's running on.")
         (base32 "07fkn3zmpfxjzzsv1hyv50sx0359n10lxjil35qn266nz165wj43"))))
     (build-system cmake-build-system)
     (inputs
-     `(("kwindowsystem" ,kwindowsystem)
-       ("liblxqt" ,liblxqt)
-       ("libqtxdg" ,libqtxdg)
-       ("polkit-qt" ,polkit-qt)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)))
+     (list kwindowsystem
+           liblxqt
+           libqtxdg
+           polkit-qt
+           qtsvg
+           qtx11extras))
     (native-inputs
-     `(("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list lxqt-build-tools qttools))
     (arguments
      '(#:tests? #f                      ; no tests
        #:phases
@@ -374,27 +368,25 @@ the operating system LXQt is running on.")
         (base32 "0nr43d6fyc5zg4b3iwpca2cy58ry8q0rahrk6ixm7wrvmaiwkh93"))))
     (build-system cmake-build-system)
     (inputs
-     `(("eudev" ,eudev)
-       ("kwindowsystem" ,kwindowsystem)
-       ("liblxqt" ,liblxqt)
-       ("libqtxdg" ,libqtxdg)
-       ("libxcursor" ,libxcursor)
-       ("libxi" ,libxi)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)
-       ("solid" ,solid)
-       ("xf86-input-libinput" ,xf86-input-libinput)
-       ("xkeyboard-config" ,xkeyboard-config)
-       ("zlib" ,zlib)))
+     (list eudev
+           kwindowsystem
+           liblxqt
+           libqtxdg
+           libxcursor
+           libxi
+           qtbase-5
+           qtsvg
+           qtx11extras
+           solid
+           xf86-input-libinput
+           xkeyboard-config
+           zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list pkg-config lxqt-build-tools qttools))
     ;; XXX: This is a workaround so libkscreen can find the backends as we
     ;; dont have a way specify them. We may want to  patch like Nix does.
     (propagated-inputs
-     `(("libkscreen" ,libkscreen)))
+     (list libkscreen))
     (arguments
      '(#:tests? #f                      ; no tests
        #:phases
@@ -447,16 +439,14 @@ configuration of both LXQt and the underlying operating system.")
         (base32 "0pnyqiqhaawrnyvw3ljp850d911abaalnl4rgvl2xyzybvlhki4h"))))
     (build-system cmake-build-system)
     (inputs
-     `(("kwindowsystem" ,kwindowsystem)
-       ("liblxqt" ,liblxqt)
-       ("libqtxdg" ,libqtxdg)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)))
+     (list kwindowsystem
+           liblxqt
+           libqtxdg
+           qtbase-5
+           qtsvg
+           qtx11extras))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)
-       ("lxqt-build-tools" ,lxqt-build-tools)))
+     (list pkg-config qttools lxqt-build-tools))
     (arguments
      '(#:tests? #f                      ; no tests
        #:phases
@@ -495,15 +485,14 @@ as a whole and are not limited to distinct applications.")
         (base32 "1dyal7brmfnydfgb6lpxnqww8fj5gzixs7s3wf5nn2ihsz1wm4nk"))))
     (build-system cmake-build-system)
     (inputs
-     `(("kwindowsystem" ,kwindowsystem)
-       ("liblxqt" ,liblxqt)
-       ("libqtxdg" ,libqtxdg)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)))
+     (list kwindowsystem
+           liblxqt
+           libqtxdg
+           qtbase-5
+           qtsvg
+           qtx11extras))
     (native-inputs
-     `(("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list lxqt-build-tools qttools))
     (arguments
      '(#:tests? #f                      ; no test target
        #:phases
@@ -541,15 +530,14 @@ according to the Desktop Notifications Specification.")
         (base32 "0gdcy8c21sbfrlfz9c3zqw4dvdwf309flkjgqanwwl9i8hr26chr"))))
     (build-system cmake-build-system)
     (inputs
-     `(("kwindowsystem" ,kwindowsystem)
-       ("liblxqt" ,liblxqt)
-       ("libqtxdg" ,libqtxdg)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)))
+     (list kwindowsystem
+           liblxqt
+           libqtxdg
+           qtbase-5
+           qtsvg
+           qtx11extras))
     (native-inputs
-     `(("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list lxqt-build-tools qttools))
     (arguments
      '(#:tests? #f                      ; no tests
        #:phases
@@ -580,36 +568,33 @@ of other programs.")
         (base32 "1k2cfs1mhad486kh93vbxma3jpjksp4hzjv1xmp1g5alb5dgnc0q"))))
     (build-system cmake-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("kguiaddons" ,kguiaddons)
-       ("libdbusmenu-qt" ,libdbusmenu-qt)
-       ("liblxqt" ,liblxqt)
-       ("libqtxdg" ,libqtxdg)
-       ("libstatgrab" ,libstatgrab)
-       ("libsysstat" ,libsysstat)
-       ("libxcomposite" ,libxcomposite)
-       ("libxdamage" ,libxdamage)
-       ("libxkbcommon" ,libxkbcommon)
-       ("libxrender" ,libxrender)
-       ("lm-sensors" ,lm-sensors "lib")
-       ("lxqt-globalkeys" ,lxqt-globalkeys)
-       ("pcre" ,pcre)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)
-       ("solid" ,solid)
-       ("xcb-util" ,xcb-util)
-       ("xkeyboard-config" ,xkeyboard-config)))
+     (list alsa-lib
+           kguiaddons
+           libdbusmenu-qt
+           liblxqt
+           libqtxdg
+           libstatgrab
+           libsysstat
+           libxcomposite
+           libxdamage
+           libxkbcommon
+           libxrender
+           `(,lm-sensors "lib")
+           lxqt-globalkeys
+           pcre
+           pulseaudio
+           qtbase-5
+           qtsvg
+           qtx11extras
+           solid
+           xcb-util
+           xkeyboard-config))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list pkg-config lxqt-build-tools qttools))
     (propagated-inputs
      ;; Propagating KWINDOWSYSTEM so that the list of opened applications
      ;; shows up in lxqt-panel's taskbar plugin.
-     `(("kwindowsystem" ,kwindowsystem)
-       ("lxmenu-data" ,lxmenu-data)))
+     (list kwindowsystem lxmenu-data))
     (arguments
      '(#:tests? #f                      ; no tests
        #:phases
@@ -655,19 +640,16 @@ of other programs.")
         (base32 "119bjhx208g7wxmr8r0ajb3wl6vagq1aks6zz07df4bgjs3nnpli"))))
     (build-system cmake-build-system)
     (inputs
-     `(("kwindowsystem" ,kwindowsystem)
-       ("liblxqt" ,liblxqt)
-       ("libqtxdg" ,libqtxdg)
-       ("pcre" ,pcre)
-       ("polkit-qt" ,polkit-qt)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)))
+     (list kwindowsystem
+           liblxqt
+           libqtxdg
+           pcre
+           polkit-qt
+           qtbase-5
+           qtsvg
+           qtx11extras))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("polkit" ,polkit)
-       ("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list pkg-config polkit lxqt-build-tools qttools))
     (arguments
      '(#:tests? #f                      ; no test target
        #:phases
@@ -704,18 +686,17 @@ LXQt.")
         (base32 "00njx8a8cs0zzpz798qc9j16k7i4y0ydy1xmmcq9yv0wawh4gqck"))))
     (build-system cmake-build-system)
     (inputs
-     `(("kidletime" ,kidletime)
-       ("kwindowsystem" ,kwindowsystem)
-       ("liblxqt" ,liblxqt)
-       ("libqtxdg" ,libqtxdg)
-       ("lxqt-globalkeys" ,lxqt-globalkeys)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)
-       ("solid" ,solid)))
+     (list kidletime
+           kwindowsystem
+           liblxqt
+           libqtxdg
+           lxqt-globalkeys
+           qtbase-5
+           qtsvg
+           qtx11extras
+           solid))
     (native-inputs
-     `(("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list lxqt-build-tools qttools))
     (arguments
      '(#:tests? #f                      ; no tests
        #:phases
@@ -754,15 +735,14 @@ when laptop batteries are low on power.")
         (base32 "14c6abxfg3vda333wrvb5lk45c45hnb66jclbs3vsmrjxdb13vv5"))))
     (build-system cmake-build-system)
     (inputs
-     `(("libdbusmenu-qt" ,libdbusmenu-qt)
-       ("libfm-qt" ,libfm-qt)
-       ("libqtxdg" ,libqtxdg)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)))
+     (list libdbusmenu-qt
+           libfm-qt
+           libqtxdg
+           qtbase-5
+           qtsvg
+           qtx11extras))
     (native-inputs
-     `(("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list lxqt-build-tools qttools))
     (arguments
      '(#:tests? #f                      ; no tests
        #:phases
@@ -792,19 +772,17 @@ Qt with LXQt.")
         (base32 "0n53jbvkmp4vgi21a720gsvi407m4ybqk8xrpnm5f48yjr88r9i4"))))
     (build-system cmake-build-system)
     (inputs
-     `(("kwindowsystem" ,kwindowsystem)
-       ("liblxqt" ,liblxqt)
-       ("libqtxdg" ,libqtxdg)
-       ("lxqt-globalkeys" ,lxqt-globalkeys)
-       ("muparser" ,muparser)
-       ("pcre" ,pcre)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)))
+     (list kwindowsystem
+           liblxqt
+           libqtxdg
+           lxqt-globalkeys
+           muparser
+           pcre
+           qtbase-5
+           qtsvg
+           qtx11extras))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)
-       ("lxqt-build-tools" ,lxqt-build-tools)))
+     (list pkg-config qttools lxqt-build-tools))
     (arguments
      '(#:tests? #f                      ; no tests
        #:phases
@@ -841,19 +819,17 @@ allows for launching applications or shutting down the system.")
         (base32 "0iwwfyngpbhs2dwvbw0cci0bf3qbqcpjjw7h5vm46nimvgp8q1fr"))))
     (build-system cmake-build-system)
     (inputs
-     `(("eudev" ,eudev)
-       ("kwindowsystem" ,kwindowsystem)
-       ("liblxqt" ,liblxqt)
-       ("libqtxdg" ,libqtxdg)
-       ("procps" ,procps)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)
-       ("xdg-user-dirs" ,xdg-user-dirs)))
+     (list eudev
+           kwindowsystem
+           liblxqt
+           libqtxdg
+           procps
+           qtbase-5
+           qtsvg
+           qtx11extras
+           xdg-user-dirs))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list pkg-config lxqt-build-tools qttools))
     (arguments
      `(#:tests? #f
        #:phases
@@ -913,17 +889,15 @@ for the LXQt desktop environment.")
         (base32 "02s38m0ywp0gjkjczvrc4r1ignshbajlj084xd61d3rcm7vahhic"))))
     (build-system cmake-build-system)
     (inputs
-     `(("kwindowsystem" ,kwindowsystem)
-       ("liblxqt" ,liblxqt)
-       ("libqtxdg" ,libqtxdg)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)
-       ("sudo" ,sudo)))
+     (list kwindowsystem
+           liblxqt
+           libqtxdg
+           qtbase-5
+           qtsvg
+           qtx11extras
+           sudo))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)
-       ("lxqt-build-tools" ,lxqt-build-tools)))
+     (list pkg-config qttools lxqt-build-tools))
     (arguments
      '(#:tests? #f                      ; no tests
        #:phases
@@ -955,7 +929,7 @@ permissions of other users including root.")
         (base32 "0kmvcz6rxghxxgb0m264zbvycc1zjma8mr4cpwg5kyrzb47rdw9z"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("lxqt-build-tools" ,lxqt-build-tools)))
+     (list lxqt-build-tools))
     (arguments
      `(#:tests? #f                      ; no tests
        #:phases
@@ -995,18 +969,16 @@ for LXQt.")
     (arguments
      '(#:tests? #f))                    ; no tests
     (inputs
-     `(("glib" ,glib)
-       ("libexif" ,libexif)
-       ("libfm" ,libfm)
-       ("libxcb" ,libxcb)
-       ("menu-cache" ,menu-cache)
-       ("pcre" ,pcre)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+     (list glib
+           libexif
+           libfm
+           libxcb
+           menu-cache
+           pcre
+           qtbase-5
+           qtx11extras))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list pkg-config lxqt-build-tools qttools))
     (home-page "https://lxqt-project.org")
     (synopsis "Qt binding for libfm")
     (description "libfm-qt is the Qt port of libfm, a library providing
@@ -1026,13 +998,9 @@ components to build desktop file managers which belongs to LXDE.")
         (base32 "1axs7dnh2z08ygy28iipfbgfck15k2i2pwlf0v8d8axjrmavzb3l"))))
     (build-system cmake-build-system)
     (inputs
-     `(("libfm-qt" ,libfm-qt)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+     (list libfm-qt qtbase-5 qtx11extras))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)
-       ("lxqt-build-tools" ,lxqt-build-tools)))
+     (list pkg-config qttools lxqt-build-tools))
     (arguments
      '(#:tests? #f                      ; no tests
        #:phases
@@ -1068,12 +1036,9 @@ LXDE.")
         (base32 "0haarzhndjp0wndfhcdy6zl2whpdn3w0qzr3rr137kfqibc58lvx"))))
     (build-system cmake-build-system)
     (inputs
-     `(("libconfig" ,libconfig)
-       ("qtbase" ,qtbase-5)))
+     (list libconfig qtbase-5))
     (native-inputs
-     `(("lxqt-build-tools" ,lxqt-build-tools)
-       ("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list lxqt-build-tools pkg-config qttools))
     (arguments
      '(#:tests? #f                      ; no tests
        #:phases
@@ -1103,15 +1068,9 @@ manager Compton.")
         (base32 "0g6hs41xfw2ghhwpj0rqr2ciri0x9v984689yrnmnvah88zlya1f"))))
     (build-system cmake-build-system)
     (inputs
-     `(("libexif" ,libexif)
-       ("libfm-qt" ,libfm-qt)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)))
+     (list libexif libfm-qt qtbase-5 qtsvg qtx11extras))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list pkg-config lxqt-build-tools qttools))
     (arguments
      '(#:tests? #f))                    ; no tests
     (home-page "https://lxqt-project.org")
@@ -1133,20 +1092,18 @@ image viewer.")
         (base32 "0hlbivdbiw7wjhwrp8qfmq50ks19v0q21m3pyjj0k2na7nv9d3a5"))))
     (build-system cmake-build-system)
     (inputs
-     `(("imlib2" ,imlib2)
-       ("libsm" ,libsm)
-       ("librsvg" ,librsvg)
-       ("libxft" ,libxft)
-       ("libxml2" ,libxml2)
-       ("openbox" ,openbox)
-       ("pango" ,pango)
-       ("pcre" ,pcre)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+     (list imlib2
+           libsm
+           librsvg
+           libxft
+           libxml2
+           openbox
+           pango
+           pcre
+           qtbase-5
+           qtx11extras))
     (native-inputs
-     `(("lxqt-build-tools" ,lxqt-build-tools)
-       ("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list lxqt-build-tools pkg-config qttools))
     (arguments
      '(#:tests? #f))                    ; no tests
     (home-page "https://lxqt-project.org")
@@ -1168,15 +1125,9 @@ window manager OpenBox.")
         (base32 "0w51dpjayav78lmhw966fz3gvypkmv64xgsd7x5rqs8am39lq9vc"))))
     (build-system cmake-build-system)
     (inputs
-     `(("glib" ,glib)
-       ("pcre" ,pcre)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+     (list glib pcre pulseaudio qtbase-5 qtx11extras))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list pkg-config lxqt-build-tools qttools))
     (arguments
      '(#:tests? #f))                    ; no tests
     (home-page "https://lxqt-project.org")
@@ -1198,15 +1149,14 @@ window manager OpenBox.")
         (base32 "0zg0czrh3dlbnl5smxamhkdbj1g0szm47w1c0fwpaplgc1vv5lfq"))))
     (build-system cmake-build-system)
     (inputs
-     `(("kwindowsystem" ,kwindowsystem)
-       ("libxrender" ,libxrender)
-       ("liblxqt" ,liblxqt)
-       ("libqtxdg" ,libqtxdg)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
+     (list kwindowsystem
+           libxrender
+           liblxqt
+           libqtxdg
+           qtbase-5
+           qtx11extras))
     (native-inputs
-     `(("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list lxqt-build-tools qttools))
     (arguments
      '(#:tests? #f))                    ; no tests
     (home-page "https://lxqt-project.org")
@@ -1228,11 +1178,9 @@ processes currently in existence, much like code{top} or code{ps}.")
         (base32 "10lv475qj0x3c3vl4yhjyr6y10qj5pq8n5pal5k24f6pf7xv412f"))))
     (build-system cmake-build-system)
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("utf8proc" ,utf8proc)))
+     (list qtbase-5 utf8proc))
     (native-inputs
-     `(("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list lxqt-build-tools qttools))
     (arguments
      '(#:tests? #f))                    ; no tests
     (home-page "https://lxqt-project.org")
@@ -1253,12 +1201,9 @@ processes currently in existence, much like code{top} or code{ps}.")
         (base32 "0rfv7a6ncm8fs8aicinh9l29w4636gxzcqz735jmch2r41v9i1d9"))))
     (build-system cmake-build-system)
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)
-       ("qtermwidget" ,qtermwidget)))
+     (list qtbase-5 qtx11extras qtermwidget))
     (native-inputs
-     `(("lxqt-build-tools" ,lxqt-build-tools)
-       ("qttools" ,qttools)))
+     (list lxqt-build-tools qttools))
     (arguments
      '(#:tests? #f))                      ; no tests
     (home-page "https://lxqt-project.org")
@@ -1280,15 +1225,9 @@ QTermWidget.")
         (base32 "0cilzw7rz5m2klzpax7rrs5rr6whfda2svwzsn2jvmrirmh5by7r"))))
     (build-system cmake-build-system)
     (inputs
-     `(("kwindowsystem" ,kwindowsystem)
-       ("libqtxdg" ,libqtxdg)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)))
+     (list kwindowsystem libqtxdg qtbase-5 qtsvg qtx11extras))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("perl" ,perl)
-       ("qttools" ,qttools)))
+     (list pkg-config perl qttools))
     (arguments
      '(#:tests? #f))                    ; no tests
     (home-page "https://lxqt-project.org")
@@ -1311,15 +1250,9 @@ easily publishing them on internet image hosting services.")
           (base32 "0fzgq7cyr7hx8qmq84xfgbsdx04mc1r7vzq5mz79j7bp2ysh134z"))))
     (build-system cmake-build-system)
     (inputs
-      `(("glib" ,glib)
-        ("json-glib" ,json-glib)
-        ("libfm-qt" ,libfm-qt)
-        ("qtbase" ,qtbase-5)
-        ("qtx11extras" ,qtx11extras)))
+      (list glib json-glib libfm-qt qtbase-5 qtx11extras))
     (native-inputs
-      `(("pkg-config" ,pkg-config)
-        ("lxqt-build-tools" ,lxqt-build-tools)
-        ("qttools" ,qttools)))
+      (list pkg-config lxqt-build-tools qttools))
     (arguments
       '(#:tests? #f))
     (home-page "https://lxqt-project.org")
@@ -1348,12 +1281,12 @@ like @command{tar} and @command{zip}.")
            (base32 "087641idpg7n8yhh5biis4wv52ayw3rddirwqb34bf5fwj664pw9"))))
       (build-system cmake-build-system)
       (inputs
-        `(("kwindowsystem" ,kwindowsystem)
-          ("qtbase" ,qtbase-5)
-          ("qtsvg" ,qtsvg)
-          ("liblxqt" ,liblxqt)
-          ("qtx11extras" ,qtx11extras)
-          ("libqtxdg" ,libqtxdg)))
+        (list kwindowsystem
+              qtbase-5
+              qtsvg
+              liblxqt
+              qtx11extras
+              libqtxdg))
       (native-inputs
         `(("lxqt-build-tools" ,lxqt-build-tools)
           ("qtlinguist" ,qttools)))
@@ -1393,41 +1326,41 @@ desktop.")
     (build-system trivial-build-system)
     (arguments '(#:builder (begin (mkdir %output) #t)))
     (propagated-inputs
-     `(;; XDG
-       ("desktop-file-utils" ,desktop-file-utils)
-       ("hicolor-icon-theme" ,hicolor-icon-theme)
-       ("xdg-user-dirs" ,xdg-user-dirs)
-       ("xdg-utils" ,xdg-utils)
-       ;; Base
-       ;; TODO: qtsvg is needed for lxqt apps to display icons. Maybe it
-       ;; should be added to their propagated-inputs?
-       ("qtsvg" ,qtsvg)
-       ;; Core
-       ("lxqt-about" ,lxqt-about)
-       ("lxqt-admin" ,lxqt-admin)
-       ("lxqt-config" ,lxqt-config)
-       ("lxqt-globalkeys" ,lxqt-globalkeys)
-       ("lxqt-notificationd" ,lxqt-notificationd)
-       ("lxqt-openssh-askpass" ,lxqt-openssh-askpass)
-       ("lxqt-panel" ,lxqt-panel)
-       ("lxqt-policykit" ,lxqt-policykit)
-       ("lxqt-powermanagement" ,lxqt-powermanagement)
-       ("lxqt-qtplugin" ,lxqt-qtplugin)
-       ("lxqt-runner" ,lxqt-runner)
-       ("lxqt-session" ,lxqt-session)
-       ("lxqt-sudo" ,lxqt-sudo)
-       ("lxqt-themes" ,lxqt-themes)
-       ("pcmanfm-qt" ,pcmanfm-qt)
-       ;; Extra
-       ("picom" ,picom)
-       ("font-dejavu" ,font-dejavu)
-       ("lximage-qt" ,lximage-qt)
-       ("obconf-qt" ,obconf-qt)
-       ("openbox" ,openbox)
-       ("oxygen-icons" ,oxygen-icons)
-       ("pavucontrol-qt" ,pavucontrol-qt)
-       ("qps" ,qps)
-       ("qterminal" ,qterminal)))
+     (list ;; XDG
+           desktop-file-utils
+           hicolor-icon-theme
+           xdg-user-dirs
+           xdg-utils
+           ;; Base
+           ;; TODO: qtsvg is needed for lxqt apps to display icons. Maybe it
+           ;; should be added to their propagated-inputs?
+           qtsvg
+           ;; Core
+           lxqt-about
+           lxqt-admin
+           lxqt-config
+           lxqt-globalkeys
+           lxqt-notificationd
+           lxqt-openssh-askpass
+           lxqt-panel
+           lxqt-policykit
+           lxqt-powermanagement
+           lxqt-qtplugin
+           lxqt-runner
+           lxqt-session
+           lxqt-sudo
+           lxqt-themes
+           pcmanfm-qt
+           ;; Extra
+           picom
+           font-dejavu
+           lximage-qt
+           obconf-qt
+           openbox
+           oxygen-icons
+           pavucontrol-qt
+           qps
+           qterminal))
     (synopsis "The Lightweight Qt Desktop Environment")
     (description "LXQt is a lightweight Qt desktop environment.")
     (home-page "https://lxqt-project.org")
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index db8c8dedc8..1cd2fd1308 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -141,20 +141,28 @@ sparsely connected networks.")
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no "check" target
-       #:phases (modify-phases %standard-phases
-                  (delete 'configure)
-                  (replace
-                   'install             ; no ‘install’ target
-                   (lambda* (#:key outputs #:allow-other-keys)
-                     (let* ((out (assoc-ref outputs "out"))
-                            (bin (string-append out "/bin/")))
-                       (mkdir-p bin)
-                       (for-each (lambda (file)
-                                   (copy-file file (string-append bin file)))
-                                 '("svm-train"
-                                   "svm-predict"
-                                   "svm-scale")))
-                     #t)))))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'build 'build-lib
+           (lambda _
+             (invoke "make" "lib")))
+         (replace 'install              ; no ‘install’ target
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin/"))
+                    (lib (string-append out "/lib/"))
+                    (inc (string-append out "/include/libsvm")))
+               (mkdir-p bin)
+               (for-each (lambda (file)
+                           (copy-file file (string-append bin file)))
+                         '("svm-train"
+                           "svm-predict"
+                           "svm-scale"))
+               (mkdir-p lib)
+               (install-file "libsvm.so.2" lib)
+               (mkdir-p inc)
+               (install-file "svm.h" inc)))))))
     (home-page "https://www.csie.ntu.edu.tw/~cjlin/libsvm/")
     (synopsis "Library for Support Vector Machines")
     (description
@@ -193,7 +201,7 @@ classification.")
                          (string-append site "libsvm.so.2")))
             #t)))))
     (inputs
-     `(("python" ,python)))
+     (list python))
     (synopsis "Python bindings of libSVM")))
 
 (define-public ghmm
@@ -258,12 +266,12 @@ classification.")
        `(("python" ,python-2) ; only Python 2 is supported
          ("libxml2" ,libxml2)))
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("dejagnu" ,dejagnu)
-         ("swig" ,swig)
-         ("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)))
+       (list pkg-config
+             dejagnu
+             swig
+             autoconf
+             automake
+             libtool))
       (home-page "http://ghmm.org")
       (synopsis "Hidden Markov Model library")
       (description
@@ -288,9 +296,10 @@ training, HMM clustering, HMM mixtures.")
                 "15xlax3z31lsn62vlg94hkm75nm40q4679amnfg13jm8m2bnhy5m"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags (list "--enable-blast")))
+     `(#:configure-flags (list "--enable-blast"
+                               "CFLAGS=-fcommon")))
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "http://micans.org/mcl/")
     (synopsis "Clustering algorithm for graphs")
     (description
@@ -326,7 +335,7 @@ networks) based on simulation of (stochastic) flow in graphs.")
              (substitute* "setup.ml"
                (("LDFLAGS=-fPIC")
                 (string-append "LDFLAGS=-fPIC\"; \"SHELL=" (which "sh")))
-               (("-std=c89") "-std=gnu99")
+               (("-std=c89") "-std=gnu99 -fcommon")
 
                ;; This is a mutable string, which is no longer supported.  Use
                ;; a byte buffer instead.
@@ -339,14 +348,14 @@ networks) based on simulation of (stochastic) flow in graphs.")
                ((" s;")
                 " s);"))
              (substitute* "myocamlbuild.ml"
-               (("std=c89") "std=gnu99"))
+               (("std=c89") "std=gnu99 -fcommon"))
              ;; Since we build with a more recent OCaml, we have to use C99 or
              ;; later.  This causes problems with the old C code.
              (substitute* "src/impala/matrix.c"
                (("restrict") "restrict_"))
              #t)))))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)))
+     (list ocamlbuild))
     (home-page "https://github.com/fhcrc/mcl")
     (synopsis "OCaml wrappers around MCL")
     (description
@@ -376,16 +385,18 @@ algorithm.")
                             (assoc-ref %build-inputs "boost")))
        #:phases
        (modify-phases %standard-phases
-         (add-before
-          'configure 'set-CXXFLAGS
-          (lambda _
-            (setenv "CXXFLAGS" "-fpermissive ")
-            #t)))))
+         (add-after 'unpack 'fix-compatibility-errors
+           (lambda _
+             (substitute* "src/library/IAM2WayImportance.h"
+               (("= std::make_pair.*")
+                "= std::minmax(varID1, varID2);"))
+             (substitute* "src/library/DataFrame.h"
+               (("isFirst\\?.*")
+                "if (isFirst) { isFirst = false; } else { os << par.delimiter; }\n"))))
+         (add-before 'configure 'set-CXXFLAGS
+           (lambda _ (setenv "CXXFLAGS" "-fpermissive "))))))
     (inputs
-     `(("boost" ,boost)
-       ("gsl" ,gsl)
-       ("libxml2" ,libxml2)
-       ("zlib" ,zlib)))
+     (list boost gsl libxml2 zlib))
     (native-inputs
      `(("gfortran" ,gfortran)
        ("gfortran:lib" ,gfortran "lib")))
@@ -555,8 +566,7 @@ optimizing, and searching weighted finite-state transducers (FSTs).")
        ("lzo" ,lzo)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("rxcpp" ,rxcpp)))
+     (list pkg-config rxcpp))
     ;; Non-portable SSE instructions are used so building fails on platforms
     ;; other than x86_64.
     (supported-systems '("x86_64-linux"))
@@ -633,22 +643,18 @@ in terms of new algorithms.")
                       (invoke "make" "install"
                               "-C" ".setuptools-cmake-build"))))))
     (native-inputs
-     `(("cmake" ,cmake)
-       ("googletest" ,googletest)
-       ("pybind11" ,pybind11)
-       ("python-coverage" ,python-coverage)
-       ("python-nbval" ,python-nbval)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list cmake
+           googletest
+           pybind11
+           python-coverage
+           python-nbval
+           python-pytest
+           python-pytest-runner))
     (inputs
-     `(("protobuf" ,protobuf)))
+     (list protobuf))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-protobuf" ,python-protobuf)
-       ("python-six" ,python-six)
-       ("python-tabulate" ,python-tabulate)
-       ("python-typing-extensions"
-        ,python-typing-extensions)))
+     (list python-numpy python-protobuf python-six python-tabulate
+           python-typing-extensions))
     (home-page "https://onnx.ai/")
     (synopsis "Open Neural Network Exchange")
     (description
@@ -685,17 +691,12 @@ standard data types.")
     (build-system python-build-system)
     (arguments (package-arguments onnx))          ;reuse build system tweaks
     (native-inputs
-     `(("cmake" ,cmake)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-nbval" ,python-nbval)
-       ("python-coverage" ,python-coverage)))
+     (list cmake python-pytest python-pytest-runner python-nbval
+           python-coverage))
     (inputs
-     `(("onnx" ,onnx)
-       ("protobuf" ,protobuf)
-       ("pybind11" ,pybind11)))
+     (list onnx protobuf pybind11))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (synopsis "Library to optimize ONNX models")
     (description
      "This package provides a C++ and Python library for performing arbitrary
@@ -734,7 +735,7 @@ with a single function call.")
            (lambda _
              (invoke "ctest"))))))
     (native-inputs
-     `(("catch" ,catch-framework)))
+     (list catch-framework))
     (home-page "http://reactivex.io/")
     (synopsis "Reactive Extensions for C++")
     (description
@@ -839,7 +840,7 @@ than 8 bits, and at the end only some significant 8 bits are kept.")
                              '("meta" "profiling" "public" "fixedpoint"
                                "eight_bit_int_gemm" "internal")))))))))
       (native-inputs
-       `(("unzip" ,unzip)))
+       (list unzip))
       (properties '((hidden? . #t))))))
 
 (define-public dlib
@@ -902,9 +903,9 @@ than 8 bits, and at the end only some significant 8 bits are kept.")
                  (invoke "./dtest" "--runall"))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ;; For tests.
-       ("libnsl" ,libnsl)))
+     (list pkg-config
+           ;; For tests.
+           libnsl))
     (inputs
      `(("giflib" ,giflib)
        ("lapack" ,lapack)
@@ -926,7 +927,7 @@ computing environments.")
 (define-public python-scikit-learn
   (package
     (name "python-scikit-learn")
-    (version "0.24.2")
+    (version "1.0.1")
     (source
      (origin
        (method git-fetch)
@@ -936,7 +937,7 @@ computing environments.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0hm92biqwwc87bqnr56lwa5bz77lr7k9q21rdwksnfzq3vsdp2nm"))))
+         "07k92y78sk4074vh5hp8y63pwl592wgl8azrfp0q84chxk8igfx9"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -944,14 +945,17 @@ computing environments.")
          (add-after 'build 'build-ext
            (lambda _ (invoke "python" "setup.py" "build_ext" "--inplace")))
          (replace 'check
-           (lambda _
-             ;; Restrict OpenBLAS threads to prevent segfaults while testing!
-             (setenv "OPENBLAS_NUM_THREADS" "1")
+           (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")
+               ;; Some tests require write access to $HOME.
+               (setenv "HOME" "/tmp")
 
-             (invoke "pytest" "sklearn" "-m" "not network")))
+               (invoke "pytest" "sklearn" "-m" "not network"
+                       ;; This test tries to access the internet.
+                       "-k" "not test_load_boston_alternative"))))
          (add-before 'reset-gzip-timestamps 'make-files-writable
            (lambda* (#:key outputs #:allow-other-keys)
              ;; Make sure .gz files are writable so that the
@@ -960,16 +964,12 @@ computing environments.")
                (for-each make-file-writable
                          (find-files out "\\.gz$"))))))))
     (inputs
-     `(("openblas" ,openblas)))
+     (list openblas))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pandas" ,python-pandas) ;for tests
-       ("python-cython" ,python-cython)))
+     (list python-pytest python-pandas ;for tests
+           python-cython))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-threadpoolctl" ,python-threadpoolctl)
-       ("python-scipy" ,python-scipy)
-       ("python-joblib" ,python-joblib)))
+     (list python-numpy python-threadpoolctl python-scipy python-joblib))
     (home-page "https://scikit-learn.org/")
     (synopsis "Machine Learning in Python")
     (description
@@ -994,16 +994,35 @@ data analysis.")
                 (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
-       `(("openblas" ,openblas)))
+       (list openblas))
       (native-inputs
-       `(("python2-pytest" ,python2-pytest)
-         ("python2-pandas" ,python2-pandas) ;for tests
-         ("python2-cython" ,python2-cython)))
+       (list python2-pytest python2-pandas ;for tests
+             python2-cython))
       (propagated-inputs
-       `(("python2-numpy" ,python2-numpy)
-         ("python2-scipy" ,python2-scipy)
-         ("python2-joblib" ,python2-joblib))))))
+       (list python2-numpy python2-scipy python2-joblib)))))
 
 (define-public python-threadpoolctl
   (package
@@ -1027,7 +1046,7 @@ data analysis.")
                (invoke "pytest"))
              #t)))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/joblib/threadpoolctl")
     (synopsis "Python helpers for common threading libraries")
     (description "Thread-pool Controls provides Python helpers to limit the
@@ -1047,13 +1066,10 @@ for scientific computing and data science (e.g. BLAS and OpenMP).")
         (base32 "0w87c2v0li2rdbx6qfc2lb6y6bxpdy3jwfgzfs1kcr4d1chj5zfr"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (propagated-inputs
-     `(("python-joblib" ,python-joblib)
-       ("python-llvmlite" ,python-llvmlite)
-       ("python-numba" ,python-numba)
-       ("python-scikit-learn" ,python-scikit-learn)
-       ("python-scipy" ,python-scipy)))
+     (list python-joblib python-llvmlite python-numba python-scikit-learn
+           python-scipy))
     (home-page "https://github.com/lmcinnes/pynndescent")
     (synopsis "Nearest neighbor descent for approximate nearest neighbors")
     (description
@@ -1090,14 +1106,12 @@ for k-neighbor-graph construction and approximate nearest neighbor search.")
              (setenv "NUMBA_CACHE_DIR" "/tmp")
              #t)))))
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (inputs
-     `(("fftw" ,fftw)))
+     (list fftw))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-pynndescent" ,python-pynndescent)
-       ("python-scikit-learn" ,python-scikit-learn)
-       ("python-scipy" ,python-scipy)))
+     (list python-numpy python-pynndescent python-scikit-learn
+           python-scipy))
     (home-page "https://github.com/pavlin-policar/openTSNE")
     (synopsis "Extensible, parallel implementations of t-SNE")
     (description
@@ -1119,12 +1133,9 @@ visualizing high-dimensional data sets.")
     (build-system python-build-system)
     ;; Pandas is only needed to run the tests.
     (native-inputs
-     `(("python-pandas" ,python-pandas)))
+     (list python-pandas))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)
-       ("python-scikit-learn" ,python-scikit-learn)
-       ("python-joblib" ,python-joblib)))
+     (list python-numpy python-scipy python-scikit-learn python-joblib))
     (home-page "https://epistasislab.github.io/scikit-rebate/")
     (synopsis "Relief-based feature selection algorithms for Python")
     (description "Scikit-rebate is a scikit-learn-compatible Python
@@ -1150,10 +1161,10 @@ standard feature selection algorithms.")
        (file-name (git-file-name name version))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools" ,python-setuptools) ;build fails without this
-       ("python-wheel" ,python-wheel)))
+     (list python-setuptools ;build fails without this
+           python-wheel))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (home-page "https://github.com/CyberAgent/cmaes")
     (synopsis "CMA-ES implementation for Python")
     (description "This package provides provides an implementation of the
@@ -1179,11 +1190,9 @@ Covariance Matrix Adaptation Evolution Strategy (CMA-ES) for Python.")
       (version version)
       (build-system python-build-system)
       (native-inputs
-       `(("python-nose" ,python-nose)
-         ("python-pytest" ,python-pytest)))
+       (list python-nose python-pytest))
       (propagated-inputs
-       `(("python-future" ,python-future)
-         ("python-numpy" ,python-numpy)))
+       (list python-future python-numpy))
       (arguments
        `(#:phases (modify-phases %standard-phases
                     (replace 'check
@@ -1217,13 +1226,11 @@ main intended application of Autograd is gradient-based optimization.")
                 "0jlvyn7k81dzrh9ij3zw576wbgiwmmr26rzpdxjn1dbpc3njpvzi"))
               (file-name (git-file-name name version))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-nose" ,python-nose)))
+     (list python-pytest python-nose))
     (inputs
-     `(("openmpi" ,openmpi)))
+     (list openmpi))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)))
+     (list python-numpy python-scipy))
     (arguments
      `(#:configure-flags
        '("-DUSE_MPI=ON")
@@ -1264,8 +1271,7 @@ the following advantages:
                 "04bwzk6ifgnz3fmzid8b7avxf9n5pnx9xcjm61nkjng1vv0bpj8x"))
               (file-name (git-file-name name version))))
     (inputs
-     `(("boost" ,boost)
-       ("zlib" ,zlib)))
+     (list boost zlib))
     (arguments
      `(#:configure-flags
        (list (string-append "--with-boost="
@@ -1308,17 +1314,14 @@ interactive learning.")
      `(#:tests? #f ; some test files are missing
        #:python ,python-2)) ; only Python 2.7 is supported
     (propagated-inputs
-     `(("python2-numpy" ,python2-numpy)
-       ("python2-scipy" ,python2-scipy)
-       ("python2-matplotlib" ,python2-matplotlib)
-       ("python2-pandas" ,python2-pandas)
-       ("python2-scikit-learn" ,python2-scikit-learn)
-       ("python2-pysnptools" ,python2-pysnptools)))
+     (list python2-numpy
+           python2-scipy
+           python2-matplotlib
+           python2-pandas
+           python2-scikit-learn
+           python2-pysnptools))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("python2-cython" ,python2-cython)
-       ("python2-mock" ,python2-mock)
-       ("python2-nose" ,python2-nose)))
+     (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
@@ -1357,20 +1360,20 @@ association studies (GWAS) on extremely large data sets.")
                                            " and not test_quadratic1"
                                            " and not test_twoarms"))))))))
     (propagated-inputs
-     `(("python-cloudpickle" ,python-cloudpickle)
-       ("python-future" ,python-future)
-       ("python-networkx" ,python-networkx)
-       ("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)
-       ("python-six" ,python-six)
-       ("python-tqdm" ,python-tqdm)))
+     (list python-cloudpickle
+           python-future
+           python-networkx
+           python-numpy
+           python-scipy
+           python-six
+           python-tqdm))
     (native-inputs
-     `(("python-black" ,python-black)
-       ("python-ipython" ,python-ipython)
-       ("python-ipyparallel" ,python-ipyparallel)
-       ("python-nose" ,python-nose)
-       ("python-pymongo" ,python-pymongo)
-       ("python-pytest" ,python-pytest)))
+     (list python-black
+           python-ipython
+           python-ipyparallel
+           python-nose
+           python-pymongo
+           python-pytest))
     (home-page "https://hyperopt.github.io/hyperopt/")
     (synopsis "Library for hyperparameter optimization")
     (description "Hyperopt is a Python library for serial and parallel
@@ -1469,21 +1472,21 @@ discrete, and conditional dimensions.")
                                (string-append lib "/gstreamer-1.0"))
                  #t))))))
       (inputs
-       `(("alsa-lib" ,alsa-lib)
-         ("gfortran" ,gfortran "lib")
-         ("glib" ,glib)
-         ("gstreamer" ,gstreamer)
-         ("jack" ,jack-1)
-         ("openblas" ,openblas)
-         ("openfst" ,openfst)
-         ("portaudio" ,portaudio)
-         ("python" ,python)))
+       (list alsa-lib
+             `(,gfortran "lib")
+             glib
+             gstreamer
+             jack-1
+             openblas
+             openfst
+             portaudio
+             python))
       (native-inputs
-       `(("glib" ,glib "bin")             ; glib-genmarshal
-         ("grep" ,grep)
-         ("sed" ,sed)
-         ("pkg-config" ,pkg-config)
-         ("which" ,which)))
+       (list `(,glib "bin") ; glib-genmarshal
+             grep
+             sed
+             pkg-config
+             which))
       (home-page "https://kaldi-asr.org/")
       (synopsis "Speech recognition toolkit")
       (description "Kaldi is an extensible toolkit for speech recognition
@@ -1543,11 +1546,7 @@ written in C++.")
                  (install-file "libgstkaldinnet2onlinedecoder.so" lib)
                  #t))))))
       (inputs
-       `(("glib" ,glib)
-         ("gstreamer" ,gstreamer)
-         ("jansson" ,jansson)
-         ("openfst" ,openfst)
-         ("kaldi" ,kaldi)))
+       (list glib gstreamer jansson openfst kaldi))
       (native-inputs
        `(("bash" ,bash)
          ("glib:bin" ,glib "bin")       ; glib-genmarshal
@@ -1730,7 +1729,7 @@ Python.")
                   ((guix build python-build-system)
                    #:select (python-version)))
        #:imported-modules (,@%cmake-build-system-modules
-                            (guix build python-build-system))
+                           (guix build python-build-system))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'set-source-file-times-to-1980
@@ -1740,9 +1739,9 @@ Python.")
            ;; SOURCE_DATE_EPOCH is respected, which we set to some time in
            ;; 1980.
            (lambda _ (setenv "SOURCE_DATE_EPOCH" "315532800") #t))
-         ;; See https://github.com/tensorflow/tensorflow/issues/20517#issuecomment-406373913
-         (add-after 'unpack 'python3.7-compatibility
+         (add-after 'unpack 'python3.9-compatibility
            (lambda _
+             ;; See https://github.com/tensorflow/tensorflow/issues/20517#issuecomment-406373913
              (substitute* '("tensorflow/python/eager/pywrap_tfe_src.cc"
                             "tensorflow/python/lib/core/ndarray_tensor.cc"
                             "tensorflow/python/lib/core/py_func.cc")
@@ -1760,8 +1759,16 @@ Python.")
              ;; https://github.com/tensorflow/tensorflow/issues/34197
              (substitute* (find-files "tensorflow/python" ".*\\.cc$")
                (("(nullptr,)(\\ +/. tp_print)" _ _ tp_print)
-                (string-append "NULL,   " tp_print)))))
-         (add-after 'python3.7-compatibility 'chdir
+                (string-append "NULL,   " tp_print)))
+
+             ;; Fix the build with numpy >= 1.19.
+             ;; Suggested in https://github.com/tensorflow/tensorflow/issues/41086#issuecomment-656833081
+             (substitute* "tensorflow/python/lib/core/bfloat16.cc"
+               (("void BinaryUFunc\\(char\\*\\* args, npy_intp\\* dimensions, npy_intp\\* steps,")
+                "void BinaryUFunc(char** args, npy_intp const* dimensions, npy_intp const* steps,")
+               (("void CompareUFunc\\(char\\*\\* args, npy_intp\\* dimensions, npy_intp\\* steps,")
+                "void CompareUFunc(char** args, npy_intp const* dimensions, npy_intp const* steps,"))))
+         (add-after 'python3.9-compatibility 'chdir
            (lambda _ (chdir "tensorflow/contrib/cmake")))
          (add-after 'chdir 'disable-downloads
            (lambda* (#:key inputs #:allow-other-keys)
@@ -1853,8 +1860,7 @@ set(eigen_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/external/eigen_archive "
                (("tf_core_cpu grpc") "tf_core_cpu"))
 
              ;; This directory is a dependency of many targets.
-             (mkdir-p "protobuf")
-             #t))
+             (mkdir-p "protobuf")))
          (add-after 'configure 'unpack-third-party-sources
            (lambda* (#:key inputs #:allow-other-keys)
              ;; This is needed to configure bundled packages properly.
@@ -1901,8 +1907,7 @@ set(eigen_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/external/eigen_archive "
              (invoke "tar" "xf" (assoc-ref inputs "protobuf:src")
                      "-C" "protobuf-src" "--strip-components=1")
              (mkdir-p "eigen-src")
-             (invoke "tar" "xf" (assoc-ref inputs "eigen:src")
-                     "-C" "eigen-src" "--strip-components=1")
+             (copy-recursively (assoc-ref inputs "eigen:src") "eigen-src")
 
              (substitute* "tensorflow/contrib/cmake/tf_python.cmake"
                ;; Take protobuf source files from our source package.
@@ -1932,17 +1937,20 @@ COMPILE_FLAGS ${target_compile_flags} \
 INSTALL_RPATH_USE_LINK_PATH TRUE \
 INSTALL_RPATH " (assoc-ref outputs "out") "/lib)\n")))))
          (add-after 'build 'build-pip-package
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda* (#:key outputs parallel-build? #:allow-other-keys)
              (setenv "LDFLAGS"
                      (string-append "-Wl,-rpath="
                                     (assoc-ref outputs "out") "/lib"))
-             (invoke "make" "tf_python_build_pip_package")))
+             (invoke "make" "-j" (if parallel-build?
+                                     (number->string (parallel-job-count))
+                                     "1")
+                     "tf_python_build_pip_package")))
          (add-after 'build-pip-package 'install-python
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
                    (wheel (car (find-files "../build/tf_python/dist/" "\\.whl$")))
                    (python-version (python-version
-                                     (assoc-ref inputs "python"))))
+                                    (assoc-ref inputs "python"))))
                (invoke "python" "-m" "pip" "install" wheel
                        (string-append "--prefix=" out))
 
@@ -2211,7 +2219,7 @@ advanced research.")
                       (install-file file target-dir)))
                   (find-files "." "\\.h$")))))))))
     (inputs
-     `(("abseil-cpp" ,abseil-cpp)
+     `(("abseil-cpp" ,abseil-cpp-20200923.3)
        ("eigen" ,eigen-for-tensorflow-lite)
        ("flatbuffers" ,flatbuffers)
        ("python" ,python)))
@@ -2282,6 +2290,132 @@ learning models.  This package provides the \"lite\" variant for mobile
 devices.")
     (license license:asl2.0)))
 
+(define-public dmlc-core
+  (package
+    (name "dmlc-core")
+    (version "0.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dmlc/dmlc-core")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1x4ad1jhn84fywlk031fmv1kxyiscclmrqn9hhj8gz0mh7z9vcrh"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "-DGOOGLE_TEST=ON")))
+    (native-inputs
+     `(("googletest" ,googletest)
+       ("python" ,python-wrapper)))
+    (home-page "https://github.com/dmlc/dmlc-core")
+    (synopsis "Common bricks library for machine learning")
+    (description
+     "DMLC-Core is the backbone library to support all DMLC projects,
+offers the bricks to build efficient and scalable distributed machine
+learning libraries.")
+    (license license:asl2.0)))
+
+(define-public xgboost
+  (package
+    (name "xgboost")
+    (version "1.4.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dmlc/xgboost")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (patches (search-patches "xgboost-use-system-dmlc-core.patch"))
+       (sha256
+        (base32 "00liz816ahk9zj3jv3m2fqwlf6xxfbgvpmpl72iklx32vl192w5d"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags (list "-DGOOGLE_TEST=ON")))
+    (native-inputs
+     `(("googletest" ,googletest)
+       ("python" ,python-wrapper)))
+    (inputs
+     (list dmlc-core))
+    (home-page "https://xgboost.ai/")
+    (synopsis "Gradient boosting (GBDT, GBRT or GBM) library")
+    (description
+     "XGBoost is an optimized distributed gradient boosting library designed
+to be highly efficient, flexible and portable.  It implements machine learning
+algorithms under the Gradient Boosting framework.  XGBoost provides a parallel
+tree boosting (also known as GBDT, GBM) that solve many data science problems
+in a fast and accurate way.")
+    (license license:asl2.0)))
+
+(define-public python-xgboost
+  (package
+    (inherit xgboost)
+    (name "python-xgboost")
+    (source (package-source xgboost))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'preparations
+           (lambda _
+             ;; Move python-package content to parent directory to silence
+             ;; some warnings about files not being found if we chdir.
+             (rename-file "python-package/xgboost" "xgboost")
+             (rename-file "python-package/README.rst" "README.rst")
+             (rename-file "python-package/setup.cfg" "setup.cfg")
+             (rename-file "python-package/setup.py" "setup.py")
+             ;; Skip rebuilding libxgboost.so.
+             (substitute* "setup.py"
+               (("ext_modules=\\[CMakeExtension\\('libxgboost'\\)\\],") "")
+               (("'install_lib': InstallLib,") ""))))
+         (add-after 'install 'install-version-and-libxgboost
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (pylib (string-append out "/lib/python"
+                                          ,(version-major+minor
+                                            (package-version python))
+                                          "/site-packages"))
+                    (xgbdir (string-append pylib "/xgboost"))
+                    (version-file (string-append xgbdir "/VERSION"))
+                    (libxgboost (string-append (assoc-ref inputs "xgboost")
+                                               "/lib/libxgboost.so")))
+               (with-output-to-file version-file
+                 (lambda ()
+                   (display ,(package-version xgboost))))
+               (mkdir-p (string-append xgbdir "/lib"))
+               (symlink libxgboost (string-append xgbdir "/lib"
+                                                  "/libxgboost.so")))))
+         (replace 'check
+           ;; Python-specific tests are located in tests/python.
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "tests/python"
+                       ;; FIXME: CLI tests fail with PermissionError.
+                       "--ignore" "tests/python/test_cli.py" "-k"
+                       (string-append
+                        "not test_cli_regression_demo"
+                        ;; The tests below open a network connection.
+                        " and not test_model_compatibility"
+                        " and not test_get_group"
+                        " and not test_cv_no_shuffle"
+                        " and not test_cv"
+                        " and not test_training"
+                        ;; FIXME: May pass in the next version.
+                        " and not test_pandas"
+                        ;; "'['./runexp.sh']' returned non-zero exit status 1"
+                        " and not test_cli_binary_classification"))))))))
+    (native-inputs
+     (list python-pandas python-pytest python-scikit-learn))
+    (inputs
+     (list xgboost))
+    (propagated-inputs
+     (list python-numpy python-scipy))
+    (synopsis "Python interface for the XGBoost library")))
+
 (define-public python-iml
   (package
     (name "python-iml")
@@ -2295,12 +2429,9 @@ devices.")
          "1k8szlpm19rcwcxdny9qdm3gmaqq8akb4xlvrzyz8c2d679aak6l"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("ipython" ,python-ipython)
-       ("numpy" ,python-numpy)
-       ("pandas" ,python-pandas)
-       ("scipy" ,python-scipy)))
+     (list python-ipython python-numpy python-pandas python-scipy))
     (native-inputs
-     `(("nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/interpretable-ml/iml")
     (synopsis "Interpretable Machine Learning (iML) package")
     (description "Interpretable ML (iML) is a set of data type objects,
@@ -2325,13 +2456,10 @@ project, and it will potentially also do the same for the Lime project.")
     ;; The tests require Keras, but this package is needed to build Keras.
     (arguments '(#:tests? #f))
     (propagated-inputs
-     `(("python-h5py" ,python-h5py)
-       ("python-numpy" ,python-numpy)))
+     (list python-h5py python-numpy))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-pep8" ,python-pytest-pep8)
-       ("python-pytest-xdist" ,python-pytest-xdist)))
+     (list python-pytest python-pytest-cov python-pytest-pep8
+           python-pytest-xdist))
     (home-page "https://github.com/keras-team/keras-applications")
     (synopsis "Reference implementations of popular deep learning models")
     (description
@@ -2352,15 +2480,14 @@ models for use with the Keras deep learning framework.")
          "1r98nm4k1svsqjyaqkfk23i31bl1kcfcyp7094yyj3c43phfp3as"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-six" ,python-six)))
+     (list python-numpy python-six))
     (native-inputs
-     `(("python-pandas" ,python-pandas)
-       ("python-pillow" ,python-pillow)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-xdist" ,python-pytest-xdist)
-       ("tensorflow" ,tensorflow)))
+     (list python-pandas
+           python-pillow
+           python-pytest
+           python-pytest-cov
+           python-pytest-xdist
+           tensorflow))
     (home-page "https://github.com/keras-team/keras-preprocessing/")
     (synopsis "Data preprocessing and augmentation for deep learning models")
     (description
@@ -2390,51 +2517,57 @@ with image data, text data, and sequence data.")
              (delete-file "keras/backend/theano_backend.py")
              (delete-file "keras/backend/cntk_backend.py")
              (delete-file "tests/keras/backend/backend_test.py")
-
              ;; FIXME: This doesn't work because Tensorflow is missing the
              ;; coder ops library.
-             (delete-file "tests/keras/test_callbacks.py")
-             #t))
+             (delete-file "tests/keras/test_callbacks.py")))
          (replace 'check
-           (lambda _
-             ;; These tests attempt to download data files from the internet.
-             (delete-file "tests/integration_tests/test_datasets.py")
-             (delete-file "tests/integration_tests/imagenet_utils_test.py")
-             ;; Backport https://github.com/keras-team/keras/pull/12479.
-             (substitute* "tests/keras/engine/test_topology.py"
-               (("np.ones\\(\\(3, 2\\)\\)")
-                "1."))
-             (invoke "python" "-m" "pytest"
-                     ;; The following test fail only in the build container;
-                     ;; skip it.
-                     "-k" "not test_selu"))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; These tests attempt to download data files from the internet.
+               (delete-file "tests/integration_tests/test_datasets.py")
+               (delete-file "tests/integration_tests/imagenet_utils_test.py")
+               ;; Backport https://github.com/keras-team/keras/pull/12479.
+               (substitute* "tests/keras/engine/test_topology.py"
+                 (("np.ones\\(\\(3, 2\\)\\)")
+                  "1."))
+               (invoke "python" "-m" "pytest" "tests"
+                       "-p" "no:pep8"
+                       ;; FIXME: python-build-system lacks PARALLEL-TESTS?
+                       "-n" (number->string (parallel-job-count))
+                       "-k"
+                       (string-append
+                        ;; The following test fails only in the build
+                        ;; container; skip it.
+                        "not test_selu "
+                        ;; The following test was found flaky and removed in
+                        ;; recent versions.
+                        "and not test_stateful_metrics"))))))))
     (propagated-inputs
-     `(("python-h5py" ,python-h5py)
-       ("python-keras-applications" ,python-keras-applications)
-       ("python-keras-preprocessing" ,python-keras-preprocessing)
-       ("python-numpy" ,python-numpy)
-       ("python-pydot" ,python-pydot)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-scipy" ,python-scipy)
-       ("python-six" ,python-six)
-       ("tensorflow" ,tensorflow)
-       ("graphviz" ,graphviz)))
+     (list python-h5py
+           python-keras-applications
+           python-keras-preprocessing
+           python-numpy
+           python-pydot
+           python-pyyaml
+           python-scipy
+           python-six
+           tensorflow
+           graphviz))
     (native-inputs
-     `(("python-pandas" ,python-pandas)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-pep8" ,python-pytest-pep8)
-       ("python-pytest-timeout" ,python-pytest-timeout)
-       ("python-pytest-xdist" ,python-pytest-xdist)
-       ("python-sphinx" ,python-sphinx)
-       ("python-requests" ,python-requests)))
+     (list python-pandas
+           python-pytest
+           python-pytest-cov
+           python-pytest-pep8
+           python-pytest-timeout
+           python-pytest-xdist
+           python-sphinx
+           python-requests))
     (home-page "https://github.com/keras-team/keras")
     (synopsis "High-level deep learning framework")
     (description "Keras is a high-level neural networks API, written in Python
 and capable of running on top of TensorFlow.  It was developed with a focus on
 enabling fast experimentation.  Use Keras if you need a deep learning library
 that:
-
 @itemize
 @item Allows for easy and fast prototyping (through user friendliness,
   modularity, and extensibility).
@@ -2463,9 +2596,9 @@ that:
            "1crmqgybzkgkpbmcx16912gsl5qsj49swa0ikx6mhqgph0chrh11"))))
       (build-system cmake-build-system)
       (native-inputs
-       `(("googletest" ,googletest)))
+       (list googletest))
       (inputs
-       `(("openssl" ,openssl)))
+       (list openssl))
       (arguments
        `(#:configure-flags '("-DBUILD_TEST=1")
          #:phases
@@ -2495,13 +2628,9 @@ These include a barrier, broadcast, and allreduce.")
          "02ada2yy6km6zgk2836kg1c97yrcpalvan34p8c57446finnpki1"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-joblib" ,python-joblib)
-       ("python-nose" ,python-nose)))
+     (list python-joblib python-nose))
     (propagated-inputs
-     `(("python-numba" ,python-numba)
-       ("python-numpy" ,python-numpy)
-       ("python-scikit-learn" ,python-scikit-learn)
-       ("python-scipy" ,python-scipy)))
+     (list python-numba python-numpy python-scikit-learn python-scipy))
     (home-page "https://github.com/lmcinnes/umap")
     (synopsis
      "Uniform Manifold Approximation and Projection")
@@ -2511,6 +2640,55 @@ technique that can be used for visualisation similarly to t-SNE, but also for
 general non-linear dimension reduction.")
     (license license:bsd-3)))
 
+(define-public nnpack
+  (let ((version "0.0")
+        (commit "c07e3a0400713d546e0dea2d5466dd22ea389c73")
+        (revision "1"))
+    (package
+      (name "nnpack")
+      (version (git-version version revision commit))
+      (home-page "https://github.com/Maratyszcza/NNPACK")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference (url home-page) (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0s0kk3a35w3yzf0q447p72350sbsh4qhg6vm3y2djbj4xpg7jc8v"))
+                (patches (search-patches "nnpack-system-libraries.patch"))))
+      (build-system cmake-build-system)
+      ;; XXX: The test suite runs but it's very expensive, and on x86_64 CPUs
+      ;; that lack the right ISA extensions, tests fail with:
+      ;;
+      ;; Expected equality of these values:
+      ;;   nnp_status_success
+      ;;     Which is: 0
+      ;;   status
+      ;;     Which is: 51
+      ;;
+      ;; where 51 is 'nnp_status_unsupported_hardware'.
+      (arguments '(#:tests? #f))
+      (synopsis "Acceleration package for neural network computations")
+      (description
+       "NNPACK is an acceleration package for neural network computations.
+NNPACK aims to provide high-performance implementations of convnet layers for
+multi-core CPUs.
+
+NNPACK is not intended to be directly used by machine learning researchers;
+instead it provides low-level performance primitives leveraged in leading deep
+learning frameworks, such as PyTorch, Caffe2, MXNet, tiny-dnn, Caffe, Torch,
+and Darknet.")
+      (inputs
+       (list cpuinfo
+             fp16
+             fxdiv
+             psimd
+             pthreadpool
+             googletest))
+      (native-inputs
+       (list python python-peachpy python-six))
+      (license license:bsd-2))))
+
 (define-public xnnpack
   ;; There's currently no tag on this repo.
   (let ((version "0.0")
@@ -2542,13 +2720,13 @@ general non-linear dimension reduction.")
          ;;   another target with the same name already exists.
          #:tests? #f))
       (inputs
-       `(("cpuinfo" ,cpuinfo)
-         ("pthreadpool" ,pthreadpool)
-         ("googletest" ,googletest)
-         ("googlebenchmark" ,googlebenchmark)
-         ("fxdiv" ,fxdiv)
-         ("fp16" ,fp16)
-         ("psimd" ,psimd)))
+       (list cpuinfo
+             pthreadpool
+             googletest
+             googlebenchmark
+             fxdiv
+             fp16
+             psimd))
       (synopsis "Optimized floating-point neural network inference operators")
       (description
        "XNNPACK is a highly optimized library of floating-point neural network
@@ -2562,7 +2740,7 @@ TensorFlow.js, PyTorch, and MediaPipe.")
 (define-public python-pytorch
   (package
     (name "python-pytorch")
-    (version "1.9.0")
+    (version "1.10.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2572,7 +2750,7 @@ TensorFlow.js, PyTorch, and MediaPipe.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0cznsh68hwk5761gv7iijb4g6jgjpvs3bbixwpzzmkbkbn2q96c1"))
+                "1ihsjw48qqbikmhxxn17bcdvk2zsjabvkq61q6pvj7dzvrdpkb60"))
               (patches (search-patches "python-pytorch-system-libraries.patch"
                                        "python-pytorch-runpath.patch"))
               (modules '((guix build utils)))
@@ -2589,7 +2767,7 @@ TensorFlow.js, PyTorch, and MediaPipe.")
                               ;; needs these.
                               ;; "FP16" "FXdiv" "gemmlowp" "psimd"
 
-                              "gloo" "googletest" "ios-cmake"
+                              "gloo" "googletest" "ios-cmake" "NNPACK"
                               "onnx" "protobuf" "pthreadpool"
                               "pybind11" "python-enum" "python-peachpy"
                               "python-six" "tbb" "XNNPACK" "zstd"))
@@ -2623,13 +2801,10 @@ TensorFlow.js, PyTorch, and MediaPipe.")
                     (lambda* (#:key inputs outputs tests? #:allow-other-keys)
                       ;; Run the test suite following the instructions in
                       ;; 'CONTRIBUTING.md'.  XXX: Unfortunately this doesn't
-                      ;; work, unless you set PYTHONPATH presumably.
+                      ;; work, unless you set GUIX_PYTHONPATH presumably.
                       (when tests?
-                        (let ((python-site (site-packages inputs outputs)))
-                          (setenv "PYTHONPATH"
-                                  (string-append python-site ":"
-                                                 (getenv "PYTHONPATH")))
-                          (invoke "python" "test/run_test.py")))))
+                        (add-installed-pythonpath inputs outputs)
+                        (invoke "python" "test/run_test.py"))))
                   (add-after 'install 'remove-test-executables
                     (lambda* (#:key inputs outputs #:allow-other-keys)
                       ;; Remove test executables, but keep other executables
@@ -2642,39 +2817,40 @@ TensorFlow.js, PyTorch, and MediaPipe.")
 
        ;; XXX: Tests attempt to download data such as
        ;; <https://raw.githubusercontent.com/pytorch/test-infra/master/stats/slow-tests.json>.
+       ;; We're also missing some Python modules, such as expecttest.
        #:tests? #f))
     (native-inputs
-     `(("cmake" ,cmake)
-       ("ninja" ,ninja)))
+     (list cmake ninja))
     (inputs
-     `(("eigen" ,eigen)
-       ;; ("fmt" ,fmt)
-       ("fp16" ,fp16)
-       ("gemmlowp" ,gemmlowp)
-       ("googletest" ,googletest)
-       ("googlebenchmark" ,googlebenchmark)
-       ("gloo" ,gloo)
-       ("openblas" ,openblas)
-       ("openmpi" ,openmpi)
-       ("pthreadpool" ,pthreadpool)
-       ("protobuf" ,protobuf)
-       ("pybind11" ,pybind11)
-       ("sleef" ,sleef)
-       ("xnnpack" ,xnnpack)
-       ("zstd" ,zstd)))
+     (list eigen
+           ;; ("fmt" ,fmt)
+           fp16
+           gemmlowp
+           googletest
+           googlebenchmark
+           gloo
+           nnpack
+           openblas
+           openmpi
+           pthreadpool
+           protobuf
+           pybind11
+           sleef
+           xnnpack
+           zstd))
     (propagated-inputs
-     `(("python-astunparse" ,python-astunparse)
-       ("python-numpy" ,python-numpy)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-cffi" ,python-cffi)
-       ("python-peachpy" ,python-peachpy)
-       ("python-typing-extensions" ,python-typing-extensions)
-       ("python-future" ,python-future)
-       ("python-six" ,python-six)
-       ("python-requests" ,python-requests)
-       ("onnx" ,onnx)                       ;propagated for its Python modules
-       ("onnx-optimizer" ,onnx-optimizer)
-       ("cpuinfo" ,cpuinfo)))
+     (list python-astunparse
+           python-click
+           python-numpy
+           python-pyyaml
+           python-cffi
+           python-typing-extensions
+           python-future
+           python-six
+           python-requests
+           onnx ;propagated for its Python modules
+           onnx-optimizer
+           cpuinfo))
     (home-page "https://pytorch.org/")
     (synopsis "Python library for tensor computation and deep neural networks")
     (description
@@ -2713,13 +2889,10 @@ Note: currently this package does not provide GPU support.")
                (with-directory-excursion (string-append (assoc-ref outputs "out") "/lib")
                  (invoke "python" "-m" "pytest"))))))))
     (propagated-inputs
-     `(("python-cython" ,python-cython)
-       ("python-numpy" ,python-numpy)
-       ("python-scikit-learn" ,python-scikit-learn)
-       ("python-scipy" ,python-scipy)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-cython python-numpy python-scikit-learn python-scipy
+           python-setuptools-scm))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/hmmlearn/hmmlearn")
     (synopsis "Hidden Markov Models with scikit-learn like API")
     (description
diff --git a/gnu/packages/magic-wormhole.scm b/gnu/packages/magic-wormhole.scm
index 465e6aced6..a498eb8117 100644
--- a/gnu/packages/magic-wormhole.scm
+++ b/gnu/packages/magic-wormhole.scm
@@ -48,15 +48,15 @@
               (("test_log_http") "disabled_test_log_http"))
             #t)))))
     (native-inputs
-     `(("python-mock" ,python-mock)))
+     (list python-mock))
     (propagated-inputs
-     `(("python-attrs" ,python-attrs)
-       ("python-autobahn" ,python-autobahn)
-       ("python-idna" ,python-idna)
-       ("python-service-identity" ,python-service-identity)
-       ("python-six" ,python-six)
-       ("python-treq" ,python-treq)
-       ("python-twisted" ,python-twisted)))
+     (list python-attrs
+           python-autobahn
+           python-idna
+           python-service-identity
+           python-six
+           python-treq
+           python-twisted))
     (home-page "https://github.com/warner/magic-wormhole-mailbox-server")
     (synopsis "Magic-Wormhole central mailbox server")
     (description "This package provides the main server that Magic-Wormhole
@@ -89,11 +89,9 @@ connection, or through a transit-relay.")
                          (find-files "docs/"))
                #t))))))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pyflakes" ,python-pyflakes)
-       ("python-tox" ,python-tox)))
+     (list python-mock python-pyflakes python-tox))
     (propagated-inputs
-     `(("python-twisted" ,python-twisted)))
+     (list python-twisted))
     (home-page
       "https://github.com/warner/magic-wormhole-transit-relay")
     (synopsis "Magic-Wormhole relay server")
@@ -128,22 +126,22 @@ together, allowing them to pretend they have a direct connection.")
                (install-file "docs/wormhole.1" man))
              #t)))))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ;; XXX These are required for the test suite but end up being referenced
-       ;; by the built package.
-       ;; https://bugs.gnu.org/25235
-       ("magic-wormhole-mailbox-server" ,magic-wormhole-mailbox-server)
-       ("magic-wormhole-transit-relay" ,magic-wormhole-transit-relay)))
+     (list python-mock
+           ;; XXX These are required for the test suite but end up being referenced
+           ;; by the built package.
+           ;; https://bugs.gnu.org/25235
+           magic-wormhole-mailbox-server
+           magic-wormhole-transit-relay))
     (propagated-inputs
-     `(("python-autobahn" ,python-autobahn)
-       ("python-click" ,python-click)
-       ("python-hkdf" ,python-hkdf)
-       ("python-humanize" ,python-humanize)
-       ("python-pynacl" ,python-pynacl)
-       ("python-spake2" ,python-spake2)
-       ("python-tqdm" ,python-tqdm)
-       ("python-twisted" ,python-twisted)
-       ("python-txtorcon" ,python-txtorcon)))
+     (list python-autobahn
+           python-click
+           python-hkdf
+           python-humanize
+           python-pynacl
+           python-spake2
+           python-tqdm
+           python-twisted
+           python-txtorcon))
     (home-page "https://github.com/warner/magic-wormhole")
     (synopsis "Securely transfer data between computers")
     (description "Magic-Wormhole is a library and a command-line tool named
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 69211ed9b2..22dbdcf4ef 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -28,7 +28,7 @@
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2019, 2020 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2019, 2020, 2021 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Justus Winter <justus@sequoia-pgp.org>
 ;;; Copyright © 2020 Eric Brown <ecbrown@ericcbrown.com>
@@ -43,6 +43,8 @@
 ;;; 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>
+;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -107,6 +109,7 @@
   #:use-module (gnu packages language)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libevent)
+  #:use-module (gnu packages libffi)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages libunistring)
   #:use-module (gnu packages libunwind)
@@ -212,8 +215,7 @@
        ("automake" ,automake)
        ("gettext" ,gettext-minimal)))
     (inputs
-     `(("ncurses" ,ncurses)
-       ("readline" ,readline)))
+     (list ncurses readline))
     (home-page "https://abook.sourceforge.io/")
     (synopsis "Text-based address book")
     (description
@@ -237,18 +239,15 @@ mail client.")
          "0dvm6acl32dv8bixx9z50gzwfp6kj4kxnn1j3dcwjlp7sasjp41s"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("gettext" ,gettext-minimal)
-       ("m4" ,m4)))                     ;for the test suite
+     (list automake autoconf gettext-minimal m4))                     ;for the test suite
     (inputs
-     `(("gdbm" ,gdbm)
-       ("gnutls" ,gnutls)
-       ("gpgme" ,gpgme)
-       ("gsasl" ,gsasl)
-       ("guile" ,guile-3.0)
-       ("libgcrypt" ,libgcrypt)         ;gnutls support depends on libgcrypt
-       ("libgpg-error" ,libgpg-error)))
+     (list gdbm
+           gnutls
+           gpgme
+           gsasl
+           guile-3.0
+           libgcrypt ;gnutls support depends on libgcrypt
+           libgpg-error))
     (outputs '("out" "debug"))
     (synopsis "SMTP message submission daemon")
     (description "Anubis is a daemon that sits between the Mail User
@@ -356,17 +355,17 @@ example, modify the message headers or body, or encrypt or sign the message.")
        ("texinfo" ,texinfo)
        ("dejagnu" ,dejagnu)))
     (inputs
-     `(("guile" ,guile-3.0)
-       ("gsasl" ,gsasl)
-       ("gnutls" ,gnutls)
-       ("ncurses" ,ncurses)
-       ("readline" ,readline)
-       ("linux-pam" ,linux-pam)
-       ("libltdl" ,libltdl)
-       ("gdbm" ,gdbm)
-       ;; Required for SEARCH CHARSET.
-       ("libiconv" ,libiconv)
-       ("libunistring" ,libunistring)))
+     (list guile-3.0
+           gsasl
+           gnutls
+           ncurses
+           readline
+           linux-pam
+           libltdl
+           gdbm
+           ;; Required for SEARCH CHARSET.
+           libiconv
+           libunistring))
     (home-page "https://mailutils.org")
     (synopsis "Utilities and library for reading and serving mail")
     (description
@@ -415,11 +414,10 @@ software.  GNU Mailutils provides the following commands:
       (arguments
        `(#:import-path "gitlab.com/shackra/goimapnotify"))
       (propagated-inputs
-       `(("go-github-com-emersion-go-imap" ,go-github-com-emersion-go-imap)
-         ("go-github-com-emersion-go-imap-idle" ,go-github-com-emersion-go-imap-idle)
-         ("go-github-com-emersion-go-sasl" ,go-github-com-emersion-go-sasl)
-         ("go-github-com-sirupsen-logrus" ,go-github-com-sirupsen-logrus)
-         ("go-golang-org-x-text" ,go-golang-org-x-text)))
+       (list go-github-com-emersion-go-imap
+             go-github-com-emersion-go-imap-idle
+             go-github-com-emersion-go-sasl go-github-com-sirupsen-logrus
+             go-golang-org-x-text))
       (synopsis "Execute scripts on IMAP mailbox changes.")
       (description
        "Script to execute scripts on IMAP mailbox changes (new/deleted/updated
@@ -432,11 +430,8 @@ messages) using IDLE.  Implemented in Go.")
     (inherit mailutils)
     (name "guile2.2-mailutils")
     (inputs
-     `(("guile" ,guile-2.2)
-       ,@(alist-delete "guile" (package-inputs mailutils))))))
-
-(define-public guile3.0-mailutils
-  (deprecated-package "guile3.0-mailutils" mailutils))
+     (modify-inputs (package-inputs mailutils)
+       (replace "guile" guile-2.2)))))
 
 (define-public nullmailer
   (package
@@ -500,9 +495,9 @@ messages) using IDLE.  Implemented in Go.")
              #t)))))
     (native-inputs
      ;; For tests.
-     `(("daemontools" ,daemontools)))   ; for svc
+     (list daemontools))   ; for svc
     (inputs
-     `(("gnutls" ,gnutls)))
+     (list gnutls))
     (home-page "https://untroubled.org/nullmailer/")
     (synopsis "Simple relay-only mail transfer agent")
     (description
@@ -522,7 +517,7 @@ to run without any changes.")
 (define-public fetchmail
   (package
     (name "fetchmail")
-    (version "6.4.21")
+    (version "6.4.23")
     (source
      (origin
        (method url-fetch)
@@ -530,10 +525,10 @@ to run without any changes.")
                            (version-major+minor version) "/"
                            "fetchmail-" version ".tar.xz"))
        (sha256
-        (base32 "07cxr5137hvrk8jfgn4wd6sq9361c3d40w8krnjxm8fpmwf9qiba"))))
+        (base32 "001394gxji89hfh6jcdrmv9ndimdsz7bndd55i516c8lfc9mwyjz"))))
     (build-system gnu-build-system)
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (arguments
      `(#:configure-flags
        (list (string-append "--with-ssl="
@@ -557,7 +552,7 @@ aliasing facilities to work just as they would on normal mail.")
 (define-public mutt
   (package
     (name "mutt")
-    (version "2.1.1")
+    (version "2.1.4")
     (source (origin
              (method url-fetch)
              (uri (list
@@ -567,18 +562,18 @@ aliasing facilities to work just as they would on normal mail.")
                                    version ".tar.gz")))
              (sha256
               (base32
-               "0jjjvqkqmpj55v111p1a1i2ry7mpd1bpphn1bhvlr18rgw7xdrja"))
+               "0yfvnjqw9l99kdcr995by3mx5vwad6b530x93yb8ipr3xa1bcq9k"))
              (patches (search-patches "mutt-store-references.patch"))))
     (build-system gnu-build-system)
     (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("gdbm" ,gdbm)
-       ("gpgme" ,gpgme)
-       ("libidn2" ,libidn2)
-       ("ncurses" ,ncurses)
-       ("openssl" ,openssl)
-       ("perl" ,perl)
-       ("sqlite" ,sqlite)))
+     (list cyrus-sasl
+           gdbm
+           gpgme
+           libidn2
+           ncurses
+           openssl
+           perl
+           sqlite))
     (arguments
      `(#:configure-flags '("--enable-smtp"
                            "--enable-imap"
@@ -604,7 +599,7 @@ operating systems.")
 (define-public neomutt
   (package
     (name "neomutt")
-    (version "20210205")
+    (version "20211029")
     (source
      (origin
        (method git-fetch)
@@ -613,22 +608,22 @@ operating systems.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "15kr9nvb4j8lx5rl2yapv231rbp4sbn709vv82pfhx5717x3yf00"))))
+        (base32 "1ad05k98z9r317k2hhxbgdic00iha5r0k0f8224anz60i9kc78w5"))))
     (build-system gnu-build-system)
     (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("gdbm" ,gdbm)
-       ("gpgme" ,gpgme)
-       ("ncurses" ,ncurses)
-       ("gnutls" ,gnutls)
-       ("openssl" ,openssl)             ; for S/MIME
-       ("perl" ,perl)
-       ("kyotocabinet" ,kyotocabinet)
-       ("libxslt" ,libxslt)
-       ("libidn2" ,libidn2)
-       ("libxml2" ,libxml2)
-       ("lmdb" ,lmdb)
-       ("notmuch" ,notmuch)))
+     (list cyrus-sasl
+           gdbm
+           gpgme
+           ncurses
+           gnutls
+           openssl ; for S/MIME
+           perl
+           kyotocabinet
+           libxslt
+           libidn2
+           libxml2
+           lmdb
+           notmuch))
     (native-inputs
      `(("automake" ,automake)
        ("gettext-minimal" ,gettext-minimal)
@@ -705,8 +700,7 @@ operating systems.")
              (copy-recursively (assoc-ref inputs "neomutt-test-files") "tests")
              (with-directory-excursion "tests"
                (setenv "NEOMUTT_TEST_DIR" (getcwd)) ; must be absolute
-               (invoke "bash" "setup.sh")
-               #t))))))
+               (invoke "bash" "setup.sh")))))))
     (home-page "https://neomutt.org/")
     (synopsis "Command-line mail reader based on Mutt")
     (description
@@ -728,15 +722,12 @@ It adds a large amount of new and improved features to mutt.")
                 "0i3xfc84qn1z99i70q68kbnp9rmgqrnprqb418ba52s6g9j9dsia"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gnupg" ,gnupg)                 ; for tests only
-       ("gobject-introspection" ,gobject-introspection)))
-    (inputs `(("glib" ,glib)
-              ("gpgme" ,gpgme)
-              ("zlib" ,zlib)))
+     (list pkg-config gnupg ; for tests only
+           gobject-introspection vala))
+    (inputs (list glib gpgme zlib))
     (arguments
      `(#:configure-flags
-         (list "--enable-introspection=yes")
+         (list "--enable-introspection=yes" "--enable-vapigen=yes")
        #:phases
        (modify-phases %standard-phases
          (add-after
@@ -842,7 +833,7 @@ mailpack.  What can alterMIME do?
 (define-public astroid
   (package
     (name "astroid")
-    (version "0.15")
+    (version "0.16")
     (source
      (origin
        (method git-fetch)
@@ -851,14 +842,13 @@ mailpack.  What can alterMIME do?
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "11cxbva9ni98gii59xmbxh4c6idcg3mg0pgdsp1c3j0yg7ix0lj3"))
+        (base32 "17m99llggkg7xg72k8xaf7iipax7sgfhqa2a1qnlylndwa42f57b"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; https://github.com/astroidmail/astroid/pull/685
            (substitute* "tests/test_composed_message.cc"
-             (("\\\\n\\.\\.\\.") "\\n...\\n"))
-           #t))))
+             (("\\\\n\\.\\.\\.") "\\n...\\n"))))))
     (build-system cmake-build-system)
     (arguments
      `(#:modules ((guix build cmake-build-system)
@@ -877,8 +867,7 @@ mailpack.  What can alterMIME do?
            ;; ValueError: Namespace Astroid not available
            (lambda _
              (substitute* "tests/CMakeLists.txt"
-               ((".*markdown.*") ""))
-             #t))
+               ((".*markdown.*") ""))))
          (replace 'build
            (lambda _
              (invoke "ninja" "-j" (number->string (parallel-job-count)))))
@@ -887,14 +876,12 @@ mailpack.  What can alterMIME do?
              (let ((xorg-server (assoc-ref inputs "xorg-server")))
                (setenv "HOME" (getcwd))
                (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
-               (setenv "DISPLAY" ":1")
-               #t)))
+               (setenv "DISPLAY" ":1"))))
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
                (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
-               (invoke "ctest" "."))
-             #t))
+               (invoke "ctest" "."))))
          (replace 'install
            (lambda _
              (invoke "ninja" "install")))
@@ -911,26 +898,25 @@ mailpack.  What can alterMIME do?
                                         #f))))
                                inputs)))
                (wrap-program (string-append out "/bin/astroid")
-                 `("GI_TYPELIB_PATH" ":" prefix ,(filter identity paths))))
-             #t))
+                 `("GI_TYPELIB_PATH" ":" prefix ,(filter identity paths))))))
          (add-after 'install 'glib-or-gtk-compile-schemas
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
          (add-after 'install 'glib-or-gtk-wrap
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
     (native-inputs
-     `(("glib-networking" ,glib-networking)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gnupg" ,gnupg)
-       ("ninja" ,ninja)
-       ("pkg-config" ,pkg-config)
-       ("ronn" ,ronn)
-       ("w3m" ,w3m)
-       ("xorg-server" ,xorg-server)))
+     (list glib-networking
+           gsettings-desktop-schemas
+           gnupg
+           ninja
+           pkg-config
+           ronn
+           w3m
+           xorg-server))
     (inputs
      `(("boost" ,boost)
        ("gmime" ,gmime)
        ("gobject-introspection" ,gobject-introspection) ; it is referenced
-       ("gtkmm" ,gtkmm)
+       ("gtkmm" ,gtkmm-3)
        ("libpeas" ,libpeas)
        ("libsass" ,libsass)
        ("notmuch" ,notmuch)
@@ -939,7 +925,7 @@ mailpack.  What can alterMIME do?
        ("python-pygobject" ,python-pygobject)
        ("webkitgtk" ,webkitgtk)))
     (propagated-inputs
-     `(("adwaita-icon-theme" ,adwaita-icon-theme))) ; Required for the thread view
+     (list adwaita-icon-theme)) ; Required for the thread view
     (home-page "https://astroidmail.github.io/")
     (synopsis "GTK frontend to the notmuch mail system")
     (description
@@ -1028,7 +1014,7 @@ MIME-encoded email package.")
                    (("/usr") ""))       ; This allows the man page to install.
                  #t))))))
       (native-inputs
-       `(("python" ,python)))           ; for tests
+       (list python))           ; for tests
       (synopsis "MIME type associations for file types")
       (description
        "This package provides MIME type associations for file types.")
@@ -1057,8 +1043,8 @@ MIME-encoded email package.")
                (("GREP=/bin/grep")
                 (string-append "GREP=" (which "grep") "\n")))
              #t)))))
-    (native-inputs `(("flex" ,flex)))
-    (inputs `(("bdb" ,bdb)))
+    (native-inputs (list flex))
+    (inputs (list bdb))
     (home-page "https://bogofilter.sourceforge.io/")
     (synopsis "Mail classifier based on a Bayesian filter")
     (description
@@ -1088,11 +1074,9 @@ and corrections.  It is based on a Bayesian filter.")
                   "0nzh5dcc559jfw4yy12gc98s17w82b15zxikspc6apd8filmk9xg"))))
       (build-system python-build-system)
       (native-inputs
-       `(("asciidoc" ,asciidoc)))
+       (list asciidoc))
       (inputs
-       `(("python-distro" ,python-distro)
-         ("python-imaplib2" ,python-imaplib2)
-         ("python-rfc6555" ,python-rfc6555)))
+       (list python-distro python-imaplib2 python-rfc6555))
       (arguments
        `(;; Tests require a modifiable IMAP account.
          #:tests? #f
@@ -1133,10 +1117,10 @@ repository and Maildir/IMAP as LOCAL repository.")
                (base32
                 "0ixzyq33l6j34410kqav3lwn2wx171zvqd3irvns2jvhrbww8i6g"))))
     (native-inputs
-     `(("emacs" ,emacs)))
+     (list emacs))
     (propagated-inputs
-     `(("ruby-sqlite3" ,ruby-sqlite3) ; optional for the database of messages
-       ("ruby" ,ruby))) ; to set GEM_PATH so ruby-sqlite3 is found at runtime
+     (list ruby-sqlite3 ; optional for the database of messages
+           ruby)) ; to set GEM_PATH so ruby-sqlite3 is found at runtime
     (build-system gnu-build-system)
     (arguments
      (let ((elisp-dir "/share/emacs/site-lisp")
@@ -1175,7 +1159,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
 (define-public mu
   (package
     (name "mu")
-    (version "1.6.5")
+    (version "1.6.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/djcb/mu/releases/"
@@ -1183,7 +1167,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
                                   "mu-" version ".tar.xz"))
               (sha256
                (base32
-                "0irqr1z1ljmij2vbj8dr8w9mbfalzikxr4s6340jjwmkmhaslh2h"))))
+                "1dh0x4lqnjflb0k8fybr5clqjxv35scf055g1590pr5znam29hhb"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -1191,10 +1175,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
        ("emacs" ,emacs-minimal)
        ("tzdata" ,tzdata-for-tests)))   ; for mu/test/test-mu-query.c
     (inputs
-     `(("xapian" ,xapian)
-       ("guile" ,guile-3.0)
-       ("glib" ,glib)
-       ("gmime" ,gmime)))
+     (list xapian guile-3.0 glib gmime))
     (arguments
      `(#:modules ((guix build gnu-build-system)
                   (guix build utils)
@@ -1239,7 +1220,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
     (synopsis "Quickly find emails")
     (description
      "Mu is a tool for dealing with e-mail messages stored in the
-Maildir-format.  Mu's purpose in life is to help you to quickly find the
+Maildir format.  Mu's purpose in life is to help you to quickly find the
 messages you need; in addition, it allows you to view messages, extract
 attachments, create new maildirs, and so on.")
     (license license:gpl3+)))
@@ -1247,7 +1228,7 @@ attachments, create new maildirs, and so on.")
 (define-public alot
   (package
     (name "alot")
-    (version "0.9.1")
+    (version "0.10")
     (source (origin
               (method git-fetch)
               ;; package author intends on distributing via github rather
@@ -1259,7 +1240,7 @@ attachments, create new maildirs, and so on.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0s94m17yph1gq9f2svipb3bbwbw1s4j3zf2xkg5h91006v8286r6"))))
+                "0awf1phdy1wqm01cy9zmvqlw6c8pvkxm2f9ncjd0cmzxqnmq1dyn"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1278,20 +1259,23 @@ attachments, create new maildirs, and so on.")
           (substitute* "tests/commands/test_global.py"
             (("def test_no_spawn_no_stdin_attached")
              "def _test_no_spawn_no_stdin_attached"))
+          ;; FIXME: Investigate why this test hangs.
+          (substitute* "tests/db/test_manager.py"
+            (("def test_save_named_query")
+             "def _test_save_named_query"))
           #t)))))
     (native-inputs
-     `(("procps" ,procps)
-       ("python-mock" ,python-mock)))
+     (list procps python-mock))
     (inputs
-     `(("gnupg" ,gnupg)
-       ("python-magic" ,python-magic)
-       ("python-configobj" ,python-configobj)
-       ("python-twisted" ,python-twisted)
-       ("python-service-identity" ,python-service-identity)
-       ("python-urwid" ,python-urwid)
-       ("python-urwidtrees" ,python-urwidtrees)
-       ("python-gpg" ,python-gpg)
-       ("python-notmuch" ,python-notmuch)))
+     (list gnupg
+           python-magic
+           python-configobj
+           python-twisted
+           python-service-identity
+           python-urwid
+           python-urwidtrees
+           python-gpg
+           python-notmuch2))
     (home-page "https://github.com/pazz/alot")
     (synopsis "Command-line MUA using Notmuch")
     (description
@@ -1321,11 +1305,8 @@ Notmuch.")
          (file-name (string-append name "-" version "-checkout"))))
       (build-system python-build-system)
       (inputs
-       `(("python-notmuch" ,python-notmuch)
-         ("python-pygobject" ,python-pygobject)
-         ("gobject-introspection" ,gobject-introspection)
-         ("libnotify" ,libnotify)
-         ("gtk+" ,gtk+)))
+       (list python-notmuch python-pygobject gobject-introspection
+             libnotify gtk+))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -1353,14 +1334,14 @@ invoking @command{notifymuch} from the post-new hook.")
 (define-public notmuch
   (package
     (name "notmuch")
-    (version "0.32.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://notmuchmail.org/releases/notmuch-"
-                                  version ".tar.xz"))
-              (sha256
-               (base32
-                "1myylb19hj5nb1vriqng252vfjwwkgbi3gxj93pi2q1fzyw7w2lf"))))
+    (version "0.34.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://notmuchmail.org/releases/notmuch-"
+                           version ".tar.xz"))
+       (sha256
+        (base32 "1ls7dbgqhvyn9arf1r1jijfllypylgr5l86p489732gn8zpcxwn1"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -1403,11 +1384,7 @@ invoking @command{notifymuch} from the post-new hook.")
        ("man" ,man-db)
        ("perl" ,perl)))
     (inputs
-     `(("glib" ,glib)
-       ("gmime" ,gmime)
-       ("talloc" ,talloc)
-       ("xapian" ,xapian)
-       ("zlib" ,zlib)))
+     (list glib gmime talloc xapian zlib))
     (home-page "https://notmuchmail.org/")
     (synopsis "Thread-based email index, search, and tagging")
     (description
@@ -1422,7 +1399,7 @@ ing, and tagging large collections of email messages.")
     (build-system emacs-build-system)
     (native-inputs '())
     (inputs
-     `(("notmuch" ,notmuch)))
+     (list notmuch))
     (arguments
      `(#:exclude (cons* "make-deps.el" "rstdoc.el" %default-exclude)
        #:phases
@@ -1470,10 +1447,9 @@ system.")))
                                   (assoc-ref outputs "out") "/bin")))
                         (install-file "notmuch-addrlookup" bin)))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("notmuch" ,notmuch)))
+     (list glib notmuch))
     (home-page "https://github.com/aperezdc/notmuch-addrlookup-c")
     (synopsis "Address lookup tool for Notmuch")
     (description "This is an address lookup tool using a Notmuch database,
@@ -1488,7 +1464,7 @@ useful for email address completion.")
     ;; bindings are distributed via the notmuch release tarball.
     (source (package-source notmuch))
     (build-system python-build-system)
-    (inputs `(("notmuch" ,notmuch)))
+    (inputs (list notmuch))
     (arguments
      `(#:tests? #f  ; no "test" target
        #:phases
@@ -1515,6 +1491,21 @@ and search library.")
 (define-public python2-notmuch
   (package-with-python2 python-notmuch))
 
+(define-public python-notmuch2
+  (package
+    (inherit python-notmuch)
+    (name "python-notmuch2")
+    (propagated-inputs (list python-cffi))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; This python package lives in a subdirectory of the notmuch source
+         ;; tree, so chdir into it before building.
+         (add-after 'unpack 'enter-python-dir
+           (lambda _ (chdir "bindings/python-cffi"))))))
+    (synopsis "Pythonic bindings for the notmuch mail database using CFFI")
+    (license license:gpl3+)))
+
 (define-public muchsync
   (package
     (name "muchsync")
@@ -1528,13 +1519,9 @@ and search library.")
         (base32 "1s799kx16nm5ry1fcqcc0grgxrwnnp4cnzd0hzwbkvc5v2sf6g8b"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pandoc" ,pandoc)
-       ("pkg-config" ,pkg-config)))
+     (list pandoc pkg-config))
     (inputs
-     `(("libcrypto" ,openssl)
-       ("notmuch" ,notmuch)
-       ("sqlite" ,sqlite)
-       ("xapian" ,xapian)))
+     (list openssl notmuch sqlite xapian))
     (home-page "http://www.muchsync.org/")
     (synopsis "Synchronize notmuch mail across machines")
     (description
@@ -1586,19 +1573,13 @@ useful features.")
              (sha256
                (base32 "0g7an003simfdn7ihg9yjv7hl2czsmjsndjrp39i7cad8icixscn"))))
     (build-system gnu-build-system)
-    (native-inputs `(("autoconf" ,autoconf)
-                     ("automake" ,automake)
-                     ("libtool" ,libtool)
-                     ("pkg-config" ,pkg-config)))
+    (native-inputs (list autoconf automake libtool pkg-config))
     (propagated-inputs
      ;; 'libetpan-config --libs' returns '-lssl -lcrypto -lsasl2', so these
      ;; libraries need to be propagated.
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("openssl" ,openssl)))
+     (list cyrus-sasl openssl))
     (inputs
-     `(("curl" ,curl)
-       ("expat" ,expat)
-       ("zlib" ,zlib)))
+     (list curl expat zlib))
     (arguments
       '(#:configure-flags
         '("--disable-static" "--disable-db")))
@@ -1672,16 +1653,15 @@ compresses it.")
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "src/procmime.c"
                (("/usr/share/mime/globs")
-                (search-input-directory inputs
-                                        "/share/mime/globs"))))))))
+                (search-input-file inputs "/share/mime/globs"))))))))
     (native-inputs
-     `(("bison" ,bison)
-       ;;("docbook-utils" ,docbook-utils)
-       ("flex" ,flex)
-       ("gettext-minimal" ,gettext-minimal)
-       ("gobject-introspection" ,gobject-introspection)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list bison
+           ;;("docbook-utils" ,docbook-utils)
+           flex
+           gettext-minimal
+           gobject-introspection
+           intltool
+           pkg-config))
     (inputs
      `(("bogofilter" ,bogofilter)
        ("cairo" ,cairo)
@@ -1692,7 +1672,7 @@ compresses it.")
        ("enchant" ,enchant)
        ("expat" ,expat)
        ("fontconfig" ,fontconfig)
-       ("gdk-pixbuf+svg" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("ghostscript" ,ghostscript)
        ("glib" ,glib)
        ("gnupg" ,gnupg)
@@ -1727,7 +1707,7 @@ compresses it.")
        ;;("webkitgtk" ,webkitgtk)
        ("ytnef" ,ytnef)))
     (propagated-inputs
-     `(("dconf" ,dconf)))
+     (list dconf))
     (synopsis "GTK-based Email client")
     (description "Claws-Mail is an email client (and news reader) based on GTK+.
 The appearance and interface are designed to be familiar to new users coming
@@ -1740,22 +1720,19 @@ addons which can add many functionalities to the base client.")
 (define-public msmtp
   (package
     (name "msmtp")
-    (version "1.8.15")
+    (version "1.8.19")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://marlam.de/msmtp/releases/"
                            "/msmtp-" version ".tar.xz"))
        (sha256
-        (base32 "1klrj2a77671xb6xa0a0iyszhjb7swxhmzpzd4qdybmzkrixqr92"))))
+        (base32 "0ssj8izcw1fywihlip6wljd9i41w23cy0vp69sz4v1vn26cf389l"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libsecret" ,libsecret)
-       ("gnutls" ,gnutls)
-       ("zlib" ,zlib)
-       ("gsasl" ,gsasl)))
+     (list libsecret gnutls zlib gsasl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://marlam.de/msmtp/")
     (arguments
      `(#:configure-flags (list "--with-libgsasl"
@@ -1777,8 +1754,9 @@ addons which can add many functionalities to the base client.")
                ;; Don't rely on netcat being in the PATH to test for a
                ;; connection, instead look up and ping debian.org.
                (substitute* (string-append bin "/msmtpq")
-                 (("EMAIL_CONN_TEST=n") "EMAIL_CONN_TEST=p"))
-               #t))))))
+                 (("EMAIL_CONN_TEST=n") "EMAIL_CONN_TEST=p"))))))))
+    (properties
+     '((release-monitoring-url . "https://marlam.de/msmtp/download/")))
     (synopsis
      "Simple and easy to use SMTP client with decent sendmail compatibility")
     (description
@@ -1790,7 +1768,7 @@ delivery.")
 (define-public exim
   (package
     (name "exim")
-    (version "4.94.2")
+    (version "4.95")
     (source
      (origin
        (method url-fetch)
@@ -1804,7 +1782,7 @@ delivery.")
                     (string-append "https://ftp.exim.org/pub/exim/exim4/old/"
                                    file-name))))
        (sha256
-        (base32 "0x4j698gsawm8a3bz531pf1k6izyxfvry4hj5wb0aqphi7y62605"))))
+        (base32 "0rzi0kc3qiiaw8vnv5qrpwdvvh4sr5chns026xy99spjzx9vd76c"))))
     (build-system gnu-build-system)
     (inputs
      `(("bdb" ,bdb-5.3) ; ‘#error Version 6 and later BDB API is not supported’
@@ -1817,11 +1795,9 @@ delivery.")
        ("libxt" ,libxt)
        ("libxaw" ,libxaw)))
     (native-inputs
-     `(("pcre" ,pcre "bin")
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list `(,pcre "bin") perl pkg-config))
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
          (replace 'configure
            ;; We'd use #:make-flags but the top-level Makefile calls others
@@ -1863,8 +1839,7 @@ delivery.")
                  (("'zcat'") (string-append "'" gzip "/bin/zcat'"))
                  (("'bzcat'") (string-append "'" bzip2 "/bin/bzcat'"))
                  (("'xzcat'") (string-append "'" xz "/bin/xzcat'"))
-                 (("'lzma'") (string-append "'" xz "/bin/lzma'"))))
-             #t))
+                 (("'lzma'") (string-append "'" xz "/bin/lzma'"))))))
          (add-before 'build 'fix-sh-paths
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* '("scripts/lookups-Makefile" "scripts/reversion")
@@ -1873,8 +1848,7 @@ delivery.")
                (("\\| /bin/sh") "| sh"))
              (let ((bash (assoc-ref inputs "bash")))
                (substitute* '("scripts/Configure-eximon")
-                 (("#!/bin/sh") (string-append "#!" bash "/bin/sh"))))
-             #t))
+                 (("#!/bin/sh") (string-append "#!" bash "/bin/sh"))))))
          (add-before 'build 'build-reproducibly
            (lambda _
              ;; The ‘compilation number’ is incremented for every build from the
@@ -1883,7 +1857,7 @@ delivery.")
              (substitute* "src/version.c"
                (("#include \"cnumber.h\"") "1")))))
        #:make-flags
-       (list "CC=gcc"
+       (list (string-append "CC=" ,(cc-for-target))
              "INSTALL_ARG=-no_chown")
        ;; No 'check' target.  There is a test suite in test/, which assumes that
        ;; certain build options were (not) used and that it can freely ‘sudo’.
@@ -1903,7 +1877,7 @@ facilities for checking incoming mail.")
   (package
     (name "dovecot")
     ;; Also update dovecot-pigeonhole when updating to a new minor version.
-    (version "2.3.16")
+    (version "2.3.17.1")
     (source
      (origin
        (method url-fetch)
@@ -1911,27 +1885,23 @@ facilities for checking incoming mail.")
                            (version-major+minor version) "/"
                            "dovecot-" version ".tar.gz"))
        (sha256
-        (base32 "04ngqv5mml5z0i4p7fkchp4xw2awy7x7mq2mim9frnav0m9iv9q3"))))
+        (base32 "1f525bvpjvi4rnwqjsqaqrbdii08sqmc1v8xq03m19w1vk6cqrqw"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("clucene" ,clucene)
-       ("icu4c" ,icu4c)
-       ("libsodium" ,libsodium)         ; extra password algorithms
-       ("libstemmer" ,libstemmer)
-       ;; FIXME: The 'test-backtrace' tests fail on arm when using glibc's
-       ;; backtrace_symbol() function so fallback to using libunwind.
-       ,@(if (target-arm?)
-          `(("libunwind" ,libunwind))
-          '())
-       ("linux-pam" ,linux-pam)
-       ("lz4" ,lz4)
-       ("openssl" ,openssl)
-       ("sqlite" ,sqlite)
-       ("zlib" ,zlib)
-       ("zstd" ,zstd "lib")))
+     (list bzip2
+           clucene
+           icu4c
+           libsodium ; extra password algorithms
+           libstemmer
+           libunwind
+           linux-pam
+           lz4
+           openssl
+           sqlite
+           zlib
+           `(,zstd "lib")))
     (arguments
      `(#:configure-flags '("--sysconfdir=/etc"
                            "--localstatedir=/var"
@@ -1950,8 +1920,7 @@ facilities for checking incoming mail.")
                (("sleep") (which "sleep")))
              (substitute* (list "src/lib-smtp/test-bin/sendmail-exit-1.sh"
                                 "src/lib-smtp/test-bin/sendmail-success.sh")
-               (("cat") (which "cat")))
-             #t))
+               (("cat") (which "cat")))))
          (replace 'install
            (lambda* (#:key make-flags #:allow-other-keys)
              ;; Simple hack to avoid installing a trivial README in /etc.
@@ -1972,7 +1941,7 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
   (let ((dovecot-version (version-major+minor (package-version dovecot))))
     (package
       (name "dovecot-pigeonhole")
-      (version "0.5.16")
+      (version "0.5.17.1")
       (source
        (origin
          (method url-fetch)
@@ -1980,7 +1949,7 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
                "https://pigeonhole.dovecot.org/releases/" dovecot-version "/"
                "dovecot-" dovecot-version "-pigeonhole-" version ".tar.gz"))
          (sha256
-          (base32 "0f79qsiqnhaxn7mrrfcrnsjyv6357kzb7wa0chhfd69vwa06g8sw"))
+          (base32 "04j5z3y8yyci4ni9j9i7cy0zg1qj2sm9zfarmjcvs9vydpga7i1w"))
          (modules '((guix build utils)))
          (snippet
           '(begin
@@ -1989,8 +1958,7 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
              (substitute* "configure"
                (("doc/rfc/Makefile") ""))
              (substitute* "doc/Makefile.in"
-               (("rfc ") ""))
-             #t))))
+               (("rfc ") ""))))))
       (build-system gnu-build-system)
       (arguments
        `(#:configure-flags
@@ -2018,12 +1986,11 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
                  (substitute* "src/managesieve-login/managesieve-login-settings.c"
                    (("\\.executable = \"managesieve-login\"")
                     (string-append ".executable = \"" libexec
-                                   "/managesieve-login\"")))
-                 #t))))))
+                                   "/managesieve-login\"")))))))))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (inputs
-       `(("dovecot" ,dovecot)))
+       (list dovecot))
       (home-page "https://pigeonhole.dovecot.org")
       (synopsis "Dovecot Sieve mail filtering plug-in and ManageSieve service")
       (description
@@ -2062,13 +2029,9 @@ scripts to prevent embarrassing errors later on.")
         (search-patches "dovecot-trees-support-dovecot-2.3.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("libtool" ,libtool)
-       ("dovecot" ,dovecot)
-       ("pkg-config" ,pkg-config)))
+     (list automake autoconf libtool dovecot pkg-config))
     (inputs
-     `(("libsodium" ,libsodium)))
+     (list libsodium))
     (arguments
      `(#:tests? #f ;No tests exist.
        #:configure-flags (list (string-append "--with-dovecot="
@@ -2113,13 +2076,9 @@ using libsodium sealed boxes.
            "13h07l7xy713zchnj2p9fhvq7fdl4zy1ai94li3ygkqjjj8hrgas"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("automake" ,automake)
-         ("autoconf" ,autoconf)
-         ("libtool" ,libtool)
-         ("dovecot" ,dovecot)
-         ("pkg-config" ,pkg-config)))
+       (list automake autoconf libtool dovecot pkg-config))
       (inputs
-       `(("libsodium" ,libsodium)))
+       (list libsodium))
       (arguments
        `(#:tests? #f ;No tests exist.
          #:configure-flags (list (string-append "--with-dovecot="
@@ -2135,22 +2094,19 @@ hashing scheme (such as scrypt) plug-in for @code{Dovecot}.")
 (define-public isync
   (package
     (name "isync")
-    (version "1.4.3")
+    (version "1.4.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/isync/isync/"
                            version "/isync-" version ".tar.gz"))
        (sha256 (base32
-                "024p3glj4p7fhrssw5sr55arls9zna1igxxrspxlfd6sbds21ixl"))))
+                "1zq0wwvmqsl9y71546dr0aygzn9gjjfiw19hlcq87s929y4p6ckw"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (inputs
-     `(("bdb" ,bdb)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list bdb cyrus-sasl openssl zlib))
     (home-page "https://isync.sourceforge.io/")
     (synopsis "Mailbox synchronization program")
     (description
@@ -2171,9 +2127,7 @@ mailboxes.  Currently Maildir and IMAP are supported types.")
         (base32 "1z01wbflg49nbgzl81x260cp8x6qr7xdpz3dkrg82m1fwa9742q4"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-email-simple" ,perl-email-simple)
-       ("perl-module-pluggable" ,perl-module-pluggable)
-       ("perl-mro-compat" ,perl-mro-compat)))
+     (list perl-email-simple perl-module-pluggable perl-mro-compat))
     (home-page "https://metacpan.org/release/Email-Abstract")
     (synopsis "Interface to mail representations")
     (description "Email::Abstract provides module writers with the ability to
@@ -2273,13 +2227,13 @@ identify a message uniquely.")
          "0z1k3i0lzp2k421gc8f3wq0jbqflkbw2xqd2k7n7pmv56417kvk8"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-email-address" ,perl-email-address)
-       ("perl-email-messageid" ,perl-email-messageid)
-       ("perl-email-mime-contenttype" ,perl-email-mime-contenttype)
-       ("perl-email-mime-encodings" ,perl-email-mime-encodings)
-       ("perl-email-simple" ,perl-email-simple)
-       ("perl-mime-types" ,perl-mime-types)
-       ("perl-module-runtime" ,perl-module-runtime)))
+     (list perl-email-address
+           perl-email-messageid
+           perl-email-mime-contenttype
+           perl-email-mime-encodings
+           perl-email-simple
+           perl-mime-types
+           perl-module-runtime))
     (home-page "https://metacpan.org/release/Email-MIME")
     (synopsis "MIME message handling")
     (description "Email::MIME is an extension of the Email::Simple module, to
@@ -2302,7 +2256,7 @@ message.  Headers are decoded from MIME encoding.")
          "042kxhs3bp1ab9z0mbr1wy21ld4lxd6v2a2mmrashqnsn2075fws"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)))
+     (list perl-capture-tiny))
     (home-page "https://metacpan.org/release/Email-MIME-ContentType")
     (synopsis "Parse MIME Content-Type headers")
     (description "Email::MIME::ContentType parses a MIME Content-Type
@@ -2323,7 +2277,7 @@ header.")
          "0p5b8g9gh35m8fqrpx60g4bp98rvwd02n5b0vm9wh7mk0xah8wac"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)))
+     (list perl-capture-tiny))
     (home-page "https://metacpan.org/release/Email-MIME-Encodings")
     (synopsis "Unified interface to MIME encoding and decoding")
     (description "This module wraps MIME::Base64 and MIME::QuotedPrint.")
@@ -2342,18 +2296,18 @@ header.")
         (base32 "0yfssp3rqdx1dmgvnygarzgkpkhqm28r5sd0gh87ksk8yxndhjql"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)))
+     (list perl-capture-tiny))
     (propagated-inputs
-     `(("perl-email-abstract" ,perl-email-abstract)
-       ("perl-email-address" ,perl-email-address)
-       ("perl-email-simple" ,perl-email-simple)
-       ("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-moo" ,perl-moo)
-       ("perl-moox-types-mooselike" ,perl-moox-types-mooselike)
-       ("perl-sub-exporter" ,perl-sub-exporter)
-       ("perl-throwable" ,perl-throwable)
-       ("perl-try-tiny" ,perl-try-tiny)))
+     (list perl-email-abstract
+           perl-email-address
+           perl-email-simple
+           perl-list-moreutils
+           perl-module-runtime
+           perl-moo
+           perl-moox-types-mooselike
+           perl-sub-exporter
+           perl-throwable
+           perl-try-tiny))
     (home-page "https://metacpan.org/release/Email-Sender")
     (synopsis "Perl library for sending email")
     (description "Email::Sender replaces the old and sometimes problematic
@@ -2374,7 +2328,7 @@ Email::Send library.")
          "1m4brbjvalyp5kjqslqv4155dzwg977shxin208i7lc8236n6pyq"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-email-date-format" ,perl-email-date-format)))
+     (list perl-email-date-format))
     (home-page "https://metacpan.org/release/Email-Simple")
     (synopsis "Parsing of RFC 2822 messages")
     (description "Email::Simple provides simple parsing of RFC 2822 message
@@ -2396,7 +2350,7 @@ format and headers.")
         (base32 "1bhh8hlsl9597x0bnfl563k2c09b61qnkb9mfyqcmzlq63m1zw5y"))))
     (build-system meson-build-system)
     (propagated-inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (home-page "http://www.stafford.uklinux.net/libesmtp/")
     (synopsis "Library for sending mail via remote hosts using SMTP")
     (description
@@ -2436,13 +2390,9 @@ be expected from a simple client.")
                    (lambda _ (invoke "autoreconf" "-vfi"))))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list bison flex autoconf automake libtool))
     (inputs
-     `(("libesmtp" ,libesmtp)))
+     (list libesmtp))
     (home-page "https://sourceforge.net/projects/esmtp/")
     (synopsis "Relay-only mail transfer agent (MTA)")
     (description "Esmtp is a simple relay-only mail transfer agent built using
@@ -2465,9 +2415,7 @@ compatibility shims for the @command{sendmail}, @command{mailq}, and
                (base32 "196fs1z8y7p12wmqn1bylzz94szl58yv2aby3p30nmwjnyv8rch6"))))
     (build-system gnu-build-system)
     (inputs
-     `(("tdb" ,tdb)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list tdb openssl zlib))
     (home-page "https://github.com/nicm/fdm")
     (synopsis "Mail Retrieval Agent (MRA) and Mail Delivery Agent (MDA)")
     (description "fdm is a program designed to fetch mail from POP3
@@ -2518,7 +2466,7 @@ deliver it in various ways.")
     ;; file system are performed during 'make install'.  However, these
     ;; are performed before the actual build process.
     (build-system gnu-build-system)
-    (inputs `(("exim" ,exim)))
+    (inputs (list exim))
     (home-page "http://www.procmail.org/")
     (synopsis "Versatile mail delivery agent (MDA)")
     (description "Procmail is a mail delivery agent (MDA) featuring support
@@ -2552,13 +2500,10 @@ maintained.")
                (copy-recursively "misc/zsh" zsh)
                #t))))))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (inputs
-     `(("python-atomicwrites" ,python-atomicwrites)
-       ("python-configobj" ,python-configobj)
-       ("python-ruamel.yaml" ,python-ruamel.yaml)
-       ("python-unidecode" ,python-unidecode)
-       ("python-vobject" ,python-vobject)))
+     (list python-atomicwrites python-configobj python-ruamel.yaml
+           python-unidecode python-vobject))
     (synopsis "Console address book using CardDAV")
     (description "Khard is an address book for the console.  It creates, reads,
 modifies and removes CardDAV address book entries at your local machine.  For
@@ -2582,9 +2527,7 @@ Khard can also be used from within the email client @command{mutt}.")
         (base32 "0qk1rfgfm5drj4iyniiabrasrpqv570vzhgz66lwgb67y4amkjv1"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-net-dns-resolver-programmable"
-        ,perl-net-dns-resolver-programmable)))
+     (list perl-module-build perl-net-dns-resolver-programmable))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2596,10 +2539,7 @@ Khard can also be used from within the email client @command{mutt}.")
                                                "/sbin'")))
              #t)))))
     (inputs
-     `(("perl-error" ,perl-error)
-       ("perl-net-dns" ,perl-net-dns)
-       ("perl-netaddr-ip" ,perl-netaddr-ip)
-       ("perl-uri" ,perl-uri)))
+     (list perl-error perl-net-dns perl-netaddr-ip perl-uri))
     (home-page "https://metacpan.org/release/Mail-SPF")
     (synopsis "Perl implementation of Sender Policy Framework")
     (description "Mail::SPF is the Sender Policy Framework implemented
@@ -2620,7 +2560,7 @@ in Perl.")
                 "1g1wym9vcbhldwvi4w5pl0fhd4jh2icj975awf4wr5xmkli9mxbz"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-exception" ,perl-test-exception)))
+     (list perl-test-exception))
     (home-page "https://metacpan.org/release/Mail-AuthenticationResults")
     (synopsis "Object Oriented Authentication-Results Headers")
     (description "Mail::AuthenticationResults parses the message header field
@@ -2644,14 +2584,11 @@ Authentication-Results header seen in the wild.")
                 "1x8v4pa0447c1xqri1jn96i8vlyjpl6jmz63nb1vifbp16yi3zxb"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-crypt-openssl-rsa" ,perl-crypt-openssl-rsa)
-       ("perl-mail-authenticationresults" ,perl-mail-authenticationresults)
-       ("perl-mailtools" ,perl-mailtools)
-       ("perl-net-dns" ,perl-net-dns)))
+     (list perl-crypt-openssl-rsa perl-mail-authenticationresults
+           perl-mailtools perl-net-dns))
     (native-inputs
-     `(("perl-net-dns-resolver-mock" ,perl-net-dns-resolver-mock)
-       ("perl-test-requiresinternet" ,perl-test-requiresinternet)
-       ("perl-yaml-libyaml" ,perl-yaml-libyaml)))
+     (list perl-net-dns-resolver-mock perl-test-requiresinternet
+           perl-yaml-libyaml))
     (home-page "https://metacpan.org/release/Mail-DKIM")
     (synopsis "Signs/verifies Internet mail with DKIM/DomainKey signatures")
     (description "Mail::DKIM is a Perl module that implements the new Domain
@@ -2712,17 +2649,17 @@ DKIM and/or DomainKeys.")
                               "perl-timedate"))
                #t))))))
     (inputs
-     `(("perl" ,perl)
-       ("perl-crypt-openssl-rsa" ,perl-crypt-openssl-rsa)
-       ("perl-io-socket-inet6" ,perl-io-socket-inet6)
-       ("perl-mailtools" ,perl-mailtools)
-       ("perl-mail-authenticationresults" ,perl-mail-authenticationresults)
-       ("perl-mail-dkim" ,perl-mail-dkim)
-       ("perl-mime-tools" ,perl-mime-tools)
-       ("perl-net-dns" ,perl-net-dns)
-       ("perl-net-server" ,perl-net-server)
-       ("perl-socket6" ,perl-socket6)
-       ("perl-timedate" ,perl-timedate)))
+     (list perl
+           perl-crypt-openssl-rsa
+           perl-io-socket-inet6
+           perl-mailtools
+           perl-mail-authenticationresults
+           perl-mail-dkim
+           perl-mime-tools
+           perl-net-dns
+           perl-net-server
+           perl-socket6
+           perl-timedate))
     (home-page "http://dkimproxy.sourceforge.net/")
     (synopsis "SMTP proxy to sign and verify Internet mail with DKIM headers")
     (description
@@ -2771,9 +2708,8 @@ existing mail server.  With Postfix, the proxies can operate as either
              (patch-shebang "mb2md" (list (string-append perl "/bin")))
              (chmod "mb2md" #o555))
            #t))))
-    (native-inputs `(("gzip" ,gzip)))
-    (inputs `(("perl" ,perl)
-              ("perl-timedate" ,perl-timedate)))
+    (native-inputs (list gzip))
+    (inputs (list perl perl-timedate))
     (home-page "http://batleth.sapienti-sat.org/projects/mb2md/")
     (synopsis "Mbox to maildir converter")
     (description
@@ -2796,7 +2732,7 @@ converts them to maildir format directories.")
         (base32 "1bir977vnqs76g8jgv1yivqw0wk2kn56l3l5r4w2ipix3fir138y"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (arguments
      `(#:tests? #f                   ; XXX: Upstream tests appear to be broken
        #:make-flags (list (string-append "CC=" ,(cc-for-target))
@@ -2835,19 +2771,19 @@ easily (one at a time).")
 (define-public mpop
   (package
     (name "mpop")
-    (version "1.4.13")
+    (version "1.4.16")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://marlam.de/mpop/releases/"
                            "mpop-" version ".tar.xz"))
        (sha256
-        (base32 "1hbx69d6ivbvjajrcp54fdb3g1ms4ydj0ybf3bfhlravqrk88jdk"))))
+        (base32 "1yc7lsdy9gvlslvljqg34kvcaf4wvrwlvj6h5awkzlp6x9qva3l7"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gnutls" ,gnutls)))
+     (list gnutls))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://marlam.de/mpop/")
     (synopsis "POP3 mail client")
     (description "mpop is a small and fast POP3 client suitable as a
@@ -2862,15 +2798,14 @@ Names} and SOCKS proxies.")
 (define-public mhonarc
   (package
     (name "mhonarc")
-    (version "2.6.19")
+    (version "2.6.24")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/E/EH/EHOOD/MHonArc-"
+       (uri (string-append "mirror://cpan/authors/id/L/LD/LDIDRY/MHonArc-"
                            version ".tar.gz"))
        (sha256
-        (base32
-         "0ll3v93yji334zqp6xfzfxc0127pmjcznmai1l5q6dzawrs2igzq"))))
+        (base32 "0cszh619i8bfjpyxhfgph20v8lic5zpirr990xdbg7759qvwfza5"))))
     (build-system perl-build-system)
     (home-page "https://www.mhonarc.org/")
     (synopsis "Create HTML archives of mail/news messages")
@@ -2971,8 +2906,7 @@ define(`confINST_DEP', `')
        ;; require root privileges
        #:tests? #f))
     (inputs
-     `(("m4" ,m4)
-       ("perl" ,perl)))
+     (list m4 perl))
     (home-page "http://sendmail.org")
     (synopsis
      "Highly configurable Mail Transfer Agent (MTA)")
@@ -3061,15 +2995,14 @@ from the Cyrus IMAP project.")
         (base32 "05sd7bmq29ibnqbl2z53hiyprfxzf0qydfdaixs68rz55wqhbgsi"))))
     (build-system gnu-build-system)
     (inputs
-     `(("bdb" ,bdb)
-       ("libasr" ,libasr)
-       ("libevent" ,libevent)
-       ("libressl" ,libressl)           ; recommended, and supports e.g. ECDSA
-       ("linux-pam" ,linux-pam)
-       ("zlib" ,zlib)))
+     (list bdb
+           libasr
+           libevent
+           libressl ; recommended, and supports e.g. ECDSA
+           linux-pam
+           zlib))
     (native-inputs
-     `(("bison" ,bison)
-       ("groff" ,groff)))               ; for man pages
+     (list bison groff))               ; for man pages
     (arguments
      `(#:configure-flags
        (list "--localstatedir=/var"
@@ -3141,7 +3074,7 @@ to esoteric or niche requirements.")
                 "1b1mx71bvmv92lbm08wr2p60g3qhikvv3n15zsr6dcwbk9aqahzq"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("libressl" ,libressl)
        ("libevent" ,libevent)
@@ -3218,9 +3151,9 @@ for OpenSMTPD to extend its functionality.")
                (("-o \\$\\{...OWN\\} -g \\$\\{...GRP\\}") ""))))
          (delete 'configure))))         ; no configure script
     (native-inputs
-     `(("mandoc" ,mandoc)))           ; silently installs empty man page without
+     (list mandoc))           ; silently installs empty man page without
     (inputs
-     `(("libevent" ,libevent)))
+     (list libevent))
     (home-page "https://imperialat.at/dev/libopensmtpd/")
     (synopsis "OpenSMTPd filter C API")
     (description
@@ -3258,13 +3191,12 @@ writing OpenSMTPd filters.")
                (("-o \\$\\{...OWN\\} -g \\$\\{...GRP\\}") ""))))
          (delete 'configure))))         ; no configure script
     (native-inputs
-     `(("mandoc" ,mandoc)))           ; silently installs empty man page without
+     (list mandoc))           ; silently installs empty man page without
     (inputs
-     `(("libevent" ,libevent)
-       ("libopensmtpd" ,libopensmtpd)
-       ;; XXX Our OpenSMTPd package uses libressl, but this package currently
-       ;; supports HAVE_ED25519 only with openssl.  Switch back when possible.
-       ("openssl" ,openssl)))
+     (list libevent libopensmtpd
+           ;; XXX Our OpenSMTPd package uses libressl, but this package currently
+           ;; supports HAVE_ED25519 only with openssl.  Switch back when possible.
+           openssl))
     (home-page "http://imperialat.at/dev/filter-dkimsign/")
     (synopsis "OpenSMTPd filter for signing mail with DKIM")
     (description
@@ -3296,7 +3228,7 @@ messages with @acronym{DKIM, DomainKeys Identified Mail} (RFC 4871).")
                     (libexec (string-append out "/libexec/opensmtpd")))
                (setenv "GOBIN" libexec)))))))
     (native-inputs
-     `(("opensmtpd" ,opensmtpd)))
+     (list opensmtpd))
     (home-page "https://github.com/poolpOrg/filter-rspamd")
     (synopsis "OpenSMTPd filter to request an Rspamd analysis")
     (description
@@ -3317,30 +3249,30 @@ an SMTP transaction before a message is committed to queue.")
          (base32 "0a5ckbf8hc3y28b7p5psp0d4bxk601jlr5pd3hhh545xd8d9f0dg"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("gunicorn" ,gunicorn)
-       ("python-aiosmtpd" ,python-aiosmtpd)
-       ("python-alembic" ,python-alembic)
-       ("python-atpublic" ,python-atpublic)
-       ("python-authheaders" ,python-authheaders)
-       ("python-authres" ,python-authres)
-       ("python-click" ,python-click)
-       ("python-dateutil" ,python-dateutil)
-       ("python-dnspython" ,python-dnspython)
-       ("python-falcon" ,python-falcon)
-       ("python-flufl-bounce" ,python-flufl-bounce)
-       ("python-flufl-i18n" ,python-flufl-i18n)
-       ("python-flufl-lock" ,python-flufl-lock)
-       ("python-importlib-resources" ,python-importlib-resources)
-       ("python-lazr-config" ,python-lazr-config)
-       ("python-passlib" ,python-passlib)
-       ("python-requests" ,python-requests)
-       ("python-sqlalchemy" ,python-sqlalchemy)
-       ("python-zope-component" ,python-zope-component)
-       ("python-zope-configuration" ,python-zope-configuration)
-       ("python-zope-event" ,python-zope-event)
-       ("python-zope-interface" ,python-zope-interface)))
+     (list gunicorn
+           python-aiosmtpd
+           python-alembic
+           python-atpublic
+           python-authheaders
+           python-authres
+           python-click
+           python-dateutil
+           python-dnspython
+           python-falcon
+           python-flufl-bounce
+           python-flufl-i18n
+           python-flufl-lock
+           python-importlib-resources
+           python-lazr-config
+           python-passlib
+           python-requests
+           python-sqlalchemy
+           python-zope-component
+           python-zope-configuration
+           python-zope-event
+           python-zope-interface))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://www.list.org")
     (synopsis "Mailing list manager")
     (description
@@ -3354,19 +3286,19 @@ filtering, digest delivery, and more.")
 (define-public python-mailmanclient
   (package
     (name "python-mailmanclient")
-    (version "3.3.1")
+    (version "3.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "mailmanclient" version))
        (sha256
         (base32
-         "0pjgzpvhdb6ql8asb20xr8d01m646zpghmcp9fmscks0n1k4di4g"))))
+         "0ppqnv84v7npgjykhqdy5c38vanz4l0qw871kpsl27z4fm365zlj"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f)) ; Requires mailman running
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     ;(native-inputs
     ; `(("mailman" ,mailman)
     ;   ("python-falcon" ,python-falcon)
@@ -3395,8 +3327,7 @@ the GNU Mailman 3 REST API.")
            (base32
             "0fdfs5g3pf30v2i7w18pdkv9xnfxmfcv66mzv56dck0a1igq07m3"))))
       (propagated-inputs
-       `(("python2-six" ,python2-six)
-         ("python2-httplib2" ,python2-httplib2))))))
+       (list python2-six python2-httplib2)))))
 
 (define-public mlmmj
   (package
@@ -3412,9 +3343,9 @@ the GNU Mailman 3 REST API.")
          "0hpj10qad821ci11si8xc2qnmkzfn90y13s43fm4fca38f0qjp8w"))))
     (build-system gnu-build-system)
     (inputs
-     `(("perl" ,perl))) ; For "contrib/web/"
+     (list perl)) ; For "contrib/web/"
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:configure-flags
        ;; mlmmj-receive-strip is a replacement for mlmmj-receive
@@ -3460,14 +3391,14 @@ installation on systems where resources are limited.  Its features include:
 (define-public python-django-mailman3
   (package
     (name "python-django-mailman3")
-    (version "1.3.4")
+    (version "1.3.7")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "django-mailman3" version))
         (sha256
          (base32
-          "1yrm7wpjy34xai72vn2vkhc9131cdrbqy08rrabf36kynj5vcdvy"))))
+          "1dzycnwdr1gavs1dgmcv1lz24x0fkp8y864fy52fgbz72d6c5a3f"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -3479,13 +3410,10 @@ installation on systems where resources are limited.  Its features include:
              (invoke "django-admin" "test"
                      "--pythonpath=."))))))
     (propagated-inputs
-     `(("python-django" ,python-django)
-       ("python-django-allauth" ,python-django-allauth)
-       ("python-django-gravatar2" ,python-django-gravatar2)
-       ("python-mailmanclient" ,python-mailmanclient)
-       ("python-pytz" ,python-pytz)))
+     (list python-django python-django-allauth python-django-gravatar2
+           python-mailmanclient python-pytz))
     (native-inputs
-     `(("python-mock" ,python-mock)))
+     (list python-mock))
     (home-page "https://gitlab.com/mailman/django-mailman3")
     (synopsis "Django library to help interaction with Mailman")
     (description
@@ -3496,34 +3424,21 @@ interacting with Mailman.")
 (define-public python-mailman-hyperkitty
   (package
     (name "python-mailman-hyperkitty")
-    (version "1.1.0")
+    (version "1.2.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "mailman-hyperkitty" version))
         (sha256
          (base32
-          "1lfqa9admhvdv71f528jmz2wl0i5cv77v6l64px2pm4zqr9ckkjx"))
-        (patches
-          (list
-            (origin
-              ;; see: https://gitlab.com/mailman/mailman-hyperkitty/issues/17
-              ;; fixes test_archive_message_unserializable
-              (method url-fetch)
-              (uri "https://salsa.debian.org/mailman-team/mailman-hyperkitty/raw/debian/1.1.0-9/debian/patches/0002-Skip-the-test_archive_message_unserializable.patch")
-              (sha256
-               (base32
-                "0p1fwm46c4bl81lvsg3kjhn2r1lwgkpgxamb3xyqn7h9qdrw10hw")))))))
+          "1ni6vf1yi14c0l895fk278x4na7ymhpkl1q0vnpzbkzplpa7200i"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("python-zope-interface" ,python-zope-interface)))
+     (list python-requests python-zope-interface))
     (inputs
-     `(("mailman" ,mailman)))
+     (list mailman))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)
-       ("python-nose2" ,python-nose2)))
+     (list python-mock python-nose python-nose2))
     (home-page "https://gitlab.com/mailman/mailman-hyperkitty/")
     (synopsis "Mailman archiver plugin for HyperKitty")
     (description
@@ -3536,14 +3451,14 @@ which sends emails to HyperKitty, the official Mailman3 web archiver.")
 (define-public python-hyperkitty
   (package
     (name "python-hyperkitty")
-    (version "1.3.3")
+    (version "1.3.5")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "HyperKitty" version))
         (sha256
          (base32
-          "0p85r9q6mn5as5b39xp9hkkipnk0156acx540n2ygk3qb3jd4a5n"))))
+          "11lz1s2p8n43h1cdr9l5dppsigg8qdppckdwdndzn7a8r8mj4sc2"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -3551,28 +3466,31 @@ which sends emails to HyperKitty, the official Mailman3 web archiver.")
          (replace 'check
            (lambda _
              (invoke "example_project/manage.py" "test"
-                     "--settings=hyperkitty.tests.settings_test"))))))
+                     "--settings=hyperkitty.tests.settings_test"
+                     "--pythonpath=."))))))
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-django" ,python-django-2.2)
-       ("python-django-compressor" ,python-django-compressor)
-       ("python-django-extensions" ,python-django-extensions)
-       ("python-django-gravatar2" ,python-django-gravatar2)
-       ("python-django-haystack" ,python-django-haystack)
-       ("python-django-mailman3" ,python-django-mailman3)
-       ("python-django-q" ,python-django-q)
-       ("python-djangorestframework" ,python-djangorestframework)
-       ("python-flufl-lock" ,python-flufl-lock)
-       ("python-mailmanclient" ,python-mailmanclient)
-       ("python-networkx" ,python-networkx)
-       ("python-pytz" ,python-pytz)
-       ("python-robot-detection" ,python-robot-detection)))
+     (list python-dateutil
+           python-django
+           python-django-compressor
+           python-django-extensions
+           python-django-gravatar2
+           python-django-haystack
+           python-django-mailman3
+           python-django-q
+           python-django-rest-framework
+           python-flufl-lock
+           python-mailmanclient
+           python-mistune-next
+           python-networkx
+           python-pytz
+           python-robot-detection))
     (native-inputs
-     `(("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-elasticsearch" ,python-elasticsearch)
-       ("python-isort" ,python-isort)
-       ("python-mock" ,python-mock)
-       ("python-whoosh" ,python-whoosh)))
+     (list python-beautifulsoup4
+           python-elasticsearch
+           python-isort
+           python-lxml
+           python-mock
+           python-whoosh))
     (home-page "https://gitlab.com/mailman/hyperkitty")
     (synopsis "Web interface to access GNU Mailman v3 archives")
     (description
@@ -3605,15 +3523,10 @@ some configuration.")
                  #t))))
        #:tests? #f)) ; Tests try to run a mailman instance to test against.
     (inputs
-     `(("python-django" ,python-django)
-       ("python-django-mailman3" ,python-django-mailman3)
-       ("python-mailmanclient" ,python-mailmanclient)
-       ("python-readme-renderer" ,python-readme-renderer)))
+     (list python-django python-django-mailman3 python-mailmanclient
+           python-readme-renderer))
     (native-inputs
-     `(("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-isort" ,python-isort)
-       ("python-mock" ,python-mock)
-       ("python-vcrpy" ,python-vcrpy)))
+     (list python-beautifulsoup4 python-isort python-mock python-vcrpy))
     (home-page "https://gitlab.com/mailman/postorius")
     (synopsis "Web user interface for GNU Mailman")
     (description
@@ -3671,10 +3584,7 @@ on the fly.  Both programs are written in C and are very fast.")
         (base32 "131i2b1yxhnbqkfk4kky40pfanqw2c5lcgbnjhfqp5cvpawpk2ai"))))
     (build-system perl-build-system)
     (inputs
-     `(("perl-io-socket-inet6" ,perl-io-socket-inet6)
-       ("perl-net-dns" ,perl-net-dns)
-       ("perl-net-ssleay" ,perl-net-ssleay)
-       ("perl-socket6" ,perl-socket6))) ; used by perl-io-socket-inet6
+     (list perl-io-socket-inet6 perl-net-dns perl-net-ssleay perl-socket6)) ; used by perl-io-socket-inet6
     (arguments
      `(#:tests? #f                      ; no tests
        #:phases
@@ -3715,7 +3625,7 @@ operators and scripters.")
 (define-public alpine
   (package
     (name "alpine")
-    (version "2.24.2")
+    (version "2.25")
     (source
      (origin
        (method git-fetch)
@@ -3728,13 +3638,14 @@ operators and scripters.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ibwss04j4qbhpd3jcw3d4xjf8jnmb9fi3sz58a99xw3awkfjabd"))
+        (base32 "0z6dp3cpz1dmbxw41ravsx1bxychafp0ij8gvj96mzz7rm9pdnq3"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; Remove pre-built binaries scattered across the source repository.
-           (for-each delete-file (find-files "." "\\.(dll|exe)"))
-           #t))))
+           (for-each delete-file (find-files "." "\\.(dll|exe)"))))
+       (patches
+        (search-patches "alpine-fix-privacy-policy-crash.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -3760,24 +3671,22 @@ operators and scripters.")
            ;; ‘/etc/shadow exists in the build environment’.  It does not.
            (lambda _
              (substitute* "configure"
-               (("test -f /etc/shadow") "true"))
-             #t))
+               (("test -f /etc/shadow") "true"))))
          (add-after 'unpack 'make-reproducible
            (lambda _
              ;; This removes time-dependent code to make alpine reproducible.
              (substitute* "pico/blddate.c"
-               (("%02d-%s-%d") "1970-01-01"))
-             #t)))))
+               (("%02d-%s-%d") "1970-01-01")))))))
     (inputs
-     `(("ncurses" ,ncurses)
-       ("openssl" ,openssl)
-       ("gnutls" ,gnutls)
-       ("openldap" ,openldap)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("mit-krb5" ,mit-krb5)
-       ("aspell" ,aspell)
-       ("tcl" ,tcl)
-       ("linux-pam" ,linux-pam)))
+     (list ncurses
+           openssl
+           gnutls
+           openldap
+           cyrus-sasl
+           mit-krb5
+           aspell
+           tcl
+           linux-pam))
     (home-page "https://repo.or.cz/alpine.git")
     (synopsis "Alternatively Licensed Program for Internet News and Email")
     (description
@@ -3815,30 +3724,27 @@ tools and applications:
          "--with-compface"
          "--with-ldap")))
     (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("enchant" ,enchant)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("gmime" ,gmime)
-       ("gnutls" ,gnutls)
-       ("gpgme" ,gpgme)
-       ("gtk+" ,gtk+)
-       ("gtksourceview" ,gtksourceview)
-       ("gtkspell3" ,gtkspell3)
-       ("libassuan" ,libassuan)         ; in gpgme.pc Requires
-       ("libcanberra" ,libcanberra)
-       ("libesmtp" ,libesmtp)
-       ("libical" ,libical)
-       ("libnotify" ,libnotify)
-       ("libsecret" ,libsecret)
-       ("openldap" ,openldap)
-       ("sqlite" ,sqlite)
-       ("webkitgtk" ,webkitgtk)))
+     (list cyrus-sasl
+           enchant
+           gdk-pixbuf
+           gmime
+           gnutls
+           gpgme
+           gtk+
+           gtksourceview
+           gtkspell3
+           libassuan ; in gpgme.pc Requires
+           libcanberra
+           libesmtp
+           libical
+           libnotify
+           libsecret
+           openldap
+           sqlite
+           webkitgtk))
     (native-inputs
-     `(("compface" ,compface)
-       ("glib" ,glib "bin")
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("yelp-tools" ,yelp-tools)))
+     (list compface
+           `(,glib "bin") intltool pkg-config yelp-tools))
     (home-page "https://pawsa.fedorapeople.org/balsa")
     (synopsis "E-mail client for GNOME")
     (description "Balsa is a highly configurable and robust mail client for
@@ -3860,13 +3766,9 @@ the use of a local MTA such as Sendmail.")
          "0wpfqbqjlfb9z0hafvdhkm7qw56cr9kfy6n8vb0q42dwlghpz1ff"))))
     (build-system python-build-system)
     (inputs
-     `(("notmuch" ,notmuch)
-       ("python-chardet" ,python-chardet)
-       ("python-dkimpy" ,python-dkimpy)
-       ("python-notmuch" ,python-notmuch)))
+     (list notmuch python-chardet python-dkimpy python-notmuch))
     (native-inputs
-     `(("python-freezegun" ,python-freezegun)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-freezegun python-setuptools-scm))
     (home-page "https://github.com/afewmail/afew")
     (synopsis "Initial tagging script for notmuch mail")
     (description "afew is an initial tagging script for notmuch mail.  It
@@ -3878,14 +3780,14 @@ killed threads.")
 (define-public pan
   (package
     (name "pan")
-    (version "0.146")
+    (version "0.147")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://pan.rebelbase.com/download/releases/"
                            version "/source/" name "-" version ".tar.bz2"))
        (sha256
-        (base32 "17agd27sn4a7nahvkpg0w39kv74njgdrrygs74bbvpaj8rk2hb55"))))
+        (base32 "0960siaf0r6m18kv0d8aqpf36x2xbsfcvk07kswlany7jbxrhylr"))))
     (arguments
      `(#:configure-flags '("--with-gtk3" "--with-gtkspell" "--with-gnutls"
                            "--enable-libnotify" "--enable-manual"
@@ -3900,19 +3802,17 @@ killed threads.")
                                             "/bin/gpg\"")))
              #t)))))
     (inputs
-     `(("gmime" ,gmime-2.6)
-       ("gnupg" ,gnupg)
-       ("gnutls" ,gnutls)
-       ("gtk+" ,gtk+)
-       ("gtkspell3" ,gtkspell3)
-       ("libnotify" ,libnotify)
-       ("libsecret" ,libsecret)
-       ("libxml2" ,libxml2)
-       ("zlib" ,zlib)))
+     (list gmime-2.6
+           gnupg
+           gnutls
+           gtk+
+           gtkspell3
+           libnotify
+           libsecret
+           libxml2
+           zlib))
     (native-inputs
-     `(("gettext-minimal" ,gettext-minimal)
-       ("itstool" ,itstool)
-       ("pkg-config" ,pkg-config)))
+     (list gettext-minimal itstool pkg-config))
     (build-system gnu-build-system)
     (home-page "http://pan.rebelbase.com/")
     (synopsis "Pan newsreader")
@@ -3945,9 +3845,7 @@ PGP handling, multiple servers, and secure connections.")
        (modify-phases %standard-phases
          (delete 'configure))))         ; no configure script
     (inputs
-     `(("lua" ,lua)
-       ("pcre2" ,pcre2)
-       ("openssl" ,openssl)))
+     (list lua pcre2 openssl))
     (home-page "https://github.com/lefcha/imapfilter")
     (synopsis "IMAP mail filtering utility")
     (description "IMAPFilter is a mail filtering utility.  It connects
@@ -3960,16 +3858,16 @@ servers.  The 4rev1 and 4 versions of IMAP are supported.")
 (define-public urlscan
   (package
     (name "urlscan")
-    (version "0.9.6")
+    (version "0.9.7")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "urlscan" version))
         (sha256
-         (base32 "09lxi7dhn49fpb3ij4cgrhj3qqqqs9rcxbjb7p9smw5wblrqpzga"))))
+         (base32 "0sqaplcrz0lj40x20s2mv3gkzsmawpi9h2kx0rmk342k5240il81"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-urwid" ,python-urwid)))
+     (list python-urwid))
     (home-page "https://github.com/firecat53/urlscan")
     (synopsis "View/select the URLs in an email message or file")
     (description
@@ -3997,8 +3895,7 @@ It is a replacement for the @command{urlview} program.")
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (arguments `(#:parallel-tests? #f)) ;tests are side-effect'y
     (home-page "https://github.com/verdammelt/tnef")
     (synopsis "Unpack @code{application/ms-tnef} attachments")
@@ -4008,8 +3905,8 @@ It is a replacement for the @command{urlview} program.")
     (license license:gpl2+)))
 
 (define-public mumi
-  (let ((commit "9f070bd90adc67064cd8aff4e40f303d5957ef4a")
-        (revision "5"))
+  (let ((commit "8a45281801ade7524dbdee423c28b326051719de")
+        (revision "6"))
     (package
       (name "mumi")
       (version (git-version "0.0.1" revision commit))
@@ -4021,7 +3918,7 @@ It is a replacement for the @command{urlview} program.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1ym1j3nzy8qhd1ydadccbgm0nckkmnq3vnz9qh9x8rasx7zg1ldp"))))
+                  "0p1i66j721y5hwbdy97kv4gw892nx7xrdfjrs12fn90cwkl611mp"))))
       (build-system gnu-build-system)
       (arguments
        `(#:modules ((guix build gnu-build-system)
@@ -4047,8 +3944,7 @@ It is a replacement for the @command{urlview} program.")
                    `("GUILE_LOAD_PATH" ":" prefix
                      (,scm ,(getenv "GUILE_LOAD_PATH")))
                    `("GUILE_LOAD_COMPILED_PATH" ":" prefix
-                     (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))
-                 #t))))))
+                     (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))))))))
       (inputs
        `(("guile-email" ,guile-email-latest)
          ("guile-fibers" ,guile-fibers)
@@ -4061,9 +3957,7 @@ It is a replacement for the @command{urlview} program.")
          ("guile" ,guile-3.0)
          ("mailutils" ,mailutils)))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)))
+       (list autoconf automake pkg-config))
       (home-page "https://git.elephly.net/software/mumi.git")
       (synopsis "Debbugs web interface")
       (description "Mumi is a Debbugs web interface.")
@@ -4086,9 +3980,7 @@ It is a replacement for the @command{urlview} program.")
                                        "ytnef-CVE-2021-3404.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (home-page "https://github.com/Yeraze/ytnef/")
     (synopsis "TNEF stream reader for winmail.dat files")
     (description "This package provides a TNEF stream reader library and
@@ -4113,7 +4005,7 @@ related tools to process winmail.dat files.")
           (base32 "0hxz8i70v1xgv30zjclfvmjqszn073c7i8nwmswi2lr6vd7cklvp"))))
       (build-system gnu-build-system)
       (inputs
-       `(("libgit2" ,libgit2)))
+       (list libgit2))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -4187,35 +4079,33 @@ Git and exports them in maildir format or to an MDA through a pipe.")
                 (find-files (string-append out "/bin"))))
              #t)))))
     (native-inputs
-     `(("xapian" ,xapian)
-       ;; For testing.
-       ("lsof" ,lsof)
-       ("openssl" ,openssl)))
+     (list xapian
+           ;; For testing.
+           lsof openssl))
     (inputs
-     `(("git" ,git)
-       ("perl-dbd-sqlite" ,perl-dbd-sqlite)
-       ("perl-dbi" ,perl-dbi)
-       ("perl-email-address-xs" ,perl-email-address-xs)
-       ("perl-email-mime-contenttype" ,perl-email-mime-contenttype)
-       ("perl-email-mime" ,perl-email-mime)
-       ("perl-email-simple" ,perl-email-simple)
-       ("perl-net-server" ,perl-net-server)
-       ("perl-plack-middleware-deflater" ,perl-plack-middleware-deflater)
-       ("perl-plack-middleware-reverseproxy" ,perl-plack-middleware-reverseproxy)
-       ("perl-plack" ,perl-plack)
-       ("perl-search-xapian" ,perl-search-xapian)
-       ("perl-timedate" ,perl-timedate)
-       ("perl-uri-escape" ,perl-uri-escape)
-       ("perl-inline-c" ,perl-inline-c)
-       ("perl-parse-recdescent" ,perl-parse-recdescent)
-       ("perl-linux-inotify2" ,perl-linux-inotify2)
-       ;; FIXME: Perl modules are unable to find the config file for highlight
-       ;; https://issues.guix.gnu.org/48033#4
-       ;; ("highlight" ,highlight)
-
-       ;; For testing.
-       ("perl-ipc-run" ,perl-ipc-run)
-       ("perl-xml-feed" ,perl-xml-feed)))
+     (list git
+           perl-dbd-sqlite
+           perl-dbi
+           perl-email-address-xs
+           perl-email-mime-contenttype
+           perl-email-mime
+           perl-email-simple
+           perl-net-server
+           perl-plack-middleware-deflater
+           perl-plack-middleware-reverseproxy
+           perl-plack
+           perl-search-xapian
+           perl-timedate
+           perl-uri-escape
+           perl-inline-c
+           perl-parse-recdescent
+           perl-linux-inotify2
+           ;; FIXME: Perl modules are unable to find the config file for highlight
+           ;; https://issues.guix.gnu.org/48033#4
+           ;; ("highlight" ,highlight)
+           ;; For testing.
+           perl-ipc-run
+           perl-xml-feed))
     (home-page "https://public-inbox.org/README.html")
     (synopsis "Archive mailing lists in Git repositories")
     (description
@@ -4237,17 +4127,17 @@ IMAP, Atom feeds or HTML archives.")
                 "0j9y5vdzch251s264diw9clrn88dn20bqqkwfmis9l7m8vmwasqd"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("bogofilter" ,bogofilter)
-       ("compface" ,compface)
-       ("gnupg" ,gnupg-1)
-       ("gpgme" ,gpgme)
-       ("gtk+-2.0" ,gtk+-2)
-       ("gtkspell" ,gtkspell3)
-       ("libnsl" ,libnsl)
-       ("openldap" ,openldap)
-       ("openssl" ,openssl)))
+     (list bogofilter
+           compface
+           gnupg-1
+           gpgme
+           gtk+-2
+           gtkspell3
+           libnsl
+           openldap
+           openssl))
     (home-page "https://sylpheed.sraoss.jp/en/")
     (synopsis "Lightweight GTK+ email client")
     (description
@@ -4318,12 +4208,11 @@ and Conformance}
            (lambda _
              (invoke "python" "test.py"))))))
     (propagated-inputs
-     `(("python-dnspython" ,python-dnspython)))
+     (list python-dnspython))
     (native-inputs
-     `(("python-authres" ,python-authres)
-       ("python-pynacl" ,python-pynacl)))
+     (list python-authres python-pynacl))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (home-page "https://launchpad.net/dkimpy")
     (synopsis "DKIM (DomainKeys Identified Mail)")
     (description "Python module that implements @dfn{DKIM} (DomainKeys
@@ -4346,10 +4235,8 @@ the RFC 8617 Authenticated Received Chain (ARC) protocol.")
           "14k6i72k5f8dyvps8vc0aq0cczc8lvqpgjfjzsy6qqychjvjcmwk"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-authres" ,python-authres)
-       ("python-dkimpy" ,python-dkimpy)
-       ("python-dnspython" ,python-dnspython)
-       ("python-publicsuffix2" ,python-publicsuffix2)))
+     (list python-authres python-dkimpy python-dnspython
+           python-publicsuffix2))
     (home-page "https://github.com/ValiMail/authentication-headers")
     (synopsis "Library wrapping email authentication header verification and generation")
     (description
@@ -4387,10 +4274,9 @@ DKIM and ARC sign messages and output the corresponding signature headers.")
            (lambda _
              (invoke "python" "-m" "nose2" "-v"))))))
     (native-inputs
-     `(("python-flufl-testing" ,python-flufl-testing)
-       ("python-nose2" ,python-nose2)))
+     (list python-flufl-testing python-nose2))
     (propagated-inputs
-     `(("python-atpublic" ,python-atpublic)))
+     (list python-atpublic))
     (home-page "https://aiosmtpd.readthedocs.io/")
     (synopsis "Asyncio based SMTP server")
     (description
@@ -4434,19 +4320,19 @@ on RFC 3501 and original @code{imaplib} module.")
     (arguments
      '(#:configure-flags '("-DENABLE_LUAJIT=ON")))
     (inputs
-     `(("openssl" ,openssl)
-       ("glib" ,glib)
-       ("ragel" ,ragel)
-       ("luajit" ,luajit)
-       ("sqlite" ,sqlite)
-       ("file" ,file)
-       ("icu4c" ,icu4c)
-       ("pcre" ,pcre)
-       ("zlib" ,zlib)
-       ("perl" ,perl)
-       ("libsodium" ,libsodium)))
+     (list openssl
+           glib
+           ragel
+           luajit
+           sqlite
+           file
+           icu4c
+           pcre
+           zlib
+           perl
+           libsodium))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Spam filtering system")
     (description "Rspamd is an advanced spam filtering system that
 allows evaluation of messages by a number of rules including regular
@@ -4488,12 +4374,9 @@ undelete email messages from Outlook Express .dbx files.")
          "0hhbbb8ddsgjhv9y1xd8s9ixlhdnjmhw12v06jwx4j6vpgp1na9x"))))
     (build-system gnu-build-system)
     (inputs
-     `(("boost" ,boost)
-       ("libgsf" ,libgsf)
-       ("python" ,python)
-       ("zlib" ,zlib)))
+     (list boost libgsf python zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.five-ten-sg.com/libpst/")
     (synopsis "")
     (description "The Libpst utilities include @code{readpst} which can
@@ -4502,6 +4385,41 @@ which can convert the contacts to @code{.ldif} format for import into LDAP
 databases, and other tools to process Outlook email archives.")
     (license license:gpl2+)))
 
+(define-public neatmail
+  (package
+    (name "neatmail")
+    (version "02")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/aligrudi/neatmail")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "00d453d57d3v6ja2gpmjd8vch804c72g38pc1nr5shmz3hkgd52d"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ;no tests
+       #:make-flags `((string-append "CC=" ,(cc-for-target)))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ;no configure script
+         (replace 'install              ;no install target in the Makefile
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out  (assoc-ref outputs "out"))
+                    (bin  (string-append out "/bin")))
+               (rename-file "mail" "neatmail")
+               (install-file "neatmail" bin)))))))
+    (home-page "https://litcave.rudi.ir/")
+    (synopsis "Text-mode mail client")
+    (description
+     "@command{neatmail} is a noninteractive mail client.  It generates
+a listing of the messages in a mailbox in mbox format and executes a list of
+ex-like commands on it.")
+    (license license:isc)))
+
 (define-public crm114
   (package
     (name "crm114")
@@ -4566,7 +4484,7 @@ databases, and other tools to process Outlook email archives.")
          (add-after 'emacs-build 'validate-compiled-autoloads
            (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
     (inputs
-     `(("tre" ,tre)))
+     (list tre))
     (native-inputs
      `(("emacs" ,emacs-minimal)))
     (home-page "http://crm114.sourceforge.net/")
@@ -4576,6 +4494,83 @@ streams, data files or other data streams, and to sort, filter, or alter the
 incoming files or data streams according to the user's wildest desires.
 Criteria for categorization of data can be via a host of methods, including
 regexes, approximate regexes, a Hidden Markov Model, Orthogonal Sparse
-Bigrams, WINNOW, Correllation, KNN/Hyperspace, or Bit Entropy (or by other
+Bigrams, WINNOW, Correlation, KNN/Hyperspace, or Bit Entropy (or by other
 means--it's all programmable).")
     (license license:gpl3)))
+
+(define-public rss2email
+  (package
+    (name "rss2email")
+    (version "3.13.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/rss2email/rss2email")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0g1yr3v3ibdh2jqil64fbdbplx5m2yzxr893fqfkwcc5c7fbwl4d"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (with-directory-excursion "test"
+                 ;; Skip networking tests
+                 (substitute* "test.py"
+                   (("( *)class (:?TestSend|TestFetch).*" match indent)
+                    (string-append indent "@unittest.skip(\"Networking stuff skipped\")\n"
+                                   indent match)))
+                 (invoke "python" "-m" "unittest"))))))))
+    (inputs
+     (list python-feedparser python-html2text))
+    (home-page "https://github.com/rss2email/rss2email")
+    (synopsis "Converts RSS/Atom newsfeeds to email")
+    (description "The RSS2email program (@command{r2e}) fetches RSS/Atom news
+feeds, converts them into emails, and sends them.")
+    ;; GPL version 2 or 3.  NOT 2+.
+    (license (list license:gpl2
+                   license:gpl3))))
+
+(define-public sendgmail
+  (let ((commit "e3229155a4037267ce40f1a3a681f53221aa4d8d")
+        (revision "1"))
+    (package
+      (name "sendgmail")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/google/gmail-oauth2-tools")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (patches (search-patches
+                   "sendgmail-remove-domain-restriction.patch"
+                   "sendgmail-accept-ignored-gsuite-flag.patch"))
+         (sha256
+          (base32
+           "1cxpkiaajhq1gjsg47r2b5xgck0r63pvkyrkm7af8c8dw7fyn64f"))))
+      (inputs
+       (list go-golang-org-x-oauth2 go-cloud-google-com-go-compute-metadata))
+      (build-system go-build-system)
+      (arguments
+       '(#:unpack-path "github.com/google/gmail-oauth2-tools"
+         #:import-path "github.com/google/gmail-oauth2-tools/go/sendgmail"))
+      (home-page
+       "https://github.com/google/gmail-oauth2-tools/tree/master/go/sendgmail")
+      (synopsis
+       "Sendmail-compatible tool for using Gmail with @code{git send-email}")
+      (description
+       "The @command{sendgmail} command provides a minimal sendmail-compatible
+front-end that connects to Gmail using OAuth2.  It is specifically designed
+for use with @code{git send-email}.  The command needs a Gmail API key to
+function.
+
+Guix's version of @command{sendgmail} has been patched for compatibility with
+all known forks, including support for non-@code{@@gmail.com} email
+addresses.")
+      (license license:asl2.0))))
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 2d7a97488d..4ea97368a9 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2018, 2019, 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -86,6 +87,12 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
                   "--enable-static-nss"
                   ,flags))))
 
+      ;; Make sure to build glibc with the same compiler version as the rest
+      ;; of the bootstrap.  Otherwise it fails to statically link on aarch64.
+      (native-inputs
+       `(("gcc" ,gcc-7)
+         ,@(package-native-inputs base)))
+
       ;; Remove the 'debug' output to allow bit-reproducible builds (when the
       ;; 'debug' output is used, ELF files end up with a .gnu_debuglink, which
       ;; includes a CRC of the corresponding debugging symbols; those symbols
@@ -206,8 +213,17 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
                                   (("^xz_LDADD =")
                                    "xz_LDADD = -all-static"))
                                 #t)))))))
-        (gawk (package (inherit gawk)
-                (source (origin (inherit (package-source gawk))
+        (gawk (package
+                (inherit gawk)
+                (source (origin
+                          (inherit (package-source gawk))
+                          (modules '((guix build utils)))
+                          (snippet
+                           ;; Do not build 'getopt.c' since that leads to a
+                           ;; link failure due to duplicate symbols with
+                           ;; 'libc.a'.
+                           '(substitute* "support/Makefile.in"
+                              (("getopt\\.\\$\\(OBJEXT\\)") "")))
                           (patches (cons (search-patch "gawk-shell.patch")
                                          (origin-patches
                                           (package-source gawk))))))
@@ -216,7 +232,9 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
                    ;; plug-in mechanism just fail on static builds:
                    ;;
                    ;; ./fts.awk:1: error: can't open shared library `filefuncs' for reading (No such file or directory)
-                   #:tests? #f
+                   ;;
+                   ;; Therefore disable extensions support.
+                   #:configure-flags (list "--disable-extensions")
 
                    ,@(substitute-keyword-arguments (package-arguments gawk)
                        ((#:phases phases)
@@ -263,19 +281,9 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
                        (delete 'fix-egrep-and-fgrep)))))))
         (finalize (compose static-package
                            package-with-relocatable-glibc)))
-    `(,@(map (match-lambda
-              ((name package)
-               (list name (finalize package))))
-             `(("tar" ,tar)
-               ("gzip" ,gzip)
-               ("bzip2" ,bzip2)
-               ("xz" ,xz)
-               ("patch" ,patch)
-               ("coreutils" ,coreutils)
-               ("sed" ,sed)
-               ("grep" ,grep)
-               ("gawk" ,gawk)))
-      ("bash" ,static-bash))))
+    (append (map finalize
+                 (list tar gzip bzip2 xz patch coreutils sed grep gawk))
+        (list static-bash))))
 
 (define %static-binaries
   (package
@@ -320,7 +328,10 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
             ;; same name as the input.
             (for-each (match-lambda
                        ((name . dir)
-                        (let ((source (string-append dir "/bin/" name)))
+                        (let* ((name   (if (string-prefix? "bash" name)
+                                           "bash"
+                                           name))
+                               (source (string-append dir "/bin/" name)))
                           (format #t "copying ~s...~%" source)
                           (copy-file source
                                      (string-append bin "/" name)))))
@@ -365,7 +376,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
                 (out (assoc-ref %outputs "out")))
            (copy-linux-headers out in)
            #t))))
-    (inputs `(("linux-libre-headers" ,linux-libre-headers)))))
+    (inputs (list linux-libre-headers))))
 
 (define %binutils-static
   ;; Statically-linked Binutils.
@@ -394,32 +405,31 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
 
 (define %binutils-static-stripped
   ;; The subset of Binutils that we need.
-  (package (inherit %binutils-static)
+  (package
+    (inherit %binutils-static)
     (name (string-append (package-name %binutils-static) "-stripped"))
     (build-system trivial-build-system)
     (outputs '("out"))
     (arguments
-     `(#:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils))
-
-         (setvbuf (current-output-port)
-                  (cond-expand (guile-2.0 _IOLBF) (else 'line)))
-         (let* ((in  (assoc-ref %build-inputs "binutils"))
-                (out (assoc-ref %outputs "out"))
-                (bin (string-append out "/bin")))
-           (mkdir-p bin)
-           (for-each (lambda (file)
-                       (let ((target (string-append bin "/" file)))
-                         (format #t "copying `~a'...~%" file)
-                         (copy-file (string-append in "/bin/" file)
-                                    target)
-                         (remove-store-references target)))
-                     '("ar" "as" "ld" "nm"  "objcopy" "objdump"
-                       "ranlib" "readelf" "size" "strings" "strip"))
-           #t))))
-    (inputs `(("binutils" ,%binutils-static)))))
+     (list #:modules '((guix build utils))
+           #:builder
+           #~(begin
+               (use-modules (guix build utils))
+
+               (setvbuf (current-output-port)
+                        (cond-expand (guile-2.0 _IOLBF) (else 'line)))
+               (let* ((in  #$%binutils-static)
+                      (out #$output)
+                      (bin (string-append out "/bin")))
+                 (mkdir-p bin)
+                 (for-each (lambda (file)
+                             (let ((target (string-append bin "/" file)))
+                               (format #t "copying `~a'...~%" file)
+                               (copy-file (string-append in "/bin/" file)
+                                          target)
+                               (remove-store-references target)))
+                           '("ar" "as" "ld" "nm"  "objcopy" "objdump"
+                             "ranlib" "readelf" "size" "strings" "strip"))))))))
 
 (define (%glibc-stripped)
   ;; GNU libc's essential shared libraries, dynamic linker, and headers,
@@ -532,56 +542,54 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
 
 (define %gcc-stripped
   ;; The subset of GCC files needed for bootstrap.
-  (package (inherit gcc-7)
+  (package
+    (inherit gcc-7)
     (name "gcc-stripped")
     (build-system trivial-build-system)
     (source #f)
     (outputs '("out"))                            ;only one output
     (arguments
-     `(#:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (srfi srfi-1)
-                      (srfi srfi-26)
-                      (guix build utils))
-
-         (setvbuf (current-output-port)
-                  (cond-expand (guile-2.0 _IOLBF) (else 'line)))
-         (let* ((out        (assoc-ref %outputs "out"))
-                (bindir     (string-append out "/bin"))
-                (libdir     (string-append out "/lib"))
-                (includedir (string-append out "/include"))
-                (libexecdir (string-append out "/libexec"))
-                (gcc        (assoc-ref %build-inputs "gcc")))
-           (copy-recursively (string-append gcc "/bin") bindir)
-           (for-each remove-store-references
-                     (find-files bindir ".*"))
-
-           (copy-recursively (string-append gcc "/lib") libdir)
-           (for-each remove-store-references
-                     (remove (cut string-suffix? ".h" <>)
-                             (find-files libdir ".*")))
-
-           (copy-recursively (string-append gcc "/libexec")
-                             libexecdir)
-           (for-each remove-store-references
-                     (find-files libexecdir ".*"))
-
-           ;; Starting from GCC 4.8, helper programs built natively
-           ;; (‘genchecksum’, ‘gcc-nm’, etc.) rely on C++ headers.
-           (copy-recursively (string-append gcc "/include/c++")
-                             (string-append includedir "/c++"))
-
-           ;; For native builds, check whether the binaries actually work.
-           ,@(if (%current-target-system)
-                 '()
-                 '((for-each (lambda (prog)
-                               (invoke (string-append gcc "/bin/" prog)
-                                       "--version"))
-                             '("gcc" "g++" "cpp"))))
+     (list #:modules '((guix build utils))
+           #:builder
+           #~(begin
+               (use-modules (srfi srfi-1)
+                            (srfi srfi-26)
+                            (guix build utils))
 
-           #t))))
-    (inputs `(("gcc" ,%gcc-static)))))
+               (setvbuf (current-output-port)
+                        (cond-expand (guile-2.0 _IOLBF) (else 'line)))
+               (let* ((out        #$output)
+                      (bindir     (string-append out "/bin"))
+                      (libdir     (string-append out "/lib"))
+                      (includedir (string-append out "/include"))
+                      (libexecdir (string-append out "/libexec"))
+                      (gcc        #$%gcc-static))
+                 (copy-recursively (string-append gcc "/bin") bindir)
+                 (for-each remove-store-references
+                           (find-files bindir ".*"))
+
+                 (copy-recursively (string-append gcc "/lib") libdir)
+                 (for-each remove-store-references
+                           (remove (cut string-suffix? ".h" <>)
+                                   (find-files libdir ".*")))
+
+                 (copy-recursively (string-append gcc "/libexec")
+                                   libexecdir)
+                 (for-each remove-store-references
+                           (find-files libexecdir ".*"))
+
+                 ;; Starting from GCC 4.8, helper programs built natively
+                 ;; (‘genchecksum’, ‘gcc-nm’, etc.) rely on C++ headers.
+                 (copy-recursively (string-append gcc "/include/c++")
+                                   (string-append includedir "/c++"))
+
+                 ;; For native builds, check whether the binaries actually work.
+                 #$@(if (%current-target-system)
+                        '()
+                        '((for-each (lambda (prog)
+                                      (invoke (string-append gcc "/bin/" prog)
+                                              "--version"))
+                                    '("gcc" "g++" "cpp"))))))))))
 
 ;; Two packages: first build static, bare minimum content.
 (define %mescc-tools-static
@@ -604,23 +612,21 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
     (name (string-append (package-name %mescc-tools-static) "-stripped"))
     (build-system trivial-build-system)
     (arguments
-     `(#:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils))
-         (let* ((in  (assoc-ref %build-inputs "mescc-tools"))
-                (out (assoc-ref %outputs "out"))
-                (bin (string-append out "/bin")))
-           (mkdir-p bin)
-           (for-each (lambda (file)
-                       (let ((target (string-append bin "/" file)))
-                         (format #t "copying `~a'...~%" file)
-                         (copy-file (string-append in "/bin/" file)
-                                    target)
-                         (remove-store-references target)))
-                     '( "M1" "blood-elf" "hex2"))
-           #t))))
-    (inputs `(("mescc-tools" ,%mescc-tools-static)))))
+     (list #:modules '((guix build utils))
+           #:builder
+           #~(begin
+               (use-modules (guix build utils))
+               (let* ((in  #$%mescc-tools-static)
+                      (out #$output)
+                      (bin (string-append out "/bin")))
+                 (mkdir-p bin)
+                 (for-each (lambda (file)
+                             (let ((target (string-append bin "/" file)))
+                               (format #t "copying `~a'...~%" file)
+                               (copy-file (string-append in "/bin/" file)
+                                          target)
+                               (remove-store-references target)))
+                           '( "M1" "blood-elf" "hex2"))))))))
 
 ;; Two packages: first build static, bare minimum content.
 (define-public %mes-minimal
@@ -628,8 +634,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
   (package
     (inherit mes)
     (name "mes-minimal")
-    (native-inputs
-     `(("guile" ,guile-3.0)))
+    (native-inputs (list guile-3.0))
     (arguments
      `(#:system "i686-linux"
        #:strip-binaries? #f
@@ -657,22 +662,20 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
     (name (string-append (package-name %mes-minimal) "-stripped"))
     (build-system trivial-build-system)
     (arguments
-     `(#:modules ((guix build utils))
-       #:allowed-references ()
-       #:builder
-       (begin
-         (use-modules (guix build utils))
-         (let ((in  (assoc-ref %build-inputs "mes"))
-               (out (assoc-ref %outputs "out")))
-
-           (copy-recursively in out)
-           (for-each (lambda (dir)
-                       (for-each remove-store-references
-                                 (find-files (string-append out "/" dir)
-                                             ".*")))
-                     '("bin" "share/mes"))
-           #t))))
-    (inputs `(("mes" ,%mes-minimal)))))
+     (list #:modules '((guix build utils))
+           #:allowed-references '()
+           #:builder
+           #~(begin
+               (use-modules (guix build utils))
+               (let ((in  #$%mes-minimal)
+                     (out #$output))
+
+                 (copy-recursively in out)
+                 (for-each (lambda (dir)
+                             (for-each remove-store-references
+                                       (find-files (string-append out "/" dir)
+                                                   ".*")))
+                           '("bin" "share/mes"))))))))
 
 (define* (make-guile-static guile patches)
   (package-with-relocatable-glibc
@@ -690,21 +693,22 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
       (outputs (delete "debug" (package-outputs guile)))
 
       (inputs
-       `(("libunistring:static" ,libunistring "static")
-         ,@(package-inputs guile)))
+       (modify-inputs (package-inputs guile)
+         (prepend `(,libunistring "static"))))
 
       (propagated-inputs
-       `(("bdw-gc" ,libgc/static-libs)
-         ,@(alist-delete "bdw-gc"
-                         (package-propagated-inputs guile))))
+       (modify-inputs (package-propagated-inputs guile)
+         (replace "bdw-gc" libgc/static-libs)))
       (arguments
        (substitute-keyword-arguments (package-arguments guile)
          ((#:configure-flags flags '())
           ;; When `configure' checks for ltdl availability, it
           ;; doesn't try to link using libtool, and thus fails
           ;; because of a missing -ldl.  Work around that.
-          ''("LDFLAGS=-ldl"
-             "--enable-mini-gmp"))
+          `(list "LDFLAGS=-ldl" "--enable-mini-gmp"
+                 ,@(if (hurd-target?)
+                       '("--disable-jit")
+                       '())))
          ((#:phases phases '%standard-phases)
           `(modify-phases ,phases
 
@@ -751,44 +755,41 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
     (build-system trivial-build-system)
     (arguments
      ;; The end result should depend on nothing but itself.
-     `(#:allowed-references ("out")
-       #:modules ((guix build utils))
-       #:builder
-       (let ((version ,(version-major+minor (package-version static-guile))))
-         (use-modules (guix build utils))
-
-         (let* ((in     (assoc-ref %build-inputs "guile"))
-                (out    (assoc-ref %outputs "out"))
-                (guile1 (string-append in "/bin/guile"))
-                (guile2 (string-append out "/bin/guile")))
-           (mkdir-p (string-append out "/share/guile/" version))
-           (copy-recursively (string-append in "/share/guile/" version)
-                             (string-append out "/share/guile/" version))
-
-           (mkdir-p (string-append out "/lib/guile/" version "/ccache"))
-           (copy-recursively (string-append in "/lib/guile/" version "/ccache")
-                             (string-append out "/lib/guile/" version "/ccache"))
-
-           (mkdir (string-append out "/bin"))
-           (copy-file guile1 guile2)
-
-           ;; Verify that the relocated Guile works.
-           ,@(if (%current-target-system)
-                 '()
-                 '((invoke guile2 "--version")))
-
-           ;; Strip store references.
-           (remove-store-references guile2)
-
-           ;; Verify that the stripped Guile works.  If it aborts, it could be
-           ;; that it tries to open iconv descriptors and fails because libc's
-           ;; iconv data isn't available (see `guile-default-utf8.patch'.)
-           ,@(if (%current-target-system)
-                 '()
-                 '((invoke guile2 "--version")))
-
-           #t))))
-    (inputs `(("guile" ,static-guile)))
+     (list #:allowed-references '("out")
+           #:modules '((guix build utils))
+           #:builder
+           #~(let ((version #$(version-major+minor (package-version static-guile))))
+               (use-modules (guix build utils))
+
+               (let* ((in     #$static-guile)
+                      (out    #$output)
+                      (guile1 (string-append in "/bin/guile"))
+                      (guile2 (string-append out "/bin/guile")))
+                 (mkdir-p (string-append out "/share/guile/" version))
+                 (copy-recursively (string-append in "/share/guile/" version)
+                                   (string-append out "/share/guile/" version))
+
+                 (mkdir-p (string-append out "/lib/guile/" version "/ccache"))
+                 (copy-recursively (string-append in "/lib/guile/" version "/ccache")
+                                   (string-append out "/lib/guile/" version "/ccache"))
+
+                 (mkdir (string-append out "/bin"))
+                 (copy-file guile1 guile2)
+
+                 ;; Verify that the relocated Guile works.
+                 #$@(if (%current-target-system)
+                        '()
+                        '((invoke guile2 "--version")))
+
+                 ;; Strip store references.
+                 (remove-store-references guile2)
+
+                 ;; Verify that the stripped Guile works.  If it aborts, it could be
+                 ;; that it tries to open iconv descriptors and fails because libc's
+                 ;; iconv data isn't available (see `guile-default-utf8.patch'.)
+                 #$@(if (%current-target-system)
+                        '()
+                        '((invoke guile2 "--version")))))))
     (outputs '("out"))
     (synopsis "Minimal statically-linked and relocatable Guile")))
 
@@ -803,37 +804,35 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
 
 (define (tarball-package pkg)
   "Return a package containing a tarball of PKG."
-  (package (inherit pkg)
+  (package
+    (inherit pkg)
     (name (string-append (package-name pkg) "-tarball"))
     (build-system trivial-build-system)
-    (native-inputs `(("tar" ,tar)
-                     ("xz" ,xz)))
-    (inputs `(("input" ,pkg)))
+    (native-inputs (list tar xz))
     (arguments
-     (let ((name    (package-name pkg))
-           (version (package-version pkg)))
-       `(#:modules ((guix build utils))
-         #:builder
-         (begin
-           (use-modules (guix build utils))
-           (let ((out   (assoc-ref %outputs "out"))
-                 (input (assoc-ref %build-inputs "input"))
-                 (tar   (assoc-ref %build-inputs "tar"))
-                 (xz    (assoc-ref %build-inputs "xz")))
-             (mkdir out)
-             (set-path-environment-variable "PATH" '("bin") (list tar xz))
-             (with-directory-excursion input
-               (invoke "tar" "cJvf"
-                       (string-append out "/"
-                                      ,name "-" ,version
-                                      "-"
-                                      ,(or (%current-target-system)
-                                           (%current-system))
-                                      ".tar.xz")
-                       "."
-                       ;; avoid non-determinism in the archive
-                       "--sort=name" "--mtime=@0"
-                       "--owner=root:0" "--group=root:0")))))))))
+     (list #:modules '((guix build utils))
+           #:builder
+           #~(begin
+               (use-modules (guix build utils))
+               (let ((out   #$output)
+                     (input #$pkg)
+                     (tar   #+(this-package-native-input "tar"))
+                     (xz    #+(this-package-native-input "xz")))
+                 (mkdir out)
+                 (set-path-environment-variable "PATH" '("bin") (list tar xz))
+                 (with-directory-excursion input
+                   (invoke "tar" "cJvf"
+                           (string-append out "/"
+                                          #$(package-name pkg) "-"
+                                          #$(package-version pkg)
+                                          "-"
+                                          #$(or (%current-target-system)
+                                                (%current-system))
+                                          ".tar.xz")
+                           "."
+                           ;; avoid non-determinism in the archive
+                           "--sort=name" "--mtime=@0"
+                           "--owner=root:0" "--group=root:0"))))))))
 
 (define %bootstrap-binaries-tarball
   ;; A tarball with the statically-linked bootstrap binaries.
@@ -896,17 +895,18 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
                                         (symlink file (basename file)))
                                       (find-files directory "\\.tar\\."))))
                          %build-inputs))))
-    (inputs `(("guile-tarball" ,%guile-bootstrap-tarball)
-              ,@(match (or (%current-target-system) (%current-system))
-                  ((or "i686-linux" "x86_64-linux")
-                   `(("bootstrap-mescc-tools" ,%mescc-tools-bootstrap-tarball)
-                     ("bootstrap-mes" ,%mes-bootstrap-tarball)
-                     ("bootstrap-linux-libre-headers"
-                      ,%linux-libre-headers-bootstrap-tarball)))
-                  (_ `(("gcc-tarball" ,%gcc-bootstrap-tarball)
-                       ("binutils-tarball" ,%binutils-bootstrap-tarball)
-                       ("glibc-tarball" ,(%glibc-bootstrap-tarball))
-                       ("coreutils&co-tarball" ,%bootstrap-binaries-tarball))))))
+    (inputs
+     (append (list %guile-bootstrap-tarball)
+         (match (or (%current-target-system) (%current-system))
+           ((or "i686-linux" "x86_64-linux")
+            (list %mescc-tools-bootstrap-tarball
+                  %mes-bootstrap-tarball
+                  %linux-libre-headers-bootstrap-tarball))
+           (_
+            (list %gcc-bootstrap-tarball
+                  %binutils-bootstrap-tarball
+                  (%glibc-bootstrap-tarball)
+                  %bootstrap-binaries-tarball)))))
     (synopsis "Tarballs containing all the bootstrap binaries")
     (description synopsis)
     (home-page #f)
diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
index b4431e5b08..53ffc4ac62 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -8,6 +8,8 @@
 ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -51,10 +53,9 @@
     (source
      (origin
        (method url-fetch)
-       (uri
-        (string-append "https://sourceforge.net/projects/xmltoman/files/"
-                       "xmltoman/xmltoman-" version ".tar.gz/xmltoman-"
-                       version ".tar.gz/download"))
+       (uri (string-append "mirror://sourceforge/xmltoman/xmltoman/"
+                           "xmltoman-" version ".tar.gz/"
+                           "xmltoman-" version ".tar.gz"))
        (sha256
         (base32 "1c0lvzr7kdy63wbn1jv6s126ds7add3pxqb0vlxd3v5a2sir91wl"))))
     (build-system gnu-build-system)
@@ -68,8 +69,7 @@
        (modify-phases %standard-phases
          (delete 'configure))))
     (propagated-inputs
-     `(("perl" ,perl)
-       ("perl-xml-parser" ,perl-xml-parser)))
+     (list perl perl-xml-parser))
     (synopsis "XML to Man converter")
     (description "XMLtoMan and XMLMantoHTML are two small scripts to convert xml
 to man pages in groff format or html.  It features the usual man page items such
@@ -199,18 +199,16 @@ a flexible and convenient way.")
                   (guix build utils)
                   (srfi srfi-1))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("flex" ,flex)
-       ("groff" ,groff)))   ;needed at build time (troff, grops, soelim, etc.)
+     (list pkg-config flex groff))   ;needed at build time (troff, grops, soelim, etc.)
     (inputs
-     `(("gdbm" ,gdbm)
-       ("groff-minimal" ,groff-minimal)
-       ("less" ,less)
-       ("libpipeline" ,libpipeline)
-       ;; FIXME: 4.8 and later can use libseccomp, but it causes test
-       ;; failures in the build chroot.
-       ;;("libseccomp" ,libseccomp)
-       ("util-linux" ,util-linux)))
+     (list gdbm
+           groff-minimal
+           less
+           libpipeline
+           ;; FIXME: 4.8 and later can use libseccomp, but it causes test
+           ;; failures in the build chroot.
+           ;;("libseccomp" ,libseccomp)
+           util-linux))
     (native-search-paths
      (list (search-path-specification
             (variable "MANPATH")
@@ -226,14 +224,14 @@ the traditional flat-text whatis databases.")
 (define-public mandoc
   (package
     (name "mandoc")
-    (version "1.14.5")
+    (version "1.14.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://mandoc.bsd.lv/snapshots/mandoc-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1xyqllxpjj1kimlipx11pzyywf5c25i4wmv0lqm7ph3gnlnb86c2"))))
+                "174x2x9ws47b14lm339j6rzm7mxy1j3qhh484khscw0yy1qdbw4b"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "regress"
@@ -253,8 +251,8 @@ the traditional flat-text whatis databases.")
                         (("^PREFIX=.*")
                          (string-append "PREFIX=" (assoc-ref outputs "out")
                                         "\n"))))))))
-    (native-inputs `(("perl" ,perl)))             ;used to run tests
-    (inputs `(("zlib" ,zlib)))
+    (native-inputs (list perl))             ;used to run tests
+    (inputs (list zlib))
     (native-search-paths
      (list (search-path-specification
             (variable "MANPATH")
@@ -336,7 +334,9 @@ Linux kernel and C library interfaces employed by user-space programs.")
                        #t)))))
     (inputs
      `(("perl" ,perl)
-       ("perl-gettext" ,perl-gettext)))
+       ,@(if (%current-target-system)
+             '()
+             `(("perl-gettext" ,perl-gettext)))))
     (native-inputs
      `(("perl" ,perl)
        ("gettext" ,gettext-minimal)))
@@ -396,7 +396,7 @@ in C99.")
        #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
        #:phases (modify-phases %standard-phases (delete 'configure))))
     (inputs
-     `(("gawk" ,gawk)))
+     (list gawk))
     (home-page "https://github.com/mvertes/txt2man")
     (synopsis "Convert text to man page")
     (description "Txt2man converts flat ASCII text to man page format.")
diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm
index 368976bfde..cee3207ee5 100644
--- a/gnu/packages/markup.scm
+++ b/gnu/packages/markup.scm
@@ -7,6 +7,8 @@
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 EuAndreh <eu@euandre.org>
 ;;; Copyright © 2021 Noisytoot <noisytoot@disroot.org>
+;;; Copyright © 2021 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,7 +26,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages markup)
-  #:use-module (guix licenses)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix packages)
@@ -34,6 +36,7 @@
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (guix utils)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages)
   #:use-module (gnu packages perl)
@@ -67,7 +70,7 @@
     (description "Hoedown is a standards compliant, fast, secure markdown
 processing library written in C.")
     (home-page "https://github.com/hoedown/hoedown")
-    (license expat)))
+    (license license:expat)))
 
 (define-public markdown
   (package
@@ -90,8 +93,7 @@ processing library written in C.")
          (let ((source (assoc-ref %build-inputs "source"))
                (out    (assoc-ref %outputs "out"))
                (perlbd (string-append (assoc-ref %build-inputs "perl") "/bin"))
-               (unzip  (string-append (assoc-ref %build-inputs "unzip")
-                                      "/bin/unzip")))
+               (unzip  (search-input-file %build-inputs "/bin/unzip")))
            (mkdir-p out)
            (with-directory-excursion out
              (invoke unzip source)
@@ -103,16 +105,46 @@ processing library written in C.")
              (patch-shebang "bin/markdown" (list perlbd))
              (delete-file-recursively "Markdown_1.0.1"))
            #t))))
-    (native-inputs `(("unzip" ,unzip)))
-    (inputs `(("perl" ,perl)))
+    (native-inputs (list unzip))
+    (inputs (list perl))
     (home-page "http://daringfireball.net/projects/markdown")
     (synopsis "Text-to-HTML conversion tool")
     (description
      "Markdown is a text-to-HTML conversion tool for web writers.  It allows
 you to write using an easy-to-read, easy-to-write plain text format, then
 convert it to structurally valid XHTML (or HTML).")
-    (license (non-copyleft "file://License.text"
-                           "See License.text in the distribution."))))
+    (license (license:non-copyleft "file://License.text"
+                                   "See License.text in the distribution."))))
+
+(define-public lowdown
+  (package
+    (name "lowdown")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://kristaps.bsd.lv/lowdown/snapshots/lowdown-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "15v2kk4ffqw3n6y6n9plch4qcib3ynnhw0ih8wn2v9qgn4jssp5p"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "regress"
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (invoke "./configure"
+                       (string-append "PREFIX=" out)
+                       (string-append "MANDIR=" out "/share/man"))))))))
+    (native-inputs
+     (list which))
+    (home-page "https://kristaps.bsd.lv/lowdown/")
+    (synopsis "Simple Markdown translator")
+    (description "Lowdown is a Markdown translator producing HTML5,
+roff documents in the ms and man formats, LaTeX, gemini, and terminal output.")
+    (license license:isc)))
 
 (define-public discount
   (package
@@ -152,13 +184,13 @@ convert it to structurally valid XHTML (or HTML).")
                        (string-append "--prefix=" out)
                        "--shared")))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Markdown processing library, written in C")
     (description
      "Discount is a markdown implementation, written in C.  It provides a
 @command{markdown} command, and a library.")
     (home-page "https://www.pell.portland.or.us/~orc/Code/discount/")
-    (license bsd-3)))
+    (license license:bsd-3)))
 
 (define-public perl-text-markdown-discount
   (package
@@ -190,7 +222,7 @@ convert it to structurally valid XHTML (or HTML).")
                       "/lib")))
              #t)))))
     (inputs
-     `(("discount" ,discount)))
+     (list discount))
     (home-page
      "https://metacpan.org/release/Text-Markdown-Discount")
     (synopsis
@@ -203,7 +235,7 @@ implementation.
   use Text::Markdown::Discount;
   my $html = markdown($text)
 @end example")
-    (license perl-license)))
+    (license license:perl-license)))
 
 (define-public cmark
   (package
@@ -230,7 +262,7 @@ implementation.
     (build-system cmake-build-system)
     (arguments
      '(#:test-target "test"))
-    (native-inputs `(("python" ,python)))
+    (native-inputs (list python))
     (synopsis "CommonMark Markdown reference implementation")
     (description "CommonMark is a strongly defined, highly compatible
 specification of Markdown.  cmark is the C reference implementation of
@@ -243,7 +275,7 @@ for parsing and rendering CommonMark.")
     ;; cmark is distributed with a BSD-2 license, but some components are Expat
     ;; licensed. The CommonMark specification is Creative Commons CC-BY-SA 4.0
     ;; licensed. See 'COPYING' in the source distribution for more information.
-    (license (list bsd-2 expat cc-by-sa4.0))))
+    (license (list license:bsd-2 license:expat license:cc-by-sa4.0))))
 
 (define-public smu
   (package
@@ -279,7 +311,7 @@ amount of indents it scales just great.
 Smu was started as a rewrite of Markdown but became something more
 lightweight and consistent.  The biggest difference between Markdown
 and smu is that smu doesn't support reference style links.")
-    (license x11)))
+    (license license:x11)))
 
 (define-public md4c
   (package
@@ -301,7 +333,7 @@ and smu is that smu doesn't support reference style links.")
     (description "MD4C is a C Markdown parser with a
 SAX-like interface.  It is compliant to the CommonMark specification,
 with a few extensions.")
-    (license expat)))
+    (license license:expat)))
 
 (define-public python-mistletoe
   (package
@@ -323,4 +355,4 @@ parser that supports definitions of custom tokens.
 Parsing Markdown into an abstract syntax tree also allows @code{mistletoe} to
 swap out renderers for different output formats, without touching any of the
 core components.")
-    (license expat)))
+    (license license:expat)))
diff --git a/gnu/packages/mastodon.scm b/gnu/packages/mastodon.scm
index 31589909bf..8a8e2e7786 100644
--- a/gnu/packages/mastodon.scm
+++ b/gnu/packages/mastodon.scm
@@ -40,28 +40,27 @@
 (define-public toot
   (package
     (name "toot")
-    (version "0.27.0")
+    (version "0.28.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "toot" version))
         (sha256
-         (base32 "1mfbqmgna7046d134pc5qx1vyfd60vwcn0xr9lxzlmc5rjdbmz8x"))))
+         (base32 "1wsj4160z3m1nvswgkl08n9ymihxhxdvxvrsycn9d3y5fplm00k9"))))
     (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 "py.test"))))))
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "py.test")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (inputs
-     `(("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-requests" ,python-requests)
-       ("python-urwid" ,python-urwid)
-       ("python-wcwidth" ,python-wcwidth)))
+     (list python-beautifulsoup4 python-requests python-urwid
+           python-wcwidth))
     (home-page "https://github.com/ihabunek/toot/")
     (synopsis "Mastodon CLI client")
     (description "Interact with Mastodon social network from the command line.
@@ -121,14 +120,14 @@ Features include:
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("glib-networking" ,glib-networking)
-       ("gtk+" ,gtk+)
-       ("json-glib" ,json-glib)
-       ("libgee" ,libgee)
-       ("libhandy" ,libhandy)
-       ("libsoup" ,libsoup)
-       ("vala" ,vala)
-       ("xdg-utils" ,xdg-utils)))
+     (list glib-networking
+           gtk+
+           json-glib
+           libgee
+           libhandy
+           libsoup
+           vala
+           xdg-utils))
     (home-page "https://github.com/bleakgrey/tootle")
     (synopsis "GTK3 client for Mastodon")
     (description "Tootle is a GTK client for Mastodon.  It provides a clean,
@@ -149,24 +148,24 @@ seamlessly with your desktop environment.")
           "1vikvkzcij2gd730cssigxi38vlmzqmwdy58r3y2cwsxifnxpz9a"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-blurhash" ,python-blurhash)
-       ("python-dateutil" ,python-dateutil)
-       ("python-decorator" ,python-decorator)
-       ("python-magic" ,python-magic)
-       ("python-pytz" ,python-pytz)
-       ("python-requests" ,python-requests)
-       ("python-six" ,python-six)))
+     (list python-blurhash
+           python-dateutil
+           python-decorator
+           python-magic
+           python-pytz
+           python-requests
+           python-six))
     (native-inputs
-     `(("python-blurhash" ,python-blurhash)
-       ("python-cryptography" ,python-cryptography)
-       ("python-http-ece" ,python-http-ece)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-pytest-vcr" ,python-pytest-vcr)
-       ("python-requests-mock" ,python-requests-mock)
-       ("python-vcrpy" ,python-vcrpy)))
+     (list python-blurhash
+           python-cryptography
+           python-http-ece
+           python-pytest
+           python-pytest-cov
+           python-pytest-mock
+           python-pytest-runner
+           python-pytest-vcr
+           python-requests-mock
+           python-vcrpy))
     (home-page "https://github.com/halcy/Mastodon.py")
     (synopsis "Python wrapper for the Mastodon API")
     (description
diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index d5cef67f13..dd6baa42b6 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -107,23 +107,23 @@ MATE applications.")
         (base32 "0fni41p3kraxwjnx9l5mdspng0zib1gfdxwlaiyq31mh4g79yjyj"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("yelp-tools" ,yelp-tools)
-       ("gettext" ,gettext-minimal)
-       ("glib" ,glib "bin") ; glib-gettextize
-       ("polkit" ,polkit))) ; for ITS rules
+     (list pkg-config
+           yelp-tools
+           gettext-minimal
+           `(,glib "bin") ; glib-gettextize
+           polkit)) ; for ITS rules
     (inputs
-     `(("gtk+" ,gtk+)
-       ("glib" ,glib)
-       ("dbus-glib" ,dbus-glib)
-       ("libgnome-keyring" ,libgnome-keyring)
-       ("cairo" ,cairo)
-       ("dbus" ,dbus)
-       ("libnotify" ,libnotify)
-       ("mate-panel" ,mate-panel)
-       ("libxrandr" ,libxrandr)
-       ("libcanberra" ,libcanberra)
-       ("upower" ,upower)))
+     (list gtk+
+           glib
+           dbus-glib
+           libgnome-keyring
+           cairo
+           dbus
+           libnotify
+           mate-panel
+           libxrandr
+           libcanberra
+           upower))
     (home-page "https://mate-desktop.org/")
     (synopsis "Power manager for MATE")
     (description
@@ -146,9 +146,7 @@ actions.")
          "0a2lz61ivwwcdznmwlmgjr6ipr9sdl5g2czbagnpxkwz8f3m77na"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("icon-naming-utils" ,icon-naming-utils)))
+     (list pkg-config intltool icon-naming-utils))
     (home-page "https://mate-desktop.org/")
     (synopsis "The MATE desktop environment icon theme")
     (description
@@ -208,10 +206,8 @@ from Mint-X-F and Faenza-Fresh icon packs.")
         (base32 "051g2vq817g84yrqzf7hjcqr4xrghnw1rprjd6jf5mhhzmwcas6n"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("gdk-pixbuf" ,gdk-pixbuf)       ; gdk-pixbuf+svg isn't needed
-       ("gtk" ,gtk+-2)))
+     (list pkg-config intltool gdk-pixbuf ; gdk-pixbuf+svg isn't needed
+           gtk+-2))
     (home-page "https://mate-desktop.org/")
     (synopsis
      "Official themes for the MATE desktop")
@@ -235,19 +231,16 @@ themes for both gtk+-2 and gtk+-3.")
         (base32 "1nd1dn8mm1z6x4r68a25q4vzys1a6fmbzc94ss1z1n1872pczs6i"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("yelp-tools" ,yelp-tools)
-       ("gtk-doc" ,gtk-doc)))
+     (list pkg-config
+           intltool
+           `(,glib "bin")
+           gobject-introspection
+           yelp-tools
+           gtk-doc))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libxrandr" ,libxrandr)
-       ("iso-codes" ,iso-codes)
-       ("startup-notification" ,startup-notification)))
+     (list gtk+ libxrandr iso-codes startup-notification))
     (propagated-inputs
-     `(("dconf" ,dconf))) ; mate-desktop-2.0.pc
+     (list dconf)) ; mate-desktop-2.0.pc
     (home-page "https://mate-desktop.org/")
     (synopsis "Library with common API for various MATE modules")
     (description
@@ -285,12 +278,10 @@ desktop and the mate-about program.")
        ("dconf" ,dconf)
        ("glib:bin" ,glib "bin")))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("tzdata" ,tzdata)))
+     (list gtk+ tzdata))
     (propagated-inputs
       ;; both of these are requires.private in mateweather.pc
-     `(("libsoup" ,libsoup)
-       ("libxml2" ,libxml2)))
+     (list libsoup-minimal-2 libxml2))
     (home-page "https://mate-desktop.org/")
     (synopsis "MATE library for weather information from the Internet")
     (description
@@ -311,21 +302,21 @@ the MATE desktop environment.")
         (base32 "0qmyhxmarwkxad8k1m9q1iwx70zhfp6zc2mh74nv26nj4gr3h3am"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("itstool" ,itstool)
-       ("gobject-introspection" ,gobject-introspection)
-       ("libxml2" ,libxml2)
-       ("yelp-tools" ,yelp-tools)))
+     (list pkg-config
+           intltool
+           itstool
+           gobject-introspection
+           libxml2
+           yelp-tools))
     (inputs
-     `(("dconf" ,dconf)
-       ("gtk+" ,gtk+)
-       ("libice" ,libice)
-       ("libsm" ,libsm)
-       ("libx11" ,libx11)
-       ("mate-desktop" ,mate-desktop)
-       ("pango" ,pango)
-       ("vte" ,vte)))
+     (list dconf
+           gtk+
+           libice
+           libsm
+           libx11
+           mate-desktop
+           pango
+           vte))
     (home-page "https://mate-desktop.org/")
     (synopsis "MATE Terminal Emulator")
     (description
@@ -368,17 +359,10 @@ configurations (profiles).")
                   (string-append "Exec=" out "/bin/mate-session\n")))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("libxcomposite" ,libxcomposite)
-       ("xtrans" ,xtrans)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list pkg-config intltool libxcomposite xtrans
+           gobject-introspection))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("dbus-glib" ,dbus-glib)
-       ("elogind" ,elogind)
-       ("libsm" ,libsm)
-       ("mate-desktop" ,mate-desktop)))
+     (list gtk+ dbus-glib elogind libsm mate-desktop))
     (home-page "https://mate-desktop.org/")
     (synopsis "Session manager for MATE")
     (description
@@ -399,28 +383,26 @@ configuration program to choose applications starting on login.")
         (base32 "0n1ywr3ir5p536s7azdbw2mh40ylqlpx3a74mjrivbms1rpjxyab"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list pkg-config intltool gobject-introspection))
     (inputs
-     `(("cairo" ,cairo)
-       ("dbus" ,dbus)
-       ("dbus-glib" ,dbus-glib)
-       ("dconf" ,dconf)
-       ("fontconfig" ,fontconfig)
-       ("gtk+" ,gtk+)
-       ("libcanberra" ,libcanberra)
-       ("libmatekbd" ,libmatekbd)
-       ("libmatemixer" ,libmatemixer)
-       ("libnotify" ,libnotify)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxi" ,libxi)
-       ("libxklavier" ,libxklavier)
-       ("mate-desktop" ,mate-desktop)
-       ("nss" ,nss)
-       ("polkit" ,polkit)
-       ("startup-notification" ,startup-notification)))
+     (list cairo
+           dbus
+           dbus-glib
+           dconf
+           fontconfig
+           gtk+
+           libcanberra
+           libmatekbd
+           libmatemixer
+           libnotify
+           libx11
+           libxext
+           libxi
+           libxklavier
+           mate-desktop
+           nss
+           polkit
+           startup-notification))
     (home-page "https://mate-desktop.org/")
     (synopsis "Settings Daemon for MATE")
     (description
@@ -440,13 +422,9 @@ configuration program to choose applications starting on login.")
         (base32 "1n6rq7k66zvfd6sb7h92xihh021w9hysfa4yd1mzjcbb7c62ybqx"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list pkg-config intltool gobject-introspection))
     (inputs
-     `(("glib" ,glib)
-       ("pulseaudio" ,pulseaudio)
-       ("alsa-lib" ,alsa-lib)))
+     (list glib pulseaudio alsa-lib))
     (home-page "https://mate-desktop.org/")
     (synopsis "Mixer library for the MATE desktop")
     (description
@@ -468,16 +446,14 @@ sound systems.")
         (base32 "17mcxfkvl14p04id3n5kbhpjwjq00c8wmbyciyy2hm7kwdln6zx8"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list pkg-config intltool gobject-introspection))
     (inputs
-     `(("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libx11" ,libx11)
-       ("libxklavier" ,libxklavier)))
+     (list cairo
+           (librsvg-for-system)
+           glib
+           gtk+
+           libx11
+           libxklavier))
     (home-page "https://mate-desktop.org/")
     (synopsis "MATE keyboard configuration library")
     (description
@@ -511,9 +487,7 @@ MATE desktop environment.")
                  (string-append out "/lib/girepository-1.0/")))
               #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list pkg-config intltool gobject-introspection))
     (inputs
      `(("glib" ,glib)
        ("python" ,python-2)))
@@ -538,36 +512,36 @@ assorted menu related utility programs.")
         (base32 "0h70i4x3bk017pgv4zn280682wm58vwdjm7kni91ni8rmblnnvyp"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("libxslt" ,libxslt)
-       ("yelp-tools" ,yelp-tools)
-       ("scrollkeeper" ,scrollkeeper)
-       ("gettext" ,gettext-minimal)
-       ("docbook-xml" ,docbook-xml)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list pkg-config
+           intltool
+           libxslt
+           yelp-tools
+           scrollkeeper
+           gettext-minimal
+           docbook-xml
+           gobject-introspection))
     (inputs
-     `(("atk" ,atk)
-       ("dbus" ,dbus)
-       ("dbus-glib" ,dbus-glib)
-       ("glib" ,glib)
-       ("gucharmap" ,gucharmap)
-       ("gtk+" ,gtk+)
-       ("gtksourceview" ,gtksourceview-3)
-       ("libgtop" ,libgtop)
-       ("libmateweather" ,libmateweather)
-       ("libnotify" ,libnotify)
-       ("libx11" ,libx11)
-       ("libxml2" ,libxml2)
-       ("libwnck" ,libwnck)
-       ("mate-panel" ,mate-panel)
-       ("pango" ,pango)
-       ("polkit" ,polkit) ; either polkit or setuid
-       ("python" ,python-2)
-       ("upower" ,upower)
-       ("wireless-tools" ,wireless-tools)))
+     (list atk
+           dbus
+           dbus-glib
+           glib
+           gucharmap
+           gtk+
+           gtksourceview-3
+           libgtop
+           libmateweather
+           libnotify
+           libx11
+           libxml2
+           libwnck
+           mate-panel
+           pango
+           polkit ; either polkit or setuid
+           python-2
+           upower
+           wireless-tools))
     (propagated-inputs
-     `(("python-pygobject" ,python-pygobject)))
+     (list python-pygobject))
     (home-page "https://mate-desktop.org/")
     (synopsis "Various applets for the MATE Panel")
     (description
@@ -610,21 +584,18 @@ Interactive Weather Information Network (IWIN).
         (base32 "118i4w2i2g3hfgbfn3hjzjkfq8vjj6049r7my3vna9js23b7ab92"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("gettext" ,gettext-minimal)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list pkg-config intltool gettext-minimal gobject-introspection))
     (inputs
-     `(("cairo" ,cairo)
-       ("gtk+" ,gtk+)
-       ("libcanberra" ,libcanberra)
-       ("libmatemixer" ,libmatemixer)
-       ("libxml2" ,libxml2)
-       ("mate-applets" ,mate-applets)
-       ("mate-desktop" ,mate-desktop)
-       ("mate-panel" ,mate-panel)
-       ("pango" ,pango)
-       ("startup-notification" ,startup-notification)))
+     (list cairo
+           gtk+
+           libcanberra
+           libmatemixer
+           libxml2
+           mate-applets
+           mate-desktop
+           mate-panel
+           pango
+           startup-notification))
     (home-page "https://mate-desktop.org/")
     (synopsis "Multimedia related programs for the MATE desktop")
     (description
@@ -671,32 +642,28 @@ mate-volume-control, a MATE volume control application and applet.")
                   (string-append out "/lib/girepository-1.0/")))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("itstool" ,itstool)
-       ("xtrans" ,xtrans)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list pkg-config intltool itstool xtrans gobject-introspection))
     (inputs
-     `(("dconf" ,dconf)
-       ("cairo" ,cairo)
-       ("dbus-glib" ,dbus-glib)
-       ("gtk-layer-shell" ,gtk-layer-shell)
-       ("gtk+" ,gtk+)
-       ("libcanberra" ,libcanberra)
-       ("libice" ,libice)
-       ("libmateweather" ,libmateweather)
-       ("librsvg" ,librsvg)
-       ("libsm" ,libsm)
-       ("libx11" ,libx11)
-       ("libxau" ,libxau)
-       ("libxml2" ,libxml2)
-       ("libxrandr" ,libxrandr)
-       ("libwnck" ,libwnck)
-       ("mate-desktop" ,mate-desktop)
-       ("mate-menus" ,mate-menus)
-       ("pango" ,pango)
-       ("tzdata" ,tzdata)
-       ("wayland" ,wayland)))
+     (list dconf
+           cairo
+           dbus-glib
+           gtk-layer-shell
+           gtk+
+           libcanberra
+           libice
+           libmateweather
+           (librsvg-for-system)
+           libsm
+           libx11
+           libxau
+           libxml2
+           libxrandr
+           libwnck
+           mate-desktop
+           mate-menus
+           pango
+           tzdata
+           wayland))
     (home-page "https://mate-desktop.org/")
     (synopsis "Panel for MATE")
     (description
@@ -842,15 +809,15 @@ infamous 'Wanda the Fish'.")
        ("xorg-server" ,xorg-server)
        ("gobject-introspection" ,gobject-introspection)))
     (inputs
-     `(("exempi" ,exempi)
-       ("gtk+" ,gtk+)
-       ("gvfs" ,gvfs)
-       ("libexif" ,libexif)
-       ("libnotify" ,libnotify)
-       ("libsm" ,libsm)
-       ("libxml2" ,libxml2)
-       ("mate-desktop" ,mate-desktop)
-       ("startup-notification" ,startup-notification)))
+     (list exempi
+           gtk+
+           gvfs
+           libexif
+           libnotify
+           libsm
+           libxml2
+           mate-desktop
+           startup-notification))
     (native-search-paths
      (list (search-path-specification
             (variable "CAJA_EXTENSIONDIR")
@@ -900,17 +867,17 @@ icons on the MATE desktop.  It works on local and remote file systems.")
        ("libxml2" ,libxml2)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("attr" ,attr)
-       ("brasero" ,brasero)
-       ("caja" ,caja)
-       ("dbus" ,dbus)
-       ("dbus-glib" ,dbus-glib)
-       ("gajim" ,gajim) ;runtime only?
-       ("gtk+" ,gtk+)
-       ("graphicsmagick" ,graphicsmagick)
-       ("mate-desktop" ,mate-desktop)
-       ("pidgin" ,pidgin) ;runtime only?
-       ("startup-notification" ,startup-notification)))
+     (list attr
+           brasero
+           caja
+           dbus
+           dbus-glib
+           gajim ;runtime only?
+           gtk+
+           graphicsmagick
+           mate-desktop
+           pidgin ;runtime only?
+           startup-notification))
     (home-page "https://mate-desktop.org/")
     (synopsis "Extensions for the File manager Caja")
     (description
@@ -946,13 +913,13 @@ icons on the MATE desktop.  It works on local and remote file systems.")
                            (string-append out "/sbin")))
                         #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("yelp-tools" ,yelp-tools)
-       ("desktop-file-utils" ,desktop-file-utils)
-       ("xorgproto" ,xorgproto)
-       ("xmodmap" ,xmodmap)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list pkg-config
+           intltool
+           yelp-tools
+           desktop-file-utils
+           xorgproto
+           xmodmap
+           gobject-introspection))
     (inputs
      `(("atk" ,atk)
        ("cairo" ,cairo)
@@ -983,8 +950,7 @@ icons on the MATE desktop.  It works on local and remote file systems.")
        ("polkit" ,polkit)
        ("startup-notification" ,startup-notification)))
     (propagated-inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf+svg) ; mate-slab.pc
-       ("librsvg" ,librsvg))) ; mate-slab.pc
+     (list (librsvg-for-system)))        ;mate-slab.pc
     (home-page "https://mate-desktop.org/")
     (synopsis "MATE Desktop configuration tool")
     (description
@@ -1005,32 +971,32 @@ of various aspects of your desktop.")
         (base32 "109b41pjrc1b4slw6sx1lakdhrc46x829vczzk4bz3j15kcszg54"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("itstool" ,itstool)
-       ("glib" ,glib)
-       ("gobject-introspection" ,gobject-introspection)
-       ("libxft" ,libxft)
-       ("libxml2" ,libxml2)
-       ("zenity" ,zenity)))
+     (list pkg-config
+           intltool
+           itstool
+           glib
+           gobject-introspection
+           libxft
+           libxml2
+           zenity))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libcanberra" ,libcanberra)
-       ("libgtop" ,libgtop)
-       ("libice" ,libice)
-       ("libsm" ,libsm)
-       ("libx11" ,libx11)
-       ("libxcomposite" ,libxcomposite)
-       ("libxcursor" ,libxcursor)
-       ("libxdamage" ,libxdamage)
-       ("libxext" ,libxext)
-       ("libxfixes" ,libxfixes)
-       ("libxinerama" ,libxinerama)
-       ("libxrandr" ,libxrandr)
-       ("libxrender" ,libxrender)
-       ("mate-desktop" ,mate-desktop)
-       ("pango" ,pango)
-       ("startup-notification" ,startup-notification)))
+     (list gtk+
+           libcanberra
+           libgtop
+           libice
+           libsm
+           libx11
+           libxcomposite
+           libxcursor
+           libxdamage
+           libxext
+           libxfixes
+           libxinerama
+           libxrandr
+           libxrender
+           mate-desktop
+           pango
+           startup-notification))
     (home-page "https://mate-desktop.org/")
     (synopsis "Window manager for the MATE desktop")
     (description
@@ -1071,7 +1037,7 @@ for use with MATE or as a standalone window manager.")
        ("yelp-tools" ,yelp-tools)
        ("yelp-xsl" ,yelp-xsl)))
     (inputs
-     `(("yelp" ,yelp)))
+     (list yelp))
     (home-page "https://mate-desktop.org/")
     (synopsis "User Documentation for Mate software")
     (description
@@ -1093,17 +1059,14 @@ sessions, panels, menus, file management, and preferences.")
         (base32 "0imdimq5d5rjq8mkjcrsd683a2bn9acmhc0lmvyw71y0040inbaw"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("yelp-tools" ,yelp-tools)))
+     (list gettext-minimal intltool pkg-config yelp-tools))
     (inputs
-     `(("atk" ,atk)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libxml2" ,libxml2)
-       ("libcanberra" ,libcanberra)
-       ("pango" ,pango)))
+     (list atk
+           glib
+           gtk+
+           libxml2
+           libcanberra
+           pango))
     (home-page "https://mate-desktop.org/")
     (synopsis "Calculator for MATE")
     (description
@@ -1124,7 +1087,7 @@ sessions, panels, menus, file management, and preferences.")
          "0b9yx68p9l867bqsl9z2g4wrs8p396ls673jgaliys5snmk8n8dn"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("intltool" ,intltool)))
+     (list intltool))
     (home-page "https://mate-desktop.org/")
     (synopsis "Calculator for MATE")
     (description
@@ -1146,19 +1109,17 @@ can be used as backgrounds in the MATE Desktop environment.")
          "1bmk9gq5gcqkvfppa7i1hqfph8sajc3xs189s4ha97g0ifwd98a8"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list gettext-minimal intltool pkg-config))
     (inputs
-     `(("cairo" ,cairo)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libfakekey" ,libfakekey)
-       ("libwnck" ,libwnck)
-       ("libxtst" ,libxtst)
-       ("libx11" ,libx11)
-       ("mate-panel" ,mate-panel)
-       ("xorgproto" ,xorgproto)))
+     (list cairo
+           glib
+           gtk+
+           libfakekey
+           libwnck
+           libxtst
+           libx11
+           mate-panel
+           xorgproto))
     (home-page "https://mate-desktop.org/")
     (synopsis "Tool for MATE on Netbooks")
     (description
@@ -1213,29 +1174,29 @@ Re-decorates windows on un-maximise.
        ("which" ,which)
        ("xorgproto" ,xorgproto)))
     (inputs
-     `(("cairo" ,cairo)
-       ("dconf" ,dconf)
-       ("dbus" ,dbus)
-       ("dbus-glib" ,dbus-glib)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
-       ("libcanberra" ,libcanberra)
-       ("libglade" ,libglade)
-       ("libmatekbd" ,libmatekbd)
-       ("libnotify" ,libnotify)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxklavier" ,libxklavier)
-       ("libxrandr" ,libxrandr)
-       ("libxrender" ,libxrender)
-       ("libxscrnsaver" ,libxscrnsaver)
-       ("libxxf86vm" ,libxxf86vm)
-       ("linux-pam" ,linux-pam)
-       ("mate-desktop" ,mate-desktop)
-       ("mate-menus" ,mate-menus)
-       ("pango" ,pango)
-       ("startup-notification" ,startup-notification)))
+     (list cairo
+           dconf
+           dbus
+           dbus-glib
+           glib
+           gtk+
+           (librsvg-for-system)
+           libcanberra
+           libglade
+           libmatekbd
+           libnotify
+           libx11
+           libxext
+           libxklavier
+           libxrandr
+           libxrender
+           libxscrnsaver
+           libxxf86vm
+           linux-pam
+           mate-desktop
+           mate-menus
+           pango
+           startup-notification))
     (home-page "https://mate-desktop.org/")
     (synopsis "Screensaver for MATE")
     (description
@@ -1257,29 +1218,29 @@ can be used as backgrounds in the MATE Desktop environment.")
          "1b16n1628gcsym5mph6lr9x5xm4rgkxsa8xwr2wlx8g2gw2775i1"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("gtk-doc" ,gtk-doc)
-       ("intltool" ,intltool)
-       ("libice" ,libice)
-       ("libsm" ,libsm)
-       ("pkg-config" ,pkg-config)
-       ("scrollkeeper" ,scrollkeeper)
-       ("xorgproto" ,xorgproto)
-       ("yelp-tools" ,yelp-tools)))
+     (list gettext-minimal
+           gtk-doc
+           intltool
+           libice
+           libsm
+           pkg-config
+           scrollkeeper
+           xorgproto
+           yelp-tools))
     (inputs
-     `(("atk" ,atk)
-       ("cairo" ,cairo)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
-       ("libcanberra" ,libcanberra)
-       ("libgtop" ,libgtop)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("mate-panel" ,mate-panel)
-       ("pango" ,pango)
-       ("udisks" ,udisks)
-       ("zlib" ,zlib)))
+     (list atk
+           cairo
+           glib
+           gtk+
+           (librsvg-for-system)
+           libcanberra
+           libgtop
+           libx11
+           libxext
+           mate-panel
+           pango
+           udisks
+           zlib))
     (home-page "https://mate-desktop.org/")
     (synopsis "Utilities for the MATE Desktop")
     (description
@@ -1309,41 +1270,40 @@ can be used as backgrounds in the MATE Desktop environment.")
         (base32 "0dralsc0dvs0l38cysdhx6kiaiqlb8qi6g9xz2cm6mjqyq3d3f9f"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("gtk-doc" ,gtk-doc)
-       ("gobject-introspection" ,gobject-introspection)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("yelp-tools" ,yelp-tools)))
+     (list gettext-minimal
+           gtk-doc
+           gobject-introspection
+           intltool
+           pkg-config
+           yelp-tools))
     (inputs
-     `(("atk" ,atk)
-       ("cairo" ,cairo)
-       ("dconf" ,dconf)
-       ("dbus" ,dbus)
-       ("dbus-glib" ,dbus-glib)
-       ("exempi" ,exempi)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
-       ("libcanberra" ,libcanberra)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libpeas" ,libpeas)
-       ("libxml2" ,libxml2)
-       ("libexif" ,libexif)
-       ("libjpeg" ,libjpeg-turbo)
-       ("librsvg" ,librsvg)
-       ("lcms" ,lcms)
-       ("mate-desktop" ,mate-desktop)
-       ("pango" ,pango)
-       ("shared-mime-info" ,shared-mime-info)
-       ("startup-notification" ,startup-notification)
-       ("zlib" ,zlib)))
+     (list atk
+           cairo
+           dconf
+           dbus
+           dbus-glib
+           exempi
+           glib
+           gtk+
+           libcanberra
+           libx11
+           libxext
+           libpeas
+           libxml2
+           libexif
+           libjpeg-turbo
+           (librsvg-for-system)
+           lcms
+           mate-desktop
+           pango
+           shared-mime-info
+           startup-notification
+           zlib))
     (home-page "https://mate-desktop.org/")
     (synopsis "Eye of MATE")
     (description
      "Eye of MATE is the Image viewer for the MATE Desktop.")
-    (license (list license:gpl2))))
+    (license license:gpl2)))
 
 (define-public engrampa
   (package
@@ -1380,17 +1340,17 @@ can be used as backgrounds in the MATE Desktop environment.")
        ("pkg-config" ,pkg-config)
        ("yelp-tools" ,yelp-tools)))
     (inputs
-     `(("caja" ,caja)
-       ("file" ,file)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
-       ("json-glib" ,json-glib)
-       ("libcanberra" ,libcanberra)
-       ("libx11" ,libx11)
-       ("libsm" ,libsm)
-       ("packagekit" ,packagekit)
-       ("pango" ,pango)))
+     (list caja
+           file
+           glib
+           gtk+
+           (librsvg-for-system)
+           json-glib
+           libcanberra
+           libx11
+           libsm
+           packagekit
+           pango))
     (home-page "https://mate-desktop.org/")
     (synopsis "Archive Manager for MATE")
     (description
@@ -1422,24 +1382,24 @@ can be used as backgrounds in the MATE Desktop environment.")
        ("pkg-config" ,pkg-config)
        ("yelp-tools" ,yelp-tools)))
     (inputs
-     `(("atk" ,atk)
-       ("cairo" ,cairo)
-       ("enchant" ,enchant-1.6)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("gtksourceview" ,gtksourceview-3)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("iso-codes" ,iso-codes)
-       ("libcanberra" ,libcanberra)
-       ("libx11" ,libx11)
-       ("libsm" ,libsm)
-       ("libpeas" ,libpeas)
-       ("libxml2" ,libxml2)
-       ("libice" ,libice)
-       ("packagekit" ,packagekit)
-       ("pango" ,pango)
-       ("python" ,python)
-       ("scrollkeeper" ,scrollkeeper)))
+     (list atk
+           cairo
+           enchant-1.6
+           glib
+           gtk+
+           gtksourceview-3
+           gdk-pixbuf
+           iso-codes
+           libcanberra
+           libx11
+           libsm
+           libpeas
+           libxml2
+           libice
+           packagekit
+           pango
+           python
+           scrollkeeper))
     (home-page "https://mate-desktop.org/")
     (synopsis "Text Editor for MATE")
     (description
@@ -1459,25 +1419,21 @@ can be used as backgrounds in the MATE Desktop environment.")
         (base32 "1i2r4lw6xsk972yp15g5hm8p8xx9pp6jmcvvzbdq80xyx3x898qz"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("gettext" ,gettext-minimal)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("yelp-tools" ,yelp-tools)))
+     (list autoconf gettext-minimal intltool pkg-config yelp-tools))
     (inputs
-     `(("cairo" ,cairo)
-       ("glib" ,glib)
-       ("glibmm" ,glibmm)
-       ("gtkmm" ,gtkmm)
-       ("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("libsigc++" ,libsigc++)
-       ("libcanberra" ,libcanberra)
-       ("libxml2" ,libxml2)
-       ("libwnck" ,libwnck)
-       ("libgtop" ,libgtop)
-       ("librsvg" ,librsvg)
-       ("polkit" ,polkit)))
+     (list cairo
+           glib
+           glibmm
+           gtkmm-3
+           gtk+
+           gdk-pixbuf
+           libsigc++
+           libcanberra
+           libxml2
+           libwnck
+           libgtop
+           (librsvg-for-system)
+           polkit))
     (home-page "https://mate-desktop.org/")
     (synopsis "System Monitor for MATE")
     (description
@@ -1499,18 +1455,14 @@ MATE Desktop to monitor your system resources and usage.")
          "1450bqzlnvwy3xa98lj102j2cf7piqbxcd1cy2zp41rdl8ri3gvn"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("gtk-doc" ,gtk-doc)
-       ("intltool" ,intltool)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list gettext-minimal gtk-doc intltool libtool pkg-config))
     (inputs
-     `(("accountsservice" ,accountsservice)
-       ("glib" ,glib)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("polkit" ,polkit)))
+     (list accountsservice
+           glib
+           gobject-introspection
+           gtk+
+           gdk-pixbuf
+           polkit))
     (home-page "https://mate-desktop.org/")
     (synopsis "DBus specific service for MATE")
     (description
@@ -1535,7 +1487,7 @@ used to bring up authentication dialogs.")
             (union-build (assoc-ref %outputs "out")
                          directories)
             #t)))))
-    (native-inputs `(("desktop-file-utils" ,desktop-file-utils)))
+    (native-inputs (list desktop-file-utils))
     (inputs
      ;; TODO: Add more packages
      `(("at-spi2-core"              ,at-spi2-core)
@@ -1545,7 +1497,7 @@ used to bring up authentication dialogs.")
        ("dconf"                     ,dconf)
        ("engrampa"                  ,engrampa)
        ("eom"                       ,eom)
-       ("font-cantarell"            ,font-cantarell)
+       ("font-abattis-cantarell"            ,font-abattis-cantarell)
        ("glib-networking"           ,glib-networking)
        ("gnome-keyring"             ,gnome-keyring)
        ("gvfs"                      ,gvfs)
@@ -1582,7 +1534,7 @@ used to bring up authentication dialogs.")
        ("zenity"                    ,zenity)))
     (propagated-inputs
      ;; Default font that applications such as IceCat require.
-     `(("font-dejavu"             ,font-dejavu)))
+     (list font-dejavu))
     (synopsis "The MATE desktop environment")
     (home-page "https://mate-desktop.org/")
     (description
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 7b07cb4342..3bac086666 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2014 Mathieu Lirzin <mathieu.lirzin@openmailbox.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015–2021 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>
@@ -168,11 +168,10 @@
               (sha256 (base32
                        "1q1887ryqdr9sn0522hc7p16kqwlxxyz5dkmma8ar2nxplhgll7q"))))
     (build-system gnu-build-system)
-    (inputs `(("gtk+" ,gtk+)
-              ("libxml2" ,libxml2)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list gtk+ libxml2))
+    (native-inputs (list pkg-config))
     (arguments
-     `(#:configure-flags '("CFLAGS=-fcommon")))
+     `(#:configure-flags '("CFLAGS=-O2 -g -fcommon")))
     (synopsis "Natural deduction first-order logic interface")
     (description "Aris is a program for performing logical proofs.  It supports
 propositional and predicate logic, as well as Boolean algebra and
@@ -196,11 +195,9 @@ beginners.")
                (base32 "1lniw4bsb5qs5ybf018qllf95pzixb1q3lvybzl4k3xz8zpkrm6k"))))
     (build-system gnu-build-system)
     (inputs
-     `(("ncurses" ,ncurses)
-       ("readline" ,readline)))
+     (list ncurses readline))
     (native-inputs
-     `(("cunit" ,cunit)
-       ("pkg-config" ,pkg-config)))
+     (list cunit pkg-config))
     (synopsis "Terminal based bit manipulator in ncurses")
     (description "Bitwise is a multi base interactive calculator supporting
 dynamic base conversion and bit manipulation.  It's a handy tool for low level
@@ -228,7 +225,7 @@ Some of the features include:
                      "092412jzxy6wdvpk96pfj499hpmaww8xllavbvlqspfpr7ips9id"))))
    (build-system gnu-build-system)
    (inputs
-    `(("fortran" ,gfortran)))
+    (list gfortran))
    (synopsis "Visualizing and demonstrating convolution")
    (description
     "GNU C-Graph is a tool for demonstrating the theory of convolution.
@@ -341,12 +338,12 @@ triangulations.")
              (setenv "CVXOPT_BUILD_GSL" "1")
              #t)))))
     (inputs
-     `(("fftw" ,fftw)
-       ("glpk" ,glpk)
-       ("gsl" ,gsl)
-       ("lapack" ,lapack)
-       ("openblas" ,openblas)
-       ("suitesparse" ,suitesparse)))
+     (list fftw
+           glpk
+           gsl
+           lapack
+           openblas
+           suitesparse))
     (home-page "https://www.cvxopt.org")
     (synopsis "Python library for convex optimization")
     (description
@@ -432,7 +429,7 @@ routines that have been extracted from the V8 JavaScript engine.")
                (base32
                 "194pzs1mlsj4ww6v37qq3961h5hckm5h805cv0r14xj3g9wfx2sk"))))
     (build-system gnu-build-system)
-    (inputs `(("tcl" ,tcl)))                      ;for 'tclsh'
+    (inputs (list tcl))                      ;for 'tclsh'
     (synopsis "Local search for universal constants and scientific values")
     (description
      "GNU Dionysus is a convenient system for quickly retrieving the values of
@@ -581,6 +578,15 @@ differential equations, linear algebra, Fast Fourier Transforms and random
 numbers.")
     (license license:gpl3+)))
 
+;; TODO: Merge back into the gsl package as a separate output.
+(define-public gsl-static
+  (package/inherit gsl
+    (name "gsl-static")
+    (arguments
+     `(,@(package-arguments gsl)
+        #:configure-flags (list "--disable-shared")
+        #:make-flags (list "CFLAGS=-fPIC")))))
+
 (define-public sleef
   (package
     (name "sleef")
@@ -612,10 +618,7 @@ numbers.")
              (for-each make-file-writable (find-files "."))
              #t)))))
     (inputs
-     `(("fftw" ,fftw)
-       ("gmp" ,gmp)
-       ("mpfr" ,mpfr)
-       ("openssl" ,openssl)))
+     (list fftw gmp mpfr openssl))
     (home-page "https://sleef.org/")
     (synopsis "SIMD library for evaluating elementary functions and DFT")
     (description
@@ -639,7 +642,7 @@ It can utilize SIMD instructions that are available on modern processors.")
         "05bgxidxj8d9xdp82niy7cy36w181cxq7p8vc3y2ixshpgp1642a"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gmp" ,gmp)))
+     (list gmp))
     (arguments
      `(#:configure-flags '("--with-gmp"
                            "--disable-static")))
@@ -683,10 +686,9 @@ LP/MIP solver is included in the package.")
         (base32 "0rj92x6p9m3la5gasjbj7sa569im527ffmka5y2sv1amgd3fflrh"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("which" ,(@ (gnu packages base) which)))) ; for the tests
+     (list (@ (gnu packages base) which))) ; for the tests
     (inputs
-     `(("glpk" ,glpk)
-       ("gmp" ,gmp)))
+     (list glpk gmp))
     (home-page "http://www.4ti2.de/")
     (synopsis "Mathematical tool suite for problems on linear spaces")
     (description
@@ -710,7 +712,7 @@ integer programming problems and computes Markov bases for statistics.")
         "00zdgiqb91vx6gd2103h3ijij0llspsxc6zz3iw2bll39fvkl4xq"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gmp" ,gmp)))
+     (list gmp))
     (home-page "https://www.inf.ethz.ch/personal/fukudak/cdd_home/index.html")
     (synopsis "Library for convex hulls and extreme rays of polyhedra")
     (description
@@ -736,7 +738,7 @@ computing convex hulls.")
          "05kq3hzam31dlmkccv3v358r478kpvx76mw37ka12c6ypwv5dsnk"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gmp" ,gmp)))
+     (list gmp))
     (arguments
      `(#:tests? #f                      ; no check phase
        #:make-flags `("CC=gcc"
@@ -775,7 +777,7 @@ be solved.")
         (base32 "1ic2q7kvxpqmgxlishygvx8d00i4wn51vkq4fyac44ahhf6c3kwd"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "https://jugit.fz-juelich.de/mlz/libcerf")
     (synopsis "Library for complex error functions")
     (description
@@ -798,7 +800,7 @@ Dawson, Faddeeva, and Voigt functions.")
          "1aq0qc1y27iw9grhgnyji3290wwfznsrk3sg6ynqpxwjdda53h4m"))))
     (build-system gnu-build-system)
     (inputs
-     `(("lrslib" ,lrslib)))
+     (list lrslib))
     (arguments
      `(#:tests? #f                      ; no check phase
        #:phases
@@ -843,14 +845,9 @@ halfspaces) or by their double description with both representations.")
                 "0l7as5z6xvbxly8alam9s4kws70952qq35a6vkljzayi4b9gbklx"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("eigen" ,eigen)
-       ("lapack" ,lapack)
-       ("fortran" ,gfortran)))
+     (list eigen lapack gfortran))
     (synopsis "Fortran subroutines for solving eigenvalue problems")
     (description
      "ARPACK-NG is a collection of Fortran77 subroutines designed to solve
@@ -932,15 +929,15 @@ problems in numerical linear algebra.")
         "0nnap9q1mv14g57dl3vkvxrdr10k5w7zzyxs6rgxhia8q8mphgqb"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:phases
+     `(#:configure-flags '("-DCMAKE_C_FLAGS=-fcommon -O2")
+       #:phases
        (modify-phases %standard-phases
          ;; These tests use a lot of stack variables and segfault without
          ;; lifting resource limits.
          (add-after 'unpack 'disable-broken-tests
            (lambda _
              (substitute* "TESTING/CMakeLists.txt"
-               (("add_lapack_test.* xeigtstz\\)") ""))
-             #t))
+               (("add_lapack_test.* xeigtstz\\)") ""))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -962,8 +959,7 @@ problems in numerical linear algebra.")
                                            "\\.h$")))
                (copy-recursively (string-append "../clapack-"
                                                 ,version "-CMAKE/INCLUDE")
-                                 (string-append out "/include"))
-               #t))))))
+                                 (string-append out "/include"))))))))
     (home-page "https://www.netlib.org/clapack/")
     (synopsis "Numerical linear algebra library for C")
     (description
@@ -977,7 +973,7 @@ provide LAPACK for someone who does not have access to a Fortran compiler.")
 (define-public scalapack
   (package
     (name "scalapack")
-    (version "2.0.2")
+    (version "2.1.0")
     (source
      (origin
        (method url-fetch)
@@ -985,8 +981,8 @@ provide LAPACK for someone who does not have access to a Fortran compiler.")
                            version ".tgz"))
        (sha256
         (base32
-         "0p1r61ss1fq0bs8ynnx7xq4wwsdvs32ljvwjnx6yxr8gd6pawx0c"))
-       (patches (search-patches "scalapack-blacs-mpi-deprecations.patch"))))
+         "19i0h9vdc3zsy58r6fy1vs2kz2l7amifkz0cf926j90xz1n23nb1"))
+       (patches (search-patches "scalapack-gcc-10-compilation.patch"))))
     (build-system cmake-build-system)
     (inputs
      `(("mpi" ,openmpi)
@@ -996,7 +992,15 @@ provide LAPACK for someone who does not have access to a Fortran compiler.")
      `(#:configure-flags `("-DBUILD_SHARED_LIBS:BOOL=YES")
        #:phases (modify-phases %standard-phases
                   (add-before 'check 'mpi-setup
-		    ,%openmpi-setup))))
+		    ,%openmpi-setup)
+                  (add-after 'unpack 'skip-faulty-test
+                    (lambda _
+                      ;; FIXME: Skip these two tests that fail to complete for
+                      ;; unknown reasons:
+                      ;; <https://github.com/Reference-ScaLAPACK/scalapack/issues/43>.
+                      (substitute* "TESTING/CMakeLists.txt"
+                        (("^add_test\\(x[sd]hseqr.*" all)
+                         (string-append "# " all "\n"))))))))
     (home-page "http://www.netlib.org/scalapack/")
     (synopsis "Library for scalable numerical linear algebra")
     (description
@@ -1019,11 +1023,7 @@ singular value problems.")
        (sha256
         (base32 "1fp7rbhjmz2w63r72kicf8lfszzimz2csfx868fracw167hpaz75"))))
     (build-system gnu-build-system)
-    (inputs `(("readline" ,readline)
-              ("cairo" ,cairo)
-              ("pango" ,pango)
-              ("gd" ,gd)
-              ("lua" ,lua)))
+    (inputs (list readline cairo pango gd lua))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("texlive" ,texlive-tiny)))
@@ -1058,7 +1058,7 @@ plotting engine by third-party applications like Octave.")
        (sha256
         (base32 "11wqmd443b4nksdbzp1msdws3av948nmwq1xz80w6hka3ss2aigd"))))
     (native-inputs
-     `(("fortran" ,gfortran)))
+     (list gfortran))
     (build-system gnu-build-system)
     (synopsis "General Cartographic Transformation Package (GCTP)")
     (description
@@ -1087,9 +1087,7 @@ computations.")
                                 "hdf4-tirpc.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("bison" ,bison)
-       ("flex" ,flex)))
+     (list gfortran bison flex))
     (inputs
      `(("zlib" ,zlib)
        ("libjpeg" ,libjpeg-turbo)
@@ -1188,10 +1186,9 @@ incompatible with HDF5.")
       (patches (search-patches "hdf5-config-date.patch"))))
     (build-system gnu-build-system)
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("perl" ,perl)))                 ;part of the test machinery needs Perl
+     (list gfortran perl))                 ;part of the test machinery needs Perl
     (outputs '("out"       ; core library
                "fortran")) ; fortran interface
     (arguments
@@ -1315,7 +1312,7 @@ extremely large and complex data collections.")
 (define-public hdf5-1.12
   (package
     (inherit hdf5-1.8)
-    (version "1.12.0")
+    (version "1.12.1")
     (source
      (origin
        (method url-fetch)
@@ -1329,7 +1326,7 @@ extremely large and complex data collections.")
                                         (take (string-split version #\.) 2))
                                  "/src/hdf5-" version ".tar.bz2")))
        (sha256
-        (base32 "0qazfslkqbmzg495jafpvqp0khws3jkxa0z7rph9qvhacil6544p"))
+        (base32 "074g3z504xf77ff38igs30i1aqxpm508p7yw78ykva7dncrgbyda"))
        (patches (search-patches "hdf5-config-date.patch"))))))
 
 (define-public hdf5
@@ -1381,9 +1378,9 @@ extremely large and complex data collections.")
        #:make-flags
        (list (string-append "HDFLIB=" (assoc-ref %build-inputs "hdf4") "/lib")
              (string-append "HDF5LIB=" (assoc-ref %build-inputs "hdf5") "/lib")
-             (string-append "ZLIB=" (assoc-ref %build-inputs "zlib") "/lib/libz.so")
+             (string-append "ZLIB=" (search-input-file %build-inputs "/lib/libz.so"))
              (string-append "JPEGLIB="
-                            (assoc-ref %build-inputs "libjpeg") "/lib/libjpeg.so")
+                            (search-input-file %build-inputs "/lib/libjpeg.so"))
              "LLEXT=so")
 
        #:phases
@@ -1400,7 +1397,10 @@ extremely large and complex data collections.")
                             "hdf/hdf5lib/exceptions/Makefile.in"
                             "hdf/hdflib/Makefile.in")
                (("\\$\\(TOP\\)/lib/slf4j-api-1\\.7\\.5\\.jar")
-                (search-input-file inputs "/share/java/slf4j-api.jar")))
+                ;; 'slf4j-api-X.Y.Z.jar' is installed in a Maven-style
+                ;; directory, so use 'find-files' to find it.
+                (car (find-files (assoc-ref inputs "slf4j-api")
+                                 "^slf4j-api.*\\.jar$"))))
              ;; Replace outdated config.sub and config.guess:
              (with-directory-excursion "config"
                (for-each (lambda (file)
@@ -1428,8 +1428,9 @@ extremely large and complex data collections.")
                     (testjars
                      (append
                        (map (lambda (i)
-                              (string-append (assoc-ref inputs i)
-                                             "/share/java/" i ".jar"))
+                              (car (find-files (assoc-ref inputs i)
+                                               (string-append "^" i
+                                                              ".*\\.jar$"))))
                             '("slf4j-api" "slf4j-simple"))
                        (list
                          (car (find-files (assoc-ref inputs "junit") "jar$"))
@@ -1484,7 +1485,7 @@ implemented in C.")
                                 "hdf-eos2-fortrantests.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (inputs
      `(("hdf4" ,hdf4-alt) ; assume most HDF-EOS2 users won't use the HDF4 netCDF API
        ;; XXX: These inputs are really dependencies of hdf4.
@@ -1522,12 +1523,10 @@ System (Grid, Point and Swath).")
                                        "hdf-eos5-fix-szip.patch"
                                        "hdf-eos5-fortrantests.patch"))))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (build-system gnu-build-system)
     (inputs
-     `(("hdf5" ,hdf5-1.8)
-       ("zlib" ,zlib)
-       ("gctp" ,gctp)))
+     (list hdf5-1.8 zlib gctp))
     (arguments
      `(#:configure-flags '("--enable-install-include" "--enable-shared"
                            "CC=h5cc -Df2cFortran" "LIBS=-lgctp")
@@ -1604,8 +1603,7 @@ Swath).")
                (("ExternalProject_Add\\(project_blosc") "message("))
              #t)))))
     (inputs
-     `(("c-blosc" ,c-blosc)
-       ("hdf5" ,hdf5-1.10)))
+     (list c-blosc hdf5-1.10))
     (home-page "https://github.com/Blosc/hdf5-blosc")
     (synopsis "Filter for HDF5 using the Blosc compressor")
     (description "This is a filter for HDF5 that uses the Blosc compressor; by
@@ -1626,7 +1624,7 @@ Blosc-compressed datasets.")
         (base32
          "1gm76jbwhz9adbxgn14zx8cj33dmjdr2g5xcy0m9c2gakp8w59kj"))))
     (build-system gnu-build-system)
-    (inputs `(("hdf5" ,hdf5-1.8)))                ;h5cc for tests
+    (inputs (list hdf5-1.8))                ;h5cc for tests
     (home-page "https://www.hdfgroup.org/products/hdf5_tools/h5check.html")
     (synopsis "HDF5 format checker")
     (description "@code{h5check} is a validation tool for verifying that an
@@ -1647,8 +1645,7 @@ HDF5 file is encoded according to the HDF File Format Specification.")
          "14ddy2xnb6sgp4hiax9v5sv4pr4l4dd4ps76nfha3nrpr1ikhcqm"))))
     (build-system cmake-build-system)
     (arguments `(#:tests? #f)) ; Tests require googletest *sources*
-    (inputs `(("lapack" ,lapack)
-              ("fftw" ,fftw)))
+    (inputs (list lapack fftw))
     ;; FIXME: Even though the fonts are available dvips complains:
     ;; "Font cmmi10 not found; characters will be left blank."
     (native-inputs
@@ -1688,9 +1685,7 @@ similar to MATLAB, GNU Octave or SciPy.")
        (patches (search-patches "netcdf-date-time.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("m4" ,m4)
-       ("doxygen" ,doxygen)
-       ("graphviz" ,graphviz)))
+     (list m4 doxygen graphviz))
     (inputs
      `(("hdf4" ,hdf4-alt)
        ("hdf5" ,hdf5)
@@ -1771,9 +1766,9 @@ sharing of scientific data.")
                            "FFLAGS=-fallow-argument-mismatch")
        #:parallel-tests? #f))
     (inputs
-     `(("netcdf" ,netcdf)))
+     (list netcdf))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (synopsis "Fortran interface for the netCDF library")
     (description (package-description netcdf))
     (home-page (package-home-page netcdf))
@@ -1808,8 +1803,8 @@ sharing of scientific data.")
                  (("libnlopt")
                   (string-append out "/lib/libnlopt")))
                #t))))))
-    (inputs `(("guile" ,guile-2.0)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list guile-2.0))
+    (native-inputs (list pkg-config))
     (home-page "http://ab-initio.mit.edu/wiki/")
     (synopsis "Library for nonlinear optimization")
     (description "NLopt is a library for nonlinear optimization, providing a
@@ -1849,11 +1844,10 @@ online as well as original implementations of various other algorithms.")
                                           after "\n")))
                         #t))))))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)))
+     (list gfortran pkg-config))
     (inputs
      ;; TODO: Maybe add dependency on COIN-MUMPS, ASL, and HSL.
-     `(("lapack" ,lapack)))                    ;for both libblas and liblapack
+     (list lapack))                    ;for both libblas and liblapack
     (home-page "https://www.coin-or.org")
     (synopsis "Large-scale nonlinear optimizer")
     (description
@@ -1997,7 +1991,7 @@ interfaces.")
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (delete-file (string-append
                            (site-packages inputs outputs)
-                           "PyNomad-0.0.0-py"
+                           "/PyNomad-0.0.0-py"
                            (python-version (assoc-ref inputs "python"))
                            ".egg-info"))
              #t)))))
@@ -2027,10 +2021,9 @@ the result of costly computer simulations.")
                '(delete-file-recursively "ThirdParty"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)))
+     (list gfortran pkg-config))
     (inputs
-     `(("openblas" ,openblas)))
+     (list openblas))
     (home-page "https://www.coin-or.org")
     (synopsis "Branch-and-cut solver")
     (description
@@ -2058,10 +2051,9 @@ executable.")
                   #t))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)))
+     (list gfortran pkg-config))
     (inputs
-     `(("openblas" ,openblas)))
+     (list openblas))
     (home-page "https://www.coin-or.org")
     (synopsis "Linear programming solver")
     (description
@@ -2071,6 +2063,75 @@ linear and quadratic objectives.  There are limited facilities for nonlinear
 and quadratic objectives using the Simplex algorithm.")
     (license license:epl1.0)))
 
+(define-public gecode
+  (package
+    (name "gecode")
+    (version "6.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Gecode/gecode")
+                    (commit (string-append "release-" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0b1cq0c810j1xr2x9y9996p894571sdxng5h74py17c6nr8c6dmk"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; delete generated sources
+                  (for-each delete-file
+                            '("gecode/kernel/var-imp.hpp"
+                              "gecode/kernel/var-type.hpp"))))))
+    (outputs '("out" "examples"))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list (string-append "GLDFLAGS=-Wl,-rpath="
+                            (assoc-ref %outputs "out")
+                            "/lib")
+             "--enable-examples=no")
+       #:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (ice-9 rdelim)
+                  (ice-9 popen))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'build-examples
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "make" "compileexamples")))
+         ;; The Makefile disrespects GLDFLAGS for some reason, so we have to
+         ;; patch it ourselves... *sigh*
+         (add-after 'install 'fix-rpath
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((libdir (string-append (assoc-ref outputs "out") "/lib")))
+               (for-each
+                (lambda (file)
+                  (let* ((pipe (open-pipe* OPEN_READ "patchelf"
+                                          "--print-rpath" file))
+                         (line (read-line pipe)))
+                    (and (zero? (close-pipe pipe))
+                         (invoke "patchelf" "--set-rpath"
+                                 (string-append libdir ":" line)
+                                 file))))
+                (find-files libdir ".*\\.so$")))))
+         (add-after 'install 'install-examples
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "make" "installexamples"
+                     (string-append "bindir=" (assoc-ref outputs "examples")
+                                    "/bin"))))
+         ;; Tests depend on installed libraries.
+         (delete 'check)
+         (add-after 'fix-rpath 'check
+           (assoc-ref %standard-phases 'check)))))
+    (native-inputs
+     (list patchelf perl sed))
+    (home-page "https://www.gecode.org")
+    (synopsis "Toolkit for developing constraint-based systems")
+    (description "Gecode is a C++ toolkit for developing constraint-based
+systems and applications.  It provides a modular and extensible solver.")
+    (license license:expat)))
+
 (define-public libflame
   (package
     (name "libflame")
@@ -2132,7 +2193,7 @@ and quadratic objectives using the Simplex algorithm.")
                              (string-append static "/include"))
                #t))))))
     (inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (native-inputs
      `(("lapack" ,lapack)
        ("openblas" ,openblas)
@@ -2149,6 +2210,162 @@ Computational Engineering and Sciences} at The University of Texas at Austin.
 includes a complete LAPACK implementation.")
     (license license:bsd-3)))
 
+(define-public libpotassco
+  ;; No public release, update together with clasp
+  (let ((revision "1")
+        (commit "2f9fb7ca2c202f1b47643aa414054f2f4f9c1821"))
+    (package
+      (name "libpotassco")
+      (version (git-version "0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/potassco/libpotassco")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1c32f9gqclf7qx07lpx8wd720vfhkjqhzc6nyy8mjmgwpmb3iyyn"))))
+      (arguments
+       `(#:configure-flags '("-DLIB_POTASSCO_BUILD_TESTS=on"
+                             "-DLIB_POTASSCO_INSTALL_LIB=on"
+                             "-DBUILD_SHARED_LIBS=on")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-cmake
+             (lambda _
+               (substitute* "CMakeLists.txt"
+                 ;; clasp expects lowercase potassco and include directory is
+                 ;; lowercase as well, so let's use that
+                 (("\"cmake/Potassco\"") "\"cmake/potassco\"")
+                 (("PotasscoConfig\\.cmake") "potassco-config.cmake")
+                 (("PotasscoConfigVersion\\.cmake")
+                  "potassco-config-version.cmake"))
+               (rename-file "cmake/PotasscoConfig.cmake.in"
+                            "cmake/potassco-config.cmake.in"))))))
+      (build-system cmake-build-system)
+      (home-page "https://potassco.org/")
+      (synopsis "Utility library for Potassco's projects")
+      (description "@code{libpotassco} is a utility library providing functions
+and datatypes for
+@itemize
+@item parsing, writing, and converting logic programs in aspif and smodels
+format,
+@item passing information between a grounder and a solver,
+@item and defining and parsing command-line options and for creating
+command-line applications.
+@end itemize
+Furthermore, it comes with the tool @command{lpconvert} that converts either
+between aspif and smodels format or to a human-readable text format.")
+      (license license:expat))))
+
+(define-public clasp
+  (package
+    (name "clasp")
+    (version "3.3.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/potassco/clasp")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0rahqiq530jckvx717858h1q5p8znp1kb6sjm95p8blkr4n3pvmj"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags '("-DCLASP_BUILD_TESTS=on"
+                           "-DCLASP_INSTALL_LIB=on"
+                           "-DCLASP_USE_LOCAL_LIB_POTASSCO=off"
+                           "-DBUILD_SHARED_LIBS=on")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-cmake
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               ;; Use lowercase to be consistent with libpotassco
+               (("\"cmake/Clasp\"") "\"cmake/clasp\"")
+               (("ClaspConfig\\.cmake") "clasp-config.cmake")
+               (("ClaspConfigVersion\\.cmake")
+                "clasp-config-version.cmake"))
+             (substitute* "cmake/ClaspConfig.cmake.in"
+               (("find_package\\(Potassco") "find_package(potassco"))
+             (rename-file "cmake/ClaspConfig.cmake.in"
+                          "cmake/clasp-config.cmake.in"))))))
+    (inputs
+     (list libpotassco))
+    (home-page "https://potassco.org/")
+    (synopsis "Answer set solver")
+    (description "clasp is an answer set solver for (extended) normal and
+disjunctive logic programs.  The primary algorithm of clasp relies on
+conflict-driven nogood learning, a technique that proved very successful for
+satisfiability checking (SAT).")
+    (license license:expat)))
+
+(define-public clingo
+  (package
+    (name "clingo")
+    (version "5.5.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/potassco/clingo")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0rfjwkcwm0mmf3r4i7asyjwb6cia4i7px7fn2kdbi9j85qvas4pb"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags `("-DCLINGO_BUILD_TESTS=on"
+                           "-DCLINGO_INSTALL_LIB=on"
+                           "-DCLINGO_BUILD_STATIC=off"
+                           "-DCLINGO_BUILD_SHARED=on"
+                           ;; XXX: Clingo requries private headers and
+                           ;;      sources from clasp
+                           ,(string-append
+                             "-DCLASP_SOURCE_DIR="
+                             (assoc-ref %build-inputs "clasp-src")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-cmake
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("add_subdirectory\\(clasp\\)")
+                "find_package(clasp REQUIRED)"))
+             (substitute* "libclingo/CMakeLists.txt"
+               (("\"cmake/Clingo\"") "\"cmake/clingo\"")
+               (("ClingoConfig\\.cmake") "clingo-config.cmake")
+               (("ClingoConfigVersion\\.cmake")
+                "clingo-config-version.cmake"))
+             (substitute* "cmake/ClingoConfig.cmake.in"
+               (("find_package\\(Clasp") "find_package(clasp"))
+             (rename-file "cmake/ClingoConfig.cmake.in"
+                          "cmake/clingo-config.cmake.in")))
+         (add-after 'unpack 'skip-failing-tests
+           (lambda _
+             (with-directory-excursion "libclingo/tests"
+               (substitute* "CMakeLists.txt"
+                 (("COMMAND test_clingo" all)
+                  (string-append all
+                                 " -f "
+                                 "\"${CMAKE_CURRENT_SOURCE_DIR}/good.txt\"")))
+               (call-with-output-file "good.txt"
+                 (lambda (port)
+                   (for-each (lambda (test) (format port "~s~%" test))
+                             '("parse-ast-v2" "add-ast-v2" "build-ast-v2"
+                               "unpool-ast-v2" "parse_term"
+                               "propagator" "propgator-sequence-mining"
+                               "symbol" "visitor"))))))))))
+    (inputs
+     (list clasp libpotassco))
+    (native-inputs
+     `(("clasp-src" ,(package-source clasp))))
+    (home-page "https://potassco.org/")
+    (synopsis "Grounder and solver for logic programs")
+    (description "Clingo computes answer sets for a given logic program.")
+    (license license:expat)))
+
 (define-public ceres
   (package
     (name "ceres-solver")
@@ -2171,14 +2388,13 @@ includes a complete LAPACK implementation.")
                   (add-before 'configure 'set-library-directory
                     (lambda _
                       ;; Install libraries to lib/, not lib64/.
-                      (substitute* "internal/ceres/CMakeLists.txt"
+                      (substitute* "CMakeLists.txt"
                         (("set\\(LIB_SUFFIX \"64\"\\)")
-                         "set(LIB_SUFFIX \"\")"))
-                      #t)))))
+                         "set(LIB_SUFFIX \"\")")))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
-     `(("glog" ,glog)))                           ;for #include <glog/glog.h>
+     (list glog))                           ;for #include <glog/glog.h>
     (inputs
      `(("eigen" ,eigen)
        ("blas" ,openblas)
@@ -2245,19 +2461,19 @@ can solve two kinds of problems:
        ("texinfo" ,texinfo)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)
-       ("perl" ,perl)
-       ;; The following inputs are not actually used in the build process.
-       ;; However, the ./configure gratuitously tests for their existence and
-       ;; assumes that programs not present at build time are also not, and
-       ;; can never be, available at run time!  If these inputs are therefore
-       ;; not present, support for them will be built out.  However, Octave
-       ;; will still run without them, albeit without the features they
-       ;; provide.
-       ("less" ,less)
-       ("ghostscript" ,ghostscript)
-       ("gnuplot" ,gnuplot)))
+     (list gfortran
+           pkg-config
+           perl
+           ;; The following inputs are not actually used in the build process.
+           ;; However, the ./configure gratuitously tests for their existence and
+           ;; assumes that programs not present at build time are also not, and
+           ;; can never be, available at run time!  If these inputs are therefore
+           ;; not present, support for them will be built out.  However, Octave
+           ;; will still run without them, albeit without the features they
+           ;; provide.
+           less
+           ghostscript
+           gnuplot))
     ;; Octave code uses this variable to detect directories holding multiple CA
     ;; certificates to verify peers with.  This is required for the networking
     ;; functions that require encryption to work properly.
@@ -2344,12 +2560,12 @@ script files.")
                         (assoc-ref %outputs "out"))
               "-UCMAKE_INSTALL_RPATH")))
     (inputs
-      `(("freetype" ,freetype)
-        ("glu" ,glu)
-        ("libxmu" ,libxmu)
-        ("mesa" ,mesa)
-        ("tcl" ,tcl)
-        ("tk" ,tk)))
+      (list freetype
+            glu
+            libxmu
+            mesa
+            tcl
+            tk))
     (native-inputs
       `(("python" ,python-wrapper)))
     (home-page "https://github.com/tpaviot/oce")
@@ -2428,17 +2644,17 @@ Open CASCADE library.")
               "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON"
               "-UCMAKE_INSTALL_LIBDIR")))
     (inputs
-     `(("doxygen" ,doxygen)
-       ;("freeimage" ,freeimage)
-       ("freetype" ,freetype)
-       ("glu" ,glu)
-       ("libxext" ,libxext)
-       ("libxi" ,libxi)
-       ("libxmu" ,libxmu)
-       ("mesa" ,mesa)
-       ("tbb" ,tbb)
-       ("tcl" ,tcl)
-       ("tk" ,tk)))
+     (list doxygen
+           ;("freeimage" ,freeimage)
+           freetype
+           glu
+           libxext
+           libxi
+           libxmu
+           mesa
+           tbb-2020
+           tcl
+           tk))
     ;; TODO: build Overview documentation and add 'doc' output.
     (home-page "https://www.opencascade.com")
     (synopsis "Libraries for 3D modeling and numerical simulation")
@@ -2489,17 +2705,17 @@ This is the certified version of the Open Cascade Technology (OCCT) library.")
           #t))))
     (build-system cmake-build-system)
     (propagated-inputs
-     `(("fltk" ,fltk)
-       ("gfortran" ,gfortran)
-       ("glu" ,glu)
-       ("gmp" ,gmp)
-       ("hdf5" ,hdf5)
-       ("lapack" ,lapack)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("mesa" ,mesa)
-       ("metis" ,metis)
-       ("opencascade-occt" ,opencascade-occt)))
+     (list fltk
+           gfortran
+           glu
+           gmp
+           hdf5
+           lapack
+           libx11
+           libxext
+           mesa
+           metis
+           opencascade-occt))
     (inputs
      `(("fontconfig" ,fontconfig)
        ("libxft" ,libxft)
@@ -2587,19 +2803,18 @@ ASCII text files using Gmsh's own scripting language.")
                    ,(list (string-append (assoc-ref inputs "qtsvg")
                                          "/lib/qt5/plugins/"))))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ;;("python-astropy" ,python-astropy) ;; FIXME: Package this.
-       ("qttools" ,qttools)
-       ("python-sip" ,python-sip-4)))
+     (list pkg-config
+           ;;("python-astropy" ,python-astropy) ;; FIXME: Package this.
+           qttools python-sip-4))
     (inputs
-     `(("ghostscript" ,ghostscript) ;optional, for EPS/PS output
-       ("python-dbus" ,python-dbus)
-       ("python-h5py" ,python-h5py) ;optional, for HDF5 data
-       ("python-pyqt" ,python-pyqt)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+     (list ghostscript ;optional, for EPS/PS output
+           python-dbus
+           python-h5py ;optional, for HDF5 data
+           python-pyqt
+           qtbase-5
+           qtsvg))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (home-page "https://veusz.github.io/")
     (synopsis "Scientific plotting package")
     (description
@@ -2638,7 +2853,7 @@ September 2004}")
 (define-public petsc
   (package
     (name "petsc")
-    (version "3.11.2")
+    (version "3.16.1")
     (source
      (origin
       (method url-fetch)
@@ -2646,89 +2861,92 @@ September 2004}")
       (uri (string-append "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/"
                           "petsc-lite-" version ".tar.gz"))
       (sha256
-       (base32 "1645nwwcp9bcnfnxikk480mhbbacdvhsay2c401818hk97dqj5nx"))))
+       (base32 "0sm03vpg010q9icidiq587n325m0598cj6hab2rdv85nwyygg74h"))))
     (outputs '("out"                    ; libraries and headers
                "examples"))             ; ~30MiB of examples
     (build-system gnu-build-system)
     (native-inputs
-     `(("python" ,python-2)))
+     (list python which))
     (inputs
-     `(("gfortran" ,gfortran)
-       ("openblas" ,openblas)
-       ("superlu" ,superlu)
-       ;; leaving out hdf5 and fftw, as petsc expects them to be built with mpi
-       ;; leaving out opengl, as configuration seems to only be for mac
-       ))
+     (list gfortran openblas superlu
+           ;; leaving out hdf5 and fftw, as petsc expects them to be built with mpi
+           ;; leaving out opengl, as configuration seems to only be for mac
+           ))
     (arguments
-     `(#:test-target "test"
-       #:parallel-build? #f             ; build is parallel by default
-       #:configure-flags
-       `("--with-mpi=0"
-         "--with-openmp=1"
-         "--with-openblas=1"
-         "--with-superlu=1")
-       #:make-flags
-       ;; Honor (parallel-job-count) for build.  Do not use --with-make-np,
-       ;; whose value is dumped to $out/lib/petsc/conf/petscvariables.
-       (list (format #f "MAKE_NP=~a" (parallel-job-count)))
-       #:phases
-       (modify-phases %standard-phases
-        (replace 'configure
-          ;; PETSc's configure script is actually a python script, so we can't
-          ;; run it with bash.
-          (lambda* (#:key outputs (configure-flags '())
-                          #:allow-other-keys)
-            (let* ((prefix (assoc-ref outputs "out"))
-                   (flags `(,(string-append "--prefix=" prefix)
-                            ,@configure-flags)))
-              (format #t "build directory: ~s~%" (getcwd))
-              (format #t "configure flags: ~s~%" flags)
-              (apply invoke "./configure" flags))))
-        (add-after 'configure 'clean-local-references
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let ((out (assoc-ref outputs "out")))
-              (substitute* (find-files "." "^petsc(conf|machineinfo).h$")
-                ;; Prevent build directory from leaking into compiled code
-                (((getcwd)) out)
-                ;; Scrub timestamp for reproducibility
-                ((".*Libraries compiled on.*") ""))
-              (substitute* (find-files "." "petscvariables")
-                ;; Do not expose build machine characteristics, set to defaults.
-                (("MAKE_NP = [:digit:]+") "MAKE_NP = 2")
-                (("NPMAX = [:digit:]+") "NPMAX = 2"))
-              #t)))
-        (add-after 'install 'clean-install
-          ;; Try to keep installed files from leaking build directory names.
-          (lambda* (#:key inputs outputs #:allow-other-keys)
-            (let ((out (assoc-ref outputs "out")))
-              (substitute* (map (lambda (file)
-                                  (string-append out "/lib/petsc/conf/" file))
-                                '("petscvariables"))
-                (((getcwd)) out))
-              ;; Make compiler references point to the store
-              (substitute* (string-append out "/lib/petsc/conf/petscvariables")
-                (("= (gcc|g\\+\\+|gfortran)" _ compiler)
-                 (string-append "= " (which compiler))))
-              ;; PETSc installs some build logs, which aren't necessary.
-              (for-each (lambda (file)
-                          (let ((f (string-append out "/lib/petsc/conf/" file)))
-                            (when (file-exists? f)
-                              (delete-file f))))
-                        '("configure.log" "make.log" "gmake.log"
-                          "test.log" "error.log" "RDict.db"
-                          "PETScBuildInternal.cmake"
-                          ;; Once installed, should uninstall with Guix
-                          "uninstall.py"))
-              #t)))
-        (add-after 'install 'move-examples
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let* ((out (assoc-ref outputs "out"))
-                   (examples (assoc-ref outputs "examples"))
-                   (exdir (string-append out "/share/petsc/examples"))
-                   (exdir' (string-append examples "/share/petsc/examples")))
-              (copy-recursively exdir exdir')
-              (delete-file-recursively exdir)
-              #t))))))
+     (list
+      #:test-target "test"
+      #:parallel-build? #f             ; build is parallel by default
+      #:configure-flags
+      #~(list "--with-mpi=0"
+              "--with-openmp=1"
+              "--with-openblas=1"
+              (string-append "--with-openblas-dir="
+                             #$(this-package-input "openblas"))
+              "--with-superlu=1")
+      #:make-flags
+      ;; Honor (parallel-job-count) for build.  Do not use --with-make-np,
+      ;; whose value is dumped to $out/lib/petsc/conf/petscvariables.
+      #~(list (format #f "MAKE_NP=~a" (parallel-job-count)))
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'configure
+            ;; PETSc's configure script is actually a python script, so we can't
+            ;; run it with bash.
+            (lambda* (#:key outputs (configure-flags '())
+                      #:allow-other-keys)
+              (let* ((prefix (assoc-ref outputs "out"))
+                     (flags `(,(string-append "--prefix=" prefix)
+                              ,@configure-flags)))
+                (format #t "build directory: ~s~%" (getcwd))
+                (format #t "configure flags: ~s~%" flags)
+                (apply invoke "./configure" flags)
+
+                ;; Generate test scripts with the right shebang.
+                (substitute* "config/example_template.py"
+                  (("#!/usr/bin/env bash")
+                   (string-append "#!" (which "bash")))))))
+          (add-after 'configure 'clean-local-references
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out")))
+                (substitute* (find-files "." "^petsc(conf|machineinfo).h$")
+                  ;; Prevent build directory from leaking into compiled code
+                  (((getcwd)) out)
+                  ;; Scrub timestamp for reproducibility
+                  ((".*Libraries compiled on.*") ""))
+                (substitute* (find-files "." "petscvariables")
+                  ;; Do not expose build machine characteristics, set to defaults.
+                  (("MAKE_NP = [:digit:]+") "MAKE_NP = 2")
+                  (("NPMAX = [:digit:]+") "NPMAX = 2")))))
+          (add-after 'install 'clean-install
+            ;; Try to keep installed files from leaking build directory names.
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out")))
+                (substitute* (map (lambda (file)
+                                    (string-append out "/lib/petsc/conf/" file))
+                                  '("petscvariables"))
+                  (((getcwd)) out))
+                ;; Make compiler references point to the store
+                (substitute* (string-append out "/lib/petsc/conf/petscvariables")
+                  (("= (gcc|g\\+\\+|gfortran)" _ compiler)
+                   (string-append "= " (which compiler))))
+                ;; PETSc installs some build logs, which aren't necessary.
+                (for-each (lambda (file)
+                            (let ((f (string-append out "/lib/petsc/conf/" file)))
+                              (when (file-exists? f)
+                                (delete-file f))))
+                          '("configure.log" "make.log" "gmake.log"
+                            "test.log" "error.log" "RDict.db"
+                            "PETScBuildInternal.cmake"
+                            ;; Once installed, should uninstall with Guix
+                            "uninstall.py")))))
+          (add-after 'install 'move-examples
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let* ((out (assoc-ref outputs "out"))
+                     (examples (assoc-ref outputs "examples"))
+                     (exdir (string-append out "/share/petsc/examples"))
+                     (exdir' (string-append examples "/share/petsc/examples")))
+                (copy-recursively exdir exdir')
+                (delete-file-recursively exdir)))))))
     (home-page "https://www.mcs.anl.gov/petsc")
     (synopsis "Library to solve PDEs")
     (description "PETSc, pronounced PET-see (the S is silent), is a suite of
@@ -2738,16 +2956,18 @@ scientific applications modeled by partial differential equations.")
               "https://www.mcs.anl.gov/petsc/documentation/copyright.html"))))
 
 (define-public petsc-complex
-  (package (inherit petsc)
+  (package
+    (inherit petsc)
     (name "petsc-complex")
     (arguments
      (substitute-keyword-arguments (package-arguments petsc)
        ((#:configure-flags cf)
-        `(cons "--with-scalar-type=complex" ,cf))))
+        #~(cons "--with-scalar-type=complex" #$cf))))
     (synopsis "Library to solve PDEs (with complex scalars)")))
 
 (define-public petsc-openmpi
-  (package (inherit petsc)
+  (package
+    (inherit petsc)
     (name "petsc-openmpi")
     (inputs
      `(("hdf5" ,hdf5-parallel-openmpi)
@@ -2761,55 +2981,56 @@ scientific applications modeled by partial differential equations.")
     (arguments
      (substitute-keyword-arguments (package-arguments petsc)
        ((#:configure-flags cf)
-        ``("--with-hypre=1"
-           "--with-mpiexec=mpirun"
-           "--with-metis=1"
-           "--with-mumps=1"
-           "--with-scalapack=1"
-           "--with-ptscotch=1"
-           ,(string-append "--with-mpi-dir="
-                           (assoc-ref %build-inputs "openmpi"))
-           ,(string-append "--with-hdf5-include="
-                           (assoc-ref %build-inputs "hdf5") "/include")
-           ,(string-append "--with-hdf5-lib="
-                           (assoc-ref %build-inputs "hdf5") "/lib/libhdf5.a")
-           ,@(delete "--with-mpi=0" ,cf)))
+        #~`("--with-hypre=1"
+            "--with-mpiexec=mpirun"
+            "--with-metis=1"
+            "--with-mumps=1"
+            "--with-scalapack=1"
+            "--with-ptscotch=1"
+            ,(string-append "--with-mpi-dir="
+                            #$(this-package-input "openmpi"))
+            ,(string-append "--with-hdf5-include="
+                            #$(this-package-input "hdf5") "/include")
+            ,(string-append "--with-hdf5-lib="
+                            #$(this-package-input "hdf5") "/lib/libhdf5.a")
+            ,@(delete "--with-mpi=0" #$cf)))
        ((#:phases phases)
-        `(modify-phases ,phases
-           (add-before 'configure 'mpi-setup
-             ,%openmpi-setup)))))
+        #~(modify-phases #$phases
+            (add-before 'configure 'mpi-setup
+              #$%openmpi-setup)))))
     (synopsis "Library to solve PDEs (with MUMPS and MPI support)")))
 
 (define-public petsc-complex-openmpi
-  (package (inherit petsc-complex)
+  (package
+    (inherit petsc-complex)
     (name "petsc-complex-openmpi")
     (inputs
-     `(("openmpi" ,openmpi)
-       ,@(package-inputs petsc-complex)))
+     (modify-inputs (package-inputs petsc-complex)
+       (prepend openmpi)))
     (arguments
      (substitute-keyword-arguments (package-arguments petsc-complex)
        ((#:configure-flags cf)
-        ``("--with-mpiexec=mpirun"
-           ,(string-append "--with-mpi-dir="
-                           (assoc-ref %build-inputs "openmpi"))
-           ,@(delete "--with-mpi=0" ,cf)))
+        #~`("--with-mpiexec=mpirun"
+            ,(string-append "--with-mpi-dir="
+                            #$(this-package-input "openmpi"))
+            ,@(delete "--with-mpi=0" #$cf)))
        ((#:phases phases)
-        `(modify-phases ,phases
-           (add-before 'configure 'mpi-setup
-             ,%openmpi-setup)))))
+        #~(modify-phases #$phases
+            (add-before 'configure 'mpi-setup
+              #$%openmpi-setup)))))
     (synopsis "Library to solve PDEs (with complex scalars and MPI support)")))
 
 (define-public python-petsc4py
   (package
     (name "python-petsc4py")
-    (version "3.11.0")
+    (version "3.16.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "petsc4py" version))
         (sha256
           (base32
-           "1rm1qj5wlkhxl39by9n78lh3gbmii31wsnb8j1rr5hvfr5xgbx2q"))
+           "0pxr6qa7p0pmpq0av29lx8lzlrdcfdzj87ynixzr8dn42y13a662"))
         (modules '((guix build utils)))
         (snippet
          '(begin
@@ -2833,7 +3054,7 @@ scientific applications modeled by partial differential equations.")
          (add-before 'check 'mpi-setup
            ,%openmpi-setup))))
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (inputs
      `(("petsc" ,petsc-openmpi)
        ("python-numpy" ,python-numpy)))
@@ -2874,7 +3095,7 @@ savings are consistently > 5x.")
 (define-public slepc
   (package
     (name "slepc")
-    (version "3.11.1")
+    (version "3.16.1")
     (source
      (origin
        (method url-fetch)
@@ -2882,16 +3103,17 @@ savings are consistently > 5x.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1yq84q9wannc8xwapxpay4ypdd675picwi395hhsdvng9q6hf5j8"))))
+         "1ysfm77s5fcissv3q0k5d65mlp93zi4anqg62q3cd25dn66sva5i"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("python" ,python-2)
+     `(("python" ,python)
+       ("which" ,which)
        ("petsc:examples" ,petsc "examples"))) ;for gmakegen.py script
     (inputs
      `(("arpack" ,arpack-ng)
        ("gfortran" ,gfortran)))
     (propagated-inputs
-     `(("petsc" ,petsc)))
+     (list petsc))
     (arguments
      `(#:parallel-build? #f             ;build is parallel by default
        #:configure-flags
@@ -2946,7 +3168,9 @@ as well as other related problems such as the singular value decomposition.
 The emphasis of the software is on methods and techniques appropriate for
 problems in which the associated matrices are sparse, for example, those
 arising after the discretization of partial differential equations.")
-    (license license:bsd-2)))
+    (license license:bsd-2)
+    (properties
+     `((release-monitoring-url . "http://slepc.upv.es/download/")))))
 
 (define-public slepc-complex
   (package (inherit slepc)
@@ -2967,10 +3191,10 @@ arising after the discretization of partial differential equations.")
 	     ,%openmpi-setup)))))
     (inputs
      `(("mpi" ,openmpi)
-       ("arpack" ,arpack-ng-openmpi)
        ,@(alist-delete "arpack" (package-inputs slepc))))
     (propagated-inputs
      `(("petsc" ,petsc-openmpi)
+       ("arpack" ,arpack-ng-openmpi)
        ,@(alist-delete "petsc" (package-propagated-inputs slepc))))
     (synopsis "Scalable library for eigenproblems (with MPI support)")))
 
@@ -2985,14 +3209,14 @@ arising after the discretization of partial differential equations.")
 (define-public python-slepc4py
   (package
     (name "python-slepc4py")
-    (version "3.11.0")
+    (version "3.16.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "slepc4py" version))
         (sha256
           (base32
-            "1ksp08kxf4wg408b9nn39z3qfhy643j22d4rfbl30vzxk2rxh4lq"))))
+            "0fq997y73ymvcvdrxycp450pxwdgnqaw62gv9rwncfgsfplkvs9w"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -3034,8 +3258,7 @@ bindings to almost all functions of SLEPc.")
         (base32 "1s9hyknfvhj86g3giayyf3dxzg23iij0rs7bdvj075v9qbyhqn9b"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (home-page "http://us.metamath.org/")
     (synopsis "Proof verifier based on a minimalistic formalism")
     (description
@@ -3049,6 +3272,133 @@ the Cauchy-Schwarz inequality, Stirling's formula, etc.  See the Metamath
 book.")
     (license license:gpl2+)))
 
+(define-public minizinc
+  (package
+    (name "minizinc")
+    (version "2.5.5")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/MiniZinc/libminizinc")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "10b2hsl1fx9psh0iagmp8ki3f60f3qg5hmvra5aczjlfmbl88ggp"))
+              (modules '((guix build utils)
+                         (ice-9 ftw)
+                         (srfi srfi-1)))
+              (snippet
+               '(begin
+                  ;; Do not advertise proprietary solvers
+                  (with-directory-excursion "cmake/targets"
+                    (let ((targets '("libminizinc_fzn.cmake"
+                                     "libminizinc_gecode.cmake"
+                                     "libminizinc_mip.cmake"
+                                     "libminizinc_nl.cmake"
+                                     "libminizinc_osicbc.cmake"
+                                     "libminizinc_parser.cmake"
+                                     "libmzn.cmake"
+                                     "minizinc.cmake"
+                                     "mzn2doc.cmake")))
+                     (for-each delete-file
+                              (remove
+                               (lambda (file)
+                                 (member file (cons* "." ".." targets)))
+                               (scandir ".")))
+                    (substitute* "libmzn.cmake"
+                      (("include\\(cmake/targets/(.*)\\)" all target)
+                       (if (member target targets) all "")))))
+                  (with-directory-excursion "include/minizinc/solvers/MIP"
+                    (for-each delete-file
+                              (remove
+                               (lambda (file)
+                                 (member file '("." ".."
+                                                "MIP_osicbc_solverfactory.hh"
+                                                "MIP_osicbc_wrap.hh"
+                                                "MIP_solverinstance.hh"
+                                                "MIP_solverinstance.hpp"
+                                                "MIP_wrap.hh")))
+                               (scandir "."))))
+                  (with-directory-excursion "solvers/MIP"
+                    (for-each delete-file
+                              (remove
+                               (lambda (file)
+                                 (member file '("." ".."
+                                                "MIP_osicbc_solverfactory.cpp"
+                                                "MIP_osicbc_wrap.cpp"
+                                                "MIP_solverinstance.cpp"
+                                                "MIP_wrap.cpp")))
+                               (scandir "."))))
+                  (substitute* "CMakeLists.txt"
+                    (("find_package\\(([^ ]*).*\\)" all pkg)
+                     (if (member pkg '("Gecode" "OsiCBC" "Threads"))
+                         all
+                         "")))
+                  ;; TODO: swap out miniz for zlib
+                  #t))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ; no ‘check’ target
+       #:modules ((guix build cmake-build-system)
+                  (guix build utils)
+                  (srfi srfi-1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-solver-configs
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((gecode (assoc-ref inputs "gecode"))
+                   (pkgdatadir (string-append (assoc-ref outputs "out")
+                                                  "/share/minizinc")))
+               (call-with-output-file (string-append pkgdatadir
+                                                     "/Preferences.json")
+                 (lambda (port)
+                   (display "\
+{
+  \"tagDefaults\": [
+    [\"\", \"org.gecode.gecode\"],
+    [\"gecode\", \"org.gecode.gecode\"]
+  ],
+  \"solverDefaults\": []
+}"
+                            port)
+                   (newline port)))
+
+               (mkdir-p (string-append pkgdatadir "/solvers"))
+               (call-with-output-file (string-append pkgdatadir
+                                                     "/solvers/gecode.msc")
+                 (lambda (port)
+                   (format port
+                    "\
+{
+  \"id\": \"org.gecode.gecode\",
+  \"name\": \"Gecode\",
+  \"description\": \"Gecode FlatZinc executable\",
+  \"version\": ~s,
+  \"mznlib\": ~s,
+  \"executable\": ~s,
+  \"supportsMzn\": false,
+  \"supportsFzn\": true,
+  \"needsSolns2Out\": true,
+  \"needsMznExecutable\": false,
+  \"needsStdlibDir\": false,
+  \"isGUIApplication\": false
+}"
+                    (last (string-split gecode #\-))
+                    (string-append gecode "/share/gecode/mznlib")
+                    (string-append gecode "/bin/fzn-gecode"))
+                   (newline port)))))))))
+    (native-inputs
+     (list bison flex))
+    (inputs
+     (list cbc gecode zlib))
+    (home-page "https://www.minizinc.org")
+    (synopsis "High-level constraint modeling language")
+    (description "MiniZinc is a high-level modeling language for constraint
+satisfaction and optimization problems.  Models are compiled to FlatZinc, a
+language understood by many solvers.")
+    (license license:mpl2.0)))
+
 (define-public mumps
   (package
     (name "mumps")
@@ -3108,7 +3458,7 @@ SCALAP       = -Wl,-rpath=$(SCALAPDIR) -Wl,-rpath='$$ORIGIN' -L$(SCALAPDIR) -lsc
 LIBOTHERS    = -pthread
 CDEFS        = -DAdd_
 PIC          = -fPIC
-OPTF         = -O2 -DALLOW_NON_INIT $(PIC)
+OPTF         = -O2 -DALLOW_NON_INIT -fallow-argument-mismatch $(PIC)
 OPTL         = -O2 $(PIC)
 OPTC         = -O2 $(PIC)
 INCS         = $(INCSEQ)
@@ -3235,8 +3585,7 @@ sparse system of linear equations A x = b using Gaussian elimination.")
          "1aapydwwkydbwgz07n7ma3a5jy9n3v0shy6q6j8mi4wr3crhx45a"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-nokogiri" ,ruby-nokogiri)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list ruby-nokogiri ruby-rspec))
     (synopsis "AsciiMath parsing and conversion library")
     (description
      "A pure Ruby AsciiMath parsing and conversion library.  AsciiMath is an
@@ -3289,7 +3638,7 @@ void mc64ad_ (int *a, int *b, int *c, int *d, int *e, double *f, int *g,
                  #t)))))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("tcsh" ,tcsh)))
+     (list tcsh))
     (inputs
      `(("blas" ,openblas)
        ("gfortran" ,gfortran)))
@@ -3352,7 +3701,7 @@ void mc64ad_dist (int *a, int *b, int *c, int *d, int *e, double *f, int *g,
                                 "superlu-dist-awpm-grid.patch"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("tcsh" ,tcsh)))
+     (list tcsh))
     (inputs
      `(("gfortran" ,gfortran)
        ("blas" ,openblas)
@@ -3417,11 +3766,9 @@ implemented in ANSI C, and MPI for communications.")
                                "scotch-integer-declarations.patch"))))
     (build-system gnu-build-system)
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (native-inputs
-     `(("flex" ,flex)
-       ("bison" ,bison)
-       ("gfortran" ,gfortran)))
+     (list flex bison gfortran))
     (outputs '("out" "metis"))
     (arguments
      `(#:make-flags (list (string-append "prefix=" %output))
@@ -3557,9 +3904,7 @@ YACC = bison -pscotchyy -y -b y
   (package (inherit scotch)
     (name "scotch-shared")
     (native-inputs
-     `(("gcc" ,gcc)
-       ("flex" ,flex)
-       ("bison" ,bison)))
+     (list gcc flex bison))
     (arguments
      (substitute-keyword-arguments (package-arguments scotch)
        ((#:phases scotch-shared-phases)
@@ -3615,7 +3960,7 @@ YACC = bison -pscotchyy -y -b y
   (package (inherit scotch)
     (name "pt-scotch")
     (propagated-inputs
-     `(("openmpi" ,openmpi)))           ;Headers include MPI headers
+     (list openmpi))           ;Headers include MPI headers
     (arguments
      (substitute-keyword-arguments (package-arguments scotch)
        ((#:phases scotch-phases)
@@ -3639,7 +3984,7 @@ YACC = bison -pscotchyy -y -b y
   (package (inherit scotch32)
     (name "pt-scotch32")
     (propagated-inputs
-     `(("openmpi" ,openmpi)))                     ;headers include MPI headers
+     (list openmpi))                     ;headers include MPI headers
     (arguments
      (substitute-keyword-arguments (package-arguments scotch32)
        ((#:phases scotch32-phases)
@@ -3662,7 +4007,7 @@ YACC = bison -pscotchyy -y -b y
   (package (inherit scotch-shared)
     (name "pt-scotch-shared")
     (propagated-inputs
-     `(("openmpi" ,openmpi)))           ;Headers include MPI headers
+     (list openmpi))           ;Headers include MPI headers
     (arguments
      (substitute-keyword-arguments (package-arguments scotch-shared)
        ((#:phases scotch-shared-phases)
@@ -3781,10 +4126,9 @@ processor cores.")
      `(#:configure-flags
        (list "--disable-static")))
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)))
+     (list glib gtk+))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.gnu.org/software/gsegrafix/")
     (synopsis "GNOME application to create scientific and engineering plots")
     (description
@@ -3817,9 +4161,7 @@ to BMP, JPEG or PNG image formats.")
        ("sed" ,sed)
        ("tk" ,tk)))                               ;Tcl/Tk is used by 'xmaxima'
     (native-inputs
-     `(("texinfo" ,texinfo)
-       ("perl" ,perl)
-       ("python" ,python)))
+     (list texinfo perl python))
     (arguments
      `(#:configure-flags
        ,#~(list "--enable-sbcl"
@@ -3923,12 +4265,12 @@ point numbers.")
     (native-inputs
      `(("gettext" ,gettext-minimal)))
     (inputs
-     `(("wxwidgets" ,wxwidgets)
-       ("maxima" ,maxima)
-       ;; Runtime support.
-       ("adwaita-icon-theme" ,adwaita-icon-theme)
-       ("gtk+" ,gtk+)
-       ("shared-mime-info" ,shared-mime-info)))
+     (list wxwidgets
+           maxima
+           ;; Runtime support.
+           adwaita-icon-theme
+           gtk+
+           shared-mime-info))
     (arguments
      `(#:tests? #f                      ; tests fail non-deterministically
        #:phases
@@ -4040,7 +4382,7 @@ parts of it.")
 (define-public openblas
   (package
     (name "openblas")
-    (version "0.3.13")
+    (version "0.3.18")
     (source
      (origin
        (method git-fetch)
@@ -4050,7 +4392,7 @@ parts of it.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "14jxh0v3jfbw4mfjx4mcz4dd51lyq7pqvh9k8dg94539ypzjr2lj"))))
+         "17zdd8asylz2w71hczrz5y344p6d5ds1jn4901maw7zcp3dbk63g"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -4067,6 +4409,7 @@ parts of it.")
        (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
              "SHELL=bash"
              "MAKE_NB_JOBS=0"           ;use jobserver for submakes
+             "NO_STATIC=1"              ;avoid a 67 MiB static archive
 
              ;; This is the maximum number of threads OpenBLAS will ever use (that
              ;; is, if $OPENBLAS_NUM_THREADS is greater than that, then NUM_THREADS
@@ -4082,13 +4425,13 @@ parts of it.")
              ,@(let ((system (or (%current-target-system) (%current-system))))
                  (cond
                   ((or (string-prefix? "x86_64" system)
-                       (string-prefix? "i686" system))
-                   '("DYNAMIC_ARCH=1"))
-                  ;; On some of these architectures the CPU can't be detected.
-                  ((or (string-prefix? "powerpc64le" system)
+                       (string-prefix? "i686" system)
+                       (string-prefix? "powerpc64le" system)
                        (string-prefix? "aarch64" system))
-                   '("DYNAMIC_ARCH=1"
-                     "TARGET=GENERIC"))
+                   ;; Dynamic older enables a few extra CPU architectures that
+                   ;; were released before 2010.
+                   '("DYNAMIC_ARCH=1" "DYNAMIC_OLDER=1" "TARGET=GENERIC"))
+                  ;; On some of these architectures the CPU can't be detected.
                   ;; On MIPS we force the "SICORTEX" TARGET, as for the other
                   ;; two available MIPS targets special extended instructions
                   ;; for Loongson cores are used.
@@ -4107,8 +4450,7 @@ parts of it.")
              ;; Get libgfortran found when building in utest.
              (setenv "FEXTRALIB"
                      (string-append "-L" (assoc-ref inputs "fortran-lib")
-                                    "/lib"))
-             #t)))))
+                                    "/lib")))))))
     (inputs
      `(("fortran-lib" ,gfortran "lib")))
     (native-inputs
@@ -4146,8 +4488,7 @@ parts of it.")
                 "05ifil6jj9424sr8kmircl8k4bmxnl3y12a79vwj1kxxva5gz50g"))
               (file-name (git-file-name "blis" version))))
     (native-inputs
-     `(("python" ,python)
-       ("perl" ,perl)))
+     (list python perl))
     (build-system gnu-build-system)
     (arguments
      `(#:modules
@@ -4367,11 +4708,7 @@ Fresnel integrals, and similar related functions as well.")
        (modify-phases %standard-phases
          (delete 'configure))))         ;no configure script
     (inputs
-     `(("tbb" ,tbb)
-       ("openblas" ,openblas)
-       ("gmp" ,gmp)
-       ("mpfr" ,mpfr)
-       ("metis" ,metis)))
+     (list tbb openblas gmp mpfr metis))
     (native-inputs
      `(("cmake" ,cmake-minimal)
        ("m4" ,m4)))
@@ -4588,7 +4925,7 @@ Version: ~a
 Cflags: -I${includedir}~%" out ,(version-prefix version 3)))))
                         #t))))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://glm.g-truc.net/")
     (synopsis "OpenGL Mathematics library")
     (description "OpenGL Mathematics (GLM) is a header-only C++ mathematics
@@ -4854,10 +5191,8 @@ A unique design feature of Trilinos is its focus on packages.")
      ;; Anyway, they are meant to be used at build time, so rather than adding
      ;; the interpreters here, any package depending on them should just add
      ;; the requisite interpreter to its native inputs.
-     `(("boost" ,boost)
-       ("hdf5" ,hdf5)
-       ("suitesparse" ,suitesparse)     ; For UMFPACK.
-       ("tbb" ,tbb)))
+     (list boost hdf5 suitesparse ; For UMFPACK.
+           tbb))
     (arguments
      `(#:build-type "DebugRelease" ; Supports only Debug, Release and DebugRelease.
        ;; The tests take too long and must be explicitly enabled with "make
@@ -4935,7 +5270,7 @@ in finite element programs.")
     (build-system cmake-build-system)
     (outputs '("out"))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (inputs
      `(("hdf5" ,hdf5)
        ;; FIXME: 'mkoctfile' fails with a linker error:
@@ -4988,8 +5323,7 @@ FLANN is written in C++ and contains bindings for C, Octave and Python.")
             "1vi8dl6rccqiq1apmpwawyg2ywx6a1ic1d3cvkf2hlwk1z11fb0f"))))
     (build-system gnu-build-system)
     (inputs
-     `(("mpfr" ,mpfr)
-       ("readline" ,readline)))
+     (list mpfr readline))
     (home-page "http://w-calc.sourceforge.net/index.php")
     (synopsis "Flexible command-line scientific calculator")
     (description "Wcalc is a very capable calculator.  It has standard functions
@@ -5017,10 +5351,7 @@ evaluates expressions using the standard order of operations.")
     (native-inputs `(("gettext" ,gettext-minimal)
                      ("qtbase" ,qtbase-5)
                      ("qttools" ,qttools)))
-    (inputs `(("libx11" ,libx11)
-              ("zlib" ,zlib)
-              ("libpng" ,libpng)
-              ("gsl" ,gsl)))
+    (inputs (list libx11 zlib libpng gsl))
     ;; The upstream project file ("XaoS.pro") and the Makefile it generates are
     ;; not enough for this package to install properly.  These phases fix that.
     (arguments
@@ -5230,8 +5561,7 @@ structured and unstructured grid problems.")))
          "0vr8c1mz1k6mz0sgh6n3scl5c3a71iqmy5fnydrgq504icj4vym4"))))
     (build-system gnu-build-system)
     (inputs
-     `(("zlib" ,zlib)
-       ("hdf5" ,hdf5-1.8)))
+     (list zlib hdf5-1.8))
     (home-page "http://matio.sourceforge.net/")
     (synopsis "Library for reading and writing MAT files")
     (description "Matio is a library for reading and writing MAT files.  It
@@ -5321,7 +5651,7 @@ instruction sets.  Thus, an application written with Vc can be compiled for:
            "1rllzcfwc042c336mhq262a8ha90x6afq30kvk60r7i4761j4yjm"))))
       (build-system gnu-build-system)
       (inputs
-       `(("openlibm" ,openlibm)))
+       (list openlibm))
       (arguments
        `(#:tests? #f ; no tests
          #:phases
@@ -5383,9 +5713,8 @@ Longest Commons Subsequence of a set of strings.")
              (invoke "./configure"
                      (string-append "--prefix="
                                     (assoc-ref outputs "out"))))))))
-    (inputs `(("scm" ,scm)))
-    (native-inputs `(("unzip" ,unzip)
-                     ("texinfo" ,texinfo)))
+    (inputs (list scm))
+    (native-inputs (list unzip texinfo))
     (synopsis "Symbolic mathematics system")
     (description "GNU JACAL is an interactive symbolic mathematics program based on
 Scheme.  It manipulate and simplify a range of mathematical expressions such
@@ -5458,6 +5787,65 @@ as equations, scalars, vectors, and matrices.")
 theories} (SMT) solver.  It provides a C/C++ API, as well as Python bindings.")
     (license license:expat)))
 
+(define-public ocaml-z3
+  (package
+    (inherit z3)
+    (name "ocaml-z3")
+    (arguments
+     `(#:imported-modules ((guix build python-build-system)
+                           ,@%gnu-build-system-modules)
+       #:modules (((guix build python-build-system) #:select (site-packages))
+                  (guix build gnu-build-system)
+                  (guix build utils))
+       #:tests? #f; no ml tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'bootstrap
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (setenv "OCAMLFIND_LDCONF" "ignore")
+               (setenv "OCAMLFIND_DESTDIR" (string-append out "/lib/ocaml/site-lib"))
+               (mkdir-p (string-append out "/lib/ocaml/site-lib"))
+               (substitute* "scripts/mk_util.py"
+                 (("LIBZ3 = LIBZ3")
+                  (string-append "LIBZ3 = LIBZ3 + ' -dllpath " out "/lib'"))
+                 ;; Do not build z3 again, use the library passed as input
+                 ;; instead
+                 (("z3linkdep,") "\"\",")
+                 (("z3linkdep)") "\"\")"))
+               (invoke "python" "scripts/mk_make.py"))))
+         (replace 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (invoke "./configure"
+                     "--ml"
+                     (string-append "--prefix=" (assoc-ref outputs "out")))))
+         (add-after 'configure 'change-directory
+           (lambda _
+             (chdir "build")
+             #t))
+         (replace 'build
+           (lambda _
+             (invoke "make" "ml")))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "ocamlfind" "install" "-destdir"
+                     (string-append (assoc-ref outputs "out") "/lib/ocaml/site-lib")
+                     "z3" "api/ml/META" "api/ml/z3enums.mli" "api/ml/z3enums.cmi"
+                     "api/ml/z3enums.cmx" "api/ml/z3native.mli"
+                     "api/ml/z3native.cmi" "api/ml/z3native.cmx"
+                     "../src/api/ml/z3.mli" "api/ml/z3.cmi" "api/ml/z3.cmx"
+                     "api/ml/libz3ml.a" "api/ml/z3ml.a" "api/ml/z3ml.cma"
+                     "api/ml/z3ml.cmxa" "api/ml/z3ml.cmxs" "api/ml/dllz3ml.so"))))))
+    (native-inputs
+     `(("which" ,which)
+       ("python" ,python-wrapper)
+       ("ocaml" ,ocaml)
+       ("ocaml-findlib" ,ocaml-findlib)))
+    (propagated-inputs
+     (list ocaml-zarith))
+    (inputs
+     (list z3))))
+
 (define-public elpa
   (package
     (name "elpa")
@@ -5564,7 +5952,7 @@ symmetric matrices.")
     (build-system cmake-build-system)
     (home-page "https://github.com/elemental/Elemental")
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (inputs
      `(("blas" ,openblas)
        ("gfortran:lib" ,gfortran "lib")
@@ -5615,12 +6003,9 @@ reduction.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0db9wgy9spwm76mgfisnifrlg69y9cadjgxjr4gdwzfgg6wgqf6d"))))
+                "1xgx3cd57vc7gbjic24j1q2za6j3ybz6nk4afvvpbwsf33xnlf4v"))))
     (inputs
-     `(("boost" ,boost)
-       ("glu" ,glu)
-       ("mesa" ,mesa)
-       ("qtbase" ,qtbase-5)))
+     (list boost glu mesa qtbase-5))
     (build-system cmake-build-system)
     (synopsis "Toolset for the mCRL2 formal specification language")
     (description
@@ -5638,7 +6023,7 @@ analysed.")
     (inherit mcrl2)
     (name "mcrl2-minimal")
     (inputs
-     `(("boost" ,boost)))
+     (list boost))
     (arguments
      '(#:configure-flags '("-DMCRL2_ENABLE_GUI_TOOLS=OFF")))))
 
@@ -5735,7 +6120,8 @@ and comparisons are supported.")
        ("blas" ,openblas)
        ("suitesparse" ,suitesparse)))   ;TODO: Add hypre
     (arguments
-     `(#:configure-flags `("-DEXAMPLES_ENABLE_C:BOOL=ON"
+     `(#:configure-flags `("-DCMAKE_C_FLAGS=-O2 -g -fcommon"
+                           "-DEXAMPLES_ENABLE_C:BOOL=ON"
                            "-DEXAMPLES_ENABLE_CXX:BOOL=ON"
                            "-DEXAMPLES_ENABLE_F77:BOOL=ON"
                            "-DEXAMPLES_ENABLE_F90:BOOL=ON"
@@ -5755,6 +6141,9 @@ and comparisons are supported.")
     (description "SUNDIALS is a family of software packages implemented with
 the goal of providing robust time integrators and nonlinear solvers that can
 easily be incorporated into existing simulation codes.")
+    (properties
+     '((release-monitoring-url
+        . "https://computing.llnl.gov/projects/sundials/sundials-software")))
     (license license:bsd-3)))
 
 (define-public sundials-openmpi
@@ -5782,6 +6171,31 @@ easily be incorporated into existing simulation codes.")
 	     ,%openmpi-setup)))))
     (synopsis "SUNDIALS with OpenMPI support")))
 
+(define-public sundials-julia
+  (package
+    (inherit sundials)
+    (name "sundials-julia")
+    (version "5.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/LLNL/sundials")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0nx4sqhmi126m14myzm7syv2053harav9snl0a247wnkcgs5rxrv"))))
+    (inputs
+     (modify-inputs (package-inputs sundials)
+       (prepend lapack)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sundials)
+       ((#:configure-flags flags '())
+        `(cons* "-DLAPACK_ENABLE:BOOL=ON"
+                ,flags))))
+    (synopsis "SUNDIALS with lapack support as required by julia-sundials-jll")))
+
 (define-public combinatorial-blas
   (package
     (name "combinatorial-blas")
@@ -5852,14 +6266,9 @@ linear algebra primitives specifically targeting graph analytics.")
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke "make" "build_tests" make-flags))))))
     (inputs
-     `(("gmp" ,gmp)
-       ("metis" ,metis)
-       ("openblas" ,openblas)
-       ("python" ,python)
-       ("superlu" ,superlu)))
+     (list gmp metis openblas python superlu))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)))
+     (list gfortran pkg-config))
     (home-page "https://dune-project.org/")
     (synopsis "Distributed and Unified Numerics Environment")
     (description "DUNE, the Distributed and Unified Numerics Environment is a
@@ -5890,14 +6299,11 @@ Differences} (FD).")
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke "make" "build_tests" make-flags))))))
     (inputs
-     `(("dune-common" ,dune-common)
-       ;; Optional
-       ("openblas" ,openblas)
-       ("gmp" ,gmp)
-       ("python" ,python)))
+     (list dune-common
+           ;; Optional
+           openblas gmp python))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)))
+     (list gfortran pkg-config))
     (home-page "https://dune-project.org/")
     (synopsis "Distributed and Unified Numerics Environment")
     (description "DUNE, the Distributed and Unified Numerics Environment is a
@@ -5932,10 +6338,9 @@ This package contains the basic DUNE geometry classes.")
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke "make" "build_tests" make-flags))))))
     (inputs
-     `(("dune-common" ,dune-common)))
+     (list dune-common))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)))
+     (list gfortran pkg-config))
     (home-page "https://dune-project.org/")
     (synopsis "Distributed and Unified Numerics Environment")
     (description "DUNE, the Distributed and Unified Numerics Environment is a
@@ -5967,17 +6372,16 @@ This package contains the DUNE UG grid classes.")
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke "make" "build_tests" make-flags))))))
     (inputs
-     `(("dune-common" ,dune-common)
-       ("dune-geometry" ,dune-geometry)
-       ("gmp" ,gmp)
-       ("metis" ,metis)
-       ("openblas" ,openblas)
-       ("python" ,python)))
+     (list dune-common
+           dune-geometry
+           gmp
+           metis
+           openblas
+           python))
     (propagated-inputs
-     `(("dune-uggrid" ,dune-uggrid)))
+     (list dune-uggrid))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)))
+     (list gfortran pkg-config))
     (home-page "https://dune-project.org/")
     (synopsis "Distributed and Unified Numerics Environment")
     (description "DUNE, the Distributed and Unified Numerics Environment is a
@@ -6023,17 +6427,16 @@ This package contains the basic DUNE grid classes.")
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke "make" "build_tests" make-flags))))))
     (inputs
-     `(("dune-common" ,dune-common)
-       ;; Optional
-       ("metis" ,metis)
-       ("suitesparse" ,suitesparse)
-       ("superlu" ,superlu)
-       ("openblas" ,openblas)
-       ("gmp" ,gmp)
-       ("python" ,python)))
+     (list dune-common
+           ;; Optional
+           metis
+           suitesparse
+           superlu
+           openblas
+           gmp
+           python))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)))
+     (list gfortran pkg-config))
     (home-page "https://dune-project.org/")
     (synopsis "Distributed and Unified Numerics Environment")
     (description "DUNE, the Distributed and Unified Numerics Environment is a
@@ -6081,15 +6484,14 @@ aggregation-based algebraic multigrid.")
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke "make" "build_tests" make-flags))))))
     (inputs
-     `(("dune-common" ,dune-common)
-       ("dune-geometry" ,dune-geometry)
-       ;; Optional
-       ("metis" ,metis)
-       ("superlu" ,superlu)
-       ("gmp" ,gmp)))
+     (list dune-common
+           dune-geometry
+           ;; Optional
+           metis
+           superlu
+           gmp))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)))
+     (list gfortran pkg-config))
     (home-page "https://dune-project.org/")
     (synopsis "Distributed and Unified Numerics Environment") ; TODO
     (description "This DUNE module provides interface and implementation for
@@ -6134,19 +6536,18 @@ assemble global function spaces on finite-element grids.")
                      (string-append (assoc-ref inputs "dune-grid") "/share"))
              (apply invoke "make" "build_tests" make-flags))))))
     (inputs
-     `(("dune-common" ,dune-common)
-       ("dune-geometry" ,dune-geometry)
-       ("dune-grid" ,dune-grid)
-       ;; Optional
-       ("metis" ,metis)
-       ("openblas" ,openblas)
-       ("python" ,python)
-       ("superlu" ,superlu)
-       ("gmp" ,gmp)
-       ("zlib" ,zlib)))
+     (list dune-common
+           dune-geometry
+           dune-grid
+           ;; Optional
+           metis
+           openblas
+           python
+           superlu
+           gmp
+           zlib))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)))
+     (list gfortran pkg-config))
     (home-page "https://dune-project.org/")
     (synopsis "Distributed and Unified Numerics Environment")
     (description "ALUGrid is an adaptive, loadbalancing, unstructured
@@ -6176,16 +6577,15 @@ cubes.")
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke "make" "build_tests" make-flags))))))
     (inputs
-     `(("dune-common" ,dune-common)
-       ("dune-geometry" ,dune-geometry)
-       ("dune-grid" ,dune-grid)
-       ;; Optional
-       ("metis" ,metis)
-       ("openblas" ,openblas)
-       ("gmp" ,gmp)))
+     (list dune-common
+           dune-geometry
+           dune-grid
+           ;; Optional
+           metis
+           openblas
+           gmp))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)))
+     (list gfortran pkg-config))
     (home-page "http://numerik.mi.fu-berlin.de/dune-subgrid/index.php")
     (synopsis "Distributed and Unified Numerics Environment")
     (description "The dune-subgrid module marks elements of
@@ -6216,16 +6616,15 @@ provides the full grid interface including adaptive mesh refinement.")
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke "make" "build_tests" make-flags))))))
     (inputs
-     `(("dune-common" ,dune-common)
-       ;; Optional
-       ("openblas" ,openblas)
-       ("python" ,python)
-       ("metis" ,metis)
-       ("superlu" ,superlu)
-       ("gmp" ,gmp)))
+     (list dune-common
+           ;; Optional
+           openblas
+           python
+           metis
+           superlu
+           gmp))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)))
+     (list gfortran pkg-config))
     (home-page "https://dune-project.org/")
     (synopsis "Distributed and Unified Numerics Environment")
     (description "TypeTree is a template library for constructing and
@@ -6261,20 +6660,19 @@ operating on statically typed trees of objects.")
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke "make" "build_tests" make-flags))))))
     (inputs
-     `(("dune-common" ,dune-common)
-       ("dune-istl" ,dune-istl)
-       ("dune-localfunctions" ,dune-localfunctions)
-       ("dune-grid" ,dune-grid)
-       ("dune-geometry" ,dune-geometry)
-       ("dune-typetree" ,dune-typetree)
-       ("openblas" ,openblas)
-       ("metis" ,metis)
-       ("python" ,python)
-       ("superlu" ,superlu)
-       ("gmp" ,gmp)))
+     (list dune-common
+           dune-istl
+           dune-localfunctions
+           dune-grid
+           dune-geometry
+           dune-typetree
+           openblas
+           metis
+           python
+           superlu
+           gmp))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)))
+     (list gfortran pkg-config))
     (home-page "https://dune-project.org/")
     (synopsis "Distributed and Unified Numerics Environment")
     (description "The dune-functions module provides an abstraction layer for
@@ -6300,23 +6698,22 @@ implemented as callable objects, and bases of finite element spaces.")
     (build-system cmake-build-system)
     (arguments '(#:tests? #f)) ; XXX: the tests cannot be compiled
     (inputs
-     `(("dune-common" ,dune-common)
-       ("dune-istl" ,dune-istl)
-       ("dune-localfunctions" ,dune-localfunctions)
-       ("dune-geometry" ,dune-geometry)
-       ("dune-grid" ,dune-grid)
-       ("dune-typetree" ,dune-typetree)
-       ("dune-functions" ,dune-functions)
-       ;; Optional
-       ("openblas" ,openblas)
-       ("eigen" ,eigen)
-       ("metis" ,metis)
-       ("python" ,python)
-       ("superlu" ,superlu)
-       ("gmp" ,gmp)))
+     (list dune-common
+           dune-istl
+           dune-localfunctions
+           dune-geometry
+           dune-grid
+           dune-typetree
+           dune-functions
+           ;; Optional
+           openblas
+           eigen
+           metis
+           python
+           superlu
+           gmp))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)))
+     (list gfortran pkg-config))
     (home-page "https://dune-project.org/")
     (synopsis "Differential equations solver toolbox")
     (description "PDELab is a partial differential equations solver toolbox
@@ -6390,7 +6787,7 @@ built on top of DUNE, the Distributed and Unified Numerics Environment.")
         (base32 "0h4xj6pyyac79ka5ibqjilfa3s9j3yxnzgpwc57b54kfh2bj3447"))))
     (build-system gnu-build-system)
     (inputs
-     `(("python2" ,python-2)))
+     (list python-2))
     (arguments
      `(#:tests? #f                      ; no tests
        #:phases
@@ -6481,7 +6878,7 @@ management via the GIMPS project's Primenet server.")
                          (append '("formats.txt" "README" "schreier.txt")
                                  (find-files "." "\\.pdf$")))))))))
     (inputs
-     `(("gmp" ,gmp)))                   ;for sumlines
+     (list gmp))                   ;for sumlines
     (home-page "https://pallini.di.uniroma1.it/")
     (synopsis "Library for graph automorphisms")
     (description "@code{nauty} (No AUTomorphisms, Yes?) is a set of
@@ -6512,10 +6909,9 @@ compiled against the nauty library.")
          "1j5aji1g2vmdvc0gqz45n2ll2l2f6czca04wiyfl5g3sm3a6vhvb"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("m4" ,m4)))
+     (list m4))
     (inputs
-     `(("glpk" ,glpk)
-       ("gmp" ,gmp)))
+     (list glpk gmp))
     (home-page "https://www.bugseng.com/parma-polyhedra-library")
     (synopsis
      "Parma Polyhedra Library for computations with polyhedra")
@@ -6551,8 +6947,8 @@ functions.")
        (base32
         "0vh7cd1915bjqzkdp3sk25ngy8cq624mkh8c53c5bnzk357kb0fk"))))
     (build-system cmake-build-system)
-    (inputs `(("qtbase" ,qtbase-5)))
-    (native-inputs `(("qttools" ,qttools)))
+    (inputs (list qtbase-5))
+    (native-inputs (list qttools))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -6634,14 +7030,14 @@ researchers and developers alike to get started on SAT.")
        ("doxygen" ,doxygen)
        ("file" ,file)))
     (inputs
-     `(("gmp" ,gmp)
-       ("mpfr" ,mpfr)
-       ("libxml2" ,libxml2)
-       ("curl" ,curl)
-       ("icu4c" ,icu4c)
-       ("gnuplot" ,gnuplot)
-       ("readline" ,readline)
-       ("libiconv" ,libiconv)))
+     (list gmp
+           mpfr
+           libxml2
+           curl
+           icu4c
+           gnuplot
+           readline
+           libiconv))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -6677,19 +7073,19 @@ cli.")
         (base32 "1nrx7gp6f1yalbdda1gb97azhbr4xclq2xf08vvbvsk8jfd6fd2v"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("libtool" ,libtool)
-       ("file" ,file)))
+     (list pkg-config
+           intltool
+           automake
+           autoconf
+           libtool
+           file))
     (inputs
-     `(("gmp" ,gmp)
-       ("mpfr" ,mpfr)
-       ("libqalculate" ,libqalculate)
-       ("libxml2" ,libxml2)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)))
+     (list gmp
+           mpfr
+           libqalculate
+           libxml2
+           glib
+           gtk+))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -6742,36 +7138,32 @@ numeric differences and differences in numeric formats.")
 (define-public why3
   (package
     (name "why3")
-    (version "1.3.3")
+    (version "1.4.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://gforge.inria.fr/frs/download.php/file"
-                                  "/38367/why3-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://gitlab.inria.fr/why3/why3")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1n0a2nn1gnk0zg339lh698g4wpk7m8m1vyi2yvifd5adqvk4milw"))))
+                "0pfsiddnk26f384wbazfpgzh1n1ibf3xq101q74mxvczi7z0a791"))))
     (build-system ocaml-build-system)
     (native-inputs
-     `(("coq" ,coq)
-       ("ocaml" ,ocaml)
-       ("which" ,which)))
+     (list autoconf automake coq ocaml which))
     (propagated-inputs
-     `(("camlzip" ,camlzip)
-       ("ocaml-graph" ,ocaml-graph)
-       ("ocaml-menhir" ,ocaml-menhir)
-       ("ocaml-num" ,ocaml-num)
-       ("ocaml-zarith" ,ocaml-zarith)))
+     (list camlzip ocaml-graph ocaml-menhir ocaml-num ocaml-zarith))
     (inputs
-     `(("coq-flocq" ,coq-flocq)
-       ("emacs-minimal" ,emacs-minimal)
-       ("zlib" ,zlib)))
+     (list coq-flocq emacs-minimal zlib))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'fix-configure
+         (add-before 'configure 'bootstrap
            (lambda _
+             (invoke "./autogen.sh")
              (setenv "CONFIG_SHELL" (which "sh"))
              (substitute* "configure"
+               (("#! /bin/sh") (string-append "#!" (which "sh")))
                ;; find ocaml-num in the correct directory
                (("\\$DIR/nums.cma") "$DIR/num.cma")
                (("\\$DIR/num.cmi") "$DIR/core/num.cmi"))
@@ -6803,14 +7195,14 @@ of C, Java, or Ada programs.")
 (define-public frama-c
   (package
     (name "frama-c")
-    (version "22.0")
+    (version "23.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://frama-c.com/download/frama-c-"
-                                  version "-Titanium.tar.gz"))
+                                  version "-Vanadium.tar.gz"))
               (sha256
                (base32
-                "1mq1fijka95ydrla486yr4w6wdl9l7vmp512s1q00b0p6lmfwmkh"))))
+                "1rgkq9sg436smw005ag0j6y3xryhjn18a07m5wjfrfp0s1438nnj"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:tests? #f; no test target in Makefile
@@ -6821,14 +7213,14 @@ of C, Java, or Ada programs.")
              (setenv "CONFIG_SHELL"
                      (search-input-file inputs "/bin/sh")))))))
     (inputs
-     `(("gmp" ,gmp)))
+     (list gmp))
     (propagated-inputs
-     `(("ocaml-biniou" ,ocaml-biniou)
-       ("ocaml-easy-format" ,ocaml-easy-format)
-       ("ocaml-graph" ,ocaml-graph)
-       ("ocaml-yojson" ,ocaml-yojson)
-       ("ocaml-zarith" ,ocaml-zarith)
-       ("why3" ,why3)))
+     (list ocaml-biniou
+           ocaml-easy-format
+           ocaml-graph
+           ocaml-yojson
+           ocaml-zarith
+           why3))
     (native-search-paths
      (list (search-path-specification
             (variable "FRAMAC_SHARE")
@@ -6872,8 +7264,7 @@ projects up to the certification of critical software.")
              (invoke "make" "-j" (number->string (parallel-job-count))
                      "blitz-doc"))))))
     (native-inputs
-     `(("python" ,python)
-       ("texinfo" ,texinfo)))
+     (list python texinfo))
     (synopsis "C++ template class library for multidimensional arrays")
     (description "Blitz++ is a C++ template class library that provides
 high-performance multidimensional array containers for scientific computing.")
@@ -6901,8 +7292,7 @@ high-performance multidimensional array containers for scientific computing.")
                 (patches (search-patches "fxdiv-system-libraries.patch"))))
       (build-system cmake-build-system)
       (inputs
-       `(("googletest" ,googletest)
-         ("googlebenchmark" ,googlebenchmark)))
+       (list googletest googlebenchmark))
       (synopsis
        "C++ library for division via fixed-point multiplication by inverse")
       (description
@@ -6930,12 +7320,33 @@ when an application performs repeated divisions by the same divisor.")
                   "05mm4vrxsac35hjf5djif9r6rdxj9ippg97ia3p6q6b8lrp7srwv"))
                 (patches (search-patches "fp16-system-libraries.patch"))))
       (build-system cmake-build-system)
+      (arguments
+       `(#:imported-modules ((guix build python-build-system)
+                             ,@%cmake-build-system-modules)
+         #:modules (((guix build python-build-system)
+                     #:select (site-packages))
+                    (guix build cmake-build-system)
+                    (guix build utils))
+         #:phases (modify-phases %standard-phases
+                    (add-after 'install 'move-python-files
+                      (lambda* (#:key inputs outputs #:allow-other-keys)
+                        ;; Python files get installed to $includedir (!).
+                        ;; Move them to the usual Python site directory.
+                        (let* ((out     (assoc-ref outputs "out"))
+                               (include (string-append out "/include"))
+                               (site    (site-packages inputs outputs))
+                               (target  (string-append site "/fp16")))
+                          (mkdir-p target)
+                          (for-each (lambda (file)
+                                      (rename-file file
+                                                   (string-append target "/"
+                                                                  (basename
+                                                                   file))))
+                                    (find-files include "\\.py$"))))))))
       (native-inputs
-       `(("python-wrapper" ,python-wrapper)))
+       (list python-wrapper))
       (inputs
-       `(("psimd" ,psimd)
-         ("googletest" ,googletest)
-         ("googlebenchmark" ,googlebenchmark)))
+       (list psimd googletest googlebenchmark))
       (synopsis "C++ library for half-precision floating point formats")
       (description
        "This header-only C++ library implements conversion to and from
diff --git a/gnu/packages/matrix.scm b/gnu/packages/matrix.scm
index 5c2b194d07..8cdfa38b32 100644
--- a/gnu/packages/matrix.scm
+++ b/gnu/packages/matrix.scm
@@ -22,14 +22,18 @@
 (define-module (gnu packages matrix)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages monitoring)
+  #:use-module (gnu packages python-build)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages xml)
   #:use-module (guix build-system python)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages))
 
 (define-public python-matrix-client
@@ -45,11 +49,9 @@
          "1mgjd0ymf9mvqjkvgx3xjhxap7rzdmpa21wfy0cxbw2xcswcrqyw"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-responses" ,python-responses)))
+     (list python-pytest python-pytest-runner python-responses))
     (home-page
      "https://github.com/matrix-org/matrix-python-sdk")
     (synopsis "Client-Server SDK for Matrix")
@@ -72,9 +74,7 @@
      ;; tests require synapse, creating a circular dependency.
      '(#:tests? #f))
     (propagated-inputs
-     `(("python-twisted" ,python-twisted)
-       ("python-ldap3" ,python-ldap3)
-       ("python-service-identity" ,python-service-identity)))
+     (list python-twisted python-ldap3 python-service-identity))
     (home-page "https://github.com/matrix-org/matrix-synapse-ldap3")
     (synopsis "LDAP3 auth provider for Synapse")
     (description
@@ -96,51 +96,50 @@ an LDAP server.")
     (build-system python-build-system)
     ;; TODO Run tests with ‘PYTHONPATH=. trial3 tests’.
     (propagated-inputs
-     `(("python-simplejson" ,python-simplejson) ; not attested but required
-       ;; requirements (synapse/python_dependencies.py)
-       ("python-jsonschema" ,python-jsonschema)
-       ("python-frozendict" ,python-frozendict)
-       ("python-unpaddedbase64" ,python-unpaddedbase64)
-       ("python-canonicaljson" ,python-canonicaljson)
-       ("python-signedjson" ,python-signedjson)
-       ("python-pynacl" ,python-pynacl)
-       ("python-idna" ,python-idna)
-       ("python-service-identity" ,python-service-identity)
-       ("python-twisted" ,python-twisted)
-       ("python-treq" ,python-treq)
-       ("python-pyopenssl" ,python-pyopenssl)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-pyasn1" ,python-pyasn1)
-       ("python-pyasn1-modules" ,python-pyasn1-modules)
-       ("python-daemonize" ,python-daemonize)
-       ("python-bcrypt" ,python-bcrypt)
-       ("python-pillow" ,python-pillow)
-       ("python-sortedcontainers" ,python-sortedcontainers)
-       ("python-pymacaroons" ,python-pymacaroons)
-       ("python-msgpack" ,python-msgpack)
-       ("python-phonenumbers" ,python-phonenumbers)
-       ("python-six" ,python-six)
-       ("python-prometheus-client" ,python-prometheus-client)
-       ("python-attrs" ,python-attrs)
-       ("python-netaddr" ,python-netaddr)
-       ("python-jinja2" ,python-jinja2)
-       ("python-bleach" ,python-bleach)
-       ("python-typing-extensions" ,python-typing-extensions)
-       ;; conditional requirements (synapse/python_dependencies.py)
-       ;;("python-hiredis" ,python-hiredis)
-       ("python-matrix-synapse-ldap3" ,python-matrix-synapse-ldap3)
-       ("python-psycopg2" ,python-psycopg2)
-       ("python-jinja2" ,python-jinja2)
-       ("python-txacme" ,python-txacme)
-       ("python-pysaml2" ,python-pysaml2)
-       ("python-lxml" ,python-lxml)
-       ("python-packaging" ,python-packaging)
-       ;; sentry-sdk, jaeger-client, and opentracing could be included, but
-       ;; all are monitoring aids and not essential.
-       ("python-pyjwt" ,python-pyjwt)))
+     (list python-simplejson ; not attested but required
+           ;; requirements (synapse/python_dependencies.py)
+           python-jsonschema
+           python-frozendict
+           python-unpaddedbase64
+           python-canonicaljson
+           python-signedjson
+           python-pynacl
+           python-idna
+           python-service-identity
+           python-twisted
+           python-treq
+           python-pyopenssl
+           python-pyyaml
+           python-pyasn1
+           python-pyasn1-modules
+           python-daemonize
+           python-bcrypt
+           python-pillow
+           python-sortedcontainers
+           python-pymacaroons
+           python-msgpack
+           python-phonenumbers
+           python-six
+           python-prometheus-client
+           python-attrs
+           python-netaddr
+           python-jinja2
+           python-bleach
+           python-typing-extensions
+           ;; conditional requirements (synapse/python_dependencies.py)
+           ;;("python-hiredis" ,python-hiredis)
+           python-matrix-synapse-ldap3
+           python-psycopg2
+           python-jinja2
+           python-txacme
+           python-pysaml2
+           python-lxml
+           python-packaging
+           ;; sentry-sdk, jaeger-client, and opentracing could be included, but
+           ;; all are monitoring aids and not essential.
+           python-pyjwt))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-parameterized" ,python-parameterized)))
+     (list python-mock python-parameterized))
     (home-page "https://github.com/matrix-org/synapse")
     (synopsis "Matrix reference homeserver")
     (description "Synapse is a reference \"homeserver\" implementation of
@@ -149,3 +148,133 @@ Python/Twisted.  It is intended to showcase the concept of Matrix and let
 folks see the spec in the context of a codebase and let you run your own
 homeserver and generally help bootstrap the ecosystem.")
     (license license:asl2.0)))
+
+(define-public python-matrix-nio
+  (package
+    (name "python-matrix-nio")
+    (version "0.18.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "matrix-nio" version))
+       (sha256
+        (base32 "0cw4y6dx8n8hynxqlzzkj8p34nfbc2xryvmkr5yhmja31y4rks4k"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'install-tests
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (copy-recursively (string-append
+                                (assoc-ref inputs "tests") "/tests")
+                               "tests")
+             #t))
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               ;; FIXME: two tests fail, for unknown reasons
+               (invoke "python" "-m" "pytest" "-vv" "tests" "-k"
+                       (string-append
+                        "not test_upload_binary_file_object "
+                        "and not test_connect_wrapper"))))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest-6)
+       ("python-hyperframe" ,python-hyperframe)
+       ("python-hypothesis" ,python-hypothesis-6.23)
+       ("python-hpack" ,python-hpack)
+       ("python-faker" ,python-faker)
+       ("python-pytest-aiohttp" ,python-pytest-aiohttp)
+       ("python-aioresponses" ,python-aioresponses)
+       ("python-pytest-benchmark" ,python-pytest-benchmark)
+       ("python-toml" ,python-toml)
+       ("tests"
+        ;; The release on pypi comes without tests.  We can't build from this
+        ;; checkout, though, because installation requires an invocation of
+        ;; poetry.
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/poljar/matrix-nio.git")
+                 (commit version)))
+           (file-name (git-file-name name version))
+           (sha256
+            (base32
+             "152prkndk53pfxm4in4xak4hwzyaxlbp6wv2zbk2xpzgyy9bvn3s"))))))
+    (propagated-inputs
+     (list python-aiofiles
+           python-aiohttp
+           python-aiohttp-socks
+           python-atomicwrites-1.4
+           python-cachetools
+           python-future
+           python-h11
+           python-h2
+           python-jsonschema
+           python-logbook
+           python-olm
+           python-peewee
+           python-pycryptodome
+           python-unpaddedbase64))
+    (home-page "https://github.com/poljar/matrix-nio")
+    (synopsis
+     "Python Matrix client library, designed according to sans I/O principles")
+    (description
+     "Matrix nio is a multilayered Matrix client library.  The underlying base
+layer doesn't do any network IO on its own, but on top of that is a full
+fledged batteries-included asyncio layer using aiohttp.")
+    (license license:isc)))
+
+(define-public pantalaimon
+  (package
+    (name "pantalaimon")
+    (version "0.10.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/matrix-org/pantalaimon")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "153d8083lj3qqirbv5q1d3igzd61a5kyzfk7xmv29sd3jbs8ysm9"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'downgrade-appdirs-requirement
+           (lambda _
+             (substitute* "setup.py"
+               ;; FIXME: Remove this once appdirs is updated.
+               ;; Upgrading python-appdirs requires rebuilting 3000+ packages,
+               ;; when 1.4.4 is a simple maintenance fix from 1.4.3.
+               (("appdirs >= 1.4.4") "appdirs >= 1.4.3"))))
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "-vv" "tests")))))))
+    (native-inputs
+     (list python-pytest python-faker python-pytest-aiohttp
+           python-aioresponses))
+    (propagated-inputs
+     (list python-aiohttp
+           python-appdirs
+           python-attrs
+           python-cachetools
+           python-click
+           python-janus
+           python-keyring
+           python-logbook
+           python-matrix-nio
+           python-peewee
+           python-prompt-toolkit))
+    (home-page "https://github.com/matrix-org/pantalaimon")
+    (synopsis "Matrix proxy daemon that adds E2E encryption capabilities")
+    (description
+     "Pantalaimon is an end-to-end encryption aware Matrix reverse proxy
+daemon.  Pantalaimon acts as a good man in the middle that handles the
+encryption for you.  Messages are transparently encrypted and decrypted for
+clients inside of pantalaimon.")
+    (license license:asl2.0)))
diff --git a/gnu/packages/maven-parent-pom.scm b/gnu/packages/maven-parent-pom.scm
index 84af3a1c53..a47fbfa8c1 100644
--- a/gnu/packages/maven-parent-pom.scm
+++ b/gnu/packages/maven-parent-pom.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2020, 2021 Julien Lepiller <julien@lepiller.eu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,6 +20,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system ant)
@@ -321,14 +322,15 @@ other projects as their parent pom.")
                  (base32
                   "0yl2hbwz2kn1hll1i00ddzn8f89bfdcjwdifz0pj2j15k1gjch7v"))))
       (arguments
-       `(#:tests? #f
+       (list
+         #:tests? #f
          #:phases
-         (modify-phases %standard-phases
-           (delete 'unpack)
-           (delete 'configure)
-           (delete 'build)
-           (replace 'install
-             (install-pom-file (assoc-ref %build-inputs "source")))))))))
+         #~(modify-phases %standard-phases
+             (delete 'unpack)
+             (delete 'configure)
+             (delete 'build)
+             (replace 'install
+               (install-pom-file #$(package-source this-package)))))))))
 
 (define* (make-plexus-parent-pom version hash #:optional parent)
   (hidden-package
@@ -495,7 +497,7 @@ tool.  This package contains the Maven parent POM.")
            (replace 'install
              (install-pom-file "pom.xml")))))
       (propagated-inputs
-       `(("maven-parent-pom" ,maven-parent-pom-22)))
+       (list maven-parent-pom-22))
       (home-page "https://github.com/apache/maven-plugins")
       (synopsis "Maven parent pom for maven plugins projects")
       (description "This package contains the parent pom for maven plugins.")
@@ -516,14 +518,15 @@ tool.  This package contains the Maven parent POM.")
                   "11skhrjgrrs6z5rw1w39ap1pzhrc99g0czip10kz7wsavg746ibm"))))
       (build-system ant-build-system)
       (arguments
-       `(#:tests? #f
+       (list
+         #:tests? #f
          #:phases
-         (modify-phases %standard-phases
-           (delete 'unpack)
-           (delete 'build)
-           (delete 'configure)
-           (replace 'install
-             (install-pom-file (assoc-ref %build-inputs "source"))))))
+         #~(modify-phases %standard-phases
+             (delete 'unpack)
+             (delete 'build)
+             (delete 'configure)
+             (replace 'install
+               (install-pom-file #$(package-source this-package))))))
       (propagated-inputs
        `(("maven-parent-pom-27" ,maven-parent-pom-27)))
       (home-page "https://apache.org/maven")
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index f7cb168f47..479746639a 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -65,7 +65,7 @@
        ("java-mockito-1" ,java-mockito-1)
        ("java-objenesis" ,java-objenesis)))
     (propagated-inputs
-     `(("maven-resolver-parent-pom" ,maven-resolver-parent-pom)))
+     (list maven-resolver-parent-pom))
     (home-page "https://github.com/apache/maven-resolver")
     (synopsis "Maven repository system API")
     (description "This package contains the API for the maven repository system.")
@@ -103,7 +103,7 @@
          (replace 'install
            (install-from-pom "maven-resolver-spi/pom.xml")))))
     (propagated-inputs
-     `(("maven-resolver-api" ,maven-resolver-api)))
+     (list maven-resolver-api))
     (synopsis "Maven repository system SPI")
     (description "This package contains the service provider interface (SPI)
 for repository system implementations and repository connectors.")))
@@ -118,8 +118,7 @@ for repository system implementations and repository connectors.")))
        #:test-dir "maven-resolver-test-util/src/test"
        #:jdk ,icedtea-8))
     (inputs
-     `(("maven-resolver-api" ,maven-resolver-api)
-       ("maven-resolver-spi" ,maven-resolver-spi)))
+     (list maven-resolver-api maven-resolver-spi))
     (synopsis "Utility classes for testing the maven repository system")
     (description "This package contains a collection of utility classes to
 ease testing of the repository system.")))
@@ -137,11 +136,9 @@ ease testing of the repository system.")))
          (replace 'install
            (install-from-pom "maven-resolver-util/pom.xml")))))
     (propagated-inputs
-     `(("maven-resolver-api" ,maven-resolver-api)))
+     (list maven-resolver-api))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)
-       ("maven-resolver-test-util" ,maven-resolver-test-util)))
+     (list java-junit java-hamcrest-core maven-resolver-test-util))
     (synopsis "Utility classes for the maven repository system")
     (description "This package contains a collection of utility classes to
 ease usage of the repository system.")))
@@ -167,14 +164,10 @@ ease usage of the repository system.")))
          (replace 'install
            (install-from-pom "maven-resolver-connector-basic/pom.xml")))))
     (propagated-inputs
-     `(("maven-resolver-api" ,maven-resolver-api)
-       ("maven-resolver-spi" ,maven-resolver-spi)
-       ("maven-resolver-util" ,maven-resolver-util)
-       ("java-slf4j-api" ,java-slf4j-api)))
+     (list maven-resolver-api maven-resolver-spi maven-resolver-util
+           java-slf4j-api))
     (native-inputs
-     `(("java-javax-inject" ,java-javax-inject)
-       ("java-junit" ,java-junit)
-       ("maven-resolver-test-util" ,maven-resolver-test-util)))
+     (list java-javax-inject java-junit maven-resolver-test-util))
     (synopsis "Maven repository connector implementation")
     (description "This package contains a repository connector implementation
 for repositories using URI-based layouts.")))
@@ -224,17 +217,16 @@ for repositories using URI-based layouts.")))
          (replace 'install
            (install-from-pom "maven-resolver-impl/pom.xml")))))
     (propagated-inputs
-     `(("maven-resolver-api" ,maven-resolver-api)
-       ("maven-resolver-spi" ,maven-resolver-spi)
-       ("maven-resolver-util" ,maven-resolver-util)
-       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
-       ("java-javax-inject" ,java-javax-inject)
-       ("java-guice" ,java-guice)
-       ("java-slf4j-api" ,java-slf4j-api)
-       ("maven-resolver-parent-pom" ,maven-resolver-parent-pom)))
+     (list maven-resolver-api
+           maven-resolver-spi
+           maven-resolver-util
+           java-eclipse-sisu-inject
+           java-javax-inject
+           java-guice
+           java-slf4j-api
+           maven-resolver-parent-pom))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("maven-resolver-test-util" ,maven-resolver-test-util)))))
+     (list java-junit maven-resolver-test-util))))
 
 (define-public maven-resolver-transport-wagon
   (package
@@ -308,14 +300,14 @@ for repositories using URI-based layouts.")))
        ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
        ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)
-       ("maven-resolver-test-util" ,maven-resolver-test-util)
-       ("java-guava" ,java-guava)
-       ("java-cglib" ,java-cglib)
-       ("java-asm" ,java-asm)
-       ("java-aopalliance" ,java-aopalliance)
-       ("java-guice" ,java-guice)))
+     (list java-junit
+           java-hamcrest-core
+           maven-resolver-test-util
+           java-guava
+           java-cglib
+           java-asm
+           java-aopalliance
+           java-guice))
     (synopsis "Transport implementation for Maven")
     (description "This package contains a transport implementation based on
 Maven Wagon, for use in Maven.")))
@@ -347,8 +339,8 @@ Maven Wagon, for use in Maven.")))
          (add-before 'install 'install-parent (install-pom-file "pom.xml"))
          (replace 'install (install-from-pom "aether-api/pom.xml")))))
     (propagated-inputs
-     `(("java-sonatype-forge-parent-pom" ,java-sonatype-forge-parent-pom-6)))
-    (native-inputs `(("java-junit" ,java-junit)))
+     (list java-sonatype-forge-parent-pom-6))
+    (native-inputs (list java-junit))
     (home-page "https://github.com/sonatype/sonatype-aether")
     (synopsis "Maven repository system API")
     (description "This package contains the API for the maven repository system.")
@@ -366,7 +358,7 @@ Maven Wagon, for use in Maven.")))
        (modify-phases %standard-phases
          (replace 'install (install-from-pom "aether-spi/pom.xml")))))
     (propagated-inputs
-     `(("java-sonatype-aether-api" ,java-sonatype-aether-api)))
+     (list java-sonatype-aether-api))
     (synopsis "Maven repository system SPI")
     (description "This package contains the service provider interface (SPI)
 for repository system implementations and repository connectors.")))
@@ -380,8 +372,7 @@ for repository system implementations and repository connectors.")))
        #:source-dir "aether-test-util/src/main/java"
        #:test-dir "aether-test-util/src/test"))
     (inputs
-     `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
-       ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)))
+     (list java-sonatype-aether-api java-sonatype-aether-spi))
     (synopsis "Utility classes for testing the maven repository system")
     (description "This package contains a collection of utility classes to
 ease testing of the repository system.")))
@@ -398,10 +389,9 @@ ease testing of the repository system.")))
        (modify-phases %standard-phases
          (replace 'install (install-from-pom "aether-util/pom.xml")))))
     (propagated-inputs
-     `(("java-sonatype-aether-api" ,java-sonatype-aether-api)))
+     (list java-sonatype-aether-api))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-sonatype-aether-test-util" ,java-sonatype-aether-test-util)))
+     (list java-junit java-sonatype-aether-test-util))
     (synopsis "Utility classes for the maven repository system")
     (description "This package contains a collection of utility classes to
 ease usage of the repository system.")))
@@ -437,16 +427,15 @@ ease usage of the repository system.")))
              #t))
          (replace 'install (install-from-pom "aether-impl/pom.xml")))))
     (propagated-inputs
-     `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
-       ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)
-       ("java-sonatype-aether-util" ,java-sonatype-aether-util)
-       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
-       ("java-plexus-container-default" ,java-plexus-container-default)
-       ("java-slf4j-api" ,java-slf4j-api)))
+     (list java-sonatype-aether-api
+           java-sonatype-aether-spi
+           java-sonatype-aether-util
+           java-plexus-component-annotations
+           java-plexus-container-default
+           java-slf4j-api))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-plexus-component-metadata" ,java-plexus-component-metadata)
-       ("java-sonatype-aether-test-util" ,java-sonatype-aether-test-util)))))
+     (list java-junit java-plexus-component-metadata
+           java-sonatype-aether-test-util))))
 
 ;; Again, this old version is required by some maven plugins
 (define-public java-eclipse-aether-api
@@ -471,7 +460,7 @@ ease usage of the repository system.")))
        (modify-phases %standard-phases
          (add-before 'install 'install-parent (install-pom-file "pom.xml"))
          (replace 'install (install-from-pom "aether-api/pom.xml")))))
-    (native-inputs `(("java-junit" ,java-junit)))
+    (native-inputs (list java-junit))
     (home-page "https://github.com/sonatype/sonatype-aether")
     (synopsis "Maven repository system API")
     (description "This package contains the API for the maven repository system.")
@@ -489,7 +478,7 @@ ease usage of the repository system.")))
        (modify-phases %standard-phases
          (replace 'install (install-from-pom "aether-spi/pom.xml")))))
     (propagated-inputs
-     `(("java-eclipse-aether-api" ,java-eclipse-aether-api)))
+     (list java-eclipse-aether-api))
     (synopsis "Maven repository system SPI")
     (description "This package contains the service provider interface (SPI)
 for repository system implementations and repository connectors.")))
@@ -506,8 +495,7 @@ for repository system implementations and repository connectors.")))
        (modify-phases %standard-phases
          (replace 'install (install-from-pom "aether-util/pom.xml")))))
     (propagated-inputs
-     `(("java-eclipse-aether-api" ,java-eclipse-aether-api)
-       ("java-eclipse-aether-spi" ,java-eclipse-aether-spi)))
+     (list java-eclipse-aether-api java-eclipse-aether-spi))
     (synopsis "Utility classes for testing the maven repository system")
     (description "This package contains a collection of utility classes to
 ease testing of the repository system.")))
@@ -524,10 +512,9 @@ ease testing of the repository system.")))
        (modify-phases %standard-phases
          (replace 'install (install-from-pom "aether-util/pom.xml")))))
     (propagated-inputs
-     `(("java-eclipse-aether-api" ,java-eclipse-aether-api)))
+     (list java-eclipse-aether-api))
     (native-inputs
-     `(("java-eclipse-aether-test-util" ,java-eclipse-aether-test-util)
-       ("java-junit" ,java-junit)))
+     (list java-eclipse-aether-test-util java-junit))
     (synopsis "Utility classes for the maven repository system")
     (description "This package contains a collection of utility classes to
 ease usage of the repository system.")))
@@ -544,16 +531,15 @@ ease usage of the repository system.")))
        (modify-phases %standard-phases
          (replace 'install (install-from-pom "aether-impl/pom.xml")))))
     (propagated-inputs
-     `(("java-eclipse-aether-api" ,java-eclipse-aether-api)
-       ("java-eclipse-aether-spi" ,java-eclipse-aether-spi)
-       ("java-eclipse-aether-util" ,java-eclipse-aether-util)
-       ("java-javax-inject" ,java-javax-inject)
-       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
-       ("java-guice" ,java-guice)
-       ("java-slf4j-api" ,java-slf4j-api)))
+     (list java-eclipse-aether-api
+           java-eclipse-aether-spi
+           java-eclipse-aether-util
+           java-javax-inject
+           java-eclipse-sisu-inject
+           java-guice
+           java-slf4j-api))
     (native-inputs
-     `(("java-eclipse-aether-test-util" ,java-eclipse-aether-test-util)
-       ("java-junit" ,java-junit)))))
+     (list java-eclipse-aether-test-util java-junit))))
 
 (define-public maven-shared-utils
   (package
@@ -591,10 +577,7 @@ ease usage of the repository system.")))
        ("java-plexus-container-default" ,java-plexus-container-default)
        ("maven-parent-pom-30" ,maven-parent-pom-30)))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)
-       ("java-commons-lang3" ,java-commons-lang3)))
+     (list unzip java-junit java-hamcrest-core java-commons-lang3))
     (home-page "https://maven.apache.org/shared/maven-shared-utils/")
     (synopsis "Plexus-util replacement for maven")
     (description "This project aims to be a functional replacement for
@@ -622,10 +605,9 @@ replacement with improvements.")
          (replace 'install
            (install-from-pom "maven-plugin-annotations/pom.xml")))))
     (propagated-inputs
-     `(("maven-artifact" ,maven-artifact)
-       ("maven-plugin-tools-parent-pom" ,maven-plugin-tools-parent-pom)))
+     (list maven-artifact maven-plugin-tools-parent-pom))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
     (synopsis "Java 5 annotations to use in Mojos")
     (description "This package contains Java 5 annotations for use in Mojos.")
@@ -669,9 +651,7 @@ replacement with improvements.")
      `(("java-plexus-utils" ,java-plexus-utils)
        ("maven-wagon-parent-pom" ,maven-wagon-parent-pom)))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("java-junit" ,java-junit)
-       ("java-easymock" ,java-easymock)))
+     (list unzip java-junit java-easymock))
     (home-page "https://maven.apache.org/wagon")
     (synopsis "Transport abstraction for Maven")
     (description "Maven Wagon is a transport abstraction that is used in Maven's
@@ -752,8 +732,7 @@ classes used in multiple maven-wagon components.")))
              (invoke "ant" "jar")
              #t)))))
     (inputs
-     `(("java-plexus-utils" ,java-plexus-utils)
-       ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
+     (list java-plexus-utils maven-wagon-provider-api))
     (native-inputs
      `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
        ("java-plexus-component-metadata" ,java-plexus-component-metadata)
@@ -836,12 +815,12 @@ Test Compatibility Kit.")))
              (invoke "ant" "jar")
              #t)))))
     (inputs
-     `(("java-plexus-utils" ,java-plexus-utils)
-       ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
-       ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
-       ("java-commons-io" ,java-commons-io)
-       ("java-jsoup" ,java-jsoup)
-       ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
+     (list java-plexus-utils
+           java-httpcomponents-httpclient
+           java-httpcomponents-httpcore
+           java-commons-io
+           java-jsoup
+           maven-wagon-provider-api))
     (native-inputs
      `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
        ("java-plexus-component-metadata" ,java-plexus-component-metadata)
@@ -908,12 +887,12 @@ wagon providers supporting HTTP.")))
                (("src/test") "wagon-providers/wagon-http/src/test"))
              #t)))))
     (inputs
-     `(("java-plexus-utils" ,java-plexus-utils)
-       ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
-       ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
-       ("maven-wagon-http-shared" ,maven-wagon-http-shared)
-       ("maven-wagon-tck-http" ,maven-wagon-tck-http)
-       ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
+     (list java-plexus-utils
+           java-httpcomponents-httpclient
+           java-httpcomponents-httpcore
+           maven-wagon-http-shared
+           maven-wagon-tck-http
+           maven-wagon-provider-api))
     (native-inputs
      `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
        ("java-plexus-component-metadata" ,java-plexus-component-metadata)
@@ -1062,11 +1041,9 @@ tool.  This package contains the Maven pom file, used by all maven components.")
          (replace 'install
            (install-from-pom "maven-artifact/pom.xml")))))
     (propagated-inputs
-     `(("java-plexus-utils" ,java-plexus-utils)
-       ("java-commons-lang3" ,java-commons-lang3)
-       ("maven-pom" ,maven-pom)))
+     (list java-plexus-utils java-commons-lang3 maven-pom))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (description "Apache Maven is a software project management and comprehension
 tool.  This package contains the Maven Artifact classes, providing the
 @code{Artifact} interface, with its @code{DefaultArtifact} implementation.  The
@@ -1097,29 +1074,27 @@ and compares versions:")))
              #t))
          (replace 'install (install-from-pom "maven-model/pom.xml")))))
     (propagated-inputs
-     `(("java-commons-lang3" ,java-commons-lang3)
-       ("java-plexus-utils" ,java-plexus-utils)
-       ("maven-pom" ,maven-pom)))
+     (list java-commons-lang3 java-plexus-utils maven-pom))
     (native-inputs
-     `(("java-modello-core" ,java-modello-core)
-       ;; for modello:
-       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
-       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
-       ("java-guice" ,java-guice)
-       ("java-cglib" ,java-cglib)
-       ("java-asm" ,java-asm)
-       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
-       ("java-javax-inject" ,java-javax-inject)
-       ("java-plexus-classworlds" ,java-plexus-classworlds)
-       ("java-guava" ,java-guava)
-       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
-       ("java-sisu-build-api" ,java-sisu-build-api)
-       ;; modello plugins:
-       ("java-modello-plugins-java" ,java-modello-plugins-java)
-       ("java-modello-plugins-xml" ,java-modello-plugins-xml)
-       ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
-       ;; for tests
-       ("java-junit" ,java-junit)))
+     (list java-modello-core
+           ;; for modello:
+           java-eclipse-sisu-plexus
+           java-plexus-component-annotations
+           java-guice
+           java-cglib
+           java-asm
+           java-eclipse-sisu-inject
+           java-javax-inject
+           java-plexus-classworlds
+           java-guava
+           java-geronimo-xbean-reflect
+           java-sisu-build-api
+           ;; modello plugins:
+           java-modello-plugins-java
+           java-modello-plugins-xml
+           java-modello-plugins-xpp3
+           ;; for tests
+           java-junit))
     (description "Apache Maven is a software project management and comprehension
 tool.  This package contains the model for Maven @dfn{POM} (Project Object Model),
 so really just plain Java objects.")))
@@ -1145,9 +1120,9 @@ so really just plain Java objects.")))
              #t))
          (replace 'install (install-from-pom "maven-builder-support/pom.xml")))))
     (propagated-inputs
-     `(("maven-pom" ,maven-pom)))
+     (list maven-pom))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (description "Apache Maven is a software project management and comprehension
 tool.  This package contains a support library for descriptor builders (model,
 setting, toolchains)")))
@@ -1175,28 +1150,27 @@ setting, toolchains)")))
              #t))
          (replace 'install (install-from-pom "maven-settings/pom.xml")))))
     (propagated-inputs
-     `(("java-plexus-utils" ,java-plexus-utils)
-       ("maven-pom" ,maven-pom)))
+     (list java-plexus-utils maven-pom))
     (native-inputs
-     `(("java-modello-core" ,java-modello-core)
-       ;; for modello:
-       ;("container" ,java-plexus-container-default)
-       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
-       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
-       ("java-guice" ,java-guice)
-       ("java-cglib" ,java-cglib)
-       ("java-asm" ,java-asm)
-       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
-       ("java-javax-inject" ,java-javax-inject)
-       ("java-plexus-classworlds" ,java-plexus-classworlds)
-       ("java-plexus-utils" ,java-plexus-utils)
-       ("java-guava" ,java-guava)
-       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
-       ("java-sisu-build-api" ,java-sisu-build-api)
-       ;; modello plugins:
-       ("java-modello-plugins-java" ,java-modello-plugins-java)
-       ("java-modello-plugins-xml" ,java-modello-plugins-xml)
-       ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
+     (list java-modello-core
+           ;; for modello:
+           ;("container" ,java-plexus-container-default)
+           java-eclipse-sisu-plexus
+           java-plexus-component-annotations
+           java-guice
+           java-cglib
+           java-asm
+           java-eclipse-sisu-inject
+           java-javax-inject
+           java-plexus-classworlds
+           java-plexus-utils
+           java-guava
+           java-geronimo-xbean-reflect
+           java-sisu-build-api
+           ;; modello plugins:
+           java-modello-plugins-java
+           java-modello-plugins-xml
+           java-modello-plugins-xpp3))
     (description "Apache Maven is a software project management and comprehension
 tool.  This package contains strictly the model for Maven settings, that is
 simply plain java objects.")))
@@ -1221,15 +1195,14 @@ simply plain java objects.")))
              #t))
          (replace 'install (install-from-pom "maven-settings-builder/pom.xml")))))
     (propagated-inputs
-     `(("java-plexus-utils" ,java-plexus-utils)
-       ("java-plexus-interpolation" ,java-plexus-interpolation)
-       ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
-       ("maven-builder-support" ,maven-builder-support)
-       ("maven-settings" ,maven-settings)
-       ("maven-pom" ,maven-pom)))
+     (list java-plexus-utils
+           java-plexus-interpolation
+           java-plexus-sec-dispatcher
+           maven-builder-support
+           maven-settings
+           maven-pom))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-plexus-component-annotations" ,java-plexus-component-annotations)))
+     (list java-junit java-plexus-component-annotations))
     (description "Apache Maven is a software project management and comprehension
 tool.  This package contains the effective model builder, with profile activation,
 inheritance, interpolation, @dots{}")))
@@ -1265,12 +1238,12 @@ inheritance, interpolation, @dots{}")))
          (replace 'install
            (install-from-pom "maven-model-builder/pom.xml")))))
     (propagated-inputs
-     `(("java-plexus-interpolation" ,java-plexus-interpolation)
-       ("java-plexus-utils" ,java-plexus-utils)
-       ("maven-artifact" ,maven-artifact)
-       ("maven-builder-support" ,maven-builder-support)
-       ("maven-model" ,maven-model)
-       ("maven-pom" ,maven-pom)))
+     (list java-plexus-interpolation
+           java-plexus-utils
+           maven-artifact
+           maven-builder-support
+           maven-model
+           maven-pom))
     (native-inputs
      `(("java-junit" ,java-junit)
        ("java-guava" ,java-guava)
@@ -1314,8 +1287,7 @@ inheritance, interpolation, @dots{}")))
          (replace 'install
            (install-from-pom "maven-repository-metadata/pom.xml")))))
     (propagated-inputs
-     `(("java-plexus-utils" ,java-plexus-utils)
-       ("maven-pom" ,maven-pom)))
+     (list java-plexus-utils maven-pom))
     (native-inputs
      `(("modello" ,java-modello-core)
        ;; for modello:
@@ -1361,18 +1333,18 @@ so really just plain objects.")))
          (replace 'install
            (install-from-pom "maven-resolver-provider/pom.xml")))))
     (propagated-inputs
-     `(("maven-model" ,maven-model)
-       ("maven-model-builder" ,maven-model-builder)
-       ("maven-resolver-spi" ,maven-resolver-spi)
-       ("maven-resolver-api" ,maven-resolver-api)
-       ("maven-resolver-impl" ,maven-resolver-impl)
-       ("maven-resolver-util" ,maven-resolver-util)
-       ("maven-builder-support" ,maven-builder-support)
-       ("maven-repository-metadata" ,maven-repository-metadata)
-       ("java-plexus-utils" ,java-plexus-utils)
-       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
-       ("java-guice" ,java-guice)
-       ("java-javax-inject" ,java-javax-inject)))))
+     (list maven-model
+           maven-model-builder
+           maven-resolver-spi
+           maven-resolver-api
+           maven-resolver-impl
+           maven-resolver-util
+           maven-builder-support
+           maven-repository-metadata
+           java-plexus-utils
+           java-plexus-component-annotations
+           java-guice
+           java-javax-inject))))
 
 (define-public maven-plugin-api
   (package
@@ -1874,20 +1846,20 @@ logging support.")))
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("maven-artifact" ,maven-artifact)
-       ("maven-repository-metadata" ,maven-repository-metadata)
-       ("maven-builder-support" ,maven-builder-support)
-       ("maven-model" ,maven-model)
-       ("maven-model-builder" ,maven-model-builder)
-       ("maven-settings" ,maven-settings)
-       ("maven-settings-builder" ,maven-settings-builder)
-       ("maven-core" ,maven-core)
-       ("maven-wagon-provider-api" ,maven-wagon-provider-api)
-       ("maven-wagon-file" ,maven-wagon-file)
-       ("maven-resolver-api" ,maven-resolver-api)
-       ("maven-resolver-util" ,maven-resolver-util)
-       ("maven-resolver-spi" ,maven-resolver-spi)
-       ("java-plexus-interpolation" ,java-plexus-interpolation)))
+     (list maven-artifact
+           maven-repository-metadata
+           maven-builder-support
+           maven-model
+           maven-model-builder
+           maven-settings
+           maven-settings-builder
+           maven-core
+           maven-wagon-provider-api
+           maven-wagon-file
+           maven-resolver-api
+           maven-resolver-util
+           maven-resolver-spi
+           java-plexus-interpolation))
     (native-inputs
      `(("java-modello-core" ,java-modello-core)
        ("java-plexus-utils" ,java-plexus-utils)
@@ -2000,59 +1972,58 @@ layer for plugins that need to keep Maven2 compatibility.")))
                (copy-recursively "apache-maven/src/conf" conf))
              #t)))))
     (inputs
-     `(("java-plexus-classworlds" ,java-plexus-classworlds)
-       ("maven-artifact" ,maven-artifact)
-       ("maven-embedder" ,maven-embedder)
-       ("maven-core" ,maven-core)
-       ("maven-compat" ,maven-compat)
-       ("maven-builder-support" ,maven-builder-support)
-       ("maven-model" ,maven-model)
-       ("maven-model-builder" ,maven-model-builder)
-       ("maven-settings" ,maven-settings)
-       ("maven-settings-builder" ,maven-settings-builder)
-       ("maven-plugin-api" ,maven-plugin-api)
-       ("maven-repository-metadata" ,maven-repository-metadata)
-       ("maven-shared-utils" ,maven-shared-utils)
-       ("maven-resolver-api" ,maven-resolver-api)
-       ("maven-resolver-spi" ,maven-resolver-spi)
-       ("maven-resolver-util" ,maven-resolver-util)
-       ("maven-resolver-impl" ,maven-resolver-impl)
-       ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
-       ("maven-resolver-provider" ,maven-resolver-provider)
-       ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
-       ("maven-wagon-provider-api" ,maven-wagon-provider-api)
-       ("maven-wagon-file" ,maven-wagon-file)
-       ("maven-wagon-http" ,maven-wagon-http)
-       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
-       ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
-       ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
-       ("maven-wagon-http-shared" ,maven-wagon-http-shared)
-       ("maven-wagon-tck-http" ,maven-wagon-tck-http)
-       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
-       ("java-guice" ,java-guice)
-       ("java-aopalliance" ,java-aopalliance)
-       ("java-cglib" ,java-cglib)
-       ("java-asm" ,java-asm)
-       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
-       ("java-javax-inject" ,java-javax-inject)
-       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
-       ("java-plexus-utils" ,java-plexus-utils)
-       ("java-plexus-interpolation" ,java-plexus-interpolation)
-       ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
-       ("java-plexus-cipher" ,java-plexus-cipher)
-       ("java-guava" ,java-guava)
-       ("java-jansi" ,java-jansi)
-       ("java-jsr250" ,java-jsr250)
-       ("java-cdi-api" ,java-cdi-api)
-       ("java-commons-cli" ,java-commons-cli)
-       ("java-commons-io" ,java-commons-io)
-       ("java-commons-lang3" ,java-commons-lang3)
-       ("java-slf4j-api" ,java-slf4j-api)
-       ;; TODO: replace with maven-slf4j-provider
-       ("java-slf4j-simple" ,java-slf4j-simple)))
-    (propagated-inputs
-     `(("coreutils" ,coreutils)
-       ("which" ,which)))
+     (list java-plexus-classworlds
+           maven-artifact
+           maven-embedder
+           maven-core
+           maven-compat
+           maven-builder-support
+           maven-model
+           maven-model-builder
+           maven-settings
+           maven-settings-builder
+           maven-plugin-api
+           maven-repository-metadata
+           maven-shared-utils
+           maven-resolver-api
+           maven-resolver-spi
+           maven-resolver-util
+           maven-resolver-impl
+           maven-resolver-connector-basic
+           maven-resolver-provider
+           maven-resolver-transport-wagon
+           maven-wagon-provider-api
+           maven-wagon-file
+           maven-wagon-http
+           java-commons-logging-minimal
+           java-httpcomponents-httpclient
+           java-httpcomponents-httpcore
+           maven-wagon-http-shared
+           maven-wagon-tck-http
+           java-eclipse-sisu-plexus
+           java-guice
+           java-aopalliance
+           java-cglib
+           java-asm
+           java-eclipse-sisu-inject
+           java-javax-inject
+           java-plexus-component-annotations
+           java-plexus-utils
+           java-plexus-interpolation
+           java-plexus-sec-dispatcher
+           java-plexus-cipher
+           java-guava
+           java-jansi
+           java-jsr250
+           java-cdi-api
+           java-commons-cli
+           java-commons-io
+           java-commons-lang3
+           java-slf4j-api
+           ;; TODO: replace with maven-slf4j-provider
+           java-slf4j-simple))
+    (propagated-inputs
+     (list coreutils which))
     (description "Apache Maven is a software project management and comprehension
 tool.  Based on the concept of a project object model: builds, dependency
 management, documentation creation, site publication, and distribution
@@ -2227,8 +2198,8 @@ reporting or the build process.")))
             (_ input)))
         (package-propagated-inputs maven-model-builder)))
     (native-inputs
-     `(("java-plexus-container-default" ,java-plexus-container-default)
-       ,@(package-native-inputs maven-plugin-api)))))
+     (modify-inputs (package-native-inputs maven-plugin-api)
+       (prepend java-plexus-container-default)))))
 
 (define-public maven-3.0-repository-metadata
   (package
@@ -2279,7 +2250,7 @@ reporting or the build process.")))
        ("java-plexus-utils" ,java-plexus-utils)
        ("maven-pom" ,maven-3.0-pom)))
     (native-inputs
-     `(("java-plexus-component-metadata" ,java-plexus-component-metadata)))))
+     (list java-plexus-component-metadata))))
 
 (define-public maven-3.0-core
   (package
@@ -2360,23 +2331,23 @@ reporting or the build process.")))
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("maven-model" ,maven-3.0-model)
-       ("maven-settings" ,maven-3.0-settings)
-       ("maven-settings-builder" ,maven-3.0-settings-builder)
-       ("maven-repository-metadata" ,maven-3.0-repository-metadata)
-       ("maven-artifact" ,maven-3.0-artifact)
-       ("maven-model-builder" ,maven-3.0-model-builder)
-       ("maven-aether-provider" ,maven-3.0-aether-provider)
-       ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
-       ("java-sonatype-aether-api" ,java-sonatype-aether-api)
-       ("java-sonatype-aether-util" ,java-sonatype-aether-util)
-       ("java-plexus-interpolation" ,java-plexus-interpolation)
-       ("java-plexus-utils" ,java-plexus-utils)
-       ("java-plexus-classworlds" ,java-plexus-classworlds)
-       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
-       ("java-plexus-container-default" ,java-plexus-container-default)
-       ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
-       ("maven-pom" ,maven-3.0-pom)))))
+     (list maven-3.0-model
+           maven-3.0-settings
+           maven-3.0-settings-builder
+           maven-3.0-repository-metadata
+           maven-3.0-artifact
+           maven-3.0-model-builder
+           maven-3.0-aether-provider
+           java-sonatype-aether-impl
+           java-sonatype-aether-api
+           java-sonatype-aether-util
+           java-plexus-interpolation
+           java-plexus-utils
+           java-plexus-classworlds
+           java-plexus-component-annotations
+           java-plexus-container-default
+           java-plexus-sec-dispatcher
+           maven-3.0-pom))))
 
 (define-public maven-3.0-compat
   (package
@@ -2396,24 +2367,24 @@ reporting or the build process.")))
                   #t))
               (delete 'build-tests))))))
     (propagated-inputs
-     `(("maven-model" ,maven-3.0-model)
-       ("maven-model-builder" ,maven-3.0-model-builder)
-       ("maven-settings" ,maven-3.0-settings)
-       ("maven-settings-builder" ,maven-3.0-settings-builder)
-       ("maven-artifact" ,maven-3.0-artifact)
-       ("maven-core" ,maven-3.0-core)
-       ("maven-aether-provider" ,maven-3.0-aether-provider)
-       ("maven-repository-metadata" ,maven-3.0-repository-metadata)
-       ("java-sonatype-aether-api" ,java-sonatype-aether-api)
-       ("java-sonatype-aether-util" ,java-sonatype-aether-util)
-       ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
-       ("java-plexus-utils" ,java-plexus-utils)
-       ("java-plexus-interpolation" ,java-plexus-interpolation)
-       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
-       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
-       ("java-plexus-container-default" ,java-plexus-container-default)
-       ("maven-wagon-provider-api" ,maven-wagon-provider-api)
-       ("maven-pom" ,maven-3.0-pom)))))
+     (list maven-3.0-model
+           maven-3.0-model-builder
+           maven-3.0-settings
+           maven-3.0-settings-builder
+           maven-3.0-artifact
+           maven-3.0-core
+           maven-3.0-aether-provider
+           maven-3.0-repository-metadata
+           java-sonatype-aether-api
+           java-sonatype-aether-util
+           java-sonatype-aether-impl
+           java-plexus-utils
+           java-plexus-interpolation
+           java-eclipse-sisu-plexus
+           java-plexus-component-annotations
+           java-plexus-container-default
+           maven-wagon-provider-api
+           maven-3.0-pom))))
 
 (define-public maven-shared-utils-3.0
   (package
@@ -2427,9 +2398,8 @@ reporting or the build process.")))
                (base32
                 "0qm8y85kip2hyhnhlkqgj0rhmf83z07s7l7gzsfl5dzl3kvp8nal"))))
     (propagated-inputs
-     `(("maven-core" ,maven-3.0-core)
-       ("maven-components-parent-pom" ,maven-components-parent-pom-21)
-       ,@(package-propagated-inputs maven-shared-utils)))))
+     (modify-inputs (package-propagated-inputs maven-shared-utils)
+       (prepend maven-3.0-core maven-components-parent-pom-21)))))
 
 (define-public maven-shared-utils-3.1
   (package
@@ -2470,17 +2440,15 @@ reporting or the build process.")))
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("maven-artifact" ,maven-3.0-artifact)
-       ("maven-compat" ,maven-3.0-compat)
-       ("maven-plugin-api" ,maven-3.0-plugin-api)
-       ("maven-shared-utils" ,maven-shared-utils)
-       ("maven-wagon-provider-api" ,maven-wagon-provider-api)
-       ("java-plexus-utils" ,java-plexus-utils)
-       ("maven-components-parent-pom" ,maven-components-parent-pom-22)))
+     (list maven-3.0-artifact
+           maven-3.0-compat
+           maven-3.0-plugin-api
+           maven-shared-utils
+           maven-wagon-provider-api
+           java-plexus-utils
+           maven-components-parent-pom-22))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("java-junit" ,java-junit)
-       ("java-easymock" ,java-easymock)))
+     (list unzip java-junit java-easymock))
     (home-page "https://maven.apache.org/shared/maven-dependency-tree")
     (synopsis "Tree-based API for resolution of Maven project dependencies")
     (description "This package provides a tree-based API for resolution of
@@ -2524,11 +2492,8 @@ Maven project dependencies.")
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("maven-plugin-api" ,maven-3.0-plugin-api)
-       ("maven-shared-io" ,maven-shared-io)
-       ("maven-shared-utils" ,maven-shared-utils)
-       ("java-plexus-utils" ,java-plexus-utils)
-       ("maven-components-parent-pom" ,maven-components-parent-pom-22)))
+     (list maven-3.0-plugin-api maven-shared-io maven-shared-utils
+           java-plexus-utils maven-components-parent-pom-22))
     (native-inputs
      `(("java-modello-core" ,java-modello-core)
        ;; modello plugins:
@@ -2572,9 +2537,7 @@ Maven project dependencies.")
        ("java-plexus-utils" ,java-plexus-utils)
        ("maen-parent-pom" ,maven-parent-pom-33)))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-assertj" ,java-assertj)
-       ("unzip" ,unzip)))
+     (list java-junit java-assertj unzip))
     (home-page "https://maven.apache.org/shared/maven-dependency-tree")
     (synopsis "Tree-based API for resolution of Maven project dependencies")
     (description "This package provides a tree-based API for resolution of
@@ -2602,17 +2565,13 @@ Maven project dependencies.")
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("maven-core" ,maven-3.0-core)
-       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
-       ("maven-parent-pom" ,maven-parent-pom-30)))
+     (list maven-3.0-core java-plexus-component-annotations
+           maven-parent-pom-30))
     (inputs
-     `(("java-sonatype-aether-api"  ,java-sonatype-aether-api)
-       ("java-sonatype-aether-util" ,java-sonatype-aether-util)
-       ("java-eclipse-aether-api" ,java-eclipse-aether-api)
-       ("java-eclipse-aether-util" ,java-eclipse-aether-util)))
+     (list java-sonatype-aether-api java-sonatype-aether-util
+           java-eclipse-aether-api java-eclipse-aether-util))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("java-junit" ,java-junit)))
+     (list unzip java-junit))
     (home-page "https://maven.apache.org/shared/maven-dependency-tree")
     (synopsis "Tree-based API for resolution of Maven project dependencies")
     (description "This package provides a tree-based API for resolution of
@@ -2649,19 +2608,18 @@ Maven project dependencies.")
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("maven-artifact" ,maven-3.0-artifact)
-       ("maven-model" ,maven-3.0-model)
-       ("maven-core" ,maven-3.0-core)
-       ("maven-plugin-api" ,maven-3.0-plugin-api)
-       ("maven-shared-utils" ,maven-shared-utils)
-       ("maven-parent-pom" ,maven-parent-pom-33)
-       ("java-sonatype-aether-api" ,java-sonatype-aether-api)
-       ("java-sonatype-aether-util" ,java-sonatype-aether-util)))
+     (list maven-3.0-artifact
+           maven-3.0-model
+           maven-3.0-core
+           maven-3.0-plugin-api
+           maven-shared-utils
+           maven-parent-pom-33
+           java-sonatype-aether-api
+           java-sonatype-aether-util))
     (inputs
-     `(("maven-resolver-api" ,maven-resolver-api)
-       ("maven-resolver-util" ,maven-resolver-util)))
+     (list maven-resolver-api maven-resolver-util))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
    (home-page "https://maven.apache.org/shared/maven-dependency-tree")
     (synopsis "Tree-based API for resolution of Maven project dependencies")
     (description "This package provides a tree-based API for resolution of
@@ -2691,12 +2649,10 @@ Maven project dependencies.")
          (replace 'install
            (install-from-pom "enforcer-api/pom.xml")))))
     (propagated-inputs
-     `(("maven-plugin-api" ,maven-plugin-api)
-       ("java-plexus-container-default" ,java-plexus-container-default)
-       ("java-jsr305" ,java-jsr305)
-       ("maven-enforcer-parent-pom" ,maven-enforcer-parent-pom)))
+     (list maven-plugin-api java-plexus-container-default java-jsr305
+           maven-enforcer-parent-pom))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://maven.apache.org/shared/maven-dependency-tree")
     (synopsis "Tree-based API for resolution of Maven project dependencies")
     (description "This package provides a tree-based API for resolution of
@@ -2741,18 +2697,18 @@ Maven project dependencies.")
          (replace 'install
            (install-from-pom "enforcer-rules/pom.xml")))))
     (propagated-inputs
-     `(("maven-artifact" ,maven-artifact)
-       ("maven-plugin-api" ,maven-plugin-api)
-       ("maven-core" ,maven-core)
-       ("maven-common-artifact-filters" ,maven-common-artifact-filters)
-       ("java-commons-codec" ,java-commons-codec)
-       ("java-commons-lang3" ,java-commons-lang3)
-       ("maven-enforcer-api" ,maven-enforcer-api)
-       ("maven-resolver-util" ,maven-resolver-util)
-       ("java-bsh" ,java-bsh)
-       ("maven-dependency-tree" ,maven-dependency-tree)
-       ("maven-compat" ,maven-3.0-compat)
-       ("maven-enforcer-parent-pom" ,maven-enforcer-parent-pom)))))
+     (list maven-artifact
+           maven-plugin-api
+           maven-core
+           maven-common-artifact-filters
+           java-commons-codec
+           java-commons-lang3
+           maven-enforcer-api
+           maven-resolver-util
+           java-bsh
+           maven-dependency-tree
+           maven-3.0-compat
+           maven-enforcer-parent-pom))))
 
 (define-public maven-enforcer-plugin
   (package
@@ -2774,14 +2730,14 @@ Maven project dependencies.")
          (replace 'install
            (install-from-pom "maven-enforcer-plugin/pom.xml")))))
     (propagated-inputs
-     `(("maven-artifact" ,maven-artifact)
-       ("maven-plugin-api" ,maven-plugin-api)
-       ("maven-core" ,maven-core)
-       ("java-plexus-utils" ,java-plexus-utils)
-       ("maven-enforcer-api" ,maven-enforcer-api)
-       ("maven-enforcer-rules" ,maven-enforcer-rules)
-       ("maven-plugin-annotations" ,maven-plugin-annotations)
-       ("maven-enforcer-parent-pom" ,maven-enforcer-parent-pom)))))
+     (list maven-artifact
+           maven-plugin-api
+           maven-core
+           java-plexus-utils
+           maven-enforcer-api
+           maven-enforcer-rules
+           maven-plugin-annotations
+           maven-enforcer-parent-pom))))
 
 (define-public maven-artifact-transfer
   (package
@@ -2818,21 +2774,20 @@ Maven project dependencies.")
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("java-commons-codec" ,java-commons-codec)
-       ("maven-artifact" ,maven-3.0-artifact)
-       ("maven-core" ,maven-3.0-core)
-       ("maven-common-artifact-filters" ,maven-common-artifact-filters)
-       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
-       ("java-plexus-utils" ,java-plexus-utils)
-       ("java-slf4j-api" ,java-slf4j-api)
-       ("java-plexus-classworlds" ,java-plexus-classworlds)
-       ("java-sonatype-aether-api" ,java-sonatype-aether-api)
-       ("java-eclipse-aether-api" ,java-eclipse-aether-api)
-       ("java-eclipse-aether-util" ,java-eclipse-aether-util)
-       ("java-eclipse-aether-impl" ,java-eclipse-aether-impl)))
+     (list java-commons-codec
+           maven-3.0-artifact
+           maven-3.0-core
+           maven-common-artifact-filters
+           java-plexus-component-annotations
+           java-plexus-utils
+           java-slf4j-api
+           java-plexus-classworlds
+           java-sonatype-aether-api
+           java-eclipse-aether-api
+           java-eclipse-aether-util
+           java-eclipse-aether-impl))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("java-plexus-component-metadata" ,java-plexus-component-metadata)))
+     (list unzip java-plexus-component-metadata))
     (home-page "https://maven.apache.org/shared/maven-artifact-transfer")
     (synopsis "API to install, deploy and resolve artifacts in Maven")
     (description "This package contains an API to install, deploy and resolve
@@ -2882,10 +2837,9 @@ artifacts in Maven 3.")
        ("maven-plugins-pom-23" ,maven-plugins-pom-23)
        ("java-plexus-digest" ,java-plexus-digest)))
     (inputs
-     `(("maven-plugin-annotations" ,maven-plugin-annotations)
-       ("java-slf4j-api" ,java-slf4j-api)))
+     (list maven-plugin-annotations java-slf4j-api))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://maven.apache.org/plugin/maven-install-plugin")
     (synopsis "Maven's install plugin")
     (description "The Install Plugin is used during the install phase to add
@@ -2951,14 +2905,14 @@ build are stored.  By default, it is located within the user's home directory
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("maven-core" ,maven-3.0-core)
-       ("maven-shared-utils" ,maven-shared-utils)
-       ("java-plexus-utils" ,java-plexus-utils)
-       ("java-plexus-interpolation" ,java-plexus-interpolation)
-       ("java-sisu-build-api" ,java-sisu-build-api)
-       ("maven-parent-pom" ,maven-parent-pom-30)))
+     (list maven-3.0-core
+           maven-shared-utils
+           java-plexus-utils
+           java-plexus-interpolation
+           java-sisu-build-api
+           maven-parent-pom-30))
     (inputs
-     `(("java-jsr305" ,java-jsr305)))
+     (list java-jsr305))
     (native-inputs
      `(("unzip" ,unzip)
        ("java-assertj" ,java-assertj)
@@ -3004,17 +2958,16 @@ projects.")
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("maven-plugin-api" ,maven-plugin-api)
-       ("maven-core" ,maven-core)
-       ("java-plexus-utils" ,java-plexus-utils)
-       ("maven-filtering" ,maven-filtering)
-       ("java-plexus-interpolation" ,java-plexus-interpolation)
-       ("maven-parent-pom" ,maven-parent-pom-31)))
+     (list maven-plugin-api
+           maven-core
+           java-plexus-utils
+           maven-filtering
+           java-plexus-interpolation
+           maven-parent-pom-31))
     (inputs
-     `(("maven-plugin-annotations" ,maven-plugin-annotations)
-       ("java-commons-io" ,java-commons-io)))
+     (list maven-plugin-annotations java-commons-io))
     (native-inputs
-     `(("java-plexus-component-metadata" ,java-plexus-component-metadata)))
+     (list java-plexus-component-metadata))
     (home-page "https://maven.apache.org/plugins/maven-resources-plugin")
     (synopsis "Maven plugin to collect and install resources")
     (description "The Resources Plugin handles the copying of project resources
@@ -3068,14 +3021,10 @@ unit tests.")
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("maven-plugin-api" ,maven-plugin-api)
-       ("maven-core" ,maven-core)
-       ("maven-shared-utils" ,maven-shared-utils)
-       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
-       ("maven-parent-pom" ,maven-parent-pom-30)))
+     (list maven-plugin-api maven-core maven-shared-utils
+           java-plexus-component-annotations maven-parent-pom-30))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("java-plexus-component-metadata" ,java-plexus-component-metadata)))
+     (list unzip java-plexus-component-metadata))
     (home-page "https://maven.apache.org/shared/maven-shared-incremental")
     (synopsis "Maven Incremental Build support utilities")
     (description "This package contains various utility classes and plexus
@@ -3121,19 +3070,18 @@ components for supporting incremental build functionality in maven plugins.")
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("maven-plugin-api" ,maven-plugin-api)
-       ("maven-artifact" ,maven-artifact)
-       ("maven-core" ,maven-core)
-       ("maven-shared-utils" ,maven-shared-utils)
-       ("maven-shared-incremental" ,maven-shared-incremental)
-       ("java-plexus-java" ,java-plexus-java)
-       ("java-plexus-compiler-api" ,java-plexus-compiler-api)
-       ("java-plexus-compiler-manager" ,java-plexus-compiler-manager)
-       ("java-plexus-compiler-javac" ,java-plexus-compiler-javac)
-       ("maven-parent-pom" ,maven-parent-pom-33)))
+     (list maven-plugin-api
+           maven-artifact
+           maven-core
+           maven-shared-utils
+           maven-shared-incremental
+           java-plexus-java
+           java-plexus-compiler-api
+           java-plexus-compiler-manager
+           java-plexus-compiler-javac
+           maven-parent-pom-33))
     (inputs
-     `(("maven-plugin-annotations" ,maven-plugin-annotations)
-       ("java-commons-io" ,java-commons-io)))
+     (list maven-plugin-annotations java-commons-io))
     (home-page "https://maven.apache.org/plugins/maven-compiler-plugin")
     (synopsis "Compiler plugin for Maven")
     (description "The Compiler Plugin is used to compile the sources of your
@@ -3172,9 +3120,9 @@ AspectJ, .NET, and C#.")
          (replace 'install
            (install-from-pom "surefire-logger-api/pom.xml")))))
     (propagated-inputs
-     `(("java-surefire-parent-pom" ,java-surefire-parent-pom)))
+     (list java-surefire-parent-pom))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://maven.apache.org/surefire/surefire-logger-api")
     (synopsis "Interfaces and Utilities related only to internal SureFire Logger API")
     (description "This package contains interfaces and utilities that are
@@ -3220,7 +3168,7 @@ internal to the SureFire Logger API.  It is designed to have no dependency.")
          (replace 'install
            (install-pom-file "pom.xml")))))
     (propagated-inputs
-     `(("maven-parent-pom" ,maven-parent-pom-33)))))
+     (list maven-parent-pom-33))))
 
 (define-public java-surefire-api
   (package
@@ -3276,15 +3224,12 @@ internal to the SureFire Logger API.  It is designed to have no dependency.")
          (replace 'install
            (install-from-pom "surefire-api/pom.xml")))))
     (propagated-inputs
-     `(("java-surefire-logger-api" ,java-surefire-logger-api)
-       ("java-commons-codec" ,java-commons-codec)
-       ("java-surefire-parent-pom" ,java-surefire-parent-pom)
-       ("maven-shared-utils" ,maven-shared-utils-3.1)))
+     (list java-surefire-logger-api java-commons-codec
+           java-surefire-parent-pom maven-shared-utils-3.1))
     (inputs
-     `(("java-jsr305" ,java-jsr305)))
+     (list java-jsr305))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("java-jarjar" ,java-jarjar)))
+     (list unzip java-jarjar))
     (synopsis "Maven SureFire API")
     (description "This package contains the API to use Maven SureFire.")))
 
@@ -3306,12 +3251,10 @@ internal to the SureFire Logger API.  It is designed to have no dependency.")
          (replace 'install
            (install-from-pom "surefire-booter/pom.xml")))))
     (propagated-inputs
-     `(("java-surefire-api" ,java-surefire-api)
-       ("java-commons-lang3" ,java-commons-lang3)
-       ("java-commons-io" ,java-commons-io)
-       ("java-surefire-parent-pom" ,java-surefire-parent-pom)))
+     (list java-surefire-api java-commons-lang3 java-commons-io
+           java-surefire-parent-pom))
     (inputs
-     `(("java-jsr305" ,java-jsr305)))
+     (list java-jsr305))
     (synopsis "API and Facilities used by forked tests running in JVM sub-process")
     (description "SureFire runs tests inside a forked JVM subprocess.  This
 package contains an API and facilities used inside that forked JVM.")))
@@ -3329,10 +3272,9 @@ package contains an API and facilities used inside that forked JVM.")))
          (replace 'install
            (install-from-pom "surefire-extensions-api/pom.xml")))))
     (propagated-inputs
-     `(("java-surefire-api" ,java-surefire-api)
-       ("java-surefire-parent-pom" ,java-surefire-parent-pom)))
+     (list java-surefire-api java-surefire-parent-pom))
     (inputs
-     `(("java-plexus-component-annotations" ,java-plexus-component-annotations)))
+     (list java-plexus-component-annotations))
     (synopsis "Extension API for Maven SureFire")
     (description "Surefire is a test framework project.  This is the aggregator
 POM in Apache Maven Surefire project.")))
@@ -3383,14 +3325,10 @@ POM in Apache Maven Surefire project.")))
          (replace 'install
            (install-from-pom "surefire-providers/common-java5/pom.xml")))))
     (propagated-inputs
-     `(("maven-shared-utils" ,maven-shared-utils-3.1)
-       ("java-surefire-api" ,java-surefire-api)
-       ("java-surefire-parent-pom" ,java-surefire-parent-pom)))
+     (list maven-shared-utils-3.1 java-surefire-api
+           java-surefire-parent-pom))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("java-jarjar" ,java-jarjar)
-       ("java-junit" ,java-junit)
-       ("java-fest-assert" ,java-fest-assert)))
+     (list unzip java-jarjar java-junit java-fest-assert))
     (synopsis "Common java5 facilities for Maven SureFire")
     (description "This package contains shared Java 5 code for all providers.")))
 
@@ -3407,13 +3345,9 @@ POM in Apache Maven Surefire project.")))
          (replace 'install
            (install-from-pom "surefire-providers/common-junit3/pom.xml")))))
     (propagated-inputs
-     `(("java-junit" ,java-junit)
-       ("java-surefire-api" ,java-surefire-api)
-       ("java-surefire-parent-pom" ,java-surefire-parent-pom)))
+     (list java-junit java-surefire-api java-surefire-parent-pom))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("java-junit" ,java-junit)
-       ("java-fest-assert" ,java-fest-assert)))
+     (list unzip java-junit java-fest-assert))
     (synopsis "Shared JUnit3 provider code for Maven SureFire")
     (description "This package contains shared code for all JUnit providers.")))
 
@@ -3430,12 +3364,12 @@ POM in Apache Maven Surefire project.")))
          (replace 'install
            (install-from-pom "surefire-providers/common-junit4/pom.xml")))))
     (propagated-inputs
-     `(("java-junit" ,java-junit)
-       ("java-surefire-api" ,java-surefire-api)
-       ("java-surefire-common-java5" ,java-surefire-common-java5)
-       ("java-surefire-common-junit3" ,java-surefire-common-junit3)
-       ("maven-shared-utils" ,maven-shared-utils-3.1)
-       ("java-surefire-parent-pom" ,java-surefire-parent-pom)))
+     (list java-junit
+           java-surefire-api
+           java-surefire-common-java5
+           java-surefire-common-junit3
+           maven-shared-utils-3.1
+           java-surefire-parent-pom))
     (synopsis "Shared JUnit4 provider code for Maven SureFire")
     (description "This package contains shared code for all JUnit providers,
 starting from JUnit 4.")))
@@ -3509,19 +3443,13 @@ starting from JUnit 4.")))
          (replace 'install
            (install-from-pom "surefire-providers/surefire-junit4/pom.xml")))))
     (propagated-inputs
-     `(("java-junit" ,java-junit)
-       ("java-surefire-parent-pom" ,java-surefire-parent-pom)))
+     (list java-junit java-surefire-parent-pom))
     (inputs
-     `(("java-surefire-common-junit4" ,java-surefire-common-junit4)
-       ("java-surefire-common-junit3" ,java-surefire-common-junit3)
-       ("java-surefire-common-java5" ,java-surefire-common-java5)
-       ("java-surefire-api" ,java-surefire-api)))
+     (list java-surefire-common-junit4 java-surefire-common-junit3
+           java-surefire-common-java5 java-surefire-api))
     (native-inputs
-     `(("java-jarjar" ,java-jarjar)
-       ("unzip" ,unzip)
-       ("java-junit" ,java-junit)
-       ("java-hamcrest-all" ,java-hamcrest-all)
-       ("java-fest-assert" ,java-fest-assert)))
+     (list java-jarjar unzip java-junit java-hamcrest-all
+           java-fest-assert))
     (synopsis "SureFire JUnit 4.0+ runner")
     (description "This package contains the runner for tests run on a forked
 JVM, using JUnit 4.0 or later.")))
@@ -3591,25 +3519,24 @@ JVM, using JUnit 4.0 or later.")))
          (replace 'install
            (install-from-pom "maven-surefire-common/pom.xml")))))
     (propagated-inputs
-     `(("java-surefire-api" ,java-surefire-api)
-       ("java-surefire-extensions-api" ,java-surefire-extensions-api)
-       ("java-surefire-booter" ,java-surefire-booter)
-       ("maven-core" ,maven-core)
-       ("maven-plugin-annotations" ,maven-plugin-annotations)
-       ("maven-common-artifact-filters" ,maven-common-artifact-filters)
-       ("maven-artifact-transfer" ,maven-artifact-transfer)
-       ("java-plexus-java" ,java-plexus-java)
-       ("java-jansi" ,java-jansi)
-       ("java-commons-io" ,java-commons-io)
-       ("java-commons-lang3" ,java-commons-lang3)
-       ("java-commons-compress" ,java-commons-compress)
-       ("maven-shared-utils" ,maven-shared-utils-3.1)
-       ("java-surefire-parent-pom" ,java-surefire-parent-pom)))
+     (list java-surefire-api
+           java-surefire-extensions-api
+           java-surefire-booter
+           maven-core
+           maven-plugin-annotations
+           maven-common-artifact-filters
+           maven-artifact-transfer
+           java-plexus-java
+           java-jansi
+           java-commons-io
+           java-commons-lang3
+           java-commons-compress
+           maven-shared-utils-3.1
+           java-surefire-parent-pom))
     (inputs
-     `(("java-jsr305" ,java-jsr305)))
+     (list java-jsr305))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("java-jarjar" ,java-jarjar)))
+     (list unzip java-jarjar))
     (synopsis "API used in Surefire and Failsafe MOJO")
     (description "This package contains an API used in SureFire and Failsafe
 MOJO.")))
@@ -3635,11 +3562,9 @@ MOJO.")))
          (replace 'install
            (install-from-pom "maven-surefire-plugin/pom.xml")))))
     (propagated-inputs
-     `(("maven-surefire-common" ,maven-surefire-common)
-       ("maven-core" ,maven-core)))
+     (list maven-surefire-common maven-core))
     (native-inputs
-     `(("maven-plugin-annotations" ,maven-plugin-annotations)
-       ("unzip" ,unzip)))
+     (list maven-plugin-annotations unzip))
     (synopsis "SureFire Maven plugin that runs tests.")
     (description "The Surefire Plugin is used during the test phase of the
 build lifecycle to execute the unit tests of an application.  It generates
@@ -3675,16 +3600,16 @@ reports in two different file formats, plain text and xml.")))
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
-     `(("maven-archiver" ,maven-archiver)
-       ("maven-artifact" ,maven-3.0-artifact)
-       ("maven-core" ,maven-3.0-core)
-       ("maven-plugin-api" ,maven-3.0-plugin-api)
-       ("maven-file-management" ,maven-file-management)
-       ("maven-shared-utils" ,maven-shared-utils)
-       ("java-plexus-archiver" ,java-plexus-archiver)
-       ("java-plexus-utils" ,java-plexus-utils)))
+     (list maven-archiver
+           maven-3.0-artifact
+           maven-3.0-core
+           maven-3.0-plugin-api
+           maven-file-management
+           maven-shared-utils
+           java-plexus-archiver
+           java-plexus-utils))
     (inputs
-     `(("maven-plugin-annotations" ,maven-plugin-annotations)))
+     (list maven-plugin-annotations))
     (home-page "https://maven.apache.org/plugins/maven-jar-plugin")
     (synopsis "Jar builder plugin for Maven")
     (description "This plugin provides the capability to build jars.  If you
diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm
index e07191e344..7bde8a5e78 100644
--- a/gnu/packages/mc.scm
+++ b/gnu/packages/mc.scm
@@ -47,15 +47,14 @@
       (sha256
        (base32 "1x2g5ahgzg951y4ldbsgkv8icni2mgh3p2wsds0j16gsbwi5kgii"))))
     (build-system gnu-build-system)
-    (native-inputs `(("perl" ,perl)
-                     ("pkg-config" ,pkg-config)))
-    (inputs `(("aspell" ,aspell)
-              ("check" ,check)
-              ("glib" ,glib)
-              ("gpm" ,gpm)
-              ("libssh2" ,libssh2)
-              ("ncurses" ,ncurses)
-              ("unzip" ,unzip)))
+    (native-inputs (list perl pkg-config))
+    (inputs (list aspell
+                  check
+                  glib
+                  gpm
+                  libssh2
+                  ncurses
+                  unzip))
     (arguments
      `(#:configure-flags
        '("--with-screen=ncurses" "--enable-aspell")
diff --git a/gnu/packages/mcrypt.scm b/gnu/packages/mcrypt.scm
index d0cfb8f7a3..c0b9c815a5 100644
--- a/gnu/packages/mcrypt.scm
+++ b/gnu/packages/mcrypt.scm
@@ -44,9 +44,7 @@
                  "mcrypt-CVE-2012-4527.patch"))))
     (build-system gnu-build-system)
     (inputs
-     `(("zlib" ,zlib)
-       ("libmcrypt" ,libmcrypt)
-       ("libmhash" ,libmhash)))
+     (list zlib libmcrypt libmhash))
     (home-page "http://mcrypt.sourceforge.net/")
     (synopsis "Replacement for the popular Unix crypt command")
     (description
@@ -98,7 +96,7 @@ XTEA, 3WAY, TWOFISH, BLOWFISH, ARCFOUR, WAKE and more.")
                                "libmhash-hmac-fix-uaf.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)))                 ;for tests
+     (list perl))                 ;for tests
     (home-page "http://mhash.sourceforge.net/")
     (synopsis "Thread-safe hash library")
     (description
diff --git a/gnu/packages/medical.scm b/gnu/packages/medical.scm
index 6c298707f5..6c9cc757eb 100644
--- a/gnu/packages/medical.scm
+++ b/gnu/packages/medical.scm
@@ -49,9 +49,7 @@
               (("/usr") (assoc-ref outputs "out")))
             #t)))))
    (inputs
-    `(("python-pyqt+qscintilla" ,python-pyqt+qscintilla)
-      ("python-mysqlclient" ,python-mysqlclient)
-      ("qscintilla" ,qscintilla)))
+    (list python-pyqt+qscintilla python-mysqlclient qscintilla))
    (home-page "https://openmolar.com/om1")
    (synopsis "Dental practice management software")
    (description "Openmolar is a dental practice management suite.  Its
diff --git a/gnu/packages/mercury.scm b/gnu/packages/mercury.scm
index 5a2c85a79b..fe02b34a97 100644
--- a/gnu/packages/mercury.scm
+++ b/gnu/packages/mercury.scm
@@ -244,8 +244,6 @@ separate compilation, and numerous optimization/time trade-offs.")
            ;; Eventually we need to add inputs for Java, Erlang,
            ;; C#, etc. in order to enable these extra grades.
            (native-inputs
-            `(("mercury-minimal" ,mercury-minimal)
-              ("autoconf" ,autoconf)
-              ("automake" ,automake)
-              ,@(package-native-inputs mercury-minimal)))
+            (modify-inputs (package-native-inputs mercury-minimal)
+              (prepend mercury-minimal autoconf automake)))
            (synopsis "Pure logic programming language")))
diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm
index 0251dbf02f..07e63384ff 100644
--- a/gnu/packages/mes.scm
+++ b/gnu/packages/mes.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -97,14 +98,14 @@ extensive examples, including parsers for the Javascript and C99 languages.")
 (define-public nyacc
   (package
     (inherit nyacc-0.99)
-    (version "1.04.0")
+    (version "1.05.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://savannah/nyacc/nyacc-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0m3mcdaslvvr2iav8ga146hzsja2hdj4656pszljb4q2q7h25ip5"))
+                "1ck3gyzln5dhamp317nv3waych12mczj05dm4wdblij6ab0l4863"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index f075d28e0a..68d95bd5fa 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -3,13 +3,13 @@
 ;;; Copyright © 2014, 2017 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
 ;;; Copyright © 2016, 2017, 2018, 2019 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
-;;; Copyright © 2017, 2018, 2020 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2017, 2018, 2020, 2021 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
@@ -29,6 +29,8 @@
 ;;; Copyright © 2020, 2021 Robert Karszniewicz <avoidr@posteo.de>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2021 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -58,6 +60,7 @@
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages crypto)
@@ -85,6 +88,7 @@
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages less)
   #:use-module (gnu packages libcanberra)
+  #:use-module (gnu packages libffi)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages libreoffice)
   #:use-module (gnu packages linux)
@@ -134,6 +138,7 @@
   #:use-module (guix build-system qt)
   #:use-module (guix build-system trivial)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix hg-download)
   #:use-module ((guix licenses) #:prefix license:)
@@ -170,8 +175,7 @@
                  ;; Use absolute path of 'xdg-open' program.
                  (("xdg-open") xdg-open))))))))
     (inputs
-     `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
-       ("xdg-utils" ,xdg-utils)))
+     (list go-github-com-pkg-errors xdg-utils))
     (home-page "https://roob.re/omemo-wget")
     (synopsis "Program to download and decrypt @code{aesgcm://} URLs")
     (description "OMEMO-wget is a tool to handle cryptographic URLs, generated
@@ -238,7 +242,7 @@ Its design goals are simplicity and stability.")
 (define-public libgnt
   (package
     (name "libgnt")
-    (version "2.14.1")
+    (version "2.14.3")
     (source
      (origin
        (method url-fetch)
@@ -246,7 +250,7 @@ Its design goals are simplicity and stability.")
         (string-append "mirror://sourceforge/pidgin/libgnt/"
                        version "/libgnt-" version ".tar.xz"))
        (sha256
-        (base32 "1n2bxg0ignn53c08cp69pj4sdg53kwlqn23rincyjmpr327fdhsy"))))
+        (base32 "08v14fjcx2wx6c573wllq015l6zc8qkpz8rrl6qhp7crf9zlbxap"))))
     (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
@@ -259,16 +263,14 @@ Its design goals are simplicity and stability.")
                (("'/usr'")
                 (string-append "'"
                                (assoc-ref inputs "ncurses")
-                               "'")))
-             #t))
+                               "'")))))
          (add-before 'configure 'patch-docbook-xml
            (lambda* (#:key inputs #:allow-other-keys)
              (with-directory-excursion "doc"
                (substitute* "libgnt-docs.xml"
                  (("http://www.oasis-open.org/docbook/xml/4.1.2/")
                   (string-append (assoc-ref inputs "docbook-xml")
-                                 "/xml/dtd/docbook/"))))
-             #t))
+                                 "/xml/dtd/docbook/"))))))
          (add-after 'install 'move-doc
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -276,8 +278,7 @@ Its design goals are simplicity and stability.")
                (mkdir-p (string-append doc "/share"))
                (rename-file
                 (string-append out "/share/gtk-doc")
-                (string-append doc "/share/gtk-doc"))
-               #t))))))
+                (string-append doc "/share/gtk-doc"))))))))
     (native-inputs
      `(("docbook-xml" ,docbook-xml-4.1.2)
        ("glib:bin" ,glib "bin")
@@ -285,7 +286,7 @@ Its design goals are simplicity and stability.")
        ("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (propagated-inputs
      `(("glib" ,glib)
        ("libxml" ,libxml2)
@@ -313,9 +314,10 @@ user interfaces in a fast and easy way.  It is based on GLib and ncurses.")
         (base32 "1s16cripy5w9k12534qb012iwc5m9qcjyrywgsziyn3kl3i0aa8h"))))
     (build-system gnu-build-system)
     (arguments
+     ;; 'test/manual/userconfig.h' contains definitions in lieu of
+     ;; declarations, hence '-fcommon'.
      `(#:configure-flags
-       (list
-        "--disable-static")
+       (list "--disable-static" "CFLAGS=-O2 -g -fcommon")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-shebangs
@@ -324,13 +326,13 @@ user interfaces in a fast and easy way.  It is based on GLib and ncurses.")
                (("/bin/sh")
                 (search-input-file inputs "/bin/sh"))))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("bash" ,bash)
-       ("doxygen" ,doxygen)
-       ("libtool" ,libtool)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf
+           automake
+           bash
+           doxygen
+           libtool
+           perl
+           pkg-config))
     (inputs
      `(("curl" ,curl)
        ("expat" ,expat)
@@ -339,7 +341,7 @@ user interfaces in a fast and easy way.  It is based on GLib and ncurses.")
        ("openssl" ,openssl)
        ("zlib" ,zlib)))
     (propagated-inputs
-     `(("gnutls" ,gnutls)))
+     (list gnutls))
     (synopsis "Library for handling the protocol of Gadu-Gadu")
     (description "LibGadu is library for handling Gadu-Gadu instant messenger
 protocol.  The library is written in C and aims to be operating system and
@@ -374,11 +376,7 @@ environment independent.")
              (delete-file "Makefile.in")
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool perl pkg-config))
     (synopsis "SILC ToolKit")
     (description "SILC (Secure Internet Live Conferencing) is a modern and secure
 conferencing protocol.  It provides all the common conferencing services like
@@ -391,6 +389,46 @@ conferencing.")
       license:gpl2+
       license:bsd-2))))
 
+(define-public qxmpp
+  (package
+    (name "qxmpp")
+    (version "1.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/qxmpp-project/qxmpp")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1knpq1jkwk0lxdwczbmzf7qrjvlxba9yr40nbq9s5nqkcx6q1c3i"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags (list "-DBUILD_EXAMPLES=false"
+                               "-DWITH_GSTREAMER=true")
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "ctest" "-E"
+                       (string-join ;; These tests use the network.
+                        (list "tst_qxmppiceconnection"
+                              "tst_qxmppcallmanager"
+                              "tst_qxmpptransfermanager")
+                        "|"))))))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list gstreamer qtbase-5))
+    (home-page "https://github.com/qxmpp-project/qxmpp")
+    (synopsis "XMPP client and server library")
+    (description
+     "QXmpp is a XMPP client and server library written in C++ and uses the Qt
+framework.  It builds XMPP clients complying with the XMPP Compliance Suites
+2021 for IM and Advanced Mobile.")
+    (license license:lgpl2.1+)))
+
 (define-public meanwhile
   (package
     (name "meanwhile")
@@ -409,13 +447,9 @@ conferencing.")
         (base32 "1k1gvmx1ikm0y1mdmm495rzkb00pl170jfaf2dy0n5aiiknkk7q3"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("doxygen" ,doxygen)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake doxygen libtool pkg-config))
     (propagated-inputs
-     `(("glib" ,glib)))
+     (list glib))
     (synopsis "Library for Lotus Instant Messaging")
     (description "Meanwhile is a library for connecting to a LIM (Lotus Instant
 Messaging, formerly Lotus Sametime, formerly VPBuddy) community.  It uses a
@@ -451,19 +485,17 @@ TCP sessions from existing clients.")
                 "'CC', 'gcc'"))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-setuptools" ,python-setuptools)
-       ("python-sphinx" ,python-sphinx)))
+     (list pkg-config python-setuptools python-sphinx))
     (inputs
-     `(("python-mpd2" ,python-mpd2)
-       ("python-potr" ,python-potr)
-       ("python-pyasn1" ,python-pyasn1)
-       ("python-pyasn1-modules" ,python-pyasn1-modules)
-       ("python-pygments" ,python-pygments)
-       ("python-pyinotify" ,python-pyinotify)
-       ;("python" ,python)
-       ("python-qrcode" ,python-qrcode)
-       ("python-slixmpp" ,python-slixmpp)))
+     (list python-mpd2
+           python-potr
+           python-pyasn1
+           python-pyasn1-modules
+           python-pygments
+           python-pyinotify
+           ;("python" ,python)
+           python-qrcode
+           python-slixmpp))
     (synopsis "Console Jabber/XMPP Client")
     (description "Poezio is a free console XMPP client (the protocol on which
 the Jabber IM network is built).
@@ -492,11 +524,11 @@ powerful, standard and open protocol.")
         (search-patches "libotr-test-auth-fix.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)))                 ; for the test suite
+     (list perl))                 ; for the test suite
     (inputs
-     `(("libgpg-error" ,libgpg-error)))
+     (list libgpg-error))
     (propagated-inputs
-     `(("libgcrypt" ,libgcrypt)))    ; libotr headers include gcrypt.h
+     (list libgcrypt))    ; libotr headers include gcrypt.h
     (synopsis "Off-the-Record (OTR) Messaging Library and Toolkit")
     (description "OTR allows you to have private conversations over instant
 messaging by providing: (1) Encryption: No one else can read your instant
@@ -532,10 +564,9 @@ your private keys, no previous conversation is compromised.")
    `(;; Required for proper linking and for tests to run.
      #:configure-flags '("-DBUILD_SHARED_LIBS=on" "-DBUILD_TESTING=1")))
   (build-system cmake-build-system)
-  (inputs `( ;; Required for tests:
-            ("check" ,check)
-            ("openssl" ,openssl)))
-  (native-inputs `(("pkg-config" ,pkg-config)))
+  (inputs (list ;; Required for tests:
+                check openssl))
+  (native-inputs (list pkg-config))
   (home-page "https://github.com/WhisperSystems/libsignal-protocol-c")
   (synopsis "Implementation of a ratcheting forward secrecy protocol")
   (description "libsignal-protocol-c is an implementation of a ratcheting
@@ -544,6 +575,74 @@ messaging environments.  It can be used with messaging software to provide
 end-to-end encryption.")
   (license license:gpl3+)))
 
+(define-public axc
+  (package
+    (name "axc")
+    (version "0.3.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gkdr/axc")
+             (commit (string-append "v" version))))
+       (modules '((guix build utils)))
+       (snippet
+        `(begin
+           ;; Submodules
+           (delete-file-recursively "lib")))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "05sv7l6lk0xk4wb2bspc2sdpygrb1f0szzi82a1kyfm0fjz887b3"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'configure
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (setenv "CC" "gcc")
+                        (setenv "PREFIX" out)))))
+       #:parallel-tests? #f))
+    (native-inputs (list cmocka pkg-config))
+    (inputs (list glib libgcrypt libsignal-protocol-c sqlite))
+    (synopsis "Client library for libsignal-protocol-c")
+    (description "This is a client library for @code{libsignal-protocol-c}.
+It implements the necessary interfaces using @code{libgcrypt} and
+@code{sqlite}.")
+    (home-page "https://github.com/gkdr/axc")
+    (license license:gpl3)))                  ;GPLv3-only, per license headers
+
+(define-public libomemo
+  (package
+    (name "libomemo")
+    (version "0.7.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gkdr/libomemo")
+             (commit (string-append "v" version))))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "1q3vyj8zk3vm0a4v6w8qya5dhk2yw04bga8799a0zl6907nf122k"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'configure
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (setenv "CC" "gcc")
+                        (setenv "PREFIX" out)))))
+       #:parallel-tests? #f))
+    (native-inputs (list cmocka pkg-config))
+    (inputs (list glib libgcrypt minixml sqlite))
+    (synopsis "OMEMO C library")
+    (description "This library implements @acronym{OMEMO, OMEMO Multi-End
+Message and Object Encryption} of XMPP (XEP-0384) in C.")
+    (home-page "https://github.com/gkdr/libomemo")
+    (license license:expat)))
+
 (define-public bitlbee
   (package
     (name "bitlbee")
@@ -555,14 +654,10 @@ end-to-end encryption.")
               (sha256
                (base32 "0zhhcbcr59sx9h4maf8zamzv2waya7sbsl7w74gbyilvy93dw5cz"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ;; Note: Change to 'check' for versions > 3.6.
-                     ("check" ,check-0.12)))
-    (inputs `(("glib" ,glib)
-              ("libotr" ,libotr)
-              ("gnutls" ,gnutls)
-              ("python" ,python)
-              ("perl" ,perl)))
+    (native-inputs (list pkg-config
+                         ;; Note: Change to 'check' for versions > 3.6.
+                         check-0.12))
+    (inputs (list glib libotr gnutls python perl))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -641,14 +736,14 @@ identi.ca and status.net).")
              (let ((sh (which "sh")))
                (substitute* "autogen.sh" (("/bin/sh") sh))
                (setenv "CONFIG_SHELL" sh)))))))
-    (inputs `(("glib" ,glib)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("autoconf" ,autoconf)
-                     ("automake" ,automake)
-                     ("texinfo" ,texinfo)
-                     ("libtool" ,libtool)
-                     ("bitlbee" ,bitlbee) ; needs bitlbee headers
-                     ("bash" ,bash)))
+    (inputs (list glib))
+    (native-inputs (list pkg-config
+                         autoconf
+                         automake
+                         texinfo
+                         libtool
+                         bitlbee ; needs bitlbee headers
+                         bash))
     (synopsis "Discord plugin for Bitlbee")
     (description "Bitlbee-discord is a plugin for Bitlbee which provides
 access to servers running the Discord protocol.")
@@ -692,11 +787,8 @@ access to servers running the Discord protocol.")
          #:make-flags (list "CC=gcc"
                             ,(string-append "PLUGIN_VERSION=" version))
          #:tests? #f))
-      (inputs `(("glib" ,glib)
-                ("json-glib" ,json-glib)
-                ("discount" ,discount)
-                ("pidgin" ,pidgin)))
-      (native-inputs `(("pkg-config" ,pkg-config)))
+      (inputs (list glib json-glib discount pidgin))
+      (native-inputs (list pkg-config))
       (synopsis "Purple plug-in to access Mattermost instant messaging")
       (description
        "Purple-Mattermost is a plug-in for Purple, the instant messaging library
@@ -707,15 +799,14 @@ used by Pidgin and Bitlbee, among others, to access
 (define-public hexchat
   (package
     (name "hexchat")
-    (version "2.14.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://dl.hexchat.net/hexchat/hexchat-"
-                                  version ".tar.xz"))
-              (patches (search-patches "hexchat-add-libera-chat.patch"))
-              (sha256
-               (base32
-                "10p829jm1r6kidkgf5lhqhyqc5mxdcq96q3zhadsckasvc9rs6lh"))))
+    (version "2.16.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://dl.hexchat.net/hexchat/hexchat-"
+                           version ".tar.xz"))
+       (sha256
+        (base32 "0dnwhb2gi08i5v79vq0y2izs89wyk3by96jv99kgkidjic3k2bj1"))))
     (build-system meson-build-system)
     (native-inputs `(("gettext" ,gettext-minimal)
                      ("glib:bin" ,glib "bin")       ;need glib-genmarshal
@@ -726,14 +817,16 @@ used by Pidgin and Bitlbee, among others, to access
               ("enchant" ,enchant)
               ("gtk" ,gtk+-2)
               ("libcanberra" ,libcanberra)
-              ("libnotify" ,libnotify)
-              ("libproxy" ,libproxy)
               ("openssl" ,openssl)
 
               ;; Bindings for add-on scripts.
               ("luajit" ,luajit)
               ("perl-xml-parser" ,perl-xml-parser)
-              ("python-2" ,python-2)))
+              ("python" ,python)
+              ("python-cffi" ,python-cffi)
+
+              ;; For the ensuing WRAP-PROGRAM.
+              ("bash-minimal" ,bash-minimal)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -745,8 +838,15 @@ used by Pidgin and Bitlbee, among others, to access
              ;; just skip this code.
              (substitute* "meson_post_install.py"
                (("if 'DESTDIR' not in os.environ:")
-                 "if False:"))
-             #t)))))
+                "if False:"))))
+         (add-after 'install 'wrap-program
+           ;; Let it ‘initialize the Python-CFFI embedding logic’ at run time.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (wrap-program (string-append bin "/hexchat")
+                 `("GUIX_PYTHONPATH" ":" prefix
+                   (,(getenv "GUIX_PYTHONPATH"))))))))))
     (synopsis "Graphical IRC client")
     (description
      "HexChat lets you connect to multiple IRC networks at once.  The main
@@ -771,10 +871,7 @@ dictionaries.  HexChat can be extended with multiple addons.")
               (patches (search-patches "ngircd-handle-zombies.patch"))))
     (build-system gnu-build-system)
     ;; Needed for the test suite.
-    (native-inputs `(("procps" ,procps)
-                     ("expect" ,expect)
-                     ("inetutils" ,inetutils)
-                     ("openssl" ,openssl)))
+    (native-inputs (list procps expect inetutils openssl))
     ;; XXX Add libident.
     (inputs `(("zlib" ,zlib)
               ("libwrap" ,tcp-wrappers)
@@ -892,8 +989,7 @@ authentication.")
        ("tcl" ,tcl)
        ("tk" ,tk)))
     (propagated-inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+-2)))
+     (list glib gtk+-2))
     (arguments
      `(#:configure-flags
        (list
@@ -954,17 +1050,15 @@ many popular chat protocols.")
         (base32 "1i5s9rrgbyss9rszq6c6y53hwqyw1k86s40cpsfx5ccl9bprxdgl"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list gettext-minimal intltool pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+-2)
-       ("libgcrypt" ,libgcrypt)
-       ("libgpg-error" ,libgpg-error)
-       ("libotr" ,libotr)
-       ("perl" ,perl)
-       ("pidgin" ,pidgin)))
+     (list glib
+           gtk+-2
+           libgcrypt
+           libgpg-error
+           libotr
+           perl
+           pidgin))
     (home-page "https://otr.cypherpunks.ca/")
     (synopsis "Off-the-Record Messaging plugin for Pidgin")
     (description "Pidgin-OTR is a plugin that adds support for OTR to the Pidgin
@@ -1013,12 +1107,12 @@ control of your private keys, no previous conversation is compromised.")
        ("googletest-source" ,(package-source googletest))
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("icu4c" ,icu4c)
-       ("openssl" ,openssl)
-       ("perl" ,perl)
-       ("python" ,python)
-       ("zlib" ,zlib)))
+     (list cyrus-sasl
+           icu4c
+           openssl
+           perl
+           python
+           zlib))
     (home-page "https://wiki.znc.in/ZNC")
     (synopsis "IRC network bouncer")
     (description "ZNC is an @dfn{IRC network bouncer} or @dfn{BNC}.  It can
@@ -1030,25 +1124,25 @@ simultaneously and therefore appear under the same nickname on IRC.")
 (define-public python-nbxmpp
   (package
     (name "python-nbxmpp")
-    (version "2.0.2")
+    (version "2.0.4")
     (source
      (origin
        (method url-fetch)
        (uri
         (pypi-uri "nbxmpp" version))
        (sha256
-        (base32 "1482fva70i01w60fk70c0fhqmqgzi1fb4xflllz2v6c8mdqkd1m3"))))
+        (base32 "1s2phiipq7ks8vrd93p96dzd5wgmgg8q9h2rxsnh2gg7iy06gj9c"))))
     (build-system python-build-system)
     (native-inputs
-     `(("glib:bin" ,glib "bin")))
+     (list `(,glib "bin")))
     (inputs
-     `(("glib" ,glib)
-       ("glib-networking" ,glib-networking)
-       ("libsoup" ,libsoup)
-       ("python-gssapi" ,python-gssapi)
-       ("python-idna" ,python-idna)
-       ("python-precis-i18n" ,python-precis-i18n)
-       ("python-pygobject" ,python-pygobject)))
+     (list glib
+           glib-networking
+           libsoup-minimal-2
+           python-gssapi
+           python-idna
+           python-precis-i18n
+           python-pygobject))
     (synopsis "Non-blocking XMPP Module")
     (description "Python-nbxmpp is a Python library that provides a way for
 Python applications to use the XMPP network.  This library was initially a fork
@@ -1059,7 +1153,7 @@ of xmpppy.")
 (define-public gajim
   (package
     (name "gajim")
-    (version "1.3.2")
+    (version "1.3.3")
     (source
      (origin
        (method url-fetch)
@@ -1068,7 +1162,7 @@ of xmpppy.")
                        (version-major+minor version)
                        "/gajim-" version ".tar.gz"))
        (sha256
-        (base32 "1vjzv8zg9s393xw81klcgbkn4h6j2blzla9iil5kqfrw7wmldskh"))
+        (base32 "1337qkpcv7j0fgws9scnk82mn2l7s17060vmrbh3ihinmxmbxg6x"))
        (patches (search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch"))))
     (build-system python-build-system)
     (arguments
@@ -1084,11 +1178,11 @@ of xmpppy.")
        (modify-phases %standard-phases
          (add-after 'unpack 'disable-failing-tests
            (lambda _
+             ;; XXX Gajim builds fine on some (my) machines but fails elsewhere:
              ;; ModuleNotFoundError: No module named 'gajim.gui.emoji_data'
              ;; https://dev.gajim.org/gajim/gajim/-/issues/10478
              (delete-file "test/lib/gajim_mocks.py")
-             (delete-file "test/unit/test_gui_interface.py")
-             #t))
+             (delete-file "test/unit/test_gui_interface.py")))
          (replace 'check
            (lambda _
              ;; Tests require a running X server.
@@ -1096,8 +1190,11 @@ of xmpppy.")
              (setenv "DISPLAY" ":1")
              ;; For missing '/etc/machine-id'.
              (setenv "DBUS_FATAL_WARNINGS" "0")
-             (invoke "dbus-launch" "python" "./setup.py" "test")
-             #t))
+             (invoke "dbus-launch" "python" "./setup.py" "test")))
+         ;; Loading gajim_remote require running session bus,
+         ;; which in-turn requires running elogind for XDG_RUNTIME_DIR;
+         ;; neither of which are possible inside build environment.
+         (delete 'sanity-check)
          (add-after 'install 'glib-or-gtk-compile-schemas
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
          (add-after 'install 'glib-or-gtk-wrap
@@ -1113,8 +1210,7 @@ of xmpppy.")
                     (wrap-program file
                       `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
                       `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))
-                '("gajim" "gajim-remote" "gajim-history-manager")))
-             #t)))))
+                '("gajim" "gajim-remote" "gajim-history-manager"))))))))
     (native-search-paths
      (list
       (search-path-specification
@@ -1133,7 +1229,7 @@ of xmpppy.")
           ;; FIXME: Cannot use this expression as it would
           ;; introduce a circular dependency at the top level.
           ;; (version-major+minor (package-version python))
-          "3.8"
+          "3.9"
           "/site-packages"))))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -1162,6 +1258,7 @@ of xmpppy.")
        ("libxss" ,libxscrnsaver)
        ("network-manager" ,network-manager)
        ("python-css-parser" ,python-css-parser)
+       ("python-dbus" ,python-dbus)
        ("python-keyring" ,python-keyring)
        ("python-nbxmpp" ,python-nbxmpp)
        ("python-packaging" ,python-packaging)
@@ -1171,7 +1268,7 @@ of xmpppy.")
        ("python-pygobject" ,python-pygobject)
        ("python-pyopenssl" ,python-pyopenssl)))
     (propagated-inputs
-     `(("dconf" ,dconf)))
+     (list dconf))
     (synopsis "Fully-featured XMPP client")
     (description "Gajim aims to be an easy to use and fully-featured XMPP chat
 client.  It is extensible via plugins, supports end-to-end encryption (OMEMO
@@ -1205,10 +1302,8 @@ and OpenPGP) and available in 29 languages.")
            (copy-recursively source share)
            #t))))
     (propagated-inputs
-     `(("python-axolotl" ,python-axolotl)
-       ("python-axolotl-curve25519" ,python-axolotl-curve25519)
-       ("python-cryptography" ,python-cryptography)
-       ("python-qrcode" ,python-qrcode)))
+     (list python-axolotl python-axolotl-curve25519 python-cryptography
+           python-qrcode))
     (synopsis "Gajim OMEMO plugin")
     (description "Gajim-OMEMO is a plugin that adds support for the OMEMO
 Encryption to Gajim.  OMEMO is an XMPP Extension Protocol (XEP) for secure
@@ -1243,9 +1338,7 @@ multi-client end-to-end encryption.")
            (copy-recursively source share)
            #t))))
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-gnupg" ,python-gnupg)
-       ("python-gpg" ,python-gpg)))
+     (list python-cryptography python-gnupg python-gpg))
     (synopsis "Gajim OpenPGP plugin")
     (description "Gajim-OpenPGP is a plugin that adds support for the OpenPGP
 Encryption to Gajim.")
@@ -1255,7 +1348,7 @@ Encryption to Gajim.")
 (define-public dino
   (package
     (name "dino")
-    (version "0.2.1")
+    (version "0.2.2")
     (source
      (origin
        (method url-fetch)
@@ -1263,7 +1356,7 @@ Encryption to Gajim.")
         (string-append "https://github.com/dino/dino/releases/download/v"
                        version "/dino-" version ".tar.gz"))
        (sha256
-        (base32 "13rk8b0sj35az32c0ii173g9ww231awmyb4jlk56jy38hpyp7x1g"))))
+        (base32 "0r5qn9k88d5rh8zzj9gs3bk3dsm795r0pgxs3kawyrsrqr8ny1ry"))))
     (build-system cmake-build-system)
     (outputs '("out" "debug"))
     (arguments
@@ -1298,7 +1391,7 @@ Encryption to Gajim.")
      ;; NOTE: Commented-out lines are to be enabled in v0.3.0.
      `(("atk" ,atk)
        ("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("glib" ,glib)
        ("glib-networking" ,glib-networking)
        ("gpgme" ,gpgme)
@@ -1314,7 +1407,7 @@ Encryption to Gajim.")
        ("libgee" ,libgee)
        ("libnice" ,libnice)
        ("libsignal-protocol-c" ,libsignal-protocol-c)
-       ("libsoup" ,libsoup)
+       ("libsoup" ,libsoup-minimal-2)
        ;;("libsrtp" ,libsrtp)             ;for calls support
        ("pango" ,pango)
        ("qrencode" ,qrencode)
@@ -1330,14 +1423,14 @@ default.")
 (define-public prosody
   (package
     (name "prosody")
-    (version "0.11.9")
+    (version "0.11.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://prosody.im/downloads/source/"
                                   "prosody-" version ".tar.gz"))
               (sha256
                (base32
-                "02gzvsaq0l5lx608sfh7hfz14s6yfsr4sr4kzcsqd1cxljp35h6c"))))
+                "1q84s9cq7cgzd295qxa2iy0r3vd3v3chbck62bdx3pd6skk19my6"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ;tests require "busted"
@@ -1353,16 +1446,14 @@ default.")
              ;; The configure script aborts when it encounters unexpected
              ;; arguments.  Make it more tolerant.
              (substitute* "configure"
-               (("exit 1") ""))
-             #t))
+               (("exit 1") ""))))
          (add-after 'unpack 'fix-makefile
            (lambda _
              (substitute* "GNUmakefile"
                ;; prosodyctl needs to read the configuration file.
                (("^INSTALLEDCONFIG =.*") "INSTALLEDCONFIG = /etc/prosody\n")
                ;; prosodyctl needs a place to put auto-generated certificates.
-               (("^INSTALLEDDATA =.*") "INSTALLEDDATA = /var/lib/prosody\n"))
-             #t))
+               (("^INSTALLEDDATA =.*") "INSTALLEDDATA = /var/lib/prosody\n"))))
          (add-after 'install 'wrap-programs
            (lambda* (#:key inputs outputs #:allow-other-keys)
              ;; Make sure all executables in "bin" find the required Lua
@@ -1398,17 +1489,16 @@ default.")
                              `("LUA_PATH"  ";" = (,lua-path))
                              `("LUA_CPATH" ";" = (,lua-cpath))
                              `("PATH" ":" prefix ,path)))
-                         (find-files bin ".*"))
-               #t))))))
+                         (find-files bin ".*"))))))))
     (inputs
-     `(("libidn" ,libidn)
-       ("openssl" ,openssl)
-       ("lua" ,lua-5.2)
-       ("lua5.2-bitop" ,lua5.2-bitop)
-       ("lua5.2-expat" ,lua5.2-expat)
-       ("lua5.2-socket" ,lua5.2-socket)
-       ("lua5.2-filesystem" ,lua5.2-filesystem)
-       ("lua5.2-sec" ,lua5.2-sec)))
+     (list libidn
+           openssl
+           lua-5.2
+           lua5.2-bitop
+           lua5.2-expat
+           lua5.2-socket
+           lua5.2-filesystem
+           lua5.2-sec))
     (home-page "https://prosody.im/")
     (synopsis "Jabber (XMPP) server")
     (description "Prosody is a modern XMPP communication server.  It aims to
@@ -1502,15 +1592,9 @@ and prevent message loss.")
       (build-system gnu-build-system)
       (arguments `(#:tests? #f)) ; FIXME: tests hang, some fail.
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("check" ,check)
-         ("pkg-config" ,pkg-config)))
+       (list autoconf automake libtool check pkg-config))
       (inputs
-       `(("libsodium" ,libsodium)
-         ("opus" ,opus)
-         ("libvpx" ,libvpx)))
+       (list libsodium opus libvpx))
       (synopsis "Library for the Tox encrypted messenger protocol")
       (description
        "C library implementation of the Tox encrypted messenger protocol.")
@@ -1539,11 +1623,9 @@ and prevent message loss.")
                      ; for now.
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
-     `(("libsodium" ,libsodium)
-       ("opus" ,opus)
-       ("libvpx" ,libvpx)))
+     (list libsodium opus libvpx))
     (home-page "https://tox.chat")
     (synopsis "Library for the Tox encrypted messenger protocol")
     (description
@@ -1598,8 +1680,7 @@ messenger protocol.")
       ("openal" ,openal)
       ("v4l-utils" ,v4l-utils)))
    (native-inputs
-    `(("check" ,check)
-      ("pkg-config" ,pkg-config)))
+    (list check pkg-config))
    (synopsis "Lightweight Tox client")
    (description
     "uTox is a lightweight Tox client.  Tox is a distributed and secure
@@ -1610,7 +1691,7 @@ instant messenger with audio and video chat capabilities.")
 (define-public qtox
   (package
     (name "qtox")
-    (version "1.17.3")
+    (version "1.17.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/qTox/qTox/releases"
@@ -1618,54 +1699,51 @@ instant messenger with audio and video chat capabilities.")
                                   "/v" version ".tar.gz"))
               (sha256
                (base32
-                "11n7si9wdpf80iwkvbspp14dh5jrwm7hxkj8vqhn5pkc48c5bh9j"))
+                "086hvm0q2vl2lq8zlp8s9sivlic6sg7ga5ixz01hbsyrashvil63"))
               (file-name (string-append name "-" version ".tar.gz"))))
     (build-system cmake-build-system)
     (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-reproducibility-issues
-           (lambda _
-             (substitute* "src/main.cpp"
-               (("__DATE__") "\"\"")
-               (("__TIME__") "\"\"")
-               (("TIMESTAMP") "\"\""))
-             #t))
-         (add-after 'unpack 'disable-network-tests
-           (lambda _
-             ;; These tests require network access.
-             (substitute* "cmake/Testing.cmake"
-               (("auto_test\\(core core\\)") "# auto_test(core core)")
-               (("auto_test\\(net bsu\\)") "# auto_test(net bsu)"))
-             #t))
-         ;; Ensure that icons are found at runtime.
-         (add-after 'install 'wrap-executable
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (wrap-program (string-append out "/bin/qtox")
-                 `("QT_PLUGIN_PATH" prefix
-                   ,(list (string-append (assoc-ref inputs "qtsvg")
-                                         "/lib/qt5/plugins/"))))))))))
-    (inputs
-     `(("ffmpeg" ,ffmpeg)
-       ("filteraudio" ,filteraudio)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+-2)
-       ("libsodium" ,libsodium)
-       ("c-toxcore" ,c-toxcore)
-       ("libvpx" ,libvpx)
-       ("libxscrnsaver" ,libxscrnsaver)
-       ("libx11" ,libx11)
-       ("libexif" ,libexif)
-       ("sqlite" ,sqlite)
-       ("openal" ,openal)
-       ("qrencode" ,qrencode)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("sqlcipher" ,sqlcipher)))
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'fix-reproducibility-issues
+                 (lambda _
+                   (substitute* "src/main.cpp"
+                     (("__DATE__") "\"\"")
+                     (("__TIME__") "\"\"")
+                     (("TIMESTAMP") "\"\""))))
+               (add-after 'unpack 'disable-network-tests
+                 (lambda _
+                   ;; These tests require network access.
+                   (substitute* "cmake/Testing.cmake"
+                     (("auto_test\\(core core\\)") "# auto_test(core core)")
+                     (("auto_test\\(net bsu\\)") "# auto_test(net bsu)"))))
+               ;; Ensure that icons are found at runtime.
+               (add-after 'install 'wrap-executable
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (let ((out (assoc-ref outputs "out")))
+                     (wrap-program (string-append out "/bin/qtox")
+                       `("QT_PLUGIN_PATH" prefix
+                         ,(list (search-input-directory
+                                 inputs "lib/qt5/plugins/"))))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qmake" ,qttools)))
+     (list pkg-config qttools))
+    (inputs
+     (list ffmpeg
+           filteraudio
+           glib
+           gtk+-2
+           libsodium
+           c-toxcore
+           libvpx
+           libxscrnsaver
+           libx11
+           libexif
+           sqlite
+           openal
+           qrencode
+           qtbase-5
+           qtsvg
+           sqlcipher))
     (home-page "https://qtox.github.io/")
     (synopsis "Tox chat client using Qt")
     (description "qTox is a Tox client that follows the Tox design
@@ -1687,7 +1765,7 @@ connect with friends and family without anyone else listening in.")
          "1d3jhnj8rgzxyxjwfa22vh45qwzjvxw1qh8fz6b7nfkj3zvk9jvf"))))
     (build-system gnu-build-system)
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (home-page "https://ytalk.ourproject.org")
     (synopsis "Multi-user chat program")
     (description "Ytalk is a replacement for the BSD talk program.  Its main
@@ -1709,11 +1787,9 @@ with several different talk daemons at the same time.")
         (base32 "1jgrd07qr9jvbb5hcmhrqz4w4lvwc51m30jls1fgxf1f5az6455f"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libidn" ,libidn)
-       ("gnutls" ,gnutls)
-       ("zlib" ,zlib)))
+     (list libidn gnutls zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Portable high-level Jabber/XMPP library for C++")
     (description
      "gloox is a full-featured Jabber/XMPP client library,
@@ -1738,10 +1814,9 @@ into existing applications.")
          "0vsjclglkwgbyd9m5ad642fyysxw2x725nhq4r2m9pvqaq6s5yf2"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (inputs
-     `(("perl-curses" ,perl-curses)
-       ("perl-io-socket-ssl" ,perl-io-socket-ssl)))
+     (list perl-curses perl-io-socket-ssl))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1813,9 +1888,7 @@ for @uref{https://torproject.org,tor} router) and many more.")
                 "14q89fxap05ajkfn20rnhc6b1h4i3i2adyr7y6hs5zqwb2lcmc1p"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)
-       ("netcat" ,netcat)
-       ("procps" ,procps)))
+     (list perl netcat procps))
     (arguments
      `(#:make-flags
        (list "CC=gcc"
@@ -1867,10 +1940,9 @@ including psyced.")
        ("krb5" ,mit-krb5)
        ("libidn" ,libidn)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("check" ,check)
-       ("glib" ,glib "bin")             ; gtester
-       ("gtk-doc" ,gtk-doc)))
+     (list pkg-config check
+           `(,glib "bin") ; gtester
+           gtk-doc))
     (home-page "https://mcabber.com/")
     (description
      "Loudmouth is a lightweight and easy-to-use C library for programming
@@ -1901,14 +1973,14 @@ protocol allows.")
         "--enable-enchant"
         "--enable-aspell")))
     (inputs
-     `(("gpgme" ,gpgme)
-       ("libotr" ,libotr)
-       ("aspell" ,aspell)
-       ("enchant" ,enchant-1.6)
-       ("libidn" ,libidn)
-       ("glib" ,glib)
-       ("ncurses" ,ncurses)
-       ("loudmouth" ,loudmouth)))
+     (list gpgme
+           libotr
+           aspell
+           enchant-1.6
+           libidn
+           glib
+           ncurses
+           loudmouth))
     (native-inputs
      `(("perl" ,perl)
        ("pkg-config" ,pkg-config)
@@ -1935,7 +2007,9 @@ support, and more.")
                 "1rmrn7a1bb7vm26yaklrvx008a9qhwc32s57dwrlf40lv9gffwny"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       (list "CFLAGS=-fcommon")
+       #:phases
        (modify-phases %standard-phases
          ;; For 'system' commands in Scheme code.
          (add-after 'install 'wrap-program
@@ -1951,17 +2025,14 @@ support, and more.")
                          (list bash coreutils less))))
                #t))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)))
+     (list autoconf automake pkg-config texinfo))
     (inputs
-     `(("bash" ,bash)
-       ("glib" ,glib)
-       ("guile" ,guile-2.0)
-       ("less" ,less)
-       ("loudmouth" ,loudmouth)
-       ("readline" ,readline)))
+     (list bash
+           glib
+           guile-2.0
+           less
+           loudmouth
+           readline))
     (synopsis "Extensible console-based Jabber client")
     (description
      "GNU Freetalk is a command-line Jabber/XMPP chat client.  It notably uses
@@ -1995,13 +2066,9 @@ is also scriptable and extensible via Guile.")
                (("'\\^xmpp_'") "'.'"))
              #t)))))
     (inputs
-     `(("expat" ,expat)
-       ("openssl" ,openssl)))
+     (list expat openssl))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (synopsis "C library for writing XMPP clients")
     (description "Libmesode is a fork of libstrophe for use with Profanity
 XMPP Client.  In particular, libmesode provides extra TLS functionality such as
@@ -2034,13 +2101,9 @@ manual SSL certificate verification.")
                (("'\\^xmpp_'") "'.'"))
              #t)))))
     (inputs
-     `(("expat" ,expat)
-       ("openssl" ,openssl)))
+     (list expat openssl))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (synopsis "C library for writing XMPP clients")
     (description "Libstrophe is a minimal XMPP library written in C.  It has
 almost no external dependencies, only an XML parsing library (expat or libxml
@@ -2052,7 +2115,7 @@ are both supported).")
 (define-public profanity
   (package
     (name "profanity")
-    (version "0.10.0")
+    (version "0.11.1")
     (source
      (origin
        (method url-fetch)
@@ -2061,7 +2124,7 @@ are both supported).")
                        version ".tar.gz"))
        (sha256
         (base32
-         "137z77514fgj2dk13d12g4jrn6gs5k85nwrk1r1kiv7rj0jy61aa"))))
+         "0idx0a5g077a57q462w01m0h8i4vyvabzlj87p8527wpqbv4s6vg"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags
@@ -2076,12 +2139,12 @@ are both supported).")
         "--enable-omemo"
         "--enable-icons-and-clipboard")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("autoconf-archive" ,autoconf-archive)
-       ("automake" ,automake)
-       ("cmocka" ,cmocka)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf
+           autoconf-archive
+           automake
+           cmocka
+           libtool
+           pkg-config))
     (inputs
      `(("curl" ,curl)
        ("expat" ,expat)
@@ -2119,7 +2182,7 @@ using ncurses and libmesode, inspired by Irssi.")
          "0b9wa0h3xc31wpqlvgxgnvqp5wgx3kwsf5s9432m5cj8ycx6zcmv"))))
     (build-system gnu-build-system)
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (arguments
      `(#:configure-flags
        (list (string-append "--libdir="
@@ -2171,21 +2234,21 @@ building the IRC clients and bots.")
              (setenv "ENABLE_PYTHON" "1")
              #t)))))
     (inputs
-     `(("c-toxcore" ,c-toxcore)
-       ("curl" ,curl)
-       ("freealut" ,freealut)
-       ("gdk-pixbuf" ,gdk-pixbuf)       ; for libnotify.pc
-       ("libconfig" ,libconfig)
-       ("libnotify" ,libnotify)
-       ("libpng" ,libpng)
-       ("libvpx" ,libvpx)
-       ("libx11" ,libx11)
-       ("ncurses" ,ncurses)
-       ("openal" ,openal)
-       ("python" ,python)
-       ("qrencode" ,qrencode)))
+     (list c-toxcore
+           curl
+           freealut
+           gdk-pixbuf ; for libnotify.pc
+           libconfig
+           libnotify
+           libpng
+           libvpx
+           libx11
+           ncurses
+           openal
+           python
+           qrencode))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/JFreegman/toxic")
     (synopsis "Tox chat client using ncurses")
     (description "Toxic is a console-based instant messaging client, using
@@ -2208,8 +2271,7 @@ notifications, and Python scripting support.")
         (base32 "0gkwr3yw6k2m0j8cc085b5p2q788rf5nhp1p5hc5d55pc7mci2qs"))))
     (build-system cmake-build-system)
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtmultimedia" ,qtmultimedia)))
+     (list qtbase-5 qtmultimedia))
     (arguments
      `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON")
        #:tests? #f))                    ; no tests
@@ -2249,16 +2311,15 @@ QMatrixClient project.")
              #t)))))
     (build-system cmake-build-system)
     (inputs
-     `(("boost" ,boost)
-       ("json-modern-cxx" ,json-modern-cxx)
-       ("libolm" ,libolm)
-       ("libsodium" ,libsodium)
-       ("openssl" ,openssl)
-       ("spdlog" ,spdlog)
-       ("zlib" ,zlib)))
+     (list boost
+           json-modern-cxx
+           libolm
+           libsodium
+           openssl
+           spdlog
+           zlib))
     (native-inputs
-     `(("googletest" ,googletest)
-       ("pkg-config" ,pkg-config)))
+     (list googletest pkg-config))
     (home-page "https://github.com/Nheko-Reborn/mtxclient")
     (synopsis "Client API library for the Matrix protocol")
     (description "@code{mtxclient} is a C++ library that implements client API
@@ -2377,15 +2438,15 @@ notification, emojis, E2E encryption, and voip calls.")
         (base32 "1q9ddz4rs02a0w3lwrsjnh59khv38cq9f0kv09vnwvazvayn87ck"))))
     (build-system qt-build-system)
     (inputs
-     `(("libqmatrixclient" ,libqmatrixclient)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtquickcontrols" ,qtquickcontrols)
-       ("qtquickcontrols2" ,qtquickcontrols2)
-       ("qtsvg" ,qtsvg)
-       ("qttools" ,qttools)
-       ("xdg-utils" ,xdg-utils)))
+     (list libqmatrixclient
+           qtbase-5
+           qtdeclarative
+           qtmultimedia
+           qtquickcontrols
+           qtquickcontrols2
+           qtsvg
+           qttools
+           xdg-utils))
     (arguments
      `(#:tests? #f))                    ; no tests
     (home-page "https://matrix.org/docs/projects/client/quaternion.html")
@@ -2400,13 +2461,13 @@ QMatrixClient project.")
 (define-public hangups
   (package
     (name "hangups")
-    (version "0.4.14")
+    (version "0.4.15")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "hangups" version))
        (sha256
-        (base32 "15qbbafcrdkx73xz9y30qa3d8nj6mgrp2m41749i5nn1qywmikk8"))))
+        (base32 "1fa58m6zgvsawp2h1maj82wn6lpdllhbficmcjm78n5bg1hv7f4m"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -2416,27 +2477,24 @@ QMatrixClient project.")
            (lambda _
              (substitute* "setup.py"
                (("==") ">=")
-               ((",<.*'") "'"))
-             #t))
+               ((",<.*'") "'"))))
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
-               (invoke "pytest" "hangups"))
-             #t)))))
+               (invoke "pytest" "hangups")))))))
     (propagated-inputs
-     `(("python-aiohttp" ,python-aiohttp)
-       ("python-appdirs" ,python-appdirs)
-       ("python-async-timeout" ,python-async-timeout)
-       ("python-configargparse" ,python-configargparse)
-       ("python-mechanicalsoup" ,python-mechanicalsoup)
-       ("python-protobuf" ,python-protobuf-3.6)
-       ("python-readlike" ,python-readlike)
-       ("python-reparser" ,python-reparser)
-       ("python-requests" ,python-requests)
-       ("python-urwid" ,python-urwid)))
+     (list python-aiohttp
+           python-appdirs
+           python-async-timeout
+           python-configargparse
+           python-mechanicalsoup
+           python-protobuf-3.6
+           python-readlike
+           python-reparser
+           python-requests
+           python-urwid))
     (native-inputs
-     `(("python-httpretty" ,python-httpretty)
-       ("python-pytest" ,python-pytest)))
+     (list python-httpretty python-pytest))
     (home-page "https://hangups.readthedocs.io/")
     (synopsis "Instant messaging client for Google Hangouts")
     (description
@@ -2487,12 +2545,12 @@ messaging that aren’t available to clients that connect over XMPP.")
        ("gettext" ,gettext-minimal)
        ("which" ,which)))
     (inputs
-     `(("pidgin" ,pidgin)
-       ("libgcrypt" ,libgcrypt)
-       ("libwebp" ,libwebp)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+-2)
-       ("zlib" ,zlib)))
+     (list pidgin
+           libgcrypt
+           libwebp
+           glib
+           gtk+-2
+           zlib))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2534,48 +2592,45 @@ replacement.")
     (license license:gpl2+)))
 
 (define-public tdlib
-  (package
-    (name "tdlib")
-    (version "1.7.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/tdlib/td")
-                    (commit (string-append "v" version))))
-              (sha256
-               (base32
-                "0dfir57ljcn98mkg061c5642qb93wh2lm1n4nngpl3na9vvfk75i"))
-              (file-name (git-file-name name version))))
-    (build-system cmake-build-system)
-    (arguments
-     `(#:tests? #t
-       #:configure-flags
-       (list "-DCMAKE_BUILD_TYPE=Release"
-             "-DTD_ENABLE_LTO=OFF") ; FIXME: Get LTO to work.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-failing-tests
-           (lambda _
-             (substitute* "test/CMakeLists.txt"
-               ;; The test cases are compiled into a distinct binary
-               ;; which uses mtproto.cpp to attempt to connect to
-               ;; a remote server. Removing this file from the sources
-               ;; list disables those specific test cases.
-               (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/mtproto.cpp") ""))
-             #t)))))
-    (native-inputs
-     `(("gperf" ,gperf)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)
-       ("php" ,php)
-       ("doxygen" ,doxygen)))
-    (synopsis "Cross-platform library for building Telegram clients")
-    (description "Tdlib is a cross-platform library for creating custom
+  (let ((commit "34ba9b21f365b8d3bdc36808c2d665ca5cd128f6"))
+    (package
+      (name "tdlib")
+      (version "1.7.10")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/tdlib/td")
+               (commit commit)))
+         (sha256
+          (base32 "06fbdh1jypz0p1rf6xbpias4kx7xplq9xjd9vz177vwj9icq3wki"))
+         (file-name (git-file-name name version))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:tests? #t
+         #:configure-flags
+         (list "-DCMAKE_BUILD_TYPE=Release"
+               "-DTD_ENABLE_LTO=OFF")   ; FIXME: Get LTO to work.
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'remove-failing-tests
+             (lambda _
+               (substitute* "test/CMakeLists.txt"
+                 ;; The test cases are compiled into a distinct binary
+                 ;; which uses mtproto.cpp to attempt to connect to
+                 ;; a remote server. Removing this file from the sources
+                 ;; list disables those specific test cases.
+                 (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/mtproto.cpp") ""))
+               #t)))))
+      (native-inputs
+       (list gperf openssl zlib php doxygen))
+      (synopsis "Cross-platform library for building Telegram clients")
+      (description "Tdlib is a cross-platform library for creating custom
 Telegram clients following the official Telegram API.  It can be easily used
 from almost any programming language with a C-FFI and features first-class
 support for high performance Telegram Bot creation.")
-    (home-page "https://core.telegram.org/tdlib")
-    (license license:boost1.0)))
+      (home-page "https://core.telegram.org/tdlib")
+      (license license:boost1.0))))
 
 (define-public purple-mm-sms
   (package
@@ -2606,13 +2661,95 @@ support for high performance Telegram Bot creation.")
      `(("glib:bin" ,glib "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("modem-manager" ,modem-manager)
-       ("pidgin" ,pidgin)))
+     (list modem-manager pidgin))
     (synopsis "Libpurple plugin for SMS via ModemManager")
     (description "Plugin for libpurple to allow sending SMS using ModemManager.")
     (home-page "https://source.puri.sm/Librem5/purple-mm-sms")
     (license license:gpl2+)))
 
+(define-public purple-lurch
+  (package
+    (name "purple-lurch")
+    (version "0.7.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference (url "https://github.com/gkdr/lurch")
+                       (commit (string-append "v" version))))
+       (modules '((guix build utils)))
+       (snippet
+        `(begin
+           ;; Submodules
+           (delete-file-recursively "lib")))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "1ipd9gwh04wbqv6c10yxi02lc2yjsr02hwjycgxhl4r9x8b33psd"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'configure
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (substitute* "Makefile"
+                          (("^PURPLE_PLUGIN_DIR = .*")
+                           (string-append "PURPLE_PLUGIN_DIR = " out
+                                          "/lib/purple-2\n")))
+                        (setenv "CC" "gcc")))))
+       #:parallel-tests? #f))
+    (native-inputs (list cmocka pkg-config))
+    (inputs (list axc
+                  glib
+                  libgcrypt
+                  libomemo
+                  libsignal-protocol-c
+                  libxml2
+                  minixml
+                  pidgin
+                  sqlite))
+    (synopsis "OMEMO Encryption for libpurple")
+    (description "Purple-lurch plugin adds end-to-end encryption support
+through the Double Ratchet (Axolotl) algorithm, to @code{libpurple}
+applications using @acronym{XMPP, Extensible Messaging and Presence Protocol},
+through its standard XEP-0384: @acronym{OMEMO, OMEMO Multi-End Message and
+Object Encryption} Encryption.  It provides confidentiality, (weak) forward
+secrecy, break-in recovery, authentication, integrity, deniability, and
+asynchronicity.")
+    (home-page "https://github.com/gkdr/lurch")
+    (license license:gpl3+)))
+
+(define-public libphonenumber
+  (package
+   (name "libphonenumber")
+   (version "8.11.3")
+   (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/google/libphonenumber")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "06y3mh1d1mks6d0ynxp3980g712nkf8l5nyljpybsk326b246hg9"))))
+   (arguments
+    `(#:test-target "tests"
+      #:phases
+      (modify-phases %standard-phases
+        (add-after 'unpack 'change-directory
+          (lambda _ (chdir "cpp"))))))
+   (build-system cmake-build-system)
+   (native-inputs
+    (list googletest pkg-config))
+   (inputs
+    (list boost protobuf icu4c))
+   (synopsis "Library for parsing and using phone numbers")
+   (description
+    "This package provides a C++ library for parsing, formatting, and
+validating international phone numbers.")
+   (home-page "https://github.com/google/libphonenumber")
+   (license license:asl2.0)))
+
+
 (define-public chatty
  (package
    (name "chatty")
@@ -2640,18 +2777,17 @@ support for high performance Telegram Bot creation.")
       ("glib:bin" ,glib "bin")
       ("pkg-config" ,pkg-config)))
    (inputs
-    `(("feedbackd" ,feedbackd)
-      ("folks" ,folks)
-      ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-      ("libgcrypt" ,libgcrypt)
-      ("libgee" ,libgee)
-      ("libhandy" ,libhandy-0.0)
-      ("pidgin" ,pidgin)
-      ("purple-mm-sms" ,purple-mm-sms)
-      ("sqlite" ,sqlite)))
+    (list feedbackd
+          folks
+          gsettings-desktop-schemas
+          libgcrypt
+          libgee
+          libhandy-0.0
+          pidgin
+          purple-mm-sms
+          sqlite))
    (propagated-inputs
-    `(("adwaita-icon-theme" ,adwaita-icon-theme)
-      ("evolution-data-server" ,evolution-data-server)))
+    (list adwaita-icon-theme evolution-data-server))
    (synopsis "Mobile client for XMPP and SMS messaging")
    (description "Chatty is a chat program for XMPP and SMS.  It works on mobile
 as well as on desktop platforms.  It's based on libpurple and ModemManager.")
@@ -2672,7 +2808,7 @@ as well as on desktop platforms.  It's based on libpurple and ModemManager.")
          "1yq7y329baa1ly488rw125c3mvsnsa7kjkik602xv1xpkz8p73al"))))
     (build-system cmake-build-system)
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (synopsis "Message broker")
     (description "This package provides Eclipse Mosquitto, a message broker
 that implements the MQTT protocol versions 5.0, 3.1.1 and 3.1.  Mosquitto
@@ -2718,11 +2854,9 @@ as phones, embedded computers or microcontrollers.")
                   "\"../build"))
                #t)))))
       (inputs
-       `(("qtbase" ,qtbase-5)
-         ("qtdeclarative" ,qtdeclarative)
-         ("qtwebchannel" ,qtwebchannel)))
+       (list qtbase-5 qtdeclarative qtwebchannel))
       (propagated-inputs
-       `(("qtwebengine" ,qtwebengine)))
+       (list qtwebengine))
       (home-page "https://movim.eu/")
       (synopsis "Desktop Application for Movim")
       (description
@@ -2885,27 +3019,19 @@ designed for experienced users.")
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'cd-to-zulip-dir
-           (lambda _
-             (chdir "zulip")
-             #t))
+           (lambda _ (chdir "zulip")))
          (replace 'check
            (lambda* (#:key inputs outputs tests? #:allow-other-keys)
              (let ((test-zulip "../tools/test-zulip"))
                (when tests?
                  (add-installed-pythonpath inputs outputs)
-                 (setenv "PYTHONPATH" (string-append ".:" (getenv "PYTHONPATH")))
                  (patch-shebang test-zulip)
-                 (invoke test-zulip))
-               #t))))))
+                 (invoke test-zulip))))))))
     (propagated-inputs
-     `(("python-matrix-client" ,python-matrix-client)
-       ("python-pyopenssl" ,python-pyopenssl)
-       ("python-requests" ,python-requests)
-       ("python-six" ,python-six)))
+     (list python-matrix-client python-pyopenssl python-requests
+           python-six))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-distro" ,python-distro)
-       ("python-pytest" ,python-pytest)))
+     (list python-cython python-distro python-pytest))
     (home-page "https://github.com/zulip/python-zulip-api")
     (synopsis "Zulip's API Python bindings")
     (description
@@ -2947,17 +3073,15 @@ designed for experienced users.")
                (invoke "pytest"))
              #t)))))
     (inputs
-     `(("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-lxml" ,python-lxml)
-       ("python-mypy-extensions" ,python-mypy-extensions)
-       ("python-urwid" ,python-urwid)
-       ("python-urwid-readline" ,python-urwid-readline)
-       ("python-zulip" ,python-zulip)))
+     (list python-beautifulsoup4
+           python-lxml
+           python-mypy-extensions
+           python-urwid
+           python-urwid-readline
+           python-zulip))
     (native-inputs
-     `(("python-distro" ,python-distro)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-mock" ,python-pytest-mock)))
+     (list python-distro python-pytest python-pytest-cov
+           python-pytest-mock))
     (home-page "https://github.com/zulip/zulip-terminal")
     (synopsis "Zulip's official terminal client")
     (description "This package contains Zulip's official terminal client.")
@@ -2990,4 +3114,149 @@ API.  Mattermost is not required.")
     (home-page "https://github.com/42wim/matterbridge")
     (license license:asl2.0)))
 
+(define-public pounce
+  (package
+    (name "pounce")
+    (version "3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://git.causal.agency/pounce/snapshot/pounce-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1w4x34bspkqvk9p7bfj0zmvmbzvxb7lxrrr3g6lrfdj9f3qzfxpp"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ;there are no tests
+       #:make-flags
+       (list
+        (string-append "CC=" ,(cc-for-target))
+        (string-append "PREFIX=" %output))))
+    (native-inputs
+     (list pkg-config universal-ctags))
+    (inputs
+     (list libressl))
+    (home-page "https://code.causal.agency/june/pounce")
+    (synopsis "Simple multi-client TLS-only IRC bouncer")
+    (description
+     "@command{pounce} is a multi-client, TLS-only IRC bouncer.  It maintains
+a persistent connection to an IRC server, acting as a proxy and buffer for
+a number of clients.")
+    (license license:gpl3+)))
+
+(define-public weechat-matrix
+  (package
+    (name "weechat-matrix")
+    (version "0.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/poljar/weechat-matrix")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1iv55n4k05139f7jzkhczgw4qp6qwilrvfsy3c6v2m1kxffj12d3"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'build)
+         (replace 'install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((weechat-python (string-append (assoc-ref outputs "out")
+                                                   "/share/weechat/python")))
+               ;; Avoid circular import by renaming the matrix module to
+               ;; weechat_matrix.
+               (substitute* (cons "main.py"
+                                  (append (find-files "matrix")
+                                          (find-files "tests")))
+                 (("from matrix") "from weechat_matrix")
+                 (("import matrix") "import weechat_matrix"))
+               ;; Install python modules.
+               (invoke "make" "install-lib"
+                       (string-append "INSTALLDIR="
+                                      (site-packages inputs outputs)
+                                      "/weechat_matrix"))
+               ;; Extend PYTHONPATH to find installed python modules.
+               (add-installed-pythonpath inputs outputs)
+               ;; Augment sys.path so that dependencies are found.
+               (substitute* "main.py"
+                 (("import os\n" all)
+                  (apply string-append
+                         all
+                         "import sys\n"
+                         (map (lambda (path)
+                                (string-append "sys.path.append('" path "')\n"))
+                              (string-split (getenv "GUIX_PYTHONPATH") #\:)))))
+               ;; Install script.
+               (mkdir-p weechat-python)
+               (copy-file "main.py"
+                          (string-append weechat-python "/matrix.py")))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest")))))))
+    (inputs
+     (list python-matrix-nio python-pygments python-pyopenssl
+           python-webcolors))
+    (native-inputs
+     (list python-pytest))
+    (home-page "https://github.com/poljar/weechat-matrix")
+    (synopsis "Weechat Matrix protocol script")
+    (description "@code{weechat-matrix} is a Python plugin for Weechat that lets
+Weechat communicate over the Matrix protocol.")
+    (license license:isc)))
+
+(define-public weechat-wee-slack
+  (package
+    (name "weechat-wee-slack")
+    (version "2.8.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/wee-slack/wee-slack")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0xfklr0gsc9jgxfyrrb2j756lclz9g8imcb0pk0xgyj8mhsw23zk"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'build)
+         (replace 'install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             ;; Augment sys.path so that dependencies are found.
+             (substitute* "wee_slack.py"
+               (("import sys\n" all)
+                (apply string-append
+                       all
+                       (map (lambda (path)
+                              (string-append "sys.path.append('" path "')\n"))
+                            (string-split (getenv "GUIX_PYTHONPATH") #\:)))))
+             ;; Install script.
+             (install-file "wee_slack.py"
+                           (string-append (assoc-ref outputs "out")
+                                          "/share/weechat/python"))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest")))))))
+    (inputs
+     (list python-websocket-client))
+    (native-inputs
+     (list python-pytest))
+    (home-page "https://github.com/wee-slack/wee-slack")
+    (synopsis "Weechat Slack script")
+    (description "@code{weechat-wee-slack} is a WeeChat native client for
+Slack.  It provides supplemental features only available in the web/mobile
+clients such as synchronizing read markers, typing notification, threads (and
+more)!  It connects via the Slack API, and maintains a persistent websocket
+for notification of events.")
+    (license license:expat)))
+
 ;;; messaging.scm ends here
diff --git a/gnu/packages/microcom.scm b/gnu/packages/microcom.scm
index 36d6bf21b7..364812299f 100644
--- a/gnu/packages/microcom.scm
+++ b/gnu/packages/microcom.scm
@@ -29,7 +29,7 @@
 (define-public microcom
   (package
     (name "microcom")
-    (version "2017.03.0")
+    (version "2019.01.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -37,11 +37,10 @@
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "060q42lf1bx403smxm97cz8r4ksq942mq5z708vavy6syv3fkap4"))))
+               (base32 "0rf4qdkbhknrrqn4rpb737l0km8yn5f498zapks4akf6yjh5aq8y"))))
     (build-system gnu-build-system)
-    (inputs `(("readline" ,readline)))
-    (native-inputs `(("automake" ,automake)
-                     ("autoconf" ,autoconf)))
+    (inputs (list readline))
+    (native-inputs (list automake autoconf))
     (home-page  "https://git.pengutronix.de/?p=tools/microcom.git")
     (synopsis "Minimalistic serial line terminal program")
  (description "Microcom is a minimalistic terminal program for accessing
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index fd1439d4d2..f48addf247 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2021 Trevor Hass <thass@okstate.edu>
-;;; Copyright © 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2020, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; This file is part of GNU Guix.
 ;;;
@@ -116,7 +116,7 @@
             (variable "MINETEST_MOD_PATH")
             (files '("share/minetest/mods")))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("coreutils" ,coreutils)
        ("curl" ,curl)
@@ -136,7 +136,7 @@
        ("openal" ,openal)
        ("sqlite" ,sqlite)))
     (propagated-inputs
-     `(("minetest-data" ,minetest-data)))
+     (list minetest-data))
     (synopsis "Infinite-world block sandbox game")
     (description
      "Minetest is a sandbox construction game.  Players can create and destroy
@@ -187,6 +187,27 @@ numeric identifier TOPIC-ID on the official Minetest forums."
   (string-append "https://forum.minetest.net/viewtopic.php?t="
                  (number->string topic-id)))
 
+(define-public minetest-moreores
+  (package
+    (name "minetest-moreores")
+    (version "2.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/minetest-mods/moreores")
+             (commit (string-append "v" version))))
+       (sha256 (base32 "1chfqbc6bb27aacjc67j5l5wcdvmcsvk2rfmangipd7nwini3y34"))
+       (file-name (git-file-name name version))))
+    (build-system minetest-mod-build-system)
+    (home-page (minetest-topic 549))
+    (synopsis "Additional ore types, tools, swords, and rails for Minetest")
+    (description
+     "This Minetest mod adds new ore types to the game (mithril, silver) as well
+as swords and tools made of different materials.  It also adds copper rails.")
+    (license license:zlib)
+    (properties `((upstream-name . "Calinou/moreores")))))
+
 (define-public minetest-basic-materials
   (package
     (name "minetest-basic-materials")
@@ -202,6 +223,10 @@ numeric identifier TOPIC-ID on the official Minetest forums."
         (base32 "0v6l3lrjgshy4sccjhfhmfxc3gk0cdy73qb02i9wd2vw506v5asx"))
        (file-name (git-file-name name version))))
     (build-system minetest-mod-build-system)
+    (propagated-inputs
+     ;; basic_materials:silver_wire cannot be crafted without
+     ;; moreores:silver_ingot.
+     (list minetest-moreores))
     (home-page (minetest-topic 21000))
     (synopsis "Some \"basic\" materials and items for other Minetest mods to use")
     (description
@@ -228,7 +253,7 @@ like steel bars and chains, wire, plastic strips and sheets, and more.")
        (file-name (git-file-name name version))))
     (build-system minetest-mod-build-system)
     (propagated-inputs
-     `(("minetest-unifieddyes" ,minetest-unifieddyes)))
+     (list minetest-unifieddyes))
     (home-page (minetest-topic 2411))
     (synopsis "Painted wood in Minetest")
     (description
@@ -286,8 +311,7 @@ special items, intending to make an interesting adventure.")
        (file-name (git-file-name name version))))
     (build-system minetest-mod-build-system)
     (propagated-inputs
-     `(("minetest-basic-materials" ,minetest-basic-materials)
-       ("minetest-unifieddyes" ,minetest-unifieddyes)))
+     (list minetest-basic-materials minetest-unifieddyes))
     (home-page (minetest-topic 2041))
     (synopsis "Home decor mod for Minetest")
     (description
@@ -406,7 +430,7 @@ add some mobs, a mod like e.g. @code{mobs_animal} provided by the
        (file-name (git-file-name name version))))
     (build-system minetest-mod-build-system)
     (propagated-inputs
-     `(("minetest-mobs" ,minetest-mobs)))
+     (list minetest-mobs))
     (home-page "https://notabug.org/TenPlus1/mobs_animal")
     (synopsis "Add animals to Minetest")
     (description
@@ -432,7 +456,7 @@ bunnies, chickens, cows, kittens, rats, sheep, warthogs, penguins and pandas.")
        (file-name (git-file-name name version))))
     (build-system minetest-mod-build-system)
     (propagated-inputs
-     `(("minetest-basic-materials" ,minetest-basic-materials)))
+     (list minetest-basic-materials))
     (home-page (minetest-topic 2155))
     (synopsis "Pipes, item-transport tubes and related devices for Minetest")
     (description
@@ -464,8 +488,7 @@ breakers simulate a player punching a node.")
        (file-name (git-file-name name version))))
     (build-system minetest-mod-build-system)
     (propagated-inputs
-     `(("minetest-pipeworks" ,minetest-pipeworks)
-       ("minetest-basic-materials" ,minetest-basic-materials)))
+     (list minetest-pipeworks minetest-basic-materials))
     (home-page (minetest-topic 2538))
     (synopsis "Machinery and automation for Minetest")
     (description
@@ -529,7 +552,7 @@ arrow and bow, but @code{minetest-throwing-arrows} does.")
          (file-name (git-file-name name version))))
       (build-system minetest-mod-build-system)
       (propagated-inputs
-       `(("minetest-throwing" ,minetest-throwing)))
+       (list minetest-throwing))
       (home-page (minetest-topic 16365))
       (synopsis "Arrows and bows for Minetest")
       (description
@@ -578,7 +601,7 @@ to and from the file system.")
        (file-name (git-file-name name version))))
     (build-system minetest-mod-build-system)
     (propagated-inputs
-     `(("minetest-basic-materials" ,minetest-basic-materials)))
+     (list minetest-basic-materials))
     (home-page (minetest-topic 2178))
     (synopsis
      "Unified Dyes expands the standard dye set of Minetest to up to 256 colours")
@@ -682,7 +705,7 @@ stopping before signals.
        (file-name (git-file-name name version))))
     (build-system minetest-mod-build-system)
     (propagated-inputs
-     `(("minetest-advtrains" ,minetest-advtrains)))
+     (list minetest-advtrains))
     (home-page
      "http://advtrains.de/wiki/doku.php?id=usage:trains:basic_trains")
     (synopsis "Collection of basic trains for the Advanced Trains mod")
diff --git a/gnu/packages/moe.scm b/gnu/packages/moe.scm
index 6d16d1a7cc..819a6298e3 100644
--- a/gnu/packages/moe.scm
+++ b/gnu/packages/moe.scm
@@ -38,8 +38,8 @@
        (base32
         "1yg2ln2mm6gzv61cxnv60dw1cr5bl2dhkjy685jrd3aabb7wpyqf"))))
     (build-system gnu-build-system)
-    (native-inputs `(("lzip" ,lzip)))
-    (inputs `(("ncurses" ,ncurses)))
+    (native-inputs (list lzip))
+    (inputs (list ncurses))
     (home-page "https://www.gnu.org/software/moe/moe.html")
     (synopsis "Modeless, multiple-buffer, user-friendly 8-bit text editor")
     (description
diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm
index 46dea5eeb8..69cddfceb1 100644
--- a/gnu/packages/monitoring.scm
+++ b/gnu/packages/monitoring.scm
@@ -27,6 +27,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages monitoring)
+  #:use-module (guix gexp)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -56,6 +57,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages rrdtool)
@@ -86,7 +88,7 @@
                   #t))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (inputs
      `(("zlib" ,zlib)
        ("libpng-apng" ,libpng)
@@ -181,8 +183,7 @@ etc. via a Web interface.  Features include:
              (string-append "--with-libpcre="
                             (assoc-ref %build-inputs "pcre")))))
     (inputs
-     `(("libiconv" ,libiconv)
-       ("pcre" ,pcre)))
+     (list libiconv pcre))
     (home-page "https://www.zabbix.com/")
     (synopsis "Distributed monitoring solution (client-side agent)")
     (description "This package provides a distributed monitoring
@@ -235,14 +236,14 @@ solution (client-side agent)")
                                (assoc-ref %build-inputs "zlib"))
                 ,flags))))
     (inputs
-     `(("curl" ,curl)
-       ("libevent" ,libevent)
-       ("gnutls" ,gnutls)
-       ("postgresql" ,postgresql)
-       ("zlib" ,zlib)
-       ("net-snmp" ,net-snmp)
-       ("curl" ,curl)
-       ,@(package-inputs zabbix-agentd)))
+     (modify-inputs (package-inputs zabbix-agentd)
+       (prepend curl
+                libevent
+                gnutls
+                postgresql
+                zlib
+                net-snmp
+                curl)))
     (synopsis "Distributed monitoring solution (server-side)")
     (description "This package provides a distributed monitoring
 solution (server-side)")))
@@ -287,7 +288,7 @@ through a text-based interface.")
 (define-public python-pyzabbix
   (package
     (name "python-pyzabbix")
-    (version "0.8.2")
+    (version "1.0.0")
     (home-page "https://github.com/lukecyca/pyzabbix")
     ;; No tests on PyPI, use the git checkout.
     (source
@@ -297,7 +298,7 @@ through a text-based interface.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "15rrnpkv94wx6748hh4sd120v6x25rkbd6vlz6hfrhvjwxz5lgjl"))))
+         "146pv8bj6pv8max1lkm07560b9zcc268c927kff6rcib47qxfnn2"))))
     (build-system python-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -311,13 +312,12 @@ through a text-based interface.")
                     (lambda* (#:key tests? #:allow-other-keys)
                       (if tests?
                           (invoke "python" "setup.py" "nosetests")
-                          (format #t "test suite not run~")))))))
+                          (format #t "test suite not run~%")))))))
     (native-inputs
-     `(;; For tests.
-       ("python-httpretty" ,python-httpretty)
-       ("python-nose" ,python-nose)))
+     ;; For tests.
+     (list python-httpretty python-nose))
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests python-semantic-version))
     (synopsis "Python interface to the Zabbix API")
     (description
      "@code{pyzabbix} is a Python module for working with the Zabbix API.")
@@ -337,8 +337,7 @@ through a text-based interface.")
     (build-system gnu-build-system)
     (arguments '(#:tests? #f))          ; no tests
     (inputs
-     `(("libpcap" ,libpcap)
-       ("zlib" ,zlib)))
+     (list libpcap zlib))
     (home-page "https://unix4lyfe.org/darkstat/")
     (synopsis "Network statistics gatherer")
     (description
@@ -358,15 +357,16 @@ HTTP.  Features:
 (define-public python-whisper
   (package
     (name "python-whisper")
-    (version "1.0.2")
+    (version "1.1.8")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "whisper" version))
        (sha256
         (base32
-         "1v1bi3fl1i6p4z4ki692bykrkw6907dn3mfq0151f70lvi3zpns3"))))
+         "1bk29w09zcpsv8hp0g0al7nwrxa07z0ycls3mbh83wfavk83aprl"))))
     (build-system python-build-system)
+    (native-inputs (list python-six))
     (home-page "http://graphiteapp.org/")
     (synopsis "Fixed size round-robin style database for Graphite")
     (description "Whisper is one of three components within the Graphite
@@ -377,32 +377,26 @@ recent data to degrade into lower resolutions for long-term retention of
 historical data.")
     (license license:asl2.0)))
 
-(define-public python2-whisper
-  (package-with-python2 python-whisper))
-
-(define-public python2-carbon
+(define-public python-carbon
   (package
-    (name "python2-carbon")
-    (version "1.0.2")
+    (name "python-carbon")
+    (version "1.1.8")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "carbon" version))
        (sha256
         (base32
-         "142smpmgbnjinvfb6s4ijazish4vfgzyd8zcmdkh55y051fkixkn"))))
+         "1wb91fipk1niciffq5xwqbh8g7rl7ghdam4m97cjbig12i5qr4cm"))))
     (build-system python-build-system)
     (arguments
-     `(#:python ,python-2   ; only supports Python 2
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          ;; Don't install to /opt
          (add-after 'unpack 'do-not-install-to-/opt
            (lambda _ (setenv "GRAPHITE_NO_PREFIX" "1") #t)))))
     (propagated-inputs
-     `(("python2-whisper" ,python2-whisper)
-       ("python2-configparser" ,python2-configparser)
-       ("python2-txamqp" ,python2-txamqp)))
+     (list python-cachetools python-txamqp python-urllib3 python-whisper))
     (home-page "http://graphiteapp.org/")
     (synopsis "Backend data caching and persistence daemon for Graphite")
     (description "Carbon is a backend data caching and persistence daemon for
@@ -438,15 +432,15 @@ and persisting them to disk using the Whisper time-series library.")
          (add-after 'unpack 'do-not-install-to-/opt
            (lambda _ (setenv "GRAPHITE_NO_PREFIX" "1") #t)))))
     (propagated-inputs
-     `(("python-cairocffi" ,python-cairocffi)
-       ("python-pytz" ,python-pytz)
-       ("python-whisper" ,python-whisper)
-       ("python-django" ,python-django-2.2)
-       ("python-django-tagging" ,python-django-tagging)
-       ("python-scandir" ,python-scandir)
-       ("python-urllib3" ,python-urllib3)
-       ("python-pyparsing" ,python-pyparsing)
-       ("python-txamqp" ,python-txamqp)))
+     (list python-cairocffi
+           python-pytz
+           python-whisper
+           python-django-2.2
+           python-django-tagging
+           python-scandir
+           python-urllib3
+           python-pyparsing
+           python-txamqp))
     (home-page "https://graphiteapp.org/")
     (synopsis "Scalable realtime graphing system")
     (description "Graphite is a scalable real-time graphing system that does
@@ -454,9 +448,6 @@ two things: store numeric time-series data, and render graphs of this data on
 demand.")
     (license license:asl2.0)))
 
-(define-public python2-graphite-web
-  (deprecated-package "python2-graphite-web" graphite-web))
-
 (define-public python-prometheus-client
   (package
     (name "python-prometheus-client")
@@ -472,7 +463,7 @@ demand.")
      '(;; No included tests.
        #:tests? #f))
     (propagated-inputs
-     `(("python-twisted" ,python-twisted)))
+     (list python-twisted))
     (home-page
      "https://github.com/prometheus/client_python")
     (synopsis "Python client for the Prometheus monitoring system")
@@ -485,9 +476,6 @@ Metrics can be exposed through a standalone web server, or through Twisted,
 WSGI and the node exporter textfile collector.")
     (license license:asl2.0)))
 
-(define-public python2-prometheus-client
-  (package-with-python2 python-prometheus-client))
-
 (define-public go-github-com-prometheus-node-exporter
   (package
     (name "go-github-com-prometheus-node-exporter")
@@ -544,12 +532,9 @@ written in Go with pluggable metric collectors.")
                                             "/lib/udev/rules.d"))
                #t)))))
       (inputs
-       `(("python-prometheus-client" ,python-prometheus-client)
-         ("python-pyudev" ,python-pyudev)))
+       (list python-prometheus-client python-pyudev))
       (native-inputs
-       `(("python-pytest" ,python-pytest)
-         ("python-pytest-mock" ,python-pytest-mock)
-         ("python-pytest-runner" ,python-pytest-runner)))
+       (list python-pytest python-pytest-mock python-pytest-runner))
       (home-page "https://github.com/yrro/temper-exporter")
       (synopsis "Prometheus exporter for PCSensor TEMPer sensor devices")
       (description
@@ -560,7 +545,7 @@ devices.")
 (define-public fswatch
   (package
     (name "fswatch")
-    (version "1.15.0")
+    (version "1.16.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -569,13 +554,13 @@ devices.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1yz65jsbgdx4cmy16x24wz5di352lvyi7fp6jm90bhgl1vpzxlsx"))))
+                "1zsvc8arza2ypnnmv4m0qfpnldmy1zh10q6wss05ibmanslfj2ql"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gettext-minimal)
-       ("libtool" ,libtool)))
+     (list autoconf automake gettext-minimal libtool))
+    (arguments
+     (list #:configure-flags
+           #~(list "--disable-static")))
     (synopsis "File system monitor")
     (description "This package provides a file system monitor.")
     (home-page "https://github.com/emcrisostomo/fswatch")
@@ -604,14 +589,9 @@ devices.")
                       ;; Required because of patched sources.
                       (invoke "autoreconf" "-vfi"))))))
     (inputs
-     `(("rrdtool" ,rrdtool)
-       ("curl" ,curl)
-       ("libyajl" ,libyajl)))
+     (list rrdtool curl libyajl))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (home-page "https://collectd.org/")
     (synopsis "Collect system and application performance metrics periodically")
     (description
@@ -637,7 +617,7 @@ future system load (i.e., capacity planning).")
                (base32
                 "0jw6yij8va0f292g4xkf9lp9sxkzfgv67ajw49g3vq42q47ld7cv"))))
     (build-system gnu-build-system)
-    (inputs `(("ncurses" ,ncurses)))
+    (inputs (list ncurses))
     (arguments '(#:tests? #f)) ;; No included tests.
     (home-page "http://www.maier-komor.de/hostscope.html")
     (properties `((release-monitoring-url . ,home-page)))
diff --git a/gnu/packages/mono.scm b/gnu/packages/mono.scm
index 9e5b428969..6a7afbafbf 100644
--- a/gnu/packages/mono.scm
+++ b/gnu/packages/mono.scm
@@ -147,7 +147,7 @@ Java.")
          "1vr5l09i5i91n9qzky7ab9wwvgdidvrbw26y8llip0z4qdf4w7mq"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("glib" ,glib)
        ("cairo" ,cairo)
diff --git a/gnu/packages/moreutils.scm b/gnu/packages/moreutils.scm
index 47bda32126..8738418a21 100644
--- a/gnu/packages/moreutils.scm
+++ b/gnu/packages/moreutils.scm
@@ -23,6 +23,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix utils)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages docbook))
@@ -30,7 +31,7 @@
 (define-public moreutils
   (package
     (name "moreutils")
-    (version "0.65")
+    (version "0.66")
     (source
      (origin
        (method url-fetch)
@@ -38,18 +39,13 @@
              "https://git.joeyh.name/index.cgi/moreutils.git/snapshot/"
              name "-" version ".tar.gz"))
        (sha256
-        (base32 "10c8b4bwnli4gxwvgmgkc5kin1ksrxsnxmigs7y4rrh4aaszdjb0"))))
+        (base32 "0k91dvqy3jb070bkmhkdxhi05fr7hqlwpv1nrx329wmgi80rw1yw"))))
     (build-system gnu-build-system)
     ;; For building the manual pages.
     (native-inputs
-     `(("docbook-xml" ,docbook-xml-4.4)
-       ("docbook-xsl" ,docbook-xsl)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)))
+     (list docbook-xml-4.4 docbook-xsl libxml2 libxslt))
     (inputs
-     `(("perl" ,perl)
-       ("perl-timedate" ,perl-timedate)
-       ("perl-time-duration" ,perl-time-duration)))
+     (list perl perl-timedate perl-time-duration))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -58,8 +54,7 @@
                       (let* ((out (assoc-ref outputs "out")))
                         (wrap-program
                             (string-append out "/bin/ts")
-                          `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))))
-                      #t))
+                          `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))))))
          (delete 'configure))           ; no configure script
        #:make-flags
        (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
@@ -67,7 +62,7 @@
                             (assoc-ref %build-inputs "docbook-xsl") "/xml/xsl/"
                             ,(package-name docbook-xsl) "-"
                             ,(package-version docbook-xsl))
-             "CC=gcc")))
+             (string-append "CC=" ,(cc-for-target)))))
     (home-page "https://joeyh.name/code/moreutils/")
     (synopsis "Miscellaneous general-purpose command-line tools")
     (description
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index 406d010193..ef5db3ebd2 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -155,7 +155,7 @@ This package contains the library.")
                            Libs: -L${libdir} -lid3tag -lz~@
                            Cflags: -I${includedir}~%"
                           out ,version)))))))))
-   (inputs `(("zlib" ,zlib)))
+   (inputs (list zlib))
    (synopsis "Library for reading ID3 tags")
    (description
     "Libid3tag is a library for reading ID3 tags, both ID3v1 and the various
@@ -180,7 +180,7 @@ versions of ID3v2.")
             (patches (search-patches "id3lib-CVE-2007-4460.patch"
                                      "id3lib-UTF16-writing-bug.patch"))))
    (build-system gnu-build-system)
-   (inputs `(("zlib" ,zlib)))
+   (inputs (list zlib))
    (arguments
     `(#:phases
       (modify-phases %standard-phases
@@ -235,7 +235,7 @@ a highly stable and efficient implementation.")
                                          (assoc-ref inputs "zlib")
                                          "/lib -lz\")")))
                        #t)))))
-    (inputs `(("zlib" ,zlib)))
+    (inputs (list zlib))
     (home-page "https://taglib.org")
     (synopsis "Library to access audio file meta-data")
     (description
@@ -297,10 +297,9 @@ Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.")
              #t)))
         #:tests? #f))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("gtk+" ,gtk+-2)
-       ("ncurses" ,ncurses)))
+     (list gtk+-2 ncurses))
     (home-page "https://www.ibiblio.org/mp3info/")
     (synopsis "MP3 technical info viewer and ID3 1.x tag editor")
     (description
@@ -323,15 +322,15 @@ pre-defined or user-specifiable output format.")
              (base32
               "1p1mn2hsmj5cp40fnc8g1yfvk72p8pjxi866gjdkgjsqrr7xdvih"))))
    (build-system gnu-build-system)
-   (inputs `(("flac" ,flac)
-             ("libid3tag" ,libid3tag)
-             ("libmad" ,libmad)
-             ("libogg" ,libogg)
-             ("libltdl" ,libltdl)
-             ("libvorbis" ,libvorbis)
-             ("pcre" ,pcre)))
+   (inputs (list flac
+                 libid3tag
+                 libmad
+                 libogg
+                 libltdl
+                 libvorbis
+                 pcre))
    (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
    (synopsis "Library for splitting mp3 and ogg vorbis files")
    (description
     "Mp3splt is a utility to split mp3 and ogg vorbis files selecting a begin
@@ -357,8 +356,8 @@ This package contains the library.")
              (base32
               "1aiv20gypb6r84qabz8gblk8vi42cg3x333vk2pi3fyqvl82phry"))))
    (build-system gnu-build-system)
-   (native-inputs `(("pkg-config" ,pkg-config)))
-   (inputs `(("libmp3splt" ,libmp3splt)))
+   (native-inputs (list pkg-config))
+   (inputs (list libmp3splt))
    (synopsis "Utility for splitting mp3 and ogg vorbis files")
    (description
     "Mp3splt is a utility to split mp3 and ogg vorbis files selecting a begin
@@ -388,10 +387,9 @@ This package contains the binary.")
     (build-system gnu-build-system)
     (arguments '(#:configure-flags '("--with-default-audio=pulse")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib pulseaudio))
     (home-page "https://www.mpg123.org/")
     (synopsis "Console MP3 player and decoder library")
     (description
@@ -483,18 +481,11 @@ use with CD-recording software).")
             (patches (search-patches "ripperx-missing-file.patch"))))
    (build-system gnu-build-system)
    (propagated-inputs
-    `(("font-ghostscript" ,font-ghostscript)
-      ("cdparanoia" ,cdparanoia)
-      ("flac" ,flac)
-      ("lame" ,lame)
-      ("vorbis-tools" ,vorbis-tools)))
+    (list font-ghostscript cdparanoia flac lame vorbis-tools))
    (inputs
-    `(("glib" ,glib)
-      ("gtk+" ,gtk+-2)
-      ("id3lib" ,id3lib)
-      ("taglib" ,taglib)))
+    (list glib gtk+-2 id3lib taglib))
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    (list pkg-config))
    (synopsis "GTK program to rip and encode CD audio tracks")
    (description
     "RipperX is a GTK program to rip CD audio tracks and encode them to the
@@ -581,10 +572,7 @@ compression format (.mpc files).")
     (arguments
      `(#:tests? #f))    ; the required test data contains copyrighted material
     (propagated-inputs
-     `(("python-grako" ,python-grako)
-       ("python-magic" ,python-magic)
-       ("python-pathlib" ,python-pathlib)
-       ("python-six" ,python-six)))
+     (list python-grako python-magic python-pathlib python-six))
     (synopsis "MP3 tag ID3 metadata editor")
     (description "eyeD3 is a Python tool for working with audio files,
 specifically mp3 files containing ID3 metadata (i.e. song info).  It provides a
@@ -615,8 +603,7 @@ command-line tool.")
     (inputs
      ;; requires one of FFmpeg (prefered), FFTW3 or vDSP
      ;; use the same ffmpeg version as for acoustid-fingerprinter
-     `(("ffmpeg" ,ffmpeg)
-       ("boost" ,boost)))
+     (list ffmpeg boost))
     (home-page "https://acoustid.org/chromaprint")
     (synopsis "Audio fingerprinting library")
     (description "Chromaprint is a library for calculating audio
@@ -637,8 +624,7 @@ is to provide an accurate identifier for record tracks.")
     (build-system python-build-system)
     (arguments `(#:tests? #f)) ; there is no "audiofile" fixture
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest python-pytest-runner))
     (home-page "https://github.com/sampsyo/audioread")
     (synopsis "Decode audio files using whichever backend is available")
     (description
@@ -673,10 +659,9 @@ FFmpeg, etc.")
                 (string-append "'" (assoc-ref inputs "chromaprint")
                                "/bin/fpcalc'")))
              #t)))))
-    (inputs `(("chromaprint" ,chromaprint)))
+    (inputs (list chromaprint))
     (propagated-inputs
-     `(("python-audioread" ,python-audioread)
-       ("python-requests" ,python-requests)))
+     (list python-audioread python-requests))
     (home-page "https://github.com/beetbox/pyacoustid")
     (synopsis "Bindings for Chromaprint acoustic fingerprinting")
     (description
@@ -709,10 +694,9 @@ fingerprinting library and the Acoustid API.")
            (lambda _
              (setenv "PYTAGLIB_CYTHONIZE" "1"))))))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)))
+     (list python-cython python-pytest))
     (inputs
-     `(("taglib" ,taglib)))
+     (list taglib))
     (home-page
      "https://github.com/supermihi/pytaglib")
     (synopsis
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index 3fe8c0b690..ad89acda04 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2016, 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
-;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2020 Lars-Dominik Braun <lars@6xq.net>
 ;;; Copyright © 2020, 2021 Simon Streit <simon@netpanic.org>
 ;;; Copyright © 2021 Noah Evans <noah@nevans.me>
@@ -30,6 +30,7 @@
 (define-module (gnu packages mpd)
   #:use-module (gnu packages)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix gexp)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -42,8 +43,10 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages build-tools) ;meson-next
   #:use-module (gnu packages boost)
   #:use-module (gnu packages cdrom)
+  #:use-module (gnu packages cmake) ;for MPD
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
@@ -61,6 +64,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages pulseaudio)
@@ -73,7 +77,7 @@
 (define-public libmpdclient
   (package
     (name "libmpdclient")
-    (version "2.19")
+    (version "2.20")
     (source (origin
               (method url-fetch)
               (uri
@@ -82,16 +86,14 @@
                               "/libmpdclient-" version ".tar.xz"))
               (sha256
                (base32
-                "12d1fzlkcnjw4ayk2wp11vhglfcvr5k02arzdbkhiavq496av2hm"))))
+                "0z979qcjc0dqmpn3q9j174a29akx3zmavz6q6hg31hrrx5l3yy8q"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-
-       ;; For building HTML documentation.
-       ("doxygen" ,doxygen)
-
-       ;; For tests.
-       ("check" ,check)))
+     (list pkg-config
+           ;; For building HTML documentation.
+           doxygen
+           ;; For tests.
+           check))
     (arguments
      `(#:configure-flags
        (list "-Ddocumentation=true"
@@ -105,7 +107,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
 (define-public mpd
   (package
     (name "mpd")
-    (version "0.22.10")
+    (version "0.23.5")
     (source (origin
               (method url-fetch)
               (uri
@@ -114,33 +116,33 @@ interfacing MPD in the C, C++ & Objective C languages.")
                               "/mpd-" version ".tar.xz"))
               (sha256
                (base32
-                "0576z57rgwmnm5djd7rwbc93aikji0n6b3lx1553v74rx4sjbj07"))))
+                "16d2ny05z47qpj4sjagdcyphb16dzdy21mwwdxbg819s14jjqb7j"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags '("-Ddocumentation=enabled")))
-    (inputs `(("ao" ,ao)
-              ("alsa-lib" ,alsa-lib)
-              ("avahi" ,avahi)
-              ("boost" ,boost)
-              ("curl" ,curl)
-              ("ffmpeg" ,ffmpeg)
-              ("flac" ,flac)
-              ("glib" ,glib)
-              ("icu4c" ,icu4c)
-              ;; The LAME decoder comes from FFmpeg, but is added here so that
-              ;; configure picks up the LAME encoder.
-              ("lame" ,lame)
-              ("libid3tag" ,libid3tag)
-              ("libmpdclient" ,libmpdclient)
-              ("libsamplerate" ,libsamplerate)
-              ("libsndfile" ,libsndfile)
-              ("libvorbis" ,libvorbis)
-              ("opus" ,opus)
-              ("pulseaudio" ,pulseaudio)
-              ("sqlite" ,sqlite)
-              ("zlib" ,zlib)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("python-sphinx" ,python-sphinx)))
+    (inputs (list ao
+                  alsa-lib
+                  avahi
+                  boost
+                  curl
+                  ffmpeg
+                  flac
+                  fmt
+                  glib
+                  icu4c
+                  ;; The LAME decoder comes from FFmpeg, but is added here so that
+                  ;; configure picks up the LAME encoder.
+                  lame
+                  libid3tag
+                  libmpdclient
+                  libsamplerate
+                  libsndfile
+                  libvorbis
+                  opus
+                  pulseaudio
+                  sqlite
+                  zlib))
+    (native-inputs (list cmake pkg-config python-sphinx))
     ;; Missing optional inputs:
     ;;   libyajl
     ;;   libcdio_paranoia
@@ -167,12 +169,13 @@ server-side application for playing music.  Through plugins and libraries it
 can play a variety of sound files while being controlled by its network
 protocol.")
     (home-page "https://www.musicpd.org/")
+    (properties `((release-monitoring-url . "https://musicpd.org")))
     (license license:gpl2)))
 
 (define-public mpd-mpc
   (package
     (name "mpd-mpc")
-    (version "0.33")
+    (version "0.34")
     (source (origin
               (method url-fetch)
               (uri
@@ -181,12 +184,22 @@ protocol.")
                               "/mpc-" version ".tar.xz"))
               (sha256
                (base32
-                "15hjpzqs83v1zx49x8nkpwy9hpl1jxd55z1w50vm82gm32zcqh2g"))))
+                "086sdx88zvgbv4j9kw4qlrsw1n621d6j6403pcid045wahv3y7k9"))))
     (build-system meson-build-system)
-    (inputs `(("libmpdclient" ,libmpdclient)))
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'remove-bogus-rsync-requirement
+                 ;; Meson thinks a maintainer ‘upload to musicpd.org’ task
+                 ;; merits a hard dependency on rsync.  Convince it otherwise.
+                 ;; Don't use ‘true’ so that the build will fail if it is ever
+                 ;; actually invoked.
+                 (lambda _
+                   (substitute* "doc/meson.build"
+                     (("rsync") "ls")))))))
+    (inputs (list libmpdclient))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-sphinx" ,python-sphinx)))
+     (list pkg-config python-sphinx))
     (synopsis "Music Player Daemon client")
     (description "MPC is a minimalist command line interface to MPD, the music
 player daemon.")
@@ -196,7 +209,7 @@ player daemon.")
 (define-public ncmpc
   (package
     (name "ncmpc")
-    (version "0.45")
+    (version "0.46")
     (source (origin
               (method url-fetch)
               (uri
@@ -205,21 +218,13 @@ player daemon.")
                               "/ncmpc-" version ".tar.xz"))
               (sha256
                (base32
-                "11gpy6kd7xr8x7f7gwdwfryxyc58cd135ds28gnz40p08xj49zqp"))))
+                "0klkjaq6n05cmgcwiawjm6d3rn6mrncy72s3x0abjjnx177pfzqp"))))
     (build-system meson-build-system)
-    (arguments
-     `(#:configure-flags
-       ;; Otherwise, they are installed incorrectly, in
-       ;; '$out/share/man/man/man1'.
-       (list (string-append "-Dmandir=" (assoc-ref %outputs "out")
-                            "/share"))))
-    (inputs `(("boost" ,boost)
-              ("pcre" ,pcre)
-              ("libmpdclient" ,libmpdclient)
-              ("ncurses" ,ncurses)))
-    (native-inputs `(("gettext" ,gettext-minimal) ; for xgettext
-                     ("pkg-config" ,pkg-config)
-                     ("python-sphinx" ,python-sphinx)))
+    (inputs (list boost pcre libmpdclient ncurses))
+    (native-inputs
+     (list gettext-minimal              ; for xgettext
+           pkg-config
+           python-sphinx))
     (synopsis "Curses Music Player Daemon client")
     (description "ncmpc is a fully featured MPD client, which runs in a
 terminal using ncurses.")
@@ -239,15 +244,15 @@ terminal using ncurses.")
                (base32
                 "06rs734n120jp51hr0fkkhxrm7zscbhpdwls0m5b5cccghazdazs"))))
     (build-system gnu-build-system)
-    (inputs `(("libmpdclient" ,libmpdclient)
-              ("boost"  ,boost)
-              ("readline" ,readline)
-              ("ncurses" ,ncurses)
-              ("taglib" ,taglib)
-              ("icu4c" ,icu4c)
-              ("curl" ,curl)))
+    (inputs (list libmpdclient
+                  boost
+                  readline
+                  ncurses
+                  taglib
+                  icu4c
+                  curl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      '(#:configure-flags
        '("BOOST_LIB_SUFFIX=" "--with-taglib" "--enable-clock")))
@@ -271,11 +276,8 @@ sort playlists, and a local file system browser.")
                (base32
                 "0s66zqscb44p88cl3kcv5jkjcqsskcnrv7xgrjhzrchf2kcpwf53"))))
     (build-system meson-build-system)
-    (inputs `(("boost" ,boost)
-              ("curl" ,curl)
-              ("libgcrypt" ,libgcrypt)
-              ("libmpdclient" ,libmpdclient)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list boost curl libgcrypt libmpdclient))
+    (native-inputs (list pkg-config))
     (synopsis "MPD client for track scrobbling")
     (description "mpdscribble is a Music Player Daemon client which submits
 information about tracks being played to a scrobbler, such as Libre.FM.")
@@ -299,8 +301,7 @@ information about tracks being played to a scrobbler, such as Libre.FM.")
          (replace 'check
            (lambda _ (invoke "python" "-m" "pytest" "mpd/tests.py"))))))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-mock python-pytest))
     (home-page "https://github.com/Mic92/python-mpd2")
     (synopsis "Python MPD client library")
     (description "Python-mpd2 is a Python library which provides a client
@@ -343,12 +344,12 @@ interface for the Music Player Daemon.")
     (native-inputs
      `(("gettext" ,gettext-minimal)))
     (inputs
-     `(("python-mpd2" ,python-mpd2)
-       ("gtk+" ,gtk+)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gobject-introspection" ,gobject-introspection)
-       ("adwaita-icon-theme" ,adwaita-icon-theme)
-       ("python-pygobject" ,python-pygobject)))
+     (list python-mpd2
+           gtk+
+           gsettings-desktop-schemas
+           gobject-introspection
+           adwaita-icon-theme
+           python-pygobject))
     (synopsis "Elegant client for the Music Player Daemon")
     (description "Sonata is an elegant graphical client for the Music Player
 Daemon (MPD).  It supports playlists, multiple profiles (connecting to different
@@ -369,8 +370,8 @@ MPD servers, search and multimedia key support.")
               (sha256
                (base32
                 "11aa95cg0yca2m2d00sar6wr14g3lc7cfm9bin1h7lk7asdm8azp"))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("libmpdclient" ,libmpdclient)))
+    (native-inputs (list pkg-config))
+    (inputs (list libmpdclient))
     (build-system meson-build-system)
     (home-page "https://github.com/joshkunz/ashuffle")
     (synopsis "Automatic library-wide shuffle for mpd")
@@ -406,10 +407,7 @@ other MPD frontends.")
                  `("GUIX_PYTHONPATH" ":" prefix (,python-path)))
                #t))))))
     (inputs
-     `(("python-mpd2" ,python-mpd2)
-       ("python-dbus" ,python-dbus)
-       ("python-pygobject" ,python-pygobject)
-       ("python" ,python)))             ; Sets GUIX_PYTHONPATH.
+     (list python-mpd2 python-dbus python-pygobject python))             ; Sets GUIX_PYTHONPATH.
     ;; For bootstrapping.
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -439,19 +437,19 @@ support")
     (arguments
      `(#:tests? #f)) ; No test suite
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("eudev" ,eudev)
-       ("ffmpeg" ,ffmpeg)
-       ("libcdio-paranoia" ,libcdio-paranoia)
-       ("libebur128" ,libebur128)
-       ("libmtp" ,libmtp)
-       ("mpg123" ,mpg123)
-       ("qtbase" ,qtbase-5)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtsvg" ,qtsvg)
-       ("taglib" ,taglib)
-       ("zlib" ,zlib)))
+     (list eudev
+           ffmpeg
+           libcdio-paranoia
+           libebur128
+           libmtp
+           mpg123
+           qtbase-5
+           qtmultimedia
+           qtsvg
+           taglib
+           zlib))
     (synopsis "Graphical MPD Client")
     (description "Cantata is a graphical client for the Music Player Daemon
 (MPD), using the Qt5 toolkit.  Its user interface is highly customizable,
@@ -482,11 +480,7 @@ artists along with albumart.")
        ("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("avahi" ,avahi)
-       ("dconf" ,dconf)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ("python-pygobject" ,python-pygobject)))
+     (list avahi dconf gsettings-desktop-schemas gtk+ python-pygobject))
     (arguments
      `(#:imported-modules ((guix build glib-or-gtk-build-system)
                            ,@%python-build-system-modules)
@@ -500,9 +494,8 @@ artists along with albumart.")
              (let ((prog (string-append (assoc-ref outputs "out")
                                         "/bin/mcg")))
                (wrap-program prog
-                 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
-                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
-               #t)))
+                 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
+                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
          (add-after 'wrap-program 'glib-or-gtk-wrap
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
     (synopsis "Covergrid for the MPD")
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index b91afc2067..16c42378fb 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Paul Garlick <pgarlick@tourbillion-technology.com>
-;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -89,9 +89,9 @@
              '())))
     (propagated-inputs
      ;; hwloc.pc lists it in 'Requires.private'.
-     `(("libpciaccess" ,libpciaccess)))
+     (list libpciaccess))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:configure-flags '("--localstatedir=/var")
        #:phases
@@ -151,7 +151,7 @@ bind processes, and much more.")
   ;; Note: 2.x isn't the default yet, see above.
   (package
     (inherit hwloc-1)
-    (version "2.5.0")
+    (version "2.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.open-mpi.org/release/hwloc/v"
@@ -159,7 +159,7 @@ bind processes, and much more.")
                                   "/hwloc-" version ".tar.bz2"))
               (sha256
                (base32
-                "1j2j9wn39a8v91r23xncm1rzls6rjkgkvdvqghbdsnq8ps491kx9"))))
+                "1q440fwvhnxz6j8k5bn3bxj86b3lzbr8fgib78l4iq6gxd9yx302"))))
 
     ;; libnuma is no longer needed.
     (inputs (alist-delete "numactl" (package-inputs hwloc-1)))
@@ -232,8 +232,7 @@ bind processes, and much more.")
        ("valgrind" ,valgrind)
        ("slurm" ,slurm)))              ;for PMI support (launching via "srun")
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("perl" ,perl)))
+     (list pkg-config perl))
     (outputs '("out" "debug"))
     (arguments
      `(#:configure-flags `("--enable-mpi-ext=affinity" ;cr doesn't work
@@ -309,6 +308,16 @@ software vendors, application developers and computer science researchers.")
     ;; See file://LICENSE
     (license license:bsd-2)))
 
+(define-public openmpi-c++
+  (package/inherit openmpi
+    (name "openmpi-c++")
+    (outputs '("out"))
+    (arguments
+     (substitute-keyword-arguments (package-arguments openmpi)
+       ((#:configure-flags flags)
+        `(cons "--enable-mpi-cxx" ,flags))))
+    (synopsis "C++ bindings for MPI")))
+
 ;; TODO: javadoc files contain timestamps.
 (define-public java-openmpi
   (package/inherit openmpi
@@ -412,7 +421,7 @@ only provides @code{MPI_THREAD_FUNNELED}.")))
                 "unittest.skipMPI('openmpi')"))
              #t)))))
     (inputs
-     `(("openmpi" ,openmpi)))
+     (list openmpi))
     (home-page "https://bitbucket.org/mpi4py/mpi4py/")
     (synopsis "Python bindings for the Message Passing Interface standard")
     (description "MPI for Python (mpi4py) provides bindings of the Message
@@ -447,9 +456,7 @@ arrays) that expose a buffer interface.")
              `(("ucx" ,ucx))
              '())))
     (native-inputs
-     `(("perl" ,perl)
-       ("which" ,which)
-       ("gfortran" ,gfortran)))
+     (list perl which gfortran))
     (outputs '("out" "debug"))
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/mtools.scm b/gnu/packages/mtools.scm
index a660606316..f3539e5d27 100644
--- a/gnu/packages/mtools.scm
+++ b/gnu/packages/mtools.scm
@@ -29,14 +29,14 @@
 (define-public mtools
   (package
     (name "mtools")
-    (version "4.0.35")
+    (version "4.0.36")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/mtools/mtools-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "0ja7lkbw6v36p0cq0hs3xsw2ks970k47d350j7cg1lji6wbrwxil"))
+                "1x20a82wbg4ibnbs4c43kwk3zdvgzycq4flxcir9zfyzyanybh75"))
               (patches
                (search-patches "mtools-mformat-uninitialized.patch"))))
     (build-system gnu-build-system)
diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm
index 163632769f..6c0d163a10 100644
--- a/gnu/packages/multiprecision.scm
+++ b/gnu/packages/multiprecision.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2018, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -49,7 +50,7 @@
               "1wml97fdmpcynsbw9yl77rj29qibfp652d0w3222zlfx5j8jjj7x"))
             (patches (search-patches "gmp-faulty-test.patch"))))
    (build-system gnu-build-system)
-   (native-inputs `(("m4" ,m4)))
+   (native-inputs (list m4))
    (outputs '("out" "debug"))
    (arguments
     `(#:parallel-tests? #f ; mpz/reuse fails otherwise
@@ -122,7 +123,7 @@ It is aimed at use in, for example, cryptography and computational algebra.")
                      "0zwaanakrqjf84lfr5hfsdr7hncwv9wj0mchlr7cmxigfgqs760c"))))
    (build-system gnu-build-system)
    (outputs '("out" "debug"))
-   (propagated-inputs `(("gmp" ,gmp)))            ; <mpfr.h> refers to <gmp.h>
+   (propagated-inputs (list gmp))            ; <mpfr.h> refers to <gmp.h>
    (synopsis "C library for arbitrary-precision floating-point arithmetic")
    (description
     "GNU@tie{}@acronym{MPFR, Multiple Precision Floating-Point Reliably} is a C
@@ -144,8 +145,8 @@ correct rounding.")
                 "0n846hqfqvmsmim7qdlms0qr86f1hck19p12nq3g3z2x74n3sl0p"))))
    (build-system gnu-build-system)
    (outputs '("out" "debug"))
-   (propagated-inputs `(("gmp" ,gmp)              ; <mpc.h> refers to both
-                        ("mpfr" ,mpfr)))
+   (propagated-inputs (list gmp ; <mpc.h> refers to both
+                            mpfr))
    (synopsis "C library for arbitrary-precision complex arithmetic")
    (description
     "GNU@tie{}@acronym{MPC, Multiple Precision Complex library} is a C library
@@ -175,8 +176,8 @@ precision and correctly rounds the results.")
        ("libtool" ,libtool)
        ("texinfo" ,texinfo)))
     (propagated-inputs
-     `(("gmp" ,gmp)                     ; <mpfi.h> refers to both
-       ("mpfr" ,mpfr)))
+     (list gmp ; <mpfi.h> refers to both
+           mpfr))
     (home-page "https://gforge.inria.fr/projects/mpfi/")
     (synopsis "C library for arbitrary-precision interval arithmetic")
     (description
@@ -203,8 +204,8 @@ multiple-precision arithmetic.")
        (sha256
         (base32 "1cdmvb4hsa161rfdjqyhd9sb3fcr43p3a6nsj7cb4kn9f94qmjpj"))))
     (build-system gnu-build-system)
-    (propagated-inputs `(("gmp" ,gmp)   ; <mpfi.h> refers to both
-                         ("mpfr" ,mpfr)))
+    (propagated-inputs (list gmp ; <mpfi.h> refers to both
+                             mpfr))
     (arguments
      `(#:parallel-build? #f))
     (synopsis "C++ package for real arithmetic based on the Real-RAM concept")
@@ -221,19 +222,20 @@ error.  Additionally, iRRAM uses the concept of multi-valued functions.")
 (define-public qd
   (package
     (name "qd")
-    (version "2.3.22")
+    (version "2.3.23")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://crd-legacy.lbl.gov/~dhbailey/mpdist/qd-"
                            version ".tar.gz"))
        (sha256
-        (base32 "1lq609rsp6zpg7zda75lyxzzk1fabzp4jn88j7xfk84mdgjgzh9h"))))
+        (base32 "09pfd77rmy370hy7qdqw84z21y9zpl3fcwzf93rhiv0kwhfg9smk"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (arguments
      `(#:configure-flags `("--disable-enable_fma" ;weird :/
+                           "--disable-static"
                            "--enable-shared"
                            ,,@(if (string-prefix? "aarch64"
                                                   (or (%current-target-system)
@@ -256,6 +258,29 @@ and (for Fortran-90 programs) read/write statements need to be changed.  PSLQ
 and numerical quadrature programs are included.")
     (license bsd-3)))
 
+(define-public cln
+  (package
+    (name "cln")
+    (version "1.3.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.ginac.de/CLN/cln-"
+                           version ".tar.bz2"))
+       (sha256
+        (base32 "0jlq9l4hphk7qqlgqj9ihjp4m3rwjbhk6q4v00lsbgbri07574pl"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags (list "--disable-static")))
+    (inputs
+     (list gmp))
+    (home-page "https://www.ginac.de/CLN/")
+    (synopsis "Library for arbitrary precision computations")
+    (description "CLN is a C++ library for efficient computations with all
+kinds of numbers in arbitrary precision.  It provides a rich set of number
+classes and elementary, logical and transcendental functions.")
+    (license gpl2+)))
+
 (define-public tomsfastmath
   (package
     (name "tomsfastmath")
@@ -271,7 +296,7 @@ and numerical quadrature programs are included.")
                 "0f0pmiaskh89sp0q933pafxb914shpaj5ad8sb5rzk1wv8d7mja7"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("libtool" ,libtool)))
+     (list libtool))
     (arguments
      `(#:make-flags (list "-f" "makefile.shared"
                           (string-append "LIBPATH=" %output "/lib")
@@ -379,13 +404,14 @@ multiplies.")
        #:make-flags
        (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
              "CFLAGS += -DLTM_DESC -DUSE_LTM"
-             (string-append "EXTRALIBS=" (assoc-ref %build-inputs "libtommath")
-                            "/lib/libtommath.so")
+             (string-append "EXTRALIBS="
+                            (search-input-file %build-inputs
+                                               "/lib/libtommath.so"))
              (string-append "CC=" ,(cc-for-target)))))
     (native-inputs
-     `(("libtool" ,libtool)))
+     (list libtool))
     (inputs
-     `(("libtommath" ,libtommath)))
+     (list libtommath))
     (home-page "https://www.libtom.net/LibTomCrypt/")
     (synopsis "Cryptographic toolkit")
     (description "LibTomCrypt is a fairly comprehensive, modular and portable
@@ -438,7 +464,7 @@ number generators, public key cryptography and a plethora of other routines.")
        #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
                           "CC=gcc")))
     (native-inputs
-     `(("libtool" ,libtool)))
+     (list libtool))
     (home-page "https://www.libtom.net/LibTomMath/")
     (synopsis "Portable number theoretic multiple-precision integer library")
     (description "LibTomMath is a portable number theoretic multiple-precision
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 1ce6264094..82a0e56947 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -33,7 +33,7 @@
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2019 Riku Viitanen <riku.viitanen0@gmail.com>
 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
-;;; Copyright © 2021 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
@@ -43,6 +43,7 @@
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 ;;; Copyright © 2021 Simon Streit <simon@netpanic.org>
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;; Copyright © 2021 Thomas Albers Raviola <thomas@thomaslabs.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -71,6 +72,7 @@
   #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system qt)
   #:use-module (guix build-system scons)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system qt)
@@ -88,6 +90,7 @@
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base) ;libbdf
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages benchmark)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages build-tools)
@@ -111,7 +114,6 @@
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages game-development)
-  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
@@ -238,39 +240,39 @@
        ("glib:bin" ,glib "bin")         ; for gdbus-codegen
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("dbus" ,dbus)
-       ("qtbase" ,qtbase-5)
-       ("qtmultimedia" ,qtmultimedia)
-       ;; Plugin dependencies
-       ("alsa-lib" ,alsa-lib)
-       ("curl" ,curl)
-       ("faad2" ,faad2)
-       ("ffmpeg" ,ffmpeg)
-       ("flac" ,flac)
-       ("fluidsynth" ,fluidsynth)
-       ("lame" ,lame)
-       ("libbs2b" ,libbs2b)
-       ("libcddb" ,libcddb)
-       ("libcdio-paranoia" ,libcdio-paranoia)
-       ("libcue" ,libcue)
-       ("libnotify" ,libnotify)
-       ("libogg" ,libogg)
-       ("libopenmpt" ,libopenmpt)
-       ("libsamplerate" ,libsamplerate)
-       ("libsndfile" ,libsndfile)
-       ("libvorbis" ,libvorbis)
-       ("libxcomposite" ,libxcomposite)
-       ("libxml2" ,libxml2)
-       ("libxrender" ,libxrender)
-       ("lirc" ,lirc)
-       ("jack" ,jack-1)
-       ("mesa" ,mesa)
-       ("mpg123" ,mpg123)
-       ("neon" ,neon)
-       ("pulseaudio" ,pulseaudio)
-       ("sdl2" ,sdl2)
-       ("soxr" ,soxr)
-       ("wavpack" ,wavpack)))
+     (list dbus
+           qtbase-5
+           qtmultimedia
+           ;; Plugin dependencies
+           alsa-lib
+           curl
+           faad2
+           ffmpeg
+           flac
+           fluidsynth
+           lame
+           libbs2b
+           libcddb
+           libcdio-paranoia
+           libcue
+           libnotify
+           libogg
+           libopenmpt
+           libsamplerate
+           libsndfile
+           libvorbis
+           libxcomposite
+           libxml2
+           libxrender
+           lirc
+           jack-1
+           mesa
+           mpg123
+           neon
+           pulseaudio
+           sdl2
+           soxr
+           wavpack))
     (home-page "https://audacious-media-player.org")
     (synopsis "Modular and skinnable audio player")
     (description
@@ -343,11 +345,9 @@ more.")
                (chmod (string-append out "/share/Aria/score") #o555)
                #t))))))
     (inputs
-     `(("wxwidgets" ,wxwidgets)
-       ("glib" ,glib)
-       ("alsa-lib" ,alsa-lib)))
+     (list wxwidgets glib alsa-lib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://ariamaestosa.sourceforge.net/")
     (synopsis "MIDI sequencer and editor")
     (description
@@ -426,27 +426,27 @@ score, keyboard, guitar, drum and controller views.")
        ("pkg-config" ,pkg-config)
        ("qtlinguist" ,qttools)))
     (inputs
-     `(("boost" ,boost)
-       ("chromaprint" ,chromaprint)
-       ("fftw" ,fftw)
-       ("glib" ,glib)
-       ("glu" ,glu)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gst-plugins-good" ,gst-plugins-good)
-       ("gst-libav" ,gst-libav)
-       ("libcdio" ,libcdio)
-       ("libmygpo-qt" ,libmygpo-qt)
-       ;; TODO: Package libgpod.
-       ("libmtp" ,libmtp)
-       ("libxml2" ,libxml2)
-       ("protobuf" ,protobuf)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)
-       ("sqlite" ,sqlite)
-       ("sparsehash" ,sparsehash)
-       ("taglib" ,taglib)))
+     (list boost
+           chromaprint
+           fftw
+           glib
+           glu
+           gstreamer
+           gst-plugins-base
+           gst-plugins-good
+           gst-libav
+           libcdio
+           libmygpo-qt
+           ;; TODO: Package libgpod.
+           libmtp
+           libxml2
+           protobuf
+           pulseaudio
+           qtbase-5
+           qtx11extras
+           sqlite
+           sparsehash
+           taglib))
     (home-page "https://clementine-player.org")
     (synopsis "Music player and library organizer")
     (description "Clementine is a multiplatform music player.  It is inspired
@@ -521,24 +521,24 @@ playing your music.")
        ("qtlinguist" ,qttools)
        ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("boost" ,boost)
-       ("chromaprint" ,chromaprint)
-       ("dbus" ,dbus)
-       ("fftw" ,fftw)
-       ("glib" ,glib)
-       ("gnutls" ,gnutls)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gst-plugins-good" ,gst-plugins-good)
-       ("libcdio" ,libcdio)
-       ("libmtp" ,libmtp)
-       ("protobuf" ,protobuf)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)
-       ("sqlite" ,sqlite)
-       ("taglib" ,taglib)))
+     (list alsa-lib
+           boost
+           chromaprint
+           dbus
+           fftw
+           glib
+           gnutls
+           gstreamer
+           gst-plugins-base
+           gst-plugins-good
+           libcdio
+           libmtp
+           protobuf
+           pulseaudio
+           qtbase-5
+           qtx11extras
+           sqlite
+           taglib))
     (home-page "https://www.strawberrymusicplayer.org/")
     (synopsis "Music player and library organizer")
     (description "Strawberry is a music player and music collection organizer.
@@ -585,26 +585,26 @@ It is a fork of Clementine aimed at music collectors and audiophiles.")
     ;; - DISCID_LIBS, apparently different from cd-discid which is included in
     ;;   Guix.  See <http://sourceforge.net/projects/discid/>
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("ao" ,ao)
-       ("faad2" ,faad2)
-       ("ffmpeg" ,ffmpeg)
-       ("flac" ,flac)
-       ("jack" ,jack-1)
-       ("libcddb" ,libcddb)
-       ("libcdio-paranoia" ,libcdio-paranoia)
-       ("libcue" ,libcue)
-       ("libmad" ,libmad)
-       ("libmodplug" ,libmodplug)
-       ("libmpcdec" ,libmpcdec)
-       ("libsamplerate" ,libsamplerate)
-       ("libvorbis" ,libvorbis)
-       ("ncurses" ,ncurses)
-       ("opusfile" ,opusfile)
-       ("pulseaudio" ,pulseaudio)
-       ("wavpack" ,wavpack)))
+     (list alsa-lib
+           ao
+           faad2
+           ffmpeg
+           flac
+           jack-1
+           libcddb
+           libcdio-paranoia
+           libcue
+           libmad
+           libmodplug
+           libmpcdec
+           libsamplerate
+           libvorbis
+           ncurses
+           opusfile
+           pulseaudio
+           wavpack))
      (home-page "https://cmus.github.io/")
      (synopsis "Small console music player")
      (description "Cmus is a small and fast console music player.  It supports
@@ -655,22 +655,22 @@ many input formats and provides a customisable Vi-style user interface.")
        ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("aubio" ,aubio)
-       ("evince" ,evince)
-       ("fftw" ,fftw)
-       ("fluidsynth" ,fluidsynth)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("gtksourceview" ,gtksourceview-3)
-       ("guile" ,guile-2.0)
-       ("librsvg" ,librsvg)
-       ("libsndfile" ,libsndfile)
-       ("libxml2" ,libxml2)
-       ("lilypond" ,lilypond)
-       ("portaudio" ,portaudio)
-       ("portmidi" ,portmidi)
-       ("rubberband" ,rubberband)))
+     (list alsa-lib
+           aubio
+           evince
+           fftw
+           fluidsynth
+           glib
+           gtk+
+           gtksourceview-3
+           guile-2.0
+           librsvg
+           libsndfile
+           libxml2
+           lilypond
+           portaudio
+           portmidi
+           rubberband))
     (synopsis "Graphical music notation, front-end to GNU Lilypond")
     (description
      "GNU Denemo is a music notation editor that provides a convenient
@@ -725,7 +725,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
        ((#:configure-flags flags)
         `(cons "-DBUILD_ALLEGRO4=ON" ,flags))))
     (inputs
-     `(("allegro" ,allegro-4)))))
+     (list allegro-4))))
 
 (define-public hydrogen
   (package
@@ -757,18 +757,18 @@ settings (aliasing, linear interpolation and cubic interpolation).")
        ("pkg-config" ,pkg-config)
        ("qtlinguist" ,qttools)))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ;; ("ladspa" ,ladspa) ; require LADSPA_PATH to be set
-       ("lash" ,lash)
-       ("libarchive" ,libarchive)
-       ("liblo" ,liblo)
-       ("libsndfile" ,libsndfile)
-       ("lrdf" ,lrdf)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtxmlpatterns" ,qtxmlpatterns)
-       ("zlib" ,zlib)))
+     (list alsa-lib
+           jack-1
+           ;; ("ladspa" ,ladspa) ; require LADSPA_PATH to be set
+           lash
+           libarchive
+           liblo
+           libsndfile
+           lrdf
+           pulseaudio
+           qtbase-5
+           qtxmlpatterns
+           zlib))
     (home-page "http://www.hydrogen-music.org")
     (synopsis "Drum machine")
     (description
@@ -796,16 +796,16 @@ enable professional yet simple and intuitive pattern-based drum programming.")
        ("pkg-config" ,pkg-config)
        ("xmllint" ,libxml2)))
     (inputs
-     `(("flac" ,flac)
-       ("gtk+" ,gtk+)
-       ("id3lib" ,id3lib)
-       ("libid3tag" ,libid3tag)
-       ("libvorbis" ,libvorbis)
-       ("opusfile" ,opusfile)
-       ("speex" ,speex)
-       ("taglib" ,taglib)
-       ("wavpack" ,wavpack)
-       ("yelp" ,yelp)))
+     (list flac
+           gtk+
+           id3lib
+           libid3tag
+           libvorbis
+           opusfile
+           speex
+           taglib
+           wavpack
+           yelp))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -1090,12 +1090,9 @@ audio and video).")
       (modify-phases %standard-phases
         (delete 'configure))))
    (inputs
-    `(("cairo" ,cairo)
-      ("libx11" ,libx11)
-      ("lv2" ,lv2)
-      ("fluidsynth" ,fluidsynth)))
+    (list cairo libx11 lv2 fluidsynth))
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    (list pkg-config))
    (home-page "https://github.com/brummer10/Fluida.lv2")
    (synopsis "Fluidsynth as an LV2 audio plugin")
    (description "Fluida is an audio plugin in the LV2 format that acts as
@@ -1155,14 +1152,14 @@ a frontend for fluidsynth.")
                                 (string-append share "/Surge"))
               #t))))))
    (inputs
-    `(("cairo" ,cairo)
-      ("libxkbcommon" ,libxkbcommon)
-      ("python" ,python)
-      ("xcb-util" ,xcb-util)
-      ("xcb-util-cursor" ,xcb-util-cursor)
-      ("xcb-util-keysyms" ,xcb-util-keysyms)))
+    (list cairo
+          libxkbcommon
+          python
+          xcb-util
+          xcb-util-cursor
+          xcb-util-keysyms))
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    (list pkg-config))
    (home-page "https://surge-synthesizer.github.io/")
    (synopsis "Synthesizer plugin")
    (description
@@ -1202,14 +1199,14 @@ engine (except effects) that can be used for layering or split patches.")
                (("Options") "Variables"))
              #t)))))
     (inputs
-     `(("boost" ,boost)
-       ("jack" ,jack-1)
-       ("libsndfile" ,libsndfile)
-       ("libsamplerate" ,libsamplerate)
-       ("liblo" ,liblo)
-       ("rubberband" ,rubberband)))
+     (list boost
+           jack-1
+           libsndfile
+           libsamplerate
+           liblo
+           rubberband))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://das.nasophon.de/klick/")
     (synopsis "Metronome for JACK")
     (description
@@ -1252,12 +1249,9 @@ you to define complex tempo maps for entire songs or performances.")
              ;; TODO Work out how to run the spec/providers Python tests
              #t)))))
     (inputs
-     `(("glib" ,glib)
-       ("curl" ,curl)
-       ("sqlite" ,sqlite)))
+     (list glib curl sqlite))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("check" ,check)))
+     (list pkg-config check))
     (home-page "https://github.com/sahib/glyr")
     (synopsis "Search engine for music related metadata")
     (description
@@ -1307,9 +1301,7 @@ for path in [path for path in sys.path if 'site-packages' in path]: site.addsite
                                "/bin/klick'")))
              #t)))))
     (inputs
-     `(("klick" ,klick)
-       ("python2-pyliblo" ,python2-pyliblo)
-       ("python2-pygtk" ,python2-pygtk)))
+     (list klick python2-pyliblo python2-pygtk))
     (native-inputs
      `(("gettext" ,gettext-minimal)))
     (home-page "http://das.nasophon.de/gtklick/")
@@ -1319,50 +1311,6 @@ for path in [path for path in sys.path if 'site-packages' in path]: site.addsite
 interface.  It is implemented as a frontend to @code{klick}.")
     (license license:gpl2+)))
 
-(define-public libgme
-  (package
-    (name "libgme")
-    (version "0.6.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://bitbucket.org/mpyne/game-music-emu/"
-                                  "downloads/game-music-emu-" version
-                                  ".tar.xz"))
-              (sha256
-               (base32
-                "07857vdkak306d9s5g6fhmjyxk7vijzjhkmqb15s7ihfxx9lx8xb"))))
-    (build-system cmake-build-system)
-    (arguments
-     '(#:tests? #f))                    ; no check target
-    (home-page "https://bitbucket.org/mpyne/game-music-emu")
-    (synopsis "Video game music file playback library")
-    (description
-     "Game-music-emu is a collection of video game music file emulators that
-support the following formats and systems:
-@table @code
-@item AY
-ZX Spectrum/Asmtrad CPC
-@item GBS
-Nintendo Game Boy
-@item GYM
-Sega Genesis/Mega Drive
-@item HES
-NEC TurboGrafx-16/PC Engine
-@item KSS
-MSX Home Computer/other Z80 systems (doesn't support FM sound)
-@item NSF/NSFE
-Nintendo NES/Famicom (with VRC 6, Namco 106, and FME-7 sound)
-@item SAP
-Atari systems using POKEY sound chip
-@item SPC
-Super Nintendo/Super Famicom
-@item VGM/VGZ
-Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro
-@end table")
-    (license (list license:lgpl2.1+
-                   ;; demo and player directories are under the Expat license
-                   license:expat))))
-
 (define-public lingot
   (package
     (name "lingot")
@@ -1378,20 +1326,20 @@ Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro
         (base32 "04lcjzfhddbyskxr2068z609y6x0s2gjx1wl78w0dkxdi459zrn9"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("cunit" ,cunit)
-       ("glib" ,glib "bin")             ; for glib-compile-resources
-       ("intltool" ,intltool)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf
+           automake
+           cunit
+           `(,glib "bin") ; for glib-compile-resources
+           intltool
+           libtool
+           pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("fftw" ,fftw)
-       ("gtk+" ,gtk+)
-       ("jack" ,jack-2)
-       ("json-c" ,json-c)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib
+           fftw
+           gtk+
+           jack-2
+           json-c
+           pulseaudio))
     (home-page "http://lingot.nongnu.org/")
     (synopsis "Accurate & configurable musical instrument tuner")
     (description
@@ -1452,15 +1400,13 @@ frequency.")
                                  (not (string-suffix? ".lv2" name))))))
                #t))))))
     (inputs
-     `(("fftwf" ,fftwf)
-       ("jack" ,jack-1)                 ; for the standalone JACK application
-       ("libsamplerate" ,libsamplerate)
-       ("mesa" ,mesa)
-       ("libsndfile" ,libsndfile)))
+     (list fftwf
+           jack-1 ; for the standalone JACK application
+           libsamplerate
+           mesa
+           libsndfile))
     (native-inputs
-     `(("ladspa" ,ladspa)
-       ("lv2" ,lv2)
-       ("pkg-config" ,pkg-config)))
+     (list ladspa lv2 pkg-config))
     (synopsis "Sample slicer audio plugin")
     (description
      "Ninjas 2 is a rewrite of the Ninjas sample slicer audio plugin.
@@ -1499,8 +1445,16 @@ and auto-mapping slices to MIDI note numbers.")
                (("\\(search-executable '\\(\"gs\"\\)\\)")
                 (string-append "\"" (which "gs") "\""))
                (("\"/bin/sh\"")
-                (string-append "\"" (which "sh") "\"")))
-             #t))
+                (string-append "\"" (which "sh") "\"")))))
+         (add-after 'fix-path-references 'adjust-to-API-change
+           (lambda _
+             (substitute* '("Documentation/pictures/GNUmakefile"
+                            "stepmake/stepmake/tex-rules.make")
+               ((".*-c .setpdfwrite.*") ""))
+             (substitute* "scm/backend-library.scm"
+               (("\"-c.setpdfwrite\"") ""))
+             (substitute* "scm/framework-ps.scm"
+               (("\".setpdfwrite ") "\""))))
          (add-before 'configure 'prepare-configuration
            (lambda _
              (substitute* "configure"
@@ -1511,14 +1465,12 @@ and auto-mapping slices to MIDI note numbers.")
                ;; Also allow for SOURCE_DATE_EPOCH = 0 in fontforge.
                (("20110222") "19700101"))
              (setenv "out" "www")
-             (setenv "conf" "www")
-             #t))
+             (setenv "conf" "www")))
          (add-after 'install 'install-info
            (lambda _
              (invoke "make"
                      "-j" (number->string (parallel-job-count))
-                     "conf=www" "install-info")
-             #t)))))
+                     "conf=www" "install-info"))))))
     (inputs
      `(("guile" ,guile-1.8)
        ("font-dejavu" ,font-dejavu)
@@ -1559,10 +1511,41 @@ Guile.")
     ;; more than an hour of silence, so double the max silent time.
     (properties `((max-silent-time . 7200)))))
 
+(define-public music21
+  (package
+    (name "music21")
+    (version "7.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "music21" version))
+        (sha256
+          (base32 "17v2id8qm99xqymqsdczq173fmbdha4w109ahh8j1d9l5a7mqc86"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               ;; See: https://github.com/cuthbertLab/music21/issues/1164
+               (invoke "python" "-m" "music21.stream.tests")))))))
+    (propagated-inputs
+      (list python-chardet python-joblib python-more-itertools
+            python-webcolors))
+    (home-page "https://web.mit.edu/music21/")
+    (synopsis "Toolkit for Computational Musicology")
+    (description
+     "Music21 is a set of tools for helping scholars and other active
+listeners answer questions about music quickly and simply.")
+    ;; Software is dual-licensed.
+    (license (list license:bsd-3 license:lgpl3+))))
+
 (define-public abjad
   (package
     (name "abjad")
-    (version "3.3")
+    (version "3.4")
     (source
      (origin
        (method git-fetch)
@@ -1572,7 +1555,7 @@ Guile.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1dzf5v7pawbzkb4qxp4s5z4r3gibkk705pag83yvgzkx6fd6jf2g"))))
+         "0s63vk9fifp0im9c31kb9ck39mbaxhrls993d8fvg0nkg41z1jnz"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1584,22 +1567,19 @@ Guile.")
                (invoke "python" "-m" "pytest" "tests")
                #t))))))
     (native-inputs
-     `(("python-black" ,python-black)
-       ("python-flake8" ,python-flake8)
-       ("python-iniconfig" ,python-iniconfig)
-       ("python-isort" ,python-isort)
-       ("python-mypy" ,python-mypy)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-sphinx-autodoc-typehints" ,python-sphinx-autodoc-typehints)))
+     (list python-black
+           python-flake8
+           python-iniconfig
+           python-isort
+           python-mypy
+           python-pytest
+           python-pytest-cov
+           python-sphinx-autodoc-typehints))
     (inputs
-     `(("lilypond" ,lilypond)))
+     (list lilypond))
     (propagated-inputs
-     `(("python-ply" ,python-ply)
-       ("python-quicktions" ,python-quicktions)
-       ("python-roman" ,python-roman)
-       ("python-six" ,python-six)
-       ("python-uqbar" ,python-uqbar)))
+     (list python-ply python-quicktions python-roman python-six
+           python-uqbar))
     (home-page "https://abjad.github.io")
     (synopsis "Python API for building LilyPond files")
     (description
@@ -1617,7 +1597,7 @@ typographic detail of symbols on the page.")
 (define-public abjad-ext-rmakers
   (package
     (name "abjad-ext-rmakers")
-    (version "3.3")
+    (version "3.4")
     (source
      (origin
        (method git-fetch)
@@ -1627,7 +1607,7 @@ typographic detail of symbols on the page.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "03nry8lzh3s81yq4lw8y6j63m7zdsl20q7rvx9cfmp3rmbvlaycs"))))
+         "0wma9vzn42h1rhbzh2dwjsrzjhsi1yqdgn6wx1dfk78vaki6prd8"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1638,19 +1618,19 @@ typographic detail of symbols on the page.")
                (invoke "python" "-m" "pytest" ".")
                #t))))))
     (native-inputs
-     `(("lilypond" ,lilypond)
-       ("python-black" ,python-black)
-       ("python-flake8" ,python-flake8)
-       ("python-iniconfig" ,python-iniconfig)
-       ("python-isort" ,python-isort)
-       ("python-mypy" ,python-mypy)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-helpers-namespace" ,python-pytest-helpers-namespace)))
+     (list lilypond
+           python-black
+           python-flake8
+           python-iniconfig
+           python-isort
+           python-mypy
+           python-pytest
+           python-pytest-cov
+           python-pytest-helpers-namespace))
     (propagated-inputs
-     `(("abjad" ,abjad)))
+     (list abjad))
     (home-page "https://abjad.github.io")
-    (synopsis "Abjad rhythm-maker exension package")
+    (synopsis "Abjad rhythm-maker extension package")
     (description
      "@code{abjad-ext-rmakers} includes a collection of classes for creating and
 and manipulating rhythms such as accelerandi, taleas, and more.")
@@ -1659,7 +1639,7 @@ and manipulating rhythms such as accelerandi, taleas, and more.")
 (define-public abjad-ext-nauert
   (package
     (name "abjad-ext-nauert")
-    (version "3.3")
+    (version "3.4")
     (source
      (origin
        (method git-fetch)
@@ -1669,7 +1649,7 @@ and manipulating rhythms such as accelerandi, taleas, and more.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "07vgfjh32vmf652lcl2vrbzr0h6nld00qbgwbf9i1kk3xwhvklc9"))))
+         "05hr2lr6myzi493k8vc19cqzraxxnbdwlckwbnras19l5g5ns38x"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1680,17 +1660,17 @@ and manipulating rhythms such as accelerandi, taleas, and more.")
                (invoke "python" "-m" "pytest" "tests")
                #t))))))
     (native-inputs
-     `(("lilypond" ,lilypond)
-       ("python-black" ,python-black)
-       ("python-flake8" ,python-flake8)
-       ("python-iniconfig" ,python-iniconfig)
-       ("python-isort" ,python-isort)
-       ("python-mypy" ,python-mypy)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-helpers-namespace" ,python-pytest-helpers-namespace)))
+     (list lilypond
+           python-black
+           python-flake8
+           python-iniconfig
+           python-isort
+           python-mypy
+           python-pytest
+           python-pytest-cov
+           python-pytest-helpers-namespace))
     (propagated-inputs
-     `(("abjad" ,abjad)))
+     (list abjad))
     (home-page "https://abjad.github.io")
     (synopsis "Abjad quantization extension, based on Paul Nauert's Q-Grids")
     (description
@@ -1727,18 +1707,17 @@ music theorist Paul Nauert's quantization grids or Q-Grids, for short.")
                (invoke "jupyter" "nbconvert" "--to=html"
                "--ExecutePreprocessor.enabled=True" "tests/test.ipynb")))))))
     (native-inputs
-     `(("lilypond" ,lilypond)
-       ("python-black" ,python-black)
-       ("python-flake8" ,python-flake8)
-       ("python-iniconfig" ,python-iniconfig)
-       ("python-isort" ,python-isort)
-       ("python-mypy" ,python-mypy)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-helpers-namespace" ,python-pytest-helpers-namespace)))
+     (list lilypond
+           python-black
+           python-flake8
+           python-iniconfig
+           python-isort
+           python-mypy
+           python-pytest
+           python-pytest-cov
+           python-pytest-helpers-namespace))
     (propagated-inputs
-     `(("abjad" ,abjad)
-       ("jupyter" ,jupyter)))
+     (list abjad jupyter))
     (home-page "https://abjad.github.io")
     (synopsis "Abjad IPython Extension")
     (description
@@ -1775,12 +1754,9 @@ music theorist Paul Nauert's quantization grids or Q-Grids, for short.")
                      '()))
          #:python ,python-2))
       (inputs
-       `(("jack" ,jack-1)
-         ("libsigc++" ,libsigc++)
-         ("liblo" ,liblo)
-         ("ntk" ,ntk)))
+       (list jack-1 libsigc++ liblo ntk))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (home-page "https://non.tuxfamily.org/wiki/Non%20Sequencer")
       (synopsis "Pattern-based MIDI sequencer")
       (description
@@ -1800,11 +1776,9 @@ transport is rolling.")
         `(cons "--project=session-manager"
                (delete "--project=sequencer" ,flags)))))
     (inputs
-     `(("jack" ,jack-1)
-       ("liblo" ,liblo)
-       ("ntk" ,ntk)))
+     (list jack-1 liblo ntk))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://non.tuxfamily.org/nsm/")
     (synopsis "Audio session management")
     (description
@@ -1822,13 +1796,9 @@ communicate with the session management daemon.")
         `(cons "--project=mixer"
                (delete "--project=sequencer" ,flags)))))
     (inputs
-     `(("jack" ,jack-1)
-       ("liblo" ,liblo)
-       ("ladspa" ,ladspa)
-       ("lrdf" ,lrdf)
-       ("ntk" ,ntk)))
+     (list jack-1 liblo ladspa lrdf ntk))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://non.tuxfamily.org/wiki/Non%20Mixer")
     (synopsis "Modular digital audio mixer")
     (description
@@ -1848,12 +1818,9 @@ studio.")
         `(cons "--project=timeline"
                (delete "--project=sequencer" ,flags)))))
     (inputs
-     `(("jack" ,jack-1)
-       ("liblo" ,liblo)
-       ("libsndfile" ,libsndfile)
-       ("ntk" ,ntk)))
+     (list jack-1 liblo libsndfile ntk))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://non.tuxfamily.org/wiki/Non%20Timeline")
     (synopsis "Modular digital audio timeline arranger")
     (description
@@ -1882,13 +1849,9 @@ complete studio.")
                   "07k7rccqqg7lnygkh97a200l1i6s1rl92n01v0q6n4257sinir6f"))))
       (build-system gnu-build-system)
       (inputs
-       `(("liblo" ,liblo)
-         ("gtkmm" ,gtkmm)
-         ("alsa-lib" ,alsa-lib)
-         ("libxml++" ,libxml++-2)))
+       (list liblo gtkmm-3 alsa-lib libxml++-2))
       (native-inputs
-       `(("glib:bin" ,glib "bin")
-         ("pkg-config" ,pkg-config)))
+       (list `(,glib "bin") pkg-config))
       (home-page "https://github.com/onkelDead/tascam-gtk")
       (synopsis "GTK+ based application to control Tascam US-16x08 DSP mixer")
       (description "This is a mixer application to control the Tascam US-16x08
@@ -1900,7 +1863,7 @@ device supports.")
 (define-public bsequencer
   (package
     (name "bsequencer")
-    (version "1.8.0")
+    (version "1.8.10")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1909,21 +1872,20 @@ device supports.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0w7iwzz2r4a699fi24qk71vv2k3jpl9ylzlgmvyc3rlgad0m01k1"))))
+                "0w3m7x0619iq8rafcy0bal4gwh9m9h7iq93q7gkpxhv6dq58ix6l"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
-       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
-       #:tests? #f ; there are none
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:tests? #f                      ; there are none
        #:phases
        (modify-phases %standard-phases
          (delete 'configure))))
     (inputs
-     `(("cairo" ,cairo)
-       ("lv2" ,lv2)
-       ("libx11" ,libx11)))
+     (list cairo lv2 libx11))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/sjaehn/BSEQuencer")
     (synopsis "Multi-channel MIDI step sequencer LV2 plugin")
     (description
@@ -1935,7 +1897,7 @@ with a selectable pattern matrix size.")
   (package
     (inherit bsequencer)
     (name "bchoppr")
-    (version "1.8.0")
+    (version "1.10.10")
     (source
      (origin
        (method git-fetch)
@@ -1944,8 +1906,7 @@ with a selectable pattern matrix size.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1nd6byy75f0rbz9dm9drhxmpsfhxhg0y7q3v2m3098llynhy9k2j"))))
+        (base32 "0gxz0cpxdfj7ajcd9yg05d26i7p24mx5865vy3ph76ni8kycdlrc"))))
     (synopsis "Audio stream-chopping LV2 plugin")
     (description "B.Choppr cuts the audio input stream into a repeated
 sequence of up to 16 chops.  Each chop can be leveled up or down (gating).
@@ -1957,7 +1918,7 @@ B.Choppr is the successor of B.Slizr.")
   (package
     (inherit bsequencer)
     (name "bshapr")
-    (version "0.9")
+    (version "0.13")
     (source
      (origin
        (method git-fetch)
@@ -1966,7 +1927,7 @@ B.Choppr is the successor of B.Slizr.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "04zd3a178i2nivg5rjailzqvc5mlnilmhj1ziygmbhshbrywplri"))))
+        (base32 "1qr3fxqcplgb6iqi2vxc27jghhv6qsidww2by15zb2vs34yh73pl"))))
     (synopsis "Beat/envelope shaper LV2 plugin")
     (description "B.Shapr is a beat/envelope shaper LV2 plugin.")
     (home-page "https://github.com/sjaehn/BShapr")
@@ -1976,7 +1937,7 @@ B.Choppr is the successor of B.Slizr.")
   (package
     (inherit bsequencer)
     (name "bjumblr")
-    (version "1.4.2")
+    (version "1.6.8")
     (source
      (origin
        (method git-fetch)
@@ -1985,12 +1946,9 @@ B.Choppr is the successor of B.Slizr.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0kl6hrxmqrdf0195bfnzsa2h1073fgiqrfhg2276fm1954sm994v"))))
+        (base32 "00fgax8aqqggs54pjpagw5pc30kgxaghh8mrzpqwhs06cnchcam9"))))
     (inputs
-     `(("cairo" ,cairo)
-       ("libsndfile" ,libsndfile)
-       ("lv2" ,lv2)))
+     (list cairo libsndfile lv2))
     (synopsis "Pattern-controlled audio stream/sample re-sequencer LV2 plugin")
     (description "B.Jumblr is a pattern-controlled audio stream / sample
 re-sequencer LV2 plugin.")
@@ -2001,7 +1959,7 @@ re-sequencer LV2 plugin.")
   (package
     (inherit bsequencer)
     (name "bschaffl")
-    (version "1.2.0")
+    (version "1.4.8")
     (source
      (origin
        (method git-fetch)
@@ -2010,8 +1968,7 @@ re-sequencer LV2 plugin.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1c09acqrbd387ba41f8ch1qykdap5h6cg9if5pgd16i4dmjnpghj"))))
+        (base32 "1kfc75xhj365fwl8cbvhg5chwz1snzcvf4929flds02ljylc7k6d"))))
     (inputs
      `(("cairo" ,cairo)
        ("fontconfig" ,fontconfig)
@@ -2104,11 +2061,11 @@ for path in [path for path in sys.path if 'site-packages' in path]: site.addsite
        ("gtk" ,gtk+)
        ("lilypond" ,lilypond)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("txt2man" ,txt2man)
-       ("libxml2" ,libxml2) ; for tests
-       ("ghostscript" ,ghostscript)
-       ("texinfo" ,texinfo-5)))
+     (list pkg-config
+           txt2man
+           libxml2 ; for tests
+           ghostscript
+           texinfo-5))
     (home-page "https://www.gnu.org/software/solfege/")
     (synopsis "Ear training")
     (description
@@ -2153,8 +2110,7 @@ your own lessons.")
        ("timidity" ,timidity++)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("doctest" ,doctest)
-       ("pkg-config" ,pkg-config)))
+     (list doctest pkg-config))
     (home-page "https://github.com/powertab/powertabedito")
     (synopsis "Guitar tablature editor")
     (description
@@ -2196,12 +2152,9 @@ Editor.  It is compatible with Power Tab Editor 1.7 and Guitar Pro.")
                                    ".*\\.gz$"))
              #t)))))
     (inputs
-     `(("lilv" ,lilv)
-       ("lv2" ,lv2)
-       ("jalv" ,jalv)
-       ("gtkmm" ,gtkmm-2)))
+     (list lilv lv2 jalv gtkmm-2))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/brummer10/jalv_select")
     (synopsis "GUI to select LV2 plugins and run them with jalv")
     (description
@@ -2209,6 +2162,112 @@ Editor.  It is compatible with Power Tab Editor 1.7 and Guitar Pro.")
 users to select LV2 plugins and run them with jalv.")
     (license license:public-domain)))
 
+(define-public mixxx
+  (package
+    (name "mixxx")
+    (version "2.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mixxxdj/mixxx")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (patches
+        (search-patches "mixxx-link-qtscriptbytearray-qtscript.patch"
+                        "mixxx-system-googletest-benchmark.patch"))
+       (sha256
+        (base32 "04781s4ajdlwgvf12v2mvh6ia5grhc5pn9d75b468qci3ilnmkg8"))
+       (modules '((guix build utils)))
+       (snippet
+        ;; Delete libraries that we already have or don't need.
+        ;; TODO: try to unbundle more (see lib/).
+        `(begin
+           (let ((third-parties '("apple" "benchmark" "googletest" "hidapi"
+                                  "libebur128")))
+             (with-directory-excursion "lib"
+               (map (lambda (third-party)
+                      (delete-file-recursively third-party))
+                    third-parties)))
+           #t))))
+    (build-system qt-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Tests need a running X server.
+         (add-before 'check 'prepare-x-for-test
+           (lambda _
+             (system "Xvfb &")
+             (setenv "DISPLAY" ":0")))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; This test fails.  I don't know why.
+               (invoke "ctest" "-E" "TagLibTest.WriteID3v2Tag"))))
+         (add-after 'install 'wrap-executable
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (faad2 (assoc-ref inputs "faad2")))
+               (wrap-program (string-append out "/bin/mixxx")
+                 `("LD_LIBRARY_PATH" ":" prefix
+                   ,(list (string-append faad2 "/lib"))))))))))
+    (native-inputs
+     `(("benchmark" ,benchmark)
+       ("googletest" ,googletest)
+       ("python" ,python-wrapper)
+       ("qttools" ,qttools)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("bash" ,bash-minimal)
+       ("chromaprint" ,chromaprint)
+       ("faad2" ,faad2)
+       ("ffmpeg" ,ffmpeg)
+       ("fftw" ,fftw)
+       ("flac" ,flac)
+       ("glu" ,glu)
+       ("hidapi" ,hidapi)
+       ("jack" ,jack-1)
+       ("lame" ,lame)
+       ("libdjinterop" ,libdjinterop)
+       ("libebur128" ,libebur128)
+       ("libid3tag" ,libid3tag)
+       ("libkeyfinder" ,libkeyfinder)
+       ("libmad" ,libmad)
+       ("libmp4v2" ,libmp4v2)
+       ("libmodplug" ,libmodplug)
+       ("libsndfile" ,libsndfile)
+       ("libshout" ,libshout)
+       ;; XXX: Mixxx complains the libshout-idjc package suffers from bug
+       ;; lp1833225 and refuses to use it.  Use the bundle for now.
+       ;; ("libshout-idjc" ,libshout-idjc)
+       ("libusb" ,libusb)
+       ("libvorbis" ,libvorbis)
+       ("lilv" ,lilv)
+       ("mp3guessenc" ,mp3guessenc)
+       ("openssl" ,openssl)
+       ("opusfile" ,opusfile)
+       ("portaudio" ,portaudio)
+       ("portmidi" ,portmidi)
+       ("protobuf" ,protobuf)
+       ("qtbase" ,qtbase-5)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtkeychain" ,qtkeychain)
+       ("qtscript" ,qtscript)
+       ("qtsvg" ,qtsvg)
+       ("qtx11extras" ,qtx11extras)
+       ("rubberband" ,rubberband)
+       ("soundtouch" ,soundtouch)
+       ("sqlite" ,sqlite)
+       ("taglib" ,taglib)
+       ("upower" ,upower)
+       ("vamp" ,vamp)
+       ("wavpack" ,wavpack)))
+    (home-page "https://mixxx.org/")
+    (synopsis "DJ software to perform live mixes")
+    (description "Mixxx is a DJ software.  It integrates the tools DJs need to
+perform creative live mixes with digital music files.")
+    (license license:gpl2+)))
+
 (define-public synthv1
   (package
     (name "synthv1")
@@ -2225,15 +2284,14 @@ users to select LV2 plugins and run them with jalv.")
     (arguments
      `(#:tests? #f))                    ; there are no tests
     (inputs
-     `(("jack" ,jack-1)
-       ("lv2" ,lv2)
-       ("alsa-lib" ,alsa-lib)
-       ("non-session-manager" ,non-session-manager)
-       ("liblo" ,liblo)
-       ("qtbase" ,qtbase-5)))
+     (list jack-1
+           lv2
+           alsa-lib
+           non-session-manager
+           liblo
+           qtbase-5))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (home-page "https://synthv1.sourceforge.io")
     (synopsis "Polyphonic subtractive synthesizer")
     (description
@@ -2257,16 +2315,15 @@ oscillators and stereo effects.")
     (arguments
      `(#:tests? #f))                    ; there are no tests
     (inputs
-     `(("jack" ,jack-1)
-       ("lv2" ,lv2)
-       ("libsndfile" ,libsndfile)
-       ("alsa-lib" ,alsa-lib)
-       ("non-session-manager" ,non-session-manager)
-       ("liblo" ,liblo)
-       ("qtbase" ,qtbase-5)))
+     (list jack-1
+           lv2
+           libsndfile
+           alsa-lib
+           non-session-manager
+           liblo
+           qtbase-5))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (home-page "https://drumkv1.sourceforge.io")
     (synopsis "Drum-kit sampler synthesizer with stereo effects")
     (description
@@ -2290,16 +2347,15 @@ effects.")
     (arguments
      `(#:tests? #f))                    ; there are no tests
     (inputs
-     `(("jack" ,jack-1)
-       ("lv2" ,lv2)
-       ("libsndfile" ,libsndfile)
-       ("alsa-lib" ,alsa-lib)
-       ("non-session-manager" ,non-session-manager)
-       ("liblo" ,liblo)
-       ("qtbase" ,qtbase-5)))
+     (list jack-1
+           lv2
+           libsndfile
+           alsa-lib
+           non-session-manager
+           liblo
+           qtbase-5))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (home-page "https://samplv1.sourceforge.io")
     (synopsis "Polyphonic sampler synthesizer with stereo effects")
     (description
@@ -2323,16 +2379,15 @@ effects.")
     (arguments
      `(#:tests? #f))                    ; there are no tests
     (inputs
-     `(("jack" ,jack-1)
-       ("lv2" ,lv2)
-       ("alsa-lib" ,alsa-lib)
-       ("non-session-manager" ,non-session-manager)
-       ("liblo" ,liblo)
-       ("fftwf" ,fftwf)
-       ("qtbase" ,qtbase-5)))
+     (list jack-1
+           lv2
+           alsa-lib
+           non-session-manager
+           liblo
+           fftwf
+           qtbase-5))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (home-page "https://padthv1.sourceforge.io")
     (synopsis "Polyphonic additive synthesizer")
     (description
@@ -2344,41 +2399,45 @@ special variant of additive synthesis.")
 (define-public amsynth
   (package
     (name "amsynth")
-    (version "1.7.1")
+    (version "1.12.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/amsynth/amsynth/releases/"
                            "download/release-" version
-                           "/amsynth-" version ".tar.bz2"))
+                           "/amsynth-" version ".tar.gz"))
        (sha256
         (base32
-         "1882pfcmf3rqg3vd4qflzkppcv158d748i603spqjbxqi8z7x7w0"))))
+         "0lhp7fymm2fids02y43cy422jzmdiraszll1mk3gzlbfwg33ds1i"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-file-names
-           (lambda _
+           (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "src/GUI/editor_pane.c"
-               (("/usr/bin/unzip") (which "unzip")))
-             (substitute* "src/GUI/GUI.cc"
-               (("/usr/bin/which") (which "which")))
+               (("/usr/bin/unzip")
+                (string-append (assoc-ref inputs "unzip") "/bin/unzip")))
+             (substitute* "src/GUI/MainMenu.cpp"
+               (("/usr/bin/which")
+                (string-append (assoc-ref inputs "which") "/bin/which")))
              #t)))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("gtk+" ,gtk+-2)
-       ("gtkmm" ,gtkmm-2)
-       ("jack" ,jack-1)
-       ("lash" ,lash)
-       ("libsndfile" ,libsndfile)
-       ("lv2" ,lv2)
-       ;; External commands invoked at run time.
-       ("unzip" ,unzip)
-       ("which" ,which)))
+     (list alsa-lib
+           gtk+-2
+           jack-1
+           libsndfile
+           lv2
+           ;; External commands invoked at run time.
+           unzip
+           which))
+    (propagated-inputs
+     ;; avoid runtime error:
+     ;; GLib-GIO-ERROR **: 22:14:48.344: Settings schema
+     ;;   'org.gnome.desktop.interface' is not installed
+     (list gsettings-desktop-schemas))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (home-page "https://amsynth.github.io")
     (synopsis "Analog modeling synthesizer")
     (description
@@ -2425,15 +2484,14 @@ reverb effects.")
            (lambda _ (setenv "CC" "gcc") #t))
          (delete 'configure))))
     (inputs
-     `(("jack" ,jack-1)
-       ("lv2" ,lv2)
-       ("zita-convolver" ,zita-convolver)
-       ("glu" ,glu)
-       ("ftgl" ,ftgl)
-       ("font-bitstream-vera" ,font-bitstream-vera)))
+     (list jack-1
+           lv2
+           zita-convolver
+           glu
+           ftgl
+           font-bitstream-vera))
     (native-inputs
-     `(("help2man" ,help2man)
-       ("pkg-config" ,pkg-config)))
+     (list help2man pkg-config))
     (home-page "http://setbfree.org")
     (synopsis "Tonewheel organ")
     (description
@@ -2523,12 +2581,9 @@ mixing, FFT scopes, MIDI automation and full scriptability in Scheme.")
                (("ldd `which bristol` | grep jack") "echo guix"))
              #t)))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("liblo" ,liblo)
-       ("libx11" ,libx11)))
+     (list alsa-lib jack-1 liblo libx11))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://bristol.sourceforge.net/")
     (synopsis "Synthesizer emulator")
     (description
@@ -2653,8 +2708,7 @@ is subjective.")
                (chmod (string-append bin "/tuxguitar") #o555)
                #t))))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("java-swt" ,java-swt)))
+     (list alsa-lib java-swt))
     (home-page "http://tuxguitar.com.ar/")
     (synopsis "Multitrack tablature editor and player")
     (description
@@ -2703,9 +2757,7 @@ export.")
        ("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("tk" ,tk)
-       ("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)))
+     (list tk alsa-lib jack-1))
     (home-page "https://puredata.info")
     (synopsis "Visual programming language for artistic performances")
     (description
@@ -2805,9 +2857,9 @@ main purpose is to liberate raw audio rendering from audio and MIDI drivers.")
                            Cflags: -I${includedir}~%"
                            out ,version)))))))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)))
+     (list alsa-lib))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "http://portmedia.sourceforge.net/portmidi/")
     (synopsis "Library for MIDI I/O")
     (description
@@ -2838,11 +2890,9 @@ using a system-independent interface.")
                (("TODO =.*") "TODO = \"\"\n"))
              #t)))))
     (inputs
-     `(("portmidi" ,portmidi)
-       ("alsa-lib" ,alsa-lib)))
+     (list portmidi alsa-lib))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("unzip" ,unzip)))
+     (list python-cython unzip))
     (home-page "http://portmedia.sourceforge.net/portmidi/")
     (synopsis "Python bindings to PortMidi")
     (description
@@ -2865,14 +2915,14 @@ using a system-independent interface.")
     (arguments
      `(#:tests? #f))                    ;no tests included
     (inputs
-     `(("lilypond" ,lilypond)
-       ("poppler" ,poppler)
-       ("portmidi" ,portmidi)
-       ("python-ly" ,python-ly)
-       ("python-poppler-qt5" ,python-poppler-qt5)
-       ("python-pyportmidi" ,python-pyportmidi)
-       ("python-pyqt" ,python-pyqt)
-       ("python-sip" ,python-sip)))
+     (list lilypond
+           poppler
+           portmidi
+           python-ly
+           python-poppler-qt5
+           python-pyportmidi
+           python-pyqt
+           python-sip))
     (home-page "https://www.frescobaldi.org/")
     (synopsis "LilyPond sheet music text editor")
     (description
@@ -2909,16 +2959,13 @@ browser.")
                                "/manpages/docbook.xsl")))
              #t)))))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qttools" ,qttools)
-       ("alsa-lib" ,alsa-lib)))
+     (list qtbase-5 qtsvg qttools alsa-lib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("libxslt" ,libxslt)             ; for xsltproc
-       ("docbook-xsl" ,docbook-xsl)
-       ("doxygen" ,doxygen)
-       ("graphviz" ,graphviz))) ; for dot
+     (list pkg-config
+           libxslt ; for xsltproc
+           docbook-xsl
+           doxygen
+           graphviz)) ; for dot
     (home-page "https://drumstick.sourceforge.io/")
     (synopsis "C++ MIDI library")
     (description
@@ -2956,15 +3003,10 @@ backends, including ALSA, OSS, Network and FluidSynth.")
                                "/manpages/docbook.xsl")))
              #t)))))
     (inputs
-     `(("drumstick" ,drumstick)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)))
+     (list drumstick qtbase-5 qtsvg qtx11extras))
     (native-inputs
-     `(("libxslt" ,libxslt) ;for xsltproc
-       ("docbook-xsl" ,docbook-xsl)
-       ("qttools" ,qttools)
-       ("pkg-config" ,pkg-config)))
+     (list libxslt ;for xsltproc
+           docbook-xsl qttools pkg-config))
     (home-page "https://vmpk.sourceforge.io/")
     (synopsis "Virtual MIDI piano keyboard")
     (description
@@ -3003,17 +3045,17 @@ instrument or MIDI file player.")
                (string-append flag " -msse -msse2 -mfpmath=sse")))
             #t)))))
     (inputs
-     `(("liblo" ,liblo)
-       ("ntk" ,ntk)
-       ("mesa" ,mesa)
-       ("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("fftw" ,fftw)
-       ("minixml" ,minixml)
-       ("libxpm" ,libxpm)
-       ("zlib" ,zlib)))
+     (list liblo
+           ntk
+           mesa
+           alsa-lib
+           jack-1
+           fftw
+           minixml
+           libxpm
+           zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://zynaddsubfx.sf.net/")
     (synopsis "Software synthesizer")
     (description
@@ -3069,7 +3111,7 @@ capabilities, custom envelopes, effects, etc.")
        ("cairo" ,cairo)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://yoshimi.sourceforge.net/")
     (synopsis "Multi-paradigm software synthesizer")
     (description
@@ -3092,10 +3134,9 @@ improves on support for JACK features, such as JACK MIDI.")
                 "1zs5yy124bymfyapsnljr6rv2lnn5inwchm0xnwiw44b2d39l8hn"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libuuid" ,util-linux "lib")
-       ("libsndfile" ,libsndfile)))
+     (list `(,util-linux "lib") libsndfile))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://linuxsampler.org/libgig/")
     (synopsis "C++ library for working with Gigasampler (.gig) files")
     (description
@@ -3122,11 +3163,9 @@ on the library.")
          "0mzmg8aavybcfdlq2yd9d0vscqd6is5p6jzrgfpfm5j3xdcvh2s3"))))
     (build-system gnu-build-system)
     (inputs
-     `(("jack" ,jack-1)
-       ("lash" ,lash)
-       ("gtk+" ,gtk+-2)))
+     (list jack-1 lash gtk+-2))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://jack-keyboard.sourceforge.net/")
     (synopsis "Virtual MIDI keyboard")
     (description "Jack-keyboard is a virtual MIDI keyboard, a program that
@@ -3155,15 +3194,14 @@ allows you to send JACK MIDI events (i.e. play) using your PC keyboard.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list pkg-config which))
     (inputs
-     `(("gtk+" ,gtk+-2)
-       ("jack" ,jack-1)
-       ("libogg" ,libogg)
-       ("liblo" ,liblo)
-       ("lame" ,lame)
-       ("libsndfile" ,libsndfile)))
+     (list gtk+-2
+           jack-1
+           libogg
+           liblo
+           lame
+           libsndfile))
     (home-page "https://github.com/kmatheussen/jack_capture")
     (synopsis "Program for recording sound files with JACK")
     (description "This is a program for recording sound files with JACK.  It
@@ -3207,7 +3245,7 @@ can connect to any JACK port and record the output into a stereo WAV file.")
          (add-after 'install 'wrap
            (assoc-ref python:%standard-phases 'wrap)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("python" ,python-wrapper)
@@ -3239,11 +3277,10 @@ you to switch between different audio setups with just two mouse clicks.")
        (base32 "1dhphsya41rv8z6yqcv9l6fwbslsds4zh1y56zizi39nd996d40v"))
       (patches (search-patches "cursynth-wave-rand.patch"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     ;; TODO: See https://github.com/iyoko/cursynth/issues/4 which currently
     ;; prevents us from using pulseaudio
-    (inputs `(("ncurses" ,ncurses)
-              ("alsa" ,alsa-lib)))
+    (inputs (list ncurses alsa-lib))
     (home-page "https://www.gnu.org/software/cursynth/")
     (synopsis "Polyphonic and MIDI subtractive music synthesizer using curses")
     (description "GNU cursynth is a polyphonic synthesizer that runs
@@ -3265,11 +3302,9 @@ computer's keyboard.")
                 "0z8wd5yvxdmw1h1rj6km9h01xd4xmp4d86gczlix7hsc7zrf0wil"))))
     (build-system gnu-build-system)
     (inputs
-     `(("minixml" ,minixml)
-       ("jack" ,jack-1)
-       ("alsa-lib" ,alsa-lib)))
+     (list minixml jack-1 alsa-lib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://aj-snapshot.sourceforge.net/")
     (synopsis "Snapshot connections between ALSA and JACK clients")
     (description "Aj-snapshot is a small program that can be used to make
@@ -3283,14 +3318,14 @@ from the command line.")
 (define-public qtractor
   (package
     (name "qtractor")
-    (version "0.9.23")
+    (version "0.9.24")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://downloads.sourceforge.net/qtractor/"
                                   "qtractor-" version ".tar.gz"))
               (sha256
                (base32
-                "1d2d884x5kfa41skwyh0ihyx5jgc9467617gmfjm379qcgnxq00s"))))
+                "0bkr3ahpz54ssrvgkg3dw1jxp3hh7ayxr51jy3csm327is9gnd31"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; no "check" target
@@ -3311,8 +3346,7 @@ from the command line.")
        ("liblo" ,liblo)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (home-page "https://qtractor.org/")
     (synopsis "Audio/MIDI multi-track sequencer")
     (description
@@ -3354,7 +3388,7 @@ follows a traditional multi-track tape recorder control paradigm.")
        ("lv2" ,lv2)
        ("lvtk" ,lvtk)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/blablack/ams-lv2")
     (synopsis "Port of Alsa Modular Synth internal modules into LV2")
     (description "This set of LV2 plugins is a port of the internal modules
@@ -3385,15 +3419,17 @@ and hold, etc.")
                             "/include/"))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure))))
+         (delete 'configure)
+         (add-before 'build 'target-specific-glib-API-version
+           (lambda _
+             ;; See https://github.com/brummer10/gxtuner/pull/21
+             (setenv "CFLAGS"
+                     "-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_54\
+ -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_54"))))))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("jack" ,jack-1)
-       ("fftwf" ,fftwf)
-       ("cairo" ,cairo)
-       ("zita-resampler" ,zita-resampler)))
+     (list gtk+ jack-1 fftwf cairo zita-resampler))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/brummer10/gxtuner")
     (synopsis "Guitar tuner")
     (description "GXtuner is a simple guitar tuner for JACK with an
@@ -3434,12 +3470,12 @@ analogue-like user interface.")
                   "lib"))
                #t)))))
       (inputs
-       `(("lilv" ,lilv)
-         ("fftw" ,fftw)
-         ("fftwf" ,fftwf)
-         ("lv2" ,lv2)
-         ("jack" ,jack-1)
-         ("readline" ,readline)))
+       (list lilv
+             fftw
+             fftwf
+             lv2
+             jack-1
+             readline))
       (native-inputs
        `(("pkg-config" ,pkg-config)
          ("python" ,python-2)))
@@ -3474,11 +3510,9 @@ socket or command line.")
                (("/usr/bin/mpv")
                 (search-input-file inputs "/bin/mpv"))))))))
     (propagated-inputs
-     `(("python-lxml" ,python-lxml)
-       ("python-requests" ,python-requests)
-       ("python-pyxdg" ,python-pyxdg)))
+     (list python-lxml python-requests python-pyxdg))
     (inputs
-     `(("mpv" ,mpv)))
+     (list mpv))
     (home-page "https://github.com/chronitis/curseradio")
     (synopsis "Command-line Internet radio player")
     (description "Curseradio is a Curses-based radio player that uses a
@@ -3505,13 +3539,9 @@ tune-in sender list from @url{http://opml.radiotime.com}.")
        #:phases (modify-phases %standard-phases
                   (delete 'configure))))
     (inputs
-     `(("ao" ,ao)
-       ("curl" ,curl)
-       ("libgcrypt" ,libgcrypt)
-       ("json-c" ,json-c)
-       ("ffmpeg" ,ffmpeg)))
+     (list ao curl libgcrypt json-c ffmpeg))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://6xq.net/pianobar/")
     (synopsis "Console-based pandora.com player")
     (description "pianobar is a console-based music player for the
@@ -3554,10 +3584,7 @@ event-based scripts for scrobbling, notifications, etc.")
      `(("gettext" ,gettext-minimal)
        ("python-dateutil" ,python-dateutil)))
     (inputs
-     `(("chromaprint" ,chromaprint)
-       ("python-discid" ,python-discid)
-       ("python-pyqt" ,python-pyqt)
-       ("python-mutagen" ,python-mutagen)))
+     (list chromaprint python-discid python-pyqt python-mutagen))
     (home-page "https://picard.musicbrainz.org/")
     (synopsis "Graphical music tagging application")
     (description
@@ -3577,9 +3604,7 @@ formats, looking up tracks through metadata and audio fingerprints.")
                 "1qdk6i8gyhbi1c4j5jmbfpac3q8sff2ysri1pnp7nb9wzcp615v3"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-hypothesis" ,python-hypothesis)
-       ("python-flake8" ,python-flake8)))
+     (list python-pytest python-hypothesis python-flake8))
     (home-page "https://mutagen.readthedocs.io/")
     (synopsis "Read and write audio tags")
     (description "Mutagen is a Python module to handle audio metadata.  It
@@ -3604,8 +3629,7 @@ streams on an individual packet/page level.")
          "0ipb001j19s9wvssmrj8wz0nrkbl0k3zr3dgzyp1bd9cjc6vklnp"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-mutagen" ,python-mutagen)
-       ("python-six" ,python-six)))
+     (list python-mutagen python-six))
     (home-page "https://github.com/beetbox/mediafile")
     (synopsis "Read and write audio file tags")
     (description
@@ -3650,8 +3674,7 @@ MusicBrainz database.")
          "0jh4cni8qhri6dh83cmp0i0m0384vv0vznlygv49wj9xzh1d99qv"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-discid" ,python-discid)
-       ("python-musicbrainzngs" ,python-musicbrainzngs)))
+     (list python-discid python-musicbrainzngs))
     (home-page "https://github.com/JonnyJD/musicbrainz-isrcsubmit")
     (synopsis "Submit ISRCs from CDs to MusicBrainz")
     (description "@code{isrcsubmit} is a tool to extract @dfn{International
@@ -3707,11 +3730,8 @@ detailed track info including timbre, pitch, rhythm and loudness information.
     ;; https://github.com/pylast/pylast/issues/105
     (arguments '(#:tests? #f))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-pytest" ,python-pytest)
-       ("python-flaky" ,python-flaky)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-coverage python-pytest python-flaky python-pyyaml
+           python-setuptools-scm))
     (home-page "https://github.com/pylast/pylast")
     (synopsis "Python interface to Last.fm and Libre.fm")
     (description "A Python interface to Last.fm and other API-compatible
@@ -3735,10 +3755,7 @@ websites such as Libre.fm.")
                   "0j7qivaa04bpdz3anmgci5833dgiyfqqwq9fdrpl9m68b34gl773"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("eyed3" ,eyed3)
-       ("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("youtube-dl" ,youtube-dl)))
+     (list python-requests eyed3 python-beautifulsoup4 youtube-dl))
     (arguments
      '(#:modules ((guix build python-build-system)
                   (guix build utils)
@@ -3795,40 +3812,40 @@ websites such as Libre.fm.")
                  `("GI_TYPELIB_PATH" ":" prefix (,types)))
                #t))))))
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("python-flask" ,python-flask)
-       ("python-mock" ,python-mock)
-       ("python-py7zr" ,python-py7zr)
-       ("python-pytest" ,python-pytest-6)
-       ("python-responses" ,python-responses)))
+     (list gobject-introspection
+           python-flask
+           python-mock
+           python-py7zr
+           python-pytest-6
+           python-responses))
     (inputs
-     `(("bash-minimal" ,bash-minimal)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gst-plugins-good" ,gst-plugins-good)
-       ("gstreamer" ,gstreamer)
-       ("python-confuse" ,python-confuse)
-       ("python-jellyfish" ,python-jellyfish)
-       ("python-mediafile" ,python-mediafile)
-       ("python-munkres" ,python-munkres)
-       ("python-musicbrainzngs" ,python-musicbrainzngs)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-six" ,python-six)
-       ("python-unidecode" ,python-unidecode)
-       ;; Optional dependencies for plugins. Some of these are also required by tests.
-       ("python-beautifulsoup4" ,python-beautifulsoup4) ; For lyrics.
-       ("python-discogs-client" ,python-discogs-client) ; For discogs.
-       ("python-mpd2" ,python-mpd2) ; For mpdstats.
-       ("python-mutagen" ,python-mutagen) ; For scrub.
-       ("python-langdetect" ,python-langdetect) ; For lyrics.
-       ("python-pillow" ,python-pillow) ; For fetchart, embedart, thumbnails.
-       ("python-pyacoustid" ,python-pyacoustid) ; For chroma.
-       ("python-pygobject" ,python-pygobject) ; For bpd, replaygain.
-       ("python-pylast" ,python-pylast) ; For lastgenre, lastimport.
-       ("python-pyxdg" ,python-pyxdg) ; For thumbnails.
-       ("python-rarfile" ,python-rarfile) ; For import.
-       ("python-reflink" ,python-reflink) ; For reflink.
-       ("python-requests" ,python-requests)
-       ("python-requests-oauthlib" ,python-requests-oauthlib))) ; For beatport.
+     (list bash-minimal
+           gst-plugins-base
+           gst-plugins-good
+           gstreamer
+           python-confuse
+           python-jellyfish
+           python-mediafile
+           python-munkres
+           python-musicbrainzngs
+           python-pyyaml
+           python-six
+           python-unidecode
+           ;; Optional dependencies for plugins. Some of these are also required by tests.
+           python-beautifulsoup4 ; For lyrics.
+           python-discogs-client ; For discogs.
+           python-mpd2 ; For mpdstats.
+           python-mutagen ; For scrub.
+           python-langdetect ; For lyrics.
+           python-pillow ; For fetchart, embedart, thumbnails.
+           python-pyacoustid ; For chroma.
+           python-pygobject ; For bpd, replaygain.
+           python-pylast ; For lastgenre, lastimport.
+           python-pyxdg ; For thumbnails.
+           python-rarfile ; For import.
+           python-reflink ; For reflink.
+           python-requests
+           python-requests-oauthlib)) ; For beatport.
     (home-page "https://beets.io")
     (synopsis "Music organizer")
     (description "The purpose of beets is to get your music collection
@@ -3854,11 +3871,8 @@ your music.")
     (build-system python-build-system)
     (arguments '(#:tests? #f))          ; there are no tests
     (propagated-inputs
-     `(("beets" ,beets)
-       ("python-isodate" ,python-isodate)
-       ("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-requests" ,python-requests)
-       ("python-six" ,python-six)))
+     (list beets python-isodate python-beautifulsoup4 python-requests
+           python-six))
     (home-page "https://github.com/unrblt/beets-bandcamp")
     (synopsis "Bandcamp plugin for beets")
     (description
@@ -3902,7 +3916,7 @@ using the beets FetchArt plugin.")
        ("zlib" ,zlib)
        ("zziplib" ,zziplib)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Music tracker for working with .MOD/.XM module files")
     (description "MilkyTracker is a music application for creating .MOD and .XM
     module files.  It attempts to recreate the module replay and user experience of
@@ -3940,14 +3954,10 @@ using the beets FetchArt plugin.")
          (add-before 'configure 'link-libm
            (lambda _ (setenv "LIBS" "-lm") #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("python" ,python)))
+     (list autoconf automake python))
     (inputs
-     `(("alsa-lib" ,alsa-lib)           ; for asound dependency
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("sdl" ,sdl)))
+     (list alsa-lib ; for asound dependency
+           libx11 libxext sdl))
     (home-page "http://schismtracker.org")
     (synopsis "Oldschool sample-based music composition tool")
     (description
@@ -4019,7 +4029,7 @@ with a number of bugfixes and changes to improve IT playback.")
        ("libsigc++" ,libsigc++)
        ("ncurses" ,ncurses)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://essej.net/sooperlooper/")
     (synopsis "Live looping sampler")
     (description
@@ -4043,28 +4053,28 @@ available memory.")
                 "026v977kwb0wbmlmf6mnik328plxg8wykfx9ryvqhirac0aq39pk"))))
     (build-system gnu-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("curl" ,curl)
-       ("faad2" ,faad2)
-       ("ffmpeg" ,ffmpeg-3.4)
-       ("file" ,file)
-       ("jack" ,jack-1)
-       ("libid3tag" ,libid3tag)
-       ("libltdl" ,libltdl)
-       ("libmodplug" ,libmodplug)
-       ("libmpcdec" ,libmpcdec)
-       ("libmad" ,libmad)
-       ("libogg" ,libogg)
-       ("libvorbis" ,libvorbis)
-       ("ncurses" ,ncurses)
-       ("openssl" ,openssl)
-       ("sasl" ,cyrus-sasl)
-       ("speex" ,speex)
-       ("taglib" ,taglib)
-       ("wavpack" ,wavpack)
-       ("zlib" ,zlib)))
+     (list alsa-lib
+           curl
+           faad2
+           ffmpeg-3.4
+           file
+           jack-1
+           libid3tag
+           libltdl
+           libmodplug
+           libmpcdec
+           libmad
+           libogg
+           libvorbis
+           ncurses
+           openssl
+           cyrus-sasl
+           speex
+           taglib
+           wavpack
+           zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Console audio player designed to be powerful and easy to use")
     (description
      "Music on Console is a console audio player that supports many file
@@ -4127,7 +4137,7 @@ standard MIDI file with the csvmidi program.")
                (("install : all") "install :"))
              #t)))))
     (inputs
-     `(("lv2" ,lv2)))
+     (list lv2))
     (home-page "https://github.com/brummer10/GxGuvnor.lv2")
     (synopsis "Overdrive/distortion pedal simulation")
     (description "This package provides the LV2 plugin \"GxGuvnor\", a
@@ -4153,10 +4163,9 @@ simulation of an overdrive or distortion pedal for guitars.")
                   "0firap073ldw4nrykkd7jvyyj0jbl1nslxyzjj4kswazp99x7d9h"))
                 (file-name (string-append name "-" version "-checkout"))))
       (inputs
-       `(("lv2" ,lv2)
-         ("gtk+" ,gtk+-2)))
+       (list lv2 gtk+-2))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (home-page "https://github.com/brummer10/GxVBassPreAmp.lv2")
       (synopsis "Simulation of the Vox Venue Bass 100 Pre Amp Section")
       (description "This package provides the LV2 plugin \"GxVBassPreAmp\", a
@@ -4397,11 +4406,9 @@ a simulation of an analog Wah pedal with switchless activation."))))
       (build-system cmake-build-system)
       (arguments '(#:tests? #f)) ; there are no tests
       (inputs
-       `(("fftw" ,fftw)
-         ("libsamplerate" ,libsamplerate)
-         ("lv2" ,lv2)))
+       (list fftw libsamplerate lv2))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (home-page "https://github.com/ssj71/rkrlv2")
       (synopsis "Rakarrack effects ported to LV2 plugins")
       (description "This package provides the Rakarrack effects as LV2
@@ -4437,7 +4444,7 @@ maintainer these will get merged into the original project.")
          (modify-phases %standard-phases
            (delete 'configure))))
       (inputs
-       `(("lv2" ,lv2)))
+       (list lv2))
       (home-page "https://github.com/moddevices/mod-utilities")
       (synopsis "LV2 utility plugins")
       (description "This package provides LV2 audio utility plugins, such as
@@ -4502,22 +4509,21 @@ plugins, a switch trigger, a toggle switch, and a peakmeter.")
                                    out "/lib" "\"]," line))))
                #t)))))
       (inputs
-       `(("boost" ,boost)
-         ("python-rdflib" ,python-rdflib)
-         ("python" ,python)
-         ("jack" ,jack-1)
-         ("lv2" ,lv2)
-         ("lilv" ,lilv)
-         ("raul" ,raul-devel)
-         ("ganv" ,ganv)
-         ("suil" ,suil)
-         ("serd" ,serd)
-         ("sord" ,sord)
-         ("sratom" ,sratom)
-         ("gtkmm" ,gtkmm-2)))
+       (list boost
+             python-rdflib
+             python
+             jack-1
+             lv2
+             lilv
+             raul-devel
+             ganv
+             suil
+             serd
+             sord
+             sratom
+             gtkmm-2))
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("python-pygments" ,python-pygments)))
+       (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
@@ -4547,14 +4553,9 @@ develop custom plugins for use in other applications without programming.")
      `(#:configure-flags
        (list "--enable-qt5")))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("liblo" ,liblo)
-       ("lv2" ,lv2)))
+     (list qtbase-5 alsa-lib jack-1 liblo lv2))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (home-page "http://qmidiarp.sourceforge.net/")
     (synopsis "MIDI arpeggiator")
     (description "QMidiArp is an advanced MIDI arpeggiator, programmable step
@@ -4578,11 +4579,9 @@ modules running in parallel.")
      `(#:configure-flags
        (list "--enable-qt5")))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("alsa-lib" ,alsa-lib)))
+     (list qtbase-5 alsa-lib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (home-page "http://alsamodular.sourceforge.net/")
     (synopsis "MIDI event router and filter")
     (description "QMidiRoute is a MIDI event router and filter.  MIDI note,
@@ -4606,12 +4605,9 @@ defined as tabs in the main control surface.")
               (patches (search-patches "seq24-rename-mutex.patch"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gtkmm" ,gtkmm-2)
-       ("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("lash" ,lash)))
+     (list gtkmm-2 alsa-lib jack-1 lash))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://edge.launchpad.net/seq24/")
     (synopsis "Real-time MIDI sequencer")
     (description "Seq24 is a real-time MIDI sequencer.  It was created to
@@ -4630,9 +4626,7 @@ provide a very simple interface for editing and playing MIDI loops.")
                 "1zmib0i9jicv9fyphgkcrk418qmpv3l4p38ibl31sh237ki5xqw9"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-oauthlib" ,python-oauthlib)
-       ("python-requests" ,python-requests)))
+     (list python-dateutil python-oauthlib python-requests))
     (home-page "https://github.com/joalla/discogs_client")
     (synopsis "Python client for the Discogs API")
     (description "This is the continuation of the official Discogs API
@@ -4643,9 +4637,6 @@ change user data such as profile information, collections and wantlists,
 inventory, and orders.")
     (license license:bsd-2)))
 
-(define-public python2-discogs-client
-  (package-with-python2 python-discogs-client))
-
 (define-public libsmf
   (package
     (name "libsmf")
@@ -4681,11 +4672,9 @@ inventory, and orders.")
                          (find-files lib "\\.a$"))
                #t))))))
     (inputs
-     `(("readline" ,readline)
-       ("glib" ,glib)))
+     (list readline glib))
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen pkg-config))
     (home-page "http://libsmf.sourceforge.net/")
     (synopsis "Standard MIDI File format library")
     (description
@@ -4799,9 +4788,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
     (arguments
      `(#:configure-flags '("--enable-shared")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ;; Fails with default gcc (#include <filesystem> not found).
-       ("gcc" ,gcc-9)))
+     (list pkg-config))
     (inputs
      `(("jack" ,jack-2)
        ("lv2" ,lv2)
@@ -4844,7 +4831,7 @@ standalone JACK client and an LV2 plugin is also available.")
              "-DSFIZZ_TESTS=ON"
              "-DSFIZZ_USE_SYSTEM_ABSEIL=ON")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("abseil-cpp" ,abseil-cpp)
        ("glib" ,glib)
@@ -4919,8 +4906,7 @@ includes LV2 plugins and a JACK standalone client.")
        ("qtsvg" ,qtsvg)
        ("qtxmlpatterns" ,qtxmlpatterns)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (synopsis "Music composition and notation software")
     (description
      "MuseScore is a music score typesetter.  Its main purpose is the creation
@@ -4968,27 +4954,27 @@ sample library.")
          (add-after 'unpack 'chdir
            (lambda _ (chdir "src"))))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("dssi" ,dssi)
-       ("fluidsynth" ,fluidsynth)
-       ("glib" ,glib)
-       ("jack" ,jack-1)
-       ("ladspa" ,ladspa)
-       ("lash" ,lash)
-       ("libinstpatch" ,libinstpatch)
-       ("liblo" ,liblo)
-       ("libsamplerate" ,libsamplerate)
-       ("libsndfile" ,libsndfile)
-       ("lilv" ,lilv)
-       ("lrdf" ,lrdf)
-       ("lv2" ,lv2)
-       ("pcre" ,pcre)
-       ("pulseaudio" ,pulseaudio) ; required by rtaudio
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("rtaudio" ,rtaudio)
-       ("rubberband" ,rubberband)
-       ("sord" ,sord)))
+     (list alsa-lib
+           dssi
+           fluidsynth
+           glib
+           jack-1
+           ladspa
+           lash
+           libinstpatch
+           liblo
+           libsamplerate
+           libsndfile
+           lilv
+           lrdf
+           lv2
+           pcre
+           pulseaudio ; required by rtaudio
+           qtbase-5
+           qtsvg
+           rtaudio
+           rubberband
+           sord))
     (native-inputs
      `(("perl" ,perl)
        ("pkg-config" ,pkg-config)
@@ -5077,14 +5063,14 @@ ALSA, Pulseaudio, JACK, OSSv4 and CoreAudio.")
                 "0kl1hzhb7cykzkrqcqgq1dk4xcgrcxv0jja251aq4z4l783jpj7j"))))
     (build-system gnu-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("ladspa" ,ladspa)
-       ("libsamplerate" ,libsamplerate)
-       ("libsndfile" ,libsndfile)
-       ("liblo" ,liblo)))
+     (list alsa-lib
+           jack-1
+           ladspa
+           libsamplerate
+           libsndfile
+           liblo))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Audio plugin API for soft synths and effects")
     (description "DSSI is a plugin API for software instruments with user
 interfaces, permitting them to be hosted in-process by audio applications.
@@ -5100,7 +5086,7 @@ specification and header.")
 (define-public rosegarden
   (package
     (name "rosegarden")
-    (version "21.06.1")
+    (version "21.12")
     (source
      (origin
        (method url-fetch)
@@ -5108,7 +5094,7 @@ specification and header.")
                            (version-major+minor version) "/"
                            "rosegarden-" version ".tar.bz2"))
        (sha256
-        (base32 "0yir279gxc5b298sr0fg9jxgdi75bb1gvvy4mh3pxqjsnp00sxc7"))))
+        (base32 "02984qff9rc2r83a5a5zgwawfgd583gnj2w3zvllsxaf0vdx6gnw"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release")
@@ -5161,25 +5147,24 @@ specification and header.")
              (setenv "HOME" "/tmp/foo")
              (setenv "XDG_RUNTIME_DIR" "/tmp/foo"))))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("bash" ,bash)
-       ("dssi" ,dssi)
-       ("flac" ,flac)
-       ("fftwf" ,fftwf)
-       ("jack" ,jack-1)
-       ("ladspa" ,ladspa)
-       ("liblo" ,liblo)
-       ("libsamplerate" ,libsamplerate)
-       ("lilypond" ,lilypond)
-       ("lrdf" ,lrdf)
-       ("qtbase" ,qtbase-5)
-       ("tar" ,tar)
-       ("lirc" ,lirc)
-       ("wavpack" ,wavpack)
-       ("zlib" ,zlib)))
+     (list alsa-lib
+           bash
+           dssi
+           flac
+           fftwf
+           jack-1
+           ladspa
+           liblo
+           libsamplerate
+           lilypond
+           lrdf
+           qtbase-5
+           tar
+           lirc
+           wavpack
+           zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))           ;for qtlinguist
+     (list pkg-config qttools))           ;for qtlinguist
     (synopsis "Music composition and editing environment based around a MIDI
 sequencer")
     (description "Rosegarden is a music composition and editing environment
@@ -5204,11 +5189,9 @@ notation and includes basic support for digital audio.")
     (build-system meson-build-system)
     (arguments '(#:tests? #f))          ; no test target
     (inputs
-     `(("jack" ,jack-1)
-       ("lv2" ,lv2)
-       ("mesa" ,mesa)))
+     (list jack-1 lv2 mesa))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/OpenMusicKontrollers/patchmatrix")
     (synopsis "Simple JACK patch bay")
     (description "PatchMatrix is a patch bay for the JACK audio connection
@@ -5247,12 +5230,9 @@ OSC connections.")
                        "-a" "lv2synth.cpp"
                        "-o" "main.cpp" "main.dsp")))))))
     (inputs
-     `(("boost" ,boost)
-       ("lv2" ,lv2)
-       ("ntk" ,ntk)))
+     (list boost lv2 ntk))
     (native-inputs
-     `(("faust" ,faust)
-       ("pkg-config" ,pkg-config)))
+     (list faust pkg-config))
     (home-page "http://openavproductions.com/sorcer/")
     (synopsis "Wavetable LV2 plugin synth")
     (description "Sorcer is a wavetable LV2 plugin synthesizer, targeted at
@@ -5275,12 +5255,9 @@ the electronic or dubstep genre.")
     (build-system cmake-build-system)
     (arguments '(#:tests? #f)) ; there are no tests
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("drumstick" ,drumstick)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)))
+     (list alsa-lib drumstick pulseaudio qtbase-5))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/pedrolcl/Linux-SonivoxEas")
     (synopsis "MIDI synthesizer library")
     (description "This project is a real time General MIDI synthesizer based
@@ -5303,14 +5280,14 @@ soundfonts, using embedded samples instead.")
                 "02qbn0hbvn1iym4zxv35b201blg31yjpgh71h8db0j5zls2xc0m6"))))
     (build-system gnu-build-system)
     (inputs
-     `(("dssi" ,dssi)
-       ("liblo" ,liblo)
-       ("fftwf" ,fftwf)
-       ("gtk+" ,gtk+-2)
-       ("ladspa" ,ladspa)
-       ("alsa-lib" ,alsa-lib)))
+     (list dssi
+           liblo
+           fftwf
+           gtk+-2
+           ladspa
+           alsa-lib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://smbolton.com/whysynth.html")
     (synopsis "DSSI software synthesizer")
     (description "WhySynth is a versatile softsynth which operates as a plugin
@@ -5364,7 +5341,7 @@ ISRCs and the MCN (=UPC/EAN) from disc.")
          "1fgp67nhqlbvhhwrcxq5avil7alpzw4s4579hlyvxzbphdnbz8vq"))))
     (build-system python-build-system)
     (inputs
-     `(("libdiscid" ,libdiscid)))
+     (list libdiscid))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -5414,9 +5391,8 @@ Recording Code} (ISRC) can be extracted.}")
              ;; (invoke "tests/mbtest")
              (invoke "tests/ctest")
              #t)))))
-    (inputs `(("neon" ,neon)
-              ("libxml2" ,libxml2)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list neon libxml2))
+    (native-inputs (list pkg-config))
     (home-page "https://musicbrainz.org/doc/libmusicbrainz")
     (synopsis "MusicBrainz client library")
     (description "The MusicBrainz Client Library (libmusicbrainz), also known as
@@ -5437,9 +5413,8 @@ MusicBrainz lookup capabilities to their applications.")
                (base32
                 "1azc91jnwa3gdmy9pc8mflakgvsvf69ywwlqllxmdzwpk386w2xs"))))
     (build-system perl-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("which" ,which)))
-    (inputs `(("libdiscid" ,libdiscid)))
+    (native-inputs (list pkg-config which))
+    (inputs (list libdiscid))
     (home-page "https://metacpan.org/release/MusicBrainz-DiscID")
     (synopsis "Perl interface to the MusicBrainz libdiscid library")
     (description
@@ -5465,9 +5440,9 @@ compact disc (CDDA) identifiers.")
      ;; Tests try to connect to http://musicbrainz.org.
      '(#:tests? #f))
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-mojolicious" ,perl-mojolicious)))
+     (list perl-mojolicious))
     (home-page "https://metacpan.org/release/WebService-MusicBrainz")
     (synopsis "Web service API to the MusicBrainz database")
     (description
@@ -5490,14 +5465,14 @@ at @code{musicbrainz.org}.")
         (base32 "1l9iqz6vxrrxapv7s110g360bqxksir4dcqd8w0l4lhmnfmz3vnk"))))
     (build-system trivial-build-system)
     (inputs
-     `(("bash" ,bash)                   ; for the wrapped program
-       ("perl" ,perl)
-       ("perl-www-mechanize" ,perl-www-mechanize)
-       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
-       ;; Required or else LWP will fail with "GET https://www.google.com/ ==>
-       ;; 500 Can't verify SSL peers without knowing which Certificate
-       ;; Authorities to trust".
-       ("perl-mozilla-ca" ,perl-mozilla-ca)))
+     (list bash ; for the wrapped program
+           perl
+           perl-www-mechanize
+           perl-lwp-protocol-https
+           ;; Required or else LWP will fail with "GET https://www.google.com/ ==>
+           ;; 500 Can't verify SSL peers without knowing which Certificate
+           ;; Authorities to trust".
+           perl-mozilla-ca))
     (arguments
      `(#:modules ((guix build utils))
        #:builder (begin
@@ -5553,20 +5528,19 @@ console music players.")
            "1afkbqhzn6da7zaf5ab7dvyqj1izqhzprwfb4hw448fllda9bdvk"))))
       (build-system go-build-system)
       (native-inputs
-       `(("lua" ,lua)
-         ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
-         ("go-github-com-mattn-go-colorable" ,go-github-com-mattn-go-colorable)
-         ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)
-         ("go-gitlab-com-ambrevar-damerau" ,go-gitlab-com-ambrevar-damerau)
-         ("go-gitlab-com-ambrevar-golua-unicode" ,go-gitlab-com-ambrevar-golua-unicode)
-         ("go-github-com-mgutz-ansi" ,go-github-com-mgutz-ansi)
-         ("go-github-com-michiwend-gomusicbrainz" ,go-github-com-michiwend-gomusicbrainz)
-         ("go-github-com-stevedonovan-luar" ,go-github-com-stevedonovan-luar)
-         ("go-github-com-wtolson-go-taglib" ,go-github-com-wtolson-go-taglib)
-         ("go-github-com-yookoala-realpath" ,go-github-com-yookoala-realpath)))
+       (list lua
+             go-github-com-mattn-go-isatty
+             go-github-com-mattn-go-colorable
+             go-github-com-aarzilli-golua
+             go-gitlab-com-ambrevar-damerau
+             go-gitlab-com-ambrevar-golua-unicode
+             go-github-com-mgutz-ansi
+             go-github-com-michiwend-gomusicbrainz
+             go-github-com-stevedonovan-luar
+             go-github-com-wtolson-go-taglib
+             go-github-com-yookoala-realpath))
       (inputs
-       `(("chromaprint" ,chromaprint)
-         ("ffmpeg" ,ffmpeg)))
+       (list chromaprint ffmpeg))
       (arguments
        `(#:import-path "gitlab.com/ambrevar/demlo"
          #:phases
@@ -5662,13 +5636,13 @@ discard bad quality ones.
                          '("qtmultimedia"))))
                #t))))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("fftw" ,fftw)
-       ("jack" ,jack-1)
-       ("portaudio" ,portaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtsvg" ,qtsvg)))
+     (list alsa-lib
+           fftw
+           jack-1
+           portaudio
+           qtbase-5
+           qtmultimedia
+           qtsvg))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("hicolor-icon-theme" ,hicolor-icon-theme)
@@ -5702,10 +5676,9 @@ with error and volume history, and advanced features.")
        `(#:python ,python-2
          #:tests? #f))                     ; no "check" target
       (inputs
-       `(("jack" ,jack-1)
-         ("ncurses" ,ncurses)))
+       (list jack-1 ncurses))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (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.
@@ -5736,24 +5709,23 @@ easier to perform.  Features include:
                 "19kbhq99bkimx3aqrdzln0vlr4slkpx6kq66j731jvqyq76nlkp5"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("grilo" ,grilo)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gst-plugins-good" ,gst-plugins-good)
-       ("gtk+" ,gtk+)
-       ("libcddb" ,libcddb)
-       ("libcdio" ,libcdio)
-       ("libcdio-paranoia" ,libcdio-paranoia)
-       ("libgudev" ,libgudev)
-       ("libnotify" ,libnotify)
-       ("libpeas" ,libpeas)
-       ("libsoup" ,libsoup)
-       ("sqlite" ,sqlite)
-       ("taglib" ,taglib)))
+     (list glib
+           grilo
+           gstreamer
+           gst-plugins-base
+           gst-plugins-good
+           gtk+
+           libcddb
+           libcdio
+           libcdio-paranoia
+           libgudev
+           libnotify
+           libpeas
+           libsoup
+           sqlite
+           taglib))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -5787,7 +5759,7 @@ complete without obstructing your daily work.")
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags '("-Dintrospection=false" "-Dgtk-doc=false")))
-    (inputs `(("python-pygobject" ,python-pygobject)))
+    (inputs (list python-pygobject))
     (native-inputs
      `(("glib:bin" ,glib "bin")
        ("pkg-config" ,pkg-config)))
@@ -5826,11 +5798,9 @@ for integration into status line generators or other command-line tools.")
                (("-msse2 -mfpmath=sse") ""))
              #t)))))
     (inputs
-     `(("cairo" ,cairo)
-       ("libsndfile" ,libsndfile)))
+     (list cairo libsndfile))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("lv2" ,lv2)))
+     (list pkg-config lv2))
     (home-page "http://openavproductions.com/artyfx/")
     (synopsis "Audio effect LV2 plugin bundle")
     (description "ArtyFX is an LV2 plugin bundle of artistic real-time audio
@@ -5864,15 +5834,15 @@ and reverb.")
          (delete 'configure))           ; no configure script
        #:test-target "test"))
     (inputs
-     `(("cairo" ,cairo)
-       ("hicolor-icon-theme" ,hicolor-icon-theme)
-       ("jack" ,jack-1)
-       ("ladspa" ,ladspa)
-       ("libsndfile" ,libsndfile)
-       ("lv2" ,lv2)
-       ("mesa" ,mesa)))
+     (list cairo
+           hicolor-icon-theme
+           jack-1
+           ladspa
+           libsndfile
+           lv2
+           mesa))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Audio plugin collection")
     (description "LSP (Linux Studio Plugins) is a collection of audio
 plugins available as LADSPA/LV2 plugins and as standalone JACK
@@ -5896,13 +5866,9 @@ applications.")
          "08gjfx7vrsx9zvj04j8cr3vscxmq6jr2hbdi6dfgp1l1dnnpxsgq"))))
     (build-system meson-build-system)
     (inputs
-     `(("glu" ,glu)
-       ("libx11" ,libx11)
-       ("mesa" ,mesa)
-       ("sratom" ,sratom)))
+     (list glu libx11 mesa sratom))
     (native-inputs
-     `(("flex" ,flex)
-       ("pkg-config" ,pkg-config)))
+     (list flex pkg-config))
     (synopsis "Investigative LV2 plugin bundle")
     (description "The Sherlock plugin bundle contains LV2 plugins for
 visualizing LV2 atom, MIDI and OSC events.  They can be used for monitoring
@@ -5941,8 +5907,7 @@ and debugging of event signal flows inside plugin graphs.")
        ("cairo" ,cairo)
        ("gtk" ,gtk+-2)))
     (native-inputs
-     `(("faust" ,faust)
-       ("pkg-config" ,pkg-config)))
+     (list faust pkg-config))
     (home-page "https://foo-yc20.codeforcode.com/")
     (synopsis "Implementation of Yamaha YC-20 combo organ from 1969")
     (description "This is a Faust implementation of a 1969 designed Yamaha
@@ -5979,15 +5944,14 @@ as a whole to realisticly reproduce the features and flaws of the real deal.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("xxd" ,xxd)))
+     (list pkg-config xxd))
     (inputs
-     `(("cairo" ,cairo)
-       ("fftw" ,fftw)
-       ("fftwf" ,fftwf)
-       ("jack" ,jack-1)
-       ("lv2" ,lv2)
-       ("mesa" ,mesa)))
+     (list cairo
+           fftw
+           fftwf
+           jack-1
+           lv2
+           mesa))
     (synopsis "Realtime graphical spectrum analyzer")
     (description "Spectacle is a real-time spectral analyzer using the
 short-time Fourier transform, available as LV2 audio plugin and JACK client.")
@@ -5999,7 +5963,7 @@ short-time Fourier transform, available as LV2 audio plugin and JACK client.")
 (define-public x42-plugins
   (package
     (name "x42-plugins")
-    (version "20200714")
+    (version "20211016")
     (source
      (origin
        (method url-fetch)
@@ -6007,7 +5971,7 @@ short-time Fourier transform, available as LV2 audio plugin and JACK client.")
         (string-append "https://gareus.org/misc/x42-plugins/x42-plugins-"
                        version ".tar.xz"))
        (sha256
-        (base32 "1av05ykph8x67018hm9zfgh1vk0zi39mvrsxkj6bm4hkarxf0vvl"))))
+        (base32 "11bf6q42ihyk4qxwf83y0847zzyl65kwpbk3hmyz0f0ykil5fsb7"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no "check" target
@@ -6016,33 +5980,26 @@ short-time Fourier transform, available as LV2 audio plugin and JACK client.")
              "LIBZITACONVOLVER=-lzita-convolver"
              (string-append "FONTFILE="
                             (assoc-ref %build-inputs "font-dejavu")
-                            "/share/fonts/truetype/DejaVuSans-Bold.ttf"))
+                            "/share/fonts/truetype/DejaVuSans-Bold.ttf")
+             (string-append "CC=" ,(cc-for-target)))
        #:phases
        (modify-phases %standard-phases
-         (add-before 'build 'set-CC-variable
-           (lambda _
-             (setenv "CC" "gcc")
-             #t))
          (delete 'configure))))
     (inputs
-     `(("cairo" ,cairo)
-       ("fftwf" ,fftwf)
-       ("ftgl" ,ftgl)
-       ("glib" ,glib)
-       ("glu" ,glu)
-       ("hicolor-icon-theme" ,hicolor-icon-theme)
-       ("jack" ,jack-1)
-       ("libltc" ,libltc)
-       ("libsamplerate" ,libsamplerate)
-       ("libx11" ,libx11)
-       ("pango" ,pango)
-       ("zita-convolver" ,zita-convolver)))
+     (list cairo
+           fftwf
+           ftgl
+           glib
+           glu
+           hicolor-icon-theme
+           jack-1
+           libltc
+           libsamplerate
+           libx11
+           pango
+           zita-convolver))
     (native-inputs
-     `(("help2man" ,help2man)
-       ("liblo" ,liblo)
-       ("lv2" ,lv2)
-       ("font-dejavu" ,font-dejavu)
-       ("pkg-config" ,pkg-config)))
+     (list help2man liblo lv2 font-dejavu pkg-config))
     (synopsis "Collection of LV2/JACK audio/MIDI processing plugins")
     (description "x42-plugins is a collection of over 80 cross-platform LV2
 audio and MIDI plugins that can also run as standalone JACK applications.")
@@ -6080,16 +6037,14 @@ audio and MIDI plugins that can also run as standalone JACK applications.")
              (setenv "CC" "gcc") #t))
          (delete 'configure))))
     (inputs
-     `(("fftwf" ,fftwf)
-       ("jack" ,jack-1)                 ;for the standalone JACK application
-       ("liblo" ,liblo)
-       ("libsamplerate" ,libsamplerate)
-       ("mesa" ,mesa)
-       ("zita-convolver" ,zita-convolver)))
+     (list fftwf
+           jack-1 ;for the standalone JACK application
+           liblo
+           libsamplerate
+           mesa
+           zita-convolver))
     (native-inputs
-     `(("ladspa" ,ladspa)
-       ("lv2" ,lv2)
-       ("pkg-config" ,pkg-config)))
+     (list ladspa lv2 pkg-config))
     (synopsis "Collection of audio processing plugins")
     (description
      "Zam plugins is a collection of audio processing plugins in the LADSPA,
@@ -6122,18 +6077,14 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.")
              (string-append "-DCMAKE_INSTALL_PREFIX="
                             (assoc-ref %outputs "out")))))
     (inputs
-     `(("hicolor-icon-theme" ,hicolor-icon-theme)
-       ("jack" ,jack-1)                 ;for the standalone JACK application
-       ("libsndfile" ,libsndfile)
-       ("libx11" ,libx11)
-       ("redkite" ,redkite)
-       ("rapidjson" ,rapidjson)))
+     (list hicolor-icon-theme
+           jack-1 ;for the standalone JACK application
+           libsndfile
+           libx11
+           redkite
+           rapidjson))
     (native-inputs
-     `(("lv2" ,lv2)
-       ;; Fails with default gcc (#include <filesystem> not found).
-       ("gcc" ,gcc-9)
-       ("pkg-config" ,pkg-config)
-       ("sord" ,sord)))
+     (list lv2 pkg-config sord))
     (synopsis "Percussion synthesizer")
     (description "Geonkick is a synthesizer that can synthesize elements
 of percussion such as kicks, snares, hit-hats, shakers, claps and sticks.
@@ -6168,16 +6119,16 @@ It can also play and mix samples.")
       (modify-phases %standard-phases
         (delete 'configure))))
    (inputs
-    `(("alsa-lib" ,alsa-lib)
-      ("cairo" ,cairo)
-      ("fluidsynth" ,fluidsynth)
-      ("jack" ,jack-1)
-      ("liblo" ,liblo)
-      ("libsigc++" ,libsigc++)
-      ("libsmf" ,libsmf)
-      ("libx11" ,libx11)))
+    (list alsa-lib
+          cairo
+          fluidsynth
+          jack-1
+          liblo
+          libsigc++
+          libsmf
+          libx11))
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    (list pkg-config))
    (home-page "https://github.com/brummer10/Mamba")
    (synopsis "Virtual MIDI keyboard and MIDI file player/recorder for JACK")
    (description "Mamba is a virtual MIDI keyboard and MIDI file
@@ -6189,7 +6140,7 @@ ones.")
 (define-public dpf-plugins
   (package
     (name "dpf-plugins")
-    (version "1.3")
+    (version "1.4")
     (source
      (origin
        (method git-fetch)
@@ -6199,27 +6150,23 @@ ones.")
          (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1hsfmpv3kvpiwk8nfw9xpaipzy0n27i83y2v1yr93lznwm5rqrbs"))))
+        (base32 "0y7qvpfm34g6f7d786c6c9043dlbg5c4h71l2s24dsc9m8i7x2ww"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no "check" target
        #:make-flags
-       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             (string-append "CC=" ,(cc-for-target)))
        #:phases
        (modify-phases %standard-phases
-         (add-before 'build 'set-CC-variable
-           (lambda _ (setenv "CC" "gcc") #t))
          (delete 'configure))))
     (inputs
-     `(("cairo" ,cairo)
-       ("liblo" ,liblo)                 ; for dssi plugins
-       ("jack" ,jack-1)                 ; for standalone applications
-       ("mesa" ,mesa)))
+     (list cairo
+           liblo ; for dssi plugins
+           jack-1 ; for standalone applications
+           mesa))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("dssi" ,dssi)
-       ("lv2" ,lv2)))
+     (list pkg-config dssi lv2))
     (home-page "https://github.com/DISTRHO/DPF-Plugins")
     (synopsis "Audio plugin collection")
     (description "Collection of audio plugins built with the DISTRHO Plugin
@@ -6262,14 +6209,9 @@ Soul Force), MVerb, Nekobi, and ProM.")
            (lambda _
              (setenv "CC" "gcc"))))))
     (inputs
-     `(("cairo" ,cairo)
-       ("dssi" ,dssi)
-       ("glu" ,glu)
-       ("mesa" ,mesa)
-       ("pango" ,pango)))
+     (list cairo dssi glu mesa pango))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("lv2" ,lv2)))
+     (list pkg-config lv2))
     (home-page "https://x42-plugins.com/x42/x42-avldrums")
     (synopsis "Drum sample player LV2 plugin dedicated to the AVLinux Drumkits")
     (description "AVLdrums is a drum sample player LV2 plugin dedicated to Glen
@@ -6291,7 +6233,9 @@ MIDI drums and comes as two separate drumkits: Black Pearl and Red Zeppelin.")
         (file-name (git-file-name name version))
         (sha256
           (base32
-            "17ys2vvhncx9i3ydg3xwgz1d3gqv4yr5mqi7vr0i0ca6nad6x3d4"))))
+            "17ys2vvhncx9i3ydg3xwgz1d3gqv4yr5mqi7vr0i0ca6nad6x3d4"))
+        ;; Apply GCC 9 fixes from https://github.com/mtytel/helm/pull/233
+        (patches (search-patches "helm-fix-gcc-9-build.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f  ; no "check" target
@@ -6328,8 +6272,7 @@ MIDI drums and comes as two separate drumkits: Black Pearl and Red Zeppelin.")
        ("jack" ,jack-1)
        ("mesa" ,mesa)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("lv2" ,lv2)))
+     (list pkg-config lv2))
     (home-page "https://tytel.org/helm/")
     (synopsis "Polyphonic synth with lots of modulation")
     (description "Helm is a cross-platform polyphonic synthesizer available standalone
@@ -6392,9 +6335,8 @@ and as an LV2 plugin.")
       ("xdg-utils" ,xdg-utils)
       ("zstd" ,zstd "lib")))
    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("help2man" ,help2man)
-       ("glib" ,glib "bin"))) ; for 'glib-compile-resources'
+     (list pkg-config help2man
+           `(,glib "bin"))) ; for 'glib-compile-resources'
    (synopsis "Digital audio workstation focusing on usability")
    (description "Zrythm is a digital audio workstation designed to be
 featureful and easy to use.  It offers unlimited automation options, LV2
@@ -6405,7 +6347,7 @@ plugin support, JACK support and chord assistance.")
 (define-public dragonfly-reverb
   (package
     (name "dragonfly-reverb")
-    (version "3.2.1")
+    (version "3.2.5")
     (source
      (origin
        (method git-fetch)
@@ -6417,11 +6359,12 @@ plugin support, JACK support and chord assistance.")
          (recursive? #t)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0vfm2510shah67k87mdyar4wr4vqwii59y9lqfhwm6blxparkrqa"))))
+        (base32 "14kia9wjs0nqfx4psnr3vf4x6hihkf80gb0mjzmdnnnk4cnrdydm"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
-       #:make-flags (list "CC=gcc")
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target)))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)            ;no configure target
@@ -6445,14 +6388,11 @@ plugin support, JACK support and chord assistance.")
                                (and
                                  (equal? (dirname name) "bin")
                                  (not (string-suffix? ".so" name))
-                                 (not (string-suffix? ".lv2" name))))))
-               #t))))))
+                                 (not (string-suffix? ".lv2" name))))))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("jack" ,jack-1)
-       ("libx11" ,libx11)
-       ("mesa" ,mesa)))
+     (list jack-1 libx11 mesa))
     (home-page "https://michaelwillis.github.io/dragonfly-reverb/")
     (synopsis "Concert hall reverb and room reverb effects")
     (description
@@ -6478,12 +6418,9 @@ as JACK standalone applications.")
          "1rkm2xajmyik6289b20rp5a5br9f3sh1xk8nb1bs6qpmcrfirgbs"))))
     (build-system meson-build-system)
     (inputs
-      `(("guile" ,guile-2.2)
-        ("libsndfile" ,libsndfile)
-        ("lv2" ,lv2)
-        ("ztoolkit-rsvg" ,ztoolkit-rsvg)))
+      (list guile-2.2 libsndfile lv2 ztoolkit-rsvg))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (synopsis "Audio plugin collection")
     (description "ZPlugins is a collection of audio DSP plugins intended
 to be bundled with the Zrythm @dfn{digital audio workstation} (DAW).")
@@ -6512,12 +6449,9 @@ to be bundled with the Zrythm @dfn{digital audio workstation} (DAW).")
     (arguments
      `(#:tests? #f))                    ; no tests included
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("glib" ,glib)
-       ("jack" ,jack-1)
-       ("lv2" ,lv2)))
+     (list alsa-lib glib jack-1 lv2))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/ssj71/reMID.lv2")
     (synopsis
      "MIDI-controlled implementation of the SID 6581 chip used in the
@@ -6556,11 +6490,9 @@ control of the chip.")
        (modify-phases %standard-phases
          (delete 'configure))))         ;no configure target
     (inputs
-     `(("cairo" ,cairo)
-       ("jack" ,jack-1)
-       ("mesa" ,mesa)))
+     (list cairo jack-1 mesa))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/linuxmao-org/VL1-emulator")
     (synopsis "Emulator of Casio VL-Tone VL1")
     (description "The VL1-Emulator is an emulator of Casio VL-Tone VL1,
@@ -6652,9 +6584,9 @@ plugin and a standalone JACK application.")
                               "/lib/lv2")
                        "install"))))))
       (inputs
-        `(("lv2" ,lv2)))
+        (list lv2))
       (native-inputs
-        `(("pkg-config" ,pkg-config)))
+        (list pkg-config))
       (synopsis "Audio plugin collection")
       (description "TAP (Tom's Audio Processing) plugins is a collection of
   audio effect plugins originally released as LADSPA plugins.  This package
@@ -6708,11 +6640,9 @@ plugin and a standalone JACK application.")
                                  (not (string-suffix? ".lv2" name))))))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-      `(("jack" ,jack-1)
-        ("lv2" ,lv2)
-        ("mesa" ,mesa)))
+      (list jack-1 lv2 mesa))
     (synopsis "Waveshaper plugin")
     (description "Wolf Shaper is a waveshaper plugin with a graph editor.
 It is provided as an LV2 plugin and as a standalone Jack application.")
@@ -6790,14 +6720,14 @@ It is provided as an LV2 plugin and as a standalone Jack application.")
                                    (not (string-suffix? ".lv2" name))))))
                  #t))))))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (inputs
-        `(("cairo" ,cairo)
-          ("glu" ,glu)
-          ("jack" ,jack-1)
-          ("lv2" ,lv2)
-          ("mesa" ,mesa)
-          ("pango" ,pango)))
+        (list cairo
+              glu
+              jack-1
+              lv2
+              mesa
+              pango))
       (synopsis "Audio plugin collection")
       (description "Shiru plugins is a collection of audio plugins created
   by Shiru, ported to LV2 by the Linux MAO project using the DISTRHO plugin
@@ -6832,14 +6762,14 @@ It is provided as an LV2 plugin and as a standalone Jack application.")
                #t))))))
     (build-system meson-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("bash-minimal" ,bash-minimal)   ; for wrap-program
-       ("dbus" ,dbus)
-       ("jack" ,jack-1)
-       ("python" ,python)
-       ("python-dbus" ,python-dbus)))
+     (list alsa-lib
+           bash-minimal ; for wrap-program
+           dbus
+           jack-1
+           python
+           python-dbus))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "ALSA sequencer to JACK MIDI bridging")
     (description
      "@code{a2jmidid} is a daemon that implements automatic bridging of ALSA
diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm
index 6e5a281443..552571de1f 100644
--- a/gnu/packages/nano.scm
+++ b/gnu/packages/nano.scm
@@ -30,17 +30,16 @@
 (define-public nano
   (package
     (name "nano")
-    (version "5.8")
+    (version "6.0")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/nano/nano-" version ".tar.xz"))
       (sha256
-       (base32 "133nhxg4xfxisjzi85rn2l575hdbvcax1s13l4m6wcvq5zdn6fz4"))))
+       (base32 "18ly2v5yyrqws1x4z154cnv9xf2vbk8js2mqmq50xlaaifv8rb4k"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gettext" ,gettext-minimal)
-       ("ncurses" ,ncurses)))
+     (list gettext-minimal ncurses))
     (home-page "https://www.nano-editor.org/")
     (synopsis "Small, user-friendly console text editor")
     (description
diff --git a/gnu/packages/ncdu.scm b/gnu/packages/ncdu.scm
index 9faa7131d3..d6e4522bf0 100644
--- a/gnu/packages/ncdu.scm
+++ b/gnu/packages/ncdu.scm
@@ -37,7 +37,7 @@
                (base32
                 "1m0gk09jaz114piidiw8fkg0id5l6nhz1cg5nlaf1yl3l595g49b"))))
     (build-system gnu-build-system)
-    (inputs `(("ncurses" ,ncurses)))
+    (inputs (list ncurses))
     (synopsis "Ncurses-based disk usage analyzer")
     (description
      "Ncdu is a disk usage analyzer with an ncurses interface, aimed to be
diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm
index edf475a8ef..311a681d09 100644
--- a/gnu/packages/ncurses.scm
+++ b/gnu/packages/ncurses.scm
@@ -261,7 +261,7 @@ ncursesw library provides wide character support.")
                 "0riqmp2xl2j2yxx69nyg8jbm2fyi5fp4clcf6zi5jfm3irn3l8y9"))))
     (build-system gnu-build-system)
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (synopsis "Curses widgets")
     (description "Dialog is a script-interpreter which provides a set of
 curses widgets, such as dialog boxes.")
@@ -282,7 +282,7 @@ curses widgets, such as dialog boxes.")
          "0r6xd9wr0c25rr28zixhqipak575zqsfb7r7f2693i9il1dpj554"))))
     (build-system perl-build-system)
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (arguments
      `(#:make-maker-flags (list "PANELS" "MENUS")
        #:phases
@@ -341,8 +341,8 @@ of your system.")
                     (lib (string-append out "/lib")))
                ;; Some programs look for libstfl.so.0.
                (symlink "libstfl.so" (string-append lib "/libstfl.so.0"))))))))
-    (inputs `(("ncurses" ,ncurses)))
-    (native-inputs `(("swig" ,swig)))
+    (inputs (list ncurses))
+    (native-inputs (list swig))
     (home-page "http://www.clifford.at/stfl/")
     (synopsis "Structured terminal forms library")
     (description "Stfl is a library which implements a curses-based widget
diff --git a/gnu/packages/nettle.scm b/gnu/packages/nettle.scm
index f9f34467c9..27bd9efc60 100644
--- a/gnu/packages/nettle.scm
+++ b/gnu/packages/nettle.scm
@@ -62,8 +62,8 @@
                                     (find-files "." "\\.a$")))
                         #t))))))
     (outputs '("out" "debug" "static"))
-    (native-inputs `(("m4" ,m4)))
-    (propagated-inputs `(("gmp" ,gmp)))
+    (native-inputs (list m4))
+    (propagated-inputs (list gmp))
     (home-page "https://www.lysator.liu.se/~nisse/nettle/")
     (synopsis "C library for low-level cryptographic functionality")
     (description
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index d6a2b6bb6b..1eb6bffcb6 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -14,13 +14,13 @@
 ;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2017, 2020, 2021 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2017, 2019 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2018 Adam Van Ymeren <adam@vany.ca>
 ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
-;;; Copyright © 2018 Tonton <tonton@riseup.net>
+;;; Copyright © 2018, 2019 Tonton <tonton@riseup.net>
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2018, 2020, 2021 Marius Bakke <marius@gnu.org>
@@ -31,7 +31,6 @@
 ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
 ;;; Copyright © 2019, 2020, 2021 Brice Waegeneire <brice@waegenei.re>
-;;; Copyright © 2019 Tonton <tonton@riseup.net>
 ;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 ;;; Copyright © 2019 Daniel Schaefer <git@danielschaefer.me>
@@ -86,6 +85,7 @@
   #:use-module (gnu packages autogen)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
@@ -163,12 +163,12 @@
         (base32 "10ndzkip8blgkw572n3dicl6mgjaa7kygwn3vls80liq92vf1sa9"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)
-       ("which" ,which)))
+     (list autoconf
+           automake
+           libtool
+           pkg-config
+           python-wrapper
+           which))
     (home-page "https://github.com/sctplab/usrsctp/")
     (synopsis "SCTP user-land implementation")
     (description "UsrSCTP is a portable SCTP userland stack.  SCTP is a message
@@ -190,10 +190,9 @@ runs on top of IP or UDP, and supports both v4 and v6 versions.")
         (base32 "0kmlqk04sgkshsll4r9w3k0rvrgz0gpk987618r50khwl484zss6"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+     (list gettext-minimal pkg-config))
     (inputs
-     `(("libressl" ,libressl)))
+     (list libressl))
     (home-page "https://github.com/axel-download-accelerator/axel")
     (synopsis "Light command line download accelerator")
     (description
@@ -268,66 +267,79 @@ Android, and ChromeOS.")
     (license license:lgpl2.1+)))
 
 (define-public libnice
-  (package
-    (name "libnice")
-    (version "0.1.18")
-    (source
-     (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://libnice.freedesktop.org/releases/"
-                       name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1x3kj9b3dy9m2h6j96wgywfamas1j8k2ca43k5v82kmml9dx5asy"))))
-    (build-system meson-build-system)
-    (outputs '("out" "doc"))
-    (arguments
-     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
-       #:configure-flags
-       (list
-        "-Dgtk_doc=enabled")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'disable-failing-test
-           (lambda _
-             (substitute* "tests/meson.build"
-               ;; ‘test-set-port-range.c:66:main: assertion failed:
-               ;; (nice_agent_gather_candidates (agent, stream1))’
-               (("'test-set-port-range'") "#"))
-             #t))
-         (add-after 'install 'move-docs
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (assoc-ref outputs "doc")))
-               (mkdir-p (string-append doc "/share"))
-               (rename-file
-                (string-append out "/share/gtk-doc")
-                (string-append doc "/share/gtk-doc"))
-               #t))))))
-    (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("graphviz" ,graphviz)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("libnsl" ,libnsl)))
-    (propagated-inputs
-     `(("glib" ,glib)
-       ("glib-networking" ,glib-networking)
-       ("gnutls" ,gnutls)))
-    (synopsis "GLib ICE implementation")
-    (description "LibNice is a library that implements the Interactive
+  ;; The latest release is old and randomly fails tests with GStreamer 1.18.5,
+  ;; such as: "test-bind: ../libnice-0.1.18/stun/tests/test-bind.c:234:
+  ;; bad_responses: Assertion `len >= 20' failed"
+  (let ((revision "0")
+        (commit "47a96334448838c43d7e72f4ef51b317befbfae1"))
+    (package
+      (name "libnice")
+      (version (git-version "0.1.18" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.freedesktop.org/libnice/libnice")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "19ypjazslmsb9vqs2wyyzvi72h5jbn16dbng7pxh485djdrmgcg4"))))
+      (build-system meson-build-system)
+      (outputs '("out" "doc"))
+      (arguments
+       `(#:glib-or-gtk? #t           ; To wrap binaries and/or compile schemas
+         #:configure-flags
+         (list
+          "-Dgtk_doc=enabled")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'disable-failing-tests
+             (lambda _
+               (substitute* "tests/meson.build"
+                 ;; ‘test-set-port-range.c:66:main: assertion failed:
+                 ;; (nice_agent_gather_candidates (agent, stream1))’
+                 (("'test-set-port-range'" all)
+                  (string-append "# " all))
+                 ;; The following test is disabled as it fails in a
+                 ;; nondeterministic fashion (see:
+                 ;; https://gitlab.freedesktop.org/libnice/libnice/-/issues/151).
+                 (("'test-bsd'" all)
+                  (string-append "# " all)))
+               (substitute* "stun/tests/meson.build"
+                 ;; test-bind.c:234: bad_responses: Assertion `len >= 20'
+                 ;; failed (see:
+                 ;; https://gitlab.freedesktop.org/libnice/libnice/-/issues/150).
+                 (("'bind', ")
+                  ""))))
+           (add-after 'install 'move-docs
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (doc (assoc-ref outputs "doc")))
+                 (mkdir-p (string-append doc "/share"))
+                 (rename-file
+                  (string-append out "/share/gtk-doc")
+                  (string-append doc "/share/gtk-doc"))))))))
+      (native-inputs
+       `(("glib:bin" ,glib "bin")
+         ("gobject-introspection" ,gobject-introspection)
+         ("graphviz" ,graphviz)
+         ("gtk-doc" ,gtk-doc/stable)
+         ("pkg-config" ,pkg-config)))
+      (inputs
+       (list gstreamer gst-plugins-base libnsl))
+      (propagated-inputs
+       (list glib glib-networking gnutls))
+      (synopsis "GLib ICE implementation")
+      (description "LibNice is a library that implements the Interactive
 Connectivity Establishment (ICE) standard (RFC 5245 & RFC 8445).  It provides a
 GLib-based library, libnice, as well as GStreamer elements to use it.")
-    (home-page "https://libnice.freedesktop.org/")
-    (license
-     ;; This project is dual-licensed.
-     (list
-      license:lgpl2.1+
-      license:mpl1.1))))
+      (home-page "https://libnice.freedesktop.org/")
+      (license
+       ;; This project is dual-licensed.
+       (list
+        license:lgpl2.1+
+        license:mpl1.1)))))
 
 (define-public rtmpdump
   ;; There are no tags in the repository, and the project is unlikely to
@@ -376,8 +388,7 @@ GLib-based library, libnice, as well as GStreamer elements to use it.")
                   "CRYPTO=GNUTLS"))))
            (delete 'configure))))
       (inputs
-       `(("gnutls" ,gnutls)
-         ("zlib" ,zlib)))
+       (list gnutls zlib))
       (synopsis "Tools and library for handling RTMP streams")
       (description "RTMPdump is a toolkit for RTMP streams.  All forms of RTMP are
 supported, including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://.")
@@ -405,7 +416,7 @@ supported, including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://.")
         (base32 "1n6pgrcs8gwrcq5fch1q3yk3jipjwrf21s9a13fbjrl903g5zzv9"))))
     (build-system cmake-build-system)
     (arguments `(#:tests? #f)) ;no tests
-    (inputs `(("ncurses" ,ncurses)))
+    (inputs (list ncurses))
     (synopsis "Network load monitor")
     (description
      "Slurm is a network load monitor.  It shows real-time traffic statistics
@@ -441,7 +452,7 @@ from any network device in any of three ASCII graph formats.")
        ("pkg-config" ,pkg-config)
        ("tclsh" ,tcl)))
     (propagated-inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (synopsis "Secure Reliable Transport")
     (description "SRT is a transport technology that optimizes streaming
 performance across unpredictable networks, such as the Internet.")
@@ -482,12 +493,7 @@ performance across unpredictable networks, such as the Internet.")
         (base32 "1jfq58j365mlgssavyw5wcal42n0xjkr40vmj9b8w265wgs28j20"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("linux-headers" ,linux-libre-headers)))
+     (list autoconf automake libtool pkg-config))
     (synopsis
      "@acronym{SCTP, Stream Control Transmission Protocol} helpers for Linux")
     (description
@@ -516,7 +522,7 @@ It also includes some SCTP-related helper utilities.")
         (base32 "14h2qlmfi24bizhvvqkfqfa78pzm3911ibrzy9k94i97xy1978dy"))))
     (build-system python-build-system)
     (inputs
-     `(("lksctp-tools" ,lksctp-tools)))
+     (list lksctp-tools))
     (arguments
      `(#:tests? #f  ;; tests require network
        #:phases
@@ -553,7 +559,7 @@ SCTP-aware kernel (most are).")
        (list (string-append "--docdir=" (assoc-ref %outputs "out")
                             "/share/doc/" ,name "-" ,version))))
     (inputs
-     `(("libpcap" ,libpcap)))
+     (list libpcap))
     (home-page "https://www.zeroflux.org/projects/knock")
     (synopsis "Small port-knock daemon")
     (description "@command{knockd} is a port-knock daemon.  It listens to all traffic on
@@ -649,14 +655,14 @@ systems with no further dependencies.")
 (define-public blueman
   (package
     (name "blueman")
-    (version "2.2.1")
+    (version "2.2.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/blueman-project/blueman/releases"
                            "/download/" version "/blueman-" version ".tar.xz"))
        (sha256
-        (base32 "0whs1bqnn1fgzrq7y2w1d06ldvfafq6h2xzmcfncbwmyb4i0mhgw"))))
+        (base32 "1s86w4mklzr8hvbgl3nkg8jycl6grww533dhzw8gdn5glqfpkpbf"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags (list "--enable-polkit"
@@ -701,8 +707,7 @@ systems with no further dependencies.")
                (with-directory-excursion "blueman/main"
                  (substitute* "PulseAudioUtils.py"
                    (("libpulse.so.0") pulse)
-                   (("libpulse-mainloop-glib.so.0") pulse-glib)))
-               #t)))
+                   (("libpulse-mainloop-glib.so.0") pulse-glib))))))
          ;; Fix running of blueman programs.
          (add-after 'glib-or-gtk-wrap 'wrap-blueman-progs
            (lambda* (#:key outputs #:allow-other-keys)
@@ -723,8 +728,7 @@ systems with no further dependencies.")
                       '("adapters" "applet" "manager"
                         "sendto" "services" "tray"))
                  (map (lambda (prog) (string-append libexec prog))
-                      '("mechanism" "rfcomm-watcher"))))
-               #t))))))
+                      '("mechanism" "rfcomm-watcher"))))))))))
     (native-inputs
      `(("cython" ,python-cython)
        ("glib:bin" ,glib "bin")
@@ -735,7 +739,7 @@ systems with no further dependencies.")
     (inputs
      `(("bluez" ,bluez)
        ("dbus" ,dbus)
-       ("gdkpixbuf" ,gdk-pixbuf+svg)
+       ("librsvg" ,librsvg)
        ("glib" ,glib)
        ("gtk+" ,gtk+)
        ("iproute2" ,iproute)
@@ -832,14 +836,14 @@ residing in IPv4-only networks, even when they are behind a NAT device.")
 (define-public ndisc6
   (package
     (name "ndisc6")
-    (version "1.0.4")
+    (version "1.0.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.remlab.net/files/ndisc6/ndisc6-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "07swyar1hl83zxmd7fqwb2q0c0slvrswkcfp3nz5lknrk15dmcdb"))))
+                "0lgkbnnll8nrr7h63ywd42sg8fiv6jhhymd7rnml8a3yqjgjz4rn"))))
     (build-system gnu-build-system)
     (home-page "https://www.remlab.net/ndisc6/")
     (synopsis "IPv6 diagnostic tools")
@@ -919,7 +923,7 @@ useful for making transparent firewalls.")
                 "1sbmqqvni3ss9wyay6ik5v81kxffkra80mh4ypgj74g82iba5b1z"))))
     (build-system gnu-build-system)
     (arguments '(#:tests? #f))          ; no test suite
-    (inputs `(("openssl" ,openssl)))
+    (inputs (list openssl))
     (home-page "http://www.dest-unreach.org/socat/")
     (synopsis
      "Open bidirectional communication channels from the command line")
@@ -938,7 +942,7 @@ or server shell scripts with network connections.")
 (define-public mbuffer
   (package
     (name "mbuffer")
-    (version "20210328")
+    (version "20211018")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -946,9 +950,11 @@ or server shell scripts with network connections.")
                     version ".tgz"))
               (sha256
                (base32
-                "0pfw9xw4ph18yss07fl6w8fbqiwy1w9r1knzw5gsb4c993cbidai"))))
+                "1qxnbpyly00kml3sjan9iqg6pqacsi3yqq66x25w455cwkjc2h72"))))
     (build-system gnu-build-system)
-    (inputs `(("openssl" ,openssl)))
+    (native-inputs
+     (list which))
+    (inputs (list openssl))
     (home-page "http://www.maier-komor.de/mbuffer.html")
     (synopsis
      "Swiss army knife for data stream buffering (network aware)")
@@ -978,7 +984,17 @@ or server shell scripts with network connections.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0p9ilj4v96q32klavx0phw9va21fjp8vpk11nbh6v2ppxnnxfhwm"))))
+                "0p9ilj4v96q32klavx0phw9va21fjp8vpk11nbh6v2ppxnnxfhwm"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; 'sys_errlist' & co. are gone in glibc 2.33; work around it.
+               '(substitute* "percent_m.c"
+                  (("sys_errlist\\[errno\\]")
+                   "strerror (errno)")
+                  (("errno < sys_nerr")
+                   "(1)")
+                  (("errno >= sys_nerr")
+                   "(0)")))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1087,7 +1103,7 @@ more.")
     (arguments
      '(#:configure-flags '("--enable-drafts")))
     (inputs
-     `(("zeromq" ,zeromq)))
+     (list zeromq))
     (home-page "https://zeromq.org")
     (synopsis "High-level C bindings for ØMQ")
     (description
@@ -1116,9 +1132,9 @@ between different versions of ØMQ.")
        #:tests? #f
        #:configure-flags '("-DCPPZMQ_BUILD_TESTS=OFF")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("zeromq" ,zeromq)))
+     (list zeromq))
     (home-page "https://zeromq.org")
     (synopsis "C++ bindings for the ØMQ messaging library")
     (description
@@ -1190,7 +1206,7 @@ written in the C programming language.")
     (native-inputs
      `(("python" ,python-wrapper)))
     (propagated-inputs
-     `(("zlib" ,zlib))) ; in the Libs.private field of rdkafka.pc
+     (list zlib)) ; in the Libs.private field of rdkafka.pc
     (home-page "https://github.com/edenhill/librdkafka")
     (synopsis "Apache Kafka C/C++ client library")
     (description
@@ -1221,19 +1237,19 @@ receiving NDP messages.")
 (define-public ethtool
   (package
     (name "ethtool")
-    (version "5.12")
+    (version "5.15")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kernel.org/software/network/"
                                   "ethtool/ethtool-" version ".tar.xz"))
               (sha256
                (base32
-                "01vgyczgldrfss98cqrgjz8krj6kwb29xjf8p08q0g85fnfgmpgm"))))
+                "0v8i592vwjypf111w0lfvaxdwhzybp6w600g28m9rm490c8xcvv8"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libmnl" ,libmnl)))
+     (list libmnl))
     (home-page "https://www.kernel.org/pub/software/network/ethtool/")
     (synopsis "Display or change Ethernet device settings")
     (description
@@ -1275,7 +1291,7 @@ Ethernet devices.")
                       (copy-file "ifstatus"
                                  (string-append bin "/ifstatus")))
                     #t)))))
-    (inputs `(("ncurses" ,ncurses)))
+    (inputs (list ncurses))
     (home-page "http://ifstatus.sourceforge.net/graphic/index.html")
     (synopsis "Text based network interface status monitor")
     (description
@@ -1325,9 +1341,7 @@ intended as a substitute for the PPPStatus and EthStatus projects.")
        ("libxml2" ,libxml2)          ;for XML_CATALOG_FILES
        ("xsltproc" ,libxslt)))
     (inputs
-     `(("libcap" ,libcap)
-       ("libidn2" ,libidn2)
-       ("openssl" ,openssl)))
+     (list libcap libidn2 openssl))
     (synopsis "Collection of network utilities")
     (description
      "This package contains a variety of tools for dealing with network
@@ -1367,7 +1381,7 @@ discover MTU along the way.
                (base32
                 "1rb9skch2kgqzigf19x8bzk211jdfjfdkrcvaqyj89jy2pkm3h61"))))
     (build-system gnu-build-system)
-    (inputs `(("ncurses" ,ncurses)))
+    (inputs (list ncurses))
     (home-page "http://www.roland-riegel.de/nload/")
     (synopsis "Realtime console network usage monitor")
     (description
@@ -1411,10 +1425,8 @@ test_parse_format_ipv(4(|_listen_all|_mapped_ipv6)|6)\\);")
        #:make-flags (list ,(string-append "CC=" (cc-for-target))
                           (string-append "prefix=" (assoc-ref %outputs "out")))
        #:test-target "test"))
-    (inputs `(("net-tools" ,net-tools)
-              ("zlib" ,zlib)))
-    (native-inputs `(("check" ,check-0.14)
-                     ("pkg-config" ,pkg-config)))
+    (inputs (list net-tools zlib))
+    (native-inputs (list check-0.14 pkg-config))
     (home-page "https://code.kryo.se/iodine/")
     (synopsis "Tunnel IPv4 data through a DNS server")
     (description "Iodine tunnels IPv4 data through a DNS server.  This
@@ -1451,7 +1463,7 @@ and up to 1 Mbit/s downstream.")
              (setenv "HAVE_ICONV" "1")
              #t)))))
     (inputs
-     `(("libidn2" ,libidn2)))
+     (list libidn2))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("perl" ,perl)
@@ -1472,14 +1484,14 @@ of the same name.")
 (define-public wireshark
   (package
     (name "wireshark")
-    (version "3.4.8")
+    (version "3.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.wireshark.org/download/src/wireshark-"
                            version ".tar.xz"))
        (sha256
-        (base32 "09fpvfj4m7glisj6p4zb8wylkrjkqqw69xnwnz4ah410zs6zm9sq"))))
+        (base32 "01nzzqig1z7ix4xb7ycs7wq3qqwq3ipdwp7rznynzmmibgyggj4w"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -1509,7 +1521,7 @@ of the same name.")
      `(("c-ares" ,c-ares)
        ("glib" ,glib)
        ("gnutls" ,gnutls)
-       ("google-brotli" ,google-brotli)
+       ("brotli" ,brotli)
        ("libcap" ,libcap)
        ("libgcrypt" ,libgcrypt)
        ("libnl" ,libnl)
@@ -1601,18 +1613,12 @@ round-robin fashion.")
                    (invoke "rst2man.py" "gandicli.man.rst")))
                #t))))))
     (native-inputs
-     `(("python-docutils" ,python-docutils)   ; for rst2man.py
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-tox" ,python-tox)))
+     (list python-docutils ; for rst2man.py
+           python-pytest python-pytest-cov python-tox))
     (propagated-inputs
-     `(("openssh" ,openssh)))           ; used by gandi/cli/modules/iass.py
+     (list openssh))           ; used by gandi/cli/modules/iass.py
     (inputs
-     `(("openssl" ,openssl)
-       ("python-click" ,python-click)
-       ("python-ipy" ,python-ipy)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-requests" ,python-requests)))
+     (list openssl python-click python-ipy python-pyyaml python-requests))
     (home-page "https://cli.gandi.net")
     (synopsis "Command-line interface to the Gandi.net Web API")
     (description
@@ -1689,9 +1695,7 @@ transmission protocol (SCTP) in a Go application.")
     (native-inputs
      `(("gettext" ,gettext-minimal)))
     (inputs
-     `(("fftw" ,fftw)
-       ("ncurses" ,ncurses)
-       ("openssl" ,openssl)))
+     (list fftw ncurses openssl))
     (arguments
      `(#:make-flags (list ,(string-append "CC=" (cc-for-target))
                           (string-append "DESTDIR=" (assoc-ref %outputs "out"))
@@ -1721,7 +1725,7 @@ application stack itself.")
        (sha256
         (base32 "0cw8299a080m42slsimz31xs0gjnh833gpbj2dsr4hkcinrn4iyd"))))
     (build-system python-build-system)
-    (inputs `(("curl" ,curl)))
+    (inputs (list curl))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -1748,14 +1752,14 @@ TCP connection, TLS handshake and so on) in the terminal.")
 (define-public squid
   (package
     (name "squid")
-    (version "4.15")
+    (version "4.17")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://www.squid-cache.org/Versions/v4/squid-"
                            version ".tar.xz"))
        (sha256
-        (base32 "09aaz0hi7q4s5jalgl5i5fakmgzv5akf03gnajlah498mgjs94xn"))))
+        (base32 "060lwghn6q982bay11ia38c86kd8w6mjgy68n58v31kwik08m4nb"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -1770,17 +1774,16 @@ TCP connection, TLS handshake and so on) in the terminal.")
                (("/bin/true")
                 (search-input-file inputs "/bin/true"))))))))
     (inputs
-     `(("perl" ,perl)
-       ("openldap" ,openldap)
-       ("linux-pam" ,linux-pam)
-       ("libcap" ,libcap)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("expat" ,expat)
-       ("libxml2" ,libxml2)
-       ("openssl" ,openssl)))
+     (list perl
+           openldap
+           linux-pam
+           libcap
+           cyrus-sasl
+           expat
+           libxml2
+           openssl))
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit pkg-config))
     (synopsis "Web caching proxy")
     (description "Squid is a caching proxy for the Web supporting HTTP, HTTPS,
 FTP, and more.  It reduces bandwidth and improves response times by caching and
@@ -1812,10 +1815,9 @@ reusing frequently-requested web pages.")
                 "true"))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (synopsis "Console based live network and disk I/O bandwidth monitor")
     (description "Bandwidth Monitor NG is a small and simple console based
 live network and disk I/O bandwidth monitor.")
@@ -1835,19 +1837,15 @@ live network and disk I/O bandwidth monitor.")
         (base32 "0ix2k64qg7x3w0bzdsbk1m50kcpq1ws59g3zkwiafvpwdr4gs2sg"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list autoconf automake libtool pkg-config which))
     (inputs
-     `(("libgcrypt" ,libgcrypt)
-       ("libnl" ,libnl)
-       ("libpcap" ,libpcap)
-       ("ethtool" ,ethtool)
-       ("pcre" ,pcre)
-       ("sqlite" ,sqlite)
-       ("zlib" ,zlib)))
+     (list libgcrypt
+           libnl
+           libpcap
+           ethtool
+           pcre
+           sqlite
+           zlib))
     (arguments
      `(#:configure-flags
        (list "CFLAGS=-fcommon"
@@ -1943,10 +1941,9 @@ non-existing entropy of some access points.")
                #t))))
        #:tests? #f))                    ; there are no tests
     (inputs
-     `(("libpcap" ,libpcap)))
+     (list libpcap))
     (propagated-inputs
-     `(("aircrack-ng" ,aircrack-ng)
-       ("pixiewps" ,pixiewps)))
+     (list aircrack-ng pixiewps))
     (home-page "https://github.com/t6x/reaver-wps-fork-t6x/")
     (synopsis "Attack tool for Wi-Fi Protected Setup")
     (description "Reaver performs a brute force attack against an access
@@ -1968,9 +1965,9 @@ reconfigured.")
         (base32 "0x4bvirmf0kphks19jwgva00zz73zx344218dfaiv8gigrw3yg4m"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-tcp" ,perl-test-tcp)))
+     (list perl-test-tcp))
     (propagated-inputs
-     `(("perl-sys-syscall" ,perl-sys-syscall)))
+     (list perl-sys-syscall))
     (home-page "https://metacpan.org/release/Danga-Socket")
     (synopsis "Event loop and event-driven async socket base class")
     (description
@@ -1994,9 +1991,9 @@ loop.")
         (base32 "074adrlvkiahj1fdc9nvb95dpfyjzm2jzhi90m8xaw4bw5ipcbzy"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-requires" ,perl-test-requires)))
+     (list perl-test-requires))
     (propagated-inputs
-     `(("perl-netaddr-ip" ,perl-netaddr-ip)))
+     (list perl-netaddr-ip))
     (home-page "https://metacpan.org/release/Data-Validate-IP")
     (synopsis "IPv4 and IPv6 validation methods")
     (description
@@ -2024,7 +2021,7 @@ private (reserved).")
        (base32 "05f6rzvvmm6xd0p100k5y9kczdzqgala09ra8bccc18n6y74l0h0"))))
   (build-system perl-build-system)
   (inputs
-    `(("perl-digest-hmac" ,perl-digest-hmac)))
+    (list perl-digest-hmac))
   (home-page "https://www.net-dns.org/")
   (synopsis
     "Perl Interface to the Domain Name System")
@@ -2081,8 +2078,8 @@ definitions and structure manipulators for Perl.")
        (search-patches "perl-net-dns-resolver-programmable-fix.patch"))))
   (build-system perl-build-system)
   (native-inputs
-    `(("perl-module-build" ,perl-module-build)))
-  (inputs `(("perl-net-dns" ,perl-net-dns)))
+    (list perl-module-build))
+  (inputs (list perl-net-dns))
   (home-page
     "https://metacpan.org/release/Net-DNS-Resolver-Programmable")
   (synopsis
@@ -2105,7 +2102,7 @@ offline emulation of DNS.")
                 "0m3rxpkv1b9121srvbqkrgzg4m8mnydiydqv34in1i1ixwrl6jn9"))))
     (build-system perl-build-system)
     (inputs
-     `(("perl-net-dns" ,perl-net-dns)))
+     (list perl-net-dns))
     (home-page "https://metacpan.org/release/Net-DNS-Resolver-Mock")
     (synopsis "Mock DNS Resolver object for testing")
     (description
@@ -2171,8 +2168,7 @@ It is intended primarily for use in testing.")
              (("-lnsl") ""))
            #t)))))
   (inputs
-    `(("perl-net-cidr-lite" ,perl-net-cidr-lite)
-      ("perl-socket6" ,perl-socket6)))
+    (list perl-net-cidr-lite perl-socket6))
   (home-page
     "https://metacpan.org/release/Net-Patricia")
   (synopsis
@@ -2218,10 +2214,8 @@ It is intended primarily for use in testing.")
           "1fqypz6qa5rw2d5y2zq7f49frwra0aln13nhq5gi514j2zx21q45"))))
   (build-system perl-build-system)
   (native-inputs
-    `(("perl-module-build" ,perl-module-build)
-      ("perl-test-pod" ,perl-test-pod)
-      ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
-  (propagated-inputs `(("perl-socket6" ,perl-socket6)))
+    (list perl-module-build perl-test-pod perl-test-pod-coverage))
+  (propagated-inputs (list perl-socket6))
   (arguments `(;; Need network socket API
                #:tests? #f))
   (home-page
@@ -2246,10 +2240,9 @@ sockets in Perl.")
                 "01cbgz6lc3v59sldqk96l1281kp2qxnsa2qwlf2ikvjlyr1gi2dw"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("dbus" ,dbus)
-       ("zlib" ,zlib)))
+     (list dbus zlib))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -2267,14 +2260,14 @@ libproxy only have to specify which proxy to use.")
 (define-public proxychains-ng
   (package
     (name "proxychains-ng")
-    (version "4.14")
+    (version "4.15")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://ftp.barfooze.de/pub/sabotage/tarballs/"
                            "proxychains-ng-" version ".tar.xz"))
        (sha256
-        (base32 "1bmhfbl1bzc87vl0xwr1wh5xvslfyc41nl2hqzhbj258p0sy004x"))))
+        (base32 "10ch6rmbw2lwrq1bc9w4glxkws7hvsy5ihasvzf3yg053xzsn1rj"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; there are no tests
@@ -2287,12 +2280,10 @@ libproxy only have to specify which proxy to use.")
              (substitute* "configure"
                (("\\*\\) break ;;" line)
                 (string-append "[A-Z]*) shift ;;\n"
-                               line)))
-             #t))
+                               line)))))
          (add-before 'configure 'set-up-environment
            (lambda _
-             (setenv "CC" "gcc")
-             #t)))))
+             (setenv "CC" ,(cc-for-target)))))))
     (synopsis "Redirect any TCP connection through a proxy or proxy chain")
     (description "Proxychains-ng is a preloader which hooks calls to sockets
 in dynamically linked programs and redirects them through one or more SOCKS or
@@ -2313,7 +2304,7 @@ HTTP proxies.")
         (base32 "1p6f9mby86af6cs7pv6h48032ip9g32c05cb7d9mimam8lchz3x3"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Network communication layer on top of UDP")
     (description
      "ENet's purpose is to provide a relatively thin, simple and robust network
@@ -2340,18 +2331,15 @@ library remains flexible, portable, and easily embeddable.")
         (base32 "19h32dn0076p3s7dn35qi5yp2xvnxw9sqphppmn72vyb8caxvw1z"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(;; Test dependencies.
-       ("lcov" ,lcov)
-       ("perl" ,perl)
-       ("perl-conf-libconfig" ,perl-conf-libconfig)
-       ("perl-io-socket-inet6" ,perl-io-socket-inet6)
-       ("perl-socket6" ,perl-socket6)
-       ("psmisc" ,psmisc)))             ; for ‘killall’
+     (list ;; Test dependencies.
+           lcov
+           perl
+           perl-conf-libconfig
+           perl-io-socket-inet6
+           perl-socket6
+           psmisc))             ; for ‘killall’
     (inputs
-     `(("libcap" ,libcap)
-       ("libconfig" ,libconfig)
-       ("pcre" ,pcre)
-       ("tcp-wrappers" ,tcp-wrappers)))
+     (list libcap libconfig pcre tcp-wrappers))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2440,8 +2428,7 @@ the bandwidth, loss, and other parameters.")
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
-     `(("libpcap" ,libpcap)
-       ("ncurses" ,ncurses)))
+     (list libpcap ncurses))
     (arguments
      `(#:make-flags `(,,(string-append "CC=" (cc-for-target))
                       ,(string-append "PREFIX=" %output)
@@ -2482,11 +2469,8 @@ gone wild and are suddenly taking up your bandwidth.")
                        (assoc-ref %build-inputs "ncurses") "/lib")
         (string-append "--with-tlslib=GnuTLS"))))
     (build-system gnu-build-system)
-    (inputs `(("gnutls" ,gnutls)
-              ("libxml2" ,libxml2)
-              ("ncurses" ,ncurses)
-              ("zlib" ,zlib)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list gnutls libxml2 ncurses zlib))
+    (native-inputs (list pkg-config))
     (home-page "https://github.com/nzbget/nzbget")
     (synopsis "Usenet binary file downloader")
     (description
@@ -2501,7 +2485,7 @@ procedure calls (RPCs).")
 (define-public openvswitch
   (package
     (name "openvswitch")
-    (version "2.13.3")
+    (version "2.16.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2509,21 +2493,46 @@ procedure calls (RPCs).")
                     version ".tar.gz"))
               (sha256
                (base32
-                "1wc5zspy9aln7di7m9a1qy4lv3h05gmhgd1nffhb9nxdcxqgnpgp"))))
+                "1x0k0pw6jykrfgb8rq56bp2ghxd433d55pmr8mxy9gbzw1nc1vbi"))))
     (build-system gnu-build-system)
     (arguments
-     '(;; FIXME: many tests fail with:
-       ;;    […]
-       ;;    test -e $OVS_RUNDIR/ovs-vswitchd.pid
-       ;;    ovs-appctl -t ovs-vswitchd exit
-       ;;    hard failure
-       #:tests? #f
-       #:configure-flags
+     '(#:configure-flags
        '("--enable-shared"
+         "--disable-static"        ; XXX still installs libopenvswitchavx512.a
          "--localstatedir=/var"
          "--with-dbdir=/var/lib/openvswitch")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'use-absolute-/bin/sh
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((bash (assoc-ref inputs "bash-minimal")))
+               (substitute* "ovsdb/ovsdb-server.c"
+                 (("/bin/sh") (string-append bash "/bin/sh"))))))
+         (add-before 'check 'adjust-tests
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((bash (assoc-ref inputs "bash-minimal"))
+                    (/bin/sh (string-append bash "/bin/sh")))
+               (with-fluids ((%default-port-encoding "ISO-8859-1"))
+                 (substitute* (find-files "tests" ".*(run|testsuite)$")
+                   (("#! /bin/sh")
+                    (string-append "#! " /bin/sh))
+
+                   ;; The tests use 'kill -0' to check whether a test has
+                   ;; completed, but it does not work in the build container
+                   ;; because zombies are not reaped automatically (PID 1 is
+                   ;; the builder script).  Change to something that handles
+                   ;; undead processes.
+                   (("kill -0")
+                    "kill-0")))
+               (mkdir "/tmp/bin")
+               (call-with-output-file "/tmp/bin/kill-0"
+                 (lambda (port)
+                   (format port "#!~a
+ps --no-header -p $1 -o state= | grep -qv '^Z$'"
+                           /bin/sh)))
+               (chmod "/tmp/bin/kill-0" #o755)
+               (setenv "PATH"
+                       (string-append "/tmp/bin:" (getenv "PATH"))))))
          (replace 'install
            (lambda _
              (invoke "make"
@@ -2538,10 +2547,11 @@ procedure calls (RPCs).")
        ("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)
        ;; for testing
+       ("bash" ,bash)                   ;for 'compgen'
+       ("procps" ,procps)
        ("util-linux" ,util-linux)))
     (inputs
-     `(("libcap-ng" ,libcap-ng)
-       ("openssl" ,openssl)))
+     (list bash-minimal libcap-ng openssl))
     (synopsis "Virtual network switch")
     (home-page "https://www.openvswitch.org/")
     (description
@@ -2660,9 +2670,9 @@ enabled due to license conflicts between the BSD advertising clause and the GPL.
                (install-file "DESIGN.md" misc)
                #t))))))
     (native-inputs
-     `(("procps" ,procps))) ; `ps` is used by the test suite.
+     (list procps)) ; `ps` is used by the test suite.
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (home-page "https://www.tarsnap.com/spiped.html")
     (synopsis "Create secure pipes between sockets")
     (description "Spiped (pronounced \"ess-pipe-dee\") is a utility for creating
@@ -2688,11 +2698,8 @@ does not use SSH and requires a pre-shared symmetric key.")
               (patches
                (search-patches "quagga-reproducible-build.patch"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("perl" ,perl)
-                     ("dejagnu" ,dejagnu)))
-    (inputs `(("readline" ,readline)
-              ("c-ares" ,c-ares)))
+    (native-inputs (list pkg-config perl dejagnu))
+    (inputs (list readline c-ares))
     (synopsis "Routing Software Suite")
     (description "Quagga is a routing software suite, providing implementations
 of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms.
@@ -2741,9 +2748,7 @@ updates to the zebra daemon.")
                  #t))))))
       ;; TODO Add libnetfilter-queue once packaged.
       (inputs
-       `(("libpcap" ,libpcap)
-         ("openssl" ,openssl)
-         ("perl" ,perl)))
+       (list libpcap openssl perl))
       (home-page "https://github.com/vanhauser-thc/thc-ipv6")
       (synopsis "IPv6 security research toolkit")
       (description "The THC IPv6 Toolkit provides command-line tools and a library
@@ -2767,11 +2772,9 @@ newer and only works on Ethernet network interfaces.")
          "0ylzriv4pwh76344abzl1w219x188gshbycbna35gsyfp09c7z82"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libconfuse" ,libconfuse)
-       ("libnl" ,libnl)
-       ("ncurses" ,ncurses)))
+     (list libconfuse libnl ncurses))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Bandwidth monitor")
     (description "bmon is a monitoring and debugging tool to capture
 networking-related statistics and prepare them visually in a human-friendly
@@ -2806,9 +2809,8 @@ interface and a programmable text output for scripting.")
              (apply invoke "make" "-C" "doc" "doc"
                     make-flags))))))
     (native-inputs
-     `(;; To build the documentation, Doxygen and Perl is required.
-       ("doxygen" ,doxygen)
-       ("perl" ,perl)))
+     (list ;; To build the documentation, Doxygen and Perl is required.
+           doxygen perl))
     (home-page "https://github.com/libnet/libnet")
     (synopsis "Framework for low-level network packet construction")
     (description
@@ -2832,8 +2834,7 @@ can be whipped up with little effort.")
         (base32 "1glxvlqskcmjkxlqk9i12hcfaxb389cx2n8ji7776gmix3aq4z1z"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libcap" ,libcap)
-       ("ncurses" ,ncurses)))
+     (list libcap ncurses))
     (arguments
      `(#:tests? #f))                    ; tests require network access
     (home-page "https://www.bitwizard.nl/mtr/")
@@ -2886,15 +2887,9 @@ displays the results in real time.")
          "--enable-webserver"
          "--with-denoise-level=0")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext-minimal" ,gettext-minimal)
-       ("perl" ,perl)))
+     (list autoconf automake gettext-minimal perl))
     (inputs
-     `(("zlib" ,zlib)
-       ("crypto++" ,crypto++)
-       ("libpng" ,libpng)
-       ("wxwidgets-gtk2" ,wxwidgets-gtk2)))
+     (list zlib crypto++ libpng wxwidgets-gtk2))
     (home-page "https://amule.org/")
     (synopsis "Peer-to-peer client for the eD2K and Kademlia networks")
     (description
@@ -2918,9 +2913,7 @@ remotely.")
                (base32
                 "13596507ma1474cjqzxym5jlvcshvw7sjhw80rdz788gyz6kz90b"))))
     (build-system gnu-build-system)
-    (inputs `(("zeromq" ,zeromq)
-              ("czmq" ,czmq)
-              ("libsodium" ,libsodium)))
+    (inputs (list zeromq czmq libsodium))
     (synopsis "Framework for proximity-based peer-to-peer applications")
     (description "Zyre provides reliable group messaging over local area
 networks using zeromq.  It has these key characteristics:
@@ -2953,9 +2946,7 @@ networks using zeromq.  It has these key characteristics:
                 "17z2y2r9xkixhr9bxr50m77fh710afl30s7jdhbxrvf56vmal2jr"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (home-page "https://git.pengutronix.de/cgit/tools/libsocketcan")
     (synopsis "SocketCAN user-space library")
     (description "This library allows controlling basic functions in SocketCAN
@@ -3002,22 +2993,20 @@ eight bytes) tools
     ;; Either BSD-3 or GPL-2 can be used.
     (license (list license:bsd-3 license:gpl2))))
 
-;;; This is an old version required by rested.
-(define-public asio-1.12
+(define-public asio
   (package
     (name "asio")
-    (version "1.12.2")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/asio/asio/"
                            version " (Stable)/asio-" version ".tar.bz2"))
        (sha256
-        (base32 "1akray4l3hgahmb92sbvsqg128c7g7s92jrkf1sp1fjnfjrxq9sf"))))
+        (base32 "0335kyxdnwnp96sh9p3jq1s87qnfmp5l7hzlcdxbbwfzrb9p8hr0"))))
     (build-system gnu-build-system)
     (inputs
-     `(("boost" ,boost)
-       ("openssl" ,openssl)))
+     (list boost openssl))
     (arguments
      `(#:configure-flags
        (list
@@ -3030,53 +3019,37 @@ low-level I/O programming that provides developers with a consistent
 asynchronous model using a modern C++ approach.")
     (license license:boost1.0)))
 
-(define-public asio
+(define-public shadowsocks
   (package
-    (inherit asio-1.12)
-    (version "1.18.2")
+    (name "shadowsocks")
+    (version "2.9.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "mirror://sourceforge/asio/asio/"
-                           version " (Stable)/asio-" version ".tar.bz2"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/shadowsocks/shadowsocks")
+             (commit version)))
        (sha256
-        (base32 "1wpr4ymv63a192fmymwyxd7v0bv575v022gz53y0mcflhr2mvh1s"))))))
-
-(define-public shadowsocks
-  ;; There are some security fixes after the last release.
-  (let* ((commit "e332ec93e9c90f1cbee676b022bf2c5d5b7b1239")
-         (revision "0")
-         (version (git-version "2.8.2" revision commit)))
-    (package
-      (name "shadowsocks")
-      (version version)
-      (home-page "https://github.com/shadowsocks/shadowsocks")
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url home-page)
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "1idd9b4f2pnhcpk1bh030hqg5zq25gkwxd53xi3c0cj242w7sp2j"))
-                (file-name (git-file-name name version))))
-      (inputs
-       `(("openssl" ,openssl)))
-      (arguments
-       '(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'patch-crypto-paths
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "shadowsocks/shell.py"
-                 (("config\\.get\\('libopenssl', None\\)")
-                  (format #f "config.get('libopenssl', ~s)"
-                          (string-append
-                           (assoc-ref inputs "openssl")
-                           "/lib/libssl.so")))))))))
-      (build-system python-build-system)
-      (synopsis "Fast tunnel proxy that helps you bypass firewalls")
-      (description
-       "This package is a fast tunnel proxy that helps you bypass firewalls.
+        (base32 "02mp5905nz02d7amb4zc77rcrkxmvy8mf5rci7mvy58g24lvbw25"))
+       (file-name (git-file-name name version))))
+    (inputs
+     (list openssl))
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-crypto-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "shadowsocks/shell.py"
+               (("config\\.get\\('libopenssl', None\\)")
+                (format #f "config.get('libopenssl', ~s)"
+                        (string-append
+                         (assoc-ref inputs "openssl")
+                         "/lib/libssl.so")))))))))
+    (build-system python-build-system)
+    (home-page "https://github.com/shadowsocks/shadowsocks")
+    (synopsis "Fast tunnel proxy that helps you bypass firewalls")
+    (description
+     "This package is a fast tunnel proxy that helps you bypass firewalls.
 
 Features:
 @itemize
@@ -3086,7 +3059,7 @@ Features:
 @item Workers and graceful restart
 @item Destination IP blacklist
 @end itemize")
-      (license license:asl2.0))))
+    (license license:asl2.0)))
 
 (define-public net-snmp
   (package
@@ -3146,17 +3119,12 @@ Features:
                                " -NET")))
              #t)))))
     (inputs
-     `(("libnl" ,libnl)
-       ("ncurses" ,ncurses)             ; for the ‘apps’
-       ("openssl" ,openssl)
-       ("perl" ,perl)))
+     (list libnl ncurses ; for the ‘apps’
+           openssl perl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-
-       ;; For tests only.
-       ("net-tools" ,net-tools)
-       ("coreutils" ,coreutils)
-       ("grep" ,grep)))
+     (list pkg-config
+           ;; For tests only.
+           net-tools coreutils grep))
     (home-page "http://www.net-snmp.org/")
     (synopsis "Simple Network Management Protocol library and tools")
     (description "The @dfn{Simple Network Management Protocol} (SNMP) is a
@@ -3203,7 +3171,7 @@ SNMP v3 using both IPv4 and IPv6.")
                  (("\tsetcap cap_net.*$") "")))
              #t)))))
     (inputs
-     `(("libpcap" ,libpcap)))
+     (list libpcap))
     (home-page "https://github.com/GNS3/ubridge/")
     (synopsis "Bridge for UDP tunnels, Ethernet, TAP and VMnet interfaces")
     (description "uBridge is a simple program to create user-land bridges
@@ -3226,10 +3194,7 @@ Ethernet and TAP interfaces is supported.  Packet capture is also supported.")
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
-     `(("curl" ,curl)
-       ("libpcap" ,libpcap)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list curl libpcap openssl zlib))
     (arguments
      `(#:make-flags
        (list ,(string-append "CC=" (cc-for-target))
@@ -3268,7 +3233,7 @@ packets from wireless devices for use with hashcat or John the Ripper.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (home-page "https://github.com/ZerBea/hcxdumptool")
     (synopsis "Small tool to capture packets from wlan devices")
     (description
@@ -3309,7 +3274,7 @@ never see any machines other than the one Dante is running on.")
 (define-public restbed
   (package
     (name "restbed")
-    (version "4.7")
+    (version "4.8")
     (source
      (origin
        (method git-fetch)
@@ -3318,19 +3283,13 @@ never see any machines other than the one Dante is running on.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "055qicb773a599dsqbcz5xf0xj1wpk33mdrkyi0fsmyjmn8d2p9d"))))
+        (base32 "15j09x36i6zj6innl0w1mfzlc56qmjwrs82my8dsagqa2ikd08ya"))))
     (build-system cmake-build-system)
     (inputs
-     `(("asio" ,asio-1.12)
-       ("catch" ,catch-framework)
-       ("openssl" ,openssl)))
+     (list asio catch-framework openssl))
     (arguments
-     `(#:tests? #f
-       #:configure-flags
-       '("-DBUILD_TESTS=NO"
-         "-DBUILD_EXAMPLES=NO"
-         "-DBUILD_SSL=NO"
-         "-DBUILD_SHARED=NO")
+     `(#:configure-flags
+       '("-DBUILD_SSL=NO")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'apply-patches-and-fix-paths
@@ -3361,7 +3320,7 @@ communication over HTTP.")
 (define-public restinio
   (package
     (name "restinio")
-    (version "0.6.13")
+    (version "0.6.14")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3370,20 +3329,18 @@ communication over HTTP.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0gb0yc88hdzwm08zdiviay6s08q427za33kfbygib7bdzp2wr2dm"))))
+                "0j44mglsljwkw49583hcsrl5ck2g56n9srnm10kpbsz2dx5apx98"))))
     (build-system cmake-build-system)
     (inputs                             ; TODO: Need to force-keep references on some inputs, e.g. boost.
-     `(("zlib" ,zlib)
-       ("catch2" ,catch-framework2)
-       ("openssl" ,openssl)
-       ("boost" ,boost)
-       ("pcre" ,pcre)
-       ("pcre2" ,pcre2)
-       ("sobjectizer" ,sobjectizer)))
+     (list zlib
+           catch-framework2
+           openssl
+           boost
+           pcre
+           pcre2
+           sobjectizer))
     (propagated-inputs
-     `(("asio" ,asio)
-       ("fmt" ,fmt)
-       ("http-parser" ,http-parser)))
+     (list asio fmt http-parser))
     (arguments
      `(#:configure-flags '("-DRESTINIO_INSTALL=on")
        #:tests? #f ; TODO: The tests are called from the root CMakelist, need RESTINIO_TEST=on.
@@ -3391,8 +3348,7 @@ communication over HTTP.")
        (modify-phases %standard-phases
          (add-after 'unpack 'change-directory
            (lambda _
-             (chdir "dev/restinio")
-             #t)))))
+             (chdir "dev/restinio"))))))
     (home-page "https://stiffstream.com/en/products/restinio.html")
     (synopsis "C++14 library that gives you an embedded HTTP/Websocket server")
     (description "RESTinio is a header-only C++14 library that gives you an embedded
@@ -3419,24 +3375,24 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
       (outputs '("out" "tools" "debug"))
       (build-system cmake-build-system)
       (inputs
-       `(("argon2" ,argon2)
-         ("nettle" ,nettle)
-         ("readline" ,readline)
-         ("jsoncpp" ,jsoncpp)
-         ("openssl" ,openssl)             ;required for the DHT proxy
-         ("fmt" ,fmt)))
+       (list argon2
+             nettle
+             readline
+             jsoncpp
+             openssl ;required for the DHT proxy
+             fmt))
       (propagated-inputs
-       `(("gnutls" ,gnutls)               ;included in opendht/crypto.h
-         ("msgpack" ,msgpack)             ;included in several installed headers
-         ("restinio" ,restinio)))         ;included in opendht/http.h
+       (list gnutls ;included in opendht/crypto.h
+             msgpack ;included in several installed headers
+             restinio))         ;included in opendht/http.h
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)
-         ("python" ,python)
-         ("python-cython" ,python-cython)
-         ("libtool" ,libtool)
-         ("cppunit" ,cppunit)))
+       (list autoconf
+             automake
+             pkg-config
+             python
+             python-cython
+             libtool
+             cppunit))
       (arguments
        `(#:imported-modules ((guix build python-build-system) ;for site-packages
                              ,@%cmake-build-system-modules)
@@ -3480,7 +3436,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
                  (rename-file (string-append out "/bin")
                               (string-append tools "/bin"))
                  (wrap-program (string-append tools "/bin/dhtcluster")
-                   `("PYTHONPATH" prefix (,site-packages)))))))))
+                   `("GUIX_PYTHONPATH" prefix (,site-packages)))))))))
       (home-page "https://github.com/savoirfairelinux/opendht/")
       (synopsis "Lightweight Distributed Hash Table (DHT) library")
       (description "OpenDHT provides an easy to use distributed in-memory data
@@ -3522,16 +3478,9 @@ A very simple IM client working over the DHT.
                 "1r7gh5h27ii7d1d0z0x48wx7hs8vvympv3gqvy3cwzg05q5vk9xs"))))
     (build-system gnu-build-system)
     (inputs
-     `(("c-ares" ,c-ares)
-       ("json-c" ,json-c)
-       ("libcap" ,libcap)
-       ("libyang" ,libyang)
-       ("readline" ,readline)))
+     (list c-ares json-c libcap libyang readline))
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)
-       ("python-pytest" ,python-pytest)))
+     (list perl pkg-config python-wrapper python-pytest))
     (home-page "https://frrouting.org/")
     (synopsis "IP routing protocol suite")
     (description "FRRouting (FRR) is an IP routing protocol suite which includes
@@ -3550,11 +3499,9 @@ protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP. ")
                (base32
                 "1xp7f0im1v8pqqx3xqyfkd1nsxk8vnbqgrdrwnwhg8r5xs1xxlhr"))))
     (inputs
-     `(("libssh" ,libssh)
-       ("readline" ,readline)))
+     (list libssh readline))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (arguments
      `(#:configure-flags '("--localstatedir=/var" "--enable-ipv6")
        #:phases
@@ -3587,9 +3534,7 @@ powerful route filtering syntax and an easy-to-use configuration interface.")
                 "0ngng9a9ra5w0mp2813yy2ihfibyx10ns6v5icdcp99db608xax7"))))
     (build-system gnu-build-system)
     (inputs
-     `(("dbus" ,dbus)
-       ("ell" ,ell)
-       ("readline" ,readline)))
+     (list dbus ell readline))
     (native-inputs
      `(("pkgconfig" ,pkg-config)
        ("python" ,python)
@@ -3639,9 +3584,8 @@ maximum extent possible.")
     (arguments
      `(#:configure-flags
        (list "-DENABLE_BUILD_TESTS=ON" "-DENABLE_LYD_PRIV=ON")))
-    (propagated-inputs `(("pcre" ,pcre)))
-    (native-inputs `(("cmocka" ,cmocka)
-                     ("pkg-config" ,pkg-config)))
+    (propagated-inputs (list pcre))
+    (native-inputs (list cmocka pkg-config))
     (home-page "https://github.com/CESNET/libyang")
     (synopsis "YANG data modelling language library")
     (description "libyang is a YANG data modelling language parser and toolkit
@@ -3652,18 +3596,18 @@ written (and providing API) in C.  Current implementation covers YANG 1.0 (RFC
 (define-public batctl
   (package
    (name "batctl")
-   (version "2020.4")
+   (version "2021.4")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "https://downloads.open-mesh.org/batman/releases/batman-adv-"
                          version "/batctl-" version ".tar.gz"))
      (sha256
-      (base32 "05rrpfbpdhxn5zgdps849qls2ifis6a94cjryb60d4y1nc2n0d7w"))))
+      (base32 "1ryqz90av2p5pgmmpi1afmycd18zhpwz1i4f7r0s359jis86xndn"))))
    (inputs
-    `(("libnl" ,libnl)))
+    (list libnl))
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    (list pkg-config))
    (build-system gnu-build-system)
    (arguments
     `(#:tests? #f
@@ -3672,8 +3616,9 @@ written (and providing API) in C.  Current implementation covers YANG 1.0 (RFC
       #:phases (modify-phases %standard-phases (delete 'configure))
       #:make-flags
       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
-            (string-append "PKG_CONFIG=" (assoc-ref %build-inputs "pkg-config")
-                           "/bin/pkg-config")
+            (string-append "PKG_CONFIG="
+                           (search-input-file %build-inputs
+                                              "/bin/pkg-config"))
             ,(string-append "CC=" (cc-for-target)))))
    (home-page "https://www.open-mesh.org/projects/batman-adv/wiki/Wiki")
    (synopsis "Management tool for the mesh networking BATMAN protocol")
@@ -3706,8 +3651,7 @@ module @code{batman-adv}, for Layer 2.")
                (invoke "make" "doc/pagekite.1")
                (install-file "doc/pagekite.1" (string-append man "/man1"))))))))
     (inputs
-     `(("python-six" ,python-six)
-       ("python-socksipychain" ,python-socksipychain)))
+     (list python-six python-socksipychain))
     (home-page "https://pagekite.net/")
     (synopsis "Make localhost servers publicly visible")
     (description
@@ -3880,13 +3824,9 @@ some traces for unprivileged users.")
     (arguments
      `(#:parallel-build? #f))           ; Build fails if #t.
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (inputs
-     `(("python" ,python)
-       ("libpcap" ,libpcap)
-       ("wolfssl" ,wolfssl)))
+     (list python libpcap wolfssl))
     (home-page "https://github.com/virtualsquare/vde-2")
     (synopsis "Virtual Distributed Ethernet")
     (description "VDE is a set of programs to provide virtual software-defined
@@ -3928,10 +3868,7 @@ cables.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (inputs
-     `(("lua" ,lua)
-       ("openssl" ,openssl)
-       ("pcre2" ,pcre2)
-       ("zlib" ,zlib)))
+     (list lua openssl pcre2 zlib))
     (home-page "https://www.haproxy.org/")
     (synopsis "Reliable, high performance TCP/HTTP load balancer")
     (description "HAProxy is a free, very fast and reliable solution offering
@@ -3946,14 +3883,14 @@ thousands of connections is clearly realistic with today's hardware.")
 (define-public lldpd
   (package
     (name "lldpd")
-    (version "1.0.12")
+    (version "1.0.13")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://media.luffy.cx/files/lldpd/lldpd-"
                            version ".tar.gz"))
        (sha256
-        (base32 "1wfs50b0694dm60ryjfmxgkxxsqpp9sxqbc4laad364wbddwd56i"))
+        (base32 "00a7v24qhxw80yk2v79wrkfn7br4r8pcajyrpz8j0xx2v1zq4ffn"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -3974,12 +3911,9 @@ thousands of connections is clearly realistic with today's hardware.")
                        "/lib/systemd/system"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libevent" ,libevent)
-       ("libxml2" ,libxml2)
-       ("openssl" ,openssl)
-       ("readline" ,readline)))
+     (list libevent libxml2 openssl readline))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://vincentbernat.github.io/lldpd/")
     (synopsis "Locate neighbors of your network equipment")
     (description
@@ -4039,20 +3973,19 @@ stamps.")
 (define-public nbd
   (package
     (name "nbd")
-    (version "3.21")
+    (version "3.22")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "mirror://sourceforge/nbd/nbd/" version
                             "/nbd-" version ".tar.xz"))
         (sha256
-         (base32 "1ydylvvayi4w2d08flji9q03sl7y8hn0c26vsay3nwwikprqls77"))))
+         (base32 "1ljx6vb3lja5p0lr28vmjp27n9d6krlvq49bhqbcm2ns8vxd1vh6"))))
     (build-system gnu-build-system)
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list bison pkg-config which))
     (home-page "https://nbd.sourceforge.io/")
     (synopsis "NBD client and server")
     (description "This package provides the NBD (Network Block Devices)
@@ -4063,7 +3996,7 @@ network.")
 (define-public yggdrasil
   (package
     (name "yggdrasil")
-    (version "0.3.16")
+    (version "0.4.1")
     (source
      (origin
        (method git-fetch)
@@ -4074,7 +4007,7 @@ network.")
          (recursive? #t)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0vyd7a333hwn6j1lv1g9sicw74a4qk982bsi3cfdhjlv6hsjwmil"))
+        (base32 "1ajhn0z58ap9jldip7mqj78drmgg4645zfsxsy004cfkm60fasnx"))
        (patches (search-patches "yggdrasil-extra-config.patch"))))
     (build-system go-build-system)
     (arguments
@@ -4082,50 +4015,42 @@ network.")
        ;; TODO: figure out how tests are run
        #:tests? #f
        #:install-source? #f
-       #:phases (modify-phases %standard-phases
-                  (replace 'build
-                    (lambda _
-                      (for-each
-                       (lambda (c)
-                         (invoke
-                          "go" "build" "-v" "-ldflags=-s -w"
-                          (string-append
-                           "github.com/yggdrasil-network/yggdrasil-go/cmd/" c)))
-                       (list "yggdrasil" "yggdrasilctl"))
-                      #t))
-                  (replace 'install
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      (let* ((out (assoc-ref outputs "out"))
-                             (bin (string-append out "/bin/"))
-                             (doc (string-append out "/share/doc/yggdrasil/")))
-                        (mkdir-p bin)
-                        (for-each
-                         (lambda (f)
-                           (install-file f bin))
-                         (list "yggdrasil" "yggdrasilctl"))
-                        (mkdir-p doc)
-                        (copy-recursively
-                         (string-append
-                          "src/github.com/yggdrasil-network/yggdrasil-go/"
-                          "doc/yggdrasil-network.github.io")
-                         doc))
-                      #t)))))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'build
+           (lambda* (#:key import-path build-flags #:allow-other-keys)
+             (for-each
+               (lambda (directory)
+                 ((assoc-ref %standard-phases 'build)
+                  #:build-flags build-flags
+                  #:import-path directory))
+               (list "github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasil"
+                     "github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasilctl"
+                     "github.com/yggdrasil-network/yggdrasil-go/cmd/genkeys"))
+             #t)))))
     ;; https://github.com/kardianos/minwinsvc is windows only
     (propagated-inputs
-     `(("go-github-com-arceliar-phony" ,go-github-com-arceliar-phony)
-       ("go-github-com-cheggaaa-pb" ,go-github-com-cheggaaa-pb)
-       ("go-github-com-gologme-log" ,go-github-com-gologme-log)
-       ("go-github-com-hashicorp-go-syslog" ,go-github-com-hashicorp-go-syslog)
-       ("go-github-com-hjson-hjson-go" ,go-github-com-hjson-hjson-go)
-       ("go-github-com-kardianos-minwinsvc" ,go-github-com-kardianos-minwinsvc)
-       ("go-github-com-mitchellh-mapstructure"
-        ,go-github-com-mitchellh-mapstructure)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
-       ("go-golang-org-x-net" ,go-golang-org-x-net)
-       ("go-golang-org-x-text" ,go-golang-org-x-text)
-       ("go-golang-zx2c4-com-wireguard" ,go-golang-zx2c4-com-wireguard)
-       ("go-netlink" ,go-netlink)
-       ("go-netns" ,go-netns)))
+     (list ;;("go-golang-zx2c4-com-wireguard-windows"
+           ;; ,go-golang-zx2c4-com-wireguard-windows)
+           go-golang-zx2c4-com-wireguard
+           go-golang-org-x-text
+           go-golang-org-x-sys
+           go-golang-org-x-net
+           go-golang-org-x-crypto
+           go-netns
+           go-netlink
+           go-github-com-mitchellh-mapstructure
+           go-github-com-mattn-go-runewidth
+           go-github-com-mattn-go-isatty
+           go-github-com-kardianos-minwinsvc
+           go-github-com-hjson-hjson-go
+           go-github-com-hashicorp-go-syslog
+           go-github-com-gologme-log
+           go-github-com-fatih-color
+           go-github-com-cheggaaa-pb-v3
+           go-github-com-vividcortex-ewma
+           go-github-com-arceliar-phony
+           go-github-com-arceliar-ironwood))
     (home-page "https://yggdrasil-network.github.io/blog.html")
     (synopsis
      "Experiment in scalable routing as an encrypted IPv6 overlay network")
@@ -4170,11 +4095,9 @@ IPv6 Internet connectivity - it also works over IPv4.")
     `(#:tests? #f)) ;; no tests
    (build-system gnu-build-system)
    (inputs
-    `(("libnet" ,libnet)
-      ("libpcap" ,libpcap)))
+    (list libnet libpcap))
    (native-inputs
-    `(("autoconf" ,autoconf)
-      ("automake" ,automake)))
+    (list autoconf automake))
    (synopsis "Network address discovery tool")
    (description "Netdiscover is a network address discovery tool developed
 mainly for wireless networks without a @acronym{DHCP} server.  It also works
@@ -4186,32 +4109,33 @@ on hub/switched networks.  It is based on @acronym{ARP} packets, it will send
 (define-public putty
   (package
     (name "putty")
-    (version "0.75")
+    (version "0.76")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://www.putty.be/" version
-                           "/putty-" version ".tar.gz"))
+       (uri (list (string-append "https://the.earth.li/~sgtatham/putty/"
+                                 version "/putty-" version ".tar.gz")
+                  (string-append "http://www.putty.be/" version
+                                 "/putty-" version ".tar.gz")))
        (sha256
-        (base32
-         "1xgrr1fbirw79zafspg2b6crzfmlfw910y79md4r7gnxgq1kn5yk"))))
+        (base32 "0gvi8phabszqksj2by5jrjmshm7bpirhgavz0dqyz1xaimxdjz2l"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-before 'configure 'chdir
            (lambda _
-             (chdir "unix")
-             #t)))))
+             (chdir "unix"))))))
     (inputs
-     `(("gtk+" ,gtk+)))
+     (list gtk+))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python))) ; for tests
-    (synopsis "Graphical @acronym{SSH} and telnet client")
-    (description "Putty is a terminal client.  It supports @acronym{SSH},
-telnet, and raw socket connections with good terminal emulation.  It supports
-public key authentication and Kerberos single-sign-on.  It also includes
-command-line @acronym{SFTP} and @acronym{SCP} implementations.")
+     (list pkg-config python)) ; for tests
+    (synopsis "Graphical @acronym{SSH, Secure SHell} and telnet client")
+    (description "PuTTY is a graphical text terminal client.  It supports
+@acronym{SSH, Secure SHell}, telnet, and raw socket connections with good
+terminal emulation.  It can authenticate with public keys and Kerberos
+single-sign-on.  It also includes command-line @acronym{SFTP, Secure File
+Transfer Protocol} and older @acronym{SCP, Secure Copy Protocol}
+implementations.")
     (home-page "https://www.chiark.greenend.org.uk/~sgtatham/putty/")
     (license license:expat)))
diff --git a/gnu/packages/nfs.scm b/gnu/packages/nfs.scm
index 8370107939..ce951543ff 100644
--- a/gnu/packages/nfs.scm
+++ b/gnu/packages/nfs.scm
@@ -126,7 +126,7 @@
        ("libtirpc" ,libtirpc)
        ("python-wrapper" ,python-wrapper))) ;for the Python based tools
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.kernel.org/pub/linux/utils/nfs-utils/")
     (synopsis "Tools for loading and managing Linux NFS mounts")
     (description "The Network File System (NFS) was developed to allow
@@ -167,11 +167,9 @@ disk.  It allows for fast, seamless sharing of files across a network.")
                (("/bin/sh") (which "sh")))
              #t)))))
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("libtool" ,libtool)))
+     (list automake autoconf libtool))
     (inputs
-     `(("attr" ,attr)))
+     (list attr))
     (home-page "https://linux-nfs.org/wiki/index.php/Main_Page")
     (synopsis "Commandline ACL utilities for the Linux NFSv4 client")
     (description "This package provides the commandline utilities
diff --git a/gnu/packages/nickle.scm b/gnu/packages/nickle.scm
index 2353f37fb6..95b9915414 100644
--- a/gnu/packages/nickle.scm
+++ b/gnu/packages/nickle.scm
@@ -38,7 +38,7 @@
                 "0jy96z01qbrnmsrywn5mfa14615qdix6b8520qd65c6yjyrk8gs0"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("readline" ,readline)))
+     (list readline))
     (synopsis "Numeric oriented programming language")
     (description
      "Nickle is a programming language based prototyping environment with
diff --git a/gnu/packages/nicotine.scm b/gnu/packages/nicotine.scm
index c6e99b3dbd..8e194697de 100644
--- a/gnu/packages/nicotine.scm
+++ b/gnu/packages/nicotine.scm
@@ -62,9 +62,7 @@
          (add-after 'glib-or-gtk-wrap 'glib-or-gtk-compile-schemas
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas)))))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("python-pygobject" ,python-pygobject)
-       ("python-pytaglib" ,python-pytaglib)))
+     (list gtk+ python-pygobject python-pytaglib))
     (native-inputs
      `(("python-pytest" ,python-pytest)
        ("gettext" ,gettext-minimal)))
diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm
index cbb68f77d6..9a0be96852 100644
--- a/gnu/packages/node-xyz.scm
+++ b/gnu/packages/node-xyz.scm
@@ -47,7 +47,7 @@
              (chdir "acorn"))))))
     (home-page "https://github.com/acornjs/acorn/tree/master/acorn")
     (synopsis "Javascript-based Javascript parser")
-    (description "Acornjs is a Javascrip parser with many options and an
+    (description "Acornjs is a Javascript parser with many options and an
 architecture supporting plugins.")
     (license license:expat)))
 
@@ -118,7 +118,7 @@ architecture supporting plugins.")
              ;; We skip the two tests which are supposed to fail.
              (invoke "bin/node-far" "-v" "test/" "-e" "test.*fail.js"))))))
     (inputs
-     `(("node-oop" ,node-oop)))
+     (list node-oop))
     (home-page "https://github.com/felixge/node-far")
     (synopsis "Node.js test runner")
     (description "This package provides a simple test runner that finds and runs
@@ -223,8 +223,7 @@ while being as light-weight and simple as possible.")
                (("far.include") "far.exclude(/test-parse.js/)\nfar.include"))
              #t)))))
       (native-inputs
-       `(("node-far" ,node-far)
-         ("node-long-stack-traces" ,node-long-stack-traces)))
+       (list node-far node-long-stack-traces))
       (home-page "https://github.com/felixge/node-stack-trace")
       (synopsis "Get v8 stack traces as an array of CallSite objects")
       (description "Get v8 stack traces as an array of CallSite objects.")
@@ -349,7 +348,7 @@ function with browser support.")
          ;; still works as a dependency of node-glob and node-inflight.
          (delete 'configure))))
     (inputs
-     `(("node-wrappy" ,node-wrappy)))
+     (list node-wrappy))
     (home-page "https://github.com/isaacs/once")
     (synopsis "Node.js module to call a function only once")
     (description
@@ -357,3 +356,61 @@ function with browser support.")
 Subsequent calls will either return the cached previous value or throw an error
 if desired.")
     (license license:isc)))
+
+(define-public node-irc-colors
+  (package
+    (name "node-irc-colors")
+    (version "1.5.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/fent/irc-colors.js")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0q3y34rbnlc55jcakmdxkicwazyvyph9r6gaf6hi8k7wj2nfwfli"))))
+    (build-system node-build-system)
+    (arguments
+     '(#:tests? #f                      ; FIXME: tests depend on node-istanbul
+       #:phases
+       (modify-phases %standard-phases
+         ;; The default configure phase fails due to various packages
+         ;; being missing, as we don't have them packaged yet.
+         (delete 'configure))))
+    (home-page "https://github.com/fent/irc-colors.js")
+    (synopsis "Node.js module providing color and formatting for IRC")
+    (description "@code{node-irc-colors} is a Node.js module that
+allows you to easily use colored output and formatting in IRC bots.
+It contains functions for colours as well as more complex formatting
+such as rainbows.")
+    (license license:expat)))
+
+(define-public node-irc
+  (package
+    (name "node-irc")
+    (version "0.5.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/martynsmith/node-irc")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1ln4qfx20jbwg4cp8lp0vf27m5281z2sz16d15xd6150n26cbi4x"))))
+    (build-system node-build-system)
+    (arguments
+     '(#:tests? #f                      ; FIXME: tests depend on node-faucet
+       #:phases
+       (modify-phases %standard-phases
+         ;; The default configure phase fails due to various packages
+         ;; being missing, as we don't have them packaged yet.
+         (delete 'configure))))
+    (inputs
+     (list node-irc-colors))
+    (home-page "https://github.com/martynsmith/node-irc")
+    (synopsis "IRC client library for Node.js")
+    (description "@code{node-irc} is an IRC client library for Node.js.
+It has functions for joining, parting, talking, and many other IRC commands.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index d5a5be27de..6b543acf6f 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -255,15 +256,15 @@
             (variable "NODE_PATH")
             (files '("lib/node_modules")))))
     (inputs
-     `(("bash" ,bash)
-       ("coreutils" ,coreutils)
-       ("c-ares" ,c-ares)
-       ("http-parser" ,http-parser)
-       ("icu4c" ,icu4c)
-       ("libuv" ,libuv)
-       ("nghttp2" ,nghttp2 "lib")
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list bash
+           coreutils
+           c-ares
+           http-parser
+           icu4c
+           libuv
+           `(,nghttp2 "lib")
+           openssl
+           zlib))
     (synopsis "Evented I/O for V8 JavaScript")
     (description "Node.js is a platform built on Chrome's JavaScript runtime
 for easily building fast, scalable network applications.  Node.js uses an
@@ -272,8 +273,9 @@ perfect for data-intensive real-time applications that run across distributed
 devices.")
     (home-page "https://nodejs.org/")
     (license license:expat)
-    (properties '((max-silent-time . 7200)     ;2h, needed on ARM
-                  (timeout . 21600)))))        ;6h
+    (properties '((max-silent-time . 7200)   ;2h, needed on ARM
+                  (timeout . 21600)          ;6h
+                  (cpe-name . "node.js")))))
 
 ;; This should be the latest version of node that still builds without
 ;; depending on llhttp.
@@ -385,7 +387,7 @@ formats to milliseconds.")
        #:phases
        (modify-phases %standard-phases
          (delete 'configure))))
-    (inputs `(("node-ms" ,node-ms-bootstrap)))
+    (inputs (list node-ms-bootstrap))
     (home-page "https://github.com/visionmedia/debug#readme")
     (properties '((hidden? . #t)))
     (synopsis "Small debugging utility")
@@ -448,10 +450,9 @@ Node.js and web browsers.")
                        "--bundle"
                        "src/builder.ts")))))))
     (inputs
-     `(("node-binary-search" ,node-binary-search-bootstrap)
-       ("node-debug" ,node-debug-bootstrap)))
+     (list node-binary-search-bootstrap node-debug-bootstrap))
     (native-inputs
-     `(("esbuild" ,esbuild)))
+     (list esbuild))
     (home-page "https://github.com/indutny/llparse-builder#readme")
     (properties '((hidden? . #t)))
     (synopsis "Graph builder for consumption by llparse")
@@ -503,10 +504,9 @@ Node.js and web browsers.")
                        "--bundle"
                        "src/frontend.ts")))))))
     (inputs
-     `(("node-debug" ,node-debug-bootstrap)
-       ("node-llparse-builder" ,node-llparse-builder-bootstrap)))
+     (list node-debug-bootstrap node-llparse-builder-bootstrap))
     (native-inputs
-     `(("esbuild" ,esbuild)))
+     (list esbuild))
     (home-page "https://github.com/indutny/llparse-frontend#readme")
     (properties '((hidden? . #t)))
     (synopsis "Frontend for the llparse compiler")
@@ -557,10 +557,9 @@ Node.js and web browsers.")
                        "--bundle"
                        "src/api.ts")))))))
     (inputs
-     `(("node-debug" ,node-debug-bootstrap)
-       ("node-llparse-frontend" ,node-llparse-frontend-bootstrap)))
+     (list node-debug-bootstrap node-llparse-frontend-bootstrap))
     (native-inputs
-     `(("esbuild" ,esbuild)))
+     (list esbuild))
     (home-page "https://github.com/nodejs/llparse#readme")
     (properties '((hidden? . #t)))
     (synopsis "Compile incremental parsers to C code")
@@ -571,7 +570,7 @@ parser definition into a C output.")
 (define-public llhttp-bootstrap
   (package
     (name "llhttp")
-    (version "2.1.3")
+    (version "2.1.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -580,7 +579,7 @@ parser definition into a C output.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0pqj7kyyzr1zs4h9yzn5rdxnxspm3wqgsv00765dd42fszlmrmk8"))
+                "115mwyds9655p76lhglxg2blc1ksgrix6zhigaxnc2q6syy3pa6x"))
               (patches (search-patches "llhttp-bootstrap-CVE-2020-8287.patch"))
               (modules '((guix build utils)))
               (snippet
@@ -602,7 +601,7 @@ parser definition into a C output.")
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
-           (lambda* (#:key inputs #:allow-other-keys)
+           (lambda* (#:key inputs native-inputs #:allow-other-keys)
              (let ((esbuild (search-input-file (or native-inputs inputs)
                                                "/bin/esbuild")))
                (invoke esbuild
@@ -641,14 +640,14 @@ source files.")
 (define-public node-lts
   (package
     (inherit node)
-    (version "14.16.0")
+    (version "14.18.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://nodejs.org/dist/v" version
                                   "/node-v" version ".tar.xz"))
               (sha256
                (base32
-                "19nz2mhmn6ikahxqyna1dn25pb5v3z9vsz9zb2flb6zp2yk4hxjf"))
+                "1vc9rypkgr5i5y946jnyr9jjpydxvm74p1s17rg2zayzvlddg89z"))
               (modules '((guix build utils)))
               (snippet
                `(begin
@@ -680,7 +679,7 @@ source files.")
              (lambda* (#:key native-inputs inputs #:allow-other-keys)
                (let* ((inputs        (or native-inputs inputs))
                       (c-ares        (assoc-ref inputs "c-ares"))
-                      (google-brotli (assoc-ref inputs "google-brotli"))
+                      (brotli        (assoc-ref inputs "brotli"))
                       (icu4c         (assoc-ref inputs "icu4c"))
                       (nghttp2       (assoc-ref inputs "nghttp2"))
                       (openssl       (assoc-ref inputs "openssl"))
@@ -699,7 +698,7 @@ source files.")
                     (string-append target
                                    "'ldflags': ['-Wl,-rpath="
                                    c-ares "/lib:"
-                                   google-brotli "/lib:"
+                                   brotli "/lib:"
                                    icu4c "/lib:"
                                    nghttp2 "/lib:"
                                    openssl "/lib:"
@@ -776,6 +775,9 @@ source files.")
                          '("test/parallel/test-dns.js"
                            "test/parallel/test-dns-lookupService-promises.js"))
 
+               ;; These tests require networking.
+               (delete-file "test/parallel/test-https-agent-unref-socket.js")
+
                ;; FIXME: This test fails randomly:
                ;; https://github.com/nodejs/node/issues/31213
                (delete-file "test/parallel/test-net-listen-after-destroying-stdin.js")
@@ -813,31 +815,31 @@ source files.")
                  (copy-file (string-append llhttp "/include/llhttp.h")
                             "deps/llhttp/include/llhttp.h"))))))))
     (native-inputs
-     `(;; Runtime dependencies for binaries used as a bootstrap.
-       ("c-ares" ,c-ares)
-       ("google-brotli" ,google-brotli)
-       ("icu4c" ,icu4c-67)
-       ("libuv" ,libuv-for-node)
-       ("nghttp2" ,nghttp2 "lib")
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)
-       ;; Regular build-time dependencies.
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("procps" ,procps)
-       ("python" ,python)
-       ("util-linux" ,util-linux)))
+     (list ;; Runtime dependencies for binaries used as a bootstrap.
+           c-ares-for-node
+           brotli
+           icu4c-67
+           libuv-for-node
+           `(,nghttp2 "lib")
+           openssl
+           zlib
+           ;; Regular build-time dependencies.
+           perl
+           pkg-config
+           procps
+           python
+           util-linux))
     (inputs
-     `(("bash" ,bash)
-       ("coreutils" ,coreutils)
-       ("c-ares" ,c-ares)
-       ("icu4c" ,icu4c-67)
-       ("libuv" ,libuv-for-node)
-       ("llhttp" ,llhttp-bootstrap)
-       ("google-brotli" ,google-brotli)
-       ("nghttp2" ,nghttp2 "lib")
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))))
+     (list bash
+           coreutils
+           c-ares-for-node
+           icu4c-67
+           libuv-for-node
+           llhttp-bootstrap
+           brotli
+           `(,nghttp2 "lib")
+           openssl
+           zlib))))
 
 (define-public libnode
   (package/inherit node
diff --git a/gnu/packages/noweb.scm b/gnu/packages/noweb.scm
index 7d8d402b94..d218d8cc68 100644
--- a/gnu/packages/noweb.scm
+++ b/gnu/packages/noweb.scm
@@ -95,7 +95,7 @@
                                            "/share/texmf/tex/latex")))
        #:tests? #f))                              ; no tests
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "https://www.cs.tufts.edu/~nr/noweb/")
     (synopsis "Literate programming tool")
     (description
diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm
index 6315138c89..7dc12b6cbe 100644
--- a/gnu/packages/nss.scm
+++ b/gnu/packages/nss.scm
@@ -1,6 +1,6 @@
 ;;; 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 Mark H Weaver <mhw@netris.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 © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
@@ -53,10 +53,10 @@
     (build-system mozilla-build-system)
     (inputs
      ;; For 'compile-et.pl' and 'nspr-config'.
-     `(("perl" ,perl) ; for 'compile-et.pl'
-       ("bash-minimal" ,bash-minimal))) ; for 'nspr-config'
+     (list perl ;for 'compile-et.pl'
+           bash-minimal)) ;for 'nspr-config'
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (arguments
      `(;; Prevent the 'native' perl from sneaking into the closure.
        ;; XXX it would be nice to do the same for 'bash-minimal',
@@ -86,12 +86,25 @@ platform-neutral API for system level and libc-like functions.  It is used
 in the Mozilla clients.")
     (license license:mpl2.0)))
 
-;;; Note: When updating, also update the nss-certs package, which cannot
-;;; inherit from here.
+(define-public nspr-4.32
+  (package
+    (inherit nspr)
+    (version "4.32")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v"
+                   version "/src/nspr-" version ".tar.gz"))
+             (sha256
+              (base32
+               "0v3zds1id71j5a5si42a658fjz8nv2f6zp6w4gqrqmdr6ksz8sxv"))))))
+
 (define-public nss
   (package
     (name "nss")
-    (version "3.67")
+    ;; Also update and test the nss-certs package, which duplicates version and
+    ;; source to avoid a top-level variable reference & module cycle.
+    (version "3.71")
     (source (origin
               (method url-fetch)
               (uri (let ((version-with-underscores
@@ -102,7 +115,7 @@ in the Mozilla clients.")
                       "nss-" version ".tar.gz")))
               (sha256
                (base32
-                "0zyfi27lbdz1bmk9dmsivcya4phx25rzlxqcnjab69yd928rlm7n"))
+                "0ly2l3dv6z5hlxs72h5x6796ni3x1bq60saavaf42ddgv4ax7b4r"))
               ;; Create nss.pc and nss-config.
               (patches (search-patches "nss-3.56-pkgconfig.patch"
                                        "nss-getcwd-nonnull.patch"
@@ -155,7 +168,7 @@ in the Mozilla clients.")
                    ;; leading to test failures:
                    ;; <https://bugzilla.mozilla.org/show_bug.cgi?id=609734>.  To
                    ;; work around that, set the time to roughly the release date.
-                   (invoke "faketime" "2021-06-01" "./nss/tests/all.sh"))
+                   (invoke "faketime" "2021-09-30" "./nss/tests/all.sh"))
                  (format #t "test suite not run~%"))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
@@ -179,15 +192,11 @@ in the Mozilla clients.")
                (copy-recursively (string-append obj "/bin") bin)
                (copy-recursively (string-append obj "/lib") lib)))))))
     (inputs
-     `(;; XXX: Build with SQLite 3.33 to work around
-       ;; https://bugzilla.mozilla.org/show_bug.cgi?id=1714874
-       ("sqlite" ,sqlite-3.33)
-       ("zlib" ,zlib)))
+     (list sqlite zlib))
     (propagated-inputs
-     `(("nspr" ,nspr)))                 ;required by nss.pc.
+     (list nspr))                 ;required by nss.pc.
     (native-inputs
-     `(("perl" ,perl)
-       ("libfaketime" ,libfaketime)))   ;for tests
+     (list perl libfaketime))   ;for tests
 
     ;; The NSS test suite takes around 48 hours on Loongson 3A (MIPS) when
     ;; another build is happening concurrently on the same machine.
diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm
index 55b9a73b22..b98f4513a3 100644
--- a/gnu/packages/ntp.scm
+++ b/gnu/packages/ntp.scm
@@ -45,14 +45,14 @@
 (define-public chrony
   (package
     (name "chrony")
-    (version "4.1")
+    (version "4.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.tuxfamily.org/chrony/"
                            "chrony-" version ".tar.gz"))
        (sha256
-        (base32 "0k0nf5qqzl01106lkmwc32n6a1fxagalpbci38iccyilz79z4xpd"))))
+        (base32 "16nv90h73c99adh2bdrvlws1lhjsqfp6pfpnlprxd3ijbk8rygr7"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((srfi srfi-26)
@@ -69,23 +69,18 @@
            ;; time would result in nonsense file names in man pages.
            (lambda _
              (substitute* "Makefile.in"
-               (("mkdir -p \\$\\(DESTDIR\\)\\$\\(CHRONYVARDIR\\)") ":"))
-             #t))
+               (("mkdir -p \\$\\(DESTDIR\\)\\$\\(CHRONYVARDIR\\)") ":"))))
          (add-after 'install 'install-more-documentation
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (doc (string-append out "/share/doc/" ,name "-" ,version)))
                (for-each (cut install-file <> doc)
                          (list "README" "FAQ"))
-               (copy-recursively "examples" (string-append doc "/examples"))
-               #t))))))
+               (copy-recursively "examples" (string-append doc "/examples"))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("gnutls" ,gnutls)
-       ("libcap" ,libcap)
-       ("libseccomp" ,libseccomp)
-       ("nettle" ,nettle)))
+     (list gnutls libcap libseccomp nettle))
     (home-page "https://chrony.tuxfamily.org/")
     (synopsis "System clock synchronisation service that speaks NTP")
     (description
@@ -147,8 +142,7 @@ time-stamping or reference clock, sub-microsecond accuracy is possible.")
            (rename-file "sntp/libevent:build-aux"
                         "sntp/libevent/build-aux")
            #t))))
-   (native-inputs `(("which" ,which)
-                    ("pkg-config" ,pkg-config)))
+   (native-inputs (list which pkg-config))
    (inputs
     `(("openssl" ,openssl)
       ("libevent" ,libevent)
@@ -207,7 +201,7 @@ computers over a network.")
                (("DESTDIR\\)\\$\\(localstatedir") "TMPDIR"))
              #t)))))
     (inputs
-     `(("libressl" ,libressl))) ; enable TLS time constraints. See ntpd.conf(5).
+     (list libressl)) ; enable TLS time constraints. See ntpd.conf(5).
     (home-page "http://www.openntpd.org/")
     (synopsis "NTP client and server by the OpenBSD Project")
     (description "OpenNTPD is the OpenBSD Project's implementation of a client
diff --git a/gnu/packages/nvi.scm b/gnu/packages/nvi.scm
index b520b32784..f1f461f2b4 100644
--- a/gnu/packages/nvi.scm
+++ b/gnu/packages/nvi.scm
@@ -90,10 +90,9 @@
                           '("config.sub")))
               #t)))))
     (inputs
-      `(("bdb" ,bdb)
-        ("ncurses" ,ncurses)))
+      (list bdb ncurses))
     (native-inputs
-     `(("automake" ,automake))) ;Up to date 'config.guess' and 'config.sub'.
+     (list automake)) ;Up to date 'config.guess' and 'config.sub'.
     (synopsis "The Berkeley Vi Editor")
     (description
       "Vi is the original screen based text editor for Unix systems.  It is
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index ccbc6dda2b..624637dd8a 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2016, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016-2020 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2016-2021 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Peter Kreye <kreyepr@gmail.com>
@@ -15,7 +15,7 @@
 ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
-;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2020, 2021 Simon Tournier <zimon.toutoune@gmail.com>
 ;;; Copyright © 2020 divoplade <d@divoplade.fr>
 ;;; Copyright © 2020, 2021 pukkamustard <pukkamustard@posteo.net>
 ;;; Copyright © 2021 aecepoglu <aecepoglu@fastmail.fm>
@@ -115,8 +115,8 @@
           (sha256 (base32 hash))))
 
 (define-public camlboot
-  (let ((commit "506280c6e0813e0e794988151a8e46be55373ebc")
-        (revision "0"))
+  (let ((commit "45045d0afa82f7e9b7ea07314aab08be2d3cd64b")
+        (revision "1"))
     (package
       (name "camlboot")
       (version (git-version "0.0.0" revision commit))
@@ -129,7 +129,7 @@
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0vimxl4karw9ih3npyc5rhxg85cjh6fqjbq3dzj7j2iymlhwfbkv"))
+                  "1f5gl3hzvixbgk0v3kmxiyn432znyy3jh5fa65cfzcaxzgfv1i1c"))
                 (modules '((guix build utils)))
                 (snippet
                  `(begin
@@ -163,9 +163,10 @@
                  (rename-file "miniml/interp/lex.byte" "ocamllex")
                  (install-file "ocamllex" bin)))))))
       (native-inputs
-       `(("guile" ,guile-3.0)))
+       (list guile-3.0))
       (properties
-       `((max-silent-time . 14400))) ; 4 hours, expected even on x86_64
+       ;; 10 hours, mostly for arm, more than 1 expected even on x86_64
+       `((max-silent-time . 36000)))
       (home-page "https://github.com/Ekdohibs/camlboot")
       (synopsis "OCaml source bootstrap")
       (description "OCaml is written in OCaml.  Its sources contain a pre-compiled
@@ -204,12 +205,10 @@ This package produces a native @command{ocamlc} and a bytecode @command{ocamllex
             (files (list "lib/ocaml/site-lib/stubslibs"
                          "lib/ocaml/site-lib/stublibs")))))
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list perl pkg-config))
     (inputs
-     `(("libx11" ,libx11)
-       ("libiberty" ,libiberty)               ;needed for objdump support
-       ("zlib" ,zlib)))                       ;also needed for objdump support
+     (list libx11 libiberty ;needed for objdump support
+           zlib))                       ;also needed for objdump support
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -532,7 +531,7 @@ archive(byte) = \"com.cma\"
 archive(native) = \"com.cmxa\"")))))
              #t)))))
     (native-inputs
-     `(("ocaml" ,ocaml)))
+     (list ocaml))
     (home-page "https://github.com/xavierleroy/camlidl")
     (synopsis "Stub code generator for OCaml/C interface")
     (description
@@ -543,21 +542,21 @@ code for interfacing Caml with C from an IDL description of the C functions.")
 (define-public ocaml-extlib
   (package
     (name "ocaml-extlib")
-    (version "1.7.7")
+    (version "1.7.8")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://ygrek.org/p/release/ocaml-extlib/"
                                   "extlib-" version ".tar.gz"))
               (sha256
                (base32
-                "1sxmzc1mx3kg62j8kbk0dxkx8mkf1rn70h542cjzrziflznap0s1"))))
+                "0npq4hq3zym8nmlyji7l5cqk6drx2rkcx73d60rxqh5g8dla8p4k"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-      `(("ocaml-cppo" ,ocaml-cppo)))
+      (list ocaml-cppo))
     (home-page "https://github.com/ygrek/ocaml-extlib")
     (synopsis "Complete and small extension for OCaml standard library")
     (description "This library adds new functions to OCaml standard library
@@ -579,11 +578,9 @@ for day to day programming.")
           (base32
             "0771lwljqwwn3cryl0plny5a5dyyrj4z6bw66ha5n8yfbpcy8clr"))))
     (build-system ocaml-build-system)
-    (propagated-inputs `(("ocaml-extlib" ,ocaml-extlib)))
+    (propagated-inputs (list ocaml-extlib))
     (native-inputs
-      `(("perl" ,perl)
-        ("ocamlbuild" ,ocamlbuild)
-        ("ocaml-ounit" ,ocaml-ounit)))
+      (list perl ocamlbuild ocaml-ounit))
     (arguments
      `(#:make-flags
        ,#~(list
@@ -614,7 +611,7 @@ Software distribution.")
                (base32
                 "1gsad5cj03256i36wdjqk5pg51pyd48rpjazf0gfaakrn8lk438g"))))
     (build-system dune-build-system)
-    (propagated-inputs `(("ocaml-cudf" ,ocaml-cudf)))
+    (propagated-inputs (list ocaml-cudf))
     (home-page "https://www.i3s.unice.fr/~cpjm/misc/")
     (synopsis "Upgrade path problem solver")
     (description "Mccs (Multi Criteria CUDF Solver) is a CUDF problem solver.
@@ -651,19 +648,9 @@ underlying solvers like Cplex, Gurobi, Lpsolver, Glpk, CbC, SCIP or WBO.")
                                #+(file-append (canonical-package bash-minimal)
                                               "/bin/sh")))
        #:make-flags
-       ,#~(list (string-append "LIBDIR=" #$output "/lib/ocaml/site-lib"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-test-script
-           (lambda _
-             (substitute* "applications/dose-tests.py"
-               (("warning\\(")
-                "from warnings import warn\nwarn(")))))))
+       ,#~(list (string-append "LIBDIR=" #$output "/lib/ocaml/site-lib"))))
     (propagated-inputs
-      `(("ocaml-graph" ,ocaml-graph)
-        ("ocaml-cudf" ,ocaml-cudf)
-        ("ocaml-extlib" ,ocaml-extlib)
-        ("ocaml-re" ,ocaml-re)))
+      (list ocaml-graph ocaml-cudf ocaml-extlib ocaml-re))
     (native-inputs
       `(("perl" ,perl)
         ("python" ,python-2) ; for a test script
@@ -706,10 +693,7 @@ repository-wide uninstallability checks.")
        ,#~(list "build" "--lib-dir"
                 (string-append #$output "/lib/ocaml/site-lib"))))
     (native-inputs
-     `(("ocaml-findlib" ,ocaml-findlib)
-       ("ocamlbuild" ,ocamlbuild)
-       ("ocaml-topkg" ,ocaml-topkg)
-       ("opam" ,opam)))
+     (list ocaml-findlib ocamlbuild ocaml-topkg opam))
     (home-page "https://erratique.ch/software/down")
     (synopsis "OCaml toplevel (REPL) upgrade")
     (description "Down is an unintrusive user experience upgrade for the
@@ -778,7 +762,7 @@ the opam file format.")
 (define-public opam
   (package
     (name "opam")
-    (version "2.1.0")
+    (version "2.1.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -787,7 +771,7 @@ the opam file format.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "12l7l4pbzy71k1yc7ym5aczajszvc9bqkdnfg8xhqc8ch8j1h1lj"))))
+                "0mdr32mg63yaw89p44zx8b9dxp1167ckmlxkp8svd6fwgb3z49yx"))))
     (build-system dune-build-system)
     (arguments
      `(#:test-target "."
@@ -881,16 +865,10 @@ the opam file format.")
          ("opam-repo-f372039d" ,(opam-repo "f372039db86a970ef3e662adbfe0d4f5cd980701"
                                            "0ld7fcry6ss6fmrpswvr6bikgx299w97h0gwrjjh7kd7rydsjdws")))))
     (inputs
-     `(("ocaml" ,ocaml)
-       ("ncurses" ,ncurses)
-       ("curl" ,curl)
-       ("bubblewrap" ,bubblewrap)))
+     (list ocaml ncurses curl bubblewrap))
     (propagated-inputs
-     `(("ocaml-cmdliner" ,ocaml-cmdliner)
-       ("ocaml-dose3" ,ocaml-dose3)
-       ("ocaml-mccs" ,ocaml-mccs)
-       ("ocaml-opam-file-format" ,ocaml-opam-file-format)
-       ("ocaml-re" ,ocaml-re)))
+     (list ocaml-cmdliner ocaml-dose3 ocaml-mccs ocaml-opam-file-format
+           ocaml-re))
     (home-page "http://opam.ocamlpro.com/")
     (synopsis "Package manager for OCaml")
     (description
@@ -916,7 +894,7 @@ Git-friendly development workflow.")
         (base32 "1d9spy3f5ahixm8nxxk086kpslzva669a5scn49am0s7vx4i71kp"))))
     (build-system gnu-build-system)
     (inputs
-     `(("ocaml" ,ocaml)))
+     (list ocaml))
     (arguments
      `(#:tests? #f  ; XXX TODO figure out how to run the tests
        #:phases
@@ -968,9 +946,9 @@ concrete syntax of the language (Quotations, Syntax Extensions).")
                 "1jwydkb9ldb1sx815c364dxgr569f2rbbzgxbn2kanrybpdbm2gi"))))
     (build-system gnu-build-system)
     (inputs
-     `(("ocaml" ,ocaml)))
+     (list ocaml))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)))
+     (list ocamlbuild))
     (arguments
      `(#:tests? #f                      ; no test suite
        #:make-flags (list (string-append "PREFIX=" %output))
@@ -1062,7 +1040,7 @@ Emacs.")
 (define-public ocaml-menhir
   (package
     (name "ocaml-menhir")
-    (version "20210419")
+    (version "20211012")
     (source
      (origin
        (method git-fetch)
@@ -1071,12 +1049,13 @@ Emacs.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0jcbr7s3iwfr7xxfybs3h407g76yfp5yq5r9i0wg2ahvvbqh03ky"))))
+        (base32 "08kf5apbv15n2kcr3qhyr3rvsf2lg25ackr3x9kfgiiqc0p3sz40"))))
     (build-system dune-build-system)
     (inputs
-     `(("ocaml" ,ocaml)))
+     (list ocaml))
     (arguments
      `(#:tests? #f)) ; No check target
+    (properties `((ocaml4.07-variant . ,(delay (strip-ocaml4.07-variant ocaml-menhir)))))
     (home-page "http://gallium.inria.fr/~fpottier/menhir/")
     (synopsis "Parser generator")
     (description "Menhir is a parser generator.  It turns high-level grammar
@@ -1131,12 +1110,12 @@ Knuth’s LR(1) parser construction technique.")
     ;; FIXME: Add inputs gtkgl-2.0, libpanelapplet-2.0, gtkspell-2.0,
     ;; and gtk+-quartz-2.0 once available.
     (inputs
-     `(("gtk+" ,gtk+-2)
-       ("gtksourceview" ,gtksourceview-2)
-       ("libgnomecanvas" ,libgnomecanvas)
-       ("libgnomeui" ,libgnomeui)
-       ("libglade" ,libglade)
-       ("librsvg" ,librsvg)))
+     (list gtk+-2
+           gtksourceview-2
+           libgnomecanvas
+           libgnomeui
+           libglade
+           librsvg))
     (arguments
      `(#:tests? #f ; no check target
 
@@ -1205,7 +1184,8 @@ libpanel, librsvg and quartz.")
      `(("ocaml" ,ocaml-4.09)
        ;; For documentation
        ("ghostscript" ,ghostscript)
-       ("texlive" ,texlive-tiny)
+       ("texlive" ,(texlive-updmap.cfg
+                    (list texlive-fonts-ec texlive-dvips-l3backend)))
        ("hevea" ,hevea)
        ("lynx" ,lynx)
        ("which" ,which)))
@@ -1281,8 +1261,7 @@ to the other.")
                 "00s3sfb02pnjmkax25pcnljcnhcggiliccfz69a72ic7gsjwz1cf"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("m4" ,m4)
-       ("ocaml" ,ocaml)))
+     (list m4 ocaml))
     (arguments
      `(#:tests? #f  ; no test suite
        #:parallel-build? #f
@@ -1325,16 +1304,14 @@ compilers that can directly deal with packages.")
     (inherit ocaml-findlib)
     (name "ocaml4.07-findlib")
     (native-inputs
-     `(("m4" ,m4)
-       ("ocaml" ,ocaml-4.07)))))
+     (list m4 ocaml-4.07))))
 
 (define-public ocaml4.09-findlib
   (package
     (inherit ocaml-findlib)
     (name "ocaml4.09-findlib")
     (native-inputs
-     `(("m4" ,m4)
-       ("ocaml" ,ocaml-4.09)))))
+     (list m4 ocaml-4.09))))
 
 (define-public ocaml-ounit2
   (package
@@ -1351,8 +1328,7 @@ compilers that can directly deal with packages.")
                 "0gxjw1bhmjcjzri6x6psqrkbbyq678b69bqfl9i1zswp7cj2lryg"))))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("lwt" ,ocaml-lwt)
-       ("ocaml-stdlib-shims" ,ocaml-stdlib-shims)))
+     (list ocaml-lwt ocaml-stdlib-shims))
     (home-page "https://github.com/gildor478/ounit")
     (synopsis "Unit testing framework for OCaml")
     (description "OUnit2 is a unit testing framework for OCaml.  It is similar
@@ -1362,22 +1338,17 @@ to JUnit and other XUnit testing frameworks.")
 ;; note that some tests may hang for no obvious reason.
 (define-public ocaml-ounit
   (package
+    (inherit ocaml-ounit2)
     (name "ocaml-ounit")
-    (version "2.0.8")
-    (source (origin
-              (method url-fetch)
-              (uri (ocaml-forge-uri "ounit" version 1749))
-              (sha256
-               (base32
-                "03ifp9hjcxg4m5j190iy373jcn4039d3vy10kmd8p4lfciwzwc1f"))))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("libxml2" ,libxml2)           ; for xmllint
-       ("ocamlbuild" ,ocamlbuild)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (delete 'check))))             ; tests are run during build
+         (replace 'install
+           (lambda _
+             (invoke "make" "install-ounit" ,(string-append "version="
+                                                            (package-version ocaml-ounit2))))))))
+    (propagated-inputs
+     (list ocaml-ounit2))
     (home-page "http://ounit.forge.ocamlcore.org")
     (synopsis "Unit testing framework for OCaml")
     (description "Unit testing framework for OCaml.  It is similar to JUnit and
@@ -1387,33 +1358,25 @@ other XUnit testing frameworks.")
 (define-public camlzip
   (package
     (name "camlzip")
-    (version "1.0.6")
+    (version "1.11")
     (source (origin
-              (method url-fetch)
-              (uri (ocaml-forge-uri name version 1616))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/xavierleroy/camlzip")
+                     (commit (string-append
+                               "rel"
+                               (string-join (string-split version #\.) "")))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0m6gyjw46w3qnhxfsyqyag42znl5lwargks7w7rfchr9jzwpff68"))))
+                "16jnn3czxnvyjngnz167x5kw097k7izdqvkix8qvgvhdmgvqm89b"))))
     (build-system ocaml-build-system)
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (delete 'configure)
-         (add-after 'install 'install-camlzip
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (dir (string-append out "/lib/ocaml/site-lib/camlzip")))
-               (mkdir-p dir)
-               (call-with-output-file (string-append dir "/META")
-                 (lambda (port)
-                   (format port "version=\"1.06\"\n")
-                   (format port "requires=\"unix\"\n")
-                   (format port "archive(byte)=\"zip.cma\"\n")
-                   (format port "archive(native)=\"zip.cmxa\"\n")
-                   (format port "archive(native,plugin)=\"zip.cmxs\"\n")
-                   (format port "directory=\"../zip\"\n")))))))
+         (delete 'configure))
        #:install-target "install-findlib"
        #:make-flags
        ,#~(list "all" "allopt"
@@ -1464,9 +1427,9 @@ files in these formats.")
                 "1jslm1rv1j0ya818yh23wf3bb6hz7qqj9pn5fwl45y9mqyqa01s9"))))
     (build-system ocaml-build-system)
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (inputs
-     `(("gmp" ,gmp)))
+     (list gmp))
     (arguments
      `(#:tests? #f ; no test target
        #:phases
@@ -1491,40 +1454,28 @@ for speed and space economy.")
 (define-public ocaml-frontc
   (package
     (name "ocaml-frontc")
-    (version "3.4.2")
+    (version "4.1.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                      (url "https://github.com/BinaryAnalysisPlatform/FrontC")
-                     (commit (string-append
-                               "V_" (string-join (string-split version #\.) "_")))))
+                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0k7jk9hkglnkk27s62xl493jyqc017gyvwqb1lyc0ywbb001s102"))))
-    (build-system ocaml-build-system)
+                "1mi1vh4qgscnb470qwidccaqd068j1bqlz6pf6wddk21paliwnqb"))))
+    (build-system dune-build-system)
     (arguments
-     `(#:phases
+     `(#:test-target "test.t"
+       #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
-         (add-after 'install 'install-meta
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (with-output-to-file
-                   (string-append out "/lib/ocaml/frontc/META")
-                 (lambda _
-                   (display
-                    (string-append
-                     "description = \"Parser for the C language\"
-version = \"" ,version "\"
-requires = \"unix\"
-archive(byte) = \"frontc.cma\"
-archive(native) = \"frontc.cmxa\""))))
-               (symlink (string-append out "/lib/ocaml/frontc")
-                        (string-append out "/lib/ocaml/FrontC"))))))
-       #:make-flags ,#~(list (string-append "PREFIX=" #$output)
-                             "OCAML_SITE=$(LIB_DIR)/ocaml/")))
-    (properties `((upstream-name . "FrontC")))
+         (add-after 'unpack 'make-writable
+           (lambda _
+             (for-each make-file-writable (find-files "." ".")))))))
+    (native-inputs
+     (list ocaml-menhir ocaml-odoc))
+    (properties `((upstream-name . "FrontC")
+                  (ocaml4.07-variant . ,(delay ocaml4.07-frontc))))
     (home-page "https://www.irit.fr/FrontC")
     (synopsis "C parser and lexer library")
     (description "FrontC is an OCAML library providing a C parser and lexer.
@@ -1533,19 +1484,59 @@ It provides support for ANSI C syntax, old-C K&R style syntax and the standard
 GNU CC attributes.  It provides also a C pretty printer as an example of use.")
     (license license:lgpl2.1)))
 
+(define-public ocaml4.07-frontc
+  (package-with-ocaml4.07
+    (package
+      (inherit ocaml-frontc)
+      (version "3.4.2")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/mirage/ocaml-base64")
+                       (commit (string-append
+                                 "V_" (string-join (string-split version #\.) "_")))))
+                (file-name (git-file-name "ocaml-frontc" version))
+                (sha256
+                 (base32
+                  "0k7jk9hkglnkk27s62xl493jyqc017gyvwqb1lyc0ywbb001s102"))))
+      (build-system ocaml-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (add-after 'install 'install-meta
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (with-output-to-file
+                     (string-append out "/lib/ocaml/frontc/META")
+                   (lambda _
+                     (display
+                      (string-append
+                       "description = \"Parser for the C language\"
+version = \"" ,version "\"
+requires = \"unix\"
+archive(byte) = \"frontc.cma\"
+archive(native) = \"frontc.cmxa\""))))
+                 (symlink (string-append out "/lib/ocaml/frontc")
+                          (string-append out "/lib/ocaml/FrontC"))))))
+         #:make-flags ,#~(list (string-append "PREFIX=" #$output)
+                               "OCAML_SITE=$(LIB_DIR)/ocaml/")))
+      (properties '()))))
+
 (define-public ocaml-qcheck
   (package
     (name "ocaml-qcheck")
-    (version "0.12")
+    (version "0.18")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/c-cube/qcheck")
-             (commit version)))
+             (commit (string-append "v" version))))
        (file-name (git-file-name name version))
+       (patches (search-patches "ocaml-qcheck-fix-test-whitespace.patch"))
        (sha256
-        (base32 "1llnfynhlndwyjig7wrayjnds2b3mggp5lw20dwxhn2i2lkkb22m"))))
+        (base32 "1s652hrj2sxqj30dfl300zjvvqk3r62a1bnzqw1hqyf6pi88qn8x"))))
     (build-system dune-build-system)
     (arguments
      `(#:test-target "."
@@ -1557,10 +1548,10 @@ GNU CC attributes.  It provides also a C pretty printer as an example of use.")
                (("Pervasives.compare") "compare"))
              #t)))))
     (propagated-inputs
-     `(("ocaml-alcotest" ,ocaml-alcotest)
-       ("ocaml-ounit" ,ocaml-ounit)))
+     (list ocaml-alcotest ocaml-ounit))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)))
+     (list ocamlbuild))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-qcheck))))
     (home-page "https://github.com/c-cube/qcheck")
     (synopsis "QuickCheck inspired property-based testing for OCaml")
     (description "QuickCheck inspired property-based testing for OCaml. This
@@ -1569,10 +1560,26 @@ generated instances of the type. It provides combinators for generating
 instances and printing them.")
     (license license:lgpl3+)))
 
+(define-public ocaml4.07-qcheck
+  (package-with-ocaml4.07
+    (package
+      (inherit ocaml-qcheck)
+      (version "0.12")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/c-cube/qcheck")
+                      (commit version)))
+                (file-name (git-file-name "ocaml-qcheck" version))
+                (sha256
+                 (base32
+                  "1llnfynhlndwyjig7wrayjnds2b3mggp5lw20dwxhn2i2lkkb22m"))))
+      (properties '()))))
+
 (define-public ocaml-qtest
   (package
     (name "ocaml-qtest")
-    (version "2.10.1")
+    (version "2.11.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1581,7 +1588,7 @@ instances and printing them.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0gddzan4vzs0vklsxhirdjrvx3rp7hhh2yr20vi13nq8rwkn9w29"))))
+                "04ghjshh6104xyglm0db9kv90m62qla5f4bfrlndv6dsvgw3rdjl"))))
     (build-system dune-build-system)
     (arguments
      `(#:test-target "tests"))
@@ -1627,7 +1634,7 @@ full_split, cut, rcut, etc..")
 (define dune-bootstrap
   (package
     (name "dune")
-    (version "2.9.0")
+    (version "2.9.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1636,7 +1643,7 @@ full_split, cut, rcut, etc..")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "01np4jy0f3czkpzkl38k9b4lsh41qk52ldaqxl98mgigyzhx4w0b"))))
+                "1lnah40pm9ndixz5hbsh67chvdspqpy26g6byb767vqgj7dbivfh"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:tests? #f; require odoc
@@ -1672,7 +1679,7 @@ following a very simple s-expression syntax.")
        ; require ppx_expect
        #:tests? #f))
     (propagated-inputs
-     `(("ocaml-csexp" ,ocaml-csexp)))
+     (list ocaml-csexp))
     (properties `((ocaml4.09-variant . ,(delay ocaml4.09-dune-configurator))))
     (synopsis "Dune helper library for gathering system configuration")
     (description "Dune-configurator is a small library that helps writing
@@ -1703,7 +1710,7 @@ config.h files for instance.  Among other things, dune-configurator allows one t
   (package
     (inherit dune-bootstrap)
     (propagated-inputs
-     `(("dune-configurator" ,dune-configurator)))
+     (list dune-configurator))
     (properties `((ocaml4.07-variant . ,(delay ocaml4.07-dune))
                   (ocaml4.09-variant . ,(delay ocaml4.09-dune))))))
 
@@ -1711,7 +1718,7 @@ config.h files for instance.  Among other things, dune-configurator allows one t
   (package
     (inherit ocaml4.09-dune-bootstrap)
     (propagated-inputs
-     `(("dune-configurator" ,dune-configurator)))))
+     (list dune-configurator))))
 
 (define-public ocaml4.07-dune
   (package
@@ -1730,7 +1737,7 @@ config.h files for instance.  Among other things, dune-configurator allows one t
 (define-public ocaml-csexp
   (package
     (name "ocaml-csexp")
-    (version "1.3.2")
+    (version "1.5.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1739,7 +1746,7 @@ config.h files for instance.  Among other things, dune-configurator allows one t
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "190zppgvdjgghmrnx67ayzzk86qdjy3yn5fcrcw08wsh93384pl0"))))
+                "1v5y4x1a21193h8q536c0s0d8hv3hyyky4pgzm2dw9807v36s2x4"))))
     (build-system dune-build-system)
     (arguments
      `(#:tests? #f; FIXME: needs ppx_expect, but which version?
@@ -1751,7 +1758,7 @@ config.h files for instance.  Among other things, dune-configurator allows one t
              (for-each (lambda (file) (chmod file #o644)) (find-files "." ".*"))
              #t)))))
     (propagated-inputs
-     `(("ocaml-result" ,ocaml-result)))
+     (list ocaml-result))
     (properties `((ocaml4.09-variant . ,(delay ocaml4.09-csexp))))
     (home-page "https://github.com/ocaml-dune/csexp")
     (synopsis "Parsing and printing of S-expressions in Canonical form")
@@ -1784,7 +1791,7 @@ module of this library is parameterised by the type of S-expressions.")
 (define-public ocaml-migrate-parsetree
   (package
     (name "ocaml-migrate-parsetree")
-    (version "2.1.0")
+    (version "2.3.0")
     (home-page "https://github.com/ocaml-ppx/ocaml-migrate-parsetree")
     (source
      (origin
@@ -1795,13 +1802,11 @@ module of this library is parameterised by the type of S-expressions.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1cpgdqcs624nd1p271ddakgyibl0ia4f6dzivnz9qdwszsinwr89"))))
+         "1nqmhsc72xmgm865nn8q0hngklhvqav281hgnx1gf5ns49a0n3ig"))))
     (build-system dune-build-system)
     (arguments `(#:tests? #f))
     (propagated-inputs
-     `(("ocaml-ppx-derivers" ,ocaml-ppx-derivers)
-       ("ocamlbuild" ,ocamlbuild)
-       ("ocaml-result" ,ocaml-result)))
+     (list ocaml-ppx-derivers ocamlbuild ocaml-result))
     (properties `((upstream-name . "ocaml-migrate-parsetree")
                   ;; OCaml 4.07 packages require version 1.*
                   (ocaml4.07-variant . ,(delay (package-with-ocaml4.07 ocaml-migrate-parsetree-1)))))
@@ -1858,22 +1863,21 @@ ocaml-migrate-parsetree")
 (define-public ocaml-bitstring
   (package
     (name "ocaml-bitstring")
-    (version "3.1.0")
+    (version "4.1.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://bitbucket.org/thanatonauts/bitstring/"
-                                  "get/v" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/xguerin/bitstring")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "15jjk2pq1vx311gl49s5ag6x5y0654x35w75z07g7kr2q334hqps"))))
+                "0mghsl8b2zd2676mh1r9142hymhvzy9cw8kgkjmirxkn56wbf56b"))))
     (build-system dune-build-system)
     (native-inputs
-     `(("time" ,time)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list time autoconf automake))
     (propagated-inputs
-     `(("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned)))
+     (list ocaml-stdlib-shims))
     (arguments
      `(#:package "bitstring"
        #:tests? #f; Tests fail to build
@@ -1883,6 +1887,7 @@ ocaml-migrate-parsetree")
            (lambda _
              (invoke "dune" "upgrade")
              #t)))))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-bitstring))))
     (home-page "https://github.com/xguerin/bitstring")
     (synopsis "Bitstrings and bitstring matching for OCaml")
     (description "Adds Erlang-style bitstrings and matching over bitstrings as
@@ -1891,6 +1896,23 @@ and generate binary formats, files and protocols.  Bitstring handling is added
 as primitives to the language, making it exceptionally simple to use and very
 powerful.")
     (license license:isc)))
+
+(define-public ocaml4.07-bitstring
+  (package-with-ocaml4.07
+    (package
+      (inherit ocaml-bitstring)
+      (version "3.1.0")
+      (source (origin
+                (method url-fetch)
+                (uri (string-append "https://bitbucket.org/thanatonauts/bitstring/"
+                                    "get/v" version ".tar.gz"))
+                (file-name (string-append "ocaml-bitsring-" version ".tar.gz"))
+                (sha256
+                 (base32
+                  "15jjk2pq1vx311gl49s5ag6x5y0654x35w75z07g7kr2q334hqps"))))
+      (propagated-inputs
+       `(("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned)))
+      (properties '()))))
  
 (define-public ocaml-result
   (package
@@ -1930,18 +1952,17 @@ defined in this library.")
 (define-public ocaml-topkg
   (package
     (name "ocaml-topkg")
-    (version "1.0.0")
+    (version "1.0.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://erratique.ch/software/topkg/releases/"
                                   "topkg-" version ".tbz"))
               (sha256
                (base32
-                "1df61vw6v5bg2mys045682ggv058yqkqb67w7r2gz85crs04d5fw"))))
+                "1kzw5cxkizcvh4rgzwgpjlj9hfxfk6yr686bxx6wrbsfs8as371k"))))
     (build-system ocaml-build-system)
     (native-inputs
-     `(("opam" ,opam)
-       ("ocamlbuild" ,ocamlbuild)))
+     (list opam ocamlbuild))
     (propagated-inputs
      `(("result" ,ocaml-result)))
     (arguments
@@ -1971,8 +1992,7 @@ creation and publication procedures.")
                 "1xxycxhdhaq8p9vhwi93s2mlxjwgm44fcxybx5vghzgbankz9yhm"))))
     (build-system ocaml-build-system)
     (native-inputs
-     `(("opam" ,opam)
-       ("ocamlbuild" ,ocamlbuild)))
+     (list opam ocamlbuild))
     (propagated-inputs
      `(("topkg" ,ocaml-topkg)))
     (arguments
@@ -2006,12 +2026,9 @@ library.")
     (build-system dune-build-system)
     (properties `((ocaml4.07-variant . ,(delay ocaml4.07-sqlite3))))
     (propagated-inputs
-     `(("dune-configurator" ,dune-configurator)
-       ("ocaml-odoc" ,ocaml-odoc)))
+     (list dune-configurator ocaml-odoc))
     (native-inputs
-     `(("ocaml-ppx-inline-test" ,ocaml-ppx-inline-test)
-       ("pkg-config" ,pkg-config)
-       ("sqlite" ,sqlite)))
+     (list ocaml-ppx-inline-test pkg-config sqlite))
     (home-page "https://mmottl.github.io/sqlite3-ocaml")
     (synopsis "SQLite3 Bindings for OCaml")
     (description
@@ -2041,7 +2058,7 @@ coexistence with the old (version 2) SQLite and its OCaml wrapper
 (define-public ocaml-csv
   (package
     (name "ocaml-csv")
-    (version "2.3")
+    (version "2.4")
     (source
      (origin
        (method git-fetch)
@@ -2051,7 +2068,7 @@ coexistence with the old (version 2) SQLite and its OCaml wrapper
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "19k48517s8y1zb91a1312a0n94cbh5i5dixndcrqjmf87kkz61zx"))))
+         "0y2hlqlmqs7r4y5mfzc5qdv7gdp3wxbwpz458vf7fj4593vg94cf"))))
     (build-system dune-build-system)
     (arguments
      `(#:package "csv"
@@ -2070,18 +2087,17 @@ manipulate such data.")
 (define-public ocaml-mtime
   (package
     (name "ocaml-mtime")
-    (version "1.1.0")
+    (version "1.3.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://erratique.ch/software/mtime/releases/"
                                   "mtime-" version ".tbz"))
               (sha256
                (base32
-                "1qb4ljwirrc3g8brh97s76rjky2cpmy7zm87y7iqd6pxix52ydk3"))))
+                "0syilgk4nzscacsswnvgwqlf0n0lhs221jss8gc8z9igw2x4sgsq"))))
     (build-system ocaml-build-system)
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)
-       ("opam" ,opam)))
+     (list ocamlbuild opam))
     (propagated-inputs
      `(("topkg" ,ocaml-topkg)))
     (arguments
@@ -2133,8 +2149,7 @@ spans without being subject to operating system calendar time adjustments.")
                  (mkdir-p (string-append
                            out "/lib/ocaml/site-lib/calendar"))))))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)))
+       (list autoconf automake))
       (propagated-inputs
        `(("ocaml" ,ocaml)
          ("ocamlfind" ,ocaml-findlib)))
@@ -2148,19 +2163,19 @@ dates and times.")
 (define-public ocaml-cmdliner
   (package
     (name "ocaml-cmdliner")
-    (version "1.0.3")
+    (version "1.0.4")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://erratique.ch/software/cmdliner/releases/"
+              (uri (string-append "https://erratique.ch/software/cmdliner/releases/"
                                   "cmdliner-" version ".tbz"))
               (sha256
                (base32
-                "0g3w4hvc1cx9x2yp5aqn6m2rl8lf9x1dn754hfq8m1sc1102lxna"))))
+                "1h04q0zkasd0mw64ggh4y58lgzkhg6yhzy60lab8k8zq9ba96ajw"))))
     (build-system ocaml-build-system)
     (inputs
-     `(("ocaml-result" ,ocaml-result)))
+     (list ocaml-result))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)))
+     (list ocamlbuild))
     (arguments
      `(#:tests? #f
        #:make-flags ,#~(list (string-append "LIBDIR=" #$output
@@ -2187,14 +2202,14 @@ most of the POSIX and GNU conventions.")
 (define-public ocaml-fmt
   (package
     (name "ocaml-fmt")
-    (version "0.8.9")
+    (version "0.9.0")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "http://erratique.ch/software/fmt/releases/fmt-"
                             version ".tbz"))
         (sha256 (base32
-                  "0gkkkj4x678vxdda4xaw2dd44qjacavsvn5nx8gydfwah6pjbkxk"))))
+                  "0q8j2in2473xh7k4hfgnppv9qy77f2ih89yp6yhpbp92ba021yzi"))))
     (build-system ocaml-build-system)
     (native-inputs
      `(("ocamlbuild" ,ocamlbuild)
@@ -2210,23 +2225,38 @@ most of the POSIX and GNU conventions.")
                  #:phases
                  (modify-phases %standard-phases
                    (delete 'configure))))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-fmt))))
     (home-page "https://erratique.ch/software/fmt")
     (synopsis "OCaml Format pretty-printer combinators")
     (description "Fmt exposes combinators to devise Format pretty-printing
 functions.")
     (license license:isc)))
 
+(define-public ocaml4.07-fmt
+  (package-with-ocaml4.07
+    (package
+      (inherit ocaml-fmt)
+      (version "0.8.9")
+      (source (origin
+                (method url-fetch)
+                (uri (string-append "http://erratique.ch/software/fmt/releases/fmt-"
+                                    version ".tbz"))
+                (sha256
+                 (base32
+                  "0gkkkj4x678vxdda4xaw2dd44qjacavsvn5nx8gydfwah6pjbkxk"))))
+      (properties '()))))
+
 (define-public ocaml-astring
   (package
     (name "ocaml-astring")
-    (version "0.8.3")
+    (version "0.8.5")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "http://erratique.ch/software/astring/releases/astring-"
                             version ".tbz"))
         (sha256 (base32
-                  "0ixjwc3plrljvj24za3l9gy0w30lsbggp8yh02lwrzw61ls4cri0"))))
+                  "1ykhg9gd3iy7zsgyiy2p9b1wkpqg9irw5pvcqs3sphq71iir4ml6"))))
     (build-system ocaml-build-system)
     (native-inputs
      `(("ocamlbuild" ,ocamlbuild)
@@ -2252,28 +2282,31 @@ immutability.")
 (define-public ocaml-alcotest
   (package
     (name "ocaml-alcotest")
-    (version "1.0.0")
+    (version "1.5.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/mirage/alcotest/releases/"
-                                  "download/" version "/alcotest-" version ".tbz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/mirage/alcotest")
+                    (commit version)))
+              (file-name (git-file-name name version))
               (sha256
-                (base32
-                  "1a43ilhwnj58pq3bi78ni46l9wh6klmmgfc93i94mvyx48bzzayx"))))
+               (base32
+                "1lgadc7p56677fi5gwl7r9bml4z87rzh50khhqaij7bwp37zrmpi"))))
     (build-system dune-build-system)
     (arguments
      `(#:package "alcotest"
        #:test-target "."))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)))
+     (list ocamlbuild))
     (propagated-inputs
-     `(("ocaml-astring" ,ocaml-astring)
-       ("ocaml-cmdliner" ,ocaml-cmdliner)
-       ("ocaml-fmt" ,ocaml-fmt)
-       ("ocaml-re" ,ocaml-re)
-       ("ocaml-stdlib-shims" ,ocaml-stdlib-shims)
-       ("ocaml-uuidm" ,ocaml-uuidm)
-       ("ocaml-uutf" ,ocaml-uutf)))
+     (list ocaml-astring
+           ocaml-cmdliner
+           ocaml-fmt
+           ocaml-re
+           ocaml-stdlib-shims
+           ocaml-uuidm
+           ocaml-uutf))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-alcotest))))
     (home-page "https://github.com/mirage/alcotest")
     (synopsis "Lightweight OCaml test framework")
     (description "Alcotest exposes simple interface to perform unit tests.  It
@@ -2284,10 +2317,26 @@ displayed at the end of the run (with the full logs ready to inspect), with a
 simple (yet expressive) query language to select the tests to run.")
     (license license:isc)))
 
-(define-public ocaml4.07-ppx-tools
+(define-public ocaml4.07-alcotest
+  (package-with-ocaml4.07
+    (package
+      (inherit ocaml-alcotest)
+      (version "1.0.1")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/mirage/alcotest")
+                      (commit version)))
+                (file-name (git-file-name "ocaml-alcotest" version))
+                (sha256
+                 (base32
+                  "1frwi185z4aadmaf0vp8xk5227nyg7nmh28ijj5l7ncjr5slvhz8"))))
+      (properties '()))))
+
+(define-public ocaml-ppx-tools
   (package
-    (name "ocaml4.07-ppx-tools")
-    (version "5.1+4.06.0")
+    (name "ocaml-ppx-tools")
+    (version "6.4")
     (source
      (origin
        (method git-fetch)
@@ -2295,18 +2344,21 @@ simple (yet expressive) query language to select the tests to run.")
              (url "https://github.com/alainfrisch/ppx_tools")
              (commit version)))
        (file-name (git-file-name name version))
-       (sha256 (base32
-                "1ww4cspdpgjjsgiv71s0im5yjkr3544x96wsq1vpdacq7dr7zwiw"))))
-    (build-system ocaml-build-system)
+       (sha256
+        (base32
+         "15v7yfv6gyp8lzlgwi9garz10wpg34dk4072jdv19n6v20zfg7n1"))))
+    (build-system dune-build-system)
     (arguments
-     `(#:phases (modify-phases %standard-phases (delete 'configure))
-       #:tests? #f
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+     ;; No tests
+     `(#:tests? #f))
+    (native-inputs
+     (list ocaml-cppo))
     (properties `((upstream-name . "ppx_tools")))
     (home-page "https://github.com/alainfrisch/ppx_tools")
     (synopsis "Tools for authors of ppx rewriters and other syntactic tools")
-    (description "Tools for authors of ppx rewriters and other syntactic tools.")
+    (description
+     "Ppx_tools provides tools for authors of ppx rewriters and other
+syntactic tools.")
     (license license:expat)))
 
 (define-public ocaml-react
@@ -2322,9 +2374,7 @@ simple (yet expressive) query language to select the tests to run.")
                   "1aj8w79gdd9xnrbz7s5p8glcb4pmimi8jp9f439dqnf6ih3mqb3v"))))
     (build-system ocaml-build-system)
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)
-       ("opam" ,opam)
-       ("ocaml-topkg" ,ocaml-topkg)))
+     (list ocamlbuild opam ocaml-topkg))
     (arguments
      `(#:tests? #f
        #:build-flags (list "build")
@@ -2342,24 +2392,22 @@ lets the client choose the concrete timeline.")
 (define-public ocaml-ssl
   (package
     (name "ocaml-ssl")
-    (version "0.5.9")
+    (version "0.5.10")
     (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/savonet/ocaml-ssl")
-              (commit version)))
+              (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256 (base32
-                  "04h02rvzrwp886n5hsx84rnc9b150iggy38g5v1x1rwz3pkdnmf0"))))
+                  "1rszqiqayh67xlwd5411k8vib47x9kapdr037z1majd2c14z3kcb"))))
     (build-system dune-build-system)
     (arguments
      `(#:test-target "."))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("which" ,which)))
-    (propagated-inputs `(("openssl" ,openssl)))
+     (list autoconf automake which))
+    (propagated-inputs (list openssl))
     (home-page "https://github.com/savonet/ocaml-ssl/")
     (synopsis "OCaml bindings for OpenSSL")
     (description
@@ -2391,7 +2439,7 @@ for mapping files in memory.  This function is the same as the
 (define-public ocaml-lwt
   (package
     (name "ocaml-lwt")
-    (version "5.4.0")
+    (version "5.4.2")
     (source
       (origin
         (method git-fetch)
@@ -2400,22 +2448,16 @@ for mapping files in memory.  This function is the same as the
                (commit version)))
         (file-name (git-file-name name version))
         (sha256 (base32
-                 "1ay1zgadnw19r9hl2awfjr22n37l7rzxd9v73pjbahavwm2ay65d"))))
+                 "1gkld5ms63lxkaa41jfg8y34qm5lb3ls6mkw03s760zln8i1k3gy"))))
     (build-system dune-build-system)
     (arguments
      `(#:package "lwt"))
     (native-inputs
-     `(("ocaml-bisect-ppx" ,ocaml-bisect-ppx)
-       ("ocaml-cppo" ,ocaml-cppo)
-       ("pkg-config" ,pkg-config)))
+     (list ocaml-cppo pkg-config))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (propagated-inputs
-     `(("ocaml-mmap" ,ocaml-mmap)
-       ("ocaml-ocplib-endian" ,ocaml-ocplib-endian)
-       ("ocaml-result" ,ocaml-result)
-       ("ocaml-seq" ,ocaml-seq)
-       ("libev" ,libev)))
+     (list ocaml-mmap ocaml-ocplib-endian ocaml-result ocaml-seq libev))
     (home-page "https://github.com/ocsigen/lwt")
     (synopsis "Cooperative threads and I/O in monadic style")
     (description "Lwt provides typed, composable cooperative threads.  These
@@ -2428,23 +2470,22 @@ locks or other synchronization primitives.")
   (package
     (inherit ocaml-lwt)
     (name "ocaml-lwt-react")
-    (version "1.1.3")
+    (version "1.1.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                      (url "https://github.com/ocsigen/lwt")
                      ;; Version from opam
-                     (commit "4.3.0")))
+                     (commit "5.4.0")))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0f7036srqz7zmnz0n164734smgkrqz78r1i35cg30x31kkr3pnn4"))))
+                "1ay1zgadnw19r9hl2awfjr22n37l7rzxd9v73pjbahavwm2ay65d"))))
     (arguments
      `(#:package "lwt_react"))
     (properties `((upstream-name . "lwt_react")))
     (propagated-inputs
-     `(("ocaml-lwt" ,ocaml-lwt)
-       ("ocaml-react" ,ocaml-react)))))
+     (list ocaml-lwt ocaml-react))))
 
 (define-public ocaml-lwt-log
   (package
@@ -2490,8 +2531,7 @@ ocaml lwt.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)
-       ("opam" ,opam)))
+     (list ocamlbuild opam))
     (propagated-inputs
      `(("fmt" ,ocaml-fmt)
        ("lwt" ,ocaml-lwt)
@@ -2525,8 +2565,7 @@ message report is decoupled from logging and is handled by a reporter.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)
-       ("opam" ,opam)))
+     (list ocamlbuild opam))
     (propagated-inputs
      `(("topkg" ,ocaml-topkg)
        ("astring" ,ocaml-astring)))
@@ -2540,14 +2579,14 @@ file system and is independent from any system library.")
 (define-public ocaml-bos
   (package
     (name "ocaml-bos")
-    (version "0.2.0")
+    (version "0.2.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://erratique.ch/software/bos/releases/"
                                   "bos-" version ".tbz"))
               (sha256
                 (base32
-                  "1s10iqx8rgnxr5n93lf4blwirjf8nlm272yg5sipr7lsr35v49wc"))))
+                  "0dwg7lpaq30rvwc5z1gij36fn9xavvpah1bj8ph9gmhhddw2xmnq"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:tests? #f
@@ -2556,8 +2595,7 @@ file system and is independent from any system library.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)
-       ("opam" ,opam)))
+     (list ocamlbuild opam))
     (propagated-inputs
      `(("topkg" ,ocaml-topkg)
        ("astring" ,ocaml-astring)
@@ -2592,9 +2630,7 @@ run command line programs.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)
-       ("ocaml-topkg" ,ocaml-topkg)
-       ("opam" ,opam)))
+     (list ocamlbuild ocaml-topkg opam))
     (home-page "https://erratique.ch/software/xmlm")
     (synopsis "Streaming XML codec for OCaml")
     (description "Xmlm is a streaming codec to decode and encode the XML data
@@ -2620,10 +2656,9 @@ representation of the data.")
      `(#:package "gen"
        #:test-target "."))
     (propagated-inputs
-     `(("ocaml-odoc" ,ocaml-odoc)))
+     (list ocaml-odoc))
     (native-inputs
-     `(("ocaml-qtest" ,ocaml-qtest)
-       ("ocaml-qcheck" ,ocaml-qcheck)))
+     (list ocaml-qtest ocaml-qcheck))
     (home-page "https://github.com/c-cube/gen/")
     (synopsis "Iterators for OCaml, both restartable and consumable")
     (description "Gen implements iterators of OCaml, that are both restartable
@@ -2633,7 +2668,7 @@ and consumable.")
 (define-public ocaml-sedlex
   (package
     (name "ocaml-sedlex")
-    (version "2.3")
+    (version "2.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2642,7 +2677,7 @@ and consumable.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0iw3phlaqr27jdf857hmj5v5hdl0vngbb2h37p2ll18sw991fxar"))))
+                "13g8az4zqg6hrnxmy3qrasslppzlag13dd1dsr8vlpg2vpfmfv6i"))))
     (build-system dune-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -2666,13 +2701,8 @@ and consumable.")
            (lambda _
              (for-each (lambda (file) (chmod file #o644)) (find-files "." ".*"))
              #t)))))
-    (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)))
     (propagated-inputs
-     `(("ocaml-gen" ,ocaml-gen)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)
-       ("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned)
-       ("ocaml-uchar" ,ocaml-uchar)))
+     (list ocaml-gen ocaml-ppxlib ocaml-uchar))
     ;; These three files are needed by src/generator/data/dune, but would be
     ;; downloaded using curl at build time.
     (inputs
@@ -2718,6 +2748,9 @@ and consumable.")
                (sha256
                 (base32
                  "05f6qa8x3vhpdz1fcnpqk37fpnyyq13icqsk2gww5idjnh6kng26"))))
+     (propagated-inputs
+      `(("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned)
+        ,@(package-propagated-inputs ocaml-sedlex)))
      (properties '()))))
 
 (define-public ocaml-uchar
@@ -2739,8 +2772,7 @@ and consumable.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)
-       ("opam" ,opam)))
+     (list ocamlbuild opam))
     (home-page "https://github.com/ocaml/uchar")
     (synopsis "Compatibility library for OCaml's Uchar module")
     (description "The uchar package provides a compatibility library for the
@@ -2786,14 +2818,15 @@ string values and to directly encode characters in OCaml Buffer.t values.")
 (define-public ocaml-uunf
   (package
     (name "ocaml-uunf")
-    (version "13.0.0")
+    (version "14.0.0")
     (source
      (origin
        (method url-fetch)
-       (uri "https://erratique.ch/software/uunf/releases/uunf-13.0.0.tbz")
+       (uri (string-append "https://erratique.ch/software/uunf/releases/uunf-"
+                           version".tbz"))
        (sha256
         (base32
-         "1qci04nkp24kdls1z4s8kz5dzgky4nwd5r8345nwdrgwmxhw7ksm"))))
+         "17wv0nm3vvwcbzb1b09akw8jblmigyhbfmh1sy9lkb5756ni94a2"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:build-flags (list "build" "--tests" "true")
@@ -2809,16 +2842,17 @@ string values and to directly encode characters in OCaml Buffer.t values.")
      `(("ocamlbuild" ,ocamlbuild)
        ("opam" ,opam)
        ("topkg" ,ocaml-topkg)
-       ;; Test data is otherwise downloaded wit curl
+       ;; Test data is otherwise downloaded with curl
        ("NormalizationTest.txt"
         ,(origin
            (method url-fetch)
            (uri (string-append "https://www.unicode.org/Public/"
                                version
                                "/ucd/NormalizationTest.txt"))
+           (file-name (string-append "NormalizationTest-" version ".txt"))
            (sha256
-              (base32 "07g0ya4f6zfzvpp24ccxkb2yq568kh83gls85rjl950nv5fya3nn"))))))
-    (propagated-inputs `(("ocaml-uutf" ,ocaml-uutf)))
+              (base32 "0c93pqdkksf7b7zw8y2w0h9i5kkrsdjmh2cr5clrrhp6mg10rcvw"))))))
+    (propagated-inputs (list ocaml-uutf))
     (home-page "https://erratique.ch/software/uunf")
     (synopsis "Unicode text normalization for OCaml")
     (description
@@ -2878,7 +2912,7 @@ without a complete in-memory representation of the data.")
     (arguments
      `(#:test-target "tests"))
     (propagated-inputs
-     `(("ocaml-cmdliner" ,ocaml-cmdliner)))
+     (list ocaml-cmdliner))
     (home-page "https://www.typerex.org/ocp-indent.html")
     (synopsis "Tool to indent OCaml programs")
     (description
@@ -2900,7 +2934,7 @@ This package includes:
 (define-public ocaml-ocp-index
   (package
     (name "ocaml-ocp-index")
-    (version "1.2.1")
+    (version "1.3.2")
     (source
       (origin
         (method git-fetch)
@@ -2910,16 +2944,14 @@ This package includes:
         (file-name (git-file-name name version))
         (sha256
          (base32
-          "08r7mxdnxmhff37fw4hmrpjgckgi5kaiiiirwp4rmdl594z0h9c8"))))
+          "0y7fk8s477f40vvbsp4ikxv1v51y6bzj416bh1sc3f17rbnczpkk"))))
     (build-system dune-build-system)
     (arguments
      `(#:package "ocp-index"))
     (propagated-inputs
-     `(("ocaml-ocp-indent" ,ocaml-ocp-indent)
-       ("ocaml-re" ,ocaml-re)
-       ("ocaml-cmdliner" ,ocaml-cmdliner)))
+     (list ocaml-ocp-indent ocaml-re ocaml-cmdliner))
     (native-inputs
-     `(("ocaml-cppo" ,ocaml-cppo)))
+     (list ocaml-cppo))
     (home-page "https://www.typerex.org/ocp-index.html")
     (synopsis "Lightweight completion and documentation browsing for OCaml libraries")
     (description "This package includes only the @code{ocp-index} library
@@ -2950,8 +2982,8 @@ and command-line tool.")
              (substitute* "configure"
                (("-/bin/sh") (string-append "-" (which "bash")))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (inputs `(("curl" ,curl)))
+     (list pkg-config))
+    (inputs (list curl))
     (home-page "http://ocurl.forge.ocamlcore.org/")
     (synopsis "OCaml bindings for libcurl")
     (description "Client-side URL transfer library, supporting HTTP and a
@@ -2961,7 +2993,7 @@ multitude of other network protocols (FTP/SMTP/RTSP/etc).")
 (define-public ocaml-base64
   (package
     (name "ocaml-base64")
-    (version "3.4.0")
+    (version "3.5.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2970,23 +3002,11 @@ multitude of other network protocols (FTP/SMTP/RTSP/etc).")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0aa1m1sr8p1hgc10p96mij7p22r3qcysvzy6fz2jqamfgswchgqc"))))
+                "068hwdbpl7vx9jjpxdc6a10zqd8xa55j3xx7ga6fnwrlfsbs2pjj"))))
     (build-system dune-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'fix-dune
-           (lambda _
-             ;; This package expects dune 2, which unbundled its configurator
-             ;; module.  We still use dune 1, so we need to let it know we need
-             ;; its internal module.
-             (substitute* "config/dune"
-               (("dune-configurator") "dune.configurator"))
-             #t)))))
     (native-inputs
-     `(("ocaml-alcotest" ,ocaml-alcotest)
-       ("ocaml-bos" ,ocaml-bos)
-       ("ocaml-rresult" ,ocaml-rresult)))
+     (list ocaml-alcotest ocaml-bos ocaml-rresult))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-base64))))
     (home-page "https://github.com/mirage/ocaml-base64")
     (synopsis "Base64 encoding for OCaml")
     (description "Base64 is a group of similar binary-to-text encoding schemes
@@ -2994,6 +3014,25 @@ that represent binary data in an ASCII string format by translating it into a
 radix-64 representation.  It is specified in RFC 4648.")
     (license license:isc)))
 
+(define-public ocaml4.07-base64
+  (package-with-ocaml4.07
+    (package
+      (inherit ocaml-base64)
+      (version "3.2.0")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/mirage/ocaml-base64")
+                       (commit (string-append "v" version))))
+                (file-name (git-file-name "ocaml-base64" version))
+                (sha256
+                 (base32
+                  "1ilw3zj0w6cq7i4pvr8m2kv5l5f2y9aldmv72drlwwns013b1gwy"))))
+      (arguments
+       ;; Tests are likely incompatible with our recent alcotest
+       `(#:tests? #f))
+      (properties '()))))
+
 (define-public ocamlify
   (package
     (name "ocamlify")
@@ -3060,7 +3099,7 @@ OCaml code.")
                      (lambda* (#:key outputs #:allow-other-keys)
                        (substitute* "mk/osconfig_unix.mk"
                                     (("CC = cc") "CC = gcc")))))))
-    (native-inputs `(("hevea" ,hevea)))
+    (native-inputs (list hevea))
     (home-page "http://projects.camlcity.org/projects/omake.html")
     (synopsis "Build system designed for scalability and portability")
     (description "Similar to make utilities you may have used, but it features
@@ -3081,53 +3120,59 @@ many additional enhancements, including:
                    license:gpl2)))) ; OMake itself, with ocaml linking exception
                                     ; see LICENSE.OMake
 
+(define-public ocaml-benchmark
+  (package
+    (name "ocaml-benchmark")
+    (version "1.6")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/Chris00/ocaml-benchmark")
+               (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0d0vdfjgjzf1y6wkd714d8b0piv1z9qav5ahsapynqzk4b4ahhnp"))))
+    (build-system dune-build-system)
+    (arguments `(#:test-target "tests"))
+    (home-page "https://github.com/Chris00/ocaml-benchmark")
+    (synopsis "Benchmark running times of code")
+    (description
+      "This module provides a set of tools to measure the running times of
+your functions and to easily compare the results.  A statistical test
+is used to determine whether the results truly differ.")
+    (license license:lgpl3+)))
+
 (define-public ocaml-batteries
   (package
     (name "ocaml-batteries")
-    (version "2.10.0")
+    (version "3.3.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/ocaml-batteries-team/"
-                                  "batteries-included/releases/download/v"
-                                  version "/batteries-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/ocaml-batteries-team/batteries-included")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "08ghw87d56h1a6y1nnh3x2wy9xj25jqfk5sp6ma9nsyd37babb0h"))))
+                "1h03nkc3vajaijqhj1dy5hw85j2hwwxdkg8rvs2fc00qaf44ad1d"))))
     (build-system ocaml-build-system)
+    (propagated-inputs (list ocaml-num))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)
-       ("qtest" ,ocaml-qtest)))
-    (propagated-inputs
-     `(("ocaml-num" ,ocaml-num)))
+     (list ocamlbuild ocaml-benchmark ocaml-qcheck ocaml-qtest))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (delete 'check) ; tests are run by the build phase
+         (add-after 'unpack 'make-writable
+           (lambda _
+             (for-each make-file-writable (find-files "." "."))))
          (add-before 'build 'fix-nondeterminism
            (lambda _
              (substitute* "setup.ml"
                (("Sys.readdir dirname")
                 "let a = Sys.readdir dirname in Array.sort String.compare a; a"))
-             #t))
-         (replace 'build
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((files
-                     (map (lambda (str)
-                            (substring str 0 (- (string-length str) 1)))
-                          (append
-                            (find-files "src" ".*.mliv")
-                            (find-files "src" ".*.mlv")
-                            (find-files "src" ".*.mlp")))))
-               (apply invoke "ocamlbuild" "-no-links" "-use-ocamlfind" "-I" "num"
-                      "-lflag" "-dllpath-all" files)
-               (for-each (lambda (file)
-                           (copy-file (string-append "_build/" file) file))
-                         files))
-             (invoke "ocamlbuild" "-no-links" "-use-ocamlfind" "-I" "num"
-                     "-lflag" "-dllpath-all" "build/mkconf.byte")
-             (copy-file "_build/build/mkconf.byte" "build/mkconf.byte")
-             (invoke "make" "all")
              #t)))))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-batteries))))
     (home-page "http://batteries.forge.ocamlcore.org/")
     (synopsis "Development platform for the OCaml programming language")
     (description "Define a standard set of libraries which may be expected on
@@ -3135,6 +3180,54 @@ every compliant installation of OCaml and organize these libraries into a
 hierarchy of modules.")
     (license license:lgpl2.1+)))
 
+(define-public ocaml4.07-batteries
+  (package-with-ocaml4.07
+    (package
+      (inherit ocaml-batteries)
+      (version "2.10.0")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/ocaml-batteries-team/batteries-included")
+                       (commit (string-append "v" version))))
+                (file-name (git-file-name "ocaml-batteries" version))
+                (sha256
+                 (base32
+                  "02fxa1nkp7rpiwfp04n0sagdp9lad4dh9bvljp95xfshm1cx7y4q"))))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (delete 'check) ; tests are run by the build phase
+           (add-before 'build 'fix-nondeterminism
+             (lambda _
+               (substitute* "setup.ml"
+                 (("Sys.readdir dirname")
+                  "let a = Sys.readdir dirname in Array.sort String.compare a; a"))
+               #t))
+           (replace 'build
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let ((files
+                       (map (lambda (str)
+                              (substring str 0 (- (string-length str) 1)))
+                            (append
+                              (find-files "src" ".*.mliv")
+                              (find-files "src" ".*.mlv")
+                              (find-files "src" ".*.mlp")))))
+                 (apply invoke "ocamlbuild" "-no-links" "-use-ocamlfind" "-I" "num"
+                        "-lflag" "-dllpath-all" files)
+                 (for-each (lambda (file)
+                             (copy-file (string-append "_build/" file) file))
+                           files))
+               (invoke "ocamlbuild" "-no-links" "-use-ocamlfind" "-I" "num"
+                       "-lflag" "-dllpath-all" "build/mkconf.byte")
+               (copy-file "_build/build/mkconf.byte" "build/mkconf.byte")
+               (invoke "make" "all")
+               #t)))))
+      (native-inputs
+       `(("ocamlbuild" ,ocamlbuild)
+         ("qtest" ,ocaml-qtest)))
+      (properties '()))))
+
 (define-public ocaml-pcre
   (package
     (name "ocaml-pcre")
@@ -3154,8 +3247,7 @@ hierarchy of modules.")
      ;; No tests.
      '(#:tests? #f))
     (propagated-inputs
-     `(("dune-configurator" ,dune-configurator)
-       ("pcre" ,pcre)))
+     (list dune-configurator pcre))
     (native-inputs
      `(("pcre:bin" ,pcre "bin")))
     (home-page "https://mmottl.github.io/pcre-ocaml")
@@ -3197,7 +3289,7 @@ or a timeout.")
 (define-public ocaml-stdlib-shims
   (package
     (name "ocaml-stdlib-shims")
-    (version "0.1.0")
+    (version "0.3.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3206,7 +3298,7 @@ or a timeout.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "007dwywsr5285z0np6a9nr0h8iqmyzfrlx6s5xaqcwj69zabsrjm"))))
+                "0gmg8w67j3ww17llk7hl4dx0vq7p50rn5s4ib9sy984k543rz59h"))))
     (build-system dune-build-system)
     (home-page "https://github.com/ocaml/stdlib-shims")
     (synopsis "OCaml stdlib features backport to older OCaml compilers")
@@ -3219,7 +3311,7 @@ compatibility with older compiler to use these new features in their code.")
 (define-public ocaml-fileutils
   (package
     (name "ocaml-fileutils")
-    (version "0.6.2")
+    (version "0.6.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3228,12 +3320,12 @@ compatibility with older compiler to use these new features in their code.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "01qf51b8pb7vyfba7y0kb7ajwj1950im25d7f59821zwsibns3d9"))))
+                "0aa7p5qymi8p7iqym42yk2akjd1ff81fvaks82nhjc533zl01pnf"))))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-stdlib-shims" ,ocaml-stdlib-shims)))
+     (list ocaml-stdlib-shims))
     (native-inputs
-     `(("ocaml-ounit" ,ocaml-ounit)))
+     (list ocaml-ounit))
     (home-page "http://ocaml-fileutils.forge.ocamlcore.org")
     (synopsis "Pure OCaml functions to manipulate real file and filename")
     (description "Library to provide pure OCaml functions to manipulate real
@@ -3269,9 +3361,7 @@ file (POSIX like) and filename.")
     (arguments
      `(#:tests? #f))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)
-       ("ocamlify" ,ocamlify)
-       ("ocamlmod" ,ocamlmod)))
+     (list ocamlbuild ocamlify ocamlmod))
     (home-page "https://oasis.forge.ocamlcore.org")
     (synopsis "Integrates a configure, build, install system in OCaml projects")
     (description "OASIS is a tool to integrate a configure, build and install
@@ -3282,7 +3372,7 @@ build system and allows external tools to analyse your project easily.")
 (define-public ocaml-cppo
   (package
     (name "ocaml-cppo")
-    (version "1.6.6")
+    (version "1.6.8")
     (source
       (origin
         (method git-fetch)
@@ -3291,12 +3381,12 @@ build system and allows external tools to analyse your project easily.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256 (base32
-                  "1smcc0l6fh2n0y6bp96c69j5nw755jja99w0b206wx3yb2m4w2hs"))))
+                 "0xjb1dnj8lvdcccskrhrakknd9q4vfy5330sjbqpf4h95dsz90k9"))))
     (build-system dune-build-system)
     (arguments
      `(#:tests? #f))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)))
+     (list ocamlbuild))
     (home-page "https://github.com/mjambon/cppo")
     (synopsis "Equivalent of the C preprocessor for OCaml programs")
     (description "Cppo is an equivalent of the C preprocessor for OCaml
@@ -3350,7 +3440,7 @@ standard iterator type starting from 4.07.")
 (define-public ocaml-re
   (package
     (name "ocaml-re")
-    (version "1.9.0")
+    (version "1.10.3")
     (source
      (origin
        (method git-fetch)
@@ -3359,14 +3449,15 @@ standard iterator type starting from 4.07.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "07ycb103mr4mrkxfd63cwlsn023xvcjp0ra0k7n2gwrg0mwxmfss"))))
+        (base32 "1lj94y3zj6qff1yizf311h5ww15djbmnb1g43wd0jz3afa9gk59m"))))
     (build-system dune-build-system)
     (arguments
-     `(#:tests? #f))
+     `(#:test-target "."))
     (propagated-inputs
-     `(("ocaml-seq" ,ocaml-seq)))
+     (list ocaml-seq))
     (native-inputs
      `(("ounit" ,ocaml-ounit)))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-re))))
     (home-page "https://github.com/ocaml/ocaml-re/")
     (synopsis "Regular expression library for OCaml")
     (description "Pure OCaml regular expressions with:
@@ -3379,10 +3470,23 @@ standard iterator type starting from 4.07.")
 @end enumerate")
     (license license:expat)))
 
+(define-public ocaml4.07-re
+  (package-with-ocaml4.07
+    (package
+      (inherit ocaml-re)
+      (arguments
+       `(#:test-target "."
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-dune-version
+             (lambda _
+               (delete-file "dune-project"))))))
+      (properties '()))))
+
 (define-public ocaml-ocplib-endian
   (package
     (name "ocaml-ocplib-endian")
-    (version "1.0")
+    (version "1.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3390,12 +3494,13 @@ standard iterator type starting from 4.07.")
                      (commit version)))
               (sha256
                (base32
-                "0s1ld3kavz892b8awyxyg1mr98h2g61gy9ci5v6yb49bsii6wicw"))
+                "1klj4g451s7m5r8bxmwc1rpvngpqdm40csnx9smgc06pwy2fax2c"))
               (file-name (git-file-name name version))))
-    (build-system ocaml-build-system)
+    (build-system dune-build-system)
+    (arguments
+     `(#:test-target "tests"))
     (native-inputs
-     `(("cppo" ,ocaml-cppo)
-       ("ocamlbuild" ,ocamlbuild)))
+     `(("cppo" ,ocaml-cppo)))
     (home-page "https://github.com/OCamlPro/ocplib-endian")
     (synopsis "Optimised functions to read and write int16/32/64 from strings
 and bigarrays")
@@ -3408,7 +3513,7 @@ big- and little-endian, with their unsafe counter-parts.")
 (define-public ocaml-cstruct
   (package
     (name "ocaml-cstruct")
-    (version "4.0.0")
+    (version "6.0.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3417,13 +3522,16 @@ big- and little-endian, with their unsafe counter-parts.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0m4bz0digcsc8l2msfikwcbi1y371kccx6xnkwrz212mf5mp98bv"))))
+                "0gpyr3cf393j1ir7i2m2qhx75l21w6ad7imdd73xn0jy3pjg4wsj"))))
     (build-system dune-build-system)
     (arguments
      `(#:package "cstruct"
        #:test-target "."))
+    (propagated-inputs
+     (list ocaml-bigarray-compat))
     (native-inputs
-     `(("ocaml-alcotest" ,ocaml-alcotest)))
+     (list ocaml-alcotest))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-cstruct))))
     (home-page "https://github.com/mirage/ocaml-cstruct")
     (synopsis "Access C structures via a camlp4 extension")
     (description "Cstruct is a library and syntax extension to make it easier
@@ -3431,6 +3539,22 @@ to access C-like structures directly from OCaml.  It supports both reading and
 writing to these structures, and they are accessed via the Bigarray module.")
     (license license:isc)))
 
+(define-public ocaml4.07-cstruct
+  (package-with-ocaml4.07
+    (package
+      (inherit ocaml-cstruct)
+      (version "5.1.1")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/mirage/ocaml-cstruct")
+                       (commit (string-append "v" version))))
+                (file-name (git-file-name "ocaml-cstruct" version))
+                (sha256
+                 (base32
+                  "0jj3whs8r3jc524i9bb67rffh7y7r157hjgvws0bkxijxpjzwkbk"))))
+      (properties '()))))
+
 (define-public ocaml-hex
   (package
     (name "ocaml-hex")
@@ -3508,11 +3632,9 @@ JSON.")
     (arguments '(#:package "uri"
                  #:test-target "."))
     (propagated-inputs
-     `(("ocaml-stringext" ,ocaml-stringext)
-       ("ocaml-angstrom" ,ocaml-angstrom)))
+     (list ocaml-stringext ocaml-angstrom))
     (native-inputs
-     `(("ocaml-ounit" ,ocaml-ounit)
-       ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)))
+     (list ocaml-ounit ocaml-ppx-sexp-conv))
     (properties `((upstream-name . "uri")
                   (ocaml4.07-variant ,(delay ocaml4.07-uri))))
     (synopsis "RFC3986 URI/URL parsing library")
@@ -3638,7 +3760,7 @@ Format module of the OCaml standard library.")
        #:ocaml ,ocaml-4.07
        #:findlib ,ocaml4.07-findlib))
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (propagated-inputs
      `(("ocaml-xmlm" ,(package-with-ocaml4.07 ocaml-xmlm))
        ("ocaml-sedlex" ,(package-with-ocaml4.07 ocaml-sedlex))
@@ -3653,14 +3775,14 @@ tool and piqi-ocaml.")
 (define-public ocaml-uuidm
   (package
     (name "ocaml-uuidm")
-    (version "0.9.6")
+    (version "0.9.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://erratique.ch/software/uuidm/"
                                   "releases/uuidm-" version ".tbz"))
               (sha256
                (base32
-                "0hz4fdx0x16k0pw9995vkz5d1hmzz6b16wck9li399rcbfnv5jlc"))))
+                "1ivxb3hxn9bk62rmixx6px4fvn52s4yr1bpla7rgkcn8981v45r8"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:build-flags
@@ -3669,8 +3791,7 @@ tool and piqi-ocaml.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)
-       ("opam" ,opam)))
+     (list ocamlbuild opam))
     (propagated-inputs
      `(("cmdliner" ,ocaml-cmdliner)
        ("topkg" ,ocaml-topkg)))
@@ -3702,7 +3823,7 @@ and 4 (random based) according to RFC 4122.")
            (lambda* (#:key inputs #:allow-other-keys)
              (setenv "CONFIG_SHELL"
                      (search-input-file inputs "/bin/sh")))))))
-    (inputs `(("lablgtk" ,lablgtk)))
+    (inputs (list lablgtk))
     (properties `((upstream-name . "ocamlgraph")))
     (home-page "http://ocamlgraph.lri.fr/")
     (synopsis "Graph library for OCaml")
@@ -3739,8 +3860,7 @@ and 4 (random based) according to RFC 4122.")
        #:ocaml ,ocaml-4.07
        #:findlib ,ocaml4.07-findlib))
     (native-inputs
-     `(("which" ,which)
-       ("protobuf" ,protobuf))) ; for tests
+     (list which protobuf)) ; for tests
     (propagated-inputs
      `(("ocaml-num" ,(package-with-ocaml4.07 ocaml-num))
        ("ocaml-piqilib" ,ocaml4.07-piqilib)
@@ -3788,9 +3908,7 @@ XML and Protocol Buffers formats.")
       ("ocaml-uri" ,ocaml4.07-uri)
       ("ocaml-zarith" ,(package-with-ocaml4.07 ocaml-zarith))))
    (inputs
-    `(("gmp" ,gmp)
-      ("llvm" ,llvm-3.8)
-      ("ncurses" ,ncurses)))
+    (list gmp llvm-3.8 ncurses))
    (arguments
     `(#:use-make? #t
       #:phases
@@ -3857,91 +3975,109 @@ library is currently designed for Unicode Standard 3.2.")
     ;; with an exception for linked libraries to use a different license
     (license license:lgpl2.0+)))
 
-(define-public ocaml4.07-charinfo-width
-  (package
-    (name "ocaml4.07-charinfo-width")
-    (version "1.1.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://bitbucket.org/zandoye/charinfo_width"
-                                  "/get/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "00bv4p1yqs8y0z4z07wd9w9yyv669dikp9b04dcjbwpiy2wy0086"))))
-    (build-system dune-build-system)
-    (arguments
-     `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
-    (propagated-inputs
-     `(("ocaml-result" ,(package-with-ocaml4.07 ocaml-result))
-       ("ocaml-camomile" ,(package-with-ocaml4.07 ocaml-camomile))))
-    (native-inputs
-     `(("ocaml-ppx-expect" ,(package-with-ocaml4.07 ocaml-ppx-expect))))
-    (properties
-     `((upstream-name . "charInfo_width")))
-    (home-page "https://bitbucket.org/zandoye/charinfo_width/")
-    (synopsis "Determine column width for a character")
-    (description "This module is implements purely in OCaml a character width
+(define-public ocaml-charinfo-width
+  ;; Add LICENSE file and Dune tests
+  (let ((commit "20aaaa6dca8f1e0b1ace55b6f2a8ba5e5910b620"))
+    (package
+      (name "ocaml-charinfo-width")
+      (version (git-version "1.1.0" "1" commit))
+      (home-page "https://github.com/kandu/charinfo_width/")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url home-page)
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "04gil5hxm2jax9paw3i24d8zyzhyl5cphzfyryvy2lcrm3c485q0"))))
+      (build-system dune-build-system)
+      (propagated-inputs
+       (list ocaml-result ocaml-camomile))
+      (native-inputs
+       (list ocaml-ppx-expect))
+      (properties
+       `((upstream-name . "charInfo_width")))
+      (synopsis "Determine column width for a character")
+      (description "This module implements purely in OCaml a character width
 function that follows the prototype of POSIX's wcwidth.")
-    (license license:expat)))
+      (license license:expat))))
 
-(define-public ocaml4.07-zed
+(define-public ocaml-zed
   (package
-    (name "ocaml4.07-zed")
-    (version "2.0.3")
+    (name "ocaml-zed")
+    (version "3.1.0")
+    (home-page "https://github.com/ocaml-community/zed")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/diml/zed")
+             (url home-page)
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0pa9awinqr0plp4b2az78dwpvh01pwaljnn5ydg8mc6hi7rmir55"))))
+        (base32 "04vr1a94imsghm98iigc35rhifsz0rh3qz2qm0wam2wvp6vmrx0p"))))
     (build-system dune-build-system)
     (arguments
-     `(#:test-target "."
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
+     `(#:test-target "."))
     (propagated-inputs
-     `(("ocaml-camomile" ,(package-with-ocaml4.07 ocaml-camomile))
-       ("ocaml-charinfo-width" ,ocaml4.07-charinfo-width)
-       ("ocaml-react" ,(package-with-ocaml4.07 ocaml-react))))
-    (home-page "https://github.com/diml/zed")
-    (synopsis "Abstract engine for text editing in OCaml")
-    (description "Zed is an abstract engine for text edition.  It can be used
-to write text editors, edition widgets, readlines, etc.  You just have to
-connect an engine to your inputs and rendering functions to get an editor.")
+     `(("ocaml-charInfo-width" ,ocaml-charinfo-width)
+       ("ocaml-camomile" ,ocaml-camomile)
+       ("ocaml-react" ,ocaml-react)))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-zed))))
+    (synopsis "Abstract engine for text edition in OCaml")
+    (description
+     "This module provides an abstract engine for text edition.  It can be
+used to write text editors, edition widgets, readlines, and more.  The module
+Zed uses Camomile to fully support the Unicode specification, and implements
+an UTF-8 encoded string type with validation, and a rope datastructure to
+achieve efficient operations on large Unicode buffers.  Zed also features a
+regular expression search on ropes.  To support efficient text edition
+capabilities, Zed provides macro recording and cursor management facilities.")
     (license license:bsd-3)))
 
-(define-public ocaml4.07-lambda-term
+(define-public ocaml4.07-zed
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-zed)
+     (version "2.0.3")
+     (source (origin
+               (method git-fetch)
+               (uri (git-reference
+                     (url "https://github.com/ocaml-community/zed")
+                     (commit version)))
+               (file-name (git-file-name "ocaml4.07-zed" version))
+               (sha256
+                (base32
+                 "0pa9awinqr0plp4b2az78dwpvh01pwaljnn5ydg8mc6hi7rmir55"))))
+     (properties '()))))
+
+(define-public ocaml-lambda-term
   (package
-    (name "ocaml4.07-lambda-term")
-    (version "2.0.2")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/diml/lambda-term")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0zcjy6fvf0d3i2ssz96asl889n3r6bplyzk7xvb2s3dkxbgcisyy"))))
+    (name "ocaml-lambda-term")
+    (version "3.1.0")
+    (home-page "https://github.com/ocaml-community/lambda-term")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1k0ykiz0vhpyyj9fkss29ajas4fh1xh449j702xkvayqipzj1mkg"))))
     (build-system dune-build-system)
     (arguments
-     `(#:tests? #f
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
+     `(#:test-target "."))
     (propagated-inputs
-     `(("ocaml-lwt" ,(package-with-ocaml4.07 ocaml-lwt))
-       ("ocaml-lwt-log" ,(package-with-ocaml4.07 ocaml-lwt-log))
-       ("ocaml-lwt-react" ,(package-with-ocaml4.07 ocaml-lwt-react))
-       ("ocaml-zed" ,ocaml4.07-zed)))
-    (home-page "https://github.com/diml/lambda-term")
+     (list ocaml-lwt
+           ocaml-lwt-log
+           ocaml-react
+           ocaml-zed
+           ocaml-camomile
+           ocaml-lwt-react
+           ocaml-mew-vi))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-lambda-term))))
     (synopsis "Terminal manipulation library for OCaml")
     (description "Lambda-Term is a cross-platform library for manipulating the
 terminal.  It provides an abstraction for keys, mouse events, colors, as well as
@@ -3951,10 +4087,31 @@ manipulation than, for example, ncurses, by providing a native OCaml interface
 instead of bindings to a C library.")
     (license license:bsd-3)))
 
-(define-public ocaml4.07-utop
+(define-public ocaml4.07-lambda-term
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-lambda-term)
+     (version "2.0.2")
+     (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://github.com/ocaml-community/lambda-term")
+              (commit version)))
+        (file-name (git-file-name "ocaml4.07-lambda-term" version))
+        (sha256
+         (base32 "0zcjy6fvf0d3i2ssz96asl889n3r6bplyzk7xvb2s3dkxbgcisyy"))))
+     (propagated-inputs
+      `(("ocaml-lwt" ,ocaml-lwt)
+        ("ocaml-lwt-log" ,ocaml-lwt-log)
+        ("ocaml-lwt-react" ,ocaml-lwt-react)
+        ("ocaml-zed" ,ocaml-zed)))
+     (properties '()))))
+
+(define-public ocaml-utop
   (package
-    (name "ocaml4.07-utop")
-    (version "2.4.3")
+    (name "ocaml-utop")
+    (version "2.8.0")
     (source
      (origin
        (method git-fetch)
@@ -3963,21 +4120,16 @@ instead of bindings to a C library.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1bl4943qpi3qy152dbdm5glhx19zsiylmn4rcxi8l66g58hikyjp"))))
+        (base32 "1zf4hg33sblzh2f65vk0292jg4jlwa8702kfwpsg1kcg4w6nsfdp"))))
     (build-system dune-build-system)
     (arguments
-     `(#:test-target "."
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
+     `(#:test-target "."))
     (native-inputs
-     `(("cppo" ,(package-with-ocaml4.07 ocaml-cppo))))
+     (list ocaml-cppo))
     (propagated-inputs
-     `(("lambda-term" ,ocaml4.07-lambda-term)
-       ("lwt" ,(package-with-ocaml4.07 ocaml-lwt))
-       ("react" ,(package-with-ocaml4.07 ocaml-react))
-       ("camomile" ,(package-with-ocaml4.07 ocaml-camomile))
-       ("zed" ,ocaml4.07-zed)))
+     (list ocaml-lambda-term ocaml-lwt ocaml-lwt-react ocaml-camomile
+           ocaml-react))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-utop))))
     (home-page "https://github.com/ocaml-community/utop")
     (synopsis "Improved interface to the OCaml toplevel")
     (description "UTop is an improved toplevel for OCaml.  It can run in a
@@ -3985,10 +4137,32 @@ terminal or in Emacs.  It supports line editing, history, real-time and context
 sensitive completion, colors, and more.")
     (license license:bsd-3)))
 
+(define-public ocaml4.07-utop
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-utop)
+     (version "2.4.3")
+     (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://github.com/ocaml-community/utop")
+              (commit version)))
+        (file-name (git-file-name "ocaml4.07-utop" version))
+        (sha256
+         (base32 "1bl4943qpi3qy152dbdm5glhx19zsiylmn4rcxi8l66g58hikyjp"))))
+     (propagated-inputs
+      `(("ocaml-lambda-term" ,ocaml-lambda-term)
+        ("ocaml-lwt" ,ocaml-lwt)
+        ("ocaml-react" ,ocaml-react)
+        ("ocaml-camomile" ,ocaml-camomile)
+        ("ocaml-zed" ,ocaml-zed)))
+     (properties '()))))
+
 (define-public ocaml-integers
   (package
     (name "ocaml-integers")
-    (version "0.4.0")
+    (version "0.5.1")
     (home-page "https://github.com/ocamllabs/ocaml-integers")
     (source (origin
               (method git-fetch)
@@ -3998,7 +4172,7 @@ sensitive completion, colors, and more.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0yp3ab0ph7mp5741g7333x4nx8djjvxzpnv3zvsndyzcycspn9dd"))))
+                "0by5pc851fk7ccxqy1w2qc5jwn9z8whyqhs5gxlm5986vr9msnyi"))))
     (build-system dune-build-system)
     (arguments
      `(#:tests? #f)) ; no tests
@@ -4011,7 +4185,7 @@ long and size_t whose sizes depend on the host platform.")
 (define-public ocaml-ctypes
   (package
    (name "ocaml-ctypes")
-   (version "0.18.0")
+   (version "0.19.1")
    (home-page "https://github.com/ocamllabs/ocaml-ctypes")
    (source (origin
              (method git-fetch)
@@ -4021,34 +4195,27 @@ long and size_t whose sizes depend on the host platform.")
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "03zrbnl16m67ls0yfhq7a4k4238x6x6b3m456g4dw2yqwc153vks"))))
+               "1xi1a486gssrb23zln3sf7zn0rmyl1k684bdf9iqkhgpz607fq6s"))))
    (build-system ocaml-build-system)
    (arguments
-    `(#:tests? #f; require an old lwt
-      #:make-flags
+    `(#:make-flags
       (list (string-append "INSTALL_HEADERS = $(wildcard $($(PROJECT).dir)/*.h)"))
       #:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'make-writable
           (lambda _
-            (for-each
-              (lambda (file)
-                (let ((stat (stat file)))
-                  (chmod file (+ #o200 (stat:mode stat)))))
-              (find-files "." "."))
-            #t))
+            (for-each make-file-writable
+                      (find-files "."))))
         (delete 'configure))))
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    `(("pkg-config" ,pkg-config)
+      ("ounit" ,ocaml-ounit)
+      ("lwt" ,ocaml-lwt)))
    (propagated-inputs
     `(("bigarray-compat" ,ocaml-bigarray-compat)
       ("integers" ,ocaml-integers)))
    (inputs
-    `(("libffi" ,libffi)
-      ("ounit" ,ocaml-ounit)
-      ("lwt" ,ocaml-lwt)
-      ("topkg" ,ocaml-topkg)
-      ("opam" ,opam)))
+    (list libffi))
    (synopsis "Library for binding to C libraries using pure OCaml")
    (description "Ctypes is a library for binding to C libraries using pure
 OCaml.  The primary aim is to make writing C extensions as straightforward as
@@ -4120,10 +4287,7 @@ OCaml projects that contain C stubs.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)
-       ("ocaml-astring" ,ocaml-astring)
-       ("opam" ,opam)
-       ("pkg-config" ,pkg-config)))
+     (list ocamlbuild ocaml-astring opam pkg-config))
     (inputs
      `(("topkg" ,ocaml-topkg)
        ("sdl2" ,sdl2)
@@ -4152,7 +4316,7 @@ cross-platform SDL C library.")
     (inputs
      `(("menhir" ,ocaml-menhir)))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)))
+     (list ocamlbuild))
     (build-system ocaml-build-system)
     (arguments
      `(#:phases
@@ -4199,7 +4363,7 @@ developed in other systems.  In particular, it enjoys a minimalistic syntax.")
                   "1842wikq24c8rg0ac84vb1qby9ng1nssxswyyni4kq85lng5lcrp"))
                 (file-name (git-file-name name version))))
       (inputs
-       `(("dedukti" ,dedukti)))
+       (list dedukti))
       (build-system emacs-build-system)
       (arguments
        '(#:phases
@@ -4232,8 +4396,7 @@ Dedukti files.")
                 (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (inputs
-       `(("dedukti-mode" ,emacs-dedukti-mode)
-         ("flycheck-mode" ,emacs-flycheck)))
+       (list emacs-dedukti-mode emacs-flycheck))
       (synopsis "Flycheck integration for the dedukti language")
       (description "This package provides a frontend for Flycheck to perform
 syntax checking on dedukti files.")
@@ -4242,18 +4405,21 @@ syntax checking on dedukti files.")
 (define-public ocaml-jst-config
   (package
     (name "ocaml-jst-config")
-    (version "0.14.0")
+    (version "0.14.1")
     (source
-     (janestreet-origin
-      "jst-config" version
-      "1fppr29vn91zpqda8jlnp8bcssd4bf3rn36ig8fnd1yhjrsvz8f6"))
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/janestreet/jst-config")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "0sak7rrix8vd2bscbjxbxi1d9jyd27ik59dpybfxhzhsn9s1wllv"))))
     (build-system dune-build-system)
     (arguments '(#:tests? #f))           ; no tests
     (propagated-inputs
-      `(("ocaml-base" ,ocaml-base)
-        ("ocaml-ppx-assert" ,ocaml-ppx-assert)
-        ("ocaml-stdio" ,ocaml-stdio)
-        ("dune-configurator" ,dune-configurator)))
+      (list ocaml-base ocaml-ppx-assert ocaml-stdio dune-configurator))
     (home-page "https://github.com/janestreet/jst-config")
     (synopsis "Compile-time configuration for Jane Street libraries")
     (description "Defines compile-time constants used in Jane Street libraries
@@ -4290,11 +4456,8 @@ packages.")
     (build-system dune-build-system)
     (arguments '(#:tests? #f))           ; no tests
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-jane-street-headers" ,ocaml-jane-street-headers)
-       ("ocaml-jst-config" ,ocaml-jst-config)
-       ("ocaml-ppx-base" ,ocaml-ppx-base)
-       ("ocaml-ppx-optcomp" ,ocaml-ppx-optcomp)))
+     (list ocaml-base ocaml-jane-street-headers ocaml-jst-config
+           ocaml-ppx-base ocaml-ppx-optcomp))
     (properties `((upstream-name . "time_now")))
     (home-page
      "https://github.com/janestreet/time_now")
@@ -4323,13 +4486,13 @@ since the start of the Unix epoch.")
     (arguments
      `(#:tests? #f)) ;see home page README for further information
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-       ("ocaml-compiler-libs" ,ocaml-compiler-libs)
-       ("ocaml-sexplib0" ,ocaml-sexplib0)
-       ("ocaml-stdio" ,ocaml-stdio)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)
-       ("ocaml-time-now" ,ocaml-time-now)))
+     (list ocaml-base
+           ocaml-migrate-parsetree
+           ocaml-compiler-libs
+           ocaml-sexplib0
+           ocaml-stdio
+           ocaml-ppxlib
+           ocaml-time-now))
     (properties `((upstream-name . "ppx_inline_test")
                   (ocaml4.07-variant . ,(delay ocaml4.07-ppx-inline-test))))
     (synopsis "Syntax extension for writing in-line tests in ocaml code")
@@ -4392,8 +4555,7 @@ collection.")
            (lambda _
              (invoke "make" "install"))))))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)
-       ("ocaml-findlib" ,ocaml-findlib)))
+     (list ocamlbuild ocaml-findlib))
     (home-page "https://rlepigre.github.io/ocaml-bindlib/")
     (synopsis "OCaml Bindlib library for bound variables")
     (description "Bindlib is a library allowing the manipulation of data
@@ -4421,7 +4583,7 @@ or quantified formulas.")
     (arguments
      `(#:test-target "."))
     (propagated-inputs
-     `(("ocaml-stdlib-shims" ,ocaml-stdlib-shims)))
+     (list ocaml-stdlib-shims))
     (synopsis "Parsing library based on Earley Algorithm")
     (description "Earley is a parser combinator library base on Earley's
 algorithm.  It is intended to be used in conjunction with an OCaml syntax
@@ -4492,9 +4654,9 @@ than the first one.")
         (add-before 'build 'make-writable
           (lambda _ (for-each make-file-writable (find-files "." ".")))))))
    (inputs
-    `(("ocaml-easy-format" ,ocaml-easy-format)))
+    (list ocaml-easy-format))
    (native-inputs
-    `(("which" ,which)))
+    (list which))
    (synopsis "Data format designed for speed, safety, ease of use and backward
 compatibility")
    (description "Biniou (pronounced \"be new\" is a binary data format
@@ -4523,11 +4685,9 @@ than yojson), with 25-35% space savings.")
     (arguments
      `(#:test-target "."))
     (propagated-inputs
-     `(("ocaml-biniou" ,ocaml-biniou)
-       ("ocaml-easy-format" ,ocaml-easy-format)))
+     (list ocaml-biniou ocaml-easy-format))
     (native-inputs
-     `(("ocaml-alcotest" ,ocaml-alcotest)
-       ("ocaml-cppo" ,ocaml-cppo)))
+     (list ocaml-alcotest ocaml-cppo))
     (synopsis "Low-level JSON library for OCaml")
     (description "Yojson is an optimized parsing and printing library for the
 JSON format.  It addresses a few shortcomings of json-wheel including 2x
@@ -4561,10 +4721,7 @@ serializers and deserializers from type definitions.")
              (invoke "dune" "upgrade")
              #t)))))
     (inputs
-     `(("ocaml-fmt" ,ocaml-fmt)
-       ("ocaml-astring" ,ocaml-astring)
-       ("ocaml-logs" ,ocaml-logs)
-       ("ocaml-cmdliner" ,ocaml-cmdliner)))
+     (list ocaml-fmt ocaml-astring ocaml-logs ocaml-cmdliner))
     (synopsis
      "CRAM-testing framework for testing command line applications")
     (description "CRAM is a is functional testing framework for command line
@@ -4576,7 +4733,7 @@ format}.  @code{craml} is released as a single binary (called @code{craml}).")
 (define-public ocaml-dot-merlin-reader
   (package
     (name "ocaml-dot-merlin-reader")
-    (version "4.2-411")
+    (version "4.3.1-411")
     (source
      (origin
        (method git-fetch)
@@ -4586,14 +4743,12 @@ format}.  @code{craml} is released as a single binary (called @code{craml}).")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1vl6p8m2pag5j283h5g2gzxxfm599k6qhyrjkdf3kyc476fc9lw8"))))
+         "1nwgc9nyy80dc9cgkskyfwv9c785yjyg39s005d4wiagj4fy68v8"))))
     (build-system dune-build-system)
     (arguments '(#:package "dot-merlin-reader"
                  #:tests? #f))          ; no tests
     (inputs
-     `(("ocaml-yojson" ,ocaml-yojson)
-       ("ocaml-csexp" ,ocaml-csexp)
-       ("ocaml-result" ,ocaml-result)))
+     (list ocaml-yojson ocaml-csexp ocaml-result))
     (home-page "https://ocaml.github.io/merlin/")
     (synopsis "Reads config files for @code{ocaml-merlin}")
     (description "@code{ocaml-dot-merlin-reader} is an external reader for
@@ -4613,13 +4768,10 @@ format}.  @code{craml} is released as a single binary (called @code{craml}).")
              (when tests?
                (invoke "dune" "runtest" "-p" "merlin,dot-merlin-reader")))))))
     (inputs
-     `(("ocaml-yojson" ,ocaml-yojson)
-       ("ocaml-csexp" ,ocaml-csexp)
-       ("ocaml-result" ,ocaml-result)))
+     (list ocaml-yojson ocaml-csexp ocaml-result))
     (native-inputs
-     `(("ocaml-dot-merlin-reader" ,ocaml-dot-merlin-reader) ; required for tests
-       ("ocaml-mdx" ,ocaml-mdx)
-       ("jq" ,jq)))
+     (list ocaml-dot-merlin-reader ; required for tests
+           ocaml-mdx jq))
     (synopsis "Context sensitive completion for OCaml in Vim and Emacs")
     (description "Merlin is an editor service that provides modern IDE
 features for OCaml.  Emacs and Vim support is provided out-of-the-box.
@@ -4627,37 +4779,9 @@ External contributors added support for Visual Studio Code, Sublime Text and
 Atom.")
     (license license:expat)))
 
-;; ocaml-merlin 3.4.2 can not be built with old version of dune used in
-;; package-with-ocaml4.07
-(define-public ocaml4.07-merlin
-  (package-with-ocaml4.07
-   (package
-     (inherit ocaml-merlin)
-     (name "ocaml-merlin")
-     (version "3.2.2")
-     (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-              (url "https://github.com/ocaml/merlin")
-              (commit (string-append "v" version))))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "15ssgmwdxylbwhld9p1cq8x6kadxyhll5bfyf11dddj6cldna3hb"))))
-     (build-system dune-build-system)
-     (inputs
-      `(("ocaml-yojson" ,ocaml-yojson)))
-     (native-inputs
-      `(("ocaml-findlib" ,ocaml-findlib)))
-     (arguments
-      `(#:package "merlin"
-        ;; Errors in tests in version 3.2.2
-        #:tests? #f)))))
-
-(define-public ocaml4.07-gsl
+(define-public ocaml-gsl
   (package
-    (name "ocaml4.07-gsl")
+    (name "ocaml-gsl")
     (version "1.24.0")
     (source
      (origin
@@ -4677,16 +4801,11 @@ Atom.")
          (add-after 'unpack 'fix-gsl-directory
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "src/config/discover.ml"
-               (("/usr") (assoc-ref inputs "gsl")))
-             #t)))
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
+               (("/usr") (assoc-ref inputs "gsl"))))))))
     (inputs
-     `(("gsl" ,gsl)))
+     (list gsl))
     (propagated-inputs
-     `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
-       ("ocaml-stdio" ,(package-with-ocaml4.07 ocaml-stdio))))
+     (list ocaml-base ocaml-stdio))
     (home-page "https://mmottl.github.io/gsl-ocaml")
     (synopsis "Bindings to the GNU Scientific Library")
     (description
@@ -4695,26 +4814,25 @@ the OCaml language.")
     (license license:gpl3+)))
 
 (define-public ocaml4.07-gsl-1
-  (package
-    (inherit ocaml4.07-gsl)
-    (version "1.19.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/mmottl/gsl-ocaml"
-                                  "/releases/download/v"
-                                  version "/gsl-ocaml-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0nzp43hp8pbjqkrxnwp5lgjrabxayf61h18fjaydi0s5faq6f3xh"))))
-    (build-system ocaml-build-system)
-    (inputs
-     `(("gsl" ,gsl)))
-    (native-inputs
-     `(("ocamlbuild" ,(package-with-ocaml4.07 ocamlbuild))))
-    (arguments
-     `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
-    (propagated-inputs '())))
+  (package-with-ocaml4.07
+    (package
+      (inherit ocaml-gsl)
+      (version "1.19.3")
+      (source (origin
+                (method url-fetch)
+                (uri (string-append "https://github.com/mmottl/gsl-ocaml"
+                                    "/releases/download/v"
+                                    version "/gsl-ocaml-" version ".tar.gz"))
+                (sha256
+                 (base32
+                  "0nzp43hp8pbjqkrxnwp5lgjrabxayf61h18fjaydi0s5faq6f3xh"))))
+      (build-system ocaml-build-system)
+      (inputs
+       `(("gsl" ,gsl-static)))
+      (native-inputs
+       `(("ocamlbuild" ,ocamlbuild)))
+      (arguments '())
+      (propagated-inputs '()))))
 
 (define-public cubicle
   (package
@@ -4729,12 +4847,10 @@ the OCaml language.")
                 "10kk80jdmpdvql88sdjsh7vqzlpaphd8vip2lp47aarxjkwjlz1q"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("automake" ,automake)
-       ("ocaml" ,ocaml)
-       ("which" ,(@@ (gnu packages base) which))))
+     (list automake ocaml
+           (@@ (gnu packages base) which)))
     (propagated-inputs
-     `(("ocaml-num" ,ocaml-num)
-       ("z3" ,z3)))
+     (list ocaml-num z3))
     (arguments
      `(#:configure-flags (list "--with-z3")
        #:make-flags (list "QUIET=")
@@ -4814,15 +4930,20 @@ that was developed by Jane Street, the largest industrial user of OCaml.")
 (define-public ocaml-parsexp
   (package
     (name "ocaml-parsexp")
-    (version "0.14.0")
+    (version "0.14.1")
     (home-page "https://github.com/janestreet/parsexp")
-    (source
-     (janestreet-origin "parsexp" version
-                        "158znj19dvfdcwsgzs3rdhxpj1g4aw0d4nkfr8c05bahf0lnshlb"))
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url home-page)
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1nr0ncb8l2mkk8pqzknr7fsqw5kpz8y102kyv5bc0x7c36v0d4zy"))))
     (build-system dune-build-system)
     (inputs
-     `(("ocaml-sexplib0" ,ocaml-sexplib0)
-       ("ocaml-base" ,ocaml-base)))
+     (list ocaml-sexplib0 ocaml-base))
     (properties `((ocaml4.07-variant . ,(delay ocaml4.07-parsexp))))
     (synopsis "S-expression parsing library")
     (description
@@ -4873,10 +4994,7 @@ parsexp_io.")
                         "12rlnc6fcrjfdn3gs2agi418sj54ighhs6dfll37zcv7mgywblm2"))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-num" ,ocaml-num)
-       ("ocaml-parsexp" ,ocaml-parsexp)
-       ("ocaml-sexplib0" ,ocaml-sexplib0)))
+     (list ocaml-base ocaml-num ocaml-parsexp ocaml-sexplib0))
     (properties `((ocaml4.07-variant . ,(delay ocaml4.07-sexplib))))
     (synopsis
      "Library for serializing OCaml values to and from S-expressions")
@@ -4898,14 +5016,21 @@ functionality for parsing and pretty-printing s-expressions.")
 (define-public ocaml-base
   (package
     (name "ocaml-base")
-    (version "0.14.0")
+    (version "0.14.1")
     (home-page "https://github.com/janestreet/base")
     (source
-     (janestreet-origin "base" version
-         "1rkdhsgbcv0a8p29mwvpd2ldz8cjk97pixl43izm54wyin4lp778"))
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/janestreet/base")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "1hizjxmiqlj2zzkwplzjamw9rbnl0kh44sxgjpzdij99qnfkzylf"))))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-sexplib0" ,ocaml-sexplib0)))
+     (list ocaml-sexplib0))
     (properties `((ocaml4.07-variant . ,(delay ocaml4.07-base))))
     (synopsis
      "Full standard library replacement for OCaml")
@@ -4943,7 +5068,7 @@ provided by companion libraries such as
 (define-public ocaml-compiler-libs
   (package
     (name "ocaml-compiler-libs")
-    (version "0.12.3")
+    (version "0.12.4")
     (home-page "https://github.com/janestreet/ocaml-compiler-libs")
     (source
      (origin
@@ -4954,7 +5079,7 @@ provided by companion libraries such as
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "00nrar7h2pyflbdiq6wwwrb4k5jh9iff0jllihzm6ms8d5pspsg5"))))
+         "00if2f7j9d8igdkj4rck3p74y17j6b233l91mq02drzrxj199qjv"))))
     (build-system dune-build-system)
     (arguments `(#:tests? #f)) ;no tests
     (properties `((upstream-name . "ocaml-compiler-libs")
@@ -4994,8 +5119,7 @@ is now @code{Ocaml_common.Ast_helper}.")
                         "1hj5hraprqy2i90a690l11yjszvb99j818q3d684ryx6p2lddk0l"))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-sexplib0" ,ocaml-sexplib0)))
+     (list ocaml-base ocaml-sexplib0))
     (arguments `(#:tests? #f)) ;no tests
     (properties `((ocaml4.07-variant . ,(delay ocaml4.07-stdio))))
     (synopsis "Standard IO library for OCaml")
@@ -5015,6 +5139,35 @@ a more consistent API.")
                          "0pqbp2wy5fgmc38irwvmj9nlcvclb1ix1mp4y7l39bgvvlz303h9"))
      (properties '()))))
 
+(define-public ocaml-ppx-deriving
+  (package
+    (name "ocaml-ppx-deriving")
+    (version "5.2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ocaml-ppx/ppx_deriving")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1wqcnw4wi6pfjjhixpakckm03dpj990259za432804471a6spm2j"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:test-target "."))
+    (propagated-inputs
+     (list ocaml-ppx-derivers ocaml-ppxlib ocaml-result))
+    (native-inputs
+     (list ocaml-cppo ocaml-ounit2))
+    (properties `((upstream-name . "ppx_deriving")))
+    (home-page "https://github.com/ocaml-ppx/ppx_deriving")
+    (synopsis "Type-driven code generation for OCaml")
+    (description
+     "Ppx_deriving provides common infrastructure for generating code based
+on type definitions, and a set of useful plugins for common tasks.")
+    (license license:expat)))
+
 (define-public ocaml-ppx-derivers
   (package
     (name "ocaml-ppx-derivers")
@@ -5059,14 +5212,14 @@ as part of the same ocaml-migrate-parsetree driver.")
          "0jg5v4pssbl66hn5davpin1i57a0r3r54l96vpz5y99xk5w70xi1"))))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-compiler-libs" ,ocaml-compiler-libs)
-       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-       ("ocaml-stdlib-shims" ,ocaml-stdlib-shims)
-       ("ocaml-ppx-derivers" ,ocaml-ppx-derivers)
-       ("ocaml-stdio" ,ocaml-stdio)
-       ("ocaml-result" ,ocaml-result)
-       ("ocaml-sexplib0" ,ocaml-sexplib0)))
+     (list ocaml-base
+           ocaml-compiler-libs
+           ocaml-migrate-parsetree
+           ocaml-stdlib-shims
+           ocaml-ppx-derivers
+           ocaml-stdio
+           ocaml-result
+           ocaml-sexplib0))
     (properties `((ocaml4.07-variant . ,(delay ocaml4.07-ppxlib))))
     (synopsis
      "Base library and tools for ppx rewriters")
@@ -5138,9 +5291,7 @@ OCaml AST in the OCaml syntax;
      ;; (see https://github.com/janestreet/ppx_compare/issues/10)
      '(#:tests? #f))
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-base ocaml-migrate-parsetree ocaml-ppxlib))
     (properties `((upstream-name . "ppx_compare")
                   (ocaml4.07-variant . ,(delay ocaml4.07-ppx-compare))))
     (home-page "https://github.com/janestreet/ppx_compare")
@@ -5181,9 +5332,7 @@ by making sure that you only compare comparable values.")
     (build-system dune-build-system)
     (arguments `(#:tests? #f)) ; No tests
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-base ocaml-migrate-parsetree ocaml-ppxlib))
     (properties `((upstream-name . "fieldslib")
                   (ocaml4.07-variant . ,(delay ocaml4.07-fieldslib))))
     (home-page "https://github.com/janestreet/fieldslib")
@@ -5215,9 +5364,7 @@ of a record and create new record values.")
      ;; No tests
      `(#:tests? #f))
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-base ocaml-migrate-parsetree ocaml-ppxlib))
     (properties `((upstream-name . "variantslib")
                   (ocaml4.07-variant . ,(delay ocaml4.07-variantslib))))
     (home-page "https://github.com/janestreet/variantslib")
@@ -5259,10 +5406,8 @@ standard library.")
          "1zwirwqry24b48bg7d4yc845hvcirxyymzbw95aaxdcck84d30n8"))))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-fieldslib" ,ocaml-fieldslib)
-       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-base ocaml-fieldslib ocaml-migrate-parsetree
+           ocaml-ppxlib))
     (properties `((upstream-name . "ppx_fields_conv")
                   (ocaml4.07-variant . ,(delay ocaml4.07-ppx-fields-conv))))
     (synopsis "Generation of accessor and iteration functions for ocaml records")
@@ -5299,9 +5444,7 @@ new record values.")
          "0dbri9d00ydi0dw1cavswnqdmhjaaz80vap29ns2lr6mhhlvyjmj"))))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-base ocaml-migrate-parsetree ocaml-ppxlib))
     (properties `((upstream-name . "ppx_sexp_conv")
                   (ocaml4.07-variant . ,(delay ocaml4.07-ppx-sexp-conv))))
     (synopsis "Generation of S-expression conversion functions from type definitions")
@@ -5329,27 +5472,21 @@ definitions.")
 (define-public ocaml-ppx-variants-conv
   (package
     (name "ocaml-ppx-variants-conv")
-    (version "0.14.1")
+    (version "0.14.2")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/janestreet/ppx_variants_conv")
              (commit (string-append "v" version))))
-       (patches
-        (search-patches
-         ;; Fix build when building with ocaml-ppxlib@0.23.0.
-         "ocaml-ppx-variants-ppxlib-api-change.patch"))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0q6a43zrwqzdz7aja0k44a2llyjjj5xzi2kigwhsnww3g0r5ig84"))))
+         "1p11fiz4m160hs0xzg4g9rxchp053sz3s3d1lyciqixad1xi47a4"))))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-variantslib" ,ocaml-variantslib)
-       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-base ocaml-variantslib ocaml-migrate-parsetree
+           ocaml-ppxlib))
     (properties
      `((upstream-name . "ppx_variants_conv")
        (ocaml4.07-variant . ,(delay ocaml4.07-ppx-variants-conv))))
@@ -5396,10 +5533,8 @@ variant types.")
          "0c1m65kn27zvwmfwy7kk46ga76yw2a3ik9jygpy1b6nn6pi026w9"))))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
-       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-base ocaml-ppx-sexp-conv ocaml-migrate-parsetree
+           ocaml-ppxlib))
     (properties `((upstream-name . "ppx_custom_printf")
                   (ocaml4.07-variant . ,(delay ocaml4.07-ppx-custom-printf))))
     (synopsis "Printf-style format-strings for user-defined string conversion")
@@ -5495,11 +5630,8 @@ storage of large amounts of data.")
                 "0x4wgdvhgd8a49bzari52jpkykxpv6ncgp5ncda3xgg0a9r49s8n"))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-ppx-compare" ,ocaml-ppx-compare)
-       ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
-        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-base ocaml-ppx-compare ocaml-ppx-sexp-conv
+           ocaml-migrate-parsetree ocaml-ppxlib))
     (properties `((upstream-name . "ppx_hash")
                   (ocaml4.07-variant . ,(delay ocaml4.07-ppx-hash))))
     (home-page "https://github.com/janestreet/ppx_hash")
@@ -5538,9 +5670,7 @@ hash functions from type exrpessions and definitions.")
     (arguments
      `(#:tests? #f)) ; no test suite
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-base ocaml-migrate-parsetree ocaml-ppxlib))
     (properties `((upstream-name . "ppx_enumerate")
                   (ocaml4.07-variant . ,(delay ocaml4.07-ppx-enumerate))))
     (home-page "https://github.com/janestreet/ppx_enumerate")
@@ -5610,9 +5740,7 @@ many values).")
      ;; broken tests
      `(#:tests? #f))
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-base ocaml-migrate-parsetree ocaml-ppxlib))
     (properties `((upstream-name . "ppx_here")
                   (ocaml4.07-variant . ,(delay ocaml4.07-ppx-here))))
     (home-page "https://github.com/janestreet/ppx_here")
@@ -5760,9 +5888,7 @@ context such as function arguments.")
     (build-system dune-build-system)
     (arguments `(#:tests? #f)) ; No tests
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-base ocaml-migrate-parsetree ocaml-ppxlib))
     (properties `((upstream-name . "ppx_optional")
                   (ocaml4.07-variant . ,(delay ocaml4.07-ppx-optional))))
     (home-page "https://github.com/janestreet/ppx_optional")
@@ -5800,9 +5926,7 @@ else expression.")
          "1iflgfzs23asw3k6098v84al5zqx59rx2qjw0mhvk56avlx71pkw"))))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-stdio" ,ocaml-stdio)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-base ocaml-stdio ocaml-ppxlib))
     (properties `((upstream-name . "ppx_optcomp")
                   (ocaml4.07-variant . ,(delay ocaml4.07-ppx-optcomp))))
     (synopsis "Optional compilation for OCaml")
@@ -5831,9 +5955,7 @@ size, the version of the compiler, ...")
                         "1qcrnd86pbr1di5m6z4ps4p15qawwa02jxwz3xfd82hdbjmdwf1s"))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-base ocaml-migrate-parsetree ocaml-ppxlib))
     (properties `((upstream-name . "ppx_let")
                   (ocaml4.07-variant . ,(delay ocaml4.07-ppx-let))))
     (home-page "https://github.com/janestreet/ppx_let")
@@ -5851,7 +5973,7 @@ match expressions, and if expressions.")
       (janestreet-origin "ppx_let" version
                          "1wdfw6w4xbg97a35yg6bif9gggxniy9ddnrjfw1a0inkl2yamxkj"))
 
-     (properties `(upstream-name . "ppx_let")))))
+     (properties `((upstream-name . "ppx_let"))))))
 
 (define-public ocaml4.07-ppx-fail
   (package
@@ -5894,8 +6016,7 @@ position.")
     (build-system dune-build-system)
     (arguments `(#:test-target "tests"))
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-base ocaml-ppxlib))
     (properties `((upstream-name . "ppx_cold")))
     (synopsis "Syntax extension for indicating cold path")
     (description
@@ -5914,13 +6035,13 @@ https://github.com/ocaml/ocaml/issues/8563.")
                         "1l2rr4jz2q5b35ryn2z146z7m9v6k8krp5gpn8ilib66mnz5zx15"))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-ppx-cold" ,ocaml-ppx-cold)
-       ("ocaml-ppx-compare" ,ocaml-ppx-compare)
-       ("ocaml-ppx-here" ,ocaml-ppx-here)
-       ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
-       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-base
+           ocaml-ppx-cold
+           ocaml-ppx-compare
+           ocaml-ppx-here
+           ocaml-ppx-sexp-conv
+           ocaml-migrate-parsetree
+           ocaml-ppxlib))
     (properties `((upstream-name . "ppx_assert")
                   (ocaml4.07-variant . ,(delay ocaml4.07-ppx-assert))))
     (home-page "https://github.com/janestreet/ppx_assert")
@@ -5949,7 +6070,7 @@ useful errors on failure.")
 (define-public ocaml-ppx-expect
   (package
     (name "ocaml-ppx-expect")
-    (version "0.14.1")
+    (version "0.14.2")
     (source
      (origin
        (method git-fetch)
@@ -5959,16 +6080,16 @@ useful errors on failure.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0vbbnjrzpyk5p0js21lafr6fcp2wqka89p1876rdf472cmg0l7fv"))))
+         "1v886rsl93wdmaw61z10q8nqshf8hvlznj9gym2ljrjz4cqyjsa4"))))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-ppx-here" ,ocaml-ppx-here)
-       ("ocaml-ppx-inline-test" ,ocaml-ppx-inline-test)
-       ("ocaml-stdio" ,ocaml-stdio)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)
-       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-       ("ocaml-re" ,ocaml-re)))
+     (list ocaml-base
+           ocaml-ppx-here
+           ocaml-ppx-inline-test
+           ocaml-stdio
+           ocaml-ppxlib
+           ocaml-migrate-parsetree
+           ocaml-re))
     (properties `((upstream-name . "ppx_expect")
                   (ocaml4.07-variant . ,(delay ocaml4.07-ppx-expect))))
     (home-page "https://github.com/janestreet/ppx_expect")
@@ -6007,17 +6128,21 @@ to denote the expected output.")
 (define-public ocaml-ppx-js-style
   (package
     (name "ocaml-ppx-js-style")
-    (version "0.14.0")
+    (version "0.14.1")
     (source
-     (janestreet-origin "ppx_js_style" version
-      "141fgxfipfn5jdaxc946dmp5y4fcnbhxms9maji9ddywgx82ya7l"))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/janestreet/ppx_js_style")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "16ax6ww9h36xyn9acbm8zxv0ajs344sm37lgj2zd2bvgsqv24kxj"))))
     (build-system dune-build-system)
     (arguments `(#:tests? #f)) ; No tests
     (propagated-inputs
-     `(("ocaml-base" ,ocaml-base)
-       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-       ("ocaml-octavius" ,ocaml-octavius)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-base ocaml-migrate-parsetree ocaml-octavius ocaml-ppxlib))
     (properties `((upstream-name . "ppx_js_style")
                   (ocaml4.07-variant . ,(delay ocaml4.07-ppx-js-style))))
     (home-page "https://github.com/janestreet/ppx_js_style")
@@ -6081,14 +6206,14 @@ from type definitions.")
     (arguments
      `(#:test-target "."))
     (propagated-inputs
-     `(("ocaml-ppx-compare" ,ocaml-ppx-compare)
-       ("ocaml-ppx-cold" ,ocaml-ppx-cold)
-       ("ocaml-ppx-enumerate" ,ocaml-ppx-enumerate)
-       ("ocaml-ppx-hash" ,ocaml-ppx-hash)
-       ("ocaml-ppx-js-style" ,ocaml-ppx-js-style)
-       ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
-       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
-       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (list ocaml-ppx-compare
+           ocaml-ppx-cold
+           ocaml-ppx-enumerate
+           ocaml-ppx-hash
+           ocaml-ppx-js-style
+           ocaml-ppx-sexp-conv
+           ocaml-migrate-parsetree
+           ocaml-ppxlib))
     (properties `((upstream-name . "ppx_base")
                   (ocaml4.07-variant . ,(delay ocaml4.07-ppx-base))))
     (home-page "https://github.com/janestreet/ppx_base")
@@ -6455,13 +6580,9 @@ the full Core is not available, such as in Javascript.")
     (arguments
      `(#:package "markup"))
     (propagated-inputs
-     `(("ocaml-bisect-ppx" ,ocaml-bisect-ppx)
-       ("ocaml-uchar" ,ocaml-uchar)
-       ("ocaml-uutf" ,ocaml-uutf)
-       ("ocaml-lwt" ,ocaml-lwt)))
+     (list ocaml-bisect-ppx ocaml-uchar ocaml-uutf ocaml-lwt))
     (native-inputs
-     `(("ocaml-ounit2" ,ocaml-ounit2)
-       ("pkg-config" ,pkg-config)))
+     (list ocaml-ounit2 pkg-config))
     (properties
      `((ocaml4.07-variant . ,(delay (package-with-ocaml4.07 ocaml-markup0.8.0)))))
     (synopsis "Error-recovering functional HTML5 and XML parsers and writers")
@@ -6504,14 +6625,13 @@ stream, and convert everything to UTF-8.")
         (base32
          "0aif4abvfmi9xc1pvw5n5rbm6rzkkpsxyvdn0lanr33rjpvkwdlm"))))
     (native-inputs
-     `(("ocaml-ounit" ,ocaml-ounit)
-       ("pkg-config" ,pkg-config)))
+     (list ocaml-ounit pkg-config))
     (properties '())))
 
 (define-public ocaml-tyxml
   (package
     (name "ocaml-tyxml")
-    (version "4.4.0")
+    (version "4.5.0")
     (source
      (origin
        (method git-fetch)
@@ -6521,17 +6641,14 @@ stream, and convert everything to UTF-8.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1hw4phyadcfgywgh5sj87i76gp56qwxzwlcpfdwjbf6ggag9clmd"))))
+         "0bh66wknc7sx2r63kscp0hg6h73dkv6qpkx0cdz2qp7p28pg2ixz"))))
     (build-system dune-build-system)
     (inputs
-     `(("ocaml-re" ,ocaml-re)
-       ("ocaml-seq" ,ocaml-seq)
-       ("ocaml-uutf" ,ocaml-uutf)
-       ("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned)
-       ("ocaml-markup" ,ocaml-markup)))
+     (list ocaml-re ocaml-seq ocaml-uutf))
     (native-inputs
-     `(("ocaml-alcotest" ,ocaml-alcotest)))
+     (list ocaml-alcotest))
     (arguments `(#:package "tyxml"))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-tyxml))))
     (home-page "https://github.com/ocsigen/tyxml/")
     (synopsis "TyXML is a library for building correct HTML and SVG documents")
     (description "TyXML provides a set of convenient combinators that uses the
@@ -6543,6 +6660,22 @@ also create your own representation and use it to instantiate a new set of
 combinators.")
     (license license:lgpl2.1)))
 
+(define-public ocaml4.07-tyxml
+  (package-with-ocaml4.07
+    (package
+      (inherit ocaml-tyxml)
+      (version "4.4.0")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/ocsigen/tyxml")
+                       (commit version)))
+                (file-name (git-file-name "ocaml-tyxml" version))
+                (sha256
+                 (base32
+                  "1hw4phyadcfgywgh5sj87i76gp56qwxzwlcpfdwjbf6ggag9clmd"))))
+      (properties '()))))
+
 (define-public ocaml-bisect-ppx
   (package
     (name "ocaml-bisect-ppx")
@@ -6559,11 +6692,12 @@ combinators.")
          "1knglw1b2kjr9jnd8cpfzmm581abxxdcx9l3cd2balg6gnac7qk1"))))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-ppxlib" ,ocaml-ppxlib)
-       ("ocaml-cmdliner" ,ocaml-cmdliner)))
+     (list ocaml-ppxlib ocaml-cmdliner))
     (arguments
      ;; Tests require ocamlformat which would lead to circular dependencies
      '(#:tests? #f))
+    (properties `((upstream-name . "bisect_ppx")
+                  (ocaml4.07-variant . ,(delay ocaml4.07-bisect-ppx))))
     (home-page "https://github.com/aantron/bisect_ppx")
     (synopsis "Code coverage for OCaml")
     (description "Bisect_ppx helps you test thoroughly.  It is a small
@@ -6575,10 +6709,37 @@ Usage is simple - add package bisect_ppx when building tests, run your tests,
 then run the Bisect_ppx report tool on the generated visitation files.")
     (license license:mpl2.0)))
 
+(define-public ocaml4.07-bisect-ppx
+  (package-with-ocaml4.07
+    (package
+      (inherit ocaml-bisect-ppx)
+      (version "2.4.0")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/aantron/bisect_ppx")
+               (commit version)))
+         (file-name (git-file-name "ocaml-bisect-ppx" version))
+         (sha256
+          (base32
+           "1njs8xc108rrpx5am5zhhcn6vjva7rsphm8034qp5lgyvnhfgh7q"))))
+      (propagated-inputs
+       `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+         ("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned)
+         ,@(package-propagated-inputs ocaml-bisect-ppx)))
+      (native-inputs
+       `(("ocaml-ounit2" ,ocaml-ounit2)))
+      (arguments
+       `(#:test-target "."
+         ;; tests require git and network
+         #:tests? #f))
+      (properties '((upstream-name . "bisect_ppx"))))))
+
 (define-public ocaml-odoc
   (package
     (name "ocaml-odoc")
-    (version "1.5.2")
+    (version "2.0.0")
     (source
      (origin
        (method git-fetch)
@@ -6587,23 +6748,39 @@ then run the Bisect_ppx report tool on the generated visitation files.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0fqfyz48q7ss5bc4c5phmp4s3ka3vc08b8gfk8fvyryvb4bq27jm"))))
+        (base32 "0lkmanfn8pc0rgcn9cc4mv48i29q2w1nl01n21qqxpyyfavgc98s"))))
     (build-system dune-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-test
+           (lambda _
+             ;; test results expects #!/bin/sh but gets a store path instead
+             (substitute* "test/xref2/with.t/run.t"
+               (("#!/bin/sh") (string-append "#!" (which "sh")))))))))
     (inputs
-     `(("ocaml-alcotest" ,ocaml-alcotest)
-       ("ocaml-markup" ,ocaml-markup)
-       ("ocaml-sexplib" ,ocaml-sexplib)
-       ("ocaml-re" ,ocaml-re)
-       ("ocaml-uutf" ,ocaml-uutf)))
-    (native-inputs
-     `(("ocaml-astring" ,ocaml-astring)
-       ("ocaml-cmdliner" ,ocaml-cmdliner)
-       ("ocaml-cppo" ,ocaml-cppo)
-       ("ocaml-fpath" ,ocaml-fpath)
-       ("ocaml-result" ,ocaml-result)
-       ("ocaml-tyxml" ,ocaml-tyxml)
-       ("ocaml-bisect-ppx" ,ocaml-bisect-ppx)
-       ("tidy-html" ,tidy-html)))
+    (list ocaml-astring
+          ocaml-bisect-ppx
+          ocaml-cmdliner
+          ocaml-fmt
+          ocaml-fpath
+          ocaml-logs
+          ocaml-migrate-parsetree
+          ocaml-odoc-parser
+          ocaml-re
+          ocaml-result
+          ocaml-tyxml))
+  (native-inputs
+    (list ocaml-alcotest
+          ocaml-bos
+          ocaml-cppo
+          ocaml-findlib
+          ocaml-lwt
+          ocaml-markup
+          ocaml-ppx-expect
+          ocaml-version
+          ocaml-yojson
+          jq))
     (properties `((ocaml4.07-variant . ,(delay ocaml4.07-odoc))))
     (home-page "https://github.com/ocaml/odoc")
     (synopsis "OCaml documentation generator")
@@ -6632,10 +6809,9 @@ complexity of the OCaml module system.")
            "1jlc6dp3v90r1ra7r0jfw0xs8rylwdz9gymw4rd53h0p17cw1wnj"))))
     (build-system dune-build-system)
     (propagated-inputs
-      `(("ocaml-astring" ,ocaml-astring)
-        ("ocaml-result" ,ocaml-result)))
+      (list ocaml-astring ocaml-result))
     (native-inputs
-      `(("ocaml-ppx-expect" ,ocaml-ppx-expect)))
+      (list ocaml-ppx-expect))
     (home-page "https://github.com/ocaml-doc/odoc-parser")
     (synopsis "Parser for ocaml documentation comments")
     (description
@@ -6661,11 +6837,27 @@ language understood by ocamldoc.")
         (file-name (git-file-name name version))
         (sha256
          (base32 "0z2nisg1vb5xlk41hqw8drvj90v52wli7zvnih6a844cg6xsvvj2"))))
+     (arguments '())
+     (inputs
+      `(("ocaml-alcotest" ,ocaml-alcotest)
+        ("ocaml-markup" ,ocaml-markup)
+        ("ocaml-sexplib" ,ocaml-sexplib)
+        ("ocaml-re" ,ocaml-re)
+        ("ocaml-uutf" ,ocaml-uutf)))
+     (native-inputs
+      `(("ocaml-astring" ,ocaml-astring)
+        ("ocaml-cmdliner" ,ocaml-cmdliner)
+        ("ocaml-cppo" ,ocaml-cppo)
+        ("ocaml-fpath" ,ocaml-fpath)
+        ("ocaml-result" ,ocaml-result)
+        ("ocaml-tyxml" ,ocaml-tyxml)
+        ("ocaml-bisect-ppx" ,ocaml-bisect-ppx)
+        ("tidy-html" ,tidy-html)))
      (properties '()))))
 
-(define-public ocaml4.07-fftw3
+(define-public ocaml-fftw3
   (package
-    (name "ocaml4.07-fftw3")
+    (name "ocaml-fftw3")
     (version "0.8.4")
     (source
      (origin
@@ -6679,17 +6871,11 @@ language understood by ocamldoc.")
          "0l66yagjkwdcib6q55wd8wiap50vi23qiahkghlvm28z7nvbclfk"))))
     (build-system dune-build-system)
     (arguments
-     `(#:tests? #t
-       #:test-target "tests"
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
+     `(#:test-target "tests"))
     (propagated-inputs
-     `(("fftw" ,fftw)
-       ("fftwf" ,fftwf)))
+     (list fftw fftwf))
     (native-inputs
-     `(("ocaml-cppo" ,(package-with-ocaml4.07 ocaml-cppo))
-       ("ocaml-lacaml" ,ocaml4.07-lacaml)))
+     (list ocaml-cppo ocaml-lacaml))
     (home-page
      "https://github.com/Chris00/fftw-ocaml")
     (synopsis
@@ -6699,10 +6885,10 @@ language understood by ocamldoc.")
 library FFTW.")
     (license license:lgpl2.1))) ; with static linking exception.
 
-(define-public ocaml4.07-lacaml
+(define-public ocaml-lacaml
   (package
-    (name "ocaml4.07-lacaml")
-    (version "11.0.5")
+    (name "ocaml-lacaml")
+    (version "11.0.8")
     (source
      (origin
        (method git-fetch)
@@ -6712,18 +6898,12 @@ library FFTW.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "180yb79a3qgx067qcpm50q12hrimjygf06rgkzbish9d1zfm670c"))))
+         "115535kphchh2a434b48b408x9794j8zzrsdmacsgqdsrgy3rck4"))))
     (build-system dune-build-system)
     (arguments
-     `(#:tests? #f ; No test target.
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
+     `(#:tests? #f)) ; No test target.
     (native-inputs
-     `(("openblas" ,openblas)
-       ("lapack" ,lapack)
-       ("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
-       ("ocaml-stdio" ,(package-with-ocaml4.07 ocaml-stdio))))
+     (list openblas lapack ocaml-base ocaml-stdio))
     (home-page "https://mmottl.github.io/lacaml/")
     (synopsis
      "OCaml-bindings to BLAS and LAPACK")
@@ -6736,22 +6916,16 @@ convenience functions for vectors and matrices.")
 (define-public ocaml-cairo2
   (package
     (name "ocaml-cairo2")
-    (version "0.6.1")
+    (version "0.6.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/Chris00/ocaml-cairo")
                     (commit version)))
               (file-name (git-file-name name version))
-              (patches
-               (search-patches
-                ;; NOTE: This patch will be obsolete on the
-                ;; next tagged release. Remove it at that
-                ;; point.
-                "ocaml-cairo2-caml_ba_array-fix.patch"))
               (sha256
                (base32
-                "0wzysis9fa850s68qh8vrvqc6svgllhwra3kzll2ibv0wmdqrich"))))
+                "04rp5y1rlq1pw592yywhvqd5x7csmyi9ad4f32g99nakb10s4nhx"))))
     (build-system dune-build-system)
     (arguments
      `(#:test-target "tests"))
@@ -6760,7 +6934,7 @@ convenience functions for vectors and matrices.")
        ("gtk+-2" ,gtk+-2)
        ("lablgtk" ,lablgtk)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/Chris00/ocaml-cairo")
     (synopsis "Binding to Cairo, a 2D Vector Graphics Library")
     (description "Ocaml-cairo2 is a binding to Cairo, a 2D graphics library
@@ -6772,7 +6946,7 @@ and SVG file output.")
 (define-public ocaml-version
   (package
     (name "ocaml-version")
-    (version "3.0.0")
+    (version "3.4.0")
     (source
      (origin
        (method git-fetch)
@@ -6782,9 +6956,10 @@ and SVG file output.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "13770mp6adjjbx63zsbh6506dqxz241chw8c3y403sxpw45hnaw6"))))
+         "1c13zk1qna59m5z9jx7da3p7cxd48scpyk7zg7gi6gc6hx5hhjx8"))))
     (build-system dune-build-system)
     (arguments `(#:tests? #f))          ; no tests
+    (properties '((upstream-name . "ocaml-version")))
     (home-page
      "https://github.com/ocurrent/ocaml-version")
     (synopsis
@@ -6798,7 +6973,7 @@ variants.")
 (define-public ocaml-mdx
   (package
     (name "ocaml-mdx")
-    (version "1.9.0")
+    (version "1.11.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -6807,22 +6982,20 @@ variants.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0fhwaci8j73fx9xqapa9iv9xwjx73r6p8wh9xg6brnfbqkc38d5b"))))
+                "1w2vx4my9z6n57vjvsa3b9vwkbdzs1kq0cc58rf088qrh2lrx2ba"))))
     (build-system dune-build-system)
     (inputs
-     `(("ocaml-fmt" ,ocaml-fmt)
-       ("ocaml-astring" ,ocaml-astring)
-       ("ocaml-logs" ,ocaml-logs)
-       ("ocaml-cmdliner" ,ocaml-cmdliner)
-       ("ocaml-re" ,ocaml-re)
-       ("ocaml-result" ,ocaml-result)
-       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree-1)
-       ("ocaml-odoc" ,ocaml-odoc)
-       ("ocaml-version" ,ocaml-version)))
+     (list ocaml-fmt
+           ocaml-astring
+           ocaml-logs
+           ocaml-cmdliner
+           ocaml-re
+           ocaml-result
+           ocaml-odoc
+           ocaml-odoc-parser
+           ocaml-version))
     (native-inputs
-     `(("ocaml-cppo" ,ocaml-cppo)
-       ("ocaml-lwt" ,ocaml-lwt)
-       ("ocaml-alcotest" ,ocaml-alcotest)))
+     (list ocaml-cppo ocaml-lwt ocaml-alcotest))
     (home-page
      "https://github.com/realworldocaml/mdx")
     (synopsis
@@ -6881,8 +7054,7 @@ the FParsec library for FSharp by Stephan Tolksdorf.")
      '(#:package "mparser-re"
        #:tests? #f))
     (propagated-inputs
-     `(("ocaml-mparser" ,ocaml-mparser)
-       ("ocaml-re" ,ocaml-re)))
+     (list ocaml-mparser ocaml-re))
     (synopsis "MParser plugin for RE-based regular expressions")
     (description "This package provides RE-based regular expressions
 support for Mparser.")))
@@ -6896,8 +7068,7 @@ support for Mparser.")))
      '(#:package "mparser-pcre"
        #:tests? #f))
     (propagated-inputs
-     `(("ocaml-mparser" ,ocaml-mparser)
-       ("ocaml-pcre" ,ocaml-pcre)))
+     (list ocaml-mparser ocaml-pcre))
     (synopsis "MParser plugin for PCRE-based regular expressions")
     (description "This package provides PCRE-based regular expressions
 support for Mparser.")))
@@ -6932,14 +7103,14 @@ support for Mparser.")))
                (("\\(name lablgtk3\\)")
                 (string-append "(name lablgtk3)\n(version " ,version ")"))))))))
     (propagated-inputs
-     `(("ocaml-cairo2" ,ocaml-cairo2)))
+     (list ocaml-cairo2))
     (inputs
      `(("camlp5" ,camlp5)
        ("gtk+" ,gtk+)
        ("gtksourceview-3" ,gtksourceview-3)
        ("gtkspell3" ,gtkspell3)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/garrigue/lablgtk")
     (synopsis "OCaml interface to GTK+3")
     (description "LablGtk is an OCaml interface to GTK+ 1.2, 2.x and 3.x.  It
@@ -6983,10 +7154,9 @@ generate OCaml code from .glade files), libpanel, librsvg and quartz.")
     (build-system ocaml-build-system)
     (properties `((upstream-name . "reactiveData")))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)
-       ("opam" ,opam)))
+     (list ocamlbuild opam))
     (propagated-inputs
-     `(("ocaml-react" ,ocaml-react)))
+     (list ocaml-react))
     (home-page "https://github.com/ocsigen/reactiveData")
     (synopsis "Declarative events and signals for OCaml")
     (description
@@ -6999,7 +7169,7 @@ client chooses the concrete timeline.")
 (define-public ocaml-uucd
   (package
     (name "ocaml-uucd")
-    (version "13.0.0")
+    (version "14.0.0")
     (source
      (origin
        (method url-fetch)
@@ -7007,7 +7177,7 @@ client chooses the concrete timeline.")
                            "uucd-" version ".tbz"))
        (sha256
         (base32
-         "1fg77hg4ibidkv1x8hhzl8z3rzmyymn8m4i35jrdibb8adigi8v2"))))
+         "0fc737v5gj3339jx4x9xr096lxrpwvp6vaiylhavcvsglcwbgm30"))))
     (build-system ocaml-build-system)
     (arguments
      '(#:build-flags '("build" "--tests" "true")
@@ -7015,12 +7185,9 @@ client chooses the concrete timeline.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (propagated-inputs
-     `(("ocaml-xmlm" ,ocaml-xmlm)))
+     (list ocaml-xmlm))
     (native-inputs
-     `(("opam" ,opam)
-       ("ocaml-findlib" ,ocaml-findlib)
-       ("ocamlbuild" ,ocamlbuild)
-       ("ocaml-topkg" ,ocaml-topkg)))
+     (list opam ocaml-findlib ocamlbuild ocaml-topkg))
     (home-page "https://erratique.ch/software/uucd")
     (synopsis "Unicode character database decoder for OCaml")
     (description "Uucd is an OCaml module to decode the data of the Unicode
@@ -7032,7 +7199,7 @@ representations can be extracted.")
 (define-public ocaml-uucp
   (package
     (name "ocaml-uucp")
-    (version "13.0.0")
+    (version "14.0.0")
     (source
      (origin
        (method url-fetch)
@@ -7040,7 +7207,7 @@ representations can be extracted.")
                            "uucp-" version ".tbz"))
        (sha256
         (base32
-         "19kf8ypxaakacgg1dwwfzkc2zicaj88cmw11fw2z7zl24dn4gyiq"))))
+         "1yx9nih3d9prb9zizq8fzmmqylf24a6yifhf81h33znrj5xn1mpj"))))
     (build-system ocaml-build-system)
     (arguments
      '(#:build-flags '("build" "--tests" "true")
@@ -7048,13 +7215,13 @@ representations can be extracted.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("opam" ,opam)
-       ("ocaml-findlib" ,ocaml-findlib)
-       ("ocamlbuild" ,ocamlbuild)
-       ("ocaml-topkg" ,ocaml-topkg)
-       ("ocaml-uucd" ,ocaml-uucd)
-       ("ocaml-uunf" ,ocaml-uunf)
-       ("ocaml-uutf" ,ocaml-uutf)))
+     (list opam
+           ocaml-findlib
+           ocamlbuild
+           ocaml-topkg
+           ocaml-uucd
+           ocaml-uunf
+           ocaml-uutf))
     (home-page "https://erratique.ch/software/uucp")
     (synopsis "Unicode character properties for OCaml")
     (description "Uucp is an OCaml library providing efficient access to a
@@ -7064,7 +7231,7 @@ selection of character properties of the Unicode character database.")
 (define-public ocaml-uuseg
   (package
     (name "ocaml-uuseg")
-    (version "13.0.0")
+    (version "14.0.0")
     (source
      (origin
        (method url-fetch)
@@ -7072,7 +7239,7 @@ selection of character properties of the Unicode character database.")
                            "uuseg-" version ".tbz"))
        (sha256
         (base32
-         "1a635j8ra6p27g1ivfln3387lhwqmf6vq4r6bn7b6n1qsqyi1rls"))))
+         "1g9zyzjkhqxgbb9mh3cgaawscwdazv6y8kdqvmy6yhnimmfqv25p"))))
     (build-system ocaml-build-system)
     (arguments
      '(#:build-flags '("build" "--tests" "true")
@@ -7080,14 +7247,9 @@ selection of character properties of the Unicode character database.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (propagated-inputs
-     `(("ocaml-uucp" ,ocaml-uucp)
-       ("ocaml-uutf" ,ocaml-uutf)
-       ("ocaml-cmdliner" ,ocaml-cmdliner)))
+     (list ocaml-uucp ocaml-uutf ocaml-cmdliner))
     (native-inputs
-     `(("opam" ,opam)
-       ("ocaml-findlib" ,ocaml-findlib)
-       ("ocamlbuild" ,ocamlbuild)
-       ("ocaml-topkg" ,ocaml-topkg)))
+     (list opam ocaml-findlib ocamlbuild ocaml-topkg))
     (home-page "https://erratique.ch/software/uuseg")
     (synopsis "Unicode text segmentation for OCaml")
     (description "Uuseg is an OCaml library for segmenting Unicode text.  It
@@ -7103,7 +7265,7 @@ representation.")
 (define-public ocaml-fix
   (package
     (name "ocaml-fix")
-    (version "20201120")
+    (version "20211125")
     (source
       (origin
         (method git-fetch)
@@ -7113,7 +7275,7 @@ representation.")
         (file-name (git-file-name name version))
         (sha256
           (base32
-            "1j40mg1gy03c0djzx3nzmpvnl984s14n04zwcmp2xnlidq48kvs4"))))
+            "00vq2das1l8xca013z7z7jy5622fsy3jha2cj72psp22wx9199l1"))))
     (build-system dune-build-system)
     (arguments
      ;; No tests.
@@ -7134,18 +7296,41 @@ that involve memoization and recursion.")
        ;; No separate test suite from dune.
        #:tests? #f))
     (propagated-inputs
-     `(("ocaml-odoc" ,ocaml-odoc)))
-    (synopsis "Embed build informations inside executable")
+     (list ocaml-odoc))
+    (synopsis "Embed build information inside an executable")
     (description "This package allows one to access information about how the
 executable was built, such as the version of the project at which it was built
 or the list of statically linked libraries with their versions.  It supports
 reporting the version from the version control system during development to
 get an precise reference of when the executable was built.")))
 
+(define-public ocaml-either
+  (package
+    (name "ocaml-either")
+    (version "1.0.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/mirage/either")
+               (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32 "099p1m24vz5i0043zcfp88krzjsa2qbrphrm4bnx84gif5vgkxwm"))))
+    (build-system dune-build-system)
+    (arguments
+     ;; no tests
+     `(#:tests? #f))
+    (home-page "https://github.com/mirage/either")
+    (synopsis "Compatibility Either module")
+    (description "This library is a compatibility module for the Either module
+defined in OCaml 4.12.0.")
+    (license license:expat)))
+
 (define-public ocamlformat
   (package
     (name "ocamlformat")
-    (version "0.19.0")
+    (version "0.20.0")
     (source
       (origin
         (method git-fetch)
@@ -7155,7 +7340,7 @@ get an precise reference of when the executable was built.")))
         (file-name (git-file-name name version))
         (sha256
           (base32
-            "0dp4pkznz9yvqx9gxwbid1z2b8ajkr8i27zay9ghx69624hz3i4z"))))
+            "0zhvhb8ky0danmfvp4vvbh0pg89d7r7ka6m3q81vlyvb7gk08r6r"))))
     (build-system dune-build-system)
     (arguments
      '(#:package "ocamlformat"
@@ -7163,24 +7348,23 @@ get an precise reference of when the executable was built.")))
        ;; produced format is for test/cli/stdin.t
        #:tests? #f))
     (propagated-inputs
-      `(("ocaml-version" ,ocaml-version)
-        ("ocaml-base" ,ocaml-base)
-        ("ocaml-cmdliner" ,ocaml-cmdliner)
-        ("ocaml-dune-build-info" ,ocaml-dune-build-info)
-        ("ocaml-fix" ,ocaml-fix)
-        ("ocaml-fpath" ,ocaml-fpath)
-        ("ocaml-menhir" ,ocaml-menhir)
-        ("ocaml-odoc" ,ocaml-odoc)
-        ("ocaml-ppxlib" ,ocaml-ppxlib)
-        ("ocaml-re" ,ocaml-re)
-        ("ocaml-odoc-parser" ,ocaml-odoc-parser)
-        ("ocaml-stdio" ,ocaml-stdio)
-        ("ocaml-uuseg" ,ocaml-uuseg)
-        ("ocaml-uutf" ,ocaml-uutf)))
+      (list ocaml-version
+            ocaml-base
+            ocaml-cmdliner
+            ocaml-dune-build-info
+            ocaml-either
+            ocaml-fix
+            ocaml-fpath
+            ocaml-menhir
+            ocaml-odoc
+            ocaml-ppxlib
+            ocaml-re
+            ocaml-odoc-parser
+            ocaml-stdio
+            ocaml-uuseg
+            ocaml-uutf))
     (native-inputs
-      `(("ocaml-alcotest" ,ocaml-alcotest)
-        ("ocaml-ocp-indent" ,ocaml-ocp-indent)
-        ("ocaml-bisect-ppx" ,ocaml-bisect-ppx)))
+      (list ocaml-alcotest ocaml-ocp-indent ocaml-bisect-ppx))
     (home-page "https://github.com/ocaml-ppx/ocamlformat")
     (synopsis "Auto-formatter for OCaml code")
     (description "OCamlFormat is a tool to automatically format OCaml code in
@@ -7190,7 +7374,7 @@ a uniform style.")
 (define-public ocaml-bigstringaf
   (package
     (name "ocaml-bigstringaf")
-    (version "0.7.0")
+    (version "0.8.0")
     (home-page "https://github.com/inhabitedtype/bigstringaf")
     (source
      (origin
@@ -7201,15 +7385,14 @@ a uniform style.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1q1sqxzdnlrpl95ccrhl7lwy3zswgd9rbn19ildclh0lyi2vazbj"))))
+         "0z69g3bpgw4p7z9h5j70w75rnxfrd8c7nlhqq6xvvkkgbxafm1ll"))))
     (build-system dune-build-system)
     (arguments
      '(#:test-target "."))
     (propagated-inputs
-     `(("ocaml-bigarray-compat" ,ocaml-bigarray-compat)))
+     (list ocaml-bigarray-compat))
     (native-inputs
-     `(("ocaml-alcotest" ,ocaml-alcotest)
-       ("pkg-config" ,pkg-config)))
+     (list ocaml-alcotest pkg-config))
     (synopsis
      "Bigstring intrinsics and fast blits based on memcpy/memmove")
     (description
@@ -7221,6 +7404,79 @@ between Bigstrings and other string-like types.  @code{bigstringaf} provides
 these missing pieces.")
     (license license:bsd-3)))
 
+(define-public ocaml-trie
+  (package
+    (name "ocaml-trie")
+    (version "1.0.0")
+    (home-page "https://github.com/kandu/trie/")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0s7p9swjqjsqddylmgid6cv263ggq7pmb734z4k84yfcrgb6kg4g"))))
+    (build-system dune-build-system)
+    (arguments
+     '(#:tests? #f))                    ;no tests
+    (synopsis "Strict impure trie tree")
+    (description
+     "This module implements strict impure trie tree data structure for
+OCaml.")
+    (license license:expat)))
+
+(define-public ocaml-mew
+  (package
+    (name "ocaml-mew")
+    (version "0.1.0")
+    (home-page "https://github.com/kandu/mew")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0417xsghj92v3xa5q4dk4nzf2r4mylrx2fd18i7cg3nzja65nia2"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+     (list ocaml-result ocaml-trie))
+    (native-inputs
+     (list ocaml-ppx-expect))
+    (synopsis "General modal editing engine generator")
+    (description
+     "This package provides the core modules of Modal Editing Witch, a general
+modal editing engine generator.")
+    (license license:expat)))
+
+(define-public ocaml-mew-vi
+  (package
+    (name "ocaml-mew-vi")
+    (version "0.5.0")
+    (home-page "https://github.com/kandu/mew_vi")
+    (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit version)))
+       (file-name (git-file-name name version))
+        (sha256
+          (base32 "0lihbf822k5zasl60w5mhwmdkljlq49c9saayrws7g4qc1j353r8"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+      (list ocaml-mew ocaml-react))
+    (native-inputs
+     (list ocaml-ppx-expect))
+    (properties `((upstream-name . "mew_vi")))
+    (synopsis "Modal editing VI-like editing engine generator")
+    (description "This module provides a vi-like modal editing engine
+generator.")
+    (license license:expat)))
+
 (define-public ocaml-syntax-shims
   (package
     (name "ocaml-syntax-shims")
@@ -7242,8 +7498,8 @@ these missing pieces.")
     (synopsis
      "Backport new syntax to older OCaml versions")
     (description
-     "This packages backports new features of the language to older
-compilers, such as let+.")
+     "This package backports new language features such as @code{let+} to older
+OCaml compilers.")
     (license license:expat)))
 
 (define-public ocaml-angstrom
@@ -7267,11 +7523,9 @@ compilers, such as let+.")
      '(#:package "angstrom"
        #:test-target "."))
     (propagated-inputs
-     `(("ocaml-bigstringaf" ,ocaml-bigstringaf)))
+     (list ocaml-bigstringaf))
     (native-inputs
-     `(("ocaml-alcotest" ,ocaml-alcotest)
-       ("ocaml-ppx-let" ,ocaml-ppx-let)
-       ("ocaml-syntax-shims" ,ocaml-syntax-shims)))
+     (list ocaml-alcotest ocaml-ppx-let ocaml-syntax-shims))
     (synopsis "Parser combinators built for speed and memory-efficiency")
     (description
      "Angstrom is a parser-combinator library that makes it easy to write
@@ -7286,7 +7540,7 @@ Parsers are backtracking by default and support unbounded lookahead.")
 (define-public ocaml-graphics
   (package
     (name "ocaml-graphics")
-    (version "5.1.1")
+    (version "5.1.2")
     (home-page "https://github.com/ocaml/graphics")
     (source
      (origin
@@ -7297,10 +7551,10 @@ Parsers are backtracking by default and support unbounded lookahead.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "14w07ydji2nbdk366nfp2pzs9484xp9vqv63n345id13v48z8bfi"))))
+         "1q20f8y6ijxbvzik2ns4yl3w54q5z8kd0pby8i8c64a04hvly08m"))))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("libx11" ,libx11)))
+     (list libx11))
     (synopsis "The OCaml graphics library")
     (description
      "The graphics library provides a set of portable drawing primitives.
@@ -7317,10 +7571,8 @@ up to OCaml 4.08.")
      '(#:package "uri-sexp"
        #:test-target "."))
     (propagated-inputs
-      `(("ocaml-uri" ,ocaml-uri)
-        ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
-        ("ocaml-sexplib0" ,ocaml-sexplib0)))
-    (native-inputs `(("ocaml-ounit" ,ocaml-ounit)))
+      (list ocaml-uri ocaml-ppx-sexp-conv ocaml-sexplib0))
+    (native-inputs (list ocaml-ounit))
     (synopsis "RFC3986 URI/URL parsing library")
     (description "This package adds S-exp support to @code{ocaml-uri}.")))
 
@@ -7343,17 +7595,15 @@ up to OCaml 4.08.")
      '(#:package "cohttp"
        #:test-target "cohttp_test/src"))
     (propagated-inputs
-      `(("ocaml-re" ,ocaml-re)
-        ("ocaml-uri" ,ocaml-uri)
-        ("ocaml-uri-sexp" ,ocaml-uri-sexp)
-        ("ocaml-sexplib0" ,ocaml-sexplib0)
-        ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
-        ("ocaml-stringext" ,ocaml-stringext)
-        ("ocaml-base64" ,ocaml-base64)))
+      (list ocaml-re
+            ocaml-uri
+            ocaml-uri-sexp
+            ocaml-sexplib0
+            ocaml-ppx-sexp-conv
+            ocaml-stringext
+            ocaml-base64))
     (native-inputs
-      `(("ocaml-fmt" ,ocaml-fmt)
-        ("ocaml-jsonm" ,ocaml-jsonm)
-        ("ocaml-alcotest" ,ocaml-alcotest)))
+      (list ocaml-fmt ocaml-jsonm ocaml-alcotest))
     (home-page "https://github.com/mirage/ocaml-cohttp")
     (synopsis "OCaml library for HTTP clients and servers")
     (description
@@ -7378,22 +7628,20 @@ libraries.")
     (build-system dune-build-system)
     (arguments `(#:test-target "."))
     (propagated-inputs
-     `(("ocaml-ppxlib" ,ocaml-ppxlib)
-       ("ocaml-uchar" ,ocaml-uchar)
-       ("ocaml-menhir" ,ocaml-menhir)
-       ("ocaml-reactivedata" ,ocaml-reactivedata)
-       ("ocaml-cmdliner" ,ocaml-cmdliner)
-       ("ocaml-lwt" ,ocaml-lwt)
-       ("ocaml-tyxml" ,ocaml-tyxml)
-       ("ocaml-re" ,ocaml-re)
-       ("ocaml-uutf" ,ocaml-uutf)
-       ("ocaml-graphics" ,ocaml-graphics)
-       ("ocaml-yojson" ,ocaml-yojson)))
+     (list ocaml-ppxlib
+           ocaml-uchar
+           ocaml-menhir
+           ocaml-reactivedata
+           ocaml-cmdliner
+           ocaml-lwt
+           ocaml-tyxml
+           ocaml-re
+           ocaml-uutf
+           ocaml-graphics
+           ocaml-yojson))
     (native-inputs
      ;; for tests
-     `(("node" ,node)
-       ("ocaml-ppx-expect" ,ocaml-ppx-expect)
-       ("ocaml-num" ,ocaml-num)))
+     (list node ocaml-ppx-expect ocaml-num))
     (properties `((upstream-name . "js_of_ocaml")))
     (home-page "https://ocsigen.org/js_of_ocaml/")
     (synopsis "Compiler from OCaml bytecode to Javascript")
@@ -7426,7 +7674,7 @@ browsers and Node.js.")
                     (list texlive-fonts-ec texlive-preprint
                           texlive-hyperref texlive-bibtex)))))
     (propagated-inputs
-     `(("hevea" ,hevea)))
+     (list hevea))
     (home-page "https://www.lri.fr/~filliatr/bibtex2html/")
     (synopsis "BibTeX to HTML translator")
     (description "This package allows you to produce, from a set of
diff --git a/gnu/packages/ocr.scm b/gnu/packages/ocr.scm
index a60aeaa3b5..de321bb53f 100644
--- a/gnu/packages/ocr.scm
+++ b/gnu/packages/ocr.scm
@@ -63,7 +63,7 @@
               (base32
                "0divffvcaim89g4pvqs8kslbcxi475bcl3b4ynphf284k9zfdgx9"))))
     (build-system gnu-build-system)
-    (native-inputs `(("lzip" ,lzip)))
+    (native-inputs (list lzip))
     (home-page "https://www.gnu.org/software/ocrad/")
     (synopsis "Optical character recognition based on feature extraction")
     (description
@@ -182,7 +182,7 @@ monospaced or proportional.")
        ("sane-backends" ,sane-backends)
        ("qtbase" ,qtbase-5)
        ("qtspell" ,qtspell)
-       ("quazip" ,quazip)
+       ("quazip" ,quazip-0)
        ("tesseract" ,tesseract-ocr)))
     (home-page "https://github.com/manisandro/gImageReader")
     (synopsis "Qt front-end to tesseract-ocr")
@@ -269,5 +269,5 @@ that allows us to create any hand-written recognition systems with low-cost.")
              (chdir "zinnia/python")
              #t)))))
     (inputs
-     `(("zinnia" ,zinnia)))))
+     (list zinnia))))
 
diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm
index aa49f5fb6a..f1cab94e08 100644
--- a/gnu/packages/onc-rpc.scm
+++ b/gnu/packages/onc-rpc.scm
@@ -61,7 +61,7 @@
                             "tirpc/netconfig.h")
                (("/etc/netconfig") (string-append (assoc-ref outputs "out")
                                                   "/etc/netconfig"))))))))
-    (inputs `(("mit-krb5" ,mit-krb5)))
+    (inputs (list mit-krb5))
     (home-page "https://sourceforge.net/projects/libtirpc/")
     (synopsis "Transport-independent Sun/ONC RPC implementation")
     (description
@@ -101,10 +101,9 @@ IPv4 and IPv6.  ONC RPC is notably used by the network file system (NFS).")
      `(#:configure-flags
        `("--with-systemdsystemunitdir=no" "--enable-warmstarts")))
     (inputs
-     `(("libnsl" ,libnsl)
-       ("libtirpc" ,libtirpc)))
+     (list libnsl libtirpc))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://rpcbind.sourceforge.net/")
     (synopsis "Server to convert RPC program numbers into universal addresses")
     (description
@@ -156,7 +155,7 @@ from the protocol files.")
        ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("libtirpc" ,libtirpc)))
+     (list libtirpc))
     (synopsis "Public client interface for NIS(YP) and NIS+")
     (description "Libnsl is the public client interface for the Network
 Information Service / Yellow Pages (NIS/YP) and NIS+.  It includes IPv6 support.
diff --git a/gnu/packages/openbox.scm b/gnu/packages/openbox.scm
index 00c93c3864..873592c19e 100644
--- a/gnu/packages/openbox.scm
+++ b/gnu/packages/openbox.scm
@@ -22,6 +22,7 @@
   #:use-module ((guix licenses) #:select (gpl2+))
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
@@ -47,19 +48,19 @@
                (base32
                 "0vg2y1qddsdxkjv806mzpvmkgzliab8ll4s7zm7ma5jnriamirxb"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (propagated-inputs `(("python2-pyxdg" ,python2-pyxdg)))
-    (inputs `(("imlib2" ,imlib2)
-              ("libxml2" ,libxml2)
-              ("librsvg" ,librsvg)
-              ("libsm" ,libsm)
-              ("libxcursor" ,libxcursor)
-              ("libxinerama" ,libxinerama)
-              ("libxml2" ,libxml2)
-              ("libxrandr" ,libxrandr)
-              ("libxft" ,libxft)
-              ("pango" ,pango)
-              ("python-2" ,python-2)))
+    (native-inputs (list pkg-config))
+    (propagated-inputs (list python2-pyxdg))
+    (inputs (list imlib2
+                  libxml2
+                  (librsvg-for-system)
+                  libsm
+                  libxcursor
+                  libxinerama
+                  libxml2
+                  libxrandr
+                  libxft
+                  pango
+                  python-2))
     (synopsis "Box style window manager")
     (description
      "Openbox is a highly configurable, next generation window manager with
diff --git a/gnu/packages/opencl.scm b/gnu/packages/opencl.scm
index 2d5ccf0105..940f52587e 100644
--- a/gnu/packages/opencl.scm
+++ b/gnu/packages/opencl.scm
@@ -109,7 +109,7 @@
     (native-inputs
      `(("python" ,python-wrapper)))
     (propagated-inputs
-     `(("opencl-headers" ,opencl-headers)))
+     (list opencl-headers))
     (arguments
      `(#:configure-flags (list "-DBUILD_EXAMPLES=OFF" "-DBUILD_TESTS=OFF")
        ;; The regression tests require a lot more dependencies.
@@ -141,7 +141,7 @@
             (variable "OCL_ICD_VENDORS")
             (files '("etc/OpenCL/vendors")))))
     (home-page "https://github.com/KhronosGroup/OpenCL-ICD-Loader")
-    (inputs `(("opencl-headers" ,opencl-headers)))
+    (inputs (list opencl-headers))
     (synopsis "OpenCL Installable Client Driver")
     (description
      "OpenCL defines an Installable Client Driver (ICD) mechanism to allow
@@ -176,9 +176,9 @@ This package contains the Khronos official OpenCL ICD Loader.")
         (base32 "1sfxp6ai83i0vwdg7b05h0k07q6873q1z1avnyksj5zmzdnxya6j"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("opencl-headers" ,opencl-headers)))
+     (list opencl-headers))
     (inputs
-     `(("opencl-icd-loader" ,opencl-icd-loader)))
+     (list opencl-icd-loader))
     (arguments
      `(#:make-flags
        (list ,(string-append "CC=" (cc-for-target))
@@ -213,8 +213,7 @@ the system.")
         ;; There's a suspicious .isa binary file under kernels/.
         ;; Remove it.
         '(for-each delete-file (find-files "." "\\.isa$")))))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("python" ,python)))
+    (native-inputs (list pkg-config python))
     (inputs `(("clang@3.7" ,clang-3.7)
               ("clang-runtime@3.7" ,clang-runtime-3.7)
               ("glu" ,glu)
@@ -289,13 +288,10 @@ back-end for the LLVM compiler framework.")
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("libltdl" ,libltdl)
-       ("pkg-config" ,pkg-config)))
+     (list libltdl pkg-config))
     (inputs
-     `(("clang" ,clang)
-       ("hwloc" ,hwloc-2 "lib")
-       ("llvm" ,llvm)
-       ("opencl-icd-loader" ,opencl-icd-loader)))
+     (list clang
+           `(,hwloc-2 "lib") llvm opencl-icd-loader))
     (arguments
      `(#:configure-flags
        (list "-DENABLE_ICD=ON"
@@ -337,8 +333,7 @@ pocl.")
     (build-system python-build-system)
     (arguments `(#:tests? #f)) ; Tests depend on packages not present in Guix.
     (propagated-inputs
-     `(("python-appdirs" ,python-appdirs)
-       ("python-numpy" ,python-numpy)))
+     (list python-appdirs python-numpy))
     (home-page "https://pypi.org/project/pytools/")
     (synopsis "Assorted tools for Python")
     (description
@@ -380,14 +375,9 @@ A lexer, @code{pytools.lex}.
     (arguments
      `(#:tests? #f)) ; Tests cannot find pygpu_language_opencl.cpp
     (inputs
-     `(("opencl-headers" ,opencl-headers)
-       ("pybind11" ,pybind11)
-       ("opencl-icd-loader" ,opencl-icd-loader)))                     ;libOpenCL
+     (list opencl-headers pybind11 opencl-icd-loader))                     ;libOpenCL
     (propagated-inputs
-     `(("python-appdirs" ,python-appdirs)
-       ("python-numpy" ,python-numpy)
-       ("python-pytools" ,python-pytools)
-       ("python-mako" ,python-mako)))
+     (list python-appdirs python-numpy python-pytools python-mako))
     (home-page "http://mathema.tician.de/software/pyopencl")
     (synopsis "Python wrapper for OpenCL")
     (description
diff --git a/gnu/packages/opencog.scm b/gnu/packages/opencog.scm
index cca0b37ead..998d9b47ae 100644
--- a/gnu/packages/opencog.scm
+++ b/gnu/packages/opencog.scm
@@ -54,7 +54,7 @@
       (arguments
        `(#:test-target "tests"))
       (inputs
-       `(("boost" ,boost)))
+       (list boost))
       (native-inputs
        `(("cxxtest" ,cxxtest)
          ("python" ,python-minimal)
@@ -93,11 +93,7 @@ utilities use for typical programming tasks in multiple OpenCog projects.")
                               (assoc-ref %outputs "out")
                               "/share/guile/site/2.2/"))))
       (inputs
-       `(("boost" ,boost)
-         ("cogutil" ,cogutil)
-         ("gmp" ,gmp)
-         ("guile" ,guile-2.2)
-         ("postgresql" ,postgresql)))
+       (list boost cogutil gmp guile-2.2 postgresql))
       (native-inputs
        `(("cxxtest" ,cxxtest)
          ("python" ,python-minimal)
@@ -139,11 +135,7 @@ features not otherwise available.")
                               (assoc-ref %outputs "out")
                               "/share/guile/site/2.2/"))))
       (inputs
-       `(("atomspace" ,atomspace)
-         ("boost" ,boost)
-         ("cogutil" ,cogutil)
-         ("gmp" ,gmp)
-         ("guile" ,guile-2.2)))
+       (list atomspace boost cogutil gmp guile-2.2))
       (native-inputs
        `(("cxxtest" ,cxxtest)
          ("python" ,python-minimal)
@@ -182,12 +174,12 @@ OpenCog framework.")
                          (assoc-ref %outputs "out")
                          "/share/guile/site/2.2/"))))
       (inputs
-       `(("atomspace" ,atomspace)
-         ("boost" ,boost)
-         ("cogserver" ,cogserver)
-         ("cogutil" ,cogutil)
-         ("gmp" ,gmp)
-         ("guile" ,guile-2.2)))
+       (list atomspace
+             boost
+             cogserver
+             cogutil
+             gmp
+             guile-2.2))
       (native-inputs
        `(("cxxtest" ,cxxtest)
          ("python" ,python-minimal)
@@ -288,10 +280,7 @@ combination.")
                                          "/share/guile/site/2.2/opencog"))))
                #t)))))
       (inputs
-       `(("atomspace" ,atomspace)
-         ("cogutil" ,cogutil)
-         ("gmp" ,gmp)
-         ("guile" ,guile-2.2)))
+       (list atomspace cogutil gmp guile-2.2))
       (native-inputs
        `(("cxxtest" ,cxxtest)
          ("python" ,python-minimal)
diff --git a/gnu/packages/openkinect.scm b/gnu/packages/openkinect.scm
index 89e6c69cfc..e760f18367 100644
--- a/gnu/packages/openkinect.scm
+++ b/gnu/packages/openkinect.scm
@@ -64,9 +64,9 @@
                                (string-append rules-out "51-kinect.rules"))
                  #t))))))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (inputs
-       `(("libusb" ,libusb)))
+       (list libusb))
       (synopsis "Drivers and libraries for the Xbox Kinect device")
       (description "libfreenect is a userspace driver for the Microsoft Kinect.
 It supports: RGB and Depth Images, Motors, Accelerometer, LED and Audio.")
@@ -106,8 +106,7 @@ It supports: RGB and Depth Images, Motors, Accelerometer, LED and Audio.")
     (inherit libfreenect)
     (name "libfreenect-opencv")
     (inputs
-     `(("libfreenect" ,libfreenect)
-       ("opencv" ,opencv)))
+     (list libfreenect opencv))
     (arguments
      `(#:tests? #f                      ; package has no tests
        #:configure-flags '("-DBUILD_EXAMPLES=OFF"
@@ -124,12 +123,11 @@ library")))
     (inherit libfreenect)
     (name "python-libfreenect")
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (inputs
-     `(("libfreenect" ,libfreenect)))
+     (list libfreenect))
     (propagated-inputs
-     `(("python" ,python)
-       ("python-numpy" ,python-numpy)))
+     (list python python-numpy))
     (arguments
      `(#:tests? #f                      ; package has no tests
        #:configure-flags '("-DBUILD_EXAMPLES=OFF"
diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm
index 861568c018..b0ce899696 100644
--- a/gnu/packages/openldap.scm
+++ b/gnu/packages/openldap.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013, 2014, 2015, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016, 2021 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
@@ -80,14 +80,8 @@
               (base32
                "0nmlyqhc52v24b4awh914sczmvxbazgq2cnlycvb9dgcwvhlgfn7"))))
    (build-system gnu-build-system)
-   (inputs `(("bdb" ,bdb-5.3)
-             ("cyrus-sasl" ,cyrus-sasl)
-             ("gnutls" ,gnutls)
-             ("libgcrypt" ,libgcrypt)
-             ("zlib" ,zlib)))
-   (native-inputs `(("libtool" ,libtool)
-                    ("groff" ,groff)
-                    ("bdb" ,bdb-5.3)))
+   (inputs (list bdb-5.3 cyrus-sasl gnutls libgcrypt zlib))
+   (native-inputs (list libtool groff bdb-5.3))
    (arguments
     `(#:tests? #f
       #:configure-flags
@@ -129,14 +123,14 @@
 (define-public nss-pam-ldapd
   (package
     (name "nss-pam-ldapd")
-    (version "0.9.11")
+    (version "0.9.12")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://arthurdejong.org/nss-pam-ldapd/"
                                   "nss-pam-ldapd-" version ".tar.gz"))
               (sha256
                (base32
-                "1dna3r0q6sjhhlkhcp8x2zkslrd4y7701kk6fl5r940sdph1pmyh"))))
+                "050fzcmxmf6y15dlcffc4gxr3wkk7fliqqwhlwqzbjwk8vkn3mn6"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -157,13 +151,9 @@
              (substitute* "Makefile.in"
                (("\\$\\(DESTDIR\\)\\$\\(NSLCD_CONF_PATH\\)")
                 (string-append (assoc-ref outputs "out")
-                               "/etc/nslcd.conf.example")))
-             #t)))))
+                               "/etc/nslcd.conf.example"))))))))
     (inputs
-     `(("linux-pam" ,linux-pam)
-       ("openldap" ,openldap)
-       ("mit-krb5" ,mit-krb5)
-       ("python" ,python)))
+     (list linux-pam openldap mit-krb5 python))
     (home-page "https://arthurdejong.org/nss-pam-ldapd")
     (synopsis "NSS and PAM modules for LDAP")
     (description "nss-pam-ldapd provides a @dfn{Name Service Switch} (NSS)
@@ -200,12 +190,9 @@ an LDAP server.")
                                       "/etc/openldap/schema/")))
              #t)))))
     (inputs
-     `(("openldap" ,openldap)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("mit-krb5" ,mit-krb5)))
+     (list openldap cyrus-sasl mit-krb5))
     (propagated-inputs
-     `(("python-pyasn1" ,python-pyasn1)
-       ("python-pyasn1-modules" ,python-pyasn1-modules)))
+     (list python-pyasn1 python-pyasn1-modules))
     (home-page "https://www.python-ldap.org/")
     (synopsis "Python modules for implementing LDAP clients")
     (description
@@ -216,20 +203,20 @@ servers from Python programs.")
 (define-public 389-ds-base
   (package
     (name "389-ds-base")
-    (version "1.4.0.31")
+    (version "1.4.4.17")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://releases.pagure.org/389-ds-base/"
-                                  "389-ds-base-" version ".tar.bz2"))
+              (uri (string-append "https://github.com/389ds/389-ds-base/archive/"
+                                  "389-ds-base-" version ".tar.gz"))
               (sha256
                (base32
-                "1rs218iqxyclccsdqb529favdsmz88zw785lsxd9ln43ja3x3l65"))))
+                "0i8m4crbnjjhfb7cq758rd0fxyz36i291yq6fykkprjykz9s3zv4"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((srfi srfi-1)
                   (guix build gnu-build-system)
                   ((guix build python-build-system)
-                   #:select (add-installed-pythonpath))
+                   #:select (add-installed-pythonpath python-version))
                   (guix build utils))
        #:imported-modules ((guix build python-build-system)
                            ,@%gnu-build-system-modules)
@@ -256,9 +243,14 @@ servers from Python programs.")
            (lambda _
              (substitute* "include/ldaputil/certmap.h"
                (("nss3/cert.h") "nss/cert.h"))
+             (substitute* "src/lib389/lib389/utils.py"
+               (("'/sbin/ip'")
+                (string-append "'" (which "ip") "'")))
              (substitute* "src/lib389/lib389/nss_ssl.py"
                (("'/usr/bin/certutil'")
                 (string-append "'" (which "certutil") "'"))
+               (("'/usr/bin/openssl'")
+                (string-append "'" (which "openssl") "'"))
                (("'/usr/bin/c_rehash'")
                 (string-append "'" (which "perl") "', '"
                                (which "c_rehash") "'")))))
@@ -282,7 +274,11 @@ servers from Python programs.")
                   "etc_dirsrv_path = '/etc/dirsrv/'\n")))))
          (add-after 'unpack 'fix-install-location-of-python-tools
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out")))
+             (let* ((out (assoc-ref outputs "out"))
+                    (pythondir (string-append
+                                out "/lib/python"
+                                (python-version (assoc-ref inputs "python"))
+                                "/site-packages/")))
                ;; Install directory must be on PYTHONPATH.
                (add-installed-pythonpath inputs outputs)
                ;; Install directory must exist.
@@ -318,8 +314,7 @@ servers from Python programs.")
                            "/sbin/dsctl"
                            "/sbin/dsidm"
                            "/bin/ds-logpipe.py"
-                           "/bin/ds-replcheck"
-                           "/bin/readnsstate"))))))))
+                           "/bin/ds-replcheck"))))))))
     (inputs
      `(("bdb" ,bdb)
        ("cracklib" ,cracklib)
@@ -327,6 +322,7 @@ servers from Python programs.")
        ("gnutls" ,gnutls)
        ("httpd" ,httpd)
        ("icu4c" ,icu4c)
+       ("iproute" ,iproute)
        ("libevent" ,libevent)
        ("libselinux" ,libselinux)
        ("linux-pam" ,linux-pam)
@@ -388,9 +384,7 @@ Other features include:
          "013bl6h1m3f7vg1lk89d4vi28wbf31zdcs4f9g8css7ngx63v6px"))))
     (build-system python-build-system)
     (inputs
-     `(("mit-krb5" ,mit-krb5)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("openldap" ,openldap)))
+     (list mit-krb5 cyrus-sasl openldap))
     ;; disabling tests, since they require docker and extensive setup
     (arguments `(#:tests? #f))
     (home-page "https://github.com/noirello/bonsai")
diff --git a/gnu/packages/openpgp.scm b/gnu/packages/openpgp.scm
index a5b8f1b09d..40df62a6d7 100644
--- a/gnu/packages/openpgp.scm
+++ b/gnu/packages/openpgp.scm
@@ -46,8 +46,7 @@
                 "179b5jx3mqs9hgsj8cfwk6x8qib60kw9szk9fkz6s1gl3v83mnyx"))))
     (build-system gnu-build-system)
     (arguments '(#:configure-flags '("--enable-silent-rules")))
-    (inputs `(("gmp" ,gmp)
-              ("libgcrypt" ,libgcrypt)))
+    (inputs (list gmp libgcrypt))
     (synopsis
      "C++ library for creating secure and fair online card games")
     (description
@@ -79,11 +78,7 @@ LibTMCG provides the first practical implementation of such protocols.")
                  '("--enable-silent-rules")
                  ;; https://savannah.nongnu.org/bugs/?58772
                  #:parallel-tests? #f))
-    (inputs `(("bzip2" ,bzip2)
-              ("gmp" ,gmp)
-              ("libgcrypt" ,libgcrypt)
-              ("libtmcg" ,libtmcg)
-              ("zlib" ,zlib)))
+    (inputs (list bzip2 gmp libgcrypt libtmcg zlib))
     (synopsis
      "Distributed Key Generation and Threshold Cryptography for OpenPGP")
     (description
@@ -159,10 +154,7 @@ environments.")
          ("pkg-config" ,pkg-config)
          ("python" ,python)
          ("python2" ,python-2.7)))
-      (inputs `(("botan" ,botan)
-                ("bzip2" ,bzip2)
-                ("json-c" ,json-c)
-                ("zlib" ,zlib)))
+      (inputs (list botan bzip2 json-c zlib))
       (synopsis
        "RFC4880-compliant OpenPGP library written in C++")
       (description
diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 6e36d298f5..b0395fd7d0 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017, 2019 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2016, 2017, 2019, 2021 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
@@ -27,6 +27,7 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
@@ -61,12 +62,9 @@
      ;; python-stestr.
      `(#:tests? #f))
     (propagated-inputs
-     `(("python-gitpython" ,python-gitpython)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-six" ,python-six)
-       ("python-stevedore" ,python-stevedore)))
+     (list python-gitpython python-pyyaml python-six python-stevedore))
     (native-inputs
-     `(("python-pbr" ,python-pbr)))
+     (list python-pbr))
     (home-page "https://github.com/PyCQA/bandit")
     (synopsis "Security oriented static analyser for python code")
     (description "Bandit is a tool designed to find common security issues in
@@ -90,14 +88,14 @@ scanning all the files it generates a report.")
     (arguments
      `(#:tests? #f))
     (native-inputs
-     `(("python-pbr" ,python-pbr)))
+     (list python-pbr))
     (propagated-inputs
-     `(("python-cmd2" ,python-cmd2)
-       ("python-prettytable" ,python-prettytable)
-       ("python-pyparsing" ,python-pyparsing)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-bandit" ,python-bandit)
-       ("python-stevedore" ,python-stevedore)))
+     (list python-cmd2
+           python-prettytable
+           python-pyparsing
+           python-pyyaml
+           python-bandit
+           python-stevedore))
     (home-page "https://opendev.org/openstack/cliff")
     (synopsis "Framework for building command line programs")
     (description "The @code{cliff} framework allows creating multi-level
@@ -120,14 +118,10 @@ formatters, and other extensions.")
            "06c7vyn184y9f0lsrwaz13aq63hdz5fjrd191b8nifx6acsni42f"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pbr" ,python-pbr)
-       ("python-six" ,python-six)
-       ("python-wrapt" ,python-wrapt)))
+     (list python-pbr python-six python-wrapt))
     (native-inputs
-     `(;; Tests.
-       ("python-subunit" ,python-subunit)
-       ("python-testrepository" ,python-testrepository)
-       ("python-testtools" ,python-testtools)))
+     (list ;; Tests.
+           python-subunit python-testrepository python-testtools))
     (home-page "https://www.openstack.org/")
     (synopsis
      "Find deprecated patterns and strategies in Python code")
@@ -150,20 +144,20 @@ manner.")
          "0fg19rlcky3n1y1ri61xyjp7534yzf8r102z9dw3zqg93f4kj20m"))))
     (build-system python-build-system)
      (propagated-inputs
-     `(("python-flake8" ,python-flake8-3.8)))
+     (list python-flake8-3.8))
     (native-inputs
-     `( ;; Tests
-       ("python-coverage" ,python-coverage)
-       ("python-ddt" ,python-ddt)
-       ("python-dnspython" ,python-dnspython)
-       ("python-fixtures" ,python-fixtures)
-       ("python-eventlet" ,python-eventlet)
-       ("python-mock" ,python-mock)
-       ("python-monotonic" ,python-monotonic)
-       ("python-subunit" ,python-subunit)
-       ("python-stestr" ,python-stestr)
-       ("python-testscenarios" ,python-testscenarios)
-       ("python-testtools" ,python-testtools)))
+     (list ;; Tests
+           python-coverage
+           python-ddt
+           python-dnspython
+           python-fixtures
+           python-eventlet
+           python-mock
+           python-monotonic
+           python-subunit
+           python-stestr
+           python-testscenarios
+           python-testtools))
     (home-page "https://github.com/openstack-dev/hacking")
     (synopsis "OpenStack hacking guideline enforcement")
     (description
@@ -186,14 +180,10 @@ guidelines}.")
            "0w58adwv7q9wzvmq9mlrk2asfk73myq9fpwy7mjkzsz3baa95zf5"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-fixtures" ,python-fixtures)
-       ("python-pbr" ,python-pbr)))
+     (list python-fixtures python-pbr))
     (native-inputs
-      `(("python-openstackdocstheme" ,python-openstackdocstheme)
-        ("python-sphinx" ,python-sphinx)
-        ("python-subunit" ,python-subunit)
-        ("python-testrepository" ,python-testrepository)
-        ("python-testtools" ,python-testtools)))
+      (list python-openstackdocstheme python-sphinx python-subunit
+            python-testrepository python-testtools))
     (home-page "https://www.openstack.org/")
     (synopsis "Mock object framework for Python")
     (description
@@ -218,10 +208,9 @@ with mox as possible, but small enhancements have been made.")
      ;; turn depends on mox3 which depends on this package.
      `(#:tests? #f))
     (propagated-inputs
-     `(("python-dulwich" ,python-dulwich)
-       ("python-pbr" ,python-pbr)))
+     (list python-dulwich python-pbr))
     (native-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     (list python-sphinx))
     (home-page "https://docs.openstack.org/openstackdocstheme/latest/")
     (synopsis "OpenStack Docs Theme")
     (description
@@ -244,15 +233,14 @@ to docs.openstack.org and developer.openstack.org.")
     (arguments
      `(#:tests? #f)) ;; Circular dependency with python-oslotest
     (propagated-inputs
-      `(("python-appdirs" ,python-appdirs)
-        ("python-pyyaml" ,python-pyyaml)))
+      (list python-appdirs python-pyyaml))
     (native-inputs
-      `(("python-pbr" ,python-pbr)
-        ("python-fixtures" ,python-fixtures)
-        ("python-mimeparse" ,python-mimeparse)
-        ("python-testrepository" ,python-testrepository)
-        ("python-testscenarios" ,python-testscenarios)
-        ("python-testtools" ,python-testtools)))
+      (list python-pbr
+            python-fixtures
+            python-mimeparse
+            python-testrepository
+            python-testscenarios
+            python-testtools))
     (home-page "https://www.openstack.org/")
     (synopsis
       "OpenStack Client Configuration Library")
@@ -280,11 +268,9 @@ to docs.openstack.org and developer.openstack.org.")
      ;; when building the package. Skip the tests for now.
      `(#:tests? #f))
     (propagated-inputs
-     `(("python-subunit" ,python-subunit)))
+     (list python-subunit))
     (native-inputs
-     `(("python-pbr" ,python-pbr)
-       ("python-testtools" ,python-testtools)
-       ("python-babel" ,python-babel)))
+     (list python-pbr python-testtools python-babel))
     (home-page "https://www.openstack.org/")
     (synopsis "Testr wrapper to provide functionality for OpenStack projects")
     (description
@@ -316,7 +302,7 @@ to docs.openstack.org and developer.openstack.org.")
                             "requirements.txt")
                (("pbr!=2.1.0,>=2.0.0") "pbr>=3.0.0")))))))
     (propagated-inputs
-     `(("python-pbr" ,python-pbr)))
+     (list python-pbr))
     (home-page "https://github.com/dreamhost/stevedore")
     (synopsis "Manage dynamic plugins for Python applications")
     (description
@@ -352,19 +338,16 @@ extensions.")
             (substitute* "tempest_lib/tests/cli/test_execute.py"
               (("/bin/ls") (which "ls"))))))))
     (propagated-inputs
-      `(("python-fixtures" ,python-fixtures)
-        ("python-httplib2" ,python-httplib2)
-        ("python-iso8601" ,python-iso8601)
-        ("python-jsonschema" ,python-jsonschema)
-        ("python-oslo.log" ,python-oslo.log)
-        ("python-paramiko" ,python-paramiko)
-        ("python-pbr" ,python-pbr)
-        ("python-six" ,python-six)))
+      (list python-fixtures
+            python-httplib2
+            python-iso8601
+            python-jsonschema
+            python-oslo.log
+            python-paramiko
+            python-pbr
+            python-six))
     (native-inputs
-      `(("python-babel" ,python-babel)
-        ("python-mock" ,python-mock)
-        ("python-os-testr" ,python-os-testr)
-        ("python-oslotest" ,python-oslotest)))
+      (list python-babel python-mock python-os-testr python-oslotest))
     (home-page "https://www.openstack.org/")
     (synopsis "OpenStack functional testing library")
     (description
@@ -390,25 +373,25 @@ common features used in Tempest.")
          "0ymf7jxbq29fifyvkwhfiys1qvljqfxdw8ajwzwaf3yiqidgpxqd"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-debtcollector" ,python-debtcollector)
-       ("python-netaddr" ,python-netaddr)
-       ("python-oslo.i18n" ,python-oslo.i18n)
-       ("python-pbr" ,python-pbr)
-       ("python-rfc3986" ,python-rfc3986)
-       ("python-six" ,python-six)
-       ("python-stevedore" ,python-stevedore)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python-debtcollector
+           python-netaddr
+           python-oslo.i18n
+           python-pbr
+           python-rfc3986
+           python-six
+           python-stevedore
+           python-pyyaml))
     (native-inputs
-     `(("python-bandit" ,python-bandit)
-       ("python-coverage" ,python-coverage)
-       ("python-mock" ,python-mock)
-       ("python-openstackdocstheme" ,python-openstackdocstheme)
-       ("python-oslotest" ,python-oslotest)
-       ("python-reno" ,python-reno)
-       ("python-sphinx" ,python-sphinx)
-       ("python-testrepository" ,python-testrepository)
-       ("python-testscenarios" ,python-testscenarios)
-       ("python-testtools" ,python-testtools)))
+     (list python-bandit
+           python-coverage
+           python-mock
+           python-openstackdocstheme
+           python-oslotest
+           python-reno
+           python-sphinx
+           python-testrepository
+           python-testscenarios
+           python-testtools))
     (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo Configuration API")
     (description
@@ -437,15 +420,15 @@ common features used in Tempest.")
                          "hacking>=3.0.1"))
                       #t)))))
     (propagated-inputs
-     `(("python-debtcollector" ,python-debtcollector)))
+     (list python-debtcollector))
     (native-inputs
-     `(("python-bandit" ,python-bandit)
-       ("python-coverage" ,python-coverage)
-       ("python-fixtures" ,python-fixtures)
-       ("python-hacking" ,python-hacking)
-       ("python-oslotest" ,python-oslotest)
-       ("python-pbr" ,python-pbr)
-       ("python-stestr" ,python-stestr)))
+     (list python-bandit
+           python-coverage
+           python-fixtures
+           python-hacking
+           python-oslotest
+           python-pbr
+           python-stestr))
     (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo context library")
     (description
@@ -467,15 +450,14 @@ pipeline and used by various modules such as logging.")
          "0kjcdw4bk3mi4vqmqwhhq053kxbbbj05si6nwxd1pzx33z067ky3"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-babel" ,python-babel)
-       ("python-six" ,python-six)))
+     (list python-babel python-six))
     (native-inputs
-     `(("python-pbr" ,python-pbr)
-       ;; Tests
-       ("python-mock" ,python-mock)
-       ("python-mox3" ,python-mox3)
-       ("python-oslotest" ,python-oslotest)
-       ("python-testscenarios" ,python-testscenarios)))
+     (list python-pbr
+           ;; Tests
+           python-mock
+           python-mox3
+           python-oslotest
+           python-testscenarios))
     (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo internationalization (i18n) library")
     (description
@@ -497,23 +479,20 @@ in an application or library.")
           "0h7hplf1h8k24v75m3mq1jlrl74x5ynyr4hwgffsg5campxnza4x"))))
   (build-system python-build-system)
   (propagated-inputs
-   `(("python-dateutil" ,python-dateutil)
-     ("python-debtcollector" ,python-debtcollector)
-     ("python-monotonic" ,python-monotonic)
-     ("python-oslo.config" ,python-oslo.config)
-     ("python-oslo.context" ,python-oslo.context)
-     ("python-oslo.i18n" ,python-oslo.i18n)
-     ("python-oslo.utils" ,python-oslo.utils)
-     ("python-oslo.serialization" ,python-oslo.serialization)
-     ("python-pbr" ,python-pbr)
-     ("python-pyinotify" ,python-pyinotify)
-     ("python-six" ,python-six)))
+   (list python-dateutil
+         python-debtcollector
+         python-monotonic
+         python-oslo.config
+         python-oslo.context
+         python-oslo.i18n
+         python-oslo.utils
+         python-oslo.serialization
+         python-pbr
+         python-pyinotify
+         python-six))
   (native-inputs
-    `(("python-mock" ,python-mock)
-      ("python-oslotest" ,python-oslotest)
-      ("python-subunit" ,python-subunit)
-      ("python-testrepository" ,python-testrepository)
-      ("python-testtools" ,python-testtools)))
+    (list python-mock python-oslotest python-subunit
+          python-testrepository python-testtools))
   (home-page "https://launchpad.net/oslo")
   (synopsis "Python logging library of the Oslo project")
   (description
@@ -535,17 +514,12 @@ handlers and support for context specific logging (like resource id’s etc).")
          "08bxkp98c617y58x630xq44iiffm7f0f3cwh6zbnlkgq0zgh7jk1"))))
     (build-system python-build-system)
     (propagated-inputs
-      `(("python-msgpack" ,python-msgpack)
-        ("python-netaddr" ,python-netaddr)
-        ("python-oslo.utils" ,python-oslo.utils)
-        ("python-six" ,python-six)
-        ("python-pytz" ,python-pytz)))
+      (list python-msgpack python-netaddr python-oslo.utils python-six
+            python-pytz))
     (native-inputs
-      `(("python-pbr" ,python-pbr)
-        ;; Tests.
-        ("python-mock" ,python-mock)
-        ("python-oslo.i18n" ,python-oslo.i18n)
-        ("python-oslotest" ,python-oslotest)))
+      (list python-pbr
+            ;; Tests.
+            python-mock python-oslo.i18n python-oslotest))
     (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo serialization library")
     (description
@@ -572,10 +546,7 @@ in transmittable and storable formats, such as JSON and MessagePack.")
              ;; reno expects a git repo
              (invoke "git" "init"))))))
     (propagated-inputs
-      `(("python-dulwich" ,python-dulwich)
-        ("python-pbr" ,python-pbr)
-        ("python-pyyaml" ,python-pyyaml)
-        ("python-six" ,python-six)))
+      (list python-dulwich python-pbr python-pyyaml python-six))
     (native-inputs
       `(("python-testtools" ,python-testtools)
         ("python-testscenarios" ,python-testscenarios)
@@ -613,13 +584,10 @@ and building documentation from them.")
                 "hacking!=0.13.0,>=0.12.0"))
              #t)))))
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     (native-inputs
-     `(("python-hacking" ,python-hacking)
-       ("python-openstackdocstheme" ,python-openstackdocstheme)
-       ("python-pbr" ,python-pbr)
-       ("python-reno" ,python-reno)
-       ("python-sphinx" ,python-sphinx)))
+     (list python-hacking python-openstackdocstheme python-pbr
+           python-reno python-sphinx))
     (home-page "https://www.openstack.org/")
     (synopsis "OpenStack sphinx extensions and theme")
     (description "This package provides themes and extensions for Sphinx
@@ -642,10 +610,7 @@ documentation from the OpenStack project.")
      ;; The tests are disabled to avoid a circular dependency with oslo.config.
      `(#:tests? #f))
     (propagated-inputs
-     `(("python-fixtures" ,python-fixtures)
-       ("python-six" ,python-six)
-       ("python-subunit" ,python-subunit)
-       ("python-testtools" ,python-testtools)))
+     (list python-fixtures python-six python-subunit python-testtools))
     (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo test framework")
     (description "The Oslo Test framework provides common fixtures, support
@@ -665,27 +630,27 @@ for debugging, and better support for mocking results.")
            "1ipjcgg9z697wmibhcbg5lqpk5gafakdx4qkff3w255zr0mvw04r"))))
     (build-system python-build-system)
     (propagated-inputs
-      `(("python-debtcollector" ,python-debtcollector)
-        ("python-oslo.i18n" ,python-oslo.i18n)
-        ("python-iso8601" ,python-iso8601)
-        ("python-monotonic" ,python-monotonic)
-        ("python-netaddr" ,python-netaddr)
-        ("python-netifaces" ,python-netifaces)
-        ("python-pyparsing" ,python-pyparsing)
-        ("python-pytz" ,python-pytz)
-        ("python-six" ,python-six)))
+      (list python-debtcollector
+            python-oslo.i18n
+            python-iso8601
+            python-monotonic
+            python-netaddr
+            python-netifaces
+            python-pyparsing
+            python-pytz
+            python-six))
     (native-inputs
-      `(("python-pbr" ,python-pbr)
-        ;; Tests.
-        ("python-bandit" ,python-bandit)
-        ("python-ddt" ,python-ddt)
-        ("python-fixtures" ,python-fixtures)
-        ("python-oslo.config" ,python-oslo.config)
-        ("python-oslotest" ,python-oslotest)
-        ("python-mock" ,python-mock)
-        ("python-testrepository" ,python-testrepository)
-        ("python-testscenarios" ,python-testscenarios)
-        ("python-testtools" ,python-testtools)))
+      (list python-pbr
+            ;; Tests.
+            python-bandit
+            python-ddt
+            python-fixtures
+            python-oslo.config
+            python-oslotest
+            python-mock
+            python-testrepository
+            python-testscenarios
+            python-testtools))
     (home-page "https://launchpad.net/oslo")
     (synopsis "Oslo utility library")
     (description
@@ -731,19 +696,19 @@ handling.")
        ("python-testtools" ,python-testtools)
        ("python-webob" ,python-webob)))
     (propagated-inputs
-     `(("python-babel" ,python-babel)
-       ("python-debtcollector" ,python-debtcollector)
-       ("python-iso8601" ,python-iso8601)
-       ("python-netaddr" ,python-netaddr)
-       ("python-oslo.config" ,python-oslo.config)
-       ("python-oslo.i18n" ,python-oslo.i18n)
-       ("python-oslo.serialization" ,python-oslo.serialization)
-       ("python-oslo.utils" ,python-oslo.utils)
-       ("python-pbr" ,python-pbr)
-       ("python-prettytable" ,python-prettytable)
-       ("python-requests" ,python-requests)
-       ("python-six" ,python-six)
-       ("python-stevedore" ,python-stevedore)))
+     (list python-babel
+           python-debtcollector
+           python-iso8601
+           python-netaddr
+           python-oslo.config
+           python-oslo.i18n
+           python-oslo.serialization
+           python-oslo.utils
+           python-pbr
+           python-prettytable
+           python-requests
+           python-six
+           python-stevedore))
     (home-page "https://www.openstack.org/")
     (synopsis "Client Library for OpenStack Identity")
     (description
@@ -768,20 +733,19 @@ LDAP.")
           "1j33l4z9vqh0scfncl4fxg01zr1hgqxhhai6gvcih1gccqm4nd7p"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pbr" ,python-pbr)
-       ("python-sphinx" ,python-sphinx)
-       ;; The folloing packages are needed for the tests.
-       ("python-coverage" ,python-coverage)
-       ("python-discover" ,python-discover)
-       ("python-hacking" ,python-hacking)
-       ("python-mock" ,python-mock)
-       ("python-oslosphinx" ,python-oslosphinx)
-       ("python-keystoneclient" ,python-keystoneclient)
-       ("python-testrepository" ,python-testrepository)
-       ("python-testtools" ,python-testtools)))
+     (list python-pbr
+           python-sphinx
+           ;; The folloing packages are needed for the tests.
+           python-coverage
+           python-discover
+           python-hacking
+           python-mock
+           python-oslosphinx
+           python-keystoneclient
+           python-testrepository
+           python-testtools))
     (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("python-six" ,python-six)))
+     (list python-requests python-six))
     (home-page "https://www.openstack.org/")
     (synopsis "OpenStack Object Storage API Client Library")
     (description
@@ -799,13 +763,13 @@ permanence.")
 (define-public python-git-review
   (package
     (name "python-git-review")
-    (version "1.28.0")
+    (version "2.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "git-review" version))
        (sha256
-        (base32 "0nn17mfqvsa3ryjz53qjslmf60clc0vx2115kkj66h28p6vsnflf"))))
+        (base32 "1mhywsbisyv028lsj2ksg4g5l8kyimpwxgwzqi08rymi8mb7fv1s"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f                     ; tests require a running Gerrit server
@@ -823,12 +787,11 @@ permanence.")
                          (list git openssh)))))
              #t)))))
     (native-inputs
-     `(("python-pbr" ,python-pbr)))
+     (list python-pbr))
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     (inputs
-     `(("git" ,git)
-       ("openssh" ,openssh)))
+     (list git openssh))
     (home-page "https://docs.openstack.org/infra/git-review/")
     (synopsis "Command-line tool for Gerrit")
     (description
diff --git a/gnu/packages/orange.scm b/gnu/packages/orange.scm
index bedbad7e60..efdafe3d45 100644
--- a/gnu/packages/orange.scm
+++ b/gnu/packages/orange.scm
@@ -54,14 +54,14 @@
              (setenv "QT_QPA_PLATFORM" "offscreen")
              #t)))))
     (propagated-inputs
-     `(("python-anyqt" ,python-anyqt)
-       ("python-cachecontrol" ,python-cachecontrol)
-       ("python-commonmark" ,python-commonmark)
-       ("python-dictdiffer" ,python-dictdiffer)
-       ("python-docutils" ,python-docutils)
-       ("python-pyqt" ,python-pyqt)
-       ("python-qasync" ,python-qasync)
-       ("python-requests" ,python-requests)))
+     (list python-anyqt
+           python-cachecontrol
+           python-commonmark
+           python-dictdiffer
+           python-docutils
+           python-pyqt
+           python-qasync
+           python-requests))
     (home-page "https://github.com/biolab/orange-canvas-core")
     (synopsis "Core component of Orange Canvas")
     (description
@@ -93,11 +93,8 @@ data-mining application.")
              (setenv "QT_QPA_PLATFORM" "offscreen")
              #t)))))
     (propagated-inputs
-     `(("python-anyqt" ,python-anyqt)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-orange-canvas-core"
-        ,python-orange-canvas-core)
-       ("python-pyqtgraph" ,python-pyqtgraph)))
+     (list python-anyqt python-matplotlib python-orange-canvas-core
+           python-pyqtgraph))
     (home-page "https://github.com/biolab/orange-widget-base")
     (synopsis "Base Widget for Orange Canvas")
     (description
@@ -146,40 +143,38 @@ GUI based workflow.  It is primarily used in the Orange framework.")
                                          "/lib/qt5/plugins/")))))
              #t)))))
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (inputs
-     `(("python-anyqt" ,python-anyqt)
-       ("python-baycomp" ,python-baycomp)
-       ("python-bottleneck" ,python-bottleneck)
-       ("python-chardet" ,python-chardet)
-       ("python-httpx" ,python-httpx)
-       ("python-joblib" ,python-joblib)
-       ("python-keyring" ,python-keyring)
-       ("python-keyrings.alt" ,python-keyrings.alt)
-       ("python-louvain" ,python-louvain)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-networkx" ,python-networkx)
-       ("python-numpy" ,python-numpy)
-       ("python-openpyxl" ,python-openpyxl)
-       ("python-opentsne" ,python-opentsne)
-       ("python-orange-canvas-core"
-        ,python-orange-canvas-core)
-       ("python-orange-widget-base"
-        ,python-orange-widget-base)
-       ("python-pandas" ,python-pandas)
-       ("python-pyqt" ,python-pyqt)
-       ("python-pyqtgraph" ,python-pyqtgraph)
-       ("python-pyqtwebengine" ,python-pyqtwebengine)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-requests" ,python-requests)
-       ("python-scikit-learn" ,python-scikit-learn)
-       ("python-scipy" ,python-scipy)
-       ("python-serverfiles" ,python-serverfiles)
-       ("python-xlrd" ,python-xlrd)
-       ("python-xlsxwriter" ,python-xlsxwriter)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("xdg-utils" ,xdg-utils)))
+     (list python-anyqt
+           python-baycomp
+           python-bottleneck
+           python-chardet
+           python-httpx
+           python-joblib
+           python-keyring
+           python-keyrings.alt
+           python-louvain
+           python-matplotlib
+           python-networkx
+           python-numpy
+           python-openpyxl
+           python-opentsne
+           python-orange-canvas-core
+           python-orange-widget-base
+           python-pandas
+           python-pyqt
+           python-pyqtgraph
+           python-pyqtwebengine
+           python-pyyaml
+           python-requests
+           python-scikit-learn
+           python-scipy
+           python-serverfiles
+           python-xlrd
+           python-xlsxwriter
+           qtbase-5
+           qtsvg
+           xdg-utils))
     (home-page "https://orangedatamining.com/")
     (synopsis "Component-based data mining framework")
     (description
@@ -199,7 +194,7 @@ data analysis, data mining and data visualization.")
         (base32 "1qgbzgnaxj4wsp2rdas53qxsh0j7xpibq25w6lviwyaqwwrgq42y"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     (home-page "https://github.com/biolab/serverfiles")
     (synopsis "Utility to access files on a HTTP server and store them locally")
     (description
diff --git a/gnu/packages/orpheus.scm b/gnu/packages/orpheus.scm
index 8214311a18..7a69d99954 100644
--- a/gnu/packages/orpheus.scm
+++ b/gnu/packages/orpheus.scm
@@ -45,13 +45,13 @@
       (patches (search-patches "orpheus-cast-errors-and-includes.patch"))))
     (build-system gnu-build-system)
     (inputs
-     `(("ncurses" ,ncurses)
-       ("libvorbis" ,libvorbis)
-       ("vorbis-tools" ,vorbis-tools)
-       ("mpg321" ,mpg321)
-       ;; TODO: add ghttp
-       ("libxml2" ,libxml2)
-       ("which" ,which)))
+     (list ncurses
+           libvorbis
+           vorbis-tools
+           mpg321
+           ;; TODO: add ghttp
+           libxml2
+           which))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/ots.scm b/gnu/packages/ots.scm
index 73dd5e4832..e527bf277e 100644
--- a/gnu/packages/ots.scm
+++ b/gnu/packages/ots.scm
@@ -66,10 +66,7 @@
                (("shrext_cmds") "shrext"))
              #t)))))
     (inputs
-      `(("glib" ,glib)
-        ("popt" ,popt)
-        ("libxml2" ,libxml2)
-        ("zlib" ,zlib)))
+      (list glib popt libxml2 zlib))
     (native-inputs
       `(("glib:bin" ,glib "bin")
         ("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 4f80479623..12736c6caf 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -18,6 +18,8 @@
 ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,6 +37,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages package-management)
+  #:use-module (gnu artwork)
   #:use-module (gnu packages)
   #:use-module (gnu packages acl)
   #:use-module (gnu packages attr)
@@ -47,8 +50,10 @@
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages bootstrap)          ;for 'bootstrap-guile-origin'
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages cpio)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
@@ -66,6 +71,7 @@
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages hurd)
+  #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages less)
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages linux)
@@ -73,6 +79,7 @@
   #:use-module (gnu packages man)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
+  #:use-module (gnu packages ninja)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages patchutils)
   #:use-module (gnu packages perl)
@@ -80,6 +87,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages popt)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
@@ -95,10 +103,12 @@
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages version-control)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system trivial)
   #:use-module (guix download)
   #:use-module (guix gexp)
   #:use-module (guix git-download)
@@ -137,8 +147,8 @@
   ;; Note: the 'update-guix-package.scm' script expects this definition to
   ;; start precisely like this.
   (let ((version "1.3.0")
-        (commit "6243ad3812f8c689599a19f0e8b9719ba14461f2")
-        (revision 5))
+        (commit "10ceb3e84654e024f14a4b048e7d68492ed9dc7c")
+        (revision 16))
     (package
       (name "guix")
 
@@ -154,7 +164,7 @@
                       (commit commit)))
                 (sha256
                  (base32
-                  "0i3sgk2w2yjy9ip47vk0h17afk16yl5ih3p3q75083kgjzyjdm3d"))
+                  "13gdj1fdjx4i0ylijv3qz5q0mmf4wbdhayifxrhzh2ng9idqhd0j"))
                 (file-name (string-append "guix-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
@@ -475,15 +485,12 @@ the Nix package manager.")
 
     ;; Use a minimum set of dependencies.
     (native-inputs
-     (fold alist-delete (package-native-inputs guix)
-           '("po4a" "graphviz" "help2man")))
+     (modify-inputs (package-native-inputs guix)
+       (delete "po4a" "graphviz" "help2man")))
     (inputs
-     `(("gnutls" ,gnutls)
-       ("guile-git" ,guile-git)
-       ("guile-json" ,guile-json-3)
-       ("guile-gcrypt" ,guile-gcrypt)
-       ,@(fold alist-delete (package-inputs guix)
-               '("boot-guile" "boot-guile/i686" "util-linux"))))
+     (modify-inputs (package-inputs guix)
+       (delete "boot-guile" "boot-guile/i686" "util-linux")
+       (prepend gnutls guile-git guile-json-3 guile-gcrypt)))
 
     (propagated-inputs '())
 
@@ -523,9 +530,6 @@ the Nix package manager.")
                (invoke "make" "install-binPROGRAMS")))
            (delete 'wrap-program)))))))
 
-(define-public guile3.0-guix
-  (deprecated-package "guile3.0-guix" guix))
-
 (define-public guix-minimal
   ;; A version of Guix which is built with the minimal set of dependencies, as
   ;; outlined in the README "Requirements" section.  Intended as a CI job, so
@@ -535,13 +539,11 @@ the Nix package manager.")
      (inherit guix)
      (name "guix-minimal")
      (native-inputs
-      (fold alist-delete
-            (package-native-inputs guix)
-            '("guile-ssh")))
+      (modify-inputs (package-native-inputs guix)
+        (delete "guile-ssh")))
      (propagated-inputs
-      (fold alist-delete
-            (package-propagated-inputs guix)
-            '("guile-ssh"))))))
+      (modify-inputs (package-propagated-inputs guix)
+        (delete "guile-ssh"))))))
 
 (define (source-file? file stat)
   "Return true if FILE is likely a source file, false if it is a typical
@@ -583,6 +585,64 @@ out) and returning a package that uses that as its 'source'."
                                 #:recursive? #t
                                 #:select? (force select?))))))))
 
+(define-public guix-icons
+  (package
+    (inherit guix)
+    (name "guix-icons")
+    (version "0.1")
+    (source %artwork-repository)
+    (build-system trivial-build-system)
+    (native-inputs
+     (list imagemagick))
+    (inputs
+     '())
+    (arguments
+     `(#:modules ((guix build utils)
+                  (gnu build svg))
+       #:builder
+       ,(with-extensions (list guile-rsvg guile-cairo)
+          #~(begin
+              (use-modules (guix build utils)
+                           (gnu build svg))
+              (let* ((logo (string-append #$source "/logo/Guix.svg"))
+                     (logo-white
+                      (string-append #$source
+                                     "/logo/Guix-horizontal-white.svg"))
+                     (theme "hicolor")
+                     (category "apps")
+                     (sizes '(16 24 32 48 64 72 96 128 256 512 1024))
+                     (icons
+                      (string-append #$output "/share/icons/" theme))
+                     (scalable-dir
+                      (string-append icons "/scalable/" category)))
+                (setenv "XDG_CACHE_HOME" (getcwd))
+
+                ;; Create the scalable icon files.
+                (mkdir-p scalable-dir)
+                (copy-file logo
+                           (string-append scalable-dir "/guix-icon.svg"))
+                (copy-file logo-white
+                           (string-append scalable-dir
+                                          "/guix-white-icon.svg"))
+
+                ;; Create the fixed dimensions icon files.
+                (for-each
+                 (lambda (size)
+                   (let* ((dimension
+                           (format #f "~ax~a" size size))
+                          (file
+                           (string-append icons "/" dimension "/" category
+                                          "/guix-icon.png")))
+                     (mkdir-p (dirname file))
+                     (svg->png logo file
+                               #:width size
+                               #:height size)))
+                 sizes))))))
+    (synopsis "GNU Guix icons")
+    (description "This package contains GNU Guix icons organized according to
+the Icon Theme Specification.  They can be used by applications querying the
+GTK icon cache for instance.")))
+
 
 ;;;
 ;;; Other tools.
@@ -591,14 +651,14 @@ out) and returning a package that uses that as its 'source'."
 (define-public nix
   (package
     (name "nix")
-    (version "2.3.13")
+    (version "2.3.16")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://releases.nixos.org/nix/nix-"
                                  version "/nix-" version ".tar.xz"))
              (sha256
               (base32
-               "0631qk2lgd76y6g2z45wy6lcpv647r2a08jd2dagzzpwniy68d3h"))))
+               "1g5aqavr6i3c1xln53w1pdh1kvlxrpnknb105m4jbd85kyv83rky"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--sysconfdir=/etc" "--enable-gc")
@@ -614,18 +674,18 @@ out) and returning a package that uses that as its 'source'."
                       (string-append "sysconfdir=" etc)
                       (string-append "profiledir=" etc "/profile.d")
                       make-flags)))))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("boost" ,boost)
-              ("brotli" ,brotli)
-              ("bzip2" ,bzip2)
-              ("curl" ,curl)
-              ("editline" ,editline)
-              ("libgc" ,libgc)
-              ("libseccomp" ,libseccomp)
-              ("libsodium" ,libsodium)
-              ("openssl" ,openssl)
-              ("sqlite" ,sqlite)
-              ("xz" ,xz)))
+    (native-inputs (list pkg-config))
+    (inputs (list boost
+                  brotli
+                  bzip2
+                  curl
+                  editline
+                  libgc
+                  libseccomp
+                  libsodium
+                  openssl
+                  sqlite
+                  xz))
     (home-page "https://nixos.org/nix/")
     (synopsis "The Nix package manager")
     (description
@@ -650,12 +710,10 @@ sub-directory.")
                 "0jrxy12ywn7smdzdnvwzjw77l6knx6jkj2rckgykg1dpf6bdkm89"))))
     (build-system gnu-build-system)
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (native-inputs
-     `(("perl-test-simple" ,perl-test-simple)
-       ("perl-test-output" ,perl-test-output)
-       ("perl-capture-tiny" ,perl-capture-tiny)
-       ("perl-io-stringy" ,perl-io-stringy)))
+     (list perl-test-simple perl-test-output perl-capture-tiny
+           perl-io-stringy))
     (home-page "https://www.gnu.org/software/stow/")
     (synopsis "Managing installed software packages")
     (description
@@ -711,20 +769,20 @@ features of Stow with some extensions.")
                                                nss "/lib/nss"))
                         #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("python" ,python)
-       ("xz" ,xz)
-       ("bdb" ,bdb)
-       ("popt" ,popt)
-       ("nss" ,nss)
-       ("nspr" ,nspr)
-       ("libarchive" ,libarchive)
-       ("libgcrypt" ,libgcrypt)
-       ("file" ,file)
-       ("bzip2" ,bzip2)
-       ("zlib" ,zlib)
-       ("cpio" ,cpio)))
+     (list python
+           xz
+           bdb
+           popt
+           nss
+           nspr
+           libarchive
+           libgcrypt
+           file
+           bzip2
+           zlib
+           cpio))
     (home-page "https://rpm.org/")
     (synopsis "The RPM Package Manager")
     (description
@@ -754,17 +812,14 @@ transactions from C or Python.")
          "1vyk0g0gci4z9psisb8h50zi3j1nwfdg1jw3j76cxv0brln0v3fw"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-clyent" ,python-clyent)
-       ("python-nbformat" ,python-nbformat)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-requests" ,python-requests)))
+     (list python-clyent python-nbformat python-pyyaml python-requests))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-dateutil" ,python-dateutil)
-       ("python-freezegun" ,python-freezegun)
-       ("python-mock" ,python-mock)
-       ("python-pillow" ,python-pillow)
-       ("python-pytz" ,python-pytz)))
+     (list python-coverage
+           python-dateutil
+           python-freezegun
+           python-mock
+           python-pillow
+           python-pytz))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -820,16 +875,12 @@ environments.")
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "-vv" "tests"))))))
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-tqdm" ,python-tqdm)))
+     (list python-six python-tqdm))
     (inputs
-     `(("libarchive" ,libarchive)))
+     (list libarchive))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-mock" ,python-mock)))
+     (list python-cython python-pytest python-pytest-cov
+           python-pytest-mock python-mock))
     (home-page "https://conda.io")
     (synopsis "Create and extract conda packages of various formats")
     (description
@@ -949,22 +1000,22 @@ extracting, creating, and converting between formats.")
                                     "/bin/conda")
                      "init"))))))
     (inputs
-     `(("python-wrapper" ,python-wrapper)))
+     (list python-wrapper))
     (propagated-inputs
-     `(("python-anaconda-client" ,python-anaconda-client)
-       ("python-conda-package-handling" ,python-conda-package-handling)
-       ("python-cytoolz" ,python-cytoolz)
-       ("python-pycosat" ,python-pycosat)
-       ("python-pytest" ,python-pytest)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-requests" ,python-requests)
-       ("python-responses" ,python-responses)
-       ("python-ruamel.yaml" ,python-ruamel.yaml)
-       ("python-tqdm" ,python-tqdm)
-       ;; XXX: This is dragged in by libarchive and is needed at runtime.
-       ("zstd" ,zstd)))
+     (list python-anaconda-client
+           python-conda-package-handling
+           python-cytoolz
+           python-pycosat
+           python-pytest
+           python-pyyaml
+           python-requests
+           python-responses
+           python-ruamel.yaml
+           python-tqdm
+           ;; XXX: This is dragged in by libarchive and is needed at runtime.
+           zstd))
     (native-inputs
-     `(("python-pytest-timeout" ,python-pytest-timeout)))
+     (list python-pytest-timeout))
     (home-page "https://github.com/conda/conda")
     (synopsis "Cross-platform, OS-agnostic, system-level binary package manager")
     (description
@@ -975,8 +1026,165 @@ it easy to create independent environments even for C libraries.  Conda is
 written entirely in Python.")
     (license license:bsd-3)))
 
-(define-public python-conda
-  (deprecated-package "python-conda" conda))
+(define-public conan
+  (package
+    (name "conan")
+    (version "1.42.0")
+    (source
+     (origin
+       (method git-fetch)               ;no tests in PyPI archive
+       (uri (git-reference
+             (url "https://github.com/conan-io/conan")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "153npvj81m1c33gfcv2nry7xhyikxnhjns7lvs525f1x20ck6asg"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'relax-requirements
+           (lambda _
+             (substitute* "conans/requirements.txt"
+               (("node-semver==0.6.1")
+                "node-semver>=0.6.1")
+               (("Jinja2>=2.9, <3")
+                "Jinja2>=2.9"))))
+         (add-after 'unpack 'patch-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((coreutils (assoc-ref inputs "coreutils")))
+               ;; It seems that PATH is manipulated, as printenv is not found
+               ;; during tests.  Patch in its exact location.
+               (substitute* "conan/tools/env/environment.py"
+                 (("printenv")
+                  (string-append coreutils "/bin/printenv")))
+               (substitute* "conans/client/envvars/environment.py"
+                 (("#!/usr/bin/env")
+                  (string-append "#!" coreutils "/bin/env"))))))
+         (add-before 'check 'set-home
+           (lambda _
+             (setenv "HOME" "/tmp")))
+         (replace 'check
+           (lambda* (#:key tests? outputs #:allow-other-keys)
+             (define system ,(or (%current-target-system)
+                                 (%current-system)))
+             (when tests?
+               (setenv "PATH" (string-append (getenv "PATH") ":"
+                                             (assoc-ref outputs "out") "/bin"))
+               (invoke "python" "-m" "pytest"
+                       "-n" "auto"      ;parallelize tests
+                       "-m" "not slow and not tool_svn"
+                       ;; Disable problematic tests.
+                       "-k"
+                       (string-append
+                        ;; These tests rely on networking.
+                        "not shallow_clone_remote "
+                        "and not remote_build "
+                        "and not download_retries_errors "
+                        "and not ftp "
+                        "and not build_local_different_folders "
+                        ;; These expect CMake available at fixed versions.
+                        "and not custom_cmake "
+                        "and not default_cmake "
+                        "and not bazel " ;bazel is not packaged
+                        ;; Guix sets PKG_CONFIG_PATH itself, which is not
+                        ;; expected by the following test.
+                        "and not pkg_config_path "
+                        "and not compare " ;caused by newer node-semver?
+                        ;; Guix is not currently a supported package manager.
+                        "and not system_package_tool "
+                        ;; These expect GCC 5 to be available.
+                        "and not test_reuse "
+                        "and not test_install "
+                        ;; The installed configure script trips on the /bin/sh
+                        ;; shebang.  We'd have to patch it in the Python code.
+                        "and not test_autotools "
+                        "and not test_use_build_virtualenv "
+                        ;; This test is architecture-dependent.
+                        "and not test_toolchain_linux "
+                        ;; This one fails for unknown reasons (see:
+                        ;; https://github.com/conan-io/conan/issues/9671).
+                        "and not test_build "
+                        (if (not (string-prefix? "x86_64" system))
+                            ;; These tests either assume the machine is
+                            ;; x86_64, or require a cross-compiler to target
+                            ;; it.
+                            (string-append
+                             "and not cpp_package "
+                             "and not exclude_code_analysis "
+                             "and not cmakedeps_multi "
+                             "and not locally_build_linux "
+                             "and not custom_configuration "
+                             "and not package_from_system "
+                             "and not cross_build_command "
+                             "and not test_package "
+                             "and not test_deleted_os "
+                             "and not test_same ")
+                            "")
+                        (if (not (or (string-prefix? "x86_64" system)
+                                     (string-prefix? "i686" system)))
+                            ;; These tests either assume the machine is i686,
+                            ;; or require a cross-compiler to target it.
+                            (string-append
+                             "and not vcvars_raises_when_not_found "
+                             "and not conditional_generators "
+                             "and not test_folders "
+                             "and not settings_as_a_dict_conanfile ")
+                            "")))))))))
+    (propagated-inputs
+     (list python-bottle
+           python-colorama
+           python-dateutil
+           python-distro
+           python-fasteners
+           python-future
+           python-jinja2
+           python-node-semver
+           python-patch-ng
+           python-pluginbase
+           python-pygments
+           python-pyjwt
+           python-pyyaml
+           python-requests
+           python-six
+           python-tqdm
+           python-urllib3))
+    (inputs
+     (list coreutils))       ;for printenv
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("cmake" ,cmake)
+       ("git" ,git-minimal)
+       ("meson" ,meson)
+       ("ninja",ninja)
+       ("pkg-config" ,pkg-config)
+       ("python-bottle" ,python-bottle)
+       ("python-mock" ,python-mock)
+       ("python-parameterized" ,python-parameterized)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-xdist" ,python-pytest-xdist)
+       ("python-webtest" ,python-webtest)
+       ("which" ,which)))
+    (home-page "https://conan.io")
+    (synopsis "Decentralized C/C++ package manager")
+    (description "Conan is a package manager for C and C++ developers that
+boasts the following features:
+@itemize
+@item
+It is fully decentralized.  Users can host their packages on their own private
+servers.
+@item
+It can create, upload and download binaries for any configuration and
+platform, including cross-compiled ones.
+@item
+It integrates with any build system, including CMake, Makefiles, Meson, etc.
+@item
+It is extensible; its Python-based recipes, together with extensions points
+allow for great power and flexibility.
+@end itemize")
+    (license license:expat)))
 
 (define-public gwl
   (package
@@ -994,11 +1202,7 @@ written entirely in Python.")
        #:make-flags
        '("GUILE_AUTO_COMPILE=0")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)
-       ("graphviz" ,graphviz)))
+     (list autoconf automake pkg-config texinfo graphviz))
     (inputs
      (let ((p (package-input-rewriting
                `((,guile-3.0 . ,guile-3.0-latest))
@@ -1024,8 +1228,8 @@ environments.")
     (license (list license:gpl3+ license:agpl3+ license:silofl1.1))))
 
 (define-public guix-build-coordinator
-  (let ((commit "c2f0c5b36f8294bb4c699806f9e8c576ae9b9f90")
-        (revision "33"))
+  (let ((commit "226ec0f0f8a10842ffdd50dd464be33b2db45563")
+        (revision "40"))
     (package
       (name "guix-build-coordinator")
       (version (git-version "0" revision commit))
@@ -1036,7 +1240,7 @@ environments.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "0nlh1cyvpbsfy9pk22xmgx0vb625j7qgv79y527q91c9fjn7g37v"))
+                  "1sxvp7j5xypk6zlrs5y21lwx12h5r0c35ia9wqf0cyq8wjjaagh8"))
                 (file-name (string-append name "-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
@@ -1216,21 +1420,18 @@ outputs of those builds.")
                                  "guix-jupyter-kernel.scm")))
                #t))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-
-       ;; For testing.
-       ("jupyter" ,jupyter)
-       ("python-ipython" ,python-ipython)
-       ("python-ipykernel" ,python-ipykernel)))
+     (list autoconf
+           automake
+           pkg-config
+           ;; For testing.
+           jupyter
+           python-ipython
+           python-ipykernel))
     (inputs
      `(("guix" ,guix)
        ("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))))
     (propagated-inputs
-     `(("guile-json" ,guile-json-4)
-       ("guile-simple-zmq" ,guile-simple-zmq)
-       ("guile-gcrypt" ,guile-gcrypt)))
+     (list guile-json-4 guile-simple-zmq guile-gcrypt))
     (synopsis "Guix kernel for Jupyter")
     (description
      "Guix-Jupyter is a Jupyter kernel.  It allows you to annotate notebooks
@@ -1258,8 +1459,7 @@ in an isolated environment, in separate namespaces.")
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
     (inputs
-     `(("glib" ,glib)
-       ("zlib" ,zlib)))
+     (list glib zlib))
     (arguments
      `(#:configure-flags
        ;; XXX This ‘documentation’ is for developers, and fails informatively:
@@ -1287,14 +1487,10 @@ Microsoft cabinet (.@dfn{CAB}) files.")
                 "1skq17qr2ic4qr3779j49byfm8rncwbsq9rj1a33ncn2m7isdwdv"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("bison" ,bison)
-       ("pkg-config" ,pkg-config)))
+     (list bison pkg-config))
     (inputs
-     `(("gcab" ,gcab)
-       ("glib" ,glib)
-       ("libgsf" ,libgsf)
-       ("libxml2" ,libxml2)
-       ("uuid" ,util-linux "lib")))
+     (list gcab glib libgsf libxml2
+           `(,util-linux "lib")))
     (home-page "https://wiki.gnome.org/msitools")
     (synopsis "Windows Installer file manipulation tool")
     (description
@@ -1306,7 +1502,7 @@ for packaging and deployment of cross-compiled Windows applications.")
 (define-public libostree
   (package
     (name "libostree")
-    (version "2021.3")
+    (version "2021.6")
     (source
      (origin
        (method url-fetch)
@@ -1314,7 +1510,7 @@ for packaging and deployment of cross-compiled Windows applications.")
              "https://github.com/ostreedev/ostree/releases/download/v"
              (version-major+minor version) "/libostree-" version ".tar.xz"))
        (sha256
-        (base32 "1cyhr3s7xsgnsais5m4cjwdwcq46naf25r1k042c4n1y1jgs798g"))))
+        (base32 "0cgmnjf4mr4wn4fliq6ncs0q9qwblrlizjfhx57p7m332g5k21p8"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -1346,7 +1542,7 @@ for packaging and deployment of cross-compiled Windows applications.")
        ("glib" ,glib)
        ("gpgme" ,gpgme)
        ("libarchive" ,libarchive)
-       ("libsoup" ,libsoup)
+       ("libsoup" ,libsoup-minimal-2) ; needs libsoup-2.4
        ("util-linux" ,util-linux)))
     (home-page "https://ostree.readthedocs.io/en/latest/")
     (synopsis "Operating system and container binary deployment and upgrades")
@@ -1360,14 +1556,15 @@ the boot loader configuration.")
 (define-public flatpak
   (package
    (name "flatpak")
-   (version "1.10.2")
+   (version "1.12.1")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "https://github.com/flatpak/flatpak/releases/download/"
                          version "/flatpak-" version ".tar.xz"))
      (sha256
-      (base32 "1r6xw7r3ir2vaa30n3mily6m7d51cf4qv22fkqlzzy3js0wjf5fv"))))
+      (base32 "0my82ijg1ipa4lwrvh88jlrxbabfqfz2ssfb8cn6k0pfgz53p293"))
+     (patches (search-patches "flatpak-fix-path.patch"))))
 
    ;; Wrap 'flatpak' so that GIO_EXTRA_MODULES is set, thereby allowing GIO to
    ;; find the TLS backend in glib-networking.
@@ -1402,6 +1599,16 @@ cp -r /tmp/locale/*/en_US.*")))
               (("/bin/kill") (which "kill"))
               (("/usr/bin/python3") (which "python3")))
             #t))
+        (add-after 'unpack 'p11-kit-fix
+          (lambda* (#:key inputs #:allow-other-keys)
+            (let ((p11-path (string-append (assoc-ref inputs "p11-kit-next")
+                                           "/bin/p11-kit")))
+              (substitute* "session-helper/flatpak-session-helper.c"
+                (("\"p11-kit\",")
+                 (string-append "\"" p11-path "\","))
+                (("if \\(g_find_program_in_path \\(\"p11-kit\"\\)\\)")
+                 (string-append "if (g_find_program_in_path (\""
+                                p11-path "\"))"))))))
         ;; Many tests fail for unknown reasons, so we just run a few basic
         ;; tests.
         (replace 'check
@@ -1422,10 +1629,8 @@ cp -r /tmp/locale/*/en_US.*")))
       ("python-pyparsing" ,python-pyparsing)
       ("socat" ,socat)
       ("which" ,which)))
-   (propagated-inputs `(("glib-networking" ,glib-networking)
-                        ("gnupg" ,gnupg)
-                        ("gsettings-desktop-schemas"
-                         ,gsettings-desktop-schemas)))
+   (propagated-inputs (list glib-networking gnupg
+                            gsettings-desktop-schemas))
    (inputs
     `(("appstream-glib" ,appstream-glib)
       ("bubblewrap" ,bubblewrap)
@@ -1437,9 +1642,10 @@ cp -r /tmp/locale/*/en_US.*")))
       ("libarchive" ,libarchive)
       ("libostree" ,libostree)
       ("libseccomp" ,libseccomp)
-      ("libsoup" ,libsoup)
+      ("libsoup" ,libsoup-minimal-2)
       ("libxau" ,libxau)
       ("libxml2" ,libxml2)
+      ("p11-kit-next" ,p11-kit-next)
       ("util-linux" ,util-linux)
       ("xdg-dbus-proxy" ,xdg-dbus-proxy)))
    (home-page "https://flatpak.org")
@@ -1483,13 +1689,9 @@ sandboxed desktop applications on GNU/Linux.")
                           `("LD_LIBRARY_PATH" ":" prefix (,(string-append curl "/lib"))))
                         #t))))))
     (native-inputs
-     `(("which" ,which)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list which autoconf automake pkg-config))
     (inputs
-     `(("guile" ,guile-3.0)
-       ("curl" ,curl)))
+     (list guile-3.0 curl))
     (home-page "https://akkuscm.org/")
     (synopsis "Language package manager for Scheme")
     (description
@@ -1595,15 +1797,9 @@ from R7RS, which allows most R7RS code to run on R6RS implementations.")
                     "testsuite/install.00-init/005-init_ts.exp"
                     "modulecmd-test.tcl"))))))))
     (native-inputs
-      `(("dejagnu" ,dejagnu)
-        ("autoconf" ,autoconf)
-        ("which" ,which)))
+      (list dejagnu autoconf which))
     (inputs
-      `(("tcl" ,tcl)
-        ("less" ,less)
-        ("procps" ,procps)
-        ("coreutils" ,coreutils)
-        ("python" ,python-3)))
+      (list tcl less procps coreutils python-3))
     (home-page "http://modules.sourceforge.net/")
     (synopsis "Shell environment variables and aliases management")
     (description "Modules simplify shell initialization and let users
diff --git a/gnu/packages/pantheon.scm b/gnu/packages/pantheon.scm
index 6e78f45e14..87d292d2c7 100644
--- a/gnu/packages/pantheon.scm
+++ b/gnu/packages/pantheon.scm
@@ -115,7 +115,7 @@ desktop.")
 (define-public sideload
   (package
     (name "sideload")
-    (version "1.1.1")
+    (version "6.0.2")
     (source
      (origin
        (method git-fetch)
@@ -125,27 +125,22 @@ desktop.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0mlc3nm2navzxm8k1rwpbw4w6mv30lmhqybm8jqxd4v8x7my73vq"))))
+         "0abpcawmmv5mgzk2i5n9rlairmjr2v9rg9b8c9g7xa085s496bi9"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
-       #:configure-flags (list (string-append "-Dflatpak="
-                                              (assoc-ref %build-inputs "flatpak")
-                                              "/include"))
        #:phases
        (modify-phases %standard-phases
          (add-before 'install 'set-environment-variables
            (lambda _
              ;; Disable compiling schemas and updating desktop databases
-             (setenv "DESTDIR" "/")
-             #t))
+             (setenv "DESTDIR" "/")))
          (add-after 'install 'install-symlinks
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin/io.elementary.sideload"))
                     (link (string-append out "/bin/sideload")))
-               (symlink bin link)
-               #t))))))
+               (symlink bin link)))))))
     (inputs
      `(("flatpak" ,flatpak)
        ("glib" ,glib)
@@ -153,13 +148,13 @@ desktop.")
        ("gtk" ,gtk+)
        ("hicolor-icon-theme" ,hicolor-icon-theme)
        ("libgee" ,libgee)
+       ("libhandy" ,libhandy)
        ("libostree" ,libostree)
        ("libxml2" ,libxml2)))
     (propagated-inputs
      ;; Sideload needs these in the environment to fetch data securely from
      ;; Flatpak remotes.
-     `(("gnupg" ,gnupg)
-       ("gpgme" ,gpgme)))
+     (list gnupg gpgme))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 01609fcd50..a31d64f66b 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -61,14 +61,14 @@
 (define-public parallel
   (package
     (name "parallel")
-    (version "20210822")
+    (version "20211122")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/parallel/parallel-"
                           version ".tar.bz2"))
       (sha256
-       (base32 "08iqx2qq2p4a45nphlcj7xnhr2s8nacahzbyvapqxvr64znmj5kq"))))
+       (base32 "0blnv1mpnlc949m5r4hg1smmsmyyzna0izhqg0dcp92n5hr5dcj8"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -82,8 +82,7 @@
                   ;; $Global::shell = $ENV{'PARALLEL_SHELL'} ||
                   ;;  parent_shell($$) || $ENV{'SHELL'} || "/bin/sh";
                   (("/bin/sh\\\";\n$") (string-append (which "sh") "\";\n"))))
-              (list "src/parallel" "src/sem"))
-             #t))
+              (list "src/parallel" "src/sem"))))
          (add-after 'install 'wrap-program
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -92,8 +91,7 @@
                    ,(map (lambda (input)
                            (string-append (assoc-ref inputs input) "/bin"))
                          '("perl"
-                           "procps"))))
-               #t)))
+                           "procps")))))))
          (add-after 'wrap-program 'post-install-test
            (lambda* (#:key outputs #:allow-other-keys)
              (invoke (string-append
@@ -101,8 +99,7 @@
                      "echo"
                      ":::" "1" "2" "3"))))))
     (inputs
-     `(("perl" ,perl)
-       ("procps" ,procps)))
+     (list perl procps))
     (home-page "https://www.gnu.org/software/parallel/")
     (synopsis "Build and execute command lines in parallel")
     (description
@@ -154,8 +151,7 @@ execution is also possible.")
     (build-system gnu-build-system)
     (arguments `(#:tests? #f)) ;; No tests
     (native-inputs
-     `(("flex" ,flex)
-       ("which" ,which)))
+     (list flex which))
     (home-page "http://www.maier-komor.de/xjobs.html")
     (properties `((release-monitoring-url . ,home-page)))
     (synopsis
@@ -201,13 +197,13 @@ when jobs finish.")
                 #t))))
    ;; FIXME: More optional inputs could be added,
    ;; in particular mysql and gtk+.
-   (inputs `(("freeipmi" ,freeipmi)
-             ("hwloc" ,hwloc-2 "lib")
-             ("json-c" ,json-c)
-             ("linux-pam" , linux-pam)
-             ("munge" ,munge)
-             ("numactl" ,numactl)
-             ("readline" ,readline)))
+   (inputs (list freeipmi
+                 `(,hwloc-2 "lib")
+                 json-c
+                 linux-pam
+                 munge
+                 numactl
+                 readline))
    (native-inputs
     `(("autoconf" ,autoconf)
       ("expect" ,expect)
@@ -321,9 +317,9 @@ by managing a queue of pending work.")
     (build-system gnu-build-system)
     (arguments `(#:tests? #f)) ; The tests require "bats".
     (inputs
-     `(("slurm" ,slurm)))
+     (list slurm))
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (home-page "https://github.com/natefoo/slurm-drmaa")
     (synopsis "Distributed resource management application API for SLURM")
     (description
@@ -366,10 +362,9 @@ cluster/resource management systems.")
                                             value "\n")))
                           #t))))))
       (inputs
-       `(("slurm" ,slurm)))
+       (list slurm))
       (propagated-inputs
-       `(("python-ipython" ,python-ipython)
-         ("python-pandas" ,python-pandas)))
+       (list python-ipython python-pandas))
       (synopsis "Control the SLURM batch scheduler from Jupyter Notebook")
       (description
        "This package implements Jupyter/IPython
@@ -403,9 +398,7 @@ command---e.g., @code{%salloc}, @code{%sbatch}, etc.")
       (build-system cmake-build-system)
       (arguments '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
       (inputs
-       `(("googletest" ,googletest)
-         ("googlebenchmark" ,googlebenchmark)
-         ("fxdiv" ,fxdiv)))
+       (list googletest googlebenchmark fxdiv))
       (synopsis "Efficient thread pool implementation")
       (description
        "The pthreadpool library implements an efficient and portable thread
@@ -434,8 +427,7 @@ features.")
       (build-system cmake-build-system)
       (arguments '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
       (inputs
-       `(("googletest" ,googletest)
-         ("googlebenchmark" ,googlebenchmark)))
+       (list googletest googlebenchmark))
       (synopsis "C/C++ library to obtain information about the CPU")
       (description
        "The cpuinfo library provides a C/C++ and a command-line interface to
diff --git a/gnu/packages/pascal.scm b/gnu/packages/pascal.scm
index dd9df1c199..af7857f084 100644
--- a/gnu/packages/pascal.scm
+++ b/gnu/packages/pascal.scm
@@ -1,6 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 David Hashe <david.hashe@dhashe.com>
 ;;; Copyright © 2017 Kei Kebreau <address@hidden>
 ;;; Copyright © 2020 Eric Bavier <bavier@posteo.net>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,28 +36,32 @@
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
-(define fpc-bootstrap-i386-3.0.4
+(define %fpc-version "3.2.2")
+(define %fpc-release-date "2021/05/19")
+
+;;; FIXME: Bootstrap properly; these are prebuilt binaries.
+(define fpc-bootstrap-i386
   (origin
     (method url-fetch)
-    (uri
-     "mirror://sourceforge/freepascal/Linux/3.0.4/fpc-3.0.4.i386-linux.tar")
+    (uri (string-append "mirror://sourceforge/freepascal/Linux/"
+                        %fpc-version "/fpc-" %fpc-version ".i386-linux.tar"))
     (sha256
      (base32
-      "05xfgxa6vb0y2ryfsgn21m2kwaxhci6l2zxa3akvlnqminjsjvda"))))
+      "0n4r85dsr86zlk7r4hbd4nj14sda6rwgdgzxg4gj4q981fn80agn"))))
 
-(define fpc-bootstrap-x86_64-3.0.4
+(define fpc-bootstrap-x86_64
   (origin
     (method url-fetch)
-    (uri
-     "mirror://sourceforge/freepascal/Linux/3.0.4/fpc-3.0.4.x86_64-linux.tar")
+    (uri (string-append "mirror://sourceforge/freepascal/Linux/"
+                        %fpc-version "/fpc-" %fpc-version ".x86_64-linux.tar"))
     (sha256
      (base32
-      "0xzxh689iyjfmkqkhcqg9plrjmdx82hbyywyyc7jm0n92fpmp5ky"))))
+      "10qywczzz4qlcmmzxb7axnvwniq76ky130vd8iv6ljskll4c7njs"))))
 
 (define-public fpc
   (package
     (name "fpc")
-    (version "3.2.2")                   ; Update release date below!
+    (version %fpc-version)
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/freepascal/Source/"
@@ -76,26 +82,22 @@
                   (mkdir-p "install")
                   (rename-file "install-doc" "install/doc")
                   (rename-file "install-man" "install/man")
-                  (delete-file "fpcsrc/tests/utils/dosbox/exitcode.exe")
-                  #t))))
+                  (delete-file "fpcsrc/tests/utils/dosbox/exitcode.exe")))))
     (build-system gnu-build-system)
     (supported-systems '("i686-linux" "x86_64-linux"))
     (inputs
-     `(("expat" ,expat)
-       ("glibc" ,glibc)
-       ("ld-wrapper" ,ld-wrapper)
-       ("ncurses" ,ncurses)
-       ("zlib" ,zlib)))
+     (list expat glibc ld-wrapper ncurses zlib))
     (native-inputs
      ;; FPC is built with FPC, so we need bootstrap binaries.
-     `(("fpc-binary"
-        ,(match (or (%current-target-system)
-                    (%current-system))
-          ("i686-linux" fpc-bootstrap-i386-3.0.4)
-          ;("powerpc64le-linux" fpc-bootstrap-ppc64le-3.0.4)
-          ;("powerpc-linux" fpc-bootstrap-ppc-3.0.4)
-          ("x86_64-linux" fpc-bootstrap-x86_64-3.0.4)
-          (_ fpc-bootstrap-x86_64-3.0.4)))))
+     `(("fpc-binary" ,(match (or (%current-target-system)
+                                 (%current-system))
+                       ("i686-linux" fpc-bootstrap-i386)
+                       ;;("powerpc64le-linux" fpc-bootstrap-ppc64le)
+                       ;;("powerpc-linux" fpc-bootstrap-ppc)
+                       ("x86_64-linux" fpc-bootstrap-x86_64)
+                       ;; XXX: Wrong, but innocuous so long
+                       ;; `supported-systems' is kept in sync.
+                       (_ fpc-bootstrap-x86_64)))))
     (arguments
      `(#:tests? #f ; no tests available
        #:phases
@@ -115,7 +117,7 @@
            (add-after 'unpack-bin 'install-bin
              (lambda* (#:key inputs #:allow-other-keys)
                (with-directory-excursion
-                 (string-append fpc-bootstrap-path "/fpc-3.0.4."
+                 (string-append fpc-bootstrap-path "/fpc-" ,version "."
                                 arch "-linux")
                  (let ((binary-tarball
                         (string-append "binary." arch "-linux.tar"))
@@ -131,8 +133,7 @@
            (add-after 'patch-source-shebangs 'patch-inline-shebangs
              (lambda _
                (substitute* "fpcsrc/compiler/cscript.pas"
-                 (("#!/bin/sh") (string-append "#!" (which "sh"))))
-               #t))
+                 (("#!/bin/sh") (string-append "#!" (which "sh"))))))
            (add-before 'build 'patch-release-date
              (lambda _                  ; reproducibility
                (substitute* (list "fpcdocs/prog.tex"
@@ -143,8 +144,8 @@
                                   "fpcsrc/utils/fpcm/fpcmmain.pp"
                                   "fpcsrc/utils/fpcreslipo/fpcreslipo.pp"
                                   "fpcsrc/compiler/version.pas")
-                 (("\\{\\$I(NCLUDE)? %DATE%\\}") "'2020/06/19'"))
-               #t))
+                 (("\\{\\$I(NCLUDE)? %DATE%\\}")
+                  (format #f "'~a'" ,%fpc-release-date)))))
            (replace 'configure
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (substitute* "fpcsrc/compiler/systems/t_linux.pas"
@@ -165,8 +166,7 @@
                    "if (isdll) then")))
                (substitute* "fpcsrc/compiler/options.pas"
                  (("exepath\\+'../etc/'")
-                  (string-append "'" (assoc-ref outputs "out") "/etc'")))
-               #t))
+                  (string-append "'" (assoc-ref outputs "out") "/etc'")))))
            (replace 'build
              (lambda* (#:key inputs #:allow-other-keys)
                (let* ((fpc-bin (string-append fpc-bootstrap-path "/bin"))
@@ -177,7 +177,7 @@
                  (setenv "PATH"
                         (string-append (getenv "PATH") ":"
                                        fpc-bootstrap-path
-                                       "/lib/fpc/3.0.4"))
+                                       "/lib/fpc/" ,version))
                  (setenv "FPC" fpc)
                  ;; Specify target operating system using "-T" option
                  (invoke fpcmake (string-append "-T" arch "-linux"))
@@ -212,8 +212,8 @@
                       (glibc (assoc-ref inputs "glibc")))
                  (wrap-program fpc
                    `("PATH" ":" prefix (,(string-append ld "/bin")))
-                   `("LIBRARY_PATH" ":" prefix (,(string-append glibc "/lib"))))
-                 #t)))))))
+                   `("LIBRARY_PATH" ":" prefix
+                     (,(string-append glibc "/lib")))))))))))
     ;; fpc invokes gcc, so make sure LIBRARY_PATH et.al are set.
     ;(native-search-paths (package-native-search-paths gcc))
     (home-page "https://www.freepascal.org")
@@ -266,8 +266,7 @@ many useful extensions to the Pascal programming language.")
              (chdir "src")
              #t)))))
     (native-inputs
-     `(("perl" ,perl)
-       ("which" ,which)))
+     (list perl which))
     (synopsis "p2c converts Pascal programs to C programs--which you can then
 compile using gcc")
     (description "This package provides @command{p2c}, a program to convert
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 3d80065d6a..0ff8608c9c 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -156,20 +156,20 @@ human.")
      `(("asciidoctor" ,ruby-asciidoctor)
        ("qttools" ,qttools)))
     (inputs
-     `(("argon2" ,argon2)
-       ("libgcrypt" ,libgcrypt)
-       ("libsodium" ,libsodium)         ; XC_BROWSER
-       ("libyubikey" ,libyubikey)       ; XC_YUBIKEY
-       ("libxi" ,libxi)
-       ("libxtst" ,libxtst)
-       ("qrencode" ,qrencode)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)
-       ("quazip" ,quazip)               ; XC_KEESHARE
-       ("readline" ,readline)
-       ("yubikey-personalization" ,yubikey-personalization) ; XC_YUBIKEY
-       ("zlib" ,zlib)))
+     (list argon2
+           libgcrypt
+           libsodium ; XC_BROWSER
+           libyubikey ; XC_YUBIKEY
+           libxi
+           libxtst
+           qrencode
+           qtbase-5
+           qtsvg
+           qtx11extras
+           quazip-0 ; XC_KEESHARE
+           readline
+           yubikey-personalization ; XC_YUBIKEY
+           zlib))
     (home-page "https://www.keepassxc.org")
     (synopsis "Password manager")
     (description "KeePassXC is a password manager or safe which helps you to
@@ -259,13 +259,9 @@ platforms.")
                (invoke "autoconf")
                #t)))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)))
+       (list autoconf automake))
       (inputs
-       `(("libx11" ,libx11)
-         ("libxmu" ,libxmu)
-         ("libxt" ,libxt)
-         ("openssl" ,openssl)))
+       (list libx11 libxmu libxt openssl))
       (home-page "https://github.com/nsd20463/pwsafe")
       (synopsis "CLI password manager")
       (description
@@ -286,7 +282,7 @@ Counterpane's Passwordsafe.")
                 "1l2shrhvcwfzkar9qiwb75nhcqmx25iz55lzmz0c187nbjhqzi9p"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:modules ((guix build gnu-build-system)
                     (guix build utils)
@@ -309,9 +305,7 @@ Counterpane's Passwordsafe.")
                  `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,ccachedir)))
                #t))))))
     (inputs
-     `(("guile" ,guile-2.2)
-       ("gnupg" ,gnupg)
-       ("xclip" ,xclip)))
+     (list guile-2.2 gnupg xclip))
     (synopsis "GnuPG-based secret manager")
     (description "Shroud is a simple secret manager with a command line
 interface.  The password database is stored as a Scheme s-expression and
@@ -339,12 +333,9 @@ applications, there is xclip integration." )
        (list (string-append "--docdir=" (assoc-ref %outputs "out")
                             "/share/doc",name "-" ,version))))
     (inputs
-     `(("argon2" ,argon2)
-       ("ncurses" ,ncurses)
-       ("openssl" ,openssl)))
+     (list argon2 ncurses openssl))
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit pkg-config))
     (synopsis "Yet Another Password Encryption Tool")
     (description "YAPET is a text based password manager using the Blowfish
 encryption algorithm.  Because of its small footprint and very few library
@@ -416,7 +407,7 @@ them out, at the source.")
     (native-inputs
      `(("python" ,python-wrapper)))
     (inputs
-     `(("cracklib" ,cracklib)))
+     (list cracklib))
     (synopsis "Password quality checker")
     (home-page "https://github.com/libpwquality/libpwquality")
     (description
@@ -466,14 +457,11 @@ random passwords that pass the checks.")
               (string-append (assoc-ref outputs "out") "/share/man/man1")))))))
     (build-system python-build-system)
     (native-inputs
-     `(("txt2man" ,txt2man)))
+     (list txt2man))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("python-xdo" ,python-xdo)
-       ("python-gpg" ,python-gpg)
-       ("python-pygobject" ,python-pygobject)))
+     (list gtk+ python-xdo python-gpg python-pygobject))
     (propagated-inputs
-     `(("xclip" ,xclip)))
+     (list xclip))
     (home-page "https://finestructure.net/assword/")
     (synopsis "Password manager")
     (description "assword is a simple password manager using GPG-wrapped
@@ -613,13 +601,9 @@ through the pass command.")
              #t)))
        #:test-target "test"))
     (inputs
-     `(("oath-toolkit" ,oath-toolkit)))
+     (list oath-toolkit))
     (native-inputs
-     `(("password-store" ,password-store)
-       ("expect" ,expect)
-       ("git" ,git)
-       ("gnupg" ,gnupg)
-       ("which" ,which)))
+     (list password-store expect git gnupg which))
     (home-page "https://github.com/tadfisher/pass-otp")
     (synopsis "Pass extension for managing one-time-password (OTP) tokens")
     (description
@@ -696,10 +680,9 @@ key URIs using the standard otpauth:// scheme.")
              (setenv "QT_QPA_PLATFORM" "offscreen")
              #t)))))
     (native-inputs
-     `(("qttools" ,qttools)))
+     (list qttools))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+     (list qtbase-5 qtsvg))
     (home-page "https://qtpass.org")
     (synopsis "GUI for password manager password-store")
     (description
@@ -736,9 +719,7 @@ encryption.")
            (chmod script #o555)
            (install-file script (string-append out "/bin"))))))
     (propagated-inputs
-     `(("password-store" ,password-store)
-       ("rofi" ,rofi)
-       ("xdotool" ,xdotool)))
+     (list password-store rofi xdotool))
     (home-page "https://github.com/carnager/rofi-pass")
     (synopsis "Rofi frontend for password-store")
     (description "Rofi-pass provides a way to manipulate information stored
@@ -810,13 +791,11 @@ using password-store through rofi interface:
                    (,(string-append gnupg "/bin"))))
                #t))))))
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (inputs
-     `(("gnupg" ,gnupg)
-       ("go-github-com-mattn-go-zglob" ,go-github-com-mattn-go-zglob)
-       ("go-github-com-rifflock-lfshook" ,go-github-com-rifflock-lfshook)
-       ("go-github-com-sirupsen-logrus" ,go-github-com-sirupsen-logrus)
-       ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+     (list gnupg go-github-com-mattn-go-zglob
+           go-github-com-rifflock-lfshook go-github-com-sirupsen-logrus
+           go-golang-org-x-sys))
     (home-page "https://github.com/browserpass/browserpass-native")
     (synopsis "Browserpass native messaging host")
     (description "Browserpass is a browser extension for pass, a
@@ -893,11 +872,9 @@ winner of the 2015 Password Hashing Competition.")
              (setenv "HOME" (getcwd))
              (invoke "pytest"))))))
     (inputs
-     `(("python-pyxdg" ,python-pyxdg)
-       ("password-store" ,password-store)))
+     (list python-pyxdg password-store))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-mock" ,python-pytest-mock)))
+     (list python-pytest python-pytest-mock))
     (home-page "https://github.com/languitar/pass-git-helper")
     (synopsis "Git credential helper interfacing with pass")
     (description "pass-git-helper is a git credential helper which
@@ -922,7 +899,7 @@ between hosts and entries in the password store.")
            "0fvz3v41hnaiv1ggpxanfykyfjq79cwp9qcqqn63vic357w27lgm"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("perl" ,perl)))
+       (list perl))
       (inputs
        `(("gmp" ,gmp)
          ("libpcap" ,libpcap)
@@ -1026,8 +1003,7 @@ is the community-enhanced, \"jumbo\" version of John the Ripper.")
      ;; to Python 2, which works fine.
      `(#:python ,python-2))
     (propagated-inputs
-     `(("gnupg" ,gnupg)
-       ("pwgen" ,pwgen)))
+     (list gnupg pwgen))
     (home-page "http://www.digip.org/sala/")
     (synopsis "Encrypted plaintext password store")
     (description
@@ -1051,10 +1027,10 @@ by GnuPG's symmetrical encryption.")
     (inputs `(("gtk2" ,gtk+-2)
               ("gnupg" ,gnupg)
               ("libxml2" ,libxml2)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("intltool" ,intltool)))
+    (native-inputs (list pkg-config intltool))
     (arguments
-     `(#:phases
+     `(#:configure-flags '("CFLAGS=-O2 -g -fcommon")
+       #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'pre-configure
            ;; The file po/POTFILES.in ends up missing for some reason in
@@ -1099,10 +1075,8 @@ to use a different password manager.")
           "1m067vvdlc85csbpkp8aw4s3ags7q8s3jszrr32kmj9qhk5c254f"))))
     (build-system python-build-system)
     (inputs
-     `(("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-docopt" ,python-docopt)
-       ("python-html5lib" ,python-html5lib)
-       ("python-requests" ,python-requests)))
+     (list python-beautifulsoup4 python-docopt python-html5lib
+           python-requests))
     (home-page "https://github.com/ddevault/pass-rotate")
     (synopsis "Rotate password on online services")
     (description "pass-rotate is a command line utility and python library for
@@ -1124,7 +1098,7 @@ your online accounts makes it necessary.")
         (base32
          "104z63m7lqbb0sdrxhf9yi15l4a9zwf9m6zs9dbb3gf0nfxl1h9r"))))
     (native-inputs
-     `(("opencl-headers" ,opencl-headers)))
+     (list opencl-headers))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ;no tests
@@ -1154,9 +1128,9 @@ password cracking.")
        (sha256
         (base32 "0kq555kb338691qd7zjmi8vhq4km3apnsl2w63zh0igwzcjx6lx1"))))
     (native-inputs
-     `(("p7zip" ,p7zip)))
+     (list p7zip))
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ;no tests
@@ -1212,9 +1186,9 @@ group them into chains.")
         (base32 "0yawrlbbklhmvwr99wm7li3r0d5kxvpkwf33a12rji7z0ya5p340"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("lzip" ,lzip)))
+     (list lzip))
     (inputs
-     `(("cryptsetup" ,cryptsetup)))
+     (list cryptsetup))
     (synopsis "LUKS encrypted volume cracker")
     (description
      "This is a cracker for LUKS encrypted volumes.  It can be used either in
@@ -1240,13 +1214,9 @@ try every password contained in a file.")
           (base32 "0lspqyyxbk6h28yxnp7pd5aib161vrkzgasam5jpzn35n1jacx2j"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("libxslt" ,libxslt)
-         ("libxml2" ,libxml2)
-         ("docbook-xsl" ,docbook-xsl)
-         ("docbook-xml" ,docbook-xml)))
+       (list pkg-config libxslt libxml2 docbook-xsl docbook-xml))
       (inputs
-       `(("openssl" ,openssl)))
+       (list openssl))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -1295,7 +1265,7 @@ encryption algorithm if so desired.")
                   (string-append ":-" tomb "/bin/tomb"))))))
          (delete 'configure))))
     (inputs
-     `(("tomb" ,tomb)))
+     (list tomb))
     (home-page "https://github.com/roddhjav/pass-tomb")
     (synopsis "Pass extension keeping the tree of passwords encrypted")
     (description "Pass-tomb provides a convenient solution to put your
diff --git a/gnu/packages/patches/abseil-cpp-fix-gtest.patch b/gnu/packages/patches/abseil-cpp-fix-gtest.patch
deleted file mode 100644
index 38971448f3..0000000000
--- a/gnu/packages/patches/abseil-cpp-fix-gtest.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-The GTEST_ALLOW_UNINSTANTIATED_PARAMTERIZED_TEST macro was added to googletest
-in commit 0b024bd9 on master. It has been used in an abseil-cpp release before
-a googletest release.
-
---- a/absl/container/internal/unordered_map_modifiers_test.h
-+++ b/absl/container/internal/unordered_map_modifiers_test.h
-@@ -286,7 +286,9 @@ class UniquePtrModifiersTest : public ::testing::Test {
-   }
- };
-
-+#ifdef GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST
- GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(UniquePtrModifiersTest);
-+#endif
-
- TYPED_TEST_SUITE_P(UniquePtrModifiersTest);
-
diff --git a/gnu/packages/patches/agg-2.5-gcc8.patch b/gnu/packages/patches/agg-2.5-gcc8.patch
new file mode 100644
index 0000000000..dfcfc6cd4a
--- /dev/null
+++ b/gnu/packages/patches/agg-2.5-gcc8.patch
@@ -0,0 +1,14 @@
+Taken from: https://gitweb.gentoo.org/repo/gentoo.git/tree/x11-libs/agg/files/agg-2.5-gcc8.patch.
+
+diff -uprN agg-2.5/include/agg_renderer_outline_aa.h agg-2.5-fixed/include/agg_renderer_outline_aa.h
+--- agg-2.5/include/agg_renderer_outline_aa.h	2018-08-25 02:02:52.507254241 +0800
++++ agg-2.5-fixed/include/agg_renderer_outline_aa.h	2018-08-25 02:04:15.291175316 +0800
+@@ -1375,7 +1375,7 @@ namespace agg
+         //---------------------------------------------------------------------
+         void profile(const line_profile_aa& prof) { m_profile = &prof; }
+         const line_profile_aa& profile() const { return *m_profile; }
+-        line_profile_aa& profile() { return *m_profile; }
++        const line_profile_aa& profile() { return *m_profile; }
+ 
+         //---------------------------------------------------------------------
+         int subpixel_width() const { return m_profile->subpixel_width(); }
diff --git a/gnu/packages/patches/alpine-fix-privacy-policy-crash.patch b/gnu/packages/patches/alpine-fix-privacy-policy-crash.patch
new file mode 100644
index 0000000000..d514ac33a0
--- /dev/null
+++ b/gnu/packages/patches/alpine-fix-privacy-policy-crash.patch
@@ -0,0 +1,39 @@
+X-Git-Url: https://repo.or.cz/alpine.git/blobdiff_plain/fb2217ac67706e4cbef69bea41041e2fb8b910e9..3ee981816abfb7d47ffc0ac522fff002b5749b72:/alpine/help.c
+
+diff --git a/alpine/help.c b/alpine/help.c
+index 4f1bf46..e9c7b34 100644
+--- a/alpine/help.c
++++ b/alpine/help.c
+@@ -36,6 +36,7 @@ static char rcsid[] = "$Id: help.c 1032 2008-04-11 00:30:04Z hubert@u.washington
+ #include "../pith/detoken.h"
+ #include "../pith/list.h"
+ #include "../pith/margin.h"
++#include "../pith/busy.h"
+ 
+ 
+ typedef struct _help_scroll {
+@@ -135,10 +136,12 @@ helper_internal(HelpType text, char *frag, char *title, int flags)
+     is_external = 0;
+ 
+     if(shown_text && *shown_text && !struncmp(*shown_text, "x-alpine-http:", 14)){
+-	int status;
++	int status, we_cancel = 0;
++
++	we_cancel = busy_cue(_("Retrieving help text"), NULL, 1);
+ 	HTTPSTREAM *stream = http_open(*shown_text + 14);
+ 	if(stream) help_text = http_get(stream, NULL);
+-	status = stream->status ? stream->status->code : -1;
++	status = stream && stream->status ? stream->status->code : -1;
+ 	if(stream) http_close(stream);
+ 	if(status != HTTP_OK){
+ 	    shown_text = NO_HELP;
+@@ -165,7 +168,8 @@ helper_internal(HelpType text, char *frag, char *title, int flags)
+ 		*rv = NULL;
+ 	    }
+ 	}
+-
++	if(we_cancel)
++	   cancel_busy_cue(-1);
+     }
+ 
+     if(F_ON(F_BLANK_KEYMENU,ps_global)){
diff --git a/gnu/packages/patches/awesome-4.3-fno-common.patch b/gnu/packages/patches/awesome-4.3-fno-common.patch
new file mode 100644
index 0000000000..62f153d012
--- /dev/null
+++ b/gnu/packages/patches/awesome-4.3-fno-common.patch
@@ -0,0 +1,178 @@
+Taken from: https://github.com/awesomeWM/awesome/commit/d256d9055095f27a33696e0aeda4ee20ed4fb1a0
+Author: Reiner Herrmann <reiner@reiner-h.de>
+
+--- a/common/lualib.c
++++ b/common/lualib.c
+@@ -20,6 +20,8 @@
+ #include "common/lualib.h"
+ #include "luaa.h"
+ 
++lua_CFunction lualib_dofunction_on_error;
++
+ void luaA_checkfunction(lua_State *L, int idx)
+ {
+     if(!lua_isfunction(L, idx))
+--- a/common/lualib.h
++++ b/common/lualib.h
+@@ -28,7 +28,7 @@
+ #include "common/util.h"
+ 
+ /** Lua function to call on dofunction() error */
+-lua_CFunction lualib_dofunction_on_error;
++extern lua_CFunction lualib_dofunction_on_error;
+ 
+ void luaA_checkfunction(lua_State *, int);
+ void luaA_checktable(lua_State *, int);
+--- a/luaa.c
++++ b/luaa.c
+@@ -91,6 +91,8 @@ extern const struct luaL_Reg awesome_mouse_meta[];
+ extern const struct luaL_Reg awesome_root_methods[];
+ extern const struct luaL_Reg awesome_root_meta[];
+ 
++signal_array_t global_signals;
++
+ /** A call into the Lua code aborted with an error.
+  *
+  * This signal is used in the example configuration, @{05-awesomerc.md},
+--- a/luaa.h
++++ b/luaa.h
+@@ -317,7 +317,7 @@ const char *luaA_find_config(xdgHandle *, const char *, luaA_config_callback *);
+ bool luaA_parserc(xdgHandle *, const char *);
+ 
+ /** Global signals */
+-signal_array_t global_signals;
++extern signal_array_t global_signals;
+ 
+ int luaA_class_index_miss_property(lua_State *, lua_object_t *);
+ int luaA_class_newindex_miss_property(lua_State *, lua_object_t *);
+--- a/objects/button.c
++++ b/objects/button.c
+@@ -35,6 +35,8 @@
+ 
+ #include "button.h"
+ 
++lua_class_t button_class;
++
+ /** Button object.
+  *
+  * @tfield int button The mouse button number, or 0 for any button.
+--- a/objects/button.h
++++ b/objects/button.h
+@@ -39,7 +39,7 @@ typedef struct button_t
+     xcb_button_t button;
+ } button_t;
+ 
+-lua_class_t button_class;
++extern lua_class_t button_class;
+ LUA_OBJECT_FUNCS(button_class, button_t, button)
+ ARRAY_FUNCS(button_t *, button, DO_NOTHING)
+ 
+--- a/objects/client.c
++++ b/objects/client.c
+@@ -108,6 +108,8 @@
+ #include <xcb/shape.h>
+ #include <cairo-xcb.h>
+ 
++lua_class_t client_class;
++
+ /** Client class.
+  *
+  * This table allow to add more dynamic properties to the clients. For example,
+--- a/objects/client.h
++++ b/objects/client.h
+@@ -200,7 +200,7 @@ struct client_t
+ ARRAY_FUNCS(client_t *, client, DO_NOTHING)
+ 
+ /** Client class */
+-lua_class_t client_class;
++extern lua_class_t client_class;
+ 
+ LUA_OBJECT_FUNCS(client_class, client_t, client)
+ 
+--- a/objects/drawin.c
++++ b/objects/drawin.c
+@@ -46,6 +46,8 @@
+ #include <cairo-xcb.h>
+ #include <xcb/shape.h>
+ 
++lua_class_t drawin_class;
++
+ /** Drawin object.
+  *
+  * @field border_width Border width.
+--- a/objects/drawin.h
++++ b/objects/drawin.h
+@@ -52,7 +52,7 @@ void luaA_drawin_systray_kickout(lua_State *);
+ 
+ void drawin_class_setup(lua_State *);
+ 
+-lua_class_t drawin_class;
++extern lua_class_t drawin_class;
+ 
+ #endif
+ // vim: filetype=c:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
+--- a/objects/key.c
++++ b/objects/key.c
+@@ -43,6 +43,8 @@
+ #include <xkbcommon/xkbcommon.h>
+ #include <glib.h>
+ 
++lua_class_t key_class;
++
+ /** Key object.
+  *
+  * @tfield string key The key to trigger an event.
+--- a/objects/key.h
++++ b/objects/key.h
+@@ -36,7 +36,7 @@ typedef struct keyb_t
+     xcb_keycode_t keycode;
+ } keyb_t;
+ 
+-lua_class_t key_class;
++extern lua_class_t key_class;
+ LUA_OBJECT_FUNCS(key_class, keyb_t, key)
+ DO_ARRAY(keyb_t *, key, DO_NOTHING)
+ 
+--- a/objects/tag.c
++++ b/objects/tag.c
+@@ -190,6 +190,8 @@
+ #include "ewmh.h"
+ #include "luaa.h"
+
++lua_class_t tag_class;
++
+ /**
+  * @signal request::select
+  */
+--- a/objects/tag.h
++++ b/objects/tag.h
+@@ -46,7 +46,7 @@ struct tag
+     client_array_t clients;
+ };
+ 
+-lua_class_t tag_class;
++extern lua_class_t tag_class;
+ LUA_OBJECT_FUNCS(tag_class, tag_t, tag)
+ 
+ void tag_class_setup(lua_State *);
+--- a/objects/window.c
++++ b/objects/window.c
+@@ -59,6 +59,7 @@
+ #include "property.h"
+ #include "xwindow.h"
+ 
++lua_class_t window_class;
+ LUA_CLASS_FUNCS(window, window_class)
+ 
+ static xcb_window_t
+--- a/objects/window.h
++++ b/objects/window.h
+@@ -80,7 +80,7 @@ typedef struct
+     WINDOW_OBJECT_HEADER
+ } window_t;
+ 
+-lua_class_t window_class;
++extern lua_class_t window_class;
+ 
+ void window_class_setup(lua_State *);
+
diff --git a/gnu/packages/patches/aws-c-auth-install-private-headers.patch b/gnu/packages/patches/aws-c-auth-install-private-headers.patch
new file mode 100644
index 0000000000..990fd6f2eb
--- /dev/null
+++ b/gnu/packages/patches/aws-c-auth-install-private-headers.patch
@@ -0,0 +1,19 @@
+aws-sdk-cpp depends on the private headers from aws-c-auth. This dependency was
+added to aws-sdk-cpp in commit 23cca02c2df on 2021-06-04.
+
+The following error is generated when building aws-sdk-cpp when the private
+aws-c-auth headers are not installed:
+
+/tmp/guix-build-aws-sdk-cpp-1.9.121.drv-0/aws-sdk-cpp-1.9.121-checkout/aws-cpp-sdk-core-tests/aws/auth/AWSAuthSignerTest.cpp:17:10: fatal error: aws/auth/private/aws_signing.h: No such file or directory
+ #include <aws/auth/private/aws_signing.h>
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -110,6 +114,7 @@ target_link_libraries(${PROJECT_NAME} PUBLIC ${DEP_AWS_LIBS} ${PLATFORM_LIBS})
+ aws_prepare_shared_lib_exports(${PROJECT_NAME})
+ 
+ install(FILES ${AWS_AUTH_ROOT_HEADERS} DESTINATION "include/aws/auth" COMPONENT Development)
++install(FILES ${AWS_AUTH_PRIVATE_HEADERS} DESTINATION "include/aws/auth/private" COMPONENT Development)
+ 
+ if (BUILD_SHARED_LIBS)
+    set (TARGET_DIR "shared")
diff --git a/gnu/packages/patches/aws-c-cal-cmake-prefix.patch b/gnu/packages/patches/aws-c-cal-cmake-prefix.patch
deleted file mode 100644
index 1ee7aa851d..0000000000
--- a/gnu/packages/patches/aws-c-cal-cmake-prefix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -10,6 +10,10 @@ endif()
- 
- option(BYO_CRYPTO "Set this if you want to provide your own cryptography implementation. This will cause the defaults to not be compiled." OFF)
- 
-+if (DEFINED ENV{CMAKE_PREFIX_PATH})
-+    set(CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH})
-+endif()
-+
- if (DEFINED CMAKE_PREFIX_PATH)
-     file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
- endif()
diff --git a/gnu/packages/patches/aws-c-event-stream-cmake-prefix.patch b/gnu/packages/patches/aws-c-event-stream-cmake-prefix.patch
deleted file mode 100644
index 79655a910b..0000000000
--- a/gnu/packages/patches/aws-c-event-stream-cmake-prefix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -3,6 +3,10 @@
- cmake_minimum_required (VERSION 3.1)
- project (aws-c-event-stream C)
- 
-+if (DEFINED ENV{CMAKE_PREFIX_PATH})
-+    set(CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH})
-+endif()
-+
- if (DEFINED CMAKE_PREFIX_PATH)
-     file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
- endif()
diff --git a/gnu/packages/patches/aws-c-io-cmake-prefix.patch b/gnu/packages/patches/aws-c-io-cmake-prefix.patch
deleted file mode 100644
index da3e4eb4a5..0000000000
--- a/gnu/packages/patches/aws-c-io-cmake-prefix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -6,6 +6,10 @@ if (POLICY CMP0069)
-     cmake_policy(SET CMP0069 NEW) # Enable LTO/IPO if available in the compiler, see AwsCFlags
- endif()
- 
-+if (DEFINED ENV{CMAKE_PREFIX_PATH})
-+    set(CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH})
-+endif()
-+
- if (DEFINED CMAKE_PREFIX_PATH)
-     file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
- endif()
diff --git a/gnu/packages/patches/aws-c-io-disable-networking-tests.patch b/gnu/packages/patches/aws-c-io-disable-networking-tests.patch
deleted file mode 100644
index 09fe11310c..0000000000
--- a/gnu/packages/patches/aws-c-io-disable-networking-tests.patch
+++ /dev/null
@@ -1,81 +0,0 @@
---- a/tests/CMakeLists.txt
-+++ b/tests/CMakeLists.txt
-@@ -52,8 +52,8 @@ add_test_case(local_socket_communication)
- add_net_test_case(tcp_socket_communication)
- add_net_test_case(udp_socket_communication)
- add_test_case(udp_bind_connect_communication)
--add_net_test_case(connect_timeout)
--add_net_test_case(connect_timeout_cancelation)
-+#add_net_test_case(connect_timeout)
-+#add_net_test_case(connect_timeout_cancelation)
- if (USE_VSOCK)
- 	add_test_case(vsock_loopback_socket_communication)
- endif ()
-@@ -64,7 +64,7 @@ add_test_case(incoming_tcp_sock_errors)
- add_test_case(incoming_duplicate_tcp_bind_errors)
- add_test_case(incoming_udp_sock_errors)
- add_test_case(wrong_thread_read_write_fails)
--add_net_test_case(cleanup_before_connect_or_timeout_doesnt_explode)
-+#add_net_test_case(cleanup_before_connect_or_timeout_doesnt_explode)
- add_test_case(cleanup_in_accept_doesnt_explode)
- add_test_case(cleanup_in_write_cb_doesnt_explode)
- add_test_case(sock_write_cb_is_async)
-@@ -81,21 +81,21 @@ add_test_case(channel_tasks_run)
- add_test_case(channel_rejects_post_shutdown_tasks)
- add_test_case(channel_cancels_pending_tasks)
- add_test_case(channel_duplicate_shutdown)
--add_net_test_case(channel_connect_some_hosts_timeout)
-+#add_net_test_case(channel_connect_some_hosts_timeout)
-
--add_net_test_case(test_default_with_ipv6_lookup)
-+#add_net_test_case(test_default_with_ipv6_lookup)
- add_test_case(test_resolver_ipv6_address_lookup)
--add_net_test_case(test_default_with_multiple_lookups)
-+#add_net_test_case(test_default_with_multiple_lookups)
- add_test_case(test_resolver_ipv4_address_lookup)
--add_net_test_case(test_default_with_ipv4_only_lookup)
-+#add_net_test_case(test_default_with_ipv4_only_lookup)
- add_test_case(test_resolver_ttls)
- add_test_case(test_resolver_connect_failure_recording)
- add_test_case(test_resolver_ttl_refreshes_on_resolve)
-
- add_net_test_case(test_resolver_listener_create_destroy)
--add_net_test_case(test_resolver_add_listener_before_host)
--add_net_test_case(test_resolver_add_listener_after_host)
--add_net_test_case(test_resolver_add_multiple_listeners_fn)
-+#add_net_test_case(test_resolver_add_listener_before_host)
-+#add_net_test_case(test_resolver_add_listener_after_host)
-+#add_net_test_case(test_resolver_add_multiple_listeners_fn)
- add_net_test_case(test_resolver_listener_host_re_add_fn)
- add_net_test_case(test_resolver_listener_multiple_results)
- add_net_test_case(test_resolver_listener_address_expired_fn)
-@@ -119,20 +119,20 @@ add_test_case(socket_handler_close)
- if (NOT BYO_CRYPTO)
-     add_net_test_case(test_concurrent_cert_import)
-     add_test_case(tls_channel_echo_and_backpressure_test)
--    add_net_test_case(tls_client_channel_negotiation_error_expired)
--    add_net_test_case(tls_client_channel_negotiation_error_wrong_host)
--    add_net_test_case(tls_client_channel_negotiation_error_self_signed)
--    add_net_test_case(tls_client_channel_negotiation_error_untrusted_root)
-+    #add_net_test_case(tls_client_channel_negotiation_error_expired)
-+    #add_net_test_case(tls_client_channel_negotiation_error_wrong_host)
-+    #add_net_test_case(tls_client_channel_negotiation_error_self_signed)
-+    #add_net_test_case(tls_client_channel_negotiation_error_untrusted_root)
-     #track these down in s2n and find out why that aren't failing.
-     #add_net_test_case(tls_client_channel_negotiation_error_revoked)
-     #add_net_test_case(tls_client_channel_negotiation_error_pinning)
--    add_net_test_case(tls_client_channel_negotiation_error_socket_closed)
--    add_net_test_case(tls_client_channel_negotiation_success)
--    add_net_test_case(tls_client_channel_negotiation_success_ecc256)
--    add_net_test_case(tls_client_channel_negotiation_success_ecc384)
-+    #add_net_test_case(tls_client_channel_negotiation_error_socket_closed)
-+    #add_net_test_case(tls_client_channel_negotiation_success)
-+    #add_net_test_case(tls_client_channel_negotiation_success_ecc256)
-+    #add_net_test_case(tls_client_channel_negotiation_success_ecc384)
-     add_net_test_case(tls_server_multiple_connections)
-     add_net_test_case(tls_server_hangup_during_negotiation)
--    add_net_test_case(tls_client_channel_no_verify)
-+    #add_net_test_case(tls_client_channel_no_verify)
-     add_net_test_case(test_tls_negotiation_timeout)
-     add_net_test_case(tls_double_channel)
-     add_net_test_case(alpn_successfully_negotiates)
diff --git a/gnu/packages/patches/aws-checksums-cmake-prefix.patch b/gnu/packages/patches/aws-checksums-cmake-prefix.patch
deleted file mode 100644
index f6a5c9ad9c..0000000000
--- a/gnu/packages/patches/aws-checksums-cmake-prefix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -8,6 +8,10 @@
-     cmake_policy(SET CMP0069 NEW) # Enable LTO/IPO if available in the compiler, see AwsCFlags
- endif()
- 
-+if (DEFINED ENV{CMAKE_PREFIX_PATH})
-+    set(CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH})
-+endif()
-+
- if (DEFINED CMAKE_PREFIX_PATH)
-     file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
- endif()
diff --git a/gnu/packages/patches/bear-disable-preinstall-tests.patch b/gnu/packages/patches/bear-disable-preinstall-tests.patch
deleted file mode 100644
index c65095405f..0000000000
--- a/gnu/packages/patches/bear-disable-preinstall-tests.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From d7d0cdd48017679e8529f8475d1b9902944cf243 Mon Sep 17 00:00:00 2001
-From: Brett Gilio <brettg@gnu.org>
-Date: Sun, 20 Dec 2020 14:43:30 -0600
-Subject: [PATCH] Disallow Pre-install Checks
-
----
- CMakeLists.txt | 8 --------
- 1 file changed, 8 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 45c6d27..73b4ace 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -58,10 +58,6 @@ ExternalProject_Add(BearSource
-             -DROOT_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
-             -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-             -DENABLE_UNIT_TESTS:BOOL=${ENABLE_UNIT_TESTS}
--        TEST_BEFORE_INSTALL
--            1
--        TEST_COMMAND
--            ctest # or `ctest -T memcheck`
-         )
- 
- # Run the functional tests
-@@ -73,12 +69,8 @@ if (ENABLE_FUNC_TESTS)
-                 BearSource
-             CMAKE_CACHE_ARGS
-                 -DSTAGED_INSTALL_PREFIX:PATH=${STAGED_INSTALL_PREFIX}
--            TEST_BEFORE_INSTALL
--                1
-             INSTALL_COMMAND
-                 ""
--            TEST_COMMAND
--                ctest --verbose
-             )
- endif ()
- 
--- 
-2.29.2
-
diff --git a/gnu/packages/patches/bind-re-add-attr-constructor-priority.patch b/gnu/packages/patches/bind-re-add-attr-constructor-priority.patch
new file mode 100644
index 0000000000..5d6765dd92
--- /dev/null
+++ b/gnu/packages/patches/bind-re-add-attr-constructor-priority.patch
@@ -0,0 +1,57 @@
+From 6361de07a35f2e9dc1d7201d6b26ca31da93ee69 Mon Sep 17 00:00:00 2001
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Thu, 9 Dec 2021 01:07:32 +0100
+Subject: [PATCH] Revert "Remove priority from attribute
+ constructor/destructor"
+
+This reverts commit 0340df46ec5897636dd071bc8b5c4272cfa7d7be.  It works
+around an irrelevant operating system and breaks compilation on Guix:
+
+mem.c:873: fatal error: RUNTIME_CHECK(((pthread_mutex_lock(((&contextslock))) == 0) ? 0 : 34) == 0) failed
+/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/bash: line 1: 13768 Aborted                 ./${fuzzer}
+
+Let's simply revert it for now---there are securities at stake!
+---
+ lib/isc/include/isc/util.h | 8 ++++----
+ lib/isc/lib.c              | 4 ++--
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/lib/isc/include/isc/util.h b/lib/isc/include/isc/util.h
+index f0f7f85fa4..64c26587ac 100644
+--- a/lib/isc/include/isc/util.h
++++ b/lib/isc/include/isc/util.h
+@@ -49,11 +49,11 @@
+ #endif /* __GNUC__ */
+ 
+ #if HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR && HAVE_FUNC_ATTRIBUTE_DESTRUCTOR
+-#define ISC_CONSTRUCTOR __attribute__((constructor))
+-#define ISC_DESTRUCTOR	__attribute__((destructor))
++#define ISC_CONSTRUCTOR(priority) __attribute__((constructor(priority)))
++#define ISC_DESTRUCTOR(priority)  __attribute__((destructor(priority)))
+ #elif WIN32
+-#define ISC_CONSTRUCTOR
+-#define ISC_DESTRUCTOR
++#define ISC_CONSTRUCTOR(priority)
++#define ISC_DESTRUCTOR(priority)
+ #endif
+ 
+ /*%
+diff --git a/lib/isc/lib.c b/lib/isc/lib.c
+index f3576b2659..2a167fec21 100644
+--- a/lib/isc/lib.c
++++ b/lib/isc/lib.c
+@@ -35,9 +35,9 @@ isc_lib_register(void) {
+ }
+ 
+ void
+-isc__initialize(void) ISC_CONSTRUCTOR;
++isc__initialize(void) ISC_CONSTRUCTOR(101);
+ void
+-isc__shutdown(void) ISC_DESTRUCTOR;
++isc__shutdown(void) ISC_DESTRUCTOR(101);
+ 
+ void
+ isc__initialize(void) {
+-- 
+2.34.0
+
diff --git a/gnu/packages/patches/cabal-install-base16-bytestring1.0.patch b/gnu/packages/patches/cabal-install-base16-bytestring1.0.patch
new file mode 100644
index 0000000000..998bf08718
--- /dev/null
+++ b/gnu/packages/patches/cabal-install-base16-bytestring1.0.patch
@@ -0,0 +1,29 @@
+Restore compatibility with newer version of base16-bytestring.
+
+Taken from https://raw.githubusercontent.com/archlinux/svntogit-community/packages/trunk/cabal-install-base16-bytestring1.0.patch
+
+diff --git a/Distribution/Client/HashValue.hs b/Distribution/Client/HashValue.hs
+index 54b8aee9e..11e647c1c 100644
+--- a/Distribution/Client/HashValue.hs
++++ b/Distribution/Client/HashValue.hs
+@@ -1,3 +1,4 @@
++{-# LANGUAGE CPP          #-}
+ {-# LANGUAGE DeriveDataTypeable #-}
+ {-# LANGUAGE DeriveGeneric      #-}
+ module Distribution.Client.HashValue (
+@@ -72,10 +73,14 @@ hashFromTUF (Sec.Hash hashstr) =
+     --TODO: [code cleanup] either we should get TUF to use raw bytestrings or
+     -- perhaps we should also just use a base16 string as the internal rep.
+     case Base16.decode (BS.pack hashstr) of
++#if MIN_VERSION_base16_bytestring(1,0,0)
++      Right hash -> HashValue hash
++      Left _ -> error "hashFromTUF: cannot decode base16"
++#else
+       (hash, trailing) | not (BS.null hash) && BS.null trailing
+         -> HashValue hash
+       _ -> error "hashFromTUF: cannot decode base16 hash"
+-
++#endif
+ 
+ -- | Truncate a 32 byte SHA256 hash to
+ --
diff --git a/gnu/packages/patches/cabal-install-ghc8.10.patch b/gnu/packages/patches/cabal-install-ghc8.10.patch
new file mode 100644
index 0000000000..67c0953058
--- /dev/null
+++ b/gnu/packages/patches/cabal-install-ghc8.10.patch
@@ -0,0 +1,393 @@
+From ac9b41eef3c781ce188ded2551f98fe75152e30c Mon Sep 17 00:00:00 2001
+From: Oleg Grenrus <oleg.grenrus@iki.fi>
+Date: Tue, 14 Apr 2020 11:31:34 +0300
+Subject: [PATCH] GHC-8.10 support for 3.2
+
+Includes cherry-picked commits:
+
+- Test cabal-install with GHC-8.10 #6709
+- Add GHC-8.10.1 job. Only tests Cabal-the-lib part atm. #6617
+
+Also add topHandler' signature.
+---
+ .docker/validate-8.10.1.dockerfile            |  60 ++++++
+ .github/workflows/artifacts.yml               |   6 +-
+ .github/workflows/bootstrap.yml               |   4 +-
+ .github/workflows/linux.yml                   | 179 ++++++++++++------
+ .github/workflows/macos.yml                   |  40 ++--
+ .github/workflows/quick-jobs.yml              |   4 +-
+ .github/workflows/windows.yml                 | 117 +++++++++++-
+ .../Distribution/PackageDescription/Quirks.hs |  19 +-
+ Makefile                                      |   4 +
+ boot/ci-artifacts.template.yml                |   6 +-
+ boot/ci-bootstrap.template.yml                |   4 +-
+ boot/ci-linux.template.yml                    |   8 +-
+ boot/ci-macos.template.yml                    |   7 +-
+ boot/ci-quick-jobs.template.yml               |   4 +-
+ boot/ci-windows.template.yml                  |   8 +-
+ cabal-dev-scripts/src/GenValidate.hs          |  33 ++--
+ Distribution/Client/CmdSdist.hs |   3 +
+ .../Distribution/Client/FetchUtils.hs         |   4 +-
+ .../Distribution/Client/IndexUtils.hs         |   2 +-
+ Distribution/Client/Sandbox.hs  |   5 +-
+ .../Distribution/Client/TargetSelector.hs     |   2 +-
+ Distribution/Client/Update.hs   |   4 +-
+ .../Distribution/Client/Utils/Json.hs         |  13 +-
+ .../Distribution/Solver/Modular/Assignment.hs |  11 +-
+ .../Distribution/Solver/Modular/Builder.hs    |  10 +-
+ .../Distribution/Solver/Modular/Index.hs      |   6 +-
+ .../Solver/Modular/IndexConversion.hs         |   8 +-
+ .../Distribution/Solver/Modular/Solver.hs     |  12 +-
+ .../Distribution/Solver/Modular/Validate.hs   |   5 +-
+ bootstrap.sh                    |   6 +-
+ cabal-install.cabal             |   4 +-
+ cabal-install.cabal.pp          |   4 +-
+ .../targets/complex/q/q.cabal                 |   3 +-
+ cabal-testsuite/cabal-testsuite.cabal         |   4 +-
+ validate.sh                                   |  21 +-
+ 35 files changed, 461 insertions(+), 169 deletions(-)
+ create mode 100644 .docker/validate-8.10.1.dockerfile
+diff --git a/Distribution/Client/CmdSdist.hs b/Distribution/Client/CmdSdist.hs
+index 9ce0c80100e..a22317004c4 100644
+--- a/Distribution/Client/CmdSdist.hs
++++ b/Distribution/Client/CmdSdist.hs
+@@ -237,7 +237,10 @@ packageToSdist verbosity projectRootDir format outputFile pkg = do
+         (norm NoExec -> nonexec, norm Exec -> exec) <-
+            listPackageSources verbosity (flattenPackageDescription $ packageDescription pkg) knownSuffixHandlers
+ 
++        print $ map snd exec
++        print $ map snd nonexec
+         let files =  nub . sortOn snd $ nonexec ++ exec
++        print files
+ 
+         case format of
+             SourceList nulSep -> do
+diff --git a/Distribution/Client/FetchUtils.hs b/Distribution/Client/FetchUtils.hs
+index e9a31a91f84..4e5e581f9ec 100644
+--- a/Distribution/Client/FetchUtils.hs
++++ b/Distribution/Client/FetchUtils.hs
+@@ -176,8 +176,8 @@ fetchRepoTarball verbosity' repoCtxt repo pkgid = do
+     verbosity = verboseUnmarkOutput verbosity'
+ 
+     downloadRepoPackage = case repo of
+-      RepoLocal{..} -> return (packageFile repo pkgid)
+-      RepoLocalNoIndex{..} -> return (packageFile repo pkgid)
++      RepoLocal{} -> return (packageFile repo pkgid)
++      RepoLocalNoIndex{} -> return (packageFile repo pkgid)
+ 
+       RepoRemote{..} -> do
+         transport <- repoContextGetTransport repoCtxt
+diff --git a/Distribution/Client/IndexUtils.hs b/Distribution/Client/IndexUtils.hs
+index a76becc05ba..bf0ff7cf5ba 100644
+--- a/Distribution/Client/IndexUtils.hs
++++ b/Distribution/Client/IndexUtils.hs
+@@ -634,7 +634,7 @@ withIndexEntries
+     -> ([IndexCacheEntry] -> IO a)
+     -> ([NoIndexCacheEntry] -> IO a)
+     -> IO a
+-withIndexEntries _ (RepoIndex repoCtxt repo@RepoSecure{..}) callback _ =
++withIndexEntries _ (RepoIndex repoCtxt repo@RepoSecure{}) callback _ =
+     repoContextWithSecureRepo repoCtxt repo $ \repoSecure ->
+       Sec.withIndex repoSecure $ \Sec.IndexCallbacks{..} -> do
+         -- Incrementally (lazily) read all the entries in the tar file in order,
+diff --git a/Distribution/Client/Sandbox.hs b/Distribution/Client/Sandbox.hs
+index 66b415d7239..14bad3f2135 100644
+--- a/Distribution/Client/Sandbox.hs
++++ b/Distribution/Client/Sandbox.hs
+@@ -666,7 +666,7 @@ reinstallAddSourceDeps :: Verbosity
+                           -> FilePath
+                           -> IO WereDepsReinstalled
+ reinstallAddSourceDeps verbosity configFlags' configExFlags
+-                       installFlags globalFlags sandboxDir = topHandler' $ do
++                       installFlags globalFlags sandboxDir = topHandlerWith errorMsg $ do
+   let sandboxDistPref     = sandboxBuildDir sandboxDir
+       configFlags         = configFlags'
+                             { configDistPref  = Flag sandboxDistPref }
+@@ -710,7 +710,8 @@ reinstallAddSourceDeps verbosity configFlags' configExFlags
+         ++ "offending packages or recreating the sandbox."
+       logMsg message rest = debugNoWrap verbosity message >> rest
+ 
+-      topHandler' = topHandlerWith $ \_ -> do
++      errorMsg :: a -> IO WereDepsReinstalled
++      errorMsg _ = do
+         warn verbosity "Couldn't reinstall some add-source dependencies."
+         -- Here we can't know whether any deps have been reinstalled, so we have
+         -- to be conservative.
+diff --git a/Distribution/Client/TargetSelector.hs b/Distribution/Client/TargetSelector.hs
+index 23d92f580fd..f8f683d9875 100644
+--- a/Distribution/Client/TargetSelector.hs
++++ b/Distribution/Client/TargetSelector.hs
+@@ -222,7 +222,7 @@ readTargetSelectorsWith :: (Applicative m, Monad m) => DirActions m
+                         -> Maybe ComponentKindFilter
+                         -> [String]
+                         -> m (Either [TargetSelectorProblem] [TargetSelector])
+-readTargetSelectorsWith dirActions@DirActions{..} pkgs mfilter targetStrs =
++readTargetSelectorsWith dirActions@DirActions{} pkgs mfilter targetStrs =
+     case parseTargetStrings targetStrs of
+       ([], usertargets) -> do
+         usertargets' <- mapM (getTargetStringFileStatus dirActions) usertargets
+diff --git a/Distribution/Client/Update.hs b/Distribution/Client/Update.hs
+index 52bb1f76c96..8ded78b9d2e 100644
+--- a/Distribution/Client/Update.hs
++++ b/Distribution/Client/Update.hs
+@@ -73,8 +73,8 @@ updateRepo :: Verbosity -> UpdateFlags -> RepoContext -> Repo -> IO ()
+ updateRepo verbosity updateFlags repoCtxt repo = do
+   transport <- repoContextGetTransport repoCtxt
+   case repo of
+-    RepoLocal{..} -> return ()
+-    RepoLocalNoIndex{..} -> return ()
++    RepoLocal{} -> return ()
++    RepoLocalNoIndex{} -> return ()
+     RepoRemote{..} -> do
+       downloadResult <- downloadIndex transport verbosity repoRemote repoLocalDir
+       case downloadResult of
+diff --git a/Distribution/Client/Utils/Json.hs b/Distribution/Client/Utils/Json.hs
+index 89a13af87a4..01d5753136b 100644
+--- a/Distribution/Client/Utils/Json.hs
++++ b/Distribution/Client/Utils/Json.hs
+@@ -15,12 +15,9 @@ module Distribution.Client.Utils.Json
+     )
+     where
+ 
+-import Data.Char
+-import Data.Int
+-import Data.String
+-import Data.Word
+-import Data.List
+-import Data.Monoid
++import Distribution.Client.Compat.Prelude
++
++import Data.Char (intToDigit)
+ 
+ import Data.ByteString.Builder (Builder)
+ import qualified Data.ByteString.Builder as BB
+@@ -135,13 +132,13 @@ encodeArrayBB :: [Value] -> Builder
+ encodeArrayBB [] = "[]"
+ encodeArrayBB jvs = BB.char8 '[' <> go jvs <> BB.char8 ']'
+   where
+-    go = Data.Monoid.mconcat . intersperse (BB.char8 ',') . map encodeValueBB
++    go = mconcat . intersperse (BB.char8 ',') . map encodeValueBB
+ 
+ encodeObjectBB :: Object -> Builder
+ encodeObjectBB [] = "{}"
+ encodeObjectBB jvs = BB.char8 '{' <> go jvs <> BB.char8 '}'
+   where
+-    go = Data.Monoid.mconcat . intersperse (BB.char8 ',') . map encPair
++    go = mconcat . intersperse (BB.char8 ',') . map encPair
+     encPair (l,x) = encodeStringBB l <> BB.char8 ':' <> encodeValueBB x
+ 
+ encodeStringBB :: String -> Builder
+diff --git a/Distribution/Solver/Modular/Assignment.hs b/Distribution/Solver/Modular/Assignment.hs
+index be5e63bfbc1..b05a099ec5a 100644
+--- a/Distribution/Solver/Modular/Assignment.hs
++++ b/Distribution/Solver/Modular/Assignment.hs
+@@ -9,10 +9,11 @@ module Distribution.Solver.Modular.Assignment
+ import Prelude ()
+ import Distribution.Solver.Compat.Prelude hiding (pi)
+ 
+-import Data.Array as A
+-import Data.List as L
+-import Data.Map as M
+-import Data.Maybe
++import qualified Data.Array as A
++import qualified Data.List as L
++import qualified Data.Map as M
++
++import Data.Maybe (fromJust)
+ 
+ import Distribution.PackageDescription (FlagAssignment, mkFlagAssignment) -- from Cabal
+ 
+@@ -79,7 +80,7 @@ toCPs (A pa fa sa) rdm =
+     -- Dependencies per package.
+     depp :: QPN -> [(Component, PI QPN)]
+     depp qpn = let v :: Vertex
+-                   v   = fromJust (cvm qpn)
++                   v   = fromJust (cvm qpn) -- TODO: why this is safe?
+                    dvs :: [(Component, Vertex)]
+                    dvs = tg A.! v
+                in L.map (\ (comp, dv) -> case vm dv of (_, x, _) -> (comp, PI x (pa M.! x))) dvs
+diff --git a/Distribution/Solver/Modular/Builder.hs b/Distribution/Solver/Modular/Builder.hs
+index eb11a36aa16..5d196f4fd9f 100644
+--- a/Distribution/Solver/Modular/Builder.hs
++++ b/Distribution/Solver/Modular/Builder.hs
+@@ -19,10 +19,10 @@ module Distribution.Solver.Modular.Builder (
+ -- flag-guarded dependencies, we cannot introduce them immediately. Instead, we
+ -- store the entire dependency.
+ 
+-import Data.List as L
+-import Data.Map as M
+-import Data.Set as S
+-import Prelude hiding (sequence, mapM)
++import qualified Data.List as L
++import qualified Data.Map as M
++import qualified Data.Set as S
++import Prelude
+ 
+ import qualified Distribution.Solver.Modular.ConflictSet as CS
+ import Distribution.Solver.Modular.Dependency
+@@ -55,7 +55,7 @@ data BuildState = BS {
+ }
+ 
+ -- | Map of available linking targets.
+-type LinkingState = Map (PN, I) [PackagePath]
++type LinkingState = M.Map (PN, I) [PackagePath]
+ 
+ -- | Extend the set of open goals with the new goals listed.
+ --
+diff --git a/Distribution/Solver/Modular/Index.hs b/Distribution/Solver/Modular/Index.hs
+index fdddfc8237a..ac60fec7d65 100644
+--- a/Distribution/Solver/Modular/Index.hs
++++ b/Distribution/Solver/Modular/Index.hs
+@@ -6,10 +6,12 @@ module Distribution.Solver.Modular.Index
+     , mkIndex
+     ) where
+ 
+-import Data.List as L
+-import Data.Map as M
+ import Prelude hiding (pi)
+ 
++import Data.Map (Map)
++import qualified Data.List as L
++import qualified Data.Map as M
++
+ import Distribution.Solver.Modular.Dependency
+ import Distribution.Solver.Modular.Flag
+ import Distribution.Solver.Modular.Package
+diff --git a/Distribution/Solver/Modular/IndexConversion.hs b/Distribution/Solver/Modular/IndexConversion.hs
+index c9565c80dba..8e9ef614184 100644
+--- a/Distribution/Solver/Modular/IndexConversion.hs
++++ b/Distribution/Solver/Modular/IndexConversion.hs
+@@ -2,12 +2,12 @@ module Distribution.Solver.Modular.IndexConversion
+     ( convPIs
+     ) where
+ 
+-import Data.List as L
++import qualified Data.List as L
+ import Data.Map.Strict (Map)
+ import qualified Data.Map.Strict as M
+-import Data.Maybe
++import Data.Maybe (mapMaybe, fromMaybe, maybeToList)
+ import Data.Monoid as Mon
+-import Data.Set as S
++import qualified Data.Set as S
+ 
+ import Distribution.Compiler
+ import Distribution.InstalledPackageInfo as IPI
+@@ -330,7 +330,7 @@ flagInfo (StrongFlags strfl) =
+ 
+ -- | Internal package names, which should not be interpreted as true
+ -- dependencies.
+-type IPNs = Set PN
++type IPNs = S.Set PN
+ 
+ -- | Convenience function to delete a 'Dependency' if it's
+ -- for a 'PN' that isn't actually real.
+diff --git a/Distribution/Solver/Modular/Solver.hs b/Distribution/Solver/Modular/Solver.hs
+index 32452550556..e6aa1fb4374 100644
+--- a/Distribution/Solver/Modular/Solver.hs
++++ b/Distribution/Solver/Modular/Solver.hs
+@@ -9,9 +9,9 @@ module Distribution.Solver.Modular.Solver
+     , PruneAfterFirstSuccess(..)
+     ) where
+ 
+-import Data.Map as M
+-import Data.List as L
+-import Data.Set as S
++import qualified Data.Map as M
++import qualified Data.List as L
++import qualified Data.Set as S
+ import Distribution.Verbosity
+ 
+ import Distribution.Compiler (CompilerInfo)
+@@ -91,8 +91,8 @@ solve :: SolverConfig                         -- ^ solver parameters
+       -> Index                                -- ^ all available packages as an index
+       -> PkgConfigDb                          -- ^ available pkg-config pkgs
+       -> (PN -> PackagePreferences)           -- ^ preferences
+-      -> Map PN [LabeledPackageConstraint]    -- ^ global constraints
+-      -> Set PN                               -- ^ global goals
++      -> M.Map PN [LabeledPackageConstraint]  -- ^ global constraints
++      -> S.Set PN                             -- ^ global goals
+       -> RetryLog Message SolverFailure (Assignment, RevDepMap)
+ solve sc cinfo idx pkgConfigDB userPrefs userConstraints userGoals =
+   explorePhase     $
+@@ -232,7 +232,7 @@ instance GSimpleTree (Tree d c) where
+ 
+       -- Show conflict set
+       goCS :: ConflictSet -> String
+-      goCS cs = "{" ++ (intercalate "," . L.map showVar . CS.toList $ cs) ++ "}"
++      goCS cs = "{" ++ (L.intercalate "," . L.map showVar . CS.toList $ cs) ++ "}"
+ #endif
+ 
+ -- | Replace all goal reasons with a dummy goal reason in the tree
+diff --git a/Distribution/Solver/Modular/Validate.hs b/Distribution/Solver/Modular/Validate.hs
+index 6195d101b02..a3dec6e1f67 100644
+--- a/Distribution/Solver/Modular/Validate.hs
++++ b/Distribution/Solver/Modular/Validate.hs
+@@ -15,11 +15,12 @@ module Distribution.Solver.Modular.Validate (validateTree) where
+ import Control.Applicative
+ import Control.Monad.Reader hiding (sequence)
+ import Data.Function (on)
+-import Data.List as L
+-import Data.Set as S
+ import Data.Traversable
+ import Prelude hiding (sequence)
+ 
++import qualified Data.List as L
++import qualified Data.Set as S
++
+ import Language.Haskell.Extension (Extension, Language)
+ 
+ import Data.Map.Strict as M
+diff --git a/bootstrap.sh b/bootstrap.sh
+index 077d7f4efd2..d5141660474 100755
+--- a/bootstrap.sh
++++ b/bootstrap.sh
+@@ -260,9 +260,9 @@ EDIT_DISTANCE_VER="0.2.2.1"; EDIT_DISTANCE_VER_REGEXP="0\.2\.2\.?"
+                        # 0.2.2.*
+ ED25519_VER="0.0.5.0"; ED25519_VER_REGEXP="0\.0\.?"
+                        # 0.0.*
+-HACKAGE_SECURITY_VER="0.6.0.0"; HACKAGE_SECURITY_VER_REGEXP="0\.6\."
+-                       # >= 0.7.0.0 && < 0.7
+-TAR_VER="0.5.1.0";     TAR_VER_REGEXP="0\.5\.([1-9]|1[0-9]|0\.[3-9]|0\.1[0-9])\.?"
++HACKAGE_SECURITY_VER="0.6.0.1"; HACKAGE_SECURITY_VER_REGEXP="0\.6\."
++                       # >= 0.6.0.0 && < 0.7
++TAR_VER="0.5.1.1";     TAR_VER_REGEXP="0\.5\.([1-9]|1[0-9]|0\.[3-9]|0\.1[0-9])\.?"
+                        # >= 0.5.0.3  && < 0.6
+ DIGEST_VER="0.0.1.2"; DIGEST_REGEXP="0\.0\.(1\.[2-9]|[2-9]\.?)"
+                        # >= 0.0.1.2 && < 0.1
+diff --git a/cabal-install.cabal b/cabal-install.cabal
+index 985ea9a5a69..c9d713c29fe 100644
+--- a/cabal-install.cabal
++++ b/cabal-install.cabal
+@@ -316,7 +316,7 @@ executable cabal
+     build-depends:
+         async      >= 2.0      && < 2.3,
+         array      >= 0.4      && < 0.6,
+-        base       >= 4.8      && < 4.14,
++        base       >= 4.8      && < 4.15,
+         base16-bytestring >= 0.1.1 && < 0.2,
+         binary     >= 0.7.3    && < 0.9,
+         bytestring >= 0.10.6.0 && < 0.11,
+@@ -341,7 +341,7 @@ executable cabal
+         time       >= 1.5.0.1  && < 1.10,
+         transformers >= 0.4.2.0 && < 0.6,
+         zlib       >= 0.5.3    && < 0.7,
+-        hackage-security >= 0.6.0.0 && < 0.7,
++        hackage-security >= 0.6.0.1 && < 0.7,
+         text       >= 1.2.3    && < 1.3,
+         parsec     >= 3.1.13.0 && < 3.2
+ 
+diff --git a/tests/IntegrationTests2/targets/complex/q/q.cabal b/tests/IntegrationTests2/targets/complex/q/q.cabal
+index 556fa4a4202..7ee22fcb28d 100644
+--- a/tests/IntegrationTests2/targets/complex/q/q.cabal
++++ b/tests/IntegrationTests2/targets/complex/q/q.cabal
+@@ -5,7 +5,8 @@ cabal-version: >= 1.2
+ 
+ library
+   exposed-modules: Q
+-  build-depends: base, filepath
++  -- we rely that filepath has filepath-tests component
++  build-depends: base, filepath >=1.4.0.0
+ 
+ executable buildable-false
+   main-is: Main.hs
diff --git a/gnu/packages/patches/cdrkit-libre-cross-compile.patch b/gnu/packages/patches/cdrkit-libre-cross-compile.patch
new file mode 100644
index 0000000000..09c34b8c0a
--- /dev/null
+++ b/gnu/packages/patches/cdrkit-libre-cross-compile.patch
@@ -0,0 +1,32 @@
+Patch extracted from a set of patches to cross-compile ffmeg and dependencies for mingw-w64.
+https://github.com/Warblefly/MultimediaTools-mingw-w64/commit/01e30a17637b67afd65c1e24302f8daf94b19b32#diff-503bd595ad2a49840cc56acdb3432487a20a0acb7981ce83be51fe311216de8f
+
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index 99a69fd..e5ba8a7 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -35,8 +35,6 @@ endif(VA_LIST_IS_ARRAY)
+ INCLUDE(TestBigEndian)
+ TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
+ 
+-TRY_RUN(BITFIELDS_HTOL TEST_DUMMY ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/test_BITFIELDS_HTOL.c)
+-
+ INCLUDE(CheckIncludeFiles)
+ 
+ #SET(CMAKE_REQUIRED_INCLUDES "/usr/include;/usr/local/include")
+diff --git a/include/xconfig.h.in b/include/xconfig.h.in
+index c130600..476c00b 100644
+--- a/include/xconfig.h.in
++++ b/include/xconfig.h.in
+@@ -233,7 +233,11 @@
+ /* If using network byte order             */
+ #cmakedefine WORDS_BIGENDIAN
+ /* If high bits come first in structures   */
+-#cmakedefine BITFIELDS_HTOL
++#ifdef WORDS_BIGENDIAN
++#define BITFIELDS_HTOL
++#else
++#define BITFIELDS_LTOH
++#endif
+ #define	HAVE_C_BIGENDIAN	/* Flag that WORDS_BIGENDIAN test was done */
+ #define	HAVE_C_BITFIELDS	/* Flag that BITFIELDS_HTOL test was done  */
diff --git a/gnu/packages/patches/ceph-boost-compat.patch b/gnu/packages/patches/ceph-boost-compat.patch
new file mode 100644
index 0000000000..1aecfbbed5
--- /dev/null
+++ b/gnu/packages/patches/ceph-boost-compat.patch
@@ -0,0 +1,18 @@
+Add extra includes required for Boost 1.75 and later.
+
+Taken from upstram:
+
+  https://github.com/ceph/ceph/commit/ebf3a0398f18eab67d2ba25e6a10b41ff140f6a4
+
+diff --git a/src/rgw/rgw_string.h b/src/rgw/rgw_string.h
+index 257daa9c1fe6e..90e64f98a2587 100644
+--- a/src/rgw/rgw_string.h
++++ b/src/rgw/rgw_string.h
+@@ -8,5 +8,7 @@
+ #include <stdlib.h>
+ #include <limits.h>
+ #include <string_view>
++#include <string>
++#include <stdexcept>
+ 
+ #include <boost/container/small_vector.hpp>
diff --git a/gnu/packages/patches/ceph-rocksdb-compat.patch b/gnu/packages/patches/ceph-rocksdb-compat.patch
new file mode 100644
index 0000000000..9fb9b0caeb
--- /dev/null
+++ b/gnu/packages/patches/ceph-rocksdb-compat.patch
@@ -0,0 +1,303 @@
+Adjust for newer versions of RocksDB.
+
+Taken from upstream:
+
+  https://github.com/ceph/ceph/pull/42815
+  https://github.com/ceph/ceph/commit/ff7f192ea3cf88ca1098bcf9396ff4f8ed1e8792.diff
+
+diff --git a/src/kv/rocksdb_cache/BinnedLRUCache.cc b/src/kv/rocksdb_cache/BinnedLRUCache.cc
+index 0d657883e92de..47c56e2ddd769 100644
+--- a/src/kv/rocksdb_cache/BinnedLRUCache.cc
++++ b/src/kv/rocksdb_cache/BinnedLRUCache.cc
+@@ -151,13 +151,20 @@ void BinnedLRUCacheShard::EraseUnRefEntries() {
+   }
+ }
+ 
+-void BinnedLRUCacheShard::ApplyToAllCacheEntries(void (*callback)(void*, size_t),
+-                                           bool thread_safe) {
++void BinnedLRUCacheShard::ApplyToAllCacheEntries(
++  const std::function<void(const rocksdb::Slice& key,
++                           void* value,
++                           size_t charge,
++                           DeleterFn)>& callback,
++  bool thread_safe)
++{
+   if (thread_safe) {
+     mutex_.lock();
+   }
+   table_.ApplyToAllCacheEntries(
+-      [callback](BinnedLRUHandle* h) { callback(h->value, h->charge); });
++    [callback](BinnedLRUHandle* h) {
++      callback(h->key(), h->value, h->charge, h->deleter);
++    });
+   if (thread_safe) {
+     mutex_.unlock();
+   }
+@@ -345,7 +352,7 @@ bool BinnedLRUCacheShard::Release(rocksdb::Cache::Handle* handle, bool force_era
+ 
+ rocksdb::Status BinnedLRUCacheShard::Insert(const rocksdb::Slice& key, uint32_t hash, void* value,
+                              size_t charge,
+-                             void (*deleter)(const rocksdb::Slice& key, void* value),
++                             DeleterFn deleter,
+                              rocksdb::Cache::Handle** handle, rocksdb::Cache::Priority priority) {
+   auto e = new BinnedLRUHandle();
+   rocksdb::Status s;
+@@ -464,6 +471,12 @@ std::string BinnedLRUCacheShard::GetPrintableOptions() const {
+   return std::string(buffer);
+ }
+ 
++DeleterFn BinnedLRUCacheShard::GetDeleter(rocksdb::Cache::Handle* h) const
++{
++  auto* handle = reinterpret_cast<BinnedLRUHandle*>(h);
++  return handle->deleter;
++}
++
+ BinnedLRUCache::BinnedLRUCache(CephContext *c, 
+                                size_t capacity, 
+                                int num_shard_bits,
+@@ -519,6 +532,13 @@ void BinnedLRUCache::DisownData() {
+ #endif  // !__SANITIZE_ADDRESS__
+ }
+ 
++#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
++DeleterFn BinnedLRUCache::GetDeleter(Handle* handle) const
++{
++  return reinterpret_cast<const BinnedLRUHandle*>(handle)->deleter;
++}
++#endif
++
+ size_t BinnedLRUCache::TEST_GetLRUSize() {
+   size_t lru_size_of_all_shards = 0;
+   for (int i = 0; i < num_shards_; i++) {
+diff --git a/src/kv/rocksdb_cache/BinnedLRUCache.h b/src/kv/rocksdb_cache/BinnedLRUCache.h
+index 85608be0e5734..88bf4502e8927 100644
+--- a/src/kv/rocksdb_cache/BinnedLRUCache.h
++++ b/src/kv/rocksdb_cache/BinnedLRUCache.h
+@@ -56,7 +56,7 @@ std::shared_ptr<rocksdb::Cache> NewBinnedLRUCache(
+ 
+ struct BinnedLRUHandle {
+   void* value;
+-  void (*deleter)(const rocksdb::Slice&, void* value);
++  DeleterFn deleter;
+   BinnedLRUHandle* next_hash;
+   BinnedLRUHandle* next;
+   BinnedLRUHandle* prev;
+@@ -189,7 +189,7 @@ class alignas(CACHE_LINE_SIZE) BinnedLRUCacheShard : public CacheShard {
+   // Like Cache methods, but with an extra "hash" parameter.
+   virtual rocksdb::Status Insert(const rocksdb::Slice& key, uint32_t hash, void* value,
+                         size_t charge,
+-                        void (*deleter)(const rocksdb::Slice& key, void* value),
++                        DeleterFn deleter,
+                         rocksdb::Cache::Handle** handle,
+                         rocksdb::Cache::Priority priority) override;
+   virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, uint32_t hash) override;
+@@ -205,13 +205,19 @@ class alignas(CACHE_LINE_SIZE) BinnedLRUCacheShard : public CacheShard {
+   virtual size_t GetUsage() const override;
+   virtual size_t GetPinnedUsage() const override;
+ 
+-  virtual void ApplyToAllCacheEntries(void (*callback)(void*, size_t),
+-                                      bool thread_safe) override;
++  virtual void ApplyToAllCacheEntries(
++    const std::function<void(const rocksdb::Slice& key,
++                             void* value,
++                             size_t charge,
++                             DeleterFn)>& callback,
++    bool thread_safe) override;
+ 
+   virtual void EraseUnRefEntries() override;
+ 
+   virtual std::string GetPrintableOptions() const override;
+ 
++  virtual DeleterFn GetDeleter(rocksdb::Cache::Handle* handle) const override;
++
+   void TEST_GetLRUList(BinnedLRUHandle** lru, BinnedLRUHandle** lru_low_pri);
+ 
+   //  Retrieves number of elements in LRU, for unit test purpose only
+@@ -304,7 +310,9 @@ class BinnedLRUCache : public ShardedCache {
+   virtual size_t GetCharge(Handle* handle) const override;
+   virtual uint32_t GetHash(Handle* handle) const override;
+   virtual void DisownData() override;
+-
++#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
++  virtual DeleterFn GetDeleter(Handle* handle) const override;
++#endif
+   //  Retrieves number of elements in LRU, for unit test purpose only
+   size_t TEST_GetLRUSize();
+   // Sets the high pri pool ratio
+diff --git a/src/kv/rocksdb_cache/ShardedCache.cc b/src/kv/rocksdb_cache/ShardedCache.cc
+index 367140a94d8be..6cbd89ad6472c 100644
+--- a/src/kv/rocksdb_cache/ShardedCache.cc
++++ b/src/kv/rocksdb_cache/ShardedCache.cc
+@@ -44,7 +44,7 @@ void ShardedCache::SetStrictCapacityLimit(bool strict_capacity_limit) {
+ }
+ 
+ rocksdb::Status ShardedCache::Insert(const rocksdb::Slice& key, void* value, size_t charge,
+-                            void (*deleter)(const rocksdb::Slice& key, void* value),
++                            DeleterFn deleter,
+                             rocksdb::Cache::Handle** handle, Priority priority) {
+   uint32_t hash = HashSlice(key);
+   return GetShard(Shard(hash))
+@@ -109,13 +109,36 @@ size_t ShardedCache::GetPinnedUsage() const {
+   return usage;
+ }
+ 
++#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
++DeleterFn ShardedCache::GetDeleter(Handle* handle) const
++{
++  uint32_t hash = GetHash(handle);
++  return GetShard(Shard(hash))->GetDeleter(handle);
++}
++
++void ShardedCache::ApplyToAllEntries(
++    const std::function<void(const rocksdb::Slice& key, void* value, size_t charge,
++                             DeleterFn deleter)>& callback,
++    const ApplyToAllEntriesOptions& opts)
++{
++  int num_shards = 1 << num_shard_bits_;
++  for (int s = 0; s < num_shards; s++) {
++    GetShard(s)->ApplyToAllCacheEntries(callback, true /* thread_safe */);
++  }
++}
++#else
+ void ShardedCache::ApplyToAllCacheEntries(void (*callback)(void*, size_t),
+                                           bool thread_safe) {
+   int num_shards = 1 << num_shard_bits_;
+   for (int s = 0; s < num_shards; s++) {
+-    GetShard(s)->ApplyToAllCacheEntries(callback, thread_safe);
++    GetShard(s)->ApplyToAllCacheEntries(
++      [callback](const rocksdb::Slice&, void* value, size_t charge, DeleterFn) {
++        callback(value, charge);
++      },
++      thread_safe);
+   }
+ }
++#endif
+ 
+ void ShardedCache::EraseUnRefEntries() {
+   int num_shards = 1 << num_shard_bits_;
+@@ -131,7 +154,7 @@ std::string ShardedCache::GetPrintableOptions() const {
+   char buffer[kBufferSize];
+   {
+     std::lock_guard<std::mutex> l(capacity_mutex_);
+-    snprintf(buffer, kBufferSize, "    capacity : %" ROCKSDB_PRIszt "\n",
++    snprintf(buffer, kBufferSize, "    capacity : %zu\n",
+              capacity_);
+     ret.append(buffer);
+     snprintf(buffer, kBufferSize, "    num_shard_bits : %d\n", num_shard_bits_);
+diff --git a/src/kv/rocksdb_cache/ShardedCache.h b/src/kv/rocksdb_cache/ShardedCache.h
+index 4d64893ab1c7b..f98421a09a33a 100644
+--- a/src/kv/rocksdb_cache/ShardedCache.h
++++ b/src/kv/rocksdb_cache/ShardedCache.h
+@@ -14,6 +14,7 @@
+ #include <string>
+ #include <mutex>
+ 
++#include "rocksdb/version.h"
+ #include "rocksdb/cache.h"
+ #include "include/ceph_hash.h"
+ #include "common/PriorityCache.h"
+@@ -22,10 +23,11 @@
+ #ifndef CACHE_LINE_SIZE
+ #define CACHE_LINE_SIZE 64 // XXX arch-specific define 
+ #endif
+-#define ROCKSDB_PRIszt "zu"
+ 
+ namespace rocksdb_cache {
+ 
++using DeleterFn = void (*)(const rocksdb::Slice& key, void* value);
++
+ // Single cache shard interface.
+ class CacheShard {
+  public:
+@@ -34,7 +36,7 @@ class CacheShard {
+ 
+   virtual rocksdb::Status Insert(const rocksdb::Slice& key, uint32_t hash, void* value,
+                                  size_t charge,
+-                                 void (*deleter)(const rocksdb::Slice& key, void* value),
++                                 DeleterFn deleter,
+                                  rocksdb::Cache::Handle** handle, rocksdb::Cache::Priority priority) = 0;
+   virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, uint32_t hash) = 0;
+   virtual bool Ref(rocksdb::Cache::Handle* handle) = 0;
+@@ -44,10 +46,15 @@ class CacheShard {
+   virtual void SetStrictCapacityLimit(bool strict_capacity_limit) = 0;
+   virtual size_t GetUsage() const = 0;
+   virtual size_t GetPinnedUsage() const = 0;
+-  virtual void ApplyToAllCacheEntries(void (*callback)(void*, size_t),
+-                                      bool thread_safe) = 0;
++  virtual void ApplyToAllCacheEntries(
++    const std::function<void(const rocksdb::Slice& key,
++                             void* value,
++                             size_t charge,
++                             DeleterFn)>& callback,
++    bool thread_safe) = 0;
+   virtual void EraseUnRefEntries() = 0;
+   virtual std::string GetPrintableOptions() const { return ""; }
++  virtual DeleterFn GetDeleter(rocksdb::Cache::Handle* handle) const = 0;
+ };
+ 
+ // Generic cache interface which shards cache by hash of keys. 2^num_shard_bits
+@@ -57,34 +64,43 @@ class ShardedCache : public rocksdb::Cache, public PriorityCache::PriCache {
+  public:
+   ShardedCache(size_t capacity, int num_shard_bits, bool strict_capacity_limit);
+   virtual ~ShardedCache() = default;
++  // rocksdb::Cache
+   virtual const char* Name() const override = 0;
+-  virtual CacheShard* GetShard(int shard) = 0;
+-  virtual const CacheShard* GetShard(int shard) const = 0;
+-  virtual void* Value(Handle* handle) override = 0;
+-  virtual size_t GetCharge(Handle* handle) const = 0;
+-  virtual uint32_t GetHash(Handle* handle) const = 0;
+-  virtual void DisownData() override = 0;
+-
+-  virtual void SetCapacity(size_t capacity) override;
+-  virtual void SetStrictCapacityLimit(bool strict_capacity_limit) override;
+-
+   virtual rocksdb::Status Insert(const rocksdb::Slice& key, void* value, size_t charge,
+-                                 void (*deleter)(const rocksdb::Slice& key, void* value),
++                                 DeleterFn,
+                                  rocksdb::Cache::Handle** handle, Priority priority) override;
+   virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, rocksdb::Statistics* stats) override;
+   virtual bool Ref(rocksdb::Cache::Handle* handle) override;
+   virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) override;
++  virtual void* Value(Handle* handle) override = 0;
+   virtual void Erase(const rocksdb::Slice& key) override;
+   virtual uint64_t NewId() override;
+-  virtual size_t GetCapacity() const override;
++  virtual void SetCapacity(size_t capacity) override;
++  virtual void SetStrictCapacityLimit(bool strict_capacity_limit) override;
+   virtual bool HasStrictCapacityLimit() const override;
++  virtual size_t GetCapacity() const override;
+   virtual size_t GetUsage() const override;
+   virtual size_t GetUsage(rocksdb::Cache::Handle* handle) const override;
+   virtual size_t GetPinnedUsage() const override;
++  virtual size_t GetCharge(Handle* handle) const = 0;
++#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
++  virtual DeleterFn GetDeleter(Handle* handle) const override;
++#endif
++  virtual void DisownData() override = 0;
++#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
++  virtual void ApplyToAllEntries(
++      const std::function<void(const rocksdb::Slice& key, void* value, size_t charge,
++                               DeleterFn deleter)>& callback,
++      const ApplyToAllEntriesOptions& opts) override;
++#else
+   virtual void ApplyToAllCacheEntries(void (*callback)(void*, size_t),
+                                       bool thread_safe) override;
++#endif
+   virtual void EraseUnRefEntries() override;
+   virtual std::string GetPrintableOptions() const override;
++  virtual CacheShard* GetShard(int shard) = 0;
++  virtual const CacheShard* GetShard(int shard) const = 0;
++  virtual uint32_t GetHash(Handle* handle) const = 0;
+ 
+   int GetNumShardBits() const { return num_shard_bits_; }
+ 
+@@ -120,7 +136,7 @@ class ShardedCache : public rocksdb::Cache, public PriorityCache::PriCache {
+ //    return Hash(s.data(), s.size(), 0);
+   }
+ 
+-  uint32_t Shard(uint32_t hash) {
++  uint32_t Shard(uint32_t hash) const {
+     // Note, hash >> 32 yields hash in gcc, not the zero we expect!
+     return (num_shard_bits_ > 0) ? (hash >> (32 - num_shard_bits_)) : 0;
+   }
diff --git a/gnu/packages/patches/clang-10.0-libc-search-path.patch b/gnu/packages/patches/clang-10.0-libc-search-path.patch
index 966e40b93c..c2854e3f33 100644
--- a/gnu/packages/patches/clang-10.0-libc-search-path.patch
+++ b/gnu/packages/patches/clang-10.0-libc-search-path.patch
@@ -4,18 +4,47 @@ but unfortunately, that doesn't work for us.
 This patch makes it easy to insert libc's $libdir so that Clang passes the
 correct absolute file name of crt1.o etc. to 'ld'.  It also disables all
 the distro-specific stuff and removes the hard-coded FHS directory names
-to make sure Clang also works on non-Guix systems.
+to make sure Clang also works on foreign distros.
 
+diff --git a/lib/Driver/Distro.cpp b/lib/Driver/Distro.cpp
+index 06707fef..f3bd43de 100644
+--- a/lib/Driver/Distro.cpp
++++ b/lib/Driver/Distro.cpp
+@@ -20,6 +20,10 @@ using namespace clang;
+ 
+ static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS,
+                                        const llvm::Triple &TargetOrHost) {
++  // The compiler should always behave the same, even when used via Guix on a
++  // foreign distro.
++  return Distro::UnknownDistro;
++
+   // If we don't target Linux, no need to check the distro. This saves a few
+   // OS calls.
+   if (!TargetOrHost.isOSLinux())
+diff --git a/lib/Driver/ToolChains/Cuda.cpp b/lib/Driver/ToolChains/Cuda.cpp
+index 50d22a2a..4ab93e0a 100644
+--- a/lib/Driver/ToolChains/Cuda.cpp
++++ b/lib/Driver/ToolChains/Cuda.cpp
+@@ -60,6 +60,9 @@ CudaInstallationDetector::CudaInstallationDetector(
+     const Driver &D, const llvm::Triple &HostTriple,
+     const llvm::opt::ArgList &Args)
+     : D(D) {
++  // Don't look for CUDA in /usr.
++  return;
++
+   struct Candidate {
+     std::string Path;
+     bool StrictChecking;
 diff --git a/lib/Driver/ToolChains/Linux.cpp b/lib/Driver/ToolChains/Linux.cpp
-index bff1ab10..79e1477e 100644
+index bff1ab10..e996d3b8 100644
 --- a/lib/Driver/ToolChains/Linux.cpp
 +++ b/lib/Driver/ToolChains/Linux.cpp
 @@ -240,6 +240,9 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
                           .str());
    }
  
-+// Comment out the distro-specific tweaks so that they don't bite when
-+// using Guix on a foreign distro.
++  // Comment out the distro-specific tweaks so that they don't bite when
++  // using Guix on a foreign distro.
 +#if 0
    Distro Distro(D.getVFS(), Triple);
  
@@ -24,61 +53,41 @@ index bff1ab10..79e1477e 100644
  
    if (IsAndroid || Distro.IsOpenSUSE())
      ExtraOpts.push_back("--enable-new-dtags");
-+#endif	// Guix
++#endif
  
    // The selection of paths to try here is designed to match the patterns which
    // the GCC driver itself uses, as this is part of the GCC-compatible driver.
-@@ -363,7 +367,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
-     // the cross. Note that GCC does include some of these directories in some
-     // configurations but this seems somewhere between questionable and simply
-     // a bug.
--    if (StringRef(LibPath).startswith(SysRoot)) {
-+    if (0) {
-       addPathIfExists(D, LibPath + "/" + MultiarchTriple, Paths);
-       addPathIfExists(D, LibPath + "/../" + OSLibDir, Paths);
+@@ -369,6 +373,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
      }
-@@ -382,6 +386,8 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
-   addPathIfExists(D, SysRoot + "/lib/" + MultiarchTriple, Paths);
-   addPathIfExists(D, SysRoot + "/lib/../" + OSLibDir, Paths);
- 
-+// This requires the commented distro tweaks above.
-+#if 0
-   if (IsAndroid) {
-     // Android sysroots contain a library directory for each supported OS
-     // version as well as some unversioned libraries in the usual multiarch
-@@ -410,10 +416,15 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
-     addPathIfExists(D, SysRoot + "/" + OSLibDir + "/" + ABIName, Paths);
-     addPathIfExists(D, SysRoot + "/usr/" + OSLibDir + "/" + ABIName, Paths);
    }
-+#endif
  
++#if 0
+   // Similar to the logic for GCC above, if we currently running Clang inside
+   // of the requested system root, add its parent library paths to
+   // those searched.
+@@ -414,6 +419,8 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
    // Try walking via the GCC triple path in case of biarch or multiarch GCC
    // installations with strange symlinks.
    if (GCCInstallation.isValid()) {
-+
-+// The following code would end up adding things like
-+// "/usr/lib/x86_64-unknown-linux-gnu/../../lib64" to the search path.
-+#if 0
++    // The following code would end up adding things like
++    // "/usr/lib/x86_64-unknown-linux-gnu/../../lib64" to the search path.
      addPathIfExists(D,
                      SysRoot + "/usr/lib/" + GCCInstallation.getTriple().str() +
                          "/../../" + OSLibDir,
-@@ -426,6 +437,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
-                              BiarchSibling.gccSuffix(),
-                       Paths);
-     }
-+#endif
- 
-     // See comments above on the multilib variant for details of why this is
-     // included even from outside the sysroot.
-@@ -450,8 +462,9 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+@@ -449,9 +456,14 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+   // directory ('Dir' below) or the ResourceDir.
    if (StringRef(D.Dir).startswith(SysRoot))
      addPathIfExists(D, D.Dir + "/../lib", Paths);
- 
--  addPathIfExists(D, SysRoot + "/lib", Paths);
--  addPathIfExists(D, SysRoot + "/usr/lib", Paths);
++#endif
++
 +  // Add libc's lib/ directory to the search path, so that crt1.o, crti.o,
 +  // and friends can be found.
 +  addPathIfExists(D, "@GLIBC_LIBDIR@", Paths);
+ 
+-  addPathIfExists(D, SysRoot + "/lib", Paths);
+-  addPathIfExists(D, SysRoot + "/usr/lib", Paths);
++  // Add GCC's lib/ directory so libstdc++.so can be found.
++  addPathIfExists(D, GCCInstallation.getParentLibPath(), Paths);
  }
  
  ToolChain::CXXStdlibType Linux::GetDefaultCXXStdlibType() const {
diff --git a/gnu/packages/patches/clang-11.0-libc-search-path.patch b/gnu/packages/patches/clang-11.0-libc-search-path.patch
index c014de179d..d0581d3a29 100644
--- a/gnu/packages/patches/clang-11.0-libc-search-path.patch
+++ b/gnu/packages/patches/clang-11.0-libc-search-path.patch
@@ -4,48 +4,47 @@ but unfortunately, that doesn't work for us.
 This patch makes it easy to insert libc's $libdir so that Clang passes the
 correct absolute file name of crt1.o etc. to 'ld'.  It also disables all
 the distro-specific stuff and removes the hard-coded FHS directory names
-to make sure Clang also works on non-Guix systems.
+to make sure Clang also works on foreign distros.
 
-diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
---- a/lib/Driver/ToolChains/Gnu.cpp
-+++ b/lib/Driver/ToolChains/Gnu.cpp
-@@ -2797,7 +2797,7 @@ void Generic_GCC::AddMultilibPaths(const Driver &D,
-     // the cross. Note that GCC does include some of these directories in some
-     // configurations but this seems somewhere between questionable and simply
-     // a bug.
--    if (StringRef(LibPath).startswith(SysRoot)) {
-+    if (0) {
-       addPathIfExists(D, LibPath + "/" + MultiarchTriple, Paths);
-       addPathIfExists(D, LibPath + "/../" + OSLibDir, Paths);
-     }
-@@ -2811,6 +2811,10 @@ void Generic_GCC::AddMultiarchPaths(const Driver &D,
-   // Try walking via the GCC triple path in case of biarch or multiarch GCC
-   // installations with strange symlinks.
-   if (GCCInstallation.isValid()) {
-+
-+// The following code would end up adding things like
-+// "/usr/lib/x86_64-unknown-linux-gnu/../../lib64" to the search path.
-+#if 0
-     addPathIfExists(D,
-                     SysRoot + "/usr/lib/" + GCCInstallation.getTriple().str() +
-                         "/../../" + OSLibDir,
-@@ -2823,6 +2827,7 @@ void Generic_GCC::AddMultiarchPaths(const Driver &D,
-           D, GCCInstallation.getInstallPath() + BiarchSibling.gccSuffix(),
-                       Paths);
-     }
-+#endif // Guix
+diff --git a/lib/Driver/Distro.cpp b/lib/Driver/Distro.cpp
+index 4d58ad1a..6f638eca 100644
+--- a/lib/Driver/Distro.cpp
++++ b/lib/Driver/Distro.cpp
+@@ -21,6 +21,10 @@ using namespace clang;
  
-     // See comments above on the multilib variant for details of why this is
-     // included even from outside the sysroot.
+ static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS,
+                                        const llvm::Triple &TargetOrHost) {
++  // The compiler should always behave the same, even when used via Guix on a
++  // foreign distro.
++  return Distro::UnknownDistro;
++
+   // If we don't target Linux, no need to check the distro. This saves a few
+   // OS calls.
+   if (!TargetOrHost.isOSLinux())
+diff --git a/lib/Driver/ToolChains/Cuda.cpp b/lib/Driver/ToolChains/Cuda.cpp
+index 110a0bca..42b9f7b7 100644
+--- a/lib/Driver/ToolChains/Cuda.cpp
++++ b/lib/Driver/ToolChains/Cuda.cpp
+@@ -67,6 +67,9 @@ CudaInstallationDetector::CudaInstallationDetector(
+     const Driver &D, const llvm::Triple &HostTriple,
+     const llvm::opt::ArgList &Args)
+     : D(D) {
++  // Don't look for CUDA in /usr.
++  return;
++
+   struct Candidate {
+     std::string Path;
+     bool StrictChecking;
 diff --git a/lib/Driver/ToolChains/Linux.cpp b/lib/Driver/ToolChains/Linux.cpp
+index 18035047..ace8f443 100644
 --- a/lib/Driver/ToolChains/Linux.cpp
 +++ b/lib/Driver/ToolChains/Linux.cpp
 @@ -219,6 +219,9 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
  
    Generic_GCC::PushPPaths(PPaths);
  
-+// Comment out the distro-specific tweaks so that they don't bite when
-+// using Guix on a foreign distro.
++  // Comment out the distro-specific tweaks so that they don't bite when
++  // using Guix on a foreign distro.
 +#if 0
    Distro Distro(D.getVFS(), Triple);
  
@@ -54,36 +53,32 @@ diff --git a/lib/Driver/ToolChains/Linux.cpp b/lib/Driver/ToolChains/Linux.cpp
  
    if (IsAndroid || Distro.IsOpenSUSE())
      ExtraOpts.push_back("--enable-new-dtags");
-+#endif	// Guix
++#endif
  
    // The selection of paths to try here is designed to match the patterns which
    // the GCC driver itself uses, as this is part of the GCC-compatible driver.
-@@ -310,6 +314,8 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
-   addPathIfExists(D, SysRoot + "/lib/" + MultiarchTriple, Paths);
-   addPathIfExists(D, SysRoot + "/lib/../" + OSLibDir, Paths);
+@@ -297,6 +301,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
  
-+// This requires the commented distro tweaks above.
-+#if 0
-   if (IsAndroid) {
-     // Android sysroots contain a library directory for each supported OS
-     // version as well as some unversioned libraries in the usual multiarch
-@@ -338,6 +344,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
-     addPathIfExists(D, SysRoot + "/" + OSLibDir + "/" + ABIName, Paths);
-     addPathIfExists(D, SysRoot + "/usr/" + OSLibDir + "/" + ABIName, Paths);
-   }
-+#endif // Guix
- 
-   Generic_GCC::AddMultiarchPaths(D, SysRoot, OSLibDir, Paths);
+   Generic_GCC::AddMultilibPaths(D, SysRoot, OSLibDir, MultiarchTriple, Paths);
  
-@@ -349,8 +356,9 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
++#if 0
+   // Similar to the logic for GCC above, if we currently running Clang inside
+   // of the requested system root, add its parent library paths to
+   // those searched.
+@@ -348,9 +353,14 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+   // directory ('Dir' below) or the ResourceDir.
    if (StringRef(D.Dir).startswith(SysRoot))
      addPathIfExists(D, D.Dir + "/../lib", Paths);
- 
--  addPathIfExists(D, SysRoot + "/lib", Paths);
--  addPathIfExists(D, SysRoot + "/usr/lib", Paths);
++#endif
++
 +  // Add libc's lib/ directory to the search path, so that crt1.o, crti.o,
 +  // and friends can be found.
 +  addPathIfExists(D, "@GLIBC_LIBDIR@", Paths);
+ 
+-  addPathIfExists(D, SysRoot + "/lib", Paths);
+-  addPathIfExists(D, SysRoot + "/usr/lib", Paths);
++  // Add GCC's lib/ directory so libstdc++.so can be found.
++  addPathIfExists(D, GCCInstallation.getParentLibPath(), Paths);
  }
  
  ToolChain::CXXStdlibType Linux::GetDefaultCXXStdlibType() const {
diff --git a/gnu/packages/patches/clang-12-tools-extra-directory.patch b/gnu/packages/patches/clang-12-tools-extra-directory.patch
deleted file mode 100644
index 0a236da26e..0000000000
--- a/gnu/packages/patches/clang-12-tools-extra-directory.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Help CMake locate the "tools-extra" directory.
-
-Taken from <https://bugs.llvm.org/show_bug.cgi?id=49990#c3>.
-
-diff --git a/clang-tools-extra/clangd/quality/CompletionModel.cmake b/clang-tools-extra/clangd/quality/CompletionModel.cmake
---- a/clangd/quality/CompletionModel.cmake
-+++ b/clangd/quality/CompletionModel.cmake
-@@ -5,7 +5,7 @@
- # will define a C++ class called ${cpp_class} - which may be a
- # namespace-qualified class name.
- function(gen_decision_forest model filename cpp_class)
--  set(model_compiler ${CMAKE_SOURCE_DIR}/../clang-tools-extra/clangd/quality/CompletionModelCodegen.py)
-+  set(model_compiler ${CMAKE_CURRENT_LIST_DIR}/quality/CompletionModelCodegen.py)
-   
-   set(output_dir ${CMAKE_CURRENT_BINARY_DIR})
-   set(header_file ${output_dir}/${filename}.h)
diff --git a/gnu/packages/patches/clang-12.0-libc-search-path.patch b/gnu/packages/patches/clang-12.0-libc-search-path.patch
new file mode 100644
index 0000000000..38de275048
--- /dev/null
+++ b/gnu/packages/patches/clang-12.0-libc-search-path.patch
@@ -0,0 +1,84 @@
+Clang attempts to guess file names based on the OS and distro (yes!),
+but unfortunately, that doesn't work for us.
+
+This patch makes it easy to insert libc's $libdir so that Clang passes the
+correct absolute file name of crt1.o etc. to 'ld'.  It also disables all
+the distro-specific stuff and removes the hard-coded FHS directory names
+to make sure Clang also works on foreign distros.
+
+diff --git a/lib/Driver/Distro.cpp b/lib/Driver/Distro.cpp
+index ee4fe841..f0313bbe 100644
+--- a/lib/Driver/Distro.cpp
++++ b/lib/Driver/Distro.cpp
+@@ -93,6 +93,10 @@ static Distro::DistroType DetectLsbRelease(llvm::vfs::FileSystem &VFS) {
+ }
+ 
+ static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS) {
++  // The compiler should always behave the same, even when used via Guix on a
++  // foreign distro.
++  return Distro::UnknownDistro;
++
+   Distro::DistroType Version = Distro::UnknownDistro;
+ 
+   // Newer freedesktop.org's compilant systemd-based systems
+diff --git a/lib/Driver/ToolChains/Cuda.cpp b/lib/Driver/ToolChains/Cuda.cpp
+index d14776c5..88bc3ccd 100644
+--- a/lib/Driver/ToolChains/Cuda.cpp
++++ b/lib/Driver/ToolChains/Cuda.cpp
+@@ -119,6 +119,9 @@ CudaInstallationDetector::CudaInstallationDetector(
+     const Driver &D, const llvm::Triple &HostTriple,
+     const llvm::opt::ArgList &Args)
+     : D(D) {
++  // Don't look for CUDA in /usr.
++  return;
++
+   struct Candidate {
+     std::string Path;
+     bool StrictChecking;
+diff --git a/lib/Driver/ToolChains/Linux.cpp b/lib/Driver/ToolChains/Linux.cpp
+index 9663a739..107f96d6 100644
+--- a/lib/Driver/ToolChains/Linux.cpp
++++ b/lib/Driver/ToolChains/Linux.cpp
+@@ -223,6 +223,9 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+ 
+   Generic_GCC::PushPPaths(PPaths);
+ 
++  // Comment out the distro-specific tweaks so that they don't bite when
++  // using Guix on a foreign distro.
++#if 0
+   Distro Distro(D.getVFS(), Triple);
+ 
+   if (Distro.IsAlpineLinux() || Triple.isAndroid()) {
+@@ -288,6 +291,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+ 
+   if (IsAndroid || Distro.IsOpenSUSE())
+     ExtraOpts.push_back("--enable-new-dtags");
++#endif
+ 
+   // The selection of paths to try here is designed to match the patterns which
+   // the GCC driver itself uses, as this is part of the GCC-compatible driver.
+@@ -301,6 +305,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+ 
+   Generic_GCC::AddMultilibPaths(D, SysRoot, OSLibDir, MultiarchTriple, Paths);
+ 
++#if 0
+   // Similar to the logic for GCC above, if we currently running Clang inside
+   // of the requested system root, add its parent library paths to
+   // those searched.
+@@ -352,9 +357,14 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+   // directory ('Dir' below) or the ResourceDir.
+   if (StringRef(D.Dir).startswith(SysRoot))
+     addPathIfExists(D, D.Dir + "/../lib", Paths);
++#endif
++
++  // Add libc's lib/ directory to the search path, so that crt1.o, crti.o,
++  // and friends can be found.
++  addPathIfExists(D, "@GLIBC_LIBDIR@", Paths);
+ 
+-  addPathIfExists(D, SysRoot + "/lib", Paths);
+-  addPathIfExists(D, SysRoot + "/usr/lib", Paths);
++  // Add GCC's lib/ directory so libstdc++.so can be found.
++  addPathIfExists(D, GCCInstallation.getParentLibPath(), Paths);
+ }
+ 
+ ToolChain::CXXStdlibType Linux::GetDefaultCXXStdlibType() const {
diff --git a/gnu/packages/patches/clang-7.0-libc-search-path.patch b/gnu/packages/patches/clang-7.0-libc-search-path.patch
index 07ff8c90bd..cb7088eda4 100644
--- a/gnu/packages/patches/clang-7.0-libc-search-path.patch
+++ b/gnu/packages/patches/clang-7.0-libc-search-path.patch
@@ -4,8 +4,39 @@ but unfortunately, that doesn't work for us.
 This patch makes it easy to insert libc's $libdir so that Clang passes the
 correct absolute file name of crt1.o etc. to 'ld'.  It also disables all
 the distro-specific stuff and removes the hard-coded FHS directory names
-to make sure Clang also works on non-GuixSD systems.
+to make sure Clang also works on foreign distros.
 
+diff --git a/lib/Driver/Distro.cpp b/lib/Driver/Distro.cpp
+index 2c4d44f..0493b0a 100644
+--- a/lib/Driver/Distro.cpp
++++ b/lib/Driver/Distro.cpp
+@@ -18,6 +18,10 @@ using namespace clang::driver;
+ using namespace clang;
+ 
+ static Distro::DistroType DetectDistro(vfs::FileSystem &VFS) {
++  // The compiler should always behave the same, even when used via Guix on a
++  // foreign distro.
++  return Distro::UnknownDistro;
++
+   llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> File =
+       VFS.getBufferForFile("/etc/lsb-release");
+   if (File) {
+diff --git a/lib/Driver/ToolChains/Cuda.cpp b/lib/Driver/ToolChains/Cuda.cpp
+index 7fb4ae4..cb21344 100644
+--- a/lib/Driver/ToolChains/Cuda.cpp
++++ b/lib/Driver/ToolChains/Cuda.cpp
+@@ -66,6 +66,9 @@ CudaInstallationDetector::CudaInstallationDetector(
+     const Driver &D, const llvm::Triple &HostTriple,
+     const llvm::opt::ArgList &Args)
+     : D(D) {
++  // Don't look for CUDA in /usr.
++  return;
++
+   struct Candidate {
+     std::string Path;
+     bool StrictChecking;
+diff --git a/lib/Driver/ToolChains/Linux.cpp b/lib/Driver/ToolChains/Linux.cpp
+index f8f3623..36dc722 100644
 --- a/lib/Driver/ToolChains/Linux.cpp
 +++ b/lib/Driver/ToolChains/Linux.cpp
 @@ -225,7 +225,9 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
@@ -27,56 +58,37 @@ to make sure Clang also works on non-GuixSD systems.
  
    // The selection of paths to try here is designed to match the patterns which
    // the GCC driver itself uses, as this is part of the GCC-compatible driver.
-@@ -342,7 +345,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
-     // the cross. Note that GCC does include some of these directories in some
-     // configurations but this seems somewhere between questionable and simply
-     // a bug.
--    if (StringRef(LibPath).startswith(SysRoot)) {
-+    if (0) {
-       addPathIfExists(D, LibPath + "/" + MultiarchTriple, Paths);
-       addPathIfExists(D, LibPath + "/../" + OSLibDir, Paths);
+@@ -348,6 +351,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
      }
-@@ -361,6 +364,8 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
-   addPathIfExists(D, SysRoot + "/lib/" + MultiarchTriple, Paths);
-   addPathIfExists(D, SysRoot + "/lib/../" + OSLibDir, Paths);
- 
-+  // This requires the commented distro tweaks above.
-+#if 0
-   if (IsAndroid) {
-     // Android sysroots contain a library directory for each supported OS
-     // version as well as some unversioned libraries in the usual multiarch
-@@ -389,10 +394,14 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
-     addPathIfExists(D, SysRoot + "/" + OSLibDir + "/" + ABIName, Paths);
-     addPathIfExists(D, SysRoot + "/usr/" + OSLibDir + "/" + ABIName, Paths);
    }
-+#endif
  
++#if 0
+   // Similar to the logic for GCC above, if we currently running Clang inside
+   // of the requested system root, add its parent library paths to
+   // those searched.
+@@ -393,6 +397,8 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
    // Try walking via the GCC triple path in case of biarch or multiarch GCC
    // installations with strange symlinks.
    if (GCCInstallation.isValid()) {
 +    // The following code would end up adding things like
 +    // "/usr/lib/x86_64-unknown-linux-gnu/../../lib64" to the search path.
-+#if 0
      addPathIfExists(D,
                      SysRoot + "/usr/lib/" + GCCInstallation.getTriple().str() +
                          "/../../" + OSLibDir,
-@@ -405,6 +414,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
-                              BiarchSibling.gccSuffix(),
-                       Paths);
-     }
-+#endif
- 
-     // See comments above on the multilib variant for details of why this is
-     // included even from outside the sysroot.
-@@ -429,8 +439,9 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+@@ -428,9 +434,14 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+   // directory ('Dir' below) or the ResourceDir.
    if (StringRef(D.Dir).startswith(SysRoot))
      addPathIfExists(D, D.Dir + "/../lib", Paths);
- 
--  addPathIfExists(D, SysRoot + "/lib", Paths);
--  addPathIfExists(D, SysRoot + "/usr/lib", Paths);
++#endif
++
 +  // Add libc's lib/ directory to the search path, so that crt1.o, crti.o,
 +  // and friends can be found.
 +  addPathIfExists(D, "@GLIBC_LIBDIR@", Paths);
+ 
+-  addPathIfExists(D, SysRoot + "/lib", Paths);
+-  addPathIfExists(D, SysRoot + "/usr/lib", Paths);
++  // Add GCC's lib/ directory so libstdc++.so can be found.
++  addPathIfExists(D, GCCInstallation.getParentLibPath(), Paths);
  }
  
  bool Linux::HasNativeLLVMSupport() const { return true; }
diff --git a/gnu/packages/patches/clang-8.0-libc-search-path.patch b/gnu/packages/patches/clang-8.0-libc-search-path.patch
new file mode 100644
index 0000000000..2003fef217
--- /dev/null
+++ b/gnu/packages/patches/clang-8.0-libc-search-path.patch
@@ -0,0 +1,94 @@
+Clang attempts to guess file names based on the OS and distro (yes!),
+but unfortunately, that doesn't work for us.
+
+This patch makes it easy to insert libc's $libdir so that Clang passes the
+correct absolute file name of crt1.o etc. to 'ld'.  It also disables all
+the distro-specific stuff and removes the hard-coded FHS directory names
+to make sure Clang also works on foreign distros.
+
+diff --git a/lib/Driver/Distro.cpp b/lib/Driver/Distro.cpp
+index 396d0bee..90e06613 100644
+--- a/lib/Driver/Distro.cpp
++++ b/lib/Driver/Distro.cpp
+@@ -19,6 +19,10 @@ using namespace clang::driver;
+ using namespace clang;
+ 
+ static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS) {
++  // The compiler should always behave the same, even when used via Guix on a
++  // foreign distro.
++  return Distro::UnknownDistro;
++
+   llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> File =
+       VFS.getBufferForFile("/etc/lsb-release");
+   if (File) {
+diff --git a/lib/Driver/ToolChains/Cuda.cpp b/lib/Driver/ToolChains/Cuda.cpp
+index 57b8d434..57339f1a 100644
+--- a/lib/Driver/ToolChains/Cuda.cpp
++++ b/lib/Driver/ToolChains/Cuda.cpp
+@@ -68,6 +68,9 @@ CudaInstallationDetector::CudaInstallationDetector(
+     const Driver &D, const llvm::Triple &HostTriple,
+     const llvm::opt::ArgList &Args)
+     : D(D) {
++  // Don't look for CUDA in /usr.
++  return;
++
+   struct Candidate {
+     std::string Path;
+     bool StrictChecking;
+diff --git a/lib/Driver/ToolChains/Linux.cpp b/lib/Driver/ToolChains/Linux.cpp
+index 65ab9b2d..5ed28e0a 100644
+--- a/lib/Driver/ToolChains/Linux.cpp
++++ b/lib/Driver/ToolChains/Linux.cpp
+@@ -233,7 +233,9 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+   PPaths.push_back(Twine(GCCInstallation.getParentLibPath() + "/../" +
+                          GCCInstallation.getTriple().str() + "/bin")
+                        .str());
+-
++  // Comment out the distro-specific tweaks so that they don't bite when
++  // using Guix on a foreign distro.
++#if 0
+   Distro Distro(D.getVFS());
+ 
+   if (Distro.IsAlpineLinux() || Triple.isAndroid()) {
+@@ -304,6 +306,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+ 
+   if (IsAndroid || Distro.IsOpenSUSE())
+     ExtraOpts.push_back("--enable-new-dtags");
++#endif
+ 
+   // The selection of paths to try here is designed to match the patterns which
+   // the GCC driver itself uses, as this is part of the GCC-compatible driver.
+@@ -366,6 +369,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+     }
+   }
+ 
++#if 0
+   // Similar to the logic for GCC above, if we currently running Clang inside
+   // of the requested system root, add its parent library paths to
+   // those searched.
+@@ -411,6 +415,8 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+   // Try walking via the GCC triple path in case of biarch or multiarch GCC
+   // installations with strange symlinks.
+   if (GCCInstallation.isValid()) {
++    // The following code would end up adding things like
++    // "/usr/lib/x86_64-unknown-linux-gnu/../../lib64" to the search path.
+     addPathIfExists(D,
+                     SysRoot + "/usr/lib/" + GCCInstallation.getTriple().str() +
+                         "/../../" + OSLibDir,
+@@ -446,9 +452,14 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+   // directory ('Dir' below) or the ResourceDir.
+   if (StringRef(D.Dir).startswith(SysRoot))
+     addPathIfExists(D, D.Dir + "/../lib", Paths);
++#endif
++
++  // Add libc's lib/ directory to the search path, so that crt1.o, crti.o,
++  // and friends can be found.
++  addPathIfExists(D, "@GLIBC_LIBDIR@", Paths);
+ 
+-  addPathIfExists(D, SysRoot + "/lib", Paths);
+-  addPathIfExists(D, SysRoot + "/usr/lib", Paths);
++  // Add GCC's lib/ directory so libstdc++.so can be found.
++  addPathIfExists(D, GCCInstallation.getParentLibPath(), Paths);
+ }
+ 
+ ToolChain::CXXStdlibType Linux::GetDefaultCXXStdlibType() const {
diff --git a/gnu/packages/patches/clang-9.0-libc-search-path.patch b/gnu/packages/patches/clang-9.0-libc-search-path.patch
index be34344842..1984895a9c 100644
--- a/gnu/packages/patches/clang-9.0-libc-search-path.patch
+++ b/gnu/packages/patches/clang-9.0-libc-search-path.patch
@@ -4,17 +4,47 @@ but unfortunately, that doesn't work for us.
 This patch makes it easy to insert libc's $libdir so that Clang passes the
 correct absolute file name of crt1.o etc. to 'ld'.  It also disables all
 the distro-specific stuff and removes the hard-coded FHS directory names
-to make sure Clang also works on non-GuixSD systems.
+to make sure Clang also works on foreign distros.
 
+diff --git a/lib/Driver/Distro.cpp b/lib/Driver/Distro.cpp
+index f2a3074d..536db89c 100644
+--- a/lib/Driver/Distro.cpp
++++ b/lib/Driver/Distro.cpp
+@@ -18,6 +18,10 @@ using namespace clang::driver;
+ using namespace clang;
+ 
+ static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS) {
++  // The compiler should always behave the same, even when used via Guix on a
++  // foreign distro.
++  return Distro::UnknownDistro;
++
+   llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> File =
+       VFS.getBufferForFile("/etc/lsb-release");
+   if (File) {
+diff --git a/lib/Driver/ToolChains/Cuda.cpp b/lib/Driver/ToolChains/Cuda.cpp
+index 96f8c513..64fd7a26 100644
+--- a/lib/Driver/ToolChains/Cuda.cpp
++++ b/lib/Driver/ToolChains/Cuda.cpp
+@@ -69,6 +69,9 @@ CudaInstallationDetector::CudaInstallationDetector(
+     const Driver &D, const llvm::Triple &HostTriple,
+     const llvm::opt::ArgList &Args)
+     : D(D) {
++  // Don't look for CUDA in /usr.
++  return;
++
+   struct Candidate {
+     std::string Path;
+     bool StrictChecking;
 diff --git a/lib/Driver/ToolChains/Linux.cpp b/lib/Driver/ToolChains/Linux.cpp
+index 7f59bc77..67d8ce22 100644
 --- a/lib/Driver/ToolChains/Linux.cpp
 +++ b/lib/Driver/ToolChains/Linux.cpp
 @@ -240,6 +240,9 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
                           .str());
    }
  
-+// Comment out the distro-specific tweaks so that they don't bite when
-+// using Guix on a foreign distro.
++  // Comment out the distro-specific tweaks so that they don't bite when
++  // using Guix on a foreign distro.
 +#if 0
    Distro Distro(D.getVFS());
  
@@ -27,57 +57,37 @@ diff --git a/lib/Driver/ToolChains/Linux.cpp b/lib/Driver/ToolChains/Linux.cpp
  
    // The selection of paths to try here is designed to match the patterns which
    // the GCC driver itself uses, as this is part of the GCC-compatible driver.
-@@ -363,7 +367,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
-     // the cross. Note that GCC does include some of these directories in some
-     // configurations but this seems somewhere between questionable and simply
-     // a bug.
--    if (StringRef(LibPath).startswith(SysRoot)) {
-+    if (0) {
-       addPathIfExists(D, LibPath + "/" + MultiarchTriple, Paths);
-       addPathIfExists(D, LibPath + "/../" + OSLibDir, Paths);
+@@ -369,6 +373,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
      }
-@@ -382,6 +386,8 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
-   addPathIfExists(D, SysRoot + "/lib/" + MultiarchTriple, Paths);
-   addPathIfExists(D, SysRoot + "/lib/../" + OSLibDir, Paths);
- 
-+// This requires the commented distro tweaks above.
-+#if 0
-   if (IsAndroid) {
-     // Android sysroots contain a library directory for each supported OS
-     // version as well as some unversioned libraries in the usual multiarch
-@@ -410,10 +416,15 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
-     addPathIfExists(D, SysRoot + "/" + OSLibDir + "/" + ABIName, Paths);
-     addPathIfExists(D, SysRoot + "/usr/" + OSLibDir + "/" + ABIName, Paths);
    }
-+#endif
  
++#if 0
+   // Similar to the logic for GCC above, if we currently running Clang inside
+   // of the requested system root, add its parent library paths to
+   // those searched.
+@@ -414,6 +419,8 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
    // Try walking via the GCC triple path in case of biarch or multiarch GCC
    // installations with strange symlinks.
    if (GCCInstallation.isValid()) {
-+
-+// The following code would end up adding things like
-+// "/usr/lib/x86_64-unknown-linux-gnu/../../lib64" to the search path.
-+#if 0
++    // The following code would end up adding things like
++    // "/usr/lib/x86_64-unknown-linux-gnu/../../lib64" to the search path.
      addPathIfExists(D,
                      SysRoot + "/usr/lib/" + GCCInstallation.getTriple().str() +
                          "/../../" + OSLibDir,
-@@ -426,6 +437,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
-                              BiarchSibling.gccSuffix(),
-                       Paths);
-     }
-+#endif
- 
-     // See comments above on the multilib variant for details of why this is
-     // included even from outside the sysroot.
-@@ -450,8 +462,9 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+@@ -449,9 +456,14 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+   // directory ('Dir' below) or the ResourceDir.
    if (StringRef(D.Dir).startswith(SysRoot))
      addPathIfExists(D, D.Dir + "/../lib", Paths);
- 
--  addPathIfExists(D, SysRoot + "/lib", Paths);
--  addPathIfExists(D, SysRoot + "/usr/lib", Paths);
++#endif
++
 +  // Add libc's lib/ directory to the search path, so that crt1.o, crti.o,
 +  // and friends can be found.
 +  addPathIfExists(D, "@GLIBC_LIBDIR@", Paths);
+ 
+-  addPathIfExists(D, SysRoot + "/lib", Paths);
+-  addPathIfExists(D, SysRoot + "/usr/lib", Paths);
++  // Add GCC's lib/ directory so libstdc++.so can be found.
++  addPathIfExists(D, GCCInstallation.getParentLibPath(), Paths);
  }
  
  ToolChain::CXXStdlibType Linux::GetDefaultCXXStdlibType() const {
diff --git a/gnu/packages/patches/cling-use-shared-library.patch b/gnu/packages/patches/cling-use-shared-library.patch
new file mode 100644
index 0000000000..6385b307b3
--- /dev/null
+++ b/gnu/packages/patches/cling-use-shared-library.patch
@@ -0,0 +1,329 @@
+From 811f0a575231496318b5e9c9a0ff0ed195b16dc0 Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Tue, 7 Sep 2021 16:35:07 -0400
+Subject: [PATCH] build: Allow building Cling using the Clang shared library.
+
+The officially supported way to build LLVM/Clang as a shared library
+is via the LLVM_BUILD_LLVM_DYLIB and LLVM_LINK_LLVM_DYLIB CMake
+options (see: https://llvm.org/docs/BuildingADistribution.html).  When
+built this way, the whole of Clang API is exposed as a shared
+library (libclang-cpp.so).
+
+* CMakeLists.txt: Query if we're in shared mode via llvm-config, and
+register the result as LLVM_LIB_IS_SHARED.
+[LLVM_LIB_IS_SHARED] <target_link_libraries>: Use the PUBLIC interface of the
+LLVM shared library.
+* lib/Interpreter/CMakeLists.txt [LLVM_LIB_IS_SHARED]: When defined, replace the
+individual Clang components by clang-cpp.
+* lib/MetaProcessor/CMakeLists.txt: Likewise.
+* lib/Utils/CMakeLists.txt: Likewise.
+* tools/Jupyter/CMakeLists.txt: Likewise.
+* tools/driver/CMakeLists.txt: Likewise.
+* tools/libcling/CMakeLists.txt: Likewise.
+---
+ CMakeLists.txt                   | 10 ++++++--
+ lib/Interpreter/CMakeLists.txt   | 40 ++++++++++++++++++--------------
+ lib/MetaProcessor/CMakeLists.txt | 16 +++++++++----
+ lib/Utils/CMakeLists.txt         | 34 +++++++++++++++------------
+ tools/Jupyter/CMakeLists.txt     | 11 ++++++++-
+ tools/driver/CMakeLists.txt      | 16 +++----------
+ tools/libcling/CMakeLists.txt    | 38 +++++++++++++++---------------
+ 7 files changed, 93 insertions(+), 72 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 65b14b27..888f7ee9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -23,6 +23,7 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
+       "--libdir"
+       "--includedir"
+       "--prefix"
++      "--shared-mode"
+       "--src-root")
+     execute_process(
+       COMMAND ${CONFIG_COMMAND}
+@@ -47,7 +48,8 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
+   list(GET CONFIG_OUTPUT 2 LIBRARY_DIR)
+   list(GET CONFIG_OUTPUT 3 INCLUDE_DIR)
+   list(GET CONFIG_OUTPUT 4 LLVM_OBJ_ROOT)
+-  list(GET CONFIG_OUTPUT 5 MAIN_SRC_DIR)
++  list(GET CONFIG_OUTPUT 5 LLVM_LIB_IS_SHARED)
++  list(GET CONFIG_OUTPUT 6 MAIN_SRC_DIR)
+ 
+   if(NOT MSVC_IDE)
+     set(LLVM_ENABLE_ASSERTIONS ${ENABLE_ASSERTIONS}
+@@ -427,7 +429,11 @@ macro(add_cling_library name)
+   endif()
+ 
+   if(TARGET ${name})
+-    target_link_libraries(${name} INTERFACE ${LLVM_COMMON_LIBS})
++      if(LLVM_LIB_IS_SHARED)
++          target_link_libraries(${name} PUBLIC LLVM)
++      else()
++          target_link_libraries(${name} INTERFACE ${LLVM_COMMON_LIBS})
++      endif()
+ 
+     if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "libcling")
+       install(TARGETS ${name}
+diff --git a/lib/Interpreter/CMakeLists.txt b/lib/Interpreter/CMakeLists.txt
+index 921c773c..af65c020 100644
+--- a/lib/Interpreter/CMakeLists.txt
++++ b/lib/Interpreter/CMakeLists.txt
+@@ -6,22 +6,28 @@
+ # LICENSE.TXT for details.
+ #------------------------------------------------------------------------------
+ 
+-set(LIBS
+-  clingUtils
+-  clangCodeGen
+-  clangDriver
+-  clangFrontend
+-  clangParse
+-  clangSema
+-  clangAnalysis
+-  clangEdit
+-  clangRewrite
+-  clangRewriteFrontend
+-  clangSerialization
+-  clangAST
+-  clangBasic
+-  clangLex
+-)
++if (LLVM_LIB_IS_SHARED)
++    set(LIBS
++        clang-cpp
++        clingUtils)
++else()
++    set(LIBS
++        clingUtils
++        clangCodeGen
++        clangDriver
++        clangFrontend
++        clangParse
++        clangSema
++        clangAnalysis
++        clangEdit
++        clangRewrite
++        clangRewriteFrontend
++        clangSerialization
++        clangAST
++        clangBasic
++        clangLex
++        )
++endif()
+ 
+ set(LLVM_LINK_COMPONENTS
+   analysis
+@@ -369,4 +375,4 @@ if ((NOT builtin_llvm) AND builtin_clang)
+   get_property(P SOURCE TransactionUnloader.cpp PROPERTY INCLUDE_DIRECTORIES)
+   list(INSERT P 0 ${FixInclude})
+   set_property(SOURCE TransactionUnloader.cpp PROPERTY INCLUDE_DIRECTORIES "${P}")
+-endif()
+\ No newline at end of file
++endif()
+diff --git a/lib/MetaProcessor/CMakeLists.txt b/lib/MetaProcessor/CMakeLists.txt
+index e753dca3..5f4641bb 100644
+--- a/lib/MetaProcessor/CMakeLists.txt
++++ b/lib/MetaProcessor/CMakeLists.txt
+@@ -10,7 +10,16 @@ set( LLVM_LINK_COMPONENTS
+   core
+   support
+   binaryformat
+-)
++  )
++
++if (LLVM_LIB_IS_SHARED)
++    set(LIBS clang-cpp)
++else()
++    set(LIBS
++        clangLex
++        clangAST
++        clangBasic)
++endif()
+ 
+ add_cling_library(clingMetaProcessor OBJECT
+   Display.cpp
+@@ -21,10 +30,7 @@ add_cling_library(clingMetaProcessor OBJECT
+   MetaSema.cpp
+ 
+   LINK_LIBS
+-  clangLex
+-  clangAST
+-  clangBasic
+-
++  ${LIBS}
+   clingInterpreter
+   clingUtils
+ )
+diff --git a/lib/Utils/CMakeLists.txt b/lib/Utils/CMakeLists.txt
+index 327c9fff..fbe4bd87 100644
+--- a/lib/Utils/CMakeLists.txt
++++ b/lib/Utils/CMakeLists.txt
+@@ -26,21 +26,25 @@ set(LLVM_LINK_COMPONENTS
+   ${LLVM_TARGETS_TO_BUILD}
+ )
+ 
+-set(LIBS
+-  clangCodeGen
+-  clangDriver
+-  clangFrontend
+-  clangParse
+-  clangSema
+-  clangAnalysis
+-  clangEdit
+-  clangRewrite
+-  clangRewriteFrontend
+-  clangSerialization
+-  clangAST
+-  clangBasic
+-  clangLex
+-)
++if (LLVM_LIB_IS_SHARED)
++    set(LIBS clang-cpp)
++else()
++    set(LIBS
++        clangCodeGen
++        clangDriver
++        clangFrontend
++        clangParse
++        clangSema
++        clangAnalysis
++        clangEdit
++        clangRewrite
++        clangRewriteFrontend
++        clangSerialization
++        clangAST
++        clangBasic
++        clangLex
++        )
++endif()
+ 
+ find_library(DL_LIBRARY_PATH dl)
+ if (DL_LIBRARY_PATH)
+diff --git a/tools/Jupyter/CMakeLists.txt b/tools/Jupyter/CMakeLists.txt
+index aad5f3f7..8b4ac36f 100644
+--- a/tools/Jupyter/CMakeLists.txt
++++ b/tools/Jupyter/CMakeLists.txt
+@@ -39,6 +39,14 @@ else()
+    endif()
+ endif()
+ 
++if (LLVM_LIB_IS_SHARED)
++    set(LIBS
++        clang-cpp
++        clingUserInterface
++        clingMetaProcessor
++        ${INTERPRETER}
++        clingUtils)
++else()
+ set(LIBS
+         clangAST
+         clangBasic
+@@ -54,7 +62,8 @@ set(LIBS
+         clingMetaProcessor
+         ${INTERPRETER}
+         clingUtils
+-    )
++        )
++endif()
+ 
+ if( LLVM_ENABLE_PIC )
+     set(ENABLE_SHARED SHARED)
+diff --git a/tools/driver/CMakeLists.txt b/tools/driver/CMakeLists.txt
+index 1968b97f..5ed53fb7 100644
+--- a/tools/driver/CMakeLists.txt
++++ b/tools/driver/CMakeLists.txt
+@@ -9,23 +9,13 @@
+ # Keep symbols for JIT resolution
+ set(LLVM_NO_DEAD_STRIP 1)
+ 
+-if(BUILD_SHARED_LIBS)
+-  set(LIBS
+-    LLVMSupport
+-
+-    clangFrontendTool
+-
+-    clingInterpreter
+-    clingMetaProcessor
+-    clingUserInterface
+-    clingUtils
+-  )
++if(LLVM_LIB_IS_SHARED)
++  set(LIBS clang-cpp clingUserInterface)
+   add_cling_executable(cling
+     cling.cpp
+   )
+ else()
+   set(LIBS
+-    LLVMSupport
+ 
+     clangASTMatchers
+     clangFrontendTool
+@@ -38,7 +28,7 @@ else()
+     $<TARGET_OBJECTS:obj.clingMetaProcessor>
+     $<TARGET_OBJECTS:obj.clingUtils>
+   )
+-endif(BUILD_SHARED_LIBS)
++endif(LLVM_LIB_IS_SHARED)
+ 
+ set_target_properties(cling
+   PROPERTIES ENABLE_EXPORTS 1)
+diff --git a/tools/libcling/CMakeLists.txt b/tools/libcling/CMakeLists.txt
+index 143d3bdb..ba000d44 100644
+--- a/tools/libcling/CMakeLists.txt
++++ b/tools/libcling/CMakeLists.txt
+@@ -10,21 +10,25 @@ set(SOURCES
+   ADDITIONAL_HEADERS
+   )
+ 
+-set(LIBS
+-  clangAnalysis
+-  clangDriver
+-  clangFrontend
+-  clangParse
+-  clangSema
+-  clangAST
+-  clangLex
+-  clangSerialization
+-  clangCodeGen
+-  clangBasic
+-  clangEdit
+-
+-  clingUtils
+-)
++if (LLVM_LIB_IS_SHARED)
++    set(LIBS clang-cpp)
++else()
++    set(LIBS
++        clangAnalysis
++        clangDriver
++        clangFrontend
++        clangParse
++        clangSema
++        clangAST
++        clangLex
++        clangSerialization
++        clangCodeGen
++        clangBasic
++        clangEdit
++
++        clingUtils
++        )
++endif()
+ 
+ set( LLVM_LINK_COMPONENTS
+   analysis
+@@ -63,10 +67,6 @@ option(LIBCLING_BUILD_STATIC
+ #  set(LLVM_EXPORTED_SYMBOL_FILE)
+ #endif()
+ 
+-if( LLVM_ENABLE_PIC )
+-  set(ENABLE_SHARED SHARED)
+-endif()
+-
+ if((NOT LLVM_ENABLE_PIC OR LIBCLING_BUILD_STATIC) AND NOT WIN32)
+   set(ENABLE_STATIC STATIC)
+ endif()
+-- 
+2.33.0
+
diff --git a/gnu/packages/patches/coq-fix-envvars.patch b/gnu/packages/patches/coq-fix-envvars.patch
new file mode 100644
index 0000000000..deecf5ce74
--- /dev/null
+++ b/gnu/packages/patches/coq-fix-envvars.patch
@@ -0,0 +1,139 @@
+From ebe09fcac72b21d17c4e8fe6edc1b6076a4ae97c Mon Sep 17 00:00:00 2001
+From: Julien Lepiller <julien@lepiller.eu>
+Date: Sun, 21 Nov 2021 00:38:03 +0100
+Subject: [PATCH] Fix environment variable usage.
+
+---
+ checker/checker.ml      |  2 ++
+ lib/envars.ml           | 26 ++++++++++++++++----------
+ sysinit/coqargs.ml      |  3 ++-
+ sysinit/coqloadpath.ml  |  3 ++-
+ sysinit/coqloadpath.mli |  2 +-
+ tools/coqdep.ml         |  2 +-
+ 6 files changed, 24 insertions(+), 14 deletions(-)
+
+diff --git a/checker/checker.ml b/checker/checker.ml
+index f55ed9e8d6..3b797729ed 100644
+--- a/checker/checker.ml
++++ b/checker/checker.ml
+@@ -104,6 +104,7 @@ let set_include d p =
+ (* Initializes the LoadPath *)
+ let init_load_path () =
+   let coqlib = Envars.coqlib () in
++  let coqcorelib = Envars.coqcorelib () in
+   let user_contrib = coqlib/"user-contrib" in
+   let xdg_dirs = Envars.xdg_dirs in
+   let coqpath = Envars.coqpath in
+@@ -111,6 +112,7 @@ let init_load_path () =
+     CPath.choose_existing
+       [ CPath.make [ coqlib ; "plugins" ]
+       ; CPath.make [ coqlib ; ".."; "coq-core"; "plugins" ]
++      ; CPath.make [ coqcorelib ; "plugins" ]
+       ] |> function
+     | None ->
+       CErrors.user_err (Pp.str "Cannot find plugins directory")
+diff --git a/lib/envars.ml b/lib/envars.ml
+index 750bd60e71..c7affbd437 100644
+--- a/lib/envars.ml
++++ b/lib/envars.ml
+@@ -127,15 +127,21 @@ let check_file_else ~dir ~file oth =
+ let guess_coqlib fail =
+   getenv_else "COQLIB" (fun () ->
+   let prelude = "theories/Init/Prelude.vo" in
+-  check_file_else ~dir:Coq_config.coqlibsuffix ~file:prelude
+-    (fun () ->
+-      if Sys.file_exists (Coq_config.coqlib / prelude)
+-      then Coq_config.coqlib
+-      else
+-        fail "cannot guess a path for Coq libraries; please use -coqlib option \
+-              or ensure you have installed the package containing Coq's stdlib (coq-stdlib in OPAM) \
+-              If you intend to use Coq without a standard library, the -boot -noinit options must be used.")
+-  )
++  let coqlibpath = getenv_else "COQLIBPATH" (fun () -> Coq_config.coqlibsuffix) in
++  let paths = path_to_list coqlibpath in
++  let valid_paths =
++    List.filter
++      (fun dir -> (check_file_else ~dir:dir ~file:prelude (fun () -> "")) <> "")
++      paths in
++  match valid_paths with
++  | [] ->
++    if Sys.file_exists (Coq_config.coqlib / prelude)
++    then Coq_config.coqlib
++    else
++      fail "cannot guess a path for Coq libraries; please use -coqlib option \
++            or ensure you have installed the package containing Coq's stdlib (coq-stdlib in OPAM) \
++            If you intend to use Coq without a standard library, the -boot -noinit options must be used."
++  | p::_ -> p)
+ 
+ let coqlib_ref : string option ref = ref None
+ let set_user_coqlib path = coqlib_ref := Some path
+@@ -208,7 +214,7 @@ let xdg_dirs ~warn =
+ let print_config ?(prefix_var_name="") f coq_src_subdirs =
+   let open Printf in
+   fprintf f "%sCOQLIB=%s/\n" prefix_var_name (coqlib ());
+-  fprintf f "%sCOQCORELIB=%s/\n" prefix_var_name (coqlib () / "../coq-core/");
++  fprintf f "%sCOQCORELIB=%s/\n" prefix_var_name (coqcorelib ());
+   fprintf f "%sDOCDIR=%s/\n" prefix_var_name (docdir ());
+   fprintf f "%sOCAMLFIND=%s\n" prefix_var_name (ocamlfind ());
+   fprintf f "%sCAMLFLAGS=%s\n" prefix_var_name Coq_config.caml_flags;
+diff --git a/sysinit/coqargs.ml b/sysinit/coqargs.ml
+index 00f70a5fea..8325623a63 100644
+--- a/sysinit/coqargs.ml
++++ b/sysinit/coqargs.ml
+@@ -453,7 +453,8 @@ let build_load_path opts =
+     if opts.pre.boot then [],[]
+     else
+       let coqlib = Envars.coqlib () in
+-      Coqloadpath.init_load_path ~coqlib in
++      let coqcorelib = Envars.coqcorelib () in
++      Coqloadpath.init_load_path ~coqlib ~coqcorelib in
+   ml_path @ opts.pre.ml_includes ,
+   vo_path @ opts.pre.vo_includes
+ 
+diff --git a/sysinit/coqloadpath.ml b/sysinit/coqloadpath.ml
+index 95ae5da3de..a58cfe6928 100644
+--- a/sysinit/coqloadpath.ml
++++ b/sysinit/coqloadpath.ml
+@@ -35,7 +35,7 @@ let build_userlib_path ~unix_path =
+   else [], []
+ 
+ (* LoadPath for Coq user libraries *)
+-let init_load_path ~coqlib =
++let init_load_path ~coqlib ~coqcorelib =
+ 
+   let open Loadpath in
+   let user_contrib = coqlib/"user-contrib" in
+@@ -50,6 +50,7 @@ let init_load_path ~coqlib =
+     CPath.choose_existing
+       [ CPath.make [ coqlib ; "plugins" ]
+       ; CPath.make [ coqlib ; ".."; "coq-core"; "plugins" ]
++      ; CPath.make [ coqcorelib ; "plugins" ]
+       ] |> function
+     | None ->
+       CErrors.user_err (Pp.str "Cannot find plugins directory")
+diff --git a/sysinit/coqloadpath.mli b/sysinit/coqloadpath.mli
+index d853e9ea54..43c6dfa134 100644
+--- a/sysinit/coqloadpath.mli
++++ b/sysinit/coqloadpath.mli
+@@ -12,5 +12,5 @@
+    includes (in-order) Coq's standard library, Coq's [user-contrib]
+    folder, and directories specified in [COQPATH] and [XDG_DIRS] *)
+ val init_load_path
+-  : coqlib:CUnix.physical_path
++  : coqlib:CUnix.physical_path -> coqcorelib:CUnix.physical_path
+   -> CUnix.physical_path list * Loadpath.vo_path list
+diff --git a/tools/coqdep.ml b/tools/coqdep.ml
+index c1c87993e1..6c78e10866 100644
+--- a/tools/coqdep.ml
++++ b/tools/coqdep.ml
+@@ -33,7 +33,7 @@ let coqdep () =
+     let coqlib = Envars.coqlib () in
+     let coq_plugins_dir = Filename.concat (Envars.coqcorelib ()) "plugins" in
+     if not (Sys.file_exists coq_plugins_dir) then
+-      CErrors.user_err Pp.(str "coqdep: cannot find plugins directory for coqlib: " ++ str coqlib ++ fnl ());
++      CErrors.user_err Pp.(str "coqdep: cannot find plugins directory " ++ str coq_plugins_dir ++ str " for coqlib: " ++ str coqlib ++ fnl ());
+     CD.add_rec_dir_import CD.add_coqlib_known (coqlib//"theories") ["Coq"];
+     CD.add_rec_dir_import CD.add_coqlib_known (coq_plugins_dir) ["Coq"];
+     let user = coqlib//"user-contrib" in
+-- 
+2.33.1
diff --git a/gnu/packages/patches/cpufrequtils-fix-aclocal.patch b/gnu/packages/patches/cpufrequtils-fix-aclocal.patch
deleted file mode 100644
index be5767f462..0000000000
--- a/gnu/packages/patches/cpufrequtils-fix-aclocal.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Add an extra layer of quoting to ltmain.sh sanity check.
-
---- a/configure	2005-05-07 14:19:31.000000000 +0200
-+++ b/configure	2015-02-10 11:16:32.456146934 +0100
-@@ -6266,7 +6266,7 @@
-   exit 1
- fi
- gentoo_lt_version="1.5.16"
--gentoo_ltmain_version=`grep '^[:space:]*VERSION=' $ltmain | sed -e 's|^[:space:]*VERSION=||'`
-+gentoo_ltmain_version=`grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||'`
- if test "$gentoo_lt_version" != "$gentoo_ltmain_version"; then
-   echo "$as_me:$LINENO: result: no" >&5
- echo "${ECHO_T}no" >&6
---- a/aclocal.m4	2005-05-07 14:19:25.000000000 +0200
-+++ b/aclocal.m4	2015-02-10 11:16:15.352030318 +0100
-@@ -246,7 +246,7 @@
-   exit 1
- fi
- gentoo_lt_version="1.5.16"
--gentoo_ltmain_version=`grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||'`
-+gentoo_ltmain_version=`[grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||']`
- if test "$gentoo_lt_version" != "$gentoo_ltmain_version"; then
-   AC_MSG_RESULT(no)
-   echo
---- a/libcpufreq/configure	2005-05-07 14:19:31.000000000 +0200
-+++ b/libcpufreq/configure	2015-02-10 11:16:32.456146934 +0100
-@@ -6266,7 +6266,7 @@
-   exit 1
- fi
- gentoo_lt_version="1.5.16"
--gentoo_ltmain_version=`grep '^[:space:]*VERSION=' $ltmain | sed -e 's|^[:space:]*VERSION=||'`
-+gentoo_ltmain_version=`grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||'`
- if test "$gentoo_lt_version" != "$gentoo_ltmain_version"; then
-   echo "$as_me:$LINENO: result: no" >&5
- echo "${ECHO_T}no" >&6
---- a/libcpufreq/aclocal.m4	2005-05-07 14:19:25.000000000 +0200
-+++ b/libcpufreq/aclocal.m4	2015-02-10 11:16:15.352030318 +0100
-@@ -246,7 +246,7 @@
-   exit 1
- fi
- gentoo_lt_version="1.5.16"
--gentoo_ltmain_version=`grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||'`
-+gentoo_ltmain_version=`[grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||']`
- if test "$gentoo_lt_version" != "$gentoo_ltmain_version"; then
-   AC_MSG_RESULT(no)
-   echo
diff --git a/gnu/packages/patches/curl-7.77-tls-priority-string.patch b/gnu/packages/patches/curl-7.77-tls-priority-string.patch
deleted file mode 100644
index bf1bfa8aaa..0000000000
--- a/gnu/packages/patches/curl-7.77-tls-priority-string.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-cURL 7.77.0 would use a bogus TLS priority string favoring older TLS
-protocol versions, which in turn would prevent access to bitbucket.org:
-
-  https://issues.guix.gnu.org/49035
-  https://github.com/curl/curl/pull/7278
-
-This patch fixes it.
-From <https://github.com/curl/curl/pull/7278/commits/b98f79f6ecdb708c67f9a0cec56ce48952a54556>.
-
-From b98f79f6ecdb708c67f9a0cec56ce48952a54556 Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg <daniel@haxx.se>
-Date: Fri, 18 Jun 2021 14:54:07 +0200
-Subject: [PATCH] gnutls: set the prefer ciphers in correct order
-
-Reported-by: civodul on github
-Assisted-by: Nikos Mavrogiannopoulos
-Fixes #7277
----
- lib/vtls/gtls.c | 30 +++++++++++++-----------------
- 1 file changed, 13 insertions(+), 17 deletions(-)
-
-diff --git a/lib/vtls/gtls.c b/lib/vtls/gtls.c
-index d9bc5611e8f9..da2af64955c3 100644
---- a/lib/vtls/gtls.c
-+++ b/lib/vtls/gtls.c
-@@ -330,6 +330,9 @@ set_ssl_version_min_max(struct Curl_easy *data,
-       ssl_version_max = CURL_SSLVERSION_MAX_TLSv1_2;
-     }
-   }
-+  else if(ssl_version_max == CURL_SSLVERSION_MAX_DEFAULT) {
-+    ssl_version_max = CURL_SSLVERSION_MAX_TLSv1_3;
-+  }
- 
-   switch(ssl_version | ssl_version_max) {
-   case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_TLSv1_0:
-@@ -338,11 +341,11 @@ set_ssl_version_min_max(struct Curl_easy *data,
-     return CURLE_OK;
-   case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_TLSv1_1:
-     *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
--      "+VERS-TLS1.0:+VERS-TLS1.1";
-+      "+VERS-TLS1.1:+VERS-TLS1.0";
-     return CURLE_OK;
-   case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_TLSv1_2:
-     *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
--      "+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2";
-+      "+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0";
-     return CURLE_OK;
-   case CURL_SSLVERSION_TLSv1_1 | CURL_SSLVERSION_MAX_TLSv1_1:
-     *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
-@@ -350,7 +353,7 @@ set_ssl_version_min_max(struct Curl_easy *data,
-     return CURLE_OK;
-   case CURL_SSLVERSION_TLSv1_1 | CURL_SSLVERSION_MAX_TLSv1_2:
-     *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
--      "+VERS-TLS1.1:+VERS-TLS1.2";
-+      "+VERS-TLS1.2:+VERS-TLS1.1";
-     return CURLE_OK;
-   case CURL_SSLVERSION_TLSv1_2 | CURL_SSLVERSION_MAX_TLSv1_2:
-     *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
-@@ -360,25 +363,17 @@ set_ssl_version_min_max(struct Curl_easy *data,
-     *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
-       "+VERS-TLS1.3";
-     return CURLE_OK;
--  case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_DEFAULT:
--    *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
--      "+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2"
--      ":+VERS-TLS1.3";
-+  case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_TLSv1_3:
-+    *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0";
-     return CURLE_OK;
--  case CURL_SSLVERSION_TLSv1_1 | CURL_SSLVERSION_MAX_DEFAULT:
-+  case CURL_SSLVERSION_TLSv1_1 | CURL_SSLVERSION_MAX_TLSv1_3:
-     *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
--      "+VERS-TLS1.1:+VERS-TLS1.2"
--      ":+VERS-TLS1.3";
-+      "+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1";
-     return CURLE_OK;
--  case CURL_SSLVERSION_TLSv1_2 | CURL_SSLVERSION_MAX_DEFAULT:
-+  case CURL_SSLVERSION_TLSv1_2 | CURL_SSLVERSION_MAX_TLSv1_3:
-     *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
--      "+VERS-TLS1.2"
--      ":+VERS-TLS1.3";
-+      "+VERS-TLS1.3:+VERS-TLS1.2";
-     return CURLE_OK;
--  case CURL_SSLVERSION_TLSv1_3 | CURL_SSLVERSION_MAX_DEFAULT:
--    *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
--      "+VERS-TLS1.2"
--      ":+VERS-TLS1.3";
-     return CURLE_OK;
-   }
- 
-@@ -608,6 +603,7 @@ gtls_connect_step1(struct Curl_easy *data,
-   }
-   else {
- #endif
-+    infof(data, "GnuTLS ciphers: %s\n", prioritylist);
-     rc = gnutls_priority_set_direct(session, prioritylist, &err);
- #ifdef HAVE_GNUTLS_SRP
-   }
diff --git a/gnu/packages/patches/diffoscope-fix-llvm-test.patch b/gnu/packages/patches/diffoscope-fix-llvm-test.patch
new file mode 100644
index 0000000000..45e496a128
--- /dev/null
+++ b/gnu/packages/patches/diffoscope-fix-llvm-test.patch
@@ -0,0 +1,28 @@
+From b7eeac09eb068083bdee1a3aa062d1e52a2fa61a Mon Sep 17 00:00:00 2001
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Mon, 4 Oct 2021 21:03:43 +0200
+Subject: [PATCH] gnu: diffoscope: Fix test_item3_deflate_llvm_bitcode.
+
+Taken verbatim from Nixpkgs[0].
+
+[0]: https://github.com/NixOS/nixpkgs/blob/589e03f109092a3ba97781fd0533110bf78a3f97/pkgs/tools/misc/diffoscope/fix-tests.patch
+---
+ tests/comparators/test_rlib.py | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/tests/comparators/test_rlib.py b/tests/comparators/test_rlib.py
+index 8d201ab..05960aa 100644
+--- a/tests/comparators/test_rlib.py
++++ b/tests/comparators/test_rlib.py
+@@ -81,9 +81,6 @@ def rlib_dis_expected_diff():
+     if actual_ver >= "7.0":
+         diff_file = "rlib_llvm_dis_expected_diff_7"
+ 
+-    if actual_ver >= "10.0":
+-        diff_file = "rlib_llvm_dis_expected_diff_10"
+-
+     return get_data(diff_file)
+ 
+ 
+--
+2.33.0
diff --git a/gnu/packages/patches/diffutils-fix-signal-processing.patch b/gnu/packages/patches/diffutils-fix-signal-processing.patch
new file mode 100644
index 0000000000..134dd3f718
--- /dev/null
+++ b/gnu/packages/patches/diffutils-fix-signal-processing.patch
@@ -0,0 +1,58 @@
+Author: Frédéric Bonnard <frediz@debian.org>
+
+Obtained from:
+
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=922552#19
+
+Fixes bug reported upstream at:
+
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=34519
+
+diff --git a/src/diff.c b/src/diff.c
+index e2eb32437353..b574e8282dc9 100644
+--- a/src/diff.c
++++ b/src/diff.c
+@@ -1451,6 +1451,8 @@ compare_files (struct comparison const *parent,
+ 	}
+     }
+ 
++  final_process_signals ();
++
+   /* Now the comparison has been done, if no error prevented it,
+      and STATUS is the value this function will return.  */
+ 
+diff --git a/src/diff.h b/src/diff.h
+index 03daaa4a0530..e177fe600a25 100644
+--- a/src/diff.h
++++ b/src/diff.h
+@@ -390,6 +390,7 @@ extern enum changes analyze_hunk (struct change *, lin *, lin *, lin *, lin *);
+ extern void begin_output (void);
+ extern void debug_script (struct change *);
+ extern void fatal (char const *) __attribute__((noreturn));
++extern void final_process_signals (void);
+ extern void finish_output (void);
+ extern void message (char const *, char const *, char const *);
+ extern void message5 (char const *, char const *, char const *,
+diff --git a/src/util.c b/src/util.c
+index 4f4d9bb285eb..56d292de2927 100644
+--- a/src/util.c
++++ b/src/util.c
+@@ -237,6 +237,18 @@ process_signals (void)
+     }
+ }
+ 
++/* Process remaining signals once before exit  */
++void
++final_process_signals (void)
++{
++  static int last = 1;
++
++  if (last) {
++    process_signals ();
++    last = 0;
++  }
++}
++
+ static void
+ install_signal_handlers (void)
+ {
diff --git a/gnu/packages/patches/diffutils-gets-undeclared.patch b/gnu/packages/patches/diffutils-gets-undeclared.patch
deleted file mode 100644
index b6cdc77caa..0000000000
--- a/gnu/packages/patches/diffutils-gets-undeclared.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-This patch is needed to allow builds with newer versions of
-the GNU libc (2.16+).
-
-
-commit 66712c23388e93e5c518ebc8515140fa0c807348
-Author: Eric Blake <eblake@redhat.com>
-Date:   Thu Mar 29 13:30:41 2012 -0600
-
-    stdio: don't assume gets any more
-    
-    Gnulib intentionally does not have a gets module, and now that C11
-    and glibc have dropped it, we should be more proactive about warning
-    any user on a platform that still has a declaration of this dangerous
-    interface.
-    
-    * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets
-    support.
-    * modules/stdio (Makefile.am): Likewise.
-    * lib/stdio-read.c (gets): Likewise.
-    * tests/test-stdio-c++.cc: Likewise.
-    * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment.
-    * lib/stdio.in.h (gets): Make warning occur in more places.
-    * doc/posix-functions/gets.texi (gets): Update documentation.
-    Reported by Christer Solskogen.
-    
-    Signed-off-by: Eric Blake <eblake@redhat.com>
-
-diff --git a/lib/stdio.in.h b/lib/stdio.in.h
-index aa7b599..c377b6e 100644
---- a/lib/stdio.in.h
-+++ b/lib/stdio.in.h
-@@ -698,22 +698,11 @@ _GL_WARN_ON_USE (getline, "getline is unportable - "
- # endif
- #endif
- 
--#if @GNULIB_GETS@
--# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
--#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
--#   undef gets
--#   define gets rpl_gets
--#  endif
--_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1)));
--_GL_CXXALIAS_RPL (gets, char *, (char *s));
--# else
--_GL_CXXALIAS_SYS (gets, char *, (char *s));
--#  undef gets
--# endif
--_GL_CXXALIASWARN (gets);
- /* It is very rare that the developer ever has full control of stdin,
--   so any use of gets warrants an unconditional warning.  Assume it is
--   always declared, since it is required by C89.  */
-+   so any use of gets warrants an unconditional warning; besides, C11
-+   removed it.  */
-+#undef gets
-+#if HAVE_RAW_DECL_GETS
- _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
- #endif
- 
-@@ -1053,9 +1042,9 @@ _GL_WARN_ON_USE (snprintf, "snprintf is unportable - "
- # endif
- #endif
- 
--/* Some people would argue that sprintf should be handled like gets
--   (for example, OpenBSD issues a link warning for both functions),
--   since both can cause security holes due to buffer overruns.
-+/* Some people would argue that all sprintf uses should be warned about
-+   (for example, OpenBSD issues a link warning for it),
-+   since it can cause security holes due to buffer overruns.
-    However, we believe that sprintf can be used safely, and is more
-    efficient than snprintf in those safe cases; and as proof of our
-    belief, we use sprintf in several gnulib modules.  So this header
diff --git a/gnu/packages/patches/disarchive-cross-compilation.patch b/gnu/packages/patches/disarchive-cross-compilation.patch
deleted file mode 100644
index 8061262168..0000000000
--- a/gnu/packages/patches/disarchive-cross-compilation.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From dc0f8f8bf8608c39da32e3c8ca1484b766fc7452 Mon Sep 17 00:00:00 2001
-From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-Date: Mon, 17 May 2021 16:47:19 -0400
-Subject: [PATCH] build: Fix cross-compilation.
-
-The cross-compilation issues corrected by this change were discovered
-when attempting to cross-compile disarchive for the i586-gnu target on
-GNU Guix.
-
-* configure.ac [O_NOFOLLOW]: Rewrite test using AC_COMPUTE_INT, which
-is supported even when cross-compiling.
-(GUILD_TARGET_OPTION): New computed variable.
-* build-aux/guile.am ($(AM_V_GUILEC)GUILE_AUTO_COMPILE): Use it.
----
- build-aux/guile.am |  6 +++---
- configure.ac       | 24 +++++++++++++++---------
- 2 files changed, 18 insertions(+), 12 deletions(-)
-
-diff --git a/build-aux/guile.am b/build-aux/guile.am
-index bec04ea..7745125 100644
---- a/build-aux/guile.am
-+++ b/build-aux/guile.am
-@@ -54,7 +54,7 @@ AM_V_GUILEC_0 = @echo "  GUILEC" $@;
- SUFFIXES = .scm .go
- 
- .scm.go:
--	$(AM_V_GUILEC)GUILE_AUTO_COMPILE=0      \
--	$(top_builddir)/pre-inst-env            \
--	$(GUILD) compile $(GUILE_WARNINGS)      \
-+	$(AM_V_GUILEC)GUILE_AUTO_COMPILE=0                              \
-+	$(top_builddir)/pre-inst-env                                    \
-+	$(GUILD) compile $(GUILE_WARNINGS) $(GUILD_TARGET_OPTION)       \
- 	         -o "$@" "$<"
-diff --git a/configure.ac b/configure.ac
-index 99c5ac5..0cd0173 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -39,21 +39,27 @@ AS_IF([test "x$GUILD" = "x"],
-     [AC_MSG_ERROR(m4_normalize([
-       'guild' binary not found; please check your Guile installation.]))])])
- 
-+dnl This argument is passed to guild; it ensures cross-compiling uses
-+dnl the right target.
-+if test -n "$host_alias"; then
-+   AC_SUBST([GUILD_TARGET_OPTION], [--target=$host_alias])
-+fi
-+
- GUILE_MODULE_REQUIRED(gcrypt hash)
- 
- dnl Guile defines a handful of values from <fcntl.h>, but it is
- dnl missing O_NOFOLLOW.
- AC_ARG_VAR([O_NOFOLLOW], [value to use for O_NOFOLLOW (cf. <fcntl.h>)])
- AS_IF([test "x$O_NOFOLLOW" = "x"],
--  [AC_MSG_CHECKING([the value of O_NOFOLLOW])
--   AC_RUN_IFELSE([AC_LANG_PROGRAM([[
--       #include <fcntl.h>
--       #include <stdio.h>
--     ]], [[
--       printf("%d\n", O_NOFOLLOW)
--     ]])],
--     [O_NOFOLLOW=`./conftest$EXEEXT`],
--     [AC_MSG_FAILURE([could find value for O_NOFOLLOW])])])
-+  [AC_MSG_CHECKING([the value of O_NOFOLLOW])]
-+  [AC_COMPUTE_INT([O_NOFOLLOW],
-+      [O_NOFOLLOW],
-+      [[
-+        #include <fcntl.h>
-+        #include <stdio.h>
-+      ]],
-+      [AC_MSG_FAILURE([could find value for O_NOFOLLOW])])]
-+  [AC_MSG_RESULT([$O_NOFOLLOW])])
- 
- AC_ARG_VAR([TAR], [tar utility])
- AS_IF([test "x$TAR" = "x"], [AC_PATH_PROG([TAR], [tar])])
--- 
-2.31.1
-
diff --git a/gnu/packages/patches/dynaconf-unvendor-deps.patch b/gnu/packages/patches/dynaconf-unvendor-deps.patch
new file mode 100644
index 0000000000..550e311363
--- /dev/null
+++ b/gnu/packages/patches/dynaconf-unvendor-deps.patch
@@ -0,0 +1,179 @@
+From 3f7b48195500cbbbbecd3cac2f5308c64004479b Mon Sep 17 00:00:00 2001
+From: Giacomo Leidi <goodoldpaul@autistici.org>
+Date: Sun, 29 Aug 2021 23:39:27 +0200
+Subject: [PATCH] Use system site dependencies.
+
+Box was not unvendored because it appears to be heavily patched.
+---
+ dynaconf/cli.py                       | 4 ++--
+ dynaconf/default_settings.py          | 2 +-
+ dynaconf/loaders/env_loader.py        | 2 +-
+ dynaconf/loaders/toml_loader.py       | 2 +-
+ dynaconf/loaders/yaml_loader.py       | 2 +-
+ dynaconf/utils/parse_conf.py          | 2 +-
+ dynaconf/vendor/box/converters.py     | 4 ++--
+ dynaconf/vendor/box/from_file.py      | 4 ++--
+ dynaconf/vendor_src/box/converters.py | 4 ++--
+ dynaconf/vendor_src/box/from_file.py  | 4 ++--
+ tests/test_cli.py                     | 2 +-
+ 11 files changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/dynaconf/cli.py b/dynaconf/cli.py
+index 5bb8316..1341a95 100644
+--- a/dynaconf/cli.py
++++ b/dynaconf/cli.py
+@@ -20,8 +20,8 @@ from dynaconf.utils.functional import empty
+ from dynaconf.utils.parse_conf import parse_conf_data
+ from dynaconf.validator import ValidationError
+ from dynaconf.validator import Validator
+-from dynaconf.vendor import click
+-from dynaconf.vendor import toml
++import click
++import toml
+ 
+ 
+ CWD = Path.cwd()
+diff --git a/dynaconf/default_settings.py b/dynaconf/default_settings.py
+index 66601b0..9605fc5 100644
+--- a/dynaconf/default_settings.py
++++ b/dynaconf/default_settings.py
+@@ -8,7 +8,7 @@ from dynaconf.utils import upperfy
+ from dynaconf.utils import warn_deprecations
+ from dynaconf.utils.files import find_file
+ from dynaconf.utils.parse_conf import parse_conf_data
+-from dynaconf.vendor.dotenv import load_dotenv
++from dotenv import load_dotenv
+ 
+ 
+ def try_renamed(key, value, older_key, current_key):
+diff --git a/dynaconf/loaders/env_loader.py b/dynaconf/loaders/env_loader.py
+index e7b13bd..b034c8a 100644
+--- a/dynaconf/loaders/env_loader.py
++++ b/dynaconf/loaders/env_loader.py
+@@ -2,7 +2,7 @@ from os import environ
+ 
+ from dynaconf.utils import upperfy
+ from dynaconf.utils.parse_conf import parse_conf_data
+-from dynaconf.vendor.dotenv import cli as dotenv_cli
++from dotenv import cli as dotenv_cli
+ 
+ 
+ IDENTIFIER = "env"
+diff --git a/dynaconf/loaders/toml_loader.py b/dynaconf/loaders/toml_loader.py
+index 07b973f..d81d675 100644
+--- a/dynaconf/loaders/toml_loader.py
++++ b/dynaconf/loaders/toml_loader.py
+@@ -5,7 +5,7 @@ from dynaconf import default_settings
+ from dynaconf.constants import TOML_EXTENSIONS
+ from dynaconf.loaders.base import BaseLoader
+ from dynaconf.utils import object_merge
+-from dynaconf.vendor import toml
++import toml
+ 
+ 
+ def load(obj, env=None, silent=True, key=None, filename=None):
+diff --git a/dynaconf/loaders/yaml_loader.py b/dynaconf/loaders/yaml_loader.py
+index 33c6532..3ef419a 100644
+--- a/dynaconf/loaders/yaml_loader.py
++++ b/dynaconf/loaders/yaml_loader.py
+@@ -7,7 +7,7 @@ from dynaconf.constants import YAML_EXTENSIONS
+ from dynaconf.loaders.base import BaseLoader
+ from dynaconf.utils import object_merge
+ from dynaconf.utils.parse_conf import try_to_encode
+-from dynaconf.vendor.ruamel import yaml
++from ruamel import yaml
+ 
+ # Add support for Dynaconf Lazy values to YAML dumper
+ yaml.SafeDumper.yaml_representers[
+diff --git a/dynaconf/utils/parse_conf.py b/dynaconf/utils/parse_conf.py
+index c42b07a..01ccdae 100644
+--- a/dynaconf/utils/parse_conf.py
++++ b/dynaconf/utils/parse_conf.py
+@@ -9,7 +9,7 @@ from dynaconf.utils import isnamedtupleinstance
+ from dynaconf.utils import multi_replace
+ from dynaconf.utils import recursively_evaluate_lazy_format
+ from dynaconf.utils.boxing import DynaBox
+-from dynaconf.vendor import toml
++import toml
+ 
+ try:
+     from jinja2 import Environment
+diff --git a/dynaconf/vendor/box/converters.py b/dynaconf/vendor/box/converters.py
+index 93cdcfb..e34c7dc 100644
+--- a/dynaconf/vendor/box/converters.py
++++ b/dynaconf/vendor/box/converters.py
+@@ -7,9 +7,9 @@ _B='utf-8'
+ _A=None
+ import csv,json,sys,warnings
+ from pathlib import Path
+-import dynaconf.vendor.ruamel.yaml as yaml
++import ruamel.yaml as yaml
+ from dynaconf.vendor.box.exceptions import BoxError,BoxWarning
+-from dynaconf.vendor import toml
++import toml
+ BOX_PARAMETERS='default_box','default_box_attr','conversion_box','frozen_box','camel_killer_box','box_safe_prefix','box_duplicates','ordered_box','default_box_none_transform','box_dots','modify_tuples_box','box_intact_types','box_recast'
+ def _exists(filename,create=_E):
+ 	A=filename;B=Path(A)
+diff --git a/dynaconf/vendor/box/from_file.py b/dynaconf/vendor/box/from_file.py
+index daa1137..d75940b 100644
+--- a/dynaconf/vendor/box/from_file.py
++++ b/dynaconf/vendor/box/from_file.py
+@@ -1,8 +1,8 @@
+ from json import JSONDecodeError
+ from pathlib import Path
+ from typing import Union
+-from dynaconf.vendor.toml import TomlDecodeError
+-from dynaconf.vendor.ruamel.yaml import YAMLError
++from toml import TomlDecodeError
++from ruamel.yaml import YAMLError
+ from .exceptions import BoxError
+ from .box import Box
+ from .box_list import BoxList
+diff --git a/dynaconf/vendor_src/box/converters.py b/dynaconf/vendor_src/box/converters.py
+index c9a2293..ae42bf6 100644
+--- a/dynaconf/vendor_src/box/converters.py
++++ b/dynaconf/vendor_src/box/converters.py
+@@ -9,9 +9,9 @@ import sys
+ import warnings
+ from pathlib import Path
+ 
+-import dynaconf.vendor.ruamel.yaml as yaml
++import ruamel.yaml as yaml
+ from dynaconf.vendor.box.exceptions import BoxError, BoxWarning
+-from dynaconf.vendor import toml
++import toml
+ 
+ 
+ BOX_PARAMETERS = ('default_box', 'default_box_attr', 'conversion_box',
+diff --git a/dynaconf/vendor_src/box/from_file.py b/dynaconf/vendor_src/box/from_file.py
+index 2e2a6ad..3f76819 100644
+--- a/dynaconf/vendor_src/box/from_file.py
++++ b/dynaconf/vendor_src/box/from_file.py
+@@ -3,8 +3,8 @@
+ from json import JSONDecodeError
+ from pathlib import Path
+ from typing import Union
+-from dynaconf.vendor.toml import TomlDecodeError
+-from dynaconf.vendor.ruamel.yaml import YAMLError
++from toml import TomlDecodeError
++from ruamel.yaml import YAMLError
+ 
+ 
+ from .exceptions import BoxError
+diff --git a/tests/test_cli.py b/tests/test_cli.py
+index 6693701..df44409 100644
+--- a/tests/test_cli.py
++++ b/tests/test_cli.py
+@@ -11,7 +11,7 @@ from dynaconf.cli import main
+ from dynaconf.cli import read_file_in_root_directory
+ from dynaconf.cli import WRITERS
+ from dynaconf.utils.files import read_file
+-from dynaconf.vendor.click.testing import CliRunner
++from click.testing import CliRunner
+ 
+ 
+ runner = CliRunner()
+
+base-commit: ebf7b17cffd5e08b212948bd8036d580718d5bf8
+-- 
+2.32.0
diff --git a/gnu/packages/patches/elogind-revert-polkit-detection.patch b/gnu/packages/patches/elogind-revert-polkit-detection.patch
new file mode 100644
index 0000000000..43dd1684b6
--- /dev/null
+++ b/gnu/packages/patches/elogind-revert-polkit-detection.patch
@@ -0,0 +1,41 @@
+From 715ce0a6459e418f92e74c7ce52df3244c18f383 Mon Sep 17 00:00:00 2001
+From: Sven Eden <sven.eden@prydeworx.com>
+Date: Mon, 8 Mar 2021 08:40:08 +0100
+Subject: [PATCH] Revert "Disable polkit support if libpolkit is not installed"
+
+This reverts commit 1194dec4f8f2d1b8bd14e1625f34418ecfce817e.
+
+Removing polkit support with -Dpolkit=auto when libpolkit is not
+installed, removes the whole interface. This makes it impossible to
+add polkit support as a runtime dependency.
+
+Bug: #167
+Closes: #206
+Signed-off-by: Sven Eden <sven.eden@prydeworx.com>
+---
+ meson.build | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 2dd05db3c..f38551f55 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1157,15 +1157,6 @@ if want_polkit != 'false' and not skip_deps
+                 message('Old polkit detected, will install pkla files')
+                 install_polkit_pkla = true
+         endif
+-#if 1 /// Disable polkit completely if libpolkit is not there. See elogind issue #167
+-        if not libpolkit.found()
+-                if want_polkit != 'auto'
+-                        error('Polkit requested but libpolkit was not found.')
+-                endif
+-                install_polkit = false
+-                want_polkit    = false
+-        endif
+-#endif // 1
+ endif
+ conf.set10('ENABLE_POLKIT', install_polkit)
+ 
+-- 
+2.33.1
+
diff --git a/gnu/packages/patches/emacs-exwm-fix-fullscreen-states.patch b/gnu/packages/patches/emacs-exwm-fix-fullscreen-states.patch
deleted file mode 100644
index 6d31021f67..0000000000
--- a/gnu/packages/patches/emacs-exwm-fix-fullscreen-states.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From edb930005b0ba83051ca8a59b493e9a3c8ef580a Mon Sep 17 00:00:00 2001
-From: Chris Feng <chris.w.feng@gmail.com>
-Date: Sun, 14 Jun 2020 00:00:00 +0000
-Subject: [PATCH] Fix fullscreen states
-
-* exwm-layout.el (exwm-layout-set-fullscreen,
-exwm-layout-unset-fullscreen): Use `exwm--id' for interactive use.
-(exwm-layout-unset-fullscreen): Mandatorily clear fullscreen states.
----
- exwm-layout.el | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/exwm-layout.el b/exwm-layout.el
-index 170c2be..79d0c95 100644
---- a/exwm-layout.el
-+++ b/exwm-layout.el
-@@ -205,7 +205,7 @@
-                        :border-width 0
-                        :stack-mode xcb:StackMode:Above))
-     (cl-pushnew xcb:Atom:_NET_WM_STATE_FULLSCREEN exwm--ewmh-state)
--    (exwm-layout--set-ewmh-state id)
-+    (exwm-layout--set-ewmh-state exwm--id)
-     (xcb:flush exwm--connection)
-     (set-window-dedicated-p (get-buffer-window) t)
-     (exwm-input--release-keyboard exwm--id)))
-@@ -233,7 +233,9 @@
-       (let ((window (get-buffer-window nil t)))
-         (when window
-           (exwm-layout--show exwm--id window))))
--    (exwm-layout--set-ewmh-state id)
-+    (setq exwm--ewmh-state
-+          (delq xcb:Atom:_NET_WM_STATE_FULLSCREEN exwm--ewmh-state))
-+    (exwm-layout--set-ewmh-state exwm--id)
-     (xcb:flush exwm--connection)
-     (set-window-dedicated-p (get-buffer-window) nil)
-     (when (eq 'line-mode exwm--selected-input-mode)
--- 
-2.26.2
-
diff --git a/gnu/packages/patches/emacs-telega-path-placeholder.patch b/gnu/packages/patches/emacs-telega-path-placeholder.patch
index c20be36712..5829edd22a 100644
--- a/gnu/packages/patches/emacs-telega-path-placeholder.patch
+++ b/gnu/packages/patches/emacs-telega-path-placeholder.patch
@@ -1,36 +1,31 @@
-From 865b8c553722a971c68742c2e849e41eb0e2360c Mon Sep 17 00:00:00 2001
-From: Zhu Zihao <all_but_last@163.com>
-Date: Thu, 24 Jun 2021 23:43:50 +0800
-Subject: [PATCH] Replace code that search path with placeholder for
- configuration.
+From bf95de21faa623e48bca00d6a2c9b33ab2c5d812 Mon Sep 17 00:00:00 2001
+From: Andrew Tropin <andrew@trop.in>
+Date: Wed, 8 Dec 2021 11:01:31 +0300
+Subject: [PATCH] Use absolute path for telega-server-command.
 
 ---
- telega-server.el | 6 +-----
- telega-util.el   | 2 +-
- 2 files changed, 2 insertions(+), 6 deletions(-)
+ telega-customize.el | 2 +-
+ telega-util.el      | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/telega-server.el b/telega-server.el
-index 999125d..0fa0817 100644
---- a/telega-server.el
-+++ b/telega-server.el
-@@ -142,11 +142,7 @@ Otherwise query user about building flags."
- (defun telega-server--find-bin ()
-   "Find telega-server executable.
- Raise error if not found."
--  (let ((exec-path (cons telega-directory exec-path)))
--    (or (executable-find "telega-server")
--        (progn (telega-server-build)
--               (executable-find "telega-server"))
--        (error "`telega-server' not found in exec-path"))))
-+  "@TELEGA_SERVER_BIN@")
+diff --git a/telega-customize.el b/telega-customize.el
+index 0af343f..cc2938c 100644
+--- a/telega-customize.el
++++ b/telega-customize.el
+@@ -591,7 +591,7 @@ In range [1..3].  Use 1."
+   :prefix "telega-server-"
+   :group 'telega)
  
- (defun telega-server-version ()
-   "Return telega-server version."
+-(defcustom telega-server-command "telega-server"
++(defcustom telega-server-command "@TELEGA_SERVER_BIN@"
+   "Command to run as telega server.
+ It should be absolute path or binary file searchable in `exec-path'."
+   :type 'string
 diff --git a/telega-util.el b/telega-util.el
-index 73a46b1..f53e20a 100644
+index 6340c27..01e3cb7 100644
 --- a/telega-util.el
 +++ b/telega-util.el
-@@ -464,7 +464,7 @@ N can't be 0."
+@@ -587,7 +587,7 @@ N can't be 0."
  
  (defun telega-etc-file (filename)
    "Return absolute path to FILENAME from etc/ directory in telega."
@@ -40,5 +35,5 @@ index 73a46b1..f53e20a 100644
  (defun telega-link-props (link-type link-to &optional face)
    "Generate props for link button openable with `telega-link--button-action'."
 -- 
-2.32.0
+2.34.0
 
diff --git a/gnu/packages/patches/emacs-telega-test-env.patch b/gnu/packages/patches/emacs-telega-test-env.patch
index 75fe2e12fc..c6b02be6ff 100644
--- a/gnu/packages/patches/emacs-telega-test-env.patch
+++ b/gnu/packages/patches/emacs-telega-test-env.patch
@@ -1,14 +1,24 @@
-Test Emacs environment on startup.
+From 237ea2471bb6521390bbac174ac2a8a5e9683e4d Mon Sep 17 00:00:00 2001
+From: Andrew Tropin <andrew@trop.in>
+Date: Tue, 7 Dec 2021 16:20:38 +0300
+Subject: [PATCH] Test Emacs environment on startup.
 
-Patch by Diego N. Barbato
+---
+ telega.el | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
---- a/telega.el	2020-02-07 17:07:18.549970090 +0100
-+++ b/telega.el	2020-02-07 17:10:08.383499765 +0100
-@@ -82,6 +82,7 @@
-   "Start telegramming.
- If prefix ARG is given, then will not pop to telega root buffer."
+diff --git a/telega.el b/telega.el
+index d6b28b5..40854ec 100644
+--- a/telega.el
++++ b/telega.el
+@@ -181,7 +181,7 @@ can't write to `telega-server-logfile'" logfile-dir)))
+ Pop to root buffer.
+ If `\\[universal-argument]' is specified, then do not pop to root buffer."
    (interactive "P")
+-
 +  (telega-test-env t)
-   (telega--create-hier)
- 
-   (unless (telega-server-live-p)
+   ;; For multiple accounts setup possibly select (if there is no
+   ;; default account declared) an account to use
+   (if (and telega-accounts (not (telega-account-current)))
+-- 
+2.34.0
diff --git a/gnu/packages/patches/evolution-CVE-2020-11879.patch b/gnu/packages/patches/evolution-CVE-2020-11879.patch
deleted file mode 100644
index 8c85895aab..0000000000
--- a/gnu/packages/patches/evolution-CVE-2020-11879.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From 6489f20d6905cc797e2b2581c415e558c457caa7 Mon Sep 17 00:00:00 2001
-From: Milan Crha <mcrha@redhat.com>
-Date: Wed, 12 Feb 2020 18:59:52 +0100
-Subject: [PATCH] I#784 - Warn about and limit what can be attached using
- mailto: URI
-
-Closes https://gitlab.gnome.org/GNOME/evolution/issues/784
----
- src/composer/e-msg-composer.c | 58 +++++++++++++++++++++++++++++------
- src/e-util/e-system.error.xml |  7 ++++-
- 2 files changed, 54 insertions(+), 11 deletions(-)
-
-diff --git a/src/composer/e-msg-composer.c b/src/composer/e-msg-composer.c
-index e4c9ac095e..cd3168d882 100644
---- a/src/composer/e-msg-composer.c
-+++ b/src/composer/e-msg-composer.c
-@@ -4761,7 +4761,8 @@ handle_mailto (EMsgComposer *composer,
- 	gchar *header, *content, *buf;
- 	gsize nread, nwritten;
- 	const gchar *p;
--	gint len, clen;
-+	gint len, clen, has_attachments = 0;
-+	gboolean has_blacklisted_attachment = FALSE;
- 
- 	table = e_msg_composer_get_header_table (composer);
- 	view = e_msg_composer_get_attachment_view (composer);
-@@ -4844,22 +4845,36 @@ handle_mailto (EMsgComposer *composer,
- 			} else if (!g_ascii_strcasecmp (header, "attach") ||
- 				   !g_ascii_strcasecmp (header, "attachment")) {
- 				EAttachment *attachment;
-+				GFile *file;
- 
- 				camel_url_decode (content);
--				if (file_is_blacklisted (content))
--					e_alert_submit (
--						E_ALERT_SINK (e_msg_composer_get_editor (composer)),
--						"mail:blacklisted-file",
--						content, NULL);
- 				if (g_ascii_strncasecmp (content, "file:", 5) == 0)
- 					attachment = e_attachment_new_for_uri (content);
- 				else
- 					attachment = e_attachment_new_for_path (content);
--				e_attachment_store_add_attachment (store, attachment);
--				e_attachment_load_async (
--					attachment, (GAsyncReadyCallback)
--					e_attachment_load_handle_error, composer);
-+				file = e_attachment_ref_file (attachment);
-+				if (!file || !g_file_peek_path (file) ||
-+				    !g_file_test (g_file_peek_path (file), G_FILE_TEST_EXISTS) ||
-+				    g_file_test (g_file_peek_path (file), G_FILE_TEST_IS_DIR)) {
-+					/* Do nothing, simply ignore the attachment request */
-+				} else {
-+					has_attachments++;
-+
-+					if (file_is_blacklisted (content)) {
-+						has_blacklisted_attachment = TRUE;
-+						e_alert_submit (
-+							E_ALERT_SINK (e_msg_composer_get_editor (composer)),
-+							"mail:blacklisted-file",
-+							content, NULL);
-+					}
-+
-+					e_attachment_store_add_attachment (store, attachment);
-+					e_attachment_load_async (
-+						attachment, (GAsyncReadyCallback)
-+						e_attachment_load_handle_error, composer);
-+				}
- 				g_object_unref (attachment);
-+				g_clear_object (&file);
- 			} else if (!g_ascii_strcasecmp (header, "from")) {
- 				/* Ignore */
- 			} else if (!g_ascii_strcasecmp (header, "reply-to")) {
-@@ -4883,6 +4898,29 @@ handle_mailto (EMsgComposer *composer,
- 
- 	g_free (buf);
- 
-+	if (has_attachments && !has_blacklisted_attachment) {
-+		const gchar *primary;
-+		gchar *secondary;
-+
-+		primary = g_dngettext (GETTEXT_PACKAGE,
-+			"Review attachment before sending.",
-+			"Review attachments before sending.",
-+			has_attachments);
-+
-+		secondary = g_strdup_printf (g_dngettext (GETTEXT_PACKAGE,
-+			"There had been added %d attachment. Make sure it does not contain any sensitive information before sending the message.",
-+			"There had been added %d attachments. Make sure they do not contain any sensitive information before sending the message.",
-+			has_attachments),
-+			has_attachments);
-+
-+		e_alert_submit (
-+			E_ALERT_SINK (e_msg_composer_get_editor (composer)),
-+			"system:generic-warning",
-+			primary, secondary, NULL);
-+
-+		g_free (secondary);
-+	}
-+
- 	merge_always_cc_and_bcc (table, to, &cc, &bcc);
- 
- 	tov = destination_list_to_vector (to);
-diff --git a/src/e-util/e-system.error.xml b/src/e-util/e-system.error.xml
-index ddcf989fda..02facb7d26 100644
---- a/src/e-util/e-system.error.xml
-+++ b/src/e-util/e-system.error.xml
-@@ -1,6 +1,11 @@
- <?xml version="1.0"?>
- <error-list domain="system">
--  <error type="error" id="generic-error">
-+  <error id="generic-error" type="error">
-+    <primary>{0}</primary>
-+    <secondary>{1}</secondary>
-+  </error>
-+
-+  <error id="generic-warning" type="warning">
-     <primary>{0}</primary>
-     <secondary>{1}</secondary>
-   </error>
--- 
-GitLab
-
diff --git a/gnu/packages/patches/evolution-data-server-CVE-2020-14928.patch b/gnu/packages/patches/evolution-data-server-CVE-2020-14928.patch
deleted file mode 100644
index 421f292c9d..0000000000
--- a/gnu/packages/patches/evolution-data-server-CVE-2020-14928.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From ba82be72cfd427b5d72ff21f929b3a6d8529c4df Mon Sep 17 00:00:00 2001
-From: Milan Crha <mcrha@redhat.com>
-Date: Mon, 22 Jun 2020 13:40:17 +0200
-Subject: [PATCH] I#226 - CVE-2020-14928: Response Injection via STARTTLS in
- SMTP and POP3
-
-Closes https://gitlab.gnome.org/GNOME/evolution-data-server/-/issues/226
----
- src/camel/camel-stream-buffer.c               | 19 +++++++++++++++++++
- src/camel/camel-stream-buffer.h               |  1 +
- src/camel/providers/pop3/camel-pop3-store.c   |  2 ++
- src/camel/providers/pop3/camel-pop3-stream.c  | 11 +++++++++++
- src/camel/providers/pop3/camel-pop3-stream.h  |  1 +
- .../providers/smtp/camel-smtp-transport.c     |  2 ++
- 6 files changed, 36 insertions(+)
-
-diff --git a/src/camel/camel-stream-buffer.c b/src/camel/camel-stream-buffer.c
-index 3e2e0dd36..a6f605ae5 100644
---- a/src/camel/camel-stream-buffer.c
-+++ b/src/camel/camel-stream-buffer.c
-@@ -518,3 +518,22 @@ camel_stream_buffer_read_line (CamelStreamBuffer *sbf,
- 
- 	return g_strdup ((gchar *) sbf->priv->linebuf);
- }
-+
-+/**
-+ * camel_stream_buffer_discard_cache:
-+ * @sbf: a #CamelStreamBuffer
-+ *
-+ * Discards any cached data in the @sbf. The next read reads
-+ * from the stream.
-+ *
-+ * Since: 3.38
-+ **/
-+void
-+camel_stream_buffer_discard_cache (CamelStreamBuffer *sbf)
-+{
-+	g_return_if_fail (CAMEL_IS_STREAM_BUFFER (sbf));
-+
-+	sbf->priv->ptr = sbf->priv->buf;
-+	sbf->priv->end = sbf->priv->buf;
-+	sbf->priv->ptr[0] = '\0';
-+}
-diff --git a/src/camel/camel-stream-buffer.h b/src/camel/camel-stream-buffer.h
-index ef92cfd8e..094e9926b 100644
---- a/src/camel/camel-stream-buffer.h
-+++ b/src/camel/camel-stream-buffer.h
-@@ -93,6 +93,7 @@ gint		camel_stream_buffer_gets	(CamelStreamBuffer *sbf,
- gchar *		camel_stream_buffer_read_line	(CamelStreamBuffer *sbf,
- 						 GCancellable *cancellable,
- 						 GError **error);
-+void		camel_stream_buffer_discard_cache	(CamelStreamBuffer *sbf);
- 
- G_END_DECLS
- 
-diff --git a/src/camel/providers/pop3/camel-pop3-store.c b/src/camel/providers/pop3/camel-pop3-store.c
-index 81c370f0a..5c9eb1eaa 100644
---- a/src/camel/providers/pop3/camel-pop3-store.c
-+++ b/src/camel/providers/pop3/camel-pop3-store.c
-@@ -205,6 +205,8 @@ connect_to_server (CamelService *service,
- 
- 	if (tls_stream != NULL) {
- 		camel_stream_set_base_stream (stream, tls_stream);
-+		/* Truncate any left cached input from the insecure part of the session */
-+		camel_pop3_stream_discard_cache (pop3_engine->stream);
- 		g_object_unref (tls_stream);
- 	} else {
- 		g_prefix_error (
-diff --git a/src/camel/providers/pop3/camel-pop3-stream.c b/src/camel/providers/pop3/camel-pop3-stream.c
-index 74bb11e61..c485b9bd6 100644
---- a/src/camel/providers/pop3/camel-pop3-stream.c
-+++ b/src/camel/providers/pop3/camel-pop3-stream.c
-@@ -457,3 +457,14 @@ camel_pop3_stream_getd (CamelPOP3Stream *is,
- 
- 	return 1;
- }
-+
-+void
-+camel_pop3_stream_discard_cache (CamelPOP3Stream *is)
-+{
-+	if (is) {
-+		is->ptr = is->end = is->buf;
-+		is->lineptr = is->linebuf;
-+		is->lineend = is->linebuf + CAMEL_POP3_STREAM_LINE_SIZE;
-+		is->ptr[0] = '\n';
-+	}
-+}
-diff --git a/src/camel/providers/pop3/camel-pop3-stream.h b/src/camel/providers/pop3/camel-pop3-stream.h
-index bb6dbb903..128c8c45a 100644
---- a/src/camel/providers/pop3/camel-pop3-stream.h
-+++ b/src/camel/providers/pop3/camel-pop3-stream.h
-@@ -87,6 +87,7 @@ gint		camel_pop3_stream_getd		(CamelPOP3Stream *is,
- 						 guint *len,
- 						 GCancellable *cancellable,
- 						 GError **error);
-+void		camel_pop3_stream_discard_cache	(CamelPOP3Stream *is);
- 
- G_END_DECLS
- 
-diff --git a/src/camel/providers/smtp/camel-smtp-transport.c b/src/camel/providers/smtp/camel-smtp-transport.c
-index 035baf367..1fc0f3206 100644
---- a/src/camel/providers/smtp/camel-smtp-transport.c
-+++ b/src/camel/providers/smtp/camel-smtp-transport.c
-@@ -323,6 +323,8 @@ connect_to_server (CamelService *service,
- 
- 	if (tls_stream != NULL) {
- 		camel_stream_set_base_stream (stream, tls_stream);
-+		/* Truncate any left cached input from the insecure part of the session */
-+		camel_stream_buffer_discard_cache (transport->istream);
- 		g_object_unref (tls_stream);
- 	} else {
- 		g_prefix_error (
--- 
-GitLab
-
diff --git a/gnu/packages/patches/evolution-data-server-CVE-2020-16117.patch b/gnu/packages/patches/evolution-data-server-CVE-2020-16117.patch
deleted file mode 100644
index b2c0622a90..0000000000
--- a/gnu/packages/patches/evolution-data-server-CVE-2020-16117.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 2cc39592b532cf0dc994fd3694b8e6bf924c9ab5 Mon Sep 17 00:00:00 2001
-From: Milan Crha <mcrha@redhat.com>
-Date: Mon, 10 Feb 2020 10:00:32 +0100
-Subject: [PATCH] I#189 - Crash on malformed server response with minimal
- capabilities
-
-Closes https://gitlab.gnome.org/GNOME/evolution-data-server/issues/189
----
- src/camel/providers/imapx/camel-imapx-server.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/camel/providers/imapx/camel-imapx-server.c b/src/camel/providers/imapx/camel-imapx-server.c
-index 3c38fb1e9..3883321ec 100644
---- a/src/camel/providers/imapx/camel-imapx-server.c
-+++ b/src/camel/providers/imapx/camel-imapx-server.c
-@@ -3045,7 +3045,8 @@ connected:
- 
- 			/* See if we got new capabilities
- 			 * in the STARTTLS response. */
--			imapx_free_capability (is->priv->cinfo);
-+			if (is->priv->cinfo)
-+				imapx_free_capability (is->priv->cinfo);
- 			is->priv->cinfo = NULL;
- 			if (ic->status->condition == IMAPX_CAPABILITY) {
- 				is->priv->cinfo = ic->status->u.cinfo;
--- 
-GitLab
-
diff --git a/gnu/packages/patches/evolution-data-server-libical-compat.patch b/gnu/packages/patches/evolution-data-server-libical-compat.patch
deleted file mode 100644
index da4302d42e..0000000000
--- a/gnu/packages/patches/evolution-data-server-libical-compat.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Prevent test failure and possible data loss due to API change in libical 3.0.7.
-
-https://gitlab.gnome.org/GNOME/evolution-data-server/issues/185
-https://lists.infradead.org/pipermail/libical-devel/2020-January/000907.html
-
-Adapted from upstream:
-
-https://gitlab.gnome.org/GNOME/evolution-data-server/commit/77384ab552c19bf374dbeda53dc37f98d07bd4ec
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e16b8b225..b3c881967 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -111,7 +111,7 @@ add_definitions(-DSOUP_VERSION_MIN_REQUIRED=${soup_encoded_version})
- 
- set(gcr_minimum_version 3.4)
- set(libgdata_minimum_version 0.15.1)
--set(libical_glib_minimum_version 3.0.5)
-+set(libical_glib_minimum_version 3.0.7)
- set(libsecret_minimum_version 0.5)
- set(libxml_minimum_version 2.0.0)
- set(sqlite_minimum_version 3.7.17)
-diff --git a/src/calendar/libedata-cal/e-cal-meta-backend.c b/src/calendar/libedata-cal/e-cal-meta-backend.c
-index 7501f2a43..93f4806ba 100644
---- a/src/calendar/libedata-cal/e-cal-meta-backend.c
-+++ b/src/calendar/libedata-cal/e-cal-meta-backend.c
-@@ -4067,8 +4067,7 @@ e_cal_meta_backend_inline_local_attachments_sync (ECalMetaBackend *meta_backend,
- 					gchar *base64;
- 
- 					base64 = g_base64_encode ((const guchar *) content, len);
--					new_attach = i_cal_attach_new_from_data (base64, NULL, NULL);
-+					new_attach = i_cal_attach_new_from_data (base64, (GFunc) g_free, NULL);
- 					g_free (content);
--					g_free (base64);
- 
- 					ecmb_remove_all_but_filename_parameter (prop);
diff --git a/gnu/packages/patches/evolution-data-server-locales.patch b/gnu/packages/patches/evolution-data-server-locales.patch
deleted file mode 100644
index 48baefb0d8..0000000000
--- a/gnu/packages/patches/evolution-data-server-locales.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-This patch fixes locale canonicalization when using newer versions of
-ICU.  It comes from the upstream repo, and should appear starting in
-version 3.33.5.
-
-From fe4ac94ce3c14f200e049a5d102fc0e4b811c71e Mon Sep 17 00:00:00 2001
-From: Milan Crha <mcrha@redhat.com>
-Date: Tue, 16 Jul 2019 07:22:07 +0200
-Subject: [PATCH] I#137 - POSIX locale tests fail with ICU 64.x
-
-Closes https://gitlab.gnome.org/GNOME/evolution-data-server/issues/137
----
- src/libedataserver/e-collator.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/src/libedataserver/e-collator.c b/src/libedataserver/e-collator.c
-index 718eac5da..ec2cf7951 100644
---- a/src/libedataserver/e-collator.c
-+++ b/src/libedataserver/e-collator.c
-@@ -132,6 +132,11 @@ canonicalize_locale (const gchar *posix_locale,
- 	gint   len;
- 	const gchar *collation_type = NULL;
- 
-+	if (posix_locale && (
-+	    g_ascii_strcasecmp (posix_locale, "C") == 0 ||
-+	    g_ascii_strcasecmp (posix_locale, "POSIX") == 0))
-+		posix_locale = "en_US_POSIX";
-+
- 	len = uloc_canonicalize (posix_locale, locale_buffer, LOCALE_BUFFER_LEN, &status);
- 
- 	if (U_FAILURE (status)) {
--- 
-2.22.0
-
diff --git a/gnu/packages/patches/evolution-data-server-printableoptions.patch b/gnu/packages/patches/evolution-data-server-printableoptions.patch
deleted file mode 100644
index e40c5f3875..0000000000
--- a/gnu/packages/patches/evolution-data-server-printableoptions.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Patch adapted from upstream c3915bb99638c1ccf57217097b14b5db69bcac96
-by Milan Crha:
-
-    PrintableOptions.cmake: Correct variable name comparison
-    
-    CMake 3.20.1 errors out with:
-    
-    CMake Error at cmake/modules/PrintableOptions.cmake:38 (message):
-       variable name cannot be empty
-     Call Stack (most recent call first):
-       CMakeLists.txt:152 (add_printable_variable)
-    
-    Change how the parameter value is compared, to fix it.
-
---- a/cmake/modules/PrintableOptions.cmake
-+++ b/cmake/modules/PrintableOptions.cmake
-@@ -19,32 +19,32 @@
- #    prints all the build options previously added with the above functions
- 
- macro(add_printable_variable_bare _name)
--	if(_name STREQUAL "")
-+	if("${_name}" STREQUAL "")
- 		message(FATAL_ERROR "variable name cannot be empty")
--	endif(_name STREQUAL "")
-+	endif("${_name}" STREQUAL "")
- 	list(APPEND _printable_options ${_name})
- endmacro()
- 
- macro(add_printable_option _name _description _default_value)
--	if(_name STREQUAL "")
-+	if("${_name}" STREQUAL "")
- 		message(FATAL_ERROR "option name cannot be empty")
--	endif(_name STREQUAL "")
-+	endif("${_name}" STREQUAL "")
- 	option(${_name} ${_description} ${_default_value})
- 	add_printable_variable_bare(${_name})
- endmacro()
- 
- macro(add_printable_variable _name _description _default_value)
--	if(_name STREQUAL "")
-+	if("${_name}" STREQUAL "")
- 		message(FATAL_ERROR "variable name cannot be empty")
--	endif(_name STREQUAL "")
-+	endif("${_name}" STREQUAL "")
- 	set(${_name} ${_default_value} CACHE STRING ${_description})
- 	add_printable_variable_bare(${_name})
- endmacro()
- 
- macro(add_printable_variable_path _name _description _default_value)
--	if(_name STREQUAL "")
-+	if("${_name}" STREQUAL "")
- 		message(FATAL_ERROR "path variable name cannot be empty")
--	endif(_name STREQUAL "")
-+	endif("${_name}" STREQUAL "")
- 	set(${_name} ${_default_value} CACHE PATH ${_description})
- 	add_printable_variable_bare(${_name})
- endmacro()
diff --git a/gnu/packages/patches/evolution-printableoptions.patch b/gnu/packages/patches/evolution-printableoptions.patch
deleted file mode 100644
index 55bee381f4..0000000000
--- a/gnu/packages/patches/evolution-printableoptions.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Patch adapted from evolution-data-server's
-c3915bb99638c1ccf57217097b14b5db69bcac96 upstream patch by Milan Crha:
-
-    PrintableOptions.cmake: Correct variable name comparison
-    
-    CMake 3.20.1 errors out with:
-    
-    CMake Error at cmake/modules/PrintableOptions.cmake:38 (message):
-       variable name cannot be empty
-     Call Stack (most recent call first):
-       CMakeLists.txt:152 (add_printable_variable)
-    
-    Change how the parameter value is compared, to fix it.
-
---- a/cmake/modules/PrintableOptions.cmake
-+++ b/cmake/modules/PrintableOptions.cmake
-@@ -19,32 +19,32 @@
- #    prints all the build options previously added with the above functions
- 
- macro(add_printable_variable_bare _name)
--	if(_name STREQUAL "")
-+	if("${_name}" STREQUAL "")
- 		message(FATAL_ERROR "variable name cannot be empty")
--	endif(_name STREQUAL "")
-+	endif("${_name}" STREQUAL "")
- 	list(APPEND _printable_options ${_name})
- endmacro()
- 
- macro(add_printable_option _name _description _default_value)
--	if(_name STREQUAL "")
-+	if("${_name}" STREQUAL "")
- 		message(FATAL_ERROR "option name cannot be empty")
--	endif(_name STREQUAL "")
-+	endif("${_name}" STREQUAL "")
- 	option(${_name} ${_description} ${_default_value})
- 	add_printable_variable_bare(${_name})
- endmacro()
- 
- macro(add_printable_variable _name _description _default_value)
--	if(_name STREQUAL "")
-+	if("${_name}" STREQUAL "")
- 		message(FATAL_ERROR "variable name cannot be empty")
--	endif(_name STREQUAL "")
-+	endif("${_name}" STREQUAL "")
- 	set(${_name} ${_default_value} CACHE STRING ${_description})
- 	add_printable_variable_bare(${_name})
- endmacro()
- 
- macro(add_printable_variable_path _name _description _default_value)
--	if(_name STREQUAL "")
-+	if("${_name}" STREQUAL "")
- 		message(FATAL_ERROR "path variable name cannot be empty")
--	endif(_name STREQUAL "")
-+	endif("${_name}" STREQUAL "")
- 	set(${_name} ${_default_value} CACHE PATH ${_description})
- 	add_printable_variable_bare(${_name})
- endmacro()
diff --git a/gnu/packages/patches/farstream-gupnp.patch b/gnu/packages/patches/farstream-gupnp.patch
new file mode 100644
index 0000000000..f46170ab26
--- /dev/null
+++ b/gnu/packages/patches/farstream-gupnp.patch
@@ -0,0 +1,140 @@
+From e70dcd0a9f89efbdaa011c20737ad550635ea580 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= <olivier.crete@collabora.com>
+Date: Tue, 20 Oct 2020 19:51:22 -0400
+Subject: [PATCH] rawudp-upnp test: Also build against new GUPnP 1.2 library if
+ present
+
+Update the configure test to match
+---
+ configure.ac                          | 17 +++++++++++++++++
+ tests/check/Makefile.am               |  7 +++----
+ tests/check/transmitter/rawudp-upnp.c | 16 ++++++++++++++--
+ tests/check/transmitter/rawudp.c      |  4 ++--
+ 4 files changed, 36 insertions(+), 8 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 03afc96b..1efed132 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -370,8 +370,25 @@ fi
+ 
+ if test "x$HAVE_GUPNP" = "xyes"; then
+    AC_DEFINE(HAVE_GUPNP,,[Have the GUPnP IGD library])
++
++    PKG_CHECK_MODULES(GUPNP_CORE, [ gupnp-1.2 ],
++	[ HAVE_GUPNP_CORE_12=yes ],
++	[ HAVE_GUPNP_CORE_12=no
++	  PKG_CHECK_MODULES(GUPNP_CORE, [ gupnp-1.0 ],
++	     [ HAVE_GUPNP_CORE_10=yes ],
++	     [ HAVE_GUPNP_CORE_10=no ])
++    ])
++
++    if test "x$HAVE_GUPNP_CORE_10" = "xyes"; then
++       AC_DEFINE(HAVE_GUPNP_CORE_10,,[Have the GUPnP 1.0 library])
++    fi
++
++    if test "x$HAVE_GUPNP_CORE_12" = "xyes"; then
++       AC_DEFINE(HAVE_GUPNP_CORE_12,,[Have the GUPnP 1.2 library])
++    fi
+ fi
+ 
++
+ dnl build static plugins or not
+ AC_MSG_CHECKING([whether to build static plugins or not])
+ AC_ARG_ENABLE(
+diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
+index d50fc264..d21687d7 100644
+--- a/tests/check/Makefile.am
++++ b/tests/check/Makefile.am
+@@ -76,9 +76,9 @@ base_fscodec_SOURCES = \
+ 
+ 
+ transmitter_rawudp_CFLAGS = $(AM_CFLAGS) \
+-	$(GUPNP_CFLAGS) $(GIO_CFLAGS) $(NICE_CFLAGS)
++	$(GUPNP_CORE_CFLAGS) $(GIO_CFLAGS) $(NICE_CFLAGS)
+ transmitter_rawudp_LDADD = $(LDADD) \
+-	$(GUPNP_LIBS) \
++	$(GUPNP_CORE_LIBS) \
+ 	$(GIO_LIBS) \
+ 	$(NICE_LIBS)
+ transmitter_rawudp_SOURCES = \
+@@ -113,9 +113,8 @@ transmitter_nice_SOURCES = \
+ transmitter_nice_LDADD = $(LDADD) $(GST_BASE_LIBS)
+ 
+ 
+-transmitter_shm_CFLAGS = $(AM_CFLAGS) $(GUPNP_CFLAGS) $(NICE_CFLAGS)
++transmitter_shm_CFLAGS = $(AM_CFLAGS) $(NICE_CFLAGS)
+ transmitter_shm_LDADD = $(LDADD) \
+-	$(GUPNP_LIBS) \
+ 	$(NICE_LIBS)
+ transmitter_shm_SOURCES = \
+ 	check-threadsafe.h  \
+diff --git a/tests/check/transmitter/rawudp-upnp.c b/tests/check/transmitter/rawudp-upnp.c
+index 4818cd28..9ccf85d8 100644
+--- a/tests/check/transmitter/rawudp-upnp.c
++++ b/tests/check/transmitter/rawudp-upnp.c
+@@ -37,7 +37,7 @@ get_vars (gboolean *out_got_address,
+ }
+ 
+ 
+-#ifdef HAVE_GUPNP
++#if defined(HAVE_GUPNP_CORE_10) || defined(HAVE_GUPNP_CORE_12)
+ 
+ #include <libgupnp/gupnp.h>
+ 
+@@ -126,8 +126,14 @@ start_upnp_server (void)
+   GUPnPDeviceInfo *subdev1;
+   GUPnPDeviceInfo *subdev2;
+   const gchar *upnp_xml_path;
++  GError *gerr = NULL;
+ 
+-  context = gupnp_context_new (NULL, NULL, 0, NULL);
++#ifdef HAVE_GUPNP_CORE_12
++  context = gupnp_context_new (NULL, 0, &gerr);
++#else
++  context = gupnp_context_new (NULL, NULL, 0, &gerr);
++#endif
++  g_assert_no_error (gerr);
+   ts_fail_if (context == NULL, "Can't get gupnp context");
+ 
+   if (g_getenv ("UPNP_XML_PATH"))
+@@ -137,8 +143,14 @@ start_upnp_server (void)
+ 
+   gupnp_context_host_path (context, upnp_xml_path, "");
+ 
++#ifdef HAVE_GUPNP_CORE_12
++  dev = gupnp_root_device_new (context, "InternetGatewayDevice.xml",
++      upnp_xml_path, &gerr);
++  g_assert_no_error (gerr);
++#else
+   dev = gupnp_root_device_new (context, "InternetGatewayDevice.xml",
+       upnp_xml_path);
++#endif
+   ts_fail_if (dev == NULL, "could not get root dev");
+ 
+   subdev1 = gupnp_device_info_get_device (GUPNP_DEVICE_INFO (dev),
+diff --git a/tests/check/transmitter/rawudp.c b/tests/check/transmitter/rawudp.c
+index e1936ac0..d803f347 100644
+--- a/tests/check/transmitter/rawudp.c
++++ b/tests/check/transmitter/rawudp.c
+@@ -637,7 +637,7 @@ GST_START_TEST (test_rawudptransmitter_stop_stream)
+ }
+ GST_END_TEST;
+ 
+-#ifdef HAVE_GUPNP
++#if defined(HAVE_GUPNP_CORE_10) || defined (HAVE_GUPNP_CORE_12)
+ 
+ GST_START_TEST (test_rawudptransmitter_run_upnp_discovery)
+ {
+@@ -967,7 +967,7 @@ rawudptransmitter_suite (void)
+   tcase_add_test (tc_chain, test_rawudptransmitter_stop_stream);
+   suite_add_tcase (s, tc_chain);
+ 
+-#ifdef HAVE_GUPNP
++#if defined(HAVE_GUPNP_CORE_10) || defined (HAVE_GUPNP_CORE_12)
+   if (g_getenv ("UPNP")) {
+     gchar *multicast_addr;
+ 
+-- 
+GitLab
+
diff --git a/gnu/packages/patches/flatpak-fix-path.patch b/gnu/packages/patches/flatpak-fix-path.patch
new file mode 100644
index 0000000000..e87a08a7fe
--- /dev/null
+++ b/gnu/packages/patches/flatpak-fix-path.patch
@@ -0,0 +1,29 @@
+Flatpak writes files for installed applications with the full Flatpak (store) path. This patch makes it write just "flatpak", using Flatpak from PATH. This is similar to the NixOS [0] patch, updated for Flatpak 1.12.1
+
+[0] https://github.com/NixOS/nixpkgs/blob/bf4167861d0f864b0fc457778d54feb4a2675ea2/pkgs/development/libraries/flatpak/use-flatpak-from-path.patch
+
+diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c
+index 80ff5e5f..0c111c31 100644
+--- a/common/flatpak-dir.c
++++ b/common/flatpak-dir.c
+@@ -7134,8 +7134,7 @@ export_desktop_file (const char         *app,
+         flatpak = FLATPAK_BINDIR "/flatpak";
+
+       g_string_append_printf (new_exec,
+-                              "%s run --branch=%s --arch=%s",
+-                              flatpak,
++                              "flatpak run --branch=%s --arch=%s",
+                               escaped_branch,
+                               escaped_arch);
+
+@@ -8467,8 +8466,8 @@ flatpak_dir_deploy (FlatpakDir          *self,
+       if ((flatpak = g_getenv ("FLATPAK_BINARY")) == NULL)
+         flatpak = FLATPAK_BINDIR "/flatpak";
+
+-      bin_data = g_strdup_printf ("#!/bin/sh\nexec %s run --branch=%s --arch=%s %s \"$@\"\n",
+-                                  flatpak, escaped_branch, escaped_arch, escaped_app);
++      bin_data = g_strdup_printf ("#!/bin/sh\nexec flatpak run --branch=%s --arch=%s %s \"$@\"\n",
++                                  escaped_branch, escaped_arch, escaped_app);
+       if (!g_file_replace_contents (wrapper, bin_data, strlen (bin_data), NULL, FALSE,
+                                     G_FILE_CREATE_REPLACE_DESTINATION, NULL, cancellable, error))
+         return FALSE;
diff --git a/gnu/packages/patches/freecad-boost-serialization.patch b/gnu/packages/patches/freecad-boost-serialization.patch
new file mode 100644
index 0000000000..374eabc966
--- /dev/null
+++ b/gnu/packages/patches/freecad-boost-serialization.patch
@@ -0,0 +1,27 @@
+Taken from: https://github.com/archlinux/svntogit-community/blob/packages/freecad/trunk/freecad-boost.patch.
+
+Index: FreeCAD-0.19.2/CMakeLists.txt
+===================================================================
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -46,6 +46,7 @@ if(NOT FREECAD_LIBPACK_USE OR FREECAD_LI
+     SetupPCL()
+     SetupPybind11()
+     SetupBoost()
++	set(Boost_LIBRARIES_App ${Boost_LIBRARIES})
+     SetupXercesC()
+     find_package(ZLIB REQUIRED)
+     find_package(PyCXX REQUIRED)
+Index: FreeCAD-0.19.2/src/App/CMakeLists.txt
+===================================================================
+--- a/src/App/CMakeLists.txt
++++ b/src/App/CMakeLists.txt
+@@ -59,7 +59,7 @@ include_directories(
+ 
+ set(FreeCADApp_LIBS
+     FreeCADBase
+-    ${Boost_LIBRARIES}
++    ${Boost_LIBRARIES_App}
+ )
+ 
+ if (BUILD_QT5)
diff --git a/gnu/packages/patches/freecad-vtk9.patch b/gnu/packages/patches/freecad-vtk9.patch
new file mode 100644
index 0000000000..74568f4318
--- /dev/null
+++ b/gnu/packages/patches/freecad-vtk9.patch
@@ -0,0 +1,827 @@
+From bb9bcbd51df7c3cb76c5823038e4ea0f7e25a9ff Mon Sep 17 00:00:00 2001
+From: wmayer <wmayer@users.sourceforge.net>
+Date: Mon, 12 Oct 2020 17:56:03 +0200
+Subject: [PATCH] Make smesh compile with vtk9
+
+---
+ .../salomesmesh/inc/SMDS_MeshElement.hxx      |  9 +++-
+ .../salomesmesh/inc/SMDS_UnstructuredGrid.hxx |  4 ++
+ .../salomesmesh/src/SMDS/SMDS_BallElement.cpp |  9 +++-
+ .../salomesmesh/src/SMDS/SMDS_Downward.cpp    | 44 +++++++++----------
+ .../salomesmesh/src/SMDS/SMDS_Mesh.cpp        |  6 ++-
+ .../src/SMDS/SMDS_Mesh0DElement.cpp           | 12 +++++
+ .../salomesmesh/src/SMDS/SMDS_MeshNode.cpp    | 10 ++---
+ .../src/SMDS/SMDS_UnstructuredGrid.cpp        | 35 +++++++++++++--
+ .../src/SMDS/SMDS_VtkCellIterator.cpp         |  7 +--
+ .../salomesmesh/src/SMDS/SMDS_VtkEdge.cpp     | 19 +++++++-
+ .../salomesmesh/src/SMDS/SMDS_VtkFace.cpp     | 29 ++++++++++--
+ .../salomesmesh/src/SMDS/SMDS_VtkVolume.cpp   | 38 +++++++++++-----
+ .../src/SMESH/SMESH_MeshEditor.cpp            |  8 ++--
+ src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp |  7 ++-
+ 14 files changed, 179 insertions(+), 58 deletions(-)
+
+Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx
+===================================================================
+--- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx
++++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx
+@@ -40,11 +40,16 @@
+ 
+ #include <vtkType.h>
+ #include <vtkCellType.h>
++#include <vtkCellArray.h>
+ 
+ //typedef unsigned short UShortType;
+ typedef short ShortType;
+ typedef int   LongType;
+-
++#ifdef VTK_CELL_ARRAY_V2
++typedef const vtkIdType* vtkIdTypePtr;
++#else
++typedef vtkIdType* vtkIdTypePtr;
++#endif
+ class SMDS_MeshNode;
+ class SMDS_MeshEdge;
+ class SMDS_MeshFace;
+@@ -192,7 +197,7 @@ protected:
+   //! Element index in vector SMDS_Mesh::myNodes or SMDS_Mesh::myCells
+   int myID;
+   //! index in vtkUnstructuredGrid
+-  int myVtkID;
++  vtkIdType myVtkID;
+   //! SMDS_Mesh identification in SMESH
+   ShortType myMeshId;
+   //! SubShape and SubMesh identification in SMESHDS
+Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx
+===================================================================
+--- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx
++++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx
+@@ -95,7 +95,11 @@ public:
+                                        std::map<int, std::map<long,int> >& nodeQuadDomains);
+   vtkCellLinks* GetLinks()
+   {
++#ifdef VTK_CELL_ARRAY_V2
++    return static_cast<vtkCellLinks*>(GetCellLinks());
++#else
+     return Links;
++#endif
+   }
+   SMDS_Downward* getDownArray(unsigned char vtkType)
+   {
+Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp
+===================================================================
+--- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp
++++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp
+@@ -67,10 +67,16 @@ void SMDS_BallElement::SetDiameter(doubl
+ bool SMDS_BallElement::ChangeNode (const SMDS_MeshNode * node)
+ {
+   vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
++#ifdef VTK_CELL_ARRAY_V2
++  vtkNew<vtkIdList> cellPoints;
++  grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
++  cellPoints->SetId(0, node->getVtkId());
++#else
+   vtkIdType npts = 0;
+   vtkIdType* pts = 0;
+   grid->GetCellPoints(myVtkID, npts, pts);
+   pts[0] = node->getVtkId();
++#endif
+   SMDS_Mesh::_meshList[myMeshId]->setMyModified();
+   return true;
+ }
+@@ -83,7 +89,8 @@ void SMDS_BallElement::Print (std::ostre
+ const SMDS_MeshNode* SMDS_BallElement::GetNode (const int ind) const
+ {
+   vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+-  vtkIdType npts, *pts;
++  vtkIdType npts;
++  vtkIdTypePtr pts;
+   grid->GetCellPoints( myVtkID, npts, pts );
+   return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ 0 ]);
+ }
+Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp
+===================================================================
+--- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp
++++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp
+@@ -303,7 +303,7 @@ int SMDS_Down1D::getNodeSet(int cellId,
+ void SMDS_Down1D::setNodes(int cellId, int vtkId)
+ {
+   vtkIdType npts = 0;
+-  vtkIdType *pts; // will refer to the point id's of the face
++  vtkIdTypePtr pts; // will refer to the point id's of the face
+   _grid->GetCellPoints(vtkId, npts, pts);
+   // MESSAGE(vtkId << " " << npts << "  " << _nbDownCells);
+   //ASSERT(npts == _nbDownCells);
+@@ -357,7 +357,7 @@ int SMDS_Down1D::computeVtkCells(int *pt
+     {
+       vtkIdType point = pts[i];
+       int numCells = _grid->GetLinks()->GetNcells(point);
+-      vtkIdType *cells = _grid->GetLinks()->GetCells(point);
++      vtkIdTypePtr cells = _grid->GetLinks()->GetCells(point);
+       for (int j = 0; j < numCells; j++)
+         {
+           int vtkCellId = cells[j];
+@@ -532,7 +532,7 @@ int SMDS_Down2D::computeVolumeIds(int ce
+   // --- find point id's of the face
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *pts; // will refer to the point id's of the face
++  vtkIdTypePtr pts; // will refer to the point id's of the face
+   _grid->GetCellPoints(cellId, npts, pts);
+   vector<int> nodes;
+   for (int i = 0; i < npts; i++)
+@@ -577,7 +577,7 @@ int SMDS_Down2D::computeVolumeIdsFromNod
+       vtkIdType point = pts[i];
+       int numCells = _grid->GetLinks()->GetNcells(point);
+       //MESSAGE("cells pour " << i << " " << numCells);
+-      vtkIdType *cells = _grid->GetLinks()->GetCells(point);
++      vtkIdTypePtr cells = _grid->GetLinks()->GetCells(point);
+       for (int j = 0; j < numCells; j++)
+         {
+           int vtkCellId = cells[j];
+@@ -627,7 +627,7 @@ int SMDS_Down2D::computeVolumeIdsFromNod
+ void SMDS_Down2D::setTempNodes(int cellId, int vtkId)
+ {
+   vtkIdType npts = 0;
+-  vtkIdType *pts; // will refer to the point id's of the face
++  vtkIdTypePtr pts; // will refer to the point id's of the face
+   _grid->GetCellPoints(vtkId, npts, pts);
+   // MESSAGE(vtkId << " " << npts << "  " << _nbNodes);
+   //ASSERT(npts == _nbNodes);
+@@ -795,7 +795,7 @@ void SMDS_Down3D::getNodeIds(int cellId,
+ {
+   int vtkId = this->_vtkCellIds[cellId];
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(vtkId, npts, nodes);
+   for (int i = 0; i < npts; i++)
+     nodeSet.insert(nodes[i]);
+@@ -1126,7 +1126,7 @@ void SMDS_DownTetra::getOrderedNodesOfFa
+   //MESSAGE("cellId = " << cellId);
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
+ 
+   set<int> tofind;
+@@ -1178,7 +1178,7 @@ void SMDS_DownTetra::computeFacesWithNod
+   // --- find point id's of the volume
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(cellId, npts, nodes);
+ 
+   // --- create all the ordered list of node id's for each face
+@@ -1234,7 +1234,7 @@ void SMDS_DownQuadTetra::getOrderedNodes
+   //MESSAGE("cellId = " << cellId);
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
+ 
+   set<int> tofind;
+@@ -1288,7 +1288,7 @@ void SMDS_DownQuadTetra::computeFacesWit
+   // --- find point id's of the volume
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(cellId, npts, nodes);
+ 
+   // --- create all the ordered list of node id's for each face
+@@ -1357,7 +1357,7 @@ void SMDS_DownPyramid::getOrderedNodesOf
+   //MESSAGE("cellId = " << cellId);
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
+ 
+   set<int> tofind;
+@@ -1435,7 +1435,7 @@ void SMDS_DownPyramid::computeFacesWithN
+   // --- find point id's of the volume
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(cellId, npts, nodes);
+ 
+   // --- create all the ordered list of node id's for each face
+@@ -1500,7 +1500,7 @@ void SMDS_DownQuadPyramid::getOrderedNod
+   //MESSAGE("cellId = " << cellId);
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
+ 
+   set<int> tofind;
+@@ -1580,7 +1580,7 @@ void SMDS_DownQuadPyramid::computeFacesW
+   // --- find point id's of the volume
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(cellId, npts, nodes);
+ 
+   // --- create all the ordered list of node id's for each face
+@@ -1660,7 +1660,7 @@ void SMDS_DownPenta::getOrderedNodesOfFa
+   //MESSAGE("cellId = " << cellId);
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
+ 
+   set<int> tofind;
+@@ -1744,7 +1744,7 @@ void SMDS_DownPenta::computeFacesWithNod
+   // --- find point id's of the volume
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(cellId, npts, nodes);
+ 
+   // --- create all the ordered list of node id's for each face
+@@ -1810,7 +1810,7 @@ void SMDS_DownQuadPenta::getOrderedNodes
+   //MESSAGE("cellId = " << cellId);
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
+ 
+   set<int> tofind;
+@@ -1896,7 +1896,7 @@ void SMDS_DownQuadPenta::computeFacesWit
+   // --- find point id's of the volume
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(cellId, npts, nodes);
+ 
+   // --- create all the ordered list of node id's for each face
+@@ -1981,7 +1981,7 @@ void SMDS_DownHexa::getOrderedNodesOfFac
+   //MESSAGE("cellId = " << cellId);
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
+ 
+   set<int> tofind;
+@@ -2036,7 +2036,7 @@ void SMDS_DownHexa::computeFacesWithNode
+   // --- find point id's of the volume
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(cellId, npts, nodes);
+ 
+   // --- create all the ordered list of node id's for each face
+@@ -2112,7 +2112,7 @@ void SMDS_DownQuadHexa::getOrderedNodesO
+   //MESSAGE("cellId = " << cellId);
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
+ 
+   set<int> tofind;
+@@ -2167,7 +2167,7 @@ void SMDS_DownQuadHexa::computeFacesWith
+   // --- find point id's of the volume
+ 
+   vtkIdType npts = 0;
+-  vtkIdType *nodes; // will refer to the point id's of the volume
++  vtkIdTypePtr nodes; // will refer to the point id's of the volume
+   _grid->GetCellPoints(cellId, npts, nodes);
+ 
+   // --- create all the ordered list of node id's for each face
+Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp
+===================================================================
+--- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp
++++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp
+@@ -4768,7 +4768,11 @@ void SMDS_Mesh::dumpGrid(string ficdump)
+         ficcon << endl;
+   }
+   ficcon << "-------------------------------- connectivity " <<  nbPoints << endl;
+-        vtkCellLinks *links = myGrid->GetCellLinks();
++#ifdef VTK_CELL_ARRAY_V2
++  vtkCellLinks *links = static_cast<vtkCellLinks*>(myGrid->GetCellLinks());
++#else
++  vtkCellLinks *links = myGrid->GetCellLinks();
++#endif
+   for (int i=0; i<nbPoints; i++)
+   {
+         int ncells = links->GetNcells(i);
+Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp
+===================================================================
+--- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp
++++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp
+@@ -146,6 +146,17 @@ bool SMDS_Mesh0DElement::ChangeNodes(con
+   if ( nbNodes == 1 )
+   {
+     vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
++#ifdef VTK_CELL_ARRAY_V2
++    vtkNew<vtkIdList> cellPoints;
++    grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
++    if (nbNodes != cellPoints->GetNumberOfIds())
++    {
++      MESSAGE("ChangeNodes problem: not the same number of nodes " << cellPoints->GetNumberOfIds() << " -> " << nbNodes);
++      return false;
++    }
++    myNode = nodes[0];
++    cellPoints->SetId(0, myNode->getVtkId());
++#else
+     vtkIdType npts = 0;
+     vtkIdType* pts = 0;
+     grid->GetCellPoints(myVtkID, npts, pts);
+@@ -156,6 +167,7 @@ bool SMDS_Mesh0DElement::ChangeNodes(con
+     }
+     myNode = nodes[0];
+     pts[0] = myNode->getVtkId();
++#endif
+ 
+     SMDS_Mesh::_meshList[myMeshId]->setMyModified();
+     return true;
+Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp
+===================================================================
+--- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp
++++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp
+@@ -191,7 +191,7 @@ public:
+ SMDS_ElemIteratorPtr SMDS_MeshNode::
+ GetInverseElementIterator(SMDSAbs_ElementType type) const
+ {
+-  vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID);
++  vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
+   //MESSAGE("myID " << myID << " ncells " << l.ncells);
+   return SMDS_ElemIteratorPtr(new SMDS_MeshNode_MyInvIterator(SMDS_Mesh::_meshList[myMeshId], l.cells, l.ncells, type));
+ }
+@@ -251,7 +251,7 @@ elementsIterator(SMDSAbs_ElementType typ
+     return SMDS_MeshElement::elementsIterator(SMDSAbs_Node);
+   else
+   {
+-    vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID);
++    vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
+     return SMDS_ElemIteratorPtr(new SMDS_MeshNode_MyIterator(SMDS_Mesh::_meshList[myMeshId], l.cells, l.ncells, type));
+   }
+ }
+@@ -350,7 +350,7 @@ void SMDS_MeshNode::AddInverseElement(co
+   const SMDS_MeshCell *cell = dynamic_cast<const SMDS_MeshCell*> (ME);
+   assert(cell);
+   SMDS_UnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+-  vtkCellLinks *Links = grid->GetCellLinks();
++  vtkCellLinks *Links = static_cast<vtkCellLinks*>(grid->GetCellLinks());
+   Links->ResizeCellList(myVtkID, 1);
+   Links->AddCellReference(cell->getVtkId(), myVtkID);
+ }
+@@ -366,7 +366,7 @@ void SMDS_MeshNode::ClearInverseElements
+ 
+ bool SMDS_MeshNode::emptyInverseElements()
+ {
+-  vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID);
++  vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
+   return (l.ncells == 0);
+ }
+ 
+@@ -378,7 +378,7 @@ bool SMDS_MeshNode::emptyInverseElements
+ 
+ int SMDS_MeshNode::NbInverseElements(SMDSAbs_ElementType type) const
+ {
+-  vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID);
++  vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
+ 
+   if ( type == SMDSAbs_All )
+     return l.ncells;
+Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp
+===================================================================
+--- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp
++++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp
+@@ -139,8 +139,8 @@ int SMDS_UnstructuredGrid::InsertNextLin
+   for (; it != setOfNodes.end(); ++it)
+     {
+       //MESSAGE("reverse link for node " << *it << " cell " << cellid);
+-      this->Links->ResizeCellList(*it, 1);
+-      this->Links->AddCellReference(cellid, *it);
++      this->GetLinks()->ResizeCellList(*it, 1);
++      this->GetLinks()->AddCellReference(cellid, *it);
+     }
+ 
+   return cellid;
+@@ -332,9 +332,13 @@ void SMDS_UnstructuredGrid::copyBloc(vtk
+     {
+       newTypes->SetValue(alreadyCopied, this->Types->GetValue(j));
+       idCellsOldToNew[j] = alreadyCopied; // old vtkId --> new vtkId
++#ifdef VTK_CELL_ARRAY_V2
++      vtkIdType oldLoc = this->GetCellLocationsArray()->GetValue(j);
++#else
+       vtkIdType oldLoc = this->Locations->GetValue(j);
++#endif
+       vtkIdType nbpts;
+-      vtkIdType *oldPtsCell = 0;
++      vtkIdTypePtr oldPtsCell = 0;
+       this->Connectivity->GetCell(oldLoc, nbpts, oldPtsCell);
+       assert(nbpts < NBMAXNODESINCELL);
+       //MESSAGE(j << " " << alreadyCopied << " " << (int)this->Types->GetValue(j) << " " << oldLoc << " " << nbpts );
+@@ -952,6 +956,21 @@ void SMDS_UnstructuredGrid::GetNodeIds(s
+  */
+ void SMDS_UnstructuredGrid::ModifyCellNodes(int vtkVolId, std::map<int, int> localClonedNodeIds)
+ {
++#ifdef VTK_CELL_ARRAY_V2
++  vtkNew<vtkIdList> cellPoints;
++  this->GetCellPoints(vtkVolId, cellPoints.GetPointer());
++  for (vtkIdType i = 0; i < cellPoints->GetNumberOfIds(); i++)
++    {
++      if (localClonedNodeIds.count(cellPoints->GetId(i)))
++        {
++          vtkIdType oldpt = cellPoints->GetId(i);
++          cellPoints->SetId(i, localClonedNodeIds[oldpt]);
++          //MESSAGE(oldpt << " --> " << pts[i]);
++          //this->RemoveReferenceToCell(oldpt, vtkVolId);
++          //this->AddReferenceToCell(pts[i], vtkVolId);
++        }
++    }
++#else
+   vtkIdType npts = 0;
+   vtkIdType *pts; // will refer to the point id's of the face
+   this->GetCellPoints(vtkVolId, npts, pts);
+@@ -966,6 +985,7 @@ void SMDS_UnstructuredGrid::ModifyCellNo
+           //this->AddReferenceToCell(pts[i], vtkVolId);
+         }
+     }
++#endif
+ }
+ 
+ /*! reorder the nodes of a face
+@@ -995,11 +1015,20 @@ void SMDS_UnstructuredGrid::BuildLinks()
+     this->Links->UnRegister(this);
+     }
+ 
++#ifdef VTK_CELL_ARRAY_V2
++  this->Links = SMDS_CellLinks::New();
++  GetLinks()->Allocate(this->GetNumberOfPoints());
++  GetLinks()->Register(this);
++//FIXME: vtk9
++  GetLinks()->BuildLinks(this);
++  GetLinks()->Delete();
++#else
+   this->Links = SMDS_CellLinks::New();
+   this->Links->Allocate(this->GetNumberOfPoints());
+   this->Links->Register(this);
+   this->Links->BuildLinks(this, this->Connectivity);
+   this->Links->Delete();
++#endif
+ }
+ 
+ /*! Create a volume (prism or hexahedron) by duplication of a face.
+Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp
+===================================================================
+--- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp
++++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp
+@@ -33,7 +33,8 @@ SMDS_VtkCellIterator::SMDS_VtkCellIterat
+   }
+   else
+   {
+-    vtkIdType npts, *pts;
++    vtkIdType npts;
++    vtkIdTypePtr pts;
+     grid->GetCellPoints( _cellId, npts, pts );
+     _vtkIdList->SetNumberOfIds( _nbNodes = npts );
+     for (int i = 0; i < _nbNodes; i++)
+@@ -67,7 +68,7 @@ SMDS_VtkCellIteratorToUNV::SMDS_VtkCellI
+   //MESSAGE("SMDS_VtkCellInterlacedIterator (UNV)" << _type);
+ 
+   _vtkIdList = vtkIdList::New();
+-  vtkIdType* pts;
++  vtkIdTypePtr pts;
+   vtkIdType npts;
+   vtkUnstructuredGrid* grid = _mesh->getGrid();
+   grid->GetCellPoints((vtkIdType)_cellId, npts, pts);
+@@ -182,7 +183,7 @@ SMDS_VtkCellIteratorPolyH::SMDS_VtkCellI
+   {
+     //MESSAGE("SMDS_VtkCellIterator Polyhedra");
+     vtkIdType nFaces = 0;
+-    vtkIdType* ptIds = 0;
++    vtkIdTypePtr ptIds = 0;
+     grid->GetFaceStream(_cellId, nFaces, ptIds);
+     int id = 0;
+     _nbNodesInFaces = 0;
+Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp
+===================================================================
+--- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp
++++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp
+@@ -67,6 +67,19 @@ bool SMDS_VtkEdge::ChangeNodes(const SMD
+ bool SMDS_VtkEdge::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes)
+ {
+   vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
++#ifdef VTK_CELL_ARRAY_V2
++  vtkNew<vtkIdList> cellPoints;
++  grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
++  if (nbNodes != cellPoints->GetNumberOfIds())
++    {
++      MESSAGE("ChangeNodes problem: not the same number of nodes " << cellPoints->GetNumberOfIds() << " -> " << nbNodes);
++      return false;
++    }
++  for (int i = 0; i < nbNodes; i++)
++    {
++      cellPoints->SetId(i, nodes[i]->getVtkId());
++    }
++#else
+   vtkIdType npts = 0;
+   vtkIdType* pts = 0;
+   grid->GetCellPoints(myVtkID, npts, pts);
+@@ -79,6 +92,7 @@ bool SMDS_VtkEdge::ChangeNodes(const SMD
+     {
+       pts[i] = nodes[i]->getVtkId();
+     }
++#endif
+   SMDS_Mesh::_meshList[myMeshId]->setMyModified();
+   return true;
+ }
+@@ -87,7 +101,7 @@ bool SMDS_VtkEdge::IsMediumNode(const SM
+ {
+   vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+   vtkIdType npts = 0;
+-  vtkIdType* pts = 0;
++  vtkIdTypePtr pts = 0;
+   grid->GetCellPoints(myVtkID, npts, pts);
+   //MESSAGE("IsMediumNode " << npts  << " " << (node->getVtkId() == pts[npts-1]));
+   return ((npts == 3) && (node->getVtkId() == pts[2]));
+@@ -137,7 +151,8 @@ const SMDS_MeshNode*
+ SMDS_VtkEdge::GetNode(const int ind) const
+ {
+   vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+-  vtkIdType npts, *pts;
++  vtkIdType npts;
++  vtkIdTypePtr pts;
+   grid->GetCellPoints( this->myVtkID, npts, pts );
+   return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ ind ]);
+ }
+Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp
+===================================================================
+--- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp
++++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp
+@@ -101,6 +101,19 @@ void SMDS_VtkFace::initQuadPoly(const st
+ bool SMDS_VtkFace::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes)
+ {
+   vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
++#ifdef VTK_CELL_ARRAY_V2
++  vtkNew<vtkIdList> cellPoints;
++  grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
++  if (nbNodes != cellPoints->GetNumberOfIds())
++    {
++      MESSAGE("ChangeNodes problem: not the same number of nodes " << cellPoints->GetNumberOfIds() << " -> " << nbNodes);
++      return false;
++    }
++  for (int i = 0; i < nbNodes; i++)
++    {
++      cellPoints->SetId(i, nodes[i]->getVtkId());
++    }
++#else
+   vtkIdType npts = 0;
+   vtkIdType* pts = 0;
+   grid->GetCellPoints(myVtkID, npts, pts);
+@@ -113,6 +126,7 @@ bool SMDS_VtkFace::ChangeNodes(const SMD
+     {
+       pts[i] = nodes[i]->getVtkId();
+     }
++#endif
+   SMDS_Mesh::_meshList[myMeshId]->setMyModified();
+   return true;
+ }
+@@ -173,7 +187,8 @@ const SMDS_MeshNode*
+ SMDS_VtkFace::GetNode(const int ind) const
+ {
+   vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+-  vtkIdType npts, *pts;
++  vtkIdType npts;
++  vtkIdTypePtr pts;
+   grid->GetCellPoints( this->myVtkID, npts, pts );
+   return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ ind ]);
+ }
+@@ -186,7 +201,8 @@ SMDS_VtkFace::GetNode(const int ind) con
+ int SMDS_VtkFace::GetNodeIndex( const SMDS_MeshNode* node ) const
+ {
+   vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+-  vtkIdType npts, *pts;
++  vtkIdType npts;
++  vtkIdTypePtr pts;
+   grid->GetCellPoints( this->myVtkID, npts, pts );
+   for ( vtkIdType i = 0; i < npts; ++i )
+     if ( pts[i] == node->getVtkId() )
+@@ -251,7 +267,7 @@ bool SMDS_VtkFace::IsMediumNode(const SM
+     return false;
+   }
+   vtkIdType npts = 0;
+-  vtkIdType* pts = 0;
++  vtkIdTypePtr pts = 0;
+   grid->GetCellPoints(myVtkID, npts, pts);
+   vtkIdType nodeId = node->getVtkId();
+   for (int rank = 0; rank < npts; rank++)
+@@ -356,11 +372,18 @@ SMDS_NodeIteratorPtr SMDS_VtkFace::inter
+ void SMDS_VtkFace::ChangeApex(SMDS_MeshNode* node)
+ {
+   vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
++#ifdef VTK_CELL_ARRAY_V2
++  vtkNew<vtkIdList> cellPoints;
++  grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
++  grid->RemoveReferenceToCell(cellPoints->GetId(0), myVtkID);
++  cellPoints->SetId(0, node->getVtkId());
++#else
+   vtkIdType npts = 0;
+   vtkIdType* pts = 0;
+   grid->GetCellPoints(myVtkID, npts, pts);
+   grid->RemoveReferenceToCell(pts[0], myVtkID);
+   pts[0] = node->getVtkId();
++#endif
+   node->AddInverseElement(this),
+   SMDS_Mesh::_meshList[myMeshId]->setMyModified();
+ }
+Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp
+===================================================================
+--- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp
++++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp
+@@ -133,6 +133,19 @@ void SMDS_VtkVolume::initPoly(const std:
+ bool SMDS_VtkVolume::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes)
+ {
+   vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
++#ifdef VTK_CELL_ARRAY_V2
++  vtkNew<vtkIdList> cellPoints;
++  grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
++  if (nbNodes != cellPoints->GetNumberOfIds())
++    {
++      MESSAGE("ChangeNodes problem: not the same number of nodes " << cellPoints->GetNumberOfIds() << " -> " << nbNodes);
++      return false;
++    }
++  for (int i = 0; i < nbNodes; i++)
++    {
++      cellPoints->SetId(i, nodes[i]->getVtkId());
++    }
++#else
+   vtkIdType npts = 0;
+   vtkIdType* pts = 0;
+   grid->GetCellPoints(myVtkID, npts, pts);
+@@ -145,6 +158,7 @@ bool SMDS_VtkVolume::ChangeNodes(const S
+     {
+       pts[i] = nodes[i]->getVtkId();
+     }
++#endif
+   SMDS_Mesh::_meshList[myMeshId]->setMyModified();
+   return true;
+ }
+@@ -207,7 +221,7 @@ int SMDS_VtkVolume::NbFaces() const
+     case VTK_POLYHEDRON:
+       {
+         vtkIdType nFaces = 0;
+-        vtkIdType* ptIds = 0;
++        vtkIdTypePtr ptIds = 0;
+         grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
+         nbFaces = nFaces;
+         break;
+@@ -236,7 +250,7 @@ int SMDS_VtkVolume::NbNodes() const
+   else
+     {
+       vtkIdType nFaces = 0;
+-      vtkIdType* ptIds = 0;
++      vtkIdTypePtr ptIds = 0;
+       grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
+       int id = 0;
+       for (int i = 0; i < nFaces; i++)
+@@ -276,7 +290,7 @@ int SMDS_VtkVolume::NbEdges() const
+     case VTK_POLYHEDRON:
+       {
+         vtkIdType nFaces = 0;
+-        vtkIdType* ptIds = 0;
++        vtkIdTypePtr ptIds = 0;
+         grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
+         nbEdges = 0;
+         int id = 0;
+@@ -312,7 +326,7 @@ int SMDS_VtkVolume::NbFaceNodes(const in
+   if (aVtkType == VTK_POLYHEDRON)
+     {
+       vtkIdType nFaces = 0;
+-      vtkIdType* ptIds = 0;
++      vtkIdTypePtr ptIds = 0;
+       grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
+       int id = 0;
+       for (int i = 0; i < nFaces; i++)
+@@ -342,7 +356,7 @@ const SMDS_MeshNode* SMDS_VtkVolume::Get
+   if (aVtkType == VTK_POLYHEDRON)
+     {
+       vtkIdType nFaces = 0;
+-      vtkIdType* ptIds = 0;
++      vtkIdTypePtr ptIds = 0;
+       grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
+       int id = 0;
+       for (int i = 0; i < nFaces; i++)
+@@ -372,7 +386,7 @@ std::vector<int> SMDS_VtkVolume::GetQuan
+   if (aVtkType == VTK_POLYHEDRON)
+     {
+       vtkIdType nFaces = 0;
+-      vtkIdType* ptIds = 0;
++      vtkIdTypePtr ptIds = 0;
+       grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
+       int id = 0;
+       for (int i = 0; i < nFaces; i++)
+@@ -430,7 +444,7 @@ const SMDS_MeshNode* SMDS_VtkVolume::Get
+   if ( aVtkType == VTK_POLYHEDRON)
+   {
+     vtkIdType nFaces = 0;
+-    vtkIdType* ptIds = 0;
++    vtkIdTypePtr ptIds = 0;
+     grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
+     int id = 0, nbPoints = 0;
+     for (int i = 0; i < nFaces; i++)
+@@ -443,7 +457,8 @@ const SMDS_MeshNode* SMDS_VtkVolume::Get
+     }
+     return 0;
+   }
+-  vtkIdType npts, *pts;
++  vtkIdType npts;
++  vtkIdTypePtr pts;
+   grid->GetCellPoints( this->myVtkID, npts, pts );
+   const std::vector<int>& interlace = SMDS_MeshCell::fromVtkOrder( VTKCellType( aVtkType ));
+   return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ interlace.empty() ? ind : interlace[ind]] );
+@@ -460,7 +475,7 @@ int SMDS_VtkVolume::GetNodeIndex( const
+   if ( aVtkType == VTK_POLYHEDRON)
+   {
+     vtkIdType nFaces = 0;
+-    vtkIdType* ptIds = 0;
++    vtkIdTypePtr ptIds = 0;
+     grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
+     int id = 0;
+     for (int iF = 0; iF < nFaces; iF++)
+@@ -473,7 +488,8 @@ int SMDS_VtkVolume::GetNodeIndex( const
+     }
+     return -1;
+   }
+-  vtkIdType npts, *pts;
++  vtkIdType npts;
++  vtkIdTypePtr pts;
+   grid->GetCellPoints( this->myVtkID, npts, pts );
+   for ( vtkIdType i = 0; i < npts; ++i )
+     if ( pts[i] == node->getVtkId() )
+@@ -534,7 +550,7 @@ bool SMDS_VtkVolume::IsMediumNode(const
+       return false;
+   }
+   vtkIdType npts = 0;
+-  vtkIdType* pts = 0;
++  vtkIdTypePtr pts = 0;
+   grid->GetCellPoints(myVtkID, npts, pts);
+   vtkIdType nodeId = node->getVtkId();
+   for (int rank = 0; rank < npts; rank++)
+Index: FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp
+===================================================================
+--- FreeCAD-0.19.2.orig/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp
++++ FreeCAD-0.19.2/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp
+@@ -11348,7 +11348,7 @@ bool SMESH_MeshEditor::DoubleNodesOnGrou
+             {
+               int oldId = *itn;
+               //MESSAGE("     node " << oldId);
+-              vtkCellLinks::Link l = grid->GetCellLinks()->GetLink(oldId);
++              vtkCellLinks::Link l = static_cast<vtkCellLinks*>(grid->GetCellLinks())->GetLink(oldId);
+               for (int i=0; i<l.ncells; i++)
+                 {
+                   int vtkId = l.cells[i];
+@@ -11527,7 +11527,7 @@ bool SMESH_MeshEditor::DoubleNodesOnGrou
+                                           //MESSAGE("  domain " << idom << " volume " << elem->GetID());
+                                           double values[3];
+                                           vtkIdType npts = 0;
+-                                          vtkIdType* pts = 0;
++                                          vtkIdTypePtr pts = 0;
+                                           grid->GetCellPoints(vtkVolIds[ivol], npts, pts);
+                                           SMDS_VtkVolume::gravityCenter(grid, pts, npts, values);
+                                           if (id ==0)
+@@ -11708,7 +11708,7 @@ bool SMESH_MeshEditor::DoubleNodesOnGrou
+         {
+           int oldId = itnod->first;
+           //MESSAGE("     node " << oldId);
+-          vtkCellLinks::Link l = grid->GetCellLinks()->GetLink(oldId);
++          vtkCellLinks::Link l = static_cast<vtkCellLinks*>(grid->GetCellLinks())->GetLink(oldId);
+           for (int i = 0; i < l.ncells; i++)
+             {
+               int vtkId = l.cells[i];
+@@ -12165,7 +12165,7 @@ void SMESH_MeshEditor::CreateHoleSkin(do
+           MESSAGE("volume to check,  vtkId " << vtkId << " smdsId " << meshDS->fromVtkToSmds(vtkId));
+           bool volInside = false;
+           vtkIdType npts = 0;
+-          vtkIdType* pts = 0;
++          vtkIdTypePtr pts = 0;
+           grid->GetCellPoints(vtkId, npts, pts);
+           for (int i=0; i<npts; i++)
+             {
+Index: FreeCAD-0.19.2/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp
+===================================================================
+--- FreeCAD-0.19.2.orig/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp
++++ FreeCAD-0.19.2/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp
+@@ -20,7 +20,6 @@
+  *                                                                         *
+  ***************************************************************************/
+ 
+-
+ #include "PreCompiled.h"
+ 
+ #ifndef _PreComp_
diff --git a/gnu/packages/patches/ganeti-deterministic-manual.patch b/gnu/packages/patches/ganeti-deterministic-manual.patch
deleted file mode 100644
index 2d90aa740e..0000000000
--- a/gnu/packages/patches/ganeti-deterministic-manual.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Sort the ecode list in the gnt-cluster manual for deterministic results.
-
-Submitted upstream: <https://github.com/ganeti/ganeti/pull/1504>.
-
-diff --git a/lib/build/sphinx_ext.py b/lib/build/sphinx_ext.py
---- a/lib/build/sphinx_ext.py
-+++ b/lib/build/sphinx_ext.py
-@@ -108,7 +108,7 @@ CV_ECODES_DOC = "ecodes"
- # pylint: disable=W0621
- CV_ECODES_DOC_LIST = [(name, doc) for (_, name, doc) in constants.CV_ALL_ECODES]
- DOCUMENTED_CONSTANTS = {
--  CV_ECODES_DOC: CV_ECODES_DOC_LIST,
-+  CV_ECODES_DOC: sorted(CV_ECODES_DOC_LIST, key=lambda tup: tup[0]),
-   }
- 
- 
diff --git a/gnu/packages/patches/ganeti-drbd-compat.patch b/gnu/packages/patches/ganeti-drbd-compat.patch
deleted file mode 100644
index 32f46bc7ed..0000000000
--- a/gnu/packages/patches/ganeti-drbd-compat.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-This patch adds support for newer versions of DRBD.
-
-Submitted upstream: <https://github.com/ganeti/ganeti/pull/1496>.
-
-diff --git a/lib/storage/drbd.py b/lib/storage/drbd.py
---- a/lib/storage/drbd.py
-+++ b/lib/storage/drbd.py
-@@ -315,6 +315,13 @@ class DRBD8Dev(base.BlockDev):
-     """
-     return self._show_info_cls.GetDevInfo(self._GetShowData(minor))
- 
-+  @staticmethod
-+  def _NeedsLocalSyncerParams():
-+    # For DRBD >= 8.4, syncer init must be done after local, not in net.
-+    info = DRBD8.GetProcInfo()
-+    version = info.GetVersion()
-+    return version["k_minor"] >= 4
-+
-   def _MatchesLocal(self, info):
-     """Test if our local config matches with an existing device.
- 
-@@ -397,6 +404,20 @@ class DRBD8Dev(base.BlockDev):
-         base.ThrowError("drbd%d: can't attach local disk: %s",
-                         minor, result.output)
- 
-+    def _WaitForMinorSyncParams():
-+      """Call _SetMinorSyncParams and raise RetryAgain on errors.
-+      """
-+      if self._SetMinorSyncParams(minor, self.params):
-+        raise utils.RetryAgain()
-+
-+    if self._NeedsLocalSyncerParams():
-+      # Retry because disk config for DRBD resource may be still uninitialized.
-+      try:
-+        utils.Retry(_WaitForMinorSyncParams, 1.0, 5.0)
-+      except utils.RetryTimeout as e:
-+        base.ThrowError("drbd%d: can't set the synchronization parameters: %s" %
-+                        (minor, utils.CommaJoin(e.args[0])))
-+
-   def _AssembleNet(self, minor, net_info, dual_pri=False, hmac=None,
-                    secret=None):
-     """Configure the network part of the device.
-@@ -432,21 +453,24 @@ class DRBD8Dev(base.BlockDev):
-     # sync speed only after setting up both sides can race with DRBD
-     # connecting, hence we set it here before telling DRBD anything
-     # about its peer.
--    sync_errors = self._SetMinorSyncParams(minor, self.params)
--    if sync_errors:
--      base.ThrowError("drbd%d: can't set the synchronization parameters: %s" %
--                      (minor, utils.CommaJoin(sync_errors)))
-+
-+    if not self._NeedsLocalSyncerParams():
-+      sync_errors = self._SetMinorSyncParams(minor, self.params)
-+      if sync_errors:
-+        base.ThrowError("drbd%d: can't set the synchronization parameters: %s" %
-+                        (minor, utils.CommaJoin(sync_errors)))
- 
-     family = self._GetNetFamily(minor, lhost, rhost)
- 
--    cmd = self._cmd_gen.GenNetInitCmd(minor, family, lhost, lport,
-+    cmds = self._cmd_gen.GenNetInitCmds(minor, family, lhost, lport,
-                                       rhost, rport, protocol,
-                                       dual_pri, hmac, secret, self.params)
- 
--    result = utils.RunCmd(cmd)
--    if result.failed:
--      base.ThrowError("drbd%d: can't setup network: %s - %s",
--                      minor, result.fail_reason, result.output)
-+    for cmd in cmds:
-+      result = utils.RunCmd(cmd)
-+      if result.failed:
-+        base.ThrowError("drbd%d: can't setup network: %s - %s",
-+                         minor, result.fail_reason, result.output)
- 
-     def _CheckNetworkConfig():
-       info = self._GetShowInfo(minor)
-@@ -463,19 +487,20 @@ class DRBD8Dev(base.BlockDev):
-       base.ThrowError("drbd%d: timeout while configuring network", minor)
- 
-     # Once the assembly is over, try to set the synchronization parameters
--    try:
--      # The minor may not have been set yet, requiring us to set it at least
--      # temporarily
--      old_minor = self.minor
--      self._SetFromMinor(minor)
--      sync_errors = self.SetSyncParams(self.params)
--      if sync_errors:
--        base.ThrowError("drbd%d: can't set the synchronization parameters: %s" %
--                        (self.minor, utils.CommaJoin(sync_errors)))
--    finally:
--      # Undo the change, regardless of whether it will have to be done again
--      # soon
--      self._SetFromMinor(old_minor)
-+    if not self._NeedsLocalSyncerParams():
-+      try:
-+        # The minor may not have been set yet, requiring us to set it at least
-+        # temporarily
-+        old_minor = self.minor
-+        self._SetFromMinor(minor)
-+        sync_errors = self.SetSyncParams(self.params)
-+        if sync_errors:
-+          base.ThrowError("drbd%d: can't set the synchronization parameters: %s" %
-+                          (self.minor, utils.CommaJoin(sync_errors)))
-+      finally:
-+        # Undo the change, regardless of whether it will have to be done again
-+        # soon
-+        self._SetFromMinor(old_minor)
- 
-   @staticmethod
-   def _GetNetFamily(minor, lhost, rhost):
-diff --git a/lib/storage/drbd_cmdgen.py b/lib/storage/drbd_cmdgen.py
---- a/lib/storage/drbd_cmdgen.py
-+++ b/lib/storage/drbd_cmdgen.py
-@@ -56,7 +56,7 @@ class BaseDRBDCmdGenerator(object):
-   def GenLocalInitCmds(self, minor, data_dev, meta_dev, size_mb, params):
-     raise NotImplementedError
- 
--  def GenNetInitCmd(self, minor, family, lhost, lport, rhost, rport, protocol,
-+  def GenNetInitCmds(self, minor, family, lhost, lport, rhost, rport, protocol,
-                     dual_pri, hmac, secret, params):
-     raise NotImplementedError
- 
-@@ -138,7 +138,7 @@ class DRBD83CmdGenerator(BaseDRBDCmdGenerator):
- 
-     return [args]
- 
--  def GenNetInitCmd(self, minor, family, lhost, lport, rhost, rport, protocol,
-+  def GenNetInitCmds(self, minor, family, lhost, lport, rhost, rport, protocol,
-                     dual_pri, hmac, secret, params):
-     args = ["drbdsetup", self._DevPath(minor), "net",
-             "%s:%s:%s" % (family, lhost, lport),
-@@ -155,7 +155,7 @@ class DRBD83CmdGenerator(BaseDRBDCmdGenerator):
-     if params[constants.LDP_NET_CUSTOM]:
-       args.extend(shlex.split(params[constants.LDP_NET_CUSTOM]))
- 
--    return args
-+    return [args]
- 
-   def GenSyncParamsCmd(self, minor, params):
-     args = ["drbdsetup", self._DevPath(minor), "syncer"]
-@@ -345,8 +345,14 @@ class DRBD84CmdGenerator(BaseDRBDCmdGenerator):
- 
-     return cmds
- 
--  def GenNetInitCmd(self, minor, family, lhost, lport, rhost, rport, protocol,
-+  def GenNetInitCmds(self, minor, family, lhost, lport, rhost, rport, protocol,
-                     dual_pri, hmac, secret, params):
-+    cmds = []
-+
-+    cmds.append(["drbdsetup", "new-resource", self._GetResource(minor)])
-+    cmds.append(["drbdsetup", "new-minor", self._GetResource(minor),
-+                 str(minor), "0"])
-+
-     args = ["drbdsetup", "connect", self._GetResource(minor),
-             "%s:%s:%s" % (family, lhost, lport),
-             "%s:%s:%s" % (family, rhost, rport),
-@@ -362,7 +368,8 @@ class DRBD84CmdGenerator(BaseDRBDCmdGenerator):
-     if params[constants.LDP_NET_CUSTOM]:
-       args.extend(shlex.split(params[constants.LDP_NET_CUSTOM]))
- 
--    return args
-+    cmds.append(args)
-+    return cmds
- 
-   def GenSyncParamsCmd(self, minor, params):
-     args = ["drbdsetup", "disk-options", minor]
diff --git a/gnu/packages/patches/ganeti-haskell-compat.patch b/gnu/packages/patches/ganeti-haskell-compat.patch
new file mode 100644
index 0000000000..931c50e116
--- /dev/null
+++ b/gnu/packages/patches/ganeti-haskell-compat.patch
@@ -0,0 +1,18 @@
+Adjust to type change of TupE in Template Haskell 2.16.
+
+diff --git a/src/Ganeti/THH/Types.hs b/src/Ganeti/THH/Types.hs
+--- a/src/Ganeti/THH/Types.hs
++++ b/src/Ganeti/THH/Types.hs
+@@ -123,4 +123,11 @@ curryN n = do
+   f <- newName "f"
+   ps <- replicateM n (newName "x")
+   return $ LamE (VarP f : map VarP ps)
+-             (AppE (VarE f) (TupE $ map VarE ps))
++             (AppE (VarE f) (nonUnaryTupE $ map VarE ps))
++  where
++    nonUnaryTupE :: [Exp] -> Exp
++    nonUnaryTupE es = TupE $
++#if MIN_VERSION_template_haskell(2,16,0)
++                            map Just
++#endif
++                            es
diff --git a/gnu/packages/patches/ganeti-os-disk-size.patch b/gnu/packages/patches/ganeti-os-disk-size.patch
deleted file mode 100644
index 16b1d7615c..0000000000
--- a/gnu/packages/patches/ganeti-os-disk-size.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-This exposes information about disk sizes to OS install scripts.  instance-guix
-uses this if available to determine the size of the VM image.
-
-Submitted upstream:
-https://github.com/ganeti/ganeti/pull/1503
-
-diff --git a/lib/backend.py b/lib/backend.py
---- a/lib/backend.py
-+++ b/lib/backend.py
-@@ -4305,6 +4305,7 @@ def OSEnvironment(instance, inst_os, debug=0):
-     uri = _CalculateDeviceURI(instance, disk, real_disk)
-     result["DISK_%d_ACCESS" % idx] = disk.mode
-     result["DISK_%d_UUID" % idx] = disk.uuid
-+    result["DISK_%d_SIZE" % idx] = str(disk.size)
-     if real_disk.dev_path:
-       result["DISK_%d_PATH" % idx] = real_disk.dev_path
-     if uri:
diff --git a/gnu/packages/patches/ganeti-sphinx-compat.patch b/gnu/packages/patches/ganeti-sphinx-compat.patch
new file mode 100644
index 0000000000..4e84abbf37
--- /dev/null
+++ b/gnu/packages/patches/ganeti-sphinx-compat.patch
@@ -0,0 +1,24 @@
+Adjust documentation for Sphinx 4.0.
+
+Discussed upstream at <https://github.com/ganeti/ganeti/pull/1615>.
+
+diff --git a/doc/index.rst b/doc/index.rst
+--- a/doc/index.rst
++++ b/doc/index.rst
+@@ -119,7 +119,6 @@ Draft designs
+    design-hotplug.rst
+    design-internal-shutdown.rst
+    design-kvmd.rst
+-   design-location.rst
+    design-linuxha.rst
+    design-location.rst
+    design-lu-generated-jobs.rst
+diff --git a/lib/build/shell_example_lexer.py b/lib/build/shell_example_lexer.py
+--- a/lib/build/shell_example_lexer.py
++++ b/lib/build/shell_example_lexer.py
+@@ -79,4 +79,4 @@ class ShellExampleLexer(RegexLexer):
+ 
+ 
+ def setup(app):
+-  app.add_lexer("shell-example", ShellExampleLexer())
++  app.add_lexer("shell-example", ShellExampleLexer)
diff --git a/gnu/packages/patches/gcc-5-fix-powerpc64le-build.patch b/gnu/packages/patches/gcc-5-fix-powerpc64le-build.patch
new file mode 100644
index 0000000000..289d648875
--- /dev/null
+++ b/gnu/packages/patches/gcc-5-fix-powerpc64le-build.patch
@@ -0,0 +1,64 @@
+From ee6c0081c03330045b3d4cde8421cd1d3a459609 Mon Sep 17 00:00:00 2001
+From: Martin Liska <mliska@suse.cz>
+Date: Fri, 15 Jun 2018 10:51:28 +0200
+Subject: [PATCH] Partial backport r256656
+
+2018-06-15  Martin Liska  <mliska@suse.cz>
+
+	Backport from mainline
+	2018-01-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+
+	* lex.c (search_line_fast): Remove illegal coercion of an
+	unaligned pointer value to vector pointer type and replace with
+	use of __builtin_vec_vsx_ld () built-in function, which operates
+	on unaligned pointer values.
+
+From-SVN: r261621
+---
+
+Obtained from:
+
+https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=ee6c0081c03330045b3d4cde8421cd1d3a459609
+
+The libcpp/ChangeLog hunk was modified to apply on top of gcc-5's libcpp/ChangeLog.
+
+ libcpp/ChangeLog | 12 ++++++++++++
+ libcpp/lex.c     |  2 +-
+ 2 files changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
+index c920a05d438..a63abb04f5e 100644
+--- a/libcpp/ChangeLog
++++ b/libcpp/ChangeLog
+@@ -1,3 +1,15 @@
++2018-06-15  Martin Liska  <mliska@suse.cz>
++
++	PR bootstrap/86162
++
++	Backport from mainline
++	2018-01-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
++
++	* lex.c (search_line_fast): Remove illegal coercion of an
++	unaligned pointer value to vector pointer type and replace with
++	use of __builtin_vec_vsx_ld () built-in function, which operates
++	on unaligned pointer values.
++
+ 2017-10-10  Release Manager
+ 
+ 	* GCC 5.5.0 released.
+diff --git a/libcpp/lex.c b/libcpp/lex.c
+index e5a0397f309..b789686f1c4 100644
+--- a/libcpp/lex.c
++++ b/libcpp/lex.c
+@@ -568,7 +568,7 @@ search_line_fast (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
+     {
+       vc m_nl, m_cr, m_bs, m_qm;
+ 
+-      data = *((const vc *)s);
++      data = __builtin_vec_vsx_ld (0, s);
+       s += 16;
+ 
+       m_nl = (vc) __builtin_vec_cmpeq(data, repl_nl);
+-- 
+2.27.0
+
diff --git a/gnu/packages/patches/gd-Revert-fix-303-gdlib.pc-use-Requires-instead-of-Libs.patch b/gnu/packages/patches/gd-Revert-fix-303-gdlib.pc.patch
index 6329b129d3..6329b129d3 100644
--- a/gnu/packages/patches/gd-Revert-fix-303-gdlib.pc-use-Requires-instead-of-Libs.patch
+++ b/gnu/packages/patches/gd-Revert-fix-303-gdlib.pc.patch
diff --git a/gnu/packages/patches/gdb-fix-gnu-nat-build.patch b/gnu/packages/patches/gdb-fix-gnu-nat-build.patch
new file mode 100644
index 0000000000..b0249d9cec
--- /dev/null
+++ b/gnu/packages/patches/gdb-fix-gnu-nat-build.patch
@@ -0,0 +1,254 @@
+Fix build on the Hurd.
+
+Patch #1 taken from upstream
+
+    https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=a1700a3199d31910b87cd7db3c394ddd091cfcde
+
+Patch #2 taken from upstream mailing list
+
+    https://sourceware.org/pipermail/gdb/2021-November/049777.html
+
+Patch #3 sent to upstream
+
+    https://sourceware.org/pipermail/gdb/2021-November/049788.html
+
+From 30d89407ad6bb62fafc72fa9c547c2d7ff371401 Mon Sep 17 00:00:00 2001
+From: Simon Marchi <simon.marchi@polymtl.ca>
+Date: Wed, 3 Nov 2021 15:09:19 -0400
+Subject: [PATCH 1/3] gdb: fix gnu-nat build
+Content-Transfer-Encoding: 8bit
+Content-Type: text/plain; charset=UTF-8
+
+When building gnu-nat.c, we get:
+
+      CXX    gnu-nat.o
+    gnu-nat.c: In member function 'virtual void gnu_nat_target::create_inferior(const char*, const string&, char**, int)':
+    gnu-nat.c:2117:13: error: 'struct inf' has no member named 'target_is_pushed'
+     2117 |   if (!inf->target_is_pushed (this))
+          |             ^~~~~~~~~~~~~~~~
+    gnu-nat.c:2118:10: error: 'struct inf' has no member named 'push_target'
+     2118 |     inf->push_target (this);
+          |          ^~~~~~~~~~~
+
+This is because of a confusion between the generic `struct inferior`
+variable and the gnu-nat-specific `struct inf` variable.  Fix by
+referring to `inferior`, not `inf`.
+
+Adjust the comment on top of `struct inf` to clarify the purpose of that
+type.
+
+Co-Authored-By: Andrea Monaco <andrea.monaco@autistici.org>
+Change-Id: I2fe2f7f6ef61a38d79860fd262b08835c963fc77
+---
+ gdb/gnu-nat.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
+index 67ce00e9c30..ab539b4d8b4 100644
+--- a/gdb/gnu-nat.c
++++ b/gdb/gnu-nat.c
+@@ -149,7 +149,7 @@ struct inf_wait
+     int suppress;		/* Something trivial happened.  */
+   };
+ 
+-/* The state of an inferior.  */
++/* Further Hurd-specific state of an inferior.  */
+ struct inf
+   {
+     /* Fields describing the current inferior.  */
+@@ -2114,8 +2114,8 @@ gnu_nat_target::create_inferior (const char *exec_file,
+ 
+   inf_debug (inf, "creating inferior");
+ 
+-  if (!inf->target_is_pushed (this))
+-    inf->push_target (this);
++  if (!inferior->target_is_pushed (this))
++    inferior->push_target (this);
+ 
+   pid = fork_inferior (exec_file, allargs, env, gnu_ptrace_me,
+ 		       NULL, NULL, NULL, NULL);
+From ebc0837f4693232f74eb2cc3033515b18a8f0900 Mon Sep 17 00:00:00 2001
+From: "Jan (janneke) Nieuwenhuizen" <janneke@gnu.org>
+Date: Mon, 22 Nov 2021 07:47:28 +0100
+Subject: [PATCH 2/3] gdb: gnu-nat.c: port-rights.
+Content-Transfer-Encoding: 8bit
+Content-Type: text/plain; charset=UTF-8
+
+Taken from:
+
+    https://sourceware.org/pipermail/gdb/2021-November/049777.html
+---
+ gdb/gnu-nat.c | 18 ++++++++++--------
+ 1 file changed, 10 insertions(+), 8 deletions(-)
+
+diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
+index ab539b4d8b4..8cd876b21d0 100644
+--- a/gdb/gnu-nat.c
++++ b/gdb/gnu-nat.c
+@@ -3292,15 +3292,17 @@ This is the same as setting `task pause', `exceptions', and\n\
+ 	    _("Show information about the task's send rights."));
+   add_info ("receive-rights", info_recv_rights_cmd,
+ 	    _("Show information about the task's receive rights."));
+-  add_info ("port-rights", info_port_rights_cmd,
+-	    _("Show information about the task's port rights."));
+-  add_info ("port-sets", info_port_sets_cmd,
+-	    _("Show information about the task's port sets."));
++  cmd_list_element *port_rights_cmd =
++    add_info ("port-rights", info_port_rights_cmd,
++             _("Show information about the task's port rights."));
++  cmd_list_element *port_sets_cmd =
++    add_info ("port-sets", info_port_sets_cmd,
++             _("Show information about the task's port sets."));
+   add_info ("dead-names", info_dead_names_cmd,
+-	    _("Show information about the task's dead names."));
+-  add_info_alias ("ports", "port-rights", 1);
+-  add_info_alias ("port", "port-rights", 1);
+-  add_info_alias ("psets", "port-sets", 1);
++            _("Show information about the task's dead names."));
++  add_info_alias ("ports", port_rights_cmd, 1);
++  add_info_alias ("port", port_rights_cmd, 1);
++  add_info_alias ("psets", port_sets_cmd, 1);
+ }
+ 
+ 
+From e8df985cdd95e4808c390e226a0e852d23c502f9 Mon Sep 17 00:00:00 2001
+From: "Jan (janneke) Nieuwenhuizen" <janneke@gnu.org>
+Date: Mon, 22 Nov 2021 08:22:15 +0100
+Subject: [PATCH 3/3] gdb: More compile fixes for gnu-nat.c.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+Content-Transfer-Encoding: 8bit
+Content-Type: text/plain; charset=UTF-8
+
+This fixes compile errors like
+
+    ../../gdb-11.1/gdb/gnu-nat.c: In function ‘void add_task_commands()’:
+    ../../gdb-11.1/gdb/gnu-nat.c:3204:17: error: no matching function for call to ‘add_cmd(const char [8], command_class, cmd_list_element*&, char*, cmd_list_element**)’
+     3204 |         &setlist);
+          |                 ^
+    In file included from ../../gdb-11.1/gdb/completer.h:21,
+                     from ../../gdb-11.1/gdb/symtab.h:36,
+                     from ../../gdb-11.1/gdb/infrun.h:21,
+                     from ../../gdb-11.1/gdb/target.h:42,
+                     from ../../gdb-11.1/gdb/inf-child.h:23,
+                     from ../../gdb-11.1/gdb/gnu-nat.h:38,
+                     from ../../gdb-11.1/gdb/gnu-nat.c:24:
+    ../../gdb-11.1/gdb/command.h:160:33: note: candidate: ‘cmd_list_element* add_cmd(const char*, command_class, void (*)(const char*, int), const char*, cmd_list_element**)’
+      160 | extern struct cmd_list_element *add_cmd (const char *, enum command_class,
+          |                                 ^~~~~~~
+    ../../gdb-11.1/gdb/command.h:161:30: note:   no known conversion for argument 3 from ‘cmd_list_element*’ to ‘void (*)(const char*, int)’
+      161 |       cmd_const_cfunc_ftype *fun,
+          |       ~~~~~~~~~~~~~~~~~~~~~~~^~~
+    ../../gdb-11.1/gdb/command.h:167:33: note: candidate: ‘cmd_list_element* add_cmd(const char*, command_class, const char*, cmd_list_element**)’
+      167 | extern struct cmd_list_element *add_cmd (const char *, enum command_class,
+          |                                 ^~~~~~~
+    ../../gdb-11.1/gdb/command.h:167:33: note:   candidate expects 4 arguments, 5 provided
+    ../../gdb-11.1/gdb/gnu-nat.c:3210:18: error: no matching function for call to ‘add_cmd(const char [8], command_class, cmd_list_element*&, char*, cmd_list_element**)’
+     3210 |         &showlist);
+          |                  ^
+
+* gdb/gnu-nat.c (add_task_commands): Use a fresh variable instead of
+shadowing set_signals_cmd etc.
+(add_thread_commands): Likewise.
+---
+ gdb/gnu-nat.c | 33 +++++++++++++++++----------------
+ 1 file changed, 17 insertions(+), 16 deletions(-)
+
+diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
+index 8cd876b21d0..7aecc2295f8 100644
+--- a/gdb/gnu-nat.c
++++ b/gdb/gnu-nat.c
+@@ -3197,31 +3197,31 @@ Show whether new threads are allowed to run (once gdb has noticed them)."),
+ 	   _("Show the default detach-suspend-count value for new threads."),
+ 	   &show_thread_default_cmd_list);
+ 
+-  cmd_list_element *set_signals_cmd
++  cmd_list_element *set_signals_cmd_
+     = add_cmd ("signals", class_run, set_signals_cmd, _("\
+ Set whether the inferior process's signals will be intercepted.\n\
+ Mach exceptions (such as breakpoint traps) are not affected."),
+ 	       &setlist);
+-  add_alias_cmd ("sigs", set_signals_cmd, class_run, 1, &setlist);
++  add_alias_cmd ("sigs", set_signals_cmd_, class_run, 1, &setlist);
+ 
+-  cmd_list_element *show_signals_cmd
++  cmd_list_element *show_signals_cmd_
+     = add_cmd ("signals", no_class, show_signals_cmd, _("\
+ Show whether the inferior process's signals will be intercepted."),
+ 	       &showlist);
+-  add_alias_cmd ("sigs", show_signals_cmd, no_class, 1, &showlist);
++  add_alias_cmd ("sigs", show_signals_cmd_, no_class, 1, &showlist);
+ 
+-  cmd_list_element *set_signal_thread_cmd
++  cmd_list_element *set_signal_thread_cmd_
+     = add_cmd ("signal-thread", class_run, set_sig_thread_cmd, _("\
+ Set the thread that gdb thinks is the libc signal thread.\n\
+ This thread is run when delivering a signal to a non-stopped process."),
+ 	       &setlist);
+-  add_alias_cmd ("sigthread", set_signal_thread_cmd, class_run, 1, &setlist);
++  add_alias_cmd ("sigthread", set_signal_thread_cmd_, class_run, 1, &setlist);
+ 
+-  cmd_list_element *show_signal_thread_cmd
++  cmd_list_element *show_signal_thread_cmd_
+     = add_cmd ("signal-thread", no_class, show_sig_thread_cmd, _("\
+ Set the thread that gdb thinks is the libc signal thread."),
+ 	       &showlist);
+-  add_alias_cmd ("sigthread", show_signal_thread_cmd, no_class, 1, &showlist);
++  add_alias_cmd ("sigthread", show_signal_thread_cmd_, no_class, 1, &showlist);
+ 
+   add_cmd ("stopped", class_run, set_stopped_cmd, _("\
+ Set whether gdb thinks the inferior process is stopped as with SIGSTOP.\n\
+@@ -3231,13 +3231,13 @@ Stopped process will be continued by sending them a signal."),
+ Show whether gdb thinks the inferior process is stopped as with SIGSTOP."),
+ 	   &showlist);
+ 
+-  cmd_list_element *set_exceptions_cmd
++  cmd_list_element *set_exceptions_cmd_
+     = add_cmd ("exceptions", class_run, set_exceptions_cmd, _("\
+ Set whether exceptions in the inferior process will be trapped.\n\
+ When exceptions are turned off, neither breakpoints nor single-stepping\n\
+ will work."), &setlist);
+   /* Allow `set exc' despite conflict with `set exception-port'.  */
+-  add_alias_cmd ("exc", set_exceptions_cmd, class_run, 1, &setlist);
++  add_alias_cmd ("exc", set_exceptions_cmd_, class_run, 1, &setlist);
+ 
+   add_cmd ("exceptions", no_class, show_exceptions_cmd, _("\
+ Show whether exceptions in the inferior process will be trapped."),
+@@ -3269,14 +3269,14 @@ used to pause individual threads by default instead."),
+ 	     "on the thread when detaching."),
+ 	   &show_task_cmd_list);
+ 
+-  cmd_list_element *set_task_exception_port_cmd
++  cmd_list_element *set_task_exception_port_cmd_
+     = add_cmd ("exception-port", no_class, set_task_exc_port_cmd, _("\
+ Set the task exception port to which we forward exceptions.\n\
+ The argument should be the value of the send right in the task."),
+ 	       &set_task_cmd_list);
+-  add_alias_cmd ("excp", set_task_exception_port_cmd, no_class, 1,
++  add_alias_cmd ("excp", set_task_exception_port_cmd_, no_class, 1,
+ 		 &set_task_cmd_list);
+-  add_alias_cmd ("exc-port", set_task_exception_port_cmd, no_class, 1,
++  add_alias_cmd ("exc-port", set_task_exception_port_cmd_, no_class, 1,
+ 		 &set_task_cmd_list);
+ 
+   /* A convenient way of turning on all options require to noninvasively
+@@ -3464,14 +3464,15 @@ Note that this is relative to suspend count when gdb noticed the thread;\n\
+ use the `thread takeover-suspend-count' to force it to an absolute value."),
+ 	   &show_thread_cmd_list);
+ 
+-  add_cmd ("exception-port", no_class, set_thread_exc_port_cmd, _("\
++  cmd_list_element *set_thread_exception_port_cmd_
++    = add_cmd ("exception-port", no_class, set_thread_exc_port_cmd, _("\
+ Set the thread exception port to which we forward exceptions.\n\
+ This overrides the task exception port.\n\
+ The argument should be the value of the send right in the task."),
+ 	   &set_thread_cmd_list);
+-  add_alias_cmd ("excp", set_thread_exception_port_cmd, no_class, 1,
++  add_alias_cmd ("excp", set_thread_exception_port_cmd_, no_class, 1,
+ 		 &set_thread_cmd_list);
+-  add_alias_cmd ("exc-port", set_thread_exception_port_cmd, no_class, 1,
++  add_alias_cmd ("exc-port", set_thread_exception_port_cmd_, no_class, 1,
+ 		 &set_thread_cmd_list);
+ 
+   add_cmd ("takeover-suspend-count", no_class, thread_takeover_sc_cmd, _("\
diff --git a/gnu/packages/patches/gdb-hurd.patch b/gnu/packages/patches/gdb-hurd.patch
deleted file mode 100644
index 0af8d4dc28..0000000000
--- a/gnu/packages/patches/gdb-hurd.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-Taken from upstream, removed ChangeLog.
-
-From 6930bffe3373690b3431d6291f9f7c116d6a1ec4 Mon Sep 17 00:00:00 2001
-From: Samuel Thibault <samuel.thibault@ens-lyon.org>
-Date: Sat, 30 May 2020 18:35:59 +0000
-Subject: [PATCH] hurd: fix gnu_debug_flag type
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fixes
-
-../../gdb/gnu-nat.c:96:6: error: conflicting declaration ‘bool gnu_debug_flag’
-   96 | bool gnu_debug_flag = false;
-../../gdb/gnu-nat.c: In function ‘void _initialize_gnu_nat()’:
-../../gdb/gnu-nat.c:3511:7: error: cannot
-
-gdb/ChangeLog:
-
-	* gnu-nat.h (gnu_debug_flag): Set type to bool.
----
- gdb/ChangeLog | 4 ++++
- gdb/gnu-nat.h | 2 +-
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/gdb/gnu-nat.h b/gdb/gnu-nat.h
-index 77c57817b2..766f716587 100644
---- a/gdb/gnu-nat.h
-+++ b/gdb/gnu-nat.h
-@@ -111,7 +111,7 @@ extern char *proc_string (struct proc *proc);
- 	      __proc_pid (__proc), __proc->tid, \
- 	      host_address_to_string (__proc) , ##args); } while (0)
- 
--extern int gnu_debug_flag;
-+extern bool gnu_debug_flag;
- 
- #define debug(msg, args...) \
-  do { if (gnu_debug_flag) \
--- 
-Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
-Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
-
-commit 366f550a593c7e6bae3699a4b6d65fe937af5603
-Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
-Date:   Sat May 30 18:41:30 2020 +0000
-
-    hurd: add missing include
-    
-    Fixes
-    
-    ../../gdb/gnu-nat.c:2522:14: error: ‘target_gdbarch’ was not declared in this scope; did you mean ‘target_detach’?
-     2522 |    paddress (target_gdbarch (), memaddr), pulongest (len),
-    
-    gdb/Changelog:
-    
-            * gnu-nat.c: Include "gdbarch.h".
-
-diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
-index 3b438a9a43..9b93488b41 100644
---- a/gdb/gnu-nat.c
-+++ b/gdb/gnu-nat.c
-@@ -64,6 +64,7 @@ extern "C"
- #include "language.h"
- #include "target.h"
- #include "gdbsupport/gdb_wait.h"
-+#include "gdbarch.h"
- #include "gdbcmd.h"
- #include "gdbcore.h"
- #include "gdbthread.h"
diff --git a/gnu/packages/patches/gdm-default-session.patch b/gnu/packages/patches/gdm-default-session.patch
index 9ab2829cdb..8325b6102b 100644
--- a/gnu/packages/patches/gdm-default-session.patch
+++ b/gnu/packages/patches/gdm-default-session.patch
@@ -4,11 +4,9 @@ and not in the directories listed in $XDG_DATA_DIRS.  The latter includes
 /run/current-system/profile, and only then.
 
 Fixes <https://bugs.gnu.org/37831>.
-
-diff -ur a/daemon/gdm-session.c b/daemon/gdm-session.c
---- a/daemon/gdm-session.c	2019-09-25 10:40:24.000000000 -0400
-+++ b/daemon/gdm-session.c	2020-04-18 18:30:02.671856808 -0400
-@@ -348,24 +348,18 @@
+--- a/daemon/gdm-session.c	2021-07-23 15:16:15.164201000 +0000
++++ b/daemon/gdm-session.c	2021-09-26 08:18:58.730134555 +0000
+@@ -354,25 +354,19 @@
          GArray *search_array = NULL;
          char **search_dirs;
          int i;
@@ -19,22 +17,24 @@ diff -ur a/daemon/gdm-session.c b/daemon/gdm-session.c
                  DMCONFDIR "/Sessions/",
                  DATADIR "/gdm/BuiltInSessions/",
 -                DATADIR "/xsessions/",
-+                "/run/current-system/profile/share/xsessions/"
++                "/run/current-system/profile/share/xsessions/",
          };
  
-         static const char *wayland_search_dir = DATADIR "/wayland-sessions/";
+-        static const char *wayland_search_dir = DATADIR "/wayland-sessions/";
++        static const char *wayland_search_dir = "/run/current-system/profile/share/wayland-sessions/";
  
          search_array = g_array_new (TRUE, TRUE, sizeof (char *));
  
--        for (i = 0; system_data_dirs[i]; i++) {
--                gchar *dir = g_build_filename (system_data_dirs[i], "xsessions", NULL);
--                g_array_append_val (search_array, dir);
--        }
+         if (type == NULL || g_str_equal (type, "x11")) {
+-                for (i = 0; system_data_dirs[i]; i++) {
+-                        gchar *dir = g_build_filename (system_data_dirs[i], "xsessions", NULL);
+-                        g_array_append_val (search_array, dir);
+-                }
 -
-         g_array_append_vals (search_array, x_search_dirs, G_N_ELEMENTS (x_search_dirs));
+                 g_array_append_vals (search_array, x_search_dirs, G_N_ELEMENTS (x_search_dirs));
+         }
  
- #ifdef ENABLE_WAYLAND_SUPPORT
-@@ -373,16 +367,7 @@
+@@ -382,16 +376,7 @@
  #ifdef ENABLE_USER_DISPLAY_SERVER
                  g_array_prepend_val (search_array, wayland_search_dir);
  
@@ -54,7 +54,7 @@ diff -ur a/daemon/gdm-session.c b/daemon/gdm-session.c
 diff -ur a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c
 --- a/libgdm/gdm-sessions.c	2019-10-07 04:53:35.000000000 -0400
 +++ b/libgdm/gdm-sessions.c	2020-04-18 18:31:42.491348691 -0400
-@@ -245,19 +245,12 @@
+@@ -245,35 +245,23 @@
                  "/etc/X11/sessions/",
                  DMCONFDIR "/Sessions/",
                  DATADIR "/gdm/BuiltInSessions/",
@@ -75,7 +75,12 @@ diff -ur a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c
          for (i = 0; i < G_N_ELEMENTS (xorg_search_dirs); i++) {
                  g_ptr_array_add (xorg_search_array, g_strdup (xorg_search_dirs[i]));
          }
-@@ -269,11 +262,6 @@
+ 
+ #ifdef ENABLE_WAYLAND_SUPPORT
+         const char *wayland_search_dirs[] = {
+-                DATADIR "/wayland-sessions/",
++                "/run/current-system/profile/share/wayland-sessions/",
+         };
  
          wayland_search_array = g_ptr_array_new_with_free_func (g_free);
  
diff --git a/gnu/packages/patches/gdm-elogind-support.patch b/gnu/packages/patches/gdm-elogind-support.patch
new file mode 100644
index 0000000000..39cd12dd22
--- /dev/null
+++ b/gnu/packages/patches/gdm-elogind-support.patch
@@ -0,0 +1,211 @@
+https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/113
+
+From 462cc0f5346f5913cf7151044f1c232c5d21c1c3 Mon Sep 17 00:00:00 2001
+From: Dudemanguy <random342@airmail.cc>
+Date: Mon, 5 Oct 2020 18:41:55 -0500
+Subject: [PATCH] meson: allow building with elogind
+
+Currently, the GDM meson build has a hard dependency on systemd.
+However, GDM can function just fine if one is using elogind. This allows
+a user to build GDM against libelogind and also disable the systemd
+system and user units.
+---
+ common/meson.build                       |  2 +-
+ data/meson.build                         | 62 ++++++++++++++----------
+ data/pam-arch/gdm-launch-environment.pam |  1 +
+ libgdm/meson.build                       |  2 +-
+ meson.build                              | 36 +++++++++-----
+ meson_options.txt                        |  5 +-
+ 6 files changed, 66 insertions(+), 42 deletions(-)
+
+diff --git a/common/meson.build b/common/meson.build
+index 074dd92e1..bca58f7c4 100644
+--- a/common/meson.build
++++ b/common/meson.build
+@@ -11,7 +11,7 @@ libgdmcommon_src = files(
+ )
+ 
+ libgdmcommon_deps = [
+-  libsystemd_dep,
++  logind_dep,
+   gobject_dep,
+   gio_dep,
+   gio_unix_dep,
+diff --git a/data/meson.build b/data/meson.build
+index 7c5222eaf..403336c31 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -168,41 +168,53 @@ else
+   service_config.set('PLYMOUTH_QUIT_SERVICE', '')
+ endif
+ 
+-if get_option('systemdsystemunitdir') != ''
+-  systemd_systemunitdir = get_option('systemdsystemunitdir')
+-else
+-  systemd_systemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir')
++systemdsystemunitdir = get_option('systemdsystemunitdir')
++if systemdsystemunitdir != 'no'
++  assert(systemd_dep.found(), 'systemd required but not found, please provide a valid systemd system unit dir or disable it')
++  if get_option('systemdsystemunitdir') != ''
++    systemd_systemunitdir = get_option('systemdsystemunitdir')
++  else
++    systemd_systemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir')
++  endif
+ endif
+ 
+-if get_option('systemduserunitdir') != ''
+-  systemd_userunitdir = get_option('systemduserunitdir')
+-else
+-  systemd_userunitdir = systemd_dep.get_pkgconfig_variable('systemduserunitdir',
+-                                                           define_variable: ['prefix', get_option('prefix')])
++systemduserunitdir = get_option('systemduserunitdir')
++if systemduserunitdir != 'no'
++  assert(systemd_dep.found(), 'systemd required but not found, please provide a valid systemd user unit dir or disable it')
++  if get_option('systemduserunitdir') != ''
++    systemd_userunitdir = get_option('systemduserunitdir')
++  else
++    systemd_userunitdir = systemd_dep.get_pkgconfig_variable('systemduserunitdir',
++                                                             define_variable: ['prefix', get_option('prefix')])
++  endif
+ endif
+ 
+-configure_file(
+-  input: 'gdm.service.in',
+-  output: '@BASENAME@',
+-  configuration: service_config,
+-  install_dir: systemd_systemunitdir,
+-  format: 'cmake'
+-)
++if systemdsystemunitdir != 'no'
++  configure_file(
++    input: 'gdm.service.in',
++    output: '@BASENAME@',
++    configuration: service_config,
++    install_dir: systemd_systemunitdir,
++    format: 'cmake'
++  )
++endif
+ 
+ gdm_gnome_session_wanted_targets = []
+ foreach component: gdm_gnome_user_session_wanted_components
+   gdm_gnome_session_wanted_targets += 'Wants=@0@.target'.format(component)
+ endforeach
+ 
+-configure_file(
+-  input: 'session.conf.in',
+-  output: 'session.conf',
+-  configuration: {
+-    'requires_component': gdm_gnome_shell_component,
+-    'wants_required_components': '\n'.join(gdm_gnome_session_wanted_targets),
+-  },
+-  install_dir: systemd_userunitdir / 'gnome-session@gnome-login.target.d',
+-)
++if systemduserunitdir != 'no'
++  configure_file(
++    input: 'session.conf.in',
++    output: 'session.conf',
++    configuration: {
++      'requires_component': gdm_gnome_shell_component,
++      'wants_required_components': '\n'.join(gdm_gnome_session_wanted_targets),
++    },
++    install_dir: systemd_userunitdir / 'gnome-session@gnome-login.target.d',
++  )
++endif
+ 
+ # XSession
+ if get_option('gdm-xsession')
+diff --git a/libgdm/meson.build b/libgdm/meson.build
+index 3f8cafbb7..83e95151b 100644
+--- a/libgdm/meson.build
++++ b/libgdm/meson.build
+@@ -56,7 +56,7 @@ libgdm_deps = [
+   glib_dep,
+   gio_dep,
+   gio_unix_dep,
+-  libsystemd_dep,
++  logind_dep,
+   libgdmcommon_dep,
+ ]
+ 
+diff --git a/meson.build b/meson.build
+index e6fcf4b8b..a86a486b7 100644
+--- a/meson.build
++++ b/meson.build
+@@ -92,21 +92,30 @@ xdmcp_dep = cc.find_library('Xdmcp', required: get_option('xdmcp'))
+ if xdmcp_dep.found() and get_option('tcp-wrappers')
+   libwrap_dep = cc.find_library('libwrap')
+ endif
+-# systemd
+-systemd_dep = dependency('systemd')
+-libsystemd_dep = dependency('libsystemd')
+-if meson.version().version_compare('>= 0.53')
+-  systemd_multiseat_x = find_program('systemd-multi-seat-x',
+-    required: false,
+-    dirs: [
+-      systemd_dep.get_pkgconfig_variable('systemdutildir'),
+-      '/lib/systemd',
+-      '/usr/lib/systemd',
+-    ])
++
++logind_provider = get_option('logind-provider')
++systemd_dep = dependency('systemd', required: false)
++if logind_provider == 'systemd'
++  libsystemd_dep = dependency('libsystemd')
++  logind_dep = libsystemd_dep
++  if meson.version().version_compare('>= 0.53')
++    systemd_multiseat_x = find_program('systemd-multi-seat-x',
++      required: false,
++      dirs: [
++        systemd_dep.get_pkgconfig_variable('systemdutildir'),
++        '/lib/systemd',
++        '/usr/lib/systemd',
++      ])
++  else
++    systemd_multiseat_x = find_program('systemd-multi-seat-x', required: false)
++  endif
++  systemd_x_server = systemd_multiseat_x.found()? systemd_multiseat_x.path() : '/lib/systemd/systemd-multi-seat-x'
+ else
+-  systemd_multiseat_x = find_program('systemd-multi-seat-x', required: false)
++  elogind_dep = dependency('libelogind')
++  logind_dep = elogind_dep
++  systemd_x_server = 'disabled'
+ endif
+-systemd_x_server = systemd_multiseat_x.found()? systemd_multiseat_x.path() : '/lib/systemd/systemd-multi-seat-x'
++
+ # Plymouth
+ plymouth_dep = dependency('ply-boot-client', required: get_option('plymouth'))
+ # Check for Solaris auditing API (ADT)
+@@ -313,6 +322,7 @@ summary({
+     'PAM Syslog': have_pam_syslog,
+     'Supports PAM Extensions': pam_extensions_supported,
+     'SeLinux': libselinux_dep.found(),
++    'Logind Provider': get_option('logind-provider'),
+     'Use GDM Xsession': get_option('gdm-xsession'),
+     'Use UserDisplayServer': get_option('user-display-server'),
+     'Use SystemdJournal': get_option('systemd-journal'),
+diff --git a/meson_options.txt b/meson_options.txt
+index 14e0b908b..5135d7d66 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -12,6 +12,7 @@ option('initial-vt', type: 'integer', value: 1, description: 'Initial virtual te
+ option('ipv6', type: 'boolean', value: false, description: 'Enables compilation of IPv6 code.')
+ option('lang-file', type: 'string', value: '', description: 'File containing default language settings.')
+ option('libaudit', type: 'feature', value: 'auto', description: 'Add Linux audit support.')
++option('logind-provider', type: 'combo', choices: ['systemd', 'elogind'], value: 'systemd', description: 'Which logind library to use.')
+ option('log-dir', type: 'string', value: '/var/log/gdm', description: 'Log directory.')
+ option('pam-mod-dir', type: 'string', value: '', description: 'Directory to install PAM modules in.')
+ option('pam-prefix', type: 'string', value: '', description: 'Specify where PAM files go.')
+@@ -27,8 +28,8 @@ option('solaris', type: 'boolean', value: false, description: 'Build for Solaris
+ option('split-authentication', type: 'boolean', value: true, description: 'Enable multiple simultaneous PAM conversations during login.')
+ option('sysconfsubdir', type: 'string', value: 'gdm', description: 'Directory name used under sysconfdir.')
+ option('systemd-journal', type: 'boolean', value: true, description: 'Use journald support.')
+-option('systemdsystemunitdir', type: 'string', value: '', description: 'Directory for systemd service files.')
+-option('systemduserunitdir', type: 'string', value: '', description: 'Directory for systemd user service files.')
++option('systemdsystemunitdir', type: 'string', value: '', description: 'Directory for systemd service files, or \'no\' to disable.')
++option('systemduserunitdir', type: 'string', value: '', description: 'Directory for systemd user service files, or \'no\' to disable.')
+ option('tcp-wrappers', type: 'boolean', value: false, description: 'Use TCP wrappers.')
+ option('udev-dir', type: 'string', value: '', description: 'Directory for udev rules file.')
+ option('user', type: 'string', value: 'gdm', description: 'GDM\'s username.')
+-- 
+GitLab
+
diff --git a/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch b/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch
new file mode 100644
index 0000000000..4341e3fc30
--- /dev/null
+++ b/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch
@@ -0,0 +1,24 @@
+From 444250fce55f916af993bc855930c6809686e4bd Mon Sep 17 00:00:00 2001
+From: Josselin Poiret <dev@jpoiret.xyz>
+Date: Tue, 23 Nov 2021 18:39:39 +0000
+Subject: [PATCH] Make GDM pass GDK_PIXBUF_MODULE_FILE to sessions
+
+---
+ daemon/gdm-launch-environment.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/daemon/gdm-launch-environment.c b/daemon/gdm-launch-environment.c
+index 14ecfac2..3e618321 100644
+--- a/daemon/gdm-launch-environment.c
++++ b/daemon/gdm-launch-environment.c
+@@ -158,6 +158,7 @@ build_launch_environment (GdmLaunchEnvironment *launch_environment,
+                 "WINDOWPATH",
+                 "XCURSOR_PATH",
+                 "XDG_CONFIG_DIRS",
++                "GDK_PIXBUF_MODULE_FILE",
+                 NULL
+         };
+         char *system_data_dirs;
+-- 
+2.33.1
+
diff --git a/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch b/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch
new file mode 100644
index 0000000000..366fb91668
--- /dev/null
+++ b/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch
@@ -0,0 +1,22 @@
+Remove check for hardcoded Xwayland path in gdm.
+
+---
+ daemon/gdm-local-display-factory.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
+index da1093bb..37355c06 100644
+--- a/daemon/gdm-local-display-factory.c
++++ b/daemon/gdm-local-display-factory.c
+@@ -203,7 +203,7 @@ gdm_local_display_factory_use_wayland (void)
+ #ifdef ENABLE_WAYLAND_SUPPORT
+         gboolean wayland_enabled = FALSE;
+         if (gdm_settings_direct_get_boolean (GDM_KEY_WAYLAND_ENABLE, &wayland_enabled)) {
+-                if (wayland_enabled && g_file_test ("/usr/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) )
++                if (wayland_enabled)
+                         return TRUE;
+         }
+ #endif
+--
+2.33.0
+
diff --git a/gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch b/gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch
new file mode 100644
index 0000000000..44ab6a9471
--- /dev/null
+++ b/gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch
@@ -0,0 +1,35 @@
+Get wayland-session wrapper from environment.
+
+---
+ daemon/gdm-session.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
+index 4e303e70..1deca4e9 100644
+--- a/daemon/gdm-session.c
++++ b/daemon/gdm-session.c
+@@ -2888,8 +2888,9 @@ gdm_session_start_session (GdmSession *self,
+                                                            allow_remote_connections? "--allow-remote-connections " : "",
+                                                            command);
+                         } else {
+-                                program = g_strdup_printf (LIBEXECDIR "/gdm-wayland-session %s\"%s\"",
++                                program = g_strdup_printf (LIBEXECDIR "/gdm-wayland-session %s\"%s %s\"",
+                                                            register_session ? "--register-session " : "",
++                                                           g_getenv ("GDM_WAYLAND_SESSION"),
+                                                            command);
+                         }
+                 } else if (run_xsession_script) {
+@@ -2942,8 +2942,9 @@
+                                                            register_session ? "--register-session " : "",
+                                                            self->selected_program);
+                         } else {
+-                                program = g_strdup_printf (LIBEXECDIR "/gdm-wayland-session %s\"dbus-run-session -- %s\"",
++                                program = g_strdup_printf (LIBEXECDIR "/gdm-wayland-session %s\"dbus-run-session -- %s %s\"",
+                                                            register_session ? "--register-session " : "",
++                                                           g_getenv ("GDM_WAYLAND_SESSION"),
+                                                            self->selected_program);
+                         }
+                 } else {
+--
+2.33.0
+
diff --git a/gnu/packages/patches/geary-CVE-2020-24661.patch b/gnu/packages/patches/geary-CVE-2020-24661.patch
deleted file mode 100644
index 6cbc224786..0000000000
--- a/gnu/packages/patches/geary-CVE-2020-24661.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-From d4e86dc91e1d8a940dc40872fe94ef9ac0fed1b5 Mon Sep 17 00:00:00 2001
-From: Michael Gratton <mike@vee.net>
-Date: Tue, 25 Aug 2020 03:54:09 +0000
-Subject: [PATCH] Merge branch 'mjog/866-self-signed-certificates' into
- 'mainline'
-
-Fix invalid certificate pinning when GCR support is unavailable
-
-Closes #866
-
-See merge request GNOME/geary!529
-
-(cherry picked from commit 423a55b00f1dc6bee9dc17e67c0aea6f42387a77)
-
-5088adfe Application.CertificateManager: Rename some methods for clarity
-0d957559 Application.CertificateManager: Check locally pinned certs for equality
----
- .../application-certificate-manager.vala      | 44 +++++++++----------
- 1 file changed, 22 insertions(+), 22 deletions(-)
-
-diff --git a/src/client/application/application-certificate-manager.vala b/src/client/application/application-certificate-manager.vala
-index 4881d73c0..65f6af4fa 100644
---- a/src/client/application/application-certificate-manager.vala
-+++ b/src/client/application/application-certificate-manager.vala
-@@ -381,8 +381,8 @@ private class Application.TlsDatabase : GLib.TlsDatabase {
-         GLib.TlsCertificateFlags ret = this.parent.verify_chain(
-             chain, purpose, identity, interaction, flags, cancellable
-         );
--        if (should_verify(ret, purpose, identity) &&
--            verify(chain, identity, cancellable)) {
-+        if (check_pinned(ret, purpose, identity) &&
-+            is_pinned(chain, identity, cancellable)) {
-             ret = 0;
-         }
-         return ret;
-@@ -399,16 +399,16 @@ private class Application.TlsDatabase : GLib.TlsDatabase {
-         GLib.TlsCertificateFlags ret = yield this.parent.verify_chain_async(
-             chain, purpose, identity, interaction, flags, cancellable
-         );
--        if (should_verify(ret, purpose, identity) &&
--            yield verify_async(chain, identity, cancellable)) {
-+        if (check_pinned(ret, purpose, identity) &&
-+            yield is_pinned_async(chain, identity, cancellable)) {
-             ret = 0;
-         }
-         return ret;
-     }
- 
--    private inline bool should_verify(GLib.TlsCertificateFlags parent_ret,
--                                      string purpose,
--                                      GLib.SocketConnectable? identity) {
-+    private inline bool check_pinned(GLib.TlsCertificateFlags parent_ret,
-+                                     string purpose,
-+                                     GLib.SocketConnectable? identity) {
-         // If the parent didn't verify, check for a locally pinned
-         // cert if it looks like we should, but always reject revoked
-         // certs
-@@ -420,22 +420,22 @@ private class Application.TlsDatabase : GLib.TlsDatabase {
-         );
-     }
- 
--    private bool verify(GLib.TlsCertificate chain,
--                        GLib.SocketConnectable identity,
--                        GLib.Cancellable? cancellable)
-+    private bool is_pinned(GLib.TlsCertificate chain,
-+                           GLib.SocketConnectable identity,
-+                           GLib.Cancellable? cancellable)
-         throws GLib.Error {
--        bool is_verified = false;
-+        bool is_pinned = false;
-         string id = to_name(identity);
-         TrustContext? context = null;
-         lock (this.pinned_certs) {
-             context = this.pinned_certs.get(id);
-             if (context != null) {
--                is_verified = true;
-+                is_pinned = context.certificate.is_same(chain);
-             } else {
-                 // Cert not found in memory, check with GCR if
-                 // enabled.
-                 if (this.use_gcr) {
--                    is_verified = gcr_trust_is_certificate_pinned(
-+                    is_pinned = gcr_trust_is_certificate_pinned(
-                         new Gcr.SimpleCertificate(chain.certificate.data),
-                         GLib.TlsDatabase.PURPOSE_AUTHENTICATE_SERVER,
-                         id,
-@@ -443,7 +443,7 @@ private class Application.TlsDatabase : GLib.TlsDatabase {
-                     );
-                 }
- 
--                if (!is_verified) {
-+                if (!is_pinned) {
-                     // Cert is not pinned in memory or in GCR, so look
-                     // for it on disk. Do this even if GCR support is
-                     // enabled, since if the cert was previously saved
-@@ -453,7 +453,7 @@ private class Application.TlsDatabase : GLib.TlsDatabase {
-                             this.store_dir, id, cancellable
-                         );
-                         this.pinned_certs.set(id, context);
--                        is_verified = true;
-+                        is_pinned = context.certificate.is_same(chain);
-                     } catch (GLib.IOError.NOT_FOUND err) {
-                         // Cert was not found saved, so it not pinned
-                     } catch (GLib.Error err) {
-@@ -465,18 +465,18 @@ private class Application.TlsDatabase : GLib.TlsDatabase {
-                 }
-             }
-         }
--        return is_verified;
-+        return is_pinned;
-     }
- 
--    private async bool verify_async(GLib.TlsCertificate chain,
--                                    GLib.SocketConnectable identity,
--                                    GLib.Cancellable? cancellable)
-+    private async bool is_pinned_async(GLib.TlsCertificate chain,
-+                                       GLib.SocketConnectable identity,
-+                                       GLib.Cancellable? cancellable)
-         throws GLib.Error {
--        bool is_valid = false;
-+        bool pinned = false;
-         yield Geary.Nonblocking.Concurrent.global.schedule_async(() => {
--                is_valid = verify(chain, identity, cancellable);
-+                pinned = is_pinned(chain, identity, cancellable);
-             }, cancellable);
--        return is_valid;
-+        return pinned;
-     }
- 
-     private TrustContext? lookup_id(string id) {
--- 
-GitLab
-
diff --git a/gnu/packages/patches/geeqie-clutter.patch b/gnu/packages/patches/geeqie-clutter.patch
new file mode 100644
index 0000000000..ab7cc957d8
--- /dev/null
+++ b/gnu/packages/patches/geeqie-clutter.patch
@@ -0,0 +1,35 @@
+From c99084ac5fc2fb854ff8e8abd4bd3298fb08fb43 Mon Sep 17 00:00:00 2001
+From: Colin Clark <colin.clark@cclark.uk>
+Date: Sat, 9 Jan 2021 11:35:41 +0000
+Subject: [PATCH] Fix #829: segfault with clutter-gtk
+
+https://github.com/BestImageViewer/geeqie/issues/829
+
+This fix might cause other problems which might be cured by calling:
+LIBGL_ALWAYS_INDIRECT=1 geeqie
+
+or, worst case:
+geeqie --disable-clutter
+---
+ src/main.c | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/src/main.c b/src/main.c
+index f497240d..4af654fe 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -904,11 +904,6 @@ gint main(gint argc, gchar *argv[])
+ #ifdef HAVE_GTHREAD
+ #if !GLIB_CHECK_VERSION(2,32,0)
+ 	g_thread_init(NULL);
+-#endif
+-#ifdef HAVE_CLUTTER
+-/* FIXME: see below */
+-	putenv("LIBGL_ALWAYS_INDIRECT=1");
+-	XInitThreads();
+ #endif
+ 	gdk_threads_init();
+ 	gdk_threads_enter();
+-- 
+2.34.0
+
diff --git a/gnu/packages/patches/genimage-mke2fs-test.patch b/gnu/packages/patches/genimage-mke2fs-test.patch
new file mode 100644
index 0000000000..5d4fbcfe44
--- /dev/null
+++ b/gnu/packages/patches/genimage-mke2fs-test.patch
@@ -0,0 +1,40 @@
+diff --git a/test/mke2fs.dump b/test/mke2fs.dump
+index 8e63662..0c25798 100644
+--- a/test/mke2fs.0.dump
++++ b/test/mke2fs.0.dump
+@@ -11,7 +11,7 @@
+ Inode count:              8192
+ Block count:              32768
+ Reserved block count:     1638
+-Free blocks:              26568
++Free blocks:              26566
+ Free inodes:              8141
+ First block:              1
+ Block size:               1024
+@@ -29,7 +29,7 @@
+ Maximum mount count:      -1
+ Last checked:             Sat Jan  1 00:00:00 2000
+ Check interval:           0 (<none>)
+-Lifetime writes:          141 kB
++Lifetime writes:          143 kB
+ Reserved blocks uid:      0 (user root)
+ Reserved blocks gid:      0 (group root)
+ First inode:              11
+@@ -51,13 +51,13 @@
+ Journal start:            0
+ 
+ 
+-Group 0: (Blocks 1-8192) csum 0x74a0 [ITABLE_ZEROED]
++Group 0: (Blocks 1-8192) csum 0x3f30 [ITABLE_ZEROED]
+   Primary superblock at 1, Group descriptors at 2-2
+-  Block bitmap at 3 (+2), csum 0x16cec4db
++  Block bitmap at 3 (+2), csum 0x8d67cdef
+   Inode bitmap at 7 (+6), csum 0xb1052088
+   Inode table at 11-522 (+10)
+-  6093 free blocks, 1997 free inodes, 18 directories, 1997 unused inodes
+-  Free blocks: 2100-8192
++  6091 free blocks, 1997 free inodes, 18 directories, 1997 unused inodes
++  Free blocks: 2102-8192
+   Free inodes: 52-2048
+ Group 1: (Blocks 8193-16384) csum 0x8fde [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
+   Backup superblock at 8193, Group descriptors at 8194-8194
diff --git a/gnu/packages/patches/genimage-signedness.patch b/gnu/packages/patches/genimage-signedness.patch
deleted file mode 100644
index 2204dfb545..0000000000
--- a/gnu/packages/patches/genimage-signedness.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-commit 6574665f9d6c0757e8f55ccb465afbcaa90bf019
-Author: Timotej Lazar <timotej.lazar@araneo.si>
-Date:   Wed Aug 19 19:36:02 2020 +0200
-
-    test: normalize flags reported by dumpe2fs
-    
-    Filesystem flags depend on the system – usually signed_directory_hash,
-    but unsigned_directory_hash at least on arm64.
-    
-    Signed-off-by: Timotej Lazar <timotej.lazar@araneo.si>
-
-diff --git a/test/basic-images.test b/test/basic-images.test
-index f6685e1..cb104c3 100755
---- a/test/basic-images.test
-+++ b/test/basic-images.test
-@@ -158,6 +158,8 @@ check_ext() {
- 	# format change
- 	csum2="Group 0: (Blocks 1-4095) \\[ITABLE_ZEROED\\]\|  Checksum .*, unused inodes 205"
- 	dumpe2fs "${1}" | grep -v "^\($uuid\|$seed\|$csum1\|$csum2\)" > "dump" &&
-+	# some architectures (including arm64) use unsigned char
-+	sed -i 's/un\(signed_directory_hash\)/\1/' "dump" &&
- 	# fixup for ext3 journal size with old tune2fs
- 	sed -i 's/^\(Journal size:             \)1029k$/\11024k/' "dump" &&
- 	# output format changed with some version
diff --git a/gnu/packages/patches/ghc-diff-swap-cover-args.patch b/gnu/packages/patches/ghc-diff-swap-cover-args.patch
deleted file mode 100644
index 724416ff7a..0000000000
--- a/gnu/packages/patches/ghc-diff-swap-cover-args.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-The QuickCheck library swapped the order of the arguments of the 'cover'
-function in version 2.12.  Version 0.3.4 of the Diff library still uses
-the old argument order.  Swapping the argument order makes Diff work
-with newer versions of QuickCheck.
-
-See <https://github.com/commercialhaskell/stackage/issues/4289> for the
-upstream bug report.
-
-diff -ruN a/test/Test.hs b/test/Test.hs
---- a/test/Test.hs	2016-04-23 01:21:45.000000000 -0400
-+++ b/test/Test.hs	2019-11-01 19:13:04.590770903 -0400
-@@ -134,7 +134,7 @@
- prop_ppDiffR (DiffInput le ri) =
-     let haskDiff=ppDiff $ getGroupedDiff le ri
-         utilDiff= unsafePerformIO (runDiff (unlines le) (unlines ri))
--    in  cover (haskDiff == utilDiff) 90 "exact match" $
-+    in  cover 90 (haskDiff == utilDiff) "exact match" $
-                 classify (haskDiff == utilDiff) "exact match"
-                         (div ((length haskDiff)*100) (length utilDiff) < 110) -- less than 10% bigger
-     where
diff --git a/gnu/packages/patches/ghc-haddock-api-fix-haddock.patch b/gnu/packages/patches/ghc-haddock-api-fix-haddock.patch
deleted file mode 100644
index 927cb5b366..0000000000
--- a/gnu/packages/patches/ghc-haddock-api-fix-haddock.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-This patch is taken from upstream.  It fixes documentation generation.
-The patch has been lightly adapted to apply to the release tarball, but
-the commit message was left untouched, so it refers to some changes not
-included in the patch.
-
-From 0d9a81e20238a6b72f9f5c005f1f7e9cf05f6fb9 Mon Sep 17 00:00:00 2001
-From: Alec Theriault <alec.theriault@gmail.com>
-Date: Sat, 27 Oct 2018 10:05:04 -0700
-Subject: [PATCH] Fix documentation in `haddock-api` (#957)
-
-* Fix misplaced Haddocks in Haddock itself
-
-Haddock should be able to generate documentation for 'haddock-api'
-again.
-
-* Make CI check that documentation can be built.
-
-* Add back a doc that is OK
----
- .travis.yml                               |  3 +++
- haddock-api/src/Haddock/Backends/LaTeX.hs | 10 +++++-----
- 2 files changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/src/Haddock/Backends/LaTeX.hs b/src/Haddock/Backends/LaTeX.hs
-index 4e0e6eba..613c6deb 100644
---- a/src/Haddock/Backends/LaTeX.hs
-+++ b/src/Haddock/Backends/LaTeX.hs
-@@ -243,8 +243,8 @@ ppDocGroup lev doc = sec lev <> braces doc
- 
- -- | Given a declaration, extract out the names being declared
- declNames :: LHsDecl DocNameI
--          -> ( LaTeX           -- ^ to print before each name in an export list
--             , [DocName]       -- ^ names being declared
-+          -> ( LaTeX           --   to print before each name in an export list
-+             , [DocName]       --   names being declared
-              )
- declNames (L _ decl) = case decl of
-   TyClD _ d  -> (empty, [tcdName d])
-@@ -444,9 +444,9 @@ ppLPatSig doc docnames ty unicode
- -- arguments as needed.
- ppTypeOrFunSig :: HsType DocNameI
-                -> DocForDecl DocName  -- ^ documentation
--               -> ( LaTeX             -- ^ first-line (no-argument docs only)
--                  , LaTeX             -- ^ first-line (argument docs only)
--                  , LaTeX             -- ^ type prefix (argument docs only)
-+               -> ( LaTeX             --   first-line (no-argument docs only)
-+                  , LaTeX             --   first-line (argument docs only)
-+                  , LaTeX             --   type prefix (argument docs only)
-                   )
-                -> Bool                -- ^ unicode
-                -> LaTeX
--- 
-2.23.0
-
diff --git a/gnu/packages/patches/ghc-hpack-fix-tests.patch b/gnu/packages/patches/ghc-hpack-fix-tests.patch
deleted file mode 100644
index 19aa762174..0000000000
--- a/gnu/packages/patches/ghc-hpack-fix-tests.patch
+++ /dev/null
@@ -1,193 +0,0 @@
-This patch is taken and adapted from upstream.  It landed shortly after
-the release of 0.31.2, and fixes eleven tests.  The patch has been
-lightly adapted to apply to the release tarball, but the commit message
-was left untouched, so it refers to some changes not included in the
-patch.
-
-From a8d9362d4b686074f698c04c20beea88587511a1 Mon Sep 17 00:00:00 2001
-From: quasicomputational <quasicomputational@gmail.com>
-Date: Sat, 1 Jun 2019 15:11:31 +0100
-Subject: [PATCH] Make CI green (#345)
-
-* AppVeyor workaround for TMP issue
-
-https://github.com/commercialhaskell/stack/issues/3944
-
-* Bump resolver to nightly-2018-12-12.
-
-This has the primary benefit of moving to GHC 8.6.3 and should fix
-AppVeyor.
-
-* Add clock 0.8 as an extra-dep.
-
-* Adapt expected output to aeson 1.4.3.0.
----
- appveyor.yml                            |  3 +++
- hpack.cabal                             | 10 +++++-----
- package.yaml                            |  2 +-
- stack.yaml                              |  5 +++--
- test/Data/Aeson/Config/FromValueSpec.hs |  2 +-
- test/Data/Aeson/Config/TypesSpec.hs     |  2 +-
- test/EndToEndSpec.hs                    |  8 ++++----
- test/Hpack/ConfigSpec.hs                |  2 +-
- test/Hpack/Syntax/DefaultsSpec.hs       |  2 +-
- test/Hpack/Syntax/DependenciesSpec.hs   |  4 ++--
- 10 files changed, 22 insertions(+), 18 deletions(-)
-
-diff --git a/hpack.cabal b/hpack.cabal
-index fedb9a8..4db3014 100644
---- a/hpack.cabal
-+++ b/hpack.cabal
-@@ -1,10 +1,10 @@
- cabal-version: 1.12
- 
---- This file has been generated from package.yaml by hpack version 0.31.0.
-+-- This file has been generated from package.yaml by hpack version 0.31.2.
- --
- -- see: https://github.com/sol/hpack
- --
---- hash: 3d060180293c32b8d0c25b710d0f419e96a6cc6ec3f95ac5e70bb77f44cbafc3
-+-- hash: bd5dd178c7e9f7f7a3456d79b592ea336c41ef43c9892354c001f06659e8b901
- 
- name:           hpack
- version:        0.31.2
-@@ -31,7 +31,7 @@ library
-   build-depends:
-       Cabal >=2.2
-     , Glob >=0.9.0
--    , aeson >=1.2.1.0
-+    , aeson >=1.4.3.0
-     , base >=4.9 && <5
-     , bifunctors
-     , bytestring
-@@ -87,7 +87,7 @@ executable hpack
-   build-depends:
-       Cabal >=2.2
-     , Glob >=0.9.0
--    , aeson >=1.2.1.0
-+    , aeson >=1.4.3.0
-     , base >=4.9 && <5
-     , bifunctors
-     , bytestring
-@@ -125,7 +125,7 @@ test-suite spec
-     , Glob >=0.9.0
-     , HUnit >=1.6.0.0
-     , QuickCheck
--    , aeson >=1.2.1.0
-+    , aeson >=1.4.3.0
-     , base >=4.9 && <5
-     , bifunctors
-     , bytestring
-diff --git a/test/Data/Aeson/Config/FromValueSpec.hs b/test/Data/Aeson/Config/FromValueSpec.hs
-index 33de8b7..06b3eb9 100644
---- a/test/Data/Aeson/Config/FromValueSpec.hs
-+++ b/test/Data/Aeson/Config/FromValueSpec.hs
-@@ -85,7 +85,7 @@ spec = do
-         [yaml|
-         name: "Joe"
-         age: "23"
--        |] `shouldDecodeTo` left "Error while parsing $.age - expected Int, encountered String"
-+        |] `shouldDecodeTo` left "Error while parsing $.age - parsing Int failed, expected Number, but encountered String"
- 
-     context "with (,)" $ do
-       it "captures unrecognized fields" $ do
-diff --git a/test/Data/Aeson/Config/TypesSpec.hs b/test/Data/Aeson/Config/TypesSpec.hs
-index c954534..472aa42 100644
---- a/test/Data/Aeson/Config/TypesSpec.hs
-+++ b/test/Data/Aeson/Config/TypesSpec.hs
-@@ -13,7 +13,7 @@ spec = do
-     context "List" $ do
-       let
-         parseError :: String -> Result (List Int)
--        parseError prefix = Left (prefix ++ " - expected Int, encountered String")
-+        parseError prefix = Left (prefix ++ " - parsing Int failed, expected Number, but encountered String")
- 
-       context "when parsing single values" $ do
-         it "returns the value in a singleton list" $ do
-diff --git a/test/EndToEndSpec.hs b/test/EndToEndSpec.hs
-index 283c72c..46389ea 100644
---- a/test/EndToEndSpec.hs
-+++ b/test/EndToEndSpec.hs
-@@ -285,7 +285,7 @@ spec = around_ (inTempDirectoryNamed "foo") $ do
-           path: defaults.yaml
-           ref: "2017"
-         library: {}
--        |] `shouldFailWith` (file ++ ": Error while parsing $ - expected Object, encountered Array")
-+        |] `shouldFailWith` (file ++ ": Error while parsing $ - expected Object, but encountered Array")
- 
-       it "warns on unknown fields" $ do
-         let file = joinPath ["defaults", "sol", "hpack-template", "2017", "defaults.yaml"]
-@@ -340,7 +340,7 @@ spec = around_ (inTempDirectoryNamed "foo") $ do
-       it "rejects other values" $ do
-         [i|
-         version: {}
--        |] `shouldFailWith` "package.yaml: Error while parsing $.version - expected Number or String, encountered Object"
-+        |] `shouldFailWith` "package.yaml: Error while parsing $.version - expected Number or String, but encountered Object"
- 
-     describe "license" $ do
-       it "accepts cabal-style licenses" $ do
-@@ -1363,14 +1363,14 @@ spec = around_ (inTempDirectoryNamed "foo") $ do
-             then:
-               dependencies: Win32
-             else: null
--          |] `shouldFailWith` "package.yaml: Error while parsing $.when.else - expected Object, encountered Null"
-+          |] `shouldFailWith` "package.yaml: Error while parsing $.when.else - expected Object, but encountered Null"
- 
-         it "rejects invalid conditionals" $ do
-           [i|
-             dependencies:
-               - foo
-               - 23
--          |] `shouldFailWith` "package.yaml: Error while parsing $.dependencies[1] - expected Object or String, encountered Number"
-+          |] `shouldFailWith` "package.yaml: Error while parsing $.dependencies[1] - expected Object or String, but encountered Number"
- 
-         it "warns on unknown fields" $ do
-           [i|
-diff --git a/test/Hpack/ConfigSpec.hs b/test/Hpack/ConfigSpec.hs
-index 9f4b279..69cbea1 100644
---- a/test/Hpack/ConfigSpec.hs
-+++ b/test/Hpack/ConfigSpec.hs
-@@ -675,7 +675,7 @@ spec = do
-       it "rejects other values" $ do
-         [yaml|
-         23
--        |] `shouldDecodeTo` (Left "Error while parsing $ - expected Boolean or String, encountered Number" :: Result Cond)
-+        |] `shouldDecodeTo` (Left "Error while parsing $ - expected Boolean or String, but encountered Number" :: Result Cond)
- 
-   describe "formatOrList" $ do
-     it "formats a singleton list" $ do
-diff --git a/test/Hpack/Syntax/DefaultsSpec.hs b/test/Hpack/Syntax/DefaultsSpec.hs
-index 5875413..5438b7a 100644
---- a/test/Hpack/Syntax/DefaultsSpec.hs
-+++ b/test/Hpack/Syntax/DefaultsSpec.hs
-@@ -151,4 +151,4 @@ spec = do
-         it "fails" $ do
-           [yaml|
-           10
--          |] `shouldDecodeTo` left "Error while parsing $ - expected Object or String, encountered Number"
-+          |] `shouldDecodeTo` left "Error while parsing $ - expected Object or String, but encountered Number"
-diff --git a/test/Hpack/Syntax/DependenciesSpec.hs b/test/Hpack/Syntax/DependenciesSpec.hs
-index 1a83732..d95044f 100644
---- a/test/Hpack/Syntax/DependenciesSpec.hs
-+++ b/test/Hpack/Syntax/DependenciesSpec.hs
-@@ -125,7 +125,7 @@ spec = do
-         it "rejects invalid values" $ do
-           [yaml|
-             hpack: []
--          |] `shouldDecodeTo` left "Error while parsing $.hpack - expected Null, Object, Number, or String, encountered Array"
-+          |] `shouldDecodeTo` left "Error while parsing $.hpack - expected Null, Object, Number, or String, but encountered Array"
- 
-         context "when the constraint is a Number" $ do
-           it "accepts 1" $ do
-@@ -213,7 +213,7 @@ spec = do
-               [yaml|
-                 foo:
-                   version: {}
--              |] `shouldDecodeTo` left "Error while parsing $.foo.version - expected Null, Number, or String, encountered Object"
-+              |] `shouldDecodeTo` left "Error while parsing $.foo.version - expected Null, Number, or String, but encountered Object"
- 
-             it "accepts a string" $ do
-               [yaml|
--- 
-2.23.0
-
diff --git a/gnu/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch b/gnu/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch
new file mode 100644
index 0000000000..a1358dec94
--- /dev/null
+++ b/gnu/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch
@@ -0,0 +1,27 @@
+Compatibility with GHC 8.10 and template-haskell 2.16.
+
+Taken from 
+https://raw.githubusercontent.com/archlinux/svntogit-community/packages/haskell-language-haskell-extract/trunk/ghc-8.10.patch
+
+diff --git a/src/Language/Haskell/Extract.hs b/src/Language/Haskell/Extract.hs
+index 3e8958b..43dfe04 100644
+--- a/src/Language/Haskell/Extract.hs
++++ b/src/Language/Haskell/Extract.hs
+@@ -1,3 +1,4 @@
++{-# LANGUAGE CPP #-}
+ module Language.Haskell.Extract (
+   functionExtractor,
+   functionExtractorMap,
+@@ -25,7 +26,11 @@ extractAllFunctions pattern =
+ functionExtractor :: String -> ExpQ
+ functionExtractor pattern =
+   do functions <- extractAllFunctions pattern
+-     let makePair n = TupE [ LitE $ StringL n , VarE $ mkName n]
++     let makePair n = TupE
++#if MIN_VERSION_template_haskell(2,16,0)
++                           $ map Just
++#endif
++                           [ LitE $ StringL n , VarE $ mkName n]
+      return $ ListE $ map makePair functions
+ 
+ 
diff --git a/gnu/packages/patches/ghc-microlens-aeson-fix-tests.patch b/gnu/packages/patches/ghc-microlens-aeson-fix-tests.patch
deleted file mode 100644
index c1ef6a837c..0000000000
--- a/gnu/packages/patches/ghc-microlens-aeson-fix-tests.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-This patch fixes the test suite to allow any order when listing the
-members of a JSON object.  Aeson (being true to the JSON specification)
-does not specify an order for objects.  In practice, the order depends
-on your processor architecture.
-
-See <https://github.com/bos/aeson/issues/568> for a discussion resulting
-in a similar patch fixing the Aeson tests.
-
-See <https://github.com/fosskers/microlens-aeson/issues/1> for the
-upstream bug report.
-
-diff -ruN a/test/Test.hs b/test/Test.hs
---- a/test/Test.hs	2018-12-31 15:10:50.000000000 -0500
-+++ b/test/Test.hs	2019-11-08 01:34:07.419706831 -0500
-@@ -48,8 +48,10 @@
-     , testCase "" $ ("{\"a\": {}, \"b\": null}" ^? key (T.pack "b") . _Object) @?= Nothing
-     , testCase "" $ ("{\"a\": 100, \"b\": 200}" ^? key (T.pack "a")) @?= Just (Number 100.0)
-     , testCase "" $ ("[1,2,3]" ^? key (T.pack "a")) @?= Nothing
--    , testCase "" $ ("{\"a\": 4, \"b\": 7}" ^.. members) @?= [Number 4.0,Number 7.0]
--    , testCase "" $ ("{\"a\": 4, \"b\": 7}" & members . _Number %~ (* 10)) @?= "{\"a\":40,\"b\":70}"
-+    , testCase "" $ assertBool "" (let x = ("{\"a\": 4, \"b\": 7}" ^.. members)
-+                                   in x == [Number 4.0,Number 7.0] || x == [Number 7.0,Number 4.0])
-+    , testCase "" $ assertBool "" (let x = ("{\"a\": 4, \"b\": 7}" & members . _Number %~ (* 10))
-+                                   in x == "{\"a\":40,\"b\":70}" || x == "{\"b\":70,\"a\":40}")
-     , testCase "" $ ("[1,2,3]" ^? nth 1) @?= Just (Number 2.0)
-     , testCase "" $ ("{\"a\": 100, \"b\": 200}" ^? nth 1) @?= Nothing
-     , testCase "" $ ("[1,2,3]" & nth 1 .~ Number 20) @?= "[1,20,3]"
diff --git a/gnu/packages/patches/ghc-pandoc-fix-html-tests.patch b/gnu/packages/patches/ghc-pandoc-fix-html-tests.patch
deleted file mode 100644
index b624ff9e9e..0000000000
--- a/gnu/packages/patches/ghc-pandoc-fix-html-tests.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-This patch is taken from upstream.  It fixes two HTML tests that are broken
-due to using a Skylighting version greater than or equal to 0.8.2.
-
-From 968d2046a3cb6db661673be580660ac402753c34 Mon Sep 17 00:00:00 2001
-From: John MacFarlane <jgm@berkeley.edu>
-Date: Sun, 14 Jul 2019 10:48:14 -0700
-Subject: [PATCH] Update test for new skylighting.
-
----
- test/lhs-test.html     | 13 ++++++-------
- test/lhs-test.html+lhs | 13 ++++++-------
- 2 files changed, 12 insertions(+), 14 deletions(-)
-
-diff --git a/test/lhs-test.html b/test/lhs-test.html
-index 6685555f4..446dd3d95 100644
---- a/test/lhs-test.html
-+++ b/test/lhs-test.html
-@@ -12,19 +12,18 @@
-       div.column{display: inline-block; vertical-align: top; width: 50%;}
-   </style>
-   <style>
--code.sourceCode > span { display: inline-block; line-height: 1.25; }
-+pre > code.sourceCode { white-space: pre; position: relative; }
-+pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
-+pre > code.sourceCode > span:empty { height: 1.2em; }
- code.sourceCode > span { color: inherit; text-decoration: inherit; }
--code.sourceCode > span:empty { height: 1.2em; }
--.sourceCode { overflow: visible; }
--code.sourceCode { white-space: pre; position: relative; }
- div.sourceCode { margin: 1em 0; }
- pre.sourceCode { margin: 0; }
- @media screen {
- div.sourceCode { overflow: auto; }
- }
- @media print {
--code.sourceCode { white-space: pre-wrap; }
--code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
-+pre > code.sourceCode { white-space: pre-wrap; }
-+pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
- }
- pre.numberSource code
-   { counter-reset: source-line 0; }
-@@ -44,7 +43,7 @@ pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa;  padding-le
- div.sourceCode
-   {   }
- @media screen {
--code.sourceCode > span > a:first-child::before { text-decoration: underline; }
-+pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
- }
- code span.al { color: #ff0000; font-weight: bold; } /* Alert */
- code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
-diff --git a/test/lhs-test.html+lhs b/test/lhs-test.html+lhs
-index e57dfc105..a5cdb0245 100644
---- a/test/lhs-test.html+lhs
-+++ b/test/lhs-test.html+lhs
-@@ -12,19 +12,18 @@
-       div.column{display: inline-block; vertical-align: top; width: 50%;}
-   </style>
-   <style>
--code.sourceCode > span { display: inline-block; line-height: 1.25; }
-+pre > code.sourceCode { white-space: pre; position: relative; }
-+pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
-+pre > code.sourceCode > span:empty { height: 1.2em; }
- code.sourceCode > span { color: inherit; text-decoration: inherit; }
--code.sourceCode > span:empty { height: 1.2em; }
--.sourceCode { overflow: visible; }
--code.sourceCode { white-space: pre; position: relative; }
- div.sourceCode { margin: 1em 0; }
- pre.sourceCode { margin: 0; }
- @media screen {
- div.sourceCode { overflow: auto; }
- }
- @media print {
--code.sourceCode { white-space: pre-wrap; }
--code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
-+pre > code.sourceCode { white-space: pre-wrap; }
-+pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
- }
- pre.numberSource code
-   { counter-reset: source-line 0; }
-@@ -44,7 +43,7 @@ pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa;  padding-le
- div.sourceCode
-   {   }
- @media screen {
--code.sourceCode > span > a:first-child::before { text-decoration: underline; }
-+pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
- }
- code span.al { color: #ff0000; font-weight: bold; } /* Alert */
- code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
--- 
-2.23.0
-
diff --git a/gnu/packages/patches/ghc-pandoc-fix-latex-test.patch b/gnu/packages/patches/ghc-pandoc-fix-latex-test.patch
deleted file mode 100644
index b38476882d..0000000000
--- a/gnu/packages/patches/ghc-pandoc-fix-latex-test.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-This patch is taken from upstream.  It fixes a LaTeX test that is broken due
-to using a Skylighting version greater than or equal to 0.8.1.1.
-
-From 2cd1c7b30f200d18f1f1bdef1671369e1ad303ed Mon Sep 17 00:00:00 2001
-From: John MacFarlane <jgm@berkeley.edu>
-Date: Thu, 13 Jun 2019 19:33:52 -0700
-Subject: [PATCH] Update test for skylighting 0.8.1.1.
-
----
- test/lhs-test.latex | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/test/lhs-test.latex b/test/lhs-test.latex
-index 0442db5ca..a456995a3 100644
---- a/test/lhs-test.latex
-+++ b/test/lhs-test.latex
-@@ -94,9 +94,9 @@ return a single value:
- 
- \begin{Shaded}
- \begin{Highlighting}[]
--\OtherTok{unsplit ::}\NormalTok{ (}\DataTypeTok{Arrow}\NormalTok{ a) }\OtherTok{=>}\NormalTok{ (b }\OtherTok{->}\NormalTok{ c }\OtherTok{->}\NormalTok{ d) }\OtherTok{->}\NormalTok{ a (b, c) d}
-+\OtherTok{unsplit ::}\NormalTok{ (}\DataTypeTok{Arrow}\NormalTok{ a) }\OtherTok{=>}\NormalTok{ (b }\OtherTok{{-}>}\NormalTok{ c }\OtherTok{{-}>}\NormalTok{ d) }\OtherTok{{-}>}\NormalTok{ a (b, c) d}
- \NormalTok{unsplit }\OtherTok{=}\NormalTok{ arr }\OperatorTok{.} \FunctionTok{uncurry}
--          \CommentTok{-- arr (\textbackslash{}op (x,y) -> x `op` y)}
-+          \CommentTok{{-}{-} arr (\textbackslash{}op (x,y) {-}> x \textasciigrave{}op\textasciigrave{} y)}
- \end{Highlighting}
- \end{Shaded}
- 
--- 
-2.23.0
-
diff --git a/gnu/packages/patches/glib-networking-32-bit-time.patch b/gnu/packages/patches/glib-networking-32-bit-time.patch
new file mode 100644
index 0000000000..a437310270
--- /dev/null
+++ b/gnu/packages/patches/glib-networking-32-bit-time.patch
@@ -0,0 +1,61 @@
+Work around a year-2038 issue when building with a 32-bit 'time_t'
+on 32-bit platforms:
+
+  https://gitlab.gnome.org/GNOME/glib-networking/-/issues/172
+
+From 4f8ca86a0e460794188c3355f0c7cc11fdbe4229 Mon Sep 17 00:00:00 2001
+From: Simon McVittie <simon.mcvittie@collabora.co.uk>
+Date: Tue, 21 Sep 2021 17:07:44 +0000
+Subject: [PATCH] tests: Accept GNUTLS' workaround for limited size of time_t
+
+---
+ tls/tests/certificate.c | 15 +++++++++++++++
+ tls/tests/meson.build   |  1 +
+ 2 files changed, 16 insertions(+)
+
+diff --git a/tls/tests/certificate.c b/tls/tests/certificate.c
+index c0100d30..d216c710 100644
+--- a/tls/tests/certificate.c
++++ b/tls/tests/certificate.c
+@@ -672,6 +672,12 @@ test_certificate_not_valid_before (void)
+   g_object_unref (cert);
+ }
+ 
++/* On 32-bit, GNUTLS caps expiry times at 2037-12-31 23:23:23 to avoid
++ * overflowing time_t. Hopefully by 2037, either 32-bit will finally have
++ * died out, or GNUTLS will rethink its approach to
++ * https://gitlab.com/gnutls/gnutls/-/issues/370 */
++#define GNUTLS_32_BIT_NOT_VALID_AFTER_MAX 2145914603
++
+ static void
+ test_certificate_not_valid_after (void)
+ {
+@@ -686,7 +692,16 @@ test_certificate_not_valid_after (void)
+   actual = g_tls_certificate_get_not_valid_after (cert);
+   g_assert_nonnull (actual);
+   actual_str = g_date_time_format_iso8601 (actual);
++
++#if SIZEOF_TIME_T <= 4
++  if (g_date_time_to_unix (actual) == GNUTLS_32_BIT_NOT_VALID_AFTER_MAX)
++    g_test_incomplete ("not-valid-after date not representable on 32-bit");
++  else
++    g_assert_cmpstr (actual_str, ==, EXPECTED_NOT_VALID_AFTER);
++#else
+   g_assert_cmpstr (actual_str, ==, EXPECTED_NOT_VALID_AFTER);
++#endif
++
+   g_free (actual_str);
+   g_date_time_unref (actual);
+   g_object_unref (cert);
+diff --git a/tls/tests/meson.build b/tls/tests/meson.build
+index e9c7d8c6..7415f913 100644
+--- a/tls/tests/meson.build
++++ b/tls/tests/meson.build
+@@ -69,6 +69,7 @@ foreach backend: backends
+     test_cflags = cflags + [
+       '-DBACKEND="@0@"'.format(backend),
+       '-DBACKEND_IS_' + backend.to_upper(),
++      '-DSIZEOF_TIME_T=@0@'.format(cc.sizeof('time_t', prefix: '#include <time.h>')),
+     ]
+ 
+     if backend == 'openssl'
diff --git a/gnu/packages/patches/gnome-boxes-add-guix-logo.patch b/gnu/packages/patches/gnome-boxes-add-guix-logo.patch
new file mode 100644
index 0000000000..e570675083
--- /dev/null
+++ b/gnu/packages/patches/gnome-boxes-add-guix-logo.patch
@@ -0,0 +1,32 @@
+Taken from upstream commit: 9091c6849652fa083297bc12645d8c57a962874a.
+
+diff --git a/data/osinfo/guix-1.3.xml b/data/osinfo/guix-1.3.xml
+new file mode 100644
+index 00000000..d4e1c167
+--- /dev/null
++++ b/data/osinfo/guix-1.3.xml
+@@ -0,0 +1,9 @@
++<libosinfo version="0.0.1">
++
++  <!-- Please read README.logos for any questions about usage of product logos in Boxes. !-->
++
++  <os id="http://guix.gnu.org/guix/1.3">
++    <logo>https://gitlab.gnome.org/GNOME/gnome-boxes-logos/-/raw/master/logos/guix.svg</logo>
++  </os>
++
++</libosinfo>
+diff --git a/data/osinfo/meson.build b/data/osinfo/meson.build
+index 46ff1570..d5531e60 100644
+--- a/data/osinfo/meson.build
++++ b/data/osinfo/meson.build
+@@ -7,6 +7,7 @@ osinfo_db = [
+   ['freedos-1.2.xml', 'gnome-boxes/osinfo/os/freedos.org'],
+   ['gnome-nightly.xml', 'gnome-boxes/osinfo/os/gnome.org'],
+   ['gnome-3.38.xml', 'gnome-boxes/osinfo/os/gnome.org'],
++  ['guix-1.3.xml', 'gnome-boxes/osinfo/os/guix.gnu.org'],
+   ['manjaro-19.0.xml', 'gnome-boxes/osinfo/os/manjaro.org'],
+   ['nixos-20.03.xml', 'gnome-boxes/osinfo/os/nixos.org'],
+   ['opensuse-10.2.xml', 'gnome-boxes/osinfo/os/opensuse.org'],
+-- 
+2.34.0
+
diff --git a/gnu/packages/patches/gnome-online-miners-tracker-3.patch b/gnu/packages/patches/gnome-online-miners-tracker-3.patch
new file mode 100644
index 0000000000..0f89c56695
--- /dev/null
+++ b/gnu/packages/patches/gnome-online-miners-tracker-3.patch
@@ -0,0 +1,1505 @@
+Apply the following merge requests:
+
+https://gitlab.gnome.org/GNOME/gnome-online-miners/-/merge_requests/3
+https://gitlab.gnome.org/GNOME/gnome-online-miners/-/merge_requests/4
+
+to add tracker 3 support and fix a use after free error.
+
+diff --git a/src/gom-miner.c b/src/gom-miner.c
+index 7147b33..4fb4d80 100644
+--- a/src/gom-miner.c
++++ b/src/gom-miner.c
+@@ -221,6 +221,7 @@ gom_miner_check_pending_jobs (GTask *task)
+     return;
+ 
+   g_task_return_boolean (task, TRUE);
++  g_clear_object (&cleanup_job->self);
+   g_slice_free (CleanupJob, cleanup_job);
+ }
+ 
+@@ -461,7 +462,9 @@ miner_job_process_ready_cb (GObject *source,
+   cleanup_job->pending_jobs = g_list_remove (cleanup_job->pending_jobs,
+                                              account_miner_job);
+ 
++  /* This will free the cleanup job data if there are no more pending jobs. */
+   gom_miner_check_pending_jobs (account_miner_job->parent_task);
++
+   gom_account_miner_job_free (account_miner_job);
+ }
+ 
+@@ -520,10 +523,9 @@ cleanup_old_accounts_done (gpointer data)
+       job->old_datasources = NULL;
+     }
+ 
++  /* This will free the task data if there are no more pending jobs */
+   gom_miner_check_pending_jobs (task);
+ 
+-  g_clear_object (&job->self);
+-
+   return FALSE;
+ }
+ 
+@@ -690,6 +692,8 @@ gom_miner_cleanup_old_accounts (GomMiner *self,
+ {
+   CleanupJob *job = g_slice_new0 (CleanupJob);
+ 
++  g_return_if_fail (GOM_IS_MINER (self));
++
+   job->self = g_object_ref (self);
+   job->content_objects = content_objects;
+   job->acc_objects = acc_objects;
+
+diff --git a/src/gom-application.c b/src/gom-application.c
+index fadd388..9e558f5 100644
+--- a/src/gom-application.c
++++ b/src/gom-application.c
+@@ -229,10 +229,16 @@ gom_application_constructed (GObject *object)
+ {
+   GomApplication *self = GOM_APPLICATION (object);
+   const gchar *display_name;
++  GError *error = NULL;
+ 
+   G_OBJECT_CLASS (gom_application_parent_class)->constructed (object);
+ 
+-  self->miner = g_object_new (self->miner_type, NULL);
++  self->miner = g_initable_new (self->miner_type, NULL, &error, NULL);
++
++  if (self->miner == NULL) {
++    g_error (error->message);
++  }
++
+   display_name = gom_miner_get_display_name (self->miner);
+   gom_dbus_set_display_name (self->skeleton, display_name);
+ }
+diff --git a/src/gom-miner.c b/src/gom-miner.c
+index 7147b33..1dd9bb8 100644
+--- a/src/gom-miner.c
++++ b/src/gom-miner.c
+@@ -28,7 +28,11 @@
+ 
+ #include "gom-miner.h"
+ 
+-G_DEFINE_TYPE (GomMiner, gom_miner, G_TYPE_OBJECT)
++static void gom_miner_initable_interface_init (GInitableIface *iface);
++
++G_DEFINE_TYPE_WITH_CODE (GomMiner, gom_miner, G_TYPE_OBJECT,
++                         G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, gom_miner_initable_interface_init))
++
+ 
+ struct _GomMinerPrivate {
+   GoaClient *client;
+@@ -132,20 +136,21 @@ gom_miner_dispose (GObject *object)
+ }
+ 
+ static void
+-gom_miner_init_goa (GomMiner *self)
++gom_miner_init_goa (GomMiner  *self,
++                    GError   **error)
+ {
+   GoaAccount *account;
+   GoaObject *object;
+   const gchar *provider_type;
+   GList *accounts, *l;
+   GomMinerClass *miner_class = GOM_MINER_GET_CLASS (self);
++  GError *inner_error = NULL;
+ 
+-  self->priv->client = goa_client_new_sync (NULL, &self->priv->client_error);
++  self->priv->client = goa_client_new_sync (NULL, &inner_error);
+ 
+-  if (self->priv->client_error != NULL)
++  if (inner_error)
+     {
+-      g_critical ("Unable to create GoaClient: %s - indexing for %s will not work",
+-                  self->priv->client_error->message, miner_class->goa_provider_type);
++      g_propagate_error (error, inner_error);
+       return;
+     }
+ 
+@@ -170,16 +175,34 @@ gom_miner_init_goa (GomMiner *self)
+   g_list_free_full (accounts, g_object_unref);
+ }
+ 
+-static void
+-gom_miner_constructed (GObject *obj)
++static gboolean
++gom_miner_initable_init (GInitable     *initable,
++                         GCancellable  *cancellable,
++                         GError       **error)
+ {
+-  GomMiner *self = GOM_MINER (obj);
++  GError *inner_error = NULL;
++  GomMiner *self;
+ 
+-  G_OBJECT_CLASS (gom_miner_parent_class)->constructed (obj);
++  self = GOM_MINER (initable);
+ 
+-  gom_miner_init_goa (self);
++  self->priv->connection = tracker_sparql_connection_get (cancellable, &inner_error);
++  if (inner_error)
++    {
++      g_propagate_prefixed_error (error, inner_error, "Unable to connect to Tracker store: ");
++      return FALSE;
++    }
++
++  gom_miner_init_goa (self, &inner_error);
++  if (inner_error)
++    {
++      g_propagate_prefixed_error (error, inner_error, "Unable to connect to GNOME Online Accounts: ");
++      return FALSE;
++    }
++
++  return TRUE;
+ }
+ 
++
+ static void
+ gom_miner_init (GomMiner *self)
+ {
+@@ -187,14 +210,12 @@ gom_miner_init (GomMiner *self)
+ 
+   self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GOM_TYPE_MINER, GomMinerPrivate);
+   self->priv->display_name = g_strdup ("");
++}
+ 
+-  self->priv->connection = tracker_sparql_connection_get (NULL, &self->priv->connection_error);
+-  if (self->priv->connection_error != NULL)
+-    {
+-      g_critical ("Unable to create TrackerSparqlConnection: %s - indexing for %s will not work",
+-                  self->priv->connection_error->message,
+-                  klass->goa_provider_type);
+-    }
++static void
++gom_miner_initable_interface_init (GInitableIface *iface)
++{
++  iface->init = gom_miner_initable_init;
+ }
+ 
+ static void
+@@ -202,7 +223,6 @@ gom_miner_class_init (GomMinerClass *klass)
+ {
+   GObjectClass *oclass = G_OBJECT_CLASS (klass);
+ 
+-  oclass->constructed = gom_miner_constructed;
+   oclass->dispose = gom_miner_dispose;
+ 
+   cleanup_pool = g_thread_pool_new (cleanup_job, NULL, 1, FALSE, NULL);
+diff --git a/configure.ac b/configure.ac
+index 06cba71..6c61247 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -21,7 +21,7 @@ AC_HEADER_STDC
+ 
+ GDATA_MIN_VERSION=0.15.2
+ GFBGRAPH_MIN_VERSION=0.2.2
+-GLIB_MIN_VERSION=2.35.1
++GLIB_MIN_VERSION=2.56.0
+ GOA_MIN_VERSION=3.13.3
+ GRILO_MIN_VERSION=0.3.0
+ ZAPOJIT_MIN_VERSION=0.0.2
+@@ -36,7 +36,7 @@ PKG_CHECK_MODULES(GIO, [gio-2.0 gio-unix-2.0])
+ PKG_CHECK_MODULES(GOA, [goa-1.0 >= $GOA_MIN_VERSION])
+ AC_DEFINE([GOA_API_IS_SUBJECT_TO_CHANGE], [], [We are aware that GOA's API can change])
+ 
+-PKG_CHECK_MODULES(TRACKER, [tracker-miner-2.0 tracker-sparql-2.0])
++PKG_CHECK_MODULES(TRACKER, [tracker-sparql-3.0])
+ 
+ # Facebook
+ AC_ARG_ENABLE([facebook], [AS_HELP_STRING([--enable-facebook], [Enable Facebook miner])], [], [enable_facebook=yes])
+diff --git a/src/gom-application.c b/src/gom-application.c
+index 9e558f5..b435e26 100644
+--- a/src/gom-application.c
++++ b/src/gom-application.c
+@@ -233,7 +233,9 @@ gom_application_constructed (GObject *object)
+ 
+   G_OBJECT_CLASS (gom_application_parent_class)->constructed (object);
+ 
+-  self->miner = g_initable_new (self->miner_type, NULL, &error, NULL);
++  self->miner = g_initable_new (self->miner_type, NULL, &error,
++                                "bus-name", g_application_get_application_id (G_APPLICATION (self)),
++                                NULL);
+ 
+   if (self->miner == NULL) {
+     g_error (error->message);
+diff --git a/src/gom-miner.c b/src/gom-miner.c
+index 1dd9bb8..ba76ebb 100644
+--- a/src/gom-miner.c
++++ b/src/gom-miner.c
+@@ -33,12 +33,13 @@ static void gom_miner_initable_interface_init (GInitableIface *iface);
+ G_DEFINE_TYPE_WITH_CODE (GomMiner, gom_miner, G_TYPE_OBJECT,
+                          G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, gom_miner_initable_interface_init))
+ 
+-
+ struct _GomMinerPrivate {
+   GoaClient *client;
+   GError *client_error;
+ 
++  gchar *bus_name;
+   TrackerSparqlConnection *connection;
++  TrackerEndpointDBus *endpoint;
+   GError *connection_error;
+ 
+   gchar *display_name;
+@@ -62,6 +63,14 @@ typedef struct {
+   gpointer service;
+ } InsertSharedContentData;
+ 
++typedef enum
++{
++    PROP_BUS_NAME = 1,
++    N_PROPERTIES
++} GomMinerProperty;
++
++static GParamSpec *obj_properties[N_PROPERTIES] = { NULL, };
++
+ static GThreadPool *cleanup_pool;
+ 
+ static void cleanup_job (gpointer data, gpointer user_data);
+@@ -135,6 +144,58 @@ gom_miner_dispose (GObject *object)
+   G_OBJECT_CLASS (gom_miner_parent_class)->dispose (object);
+ }
+ 
++static void
++gom_miner_init_database (GomMiner      *self,
++                         GCancellable  *cancellable,
++                         GError       **error)
++{
++  TrackerSparqlConnectionFlags flags;
++  g_autoptr (GFile) store_path = NULL;
++  g_autoptr (GDBusConnection) bus = NULL;
++  GError *inner_error = NULL;
++
++  flags = TRACKER_SPARQL_CONNECTION_FLAGS_FTS_ENABLE_STEMMER |
++          TRACKER_SPARQL_CONNECTION_FLAGS_FTS_ENABLE_UNACCENT |
++          TRACKER_SPARQL_CONNECTION_FLAGS_FTS_ENABLE_STOP_WORDS |
++          TRACKER_SPARQL_CONNECTION_FLAGS_FTS_IGNORE_NUMBERS;
++
++  store_path = g_file_new_build_filename (g_get_user_cache_dir (),
++                                          "gnome-online-miners",
++                                          self->priv->bus_name,
++                                          NULL);
++
++  self->priv->connection = tracker_sparql_connection_new (flags,
++                                                          store_path,
++                                                          tracker_sparql_get_ontology_nepomuk (),
++                                                          cancellable,
++                                                          &inner_error);
++
++  if (inner_error)
++    {
++      g_propagate_error (error, inner_error);
++      return;
++    }
++
++  bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &inner_error);
++
++  if (inner_error)
++    {
++      g_propagate_error (error, inner_error);
++      return;
++    }
++
++  self->priv->endpoint = tracker_endpoint_dbus_new (self->priv->connection,
++                                                    bus,
++                                                    NULL, /* object path */
++                                                    cancellable,
++                                                    &inner_error);
++  if (inner_error)
++    {
++      g_propagate_error (error, inner_error);
++      return;
++    }
++}
++
+ static void
+ gom_miner_init_goa (GomMiner  *self,
+                     GError   **error)
+@@ -185,10 +246,10 @@ gom_miner_initable_init (GInitable     *initable,
+ 
+   self = GOM_MINER (initable);
+ 
+-  self->priv->connection = tracker_sparql_connection_get (cancellable, &inner_error);
++  gom_miner_init_database (self, cancellable, &inner_error);
+   if (inner_error)
+     {
+-      g_propagate_prefixed_error (error, inner_error, "Unable to connect to Tracker store: ");
++      g_propagate_prefixed_error (error, inner_error, "Unable to set up Tracker database: ");
+       return FALSE;
+     }
+ 
+@@ -212,6 +273,47 @@ gom_miner_init (GomMiner *self)
+   self->priv->display_name = g_strdup ("");
+ }
+ 
++static void
++gom_miner_set_property (GObject      *object,
++                        guint         property_id,
++                        const GValue *value,
++                        GParamSpec   *pspec)
++{
++  GomMiner *self = GOM_MINER (object);
++
++  switch ((GomMinerProperty) property_id)
++    {
++      case PROP_BUS_NAME:
++        g_free (self->priv->bus_name);
++        self->priv->bus_name = g_value_dup_string (value);
++        break;
++
++      default:
++        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
++        break;
++    }
++}
++
++static void
++gom_miner_get_property (GObject    *object,
++                        guint       property_id,
++                        GValue     *value,
++                        GParamSpec *pspec)
++{
++  GomMiner *self = GOM_MINER (object);
++
++  switch ((GomMinerProperty) property_id)
++    {
++       case PROP_BUS_NAME:
++         g_value_set_string (value, self->priv->bus_name);
++         break;
++
++       default:
++         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
++         break;
++    }
++}
++
+ static void
+ gom_miner_initable_interface_init (GInitableIface *iface)
+ {
+@@ -224,6 +326,19 @@ gom_miner_class_init (GomMinerClass *klass)
+   GObjectClass *oclass = G_OBJECT_CLASS (klass);
+ 
+   oclass->dispose = gom_miner_dispose;
++  oclass->set_property = gom_miner_set_property;
++  oclass->get_property = gom_miner_get_property;
++
++  obj_properties[PROP_BUS_NAME] = g_param_spec_string ("bus-name",
++                                                       "Bus Name",
++                                                       "D-Bus name of the miner",
++                                                       NULL  /* default value */,
++                                                       G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE |
++                                                       G_PARAM_STATIC_STRINGS);
++
++  g_object_class_install_properties (oclass,
++                                     N_PROPERTIES,
++                                     obj_properties);
+ 
+   cleanup_pool = g_thread_pool_new (cleanup_job, NULL, 1, FALSE, NULL);
+ 
+diff --git a/src/gom-miner.h b/src/gom-miner.h
+index 8f83139..5dcfc8d 100644
+--- a/src/gom-miner.h
++++ b/src/gom-miner.h
+@@ -61,6 +61,7 @@ typedef struct _GomMinerPrivate GomMinerPrivate;
+ typedef struct {
+   GomMiner *miner;
+   TrackerSparqlConnection *connection;
++  gchar *bus_name;
+ 
+   GoaAccount *account;
+   GHashTable *services;
+diff --git a/src/gom-tracker.c b/src/gom-tracker.c
+index 68818c4..5666c16 100644
+--- a/src/gom-tracker.c
++++ b/src/gom-tracker.c
+@@ -408,7 +408,7 @@ gom_tracker_utils_ensure_equipment_resource (TrackerSparqlConnection *connection
+   gchar *retval = NULL;
+   gchar *select = NULL;
+ 
+-  g_return_val_if_fail (TRACKER_SPARQL_IS_CONNECTION (connection), NULL);
++  g_return_val_if_fail (TRACKER_IS_SPARQL_CONNECTION (connection), NULL);
+   g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), NULL);
+   g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+   g_return_val_if_fail (make != NULL || model != NULL, NULL);
+
+diff --git a/src/gom-tracker.c b/src/gom-tracker.c
+index 5666c16..63a4c29 100644
+--- a/src/gom-tracker.c
++++ b/src/gom-tracker.c
+@@ -208,6 +208,6 @@ gom_tracker_sparql_connection_insert_or_replace_triple (TrackerSparqlConnection
+   insert = g_string_new (NULL);
+   g_string_append_printf
+     (insert,
+-     "INSERT OR REPLACE %s { <%s> a nie:InformationElement ; %s %s }",
++     "INSERT OR REPLACE %s { <%s> a nie:InformationElement, nie:DataObject ; %s %s }",
+      graph_str, resource, property_name, quoted);
+   g_free (quoted);
+
+diff --git a/src/gom-facebook-miner.c b/src/gom-facebook-miner.c
+index ff42ca5..fc89096 100644
+--- a/src/gom-facebook-miner.c
++++ b/src/gom-facebook-miner.c
+@@ -70,7 +70,7 @@ account_miner_job_process_photo (GomAccountMinerJob *job,
+     (connection,
+      cancellable, error,
+      &resource_exists,
+-     datasource_urn, identifier,
++     TRACKER_PICTURES_GRAPH, identifier,
+      "nfo:RemoteDataObject", class, NULL);
+ 
+   if (*error != NULL)
+@@ -239,7 +239,7 @@ account_miner_job_process_album (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:url", album_link);
+ 
+   if (*error != NULL)
+@@ -248,7 +248,7 @@ account_miner_job_process_album (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:description", album_description);
+ 
+   if (*error != NULL)
+@@ -257,7 +257,7 @@ account_miner_job_process_album (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:title", album_name);
+ 
+   if (*error != NULL)
+@@ -274,7 +274,7 @@ account_miner_job_process_album (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nco:creator", contact_resource);
+   g_free (contact_resource);
+ 
+@@ -284,7 +284,7 @@ account_miner_job_process_album (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:contentCreated", album_created_time);
+ 
+   if (*error != NULL)
+
+diff --git a/src/gom-flickr-miner.c b/src/gom-flickr-miner.c
+index 9ac338e..dc7349e 100644
+--- a/src/gom-flickr-miner.c
++++ b/src/gom-flickr-miner.c
+@@ -143,14 +143,14 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+     (connection,
+      cancellable, error,
+      &resource_exists,
+-     datasource_urn, identifier,
++     TRACKER_PICTURES_GRAPH, identifier,
+      "nfo:RemoteDataObject", class, NULL);
+ 
+   if (*error != NULL)
+     goto out;
+ 
+   gom_tracker_update_datasource (connection, datasource_urn,
+-                                 resource_exists, identifier, resource,
++                                 resource_exists, TRACKER_PICTURES_GRAPH, resource,
+                                  cancellable, error);
+ 
+   if (*error != NULL)
+@@ -166,7 +166,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+       parent_resource_urn = gom_tracker_sparql_connection_ensure_resource
+         (connection, cancellable, error,
+          NULL,
+-         datasource_urn, parent_identifier,
++         TRACKER_PICTURES_GRAPH, parent_identifier,
+          "nfo:RemoteDataObject", "nfo:DataContainer", NULL);
+       g_free (parent_identifier);
+ 
+@@ -176,7 +176,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+       gom_tracker_sparql_connection_insert_or_replace_triple
+         (connection,
+          cancellable, error,
+-         datasource_urn, resource,
++         TRACKER_PICTURES_GRAPH, resource,
+          "nie:isPartOf", parent_resource_urn);
+       g_free (parent_resource_urn);
+ 
+@@ -187,7 +187,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:title", grl_media_get_title (entry->media));
+ 
+   if (*error != NULL)
+@@ -202,7 +202,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+   created_time = modification_date = grl_media_get_creation_date (entry->media);
+   new_mtime = g_date_time_to_unix (modification_date);
+   mtime_changed = gom_tracker_update_mtime (connection, new_mtime,
+-                                            resource_exists, identifier, resource,
++                                            resource_exists, TRACKER_PICTURES_GRAPH, resource,
+                                             cancellable, error);
+ 
+   if (*error != NULL)
+@@ -221,7 +221,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+       gom_tracker_sparql_connection_insert_or_replace_triple
+         (connection,
+          cancellable, error,
+-         datasource_urn, resource,
++         TRACKER_PICTURES_GRAPH, resource,
+          "nie:contentCreated", date);
+       g_free (date);
+     }
+@@ -233,7 +233,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:url", url);
+ 
+   if (*error != NULL)
+@@ -242,7 +242,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:description", grl_media_get_description (entry->media));
+ 
+   if (*error != NULL)
+@@ -254,7 +254,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+       gom_tracker_sparql_connection_insert_or_replace_triple
+         (connection,
+          cancellable, error,
+-         datasource_urn, resource,
++         TRACKER_PICTURES_GRAPH, resource,
+          "nie:mimeType", mime);
+       g_free (mime);
+ 
+@@ -265,7 +265,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+   contact_resource = gom_tracker_utils_ensure_contact_resource
+     (connection,
+      cancellable, error,
+-     datasource_urn, grl_media_get_author (entry->media));
++     TRACKER_PICTURES_GRAPH, grl_media_get_author (entry->media));
+ 
+   if (*error != NULL)
+     goto out;
+@@ -273,7 +273,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nco:creator", contact_resource);
+   g_free (contact_resource);
+ 
+diff --git a/src/gom-gdata-miner.c b/src/gom-gdata-miner.c
+index 7872431..d0deb80 100644
+--- a/src/gom-gdata-miner.c
++++ b/src/gom-gdata-miner.c
+@@ -120,7 +120,7 @@ account_miner_job_process_entry (TrackerSparqlConnection *connection,
+     (connection,
+      cancellable, error,
+      &resource_exists,
+-     datasource_urn, identifier,
++     TRACKER_DOCUMENTS_GRAPH, identifier,
+      "nfo:RemoteDataObject", class, NULL);
+ 
+   if (*error != NULL)
+@@ -187,7 +187,7 @@ account_miner_job_process_entry (TrackerSparqlConnection *connection,
+       parent_resource_urn = gom_tracker_sparql_connection_ensure_resource
+         (connection, cancellable, error,
+          NULL,
+-         datasource_urn, parent_resource_id,
++         GOM_GRAPH, parent_resource_id,
+          "nfo:RemoteDataObject", "nfo:DataContainer", NULL);
+       g_free (parent_resource_id);
+ 
+@@ -219,7 +219,7 @@ account_miner_job_process_entry (TrackerSparqlConnection *connection,
+   gom_tracker_sparql_connection_toggle_favorite
+     (connection,
+      cancellable, error,
+-     resource, starred);
++     TRACKER_PICTURES_GRAPH, resource, starred);
+ 
+   if (*error != NULL)
+     goto out;
+@@ -400,14 +400,14 @@ account_miner_job_process_photo (TrackerSparqlConnection *connection,
+     (connection,
+      cancellable, error,
+      &resource_exists,
+-     datasource_urn, identifier,
++     TRACKER_PICTURES_GRAPH, identifier,
+      "nfo:RemoteDataObject", "nmm:Photo", NULL);
+ 
+   if (*error != NULL)
+     goto out;
+ 
+   gom_tracker_update_datasource (connection, datasource_urn,
+-                                 resource_exists, identifier, resource,
++                                 resource_exists, TRACKER_PICTURES_GRAPH, resource,
+                                  cancellable, error);
+   if (*error != NULL)
+     goto out;
+@@ -566,6 +566,7 @@ account_miner_job_process_photo (TrackerSparqlConnection *connection,
+       equipment_resource = gom_tracker_utils_ensure_equipment_resource (connection,
+                                                                         cancellable,
+                                                                         error,
++                                                                        TRACKER_PICTURES_GRAPH,
+                                                                         make,
+                                                                         model);
+ 
+@@ -665,7 +666,7 @@ account_miner_job_process_album (TrackerSparqlConnection *connection,
+     (connection,
+      cancellable, error,
+      &resource_exists,
+-     datasource_urn, identifier,
++     TRACKER_PICTURES_GRAPH, identifier,
+      "nfo:RemoteDataObject", "nfo:DataContainer",
+      NULL);
+ 
+@@ -674,7 +675,7 @@ account_miner_job_process_album (TrackerSparqlConnection *connection,
+ 
+   gom_tracker_update_datasource
+     (connection, datasource_urn,
+-     resource_exists, identifier, resource,
++     resource_exists, TRACKER_PICTURES_GRAPH, resource,
+      cancellable, error);
+ 
+   if (*error != NULL)
+@@ -685,7 +686,7 @@ account_miner_job_process_album (TrackerSparqlConnection *connection,
+    */
+   new_mtime = gdata_entry_get_updated (GDATA_ENTRY (album));
+   mtime_changed = gom_tracker_update_mtime (connection, new_mtime,
+-                                            resource_exists, identifier, resource,
++                                            resource_exists, TRACKER_PICTURES_GRAPH, resource,
+                                             cancellable, error);
+ 
+   if (*error != NULL)
+@@ -703,7 +704,7 @@ account_miner_job_process_album (TrackerSparqlConnection *connection,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:url", alternate_uri);
+ 
+   if (*error != NULL)
+@@ -713,7 +714,7 @@ account_miner_job_process_album (TrackerSparqlConnection *connection,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:description", summary);
+ 
+   if (*error != NULL)
+@@ -723,7 +724,7 @@ account_miner_job_process_album (TrackerSparqlConnection *connection,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:title", title);
+ 
+   if (*error != NULL)
+@@ -743,7 +744,7 @@ account_miner_job_process_album (TrackerSparqlConnection *connection,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nco:creator", contact_resource);
+   g_free (contact_resource);
+ 
+@@ -755,7 +756,7 @@ account_miner_job_process_album (TrackerSparqlConnection *connection,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:contentCreated", date);
+   g_free (date);
+ 
+@@ -865,7 +866,7 @@ insert_shared_content_photos (TrackerSparqlConnection *connection,
+   if (!gom_tracker_sparql_connection_insert_or_replace_triple (connection,
+                                                                cancellable,
+                                                                &local_error,
+-                                                               datasource_urn,
++                                                               TRACKER_PICTURES_GRAPH,
+                                                                source_urn,
+                                                                "nie:relatedTo",
+                                                                photo_resource_urn))
+@@ -878,7 +879,7 @@ insert_shared_content_photos (TrackerSparqlConnection *connection,
+   if (!gom_tracker_sparql_connection_insert_or_replace_triple (connection,
+                                                                cancellable,
+                                                                &local_error,
+-                                                               datasource_urn,
++                                                               TRACKER_PICTURES_GRAPH,
+                                                                photo_resource_urn,
+                                                                "nie:links",
+                                                                source_urn))
+
+diff --git a/src/gom-media-server-miner.c b/src/gom-media-server-miner.c
+index 490869e..32e08c6 100644
+--- a/src/gom-media-server-miner.c
++++ b/src/gom-media-server-miner.c
+@@ -65,14 +65,14 @@ account_miner_job_process_photo (GomAccountMinerJob *job,
+     (connection,
+      cancellable, error,
+      &resource_exists,
+-     datasource_urn, identifier,
++     TRACKER_PICTURES_GRAPH, identifier,
+      "nfo:RemoteDataObject", class, NULL);
+ 
+   if (*error != NULL)
+     goto out;
+ 
+   gom_tracker_update_datasource (connection, datasource_urn,
+-                                 resource_exists, identifier, resource,
++                                 resource_exists, TRACKER_PICTURES_GRAPH, resource,
+                                  cancellable, error);
+   if (*error != NULL)
+     goto out;
+@@ -81,7 +81,7 @@ account_miner_job_process_photo (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:url", photo->url);
+ 
+   if (*error != NULL)
+@@ -90,7 +90,7 @@ account_miner_job_process_photo (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:mimeType", photo->mimetype);
+ 
+   if (*error != NULL)
+@@ -99,7 +99,7 @@ account_miner_job_process_photo (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:title", photo->name);
+ 
+   if (*error != NULL)
+
+diff --git a/src/gom-miner.c b/src/gom-miner.c
+index ba76ebb..40b111d 100644
+--- a/src/gom-miner.c
++++ b/src/gom-miner.c
+@@ -375,7 +375,7 @@ gom_miner_ensure_datasource (GomMiner *self,
+                           "  <%s> a nie:DataSource ; nao:identifier \"%s\" . "
+                           "  <%s> a nie:InformationElement ; nie:rootElementOf <%s> ; nie:version \"%d\""
+                           "}",
+-                          datasource_urn,
++                          GOM_GRAPH,
+                           datasource_urn, klass->miner_identifier,
+                           root_element_urn, datasource_urn, klass->version);
+ 
+@@ -400,8 +400,8 @@ gom_account_miner_job_query_existing (GomAccountMinerJob *job,
+ 
+   select = g_string_new (NULL);
+   g_string_append_printf (select,
+-                          "SELECT ?urn nao:identifier(?urn) WHERE { ?urn nie:dataSource <%s> }",
+-                          job->datasource_urn);
++                          "SELECT ?urn ?id WHERE { GRAPH <%s> { ?urn nie:dataSource <%s> ; nao:identifier ?id . } }",
++                          GOM_GRAPH, job->datasource_urn);
+ 
+   cursor = tracker_sparql_connection_query (job->connection,
+                                             select->str,
+@@ -414,9 +414,21 @@ gom_account_miner_job_query_existing (GomAccountMinerJob *job,
+ 
+   while (tracker_sparql_cursor_next (cursor, cancellable, error))
+     {
+-      g_hash_table_insert (job->previous_resources,
+-                           g_strdup (tracker_sparql_cursor_get_string (cursor, 1, NULL)),
+-                           g_strdup (tracker_sparql_cursor_get_string (cursor, 0, NULL)));
++      const gchar *urn, *identifier;
++
++      urn = tracker_sparql_cursor_get_string (cursor, 0, NULL);
++      identifier = tracker_sparql_cursor_get_string (cursor, 1, NULL);
++
++      if (identifier != NULL)
++        {
++          g_hash_table_insert (job->previous_resources,
++                               g_strdup (identifier),
++                               g_strdup (urn));
++        }
++      else
++        {
++          g_warning ("Missing identifier for urn %s", urn);
++        }
+     }
+ 
+   g_object_unref (cursor);
+@@ -488,16 +500,19 @@ gom_account_miner_job (GTask *task,
+   if (error != NULL)
+     goto out;
+ 
++  g_debug ("account miner: Querying existing accounts stored in database");
+   gom_account_miner_job_query_existing (job, &error);
+ 
+   if (error != NULL)
+     goto out;
+ 
++  g_debug ("account miner: Querying remote server");
+   gom_account_miner_job_query (job, &error);
+ 
+   if (error != NULL)
+     goto out;
+ 
++  g_debug ("account miner: Removing stale accounts");
+   gom_account_miner_job_cleanup_previous (job, &error);
+ 
+   if (error != NULL)
+@@ -751,10 +766,15 @@ cleanup_job (gpointer data,
+ 
+   /* find all our datasources in the tracker DB */
+   select = g_string_new (NULL);
+-  g_string_append_printf (select, "SELECT ?datasource nie:version(?root) WHERE { "
+-                          "?datasource a nie:DataSource . "
+-                          "?datasource nao:identifier \"%s\" . "
+-                          "OPTIONAL { ?root nie:rootElementOf ?datasource } }",
++  g_string_append_printf (select,
++                          "SELECT ?datasource nie:version(?root) WHERE { "
++                          "  GRAPH <%s> { "
++                          "    ?datasource a nie:DataSource . "
++                          "    ?datasource nao:identifier \"%s\" . "
++                          "    OPTIONAL { ?root nie:rootElementOf ?datasource } "
++                          "  }"
++                          "}",
++                          GOM_GRAPH,
+                           klass->miner_identifier);
+ 
+   cursor = tracker_sparql_connection_query (self->priv->connection,
+
+diff --git a/src/gom-miner.h b/src/gom-miner.h
+index 5dcfc8d..8f83139 100644
+--- a/src/gom-miner.h
++++ b/src/gom-miner.h
+@@ -61,7 +61,6 @@ typedef struct _GomMinerPrivate GomMinerPrivate;
+ typedef struct {
+   GomMiner *miner;
+   TrackerSparqlConnection *connection;
+-  gchar *bus_name;
+ 
+   GoaAccount *account;
+   GHashTable *services;
+
+diff --git a/src/gom-owncloud-miner.c b/src/gom-owncloud-miner.c
+index 34d303b..623f2e1 100644
+--- a/src/gom-owncloud-miner.c
++++ b/src/gom-owncloud-miner.c
+@@ -100,14 +100,14 @@ account_miner_job_process_file (GomAccountMinerJob *job,
+     (connection,
+      cancellable, error,
+      &resource_exists,
+-     datasource_urn, identifier,
++     TRACKER_DOCUMENTS_GRAPH, identifier,
+      "nfo:RemoteDataObject", class, NULL);
+ 
+   if (*error != NULL)
+     goto out;
+ 
+   gom_tracker_update_datasource (connection, datasource_urn,
+-                                 resource_exists, identifier, resource,
++                                 resource_exists, TRACKER_DOCUMENTS_GRAPH, resource,
+                                  cancellable, error);
+ 
+   if (*error != NULL)
+@@ -117,7 +117,7 @@ account_miner_job_process_file (GomAccountMinerJob *job,
+   modification_time = g_date_time_new_from_timeval_local (&tv);
+   new_mtime = g_date_time_to_unix (modification_time);
+   mtime_changed = gom_tracker_update_mtime (connection, new_mtime,
+-                                            resource_exists, identifier, resource,
++                                            resource_exists, TRACKER_DOCUMENTS_GRAPH, resource,
+                                             cancellable, error);
+ 
+   if (*error != NULL)
+@@ -133,7 +133,7 @@ account_miner_job_process_file (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_DOCUMENTS_GRAPH, resource,
+      "nie:url", uri);
+ 
+   if (*error != NULL)
+@@ -156,7 +156,7 @@ account_miner_job_process_file (GomAccountMinerJob *job,
+           parent_resource_urn = gom_tracker_sparql_connection_ensure_resource
+             (connection, cancellable, error,
+              NULL,
+-             datasource_urn, parent_identifier,
++             GOM_GRAPH, parent_identifier,
+              "nfo:RemoteDataObject", "nfo:DataContainer", NULL);
+           g_checksum_reset (checksum);
+           g_free (parent_identifier);
+@@ -168,7 +168,7 @@ account_miner_job_process_file (GomAccountMinerJob *job,
+           gom_tracker_sparql_connection_insert_or_replace_triple
+             (connection,
+              cancellable, error,
+-             datasource_urn, resource,
++             TRACKER_DOCUMENTS_GRAPH, resource,
+              "nie:isPartOf", parent_resource_urn);
+           g_free (parent_resource_urn);
+ 
+@@ -182,7 +182,7 @@ account_miner_job_process_file (GomAccountMinerJob *job,
+           gom_tracker_sparql_connection_insert_or_replace_triple
+             (connection,
+              cancellable, error,
+-             datasource_urn, resource,
++             TRACKER_DOCUMENTS_GRAPH, resource,
+              "nie:mimeType", mime);
+ 
+           if (*error != NULL)
+@@ -194,7 +194,7 @@ account_miner_job_process_file (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_DOCUMENTS_GRAPH, resource,
+      "nfo:fileName", display_name);
+ 
+   if (*error != NULL)
+@@ -416,6 +416,11 @@ query_owncloud (GomAccountMinerJob *job,
+   mount = g_volume_get_mount (volume);
+   if (mount == NULL)
+     {
++      g_autofree gchar *volume_name;
++
++      volume_name = g_volume_get_name (volume);
++      g_debug ("Mounting Online Account volume %s", volume_name);
++
+       data.error = error;
+ 
+       context = g_main_context_new ();
+@@ -436,6 +441,7 @@ query_owncloud (GomAccountMinerJob *job,
+     }
+ 
+   root = g_mount_get_root (mount);
++  g_debug ("Got volume from gnome-online-accounts: root is %s", g_file_peek_path (root));
+   account_miner_job_traverse_dir (job, connection, previous_resources, datasource_urn, root, TRUE, cancellable, error);
+ 
+   g_object_unref (root);
+
+diff --git a/src/gom-tracker.c b/src/gom-tracker.c
+index 63a4c29..469583e 100644
+--- a/src/gom-tracker.c
++++ b/src/gom-tracker.c
+@@ -26,16 +26,11 @@
+ #include "gom-tracker.h"
+ #include "gom-utils.h"
+ 
+-static gchar *
+-_tracker_utils_format_into_graph (const gchar *graph)
+-{
+-  return (graph != NULL) ? g_strdup_printf ("INTO <%s> ", graph) : g_strdup ("");
+-}
+-
+ static gboolean
+ gom_tracker_sparql_connection_get_string_attribute (TrackerSparqlConnection *connection,
+                                                     GCancellable *cancellable,
+                                                     GError **error,
++                                                    const gchar *graph,
+                                                     const gchar *resource,
+                                                     const gchar *attribute,
+                                                     gchar **value)
+@@ -45,8 +40,8 @@ gom_tracker_sparql_connection_get_string_attribute (TrackerSparqlConnection *con
+   const gchar *string_value = NULL;
+   gboolean res;
+ 
+-  g_string_append_printf (select, "SELECT ?val { <%s> %s ?val }",
+-                          resource, attribute);
++  g_string_append_printf (select, "SELECT ?val { GRAPH <%s> { <%s> %s ?val } }",
++                          graph, resource, attribute);
+   cursor = tracker_sparql_connection_query (connection,
+                                             select->str,
+                                             cancellable, error);
+@@ -86,7 +81,8 @@ gom_tracker_sparql_connection_ensure_resource (TrackerSparqlConnection *connecti
+                                                const gchar *class,
+                                                ...)
+ {
+-  GString *select, *insert, *inner;
++  GString *select, *inner;
++  gchar *insert;
+   va_list args;
+   const gchar *arg;
+   TrackerSparqlCursor *cursor;
+@@ -98,6 +94,8 @@ gom_tracker_sparql_connection_ensure_resource (TrackerSparqlConnection *connecti
+   gchar *key = NULL, *val = NULL;
+   gboolean exists = FALSE;
+ 
++  g_return_val_if_fail (graph != NULL, NULL);
++
+   /* build the inner query with all the classes */
+   va_start (args, class);
+   inner = g_string_new (NULL);
+@@ -112,7 +110,7 @@ gom_tracker_sparql_connection_ensure_resource (TrackerSparqlConnection *connecti
+   /* query if such a resource is already in the DB */
+   select = g_string_new (NULL);
+   g_string_append_printf (select,
+-                          "SELECT ?urn WHERE { ?urn %s }", inner->str);
++                          "SELECT ?urn WHERE { GRAPH <%s> { ?urn %s } }", graph, inner->str);
+ 
+   cursor = tracker_sparql_connection_query (connection,
+                                             select->str,
+@@ -138,19 +136,12 @@ gom_tracker_sparql_connection_ensure_resource (TrackerSparqlConnection *connecti
+     }
+ 
+   /* not found, create the resource */
+-  insert = g_string_new (NULL);
+-  graph_str = _tracker_utils_format_into_graph (graph);
+-
+-  g_string_append_printf (insert, "INSERT %s { _:res %s }",
+-                          graph_str, inner->str);
+-  g_free (graph_str);
+-  g_string_free (inner, TRUE);
+-
++  insert = g_strdup_printf ("INSERT INTO <%s> { _:res %s }",
++                            graph, inner->str);
+   insert_res =
+-    tracker_sparql_connection_update_blank (connection, insert->str,
++    tracker_sparql_connection_update_blank (connection, insert,
+                                             G_PRIORITY_DEFAULT, NULL, error);
+-
+-  g_string_free (insert, TRUE);
++  g_free (insert);
+ 
+   if (*error != NULL)
+     goto out;
+@@ -194,10 +185,10 @@ gom_tracker_sparql_connection_insert_or_replace_triple (TrackerSparqlConnection
+                                                         const gchar *property_value)
+ {
+   GString *insert;
+-  gchar *graph_str, *quoted;
++  gchar *quoted;
+   gboolean retval = TRUE;
+ 
+-  graph_str = _tracker_utils_format_into_graph (graph);
++  g_return_val_if_fail (graph != NULL, FALSE);
+ 
+   /* the "null" value must not be quoted */
+   if (property_value == NULL)
+@@ -208,8 +199,8 @@ gom_tracker_sparql_connection_insert_or_replace_triple (TrackerSparqlConnection
+   insert = g_string_new (NULL);
+   g_string_append_printf
+     (insert,
+-     "INSERT OR REPLACE %s { <%s> a nie:InformationElement, nie:DataObject ; %s %s }",
+-     graph_str, resource, property_name, quoted);
++     "INSERT OR REPLACE INTO <%s> { <%s> a nie:InformationElement, nie:DataObject ; %s %s }",
++     graph, resource, property_name, quoted);
+   g_free (quoted);
+ 
+   g_debug ("Insert or replace triple: query %s", insert->str);
+@@ -223,8 +214,6 @@ gom_tracker_sparql_connection_insert_or_replace_triple (TrackerSparqlConnection
+   if (*error != NULL)
+     retval = FALSE;
+ 
+-  g_free (graph_str);
+-
+   return retval;
+ }
+ 
+@@ -271,6 +260,7 @@ gboolean
+ gom_tracker_sparql_connection_toggle_favorite (TrackerSparqlConnection *connection,
+                                                GCancellable *cancellable,
+                                                GError **error,
++                                               const gchar *graph,
+                                                const gchar *resource,
+                                                gboolean favorite)
+ {
+@@ -279,15 +269,15 @@ gom_tracker_sparql_connection_toggle_favorite (TrackerSparqlConnection *connecti
+   gboolean retval = TRUE;
+ 
+   if (favorite)
+-    op_str = "INSERT OR REPLACE";
++    op_str = "INSERT OR REPLACE INTO";
+   else
+-    op_str = "DELETE";
++    op_str = "DELETE FROM";
+ 
+   update = g_string_new (NULL);
+   g_string_append_printf
+     (update,
+-     "%s { <%s> nao:hasTag nao:predefined-tag-favorite }",
+-     op_str, resource);
++     "%s <%s> { <%s> nao:hasTag nao:predefined-tag-favorite }",
++     op_str, graph, resource);
+ 
+   g_debug ("Toggle favorite: query %s", update->str);
+ 
+@@ -321,9 +311,13 @@ gom_tracker_utils_ensure_contact_resource (TrackerSparqlConnection *connection,
+   mail_uri = g_strconcat ("mailto:", email, NULL);
+   select = g_string_new (NULL);
+   g_string_append_printf (select,
+-                          "SELECT ?urn WHERE { ?urn a nco:Contact . "
+-                          "?urn nco:hasEmailAddress ?mail . "
+-                          "FILTER (fn:contains(?mail, \"%s\" )) }", mail_uri);
++                          "SELECT ?urn WHERE { "
++                          "  GRAPH <%s> { "
++                          "    ?urn a nco:Contact . "
++                          "    ?urn nco:hasEmailAddress ?mail . "
++                          "    FILTER (fn:contains(?mail, \"%s\" )) "
++                          "  }"
++                          "}", TRACKER_CONTACTS_GRAPH, mail_uri);
+ 
+   cursor = tracker_sparql_connection_query (connection,
+                                             select->str,
+@@ -351,8 +345,9 @@ gom_tracker_utils_ensure_contact_resource (TrackerSparqlConnection *connection,
+   insert = g_string_new (NULL);
+ 
+   g_string_append_printf (insert,
+-                          "INSERT { <%s> a nco:EmailAddress ; nco:emailAddress \"%s\" . "
++                          "INSERT INTO <%s> { <%s> a nco:EmailAddress ; nco:emailAddress \"%s\" . "
+                           "_:res a nco:Contact ; nco:hasEmailAddress <%s> ; nco:fullname \"%s\" . }",
++                          TRACKER_CONTACTS_GRAPH,
+                           mail_uri, email,
+                           mail_uri, fullname);
+ 
+@@ -397,6 +392,7 @@ gchar *
+ gom_tracker_utils_ensure_equipment_resource (TrackerSparqlConnection *connection,
+                                              GCancellable *cancellable,
+                                              GError **error,
++                                             const gchar *graph,
+                                              const gchar *make,
+                                              const gchar *model)
+ {
+@@ -416,7 +412,7 @@ gom_tracker_utils_ensure_equipment_resource (TrackerSparqlConnection *connection
+   equip_uri = tracker_sparql_escape_uri_printf ("urn:equipment:%s:%s:",
+                                                 make != NULL ? make : "",
+                                                 model != NULL ? model : "");
+-  select = g_strdup_printf ("SELECT <%s> WHERE { }", equip_uri);
++  select = g_strdup_printf ("SELECT <%s> WHERE { GRAPH <%s> { } }", equip_uri, graph);
+ 
+   local_error = NULL;
+   cursor = tracker_sparql_connection_query (connection, select, cancellable, &local_error);
+@@ -449,7 +445,8 @@ gom_tracker_utils_ensure_equipment_resource (TrackerSparqlConnection *connection
+     }
+ 
+   /* not found, create the resource */
+-  insert = g_strdup_printf ("INSERT { <%s> a nfo:Equipment ; nfo:manufacturer \"%s\" ; nfo:model \"%s\" }",
++  insert = g_strdup_printf ("INSERT INTO <%s> { <%s> a nfo:Equipment ; nfo:manufacturer \"%s\" ; nfo:model \"%s\" }",
++                            graph,
+                             equip_uri,
+                             make,
+                             model);
+@@ -480,7 +477,7 @@ void
+ gom_tracker_update_datasource (TrackerSparqlConnection  *connection,
+                                const gchar              *datasource_urn,
+                                gboolean                  resource_exists,
+-                               const gchar              *identifier,
++                               const gchar              *graph,
+                                const gchar              *resource,
+                                GCancellable             *cancellable,
+                                GError                  **error)
+@@ -498,7 +495,7 @@ gom_tracker_update_datasource (TrackerSparqlConnection  *connection,
+ 
+       res = gom_tracker_sparql_connection_get_string_attribute
+         (connection, cancellable, error,
+-         resource, "nie:dataSource", &old_value);
++         graph, resource, "nie:dataSource", &old_value);
+       g_clear_error (error);
+ 
+       if (res)
+@@ -514,7 +511,7 @@ gom_tracker_update_datasource (TrackerSparqlConnection  *connection,
+   if (set_datasource)
+     gom_tracker_sparql_connection_set_triple
+       (connection, cancellable, error,
+-       identifier, resource,
++       graph, resource,
+        "nie:dataSource", datasource_urn);
+ }
+ 
+@@ -522,7 +519,7 @@ gboolean
+ gom_tracker_update_mtime (TrackerSparqlConnection  *connection,
+                           gint64                    new_mtime,
+                           gboolean                  resource_exists,
+-                          const gchar              *identifier,
++                          const gchar              *graph,
+                           const gchar              *resource,
+                           GCancellable             *cancellable,
+                           GError                  **error)
+@@ -536,7 +533,7 @@ gom_tracker_update_mtime (TrackerSparqlConnection  *connection,
+     {
+       res = gom_tracker_sparql_connection_get_string_attribute
+         (connection, cancellable, error,
+-         resource, "nie:contentLastModified", &old_value);
++         graph, resource, "nie:contentLastModified", &old_value);
+       g_clear_error (error);
+ 
+       if (res)
+@@ -552,7 +549,7 @@ gom_tracker_update_mtime (TrackerSparqlConnection  *connection,
+   date = gom_iso8601_from_timestamp (new_mtime);
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection, cancellable, error,
+-     identifier, resource,
++     graph, resource,
+      "nie:contentLastModified", date);
+   g_free (date);
+ 
+diff --git a/src/gom-tracker.h b/src/gom-tracker.h
+index 94a39e8..a5ae6fd 100644
+--- a/src/gom-tracker.h
++++ b/src/gom-tracker.h
+@@ -29,6 +29,14 @@
+ 
+ G_BEGIN_DECLS
+ 
++/* The graph where we store account meta information */
++#define GOM_GRAPH "tracker.api.gnome.org/ontology/v3/gnome-online-miners"
++
++/* Graphs where we store content information */
++#define TRACKER_CONTACTS_GRAPH "http://tracker.api.gnome.org/ontology/v3/tracker#Contacts"
++#define TRACKER_DOCUMENTS_GRAPH "http://tracker.api.gnome.org/ontology/v3/tracker#Documents"
++#define TRACKER_PICTURES_GRAPH "http://tracker.api.gnome.org/ontology/v3/tracker#Pictures"
++
+ gchar *gom_tracker_sparql_connection_ensure_resource (TrackerSparqlConnection *connection,
+                                                       GCancellable *cancellable,
+                                                       GError **error,
+@@ -57,6 +65,7 @@ gboolean gom_tracker_sparql_connection_set_triple (TrackerSparqlConnection *conn
+ gboolean gom_tracker_sparql_connection_toggle_favorite (TrackerSparqlConnection *connection,
+                                                         GCancellable *cancellable,
+                                                         GError **error,
++                                                        const gchar *graph,
+                                                         const gchar *resource,
+                                                         gboolean favorite);
+ 
+@@ -69,20 +78,21 @@ gchar* gom_tracker_utils_ensure_contact_resource (TrackerSparqlConnection *conne
+ gchar *gom_tracker_utils_ensure_equipment_resource (TrackerSparqlConnection *connection,
+                                                     GCancellable *cancellable,
+                                                     GError **error,
++                                                    const gchar *graph,
+                                                     const gchar *make,
+                                                     const gchar *model);
+ 
+ void gom_tracker_update_datasource (TrackerSparqlConnection  *connection,
+                                     const gchar              *datasource_urn,
+                                     gboolean                  resource_exists,
+-                                    const gchar              *identifier,
++                                    const gchar              *graph,
+                                     const gchar              *resource,
+                                     GCancellable             *cancellable,
+                                     GError                  **error);
+ gboolean gom_tracker_update_mtime (TrackerSparqlConnection  *connection,
+                                    gint64                    new_mtime,
+                                    gboolean                  resource_exists,
+-                                   const gchar              *identifier,
++                                   const gchar              *graph,
+                                    const gchar              *resource,
+                                    GCancellable             *cancellable,
+                                    GError                  **error);
+diff --git a/src/gom-zpj-miner.c b/src/gom-zpj-miner.c
+index 6dff947..1372de5 100644
+--- a/src/gom-zpj-miner.c
++++ b/src/gom-zpj-miner.c
+@@ -70,14 +70,14 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+     (connection,
+      cancellable, error,
+      &resource_exists,
+-     datasource_urn, identifier,
++     TRACKER_PICTURES_GRAPH, identifier,
+      "nfo:RemoteDataObject", class, NULL);
+ 
+   if (*error != NULL)
+     goto out;
+ 
+   gom_tracker_update_datasource (connection, datasource_urn,
+-                                 resource_exists, identifier, resource,
++                                 resource_exists, TRACKER_PICTURES_GRAPH, resource,
+                                  cancellable, error);
+ 
+   if (*error != NULL)
+@@ -86,7 +86,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+   updated_time = zpj_skydrive_entry_get_updated_time (entry);
+   new_mtime = g_date_time_to_unix (updated_time);
+   mtime_changed = gom_tracker_update_mtime (connection, new_mtime,
+-                                            resource_exists, identifier, resource,
++                                            resource_exists, TRACKER_PICTURES_GRAPH, resource,
+                                             cancellable, error);
+ 
+   if (*error != NULL)
+@@ -102,7 +102,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:url", identifier);
+ 
+   if (*error != NULL)
+@@ -119,7 +119,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+       parent_resource_urn = gom_tracker_sparql_connection_ensure_resource
+         (connection, cancellable, error,
+          NULL,
+-         datasource_urn, parent_identifier,
++         TRACKER_PICTURES_GRAPH, parent_identifier,
+          "nfo:RemoteDataObject", "nfo:DataContainer", NULL);
+       g_free (parent_identifier);
+ 
+@@ -129,7 +129,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+       gom_tracker_sparql_connection_insert_or_replace_triple
+         (connection,
+          cancellable, error,
+-         datasource_urn, resource,
++         TRACKER_PICTURES_GRAPH, resource,
+          "nie:isPartOf", parent_resource_urn);
+       g_free (parent_resource_urn);
+ 
+@@ -142,7 +142,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+           gom_tracker_sparql_connection_insert_or_replace_triple
+             (connection,
+              cancellable, error,
+-             datasource_urn, resource,
++             TRACKER_PICTURES_GRAPH, resource,
+              "nie:mimeType", mime);
+           g_free (mime);
+ 
+@@ -154,7 +154,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:description", zpj_skydrive_entry_get_description (entry));
+ 
+   if (*error != NULL)
+@@ -163,7 +163,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nfo:fileName", name);
+ 
+   if (*error != NULL)
+@@ -180,7 +180,7 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nco:creator", contact_resource);
+   g_free (contact_resource);
+ 
+@@ -192,6 +192,6 @@ account_miner_job_process_entry (GomAccountMinerJob *job,
+   gom_tracker_sparql_connection_insert_or_replace_triple
+     (connection,
+      cancellable, error,
+-     datasource_urn, resource,
++     TRACKER_PICTURES_GRAPH, resource,
+      "nie:contentCreated", date);
+   g_free (date);
+
+diff --git a/src/gom-miner.c b/src/gom-miner.c
+index 40b111d..f9e4be0 100644
+--- a/src/gom-miner.c
++++ b/src/gom-miner.c
+@@ -381,7 +381,6 @@ gom_miner_ensure_datasource (GomMiner *self,
+ 
+   tracker_sparql_connection_update (self->priv->connection,
+                                     datasource_insert->str,
+-                                    G_PRIORITY_DEFAULT,
+                                     cancellable,
+                                     error);
+ 
+@@ -468,7 +467,6 @@ gom_account_miner_job_cleanup_previous (GomAccountMinerJob *job,
+ 
+   tracker_sparql_connection_update (job->connection,
+                                     delete->str,
+-                                    G_PRIORITY_DEFAULT,
+                                     cancellable,
+                                     error);
+ 
+@@ -708,7 +706,6 @@ cleanup_job_do_cleanup (CleanupJob *job, GCancellable *cancellable)
+ 
+   tracker_sparql_connection_update (self->priv->connection,
+                                     update->str,
+-                                    G_PRIORITY_DEFAULT,
+                                     cancellable,
+                                     &error);
+   g_string_free (update, TRUE);
+
+diff --git a/src/gom-tracker.c b/src/gom-tracker.c
+index 469583e..716fc14 100644
+--- a/src/gom-tracker.c
++++ b/src/gom-tracker.c
+@@ -138,9 +138,7 @@ gom_tracker_sparql_connection_ensure_resource (TrackerSparqlConnection *connecti
+   /* not found, create the resource */
+   insert = g_strdup_printf ("INSERT INTO <%s> { _:res %s }",
+                             graph, inner->str);
+-  insert_res =
+-    tracker_sparql_connection_update_blank (connection, insert,
+-                                            G_PRIORITY_DEFAULT, NULL, error);
++  insert_res = tracker_sparql_connection_update_blank (connection, insert, NULL, error);
+   g_free (insert);
+ 
+   if (*error != NULL)
+@@ -205,9 +203,7 @@ gom_tracker_sparql_connection_insert_or_replace_triple (TrackerSparqlConnection
+ 
+   g_debug ("Insert or replace triple: query %s", insert->str);
+ 
+-  tracker_sparql_connection_update (connection, insert->str,
+-                                    G_PRIORITY_DEFAULT, cancellable,
+-                                    error);
++  tracker_sparql_connection_update (connection, insert->str, cancellable, error);
+ 
+   g_string_free (insert, TRUE);
+ 
+@@ -235,9 +231,7 @@ gom_tracker_sparql_connection_set_triple (TrackerSparqlConnection *connection,
+      "DELETE { <%s> %s ?val } WHERE { <%s> %s ?val }", resource,
+      property_name, resource, property_name);
+ 
+-  tracker_sparql_connection_update (connection, delete->str,
+-                                    G_PRIORITY_DEFAULT, cancellable,
+-                                    error);
++  tracker_sparql_connection_update (connection, delete->str, cancellable, error);
+ 
+   g_string_free (delete, TRUE);
+   if (*error != NULL)
+@@ -281,9 +275,7 @@ gom_tracker_sparql_connection_toggle_favorite (TrackerSparqlConnection *connecti
+ 
+   g_debug ("Toggle favorite: query %s", update->str);
+ 
+-  tracker_sparql_connection_update (connection, update->str,
+-                                    G_PRIORITY_DEFAULT, cancellable,
+-                                    error);
++  tracker_sparql_connection_update (connection, update->str, cancellable, error);
+ 
+   g_string_free (update, TRUE);
+ 
+@@ -351,9 +343,7 @@ gom_tracker_utils_ensure_contact_resource (TrackerSparqlConnection *connection,
+                           mail_uri, email,
+                           mail_uri, fullname);
+ 
+-  insert_res =
+-    tracker_sparql_connection_update_blank (connection, insert->str,
+-                                            G_PRIORITY_DEFAULT, cancellable, error);
++  insert_res = tracker_sparql_connection_update_blank (connection, insert->str, cancellable, error);
+ 
+   g_string_free (insert, TRUE);
+ 
+@@ -452,7 +442,7 @@ gom_tracker_utils_ensure_equipment_resource (TrackerSparqlConnection *connection
+                             model);
+ 
+   local_error = NULL;
+-  tracker_sparql_connection_update (connection, insert, G_PRIORITY_DEFAULT, cancellable, &local_error);
++  tracker_sparql_connection_update (connection, insert, cancellable, &local_error);
+   if (local_error != NULL)
+     {
+       g_propagate_error (error, local_error);
diff --git a/gnu/packages/patches/gnome-screenshot-meson-0.60.patch b/gnu/packages/patches/gnome-screenshot-meson-0.60.patch
new file mode 100644
index 0000000000..c80ce9d6a3
--- /dev/null
+++ b/gnu/packages/patches/gnome-screenshot-meson-0.60.patch
@@ -0,0 +1,39 @@
+Fixes build issue with Meson 0.60.0. Taken from upstream
+https://gitlab.gnome.org/GNOME/gnome-screenshot/-/merge_requests/57
+
+From b60dad3c2536c17bd201f74ad8e40eb74385ed9f Mon Sep 17 00:00:00 2001
+From: Jack Hill <jackhill@jackhill.us>
+Date: Thu, 18 Nov 2021 00:46:58 -0500
+Subject: [PATCH] meson: remove extraneous positional argument
+
+* data/meson.build (desktop_file)
+  (metainfo_file): Remove extraneous positional argument.
+
+Closes #186
+---
+ data/meson.build | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index fd570b3..4e2e2e8 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -1,7 +1,6 @@
+ gnome = import('gnome')
+ 
+ desktop_file = i18n.merge_file(
+-  'desktop',
+   type: 'desktop',
+   input: 'org.gnome.Screenshot.desktop.in',
+   output: 'org.gnome.Screenshot.desktop',
+@@ -23,7 +22,6 @@ if desktop_file_validate.found()
+ endif
+ 
+ metainfo_file = i18n.merge_file(
+-  'appdata',
+   input: 'org.gnome.Screenshot.metainfo.xml.in',
+   output: 'org.gnome.Screenshot.metainfo.xml',
+   po_dir: join_paths(meson.current_source_dir(), '../po'),
+-- 
+2.33.1
+
diff --git a/gnu/packages/patches/gnome-session-support-elogind.patch b/gnu/packages/patches/gnome-session-support-elogind.patch
new file mode 100644
index 0000000000..b52b4c6855
--- /dev/null
+++ b/gnu/packages/patches/gnome-session-support-elogind.patch
@@ -0,0 +1,73 @@
+This patch, borrowed from Gentoo, allows configuring gnome-sesssion with
+elogind support.
+
+https://gitweb.gentoo.org/repo/gentoo.git/plain/gnome-base/gnome-session/files/gnome-session-3.38.0-meson-Support-elogind.patch?id=5f7fe88af5f888aff58fa0c069c3fe07973c7cd2
+
+From 4454f2a63394b69fba2c900151165ad8b5742f31 Mon Sep 17 00:00:00 2001
+From: Mart Raudsepp <leio@gentoo.org>
+Date: Sun, 15 Mar 2020 14:34:39 +0200
+Subject: [PATCH] meson: Support elogind
+
+---
+ meson.build       | 12 +++++++++---
+ meson_options.txt |  1 +
+ 2 files changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index ef5132c6..7f68aaae 100644
+--- a/meson.build
++++ b/meson.build
+@@ -124,8 +124,10 @@ enable_systemd = get_option('systemd')
+ enable_systemd_session = get_option('systemd_session') != 'disable'
+ use_systemd_session = get_option('systemd_session') == 'default'
+ enable_systemd_journal = get_option('systemd_journal')
++enable_elogind = get_option('elogind')
+ enable_consolekit = get_option('consolekit')
+-if enable_systemd or enable_consolekit
++assert(not (enable_systemd and enable_elogind), 'Can not support systemd and elogind at once')
++if enable_systemd or enable_elogind or enable_consolekit
+   session_bin_deps += dependency('gio-unix-2.0', version: glib_req_version)
+ 
+   # Check for systemd
+@@ -152,6 +154,10 @@ if enable_systemd or enable_consolekit
+     endif
+ 
+     session_tracking = 'systemd'
++  elif enable_elogind
++    libelogind_dep = dependency('libelogind', version: '>= 239.4')
++    session_bin_deps += libelogind_dep
++    session_tracking = 'elogind'
+   endif
+ 
+   # Check for ConsoleKit
+@@ -161,7 +167,7 @@ if enable_systemd or enable_consolekit
+ 
+     session_bin_deps += dbus_glib_dep
+ 
+-    if enable_systemd
++    if enable_systemd or enable_elogind
+       session_tracking += ' (with fallback to ConsoleKit)'
+     else
+       session_tracking = 'ConsoleKit'
+@@ -171,7 +177,7 @@ endif
+ if enable_systemd_session
+   assert(enable_systemd, 'Systemd support must be enabled when using systemd session management')
+ endif
+-config_h.set('HAVE_SYSTEMD', enable_systemd)
++config_h.set('HAVE_SYSTEMD', enable_systemd or enable_elogind)
+ config_h.set('ENABLE_SYSTEMD_SESSION', enable_systemd_session)
+ config_h.set('ENABLE_SYSTEMD_JOURNAL', enable_systemd_journal)
+ config_h.set('HAVE_CONSOLEKIT', enable_consolekit)
+diff --git a/meson_options.txt b/meson_options.txt
+index 4c05dc6e..512d1528 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,4 +1,5 @@
+ option('deprecation_flags', type: 'boolean', value: false, description: 'use *_DISABLE_DEPRECATED flags')
++option('elogind', type: 'boolean', value: true, description: 'Use elogind')
+ option('session_selector', type: 'boolean', value: false, description: 'enable building a custom session selector dialog')
+ option('systemd', type: 'boolean', value: true, description: 'Use systemd')
+ option('systemd_session', type: 'combo', choices: ['disable', 'enable', 'default'], value: 'default', description: 'Whether to include systemd session support and use it by default')
+-- 
+2.26.2
+
diff --git a/gnu/packages/patches/gnome-shell-CVE-2020-17489.patch b/gnu/packages/patches/gnome-shell-CVE-2020-17489.patch
deleted file mode 100644
index 4b7748950e..0000000000
--- a/gnu/packages/patches/gnome-shell-CVE-2020-17489.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 05b7aec747282f62212b605249d518280ff80059 Mon Sep 17 00:00:00 2001
-From: Ray Strode <rstrode@redhat.com>
-Date: Mon, 27 Jul 2020 10:58:22 -0400
-Subject: [PATCH] loginDialog: Reset auth prompt on vt switch before fade in
-
-At the moment, if a user switches to the login screen vt,
-the login screen fades in whatever was on screen prior, and
-then does a reset.
-
-It makes more sense to reset first, so we fade in what the
-user is going to interact with instead of what they interacted
-with before.
-
-Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2997
----
- js/gdm/loginDialog.js | 9 ++++-----
- 1 file changed, 4 insertions(+), 5 deletions(-)
-
-diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
-index c3f90dc58..6b35ebb16 100644
---- a/js/gdm/loginDialog.js
-+++ b/js/gdm/loginDialog.js
-@@ -920,16 +920,15 @@ var LoginDialog = GObject.registerClass({
-         if (this.opacity == 255 && this._authPrompt.verificationStatus == AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
-             return;
- 
-+        if (this._authPrompt.verificationStatus !== AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
-+            this._authPrompt.reset();
-+
-         this._bindOpacity();
-         this.ease({
-             opacity: 255,
-             duration: _FADE_ANIMATION_TIME,
-             mode: Clutter.AnimationMode.EASE_OUT_QUAD,
--            onComplete: () => {
--                if (this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
--                    this._authPrompt.reset();
--                this._unbindOpacity();
--            }
-+            onComplete: () => this._unbindOpacity(),
-         });
-     }
- 
--- 
-2.30.1
-
diff --git a/gnu/packages/patches/gnome-shell-disable-test.patch b/gnu/packages/patches/gnome-shell-disable-test.patch
deleted file mode 100644
index b4c7e73cd7..0000000000
--- a/gnu/packages/patches/gnome-shell-disable-test.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-This test seems to require a D-Bus connection not available in the build
-environment.
-
-diff -ur /tmp/guix-build-gnome-shell-3.34.2.drv-0/gnome-shell-3.34.2/src/st/meson.build b/src/st/meson.build
---- /tmp/guix-build-gnome-shell-3.34.2.drv-0/gnome-shell-3.34.2/src/st/meson.build	1969-12-31 19:00:00.000000000 -0500
-+++ b/src/st/meson.build	2019-12-23 00:46:14.721198022 -0500
-@@ -132,18 +132,6 @@
-   sources: st_enums[1]
- )
- 
--test_theme = executable('test-theme',
--  sources: 'test-theme.c',
--  c_args: st_cflags,
--  dependencies: [mutter_dep, gtk_dep],
--  build_rpath: mutter_typelibdir,
--  link_with: libst
--)
--
--test('CSS styling support', test_theme,
--  workdir: meson.current_source_dir()
--)
--
- libst_gir = gnome.generate_gir(libst,
-   sources: st_gir_sources,
-   nsversion: '1.0',
diff --git a/gnu/packages/patches/gnome-shell-theme.patch b/gnu/packages/patches/gnome-shell-theme.patch
deleted file mode 100644
index 3fa0670c43..0000000000
--- a/gnu/packages/patches/gnome-shell-theme.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Adjust GNOME-Shell so that it uses a Guix theme by default.
-
-Patch by Ludovic Courtès <ludo@gnu.org>.
-
-diff -ur a/data/gnome-shell-theme.gresource.xml b/data/gnome-shell-theme.gresource.xml
---- a/data/gnome-shell-theme.gresource.xml	2019-12-11 15:06:31.000000000 -0500
-+++ b/data/gnome-shell-theme.gresource.xml	2019-12-21 00:31:55.895866241 -0500
-@@ -19,6 +19,8 @@
-     <file>no-events.svg</file>
-     <file>no-notifications.svg</file>
-     <file>noise-texture.png</file>
-+    <file>guix-background.png</file>
-+    <file>guix-logo.png</file>
-     <file>pad-osd.css</file>
-     <file alias="icons/pointer-double-click-symbolic.svg">pointer-double-click-symbolic.svg</file>
-     <file alias="icons/pointer-drag-symbolic.svg">pointer-drag-symbolic.svg</file>
-diff -ur a/data/theme/gnome-shell-sass/_common.scss b/data/theme/gnome-shell-sass/_common.scss
---- a/data/theme/gnome-shell-sass/_common.scss	2019-12-11 15:06:31.000000000 -0500
-+++ b/data/theme/gnome-shell-sass/_common.scss	2019-12-21 00:33:49.495832135 -0500
-@@ -1994,7 +1994,16 @@
-   }
- }
- 
--  .login-dialog-logo-bin { padding: 24px 0px; }
-+  .login-dialog-logo-bin {
-+      /* Make it a bit narrower than .login-dialog-user-list.  */
-+      width: 12em;
-+      height: 8em;
-+      background: url(resource:///org/gnome/shell/theme/guix-logo.png);
-+      background-color: transparent;
-+      background-repeat: no-repeat;
-+      background-size: contain;
-+      background-position: center; }
-+
-   .login-dialog-banner { color: darken($osd_fg_color,10%); }
-   .login-dialog-button-box { spacing: 5px; }
-   .login-dialog-message-warning { color: $warning_color; }
-@@ -2143,9 +2152,10 @@
- }
- 
- #lockDialogGroup {
--  background: lighten(#2e3436, 8%) url(resource:///org/gnome/shell/theme/noise-texture.png);
--  background-repeat: repeat;
--}
-+  background: lighten(#2e3436, 8%) url(resource:///org/gnome/shell/theme/guix-background.png);
-+  background-repeat: no-repeat;
-+  background-size: cover;
-+  background-position: center; }
- 
- #screenShieldNotifications {
-   StButton#vhandle, StButton#hhandle {
diff --git a/gnu/packages/patches/gnome-todo-delete-esource-duplicate.patch b/gnu/packages/patches/gnome-todo-delete-esource-duplicate.patch
deleted file mode 100644
index c680e86495..0000000000
--- a/gnu/packages/patches/gnome-todo-delete-esource-duplicate.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-From: Emmanuele Bassi <ebassi@gnome.org>
-
-See also: https://gitlab.gnome.org/GNOME/gnome-todo/commit/6cdabc4dd0c6c804a093b94c269461ce376fed4f
---- gnome-todo-3.28.1/plugins/eds/gtd-eds-autoptr.h.orig	2020-05-06 14:20:49.589902539 +0200
-+++ gnome-todo-3.28.1/plugins/eds/gtd-eds-autoptr.h	2020-05-06 14:20:54.593919721 +0200
-@@ -25,4 +25,3 @@
- G_DEFINE_AUTOPTR_CLEANUP_FUNC (ECalComponent, g_object_unref);
- G_DEFINE_AUTOPTR_CLEANUP_FUNC (ECalComponentId, e_cal_component_free_id);
- G_DEFINE_AUTOPTR_CLEANUP_FUNC (ECalClient, g_object_unref);
--G_DEFINE_AUTOPTR_CLEANUP_FUNC (ESource, g_object_unref);
diff --git a/gnu/packages/patches/go-github-com-golang-snappy-32bit-test.patch b/gnu/packages/patches/go-github-com-golang-snappy-32bit-test.patch
new file mode 100644
index 0000000000..95b5819cdb
--- /dev/null
+++ b/gnu/packages/patches/go-github-com-golang-snappy-32bit-test.patch
@@ -0,0 +1,53 @@
+https://salsa.debian.org/go-team/packages/golang-github-golang-snappy/-/raw/debian/0.0.2-2/debian/patches/0002-Skip-failed-test-on-32bit-system.patch
+
+From: Shengjing Zhu <zhsj@debian.org>
+Date: Sun, 31 Jan 2021 22:41:42 +0800
+Subject: Skip failed test on 32bit system
+
+The test doesn't pass on old version too, not a regression.
+
+Bug: https://github.com/golang/snappy/issues/58
+---
+ snappy_test.go | 20 +++++++++++++++-----
+ 1 file changed, 15 insertions(+), 5 deletions(-)
+
+diff --git a/snappy_test.go b/snappy_test.go
+index d7c3ea6..c310ba1 100644
+--- a/snappy_test.go
++++ b/snappy_test.go
+@@ -19,6 +19,7 @@ import (
+ 	"runtime"
+ 	"strings"
+ 	"testing"
++	"unsafe"
+ )
+ 
+ var (
+@@ -316,13 +317,22 @@ func TestDecode(t *testing.T) {
+ 		"\x06" + "\x0cabcd" + "\x07\x03\x00\x00\x00",
+ 		"abcdbc",
+ 		nil,
+-	}, {
+-		`decodedLen=0; tagCopy4, 4 extra length|offset bytes; with msb set (0x93); discovered by go-fuzz`,
+-		"\x00\xfc000\x93",
+-		"",
+-		ErrCorrupt,
+ 	}}
+ 
++	if unsafe.Sizeof(int(0)) == 8 {
++		testCases = append(testCases, struct {
++			desc    string
++			input   string
++			want    string
++			wantErr error
++		}{
++			`decodedLen=0; tagCopy4, 4 extra length|offset bytes; with msb set (0x93); discovered by go-fuzz`,
++			"\x00\xfc000\x93",
++			"",
++			ErrCorrupt,
++		})
++	}
++
+ 	const (
+ 		// notPresentXxx defines a range of byte values [0xa0, 0xc5) that are
+ 		// not present in either the input or the output. It is written to dBuf
diff --git a/gnu/packages/patches/grfcodec-gcc-compat.patch b/gnu/packages/patches/grfcodec-gcc-compat.patch
new file mode 100644
index 0000000000..02685d46fd
--- /dev/null
+++ b/gnu/packages/patches/grfcodec-gcc-compat.patch
@@ -0,0 +1,31 @@
+Fix type comparison issue that is a hard error in GCC 10.
+
+Taken from upstream:
+
+  https://github.com/OpenTTD/grfcodec/commit/bb692b2c723c5e87cc8f89f445928e97594d5b8f
+
+diff --git a/src/command.cpp b/src/command.cpp
+index 9aa0e14..1f32cf1 100644
+--- a/src/command.cpp
++++ b/src/command.cpp
+@@ -300,8 +300,9 @@ bool parse_comment(const string&line){
+ 		break;
+ 	case BEAUTIFY:{
+ 		commandstream>>command_part;
+-		uint val=find_command(command_part,beaut),togglebit;
+-		if(val!=(uint)-1&&val!=OFF)_commandState.beautifier=true;
++		int val=find_command(command_part,beaut);
++		uint togglebit;
++		if(val!=-1&&val!=OFF)_commandState.beautifier=true;
+ 		switch(val){
+ 		case -1:
+ 			IssueMessage(0,COMMAND_INVALID_ARG,gen[BEAUTIFY].name);
+@@ -372,7 +373,7 @@ bool parse_comment(const string&line){
+ dotoggle:
+ 			commandstream>>command_part;
+ 			val=find_command(command_part,beaut);
+-			if(!commandstream||val==(uint)-1){
++			if(!commandstream||val==-1){
+ 				IssueMessage(0,COMMAND_INVALID_ARG,gen[BEAUTIFY].name);
+ 				return true;
+ 			}
diff --git a/gnu/packages/patches/gst-libav-64channels-stack-corruption.patch b/gnu/packages/patches/gst-libav-64channels-stack-corruption.patch
deleted file mode 100644
index cc174e618d..0000000000
--- a/gnu/packages/patches/gst-libav-64channels-stack-corruption.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Fix a stack corruption when handling files with more than 64 audio
-channels:
-
-https://gstreamer.freedesktop.org/security/sa-2021-0005.html
-
-Patch copied from upstream source repository:
-
-https://gitlab.freedesktop.org/gstreamer/gst-libav/-/commit/dcea8baa14a5fc3b796d876baaf2f238546ba2b1
-
-diff --git a/ext/libav/gstavcodecmap.c b/ext/libav/gstavcodecmap.c
-index b5be4bb7a5f2712f78383da9319754a8849e3307..be22f22cf5c7c7b22b13e44b10999adaacbcca2b 100644
---- a/ext/libav/gstavcodecmap.c
-+++ b/ext/libav/gstavcodecmap.c
-@@ -102,7 +102,7 @@ gst_ffmpeg_channel_layout_to_gst (guint64 channel_layout, gint channels,
-   guint nchannels = 0;
-   gboolean none_layout = FALSE;
- 
--  if (channel_layout == 0) {
-+  if (channel_layout == 0 || channels > 64) {
-     nchannels = channels;
-     none_layout = TRUE;
-   } else {
-@@ -163,7 +163,7 @@ gst_ffmpeg_channel_layout_to_gst (guint64 channel_layout, gint channels,
-     } else {
-       guint i;
- 
--      for (i = 0; i < nchannels; i++)
-+      for (i = 0; i < nchannels && i < 64; i++)
-         pos[i] = GST_AUDIO_CHANNEL_POSITION_NONE;
-     }
-   }
diff --git a/gnu/packages/patches/gst-plugins-bad-fix-overflow.patch b/gnu/packages/patches/gst-plugins-bad-fix-overflow.patch
deleted file mode 100644
index 95ab13db51..0000000000
--- a/gnu/packages/patches/gst-plugins-bad-fix-overflow.patch
+++ /dev/null
@@ -1,263 +0,0 @@
-Fix an overflow when calculating something for AVC/HEVC videos:
-
-https://security-tracker.debian.org/tracker/TEMP-0000000-C6AAE1
-
-Patch copied from upstream source repository:
-
-https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/commit/0cfbf7ad91c7f121192c8ce135769f8eb276c41d
-From 0cfbf7ad91c7f121192c8ce135769f8eb276c41d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
-Date: Tue, 23 Mar 2021 19:19:14 +0200
-Subject: [PATCH] h2645parser: Catch overflows in AVC/HEVC NAL unit length
- calculations
-
-Offset and size are stored as 32 bit guint and might overflow when
-adding the nal_length_size, so let's avoid that.
-
-For the size this would happen if the AVC/HEVC NAL unit size happens to
-be stored in 4 bytes and is 4294967292 or higher, which is likely
-corrupted data anyway.
-
-For the offset this is something for the caller of these functions to
-take care of but is unlikely to happen as it would require parsing on a
->4GB buffer.
-
-Allowing these overflows causes all kinds of follow-up bugs in the
-h2645parse elements, ranging from infinite loops and memory leaks to
-potential memory corruptions.
-
-Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2107>
----
- gst-libs/gst/codecparsers/gsth264parser.c | 16 +++++-
- gst-libs/gst/codecparsers/gsth265parser.c | 16 +++++-
- tests/check/libs/h264parser.c             | 60 +++++++++++++++++++++++
- tests/check/libs/h265parser.c             | 60 +++++++++++++++++++++++
- 4 files changed, 150 insertions(+), 2 deletions(-)
-
-diff --git a/gst-libs/gst/codecparsers/gsth264parser.c b/gst-libs/gst/codecparsers/gsth264parser.c
-index 012f1d0d7..68aa25068 100644
---- a/gst-libs/gst/codecparsers/gsth264parser.c
-+++ b/gst-libs/gst/codecparsers/gsth264parser.c
-@@ -1556,6 +1556,14 @@ gst_h264_parser_identify_nalu_avc (GstH264NalParser * nalparser,
- 
-   memset (nalu, 0, sizeof (*nalu));
- 
-+  /* Would overflow guint below otherwise: the callers needs to ensure that
-+   * this never happens */
-+  if (offset > G_MAXUINT32 - nal_length_size) {
-+    GST_WARNING ("offset + nal_length_size overflow");
-+    nalu->size = 0;
-+    return GST_H264_PARSER_BROKEN_DATA;
-+  }
-+
-   if (size < offset + nal_length_size) {
-     GST_DEBUG ("Can't parse, buffer has too small size %" G_GSIZE_FORMAT
-         ", offset %u", size, offset);
-@@ -1570,7 +1578,13 @@ gst_h264_parser_identify_nalu_avc (GstH264NalParser * nalparser,
-   nalu->sc_offset = offset;
-   nalu->offset = offset + nal_length_size;
- 
--  if (size < nalu->size + nal_length_size) {
-+  if (nalu->size > G_MAXUINT32 - nal_length_size) {
-+    GST_WARNING ("NALU size + nal_length_size overflow");
-+    nalu->size = 0;
-+    return GST_H264_PARSER_BROKEN_DATA;
-+  }
-+
-+  if (size < (gsize) nalu->size + nal_length_size) {
-     nalu->size = 0;
- 
-     return GST_H264_PARSER_NO_NAL_END;
-diff --git a/gst-libs/gst/codecparsers/gsth265parser.c b/gst-libs/gst/codecparsers/gsth265parser.c
-index 26e68b276..dc7f27aa9 100644
---- a/gst-libs/gst/codecparsers/gsth265parser.c
-+++ b/gst-libs/gst/codecparsers/gsth265parser.c
-@@ -1531,6 +1531,14 @@ gst_h265_parser_identify_nalu_hevc (GstH265Parser * parser,
- 
-   memset (nalu, 0, sizeof (*nalu));
- 
-+  /* Would overflow guint below otherwise: the callers needs to ensure that
-+   * this never happens */
-+  if (offset > G_MAXUINT32 - nal_length_size) {
-+    GST_WARNING ("offset + nal_length_size overflow");
-+    nalu->size = 0;
-+    return GST_H265_PARSER_BROKEN_DATA;
-+  }
-+
-   if (size < offset + nal_length_size) {
-     GST_DEBUG ("Can't parse, buffer has too small size %" G_GSIZE_FORMAT
-         ", offset %u", size, offset);
-@@ -1545,7 +1553,13 @@ gst_h265_parser_identify_nalu_hevc (GstH265Parser * parser,
-   nalu->sc_offset = offset;
-   nalu->offset = offset + nal_length_size;
- 
--  if (size < nalu->size + nal_length_size) {
-+  if (nalu->size > G_MAXUINT32 - nal_length_size) {
-+    GST_WARNING ("NALU size + nal_length_size overflow");
-+    nalu->size = 0;
-+    return GST_H265_PARSER_BROKEN_DATA;
-+  }
-+
-+  if (size < (gsize) nalu->size + nal_length_size) {
-     nalu->size = 0;
- 
-     return GST_H265_PARSER_NO_NAL_END;
-diff --git a/tests/check/libs/h264parser.c b/tests/check/libs/h264parser.c
-index c7c46d9a2..d322dd8db 100644
---- a/tests/check/libs/h264parser.c
-+++ b/tests/check/libs/h264parser.c
-@@ -229,6 +229,65 @@ GST_START_TEST (test_h264_parse_slice_5bytes)
- 
- GST_END_TEST;
- 
-+GST_START_TEST (test_h264_parse_identify_nalu_avc)
-+{
-+  GstH264ParserResult res;
-+  GstH264NalUnit nalu;
-+  GstH264NalParser *const parser = gst_h264_nal_parser_new ();
-+  /* Skip 3 bytes for the start code */
-+  const gsize nal_size = sizeof (slice_dpa) - 3;
-+  const gsize buf_size = 4 + nal_size;
-+  guint8 *buf = g_new (guint8, buf_size);
-+
-+  memcpy (buf + 4, slice_dpa + 3, nal_size);
-+
-+  GST_WRITE_UINT16_BE (buf + 2, nal_size);
-+  res = gst_h264_parser_identify_nalu_avc (parser, buf, 2, buf_size, 2, &nalu);
-+
-+  assert_equals_int (res, GST_H264_PARSER_OK);
-+  assert_equals_int (nalu.type, GST_H264_NAL_SLICE_DPA);
-+  assert_equals_int (nalu.offset, 4);
-+  assert_equals_int (nalu.size, nal_size);
-+
-+  GST_WRITE_UINT32_BE (buf, nal_size);
-+  res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu);
-+
-+  assert_equals_int (res, GST_H264_PARSER_OK);
-+  assert_equals_int (nalu.type, GST_H264_NAL_SLICE_DPA);
-+  assert_equals_int (nalu.offset, 4);
-+  assert_equals_int (nalu.size, nal_size);
-+
-+  GST_WRITE_UINT32_BE (buf, G_MAXUINT32);
-+  res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu);
-+
-+  assert_equals_int (res, GST_H264_PARSER_BROKEN_DATA);
-+
-+  GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 2);
-+  res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu);
-+
-+  assert_equals_int (res, GST_H264_PARSER_BROKEN_DATA);
-+
-+  GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 3);
-+  res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu);
-+
-+  assert_equals_int (res, GST_H264_PARSER_BROKEN_DATA);
-+
-+  GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 4);
-+  res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu);
-+
-+  assert_equals_int (res, GST_H264_PARSER_NO_NAL_END);
-+
-+  GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 6);
-+  res = gst_h264_parser_identify_nalu_avc (parser, buf, 0, buf_size, 4, &nalu);
-+
-+  assert_equals_int (res, GST_H264_PARSER_NO_NAL_END);
-+
-+  g_free (buf);
-+  gst_h264_nal_parser_free (parser);
-+}
-+
-+GST_END_TEST;
-+
- static guint8 nalu_sps_with_vui[] = {
-   0x00, 0x00, 0x00, 0x01, 0x67, 0x64, 0x00, 0x28,
-   0xac, 0xd9, 0x40, 0x78, 0x04, 0x4f, 0xde, 0x03,
-@@ -666,6 +725,7 @@ h264parser_suite (void)
-   tcase_add_test (tc_chain, test_h264_parse_slice_dpa);
-   tcase_add_test (tc_chain, test_h264_parse_slice_eoseq_slice);
-   tcase_add_test (tc_chain, test_h264_parse_slice_5bytes);
-+  tcase_add_test (tc_chain, test_h264_parse_identify_nalu_avc);
-   tcase_add_test (tc_chain, test_h264_parse_invalid_sei);
-   tcase_add_test (tc_chain, test_h264_create_sei);
- 
-diff --git a/tests/check/libs/h265parser.c b/tests/check/libs/h265parser.c
-index 0a0e4db97..5b6a215ec 100644
---- a/tests/check/libs/h265parser.c
-+++ b/tests/check/libs/h265parser.c
-@@ -255,6 +255,65 @@ GST_START_TEST (test_h265_parse_slice_6bytes)
- 
- GST_END_TEST;
- 
-+GST_START_TEST (test_h265_parse_identify_nalu_hevc)
-+{
-+  GstH265ParserResult res;
-+  GstH265NalUnit nalu;
-+  GstH265Parser *parser = gst_h265_parser_new ();
-+  /* Skip 4 bytes for the start code */
-+  const gsize nal_size = sizeof (slice_eos_slice_eob) - 4;
-+  const gsize buf_size = 4 + nal_size;
-+  guint8 *buf = g_new (guint8, buf_size);
-+
-+  memcpy (buf + 4, slice_eos_slice_eob + 4, nal_size);
-+
-+  GST_WRITE_UINT16_BE (buf + 2, nal_size);
-+  res = gst_h265_parser_identify_nalu_hevc (parser, buf, 2, buf_size, 2, &nalu);
-+
-+  assert_equals_int (res, GST_H265_PARSER_OK);
-+  assert_equals_int (nalu.type, GST_H265_NAL_SLICE_IDR_W_RADL);
-+  assert_equals_int (nalu.offset, 4);
-+  assert_equals_int (nalu.size, nal_size);
-+
-+  GST_WRITE_UINT32_BE (buf, nal_size);
-+  res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu);
-+
-+  assert_equals_int (res, GST_H265_PARSER_OK);
-+  assert_equals_int (nalu.type, GST_H265_NAL_SLICE_IDR_W_RADL);
-+  assert_equals_int (nalu.offset, 4);
-+  assert_equals_int (nalu.size, nal_size);
-+
-+  GST_WRITE_UINT32_BE (buf, G_MAXUINT32);
-+  res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu);
-+
-+  assert_equals_int (res, GST_H265_PARSER_BROKEN_DATA);
-+
-+  GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 2);
-+  res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu);
-+
-+  assert_equals_int (res, GST_H265_PARSER_BROKEN_DATA);
-+
-+  GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 3);
-+  res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu);
-+
-+  assert_equals_int (res, GST_H265_PARSER_BROKEN_DATA);
-+
-+  GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 4);
-+  res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu);
-+
-+  assert_equals_int (res, GST_H265_PARSER_NO_NAL_END);
-+
-+  GST_WRITE_UINT32_BE (buf, G_MAXUINT32 - 6);
-+  res = gst_h265_parser_identify_nalu_hevc (parser, buf, 0, buf_size, 4, &nalu);
-+
-+  assert_equals_int (res, GST_H265_PARSER_NO_NAL_END);
-+
-+  g_free (buf);
-+  gst_h265_parser_free (parser);
-+}
-+
-+GST_END_TEST;
-+
- GST_START_TEST (test_h265_base_profiles)
- {
-   GstH265ProfileTierLevel ptl;
-@@ -1101,6 +1160,7 @@ h265parser_suite (void)
-   tcase_add_test (tc_chain, test_h265_parse_slice_eos_slice_eob);
-   tcase_add_test (tc_chain, test_h265_parse_pic_timing);
-   tcase_add_test (tc_chain, test_h265_parse_slice_6bytes);
-+  tcase_add_test (tc_chain, test_h265_parse_identify_nalu_hevc);
-   tcase_add_test (tc_chain, test_h265_base_profiles);
-   tcase_add_test (tc_chain, test_h265_base_profiles_compat);
-   tcase_add_test (tc_chain, test_h265_format_range_profiles_exact_match);
--- 
-2.31.1
-
diff --git a/gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch b/gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch
deleted file mode 100644
index b2dfef0118..0000000000
--- a/gnu/packages/patches/gst-plugins-base-fix-id3v2-invalid-read.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Fix an "invalid read during ID3v2 tag parsing".
-
-https://security-tracker.debian.org/tracker/TEMP-0000000-57E7C1
-https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/876
-
-Patch copied from upstream source repository:
-
-https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/commit/f4a1428a6997658625d529b9db60fde812fbf1ee
-
-From f4a1428a6997658625d529b9db60fde812fbf1ee Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
-Date: Wed, 3 Mar 2021 01:08:25 +0000
-Subject: [PATCH] tag: id3v2: fix frame size check and potential invalid reads
-
-Check the right variable when checking if there's
-enough data left to read the frame size.
-
-Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/876
-
-Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1065>
----
- gst-libs/gst/tag/id3v2frames.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gst-libs/gst/tag/id3v2frames.c b/gst-libs/gst/tag/id3v2frames.c
-index 8e9f78254..f39659bf7 100644
---- a/gst-libs/gst/tag/id3v2frames.c
-+++ b/gst-libs/gst/tag/id3v2frames.c
-@@ -109,7 +109,7 @@ id3v2_parse_frame (ID3TagsWorking * work)
- 
-   if (work->frame_flags & (ID3V2_FRAME_FORMAT_COMPRESSION |
-           ID3V2_FRAME_FORMAT_DATA_LENGTH_INDICATOR)) {
--    if (work->hdr.frame_data_size <= 4)
-+    if (frame_data_size <= 4)
-       return FALSE;
-     if (ID3V2_VER_MAJOR (work->hdr.version) == 3) {
-       work->parse_size = GST_READ_UINT32_BE (frame_data);
--- 
-2.31.1
-
diff --git a/gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch b/gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch
deleted file mode 100644
index c8c3ee6cf1..0000000000
--- a/gnu/packages/patches/gst-plugins-good-CVE-2021-3497.patch
+++ /dev/null
@@ -1,174 +0,0 @@
-Fix CVE-2021-3497:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3497
-https://gstreamer.freedesktop.org/security/sa-2021-0002.html
-
-Patch copied from upstream source repository:
-
-https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/9181191511f9c0be6a89c98b311f49d66bd46dc3?merge_request_iid=903
-
-diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
-index 467815986c8c3d86fd8906a0d539b34f67d6693e..0e47ee7b5e25ac3331f30439710ae755235f2a22 100644
---- a/gst/matroska/matroska-demux.c
-+++ b/gst/matroska/matroska-demux.c
-@@ -3851,6 +3851,12 @@ gst_matroska_demux_add_wvpk_header (GstElement * element,
-     guint32 block_samples, tmp;
-     gsize size = gst_buffer_get_size (*buf);
- 
-+    if (size < 4) {
-+      GST_ERROR_OBJECT (element, "Too small wavpack buffer");
-+      gst_buffer_unmap (*buf, &map);
-+      return GST_FLOW_ERROR;
-+    }
-+
-     gst_buffer_extract (*buf, 0, &tmp, sizeof (guint32));
-     block_samples = GUINT32_FROM_LE (tmp);
-     /* we need to reconstruct the header of the wavpack block */
-@@ -3858,10 +3864,10 @@ gst_matroska_demux_add_wvpk_header (GstElement * element,
-     /* -20 because ck_size is the size of the wavpack block -8
-      * and lace_size is the size of the wavpack block + 12
-      * (the three guint32 of the header that already are in the buffer) */
--    wvh.ck_size = size + sizeof (Wavpack4Header) - 20;
-+    wvh.ck_size = size + WAVPACK4_HEADER_SIZE - 20;
- 
-     /* block_samples, flags and crc are already in the buffer */
--    newbuf = gst_buffer_new_allocate (NULL, sizeof (Wavpack4Header) - 12, NULL);
-+    newbuf = gst_buffer_new_allocate (NULL, WAVPACK4_HEADER_SIZE - 12, NULL);
- 
-     gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE);
-     data = outmap.data;
-@@ -3886,9 +3892,11 @@ gst_matroska_demux_add_wvpk_header (GstElement * element,
-     audiocontext->wvpk_block_index += block_samples;
-   } else {
-     guint8 *outdata = NULL;
--    guint outpos = 0;
--    gsize buf_size, size, out_size = 0;
-+    gsize buf_size, size;
-     guint32 block_samples, flags, crc, blocksize;
-+    GstAdapter *adapter;
-+
-+    adapter = gst_adapter_new ();
- 
-     gst_buffer_map (*buf, &map, GST_MAP_READ);
-     buf_data = map.data;
-@@ -3897,6 +3905,7 @@ gst_matroska_demux_add_wvpk_header (GstElement * element,
-     if (buf_size < 4) {
-       GST_ERROR_OBJECT (element, "Too small wavpack buffer");
-       gst_buffer_unmap (*buf, &map);
-+      g_object_unref (adapter);
-       return GST_FLOW_ERROR;
-     }
- 
-@@ -3918,59 +3927,57 @@ gst_matroska_demux_add_wvpk_header (GstElement * element,
-       data += 4;
-       size -= 4;
- 
--      if (blocksize == 0 || size < blocksize)
--        break;
--
--      g_assert ((newbuf == NULL) == (outdata == NULL));
-+      if (blocksize == 0 || size < blocksize) {
-+        GST_ERROR_OBJECT (element, "Too small wavpack buffer");
-+        gst_buffer_unmap (*buf, &map);
-+        g_object_unref (adapter);
-+        return GST_FLOW_ERROR;
-+      }
- 
--      if (newbuf == NULL) {
--        out_size = sizeof (Wavpack4Header) + blocksize;
--        newbuf = gst_buffer_new_allocate (NULL, out_size, NULL);
-+      g_assert (newbuf == NULL);
- 
--        gst_buffer_copy_into (newbuf, *buf,
--            GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS, 0, -1);
-+      newbuf =
-+          gst_buffer_new_allocate (NULL, WAVPACK4_HEADER_SIZE + blocksize,
-+          NULL);
-+      gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE);
-+      outdata = outmap.data;
-+
-+      outdata[0] = 'w';
-+      outdata[1] = 'v';
-+      outdata[2] = 'p';
-+      outdata[3] = 'k';
-+      outdata += 4;
-+
-+      GST_WRITE_UINT32_LE (outdata, blocksize + WAVPACK4_HEADER_SIZE - 8);
-+      GST_WRITE_UINT16_LE (outdata + 4, wvh.version);
-+      GST_WRITE_UINT8 (outdata + 6, wvh.track_no);
-+      GST_WRITE_UINT8 (outdata + 7, wvh.index_no);
-+      GST_WRITE_UINT32_LE (outdata + 8, wvh.total_samples);
-+      GST_WRITE_UINT32_LE (outdata + 12, wvh.block_index);
-+      GST_WRITE_UINT32_LE (outdata + 16, block_samples);
-+      GST_WRITE_UINT32_LE (outdata + 20, flags);
-+      GST_WRITE_UINT32_LE (outdata + 24, crc);
-+      outdata += 28;
-+
-+      memcpy (outdata, data, blocksize);
- 
--        outpos = 0;
--        gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE);
--        outdata = outmap.data;
--      } else {
--        gst_buffer_unmap (newbuf, &outmap);
--        out_size += sizeof (Wavpack4Header) + blocksize;
--        gst_buffer_set_size (newbuf, out_size);
--        gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE);
--        outdata = outmap.data;
--      }
-+      gst_buffer_unmap (newbuf, &outmap);
-+      gst_adapter_push (adapter, newbuf);
-+      newbuf = NULL;
- 
--      outdata[outpos] = 'w';
--      outdata[outpos + 1] = 'v';
--      outdata[outpos + 2] = 'p';
--      outdata[outpos + 3] = 'k';
--      outpos += 4;
--
--      GST_WRITE_UINT32_LE (outdata + outpos,
--          blocksize + sizeof (Wavpack4Header) - 8);
--      GST_WRITE_UINT16_LE (outdata + outpos + 4, wvh.version);
--      GST_WRITE_UINT8 (outdata + outpos + 6, wvh.track_no);
--      GST_WRITE_UINT8 (outdata + outpos + 7, wvh.index_no);
--      GST_WRITE_UINT32_LE (outdata + outpos + 8, wvh.total_samples);
--      GST_WRITE_UINT32_LE (outdata + outpos + 12, wvh.block_index);
--      GST_WRITE_UINT32_LE (outdata + outpos + 16, block_samples);
--      GST_WRITE_UINT32_LE (outdata + outpos + 20, flags);
--      GST_WRITE_UINT32_LE (outdata + outpos + 24, crc);
--      outpos += 28;
--
--      memmove (outdata + outpos, data, blocksize);
--      outpos += blocksize;
-       data += blocksize;
-       size -= blocksize;
-     }
-     gst_buffer_unmap (*buf, &map);
--    gst_buffer_unref (*buf);
- 
--    if (newbuf)
--      gst_buffer_unmap (newbuf, &outmap);
-+    newbuf = gst_adapter_take_buffer (adapter, gst_adapter_available (adapter));
-+    g_object_unref (adapter);
- 
-+    gst_buffer_copy_into (newbuf, *buf,
-+        GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS, 0, -1);
-+    gst_buffer_unref (*buf);
-     *buf = newbuf;
-+
-     audiocontext->wvpk_block_index += block_samples;
-   }
- 
-diff --git a/gst/matroska/matroska-ids.h b/gst/matroska/matroska-ids.h
-index 429213f778063ba0063944ab64ad60373bbce5ee..8d4a685a910ec13100a3c3d156b2412d28ec0522 100644
---- a/gst/matroska/matroska-ids.h
-+++ b/gst/matroska/matroska-ids.h
-@@ -688,6 +688,8 @@ typedef struct _Wavpack4Header {
-   guint32 crc;           /* crc for actual decoded data                    */
- } Wavpack4Header;
- 
-+#define WAVPACK4_HEADER_SIZE (32)
-+
- typedef enum {
-   GST_MATROSKA_TRACK_ENCODING_SCOPE_FRAME = (1<<0),
-   GST_MATROSKA_TRACK_ENCODING_SCOPE_CODEC_DATA = (1<<1),
diff --git a/gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch b/gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch
deleted file mode 100644
index 50eb42f126..0000000000
--- a/gnu/packages/patches/gst-plugins-good-CVE-2021-3498.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Fix CVE-2021-3498:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3498
-https://gstreamer.freedesktop.org/security/sa-2021-0003.html
-
-Patch copied from upstream source repository:
-
-https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/02174790726dd20a5c73ce2002189bf240ad4fe0?merge_request_iid=903
-
-diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
-index 4d0234743b8cf243b4521e56ef9027ba23b1b5d0..467815986c8c3d86fd8906a0d539b34f67d6693e 100644
---- a/gst/matroska/matroska-demux.c
-+++ b/gst/matroska/matroska-demux.c
-@@ -692,6 +692,8 @@ gst_matroska_demux_parse_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml,
- 
-   DEBUG_ELEMENT_START (demux, ebml, "TrackEntry");
- 
-+  *dest_context = NULL;
-+
-   /* start with the master */
-   if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) {
-     DEBUG_ELEMENT_STOP (demux, ebml, "TrackEntry", ret);
diff --git a/gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch b/gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch
deleted file mode 100644
index 3c6a96f45d..0000000000
--- a/gnu/packages/patches/gst-plugins-ugly-fix-out-of-bound-reads.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-Fix out of bounds reads when parsing audio and video packets:
-
-https://security-tracker.debian.org/tracker/TEMP-0000000-4DAA44
-https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues/37
-
-Patch copied from upstream source repository:
-
-https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/commit/3aba7d1e625554b2407bc77b3d09b4928b937d5f
-From 3aba7d1e625554b2407bc77b3d09b4928b937d5f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
-Date: Wed, 3 Mar 2021 11:05:14 +0200
-Subject: [PATCH] rmdemux: Make sure we have enough data available when parsing
- audio/video packets
-
-Otherwise there will be out-of-bounds reads and potential crashes.
-
-Thanks to Natalie Silvanovich for reporting.
-
-Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues/37
-
-Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/merge_requests/74>
----
- gst/realmedia/rmdemux.c | 35 +++++++++++++++++++++++++++++++++++
- 1 file changed, 35 insertions(+)
-
-diff --git a/gst/realmedia/rmdemux.c b/gst/realmedia/rmdemux.c
-index 6cc659a1..68b0736b 100644
---- a/gst/realmedia/rmdemux.c
-+++ b/gst/realmedia/rmdemux.c
-@@ -2223,6 +2223,9 @@ gst_rmdemux_parse_video_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream,
- 
-   gst_buffer_map (in, &map, GST_MAP_READ);
- 
-+  if (map.size < offset)
-+    goto not_enough_data;
-+
-   data = map.data + offset;
-   size = map.size - offset;
- 
-@@ -2289,6 +2292,9 @@ gst_rmdemux_parse_video_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream,
-     }
-     GST_DEBUG_OBJECT (rmdemux, "fragment size %d", fragment_size);
- 
-+    if (map.size < (data - map.data) + fragment_size)
-+      goto not_enough_data;
-+
-     /* get the fragment */
-     fragment =
-         gst_buffer_copy_region (in, GST_BUFFER_COPY_ALL, data - map.data,
-@@ -2437,6 +2443,9 @@ gst_rmdemux_parse_audio_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream,
-   GstFlowReturn ret;
-   GstBuffer *buffer;
- 
-+  if (gst_buffer_get_size (in) < offset)
-+    goto not_enough_data;
-+
-   buffer = gst_buffer_copy_region (in, GST_BUFFER_COPY_MEMORY, offset, -1);
- 
-   if (rmdemux->first_ts != -1 && timestamp > rmdemux->first_ts)
-@@ -2467,9 +2476,19 @@ gst_rmdemux_parse_audio_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream,
-     ret = gst_pad_push (stream->pad, buffer);
-   }
- 
-+done:
-   gst_buffer_unref (in);
- 
-   return ret;
-+
-+  /* ERRORS */
-+not_enough_data:
-+  {
-+    GST_ELEMENT_WARNING (rmdemux, STREAM, DECODE, ("Skipping bad packet."),
-+        (NULL));
-+    ret = GST_FLOW_OK;
-+    goto done;
-+  }
- }
- 
- static GstFlowReturn
-@@ -2490,6 +2509,9 @@ gst_rmdemux_parse_packet (GstRMDemux * rmdemux, GstBuffer * in, guint16 version)
-   data = map.data;
-   size = map.size;
- 
-+  if (size < 4 + 6 + 1 + 2)
-+    goto not_enough_data;
-+
-   /* stream number */
-   id = RMDEMUX_GUINT16_GET (data);
- 
-@@ -2525,6 +2547,9 @@ gst_rmdemux_parse_packet (GstRMDemux * rmdemux, GstBuffer * in, guint16 version)
- 
-   /* version 1 has an extra byte */
-   if (version == 1) {
-+    if (size < 1)
-+      goto not_enough_data;
-+
-     data += 1;
-     size -= 1;
-   }
-@@ -2596,6 +2621,16 @@ unknown_stream:
-     gst_buffer_unref (in);
-     return GST_FLOW_OK;
-   }
-+
-+  /* ERRORS */
-+not_enough_data:
-+  {
-+    GST_ELEMENT_WARNING (rmdemux, STREAM, DECODE, ("Skipping bad packet."),
-+        (NULL));
-+    gst_buffer_unmap (in, &map);
-+    gst_buffer_unref (in);
-+    return GST_FLOW_OK;
-+  }
- }
- 
- gboolean
--- 
-2.31.1
-
diff --git a/gnu/packages/patches/gtk2-fix-builder-test.patch b/gnu/packages/patches/gtk2-fix-builder-test.patch
new file mode 100644
index 0000000000..8c41e596fe
--- /dev/null
+++ b/gnu/packages/patches/gtk2-fix-builder-test.patch
@@ -0,0 +1,94 @@
+From e45e11238036e06c8fe78bea1691b256ca41837b Mon Sep 17 00:00:00 2001
+From: Steve Langasek <steve.langasek@ubuntu.com>
+Date: Tue, 7 Jan 2014 13:55:28 +0100
+Subject: [PATCH] fix prototypes of signal callbacks in the test suite
+
+The signal callbacks are defined to take pointers as their arguments, but the
+callbacks found in testsuite/gtk/builder.c are passing a GParamSpec by value
+as the second argument.  This confuses and angers the compiler on ppc64el,
+resulting in segfaults after return from the function due to stack-smashing
+by the (completely-unused) argument.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=721700
+---
+
+This is a backport to v2.24.33 of upstream commit:
+
+https://gitlab.gnome.org/GNOME/gtk/-/commit/256561db2f0b34e01047f8882b3e0cb8c6d9dbab
+
+ gtk/tests/builder.c | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/gtk/tests/builder.c b/gtk/tests/builder.c
+index 8529dacc2f6e..23d5096062fa 100644
+--- a/gtk/tests/builder.c
++++ b/gtk/tests/builder.c
+@@ -132,7 +132,7 @@ static int object = 0;
+ static int object_after = 0;
+ 
+ void /* exported for GtkBuilder */
+-signal_normal (GtkWindow *window, GParamSpec spec)
++signal_normal (GtkWindow *window, GParamSpec *spec)
+ {
+   g_assert (GTK_IS_WINDOW (window));
+   g_assert (normal == 0);
+@@ -142,7 +142,7 @@ signal_normal (GtkWindow *window, GParamSpec spec)
+ }
+ 
+ void /* exported for GtkBuilder */
+-signal_after (GtkWindow *window, GParamSpec spec)
++signal_after (GtkWindow *window, GParamSpec *spec)
+ {
+   g_assert (GTK_IS_WINDOW (window));
+   g_assert (normal == 1);
+@@ -152,7 +152,7 @@ signal_after (GtkWindow *window, GParamSpec spec)
+ }
+ 
+ void /* exported for GtkBuilder */
+-signal_object (GtkButton *button, GParamSpec spec)
++signal_object (GtkButton *button, GParamSpec *spec)
+ {
+   g_assert (GTK_IS_BUTTON (button));
+   g_assert (object == 0);
+@@ -162,7 +162,7 @@ signal_object (GtkButton *button, GParamSpec spec)
+ }
+ 
+ void /* exported for GtkBuilder */
+-signal_object_after (GtkButton *button, GParamSpec spec)
++signal_object_after (GtkButton *button, GParamSpec *spec)
+ {
+   g_assert (GTK_IS_BUTTON (button));
+   g_assert (object == 1);
+@@ -172,28 +172,28 @@ signal_object_after (GtkButton *button, GParamSpec spec)
+ }
+ 
+ void /* exported for GtkBuilder */
+-signal_first (GtkButton *button, GParamSpec spec)
++signal_first (GtkButton *button, GParamSpec *spec)
+ {
+   g_assert (normal == 0);
+   normal = 10;
+ }
+ 
+ void /* exported for GtkBuilder */
+-signal_second (GtkButton *button, GParamSpec spec)
++signal_second (GtkButton *button, GParamSpec *spec)
+ {
+   g_assert (normal == 10);
+   normal = 20;
+ }
+ 
+ void /* exported for GtkBuilder */
+-signal_extra (GtkButton *button, GParamSpec spec)
++signal_extra (GtkButton *button, GParamSpec *spec)
+ {
+   g_assert (normal == 20);
+   normal = 30;
+ }
+ 
+ void /* exported for GtkBuilder */
+-signal_extra2 (GtkButton *button, GParamSpec spec)
++signal_extra2 (GtkButton *button, GParamSpec *spec)
+ {
+   g_assert (normal == 30);
+   normal = 40;
diff --git a/gnu/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch b/gnu/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch
new file mode 100644
index 0000000000..4a60023bf7
--- /dev/null
+++ b/gnu/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch
@@ -0,0 +1,51 @@
+From 889294a93fc6464c2c2919bc47f6fd85ec823363 Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <rg@raghavgururajan.name>
+Date: Tue, 18 May 2021 19:57:00 -0400
+Subject: [PATCH] [PATCH]: Honor GUIX_GTK4_PATH.
+
+This patch makes GTK look for additional modules in a list of directories
+specified by the environment variable "GUIX_GTK4_PATH". This can be used
+instead of "GTK_PATH" to make GTK find modules that are incompatible with
+other major versions of GTK.
+---
+ gtk/gtkmodules.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/gtk/gtkmodules.c b/gtk/gtkmodules.c
+index aace5dcbc9..193b6a02e9 100644
+--- a/gtk/gtkmodules.c
++++ b/gtk/gtkmodules.c
+@@ -105,6 +105,7 @@ static char **
+ get_module_path (void)
+ {
+   const char *module_path_env;
++  const gchar *module_guix_gtk4_path_env;
+   const char *exe_prefix;
+   char *module_path;
+   char *default_dir;
+@@ -114,6 +115,7 @@ get_module_path (void)
+     return result;
+ 
+   module_path_env = g_getenv ("GTK_PATH");
++  module_guix_gtk4_path_env = g_getenv ("GUIX_GTK4_PATH");
+   exe_prefix = g_getenv ("GTK_EXE_PREFIX");
+ 
+   if (exe_prefix)
+@@ -121,7 +123,13 @@ get_module_path (void)
+   else
+     default_dir = g_build_filename (_gtk_get_libdir (), "gtk-4.0", NULL);
+ 
+-  if (module_path_env)
++  if (module_guix_gtk4_path_env && module_path_env)
++    module_path = g_build_path (G_SEARCHPATH_SEPARATOR_S,
++				module_guix_gtk4_path_env, module_path_env, default_dir, NULL);
++  else if (module_guix_gtk4_path_env)
++    module_path = g_build_path (G_SEARCHPATH_SEPARATOR_S,
++				module_guix_gtk4_path_env, default_dir, NULL);
++  else if (module_path_env)
+     module_path = g_build_path (G_SEARCHPATH_SEPARATOR_S,
+ 				module_path_env, default_dir, NULL);
+   else
+-- 
+2.31.1
+
diff --git a/gnu/packages/patches/guile-email-fix-tests.patch b/gnu/packages/patches/guile-email-fix-tests.patch
new file mode 100644
index 0000000000..8621aaea02
--- /dev/null
+++ b/gnu/packages/patches/guile-email-fix-tests.patch
@@ -0,0 +1,35 @@
+This patch has been proposed upstream:
+https://lists.systemreboot.net/guile-email/87mtnv1r2p.fsf@gnu.org/T/#u.
+
+From c21fe0f0e28b80b606973d3e372e2bc8528c9766 Mon Sep 17 00:00:00 2001
+From: Mathieu Othacehe <othacehe@gnu.org>
+Date: Wed, 29 Sep 2021 12:47:35 +0000
+Subject: [PATCH 1/1] email: Do not use an empty bytevector to test the
+ charset.
+
+Using an empty bytevector no longer throws an exception since this Guile
+commit: 5ea8c69e9153a970952bf6f0b32c4fad6a28e839.
+
+* email/email.scm (post-process-content-transfer-encoding): Use a bytevector
+containg the 'e' character to test the charset validity.
+---
+ email/email.scm | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/email/email.scm b/email/email.scm
+index 3f4e194..ac70463 100644
+--- a/email/email.scm
++++ b/email/email.scm
+@@ -832,7 +832,8 @@ values. The returned headers is a string and body is a bytevector."
+   (define (valid-charset? charset)
+     (catch #t
+       (lambda ()
+-        (bytevector->string (make-bytevector 0 0) charset)
++        ;; Try to convert a bytevector containg the 'e' character.
++        (bytevector->string (make-bytevector 1 48) charset)
+         #t)
+       (const #f)))
+ 
+-- 
+2.33.0
+
diff --git a/gnu/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch b/gnu/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch
new file mode 100644
index 0000000000..436a11ad19
--- /dev/null
+++ b/gnu/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch
@@ -0,0 +1,78 @@
+diff --git a/configure.ac b/configure.ac
+index 107e6ca..20e9019 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2,6 +2,7 @@ dnl Guile-Git --- GNU Guile bindings of libgit2
+ dnl Copyright © 2016-2018 Erik Edrosa <erik.edrosa@gmail.com>
+ dnl Copyright © 2017, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+ dnl Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
++dnl Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+ dnl
+ dnl This file is part of Guile-Git.
+ dnl
+@@ -43,15 +44,20 @@ AS_IF([test "x$LIBGIT2_LIBDIR" = "x"], [
+ ])
+ AC_SUBST([LIBGIT2_LIBDIR])
+ 
++dnl Does the 'git_remote_callbacks' struct have a 'remote_ready' field?
++dnl It was added in 1.2.0, obsoleting 'resolve_url'.
++AC_CHECK_MEMBER([git_remote_callbacks.remote_ready],
++  [HAVE_REMOTE_CALLBACKS_REMOTE_READY="#true"],
++  [HAVE_REMOTE_CALLBACKS_REMOTE_READY="#false"],
++  [[#include <git2.h>]])
++AC_SUBST([HAVE_REMOTE_CALLBACKS_REMOTE_READY])
++
+ dnl Does the 'git_remote_callbacks' struct have a 'resolve_url' field?
+ dnl It's missing in libgit2 0.28.5, added in 1.0.
+-AC_CHECK_MEMBER([git_remote_callbacks.resolve_url], [], [],
++AC_CHECK_MEMBER([git_remote_callbacks.resolve_url],
++  [HAVE_REMOTE_CALLBACKS_RESOLVE_URL="#true"],
++  [HAVE_REMOTE_CALLBACKS_RESOLVE_URL="#false"],
+   [[#include <git2.h>]])
+-if test "x$ac_cv_member_git_remote_callbacks_resolve_url" = "xyes"; then
+-  HAVE_REMOTE_CALLBACKS_RESOLVE_URL="#true"
+-else
+-  HAVE_REMOTE_CALLBACKS_RESOLVE_URL="#false"
+-fi
+ AC_SUBST([HAVE_REMOTE_CALLBACKS_RESOLVE_URL])
+ 
+ dnl Those binaries are required for ssh authentication tests.
+diff --git a/git/configuration.scm.in b/git/configuration.scm.in
+index c45f698..64c4360 100644
+--- a/git/configuration.scm.in
++++ b/git/configuration.scm.in
+@@ -19,11 +19,17 @@
+ 
+ (define-module (git configuration)
+   #:export (%libgit2
++            %have-remote-callbacks-remote-ready?
+             %have-remote-callbacks-resolve-url?))
+ 
+ (define %libgit2
+   "@LIBGIT2_LIBDIR@/libgit2")
+ 
++(define %have-remote-callbacks-remote-ready?
++  ;; True if the 'git_remote_callbacks' struct has a
++  ;; 'remote_ready' field.
++  @HAVE_REMOTE_CALLBACKS_REMOTE_READY@)
++
+ (define %have-remote-callbacks-resolve-url?
+   ;; True if the 'git_remote_callbacks' struct has a 'resolve_url' field.
+   @HAVE_REMOTE_CALLBACKS_RESOLVE_URL@)
+diff --git a/git/structs.scm b/git/structs.scm
+index ca51728..be3d050 100644
+--- a/git/structs.scm
++++ b/git/structs.scm
+@@ -637,6 +637,12 @@ type to 'specified for this to take effect."
+                (push-update-reference ,(bs:pointer uint8))
+                (push-negotiation ,(bs:pointer uint8))
+                (transport ,(bs:pointer uint8))
++
++               ;; Added in libgit2 1.2.0.
++               ,@(if %have-remote-callbacks-remote-ready?
++                     `((remote-ready ,(bs:pointer uint8)))
++                     '())
++
+                (payload ,(bs:pointer uint8))
+ 
+                ;; libgit2 1.0 added this field, which is missing from 0.28.5,
diff --git a/gnu/packages/patches/gvfs-add-support-for-libplist-2.2.patch b/gnu/packages/patches/gvfs-add-support-for-libplist-2.2.patch
deleted file mode 100644
index 250eef2c8b..0000000000
--- a/gnu/packages/patches/gvfs-add-support-for-libplist-2.2.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Source: https://gitlab.gnome.org/GNOME/gvfs/-/commit/13551f3f40d41f1357126ac5a26d0fa012cd8123
-
-Note: This change should be incorporated into stable version 1.46.x of gvfs.
-
-From 13551f3f40d41f1357126ac5a26d0fa012cd8123 Mon Sep 17 00:00:00 2001
-From: Bastien Nocera <hadess@hadess.net>
-Date: Tue, 16 Jun 2020 13:28:35 +0200
-Subject: [PATCH] afc: Add support for libplist-2.2
-
-Which changed name from libplist to libplist-2.0 to embed its API
-version number in the library name.
----
- meson.build | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index 1750f65ca..187bfd55f 100644
---- a/meson.build
-+++ b/meson.build
-@@ -357,7 +357,10 @@ config_h.set('HAVE_LOGIND', enable_logind)
- enable_afc = get_option('afc')
- if enable_afc
-   libimobiledevice_dep = dependency('libimobiledevice-1.0', version: '>= 1.2')
--  libplist_dep = dependency('libplist', version: '>= 0.15')
-+  libplist_dep = dependency('libplist-2.0', required: false)
-+  if not libplist_dep.found()
-+    libplist_dep = dependency('libplist', version: '>= 0.15')
-+  endif
- endif
- 
- # *** Check if we should build with GOA volume monitor ***
--- 
-GitLab
-
diff --git a/gnu/packages/patches/hedgewars-network-bsd.patch b/gnu/packages/patches/hedgewars-network-bsd.patch
new file mode 100644
index 0000000000..311ce8bf09
--- /dev/null
+++ b/gnu/packages/patches/hedgewars-network-bsd.patch
@@ -0,0 +1,150 @@
+From f813f3d5b63bb5be1b5e0b44930e77656c547aad Mon Sep 17 00:00:00 2001
+From: Jens Petersen <none@none>
+Date: Wed, 8 Jul 2020 17:02:45 +0300
+Subject: [PATCH] update server network
+
+---
+ gameServer/Actions.hs                | 2 +-
+ gameServer/CMakeLists.txt            | 3 ++-
+ gameServer/ClientIO.hs               | 4 ++--
+ gameServer/CoreTypes.hs              | 2 +-
+ gameServer/OfficialServer/checker.hs | 5 ++---
+ gameServer/Utils.hs                  | 6 +-----
+ gameServer/hedgewars-server.cabal    | 3 ++-
+ gameServer/hedgewars-server.hs       | 5 +++--
+ 8 files changed, 14 insertions(+), 16 deletions(-)
+
+diff --git a/gameServer/Actions.hs b/gameServer/Actions.hs
+index 125d6ea832..c42d17b9a9 100644
+--- a/gameServer/Actions.hs
++++ b/gameServer/Actions.hs
+@@ -709,7 +709,7 @@ processAction RestartServer = do
+         args <- gets (runArgs . serverInfo)
+         io $ do
+             noticeM "Core" "Closing listening socket"
+-            sClose sock
++            close sock
+             noticeM "Core" "Spawning new server"
+             _ <- createProcess (proc "./hedgewars-server" args)
+             return ()
+diff --git a/gameServer/CMakeLists.txt b/gameServer/CMakeLists.txt
+index 5f2c882563..e71650c70c 100644
+--- a/gameServer/CMakeLists.txt
++++ b/gameServer/CMakeLists.txt
+@@ -9,7 +9,8 @@ check_haskell_package_exists(base "Control.Exception" mask 1)
+ check_haskell_package_exists(containers "Data.Map" size 1)
+ check_haskell_package_exists(vector "Data.Vector" length 1)
+ check_haskell_package_exists(bytestring "Data.ByteString" pack 1)
+-check_haskell_package_exists(network "Network.BSD" getHostName 0)
++check_haskell_package_exists(network "Network.Socket" defaultHints 0)
++check_haskell_package_exists(network-bsd "Network.BSD" getHostName 0)
+ check_haskell_package_exists(time "Data.Time" getCurrentTime 0)
+ check_haskell_package_exists(mtl "Control.Monad.State" fix 1)
+ check_haskell_package_exists(sandi "Codec.Binary.Base64" encode 1)
+diff --git a/gameServer/ClientIO.hs b/gameServer/ClientIO.hs
+index 46dd40ed9f..0c97bde932 100644
+--- a/gameServer/ClientIO.hs
++++ b/gameServer/ClientIO.hs
+@@ -23,7 +23,7 @@ import qualified Control.Exception as Exception
+ import Control.Monad.State
+ import Control.Concurrent.Chan
+ import Control.Concurrent
+-import Network
++import Network.Socket hiding (recv)
+ import Network.Socket.ByteString
+ import qualified Data.ByteString.Char8 as B
+ ----------------
+@@ -90,7 +90,7 @@ clientSendLoop s tId chan ci = do
+             sendAll s $ B.unlines answer `B.snoc` '\n'
+ 
+     if isQuit answer then
+-        sClose s
++        close s
+         else
+         clientSendLoop s tId chan ci
+ 
+diff --git a/gameServer/CoreTypes.hs b/gameServer/CoreTypes.hs
+index f547df483a..72f35807e3 100644
+--- a/gameServer/CoreTypes.hs
++++ b/gameServer/CoreTypes.hs
+@@ -23,7 +23,7 @@ import Control.Concurrent
+ import Data.Word
+ import qualified Data.Map as Map
+ import Data.Time
+-import Network
++import Network.Socket
+ import Data.Function
+ import Data.ByteString.Char8 as B
+ import Data.Unique
+diff --git a/gameServer/OfficialServer/checker.hs b/gameServer/OfficialServer/checker.hs
+index 37df3208b9..b4ecb8fc57 100644
+--- a/gameServer/OfficialServer/checker.hs
++++ b/gameServer/OfficialServer/checker.hs
+@@ -28,8 +28,7 @@ import System.Directory
+ import Control.Monad.State
+ import Control.Concurrent.Chan
+ import Control.Concurrent
+-import Network
+-import Network.BSD
++import Network.BSD hiding (recv)
+ import Network.Socket hiding (recv, sClose)
+ import Network.Socket.ByteString
+ import qualified Data.ByteString.Char8 as B
+@@ -207,7 +206,7 @@ main = withSocketsDo . forever $ do
+ 
+     Exception.bracket
+         setupConnection
+-        (\s -> noticeM "Core" "Shutting down" >> sClose s)
++        (\s -> noticeM "Core" "Shutting down" >> close s)
+         (session login password (d ++ "/.hedgewars") exeFullname dataPrefix)
+     where
+         setupConnection = do
+diff --git a/gameServer/Utils.hs b/gameServer/Utils.hs
+index 3d81b7f7c6..9fd80c01ba 100644
+--- a/gameServer/Utils.hs
++++ b/gameServer/Utils.hs
+@@ -41,11 +41,7 @@ import CoreTypes
+ 
+ 
+ sockAddr2String :: SockAddr -> IO B.ByteString
+-sockAddr2String (SockAddrInet _ hostAddr) = liftM B.pack $ inet_ntoa hostAddr
+-sockAddr2String (SockAddrInet6 _ _ (a, b, c, d) _) =
+-    return $ B.pack $ (foldr1 (.)
+-        $ List.intersperse (':':)
+-        $ concatMap (\n -> (\(a0, a1) -> [showHex a0, showHex a1]) $ divMod n 65536) [a, b, c, d]) []
++sockAddr2String = liftM (B.pack . fromJust . fst) . getNameInfo [] True False
+ 
+ maybeRead :: Read a => String -> Maybe a
+ maybeRead s = case reads s of
+diff --git a/gameServer/hedgewars-server.cabal b/gameServer/hedgewars-server.cabal
+index 3c7f2418c9..9f764fd997 100644
+--- a/gameServer/hedgewars-server.cabal
++++ b/gameServer/hedgewars-server.cabal
+@@ -57,7 +57,8 @@ Executable checker
+     containers,
+     vector,
+     bytestring,
+-    network >= 2.3 && < 3.0,
++    network >= 2.3,
++    network-bsd,
+     mtl >= 2,
+     sandi,
+     hslogger,
+diff --git a/gameServer/hedgewars-server.hs b/gameServer/hedgewars-server.hs
+index e47ae2891d..7e6ab8fa38 100644
+--- a/gameServer/hedgewars-server.hs
++++ b/gameServer/hedgewars-server.hs
+@@ -50,10 +50,11 @@ server si = do
+     proto <- getProtocolNumber "tcp"
+     E.bracket
+         (socket AF_INET Stream proto)
+-        sClose
++        close
+         (\sock -> do
+             setSocketOption sock ReuseAddr 1
+-            bindSocket sock (SockAddrInet (listenPort si) iNADDR_ANY)
++            iNADDR_ANY <- addrAddress . head <$> getAddrInfo Nothing (Just "0") (Just (show (listenPort si)))
++            bind sock iNADDR_ANY
+             listen sock maxListenQueue
+             startServer si{serverSocket = Just sock}
+         )
diff --git a/gnu/packages/patches/helm-fix-gcc-9-build.patch b/gnu/packages/patches/helm-fix-gcc-9-build.patch
new file mode 100644
index 0000000000..f623fef203
--- /dev/null
+++ b/gnu/packages/patches/helm-fix-gcc-9-build.patch
@@ -0,0 +1,140 @@
+From cb611a80bd5a36d31bfc31212ebbf79aa86c6f08 Mon Sep 17 00:00:00 2001
+From: jikstra <jikstra@disroot.org>
+Date: Tue, 20 Aug 2019 03:00:51 +0200
+Subject: [PATCH] Backport
+ https://github.com/WeAreROLI/JUCE/commit/4e0adb2af8b424c43d22bd431011c9a6c57d36b6
+ to the bundled JUCE framework to make helm compile on gcc 9.1 again
+
+---
+ .../juce_graphics/colour/juce_PixelFormats.h  | 25 +---------
+ .../native/juce_RenderingHelpers.h            | 48 +------------------
+ 2 files changed, 4 insertions(+), 69 deletions(-)
+
+diff --git a/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h b/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h
+index 9be9ba09c..3535eab80 100644
+--- a/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h
++++ b/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h
+@@ -105,23 +105,9 @@ class JUCE_API  PixelARGB
+ 

+     //==============================================================================

+     forcedinline uint8 getAlpha() const noexcept      { return components.a; }

+-    forcedinline uint8 getRed() const noexcept        { return components.r; }

++    forcedinline uint8 getRed()   const noexcept      { return components.r; }

+     forcedinline uint8 getGreen() const noexcept      { return components.g; }

+-    forcedinline uint8 getBlue() const noexcept       { return components.b; }

+-

+-   #if JUCE_GCC

+-    // NB these are here as a workaround because GCC refuses to bind to packed values.

+-    forcedinline uint8& getAlpha() noexcept           { return comps [indexA]; }

+-    forcedinline uint8& getRed() noexcept             { return comps [indexR]; }

+-    forcedinline uint8& getGreen() noexcept           { return comps [indexG]; }

+-    forcedinline uint8& getBlue() noexcept            { return comps [indexB]; }

+-   #else

+-    forcedinline uint8& getAlpha() noexcept           { return components.a; }

+-    forcedinline uint8& getRed() noexcept             { return components.r; }

+-    forcedinline uint8& getGreen() noexcept           { return components.g; }

+-    forcedinline uint8& getBlue() noexcept            { return components.b; }

+-   #endif

+-

++    forcedinline uint8 getBlue()  const noexcept      { return components.b; }

+     //==============================================================================

+     /** Copies another pixel colour over this one.

+ 

+@@ -340,9 +326,6 @@ class JUCE_API  PixelARGB
+     {

+         uint32 internal;

+         Components components;

+-       #if JUCE_GCC

+-        uint8 comps[4];  // helper struct needed because gcc does not allow references to packed union members

+-       #endif

+     };

+ }

+ #ifndef DOXYGEN

+@@ -429,10 +412,6 @@ class JUCE_API  PixelRGB
+     forcedinline uint8 getGreen() const noexcept    { return g; }

+     forcedinline uint8 getBlue() const noexcept     { return b; }

+ 

+-    forcedinline uint8& getRed() noexcept           { return r; }

+-    forcedinline uint8& getGreen() noexcept         { return g; }

+-    forcedinline uint8& getBlue() noexcept          { return b; }

+-

+     //==============================================================================

+     /** Copies another pixel colour over this one.

+ 

+diff --git a/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h b/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h
+index 1c4cd31ef..29519cb5a 100644
+--- a/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h
++++ b/JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h
+@@ -581,18 +581,10 @@ namespace EdgeTableFillers
+             : destData (image), sourceColour (colour)

+         {

+             if (sizeof (PixelType) == 3 && destData.pixelStride == sizeof (PixelType))

+-            {

+                 areRGBComponentsEqual = sourceColour.getRed() == sourceColour.getGreen()

+                                             && sourceColour.getGreen() == sourceColour.getBlue();

+-                filler[0].set (sourceColour);

+-                filler[1].set (sourceColour);

+-                filler[2].set (sourceColour);

+-                filler[3].set (sourceColour);

+-            }

+             else

+-            {

+                 areRGBComponentsEqual = false;

+-            }

+         }

+ 

+         forcedinline void setEdgeTableYPos (const int y) noexcept

+@@ -643,7 +635,6 @@ namespace EdgeTableFillers
+         const Image::BitmapData& destData;

+         PixelType* linePixels;

+         PixelARGB sourceColour;

+-        PixelRGB filler [4];

+         bool areRGBComponentsEqual;

+ 

+         forcedinline PixelType* getPixel (const int x) const noexcept

+@@ -658,43 +649,8 @@ namespace EdgeTableFillers
+ 

+         forcedinline void replaceLine (PixelRGB* dest, const PixelARGB colour, int width) const noexcept

+         {

+-            if (destData.pixelStride == sizeof (*dest))

+-            {

+-                if (areRGBComponentsEqual)  // if all the component values are the same, we can cheat..

+-                {

+-                    memset (dest, colour.getRed(), (size_t) width * 3);

+-                }

+-                else

+-                {

+-                    if (width >> 5)

+-                    {

+-                        const int* const intFiller = reinterpret_cast<const int*> (filler);

+-

+-                        while (width > 8 && (((pointer_sized_int) dest) & 7) != 0)

+-                        {

+-                            dest->set (colour);

+-                            ++dest;

+-                            --width;

+-                        }

+-

+-                        while (width > 4)

+-                        {

+-                            int* d = reinterpret_cast<int*> (dest);

+-                            *d++ = intFiller[0];

+-                            *d++ = intFiller[1];

+-                            *d++ = intFiller[2];

+-                            dest = reinterpret_cast<PixelRGB*> (d);

+-                            width -= 4;

+-                        }

+-                    }

+-

+-                    while (--width >= 0)

+-                    {

+-                        dest->set (colour);

+-                        ++dest;

+-                    }

+-                }

+-            }

++            if ((size_t) destData.pixelStride == sizeof (*dest) && areRGBComponentsEqual)

++                memset ((void*) dest, colour.getRed(), (size_t) width * 3);   // if all the component values are the same, we can cheat..

+             else

+             {

+                 JUCE_PERFORM_PIXEL_OP_LOOP (set (colour))

diff --git a/gnu/packages/patches/hexchat-add-libera-chat.patch b/gnu/packages/patches/hexchat-add-libera-chat.patch
deleted file mode 100644
index 2bbb3137ba..0000000000
--- a/gnu/packages/patches/hexchat-add-libera-chat.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-Add libera.chat to the list of available networks and make it the
-default.
-
-Patches copied from upstream source repository:
-
-https://github.com/hexchat/hexchat/commit/a25f2381689d2c2279a0e43b33f6c0ec8305a096
-https://github.com/hexchat/hexchat/commit/d3545f37cd5f551ed8bc0ab7b20e5c8140adc0a6
-
-From a25f2381689d2c2279a0e43b33f6c0ec8305a096 Mon Sep 17 00:00:00 2001
-From: Panagiotis Vasilopoulos <hello@alwayslivid.com>
-Date: Wed, 19 May 2021 16:25:16 +0300
-Subject: [PATCH] Add Libera Chat to network list
-
----
- src/common/servlist.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/common/servlist.c b/src/common/servlist.c
-index e44a3f2df..33bd80f2d 100644
---- a/src/common/servlist.c
-+++ b/src/common/servlist.c
-@@ -239,6 +239,9 @@ static const struct defaultserver def[] =
- 	/* Self signed */
- 	{0,			"irc.librairc.net"},
- 
-+	{"Libera Chat", 0, 0, 0, LOGIN_SASL, 0, TRUE},
-+	{0,			"irc.libera.chat"},
-+
- #ifdef USE_OPENSSL
- 	{"LinkNet",	0},
- 	{0,			"irc.link-net.org/+7000"},
-From d3545f37cd5f551ed8bc0ab7b20e5c8140adc0a6 Mon Sep 17 00:00:00 2001
-From: Patrick Griffis <pgriffis@igalia.com>
-Date: Sun, 23 May 2021 21:15:43 -0500
-Subject: [PATCH] Change default network to Libera.Chat
-
----
- src/common/servlist.c | 4 ++--
- src/fe-gtk/joind.c    | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/common/servlist.c b/src/common/servlist.c
-index de75c8b9a..93557f975 100644
---- a/src/common/servlist.c
-+++ b/src/common/servlist.c
-@@ -240,7 +240,7 @@ static const struct defaultserver def[] =
- 	/* Self signed */
- 	{0,			"irc.librairc.net"},
- 
--	{"Libera Chat", 0, 0, 0, LOGIN_SASL, 0, TRUE},
-+	{"Libera.Chat", 0, 0, 0, LOGIN_SASL, 0, TRUE},
- 	{0,			"irc.libera.chat"},
- 
- #ifdef USE_OPENSSL
-@@ -942,7 +942,7 @@ servlist_load_defaults (void)
- {
- 	int i = 0, j = 0;
- 	ircnet *net = NULL;
--	guint def_hash = g_str_hash ("freenode");
-+	guint def_hash = g_str_hash ("Libera.Chat");
- 
- 	while (1)
- 	{
-diff --git a/src/fe-gtk/joind.c b/src/fe-gtk/joind.c
-index f1d3da504..ce3cbcaec 100644
---- a/src/fe-gtk/joind.c
-+++ b/src/fe-gtk/joind.c
-@@ -247,7 +247,7 @@ joind_show_dialog (server *serv)
- 							G_CALLBACK (joind_ok_cb), serv);
- 							
- 	if (serv->network)
--		if (g_ascii_strcasecmp(((ircnet*)serv->network)->name, "freenode") == 0)
-+		if (g_ascii_strcasecmp(((ircnet*)serv->network)->name, "Libera.Chat") == 0)
- 		{
- 			gtk_entry_set_text (GTK_ENTRY (entry1), "#hexchat");
- 		}
diff --git a/gnu/packages/patches/i3status-rust-enable-unstable-features.patch b/gnu/packages/patches/i3status-rust-enable-unstable-features.patch
new file mode 100644
index 0000000000..535b45d865
--- /dev/null
+++ b/gnu/packages/patches/i3status-rust-enable-unstable-features.patch
@@ -0,0 +1,20 @@
+From 3006390c0058f06c255d9850327163aebcdc3b40 Mon Sep 17 00:00:00 2001
+From: Petr Hodina <phodina@protonmail.com>
+Date: Mon, 11 Oct 2021 22:35:39 +0200
+Subject: [PATCH] Enable unstable features.
+
+
+diff --git a/src/main.rs b/src/main.rs
+index d9e964b..820e22e 100644
+--- a/src/main.rs
++++ b/src/main.rs
+@@ -1,3 +1,6 @@
++#![feature(bool_to_option)]
++#![feature(clamp)]
++
+ #[macro_use]
+ mod de;
+ #[macro_use]
+--
+2.33.0
+
diff --git a/gnu/packages/patches/i7z-gcc-10.patch b/gnu/packages/patches/i7z-gcc-10.patch
new file mode 100644
index 0000000000..407e17a995
--- /dev/null
+++ b/gnu/packages/patches/i7z-gcc-10.patch
@@ -0,0 +1,23 @@
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Sat, 11 Dec 2021 19:22:49 +0100
+Subject: [PATCH] gnu: i7z: Build with GCC 10.
+
+Patch from Debian, modified to apply to our i7z sources in src/.
+
+Author: Andreas Beckmann <anbe@debian.org>
+Description: fix FTBFS with gcc-10
+ gcc-10 defaults to -fno-common
+ see https://gcc.gnu.org/gcc-10/porting_to.html
+Bug-Debian: https://bugs.debian.org/957351
+
+--- a/src/i7z_Dual_Socket.c
++++ b/src/i7z_Dual_Socket.c
+@@ -37,7 +37,7 @@ float Read_Voltage_CPU(int cpu_num);
+ extern struct program_options prog_options;
+ FILE *fp_log_file;
+ 
+-struct timespec global_ts;
++extern struct timespec global_ts;
+ extern FILE *fp_log_file_freq_1, *fp_log_file_freq_2;
+ 
+ extern char* CPU_FREQUENCY_LOGGING_FILE_single;
diff --git a/gnu/packages/patches/icecat-makeicecat.patch b/gnu/packages/patches/icecat-makeicecat.patch
index edd1ced257..c46cb27ff6 100644
--- a/gnu/packages/patches/icecat-makeicecat.patch
+++ b/gnu/packages/patches/icecat-makeicecat.patch
@@ -3,108 +3,49 @@ in a snippet without network access.  After this patch is applied, some
 additional changes will be made using 'substitute*'.
 
 diff --git a/makeicecat b/makeicecat
-index 8be2362..48716f2 100755
+index bf2b7a6..bc3b19b 100755
 --- a/makeicecat
 +++ b/makeicecat
-@@ -31,55 +31,55 @@ SOURCEDIR=icecat-$FFVERSION
+@@ -58,7 +58,7 @@ readonly SOURCEDIR=icecat-${FFVERSION}
+ # debug/shell options
+ readonly DEVEL=0
+ set -euo pipefail
+-(( DEVEL )) && set -x
++set -x
  
- DATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/data
  
--mkdir -p output
--cd output
-+# mkdir -p output
-+# cd output
- 
- ###############################################################################
- # Retrieve FF source code
  ###############################################################################
+@@ -459,7 +459,7 @@ configure_search()
+     sed 's|ddg@|ddg-html@|' -i browser/components/search/extensions/ddg-html/manifest.json
  
--rm mozilla-esr${FFMAJOR} $SOURCEDIR -rf
--
--wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz
--wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
--gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
--gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
--echo -n 1aa041db28cd742e93d663a9da8defd33040b38d8b9470350538473251621643 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
--
--echo Extracting Firefox tarball
--tar -xf firefox-${FFVERSION}esr.source.tar.xz
--
--mv firefox-${FFVERSION} $SOURCEDIR
-+# rm mozilla-esr${FFMAJOR} $SOURCEDIR -rf
-+# 
-+# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz
-+# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
-+# gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
-+# gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
-+# echo -n 1aa041db28cd742e93d663a9da8defd33040b38d8b9470350538473251621643 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
-+# 
-+# echo Extracting Firefox tarball
-+# tar -xf firefox-${FFVERSION}esr.source.tar.xz
-+# 
-+# mv firefox-${FFVERSION} $SOURCEDIR
+     # Process various JSON pre-configuration dumps.
+-    python3 ../../tools/process-json-files.py . browser/components/extensions/schemas/
++    python3 "${DATADIR}"/../tools/process-json-files.py . browser/components/extensions/schemas/
+ }
  
+ configure_mobile()
+@@ -855,12 +855,12 @@ finalize_sourceball()
+ # entry point
  ###############################################################################
- # Retrieve l10n
- ###############################################################################
- 
--mkdir l10n
--cd l10n
--while read line;do
--    line=$(echo $line |cut -d' ' -f1)
--    #[ $line = "es-ES" ] || continue # To speed up testing
--    [ $line = "en-US" ] && continue
--    hg clone https://hg.mozilla.org/l10n-central/$line
--    mkdir -p $line/browser/chrome/browser/preferences
--    touch $line/browser/chrome/browser/preferences/advanced-scripts.dtd
--    rm -rf $line/.hg*
--done < ../$SOURCEDIR/browser/locales/shipped-locales
--cd ..
--
--mv l10n $SOURCEDIR
--
--hg clone https://hg.mozilla.org/l10n/compare-locales/
--cd compare-locales/
--hg checkout RELEASE_8_0_0
--cd ..
--rm compare-locales/.hg* compare-locales/.git* -rf
--mv compare-locales $SOURCEDIR/l10n
-+# mkdir l10n
-+# cd l10n
-+# while read line;do
-+#     line=$(echo $line |cut -d' ' -f1)
-+#     #[ $line = "es-ES" ] || continue # To speed up testing
-+#     [ $line = "en-US" ] && continue
-+#     hg clone https://hg.mozilla.org/l10n-central/$line
-+#     mkdir -p $line/browser/chrome/browser/preferences
-+#     touch $line/browser/chrome/browser/preferences/advanced-scripts.dtd
-+#     rm -rf $line/.hg*
-+# done < ../$SOURCEDIR/browser/locales/shipped-locales
-+# cd ..
-+# 
-+# mv l10n $SOURCEDIR
-+# 
-+# hg clone https://hg.mozilla.org/l10n/compare-locales/
-+# cd compare-locales/
-+# hg checkout RELEASE_8_0_0
-+# cd ..
-+# rm compare-locales/.hg* compare-locales/.git* -rf
-+# mv compare-locales $SOURCEDIR/l10n
- 
- #######################################################
- 
--cd $SOURCEDIR
-+# cd $SOURCEDIR
- 
- shopt -s nullglob
- for patch in $DATA/patches/*.patch; do
-@@ -598,6 +598,6 @@ sed 's/777/755/;' -i toolkit/crashreporter/google-breakpad/Makefile.in
- # Fix CVE-2012-3386
- /bin/sed 's/chmod a+w/chmod u+w/' -i ./js/src/ctypes/libffi/Makefile.in ./toolkit/crashreporter/google-breakpad/Makefile.in ./toolkit/crashreporter/google-breakpad/src/third_party/glog/Makefile.in || true
  
--cd ..
--echo Packaging tarball
--tar cfj icecat-$ICECATVERSION.tar.bz2 $SOURCEDIR
-+# cd ..
-+# echo Packaging tarball
-+# tar cfj icecat-$ICECATVERSION.tar.bz2 $SOURCEDIR
+-validate_env || exit 1
+-prepare_env
+-fetch_source
+-verify_sources
+-extract_sources
+-fetch_l10n
++# validate_env || exit 1
++# prepare_env
++# fetch_source
++# verify_sources
++# extract_sources
++# fetch_l10n
+ apply_patches
+ configure
+ configure_search
+@@ -872,4 +872,4 @@ prepare_macos_packaging
+ configure_extensions
+ configure_onboarding
+ apply_bugfixes
+-finalize_sourceball
++# finalize_sourceball
diff --git a/gnu/packages/patches/idris-build-with-haskeline-0.8.patch b/gnu/packages/patches/idris-build-with-haskeline-0.8.patch
new file mode 100644
index 0000000000..5d1fec2409
--- /dev/null
+++ b/gnu/packages/patches/idris-build-with-haskeline-0.8.patch
@@ -0,0 +1,85 @@
+From 89a87cf666eb8b27190c779e72d0d76eadc1bc14 Mon Sep 17 00:00:00 2001
+From: Niklas Larsson <niklas@mm.st>
+Date: Sat, 6 Jun 2020 15:29:45 +0200
+Subject: [PATCH] Fix to unblock haskeline-0.8
+
+---
+Taken from <https://github.com/idris-lang/Idris-dev/pull/4871>
+
+ idris.cabal         |  2 +-
+ src/Idris/Output.hs |  8 --------
+ src/Idris/REPL.hs   | 12 +++++-------
+ 3 files changed, 6 insertions(+), 16 deletions(-)
+
+diff --git a/idris.cabal b/idris.cabal
+index 38359019a9..bc9e265023 100644
+--- a/idris.cabal
++++ b/idris.cabal
+@@ -336,7 +336,7 @@ Library
+                 , directory >= 1.2.2.0 && < 1.2.3.0 || > 1.2.3.0
+                 , filepath < 1.5
+                 , fingertree >= 0.1.4.1 && < 0.2
+-                , haskeline >= 0.7 && < 0.8
++                , haskeline >= 0.8 && < 0.9
+                 , ieee754 >= 0.7 && < 0.9
+                 , megaparsec >= 7.0.4 && < 9
+                 , mtl >= 2.1 && < 2.3
+diff --git a/src/Idris/Output.hs b/src/Idris/Output.hs
+index 70b4d48a30..6b5d59948c 100644
+--- a/src/Idris/Output.hs
++++ b/src/Idris/Output.hs
+@@ -37,21 +37,13 @@ import Prelude hiding ((<$>))
+ #endif
+ 
+ import Control.Arrow (first)
+-import Control.Monad.Trans.Except (ExceptT(ExceptT), runExceptT)
+ import Data.List (intersperse, nub)
+ import Data.Maybe (fromJust, fromMaybe, isJust, listToMaybe)
+ import qualified Data.Set as S
+-import System.Console.Haskeline.MonadException (MonadException(controlIO),
+-                                                RunIO(RunIO))
+ import System.FilePath (replaceExtension)
+ import System.IO (Handle, hPutStr, hPutStrLn)
+ import System.IO.Error (tryIOError)
+ 
+-instance MonadException m => MonadException (ExceptT Err m) where
+-    controlIO f = ExceptT $ controlIO $ \(RunIO run) -> let
+-                    run' = RunIO (fmap ExceptT . run . runExceptT)
+-                    in fmap runExceptT $ f run'
+-
+ pshow :: IState -> Err -> String
+ pshow ist err = displayDecorated (consoleDecorate ist) .
+                 renderPretty 1.0 80 .
+diff --git a/src/Idris/REPL.hs b/src/Idris/REPL.hs
+index 05587d9672..5e0dc21089 100644
+--- a/src/Idris/REPL.hs
++++ b/src/Idris/REPL.hs
+@@ -122,23 +122,21 @@ repl orig mods efile
+                              (if colour && not isWindows
+                                 then colourisePrompt theme str
+                                 else str) ++ " "
+-        x <- H.catch (H.withInterrupt $ getInputLine prompt)
+-                     (ctrlC (return $ Just ""))
++        x <- H.handleInterrupt (ctrlC (return $ Just "")) (H.withInterrupt $ getInputLine prompt)
+         case x of
+             Nothing -> do lift $ when (not quiet) (iputStrLn "Bye bye")
+                           return ()
+             Just input -> -- H.catch
+-                do ms <- H.catch (H.withInterrupt $ lift $ processInput input orig mods efile)
+-                                 (ctrlC (return (Just mods)))
++                do ms <- H.handleInterrupt (ctrlC (return (Just mods))) (H.withInterrupt $ lift $ processInput input orig mods efile)
+                    case ms of
+                         Just mods -> let efile' = fromMaybe efile (listToMaybe mods)
+                                      in repl orig mods efile'
+                         Nothing -> return ()
+ --                             ctrlC)
+ --       ctrlC
+-   where ctrlC :: InputT Idris a -> SomeException -> InputT Idris a
+-         ctrlC act e = do lift $ iputStrLn (show e)
+-                          act -- repl orig mods
++   where ctrlC :: InputT Idris a -> InputT Idris a
++         ctrlC act = do lift $ iputStrLn "Interrupted"
++                        act -- repl orig mods
+ 
+          showMVs c thm [] = ""
+          showMVs c thm ms = "Holes: " ++
diff --git a/gnu/packages/patches/idris-build-with-megaparsec-9.patch b/gnu/packages/patches/idris-build-with-megaparsec-9.patch
new file mode 100644
index 0000000000..6d7ff1d713
--- /dev/null
+++ b/gnu/packages/patches/idris-build-with-megaparsec-9.patch
@@ -0,0 +1,27 @@
+From 6ea9bc913877d765048d7cdb7fc5aec60b196fac Mon Sep 17 00:00:00 2001
+From: Felix Yan <felixonmars@archlinux.org>
+Date: Wed, 16 Dec 2020 21:48:32 +0800
+Subject: [PATCH] Fix compatibility with megaparsec 9
+
+---
+Taken from <https://github.com/idris-lang/Idris-dev/pull/4892>
+
+ src/Idris/Parser/Stack.hs | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/Idris/Parser/Stack.hs b/src/Idris/Parser/Stack.hs
+index fb7b611440..879786f4d2 100644
+--- a/src/Idris/Parser/Stack.hs
++++ b/src/Idris/Parser/Stack.hs
+@@ -84,7 +84,11 @@ instance Message ParseError where
+       (pos, _) = P.reachOffsetNoLine (parseErrorOffset err) (parseErrorPosState err)
+ #endif
+   messageText = PP.text . init . P.parseErrorTextPretty . parseError
++#if MIN_VERSION_megaparsec(9,0,0)
++  messageSource err = sline
++#else
+   messageSource err = Just sline
++#endif
+     where
+ #if MIN_VERSION_megaparsec(8,0,0)
+       (sline, _) = P.reachOffset (parseErrorOffset err) (parseErrorPosState err)
diff --git a/gnu/packages/patches/inkscape-1.1-fix-build-witch-gcc7.5.patch b/gnu/packages/patches/inkscape-1.1-fix-build-witch-gcc7.5.patch
deleted file mode 100644
index bd7b01f856..0000000000
--- a/gnu/packages/patches/inkscape-1.1-fix-build-witch-gcc7.5.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 0ae15d7e89b984f72780ff7afa8e57dd6ae7765a Mon Sep 17 00:00:00 2001
-From: "Boris A. Dekshteyn" <boris.dekshteyn@gmail.com>
-Date: Mon, 14 Jun 2021 23:52:16 +1200
-Subject: [PATCH] Fix build witch GCC@7.5.
-
----
- src/object/sp-use-reference.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/object/sp-use-reference.h b/src/object/sp-use-reference.h
-index 5958632059..f07c2a3721 100644
---- a/src/object/sp-use-reference.h
-+++ b/src/object/sp-use-reference.h
-@@ -14,6 +14,7 @@
- 
- #include "sp-item.h"
- #include "uri-references.h"
-+#include "display/curve.h"
- 
- #include <memory>
- 
--- 
-2.32.0
-
diff --git a/gnu/packages/patches/json-c-CVE-2020-12762.patch b/gnu/packages/patches/json-c-CVE-2020-12762.patch
deleted file mode 100644
index 80daa475e9..0000000000
--- a/gnu/packages/patches/json-c-CVE-2020-12762.patch
+++ /dev/null
@@ -1,193 +0,0 @@
-https://github.com/json-c/json-c/pull/608
-https://github.com/json-c/json-c/commit/5d6fa331418d49f1bd488553fd1cfa9ab023fabb.patch
-
-From 5d6fa331418d49f1bd488553fd1cfa9ab023fabb Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82@fedoraproject.org>
-Date: Thu, 14 May 2020 12:32:30 +0200
-Subject: [PATCH] Fix CVE-2020-12762.
-
-This commit is a squashed backport of the following commits
-on the master branch:
-
-  * 099016b7e8d70a6d5dd814e788bba08d33d48426
-  * 77d935b7ae7871a1940cd827e850e6063044ec45
-  * d07b91014986900a3a75f306d302e13e005e9d67
-  * 519dfe1591d85432986f9762d41d1a883198c157
-  * a59d5acfab4485d5133114df61785b1fc633e0c6
-  * 26f080997d41cfdb17beab65e90c82217d0ac43b
----
- arraylist.c          |  3 +++
- linkhash.c           |  9 ++++++++-
- printbuf.c           | 18 ++++++++++++++++--
- tests/test4.c        | 29 +++++++++++++++++++++++++++++
- tests/test4.expected |  1 +
- 5 files changed, 57 insertions(+), 3 deletions(-)
-
-diff --git a/arraylist.c b/arraylist.c
-index 12ad8af6d3..e5524aca75 100644
---- a/arraylist.c
-+++ b/arraylist.c
-@@ -136,6 +136,9 @@ int array_list_del_idx(struct array_list *arr, size_t idx, size_t count)
- {
- 	size_t i, stop;
- 
-+	/* Avoid overflow in calculation with large indices. */
-+	if (idx > SIZE_T_MAX - count)
-+		return -1;
- 	stop = idx + count;
- 	if (idx >= arr->length || stop > arr->length)
- 		return -1;
-diff --git a/linkhash.c b/linkhash.c
-index 7ea58c0abf..b021ef10b0 100644
---- a/linkhash.c
-+++ b/linkhash.c
-@@ -12,6 +12,7 @@
- 
- #include "config.h"
- 
-+#include <assert.h>
- #include <limits.h>
- #include <stdarg.h>
- #include <stddef.h>
-@@ -499,6 +500,8 @@ struct lh_table *lh_table_new(int size, lh_entry_free_fn *free_fn, lh_hash_fn *h
- 	int i;
- 	struct lh_table *t;
- 
-+	/* Allocate space for elements to avoid divisions by zero. */
-+	assert(size > 0);
- 	t = (struct lh_table *)calloc(1, sizeof(struct lh_table));
- 	if (!t)
- 		return NULL;
-@@ -578,8 +581,12 @@ int lh_table_insert_w_hash(struct lh_table *t, const void *k, const void *v, con
- 	unsigned long n;
- 
- 	if (t->count >= t->size * LH_LOAD_FACTOR)
--		if (lh_table_resize(t, t->size * 2) != 0)
-+	{
-+		/* Avoid signed integer overflow with large tables. */
-+		int new_size = (t->size > INT_MAX / 2) ? INT_MAX : (t->size * 2);
-+		if (t->size == INT_MAX || lh_table_resize(t, new_size) != 0)
- 			return -1;
-+	}
- 
- 	n = h % t->size;
- 
-diff --git a/printbuf.c b/printbuf.c
-index 976c12dde5..f9b15b1191 100644
---- a/printbuf.c
-+++ b/printbuf.c
-@@ -15,6 +15,7 @@
- 
- #include "config.h"
- 
-+#include <limits.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-@@ -66,9 +67,16 @@ static int printbuf_extend(struct printbuf *p, int min_size)
- 	if (p->size >= min_size)
- 		return 0;
- 
--	new_size = p->size * 2;
--	if (new_size < min_size + 8)
-+	/* Prevent signed integer overflows with large buffers. */
-+	if (min_size > INT_MAX - 8)
-+		return -1;
-+	if (p->size > INT_MAX / 2)
- 		new_size = min_size + 8;
-+	else {
-+		new_size = p->size * 2;
-+		if (new_size < min_size + 8)
-+			new_size = min_size + 8;
-+	}
- #ifdef PRINTBUF_DEBUG
- 	MC_DEBUG("printbuf_memappend: realloc "
- 	         "bpos=%d min_size=%d old_size=%d new_size=%d\n",
-@@ -83,6 +91,9 @@ static int printbuf_extend(struct printbuf *p, int min_size)
- 
- int printbuf_memappend(struct printbuf *p, const char *buf, int size)
- {
-+	/* Prevent signed integer overflows with large buffers. */
-+	if (size > INT_MAX - p->bpos - 1)
-+		return -1;
- 	if (p->size <= p->bpos + size + 1)
- 	{
- 		if (printbuf_extend(p, p->bpos + size + 1) < 0)
-@@ -100,6 +111,9 @@ int printbuf_memset(struct printbuf *pb, int offset, int charvalue, int len)
- 
- 	if (offset == -1)
- 		offset = pb->bpos;
-+	/* Prevent signed integer overflows with large buffers. */
-+	if (len > INT_MAX - offset)
-+		return -1;
- 	size_needed = offset + len;
- 	if (pb->size < size_needed)
- 	{
-diff --git a/tests/test4.c b/tests/test4.c
-index bd964ec789..288cec1792 100644
---- a/tests/test4.c
-+++ b/tests/test4.c
-@@ -3,12 +3,15 @@
-  */
- 
- #include "config.h"
-+#include <assert.h>
- #include <stdio.h>
-+#include <stdlib.h>
- #include <string.h>
- 
- #include "json_inttypes.h"
- #include "json_object.h"
- #include "json_tokener.h"
-+#include "snprintf_compat.h"
- 
- void print_hex(const char *s)
- {
-@@ -24,6 +27,29 @@ void print_hex(const char *s)
- 	putchar('\n');
- }
- 
-+static void test_lot_of_adds(void);
-+static void test_lot_of_adds()
-+{
-+	int ii;
-+	char key[50];
-+	json_object *jobj = json_object_new_object();
-+	assert(jobj != NULL);
-+	for (ii = 0; ii < 500; ii++)
-+	{
-+		snprintf(key, sizeof(key), "k%d", ii);
-+		json_object *iobj = json_object_new_int(ii);
-+		assert(iobj != NULL);
-+		if (json_object_object_add(jobj, key, iobj))
-+		{
-+			fprintf(stderr, "FAILED to add object #%d\n", ii);
-+			abort();
-+		}
-+	}
-+	printf("%s\n", json_object_to_json_string(jobj));
-+	assert(json_object_object_length(jobj) == 500);
-+	json_object_put(jobj);
-+}
-+
- int main(void)
- {
- 	const char *input = "\"\\ud840\\udd26,\\ud840\\udd27,\\ud800\\udd26,\\ud800\\udd27\"";
-@@ -52,5 +78,8 @@ int main(void)
- 		retval = 1;
- 	}
- 	json_object_put(parse_result);
-+
-+	test_lot_of_adds();
-+
- 	return retval;
- }
-diff --git a/tests/test4.expected b/tests/test4.expected
-index 68d4336d90..cb2744012b 100644
---- a/tests/test4.expected
-+++ b/tests/test4.expected
-@@ -1,3 +1,4 @@
- input: "\ud840\udd26,\ud840\udd27,\ud800\udd26,\ud800\udd27"
- JSON parse result is correct: 𠄦,𠄧,𐄦,𐄧
- PASS
-+{ "k0": 0, "k1": 1, "k2": 2, "k3": 3, "k4": 4, "k5": 5, "k6": 6, "k7": 7, "k8": 8, "k9": 9, "k10": 10, "k11": 11, "k12": 12, "k13": 13, "k14": 14, "k15": 15, "k16": 16, "k17": 17, "k18": 18, "k19": 19, "k20": 20, "k21": 21, "k22": 22, "k23": 23, "k24": 24, "k25": 25, "k26": 26, "k27": 27, "k28": 28, "k29": 29, "k30": 30, "k31": 31, "k32": 32, "k33": 33, "k34": 34, "k35": 35, "k36": 36, "k37": 37, "k38": 38, "k39": 39, "k40": 40, "k41": 41, "k42": 42, "k43": 43, "k44": 44, "k45": 45, "k46": 46, "k47": 47, "k48": 48, "k49": 49, "k50": 50, "k51": 51, "k52": 52, "k53": 53, "k54": 54, "k55": 55, "k56": 56, "k57": 57, "k58": 58, "k59": 59, "k60": 60, "k61": 61, "k62": 62, "k63": 63, "k64": 64, "k65": 65, "k66": 66, "k67": 67, "k68": 68, "k69": 69, "k70": 70, "k71": 71, "k72": 72, "k73": 73, "k74": 74, "k75": 75, "k76": 76, "k77": 77, "k78": 78, "k79": 79, "k80": 80, "k81": 81, "k82": 82, "k83": 83, "k84": 84, "k85": 85, "k86": 86, "k87": 87, "k88": 88, "k89": 89, "k90": 90, "k91": 91, "k92": 92, "k93": 93, "k94": 94, "k95": 95, "k96": 96, "k97": 97, "k98": 98, "k99": 99, "k100": 100, "k101": 101, "k102": 102, "k103": 103, "k104": 104, "k105": 105, "k106": 106, "k107": 107, "k108": 108, "k109": 109, "k110": 110, "k111": 111, "k112": 112, "k113": 113, "k114": 114, "k115": 115, "k116": 116, "k117": 117, "k118": 118, "k119": 119, "k120": 120, "k121": 121, "k122": 122, "k123": 123, "k124": 124, "k125": 125, "k126": 126, "k127": 127, "k128": 128, "k129": 129, "k130": 130, "k131": 131, "k132": 132, "k133": 133, "k134": 134, "k135": 135, "k136": 136, "k137": 137, "k138": 138, "k139": 139, "k140": 140, "k141": 141, "k142": 142, "k143": 143, "k144": 144, "k145": 145, "k146": 146, "k147": 147, "k148": 148, "k149": 149, "k150": 150, "k151": 151, "k152": 152, "k153": 153, "k154": 154, "k155": 155, "k156": 156, "k157": 157, "k158": 158, "k159": 159, "k160": 160, "k161": 161, "k162": 162, "k163": 163, "k164": 164, "k165": 165, "k166": 166, "k167": 167, "k168": 168, "k169": 169, "k170": 170, "k171": 171, "k172": 172, "k173": 173, "k174": 174, "k175": 175, "k176": 176, "k177": 177, "k178": 178, "k179": 179, "k180": 180, "k181": 181, "k182": 182, "k183": 183, "k184": 184, "k185": 185, "k186": 186, "k187": 187, "k188": 188, "k189": 189, "k190": 190, "k191": 191, "k192": 192, "k193": 193, "k194": 194, "k195": 195, "k196": 196, "k197": 197, "k198": 198, "k199": 199, "k200": 200, "k201": 201, "k202": 202, "k203": 203, "k204": 204, "k205": 205, "k206": 206, "k207": 207, "k208": 208, "k209": 209, "k210": 210, "k211": 211, "k212": 212, "k213": 213, "k214": 214, "k215": 215, "k216": 216, "k217": 217, "k218": 218, "k219": 219, "k220": 220, "k221": 221, "k222": 222, "k223": 223, "k224": 224, "k225": 225, "k226": 226, "k227": 227, "k228": 228, "k229": 229, "k230": 230, "k231": 231, "k232": 232, "k233": 233, "k234": 234, "k235": 235, "k236": 236, "k237": 237, "k238": 238, "k239": 239, "k240": 240, "k241": 241, "k242": 242, "k243": 243, "k244": 244, "k245": 245, "k246": 246, "k247": 247, "k248": 248, "k249": 249, "k250": 250, "k251": 251, "k252": 252, "k253": 253, "k254": 254, "k255": 255, "k256": 256, "k257": 257, "k258": 258, "k259": 259, "k260": 260, "k261": 261, "k262": 262, "k263": 263, "k264": 264, "k265": 265, "k266": 266, "k267": 267, "k268": 268, "k269": 269, "k270": 270, "k271": 271, "k272": 272, "k273": 273, "k274": 274, "k275": 275, "k276": 276, "k277": 277, "k278": 278, "k279": 279, "k280": 280, "k281": 281, "k282": 282, "k283": 283, "k284": 284, "k285": 285, "k286": 286, "k287": 287, "k288": 288, "k289": 289, "k290": 290, "k291": 291, "k292": 292, "k293": 293, "k294": 294, "k295": 295, "k296": 296, "k297": 297, "k298": 298, "k299": 299, "k300": 300, "k301": 301, "k302": 302, "k303": 303, "k304": 304, "k305": 305, "k306": 306, "k307": 307, "k308": 308, "k309": 309, "k310": 310, "k311": 311, "k312": 312, "k313": 313, "k314": 314, "k315": 315, "k316": 316, "k317": 317, "k318": 318, "k319": 319, "k320": 320, "k321": 321, "k322": 322, "k323": 323, "k324": 324, "k325": 325, "k326": 326, "k327": 327, "k328": 328, "k329": 329, "k330": 330, "k331": 331, "k332": 332, "k333": 333, "k334": 334, "k335": 335, "k336": 336, "k337": 337, "k338": 338, "k339": 339, "k340": 340, "k341": 341, "k342": 342, "k343": 343, "k344": 344, "k345": 345, "k346": 346, "k347": 347, "k348": 348, "k349": 349, "k350": 350, "k351": 351, "k352": 352, "k353": 353, "k354": 354, "k355": 355, "k356": 356, "k357": 357, "k358": 358, "k359": 359, "k360": 360, "k361": 361, "k362": 362, "k363": 363, "k364": 364, "k365": 365, "k366": 366, "k367": 367, "k368": 368, "k369": 369, "k370": 370, "k371": 371, "k372": 372, "k373": 373, "k374": 374, "k375": 375, "k376": 376, "k377": 377, "k378": 378, "k379": 379, "k380": 380, "k381": 381, "k382": 382, "k383": 383, "k384": 384, "k385": 385, "k386": 386, "k387": 387, "k388": 388, "k389": 389, "k390": 390, "k391": 391, "k392": 392, "k393": 393, "k394": 394, "k395": 395, "k396": 396, "k397": 397, "k398": 398, "k399": 399, "k400": 400, "k401": 401, "k402": 402, "k403": 403, "k404": 404, "k405": 405, "k406": 406, "k407": 407, "k408": 408, "k409": 409, "k410": 410, "k411": 411, "k412": 412, "k413": 413, "k414": 414, "k415": 415, "k416": 416, "k417": 417, "k418": 418, "k419": 419, "k420": 420, "k421": 421, "k422": 422, "k423": 423, "k424": 424, "k425": 425, "k426": 426, "k427": 427, "k428": 428, "k429": 429, "k430": 430, "k431": 431, "k432": 432, "k433": 433, "k434": 434, "k435": 435, "k436": 436, "k437": 437, "k438": 438, "k439": 439, "k440": 440, "k441": 441, "k442": 442, "k443": 443, "k444": 444, "k445": 445, "k446": 446, "k447": 447, "k448": 448, "k449": 449, "k450": 450, "k451": 451, "k452": 452, "k453": 453, "k454": 454, "k455": 455, "k456": 456, "k457": 457, "k458": 458, "k459": 459, "k460": 460, "k461": 461, "k462": 462, "k463": 463, "k464": 464, "k465": 465, "k466": 466, "k467": 467, "k468": 468, "k469": 469, "k470": 470, "k471": 471, "k472": 472, "k473": 473, "k474": 474, "k475": 475, "k476": 476, "k477": 477, "k478": 478, "k479": 479, "k480": 480, "k481": 481, "k482": 482, "k483": 483, "k484": 484, "k485": 485, "k486": 486, "k487": 487, "k488": 488, "k489": 489, "k490": 490, "k491": 491, "k492": 492, "k493": 493, "k494": 494, "k495": 495, "k496": 496, "k497": 497, "k498": 498, "k499": 499 }
diff --git a/gnu/packages/patches/jsoncpp-pkg-config-version.patch b/gnu/packages/patches/jsoncpp-pkg-config-version.patch
new file mode 100644
index 0000000000..3983cc300c
--- /dev/null
+++ b/gnu/packages/patches/jsoncpp-pkg-config-version.patch
@@ -0,0 +1,24 @@
+Taken from upstream: https://github.com/open-source-parsers/jsoncpp/issues/1235.
+
+From ac2870298ed5b5a96a688d9df07461b31f83e906 Mon Sep 17 00:00:00 2001
+From: Derick Vigne <derickvigne@me.com>
+Date: Tue, 26 Jan 2021 14:59:12 -0500
+Subject: [PATCH] Fixed pkg-config Version
+
+---
+ pkg-config/jsoncpp.pc.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pkg-config/jsoncpp.pc.in b/pkg-config/jsoncpp.pc.in
+index 632a377f5..2a2221069 100644
+--- a/pkg-config/jsoncpp.pc.in
++++ b/pkg-config/jsoncpp.pc.in
+@@ -5,7 +5,7 @@ includedir=@includedir_for_pc_file@
+ 
+ Name: jsoncpp
+ Description: A C++ library for interacting with JSON
+-Version: @JSONCPP_VERSION@
++Version: @PROJECT_VERSION@
+ URL: https://github.com/open-source-parsers/jsoncpp
+ Libs: -L${libdir} -ljsoncpp
+ Cflags: -I${includedir}
diff --git a/gnu/packages/patches/julia-allow-parallel-build.patch b/gnu/packages/patches/julia-allow-parallel-build.patch
new file mode 100644
index 0000000000..cc1d42fee4
--- /dev/null
+++ b/gnu/packages/patches/julia-allow-parallel-build.patch
@@ -0,0 +1,32 @@
+Allow parallel tests with isolated environment.
+
+See https://github.com/JuliaLang/julia/issues/43205 and
+https://github.com/JuliaLang/julia/pull/43211.
+
+diff --git a/test/runtests.jl b/test/runtests.jl
+index 2f9cd058bb..150395e78c 100644
+--- a/test/runtests.jl
++++ b/test/runtests.jl
+@@ -4,7 +4,7 @@ using Test
+ using Distributed
+ using Dates
+ import REPL
+-using Printf: @sprintf
++using Printf: @sprintf, @printf
+ using Base: Experimental
+ 
+ include("choosetests.jl")
+@@ -83,11 +83,12 @@ prepend!(tests, linalg_tests)
+ import LinearAlgebra
+ cd(@__DIR__) do
+     n = 1
+-    if net_on
++    if net_on || haskey(ENV, "JULIA_CPU_THREADS")
+         n = min(Sys.CPU_THREADS, length(tests))
+         n > 1 && addprocs_with_testenv(n)
+         LinearAlgebra.BLAS.set_num_threads(1)
+     end
++    @printf("Number of threads: %i\n", n)
+     skipped = 0
+ 
+     @everywhere include("testdefs.jl")
diff --git a/gnu/packages/patches/ldc-bootstrap-disable-tests.patch b/gnu/packages/patches/ldc-bootstrap-disable-tests.patch
deleted file mode 100644
index d2e40b8016..0000000000
--- a/gnu/packages/patches/ldc-bootstrap-disable-tests.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-This patch fixes a failing unit test by feeding buildNormalizedPath to the
-tzdata properly.  Three other tests are disabled, one assumes /root and the
-two others use networking.  Not bad out of almost 700 tests!
-
-by Pjotr Prins <pjotr.guix@thebird.nl>
-
---- a/std/datetime.d.orig      2016-11-24 01:13:52.584495545 +0100
-+++ b/std/datetime.d   2016-11-24 01:17:09.655306728 +0100
-@@ -28081,22 +28081,24 @@
-         import std.range : retro;
-         import std.format : format;
-
--        name = strip(name);
--
-         enforce(tzDatabaseDir.exists(), new DateTimeException(format("Directory %s does not exist.", tzDatabaseDir)));
-         enforce(tzDatabaseDir.isDir, new DateTimeException(format("%s is not a directory.", tzDatabaseDir)));
-
-         version(Android)
-         {
-+            name = strip(name);
-             auto tzfileOffset = name in tzdataIndex(tzDatabaseDir);
-             enforce(tzfileOffset, new DateTimeException(format("The time zone %s is not listed.", name)));
-             string tzFilename = separate_index ? "zoneinfo.dat" : "tzdata";
-             immutable file = buildNormalizedPath(tzDatabaseDir, tzFilename);
-         }
-         else
--            immutable file = buildNormalizedPath(tzDatabaseDir, name);
-+        {
-+            auto filename = "./" ~ strip(name); // make sure the prefix is not stripped
-+            immutable file = buildNormalizedPath(tzDatabaseDir, filename);
-+        }
-
--        enforce(file.exists(), new DateTimeException(format("File %s does not exist.", file)));
-+        enforce(file.exists(), new DateTimeException(format("File %s does not exist in %s.", file, tzDatabaseDir)));
-         enforce(file.isFile, new DateTimeException(format("%s is not a file.", file)));
-
-         auto tzFile = File(file);
-diff --git a/std/path.d b/std/path.d
-index 254d8f0..b0fc04d 100644
---- a/std/path.d
-+++ b/std/path.d
-@@ -3080,8 +3080,11 @@ unittest
-         }
-         else
-         {
-+            pragma(msg, "test disabled on GNU Guix");
-+/*
-             assert(expandTilde("~root") == "/root", expandTilde("~root"));
-             assert(expandTilde("~root/") == "/root/", expandTilde("~root/"));
-+*/
-         }
-         assert(expandTilde("~Idontexist/hey") == "~Idontexist/hey");
-     }
-diff --git a/std/socket.d b/std/socket.d
-index b85d1c9..7fbf346 100644
---- a/std/socket.d
-+++ b/std/socket.d
-@@ -859,6 +862,8 @@ class InternetHost
-
- unittest
- {
-+    pragma(msg, "test disabled on GNU Guix");
-+    /*
-     InternetHost ih = new InternetHost;
-
-     ih.getHostByAddr(0x7F_00_00_01);
-@@ -889,6 +894,7 @@ unittest
-         //      writefln("aliases[%d] = %s", i, s);
-         // }
-     });
-+    */
- }
diff --git a/gnu/packages/patches/ldc-disable-phobos-tests.patch b/gnu/packages/patches/ldc-disable-phobos-tests.patch
deleted file mode 100644
index f8a9743d59..0000000000
--- a/gnu/packages/patches/ldc-disable-phobos-tests.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/std/socket.d b/std/socket.d
-index 111cd17..6d23da9 100644
---- a/std/socket.d
-+++ b/std/socket.d
-@@ -448,7 +448,7 @@ class Protocol
- // Skip this test on Android because getprotobyname/number are
- // unimplemented in bionic.
- version(CRuntime_Bionic) {} else
--@safe unittest
-+@safe version(hasNetwork) unittest
- {
-     // import std.stdio : writefln;
-     softUnittest({
-@@ -770,7 +770,7 @@ class InternetHost
- }
- 
- ///
--@safe unittest
-+@safe version(hasNetwork) unittest
- {
-     InternetHost ih = new InternetHost;
- 
diff --git a/gnu/packages/patches/lib2geom-fix-tests.patch b/gnu/packages/patches/lib2geom-fix-tests.patch
deleted file mode 100644
index 47e8f6e2ec..0000000000
--- a/gnu/packages/patches/lib2geom-fix-tests.patch
+++ /dev/null
@@ -1,192 +0,0 @@
-From 3e858cc87f2f8b7dc514a8ad7709c1f47f1f4cde Mon Sep 17 00:00:00 2001
-From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-Date: Wed, 17 Jun 2020 23:20:53 -0400
-Subject: [PATCH] tests: Fix tests on non-x86_64 platforms.
-
-On platform other than x86_64 such as aarch64-linux or i686-linux,
-some double comparisons would fail.
-
-See <http://issues.guix.gnu.org/41827>.
-
-* tests/bezier-test.cpp: (Casteljau): Replace EXPECT_EQ by
-EXPECT_near.
-(Subdivide): Replace EXPECT_EQ by EXPECT_DOUBLE_EQ.
-(Portion): Replace EXPECT_EQ by EXPECT_near.
-* tests/ellipse-test.cpp (BezierIntersection): Lower error tolerance
-from 6e-13 to 6e-12.
-(LineIntersection): Replace EXPECT_DOUBLE_EQ by EXPECT_NEAR.
-* tests/line-test.cpp (Reflection): Replace EXPECT_FLOAT_EQ BY
-EXPECT_near.
-(Coefficients): Skip test.
-* tests/parallelogram-test.cpp (area): Replace EXPECT_EQ by
-EXPECT_DOUBLE_EQ.
----
- tests/bezier-test.cpp        | 31 +++++++++++++++++--------------
- tests/ellipse-test.cpp       | 11 ++++++-----
- tests/line-test.cpp          | 11 +++++++----
- tests/parallelogram-test.cpp |  8 ++++----
- 4 files changed, 34 insertions(+), 27 deletions(-)
-
-diff --git a/tests/bezier-test.cpp b/tests/bezier-test.cpp
-index 4054a654..46209f40 100644
---- a/tests/bezier-test.cpp
-+++ b/tests/bezier-test.cpp
-@@ -152,11 +152,13 @@ TEST_F(BezierTest, Casteljau) {
-         EXPECT_vector_equal(right2, right);
- 
-         double vnone = casteljau_subdivision<double>(t, &wiggle[0], NULL, NULL, wiggle.order());
--        EXPECT_EQ(vnone, vok);
-+        EXPECT_near(vnone, vok, 1e-12);
-     }
- }
- 
- TEST_F(BezierTest, Portion) {
-+    constexpr Coord eps{1e-12};
-+
-     for (unsigned i = 0; i < 10000; ++i) {
-         double from = g_random_double_range(0, 1);
-         double to = g_random_double_range(0, 1);
-@@ -165,8 +167,8 @@ TEST_F(BezierTest, Portion) {
-             Bezier result = portion(input, from, to);
- 
-             // the endpoints must correspond exactly
--            EXPECT_EQ(result.at0(), input.valueAt(from));
--            EXPECT_EQ(result.at1(), input.valueAt(to));
-+            EXPECT_near(result.at0(), input.valueAt(from), eps);
-+            EXPECT_near(result.at1(), input.valueAt(to), eps);
-         }
-     }
- }
-@@ -181,16 +183,16 @@ TEST_F(BezierTest, Subdivide) {
- 
-             // the endpoints must correspond exactly
-             // moreover, the subdivision point must be exactly equal to valueAt(t)
--            EXPECT_EQ(result.first.at0(), input.at0());
--            EXPECT_EQ(result.first.at1(), result.second.at0());
--            EXPECT_EQ(result.second.at0(), input.valueAt(t));
--            EXPECT_EQ(result.second.at1(), input.at1());
-+            EXPECT_DOUBLE_EQ(result.first.at0(), input.at0());
-+            EXPECT_DOUBLE_EQ(result.first.at1(), result.second.at0());
-+            EXPECT_DOUBLE_EQ(result.second.at0(), input.valueAt(t));
-+            EXPECT_DOUBLE_EQ(result.second.at1(), input.at1());
- 
-             // ditto for valueAt
--            EXPECT_EQ(result.first.valueAt(0), input.valueAt(0));
--            EXPECT_EQ(result.first.valueAt(1), result.second.valueAt(0));
--            EXPECT_EQ(result.second.valueAt(0), input.valueAt(t));
--            EXPECT_EQ(result.second.valueAt(1), input.valueAt(1));
-+            EXPECT_DOUBLE_EQ(result.first.valueAt(0), input.valueAt(0));
-+            EXPECT_DOUBLE_EQ(result.first.valueAt(1), result.second.valueAt(0));
-+            EXPECT_DOUBLE_EQ(result.second.valueAt(0), input.valueAt(t));
-+            EXPECT_DOUBLE_EQ(result.second.valueAt(1), input.valueAt(1));
- 
-             if (result.first.at1() != result.second.at0()) {
-                 errors.push_back(std::pair<Bezier,double>(input, t));
-@@ -271,9 +273,10 @@ TEST_F(BezierTest, Deflate) {
-     EXPECT_FLOAT_EQ(0, b.at0());
-     b = b.deflate();
-     const double rootposition = (0.5-0.25) / (1-0.25);
--    EXPECT_FLOAT_EQ(0, b.valueAt(rootposition));
-+    constexpr Coord eps{1e-12};
-+    EXPECT_near(0.0, b.valueAt(rootposition), eps);
-     b = b.subdivide(rootposition).second;
--    EXPECT_FLOAT_EQ(0, b.at0());
-+    EXPECT_near(0.0, b.at0(), eps);
- }
- 
- TEST_F(BezierTest, Roots) {
-@@ -364,7 +367,7 @@ TEST_F(BezierTest, Operators) {
-         for(int i = 0; i <= 16; i++) {
-             double t = i/16.0;
-             double b = B.valueAt(t);
--            EXPECT_FLOAT_EQ(b*b, product.valueAt(t));
-+            EXPECT_near(b*b, product.valueAt(t), 1e-12);
-         }
-     }
- }
-diff --git a/tests/ellipse-test.cpp b/tests/ellipse-test.cpp
-index 561c285a..8e4de12c 100644
---- a/tests/ellipse-test.cpp
-+++ b/tests/ellipse-test.cpp
-@@ -158,13 +158,14 @@ TEST(EllipseTest, LineIntersection) {
-     std::vector<ShapeIntersection> xs = e.intersect(l);
- 
-     ASSERT_EQ(xs.size(), 2ul);
--    EXPECT_FLOAT_EQ(xs[0].point()[X], 0);
--    EXPECT_FLOAT_EQ(xs[0].point()[Y], -2);
--    EXPECT_FLOAT_EQ(xs[1].point()[X], 9./5);
--    EXPECT_FLOAT_EQ(xs[1].point()[Y], 8./5);
- 
-     // due to numeric imprecision when evaluating Ellipse,
-     // the points may deviate by around 2e-16
-+    EXPECT_NEAR(xs[0].point()[X], 0, 1e-15);
-+    EXPECT_NEAR(xs[0].point()[Y], -2, 1e-15);
-+    EXPECT_NEAR(xs[1].point()[X], 9./5, 1e-15);
-+    EXPECT_NEAR(xs[1].point()[Y], 8./5, 1e-15);
-+
-     EXPECT_intersections_valid(e, l, xs, 1e-15);
- }
- 
-@@ -199,7 +200,7 @@ TEST(EllipseTest, BezierIntersection) {
-     std::vector<ShapeIntersection> xs = e.intersect(b);
- 
-     EXPECT_EQ(xs.size(), 2ul);
--    EXPECT_intersections_valid(e, b, xs, 6e-13);
-+    EXPECT_intersections_valid(e, b, xs, 6e-12);
- }
- 
- TEST(EllipseTest, Coefficients) {
-diff --git a/tests/line-test.cpp b/tests/line-test.cpp
-index 99546ddc..23991300 100644
---- a/tests/line-test.cpp
-+++ b/tests/line-test.cpp
-@@ -91,10 +91,12 @@ TEST(LineTest, Reflection) {
- 
-     Point testra = pa * reflecta;
-     Point testrb = pb * reflectb;
--    EXPECT_FLOAT_EQ(testra[X], ra[X]);
--    EXPECT_FLOAT_EQ(testra[Y], ra[Y]);
--    EXPECT_FLOAT_EQ(testrb[X], rb[X]);
--    EXPECT_FLOAT_EQ(testrb[Y], rb[Y]);
-+
-+    constexpr Coord eps{1e-12};
-+    EXPECT_near(testra[X], ra[X], eps);
-+    EXPECT_near(testra[Y], ra[Y], eps);
-+    EXPECT_near(testrb[X], rb[X], eps);
-+    EXPECT_near(testrb[Y], rb[Y], eps);
- }
- 
- TEST(LineTest, RotationToZero) {
-@@ -115,6 +117,7 @@ TEST(LineTest, RotationToZero) {
- }
- 
- TEST(LineTest, Coefficients) {
-+    GTEST_SKIP() << "This test fails on i686-linux and aarch64-linux";
-     std::vector<Line> lines;
-     lines.push_back(Line(Point(1e9,1e9), Point(1,1)));
-     //the case below will never work without normalizing the line
-diff --git a/tests/parallelogram-test.cpp b/tests/parallelogram-test.cpp
-index 8109eadd..70ccea13 100644
---- a/tests/parallelogram-test.cpp
-+++ b/tests/parallelogram-test.cpp
-@@ -106,13 +106,13 @@ TEST(ParallelogramTest, area)
- {
-     Rect r(2, 4, 7, 8);
-     Parallelogram p(r);
--    EXPECT_EQ(p.area(), r.area());
-+    EXPECT_DOUBLE_EQ(p.area(), r.area());
-     p *= Rotate(M_PI / 4.0); // 45°
--    EXPECT_EQ(p.area(), r.area());
-+    EXPECT_DOUBLE_EQ(p.area(), r.area());
-     p *= HShear(2);
--    EXPECT_EQ(p.area(), r.area());
-+    EXPECT_DOUBLE_EQ(p.area(), r.area());
-     p *= Scale(2);
--    EXPECT_EQ(p.area(), r.area() * 4);
-+    EXPECT_DOUBLE_EQ(p.area(), r.area() * 4);
- }
- 
- class ParallelogramTest
--- 
-2.27.0
-
diff --git a/gnu/packages/patches/libblockdev-glib-compat.patch b/gnu/packages/patches/libblockdev-glib-compat.patch
deleted file mode 100644
index bb25d5d963..0000000000
--- a/gnu/packages/patches/libblockdev-glib-compat.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-Don't use g_memdup() which is removed in newer versions of GLib.
-
-See <https://github.com/storaged-project/libblockdev/pull/623>.
-
-Taken from upstream:
-https://github.com/storaged-project/libblockdev/commit/5528baef6ccc835a06c45f9db34a2c9c3f2dd940
-
-diff --git a/src/lib/plugin_apis/vdo.api b/src/lib/plugin_apis/vdo.api
---- a/src/lib/plugin_apis/vdo.api
-+++ b/src/lib/plugin_apis/vdo.api
-@@ -170,7 +170,22 @@ void bd_vdo_stats_free (BDVDOStats *stats) {
-  * Deprecated: 2.24: Use LVM-VDO integration instead.
-  */
- BDVDOStats* bd_vdo_stats_copy (BDVDOStats *stats) {
--    return g_memdup (stats, sizeof (BDVDOStats));
-+    if (stats == NULL)
-+        return NULL;
-+
-+    BDVDOStats *new_stats = g_new0 (BDVDOStats, 1);
-+
-+    new_stats->block_size = stats->block_size;
-+    new_stats->logical_block_size = stats->logical_block_size;
-+    new_stats->physical_blocks = stats->physical_blocks;
-+    new_stats->data_blocks_used = stats->data_blocks_used;
-+    new_stats->overhead_blocks_used = stats->overhead_blocks_used;
-+    new_stats->logical_blocks_used = stats->logical_blocks_used;
-+    new_stats->used_percent = stats->used_percent;
-+    new_stats->saving_percent = stats->saving_percent;
-+    new_stats->write_amplification_ratio = stats->write_amplification_ratio;
-+
-+    return new_stats;
- }
- 
- GType bd_vdo_stats_get_type () {
-diff --git a/src/plugins/vdo.c b/src/plugins/vdo.c
---- a/src/plugins/vdo.c
-+++ b/src/plugins/vdo.c
-@@ -81,7 +81,22 @@ void bd_vdo_stats_free (BDVDOStats *stats) {
- }
- 
- BDVDOStats* bd_vdo_stats_copy (BDVDOStats *stats) {
--    return g_memdup (stats, sizeof (BDVDOStats));
-+    if (stats == NULL)
-+        return NULL;
-+
-+    BDVDOStats *new_stats = g_new0 (BDVDOStats, 1);
-+
-+    new_stats->block_size = stats->block_size;
-+    new_stats->logical_block_size = stats->logical_block_size;
-+    new_stats->physical_blocks = stats->physical_blocks;
-+    new_stats->data_blocks_used = stats->data_blocks_used;
-+    new_stats->overhead_blocks_used = stats->overhead_blocks_used;
-+    new_stats->logical_blocks_used = stats->logical_blocks_used;
-+    new_stats->used_percent = stats->used_percent;
-+    new_stats->saving_percent = stats->saving_percent;
-+    new_stats->write_amplification_ratio = stats->write_amplification_ratio;
-+
-+    return new_stats;
- }
- 
- 
diff --git a/gnu/packages/patches/libcacard-unknown-variable.patch b/gnu/packages/patches/libcacard-unknown-variable.patch
deleted file mode 100644
index 830a3ee8c0..0000000000
--- a/gnu/packages/patches/libcacard-unknown-variable.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-Fix Meson error when test dependencies are missing.
-
-Based on this upstream commit, with some adjustments to apply on 2.8.0:
-https://gitlab.freedesktop.org/spice/libcacard/-/commit/cf6121deb47e437aa566cfeb29a03da93c432394
-
-diff --git a/tests/meson.build b/tests/meson.build
-index 87945a2..baefaf5 100644
---- a/tests/meson.build
-+++ b/tests/meson.build
-@@ -9,15 +9,6 @@ modutil_dep = find_program('modutil', required: false)
- openssl_dep = find_program('openssl', required: false)
- softhsm_util_dep = find_program('softhsm2-util', required: false)
- 
--if pkcs11_tool_dep.found() and p11tool_dep.found() and modutil_dep.found() and openssl_dep.found() and softhsm_util_dep.found()
--  softhsm = custom_target(
--    'softhsm2.conf',
--    command: find_program('setup-softhsm2.sh'),
--    capture: true,
--    output: 'setup-softhsm2.log',
--  )
--endif
--
- libcacard_test = executable(
-   'libcacard',
-   ['libcacard.c', 'common.c'],
-@@ -64,9 +55,18 @@ hwtests_test = executable(
-   dependencies: [libcacard_dep],
- )
- 
--test(
--  'hwtests',
--  hwtests_test,
--  depends: [softhsm],
--  env: env,
--)
-+if pkcs11_tool_dep.found() and p11tool_dep.found() and modutil_dep.found() and openssl_dep.found() and softhsm_util_dep.found()
-+  softhsm = custom_target(
-+    'softhsm2.conf',
-+    command: find_program('setup-softhsm2.sh'),
-+    capture: true,
-+    output: 'setup-softhsm2.log',
-+  )
-+
-+  test(
-+    'hwtests',
-+    hwtests_test,
-+    depends: [softhsm],
-+    env: env,
-+  )
-+endif
diff --git a/gnu/packages/patches/libunwind-julia-fix-GCC10-fno-common.patch b/gnu/packages/patches/libunwind-julia-fix-GCC10-fno-common.patch
new file mode 100644
index 0000000000..8ef4b111e4
--- /dev/null
+++ b/gnu/packages/patches/libunwind-julia-fix-GCC10-fno-common.patch
@@ -0,0 +1,40 @@
+Fix compilation with -fno-common.
+
+Borrowed from upstream 29e17d8d2ccbca07c423e3089a6d5ae8a1c9cb6e.
+Author:     Yichao Yu <yyc1992@gmail.com>
+AuthorDate: Tue Mar 31 00:43:32 2020 -0400
+Commit:     Dave Watson <dade.watson@gmail.com>
+CommitDate: Tue Mar 31 08:06:29 2020 -0700
+
+diff --git a/src/x86/Ginit.c b/src/x86/Ginit.c
+index f6b8dc2..9550efa 100644
+--- a/src/x86/Ginit.c
++++ b/src/x86/Ginit.c
+@@ -54,13 +54,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+ 
+ # endif /* UNW_LOCAL_ONLY */
+ 
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+-       by a remote unwinder.  On ia64, this is done via a special
+-       unwind-table entry.  Perhaps something similar can be done with
+-       DWARF2 unwind info.  */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -71,7 +64,12 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+                         void *arg)
+ {
+-  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++  if (!_U_dyn_info_list_addr)
++    return -UNW_ENOINFO;
++#endif
++  *dyn_info_list_addr = _U_dyn_info_list_addr ();
+   return 0;
+ }
+ 
diff --git a/gnu/packages/patches/llvm-3.6-fix-build-with-gcc-10.patch b/gnu/packages/patches/llvm-3.6-fix-build-with-gcc-10.patch
new file mode 100644
index 0000000000..4982587d15
--- /dev/null
+++ b/gnu/packages/patches/llvm-3.6-fix-build-with-gcc-10.patch
@@ -0,0 +1,13 @@
+Adapted from https://github.com/digego/extempore/pull/322/files
+
+--- a/include/llvm/IR/ValueMap.h	2015-08-04 00:30:24.000000000 +0200
++++ b/include/llvm/IR/ValueMap.h	2018-07-14 21:09:09.769502736 +0200
+@@ -99,7 +99,7 @@
+   explicit ValueMap(const ExtraData &Data, unsigned NumInitBuckets = 64)
+       : Map(NumInitBuckets), Data(Data) {}
+
+-  bool hasMD() const { return MDMap; }
++  bool hasMD() const { return static_cast<bool>(MDMap); }
+   MDMapT &MD() {
+     if (!MDMap)
+       MDMap.reset(new MDMapT);
diff --git a/gnu/packages/patches/mariadb-CVE-2021-27928.patch b/gnu/packages/patches/mariadb-CVE-2021-27928.patch
deleted file mode 100644
index 39a023c159..0000000000
--- a/gnu/packages/patches/mariadb-CVE-2021-27928.patch
+++ /dev/null
@@ -1,642 +0,0 @@
-From 7580701e6279900fec40822952a3b874732289cf Mon Sep 17 00:00:00 2001
-From: Sergei Golubchik <serg@mariadb.org>
-Date: Thu, 18 Feb 2021 14:20:48 +0100
-Subject: [PATCH] make @@wsrep_provider and @@wsrep_notify_cmd read-only
-
-this should simplify run-time cluster management
----
- mysql-test/suite/galera/disabled.def          |  2 +
- .../galera/include/galera_load_provider.inc   | 19 --------
- .../galera/include/galera_unload_provider.inc |  3 +-
- .../suite/galera/r/galera_ist_rsync.result    |  2 +-
- .../galera/r/galera_sst_mysqldump.result      |  2 +-
- .../suite/galera/r/mysql-wsrep#33.result      |  2 +-
- .../suite/sys_vars/r/sysvars_wsrep.result     |  4 +-
- .../sys_vars/r/wsrep_notify_cmd_basic.result  | 47 -------------------
- .../sys_vars/r/wsrep_provider_basic.result    | 40 ----------------
- .../r/wsrep_provider_options_basic.result     | 46 ------------------
- .../sys_vars/t/wsrep_notify_cmd_basic.test    | 43 -----------------
- .../sys_vars/t/wsrep_provider_basic.test      | 39 ---------------
- .../t/wsrep_provider_options_basic.test       | 41 ----------------
- mysql-test/suite/wsrep/disabled.def           |  2 +
- mysql-test/suite/wsrep/r/variables.result     | 12 ++---
- mysql-test/suite/wsrep/t/variables.test       | 32 +++----------
- sql/sys_vars.cc                               |  8 ++--
- 17 files changed, 25 insertions(+), 319 deletions(-)
- delete mode 100644 mysql-test/suite/sys_vars/r/wsrep_notify_cmd_basic.result
- delete mode 100644 mysql-test/suite/sys_vars/r/wsrep_provider_basic.result
- delete mode 100644 mysql-test/suite/sys_vars/r/wsrep_provider_options_basic.result
- delete mode 100644 mysql-test/suite/sys_vars/t/wsrep_notify_cmd_basic.test
- delete mode 100644 mysql-test/suite/sys_vars/t/wsrep_provider_basic.test
- delete mode 100644 mysql-test/suite/sys_vars/t/wsrep_provider_options_basic.test
-
-diff --git a/mysql-test/suite/galera/disabled.def b/mysql-test/suite/galera/disabled.def
-index d940c702d54..83f26e81636 100644
---- a/mysql-test/suite/galera/disabled.def
-+++ b/mysql-test/suite/galera/disabled.def
-@@ -49,3 +49,5 @@ partition : MDEV-19958 Galera test failure on galera.partition
- query_cache: MDEV-15805 Test failure on galera.query_cache
- sql_log_bin : MDEV-21491 galera.sql_log_bin
- versioning_trx_id : MDEV-18590 galera.versioning_trx_id
-+galera_wsrep_provider_unset_set: wsrep_provider is read-only for security reasons
-+pxc-421: wsrep_provider is read-only for security reasons
-diff --git a/mysql-test/suite/galera/include/galera_load_provider.inc b/mysql-test/suite/galera/include/galera_load_provider.inc
-index 0f843597d9c..28010cc5b71 100644
---- a/mysql-test/suite/galera/include/galera_load_provider.inc
-+++ b/mysql-test/suite/galera/include/galera_load_provider.inc
-@@ -1,25 +1,6 @@
- --echo Loading wsrep provider ...
- 
- --disable_query_log
----eval SET GLOBAL wsrep_provider = '$wsrep_provider_orig';
--
--#
--# count occurences of successful node starts in error log
--#
--perl;
--  use strict;
--   my $test_log=$ENV{'LOG_FILE'} or die "LOG_FILE not set";
--   my $test_log_copy=$test_log . '.copy';
--   if (-e $test_log_copy) {
--      unlink $test_log_copy;
--   }
--
--EOF
----copy_file $LOG_FILE $LOG_FILE.copy
--
--#
--#  now join to the cluster
--#
- --eval SET GLOBAL wsrep_cluster_address = '$wsrep_cluster_address_orig';
- 
- --enable_query_log
-diff --git a/mysql-test/suite/galera/include/galera_unload_provider.inc b/mysql-test/suite/galera/include/galera_unload_provider.inc
-index cd841f51fbc..ed7e9bc41f0 100644
---- a/mysql-test/suite/galera/include/galera_unload_provider.inc
-+++ b/mysql-test/suite/galera/include/galera_unload_provider.inc
-@@ -1,7 +1,6 @@
- --echo Unloading wsrep provider ...
- 
- --let $wsrep_cluster_address_orig = `SELECT @@wsrep_cluster_address`
----let $wsrep_provider_orig = `SELECT @@wsrep_provider`
- --let $wsrep_provider_options_orig = `SELECT @@wsrep_provider_options`
- --let $wsrep_error_log_orig = `SELECT @@log_error`
- if(!$wsrep_log_error_orig)
-@@ -12,4 +11,4 @@ if(!$wsrep_log_error_orig)
- }
- --let LOG_FILE= $wsrep_log_error_orig
- 
--SET GLOBAL wsrep_provider = 'none';
-+SET GLOBAL wsrep_cluster_address = '';
-diff --git a/mysql-test/suite/galera/r/galera_ist_rsync.result b/mysql-test/suite/galera/r/galera_ist_rsync.result
-index 13f7d898a59..70a87c73df7 100644
---- a/mysql-test/suite/galera/r/galera_ist_rsync.result
-+++ b/mysql-test/suite/galera/r/galera_ist_rsync.result
-@@ -23,7 +23,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
- INSERT INTO t1 VALUES ('node2_committed_before');
- COMMIT;
- Unloading wsrep provider ...
--SET GLOBAL wsrep_provider = 'none';
-+SET GLOBAL wsrep_cluster_address = '';
- connection node_1;
- SET AUTOCOMMIT=OFF;
- START TRANSACTION;
-diff --git a/mysql-test/suite/galera/r/galera_sst_mysqldump.result b/mysql-test/suite/galera/r/galera_sst_mysqldump.result
-index 4ed679ba477..145b3a94775 100644
---- a/mysql-test/suite/galera/r/galera_sst_mysqldump.result
-+++ b/mysql-test/suite/galera/r/galera_sst_mysqldump.result
-@@ -30,7 +30,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
- INSERT INTO t1 VALUES ('node2_committed_before');
- COMMIT;
- Unloading wsrep provider ...
--SET GLOBAL wsrep_provider = 'none';
-+SET GLOBAL wsrep_cluster_address = '';
- connection node_1;
- SET AUTOCOMMIT=OFF;
- START TRANSACTION;
-diff --git a/mysql-test/suite/galera/r/mysql-wsrep#33.result b/mysql-test/suite/galera/r/mysql-wsrep#33.result
-index fb0b593cc96..45c6a3f660a 100644
---- a/mysql-test/suite/galera/r/mysql-wsrep#33.result
-+++ b/mysql-test/suite/galera/r/mysql-wsrep#33.result
-@@ -32,7 +32,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
- INSERT INTO t1 VALUES ('node2_committed_before');
- COMMIT;
- Unloading wsrep provider ...
--SET GLOBAL wsrep_provider = 'none';
-+SET GLOBAL wsrep_cluster_address = '';
- connection node_1;
- SET AUTOCOMMIT=OFF;
- START TRANSACTION;
-diff --git a/mysql-test/suite/sys_vars/r/sysvars_wsrep.result b/mysql-test/suite/sys_vars/r/sysvars_wsrep.result
-index 4b6abf85434..f73bfbd13e7 100644
---- a/mysql-test/suite/sys_vars/r/sysvars_wsrep.result
-+++ b/mysql-test/suite/sys_vars/r/sysvars_wsrep.result
-@@ -403,7 +403,7 @@ NUMERIC_MIN_VALUE	NULL
- NUMERIC_MAX_VALUE	NULL
- NUMERIC_BLOCK_SIZE	NULL
- ENUM_VALUE_LIST	NULL
--READ_ONLY	NO
-+READ_ONLY	YES
- COMMAND_LINE_ARGUMENT	REQUIRED
- GLOBAL_VALUE_PATH	NULL
- VARIABLE_NAME	WSREP_ON
-@@ -463,7 +463,7 @@ NUMERIC_MIN_VALUE	NULL
- NUMERIC_MAX_VALUE	NULL
- NUMERIC_BLOCK_SIZE	NULL
- ENUM_VALUE_LIST	NULL
--READ_ONLY	NO
-+READ_ONLY	YES
- COMMAND_LINE_ARGUMENT	REQUIRED
- GLOBAL_VALUE_PATH	NULL
- VARIABLE_NAME	WSREP_PROVIDER_OPTIONS
-diff --git a/mysql-test/suite/sys_vars/r/wsrep_notify_cmd_basic.result b/mysql-test/suite/sys_vars/r/wsrep_notify_cmd_basic.result
-deleted file mode 100644
-index 056ff8c817b..00000000000
---- a/mysql-test/suite/sys_vars/r/wsrep_notify_cmd_basic.result
-+++ /dev/null
-@@ -1,47 +0,0 @@
--#
--# wsrep_notify_cmd
--#
--call mtr.add_suppression("WSREP: Failed to get provider options");
--# save the initial value
--SET @wsrep_notify_cmd_global_saved = @@global.wsrep_notify_cmd;
--# default
--SELECT @@global.wsrep_notify_cmd;
--@@global.wsrep_notify_cmd
--
--
--# scope
--SELECT @@session.wsrep_notify_cmd;
--ERROR HY000: Variable 'wsrep_notify_cmd' is a GLOBAL variable
--SET @@global.wsrep_notify_cmd='notify_cmd';
--SELECT @@global.wsrep_notify_cmd;
--@@global.wsrep_notify_cmd
--notify_cmd
--
--# valid values
--SET @@global.wsrep_notify_cmd='command';
--SELECT @@global.wsrep_notify_cmd;
--@@global.wsrep_notify_cmd
--command
--SET @@global.wsrep_notify_cmd='hyphenated-command';
--SELECT @@global.wsrep_notify_cmd;
--@@global.wsrep_notify_cmd
--hyphenated-command
--SET @@global.wsrep_notify_cmd=default;
--SELECT @@global.wsrep_notify_cmd;
--@@global.wsrep_notify_cmd
--
--SET @@global.wsrep_notify_cmd=NULL;
--SELECT @@global.wsrep_notify_cmd;
--@@global.wsrep_notify_cmd
--NULL
--
--# invalid values
--SET @@global.wsrep_notify_cmd=1;
--ERROR 42000: Incorrect argument type to variable 'wsrep_notify_cmd'
--SELECT @@global.wsrep_notify_cmd;
--@@global.wsrep_notify_cmd
--NULL
--
--# restore the initial value
--SET @@global.wsrep_notify_cmd = @wsrep_notify_cmd_global_saved;
--# End of test
-diff --git a/mysql-test/suite/sys_vars/r/wsrep_provider_basic.result b/mysql-test/suite/sys_vars/r/wsrep_provider_basic.result
-deleted file mode 100644
-index 3e4ac8ca883..00000000000
---- a/mysql-test/suite/sys_vars/r/wsrep_provider_basic.result
-+++ /dev/null
-@@ -1,40 +0,0 @@
--#
--# wsrep_provider
--#
--# save the initial value
--SET @wsrep_provider_global_saved = @@global.wsrep_provider;
--# default
--SELECT @@global.wsrep_provider;
--@@global.wsrep_provider
--none
--
--# scope
--SELECT @@session.wsrep_provider;
--ERROR HY000: Variable 'wsrep_provider' is a GLOBAL variable
--SELECT @@global.wsrep_provider;
--@@global.wsrep_provider
--none
--
--# valid values
--SET @@global.wsrep_provider=default;
--SELECT @@global.wsrep_provider;
--@@global.wsrep_provider
--none
--
--# invalid values
--SET @@global.wsrep_provider='/invalid/libgalera_smm.so';
--ERROR 42000: Variable 'wsrep_provider' can't be set to the value of '/invalid/libgalera_smm.so'
--SET @@global.wsrep_provider=NULL;
--ERROR 42000: Variable 'wsrep_provider' can't be set to the value of 'NULL'
--SELECT @@global.wsrep_provider;
--@@global.wsrep_provider
--none
--SET @@global.wsrep_provider=1;
--ERROR 42000: Incorrect argument type to variable 'wsrep_provider'
--SELECT @@global.wsrep_provider;
--@@global.wsrep_provider
--none
--
--# restore the initial value
--SET @@global.wsrep_provider = @wsrep_provider_global_saved;
--# End of test
-diff --git a/mysql-test/suite/sys_vars/r/wsrep_provider_options_basic.result b/mysql-test/suite/sys_vars/r/wsrep_provider_options_basic.result
-deleted file mode 100644
-index 15949a14e39..00000000000
---- a/mysql-test/suite/sys_vars/r/wsrep_provider_options_basic.result
-+++ /dev/null
-@@ -1,46 +0,0 @@
--#
--# wsrep_provider_options
--#
--call mtr.add_suppression("WSREP: Failed to get provider options");
--# default
--SELECT @@global.wsrep_provider_options;
--@@global.wsrep_provider_options
--
--
--# scope
--SELECT @@session.wsrep_provider_options;
--ERROR HY000: Variable 'wsrep_provider_options' is a GLOBAL variable
--SET @@global.wsrep_provider_options='option1';
--SELECT @@global.wsrep_provider_options;
--@@global.wsrep_provider_options
--
--
--# valid values
--SET @@global.wsrep_provider_options='name1=value1;name2=value2';
--ERROR HY000: WSREP (galera) not started
--SELECT @@global.wsrep_provider_options;
--@@global.wsrep_provider_options
--
--SET @@global.wsrep_provider_options='hyphenated-name:value';
--ERROR HY000: WSREP (galera) not started
--SELECT @@global.wsrep_provider_options;
--@@global.wsrep_provider_options
--
--SET @@global.wsrep_provider_options=default;
--ERROR HY000: WSREP (galera) not started
--SELECT @@global.wsrep_provider_options;
--@@global.wsrep_provider_options
--
--
--# invalid values
--SET @@global.wsrep_provider_options=1;
--ERROR 42000: Incorrect argument type to variable 'wsrep_provider_options'
--SELECT @@global.wsrep_provider_options;
--@@global.wsrep_provider_options
--
--SET @@global.wsrep_provider_options=NULL;
--Got one of the listed errors
--SELECT @@global.wsrep_provider_options;
--@@global.wsrep_provider_options
--
--# End of test
-diff --git a/mysql-test/suite/sys_vars/t/wsrep_notify_cmd_basic.test b/mysql-test/suite/sys_vars/t/wsrep_notify_cmd_basic.test
-deleted file mode 100644
-index 6d1535ba148..00000000000
---- a/mysql-test/suite/sys_vars/t/wsrep_notify_cmd_basic.test
-+++ /dev/null
-@@ -1,43 +0,0 @@
----source include/have_wsrep.inc
--
----echo #
----echo # wsrep_notify_cmd
----echo #
--
--call mtr.add_suppression("WSREP: Failed to get provider options");
--
----echo # save the initial value
--SET @wsrep_notify_cmd_global_saved = @@global.wsrep_notify_cmd;
--
----echo # default
--SELECT @@global.wsrep_notify_cmd;
--
----echo
----echo # scope
----error ER_INCORRECT_GLOBAL_LOCAL_VAR
--SELECT @@session.wsrep_notify_cmd;
--SET @@global.wsrep_notify_cmd='notify_cmd';
--SELECT @@global.wsrep_notify_cmd;
--
----echo
----echo # valid values
--SET @@global.wsrep_notify_cmd='command';
--SELECT @@global.wsrep_notify_cmd;
--SET @@global.wsrep_notify_cmd='hyphenated-command';
--SELECT @@global.wsrep_notify_cmd;
--SET @@global.wsrep_notify_cmd=default;
--SELECT @@global.wsrep_notify_cmd;
--SET @@global.wsrep_notify_cmd=NULL;
--SELECT @@global.wsrep_notify_cmd;
--
----echo
----echo # invalid values
----error ER_WRONG_TYPE_FOR_VAR
--SET @@global.wsrep_notify_cmd=1;
--SELECT @@global.wsrep_notify_cmd;
--
----echo
----echo # restore the initial value
--SET @@global.wsrep_notify_cmd = @wsrep_notify_cmd_global_saved;
--
----echo # End of test
-diff --git a/mysql-test/suite/sys_vars/t/wsrep_provider_basic.test b/mysql-test/suite/sys_vars/t/wsrep_provider_basic.test
-deleted file mode 100644
-index 1190ab41bb0..00000000000
---- a/mysql-test/suite/sys_vars/t/wsrep_provider_basic.test
-+++ /dev/null
-@@ -1,39 +0,0 @@
----source include/have_wsrep.inc
--
----echo #
----echo # wsrep_provider
----echo #
--
----echo # save the initial value
--SET @wsrep_provider_global_saved = @@global.wsrep_provider;
--
----echo # default
--SELECT @@global.wsrep_provider;
--
----echo
----echo # scope
----error ER_INCORRECT_GLOBAL_LOCAL_VAR
--SELECT @@session.wsrep_provider;
--SELECT @@global.wsrep_provider;
--
----echo
----echo # valid values
--SET @@global.wsrep_provider=default;
--SELECT @@global.wsrep_provider;
--
----echo
----echo # invalid values
----error ER_WRONG_VALUE_FOR_VAR
--SET @@global.wsrep_provider='/invalid/libgalera_smm.so';
----error ER_WRONG_VALUE_FOR_VAR
--SET @@global.wsrep_provider=NULL;
--SELECT @@global.wsrep_provider;
----error ER_WRONG_TYPE_FOR_VAR
--SET @@global.wsrep_provider=1;
--SELECT @@global.wsrep_provider;
--
----echo
----echo # restore the initial value
--SET @@global.wsrep_provider = @wsrep_provider_global_saved;
--
----echo # End of test
-diff --git a/mysql-test/suite/sys_vars/t/wsrep_provider_options_basic.test b/mysql-test/suite/sys_vars/t/wsrep_provider_options_basic.test
-deleted file mode 100644
-index 6eb3a94b6a4..00000000000
---- a/mysql-test/suite/sys_vars/t/wsrep_provider_options_basic.test
-+++ /dev/null
-@@ -1,41 +0,0 @@
----source include/have_wsrep.inc
--
----echo #
----echo # wsrep_provider_options
----echo #
--
--call mtr.add_suppression("WSREP: Failed to get provider options");
--
----echo # default
--SELECT @@global.wsrep_provider_options;
--
----echo
----echo # scope
----error ER_INCORRECT_GLOBAL_LOCAL_VAR
--SELECT @@session.wsrep_provider_options;
----error 0,ER_WRONG_ARGUMENTS
--SET @@global.wsrep_provider_options='option1';
--SELECT @@global.wsrep_provider_options;
--
----echo
----echo # valid values
----error ER_WRONG_ARGUMENTS
--SET @@global.wsrep_provider_options='name1=value1;name2=value2';
--SELECT @@global.wsrep_provider_options;
----error ER_WRONG_ARGUMENTS
--SET @@global.wsrep_provider_options='hyphenated-name:value';
--SELECT @@global.wsrep_provider_options;
----error ER_WRONG_ARGUMENTS
--SET @@global.wsrep_provider_options=default;
--SELECT @@global.wsrep_provider_options;
--
----echo
----echo # invalid values
----error ER_WRONG_TYPE_FOR_VAR
--SET @@global.wsrep_provider_options=1;
--SELECT @@global.wsrep_provider_options;
----error ER_WRONG_ARGUMENTS,ER_WRONG_ARGUMENTS
--SET @@global.wsrep_provider_options=NULL;
--SELECT @@global.wsrep_provider_options;
--
----echo # End of test
-diff --git a/mysql-test/suite/wsrep/disabled.def b/mysql-test/suite/wsrep/disabled.def
-index 11577bfe8b0..3d204db6945 100644
---- a/mysql-test/suite/wsrep/disabled.def
-+++ b/mysql-test/suite/wsrep/disabled.def
-@@ -10,3 +10,5 @@
- #
- ##############################################################################
- 
-+
-+mdev_6832: wsrep_provider is read-only for security reasons
-diff --git a/mysql-test/suite/wsrep/r/variables.result b/mysql-test/suite/wsrep/r/variables.result
-index a9988fd1628..e57440125ee 100644
---- a/mysql-test/suite/wsrep/r/variables.result
-+++ b/mysql-test/suite/wsrep/r/variables.result
-@@ -14,7 +14,6 @@ SET SESSION wsrep_replicate_myisam= ON;
- ERROR HY000: Variable 'wsrep_replicate_myisam' is a GLOBAL variable and should be set with SET GLOBAL
- SET GLOBAL wsrep_replicate_myisam= ON;
- SET GLOBAL wsrep_replicate_myisam= OFF;
--SET GLOBAL wsrep_provider=none;
- #
- # MDEV#5790: SHOW GLOBAL STATUS LIKE does not show the correct list of
- # variables when using "_"
-@@ -151,7 +150,6 @@ wsrep_local_state_comment	#
- # Should show nothing.
- SHOW STATUS LIKE 'x';
- Variable_name	Value
--SET GLOBAL wsrep_provider=none;
- 
- SHOW STATUS LIKE 'wsrep_local_state_uuid';
- Variable_name	Value
-@@ -160,7 +158,6 @@ wsrep_local_state_uuid	#
- SHOW STATUS LIKE 'wsrep_last_committed';
- Variable_name	Value
- wsrep_last_committed	#
--SET GLOBAL wsrep_provider=none;
- 
- #
- # MDEV#6206: wsrep_slave_threads subtracts from max_connections
-@@ -174,7 +171,7 @@ SELECT @@global.wsrep_slave_threads;
- 1
- SELECT @@global.wsrep_cluster_address;
- @@global.wsrep_cluster_address
--
-+gcomm://
- SELECT @@global.wsrep_on;
- @@global.wsrep_on
- 1
-@@ -183,14 +180,14 @@ Variable_name	Value
- Threads_connected	1
- SHOW STATUS LIKE 'wsrep_thread_count';
- Variable_name	Value
--wsrep_thread_count	0
-+wsrep_thread_count	2
- 
- SELECT @@global.wsrep_provider;
- @@global.wsrep_provider
- libgalera_smm.so
- SELECT @@global.wsrep_cluster_address;
- @@global.wsrep_cluster_address
--
-+gcomm://
- SELECT @@global.wsrep_on;
- @@global.wsrep_on
- 1
-@@ -199,11 +196,10 @@ Variable_name	Value
- Threads_connected	1
- SHOW STATUS LIKE 'wsrep_thread_count';
- Variable_name	Value
--wsrep_thread_count	0
-+wsrep_thread_count	2
- 
- # Setting wsrep_cluster_address triggers the creation of
- # applier/rollbacker threads.
--SET GLOBAL wsrep_cluster_address= 'gcomm://';
- # Wait for applier thread to get created 1.
- # Wait for applier thread to get created 2.
- SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
-diff --git a/mysql-test/suite/wsrep/t/variables.test b/mysql-test/suite/wsrep/t/variables.test
-index f2c3a0a3b78..fd352b61a3a 100644
---- a/mysql-test/suite/wsrep/t/variables.test
-+++ b/mysql-test/suite/wsrep/t/variables.test
-@@ -23,7 +23,7 @@ SET GLOBAL wsrep_replicate_myisam= ON;
- 
- # Reset it back.
- SET GLOBAL wsrep_replicate_myisam= OFF;
--SET GLOBAL wsrep_provider=none;
-+#SET GLOBAL wsrep_provider=none;
- 
- --echo #
- --echo # MDEV#5790: SHOW GLOBAL STATUS LIKE does not show the correct list of
-@@ -32,9 +32,6 @@ SET GLOBAL wsrep_provider=none;
- 
- CALL mtr.add_suppression("WSREP: Could not open saved state file for reading.*");
- 
----disable_query_log
--eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
----enable_query_log
- 
- --replace_column 2 #
- SHOW GLOBAL STATUS LIKE 'wsrep%';
-@@ -50,11 +47,9 @@ SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';
- SHOW STATUS LIKE 'x';
- 
- # Reset it back.
--SET GLOBAL wsrep_provider=none;
-+#SET GLOBAL wsrep_provider=none;
- 
----disable_query_log
--eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
----enable_query_log
-+#evalp SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
- 
- # The following 2 variables are used by mariabackup
- # SST.
-@@ -66,7 +61,7 @@ SHOW STATUS LIKE 'wsrep_local_state_uuid';
- SHOW STATUS LIKE 'wsrep_last_committed';
- 
- # Reset it back.
--SET GLOBAL wsrep_provider=none;
-+#SET GLOBAL wsrep_provider=none;
- 
- --echo
- --echo #
-@@ -74,9 +69,7 @@ SET GLOBAL wsrep_provider=none;
- --echo #
- call mtr.add_suppression("WSREP: Failed to get provider options");
- 
----disable_query_log
--eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
----enable_query_log
-+#evalp SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
- 
- --replace_regex /.*libgalera_smm.*/libgalera_smm.so/
- SELECT @@global.wsrep_provider;
-@@ -87,9 +80,7 @@ SHOW STATUS LIKE 'threads_connected';
- SHOW STATUS LIKE 'wsrep_thread_count';
- --echo
- 
----disable_query_log
--eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
----enable_query_log
-+#evalp SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
- 
- --replace_regex /.*libgalera_smm.*/libgalera_smm.so/
- SELECT @@global.wsrep_provider;
-@@ -101,7 +92,7 @@ SHOW STATUS LIKE 'wsrep_thread_count';
- 
- --echo # Setting wsrep_cluster_address triggers the creation of
- --echo # applier/rollbacker threads.
--SET GLOBAL wsrep_cluster_address= 'gcomm://';
-+#SET GLOBAL wsrep_cluster_address= 'gcomm://';
- 
- --echo # Wait for applier thread to get created 1.
- --let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
-@@ -162,15 +153,6 @@ SET @@global.wsrep_sst_auth= NULL;
- SELECT @@global.wsrep_sst_auth;
- SET @@global.wsrep_sst_auth= @wsrep_sst_auth_saved;
- 
--# Reset (for mtr internal checks)
--
----disable_query_log
--SET GLOBAL wsrep_slave_threads= @wsrep_slave_threads_saved;
--eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
--SET GLOBAL wsrep_cluster_address= @wsrep_cluster_address_saved;
--SET GLOBAL wsrep_provider_options= @wsrep_provider_options_saved;
----enable_query_log
--
- --source include/galera_wait_ready.inc
- 
- --echo # End of test.
-diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc
-index 64040243df0..8c67a4d432a 100644
---- a/sql/sys_vars.cc
-+++ b/sql/sys_vars.cc
-@@ -5669,8 +5669,8 @@ static Sys_var_tz Sys_time_zone(
- 
- static Sys_var_charptr_fscs Sys_wsrep_provider(
-        "wsrep_provider", "Path to replication provider library",
--       PREALLOCATED GLOBAL_VAR(wsrep_provider), CMD_LINE(REQUIRED_ARG),
--       DEFAULT(WSREP_NONE),
-+       PREALLOCATED READ_ONLY GLOBAL_VAR(wsrep_provider), CMD_LINE(REQUIRED_ARG),
-+       DEFAULT(WSREP_NONE),
-        NO_MUTEX_GUARD, NOT_IN_BINLOG,
-        ON_CHECK(wsrep_provider_check), ON_UPDATE(wsrep_provider_update));
- 
-@@ -5886,8 +5886,8 @@ static Sys_var_ulong Sys_wsrep_max_ws_rows (
- 
- static Sys_var_charptr Sys_wsrep_notify_cmd(
-        "wsrep_notify_cmd", "",
--       GLOBAL_VAR(wsrep_notify_cmd),CMD_LINE(REQUIRED_ARG),
--       DEFAULT(""));
-+       READ_ONLY GLOBAL_VAR(wsrep_notify_cmd), CMD_LINE(REQUIRED_ARG),
-+       DEFAULT(""));
- 
- static Sys_var_mybool Sys_wsrep_certify_nonPK(
-        "wsrep_certify_nonPK", "Certify tables with no primary key",
--- 
-2.31.0
-
diff --git a/gnu/packages/patches/mariadb-cmake-compat.patch b/gnu/packages/patches/mariadb-cmake-compat.patch
deleted file mode 100644
index 44b0daa186..0000000000
--- a/gnu/packages/patches/mariadb-cmake-compat.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Fix if statement that triggers syntax error in CMake 3.20 and later.
-
-Taken from upstream:
-https://github.com/mariadb-corporation/mariadb-connector-c/commit/242cab8c
-
-diff --git a/libmariadb/cmake/ConnectorName.cmake b/libmariadb/cmake/ConnectorName.cmake
---- a/libmariadb/cmake/ConnectorName.cmake
-+++ b/libmariadb/cmake/ConnectorName.cmake
-@@ -22,7 +22,7 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Windows")
-     SET(MACHINE_NAME "x64")
-   ELSE()
-     SET(MACHINE_NAME "32")
--  END()
-+  ENDIF()
- ENDIF()
- 
- SET(product_name "mysql-connector-c-${CPACK_PACKAGE_VERSION}-${PLATFORM_NAME}${CONCAT_SIGN}${MACHINE_NAME}")
\ No newline at end of file
diff --git a/gnu/packages/patches/mathjax-disable-webpack.patch b/gnu/packages/patches/mathjax-disable-webpack.patch
new file mode 100644
index 0000000000..7e3d705c15
--- /dev/null
+++ b/gnu/packages/patches/mathjax-disable-webpack.patch
@@ -0,0 +1,23 @@
+commit 0cfd5b23aed8767f2bcf9583c1feaf4c9a64703a
+Author: Lars-Dominik Braun <lars@6xq.net>
+Date:   Wed Dec 1 14:27:33 2021 +0100
+
+    guix: Disable webpack
+    
+    Guix uses esbuild to “link” the files. We only need the build step.
+
+diff --git a/components/bin/makeAll b/components/bin/makeAll
+index 3e7a8914..5dae9b9b 100755
+--- a/components/bin/makeAll
++++ b/components/bin/makeAll
+@@ -61,8 +61,8 @@ function processList(dirs) {
+   for (const dir of dirs) {
+     const fulldir = path.resolve(dir);
+     processDir(fulldir, buildLib);
+-    processDir(fulldir, webpackLib);
+-    processDir(fulldir, copyLib);
++    //processDir(fulldir, webpackLib);
++    //processDir(fulldir, copyLib);
+   }
+ }
+ 
diff --git a/gnu/packages/patches/mathjax-no-a11y.patch b/gnu/packages/patches/mathjax-no-a11y.patch
new file mode 100644
index 0000000000..40fb514b5a
--- /dev/null
+++ b/gnu/packages/patches/mathjax-no-a11y.patch
@@ -0,0 +1,286 @@
+commit 9bb6f1e11264fb075bfa70fa3684f10a32414594
+Author: Lars-Dominik Braun <lars@6xq.net>
+Date:   Wed Dec 1 14:28:06 2021 +0100
+
+    guix: Remove accessibility.
+    
+    We cannot build speech-rule-engine from source and thus all dependents
+    must be removed. This affects all a11y modules and menu items, which
+    may try to load components.
+
+diff --git a/components/src/dependencies.js b/components/src/dependencies.js
+index f9be6f93..822f8fb6 100644
+--- a/components/src/dependencies.js
++++ b/components/src/dependencies.js
+@@ -16,9 +16,6 @@
+  */
+ 
+ export const dependencies = {
+-  'a11y/semantic-enrich': ['input/mml', '[sre]'],
+-  'a11y/complexity': ['a11y/semantic-enrich'],
+-  'a11y/explorer': ['a11y/semantic-enrich', 'ui/menu'],
+   '[mml]/mml3': ['input/mml'],
+   '[tex]/all-packages': ['input/tex-base'],
+   '[tex]/action': ['input/tex-base', '[tex]/newcommand'],
+@@ -58,7 +55,6 @@ export const dependencies = {
+ export const paths = {
+   tex: '[mathjax]/input/tex/extensions',
+   mml: '[mathjax]/input/mml/extensions',
+-  sre: '[mathjax]/sre/' + (typeof window === 'undefined' ? 'sre-node' : 'sre_browser')
+ };
+ 
+ const allPackages = [
+diff --git a/components/src/mml-chtml/mml-chtml.js b/components/src/mml-chtml/mml-chtml.js
+index c0bd18ee..a283a1ab 100644
+--- a/components/src/mml-chtml/mml-chtml.js
++++ b/components/src/mml-chtml/mml-chtml.js
+@@ -5,5 +5,4 @@ import '../input/mml/mml.js';
+ import '../output/chtml/chtml.js';
+ import '../output/chtml/fonts/tex/tex.js';
+ import '../ui/menu/menu.js';
+-import '../a11y/assistive-mml/assistive-mml.js';
+ import '../startup/startup.js';
+diff --git a/components/src/mml-chtml/preload.js b/components/src/mml-chtml/preload.js
+index e3f202f7..3699570e 100644
+--- a/components/src/mml-chtml/preload.js
++++ b/components/src/mml-chtml/preload.js
+@@ -5,5 +5,5 @@ Loader.preLoad(
+   'core',
+   'input/mml',
+   'output/chtml', 'output/chtml/fonts/tex.js',
+-  'ui/menu', 'a11y/assistive-mml'
++  'ui/menu'
+ );
+diff --git a/components/src/mml-svg/mml-svg.js b/components/src/mml-svg/mml-svg.js
+index 172b2433..23b66e69 100644
+--- a/components/src/mml-svg/mml-svg.js
++++ b/components/src/mml-svg/mml-svg.js
+@@ -5,5 +5,4 @@ import '../input/mml/mml.js';
+ import '../output/svg/svg.js';
+ import '../output/svg/fonts/tex/tex.js';
+ import '../ui/menu/menu.js';
+-import '../a11y/assistive-mml/assistive-mml.js';
+ import '../startup/startup.js';
+diff --git a/components/src/mml-svg/preload.js b/components/src/mml-svg/preload.js
+index 3cb47d42..89f6b9f9 100644
+--- a/components/src/mml-svg/preload.js
++++ b/components/src/mml-svg/preload.js
+@@ -5,5 +5,5 @@ Loader.preLoad(
+   'core',
+   'input/mml',
+   'output/svg', 'output/svg/fonts/tex.js',
+-  'ui/menu', 'a11y/assistive-mml'
++  'ui/menu'
+ );
+diff --git a/components/src/source.js b/components/src/source.js
+index ba6d6835..02ecf18d 100644
+--- a/components/src/source.js
++++ b/components/src/source.js
+@@ -62,12 +62,6 @@ export const source = {
+   'output/chtml/fonts/tex': `${src}/output/chtml/fonts/tex/tex.js`,
+   'output/svg': `${src}/output/svg/svg.js`,
+   'output/svg/fonts/tex': `${src}/output/svg/fonts/tex/tex.js`,
+-  'a11y/assistive-mml': `${src}/a11y/assistive-mml/assistive-mml.js`,
+-  'a11y/semantic-enrich': `${src}/a11y/semantic-enrich/semantic-enrich.js`,
+-  'a11y/complexity': `${src}/a11y/complexity/complexity.js`,
+-  'a11y/explorer': `${src}/a11y/explorer/explorer.js`,
+-  '[sre]': (typeof window === 'undefined' ? `${src}/../../js/a11y/sre-node.js` :
+-            `${src}/../../node_modules/speech-rule-engine/lib/sre_browser.js`),
+   'ui/lazy': `${src}/ui/lazy/lazy.js`,
+   'ui/menu': `${src}/ui/menu/menu.js`,
+   'ui/safe': `${src}/ui/safe/safe.js`,
+diff --git a/components/src/tex-chtml-full/preload.js b/components/src/tex-chtml-full/preload.js
+index 76c81c92..0eb3a8e2 100644
+--- a/components/src/tex-chtml-full/preload.js
++++ b/components/src/tex-chtml-full/preload.js
+@@ -5,5 +5,5 @@ Loader.preLoad(
+   'core',
+   'input/tex-full',
+   'output/chtml', 'output/chtml/fonts/tex.js',
+-  'ui/menu', 'a11y/assistive-mml'
++  'ui/menu'
+ );
+diff --git a/components/src/tex-chtml-full/tex-chtml-full.js b/components/src/tex-chtml-full/tex-chtml-full.js
+index 12291be9..c3f59e6b 100644
+--- a/components/src/tex-chtml-full/tex-chtml-full.js
++++ b/components/src/tex-chtml-full/tex-chtml-full.js
+@@ -5,5 +5,4 @@ import '../input/tex-full/tex-full.js';
+ import '../output/chtml/chtml.js';
+ import '../output/chtml/fonts/tex/tex.js';
+ import '../ui/menu/menu.js';
+-import '../a11y/assistive-mml/assistive-mml.js';
+ import '../startup/startup.js';
+diff --git a/components/src/tex-chtml/preload.js b/components/src/tex-chtml/preload.js
+index 89f110c5..5dae092f 100644
+--- a/components/src/tex-chtml/preload.js
++++ b/components/src/tex-chtml/preload.js
+@@ -5,5 +5,5 @@ Loader.preLoad(
+   'core',
+   'input/tex',
+   'output/chtml', 'output/chtml/fonts/tex.js',
+-  'ui/menu', 'a11y/assistive-mml'
++  'ui/menu'
+ );
+diff --git a/components/src/tex-chtml/tex-chtml.js b/components/src/tex-chtml/tex-chtml.js
+index 8d98865e..4d100a48 100644
+--- a/components/src/tex-chtml/tex-chtml.js
++++ b/components/src/tex-chtml/tex-chtml.js
+@@ -5,5 +5,4 @@ import '../input/tex/tex.js';
+ import '../output/chtml/chtml.js';
+ import '../output/chtml/fonts/tex/tex.js';
+ import '../ui/menu/menu.js';
+-import '../a11y/assistive-mml/assistive-mml.js';
+ import '../startup/startup.js';
+diff --git a/components/src/tex-mml-chtml/preload.js b/components/src/tex-mml-chtml/preload.js
+index 7adb6a3b..3945370f 100644
+--- a/components/src/tex-mml-chtml/preload.js
++++ b/components/src/tex-mml-chtml/preload.js
+@@ -5,5 +5,5 @@ Loader.preLoad(
+   'core',
+   'input/tex', 'input/mml',
+   'output/chtml', 'output/chtml/fonts/tex.js',
+-  'ui/menu', 'a11y/assistive-mml'
++  'ui/menu'
+ );
+diff --git a/components/src/tex-mml-chtml/tex-mml-chtml.js b/components/src/tex-mml-chtml/tex-mml-chtml.js
+index 4167bd59..0b068dc6 100644
+--- a/components/src/tex-mml-chtml/tex-mml-chtml.js
++++ b/components/src/tex-mml-chtml/tex-mml-chtml.js
+@@ -6,5 +6,4 @@ import '../input/mml/mml.js';
+ import '../output/chtml/chtml.js';
+ import '../output/chtml/fonts/tex/tex.js';
+ import '../ui/menu/menu.js';
+-import '../a11y/assistive-mml/assistive-mml.js';
+ import '../startup/startup.js';
+diff --git a/components/src/tex-mml-svg/preload.js b/components/src/tex-mml-svg/preload.js
+index 69d6a2c5..bad39af1 100644
+--- a/components/src/tex-mml-svg/preload.js
++++ b/components/src/tex-mml-svg/preload.js
+@@ -5,5 +5,5 @@ Loader.preLoad(
+   'core',
+   'input/tex', 'input/mml',
+   'output/svg', 'output/svg/fonts/tex.js',
+-  'ui/menu', 'a11y/assistive-mml'
++  'ui/menu'
+ );
+diff --git a/components/src/tex-mml-svg/tex-mml-svg.js b/components/src/tex-mml-svg/tex-mml-svg.js
+index acff78dd..3ca4e6cf 100644
+--- a/components/src/tex-mml-svg/tex-mml-svg.js
++++ b/components/src/tex-mml-svg/tex-mml-svg.js
+@@ -6,5 +6,4 @@ import '../input/mml/mml.js';
+ import '../output/svg/svg.js';
+ import '../output/svg/fonts/tex/tex.js';
+ import '../ui/menu/menu.js';
+-import '../a11y/assistive-mml/assistive-mml.js';
+ import '../startup/startup.js';
+diff --git a/components/src/tex-svg-full/preload.js b/components/src/tex-svg-full/preload.js
+index d4165cf8..8871781a 100644
+--- a/components/src/tex-svg-full/preload.js
++++ b/components/src/tex-svg-full/preload.js
+@@ -5,5 +5,5 @@ Loader.preLoad(
+   'core',
+   'input/tex-full',
+   'output/svg', 'output/svg/fonts/tex.js',
+-  'ui/menu', 'a11y/assistive-mml'
++  'ui/menu'
+ );
+diff --git a/components/src/tex-svg-full/tex-svg-full.js b/components/src/tex-svg-full/tex-svg-full.js
+index 55ce32f2..09c7e65c 100644
+--- a/components/src/tex-svg-full/tex-svg-full.js
++++ b/components/src/tex-svg-full/tex-svg-full.js
+@@ -5,5 +5,4 @@ import '../input/tex-full/tex-full.js';
+ import '../output/svg/svg.js';
+ import '../output/svg/fonts/tex/tex.js';
+ import '../ui/menu/menu.js';
+-import '../a11y/assistive-mml/assistive-mml.js';
+ import '../startup/startup.js';
+diff --git a/components/src/tex-svg/preload.js b/components/src/tex-svg/preload.js
+index 284ce317..3eb02665 100644
+--- a/components/src/tex-svg/preload.js
++++ b/components/src/tex-svg/preload.js
+@@ -5,5 +5,5 @@ Loader.preLoad(
+   'core',
+   'input/tex',
+   'output/svg', 'output/svg/fonts/tex.js',
+-  'ui/menu', 'a11y/assistive-mml'
++  'ui/menu'
+ );
+diff --git a/components/src/tex-svg/tex-svg.js b/components/src/tex-svg/tex-svg.js
+index f4ce644e..5d8caa5c 100644
+--- a/components/src/tex-svg/tex-svg.js
++++ b/components/src/tex-svg/tex-svg.js
+@@ -5,5 +5,4 @@ import '../input/tex/tex.js';
+ import '../output/svg/svg.js';
+ import '../output/svg/fonts/tex/tex.js';
+ import '../ui/menu/menu.js';
+-import '../a11y/assistive-mml/assistive-mml.js';
+ import '../startup/startup.js';
+diff --git a/ts/ui/menu/Menu.ts b/ts/ui/menu/Menu.ts
+index 7553aafc..ca0b9780 100644
+--- a/ts/ui/menu/Menu.ts
++++ b/ts/ui/menu/Menu.ts
+@@ -135,7 +135,7 @@ export class Menu {
+       autocollapse: false,
+       collapsible: false,
+       inTabOrder: true,
+-      assistiveMml: true,
++      assistiveMml: false,
+       explorer: false
+     },
+     jax: {
+@@ -475,7 +475,7 @@ export class Menu {
+           this.command('Reset', 'Reset to defaults', () => this.resetDefaults())
+         ]),
+         this.submenu('Accessibility', 'Accessibility', [
+-          this.checkbox('Activate', 'Activate', 'explorer'),
++          this.checkbox('Activate', 'Activate', 'explorer', {disabled: true}),
+           this.submenu('Speech', 'Speech', [
+             this.checkbox('Speech', 'Speech Output', 'speech'),
+             this.checkbox('Subtitles', 'Speech Subtitles', 'subtitles'),
+@@ -534,11 +534,11 @@ export class Menu {
+             this.checkbox('Prefix', 'Prefix', 'infoPrefix')
+           ], true),
+           this.rule(),
+-          this.checkbox('Collapsible', 'Collapsible Math', 'collapsible'),
++          this.checkbox('Collapsible', 'Collapsible Math', 'collapsible', {disabled: true}),
+           this.checkbox('AutoCollapse', 'Auto Collapse', 'autocollapse', {disabled: true}),
+           this.rule(),
+           this.checkbox('InTabOrder', 'Include in Tab Order', 'inTabOrder'),
+-          this.checkbox('AssistiveMml', 'Include Hidden MathML', 'assistiveMml')
++          this.checkbox('AssistiveMml', 'Include Hidden MathML', 'assistiveMml', {disabled: true})
+         ]),
+         this.submenu('Language', 'Language'),
+         this.rule(),
+@@ -722,6 +722,7 @@ export class Menu {
+    * @param {boolean} mml   True to output hidden Mathml, false to not
+    */
+   protected setAssistiveMml(mml: boolean) {
++    mml = false;
+     this.document.options.enableAssistiveMml = mml;
+     if (!mml || (MathJax._.a11y && MathJax._.a11y['assistive-mml'])) {
+       this.rerender();
+@@ -734,6 +735,7 @@ export class Menu {
+    * @param {boolean} explore   True to enable the explorer, false to not
+    */
+   protected setExplorer(explore: boolean) {
++    explore = false;
+     this.enableExplorerItems(explore);
+     this.document.options.enableExplorer = explore;
+     if (!explore || (MathJax._.a11y && MathJax._.a11y.explorer)) {
+@@ -747,6 +749,7 @@ export class Menu {
+    * @param {boolean} collapse   True to enable collapsible math, false to not
+    */
+   protected setCollapsible(collapse: boolean) {
++    collapse = false;
+     this.document.options.enableComplexity = collapse;
+     if (!collapse || (MathJax._.a11y && MathJax._.a11y.complexity)) {
+       this.rerender(STATE.COMPILED);
+@@ -845,6 +848,8 @@ export class Menu {
+    * @param {string} component   The name of the a11y component to load
+    */
+   public loadA11y(component: string) {
++    console.log ('ignoring load for', component);
++    return;
+     const noEnrich = !STATE.ENRICHED;
+     this.loadComponent('a11y/' + component, () => {
+       const startup = MathJax.startup;
diff --git a/gnu/packages/patches/mesa-skip-tests.patch b/gnu/packages/patches/mesa-skip-tests.patch
index 8f587ea7ef..7ff571dcf5 100644
--- a/gnu/packages/patches/mesa-skip-tests.patch
+++ b/gnu/packages/patches/mesa-skip-tests.patch
@@ -5,25 +5,15 @@ completely with this patch:
 https://gitlab.freedesktop.org/mesa/mesa/-/issues/4091
 
 diff --git a/src/util/meson.build b/src/util/meson.build
-index 0893f64..909b3e0 100644
+index 319b22d9bf7..93790c72675 100644
 --- a/src/util/meson.build
 +++ b/src/util/meson.build
-@@ -289,18 +289,6 @@ if with_tests
-      suite : ['util'],
-   )   
+@@ -344,7 +344,7 @@ if with_tests
+     )
+   endif
  
--  test(
--    'u_debug_stack',
--    executable(
--      'u_debug_stack_test',
--      files('u_debug_stack_test.cpp'),
--      include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
--      dependencies : [idep_mesautil, idep_gtest],
--      c_args : [c_msvc_compat_args],
--    ),
--     suite : ['util'],
--  )
--
-   process_test_exe = executable(
-     'process_test',
-     files('process_test.c'),
+-  foreach t: ['bitset', 'register_allocate', 'u_debug_stack', 'u_qsort']
++  foreach t: ['bitset', 'register_allocate', 'u_qsort']
+     test(
+       t,
+       executable(
diff --git a/gnu/packages/patches/meson-allow-dirs-outside-of-prefix.patch b/gnu/packages/patches/meson-allow-dirs-outside-of-prefix.patch
new file mode 100644
index 0000000000..f16daa8009
--- /dev/null
+++ b/gnu/packages/patches/meson-allow-dirs-outside-of-prefix.patch
@@ -0,0 +1,20 @@
+Source: https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch
+--- a/mesonbuild/coredata.py
++++ b/mesonbuild/coredata.py
+@@ -506,7 +506,6 @@ class CoreData:
+             return value
+         if option.name.endswith('dir') and value.is_absolute() and \
+            option not in BULITIN_DIR_NOPREFIX_OPTIONS:
+-            # Value must be a subdir of the prefix
+             # commonpath will always return a path in the native format, so we
+             # must use pathlib.PurePath to do the same conversion before
+             # comparing.
+@@ -518,7 +517,7 @@ class CoreData:
+             try:
+                 value = value.relative_to(prefix)
+             except ValueError:
+-                raise MesonException(msg.format(option, value, prefix))
++                pass
+             if '..' in str(value):
+                 raise MesonException(msg.format(option, value, prefix))
+         return value.as_posix()
diff --git a/gnu/packages/patches/metabat-fix-compilation.patch b/gnu/packages/patches/metabat-fix-compilation.patch
deleted file mode 100644
index 7086a96e86..0000000000
--- a/gnu/packages/patches/metabat-fix-compilation.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-This patch changes metabat so that (1) it is not build statically, (2) it uses
-shared libraries rather than static libraries where possible.
-
-diff --git a/SConstruct b/SConstruct
-index 69cdc0a..ac99bcb 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -26,8 +26,6 @@ debug = ARGUMENTS.get('DEBUG', None)
- build_flags = ['-Wall', '-g', '-std=c++11', '-fopenmp']
- link_flags = ['-lstdc++', '-lm', '-fopenmp']
- 
--if platform.platform(True, True).find('Darwin') == -1:
--    link_flags.extend(['-static', '-static-libgcc', '-static-libstdc++'])
- 
- if debug is None:
-     build_flags.extend(['-O3', '-DNDEBUG', '-Wno-unknown-pragmas', '-Wno-deprecated-declarations', '-Wno-overflow', '-Wno-unused-variable'])
-@@ -110,17 +108,17 @@ def findStaticOrShared( lib, testPaths, static_source_list, link_flag_list, stat
-     for path in testPaths:
-         if not os.path.isdir(path):
-             continue
-+        for testfile in ('%s/lib%s.so' % (path, lib), '%s/lib%s.dylib' % (path, lib)):
-+            if os.path.isfile(testfile):
-+                print "Found shared library %s as %s" % (lib, testfile)
-+                link_flag_list.extend( ["-L%s" % (path), "-l%s" % (lib) ] )
-+                return
-         for suffix in staticSuffixes:
-             testfile = '%s/lib%s%s' % (path, lib, suffix)
-             if os.path.isfile(testfile):
-                 static_source_list.append(testfile)
-                 print "Found static library %s as %s" % (lib, testfile)
-                 return
--        for testfile in ('%s/lib%s.so' % (path, lib), '%s/lib%s.dylib' % (path, lib)):
--            if os.path.isfile(testfile):
--                print "Found shared library %s as %s" % (lib, testfile)
--                link_flag_list.extend( ["-L%s" % (path), "-l%s" % (lib) ] )
--                return
-     print "Could not find library for %s!!! Looked in %s" % (lib, testPaths)
-     return
- 
diff --git a/gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch b/gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch
index a74034a2c5..41338e6e6f 100644
--- a/gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch
+++ b/gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch
@@ -8,7 +8,7 @@ When it exists, Minetest will look there for mods
 in addition to ~/.minetest/mods/.  Mods can still be
 installed to ~/.minetest/mods/ with the built-in installer.
 
-With thanks to Leo Prikler.
+With thanks to Liliana Marie Prikler.
 ---
  builtin/mainmenu/pkgmgr.lua       |  7 +++----
  doc/menu_lua_api.txt              |  8 +++++++-
diff --git a/gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch b/gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch
new file mode 100644
index 0000000000..d7cd1c0d28
--- /dev/null
+++ b/gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch
@@ -0,0 +1,25 @@
+From 7554aefc886d4ebc4b4c139a5cddcab6163cf72f Mon Sep 17 00:00:00 2001
+From: Vinicius Monego <monego@posteo.net>
+Date: Thu, 30 Sep 2021 23:37:29 -0300
+Subject: [PATCH] Link QtScriptByteArray with QtScript.
+
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 492ccae..05fec08 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -2077,7 +2077,7 @@ add_library(QtScriptByteArray STATIC EXCLUDE_FROM_ALL
+   lib/qtscript-bytearray/bytearrayprototype.cpp
+ )
+ set_target_properties(QtScriptByteArray PROPERTIES AUTOMOC ON)
+-target_link_libraries(QtScriptByteArray Qt5::Core)
++target_link_libraries(QtScriptByteArray Qt5::Core Qt5::Script)
+ target_include_directories(mixxx-lib SYSTEM PUBLIC lib/qtscript-bytearray)
+ target_link_libraries(mixxx-lib PRIVATE QtScriptByteArray)
+ 
+-- 
+2.30.2
+
diff --git a/gnu/packages/patches/mixxx-system-googletest-benchmark.patch b/gnu/packages/patches/mixxx-system-googletest-benchmark.patch
new file mode 100644
index 0000000000..7adbe66208
--- /dev/null
+++ b/gnu/packages/patches/mixxx-system-googletest-benchmark.patch
@@ -0,0 +1,43 @@
+From eb2079d467f8658eea13e2ed86cc69d864632866 Mon Sep 17 00:00:00 2001
+From: Vinicius Monego <monego@posteo.net>
+Date: Wed, 29 Sep 2021 19:07:35 -0300
+Subject: [PATCH] Use system googletest and benchmark.
+
+---
+ CMakeLists.txt | 13 +++----------
+ 1 file changed, 3 insertions(+), 10 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 10e9b0a..492ccae 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1467,12 +1467,7 @@ set(gtest_force_shared_crt ON CACHE BOOL "Pass Mixxx compiler/linker options to
+ # Prevent installation of GoogleTest libraries
+ set(INSTALL_GTEST OFF CACHE BOOL "Disable installation of GoogleTest" FORCE)
+ 
+-# Add googletest directly to our build. This adds the following targets:
+-# gtest, gtest_main, gmock and gmock_main
+-add_subdirectory(
+-  "${CMAKE_CURRENT_SOURCE_DIR}/lib/googletest"
+-  "${CMAKE_CURRENT_BINARY_DIR}/lib/googletest"
+-)
++find_package(GTest CONFIG REQUIRED)
+ 
+ add_executable(mixxx-test
+   src/test/analyserwaveformtest.cpp
+@@ -1582,10 +1577,8 @@ set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "" FORCE)
+ # Prevent installation of google/benchmark artifacts
+ set(BENCHMARK_ENABLE_INSTALL OFF CACHE BOOL "Disable installation of google/benchmark" FORCE)
+ 
+-add_subdirectory(
+-  "${CMAKE_CURRENT_SOURCE_DIR}/lib/benchmark"
+-  "${CMAKE_CURRENT_BINARY_DIR}/lib/benchmark"
+-)
++find_package(benchmark CONFIG REQUIRED)
++
+ target_link_libraries(mixxx-test PRIVATE benchmark)
+ 
+ # Test Suite
+-- 
+2.30.2
+
diff --git a/gnu/packages/patches/monero-use-system-miniupnpc.patch b/gnu/packages/patches/monero-use-system-miniupnpc.patch
index c5d376d793..2bd179946f 100644
--- a/gnu/packages/patches/monero-use-system-miniupnpc.patch
+++ b/gnu/packages/patches/monero-use-system-miniupnpc.patch
@@ -1,14 +1,16 @@
 diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
-index 7553f87e..8e865c6c 100644
+index 5b7f69a56..3a353a0f3 100644
 --- a/external/CMakeLists.txt
 +++ b/external/CMakeLists.txt
-@@ -37,19 +37,7 @@
+@@ -37,21 +37,7 @@
  
  find_package(Miniupnpc REQUIRED)
  
 -message(STATUS "Using in-tree miniupnpc")
+-set(UPNPC_NO_INSTALL TRUE CACHE BOOL "Disable miniupnp installation" FORCE)
 -add_subdirectory(miniupnp/miniupnpc)
 -set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
+-set_property(TARGET libminiupnpc-static PROPERTY POSITION_INDEPENDENT_CODE ON)
 -if(MSVC)
 -  set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267")
 -elseif(NOT MSVC)
@@ -24,12 +26,12 @@ index 7553f87e..8e865c6c 100644
  find_package(Unbound)
  
 diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
-index 74924e4f..3554dd0d 100644
+index d4b39869c..13071d898 100644
 --- a/src/p2p/net_node.inl
 +++ b/src/p2p/net_node.inl
-@@ -49,9 +49,9 @@
- #include "storages/levin_abstract_invoke2.h"
+@@ -61,9 +61,9 @@
  #include "cryptonote_core/cryptonote_core.h"
+ #include "net/parse.h"
  
 -#include <miniupnp/miniupnpc/miniupnpc.h>
 -#include <miniupnp/miniupnpc/upnpcommands.h>
diff --git a/gnu/packages/patches/mupdf-CVE-2021-3407.patch b/gnu/packages/patches/mupdf-CVE-2021-3407.patch
deleted file mode 100644
index 9f901517c5..0000000000
--- a/gnu/packages/patches/mupdf-CVE-2021-3407.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-This patch came from https://git.ghostscript.com/?p=mupdf.git;a=patch;h=cee7cefc610d42fd383b3c80c12cbc675443176a
-and fixes CVE-2021-3407.
-
-From cee7cefc610d42fd383b3c80c12cbc675443176a Mon Sep 17 00:00:00 2001
-From: Robin Watts <Robin.Watts@artifex.com>
-Date: Fri, 22 Jan 2021 17:05:15 +0000
-Subject: [PATCH] Bug 703366: Fix double free of object during linearization.
-
-This appears to happen because we parse an illegal object from
-a broken file and assign it to object 0, which is defined to
-be free.
-
-Here, we fix the parsing code so this can't happen.
----
- source/pdf/pdf-parse.c | 6 ++++++
- source/pdf/pdf-xref.c  | 2 ++
- 2 files changed, 8 insertions(+)
-
-diff --git a/source/pdf/pdf-parse.c b/source/pdf/pdf-parse.c
-index 7abc8c3d4..5761c3351 100644
---- a/source/pdf/pdf-parse.c
-+++ b/source/pdf/pdf-parse.c
-@@ -749,6 +749,12 @@ pdf_parse_ind_obj(fz_context *ctx, pdf_document *doc,
- 		fz_throw(ctx, FZ_ERROR_SYNTAX, "expected generation number (%d ? obj)", num);
- 	}
- 	gen = buf->i;
-+	if (gen < 0 || gen >= 65536)
-+	{
-+		if (try_repair)
-+			*try_repair = 1;
-+		fz_throw(ctx, FZ_ERROR_SYNTAX, "invalid generation number (%d)", gen);
-+	}
- 
- 	tok = pdf_lex(ctx, file, buf);
- 	if (tok != PDF_TOK_OBJ)
-diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c
-index 1b2bdcd59..30197b4b8 100644
---- a/source/pdf/pdf-xref.c
-+++ b/source/pdf/pdf-xref.c
-@@ -1190,6 +1190,8 @@ pdf_read_new_xref(fz_context *ctx, pdf_document *doc, pdf_lexbuf *buf)
- 	{
- 		ofs = fz_tell(ctx, doc->file);
- 		trailer = pdf_parse_ind_obj(ctx, doc, doc->file, buf, &num, &gen, &stm_ofs, NULL);
-+		if (num == 0)
-+			fz_throw(ctx, FZ_ERROR_GENERIC, "Trailer object number cannot be 0\n");
- 	}
- 	fz_catch(ctx)
- 	{
--- 
-2.17.1
-
diff --git a/gnu/packages/patches/mupdf-fix-linkage.patch b/gnu/packages/patches/mupdf-fix-linkage.patch
deleted file mode 100644
index 4ffd1c6a77..0000000000
--- a/gnu/packages/patches/mupdf-fix-linkage.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Tobias Geerinckx-Rice <me@tobias.gr>
-Date: Tue, 24 Nov 2020 10:29:28 +0000
-Subject: [PATCH] gnu: mupdf: Fix linkage.
-
-Replace broken linkage to ‘build/shared-release/libmupdf.so’ with the
-proper ‘-L$(libdir) -lmupdf’ incantation, and fix libmupdf.so's mode.
-
---- mupdf-1.18.0-source.org/Makefile
-+++ mupdf-1.18.0-source/Makefile
-@@ -61,7 +61,7 @@
- ifdef RANLIB
-   RANLIB_CMD = $(QUIET_RANLIB) $(RANLIB) $@
- endif
--LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
-+LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(CC) $(LDFLAGS) -o $@ $(subst $(MUPDF_LIB),-L$(libdir) -L$(OUT) -lmupdf,$^) $(LIBS)
- TAGS_CMD = $(QUIET_TAGS) ctags -R --c-kinds=+p
- WINDRES_CMD = $(QUIET_WINDRES) $(MKTGTDIR) ; $(WINDRES) $< $@
- OBJCOPY_CMD = $(QUIET_OBJCOPY) $(MKTGTDIR) ; $(LD) -r -b binary -z noexecstack -o $@ $<
-@@ -364,7 +364,7 @@ install: libs apps
- 	install -m 644 include/mupdf/pdf/*.h $(DESTDIR)$(incdir)/mupdf/pdf
- 
- 	install -d $(DESTDIR)$(libdir)
--	install -m 644 $(INSTALL_LIBS) $(DESTDIR)$(libdir)
-+	install -m 755 $(INSTALL_LIBS) $(DESTDIR)$(libdir)
- 
- 	install -d $(DESTDIR)$(bindir)
- 	install -m 755 $(TOOL_APPS) $(VIEW_APPS) $(DESTDIR)$(bindir)
diff --git a/gnu/packages/patches/network-manager-meson.patch b/gnu/packages/patches/network-manager-meson.patch
new file mode 100644
index 0000000000..1056d40ede
--- /dev/null
+++ b/gnu/packages/patches/network-manager-meson.patch
@@ -0,0 +1,21 @@
+Since libnm-wwan.so is not just a loadable module but also a shared library
+that some plugin links against, build it as a shared library while avoiding
+'-Wl,--no-undefined':
+
+  https://github.com/mesonbuild/meson/issues/9492#issuecomment-973117289
+
+diff --git a/src/core/devices/wwan/meson.build b/src/core/devices/wwan/meson.build
+index 37ef738..18ac54f 100644
+--- a/src/core/devices/wwan/meson.build
++++ b/src/core/devices/wwan/meson.build
+@@ -4,8 +4,9 @@ wwan_inc = include_directories('.')
+ 
+ linker_script = join_paths(meson.current_source_dir(), 'libnm-wwan.ver')
+ 
+-libnm_wwan = shared_module(
++libnm_wwan = shared_library(
+   'nm-wwan',
++  override_options: ['b_lundef=false'],
+   sources: files(
+   'nm-service-providers.c',
+   'nm-modem-broadband.c',
diff --git a/gnu/packages/patches/network-manager-plugin-path.patch b/gnu/packages/patches/network-manager-plugin-path.patch
index 505ae31534..ec6767aaac 100644
--- a/gnu/packages/patches/network-manager-plugin-path.patch
+++ b/gnu/packages/patches/network-manager-plugin-path.patch
@@ -3,49 +3,40 @@ From: =?UTF-8?q?Tom=C3=A1=C5=A1=20=C4=8Cech?= <sleep_walker@gnu.org>
 Date: Wed, 3 Jul 2019 13:31:54 +0200
 Subject: [PATCH] respect NM_VPN_PLUGIN_DIR
 
----
- src/vpn/nm-vpn-manager.c | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/src/vpn/nm-vpn-manager.c b/src/vpn/nm-vpn-manager.c
-index d063916..d779166 100644
---- a/src/vpn/nm-vpn-manager.c
-+++ b/src/vpn/nm-vpn-manager.c
-@@ -223,6 +223,7 @@ nm_vpn_manager_init (NMVpnManager *self)
- 	GSList *infos, *info;
- 	const char *conf_dir_etc = _nm_vpn_plugin_info_get_default_dir_etc ();
- 	const char *conf_dir_lib = _nm_vpn_plugin_info_get_default_dir_lib ();
-+	const char *conf_dir_user = _nm_vpn_plugin_info_get_default_dir_user ();
+--- a/src/core/vpn/nm-vpn-manager.c	2021-10-29 13:20:01.062917840 -0400
++++ b/src/core/vpn/nm-vpn-manager.c	2021-10-29 13:26:46.094397018 -0400
+@@ -211,6 +211,7 @@
+     GSList *             infos, *info;
+     const char *         conf_dir_etc = _nm_vpn_plugin_info_get_default_dir_etc();
+     const char *         conf_dir_lib = _nm_vpn_plugin_info_get_default_dir_lib();
++    const char *         conf_dir_user = _nm_vpn_plugin_info_get_default_dir_user ();
  
- 	/* Watch the VPN directory for changes */
- 	file = g_file_new_for_path (conf_dir_lib);
-@@ -241,6 +242,14 @@ nm_vpn_manager_init (NMVpnManager *self)
- 		                                         G_CALLBACK (vpn_dir_changed), self);
- 	}
+     /* Watch the VPN directory for changes */
+     file              = g_file_new_for_path(conf_dir_lib);
+@@ -229,6 +230,14 @@
+             g_signal_connect(priv->monitor_etc, "changed", G_CALLBACK(vpn_dir_changed), self);
+     }
  
-+	file = g_file_new_for_path (conf_dir_user);
-+	priv->monitor_etc = g_file_monitor_directory (file, G_FILE_MONITOR_NONE, NULL, NULL);
-+	g_object_unref (file);
-+	if (priv->monitor_etc) {
-+		priv->monitor_id_etc = g_signal_connect (priv->monitor_etc, "changed",
-+		                                         G_CALLBACK (vpn_dir_changed), self);
-+	}
++    file              = g_file_new_for_path (conf_dir_user);
++    priv->monitor_etc = g_file_monitor_directory (file, G_FILE_MONITOR_NONE, NULL, NULL);
++    g_object_unref (file);
++    if (priv->monitor_etc) {
++        priv->monitor_id_etc =
++            g_signal_connect (priv->monitor_etc, "changed", G_CALLBACK (vpn_dir_changed), self);
++    }
 +
- 	/* first read conf_dir_lib. The name files are not really user configuration, but
- 	 * plugin configuration. Hence we expect ~newer~ plugins to install their files
- 	 * in /usr/lib/NetworkManager. We want to prefer those files.
-@@ -255,6 +264,11 @@ nm_vpn_manager_init (NMVpnManager *self)
- 		try_add_plugin (self, info->data);
- 	g_slist_free_full (infos, g_object_unref);
+     /* first read conf_dir_lib. The name files are not really user configuration, but
+      * plugin configuration. Hence we expect ~newer~ plugins to install their files
+      * in /usr/lib/NetworkManager. We want to prefer those files.
+@@ -243,6 +252,11 @@
+         try_add_plugin(self, info->data);
+     g_slist_free_full(infos, g_object_unref);
  
-+	infos = _nm_vpn_plugin_info_list_load_dir (conf_dir_user, TRUE, 0, NULL, NULL);
-+	for (info = infos; info; info = info->next)
-+		try_add_plugin (self, info->data);
-+	g_slist_free_full (infos, g_object_unref);
++    infos = _nm_vpn_plugin_info_list_load_dir(conf_dir_user, TRUE, 0, NULL, NULL);
++    for (info = infos; info; info = info->next)
++            try_add_plugin (self, info->data);
++    g_slist_free_full (infos, g_object_unref);
 +
- 	priv->active_services = g_hash_table_new_full (nm_str_hash, g_str_equal, g_free, NULL);
+     priv->active_services = g_hash_table_new_full(nm_str_hash, g_str_equal, g_free, NULL);
  }
  
--- 
-2.22.0
-
diff --git a/gnu/packages/patches/ngless-unliftio.patch b/gnu/packages/patches/ngless-unliftio.patch
new file mode 100644
index 0000000000..87f5e79fcf
--- /dev/null
+++ b/gnu/packages/patches/ngless-unliftio.patch
@@ -0,0 +1,66 @@
+From 919565adc1216b9d3108b3043e8d307292b37393 Mon Sep 17 00:00:00 2001
+From: Luis Pedro Coelho <luis@luispedro.org>
+Date: Fri, 7 May 2021 11:42:56 +0800
+Subject: [PATCH] BLD Update to LTS-17.10
+
+- Updates the GHC version
+- Requires `extra-deps` for `diagrams` package
+- Simplifies code for NGLessIO monad as UnliftIO can now be auto-derived
+---
+ NGLess/NGLess/NGError.hs |  8 ++------
+ stack.yaml               | 11 ++++++++---
+ 2 files changed, 10 insertions(+), 9 deletions(-)
+
+diff --git a/NGLess/NGLess/NGError.hs b/NGLess/NGLess/NGError.hs
+index a22e557f..c7eddf5b 100644
+--- a/NGLess/NGLess/NGError.hs
++++ b/NGLess/NGLess/NGError.hs
+@@ -50,7 +50,8 @@ type NGLess = Either NGError
+ 
+ newtype NGLessIO a = NGLessIO { unwrapNGLessIO :: ResourceT IO a }
+                         deriving (Functor, Applicative, Monad, MonadIO,
+-                        MonadResource, MonadThrow, MonadCatch, MonadMask)
++                        MonadResource, MonadThrow, MonadCatch, MonadMask,
++                        MonadUnliftIO)
+ 
+ 
+ instance MonadError NGError NGLessIO where
+@@ -62,11 +63,6 @@ instance PrimMonad NGLessIO where
+     primitive act = NGLessIO (primitive act)
+     {-# INLINE primitive #-}
+ 
+-instance MonadUnliftIO NGLessIO where
+-    askUnliftIO = NGLessIO $ do
+-        u <- askUnliftIO
+-        return $ UnliftIO (\(NGLessIO act) -> unliftIO u act)
+-
+ instance MonadFail NGLessIO where
+     fail err = throwShouldNotOccur err
+ 
+diff --git a/stack.yaml b/stack.yaml
+index 051d973d..11b65887 100644
+--- a/stack.yaml
++++ b/stack.yaml
+@@ -1,14 +1,19 @@
+ # For more information, see: https://github.com/commercialhaskell/stack/blob/release/doc/yaml_configuration.md
+ 
+-resolver: lts-14.20
++resolver: lts-17.10
+ compiler-check: newer-minor
+ 
+ # Packages to be pulled from upstream that are not in the resolver (e.g., acme-missiles-0.3)
+ extra-deps:
+   - git: "https://github.com/ngless-toolkit/interval-to-int"
+     commit: "78289f6b48d41f7cc48169520ec9b77b050a0029"
+-
+-
++  - diagrams-core-1.4.2@sha256:47de45658e8a805b7cb7f535e7b093daf7e861604fa3c70e25bd4ef481bf1571,2997
++  - diagrams-lib-1.4.3@sha256:04f77778d4b550d3c8e54440800685f88467bef91075e82e009a8a6f45c51033,8232
++  - diagrams-svg-1.4.3@sha256:36708b0b4cf35507ccf689f1a25f6f81b8f41c2c4c2900793de820f66d4e241c,3181
++  - active-0.2.0.14@sha256:e618aba4a7881eb85dc1585e0a01230af6b4fbab6693931e4a5d0d3a5b184406,1823
++  - dual-tree-0.2.2.1@sha256:9ff31e461d873ae74ba51d93b454c0c4094726d7cb78a0c454394c965e83539d,2830
++  - monoid-extras-0.5.1@sha256:438dbfd7b4dce47d8f0ca577f56caf94bd1e21391afa545cad09fe7cf2e5793d,2333
++  - svg-builder-0.1.1@sha256:22de54d326a6b6912e461e1302edb9108b02aac0b6a6368fcdc3c4a224d487fd,1440
+ allow-newer: true
+ 
+ # Override default flag values for local packages and extra-deps
diff --git a/gnu/packages/patches/nnpack-system-libraries.patch b/gnu/packages/patches/nnpack-system-libraries.patch
new file mode 100644
index 0000000000..d708045ba0
--- /dev/null
+++ b/gnu/packages/patches/nnpack-system-libraries.patch
@@ -0,0 +1,205 @@
+This patch allows us to use our copy of the dependencies instead
+of downloading them and rebuilding them.  It also builds a shared
+library.
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5ecd2df..aaa67d1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -12,7 +12,7 @@ SET_PROPERTY(CACHE NNPACK_BACKEND PROPERTY STRINGS auto psimd scalar)
+ OPTION(NNPACK_CONVOLUTION_ONLY "Build only NNPACK functions for convolutional layer" OFF)
+ OPTION(NNPACK_INFERENCE_ONLY "Build only NNPACK functions for inference" OFF)
+ OPTION(NNPACK_CUSTOM_THREADPOOL "Build NNPACK for custom thread pool" OFF)
+-SET(NNPACK_LIBRARY_TYPE "default" CACHE STRING "Type of library (shared, static, or default) to build")
++SET(NNPACK_LIBRARY_TYPE "shared" CACHE STRING "Type of library (shared, static, or default) to build")
+ SET_PROPERTY(CACHE NNPACK_LIBRARY_TYPE PROPERTY STRINGS default static shared)
+ OPTION(NNPACK_BUILD_TESTS "Build NNPACK unit tests" ON)
+ 
+@@ -123,7 +123,7 @@ SET(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps
+   CACHE PATH "Confu-style dependencies binary directory")
+ 
+ IF(NNPACK_BACKEND STREQUAL "x86-64")
+-  IF(NOT DEFINED PYTHON_SIX_SOURCE_DIR)
++  IF(FALSE)
+     MESSAGE(STATUS "Downloading six (Python package) to ${CONFU_DEPENDENCIES_SOURCE_DIR}/six (define PYTHON_SIX_SOURCE_DIR to avoid it)")
+     CONFIGURE_FILE(cmake/DownloadSix.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/six-download/CMakeLists.txt")
+     EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
+@@ -133,7 +133,7 @@ IF(NNPACK_BACKEND STREQUAL "x86-64")
+     SET(PYTHON_SIX_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/six" CACHE STRING "six (Python package) source directory")
+   ENDIF()
+ 
+-  IF(NOT DEFINED PYTHON_ENUM_SOURCE_DIR)
++  IF(FALSE)
+     IF(${PYTHON_VERSION_STRING} VERSION_LESS 3.4)
+       # ---[ Python < 3.4 does not natively support enums, and needs a polyfill
+       MESSAGE(STATUS "Downloading enum (Python package) to ${CONFU_DEPENDENCIES_SOURCE_DIR}/enum (define PYTHON_ENUM_SOURCE_DIR to avoid it)")
+@@ -148,7 +148,7 @@ IF(NNPACK_BACKEND STREQUAL "x86-64")
+     ENDIF()
+   ENDIF()
+ 
+-  IF(NOT DEFINED PYTHON_PEACHPY_SOURCE_DIR)
++  IF(FALSE)
+     # ---[ PeachPy requires Opcodes for installation
+     IF(NOT DEFINED PYTHON_OPCODES_SOURCE_DIR)
+       MESSAGE(STATUS "Downloading opcodes (Python package) to ${CONFU_DEPENDENCIES_SOURCE_DIR}/opcodes (define PYTHON_OPCODES_SOURCE_DIR to avoid it)")
+@@ -169,15 +169,9 @@ IF(NNPACK_BACKEND STREQUAL "x86-64")
+     SET(PYTHON_PEACHPY_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/peachpy" CACHE STRING "PeachPy (Python package) source directory")
+   ENDIF()
+ 
+-  IF(${PYTHON_VERSION_STRING} VERSION_LESS 3.4)
+-    # ---[ Python < 3.4 does not natively support enums, and needs a polyfill
+-    SET(PEACHPY_PYTHONPATH "${PYTHON_SIX_SOURCE_DIR}:${PYTHON_ENUM_SOURCE_DIR}:${PYTHON_PEACHPY_SOURCE_DIR}")
+-  ELSE()
+-    SET(PEACHPY_PYTHONPATH "${PYTHON_SIX_SOURCE_DIR}:${PYTHON_PEACHPY_SOURCE_DIR}")
+-  ENDIF()
+ ENDIF()
+ 
+-IF(NOT DEFINED CPUINFO_SOURCE_DIR)
++IF(FALSE)
+   MESSAGE(STATUS "Downloading cpuinfo to ${CONFU_DEPENDENCIES_SOURCE_DIR}/cpuinfo (define CPUINFO_SOURCE_DIR to avoid it)")
+   CONFIGURE_FILE(cmake/DownloadCpuinfo.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/cpuinfo-download/CMakeLists.txt")
+   EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
+@@ -187,7 +181,7 @@ IF(NOT DEFINED CPUINFO_SOURCE_DIR)
+   SET(CPUINFO_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/cpuinfo" CACHE STRING "cpuinfo source directory")
+ ENDIF()
+ 
+-IF(NOT DEFINED FP16_SOURCE_DIR)
++IF(FALSE)
+   MESSAGE(STATUS "Downloading FP16 to ${CONFU_DEPENDENCIES_SOURCE_DIR}/fp16 (define FP16_SOURCE_DIR to avoid it)")
+   CONFIGURE_FILE(cmake/DownloadFP16.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/fp16-download/CMakeLists.txt")
+   EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
+@@ -197,7 +191,7 @@ IF(NOT DEFINED FP16_SOURCE_DIR)
+   SET(FP16_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/fp16" CACHE STRING "FP16 source directory")
+ ENDIF()
+ 
+-IF(NOT DEFINED FXDIV_SOURCE_DIR)
++IF(FALSE)
+   MESSAGE(STATUS "Downloading FXdiv to ${CONFU_DEPENDENCIES_SOURCE_DIR}/fxdiv (define FXDIV_SOURCE_DIR to avoid it)")
+   CONFIGURE_FILE(cmake/DownloadFXdiv.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/fxdiv-download/CMakeLists.txt")
+   EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
+@@ -207,7 +201,7 @@ IF(NOT DEFINED FXDIV_SOURCE_DIR)
+   SET(FXDIV_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/fxdiv" CACHE STRING "FXdiv source directory")
+ ENDIF()
+ 
+-IF(NOT DEFINED PSIMD_SOURCE_DIR)
++IF(FALSE)
+   MESSAGE(STATUS "Downloading PSimd to ${CONFU_DEPENDENCIES_SOURCE_DIR}/psimd (define PSIMD_SOURCE_DIR to avoid it)")
+   CONFIGURE_FILE(cmake/DownloadPSimd.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/psimd-download/CMakeLists.txt")
+   EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
+@@ -217,7 +211,7 @@ IF(NOT DEFINED PSIMD_SOURCE_DIR)
+   SET(PSIMD_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/psimd" CACHE STRING "PSimd source directory")
+ ENDIF()
+ 
+-IF(NOT DEFINED PTHREADPOOL_SOURCE_DIR)
++IF(FALSE)
+   MESSAGE(STATUS "Downloading pthreadpool to ${CONFU_DEPENDENCIES_SOURCE_DIR}/pthreadpool (define PTHREADPOOL_SOURCE_DIR to avoid it)")
+   CONFIGURE_FILE(cmake/DownloadPThreadPool.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/pthreadpool-download/CMakeLists.txt")
+   EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
+@@ -227,7 +221,7 @@ IF(NOT DEFINED PTHREADPOOL_SOURCE_DIR)
+   SET(PTHREADPOOL_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/pthreadpool" CACHE STRING "pthreadpool source directory")
+ ENDIF()
+ 
+-IF(NNPACK_BUILD_TESTS AND NOT DEFINED GOOGLETEST_SOURCE_DIR)
++IF(FALSE)
+   MESSAGE(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)")
+   CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt")
+   EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
+@@ -237,6 +231,7 @@ IF(NNPACK_BUILD_TESTS AND NOT DEFINED GOOGLETEST_SOURCE_DIR)
+   SET(GOOGLETEST_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest" CACHE STRING "Google Test source directory")
+ ENDIF()
+ 
++
+ # ---[ NNPACK library
+ SET(NNPACK_INIT_SRCS src/init.c)
+ SET(NNPACK_LAYER_SRCS src/convolution-inference.c)
+@@ -427,8 +422,7 @@ IF(NNPACK_BACKEND STREQUAL "x86-64")
+       FILE(MAKE_DIRECTORY ${obj_dir})
+       ADD_CUSTOM_COMMAND(
+         OUTPUT ${obj}
+-        COMMAND "PYTHONPATH=${PEACHPY_PYTHONPATH}"
+-          ${PYTHON_EXECUTABLE} -m peachpy.x86_64
++        COMMAND ${PYTHON_EXECUTABLE} -m peachpy.x86_64
+             -mabi=sysv -g4 -mimage-format=${PEACHPY_IMAGE_FORMAT}
+             "-I${PROJECT_SOURCE_DIR}/src" "-I${PROJECT_SOURCE_DIR}/src/x86_64-fma" "-I${FP16_SOURCE_DIR}/include"
+             -o ${obj} "${PROJECT_SOURCE_DIR}/${src}"
+@@ -495,63 +489,10 @@ ADD_LIBRARY(nnpack_reference_layers STATIC ${NNPACK_REFERENCE_LAYERS_SRCS})
+ NNPACK_TARGET_ENABLE_C99(nnpack_reference_layers)
+ TARGET_INCLUDE_DIRECTORIES(nnpack_reference_layers PUBLIC include)
+ 
+-# ---[ Configure cpuinfo
+-IF(NOT TARGET cpuinfo)
+-  SET(CPUINFO_BUILD_TOOLS OFF CACHE BOOL "")
+-  SET(CPUINFO_BUILD_UNIT_TESTS OFF CACHE BOOL "")
+-  SET(CPUINFO_BUILD_MOCK_TESTS OFF CACHE BOOL "")
+-  SET(CPUINFO_BUILD_BENCHMARKS OFF CACHE BOOL "")
+-  ADD_SUBDIRECTORY(
+-    "${CPUINFO_SOURCE_DIR}"
+-    "${CONFU_DEPENDENCIES_BINARY_DIR}/cpuinfo")
+-ENDIF()
+-TARGET_LINK_LIBRARIES(nnpack PRIVATE cpuinfo)
+-
+-# ---[ Configure pthreadpool
+-IF(NOT TARGET pthreadpool)
+-  SET(PTHREADPOOL_BUILD_TESTS OFF CACHE BOOL "")
+-  SET(PTHREADPOOL_BUILD_BENCHMARKS OFF CACHE BOOL "")
+-  ADD_SUBDIRECTORY(
+-    "${PTHREADPOOL_SOURCE_DIR}"
+-    "${CONFU_DEPENDENCIES_BINARY_DIR}/pthreadpool")
+-ENDIF()
+-IF(NNPACK_CUSTOM_THREADPOOL)
+-  # Depend on pthreadpool interface, but not on implementation.
+-  # This is used when NNPACK user (e.g. Caffe2) provides its own threadpool implementation.
+-  TARGET_LINK_LIBRARIES(nnpack PUBLIC pthreadpool_interface)
+-ELSE()
+-  TARGET_LINK_LIBRARIES(nnpack PUBLIC pthreadpool)
+-ENDIF()
+-TARGET_LINK_LIBRARIES(nnpack_reference_layers PUBLIC pthreadpool)
++TARGET_LINK_LIBRARIES(nnpack PUBLIC cpuinfo)
+ 
+-# ---[ Configure FXdiv
+-IF(NOT TARGET fxdiv)
+-  SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "")
+-  SET(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "")
+-  ADD_SUBDIRECTORY(
+-    "${FXDIV_SOURCE_DIR}"
+-    "${CONFU_DEPENDENCIES_BINARY_DIR}/fxdiv")
+-ENDIF()
+-TARGET_LINK_LIBRARIES(nnpack PRIVATE fxdiv)
+-
+-# ---[ Configure psimd
+-IF(NOT TARGET psimd)
+-  ADD_SUBDIRECTORY(
+-    "${PSIMD_SOURCE_DIR}"
+-    "${CONFU_DEPENDENCIES_BINARY_DIR}/psimd")
+-ENDIF()
+-TARGET_LINK_LIBRARIES(nnpack PRIVATE psimd)
+-
+-# ---[ Configure FP16
+-IF(NOT TARGET fp16)
+-  SET(FP16_BUILD_TESTS OFF CACHE BOOL "")
+-  SET(FP16_BUILD_BENCHMARKS OFF CACHE BOOL "")
+-  ADD_SUBDIRECTORY(
+-    "${FP16_SOURCE_DIR}"
+-    "${CONFU_DEPENDENCIES_BINARY_DIR}/fp16")
+-ENDIF()
+-TARGET_LINK_LIBRARIES(nnpack PRIVATE fp16)
+-TARGET_LINK_LIBRARIES(nnpack_reference_layers PUBLIC fp16)
++TARGET_LINK_LIBRARIES(nnpack PUBLIC pthreadpool)
++TARGET_LINK_LIBRARIES(nnpack_reference_layers PUBLIC pthreadpool)
+ 
+ INSTALL(TARGETS nnpack
+     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+@@ -560,13 +501,6 @@ INSTALL(TARGETS nnpack
+ 
+ IF(NNPACK_BUILD_TESTS)
+   # ---[ Build google test
+-  IF(NOT TARGET gtest)
+-    SET(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+-    ADD_SUBDIRECTORY(
+-      "${GOOGLETEST_SOURCE_DIR}"
+-      "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest")
+-  ENDIF()
+-
+   ADD_EXECUTABLE(convolution-inference-smoketest test/convolution-inference/smoke.cc)
+   NNPACK_TARGET_ENABLE_CXX11(convolution-inference-smoketest)
+   TARGET_INCLUDE_DIRECTORIES(convolution-inference-smoketest PRIVATE test)
diff --git a/gnu/packages/patches/ntfs-3g-CVE-2019-9755.patch b/gnu/packages/patches/ntfs-3g-CVE-2019-9755.patch
deleted file mode 100644
index a7794aed47..0000000000
--- a/gnu/packages/patches/ntfs-3g-CVE-2019-9755.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-Fix CVE-2019-9755:
-
-https://security-tracker.debian.org/tracker/CVE-2019-9755
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9755
-
-Patch copied from upstream source repository:
-
-https://sourceforge.net/p/ntfs-3g/ntfs-3g/ci/85c1634a26faa572d3c558d4cf8aaaca5202d4e9/
-
-From 85c1634a26faa572d3c558d4cf8aaaca5202d4e9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jean-Pierre=20Andr=C3=A9?= <jean-pierre.andre@wanadoo.fr>
-Date: Wed, 19 Dec 2018 15:57:50 +0100
-Subject: [PATCH] Fixed reporting an error when failed to build the mountpoint
-
-The size check was inefficient because getcwd() uses an unsigned int
-argument.
----
- src/lowntfs-3g.c | 6 +++++-
- src/ntfs-3g.c    | 6 +++++-
- 2 files changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/src/lowntfs-3g.c b/src/lowntfs-3g.c
-index 993867fa..0660439b 100644
---- a/src/lowntfs-3g.c
-+++ b/src/lowntfs-3g.c
-@@ -4411,7 +4411,8 @@ int main(int argc, char *argv[])
- 	else {
- 		ctx->abs_mnt_point = (char*)ntfs_malloc(PATH_MAX);
- 		if (ctx->abs_mnt_point) {
--			if (getcwd(ctx->abs_mnt_point,
-+			if ((strlen(opts.mnt_point) < PATH_MAX)
-+			    && getcwd(ctx->abs_mnt_point,
- 				     PATH_MAX - strlen(opts.mnt_point) - 1)) {
- 				strcat(ctx->abs_mnt_point, "/");
- 				strcat(ctx->abs_mnt_point, opts.mnt_point);
-@@ -4419,6 +4420,9 @@ int main(int argc, char *argv[])
- 			/* Solaris also wants the absolute mount point */
- 				opts.mnt_point = ctx->abs_mnt_point;
- #endif /* defined(__sun) && defined (__SVR4) */
-+			} else {
-+				free(ctx->abs_mnt_point);
-+				ctx->abs_mnt_point = (char*)NULL;
- 			}
- 		}
- 	}
-diff --git a/src/ntfs-3g.c b/src/ntfs-3g.c
-index 6ce89fef..4e0912ae 100644
---- a/src/ntfs-3g.c
-+++ b/src/ntfs-3g.c
-@@ -4148,7 +4148,8 @@ int main(int argc, char *argv[])
- 	else {
- 		ctx->abs_mnt_point = (char*)ntfs_malloc(PATH_MAX);
- 		if (ctx->abs_mnt_point) {
--			if (getcwd(ctx->abs_mnt_point,
-+			if ((strlen(opts.mnt_point) < PATH_MAX)
-+			    && getcwd(ctx->abs_mnt_point,
- 				     PATH_MAX - strlen(opts.mnt_point) - 1)) {
- 				strcat(ctx->abs_mnt_point, "/");
- 				strcat(ctx->abs_mnt_point, opts.mnt_point);
-@@ -4156,6 +4157,9 @@ int main(int argc, char *argv[])
- 			/* Solaris also wants the absolute mount point */
- 				opts.mnt_point = ctx->abs_mnt_point;
- #endif /* defined(__sun) && defined (__SVR4) */
-+			} else {
-+				free(ctx->abs_mnt_point);
-+				ctx->abs_mnt_point = (char*)NULL;
- 			}
- 		}
- 	}
--- 
-2.21.0
-
diff --git a/gnu/packages/patches/ocaml-cairo2-caml_ba_array-fix.patch b/gnu/packages/patches/ocaml-cairo2-caml_ba_array-fix.patch
deleted file mode 100644
index 1ebde1997f..0000000000
--- a/gnu/packages/patches/ocaml-cairo2-caml_ba_array-fix.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 3c70f2ff18650c4794556049cd4ea22a58cc719e Mon Sep 17 00:00:00 2001
-From: Christophe Troestler <Christophe.Troestler@umons.ac.be>
-Date: Sun, 27 Sep 2020 23:20:52 +0200
-Subject: [PATCH] Do not store the Caml_ba_array_val pointer during surface
- creation
-
-Extracted from Cairo git-tree on November 22, 2020 by
-Brett Gilio <brettg@gnu.org>
----
- src/cairo_stubs.c     | 3 ++-
- tests/image_create.ml | 5 +++--
- 2 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/src/cairo_stubs.c b/src/cairo_stubs.c
-index 641ee2c..200abf3 100644
---- a/src/cairo_stubs.c
-+++ b/src/cairo_stubs.c
-@@ -1580,6 +1580,7 @@ static cairo_status_t caml_cairo_image_bigarray_attach_proxy
-                                      caml_cairo_image_bigarray_finalize);
- }
- 
-+#define b (Caml_ba_array_val(vb))
- #define SURFACE_CREATE_DATA(name)                                       \
-   CAMLexport value caml_cairo_image_surface_create_for_##name           \
-   (value vb, value vformat, value vwidth, value vheight, value vstride) \
-@@ -1588,7 +1589,6 @@ static cairo_status_t caml_cairo_image_bigarray_attach_proxy
-     CAMLlocal1(vsurf);                                                  \
-     cairo_surface_t* surf;                                              \
-     const int width =  Int_val(vwidth);                                 \
--    struct caml_ba_array *b = Caml_ba_array_val(vb);                    \
-     cairo_status_t status;                                              \
-                                                                         \
-     if ((b->flags & CAML_BA_MANAGED_MASK) == CAML_BA_MAPPED_FILE)       \
-@@ -1610,6 +1610,7 @@ static cairo_status_t caml_cairo_image_bigarray_attach_proxy
- 
- SURFACE_CREATE_DATA(data8)
- SURFACE_CREATE_DATA(data32)
-+#undef b
- 
- #define SURFACE_GET_DATA(type, num_dims, dims ...)                      \
-   CAMLexport value caml_cairo_image_surface_get_##type(value vsurf)     \
-diff --git a/tests/image_create.ml b/tests/image_create.ml
-index eec98d6..b13c206 100644
---- a/tests/image_create.ml
-+++ b/tests/image_create.ml
-@@ -10,6 +10,7 @@ let create() =
- 
- let () =
-   let cr = create() in
-+  printf "With Cairo handle:\n%!";
-   set_source_rgb cr 1. 1. 1.;
-   rectangle cr 0. 0. ~w:300. ~h:300.;
-   fill cr;
-@@ -21,9 +22,9 @@ let () =
-   show_text cr "Hello";
-   Gc.compact();  Gc.compact();
- 
--  eprintf "Write image\n%!";
-+  eprintf "- Write image\n%!";
-   PNG.write (get_target cr) "test_image.png";
--  eprintf "Finish surface\n%!";
-+  eprintf "- Finish surface\n%!";
-   Surface.finish (get_target cr);
-   Gc.compact()
- 
--- 
-2.29.2
-
diff --git a/gnu/packages/patches/ocaml-ppx-variants-ppxlib-api-change.patch b/gnu/packages/patches/ocaml-ppx-variants-ppxlib-api-change.patch
deleted file mode 100644
index b437bfb061..0000000000
--- a/gnu/packages/patches/ocaml-ppx-variants-ppxlib-api-change.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 6103f6fc56f978c847ba7c1f2d9f38ee93a5e337 Mon Sep 17 00:00:00 2001
-From: Sonja Heinze <sonjaleaheinze@gmail.com>
-Date: Tue, 9 Mar 2021 12:57:47 +0100
-Subject: [PATCH] Adapt to Ppxlib's API change
-
-Ppxlib is removing Lexer.keyword_table from the API in exchange for
-the more lightweight Keyword.is_keyword.
-
-Signed-off-by: Sonja Heinze <sonjaleaheinze@gmail.com>
----
-Patch from <https://github.com/janestreet/ppx_variants_conv/pull/9>.
-
- ppx_variants_conv.opam   | 2 +-
- src/ppx_variants_conv.ml | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/ppx_variants_conv.opam b/ppx_variants_conv.opam
-index 7e7148d..b56040f 100644
---- a/ppx_variants_conv.opam
-+++ b/ppx_variants_conv.opam
-@@ -15,7 +15,7 @@ depends: [
-   "base"        {>= "v0.14" & < "v0.15"}
-   "variantslib" {>= "v0.14" & < "v0.15"}
-   "dune"        {>= "2.0.0"}
--  "ppxlib"      {>= "0.14.0"}
-+  "ppxlib"      {>= "0.23.0"}
- ]
- synopsis: "Generation of accessor and iteration functions for ocaml variant types"
- description: "
-diff --git a/src/ppx_variants_conv.ml b/src/ppx_variants_conv.ml
-index 8d60086..112fc78 100644
---- a/src/ppx_variants_conv.ml
-+++ b/src/ppx_variants_conv.ml
-@@ -66,7 +66,7 @@ end
- 
- let variant_name_to_string v =
-   let s = String.lowercase v in
--  if Caml.Hashtbl.mem Lexer.keyword_table s
-+  if Keyword.is_keyword s
-   then s ^ "_"
-   else s
- 
diff --git a/gnu/packages/patches/ocaml-qcheck-fix-test-whitespace.patch b/gnu/packages/patches/ocaml-qcheck-fix-test-whitespace.patch
new file mode 100644
index 0000000000..012f5de31c
--- /dev/null
+++ b/gnu/packages/patches/ocaml-qcheck-fix-test-whitespace.patch
@@ -0,0 +1,24 @@
+From 0cb666fffcbeb78c8c14d271b3ba65ea514bfc44 Mon Sep 17 00:00:00 2001
+From: Julien Lepiller <julien@lepiller.eu>
+Date: Fri, 19 Nov 2021 03:03:21 +0100
+Subject: [PATCH] Fix whitespace issue in test
+
+---
+ example/alcotest/output.txt.expected | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/example/alcotest/output.txt.expected b/example/alcotest/output.txt.expected
+index bde0b83..9f1417c 100644
+--- a/example/alcotest/output.txt.expected
++++ b/example/alcotest/output.txt.expected
+@@ -16,7 +16,6 @@ test `fail_sort_id` failed on ≥ 1 cases: [1; 0] (after 20 shrink steps)
+ [exception] test `fail_sort_id` failed on ≥ 1 cases: [1; 0] (after 20 shrink steps)
+                                            
+             
+-
+  ──────────────────────────────────────────────────────────────────────────────
+ 
+ 3 failures! 5 tests run.
+-- 
+2.33.1
+
diff --git a/gnu/packages/patches/p11-kit-hurd.patch b/gnu/packages/patches/p11-kit-hurd.patch
new file mode 100644
index 0000000000..01699882c4
--- /dev/null
+++ b/gnu/packages/patches/p11-kit-hurd.patch
@@ -0,0 +1,46 @@
+Taken from: https://groups.google.com/g/linux.debian.bugs.dist/c/mX4GpUJih4k.
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -132,6 +132,16 @@ if test "$os_unix" = "yes"; then
+ 	AC_CHECK_FUNCS([getpeereid])
+ 	AC_CHECK_FUNCS([getpeerucred])
+ 	AC_CHECK_FUNCS([issetugid])
++	case "$host_os" in
++	kfreebsd*-gnu | gnu*)
++		have_getpeereid=no
++		AC_CHECK_LIB(bsd, getpeereid, have_getpeereid=yes)
++		if test "x$have_getpeereid" = "xyes"; then
++			AC_DEFINE([HAVE_GETPEEREID], [1], [have getpeereid])
++			AC_SEARCH_LIBS([getpeereid], [bsd])
++		fi
++	;;
++	esac
+ 
+ 	AC_CACHE_CHECK([for thread-local storage class],
+ 		[ac_cv_tls_keyword],
+
+--- a/common/unix-peer.c
++++ b/common/unix-peer.c
+@@ -47,6 +47,11 @@
+ #  include <ucred.h>
+ #endif
+ 
++#ifdef HAVE_GETPEEREID
++/* Declare getpeereid from /usr/include/bsd/unistd.h */
++extern int getpeereid(int s, uid_t *euid, gid_t *egid);
++#endif
++
+ /* Returns the unix domain socket peer information.
+  * Returns zero on success.
+  */
+@@ -73,7 +78,8 @@ p11_get_upeer_id (int cfd, uid_t *uid, u
+ 		*pid = cr.pid;
+ 
+ #elif defined(HAVE_GETPEEREID)
+-	/* *BSD/MacOSX */
++	/* *BSD/MacOSX/kFreeBSD/Hurd */
++
+ 	uid_t euid;
+ 	gid_t egid;
+ 
\ No newline at end of file
diff --git a/gnu/packages/patches/php-bug-74093-test.patch b/gnu/packages/patches/php-bug-74093-test.patch
new file mode 100644
index 0000000000..07b1949cef
--- /dev/null
+++ b/gnu/packages/patches/php-bug-74093-test.patch
@@ -0,0 +1,48 @@
+From c641825c64e42627a2c9cac969b371ed532e0b57 Mon Sep 17 00:00:00 2001
+From: Ryan Sundberg <ryan@arctype.co>
+Date: Mon, 4 Oct 2021 20:12:25 -0700
+Subject: [PATCH] Zend/tests/bug74093.phpt: Fix failing test case
+
+This test case fails (on non-Windows hosts, where it is enabled) due
+to mismatching output in the error log language. This fixes the
+expectation, and also rewrites the test procedure in a more stable
+fashion.
+
+The objective of the test case is to run a program that exceeds
+the max_execution_time and verify that the process was aborted. The
+previous implementation tested this using a loop on array_intersect with
+large enough inputs to "probably" take enough time to trigger
+max_execution_time to abort it. With faster CPUs, over time this test
+can become flaky. Instead we simply spin a loop until enough
+wall clock time has passed to check our assertion.
+---
+ Zend/tests/bug74093.phpt | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Zend/tests/bug74093.phpt b/Zend/tests/bug74093.phpt
+index 7f20285805..32eb445ddc 100644
+--- a/Zend/tests/bug74093.phpt
++++ b/Zend/tests/bug74093.phpt
+@@ -1,5 +1,5 @@
+ --TEST--
+-Bug #74093 (Maximum execution time of n+2 seconds exceed not written in error_log)
++Bug #74093 (Maximum execution time exceeded not written in error_log)
+ --SKIPIF--
+ <?php
+ if (getenv("SKIP_SLOW_TESTS")) die("skip slow test");
+@@ -12,9 +12,9 @@ max_execution_time=1
+ hard_timeout=1
+ --FILE--
+ <?php
+-$a1 = range(1, 1000000);
+-$a2 = range(100000, 1999999);
+-array_intersect($a1, $a2);
++$start = time();
++while (time() - $start < 5);
++die("Failed to interrupt execution");
+ ?>
+ --EXPECTF--
+-Fatal error: Maximum execution time of 1+1 seconds exceeded %s
++Fatal error: Maximum execution time of 1 second exceeded in %s
+--
+2.31.1
diff --git a/gnu/packages/patches/php-openssl_x509_checkpurpose_basic.patch b/gnu/packages/patches/php-openssl_x509_checkpurpose_basic.patch
new file mode 100644
index 0000000000..427965f231
--- /dev/null
+++ b/gnu/packages/patches/php-openssl_x509_checkpurpose_basic.patch
@@ -0,0 +1,108 @@
+From 98175fc7f1623873ceb2e9a017a319d19bfb3912 Mon Sep 17 00:00:00 2001
+From: "Christoph M. Becker" <cmbecker69@gmx.de>
+Date: Sun, 12 Dec 2021 13:41:37 +0100
+Subject: [PATCH] Fix openssl_x509_checkpurpose_basic.phpt
+
+This test fails because san-cert.pem and san-ca.pem have expired.  We
+fix that by using the CertificateGenerator to generate temporary certs
+during the test run.  Since san-cert.pem and san-ca.pem have been
+identical, we only generate one certificate.
+
+Closes GH-7763.
+---
+ .../openssl_x509_checkpurpose_basic.phpt      | 10 +++++-
+ ext/openssl/tests/san-ca.pem                  | 15 ---------
+ ext/openssl/tests/san-cert.pem                | 31 -------------------
+ 3 files changed, 9 insertions(+), 47 deletions(-)
+ delete mode 100644 ext/openssl/tests/san-ca.pem
+ delete mode 100644 ext/openssl/tests/san-cert.pem
+
+diff --git a/ext/openssl/tests/openssl_x509_checkpurpose_basic.phpt b/ext/openssl/tests/openssl_x509_checkpurpose_basic.phpt
+index 99b4f0bdff31..35629bd93626 100644
+--- a/ext/openssl/tests/openssl_x509_checkpurpose_basic.phpt
++++ b/ext/openssl/tests/openssl_x509_checkpurpose_basic.phpt
+@@ -8,10 +8,14 @@ if (OPENSSL_VERSION_NUMBER < 0x10000000) die("skip Output requires OpenSSL 1.0")
+ ?>
+ --FILE--
+ <?php
++include 'CertificateGenerator.inc';
++$certificateGenerator = new CertificateGenerator();
++$certificateGenerator->saveCaCert(__DIR__ . "/san-cert.pem");
++
+ $cert = "file://" . __DIR__ . "/cert.crt";
+ $bert = "file://" . __DIR__ . "/bug41033.pem";
+ $sert = "file://" . __DIR__ . "/san-cert.pem";
+-$cpca = __DIR__ . "/san-ca.pem";
++$cpca = __DIR__ . "/san-cert.pem";
+ $utfl = __DIR__ . "/sni_server_uk.pem";
+ $rcrt = openssl_x509_read($cert);
+ 
+@@ -84,6 +88,10 @@ var_dump(openssl_x509_checkpurpose($sert, X509_PURPOSE_SMIME_ENCRYPT, array($cpc
+ var_dump(openssl_x509_checkpurpose($sert, X509_PURPOSE_CRL_SIGN, array($cpca), $utfl));
+ var_dump(openssl_x509_checkpurpose($sert, X509_PURPOSE_ANY, array($cpca), $utfl));
+ ?>
++--CLEAN--
++<?php
++@unlink(__DIR__ . "/san-cert.pem");
++?>
+ --EXPECT--
+ bool(false)
+ bool(false)
+diff --git a/ext/openssl/tests/san-ca.pem b/ext/openssl/tests/san-ca.pem
+deleted file mode 100644
+index 88682ba2dcf6..000000000000
+--- a/ext/openssl/tests/san-ca.pem
++++ /dev/null
+@@ -1,15 +0,0 @@
+------BEGIN CERTIFICATE-----
+-MIICYTCCAcqgAwIBAgIJAIaqxtY5dwjtMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNV
+-BAYTAlVTMQswCQYDVQQIEwJNTjEUMBIGA1UEBxMLTWlubmVhcG9saXMxITAfBgNV
+-BAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDAeFw0xMzA5MjQwODA1NTFaFw0y
+-MTEyMTEwODA1NTFaMFMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNTjEUMBIGA1UE
+-BxMLTWlubmVhcG9saXMxITAfBgNVBAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRl
+-ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsFGqfbU/8D+KjroQl4XMyt9m
+-dcSP7iZtqphOu9nVZxYAAqfaqj8FnC/pwYV3TU6ZHndLTQAllwYT3sQBQPPGmZQ9
+-clSIMEL003t3pi4ZVXkttG6Vvr+Z9PBcHhlKLQ7WMHnn4qctllWXTSoyTQpkETF3
+-Fc3mrG5G37BhoUno7NECAwEAAaM9MDswOQYDVR0RBDIwMIILZXhhbXBsZS5vcmeC
+-D3d3dy5leGFtcGxlLm9yZ4IQdGVzdC5leGFtcGxlLm9yZzANBgkqhkiG9w0BAQUF
+-AAOBgQBf/FZhzheIcQJ+dyTk8xQ/nJLvpmBhbd1LNtfwk/MsC9UHsz4QXs9sBw1k
+-rH0FjoqgM6avj7zKHJFTj6q7Rd+OX5V4HynYPhX67sWbN3KWEHffL98nGGd/bo3X
+-pSjNk5vnyKYiwdUUe11Ac9csh0HcSBbhOYjy0T/i9AlQcKbuCg==
+------END CERTIFICATE-----
+diff --git a/ext/openssl/tests/san-cert.pem b/ext/openssl/tests/san-cert.pem
+deleted file mode 100644
+index 923d490e72fd..000000000000
+--- a/ext/openssl/tests/san-cert.pem
++++ /dev/null
+@@ -1,31 +0,0 @@
+------BEGIN CERTIFICATE-----
+-MIICYTCCAcqgAwIBAgIJAIaqxtY5dwjtMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNV
+-BAYTAlVTMQswCQYDVQQIEwJNTjEUMBIGA1UEBxMLTWlubmVhcG9saXMxITAfBgNV
+-BAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDAeFw0xMzA5MjQwODA1NTFaFw0y
+-MTEyMTEwODA1NTFaMFMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNTjEUMBIGA1UE
+-BxMLTWlubmVhcG9saXMxITAfBgNVBAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRl
+-ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsFGqfbU/8D+KjroQl4XMyt9m
+-dcSP7iZtqphOu9nVZxYAAqfaqj8FnC/pwYV3TU6ZHndLTQAllwYT3sQBQPPGmZQ9
+-clSIMEL003t3pi4ZVXkttG6Vvr+Z9PBcHhlKLQ7WMHnn4qctllWXTSoyTQpkETF3
+-Fc3mrG5G37BhoUno7NECAwEAAaM9MDswOQYDVR0RBDIwMIILZXhhbXBsZS5vcmeC
+-D3d3dy5leGFtcGxlLm9yZ4IQdGVzdC5leGFtcGxlLm9yZzANBgkqhkiG9w0BAQUF
+-AAOBgQBf/FZhzheIcQJ+dyTk8xQ/nJLvpmBhbd1LNtfwk/MsC9UHsz4QXs9sBw1k
+-rH0FjoqgM6avj7zKHJFTj6q7Rd+OX5V4HynYPhX67sWbN3KWEHffL98nGGd/bo3X
+-pSjNk5vnyKYiwdUUe11Ac9csh0HcSBbhOYjy0T/i9AlQcKbuCg==
+------END CERTIFICATE-----
+------BEGIN PRIVATE KEY-----
+-MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALBRqn21P/A/io66
+-EJeFzMrfZnXEj+4mbaqYTrvZ1WcWAAKn2qo/BZwv6cGFd01OmR53S00AJZcGE97E
+-AUDzxpmUPXJUiDBC9NN7d6YuGVV5LbRulb6/mfTwXB4ZSi0O1jB55+KnLZZVl00q
+-Mk0KZBExdxXN5qxuRt+wYaFJ6OzRAgMBAAECgYB11e5iWvqjPmQEZRdnnJU0VD8u
+-n7ItT+Nk6qtb4gY8Abj6DWIW+01th5vqqJ8FvGyartFVYa69kuM+srG/zevAZWeu
+-fGZtwiwZR4DRSyRcPp4rnNiksK3dkAZA6UewmRDPv8uyHJlXc5i+Ft1ILJ5Q5jgn
+-UkC4z3EJP5Se9KZywQJBAOO4lRq42wLsYr2SDrQDSs4leie3FKc2bgvjF7Djosh1
+-ZYbf55F5b9w1zgnccmni2HkqOnyFu4SKarmXyCsYxrkCQQDGNvnUh7/zZswrdWZ/
+-PMp9zVDTh/5Oc2B4ByNLw1ERDwYhjchKgPRlQvn4cp3Pwf3UYPQ/8XGXzzEJey3A
+-r0rZAkBf/tDEOgcBPXsGZQrTscuYCU5sbY5ESvqrAilbhSp7DJom+D5bIfEYyIm5
+-uHd20Yzlzvpmwc1huyPwZt6X5FLpAkATDReoGMAXSesXxjnqwtIHk2NQYYLM0YQV
+-JUJ8NrKk/Bevw+vbVVeoH+7ctU97t36JGiR/vNoZKD3jVmaIXZDJAkEA4wJbwzIo
+-L32mu9VmZa7wjmfkraQEmXTPaA5D9lNC0AwRTgkj+x2Qe1vawNblNK9PPLBDdplQ
+-L//53ADq/wv5rA==
+------END PRIVATE KEY-----
diff --git a/gnu/packages/patches/pigx-bsseq-no-citeproc.patch b/gnu/packages/patches/pigx-bsseq-no-citeproc.patch
new file mode 100644
index 0000000000..882e660fe4
--- /dev/null
+++ b/gnu/packages/patches/pigx-bsseq-no-citeproc.patch
@@ -0,0 +1,33 @@
+diff -Naur pigx_bsseq-0.1.5/configure.ac pigx_bsseq-0.1.5.patched/configure.ac
+--- pigx_bsseq-0.1.5/configure.ac	2021-06-08 15:28:08.000000000 +0200
++++ pigx_bsseq-0.1.5.patched/configure.ac	2021-10-05 14:43:56.806529137 +0200
+@@ -38,7 +38,6 @@
+ find_or_override_prog([GNUBASH],         [bash])
+ find_or_override_prog([SNAKEMAKE],       [snakemake])
+ find_or_override_prog([PANDOC],          [pandoc])
+-find_or_override_prog([PANDOC_CITEPROC], [pandoc-citeproc])
+ find_or_override_prog([FASTQC],          [fastqc])
+ find_or_override_prog([MULTIQC],         [multiqc])
+ find_or_override_prog([TRIMGALORE],      [trim_galore])
+diff -Naur pigx_bsseq-0.1.5/Makefile.in pigx_bsseq-0.1.5.patched/Makefile.in
+--- pigx_bsseq-0.1.5/Makefile.in	2021-06-08 16:17:03.000000000 +0200
++++ pigx_bsseq-0.1.5.patched/Makefile.in	2021-10-05 14:43:34.635876855 +0200
+@@ -408,7 +408,6 @@
+ PACKAGE_URL = @PACKAGE_URL@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PANDOC = @PANDOC@
+-PANDOC_CITEPROC = @PANDOC_CITEPROC@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ PYTHON = @PYTHON@
+ PYTHONPATH = @PYTHONPATH@
+diff -Naur pigx_bsseq-0.1.5/pigx-common/common/pigx-runner.in pigx_bsseq-0.1.5.patched/pigx-common/common/pigx-runner.in
+--- pigx_bsseq-0.1.5/pigx-common/common/pigx-runner.in	2021-06-08 10:14:29.000000000 +0200
++++ pigx_bsseq-0.1.5.patched/pigx-common/common/pigx-runner.in	2021-10-05 14:43:44.296161069 +0200
+@@ -375,7 +375,6 @@
+     if path.exists(bin): shutil.rmtree(bin)
+     os.makedirs(bin, exist_ok=True)
+     os.symlink('@PANDOC@', path.join(bin, "pandoc"))
+-    os.symlink('@PANDOC_CITEPROC@', path.join(bin, "pandoc-citeproc"))
+     os.symlink('@RSCRIPT@', path.join(bin, "Rscript"))
+     os.environ['PATH'] = path.abspath(bin) + ":" + os.environ['PATH']
+     os.environ['PIGX_PATH'] = path.abspath(bin) + ":" + os.environ['PATH']
diff --git a/gnu/packages/patches/pigx-chipseq-no-citeproc.patch b/gnu/packages/patches/pigx-chipseq-no-citeproc.patch
new file mode 100644
index 0000000000..b01820f110
--- /dev/null
+++ b/gnu/packages/patches/pigx-chipseq-no-citeproc.patch
@@ -0,0 +1,33 @@
+diff -Naur pigx_chipseq-0.0.53/configure.ac pigx_chipseq-0.0.53.patched/configure.ac
+--- pigx_chipseq-0.0.53/configure.ac	2021-09-28 11:14:12.000000000 +0200
++++ pigx_chipseq-0.0.53.patched/configure.ac	2021-10-07 14:48:53.034054327 +0200
+@@ -52,7 +52,6 @@
+ find_or_override_prog([MACS2],           [macs2])
+ find_or_override_prog([SNAKEMAKE],       [snakemake])
+ find_or_override_prog([PANDOC],          [pandoc])
+-find_or_override_prog([PANDOC_CITEPROC], [pandoc-citeproc])
+ find_or_override_prog([FASTQC],          [fastqc])
+ find_or_override_prog([BOWTIE2],         [bowtie2])
+ find_or_override_prog([BOWTIE2_BUILD],   [bowtie2-build])
+diff -Naur pigx_chipseq-0.0.53/Makefile.in pigx_chipseq-0.0.53.patched/Makefile.in
+--- pigx_chipseq-0.0.53/Makefile.in	2021-09-28 11:55:05.000000000 +0200
++++ pigx_chipseq-0.0.53.patched/Makefile.in	2021-10-07 14:48:37.195577143 +0200
+@@ -407,7 +407,6 @@
+ PACKAGE_URL = @PACKAGE_URL@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PANDOC = @PANDOC@
+-PANDOC_CITEPROC = @PANDOC_CITEPROC@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ PERL = @PERL@
+ PYTHON = @PYTHON@
+diff -Naur pigx_chipseq-0.0.53/pigx-common/common/pigx-runner.in pigx_chipseq-0.0.53.patched/pigx-common/common/pigx-runner.in
+--- pigx_chipseq-0.0.53/pigx-common/common/pigx-runner.in	2021-09-27 18:16:42.000000000 +0200
++++ pigx_chipseq-0.0.53.patched/pigx-common/common/pigx-runner.in	2021-10-07 14:48:44.200788218 +0200
+@@ -379,7 +379,6 @@
+     if path.exists(bin): shutil.rmtree(bin)
+     os.makedirs(bin, exist_ok=True)
+     os.symlink('@PANDOC@', path.join(bin, "pandoc"))
+-    os.symlink('@PANDOC_CITEPROC@', path.join(bin, "pandoc-citeproc"))
+     os.symlink('@RSCRIPT@', path.join(bin, "Rscript"))
+     os.environ['PATH'] = path.abspath(bin) + ":" + os.environ['PATH']
+     os.environ['PIGX_PATH'] = path.abspath(bin) + ":" + os.environ['PATH']
diff --git a/gnu/packages/patches/pigx-rnaseq-no-citeproc.patch b/gnu/packages/patches/pigx-rnaseq-no-citeproc.patch
new file mode 100644
index 0000000000..366ae3890a
--- /dev/null
+++ b/gnu/packages/patches/pigx-rnaseq-no-citeproc.patch
@@ -0,0 +1,33 @@
+diff -Naur pigx_rnaseq-0.0.19/configure.ac pigx_rnaseq-0.0.19.patched/configure.ac
+--- pigx_rnaseq-0.0.19/configure.ac	2021-07-23 14:01:00.304391428 +0200
++++ pigx_rnaseq-0.0.19.patched/configure.ac	2021-10-06 13:51:29.512960106 +0200
+@@ -38,7 +38,6 @@
+ find_or_override_prog([GNUBASH],         [bash])
+ find_or_override_prog([SNAKEMAKE],       [snakemake])
+ find_or_override_prog([PANDOC],          [pandoc])
+-find_or_override_prog([PANDOC_CITEPROC], [pandoc-citeproc])
+ find_or_override_prog([STAR],            [STAR])
+ find_or_override_prog([HISAT2],          [hisat2])
+ find_or_override_prog([HISAT2_BUILD],    [hisat2-build])
+diff -Naur pigx_rnaseq-0.0.19/Makefile.in pigx_rnaseq-0.0.19.patched/Makefile.in
+--- pigx_rnaseq-0.0.19/Makefile.in	2021-08-13 13:40:10.402922844 +0200
++++ pigx_rnaseq-0.0.19.patched/Makefile.in	2021-10-06 13:51:04.052247524 +0200
+@@ -410,7 +410,6 @@
+ PACKAGE_URL = @PACKAGE_URL@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PANDOC = @PANDOC@
+-PANDOC_CITEPROC = @PANDOC_CITEPROC@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ PYTHON = @PYTHON@
+ PYTHONPATH = @PYTHONPATH@
+diff -Naur pigx_rnaseq-0.0.19/pigx-common/common/pigx-runner.in pigx_rnaseq-0.0.19.patched/pigx-common/common/pigx-runner.in
+--- pigx_rnaseq-0.0.19/pigx-common/common/pigx-runner.in	2021-08-13 13:27:50.494352532 +0200
++++ pigx_rnaseq-0.0.19.patched/pigx-common/common/pigx-runner.in	2021-10-06 13:51:38.798220108 +0200
+@@ -379,7 +379,6 @@
+     if path.exists(bin): shutil.rmtree(bin)
+     os.makedirs(bin, exist_ok=True)
+     os.symlink('@PANDOC@', path.join(bin, "pandoc"))
+-    os.symlink('@PANDOC_CITEPROC@', path.join(bin, "pandoc-citeproc"))
+     os.symlink('@RSCRIPT@', path.join(bin, "Rscript"))
+     os.environ['PATH'] = path.abspath(bin) + ":" + os.environ['PATH']
+     os.environ['PIGX_PATH'] = path.abspath(bin) + ":" + os.environ['PATH']
diff --git a/gnu/packages/patches/pigx-sars-cov2-ww-no-citeproc.patch b/gnu/packages/patches/pigx-sars-cov2-ww-no-citeproc.patch
new file mode 100644
index 0000000000..3f34bca6b2
--- /dev/null
+++ b/gnu/packages/patches/pigx-sars-cov2-ww-no-citeproc.patch
@@ -0,0 +1,33 @@
+diff -Naur pigx_sars-cov2-ww-0.0.3/configure.ac pigx_sars-cov2-ww-0.0.3.patched/configure.ac
+--- pigx_sars-cov2-ww-0.0.3/configure.ac	2021-06-10 10:12:00.552889984 +0200
++++ pigx_sars-cov2-ww-0.0.3.patched/configure.ac	2021-10-05 14:52:32.318695129 +0200
+@@ -50,7 +50,6 @@
+ find_or_override_prog([MULTIQC],         [multiqc])
+ find_or_override_prog([WGET],            [wget])
+ find_or_override_prog([PANDOC],          [pandoc])
+-find_or_override_prog([PANDOC_CITEPROC], [pandoc-citeproc])
+ 
+ AC_ARG_ENABLE([r-packages-check],
+   AS_HELP_STRING([--disable-r-packages-check], [Do not check any R packages.]),
+diff -Naur pigx_sars-cov2-ww-0.0.3/Makefile.in pigx_sars-cov2-ww-0.0.3.patched/Makefile.in
+--- pigx_sars-cov2-ww-0.0.3/Makefile.in	2021-08-05 16:33:59.164123383 +0200
++++ pigx_sars-cov2-ww-0.0.3.patched/Makefile.in	2021-10-05 14:52:41.272958547 +0200
+@@ -402,7 +402,6 @@
+ PACKAGE_URL = @PACKAGE_URL@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PANDOC = @PANDOC@
+-PANDOC_CITEPROC = @PANDOC_CITEPROC@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ PRINSEQ = @PRINSEQ@
+ PYTHON = @PYTHON@
+diff -Naur pigx_sars-cov2-ww-0.0.3/pigx-common/common/pigx-runner.in pigx_sars-cov2-ww-0.0.3.patched/pigx-common/common/pigx-runner.in
+--- pigx_sars-cov2-ww-0.0.3/pigx-common/common/pigx-runner.in	2021-07-30 11:10:17.913115902 +0200
++++ pigx_sars-cov2-ww-0.0.3.patched/pigx-common/common/pigx-runner.in	2021-10-05 14:52:23.602438714 +0200
+@@ -379,7 +379,6 @@
+     if path.exists(bin): shutil.rmtree(bin)
+     os.makedirs(bin, exist_ok=True)
+     os.symlink('@PANDOC@', path.join(bin, "pandoc"))
+-    os.symlink('@PANDOC_CITEPROC@', path.join(bin, "pandoc-citeproc"))
+     os.symlink('@RSCRIPT@', path.join(bin, "Rscript"))
+     os.environ['PATH'] = path.abspath(bin) + ":" + os.environ['PATH']
+     os.environ['PIGX_PATH'] = path.abspath(bin) + ":" + os.environ['PATH']
diff --git a/gnu/packages/patches/pigx-scrnaseq-no-citeproc.patch b/gnu/packages/patches/pigx-scrnaseq-no-citeproc.patch
new file mode 100644
index 0000000000..4cce33fb01
--- /dev/null
+++ b/gnu/packages/patches/pigx-scrnaseq-no-citeproc.patch
@@ -0,0 +1,33 @@
+diff -Naur pigx_scrnaseq-1.1.7/configure.ac pigx_scrnaseq-1.1.7.patched/configure.ac
+--- pigx_scrnaseq-1.1.7/configure.ac	2020-03-17 14:37:46.000000000 +0100
++++ pigx_scrnaseq-1.1.7.patched/configure.ac	2021-10-06 13:55:49.779271317 +0200
+@@ -43,7 +43,6 @@
+ find_or_override_prog([GNUBASH],         [bash])
+ find_or_override_prog([SNAKEMAKE],       [snakemake])
+ find_or_override_prog([PANDOC],          [pandoc])
+-find_or_override_prog([PANDOC_CITEPROC], [pandoc-citeproc])
+ find_or_override_prog([FASTQC],          [fastqc])
+ find_or_override_prog([STAR],            [STAR])
+ find_or_override_prog([SAMTOOLS],        [samtools])
+diff -Naur pigx_scrnaseq-1.1.7/Makefile.in pigx_scrnaseq-1.1.7.patched/Makefile.in
+--- pigx_scrnaseq-1.1.7/Makefile.in	2020-11-30 16:55:48.000000000 +0100
++++ pigx_scrnaseq-1.1.7.patched/Makefile.in	2021-10-06 13:55:52.224340194 +0200
+@@ -395,7 +395,6 @@
+ PACKAGE_URL = @PACKAGE_URL@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PANDOC = @PANDOC@
+-PANDOC_CITEPROC = @PANDOC_CITEPROC@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ PERL = @PERL@
+ PYTHON = @PYTHON@
+diff -Naur pigx_scrnaseq-1.1.7/pigx-scrnaseq.in pigx_scrnaseq-1.1.7.patched/pigx-scrnaseq.in
+--- pigx_scrnaseq-1.1.7/pigx-scrnaseq.in	2020-11-30 16:08:55.000000000 +0100
++++ pigx_scrnaseq-1.1.7.patched/pigx-scrnaseq.in	2021-10-06 13:55:47.889218079 +0200
+@@ -274,7 +274,6 @@
+     if path.exists(bin): shutil.rmtree(bin)
+     os.makedirs(bin, exist_ok=True)
+     os.symlink('@PANDOC@', path.join(bin, "pandoc"))
+-    os.symlink('@PANDOC_CITEPROC@', path.join(bin, "pandoc-citeproc"))
+     os.symlink('@RSCRIPT@', path.join(bin, "Rscript"))
+     os.environ['PATH'] = path.abspath(bin) + ":" + os.environ['PATH']
+     os.environ['PIGX_PATH'] = path.abspath(bin) + ":" + os.environ['PATH']
diff --git a/gnu/packages/patches/pitivi-fix-build-with-meson-0.60.patch b/gnu/packages/patches/pitivi-fix-build-with-meson-0.60.patch
new file mode 100644
index 0000000000..652a86bff7
--- /dev/null
+++ b/gnu/packages/patches/pitivi-fix-build-with-meson-0.60.patch
@@ -0,0 +1,46 @@
+From b54da52289f9578d7021f466d731cfd48330e5fe Mon Sep 17 00:00:00 2001
+From: Leo Famulari <leo@famulari.name>
+Date: Thu, 25 Nov 2021 18:56:44 -0500
+Subject: [PATCH] Fix build with Meson 0.60.
+
+https://gitlab.gnome.org/GNOME/pitivi/-/issues/2593
+
+* data/meson.build: Adjust to changes in Meson 0.60.
+---
+ data/meson.build | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index 2ea82cf..60d2316 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -6,7 +6,7 @@ install_subdir('audiopresets', install_dir: pkgdatadir)
+ install_subdir('videopresets', install_dir: pkgdatadir)
+ install_subdir('gstpresets', install_dir: pkgdatadir)
+ 
+-desktop_file = i18n.merge_file('org.pitivi.Pitivi.desktop',
++desktop_file = i18n.merge_file(
+     type: 'desktop',
+     output : 'org.pitivi.Pitivi.desktop',
+     input : 'org.pitivi.Pitivi.desktop.in',
+@@ -25,7 +25,7 @@ if desktop_file_validate.found()
+   )
+ endif
+ 
+-appdata_file = i18n.merge_file('org.pitivi.Pitivi.appdata.xml',
++appdata_file = i18n.merge_file(
+     type: 'xml',
+     output : 'org.pitivi.Pitivi.appdata.xml',
+     input : 'org.pitivi.Pitivi.appdata.xml.in',
+@@ -43,7 +43,7 @@ if appstream_util.found()
+   )
+ endif
+ 
+-i18n.merge_file('org.pitivi.Pitivi-mime.xml',
++i18n.merge_file(
+     output : 'org.pitivi.Pitivi-mime.xml',
+     input : 'org.pitivi.Pitivi-mime.xml.in',
+     po_dir: podir,
+-- 
+2.33.1
+
diff --git a/gnu/packages/patches/polkit-CVE-2021-3560.patch b/gnu/packages/patches/polkit-CVE-2021-3560.patch
deleted file mode 100644
index 9aa0373fda..0000000000
--- a/gnu/packages/patches/polkit-CVE-2021-3560.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-This patch fixes CVE-2021-3560, "local privilege escalation using
-polkit_system_bus_name_get_creds_sync()":
-
-  https://www.openwall.com/lists/oss-security/2021/06/03/1
-
-Patch from <https://gitlab.freedesktop.org/polkit/polkit/-/commit/a04d13a>.
-
-diff --git a/src/polkit/polkitsystembusname.c b/src/polkit/polkitsystembusname.c
-index 8daa12cb9093c1d765c7b83654a2b8d0d382378e..8ed13631508dd96624898df90ee2ece4dcf3e1e5 100644
---- a/src/polkit/polkitsystembusname.c
-+++ b/src/polkit/polkitsystembusname.c
-@@ -435,6 +435,9 @@ polkit_system_bus_name_get_creds_sync (PolkitSystemBusName           *system_bus
-   while (!((data.retrieved_uid && data.retrieved_pid) || data.caught_error))
-     g_main_context_iteration (tmp_context, TRUE);
- 
-+  if (data.caught_error)
-+    goto out;
-+
-   if (out_uid)
-     *out_uid = data.uid;
-   if (out_pid)
diff --git a/gnu/packages/patches/polkit-configure-elogind.patch b/gnu/packages/patches/polkit-configure-elogind.patch
new file mode 100644
index 0000000000..8fefb7a0c2
--- /dev/null
+++ b/gnu/packages/patches/polkit-configure-elogind.patch
@@ -0,0 +1,15 @@
+Even when the polkit configure script detects elogind, it does not use
+it.  This patch ensures that elogind is used when it is detected.
+
+diff -ruN a/configure b/configure
+--- a/configure	1969-12-31 19:00:01.000000000 -0500
++++ b/configure	2021-11-19 00:04:55.581385020 -0500
+@@ -20390,7 +20390,7 @@
+ 
+ 
+ 
+- if test "$have_libsystemd" = "yes"; then
++ if test "$have_libsystemd" = "yes" || test "$have_libelogind" = "yes"; then
+   HAVE_LIBSYSTEMD_TRUE=
+   HAVE_LIBSYSTEMD_FALSE='#'
+ else
diff --git a/gnu/packages/patches/polkit-use-duktape.patch b/gnu/packages/patches/polkit-use-duktape.patch
new file mode 100644
index 0000000000..4eaa7963c2
--- /dev/null
+++ b/gnu/packages/patches/polkit-use-duktape.patch
@@ -0,0 +1,5030 @@
+From 4f66a9549a393e4d74b93eb85301a04ea94bc750 Mon Sep 17 00:00:00 2001
+From: Wu Xiaotian <yetist@gmail.com>
+Date: Wed, 24 Jul 2019 15:55:17 +0800
+Subject: [PATCH 01/16] Add duktape as javascript engine.
+
+Signed-off-by: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+---
+ configure.ac                                  |   28 +-
+ src/polkitbackend/Makefile.am                 |   14 +-
+ .../polkitbackendduktapeauthority.c           | 1402 +++++++++++++++++
+ 3 files changed, 1436 insertions(+), 8 deletions(-)
+ create mode 100644 src/polkitbackend/polkitbackendduktapeauthority.c
+
+diff --git a/configure.ac b/configure.ac
+index e434ca2..5a03593 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -80,11 +80,22 @@ PKG_CHECK_MODULES(GLIB, [gmodule-2.0 gio-unix-2.0 >= 2.30.0])
+ AC_SUBST(GLIB_CFLAGS)
+ AC_SUBST(GLIB_LIBS)
+ 
+-PKG_CHECK_MODULES(LIBJS, [mozjs-78])
+-
+-AC_SUBST(LIBJS_CFLAGS)
+-AC_SUBST(LIBJS_CXXFLAGS)
+-AC_SUBST(LIBJS_LIBS)
++dnl ---------------------------------------------------------------------------
++dnl - Check javascript backend
++dnl ---------------------------------------------------------------------------
++AC_ARG_WITH(duktape, AS_HELP_STRING([--with-duktape],[Use Duktape as javascript backend]),with_duktape=yes,with_duktape=no)
++AS_IF([test x${with_duktape} == xyes], [
++  PKG_CHECK_MODULES(LIBJS, [duktape >= 2.0.0 ])
++  AC_SUBST(LIBJS_CFLAGS)
++  AC_SUBST(LIBJS_LIBS)
++], [
++  PKG_CHECK_MODULES(LIBJS, [mozjs-78])
++
++  AC_SUBST(LIBJS_CFLAGS)
++  AC_SUBST(LIBJS_CXXFLAGS)
++  AC_SUBST(LIBJS_LIBS)
++])
++AM_CONDITIONAL(USE_DUKTAPE, [test x$with_duktape == xyes], [Using duktape as javascript engine library])
+ 
+ EXPAT_LIB=""
+ AC_ARG_WITH(expat, [  --with-expat=<dir>      Use expat from here],
+@@ -585,6 +596,13 @@ echo "
+         PAM support:                ${have_pam}
+         systemdsystemunitdir:       ${systemdsystemunitdir}
+         polkitd user:               ${POLKITD_USER}"
++if test "x${with_duktape}" = xyes; then
++echo "
++        Javascript engine:          Duktape"
++else
++echo "
++        Javascript engine:          Mozjs"
++fi
+ 
+ if test "$have_pam" = yes ; then
+ echo "
+diff --git a/src/polkitbackend/Makefile.am b/src/polkitbackend/Makefile.am
+index 7e3c080..abcbc6f 100644
+--- a/src/polkitbackend/Makefile.am
++++ b/src/polkitbackend/Makefile.am
+@@ -33,7 +33,7 @@ libpolkit_backend_1_la_SOURCES =                                   			\
+ 	polkitbackendprivate.h								\
+ 	polkitbackendauthority.h		polkitbackendauthority.c		\
+ 	polkitbackendinteractiveauthority.h	polkitbackendinteractiveauthority.c	\
+-	polkitbackendjsauthority.h		polkitbackendjsauthority.cpp		\
++	polkitbackendjsauthority.h				\
+ 	polkitbackendactionpool.h		polkitbackendactionpool.c		\
+ 	polkitbackendactionlookup.h		polkitbackendactionlookup.c		\
+         $(NULL)
+@@ -51,19 +51,27 @@ libpolkit_backend_1_la_CFLAGS =                                        	\
+         -D_POLKIT_BACKEND_COMPILATION                                  	\
+         $(GLIB_CFLAGS)							\
+ 	$(LIBSYSTEMD_CFLAGS)						\
+-	$(LIBJS_CFLAGS)							\
++	$(LIBJS_CFLAGS)						\
+         $(NULL)
+ 
+ libpolkit_backend_1_la_CXXFLAGS = $(libpolkit_backend_1_la_CFLAGS)
+ 
+ libpolkit_backend_1_la_LIBADD =                               		\
+         $(GLIB_LIBS)							\
++        $(DUKTAPE_LIBS)							\
+ 	$(LIBSYSTEMD_LIBS)						\
+ 	$(top_builddir)/src/polkit/libpolkit-gobject-1.la		\
+ 	$(EXPAT_LIBS)							\
+-	$(LIBJS_LIBS)							\
++	$(LIBJS_LIBS)                                                   \
+         $(NULL)
+ 
++if USE_DUKTAPE
++libpolkit_backend_1_la_SOURCES += polkitbackendduktapeauthority.c
++libpolkit_backend_1_la_LIBADD += -lm
++else
++libpolkit_backend_1_la_SOURCES += polkitbackendjsauthority.cpp
++endif
++
+ rulesdir = $(sysconfdir)/polkit-1/rules.d
+ rules_DATA = 50-default.rules
+ 
+diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c
+new file mode 100644
+index 0000000..ae98453
+--- /dev/null
++++ b/src/polkitbackend/polkitbackendduktapeauthority.c
+@@ -0,0 +1,1402 @@
++/*
++ * Copyright (C) 2008-2012 Red Hat, Inc.
++ * Copyright (C) 2015 Tangent Space <jstpierre@mecheye.net>
++ * Copyright (C) 2019 Wu Xiaotian <yetist@gmail.com>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library 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
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General
++ * Public License along with this library; if not, write to the
++ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
++ * Boston, MA 02111-1307, USA.
++ *
++ * Author: David Zeuthen <davidz@redhat.com>
++ */
++
++#include "config.h"
++#include <sys/wait.h>
++#include <errno.h>
++#include <pwd.h>
++#include <grp.h>
++#include <netdb.h>
++#include <string.h>
++#include <glib/gstdio.h>
++#include <locale.h>
++#include <glib/gi18n-lib.h>
++
++#include <polkit/polkit.h>
++#include "polkitbackendjsauthority.h"
++
++#include <polkit/polkitprivate.h>
++
++#ifdef HAVE_LIBSYSTEMD
++#include <systemd/sd-login.h>
++#endif /* HAVE_LIBSYSTEMD */
++
++#include "initjs.h" /* init.js */
++#include "duktape.h"
++
++/**
++ * SECTION:polkitbackendjsauthority
++ * @title: PolkitBackendJsAuthority
++ * @short_description: JS Authority
++ * @stability: Unstable
++ *
++ * An implementation of #PolkitBackendAuthority that reads and
++ * evalates Javascript files and supports interaction with
++ * authentication agents (virtue of being based on
++ * #PolkitBackendInteractiveAuthority).
++ */
++
++/* ---------------------------------------------------------------------------------------------------- */
++
++struct _PolkitBackendJsAuthorityPrivate
++{
++  gchar **rules_dirs;
++  GFileMonitor **dir_monitors; /* NULL-terminated array of GFileMonitor instances */
++  duk_context *cx;
++};
++
++#define WATCHDOG_TIMEOUT (15 * G_TIME_SPAN_SECOND)
++
++static void utils_spawn (const gchar *const  *argv,
++                         guint                timeout_seconds,
++                         GCancellable        *cancellable,
++                         GAsyncReadyCallback  callback,
++                         gpointer             user_data);
++
++gboolean utils_spawn_finish (GAsyncResult   *res,
++                             gint           *out_exit_status,
++                             gchar         **out_standard_output,
++                             gchar         **out_standard_error,
++                             GError        **error);
++
++static void on_dir_monitor_changed (GFileMonitor     *monitor,
++                                    GFile            *file,
++                                    GFile            *other_file,
++                                    GFileMonitorEvent event_type,
++                                    gpointer          user_data);
++
++/* ---------------------------------------------------------------------------------------------------- */
++
++enum
++{
++  PROP_0,
++  PROP_RULES_DIRS,
++};
++
++/* ---------------------------------------------------------------------------------------------------- */
++
++static GList *polkit_backend_js_authority_get_admin_auth_identities (PolkitBackendInteractiveAuthority *authority,
++                                                                     PolkitSubject                     *caller,
++                                                                     PolkitSubject                     *subject,
++                                                                     PolkitIdentity                    *user_for_subject,
++                                                                     gboolean                           subject_is_local,
++                                                                     gboolean                           subject_is_active,
++                                                                     const gchar                       *action_id,
++                                                                     PolkitDetails                     *details);
++
++static PolkitImplicitAuthorization polkit_backend_js_authority_check_authorization_sync (
++                                                          PolkitBackendInteractiveAuthority *authority,
++                                                          PolkitSubject                     *caller,
++                                                          PolkitSubject                     *subject,
++                                                          PolkitIdentity                    *user_for_subject,
++                                                          gboolean                           subject_is_local,
++                                                          gboolean                           subject_is_active,
++                                                          const gchar                       *action_id,
++                                                          PolkitDetails                     *details,
++                                                          PolkitImplicitAuthorization        implicit);
++
++G_DEFINE_TYPE (PolkitBackendJsAuthority, polkit_backend_js_authority, POLKIT_BACKEND_TYPE_INTERACTIVE_AUTHORITY);
++
++/* ---------------------------------------------------------------------------------------------------- */
++
++/* ---------------------------------------------------------------------------------------------------- */
++
++static void
++polkit_backend_js_authority_init (PolkitBackendJsAuthority *authority)
++{
++  authority->priv = G_TYPE_INSTANCE_GET_PRIVATE (authority,
++                                                 POLKIT_BACKEND_TYPE_JS_AUTHORITY,
++                                                 PolkitBackendJsAuthorityPrivate);
++}
++
++static gint
++rules_file_name_cmp (const gchar *a,
++                     const gchar *b)
++{
++  gint ret;
++  const gchar *a_base;
++  const gchar *b_base;
++
++  a_base = strrchr (a, '/');
++  b_base = strrchr (b, '/');
++
++  g_assert (a_base != NULL);
++  g_assert (b_base != NULL);
++  a_base += 1;
++  b_base += 1;
++
++  ret = g_strcmp0 (a_base, b_base);
++  if (ret == 0)
++    {
++      /* /etc wins over /usr */
++      ret = g_strcmp0 (a, b);
++      g_assert (ret != 0);
++    }
++
++  return ret;
++}
++
++static void
++load_scripts (PolkitBackendJsAuthority  *authority)
++{
++  duk_context *cx = authority->priv->cx;
++  GList *files = NULL;
++  GList *l;
++  guint num_scripts = 0;
++  GError *error = NULL;
++  guint n;
++
++  files = NULL;
++
++  for (n = 0; authority->priv->rules_dirs != NULL && authority->priv->rules_dirs[n] != NULL; n++)
++    {
++      const gchar *dir_name = authority->priv->rules_dirs[n];
++      GDir *dir = NULL;
++
++      polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                    "Loading rules from directory %s",
++                                    dir_name);
++
++      dir = g_dir_open (dir_name,
++                        0,
++                        &error);
++      if (dir == NULL)
++        {
++          polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                        "Error opening rules directory: %s (%s, %d)",
++                                        error->message, g_quark_to_string (error->domain), error->code);
++          g_clear_error (&error);
++        }
++      else
++        {
++          const gchar *name;
++          while ((name = g_dir_read_name (dir)) != NULL)
++            {
++              if (g_str_has_suffix (name, ".rules"))
++                files = g_list_prepend (files, g_strdup_printf ("%s/%s", dir_name, name));
++            }
++          g_dir_close (dir);
++        }
++    }
++
++  files = g_list_sort (files, (GCompareFunc) rules_file_name_cmp);
++
++  for (l = files; l != NULL; l = l->next)
++    {
++      const gchar *filename = l->data;
++
++#if (DUK_VERSION >= 20000)
++      gchar *contents;
++      gsize length;
++      GError *error = NULL;
++      if (!g_file_get_contents (filename, &contents, &length, &error)){
++        g_warning("Error when file contents of %s: %s\n", filename, error->message);
++        g_error_free (error);
++        continue;
++      }
++      if (duk_peval_lstring_noresult(cx, contents,length) != 0)
++#else
++      if (duk_peval_file_noresult (cx, filename) != 0)
++#endif
++        {
++          polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                        "Error compiling script %s: %s",
++                                        filename, duk_safe_to_string (authority->priv->cx, -1));
++#if (DUK_VERSION >= 20000)
++          g_free (contents);
++#endif
++          continue;
++        }
++#if (DUK_VERSION >= 20000)
++      g_free (contents);
++#endif
++      num_scripts++;
++    }
++
++  polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                "Finished loading, compiling and executing %d rules",
++                                num_scripts);
++  g_list_free_full (files, g_free);
++}
++
++static void
++reload_scripts (PolkitBackendJsAuthority *authority)
++{
++  duk_context *cx = authority->priv->cx;
++
++  duk_set_top (cx, 0);
++  duk_get_global_string (cx, "polkit");
++  duk_push_string (cx, "_deleteRules");
++
++  duk_call_prop (cx, 0, 0);
++
++  polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                "Collecting garbage unconditionally...");
++
++  load_scripts (authority);
++
++  /* Let applications know we have new rules... */
++  g_signal_emit_by_name (authority, "changed");
++}
++
++static void
++on_dir_monitor_changed (GFileMonitor     *monitor,
++                        GFile            *file,
++                        GFile            *other_file,
++                        GFileMonitorEvent event_type,
++                        gpointer          user_data)
++{
++  PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (user_data);
++
++  /* TODO: maybe rate-limit so storms of events are collapsed into one with a 500ms resolution?
++   *       Because when editing a file with emacs we get 4-8 events..
++   */
++
++  if (file != NULL)
++    {
++      gchar *name;
++
++      name = g_file_get_basename (file);
++
++      /* g_print ("event_type=%d file=%p name=%s\n", event_type, file, name); */
++      if (!g_str_has_prefix (name, ".") &&
++          !g_str_has_prefix (name, "#") &&
++          g_str_has_suffix (name, ".rules") &&
++          (event_type == G_FILE_MONITOR_EVENT_CREATED ||
++           event_type == G_FILE_MONITOR_EVENT_DELETED ||
++           event_type == G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT))
++        {
++          polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                        "Reloading rules");
++          reload_scripts (authority);
++        }
++      g_free (name);
++    }
++}
++
++
++static void
++setup_file_monitors (PolkitBackendJsAuthority *authority)
++{
++  guint n;
++  GPtrArray *p;
++
++  p = g_ptr_array_new ();
++  for (n = 0; authority->priv->rules_dirs != NULL && authority->priv->rules_dirs[n] != NULL; n++)
++    {
++      GFile *file;
++      GError *error;
++      GFileMonitor *monitor;
++
++      file = g_file_new_for_path (authority->priv->rules_dirs[n]);
++      error = NULL;
++      monitor = g_file_monitor_directory (file,
++                                          G_FILE_MONITOR_NONE,
++                                          NULL,
++                                          &error);
++      g_object_unref (file);
++      if (monitor == NULL)
++        {
++          g_warning ("Error monitoring directory %s: %s",
++                     authority->priv->rules_dirs[n],
++                     error->message);
++          g_clear_error (&error);
++        }
++      else
++        {
++          g_signal_connect (monitor,
++                            "changed",
++                            G_CALLBACK (on_dir_monitor_changed),
++                            authority);
++          g_ptr_array_add (p, monitor);
++        }
++    }
++  g_ptr_array_add (p, NULL);
++  authority->priv->dir_monitors = (GFileMonitor**) g_ptr_array_free (p, FALSE);
++}
++
++static duk_ret_t js_polkit_log (duk_context *cx);
++static duk_ret_t js_polkit_spawn (duk_context *cx);
++static duk_ret_t js_polkit_user_is_in_netgroup (duk_context *cx);
++
++static const duk_function_list_entry js_polkit_functions[] =
++{
++  { "log", js_polkit_log, 1 },
++  { "spawn", js_polkit_spawn, 1 },
++  { "_userIsInNetGroup", js_polkit_user_is_in_netgroup, 2 },
++  { NULL, NULL, 0 },
++};
++
++static void
++polkit_backend_js_authority_constructed (GObject *object)
++{
++  PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (object);
++  duk_context *cx;
++
++  cx = duk_create_heap (NULL, NULL, NULL, authority, NULL);
++  if (cx == NULL)
++    goto fail;
++
++  authority->priv->cx = cx;
++
++  duk_push_global_object (cx);
++  duk_push_object (cx);
++  duk_put_function_list (cx, -1, js_polkit_functions);
++  duk_put_prop_string (cx, -2, "polkit");
++
++  duk_eval_string (cx, init_js);
++
++  if (authority->priv->rules_dirs == NULL)
++    {
++      authority->priv->rules_dirs = g_new0 (gchar *, 3);
++      authority->priv->rules_dirs[0] = g_strdup (PACKAGE_SYSCONF_DIR "/polkit-1/rules.d");
++      authority->priv->rules_dirs[1] = g_strdup (PACKAGE_DATA_DIR "/polkit-1/rules.d");
++    }
++
++  setup_file_monitors (authority);
++  load_scripts (authority);
++
++  G_OBJECT_CLASS (polkit_backend_js_authority_parent_class)->constructed (object);
++  return;
++
++ fail:
++  g_critical ("Error initializing JavaScript environment");
++  g_assert_not_reached ();
++}
++
++static void
++polkit_backend_js_authority_finalize (GObject *object)
++{
++  PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (object);
++  guint n;
++
++  for (n = 0; authority->priv->dir_monitors != NULL && authority->priv->dir_monitors[n] != NULL; n++)
++    {
++      GFileMonitor *monitor = authority->priv->dir_monitors[n];
++      g_signal_handlers_disconnect_by_func (monitor,
++                                            G_CALLBACK (on_dir_monitor_changed),
++                                            authority);
++      g_object_unref (monitor);
++    }
++  g_free (authority->priv->dir_monitors);
++  g_strfreev (authority->priv->rules_dirs);
++
++  duk_destroy_heap (authority->priv->cx);
++
++  G_OBJECT_CLASS (polkit_backend_js_authority_parent_class)->finalize (object);
++}
++
++static void
++polkit_backend_js_authority_set_property (GObject      *object,
++                                          guint         property_id,
++                                          const GValue *value,
++                                          GParamSpec   *pspec)
++{
++  PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (object);
++
++  switch (property_id)
++    {
++      case PROP_RULES_DIRS:
++        g_assert (authority->priv->rules_dirs == NULL);
++        authority->priv->rules_dirs = (gchar **) g_value_dup_boxed (value);
++        break;
++
++      default:
++        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
++        break;
++    }
++}
++
++static const gchar *
++polkit_backend_js_authority_get_name (PolkitBackendAuthority *authority)
++{
++  return "js";
++}
++
++static const gchar *
++polkit_backend_js_authority_get_version (PolkitBackendAuthority *authority)
++{
++  return PACKAGE_VERSION;
++}
++
++static PolkitAuthorityFeatures
++polkit_backend_js_authority_get_features (PolkitBackendAuthority *authority)
++{
++  return POLKIT_AUTHORITY_FEATURES_TEMPORARY_AUTHORIZATION;
++}
++
++static void
++polkit_backend_js_authority_class_init (PolkitBackendJsAuthorityClass *klass)
++{
++  GObjectClass *gobject_class;
++  PolkitBackendAuthorityClass *authority_class;
++  PolkitBackendInteractiveAuthorityClass *interactive_authority_class;
++
++
++  gobject_class = G_OBJECT_CLASS (klass);
++  gobject_class->finalize                               = polkit_backend_js_authority_finalize;
++  gobject_class->set_property                           = polkit_backend_js_authority_set_property;
++  gobject_class->constructed                            = polkit_backend_js_authority_constructed;
++
++  authority_class = POLKIT_BACKEND_AUTHORITY_CLASS (klass);
++  authority_class->get_name                             = polkit_backend_js_authority_get_name;
++  authority_class->get_version                          = polkit_backend_js_authority_get_version;
++  authority_class->get_features                         = polkit_backend_js_authority_get_features;
++
++  interactive_authority_class = POLKIT_BACKEND_INTERACTIVE_AUTHORITY_CLASS (klass);
++  interactive_authority_class->get_admin_identities     = polkit_backend_js_authority_get_admin_auth_identities;
++  interactive_authority_class->check_authorization_sync = polkit_backend_js_authority_check_authorization_sync;
++
++  g_object_class_install_property (gobject_class,
++                                   PROP_RULES_DIRS,
++                                   g_param_spec_boxed ("rules-dirs",
++                                                       NULL,
++                                                       NULL,
++                                                       G_TYPE_STRV,
++                                                       G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE));
++
++
++  g_type_class_add_private (klass, sizeof (PolkitBackendJsAuthorityPrivate));
++}
++
++/* ---------------------------------------------------------------------------------------------------- */
++
++static void
++set_property_str (duk_context *cx,
++                  const gchar *name,
++                  const gchar *value)
++{
++  duk_push_string (cx, value);
++  duk_put_prop_string (cx, -2, name);
++}
++
++static void
++set_property_strv (duk_context *cx,
++                   const gchar *name,
++                   GPtrArray   *value)
++{
++  guint n;
++  duk_push_array (cx);
++  for (n = 0; n < value->len; n++)
++    {
++      duk_push_string (cx, g_ptr_array_index (value, n));
++      duk_put_prop_index (cx, -2, n);
++    }
++  duk_put_prop_string (cx, -2, name);
++}
++
++static void
++set_property_int32 (duk_context *cx,
++                    const gchar *name,
++                    gint32       value)
++{
++  duk_push_int (cx, value);
++  duk_put_prop_string (cx, -2, name);
++}
++
++static void
++set_property_bool (duk_context *cx,
++                   const char  *name,
++                   gboolean     value)
++{
++  duk_push_boolean (cx, value);
++  duk_put_prop_string (cx, -2, name);
++}
++
++/* ---------------------------------------------------------------------------------------------------- */
++
++static gboolean
++push_subject (duk_context               *cx,
++              PolkitSubject             *subject,
++              PolkitIdentity            *user_for_subject,
++              gboolean                   subject_is_local,
++              gboolean                   subject_is_active,
++              GError                   **error)
++{
++  gboolean ret = FALSE;
++  pid_t pid;
++  uid_t uid;
++  gchar *user_name = NULL;
++  GPtrArray *groups = NULL;
++  struct passwd *passwd;
++  char *seat_str = NULL;
++  char *session_str = NULL;
++
++  duk_get_global_string (cx, "Subject");
++  duk_new (cx, 0);
++
++  if (POLKIT_IS_UNIX_PROCESS (subject))
++    {
++      pid = polkit_unix_process_get_pid (POLKIT_UNIX_PROCESS (subject));
++    }
++  else if (POLKIT_IS_SYSTEM_BUS_NAME (subject))
++    {
++      PolkitSubject *process;
++      process = polkit_system_bus_name_get_process_sync (POLKIT_SYSTEM_BUS_NAME (subject), NULL, error);
++      if (process == NULL)
++        goto out;
++      pid = polkit_unix_process_get_pid (POLKIT_UNIX_PROCESS (process));
++      g_object_unref (process);
++    }
++  else
++    {
++      g_assert_not_reached ();
++    }
++
++#ifdef HAVE_LIBSYSTEMD
++  if (sd_pid_get_session (pid, &session_str) == 0)
++    {
++      if (sd_session_get_seat (session_str, &seat_str) == 0)
++        {
++          /* do nothing */
++        }
++    }
++#endif /* HAVE_LIBSYSTEMD */
++
++  g_assert (POLKIT_IS_UNIX_USER (user_for_subject));
++  uid = polkit_unix_user_get_uid (POLKIT_UNIX_USER (user_for_subject));
++
++  groups = g_ptr_array_new_with_free_func (g_free);
++
++  passwd = getpwuid (uid);
++  if (passwd == NULL)
++    {
++      user_name = g_strdup_printf ("%d", (gint) uid);
++      g_warning ("Error looking up info for uid %d: %m", (gint) uid);
++    }
++  else
++    {
++      gid_t gids[512];
++      int num_gids = 512;
++
++      user_name = g_strdup (passwd->pw_name);
++
++      if (getgrouplist (passwd->pw_name,
++                        passwd->pw_gid,
++                        gids,
++                        &num_gids) < 0)
++        {
++          g_warning ("Error looking up groups for uid %d: %m", (gint) uid);
++        }
++      else
++        {
++          gint n;
++          for (n = 0; n < num_gids; n++)
++            {
++              struct group *group;
++              group = getgrgid (gids[n]);
++              if (group == NULL)
++                {
++                  g_ptr_array_add (groups, g_strdup_printf ("%d", (gint) gids[n]));
++                }
++              else
++                {
++                  g_ptr_array_add (groups, g_strdup (group->gr_name));
++                }
++            }
++        }
++    }
++
++  set_property_int32 (cx, "pid", pid);
++  set_property_str (cx, "user", user_name);
++  set_property_strv (cx, "groups", groups);
++  set_property_str (cx, "seat", seat_str);
++  set_property_str (cx, "session", session_str);
++  set_property_bool (cx, "local", subject_is_local);
++  set_property_bool (cx, "active", subject_is_active);
++
++  ret = TRUE;
++
++ out:
++  free (session_str);
++  free (seat_str);
++  g_free (user_name);
++  if (groups != NULL)
++    g_ptr_array_unref (groups);
++
++  return ret;
++}
++
++/* ---------------------------------------------------------------------------------------------------- */
++
++static gboolean
++push_action_and_details (duk_context               *cx,
++                         const gchar               *action_id,
++                         PolkitDetails             *details,
++                         GError                   **error)
++{
++  gchar **keys;
++  guint n;
++
++  duk_get_global_string (cx, "Action");
++  duk_new (cx, 0);
++
++  set_property_str (cx, "id", action_id);
++
++  keys = polkit_details_get_keys (details);
++  for (n = 0; keys != NULL && keys[n] != NULL; n++)
++    {
++      gchar *key;
++      const gchar *value;
++      key = g_strdup_printf ("_detail_%s", keys[n]);
++      value = polkit_details_lookup (details, keys[n]);
++      set_property_str (cx, key, value);
++      g_free (key);
++    }
++  g_strfreev (keys);
++
++  return TRUE;
++}
++
++/* ---------------------------------------------------------------------------------------------------- */
++
++/* ---------------------------------------------------------------------------------------------------- */
++
++static GList *
++polkit_backend_js_authority_get_admin_auth_identities (PolkitBackendInteractiveAuthority *_authority,
++                                                       PolkitSubject                     *caller,
++                                                       PolkitSubject                     *subject,
++                                                       PolkitIdentity                    *user_for_subject,
++                                                       gboolean                           subject_is_local,
++                                                       gboolean                           subject_is_active,
++                                                       const gchar                       *action_id,
++                                                       PolkitDetails                     *details)
++{
++  PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (_authority);
++  GList *ret = NULL;
++  guint n;
++  GError *error = NULL;
++  const char *ret_str = NULL;
++  gchar **ret_strs = NULL;
++  duk_context *cx = authority->priv->cx;
++
++  duk_set_top (cx, 0);
++  duk_get_global_string (cx, "polkit");
++  duk_push_string (cx, "_runAdminRules");
++
++  if (!push_action_and_details (cx, action_id, details, &error))
++    {
++      polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                    "Error converting action and details to JS object: %s",
++                                    error->message);
++      g_clear_error (&error);
++      goto out;
++    }
++
++  if (!push_subject (cx, subject, user_for_subject, subject_is_local, subject_is_active, &error))
++    {
++      polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                    "Error converting subject to JS object: %s",
++                                    error->message);
++      g_clear_error (&error);
++      goto out;
++    }
++
++  if (duk_pcall_prop (cx, 0, 2) != DUK_ERR_NONE)
++    {
++      polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                    "Error evaluating admin rules: ",
++                                    duk_safe_to_string (cx, -1));
++      goto out;
++    }
++
++  ret_str = duk_require_string (cx, -1);
++
++  ret_strs = g_strsplit (ret_str, ",", -1);
++  for (n = 0; ret_strs != NULL && ret_strs[n] != NULL; n++)
++    {
++      const gchar *identity_str = ret_strs[n];
++      PolkitIdentity *identity;
++
++      error = NULL;
++      identity = polkit_identity_from_string (identity_str, &error);
++      if (identity == NULL)
++        {
++          polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                        "Identity `%s' is not valid, ignoring: %s",
++                                        identity_str, error->message);
++          g_clear_error (&error);
++        }
++      else
++        {
++          ret = g_list_prepend (ret, identity);
++        }
++    }
++  ret = g_list_reverse (ret);
++
++ out:
++  g_strfreev (ret_strs);
++  /* fallback to root password auth */
++  if (ret == NULL)
++    ret = g_list_prepend (ret, polkit_unix_user_new (0));
++
++  return ret;
++}
++
++/* ---------------------------------------------------------------------------------------------------- */
++
++static PolkitImplicitAuthorization
++polkit_backend_js_authority_check_authorization_sync (PolkitBackendInteractiveAuthority *_authority,
++                                                      PolkitSubject                     *caller,
++                                                      PolkitSubject                     *subject,
++                                                      PolkitIdentity                    *user_for_subject,
++                                                      gboolean                           subject_is_local,
++                                                      gboolean                           subject_is_active,
++                                                      const gchar                       *action_id,
++                                                      PolkitDetails                     *details,
++                                                      PolkitImplicitAuthorization        implicit)
++{
++  PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (_authority);
++  PolkitImplicitAuthorization ret = implicit;
++  GError *error = NULL;
++  gchar *ret_str = NULL;
++  gboolean good = FALSE;
++  duk_context *cx = authority->priv->cx;
++
++  duk_set_top (cx, 0);
++  duk_get_global_string (cx, "polkit");
++  duk_push_string (cx, "_runRules");
++
++  if (!push_action_and_details (cx, action_id, details, &error))
++    {
++      polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                    "Error converting action and details to JS object: %s",
++                                    error->message);
++      g_clear_error (&error);
++      goto out;
++    }
++
++  if (!push_subject (cx, subject, user_for_subject, subject_is_local, subject_is_active, &error))
++    {
++      polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                    "Error converting subject to JS object: %s",
++                                    error->message);
++      g_clear_error (&error);
++      goto out;
++    }
++
++  if (duk_pcall_prop (cx, 0, 2) != DUK_ERR_NONE)
++  {
++      polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                    "Error evaluating authorization rules: ",
++                                    duk_safe_to_string (cx, -1));
++      goto out;
++  }
++
++  if (duk_is_null(cx, -1)) {
++    good = TRUE;
++    goto out;
++  }
++  ret_str = g_strdup (duk_require_string (cx, -1));
++  if (!polkit_implicit_authorization_from_string (ret_str, &ret))
++    {
++      polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                    "Returned result `%s' is not valid",
++                                    ret_str);
++      goto out;
++    }
++
++  good = TRUE;
++
++ out:
++  if (!good)
++    ret = POLKIT_IMPLICIT_AUTHORIZATION_NOT_AUTHORIZED;
++  g_free (ret_str);
++
++  return ret;
++}
++
++/* ---------------------------------------------------------------------------------------------------- */
++
++static duk_ret_t
++js_polkit_log (duk_context *cx)
++{
++  const char *str = duk_require_string (cx, 0);
++  fprintf (stderr, "%s\n", str);
++  return 0;
++}
++
++/* ---------------------------------------------------------------------------------------------------- */
++
++static const gchar *
++get_signal_name (gint signal_number)
++{
++  switch (signal_number)
++    {
++#define _HANDLE_SIG(sig) case sig: return #sig;
++    _HANDLE_SIG (SIGHUP);
++    _HANDLE_SIG (SIGINT);
++    _HANDLE_SIG (SIGQUIT);
++    _HANDLE_SIG (SIGILL);
++    _HANDLE_SIG (SIGABRT);
++    _HANDLE_SIG (SIGFPE);
++    _HANDLE_SIG (SIGKILL);
++    _HANDLE_SIG (SIGSEGV);
++    _HANDLE_SIG (SIGPIPE);
++    _HANDLE_SIG (SIGALRM);
++    _HANDLE_SIG (SIGTERM);
++    _HANDLE_SIG (SIGUSR1);
++    _HANDLE_SIG (SIGUSR2);
++    _HANDLE_SIG (SIGCHLD);
++    _HANDLE_SIG (SIGCONT);
++    _HANDLE_SIG (SIGSTOP);
++    _HANDLE_SIG (SIGTSTP);
++    _HANDLE_SIG (SIGTTIN);
++    _HANDLE_SIG (SIGTTOU);
++    _HANDLE_SIG (SIGBUS);
++#ifdef SIGPOLL
++    _HANDLE_SIG (SIGPOLL);
++#endif
++    _HANDLE_SIG (SIGPROF);
++    _HANDLE_SIG (SIGSYS);
++    _HANDLE_SIG (SIGTRAP);
++    _HANDLE_SIG (SIGURG);
++    _HANDLE_SIG (SIGVTALRM);
++    _HANDLE_SIG (SIGXCPU);
++    _HANDLE_SIG (SIGXFSZ);
++#undef _HANDLE_SIG
++    default:
++      break;
++    }
++  return "UNKNOWN_SIGNAL";
++}
++
++typedef struct
++{
++  GMainLoop *loop;
++  GAsyncResult *res;
++} SpawnData;
++
++static void
++spawn_cb (GObject       *source_object,
++          GAsyncResult  *res,
++          gpointer       user_data)
++{
++  SpawnData *data = user_data;
++  data->res = g_object_ref (res);
++  g_main_loop_quit (data->loop);
++}
++
++static duk_ret_t
++js_polkit_spawn (duk_context *cx)
++{
++#if (DUK_VERSION >= 20000)
++  duk_ret_t ret = DUK_RET_ERROR;
++#else
++  duk_ret_t ret = DUK_RET_INTERNAL_ERROR;
++#endif
++  gchar *standard_output = NULL;
++  gchar *standard_error = NULL;
++  gint exit_status;
++  GError *error = NULL;
++  guint32 array_len;
++  gchar **argv = NULL;
++  GMainContext *context = NULL;
++  GMainLoop *loop = NULL;
++  SpawnData data = {0};
++  char *err_str = NULL;
++  guint n;
++
++  if (!duk_is_array (cx, 0))
++    goto out;
++
++  array_len = duk_get_length (cx, 0);
++
++  argv = g_new0 (gchar*, array_len + 1);
++  for (n = 0; n < array_len; n++)
++    {
++      duk_get_prop_index (cx, 0, n);
++      argv[n] = g_strdup (duk_to_string (cx, -1));
++      duk_pop (cx);
++    }
++
++  context = g_main_context_new ();
++  loop = g_main_loop_new (context, FALSE);
++
++  g_main_context_push_thread_default (context);
++
++  data.loop = loop;
++  utils_spawn ((const gchar *const *) argv,
++               10, /* timeout_seconds */
++               NULL, /* cancellable */
++               spawn_cb,
++               &data);
++
++  g_main_loop_run (loop);
++
++  g_main_context_pop_thread_default (context);
++
++  if (!utils_spawn_finish (data.res,
++                           &exit_status,
++                           &standard_output,
++                           &standard_error,
++                           &error))
++    {
++      err_str = g_strdup_printf ("Error spawning helper: %s (%s, %d)",
++                                 error->message, g_quark_to_string (error->domain), error->code);
++      g_clear_error (&error);
++      goto out;
++    }
++
++  if (!(WIFEXITED (exit_status) && WEXITSTATUS (exit_status) == 0))
++    {
++      GString *gstr;
++      gstr = g_string_new (NULL);
++      if (WIFEXITED (exit_status))
++        {
++          g_string_append_printf (gstr,
++                                  "Helper exited with non-zero exit status %d",
++                                  WEXITSTATUS (exit_status));
++        }
++      else if (WIFSIGNALED (exit_status))
++        {
++          g_string_append_printf (gstr,
++                                  "Helper was signaled with signal %s (%d)",
++                                  get_signal_name (WTERMSIG (exit_status)),
++                                  WTERMSIG (exit_status));
++        }
++      g_string_append_printf (gstr, ", stdout=`%s', stderr=`%s'",
++                              standard_output, standard_error);
++      err_str = g_string_free (gstr, FALSE);
++      goto out;
++    }
++
++  duk_push_string (cx, standard_output);
++  ret = 1;
++
++ out:
++  g_strfreev (argv);
++  g_free (standard_output);
++  g_free (standard_error);
++  g_clear_object (&data.res);
++  if (loop != NULL)
++    g_main_loop_unref (loop);
++  if (context != NULL)
++    g_main_context_unref (context);
++
++  if (err_str)
++    duk_error (cx, DUK_ERR_ERROR, err_str);
++
++  return ret;
++}
++
++/* ---------------------------------------------------------------------------------------------------- */
++
++
++static duk_ret_t
++js_polkit_user_is_in_netgroup (duk_context *cx)
++{
++  const char *user;
++  const char *netgroup;
++  gboolean is_in_netgroup = FALSE;
++
++  user = duk_require_string (cx, 0);
++  netgroup = duk_require_string (cx, 1);
++
++  if (innetgr (netgroup,
++               NULL,  /* host */
++               user,
++               NULL)) /* domain */
++    {
++      is_in_netgroup = TRUE;
++    }
++
++  duk_push_boolean (cx, is_in_netgroup);
++  return 1;
++}
++
++/* ---------------------------------------------------------------------------------------------------- */
++
++typedef struct
++{
++  GSimpleAsyncResult *simple; /* borrowed reference */
++  GMainContext *main_context; /* may be NULL */
++
++  GCancellable *cancellable;  /* may be NULL */
++  gulong cancellable_handler_id;
++
++  GPid child_pid;
++  gint child_stdout_fd;
++  gint child_stderr_fd;
++
++  GIOChannel *child_stdout_channel;
++  GIOChannel *child_stderr_channel;
++
++  GSource *child_watch_source;
++  GSource *child_stdout_source;
++  GSource *child_stderr_source;
++
++  guint timeout_seconds;
++  gboolean timed_out;
++  GSource *timeout_source;
++
++  GString *child_stdout;
++  GString *child_stderr;
++
++  gint exit_status;
++} UtilsSpawnData;
++
++static void
++utils_child_watch_from_release_cb (GPid     pid,
++                                   gint     status,
++                                   gpointer user_data)
++{
++}
++
++static void
++utils_spawn_data_free (UtilsSpawnData *data)
++{
++  if (data->timeout_source != NULL)
++    {
++      g_source_destroy (data->timeout_source);
++      data->timeout_source = NULL;
++    }
++
++  /* Nuke the child, if necessary */
++  if (data->child_watch_source != NULL)
++    {
++      g_source_destroy (data->child_watch_source);
++      data->child_watch_source = NULL;
++    }
++
++  if (data->child_pid != 0)
++    {
++      GSource *source;
++      kill (data->child_pid, SIGTERM);
++      /* OK, we need to reap for the child ourselves - we don't want
++       * to use waitpid() because that might block the calling
++       * thread (the child might handle SIGTERM and use several
++       * seconds for cleanup/rollback).
++       *
++       * So we use GChildWatch instead.
++       *
++       * Avoid taking a references to ourselves. but note that we need
++       * to pass the GSource so we can nuke it once handled.
++       */
++      source = g_child_watch_source_new (data->child_pid);
++      g_source_set_callback (source,
++                             (GSourceFunc) utils_child_watch_from_release_cb,
++                             source,
++                             (GDestroyNotify) g_source_destroy);
++      g_source_attach (source, data->main_context);
++      g_source_unref (source);
++      data->child_pid = 0;
++    }
++
++  if (data->child_stdout != NULL)
++    {
++      g_string_free (data->child_stdout, TRUE);
++      data->child_stdout = NULL;
++    }
++
++  if (data->child_stderr != NULL)
++    {
++      g_string_free (data->child_stderr, TRUE);
++      data->child_stderr = NULL;
++    }
++
++  if (data->child_stdout_channel != NULL)
++    {
++      g_io_channel_unref (data->child_stdout_channel);
++      data->child_stdout_channel = NULL;
++    }
++  if (data->child_stderr_channel != NULL)
++    {
++      g_io_channel_unref (data->child_stderr_channel);
++      data->child_stderr_channel = NULL;
++    }
++
++  if (data->child_stdout_source != NULL)
++    {
++      g_source_destroy (data->child_stdout_source);
++      data->child_stdout_source = NULL;
++    }
++  if (data->child_stderr_source != NULL)
++    {
++      g_source_destroy (data->child_stderr_source);
++      data->child_stderr_source = NULL;
++    }
++
++  if (data->child_stdout_fd != -1)
++    {
++      g_warn_if_fail (close (data->child_stdout_fd) == 0);
++      data->child_stdout_fd = -1;
++    }
++  if (data->child_stderr_fd != -1)
++    {
++      g_warn_if_fail (close (data->child_stderr_fd) == 0);
++      data->child_stderr_fd = -1;
++    }
++
++  if (data->cancellable_handler_id > 0)
++    {
++      g_cancellable_disconnect (data->cancellable, data->cancellable_handler_id);
++      data->cancellable_handler_id = 0;
++    }
++
++  if (data->main_context != NULL)
++    g_main_context_unref (data->main_context);
++
++  if (data->cancellable != NULL)
++    g_object_unref (data->cancellable);
++
++  g_slice_free (UtilsSpawnData, data);
++}
++
++/* called in the thread where @cancellable was cancelled */
++static void
++utils_on_cancelled (GCancellable *cancellable,
++                    gpointer      user_data)
++{
++  UtilsSpawnData *data = user_data;
++  GError *error;
++
++  error = NULL;
++  g_warn_if_fail (g_cancellable_set_error_if_cancelled (cancellable, &error));
++  g_simple_async_result_take_error (data->simple, error);
++  g_simple_async_result_complete_in_idle (data->simple);
++  g_object_unref (data->simple);
++}
++
++static gboolean
++utils_read_child_stderr (GIOChannel *channel,
++                         GIOCondition condition,
++                         gpointer user_data)
++{
++  UtilsSpawnData *data = user_data;
++  gchar buf[1024];
++  gsize bytes_read;
++
++  g_io_channel_read_chars (channel, buf, sizeof buf, &bytes_read, NULL);
++  g_string_append_len (data->child_stderr, buf, bytes_read);
++  return TRUE;
++}
++
++static gboolean
++utils_read_child_stdout (GIOChannel *channel,
++                         GIOCondition condition,
++                         gpointer user_data)
++{
++  UtilsSpawnData *data = user_data;
++  gchar buf[1024];
++  gsize bytes_read;
++
++  g_io_channel_read_chars (channel, buf, sizeof buf, &bytes_read, NULL);
++  g_string_append_len (data->child_stdout, buf, bytes_read);
++  return TRUE;
++}
++
++static void
++utils_child_watch_cb (GPid     pid,
++                      gint     status,
++                      gpointer user_data)
++{
++  UtilsSpawnData *data = user_data;
++  gchar *buf;
++  gsize buf_size;
++
++  if (g_io_channel_read_to_end (data->child_stdout_channel, &buf, &buf_size, NULL) == G_IO_STATUS_NORMAL)
++    {
++      g_string_append_len (data->child_stdout, buf, buf_size);
++      g_free (buf);
++    }
++  if (g_io_channel_read_to_end (data->child_stderr_channel, &buf, &buf_size, NULL) == G_IO_STATUS_NORMAL)
++    {
++      g_string_append_len (data->child_stderr, buf, buf_size);
++      g_free (buf);
++    }
++
++  data->exit_status = status;
++
++  /* ok, child watch is history, make sure we don't free it in spawn_data_free() */
++  data->child_pid = 0;
++  data->child_watch_source = NULL;
++
++  /* we're done */
++  g_simple_async_result_complete_in_idle (data->simple);
++  g_object_unref (data->simple);
++}
++
++static gboolean
++utils_timeout_cb (gpointer user_data)
++{
++  UtilsSpawnData *data = user_data;
++
++  data->timed_out = TRUE;
++
++  /* ok, timeout is history, make sure we don't free it in spawn_data_free() */
++  data->timeout_source = NULL;
++
++  /* we're done */
++  g_simple_async_result_complete_in_idle (data->simple);
++  g_object_unref (data->simple);
++
++  return FALSE; /* remove source */
++}
++
++static void
++utils_spawn (const gchar *const  *argv,
++             guint                timeout_seconds,
++             GCancellable        *cancellable,
++             GAsyncReadyCallback  callback,
++             gpointer             user_data)
++{
++  UtilsSpawnData *data;
++  GError *error;
++
++  data = g_slice_new0 (UtilsSpawnData);
++  data->timeout_seconds = timeout_seconds;
++  data->simple = g_simple_async_result_new (NULL,
++                                            callback,
++                                            user_data,
++                                            utils_spawn);
++  data->main_context = g_main_context_get_thread_default ();
++  if (data->main_context != NULL)
++    g_main_context_ref (data->main_context);
++
++  data->cancellable = cancellable != NULL ? g_object_ref (cancellable) : NULL;
++
++  data->child_stdout = g_string_new (NULL);
++  data->child_stderr = g_string_new (NULL);
++  data->child_stdout_fd = -1;
++  data->child_stderr_fd = -1;
++
++  /* the life-cycle of UtilsSpawnData is tied to its GSimpleAsyncResult */
++  g_simple_async_result_set_op_res_gpointer (data->simple, data, (GDestroyNotify) utils_spawn_data_free);
++
++  error = NULL;
++  if (data->cancellable != NULL)
++    {
++      /* could already be cancelled */
++      error = NULL;
++      if (g_cancellable_set_error_if_cancelled (data->cancellable, &error))
++        {
++          g_simple_async_result_take_error (data->simple, error);
++          g_simple_async_result_complete_in_idle (data->simple);
++          g_object_unref (data->simple);
++          goto out;
++        }
++
++      data->cancellable_handler_id = g_cancellable_connect (data->cancellable,
++                                                            G_CALLBACK (utils_on_cancelled),
++                                                            data,
++                                                            NULL);
++    }
++
++  error = NULL;
++  if (!g_spawn_async_with_pipes (NULL, /* working directory */
++                                 (gchar **) argv,
++                                 NULL, /* envp */
++                                 G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
++                                 NULL, /* child_setup */
++                                 NULL, /* child_setup's user_data */
++                                 &(data->child_pid),
++                                 NULL, /* gint *stdin_fd */
++                                 &(data->child_stdout_fd),
++                                 &(data->child_stderr_fd),
++                                 &error))
++    {
++      g_prefix_error (&error, "Error spawning: ");
++      g_simple_async_result_take_error (data->simple, error);
++      g_simple_async_result_complete_in_idle (data->simple);
++      g_object_unref (data->simple);
++      goto out;
++    }
++
++  if (timeout_seconds > 0)
++    {
++      data->timeout_source = g_timeout_source_new_seconds (timeout_seconds);
++      g_source_set_priority (data->timeout_source, G_PRIORITY_DEFAULT);
++      g_source_set_callback (data->timeout_source, utils_timeout_cb, data, NULL);
++      g_source_attach (data->timeout_source, data->main_context);
++      g_source_unref (data->timeout_source);
++    }
++
++  data->child_watch_source = g_child_watch_source_new (data->child_pid);
++  g_source_set_callback (data->child_watch_source, (GSourceFunc) utils_child_watch_cb, data, NULL);
++  g_source_attach (data->child_watch_source, data->main_context);
++  g_source_unref (data->child_watch_source);
++
++  data->child_stdout_channel = g_io_channel_unix_new (data->child_stdout_fd);
++  g_io_channel_set_flags (data->child_stdout_channel, G_IO_FLAG_NONBLOCK, NULL);
++  data->child_stdout_source = g_io_create_watch (data->child_stdout_channel, G_IO_IN);
++  g_source_set_callback (data->child_stdout_source, (GSourceFunc) utils_read_child_stdout, data, NULL);
++  g_source_attach (data->child_stdout_source, data->main_context);
++  g_source_unref (data->child_stdout_source);
++
++  data->child_stderr_channel = g_io_channel_unix_new (data->child_stderr_fd);
++  g_io_channel_set_flags (data->child_stderr_channel, G_IO_FLAG_NONBLOCK, NULL);
++  data->child_stderr_source = g_io_create_watch (data->child_stderr_channel, G_IO_IN);
++  g_source_set_callback (data->child_stderr_source, (GSourceFunc) utils_read_child_stderr, data, NULL);
++  g_source_attach (data->child_stderr_source, data->main_context);
++  g_source_unref (data->child_stderr_source);
++
++ out:
++  ;
++}
++
++gboolean
++utils_spawn_finish (GAsyncResult   *res,
++                    gint           *out_exit_status,
++                    gchar         **out_standard_output,
++                    gchar         **out_standard_error,
++                    GError        **error)
++{
++  GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (res);
++  UtilsSpawnData *data;
++  gboolean ret = FALSE;
++
++  g_return_val_if_fail (G_IS_ASYNC_RESULT (res), FALSE);
++  g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
++
++  g_warn_if_fail (g_simple_async_result_get_source_tag (simple) == utils_spawn);
++
++  if (g_simple_async_result_propagate_error (simple, error))
++    goto out;
++
++  data = g_simple_async_result_get_op_res_gpointer (simple);
++
++  if (data->timed_out)
++    {
++      g_set_error (error,
++                   G_IO_ERROR,
++                   G_IO_ERROR_TIMED_OUT,
++                   "Timed out after %d seconds",
++                   data->timeout_seconds);
++      goto out;
++    }
++
++  if (out_exit_status != NULL)
++    *out_exit_status = data->exit_status;
++
++  if (out_standard_output != NULL)
++    *out_standard_output = g_strdup (data->child_stdout->str);
++
++  if (out_standard_error != NULL)
++    *out_standard_error = g_strdup (data->child_stderr->str);
++
++  ret = TRUE;
++
++ out:
++  return ret;
++}
+-- 
+GitLab
+
+
+From d74aad8152a7c51999fffa9abe28e4306a052399 Mon Sep 17 00:00:00 2001
+From: Wu Xiaotian <yetist@gmail.com>
+Date: Sun, 22 Nov 2020 13:15:17 +0800
+Subject: [PATCH 02/16] check netgroup.h header file
+
+Signed-off-by: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+---
+ src/polkitbackend/polkitbackendduktapeauthority.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c
+index ae98453..543d6fd 100644
+--- a/src/polkitbackend/polkitbackendduktapeauthority.c
++++ b/src/polkitbackend/polkitbackendduktapeauthority.c
+@@ -26,7 +26,11 @@
+ #include <errno.h>
+ #include <pwd.h>
+ #include <grp.h>
++#ifdef HAVE_NETGROUP_H
++#include <netgroup.h>
++#else
+ #include <netdb.h>
++#endif
+ #include <string.h>
+ #include <glib/gstdio.h>
+ #include <locale.h>
+-- 
+GitLab
+
+
+From 69c761506cbe458807e4ae2742c9e05bc60dad3d Mon Sep 17 00:00:00 2001
+From: Wu Xiaotian <yetist@gmail.com>
+Date: Sun, 22 Nov 2020 10:59:03 +0800
+Subject: [PATCH 03/16] check return value
+
+Signed-off-by: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+---
+ src/polkitbackend/polkitbackendduktapeauthority.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c
+index 543d6fd..a54ed5b 100644
+--- a/src/polkitbackend/polkitbackendduktapeauthority.c
++++ b/src/polkitbackend/polkitbackendduktapeauthority.c
+@@ -249,7 +249,11 @@ reload_scripts (PolkitBackendJsAuthority *authority)
+   duk_context *cx = authority->priv->cx;
+ 
+   duk_set_top (cx, 0);
+-  duk_get_global_string (cx, "polkit");
++  if (!duk_get_global_string (cx, "polkit")) {
++      polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                    "Error deleting old rules, not loading new ones");
++      return;
++  }
+   duk_push_string (cx, "_deleteRules");
+ 
+   duk_call_prop (cx, 0, 0);
+-- 
+GitLab
+
+
+From f1536c4899934fd3c8243fda2d084a472fe57d2e Mon Sep 17 00:00:00 2001
+From: Wu Xiaotian <yetist@gmail.com>
+Date: Sun, 22 Nov 2020 11:22:39 +0800
+Subject: [PATCH 04/16] check return value
+
+Signed-off-by: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+---
+ src/polkitbackend/polkitbackendduktapeauthority.c | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c
+index a54ed5b..1a7e6d3 100644
+--- a/src/polkitbackend/polkitbackendduktapeauthority.c
++++ b/src/polkitbackend/polkitbackendduktapeauthority.c
+@@ -656,7 +656,10 @@ push_action_and_details (duk_context               *cx,
+   gchar **keys;
+   guint n;
+ 
+-  duk_get_global_string (cx, "Action");
++  if (!duk_get_global_string (cx, "Action")) {
++    return FALSE;
++  }
++
+   duk_new (cx, 0);
+ 
+   set_property_str (cx, "id", action_id);
+@@ -699,7 +702,12 @@ polkit_backend_js_authority_get_admin_auth_identities (PolkitBackendInteractiveA
+   duk_context *cx = authority->priv->cx;
+ 
+   duk_set_top (cx, 0);
+-  duk_get_global_string (cx, "polkit");
++  if (!duk_get_global_string (cx, "polkit")) {
++      polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                    "Error deleting old rules, not loading new ones");
++      goto out;
++  }
++
+   duk_push_string (cx, "_runAdminRules");
+ 
+   if (!push_action_and_details (cx, action_id, details, &error))
+-- 
+GitLab
+
+
+From ca15eecf5dc7755947515c1bfc651fd8770aaf8f Mon Sep 17 00:00:00 2001
+From: Wu Xiaotian <yetist@gmail.com>
+Date: Sun, 22 Nov 2020 13:17:16 +0800
+Subject: [PATCH 05/16] check return value
+
+Signed-off-by: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+---
+ src/polkitbackend/polkitbackendduktapeauthority.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c
+index 1a7e6d3..3f1b32d 100644
+--- a/src/polkitbackend/polkitbackendduktapeauthority.c
++++ b/src/polkitbackend/polkitbackendduktapeauthority.c
+@@ -550,7 +550,10 @@ push_subject (duk_context               *cx,
+   char *seat_str = NULL;
+   char *session_str = NULL;
+ 
+-  duk_get_global_string (cx, "Subject");
++  if (!duk_get_global_string (cx, "Subject")) {
++    return FALSE;
++  }
++
+   duk_new (cx, 0);
+ 
+   if (POLKIT_IS_UNIX_PROCESS (subject))
+@@ -789,8 +792,11 @@ polkit_backend_js_authority_check_authorization_sync (PolkitBackendInteractiveAu
+   gboolean good = FALSE;
+   duk_context *cx = authority->priv->cx;
+ 
++  if (!duk_get_global_string (cx, "polkit")) {
++      goto out;
++  }
++
+   duk_set_top (cx, 0);
+-  duk_get_global_string (cx, "polkit");
+   duk_push_string (cx, "_runRules");
+ 
+   if (!push_action_and_details (cx, action_id, details, &error))
+-- 
+GitLab
+
+
+From 870348365cc0166e14f28e0d144ed552bba4d794 Mon Sep 17 00:00:00 2001
+From: Wu Xiaotian <yetist@gmail.com>
+Date: Sun, 22 Nov 2020 13:18:13 +0800
+Subject: [PATCH 06/16] check return value
+
+Signed-off-by: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+---
+ src/polkitbackend/polkitbackendduktapeauthority.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c
+index 3f1b32d..6294ad9 100644
+--- a/src/polkitbackend/polkitbackendduktapeauthority.c
++++ b/src/polkitbackend/polkitbackendduktapeauthority.c
+@@ -843,7 +843,8 @@ polkit_backend_js_authority_check_authorization_sync (PolkitBackendInteractiveAu
+  out:
+   if (!good)
+     ret = POLKIT_IMPLICIT_AUTHORIZATION_NOT_AUTHORIZED;
+-  g_free (ret_str);
++  if (ret_str != NULL)
++      g_free (ret_str);
+ 
+   return ret;
+ }
+-- 
+GitLab
+
+
+From 81c916ff08fdcee3c7340c4b2d4632086b89666c Mon Sep 17 00:00:00 2001
+From: Wu Xiaotian <yetist@gmail.com>
+Date: Sun, 22 Nov 2020 11:23:04 +0800
+Subject: [PATCH 07/16] fix typecase
+
+Signed-off-by: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+---
+ src/polkitbackend/polkitbackendduktapeauthority.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c
+index 6294ad9..d466c9d 100644
+--- a/src/polkitbackend/polkitbackendduktapeauthority.c
++++ b/src/polkitbackend/polkitbackendduktapeauthority.c
+@@ -1191,7 +1191,7 @@ static void
+ utils_on_cancelled (GCancellable *cancellable,
+                     gpointer      user_data)
+ {
+-  UtilsSpawnData *data = user_data;
++  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
+   GError *error;
+ 
+   error = NULL;
+@@ -1206,7 +1206,7 @@ utils_read_child_stderr (GIOChannel *channel,
+                          GIOCondition condition,
+                          gpointer user_data)
+ {
+-  UtilsSpawnData *data = user_data;
++  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
+   gchar buf[1024];
+   gsize bytes_read;
+ 
+@@ -1220,7 +1220,7 @@ utils_read_child_stdout (GIOChannel *channel,
+                          GIOCondition condition,
+                          gpointer user_data)
+ {
+-  UtilsSpawnData *data = user_data;
++  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
+   gchar buf[1024];
+   gsize bytes_read;
+ 
+@@ -1234,7 +1234,7 @@ utils_child_watch_cb (GPid     pid,
+                       gint     status,
+                       gpointer user_data)
+ {
+-  UtilsSpawnData *data = user_data;
++  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
+   gchar *buf;
+   gsize buf_size;
+ 
+@@ -1263,7 +1263,7 @@ utils_child_watch_cb (GPid     pid,
+ static gboolean
+ utils_timeout_cb (gpointer user_data)
+ {
+-  UtilsSpawnData *data = user_data;
++  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
+ 
+   data->timed_out = TRUE;
+ 
+-- 
+GitLab
+
+
+From acb956bf52f0a78bf7aaf925876f96e97a146995 Mon Sep 17 00:00:00 2001
+From: Wu Xiaotian <yetist@gmail.com>
+Date: Sun, 22 Nov 2020 18:04:27 +0800
+Subject: [PATCH 08/16] typecase
+
+Signed-off-by: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+---
+ src/polkitbackend/polkitbackendduktapeauthority.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c
+index d466c9d..237b1ad 100644
+--- a/src/polkitbackend/polkitbackendduktapeauthority.c
++++ b/src/polkitbackend/polkitbackendduktapeauthority.c
+@@ -915,8 +915,8 @@ spawn_cb (GObject       *source_object,
+           GAsyncResult  *res,
+           gpointer       user_data)
+ {
+-  SpawnData *data = user_data;
+-  data->res = g_object_ref (res);
++  SpawnData *data = (SpawnData *)user_data;
++  data->res = (GAsyncResult*)g_object_ref (res);
+   g_main_loop_quit (data->loop);
+ }
+ 
+@@ -1292,12 +1292,12 @@ utils_spawn (const gchar *const  *argv,
+   data->simple = g_simple_async_result_new (NULL,
+                                             callback,
+                                             user_data,
+-                                            utils_spawn);
++                                            (gpointer*)utils_spawn);
+   data->main_context = g_main_context_get_thread_default ();
+   if (data->main_context != NULL)
+     g_main_context_ref (data->main_context);
+ 
+-  data->cancellable = cancellable != NULL ? g_object_ref (cancellable) : NULL;
++  data->cancellable = cancellable != NULL ? (GCancellable*)g_object_ref (cancellable) : NULL;
+ 
+   data->child_stdout = g_string_new (NULL);
+   data->child_stderr = g_string_new (NULL);
+@@ -1397,7 +1397,7 @@ utils_spawn_finish (GAsyncResult   *res,
+   if (g_simple_async_result_propagate_error (simple, error))
+     goto out;
+ 
+-  data = g_simple_async_result_get_op_res_gpointer (simple);
++  data = (UtilsSpawnData*)g_simple_async_result_get_op_res_gpointer (simple);
+ 
+   if (data->timed_out)
+     {
+-- 
+GitLab
+
+
+From be060e4d48aceb09af34868b555b6c73c7afdabb Mon Sep 17 00:00:00 2001
+From: Wu Xiaotian <yetist@gmail.com>
+Date: Sun, 22 Nov 2020 13:53:23 +0800
+Subject: [PATCH 09/16] some change
+
+Signed-off-by: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+---
+ .../polkitbackendduktapeauthority.c           | 26 +++++++++++--------
+ 1 file changed, 15 insertions(+), 11 deletions(-)
+
+diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c
+index 237b1ad..fad9017 100644
+--- a/src/polkitbackend/polkitbackendduktapeauthority.c
++++ b/src/polkitbackend/polkitbackendduktapeauthority.c
+@@ -207,18 +207,22 @@ load_scripts (PolkitBackendJsAuthority  *authority)
+ 
+   for (l = files; l != NULL; l = l->next)
+     {
+-      const gchar *filename = l->data;
+-
++      const gchar *filename = (gchar *)l->data;
+ #if (DUK_VERSION >= 20000)
+-      gchar *contents;
+-      gsize length;
+-      GError *error = NULL;
+-      if (!g_file_get_contents (filename, &contents, &length, &error)){
+-        g_warning("Error when file contents of %s: %s\n", filename, error->message);
+-        g_error_free (error);
+-        continue;
+-      }
+-      if (duk_peval_lstring_noresult(cx, contents,length) != 0)
++      GFile *file = g_file_new_for_path (filename);
++      char *contents;
++      gsize len;
++      if (!g_file_load_contents (file, NULL, &contents, &len, NULL, NULL))
++        {
++          polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                        "Error compiling script %s",
++                                        filename);
++          g_object_unref (file);
++          continue;
++        }
++
++      g_object_unref (file);
++      if (duk_peval_lstring_noresult(cx, contents,len) != 0)
+ #else
+       if (duk_peval_file_noresult (cx, filename) != 0)
+ #endif
+-- 
+GitLab
+
+
+From 2ffb62048a5ebedfe3bb053feb7385c7270ede28 Mon Sep 17 00:00:00 2001
+From: Wu Xiaotian <yetist@gmail.com>
+Date: Sun, 22 Nov 2020 15:25:45 +0800
+Subject: [PATCH 10/16] some change
+
+Signed-off-by: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+---
+ .../polkitbackendduktapeauthority.c           | 24 +++++++++----------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c
+index fad9017..6fac3be 100644
+--- a/src/polkitbackend/polkitbackendduktapeauthority.c
++++ b/src/polkitbackend/polkitbackendduktapeauthority.c
+@@ -125,6 +125,18 @@ G_DEFINE_TYPE (PolkitBackendJsAuthority, polkit_backend_js_authority, POLKIT_BAC
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
++static duk_ret_t js_polkit_log (duk_context *cx);
++static duk_ret_t js_polkit_spawn (duk_context *cx);
++static duk_ret_t js_polkit_user_is_in_netgroup (duk_context *cx);
++
++static const duk_function_list_entry js_polkit_functions[] =
++{
++  { "log", js_polkit_log, 1 },
++  { "spawn", js_polkit_spawn, 1 },
++  { "_userIsInNetGroup", js_polkit_user_is_in_netgroup, 2 },
++  { NULL, NULL, 0 },
++};
++
+ static void
+ polkit_backend_js_authority_init (PolkitBackendJsAuthority *authority)
+ {
+@@ -347,18 +359,6 @@ setup_file_monitors (PolkitBackendJsAuthority *authority)
+   authority->priv->dir_monitors = (GFileMonitor**) g_ptr_array_free (p, FALSE);
+ }
+ 
+-static duk_ret_t js_polkit_log (duk_context *cx);
+-static duk_ret_t js_polkit_spawn (duk_context *cx);
+-static duk_ret_t js_polkit_user_is_in_netgroup (duk_context *cx);
+-
+-static const duk_function_list_entry js_polkit_functions[] =
+-{
+-  { "log", js_polkit_log, 1 },
+-  { "spawn", js_polkit_spawn, 1 },
+-  { "_userIsInNetGroup", js_polkit_user_is_in_netgroup, 2 },
+-  { NULL, NULL, 0 },
+-};
+-
+ static void
+ polkit_backend_js_authority_constructed (GObject *object)
+ {
+-- 
+GitLab
+
+
+From edb70ef69eed3275f5654510d135e680eb46c85d Mon Sep 17 00:00:00 2001
+From: Wu Xiaotian <yetist@gmail.com>
+Date: Sun, 22 Nov 2020 15:25:35 +0800
+Subject: [PATCH 11/16] remove WATCHDOG_TIMEOUT define
+
+Signed-off-by: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+---
+ src/polkitbackend/polkitbackendduktapeauthority.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c
+index 6fac3be..51e03fd 100644
+--- a/src/polkitbackend/polkitbackendduktapeauthority.c
++++ b/src/polkitbackend/polkitbackendduktapeauthority.c
+@@ -69,7 +69,6 @@ struct _PolkitBackendJsAuthorityPrivate
+   duk_context *cx;
+ };
+ 
+-#define WATCHDOG_TIMEOUT (15 * G_TIME_SPAN_SECOND)
+ 
+ static void utils_spawn (const gchar *const  *argv,
+                          guint                timeout_seconds,
+-- 
+GitLab
+
+
+From 906ae404f29f15ef8c529b999bf091b5d18ed7ac Mon Sep 17 00:00:00 2001
+From: Wu Xiaotian <yetist@gmail.com>
+Date: Sun, 22 Nov 2020 12:46:40 +0800
+Subject: [PATCH 12/16] add meson build system support
+
+Signed-off-by: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+---
+ meson.build                   | 11 ++++++++++-
+ meson_options.txt             |  1 +
+ src/polkitbackend/meson.build | 10 ++++++++--
+ 3 files changed, 19 insertions(+), 3 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 858078d..4e44723 100644
+--- a/meson.build
++++ b/meson.build
+@@ -133,7 +133,13 @@ expat_dep = dependency('expat')
+ assert(cc.has_header('expat.h', dependencies: expat_dep), 'Can\'t find expat.h. Please install expat.')
+ assert(cc.has_function('XML_ParserCreate', dependencies: expat_dep), 'Can\'t find expat library. Please install expat.')
+ 
+-mozjs_dep = dependency('mozjs-78')
++js_engine = get_option('js_engine')
++if js_engine == 'duktape'
++  js_dep = dependency('duktape')
++  libm_dep = cc.find_library('m')
++elif js_engine == 'mozjs'
++  js_dep = dependency('mozjs-78')
++endif
+ 
+ dbus_dep = dependency('dbus-1', required: false)
+ dbus_policydir = pk_prefix / pk_datadir / 'dbus-1/system.d'
+@@ -361,6 +367,9 @@ if enable_logind
+   output += '        systemdsystemunitdir:     ' + systemd_systemdsystemunitdir + '\n'
+ endif
+ output += '        polkitd user:             ' + polkitd_user + ' \n'
++output += '        Javascript engine:        ' + js_engine + '\n'
++if enable_logind
++endif
+ output += '        PAM support:              ' + enable_pam.to_string() + '\n\n'
+ if enable_pam
+   output += '        PAM file auth:            ' + pam_conf['PAM_FILE_INCLUDE_AUTH'] + '\n'
+diff --git a/meson_options.txt b/meson_options.txt
+index 25e3e77..76aa311 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -16,3 +16,4 @@ option('introspection', type: 'boolean', value: true, description: 'Enable intro
+ 
+ option('gtk_doc', type: 'boolean', value: false, description: 'use gtk-doc to build documentation')
+ option('man', type: 'boolean', value: false, description: 'build manual pages')
++option('js_engine', type: 'combo', choices: ['mozjs', 'duktape'], value: 'duktape', description: 'javascript engine')
+diff --git a/src/polkitbackend/meson.build b/src/polkitbackend/meson.build
+index 64f0e4a..489897d 100644
+--- a/src/polkitbackend/meson.build
++++ b/src/polkitbackend/meson.build
+@@ -5,7 +5,6 @@ sources = files(
+   'polkitbackendactionpool.c',
+   'polkitbackendauthority.c',
+   'polkitbackendinteractiveauthority.c',
+-  'polkitbackendjsauthority.cpp',
+ )
+ 
+ output = 'initjs.h'
+@@ -21,7 +20,7 @@ sources += custom_target(
+ deps = [
+   expat_dep,
+   libpolkit_gobject_dep,
+-  mozjs_dep,
++  js_dep,
+ ]
+ 
+ c_flags = [
+@@ -31,6 +30,13 @@ c_flags = [
+   '-DPACKAGE_SYSCONF_DIR="@0@"'.format(pk_prefix / pk_sysconfdir),
+ ]
+ 
++if js_engine == 'duktape'
++  sources += files('polkitbackendduktapeauthority.c')
++  deps += libm_dep
++elif js_engine == 'mozjs'
++  sources += files('polkitbackendjsauthority.cpp')
++endif
++
+ if enable_logind
+   sources += files('polkitbackendsessionmonitor-systemd.c')
+ 
+-- 
+GitLab
+
+
+From 1380b505c25be4aebe54b1b4223a570d64af83cc Mon Sep 17 00:00:00 2001
+From: Wu Xiaotian <yetist@gmail.com>
+Date: Sun, 22 Nov 2020 18:49:14 +0800
+Subject: [PATCH 13/16] fix run error
+
+Signed-off-by: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+---
+ src/polkitbackend/polkitbackendduktapeauthority.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c
+index 51e03fd..4b4f8fd 100644
+--- a/src/polkitbackend/polkitbackendduktapeauthority.c
++++ b/src/polkitbackend/polkitbackendduktapeauthority.c
+@@ -795,11 +795,11 @@ polkit_backend_js_authority_check_authorization_sync (PolkitBackendInteractiveAu
+   gboolean good = FALSE;
+   duk_context *cx = authority->priv->cx;
+ 
++  duk_set_top (cx, 0);
+   if (!duk_get_global_string (cx, "polkit")) {
+       goto out;
+   }
+ 
+-  duk_set_top (cx, 0);
+   duk_push_string (cx, "_runRules");
+ 
+   if (!push_action_and_details (cx, action_id, details, &error))
+-- 
+GitLab
+
+
+From 6856a704b70378948ef5f66e9b09555d97d4070b Mon Sep 17 00:00:00 2001
+From: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+Date: Fri, 10 Sep 2021 15:17:58 -0700
+Subject: [PATCH 14/16] Deduplicate code for "Add duktape as JS engine backend"
+ effort/MR
+
+This leverages Wu Xiaotian (@yetist)'s original MR
+(https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/35), in
+an effort to complete said work.
+
+This is the first of the requests from maintainers--to reduce
+eliminate code duplication.
+
+The runaway-killer missing functionality will come in the sequence.
+
+Signed-off-by: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+---
+ src/polkitbackend/Makefile.am                 |   1 +
+ src/polkitbackend/meson.build                 |   1 +
+ src/polkitbackend/polkitbackendcommon.c       | 530 +++++++++++++
+ src/polkitbackend/polkitbackendcommon.h       | 156 ++++
+ .../polkitbackendduktapeauthority.c           | 714 ++----------------
+ .../polkitbackendjsauthority.cpp              | 711 ++---------------
+ 6 files changed, 790 insertions(+), 1323 deletions(-)
+ create mode 100644 src/polkitbackend/polkitbackendcommon.c
+ create mode 100644 src/polkitbackend/polkitbackendcommon.h
+
+diff --git a/src/polkitbackend/Makefile.am b/src/polkitbackend/Makefile.am
+index abcbc6f..6a8b4ae 100644
+--- a/src/polkitbackend/Makefile.am
++++ b/src/polkitbackend/Makefile.am
+@@ -31,6 +31,7 @@ libpolkit_backend_1_la_SOURCES =                                   			\
+         polkitbackend.h									\
+ 	polkitbackendtypes.h								\
+ 	polkitbackendprivate.h								\
++	polkitbackendcommon.h			polkitbackendcommon.c			\
+ 	polkitbackendauthority.h		polkitbackendauthority.c		\
+ 	polkitbackendinteractiveauthority.h	polkitbackendinteractiveauthority.c	\
+ 	polkitbackendjsauthority.h				\
+diff --git a/src/polkitbackend/meson.build b/src/polkitbackend/meson.build
+index 489897d..9ec01b2 100644
+--- a/src/polkitbackend/meson.build
++++ b/src/polkitbackend/meson.build
+@@ -4,6 +4,7 @@ sources = files(
+   'polkitbackendactionlookup.c',
+   'polkitbackendactionpool.c',
+   'polkitbackendauthority.c',
++  'polkitbackendcommon.c',
+   'polkitbackendinteractiveauthority.c',
+ )
+ 
+diff --git a/src/polkitbackend/polkitbackendcommon.c b/src/polkitbackend/polkitbackendcommon.c
+new file mode 100644
+index 0000000..6783dff
+--- /dev/null
++++ b/src/polkitbackend/polkitbackendcommon.c
+@@ -0,0 +1,530 @@
++/*
++ * Copyright (C) 2008 Red Hat, Inc.
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library 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
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General
++ * Public License along with this library; if not, write to the
++ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
++ * Boston, MA 02111-1307, USA.
++ *
++ * Author: David Zeuthen <davidz@redhat.com>
++ */
++
++#include "polkitbackendcommon.h"
++
++static void
++utils_child_watch_from_release_cb (GPid     pid,
++                                   gint     status,
++                                   gpointer user_data)
++{
++}
++
++static void
++utils_spawn_data_free (UtilsSpawnData *data)
++{
++  if (data->timeout_source != NULL)
++    {
++      g_source_destroy (data->timeout_source);
++      data->timeout_source = NULL;
++    }
++
++  /* Nuke the child, if necessary */
++  if (data->child_watch_source != NULL)
++    {
++      g_source_destroy (data->child_watch_source);
++      data->child_watch_source = NULL;
++    }
++
++  if (data->child_pid != 0)
++    {
++      GSource *source;
++      kill (data->child_pid, SIGTERM);
++      /* OK, we need to reap for the child ourselves - we don't want
++       * to use waitpid() because that might block the calling
++       * thread (the child might handle SIGTERM and use several
++       * seconds for cleanup/rollback).
++       *
++       * So we use GChildWatch instead.
++       *
++       * Avoid taking a references to ourselves. but note that we need
++       * to pass the GSource so we can nuke it once handled.
++       */
++      source = g_child_watch_source_new (data->child_pid);
++      g_source_set_callback (source,
++                             (GSourceFunc) utils_child_watch_from_release_cb,
++                             source,
++                             (GDestroyNotify) g_source_destroy);
++      g_source_attach (source, data->main_context);
++      g_source_unref (source);
++      data->child_pid = 0;
++    }
++
++  if (data->child_stdout != NULL)
++    {
++      g_string_free (data->child_stdout, TRUE);
++      data->child_stdout = NULL;
++    }
++
++  if (data->child_stderr != NULL)
++    {
++      g_string_free (data->child_stderr, TRUE);
++      data->child_stderr = NULL;
++    }
++
++  if (data->child_stdout_channel != NULL)
++    {
++      g_io_channel_unref (data->child_stdout_channel);
++      data->child_stdout_channel = NULL;
++    }
++  if (data->child_stderr_channel != NULL)
++    {
++      g_io_channel_unref (data->child_stderr_channel);
++      data->child_stderr_channel = NULL;
++    }
++
++  if (data->child_stdout_source != NULL)
++    {
++      g_source_destroy (data->child_stdout_source);
++      data->child_stdout_source = NULL;
++    }
++  if (data->child_stderr_source != NULL)
++    {
++      g_source_destroy (data->child_stderr_source);
++      data->child_stderr_source = NULL;
++    }
++
++  if (data->child_stdout_fd != -1)
++    {
++      g_warn_if_fail (close (data->child_stdout_fd) == 0);
++      data->child_stdout_fd = -1;
++    }
++  if (data->child_stderr_fd != -1)
++    {
++      g_warn_if_fail (close (data->child_stderr_fd) == 0);
++      data->child_stderr_fd = -1;
++    }
++
++  if (data->cancellable_handler_id > 0)
++    {
++      g_cancellable_disconnect (data->cancellable, data->cancellable_handler_id);
++      data->cancellable_handler_id = 0;
++    }
++
++  if (data->main_context != NULL)
++    g_main_context_unref (data->main_context);
++
++  if (data->cancellable != NULL)
++    g_object_unref (data->cancellable);
++
++  g_slice_free (UtilsSpawnData, data);
++}
++
++/* called in the thread where @cancellable was cancelled */
++static void
++utils_on_cancelled (GCancellable *cancellable,
++                    gpointer      user_data)
++{
++  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
++  GError *error;
++
++  error = NULL;
++  g_warn_if_fail (g_cancellable_set_error_if_cancelled (cancellable, &error));
++  g_simple_async_result_take_error (data->simple, error);
++  g_simple_async_result_complete_in_idle (data->simple);
++  g_object_unref (data->simple);
++}
++
++static gboolean
++utils_timeout_cb (gpointer user_data)
++{
++  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
++
++  data->timed_out = TRUE;
++
++  /* ok, timeout is history, make sure we don't free it in spawn_data_free() */
++  data->timeout_source = NULL;
++
++  /* we're done */
++  g_simple_async_result_complete_in_idle (data->simple);
++  g_object_unref (data->simple);
++
++  return FALSE; /* remove source */
++}
++
++static void
++utils_child_watch_cb (GPid     pid,
++                      gint     status,
++                      gpointer user_data)
++{
++  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
++  gchar *buf;
++  gsize buf_size;
++
++  if (g_io_channel_read_to_end (data->child_stdout_channel, &buf, &buf_size, NULL) == G_IO_STATUS_NORMAL)
++    {
++      g_string_append_len (data->child_stdout, buf, buf_size);
++      g_free (buf);
++    }
++  if (g_io_channel_read_to_end (data->child_stderr_channel, &buf, &buf_size, NULL) == G_IO_STATUS_NORMAL)
++    {
++      g_string_append_len (data->child_stderr, buf, buf_size);
++      g_free (buf);
++    }
++
++  data->exit_status = status;
++
++  /* ok, child watch is history, make sure we don't free it in spawn_data_free() */
++  data->child_pid = 0;
++  data->child_watch_source = NULL;
++
++  /* we're done */
++  g_simple_async_result_complete_in_idle (data->simple);
++  g_object_unref (data->simple);
++}
++
++static gboolean
++utils_read_child_stderr (GIOChannel *channel,
++                         GIOCondition condition,
++                         gpointer user_data)
++{
++  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
++  gchar buf[1024];
++  gsize bytes_read;
++
++  g_io_channel_read_chars (channel, buf, sizeof buf, &bytes_read, NULL);
++  g_string_append_len (data->child_stderr, buf, bytes_read);
++  return TRUE;
++}
++
++static gboolean
++utils_read_child_stdout (GIOChannel *channel,
++                         GIOCondition condition,
++                         gpointer user_data)
++{
++  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
++  gchar buf[1024];
++  gsize bytes_read;
++
++  g_io_channel_read_chars (channel, buf, sizeof buf, &bytes_read, NULL);
++  g_string_append_len (data->child_stdout, buf, bytes_read);
++  return TRUE;
++}
++
++void
++polkit_backend_common_spawn (const gchar *const  *argv,
++                             guint                timeout_seconds,
++                             GCancellable        *cancellable,
++                             GAsyncReadyCallback  callback,
++                             gpointer             user_data)
++{
++  UtilsSpawnData *data;
++  GError *error;
++
++  data = g_slice_new0 (UtilsSpawnData);
++  data->timeout_seconds = timeout_seconds;
++  data->simple = g_simple_async_result_new (NULL,
++                                            callback,
++                                            user_data,
++                                            (gpointer*)polkit_backend_common_spawn);
++  data->main_context = g_main_context_get_thread_default ();
++  if (data->main_context != NULL)
++    g_main_context_ref (data->main_context);
++
++  data->cancellable = cancellable != NULL ? (GCancellable*)g_object_ref (cancellable) : NULL;
++
++  data->child_stdout = g_string_new (NULL);
++  data->child_stderr = g_string_new (NULL);
++  data->child_stdout_fd = -1;
++  data->child_stderr_fd = -1;
++
++  /* the life-cycle of UtilsSpawnData is tied to its GSimpleAsyncResult */
++  g_simple_async_result_set_op_res_gpointer (data->simple, data, (GDestroyNotify) utils_spawn_data_free);
++
++  error = NULL;
++  if (data->cancellable != NULL)
++    {
++      /* could already be cancelled */
++      error = NULL;
++      if (g_cancellable_set_error_if_cancelled (data->cancellable, &error))
++        {
++          g_simple_async_result_take_error (data->simple, error);
++          g_simple_async_result_complete_in_idle (data->simple);
++          g_object_unref (data->simple);
++          goto out;
++        }
++
++      data->cancellable_handler_id = g_cancellable_connect (data->cancellable,
++                                                            G_CALLBACK (utils_on_cancelled),
++                                                            data,
++                                                            NULL);
++    }
++
++  error = NULL;
++  if (!g_spawn_async_with_pipes (NULL, /* working directory */
++                                 (gchar **) argv,
++                                 NULL, /* envp */
++                                 G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
++                                 NULL, /* child_setup */
++                                 NULL, /* child_setup's user_data */
++                                 &(data->child_pid),
++                                 NULL, /* gint *stdin_fd */
++                                 &(data->child_stdout_fd),
++                                 &(data->child_stderr_fd),
++                                 &error))
++    {
++      g_prefix_error (&error, "Error spawning: ");
++      g_simple_async_result_take_error (data->simple, error);
++      g_simple_async_result_complete_in_idle (data->simple);
++      g_object_unref (data->simple);
++      goto out;
++    }
++
++  if (timeout_seconds > 0)
++    {
++      data->timeout_source = g_timeout_source_new_seconds (timeout_seconds);
++      g_source_set_priority (data->timeout_source, G_PRIORITY_DEFAULT);
++      g_source_set_callback (data->timeout_source, utils_timeout_cb, data, NULL);
++      g_source_attach (data->timeout_source, data->main_context);
++      g_source_unref (data->timeout_source);
++    }
++
++  data->child_watch_source = g_child_watch_source_new (data->child_pid);
++  g_source_set_callback (data->child_watch_source, (GSourceFunc) utils_child_watch_cb, data, NULL);
++  g_source_attach (data->child_watch_source, data->main_context);
++  g_source_unref (data->child_watch_source);
++
++  data->child_stdout_channel = g_io_channel_unix_new (data->child_stdout_fd);
++  g_io_channel_set_flags (data->child_stdout_channel, G_IO_FLAG_NONBLOCK, NULL);
++  data->child_stdout_source = g_io_create_watch (data->child_stdout_channel, G_IO_IN);
++  g_source_set_callback (data->child_stdout_source, (GSourceFunc) utils_read_child_stdout, data, NULL);
++  g_source_attach (data->child_stdout_source, data->main_context);
++  g_source_unref (data->child_stdout_source);
++
++  data->child_stderr_channel = g_io_channel_unix_new (data->child_stderr_fd);
++  g_io_channel_set_flags (data->child_stderr_channel, G_IO_FLAG_NONBLOCK, NULL);
++  data->child_stderr_source = g_io_create_watch (data->child_stderr_channel, G_IO_IN);
++  g_source_set_callback (data->child_stderr_source, (GSourceFunc) utils_read_child_stderr, data, NULL);
++  g_source_attach (data->child_stderr_source, data->main_context);
++  g_source_unref (data->child_stderr_source);
++
++ out:
++  ;
++}
++
++void
++polkit_backend_common_on_dir_monitor_changed (GFileMonitor     *monitor,
++                                              GFile            *file,
++                                              GFile            *other_file,
++                                              GFileMonitorEvent event_type,
++                                              gpointer          user_data)
++{
++  PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (user_data);
++
++  /* TODO: maybe rate-limit so storms of events are collapsed into one with a 500ms resolution?
++   *       Because when editing a file with emacs we get 4-8 events..
++   */
++
++  if (file != NULL)
++    {
++      gchar *name;
++
++      name = g_file_get_basename (file);
++
++      /* g_print ("event_type=%d file=%p name=%s\n", event_type, file, name); */
++      if (!g_str_has_prefix (name, ".") &&
++          !g_str_has_prefix (name, "#") &&
++          g_str_has_suffix (name, ".rules") &&
++          (event_type == G_FILE_MONITOR_EVENT_CREATED ||
++           event_type == G_FILE_MONITOR_EVENT_DELETED ||
++           event_type == G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT))
++        {
++          polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                        "Reloading rules");
++          polkit_backend_common_reload_scripts (authority);
++        }
++      g_free (name);
++    }
++}
++
++gboolean
++polkit_backend_common_spawn_finish (GAsyncResult   *res,
++                                    gint           *out_exit_status,
++                                    gchar         **out_standard_output,
++                                    gchar         **out_standard_error,
++                                    GError        **error)
++{
++  GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (res);
++  UtilsSpawnData *data;
++  gboolean ret = FALSE;
++
++  g_return_val_if_fail (G_IS_ASYNC_RESULT (res), FALSE);
++  g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
++
++  g_warn_if_fail (g_simple_async_result_get_source_tag (simple) == polkit_backend_common_spawn);
++
++  if (g_simple_async_result_propagate_error (simple, error))
++    goto out;
++
++  data = (UtilsSpawnData*)g_simple_async_result_get_op_res_gpointer (simple);
++
++  if (data->timed_out)
++    {
++      g_set_error (error,
++                   G_IO_ERROR,
++                   G_IO_ERROR_TIMED_OUT,
++                   "Timed out after %d seconds",
++                   data->timeout_seconds);
++      goto out;
++    }
++
++  if (out_exit_status != NULL)
++    *out_exit_status = data->exit_status;
++
++  if (out_standard_output != NULL)
++    *out_standard_output = g_strdup (data->child_stdout->str);
++
++  if (out_standard_error != NULL)
++    *out_standard_error = g_strdup (data->child_stderr->str);
++
++  ret = TRUE;
++
++ out:
++  return ret;
++}
++
++static const gchar *
++polkit_backend_js_authority_get_name (PolkitBackendAuthority *authority)
++{
++  return "js";
++}
++
++static const gchar *
++polkit_backend_js_authority_get_version (PolkitBackendAuthority *authority)
++{
++  return PACKAGE_VERSION;
++}
++
++static PolkitAuthorityFeatures
++polkit_backend_js_authority_get_features (PolkitBackendAuthority *authority)
++{
++  return POLKIT_AUTHORITY_FEATURES_TEMPORARY_AUTHORIZATION;
++}
++
++void
++polkit_backend_common_js_authority_class_init_common (PolkitBackendJsAuthorityClass *klass)
++{
++  GObjectClass *gobject_class;
++  PolkitBackendAuthorityClass *authority_class;
++  PolkitBackendInteractiveAuthorityClass *interactive_authority_class;
++
++  gobject_class = G_OBJECT_CLASS (klass);
++  gobject_class->finalize                               = polkit_backend_common_js_authority_finalize;
++  gobject_class->set_property                           = polkit_backend_common_js_authority_set_property;
++  gobject_class->constructed                            = polkit_backend_common_js_authority_constructed;
++
++  authority_class = POLKIT_BACKEND_AUTHORITY_CLASS (klass);
++  authority_class->get_name                             = polkit_backend_js_authority_get_name;
++  authority_class->get_version                          = polkit_backend_js_authority_get_version;
++  authority_class->get_features                         = polkit_backend_js_authority_get_features;
++
++  interactive_authority_class = POLKIT_BACKEND_INTERACTIVE_AUTHORITY_CLASS (klass);
++  interactive_authority_class->get_admin_identities     = polkit_backend_common_js_authority_get_admin_auth_identities;
++  interactive_authority_class->check_authorization_sync = polkit_backend_common_js_authority_check_authorization_sync;
++
++  g_object_class_install_property (gobject_class,
++                                   PROP_RULES_DIRS,
++                                   g_param_spec_boxed ("rules-dirs",
++                                                       NULL,
++                                                       NULL,
++                                                       G_TYPE_STRV,
++                                                       G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE));
++}
++
++gint
++polkit_backend_common_rules_file_name_cmp (const gchar *a,
++                                           const gchar *b)
++{
++  gint ret;
++  const gchar *a_base;
++  const gchar *b_base;
++
++  a_base = strrchr (a, '/');
++  b_base = strrchr (b, '/');
++
++  g_assert (a_base != NULL);
++  g_assert (b_base != NULL);
++  a_base += 1;
++  b_base += 1;
++
++  ret = g_strcmp0 (a_base, b_base);
++  if (ret == 0)
++    {
++      /* /etc wins over /usr */
++      ret = g_strcmp0 (a, b);
++      g_assert (ret != 0);
++    }
++
++  return ret;
++}
++
++const gchar *
++polkit_backend_common_get_signal_name (gint signal_number)
++{
++  switch (signal_number)
++    {
++#define _HANDLE_SIG(sig) case sig: return #sig;
++    _HANDLE_SIG (SIGHUP);
++    _HANDLE_SIG (SIGINT);
++    _HANDLE_SIG (SIGQUIT);
++    _HANDLE_SIG (SIGILL);
++    _HANDLE_SIG (SIGABRT);
++    _HANDLE_SIG (SIGFPE);
++    _HANDLE_SIG (SIGKILL);
++    _HANDLE_SIG (SIGSEGV);
++    _HANDLE_SIG (SIGPIPE);
++    _HANDLE_SIG (SIGALRM);
++    _HANDLE_SIG (SIGTERM);
++    _HANDLE_SIG (SIGUSR1);
++    _HANDLE_SIG (SIGUSR2);
++    _HANDLE_SIG (SIGCHLD);
++    _HANDLE_SIG (SIGCONT);
++    _HANDLE_SIG (SIGSTOP);
++    _HANDLE_SIG (SIGTSTP);
++    _HANDLE_SIG (SIGTTIN);
++    _HANDLE_SIG (SIGTTOU);
++    _HANDLE_SIG (SIGBUS);
++#ifdef SIGPOLL
++    _HANDLE_SIG (SIGPOLL);
++#endif
++    _HANDLE_SIG (SIGPROF);
++    _HANDLE_SIG (SIGSYS);
++    _HANDLE_SIG (SIGTRAP);
++    _HANDLE_SIG (SIGURG);
++    _HANDLE_SIG (SIGVTALRM);
++    _HANDLE_SIG (SIGXCPU);
++    _HANDLE_SIG (SIGXFSZ);
++#undef _HANDLE_SIG
++    default:
++      break;
++    }
++  return "UNKNOWN_SIGNAL";
++}
++
++void
++polkit_backend_common_spawn_cb (GObject       *source_object,
++                                GAsyncResult  *res,
++                                gpointer       user_data)
++{
++  SpawnData *data = (SpawnData *)user_data;
++  data->res = (GAsyncResult*)g_object_ref (res);
++  g_main_loop_quit (data->loop);
++}
+diff --git a/src/polkitbackend/polkitbackendcommon.h b/src/polkitbackend/polkitbackendcommon.h
+new file mode 100644
+index 0000000..6d0d267
+--- /dev/null
++++ b/src/polkitbackend/polkitbackendcommon.h
+@@ -0,0 +1,156 @@
++/*
++ * Copyright (C) 2008 Red Hat, Inc.
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library 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
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General
++ * Public License along with this library; if not, write to the
++ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
++ * Boston, MA 02111-1307, USA.
++ *
++ * Author: David Zeuthen <davidz@redhat.com>
++ */
++
++#if !defined (_POLKIT_BACKEND_COMPILATION) && !defined(_POLKIT_BACKEND_INSIDE_POLKIT_BACKEND_H)
++#error "Only <polkitbackend/polkitbackend.h> can be included directly, this file may disappear or change contents."
++#endif
++
++#ifndef __POLKIT_BACKEND_COMMON_H
++#define __POLKIT_BACKEND_COMMON_H
++
++#include "config.h"
++#include <sys/wait.h>
++#include <errno.h>
++#include <pwd.h>
++#include <grp.h>
++#ifdef HAVE_NETGROUP_H
++#include <netgroup.h>
++#else
++#include <netdb.h>
++#endif
++#include <string.h>
++#include <glib/gstdio.h>
++#include <locale.h>
++#include <glib/gi18n-lib.h> //here, all things glib via glib.h (including -> gspawn.h)
++
++#include <polkit/polkit.h>
++#include "polkitbackendjsauthority.h"
++
++#include <polkit/polkitprivate.h>
++
++#ifdef HAVE_LIBSYSTEMD
++#include <systemd/sd-login.h>
++#endif /* HAVE_LIBSYSTEMD */
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++enum
++{
++  PROP_0,
++  PROP_RULES_DIRS,
++};
++
++typedef struct
++{
++  GSimpleAsyncResult *simple; /* borrowed reference */
++  GMainContext *main_context; /* may be NULL */
++
++  GCancellable *cancellable;  /* may be NULL */
++  gulong cancellable_handler_id;
++
++  GPid child_pid;
++  gint child_stdout_fd;
++  gint child_stderr_fd;
++
++  GIOChannel *child_stdout_channel;
++  GIOChannel *child_stderr_channel;
++
++  GSource *child_watch_source;
++  GSource *child_stdout_source;
++  GSource *child_stderr_source;
++
++  guint timeout_seconds;
++  gboolean timed_out;
++  GSource *timeout_source;
++
++  GString *child_stdout;
++  GString *child_stderr;
++
++  gint exit_status;
++} UtilsSpawnData;
++
++typedef struct
++{
++  GMainLoop *loop;
++  GAsyncResult *res;
++} SpawnData;
++
++void polkit_backend_common_spawn (const gchar *const  *argv,
++                                  guint                timeout_seconds,
++                                  GCancellable        *cancellable,
++                                  GAsyncReadyCallback  callback,
++                                  gpointer             user_data);
++void polkit_backend_common_spawn_cb (GObject       *source_object,
++                                     GAsyncResult  *res,
++                                     gpointer       user_data);
++gboolean polkit_backend_common_spawn_finish (GAsyncResult   *res,
++                                             gint           *out_exit_status,
++                                             gchar         **out_standard_output,
++                                             gchar         **out_standard_error,
++                                             GError        **error);
++
++void polkit_backend_common_on_dir_monitor_changed (GFileMonitor     *monitor,
++                                                   GFile            *file,
++                                                   GFile            *other_file,
++                                                   GFileMonitorEvent event_type,
++                                                   gpointer          user_data);
++
++void polkit_backend_common_js_authority_class_init_common (PolkitBackendJsAuthorityClass *klass);
++
++gint polkit_backend_common_rules_file_name_cmp (const gchar *a,
++                                                const gchar *b);
++
++const gchar *polkit_backend_common_get_signal_name (gint signal_number);
++
++/* To be provided by each JS backend, from here onwards  ---------------------------------------------- */
++
++void polkit_backend_common_reload_scripts (PolkitBackendJsAuthority *authority);
++void polkit_backend_common_js_authority_finalize (GObject *object);
++void polkit_backend_common_js_authority_constructed (GObject *object);
++GList *polkit_backend_common_js_authority_get_admin_auth_identities (PolkitBackendInteractiveAuthority *_authority,
++                                                                     PolkitSubject                     *caller,
++                                                                     PolkitSubject                     *subject,
++                                                                     PolkitIdentity                    *user_for_subject,
++                                                                     gboolean                           subject_is_local,
++                                                                     gboolean                           subject_is_active,
++                                                                     const gchar                       *action_id,
++                                                                     PolkitDetails                     *details);
++void polkit_backend_common_js_authority_set_property (GObject      *object,
++                                                      guint         property_id,
++                                                      const GValue *value,
++                                                      GParamSpec   *pspec);
++PolkitImplicitAuthorization polkit_backend_common_js_authority_check_authorization_sync (PolkitBackendInteractiveAuthority *_authority,
++                                                                                         PolkitSubject                     *caller,
++                                                                                         PolkitSubject                     *subject,
++                                                                                         PolkitIdentity                    *user_for_subject,
++                                                                                         gboolean                           subject_is_local,
++                                                                                         gboolean                           subject_is_active,
++                                                                                         const gchar                       *action_id,
++                                                                                         PolkitDetails                     *details,
++                                                                                         PolkitImplicitAuthorization        implicit);
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* __POLKIT_BACKEND_COMMON_H */
++
+diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c
+index 4b4f8fd..a2b4420 100644
+--- a/src/polkitbackend/polkitbackendduktapeauthority.c
++++ b/src/polkitbackend/polkitbackendduktapeauthority.c
+@@ -21,32 +21,12 @@
+  * Author: David Zeuthen <davidz@redhat.com>
+  */
+ 
+-#include "config.h"
+-#include <sys/wait.h>
+-#include <errno.h>
+-#include <pwd.h>
+-#include <grp.h>
+-#ifdef HAVE_NETGROUP_H
+-#include <netgroup.h>
+-#else
+-#include <netdb.h>
+-#endif
+-#include <string.h>
+-#include <glib/gstdio.h>
+-#include <locale.h>
+-#include <glib/gi18n-lib.h>
+-
+-#include <polkit/polkit.h>
+-#include "polkitbackendjsauthority.h"
+-
+-#include <polkit/polkitprivate.h>
++#include "polkitbackendcommon.h"
+ 
+-#ifdef HAVE_LIBSYSTEMD
+-#include <systemd/sd-login.h>
+-#endif /* HAVE_LIBSYSTEMD */
++#include "duktape.h"
+ 
++/* Built source and not too big to worry about deduplication */
+ #include "initjs.h" /* init.js */
+-#include "duktape.h"
+ 
+ /**
+  * SECTION:polkitbackendjsauthority
+@@ -54,10 +34,9 @@
+  * @short_description: JS Authority
+  * @stability: Unstable
+  *
+- * An implementation of #PolkitBackendAuthority that reads and
+- * evalates Javascript files and supports interaction with
+- * authentication agents (virtue of being based on
+- * #PolkitBackendInteractiveAuthority).
++ * An (Duktape-based) implementation of #PolkitBackendAuthority that reads and
++ * evaluates Javascript files and supports interaction with authentication
++ * agents (virtue of being based on #PolkitBackendInteractiveAuthority).
+  */
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+@@ -66,64 +45,16 @@ struct _PolkitBackendJsAuthorityPrivate
+ {
+   gchar **rules_dirs;
+   GFileMonitor **dir_monitors; /* NULL-terminated array of GFileMonitor instances */
+-  duk_context *cx;
+-};
+-
+-
+-static void utils_spawn (const gchar *const  *argv,
+-                         guint                timeout_seconds,
+-                         GCancellable        *cancellable,
+-                         GAsyncReadyCallback  callback,
+-                         gpointer             user_data);
+-
+-gboolean utils_spawn_finish (GAsyncResult   *res,
+-                             gint           *out_exit_status,
+-                             gchar         **out_standard_output,
+-                             gchar         **out_standard_error,
+-                             GError        **error);
+ 
+-static void on_dir_monitor_changed (GFileMonitor     *monitor,
+-                                    GFile            *file,
+-                                    GFile            *other_file,
+-                                    GFileMonitorEvent event_type,
+-                                    gpointer          user_data);
+-
+-/* ---------------------------------------------------------------------------------------------------- */
+-
+-enum
+-{
+-  PROP_0,
+-  PROP_RULES_DIRS,
++  duk_context *cx;
+ };
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
+-static GList *polkit_backend_js_authority_get_admin_auth_identities (PolkitBackendInteractiveAuthority *authority,
+-                                                                     PolkitSubject                     *caller,
+-                                                                     PolkitSubject                     *subject,
+-                                                                     PolkitIdentity                    *user_for_subject,
+-                                                                     gboolean                           subject_is_local,
+-                                                                     gboolean                           subject_is_active,
+-                                                                     const gchar                       *action_id,
+-                                                                     PolkitDetails                     *details);
+-
+-static PolkitImplicitAuthorization polkit_backend_js_authority_check_authorization_sync (
+-                                                          PolkitBackendInteractiveAuthority *authority,
+-                                                          PolkitSubject                     *caller,
+-                                                          PolkitSubject                     *subject,
+-                                                          PolkitIdentity                    *user_for_subject,
+-                                                          gboolean                           subject_is_local,
+-                                                          gboolean                           subject_is_active,
+-                                                          const gchar                       *action_id,
+-                                                          PolkitDetails                     *details,
+-                                                          PolkitImplicitAuthorization        implicit);
+-
+ G_DEFINE_TYPE (PolkitBackendJsAuthority, polkit_backend_js_authority, POLKIT_BACKEND_TYPE_INTERACTIVE_AUTHORITY);
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
+-/* ---------------------------------------------------------------------------------------------------- */
+-
+ static duk_ret_t js_polkit_log (duk_context *cx);
+ static duk_ret_t js_polkit_spawn (duk_context *cx);
+ static duk_ret_t js_polkit_user_is_in_netgroup (duk_context *cx);
+@@ -144,33 +75,6 @@ polkit_backend_js_authority_init (PolkitBackendJsAuthority *authority)
+                                                  PolkitBackendJsAuthorityPrivate);
+ }
+ 
+-static gint
+-rules_file_name_cmp (const gchar *a,
+-                     const gchar *b)
+-{
+-  gint ret;
+-  const gchar *a_base;
+-  const gchar *b_base;
+-
+-  a_base = strrchr (a, '/');
+-  b_base = strrchr (b, '/');
+-
+-  g_assert (a_base != NULL);
+-  g_assert (b_base != NULL);
+-  a_base += 1;
+-  b_base += 1;
+-
+-  ret = g_strcmp0 (a_base, b_base);
+-  if (ret == 0)
+-    {
+-      /* /etc wins over /usr */
+-      ret = g_strcmp0 (a, b);
+-      g_assert (ret != 0);
+-    }
+-
+-  return ret;
+-}
+-
+ static void
+ load_scripts (PolkitBackendJsAuthority  *authority)
+ {
+@@ -214,7 +118,7 @@ load_scripts (PolkitBackendJsAuthority  *authority)
+         }
+     }
+ 
+-  files = g_list_sort (files, (GCompareFunc) rules_file_name_cmp);
++  files = g_list_sort (files, (GCompareFunc) polkit_backend_common_rules_file_name_cmp);
+ 
+   for (l = files; l != NULL; l = l->next)
+     {
+@@ -258,8 +162,8 @@ load_scripts (PolkitBackendJsAuthority  *authority)
+   g_list_free_full (files, g_free);
+ }
+ 
+-static void
+-reload_scripts (PolkitBackendJsAuthority *authority)
++void
++polkit_backend_common_reload_scripts (PolkitBackendJsAuthority *authority)
+ {
+   duk_context *cx = authority->priv->cx;
+ 
+@@ -282,42 +186,6 @@ reload_scripts (PolkitBackendJsAuthority *authority)
+   g_signal_emit_by_name (authority, "changed");
+ }
+ 
+-static void
+-on_dir_monitor_changed (GFileMonitor     *monitor,
+-                        GFile            *file,
+-                        GFile            *other_file,
+-                        GFileMonitorEvent event_type,
+-                        gpointer          user_data)
+-{
+-  PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (user_data);
+-
+-  /* TODO: maybe rate-limit so storms of events are collapsed into one with a 500ms resolution?
+-   *       Because when editing a file with emacs we get 4-8 events..
+-   */
+-
+-  if (file != NULL)
+-    {
+-      gchar *name;
+-
+-      name = g_file_get_basename (file);
+-
+-      /* g_print ("event_type=%d file=%p name=%s\n", event_type, file, name); */
+-      if (!g_str_has_prefix (name, ".") &&
+-          !g_str_has_prefix (name, "#") &&
+-          g_str_has_suffix (name, ".rules") &&
+-          (event_type == G_FILE_MONITOR_EVENT_CREATED ||
+-           event_type == G_FILE_MONITOR_EVENT_DELETED ||
+-           event_type == G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT))
+-        {
+-          polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
+-                                        "Reloading rules");
+-          reload_scripts (authority);
+-        }
+-      g_free (name);
+-    }
+-}
+-
+-
+ static void
+ setup_file_monitors (PolkitBackendJsAuthority *authority)
+ {
+@@ -349,7 +217,7 @@ setup_file_monitors (PolkitBackendJsAuthority *authority)
+         {
+           g_signal_connect (monitor,
+                             "changed",
+-                            G_CALLBACK (on_dir_monitor_changed),
++                            G_CALLBACK (polkit_backend_common_on_dir_monitor_changed),
+                             authority);
+           g_ptr_array_add (p, monitor);
+         }
+@@ -358,8 +226,8 @@ setup_file_monitors (PolkitBackendJsAuthority *authority)
+   authority->priv->dir_monitors = (GFileMonitor**) g_ptr_array_free (p, FALSE);
+ }
+ 
+-static void
+-polkit_backend_js_authority_constructed (GObject *object)
++void
++polkit_backend_common_js_authority_constructed (GObject *object)
+ {
+   PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (object);
+   duk_context *cx;
+@@ -395,8 +263,8 @@ polkit_backend_js_authority_constructed (GObject *object)
+   g_assert_not_reached ();
+ }
+ 
+-static void
+-polkit_backend_js_authority_finalize (GObject *object)
++void
++polkit_backend_common_js_authority_finalize (GObject *object)
+ {
+   PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (object);
+   guint n;
+@@ -405,7 +273,7 @@ polkit_backend_js_authority_finalize (GObject *object)
+     {
+       GFileMonitor *monitor = authority->priv->dir_monitors[n];
+       g_signal_handlers_disconnect_by_func (monitor,
+-                                            G_CALLBACK (on_dir_monitor_changed),
++                                            G_CALLBACK (polkit_backend_common_on_dir_monitor_changed),
+                                             authority);
+       g_object_unref (monitor);
+     }
+@@ -417,11 +285,11 @@ polkit_backend_js_authority_finalize (GObject *object)
+   G_OBJECT_CLASS (polkit_backend_js_authority_parent_class)->finalize (object);
+ }
+ 
+-static void
+-polkit_backend_js_authority_set_property (GObject      *object,
+-                                          guint         property_id,
+-                                          const GValue *value,
+-                                          GParamSpec   *pspec)
++void
++polkit_backend_common_js_authority_set_property (GObject      *object,
++                                                 guint         property_id,
++                                                 const GValue *value,
++                                                 GParamSpec   *pspec)
+ {
+   PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (object);
+ 
+@@ -438,55 +306,10 @@ polkit_backend_js_authority_set_property (GObject      *object,
+     }
+ }
+ 
+-static const gchar *
+-polkit_backend_js_authority_get_name (PolkitBackendAuthority *authority)
+-{
+-  return "js";
+-}
+-
+-static const gchar *
+-polkit_backend_js_authority_get_version (PolkitBackendAuthority *authority)
+-{
+-  return PACKAGE_VERSION;
+-}
+-
+-static PolkitAuthorityFeatures
+-polkit_backend_js_authority_get_features (PolkitBackendAuthority *authority)
+-{
+-  return POLKIT_AUTHORITY_FEATURES_TEMPORARY_AUTHORIZATION;
+-}
+-
+ static void
+ polkit_backend_js_authority_class_init (PolkitBackendJsAuthorityClass *klass)
+ {
+-  GObjectClass *gobject_class;
+-  PolkitBackendAuthorityClass *authority_class;
+-  PolkitBackendInteractiveAuthorityClass *interactive_authority_class;
+-
+-
+-  gobject_class = G_OBJECT_CLASS (klass);
+-  gobject_class->finalize                               = polkit_backend_js_authority_finalize;
+-  gobject_class->set_property                           = polkit_backend_js_authority_set_property;
+-  gobject_class->constructed                            = polkit_backend_js_authority_constructed;
+-
+-  authority_class = POLKIT_BACKEND_AUTHORITY_CLASS (klass);
+-  authority_class->get_name                             = polkit_backend_js_authority_get_name;
+-  authority_class->get_version                          = polkit_backend_js_authority_get_version;
+-  authority_class->get_features                         = polkit_backend_js_authority_get_features;
+-
+-  interactive_authority_class = POLKIT_BACKEND_INTERACTIVE_AUTHORITY_CLASS (klass);
+-  interactive_authority_class->get_admin_identities     = polkit_backend_js_authority_get_admin_auth_identities;
+-  interactive_authority_class->check_authorization_sync = polkit_backend_js_authority_check_authorization_sync;
+-
+-  g_object_class_install_property (gobject_class,
+-                                   PROP_RULES_DIRS,
+-                                   g_param_spec_boxed ("rules-dirs",
+-                                                       NULL,
+-                                                       NULL,
+-                                                       G_TYPE_STRV,
+-                                                       G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE));
+-
+-
++  polkit_backend_common_js_authority_class_init_common (klass);
+   g_type_class_add_private (klass, sizeof (PolkitBackendJsAuthorityPrivate));
+ }
+ 
+@@ -689,15 +512,15 @@ push_action_and_details (duk_context               *cx,
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
+-static GList *
+-polkit_backend_js_authority_get_admin_auth_identities (PolkitBackendInteractiveAuthority *_authority,
+-                                                       PolkitSubject                     *caller,
+-                                                       PolkitSubject                     *subject,
+-                                                       PolkitIdentity                    *user_for_subject,
+-                                                       gboolean                           subject_is_local,
+-                                                       gboolean                           subject_is_active,
+-                                                       const gchar                       *action_id,
+-                                                       PolkitDetails                     *details)
++GList *
++polkit_backend_common_js_authority_get_admin_auth_identities (PolkitBackendInteractiveAuthority *_authority,
++                                                              PolkitSubject                     *caller,
++                                                              PolkitSubject                     *subject,
++                                                              PolkitIdentity                    *user_for_subject,
++                                                              gboolean                           subject_is_local,
++                                                              gboolean                           subject_is_active,
++                                                              const gchar                       *action_id,
++                                                              PolkitDetails                     *details)
+ {
+   PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (_authority);
+   GList *ret = NULL;
+@@ -777,16 +600,16 @@ polkit_backend_js_authority_get_admin_auth_identities (PolkitBackendInteractiveA
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
+-static PolkitImplicitAuthorization
+-polkit_backend_js_authority_check_authorization_sync (PolkitBackendInteractiveAuthority *_authority,
+-                                                      PolkitSubject                     *caller,
+-                                                      PolkitSubject                     *subject,
+-                                                      PolkitIdentity                    *user_for_subject,
+-                                                      gboolean                           subject_is_local,
+-                                                      gboolean                           subject_is_active,
+-                                                      const gchar                       *action_id,
+-                                                      PolkitDetails                     *details,
+-                                                      PolkitImplicitAuthorization        implicit)
++PolkitImplicitAuthorization
++polkit_backend_common_js_authority_check_authorization_sync (PolkitBackendInteractiveAuthority *_authority,
++                                                             PolkitSubject                     *caller,
++                                                             PolkitSubject                     *subject,
++                                                             PolkitIdentity                    *user_for_subject,
++                                                             gboolean                           subject_is_local,
++                                                             gboolean                           subject_is_active,
++                                                             const gchar                       *action_id,
++                                                             PolkitDetails                     *details,
++                                                             PolkitImplicitAuthorization        implicit)
+ {
+   PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (_authority);
+   PolkitImplicitAuthorization ret = implicit;
+@@ -864,65 +687,6 @@ js_polkit_log (duk_context *cx)
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
+-static const gchar *
+-get_signal_name (gint signal_number)
+-{
+-  switch (signal_number)
+-    {
+-#define _HANDLE_SIG(sig) case sig: return #sig;
+-    _HANDLE_SIG (SIGHUP);
+-    _HANDLE_SIG (SIGINT);
+-    _HANDLE_SIG (SIGQUIT);
+-    _HANDLE_SIG (SIGILL);
+-    _HANDLE_SIG (SIGABRT);
+-    _HANDLE_SIG (SIGFPE);
+-    _HANDLE_SIG (SIGKILL);
+-    _HANDLE_SIG (SIGSEGV);
+-    _HANDLE_SIG (SIGPIPE);
+-    _HANDLE_SIG (SIGALRM);
+-    _HANDLE_SIG (SIGTERM);
+-    _HANDLE_SIG (SIGUSR1);
+-    _HANDLE_SIG (SIGUSR2);
+-    _HANDLE_SIG (SIGCHLD);
+-    _HANDLE_SIG (SIGCONT);
+-    _HANDLE_SIG (SIGSTOP);
+-    _HANDLE_SIG (SIGTSTP);
+-    _HANDLE_SIG (SIGTTIN);
+-    _HANDLE_SIG (SIGTTOU);
+-    _HANDLE_SIG (SIGBUS);
+-#ifdef SIGPOLL
+-    _HANDLE_SIG (SIGPOLL);
+-#endif
+-    _HANDLE_SIG (SIGPROF);
+-    _HANDLE_SIG (SIGSYS);
+-    _HANDLE_SIG (SIGTRAP);
+-    _HANDLE_SIG (SIGURG);
+-    _HANDLE_SIG (SIGVTALRM);
+-    _HANDLE_SIG (SIGXCPU);
+-    _HANDLE_SIG (SIGXFSZ);
+-#undef _HANDLE_SIG
+-    default:
+-      break;
+-    }
+-  return "UNKNOWN_SIGNAL";
+-}
+-
+-typedef struct
+-{
+-  GMainLoop *loop;
+-  GAsyncResult *res;
+-} SpawnData;
+-
+-static void
+-spawn_cb (GObject       *source_object,
+-          GAsyncResult  *res,
+-          gpointer       user_data)
+-{
+-  SpawnData *data = (SpawnData *)user_data;
+-  data->res = (GAsyncResult*)g_object_ref (res);
+-  g_main_loop_quit (data->loop);
+-}
+-
+ static duk_ret_t
+ js_polkit_spawn (duk_context *cx)
+ {
+@@ -962,21 +726,21 @@ js_polkit_spawn (duk_context *cx)
+   g_main_context_push_thread_default (context);
+ 
+   data.loop = loop;
+-  utils_spawn ((const gchar *const *) argv,
+-               10, /* timeout_seconds */
+-               NULL, /* cancellable */
+-               spawn_cb,
+-               &data);
++  polkit_backend_common_spawn ((const gchar *const *) argv,
++                               10, /* timeout_seconds */
++                               NULL, /* cancellable */
++                               polkit_backend_common_spawn_cb,
++                               &data);
+ 
+   g_main_loop_run (loop);
+ 
+   g_main_context_pop_thread_default (context);
+ 
+-  if (!utils_spawn_finish (data.res,
+-                           &exit_status,
+-                           &standard_output,
+-                           &standard_error,
+-                           &error))
++  if (!polkit_backend_common_spawn_finish (data.res,
++                                           &exit_status,
++                                           &standard_output,
++                                           &standard_error,
++                                           &error))
+     {
+       err_str = g_strdup_printf ("Error spawning helper: %s (%s, %d)",
+                                  error->message, g_quark_to_string (error->domain), error->code);
+@@ -998,7 +762,7 @@ js_polkit_spawn (duk_context *cx)
+         {
+           g_string_append_printf (gstr,
+                                   "Helper was signaled with signal %s (%d)",
+-                                  get_signal_name (WTERMSIG (exit_status)),
++                                  polkit_backend_common_get_signal_name (WTERMSIG (exit_status)),
+                                   WTERMSIG (exit_status));
+         }
+       g_string_append_printf (gstr, ", stdout=`%s', stderr=`%s'",
+@@ -1052,377 +816,3 @@ js_polkit_user_is_in_netgroup (duk_context *cx)
+ }
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+-
+-typedef struct
+-{
+-  GSimpleAsyncResult *simple; /* borrowed reference */
+-  GMainContext *main_context; /* may be NULL */
+-
+-  GCancellable *cancellable;  /* may be NULL */
+-  gulong cancellable_handler_id;
+-
+-  GPid child_pid;
+-  gint child_stdout_fd;
+-  gint child_stderr_fd;
+-
+-  GIOChannel *child_stdout_channel;
+-  GIOChannel *child_stderr_channel;
+-
+-  GSource *child_watch_source;
+-  GSource *child_stdout_source;
+-  GSource *child_stderr_source;
+-
+-  guint timeout_seconds;
+-  gboolean timed_out;
+-  GSource *timeout_source;
+-
+-  GString *child_stdout;
+-  GString *child_stderr;
+-
+-  gint exit_status;
+-} UtilsSpawnData;
+-
+-static void
+-utils_child_watch_from_release_cb (GPid     pid,
+-                                   gint     status,
+-                                   gpointer user_data)
+-{
+-}
+-
+-static void
+-utils_spawn_data_free (UtilsSpawnData *data)
+-{
+-  if (data->timeout_source != NULL)
+-    {
+-      g_source_destroy (data->timeout_source);
+-      data->timeout_source = NULL;
+-    }
+-
+-  /* Nuke the child, if necessary */
+-  if (data->child_watch_source != NULL)
+-    {
+-      g_source_destroy (data->child_watch_source);
+-      data->child_watch_source = NULL;
+-    }
+-
+-  if (data->child_pid != 0)
+-    {
+-      GSource *source;
+-      kill (data->child_pid, SIGTERM);
+-      /* OK, we need to reap for the child ourselves - we don't want
+-       * to use waitpid() because that might block the calling
+-       * thread (the child might handle SIGTERM and use several
+-       * seconds for cleanup/rollback).
+-       *
+-       * So we use GChildWatch instead.
+-       *
+-       * Avoid taking a references to ourselves. but note that we need
+-       * to pass the GSource so we can nuke it once handled.
+-       */
+-      source = g_child_watch_source_new (data->child_pid);
+-      g_source_set_callback (source,
+-                             (GSourceFunc) utils_child_watch_from_release_cb,
+-                             source,
+-                             (GDestroyNotify) g_source_destroy);
+-      g_source_attach (source, data->main_context);
+-      g_source_unref (source);
+-      data->child_pid = 0;
+-    }
+-
+-  if (data->child_stdout != NULL)
+-    {
+-      g_string_free (data->child_stdout, TRUE);
+-      data->child_stdout = NULL;
+-    }
+-
+-  if (data->child_stderr != NULL)
+-    {
+-      g_string_free (data->child_stderr, TRUE);
+-      data->child_stderr = NULL;
+-    }
+-
+-  if (data->child_stdout_channel != NULL)
+-    {
+-      g_io_channel_unref (data->child_stdout_channel);
+-      data->child_stdout_channel = NULL;
+-    }
+-  if (data->child_stderr_channel != NULL)
+-    {
+-      g_io_channel_unref (data->child_stderr_channel);
+-      data->child_stderr_channel = NULL;
+-    }
+-
+-  if (data->child_stdout_source != NULL)
+-    {
+-      g_source_destroy (data->child_stdout_source);
+-      data->child_stdout_source = NULL;
+-    }
+-  if (data->child_stderr_source != NULL)
+-    {
+-      g_source_destroy (data->child_stderr_source);
+-      data->child_stderr_source = NULL;
+-    }
+-
+-  if (data->child_stdout_fd != -1)
+-    {
+-      g_warn_if_fail (close (data->child_stdout_fd) == 0);
+-      data->child_stdout_fd = -1;
+-    }
+-  if (data->child_stderr_fd != -1)
+-    {
+-      g_warn_if_fail (close (data->child_stderr_fd) == 0);
+-      data->child_stderr_fd = -1;
+-    }
+-
+-  if (data->cancellable_handler_id > 0)
+-    {
+-      g_cancellable_disconnect (data->cancellable, data->cancellable_handler_id);
+-      data->cancellable_handler_id = 0;
+-    }
+-
+-  if (data->main_context != NULL)
+-    g_main_context_unref (data->main_context);
+-
+-  if (data->cancellable != NULL)
+-    g_object_unref (data->cancellable);
+-
+-  g_slice_free (UtilsSpawnData, data);
+-}
+-
+-/* called in the thread where @cancellable was cancelled */
+-static void
+-utils_on_cancelled (GCancellable *cancellable,
+-                    gpointer      user_data)
+-{
+-  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
+-  GError *error;
+-
+-  error = NULL;
+-  g_warn_if_fail (g_cancellable_set_error_if_cancelled (cancellable, &error));
+-  g_simple_async_result_take_error (data->simple, error);
+-  g_simple_async_result_complete_in_idle (data->simple);
+-  g_object_unref (data->simple);
+-}
+-
+-static gboolean
+-utils_read_child_stderr (GIOChannel *channel,
+-                         GIOCondition condition,
+-                         gpointer user_data)
+-{
+-  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
+-  gchar buf[1024];
+-  gsize bytes_read;
+-
+-  g_io_channel_read_chars (channel, buf, sizeof buf, &bytes_read, NULL);
+-  g_string_append_len (data->child_stderr, buf, bytes_read);
+-  return TRUE;
+-}
+-
+-static gboolean
+-utils_read_child_stdout (GIOChannel *channel,
+-                         GIOCondition condition,
+-                         gpointer user_data)
+-{
+-  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
+-  gchar buf[1024];
+-  gsize bytes_read;
+-
+-  g_io_channel_read_chars (channel, buf, sizeof buf, &bytes_read, NULL);
+-  g_string_append_len (data->child_stdout, buf, bytes_read);
+-  return TRUE;
+-}
+-
+-static void
+-utils_child_watch_cb (GPid     pid,
+-                      gint     status,
+-                      gpointer user_data)
+-{
+-  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
+-  gchar *buf;
+-  gsize buf_size;
+-
+-  if (g_io_channel_read_to_end (data->child_stdout_channel, &buf, &buf_size, NULL) == G_IO_STATUS_NORMAL)
+-    {
+-      g_string_append_len (data->child_stdout, buf, buf_size);
+-      g_free (buf);
+-    }
+-  if (g_io_channel_read_to_end (data->child_stderr_channel, &buf, &buf_size, NULL) == G_IO_STATUS_NORMAL)
+-    {
+-      g_string_append_len (data->child_stderr, buf, buf_size);
+-      g_free (buf);
+-    }
+-
+-  data->exit_status = status;
+-
+-  /* ok, child watch is history, make sure we don't free it in spawn_data_free() */
+-  data->child_pid = 0;
+-  data->child_watch_source = NULL;
+-
+-  /* we're done */
+-  g_simple_async_result_complete_in_idle (data->simple);
+-  g_object_unref (data->simple);
+-}
+-
+-static gboolean
+-utils_timeout_cb (gpointer user_data)
+-{
+-  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
+-
+-  data->timed_out = TRUE;
+-
+-  /* ok, timeout is history, make sure we don't free it in spawn_data_free() */
+-  data->timeout_source = NULL;
+-
+-  /* we're done */
+-  g_simple_async_result_complete_in_idle (data->simple);
+-  g_object_unref (data->simple);
+-
+-  return FALSE; /* remove source */
+-}
+-
+-static void
+-utils_spawn (const gchar *const  *argv,
+-             guint                timeout_seconds,
+-             GCancellable        *cancellable,
+-             GAsyncReadyCallback  callback,
+-             gpointer             user_data)
+-{
+-  UtilsSpawnData *data;
+-  GError *error;
+-
+-  data = g_slice_new0 (UtilsSpawnData);
+-  data->timeout_seconds = timeout_seconds;
+-  data->simple = g_simple_async_result_new (NULL,
+-                                            callback,
+-                                            user_data,
+-                                            (gpointer*)utils_spawn);
+-  data->main_context = g_main_context_get_thread_default ();
+-  if (data->main_context != NULL)
+-    g_main_context_ref (data->main_context);
+-
+-  data->cancellable = cancellable != NULL ? (GCancellable*)g_object_ref (cancellable) : NULL;
+-
+-  data->child_stdout = g_string_new (NULL);
+-  data->child_stderr = g_string_new (NULL);
+-  data->child_stdout_fd = -1;
+-  data->child_stderr_fd = -1;
+-
+-  /* the life-cycle of UtilsSpawnData is tied to its GSimpleAsyncResult */
+-  g_simple_async_result_set_op_res_gpointer (data->simple, data, (GDestroyNotify) utils_spawn_data_free);
+-
+-  error = NULL;
+-  if (data->cancellable != NULL)
+-    {
+-      /* could already be cancelled */
+-      error = NULL;
+-      if (g_cancellable_set_error_if_cancelled (data->cancellable, &error))
+-        {
+-          g_simple_async_result_take_error (data->simple, error);
+-          g_simple_async_result_complete_in_idle (data->simple);
+-          g_object_unref (data->simple);
+-          goto out;
+-        }
+-
+-      data->cancellable_handler_id = g_cancellable_connect (data->cancellable,
+-                                                            G_CALLBACK (utils_on_cancelled),
+-                                                            data,
+-                                                            NULL);
+-    }
+-
+-  error = NULL;
+-  if (!g_spawn_async_with_pipes (NULL, /* working directory */
+-                                 (gchar **) argv,
+-                                 NULL, /* envp */
+-                                 G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
+-                                 NULL, /* child_setup */
+-                                 NULL, /* child_setup's user_data */
+-                                 &(data->child_pid),
+-                                 NULL, /* gint *stdin_fd */
+-                                 &(data->child_stdout_fd),
+-                                 &(data->child_stderr_fd),
+-                                 &error))
+-    {
+-      g_prefix_error (&error, "Error spawning: ");
+-      g_simple_async_result_take_error (data->simple, error);
+-      g_simple_async_result_complete_in_idle (data->simple);
+-      g_object_unref (data->simple);
+-      goto out;
+-    }
+-
+-  if (timeout_seconds > 0)
+-    {
+-      data->timeout_source = g_timeout_source_new_seconds (timeout_seconds);
+-      g_source_set_priority (data->timeout_source, G_PRIORITY_DEFAULT);
+-      g_source_set_callback (data->timeout_source, utils_timeout_cb, data, NULL);
+-      g_source_attach (data->timeout_source, data->main_context);
+-      g_source_unref (data->timeout_source);
+-    }
+-
+-  data->child_watch_source = g_child_watch_source_new (data->child_pid);
+-  g_source_set_callback (data->child_watch_source, (GSourceFunc) utils_child_watch_cb, data, NULL);
+-  g_source_attach (data->child_watch_source, data->main_context);
+-  g_source_unref (data->child_watch_source);
+-
+-  data->child_stdout_channel = g_io_channel_unix_new (data->child_stdout_fd);
+-  g_io_channel_set_flags (data->child_stdout_channel, G_IO_FLAG_NONBLOCK, NULL);
+-  data->child_stdout_source = g_io_create_watch (data->child_stdout_channel, G_IO_IN);
+-  g_source_set_callback (data->child_stdout_source, (GSourceFunc) utils_read_child_stdout, data, NULL);
+-  g_source_attach (data->child_stdout_source, data->main_context);
+-  g_source_unref (data->child_stdout_source);
+-
+-  data->child_stderr_channel = g_io_channel_unix_new (data->child_stderr_fd);
+-  g_io_channel_set_flags (data->child_stderr_channel, G_IO_FLAG_NONBLOCK, NULL);
+-  data->child_stderr_source = g_io_create_watch (data->child_stderr_channel, G_IO_IN);
+-  g_source_set_callback (data->child_stderr_source, (GSourceFunc) utils_read_child_stderr, data, NULL);
+-  g_source_attach (data->child_stderr_source, data->main_context);
+-  g_source_unref (data->child_stderr_source);
+-
+- out:
+-  ;
+-}
+-
+-gboolean
+-utils_spawn_finish (GAsyncResult   *res,
+-                    gint           *out_exit_status,
+-                    gchar         **out_standard_output,
+-                    gchar         **out_standard_error,
+-                    GError        **error)
+-{
+-  GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (res);
+-  UtilsSpawnData *data;
+-  gboolean ret = FALSE;
+-
+-  g_return_val_if_fail (G_IS_ASYNC_RESULT (res), FALSE);
+-  g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+-
+-  g_warn_if_fail (g_simple_async_result_get_source_tag (simple) == utils_spawn);
+-
+-  if (g_simple_async_result_propagate_error (simple, error))
+-    goto out;
+-
+-  data = (UtilsSpawnData*)g_simple_async_result_get_op_res_gpointer (simple);
+-
+-  if (data->timed_out)
+-    {
+-      g_set_error (error,
+-                   G_IO_ERROR,
+-                   G_IO_ERROR_TIMED_OUT,
+-                   "Timed out after %d seconds",
+-                   data->timeout_seconds);
+-      goto out;
+-    }
+-
+-  if (out_exit_status != NULL)
+-    *out_exit_status = data->exit_status;
+-
+-  if (out_standard_output != NULL)
+-    *out_standard_output = g_strdup (data->child_stdout->str);
+-
+-  if (out_standard_error != NULL)
+-    *out_standard_error = g_strdup (data->child_stderr->str);
+-
+-  ret = TRUE;
+-
+- out:
+-  return ret;
+-}
+diff --git a/src/polkitbackend/polkitbackendjsauthority.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp
+index ca17108..e28091d 100644
+--- a/src/polkitbackend/polkitbackendjsauthority.cpp
++++ b/src/polkitbackend/polkitbackendjsauthority.cpp
+@@ -19,29 +19,7 @@
+  * Author: David Zeuthen <davidz@redhat.com>
+  */
+ 
+-#include "config.h"
+-#include <sys/wait.h>
+-#include <errno.h>
+-#include <pwd.h>
+-#include <grp.h>
+-#ifdef HAVE_NETGROUP_H
+-#include <netgroup.h>
+-#else
+-#include <netdb.h>
+-#endif
+-#include <string.h>
+-#include <glib/gstdio.h>
+-#include <locale.h>
+-#include <glib/gi18n-lib.h>
+-
+-#include <polkit/polkit.h>
+-#include "polkitbackendjsauthority.h"
+-
+-#include <polkit/polkitprivate.h>
+-
+-#ifdef HAVE_LIBSYSTEMD
+-#include <systemd/sd-login.h>
+-#endif /* HAVE_LIBSYSTEMD */
++#include "polkitbackendcommon.h"
+ 
+ #include <js/CompilationAndEvaluation.h>
+ #include <js/ContextOptions.h>
+@@ -52,6 +30,7 @@
+ #include <js/Array.h>
+ #include <jsapi.h>
+ 
++/* Built source and not too big to worry about deduplication */
+ #include "initjs.h" /* init.js */
+ 
+ #ifdef JSGC_USE_EXACT_ROOTING
+@@ -67,10 +46,9 @@
+  * @short_description: JS Authority
+  * @stability: Unstable
+  *
+- * An implementation of #PolkitBackendAuthority that reads and
+- * evalates Javascript files and supports interaction with
+- * authentication agents (virtue of being based on
+- * #PolkitBackendInteractiveAuthority).
++ * An (SpiderMonkey-based) implementation of #PolkitBackendAuthority that reads
++ * and evaluates Javascript files and supports interaction with authentication
++ * agents (virtue of being based on #PolkitBackendInteractiveAuthority).
+  */
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+@@ -100,57 +78,11 @@ static bool execute_script_with_runaway_killer (PolkitBackendJsAuthority *author
+                                     JS::HandleScript                 script,
+                                     JS::MutableHandleValue           rval);
+ 
+-static void utils_spawn (const gchar *const  *argv,
+-                         guint                timeout_seconds,
+-                         GCancellable        *cancellable,
+-                         GAsyncReadyCallback  callback,
+-                         gpointer             user_data);
+-
+-gboolean utils_spawn_finish (GAsyncResult   *res,
+-                             gint           *out_exit_status,
+-                             gchar         **out_standard_output,
+-                             gchar         **out_standard_error,
+-                             GError        **error);
+-
+-static void on_dir_monitor_changed (GFileMonitor     *monitor,
+-                                    GFile            *file,
+-                                    GFile            *other_file,
+-                                    GFileMonitorEvent event_type,
+-                                    gpointer          user_data);
+-
+-/* ---------------------------------------------------------------------------------------------------- */
+-
+-enum
+-{
+-  PROP_0,
+-  PROP_RULES_DIRS,
+-};
+-
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
+ static gpointer runaway_killer_thread_func (gpointer user_data);
+ static void runaway_killer_terminate (PolkitBackendJsAuthority *authority);
+ 
+-static GList *polkit_backend_js_authority_get_admin_auth_identities (PolkitBackendInteractiveAuthority *authority,
+-                                                                     PolkitSubject                     *caller,
+-                                                                     PolkitSubject                     *subject,
+-                                                                     PolkitIdentity                    *user_for_subject,
+-                                                                     gboolean                           subject_is_local,
+-                                                                     gboolean                           subject_is_active,
+-                                                                     const gchar                       *action_id,
+-                                                                     PolkitDetails                     *details);
+-
+-static PolkitImplicitAuthorization polkit_backend_js_authority_check_authorization_sync (
+-                                                          PolkitBackendInteractiveAuthority *authority,
+-                                                          PolkitSubject                     *caller,
+-                                                          PolkitSubject                     *subject,
+-                                                          PolkitIdentity                    *user_for_subject,
+-                                                          gboolean                           subject_is_local,
+-                                                          gboolean                           subject_is_active,
+-                                                          const gchar                       *action_id,
+-                                                          PolkitDetails                     *details,
+-                                                          PolkitImplicitAuthorization        implicit);
+-
+ G_DEFINE_TYPE (PolkitBackendJsAuthority, polkit_backend_js_authority, POLKIT_BACKEND_TYPE_INTERACTIVE_AUTHORITY);
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+@@ -229,33 +161,6 @@ polkit_backend_js_authority_init (PolkitBackendJsAuthority *authority)
+                                                  PolkitBackendJsAuthorityPrivate);
+ }
+ 
+-static gint
+-rules_file_name_cmp (const gchar *a,
+-                     const gchar *b)
+-{
+-  gint ret;
+-  const gchar *a_base;
+-  const gchar *b_base;
+-
+-  a_base = strrchr (a, '/');
+-  b_base = strrchr (b, '/');
+-
+-  g_assert (a_base != NULL);
+-  g_assert (b_base != NULL);
+-  a_base += 1;
+-  b_base += 1;
+-
+-  ret = g_strcmp0 (a_base, b_base);
+-  if (ret == 0)
+-    {
+-      /* /etc wins over /usr */
+-      ret = g_strcmp0 (a, b);
+-      g_assert (ret != 0);
+-    }
+-
+-  return ret;
+-}
+-
+ /* authority->priv->cx must be within a request */
+ static void
+ load_scripts (PolkitBackendJsAuthority  *authority)
+@@ -299,7 +204,7 @@ load_scripts (PolkitBackendJsAuthority  *authority)
+         }
+     }
+ 
+-  files = g_list_sort (files, (GCompareFunc) rules_file_name_cmp);
++  files = g_list_sort (files, (GCompareFunc) polkit_backend_common_rules_file_name_cmp);
+ 
+   for (l = files; l != NULL; l = l->next)
+     {
+@@ -365,8 +270,8 @@ load_scripts (PolkitBackendJsAuthority  *authority)
+   g_list_free_full (files, g_free);
+ }
+ 
+-static void
+-reload_scripts (PolkitBackendJsAuthority *authority)
++void
++polkit_backend_common_reload_scripts (PolkitBackendJsAuthority *authority)
+ {
+   JS::RootedValueArray<1> args(authority->priv->cx);
+   JS::RootedValue rval(authority->priv->cx);
+@@ -395,42 +300,6 @@ reload_scripts (PolkitBackendJsAuthority *authority)
+   g_signal_emit_by_name (authority, "changed");
+ }
+ 
+-static void
+-on_dir_monitor_changed (GFileMonitor     *monitor,
+-                        GFile            *file,
+-                        GFile            *other_file,
+-                        GFileMonitorEvent event_type,
+-                        gpointer          user_data)
+-{
+-  PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (user_data);
+-
+-  /* TODO: maybe rate-limit so storms of events are collapsed into one with a 500ms resolution?
+-   *       Because when editing a file with emacs we get 4-8 events..
+-   */
+-
+-  if (file != NULL)
+-    {
+-      gchar *name;
+-
+-      name = g_file_get_basename (file);
+-
+-      /* g_print ("event_type=%d file=%p name=%s\n", event_type, file, name); */
+-      if (!g_str_has_prefix (name, ".") &&
+-          !g_str_has_prefix (name, "#") &&
+-          g_str_has_suffix (name, ".rules") &&
+-          (event_type == G_FILE_MONITOR_EVENT_CREATED ||
+-           event_type == G_FILE_MONITOR_EVENT_DELETED ||
+-           event_type == G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT))
+-        {
+-          polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
+-                                        "Reloading rules");
+-          reload_scripts (authority);
+-        }
+-      g_free (name);
+-    }
+-}
+-
+-
+ static void
+ setup_file_monitors (PolkitBackendJsAuthority *authority)
+ {
+@@ -462,7 +331,7 @@ setup_file_monitors (PolkitBackendJsAuthority *authority)
+         {
+           g_signal_connect (monitor,
+                             "changed",
+-                            G_CALLBACK (on_dir_monitor_changed),
++                            G_CALLBACK (polkit_backend_common_on_dir_monitor_changed),
+                             authority);
+           g_ptr_array_add (p, monitor);
+         }
+@@ -471,8 +340,8 @@ setup_file_monitors (PolkitBackendJsAuthority *authority)
+   authority->priv->dir_monitors = (GFileMonitor**) g_ptr_array_free (p, FALSE);
+ }
+ 
+-static void
+-polkit_backend_js_authority_constructed (GObject *object)
++void
++polkit_backend_common_js_authority_constructed (GObject *object)
+ {
+   PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (object);
+ 
+@@ -561,8 +430,8 @@ polkit_backend_js_authority_constructed (GObject *object)
+   g_assert_not_reached ();
+ }
+ 
+-static void
+-polkit_backend_js_authority_finalize (GObject *object)
++void
++polkit_backend_common_js_authority_finalize (GObject *object)
+ {
+   PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (object);
+   guint n;
+@@ -577,7 +446,7 @@ polkit_backend_js_authority_finalize (GObject *object)
+     {
+       GFileMonitor *monitor = authority->priv->dir_monitors[n];
+       g_signal_handlers_disconnect_by_func (monitor,
+-                                            (gpointer*)G_CALLBACK (on_dir_monitor_changed),
++                                            (gpointer*)G_CALLBACK (polkit_backend_common_on_dir_monitor_changed),
+                                             authority);
+       g_object_unref (monitor);
+     }
+@@ -594,11 +463,11 @@ polkit_backend_js_authority_finalize (GObject *object)
+   G_OBJECT_CLASS (polkit_backend_js_authority_parent_class)->finalize (object);
+ }
+ 
+-static void
+-polkit_backend_js_authority_set_property (GObject      *object,
+-                                          guint         property_id,
+-                                          const GValue *value,
+-                                          GParamSpec   *pspec)
++void
++polkit_backend_common_js_authority_set_property (GObject      *object,
++                                                 guint         property_id,
++                                                 const GValue *value,
++                                                 GParamSpec   *pspec)
+ {
+   PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (object);
+ 
+@@ -615,57 +484,12 @@ polkit_backend_js_authority_set_property (GObject      *object,
+     }
+ }
+ 
+-static const gchar *
+-polkit_backend_js_authority_get_name (PolkitBackendAuthority *authority)
+-{
+-  return "js";
+-}
+-
+-static const gchar *
+-polkit_backend_js_authority_get_version (PolkitBackendAuthority *authority)
+-{
+-  return PACKAGE_VERSION;
+-}
+-
+-static PolkitAuthorityFeatures
+-polkit_backend_js_authority_get_features (PolkitBackendAuthority *authority)
+-{
+-  return POLKIT_AUTHORITY_FEATURES_TEMPORARY_AUTHORIZATION;
+-}
+-
+ static void
+ polkit_backend_js_authority_class_init (PolkitBackendJsAuthorityClass *klass)
+ {
+-  GObjectClass *gobject_class;
+-  PolkitBackendAuthorityClass *authority_class;
+-  PolkitBackendInteractiveAuthorityClass *interactive_authority_class;
+-
+-
+-  gobject_class = G_OBJECT_CLASS (klass);
+-  gobject_class->finalize                               = polkit_backend_js_authority_finalize;
+-  gobject_class->set_property                           = polkit_backend_js_authority_set_property;
+-  gobject_class->constructed                            = polkit_backend_js_authority_constructed;
+-
+-  authority_class = POLKIT_BACKEND_AUTHORITY_CLASS (klass);
+-  authority_class->get_name                             = polkit_backend_js_authority_get_name;
+-  authority_class->get_version                          = polkit_backend_js_authority_get_version;
+-  authority_class->get_features                         = polkit_backend_js_authority_get_features;
+-
+-  interactive_authority_class = POLKIT_BACKEND_INTERACTIVE_AUTHORITY_CLASS (klass);
+-  interactive_authority_class->get_admin_identities     = polkit_backend_js_authority_get_admin_auth_identities;
+-  interactive_authority_class->check_authorization_sync = polkit_backend_js_authority_check_authorization_sync;
+-
+-  g_object_class_install_property (gobject_class,
+-                                   PROP_RULES_DIRS,
+-                                   g_param_spec_boxed ("rules-dirs",
+-                                                       NULL,
+-                                                       NULL,
+-                                                       G_TYPE_STRV,
+-                                                       GParamFlags(G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE)));
+-
++  polkit_backend_common_js_authority_class_init_common (klass);
+ 
+   g_type_class_add_private (klass, sizeof (PolkitBackendJsAuthorityPrivate));
+-
+   JS_Init ();
+ }
+ 
+@@ -1099,15 +923,15 @@ call_js_function_with_runaway_killer (PolkitBackendJsAuthority *authority,
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
+-static GList *
+-polkit_backend_js_authority_get_admin_auth_identities (PolkitBackendInteractiveAuthority *_authority,
+-                                                       PolkitSubject                     *caller,
+-                                                       PolkitSubject                     *subject,
+-                                                       PolkitIdentity                    *user_for_subject,
+-                                                       gboolean                           subject_is_local,
+-                                                       gboolean                           subject_is_active,
+-                                                       const gchar                       *action_id,
+-                                                       PolkitDetails                     *details)
++GList *
++polkit_backend_common_js_authority_get_admin_auth_identities (PolkitBackendInteractiveAuthority *_authority,
++                                                              PolkitSubject                     *caller,
++                                                              PolkitSubject                     *subject,
++                                                              PolkitIdentity                    *user_for_subject,
++                                                              gboolean                           subject_is_local,
++                                                              gboolean                           subject_is_active,
++                                                              const gchar                       *action_id,
++                                                              PolkitDetails                     *details)
+ {
+   PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (_authority);
+   GList *ret = NULL;
+@@ -1202,16 +1026,16 @@ polkit_backend_js_authority_get_admin_auth_identities (PolkitBackendInteractiveA
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
+-static PolkitImplicitAuthorization
+-polkit_backend_js_authority_check_authorization_sync (PolkitBackendInteractiveAuthority *_authority,
+-                                                      PolkitSubject                     *caller,
+-                                                      PolkitSubject                     *subject,
+-                                                      PolkitIdentity                    *user_for_subject,
+-                                                      gboolean                           subject_is_local,
+-                                                      gboolean                           subject_is_active,
+-                                                      const gchar                       *action_id,
+-                                                      PolkitDetails                     *details,
+-                                                      PolkitImplicitAuthorization        implicit)
++PolkitImplicitAuthorization
++polkit_backend_common_js_authority_check_authorization_sync (PolkitBackendInteractiveAuthority *_authority,
++                                                             PolkitSubject                     *caller,
++                                                             PolkitSubject                     *subject,
++                                                             PolkitIdentity                    *user_for_subject,
++                                                             gboolean                           subject_is_local,
++                                                             gboolean                           subject_is_active,
++                                                             const gchar                       *action_id,
++                                                             PolkitDetails                     *details,
++                                                             PolkitImplicitAuthorization        implicit)
+ {
+   PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (_authority);
+   PolkitImplicitAuthorization ret = implicit;
+@@ -1324,65 +1148,6 @@ js_polkit_log (JSContext  *cx,
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
+-static const gchar *
+-get_signal_name (gint signal_number)
+-{
+-  switch (signal_number)
+-    {
+-#define _HANDLE_SIG(sig) case sig: return #sig;
+-    _HANDLE_SIG (SIGHUP);
+-    _HANDLE_SIG (SIGINT);
+-    _HANDLE_SIG (SIGQUIT);
+-    _HANDLE_SIG (SIGILL);
+-    _HANDLE_SIG (SIGABRT);
+-    _HANDLE_SIG (SIGFPE);
+-    _HANDLE_SIG (SIGKILL);
+-    _HANDLE_SIG (SIGSEGV);
+-    _HANDLE_SIG (SIGPIPE);
+-    _HANDLE_SIG (SIGALRM);
+-    _HANDLE_SIG (SIGTERM);
+-    _HANDLE_SIG (SIGUSR1);
+-    _HANDLE_SIG (SIGUSR2);
+-    _HANDLE_SIG (SIGCHLD);
+-    _HANDLE_SIG (SIGCONT);
+-    _HANDLE_SIG (SIGSTOP);
+-    _HANDLE_SIG (SIGTSTP);
+-    _HANDLE_SIG (SIGTTIN);
+-    _HANDLE_SIG (SIGTTOU);
+-    _HANDLE_SIG (SIGBUS);
+-#ifdef SIGPOLL
+-    _HANDLE_SIG (SIGPOLL);
+-#endif
+-    _HANDLE_SIG (SIGPROF);
+-    _HANDLE_SIG (SIGSYS);
+-    _HANDLE_SIG (SIGTRAP);
+-    _HANDLE_SIG (SIGURG);
+-    _HANDLE_SIG (SIGVTALRM);
+-    _HANDLE_SIG (SIGXCPU);
+-    _HANDLE_SIG (SIGXFSZ);
+-#undef _HANDLE_SIG
+-    default:
+-      break;
+-    }
+-  return "UNKNOWN_SIGNAL";
+-}
+-
+-typedef struct
+-{
+-  GMainLoop *loop;
+-  GAsyncResult *res;
+-} SpawnData;
+-
+-static void
+-spawn_cb (GObject       *source_object,
+-          GAsyncResult  *res,
+-          gpointer       user_data)
+-{
+-  SpawnData *data = (SpawnData *)user_data;
+-  data->res = (GAsyncResult*)g_object_ref (res);
+-  g_main_loop_quit (data->loop);
+-}
+-
+ static bool
+ js_polkit_spawn (JSContext  *cx,
+                  unsigned    js_argc,
+@@ -1440,21 +1205,21 @@ js_polkit_spawn (JSContext  *cx,
+   g_main_context_push_thread_default (context);
+ 
+   data.loop = loop;
+-  utils_spawn ((const gchar *const *) argv,
+-               10, /* timeout_seconds */
+-               NULL, /* cancellable */
+-               spawn_cb,
+-               &data);
++  polkit_backend_common_spawn ((const gchar *const *) argv,
++                               10, /* timeout_seconds */
++                               NULL, /* cancellable */
++                               polkit_backend_common_spawn_cb,
++                               &data);
+ 
+   g_main_loop_run (loop);
+ 
+   g_main_context_pop_thread_default (context);
+ 
+-  if (!utils_spawn_finish (data.res,
+-                           &exit_status,
+-                           &standard_output,
+-                           &standard_error,
+-                           &error))
++  if (!polkit_backend_common_spawn_finish (data.res,
++                                           &exit_status,
++                                           &standard_output,
++                                           &standard_error,
++                                           &error))
+     {
+       JS_ReportErrorUTF8 (cx,
+                       "Error spawning helper: %s (%s, %d)",
+@@ -1477,7 +1242,7 @@ js_polkit_spawn (JSContext  *cx,
+         {
+           g_string_append_printf (gstr,
+                                   "Helper was signaled with signal %s (%d)",
+-                                  get_signal_name (WTERMSIG (exit_status)),
++                                  polkit_backend_common_get_signal_name (WTERMSIG (exit_status)),
+                                   WTERMSIG (exit_status));
+         }
+       g_string_append_printf (gstr, ", stdout=`%s', stderr=`%s'",
+@@ -1542,381 +1307,5 @@ js_polkit_user_is_in_netgroup (JSContext  *cx,
+   return ret;
+ }
+ 
+-
+-
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
+-typedef struct
+-{
+-  GSimpleAsyncResult *simple; /* borrowed reference */
+-  GMainContext *main_context; /* may be NULL */
+-
+-  GCancellable *cancellable;  /* may be NULL */
+-  gulong cancellable_handler_id;
+-
+-  GPid child_pid;
+-  gint child_stdout_fd;
+-  gint child_stderr_fd;
+-
+-  GIOChannel *child_stdout_channel;
+-  GIOChannel *child_stderr_channel;
+-
+-  GSource *child_watch_source;
+-  GSource *child_stdout_source;
+-  GSource *child_stderr_source;
+-
+-  guint timeout_seconds;
+-  gboolean timed_out;
+-  GSource *timeout_source;
+-
+-  GString *child_stdout;
+-  GString *child_stderr;
+-
+-  gint exit_status;
+-} UtilsSpawnData;
+-
+-static void
+-utils_child_watch_from_release_cb (GPid     pid,
+-                                   gint     status,
+-                                   gpointer user_data)
+-{
+-}
+-
+-static void
+-utils_spawn_data_free (UtilsSpawnData *data)
+-{
+-  if (data->timeout_source != NULL)
+-    {
+-      g_source_destroy (data->timeout_source);
+-      data->timeout_source = NULL;
+-    }
+-
+-  /* Nuke the child, if necessary */
+-  if (data->child_watch_source != NULL)
+-    {
+-      g_source_destroy (data->child_watch_source);
+-      data->child_watch_source = NULL;
+-    }
+-
+-  if (data->child_pid != 0)
+-    {
+-      GSource *source;
+-      kill (data->child_pid, SIGTERM);
+-      /* OK, we need to reap for the child ourselves - we don't want
+-       * to use waitpid() because that might block the calling
+-       * thread (the child might handle SIGTERM and use several
+-       * seconds for cleanup/rollback).
+-       *
+-       * So we use GChildWatch instead.
+-       *
+-       * Avoid taking a references to ourselves. but note that we need
+-       * to pass the GSource so we can nuke it once handled.
+-       */
+-      source = g_child_watch_source_new (data->child_pid);
+-      g_source_set_callback (source,
+-                             (GSourceFunc) utils_child_watch_from_release_cb,
+-                             source,
+-                             (GDestroyNotify) g_source_destroy);
+-      /* attach source to the global default main context */
+-      g_source_attach (source, NULL);
+-      g_source_unref (source);
+-      data->child_pid = 0;
+-    }
+-
+-  if (data->child_stdout != NULL)
+-    {
+-      g_string_free (data->child_stdout, TRUE);
+-      data->child_stdout = NULL;
+-    }
+-
+-  if (data->child_stderr != NULL)
+-    {
+-      g_string_free (data->child_stderr, TRUE);
+-      data->child_stderr = NULL;
+-    }
+-
+-  if (data->child_stdout_channel != NULL)
+-    {
+-      g_io_channel_unref (data->child_stdout_channel);
+-      data->child_stdout_channel = NULL;
+-    }
+-  if (data->child_stderr_channel != NULL)
+-    {
+-      g_io_channel_unref (data->child_stderr_channel);
+-      data->child_stderr_channel = NULL;
+-    }
+-
+-  if (data->child_stdout_source != NULL)
+-    {
+-      g_source_destroy (data->child_stdout_source);
+-      data->child_stdout_source = NULL;
+-    }
+-  if (data->child_stderr_source != NULL)
+-    {
+-      g_source_destroy (data->child_stderr_source);
+-      data->child_stderr_source = NULL;
+-    }
+-
+-  if (data->child_stdout_fd != -1)
+-    {
+-      g_warn_if_fail (close (data->child_stdout_fd) == 0);
+-      data->child_stdout_fd = -1;
+-    }
+-  if (data->child_stderr_fd != -1)
+-    {
+-      g_warn_if_fail (close (data->child_stderr_fd) == 0);
+-      data->child_stderr_fd = -1;
+-    }
+-
+-  if (data->cancellable_handler_id > 0)
+-    {
+-      g_cancellable_disconnect (data->cancellable, data->cancellable_handler_id);
+-      data->cancellable_handler_id = 0;
+-    }
+-
+-  if (data->main_context != NULL)
+-    g_main_context_unref (data->main_context);
+-
+-  if (data->cancellable != NULL)
+-    g_object_unref (data->cancellable);
+-
+-  g_slice_free (UtilsSpawnData, data);
+-}
+-
+-/* called in the thread where @cancellable was cancelled */
+-static void
+-utils_on_cancelled (GCancellable *cancellable,
+-                    gpointer      user_data)
+-{
+-  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
+-  GError *error;
+-
+-  error = NULL;
+-  g_warn_if_fail (g_cancellable_set_error_if_cancelled (cancellable, &error));
+-  g_simple_async_result_take_error (data->simple, error);
+-  g_simple_async_result_complete_in_idle (data->simple);
+-  g_object_unref (data->simple);
+-}
+-
+-static gboolean
+-utils_read_child_stderr (GIOChannel *channel,
+-                         GIOCondition condition,
+-                         gpointer user_data)
+-{
+-  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
+-  gchar buf[1024];
+-  gsize bytes_read;
+-
+-  g_io_channel_read_chars (channel, buf, sizeof buf, &bytes_read, NULL);
+-  g_string_append_len (data->child_stderr, buf, bytes_read);
+-  return TRUE;
+-}
+-
+-static gboolean
+-utils_read_child_stdout (GIOChannel *channel,
+-                         GIOCondition condition,
+-                         gpointer user_data)
+-{
+-  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
+-  gchar buf[1024];
+-  gsize bytes_read;
+-
+-  g_io_channel_read_chars (channel, buf, sizeof buf, &bytes_read, NULL);
+-  g_string_append_len (data->child_stdout, buf, bytes_read);
+-  return TRUE;
+-}
+-
+-static void
+-utils_child_watch_cb (GPid     pid,
+-                      gint     status,
+-                      gpointer user_data)
+-{
+-  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
+-  gchar *buf;
+-  gsize buf_size;
+-
+-  if (g_io_channel_read_to_end (data->child_stdout_channel, &buf, &buf_size, NULL) == G_IO_STATUS_NORMAL)
+-    {
+-      g_string_append_len (data->child_stdout, buf, buf_size);
+-      g_free (buf);
+-    }
+-  if (g_io_channel_read_to_end (data->child_stderr_channel, &buf, &buf_size, NULL) == G_IO_STATUS_NORMAL)
+-    {
+-      g_string_append_len (data->child_stderr, buf, buf_size);
+-      g_free (buf);
+-    }
+-
+-  data->exit_status = status;
+-
+-  /* ok, child watch is history, make sure we don't free it in spawn_data_free() */
+-  data->child_pid = 0;
+-  data->child_watch_source = NULL;
+-
+-  /* we're done */
+-  g_simple_async_result_complete_in_idle (data->simple);
+-  g_object_unref (data->simple);
+-}
+-
+-static gboolean
+-utils_timeout_cb (gpointer user_data)
+-{
+-  UtilsSpawnData *data = (UtilsSpawnData *)user_data;
+-
+-  data->timed_out = TRUE;
+-
+-  /* ok, timeout is history, make sure we don't free it in spawn_data_free() */
+-  data->timeout_source = NULL;
+-
+-  /* we're done */
+-  g_simple_async_result_complete_in_idle (data->simple);
+-  g_object_unref (data->simple);
+-
+-  return FALSE; /* remove source */
+-}
+-
+-static void
+-utils_spawn (const gchar *const  *argv,
+-             guint                timeout_seconds,
+-             GCancellable        *cancellable,
+-             GAsyncReadyCallback  callback,
+-             gpointer             user_data)
+-{
+-  UtilsSpawnData *data;
+-  GError *error;
+-
+-  data = g_slice_new0 (UtilsSpawnData);
+-  data->timeout_seconds = timeout_seconds;
+-  data->simple = g_simple_async_result_new (NULL,
+-                                            callback,
+-                                            user_data,
+-                                            (gpointer*)utils_spawn);
+-  data->main_context = g_main_context_get_thread_default ();
+-  if (data->main_context != NULL)
+-    g_main_context_ref (data->main_context);
+-
+-  data->cancellable = cancellable != NULL ? (GCancellable*)g_object_ref (cancellable) : NULL;
+-
+-  data->child_stdout = g_string_new (NULL);
+-  data->child_stderr = g_string_new (NULL);
+-  data->child_stdout_fd = -1;
+-  data->child_stderr_fd = -1;
+-
+-  /* the life-cycle of UtilsSpawnData is tied to its GSimpleAsyncResult */
+-  g_simple_async_result_set_op_res_gpointer (data->simple, data, (GDestroyNotify) utils_spawn_data_free);
+-
+-  error = NULL;
+-  if (data->cancellable != NULL)
+-    {
+-      /* could already be cancelled */
+-      error = NULL;
+-      if (g_cancellable_set_error_if_cancelled (data->cancellable, &error))
+-        {
+-          g_simple_async_result_take_error (data->simple, error);
+-          g_simple_async_result_complete_in_idle (data->simple);
+-          g_object_unref (data->simple);
+-          goto out;
+-        }
+-
+-      data->cancellable_handler_id = g_cancellable_connect (data->cancellable,
+-                                                            G_CALLBACK (utils_on_cancelled),
+-                                                            data,
+-                                                            NULL);
+-    }
+-
+-  error = NULL;
+-  if (!g_spawn_async_with_pipes (NULL, /* working directory */
+-                                 (gchar **) argv,
+-                                 NULL, /* envp */
+-                                 GSpawnFlags(G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD),
+-                                 NULL, /* child_setup */
+-                                 NULL, /* child_setup's user_data */
+-                                 &(data->child_pid),
+-                                 NULL, /* gint *stdin_fd */
+-                                 &(data->child_stdout_fd),
+-                                 &(data->child_stderr_fd),
+-                                 &error))
+-    {
+-      g_prefix_error (&error, "Error spawning: ");
+-      g_simple_async_result_take_error (data->simple, error);
+-      g_simple_async_result_complete_in_idle (data->simple);
+-      g_object_unref (data->simple);
+-      goto out;
+-    }
+-
+-  if (timeout_seconds > 0)
+-    {
+-      data->timeout_source = g_timeout_source_new_seconds (timeout_seconds);
+-      g_source_set_priority (data->timeout_source, G_PRIORITY_DEFAULT);
+-      g_source_set_callback (data->timeout_source, utils_timeout_cb, data, NULL);
+-      g_source_attach (data->timeout_source, data->main_context);
+-      g_source_unref (data->timeout_source);
+-    }
+-
+-  data->child_watch_source = g_child_watch_source_new (data->child_pid);
+-  g_source_set_callback (data->child_watch_source, (GSourceFunc) utils_child_watch_cb, data, NULL);
+-  g_source_attach (data->child_watch_source, data->main_context);
+-  g_source_unref (data->child_watch_source);
+-
+-  data->child_stdout_channel = g_io_channel_unix_new (data->child_stdout_fd);
+-  g_io_channel_set_flags (data->child_stdout_channel, G_IO_FLAG_NONBLOCK, NULL);
+-  data->child_stdout_source = g_io_create_watch (data->child_stdout_channel, G_IO_IN);
+-  g_source_set_callback (data->child_stdout_source, (GSourceFunc) utils_read_child_stdout, data, NULL);
+-  g_source_attach (data->child_stdout_source, data->main_context);
+-  g_source_unref (data->child_stdout_source);
+-
+-  data->child_stderr_channel = g_io_channel_unix_new (data->child_stderr_fd);
+-  g_io_channel_set_flags (data->child_stderr_channel, G_IO_FLAG_NONBLOCK, NULL);
+-  data->child_stderr_source = g_io_create_watch (data->child_stderr_channel, G_IO_IN);
+-  g_source_set_callback (data->child_stderr_source, (GSourceFunc) utils_read_child_stderr, data, NULL);
+-  g_source_attach (data->child_stderr_source, data->main_context);
+-  g_source_unref (data->child_stderr_source);
+-
+- out:
+-  ;
+-}
+-
+-gboolean
+-utils_spawn_finish (GAsyncResult   *res,
+-                    gint           *out_exit_status,
+-                    gchar         **out_standard_output,
+-                    gchar         **out_standard_error,
+-                    GError        **error)
+-{
+-  GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (res);
+-  UtilsSpawnData *data;
+-  gboolean ret = FALSE;
+-
+-  g_return_val_if_fail (G_IS_ASYNC_RESULT (res), FALSE);
+-  g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+-
+-  g_warn_if_fail (g_simple_async_result_get_source_tag (simple) == utils_spawn);
+-
+-  if (g_simple_async_result_propagate_error (simple, error))
+-    goto out;
+-
+-  data = (UtilsSpawnData*)g_simple_async_result_get_op_res_gpointer (simple);
+-
+-  if (data->timed_out)
+-    {
+-      g_set_error (error,
+-                   G_IO_ERROR,
+-                   G_IO_ERROR_TIMED_OUT,
+-                   "Timed out after %d seconds",
+-                   data->timeout_seconds);
+-      goto out;
+-    }
+-
+-  if (out_exit_status != NULL)
+-    *out_exit_status = data->exit_status;
+-
+-  if (out_standard_output != NULL)
+-    *out_standard_output = g_strdup (data->child_stdout->str);
+-
+-  if (out_standard_error != NULL)
+-    *out_standard_error = g_strdup (data->child_stderr->str);
+-
+-  ret = TRUE;
+-
+- out:
+-  return ret;
+-}
+-- 
+GitLab
+
+
+From 4858128107be9c3ab11828ee8f35c5e26efd36ce Mon Sep 17 00:00:00 2001
+From: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+Date: Tue, 14 Sep 2021 14:38:15 -0700
+Subject: [PATCH 15/16] Gitlab CI: add duktape pkgconfig dependency
+
+Make way for the CI to be able to build with duktape too
+
+Signed-off-by: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+---
+ .gitlab-ci.yml | 1 +
+ 1 file changed, 1 insertion(+)
+
+GitLab
+
+
+From cd5d6da837fce95f8831a355dad88c83347c7337 Mon Sep 17 00:00:00 2001
+From: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+Date: Mon, 20 Sep 2021 17:17:26 -0700
+Subject: [PATCH 16/16] duktape: implement runaway scripts killer timeout
+
+This was missing on Duktape's JS backend proposal, now in. As
+discussed in
+https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/35 and
+verified by the commit author, Duktape has no interrupt injection
+mechanism (it has no thread-safe API entry whatsoever, even). Using
+DUK_USE_EXEC_TIMEOUT_CHECK is also not feasible, because:
+
+  i) It must be enabled at build time and shared object builds of the
+  lib on distros go with the default options, something we cannot
+  change/control
+
+  ii) That does not account for non-ECMAScript explicit execution
+  contexts, like regex execution, native C calls, etc.
+
+It has been agreed, on that thread, that pthread_cond_timedwait()-ing
+and having proper Duktape evaluation/execution calls take place in a
+separate thread, to be killed after the runaway script killer's
+accorded timeout value, a reasonable approach. We have considered
+using glib wrappers for direct pthread usage, but that way would make
+it impossible to issue
+pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, ...) and we want to
+be paranoid in that regard.
+
+On Duktape, we don't get to err from the JS context (to be captured by
+the offending script), but to be forcibly killed on timeout scenarios,
+leading to null returns, thus polkit negation, by definition. It's a
+reasonable design/compromise.
+
+A fatal error handler routine, for the Duktape context, has also been
+added, using the polkit_backend_authority_log() logging infra to
+better assist users on what went wrong.
+
+Finally, the script evaluation routine has been made to use
+duk_peval_lstring() (previously using _noresult variant), so to able
+to present the user with proper error messages, should any occur.
+
+The original runaway script killer test has been adjusted to please
+both JS backends.
+
+Signed-off-by: Gustavo Lima Chaves <gustavo.chaves@microsoft.com>
+---
+ meson.build                                   |   1 +
+ src/polkitbackend/meson.build                 |   1 +
+ src/polkitbackend/polkitbackendcommon.h       |   2 +
+ .../polkitbackendduktapeauthority.c           | 236 ++++++++++++++----
+ .../polkitbackendjsauthority.cpp              |  10 +-
+ .../etc/polkit-1/rules.d/10-testing.rules     |   6 +-
+ .../test-polkitbackendjsauthority.c           |   2 +-
+ 7 files changed, 209 insertions(+), 49 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 4e44723..46956e3 100644
+--- a/meson.build
++++ b/meson.build
+@@ -137,6 +137,7 @@ js_engine = get_option('js_engine')
+ if js_engine == 'duktape'
+   js_dep = dependency('duktape')
+   libm_dep = cc.find_library('m')
++  libpthread_dep = cc.find_library('pthread')
+ elif js_engine == 'mozjs'
+   js_dep = dependency('mozjs-78')
+ endif
+diff --git a/src/polkitbackend/meson.build b/src/polkitbackend/meson.build
+index 9ec01b2..4dfea39 100644
+--- a/src/polkitbackend/meson.build
++++ b/src/polkitbackend/meson.build
+@@ -34,6 +34,7 @@ c_flags = [
+ if js_engine == 'duktape'
+   sources += files('polkitbackendduktapeauthority.c')
+   deps += libm_dep
++  deps += libpthread_dep
+ elif js_engine == 'mozjs'
+   sources += files('polkitbackendjsauthority.cpp')
+ endif
+diff --git a/src/polkitbackend/polkitbackendcommon.h b/src/polkitbackend/polkitbackendcommon.h
+index 6d0d267..dd700fc 100644
+--- a/src/polkitbackend/polkitbackendcommon.h
++++ b/src/polkitbackend/polkitbackendcommon.h
+@@ -50,6 +50,8 @@
+ #include <systemd/sd-login.h>
+ #endif /* HAVE_LIBSYSTEMD */
+ 
++#define RUNAWAY_KILLER_TIMEOUT (15)
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c
+index a2b4420..80f1976 100644
+--- a/src/polkitbackend/polkitbackendduktapeauthority.c
++++ b/src/polkitbackend/polkitbackendduktapeauthority.c
+@@ -47,8 +47,20 @@ struct _PolkitBackendJsAuthorityPrivate
+   GFileMonitor **dir_monitors; /* NULL-terminated array of GFileMonitor instances */
+ 
+   duk_context *cx;
++
++  pthread_t runaway_killer_thread;
++};
++
++enum
++{
++  RUNAWAY_KILLER_THREAD_EXIT_STATUS_UNSET,
++  RUNAWAY_KILLER_THREAD_EXIT_STATUS_SUCCESS,
++  RUNAWAY_KILLER_THREAD_EXIT_STATUS_FAILURE,
+ };
+ 
++static gboolean execute_script_with_runaway_killer(PolkitBackendJsAuthority *authority,
++                                                   const gchar *filename);
++
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
+ G_DEFINE_TYPE (PolkitBackendJsAuthority, polkit_backend_js_authority, POLKIT_BACKEND_TYPE_INTERACTIVE_AUTHORITY);
+@@ -67,6 +79,15 @@ static const duk_function_list_entry js_polkit_functions[] =
+   { NULL, NULL, 0 },
+ };
+ 
++static void report_error (void     *udata,
++                          const char *msg)
++{
++    PolkitBackendJsAuthority *authority = udata;
++    polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
++                                  "fatal Duktape JS backend error: %s",
++                                  (msg ? msg : "no message"));
++}
++
+ static void
+ polkit_backend_js_authority_init (PolkitBackendJsAuthority *authority)
+ {
+@@ -78,7 +99,6 @@ polkit_backend_js_authority_init (PolkitBackendJsAuthority *authority)
+ static void
+ load_scripts (PolkitBackendJsAuthority  *authority)
+ {
+-  duk_context *cx = authority->priv->cx;
+   GList *files = NULL;
+   GList *l;
+   guint num_scripts = 0;
+@@ -123,36 +143,9 @@ load_scripts (PolkitBackendJsAuthority  *authority)
+   for (l = files; l != NULL; l = l->next)
+     {
+       const gchar *filename = (gchar *)l->data;
+-#if (DUK_VERSION >= 20000)
+-      GFile *file = g_file_new_for_path (filename);
+-      char *contents;
+-      gsize len;
+-      if (!g_file_load_contents (file, NULL, &contents, &len, NULL, NULL))
+-        {
+-          polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
+-                                        "Error compiling script %s",
+-                                        filename);
+-          g_object_unref (file);
+-          continue;
+-        }
+ 
+-      g_object_unref (file);
+-      if (duk_peval_lstring_noresult(cx, contents,len) != 0)
+-#else
+-      if (duk_peval_file_noresult (cx, filename) != 0)
+-#endif
+-        {
+-          polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
+-                                        "Error compiling script %s: %s",
+-                                        filename, duk_safe_to_string (authority->priv->cx, -1));
+-#if (DUK_VERSION >= 20000)
+-          g_free (contents);
+-#endif
++      if (!execute_script_with_runaway_killer(authority, filename))
+           continue;
+-        }
+-#if (DUK_VERSION >= 20000)
+-      g_free (contents);
+-#endif
+       num_scripts++;
+     }
+ 
+@@ -232,7 +225,7 @@ polkit_backend_common_js_authority_constructed (GObject *object)
+   PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (object);
+   duk_context *cx;
+ 
+-  cx = duk_create_heap (NULL, NULL, NULL, authority, NULL);
++  cx = duk_create_heap (NULL, NULL, NULL, authority, report_error);
+   if (cx == NULL)
+     goto fail;
+ 
+@@ -243,6 +236,9 @@ polkit_backend_common_js_authority_constructed (GObject *object)
+   duk_put_function_list (cx, -1, js_polkit_functions);
+   duk_put_prop_string (cx, -2, "polkit");
+ 
++  /* load polkit objects/functions into JS context (e.g. addRule(),
++   * _deleteRules(), _runRules() et al)
++   */
+   duk_eval_string (cx, init_js);
+ 
+   if (authority->priv->rules_dirs == NULL)
+@@ -510,6 +506,167 @@ push_action_and_details (duk_context               *cx,
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
++typedef struct {
++  PolkitBackendJsAuthority *authority;
++  const gchar *filename;
++  pthread_cond_t cond;
++  pthread_mutex_t mutex;
++  gint ret;
++} RunawayKillerCtx;
++
++static gpointer
++runaway_killer_thread_execute_js (gpointer user_data)
++{
++  RunawayKillerCtx *ctx = user_data;
++  duk_context *cx = ctx->authority->priv->cx;
++
++  int oldtype;
++
++  pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &oldtype);
++
++#if (DUK_VERSION >= 20000)
++  GFile *file = g_file_new_for_path(ctx->filename);
++  char *contents;
++  gsize len;
++
++  if (!g_file_load_contents(file, NULL, &contents, &len, NULL, NULL)) {
++    polkit_backend_authority_log(POLKIT_BACKEND_AUTHORITY(ctx->authority),
++                                 "Error compiling script %s", ctx->filename);
++    g_object_unref(file);
++    goto err;
++  }
++
++  g_object_unref(file);
++
++  /* evaluate the script, trying to print context in any syntax errors
++     found */
++  if (duk_peval_lstring(cx, contents, len) != 0)
++#else
++  if (duk_peval_file(cx, ctx->filename) != 0)
++#endif
++  {
++    polkit_backend_authority_log(POLKIT_BACKEND_AUTHORITY(ctx->authority),
++                                 "Error compiling script %s: %s", ctx->filename,
++                                 duk_safe_to_string(cx, -1));
++    duk_pop(cx);
++    goto free_err;
++  }
++#if (DUK_VERSION >= 20000)
++  g_free(contents);
++#endif
++
++  ctx->ret = RUNAWAY_KILLER_THREAD_EXIT_STATUS_SUCCESS;
++  goto end;
++
++free_err:
++#if (DUK_VERSION >= 20000)
++  g_free(contents);
++#endif
++err:
++  ctx->ret = RUNAWAY_KILLER_THREAD_EXIT_STATUS_FAILURE;
++end:
++  pthread_cond_signal(&ctx->cond);
++  return NULL;
++}
++
++static gpointer
++runaway_killer_thread_call_js (gpointer user_data)
++{
++  RunawayKillerCtx *ctx = user_data;
++  duk_context *cx = ctx->authority->priv->cx;
++  int oldtype;
++
++  pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &oldtype);
++
++  if (duk_pcall_prop (cx, 0, 2) != DUK_EXEC_SUCCESS)
++    {
++      polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (ctx->authority),
++                                    "Error evaluating admin rules: ",
++                                    duk_safe_to_string (cx, -1));
++      goto err;
++    }
++
++  ctx->ret = RUNAWAY_KILLER_THREAD_EXIT_STATUS_SUCCESS;
++  goto end;
++
++err:
++  ctx->ret = RUNAWAY_KILLER_THREAD_EXIT_STATUS_FAILURE;
++end:
++  pthread_cond_signal(&ctx->cond);
++  return NULL;
++}
++
++/* Blocking for at most for RUNAWAY_KILLER_TIMEOUT */
++static gboolean
++execute_script_with_runaway_killer(PolkitBackendJsAuthority *authority,
++                                   const gchar *filename)
++{
++  gint64 end_time;
++  gboolean cancel = FALSE;
++  RunawayKillerCtx ctx = {.authority = authority, .filename = filename,
++                          .ret = RUNAWAY_KILLER_THREAD_EXIT_STATUS_UNSET,
++                          .mutex = PTHREAD_MUTEX_INITIALIZER,
++                          .cond = PTHREAD_COND_INITIALIZER};
++  struct timespec abs_time;
++
++  pthread_mutex_lock(&ctx.mutex);
++
++  clock_gettime(CLOCK_REALTIME, &abs_time);
++  abs_time.tv_sec += RUNAWAY_KILLER_TIMEOUT;
++
++  pthread_create(&authority->priv->runaway_killer_thread, NULL, runaway_killer_thread_execute_js, &ctx);
++
++  while (ctx.ret == RUNAWAY_KILLER_THREAD_EXIT_STATUS_UNSET) /* loop to treat spurious wakeups */
++    if (pthread_cond_timedwait(&ctx.cond, &ctx.mutex, &abs_time) == ETIMEDOUT) {
++      cancel = TRUE;
++      break;
++    }
++
++  pthread_mutex_unlock(&ctx.mutex);
++
++  if (cancel)
++    pthread_cancel (authority->priv->runaway_killer_thread);
++  pthread_join (authority->priv->runaway_killer_thread, NULL);
++
++  return ctx.ret == RUNAWAY_KILLER_THREAD_EXIT_STATUS_SUCCESS;
++}
++
++/* Calls already stacked function and args. Blocking for at most for
++ * RUNAWAY_KILLER_TIMEOUT
++ */
++static gboolean
++call_js_function_with_runaway_killer(PolkitBackendJsAuthority *authority)
++{
++  gint64 end_time;
++  gboolean cancel = FALSE;
++  RunawayKillerCtx ctx = {.authority = authority,
++                          .ret = RUNAWAY_KILLER_THREAD_EXIT_STATUS_UNSET,
++                          .mutex = PTHREAD_MUTEX_INITIALIZER,
++                          .cond = PTHREAD_COND_INITIALIZER};
++  struct timespec abs_time;
++
++  pthread_mutex_lock(&ctx.mutex);
++
++  clock_gettime(CLOCK_REALTIME, &abs_time);
++  abs_time.tv_sec += RUNAWAY_KILLER_TIMEOUT;
++
++  pthread_create(&authority->priv->runaway_killer_thread, NULL, runaway_killer_thread_call_js, &ctx);
++
++  while (ctx.ret == RUNAWAY_KILLER_THREAD_EXIT_STATUS_UNSET) /* loop to treat spurious wakeups */
++    if (pthread_cond_timedwait(&ctx.cond, &ctx.mutex, &abs_time) == ETIMEDOUT) {
++      cancel = TRUE;
++      break;
++    }
++
++  pthread_mutex_unlock(&ctx.mutex);
++
++  if (cancel)
++    pthread_cancel (authority->priv->runaway_killer_thread);
++  pthread_join (authority->priv->runaway_killer_thread, NULL);
++
++  return ctx.ret == RUNAWAY_KILLER_THREAD_EXIT_STATUS_SUCCESS;
++}
++
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
+ GList *
+@@ -557,13 +714,8 @@ polkit_backend_common_js_authority_get_admin_auth_identities (PolkitBackendInter
+       goto out;
+     }
+ 
+-  if (duk_pcall_prop (cx, 0, 2) != DUK_ERR_NONE)
+-    {
+-      polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
+-                                    "Error evaluating admin rules: ",
+-                                    duk_safe_to_string (cx, -1));
+-      goto out;
+-    }
++  if (!call_js_function_with_runaway_killer (authority))
++    goto out;
+ 
+   ret_str = duk_require_string (cx, -1);
+ 
+@@ -643,15 +795,11 @@ polkit_backend_common_js_authority_check_authorization_sync (PolkitBackendIntera
+       goto out;
+     }
+ 
+-  if (duk_pcall_prop (cx, 0, 2) != DUK_ERR_NONE)
+-  {
+-      polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
+-                                    "Error evaluating authorization rules: ",
+-                                    duk_safe_to_string (cx, -1));
+-      goto out;
+-  }
++  if (!call_js_function_with_runaway_killer (authority))
++    goto out;
+ 
+   if (duk_is_null(cx, -1)) {
++    /* this fine, means there was no match, use implicit authorizations */
+     good = TRUE;
+     goto out;
+   }
+diff --git a/src/polkitbackend/polkitbackendjsauthority.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp
+index e28091d..11e91c0 100644
+--- a/src/polkitbackend/polkitbackendjsauthority.cpp
++++ b/src/polkitbackend/polkitbackendjsauthority.cpp
+@@ -829,11 +829,14 @@ runaway_killer_setup (PolkitBackendJsAuthority *authority)
+ {
+   g_assert (authority->priv->rkt_source == NULL);
+ 
+-  /* set-up timer for runaway scripts, will be executed in runaway_killer_thread */
++  /* set-up timer for runaway scripts, will be executed in
++     runaway_killer_thread, that is one, permanent thread running a glib
++     mainloop (rkt_loop) whose context (rkt_context) has a timeout source
++     (rkt_source) */
+   g_mutex_lock (&authority->priv->rkt_timeout_pending_mutex);
+   authority->priv->rkt_timeout_pending = FALSE;
+   g_mutex_unlock (&authority->priv->rkt_timeout_pending_mutex);
+-  authority->priv->rkt_source = g_timeout_source_new_seconds (15);
++  authority->priv->rkt_source = g_timeout_source_new_seconds (RUNAWAY_KILLER_TIMEOUT);
+   g_source_set_callback (authority->priv->rkt_source, rkt_on_timeout, authority, NULL);
+   g_source_attach (authority->priv->rkt_source, authority->priv->rkt_context);
+ 
+@@ -893,6 +896,9 @@ execute_script_with_runaway_killer (PolkitBackendJsAuthority *authority,
+ {
+   bool ret;
+ 
++  // tries to JS_ExecuteScript(), may hang for > RUNAWAY_KILLER_TIMEOUT,
++  // runaway_killer_thread makes sure the call returns, due to exception
++  // injection
+   runaway_killer_setup (authority);
+   ret = JS_ExecuteScript (authority->priv->cx,
+                           script,
+diff --git a/test/data/etc/polkit-1/rules.d/10-testing.rules b/test/data/etc/polkit-1/rules.d/10-testing.rules
+index 98bf062..e346b5d 100644
+--- a/test/data/etc/polkit-1/rules.d/10-testing.rules
++++ b/test/data/etc/polkit-1/rules.d/10-testing.rules
+@@ -189,8 +189,10 @@ polkit.addRule(function(action, subject) {
+                 ;
+         } catch (error) {
+             if (error == "Terminating runaway script")
+-                return polkit.Result.YES;
+-            return polkit.Result.NO;
++                // Inverted logic to accomodate Duktape's model as well, which
++                // will always fail with negation, on timeouts
++                return polkit.Result.NO;
++            return polkit.Result.YES;
+         }
+     }
+ });
+diff --git a/test/polkitbackend/test-polkitbackendjsauthority.c b/test/polkitbackend/test-polkitbackendjsauthority.c
+index f97e0e0..2103b17 100644
+--- a/test/polkitbackend/test-polkitbackendjsauthority.c
++++ b/test/polkitbackend/test-polkitbackendjsauthority.c
+@@ -328,7 +328,7 @@ static const RulesTestCase rules_test_cases[] = {
+     "net.company.run_away_script",
+     "unix-user:root",
+     NULL,
+-    POLKIT_IMPLICIT_AUTHORIZATION_AUTHORIZED,
++    POLKIT_IMPLICIT_AUTHORIZATION_NOT_AUTHORIZED,
+   },
+ 
+   {
+-- 
+GitLab
+
diff --git a/gnu/packages/patches/ppsspp-disable-upgrade-and-gold.patch b/gnu/packages/patches/ppsspp-disable-upgrade-and-gold.patch
index 155ba35efd..3a5ae1a2cd 100644
--- a/gnu/packages/patches/ppsspp-disable-upgrade-and-gold.patch
+++ b/gnu/packages/patches/ppsspp-disable-upgrade-and-gold.patch
@@ -1,9 +1,9 @@
 From 942730ce7148cd54a30d4a606ce71a2654c8a2e0 Mon Sep 17 00:00:00 2001
-From: Leo Prikler <leo.prikler@student.tugraz.at>
+From: Liliana Marie Prikler <liliana.prikler@gmail.com>
 Date: Sat, 5 Jun 2021 22:47:00 -0400
 Subject: [PATCH] ppsspp: Remove upgrade code and gold support.
 
-Original patch from Leo Prikler.
+Original patch from Liliana Marie Prikler.
 Rebased on master (commit 69fa20744958aef8da9ca052ba7675fdc1636e46) by
 Maxim Cournoyer.
 ---
diff --git a/gnu/packages/patches/purescript-relax-dependencies.patch b/gnu/packages/patches/purescript-relax-dependencies.patch
deleted file mode 100644
index 6ab4716fc4..0000000000
--- a/gnu/packages/patches/purescript-relax-dependencies.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Allow the purescript dependencies to better match the available packages in
-Guix.
-
---- purescript-0.13.8/purescript.cabal
-+++ purescript-0.13.8/purescript.cabal.orig
-@@ -1091 +1091 @@ library
--        Glob ==0.9.*,
-+        Glob ==0.10.*,
-@@ -1095 +1095 @@ library
--        ansi-terminal >=0.7.1 && <0.9,
-+        ansi-terminal ==0.9.*,
-@@ -1105 +1105 @@ library
--        clock <0.8,
-+        clock ==0.8.*,
-@@ -1173 +1173 @@ executable purs
--        Glob ==0.9.*,
-+        Glob ==0.10.*,
-@@ -1177 +1177 @@ executable purs
--        ansi-terminal >=0.7.1 && <0.9,
-+        ansi-terminal ==0.9.*,
-@@ -1188 +1188 @@ executable purs
--        clock <0.8,
-+        clock ==0.8.*,
-@@ -1209 +1209 @@ executable purs
--        network >=3.0.1.1 && <3.1,
-+        network >=2.8 && <3.1,
-@@ -1288 +1288 @@ test-suite tests
--        Glob ==0.9.*,
-+        Glob ==0.10.*,
-@@ -1293 +1293 @@ test-suite tests
--        ansi-terminal >=0.7.1 && <0.9,
-+        ansi-terminal ==0.9.*,
-@@ -1303 +1303 @@ test-suite tests
--        clock <0.8,
-+        clock ==0.8.*,
-@@ -1315,2 +1315,2 @@ test-suite tests
--        hspec <2.7,
--        hspec-discover <2.7,
-+        hspec ==2.7.*,
-+        hspec-discover ==2.7.*,
diff --git a/gnu/packages/patches/python-magic-python-bytecode.patch b/gnu/packages/patches/python-magic-python-bytecode.patch
new file mode 100644
index 0000000000..997fb4ee5a
--- /dev/null
+++ b/gnu/packages/patches/python-magic-python-bytecode.patch
@@ -0,0 +1,19 @@
+File 5.41 changed the MIME type of Python bytecode; adjust accordingly.
+
+Taken from upstream:
+
+  https://github.com/ahupp/python-magic/commit/0ae7e7ceac0e80e03adc75c858bb378c0427331a
+
+diff --git a/test/test.py b/test/test.py
+index 0c4621c..e443b84 100755
+--- a/test/test.py
++++ b/test/test.py
+@@ -90,7 +90,7 @@ def test_mime_types(self):
+         try:
+             m = magic.Magic(mime=True)
+             self.assert_values(m, {
+-                'magic._pyc_': ('application/octet-stream', 'text/x-bytecode.python'),
++                'magic._pyc_': ('application/octet-stream', 'text/x-bytecode.python', 'application/x-bytecode.python'),
+                 'test.pdf': 'application/pdf',
+                 'test.gz': ('application/gzip', 'application/x-gzip'),
+                 'test.snappy.parquet': 'application/octet-stream',
diff --git a/gnu/packages/patches/python-peachpy-determinism.patch b/gnu/packages/patches/python-peachpy-determinism.patch
new file mode 100644
index 0000000000..f326a4b6b0
--- /dev/null
+++ b/gnu/packages/patches/python-peachpy-determinism.patch
@@ -0,0 +1,25 @@
+Make PeachPy processes deterministic:
+
+  https://github.com/Maratyszcza/PeachPy/issues/88
+  https://issues.guix.gnu.org/50672
+
+diff --git a/peachpy/name.py b/peachpy/name.py
+index b6a03dc..412079d 100644
+--- a/peachpy/name.py
++++ b/peachpy/name.py
+@@ -86,13 +86,13 @@ def add_scoped_name(self, scoped_name):
+                 self.names[scope_name.name] = scope
+         else:
+             assert scope_name.name is None
+-            self.prenames.setdefault(scope_name.prename, set())
++            self.prenames.setdefault(scope_name.prename, {})
+             if subscoped_name:
+                 for subscope in iter(self.prenames[scope_name.prename]):
+                     if isinstance(subscope, Namespace) and subscope.scope_name is scope_name:
+                         subscope.add_scoped_name(subscoped_name)
+                         return
+-            self.prenames[scope_name.prename].add(scope)
++            self.prenames[scope_name.prename][scope] = None
+ 
+     def assign_names(self):
+         # Step 1: assign names to symbols with prenames with no conflicts
diff --git a/gnu/packages/patches/python-poppler-qt5-fix-build.patch b/gnu/packages/patches/python-poppler-qt5-fix-build.patch
new file mode 100644
index 0000000000..099bb86d2f
--- /dev/null
+++ b/gnu/packages/patches/python-poppler-qt5-fix-build.patch
@@ -0,0 +1,116 @@
+Patch taken from the upstream repository
+https://github.com/frescobaldi/python-poppler-qt5/issues/43
+
+From 92e5962ec3751ab051d0b655fd61afc7a1cf709e Mon Sep 17 00:00:00 2001
+From: Ben Greiner <code@bnavigator.de>
+Date: Thu, 4 Mar 2021 17:02:51 +0100
+Subject: [PATCH] map type QVector< QPair<TYPE, TYPE> > for
+ FormFieldChoice::choicesWithExportValues() (#45)
+
+---
+ types.sip | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 93 insertions(+)
+
+diff --git a/types.sip b/types.sip
+index 239b8c9..81cb283 100644
+--- a/types.sip
++++ b/types.sip
+@@ -331,5 +331,98 @@ template <TYPE>
+ };
+ 
+ 
++/**
++ * Convert QVector< QPair<TYPE, TYPE> >
++ * from and to a Python list of a 2-item tuple
++ */
++
++template<TYPE>
++%MappedType QVector< QPair<TYPE, TYPE> >
++{
++%TypeHeaderCode
++#include <qvector.h>
++#include <qpair.h>
++%End
++
++%ConvertFromTypeCode
++  // Create the list.
++  PyObject *l;
++
++  if ((l = PyList_New(sipCpp->size())) == NULL)
++      return NULL;
++
++  // Set the list elements.
++  for (int i = 0; i < sipCpp->size(); ++i)
++  {
++    QPair<TYPE, TYPE>* p = new QPair<TYPE, TYPE>(sipCpp->at(i));
++    PyObject *ptuple = PyTuple_New(2);
++    PyObject *pfirst;
++    PyObject *psecond;
++
++    TYPE *sfirst = new TYPE(p->first);
++    if ((pfirst = sipConvertFromType(sfirst, sipType_TYPE, sipTransferObj)) == NULL)
++    {
++      Py_DECREF(l);
++      Py_DECREF(ptuple);
++      return NULL;
++    }
++    PyTuple_SET_ITEM(ptuple, 0, pfirst);
++
++    TYPE *ssecond = new TYPE(p->second);
++    if ((psecond = sipConvertFromType(ssecond, sipType_TYPE, sipTransferObj)) == NULL)
++    {
++      Py_DECREF(l);
++      Py_DECREF(ptuple);
++      Py_DECREF(pfirst);
++      return NULL;
++    }
++    PyTuple_SET_ITEM(ptuple, 1, psecond);
++
++    PyList_SET_ITEM(l, i, ptuple);
++  }
++
++  return l;
++%End
++
++%ConvertToTypeCode
++  const sipTypeDef* qpair_type = sipFindType("QPair<TYPE, TYPE>");
++
++  // Check the type if that is all that is required.
++  if (sipIsErr == NULL)
++  {
++    if (!PySequence_Check(sipPy))
++      return 0;
++
++    for (int i = 0; i < PySequence_Size(sipPy); ++i)
++      if (!sipCanConvertToType(PySequence_ITEM(sipPy, i), qpair_type, SIP_NOT_NONE))
++        return 0;
++
++    return 1;
++  }
++
++
++  QVector< QPair<TYPE, TYPE> > *qv = new QVector< QPair<TYPE, TYPE> >;
++
++  for (int i = 0; i < PySequence_Size(sipPy); ++i)
++  {
++    int state;
++    QPair<TYPE, TYPE> * p = reinterpret_cast< QPair<TYPE, TYPE> * >(sipConvertToType(PySequence_ITEM(sipPy, i), qpair_type, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
++
++    if (*sipIsErr)
++    {
++      sipReleaseType(p, qpair_type, state);
++      delete qv;
++      return 0;
++    }
++    qv->append(*p);
++    sipReleaseType(p, qpair_type, state);
++  }
++
++  *sipCppPtr = qv;
++  return sipGetState(sipTransferObj);
++%End
++
++};
++
+ 
+ /* kate: indent-width 4; space-indent on; hl c++; indent-mode cstyle; */
diff --git a/gnu/packages/patches/python-pyflakes-test-location.patch b/gnu/packages/patches/python-pyflakes-test-location.patch
new file mode 100644
index 0000000000..ea2c50c82e
--- /dev/null
+++ b/gnu/packages/patches/python-pyflakes-test-location.patch
@@ -0,0 +1,42 @@
+This patch fixes test failure related to reported source code locations.
+It is a backport of this patch:
+
+  commit 6a5f38b5ab12260fde8a0463acd433bc2d34dbcf
+  Author: Louis Sautier <sautier.louis@gmail.com>
+  Date:   Sat Oct 3 02:37:53 2020 +0200
+
+      Fix tests with Python 3.9, closes #549 (#586)
+
+      Stop allowing failures on Python nightly.
+
+diff --git a/pyflakes/test/test_api.py b/pyflakes/test/test_api.py
+index 128aa69..b728e65 100644
+--- a/pyflakes/test/test_api.py
++++ b/pyflakes/test/test_api.py
+@@ -515,6 +515,8 @@ def foo(bar=baz, bax):
+             if ERROR_HAS_LAST_LINE:
+                 if PYPY and sys.version_info >= (3,):
+                     column = 7
++                elif sys.version_info >= (3, 9):
++                    column = 21
+                 elif sys.version_info >= (3, 8):
+                     column = 9
+                 else:
+@@ -543,6 +545,8 @@ foo(bar=baz, bax)
+             if ERROR_HAS_LAST_LINE:
+                 if PYPY and sys.version_info >= (3,):
+                     column = 12
++                elif sys.version_info >= (3, 9):
++                    column = 17
+                 elif sys.version_info >= (3, 8):
+                     column = 14
+                 else:
+@@ -577,6 +581,8 @@ foo(bar=baz, bax)
+                 position_end = 1
+                 if PYPY:
+                     column = 6
++                elif ver >= (3, 9):
++                    column = 13
+                 else:
+                     column = 7
+                     # Column has been "fixed" since 3.2.4 and 3.3.1
diff --git a/gnu/packages/patches/python-pytorch-system-libraries.patch b/gnu/packages/patches/python-pytorch-system-libraries.patch
index c8d14b3f56..ae872cfd84 100644
--- a/gnu/packages/patches/python-pytorch-system-libraries.patch
+++ b/gnu/packages/patches/python-pytorch-system-libraries.patch
@@ -1,37 +1,11 @@
 Use our own googletest rather than the bundled one.
 Get NNPACK to use our own PeachPy rather than the bundled one.
 
-diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
-index 5d57b9ca78..620cca4e60 100644
---- a/cmake/Dependencies.cmake
-+++ b/cmake/Dependencies.cmake
-@@ -644,11 +644,6 @@ if(BUILD_TEST OR BUILD_MOBILE_BENCHMARK OR BUILD_MOBILE_TEST)
-   # this shouldn't be necessary anymore.
-   get_property(INC_DIR_temp DIRECTORY PROPERTY INCLUDE_DIRECTORIES)
-   set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES "")
--  add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest)
--  set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES ${INC_DIR_temp})
--
--  include_directories(BEFORE SYSTEM ${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest/googletest/include)
--  include_directories(BEFORE SYSTEM ${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest/googlemock/include)
- 
-   # We will not need to test benchmark lib itself.
-   set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Disable benchmark testing as we don't need it.")
-@@ -1485,7 +1480,7 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
-     endif()
-     set_property(TARGET onnx_proto PROPERTY IMPORTED_LOCATION ${ONNX_PROTO_LIBRARY})
-     message("-- Found onnx: ${ONNX_LIBRARY} ${ONNX_PROTO_LIBRARY}")
--    list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx)
-+    list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx onnx_optimizer)
-   endif()
-   include_directories(${FOXI_INCLUDE_DIRS})
-   list(APPEND Caffe2_DEPENDENCY_LIBS foxi_loader)
-
 diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
-index 50ebb224ce..5953d9ddf7 100644
+index 26210cb5..18b6df27 100644
 --- a/caffe2/CMakeLists.txt
 +++ b/caffe2/CMakeLists.txt
-@@ -1632,7 +1632,7 @@ if(BUILD_TEST)
+@@ -1723,7 +1723,7 @@ if(BUILD_TEST)
          if(NOT MSVC)
            add_executable(${test_name}_${CPU_CAPABILITY} "${test_src}" ../aten/src/ATen/native/quantized/affine_quantizer_base.cpp)
            # TODO: Get rid of c10 dependency (which is only needed for the implementation of AT_ERROR)
@@ -40,16 +14,16 @@ index 50ebb224ce..5953d9ddf7 100644
            if(USE_FBGEMM)
              target_link_libraries(${test_name}_${CPU_CAPABILITY} fbgemm)
            endif()
-@@ -1655,7 +1655,7 @@ if(BUILD_TEST)
+@@ -1746,7 +1746,7 @@ if(BUILD_TEST)
    foreach(test_src ${Caffe2_CPU_TEST_SRCS})
      get_filename_component(test_name ${test_src} NAME_WE)
      add_executable(${test_name} "${test_src}")
 -    target_link_libraries(${test_name} torch_library gtest_main)
 +    target_link_libraries(${test_name} torch_library gtest_main gtest)
-     target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
-     target_include_directories(${test_name} PRIVATE $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
-     target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE})
-@@ -1673,7 +1673,7 @@ if(BUILD_TEST)
+     if(USE_OPENMP)
+       # -fopenmp is a compile time flag and as result not guaranteed
+       # to link executable against OpenMP runtime library
+@@ -1769,7 +1769,7 @@ if(BUILD_TEST)
      foreach(test_src ${Caffe2_GPU_TEST_SRCS})
        get_filename_component(test_name ${test_src} NAME_WE)
        cuda_add_executable(${test_name} "${test_src}")
@@ -58,7 +32,7 @@ index 50ebb224ce..5953d9ddf7 100644
        target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
        target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE})
        add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
-@@ -1691,7 +1691,7 @@ if(BUILD_TEST)
+@@ -1787,7 +1787,7 @@ if(BUILD_TEST)
      foreach(test_src ${Caffe2_VULKAN_TEST_SRCS})
        get_filename_component(test_name ${test_src} NAME_WE)
        add_executable(${test_name} "${test_src}")
@@ -67,7 +41,7 @@ index 50ebb224ce..5953d9ddf7 100644
        target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
        target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE})
        add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
-@@ -1709,7 +1709,7 @@ if(BUILD_TEST)
+@@ -1805,7 +1805,7 @@ if(BUILD_TEST)
      foreach(test_src ${Caffe2_HIP_TEST_SRCS})
        get_filename_component(test_name ${test_src} NAME_WE)
        add_executable(${test_name} "${test_src}")
@@ -76,56 +50,108 @@ index 50ebb224ce..5953d9ddf7 100644
        target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
        target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE} ${Caffe2_HIP_INCLUDE})
        target_compile_options(${test_name} PRIVATE ${HIP_CXX_FLAGS})
-
-diff --git a/torch/lib/c10d/test/CMakeLists.txt b/torch/lib/c10d/test/CMakeLists.txt
-index b74d4b65f7..fc7c207505 100644
---- a/torch/lib/c10d/test/CMakeLists.txt
-+++ b/torch/lib/c10d/test/CMakeLists.txt
-@@ -16,25 +16,25 @@ function(c10d_add_test test_src)
+diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
+index ca560288..c0696e53 100644
+--- a/cmake/Dependencies.cmake
++++ b/cmake/Dependencies.cmake
+@@ -684,11 +684,6 @@ if(BUILD_TEST OR BUILD_MOBILE_BENCHMARK OR BUILD_MOBILE_TEST)
+   # this shouldn't be necessary anymore.
+   get_property(INC_DIR_temp DIRECTORY PROPERTY INCLUDE_DIRECTORIES)
+   set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES "")
+-  add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest)
+-  set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES ${INC_DIR_temp})
+-
+-  include_directories(BEFORE SYSTEM ${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest/googletest/include)
+-  include_directories(BEFORE SYSTEM ${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest/googlemock/include)
+ 
+   # We will not need to test benchmark lib itself.
+   set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Disable benchmark testing as we don't need it.")
+@@ -1537,7 +1532,7 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
+     endif()
+     set_property(TARGET onnx_proto PROPERTY IMPORTED_LOCATION ${ONNX_PROTO_LIBRARY})
+     message("-- Found onnx: ${ONNX_LIBRARY} ${ONNX_PROTO_LIBRARY}")
+-    list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx)
++    list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx onnx_optimizer)
+   endif()
+   include_directories(${FOXI_INCLUDE_DIRS})
+   list(APPEND Caffe2_DEPENDENCY_LIBS foxi_loader)
+diff --git a/cmake/External/nnpack.cmake b/cmake/External/nnpack.cmake
+index a41343cb..6075bdd0 100644
+--- a/cmake/External/nnpack.cmake
++++ b/cmake/External/nnpack.cmake
+@@ -40,7 +40,7 @@ endif()
+ # (3) Android, iOS, Linux, macOS - supported
+ ##############################################################################
+ 
+-if(ANDROID OR IOS OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
++if(FALSE)
+   message(STATUS "Brace yourself, we are building NNPACK")
+   set(CAFFE2_THIRD_PARTY_ROOT ${PROJECT_SOURCE_DIR}/third_party)
+ 
+@@ -114,6 +114,5 @@ endif()
+ # (4) Catch-all: not supported.
+ ##############################################################################
+ 
+-message(WARNING "Unknown platform - I don't know how to build NNPACK. "
+-                "See cmake/External/nnpack.cmake for details.")
+-set(USE_NNPACK OFF)
++set(NNPACK_FOUND TRUE)
++set(USE_NNPACK ON)
+diff --git a/test/cpp/c10d/CMakeLists.txt b/test/cpp/c10d/CMakeLists.txt
+index 2e48773a..a70506ce 100644
+--- a/test/cpp/c10d/CMakeLists.txt
++++ b/test/cpp/c10d/CMakeLists.txt
+@@ -17,14 +17,14 @@ function(c10d_add_test test_src)
    add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
  endfunction()
  
--c10d_add_test(FileStoreTest.cpp c10d gtest_main)
--c10d_add_test(TCPStoreTest.cpp c10d gtest_main)
-+c10d_add_test(FileStoreTest.cpp c10d gtest_main gtest)
-+c10d_add_test(TCPStoreTest.cpp c10d gtest_main gtest)
- if(NOT WIN32)
--  c10d_add_test(HashStoreTest.cpp c10d gtest_main)
-+  c10d_add_test(HashStoreTest.cpp c10d gtest_main gtest)
+-c10d_add_test(FileStoreTest.cpp torch_cpu gtest_main)
+-c10d_add_test(TCPStoreTest.cpp torch_cpu gtest_main)
++c10d_add_test(FileStoreTest.cpp torch_cpu gtest_main gtest)
++c10d_add_test(TCPStoreTest.cpp torch_cpu gtest_main gtest)
+ if(INSTALL_TEST)
+   install(TARGETS FileStoreTest DESTINATION bin)
+   install(TARGETS TCPStoreTest DESTINATION bin)
  endif()
+ if(NOT WIN32)
+-  c10d_add_test(HashStoreTest.cpp torch_cpu gtest_main)
++  c10d_add_test(HashStoreTest.cpp torch_cpu gtest_main gtest)
+   if(INSTALL_TEST)
+     install(TARGETS HashStoreTest DESTINATION bin)
+   endif()
+@@ -32,11 +32,11 @@ endif()
  
  if(USE_CUDA)
-   if(USE_C10D_GLOO)
--    c10d_add_test(ProcessGroupGlooTest.cpp c10d c10d_cuda_test gtest_main)
--    c10d_add_test(ProcessGroupGlooAsyncTest.cpp c10d c10d_cuda_test gtest_main)
-+    c10d_add_test(ProcessGroupGlooTest.cpp c10d c10d_cuda_test gtest_main gtest)
-+    c10d_add_test(ProcessGroupGlooAsyncTest.cpp c10d c10d_cuda_test gtest_main gtest)
+   if(USE_GLOO AND USE_C10D_GLOO)
+-    c10d_add_test(ProcessGroupGlooTest.cpp torch_cpu c10d_cuda_test gtest_main)
++    c10d_add_test(ProcessGroupGlooTest.cpp torch_cpu c10d_cuda_test gtest_main gtest)
+     if(INSTALL_TEST)
+       install(TARGETS ProcessGroupGlooTest DESTINATION bin)
+     endif()
+-    c10d_add_test(ProcessGroupGlooAsyncTest.cpp torch_cpu c10d_cuda_test gtest_main)
++    c10d_add_test(ProcessGroupGlooAsyncTest.cpp torch_cpu c10d_cuda_test gtest_main gtest)
    endif()
-   if(USE_C10D_NCCL)
--    c10d_add_test(ProcessGroupNCCLTest.cpp c10d c10d_cuda_test gtest_main)
-+    c10d_add_test(ProcessGroupNCCLTest.cpp c10d c10d_cuda_test gtest_main gtest)
-     c10d_add_test(ProcessGroupNCCLErrorsTest.cpp c10d c10d_cuda_test
--        gtest_main)
-+        gtest_main gtest)
+   if(USE_NCCL AND USE_C10D_NCCL)
+     # NCCL is a private dependency of libtorch, but the tests include some
+@@ -57,7 +57,7 @@ if(USE_CUDA)
    endif()
  else()
-   if(USE_C10D_GLOO)
--    c10d_add_test(ProcessGroupGlooTest.cpp c10d gtest_main)
-+    c10d_add_test(ProcessGroupGlooTest.cpp c10d gtest_main gtest)
+   if(USE_GLOO AND USE_C10D_GLOO)
+-    c10d_add_test(ProcessGroupGlooTest.cpp torch_cpu gtest_main)
++    c10d_add_test(ProcessGroupGlooTest.cpp torch_cpu gtest_main gtest)
    endif()
  endif()
  
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 5ecd2df..24feae3 100644
---- a/third_party/NNPACK/CMakeLists.txt
-+++ b/third_party/NNPACK/CMakeLists.txt
-@@ -427,8 +427,7 @@ IF(NNPACK_BACKEND STREQUAL "x86-64")
-       FILE(MAKE_DIRECTORY ${obj_dir})
-       ADD_CUSTOM_COMMAND(
-         OUTPUT ${obj}
--        COMMAND "PYTHONPATH=${PEACHPY_PYTHONPATH}"
--          ${PYTHON_EXECUTABLE} -m peachpy.x86_64
-+        COMMAND ${PYTHON_EXECUTABLE} -m peachpy.x86_64
-             -mabi=sysv -g4 -mimage-format=${PEACHPY_IMAGE_FORMAT}
-             "-I${PROJECT_SOURCE_DIR}/src" "-I${PROJECT_SOURCE_DIR}/src/x86_64-fma" "-I${FP16_SOURCE_DIR}/include"
-             -o ${obj} "${PROJECT_SOURCE_DIR}/${src}"
+diff --git a/test/cpp/tensorexpr/CMakeLists.txt b/test/cpp/tensorexpr/CMakeLists.txt
+index 213e99bd..ecaae840 100644
+--- a/test/cpp/tensorexpr/CMakeLists.txt
++++ b/test/cpp/tensorexpr/CMakeLists.txt
+@@ -46,7 +46,7 @@ target_include_directories(tutorial_tensorexpr PRIVATE ${ATen_CPU_INCLUDE})
+ # pthreadpool header. For some build environment we need add the dependency
+ # explicitly.
+ if(USE_PTHREADPOOL)
+-  target_link_libraries(test_tensorexpr PRIVATE pthreadpool_interface)
++  target_link_libraries(test_tensorexpr PRIVATE pthreadpool)
+ endif()
+ if(USE_CUDA)
+   target_link_libraries(test_tensorexpr PRIVATE
diff --git a/gnu/packages/patches/python-versioneer-guix-support.patch b/gnu/packages/patches/python-versioneer-guix-support.patch
new file mode 100644
index 0000000000..336020bc5e
--- /dev/null
+++ b/gnu/packages/patches/python-versioneer-guix-support.patch
@@ -0,0 +1,35 @@
+Versioneer does not work in the Guix build container because:
+
+* VCS information is unavailable
+* the build directory does not have the supported "$name-$version" format
+* as of 0.21, versioneer has no way to override the discovered values
+
+This patch adds support for extracting version from the
+'/tmp/guix-build-foo-0.1.drv-0' style directories created by the daemon.
+
+diff --git a/src/from_parentdir.py b/src/from_parentdir.py
+index 69ada9a..e0fac8f 100644
+--- a/src/from_parentdir.py
++++ b/src/from_parentdir.py
+@@ -15,6 +15,21 @@ def versions_from_parentdir(parentdir_prefix, root, verbose):
+             return {"version": dirname[len(parentdir_prefix):],
+                     "full-revisionid": None,
+                     "dirty": False, "error": None, "date": None}
++        # Guix specific patch: try extracting the version from the build
++        # directory.
++        elif dirname.startswith("guix-build-"):
++            delimiter = dirname.rindex(".drv-")
++            name_and_version = dirname[11:delimiter]
++            if name_and_version.startswith(parentdir_prefix):
++                guix_version = name_and_version[len(parentdir_prefix):]
++            elif name_and_version.startswith("python-{}".format(parentdir_prefix)):
++                guix_version = name_and_version[(7 + len(parentdir_prefix)):]
++            else:
++                break
++            return {"version": guix_version,
++                    "full-revisionid": None,
++                    "dirty": False, "error": None, "date": None}
++
+         rootdirs.append(root)
+         root = os.path.dirname(root)  # up a level
+ 
diff --git a/gnu/packages/patches/python-werkzeug-tests.patch b/gnu/packages/patches/python-werkzeug-tests.patch
new file mode 100644
index 0000000000..4eca53f30c
--- /dev/null
+++ b/gnu/packages/patches/python-werkzeug-tests.patch
@@ -0,0 +1,58 @@
+Do not leave open files behind as this triggers 'ResourceWarning' and leads
+these tests to fail.
+
+--- Werkzeug-1.0.1/tests/test_datastructures.py	2020-03-31 19:48:06.000000000 +0200
++++ Werkzeug-1.0.1/tests/test_datastructures.py	2021-11-21 18:19:11.304369878 +0100
+@@ -1238,9 +1238,10 @@
+     def test_save_to_pathlib_dst(self, tmp_path):
+         src = tmp_path / "src.txt"
+         src.write_text(u"test")
+-        storage = self.storage_class(src.open("rb"))
+-        dst = tmp_path / "dst.txt"
+-        storage.save(dst)
++        with src.open("rb") as input:
++            storage = self.storage_class(input)
++            dst = tmp_path / "dst.txt"
++            storage.save(dst)
+         assert dst.read_text() == "test"
+ 
+     def test_save_to_bytes_io(self):
+@@ -1251,11 +1252,12 @@
+ 
+     def test_save_to_file(self, tmp_path):
+         path = tmp_path / "file.data"
+-        storage = self.storage_class(io.BytesIO(b"one\ntwo"))
+-        with path.open("wb") as dst:
+-            storage.save(dst)
+-        with path.open("rb") as src:
+-            assert src.read() == b"one\ntwo"
++        with io.BytesIO(b"one\ntwo") as input:
++            storage = self.storage_class(input)
++            with path.open("wb") as dst:
++                storage.save(dst)
++            with path.open("rb") as src:
++                assert src.read() == b"one\ntwo"
+ 
+ 
+ @pytest.mark.parametrize("ranges", ([(0, 1), (-5, None)], [(5, None)]))
+--- Werkzeug-1.0.1/tests/test_formparser.py	2020-03-31 19:48:06.000000000 +0200
++++ Werkzeug-1.0.1/tests/test_formparser.py	2021-11-21 22:11:43.654622751 +0100
+@@ -27,7 +27,7 @@
+ from werkzeug.test import create_environ
+ from werkzeug.wrappers import Request
+ from werkzeug.wrappers import Response
+-
++import warnings
+ 
+ @Request.application
+ def form_data_consumer(request):
+@@ -242,6 +244,9 @@
+ 
+ class TestMultiPart(object):
+     def test_basic(self):
++        # Ignore leaked file descriptor of unknown origin.
++        warnings.filterwarnings(action="ignore", message="unclosed", category=ResourceWarning)
++
+         resources = join(dirname(__file__), "multipart")
+         client = Client(form_data_consumer, Response)
+ 
diff --git a/gnu/packages/patches/qemu-fix-agent-paths.patch b/gnu/packages/patches/qemu-fix-agent-paths.patch
new file mode 100644
index 0000000000..bae62fadbf
--- /dev/null
+++ b/gnu/packages/patches/qemu-fix-agent-paths.patch
@@ -0,0 +1,66 @@
+Allow a QEMU host to set the time and shutdown Guix guests.  Styled
+after the patch from the Nix package:
+
+https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch
+
+diff --git a/qga/commands-posix.c b/qga/commands-posix.c
+index 75dbaab..b416b03 100644
+--- a/qga/commands-posix.c
++++ b/qga/commands-posix.c
+@@ -84,6 +84,7 @@ static void ga_wait_child(pid_t pid, int *status, Error **errp)
+ void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp)
+ {
+     const char *shutdown_flag;
++    const char *command;
+     Error *local_err = NULL;
+     pid_t pid;
+     int status;
+@@ -91,10 +92,13 @@ void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp)
+     slog("guest-shutdown called, mode: %s", mode);
+     if (!has_mode || strcmp(mode, "powerdown") == 0) {
+         shutdown_flag = "-P";
++        command = "shutdown";
+     } else if (strcmp(mode, "halt") == 0) {
+         shutdown_flag = "-H";
++        command = "halt";
+     } else if (strcmp(mode, "reboot") == 0) {
+         shutdown_flag = "-r";
++        command = "reboot";
+     } else {
+         error_setg(errp,
+                    "mode is invalid (valid values are: halt|powerdown|reboot");
+@@ -109,6 +113,11 @@ void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp)
+         reopen_fd_to_null(1);
+         reopen_fd_to_null(2);
+ 
++        /* try Guix’s shutdown/halt/reboot first */
++        char *path = g_strdup_printf("/run/current-system/profile/sbin/%s", command);
++        execle(path, command, (char *)NULL, environ);
++        g_free(path);
++
+         execle("/sbin/shutdown", "shutdown", "-h", shutdown_flag, "+0",
+                "hypervisor initiated shutdown", (char *)NULL, environ);
+         _exit(EXIT_FAILURE);
+@@ -158,10 +167,12 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp)
+     Error *local_err = NULL;
+     struct timeval tv;
+     static const char hwclock_path[] = "/sbin/hwclock";
++    static const char hwclock_path_guix[] = "/run/current-system/profile/sbin/hwclock";
+     static int hwclock_available = -1;
+ 
+     if (hwclock_available < 0) {
+-        hwclock_available = (access(hwclock_path, X_OK) == 0);
++        hwclock_available = (access(hwclock_path_guix, X_OK) == 0) ||
++                            (access(hwclock_path, X_OK) == 0);
+     }
+ 
+     if (!hwclock_available) {
+@@ -207,6 +218,8 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp)
+ 
+         /* Use '/sbin/hwclock -w' to set RTC from the system time,
+          * or '/sbin/hwclock -s' to set the system time from RTC. */
++        execle(hwclock_path_guix, "hwclock", has_time ? "-w" : "-s",
++               NULL, environ);
+         execle(hwclock_path, "hwclock", has_time ? "-w" : "-s",
+                NULL, environ);
+         _exit(EXIT_FAILURE);
diff --git a/gnu/packages/patches/qemu-meson-compat.patch b/gnu/packages/patches/qemu-meson-compat.patch
deleted file mode 100644
index e6968c57dc..0000000000
--- a/gnu/packages/patches/qemu-meson-compat.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Fix a build failure that occurs with newer versions of Meson when
-gdbus-codegen is unavailable.
-
-Taken from upstream:
-https://gitlab.com/qemu-project/qemu/-/commit/5ecfb76ccc056eb6127e44268e475827ae73b9e0
-
-diff --git a/configure b/configure
---- a/configure
-+++ b/configure
-@@ -3341,7 +3341,7 @@ if ! test "$gio" = "no"; then
-         gio_cflags=$($pkg_config --cflags gio-2.0)
-         gio_libs=$($pkg_config --libs gio-2.0)
-         gdbus_codegen=$($pkg_config --variable=gdbus_codegen gio-2.0)
--        if [ ! -x "$gdbus_codegen" ]; then
-+        if ! has "$gdbus_codegen"; then
-             gdbus_codegen=
-         fi
-         # Check that the libraries actually work -- Ubuntu 18.04 ships
-@@ -5704,6 +5704,8 @@ if test "$gio" = "yes" ; then
-     echo "CONFIG_GIO=y" >> $config_host_mak
-     echo "GIO_CFLAGS=$gio_cflags" >> $config_host_mak
-     echo "GIO_LIBS=$gio_libs" >> $config_host_mak
-+fi
-+if test "$gdbus_codegen" != "" ; then
-     echo "GDBUS_CODEGEN=$gdbus_codegen" >> $config_host_mak
- fi
- echo "CONFIG_TLS_PRIORITY=\"$tls_priority\"" >> $config_host_mak
diff --git a/gnu/packages/patches/qemu-sphinx-compat.patch b/gnu/packages/patches/qemu-sphinx-compat.patch
deleted file mode 100644
index 7342ebee4e..0000000000
--- a/gnu/packages/patches/qemu-sphinx-compat.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Prevent Sphinx 4 and later from creating subdirectories, which
-the build scripts are not equipped to deal with.
-
-Taken from upstream:
-https://gitlab.com/qemu-project/qemu/-/issues/256
-https://gitlab.com/qemu-project/qemu/-/commit/269a7e97865cb863c9ca19e5f2e6a40ac9eddf82
-
-diff --git a/docs/conf.py b/docs/conf.py
---- a/docs/conf.py
-+++ b/docs/conf.py
-@@ -279,6 +279,7 @@
-      ['Stefan Hajnoczi <stefanha@redhat.com>',
-       'Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>'], 1),
- ]
-+man_make_section_directory = False
- 
- # -- Options for Texinfo output -------------------------------------------
- 
diff --git a/gnu/packages/patches/racket-minimal-backport-1629887.patch b/gnu/packages/patches/racket-minimal-backport-1629887.patch
deleted file mode 100644
index aa060ef5aa..0000000000
--- a/gnu/packages/patches/racket-minimal-backport-1629887.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From fb1a6ab205fd63a46669a463931af473e2ac0c87 Mon Sep 17 00:00:00 2001
-From: Matthew Flatt <mflatt@racket-lang.org>
-Date: Sat, 21 Aug 2021 15:29:59 -0600
-Subject: [PATCH] setup/variant: recognize starter executables
-
-Related to #3969
-
-(cherry picked from commit 1629887071fe3cc8fe8af0a7aa0d3912509cb058)
----
- racket/collects/setup/variant.rkt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/racket/collects/setup/variant.rkt b/racket/collects/setup/variant.rkt
-index 81da6f5701..b23131e481 100644
---- a/racket/collects/setup/variant.rkt
-+++ b/racket/collects/setup/variant.rkt
-@@ -25,7 +25,7 @@
-         (and (file-exists? f)
-              (with-input-from-file f
-                (lambda ()
--                 (define m (regexp-match #rx#"bINARy tYPe:..(.)"
-+                 (define m (regexp-match #rx#"bINARy tYPe:e?..(.)"
-                                          (current-input-port)))
-                  (cond
-                    [(not m) '3m]
--- 
-2.30.2
-
diff --git a/gnu/packages/patches/range-v3-build-with-gcc10.patch b/gnu/packages/patches/range-v3-build-with-gcc10.patch
new file mode 100644
index 0000000000..a5d5b33523
--- /dev/null
+++ b/gnu/packages/patches/range-v3-build-with-gcc10.patch
@@ -0,0 +1,122 @@
+From 0487cca29e352e8f16bbd91fda38e76e39a0ed28 Mon Sep 17 00:00:00 2001
+From: Louis Dionne <ldionne.2@gmail.com>
+Date: Tue, 15 Jun 2021 14:40:01 -0400
+Subject: [PATCH] Work around broken integration with latest libc++. (#1635)
+
+* Work around broken integration with latest libc++.
+
+In newer versions of libc++, the base template of std::iterator_traits
+provides a member typedef called __primary_template which is an alias
+to the std::iterator_traits specialization itself. This fix works with
+both the old version of libc++ and the new one.
+
+Fixes issue #1633.
+
+* Fix is_std_iterator_traits_specialized_v on MSVC
+
+It used to pretend that std::iterator_traits<T*> is a user-defined
+specialization, which isn't the case. This is due to MSVC's
+iterator_traits<T*> specialization not posing as the base template.
+---
+ include/std/detail/associated_types.hpp | 22 +++++++++++-----
+ test/CMakeLists.txt                     |  1 +
+ test/bug1633.cpp                        | 34 +++++++++++++++++++++++++
+ 3 files changed, 51 insertions(+), 6 deletions(-)
+ create mode 100644 test/bug1633.cpp
+
+diff --git a/include/std/detail/associated_types.hpp b/include/std/detail/associated_types.hpp
+index b642166d4..449a3f91c 100644
+--- a/include/std/detail/associated_types.hpp
++++ b/include/std/detail/associated_types.hpp
+@@ -265,11 +265,22 @@ namespace ranges
+         template<typename I>
+         char is_std_iterator_traits_specialized_impl_(void *);
+ #elif defined(_LIBCPP_VERSION)
+-        template<typename I, bool B>
+-        char (
+-            &is_std_iterator_traits_specialized_impl_(std::__iterator_traits<I, B> *))[2];
++        // In older versions of libc++, the base template inherits from std::__iterator_traits<typename, bool>.
++        template<template<typename, bool> class IteratorTraitsBase, typename I, bool B>
++        char (&libcpp_iterator_traits_base_impl(IteratorTraitsBase<I, B> *))[2];
++        template<template<typename, bool> class IteratorTraitsBase, typename I>
++        char libcpp_iterator_traits_base_impl(void *);
++
++        // In newer versions, the base template has only one template parameter and provides the
++        // __primary_template typedef which aliases the iterator_traits specialization.
++        template<template<typename> class, typename I>
++        char (&libcpp_iterator_traits_base_impl(typename std::iterator_traits<I>::__primary_template *))[2];
++        template<template<typename> class, typename I>
++        char libcpp_iterator_traits_base_impl(void *);
++
+         template<typename I>
+-        char is_std_iterator_traits_specialized_impl_(void *);
++        auto is_std_iterator_traits_specialized_impl_(std::iterator_traits<I>* traits)
++            -> decltype(libcpp_iterator_traits_base_impl<std::__iterator_traits, I>(traits));
+ #elif defined(_MSVC_STL_VERSION)
+         template<typename I>
+         char (&is_std_iterator_traits_specialized_impl_(
+@@ -287,14 +298,13 @@ namespace ranges
+         RANGES_INLINE_VAR constexpr bool is_std_iterator_traits_specialized_v =
+             1 == sizeof(is_std_iterator_traits_specialized_impl_<I>(
+                      static_cast<std::iterator_traits<I> *>(nullptr)));
+-
++#endif
+         // The standard iterator_traits<T *> specialization(s) do not count
+         // as user-specialized. This will no longer be necessary in C++20.
+         // This helps with `T volatile*` and `void *`.
+         template<typename T>
+         RANGES_INLINE_VAR constexpr bool is_std_iterator_traits_specialized_v<T *> =
+             false;
+-#endif
+     } // namespace detail
+     /// \endcond
+ } // namespace ranges
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index 889f314af..2c2b7c09c 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -19,3 +19,4 @@ rv3_add_test(test.bug474 bug474 bug474.cpp)
+ rv3_add_test(test.bug566 bug566 bug566.cpp)
+ rv3_add_test(test.bug1322 bug1322 bug1322.cpp)
+ rv3_add_test(test.bug1335 bug1335 bug1335.cpp)
++rv3_add_test(test.bug1633 bug1633 bug1633.cpp)
+diff --git a/test/bug1633.cpp b/test/bug1633.cpp
+new file mode 100644
+index 000000000..be52420ad
+--- /dev/null
++++ b/test/bug1633.cpp
+@@ -0,0 +1,34 @@
++// Range v3 library
++//
++//  Use, modification and distribution is subject to the
++//  Boost Software License, Version 1.0. (See accompanying
++//  file LICENSE_1_0.txt or copy at
++//  http://www.boost.org/LICENSE_1_0.txt)
++//
++// Project home: https://github.com/ericniebler/range-v3
++
++#include <cstddef>
++#include <iterator>
++#include <range/v3/iterator.hpp>
++
++struct X { };
++
++namespace std {
++    template<> struct iterator_traits<X> { };
++}
++
++struct Y {
++    using difference_type = std::ptrdiff_t;
++    using value_type = int;
++    using pointer = int*;
++    using reference = int&;
++    using iterator_category = std::forward_iterator_tag;
++};
++
++static_assert(ranges::detail::is_std_iterator_traits_specialized_v<X>, "");
++static_assert(!ranges::detail::is_std_iterator_traits_specialized_v<Y>, "");
++static_assert(!ranges::detail::is_std_iterator_traits_specialized_v<int*>, "");
++
++int main()
++{
++}
diff --git a/gnu/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch b/gnu/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch
index 30515cbe48..ffa75918b8 100644
--- a/gnu/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch
+++ b/gnu/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch
@@ -1,32 +1,36 @@
-From f308dc91660954ab88bb41868c0b9809592923e6 Mon Sep 17 00:00:00 2001
+From 4c02c080475c9d08dbed98dd64ecca337aa359ae Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@member.fsf.org>
 Date: Sat, 20 Feb 2021 20:37:39 +0800
 Subject: [PATCH] Allow set libretro_directory via environment variable
 
 ---
- retroarch.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
+ retroarch.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
 
 diff --git a/retroarch.c b/retroarch.c
-index 6a88c3108e..6807c12b5b 100644
+index 8a0461c816..cbf11d8b6a 100644
 --- a/retroarch.c
 +++ b/retroarch.c
-@@ -36038,6 +36038,15 @@ static void retroarch_parse_input_and_config(
- #endif
-       config_load(&p_rarch->g_extern);
- 
+@@ -17603,7 +17603,18 @@ static bool retroarch_parse_input_and_config(
+             p_rarch->configuration_settings->bools.log_to_file,
+             p_rarch->configuration_settings->bools.log_to_file_timestamp,
+             p_rarch->configuration_settings->paths.log_dir);
+-            
++
 +   /* Override settings via environment variables */
-+   if (getenv("LIBRETRO_DIRECTORY")) {
++   {
 +      settings_t *settings = p_rarch->configuration_settings;
-+      retroarch_override_setting_set(RARCH_OVERRIDE_SETTING_LIBRETRO_DIRECTORY, NULL);
-+      configuration_set_string(settings,
-+            settings->paths.directory_libretro,
-+            getenv("LIBRETRO_DIRECTORY"));
++      char *value = getenv("LIBRETRO_DIRECTORY");
++      if (value != NULL)
++      {
++         retroarch_override_setting_set(RARCH_OVERRIDE_SETTING_LIBRETRO_DIRECTORY, NULL);
++         configuration_set_string(settings, settings->paths.directory_libretro, value);
++      }
 +   }
 +
     /* Second pass: All other arguments override the config file */
     optind = 1;
  
 -- 
-2.30.0
+2.33.0
 
diff --git a/gnu/packages/patches/rust-adblock-ignore-live-tests.patch b/gnu/packages/patches/rust-adblock-ignore-live-tests.patch
new file mode 100644
index 0000000000..fc7f2858ff
--- /dev/null
+++ b/gnu/packages/patches/rust-adblock-ignore-live-tests.patch
@@ -0,0 +1,69 @@
+From b83b5b453d3f7883ef4c12f84a7045486957c709 Mon Sep 17 00:00:00 2001
+From: Petr Hodina <phodina@protonmail.com>
+Date: Tue, 9 Nov 2021 17:02:54 +0100
+Subject: [PATCH] Ignore live tests.
+
+
+diff --git a/tests/live.rs b/tests/live.rs
+index b1a19fc..6bd4685 100644
+--- a/tests/live.rs
++++ b/tests/live.rs
+@@ -140,6 +140,7 @@ fn get_blocker_engine_deserialized_ios() -> Engine {
+ }
+
+ #[test]
++#[ignore]
+ fn check_live_specific_urls() {
+     let mut engine = get_blocker_engine();
+     {
+@@ -176,6 +177,7 @@ fn check_live_specific_urls() {
+ }
+
+ #[test]
++#[ignore]
+ fn check_live_deserialized_specific_urls() {
+     let mut engine = get_blocker_engine_deserialized();
+     {
+@@ -201,6 +203,7 @@ fn check_live_deserialized_specific_urls() {
+ }
+
+ #[test]
++#[ignore]
+ fn check_live_from_filterlists() {
+     let engine = get_blocker_engine();
+     let requests = load_requests();
+@@ -214,6 +217,7 @@ fn check_live_from_filterlists() {
+ }
+
+ #[test]
++#[ignore]
+ fn check_live_deserialized_file() {
+     let engine = get_blocker_engine_deserialized();
+     let requests = load_requests();
+@@ -243,6 +247,7 @@ fn check_live_deserialized_ios() {
+
+ #[cfg(feature = "resource_assembler")]
+ #[test]
++#[ignore]
+ fn check_live_redirects() {
+     use adblock::resources::resource_assembler::assemble_web_accessible_resources;
+
+@@ -278,6 +283,7 @@ fn check_live_redirects() {
+ }
+
+ #[test]
++#[ignore]
+ /// Ensure that two different engines loaded from the same textual filter set serialize to
+ /// identical buffers.
+ fn stable_serialization() {
+@@ -291,6 +297,7 @@ fn stable_serialization() {
+ }
+
+ #[test]
++#[ignore]
+ /// Ensure that one engine's serialization result can be exactly reproduced by another engine after
+ /// deserializing from it.
+ fn stable_serialization_through_load() {
+--
+2.33.1
+
diff --git a/gnu/packages/patches/rust-openssl-sys-no-vendor.patch b/gnu/packages/patches/rust-openssl-sys-no-vendor.patch
index 78a6b5e3f7..9855faf8b2 100644
--- a/gnu/packages/patches/rust-openssl-sys-no-vendor.patch
+++ b/gnu/packages/patches/rust-openssl-sys-no-vendor.patch
@@ -2,6 +2,8 @@ https://sources.debian.org/data/main/r/rust-openssl-sys/0.9.53-1/debian/patches/
 "MIT" licensed according to debian/copyright file
 slightly modified to only change the vendored openssl-src dependency
 
+Starting from rust-openssl-sys@0.9.69 Cargo.toml starts searching for openssl-3.0.
+
 --- a/Cargo.toml
 +++ b/Cargo.toml
 @@ -31,14 +31,11 @@
diff --git a/gnu/packages/patches/rust-reproducible-builds.patch b/gnu/packages/patches/rust-reproducible-builds.patch
deleted file mode 100644
index ef7bf53b5d..0000000000
--- a/gnu/packages/patches/rust-reproducible-builds.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From b9ca108fcae2b738ca3f0c88c84ae5dc5a6f843f Mon Sep 17 00:00:00 2001
-From: Tim Ryan <id@timryan.org>
-Date: Mon, 14 May 2018 06:22:21 -0400
-Subject: [PATCH] Support reproducible builds by forcing window.search to use
- stable key ordering. (#692)
-See <https://github.com/rust-lang-nursery/mdBook/pull/692>
----
- src/vendor/mdbook/src/renderer/html_handlebars/search.rs | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/vendor/mdbook/src/renderer/html_handlebars/search.rs b/src/vendor/mdbook/src/renderer/html_handlebars/search.rs
-index d49772f8b..1ee66a511 100644
---- a/src/vendor/mdbook/src/renderer/html_handlebars/search.rs
-+++ b/src/vendor/mdbook/src/renderer/html_handlebars/search.rs
-@@ -205,6 +205,10 @@ fn write_to_js(index: Index, search_config: &Search) -> Result<String> {
-         searchoptions,
-         index,
-     };
-+
-+    // By converting to serde_json::Value as an intermediary, we use a
-+    // BTreeMap internally and can force a stable ordering of map keys.
-+    let json_contents = serde_json::to_value(&json_contents)?;
-     let json_contents = serde_json::to_string(&json_contents)?;
- 
-     Ok(format!("window.search = {};", json_contents))
diff --git a/gnu/packages/patches/rust-shell2batch-lint-fix.patch b/gnu/packages/patches/rust-shell2batch-lint-fix.patch
new file mode 100644
index 0000000000..7c160b6cca
--- /dev/null
+++ b/gnu/packages/patches/rust-shell2batch-lint-fix.patch
@@ -0,0 +1,25 @@
+Resolves the following error that was most likely introduced in new version of
+rust as this package is from 2019:
+
+error: unnecessary parentheses around type
+   --> src/converter.rs:108:61
+    |
+108 | fn add_arguments(arguments: &str, additional_arguments: Vec<(String)>, pre: bool) -> String {
+    |                                                             ^^^^^^^^ help: remove these parentheses
+
+Reported upstream at https://github.com/sagiegurari/shell2batch/issues/17.
+
+diff --git a/src/converter.rs b/src/converter.rs
+index fc87d68..af309d2 100644
+--- a/src/converter.rs
++++ b/src/converter.rs
+@@ -105,7 +105,7 @@ fn replace_vars(arguments: &str) -> String {
+     updated_arguments
+ }
+ 
+-fn add_arguments(arguments: &str, additional_arguments: Vec<(String)>, pre: bool) -> String {
++fn add_arguments(arguments: &str, additional_arguments: Vec<String>, pre: bool) -> String {
+     let mut windows_arguments = if pre {
+         "".to_string()
+     } else {
+
diff --git a/gnu/packages/patches/rust-wl-clipboard-rs-newer-wl.patch b/gnu/packages/patches/rust-wl-clipboard-rs-newer-wl.patch
new file mode 100644
index 0000000000..9fb692e9a6
--- /dev/null
+++ b/gnu/packages/patches/rust-wl-clipboard-rs-newer-wl.patch
@@ -0,0 +1,26 @@
+diff --git a/Cargo.toml b/Cargo.toml
+index 7b975e0..313cb63 100644
+--- a/Cargo.toml
++++ b/Cargo.toml.new
+@@ -75,17 +75,17 @@ version = "3"
+ version = "0.2"
+ 
+ [dependencies.wayland-client]
+-version = "0.27"
++version = "0.28"
+ 
+ [dependencies.wayland-protocols]
+-version = "0.27"
++version = "0.28"
+ features = ["client", "unstable_protocols"]
+ [dev-dependencies.wayland-protocols]
+-version = "0.27"
++version = "0.28"
+ features = ["server", "unstable_protocols"]
+ 
+ [dev-dependencies.wayland-server]
+-version = "0.27"
++version = "0.28"
+ 
+ [features]
+ dlopen = ["native_lib", "wayland-client/dlopen", "wayland-server/dlopen"]
diff --git a/gnu/packages/patches/rustc-1.39.0-src.patch b/gnu/packages/patches/rustc-1.39.0-src.patch
new file mode 100644
index 0000000000..7859bd44d5
--- /dev/null
+++ b/gnu/packages/patches/rustc-1.39.0-src.patch
@@ -0,0 +1,99 @@
+# This modified patch is to disable the hunk applying to LLVM, unbundled in Guix.
+
+# Add mrustc slice length intrinsics
+--- src/libcore/intrinsics.rs
++++ src/libcore/intrinsics.rs
+@@ -685,4 +685,8 @@
+     pub fn min_align_of_val<T: ?Sized>(_: &T) -> usize;
+ 
++    /// Obtain the length of a slice pointer
++    #[cfg(rust_compiler="mrustc")]
++    pub fn mrustc_slice_len<T>(pointer: *const [T]) -> usize;
++
+     /// Gets a static string slice containing the name of a type.
+     pub fn type_name<T: ?Sized>() -> &'static str;
+
+--- src/libcore/slice/mod.rs
++++ src/libcore/slice/mod.rs
+@@ -68,5 +68,8 @@
+     pub const fn len(&self) -> usize {
+-        unsafe {
+-            crate::ptr::Repr { rust: self }.raw.len
+-        }
++        #[cfg(not(rust_compiler="mrustc"))]
++        #[cfg_attr(not(bootstrap), allow_internal_unstable(const_fn_union))]
++        const fn len_inner<T>(s: &[T]) -> usize { unsafe { crate::ptr::Repr { rust: s }.raw.len } };
++        #[cfg(rust_compiler="mrustc")]
++        const fn len_inner<T>(s: &[T]) -> usize { unsafe { crate::intrinsics::mrustc_slice_len(s) } }
++        len_inner(self)
+     }
+#
+# Static-link rustc_codegen_llvm so the generated rustc is standalone
+# > Note: Interacts with `rustc-1.39.0-overrides.toml`
+#
+--- src/librustc_interface/util.rs
++++ src/librustc_interface/util.rs
+@@ -421,2 +421,4 @@
+ pub fn get_codegen_sysroot(backend_name: &str) -> fn() -> Box<dyn CodegenBackend> {
++    #[cfg(rust_compiler="mrustc")]
++    { if(backend_name == "llvm") { extern "Rust" { fn __rustc_codegen_backend() -> Box<dyn CodegenBackend>; } return || unsafe { __rustc_codegen_backend() } } }
+     // For now we only allow this function to be called once as it'll dlopen a
+# Disable most architecture intrinsics
+--- src/stdarch/crates/std_detect/src/detect/mod.rs
++++ src/stdarch/crates/std_detect/src/detect/mod.rs
+@@ -74,4 +74,7 @@
+         // this run-time detection logic is never called.
+         #[path = "os/other.rs"]
+         mod os;
++    } else if #[cfg(rust_compiler="mrustc")] {
++        #[path = "os/other.rs"]
++        mod os;
+     } else if #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] {
+--- vendor/ppv-lite86/src/lib.rs
++++ vendor/ppv-lite86/src/lib.rs
+@@ -12,10 +12,10 @@
+-#[cfg(all(feature = "simd", target_arch = "x86_64", not(miri)))]
++#[cfg(all(feature = "simd", target_arch = "x86_64", not(miri), not(rust_compiler="mrustc")))]
+ pub mod x86_64;
+-#[cfg(all(feature = "simd", target_arch = "x86_64", not(miri)))]
++#[cfg(all(feature = "simd", target_arch = "x86_64", not(miri), not(rust_compiler="mrustc")))]
+ use self::x86_64 as arch;
+
+-#[cfg(any(miri, not(all(feature = "simd", any(target_arch = "x86_64")))))]
++#[cfg(any(miri, rust_compiler="mrustc", not(all(feature = "simd", any(target_arch = "x86_64")))))]
+ pub mod generic;
+-#[cfg(any(miri, not(all(feature = "simd", any(target_arch = "x86_64")))))]
++#[cfg(any(miri, rust_compiler="mrustc", not(all(feature = "simd", any(target_arch = "x86_64")))))]
+ use self::generic as arch;
+
+# diff --git a/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h b/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h
+# index da9d9d5bfdc0..3d47471f0ef0 100644
+# --- src/llvm-project/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h
+# +++ src/llvm-project/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h
+# @@ -16,6 +16,8 @@
+#  #include "llvm/Demangle/DemangleConfig.h"
+#  #include "llvm/Demangle/StringView.h"
+#  #include <array>
+# +#include <cstdint>
+# +#include <string>
+
+#  namespace llvm {
+#  namespace itanium_demangle {
+##
+## gcc (used by mrustc) has 16-byte uint128_t alignment, while rustc uses 8
+##
+#--- src/libsyntax/ast.rs
+#+++ src/libsyntax/ast.rs
+#@@ -986,2 +986,2 @@
+#-#[cfg(target_arch = "x86_64")]
+#-static_assert_size!(Expr, 96);
+#+//#[cfg(target_arch = "x86_64")]
+#+//static_assert_size!(Expr, 96);
+#--- src/librustc/ty/sty.rs
+#+++ src/librustc/ty/sty.rs
+#@@ -2258,2 +2258,2 @@
+#-#[cfg(target_arch = "x86_64")]
+#-static_assert_size!(Const<'_>, 40);
+#+//#[cfg(target_arch = "x86_64")]
+#+//static_assert_size!(Const<'_>, 40);
+
diff --git a/gnu/packages/patches/sbcl-aserve-add-HTML-5-elements.patch b/gnu/packages/patches/sbcl-aserve-add-HTML-5-elements.patch
new file mode 100644
index 0000000000..93962e10ec
--- /dev/null
+++ b/gnu/packages/patches/sbcl-aserve-add-HTML-5-elements.patch
@@ -0,0 +1,63 @@
+From 940679fb75073a59186099e3dd7fb381e727db6b Mon Sep 17 00:00:00 2001
+From: Kevin Layer <layer@franz.com>
+Date: Thu, 31 Oct 2013 04:27:29 -0700
+Subject: [PATCH 1/2] rfe12668: add HTML 5 elements to htmlgen
+
+Add the new elements listed here:
+  http://www.w3.org/TR/html5-diff/#new-elements
+
+Change-Id: I7f64363751130644caf90ecdd65c13175d77ae97
+---
+ aserve/htmlgen/htmlgen.cl | 38 ++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 36 insertions(+), 2 deletions(-)
+
+diff --git a/aserve/htmlgen/htmlgen.cl b/aserve/htmlgen/htmlgen.cl
+index 59248ef..0c0d6e8 100644
+--- a/aserve/htmlgen/htmlgen.cl
++++ b/aserve/htmlgen/htmlgen.cl
+@@ -747,6 +747,40 @@
+ 
+ (def-std-html :var 	t nil)
+ 
+-(def-std-html :wbr  	nil nil)
+-
+ (def-std-html :xmp 	t nil)
++
++;; html 5
++
++(def-std-html :section		t nil)
++(def-std-html :article		t nil)
++(def-std-html :main		t nil)
++(def-std-html :aside		t nil)
++(def-std-html :hgroup		t nil)
++(def-std-html :header		t nil)
++(def-std-html :footer		t nil)
++(def-std-html :nav		t nil)
++(def-std-html :figure		t nil)
++(def-std-html :figcaption 	t nil)
++
++(def-std-html :video	 	t nil)
++(def-std-html :audio	 	t nil)
++(def-std-html :source	 	t nil)
++(def-std-html :track	 	t nil)
++(def-std-html :embed	 	t nil)
++(def-std-html :mark	 	t nil)
++(def-std-html :progress	 	t nil)
++(def-std-html :meter	 	t nil)
++(def-std-html :time	 	t nil)
++(def-std-html :data	 	t nil)
++(def-std-html :dialog	 	t nil)
++(def-std-html :ruby	 	t nil)
++(def-std-html :rt	 	t nil)
++(def-std-html :rp	 	t nil)
++(def-std-html :bdi	 	t nil)
++(def-std-html :wbr		nil nil)
++(def-std-html :canvas	 	t nil)
++(def-std-html :menuitem	 	t nil)
++(def-std-html :details	 	t nil)
++(def-std-html :datalist	 	t nil)
++(def-std-html :keygen	 	t nil)
++(def-std-html :output	 	t nil)
+-- 
+2.25.1
+
diff --git a/gnu/packages/patches/sbcl-aserve-fix-rfe12668.patch b/gnu/packages/patches/sbcl-aserve-fix-rfe12668.patch
new file mode 100644
index 0000000000..c7a8e05aae
--- /dev/null
+++ b/gnu/packages/patches/sbcl-aserve-fix-rfe12668.patch
@@ -0,0 +1,43 @@
+From 8110ebd55d5bf659cd40dab2df59d80dafdb367a Mon Sep 17 00:00:00 2001
+From: Kevin Layer <layer@franz.com>
+Date: Mon, 10 Feb 2014 11:10:42 -0800
+Subject: [PATCH 2/2] fix bugs in rfe12668 implementation
+
+The previous commit added :embed and :keygen but they were already
+there.  Resolve this issue.
+
+Change-Id: Ieb962a12880394e67d973835945005446833fab7
+---
+ aserve/htmlgen/htmlgen.cl | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/aserve/htmlgen/htmlgen.cl b/aserve/htmlgen/htmlgen.cl
+index 0c0d6e8..f77d6de 100644
+--- a/aserve/htmlgen/htmlgen.cl
++++ b/aserve/htmlgen/htmlgen.cl
+@@ -658,7 +658,6 @@
+ (def-std-html :dt        t nil)
+ 
+ (def-std-html :em        t nil)
+-(def-std-html :embed     t nil)
+ 
+ (def-std-html :fieldset        t nil)
+ (def-std-html :font        t nil)
+@@ -685,7 +684,6 @@
+ (def-std-html :isindex    nil nil)
+ 
+ (def-std-html :kbd  	t nil)
+-(def-std-html :keygen  	nil nil)
+ 
+ (def-std-html :label  	t nil)
+ (def-std-html :layer  	t nil)
+@@ -782,5 +780,5 @@
+ (def-std-html :menuitem	 	t nil)
+ (def-std-html :details	 	t nil)
+ (def-std-html :datalist	 	t nil)
+-(def-std-html :keygen	 	t nil)
++(def-std-html :keygen	 	nil nil)
+ (def-std-html :output	 	t nil)
+-- 
+2.25.1
+
diff --git a/gnu/packages/patches/sbcl-burgled-batteries3-fix-signals.patch b/gnu/packages/patches/sbcl-burgled-batteries3-fix-signals.patch
new file mode 100644
index 0000000000..6a41cb0359
--- /dev/null
+++ b/gnu/packages/patches/sbcl-burgled-batteries3-fix-signals.patch
@@ -0,0 +1,70 @@
+commit 0854f21baa167da1ad19618daa331b1a46cbee07
+Author: Satoshi Imai <satoshi.imai@gmail.com>
+Date:   Tue Jun 15 03:46:57 2021 +0900
+
+    Fix to make it works with the current SBCL
+
+diff --git a/api.lisp b/api.lisp
+index 2d8c29b..aed38be 100644
+--- a/api.lisp
++++ b/api.lisp
+@@ -8,8 +8,8 @@
+ (defun startup-python ()
+   (.initialize)
+   (initialize-modules)
+-  #+(and sbcl unix); python will fail sbcl's sigpipe-handler.
+-  (sb-unix::enable-interrupt sb-unix::sigpipe #'sb-unix::sigpipe-handler)
++  ;; #+(and sbcl unix); python will fail sbcl's sigpipe-handler.
++  ;; (sb-unix::enable-interrupt sb-unix::sigpipe #'sb-unix::sigpipe-handler)
+   )
+ 
+ (defun shutdown-python ()
+@@ -35,8 +35,9 @@
+   (let ((cpython-initialized? (.is-initialized)))
+     (unless cpython-initialized?
+       (.initialize)
+-      #+(and sbcl unix); python will fail sbcl's sigpipe-handler.
+-      (sb-unix::enable-interrupt sb-unix::sigpipe #'sb-unix::sigpipe-handler))
++      ;; #+(and sbcl unix); python will fail sbcl's sigpipe-handler.
++      ;; (sb-unix::enable-interrupt sb-unix::sigpipe #'sb-unix::sigpipe-handler)
++      )
+     (unwind-protect
+          (funcall thunk)
+       (unless cpython-initialized?
+diff --git a/ffi-conditions.lisp b/ffi-conditions.lisp
+index ac03e80..ba1da33 100644
+--- a/ffi-conditions.lisp
++++ b/ffi-conditions.lisp
+@@ -3,8 +3,9 @@
+ ;; Python must have been initialized for our macroexpansions to work.
+ (eval-when (:compile-toplevel :load-toplevel)
+   (.initialize)
+-  #+(and sbcl unix); python will fail sbcl's sigpipe-handler.
+-  (sb-unix::enable-interrupt sb-unix::sigpipe #'sb-unix::sigpipe-handler))
++  ;; #+(and sbcl unix); python will fail sbcl's sigpipe-handler.
++  ;; (sb-unix::enable-interrupt sb-unix::sigpipe #'sb-unix::sigpipe-handler)
++  )
+ 
+ (defpyexception "BaseException" (python-condition)
+     (("args" :initarg :args)))
+diff --git a/grovel-include-dir.lisp b/grovel-include-dir.lisp
+index 6583084..62e07f3 100644
+--- a/grovel-include-dir.lisp
++++ b/grovel-include-dir.lisp
+@@ -23,13 +23,15 @@
+       (or (and (uiop:file-exists-p env-value) (cl:list env-value))
+           (error "DLL for PYTHON3 not correctly pointed to by BB_PYTHON3_DYLIB: ~A" env-value)))))
+ 
++(defvar *detected-library* nil)
++
+ (defun detect-python ()
+   (setf *detected-library* nil)
+   (or
+    (let ((env-value (uiop:getenv "BB_PYTHON3_INCLUDE_DIR")))
+      (when env-value
+        (or (uiop:directory-exists-p env-value)
+-           (error "BB_PYTHON3_INCLUDE_DIR is set, but does not point to an actual directory: %a" env-value))))
++           (error "BB_PYTHON3_INCLUDE_DIR is set, but does not point to an actual directory: ~A" env-value))))
+    (when *miniconda3*
+      (let ((path (if (pathnamep *miniconda3*)
+                      *miniconda3*
diff --git a/gnu/packages/patches/sbcl-png-fix-sbcl-compatibility.patch b/gnu/packages/patches/sbcl-png-fix-sbcl-compatibility.patch
new file mode 100644
index 0000000000..b969620899
--- /dev/null
+++ b/gnu/packages/patches/sbcl-png-fix-sbcl-compatibility.patch
@@ -0,0 +1,60 @@
+From 60bbad167b0691995a659121acda55392e4021b6 Mon Sep 17 00:00:00 2001
+From: Andrew Berkley <ajb@dwavesys.com>
+Date: Sun, 4 Jul 2021 12:50:34 -0700
+Subject: [PATCH] Fix for sbcl 2.1.6
+
+---
+ compat.lisp | 30 +++++++++++++++---------------
+ 1 file changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/compat.lisp b/compat.lisp
+index 95a9869..ea6d1a1 100644
+--- a/compat.lisp
++++ b/compat.lisp
+@@ -1,12 +1,13 @@
+ (in-package #:png)
+ 
+-#+sbcl ; Present in SBCL 1.0.24.
+-(declaim (ftype (function (array) (values (simple-array * (*)) &optional))
+-                array-storage-vector))
+-
+ #+sbcl
+-(defun array-storage-vector (array)
+-  "Returns the underlying storage vector of ARRAY, which must be a non-displaced array.
++(macrolet ((make-array-storage-vector ()
++             (let ((%array-data-vector (or (find-symbol "%ARRAY-DATA-VECTOR" :sb-kernel)
++                                           (find-symbol "%ARRAY-DATA" :sb-kernel)))) ;; renamed in sbcl 2.1.6
++               `(progn
++                  (declaim (ftype (function (array) (values (simple-array * (*)) &optional)) array-storage-vector))
++                  (defun array-storage-vector (array)
++                    "Returns the underlying storage vector of ARRAY, which must be a non-displaced array.
+ 
+ In SBCL, if ARRAY is a of type \(SIMPLE-ARRAY * \(*)), it is its own storage
+ vector. Multidimensional arrays, arrays with fill pointers, and adjustable
+@@ -16,15 +17,14 @@ ARRAY, which this function returns.
+ Important note: the underlying vector is an implementation detail. Even though
+ this function exposes it, changes in the implementation may cause this
+ function to be removed without further warning."
+-  ;; KLUDGE: Without TRULY-THE the system is not smart enough to
+-  ;; figure out that the return value is always of the known type.
+-  (sb-ext:truly-the (simple-array * (*))
+-             (if (sb-kernel:array-header-p array)
+-                 (if (sb-kernel:%array-displaced-p array)
+-                     (error "~S cannot be used with displaced arrays. Use ~S instead."
+-                            'array-storage-vector 'array-displacement)
+-                     (sb-kernel:%array-data-vector array))
+-                 array)))
++                    (sb-ext:truly-the (simple-array * (*))
++                                      (if (sb-kernel:array-header-p array)
++                                          (if (sb-kernel:%array-displaced-p array)
++                                              (error "~S cannot be used with displaced arrays. Use ~S instead."
++                                                     'array-storage-vector 'array-displacement)
++                                              (,%array-data-vector array))
++                                          array)))))))
++  (make-array-storage-vector))
+ 
+ #+allegro
+ (defmacro with-pointer-to-array-data ((ptr-var array) &body body)
+-- 
+2.33.0
+
diff --git a/gnu/packages/patches/scalapack-blacs-mpi-deprecations.patch b/gnu/packages/patches/scalapack-blacs-mpi-deprecations.patch
deleted file mode 100644
index 6ec1b8f21f..0000000000
--- a/gnu/packages/patches/scalapack-blacs-mpi-deprecations.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-From f11c3f094ed5ca727ec819983425b6641db8227c Mon Sep 17 00:00:00 2001
-From: Eric Bavier <bavier@member.fsf.org>
-Date: Wed, 13 Feb 2019 09:32:11 -0600
-Subject: [PATCH] BLACS: Remove use of long-deprecated MPI1 functions.
-
-* BLACS/SRC/blacs_get_.c: 'MPI_Attr_get' -> 'MPI_Comm_get_attr'.
-* BLACS/SRC/cgamn2d_.c, BLACS/SRC/cgamx2d_.c, BLACS/SRC/dgamn2d_.c,
-BLACS/SRC/dgamx2d_.c, BLACS/SRC/igamn2d_.c, BLACS/SRC/igamx2d_.c,
-BLACS/SRC/sgamn2d_.c, BLACS/SRC/sgamx2d_.c, BLACS/SRC/zgamn2d_.c,
-BLACS/SRC/zgamx2d_.c: 'MPI_Type_struct' -> 'MPI_Type_create_struct'.
----
- BLACS/SRC/blacs_get_.c | 2 +-
- BLACS/SRC/cgamn2d_.c   | 2 +-
- BLACS/SRC/cgamx2d_.c   | 2 +-
- BLACS/SRC/dgamn2d_.c   | 2 +-
- BLACS/SRC/dgamx2d_.c   | 2 +-
- BLACS/SRC/igamn2d_.c   | 2 +-
- BLACS/SRC/igamx2d_.c   | 2 +-
- BLACS/SRC/sgamn2d_.c   | 2 +-
- BLACS/SRC/sgamx2d_.c   | 2 +-
- BLACS/SRC/zgamn2d_.c   | 2 +-
- BLACS/SRC/zgamx2d_.c   | 2 +-
- 11 files changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/BLACS/SRC/blacs_get_.c b/BLACS/SRC/blacs_get_.c
-index e979767..d4b04cf 100644
---- a/BLACS/SRC/blacs_get_.c
-+++ b/BLACS/SRC/blacs_get_.c
-@@ -23,7 +23,7 @@ F_VOID_FUNC blacs_get_(int *ConTxt, int *what, int *val)
-    case SGET_MSGIDS:
-       if (BI_COMM_WORLD == NULL) Cblacs_pinfo(val, &val[1]);
-       iptr = &val[1];
--      ierr=MPI_Attr_get(MPI_COMM_WORLD, MPI_TAG_UB, (BVOID **) &iptr,val);
-+      ierr=MPI_Comm_get_attr(MPI_COMM_WORLD, MPI_TAG_UB, (BVOID **) &iptr,val);
-       val[0] = 0;
-       val[1] = *iptr;
-       break;
-diff --git a/BLACS/SRC/cgamn2d_.c b/BLACS/SRC/cgamn2d_.c
-index 2db6ccb..6958f32 100644
---- a/BLACS/SRC/cgamn2d_.c
-+++ b/BLACS/SRC/cgamn2d_.c
-@@ -221,7 +221,7 @@ F_VOID_FUNC cgamn2d_(int *ConTxt, F_CHAR scope, F_CHAR top, int *m, int *n,
-       {
- #endif
-       i = 2;
--      ierr=MPI_Type_struct(i, len, disp, dtypes, &MyType);
-+      ierr=MPI_Type_create_struct(i, len, disp, dtypes, &MyType);
-       ierr=MPI_Type_commit(&MyType);
-       bp->N = bp2->N = 1;
-       bp->dtype = bp2->dtype = MyType;
-diff --git a/BLACS/SRC/cgamx2d_.c b/BLACS/SRC/cgamx2d_.c
-index 707c0b6..f802d01 100644
---- a/BLACS/SRC/cgamx2d_.c
-+++ b/BLACS/SRC/cgamx2d_.c
-@@ -221,7 +221,7 @@ F_VOID_FUNC cgamx2d_(int *ConTxt, F_CHAR scope, F_CHAR top, int *m, int *n,
-       {
- #endif
-       i = 2;
--      ierr=MPI_Type_struct(i, len, disp, dtypes, &MyType);
-+      ierr=MPI_Type_create_struct(i, len, disp, dtypes, &MyType);
-       ierr=MPI_Type_commit(&MyType);
-       bp->N = bp2->N = 1;
-       bp->dtype = bp2->dtype = MyType;
-diff --git a/BLACS/SRC/dgamn2d_.c b/BLACS/SRC/dgamn2d_.c
-index dff23b4..a2627ac 100644
---- a/BLACS/SRC/dgamn2d_.c
-+++ b/BLACS/SRC/dgamn2d_.c
-@@ -221,7 +221,7 @@ F_VOID_FUNC dgamn2d_(int *ConTxt, F_CHAR scope, F_CHAR top, int *m, int *n,
-       {
- #endif
-       i = 2;
--      ierr=MPI_Type_struct(i, len, disp, dtypes, &MyType);
-+      ierr=MPI_Type_create_struct(i, len, disp, dtypes, &MyType);
-       ierr=MPI_Type_commit(&MyType);
-       bp->N = bp2->N = 1;
-       bp->dtype = bp2->dtype = MyType;
-diff --git a/BLACS/SRC/dgamx2d_.c b/BLACS/SRC/dgamx2d_.c
-index a51f731..2a644d0 100644
---- a/BLACS/SRC/dgamx2d_.c
-+++ b/BLACS/SRC/dgamx2d_.c
-@@ -221,7 +221,7 @@ F_VOID_FUNC dgamx2d_(int *ConTxt, F_CHAR scope, F_CHAR top, int *m, int *n,
-       {
- #endif
-       i = 2;
--      ierr=MPI_Type_struct(i, len, disp, dtypes, &MyType);
-+      ierr=MPI_Type_create_struct(i, len, disp, dtypes, &MyType);
-       ierr=MPI_Type_commit(&MyType);
-       bp->N = bp2->N = 1;
-       bp->dtype = bp2->dtype = MyType;
-diff --git a/BLACS/SRC/igamn2d_.c b/BLACS/SRC/igamn2d_.c
-index 16bc003..f6a7859 100644
---- a/BLACS/SRC/igamn2d_.c
-+++ b/BLACS/SRC/igamn2d_.c
-@@ -218,7 +218,7 @@ F_VOID_FUNC igamn2d_(int *ConTxt, F_CHAR scope, F_CHAR top, int *m, int *n,
-       {
- #endif
-       i = 2;
--      ierr=MPI_Type_struct(i, len, disp, dtypes, &MyType);
-+      ierr=MPI_Type_create_struct(i, len, disp, dtypes, &MyType);
-       ierr=MPI_Type_commit(&MyType);
-       bp->N = bp2->N = 1;
-       bp->dtype = bp2->dtype = MyType;
-diff --git a/BLACS/SRC/igamx2d_.c b/BLACS/SRC/igamx2d_.c
-index 8165cbe..a7cfcc6 100644
---- a/BLACS/SRC/igamx2d_.c
-+++ b/BLACS/SRC/igamx2d_.c
-@@ -218,7 +218,7 @@ F_VOID_FUNC igamx2d_(int *ConTxt, F_CHAR scope, F_CHAR top, int *m, int *n,
-       {
- #endif
-       i = 2;
--      ierr=MPI_Type_struct(i, len, disp, dtypes, &MyType);
-+      ierr=MPI_Type_create_struct(i, len, disp, dtypes, &MyType);
-       ierr=MPI_Type_commit(&MyType);
-       bp->N = bp2->N = 1;
-       bp->dtype = bp2->dtype = MyType;
-diff --git a/BLACS/SRC/sgamn2d_.c b/BLACS/SRC/sgamn2d_.c
-index d6c95e5..569c797 100644
---- a/BLACS/SRC/sgamn2d_.c
-+++ b/BLACS/SRC/sgamn2d_.c
-@@ -221,7 +221,7 @@ F_VOID_FUNC sgamn2d_(int *ConTxt, F_CHAR scope, F_CHAR top, int *m, int *n,
-       {
- #endif
-       i = 2;
--      ierr=MPI_Type_struct(i, len, disp, dtypes, &MyType);
-+      ierr=MPI_Type_create_struct(i, len, disp, dtypes, &MyType);
-       ierr=MPI_Type_commit(&MyType);
-       bp->N = bp2->N = 1;
-       bp->dtype = bp2->dtype = MyType;
-diff --git a/BLACS/SRC/sgamx2d_.c b/BLACS/SRC/sgamx2d_.c
-index 4b0af6f..8897ece 100644
---- a/BLACS/SRC/sgamx2d_.c
-+++ b/BLACS/SRC/sgamx2d_.c
-@@ -221,7 +221,7 @@ F_VOID_FUNC sgamx2d_(int *ConTxt, F_CHAR scope, F_CHAR top, int *m, int *n,
-       {
- #endif
-       i = 2;
--      ierr=MPI_Type_struct(i, len, disp, dtypes, &MyType);
-+      ierr=MPI_Type_create_struct(i, len, disp, dtypes, &MyType);
-       ierr=MPI_Type_commit(&MyType);
-       bp->N = bp2->N = 1;
-       bp->dtype = bp2->dtype = MyType;
-diff --git a/BLACS/SRC/zgamn2d_.c b/BLACS/SRC/zgamn2d_.c
-index 9de2b23..37897df 100644
---- a/BLACS/SRC/zgamn2d_.c
-+++ b/BLACS/SRC/zgamn2d_.c
-@@ -221,7 +221,7 @@ F_VOID_FUNC zgamn2d_(int *ConTxt, F_CHAR scope, F_CHAR top, int *m, int *n,
-       {
- #endif
-       i = 2;
--      ierr=MPI_Type_struct(i, len, disp, dtypes, &MyType);
-+      ierr=MPI_Type_create_struct(i, len, disp, dtypes, &MyType);
-       ierr=MPI_Type_commit(&MyType);
-       bp->N = bp2->N = 1;
-       bp->dtype = bp2->dtype = MyType;
-diff --git a/BLACS/SRC/zgamx2d_.c b/BLACS/SRC/zgamx2d_.c
-index 414c381..0e9d474 100644
---- a/BLACS/SRC/zgamx2d_.c
-+++ b/BLACS/SRC/zgamx2d_.c
-@@ -221,7 +221,7 @@ F_VOID_FUNC zgamx2d_(int *ConTxt, F_CHAR scope, F_CHAR top, int *m, int *n,
-       {
- #endif
-       i = 2;
--      ierr=MPI_Type_struct(i, len, disp, dtypes, &MyType);
-+      ierr=MPI_Type_create_struct(i, len, disp, dtypes, &MyType);
-       ierr=MPI_Type_commit(&MyType);
-       bp->N = bp2->N = 1;
-       bp->dtype = bp2->dtype = MyType;
--- 
-2.20.1
-
diff --git a/gnu/packages/patches/scalapack-gcc-10-compilation.patch b/gnu/packages/patches/scalapack-gcc-10-compilation.patch
new file mode 100644
index 0000000000..cd6fb61cdf
--- /dev/null
+++ b/gnu/packages/patches/scalapack-gcc-10-compilation.patch
@@ -0,0 +1,5684 @@
+Fix Scalapack compilation with GCC 10+.
+
+Patches from <https://github.com/Reference-ScaLAPACK/scalapack/pull/26>.
+
+From 9c909f06cf51a3d00252323ce52aba46cc64ab41 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tiziano=20M=C3=BCller?= <tiziano.mueller@chem.uzh.ch>
+Date: Thu, 25 Jun 2020 18:36:46 +0200
+Subject: [PATCH] fix argument mismatches in the SRC
+
+---
+ SRC/pclarf.f   |  80 +++++++++++++++++-----------------
+ SRC/pclarfc.f  |  88 ++++++++++++++++++-------------------
+ SRC/pclarz.f   | 111 ++++++++++++++++++++++++-----------------------
+ SRC/pclarzc.f  | 115 +++++++++++++++++++++++++------------------------
+ SRC/pclattrs.f |  55 +++++++++++------------
+ SRC/pclawil.f  |  53 +++++++++++------------
+ SRC/pctrevc.f  |  20 +++++----
+ SRC/pdhseqr.f  |  36 ++++++++--------
+ SRC/pdlacon.f  |  36 ++++++++--------
+ SRC/pdlarf.f   |  80 +++++++++++++++++-----------------
+ SRC/pdlarz.f   | 100 +++++++++++++++++++++---------------------
+ SRC/pdlawil.f  |  48 ++++++++++-----------
+ SRC/pdstebz.f  |  20 ++++-----
+ SRC/pdtrord.f  |  43 +++++++++++-------
+ SRC/pdtrsen.f  |  24 ++++++-----
+ SRC/pshseqr.f  |  36 ++++++++--------
+ SRC/pslacon.f  |  36 +++++++++-------
+ SRC/pslarf.f   |  80 +++++++++++++++++-----------------
+ SRC/pslarz.f   | 100 +++++++++++++++++++++---------------------
+ SRC/pslawil.f  |  50 +++++++++++----------
+ SRC/psstebz.f  |  20 ++++-----
+ SRC/pstrord.f  |  45 +++++++++++--------
+ SRC/pstrsen.f  |  22 ++++++----
+ SRC/pzlarf.f   |  80 +++++++++++++++++-----------------
+ SRC/pzlarfc.f  |  88 ++++++++++++++++++-------------------
+ SRC/pzlarz.f   | 103 +++++++++++++++++++++----------------------
+ SRC/pzlarzc.f  | 111 ++++++++++++++++++++++++-----------------------
+ SRC/pzlattrs.f |  55 +++++++++++------------
+ SRC/pzlawil.f  |  49 +++++++++++----------
+ SRC/pztrevc.f  |  20 +++++----
+ 30 files changed, 927 insertions(+), 877 deletions(-)
+
+diff --git a/SRC/pclarf.f b/SRC/pclarf.f
+index f941e46..371f710 100644
+--- a/SRC/pclarf.f
++++ b/SRC/pclarf.f
+@@ -242,7 +242,7 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+      $                   IOFFV, IPW, IROFF, IVCOL, IVROW, JJC, JJV, LDC,
+      $                   LDV, MYCOL, MYROW, MP, NCC, NCV, NPCOL, NPROW,
+      $                   NQ, RDEST
+-      COMPLEX            TAULOC
++      COMPLEX            TAULOC( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, CCOPY, CGEBR2D, CGEBS2D,
+@@ -336,7 +336,7 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                      CALL CGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                             TAU( IIV ), 1 )
+-                     TAULOC = TAU( IIV )
++                     TAULOC( 1 ) = TAU( IIV )
+ *
+                   ELSE
+ *
+@@ -345,7 +345,7 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C )' * v
+ *
+@@ -363,8 +363,8 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                    sub( C ) := sub( C ) - v * w'
+ *
+-                     CALL CGERC( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                           1, C( IOFFC ), LDC )
++                     CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                           WORK( IPW ), 1, C( IOFFC ), LDC )
+                   END IF
+ *
+                END IF
+@@ -379,9 +379,9 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   IF( MYCOL.EQ.ICCOL ) THEN
+ *
+-                     TAULOC = TAU( JJV )
++                     TAULOC( 1 ) = TAU( JJV )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -398,7 +398,7 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+-                        CALL CGERC( MP, NQ, -TAULOC, V( IOFFV ), 1,
++                        CALL CGERC( MP, NQ, -TAULOC( 1 ), V( IOFFV ), 1,
+      $                              WORK, 1, C( IOFFC ), LDC )
+                      END IF
+ *
+@@ -421,9 +421,9 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                      IPW = MP+1
+                      CALL CGERV2D( ICTXT, IPW, 1, WORK, IPW, MYROW,
+      $                             IVCOL )
+-                     TAULOC = WORK( IPW )
++                     TAULOC( 1 ) = WORK( IPW )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -441,7 +441,7 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+-                        CALL CGERC( MP, NQ, -TAULOC, WORK, 1,
++                        CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
+      $                              WORK( IPW ), 1, C( IOFFC ), LDC )
+                      END IF
+ *
+@@ -471,7 +471,7 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   CALL CGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                          TAU( IIV ), 1 )
+-                  TAULOC = TAU( IIV )
++                  TAULOC( 1 ) = TAU( IIV )
+ *
+                ELSE
+ *
+@@ -480,7 +480,7 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -500,8 +500,8 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( IOFFC.GT.0 )
+-     $               CALL CGERC( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                           1, C( IOFFC ), LDC )
++     $               CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                           WORK( IPW ), 1, C( IOFFC ), LDC )
+                END IF
+ *
+             ELSE
+@@ -516,18 +516,18 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                   WORK(IPW) = TAU( JJV )
+                   CALL CGEBS2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = TAU( JJV )
++                  TAULOC( 1 ) = TAU( JJV )
+ *
+                ELSE
+ *
+                   IPW = MP+1
+                   CALL CGEBR2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1, WORK,
+      $                          IPW, MYROW, IVCOL )
+-                  TAULOC = WORK( IPW )
++                  TAULOC( 1 ) = WORK( IPW )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -547,8 +547,8 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( IOFFC.GT.0 )
+-     $               CALL CGERC( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                           1, C( IOFFC ), LDC )
++     $               CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                           WORK( IPW ), 1, C( IOFFC ), LDC )
+                END IF
+ *
+             END IF
+@@ -577,9 +577,9 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   IF( MYROW.EQ.ICROW ) THEN
+ *
+-                     TAULOC = TAU( IIV )
++                     TAULOC( 1 ) = TAU( IIV )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -597,7 +597,7 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+                         IF( IOFFV.GT.0 .AND. IOFFC.GT.0 )
+-     $                     CALL CGERC( MP, NQ, -TAULOC, WORK, 1,
++     $                     CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
+      $                                 V( IOFFV ), LDV, C( IOFFC ),
+      $                                 LDC )
+                      END IF
+@@ -621,9 +621,9 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                      IPW = NQ+1
+                      CALL CGERV2D( ICTXT, IPW, 1, WORK, IPW, IVROW,
+      $                             MYCOL )
+-                     TAULOC = WORK( IPW )
++                     TAULOC( 1 ) = WORK( IPW )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -641,8 +641,8 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+-                        CALL CGERC( MP, NQ, -TAULOC, WORK( IPW ), 1,
+-     $                              WORK, 1, C( IOFFC ), LDC )
++                        CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK( IPW ),
++     $                              1, WORK, 1, C( IOFFC ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -667,7 +667,7 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                      CALL CGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1,
+      $                             TAU( JJV ), 1 )
+-                     TAULOC = TAU( JJV )
++                     TAULOC( 1 ) = TAU( JJV )
+ *
+                   ELSE
+ *
+@@ -676,7 +676,7 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C ) * v
+ *
+@@ -694,8 +694,8 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                    sub( C ) := sub( C ) - w * v'
+ *
+-                     CALL CGERC( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                           1, C( IOFFC ), LDC )
++                     CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                           WORK, 1, C( IOFFC ), LDC )
+                   END IF
+ *
+                END IF
+@@ -720,18 +720,18 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                   WORK(IPW) = TAU( IIV )
+                   CALL CGEBS2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = TAU( IIV )
++                  TAULOC( 1 ) = TAU( IIV )
+ *
+                ELSE
+ *
+                   IPW = NQ+1
+                   CALL CGEBR2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW, IVROW, MYCOL )
+-                  TAULOC = WORK( IPW )
++                  TAULOC( 1 ) = WORK( IPW )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -750,8 +750,8 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+                   IF( IOFFC.GT.0 )
+-     $               CALL CGERC( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                           1, C( IOFFC ), LDC )
++     $               CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                           WORK, 1, C( IOFFC ), LDC )
+                END IF
+ *
+             ELSE
+@@ -770,7 +770,7 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   CALL CGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1, TAU( JJV ),
+      $                          1 )
+-                  TAULOC = TAU( JJV )
++                  TAULOC( 1 ) = TAU( JJV )
+ *
+                ELSE
+ *
+@@ -779,7 +779,7 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -797,8 +797,8 @@ SUBROUTINE PCLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL CGERC( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK, 1,
+-     $                        C( IOFFC ), LDC )
++                  CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                        WORK, 1, C( IOFFC ), LDC )
+                END IF
+ *
+             END IF
+diff --git a/SRC/pclarfc.f b/SRC/pclarfc.f
+index d6a2d3b..f84c493 100644
+--- a/SRC/pclarfc.f
++++ b/SRC/pclarfc.f
+@@ -242,7 +242,7 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+      $                   IOFFV, IPW, IROFF, IVCOL, IVROW, JJC, JJV, LDC,
+      $                   LDV, MYCOL, MYROW, MP, NCC, NCV, NPCOL, NPROW,
+      $                   NQ, RDEST
+-      COMPLEX            TAULOC
++      COMPLEX            TAULOC( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, CCOPY, CGEBR2D, CGEBS2D,
+@@ -336,17 +336,17 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                      CALL CGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                             TAU( IIV ), 1 )
+-                     TAULOC = CONJG( TAU( IIV ) )
++                     TAULOC( 1 ) = CONJG( TAU( IIV ) )
+ *
+                   ELSE
+ *
+                      CALL CGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                             TAULOC, 1, IVROW, MYCOL )
+-                     TAULOC = CONJG( TAULOC )
++                     TAULOC( 1 ) = CONJG( TAULOC( 1 ) )
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C )' * v
+ *
+@@ -364,8 +364,8 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                    sub( C ) := sub( C ) - v * w'
+ *
+-                     CALL CGERC( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                           1, C( IOFFC ), LDC )
++                     CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                           WORK( IPW ), 1, C( IOFFC ), LDC )
+                   END IF
+ *
+                END IF
+@@ -380,9 +380,9 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   IF( MYCOL.EQ.ICCOL ) THEN
+ *
+-                     TAULOC = CONJG( TAU( JJV ) )
++                     TAULOC( 1 ) = CONJG( TAU( JJV ) )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -399,7 +399,7 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+-                        CALL CGERC( MP, NQ, -TAULOC, V( IOFFV ), 1,
++                        CALL CGERC( MP, NQ, -TAULOC( 1 ), V( IOFFV ), 1,
+      $                              WORK, 1, C( IOFFC ), LDC )
+                      END IF
+ *
+@@ -422,9 +422,9 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                      IPW = MP+1
+                      CALL CGERV2D( ICTXT, IPW, 1, WORK, IPW, MYROW,
+      $                             IVCOL )
+-                     TAULOC = CONJG( WORK( IPW ) )
++                     TAULOC( 1 ) = CONJG( WORK( IPW ) )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -442,7 +442,7 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+-                        CALL CGERC( MP, NQ, -TAULOC, WORK, 1,
++                        CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
+      $                              WORK( IPW ), 1, C( IOFFC ), LDC )
+                      END IF
+ *
+@@ -472,17 +472,17 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   CALL CGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                          TAU( IIV ), 1 )
+-                  TAULOC = CONJG( TAU( IIV ) )
++                  TAULOC( 1 ) = CONJG( TAU( IIV ) )
+ *
+                ELSE
+ *
+                   CALL CGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, TAULOC,
+      $                          1, IVROW, MYCOL )
+-                  TAULOC = CONJG( TAULOC )
++                  TAULOC( 1 ) = CONJG( TAULOC( 1 ) )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -500,8 +500,8 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+-                  CALL CGERC( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ), 1,
+-     $                        C( IOFFC ), LDC )
++                  CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                        WORK( IPW ), 1, C( IOFFC ), LDC )
+                END IF
+ *
+             ELSE
+@@ -516,18 +516,18 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                   WORK(IPW) = TAU( JJV )
+                   CALL CGEBS2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = CONJG( TAU( JJV ) )
++                  TAULOC( 1 ) = CONJG( TAU( JJV ) )
+ *
+                ELSE
+ *
+                   IPW = MP+1
+                   CALL CGEBR2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1, WORK,
+      $                          IPW, MYROW, IVCOL )
+-                  TAULOC = CONJG( WORK( IPW ) )
++                  TAULOC( 1 ) = CONJG( WORK( IPW ) )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -545,8 +545,8 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+-                  CALL CGERC( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ), 1,
+-     $                        C( IOFFC ), LDC )
++                  CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                        WORK( IPW ), 1, C( IOFFC ), LDC )
+                END IF
+ *
+             END IF
+@@ -575,9 +575,9 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   IF( MYROW.EQ.ICROW ) THEN
+ *
+-                     TAULOC = CONJG( TAU( IIV ) )
++                     TAULOC( 1 ) = CONJG( TAU( IIV ) )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -594,7 +594,7 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+-                        CALL CGERC( MP, NQ, -TAULOC, WORK, 1,
++                        CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
+      $                              V( IOFFV ), LDV, C( IOFFC ), LDC )
+                      END IF
+ *
+@@ -617,9 +617,9 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                      IPW = NQ+1
+                      CALL CGERV2D( ICTXT, IPW, 1, WORK, IPW, IVROW,
+      $                             MYCOL )
+-                     TAULOC = CONJG( WORK( IPW ) )
++                     TAULOC( 1 ) = CONJG( WORK( IPW ) )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -637,8 +637,8 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+-                        CALL CGERC( MP, NQ, -TAULOC, WORK( IPW ), 1,
+-     $                              WORK, 1, C( IOFFC ), LDC )
++                        CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK( IPW ),
++     $                              1, WORK, 1, C( IOFFC ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -663,17 +663,17 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                      CALL CGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1,
+      $                             TAU( JJV ), 1 )
+-                     TAULOC = CONJG( TAU( JJV ) )
++                     TAULOC( 1 ) = CONJG( TAU( JJV ) )
+ *
+                   ELSE
+ *
+                      CALL CGEBR2D( ICTXT, 'Rowwise', ' ', 1, 1, TAULOC,
+      $                             1, MYROW, IVCOL )
+-                     TAULOC = CONJG( TAULOC )
++                     TAULOC( 1 ) = CONJG( TAULOC( 1 ) )
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C ) * v
+ *
+@@ -691,8 +691,8 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                    sub( C ) := sub( C ) - w * v'
+ *
+-                     CALL CGERC( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                           1, C( IOFFC ), LDC )
++                     CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                           WORK, 1, C( IOFFC ), LDC )
+                   END IF
+ *
+                END IF
+@@ -716,18 +716,18 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                   WORK(IPW) = TAU( IIV )
+                   CALL CGEBS2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = CONJG( TAU( IIV ) )
++                  TAULOC( 1 ) = CONJG( TAU( IIV ) )
+ *
+                ELSE
+ *
+                   IPW = NQ+1
+                   CALL CGEBR2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW, IVROW, MYCOL )
+-                  TAULOC = CONJG( WORK( IPW ) )
++                  TAULOC( 1 ) = CONJG( WORK( IPW ) )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -745,8 +745,8 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL CGERC( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK, 1,
+-     $                        C( IOFFC ), LDC )
++                  CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                        WORK, 1, C( IOFFC ), LDC )
+                END IF
+ *
+             ELSE
+@@ -765,17 +765,17 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   CALL CGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1, TAU( JJV ),
+      $                          1 )
+-                  TAULOC = CONJG( TAU( JJV ) )
++                  TAULOC( 1 ) = CONJG( TAU( JJV ) )
+ *
+                ELSE
+ *
+                   CALL CGEBR2D( ICTXT, 'Rowwise', ' ', 1, 1, TAULOC, 1,
+      $                          MYROW, IVCOL )
+-                  TAULOC = CONJG( TAULOC )
++                  TAULOC( 1 ) = CONJG( TAULOC( 1 ) )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -793,8 +793,8 @@ SUBROUTINE PCLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL CGERC( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK, 1,
+-     $                        C( IOFFC ), LDC )
++                  CALL CGERC( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                        WORK, 1, C( IOFFC ), LDC )
+                END IF
+ *
+             END IF
+diff --git a/SRC/pclarz.f b/SRC/pclarz.f
+index 9ba730c..673860a 100644
+--- a/SRC/pclarz.f
++++ b/SRC/pclarz.f
+@@ -251,7 +251,7 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                   IVCOL, IVROW, JJC1, JJC2, JJV, LDC, LDV, MPC2,
+      $                   MPV, MYCOL, MYROW, NCC, NCV, NPCOL, NPROW,
+      $                   NQC2, NQV, RDEST
+-      COMPLEX            TAULOC
++      COMPLEX            TAULOC( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, CAXPY, CCOPY, CGEBR2D,
+@@ -370,7 +370,7 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                      CALL CGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                             TAU( IIV ), 1 )
+-                     TAULOC = TAU( IIV )
++                     TAULOC( 1 ) = TAU( IIV )
+ *
+                   ELSE
+ *
+@@ -379,7 +379,7 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C )' * v
+ *
+@@ -402,9 +402,9 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                    sub( C ) := sub( C ) - v * w'
+ *
+                      IF( MYROW.EQ.ICROW1 )
+-     $                  CALL CAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $                  CALL CAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                              MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                     CALL CGERC( MPV, NQC2, -TAULOC, WORK, 1,
++                     CALL CGERC( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
+      $                           WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                   END IF
+ *
+@@ -420,9 +420,9 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   IF( MYCOL.EQ.ICCOL2 ) THEN
+ *
+-                     TAULOC = TAU( JJV )
++                     TAULOC( 1 ) = TAU( JJV )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -445,11 +445,11 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+                         IF( MYROW.EQ.ICROW1 )
+-     $                     CALL CAXPY( NQC2, -TAULOC, WORK,
++     $                     CALL CAXPY( NQC2, -TAULOC( 1 ), WORK,
+      $                                 MAX( 1, NQC2 ), C( IOFFC1 ),
+      $                                 LDC )
+-                        CALL CGERC( MPV, NQC2, -TAULOC, V( IOFFV ), 1,
+-     $                              WORK, 1, C( IOFFC2 ), LDC )
++                        CALL CGERC( MPV, NQC2, -TAULOC( 1 ), V( IOFFV ),
++     $                              1, WORK, 1, C( IOFFC2 ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -471,9 +471,9 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                      IPW = MPV+1
+                      CALL CGERV2D( ICTXT, IPW, 1, WORK, IPW, MYROW,
+      $                             IVCOL )
+-                     TAULOC = WORK( IPW )
++                     TAULOC( 1 ) = WORK( IPW )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -496,10 +496,10 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+                         IF( MYROW.EQ.ICROW1 )
+-     $                     CALL CAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $                     CALL CAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                                 MAX( 1, NQC2 ), C( IOFFC1 ),
+      $                                 LDC )
+-                        CALL CGERC( MPV, NQC2, -TAULOC, WORK, 1,
++                        CALL CGERC( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
+      $                              WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                      END IF
+ *
+@@ -530,16 +530,16 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   CALL CGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                          TAU( IIV ), 1 )
+-                  TAULOC = TAU( IIV )
++                  TAULOC( 1 ) = TAU( IIV )
+ *
+                ELSE
+ *
+-                  CALL CGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, TAULOC,
+-     $                          1, IVROW, MYCOL )
++                  CALL CGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1,
++     $                          TAULOC( 1 ), 1, IVROW, MYCOL )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -562,10 +562,10 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( MYROW.EQ.ICROW1 )
+-     $               CALL CAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $               CALL CAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                           MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                  CALL CGERC( MPV, NQC2, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                        1, C( IOFFC2 ), LDC )
++                  CALL CGERC( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
++     $                        WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             ELSE
+@@ -580,18 +580,18 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                   WORK( IPW ) = TAU( JJV )
+                   CALL CGEBS2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = TAU( JJV )
++                  TAULOC( 1 ) = TAU( JJV )
+ *
+                ELSE
+ *
+                   IPW = MPV+1
+                   CALL CGEBR2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1, WORK,
+      $                          IPW, MYROW, IVCOL )
+-                  TAULOC = WORK( IPW )
++                  TAULOC( 1 ) = WORK( IPW )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -614,10 +614,10 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( MYROW.EQ.ICROW1 )
+-     $               CALL CAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $               CALL CAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                           MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                  CALL CGERC( MPV, NQC2, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                        1, C( IOFFC2 ), LDC )
++                  CALL CGERC( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
++     $                        WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             END IF
+@@ -646,9 +646,9 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   IF( MYROW.EQ.ICROW2 ) THEN
+ *
+-                     TAULOC = TAU( IIV )
++                     TAULOC( 1 ) = TAU( IIV )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -669,13 +669,13 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                               ICCOL2 )
+ *
+                         IF( MYCOL.EQ.ICCOL1 )
+-     $                     CALL CAXPY( MPC2, -TAULOC, WORK, 1,
++     $                     CALL CAXPY( MPC2, -TAULOC( 1 ), WORK, 1,
+      $                                 C( IOFFC1 ), 1 )
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+                         IF( MPC2.GT.0 .AND. NQV.GT.0 )
+-     $                     CALL CGERC( MPC2, NQV, -TAULOC, WORK, 1,
++     $                     CALL CGERC( MPC2, NQV, -TAULOC( 1 ), WORK, 1,
+      $                                 V( IOFFV ), LDV, C( IOFFC2 ),
+      $                                 LDC )
+                      END IF
+@@ -699,9 +699,9 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                      IPW = NQV+1
+                      CALL CGERV2D( ICTXT, IPW, 1, WORK, IPW, IVROW,
+      $                             MYCOL )
+-                     TAULOC = WORK( IPW )
++                     TAULOC( 1 ) = WORK( IPW )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -720,13 +720,14 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                                WORK( IPW ), MAX( 1, MPC2 ),
+      $                                RDEST, ICCOL2 )
+                         IF( MYCOL.EQ.ICCOL1 )
+-     $                     CALL CAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
+-     $                                 C( IOFFC1 ), 1 )
++     $                     CALL CAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ),
++     $                                 1, C( IOFFC1 ), 1 )
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+-                        CALL CGERC( MPC2, NQV, -TAULOC, WORK( IPW ), 1,
+-     $                              WORK, 1, C( IOFFC2 ), LDC )
++                        CALL CGERC( MPC2, NQV, -TAULOC( 1 ),
++     $                              WORK( IPW ), 1, WORK, 1,
++     $                              C( IOFFC2 ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -751,16 +752,16 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                      CALL CGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1,
+      $                             TAU( JJV ), 1 )
+-                     TAULOC = TAU( JJV )
++                     TAULOC( 1 ) = TAU( JJV )
+ *
+                   ELSE
+ *
+-                     CALL CGEBR2D( ICTXT, 'Rowwise', ' ', 1, 1, TAULOC,
+-     $                             1, MYROW, IVCOL )
++                     CALL CGEBR2D( ICTXT, 'Rowwise', ' ', 1, 1,
++     $                             TAULOC( 1 ), 1, MYROW, IVCOL )
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C ) * v
+ *
+@@ -779,13 +780,13 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                             WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                             ICCOL2 )
+                      IF( MYCOL.EQ.ICCOL1 )
+-     $                  CALL CAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $                  CALL CAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                              C( IOFFC1 ), 1 )
+ *
+ *                    sub( C ) := sub( C ) - w * v'
+ *
+-                     CALL CGERC( MPC2, NQV, -TAULOC, WORK( IPW ), 1,
+-     $                           WORK, 1, C( IOFFC2 ), LDC )
++                     CALL CGERC( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ),
++     $                           1, WORK, 1, C( IOFFC2 ), LDC )
+                   END IF
+ *
+                END IF
+@@ -809,18 +810,18 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                   WORK( IPW ) = TAU( IIV )
+                   CALL CGEBS2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = TAU( IIV )
++                  TAULOC( 1 ) = TAU( IIV )
+ *
+                ELSE
+ *
+                   IPW = NQV+1
+                   CALL CGEBR2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW, IVROW, MYCOL )
+-                  TAULOC = WORK( IPW )
++                  TAULOC( 1 ) = WORK( IPW )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -840,13 +841,13 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                          WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                          ICCOL2 )
+                   IF( MYCOL.EQ.ICCOL1 )
+-     $               CALL CAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $               CALL CAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                           C( IOFFC1 ), 1 )
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL CGERC( MPC2, NQV, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                        1, C( IOFFC2 ), LDC )
++                  CALL CGERC( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                        WORK, 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             ELSE
+@@ -865,7 +866,7 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   CALL CGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1, TAU( JJV ),
+      $                          1 )
+-                  TAULOC = TAU( JJV )
++                  TAULOC( 1 ) = TAU( JJV )
+ *
+                ELSE
+ *
+@@ -874,7 +875,7 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -893,13 +894,13 @@ SUBROUTINE PCLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                          WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                          ICCOL2 )
+                   IF( MYCOL.EQ.ICCOL1 )
+-     $               CALL CAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $               CALL CAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                           C( IOFFC1 ), 1 )
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL CGERC( MPC2, NQV, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                        1, C( IOFFC2 ), LDC )
++                  CALL CGERC( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                        WORK, 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             END IF
+diff --git a/SRC/pclarzc.f b/SRC/pclarzc.f
+index f1bc21e..b6d3b6d 100644
+--- a/SRC/pclarzc.f
++++ b/SRC/pclarzc.f
+@@ -251,7 +251,7 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                   IVCOL, IVROW, JJC1, JJC2, JJV, LDC, LDV, MPC2,
+      $                   MPV, MYCOL, MYROW, NCC, NCV, NPCOL, NPROW,
+      $                   NQC2, NQV, RDEST
+-      COMPLEX            TAULOC
++      COMPLEX            TAULOC( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, CAXPY, CCOPY, CGEBR2D,
+@@ -370,17 +370,17 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                      CALL CGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                             TAU( IIV ), 1 )
+-                     TAULOC = CONJG( TAU( IIV ) )
++                     TAULOC( 1 ) = CONJG( TAU( IIV ) )
+ *
+                   ELSE
+ *
+                      CALL CGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                             TAULOC, 1, IVROW, MYCOL )
+-                     TAULOC = CONJG( TAULOC )
++                     TAULOC( 1 ) = CONJG( TAULOC( 1 ) )
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C )' * v
+ *
+@@ -403,9 +403,9 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                    sub( C ) := sub( C ) - v * w'
+ *
+                      IF( MYROW.EQ.ICROW1 )
+-     $                  CALL CAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $                  CALL CAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                              MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                     CALL CGERC( MPV, NQC2, -TAULOC, WORK, 1,
++                     CALL CGERC( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
+      $                           WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                   END IF
+ *
+@@ -421,9 +421,9 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   IF( MYCOL.EQ.ICCOL2 ) THEN
+ *
+-                     TAULOC = CONJG( TAU( JJV ) )
++                     TAULOC( 1 ) = CONJG( TAU( JJV ) )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -446,11 +446,11 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+                         IF( MYROW.EQ.ICROW1 )
+-     $                     CALL CAXPY( NQC2, -TAULOC, WORK,
++     $                     CALL CAXPY( NQC2, -TAULOC( 1 ), WORK,
+      $                                 MAX( 1, NQC2 ), C( IOFFC1 ),
+      $                                 LDC )
+-                        CALL CGERC( MPV, NQC2, -TAULOC, V( IOFFV ), 1,
+-     $                              WORK, 1, C( IOFFC2 ), LDC )
++                        CALL CGERC( MPV, NQC2, -TAULOC( 1 ), V( IOFFV ),
++     $                              1, WORK, 1, C( IOFFC2 ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -472,9 +472,9 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                      IPW = MPV+1
+                      CALL CGERV2D( ICTXT, IPW, 1, WORK, IPW, MYROW,
+      $                             IVCOL )
+-                     TAULOC = CONJG( WORK( IPW ) )
++                     TAULOC( 1 ) = CONJG( WORK( IPW ) )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -497,10 +497,10 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+                         IF( MYROW.EQ.ICROW1 )
+-     $                     CALL CAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $                     CALL CAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                                 MAX( 1, NQC2 ), C( IOFFC1 ),
+      $                                 LDC )
+-                        CALL CGERC( MPV, NQC2, -TAULOC, WORK, 1,
++                        CALL CGERC( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
+      $                              WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                      END IF
+ *
+@@ -531,17 +531,17 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   CALL CGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                          TAU( IIV ), 1 )
+-                  TAULOC = CONJG( TAU( IIV ) )
++                  TAULOC( 1 ) = CONJG( TAU( IIV ) )
+ *
+                ELSE
+ *
+                   CALL CGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, TAULOC,
+      $                          1, IVROW, MYCOL )
+-                  TAULOC = CONJG( TAULOC )
++                  TAULOC( 1 ) = CONJG( TAULOC( 1 ) )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -564,10 +564,10 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( MYROW.EQ.ICROW1 )
+-     $               CALL CAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $               CALL CAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                           MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                  CALL CGERC( MPV, NQC2, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                        1, C( IOFFC2 ), LDC )
++                  CALL CGERC( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
++     $                        WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             ELSE
+@@ -582,18 +582,18 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                   WORK( IPW ) = TAU( JJV )
+                   CALL CGEBS2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = CONJG( TAU( JJV ) )
++                  TAULOC( 1 ) = CONJG( TAU( JJV ) )
+ *
+                ELSE
+ *
+                   IPW = MPV+1
+                   CALL CGEBR2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1, WORK,
+      $                          IPW, MYROW, IVCOL )
+-                  TAULOC = CONJG( WORK( IPW ) )
++                  TAULOC( 1 ) = CONJG( WORK( IPW ) )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -616,10 +616,10 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( MYROW.EQ.ICROW1 )
+-     $               CALL CAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $               CALL CAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                           MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                  CALL CGERC( MPV, NQC2, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                        1, C( IOFFC2 ), LDC )
++                  CALL CGERC( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
++     $                        WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             END IF
+@@ -648,9 +648,9 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   IF( MYROW.EQ.ICROW2 ) THEN
+ *
+-                     TAULOC = CONJG( TAU( IIV ) )
++                     TAULOC( 1 ) = CONJG( TAU( IIV ) )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -671,12 +671,12 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                               ICCOL2 )
+ *
+                         IF( MYCOL.EQ.ICCOL1 )
+-     $                     CALL CAXPY( MPC2, -TAULOC, WORK, 1,
++     $                     CALL CAXPY( MPC2, -TAULOC( 1 ), WORK, 1,
+      $                                 C( IOFFC1 ), 1 )
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+-                        CALL CGERC( MPC2, NQV, -TAULOC, WORK, 1,
++                        CALL CGERC( MPC2, NQV, -TAULOC( 1 ), WORK, 1,
+      $                              V( IOFFV ), LDV, C( IOFFC2 ), LDC )
+                      END IF
+ *
+@@ -699,9 +699,9 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                      IPW = NQV+1
+                      CALL CGERV2D( ICTXT, IPW, 1, WORK, IPW, IVROW,
+      $                             MYCOL )
+-                     TAULOC = CONJG( WORK( IPW ) )
++                     TAULOC( 1 ) = CONJG( WORK( IPW ) )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -720,13 +720,14 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                                WORK( IPW ), MAX( 1, MPC2 ),
+      $                                RDEST, ICCOL2 )
+                         IF( MYCOL.EQ.ICCOL1 )
+-     $                     CALL CAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
+-     $                                 C( IOFFC1 ), 1 )
++     $                     CALL CAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ),
++     $                                 1, C( IOFFC1 ), 1 )
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+-                        CALL CGERC( MPC2, NQV, -TAULOC, WORK( IPW ), 1,
+-     $                              WORK, 1, C( IOFFC2 ), LDC )
++                        CALL CGERC( MPC2, NQV, -TAULOC( 1 ),
++     $                              WORK( IPW ), 1, WORK, 1,
++     $                              C( IOFFC2 ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -751,17 +752,17 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                      CALL CGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1,
+      $                             TAU( JJV ), 1 )
+-                     TAULOC = CONJG( TAU( JJV ) )
++                     TAULOC( 1 ) = CONJG( TAU( JJV ) )
+ *
+                   ELSE
+ *
+                      CALL CGEBR2D( ICTXT, 'Rowwise', ' ', 1, 1, TAULOC,
+      $                             1, MYROW, IVCOL )
+-                     TAULOC = CONJG( TAULOC )
++                     TAULOC( 1 ) = CONJG( TAULOC( 1 ) )
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C ) * v
+ *
+@@ -780,13 +781,13 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                             WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                             ICCOL2 )
+                      IF( MYCOL.EQ.ICCOL1 )
+-     $                  CALL CAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $                  CALL CAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                              C( IOFFC1 ), 1 )
+ *
+ *                    sub( C ) := sub( C ) - w * v'
+ *
+-                     CALL CGERC( MPC2, NQV, -TAULOC, WORK( IPW ), 1,
+-     $                           WORK, 1, C( IOFFC2 ), LDC )
++                     CALL CGERC( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ),
++     $                           1, WORK, 1, C( IOFFC2 ), LDC )
+                   END IF
+ *
+                END IF
+@@ -810,18 +811,18 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                   WORK( IPW ) = TAU( IIV )
+                   CALL CGEBS2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = CONJG( TAU( IIV ) )
++                  TAULOC( 1 ) = CONJG( TAU( IIV ) )
+ *
+                ELSE
+ *
+                   IPW = NQV+1
+                   CALL CGEBR2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW, IVROW, MYCOL )
+-                  TAULOC = CONJG( WORK( IPW ) )
++                  TAULOC( 1 ) = CONJG( WORK( IPW ) )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -841,13 +842,13 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                          WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                          ICCOL2 )
+                   IF( MYCOL.EQ.ICCOL1 )
+-     $               CALL CAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $               CALL CAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                           C( IOFFC1 ), 1 )
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL CGERC( MPC2, NQV, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                        1, C( IOFFC2 ), LDC )
++                  CALL CGERC( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                        WORK, 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             ELSE
+@@ -866,17 +867,17 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   CALL CGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1, TAU( JJV ),
+      $                          1 )
+-                  TAULOC = CONJG( TAU( JJV ) )
++                  TAULOC( 1 ) = CONJG( TAU( JJV ) )
+ *
+                ELSE
+ *
+-                  CALL CGEBR2D( ICTXT, 'Rowwise', ' ', 1, 1, TAULOC, 1,
+-     $                          MYROW, IVCOL )
+-                  TAULOC = CONJG( TAULOC )
++                  CALL CGEBR2D( ICTXT, 'Rowwise', ' ', 1, 1,
++     $                          TAULOC( 1 ), 1, MYROW, IVCOL )
++                  TAULOC( 1 ) = CONJG( TAULOC( 1 ) )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -895,13 +896,13 @@ SUBROUTINE PCLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                          WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                          ICCOL2 )
+                   IF( MYCOL.EQ.ICCOL1 )
+-     $               CALL CAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $               CALL CAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                           C( IOFFC1 ), 1 )
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL CGERC( MPC2, NQV, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                        1, C( IOFFC2 ), LDC )
++                  CALL CGERC( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                        WORK, 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             END IF
+diff --git a/SRC/pclattrs.f b/SRC/pclattrs.f
+index c744aea..0d12a8b 100644
+--- a/SRC/pclattrs.f
++++ b/SRC/pclattrs.f
+@@ -271,7 +271,8 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+      $                   JINC, JLAST, LDA, LDX, MB, MYCOL, MYROW, NB,
+      $                   NPCOL, NPROW, RSRC
+       REAL               BIGNUM, GROW, REC, SMLNUM, TJJ, TMAX, TSCAL,
+-     $                   XBND, XJ, XMAX
++     $                   XBND, XJ
++      REAL               XMAX( 1 )
+       COMPLEX            CSUMJ, TJJS, USCAL, XJTMP, ZDUM
+ *     ..
+ *     .. External Functions ..
+@@ -391,11 +392,11 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+ *     Compute a bound on the computed solution vector to see if the
+ *     Level 2 PBLAS routine PCTRSV can be used.
+ *
+-      XMAX = ZERO
++      XMAX( 1 ) = ZERO
+       CALL PCAMAX( N, ZDUM, IMAX, X, IX, JX, DESCX, 1 )
+-      XMAX = CABS2( ZDUM )
++      XMAX( 1 ) = CABS2( ZDUM )
+       CALL SGSUM2D( CONTXT, 'Row', ' ', 1, 1, XMAX, 1, -1, -1 )
+-      XBND = XMAX
++      XBND = XMAX( 1 )
+ *
+       IF( NOTRAN ) THEN
+ *
+@@ -590,16 +591,16 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+ *
+ *        Use a Level 1 PBLAS solve, scaling intermediate results.
+ *
+-         IF( XMAX.GT.BIGNUM*HALF ) THEN
++         IF( XMAX( 1 ).GT.BIGNUM*HALF ) THEN
+ *
+ *           Scale X so that its components are less than or equal to
+ *           BIGNUM in absolute value.
+ *
+-            SCALE = ( BIGNUM*HALF ) / XMAX
++            SCALE = ( BIGNUM*HALF ) / XMAX( 1 )
+             CALL PCSSCAL( N, SCALE, X, IX, JX, DESCX, 1 )
+-            XMAX = BIGNUM
++            XMAX( 1 ) = BIGNUM
+          ELSE
+-            XMAX = XMAX*TWO
++            XMAX( 1 ) = XMAX( 1 )*TWO
+          END IF
+ *
+          IF( NOTRAN ) THEN
+@@ -651,7 +652,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                         CALL PCSSCAL( N, REC, X, IX, JX, DESCX, 1 )
+                         XJTMP = XJTMP*REC
+                         SCALE = SCALE*REC
+-                        XMAX = XMAX*REC
++                        XMAX( 1 ) = XMAX( 1 )*REC
+                      END IF
+                   END IF
+ *                 X( J ) = CLADIV( X( J ), TJJS )
+@@ -682,7 +683,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                      CALL PCSSCAL( N, REC, X, IX, JX, DESCX, 1 )
+                      XJTMP = XJTMP*REC
+                      SCALE = SCALE*REC
+-                     XMAX = XMAX*REC
++                     XMAX( 1 ) = XMAX( 1 )*REC
+                   END IF
+ *                 X( J ) = CLADIV( X( J ), TJJS )
+ *                 XJ = CABS1( X( J ) )
+@@ -706,7 +707,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                   XJTMP = CONE
+                   XJ = ONE
+                   SCALE = ZERO
+-                  XMAX = ZERO
++                  XMAX( 1 ) = ZERO
+                END IF
+    90          CONTINUE
+ *
+@@ -715,7 +716,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+ *
+                IF( XJ.GT.ONE ) THEN
+                   REC = ONE / XJ
+-                  IF( CNORM( J ).GT.( BIGNUM-XMAX )*REC ) THEN
++                  IF( CNORM( J ).GT.( BIGNUM-XMAX( 1 ) )*REC ) THEN
+ *
+ *                    Scale x by 1/(2*abs(x(j))).
+ *
+@@ -724,7 +725,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                      XJTMP = XJTMP*REC
+                      SCALE = SCALE*REC
+                   END IF
+-               ELSE IF( XJ*CNORM( J ).GT.( BIGNUM-XMAX ) ) THEN
++               ELSE IF( XJ*CNORM( J ).GT.( BIGNUM-XMAX( 1 ) ) ) THEN
+ *
+ *                 Scale x by 1/2.
+ *
+@@ -743,7 +744,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                      CALL PCAXPY( J-1, ZDUM, A, IA, JA+J-1, DESCA, 1, X,
+      $                            IX, JX, DESCX, 1 )
+                      CALL PCAMAX( J-1, ZDUM, IMAX, X, IX, JX, DESCX, 1 )
+-                     XMAX = CABS1( ZDUM )
++                     XMAX( 1 ) = CABS1( ZDUM )
+                      CALL SGSUM2D( CONTXT, 'Row', ' ', 1, 1, XMAX, 1,
+      $                             -1, -1 )
+                   END IF
+@@ -757,7 +758,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                      CALL PCAXPY( N-J, ZDUM, A, IA+J, JA+J-1, DESCA, 1,
+      $                            X, IX+J, JX, DESCX, 1 )
+                      CALL PCAMAX( N-J, ZDUM, I, X, IX+J, JX, DESCX, 1 )
+-                     XMAX = CABS1( ZDUM )
++                     XMAX( 1 ) = CABS1( ZDUM )
+                      CALL SGSUM2D( CONTXT, 'Row', ' ', 1, 1, XMAX, 1,
+      $                             -1, -1 )
+                   END IF
+@@ -785,7 +786,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                END IF
+                XJ = CABS1( XJTMP )
+                USCAL = CMPLX( TSCAL )
+-               REC = ONE / MAX( XMAX, ONE )
++               REC = ONE / MAX( XMAX( 1 ), ONE )
+                IF( CNORM( J ).GT.( BIGNUM-XJ )*REC ) THEN
+ *
+ *                 If x(j) could overflow, scale x by 1/(2*XMAX).
+@@ -820,7 +821,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                      CALL PCSSCAL( N, REC, X, IX, JX, DESCX, 1 )
+                      XJTMP = XJTMP*REC
+                      SCALE = SCALE*REC
+-                     XMAX = XMAX*REC
++                     XMAX( 1 ) = XMAX( 1 )*REC
+                   END IF
+                END IF
+ *
+@@ -924,7 +925,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                            CALL PCSSCAL( N, REC, X, IX, JX, DESCX, 1 )
+                            XJTMP = XJTMP*REC
+                            SCALE = SCALE*REC
+-                           XMAX = XMAX*REC
++                           XMAX( 1 ) = XMAX( 1 )*REC
+                         END IF
+                      END IF
+ *                    X( J ) = CLADIV( X( J ), TJJS )
+@@ -945,7 +946,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                         CALL PCSSCAL( N, REC, X, IX, JX, DESCX, 1 )
+                         XJTMP = XJTMP*REC
+                         SCALE = SCALE*REC
+-                        XMAX = XMAX*REC
++                        XMAX( 1 ) = XMAX( 1 )*REC
+                      END IF
+ *                    X( J ) = CLADIV( X( J ), TJJS )
+                      XJTMP = CLADIV( XJTMP, TJJS )
+@@ -966,7 +967,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                      END IF
+                      XJTMP = CONE
+                      SCALE = ZERO
+-                     XMAX = ZERO
++                     XMAX( 1 ) = ZERO
+                   END IF
+   110             CONTINUE
+                ELSE
+@@ -981,7 +982,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                      X( IROWX ) = XJTMP
+                   END IF
+                END IF
+-               XMAX = MAX( XMAX, CABS1( XJTMP ) )
++               XMAX( 1 ) = MAX( XMAX( 1 ), CABS1( XJTMP ) )
+   120       CONTINUE
+ *
+          ELSE
+@@ -1004,7 +1005,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                END IF
+                XJ = CABS1( XJTMP )
+                USCAL = TSCAL
+-               REC = ONE / MAX( XMAX, ONE )
++               REC = ONE / MAX( XMAX( 1 ), ONE )
+                IF( CNORM( J ).GT.( BIGNUM-XJ )*REC ) THEN
+ *
+ *                 If x(j) could overflow, scale x by 1/(2*XMAX).
+@@ -1039,7 +1040,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                      CALL PCSSCAL( N, REC, X, IX, JX, DESCX, 1 )
+                      XJTMP = XJTMP*REC
+                      SCALE = SCALE*REC
+-                     XMAX = XMAX*REC
++                     XMAX( 1 ) = XMAX( 1 )*REC
+                   END IF
+                END IF
+ *
+@@ -1145,7 +1146,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                            CALL PCSSCAL( N, REC, X, IX, JX, DESCX, 1 )
+                            XJTMP = XJTMP*REC
+                            SCALE = SCALE*REC
+-                           XMAX = XMAX*REC
++                           XMAX( 1 ) = XMAX( 1 )*REC
+                         END IF
+                      END IF
+ *                    X( J ) = CLADIV( X( J ), TJJS )
+@@ -1164,7 +1165,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                         CALL PCSSCAL( N, REC, X, IX, JX, DESCX, 1 )
+                         XJTMP = XJTMP*REC
+                         SCALE = SCALE*REC
+-                        XMAX = XMAX*REC
++                        XMAX( 1 ) = XMAX( 1 )*REC
+                      END IF
+ *                    X( J ) = CLADIV( X( J ), TJJS )
+                      XJTMP = CLADIV( XJTMP, TJJS )
+@@ -1181,7 +1182,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+      $                  X( IROWX ) = CONE
+                      XJTMP = CONE
+                      SCALE = ZERO
+-                     XMAX = ZERO
++                     XMAX( 1 ) = ZERO
+                   END IF
+   130             CONTINUE
+                ELSE
+@@ -1194,7 +1195,7 @@ SUBROUTINE PCLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                   IF( ( MYROW.EQ.ITMP1X ) .AND. ( MYCOL.EQ.ITMP2X ) )
+      $               X( IROWX ) = XJTMP
+                END IF
+-               XMAX = MAX( XMAX, CABS1( XJTMP ) )
++               XMAX( 1 ) = MAX( XMAX( 1 ), CABS1( XJTMP ) )
+   140       CONTINUE
+          END IF
+          SCALE = SCALE / TSCAL
+diff --git a/SRC/pclawil.f b/SRC/pclawil.f
+index 24a49b9..b33b3b1 100644
+--- a/SRC/pclawil.f
++++ b/SRC/pclawil.f
+@@ -124,11 +124,10 @@ SUBROUTINE PCLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V )
+      $                   MODKM1, MYCOL, MYROW, NPCOL, NPROW, NUM, RIGHT,
+      $                   RSRC, UP
+       REAL               S
+-      COMPLEX            CDUM, H11, H12, H21, H22, H33S, H44S, V1, V2,
+-     $                   V3
++      COMPLEX            CDUM, H22, H33S, H44S, V1, V2
+ *     ..
+ *     .. Local Arrays ..
+-      COMPLEX            BUF( 4 )
++      COMPLEX            BUF( 4 ), V3( 1 ), H11( 1 ), H12( 1 ), H21( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, INFOG2L, CGERV2D, CGESD2D
+@@ -181,18 +180,18 @@ SUBROUTINE PCLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V )
+             IF( NPCOL.GT.1 ) THEN
+                CALL CGERV2D( CONTXT, 1, 1, V3, 1, MYROW, LEFT )
+             ELSE
+-               V3 = A( ( ICOL-2 )*LDA+IROW )
++               V3( 1 ) = A( ( ICOL-2 )*LDA+IROW )
+             END IF
+             IF( NUM.GT.1 ) THEN
+                CALL CGERV2D( CONTXT, 4, 1, BUF, 4, UP, LEFT )
+-               H11 = BUF( 1 )
+-               H21 = BUF( 2 )
+-               H12 = BUF( 3 )
++               H11( 1 ) = BUF( 1 )
++               H21( 1 ) = BUF( 2 )
++               H12( 1 ) = BUF( 3 )
+                H22 = BUF( 4 )
+             ELSE
+-               H11 = A( ( ICOL-3 )*LDA+IROW-2 )
+-               H21 = A( ( ICOL-3 )*LDA+IROW-1 )
+-               H12 = A( ( ICOL-2 )*LDA+IROW-2 )
++               H11( 1 ) = A( ( ICOL-3 )*LDA+IROW-2 )
++               H21( 1 ) = A( ( ICOL-3 )*LDA+IROW-1 )
++               H12( 1 ) = A( ( ICOL-2 )*LDA+IROW-2 )
+                H22 = A( ( ICOL-2 )*LDA+IROW-1 )
+             END IF
+          END IF
+@@ -223,22 +222,22 @@ SUBROUTINE PCLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V )
+             CALL INFOG2L( M+2, M+2, DESCA, NPROW, NPCOL, MYROW, MYCOL,
+      $                    IROW, ICOL, RSRC, JSRC )
+             IF( NUM.GT.1 ) THEN
+-               CALL CGERV2D( CONTXT, 1, 1, H11, 1, UP, LEFT )
++               CALL CGERV2D( CONTXT, 1, 1, H11( 1 ), 1, UP, LEFT )
+             ELSE
+-               H11 = A( ( ICOL-3 )*LDA+IROW-2 )
++               H11( 1 ) = A( ( ICOL-3 )*LDA+IROW-2 )
+             END IF
+             IF( NPROW.GT.1 ) THEN
+                CALL CGERV2D( CONTXT, 1, 1, H12, 1, UP, MYCOL )
+             ELSE
+-               H12 = A( ( ICOL-2 )*LDA+IROW-2 )
++               H12( 1 ) = A( ( ICOL-2 )*LDA+IROW-2 )
+             END IF
+             IF( NPCOL.GT.1 ) THEN
+-               CALL CGERV2D( CONTXT, 1, 1, H21, 1, MYROW, LEFT )
++               CALL CGERV2D( CONTXT, 1, 1, H21( 1 ), 1, MYROW, LEFT )
+             ELSE
+-               H21 = A( ( ICOL-3 )*LDA+IROW-1 )
++               H21( 1 ) = A( ( ICOL-3 )*LDA+IROW-1 )
+             END IF
+             H22 = A( ( ICOL-2 )*LDA+IROW-1 )
+-            V3 = A( ( ICOL-2 )*LDA+IROW )
++            V3( 1 ) = A( ( ICOL-2 )*LDA+IROW )
+          END IF
+       END IF
+       IF( ( MYROW.NE.II ) .OR. ( MYCOL.NE.JJ ) )
+@@ -247,24 +246,24 @@ SUBROUTINE PCLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V )
+       IF( MODKM1.GT.1 ) THEN
+          CALL INFOG2L( M+2, M+2, DESCA, NPROW, NPCOL, MYROW, MYCOL,
+      $                 IROW, ICOL, RSRC, JSRC )
+-         H11 = A( ( ICOL-3 )*LDA+IROW-2 )
+-         H21 = A( ( ICOL-3 )*LDA+IROW-1 )
+-         H12 = A( ( ICOL-2 )*LDA+IROW-2 )
++         H11( 1 ) = A( ( ICOL-3 )*LDA+IROW-2 )
++         H21( 1 ) = A( ( ICOL-3 )*LDA+IROW-1 )
++         H12( 1 ) = A( ( ICOL-2 )*LDA+IROW-2 )
+          H22 = A( ( ICOL-2 )*LDA+IROW-1 )
+-         V3 = A( ( ICOL-2 )*LDA+IROW )
++         V3( 1 ) = A( ( ICOL-2 )*LDA+IROW )
+       END IF
+ *
+-      H44S = H44 - H11
+-      H33S = H33 - H11
+-      V1 = ( H33S*H44S-H43H34 ) / H21 + H12
+-      V2 = H22 - H11 - H33S - H44S
+-      S = CABS1( V1 ) + CABS1( V2 ) + CABS1( V3 )
++      H44S = H44 - H11( 1 )
++      H33S = H33 - H11( 1 )
++      V1 = ( H33S*H44S-H43H34 ) / H21( 1 ) + H12( 1 )
++      V2 = H22 - H11( 1 ) - H33S - H44S
++      S = CABS1( V1 ) + CABS1( V2 ) + CABS1( V3( 1 ) )
+       V1 = V1 / S
+       V2 = V2 / S
+-      V3 = V3 / S
++      V3( 1 ) = V3( 1 ) / S
+       V( 1 ) = V1
+       V( 2 ) = V2
+-      V( 3 ) = V3
++      V( 3 ) = V3( 1 )
+ *
+       RETURN
+ *
+diff --git a/SRC/pctrevc.f b/SRC/pctrevc.f
+index d0a3043..bf6c52b 100644
+--- a/SRC/pctrevc.f
++++ b/SRC/pctrevc.f
+@@ -218,11 +218,12 @@ SUBROUTINE PCTREVC( SIDE, HOWMNY, SELECT, N, T, DESCT, VL, DESCVL,
+      $                   ITMP2, J, K, KI, LDT, LDVL, LDVR, LDW, MB,
+      $                   MYCOL, MYROW, NB, NPCOL, NPROW, RSRC
+       REAL               SELF
+-      REAL               OVFL, REMAXD, SCALE, SMIN, SMLNUM, ULP, UNFL
++      REAL               OVFL, REMAXD, SCALE, SMLNUM, ULP, UNFL
+       COMPLEX            CDUM, REMAXC, SHIFT
+ *     ..
+ *     .. Local Arrays ..
+       INTEGER            DESCW( DLEN_ )
++      REAL               SMIN( 1 )
+ *     ..
+ *     .. External Functions ..
+       LOGICAL            LSAME
+@@ -355,13 +356,13 @@ SUBROUTINE PCTREVC( SIDE, HOWMNY, SELECT, N, T, DESCT, VL, DESCVL,
+      $            GO TO 70
+             END IF
+ *
+-            SMIN = ZERO
++            SMIN( 1 ) = ZERO
+             SHIFT = CZERO
+             CALL INFOG2L( KI, KI, DESCT, NPROW, NPCOL, MYROW, MYCOL,
+      $                    IROW, ICOL, ITMP1, ITMP2 )
+             IF( ( MYROW.EQ.ITMP1 ) .AND. ( MYCOL.EQ.ITMP2 ) ) THEN
+                SHIFT = T( ( ICOL-1 )*LDT+IROW )
+-               SMIN = MAX( ULP*( CABS1( SHIFT ) ), SMLNUM )
++               SMIN( 1 ) = MAX( ULP*( CABS1( SHIFT ) ), SMLNUM )
+             END IF
+             CALL SGSUM2D( CONTXT, 'ALL', ' ', 1, 1, SMIN, 1, -1, -1 )
+             CALL CGSUM2D( CONTXT, 'ALL', ' ', 1, 1, SHIFT, 1, -1, -1 )
+@@ -396,8 +397,9 @@ SUBROUTINE PCTREVC( SIDE, HOWMNY, SELECT, N, T, DESCT, VL, DESCVL,
+                IF( ( MYROW.EQ.ITMP1 ) .AND. ( MYCOL.EQ.ITMP2 ) ) THEN
+                   T( ( ICOL-1 )*LDT+IROW ) = T( ( ICOL-1 )*LDT+IROW ) -
+      $               SHIFT
+-                  IF( CABS1( T( ( ICOL-1 )*LDT+IROW ) ).LT.SMIN ) THEN
+-                     T( ( ICOL-1 )*LDT+IROW ) = CMPLX( SMIN )
++                  IF( CABS1( T( ( ICOL-1 )*LDT+IROW ) ).LT.SMIN( 1 ) )
++     $            THEN
++                     T( ( ICOL-1 )*LDT+IROW ) = CMPLX( SMIN( 1 ) )
+                   END IF
+                END IF
+    50       CONTINUE
+@@ -467,13 +469,13 @@ SUBROUTINE PCTREVC( SIDE, HOWMNY, SELECT, N, T, DESCT, VL, DESCVL,
+      $            GO TO 110
+             END IF
+ *
+-            SMIN = ZERO
++            SMIN( 1 ) = ZERO
+             SHIFT = CZERO
+             CALL INFOG2L( KI, KI, DESCT, NPROW, NPCOL, MYROW, MYCOL,
+      $                    IROW, ICOL, ITMP1, ITMP2 )
+             IF( ( MYROW.EQ.ITMP1 ) .AND. ( MYCOL.EQ.ITMP2 ) ) THEN
+                SHIFT = T( ( ICOL-1 )*LDT+IROW )
+-               SMIN = MAX( ULP*( CABS1( SHIFT ) ), SMLNUM )
++               SMIN( 1 ) = MAX( ULP*( CABS1( SHIFT ) ), SMLNUM )
+             END IF
+             CALL SGSUM2D( CONTXT, 'ALL', ' ', 1, 1, SMIN, 1, -1, -1 )
+             CALL CGSUM2D( CONTXT, 'ALL', ' ', 1, 1, SHIFT, 1, -1, -1 )
+@@ -507,8 +509,8 @@ SUBROUTINE PCTREVC( SIDE, HOWMNY, SELECT, N, T, DESCT, VL, DESCVL,
+                IF( ( MYROW.EQ.ITMP1 ) .AND. ( MYCOL.EQ.ITMP2 ) ) THEN
+                   T( ( ICOL-1 )*LDT+IROW ) = T( ( ICOL-1 )*LDT+IROW ) -
+      $               SHIFT
+-                  IF( CABS1( T( ( ICOL-1 )*LDT+IROW ) ).LT.SMIN )
+-     $               T( ( ICOL-1 )*LDT+IROW ) = CMPLX( SMIN )
++                  IF( CABS1( T( ( ICOL-1 )*LDT+IROW ) ).LT.SMIN( 1 ) )
++     $               T( ( ICOL-1 )*LDT+IROW ) = CMPLX( SMIN( 1 ) )
+                END IF
+    90       CONTINUE
+ *
+diff --git a/SRC/pdhseqr.f b/SRC/pdhseqr.f
+index ffc3652..6e0f751 100644
+--- a/SRC/pdhseqr.f
++++ b/SRC/pdhseqr.f
+@@ -259,11 +259,12 @@ SUBROUTINE PDHSEQR( JOB, COMPZ, N, ILO, IHI, H, DESCH, WR, WI, Z,
+      $                   HRSRC4, HCSRC4, LIWKOPT
+       LOGICAL            INITZ, LQUERY, WANTT, WANTZ, PAIR, BORDER
+       DOUBLE PRECISION   TMP1, TMP2, TMP3, TMP4, DUM1, DUM2, DUM3,
+-     $                   DUM4, ELEM1, ELEM2, ELEM3, ELEM4,
++     $                   DUM4, ELEM1, ELEM4,
+      $                   CS, SN, ELEM5, TMP, LWKOPT
+ *     ..
+ *     .. Local Arrays ..
+       INTEGER            DESCH2( DLEN_ )
++      DOUBLE PRECISION   ELEM2( 1 ), ELEM3( 1 )
+ *     ..
+ *     .. External Functions ..
+       INTEGER            PILAENVX, NUMROC, ICEIL
+@@ -566,28 +567,28 @@ SUBROUTINE PDHSEQR( JOB, COMPZ, N, ILO, IHI, H, DESCH, WR, WI, Z,
+                   IF( MYROW.EQ.HRSRC1 .AND. MYCOL.EQ.HCSRC1 ) THEN
+                      ELEM1 = H((JLOC1-1)*LLDH+ILOC1)
+                      IF( K.LT.N ) THEN
+-                        ELEM3 = H((JLOC1-1)*LLDH+ILOC1+1)
++                        ELEM3( 1 ) = H((JLOC1-1)*LLDH+ILOC1+1)
+                      ELSE
+-                        ELEM3 = ZERO
++                        ELEM3( 1 ) = ZERO
+                      END IF
+-                     IF( ELEM3.NE.ZERO ) THEN
+-                        ELEM2 = H((JLOC1)*LLDH+ILOC1)
++                     IF( ELEM3( 1 ).NE.ZERO ) THEN
++                        ELEM2( 1 ) = H((JLOC1)*LLDH+ILOC1)
+                         ELEM4 = H((JLOC1)*LLDH+ILOC1+1)
+-                        CALL DLANV2( ELEM1, ELEM2, ELEM3, ELEM4,
+-     $                       WR( K ), WI( K ), WR( K+1 ), WI( K+1 ),
+-     $                       SN, CS )
++                        CALL DLANV2( ELEM1, ELEM2( 1 ), ELEM3( 1 ),
++     $                       ELEM4, WR( K ), WI( K ), WR( K+1 ),
++     $                       WI( K+1 ), SN, CS )
+                         PAIR = .TRUE.
+                      ELSE
+                         IF( K.GT.1 ) THEN
+                            TMP = H((JLOC1-2)*LLDH+ILOC1)
+                            IF( TMP.NE.ZERO ) THEN
+                               ELEM1 = H((JLOC1-2)*LLDH+ILOC1-1)
+-                              ELEM2 = H((JLOC1-1)*LLDH+ILOC1-1)
+-                              ELEM3 = H((JLOC1-2)*LLDH+ILOC1)
++                              ELEM2( 1 ) = H((JLOC1-1)*LLDH+ILOC1-1)
++                              ELEM3( 1 ) = H((JLOC1-2)*LLDH+ILOC1)
+                               ELEM4 = H((JLOC1-1)*LLDH+ILOC1)
+-                              CALL DLANV2( ELEM1, ELEM2, ELEM3,
+-     $                             ELEM4, WR( K-1 ), WI( K-1 ),
+-     $                             WR( K ), WI( K ), SN, CS )
++                              CALL DLANV2( ELEM1, ELEM2( 1 ),
++     $                             ELEM3( 1 ), ELEM4, WR( K-1 ),
++     $                             WI( K-1 ), WR( K ), WI( K ), SN, CS )
+                            ELSE
+                               WR( K ) = ELEM1
+                            END IF
+@@ -620,12 +621,12 @@ SUBROUTINE PDHSEQR( JOB, COMPZ, N, ILO, IHI, H, DESCH, WR, WI, Z,
+             CALL INFOG2L( K+1, K+1, DESCH, NPROW, NPCOL, MYROW, MYCOL,
+      $           ILOC4, JLOC4, HRSRC4, HCSRC4 )
+             IF( MYROW.EQ.HRSRC2 .AND. MYCOL.EQ.HCSRC2 ) THEN
+-               ELEM2 = H((JLOC2-1)*LLDH+ILOC2)
++               ELEM2( 1 ) = H((JLOC2-1)*LLDH+ILOC2)
+                IF( HRSRC1.NE.HRSRC2 .OR. HCSRC1.NE.HCSRC2 )
+      $            CALL DGESD2D( ICTXT, 1, 1, ELEM2, 1, HRSRC1, HCSRC1)
+             END IF
+             IF( MYROW.EQ.HRSRC3 .AND. MYCOL.EQ.HCSRC3 ) THEN
+-               ELEM3 = H((JLOC3-1)*LLDH+ILOC3)
++               ELEM3( 1 ) = H((JLOC3-1)*LLDH+ILOC3)
+                IF( HRSRC1.NE.HRSRC3 .OR. HCSRC1.NE.HCSRC3 )
+      $            CALL DGESD2D( ICTXT, 1, 1, ELEM3, 1, HRSRC1, HCSRC1)
+             END IF
+@@ -651,8 +652,9 @@ SUBROUTINE PDHSEQR( JOB, COMPZ, N, ILO, IHI, H, DESCH, WR, WI, Z,
+                ELEM5 = WORK(2)
+                IF( ELEM5.EQ.ZERO ) THEN
+                   IF( WR( K ).EQ.ZERO .AND. WI( K ).EQ.ZERO ) THEN
+-                     CALL DLANV2( ELEM1, ELEM2, ELEM3, ELEM4, WR( K ),
+-     $                    WI( K ), WR( K+1 ), WI( K+1 ), SN, CS )
++                     CALL DLANV2( ELEM1, ELEM2( 1 ), ELEM3( 1 ), ELEM4,
++     $                    WR( K ), WI( K ), WR( K+1 ), WI( K+1 ), SN,
++     $                    CS )
+                   ELSEIF( WR( K+1 ).EQ.ZERO .AND. WI( K+1 ).EQ.ZERO )
+      $                 THEN
+                      WR( K+1 ) = ELEM4
+diff --git a/SRC/pdlacon.f b/SRC/pdlacon.f
+index b625d97..74b9eab 100644
+--- a/SRC/pdlacon.f
++++ b/SRC/pdlacon.f
+@@ -160,10 +160,10 @@ SUBROUTINE PDLACON( N, V, IV, JV, DESCV, X, IX, JX, DESCX, ISGN,
+       INTEGER            I, ICTXT, IFLAG, IIVX, IMAXROW, IOFFVX, IROFF,
+      $                   ITER, IVXCOL, IVXROW, J, JLAST, JJVX, JUMP,
+      $                   K, MYCOL, MYROW, NP, NPCOL, NPROW
+-      DOUBLE PRECISION   ALTSGN, ESTOLD, JLMAX, TEMP, XMAX
++      DOUBLE PRECISION   ALTSGN, ESTOLD, JLMAX, XMAX
+ *     ..
+ *     .. Local Arrays ..
+-      DOUBLE PRECISION   WORK( 2 )
++      DOUBLE PRECISION   ESTWORK( 1 ), TEMP( 1 ), WORK( 2 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, DCOPY, DGEBR2D, DGEBS2D,
+@@ -184,6 +184,7 @@ SUBROUTINE PDLACON( N, V, IV, JV, DESCV, X, IX, JX, DESCX, ISGN,
+ *
+ *     Get grid parameters.
+ *
++      ESTWORK( 1 ) = EST
+       ICTXT = DESCX( CTXT_ )
+       CALL BLACS_GRIDINFO( ICTXT, NPROW, NPCOL, MYROW, MYCOL )
+ *
+@@ -215,21 +216,21 @@ SUBROUTINE PDLACON( N, V, IV, JV, DESCV, X, IX, JX, DESCX, ISGN,
+       IF( N.EQ.1 ) THEN
+          IF( MYROW.EQ.IVXROW ) THEN
+             V( IOFFVX ) = X( IOFFVX )
+-            EST = ABS( V( IOFFVX ) )
+-            CALL DGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1, EST, 1 )
++            ESTWORK( 1 ) = ABS( V( IOFFVX ) )
++            CALL DGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1, ESTWORK, 1 )
+          ELSE
+-            CALL DGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, EST, 1,
++            CALL DGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, ESTWORK, 1,
+      $                    IVXROW, MYCOL )
+          END IF
+ *        ... QUIT
+          GO TO 150
+       END IF
+-      CALL PDASUM( N, EST, X, IX, JX, DESCX, 1 )
++      CALL PDASUM( N, ESTWORK( 1 ), X, IX, JX, DESCX, 1 )
+       IF( DESCX( M_ ).EQ.1 .AND. N.EQ.1 ) THEN
+          IF( MYROW.EQ.IVXROW ) THEN
+-            CALL DGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1, EST, 1 )
++            CALL DGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1, ESTWORK, 1 )
+          ELSE
+-            CALL DGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, EST, 1,
++            CALL DGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, ESTWORK, 1,
+      $                    IVXROW, MYCOL )
+          END IF
+       END IF
+@@ -281,13 +282,13 @@ SUBROUTINE PDLACON( N, V, IV, JV, DESCV, X, IX, JX, DESCX, ISGN,
+ *
+    70 CONTINUE
+       CALL DCOPY( NP, X( IOFFVX ), 1, V( IOFFVX ), 1 )
+-      ESTOLD = EST
+-      CALL PDASUM( N, EST, V, IV, JV, DESCV, 1 )
++      ESTOLD = ESTWORK( 1 )
++      CALL PDASUM( N, ESTWORK( 1 ), V, IV, JV, DESCV, 1 )
+       IF( DESCV( M_ ).EQ.1 .AND. N.EQ.1 ) THEN
+          IF( MYROW.EQ.IVXROW ) THEN
+-            CALL DGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1, EST, 1 )
++            CALL DGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1, ESTWORK, 1 )
+          ELSE
+-            CALL DGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, EST, 1,
++            CALL DGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, ESTWORK, 1,
+      $                    IVXROW, MYCOL )
+          END IF
+       END IF
+@@ -305,7 +306,7 @@ SUBROUTINE PDLACON( N, V, IV, JV, DESCV, X, IX, JX, DESCX, ISGN,
+ *     REPEATED SIGN VECTOR DETECTED, HENCE ALGORITHM HAS CONVERGED.
+ *     ALONG WITH IT, TEST FOR CYCLING.
+ *
+-      IF( IFLAG.EQ.0 .OR. EST.LE.ESTOLD )
++      IF( IFLAG.EQ.0 .OR. ESTWORK( 1 ).LE.ESTOLD )
+      $   GO TO 120
+ *
+       DO 100 I = IOFFVX, IOFFVX+NP-1
+@@ -361,7 +362,7 @@ SUBROUTINE PDLACON( N, V, IV, JV, DESCV, X, IX, JX, DESCX, ISGN,
+ *     X HAS BEEN OVERWRITTEN BY A*X
+ *
+   140 CONTINUE
+-      CALL PDASUM( N, TEMP, X, IX, JX, DESCX, 1 )
++      CALL PDASUM( N, TEMP( 1 ), X, IX, JX, DESCX, 1 )
+       IF( DESCX( M_ ).EQ.1 .AND. N.EQ.1 ) THEN
+          IF( MYROW.EQ.IVXROW ) THEN
+             CALL DGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1, TEMP, 1 )
+@@ -370,15 +371,16 @@ SUBROUTINE PDLACON( N, V, IV, JV, DESCV, X, IX, JX, DESCX, ISGN,
+      $                    IVXROW, MYCOL )
+          END IF
+       END IF
+-      TEMP = TWO*( TEMP / DBLE( 3*N ) )
+-      IF( TEMP.GT.EST ) THEN
++      TEMP( 1 ) = TWO*( TEMP( 1 ) / DBLE( 3*N ) )
++      IF( TEMP( 1 ).GT.ESTWORK( 1 ) ) THEN
+          CALL DCOPY( NP, X( IOFFVX ), 1, V( IOFFVX ), 1 )
+-         EST = TEMP
++         ESTWORK( 1 ) = TEMP( 1 )
+       END IF
+ *
+   150 CONTINUE
+       KASE = 0
+ *
++      EST = ESTWORK( 1 )
+       RETURN
+ *
+ *     End of PDLACON
+diff --git a/SRC/pdlarf.f b/SRC/pdlarf.f
+index 29da1ac..41368d6 100644
+--- a/SRC/pdlarf.f
++++ b/SRC/pdlarf.f
+@@ -241,7 +241,7 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+      $                   IOFFV, IPW, IROFF, IVCOL, IVROW, JJC, JJV, LDC,
+      $                   LDV, MYCOL, MYROW, MP, NCC, NCV, NPCOL, NPROW,
+      $                   NQ, RDEST
+-      DOUBLE PRECISION   TAULOC
++      DOUBLE PRECISION   TAULOC( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, DCOPY, DGEBR2D, DGEBS2D,
+@@ -335,7 +335,7 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                      CALL DGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                             TAU( IIV ), 1 )
+-                     TAULOC = TAU( IIV )
++                     TAULOC( 1 ) = TAU( IIV )
+ *
+                   ELSE
+ *
+@@ -344,7 +344,7 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C )' * v
+ *
+@@ -362,8 +362,8 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                    sub( C ) := sub( C ) - v * w'
+ *
+-                     CALL DGER( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                          1, C( IOFFC ), LDC )
++                     CALL DGER( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                          WORK( IPW ), 1, C( IOFFC ), LDC )
+                   END IF
+ *
+                END IF
+@@ -378,9 +378,9 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   IF( MYCOL.EQ.ICCOL ) THEN
+ *
+-                     TAULOC = TAU( JJV )
++                     TAULOC( 1 ) = TAU( JJV )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -397,8 +397,8 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+-                        CALL DGER( MP, NQ, -TAULOC, V( IOFFV ), 1, WORK,
+-     $                             1, C( IOFFC ), LDC )
++                        CALL DGER( MP, NQ, -TAULOC( 1 ), V( IOFFV ), 1,
++     $                             WORK, 1, C( IOFFC ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -420,9 +420,9 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                      IPW = MP+1
+                      CALL DGERV2D( ICTXT, IPW, 1, WORK, IPW, MYROW,
+      $                             IVCOL )
+-                     TAULOC = WORK( IPW )
++                     TAULOC( 1 ) = WORK( IPW )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -440,7 +440,7 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+-                        CALL DGER( MP, NQ, -TAULOC, WORK, 1,
++                        CALL DGER( MP, NQ, -TAULOC( 1 ), WORK, 1,
+      $                             WORK( IPW ), 1, C( IOFFC ), LDC )
+                      END IF
+ *
+@@ -470,7 +470,7 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   CALL DGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                          TAU( IIV ), 1 )
+-                  TAULOC = TAU( IIV )
++                  TAULOC( 1 ) = TAU( IIV )
+ *
+                ELSE
+ *
+@@ -479,7 +479,7 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -499,8 +499,8 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( IOFFC.GT.0 )
+-     $               CALL DGER( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                          1, C( IOFFC ), LDC )
++     $               CALL DGER( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                          WORK( IPW ), 1, C( IOFFC ), LDC )
+                END IF
+ *
+             ELSE
+@@ -515,18 +515,18 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                   WORK(IPW) = TAU( JJV )
+                   CALL DGEBS2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = TAU( JJV )
++                  TAULOC( 1 ) = TAU( JJV )
+ *
+                ELSE
+ *
+                   IPW = MP+1
+                   CALL DGEBR2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1, WORK,
+      $                          IPW, MYROW, IVCOL )
+-                  TAULOC = WORK( IPW )
++                  TAULOC( 1 ) = WORK( IPW )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -546,8 +546,8 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( IOFFC.GT.0 )
+-     $               CALL DGER( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                          1, C( IOFFC ), LDC )
++     $               CALL DGER( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                          WORK( IPW ), 1, C( IOFFC ), LDC )
+                END IF
+ *
+             END IF
+@@ -576,9 +576,9 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   IF( MYROW.EQ.ICROW ) THEN
+ *
+-                     TAULOC = TAU( IIV )
++                     TAULOC( 1 ) = TAU( IIV )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -596,7 +596,7 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+                         IF( IOFFV.GT.0 .AND. IOFFC.GT.0 )
+-     $                     CALL DGER( MP, NQ, -TAULOC, WORK, 1,
++     $                     CALL DGER( MP, NQ, -TAULOC( 1 ), WORK, 1,
+      $                                V( IOFFV ), LDV, C( IOFFC ), LDC )
+                      END IF
+ *
+@@ -619,9 +619,9 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                      IPW = NQ+1
+                      CALL DGERV2D( ICTXT, IPW, 1, WORK, IPW, IVROW,
+      $                             MYCOL )
+-                     TAULOC = WORK( IPW )
++                     TAULOC( 1 ) = WORK( IPW )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -639,7 +639,7 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+-                        CALL DGER( MP, NQ, -TAULOC, WORK( IPW ), 1,
++                        CALL DGER( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                             WORK, 1, C( IOFFC ), LDC )
+                      END IF
+ *
+@@ -665,7 +665,7 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                      CALL DGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1,
+      $                             TAU( JJV ), 1 )
+-                     TAULOC = TAU( JJV )
++                     TAULOC( 1 ) = TAU( JJV )
+ *
+                   ELSE
+ *
+@@ -674,7 +674,7 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C ) * v
+ *
+@@ -692,8 +692,8 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                    sub( C ) := sub( C ) - w * v'
+ *
+-                     CALL DGER( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                          1, C( IOFFC ), LDC )
++                     CALL DGER( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                          WORK, 1, C( IOFFC ), LDC )
+                   END IF
+ *
+                END IF
+@@ -718,18 +718,18 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                   WORK(IPW) = TAU( IIV )
+                   CALL DGEBS2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = TAU( IIV )
++                  TAULOC( 1 ) = TAU( IIV )
+ *
+                ELSE
+ *
+                   IPW = NQ+1
+                   CALL DGEBR2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW, IVROW, MYCOL )
+-                  TAULOC = WORK( IPW )
++                  TAULOC( 1 ) = WORK( IPW )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -748,8 +748,8 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+                   IF( IOFFC.GT.0 )
+-     $               CALL DGER( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                          1, C( IOFFC ), LDC )
++     $               CALL DGER( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                          WORK, 1, C( IOFFC ), LDC )
+                END IF
+ *
+             ELSE
+@@ -768,7 +768,7 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   CALL DGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1, TAU( JJV ),
+      $                          1 )
+-                  TAULOC = TAU( JJV )
++                  TAULOC( 1 ) = TAU( JJV )
+ *
+                ELSE
+ *
+@@ -777,7 +777,7 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -795,8 +795,8 @@ SUBROUTINE PDLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL DGER( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK, 1,
+-     $                       C( IOFFC ), LDC )
++                  CALL DGER( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1, WORK,
++     $                       1, C( IOFFC ), LDC )
+                END IF
+ *
+             END IF
+diff --git a/SRC/pdlarz.f b/SRC/pdlarz.f
+index b91282c..f45c137 100644
+--- a/SRC/pdlarz.f
++++ b/SRC/pdlarz.f
+@@ -250,7 +250,7 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                   IVCOL, IVROW, JJC1, JJC2, JJV, LDC, LDV, MPC2,
+      $                   MPV, MYCOL, MYROW, NCC, NCV, NPCOL, NPROW,
+      $                   NQC2, NQV, RDEST
+-      DOUBLE PRECISION   TAULOC
++      DOUBLE PRECISION   TAULOC( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, DAXPY, DCOPY, DGEBR2D,
+@@ -369,7 +369,7 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                      CALL DGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                             TAU( IIV ), 1 )
+-                     TAULOC = TAU( IIV )
++                     TAULOC( 1 ) = TAU( IIV )
+ *
+                   ELSE
+ *
+@@ -378,7 +378,7 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C )' * v
+ *
+@@ -401,9 +401,9 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                    sub( C ) := sub( C ) - v * w'
+ *
+                      IF( MYROW.EQ.ICROW1 )
+-     $                  CALL DAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $                  CALL DAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                              MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                     CALL DGER( MPV, NQC2, -TAULOC, WORK, 1,
++                     CALL DGER( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
+      $                          WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                   END IF
+ *
+@@ -419,9 +419,9 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   IF( MYCOL.EQ.ICCOL2 ) THEN
+ *
+-                     TAULOC = TAU( JJV )
++                     TAULOC( 1 ) = TAU( JJV )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -444,11 +444,11 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+                         IF( MYROW.EQ.ICROW1 )
+-     $                     CALL DAXPY( NQC2, -TAULOC, WORK,
++     $                     CALL DAXPY( NQC2, -TAULOC( 1 ), WORK,
+      $                                 MAX( 1, NQC2 ), C( IOFFC1 ),
+      $                                 LDC )
+-                        CALL DGER( MPV, NQC2, -TAULOC, V( IOFFV ), 1,
+-     $                             WORK, 1, C( IOFFC2 ), LDC )
++                        CALL DGER( MPV, NQC2, -TAULOC( 1 ), V( IOFFV ),
++     $                             1, WORK, 1, C( IOFFC2 ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -470,9 +470,9 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                      IPW = MPV+1
+                      CALL DGERV2D( ICTXT, IPW, 1, WORK, IPW, MYROW,
+      $                             IVCOL )
+-                     TAULOC = WORK( IPW )
++                     TAULOC( 1 ) = WORK( IPW )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -495,10 +495,10 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+                         IF( MYROW.EQ.ICROW1 )
+-     $                     CALL DAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $                     CALL DAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                                 MAX( 1, NQC2 ), C( IOFFC1 ),
+      $                                 LDC )
+-                        CALL DGER( MPV, NQC2, -TAULOC, WORK, 1,
++                        CALL DGER( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
+      $                             WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                      END IF
+ *
+@@ -529,7 +529,7 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   CALL DGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                          TAU( IIV ), 1 )
+-                  TAULOC = TAU( IIV )
++                  TAULOC( 1 ) = TAU( IIV )
+ *
+                ELSE
+ *
+@@ -538,7 +538,7 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -561,10 +561,10 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( MYROW.EQ.ICROW1 )
+-     $               CALL DAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $               CALL DAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                           MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                  CALL DGER( MPV, NQC2, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                       1, C( IOFFC2 ), LDC )
++                  CALL DGER( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
++     $                       WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             ELSE
+@@ -579,18 +579,18 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                   WORK( IPW ) = TAU( JJV )
+                   CALL DGEBS2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = TAU( JJV )
++                  TAULOC( 1 ) = TAU( JJV )
+ *
+                ELSE
+ *
+                   IPW = MPV+1
+                   CALL DGEBR2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1, WORK,
+      $                          IPW, MYROW, IVCOL )
+-                  TAULOC = WORK( IPW )
++                  TAULOC( 1 ) = WORK( IPW )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -613,10 +613,10 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( MYROW.EQ.ICROW1 )
+-     $               CALL DAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $               CALL DAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                           MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                  CALL DGER( MPV, NQC2, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                       1, C( IOFFC2 ), LDC )
++                  CALL DGER( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
++     $                       WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             END IF
+@@ -645,9 +645,9 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   IF( MYROW.EQ.ICROW2 ) THEN
+ *
+-                     TAULOC = TAU( IIV )
++                     TAULOC( 1 ) = TAU( IIV )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -668,13 +668,13 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                               ICCOL2 )
+ *
+                         IF( MYCOL.EQ.ICCOL1 )
+-     $                     CALL DAXPY( MPC2, -TAULOC, WORK, 1,
++     $                     CALL DAXPY( MPC2, -TAULOC( 1 ), WORK, 1,
+      $                                 C( IOFFC1 ), 1 )
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+                         IF( MPC2.GT.0 .AND. NQV.GT.0 )
+-     $                     CALL DGER( MPC2, NQV, -TAULOC, WORK, 1,
++     $                     CALL DGER( MPC2, NQV, -TAULOC( 1 ), WORK, 1,
+      $                                V( IOFFV ), LDV, C( IOFFC2 ),
+      $                                LDC )
+                      END IF
+@@ -698,9 +698,9 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                      IPW = NQV+1
+                      CALL DGERV2D( ICTXT, IPW, 1, WORK, IPW, IVROW,
+      $                             MYCOL )
+-                     TAULOC = WORK( IPW )
++                     TAULOC( 1 ) = WORK( IPW )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -719,13 +719,13 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                                WORK( IPW ), MAX( 1, MPC2 ),
+      $                                RDEST, ICCOL2 )
+                         IF( MYCOL.EQ.ICCOL1 )
+-     $                     CALL DAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
+-     $                                 C( IOFFC1 ), 1 )
++     $                     CALL DAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ),
++     $                                 1, C( IOFFC1 ), 1 )
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+-                        CALL DGER( MPC2, NQV, -TAULOC, WORK( IPW ), 1,
+-     $                             WORK, 1, C( IOFFC2 ), LDC )
++                        CALL DGER( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ),
++     $                             1, WORK, 1, C( IOFFC2 ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -750,7 +750,7 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                      CALL DGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1,
+      $                             TAU( JJV ), 1 )
+-                     TAULOC = TAU( JJV )
++                     TAULOC( 1 ) = TAU( JJV )
+ *
+                   ELSE
+ *
+@@ -759,7 +759,7 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C ) * v
+ *
+@@ -778,12 +778,12 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                             WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                             ICCOL2 )
+                      IF( MYCOL.EQ.ICCOL1 )
+-     $                  CALL DAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $                  CALL DAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                              C( IOFFC1 ), 1 )
+ *
+ *                    sub( C ) := sub( C ) - w * v'
+ *
+-                     CALL DGER( MPC2, NQV, -TAULOC, WORK( IPW ), 1,
++                     CALL DGER( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                          WORK, 1, C( IOFFC2 ), LDC )
+                   END IF
+ *
+@@ -808,18 +808,18 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                   WORK( IPW ) = TAU( IIV )
+                   CALL DGEBS2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = TAU( IIV )
++                  TAULOC( 1 ) = TAU( IIV )
+ *
+                ELSE
+ *
+                   IPW = NQV+1
+                   CALL DGEBR2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW, IVROW, MYCOL )
+-                  TAULOC = WORK( IPW )
++                  TAULOC( 1 ) = WORK( IPW )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -839,13 +839,13 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                          WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                          ICCOL2 )
+                   IF( MYCOL.EQ.ICCOL1 )
+-     $               CALL DAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $               CALL DAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                           C( IOFFC1 ), 1 )
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL DGER( MPC2, NQV, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                       1, C( IOFFC2 ), LDC )
++                  CALL DGER( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                       WORK, 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             ELSE
+@@ -864,7 +864,7 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   CALL DGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1, TAU( JJV ),
+      $                          1 )
+-                  TAULOC = TAU( JJV )
++                  TAULOC( 1 ) = TAU( JJV )
+ *
+                ELSE
+ *
+@@ -873,7 +873,7 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -892,13 +892,13 @@ SUBROUTINE PDLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                          WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                          ICCOL2 )
+                   IF( MYCOL.EQ.ICCOL1 )
+-     $               CALL DAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $               CALL DAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                           C( IOFFC1 ), 1 )
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL DGER( MPC2, NQV, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                       1, C( IOFFC2 ), LDC )
++                  CALL DGER( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                       WORK, 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             END IF
+diff --git a/SRC/pdlawil.f b/SRC/pdlawil.f
+index 90a4d74..e8bc3a0 100644
+--- a/SRC/pdlawil.f
++++ b/SRC/pdlawil.f
+@@ -120,10 +120,10 @@ SUBROUTINE PDLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V )
+       INTEGER            CONTXT, DOWN, HBL, ICOL, IROW, JSRC, LDA, LEFT,
+      $                   MODKM1, MYCOL, MYROW, NPCOL, NPROW, NUM, RIGHT,
+      $                   RSRC, UP
+-      DOUBLE PRECISION   H11, H12, H21, H22, H33S, H44S, S, V1, V2, V3
++      DOUBLE PRECISION   H22, H33S, H44S, S, V1, V2
+ *     ..
+ *     .. Local Arrays ..
+-      DOUBLE PRECISION   BUF( 4 )
++      DOUBLE PRECISION   BUF( 4 ), H11( 1 ), H12( 1 ), H21( 1 ), V3( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, DGERV2D, DGESD2D, INFOG2L
+@@ -170,18 +170,18 @@ SUBROUTINE PDLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V )
+             IF( NPCOL.GT.1 ) THEN
+                CALL DGERV2D( CONTXT, 1, 1, V3, 1, MYROW, LEFT )
+             ELSE
+-               V3 = A( ( ICOL-2 )*LDA+IROW )
++               V3( 1 ) = A( ( ICOL-2 )*LDA+IROW )
+             END IF
+             IF( NUM.GT.1 ) THEN
+                CALL DGERV2D( CONTXT, 4, 1, BUF, 4, UP, LEFT )
+-               H11 = BUF( 1 )
+-               H21 = BUF( 2 )
+-               H12 = BUF( 3 )
++               H11( 1 ) = BUF( 1 )
++               H21( 1 ) = BUF( 2 )
++               H12( 1 ) = BUF( 3 )
+                H22 = BUF( 4 )
+             ELSE
+-               H11 = A( ( ICOL-3 )*LDA+IROW-2 )
+-               H21 = A( ( ICOL-3 )*LDA+IROW-1 )
+-               H12 = A( ( ICOL-2 )*LDA+IROW-2 )
++               H11( 1 ) = A( ( ICOL-3 )*LDA+IROW-2 )
++               H21( 1 ) = A( ( ICOL-3 )*LDA+IROW-1 )
++               H12( 1 ) = A( ( ICOL-2 )*LDA+IROW-2 )
+                H22 = A( ( ICOL-2 )*LDA+IROW-1 )
+             END IF
+          END IF
+@@ -214,20 +214,20 @@ SUBROUTINE PDLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V )
+             IF( NUM.GT.1 ) THEN
+                CALL DGERV2D( CONTXT, 1, 1, H11, 1, UP, LEFT )
+             ELSE
+-               H11 = A( ( ICOL-3 )*LDA+IROW-2 )
++               H11( 1 ) = A( ( ICOL-3 )*LDA+IROW-2 )
+             END IF
+             IF( NPROW.GT.1 ) THEN
+                CALL DGERV2D( CONTXT, 1, 1, H12, 1, UP, MYCOL )
+             ELSE
+-               H12 = A( ( ICOL-2 )*LDA+IROW-2 )
++               H12( 1 ) = A( ( ICOL-2 )*LDA+IROW-2 )
+             END IF
+             IF( NPCOL.GT.1 ) THEN
+                CALL DGERV2D( CONTXT, 1, 1, H21, 1, MYROW, LEFT )
+             ELSE
+-               H21 = A( ( ICOL-3 )*LDA+IROW-1 )
++               H21( 1 ) = A( ( ICOL-3 )*LDA+IROW-1 )
+             END IF
+             H22 = A( ( ICOL-2 )*LDA+IROW-1 )
+-            V3 = A( ( ICOL-2 )*LDA+IROW )
++            V3( 1 ) = A( ( ICOL-2 )*LDA+IROW )
+          END IF
+       END IF
+       IF( ( MYROW.NE.II ) .OR. ( MYCOL.NE.JJ ) )
+@@ -236,24 +236,24 @@ SUBROUTINE PDLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V )
+       IF( MODKM1.GT.1 ) THEN
+          CALL INFOG2L( M+2, M+2, DESCA, NPROW, NPCOL, MYROW, MYCOL,
+      $                 IROW, ICOL, RSRC, JSRC )
+-         H11 = A( ( ICOL-3 )*LDA+IROW-2 )
+-         H21 = A( ( ICOL-3 )*LDA+IROW-1 )
+-         H12 = A( ( ICOL-2 )*LDA+IROW-2 )
++         H11( 1 ) = A( ( ICOL-3 )*LDA+IROW-2 )
++         H21( 1 ) = A( ( ICOL-3 )*LDA+IROW-1 )
++         H12( 1 ) = A( ( ICOL-2 )*LDA+IROW-2 )
+          H22 = A( ( ICOL-2 )*LDA+IROW-1 )
+-         V3 = A( ( ICOL-2 )*LDA+IROW )
++         V3( 1 ) = A( ( ICOL-2 )*LDA+IROW )
+       END IF
+ *
+-      H44S = H44 - H11
+-      H33S = H33 - H11
+-      V1 = ( H33S*H44S-H43H34 ) / H21 + H12
+-      V2 = H22 - H11 - H33S - H44S
+-      S = ABS( V1 ) + ABS( V2 ) + ABS( V3 )
++      H44S = H44 - H11( 1 )
++      H33S = H33 - H11( 1 )
++      V1 = ( H33S*H44S-H43H34 ) / H21( 1 ) + H12( 1 )
++      V2 = H22 - H11( 1 ) - H33S - H44S
++      S = ABS( V1 ) + ABS( V2 ) + ABS( V3( 1 ) )
+       V1 = V1 / S
+       V2 = V2 / S
+-      V3 = V3 / S
++      V3( 1 ) = V3( 1 ) / S
+       V( 1 ) = V1
+       V( 2 ) = V2
+-      V( 3 ) = V3
++      V( 3 ) = V3( 1 )
+ *
+       RETURN
+ *
+diff --git a/SRC/pdstebz.f b/SRC/pdstebz.f
+index e7006f9..bf4dacc 100644
+--- a/SRC/pdstebz.f
++++ b/SRC/pdstebz.f
+@@ -246,14 +246,14 @@ SUBROUTINE PDSTEBZ( ICTXT, RANGE, ORDER, N, VL, VU, IL, IU,
+      $                   ITMP2, J, JB, K, LAST, LEXTRA, LREQ, MYCOL,
+      $                   MYROW, NALPHA, NBETA, NCMP, NEIGINT, NEXT, NGL,
+      $                   NGLOB, NGU, NINT, NPCOL, NPROW, OFFSET,
+-     $                   ONEDCONTEXT, P, PREV, REXTRA, RREQ, SELF,
+-     $                   TORECV
++     $                   ONEDCONTEXT, P, PREV, REXTRA, RREQ, SELF
+       DOUBLE PRECISION   ALPHA, ATOLI, BETA, BNORM, DRECV, DSEND, GL,
+      $                   GU, INITVL, INITVU, LSAVE, MID, PIVMIN, RELTOL,
+      $                   SAFEMN, TMP1, TMP2, TNORM, ULP
+ *     ..
+ *     .. Local Arrays ..
+       INTEGER            IDUM( 5, 2 )
++      INTEGER            TORECV( 1, 1 )
+ *     ..
+ *     .. Executable Statements ..
+ *       This is just to keep ftnchek happy
+@@ -784,14 +784,14 @@ SUBROUTINE PDSTEBZ( ICTXT, RANGE, ORDER, N, VL, VU, IL, IU,
+          ELSE
+             CALL IGEBR2D( ONEDCONTEXT, 'ALL', ' ', 1, 1, TORECV, 1, 0,
+      $                    I-1 )
+-            IF( TORECV.NE.0 ) THEN
+-               CALL IGEBR2D( ONEDCONTEXT, 'ALL', ' ', TORECV, 1, IWORK,
+-     $                       TORECV, 0, I-1 )
+-               CALL DGEBR2D( ONEDCONTEXT, 'ALL', ' ', TORECV, 1, WORK,
+-     $                       TORECV, 0, I-1 )
+-               CALL IGEBR2D( ONEDCONTEXT, 'ALL', ' ', TORECV, 1,
+-     $                       IWORK( N+1 ), TORECV, 0, I-1 )
+-               DO 120 J = 1, TORECV
++            IF( TORECV( 1, 1 ).NE.0 ) THEN
++               CALL IGEBR2D( ONEDCONTEXT, 'ALL', ' ', TORECV( 1, 1 ), 1,
++     $                       IWORK, TORECV( 1, 1 ), 0, I-1 )
++               CALL DGEBR2D( ONEDCONTEXT, 'ALL', ' ', TORECV( 1, 1 ), 1,
++     $                       WORK, TORECV( 1, 1 ), 0, I-1 )
++               CALL IGEBR2D( ONEDCONTEXT, 'ALL', ' ', TORECV( 1, 1 ), 1,
++     $                       IWORK( N+1 ), TORECV( 1, 1 ), 0, I-1 )
++               DO 120 J = 1, TORECV( 1, 1 )
+                   W( IWORK( J ) ) = WORK( J )
+                   IBLOCK( IWORK( J ) ) = IWORK( N+J )
+   120          CONTINUE
+diff --git a/SRC/pdtrord.f b/SRC/pdtrord.f
+index 1f37d8e..3870574 100644
+--- a/SRC/pdtrord.f
++++ b/SRC/pdtrord.f
+@@ -328,12 +328,13 @@ SUBROUTINE PDTRORD( COMPQ, SELECT, PARA, N, T, IT, JT,
+      $                   EAST, WEST, ILOC4, SOUTH, NORTH, INDXS,
+      $                   ITT, JTT, ILEN, DLEN, INDXE, TRSRC1, TCSRC1,
+      $                   TRSRC2, TCSRC2, ILOS, DIR, TLIHI, TLILO, TLSEL,
+-     $                   ROUND, LAST, WIN0S, WIN0E, WINE, MMAX, MMIN
++     $                   ROUND, LAST, WIN0S, WIN0E, WINE
+       DOUBLE PRECISION   ELEM, ELEM1, ELEM2, ELEM3, ELEM4, SN, CS, TMP,
+      $                   ELEM5
+ *     ..
+ *     .. Local Arrays ..
+-      INTEGER            IBUFF( 8 ), IDUM1( 1 ), IDUM2( 1 )
++      INTEGER            IBUFF( 8 ), IDUM1( 1 ), IDUM2( 1 ), MMAX( 1 ),
++     $                   MMIN( 1 ), INFODUM( 1 )
+ *     ..
+ *     .. External Functions ..
+       LOGICAL            LSAME
+@@ -483,16 +484,16 @@ SUBROUTINE PDTRORD( COMPQ, SELECT, PARA, N, T, IT, JT,
+                END IF
+                IF( SELECT(K).NE.0 ) M = M + 1
+  10         CONTINUE
+-            MMAX = M
+-            MMIN = M
++            MMAX( 1 ) = M
++            MMIN( 1 ) = M
+             IF( NPROCS.GT.1 )
+      $         CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX, 1, -1,
+      $              -1, -1, -1, -1 )
+             IF( NPROCS.GT.1 )
+      $         CALL IGAMN2D( ICTXT, 'All', TOP, 1, 1, MMIN, 1, -1,
+      $              -1, -1, -1, -1 )
+-            IF( MMAX.GT.MMIN ) THEN
+-               M = MMAX
++            IF( MMAX( 1 ).GT.MMIN( 1 ) ) THEN
++               M = MMAX( 1 )
+                IF( NPROCS.GT.1 )
+      $            CALL IGAMX2D( ICTXT, 'All', TOP, N, 1, SELECT, N,
+      $                 -1, -1, -1, -1, -1 )
+@@ -520,9 +521,11 @@ SUBROUTINE PDTRORD( COMPQ, SELECT, PARA, N, T, IT, JT,
+ *
+ *     Global maximum on info.
+ *
+-      IF( NPROCS.GT.1 )
+-     $   CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFO, 1, -1, -1, -1,
++      IF( NPROCS.GT.1 ) THEN
++         CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFODUM, 1, -1, -1, -1,
+      $        -1, -1 )
++         INFO = INFODUM( 1 )
++      END IF
+ *
+ *     Return if some argument is incorrect.
+ *
+@@ -1576,9 +1579,11 @@ SUBROUTINE PDTRORD( COMPQ, SELECT, PARA, N, T, IT, JT,
+ *        experienced a failure in the reordering.
+ *
+          MYIERR = IERR
+-         IF( NPROCS.GT.1 )
+-     $      CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, IERR, 1, -1,
++         IF( NPROCS.GT.1 ) THEN
++            CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFODUM, 1, -1,
+      $           -1, -1, -1, -1 )
++            IERR = INFODUM( 1 )
++         END IF
+ *
+          IF( IERR.NE.0 ) THEN
+ *
+@@ -1586,9 +1591,11 @@ SUBROUTINE PDTRORD( COMPQ, SELECT, PARA, N, T, IT, JT,
+ *           to swap.
+ *
+             IF( MYIERR.NE.0 ) INFO = MAX(1,I+KKS-1)
+-            IF( NPROCS.GT.1 )
+-     $         CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFO, 1, -1,
++            IF( NPROCS.GT.1 ) THEN
++               CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFODUM, 1, -1,
+      $              -1, -1, -1, -1 )
++               INFO = INFODUM( 1 )
++            END IF
+             GO TO 300
+          END IF
+ *
+@@ -3245,9 +3252,11 @@ SUBROUTINE PDTRORD( COMPQ, SELECT, PARA, N, T, IT, JT,
+ *        experienced a failure in the reordering.
+ *
+          MYIERR = IERR
+-         IF( NPROCS.GT.1 )
+-     $      CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, IERR, 1, -1,
++         IF( NPROCS.GT.1 ) THEN
++            CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFODUM, 1, -1,
+      $           -1, -1, -1, -1 )
++            IERR = INFODUM( 1 )
++         END IF
+ *
+          IF( IERR.NE.0 ) THEN
+ *
+@@ -3255,9 +3264,11 @@ SUBROUTINE PDTRORD( COMPQ, SELECT, PARA, N, T, IT, JT,
+ *           to swap.
+ *
+             IF( MYIERR.NE.0 ) INFO = MAX(1,I+KKS-1)
+-            IF( NPROCS.GT.1 )
+-     $         CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFO, 1, -1,
++            IF( NPROCS.GT.1 ) THEN
++               CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFODUM, 1, -1,
+      $              -1, -1, -1, -1 )
++               IERR = INFODUM( 1 )
++            END IF
+             GO TO 300
+          END IF
+ *
+diff --git a/SRC/pdtrsen.f b/SRC/pdtrsen.f
+index 78c5599..c65ea91 100644
+--- a/SRC/pdtrsen.f
++++ b/SRC/pdtrsen.f
+@@ -354,13 +354,15 @@ SUBROUTINE PDTRSEN( JOB, COMPQ, SELECT, PARA, N, T, IT, JT,
+       LOGICAL            LQUERY, WANTBH, WANTQ, WANTS, WANTSP
+       INTEGER            ICOFFT12, ICTXT, IDUM1, IDUM2, IERR, ILOC1,
+      $                   IPW1, ITER, ITT, JLOC1, JTT, K, LIWMIN, LLDT,
+-     $                   LLDQ, LWMIN, MMAX, MMIN, MYROW, MYCOL, N1, N2,
++     $                   LLDQ, LWMIN, MYROW, MYCOL, N1, N2,
+      $                   NB, NOEXSY, NPCOL, NPROCS, NPROW, SPACE,
+      $                   T12ROWS, T12COLS, TCOLS, TCSRC, TROWS, TRSRC,
+      $                   WRK1, IWRK1, WRK2, IWRK2, WRK3, IWRK3
+-      DOUBLE PRECISION   DPDUM1, ELEM, EST, SCALE, RNORM
++      DOUBLE PRECISION   ELEM, EST, SCALE, RNORM
+ *     .. Local Arrays ..
+-      INTEGER            DESCT12( DLEN_ ), MBNB2( 2 )
++      INTEGER            DESCT12( DLEN_ ), MBNB2( 2 ), MMAX( 1 ),
++     $                   MMIN( 1 )
++      DOUBLE PRECISION   DPDUM1( 1 )
+ *     ..
+ *     .. External Functions ..
+       LOGICAL            LSAME
+@@ -521,16 +523,16 @@ SUBROUTINE PDTRSEN( JOB, COMPQ, SELECT, PARA, N, T, IT, JT,
+                END IF
+                IF( SELECT(K) ) M = M + 1
+  10         CONTINUE
+-            MMAX = M
+-            MMIN = M
++            MMAX( 1 ) = M
++            MMIN( 1 ) = M
+             IF( NPROCS.GT.1 )
+-     $           CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX, 1, -1,
+-     $                -1, -1, -1, -1 )
++     $           CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX( 1 ), 1,
++     $                -1, -1, -1, -1, -1 )
+             IF( NPROCS.GT.1 )
+-     $           CALL IGAMN2D( ICTXT, 'All', TOP, 1, 1, MMIN, 1, -1,
+-     $                -1, -1, -1, -1 )
+-            IF( MMAX.GT.MMIN ) THEN
+-               M = MMAX
++     $           CALL IGAMN2D( ICTXT, 'All', TOP, 1, 1, MMIN( 1 ), 1,
++     $                -1, -1, -1, -1, -1 )
++            IF( MMAX( 1 ).GT.MMIN( 1 ) ) THEN
++               M = MMAX( 1 )
+                IF( NPROCS.GT.1 )
+      $              CALL IGAMX2D( ICTXT, 'All', TOP, N, 1, IWORK, N,
+      $                   -1, -1, -1, -1, -1 )
+diff --git a/SRC/pshseqr.f b/SRC/pshseqr.f
+index 10eb24a..e8ecea9 100644
+--- a/SRC/pshseqr.f
++++ b/SRC/pshseqr.f
+@@ -259,11 +259,12 @@ SUBROUTINE PSHSEQR( JOB, COMPZ, N, ILO, IHI, H, DESCH, WR, WI, Z,
+      $                   HRSRC4, HCSRC4, LIWKOPT
+       LOGICAL            INITZ, LQUERY, WANTT, WANTZ, PAIR, BORDER
+       REAL               TMP1, TMP2, TMP3, TMP4, DUM1, DUM2, DUM3,
+-     $                   DUM4, ELEM1, ELEM2, ELEM3, ELEM4,
++     $                   DUM4, ELEM1, ELEM4,
+      $                   CS, SN, ELEM5, TMP, LWKOPT
+ *     ..
+ *     .. Local Arrays ..
+       INTEGER            DESCH2( DLEN_ )
++      REAL               ELEM2( 1 ), ELEM3( 1 )
+ *     ..
+ *     .. External Functions ..
+       INTEGER            PILAENVX, NUMROC, ICEIL
+@@ -566,28 +567,28 @@ SUBROUTINE PSHSEQR( JOB, COMPZ, N, ILO, IHI, H, DESCH, WR, WI, Z,
+                   IF( MYROW.EQ.HRSRC1 .AND. MYCOL.EQ.HCSRC1 ) THEN
+                      ELEM1 = H((JLOC1-1)*LLDH+ILOC1)
+                      IF( K.LT.N ) THEN
+-                        ELEM3 = H((JLOC1-1)*LLDH+ILOC1+1)
++                        ELEM3( 1 ) = H((JLOC1-1)*LLDH+ILOC1+1)
+                      ELSE
+-                        ELEM3 = ZERO
++                        ELEM3( 1 ) = ZERO
+                      END IF
+-                     IF( ELEM3.NE.ZERO ) THEN
+-                        ELEM2 = H((JLOC1)*LLDH+ILOC1)
++                     IF( ELEM3( 1 ).NE.ZERO ) THEN
++                        ELEM2( 1 ) = H((JLOC1)*LLDH+ILOC1)
+                         ELEM4 = H((JLOC1)*LLDH+ILOC1+1)
+-                        CALL SLANV2( ELEM1, ELEM2, ELEM3, ELEM4,
+-     $                       WR( K ), WI( K ), WR( K+1 ), WI( K+1 ),
+-     $                       SN, CS )
++                        CALL SLANV2( ELEM1, ELEM2( 1 ), ELEM3( 1 ),
++     $                       ELEM4, WR( K ), WI( K ), WR( K+1 ),
++     $                       WI( K+1 ), SN, CS )
+                         PAIR = .TRUE.
+                      ELSE
+                         IF( K.GT.1 ) THEN
+                            TMP = H((JLOC1-2)*LLDH+ILOC1)
+                            IF( TMP.NE.ZERO ) THEN
+                               ELEM1 = H((JLOC1-2)*LLDH+ILOC1-1)
+-                              ELEM2 = H((JLOC1-1)*LLDH+ILOC1-1)
+-                              ELEM3 = H((JLOC1-2)*LLDH+ILOC1)
++                              ELEM2( 1 ) = H((JLOC1-1)*LLDH+ILOC1-1)
++                              ELEM3( 1 ) = H((JLOC1-2)*LLDH+ILOC1)
+                               ELEM4 = H((JLOC1-1)*LLDH+ILOC1)
+-                              CALL SLANV2( ELEM1, ELEM2, ELEM3,
+-     $                             ELEM4, WR( K-1 ), WI( K-1 ),
+-     $                             WR( K ), WI( K ), SN, CS )
++                              CALL SLANV2( ELEM1, ELEM2( 1 ),
++     $                             ELEM3( 1 ), ELEM4, WR( K-1 ),
++     $                             WI( K-1 ), WR( K ), WI( K ), SN, CS )
+                            ELSE
+                               WR( K ) = ELEM1
+                            END IF
+@@ -620,12 +621,12 @@ SUBROUTINE PSHSEQR( JOB, COMPZ, N, ILO, IHI, H, DESCH, WR, WI, Z,
+             CALL INFOG2L( K+1, K+1, DESCH, NPROW, NPCOL, MYROW, MYCOL,
+      $           ILOC4, JLOC4, HRSRC4, HCSRC4 )
+             IF( MYROW.EQ.HRSRC2 .AND. MYCOL.EQ.HCSRC2 ) THEN
+-               ELEM2 = H((JLOC2-1)*LLDH+ILOC2)
++               ELEM2( 1 ) = H((JLOC2-1)*LLDH+ILOC2)
+                IF( HRSRC1.NE.HRSRC2 .OR. HCSRC1.NE.HCSRC2 )
+      $            CALL SGESD2D( ICTXT, 1, 1, ELEM2, 1, HRSRC1, HCSRC1)
+             END IF
+             IF( MYROW.EQ.HRSRC3 .AND. MYCOL.EQ.HCSRC3 ) THEN
+-               ELEM3 = H((JLOC3-1)*LLDH+ILOC3)
++               ELEM3( 1 ) = H((JLOC3-1)*LLDH+ILOC3)
+                IF( HRSRC1.NE.HRSRC3 .OR. HCSRC1.NE.HCSRC3 )
+      $            CALL SGESD2D( ICTXT, 1, 1, ELEM3, 1, HRSRC1, HCSRC1)
+             END IF
+@@ -651,8 +652,9 @@ SUBROUTINE PSHSEQR( JOB, COMPZ, N, ILO, IHI, H, DESCH, WR, WI, Z,
+                ELEM5 = WORK(2)
+                IF( ELEM5.EQ.ZERO ) THEN
+                   IF( WR( K ).EQ.ZERO .AND. WI( K ).EQ.ZERO ) THEN
+-                     CALL SLANV2( ELEM1, ELEM2, ELEM3, ELEM4, WR( K ),
+-     $                    WI( K ), WR( K+1 ), WI( K+1 ), SN, CS )
++                     CALL SLANV2( ELEM1, ELEM2( 1 ), ELEM3( 1 ), ELEM4,
++     $                    WR( K ), WI( K ), WR( K+1 ), WI( K+1 ), SN,
++     $                    CS )
+                   ELSEIF( WR( K+1 ).EQ.ZERO .AND. WI( K+1 ).EQ.ZERO )
+      $                 THEN
+                      WR( K+1 ) = ELEM4
+diff --git a/SRC/pslacon.f b/SRC/pslacon.f
+index 20d27ff..673bf1a 100644
+--- a/SRC/pslacon.f
++++ b/SRC/pslacon.f
+@@ -160,10 +160,12 @@ SUBROUTINE PSLACON( N, V, IV, JV, DESCV, X, IX, JX, DESCX, ISGN,
+       INTEGER            I, ICTXT, IFLAG, IIVX, IMAXROW, IOFFVX, IROFF,
+      $                   ITER, IVXCOL, IVXROW, J, JLAST, JJVX, JUMP,
+      $                   K, MYCOL, MYROW, NP, NPCOL, NPROW
+-      REAL               ALTSGN, ESTOLD, JLMAX, TEMP, XMAX
++      REAL               ALTSGN, ESTOLD, JLMAX, XMAX
+ *     ..
+ *     .. Local Arrays ..
+       REAL               WORK( 2 )
++      REAL               ESTWORK( 1 )
++      REAL               TEMP( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, IGSUM2D, INFOG2L, PSAMAX,
+@@ -184,6 +186,7 @@ SUBROUTINE PSLACON( N, V, IV, JV, DESCV, X, IX, JX, DESCX, ISGN,
+ *
+ *     Get grid parameters.
+ *
++      ESTWORK( 1 ) = EST
+       ICTXT = DESCX( CTXT_ )
+       CALL BLACS_GRIDINFO( ICTXT, NPROW, NPCOL, MYROW, MYCOL )
+ *
+@@ -215,21 +218,21 @@ SUBROUTINE PSLACON( N, V, IV, JV, DESCV, X, IX, JX, DESCX, ISGN,
+       IF( N.EQ.1 ) THEN
+          IF( MYROW.EQ.IVXROW ) THEN
+             V( IOFFVX ) = X( IOFFVX )
+-            EST = ABS( V( IOFFVX ) )
+-            CALL SGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1, EST, 1 )
++            ESTWORK( 1 ) = ABS( V( IOFFVX ) )
++            CALL SGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1, ESTWORK, 1 )
+          ELSE
+-            CALL SGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, EST, 1,
++            CALL SGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, ESTWORK, 1,
+      $                    IVXROW, MYCOL )
+          END IF
+ *        ... QUIT
+          GO TO 150
+       END IF
+-      CALL PSASUM( N, EST, X, IX, JX, DESCX, 1 )
++      CALL PSASUM( N, ESTWORK( 1 ), X, IX, JX, DESCX, 1 )
+       IF( DESCX( M_ ).EQ.1 .AND. N.EQ.1 ) THEN
+          IF( MYROW.EQ.IVXROW ) THEN
+-            CALL SGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1, EST, 1 )
++            CALL SGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1, ESTWORK, 1 )
+          ELSE
+-            CALL SGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, EST, 1,
++            CALL SGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, ESTWORK, 1,
+      $                    IVXROW, MYCOL )
+          END IF
+       END IF
+@@ -281,13 +284,13 @@ SUBROUTINE PSLACON( N, V, IV, JV, DESCV, X, IX, JX, DESCX, ISGN,
+ *
+    70 CONTINUE
+       CALL SCOPY( NP, X( IOFFVX ), 1, V( IOFFVX ), 1 )
+-      ESTOLD = EST
+-      CALL PSASUM( N, EST, V, IV, JV, DESCV, 1 )
++      ESTOLD = ESTWORK( 1 )
++      CALL PSASUM( N, ESTWORK( 1 ), V, IV, JV, DESCV, 1 )
+       IF( DESCV( M_ ).EQ.1 .AND. N.EQ.1 ) THEN
+          IF( MYROW.EQ.IVXROW ) THEN
+-            CALL SGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1, EST, 1 )
++            CALL SGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1, ESTWORK, 1 )
+          ELSE
+-            CALL SGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, EST, 1,
++            CALL SGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, ESTWORK, 1,
+      $                    IVXROW, MYCOL )
+          END IF
+       END IF
+@@ -305,7 +308,7 @@ SUBROUTINE PSLACON( N, V, IV, JV, DESCV, X, IX, JX, DESCX, ISGN,
+ *     REPEATED SIGN VECTOR DETECTED, HENCE ALGORITHM HAS CONVERGED.
+ *     ALONG WITH IT, TEST FOR CYCLING.
+ *
+-      IF( IFLAG.EQ.0 .OR. EST.LE.ESTOLD )
++      IF( IFLAG.EQ.0 .OR. ESTWORK( 1 ).LE.ESTOLD )
+      $   GO TO 120
+ *
+       DO 100 I = IOFFVX, IOFFVX+NP-1
+@@ -361,7 +364,7 @@ SUBROUTINE PSLACON( N, V, IV, JV, DESCV, X, IX, JX, DESCX, ISGN,
+ *     X HAS BEEN OVERWRITTEN BY A*X
+ *
+   140 CONTINUE
+-      CALL PSASUM( N, TEMP, X, IX, JX, DESCX, 1 )
++      CALL PSASUM( N, TEMP( 1 ), X, IX, JX, DESCX, 1 )
+       IF( DESCX( M_ ).EQ.1 .AND. N.EQ.1 ) THEN
+          IF( MYROW.EQ.IVXROW ) THEN
+             CALL SGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1, TEMP, 1 )
+@@ -370,15 +373,16 @@ SUBROUTINE PSLACON( N, V, IV, JV, DESCV, X, IX, JX, DESCX, ISGN,
+      $                    IVXROW, MYCOL )
+          END IF
+       END IF
+-      TEMP = TWO*( TEMP / REAL( 3*N ) )
+-      IF( TEMP.GT.EST ) THEN
++      TEMP( 1 ) = TWO*( TEMP( 1 ) / REAL( 3*N ) )
++      IF( TEMP( 1 ).GT.ESTWORK( 1 ) ) THEN
+          CALL SCOPY( NP, X( IOFFVX ), 1, V( IOFFVX ), 1 )
+-         EST = TEMP
++         ESTWORK( 1 ) = TEMP( 1 )
+       END IF
+ *
+   150 CONTINUE
+       KASE = 0
+ *
++      EST = ESTWORK( 1 )
+       RETURN
+ *
+ *     End of PSLACON
+diff --git a/SRC/pslarf.f b/SRC/pslarf.f
+index c1d3a15..39de0ed 100644
+--- a/SRC/pslarf.f
++++ b/SRC/pslarf.f
+@@ -241,7 +241,7 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+      $                   IOFFV, IPW, IROFF, IVCOL, IVROW, JJC, JJV, LDC,
+      $                   LDV, MYCOL, MYROW, MP, NCC, NCV, NPCOL, NPROW,
+      $                   NQ, RDEST
+-      REAL               TAULOC
++      REAL               TAULOC( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, INFOG2L, PB_TOPGET, PBSTRNV,
+@@ -335,7 +335,7 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                      CALL SGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                             TAU( IIV ), 1 )
+-                     TAULOC = TAU( IIV )
++                     TAULOC( 1 ) = TAU( IIV )
+ *
+                   ELSE
+ *
+@@ -344,7 +344,7 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C )' * v
+ *
+@@ -362,8 +362,8 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                    sub( C ) := sub( C ) - v * w'
+ *
+-                     CALL SGER( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                          1, C( IOFFC ), LDC )
++                     CALL SGER( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                          WORK( IPW ), 1, C( IOFFC ), LDC )
+                   END IF
+ *
+                END IF
+@@ -378,9 +378,9 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   IF( MYCOL.EQ.ICCOL ) THEN
+ *
+-                     TAULOC = TAU( JJV )
++                     TAULOC( 1 ) = TAU( JJV )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -397,8 +397,8 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+-                        CALL SGER( MP, NQ, -TAULOC, V( IOFFV ), 1, WORK,
+-     $                             1, C( IOFFC ), LDC )
++                        CALL SGER( MP, NQ, -TAULOC( 1 ), V( IOFFV ), 1,
++     $                             WORK, 1, C( IOFFC ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -420,9 +420,9 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                      IPW = MP+1
+                      CALL SGERV2D( ICTXT, IPW, 1, WORK, IPW, MYROW,
+      $                             IVCOL )
+-                     TAULOC = WORK( IPW )
++                     TAULOC( 1 ) = WORK( IPW )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -440,7 +440,7 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+-                        CALL SGER( MP, NQ, -TAULOC, WORK, 1,
++                        CALL SGER( MP, NQ, -TAULOC( 1 ), WORK, 1,
+      $                             WORK( IPW ), 1, C( IOFFC ), LDC )
+                      END IF
+ *
+@@ -470,7 +470,7 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   CALL SGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                          TAU( IIV ), 1 )
+-                  TAULOC = TAU( IIV )
++                  TAULOC( 1 ) = TAU( IIV )
+ *
+                ELSE
+ *
+@@ -479,7 +479,7 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -499,8 +499,8 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( IOFFC.GT.0 )
+-     $               CALL SGER( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                          1, C( IOFFC ), LDC )
++     $               CALL SGER( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                          WORK( IPW ), 1, C( IOFFC ), LDC )
+                END IF
+ *
+             ELSE
+@@ -515,18 +515,18 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                   WORK(IPW) = TAU( JJV )
+                   CALL SGEBS2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = TAU( JJV )
++                  TAULOC( 1 ) = TAU( JJV )
+ *
+                ELSE
+ *
+                   IPW = MP+1
+                   CALL SGEBR2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1, WORK,
+      $                          IPW, MYROW, IVCOL )
+-                  TAULOC = WORK( IPW )
++                  TAULOC( 1 ) = WORK( IPW )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -546,8 +546,8 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( IOFFC.GT.0 )
+-     $               CALL SGER( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                          1, C( IOFFC ), LDC )
++     $               CALL SGER( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                          WORK( IPW ), 1, C( IOFFC ), LDC )
+                END IF
+ *
+             END IF
+@@ -576,9 +576,9 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   IF( MYROW.EQ.ICROW ) THEN
+ *
+-                     TAULOC = TAU( IIV )
++                     TAULOC( 1 ) = TAU( IIV )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -596,7 +596,7 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+                         IF( IOFFV.GT.0 .AND. IOFFC.GT.0 )
+-     $                     CALL SGER( MP, NQ, -TAULOC, WORK, 1,
++     $                     CALL SGER( MP, NQ, -TAULOC( 1 ), WORK, 1,
+      $                                V( IOFFV ), LDV, C( IOFFC ), LDC )
+                      END IF
+ *
+@@ -619,9 +619,9 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                      IPW = NQ+1
+                      CALL SGERV2D( ICTXT, IPW, 1, WORK, IPW, IVROW,
+      $                             MYCOL )
+-                     TAULOC = WORK( IPW )
++                     TAULOC( 1 ) = WORK( IPW )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -639,7 +639,7 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+-                        CALL SGER( MP, NQ, -TAULOC, WORK( IPW ), 1,
++                        CALL SGER( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                             WORK, 1, C( IOFFC ), LDC )
+                      END IF
+ *
+@@ -665,7 +665,7 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                      CALL SGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1,
+      $                             TAU( JJV ), 1 )
+-                     TAULOC = TAU( JJV )
++                     TAULOC( 1 ) = TAU( JJV )
+ *
+                   ELSE
+ *
+@@ -674,7 +674,7 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C ) * v
+ *
+@@ -692,8 +692,8 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                    sub( C ) := sub( C ) - w * v'
+ *
+-                     CALL SGER( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                          1, C( IOFFC ), LDC )
++                     CALL SGER( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1
++     $                         , WORK, 1, C( IOFFC ), LDC )
+                   END IF
+ *
+                END IF
+@@ -718,18 +718,18 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                   WORK(IPW) = TAU( IIV )
+                   CALL SGEBS2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = TAU( IIV )
++                  TAULOC( 1 ) = TAU( IIV )
+ *
+                ELSE
+ *
+                   IPW = NQ+1
+                   CALL SGEBR2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW, IVROW, MYCOL )
+-                  TAULOC = WORK( IPW )
++                  TAULOC( 1 ) = WORK( IPW )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -748,8 +748,8 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+                   IF( IOFFC.GT.0 )
+-     $               CALL SGER( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                          1, C( IOFFC ), LDC )
++     $               CALL SGER( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                          WORK, 1, C( IOFFC ), LDC )
+                END IF
+ *
+             ELSE
+@@ -768,7 +768,7 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   CALL SGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1, TAU( JJV ),
+      $                          1 )
+-                  TAULOC = TAU( JJV )
++                  TAULOC( 1 ) = TAU( JJV )
+ *
+                ELSE
+ *
+@@ -777,7 +777,7 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -795,8 +795,8 @@ SUBROUTINE PSLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL SGER( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK, 1,
+-     $                       C( IOFFC ), LDC )
++                  CALL SGER( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1, WORK,
++     $                       1, C( IOFFC ), LDC )
+                END IF
+ *
+             END IF
+diff --git a/SRC/pslarz.f b/SRC/pslarz.f
+index aa70db7..8901530 100644
+--- a/SRC/pslarz.f
++++ b/SRC/pslarz.f
+@@ -250,7 +250,7 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                   IVCOL, IVROW, JJC1, JJC2, JJV, LDC, LDV, MPC2,
+      $                   MPV, MYCOL, MYROW, NCC, NCV, NPCOL, NPROW,
+      $                   NQC2, NQV, RDEST
+-      REAL               TAULOC
++      REAL               TAULOC( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, INFOG2L, PB_TOPGET, PBSTRNV,
+@@ -369,7 +369,7 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                      CALL SGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                             TAU( IIV ), 1 )
+-                     TAULOC = TAU( IIV )
++                     TAULOC( 1 ) = TAU( IIV )
+ *
+                   ELSE
+ *
+@@ -378,7 +378,7 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C )' * v
+ *
+@@ -401,9 +401,9 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                    sub( C ) := sub( C ) - v * w'
+ *
+                      IF( MYROW.EQ.ICROW1 )
+-     $                  CALL SAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $                  CALL SAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                              MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                     CALL SGER( MPV, NQC2, -TAULOC, WORK, 1,
++                     CALL SGER( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
+      $                          WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                   END IF
+ *
+@@ -419,9 +419,9 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   IF( MYCOL.EQ.ICCOL2 ) THEN
+ *
+-                     TAULOC = TAU( JJV )
++                     TAULOC( 1 ) = TAU( JJV )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -444,11 +444,11 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+                         IF( MYROW.EQ.ICROW1 )
+-     $                     CALL SAXPY( NQC2, -TAULOC, WORK,
++     $                     CALL SAXPY( NQC2, -TAULOC( 1 ), WORK,
+      $                                 MAX( 1, NQC2 ), C( IOFFC1 ),
+      $                                 LDC )
+-                        CALL SGER( MPV, NQC2, -TAULOC, V( IOFFV ), 1,
+-     $                             WORK, 1, C( IOFFC2 ), LDC )
++                        CALL SGER( MPV, NQC2, -TAULOC( 1 ), V( IOFFV ),
++     $                             1, WORK, 1, C( IOFFC2 ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -470,9 +470,9 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                      IPW = MPV+1
+                      CALL SGERV2D( ICTXT, IPW, 1, WORK, IPW, MYROW,
+      $                             IVCOL )
+-                     TAULOC = WORK( IPW )
++                     TAULOC( 1 ) = WORK( IPW )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -495,10 +495,10 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+                         IF( MYROW.EQ.ICROW1 )
+-     $                     CALL SAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $                     CALL SAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                                 MAX( 1, NQC2 ), C( IOFFC1 ),
+      $                                 LDC )
+-                        CALL SGER( MPV, NQC2, -TAULOC, WORK, 1,
++                        CALL SGER( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
+      $                             WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                      END IF
+ *
+@@ -529,7 +529,7 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   CALL SGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                          TAU( IIV ), 1 )
+-                  TAULOC = TAU( IIV )
++                  TAULOC( 1 ) = TAU( IIV )
+ *
+                ELSE
+ *
+@@ -538,7 +538,7 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -561,10 +561,10 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( MYROW.EQ.ICROW1 )
+-     $               CALL SAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $               CALL SAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                           MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                  CALL SGER( MPV, NQC2, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                       1, C( IOFFC2 ), LDC )
++                  CALL SGER( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
++     $                       WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             ELSE
+@@ -579,18 +579,18 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                   WORK( IPW ) = TAU( JJV )
+                   CALL SGEBS2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = TAU( JJV )
++                  TAULOC( 1 ) = TAU( JJV )
+ *
+                ELSE
+ *
+                   IPW = MPV+1
+                   CALL SGEBR2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1, WORK,
+      $                          IPW, MYROW, IVCOL )
+-                  TAULOC = WORK( IPW )
++                  TAULOC( 1 ) = WORK( IPW )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -613,10 +613,10 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( MYROW.EQ.ICROW1 )
+-     $               CALL SAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $               CALL SAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                           MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                  CALL SGER( MPV, NQC2, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                       1, C( IOFFC2 ), LDC )
++                  CALL SGER( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
++     $                       WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             END IF
+@@ -645,9 +645,9 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   IF( MYROW.EQ.ICROW2 ) THEN
+ *
+-                     TAULOC = TAU( IIV )
++                     TAULOC( 1 ) = TAU( IIV )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -668,13 +668,13 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                               ICCOL2 )
+ *
+                         IF( MYCOL.EQ.ICCOL1 )
+-     $                     CALL SAXPY( MPC2, -TAULOC, WORK, 1,
++     $                     CALL SAXPY( MPC2, -TAULOC( 1 ), WORK, 1,
+      $                                 C( IOFFC1 ), 1 )
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+                         IF( MPC2.GT.0 .AND. NQV.GT.0 )
+-     $                     CALL SGER( MPC2, NQV, -TAULOC, WORK, 1,
++     $                     CALL SGER( MPC2, NQV, -TAULOC( 1 ), WORK, 1,
+      $                                V( IOFFV ), LDV, C( IOFFC2 ),
+      $                                LDC )
+                      END IF
+@@ -698,9 +698,9 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                      IPW = NQV+1
+                      CALL SGERV2D( ICTXT, IPW, 1, WORK, IPW, IVROW,
+      $                             MYCOL )
+-                     TAULOC = WORK( IPW )
++                     TAULOC( 1 ) = WORK( IPW )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -719,13 +719,13 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                                WORK( IPW ), MAX( 1, MPC2 ),
+      $                                RDEST, ICCOL2 )
+                         IF( MYCOL.EQ.ICCOL1 )
+-     $                     CALL SAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
+-     $                                 C( IOFFC1 ), 1 )
++     $                     CALL SAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ),
++     $                                 1, C( IOFFC1 ), 1 )
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+-                        CALL SGER( MPC2, NQV, -TAULOC, WORK( IPW ), 1,
+-     $                             WORK, 1, C( IOFFC2 ), LDC )
++                        CALL SGER( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ),
++     $                             1, WORK, 1, C( IOFFC2 ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -750,7 +750,7 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                      CALL SGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1,
+      $                             TAU( JJV ), 1 )
+-                     TAULOC = TAU( JJV )
++                     TAULOC( 1 ) = TAU( JJV )
+ *
+                   ELSE
+ *
+@@ -759,7 +759,7 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C ) * v
+ *
+@@ -778,12 +778,12 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                             WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                             ICCOL2 )
+                      IF( MYCOL.EQ.ICCOL1 )
+-     $                  CALL SAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $                  CALL SAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                              C( IOFFC1 ), 1 )
+ *
+ *                    sub( C ) := sub( C ) - w * v'
+ *
+-                     CALL SGER( MPC2, NQV, -TAULOC, WORK( IPW ), 1,
++                     CALL SGER( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                          WORK, 1, C( IOFFC2 ), LDC )
+                   END IF
+ *
+@@ -808,18 +808,18 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                   WORK( IPW ) = TAU( IIV )
+                   CALL SGEBS2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = TAU( IIV )
++                  TAULOC( 1 ) = TAU( IIV )
+ *
+                ELSE
+ *
+                   IPW = NQV+1
+                   CALL SGEBR2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW, IVROW, MYCOL )
+-                  TAULOC = WORK( IPW )
++                  TAULOC( 1 ) = WORK( IPW )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -839,13 +839,13 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                          WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                          ICCOL2 )
+                   IF( MYCOL.EQ.ICCOL1 )
+-     $               CALL SAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $               CALL SAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                           C( IOFFC1 ), 1 )
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL SGER( MPC2, NQV, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                       1, C( IOFFC2 ), LDC )
++                  CALL SGER( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                       WORK, 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             ELSE
+@@ -864,7 +864,7 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   CALL SGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1, TAU( JJV ),
+      $                          1 )
+-                  TAULOC = TAU( JJV )
++                  TAULOC( 1 ) = TAU( JJV )
+ *
+                ELSE
+ *
+@@ -873,7 +873,7 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -892,13 +892,13 @@ SUBROUTINE PSLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                          WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                          ICCOL2 )
+                   IF( MYCOL.EQ.ICCOL1 )
+-     $               CALL SAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $               CALL SAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                           C( IOFFC1 ), 1 )
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL SGER( MPC2, NQV, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                       1, C( IOFFC2 ), LDC )
++                  CALL SGER( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                       WORK, 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             END IF
+diff --git a/SRC/pslawil.f b/SRC/pslawil.f
+index e04c16b..671e08e 100644
+--- a/SRC/pslawil.f
++++ b/SRC/pslawil.f
+@@ -120,10 +120,14 @@ SUBROUTINE PSLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V )
+       INTEGER            CONTXT, DOWN, HBL, ICOL, IROW, JSRC, LDA, LEFT,
+      $                   MODKM1, MYCOL, MYROW, NPCOL, NPROW, NUM, RIGHT,
+      $                   RSRC, UP
+-      REAL               H11, H12, H21, H22, H33S, H44S, S, V1, V2, V3
++      REAL               H22, H33S, H44S, S, V1, V2
+ *     ..
+ *     .. Local Arrays ..
+       REAL               BUF( 4 )
++      REAL               H11( 1 )
++      REAL               H12( 1 )
++      REAL               H21( 1 )
++      REAL               V3( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, SGERV2D, SGESD2D, INFOG2L
+@@ -170,18 +174,18 @@ SUBROUTINE PSLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V )
+             IF( NPCOL.GT.1 ) THEN
+                CALL SGERV2D( CONTXT, 1, 1, V3, 1, MYROW, LEFT )
+             ELSE
+-               V3 = A( ( ICOL-2 )*LDA+IROW )
++               V3( 1 ) = A( ( ICOL-2 )*LDA+IROW )
+             END IF
+             IF( NUM.GT.1 ) THEN
+                CALL SGERV2D( CONTXT, 4, 1, BUF, 4, UP, LEFT )
+-               H11 = BUF( 1 )
+-               H21 = BUF( 2 )
+-               H12 = BUF( 3 )
++               H11( 1 ) = BUF( 1 )
++               H21( 1 ) = BUF( 2 )
++               H12( 1 ) = BUF( 3 )
+                H22 = BUF( 4 )
+             ELSE
+-               H11 = A( ( ICOL-3 )*LDA+IROW-2 )
+-               H21 = A( ( ICOL-3 )*LDA+IROW-1 )
+-               H12 = A( ( ICOL-2 )*LDA+IROW-2 )
++               H11( 1 ) = A( ( ICOL-3 )*LDA+IROW-2 )
++               H21( 1 ) = A( ( ICOL-3 )*LDA+IROW-1 )
++               H12( 1 ) = A( ( ICOL-2 )*LDA+IROW-2 )
+                H22 = A( ( ICOL-2 )*LDA+IROW-1 )
+             END IF
+          END IF
+@@ -214,20 +218,20 @@ SUBROUTINE PSLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V )
+             IF( NUM.GT.1 ) THEN
+                CALL SGERV2D( CONTXT, 1, 1, H11, 1, UP, LEFT )
+             ELSE
+-               H11 = A( ( ICOL-3 )*LDA+IROW-2 )
++               H11( 1 ) = A( ( ICOL-3 )*LDA+IROW-2 )
+             END IF
+             IF( NPROW.GT.1 ) THEN
+                CALL SGERV2D( CONTXT, 1, 1, H12, 1, UP, MYCOL )
+             ELSE
+-               H12 = A( ( ICOL-2 )*LDA+IROW-2 )
++               H12( 1 ) = A( ( ICOL-2 )*LDA+IROW-2 )
+             END IF
+             IF( NPCOL.GT.1 ) THEN
+                CALL SGERV2D( CONTXT, 1, 1, H21, 1, MYROW, LEFT )
+             ELSE
+-               H21 = A( ( ICOL-3 )*LDA+IROW-1 )
++               H21( 1 ) = A( ( ICOL-3 )*LDA+IROW-1 )
+             END IF
+             H22 = A( ( ICOL-2 )*LDA+IROW-1 )
+-            V3 = A( ( ICOL-2 )*LDA+IROW )
++            V3( 1 ) = A( ( ICOL-2 )*LDA+IROW )
+          END IF
+       END IF
+       IF( ( MYROW.NE.II ) .OR. ( MYCOL.NE.JJ ) )
+@@ -236,24 +240,24 @@ SUBROUTINE PSLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V )
+       IF( MODKM1.GT.1 ) THEN
+          CALL INFOG2L( M+2, M+2, DESCA, NPROW, NPCOL, MYROW, MYCOL,
+      $                 IROW, ICOL, RSRC, JSRC )
+-         H11 = A( ( ICOL-3 )*LDA+IROW-2 )
+-         H21 = A( ( ICOL-3 )*LDA+IROW-1 )
+-         H12 = A( ( ICOL-2 )*LDA+IROW-2 )
++         H11( 1 ) = A( ( ICOL-3 )*LDA+IROW-2 )
++         H21( 1 ) = A( ( ICOL-3 )*LDA+IROW-1 )
++         H12( 1 ) = A( ( ICOL-2 )*LDA+IROW-2 )
+          H22 = A( ( ICOL-2 )*LDA+IROW-1 )
+-         V3 = A( ( ICOL-2 )*LDA+IROW )
++         V3( 1 ) = A( ( ICOL-2 )*LDA+IROW )
+       END IF
+ *
+-      H44S = H44 - H11
+-      H33S = H33 - H11
+-      V1 = ( H33S*H44S-H43H34 ) / H21 + H12
+-      V2 = H22 - H11 - H33S - H44S
+-      S = ABS( V1 ) + ABS( V2 ) + ABS( V3 )
++      H44S = H44 - H11( 1 )
++      H33S = H33 - H11( 1 )
++      V1 = ( H33S*H44S-H43H34 ) / H21( 1 ) + H12( 1 )
++      V2 = H22 - H11( 1 ) - H33S - H44S
++      S = ABS( V1 ) + ABS( V2 ) + ABS( V3( 1 ) )
+       V1 = V1 / S
+       V2 = V2 / S
+-      V3 = V3 / S
++      V3( 1 ) = V3( 1 ) / S
+       V( 1 ) = V1
+       V( 2 ) = V2
+-      V( 3 ) = V3
++      V( 3 ) = V3( 1 )
+ *
+       RETURN
+ *
+diff --git a/SRC/psstebz.f b/SRC/psstebz.f
+index a8a2496..7e588a9 100644
+--- a/SRC/psstebz.f
++++ b/SRC/psstebz.f
+@@ -244,14 +244,14 @@ SUBROUTINE PSSTEBZ( ICTXT, RANGE, ORDER, N, VL, VU, IL, IU,
+      $                   ITMP2, J, JB, K, LAST, LEXTRA, LREQ, MYCOL,
+      $                   MYROW, NALPHA, NBETA, NCMP, NEIGINT, NEXT, NGL,
+      $                   NGLOB, NGU, NINT, NPCOL, NPROW, OFFSET,
+-     $                   ONEDCONTEXT, P, PREV, REXTRA, RREQ, SELF,
+-     $                   TORECV
++     $                   ONEDCONTEXT, P, PREV, REXTRA, RREQ, SELF
+       REAL               ALPHA, ATOLI, BETA, BNORM, DRECV, DSEND, GL,
+      $                   GU, INITVL, INITVU, LSAVE, MID, PIVMIN, RELTOL,
+      $                   SAFEMN, TMP1, TMP2, TNORM, ULP
+ *     ..
+ *     .. Local Arrays ..
+       INTEGER            IDUM( 5, 2 )
++      INTEGER            TORECV( 1, 1 )
+ *     ..
+ *     .. Executable Statements ..
+ *       This is just to keep ftnchek happy
+@@ -774,14 +774,14 @@ SUBROUTINE PSSTEBZ( ICTXT, RANGE, ORDER, N, VL, VU, IL, IU,
+          ELSE
+             CALL IGEBR2D( ONEDCONTEXT, 'ALL', ' ', 1, 1, TORECV, 1, 0,
+      $                    I-1 )
+-            IF( TORECV.NE.0 ) THEN
+-               CALL IGEBR2D( ONEDCONTEXT, 'ALL', ' ', TORECV, 1, IWORK,
+-     $                       TORECV, 0, I-1 )
+-               CALL SGEBR2D( ONEDCONTEXT, 'ALL', ' ', TORECV, 1, WORK,
+-     $                       TORECV, 0, I-1 )
+-               CALL IGEBR2D( ONEDCONTEXT, 'ALL', ' ', TORECV, 1,
+-     $                       IWORK( N+1 ), TORECV, 0, I-1 )
+-               DO 120 J = 1, TORECV
++            IF( TORECV( 1, 1 ).NE.0 ) THEN
++               CALL IGEBR2D( ONEDCONTEXT, 'ALL', ' ', TORECV( 1, 1 ), 1,
++     $                       IWORK, TORECV( 1, 1 ), 0, I-1 )
++               CALL SGEBR2D( ONEDCONTEXT, 'ALL', ' ', TORECV( 1, 1 ), 1,
++     $                       WORK, TORECV( 1, 1 ), 0, I-1 )
++               CALL IGEBR2D( ONEDCONTEXT, 'ALL', ' ', TORECV( 1, 1 ), 1,
++     $                       IWORK( N+1 ), TORECV( 1, 1 ), 0, I-1 )
++               DO 120 J = 1, TORECV( 1, 1 )
+                   W( IWORK( J ) ) = WORK( J )
+                   IBLOCK( IWORK( J ) ) = IWORK( N+J )
+   120          CONTINUE
+diff --git a/SRC/pstrord.f b/SRC/pstrord.f
+index 3562242..5cdb549 100644
+--- a/SRC/pstrord.f
++++ b/SRC/pstrord.f
+@@ -328,12 +328,13 @@ SUBROUTINE PSTRORD( COMPQ, SELECT, PARA, N, T, IT, JT,
+      $                   EAST, WEST, ILOC4, SOUTH, NORTH, INDXS,
+      $                   ITT, JTT, ILEN, DLEN, INDXE, TRSRC1, TCSRC1,
+      $                   TRSRC2, TCSRC2, ILOS, DIR, TLIHI, TLILO, TLSEL,
+-     $                   ROUND, LAST, WIN0S, WIN0E, WINE, MMAX, MMIN
++     $                   ROUND, LAST, WIN0S, WIN0E, WINE
+       REAL               ELEM, ELEM1, ELEM2, ELEM3, ELEM4, SN, CS, TMP,
+      $                   ELEM5
+ *     ..
+ *     .. Local Arrays ..
+-      INTEGER            IBUFF( 8 ), IDUM1( 1 ), IDUM2( 1 )
++      INTEGER            IBUFF( 8 ), IDUM1( 1 ), IDUM2( 1 ), MMAX( 1 ),
++     $                    MMIN( 1 ), INFODUM( 1 )
+ *     ..
+ *     .. External Functions ..
+       LOGICAL            LSAME
+@@ -483,16 +484,16 @@ SUBROUTINE PSTRORD( COMPQ, SELECT, PARA, N, T, IT, JT,
+                END IF
+                IF( SELECT(K).NE.0 ) M = M + 1
+  10         CONTINUE
+-            MMAX = M
+-            MMIN = M
++            MMAX( 1 ) = M
++            MMIN( 1 ) = M
+             IF( NPROCS.GT.1 )
+      $         CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX, 1, -1,
+      $              -1, -1, -1, -1 )
+             IF( NPROCS.GT.1 )
+      $         CALL IGAMN2D( ICTXT, 'All', TOP, 1, 1, MMIN, 1, -1,
+      $              -1, -1, -1, -1 )
+-            IF( MMAX.GT.MMIN ) THEN
+-               M = MMAX
++            IF( MMAX( 1 ).GT.MMIN( 1 ) ) THEN
++               M = MMAX( 1 )
+                IF( NPROCS.GT.1 )
+      $            CALL IGAMX2D( ICTXT, 'All', TOP, N, 1, SELECT, N,
+      $                 -1, -1, -1, -1, -1 )
+@@ -520,9 +521,11 @@ SUBROUTINE PSTRORD( COMPQ, SELECT, PARA, N, T, IT, JT,
+ *
+ *     Global maximum on info.
+ *
+-      IF( NPROCS.GT.1 )
+-     $   CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFO, 1, -1, -1, -1,
+-     $        -1, -1 )
++      IF( NPROCS.GT.1 ) THEN
++            CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFODUM, 1, -1, -1,
++     $        -1, -1, -1 )
++            INFO = INFODUM( 1 )
++      END IF
+ *
+ *     Return if some argument is incorrect.
+ *
+@@ -1576,9 +1579,11 @@ SUBROUTINE PSTRORD( COMPQ, SELECT, PARA, N, T, IT, JT,
+ *        experienced a failure in the reordering.
+ *
+          MYIERR = IERR
+-         IF( NPROCS.GT.1 )
+-     $      CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, IERR, 1, -1,
++         IF( NPROCS.GT.1 ) THEN
++            CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFODUM, 1, -1,
+      $           -1, -1, -1, -1 )
++            IERR = INFODUM( 1 )
++         END IF
+ *
+          IF( IERR.NE.0 ) THEN
+ *
+@@ -1586,9 +1591,11 @@ SUBROUTINE PSTRORD( COMPQ, SELECT, PARA, N, T, IT, JT,
+ *           to swap.
+ *
+             IF( MYIERR.NE.0 ) INFO = MAX(1,I+KKS-1)
+-            IF( NPROCS.GT.1 )
+-     $         CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFO, 1, -1,
++            IF( NPROCS.GT.1 ) THEN
++               CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFODUM, 1, -1,
+      $              -1, -1, -1, -1 )
++               INFO = INFODUM( 1 )
++            END IF
+             GO TO 300
+          END IF
+ *
+@@ -3245,9 +3252,11 @@ SUBROUTINE PSTRORD( COMPQ, SELECT, PARA, N, T, IT, JT,
+ *        experienced a failure in the reordering.
+ *
+          MYIERR = IERR
+-         IF( NPROCS.GT.1 )
+-     $      CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, IERR, 1, -1,
++         IF( NPROCS.GT.1 ) THEN
++            CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFODUM, 1, -1,
+      $           -1, -1, -1, -1 )
++            IERR = INFODUM( 1 )
++         END IF
+ *
+          IF( IERR.NE.0 ) THEN
+ *
+@@ -3255,9 +3264,11 @@ SUBROUTINE PSTRORD( COMPQ, SELECT, PARA, N, T, IT, JT,
+ *           to swap.
+ *
+             IF( MYIERR.NE.0 ) INFO = MAX(1,I+KKS-1)
+-            IF( NPROCS.GT.1 )
+-     $         CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFO, 1, -1,
++            IF( NPROCS.GT.1 ) THEN
++               CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFODUM, 1, -1,
+      $              -1, -1, -1, -1 )
++               INFO = INFODUM( 1 )
++            END IF
+             GO TO 300
+          END IF
+ *
+diff --git a/SRC/pstrsen.f b/SRC/pstrsen.f
+index 6219bdb..1922e8f 100644
+--- a/SRC/pstrsen.f
++++ b/SRC/pstrsen.f
+@@ -354,13 +354,15 @@ SUBROUTINE PSTRSEN( JOB, COMPQ, SELECT, PARA, N, T, IT, JT,
+       LOGICAL            LQUERY, WANTBH, WANTQ, WANTS, WANTSP
+       INTEGER            ICOFFT12, ICTXT, IDUM1, IDUM2, IERR, ILOC1,
+      $                   IPW1, ITER, ITT, JLOC1, JTT, K, LIWMIN, LLDT,
+-     $                   LLDQ, LWMIN, MMAX, MMIN, MYROW, MYCOL, N1, N2,
++     $                   LLDQ, LWMIN, MYROW, MYCOL, N1, N2,
+      $                   NB, NOEXSY, NPCOL, NPROCS, NPROW, SPACE,
+      $                   T12ROWS, T12COLS, TCOLS, TCSRC, TROWS, TRSRC,
+      $                   WRK1, IWRK1, WRK2, IWRK2, WRK3, IWRK3
+-      REAL               DPDUM1, ELEM, EST, SCALE, RNORM
++      REAL               ELEM, EST, SCALE, RNORM
+ *     .. Local Arrays ..
+-      INTEGER            DESCT12( DLEN_ ), MBNB2( 2 )
++      INTEGER            DESCT12( DLEN_ ), MBNB2( 2 ), MMAX( 1 ),
++     $                   MMIN( 1 ), INFODUM( 1 )
++      REAL               DPDUM1( 1 )
+ *     ..
+ *     .. External Functions ..
+       LOGICAL            LSAME
+@@ -521,16 +523,16 @@ SUBROUTINE PSTRSEN( JOB, COMPQ, SELECT, PARA, N, T, IT, JT,
+                END IF
+                IF( SELECT(K) ) M = M + 1
+  10         CONTINUE
+-            MMAX = M
+-            MMIN = M
++            MMAX( 1 ) = M
++            MMIN( 1 ) = M
+             IF( NPROCS.GT.1 )
+      $           CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX, 1, -1,
+      $                -1, -1, -1, -1 )
+             IF( NPROCS.GT.1 )
+      $           CALL IGAMN2D( ICTXT, 'All', TOP, 1, 1, MMIN, 1, -1,
+      $                -1, -1, -1, -1 )
+-            IF( MMAX.GT.MMIN ) THEN
+-               M = MMAX
++            IF( MMAX( 1 ).GT.MMIN( 1 ) ) THEN
++               M = MMAX( 1 )
+                IF( NPROCS.GT.1 )
+      $              CALL IGAMX2D( ICTXT, 'All', TOP, N, 1, IWORK, N,
+      $                   -1, -1, -1, -1, -1 )
+@@ -602,9 +604,11 @@ SUBROUTINE PSTRSEN( JOB, COMPQ, SELECT, PARA, N, T, IT, JT,
+ *
+ *     Global maximum on info
+ *
+-      IF( NPROCS.GT.1 )
+-     $     CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFO, 1, -1, -1, -1,
++      IF( NPROCS.GT.1 ) THEN
++         CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFODUM, 1, -1, -1, -1,
+      $          -1, -1 )
++         INFO = INFODUM( 1 )
++      END IF
+ *
+ *     Return if some argument is incorrect
+ *
+diff --git a/SRC/pzlarf.f b/SRC/pzlarf.f
+index df65912..7bff287 100644
+--- a/SRC/pzlarf.f
++++ b/SRC/pzlarf.f
+@@ -242,7 +242,7 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+      $                   IOFFV, IPW, IROFF, IVCOL, IVROW, JJC, JJV, LDC,
+      $                   LDV, MYCOL, MYROW, MP, NCC, NCV, NPCOL, NPROW,
+      $                   NQ, RDEST
+-      COMPLEX*16         TAULOC
++      COMPLEX*16         TAULOC( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, INFOG2L, PB_TOPGET, PBZTRNV,
+@@ -336,7 +336,7 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                      CALL ZGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                             TAU( IIV ), 1 )
+-                     TAULOC = TAU( IIV )
++                     TAULOC( 1 ) = TAU( IIV )
+ *
+                   ELSE
+ *
+@@ -345,7 +345,7 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C )' * v
+ *
+@@ -363,8 +363,8 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                    sub( C ) := sub( C ) - v * w'
+ *
+-                     CALL ZGERC( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                           1, C( IOFFC ), LDC )
++                     CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                           WORK( IPW ), 1, C( IOFFC ), LDC )
+                   END IF
+ *
+                END IF
+@@ -379,9 +379,9 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   IF( MYCOL.EQ.ICCOL ) THEN
+ *
+-                     TAULOC = TAU( JJV )
++                     TAULOC( 1 ) = TAU( JJV )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -398,7 +398,7 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+-                        CALL ZGERC( MP, NQ, -TAULOC, V( IOFFV ), 1,
++                        CALL ZGERC( MP, NQ, -TAULOC( 1 ), V( IOFFV ), 1,
+      $                              WORK, 1, C( IOFFC ), LDC )
+                      END IF
+ *
+@@ -421,9 +421,9 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                      IPW = MP+1
+                      CALL ZGERV2D( ICTXT, IPW, 1, WORK, IPW, MYROW,
+      $                             IVCOL )
+-                     TAULOC = WORK( IPW )
++                     TAULOC( 1 ) = WORK( IPW )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -441,7 +441,7 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+-                        CALL ZGERC( MP, NQ, -TAULOC, WORK, 1,
++                        CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
+      $                              WORK( IPW ), 1, C( IOFFC ), LDC )
+                      END IF
+ *
+@@ -471,7 +471,7 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   CALL ZGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                          TAU( IIV ), 1 )
+-                  TAULOC = TAU( IIV )
++                  TAULOC( 1 ) = TAU( IIV )
+ *
+                ELSE
+ *
+@@ -480,7 +480,7 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -500,8 +500,8 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( IOFFC.GT.0 )
+-     $               CALL ZGERC( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                           1, C( IOFFC ), LDC )
++     $               CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                           WORK( IPW ), 1, C( IOFFC ), LDC )
+                END IF
+ *
+             ELSE
+@@ -516,18 +516,18 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                   WORK(IPW) = TAU( JJV )
+                   CALL ZGEBS2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = TAU( JJV )
++                  TAULOC( 1 ) = TAU( JJV )
+ *
+                ELSE
+ *
+                   IPW = MP+1
+                   CALL ZGEBR2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1, WORK,
+      $                          IPW, MYROW, IVCOL )
+-                  TAULOC = WORK( IPW )
++                  TAULOC( 1 ) = WORK( IPW )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -547,8 +547,8 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( IOFFC.GT.0 )
+-     $               CALL ZGERC( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                           1, C( IOFFC ), LDC )
++     $               CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                           WORK( IPW ), 1, C( IOFFC ), LDC )
+                END IF
+ *
+             END IF
+@@ -577,9 +577,9 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   IF( MYROW.EQ.ICROW ) THEN
+ *
+-                     TAULOC = TAU( IIV )
++                     TAULOC( 1 ) = TAU( IIV )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -597,7 +597,7 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+                         IF( IOFFV.GT.0 .AND. IOFFC.GT.0 )
+-     $                     CALL ZGERC( MP, NQ, -TAULOC, WORK, 1,
++     $                     CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
+      $                                 V( IOFFV ), LDV, C( IOFFC ),
+      $                                 LDC )
+                      END IF
+@@ -621,9 +621,9 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                      IPW = NQ+1
+                      CALL ZGERV2D( ICTXT, IPW, 1, WORK, IPW, IVROW,
+      $                             MYCOL )
+-                     TAULOC = WORK( IPW )
++                     TAULOC( 1 ) = WORK( IPW )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -641,8 +641,8 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+-                        CALL ZGERC( MP, NQ, -TAULOC, WORK( IPW ), 1,
+-     $                              WORK, 1, C( IOFFC ), LDC )
++                        CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK( IPW ),
++     $                              1, WORK, 1, C( IOFFC ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -667,7 +667,7 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                      CALL ZGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1,
+      $                             TAU( JJV ), 1 )
+-                     TAULOC = TAU( JJV )
++                     TAULOC( 1 ) = TAU( JJV )
+ *
+                   ELSE
+ *
+@@ -676,7 +676,7 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C ) * v
+ *
+@@ -694,8 +694,8 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                    sub( C ) := sub( C ) - w * v'
+ *
+-                     CALL ZGERC( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                           1, C( IOFFC ), LDC )
++                     CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                           WORK, 1, C( IOFFC ), LDC )
+                   END IF
+ *
+                END IF
+@@ -720,18 +720,18 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                   WORK(IPW) = TAU( IIV )
+                   CALL ZGEBS2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = TAU( IIV )
++                  TAULOC( 1 ) = TAU( IIV )
+ *
+                ELSE
+ *
+                   IPW = NQ+1
+                   CALL ZGEBR2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW, IVROW, MYCOL )
+-                  TAULOC = WORK( IPW )
++                  TAULOC( 1 ) = WORK( IPW )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -750,8 +750,8 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+                   IF( IOFFC.GT.0 )
+-     $               CALL ZGERC( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                           1, C( IOFFC ), LDC )
++     $               CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                           WORK, 1, C( IOFFC ), LDC )
+                END IF
+ *
+             ELSE
+@@ -770,7 +770,7 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   CALL ZGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1, TAU( JJV ),
+      $                          1 )
+-                  TAULOC = TAU( JJV )
++                  TAULOC( 1 ) = TAU( JJV )
+ *
+                ELSE
+ *
+@@ -779,7 +779,7 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -797,8 +797,8 @@ SUBROUTINE PZLARF( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL ZGERC( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK, 1,
+-     $                        C( IOFFC ), LDC )
++                  CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                        WORK, 1, C( IOFFC ), LDC )
+                END IF
+ *
+             END IF
+diff --git a/SRC/pzlarfc.f b/SRC/pzlarfc.f
+index eb469fc..ddd7ec6 100644
+--- a/SRC/pzlarfc.f
++++ b/SRC/pzlarfc.f
+@@ -242,7 +242,7 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+      $                   IOFFV, IPW, IROFF, IVCOL, IVROW, JJC, JJV, LDC,
+      $                   LDV, MYCOL, MYROW, MP, NCC, NCV, NPCOL, NPROW,
+      $                   NQ, RDEST
+-      COMPLEX*16         TAULOC
++      COMPLEX*16         TAULOC( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, INFOG2L, PB_TOPGET, PBZTRNV,
+@@ -336,17 +336,17 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                      CALL ZGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                             TAU( IIV ), 1 )
+-                     TAULOC = DCONJG( TAU( IIV ) )
++                     TAULOC( 1 ) = DCONJG( TAU( IIV ) )
+ *
+                   ELSE
+ *
+                      CALL ZGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                             TAULOC, 1, IVROW, MYCOL )
+-                     TAULOC = DCONJG( TAULOC )
++                     TAULOC( 1 ) = DCONJG( TAULOC( 1 ) )
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C )' * v
+ *
+@@ -364,8 +364,8 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                    sub( C ) := sub( C ) - v * w'
+ *
+-                     CALL ZGERC( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                           1, C( IOFFC ), LDC )
++                     CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                           WORK( IPW ), 1, C( IOFFC ), LDC )
+                   END IF
+ *
+                END IF
+@@ -380,9 +380,9 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   IF( MYCOL.EQ.ICCOL ) THEN
+ *
+-                     TAULOC = DCONJG( TAU( JJV ) )
++                     TAULOC( 1 ) = DCONJG( TAU( JJV ) )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -399,7 +399,7 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+-                        CALL ZGERC( MP, NQ, -TAULOC, V( IOFFV ), 1,
++                        CALL ZGERC( MP, NQ, -TAULOC( 1 ), V( IOFFV ), 1,
+      $                              WORK, 1, C( IOFFC ), LDC )
+                      END IF
+ *
+@@ -422,9 +422,9 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                      IPW = MP+1
+                      CALL ZGERV2D( ICTXT, IPW, 1, WORK, IPW, MYROW,
+      $                             IVCOL )
+-                     TAULOC = DCONJG( WORK( IPW ) )
++                     TAULOC( 1 ) = DCONJG( WORK( IPW ) )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -442,7 +442,7 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+-                        CALL ZGERC( MP, NQ, -TAULOC, WORK, 1,
++                        CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
+      $                              WORK( IPW ), 1, C( IOFFC ), LDC )
+                      END IF
+ *
+@@ -472,17 +472,17 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   CALL ZGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                          TAU( IIV ), 1 )
+-                  TAULOC = DCONJG( TAU( IIV ) )
++                  TAULOC( 1 ) = DCONJG( TAU( IIV ) )
+ *
+                ELSE
+ *
+                   CALL ZGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, TAULOC,
+      $                          1, IVROW, MYCOL )
+-                  TAULOC = DCONJG( TAULOC )
++                  TAULOC( 1 ) = DCONJG( TAULOC( 1 ) )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -500,8 +500,8 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+-                  CALL ZGERC( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ), 1,
+-     $                        C( IOFFC ), LDC )
++                  CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                        WORK( IPW ), 1, C( IOFFC ), LDC )
+                END IF
+ *
+             ELSE
+@@ -516,18 +516,18 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                   WORK(IPW) = TAU( JJV )
+                   CALL ZGEBS2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = DCONJG( TAU( JJV ) )
++                  TAULOC( 1 ) = DCONJG( TAU( JJV ) )
+ *
+                ELSE
+ *
+                   IPW = MP+1
+                   CALL ZGEBR2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1, WORK,
+      $                          IPW, MYROW, IVCOL )
+-                  TAULOC = DCONJG( WORK( IPW ) )
++                  TAULOC( 1 ) = DCONJG( WORK( IPW ) )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -545,8 +545,8 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+-                  CALL ZGERC( MP, NQ, -TAULOC, WORK, 1, WORK( IPW ), 1,
+-     $                        C( IOFFC ), LDC )
++                  CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
++     $                        WORK( IPW ), 1, C( IOFFC ), LDC )
+                END IF
+ *
+             END IF
+@@ -575,9 +575,9 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   IF( MYROW.EQ.ICROW ) THEN
+ *
+-                     TAULOC = DCONJG( TAU( IIV ) )
++                     TAULOC( 1 ) = DCONJG( TAU( IIV ) )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -594,7 +594,7 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+-                        CALL ZGERC( MP, NQ, -TAULOC, WORK, 1,
++                        CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK, 1,
+      $                              V( IOFFV ), LDV, C( IOFFC ), LDC )
+                      END IF
+ *
+@@ -617,9 +617,9 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                      IPW = NQ+1
+                      CALL ZGERV2D( ICTXT, IPW, 1, WORK, IPW, IVROW,
+      $                             MYCOL )
+-                     TAULOC = DCONJG( WORK( IPW ) )
++                     TAULOC( 1 ) = DCONJG( WORK( IPW ) )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -637,8 +637,8 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+-                        CALL ZGERC( MP, NQ, -TAULOC, WORK( IPW ), 1,
+-     $                              WORK, 1, C( IOFFC ), LDC )
++                        CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK( IPW ),
++     $                              1, WORK, 1, C( IOFFC ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -663,17 +663,17 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                      CALL ZGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1,
+      $                             TAU( JJV ), 1 )
+-                     TAULOC = DCONJG( TAU( JJV ) )
++                     TAULOC( 1 ) = DCONJG( TAU( JJV ) )
+ *
+                   ELSE
+ *
+                      CALL ZGEBR2D( ICTXT, 'Rowwise', ' ', 1, 1, TAULOC,
+      $                             1, MYROW, IVCOL )
+-                     TAULOC = DCONJG( TAULOC )
++                     TAULOC( 1 ) = DCONJG( TAULOC( 1 ) )
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C ) * v
+ *
+@@ -691,8 +691,8 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                    sub( C ) := sub( C ) - w * v'
+ *
+-                     CALL ZGERC( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                           1, C( IOFFC ), LDC )
++                     CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                           WORK, 1, C( IOFFC ), LDC )
+                   END IF
+ *
+                END IF
+@@ -716,18 +716,18 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+                   WORK(IPW) = TAU( IIV )
+                   CALL ZGEBS2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = DCONJG( TAU( IIV ) )
++                  TAULOC( 1 ) = DCONJG( TAU( IIV ) )
+ *
+                ELSE
+ *
+                   IPW = NQ+1
+                   CALL ZGEBR2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW, IVROW, MYCOL )
+-                  TAULOC = DCONJG( WORK( IPW ) )
++                  TAULOC( 1 ) = DCONJG( WORK( IPW ) )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -745,8 +745,8 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL ZGERC( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK, 1,
+-     $                        C( IOFFC ), LDC )
++                  CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                        WORK, 1, C( IOFFC ), LDC )
+                END IF
+ *
+             ELSE
+@@ -765,17 +765,17 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+                   CALL ZGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1, TAU( JJV ),
+      $                          1 )
+-                  TAULOC = DCONJG( TAU( JJV ) )
++                  TAULOC( 1 ) = DCONJG( TAU( JJV ) )
+ *
+                ELSE
+ *
+                   CALL ZGEBR2D( ICTXT, 'Rowwise', ' ', 1, 1, TAULOC, 1,
+      $                          MYROW, IVCOL )
+-                  TAULOC = DCONJG( TAULOC )
++                  TAULOC( 1 ) = DCONJG( TAULOC( 1 ) )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -793,8 +793,8 @@ SUBROUTINE PZLARFC( SIDE, M, N, V, IV, JV, DESCV, INCV, TAU,
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL ZGERC( MP, NQ, -TAULOC, WORK( IPW ), 1, WORK, 1,
+-     $                        C( IOFFC ), LDC )
++                  CALL ZGERC( MP, NQ, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                        WORK, 1, C( IOFFC ), LDC )
+                END IF
+ *
+             END IF
+diff --git a/SRC/pzlarz.f b/SRC/pzlarz.f
+index fefc133..abf6288 100644
+--- a/SRC/pzlarz.f
++++ b/SRC/pzlarz.f
+@@ -251,7 +251,7 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                   IVCOL, IVROW, JJC1, JJC2, JJV, LDC, LDV, MPC2,
+      $                   MPV, MYCOL, MYROW, NCC, NCV, NPCOL, NPROW,
+      $                   NQC2, NQV, RDEST
+-      COMPLEX*16         TAULOC
++      COMPLEX*16         TAULOC( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, INFOG2L, PB_TOPGET, PBZTRNV,
+@@ -370,7 +370,7 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                      CALL ZGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                             TAU( IIV ), 1 )
+-                     TAULOC = TAU( IIV )
++                     TAULOC( 1 ) = TAU( IIV )
+ *
+                   ELSE
+ *
+@@ -379,7 +379,7 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C )' * v
+ *
+@@ -402,9 +402,9 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                    sub( C ) := sub( C ) - v * w'
+ *
+                      IF( MYROW.EQ.ICROW1 )
+-     $                  CALL ZAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $                  CALL ZAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                              MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                     CALL ZGERC( MPV, NQC2, -TAULOC, WORK, 1,
++                     CALL ZGERC( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
+      $                           WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                   END IF
+ *
+@@ -420,9 +420,9 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   IF( MYCOL.EQ.ICCOL2 ) THEN
+ *
+-                     TAULOC = TAU( JJV )
++                     TAULOC( 1 ) = TAU( JJV )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -445,11 +445,11 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+                         IF( MYROW.EQ.ICROW1 )
+-     $                     CALL ZAXPY( NQC2, -TAULOC, WORK,
++     $                     CALL ZAXPY( NQC2, -TAULOC( 1 ), WORK,
+      $                                 MAX( 1, NQC2 ), C( IOFFC1 ),
+      $                                 LDC )
+-                        CALL ZGERC( MPV, NQC2, -TAULOC, V( IOFFV ), 1,
+-     $                              WORK, 1, C( IOFFC2 ), LDC )
++                        CALL ZGERC( MPV, NQC2, -TAULOC( 1 ), V( IOFFV ),
++     $                              1, WORK, 1, C( IOFFC2 ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -471,9 +471,9 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                      IPW = MPV+1
+                      CALL ZGERV2D( ICTXT, IPW, 1, WORK, IPW, MYROW,
+      $                             IVCOL )
+-                     TAULOC = WORK( IPW )
++                     TAULOC( 1 ) = WORK( IPW )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -496,10 +496,10 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+                         IF( MYROW.EQ.ICROW1 )
+-     $                     CALL ZAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $                     CALL ZAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                                 MAX( 1, NQC2 ), C( IOFFC1 ),
+      $                                 LDC )
+-                        CALL ZGERC( MPV, NQC2, -TAULOC, WORK, 1,
++                        CALL ZGERC( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
+      $                              WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                      END IF
+ *
+@@ -530,7 +530,7 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   CALL ZGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                          TAU( IIV ), 1 )
+-                  TAULOC = TAU( IIV )
++                  TAULOC( 1 ) = TAU( IIV )
+ *
+                ELSE
+ *
+@@ -539,7 +539,7 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -562,10 +562,10 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( MYROW.EQ.ICROW1 )
+-     $               CALL ZAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $               CALL ZAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                           MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                  CALL ZGERC( MPV, NQC2, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                        1, C( IOFFC2 ), LDC )
++                  CALL ZGERC( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
++     $                        WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             ELSE
+@@ -580,18 +580,18 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                   WORK( IPW ) = TAU( JJV )
+                   CALL ZGEBS2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = TAU( JJV )
++                  TAULOC( 1 ) = TAU( JJV )
+ *
+                ELSE
+ *
+                   IPW = MPV+1
+                   CALL ZGEBR2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1, WORK,
+      $                          IPW, MYROW, IVCOL )
+-                  TAULOC = WORK( IPW )
++                  TAULOC( 1 ) = WORK( IPW )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -614,10 +614,10 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( MYROW.EQ.ICROW1 )
+-     $               CALL ZAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $               CALL ZAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                           MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                  CALL ZGERC( MPV, NQC2, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                        1, C( IOFFC2 ), LDC )
++                  CALL ZGERC( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
++     $                        WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             END IF
+@@ -646,9 +646,9 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   IF( MYROW.EQ.ICROW2 ) THEN
+ *
+-                     TAULOC = TAU( IIV )
++                     TAULOC( 1 ) = TAU( IIV )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -669,13 +669,13 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                               ICCOL2 )
+ *
+                         IF( MYCOL.EQ.ICCOL1 )
+-     $                     CALL ZAXPY( MPC2, -TAULOC, WORK, 1,
++     $                     CALL ZAXPY( MPC2, -TAULOC( 1 ), WORK, 1,
+      $                                 C( IOFFC1 ), 1 )
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+                         IF( MPC2.GT.0 .AND. NQV.GT.0 )
+-     $                     CALL ZGERC( MPC2, NQV, -TAULOC, WORK, 1,
++     $                     CALL ZGERC( MPC2, NQV, -TAULOC( 1 ), WORK, 1,
+      $                                 V( IOFFV ), LDV, C( IOFFC2 ),
+      $                                 LDC )
+                      END IF
+@@ -699,9 +699,9 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                      IPW = NQV+1
+                      CALL ZGERV2D( ICTXT, IPW, 1, WORK, IPW, IVROW,
+      $                             MYCOL )
+-                     TAULOC = WORK( IPW )
++                     TAULOC( 1 ) = WORK( IPW )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -720,13 +720,14 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                                WORK( IPW ), MAX( 1, MPC2 ),
+      $                                RDEST, ICCOL2 )
+                         IF( MYCOL.EQ.ICCOL1 )
+-     $                     CALL ZAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
+-     $                                 C( IOFFC1 ), 1 )
++     $                     CALL ZAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ),
++     $                                 1, C( IOFFC1 ), 1 )
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+-                        CALL ZGERC( MPC2, NQV, -TAULOC, WORK( IPW ), 1,
+-     $                              WORK, 1, C( IOFFC2 ), LDC )
++                        CALL ZGERC( MPC2, NQV, -TAULOC( 1 ),
++     $                              WORK( IPW ), 1, WORK, 1,
++     $                              C( IOFFC2 ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -751,7 +752,7 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                      CALL ZGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1,
+      $                             TAU( JJV ), 1 )
+-                     TAULOC = TAU( JJV )
++                     TAULOC( 1 ) = TAU( JJV )
+ *
+                   ELSE
+ *
+@@ -760,7 +761,7 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C ) * v
+ *
+@@ -779,13 +780,13 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                             WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                             ICCOL2 )
+                      IF( MYCOL.EQ.ICCOL1 )
+-     $                  CALL ZAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $                  CALL ZAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                              C( IOFFC1 ), 1 )
+ *
+ *                    sub( C ) := sub( C ) - w * v'
+ *
+-                     CALL ZGERC( MPC2, NQV, -TAULOC, WORK( IPW ), 1,
+-     $                           WORK, 1, C( IOFFC2 ), LDC )
++                     CALL ZGERC( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ),
++     $                           1, WORK, 1, C( IOFFC2 ), LDC )
+                   END IF
+ *
+                END IF
+@@ -809,18 +810,18 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                   WORK( IPW ) = TAU( IIV )
+                   CALL ZGEBS2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = TAU( IIV )
++                  TAULOC( 1 ) = TAU( IIV )
+ *
+                ELSE
+ *
+                   IPW = NQV+1
+                   CALL ZGEBR2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW, IVROW, MYCOL )
+-                  TAULOC = WORK( IPW )
++                  TAULOC( 1 ) = WORK( IPW )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -840,13 +841,13 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                          WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                          ICCOL2 )
+                   IF( MYCOL.EQ.ICCOL1 )
+-     $               CALL ZAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $               CALL ZAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                           C( IOFFC1 ), 1 )
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL ZGERC( MPC2, NQV, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                        1, C( IOFFC2 ), LDC )
++                  CALL ZGERC( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                        WORK, 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             ELSE
+@@ -865,7 +866,7 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   CALL ZGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1, TAU( JJV ),
+      $                          1 )
+-                  TAULOC = TAU( JJV )
++                  TAULOC( 1 ) = TAU( JJV )
+ *
+                ELSE
+ *
+@@ -874,7 +875,7 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -893,13 +894,13 @@ SUBROUTINE PZLARZ( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                          WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                          ICCOL2 )
+                   IF( MYCOL.EQ.ICCOL1 )
+-     $               CALL ZAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $               CALL ZAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                           C( IOFFC1 ), 1 )
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL ZGERC( MPC2, NQV, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                        1, C( IOFFC2 ), LDC )
++                  CALL ZGERC( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                        WORK, 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             END IF
+diff --git a/SRC/pzlarzc.f b/SRC/pzlarzc.f
+index 936caec..2c574ff 100644
+--- a/SRC/pzlarzc.f
++++ b/SRC/pzlarzc.f
+@@ -251,7 +251,7 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                   IVCOL, IVROW, JJC1, JJC2, JJV, LDC, LDV, MPC2,
+      $                   MPV, MYCOL, MYROW, NCC, NCV, NPCOL, NPROW,
+      $                   NQC2, NQV, RDEST
+-      COMPLEX*16         TAULOC
++      COMPLEX*16         TAULOC( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, INFOG2L, PB_TOPGET, PBZTRNV,
+@@ -370,17 +370,17 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                      CALL ZGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                             TAU( IIV ), 1 )
+-                     TAULOC = DCONJG( TAU( IIV ) )
++                     TAULOC( 1 ) = DCONJG( TAU( IIV ) )
+ *
+                   ELSE
+ *
+                      CALL ZGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                             TAULOC, 1, IVROW, MYCOL )
+-                     TAULOC = DCONJG( TAULOC )
++                     TAULOC( 1 ) = DCONJG( TAULOC( 1 ) )
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C )' * v
+ *
+@@ -403,9 +403,9 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                    sub( C ) := sub( C ) - v * w'
+ *
+                      IF( MYROW.EQ.ICROW1 )
+-     $                  CALL ZAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $                  CALL ZAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                              MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                     CALL ZGERC( MPV, NQC2, -TAULOC, WORK, 1,
++                     CALL ZGERC( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
+      $                           WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                   END IF
+ *
+@@ -421,9 +421,9 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   IF( MYCOL.EQ.ICCOL2 ) THEN
+ *
+-                     TAULOC = DCONJG( TAU( JJV ) )
++                     TAULOC( 1 ) = DCONJG( TAU( JJV ) )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -446,11 +446,11 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+                         IF( MYROW.EQ.ICROW1 )
+-     $                     CALL ZAXPY( NQC2, -TAULOC, WORK,
++     $                     CALL ZAXPY( NQC2, -TAULOC( 1 ), WORK,
+      $                                 MAX( 1, NQC2 ), C( IOFFC1 ),
+      $                                 LDC )
+-                        CALL ZGERC( MPV, NQC2, -TAULOC, V( IOFFV ), 1,
+-     $                              WORK, 1, C( IOFFC2 ), LDC )
++                        CALL ZGERC( MPV, NQC2, -TAULOC( 1 ), V( IOFFV ),
++     $                              1, WORK, 1, C( IOFFC2 ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -472,9 +472,9 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                      IPW = MPV+1
+                      CALL ZGERV2D( ICTXT, IPW, 1, WORK, IPW, MYROW,
+      $                             IVCOL )
+-                     TAULOC = DCONJG( WORK( IPW ) )
++                     TAULOC( 1 ) = DCONJG( WORK( IPW ) )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C )' * v
+ *
+@@ -497,10 +497,10 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                       sub( C ) := sub( C ) - v * w'
+ *
+                         IF( MYROW.EQ.ICROW1 )
+-     $                     CALL ZAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $                     CALL ZAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                                 MAX( 1, NQC2 ), C( IOFFC1 ),
+      $                                 LDC )
+-                        CALL ZGERC( MPV, NQC2, -TAULOC, WORK, 1,
++                        CALL ZGERC( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
+      $                              WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                      END IF
+ *
+@@ -531,17 +531,17 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   CALL ZGEBS2D( ICTXT, 'Columnwise', ' ', 1, 1,
+      $                          TAU( IIV ), 1 )
+-                  TAULOC = DCONJG( TAU( IIV ) )
++                  TAULOC( 1 ) = DCONJG( TAU( IIV ) )
+ *
+                ELSE
+ *
+                   CALL ZGEBR2D( ICTXT, 'Columnwise', ' ', 1, 1, TAULOC,
+      $                          1, IVROW, MYCOL )
+-                  TAULOC = DCONJG( TAULOC )
++                  TAULOC( 1 ) = DCONJG( TAULOC( 1 ) )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -564,10 +564,10 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( MYROW.EQ.ICROW1 )
+-     $               CALL ZAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $               CALL ZAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                           MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                  CALL ZGERC( MPV, NQC2, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                        1, C( IOFFC2 ), LDC )
++                  CALL ZGERC( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
++     $                        WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             ELSE
+@@ -582,18 +582,18 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                   WORK( IPW ) = TAU( JJV )
+                   CALL ZGEBS2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = DCONJG( TAU( JJV ) )
++                  TAULOC( 1 ) = DCONJG( TAU( JJV ) )
+ *
+                ELSE
+ *
+                   IPW = MPV+1
+                   CALL ZGEBR2D( ICTXT, 'Rowwise', ROWBTOP, IPW, 1, WORK,
+      $                          IPW, MYROW, IVCOL )
+-                  TAULOC = DCONJG( WORK( IPW ) )
++                  TAULOC( 1 ) = DCONJG( WORK( IPW ) )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C )' * v
+ *
+@@ -616,10 +616,10 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *                 sub( C ) := sub( C ) - v * w'
+ *
+                   IF( MYROW.EQ.ICROW1 )
+-     $               CALL ZAXPY( NQC2, -TAULOC, WORK( IPW ),
++     $               CALL ZAXPY( NQC2, -TAULOC( 1 ), WORK( IPW ),
+      $                           MAX( 1, NQC2 ), C( IOFFC1 ), LDC )
+-                  CALL ZGERC( MPV, NQC2, -TAULOC, WORK, 1, WORK( IPW ),
+-     $                        1, C( IOFFC2 ), LDC )
++                  CALL ZGERC( MPV, NQC2, -TAULOC( 1 ), WORK, 1,
++     $                        WORK( IPW ), 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             END IF
+@@ -648,9 +648,9 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   IF( MYROW.EQ.ICROW2 ) THEN
+ *
+-                     TAULOC = DCONJG( TAU( IIV ) )
++                     TAULOC( 1 ) = DCONJG( TAU( IIV ) )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -671,12 +671,12 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                               ICCOL2 )
+ *
+                         IF( MYCOL.EQ.ICCOL1 )
+-     $                     CALL ZAXPY( MPC2, -TAULOC, WORK, 1,
++     $                     CALL ZAXPY( MPC2, -TAULOC( 1 ), WORK, 1,
+      $                                 C( IOFFC1 ), 1 )
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+-                        CALL ZGERC( MPC2, NQV, -TAULOC, WORK, 1,
++                        CALL ZGERC( MPC2, NQV, -TAULOC( 1 ), WORK, 1,
+      $                              V( IOFFV ), LDV, C( IOFFC2 ), LDC )
+                      END IF
+ *
+@@ -699,9 +699,9 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                      IPW = NQV+1
+                      CALL ZGERV2D( ICTXT, IPW, 1, WORK, IPW, IVROW,
+      $                             MYCOL )
+-                     TAULOC = DCONJG( WORK( IPW ) )
++                     TAULOC( 1 ) = DCONJG( WORK( IPW ) )
+ *
+-                     IF( TAULOC.NE.ZERO ) THEN
++                     IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                       w := sub( C ) * v
+ *
+@@ -720,13 +720,14 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                                WORK( IPW ), MAX( 1, MPC2 ),
+      $                                RDEST, ICCOL2 )
+                         IF( MYCOL.EQ.ICCOL1 )
+-     $                     CALL ZAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
+-     $                                 C( IOFFC1 ), 1 )
++     $                     CALL ZAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ),
++     $                                 1, C( IOFFC1 ), 1 )
+ *
+ *                       sub( C ) := sub( C ) - w * v'
+ *
+-                        CALL ZGERC( MPC2, NQV, -TAULOC, WORK( IPW ), 1,
+-     $                              WORK, 1, C( IOFFC2 ), LDC )
++                        CALL ZGERC( MPC2, NQV, -TAULOC( 1 ),
++     $                              WORK( IPW ), 1, WORK, 1,
++     $                              C( IOFFC2 ), LDC )
+                      END IF
+ *
+                   END IF
+@@ -751,17 +752,17 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                      CALL ZGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1,
+      $                             TAU( JJV ), 1 )
+-                     TAULOC = DCONJG( TAU( JJV ) )
++                     TAULOC( 1 ) = DCONJG( TAU( JJV ) )
+ *
+                   ELSE
+ *
+                      CALL ZGEBR2D( ICTXT, 'Rowwise', ' ', 1, 1, TAULOC,
+      $                             1, MYROW, IVCOL )
+-                     TAULOC = DCONJG( TAULOC )
++                     TAULOC( 1 ) = DCONJG( TAULOC( 1 ) )
+ *
+                   END IF
+ *
+-                  IF( TAULOC.NE.ZERO ) THEN
++                  IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                    w := sub( C ) * v
+ *
+@@ -780,13 +781,13 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                             WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                             ICCOL2 )
+                      IF( MYCOL.EQ.ICCOL1 )
+-     $                  CALL ZAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $                  CALL ZAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                              C( IOFFC1 ), 1 )
+ *
+ *                    sub( C ) := sub( C ) - w * v'
+ *
+-                     CALL ZGERC( MPC2, NQV, -TAULOC, WORK( IPW ), 1,
+-     $                           WORK, 1, C( IOFFC2 ), LDC )
++                     CALL ZGERC( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ),
++     $                           1, WORK, 1, C( IOFFC2 ), LDC )
+                   END IF
+ *
+                END IF
+@@ -810,18 +811,18 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+                   WORK( IPW ) = TAU( IIV )
+                   CALL ZGEBS2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW )
+-                  TAULOC = DCONJG( TAU( IIV ) )
++                  TAULOC( 1 ) = DCONJG( TAU( IIV ) )
+ *
+                ELSE
+ *
+                   IPW = NQV+1
+                   CALL ZGEBR2D( ICTXT, 'Columnwise', COLBTOP, IPW, 1,
+      $                          WORK, IPW, IVROW, MYCOL )
+-                  TAULOC = DCONJG( WORK( IPW ) )
++                  TAULOC( 1 ) = DCONJG( WORK( IPW ) )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -841,13 +842,13 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                          WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                          ICCOL2 )
+                   IF( MYCOL.EQ.ICCOL1 )
+-     $               CALL ZAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $               CALL ZAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                           C( IOFFC1 ), 1 )
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL ZGERC( MPC2, NQV, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                        1, C( IOFFC2 ), LDC )
++                  CALL ZGERC( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                        WORK, 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             ELSE
+@@ -866,17 +867,17 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+ *
+                   CALL ZGEBS2D( ICTXT, 'Rowwise', ' ', 1, 1, TAU( JJV ),
+      $                          1 )
+-                  TAULOC = DCONJG( TAU( JJV ) )
++                  TAULOC( 1 ) = DCONJG( TAU( JJV ) )
+ *
+                ELSE
+ *
+                   CALL ZGEBR2D( ICTXT, 'Rowwise', ' ', 1, 1, TAULOC, 1,
+      $                          MYROW, IVCOL )
+-                  TAULOC = DCONJG( TAULOC )
++                  TAULOC( 1 ) = DCONJG( TAULOC( 1 ) )
+ *
+                END IF
+ *
+-               IF( TAULOC.NE.ZERO ) THEN
++               IF( TAULOC( 1 ).NE.ZERO ) THEN
+ *
+ *                 w := sub( C ) * v
+ *
+@@ -895,13 +896,13 @@ SUBROUTINE PZLARZC( SIDE, M, N, L, V, IV, JV, DESCV, INCV, TAU, C,
+      $                          WORK( IPW ), MAX( 1, MPC2 ), RDEST,
+      $                          ICCOL2 )
+                   IF( MYCOL.EQ.ICCOL1 )
+-     $               CALL ZAXPY( MPC2, -TAULOC, WORK( IPW ), 1,
++     $               CALL ZAXPY( MPC2, -TAULOC( 1 ), WORK( IPW ), 1,
+      $                           C( IOFFC1 ), 1 )
+ *
+ *                 sub( C ) := sub( C ) - w * v'
+ *
+-                  CALL ZGERC( MPC2, NQV, -TAULOC, WORK( IPW ), 1, WORK,
+-     $                        1, C( IOFFC2 ), LDC )
++                  CALL ZGERC( MPC2, NQV, -TAULOC( 1 ), WORK( IPW ), 1,
++     $                        WORK, 1, C( IOFFC2 ), LDC )
+                END IF
+ *
+             END IF
+diff --git a/SRC/pzlattrs.f b/SRC/pzlattrs.f
+index 819e476..5a54209 100644
+--- a/SRC/pzlattrs.f
++++ b/SRC/pzlattrs.f
+@@ -271,8 +271,9 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+      $                   JINC, JLAST, LDA, LDX, MB, MYCOL, MYROW, NB,
+      $                   NPCOL, NPROW, RSRC
+       DOUBLE PRECISION   BIGNUM, GROW, REC, SMLNUM, TJJ, TMAX, TSCAL,
+-     $                   XBND, XJ, XMAX
++     $                   XBND, XJ
+       COMPLEX*16         CSUMJ, TJJS, USCAL, XJTMP, ZDUM
++      DOUBLE PRECISION   XMAX( 1 )
+ *     ..
+ *     .. External Functions ..
+       LOGICAL            LSAME
+@@ -391,11 +392,11 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+ *     Compute a bound on the computed solution vector to see if the
+ *     Level 2 PBLAS routine PZTRSV can be used.
+ *
+-      XMAX = ZERO
++      XMAX( 1 ) = ZERO
+       CALL PZAMAX( N, ZDUM, IMAX, X, IX, JX, DESCX, 1 )
+-      XMAX = CABS2( ZDUM )
++      XMAX( 1 ) = CABS2( ZDUM )
+       CALL DGSUM2D( CONTXT, 'Row', ' ', 1, 1, XMAX, 1, -1, -1 )
+-      XBND = XMAX
++      XBND = XMAX( 1 )
+ *
+       IF( NOTRAN ) THEN
+ *
+@@ -590,16 +591,16 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+ *
+ *        Use a Level 1 PBLAS solve, scaling intermediate results.
+ *
+-         IF( XMAX.GT.BIGNUM*HALF ) THEN
++         IF( XMAX( 1 ).GT.BIGNUM*HALF ) THEN
+ *
+ *           Scale X so that its components are less than or equal to
+ *           BIGNUM in absolute value.
+ *
+-            SCALE = ( BIGNUM*HALF ) / XMAX
++            SCALE = ( BIGNUM*HALF ) / XMAX( 1 )
+             CALL PZDSCAL( N, SCALE, X, IX, JX, DESCX, 1 )
+-            XMAX = BIGNUM
++            XMAX( 1 ) = BIGNUM
+          ELSE
+-            XMAX = XMAX*TWO
++            XMAX( 1 ) = XMAX( 1 )*TWO
+          END IF
+ *
+          IF( NOTRAN ) THEN
+@@ -651,7 +652,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                         CALL PZDSCAL( N, REC, X, IX, JX, DESCX, 1 )
+                         XJTMP = XJTMP*REC
+                         SCALE = SCALE*REC
+-                        XMAX = XMAX*REC
++                        XMAX( 1 ) = XMAX( 1 )*REC
+                      END IF
+                   END IF
+ *                 X( J ) = ZLADIV( X( J ), TJJS )
+@@ -682,7 +683,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                      CALL PZDSCAL( N, REC, X, IX, JX, DESCX, 1 )
+                      XJTMP = XJTMP*REC
+                      SCALE = SCALE*REC
+-                     XMAX = XMAX*REC
++                     XMAX( 1 ) = XMAX( 1 )*REC
+                   END IF
+ *                 X( J ) = ZLADIV( X( J ), TJJS )
+ *                 XJ = CABS1( X( J ) )
+@@ -706,7 +707,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                   XJTMP = CONE
+                   XJ = ONE
+                   SCALE = ZERO
+-                  XMAX = ZERO
++                  XMAX( 1 ) = ZERO
+                END IF
+    90          CONTINUE
+ *
+@@ -715,7 +716,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+ *
+                IF( XJ.GT.ONE ) THEN
+                   REC = ONE / XJ
+-                  IF( CNORM( J ).GT.( BIGNUM-XMAX )*REC ) THEN
++                  IF( CNORM( J ).GT.( BIGNUM-XMAX( 1 ) )*REC ) THEN
+ *
+ *                    Scale x by 1/(2*abs(x(j))).
+ *
+@@ -724,7 +725,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                      XJTMP = XJTMP*REC
+                      SCALE = SCALE*REC
+                   END IF
+-               ELSE IF( XJ*CNORM( J ).GT.( BIGNUM-XMAX ) ) THEN
++               ELSE IF( XJ*CNORM( J ).GT.( BIGNUM-XMAX( 1 ) ) ) THEN
+ *
+ *                 Scale x by 1/2.
+ *
+@@ -743,7 +744,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                      CALL PZAXPY( J-1, ZDUM, A, IA, JA+J-1, DESCA, 1, X,
+      $                            IX, JX, DESCX, 1 )
+                      CALL PZAMAX( J-1, ZDUM, IMAX, X, IX, JX, DESCX, 1 )
+-                     XMAX = CABS1( ZDUM )
++                     XMAX( 1 ) = CABS1( ZDUM )
+                      CALL DGSUM2D( CONTXT, 'Row', ' ', 1, 1, XMAX, 1,
+      $                             -1, -1 )
+                   END IF
+@@ -757,7 +758,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                      CALL PZAXPY( N-J, ZDUM, A, IA+J, JA+J-1, DESCA, 1,
+      $                            X, IX+J, JX, DESCX, 1 )
+                      CALL PZAMAX( N-J, ZDUM, I, X, IX+J, JX, DESCX, 1 )
+-                     XMAX = CABS1( ZDUM )
++                     XMAX( 1 ) = CABS1( ZDUM )
+                      CALL DGSUM2D( CONTXT, 'Row', ' ', 1, 1, XMAX, 1,
+      $                             -1, -1 )
+                   END IF
+@@ -785,7 +786,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                END IF
+                XJ = CABS1( XJTMP )
+                USCAL = DCMPLX( TSCAL )
+-               REC = ONE / MAX( XMAX, ONE )
++               REC = ONE / MAX( XMAX( 1 ), ONE )
+                IF( CNORM( J ).GT.( BIGNUM-XJ )*REC ) THEN
+ *
+ *                 If x(j) could overflow, scale x by 1/(2*XMAX).
+@@ -820,7 +821,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                      CALL PZDSCAL( N, REC, X, IX, JX, DESCX, 1 )
+                      XJTMP = XJTMP*REC
+                      SCALE = SCALE*REC
+-                     XMAX = XMAX*REC
++                     XMAX( 1 ) = XMAX( 1 )*REC
+                   END IF
+                END IF
+ *
+@@ -924,7 +925,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                            CALL PZDSCAL( N, REC, X, IX, JX, DESCX, 1 )
+                            XJTMP = XJTMP*REC
+                            SCALE = SCALE*REC
+-                           XMAX = XMAX*REC
++                           XMAX( 1 ) = XMAX( 1 )*REC
+                         END IF
+                      END IF
+ *                    X( J ) = ZLADIV( X( J ), TJJS )
+@@ -945,7 +946,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                         CALL PZDSCAL( N, REC, X, IX, JX, DESCX, 1 )
+                         XJTMP = XJTMP*REC
+                         SCALE = SCALE*REC
+-                        XMAX = XMAX*REC
++                        XMAX( 1 ) = XMAX( 1 )*REC
+                      END IF
+ *                    X( J ) = ZLADIV( X( J ), TJJS )
+                      XJTMP = ZLADIV( XJTMP, TJJS )
+@@ -966,7 +967,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                      END IF
+                      XJTMP = CONE
+                      SCALE = ZERO
+-                     XMAX = ZERO
++                     XMAX( 1 ) = ZERO
+                   END IF
+   110             CONTINUE
+                ELSE
+@@ -981,7 +982,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                      X( IROWX ) = XJTMP
+                   END IF
+                END IF
+-               XMAX = MAX( XMAX, CABS1( XJTMP ) )
++               XMAX( 1 ) = MAX( XMAX( 1 ), CABS1( XJTMP ) )
+   120       CONTINUE
+ *
+          ELSE
+@@ -1004,7 +1005,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                END IF
+                XJ = CABS1( XJTMP )
+                USCAL = TSCAL
+-               REC = ONE / MAX( XMAX, ONE )
++               REC = ONE / MAX( XMAX( 1 ), ONE )
+                IF( CNORM( J ).GT.( BIGNUM-XJ )*REC ) THEN
+ *
+ *                 If x(j) could overflow, scale x by 1/(2*XMAX).
+@@ -1039,7 +1040,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                      CALL PZDSCAL( N, REC, X, IX, JX, DESCX, 1 )
+                      XJTMP = XJTMP*REC
+                      SCALE = SCALE*REC
+-                     XMAX = XMAX*REC
++                     XMAX( 1 ) = XMAX( 1 )*REC
+                   END IF
+                END IF
+ *
+@@ -1145,7 +1146,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                            CALL PZDSCAL( N, REC, X, IX, JX, DESCX, 1 )
+                            XJTMP = XJTMP*REC
+                            SCALE = SCALE*REC
+-                           XMAX = XMAX*REC
++                           XMAX( 1 ) = XMAX( 1 )*REC
+                         END IF
+                      END IF
+ *                    X( J ) = ZLADIV( X( J ), TJJS )
+@@ -1164,7 +1165,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                         CALL PZDSCAL( N, REC, X, IX, JX, DESCX, 1 )
+                         XJTMP = XJTMP*REC
+                         SCALE = SCALE*REC
+-                        XMAX = XMAX*REC
++                        XMAX( 1 ) = XMAX( 1 )*REC
+                      END IF
+ *                    X( J ) = ZLADIV( X( J ), TJJS )
+                      XJTMP = ZLADIV( XJTMP, TJJS )
+@@ -1181,7 +1182,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+      $                  X( IROWX ) = CONE
+                      XJTMP = CONE
+                      SCALE = ZERO
+-                     XMAX = ZERO
++                     XMAX( 1 ) = ZERO
+                   END IF
+   130             CONTINUE
+                ELSE
+@@ -1194,7 +1195,7 @@ SUBROUTINE PZLATTRS( UPLO, TRANS, DIAG, NORMIN, N, A, IA, JA,
+                   IF( ( MYROW.EQ.ITMP1X ) .AND. ( MYCOL.EQ.ITMP2X ) )
+      $               X( IROWX ) = XJTMP
+                END IF
+-               XMAX = MAX( XMAX, CABS1( XJTMP ) )
++               XMAX( 1 ) = MAX( XMAX( 1 ), CABS1( XJTMP ) )
+   140       CONTINUE
+          END IF
+          SCALE = SCALE / TSCAL
+diff --git a/SRC/pzlawil.f b/SRC/pzlawil.f
+index e89a9a3..7e502ef 100644
+--- a/SRC/pzlawil.f
++++ b/SRC/pzlawil.f
+@@ -124,11 +124,10 @@ SUBROUTINE PZLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V )
+      $                   MODKM1, MYCOL, MYROW, NPCOL, NPROW, NUM, RIGHT,
+      $                   RSRC, UP
+       DOUBLE PRECISION   S
+-      COMPLEX*16         CDUM, H11, H12, H21, H22, H33S, H44S, V1, V2,
+-     $                   V3
++      COMPLEX*16         CDUM, H22, H33S, H44S, V1, V2
+ *     ..
+ *     .. Local Arrays ..
+-      COMPLEX*16         BUF( 4 )
++      COMPLEX*16         BUF( 4 ), H11( 1 ), H12( 1 ), H21( 1 ), V3( 1 )
+ *     ..
+ *     .. External Subroutines ..
+       EXTERNAL           BLACS_GRIDINFO, INFOG2L, ZGERV2D, ZGESD2D
+@@ -181,18 +180,18 @@ SUBROUTINE PZLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V )
+             IF( NPCOL.GT.1 ) THEN
+                CALL ZGERV2D( CONTXT, 1, 1, V3, 1, MYROW, LEFT )
+             ELSE
+-               V3 = A( ( ICOL-2 )*LDA+IROW )
++               V3( 1 ) = A( ( ICOL-2 )*LDA+IROW )
+             END IF
+             IF( NUM.GT.1 ) THEN
+                CALL ZGERV2D( CONTXT, 4, 1, BUF, 4, UP, LEFT )
+-               H11 = BUF( 1 )
+-               H21 = BUF( 2 )
+-               H12 = BUF( 3 )
++               H11( 1 ) = BUF( 1 )
++               H21( 1 ) = BUF( 2 )
++               H12( 1 ) = BUF( 3 )
+                H22 = BUF( 4 )
+             ELSE
+-               H11 = A( ( ICOL-3 )*LDA+IROW-2 )
+-               H21 = A( ( ICOL-3 )*LDA+IROW-1 )
+-               H12 = A( ( ICOL-2 )*LDA+IROW-2 )
++               H11( 1 ) = A( ( ICOL-3 )*LDA+IROW-2 )
++               H21( 1 ) = A( ( ICOL-3 )*LDA+IROW-1 )
++               H12( 1 ) = A( ( ICOL-2 )*LDA+IROW-2 )
+                H22 = A( ( ICOL-2 )*LDA+IROW-1 )
+             END IF
+          END IF
+@@ -225,20 +224,20 @@ SUBROUTINE PZLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V )
+             IF( NUM.GT.1 ) THEN
+                CALL ZGERV2D( CONTXT, 1, 1, H11, 1, UP, LEFT )
+             ELSE
+-               H11 = A( ( ICOL-3 )*LDA+IROW-2 )
++               H11( 1 ) = A( ( ICOL-3 )*LDA+IROW-2 )
+             END IF
+             IF( NPROW.GT.1 ) THEN
+                CALL ZGERV2D( CONTXT, 1, 1, H12, 1, UP, MYCOL )
+             ELSE
+-               H12 = A( ( ICOL-2 )*LDA+IROW-2 )
++               H12( 1 ) = A( ( ICOL-2 )*LDA+IROW-2 )
+             END IF
+             IF( NPCOL.GT.1 ) THEN
+                CALL ZGERV2D( CONTXT, 1, 1, H21, 1, MYROW, LEFT )
+             ELSE
+-               H21 = A( ( ICOL-3 )*LDA+IROW-1 )
++               H21( 1 ) = A( ( ICOL-3 )*LDA+IROW-1 )
+             END IF
+             H22 = A( ( ICOL-2 )*LDA+IROW-1 )
+-            V3 = A( ( ICOL-2 )*LDA+IROW )
++            V3( 1 ) = A( ( ICOL-2 )*LDA+IROW )
+          END IF
+       END IF
+       IF( ( MYROW.NE.II ) .OR. ( MYCOL.NE.JJ ) )
+@@ -247,24 +246,24 @@ SUBROUTINE PZLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V )
+       IF( MODKM1.GT.1 ) THEN
+          CALL INFOG2L( M+2, M+2, DESCA, NPROW, NPCOL, MYROW, MYCOL,
+      $                 IROW, ICOL, RSRC, JSRC )
+-         H11 = A( ( ICOL-3 )*LDA+IROW-2 )
+-         H21 = A( ( ICOL-3 )*LDA+IROW-1 )
+-         H12 = A( ( ICOL-2 )*LDA+IROW-2 )
++         H11( 1 ) = A( ( ICOL-3 )*LDA+IROW-2 )
++         H21( 1 ) = A( ( ICOL-3 )*LDA+IROW-1 )
++         H12( 1 ) = A( ( ICOL-2 )*LDA+IROW-2 )
+          H22 = A( ( ICOL-2 )*LDA+IROW-1 )
+-         V3 = A( ( ICOL-2 )*LDA+IROW )
++         V3( 1 ) = A( ( ICOL-2 )*LDA+IROW )
+       END IF
+ *
+-      H44S = H44 - H11
+-      H33S = H33 - H11
+-      V1 = ( H33S*H44S-H43H34 ) / H21 + H12
+-      V2 = H22 - H11 - H33S - H44S
+-      S = CABS1( V1 ) + CABS1( V2 ) + CABS1( V3 )
++      H44S = H44 - H11( 1 )
++      H33S = H33 - H11( 1 )
++      V1 = ( H33S*H44S-H43H34 ) / H21( 1 ) + H12( 1 )
++      V2 = H22 - H11( 1 ) - H33S - H44S
++      S = CABS1( V1 ) + CABS1( V2 ) + CABS1( V3( 1 ) )
+       V1 = V1 / S
+       V2 = V2 / S
+-      V3 = V3 / S
++      V3( 1 ) = V3( 1 ) / S
+       V( 1 ) = V1
+       V( 2 ) = V2
+-      V( 3 ) = V3
++      V( 3 ) = V3( 1 )
+ *
+       RETURN
+ *
+diff --git a/SRC/pztrevc.f b/SRC/pztrevc.f
+index 0536475..3b27286 100644
+--- a/SRC/pztrevc.f
++++ b/SRC/pztrevc.f
+@@ -218,11 +218,12 @@ SUBROUTINE PZTREVC( SIDE, HOWMNY, SELECT, N, T, DESCT, VL, DESCVL,
+      $                   ITMP2, J, K, KI, LDT, LDVL, LDVR, LDW, MB,
+      $                   MYCOL, MYROW, NB, NPCOL, NPROW, RSRC
+       REAL               SELF
+-      DOUBLE PRECISION   OVFL, REMAXD, SCALE, SMIN, SMLNUM, ULP, UNFL
++      DOUBLE PRECISION   OVFL, REMAXD, SCALE, SMLNUM, ULP, UNFL
+       COMPLEX*16         CDUM, REMAXC, SHIFT
+ *     ..
+ *     .. Local Arrays ..
+       INTEGER            DESCW( DLEN_ )
++      DOUBLE PRECISION   SMIN( 1 )
+ *     ..
+ *     .. External Functions ..
+       LOGICAL            LSAME
+@@ -355,13 +356,13 @@ SUBROUTINE PZTREVC( SIDE, HOWMNY, SELECT, N, T, DESCT, VL, DESCVL,
+      $            GO TO 70
+             END IF
+ *
+-            SMIN = ZERO
++            SMIN( 1 ) = ZERO
+             SHIFT = CZERO
+             CALL INFOG2L( KI, KI, DESCT, NPROW, NPCOL, MYROW, MYCOL,
+      $                    IROW, ICOL, ITMP1, ITMP2 )
+             IF( ( MYROW.EQ.ITMP1 ) .AND. ( MYCOL.EQ.ITMP2 ) ) THEN
+                SHIFT = T( ( ICOL-1 )*LDT+IROW )
+-               SMIN = MAX( ULP*( CABS1( SHIFT ) ), SMLNUM )
++               SMIN( 1 ) = MAX( ULP*( CABS1( SHIFT ) ), SMLNUM )
+             END IF
+             CALL DGSUM2D( CONTXT, 'ALL', ' ', 1, 1, SMIN, 1, -1, -1 )
+             CALL ZGSUM2D( CONTXT, 'ALL', ' ', 1, 1, SHIFT, 1, -1, -1 )
+@@ -396,8 +397,9 @@ SUBROUTINE PZTREVC( SIDE, HOWMNY, SELECT, N, T, DESCT, VL, DESCVL,
+                IF( ( MYROW.EQ.ITMP1 ) .AND. ( MYCOL.EQ.ITMP2 ) ) THEN
+                   T( ( ICOL-1 )*LDT+IROW ) = T( ( ICOL-1 )*LDT+IROW ) -
+      $               SHIFT
+-                  IF( CABS1( T( ( ICOL-1 )*LDT+IROW ) ).LT.SMIN ) THEN
+-                     T( ( ICOL-1 )*LDT+IROW ) = DCMPLX( SMIN )
++                  IF( CABS1( T( ( ICOL-1 )*LDT+IROW ) ).LT.SMIN( 1 ) )
++     $            THEN
++                     T( ( ICOL-1 )*LDT+IROW ) = DCMPLX( SMIN( 1 ) )
+                   END IF
+                END IF
+    50       CONTINUE
+@@ -467,13 +469,13 @@ SUBROUTINE PZTREVC( SIDE, HOWMNY, SELECT, N, T, DESCT, VL, DESCVL,
+      $            GO TO 110
+             END IF
+ *
+-            SMIN = ZERO
++            SMIN( 1 ) = ZERO
+             SHIFT = CZERO
+             CALL INFOG2L( KI, KI, DESCT, NPROW, NPCOL, MYROW, MYCOL,
+      $                    IROW, ICOL, ITMP1, ITMP2 )
+             IF( ( MYROW.EQ.ITMP1 ) .AND. ( MYCOL.EQ.ITMP2 ) ) THEN
+                SHIFT = T( ( ICOL-1 )*LDT+IROW )
+-               SMIN = MAX( ULP*( CABS1( SHIFT ) ), SMLNUM )
++               SMIN( 1 ) = MAX( ULP*( CABS1( SHIFT ) ), SMLNUM )
+             END IF
+             CALL DGSUM2D( CONTXT, 'ALL', ' ', 1, 1, SMIN, 1, -1, -1 )
+             CALL ZGSUM2D( CONTXT, 'ALL', ' ', 1, 1, SHIFT, 1, -1, -1 )
+@@ -507,8 +509,8 @@ SUBROUTINE PZTREVC( SIDE, HOWMNY, SELECT, N, T, DESCT, VL, DESCVL,
+                IF( ( MYROW.EQ.ITMP1 ) .AND. ( MYCOL.EQ.ITMP2 ) ) THEN
+                   T( ( ICOL-1 )*LDT+IROW ) = T( ( ICOL-1 )*LDT+IROW ) -
+      $               SHIFT
+-                  IF( CABS1( T( ( ICOL-1 )*LDT+IROW ) ).LT.SMIN )
+-     $               T( ( ICOL-1 )*LDT+IROW ) = DCMPLX( SMIN )
++                  IF( CABS1( T( ( ICOL-1 )*LDT+IROW ) ).LT.SMIN( 1 ) )
++     $               T( ( ICOL-1 )*LDT+IROW ) = DCMPLX( SMIN( 1 ) )
+                END IF
+    90       CONTINUE
+ *
+
+From 189c84001bcd564296a475c5c757afc9f337e828 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tiziano=20M=C3=BCller?= <tiziano.mueller@chem.uzh.ch>
+Date: Thu, 25 Jun 2020 18:37:34 +0200
+Subject: [PATCH] use -std=legacy for tests with GCC-10+
+
+---
+ BLACS/TESTING/CMakeLists.txt | 10 +++++++---
+ PBLAS/TESTING/CMakeLists.txt |  7 ++++---
+ PBLAS/TIMING/CMakeLists.txt  |  5 +++--
+ TESTING/EIG/CMakeLists.txt   |  3 +++
+ TESTING/LIN/CMakeLists.txt   |  4 ++++
+ 5 files changed, 21 insertions(+), 8 deletions(-)
+
+diff --git a/BLACS/TESTING/CMakeLists.txt b/BLACS/TESTING/CMakeLists.txt
+index d8846b5..4e91ac2 100644
+--- a/BLACS/TESTING/CMakeLists.txt
++++ b/BLACS/TESTING/CMakeLists.txt
+@@ -1,10 +1,14 @@
+-set(FTestObj  
++set(FTestObj
+    blacstest.f btprim.f tools.f)
+ 
++if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
++    set_source_files_properties(blacstest.f PROPERTIES COMPILE_FLAGS "-std=legacy")
++endif()
++
+ add_executable(xFbtest ${FTestObj})
+ target_link_libraries(xFbtest scalapack)
+ 
+-set(CTestObj  
++set(CTestObj
+    Cbt.c)
+ 
+ set_property(
+@@ -46,4 +50,4 @@ add_test(xFbtest
+     -DRUNTIMEDIR=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
+     -DSOURCEDIR=${CMAKE_CURRENT_SOURCE_DIR}
+     -P ${CMAKE_CURRENT_SOURCE_DIR}/runtest.cmake
+-    )
+\ No newline at end of file
++    )
+diff --git a/PBLAS/TESTING/CMakeLists.txt b/PBLAS/TESTING/CMakeLists.txt
+index e60f5e4..ee77091 100644
+--- a/PBLAS/TESTING/CMakeLists.txt
++++ b/PBLAS/TESTING/CMakeLists.txt
+@@ -10,7 +10,7 @@ set (zpbtcom pzblastst.f dlamch.f ${pbtcom})
+ 
+ set_property(
+    SOURCE ${PblasErrorHandler}
+-   APPEND PROPERTY COMPILE_DEFINITIONS TestingPblas 
++   APPEND PROPERTY COMPILE_DEFINITIONS TestingPblas
+    )
+ 
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SCALAPACK_BINARY_DIR}/PBLAS/TESTING)
+@@ -74,5 +74,6 @@ add_test(dpb3tst ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ./dpb3tst)
+ add_test(cpb3tst ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ./cpb3tst)
+ add_test(zpb3tst ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ./zpb3tst)
+ 
+-
+-
++if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
++    set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -std=legacy" )  # local to this directory
++endif()
+diff --git a/PBLAS/TIMING/CMakeLists.txt b/PBLAS/TIMING/CMakeLists.txt
+index 763330f..208bbc3 100644
+--- a/PBLAS/TIMING/CMakeLists.txt
++++ b/PBLAS/TIMING/CMakeLists.txt
+@@ -74,5 +74,6 @@ add_test(dpb3tim ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ./dpb3tim)
+ add_test(cpb3tim ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ./cpb3tim)
+ add_test(zpb3tim ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 ./zpb3tim)
+ 
+-
+-
++if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
++    set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -std=legacy" )  # local to this directory
++endif()
+diff --git a/TESTING/EIG/CMakeLists.txt b/TESTING/EIG/CMakeLists.txt
+index 97c7036..19a1f34 100644
+--- a/TESTING/EIG/CMakeLists.txt
++++ b/TESTING/EIG/CMakeLists.txt
+@@ -97,3 +97,6 @@ target_link_libraries(xzheevr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+ target_link_libraries(xshseqr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+ target_link_libraries(xdhseqr scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+ 
++if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
++    set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -std=legacy" )  # local to this directory
++endif()
+diff --git a/TESTING/LIN/CMakeLists.txt b/TESTING/LIN/CMakeLists.txt
+index 55a53e9..65f169b 100644
+--- a/TESTING/LIN/CMakeLists.txt
++++ b/TESTING/LIN/CMakeLists.txt
+@@ -110,3 +110,7 @@ target_link_libraries(xsls scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+ target_link_libraries(xdls scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+ target_link_libraries(xcls scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+ target_link_libraries(xzls scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
++
++if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
++    set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -std=legacy" )  # local to this directory
++endif()
diff --git a/gnu/packages/patches/sendgmail-accept-ignored-gsuite-flag.patch b/gnu/packages/patches/sendgmail-accept-ignored-gsuite-flag.patch
new file mode 100644
index 0000000000..8405ff4e42
--- /dev/null
+++ b/gnu/packages/patches/sendgmail-accept-ignored-gsuite-flag.patch
@@ -0,0 +1,39 @@
+From 854490dc4a8a6a661b4750730c3ff749519f6e36 Mon Sep 17 00:00:00 2001
+From: Philip McGrath <philip@philipmcgrath.com>
+Date: Sun, 14 Nov 2021 10:14:24 -0500
+Subject: [PATCH] sendgmail: accept and ignore a "-gsuite" flag
+
+Accepting a "-gsuite" flag provides compatability with
+https://github.com/Flameeyes/gmail-oauth2-tools/commit/eabb456
+so users do not have to change their scripts or config files.
+
+Full hash of original: eabb45608ff4ce04045ff4ea92d05450e789ac81
+
+Related to https://github.com/google/gmail-oauth2-tools/pull/17
+---
+ go/sendgmail/main.go | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/go/sendgmail/main.go b/go/sendgmail/main.go
+index 405aa1b..5cfd0c1 100644
+--- a/go/sendgmail/main.go
++++ b/go/sendgmail/main.go
+@@ -40,6 +40,7 @@ var (
+ 	setUp  bool
+ 	dummyF string
+ 	dummyI bool
++	gsuite bool
+ )
+ 
+ func init() {
+@@ -47,6 +48,7 @@ func init() {
+ 	flag.BoolVar(&setUp, "setup", false, "If true, sendgmail sets up the sender's OAuth2 token and then exits.")
+ 	flag.StringVar(&dummyF, "f", "", "Dummy flag for compatibility with sendmail.")
+ 	flag.BoolVar(&dummyI, "i", true, "Dummy flag for compatibility with sendmail.")
++	flag.BoolVar(&gsuite, "gsuite", true, "Dummy flag for compatibility with other forks of sendgmail.")
+ }
+ 
+ func main() {
+-- 
+2.32.0
+
diff --git a/gnu/packages/patches/sendgmail-remove-domain-restriction.patch b/gnu/packages/patches/sendgmail-remove-domain-restriction.patch
new file mode 100644
index 0000000000..d23af33375
--- /dev/null
+++ b/gnu/packages/patches/sendgmail-remove-domain-restriction.patch
@@ -0,0 +1,34 @@
+From a5ecd1b2302d0def2f6f8349747022a615a9f017 Mon Sep 17 00:00:00 2001
+From: Tamas K Lengyel <tamas@tklengyel.com>
+Date: Tue, 26 May 2020 13:27:50 -0600
+Subject: [PATCH] Don't limit to email with @gmail.com
+
+---
+ go/sendgmail/main.go | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/go/sendgmail/main.go b/go/sendgmail/main.go
+index b35ef23..405aa1b 100644
+--- a/go/sendgmail/main.go
++++ b/go/sendgmail/main.go
+@@ -30,7 +30,6 @@ import (
+ 	"log"
+ 	"net/smtp"
+ 	"os"
+-	"strings"
+ 
+ 	"golang.org/x/oauth2"
+ 	googleOAuth2 "golang.org/x/oauth2/google"
+@@ -52,9 +51,6 @@ func init() {
+ 
+ func main() {
+ 	flag.Parse()
+-	if atDomain := "@gmail.com"; !strings.HasSuffix(sender, atDomain) {
+-		log.Fatalf("-sender must specify an %v email address.", atDomain)
+-	}
+ 	config := getConfig()
+ 	tokenPath := fmt.Sprintf("%v/.sendgmail.%v.json", os.Getenv("HOME"), sender)
+ 	if setUp {
+-- 
+2.32.0
+
diff --git a/gnu/packages/patches/spice-vdagent-glib-2.68.patch b/gnu/packages/patches/spice-vdagent-glib-2.68.patch
new file mode 100644
index 0000000000..cd5f13a909
--- /dev/null
+++ b/gnu/packages/patches/spice-vdagent-glib-2.68.patch
@@ -0,0 +1,112 @@
+From 8348ef3c6121247e2b8be0641bbf3df3d55d9bff Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
+Date: Tue, 4 May 2021 13:20:47 +0400
+Subject: [PATCH] Fix g_memdup deprecation warning with glib >= 2.68
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Related to:
+https://bugzilla.redhat.com/show_bug.cgi?id=1943059
+
+Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
+---
+ configure.ac            | 4 ++++
+ src/vdagent/vdagent.c   | 4 ++--
+ src/vdagent/x11-randr.c | 2 +-
+ src/vdagentd/vdagentd.c | 8 ++++----
+ 4 files changed, 11 insertions(+), 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 7b2a99c..3de9b9b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -124,6 +124,10 @@ PKG_CHECK_MODULES(ALSA, [alsa >= 1.0.22])
+ PKG_CHECK_MODULES([DBUS], [dbus-1])
+ PKG_CHECK_MODULES([DRM], [libdrm])
+ 
++PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.68], [], [
++    AC_DEFINE(g_memdup2, g_memdup, [GLib2 < 2.68 compatibility])
++])
++
+ if test "$with_session_info" = "auto" || test "$with_session_info" = "systemd"; then
+     PKG_CHECK_MODULES([LIBSYSTEMD_LOGIN],
+                       [libsystemd >= 209],
+diff --git a/src/vdagent/vdagent.c b/src/vdagent/vdagent.c
+index 0c69907..fd08522 100644
+--- a/src/vdagent/vdagent.c
++++ b/src/vdagent/vdagent.c
+@@ -228,7 +228,7 @@ static void daemon_read_complete(UdscsConnection *conn,
+         break;
+     case VDAGENTD_AUDIO_VOLUME_SYNC: {
+         VDAgentAudioVolumeSync *avs = (VDAgentAudioVolumeSync *)data;
+-        uint16_t *volume = g_memdup(avs->volume, sizeof(uint16_t) * avs->nchannels);
++        uint16_t *volume = g_memdup2(avs->volume, sizeof(uint16_t) * avs->nchannels);
+ 
+         if (avs->is_playback) {
+             vdagent_audio_playback_sync(avs->mute, avs->nchannels, volume);
+@@ -414,7 +414,7 @@ int main(int argc, char *argv[])
+     GOptionContext *context;
+     GError *error = NULL;
+     VDAgent *agent;
+-    char **orig_argv = g_memdup(argv, sizeof(char*) * (argc+1));
++    char **orig_argv = g_memdup2(argv, sizeof(char*) * (argc+1));
+     orig_argv[argc] = NULL; /* To avoid clang analyzer false-positive */
+ 
+     context = g_option_context_new(NULL);
+diff --git a/src/vdagent/x11-randr.c b/src/vdagent/x11-randr.c
+index 27404a1..037aded 100644
+--- a/src/vdagent/x11-randr.c
++++ b/src/vdagent/x11-randr.c
+@@ -982,7 +982,7 @@ void vdagent_x11_set_monitor_config(struct vdagent_x11 *x11,
+                    fullscreen it will keep sending the failing config. */
+                 g_free(x11->randr.failed_conf);
+                 x11->randr.failed_conf =
+-                    g_memdup(mon_config, config_size(mon_config->num_of_monitors));
++                    g_memdup2(mon_config, config_size(mon_config->num_of_monitors));
+                 return;
+             }
+         }
+diff --git a/src/vdagentd/vdagentd.c b/src/vdagentd/vdagentd.c
+index 78378aa..3e59331 100644
+--- a/src/vdagentd/vdagentd.c
++++ b/src/vdagentd/vdagentd.c
+@@ -216,7 +216,7 @@ static void do_client_monitors(VirtioPort *vport, int port_nr,
+     vdagentd_write_xorg_conf(new_monitors);
+ 
+     g_free(mon_config);
+-    mon_config = g_memdup(new_monitors, size);
++    mon_config = g_memdup2(new_monitors, size);
+ 
+     /* Send monitor config to currently active agent */
+     if (active_session_conn)
+@@ -249,7 +249,7 @@ static void do_client_capabilities(VirtioPort *vport,
+ {
+     capabilities_size = VD_AGENT_CAPS_SIZE_FROM_MSG_SIZE(message_header->size);
+     g_free(capabilities);
+-    capabilities = g_memdup(caps->caps, capabilities_size * sizeof(uint32_t));
++    capabilities = g_memdup2(caps->caps, capabilities_size * sizeof(uint32_t));
+ 
+     if (caps->request) {
+         /* Report the previous client has disconnected. */
+@@ -647,7 +647,7 @@ static void virtio_port_read_complete(
+     case VD_AGENT_GRAPHICS_DEVICE_INFO: {
+         // store device info for re-sending when a session agent reconnects
+         g_free(device_info);
+-        device_info = g_memdup(data, message_header->size);
++        device_info = g_memdup2(data, message_header->size);
+         device_info_size = message_header->size;
+         forward_data_to_session_agent(VDAGENTD_GRAPHICS_DEVICE_INFO, data, message_header->size);
+         break;
+@@ -1090,7 +1090,7 @@ static void do_agent_xorg_resolution(UdscsConnection             *conn,
+     }
+ 
+     g_free(agent_data->screen_info);
+-    agent_data->screen_info = g_memdup(data, header->size);
++    agent_data->screen_info = g_memdup2(data, header->size);
+     agent_data->width  = header->arg1;
+     agent_data->height = header->arg2;
+     agent_data->screen_count = n;
+-- 
+GitLab
+
diff --git a/gnu/packages/patches/sssd-collision-with-external-nss-symbol.patch b/gnu/packages/patches/sssd-collision-with-external-nss-symbol.patch
new file mode 100644
index 0000000000..9d59ae91be
--- /dev/null
+++ b/gnu/packages/patches/sssd-collision-with-external-nss-symbol.patch
@@ -0,0 +1,71 @@
+From fe9eeb51be06059721e873f77092b1e9ba08e6c1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michal=20=C5=BDidek?= <mzidek@redhat.com>
+Date: Thu, 27 Feb 2020 06:50:40 +0100
+Subject: [PATCH] nss: Collision with external nss symbol
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+One of our internal static function names started
+to collide with external nss symbol. Additional
+sss_ suffix was added to avoid the collision.
+
+This is needed to unblock Fedora Rawhide's
+SSSD build.
+
+Reviewed-by: Pavel Březina <pbrezina@redhat.com>
+---
+ src/responder/nss/nss_cmd.c | 18 ++++++++++--------
+ 1 file changed, 10 insertions(+), 8 deletions(-)
+
+diff --git a/src/responder/nss/nss_cmd.c b/src/responder/nss/nss_cmd.c
+index 356aea1564..02706c4b94 100644
+--- a/src/responder/nss/nss_cmd.c
++++ b/src/responder/nss/nss_cmd.c
+@@ -731,11 +731,13 @@ static void nss_getent_done(struct tevent_req *subreq)
+     talloc_free(cmd_ctx);
+ }
+ 
+-static void nss_setnetgrent_done(struct tevent_req *subreq);
++static void sss_nss_setnetgrent_done(struct tevent_req *subreq);
+ 
+-static errno_t nss_setnetgrent(struct cli_ctx *cli_ctx,
+-                               enum cache_req_type type,
+-                               nss_protocol_fill_packet_fn fill_fn)
++/* This function's name started to collide with external nss symbol,
++ * so it has additional sss_* prefix unlike other functions here. */
++static errno_t sss_nss_setnetgrent(struct cli_ctx *cli_ctx,
++                                   enum cache_req_type type,
++                                   nss_protocol_fill_packet_fn fill_fn)
+ {
+     struct nss_ctx *nss_ctx;
+     struct nss_state_ctx *state_ctx;
+@@ -777,7 +779,7 @@ static errno_t nss_setnetgrent(struct cli_ctx *cli_ctx,
+         goto done;
+     }
+ 
+-    tevent_req_set_callback(subreq, nss_setnetgrent_done, cmd_ctx);
++    tevent_req_set_callback(subreq, sss_nss_setnetgrent_done, cmd_ctx);
+ 
+     ret = EOK;
+ 
+@@ -790,7 +792,7 @@ static errno_t nss_setnetgrent(struct cli_ctx *cli_ctx,
+     return EOK;
+ }
+ 
+-static void nss_setnetgrent_done(struct tevent_req *subreq)
++static void sss_nss_setnetgrent_done(struct tevent_req *subreq)
+ {
+     struct nss_cmd_ctx *cmd_ctx;
+     errno_t ret;
+@@ -1040,8 +1042,8 @@ static errno_t nss_cmd_initgroups_ex(struct cli_ctx *cli_ctx)
+ 
+ static errno_t nss_cmd_setnetgrent(struct cli_ctx *cli_ctx)
+ {
+-    return nss_setnetgrent(cli_ctx, CACHE_REQ_NETGROUP_BY_NAME,
+-                           nss_protocol_fill_setnetgrent);
++    return sss_nss_setnetgrent(cli_ctx, CACHE_REQ_NETGROUP_BY_NAME,
++                               nss_protocol_fill_setnetgrent);
+ }
+ 
+ static errno_t nss_cmd_getnetgrent(struct cli_ctx *cli_ctx)
diff --git a/gnu/packages/patches/strace-readlink-tests.patch b/gnu/packages/patches/strace-readlink-tests.patch
new file mode 100644
index 0000000000..dd5ee98703
--- /dev/null
+++ b/gnu/packages/patches/strace-readlink-tests.patch
@@ -0,0 +1,46 @@
+Prevent strace's "readlink" and "readlinkat" tests from failing due to the
+additional system call made by glibc with the patch "glibc-dl-cache.patch"
+applied (introduced in commit 52564e9).
+
+These changes cause strace to report during these tests only system calls on
+files contained in the test directory, effectively filtering out the
+additional readlink/readlinkat call on "/proc/self/exe" and allowing the tests
+to complete as normal.
+
+diff --git a/tests/gen_tests.in b/tests/gen_tests.in
+index 8b4e2e9..cc3ca63 100644
+--- a/tests/gen_tests.in
++++ b/tests/gen_tests.in
+@@ -623,8 +623,8 @@ quotactl-xfs-v	-v -e trace=quotactl
+ read-write	-a15 -eread=0,5 -ewrite=1,4 -e trace=read,write -P read-write-tmpfile -P /dev/zero -P /dev/null
+ readahead	-a1
+ readdir	-a16
+-readlink	-xx
+-readlinkat	-xx
++readlink	-xx --trace-path=test.readlink.link
++readlinkat	-xx --trace-path=test.readlinkat.link
+ reboot		-s 256
+ recv-MSG_TRUNC	-a26 -e trace=recv
+ recvfrom	-a35
+diff --git a/tests/readlink.gen.test b/tests/readlink.gen.test
+index 4263234..418691b 100755
+--- a/tests/readlink.gen.test
++++ b/tests/readlink.gen.test
+@@ -1,4 +1,4 @@
+ #!/bin/sh -efu
+-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (readlink -xx ); do not edit.
++# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (readlink -xx --trace-path=test.readlink.link); do not edit.
+ . "${srcdir=.}/init.sh"
+-run_strace_match_diff -xx 
++run_strace_match_diff -xx --trace-path=test.readlink.link
+diff --git a/tests/readlinkat.gen.test b/tests/readlinkat.gen.test
+index d7de993..a48d590 100755
+--- a/tests/readlinkat.gen.test
++++ b/tests/readlinkat.gen.test
+@@ -1,4 +1,4 @@
+ #!/bin/sh -efu
+-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (readlinkat -xx ); do not edit.
++# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (readlinkat -xx --trace-path=test.readlinkat.link); do not edit.
+ . "${srcdir=.}/init.sh"
+-run_strace_match_diff -xx 
++run_strace_match_diff -xx --trace-path=test.readlinkat.link
diff --git a/gnu/packages/patches/syslinux-gcc10.patch b/gnu/packages/patches/syslinux-gcc10.patch
new file mode 100644
index 0000000000..8d3750b36e
--- /dev/null
+++ b/gnu/packages/patches/syslinux-gcc10.patch
@@ -0,0 +1,87 @@
+Taken from Gentoo and adapted to fix the build using GCC 10. See:
+https://bugs.gentoo.org/705730.
+
+--- a/mk/com32.mk
++++ b/mk/com32.mk
+@@ -47,6 +47,7 @@ GCCOPT += $(call gcc_ok,-falign-functions=0,-malign-functions=0)
+ GCCOPT += $(call gcc_ok,-falign-jumps=0,-malign-jumps=0)
+ GCCOPT += $(call gcc_ok,-falign-labels=0,-malign-labels=0)
+ GCCOPT += $(call gcc_ok,-falign-loops=0,-malign-loops=0)
++GCCOPT += $(call gcc_ok,-fcommon)
+ 
+ ifeq ($(FWCLASS),EFI)
+ GCCOPT += -mno-red-zone
+--- a/mk/elf.mk
++++ b/mk/elf.mk
+@@ -42,6 +42,7 @@ GCCOPT += $(call gcc_ok,-falign-functions=0,-malign-functions=0)
+ GCCOPT += $(call gcc_ok,-falign-jumps=0,-malign-jumps=0)
+ GCCOPT += $(call gcc_ok,-falign-labels=0,-malign-labels=0)
+ GCCOPT += $(call gcc_ok,-falign-loops=0,-malign-loops=0)
++GCCOPT += $(call gcc_ok,-fcommon)
+ 
+ com32 = $(topdir)/com32
+ core = $(topdir)/core
+--- a/mk/embedded.mk
++++ b/mk/embedded.mk
+@@ -51,6 +51,7 @@ GCCOPT    += $(call gcc_ok,-falign-jumps=0,-malign-jumps=0)
+ GCCOPT    += $(call gcc_ok,-falign-labels=0,-malign-labels=0)
+ GCCOPT    += $(call gcc_ok,-falign-loops=0,-malign-loops=0)
+ GCCOPT    += $(call gcc_ok,-fvisibility=hidden)
++GCCOPT    += $(call gcc_ok,-fcommon)
+ 
+ LIBGCC    := $(shell $(CC) $(GCCOPT) --print-libgcc)
+ 
+--- a/mk/lib.mk
++++ b/mk/lib.mk
+@@ -28,6 +28,7 @@ GCCOPT += $(call gcc_ok,-falign-functions=0,-malign-functions=0)
+ GCCOPT += $(call gcc_ok,-falign-jumps=0,-malign-jumps=0)
+ GCCOPT += $(call gcc_ok,-falign-labels=0,-malign-labels=0)
+ GCCOPT += $(call gcc_ok,-falign-loops=0,-malign-loops=0)
++GCCOPT += $(call gcc_ok,-fcommon)
+ 
+ INCLUDE	= -I$(SRC)
+ STRIP	= strip --strip-all -R .comment -R .note
+--- a/mk/efi.mk
++++ b/mk/efi.mk
+@@ -7,7 +7,7 @@ core = $(topdir)/core
+ # Set up architecture specifics; for cross compilation, set ARCH as apt
+ # gnuefi sets up architecture specifics in ia32 or x86_64 sub directories
+ # set up the LIBDIR and EFIINC for building for the appropriate architecture
+-GCCOPT := $(call gcc_ok,-fno-stack-protector,)
++GCCOPT := $(call gcc_ok,-fno-stack-protector,) $(call gcc_ok,-fcommon)
+ EFIINC = $(objdir)/include/efi
+ LIBDIR  = $(objdir)/lib
+ 
+diff --git a/dos/string.h b/dos/string.h
+index f648de2..a502132 100644
+--- a/dos/string.h
++++ b/dos/string.h
+@@ -5,12 +5,13 @@
+ #ifndef _STRING_H
+ #define _STRING_H
+ 
++#include <stddef.h>
++
+ /* Standard routines */
+ #define memcpy(a,b,c)	__builtin_memcpy(a,b,c)
+ #define memmove(a,b,c)	__builtin_memmove(a,b,c)
+ #define memset(a,b,c)	__builtin_memset(a,b,c)
+ #define strcpy(a,b)	__builtin_strcpy(a,b)
+-#define strlen(a)	__builtin_strlen(a)
+ 
+ /* This only returns true or false */
+ static inline int memcmp(const void *__m1, const void *__m2, unsigned int __n)
+@@ -21,6 +22,13 @@ static inline int memcmp(const void *__m1, const void *__m2, unsigned int __n)
+     return rv;
+ }
+ 
++static inline size_t strlen(const char *s)
++{
++    size_t len = 0;
++    while (*s++) len++;
++    return len;
++}
++
+ extern char *strchr(const char *s, int c);
+ 
+ #endif /* _STRING_H */
\ No newline at end of file
diff --git a/gnu/packages/patches/syslinux-strip-gnu-property.patch b/gnu/packages/patches/syslinux-strip-gnu-property.patch
new file mode 100644
index 0000000000..c656bbeedd
--- /dev/null
+++ b/gnu/packages/patches/syslinux-strip-gnu-property.patch
@@ -0,0 +1,31 @@
+Taken from: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=906414.
+
+Author: Lukas Schwaighofer <lukas@schwaighofer.name>
+Description: Strip the .note.gnu.property section for the mbr. This section is
+ added since binutils Debian version 2.31.1-2 and causes mbr.bin to grow in
+ size beyond what can fit into the master boot record.
+---
+ mbr/i386/mbr.ld   | 1 +
+ mbr/x86_64/mbr.ld | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/mbr/i386/mbr.ld b/mbr/i386/mbr.ld
+index d14ba80..5368346 100644
+--- a/mbr/i386/mbr.ld
++++ b/mbr/i386/mbr.ld
+@@ -70,4 +70,5 @@ SECTIONS
+   .debug_typenames 0 : { *(.debug_typenames) }
+   .debug_varnames  0 : { *(.debug_varnames) }
+   /DISCARD/ : { *(.note.GNU-stack) }
++  /DISCARD/ : { *(.note.gnu.property) }
+ }
+diff --git a/mbr/x86_64/mbr.ld b/mbr/x86_64/mbr.ld
+index ae27d49..b8c0d89 100644
+--- a/mbr/x86_64/mbr.ld
++++ b/mbr/x86_64/mbr.ld
+@@ -69,4 +69,5 @@ SECTIONS
+   .debug_typenames 0 : { *(.debug_typenames) }
+   .debug_varnames  0 : { *(.debug_varnames) }
+   /DISCARD/ : { *(.note.GNU-stack) }
++  /DISCARD/ : { *(.note.gnu.property) }
+ }
diff --git a/gnu/packages/patches/telepathy-glib-channel-memory-leak.patch b/gnu/packages/patches/telepathy-glib-channel-memory-leak.patch
deleted file mode 100644
index fe07548ec0..0000000000
--- a/gnu/packages/patches/telepathy-glib-channel-memory-leak.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Prevent a memory leak in call-channel, which otherwise would cause a
-test failure in file-transfer-channel.c.
-
-Taken from upstream:
-https://gitlab.freedesktop.org/telepathy/telepathy-glib/commit/2e8b2cc0db09b781d99e3755bb6d01548037fe7b
-
-diff --git a/telepathy-glib/call-channel.c b/telepathy-glib/call-channel.c
-index 8ed76323be32f83c5f4d6045a50bc1698d8093fd..2a1fa203d4be9f0c8b99344225f4ba9900666ffc 100644
---- a/telepathy-glib/call-channel.c
-+++ b/telepathy-glib/call-channel.c
-@@ -525,6 +525,8 @@ update_call_members (TpCallChannel *self,
- 
-   _tp_channel_contacts_queue_prepare_async ((TpChannel *) self,
-       contacts, update_call_members_prepared_cb, data);
-+
-+  g_ptr_array_unref (contacts);
- }
- 
- static void
diff --git a/gnu/packages/patches/tor-sandbox-i686.patch b/gnu/packages/patches/tor-sandbox-i686.patch
new file mode 100644
index 0000000000..34b0a053b1
--- /dev/null
+++ b/gnu/packages/patches/tor-sandbox-i686.patch
@@ -0,0 +1,36 @@
+This patch fixes sandboxing on i686 by allowing 'statx'.  Without this,
+'src/test/test_include.sh' would fail.
+
+Patch adapted from:
+
+  https://gitlab.torproject.org/tpo/core/tor/-/merge_requests/480
+
+From 001d880d1082f5d124e10554e2718e407c7e88c6 Mon Sep 17 00:00:00 2001
+From: Simon South <simon@simonsouth.net>
+Date: Fri, 5 Nov 2021 10:10:10 -0400
+Subject: [PATCH] sandbox: Allow "statx" syscall on i386 for glibc 2.33
+
+glibc versions 2.33 and newer use the modern "statx" system call in their
+implementations of stat() and opendir() for Linux on i386.  Prevent failures in
+the sandbox unit tests by modifying the sandbox to allow this system call
+without restriction on i386 when it is available, and update the test suite to
+skip the "sandbox/stat_filename" test in this case as it is certain to fail.
+---
+ src/lib/sandbox/sandbox.c | 3 +++
+ src/test/test_sandbox.c   | 7 ++++---
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/src/lib/sandbox/sandbox.c b/src/lib/sandbox/sandbox.c
+index fb02a345ab..a15f99ad76 100644
+--- a/src/lib/sandbox/sandbox.c
++++ b/src/lib/sandbox/sandbox.c
+@@ -252,6 +252,9 @@ static int filter_nopar_gen[] = {
+     SCMP_SYS(sigreturn),
+ #endif
+     SCMP_SYS(stat),
++#if defined(__i386__) && defined(__NR_statx)
++    SCMP_SYS(statx),
++#endif
+     SCMP_SYS(uname),
+     SCMP_SYS(wait4),
+     SCMP_SYS(write),
diff --git a/gnu/packages/patches/transmission-remote-gtk-fix-appstream.patch b/gnu/packages/patches/transmission-remote-gtk-fix-appstream.patch
deleted file mode 100644
index e7d4c8bb86..0000000000
--- a/gnu/packages/patches/transmission-remote-gtk-fix-appstream.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-Fix a bug related to AppStream:
-
-https://github.com/transmission-remote-gtk/transmission-remote-gtk/issues/95
-
-Patch adapted from upstream source repository:
-
-https://github.com/transmission-remote-gtk/transmission-remote-gtk/commit/89259ff90c703c7fe6768b5317803b9aa5b5ab8c
-
-From 89259ff90c703c7fe6768b5317803b9aa5b5ab8c Mon Sep 17 00:00:00 2001
-From: Alan <alan-github@eth0.org.uk>
-Date: Tue, 17 Nov 2020 01:26:22 +0000
-Subject: [PATCH] fix screenshot and add OARS rating so appdata validates
-
----
- README.md                                           | 5 ++---
- data/io.github.TransmissionRemoteGtk.appdata.xml.in | 5 +++--
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/README.md b/README.md
-index 4306cc7..d38314b 100644
---- a/README.md
-+++ b/README.md
-@@ -6,13 +6,12 @@ the Transmission BitTorrent client, using its HTTP RPC protocol.
- 
- # DEPENDENCIES
- 
--The following packages are required dependencies:
-+The following packages are required dependencies (debian/ubuntu).
- 
- ```bash
--autoconf-archive appstream-glib intltool
-+libgtk-3-dev automake autoconf gcc libgeoip-dev gettext autoconf-archive libappstream-dev appstream-util libcurl4-openssl-dev libjson-glib-dev
- ```
- 
--
- # BUILDING
- 
- Optionally install `libgeoip` and its headers to see the country
-diff --git a/data/io.github.TransmissionRemoteGtk.appdata.xml.in b/data/io.github.TransmissionRemoteGtk.appdata.xml.in
-index fc35a8f..1476c2a 100644
---- a/data/io.github.TransmissionRemoteGtk.appdata.xml.in
-+++ b/data/io.github.TransmissionRemoteGtk.appdata.xml.in
-@@ -7,6 +7,7 @@
-   <translation type="gettext">transmission-remote-gtk</translation>
-   <name>Transmission Remote</name>
-   <developer_name>Transmission Remote Gtk Team</developer_name>
-+  <content_rating type="oars-1.1" />
-   <summary>Remotely manage the Transmission BitTorrent client</summary>
-   <url type="homepage">https://github.com/transmission-remote-gtk/transmission-remote-gtk</url>
-   <url type="bugtracker">https://github.com/transmission-remote-gtk/transmission-remote-gtk/issues</url>
-@@ -23,8 +24,8 @@
-     </ul>
-   </description>
-   <screenshots>
--    <screenshot height="576" width="1024" type="default">
--      <image>http://eth0.org.uk/~alan/transmission-remote-gtk-1.1.1.png</image>
-+    <screenshot height="512" width="973" type="default">
-+      <image>https://community.linuxmint.com/img/screenshots/transmission-remote-gtk.png</image>
-     </screenshot>
-   </screenshots>
-   <releases>
diff --git a/gnu/packages/patches/trytond-add-egg-modules-to-path.patch b/gnu/packages/patches/trytond-add-egg-modules-to-path.patch
new file mode 100644
index 0000000000..1baccfee1c
--- /dev/null
+++ b/gnu/packages/patches/trytond-add-egg-modules-to-path.patch
@@ -0,0 +1,22 @@
+Work around trytond.module not being a real namespace module.
+
+Solution is to add all trytond module's locations to
+trytond.modules._path__. This will make trytond.module behave much
+like a namespace module.
+Adding to __path__ is done in update_egg_modules() to ensure __path__
+is updated whenever the list of egg modules is updated.
+
+*** a/trytond/modules/__init__.py	1970-01-01 01:00:01.000000000 +0100
+--- b/trytond/modules/__init__.py	2021-12-02 18:12:15.385101986 +0100
+***************
+*** 38,43 ****
+--- 38,46 ----
+          import pkg_resources
+          for ep in pkg_resources.iter_entry_points('trytond.modules'):
+              EGG_MODULES[ep.name] = ep
++             path = os.path.join(ep.dist.location, 'trytond', 'modules')
++             if not path in __path__ and os.path.isdir(path):
++                 __path__.append(path)
+      except ImportError:
+          pass
+  
diff --git a/gnu/packages/patches/trytond-add-guix_trytond_path.patch b/gnu/packages/patches/trytond-add-guix_trytond_path.patch
new file mode 100644
index 0000000000..7dc136ec46
--- /dev/null
+++ b/gnu/packages/patches/trytond-add-guix_trytond_path.patch
@@ -0,0 +1,26 @@
+Make trytond add all paths listed in GUIX_TRYTOND_MODULES_PATH to sys.path.
+
+*** a/trytond/modules/__init__.py	1970-01-01 01:00:01.000000000 +0100
+--- b/trytond/modules/__init__.py	2021-12-02 22:17:28.014612267 +0100
+***************
+*** 31,36 ****
+--- 31,48 ----
+  
+  EGG_MODULES = {}
+  
++ def __extend_python_path__():
++     tryton_python_path = os.environ.get("GUIX_TRYTOND_MODULES_PATH")
++     if tryton_python_path:
++         paths = [path[:-16]  # remove "/trytond/modules"
++                  for path in tryton_python_path.split(os.pathsep)]
++         sys.path.extend(paths)
++         # ensure new paths are in the pkg_resources WorkingSet
++         import pkg_resources
++         list(map(pkg_resources.working_set.add_entry, paths))
++ 
++ __extend_python_path__()
++ 
+  
+  def update_egg_modules():
+      global EGG_MODULES
+l
diff --git a/gnu/packages/patches/u-boot-allow-disabling-openssl.patch b/gnu/packages/patches/u-boot-allow-disabling-openssl.patch
new file mode 100644
index 0000000000..e3ec92be84
--- /dev/null
+++ b/gnu/packages/patches/u-boot-allow-disabling-openssl.patch
@@ -0,0 +1,164 @@
+From f060e90d148270307228315e2759a0065ec1d796 Mon Sep 17 00:00:00 2001
+From: Vagrant Cascadian <vagrant@debian.org>
+Date: Fri, 22 Oct 2021 17:34:53 -0700
+Subject: [PATCH] Revert "tools: kwbimage: Do not hide usage of secure header
+ under CONFIG_ARMADA_38X"
+
+This reverts commit b4f3cc2c42d97967a3a3c8796c340f6b07ecccac.
+---
+ tools/Makefile   |  8 ++++++++
+ tools/kwbimage.c | 22 ++++++++++++++++++++++
+ 2 files changed, 30 insertions(+)
+
+diff --git a/tools/Makefile b/tools/Makefile
+index 4a86321f64..9517f203fd 100644
+--- a/tools/Makefile
++++ b/tools/Makefile
+@@ -169,6 +169,14 @@ HOST_EXTRACFLAGS	+= -DCONFIG_FIT_SIGNATURE_MAX_SIZE=0xffffffff
+ HOST_EXTRACFLAGS	+= -DCONFIG_FIT_CIPHER
+ endif
+ 
++ifneq ($(CONFIG_SYS_U_BOOT_OFFS),)
++HOSTCFLAGS_kwbimage.o += -DCONFIG_SYS_U_BOOT_OFFS=$(CONFIG_SYS_U_BOOT_OFFS)
++endif
++
++ifneq ($(CONFIG_ARMADA_38X),)
++HOSTCFLAGS_kwbimage.o += -DCONFIG_KWB_SECURE
++endif
++
+ # MXSImage needs LibSSL
+ ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_ARMADA_38X)$(CONFIG_TOOLS_LIBCRYPTO),)
+ HOSTCFLAGS_kwbimage.o += \
+diff --git a/tools/kwbimage.c b/tools/kwbimage.c
+index d200ff2425..23d6be3c9a 100644
+--- a/tools/kwbimage.c
++++ b/tools/kwbimage.c
+@@ -14,6 +14,7 @@
+ #include <stdint.h>
+ #include "kwbimage.h"
+ 
++#ifdef CONFIG_KWB_SECURE
+ #include <openssl/bn.h>
+ #include <openssl/rsa.h>
+ #include <openssl/pem.h>
+@@ -39,10 +40,13 @@ void EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx)
+ 	EVP_MD_CTX_reset(ctx);
+ }
+ #endif
++#endif
+ 
+ static struct image_cfg_element *image_cfg;
+ static int cfgn;
++#ifdef CONFIG_KWB_SECURE
+ static int verbose_mode;
++#endif
+ 
+ struct boot_mode {
+ 	unsigned int id;
+@@ -237,6 +241,8 @@ image_count_options(unsigned int optiontype)
+ 	return count;
+ }
+ 
++#if defined(CONFIG_KWB_SECURE)
++
+ static int image_get_csk_index(void)
+ {
+ 	struct image_cfg_element *e;
+@@ -259,6 +265,8 @@ static bool image_get_spezialized_img(void)
+ 	return e->sec_specialized_img;
+ }
+ 
++#endif
++
+ /*
+  * Compute a 8-bit checksum of a memory area. This algorithm follows
+  * the requirements of the Marvell SoC BootROM specifications.
+@@ -353,6 +361,7 @@ static uint8_t baudrate_to_option(unsigned int baudrate)
+ 	}
+ }
+ 
++#if defined(CONFIG_KWB_SECURE)
+ static void kwb_msg(const char *fmt, ...)
+ {
+ 	if (verbose_mode) {
+@@ -847,6 +856,8 @@ done:
+ 	return ret;
+ }
+ 
++#endif
++
+ static void *image_create_v0(size_t *imagesz, struct image_tool_params *params,
+ 			     int payloadsz)
+ {
+@@ -977,11 +988,13 @@ static size_t image_headersz_v1(int *hasext)
+ 			*hasext = 1;
+ 	}
+ 
++#if defined(CONFIG_KWB_SECURE)
+ 	if (image_get_csk_index() >= 0) {
+ 		headersz += sizeof(struct secure_hdr_v1);
+ 		if (hasext)
+ 			*hasext = 1;
+ 	}
++#endif
+ 
+ 	/*
+ 	 * The payload should be aligned on some reasonable
+@@ -1058,6 +1071,8 @@ err_close:
+ 	return -1;
+ }
+ 
++#if defined(CONFIG_KWB_SECURE)
++
+ int export_pub_kak_hash(RSA *kak, struct secure_hdr_v1 *secure_hdr)
+ {
+ 	FILE *hashf;
+@@ -1170,6 +1185,7 @@ int add_secure_header_v1(struct image_tool_params *params, uint8_t *ptr,
+ 
+ 	return 0;
+ }
++#endif
+ 
+ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params,
+ 			     uint8_t *ptr, int payloadsz)
+@@ -1177,7 +1193,9 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params,
+ 	struct image_cfg_element *e;
+ 	struct main_hdr_v1 *main_hdr;
+ 	struct register_set_hdr_v1 *register_set_hdr;
++#if defined(CONFIG_KWB_SECURE)
+ 	struct secure_hdr_v1 *secure_hdr = NULL;
++#endif
+ 	size_t headersz;
+ 	uint8_t *image, *cur;
+ 	int hasext = 0;
+@@ -1253,6 +1271,7 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params,
+ 	if (main_hdr->blockid == IBR_HDR_PEX_ID)
+ 		main_hdr->srcaddr = cpu_to_le32(0xFFFFFFFF);
+ 
++#if defined(CONFIG_KWB_SECURE)
+ 	if (image_get_csk_index() >= 0) {
+ 		/*
+ 		 * only reserve the space here; we fill the header later since
+@@ -1263,6 +1282,7 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params,
+ 		*next_ext = 1;
+ 		next_ext = &secure_hdr->next;
+ 	}
++#endif
+ 
+ 	datai = 0;
+ 	register_set_hdr = (struct register_set_hdr_v1 *)cur;
+@@ -1310,9 +1330,11 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params,
+ 			return NULL;
+ 	}
+ 
++#if defined(CONFIG_KWB_SECURE)
+ 	if (secure_hdr && add_secure_header_v1(params, ptr, payloadsz,
+ 					       headersz, image, secure_hdr))
+ 		return NULL;
++#endif
+ 
+ 	/* Calculate and set the header checksum */
+ 	main_hdr->checksum = image_checksum8(main_hdr, headersz);
+-- 
+2.30.2
+
diff --git a/gnu/packages/patches/u-boot-rk3399-enable-emmc-phy.patch b/gnu/packages/patches/u-boot-rk3399-enable-emmc-phy.patch
new file mode 100644
index 0000000000..f14a9ce104
--- /dev/null
+++ b/gnu/packages/patches/u-boot-rk3399-enable-emmc-phy.patch
@@ -0,0 +1,26 @@
+adapting commit ac804143cf ("mmc: rockchip_sdhci: add phy and clock
+config for rk3399") to fix the issue "Not found emmc phy device".
+
+Signed-off-by: Yifeng Zhao <yifeng.zhao@rock-chips.com>
+---
+
+ arch/arm/dts/rk3399-u-boot.dtsi | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/arch/arm/dts/rk3399-u-boot.dtsi b/arch/arm/dts/rk3399-u-boot.dtsi
+index 73922c328a..716b9a433a 100644
+--- a/arch/arm/dts/rk3399-u-boot.dtsi
++++ b/arch/arm/dts/rk3399-u-boot.dtsi
+@@ -88,6 +88,10 @@
+ 	u-boot,dm-pre-reloc;
+ };
+ 
++&emmc_phy {
++	u-boot,dm-pre-reloc;
++};
++
+ &grf {
+ 	u-boot,dm-pre-reloc;
+ };
+-- 
+2.17.1
diff --git a/gnu/packages/patches/udiskie-no-appindicator.patch b/gnu/packages/patches/udiskie-no-appindicator.patch
deleted file mode 100644
index df3efe104b..0000000000
--- a/gnu/packages/patches/udiskie-no-appindicator.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-Remove the support for Unity's appindicator.
-
-diff -Naur udiskie-2.0.4/completions/zsh/_udiskie udiskie-2.0.4-new/completions/zsh/_udiskie
---- udiskie-2.0.4/completions/zsh/_udiskie	2020-01-21 01:12:40.000000000 +0100
-+++ udiskie-2.0.4-new/completions/zsh/_udiskie	2020-01-23 10:15:46.956141667 +0100
-@@ -18,8 +18,6 @@
-     '(-a)'{-A,--no-automount}"[disable automounting]"
-     '(-N)'{-n,--notify}"[show popup notifications]"
-     '(-n)'{-N,--no-notify}"[disable notifications]"
--    '(--no-appindicator)'--appindicator"[use appindicator for status icon]"
--    '(--appindicator)'--no-appindicator"[don't use appindicator]"
-     '(-T -s)'{-t,--tray}"[show tray icon]"
-     '(-T -t)'{-s,--smart-tray}"[auto hide tray icon]"
-     '(-t -s)'{-T,--no-tray}"[disable tray icon]"
-diff -Naur udiskie-2.0.4/doc/udiskie.8.txt udiskie-2.0.4-new/doc/udiskie.8.txt
---- udiskie-2.0.4/doc/udiskie.8.txt	2020-01-21 01:12:40.000000000 +0100
-+++ udiskie-2.0.4-new/doc/udiskie.8.txt	2020-01-23 10:16:12.636290647 +0100
-@@ -92,12 +92,6 @@
- *--no-terminal*::
- 	Disable terminal action.
- 
--*--appindicator*::
--	Use AppIndicator3 for the status icon. Use this on Ubuntu/Unity if no icon is shown.
--
--*--no-appindicator*::
--	Use Gtk.StatusIcon for the status icon (default).
--
- *--password-cache MINUTES*::
- 	Cache passwords for LUKS partitions and set the timeout.
- 
-diff -Naur udiskie-2.0.4/udiskie/appindicator.py udiskie-2.0.4-new/udiskie/appindicator.py
---- udiskie-2.0.4/udiskie/appindicator.py	2020-01-21 01:12:40.000000000 +0100
-+++ udiskie-2.0.4-new/udiskie/appindicator.py	1970-01-01 01:00:00.000000000 +0100
-@@ -1,61 +0,0 @@
--"""
--Status icon using AppIndicator3.
--"""
--
--from gi.repository import Gtk
--from gi.repository import AppIndicator3
--
--from .async_ import Future
--
--
--class AppIndicatorIcon:
--
--    """
--    Show status icon using AppIndicator as backend. Replaces
--    `udiskie.tray.StatusIcon` on ubuntu/unity.
--    """
--
--    def __init__(self, menumaker, _icons):
--        self._maker = menumaker
--        self._menu = Gtk.Menu()
--        self._indicator = AppIndicator3.Indicator.new(
--            'udiskie',
--            _icons.get_icon_name('media'),
--            AppIndicator3.IndicatorCategory.HARDWARE)
--        self._indicator.set_status(AppIndicator3.IndicatorStatus.PASSIVE)
--        self._indicator.set_menu(self._menu)
--        # Get notified before menu is shown, see:
--        # https://bugs.launchpad.net/screenlets/+bug/522152/comments/15
--        dbusmenuserver = self._indicator.get_property('dbus-menu-server')
--        self._dbusmenuitem = dbusmenuserver.get_property('root-node')
--        self._conn = self._dbusmenuitem.connect('about-to-show', self._on_show)
--        self.task = Future()
--        menumaker._quit_action = self.destroy
--        # Populate menu initially, so libdbusmenu does not ignore the
--        # 'about-to-show':
--        self._maker(self._menu)
--
--    def destroy(self):
--        self.show(False)
--        self._dbusmenuitem.disconnect(self._conn)
--        self.task.set_result(True)
--
--    @property
--    def visible(self):
--        status = self._indicator.get_status()
--        return status == AppIndicator3.IndicatorStatus.ACTIVE
--
--    def show(self, show=True):
--        if show == self.visible:
--            return
--        status = (AppIndicator3.IndicatorStatus.ACTIVE if show else
--                  AppIndicator3.IndicatorStatus.PASSIVE)
--        self._indicator.set_status(status)
--
--    def _on_show(self, menu):
--        # clear menu:
--        for item in self._menu.get_children():
--            self._menu.remove(item)
--        # repopulate:
--        self._maker(self._menu)
--        self._menu.show_all()
-diff -Naur udiskie-2.0.4/udiskie/cli.py udiskie-2.0.4-new/udiskie/cli.py
---- udiskie-2.0.4/udiskie/cli.py	2020-01-21 01:12:40.000000000 +0100
-+++ udiskie-2.0.4-new/udiskie/cli.py	2020-01-23 10:17:13.064810617 +0100
-@@ -287,9 +287,6 @@
-         -T, --no-tray                           Disable tray icon
-         -m MENU, --menu MENU                    Tray menu [flat/nested]
- 
--        --appindicator                          Use appindicator for status icon
--        --no-appindicator                       Don't use appindicator
--
-         --password-cache MINUTES                Set password cache timeout
-         --no-password-cache                     Disable password cache
- 
-@@ -312,7 +309,6 @@
-         'notify': True,
-         'tray': False,
-         'menu': 'flat',
--        'appindicator': False,
-         'file_manager': 'xdg-open',
-         'terminal': '',
-         'password_prompt': 'builtin:gui',
-@@ -328,7 +324,6 @@
-             '--no-tray': False,
-             '--smart-tray': 'auto'}),
-         'menu': Value('--menu'),
--        'appindicator': Switch('appindicator'),
-         'file_manager': OptionalValue('--file-manager'),
-         'password_prompt': OptionalValue('--password-prompt'),
-         'password_cache': OptionalValue('--password-cache'),
-@@ -459,11 +454,7 @@
- 
-         menu_maker = udiskie.tray.UdiskieMenu(self, icons, actions, flat,
-                                               config.quickmenu_actions)
--        if options['appindicator']:
--            import udiskie.appindicator
--            TrayIcon = udiskie.appindicator.AppIndicatorIcon
--        else:
--            TrayIcon = udiskie.tray.TrayIcon
-+        TrayIcon = udiskie.tray.TrayIcon
-         trayicon = TrayIcon(menu_maker, icons)
-         return udiskie.tray.UdiskieStatusIcon(trayicon, menu_maker, smart)
- 
-diff -Naur udiskie-2.0.4/udiskie.egg-info/SOURCES.txt udiskie-2.0.4-new/udiskie.egg-info/SOURCES.txt
---- udiskie-2.0.4/udiskie.egg-info/SOURCES.txt	2020-01-21 01:12:41.000000000 +0100
-+++ udiskie-2.0.4-new/udiskie.egg-info/SOURCES.txt	2020-01-23 10:17:50.657205798 +0100
-@@ -25,7 +25,6 @@
- test/test_cache.py
- test/test_match.py
- udiskie/__init__.py
--udiskie/appindicator.py
- udiskie/async_.py
- udiskie/automount.py
- udiskie/cache.py
-@@ -47,4 +46,4 @@
- udiskie.egg-info/entry_points.txt
- udiskie.egg-info/requires.txt
- udiskie.egg-info/top_level.txt
--udiskie.egg-info/zip-safe
-\ Pas de fin de ligne à la fin du fichier
-+udiskie.egg-info/zip-safe
diff --git a/gnu/packages/patches/ungoogled-chromium-RUNPATH.patch b/gnu/packages/patches/ungoogled-chromium-RUNPATH.patch
new file mode 100644
index 0000000000..379c47ac7e
--- /dev/null
+++ b/gnu/packages/patches/ungoogled-chromium-RUNPATH.patch
@@ -0,0 +1,22 @@
+Use RUNPATH instead of RPATH so that end users can override the library
+search path (and the 'validate-runpath' phase can do its work).
+
+diff --git a/build/config/gcc/BUILD.gn b/build/config/gcc/BUILD.gn
+--- a/build/config/gcc/BUILD.gn
++++ b/build/config/gcc/BUILD.gn
+@@ -99,7 +99,14 @@ config("executable_config") {
+     ]
+   }
+ 
+-  if (!is_android && current_os != "aix") {
++  if (is_linux) {
++    ldflags += [
++      # Set DT_RUNPATH instead of DT_RPATH which is important because the
++      # former can be overridden at runtime, and Guix has support for
++      # verifying that nothing is missing.
++      "-Wl,--enable-new-dtags",
++    ]
++  } else if (!is_android && current_os != "aix") {
+     ldflags += [
+       # TODO(GYP): Do we need a check on the binutils version here?
+       #
diff --git a/gnu/packages/patches/ungoogled-chromium-accelerated-video-decode.patch b/gnu/packages/patches/ungoogled-chromium-accelerated-video-decode.patch
new file mode 100644
index 0000000000..cbab626e59
--- /dev/null
+++ b/gnu/packages/patches/ungoogled-chromium-accelerated-video-decode.patch
@@ -0,0 +1,18 @@
+Upstream Chromium no longer supports hardware accelerated video decoding
+on GNU/Linux, yet it still works fine on many systems.  This patch "unexpires"
+the support.
+
+Taken from Arch Linux:
+https://github.com/archlinux/svntogit-packages/blob/packages/chromium/trunk/unexpire-accelerated-video-decode-flag.patch
+
+--- a/chrome/browser/flag-metadata.json
++++ b/chrome/browser/flag-metadata.json
+@@ -1285,7 +1285,7 @@
+   {
+     "name": "enable-accelerated-video-decode",
+     "owners": [ "media-dev@chromium.org" ],
+-    "expiry_milestone": 93
++    "expiry_milestone": 99
+   },
+   {
+     "name": "enable-accessibility-live-caption",
diff --git a/gnu/packages/patches/ungoogled-chromium-ffmpeg-compat.patch b/gnu/packages/patches/ungoogled-chromium-ffmpeg-compat.patch
new file mode 100644
index 0000000000..636f518a33
--- /dev/null
+++ b/gnu/packages/patches/ungoogled-chromium-ffmpeg-compat.patch
@@ -0,0 +1,68 @@
+The bundled ffmpeg in Chromium is newer than the one in Guix.  Patch so
+we can build with the new and old ffmpeg versions.
+
+Taken from Gentoo:
+https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-93-fix-build-with-system-ffmpeg.patch
+
+diff --git a/media/filters/audio_decoder_unittest.cc b/media/filters/audio_decoder_unittest.cc
+--- a/media/filters/audio_decoder_unittest.cc
++++ b/media/filters/audio_decoder_unittest.cc
+@@ -109,7 +109,11 @@ void SetDiscardPadding(AVPacket* packet,
+   }
+ 
+   // If the timestamp is positive, try to use FFmpeg's discard data.
++#if LIBAVUTIL_VERSION_MAJOR < 57
++  int skip_samples_size = 0;
++#else
+   size_t skip_samples_size = 0;
++#endif
+   const uint32_t* skip_samples_ptr =
+       reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
+           packet, AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));
+diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
+--- a/media/filters/ffmpeg_demuxer.cc
++++ b/media/filters/ffmpeg_demuxer.cc
+@@ -427,11 +427,19 @@ void FFmpegDemuxerStream::EnqueuePacket(
+   scoped_refptr<DecoderBuffer> buffer;
+ 
+   if (type() == DemuxerStream::TEXT) {
++#if LIBAVUTIL_VERSION_MAJOR < 57
++    int id_size = 0;
++#else
+     size_t id_size = 0;
++#endif
+     uint8_t* id_data = av_packet_get_side_data(
+         packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size);
+ 
++#if LIBAVUTIL_VERSION_MAJOR < 57
++    int settings_size = 0;
++#else
+     size_t settings_size = 0;
++#endif
+     uint8_t* settings_data = av_packet_get_side_data(
+         packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size);
+ 
+@@ -443,7 +451,11 @@ void FFmpegDemuxerStream::EnqueuePacket(
+     buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
+                                      side_data.data(), side_data.size());
+   } else {
++#if LIBAVUTIL_VERSION_MAJOR < 57
++    int side_data_size = 0;
++#else
+     size_t side_data_size = 0;
++#endif
+     uint8_t* side_data = av_packet_get_side_data(
+         packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
+ 
+@@ -504,7 +516,11 @@ void FFmpegDemuxerStream::EnqueuePacket(
+                                        packet->size - data_offset);
+     }
+ 
++#if LIBAVUTIL_VERSION_MAJOR < 57
++    int skip_samples_size = 0;
++#else
+     size_t skip_samples_size = 0;
++#endif
+     const uint32_t* skip_samples_ptr =
+         reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
+             packet.get(), AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));
diff --git a/gnu/packages/patches/ungoogled-chromium-system-nspr.patch b/gnu/packages/patches/ungoogled-chromium-system-nspr.patch
new file mode 100644
index 0000000000..831e2b899c
--- /dev/null
+++ b/gnu/packages/patches/ungoogled-chromium-system-nspr.patch
@@ -0,0 +1,54 @@
+Build with the system NSPR library instead of the bundled version.
+
+Originally based on this Debian patch:
+https://salsa.debian.org/chromium-team/chromium/-/blob/master/debian/patches/system/nspr.patch
+
+diff --git a/base/BUILD.gn b/base/BUILD.gn
+--- a/base/BUILD.gn
++++ b/base/BUILD.gn
+@@ -141,6 +141,12 @@ config("perfetto_config") {
+   }
+ }
+ 
++if (is_linux) {
++  ldflags = [
++    "-lnspr4",
++  ]
++}
++
+ # Base and everything it depends on should be a static library rather than
+ # a source set. Base is more of a "library" in the classic sense in that many
+ # small parts of it are used in many different contexts. This combined with a
+@@ -759,8 +765,6 @@ component("base") {
+     "third_party/cityhash_v103/src/city_v103.cc",
+     "third_party/cityhash_v103/src/city_v103.h",
+     "third_party/icu/icu_utf.h",
+-    "third_party/nspr/prtime.cc",
+-    "third_party/nspr/prtime.h",
+     "third_party/superfasthash/superfasthash.c",
+     "thread_annotations.h",
+     "threading/hang_watcher.cc",
+diff --git a/base/time/pr_time_unittest.cc b/base/time/pr_time_unittest.cc
+--- a/base/time/pr_time_unittest.cc
++++ b/base/time/pr_time_unittest.cc
+@@ -7,7 +7,7 @@
+ 
+ #include "base/compiler_specific.h"
+ #include "base/cxx17_backports.h"
+-#include "base/third_party/nspr/prtime.h"
++#include <nspr/prtime.h>
+ #include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "testing/gtest/include/gtest/gtest.h"
+diff --git a/base/time/time.cc b/base/time/time.cc
+--- a/base/time/time.cc
++++ b/base/time/time.cc
+@@ -18,7 +18,7 @@
+ #include <utility>
+ 
+ #include "base/strings/stringprintf.h"
+-#include "base/third_party/nspr/prtime.h"
++#include <nspr/prtime.h>
+ #include "base/time/time_override.h"
+ #include "build/build_config.h"
+ #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/gnu/packages/patches/webkitgtk-bind-all-fonts.patch b/gnu/packages/patches/webkitgtk-bind-all-fonts.patch
index 3fe9704727..e7b06cc650 100644
--- a/gnu/packages/patches/webkitgtk-bind-all-fonts.patch
+++ b/gnu/packages/patches/webkitgtk-bind-all-fonts.patch
@@ -1,7 +1,7 @@
 Add fonts from all XDG_DATA_DIRS, not just XDG_DATA_HOME.
 
 See <http://bugs.gnu.org/41174>.
-Author: Leo Prikler <leo.prikler@student.tugraz.at>
+Author: Liliana Marie Prikler <liliana.prikler@gmail.com>
 Index: webkitgtk-2.28.2/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
 ===================================================================
 --- a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
diff --git a/gnu/packages/patches/xf86-video-mach64-bool-to-boolean.patch b/gnu/packages/patches/xf86-video-mach64-bool-to-boolean.patch
new file mode 100644
index 0000000000..b85acdd401
--- /dev/null
+++ b/gnu/packages/patches/xf86-video-mach64-bool-to-boolean.patch
@@ -0,0 +1,79 @@
+From ff1a69144735298d1a190fa23b3ae5747e914859 Mon Sep 17 00:00:00 2001
+From: Josselin Poiret <dev@jpoiret.xyz>
+Date: Thu, 18 Nov 2021 13:18:25 +0000
+Subject: [PATCH] Rename bool to boolean for OptionInfoRec.
+
+* src/aticonfig.c: Change uses of .value.bool to .value.boolean
+---
+ src/aticonfig.c | 38 +++++++++++++++++++-------------------
+ 1 file changed, 19 insertions(+), 19 deletions(-)
+
+diff --git a/src/aticonfig.c b/src/aticonfig.c
+index 621e79e..8ea0c6e 100644
+--- a/src/aticonfig.c
++++ b/src/aticonfig.c
+@@ -311,42 +311,42 @@ ATIProcessOptions
+ 
+     (void)memcpy(PublicOption, ATIPublicOptions, ATIPublicOptionSize);
+ 
+-#   define ProbeSparse   PublicOption[ATI_OPTION_PROBE_SPARSE].value.bool
+-#   define Accel         PublicOption[ATI_OPTION_ACCEL].value.bool
+-#   define BIOSDisplay   PrivateOption[ATI_OPTION_BIOS_DISPLAY].value.bool
+-#   define Blend         PrivateOption[ATI_OPTION_BLEND].value.bool
+-#   define CRTDisplay    PublicOption[ATI_OPTION_CRT_DISPLAY].value.bool
+-#   define CRTScreen     PrivateOption[ATI_OPTION_CRT_SCREEN].value.bool
+-#   define CSync         PublicOption[ATI_OPTION_CSYNC].value.bool
+-#   define Devel         PrivateOption[ATI_OPTION_DEVEL].value.bool
+-#   define HWCursor      PublicOption[ATI_OPTION_HWCURSOR].value.bool
++#   define ProbeSparse   PublicOption[ATI_OPTION_PROBE_SPARSE].value.boolean
++#   define Accel         PublicOption[ATI_OPTION_ACCEL].value.boolean
++#   define BIOSDisplay   PrivateOption[ATI_OPTION_BIOS_DISPLAY].value.boolean
++#   define Blend         PrivateOption[ATI_OPTION_BLEND].value.boolean
++#   define CRTDisplay    PublicOption[ATI_OPTION_CRT_DISPLAY].value.boolean
++#   define CRTScreen     PrivateOption[ATI_OPTION_CRT_SCREEN].value.boolean
++#   define CSync         PublicOption[ATI_OPTION_CSYNC].value.boolean
++#   define Devel         PrivateOption[ATI_OPTION_DEVEL].value.boolean
++#   define HWCursor      PublicOption[ATI_OPTION_HWCURSOR].value.boolean
+ 
+ #ifdef XF86DRI_DEVEL
+ 
+-#   define IsPCI       PublicOption[ATI_OPTION_IS_PCI].value.bool
++#   define IsPCI       PublicOption[ATI_OPTION_IS_PCI].value.boolean
+ #   define DMAMode     PublicOption[ATI_OPTION_DMA_MODE].value.str
+ #   define AGPMode     PublicOption[ATI_OPTION_AGP_MODE].value.num
+ #   define AGPSize     PublicOption[ATI_OPTION_AGP_SIZE].value.num
+-#   define LocalTex    PublicOption[ATI_OPTION_LOCAL_TEXTURES].value.bool
++#   define LocalTex    PublicOption[ATI_OPTION_LOCAL_TEXTURES].value.boolean
+ #   define BufferSize  PublicOption[ATI_OPTION_BUFFER_SIZE].value.num
+ 
+ #endif /* XF86DRI_DEVEL */
+ 
+ #ifdef TV_OUT
+ 
+-#   define TvOut        PublicOption[ATI_OPTION_TV_OUT].value.bool
++#   define TvOut        PublicOption[ATI_OPTION_TV_OUT].value.boolean
+ #   define TvStd        PublicOption[ATI_OPTION_TV_STD].value.str
+ 
+ #endif /* TV_OUT */
+ 
+-#   define CacheMMIO     PublicOption[ATI_OPTION_MMIO_CACHE].value.bool
+-#   define TestCacheMMIO PublicOption[ATI_OPTION_TEST_MMIO_CACHE].value.bool
+-#   define PanelDisplay  PublicOption[ATI_OPTION_PANEL_DISPLAY].value.bool
+-#   define ShadowFB      PublicOption[ATI_OPTION_SHADOW_FB].value.bool
+-#   define SWCursor      PublicOption[ATI_OPTION_SWCURSOR].value.bool
++#   define CacheMMIO     PublicOption[ATI_OPTION_MMIO_CACHE].value.boolean
++#   define TestCacheMMIO PublicOption[ATI_OPTION_TEST_MMIO_CACHE].value.boolean
++#   define PanelDisplay  PublicOption[ATI_OPTION_PANEL_DISPLAY].value.boolean
++#   define ShadowFB      PublicOption[ATI_OPTION_SHADOW_FB].value.boolean
++#   define SWCursor      PublicOption[ATI_OPTION_SWCURSOR].value.boolean
+ #   define AccelMethod   PublicOption[ATI_OPTION_ACCELMETHOD].value.str
+-#   define RenderAccel   PublicOption[ATI_OPTION_RENDER_ACCEL].value.bool
+-#   define LCDSync       PrivateOption[ATI_OPTION_LCDSYNC].value.bool
++#   define RenderAccel   PublicOption[ATI_OPTION_RENDER_ACCEL].value.boolean
++#   define LCDSync       PrivateOption[ATI_OPTION_LCDSYNC].value.boolean
+ 
+ #   define ReferenceClock \
+         PublicOption[ATI_OPTION_REFERENCE_CLOCK].value.freq.freq
+-- 
+2.33.1
+
diff --git a/gnu/packages/patches/xf86-video-nouveau-fixup-ABI.patch b/gnu/packages/patches/xf86-video-nouveau-fixup-ABI.patch
new file mode 100644
index 0000000000..a18e3f8ab9
--- /dev/null
+++ b/gnu/packages/patches/xf86-video-nouveau-fixup-ABI.patch
@@ -0,0 +1,64 @@
+From e80e73ced69b15662103d0fd6837db4ce6c6eb5b Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@redhat.com>
+Date: Mon, 13 Jul 2020 09:20:15 +1000
+Subject: [PATCH] nouveau: fixup driver for new X server ABI
+
+---
+ src/compat-api.h  | 4 ++++
+ src/nouveau_exa.c | 2 +-
+ src/nv_driver.c   | 6 +++---
+ 3 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/src/compat-api.h b/src/compat-api.h
+index fde2f4b..8a1fcf9 100644
+--- a/src/compat-api.h
++++ b/src/compat-api.h
+@@ -102,4 +102,8 @@
+ 
+ #endif
+ 
++#if ABI_VIDEODRV_VERSION < SET_ABI_VERSION(25, 2)
++#define secondary_dst slave_dst
++#endif
++
+ #endif
+diff --git a/src/nouveau_exa.c b/src/nouveau_exa.c
+index 55df6f8..db3b112 100644
+--- a/src/nouveau_exa.c
++++ b/src/nouveau_exa.c
+@@ -157,7 +157,7 @@ nouveau_exa_destroy_pixmap(ScreenPtr pScreen, void *priv)
+ 
+ #ifdef NOUVEAU_PIXMAP_SHARING
+ static Bool
+-nouveau_exa_share_pixmap_backing(PixmapPtr ppix, ScreenPtr slave, void **handle_p)
++nouveau_exa_share_pixmap_backing(PixmapPtr ppix, ScreenPtr secondary, void **handle_p)
+ {
+ 	struct nouveau_bo *bo = nouveau_pixmap_bo(ppix);
+ 	struct nouveau_pixmap *nvpix = nouveau_pixmap(ppix);
+diff --git a/src/nv_driver.c b/src/nv_driver.c
+index e72a6b6..f9ab4af 100644
+--- a/src/nv_driver.c
++++ b/src/nv_driver.c
+@@ -559,16 +559,16 @@ redisplay_dirty(ScreenPtr screen, PixmapDirtyUpdatePtr dirty)
+ {
+ 	RegionRec pixregion;
+ 
+-	PixmapRegionInit(&pixregion, dirty->slave_dst);
++	PixmapRegionInit(&pixregion, dirty->secondary_dst);
+ 
+-	DamageRegionAppend(&dirty->slave_dst->drawable, &pixregion);
++	DamageRegionAppend(&dirty->secondary_dst->drawable, &pixregion);
+ #ifdef HAS_DIRTYTRACKING_ROTATION
+ 	PixmapSyncDirtyHelper(dirty);
+ #else
+ 	PixmapSyncDirtyHelper(dirty, &pixregion);
+ #endif
+ 
+-	DamageRegionProcessPending(&dirty->slave_dst->drawable);
++	DamageRegionProcessPending(&dirty->secondary_dst->drawable);
+ 	RegionUninit(&pixregion);
+ }
+ 
+-- 
+2.33.1
+
diff --git a/gnu/packages/patches/xf86-video-qxl-fix-build.patch b/gnu/packages/patches/xf86-video-qxl-fix-build.patch
new file mode 100644
index 0000000000..9ea50e4c91
--- /dev/null
+++ b/gnu/packages/patches/xf86-video-qxl-fix-build.patch
@@ -0,0 +1,101 @@
+From 4b083ede3c4a827a84295ff223e34ee3c2e581b2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?=
+ <zboszor@gmail.com>
+Date: Sat, 28 Aug 2021 15:38:40 +0200
+Subject: [PATCH] Fix a build  error with Xorg master
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Use xf86ReturnOptValBool() in get_bool_option() instead of
+options[option_index].value.bool to fix a compiler error with
+current Xorg xserver master branch.
+
+Also use xf86GetOptValInteger() in get_int_option() and
+xf86GetOptValString() in get_str_option() for consistency.
+
+The change causes a slight performance drop during option parsing
+because the passed-in index_value is no longer used as an index
+into the options array.
+
+Instead, it's used as a token now for the standard option getter
+functions which works since the index_value to the get_*_option()
+functions are identical to the value of options[n].token in the
+passed-in OptionInfoRec array.
+
+Also rename "int option_index" to "int token" for clarity in all
+three functions.
+
+Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
+---
+ src/qxl_option_helpers.c | 13 +++++++------
+ src/qxl_option_helpers.h |  6 +++---
+ 2 files changed, 10 insertions(+), 9 deletions(-)
+
+diff --git a/src/qxl_option_helpers.c b/src/qxl_option_helpers.c
+index 2aba677..7707b7c 100644
+--- a/src/qxl_option_helpers.c
++++ b/src/qxl_option_helpers.c
+@@ -10,31 +10,32 @@
+ 
+ #include "qxl_option_helpers.h"
+ 
+-int get_int_option(OptionInfoPtr options, int option_index,
++int get_int_option(OptionInfoPtr options, int token,
+                    const char *env_name)
+ {
++    int value;
+     if (env_name && getenv(env_name)) {
+         return atoi(getenv(env_name));
+     }
+-    return options[option_index].value.num;
++    return xf86GetOptValInteger(options, token, &value) ? value : 0;
+ }
+ 
+-const char *get_str_option(OptionInfoPtr options, int option_index,
++const char *get_str_option(OptionInfoPtr options, int token,
+                            const char *env_name)
+ {
+     if (getenv(env_name)) {
+         return getenv(env_name);
+     }
+-    return options[option_index].value.str;
++    return xf86GetOptValString(options, token);
+ }
+ 
+-int get_bool_option(OptionInfoPtr options, int option_index,
++int get_bool_option(OptionInfoPtr options, int token,
+                      const char *env_name)
+ {
+     const char* value = getenv(env_name);
+ 
+     if (!value) {
+-        return options[option_index].value.bool;
++        return xf86ReturnOptValBool(options, token, FALSE);
+     }
+     if (strcmp(value, "0") == 0 ||
+         strcasecmp(value, "off") == 0 ||
+diff --git a/src/qxl_option_helpers.h b/src/qxl_option_helpers.h
+index 7c54c72..66d0a17 100644
+--- a/src/qxl_option_helpers.h
++++ b/src/qxl_option_helpers.h
+@@ -4,13 +4,13 @@
+ #include <xf86Crtc.h>
+ #include <xf86Opt.h>
+ 
+-int get_int_option(OptionInfoPtr options, int option_index,
++int get_int_option(OptionInfoPtr options, int token,
+                    const char *env_name);
+ 
+-const char *get_str_option(OptionInfoPtr options, int option_index,
++const char *get_str_option(OptionInfoPtr options, int token,
+                            const char *env_name);
+ 
+-int get_bool_option(OptionInfoPtr options, int option_index,
++int get_bool_option(OptionInfoPtr options, int token,
+                      const char *env_name);
+ 
+ #endif // OPTION_HELPERS_H
+-- 
+GitLab
+
diff --git a/gnu/packages/patches/xgboost-use-system-dmlc-core.patch b/gnu/packages/patches/xgboost-use-system-dmlc-core.patch
new file mode 100644
index 0000000000..c654694fec
--- /dev/null
+++ b/gnu/packages/patches/xgboost-use-system-dmlc-core.patch
@@ -0,0 +1,34 @@
+From 34167cc105e47589b86b6f62da76e0ab744002dd Mon Sep 17 00:00:00 2001
+From: Vinicius Monego <monego@posteo.net>
+Date: Tue, 11 May 2021 19:35:30 -0300
+Subject: [PATCH] Use dmlc-core from Guix.
+
+---
+This patch is a subset of the following Debian patch: https://sources.debian.org/src/xgboost/1.2.1-1/debian/patches/cmake.patch/
+
+Rabit is now developed as part of xgboost, so we don't build it separately.
+
+ CMakeLists.txt | 8 +++-----
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6cc19fbd..3b42bc17 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -150,11 +150,9 @@ endif (USE_OPENMP)
+
+ # dmlc-core
+ msvc_use_static_runtime()
+-add_subdirectory(${xgboost_SOURCE_DIR}/dmlc-core)
+-set_target_properties(dmlc PROPERTIES
+-  CXX_STANDARD 14
+-  CXX_STANDARD_REQUIRED ON
+-  POSITION_INDEPENDENT_CODE ON)
++add_library(dmlc SHARED IMPORTED)
++find_library(DMLC_LIBRARY dmlc)
++set_property(TARGET dmlc PROPERTY IMPORTED_LOCATION "${DMLC_LIBRARY}")
+ if (MSVC)
+   target_compile_options(dmlc PRIVATE
+                          -D_CRT_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE)
+--
+2.31.1
diff --git a/gnu/packages/patches/yggdrasil-extra-config.patch b/gnu/packages/patches/yggdrasil-extra-config.patch
index c21ca29a84..bd4bea7b9f 100644
--- a/gnu/packages/patches/yggdrasil-extra-config.patch
+++ b/gnu/packages/patches/yggdrasil-extra-config.patch
@@ -1,27 +1,39 @@
+From 779f980451d20079b34812f7006f2d7230738ad0 Mon Sep 17 00:00:00 2001
+From: csepp <raingloom@riseup.net>
+Date: Wed, 3 Nov 2021 21:14:54 +0100
+Subject: [PATCH] add extra config file option to yggdrasil command
+
+This is useful in Guix and Nix, because one config file can come
+from the world-readable store and another can be placed directly
+into /etc with much stricter permissions.
+---
+ cmd/yggdrasil/main.go | 29 ++++++++++++++++++++++-------
+ 1 file changed, 22 insertions(+), 7 deletions(-)
+
 diff --git a/cmd/yggdrasil/main.go b/cmd/yggdrasil/main.go
-index 813e950..08d35cc 100644
+index 58b8230..b9df98a 100644
 --- a/cmd/yggdrasil/main.go
 +++ b/cmd/yggdrasil/main.go
-@@ -40,11 +40,12 @@ type node struct {
- 	admin     module.Module // admin.AdminSocket
+@@ -43,11 +43,12 @@ type node struct {
+ 	admin     *admin.AdminSocket
  }
  
--func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config.NodeConfig {
-+func readConfig(useconf *bool, useconffile *string, extraconffile *string, normaliseconf *bool) *config.NodeConfig {
+-func readConfig(log *log.Logger, useconf bool, useconffile string, normaliseconf bool) *config.NodeConfig {
++func readConfig(log *log.Logger, useconf bool, useconffile string, extraconffile string, normaliseconf bool) *config.NodeConfig {
  	// Use a configuration file. If -useconf, the configuration will be read
  	// from stdin. If -useconffile, the configuration will be read from the
  	// filesystem.
  	var conf []byte
 +	var extraconf []byte
  	var err error
- 	if *useconffile != "" {
+ 	if useconffile != "" {
  		// Read the file from the filesystem
-@@ -56,6 +57,21 @@ func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config
+@@ -59,6 +60,21 @@ func readConfig(log *log.Logger, useconf bool, useconffile string, normaliseconf
  	if err != nil {
  		panic(err)
  	}
-+	if *extraconffile != "" {
-+		extraconf, err = ioutil.ReadFile(*extraconffile);
++	if extraconffile != "" {
++		extraconf, err = ioutil.ReadFile(extraconffile);
 +	}
 +	if err != nil {
 +		panic(err)
@@ -30,7 +42,7 @@ index 813e950..08d35cc 100644
 +	// then parse the configuration we loaded above on top of it. The effect
 +	// of this is that any configuration item that is missing from the provided
 +	// configuration will use a sane default.
-+	cfg := config.GenerateConfig()
++	cfg := defaults.GenerateConfig()
 +	var confs [2][]byte
 +	confs[0]=conf
 +	confs[1]=extraconf
@@ -38,7 +50,7 @@ index 813e950..08d35cc 100644
  	// If there's a byte order mark - which Windows 10 is now incredibly fond of
  	// throwing everywhere when it's converting things into UTF-16 for the hell
  	// of it - remove it and decode back down into UTF-8. This is necessary
-@@ -69,11 +85,6 @@ func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config
+@@ -72,11 +88,6 @@ func readConfig(log *log.Logger, useconf bool, useconffile string, normaliseconf
  			panic(err)
  		}
  	}
@@ -46,11 +58,11 @@ index 813e950..08d35cc 100644
 -	// then parse the configuration we loaded above on top of it. The effect
 -	// of this is that any configuration item that is missing from the provided
 -	// configuration will use a sane default.
--	cfg := config.GenerateConfig()
+-	cfg := defaults.GenerateConfig()
  	var dat map[string]interface{}
  	if err := hjson.Unmarshal(conf, &dat); err != nil {
  		panic(err)
-@@ -112,6 +123,7 @@ func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config
+@@ -136,6 +147,7 @@ func readConfig(log *log.Logger, useconf bool, useconffile string, normaliseconf
  	if err = mapstructure.Decode(dat, &cfg); err != nil {
  		panic(err)
  	}
@@ -58,7 +70,15 @@ index 813e950..08d35cc 100644
  	return cfg
  }
  
-@@ -164,6 +176,7 @@ func main() {
+@@ -192,6 +204,7 @@ type yggArgs struct {
+ 	getaddr       bool
+ 	getsnet       bool
+ 	useconffile   string
++        extraconffile string
+ 	logto         string
+ 	loglevel      string
+ }
+@@ -200,6 +213,7 @@ func getArgs() yggArgs {
  	genconf := flag.Bool("genconf", false, "print a new config to stdout")
  	useconf := flag.Bool("useconf", false, "read HJSON/JSON config from stdin")
  	useconffile := flag.String("useconffile", "", "read HJSON/JSON config from specified file path")
@@ -66,21 +86,23 @@ index 813e950..08d35cc 100644
  	normaliseconf := flag.Bool("normaliseconf", false, "use in combination with either -useconf or -useconffile, outputs your configuration normalised")
  	confjson := flag.Bool("json", false, "print configuration from -genconf or -normaliseconf as JSON instead of HJSON")
  	autoconf := flag.Bool("autoconf", false, "automatic mode (dynamic IP, peer with IPv6 neighbors)")
-@@ -187,7 +200,7 @@ func main() {
- 		cfg = config.GenerateConfig()
- 	case *useconffile != "" || *useconf:
+@@ -213,6 +227,7 @@ func getArgs() yggArgs {
+ 		genconf:       *genconf,
+ 		useconf:       *useconf,
+ 		useconffile:   *useconffile,
++                extraconffile: *extraconffile,
+ 		normaliseconf: *normaliseconf,
+ 		confjson:      *confjson,
+ 		autoconf:      *autoconf,
+@@ -265,7 +280,7 @@ func run(args yggArgs, ctx context.Context, done chan struct{}) {
+ 		cfg = defaults.GenerateConfig()
+ 	case args.useconffile != "" || args.useconf:
  		// Read the configuration from either stdin or from the filesystem
--		cfg = readConfig(useconf, useconffile, normaliseconf)
-+		cfg = readConfig(useconf, useconffile, extraconffile, normaliseconf)
+-		cfg = readConfig(logger, args.useconf, args.useconffile, args.normaliseconf)
++		cfg = readConfig(logger, args.useconf, args.useconffile, args.extraconffile, args.normaliseconf)
  		// If the -normaliseconf option was specified then remarshal the above
  		// configuration and print it back to stdout. This lets the user update
  		// their configuration file with newly mapped names (like above) or to
-@@ -332,7 +345,7 @@ func main() {
- 			goto exit
- 		case _ = <-r:
- 			if *useconffile != "" {
--				cfg = readConfig(useconf, useconffile, normaliseconf)
-+				cfg = readConfig(useconf, useconffile, extraconffile, normaliseconf)
- 				logger.Infoln("Reloading configuration from", *useconffile)
- 				n.core.UpdateConfig(cfg)
- 				n.tuntap.UpdateConfig(cfg)
+-- 
+2.33.1
+
diff --git a/gnu/packages/patches/zig-disable-libc-note-test.patch b/gnu/packages/patches/zig-disable-libc-note-test.patch
new file mode 100644
index 0000000000..4d76139efb
--- /dev/null
+++ b/gnu/packages/patches/zig-disable-libc-note-test.patch
@@ -0,0 +1,31 @@
+This test fails with "error.CompilationIncorrectlySucceeded".
+
+diff --git a/test/compile_errors.zig b/test/compile_errors.zig
+index fd1255c..20d5548 100644
+--- a/test/compile_errors.zig
++++ b/test/compile_errors.zig
+@@ -2751,15 +2751,15 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
+             "tmp.zig:3:5: error: dependency on libc must be explicitly specified in the build command",
+         });
+
+-        cases.addTest("libc headers note",
+-            \\const c = @cImport(@cInclude("stdio.h"));
+-            \\export fn entry() void {
+-            \\    _ = c.printf("hello, world!\n");
+-            \\}
+-        , &[_][]const u8{
+-            "tmp.zig:1:11: error: C import failed",
+-            "tmp.zig:1:11: note: libc headers not available; compilation does not link against libc",
+-        });
++//        cases.addTest("libc headers note",
++//            \\const c = @cImport(@cInclude("stdio.h"));
++//            \\export fn entry() void {
++//            \\    _ = c.printf("hello, world!\n");
++//            \\}
++//        , &[_][]const u8{
++//            "tmp.zig:1:11: error: C import failed",
++//            "tmp.zig:1:11: note: libc headers not available; compilation does not link against libc",
++//        });
+     }
+
+     cases.addTest("comptime vector overflow shows the index",
diff --git a/gnu/packages/patches/zig-use-system-paths.patch b/gnu/packages/patches/zig-use-system-paths.patch
new file mode 100644
index 0000000000..33b7da1e0d
--- /dev/null
+++ b/gnu/packages/patches/zig-use-system-paths.patch
@@ -0,0 +1,143 @@
+This patch replaces the OS-specific detection mechanism by one that solely
+relies on environment variables.  This has the benefit that said environment
+variables can be used as search paths in Guix.
+
+Index: zig-0.8.1/lib/std/zig/system.zig
+===================================================================
+--- zig-0.8.1.orig/lib/std/zig/system.zig
++++ zig-0.8.1/lib/std/zig/system.zig
+@@ -39,101 +39,57 @@ pub const NativePaths = struct {
+         };
+         errdefer self.deinit();
+
+-        var is_nix = false;
+-        if (process.getEnvVarOwned(allocator, "NIX_CFLAGS_COMPILE")) |nix_cflags_compile| {
+-            defer allocator.free(nix_cflags_compile);
+-
+-            is_nix = true;
+-            var it = mem.tokenize(nix_cflags_compile, " ");
++        // TODO: Support cross-compile paths?
++        if (process.getEnvVarOwned(allocator, "C_INCLUDE_PATH")) |c_include_path| {
++            defer allocator.free(c_include_path);
++            var it = mem.tokenize(c_include_path, ":");
+             while (true) {
+-                const word = it.next() orelse break;
+-                if (mem.eql(u8, word, "-isystem")) {
+-                    const include_path = it.next() orelse {
+-                        try self.addWarning("Expected argument after -isystem in NIX_CFLAGS_COMPILE");
+-                        break;
+-                    };
+-                    try self.addIncludeDir(include_path);
+-                } else {
+-                    if (mem.startsWith(u8, word, "-frandom-seed=")) {
+-                        continue;
+-                    }
+-                    try self.addWarningFmt("Unrecognized C flag from NIX_CFLAGS_COMPILE: {s}", .{word});
+-                }
++                const dir = it.next() orelse break;
++                try self.addIncludeDir(dir);
+             }
+         } else |err| switch (err) {
+             error.InvalidUtf8 => {},
+             error.EnvironmentVariableNotFound => {},
+             error.OutOfMemory => |e| return e,
+         }
+-        if (process.getEnvVarOwned(allocator, "NIX_LDFLAGS")) |nix_ldflags| {
+-            defer allocator.free(nix_ldflags);
+
+-            is_nix = true;
+-            var it = mem.tokenize(nix_ldflags, " ");
++        if (process.getEnvVarOwned(allocator, "CPLUS_INCLUDE_PATH")) |cplus_include_path| {
++            defer allocator.free(cplus_include_path);
++            var it = mem.tokenize(cplus_include_path, ":");
+             while (true) {
+-                const word = it.next() orelse break;
+-                if (mem.eql(u8, word, "-rpath")) {
+-                    const rpath = it.next() orelse {
+-                        try self.addWarning("Expected argument after -rpath in NIX_LDFLAGS");
+-                        break;
+-                    };
+-                    try self.addRPath(rpath);
+-                } else if (word.len > 2 and word[0] == '-' and word[1] == 'L') {
+-                    const lib_path = word[2..];
+-                    try self.addLibDir(lib_path);
+-                } else {
+-                    try self.addWarningFmt("Unrecognized C flag from NIX_LDFLAGS: {s}", .{word});
+-                    break;
+-                }
++                const dir = it.next() orelse break;
++                try self.addIncludeDir(dir);
+             }
+         } else |err| switch (err) {
+             error.InvalidUtf8 => {},
+             error.EnvironmentVariableNotFound => {},
+             error.OutOfMemory => |e| return e,
+         }
+-        if (is_nix) {
+-            return self;
+-        }
+-
+-        if (comptime Target.current.isDarwin()) {
+-            try self.addIncludeDir("/usr/include");
+-            try self.addIncludeDir("/usr/local/include");
+
+-            try self.addLibDir("/usr/lib");
+-            try self.addLibDir("/usr/local/lib");
+-
+-            try self.addFrameworkDir("/Library/Frameworks");
+-            try self.addFrameworkDir("/System/Library/Frameworks");
+-
+-            return self;
++        if (process.getEnvVarOwned(allocator, "LIBRARY_PATH")) |library_path| {
++            defer allocator.free(library_path);
++            var it = mem.tokenize(library_path, ":");
++            while (true) {
++                const dir = it.next() orelse break;
++                try self.addLibDir(dir);
++            }
++        } else |err| switch (err) {
++            error.InvalidUtf8 => {},
++            error.EnvironmentVariableNotFound => {},
++            error.OutOfMemory => |e| return e,
+         }
+
+-        if (native_target.os.tag != .windows) {
+-            const triple = try native_target.linuxTriple(allocator);
+-            const qual = native_target.cpu.arch.ptrBitWidth();
+-
+-            // TODO: $ ld --verbose | grep SEARCH_DIR
+-            // the output contains some paths that end with lib64, maybe include them too?
+-            // TODO: what is the best possible order of things?
+-            // TODO: some of these are suspect and should only be added on some systems. audit needed.
+-
+-            try self.addIncludeDir("/usr/local/include");
+-            try self.addLibDirFmt("/usr/local/lib{d}", .{qual});
+-            try self.addLibDir("/usr/local/lib");
+-
+-            try self.addIncludeDirFmt("/usr/include/{s}", .{triple});
+-            try self.addLibDirFmt("/usr/lib/{s}", .{triple});
+-
+-            try self.addIncludeDir("/usr/include");
+-            try self.addLibDirFmt("/lib{d}", .{qual});
+-            try self.addLibDir("/lib");
+-            try self.addLibDirFmt("/usr/lib{d}", .{qual});
+-            try self.addLibDir("/usr/lib");
+-
+-            // example: on a 64-bit debian-based linux distro, with zlib installed from apt:
+-            // zlib.h is in /usr/include (added above)
+-            // libz.so.1 is in /lib/x86_64-linux-gnu (added here)
+-            try self.addLibDirFmt("/lib/{s}", .{triple});
++        if (process.getEnvVarOwned(allocator, "DYLD_FRAMEWORK_PATH")) |dyld_framework_path| {
++            defer allocator.free(dyld_framework_path);
++            var it = mem.tokenize(dyld_framework_path, ":");
++            while (true) {
++                const dir = it.next() orelse break;
++                try self.addFrameworkDir(dir);
++            }
++        } else |err| switch (err) {
++            error.InvalidUtf8 => {},
++            error.EnvironmentVariableNotFound => {},
++            error.OutOfMemory => |e| return e,
+         }
+
+         return self;
diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm
index aa679832db..9ac10dc8e4 100644
--- a/gnu/packages/patchutils.scm
+++ b/gnu/packages/patchutils.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2015, 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -52,18 +53,18 @@
 (define-public patchutils
   (package
     (name "patchutils")
-    (version "0.3.4")
+    (version "0.4.2")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "http://cyberelk.net/tim/data/patchutils/stable/"
-                          name "-" version ".tar.xz"))
-      (sha256
-       (base32
-        "0xp8mcfyi5nmb5a2zi5ibmyshxkb1zv1dgmnyn413m7ahgdx8mfg"))
-      (patches (search-patches "patchutils-test-perms.patch"))))
+       (method url-fetch)
+       (uri (string-append "http://cyberelk.net/tim/data/patchutils/stable/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1va5pzmxbzpi87vdnbjm9qdf9bvzps9xfv0gi4mycgg3bybb0xc8"))))
     (build-system gnu-build-system)
-    (inputs `(("perl" ,perl)))
+    (inputs
+     (list perl python))
     (arguments
      '(#:parallel-tests? #f
        #:phases
@@ -71,8 +72,7 @@
          (add-before 'check 'patch-test-scripts
            (lambda _
              (substitute* (find-files "tests" "^run-test$")
-               (("/bin/echo") (which "echo")))
-             #t))
+               (("/bin/echo") (which "echo")))))
          (add-after 'install 'wrap-program
            ;; Point installed scripts to the utilities they need.
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -87,8 +87,7 @@
                       ,(map (lambda (dir)
                               (string-append dir "/bin"))
                             (list diffutils sed gawk)))))
-                '("dehtmldiff" "editdiff" "espdiff")))
-             #t)))))
+                '("dehtmldiff" "editdiff" "espdiff"))))))))
     (home-page "http://cyberelk.net/tim/software/patchutils")
     (synopsis "Collection of tools for manipulating patch files")
     (description
@@ -112,11 +111,7 @@ listing the files modified by a patch.")
     (build-system gnu-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)))
-    (inputs `(("perl" ,perl)
-              ("less" ,less)
-              ("file" ,file)
-              ("ed" ,ed)
-              ("diffstat" ,diffstat)))
+    (inputs (list perl less file ed diffstat))
     (arguments
      '(#:parallel-tests? #f
        #:phases
@@ -183,8 +178,7 @@ refreshed, and more.")
          (delete 'configure)            ; no configure script
          (delete 'build))))             ; nothing to build
     (inputs
-     `(("perl" ,perl)
-       ("xmlto" ,xmlto)))
+     (list perl xmlto))
     (home-page "https://www.colordiff.org")
     (synopsis "Display diff output with colors")
     (description
@@ -208,7 +202,7 @@ refreshed, and more.")
                   "11rdmhv0l1s8nqb20ywmw2zqizczch2p62qf9apyx5wqgxlnjshk"))
                 (file-name (string-append name "-"version "-checkout"))))
       (build-system python-build-system)
-      (inputs `(("python-notmuch" ,python2-notmuch)))
+      (inputs (list python2-notmuch))
       (arguments
        `(#:tests? #f                             ;no "test" target
          #:python ,python-2))                    ;not compatible with Python 3
@@ -234,7 +228,7 @@ the command-line or from Emacs via its Notmuch integration.")
                 "1f1kj4jki08bnrwpzi663mjfkrx4wnfpzdfwd2qgijlkx5ysjkgh"))))
     (build-system gnu-build-system)
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (home-page "https://www.cjmweb.net/vbindiff/")
     (synopsis "Console-based tool for comparing binary data")
     (description "Visual Binary Diff (@command{vbindiff}) displays files in
@@ -267,7 +261,7 @@ GiB).")
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gtksourceview" ,gtksourceview-3)))
     (propagated-inputs
-     `(("dconf" ,dconf)))
+     (list dconf))
     (arguments
      `(#:imported-modules ((guix build glib-or-gtk-build-system)
                            ,@%python-build-system-modules)
@@ -390,22 +384,22 @@ application = get_wsgi_application()\n") port)))))
                (for-each (lambda (directory)
                            (copy-recursively
                             directory
-                            (string-append out-site-packages directory)))
+                            (string-append out-site-packages "/" directory)))
                          '(;; Contains the python code
                            "patchwork"
                            ;; Contains the templates for the generated HTML
                            "templates"))
                (delete-file-recursively
-                (string-append out-site-packages "patchwork/tests"))
+                (string-append out-site-packages "/patchwork/tests"))
 
                ;; Install patchwork related tools
                (for-each (lambda (file)
                            (install-file file (string-append out "/bin")))
                          (list
                           (string-append out-site-packages
-                                         "patchwork/bin/parsemail.sh")
+                                         "/patchwork/bin/parsemail.sh")
                           (string-append out-site-packages
-                                         "patchwork/bin/parsemail-batch.sh")))
+                                         "/patchwork/bin/parsemail-batch.sh")))
 
                ;; Collect the static assets, this includes JavaScript, CSS and
                ;; fonts. This is a standard Django process when running a
@@ -459,15 +453,15 @@ if __name__ == \"__main__\":
                (chmod (string-append out "/bin/patchwork-admin") #o555))
              #t)))))
     (inputs
-     `(("python-wrapper" ,python-wrapper)))
+     (list python-wrapper))
     (propagated-inputs
-     `(("python-django" ,python-django-2.2)
-       ;; TODO: Make this configurable
-       ("python-psycopg2" ,python-psycopg2)
-       ("python-mysqlclient" ,python-mysqlclient)
-       ("python-django-filter" ,python-django-filter)
-       ("python-djangorestframework" ,python-djangorestframework)
-       ("python-django-debug-toolbar" ,python-django-debug-toolbar)))
+     (list python-django-2.2
+           ;; TODO: Make this configurable
+           python-psycopg2
+           python-mysqlclient
+           python-django-filter
+           python-django-rest-framework
+           python-django-debug-toolbar))
     (synopsis "Web based patch tracking system")
     (description
      "Patchwork is a patch tracking system.  It takes in emails containing
@@ -518,10 +512,7 @@ Users can login allowing them to change the state of patches.")
                             "/share/man/man1"))
              #t)))))
     (native-inputs
-     `(("python-pbr" ,python-pbr)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-mock" ,python-mock)))
+     (list python-pbr python-pytest python-pytest-cov python-mock))
     (home-page
      "https://github.com/getpatchwork/pwclient")
     (synopsis "Command-line client for the Patchwork patch tracking tool")
diff --git a/gnu/packages/patool.scm b/gnu/packages/patool.scm
new file mode 100644
index 0000000000..31dfd994b1
--- /dev/null
+++ b/gnu/packages/patool.scm
@@ -0,0 +1,118 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages patool)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix git-download)
+  #:use-module (guix packages)
+  #:use-module (guix build-system python)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages backup)
+  #:use-module (gnu packages cdrom)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpio)
+  #:use-module (gnu packages debian)
+  #:use-module (gnu packages file)
+  #:use-module (gnu packages package-management)
+  #:use-module (gnu packages xiph))
+
+(define-public patool
+  (package
+    (name "patool")
+    (version "1.12")
+    (source
+     (origin
+       (method git-fetch)               ;no test data in PyPI archive
+       (uri (git-reference
+             (url "https://github.com/wummel/patool")
+             (commit (string-append "upstream/" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0zgvgx9549rvb57rgkpjalydz46k71gibfs6ab3b3sy439s0ay4h"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "pytest")))))))
+    (native-inputs
+     (list bzip2
+           cabextract
+           cdrtools
+           clzip
+           cpio
+           dpkg
+           file
+           flac
+           libarchive ;for bsdtar
+           lhasa
+           lrzip
+           lzip
+           lzop
+           python-pytest
+           p7zip
+           pbzip2
+           pigz
+           plzip
+           rpm))
+    (home-page "https://wummel.github.io/patool/")
+    (synopsis "Portable archive file manager")
+    (description "Patool provides a unified command line interface for a
+plethora of archivers.  It supports the following archive formats natively:
+@itemize
+@item TAR (.tar, .cbt)
+@item BZIP2 (.bz2)
+@item GZIP (.gz)
+@item ZIP (zip, .jar, .cbz).
+@end itemize
+The archive formats below are also supported as long as the corresponding
+compressor or archiver commands are available:
+@itemize
+@item 7z (.7z, .cb7)
+@item ACE (.ace, .cba)
+@item ADF (.adf)
+@item ALZIP (.alz)
+@item APE (.ape)
+@item AR (.a)
+@item ARC (.arc)
+@item ARJ (.arj)
+@item CAB (.cab)
+@item COMPRESS (.Z)
+@item CPIO (.cpio)
+@item DEB (.deb)
+@item DMS (.dms)
+@item FLAC (.flac)
+@item GZIP (.gz)
+@item ISO (.iso)
+@item LRZIP (.lrz)
+@item LZH (.lha, .lzh)
+@item LZIP (.lz)
+@item LZMA (.lzma)
+@item LZOP (.lzo)
+@item RPM (.rpm)
+@item RAR (.rar, .cbr)
+@item RZIP (.rz)
+@item SHN (.shn)
+@item TAR (.tar, .cbt)
+@item XZ (.xz)
+@item ZOO (.zoo).
+@end itemize")
+    (license license:gpl3+)))
diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm
index d7d224b292..47275a8ff0 100644
--- a/gnu/packages/pciutils.scm
+++ b/gnu/packages/pciutils.scm
@@ -109,8 +109,7 @@
        ;; No test suite.
        #:tests? #f))
     (native-inputs
-     `(("which" ,which)
-       ("pkg-config" ,pkg-config)))
+     (list which pkg-config))
     (inputs
      `(,@(if (member (or (%current-target-system)
                          (%current-system))
diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm
index e11d7c23fb..0324a21261 100644
--- a/gnu/packages/pcre.scm
+++ b/gnu/packages/pcre.scm
@@ -51,11 +51,9 @@
               "bin"           ;depends on Readline (adds 20MiB to the closure)
               "doc"           ;1.8 MiB of HTML
               "static"))      ;1.8 MiB static libraries
-   (inputs `(("bzip2" ,bzip2)
-             ("readline" ,readline)
-             ("zlib" ,zlib)))
+   (inputs (list bzip2 readline zlib))
    (arguments
-    '(#:disallowed-references ("doc")
+    `(#:disallowed-references ("doc")
       #:configure-flags '("--enable-utf"
                           "--enable-pcregrep-libz"
                           "--enable-pcregrep-libbz2"
@@ -63,7 +61,10 @@
                           "--enable-unicode-properties"
                           "--enable-pcre16"
                           "--enable-pcre32"
-                          "--enable-jit")
+                          ;; pcretest fails on powerpc32.
+                          ,@(if (target-ppc32?)
+                              '()
+                              `("--enable-jit")))
       #:phases (modify-phases %standard-phases
                  (add-after 'install 'move-static-libs
                    (lambda* (#:key outputs #:allow-other-keys)
@@ -96,9 +97,7 @@ POSIX regular expression API.")
                (base32
                 "0w6jaswjmg3bc0wsw6msn5bvk66p90kf2asnnj9rhll0idpak5ad"))))
    (build-system gnu-build-system)
-   (inputs `(("bzip2" ,bzip2)
-             ("readline" ,readline)
-             ("zlib" ,zlib)))
+   (inputs (list bzip2 readline zlib))
    (arguments
     `(#:configure-flags '("--enable-unicode"
                           "--enable-pcre2grep-libz"
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index abe3f44cc7..0170712971 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2015, 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2014, 2015, 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2014, 2015, 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
@@ -56,6 +56,7 @@
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cups)
@@ -64,7 +65,6 @@
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages game-development)
-  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
@@ -80,6 +80,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages markup)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages photo)
@@ -98,6 +99,7 @@
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages webkit)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
@@ -131,7 +133,7 @@
        ("pkg-config" ,pkg-config)
        ("texlive" ,texlive-tiny)))
     (inputs
-     `(("poppler" ,poppler)))
+     (list poppler))
     (home-page "https://github.com/trueroad/extractpdfmark")
     (synopsis "Extract page mode and named destinations as PDFmark from PDF")
     (description
@@ -176,10 +178,7 @@ information.")
                    (,(string-append qtbase "/lib/qt5/plugins/platforms"))))
                #t))))))
     (inputs
-     `(("python-pypdf2" ,python-pypdf2)
-       ("python-pyqt" ,python-pyqt)
-       ("python-poppler-qt5" ,python-poppler-qt5)
-       ("qtbase" ,qtbase-5)))
+     (list python-pypdf2 python-pyqt python-poppler-qt5 qtbase-5))
     (home-page "http://crazy-compilers.com/flyer-composer")
     (synopsis "Rearrange PDF pages to print as flyers on one sheet")
     (description "@command{flyer-composer} can be used to prepare one- or
@@ -251,11 +250,11 @@ please install the @code{flyer-composer-gui} package.")))
     ;; As per poppler-cairo and poppler-glib.pc.
     ;; XXX: Ideally we'd propagate Cairo too, but that would require a
     ;; different solution to the circular dependency mentioned above.
-    `(("glib" ,glib)))
+    (list glib))
    (native-inputs
-      `(("pkg-config" ,pkg-config)
-        ("glib" ,glib "bin")                      ; glib-mkenums, etc.
-        ("gobject-introspection" ,gobject-introspection)))
+      (list pkg-config
+            `(,glib "bin") ; glib-mkenums, etc.
+            gobject-introspection))
    (arguments
     `(#:tests? #f                      ;no test data provided with the tarball
       #:configure-flags
@@ -282,14 +281,14 @@ please install the @code{flyer-composer-gui} package.")))
 (define-public poppler-data
   (package
     (name "poppler-data")
-    (version "0.4.10")
+    (version "0.4.11")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://poppler.freedesktop.org/poppler-data"
                                   "-" version ".tar.gz"))
               (sha256
                (base32
-                "0c3vjs3p7rjc4yfacnhd865r27czmzwcr4j2z4jldi68dvvcwbvf"))))
+                "137h4m48gc4v0srnr0gkwaqna6kfdqpy5886if5gjfmh3g6hbv1c"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no test suite
@@ -326,7 +325,8 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.")
         (uri (pypi-uri "python-poppler-qt5" version))
         (sha256
          (base32
-          "0b82gm4i75q5v19kfbq0h4y0b2vcwr2213zkhxh6l0h45kdndmxd"))))
+          "0b82gm4i75q5v19kfbq0h4y0b2vcwr2213zkhxh6l0h45kdndmxd"))
+       (patches (search-patches "python-poppler-qt5-fix-build.patch"))))
     (build-system python-build-system)
     (arguments
      `(;; There are no tests.  The check phase just causes a rebuild.
@@ -347,12 +347,9 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.")
                                                (assoc-ref inputs "python-pyqt")
                                                "/share/sip")) #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("python-sip" ,python-sip-4)
-       ("python-pyqt" ,python-pyqt)
-       ("poppler-qt5" ,poppler-qt5)
-       ("qtbase" ,qtbase-5)))
+     (list python-sip-4 python-pyqt poppler-qt5 qtbase-5))
     (home-page "https://pypi.org/project/python-poppler-qt5/")
     (synopsis "Python bindings for Poppler-Qt5")
     (description
@@ -383,12 +380,9 @@ Poppler PDF rendering library.")
             (string-append "--with-png="
                            (assoc-ref %build-inputs "libpng")))))
    (inputs
-    `(("zlib" ,zlib)
-      ("libpng" ,libpng)))
+    (list zlib libpng))
    (native-inputs
-    `(("autoconf" ,autoconf)
-      ("automake" ,automake)
-      ("libtool" ,libtool)))
+    (list autoconf automake libtool))
    (home-page "http://libharu.org/")
    (synopsis "Library for generating PDF files")
    (description
@@ -407,11 +401,7 @@ reading and editing of existing PDF files.")
       (sha256
        (base32 "0ip81c9vy0igjnasl9iv2lz214fb01vvvdzbvjmgwc63fi1jgr0g"))))
    (build-system cmake-build-system)
-   (inputs `(("cups" ,cups)
-             ("freetype" ,freetype)
-             ("libpng" ,libpng)
-             ("qtbase" ,qtbase-5)
-             ("zlib" ,zlib)))
+   (inputs (list cups freetype libpng qtbase-5 zlib))
    (arguments
     `(#:tests? #f))                   ; there is no check target
    (synopsis "Viewer for PDF files based on the Motif toolkit")
@@ -432,9 +422,8 @@ reading and editing of existing PDF files.")
               (sha256
                (base32
                 "1i6cf0vks501cggwvfsl6qb7mdaf3sszdymphimfvnspw810faj5"))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("libarchive" ,libarchive)
-              ("zathura" ,zathura)))
+    (native-inputs (list pkg-config))
+    (inputs (list libarchive zathura))
     (build-system meson-build-system)
     (arguments
      `(#:tests? #f                      ; package does not contain tests
@@ -467,9 +456,8 @@ using libarchive.")
               (sha256
                (base32
                 "0wygq89nyjrjnsq7vbpidqdsirjm6iq4w2rijzwpk2f83ys8bc3y"))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("libspectre" ,libspectre)
-              ("zathura" ,zathura)))
+    (native-inputs (list pkg-config))
+    (inputs (list libspectre zathura))
     (build-system meson-build-system)
     (arguments
      `(#:tests? #f                      ; package does not contain tests
@@ -502,10 +490,9 @@ using libspectre.")
               (sha256
                (base32
                 "0062n236414db7q7pnn3ccg5111ghxj3407pn9ri08skxskgirln"))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
-     `(("djvulibre" ,djvulibre)
-       ("zathura" ,zathura)))
+     (list djvulibre zathura))
     (build-system meson-build-system)
     (arguments
      `(#:tests? #f                      ; package does not contain tests
@@ -538,7 +525,7 @@ using the DjVuLibre library.")
               (sha256
                (base32
                 "1r3v37k9fl2rxipvacgxr36llywvy7n20a25h3ajlyk70697sa66"))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
      `(("jbig2dec" ,jbig2dec)
        ("libjpeg" ,libjpeg-turbo)
@@ -588,10 +575,9 @@ by using the @code{mupdf} rendering library.")
               (sha256
                (base32
                 "1vfl4vkyy3rf39r1sqaa7y8113bgkh2bkfq3nn2inis9mrykmk6m"))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
-     `(("poppler" ,poppler)
-       ("zathura" ,zathura)))
+     (list poppler zathura))
     (build-system meson-build-system)
     (arguments
      `(#:tests? #f                      ; package does not include tests
@@ -637,17 +623,17 @@ by using the poppler rendering engine.")
                      ;; For tests.
                      ("check" ,check)
                      ("xorg-server" ,xorg-server-for-tests)))
-    (inputs `(("sqlite" ,sqlite)))
+    (inputs (list sqlite))
     ;; Listed in 'Requires.private' of 'zathura.pc'.
-    (propagated-inputs `(("cairo" ,cairo)
-                         ("girara" ,girara)))
+    (propagated-inputs (list cairo girara))
     (native-search-paths
      (list (search-path-specification
             (variable "ZATHURA_PLUGINS_PATH")
             (files '("lib/zathura")))))
     (build-system meson-build-system)
     (arguments
-     `(#:phases (modify-phases %standard-phases
+     `(#:meson ,meson-0.59
+       #:phases (modify-phases %standard-phases
                   (add-before 'check 'start-xserver
                     ;; Tests require a running X server.
                     (lambda* (#:key inputs #:allow-other-keys)
@@ -683,8 +669,7 @@ interaction.")
                 "1f0yvkx6nf99fp741w2y706d8bs9824x1z2gqm3rdy5fv8bfgwkw"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit pkg-config))
     (inputs
      `(("libjpeg" ,libjpeg-turbo)
        ("libtiff" ,libtiff)
@@ -719,21 +704,20 @@ extracting content or merging files.")
 (define-public mupdf
   (package
     (name "mupdf")
-    (version "1.18.0")
+    (version "1.19.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://mupdf.com/downloads/archive/"
                            "mupdf-" version "-source.tar.xz"))
        (sha256
-        (base32 "16m5sksil22sshxy70xkslsb2qhvcqb1d95i9savnhds1xn4ybar"))
-       (patches (search-patches "mupdf-fix-linkage.patch"
-                                "mupdf-CVE-2021-3407.patch"))
+        (base32 "1i98xqgnzp168hnnhradl8658qsif06wlbvcglz0mmh8wi1rkwrq"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; Remove bundled software.
-           (let* ((keep (list "lcms2")) ; different from our lcms2 package
+           (let* ((keep (list "extract"
+                              "lcms2")) ; different from our lcms2 package
                   (from "thirdparty")
                   (kept (string-append from "~temp")))
              (mkdir-p kept)
@@ -759,7 +743,7 @@ extracting content or merging files.")
         ("openssl" ,openssl)
         ("zlib" ,zlib)))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (arguments
       `(#:tests? #f                     ; no check target
         #:make-flags (list "verbose=yes"
@@ -818,12 +802,10 @@ line tools for batch rendering @command{pdfdraw}, rewriting files
               (("/usr/bin/env") (which "env")))
             #t)))))
    (native-inputs
-    `(("pkg-config" ,pkg-config)
-      ("perl" ,perl)))
+    (list pkg-config perl))
    (propagated-inputs
     ;; In Requires.private of libqpdf.pc.
-    `(("libjpeg-turbo" ,libjpeg-turbo)
-      ("zlib" ,zlib)))
+    (list libjpeg-turbo zlib))
    (synopsis "Command-line tools and library for transforming PDF files")
    (description
     "QPDF is a command-line program that does structural, content-preserving
@@ -851,22 +833,22 @@ program capable of converting PDF into other formats.")
        (patches (search-patches "qpdfview-qt515-compat.patch"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("cups" ,cups)
-       ("djvulibre" ,djvulibre)
-       ("libspectre" ,libspectre)
-       ("poppler-qt5" ,poppler-qt5)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+     (list cups
+           djvulibre
+           libspectre
+           poppler-qt5
+           qtbase-5
+           qtsvg))
     (arguments
      `(#:tests? #f ; no tests
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
-           (lambda _
+           (lambda* (#:key outputs #:allow-other-keys)
              (substitute* "qpdfview.pri"
-               (("/usr") (assoc-ref %outputs "out")))
+               (("/usr") (assoc-ref outputs "out")))
              (invoke "qmake" "qpdfview.pro"))))))
     (home-page "https://launchpad.net/qpdfview")
     (synopsis "Tabbed document viewer")
@@ -890,13 +872,9 @@ SyncTeX support, and rudimentary support for annotations and forms.")
          "09i88v3wacmx7f96dmq0l3afpyv95lh6jrx16xzm0jd1szdrhn5j"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gtk" ,gtk+-2)
-       ("pango" ,pango)
-       ("poppler" ,poppler)
-       ("glib" ,glib)
-       ("libgnomecanvas" ,libgnomecanvas)))
+     (list gtk+-2 pango poppler glib libgnomecanvas))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://xournal.sourceforge.net/")
     (synopsis "Notetaking using a stylus")
     (description
@@ -943,21 +921,20 @@ using a stylus.")
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
     (native-inputs
      `(("cppunit" ,cppunit)
-       ("gcc" ,gcc-8)
        ("gettext" ,gettext-minimal)
        ("help2man" ,help2man)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("gtk+" ,gtk+)
-       ("librsvg" ,librsvg)
-       ("libsndfile" ,libsndfile)
-       ("libxml2" ,libxml2)
-       ("libzip" ,libzip)
-       ("lua" ,lua)
-       ("poppler" ,poppler)
-       ("portaudio" ,portaudio)
-       ("texlive-bin" ,texlive-bin)))
+     (list alsa-lib
+           gtk+
+           librsvg
+           libsndfile
+           libxml2
+           libzip
+           lua
+           poppler
+           portaudio
+           texlive-bin))
     (home-page "https://github.com/xournalpp/xournalpp")
     (synopsis "Handwriting notetaking software with PDF annotation support")
     (description "Xournal++ is a hand note taking software written in
@@ -1036,7 +1013,7 @@ optimize toolbar for portrait / landscape
             (base32
              "1v0gy4mbx02ys96ssx89420y0njknlrxs2bx64bv4rp8a0al66w5"))))))
     (propagated-inputs
-     `(("python-pillow" ,python-pillow)))
+     (list python-pillow))
     (home-page "https://www.reportlab.com")
     (synopsis "Python library for generating PDFs and graphics")
     (description "This is the ReportLab PDF Toolkit.  It allows rapid creation
@@ -1062,10 +1039,7 @@ vector formats.")
     (build-system python-build-system)
 
     ;; TODO: Add dependency on pdftk.
-    (inputs `(("python2-pygame" ,python2-pygame)
-              ("python2-pillow" ,python2-pillow)
-              ("sdl" ,sdl)
-              ("xpdf" ,xpdf)))
+    (inputs (list python2-pygame python2-pillow sdl xpdf))
 
     (arguments
      `(#:python ,python-2
@@ -1103,18 +1077,17 @@ the PDF pages.")
 (define-public img2pdf
   (package
     (name "img2pdf")
-    (version "0.4.1")
+    (version "0.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "img2pdf" version))
        (sha256
-        (base32 "0ljmxp7myxccfdy4kxpn4jzq35qs4pbmmmnih9vis8abm2f2589q"))))
+        (base32 "17z0bn8kihiyqjd1m5jr80m7ry06l1qn0l8v918xg5gs7q2calcf"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pikepdf" ,python-pikepdf)
-       ("python-pillow" ,python-pillow)
-       ("python-tkinter" ,python "tk")))
+     (list python-pikepdf python-pillow
+           `(,python "tk")))
     (home-page "https://gitlab.mister-muffin.de/josch/img2pdf")
     (synopsis "Convert images to PDF via direct JPEG inclusion")
     (description
@@ -1168,7 +1141,7 @@ information for every pixel as the input.")
               ("libepoxy" ,libepoxy)
               ("libpng" ,libpng)
               ("poppler" ,poppler)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (synopsis "Framebuffer and drm-based image viewer")
     (description
       "fbida contains a few applications for viewing and editing images on
@@ -1190,10 +1163,9 @@ the framebuffer.")
                 "14ffdm4y26imq99wjhkrhy9lp33165xci1l5ndwfia8hz53bl02k"))))
     (build-system gnu-build-system)
     (inputs
-     `(("cairo" ,cairo)
-       ("poppler" ,poppler)))
+     (list cairo poppler))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://www.cityinthesky.co.uk/opensource/pdf2svg/")
     (synopsis "PDF to SVG converter")
     (description "@command{pdf2svg} is a simple command-line PDF to SVG
@@ -1274,7 +1246,7 @@ python-pypdf2 instead.")
 (define-public pdfarranger
   (package
     (name "pdfarranger")
-    (version "1.7.1")
+    (version "1.8.1")
     (source
      (origin
        (method git-fetch)
@@ -1283,31 +1255,26 @@ python-pypdf2 instead.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1c2mafnz8pv32wzkc2wx4q8y2x7xffpn6ag12dj7ga5n772fb6s3"))))
+        (base32 "1lcmlr7x4143f7wcn0m1ijlvch07nww2qfp3jfnacgy889ijvbfx"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f                      ;no tests
-       #:phases (modify-phases %standard-phases
-                  (add-after 'install 'wrap-for-typelib
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      (let* ((out     (assoc-ref outputs "out"))
-                             (program (string-append out "/bin/pdfarranger")))
-                        (wrap-program program
-                          `("GI_TYPELIB_PATH" ":" prefix
-                            (,(getenv "GI_TYPELIB_PATH"))))
-                        #t))))))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-for-typelib
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out     (assoc-ref outputs "out"))
+                    (program (string-append out "/bin/pdfarranger")))
+               (wrap-program program
+                 `("GI_TYPELIB_PATH" ":" prefix
+                   (,(getenv "GI_TYPELIB_PATH"))))))))))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("python-distutils-extra" ,python-distutils-extra)))
+     (list intltool python-distutils-extra))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("poppler" ,poppler)))
+     (list gtk+ poppler))
     (propagated-inputs
-     `(("img2pdf" ,img2pdf)
-       ("python-dateutil" ,python-dateutil)
-       ("python-pikepdf" ,python-pikepdf)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)))
+     (list img2pdf python-dateutil python-pikepdf python-pycairo
+           python-pygobject))
     (home-page "https://github.com/jeromerobert/pdfarranger")
     (synopsis "Merge, split and re-arrange pages from PDF documents")
     (description
@@ -1332,7 +1299,7 @@ PDF Arranger was formerly known as PDF-Shuffler.")
     (arguments
      `(#:tests? #f))  ; test-suite not included in source archive
     (inputs
-     `(("python-pypdf2" ,python-pypdf2)))
+     (list python-pypdf2))
     (home-page "https://pythonhosted.org/pdftools.pdfposter/")
     (synopsis "Scale and tile PDF images/pages to print on multiple pages")
     (description "@command{pdfposter} can be used to create a large poster by
@@ -1360,11 +1327,9 @@ PDF.  Indeed @command{pdfposter} was inspired by @command{poster}.")
          "1fia10djcxxl7n9jw2prargw4yzbykk6izig2443ycj9syhxrwqf"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libgcrypt" ,libgcrypt)
-       ("pcre" ,pcre)
-       ("poppler" ,poppler)))
+     (list libgcrypt pcre poppler))
     (home-page "https://pdfgrep.org")
     (synopsis "Command-line utility to search text in PDF files")
     (description
@@ -1377,7 +1342,7 @@ multiple files.")
 (define-public pdfpc
   (package
     (name "pdfpc")
-    (version "4.4.1")
+    (version "4.5.0")
     (source
      (origin
        (method git-fetch)
@@ -1386,20 +1351,33 @@ multiple files.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "11n925c5jj3yfwnqkgxzqrmsrpqh8ls1g4idmqqzpsanpam1xvna"))))
+        (base32 "0bmy51w6ypz927hxwp5g7wapqvzqmsi3w32rch6i3f94kg1152ck"))))
     (build-system cmake-build-system)
-    (arguments '(#:tests? #f))          ; no test target
+    (arguments
+     '(#:tests? #f          ; no test target
+       #:phases
+       (modify-phases %standard-phases
+         ;; This is really a bug in Vala.
+         ;; https://github.com/pdfpc/pdfpc/issues/594
+         (add-after 'unpack 'fix-vala-API-conflict
+           (lambda _
+             (substitute* "src/classes/action/movie.vala"
+               (("info.from_caps\\(caps\\)")
+                "Gst.Video.info_from_caps(out info, caps)")))))))
     (inputs
      `(("cairo" ,cairo)
+       ("discount" ,discount) ; libmarkdown
        ("gtk+" ,gtk+)
        ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
+       ("json-glib" ,json-glib)
        ("libgee" ,libgee)
        ("poppler" ,poppler)
        ("pango" ,pango)
-       ("vala" ,vala)))
+       ("vala" ,vala)
+       ("webkitgtk" ,webkitgtk-with-libsoup2)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://pdfpc.github.io/")
     (synopsis "Presenter console with multi-monitor support for PDF files")
     (description
@@ -1409,7 +1387,7 @@ is able to show a normal presentation window on one screen, while showing a
 more sophisticated overview on the other one providing information like a
 picture of the next slide, as well as the left over time till the end of the
 presentation.  The input files processed by pdfpc are PDF documents.")
-    (license license:gpl2+)))
+    (license license:gpl3+)))
 
 (define-public paps
   (package
@@ -1424,10 +1402,9 @@ presentation.  The input files processed by pdfpc are PDF documents.")
         (base32 "1z1w1fg2bvb8p92n1jlpqp3n9mq42szb2mqhh4xqmmnmfcdkpi9s"))))
     (build-system gnu-build-system)
     (inputs
-     `(("pango" ,pango)))
+     (list pango))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (home-page "https://github.com/dov/paps")
     (synopsis "Pango to PostScript converter")
     (description
@@ -1458,8 +1435,7 @@ rendering of the file through the Pango Cairo back end.")
                (("more-itertools>=2\\.2,<6\\.0\\.0") "more-itertools>=2.2"))
              #t)))))
     (propagated-inputs
-     `(("python-more-itertools" ,python-more-itertools)
-       ("python-pypdf2" ,python-pypdf2)))
+     (list python-more-itertools python-pypdf2))
     (home-page "https://github.com/hellerbarde/stapler")
     (synopsis "PDF manipulation tool")
     (description "Stapler is a pure Python alternative to PDFtk, a tool for
@@ -1537,18 +1513,17 @@ manipulating PDF documents from the command line.  It supports
        ("glib" ,glib)
        ("pango" ,pango)))
     (propagated-inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
-       ("python-cairocffi" ,python-cairocffi)
-       ("python-cairosvg" ,python-cairosvg)
-       ("python-cffi" ,python-cffi)
-       ("python-cssselect2" ,python-cssselect2)
-       ("python-html5lib" ,python-html5lib)
-       ("python-pyphen" ,python-pyphen)
-       ("python-tinycss2" ,python-tinycss2)))
+     (list gdk-pixbuf
+           python-cairocffi
+           python-cairosvg
+           python-cffi
+           python-cssselect2
+           python-html5lib
+           python-pyphen
+           python-tinycss2))
     (native-inputs
-     `(("font-dejavu" ,font-dejavu)     ;tests depend on it
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list font-dejavu ;tests depend on it
+           python-pytest-cov python-pytest-runner))
     (home-page "https://weasyprint.org/")
     (synopsis "Document factory for creating PDF files from HTML")
     (description "WeasyPrint helps web developers to create PDF documents.  It
diff --git a/gnu/packages/pem.scm b/gnu/packages/pem.scm
index df0ee54c46..2fba63336f 100644
--- a/gnu/packages/pem.scm
+++ b/gnu/packages/pem.scm
@@ -36,7 +36,7 @@
        (base32
         "03iqcki1lakkck1akdyvljjapgqda3l0rh38id7jhrac9kcxqgg2"))))
     (build-system gnu-build-system)
-    (inputs `(("perl" ,perl)))
+    (inputs (list perl))
     (home-page "https://www.gnu.org/software/pem/")
     (synopsis "Personal expenses manager")
     (description
diff --git a/gnu/packages/pep.scm b/gnu/packages/pep.scm
index dde316e153..d0dfb0a685 100644
--- a/gnu/packages/pep.scm
+++ b/gnu/packages/pep.scm
@@ -54,7 +54,7 @@
         (base32 "0fm1x1fv4lwcpbn59s55idzf7x173n59xpz8rlrxalmi6gvsjijr"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-lxml" ,python-lxml)))
+     (list python-lxml))
     (home-page "https://fdik.org/yml/")
     (synopsis "Use a Domain Specific Language for XML without defining
 a grammar")
@@ -127,9 +127,8 @@ OPENPGP=SEQUOIA
            (lambda _
              (invoke "make" "-C" "db" "install"))))))
     (native-inputs
-     `(("asn1c" ,asn1c) ; >= 0.9.27
-       ("pkg-config" ,pkg-config)
-       ("yml2" ,yml2)))
+     (list asn1c ; >= 0.9.27
+           pkg-config yml2))
     (inputs
      `(("libetpan" ,fdik-libetpan)
        ("libiconv" ,libiconv)
@@ -181,7 +180,7 @@ ENGINE_INC_PATH=~a/include
 " out engine engine))))
              #t)))))
     (inputs
-     `(("pep-engine" ,pep-engine)))
+     (list pep-engine))
     (home-page "https://pep.foundation/")
     (synopsis "Library for building p≡p adapters")
     (description "This C++ library provides common structures used in p≡p
@@ -238,14 +237,10 @@ ENGINE_INC_PATH=~a/include
                (("\"wheel *>=.*\"") ""))
              #t)))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-forked" ,python-pytest-forked)))
+     (list python-pytest python-pytest-forked))
     (inputs
-     `(("boost-python" ,boost-with-python3)
-       ("libpepadapter" ,libpepadapter)
-       ("pep-engine" ,pep-engine)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("util-linux" ,util-linux "lib"))) ;; uuid.h
+     (list boost libpepadapter pep-engine python-setuptools-scm
+           `(,util-linux "lib"))) ;; uuid.h
     (home-page "https://pep.foundation/")
     (synopsis "Python adapter for p≡p (pretty Easy Privacy)")
     (description "The p≡p Python adapter is an adaptor interface to the p≡p
@@ -329,15 +324,11 @@ JAVA_HOME=~a
                (copy-recursively "doc/doxygen/java/html" javaout)
                #t))))))
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("graphviz" ,graphviz)
-       ("openjdk" ,openjdk9 "jdk")
-       ("which" ,which)
-       ("yml2" ,yml2)))
+     (list doxygen graphviz
+           `(,openjdk9 "jdk") which yml2))
     (inputs
-     `(("libpepadapter" ,libpepadapter)
-       ("pep-engine" ,pep-engine)
-       ("util-linux" ,util-linux "lib"))) ;; uuid.h
+     (list libpepadapter pep-engine
+           `(,util-linux "lib"))) ;; uuid.h
     (home-page "https://pep.foundation/")
     (synopsis "Java adapter for p≡p (pretty Easy Privacy)")
     (description "The p≡p JNI adapter is a Java adapter interface to the p≡p
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index cab1c0916d..bde3079bef 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -87,9 +87,7 @@ lexically, just dynamically.")
          (add-after 'unpack 'set-env
            (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1") #t)))))
     (propagated-inputs
-     `(("perl-importer" ,perl-importer)
-       ("perl-term-table" ,perl-term-table)
-       ("perl-sub-info" ,perl-sub-info)))
+     (list perl-importer perl-term-table perl-sub-info))
     (home-page "https://metacpan.org/pod/Test2-Suite")
     (synopsis "Full set of tools for Test2::Suite")
     (description "This package provides a rich set of tools, plugins, bundles,
@@ -110,9 +108,9 @@ etc built upon the Test2 testing library.")
           "002qk6qsm0l6r2kaxywvc38w0yf0mlavgywq8li076pn6kcw3242"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-ipc-run3" ,perl-ipc-run3)))
+     (list perl-ipc-run3))
     (propagated-inputs
-     `(("perl-test2-suite" ,perl-test2-suite)))
+     (list perl-test2-suite))
     (home-page "https://metacpan.org/release/Test2-Plugin-NoWarnings")
     (synopsis "Fail if tests warn")
     (description "Loading this plugin causes your tests to fail if there any
@@ -134,11 +132,9 @@ warning content is outputted via diag.")
          "056hibgg3i2b89mwr76vyxi6ayb3hqjqcwicvn3s5lximsma3517"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-algorithm-diff" ,perl-algorithm-diff)
-       ("perl-text-diff" ,perl-text-diff)))
+     (list perl-algorithm-diff perl-text-diff))
     (propagated-inputs
-     `(("perl-spiffy" ,perl-spiffy)
-       ("perl-test-deep" ,perl-test-deep)))
+     (list perl-spiffy perl-test-deep))
     (home-page "https://metacpan.org/release/Test-Base")
     (synopsis "Data-driven testing framework for Perl")
     (description "Test::Base gives a way to trivially write your own test
@@ -162,7 +158,7 @@ patterns, so that you can write tests with a minimum of code.")
          "1vjinlixxdx6gfcw8y1dw2rla8bfhi8nmgcqr3nffc7kqskcrz36"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-cpan-meta-check" ,perl-cpan-meta-check)))
+     (list perl-cpan-meta-check))
     (home-page "https://metacpan.org/release/Test-CheckDeps")
     (synopsis "Check for presence of dependencies")
     (description
@@ -186,11 +182,9 @@ installed properly.")
          "0l0kk5jvxjkic2jkf1r7v41irb344aasnzr3f5ygjgxgiknm9489"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-exception" ,perl-test-exception)))
+     (list perl-test-exception))
     (inputs
-     `(("perl-module-runtime" ,perl-module-runtime)
-       ("perl-mro-compat" ,perl-mro-compat)
-       ("perl-try-tiny" ,perl-try-tiny)))
+     (list perl-module-runtime perl-mro-compat perl-try-tiny))
     (home-page "https://metacpan.org/release/Test-Class")
     (synopsis "Easily create test classes in an xUnit/JUnit style")
     (description "@code{Test::Class} provides a simple way of creating classes
@@ -217,13 +211,10 @@ Built using @code{Test::Builder}, it was designed to work with other
          "1zvx9hil0mg0pnb8xfa4m0xgjpvh8s5gnbyprq3xwpdsdgcdwk33"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (inputs
-     `(("perl-test-class" ,perl-test-class)
-       ("perl-test-most" ,perl-test-most)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-try-tiny" ,perl-try-tiny)
-       ("perl-mro-compat" ,perl-mro-compat)))
+     (list perl-test-class perl-test-most perl-module-runtime
+           perl-try-tiny perl-mro-compat))
     (home-page "https://metacpan.org/release/Test-Class-Most")
     (synopsis "Test classes the easy way")
     (description "@code{Test::Class::Most} provides some more convenience when
@@ -243,18 +234,15 @@ using @code{Test::Class}.")
         (base32 "0yijspncqgmbkkxrh66xx1pliajar05yqhzq6m4nb6p8x1lmb39k"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-file-pushd" ,perl-file-pushd)
-       ("perl-test-requires" ,perl-test-requires)
-       ("perl-test-deep" ,perl-test-deep)
-       ("perl-test-warnings" ,perl-test-warnings)
-       ("perl-test-needs" ,perl-test-needs)))
+     (list perl-file-pushd perl-test-requires perl-test-deep
+           perl-test-warnings perl-test-needs))
     (propagated-inputs
-     `(("perl-namespace-clean" ,perl-namespace-clean)
-       ("perl-package-stash" ,perl-package-stash)
-       ("perl-sub-identify" ,perl-sub-identify)
-       ("perl-sub-exporter" ,perl-sub-exporter)
-       ("perl-file-find-rule" ,perl-file-find-rule)
-       ("perl-file-find-rule-perl" ,perl-file-find-rule-perl)))
+     (list perl-namespace-clean
+           perl-package-stash
+           perl-sub-identify
+           perl-sub-exporter
+           perl-file-find-rule
+           perl-file-find-rule-perl))
     (home-page "https://metacpan.org/release/Test-CleanNamespaces")
     (synopsis "Check for uncleaned imports")
     (description "This module lets you check your module's namespaces for
@@ -277,7 +265,7 @@ called as methods, which usually isn't want you want.")
                 "0cwm3c4d49mdrbm6vgh78b3x8mk730l0zg8i7xb9z8bkx9pzr8r8"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (home-page "https://github.com/danboo/perl-test-command")
     (synopsis "Test routines for external commands")
     (description
@@ -301,9 +289,7 @@ output and standard error of external commands.")
          "1dcdbbdwdyhpldkhjzc9rvzlmb5jbil6fwh2x07nsfdwysf4ynzm"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-cpan-meta-json" ,perl-test-cpan-meta-json)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-test-cpan-meta-json perl-test-pod perl-test-pod-coverage))
     (home-page
      "https://metacpan.org/release/Test-CPAN-Meta")
     (synopsis "Validate your CPAN META.yml files")
@@ -328,10 +314,9 @@ specification.")
          "1jg9ka50ixwq083wd4k12rhdjq87w0ihb34gd8jjn7gvvyd51b37"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-test-pod perl-test-pod-coverage))
     (inputs
-     `(("perl-json" ,perl-json)))
+     (list perl-json))
     (home-page
      "https://metacpan.org/release/Test-CPAN-Meta-JSON")
     (synopsis "Validate your CPAN META.json files")
@@ -352,7 +337,7 @@ specification.")
                (base32
                 "1kdy06r0yg7zwarqglc9163vbfb0sfc4s6ld4pw5q7i9f7mghzi0"))))
     (build-system perl-build-system)
-    (inputs `(("perl-test-nowarnings" ,perl-test-nowarnings)))
+    (inputs (list perl-test-nowarnings))
     (synopsis "Flexible deep comparison for the Test::Builder framework")
     (description
      "Test::Deep compares two structures by going through each level, ensuring
@@ -375,10 +360,9 @@ structures without getting caught in an infinite loop.")
         (base32 "1nkqr3m4lbzw7fkkzah42aiqlhxapamk6kw7hj90cjwkifsbp3f8"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-text-diff" ,perl-text-diff)
-       ("perl-capture-tiny" ,perl-capture-tiny)))
+     (list perl-text-diff perl-capture-tiny))
     (home-page "https://metacpan.org/release/Test-Differences")
     (synopsis "Test strings and data structures and show differences")
     (description "This module exports three test functions and four diff-style
@@ -401,13 +385,11 @@ functions.")
          "1hpafgr93jjl6s8spskhdxhgich4cccmaiq99mla5diyj4iv6ckk"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-pod-coverage" ,perl-pod-coverage)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-pod-coverage perl-test-pod perl-test-pod-coverage))
     (home-page "https://metacpan.org/release/Test-Dir")
     (synopsis "Utilities for testing directory attributes")
     (description
-     "This modules provides a collection of test utilities for directory
+     "This module provides a collection of test utilities for directory
 attributes.")
     (license perl-license)))
 
@@ -424,7 +406,7 @@ attributes.")
         (base32
          "1ncql08cizhicbxwd753b4czns8nlcnlw0zfjcfrbdd41x4j6hqr"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-test-exception" ,perl-test-exception)))
+    (native-inputs (list perl-test-exception))
     (home-page "https://metacpan.org/release/Test-Directory")
     (synopsis "Perl extension for maintaining test directories")
     (description "Testing code can involve making sure that files are created
@@ -449,9 +431,9 @@ files, as well as to verify that there are no missing or unknown files.")
         (base32 "1ifpff5simjslabwy7ac6kdylv4c0b5b39fgpwf9ha16yh6w49ix"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-module-manifest" ,perl-module-manifest)))
+     (list perl-module-manifest))
     (home-page "https://github.com/jawnsy/Test-DistManifest")
     (synopsis "Author test that validates a package @file{MANIFEST}")
     (description
@@ -474,12 +456,10 @@ files, as well as to verify that there are no missing or unknown files.")
         "0s1bj459qaw2x1fckklv9irpf3mr8gp2cm9vlyrb5dyanrzx1v2h"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-file-find-rule" ,perl-file-find-rule)
-       ("perl-pod-coverage" ,perl-pod-coverage)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-file-find-rule perl-pod-coverage perl-test-pod
+           perl-test-pod-coverage))
     (home-page "https://metacpan.org/release/Test-Distribution")
     (synopsis "Perform tests on all modules of a distribution")
     (description "When used in a test script @code{Test::Distribution}
@@ -531,9 +511,9 @@ and/or windows line endings in your perl code.")
          "0cxm7s4bg0xpxa6l6996a6iq3brr4j7p4hssnkc6dxv4fzq16sqm"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-sub-uplevel" ,perl-sub-uplevel)))
+     (list perl-sub-uplevel))
     (home-page "https://metacpan.org/release/Test-Exception")
     (synopsis "Test exception based code")
     (description "This module provides a few convenience methods for testing
@@ -556,7 +536,7 @@ Test::More and friends.")
          "0vx9chcp5x8m0chq574p9fnfckh5gl94j7904rh9v17n568fyd6s"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)))
+     (list perl-capture-tiny))
     (home-page "https://metacpan.org/release/Test-FailWarnings")
     (synopsis "Add test failures if warnings are caught")
     (description
@@ -576,7 +556,7 @@ Test::More and friends.")
         (base32
          "1c6bs68mss4q7cyapkv2c0jn66i21050p0faxf3s3417gdffzp5w"))))
     (build-system perl-build-system)
-    (propagated-inputs `(("perl-try-tiny" ,perl-try-tiny)))
+    (propagated-inputs (list perl-try-tiny))
     (home-page "https://metacpan.org/release/Test-Fatal")
     (synopsis "Simple helpers for testing code with exceptions")
     (description "Test::Fatal is an alternative to the popular
@@ -599,7 +579,7 @@ testing exception-throwing code with about the same amount of typing.")
         (base32 "0195dnvwxxphwbglw6cjid3j7kq15xg46lr7r4468idvadyal6c7"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-utf8" ,perl-test-utf8)))
+     (list perl-test-utf8))
     (home-page "https://metacpan.org/release/Test-File")
     (synopsis "Utilities for testing file attributes")
     (description
@@ -623,11 +603,9 @@ attributes.")
          "0g8zgfyw84181snw7ghahnl9r4lrmlfj7zwi76sv8d0bj7xssvyd"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)
-       ("perl-text-diff" ,perl-text-diff)))
+     (list perl-test-pod perl-test-pod-coverage perl-text-diff))
     (home-page "https://metacpan.org/release/Test-File-Contents")
     (synopsis "Test routines for examining the contents of files")
     (description
@@ -649,12 +627,12 @@ files.")
           "1bbs6cx69wcinq77gif4i4pmrj8a7lwb92sgvvxzrwmjnk5lfdmk"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-class-tiny" ,perl-class-tiny)
-       ("perl-file-copy-recursive" ,perl-file-copy-recursive)
-       ("perl-file-sharedir" ,perl-file-sharedir)
-       ("perl-path-tiny" ,perl-path-tiny)
-       ("perl-scope-guard" ,perl-scope-guard)
-       ("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-class-tiny
+           perl-file-copy-recursive
+           perl-file-sharedir
+           perl-path-tiny
+           perl-scope-guard
+           perl-test-fatal))
     (home-page "https://github.com/kentnl/Test-File-ShareDir")
     (synopsis "Dist oriented ShareDir tester")
     (description "This module creates a Fake ShareDir for your modules
@@ -676,7 +654,7 @@ for testing.")
          "1gpw4mjw68gnby8s4cifvbz6g2923xsc189jkw9d27i8qv20qiba"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-path-tiny" ,perl-path-tiny)))
+     (list perl-path-tiny))
     (home-page "https://metacpan.org/release/Test-Filename")
     (synopsis "Portable filename comparison")
     (description "Test::Filename provides functions to convert all path
@@ -699,8 +677,7 @@ separators automatically.")
          "1zn33yigznq7i1jr4yjr4lxvc6bn7znkbqdzj7slhc146pqapkln"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-algorithm-diff" ,perl-algorithm-diff)
-       ("perl-text-diff" ,perl-text-diff)))
+     (list perl-algorithm-diff perl-text-diff))
     (home-page "https://metacpan.org/release/Test-Files")
     (synopsis "Ease software testing with files and directories")
     (description "This library provides functions to enable testing of files
@@ -791,8 +768,7 @@ you test against long strings.")
                 "1n9jscnni24sbp4v5gjlcy3iknfwvmy0731xwvk1c3jq3kbslym4"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-test-pod perl-test-pod-coverage))
     (home-page "https://metacpan.org/release/Test-Manifest")
     (synopsis "Interact with a t/test_manifest file")
     (description "@code{Test::Manifest} overrides the default test file order.  Instead of
@@ -817,9 +793,9 @@ It constructs the right value for the build system to do the right thing.")
          "00ijmgx1r3cxrcs1qa9rb2s4gbm3nsawd90drda89kb4r7yxslwx"))))
     (build-system perl-build-system)
     (inputs
-     `(("perl-padwalker" ,perl-padwalker)))
+     (list perl-padwalker))
     (propagated-inputs
-     `(("perl-devel-cycle" ,perl-devel-cycle)))
+     (list perl-devel-cycle))
     (home-page
      "https://metacpan.org/release/Test-Memory-Cycle")
     (synopsis
@@ -840,23 +816,21 @@ memory_cycle_ok( $object );
 (define-public perl-test-mockmodule
   (package
     (name "perl-test-mockmodule")
-    (version "0.171.0")
+    (version "0.177.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/G/GF/GFRANKS/"
                            "Test-MockModule-v" version ".tar.gz"))
        (sha256
-        (base32 "1arqgb1773zym5dqlwm6kz48bfrccjhb5bjfsif0vkalwq2gvm7b"))))
+        (base32 "0i8hiw9r2kak8kgp2qabr0cnnpp1yg1sddm781nhfxpavi4pmnhv"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ;; For tests.
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)
-       ("perl-test-warnings" ,perl-test-warnings)))
+     (list perl-module-build
+           ;; For tests.
+           perl-test-pod perl-test-pod-coverage perl-test-warnings))
     (propagated-inputs
-     `(("perl-super" ,perl-super)))
+     (list perl-super))
     (home-page "https://metacpan.org/release/Test-MockModule")
     (synopsis "Override subroutines in a module for unit testing")
     (description
@@ -881,14 +855,10 @@ you @code{unmock()} the subroutine.")
         (base32 "160r36j727hw6syazh6sfq862f95dp1zcga0nil7cjlry77lqsn7"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-cgi" ,perl-cgi)
-       ("perl-test-exception" ,perl-test-exception)
-       ("perl-test-warn" ,perl-test-warn)))
+     (list perl-cgi perl-test-exception perl-test-warn))
     (propagated-inputs
-     `(("perl-test-exception" ,perl-test-exception)
-       ("perl-test-warn" ,perl-test-warn)
-       ("perl-universal-can" ,perl-universal-can)
-       ("perl-universal-isa" ,perl-universal-isa)))
+     (list perl-test-exception perl-test-warn perl-universal-can
+           perl-universal-isa))
     (home-page "https://metacpan.org/release/Test-MockObject")
     (synopsis "Emulate troublesome interfaces in Perl")
     (description "Test::MockObject allows you to create objects that conform
@@ -908,7 +878,7 @@ the behavior, just the input and the output.")
        (sha256
         (base32 "1y820qsq7yf7r6smy5c6f0mpf2cis2q24vwmpim1svv0n8cf2qrk"))))
     (propagated-inputs
-     `(("perl-time-piece" ,perl-time-piece)))
+     (list perl-time-piece))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/Test-MockTime")
     (synopsis "Replaces actual time with simulated time")
@@ -956,11 +926,8 @@ easy use flagged strings without warnings like \"Wide character in print
          "0zv5dyzq55r28plffibcr7wd00abap0h2zh4s4p8snaiszsad5wq"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-test-differences" ,perl-test-differences)
-       ("perl-test-warn" ,perl-test-warn)
-       ("perl-exception-class" ,perl-exception-class)
-       ("perl-test-deep" ,perl-test-deep)
-       ("perl-test-exception" ,perl-test-exception)))
+     (list perl-test-differences perl-test-warn perl-exception-class
+           perl-test-deep perl-test-exception))
     (home-page "https://metacpan.org/release/Test-Most")
     (synopsis "Most commonly needed test functions and features")
     (description "This module provides the most commonly used testing
@@ -1034,7 +1001,7 @@ code.")
     (build-system perl-build-system)
     (synopsis "Ensure no warnings are produced while testing")
     (description
-     "This modules causes any warnings during testing to be captured and
+     "This module causes any warnings during testing to be captured and
 stored.  It automatically adds an extra test that will run when your script
 ends to check that there were no warnings.  If there were any warnings, the
 test will fail and output diagnostics of where, when and what the warning was,
@@ -1106,8 +1073,7 @@ classes in its inheritance tree in one single call.")
                 "0vjm62c7g3xxs3h4lba55dnpr4pg71yrhkdg5b9glxdh80klia7n"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)
-       ("perl-sub-exporter" ,perl-sub-exporter)))
+     (list perl-capture-tiny perl-sub-exporter))
     (synopsis "Utilities to test STDOUT and STDERR messages")
     (description
      "Test::Output provides a simple interface for testing output sent to
@@ -1129,7 +1095,7 @@ as flexible as possible to the tester.")
         (base32
          "1z75x1pxwp8ajwq9iazlg2c3wd7rdlim08yclpdg32qnc36dpa30"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-module-build" ,perl-module-build)))
+    (native-inputs (list perl-module-build))
     (home-page "https://metacpan.org/release/Test-Pod")
     (synopsis "Check for POD errors in files")
     (description "Check POD files for errors or warnings in a test file, using
@@ -1150,7 +1116,7 @@ Pod::Simple to do the heavy lifting.")
          "1m203mhgfilz7iqc8mxaw4lw02fz391mni3n25sfx7nryylwrja8"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-pod-coverage" ,perl-pod-coverage)))
+     (list perl-pod-coverage))
     (home-page "https://metacpan.org/release/Test-Pod-Coverage")
     (synopsis "Check for pod coverage")
     (description "This module adds a test to your Perl distribution which
@@ -1170,9 +1136,9 @@ checks for pod coverage of all appropriate files.")
         (base32 "05hs80gljkd6mhb8zvilyk3pjqxp5samgnymam5v9h9d94rb9r08"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-simple" ,perl-test-simple)))
+     (list perl-test-simple))
     (propagated-inputs
-     `(("perl-pathtools" ,perl-pathtools)))
+     (list perl-pathtools))
     (home-page "https://metacpan.org/dist/Test-Portability-Files")
     (synopsis "Check file names portability")
     (description "Test::Portability::Files module is used to check the
@@ -1240,14 +1206,14 @@ reported, and the tests skipped.")
          "1mnym49j1lj7gzylma5b6nr4vp75rmgz2v71904v01xmxhy9l4i1"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)))
+     (list perl-capture-tiny))
     (propagated-inputs
-     `(("perl-indirect" ,perl-indirect)
-       ("perl-moo" ,perl-moo)
-       ("perl-moox-types-mooselike" ,perl-moox-types-mooselike)
-       ("perl-multidimensional" ,perl-multidimensional)
-       ("perl-strictures" ,perl-strictures)
-       ("perl-sub-install" ,perl-sub-install)))
+     (list perl-indirect
+           perl-moo
+           perl-moox-types-mooselike
+           perl-multidimensional
+           perl-strictures
+           perl-sub-install))
     (home-page "https://metacpan.org/release/Test-Roo")
     (synopsis "Composable, reusable tests with roles and Moo")
     (description "Test::Roo provides composable, reusable tests with roles.")
@@ -1268,11 +1234,9 @@ reported, and the tests skipped.")
         (base32 "1vm5iw5sy0mhjjypaaviil9qgqixmkaghdbjbcyb4lf2mm6d24v9"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-path-tiny" ,perl-path-tiny)
-       ("perl-test-trap" ,perl-test-trap)
-       ("valgrind" ,valgrind)))
+     (list perl-path-tiny perl-test-trap valgrind))
     (home-page "https://metacpan.org/release/Test-RunValgrind")
     (synopsis "Tests that an external program is valgrind-clean")
     (description "Test::RunValgind checks weather Valgrind does not detect
@@ -1292,8 +1256,7 @@ errors (such as memory leaks) in an arbitrary binary executable.")
                 "1msavbi6przkxq3npm90nv925v58iym9jrk677wn46x19whwzwzm"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)
-       ("perl-probe-perl" ,perl-probe-perl)))
+     (list perl-capture-tiny perl-probe-perl))
     (synopsis "Basic cross-platform tests for scripts")
     (description
      "The intent of the Test::Script module is to provide a series of basic
@@ -1315,7 +1278,7 @@ bin as is also commonly used) paths of your Perl distribution.")
         (base32 "17y52j20k1bs9dgf4n6rhh9dn4cfxxbnfn2cfs7pb00fc5jyhci9"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-requires" ,perl-test-requires)))
+     (list perl-test-requires))
     (home-page "https://metacpan.org/release/Test-SharedFork")
     (synopsis "Fork test in Perl")
     (description "Test::SharedFork is a utility module for Test::Builder.  It
@@ -1353,7 +1316,7 @@ makes fork(2) safe to use in test cases.")
         (base32 "1hmnv9nkdzyrr6yis0dnkf4lk0hwld3zapiyq7mizrq5barykhfb"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-hook-lexwrap" ,perl-hook-lexwrap)))
+     (list perl-hook-lexwrap))
     (home-page "https://metacpan.org/release/Test-SubCalls")
     (synopsis "Track the number of times subs are called")
     (description
@@ -1427,10 +1390,7 @@ a minimum of effort.")
          "1j5rsb4km9rzcbd1ljavj8vm42bmilji40v2jj2k87l1ykrxj59z"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-file-finder" ,perl-file-finder)
-       ("perl-file-slurp" ,perl-file-slurp)
-       ("perltidy" ,perltidy)
-       ("perl-text-diff" ,perl-text-diff)))
+     (list perl-file-finder perl-file-slurp perltidy perl-text-diff))
     (home-page "https://metacpan.org/release/Test-PerlTidy")
     (synopsis "Check that all your Perl files are tidy")
     (description
@@ -1451,10 +1411,9 @@ cause a test fail unless it is exactly as @code{perltidy} would like it to be.")
         (base32 "1qjs2080kcc66s4d7499br5lw2qmhr9gxky4xsl6vjdn6dpna10b"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-simple" ,perl-test-simple)))
+     (list perl-module-build perl-test-simple))
     (propagated-inputs
-     `(("perl-data-dump" ,perl-data-dump)))
+     (list perl-data-dump))
     (home-page "https://metacpan.org/release/Test-Trap")
     (synopsis "Trap exit codes, exceptions, output, and so on")
     (description "This module is primarily (but not exclusively) for use in
@@ -1476,7 +1435,7 @@ from boxed blocks of test code.")
         (base32 "1mwbdgbbzm54v7wdw3l80bk73lr4z9i8274zlhjhp0s0b6fg10nz"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)))
+     (list perl-module-install))
     (home-page "https://metacpan.org/release/Test-utf8")
     (synopsis "UTF-8 testing in Perl")
     (description "This module is a collection of tests useful for dealing with
@@ -1501,9 +1460,9 @@ will check that string has a given set of characteristics.")
          "1q1qradaf7r2rb3jhpv01wl8z3bxymkfqrl9gwdhxwx5jwldvqcw"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-exception" ,perl-test-exception)))
+     (list perl-test-exception))
     (propagated-inputs
-     `(("perl-file-find-rule-perl" ,perl-file-find-rule-perl)))
+     (list perl-file-find-rule-perl))
     (home-page "https://metacpan.org/release/Test-Version")
     (synopsis "Check versions in modules")
     (description
@@ -1525,7 +1484,7 @@ defined, and that the version is valid.")
          "1nkc7jzxff0w4x9axbpsgxrksqdjnf70rb74q39zikkrsd3a7g7c"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-sub-uplevel" ,perl-sub-uplevel)))
+     (list perl-sub-uplevel))
     (home-page "https://metacpan.org/release/Test-Warn")
     (synopsis "Perl extension to test methods for warnings")
     (description "This module provides a few convenience methods for testing
@@ -1588,13 +1547,10 @@ installed.")
         (base32 "11v4j3607bydxsqy2ylx9w6qr3qxcalfx3mdc4q4ccqmxsyw4jb3"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-most" ,perl-test-most)
-       ("perl-test-directory" ,perl-test-directory)))
+     (list perl-test-most perl-test-directory))
     (propagated-inputs
-     `(("perl-data-tumbler" ,perl-data-tumbler)
-       ("perl-file-homedir" ,perl-file-homedir)
-       ("perl-module-pluggable" ,perl-module-pluggable)
-       ("perl-module-runtime" ,perl-module-runtime)))
+     (list perl-data-tumbler perl-file-homedir perl-module-pluggable
+           perl-module-runtime))
     (home-page "https://metacpan.org/release/Test-WriteVariants")
     (synopsis "Dynamic generation of tests")
     (description "The Test::WriteVariants module provides for the dynamic
@@ -1614,7 +1570,7 @@ generation of tests in nested combinations of contexts.")
         (base32 "0pwrrnwi1qaiy3c5522vy0kzncxc9g02r4b056wqqaa69w1hsc0z"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-test-base" ,perl-test-base)))
+     (list perl-test-base))
     (home-page "https://metacpan.org/release/Test-YAML")
     (synopsis "Testing module for YAML implementations")
     (description "Test::YAML is a subclass of Test::Base with YAML specific
@@ -1637,13 +1593,9 @@ support.")
           "04aszaw4n3sra7n7sq2cj4wjjvfghia9zqi47aj00ry0vqx2d7gh"))))
   (build-system perl-build-system)
   (native-inputs
-    `(("perl-module-build" ,perl-module-build)
-      ("perl-file-find-object" ,perl-file-find-object)
-      ("perl-class-xsaccessor" ,perl-class-xsaccessor)))
+    (list perl-module-build perl-file-find-object perl-class-xsaccessor))
   (inputs
-    `(("perl-file-find-object-rule" ,perl-file-find-object-rule)
-      ("perl-text-glob" ,perl-text-glob)
-      ("perl-number-compare" ,perl-number-compare)))
+    (list perl-file-find-object-rule perl-text-glob perl-number-compare))
   (home-page
     "https://metacpan.org/release/Test-TrailingSpace")
   (synopsis
diff --git a/gnu/packages/perl-compression.scm b/gnu/packages/perl-compression.scm
index 48e3209ce1..54e5185169 100644
--- a/gnu/packages/perl-compression.scm
+++ b/gnu/packages/perl-compression.scm
@@ -57,7 +57,7 @@
                (setenv "BZLIB_LIB" (string-append bzip2 "/lib"))
                #t))))))
     (inputs
-     `(("bzip2" ,bzip2)))
+     (list bzip2))
     (home-page "https://metacpan.org/release/Compress-Bzip2")
     (synopsis "Interface to Bzip2 compression library")
     (description
@@ -98,7 +98,7 @@ compression library.")
         (base32 "04jrqvqsa2c655idw7skv5rhb9vx9997h4n9if5p99srq4hblk6d"))))
     (build-system perl-build-system)
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-before
@@ -134,8 +134,7 @@ compression library.")
     (build-system perl-build-system)
     (propagated-inputs
      ;; These two packages should be updated to this one's version first.
-     `(("perl-compress-raw-zlib" ,perl-compress-raw-zlib)
-       ("perl-compress-raw-bzip2" ,perl-compress-raw-bzip2)))
+     (list perl-compress-raw-zlib perl-compress-raw-bzip2))
     (home-page "https://metacpan.org/release/IO-Compress")
     (synopsis "IO Interface to compressed files/buffers")
     (description "IO-Compress provides a Perl interface to allow reading and
@@ -160,7 +159,7 @@ writing of compressed data created with the zlib and bzip2 libraries.")
        ;; MakeMaker doesn't honor LIBRARY_PATH.
        (let ((zlib (assoc-ref %build-inputs "zlib")))
          (list (format #f "LIBS=-L~a/lib/ -lz" zlib)))))
-    (inputs `(("zlib" ,zlib)))
+    (inputs (list zlib))
     (home-page "https://metacpan.org/pod/PerlIO::gzip")
     (synopsis "Perl extension to provide a PerlIO layer to gzip/gunzip")
     (description "PerlIO::gzip provides a PerlIO layer that manipulates files
@@ -202,7 +201,7 @@ type by using either Perl modules, or command-line tools on your system.")
     (build-system perl-build-system)
     (native-inputs
      ;; For tests.
-     `(("perl-test-mockmodule" ,perl-test-mockmodule)))
+     (list perl-test-mockmodule))
     (synopsis  "Provides an interface to Zip archive files")
     (description "The @code{Archive::Zip} module allows a Perl program to
 create, manipulate, read, and write Zip archive files.")
diff --git a/gnu/packages/perl-maths.scm b/gnu/packages/perl-maths.scm
index 4f70c85fcf..b317e3c1cf 100644
--- a/gnu/packages/perl-maths.scm
+++ b/gnu/packages/perl-maths.scm
@@ -35,7 +35,12 @@
                     version ".tar.gz"))
               (sha256
                (base32
-                "18c3xg53d1vv7hlj43601jj7ks119fm6ndpwpv94irr2905806jn"))))
+                "18c3xg53d1vv7hlj43601jj7ks119fm6ndpwpv94irr2905806jn"))
+              ;; For reproducibility
+              (modules '((guix build utils)))
+              (snippet
+               '(substitute* "libmd/Makefile.PL"
+                  (("readdir DIR") "sort readdir DIR")))))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/Math-Cephes")
     (synopsis "Perl interface to the Cephes math library")
@@ -57,8 +62,7 @@
                 "1cml5wqd99hm398gl8f147ccsck9v179l7a6vqjj4kfkdnja37sg"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-most" ,perl-test-most)))
+     (list perl-module-build perl-test-most))
     (home-page "https://metacpan.org/release/Math-MatrixReal")
     (synopsis "Manipulate NxN matrices of real numbers")
     (description "This package provides the @code{Math::MatrixReal} module.
diff --git a/gnu/packages/perl-web.scm b/gnu/packages/perl-web.scm
index 498d5bcc10..c3a3e17188 100644
--- a/gnu/packages/perl-web.scm
+++ b/gnu/packages/perl-web.scm
@@ -67,10 +67,9 @@ endeavor to implement this idea using modern technologies.")
          "0n56xxlw7c39pfar0dxckr9mbmp6yrzk53ic0cb24raiykm9v6f4"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-uri" ,perl-uri)
-       ("perl-uri-nested" ,perl-uri-nested)))
+     (list perl-uri perl-uri-nested))
     (home-page "https://metacpan.org/release/URI-db")
     (synopsis "Handle database URIs")
     (description
@@ -92,7 +91,7 @@ class to handle these.")
          "0gj1aj18k43kmzc3y1zhj5giinf8rksacf757r475xfna0fqxjdj"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-needs" ,perl-test-needs)))
+     (list perl-test-needs))
     (home-page "https://github.com/libwww-perl/URI")
     (synopsis "Percent-encode and percent-decode unsafe characters")
     (description "This module provides functions to percent-encode and
@@ -117,9 +116,9 @@ which predates the formalization of the terms by the RFC by several years.")
          "1bzg6f11m8wfnmycflvp858rs99xknsx8hkip0xcdfjzlqwi75z1"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-uri" ,perl-uri)))
+     (list perl-uri))
     (home-page "https://metacpan.org/release/URI-Nested")
     (synopsis "Nested URIs")
     (description
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 4295233c04..c6d63ce041 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -308,7 +308,7 @@ differences.")
         (base32
          "1syyqzy462501kn5ma9gl6xbmcahqcn4qpafhsmpz0nd0x2m4l63"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-module-build" ,perl-module-build)))
+    (native-inputs (list perl-module-build))
     (home-page "https://metacpan.org/release/aliased")
     (synopsis "Use shorter versions of class names")
     (description "The alias module loads the class you specify and exports
@@ -350,13 +350,13 @@ implicitly.")
                (("GetOptions\\( \"travis\" => \\\\\\$travis \\);") ""))
              #t)))))
     (native-inputs
-     `(("perl-archive-extract" ,perl-archive-extract)
-       ("perl-archive-zip" ,perl-archive-zip)
-       ("perl-capture-tiny" ,perl-capture-tiny)
-       ("perl-file-sharedir" ,perl-file-sharedir)
-       ("perl-file-which" ,perl-file-which)
-       ("perl-module-build" ,perl-module-build)
-       ("perl-text-patch" ,perl-text-patch)))
+     (list perl-archive-extract
+           perl-archive-zip
+           perl-capture-tiny
+           perl-file-sharedir
+           perl-file-which
+           perl-module-build
+           perl-text-patch))
     (inputs
      `(("freetype" ,freetype)
        ("fontconfig" ,fontconfig)
@@ -387,8 +387,7 @@ from source codes.")
                 "0dc55mpayrixwx8dwql0vj0jalg4rlb3k64rprc84bl0z8vkx9m8"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-mouse" ,perl-mouse)
-       ("perl-moose" ,perl-moose)))
+     (list perl-mouse perl-moose))
     (home-page "https://metacpan.org/release/Any-Moose")
     (synopsis "Transparently use Moose or Mouse modules")
     (description
@@ -413,7 +412,7 @@ variable ANY_MOOSE to be Moose or Mouse.")
          "03vvi3mk4833mx2c6dkm9zhvakf02mb2b7wz9pk9xc7c4mq04xqi"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-pod" ,perl-test-pod)))
+     (list perl-test-pod))
     (home-page "https://metacpan.org/release/AppConfig")
     (synopsis "Configuration files and command line parsing")
     (description "AppConfig is a bundle of Perl5 modules for reading
@@ -454,9 +453,9 @@ list manipulation routines.")
                 "0nq8wqy0gsnwhiw23wsp1dmgzzbf2q1asi85yd0d7cmg4haxsmib"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-canary-stability" ,perl-canary-stability)))
+     (list perl-canary-stability))
     (propagated-inputs
-     `(("perl-common-sense" ,perl-common-sense)))
+     (list perl-common-sense))
     (home-page "https://metacpan.org/release/Async-Interrupt")
     (synopsis "Allow C/XS libraries to interrupt perl asynchronously")
     (description
@@ -518,13 +517,9 @@ of general interest as follows:
         "0xzind7zr2prjq3zbs2j18snfpshd4xrd7igv4kp67xl0axr6fpl"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-module-build perl-test-pod perl-test-pod-coverage))
     (propagated-inputs
-     `(("perl-data-integer" ,perl-data-integer)
-       ("perl-digest-crc" ,perl-digest-crc)
-       ("perl-scalar-string" ,perl-scalar-string)))
+     (list perl-data-integer perl-digest-crc perl-scalar-string))
     (home-page "https://metacpan.org/release/Authen-DecHpwd")
     (synopsis "DEC VMS password hashing")
     (description "@code{Authen::DecHpwd} implements the
@@ -549,20 +544,18 @@ pure Perl backup version for systems that cannot handle XS.")
         "0qq4krap687rxf6xr31bg5nj5dqmm1frcm7fq249v1bxc4h4bnsm"))))
   (build-system perl-build-system)
   (native-inputs
-   `(("perl-module-build" ,perl-module-build)
-     ("perl-test-pod" ,perl-test-pod)
-     ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+   (list perl-module-build perl-test-pod perl-test-pod-coverage))
   (propagated-inputs
-   `(("perl-authen-dechpwd" ,perl-authen-dechpwd)
-     ("perl-crypt-des" ,perl-crypt-des)
-     ("perl-crypt-eksblowfish" ,perl-crypt-eksblowfish)
-     ("perl-crypt-mysql" ,perl-crypt-mysql)
-     ("perl-crypt-passwdmd5" ,perl-crypt-passwdmd5)
-     ("perl-crypt-unixcrypt_xs" ,perl-crypt-unixcrypt_xs)
-     ("perl-data-entropy" ,perl-data-entropy)
-     ("perl-digest-md4" ,perl-digest-md4)
-     ("perl-module-runtime" ,perl-module-runtime)
-     ("perl-params-classify" ,perl-params-classify)))
+   (list perl-authen-dechpwd
+         perl-crypt-des
+         perl-crypt-eksblowfish
+         perl-crypt-mysql
+         perl-crypt-passwdmd5
+         perl-crypt-unixcrypt_xs
+         perl-data-entropy
+         perl-digest-md4
+         perl-module-runtime
+         perl-params-classify))
   (home-page "https://metacpan.org/release/Authen-Passphrase")
   (synopsis "Hashed passwords/passphrases as objects")
   (description "@code{Authen-Passphrase} is the base class for a
@@ -619,11 +612,9 @@ error when it would have happened.")
          "0zy1v746pzv3vvvpr3plpykz0vfhi940q9bfypzzhynq2qvm6d21"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check)
-       ("perl-extutils-depends" ,perl-extutils-depends)))
+     (list perl-b-hooks-op-check perl-extutils-depends))
     (propagated-inputs
-     `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check)
-       ("perl-lexical-sealrequirehints" ,perl-lexical-sealrequirehints)))
+     (list perl-b-hooks-op-check perl-lexical-sealrequirehints))
     (home-page "https://metacpan.org/release/bareword-filehandles")
     (synopsis "Disables bareword filehandles")
     (description "This module disables bareword filehandles.")
@@ -686,10 +677,8 @@ limits like @code{getrlimit} and @code{setpriority}.")
          "1imcqxp23yc80a7p0h56sja9glbrh4qyhgzljqd4g9habpz3vah3"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-module-runtime" ,perl-module-runtime)
-       ("perl-module-implementation" ,perl-module-implementation)
-       ("perl-sub-exporter-progressive" ,perl-sub-exporter-progressive)
-       ("perl-variable-magic" ,perl-variable-magic)))
+     (list perl-module-runtime perl-module-implementation
+           perl-sub-exporter-progressive perl-variable-magic))
     (home-page "https://metacpan.org/release/B-Hooks-EndOfScope")
     (synopsis "Execute code after a scope finished compilation")
     (description "This module allows you to execute code when perl finished
@@ -711,7 +700,7 @@ compiling the surrounding scope.")
          "1kfdv25gn6yik8jrwik4ajp99gi44s6idcvyyrzhiycyynzd3df7"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-extutils-depends" ,perl-extutils-depends)))
+     (list perl-extutils-depends))
     (home-page "https://metacpan.org/release/B-Hooks-OP-Check")
     (synopsis "Wrap OP check callbacks")
     (description "This module allows you to wrap OP check callbacks.")
@@ -751,7 +740,7 @@ keywords: @code{@@Scalars, @@Arrays, @@Hashes, @@Filehandles, @@Symbols,
                 "1gl9ybm9hgia3ld5s11b7bv2p2hmx5rss5hxcfy6rmbzrjcnci01"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)))
+     (list perl-module-install))
     ;; The optional input module Statistics::PointEstimation (from
     ;; Statistics-TTest) lists no license.
     (synopsis "Benchmarking with statistical confidence")
@@ -778,7 +767,7 @@ but don't want to go all out and profile your code.")
          "09m96p8c0ipgz42li2ywdgy0vxb57mb5nf59j9gw7yzc3xkslv9w"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-carp-clan" ,perl-carp-clan)))
+     (list perl-carp-clan))
     (home-page "https://metacpan.org/release/Bit-Vector")
     (synopsis "Bit vector library")
     (description "Bit::Vector is an efficient C library which allows you to
@@ -841,11 +830,10 @@ Agency.")
          "07l3zfv8hagv37i3clvj5a1zc2jarr5phg80c93ks35zaz6llx9i"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-business-isbn-data" ,perl-business-isbn-data)
-       ("perl-mojolicious" ,perl-mojolicious)))
+     (list perl-business-isbn-data perl-mojolicious))
     (home-page "https://metacpan.org/release/Business-ISBN")
     (synopsis "Work with International Standard Book Numbers")
-    (description "This modules provides tools to deal with International
+    (description "This module provides tools to deal with International
 Standard Book Numbers, including ISBN-10 and ISBN-13.")
     (license license:artistic2.0)))
 
@@ -864,7 +852,7 @@ Standard Book Numbers, including ISBN-10 and ISBN-13.")
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/Business-ISSN")
     (synopsis "Work with International Standard Serial Numbers")
-    (description "This modules provides tools to deal with International
+    (description "This module provides tools to deal with International
 Standard Serial Numbers.")
     (license (package-license perl))))
 
@@ -881,10 +869,10 @@ Standard Serial Numbers.")
         (base32 "1cpcfyaz1fl6fnm076jx2jsphw147wj6aszj2yzqrgsncjhk2cja"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-tie-cycle" ,perl-tie-cycle)))
+     (list perl-tie-cycle))
     (home-page "https://metacpan.org/release/Business-ISMN")
     (synopsis "Work with International Standard Music Numbers")
-    (description "This modules provides tools to deal with International
+    (description "This module provides tools to deal with International
 Standard Music Numbers.")
     (license (package-license perl))))
 
@@ -901,9 +889,7 @@ Standard Music Numbers.")
                 "1s6i670dc3yb6ngvdk48y6szdk5n1f4icdcjv2vi1l2xp9fzviyj"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-digest-sha1" ,perl-digest-sha1)
-       ("perl-error" ,perl-error)
-       ("perl-ipc-sharelite" ,perl-ipc-sharelite)))
+     (list perl-digest-sha1 perl-error perl-ipc-sharelite))
     (home-page "https://metacpan.org/release/Cache-Cache")
     (synopsis "Cache interface for Perl")
     (description "The Cache modules are designed to assist a developer in
@@ -1015,7 +1001,7 @@ but it is a good educated guess.")
         (base32 "1wb6b0qjga7kvn4p8df6k4g1pl2yzaqiln1713xidh3i454i3alq"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-base" ,perl-test-base)))
+     (list perl-test-base))
     (home-page "https://metacpan.org/release/Carp-Always")
     (synopsis "Warns and dies noisily with stack backtraces/")
     (description "This module is meant as a debugging aid.  It can be used to
@@ -1055,9 +1041,9 @@ library assert.h.")
         (base32 "14x4m4dlj7pwq2r2fsmww3q3xb61cdgnrlmjh5mms3ikaln6rmmk"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-exception" ,perl-test-exception)))
+     (list perl-test-exception))
     (propagated-inputs
-     `(("perl-carp-assert" ,perl-carp-assert)))
+     (list perl-carp-assert))
     (home-page "https://metacpan.org/release/Carp-Assert-More")
     (synopsis "Convenience wrappers around Carp::Assert")
     (description "Carp::Assert::More is a set of handy assertion functions for
@@ -1077,7 +1063,7 @@ Perl.")
         (base32 "0237xx3rqa72sr4vdvws9r1m453h5f25bl85mdjmmk128kir4py7"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-exception" ,perl-test-exception)))
+     (list perl-test-exception))
     (home-page "https://metacpan.org/release/Carp-Clan")
     (synopsis "Report errors from a \"clan\" of modules")
     (description "This module allows errors from a clan (or family) of modules
@@ -1169,30 +1155,30 @@ the Carp.pm module doesn't help.")
                (install-file "bin/circos" bin)
                #t))))))
     (propagated-inputs
-     `(("perl" ,perl)
-       ("perl-carp" ,perl-carp)
-       ("perl-clone" ,perl-clone)
-       ("perl-config-general" ,perl-config-general)
-       ("perl-digest-md5" ,perl-digest-md5)
-       ("perl-file-temp" ,perl-file-temp)
-       ("perl-font-ttf" ,perl-font-ttf)
-       ("perl-gd" ,perl-gd)
-       ("perl-getopt-long" ,perl-getopt-long)
-       ("perl-list-allutils" ,perl-list-allutils)
-       ("perl-math-bezier" ,perl-math-bezier)
-       ("perl-math-round" ,perl-math-round)
-       ("perl-math-vecstat" ,perl-math-vecstat)
-       ("perl-memoize" ,perl-memoize)
-       ("perl-number-format" ,perl-number-format)
-       ("perl-params-validate" ,perl-params-validate)
-       ("perl-readonly" ,perl-readonly)
-       ("perl-regexp-common" ,perl-regexp-common)
-       ("perl-set-intspan" ,perl-set-intspan)
-       ("perl-statistics-basic" ,perl-statistics-basic)
-       ("perl-svg" ,perl-svg)
-       ("perl-text-balanced" ,perl-text-balanced)
-       ("perl-text-format" ,perl-text-format)
-       ("perl-time-hires" ,perl-time-hires)))
+     (list perl
+           perl-carp
+           perl-clone
+           perl-config-general
+           perl-digest-md5
+           perl-file-temp
+           perl-font-ttf
+           perl-gd
+           perl-getopt-long
+           perl-list-allutils
+           perl-math-bezier
+           perl-math-round
+           perl-math-vecstat
+           perl-memoize
+           perl-number-format
+           perl-params-validate
+           perl-readonly
+           perl-regexp-common
+           perl-set-intspan
+           perl-statistics-basic
+           perl-svg
+           perl-text-balanced
+           perl-text-format
+           perl-time-hires))
     (home-page "http://circos.ca/")
     (synopsis "Generation of circularly composited renditions")
     (description
@@ -1214,7 +1200,7 @@ composited renditions of genomic data and related annotations.")
          "07215zzr4ydf49832vn54i3gf2q5b97lydkv8j56wb2svvjs64mz"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-sub-name" ,perl-sub-name)))
+     (list perl-sub-name))
     (home-page "https://metacpan.org/release/Class-Accessor")
     (synopsis "Automated accessor generation")
     (description "This module automagically generates accessors/mutators for
@@ -1235,9 +1221,9 @@ your class.")
          "1lilrjy1s0q5hyr0888kf0ifxjyl2iyk4vxil4jsv0sgh39lkgx5"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-class-accessor" ,perl-class-accessor)))
+     (list perl-class-accessor))
     (home-page "https://metacpan.org/release/Class-Accessor-Chained")
     (synopsis "Faster, but less expandable, chained accessors")
     (description "A chained accessor is one that always returns the object
@@ -1259,12 +1245,9 @@ the same mk_accessors interface.")
         (base32 "1fy48hx56n5kdn1gz66awg465qf34r0n5jam64x7zxh9zhzb1m9m"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)
-       ("perl-test-exception" ,perl-test-exception)))
+     (list perl-module-install perl-test-exception))
     (propagated-inputs
-     `(("perl-class-xsaccessor" ,perl-class-xsaccessor)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-sub-name" ,perl-sub-name)))
+     (list perl-class-xsaccessor perl-module-runtime perl-sub-name))
     (home-page "https://metacpan.org/release/Class-Accessor-Grouped")
     (synopsis "Build groups of accessors")
     (description "This class lets you build groups of accessors that will call
@@ -1284,7 +1267,7 @@ different getters and setters.")
         (base32 "0gp3czp6y0jxx4448kz37f7gdxq4vw514bvc0l98rk4glvqkq1c4"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-algorithm-c3" ,perl-algorithm-c3)))
+     (list perl-algorithm-c3))
     (home-page "https://metacpan.org/release//Class-C3")
     (synopsis "Pragma to use the C3 method resolution order algorithm")
     (description "This is pragma to change Perl 5's standard method resolution
@@ -1305,12 +1288,9 @@ sophisticated C3 method resolution order.")
         (base32 "1xsbydmiskpa1qbmnf6n39cb83nlb432xgkad9kfhxnvm8jn4rw5"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-module-build-tiny" ,perl-module-build-tiny)
-       ("perl-test-exception" ,perl-test-exception)))
+     (list perl-module-build perl-module-build-tiny perl-test-exception))
     (propagated-inputs
-     `(("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-mro-compat" ,perl-mro-compat)))
+     (list perl-list-moreutils perl-mro-compat))
     (home-page "https://metacpan.org/release/Class-C3-Adopt-NEXT")
     (synopsis "Drop-in replacement for NEXT")
     (description "This module is intended as a drop-in replacement for NEXT,
@@ -1330,12 +1310,9 @@ supporting the same interface, but using Class::C3 to do the hard work.")
         (base32 "14wn1g45z3b5apqq7dcai5drk01hfyqydsd2m6hsxzhyvi3b2l9h"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)
-       ("perl-test-exception" ,perl-test-exception)))
+     (list perl-module-install perl-test-exception))
     (propagated-inputs
-     `(("perl-class-c3" ,perl-class-c3)
-       ("perl-class-inspector" ,perl-class-inspector)
-       ("perl-mro-compat" ,perl-mro-compat)))
+     (list perl-class-c3 perl-class-inspector perl-mro-compat))
     (home-page "https://metacpan.org/release/Class-C3-Componentised")
     (synopsis "Load mix-ins or components to your C3-based class")
     (description "This module will inject base classes to your module using
@@ -1416,7 +1393,7 @@ to the calling program.")
         (base32
          "09ifd6v0c94vr20n9yr1dxgcp7hyscqq851szdip7y24bd26nlbc"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-module-build" ,perl-module-build)))
+    (native-inputs (list perl-module-build))
     (home-page "https://metacpan.org/release/Class-Factory-Util")
     (synopsis "Utility methods for factory classes")
     (description "This module exports methods useful for factory classes.")
@@ -1454,16 +1431,11 @@ loaded class.")
         (base32 "13sz4w8kwljhfcy7yjjgrgg5hv3wccr8n3iqarhyb5sjkdvzlj1a"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build-tiny" ,perl-module-build-tiny)
-       ("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-needs" ,perl-test-needs)
-       ("perl-test-without-module" ,perl-test-without-module)))
+     (list perl-module-build-tiny perl-test-fatal perl-test-needs
+           perl-test-without-module))
     (propagated-inputs
-     `(("perl-package-stash" ,perl-package-stash)
-       ("perl-data-optlist" ,perl-data-optlist)
-       ("perl-namespace-clean" ,perl-namespace-clean)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-module-implementation" ,perl-module-implementation)))
+     (list perl-package-stash perl-data-optlist perl-namespace-clean
+           perl-module-runtime perl-module-implementation))
     (home-page "https://metacpan.org/release/Class-Load")
     (synopsis "Working (require \"Class::Name\") and more")
     (description "\"require EXPR\" only accepts Class/Name.pm style module
@@ -1485,10 +1457,8 @@ names, not Class::Name.  For that, this module provides \"load_class
          "1ldd4a306hjagm5v9j0gjg8y7km4v3q45bxxqmj2bzgb6vsjrhjv"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-needs" ,perl-test-needs)
-       ("perl-test-without-module" ,perl-test-without-module)))
-    (inputs `(("perl-class-load" ,perl-class-load)))
+     (list perl-test-fatal perl-test-needs perl-test-without-module))
+    (inputs (list perl-class-load))
     (home-page "https://metacpan.org/release/Class-Load-XS")
     (synopsis "XS implementation of parts of Class::Load")
     (description "This module provides an XS implementation for portions of
@@ -1528,8 +1498,7 @@ write accessor methods for your objects that perform standard tasks.")
         (base32 "0qzx83mgd71hlc2m1kpw15dqsjzjq7b2cj3sdgg45a0q23vhfn5b"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-needs" ,perl-test-needs)))
+     (list perl-test-fatal perl-test-needs))
     (home-page "https://metacpan.org/release/Class-Method-Modifiers")
     (synopsis "Moose-like method modifiers")
     (description "Class::Method::Modifiers provides three modifiers:
@@ -1554,11 +1523,9 @@ with a hook to easily call that original method.")
         "02vwzzqn1s24g525arbrjh9s9j0y1inp3wbr972gh51ri51zciw7"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-module-build perl-test-pod perl-test-pod-coverage))
     (propagated-inputs
-     `(("perl-params-classify" ,perl-params-classify)))
+     (list perl-params-classify))
     (home-page "https://metacpan.org/release/Class-Mix")
     (synopsis "Dynamic class mixing")
     (description "The @code{mix_class} function provided by this
@@ -1619,9 +1586,9 @@ uses no non-core modules for any recent Perl.")
         (base32 "0pqa98z3ij6a3v9wkmvc8b410kv30y0xxqf0i6if3lp4lx3rgqjj"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-requires" ,perl-test-requires)))
+     (list perl-test-requires))
     (propagated-inputs
-     `(("perl-class-inspector" ,perl-class-inspector)))
+     (list perl-class-inspector))
     (home-page "https://metacpan.org/release/Class-Unload")
     (synopsis "Unload a class")
     (description "Class:Unload unloads a given class by clearing out its
@@ -1685,11 +1652,9 @@ objects.")
          "0cin2bjn5z8xhm9v4j7pwlkx88jnvz8al0njdjwyvs6fb0glh8sn"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-clone" ,perl-clone)
-       ("perl-clone-pp" ,perl-clone-pp)
-       ("perl-test-without-module" ,perl-test-without-module)))
+     (list perl-clone perl-clone-pp perl-test-without-module))
     (propagated-inputs
-     `(("perl-module-runtime" ,perl-module-runtime)))
+     (list perl-module-runtime))
     (home-page "https://metacpan.org/release/Clone-Choose")
     (synopsis "Choose appropriate Perl @code{clone} utility")
     (description "This @code{Clone::Choose} module checks several different
@@ -1749,12 +1714,10 @@ as defined by two typical specimens of Perl coders.")
         (base32 "0qdypqd7mx96bwdjlv13fn6p96bs4w0yv94yv94xa7z5lqkdj4rg"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)
-       ("perl-test-deep" ,perl-test-deep)
-       ("perl-test-exception" ,perl-test-exception)
-       ("perl-test-warn" ,perl-test-warn)))
+     (list perl-extutils-pkgconfig perl-test-deep perl-test-exception
+           perl-test-warn))
     (inputs
-     `(("libconfig" ,libconfig)))
+     (list libconfig))
     (home-page "https://metacpan.org/release/Conf-Libconfig")
     (synopsis "Perl extension for libconfig")
     (description
@@ -1799,7 +1762,7 @@ tabular data.")
          "0l31sg7dwh4dwwnql42hp7arkhcm15bhsgfg4i6xvbjzy9f2mnk8"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-module-pluggable" ,perl-module-pluggable)))
+     (list perl-module-pluggable))
     (home-page "https://metacpan.org/release/Config-Any")
     (synopsis "Load configuration from different file formats")
     (description "Config::Any provides a facility for Perl applications and
@@ -1820,8 +1783,7 @@ supports XML, YAML, JSON, Apache-style configuration, and Perl code.")
         (base32 "02dsz3inh5jwgaxmbcz8qxwgin8mkhm6vj9jyzfmm3dr5pnxcbnr"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-io-stringy",perl-io-stringy)))
+     (list perl-module-build perl-io-stringy))
     (home-page "https://metacpan.org/pod/Config::IniFiles")
     (synopsis "Package for configuration files outside your Perl script")
     (description "This package provides a way to have readable configuration
@@ -1843,7 +1805,7 @@ can be grouped, and settings can be accessed from a tied hash.")
          "1qcwib4yaml5z2283qy5khjcydyibklsnk8zrk9wzdzc5wnv5r01"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)))
+     (list perl-capture-tiny))
     (home-page "https://metacpan.org/release/Config-AutoConf")
     (synopsis "Module to implement some AutoConf macros in Perl")
     (description "Config::AutoConf is intended to provide the same
@@ -1889,10 +1851,9 @@ options.")
          "0kp57na9mk6yni693h2fwap6l1ndbcj97l4860r9vkzx2jw0fjk7"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-exception" ,perl-test-exception)))
+     (list perl-test-exception))
     (propagated-inputs
-     `(("perl-moo" ,perl-moo)
-       ("perl-moox-types-mooselike" ,perl-moox-types-mooselike)))
+     (list perl-moo perl-moox-types-mooselike))
     (home-page "https://metacpan.org/release/Config-GitLike")
     (synopsis "Parse Git style configuration files")
     (description
@@ -1914,9 +1875,7 @@ of the style used by the Git version control system.")
                 "0clphq6a17chvb663fvjnxqvyvh26g03x0fl4bg9vy4ibdnzg2v2"))))
     (build-system perl-build-system)
     (inputs
-     `(("perl-mixin-linewise" ,perl-mixin-linewise)
-       ("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict)
-       ("perl-sub-exporter" ,perl-sub-exporter)))
+     (list perl-mixin-linewise perl-perlio-utf8_strict perl-sub-exporter))
     (home-page "https://metacpan.org/release/Config-INI")
     (synopsis "Simple .ini-file format reader and writer")
     (description "@code{Config::INI} is a module that facilates the reading
@@ -1937,11 +1896,10 @@ and writing of @code{.ini}-style configuration files.")
         (base32
          "1nwlldgrx86yn7y6a53cqgvzm2ircsvxg1addahlcy6510x9a1gq"))))
     (inputs
-     `(("perl-module-build-tiny" ,perl-module-build-tiny)
-       ("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-module-build-tiny perl-test-fatal))
     ;; Needed for tests.
     (native-inputs
-     `(("perl-sub-exporter-progressive" ,perl-sub-exporter-progressive)))
+     (list perl-sub-exporter-progressive))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/Const-Fast")
     (synopsis "Facility for creating read-only scalars, arrays, and hashes")
@@ -1963,8 +1921,7 @@ scalars, arrays, and hashes.")
          "07zxgmb11bn4zj3w9g1zwbb9iv4jyk5q7hc0nv59knvv5i64m489"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-exception" ,perl-test-exception)
-       ("perl-test-simple" ,perl-test-simple)))
+     (list perl-test-exception perl-test-simple))
     (home-page "https://metacpan.org/release/Context-Preserve")
     (synopsis "Preserve context during subroutine call")
     (description "This module runs code after a subroutine call, preserving
@@ -1988,8 +1945,7 @@ the caller.")
          "15v3489k179cx0fz3lix79ssjid0nhhpf6c33swpxga6pss92dai"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-file-slurp" ,perl-file-slurp)
-       ("perl-test-most" ,perl-test-most)))
+     (list perl-file-slurp perl-test-most))
     (home-page
      "https://metacpan.org/release/Convert-BinHex")
     (synopsis "Extract data from Macintosh BinHex files")
@@ -2056,8 +2012,8 @@ name and version from filenames.")
         (base32
          "07rmdbz1rbnb7w33vswn1wixlyh947sqr93xrvcph1hwzhmmg818"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-test-deep" ,perl-test-deep)))
-    (propagated-inputs `(("perl-cpan-meta" ,perl-cpan-meta)))
+    (native-inputs (list perl-test-deep))
+    (propagated-inputs (list perl-cpan-meta))
     (home-page "https://metacpan.org/release/CPAN-Meta-Check")
     (synopsis "Verify requirements in a CPAN::Meta object")
     (description "This module verifies if requirements described in a
@@ -2077,7 +2033,7 @@ CPAN::Meta object are present.")
         (base32 "0c07jfh6pq0f3hlhg0cqmznna7rlcflgrqv17mbkz9gnvg4x3szv"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-common-sense" ,perl-common-sense)))
+     (list perl-common-sense))
     (home-page "https://metacpan.org/release/Cpanel-JSON-XS")
     (synopsis "JSON::XS for Cpanel")
     (description "This module converts Perl data structures to JSON and vice
@@ -2099,7 +2055,7 @@ versa.")
         "0ig698lmpjz7fslnznxm0609lvlnvf4f3s370082nzycnqhxww3a"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-crypt-rijndael" ,perl-crypt-rijndael)))
+     (list perl-crypt-rijndael))
     (home-page "https://metacpan.org/release/Crypt-CBC")
     (synopsis "Encrypt Data with Cipher Block Chaining Mode")
     (description "@code{Crypt::CBC} is a Perl-only implementation of
@@ -2124,7 +2080,7 @@ are compatible with the encryption format used by SSLeay.")
         "1rypxlhpd1jc0c327aghgl9y6ls47drmpvn0a40b4k3vhfsypc9d"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-crypt-cbc" ,perl-crypt-cbc)))
+     (list perl-crypt-cbc))
     (home-page "https://metacpan.org/release/Crypt-DES")
     (synopsis "DES encryption module")
     (description "@code{Crypt::DES} is an XS-based implementation of
@@ -2148,11 +2104,9 @@ decrypt functions.")
         "0k01aw3qb2s4m1w4dqsc9cycyry1zg3wabdym4vp4421b1ni5irw"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-module-build perl-test-pod perl-test-pod-coverage))
     (propagated-inputs
-     `(("perl-class-mix" ,perl-class-mix)))
+     (list perl-class-mix))
     (home-page "https://metacpan.org/release/Crypt-Eksblowfish")
     (synopsis "The Eksblowfish block cipher")
     (description "Eksblowfish is a variant of the Blowfish cipher,
@@ -2182,10 +2136,9 @@ password hashing algorithm based on Eksblowfish.")
         "1qyx6ha13r0rh80ldv5wy2bq2pa74igwh8817xlapsfgxymdzswk"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-dbd-mysql" ,perl-dbd-mysql)))
+     (list perl-module-build perl-dbd-mysql))
     (propagated-inputs
-     `(("perl-digest-sha1" ,perl-digest-sha1)))
+     (list perl-digest-sha1))
     (home-page "https://metacpan.org/release/Crypt-MySQL")
     (synopsis "Emulate the MySQL PASSWORD() function")
     (description "@code{Crypt::MySQL} emulates the MySQL PASSWORD()
@@ -2209,7 +2162,7 @@ without the need for a real MySQL environment.")
         "0j0r74f18nk63phddzqbf7wqma2ci4p4bxvrwrxsy0aklbp6lzdp"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (home-page "https://metacpan.org/release/Crypt-PasswdMD5")
     (synopsis "Interoperable MD5-based crypt() functions")
     (description "@code{Crypt::PasswdMD5} provides various
@@ -2327,8 +2280,7 @@ used in @code{crypt} are also supplied separately.")
                 "0xwf4rmii55k3lp19mpbh00mbgby7rxdk2lk84148bjhp6i7rz3s"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-requires" ,perl-test-requires)))
+     (list perl-module-build perl-test-requires))
     (home-page "https://metacpan.org/release/Cwd-Guard")
     (synopsis "Temporarily change working directory")
     (description
@@ -2389,15 +2341,10 @@ bioinformatics data.")
          "12vgqdjbfqf2qfg21x22wg88xnwxfbw2ki3qzcb3nb0chwjj4axn"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-deep" ,perl-test-deep)
-       ("perl-test-output" ,perl-test-output)
-       ("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-test-deep perl-test-output perl-test-fatal))
     (inputs
-     `(("perl-class-method-modifiers" ,perl-class-method-modifiers)
-       ("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-role-tiny" ,perl-role-tiny)
-       ("perl-strictures" ,perl-strictures)))
+     (list perl-class-method-modifiers perl-list-moreutils
+           perl-module-runtime perl-role-tiny perl-strictures))
     (home-page "https://metacpan.org/release/Data-Perl")
     (synopsis "Base classes wrapping fundamental Perl data types")
     (description "Collection of classes that wrap fundamental data types that
@@ -2420,8 +2367,7 @@ input.")
         (base32 "1gg8rqbv3x6a1lrpabv6vnlab53zxmpwz2ygad9fcx4gygqj12l1"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-clone" ,perl-clone)
-       ("perl-file-find-rule" ,perl-file-find-rule)))
+     (list perl-clone perl-file-find-rule))
     (home-page "https://metacpan.org/release/Data-Compare")
     (synopsis "Compare Perl data structures")
     (description "This module compares arbitrary data structures to see if
@@ -2443,14 +2389,10 @@ they are copies of each other.")
         "1r176jjzir2zg5kidx85f7vzi6jsw7ci9vd4kvbr9183lfhw8496"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-module-build perl-test-pod perl-test-pod-coverage))
     (propagated-inputs
-     `(("perl-crypt-rijndael" ,perl-crypt-rijndael)
-       ("perl-data-float" ,perl-data-float)
-       ("perl-http-lite" ,perl-http-lite)
-       ("perl-params-classify" ,perl-params-classify)))
+     (list perl-crypt-rijndael perl-data-float perl-http-lite
+           perl-params-classify))
     (home-page "https://metacpan.org/release/Data-Entropy")
     (synopsis "Entropy (randomness) management")
     (description "@code{Data::Entropy} provides modules relating to
@@ -2481,9 +2423,7 @@ functions to shuffle arrays.")
         "0m53zxhx9sn49yqh7azlpyy9m65g54v8cd2ha98y77337gg7xdv3"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-module-build perl-test-pod perl-test-pod-coverage))
     (home-page "https://metacpan.org/release/Data-Integer")
     (synopsis "Details of the native integer data type")
     (description "This module is about the native integer numerical
@@ -2609,9 +2549,7 @@ indentation and newlines plus sub deparsing.")
         "12ji4yf3nc965rqqgfhr96w7irpm6n1g15nivfxvhc49hlym5cg2"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-module-build perl-test-pod perl-test-pod-coverage))
     (home-page "https://metacpan.org/release/Data-Float")
     (synopsis "Details of the floating point data type")
     (description "@code{Data::Float} is about the native floating
@@ -2637,8 +2575,7 @@ point values at a low level.")
          "1hzmgr2imdg1fc3hmwx0d56fhsdfyrgmgx7jb4jkyiv6575ifq9n"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-sub-install" ,perl-sub-install)
-       ("perl-params-util" ,perl-params-util)))
+     (list perl-sub-install perl-params-util))
     (home-page "https://metacpan.org/release/Data-OptList")
     (synopsis "Parse and validate simple name/value option pairs")
     (description
@@ -2658,10 +2595,9 @@ point values at a low level.")
         (base32 "12rxrr2b11qjk0c437cisw2kfqkafw1awcng09cv6yhzglb55yif"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-exception" ,perl-test-exception)))
+     (list perl-module-build perl-test-exception))
     (propagated-inputs
-     `(("perl-class-accessor-chained" ,perl-class-accessor-chained)))
+     (list perl-class-accessor-chained))
     (home-page "https://metacpan.org/release/Data-Page")
     (synopsis "Help when paging through sets of results")
     (description "When searching through large amounts of data, it is often
@@ -2686,17 +2622,12 @@ The maths behind this is unfortunately fiddly, hence this module.")
          "12vgqdjbfqf2qfg21x22wg88xnwxfbw2ki3qzcb3nb0chwjj4axn"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-deep" ,perl-test-deep)
-       ("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-output" ,perl-test-output)))
+     (list perl-test-deep perl-test-fatal perl-test-output))
     (inputs
-     `(("perl-class-method-modifiers"
-        ,perl-class-method-modifiers)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-role-tiny" ,perl-role-tiny)
-       ("perl-strictures" ,perl-strictures)))
+     (list perl-class-method-modifiers perl-module-runtime perl-role-tiny
+           perl-strictures))
     (propagated-inputs
-     `(("perl-list-moreutils" ,perl-list-moreutils)))
+     (list perl-list-moreutils))
     (home-page
      "https://metacpan.org/release/Data-Perl")
     (synopsis "Base classes wrapping fundamental Perl data types")
@@ -2727,10 +2658,8 @@ The maths behind this is unfortunately fiddly, hence this module.")
          "0njjh8zp5afc4602jrnmg89icj7gfsil6i955ypcqxc2gl830sb0"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-clone-pp" ,perl-clone-pp)
-       ("perl-file-homedir" ,perl-file-homedir)
-       ("perl-package-stash" ,perl-package-stash)
-       ("perl-sort-naturally" ,perl-sort-naturally)))
+     (list perl-clone-pp perl-file-homedir perl-package-stash
+           perl-sort-naturally))
     (home-page "https://metacpan.org/release/Data-Printer")
     (synopsis "Colored pretty-print of Perl data structures and objects")
     (description "Display Perl variables and objects on screen, properly
@@ -2751,10 +2680,9 @@ formatted (to be inspected by a human).")
          "1gwyhjwg4lrnfsn8wb6r8msb4yh0y4wca4mz3z120xbnl9nycshx"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-exception" ,perl-test-exception)
-       ("perl-module-build" ,perl-module-build)))
+     (list perl-test-exception perl-module-build))
     (propagated-inputs
-     `(("perl-sub-uplevel" ,perl-sub-uplevel)))
+     (list perl-sub-uplevel))
     (home-page "https://metacpan.org/release/Data-Record")
     (synopsis "Conditionally split data into records")
     (description "This Perl module allows you to split data into records by
@@ -2780,10 +2708,9 @@ like split on newlines unless newlines are embedded in quotes.")
          "1pmlxca0a8sv2jjwvhwgqavq6iwys6kf457lby4anjp3f1dpx4yd"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-failwarnings" ,perl-test-failwarnings)))
+     (list perl-test-failwarnings))
     (propagated-inputs
-     `(("perl-mro-compat" ,perl-mro-compat)
-       ("perl-sub-exporter" ,perl-sub-exporter)))
+     (list perl-mro-compat perl-sub-exporter))
     (home-page "https://metacpan.org/release/Data-Section")
     (synopsis "Read multiple hunks of data out of your DATA section")
     (description "This package provides a Perl library to read multiple hunks
@@ -2803,7 +2730,7 @@ of data out of your DATA section.")
         (base32 "1jx9g5sxcw0i2zkm2z895k422i49kpx0idnnvvvs36lhvgzkac0b"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-requires" ,perl-test-requires)))
+     (list perl-test-requires))
     (home-page "https://metacpan.org/release/Data-Section-Simple")
     (synopsis "Read data from __DATA__")
     (description
@@ -2825,7 +2752,7 @@ section of the file.")
          "0ncf4l39ka23nb01jlm6rzxdb5pqbip01x0m38bnvf1gim825caa"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-io-string" ,perl-io-string)))
+     (list perl-io-string))
     (home-page "https://metacpan.org/release/Data-Stag")
     (synopsis "Structured tags datastructures")
     (description
@@ -2849,12 +2776,10 @@ Perl.")
          "05q9ygcv7r318j7daxz42rjr5b99j6whjmwjdih0axxrlqr89q06"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-requires" ,perl-test-requires)))
+     (list perl-test-requires))
     (propagated-inputs
-     `(("perl-moose" ,perl-moose)
-       ("perl-namespace-clean" ,perl-namespace-clean)
-       ("perl-path-class" ,perl-path-class)
-       ("perl-sub-exporter" ,perl-sub-exporter)))
+     (list perl-moose perl-namespace-clean perl-path-class
+           perl-sub-exporter))
     (home-page "https://metacpan.org/release/Data-Stream-Bulk")
     (synopsis "N at a time iteration API")
     (description "This module tries to find middle ground between one at a
@@ -2877,9 +2802,9 @@ necessary later on.")
         (base32 "15pgvmf7mf9fxsg2l4l88xwvs41218d0bvawhlk15sx06qqp0kwb"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-most" ,perl-test-most)))
+     (list perl-test-most))
     (propagated-inputs
-     `(("perl-file-homedir" ,perl-file-homedir)))
+     (list perl-file-homedir))
     (home-page "https://metacpan.org/release/Data-Tumbler")
     (synopsis "Dynamic generation of nested combinations of variants")
     (description "Data::Tumbler - Dynamic generation of nested combinations of
@@ -2900,13 +2825,10 @@ variants.")
          "0m7d1505af9z2hj5aw020grcmjjlvnkjpvjam457d7k5qfy4m8lf"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-requires" ,perl-test-requires)))
+     (list perl-test-requires))
     (propagated-inputs
-     `(("perl-class-load" ,perl-class-load)
-       ("perl-moose" ,perl-moose)
-       ("perl-namespace-clean" ,perl-namespace-clean)
-       ("perl-task-weaken" ,perl-task-weaken)
-       ("perl-tie-toobject" ,perl-tie-toobject)))
+     (list perl-class-load perl-moose perl-namespace-clean
+           perl-task-weaken perl-tie-toobject))
     (home-page "https://metacpan.org/release/Data-Visitor")
     (synopsis "Visitor style traversal of Perl data structures")
     (description "This module is a simple visitor implementation for Perl
@@ -2931,8 +2853,7 @@ structures, and all ref types (hashes, arrays, scalars, code, globs).")
          "1barz0jgdaan3jm7ciphs5n3ahwkl42imprs3y8c1dwpwyr3gqbw"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-bit-vector" ,perl-bit-vector)
-       ("perl-carp-clan" ,perl-carp-clan)))
+     (list perl-bit-vector perl-carp-clan))
     (home-page "https://metacpan.org/release/Date-Calc")
     (synopsis "Gregorian calendar date calculations")
     (description "This package consists of a Perl module for date calculations
@@ -2955,9 +2876,7 @@ applicable).")
          "1cssi9rmd31cgaafgp4m70jqbm1mgh3aphxsxz1dwdz8h283n6jz"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-bit-vector" ,perl-bit-vector)
-       ("perl-carp-clan" ,perl-carp-clan)
-       ("perl-date-calc" ,perl-date-calc)))
+     (list perl-bit-vector perl-carp-clan perl-date-calc))
     (home-page "https://metacpan.org/release/Date-Calc-XS")
     (synopsis "XS wrapper for Date::Calc")
     (description "Date::Calc::XS is an XS wrapper and C library plug-in for
@@ -3023,16 +2942,11 @@ hours, minutes, seconds, and time zones.")
         (base32 "1rxjagwmkdlmksz1cbxwx2ad51pv5q7dri2djqkz44q7j1nxlbmi"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-cpan-meta-check" ,perl-cpan-meta-check)
-       ("perl-module-build" ,perl-module-build)
-       ("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-warnings" ,perl-test-warnings)))
+     (list perl-cpan-meta-check perl-module-build perl-test-fatal
+           perl-test-warnings))
     (propagated-inputs
-     `(("perl-datetime-locale" ,perl-datetime-locale)
-       ("perl-datetime-timezone" ,perl-datetime-timezone)
-       ("perl-file-sharedir" ,perl-file-sharedir)
-       ("perl-params-validate" ,perl-params-validate)
-       ("perl-try-tiny" ,perl-try-tiny)))
+     (list perl-datetime-locale perl-datetime-timezone perl-file-sharedir
+           perl-params-validate perl-try-tiny))
     (home-page "https://metacpan.org/release/DateTime")
     (synopsis "Date and time object for Perl")
     (description "DateTime is a class for the representation of date/time
@@ -3054,7 +2968,7 @@ time before its creation (in 1582).")
     (build-system perl-build-system)
     ;; Only needed for tests
     (native-inputs
-     `(("perl-datetime" ,perl-datetime)))
+     (list perl-datetime))
     (home-page "https://metacpan.org/release/DateTime-Calendar-Julian")
     (synopsis "Dates in the Julian calendar")
     (description "This package is a companion module to @code{DateTime.pm}.
@@ -3077,11 +2991,9 @@ precise.")
          "0ih9pi6myg5i26hjpmpzqn58s0yljl2qxdd6gzpy9zda4hwirx4l"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-datetime" ,perl-datetime)
-       ("perl-params-validate" ,perl-params-validate)
-       ("perl-set-infinite" ,perl-set-infinite)))
+     (list perl-datetime perl-params-validate perl-set-infinite))
     (home-page "https://metacpan.org/release/DateTime-Set")
     (synopsis "DateTime set objects")
     (description "The DateTime::Set module provides a date/time sets
@@ -3104,8 +3016,7 @@ within a time range.")
          "1skmykxbrf98ldi72d5s1v6228gfdr5iy4y0gpl0xwswxy247njk"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-datetime" ,perl-datetime)
-       ("perl-datetime-event-recurrence" ,perl-datetime-event-recurrence)))
+     (list perl-datetime perl-datetime-event-recurrence))
     (home-page "https://metacpan.org/release/DateTime-Event-ICal")
     (synopsis "DateTime rfc2445 recurrences")
     (description "This module provides convenience methods that let you easily
@@ -3126,8 +3037,7 @@ create DateTime::Set objects for RFC 2445 style recurrences.")
          "19dms2vg9hvfx80p85m8gkn2ww0yxjrjn8qsr9k7f431lj4qfh7r"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-datetime" ,perl-datetime)
-       ("perl-datetime-set" ,perl-datetime-set)))
+     (list perl-datetime perl-datetime-set))
     (home-page "https://metacpan.org/release/DateTime-Event-Recurrence")
     (synopsis "DateTime::Set extension for basic recurrences")
     (description "This module provides convenience methods that let you easily
@@ -3150,10 +3060,8 @@ or \"every day\".  You can also create more complicated recurrences, such as
          "18qw5rn1qbji3iha8gmpgldbjv9gvn97j9d5cp57fb4r5frawgrq"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-class-factory-util" ,perl-class-factory-util)
-       ("perl-datetime" ,perl-datetime)
-       ("perl-datetime-format-strptime" ,perl-datetime-format-strptime)
-       ("perl-params-validate" ,perl-params-validate)))
+     (list perl-class-factory-util perl-datetime
+           perl-datetime-format-strptime perl-params-validate))
     (home-page "https://metacpan.org/release/DateTime-Format-Builder")
     (synopsis "Create DateTime parser classes and objects")
     (description "DateTime::Format::Builder creates DateTime parsers.  Many
@@ -3175,15 +3083,10 @@ to do this without writing reams of structural code.")
         (base32 "1vnq3a8bwhidcv3z9cvcmfiq2qa84hikr993ffr19fw7nbzbk9sh"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-exception" ,perl-test-exception)
-       ("perl-test-nowarnings" ,perl-test-nowarnings)
-       ("perl-test-mocktime" ,perl-test-mocktime)))
+     (list perl-test-exception perl-test-nowarnings perl-test-mocktime))
     (propagated-inputs
-     `(("perl-datetime" ,perl-datetime)
-       ("perl-datetime-format-builder" ,perl-datetime-format-builder)
-       ("perl-datetime-timezone" ,perl-datetime-timezone)
-       ("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-module-pluggable" ,perl-module-pluggable)))
+     (list perl-datetime perl-datetime-format-builder
+           perl-datetime-timezone perl-list-moreutils perl-module-pluggable))
     (home-page "https://metacpan.org/release/DateTime-Format-Flexible")
     (synopsis "Parse date and time strings")
     (description "DateTime::Format::Flexible attempts to take any string you
@@ -3204,13 +3107,10 @@ give it and parse it into a DateTime object.")
          "0cvwk7pigj7czsp81z35h7prxvylkrlk2l0kwvq0v72ykx9zc2cb"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-datetime" ,perl-datetime)
-       ("perl-datetime-event-ical" ,perl-datetime-event-ical)
-       ("perl-datetime-set" ,perl-datetime-set)
-       ("perl-datetime-timezone" ,perl-datetime-timezone)
-       ("perl-params-validate" ,perl-params-validate)))
+     (list perl-datetime perl-datetime-event-ical perl-datetime-set
+           perl-datetime-timezone perl-params-validate))
     (home-page "https://metacpan.org/release/DateTime-Format-ICal")
     (synopsis "Parse and format iCal datetime and duration strings")
     (description "This module understands the ICal date/time and duration
@@ -3233,13 +3133,10 @@ order to create the appropriate objects.")
         "1syccqd5jlwms8v78ksnf68xijzl97jky5vbwhnyhxi5gvgfx8xk"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-datetime" ,perl-datetime)
-       ("perl-datetime-format-builder" ,perl-datetime-format-builder)
-       ("perl-file-find-rule" ,perl-file-find-rule)
-       ("perl-test-distribution" ,perl-test-distribution)
-       ("perl-test-pod" ,perl-test-pod)))
+     (list perl-datetime perl-datetime-format-builder perl-file-find-rule
+           perl-test-distribution perl-test-pod))
     (home-page "https://metacpan.org/release/DateTime-Format-ISO8601")
     (synopsis "Parse ISO8601 date and time formats")
     (description "@code{DateTime::Format::ISO8601} is a DateTime
@@ -3259,18 +3156,16 @@ extension that parses almost all ISO8601 date and time formats.")
         (base32 "0mqjsjyfymzp7lx7czx17bsdshzsh6l8r6hcadv81zvga326zprw"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-module-util" ,perl-module-util)
-       ("perl-test-mocktime" ,perl-test-mocktime)))
+     (list perl-module-build perl-module-util perl-test-mocktime))
     (propagated-inputs
-     `(("perl-boolean" ,perl-boolean)
-       ("perl-clone" ,perl-clone)
-       ("perl-date-calc" ,perl-date-calc)
-       ("perl-date-calc-xs" ,perl-date-calc-xs)
-       ("perl-datetime" ,perl-datetime)
-       ("perl-datetime-timezone" ,perl-datetime-timezone)
-       ("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-params-validate" ,perl-params-validate)))
+     (list perl-boolean
+           perl-clone
+           perl-date-calc
+           perl-date-calc-xs
+           perl-datetime
+           perl-datetime-timezone
+           perl-list-moreutils
+           perl-params-validate))
     (home-page "https://metacpan.org/release/DateTime-Format-Natural")
     (synopsis "Machine-readable date/time with natural parsing")
     (description "DateTime::Format::Natural takes a string with a human
@@ -3291,13 +3186,13 @@ parsing logic.")
         (base32 "0jiy2yc9h9932ykb8x2l1j3ff8ms3p4426m947r5clygis1kr91g"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-datetime" ,perl-datetime)
-       ("perl-datetime-locale" ,perl-datetime-locale)
-       ("perl-datetime-timezone" ,perl-datetime-timezone)
-       ("perl-package-deprecationmanager" ,perl-package-deprecationmanager)
-       ("perl-params-validate" ,perl-params-validate)
-       ("perl-sub-name" ,perl-sub-name)
-       ("perl-test-warnings" ,perl-test-warnings)))
+     (list perl-datetime
+           perl-datetime-locale
+           perl-datetime-timezone
+           perl-package-deprecationmanager
+           perl-params-validate
+           perl-sub-name
+           perl-test-warnings))
     (home-page "https://metacpan.org/release/DateTime-Format-Strptime")
     (synopsis "Parse and format strp and strf time patterns")
     (description "This module implements most of `strptime(3)`, the POSIX
@@ -3320,18 +3215,17 @@ takes a string and a pattern and returns the `DateTime` object associated.")
          "05f0jchminv5g2nrvsx5v1ihc5919fzzhh4f82dxi5ns8bkq2nis"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-file-sharedir" ,perl-file-sharedir)
-       ("perl-ipc-system-simple" ,perl-ipc-system-simple)
-       ("perl-test-file-sharedir-dist" ,perl-test-file-sharedir-dist)
-       ("perl-test-warnings" ,perl-test-warnings)
-       ("perl-test-requires" ,perl-test-requires)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)
-       ("perl-file-sharedir-install" ,perl-file-sharedir-install)
-       ("perl-cpan-meta-check" ,perl-cpan-meta-check)
-       ("perl-module-build" ,perl-module-build)))
+     (list perl-file-sharedir
+           perl-ipc-system-simple
+           perl-test-file-sharedir-dist
+           perl-test-warnings
+           perl-test-requires
+           perl-namespace-autoclean
+           perl-file-sharedir-install
+           perl-cpan-meta-check
+           perl-module-build))
     (propagated-inputs
-     `(("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-params-validationcompiler" ,perl-params-validationcompiler)))
+     (list perl-list-moreutils perl-params-validationcompiler))
     (home-page "https://metacpan.org/release/DateTime-Locale")
     (synopsis "Localization support for DateTime.pm")
     (description "The DateTime::Locale modules provide localization data for
@@ -3363,17 +3257,16 @@ the DateTime.pm class.")
                                "';")))
              #t)))))
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-requires" ,perl-test-requires)))
+     (list perl-test-fatal perl-test-requires))
     (inputs
-     `(("tzdata" ,tzdata)))
-    (propagated-inputs
-     `(("perl-class-singleton" ,perl-class-singleton)
-       ("perl-list-allutils" ,perl-list-allutils)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)
-       ("perl-params-validationcompiler" ,perl-params-validationcompiler)
-       ("perl-try-tiny" ,perl-try-tiny)))
+     (list tzdata))
+    (propagated-inputs
+     (list perl-class-singleton
+           perl-list-allutils
+           perl-module-runtime
+           perl-namespace-autoclean
+           perl-params-validationcompiler
+           perl-try-tiny))
     (home-page "https://metacpan.org/release/DateTime-TimeZone")
     (synopsis "Time zone object for Perl")
     (description "This class is the base class for all time zone objects.  A
@@ -3398,13 +3291,11 @@ DateTime::TimeZone methods.")
          "0ybs9175h4s39x8a23ap129cgqwmy6w7psa86194jq5cww1d5rhp"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-most" ,perl-test-most)))
+     (list perl-test-most))
     (propagated-inputs
-     `(("perl-datetime" ,perl-datetime)
-       ("perl-datetime-format-flexible" ,perl-datetime-format-flexible)
-       ("perl-datetime-format-ical" ,perl-datetime-format-ical)
-       ("perl-datetime-format-natural" ,perl-datetime-format-natural)
-       ("perl-timedate" ,perl-timedate)))
+     (list perl-datetime perl-datetime-format-flexible
+           perl-datetime-format-ical perl-datetime-format-natural
+           perl-timedate))
     (home-page "https://metacpan.org/release/DateTimeX-Easy")
     (synopsis "Parse date/time strings")
     (description "DateTimeX::Easy uses a variety of DateTime::Format packages
@@ -3425,8 +3316,7 @@ edges (mainly concerning timezone detection and selection).")
                 "1c7wapbi9g9p2za52l3skhh31vg4da5kx2yfqzsqyf3p8iff7y4d"))))
     (build-system perl-build-system)
     (inputs
-     `(("perl-datetime" ,perl-datetime)
-       ("perl-params-validate" ,perl-params-validate)))
+     (list perl-datetime perl-params-validate))
     (home-page "https://metacpan.org/release/DateTime-Format-Mail")
     (synopsis "Convert between DateTime and RFC2822/822 formats")
     (description "RFCs 2822 and 822 specify date formats to be used by email.
@@ -3446,10 +3336,9 @@ This module parses and emits such dates.")
                 "0s32lb1k80p3b3sb7w234zgxnrmadrwbcg41lhaal7dz3dk2p839"))))
     (build-system perl-build-system)
     (inputs
-     `(("perl-datetime" ,perl-datetime)))
+     (list perl-datetime))
     (native-inputs
-     `(("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-test-pod perl-test-pod-coverage))
     (home-page "https://metacpan.org/release/DateTime-Format-W3CDTF")
     (synopsis "Parse and format W3CDTF datetime strings")
     (description
@@ -3474,12 +3363,9 @@ the appropriate objects.")
         "1p0ij2k2i81zhl7064h9ghld1w5xy2zsbghkpdzm2hjryl5lwn2x"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-module-build perl-test-pod perl-test-pod-coverage))
     (propagated-inputs
-     `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check)
-       ("perl-dynaloader-functions" ,perl-dynaloader-functions)))
+     (list perl-b-hooks-op-check perl-dynaloader-functions))
     (home-page "https://metacpan.org/release/Devel-CallChecker")
     (synopsis "Custom op checking attached to subroutines")
     (description "This module makes some new features of the Perl
@@ -3506,7 +3392,7 @@ functions available.")
          "1pxpimifzmnjnvf4icclx77myc15ahh0k56sj1djad1855mawwva"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-padwalker" ,perl-padwalker)))
+     (list perl-padwalker))
     (home-page "https://metacpan.org/release/Devel-Caller")
     (synopsis "Meatier version of caller")
     (description "Devel::Caller provides meatier version of caller.")
@@ -3525,7 +3411,7 @@ functions available.")
         (base32
          "1r735yzgvsxkj4m6ks34xva5m21cfzp9qiis2d4ivv99kjskszqm"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-module-build" ,perl-module-build)))
+    (native-inputs (list perl-module-build))
     (home-page "https://metacpan.org/release/Devel-CheckBin")
     (synopsis "Check that a command is available")
     (description "Devel::CheckBin is a perl module that checks whether a
@@ -3545,8 +3431,7 @@ particular command is available.")
         (base32 "15621qh5gaan1sgmk9y9svl70nm8viw17x5h1kf0zknkk8lmw77j"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)
-       ("perl-mock-config" ,perl-mock-config)))
+     (list perl-capture-tiny perl-mock-config))
     (home-page "https://metacpan.org/release/Devel-CheckLib")
     (synopsis "Check that a library is available")
     (description
@@ -3569,7 +3454,7 @@ particular results.")
               "1db973a4dbyknjxq608hywil5ai6vplnayshqxrd7m5qnjbpd2vn"))))
   (build-system perl-build-system)
   (native-inputs
-   `(("perl-module-build-tiny" ,perl-module-build-tiny)))
+   (list perl-module-build-tiny))
   (home-page "https://metacpan.org/release/Devel-CheckCompiler")
   (synopsis "Check compiler availability")
   (description "@code{Devel::CheckCompiler} is a tiny module to check
@@ -3615,7 +3500,7 @@ based memory management, circular references will cause memory leaks.")
          "1aslj6myylsvzr0vpqry1cmmvzbmpbdcl4v9zrl18ccik7rabf1l"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-sub-exporter-progressive" ,perl-sub-exporter-progressive)))
+     (list perl-sub-exporter-progressive))
     (home-page "https://metacpan.org/release/Devel-GlobalDestruction")
     (synopsis "Provides equivalent of ${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls")
     (description "Devel::GlobalDestruction provides a function returning the
@@ -3635,8 +3520,7 @@ equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls.")
         (base32 "10jyv9nmv513hs75rls5yx2xn82513xnnhjir3dxiwgb1ykfyvvm"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-test-pod perl-test-pod-coverage))
     (home-page "https://metacpan.org/release/Devel-Hide")
     (synopsis "Forces the unavailability of specified Perl modules (for testing)")
     (description "Given a list of Perl modules/filenames, this module makes
@@ -3678,7 +3562,7 @@ allocating perl data and not releasing them again.")
          "0wpfpjqlrncslnmxa37494sfdy0901510kj2ds2k6q167vadj2jy"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-devel-caller" ,perl-devel-caller)))
+     (list perl-devel-caller))
     (home-page "https://metacpan.org/release/Devel-LexAlias")
     (synopsis "Alias lexical variables")
     (description "Devel::LexAlias provides the ability to alias a lexical
@@ -3699,11 +3583,9 @@ variable in a subroutines scope to one of your choosing.")
          "1rx6g8pyhi7lx6z130b7vlf8syzrq92w9ky8mpw4d6bwlkzy5zcb"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-test-fatal))
     (propagated-inputs
-     `(("perl-package-stash" ,perl-package-stash)
-       ("perl-sub-identify" ,perl-sub-identify)
-       ("perl-mro-compat" ,perl-mro-compat)))
+     (list perl-package-stash perl-sub-identify perl-mro-compat))
     (home-page "https://metacpan.org/release/Devel-OverloadInfo")
     (synopsis "Introspect overloaded operators")
     (description "Devel::OverloadInfo returns information about overloaded
@@ -3725,13 +3607,9 @@ hierarchy the overloads are declared and where the code implementing it is.")
          "0i1khiyi4h4h8vfwn7xip5c53z2hb2rk6407f3csvrdsiibvy53q"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build-tiny" ,perl-module-build-tiny)
-       ("perl-test-warn" ,perl-test-warn)
-       ("perl-test-simple" ,perl-test-simple)))
+     (list perl-module-build-tiny perl-test-warn perl-test-simple))
     (propagated-inputs
-     `(("perl-class-tiny" ,perl-class-tiny)
-       ("perl-sub-exporter" ,perl-sub-exporter)
-       ("perl-namespace-clean" ,perl-namespace-clean)))
+     (list perl-class-tiny perl-sub-exporter perl-namespace-clean))
     (home-page "https://metacpan.org/release/Devel-PartialDump")
     (synopsis "Partial dumping of data structures")
     (description "This module is a data dumper optimized for logging of
@@ -3772,7 +3650,7 @@ providing a simple interface to this data.")
          "0iri5nb2lb76qv5l9z0vjpfrq5j2fyclkd64kh020bvy37idp0v2"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-devel-stacktrace" ,perl-devel-stacktrace)))
+     (list perl-devel-stacktrace))
     (home-page "https://metacpan.org/release/Devel-StackTrace-AsHTML")
     (synopsis "Displays stack trace in HTML")
     (description "Devel::StackTrace::AsHTML adds as_html method to
@@ -3937,9 +3815,9 @@ SHA-1 message digest algorithm for use by Perl programs.")
                (base32
                 "1i7dr9jpdiy2nijl2p4q5zg2q2s9ckbj2hs4kmnnckf9hsb4p17a"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-test-fatal" ,perl-test-fatal)))
+    (native-inputs (list perl-test-fatal))
     (propagated-inputs
-     `(("perl-module-runtime" ,perl-module-runtime)))
+     (list perl-module-runtime))
     (home-page "https://metacpan.org/release/Dist-CheckConflicts")
     (synopsis "Declare version conflicts for your dist")
     (description "This module allows you to specify conflicting versions of
@@ -3961,9 +3839,7 @@ modules separately and deal with them after the module is done installing.")
         "10x13q920j9kid7vmbj6fiaz153042dy4mwdmpzrdrxw2ir39ciy"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-module-build perl-test-pod perl-test-pod-coverage))
     (home-page "https://metacpan.org/release/DynaLoader-Functions")
     (synopsis "Deconstructed dynamic C library loading")
     (description "This module provides a function-based interface to
@@ -3985,9 +3861,7 @@ the programmer to be mindfulof the space of platform variations.")
         (base32 "1a8rwcrxxhq81jcdvdwns05c65jwr5r6bxvby6vdcr3ny5m91my2"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-exporter" ,perl-exporter)
-       ("perl-storable" ,perl-storable)
-       ("perl-parent" ,perl-parent)))
+     (list perl-exporter perl-storable perl-parent))
     (home-page "https://metacpan.org/dist/Encode")
     (synopsis "Character encodings in Perl")
     (description "Encode module provides the interface between Perl strings and
@@ -4008,7 +3882,7 @@ the rest of the system.  Perl strings are sequences of characters.")
          "1wdv9ffgs4xyfh5dnh09dqkmmlbf5m1hxgdgb3qy6v6vlwx8jkc3"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (home-page "https://metacpan.org/release/Encode-Detect")
     (synopsis "Detect the encoding of data")
     (description "This package provides a class @code{Encode::Detect} to detect
@@ -4114,7 +3988,7 @@ separator.")
                (base32
                 "0q796nwwiarfc6pga97380c9z8xva5545632001qj75kb1g5rn1s"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-module-build" ,perl-module-build)))
+    (native-inputs (list perl-module-build))
     (home-page "https://metacpan.org/release/Error")
     (synopsis "OO-ish Error/Exception handling for Perl")
     (description "The Error package provides two interfaces.  Firstly Error
@@ -4137,10 +4011,9 @@ catch, or can simply be recorded.")
          "1bcc47r6zm3hfr6ccsrs72kgwxm3wkk07mgnpsaxi67cypr482ga"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-requires" ,perl-test-requires)))
+     (list perl-test-fatal perl-test-requires))
     (propagated-inputs
-     `(("perl-devel-lexalias" ,perl-devel-lexalias)))
+     (list perl-devel-lexalias))
     (home-page "https://metacpan.org/release/Eval-Closure")
     (synopsis "Safely and cleanly create closures via string eval")
     (description "String eval is often used for dynamic code generation.  For
@@ -4181,8 +4054,7 @@ errors are rethrown automatically.")
                              ,(string-append out "/lib/perl5/site_perl"))))
                         #t))))))
     (propagated-inputs
-     `(("perl-moo" ,perl-moo)
-       ("perl-strictures" ,perl-strictures)))
+     (list perl-moo perl-strictures))
     (home-page "https://metacpan.org/release/Eval-WithLexicals")
     (synopsis "Lexical scope evaluation library for Perl")
     (description "The Eval::WithLexicals Perl library provides support for
@@ -4204,8 +4076,7 @@ command, which can be used as a minimal Perl read-eval-print loop (REPL).")
          "03gf4cdgrjnljgrlxkvbh2cahsyzn0zsh2zcli7b1lrqn7wgpwrk"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-devel-stacktrace" ,perl-devel-stacktrace)
-       ("perl-class-data-inheritable" ,perl-class-data-inheritable)))
+     (list perl-devel-stacktrace perl-class-data-inheritable))
     (home-page "https://metacpan.org/release/Exception-Class")
     (synopsis "Allows you to declare real exception classes in Perl")
     (description "Exception::Class allows you to declare exception hierarchies
@@ -4225,9 +4096,9 @@ in your modules in a \"Java-esque\" manner.")
         (base32 "1f25k5iaygiizlrkbbl6wxd647pwfmynykxalq6r9bbkysg8inza"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-pod" ,perl-test-pod)))
+     (list perl-test-pod))
     (propagated-inputs
-     `(("perl-carp" ,perl-carp)))
+     (list perl-carp))
     (home-page "https://metacpan.org/dist/Exporter")
     (synopsis "Default import method for modules")
     (description "Exporter implements an import method which allows a module to
@@ -4313,7 +4184,7 @@ maniread, maniskip, manicopy, maniadd.")
          "1v9lshfhm9ck4p0v77arj5f7haj1mmkqal62lgzzvcds6wq5www4"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-extutils-config" ,perl-extutils-config)))
+     (list perl-extutils-config))
     (home-page "https://metacpan.org/release/ExtUtils-InstallPaths")
     (synopsis "Build.PL install path logic made easy")
     (description "This module tries to make install path resolution as easy as
@@ -4356,10 +4227,9 @@ it ties together a family of modern toolchain modules.")
             "0q9ynigk600fv95xac6aslrg2k19m6qbzf5hqfsnall8113r3gqj"))))
     (build-system perl-build-system)
     (native-inputs
-      `(("perl-capture-tiny" ,perl-capture-tiny)
-        ("perl-module-build" ,perl-module-build)))
+      (list perl-capture-tiny perl-module-build))
     (propagated-inputs
-      `(("perl-capture-tiny" ,perl-capture-tiny)))
+      (list perl-capture-tiny))
     (home-page
       "https://metacpan.org/release/ExtUtils-CppGuess")
     (synopsis "Tool for guessing C++ compiler and flags")
@@ -4380,7 +4250,7 @@ is compatible with the C compiler used to build perl.")
                 "0b4ab9qmcihsfs2ajhn5qzg7nhazr68v3r0zvb7076smswd41mla"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-number-delta" ,perl-test-number-delta)))
+     (list perl-test-number-delta))
     (home-page "https://metacpan.org/release/ExtUtils-Depends")
     (synopsis "Easily build XS extensions that depend on XS extensions")
     (description
@@ -4423,7 +4293,7 @@ module building modules.")
          "1lmmfcjxvsvhn4f3v2lyylgr8dzcf5j7mnd1pkq3jc75dph724f5"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (home-page "https://metacpan.org/release/ExtUtils-LibBuilder")
     (synopsis "Tool to build C libraries")
     (description "Some Perl modules need to ship C libraries together with
@@ -4468,7 +4338,7 @@ handle Perl/XS typemap files, and their submodules.")
                 "0vhwh0731rhh1sswmvagq0myn754dnkab8sizh6d3n6pjpcwxsmv"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://metacpan.org/release/ExtUtils-PkgConfig")
     (synopsis "Simplistic interface to pkg-config")
     (description
@@ -4494,7 +4364,7 @@ It is really just boilerplate code that you would have written yourself.")
             "1phmha0ks95kvzl00r1kgnd5hvg7qb1q9jmzjmw01p5zgs1zbyix"))))
     (build-system perl-build-system)
     (native-inputs
-      `(("perl-module-build" ,perl-module-build)))
+      (list perl-module-build))
     (home-page
       "https://metacpan.org/release/ExtUtils-Typemaps-Default")
     (synopsis "Set of useful typemaps")
@@ -4518,9 +4388,7 @@ submodules of ExtUtils::Typemaps.")
             "1zx84f93lkymqz7qa4d63gzlnhnkxm5i3gvsrwkvvqr9cxjasxli"))))
     (build-system perl-build-system)
     (native-inputs
-      `(("perl-module-build" ,perl-module-build)
-        ("perl-test-base" ,perl-test-base)
-        ("perl-test-differences" ,perl-test-differences)))
+      (list perl-module-build perl-test-base perl-test-differences))
     (home-page
       "https://metacpan.org/release/ExtUtils-XSpp")
     (synopsis "XS for C++")
@@ -4542,17 +4410,15 @@ interface XS for C++; it is a thin layer over plain XS.")
          "090i265f73jlcl5rv250791vw32j9vvl4nd5abc7myg0klb8109w"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-exception" ,perl-test-exception)))
+     (list perl-module-build perl-test-exception))
     (propagated-inputs
-     `(("perl-class-load" ,perl-class-load)
-       ("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-module-pluggable" ,perl-module-pluggable)
-       ("perl-moose" ,perl-moose)
-       ("perl-moosex-params-validate" ,perl-moosex-params-validate)
-       ("perl-moosex-semiaffordanceaccessor"
-        ,perl-moosex-semiaffordanceaccessor)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
+     (list perl-class-load
+           perl-list-moreutils
+           perl-module-pluggable
+           perl-moose
+           perl-moosex-params-validate
+           perl-moosex-semiaffordanceaccessor
+           perl-namespace-autoclean))
     (home-page "https://metacpan.org/release/File-ChangeNotify")
     (synopsis "Watch for changes to files")
     (description "This module provides a class to monitor a directory for
@@ -4573,9 +4439,7 @@ changes made to any file.")
          "1ihlhdbwaybyj3xqfxpx4ii0ypa41907b6zdh94rvr4wyqa5lh3b"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-file-homedir" ,perl-file-homedir)
-       ("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-test-without-module" ,perl-test-without-module)))
+     (list perl-file-homedir perl-list-moreutils perl-test-without-module))
     (home-page "https://metacpan.org/release/File-ConfigDir")
     (synopsis "Get directories of configuration files")
     (description "This module is a helper for installing, reading and finding
@@ -4618,8 +4482,7 @@ type.")
          "1znachnhmi1w5pdqx8dzgfa892jb7x8ivrdy4pzjj7zb6g61cvvy"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-text-glob" ,perl-text-glob)
-       ("perl-number-compare" ,perl-number-compare)))
+     (list perl-text-glob perl-number-compare))
     (home-page "https://metacpan.org/release/File-Find-Rule")
     (synopsis "Alternative interface to File::Find")
     (description "File::Find::Rule is a friendlier interface to File::Find.
@@ -4641,9 +4504,7 @@ directories.")
          "19iy8spzrvh71x33b5yi16wjw5jjvs12jvjj0f7f3370hqzl6j4s"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-file-find-rule" ,perl-file-find-rule)
-       ("perl-params-util" ,perl-params-util)
-       ("perl-parse-cpan-meta" ,perl-parse-cpan-meta)))
+     (list perl-file-find-rule perl-params-util perl-parse-cpan-meta))
     (home-page "https://metacpan.org/release/File-Find-Rule-Perl")
     (synopsis "Common rules for searching for Perl things")
     (description "File::Find::Rule::Perl provides methods for finding various
@@ -4688,7 +4549,7 @@ provide a quick dropin when such functionality is needed.")
          "1bciyzwv7gwsnaykqz0czj6mlbkkg4hg1s40s1q7j2p6nlmpxxj5"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-file-which" ,perl-file-which)))
+     (list perl-file-which))
     (arguments `(#:tests? #f))          ;Not appropriate for chroot
     (home-page "https://metacpan.org/release/File-HomeDir")
     (synopsis "Find your home and other directories on any platform")
@@ -4814,7 +4675,7 @@ the input record separator string on a per file basis.")
          "1n6h5w3sp2bs4cfrifdx2z15cfpb4r536179mx1a12xbmj1yrxl1"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (home-page "https://metacpan.org/release/File-Remove")
     (synopsis "Remove files and directories in Perl")
     (description "@code{File::Remove::remove} removes files and directories.
@@ -4836,9 +4697,9 @@ that.  It also accepts wildcards, * and ?, as arguments for file names.")
         (base32 "0a43rfb0a1fpxh4d2dayarkdxw4cx9a2krkk87zmcilcz7yhpnar"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-file-sharedir-install" ,perl-file-sharedir-install)))
+     (list perl-file-sharedir-install))
     (propagated-inputs
-     `(("perl-class-inspector" ,perl-class-inspector)))
+     (list perl-class-inspector))
     (home-page "https://metacpan.org/release/File-ShareDir")
     (synopsis "Locate per-dist and per-module shared files")
     (description "The intent of File::ShareDir is to provide a companion to
@@ -4881,7 +4742,7 @@ distributions.  It is a companion module to File::ShareDir.")
          "1yc0wlkav2l2wr36a53n4mnhsy2zv29z5nm14mygxgjwv7qgvgj5"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (home-page "https://metacpan.org/release/File-ShareDir-Install")
     (synopsis "Install shared files")
     (description "File::ShareDir::Install allows you to install read-only data
@@ -4924,9 +4785,9 @@ file names in a directory.")
          "0y5518ji60yfkx9ggjp309j6g8vfri4ka4zqlsys245i2sj2xysf"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-warnings" ,perl-test-warnings)))
+     (list perl-test-warnings))
     (propagated-inputs
-     `(("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict)))
+     (list perl-perlio-utf8_strict))
     (home-page "https://metacpan.org/release/File-Slurper")
     (synopsis "Simple, sane and efficient module to slurp a file")
     (description "This module provides functions for fast and correct file
@@ -5004,7 +4865,7 @@ shell.")
                 "16v61rn0yimpv5kp6b20z2f1c93n5kpsyjvr0gq4w2dc43gfvc8w"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)))
+     (list perl-module-install))
     (home-page "https://metacpan.org/release/File-Zglob")
     (synopsis "Extended Unix style glob functionality")
     (description "@code{File::Zglob} provides a traditional Unix @code{glob}
@@ -5026,7 +4887,7 @@ For instance, it supports the @code{**/*.pm} form.")
          "18jv96k1pf8wqf4vn2ahs7dv44lc9cyqj0bja9z17qici3dx7qxd"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-sharedfork" ,perl-test-sharedfork)))
+     (list perl-test-sharedfork))
     (home-page "https://metacpan.org/release/Filesys-Notify-Simple")
     (synopsis "Simple and dumb file system watcher")
     (description
@@ -5078,12 +4939,9 @@ single-letter approach, is provided but not enabled by default.")
          "1cpl240qxmh7jf85ai9sfkp3nzm99syya4jxidizp7aa83kvmqbh"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-cpan-meta-check" ,perl-cpan-meta-check)
-       ("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-warnings" ,perl-test-warnings)))
+     (list perl-cpan-meta-check perl-test-fatal perl-test-warnings))
     (propagated-inputs
-     `(("perl-params-validate" ,perl-params-validate)
-       ("perl-sub-exporter" ,perl-sub-exporter)))
+     (list perl-params-validate perl-sub-exporter))
     (home-page "https://metacpan.org/release/Getopt-Long-Descriptive")
     (synopsis "Getopt::Long, but simpler and more powerful")
     (description "Getopt::Long::Descriptive is yet another Getopt library.
@@ -5198,8 +5056,7 @@ which are tied to the scope exit.")
                                     (getenv "PERL5LIB")))
              #t)))))
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-leaktrace" ,perl-test-leaktrace)))
+     (list perl-module-build perl-test-leaktrace))
     (home-page "https://metacpan.org/release/Hash-FieldHash")
     (synopsis "Lightweight field hash for inside-out objects")
     (description "@code{Hash::FieldHash} provides the field hash mechanism
@@ -5222,10 +5079,9 @@ relic support.")
     (build-system perl-build-system)
     (native-inputs
      ;; For tests only.
-     `(("perl-clone" ,perl-clone)
-       ("perl-clone-pp" ,perl-clone-pp)))
+     (list perl-clone perl-clone-pp))
     (propagated-inputs
-     `(("perl-clone-choose" ,perl-clone-choose)))
+     (list perl-clone-choose))
     (home-page "https://metacpan.org/release/Hash-Merge")
     (synopsis "Merge arbitrarily deep hashes into a single hash")
     (description "Hash::Merge merges two arbitrarily deep hashes into a single
@@ -5315,7 +5171,7 @@ variables.")
          "0rq5kz7c270q33jq6hnrv3xgkvajsc62ilqq7fs40av6zfipg7mx"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-module-runtime" ,perl-module-runtime)))
+     (list perl-module-runtime))
     (home-page "https://metacpan.org/release/Import-Into")
     (synopsis "Import packages into other packages")
     (description "Writing exporters is a pain.  Some use Exporter, some use
@@ -5380,7 +5236,7 @@ inc directory within a distribution and are used by Makefile.PL or Build.PL.")
        "0fhyspkg2ka7yz7kbq8a028hj0chfc7qqkl7n20dpc0is3i7s2ji"))))
    (build-system perl-build-system)
    (native-inputs
-    `(("perl-test-warn" ,perl-test-warn)))
+    (list perl-test-warn))
    (home-page "https://metacpan.org/release/Inline")
    (synopsis "Write Perl subroutines in other programming languages")
    (description "The @code{Inline} module allows you to put source code
@@ -5403,15 +5259,22 @@ for immediate access from Perl.")
         (base32
          "1b3sr39813di3j1kwbgn1xq2z726rhjjdw809ydzgmshj26jb1gi"))))
     (build-system perl-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((make (assoc-ref inputs "make")))
+             (substitute* "lib/Inline/C.pm"
+               (("'\"make\"'")
+                (string-append "'\"" make "/bin/make\"'"))
+               (("'\"make install\"'")
+                (string-append "'\"" make "/bin/make install\"'")))))))))
     (native-inputs
-     `(("perl-file-copy-recursive" ,perl-file-copy-recursive)
-       ("perl-file-sharedir-install" ,perl-file-sharedir-install)
-       ("perl-test-warn" ,perl-test-warn)
-       ("perl-yaml-libyaml" ,perl-yaml-libyaml)))
+     (list perl-file-copy-recursive perl-file-sharedir-install
+           perl-test-warn perl-yaml-libyaml))
     (propagated-inputs
-     `(("perl-inline" ,perl-inline)
-       ("perl-parse-recdescent" ,perl-parse-recdescent)
-       ("perl-pegex" ,perl-pegex)))
+     (list perl-inline perl-parse-recdescent perl-pegex))
     (home-page "https://metacpan.org/release/Inline-C")
     (synopsis "C Language Support for Inline")
     (description "The @code{Inline::C} module allows you to write Perl
@@ -5437,8 +5300,7 @@ It also goes a bit into Perl C internals.")
          "0nsd9knlbd7if2v6zwj4q978axq0w5hk8ymp61z14a821hjivqjl"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-file-mimeinfo" ,perl-file-mimeinfo)
-       ("perl-file-readbackwards" ,perl-file-readbackwards)))
+     (list perl-file-mimeinfo perl-file-readbackwards))
     (home-page "https://metacpan.org/release/IO-All")
     (synopsis "@code{IO::All} to Larry Wall!")
     (description "@code{IO::All} combines all of the best Perl IO modules into
@@ -5514,9 +5376,9 @@ and busy().")
                 (which "less")))
              #t)))))
     (propagated-inputs
-     `(("perl-file-which" ,perl-file-which)))
+     (list perl-file-which))
     (inputs
-     `(("less" ,less)))
+     (list less))
     (home-page "https://metacpan.org/release/IO-Pager")
     (synopsis "Select a pager and pipe text to it")
     (description
@@ -5614,7 +5476,7 @@ run interactively.  It also has an option to capture output/error buffers.")
         (base32 "0bvckcs1629ifqfb68xkapd4a74fd5qbg6z9qs8i6rx4z3nxfl1q"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-io-tty" ,perl-io-tty)))
+     (list perl-io-tty))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-before
@@ -5712,7 +5574,7 @@ commands.")
          "0z32x2lijij28c9fhmzgxc41i9nw24fyvd2a8ajs5zw9b9sqhjj4"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-json-xs" ,perl-json-xs))) ;recommended
+     (list perl-json-xs)) ;recommended
     (home-page "https://metacpan.org/release/JSON")
     (synopsis "JSON encoder/decoder for Perl")
     (description "This module converts Perl data structures to JSON and vice
@@ -5733,12 +5595,10 @@ versa using either JSON::XS or JSON::PP.")
          "1hspg6khjb38syn59cysnapc1q77qgavfym3fqr6l2kiydf7ajdf"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-requires" ,perl-test-requires)
-       ("perl-test-warnings" ,perl-test-warnings)
-       ("perl-test-without-module" ,perl-test-without-module)))
+     (list perl-test-fatal perl-test-requires perl-test-warnings
+           perl-test-without-module))
     (propagated-inputs
-     `(("perl-namespace-clean" ,perl-namespace-clean)))
+     (list perl-namespace-clean))
     (home-page "https://metacpan.org/release/JSON-Any")
     (synopsis "Wrapper for Perl JSON classes")
     (description
@@ -5762,9 +5622,9 @@ installed.")
          "1grg8saa318bs4x2wqnww7y0nra7azrzg35bk5pgvkwxzwbkpvjv"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-needs" ,perl-test-needs)))
+     (list perl-test-needs))
     (inputs
-     `(("perl-cpanel-json-xs" ,perl-cpanel-json-xs)))
+     (list perl-cpanel-json-xs))
     (home-page "https://metacpan.org/release/JSON-MaybeXS")
     (synopsis "Cpanel::JSON::XS with fallback")
     (description "This module first checks to see if either Cpanel::JSON::XS
@@ -5787,10 +5647,9 @@ either uses the first module it finds or throws an error.")
          "0118yrzagwlcfj5yldn3h23zzqs2rx282jlm068nf7fjlvy4m7s7"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-canary-stability" ,perl-canary-stability)))
+     (list perl-canary-stability))
     (propagated-inputs
-     `(("perl-common-sense" ,perl-common-sense)
-       ("perl-types-serialiser" ,perl-types-serialiser)))
+     (list perl-common-sense perl-types-serialiser))
     (home-page "https://metacpan.org/release/JSON-XS")
     (synopsis "JSON serialising/deserialising for Perl")
     (description "This module converts Perl data structures to JSON and vice
@@ -5813,7 +5672,7 @@ versa.")
          "0fh1arpr0hsj7skbn97yfvbk22pfcrpcvcfs15p5ss7g338qx4cy"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (home-page "https://metacpan.org/release/Lexical-SealRequireHints")
     (synopsis "Prevent leakage of lexical hints")
     (description
@@ -5833,12 +5692,12 @@ versa.")
         (base32 "0z6w3m6f3r29ljicdigsyvpa9w9j2m65l4gjxcw0wgwdll26ngxp"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-html-parser" ,perl-html-parser)
-       ("perl-lingua-en-sentence" ,perl-lingua-en-sentence)
-       ("perl-ppi" ,perl-ppi)
-       ("perl-template-toolkit" ,perl-template-toolkit)
-       ("perl-text-haml" ,perl-text-haml)
-       ("perl-yaml" ,perl-yaml)))
+     (list perl-html-parser
+           perl-lingua-en-sentence
+           perl-ppi
+           perl-template-toolkit
+           perl-text-haml
+           perl-yaml))
     (home-page "https://metacpan.org/release/Locale-Maketext-Lexicon")
     (synopsis "Use other catalog formats in Maketext")
     (description
@@ -5892,8 +5751,7 @@ logging mechanism.")
          "19f1drqnzr6g4xwjm6jk4iaa3zmiax8bzxqch04f4jr12bjd75qi"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-log-any" ,perl-log-any)
-       ("perl-log-log4perl" ,perl-log-log4perl)))
+     (list perl-log-any perl-log-log4perl))
     (home-page
      "https://metacpan.org/release/Log-Any-Adapter-Log4perl")
     (synopsis "Log::Any adapter for Log::Log4perl")
@@ -5920,7 +5778,7 @@ logging mechanism.")
 throughout programs and projects.  Every message will be logged with
 stacktraces, timestamps and so on.  You can use built-in handlers
 immediately, or after the fact when you inspect the error stack.  It
-is highly configurable and let's you even provide your own handlers
+is highly configurable and lets you even provide your own handlers
 for dealing with messages.")
    (license (package-license perl))))
 
@@ -5939,7 +5797,7 @@ for dealing with messages.")
        "15nxi935nfrf8dkdrgvcrf2qlai4pbz03yj8sja0n9mcq2jd24ma"))))
    (build-system perl-build-system)
    (inputs
-    `(("perl-log-message" ,perl-log-message)))
+    (list perl-log-message))
    (home-page "https://metacpan.org/release/Log-Message-Simple")
    (synopsis "Simplified interface to @code{Log::Message}")
    (description "This package provides a simplified frontend to
@@ -5983,7 +5841,7 @@ widely popular (Java-based) Log4j logging package in pure Perl.")
                 "11ciiaq8vy186m7mzj8pcncwi8p9qp13wblvk427g1pnqjzlda0g"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-string-print" ,perl-string-print)))
+     (list perl-string-print))
     (home-page "https://metacpan.org/release/Log-Report-Optional")
     (synopsis "Log::Report in the lightest form")
     (description
@@ -6008,9 +5866,8 @@ version.")
                 "1jjx1ari3a7ixsyan91b6n7lmjq6dy5223k3x2ah18qbxvw4caap"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-devel-globaldestruction" ,perl-devel-globaldestruction)
-       ("perl-log-report-optional" ,perl-log-report-optional)
-       ("perl-string-print" ,perl-string-print)))
+     (list perl-devel-globaldestruction perl-log-report-optional
+           perl-string-print))
     (home-page "https://metacpan.org/release/Log-Report")
     (synopsis "Get messages to users and logs")
     (description
@@ -6040,7 +5897,7 @@ one: logging, exceptions, and translations.")
                                                (getenv "PERL5LIB")))
              #t)))))
     (propagated-inputs
-     `(("perl-file-sharedir" ,perl-file-sharedir)))
+     (list perl-file-sharedir))
     (home-page "https://metacpan.org/release/libintl-perl")
     (synopsis "High-level interface to Uniforum message translation")
     (description "This package is an internationalization library for Perl
@@ -6061,7 +5918,7 @@ implemented for example in GNU gettext.")
         (base32 "11hlg92khd2azbxndnffsj9lggbxb3lqfdbwc6asr1c9lxlqddms"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (home-page "https://metacpan.org/release/Lingua-EN-Sentence")
     (synopsis "Split text into sentences")
     (description
@@ -6105,7 +5962,7 @@ tables.  Where possible a reverse transliteration is supported.")
          "0crlxmaa4lsgdjm5p9ib8rdxiy70qj1s68za3q3v57v8ll6s4hfx"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-common-sense" ,perl-common-sense)))
+     (list perl-common-sense))
     (home-page "https://metacpan.org/release/Linux-Inotify2")
     (synopsis "Scalable file change notification")
     (description "This module implements an interface to the Linux 2.6.13 and
@@ -6126,10 +5983,9 @@ later Inotify file change notification system.")
          "1qmfpmly0pghc94k6ifnd1vwzlv8nks27qkqs6h4p7vcricn7zjc"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-warnings" ,perl-test-warnings)))
+     (list perl-test-warnings))
     (propagated-inputs
-     `(("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-scalar-list-utils" ,perl-scalar-list-utils)))
+     (list perl-list-moreutils perl-scalar-list-utils))
     (home-page "https://metacpan.org/release/List-AllUtils")
     (synopsis "Combination of List::Util and List::MoreUtils")
     (description "This module exports all of the functions that either
@@ -6152,7 +6008,7 @@ List::Util or List::MoreUtils defines, with preference to List::Util.")
          "0l451yqhx1hlm7f2c3bjsl3n8w6l1jngrxzyfm2d8d9iggv4zgzx"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-io-captureoutput" ,perl-io-captureoutput)))
+     (list perl-io-captureoutput))
     (home-page "https://metacpan.org/release/List-Compare")
     (synopsis "Compare elements of two or more lists")
     (description "@code{List::Compare} provides a module to perform
@@ -6183,11 +6039,9 @@ intersections, unions, unique elements, complements and many more.")
                                     (getenv "PERL5LIB")))
              #t)))))
     (native-inputs
-     `(("perl-config-autoconf" ,perl-config-autoconf)
-       ("perl-test-leaktrace" ,perl-test-leaktrace)))
+     (list perl-config-autoconf perl-test-leaktrace))
     (propagated-inputs
-     `(("perl-exporter-tiny" ,perl-exporter-tiny)
-       ("perl-list-moreutils-xs" ,perl-list-moreutils-xs)))
+     (list perl-exporter-tiny perl-list-moreutils-xs))
     (home-page "https://metacpan.org/release/List-MoreUtils")
     (synopsis "Provide the stuff missing in List::Util")
     (description "List::MoreUtils provides some trivial but commonly needed
@@ -6207,9 +6061,7 @@ functionality on lists which is not going to go into List::Util.")
         (base32 "0hmjkhmk1qlzbg8skq7g1zral07k1x0fk4w2fpcfr7hpgkaldkp8"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-config-autoconf" ,perl-config-autoconf)
-       ("perl-inc-latest" ,perl-inc-latest)
-       ("perl-test-leaktrace" ,perl-test-leaktrace)))
+     (list perl-config-autoconf perl-inc-latest perl-test-leaktrace))
     (home-page "https://metacpan.org/release/List-MoreUtils-XS")
     (synopsis "Provide the stuff missing in List::Util in XS")
     (description "@code{List::MoreUtils::XS} provides some trivial but
@@ -6232,11 +6084,9 @@ commonly needed functionality on lists which is not going to go into
         (base32 "1xw9dzg949997b10y6zgzrmhmk2ap274qivnk0wc1033x2fdk9za"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-leaktrace" ,perl-test-leaktrace)))
+     (list perl-test-leaktrace))
     (inputs
-     `(("perl-exporter-tiny" ,perl-exporter-tiny)
-       ("perl-module-implementation"
-        ,perl-module-implementation)))
+     (list perl-exporter-tiny perl-module-implementation))
     (home-page "https://metacpan.org/release/List-SomeUtils")
     (synopsis "Provide the stuff missing in List::Util")
     (description "@code{List::SomeUtils} provides some trivial but commonly
@@ -6265,7 +6115,7 @@ portions of this module couldn't be compiled on this machine.")
          "1js43bp2dnd8n2rv8clsv749166jnyqnc91k4wkkmw5n4rlbvnaa"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-timedate" ,perl-timedate)))
+     (list perl-timedate))
     (home-page
      "https://metacpan.org/release/MailTools")
     (synopsis "Bundle of ancient email modules")
@@ -6428,8 +6278,7 @@ the argument to the CACHESIZE parameter, will be cached.")
         (base32 "05v04kjaz2ya0zaj4m64gzxpfv4vgxhw5n5h12z373gbg9pkvxvp"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-exporter" ,perl-exporter)
-       ("perl-xsloader" ,perl-xsloader)))
+     (list perl-exporter perl-xsloader))
     (home-page "https://metacpan.org/dist/MIME-Base64")
     (synopsis "Encoding and decoding of base64 strings")
     (description "MIME::Base64 module provides functions to encode and decode
@@ -6475,11 +6324,11 @@ MIME messages on Internet.")
          "0wv9rzx5j1wjm01c3dg48qk9wlbm6iyf91j536idk09xj869ymv4"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-deep" ,perl-test-deep)))
+     (list perl-test-deep))
     (inputs
-     `(("perl-convert-binhex" ,perl-convert-binhex)))
+     (list perl-convert-binhex))
     (propagated-inputs
-     `(("perl-mailtools" ,perl-mailtools)))
+     (list perl-mailtools))
     (home-page
      "https://metacpan.org/release/MIME-tools")
     (synopsis "Tools to manipulate MIME messages")
@@ -6523,8 +6372,7 @@ knowledge of Apache.")
                 "1wmfr19w9y8qys7b32mnj1vmps7qwdahqas71a9p62ac8xw0dwkx"))))
     (build-system perl-build-system)
     (inputs
-     `(("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict)
-       ("perl-sub-exporter" ,perl-sub-exporter)))
+     (list perl-perlio-utf8_strict perl-sub-exporter))
     (home-page "https://metacpan.org/release/Mixin-Linewise")
     (synopsis "Write your linewise code for handles; this does the rest")
     (description "It's boring to deal with opening files for IO, converting
@@ -6548,7 +6396,7 @@ file names are added for you.")
         (base32 "1064k29aavabxj8m20b65rxk7qa3mjmzgmrikvdrxasgx378676s"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (home-page
      "https://metacpan.org/release/Modern-Perl")
     (synopsis
@@ -6571,15 +6419,11 @@ multiple, by now, standard libraries in a Perl program.")
          "077ijxbvamybph4ymamy1i9q2993xb46vf1npxaybjz0mkv0yn3x"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-extutils-installpaths" ,perl-extutils-installpaths)
-       ("perl-extutils-config" ,perl-extutils-config)
-       ("perl-extutils-helpers" ,perl-extutils-helpers)
-       ("perl-test-harness" ,perl-test-harness)))
+     (list perl-extutils-installpaths perl-extutils-config
+           perl-extutils-helpers perl-test-harness))
     (propagated-inputs
-     `(("perl-extutils-installpaths" ,perl-extutils-installpaths)
-       ("perl-extutils-config" ,perl-extutils-config)
-       ("perl-extutils-helpers" ,perl-extutils-helpers)
-       ("perl-test-harness" ,perl-test-harness)))
+     (list perl-extutils-installpaths perl-extutils-config
+           perl-extutils-helpers perl-test-harness))
     (home-page "https://metacpan.org/release/Module-Build-Tiny")
     (synopsis "Tiny replacement for Module::Build")
     (description "Many Perl distributions use a Build.PL file instead of a
@@ -6606,11 +6450,9 @@ has less than 120, yet supports the features needed by most distributions.")
             "0d39fjg9c0n820bk3fb50vvlwhdny4hdl69xmlyzql5xzp4cicsk"))))
     (build-system perl-build-system)
     (native-inputs
-      `(("perl-module-build" ,perl-module-build)))
+      (list perl-module-build))
     (propagated-inputs
-      `(("perl-extutils-cppguess" ,perl-extutils-cppguess)
-        ("perl-extutils-xspp" ,perl-extutils-xspp)
-        ("perl-module-build" ,perl-module-build)))
+      (list perl-extutils-cppguess perl-extutils-xspp perl-module-build))
     (home-page
       "https://metacpan.org/release/Module-Build-WithXSpp")
     (synopsis
@@ -6633,12 +6475,10 @@ processes to make it easier to use for wrapping C++ using XS++
                 "1nrs0b6hmwl3sw3g50b9857qgp5cbbbpl716zwn30h9vwjj2yxhm"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)
-       ("perl-cwd-guard" ,perl-cwd-guard)
-       ("perl-file-copy-recursive" ,perl-file-copy-recursive)
-       ("perl-module-build" ,perl-module-build)))
+     (list perl-capture-tiny perl-cwd-guard perl-file-copy-recursive
+           perl-module-build))
     (propagated-inputs
-     `(("perl-devel-checkcompiler" ,perl-devel-checkcompiler)))
+     (list perl-devel-checkcompiler))
     (home-page "https://metacpan.org/release/Module-Build-XSUtil")
     (synopsis "Module::Build class for building XS modules")
     (description
@@ -6699,11 +6539,9 @@ subcategories.")
          "0vfngw4dbryihqhi7g9ks360hyw8wnpy3hpkzyg0q4y2y091lpy1"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-requires" ,perl-test-requires)))
+     (list perl-test-fatal perl-test-requires))
     (propagated-inputs
-     `(("perl-module-runtime" ,perl-module-runtime)
-       ("perl-try-tiny" ,perl-try-tiny)))
+     (list perl-module-runtime perl-try-tiny))
     (home-page "https://metacpan.org/release/Module-Implementation")
     (synopsis "Loads alternate underlying implementations for a module")
     (description "This module abstracts out the process of choosing one of
@@ -6727,19 +6565,19 @@ implementations.")
          "06q12cm97yh4p7qbm0a2p96996ii6ss59qy57z0f7f9svy6sflqs"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-yaml-tiny" ,perl-yaml-tiny)))
+     (list perl-yaml-tiny))
     (propagated-inputs
-     `(("perl-archive-zip" ,perl-archive-zip)
-       ("perl-file-homedir" ,perl-file-homedir)
-       ("perl-file-remove" ,perl-file-remove)
-       ("perl-json" ,perl-json)
-       ;; The LWP::Simple and LWP::UserAgent modules are recommended, but
-       ;; would cause a circular dependency with (gnu packages web), so we
-       ;; leave it out.  It may be resolved at runtime, however.
-       ;("perl-libwww-perl" ,perl-libwww-perl)
-       ("perl-module-scandeps" ,perl-module-scandeps)
-       ("perl-par-dist" ,perl-par-dist)
-       ("perl-yaml-tiny" ,perl-yaml-tiny)))
+     (list perl-archive-zip
+           perl-file-homedir
+           perl-file-remove
+           perl-json
+           ;; The LWP::Simple and LWP::UserAgent modules are recommended, but
+           ;; would cause a circular dependency with (gnu packages web), so we
+           ;; leave it out.  It may be resolved at runtime, however.
+           ;("perl-libwww-perl" ,perl-libwww-perl)
+           perl-module-scandeps
+           perl-par-dist
+           perl-yaml-tiny))
     ;; TODO: One test requires Test::More >= 0.99, another fails with unicode
     ;; character handling.
     (arguments `(#:tests? #f))
@@ -6766,10 +6604,9 @@ installation version 5.005 or newer.")
          "16skpm804a19gsgxzn1wba3lmvc7cx5q8ly4srpyd82yy47zi5d3"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-exception" ,perl-test-exception)
-       ("perl-test-warn" ,perl-test-warn)))
+     (list perl-test-exception perl-test-warn))
     (propagated-inputs
-     `(("perl-params-util" ,perl-params-util)))
+     (list perl-params-util))
     (home-page "https://metacpan.org/release/Module-Manifest")
     (synopsis "Parse and examine a Perl distribution @file{MANIFEST} file")
     (description
@@ -6814,7 +6651,7 @@ examine the contents, and perform some simple tasks.  It can also load the
         (base32
          "097hy2czwkxlppri32m599ph0xfvfsbf0a5y23a4fdc38v32wc38"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-module-build" ,perl-module-build)))
+    (native-inputs (list perl-module-build))
     (home-page "https://metacpan.org/release/Module-Runtime")
     (synopsis "Perl runtime module handling")
     (description "The functions exported by this module deal with runtime
@@ -6835,10 +6672,9 @@ handling of Perl modules, which are normally handled at compile time.")
          "0x9qfg4pq70v1rl9dfk775fmca7ia308m24vfy8zww4c0dsxqz3h"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-module-runtime" ,perl-module-runtime)
-       ("perl-dist-checkconflicts" ,perl-dist-checkconflicts)))
+     (list perl-module-runtime perl-dist-checkconflicts))
     (home-page "https://metacpan.org/release/Module-Runtime-Conflicts")
     (synopsis "Provide information on conflicts for Module::Runtime")
     (description "This module provides conflicts checking for Module::Runtime,
@@ -6860,7 +6696,7 @@ from Moose::Conflicts and moose-outdated.")
          "0j6r9r99x5p0i6fv06i44wpsvjxj32amjkiqf6pmqpj80jff2k7f"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-requires" ,perl-test-requires)))
+     (list perl-test-requires))
     (home-page "https://metacpan.org/release/Module-ScanDeps")
     (synopsis "Recursively scan Perl code for dependencies")
     (description "Module::ScanDeps is a module to recursively scan Perl
@@ -6881,7 +6717,7 @@ programs for dependencies.")
          "1ip2yg3x517gg8c48crhd52ba864vmyimvm0ibn4ci068mmcpyvc"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build))) ; >= 0.40
+     (list perl-module-build)) ; >= 0.40
     (home-page "https://metacpan.org/release/Module-Util")
     (synopsis "Module name tools and transformations")
     (description "This module provides a few useful functions for manipulating
@@ -6904,15 +6740,15 @@ module names to relative paths.")
          "0y9s6s9jjd519wgal6lwc9id4sadrvfn8gjb51dl602d0kk0l7n5"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-test-fatal))
     (propagated-inputs
-     `(("perl-class-method-modifiers" ,perl-class-method-modifiers)
-       ("perl-class-xsaccessor" ,perl-class-xsaccessor)
-       ("perl-devel-globaldestruction" ,perl-devel-globaldestruction)
-       ("perl-import-into" ,perl-import-into)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-role-tiny" ,perl-role-tiny)
-       ("perl-strictures" ,perl-strictures)))
+     (list perl-class-method-modifiers
+           perl-class-xsaccessor
+           perl-devel-globaldestruction
+           perl-import-into
+           perl-module-runtime
+           perl-role-tiny
+           perl-strictures))
     (home-page "https://metacpan.org/release/Moo")
     (synopsis "Minimalist Object Orientation (with Moose compatibility)")
     (description "Moo is an extremely light-weight Object Orientation system.
@@ -6964,12 +6800,12 @@ Moose and is optimised for rapid startup.")
                 "05gma3q3l15igqrqi8ax8v5cmmvy7s939q3xzs45l1rc7sfx6yd6"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-cpan-meta-check" ,perl-cpan-meta-check)
-       ("perl-dist-checkconflicts" ,perl-dist-checkconflicts)
-       ("perl-test-cleannamespaces" ,perl-test-cleannamespaces)
-       ("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-requires" ,perl-test-requires)
-       ("perl-test-warnings" ,perl-test-warnings)))
+     (list perl-cpan-meta-check
+           perl-dist-checkconflicts
+           perl-test-cleannamespaces
+           perl-test-fatal
+           perl-test-requires
+           perl-test-warnings))
     ;; XXX::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
     ;; # === Other Modules ===
     ;; #
@@ -6997,28 +6833,28 @@ Moose and is optimised for rapid startup.")
     ;; #     Test::Output                  any missing
     ;; #     URI                           any missing
     (propagated-inputs
-     `(("perl-class-load" ,perl-class-load)
-       ("perl-class-load-xs" ,perl-class-load-xs)
-       ("perl-data-optlist" ,perl-data-optlist)
-       ("perl-devel-globaldestruction" ,perl-devel-globaldestruction)
-       ("perl-devel-overloadinfo" ,perl-devel-overloadinfo)
-       ("perl-devel-partialdump" ,perl-devel-partialdump)
-       ("perl-devel-stacktrace" ,perl-devel-stacktrace)
-       ("perl-dist-checkconflicts" ,perl-dist-checkconflicts)
-       ("perl-eval-closure" ,perl-eval-closure)
-       ("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-module-runtime-conflicts" ,perl-module-runtime-conflicts)
-       ("perl-mro-compat" ,perl-mro-compat)
-       ("perl-package-deprecationmanager" ,perl-package-deprecationmanager)
-       ("perl-package-stash" ,perl-package-stash)
-       ("perl-package-stash-xs" ,perl-package-stash-xs)
-       ("perl-params-util" ,perl-params-util)
-       ("perl-scalar-list-utils" ,perl-scalar-list-utils)
-       ("perl-sub-exporter" ,perl-sub-exporter)
-       ("perl-sub-name" ,perl-sub-name)
-       ("perl-task-weaken" ,perl-task-weaken)
-       ("perl-try-tiny" ,perl-try-tiny)))
+     (list perl-class-load
+           perl-class-load-xs
+           perl-data-optlist
+           perl-devel-globaldestruction
+           perl-devel-overloadinfo
+           perl-devel-partialdump
+           perl-devel-stacktrace
+           perl-dist-checkconflicts
+           perl-eval-closure
+           perl-list-moreutils
+           perl-module-runtime
+           perl-module-runtime-conflicts
+           perl-mro-compat
+           perl-package-deprecationmanager
+           perl-package-stash
+           perl-package-stash-xs
+           perl-params-util
+           perl-scalar-list-utils
+           perl-sub-exporter
+           perl-sub-name
+           perl-task-weaken
+           perl-try-tiny))
     (home-page "https://metacpan.org/release/Moose")
     (synopsis "Postmodern object system for Perl 5")
     (description
@@ -7045,10 +6881,9 @@ sentences.")
         (base32 "153r30nggcyyx7ai15dbnba2h5145f8jdsh6wj54298d3zpvgvl2"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)
-       ("perl-test-exception" ,perl-test-exception)))
+     (list perl-module-install perl-test-exception))
     (propagated-inputs
-     `(("perl-moose" ,perl-moose)))
+     (list perl-moose))
     (home-page "https://metacpan.org/release/MooseX-Emulate-Class-Accessor-Fast")
     (synopsis "Emulate Class::Accessor::Fast behavior using Moose attributes")
     (description "This module attempts to emulate the behavior of
@@ -7070,20 +6905,18 @@ private methods are not.")
         (base32 "1j7b2jnf0blxr4czp3vfcnv1h5zj601mrfdm92g1wf5wn9dvxwv3"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-module-build-tiny" ,perl-module-build-tiny)
-       ("perl-path-tiny" ,perl-path-tiny)
-       ("perl-test-deep" ,perl-test-deep)
-       ("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-needs" ,perl-test-needs)
-       ("perl-test-requires" ,perl-test-requires)
-       ("perl-test-trap" ,perl-test-trap)
-       ("perl-test-warnings" ,perl-test-warnings)))
-    (propagated-inputs
-     `(("perl-getopt-long-descriptive" ,perl-getopt-long-descriptive)
-       ("perl-moose" ,perl-moose)
-       ("perl-moosex-role-parameterized" ,perl-moosex-role-parameterized)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
+     (list perl-module-build
+           perl-module-build-tiny
+           perl-path-tiny
+           perl-test-deep
+           perl-test-fatal
+           perl-test-needs
+           perl-test-requires
+           perl-test-trap
+           perl-test-warnings))
+    (propagated-inputs
+     (list perl-getopt-long-descriptive perl-moose
+           perl-moosex-role-parameterized perl-namespace-autoclean))
     (home-page "https://metacpan.org/release/MooseX-Getopt")
     (synopsis "Moose role for processing command line options")
     (description "This is a Moose role which provides an alternate constructor
@@ -7104,8 +6937,7 @@ for creating objects using parameters passed in from the command line.")
          "1y3yxwcjjajm66pvca54cv9fax7a6dy36xqr92x7vzyhfqrw3v69"))))
     (build-system perl-build-system)
     (inputs
-     `(("perl-moose" ,perl-moose)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
+     (list perl-moose perl-namespace-autoclean))
     (home-page "https://metacpan.org/release/MooseX-MarkAsMethods")
     (synopsis "Mark overload code symbols as methods")
     (description "MooseX::MarkAsMethods allows one to easily mark certain
@@ -7130,13 +6962,9 @@ overloads will \"just work\".")
          "1whd10w7bm3dwaj7gpgw40bci9vvb2zmxs4349ifji91hvinwqck"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build-tiny" ,perl-module-build-tiny)
-       ("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-requires" ,perl-test-requires)))
+     (list perl-module-build-tiny perl-test-fatal perl-test-requires))
     (propagated-inputs
-     `(("perl-moose" ,perl-moose)
-       ("perl-moosex-types" ,perl-moosex-types)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
+     (list perl-moose perl-moosex-types perl-namespace-autoclean))
     (home-page "https://metacpan.org/release/MooseX-MethodAttributes")
     (synopsis "Code attribute introspection")
     (description "This module allows code attributes of methods to be
@@ -7157,13 +6985,10 @@ introspected using Moose meta method objects.")
           "0zdaiphc45s5xj0ax5mkijf5d8v6w6yccb3zplgj6f30y7n55gnb"))))
   (build-system perl-build-system)
   (native-inputs
-    `(("perl-moose" ,perl-moose)
-      ("perl-test-fatal" ,perl-test-fatal)))
+    (list perl-moose perl-test-fatal))
   (propagated-inputs
-    `(("perl-list-moreutils" ,perl-list-moreutils)
-      ("perl-module-runtime" ,perl-module-runtime)
-      ("perl-moose" ,perl-moose)
-      ("perl-try-tiny" ,perl-try-tiny)))
+    (list perl-list-moreutils perl-module-runtime perl-moose
+          perl-try-tiny))
   (home-page "https://metacpan.org/release/MooseX-NonMoose")
   (synopsis "Subclassing of non-Moose classes")
   (description "MooseX::NonMoose allows for easily subclassing non-Moose
@@ -7186,13 +7011,10 @@ BUILD methods are called.  It tries to be as non-intrusive as possible.")
         (base32 "1n9ry6gnskkp9ir6s7d5jirn3mh14ydgpmwqz6wcp6d9md358ac8"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-moose" ,perl-moose)
-       ("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-moose perl-test-fatal))
     (propagated-inputs
-     `(("perl-devel-caller" ,perl-devel-caller)
-       ("perl-moose" ,perl-moose)
-       ("perl-params-validate" ,perl-params-validate)
-       ("perl-sub-exporter" ,perl-sub-exporter)))
+     (list perl-devel-caller perl-moose perl-params-validate
+           perl-sub-exporter))
     (home-page "https://metacpan.org/release/MooseX-Params-Validate")
     (synopsis "Extension of Params::Validate using Moose's types")
     (description "This module fills a gap in Moose by adding method parameter
@@ -7213,8 +7035,7 @@ validation to Moose.")
          "17vynkf6m5d039qkr4in1c9lflr8hnwp1fgzdwhj4q6jglipmnrh"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-moose" ,perl-moose)
-       ("perl-moosex-role-parameterized" ,perl-moosex-role-parameterized)))
+     (list perl-moose perl-moosex-role-parameterized))
     (home-page "https://metacpan.org/release/MooseX-RelatedClassRoles")
     (synopsis "Apply roles to a related Perl class")
     (description "This module applies roles to make a subclass instead of
@@ -7234,14 +7055,11 @@ manually setting up a subclass.")
         (base32 "0plx25n80mv9qwhix52z79md0qil616nbcryk2f4216kghpw2ij8"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-cpan-meta-check" ,perl-cpan-meta-check)
-       ("perl-module-build" ,perl-module-build)
-       ("perl-moosex-role-withoverloading" ,perl-moosex-role-withoverloading)
-       ("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-requires" ,perl-test-requires)))
+     (list perl-cpan-meta-check perl-module-build
+           perl-moosex-role-withoverloading perl-test-fatal
+           perl-test-requires))
     (propagated-inputs
-     `(("perl-moose" ,perl-moose)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
+     (list perl-moose perl-namespace-autoclean))
     (home-page "https://metacpan.org/release/MooseX-Role-Parameterized")
     (synopsis "Moose roles with composition parameters")
     (description "Because Moose roles serve many different masters, they
@@ -7266,9 +7084,7 @@ Parameterized roles offer a solution to these (and other) kinds of problems.")
          "0rb8k0dp1a55bm2pr6r0vsi5msvjl1dslfidxp1gj80j7zbrbc4j"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-aliased" ,perl-aliased)
-       ("perl-moose" ,perl-moose)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
+     (list perl-aliased perl-moose perl-namespace-autoclean))
     (home-page "https://metacpan.org/release/MooseX-Role-WithOverloading")
     (synopsis "Roles which support overloading")
     (description "MooseX::Role::WithOverloading allows you to write a
@@ -7291,7 +7107,7 @@ where plain Moose::Roles would lose the overloading.")
          "1mdil9ckgmgr78z59p8wfa35ixn5855ndzx14y01dvfxpiv5gf55"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-moose" ,perl-moose)))
+     (list perl-moose))
     (home-page "https://metacpan.org/release/MooseX-SemiAffordanceAccessor")
     (synopsis "Name your accessors foo() and set_foo()")
     (description "This module does not provide any methods.  Simply loading it
@@ -7314,11 +7130,9 @@ accessor, while set methods are prefixed with \"_set_\".")
          "0ccawja1kabgglrkdw5v82m1pbw189a0mnd33l43rs01d70p6ra8"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-moose" ,perl-moose)
-       ("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-moose perl-test-fatal))
     (propagated-inputs
-     `(("perl-moose" ,perl-moose)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
+     (list perl-moose perl-namespace-autoclean))
     (home-page "https://metacpan.org/release/MooseX-StrictConstructor")
     (synopsis "Strict object constructors for Moose")
     (description "Simply loading this module makes your constructors
@@ -7340,13 +7154,10 @@ that your class does not declare, then it calls Moose->throw_error().")
          "1jjqmcidy4kdgp5yffqqwxrsab62mbhbpvnzdy1rpwnb1savg5mb"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-moose" ,perl-moose)
-       ("perl-test-exception" ,perl-test-exception)))
+     (list perl-moose perl-test-exception))
     (propagated-inputs
-     `(("perl-class-load" ,perl-class-load)
-       ("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-moose" ,perl-moose)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
+     (list perl-class-load perl-list-moreutils perl-moose
+           perl-namespace-autoclean))
     (home-page
      "https://metacpan.org/release/MooseX-Traits-Pluggable")
     (synopsis "Trait loading and resolution for Moose")
@@ -7368,13 +7179,9 @@ search for traits and some extra attributes.")
          "1iq90s1f0xbmr194q0mhnp9wxqxwwilkbdml040ibqbqvfiz87yh"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-requires" ,perl-test-requires)))
+     (list perl-module-build perl-test-fatal perl-test-requires))
     (propagated-inputs
-     `(("perl-carp-clan" ,perl-carp-clan)
-       ("perl-moose" ,perl-moose)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
+     (list perl-carp-clan perl-moose perl-namespace-autoclean))
     (home-page "https://metacpan.org/release/MooseX-Types")
     (synopsis "Organise your Moose types in libraries")
     (description "This package lets you declare types using short names, but
@@ -7396,17 +7203,15 @@ prevent name clashes between packages.")
          "1iir3mdvz892kbbs2q91vjxnhas7811m3d3872m7x8gn6rka57xq"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build-tiny" ,perl-module-build-tiny)
-       ("perl-moose" ,perl-moose)
-       ("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-simple" ,perl-test-simple)))
+     (list perl-module-build-tiny perl-moose perl-test-fatal
+           perl-test-simple))
     (propagated-inputs
-     `(("perl-datetime" ,perl-datetime)
-       ("perl-datetime-locale" ,perl-datetime-locale)
-       ("perl-datetime-timezone" ,perl-datetime-timezone)
-       ("perl-moose" ,perl-moose)
-       ("perl-moosex-types" ,perl-moosex-types)
-       ("perl-namespace-clean" ,perl-namespace-clean)))
+     (list perl-datetime
+           perl-datetime-locale
+           perl-datetime-timezone
+           perl-moose
+           perl-moosex-types
+           perl-namespace-clean))
     (home-page "https://metacpan.org/release/MooseX-Types-DateTime")
     (synopsis "DateTime related constraints and coercions for Moose")
     (description "This module packages several Moose::Util::TypeConstraints
@@ -7427,17 +7232,15 @@ with coercions, designed to work with the DateTime suite of objects.")
         (base32 "15ip1rgaana2p4vww355jb5jxyawim0k58gadkdqx20rfxckmfr1"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build-tiny" ,perl-module-build-tiny)
-       ("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-simple" ,perl-test-simple)))
+     (list perl-module-build-tiny perl-test-fatal perl-test-simple))
     (propagated-inputs
-     `(("perl-datetime" ,perl-datetime)
-       ("perl-datetimex-easy" ,perl-datetimex-easy)
-       ("perl-moose" ,perl-moose)
-       ("perl-moosex-types" ,perl-moosex-types)
-       ("perl-moosex-types-datetime" ,perl-moosex-types-datetime)
-       ("perl-namespace-clean" ,perl-namespace-clean)
-       ("perl-time-duration-parse" ,perl-time-duration-parse)))
+     (list perl-datetime
+           perl-datetimex-easy
+           perl-moose
+           perl-moosex-types
+           perl-moosex-types-datetime
+           perl-namespace-clean
+           perl-time-duration-parse))
     (home-page
      "https://metacpan.org/release/MooseX-Types-DateTime-MoreCoercions")
     (synopsis "Extensions to MooseX::Types::DateTime")
@@ -7459,15 +7262,10 @@ all coercions and constraints are inherited.")
         (base32 "1x1vb96hcrd96bzs73w0lb04jr0fvax1ams38qlzkp2kh9vx6dz0"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build-tiny" ,perl-module-build-tiny)
-       ("perl-namespace-clean" ,perl-namespace-clean)
-       ("perl-moose" ,perl-moose)
-       ("perl-test-fatal" ,perl-test-fatal)
-       ("perl-class-load" ,perl-class-load)))
+     (list perl-module-build-tiny perl-namespace-clean perl-moose
+           perl-test-fatal perl-class-load))
     (propagated-inputs
-     `(("perl-module-runtime" ,perl-module-runtime)
-       ("perl-moosex-types" ,perl-moosex-types)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
+     (list perl-module-runtime perl-moosex-types perl-namespace-autoclean))
     (home-page "https://metacpan.org/release/MooseX-Types-LoadableClass")
     (synopsis "ClassName type constraints for Moose")
     (description "MooseX::Types::LoadableClass provides a ClassName type
@@ -7490,10 +7288,8 @@ constraint with coercion to load the class.")
          "1m9jvrqcidiabdih211byadwnnkygafq54r2ljnf1akqdrjimy9g"))))
     (build-system perl-build-system)
     (inputs
-     `(("perl-data-optlist" ,perl-data-optlist)
-       ("perl-import-into" ,perl-import-into)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-moo" ,perl-moo)))
+     (list perl-data-optlist perl-import-into perl-module-runtime
+           perl-moo))
     (home-page "https://metacpan.org/release/MooX")
     (synopsis
      "Using Moo and MooX:: packages the most lazy way")
@@ -7513,15 +7309,14 @@ constraint with coercion to load the class.")
         (base32 "1xbhmq07v9z371ygkyghva9aryhc22kwbzn5qwkp72c0ma6z4gwl"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)
-       ("perl-list-moreutils" ,perl-list-moreutils)))
+     (list perl-capture-tiny perl-list-moreutils))
     (propagated-inputs
-     `(("perl-module-pluggable" ,perl-module-pluggable)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-moo" ,perl-moo)
-       ("perl-package-stash" ,perl-package-stash)
-       ("perl-params-util" ,perl-params-util)
-       ("perl-regexp-common" ,perl-regexp-common)))
+     (list perl-module-pluggable
+           perl-module-runtime
+           perl-moo
+           perl-package-stash
+           perl-params-util
+           perl-regexp-common))
     (home-page "https://metacpan.org/release/MooX-Cmd")
     (synopsis "Giving an easy Moo style way to make command organized CLI apps")
     (description "This package eases the writing of command line utilities,
@@ -7545,17 +7340,15 @@ most specific one) is instantiated.")
          "1zrpz4mzngnhaap6988is0w0aarilfj4kb1yc8hvfqna69lywac0"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-hash-merge" ,perl-hash-merge)
-       ("perl-json" ,perl-json)
-       ("perl-moox-cmd" ,perl-moox-cmd)))
+     (list perl-hash-merge perl-json perl-moox-cmd))
     (propagated-inputs
-     `(("perl-config-any" ,perl-config-any)
-       ("perl-file-configdir" ,perl-file-configdir)
-       ("perl-file-find-rule" ,perl-file-find-rule)
-       ("perl-hash-merge" ,perl-hash-merge)
-       ("perl-moo" ,perl-moo)
-       ("perl-moox-file-configdir" ,perl-moox-file-configdir)
-       ("perl-namespace-clean" ,perl-namespace-clean)))
+     (list perl-config-any
+           perl-file-configdir
+           perl-file-find-rule
+           perl-hash-merge
+           perl-moo
+           perl-moox-file-configdir
+           perl-namespace-clean))
     (home-page "https://metacpan.org/release/MooX-ConfigFromFile")
     (synopsis "Moo eXtension for initializing objects from config file")
     (description "This module is intended to easily load initialization values
@@ -7577,9 +7370,7 @@ building is done in @code{MooX::ConfigFromFile::Role}---using
         (base32 "1b033injzk9d8clgip67ps5j5bpkrnag28q89ddwhrgqx12i3m7q"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-file-configdir" ,perl-file-configdir)
-       ("perl-moo" ,perl-moo)
-       ("perl-namespace-clean" ,perl-namespace-clean)))
+     (list perl-file-configdir perl-moo perl-namespace-clean))
     (home-page "https://metacpan.org/release/MooX-File-ConfigDir")
     (synopsis "Moo eXtension for @code{File::ConfigDir}")
     (description "This module is a helper for easily finding configuration
@@ -7602,18 +7393,12 @@ installing configuration files or for finding any piece of settings.")
         (base32 "04kcyflg49rclxa1nm035c05jpyvhdacjyy1wklbgv4li3im6qvi"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-moox-types-mooselike"
-        ,perl-moox-types-mooselike)
-       ("perl-test-exception" ,perl-test-exception)
-       ("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-moox-types-mooselike perl-test-exception perl-test-fatal))
     (inputs
-     `(("perl-class-method-modifiers"
-        ,perl-class-method-modifiers)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-moo" ,perl-moo)
-       ("perl-role-tiny" ,perl-role-tiny)))
+     (list perl-class-method-modifiers perl-module-runtime perl-moo
+           perl-role-tiny))
     (propagated-inputs
-     `(("perl-data-perl" ,perl-data-perl)))
+     (list perl-data-perl))
     (home-page
      "https://metacpan.org/release/MooX-HandlesVia")
     (synopsis "NativeTrait-like behavior for Moo")
@@ -7637,14 +7422,11 @@ an external class to the given attribute.")
         (base32 "0kjy86rrpzfy6w5r9ykjq7njwdnvp7swd6r2k4gfrh3picz3kdhz"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-requires" ,perl-test-requires)))
+     (list perl-test-fatal perl-test-requires))
     (inputs
-     `(("perl-moo" ,perl-moo)
-       ("perl-moox" ,perl-moox)
-       ("perl-moox-handlesvia" ,perl-moox-handlesvia)))
+     (list perl-moo perl-moox perl-moox-handlesvia))
     (propagated-inputs
-     `(("perl-type-tiny" ,perl-type-tiny)))
+     (list perl-type-tiny))
     (home-page "https://metacpan.org/release/MooX-late")
     (synopsis "Easily translate Moose code to Moo")
     (description
@@ -7674,34 +7456,34 @@ MooX::HandlesVia.
          "14kz51hybxx8vcm4wg36f0qa64aainw7i2sqmqxg20c3qvczyvj2"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)
-       ("perl-import-into" ,perl-import-into)
-       ("perl-module-build" ,perl-module-build)
-       ("perl-moo" ,perl-moo)
-       ("perl-moose" ,perl-moose)
-       ("perl-moox-cmd" ,perl-moox-cmd)
-       ("perl-namespace-clean" ,perl-namespace-clean)
-       ("perl-role-tiny" ,perl-role-tiny)
-       ("perl-test-requires" ,perl-test-requires)
-       ("perl-test-trap" ,perl-test-trap)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-try-tiny" ,perl-try-tiny)))
-    (propagated-inputs
-     `(("perl-config-any" ,perl-config-any)
-       ("perl-moox-configfromfile" ,perl-moox-configfromfile)
-       ("perl-data-record" ,perl-data-record)
-       ("perl-file-configdir" ,perl-file-configdir)
-       ("perl-file-find-rule" ,perl-file-find-rule)
-       ("perl-file-sharedir" ,perl-file-sharedir)
-       ("perl-getopt-long-descriptive" ,perl-getopt-long-descriptive)
-       ("perl-json-maybexs" ,perl-json-maybexs)
-       ("perl-libintl-perl" ,perl-libintl-perl)
-       ("perl-moox-configfromfile" ,perl-moox-configfromfile)
-       ("perl-moox-file-configdir" ,perl-moox-file-configdir)
-       ("perl-path-class" ,perl-path-class)
-       ("perl-regexp-common" ,perl-regexp-common)
-       ("perl-term-size-any" ,perl-term-size-any)
-       ("perl-unicode-linebreak" ,perl-unicode-linebreak)))
+     (list perl-capture-tiny
+           perl-import-into
+           perl-module-build
+           perl-moo
+           perl-moose
+           perl-moox-cmd
+           perl-namespace-clean
+           perl-role-tiny
+           perl-test-requires
+           perl-test-trap
+           perl-test-pod
+           perl-try-tiny))
+    (propagated-inputs
+     (list perl-config-any
+           perl-moox-configfromfile
+           perl-data-record
+           perl-file-configdir
+           perl-file-find-rule
+           perl-file-sharedir
+           perl-getopt-long-descriptive
+           perl-json-maybexs
+           perl-libintl-perl
+           perl-moox-configfromfile
+           perl-moox-file-configdir
+           perl-path-class
+           perl-regexp-common
+           perl-term-size-any
+           perl-unicode-linebreak))
     (home-page "https://metacpan.org/release/MooX-Options")
     (synopsis "Explicit Options eXtension for Object Class")
     (description "Create a command line tool with your Mo, Moo, Moose objects.
@@ -7727,11 +7509,9 @@ generate a command line tool.")
           "0vvjgz7xbfmf69yav7sxsxmvklqv835xvh7h47w0apxmlkm9fjgr"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-test-fatal))
     (propagated-inputs
-     `(("perl-class-method-modifiers" ,perl-class-method-modifiers)
-       ("perl-moo" ,perl-moo)
-       ("perl-strictures" ,perl-strictures)))
+     (list perl-class-method-modifiers perl-moo perl-strictures))
     (home-page "https://metacpan.org/release/MooX-StrictConstructor")
     (synopsis "Make Moo-based object constructors blow up on unknown attributes")
     (description
@@ -7753,11 +7533,9 @@ does not declare, then it dies.")
         (base32 "1d6jg9x3p7gm2r0xmbcag374a44gf5pcga2swvxhlhzakfm80dqx"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-moo" ,perl-moo)
-       ("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-moo perl-test-fatal))
     (propagated-inputs
-     `(("perl-module-runtime" ,perl-module-runtime)
-       ("perl-strictures" ,perl-strictures)))
+     (list perl-module-runtime perl-strictures))
     (home-page "https://metacpan.org/release/MooX-Types-MooseLike")
     (synopsis "Moosish types and type builder")
     (description "MooX::Types::MooseLike provides a possibility to build your
@@ -7780,14 +7558,14 @@ fields in Moo-based classes.")
               "1vijm8wkyws1jhnqmx104585q3srw9z1crcpy1zlcfhm8qww53ff"))))
   (build-system perl-build-system)
   (native-inputs
-   `(("perl-module-build" ,perl-module-build)
-     ("perl-module-build-xsutil" ,perl-module-build-xsutil)
-     ("perl-test-exception" ,perl-test-exception)
-     ("perl-test-fatal" ,perl-test-fatal)
-     ("perl-test-leaktrace" ,perl-test-leaktrace)
-     ("perl-test-output" ,perl-test-output)
-     ("perl-test-requires" ,perl-test-requires)
-     ("perl-try-tiny" ,perl-try-tiny)))
+   (list perl-module-build
+         perl-module-build-xsutil
+         perl-test-exception
+         perl-test-fatal
+         perl-test-leaktrace
+         perl-test-output
+         perl-test-requires
+         perl-try-tiny))
   (home-page "https://github.com/gfx/p5-Mouse")
   (synopsis "Fast Moose-compatible object system for perl5")
   (description
@@ -7808,11 +7586,9 @@ subset of the functionality for reduced startup time.")
                 "0pnbchkxfz9fwa8sniyjqp0mz75b3k2fafq9r09znbbh51dbz9gq"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-any-moose" ,perl-any-moose)
-       ("perl-module-install" ,perl-module-install)
-       ("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-any-moose perl-module-install perl-test-fatal))
     (propagated-inputs
-     `(("perl-mouse" ,perl-mouse)))
+     (list perl-mouse))
     (home-page "https://metacpan.org/release/MouseX-NativeTraits")
     (synopsis "Extend attribute interfaces for Mouse")
     (description
@@ -7857,11 +7633,9 @@ and libraries based on OpenSSL.")
          "0prchsg547ziysjl8ghiid6ph3m2xnwpsrwrjymibga7fhqi9sqj"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check)
-       ("perl-extutils-depends" ,perl-extutils-depends)))
+     (list perl-b-hooks-op-check perl-extutils-depends))
     (propagated-inputs
-     `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check)
-       ("perl-lexical-sealrequirehints" ,perl-lexical-sealrequirehints)))
+     (list perl-b-hooks-op-check perl-lexical-sealrequirehints))
     (home-page "https://metacpan.org/release/multidimensional")
     (synopsis "Disable multidimensional array emulation")
     (description
@@ -7902,12 +7676,9 @@ Perl (back to 5.6.0).")
         (base32 "012qqs561xyyhm082znmzsl8lz4n299fa6p0v246za2l9bkdiss5"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-needs" ,perl-test-needs)))
+     (list perl-module-build perl-test-needs))
     (propagated-inputs
-     `(("perl-b-hooks-endofscope" ,perl-b-hooks-endofscope)
-       ("perl-namespace-clean" ,perl-namespace-clean)
-       ("perl-sub-identify" ,perl-sub-identify)))
+     (list perl-b-hooks-endofscope perl-namespace-clean perl-sub-identify))
     (home-page "https://metacpan.org/release/namespace-autoclean")
     (synopsis "Keep imports out of your namespace")
     (description "The namespace::autoclean pragma will remove all imported
@@ -7933,8 +7704,7 @@ anything that looks like a method.")
          "17dg64pd4bwi2ad3p8ykwys1zha7kg8a8ykvks7wfg8q7qyah44a"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-package-stash" ,perl-package-stash)
-       ("perl-b-hooks-endofscope" ,perl-b-hooks-endofscope)))
+     (list perl-package-stash perl-b-hooks-endofscope))
     (home-page "https://metacpan.org/release/namespace-clean")
     (synopsis "Keep imports and functions out of your namespace")
     (description "The namespace::clean pragma will remove all previously
@@ -8004,8 +7774,7 @@ system threads instead of Perl threads.")
         (base32 "1aiy7adirk3wpwlczd8sldi9k1dray0jrg1lbcrcw97zwcrkciam"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-nowarnings" ,perl-test-nowarnings)))
+     (list perl-module-build perl-test-nowarnings))
     (home-page "https://metacpan.org/release/Net-IDN-Encode")
     (synopsis "Internationalizing Domain Names in Applications (IDNA)")
     (description
@@ -8116,7 +7885,7 @@ number exists in a given range, and to be able to manipulate the range.")
         (base32 "12k90c19ly93ib1p6sm3k7sbnr2h5dbywkdmnff2ngm99p4m68c4"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)))
+     (list perl-module-install))
     (home-page "https://metacpan.org/release/Object-Signature")
     (synopsis "Generate cryptographic signatures for objects")
     (description "Object::Signature is an abstract base class that you can
@@ -8162,9 +7931,7 @@ documents within a single file.")
           (base32
             "1q3lz168q081iwl9jg21fbzhp9la79gav9mv6nmh2jab83s2l3mj"))))
     (build-system perl-build-system)
-    (inputs `(("freeglut" ,freeglut)
-              ("libxi" ,libxi)
-              ("libxmu" ,libxmu)))
+    (inputs (list freeglut libxi libxmu))
     (arguments
      '(#:tests? #f ; test.pl fails with our empty glversion.txt, while
                    ; the package still seems to work on the examples
@@ -8219,8 +7986,7 @@ and FreeGLUT.")
          "1fj1fakkfklf2iwzsl64vfgshya3jgm6vhxiphw12wlac9g2il0m"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-sub-exporter" ,perl-sub-exporter)
-       ("perl-params-util" ,perl-params-util)))
+     (list perl-sub-exporter perl-params-util))
     (home-page "https://metacpan.org/release/Package-Anon")
     (synopsis "Anonymous packages")
     (description "This module allows for anonymous packages that are
@@ -8242,13 +8008,9 @@ instance, not by name.")
          "0jv8svfh1c1q4vxlkf8vjfbdq3n2sj3nx5llv1qrhp1b93d3lx0x"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-requires" ,perl-test-requires)
-       ("perl-test-output" ,perl-test-output)))
+     (list perl-test-fatal perl-test-requires perl-test-output))
     (propagated-inputs
-     `(("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-params-util" ,perl-params-util)
-       ("perl-sub-install" ,perl-sub-install)))
+     (list perl-list-moreutils perl-params-util perl-sub-install))
     (arguments `(#:tests? #f))          ;XXX: Failing for some reason...
     (home-page "https://metacpan.org/release/Package-DeprecationManager")
     (synopsis "Manage deprecation warnings for your distribution")
@@ -8269,14 +8031,11 @@ one or more modules.")
         (base32 "0zrs4byhlpq5ybnl0fd3y6pfzair6i2dyvzn7f7a7pgj9n2fi3n5"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-dist-checkconflicts" ,perl-dist-checkconflicts)
-       ("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-requires" ,perl-test-requires)
-       ("perl-package-anon" ,perl-package-anon)))
+     (list perl-dist-checkconflicts perl-test-fatal perl-test-requires
+           perl-package-anon))
     (propagated-inputs
-     `(("perl-module-implementation" ,perl-module-implementation)
-       ("perl-dist-checkconflicts" ,perl-dist-checkconflicts)
-       ("perl-package-stash-xs" ,perl-package-stash-xs)))
+     (list perl-module-implementation perl-dist-checkconflicts
+           perl-package-stash-xs))
     (home-page "https://metacpan.org/release/Package-Stash")
     (synopsis "Routines for manipulating stashes")
     (description "Manipulating stashes (Perl's symbol tables) is occasionally
@@ -8297,9 +8056,7 @@ of that behind a simple API.")
         (base32 "1akqk10qxwk798qppajqbczwmhy4cs9g0lg961m3vq218slnnryk"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-requires" ,perl-test-requires)
-       ("perl-package-anon" ,perl-package-anon)))
+     (list perl-test-fatal perl-test-requires perl-package-anon))
     (home-page "https://metacpan.org/release/Package-Stash-XS")
     (synopsis "Faster implementation of the Package::Stash API")
     (description "This is a backend for Package::Stash, which provides the
@@ -8344,7 +8101,7 @@ is particularly useful for debugging.")
          "0wm4wp6p3ah5z212jl12728z68nmxmfr0f03z1jpvdzffnc2xppi"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-warn" ,perl-test-warn)))
+     (list perl-test-warn))
     (home-page "https://metacpan.org/release/Parallel-ForkManager")
     (synopsis "Simple parallel processing fork manager")
     (description "@code{Parallel::ForkManager} is intended for use in
@@ -8367,11 +8124,9 @@ processes to be forked off should be limited.")
         "052r198xyrsv8wz21gijdigz2cgnidsa37nvyfzdiz4rv1fc33ir"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-module-build perl-test-pod perl-test-pod-coverage))
     (propagated-inputs
-     `(("perl-devel-callchecker" ,perl-devel-callchecker)))
+     (list perl-devel-callchecker))
     (home-page "https://metacpan.org/release/Params-Classify")
     (synopsis "Argument type classification")
     (description "This module provides various type-testing functions.
@@ -8421,11 +8176,9 @@ checking parameters easier.")
          "0cwpf8yxwyxbnwhf6rx4wnaq1q38j38i34a78a005shb8gxqv9j9"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-requires" ,perl-test-requires)))
+     (list perl-module-build perl-test-fatal perl-test-requires))
     (propagated-inputs
-     `(("perl-module-implementation" ,perl-module-implementation)))
+     (list perl-module-implementation))
     (home-page "https://metacpan.org/release/Params-Validate")
     (synopsis "Validate method/function parameters")
     (description "The Params::Validate module allows you to validate method or
@@ -8446,14 +8199,10 @@ function call parameters to an arbitrary level of specificity.")
     (build-system perl-build-system)
     (native-inputs
      ;; For tests.
-     `(("perl-test-without-module" ,perl-test-without-module)
-       ("perl-test2-plugin-nowarnings" ,perl-test2-plugin-nowarnings)
-       ("perl-test2-suite" ,perl-test2-suite)
-       ("perl-type-tiny" ,perl-type-tiny)))
-    (propagated-inputs
-     `(("perl-eval-closure" ,perl-eval-closure)
-       ("perl-exception-class" ,perl-exception-class)
-       ("perl-specio" ,perl-specio)))
+     (list perl-test-without-module perl-test2-plugin-nowarnings
+           perl-test2-suite perl-type-tiny))
+    (propagated-inputs
+     (list perl-eval-closure perl-exception-class perl-specio))
     (home-page "https://github.com/houseabsolute/Params-ValidationCompiler")
     (synopsis "Build an optimized subroutine parameter validator")
     (description "This module creates a customized, highly efficient
@@ -8498,7 +8247,7 @@ distributions.")
         (base32
          "1kj8q8dmd8jci94w5arav59nkp0pkxrkliz4n8n6yf02hsa82iv5"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-module-build" ,perl-module-build)))
+    (native-inputs (list perl-module-build))
     (home-page "https://metacpan.org/release/Path-Class")
     (synopsis "Path specification manipulation")
     (description "Path::Class is a module for manipulation of file and
@@ -8529,7 +8278,7 @@ directory specifications in a cross-platform manner.")
                                "/bin/pwd'")))
              #t)))))
     (inputs
-     `(("coreutils" ,coreutils)))
+     (list coreutils))
     (home-page "https://metacpan.org/release/PathTools")
     (synopsis "Tools for working with directory and file names")
     (description "This package provides functions to work with directory and
@@ -8554,7 +8303,7 @@ file names.")
     ;;  `(("perl-test-failwarnings" ,perl-test-failwarnings)
     ;;    ("perl-test-mockrandom" ,perl-test-mockrandom)))
     (inputs
-     `(("perl-unicode-utf8" ,perl-unicode-utf8)))
+     (list perl-unicode-utf8))
     (home-page "https://metacpan.org/release/Path-Tiny")
     (synopsis "File path utility")
     (description "This module provides a small, fast utility for working
@@ -8575,10 +8324,9 @@ with file paths.")
                 "0nlks4p33d08h0fiv6aivinalf9f9zdkgkxqvvbbvdkvyh4z29a9"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-exception" ,perl-test-exception)
-       ("perl-test-memory-cycle" ,perl-test-memory-cycle)))
+     (list perl-test-exception perl-test-memory-cycle))
     (propagated-inputs
-     `(("perl-font-ttf" ,perl-font-ttf)))
+     (list perl-font-ttf))
     (home-page "https://metacpan.org/release/PDF-API2")
     (synopsis "Facilitates the creation and modification of PDF files")
     (description "This Perl module facilitates the creation and modification
@@ -8599,7 +8347,7 @@ of PDF files.")
                 "1jw1ri8nkm4ck73arbsld1y2qgj2b9ir01y8mzb3mjs6w0pkz8w3"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-exception" ,perl-test-exception)))
+     (list perl-test-exception))
     (home-page
      "https://metacpan.org/release/PerlIO-utf8_strict")
     (synopsis "Fast and correct UTF-8 IO")
@@ -8623,8 +8371,7 @@ for correctness.")
        "1zd0zm6vxapw6bds3ipymkbzam70p3j3rm48794qy11620r22dgx"))))
    (build-system perl-build-system)
    (native-inputs
-    `(("perl-file-sharedir-install" ,perl-file-sharedir-install)
-      ("perl-yaml-libyaml" ,perl-yaml-libyaml)))
+    (list perl-file-sharedir-install perl-yaml-libyaml))
    (home-page "https://metacpan.org/release/Pegex")
    (synopsis "Acmeist PEG Parser Framework")
    (description "Pegex is an Acmeist parser framework.  It allows you to easily
@@ -8649,8 +8396,7 @@ available.")
          "01xifj83dv492lxixijmg6va02rf3ydlxly0a9slmx22r6qa1drh"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-devel-symdump" ,perl-devel-symdump)
-       ("perl-pod-parser" ,perl-pod-parser)))
+     (list perl-devel-symdump perl-pod-parser))
     (home-page "https://metacpan.org/release/Pod-Coverage")
     (synopsis "Check for comprehensive documentation of a module")
     (description "This module provides a mechanism for determining if the pod
@@ -8714,7 +8460,7 @@ used for writing documentation for Perl and for Perl modules.")
         (base32
          "04dcn2n4rfkj8p24vj2p17vvis40l87pf2vdqp0vqm5jg3fjnn16"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-module-build" ,perl-module-build)))
+    (native-inputs (list perl-module-build))
     (arguments `(#:tests? #f))          ; TODO: Timezone test failures
     (home-page "https://metacpan.org/release/POSIX-strftime-Compiler")
     (synopsis "GNU C library compatible strftime for loggers and servers")
@@ -8739,16 +8485,10 @@ applications.")
     (arguments
      `(#:tests? #f))                    ;FIXME: some tests fail
     (native-inputs
-     `(("perl-class-inspector" ,perl-class-inspector)
-       ("perl-test-deep" ,perl-test-deep)
-       ("perl-test-nowarnings" ,perl-test-nowarnings)
-       ("perl-test-object" ,perl-test-object)
-       ("perl-test-subcalls" ,perl-test-subcalls)))
+     (list perl-class-inspector perl-test-deep perl-test-nowarnings
+           perl-test-object perl-test-subcalls))
     (propagated-inputs
-     `(("perl-clone" ,perl-clone)
-       ("perl-io-string" ,perl-io-string)
-       ("perl-params-util" ,perl-params-util)
-       ("perl-task-weaken" ,perl-task-weaken)))
+     (list perl-clone perl-io-string perl-params-util perl-task-weaken))
     (home-page "https://metacpan.org/release/PPI")
     (synopsis "Parse, analyze and manipulate Perl (without Perl)")
     (description "The PPI module parses, analyzes and manipulates Perl
@@ -8794,7 +8534,7 @@ Module::Build project, but has been externalized here for general use.")
          (add-after 'unpack 'set-EDITOR
            (lambda _ (setenv "EDITOR" "echo") #t)))))
     (propagated-inputs
-     `(("perl-carp-assert" ,perl-carp-assert)))
+     (list perl-carp-assert))
     (home-page "https://metacpan.org/release/Proc-InvokeEditor")
     (synopsis "Interface to external editor from Perl")
     (description "This module provides the ability to supply some text to an
@@ -8814,7 +8554,7 @@ external text editor, have it edited by the user, and retrieve the results.")
         (base32
          "165zcf9lpijdpkx82za0g9rx8ckjnhipmcivdkyzshl8jmp1bl4v"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-module-build" ,perl-module-build)))
+    (native-inputs (list perl-module-build))
     (home-page "https://metacpan.org/release/Readonly")
     (synopsis "Create read-only scalars, arrays, hashes")
     (description "This module provides a facility for creating non-modifiable
@@ -8903,10 +8643,9 @@ and @code{deserialize_regexp}.")
          "0ak60hakn0ixmsiw403si0lf5pagq5r6wjgl7p0pr979nlcikfmd"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-namespace-autoclean" ,perl-namespace-autoclean)
-       ("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-namespace-autoclean perl-test-fatal))
     (propagated-inputs
-     `(("perl-class-method-modifiers" ,perl-class-method-modifiers)))
+     (list perl-class-method-modifiers))
     (home-page "https://metacpan.org/release/Role-Tiny")
     (synopsis "Roles, as a slice of Moose")
     (description "Role::Tiny is a minimalist role composition tool.")
@@ -8959,9 +8698,7 @@ safely on things that may not be objects.")
         "0llbsqk7rsg9p7l1f4yk6iv7wij91gvavprsqhnb04w7nz4ifjpm"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-module-build perl-test-pod perl-test-pod-coverage))
     (home-page "https://metacpan.org/release/Scalar-String")
     (synopsis "String aspects of scalars")
     (description "@code{Scalar::String} is about the string part of
@@ -9031,7 +8768,7 @@ collector.")
       (base32 "0jf3vdmdgxx6a9xrfwnbbs9g37i1i6qhfg5qwln8x5i280701m3g"))))
    (build-system perl-build-system)
    (native-inputs
-    `(("perl-extutils-cppguess" ,perl-extutils-cppguess)))
+    (list perl-extutils-cppguess))
    (home-page "https://metacpan.org/release/Set-IntervalTree")
    (synopsis "Perform range-based lookups on sets of ranges")
    (description "This package provides an efficient mechanism to look up
@@ -9070,8 +8807,7 @@ optimized for sets that have long runs of consecutive integers.")
         (base32 "040q819l9x55j0hjhfvc153451syvjffw3d22gs398sd23mwzzsy"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-moose" ,perl-moose)
-       ("perl-test-leaktrace" ,perl-test-leaktrace)))
+     (list perl-moose perl-test-leaktrace))
     (home-page "https://metacpan.org/release/Set-Object")
     (synopsis "Unordered collections of Perl Objects")
     (description "Set::Object provides efficient sets, unordered collections
@@ -9153,13 +8889,13 @@ word-characters are compared lexically.")
          "1s5xd9awwrzc94ymimjkxqs6jq513wwlmwwarxaklvg2hk4lps0l"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-devel-stacktrace" ,perl-devel-stacktrace)
-       ("perl-eval-closure" ,perl-eval-closure)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-mro-compat" ,perl-mro-compat)
-       ("perl-role-tiny" ,perl-role-tiny)
-       ("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-needs" ,perl-test-needs)))
+     (list perl-devel-stacktrace
+           perl-eval-closure
+           perl-module-runtime
+           perl-mro-compat
+           perl-role-tiny
+           perl-test-fatal
+           perl-test-needs))
     (home-page "https://metacpan.org/release/Specio")
     (synopsis "Classes for representing type constraints and coercion")
     (description "The Specio distribution provides classes for representing type
@@ -9228,7 +8964,7 @@ its return value is going to be immediately used.")
                 "0y4zf5qkpayp4kkg7lw9ydbbin1z99m6xvy02fgacjbfw4ai9zh9"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-want" ,perl-want)))
+     (list perl-want))
     (home-page "https://metacpan.org/release/Contextual-Return")
     (synopsis "Create context-sensitive return values")
     (description "This module provides a collection of named blocks that allow
@@ -9250,7 +8986,7 @@ which it is called.")
                 "1ywl398z42hz9w1k0waf1caa6agz8jzsjlf4rzs1lgpx2mbcwmb8"))))
     (build-system perl-build-system)
     (inputs
-     `(("perl-number-format" ,perl-number-format)))
+     (list perl-number-format))
     (home-page "https://metacpan.org/release/Statistics-Basic")
     (synopsis "Collection of very basic statistics modules")
     (description "This package provides basic statistics functions like
@@ -9271,12 +9007,10 @@ which it is called.")
                 "1i3bskwibp54c9a2wx8gzr3hyds6mmhr3d550g8j6893005v3bgq"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-contextual-return" ,perl-contextual-return)
-       ("perl-math-cephes" ,perl-math-cephes)
-       ("perl-math-matrixreal" ,perl-math-matrixreal)
-       ("perl-text-simpletable" ,perl-text-simpletable)))
+     (list perl-contextual-return perl-math-cephes perl-math-matrixreal
+           perl-text-simpletable))
     (home-page "https://metacpan.org/release/Statistics-PCA")
     (synopsis "Perl implementation of Principal Component Analysis")
     (description "This package provides the Statistics::PCA module, an
@@ -9296,7 +9030,7 @@ implementation of @dfn{Principal Component Analysis} (PCA).")
         (base32 "1nkln4fm4962b5jk1dp6lf635nnrj5a5pg1a5xmchvrfrc3asggw"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-xsloader" ,perl-xsloader)))
+     (list perl-xsloader))
     (home-page "https://metacpan.org/dist/Storable")
     (synopsis "Persistence for Perl data structures")
     (description "Storable brings persistence to your Perl data structures
@@ -9423,8 +9157,7 @@ removing double-quotes, and truncating to fit within a desired length.")
          "0mlwm0rirv46gj4h072q8gdync5zxxsxy8p028gdyrhczl942dc3"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-params-util" ,perl-params-util)
-       ("perl-sub-exporter" ,perl-sub-exporter)))
+     (list perl-params-util perl-sub-exporter))
     (home-page "https://metacpan.org/release/String-Formatter")
     (synopsis "Build your own sprintf-like functions")
     (description
@@ -9447,7 +9180,7 @@ fixed string interpolation, and simple width-matching.")
          "18nxl1vgkcx0r7ifkmbl9fp73f8ihiqhqqf3vq6sj5b3cgawrfsw"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-sub-exporter" ,perl-sub-exporter)))
+     (list perl-sub-exporter))
     (home-page "https://metacpan.org/release/String-RewritePrefix")
     (synopsis "Rewrite strings based on a set of known prefixes")
     (description "This module allows you to rewrite strings based on a set of
@@ -9489,7 +9222,7 @@ that they won't be changed.")
                 "1n9lc5dr66sg89hym47764fyfms7vrxrhwvdps2x8x8gxly7rsdl"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-unicode-linebreak" ,perl-unicode-linebreak)))
+     (list perl-unicode-linebreak))
     (home-page "https://metacpan.org/release/String-Print")
     (synopsis "String printing alternatives to printf")
     (description
@@ -9501,7 +9234,7 @@ a functional interface.")
 (define-public perl-sub-exporter
   (package
     (name "perl-sub-exporter")
-    (version "0.987")
+    (version "0.988")
     (source
      (origin
        (method url-fetch)
@@ -9510,11 +9243,10 @@ a functional interface.")
              version ".tar.gz"))
        (sha256
         (base32
-         "1ml3n1ck4ln9qjm2mcgkczj1jb5n1fkscz9c4x23v4db0glb4g2l"))))
+         "03040vk227icdkb0hvxplck2y6rglj67s1rgf12z3465ss3lhci3"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-data-optlist" ,perl-data-optlist)
-       ("perl-params-util" ,perl-params-util)))
+     (list perl-data-optlist perl-params-util))
     (home-page "https://metacpan.org/release/Sub-Exporter")
     (synopsis "Sophisticated exporter for custom-built routines")
     (description
@@ -9535,7 +9267,7 @@ custom-built routines.")
         (base32
          "0mn0x8mkh36rrsr58s1pk4srwxh2hbwss7sv630imnk49navfdfm"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-sub-exporter" ,perl-sub-exporter)))
+    (native-inputs (list perl-sub-exporter))
     (home-page "https://metacpan.org/release/Sub-Exporter-Progressive")
     (synopsis "Only use Sub::Exporter if you need it")
     (description "Sub::Exporter is an incredibly powerful module, but with
@@ -9579,7 +9311,7 @@ references.")
           "1snhrmc6gpw2zjnj7zvvqj69mlw711bxah6kk4dg5vxxjvb5cc7a"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-importer" ,perl-importer)))
+     (list perl-importer))
     (home-page "https://metacpan.org/release/Sub-Info")
     (synopsis "Tool to inspect subroutines")
     (description "This package provides tools for inspecting subroutines
@@ -9622,7 +9354,7 @@ can see them.")
          "05viq8scqk29g964fsfvls2rhvlb8myz3jblwh5c2ivhw3gfjcmx"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-devel-checkbin" ,perl-devel-checkbin)))
+     (list perl-devel-checkbin))
     (home-page "https://metacpan.org/release/Sub-Name")
     (synopsis "(Re)name a sub")
     (description "Assigns a new name to referenced sub.  If package
@@ -9644,9 +9376,9 @@ return value is the sub.")
         (base32 "17fq4iskrisnqs96amrz493vxikwvqbj9s7014k6vyl84gs2lkkf"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-test-fatal))
     (propagated-inputs
-     `(("perl-sub-name" ,perl-sub-name)))
+     (list perl-sub-name))
     (home-page "https://metacpan.org/release/Sub-Quote")
     (synopsis "Efficient generation of subroutines via string eval")
     (description "Sub::Quote provides an efficient generation of subroutines
@@ -9686,9 +9418,9 @@ uplevel() are avoided.")
         (base32 "16nk2za9fwyg7mcifacr69qi075iz1yvy8r9jh3903kzdvkiwpb8"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-sub-identify" ,perl-sub-identify)))
+     (list perl-sub-identify))
     (home-page "https://metacpan.org/release/SUPER")
     (synopsis "Control superclass method dispatching")
     (description
@@ -9877,8 +9609,7 @@ error encouraging the user to seek support.")
          "1msxg3j1hx5wsc7vr81x5gs9gdbn4y0x6cvyj3pq4dgi1603dbvi"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-appconfig" ,perl-appconfig)
-       ("perl-test-leaktrace" ,perl-test-leaktrace)))
+     (list perl-appconfig perl-test-leaktrace))
     (home-page "https://metacpan.org/release/Template-Toolkit")
     (synopsis "Template processing system for Perl")
     (description "The Template Toolkit is a collection of modules which
@@ -9902,7 +9633,7 @@ documents: HTML, XML, POD, PostScript, LaTeX, and so on.")
          "1d3pbcx1kz73ncg8s8lx3ifwphz838qy0m40gdar7790cnrlqcdp"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-template-toolkit" ,perl-template-toolkit)))
+     (list perl-template-toolkit))
     (home-page "https://metacpan.org/release/Template-Timer")
     (synopsis "Profiling for Template Toolkit")
     (description "Template::Timer provides inline profiling of the template
@@ -9948,7 +9679,7 @@ future, or if you want the retain the familiarity of TT-style templates.")
         (base32 "0zgj329kfrwcyqn491v04x65yjydwfc4845a71f8hypdrj3vv0b2"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-warn" ,perl-test-warn)))
+     (list perl-test-warn))
     (home-page "https://metacpan.org/dist/Term-ANSIColor")
     (synopsis "Interface to the ANSI terminal escape sequences for color")
     (description "Term::ANSIColor provides constants and simple functions for
@@ -9973,7 +9704,7 @@ supported.")
          "02qx4ni1vqp9hvkw69hp5bxcf2ghjiw8sl34pqy5mlimsy3rdflm"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)))
+     (list perl-module-install))
     (home-page "https://metacpan.org/release/Term-Encoding")
     (synopsis "Detect encoding of the current terminal")
     (description "Term::Encoding is a simple module to detect the encoding of
@@ -9994,11 +9725,9 @@ the current terminal expects in various ways.")
          "15pn42zf793dplpfnmawh7v7xc4qm38s1jhvn1agx4cafcn61q61"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)
-       ("perl-test-exception" ,perl-test-exception)))
+     (list perl-capture-tiny perl-test-exception))
     (propagated-inputs
-     `(("perl-class-methodmaker" ,perl-class-methodmaker)
-       ("perl-term-readkey" ,perl-term-readkey)))
+     (list perl-class-methodmaker perl-term-readkey))
     (home-page "https://metacpan.org/release/Term-ProgressBar")
     (synopsis "Progress meter on a standard terminal")
     (description "Term::ProgressBar provides a simple progress bar on the
@@ -10020,9 +9749,7 @@ stuff has been done, and maybe an estimate at how long remains.")
          "19l4476iinwz19vh360k3rss38m9gmkg633i5v9jkg48yn954rr5"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-io-interactive" ,perl-io-interactive)
-       ("perl-term-progressbar" ,perl-term-progressbar)
-       ("perl-test-mockobject" ,perl-test-mockobject)))
+     (list perl-io-interactive perl-term-progressbar perl-test-mockobject))
     (home-page "https://metacpan.org/release/Term-ProgressBar-Quiet")
     (synopsis "Progress meter if run interactively")
     (description "Term::ProgressBar is a wonderful module for showing progress
@@ -10045,7 +9772,7 @@ a cron job) then it does not show the progress bar.")
          "19kr6l2aflwv9yph5xishkpag038qb8wd4mkzb0x1psvgp3b63d2"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-term-progressbar-quiet" ,perl-term-progressbar-quiet)))
+     (list perl-term-progressbar-quiet))
     (home-page "https://metacpan.org/release/Term-ProgressBar-Simple")
     (synopsis "Simple progress bars")
     (description "Term::ProgressBar::Simple tells you how much work has been
@@ -10088,8 +9815,7 @@ screen size, and retrieval/modification of the control characters.")
          "09b9mcmp09kdfh5jaqdr528yny8746hvn3f185aqd6rw06jgf24s"))))
     (build-system perl-build-system)
     (inputs
-     `(("readline" ,readline)
-       ("ncurses" ,ncurses)))
+     (list readline ncurses))
     (arguments
      `(#:tests? #f ; Tests fail without other Term::ReadLine interfaces present
        #:phases (modify-phases %standard-phases
@@ -10126,9 +9852,9 @@ compatible with Term::ReadLine.")
          "1lnynd8pwjp3g85bl4nav6yigg2lag3sx5da989j7a733bdmzyk4"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-devel-hide" ,perl-devel-hide)))
+     (list perl-devel-hide))
     (propagated-inputs
-     `(("perl-term-size-perl" ,perl-term-size-perl)))
+     (list perl-term-size-perl))
     (home-page "https://metacpan.org/release/Term-Size-Any")
     (synopsis "Retrieve terminal size")
     (description "This is a unified interface to retrieve terminal size.  It
@@ -10169,7 +9895,7 @@ Now in pure Perl, with the exception of a C probe run at build time.")
           "0gi4lyvs6n8y6hjwmflfpamfl65y7mb1g39zi0rx35nclj8xb370"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-importer" ,perl-importer)))
+     (list perl-importer))
     (home-page "https://metacpan.org/release/Term-Table")
     (synopsis "Format a header and rows into a table")
     (description "This module is able to generically format rows of data
@@ -10188,7 +9914,7 @@ into tables.")
        (sha256
         (base32 "1vry21jrh91l2pkajnrps83bnr1fn6zshbzi80mcrnggrn9iq776"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-module-build" ,perl-module-build)))
+    (native-inputs (list perl-module-build))
     (home-page "https://metacpan.org/release/Text-Aligner")
     (synopsis "Align text")
     (description "Text::Aligner exports a single function, align(), which is
@@ -10269,7 +9995,7 @@ and escapes.")
          "013g13prdghxvrp5754gyc7rmv1syyxrhs33yc5f0lrz3dxs1fp8"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-algorithm-diff" ,perl-algorithm-diff)))
+     (list perl-algorithm-diff))
     (home-page "https://metacpan.org/release/Text-Diff")
     (synopsis "Perform diffs on files and record sets")
     (description "Text::Diff provides a basic set of services akin to the GNU
@@ -10293,9 +10019,7 @@ generally slower on larger files.")
                 "0104z7jjv46kqh77rnx8kvmsbr5dy0s56xm01dckq4ly65br0hkx"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-module-build perl-test-pod perl-test-pod-coverage))
     (home-page "https://metacpan.org/release/Text-Format")
     (synopsis "Various subroutines to format text")
     (description "This package provides functions to format text in various
@@ -10316,7 +10040,7 @@ to tabs.")
         (base32
          "11sj62fynfgwrlgkv5a051cq6yn0pagxqjsz27dxx8phsd4wv706"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-module-build" ,perl-module-build)))
+    (native-inputs (list perl-module-build))
     (home-page "https://metacpan.org/release/Text-Glob")
     (synopsis "Match globbing patterns against text")
     (description "Text::Glob implements glob(3) style matching that can be
@@ -10337,10 +10061,9 @@ you want to do full file globbing use the File::Glob module instead.")
         (base32 "1siq8hgj7s8gwpf3n3h1is5v50rwi6av8lfb19khiyyqz0rp7a57"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build-tiny" ,perl-module-build-tiny)))
+     (list perl-module-build-tiny))
     (propagated-inputs
-     `(("perl-data-section-simple" ,perl-data-section-simple)
-       ("perl-uri" ,perl-uri)))
+     (list perl-data-section-simple perl-uri))
     (home-page "https://metacpan.org/release/Text-Haml")
     (synopsis "Haml Perl implementation")
     (description
@@ -10363,7 +10086,7 @@ you want to do full file globbing use the File::Glob module instead.")
          "129msa57jzxxi2x7z9hgzi48r48y65w77ycfk1w733zz2m8nr8y3"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (home-page
      "https://metacpan.org/release/Text-NeatTemplate")
     (synopsis "Fast, middleweight template engine")
@@ -10404,7 +10127,7 @@ tokens or array of arrays.")
         (base32 "1k1xbhxwn9fymqqwnam9pm7hr2p5ikq6dk578qw18gkap9hqxwga"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-text-diff" ,perl-text-diff)))
+     (list perl-text-diff))
     (home-page "https://metacpan.org/release/Text-Patch")
     (synopsis "Patches text with given patch")
     (description "Text::Patch combines source text with given
@@ -10464,9 +10187,9 @@ algorism to indicate multiplication by 1000.")
          "04kh5x5inq183rdg221wlqaaqi1ipyj588mxsslik6nhc14f17nd"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-text-aligner" ,perl-text-aligner)))
+     (list perl-text-aligner))
     (home-page "https://metacpan.org/release/Text-Table")
     (synopsis "Organize Data in Tables")
     (description "Text::Table renders plaintext tables.")
@@ -10506,8 +10229,7 @@ Text::Wrap will reformat lines into paragraphs.")
          "12zi08mwmlbfbnsialmppk75s6dkg765dvmay3wif3158plqp554"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-more-utf8" ,perl-test-more-utf8)
-       ("perl-test-warnings" ,perl-test-warnings)))
+     (list perl-test-more-utf8 perl-test-warnings))
     (home-page
      "https://metacpan.org/release/Text-Template")
     (synopsis
@@ -10572,11 +10294,9 @@ system.")
          "184gdcwxqwnkrx5md968v1ny70pq6blzpkihccm3bpdxnpgd11wr"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-devel-stacktrace" ,perl-devel-stacktrace)))
+     (list perl-devel-stacktrace))
     (propagated-inputs
-     `(("perl-devel-stacktrace" ,perl-devel-stacktrace)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-moo" ,perl-moo)))
+     (list perl-devel-stacktrace perl-module-runtime perl-moo))
     (home-page "https://metacpan.org/release/Throwable")
     (synopsis "Role for classes that can be thrown")
     (description "Throwable is a role for classes that are meant to be thrown
@@ -10635,7 +10355,7 @@ again.  Once you get to the end of the list, you go back to the beginning.")
         (base32
           "0mmg9iyh42syal3z1p2pn9airq65yrkfs66cnqs9nz76jy60pfzs"))))
   (build-system perl-build-system)
-  (native-inputs `(("perl-module-build" ,perl-module-build)))
+  (native-inputs (list perl-module-build))
   (home-page "https://metacpan.org/release/Tie-IxHash")
   (synopsis "Ordered associative arrays for Perl")
   (description "This Perl module implements Perl hashes that preserve the
@@ -10663,7 +10383,7 @@ operations can also be performed on the IxHash.")
     (home-page "https://metacpan.org/release/Tie-Handle-Offset")
     (synopsis "Special file handle that hides the beginning of a file")
     (description
-     "This modules provides a file handle that hides the beginning of a file,
+     "This module provides a file handle that hides the beginning of a file,
 by modifying the @code{seek()} and @code{tell()} calls.")
     (license license:asl2.0)))
 
@@ -10706,7 +10426,7 @@ figure out what you're trying to do.")
          "1x1smn1kw383xc5h9wajxk9dlx92bgrbf7gk4abga57y6120s6m3"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-test-simple" ,perl-test-simple)))
+     (list perl-test-simple))
     (home-page "https://metacpan.org/release/Tie-ToObject")
     (synopsis "Tie to an existing Perl object")
     (description "This class provides a tie constructor that returns the
@@ -10727,9 +10447,7 @@ $object->TIEHASH are avoided.")
         (base32 "1f59z2svfydxgd1gzrb5k3hl6d432kzmskk7jhv2dyb5hyx0wd7y"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-module-install perl-test-pod perl-test-pod-coverage))
     (home-page "https://metacpan.org/release/Time-Duration")
     (synopsis "English expression of durations")
     (description "This module provides functions for expressing durations in
@@ -10749,9 +10467,9 @@ rounded or exact terms.")
         (base32 "10g39bbrxkabbsfq4rv7f5b5x7h3jba08j4pg8gwr0b9iqx19n31"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-time-duration" ,perl-time-duration)))
+     (list perl-time-duration))
     (propagated-inputs
-     `(("perl-exporter-lite" ,perl-exporter-lite)))
+     (list perl-exporter-lite))
     (home-page "https://metacpan.org/release/Time-Duration-Parse")
     (synopsis "Parse time duration strings")
     (description "Time::Duration::Parse is a module to parse human readable
@@ -10853,9 +10571,9 @@ time values and formatting dates into ASCII strings.")
          "0bwqyg8z98m8cjw1qcm4wg502n225k33j2fp8ywxkgfjdd1zgllv"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-timedate" ,perl-timedate))) ;For Date::Parse
+     (list perl-timedate)) ;For Date::Parse
     (home-page "https://metacpan.org/release/Time-Mock")
     (synopsis "Shift and scale time")
     (description "This module allows you to speed up your sleep(), alarm(),
@@ -10875,10 +10593,9 @@ and time() calls.")
         (base32 "176j8zgsndfnxb5mxaiarnva3ghck1jxgxwkz77r9fr2sadpksdp"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-exception" ,perl-test-exception)))
+     (list perl-module-build perl-test-exception))
     (propagated-inputs
-     `(("perl-scalar-list-utils" ,perl-scalar-list-utils)))
+     (list perl-scalar-list-utils))
     (home-page "https://metacpan.org/release/Tree-Simple")
     (synopsis "Simple tree object")
     (description "This module in a fully object-oriented implementation of a
@@ -10898,10 +10615,9 @@ simple n-ary tree.")
         (base32 "19hdi00rw492m5r51b495gv5c64g91g98f8lm6sgym1cl7x3ixcw"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-exception" ,perl-test-exception)))
+     (list perl-module-build perl-test-exception))
     (propagated-inputs
-     `(("perl-tree-simple" ,perl-tree-simple)))
+     (list perl-tree-simple))
     (home-page "https://metacpan.org/release/Tree-Simple-VisitorFactory")
     (synopsis "Factory object for dispensing Visitor objects")
     (description "This module is a factory for dispensing
@@ -10941,11 +10657,9 @@ else.")
         (base32 "0d2ldn6pi8dj7shk4gkjm9bzqr7509fzkwjs7579pmgg6xkkynjf"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-requires" ,perl-test-requires)))
+     (list perl-test-fatal perl-test-requires))
     (propagated-inputs
-     `(("perl-exporter-tiny" ,perl-exporter-tiny)
-       ("perl-hash-fieldhash" ,perl-hash-fieldhash)))
+     (list perl-exporter-tiny perl-hash-fieldhash))
     (home-page "https://metacpan.org/release/Type-Tie")
     (synopsis "Tie a variable to a type constraint")
     (description "This module exports a single function: @code{ttie}.  It ties
@@ -10968,17 +10682,17 @@ variable conform.")
         (base32 "0s11rlkkjjys8x6ihm5mrhzbbf341g5ckqbalph4g7l98kcy26yl"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-warnings" ,perl-test-warnings)))
+     (list perl-test-warnings))
     (propagated-inputs
-     `(("perl-devel-lexalias" ,perl-devel-lexalias)
-       ("perl-devel-stacktrace" ,perl-devel-stacktrace)
-       ("perl-exporter-tiny" ,perl-exporter-tiny)
-       ("perl-moo" ,perl-moo)
-       ("perl-moose" ,perl-moose)
-       ("perl-mouse" ,perl-mouse)
-       ("perl-ref-util-xs" ,perl-ref-util-xs)
-       ("perl-regexp-util" ,perl-regexp-util)
-       ("perl-type-tie" ,perl-type-tie)))
+     (list perl-devel-lexalias
+           perl-devel-stacktrace
+           perl-exporter-tiny
+           perl-moo
+           perl-moose
+           perl-mouse
+           perl-ref-util-xs
+           perl-regexp-util
+           perl-type-tie))
     (home-page "https://metacpan.org/release/Type-Tiny")
     (synopsis "Tiny, yet Moo(se)-compatible type constraint")
     (description "@code{Type::Tiny} is a small class for writing type
@@ -11021,10 +10735,8 @@ so other data validation frameworks might also consider using it.")
         (base32 "1072vwcbx2bldfg8xpxc9iqs3rzqd18yik60b432hsdwxpxcjgsr"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-file-pushd" ,perl-file-pushd)
-       ("perl-path-tiny" ,perl-path-tiny)
-       ("perl-type-tiny" ,perl-type-tiny)
-       ("perl-exporter-tiny" ,perl-exporter-tiny)))
+     (list perl-file-pushd perl-path-tiny perl-type-tiny
+           perl-exporter-tiny))
     (home-page "https://metacpan.org/release/Types-Path-Tiny")
     (synopsis "Types and coercions for Moose and Moo")
     (description "This module provides @code{Path::Tiny} types for Moose, Moo,
@@ -11047,7 +10759,7 @@ to ensure that files or directories exist.")
          "03bk0hm5ys8k7265dkap825ybn2zmzb1hl0kf1jdm8yq95w39lvs"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-common-sense" ,perl-common-sense)))
+     (list perl-common-sense))
     (home-page "https://metacpan.org/release/Types-Serialiser")
     (synopsis "Data types for common serialisation formats")
     (description "This module provides some extra datatypes that are used by
@@ -11104,7 +10816,7 @@ common serialisation formats such as JSON or CBOR.")
                                     (getenv "PERL5LIB")))
              #t)))))
     (propagated-inputs
-     `(("perl-unicode-normalize" ,perl-unicode-normalize)))
+     (list perl-unicode-normalize))
     (home-page "https://metacpan.org/release/Unicode-Collate")
     (synopsis "Unicode collation algorithm")
     (description "This package provides tools for sorting and comparing
@@ -11126,7 +10838,7 @@ Unicode data.")
                 "12iinva5gqc9g7qzxrvmh45n714z0ad9g7wq2dxwgp6drbj64rs8"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-mime-charset" ,perl-mime-charset)))
+     (list perl-mime-charset))
     (home-page "https://metacpan.org/release/Unicode-LineBreak")
     (synopsis "Unicode line breaking algorithm")
     (description
@@ -11151,10 +10863,8 @@ defined by Annex #11 is used to determine breaking positions.")
     ;; <https://rt.cpan.org/Public/Bug/Display.html?id=127007>.
     (arguments `(#:tests? ,(target-64bit?)))
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-leaktrace" ,perl-test-leaktrace)
-       ("perl-variable-magic" ,perl-variable-magic)
-       ("perl-test-pod" ,perl-test-pod)))
+     (list perl-test-fatal perl-test-leaktrace perl-variable-magic
+           perl-test-pod))
     (home-page "https://metacpan.org/release/Unicode-UTF8")
     (synopsis "Encoding and decoding of UTF-8 encoding form")
     (description
@@ -11195,7 +10905,7 @@ UNIVERSAL::can() as a function, which it is not.")
          "0avzv9j32aab6l0rd63n92v0pgliz1p4yabxxjfq275hdh1mcsfi"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build-tiny" ,perl-module-build-tiny)))
+     (list perl-module-build-tiny))
     (home-page "https://metacpan.org/release/UNIVERSAL-isa")
     (synopsis "UNIVERSAL::isa() reimplementation")
     (description "This module attempts to recover from people calling
@@ -11285,10 +10995,8 @@ attribute names.")
         (base32 "0pyqr12jsqagna75fm2gijfzw06wy1hrh5chn9hwnmcfddda66g8"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-distribution" ,perl-test-distribution)
-       ("perl-text-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)
-       ("perl-test-portability-files" ,perl-test-portability-files)))
+     (list perl-test-distribution perl-test-pod perl-test-pod-coverage
+           perl-test-portability-files))
     (home-page "https://metacpan.org/dist/XSLoader")
     (synopsis "Dynamically load C libraries into Perl code")
     (description "XSLoader module defines a standard simplified interface to the
@@ -11309,9 +11017,7 @@ to implement cheap automatic dynamic loading of Perl modules.")
                 "0njyy4y0zax4zz55y82dlm9cly1pld1lcxb281s12bp9rrhf9j9x"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-extutils-depends" ,perl-extutils-depends)
-       ("perl-module-install" ,perl-module-install)
-       ("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-extutils-depends perl-module-install perl-test-fatal))
     (home-page "https://metacpan.org/release/XS-Object-Magic")
     (synopsis "Opaque, extensible XS pointer backed objects using sv_magic")
     (description
@@ -11334,7 +11040,7 @@ neither visible nor modifiable from Perl space).")
         (base32 "1kbrfksjg4k4vmx1i337m5n69m00m0m5bgsh61c15bzzrgbacc2h"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-yaml" ,perl-test-yaml)))
+     (list perl-test-yaml))
     (home-page "https://metacpan.org/release/YAML")
     (synopsis "YAML for Perl")
     (description "The YAML.pm module implements a YAML Loader and Dumper based
@@ -11375,8 +11081,7 @@ best YAML support to date.")
          "0i3p4nz8ysrsrs6vlzc6gkjcfpcaf05xjc7lwbjkw7lg5shmycdw"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-json-maybexs" ,perl-json-maybexs)
-       ("perl-module-build-tiny" ,perl-module-build-tiny)))
+     (list perl-json-maybexs perl-module-build-tiny))
     (arguments
      `(#:tests? #f))                    ;requires Test::More >= 0.99
     (home-page "https://metacpan.org/release/YAML-Tiny")
@@ -11402,7 +11107,7 @@ and memory overhead.")
          "0dvfcn2xvj9r4ra5xqgasl847nsm1iy85w1kly41fkxm9im36hqr"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (home-page
      "https://metacpan.org/release/Parse-RecDescent")
     (synopsis "Generate recursive-descent parsers")
@@ -11450,9 +11155,8 @@ grammars to generate Perl object oriented parser modules.")
          "1mm3dfw3ffyzb2ikpqn9l6zyqrxijb4vyywmbx2l21ryqwp0zy74"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-cpan-meta-requirements" ,perl-cpan-meta-requirements)
-       ("perl-cpan-meta-yaml" ,perl-cpan-meta-yaml)
-       ("perl-parse-cpan-meta" ,perl-parse-cpan-meta)))
+     (list perl-cpan-meta-requirements perl-cpan-meta-yaml
+           perl-parse-cpan-meta))
     (home-page "https://metacpan.org/release/CPAN-Meta")
     (synopsis "Distribution metadata for a CPAN dist")
     (description "Software distributions released to the CPAN include a
@@ -11522,7 +11226,7 @@ MYMETA.yml.")
          "05xpn8qg814y49vrih16zfr9iiwb7pmdf57ahjnc2h0p5illq3vy"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-cpan-meta" ,perl-cpan-meta)))
+     (list perl-cpan-meta))
     (home-page "https://metacpan.org/release/Module-Build")
     (synopsis "Build and install Perl modules")
     (description "@code{Module::Build} is a system for building, testing, and
@@ -11549,7 +11253,7 @@ system---most of the @code{Module::Build} code is pure-Perl.")
          "1mm3dfw3ffyzb2ikpqn9l6zyqrxijb4vyywmbx2l21ryqwp0zy74"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-cpan-meta-yaml" ,perl-cpan-meta-yaml)))
+     (list perl-cpan-meta-yaml))
     (home-page "https://metacpan.org/release/DAGOLDEN/Parse-CPAN-Meta-1.4422")
     (synopsis "Parse META.yml and META.json CPAN metadata files")
     (description "Parse::CPAN::Meta is a parser for META.json and META.yml
@@ -11559,14 +11263,14 @@ files, using JSON::PP and/or CPAN::Meta::YAML.")
 (define-public perl-scalar-list-utils
   (package
     (name "perl-scalar-list-utils")
-    (version "1.56")
+    (version "1.60")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/P/PE/PEVANS/"
                            "Scalar-List-Utils-" version ".tar.gz"))
        (sha256
-        (base32 "0nxb29x7i2w6kjxq188n131b56bsqj1ykrxjcjp6sgpv81ym7f0m"))))
+        (base32 "01szp3agmww6gj3hwqbpi8csn9675qcc7dw828r8y00z0bcbm1f6"))))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/Scalar-List-Utils")
     (synopsis "Common Scalar and List utility subroutines")
@@ -11589,24 +11293,27 @@ such that being individual extensions would be wasteful.")
         (base32 "1dagpmcpjnwvd4g6mmnc312rqpd4qcwx21rpi2j7084wz8mijai5"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-alien-sdl" ,perl-alien-sdl)
-       ("perl-capture-tiny" ,perl-capture-tiny)
-       ("perl-file-sharedir" ,perl-file-sharedir)
-       ("perl-module-build" ,perl-module-build)
-       ("perl-test-most" ,perl-test-most)
-       ("perl-tie-simple" ,perl-tie-simple)))
+     (list perl-alien-sdl
+           perl-capture-tiny
+           perl-file-sharedir
+           perl-module-build
+           perl-test-most
+           perl-tie-simple))
     (inputs
-     `(("freeglut" ,freeglut)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libsmpeg" ,libsmpeg)
-       ("libtiff" ,libtiff)
-       ("mesa" ,mesa)
-       ("sdl" ,(sdl-union
-                (list sdl sdl-gfx sdl-image sdl-mixer sdl-pango sdl-ttf)))))
-    (propagated-inputs
-     `(("perl-file-sharedir" ,perl-file-sharedir)
-       ("perl-tie-simple" ,perl-tie-simple)))
+     (list freeglut
+           libjpeg-turbo
+           libpng
+           libsmpeg
+           libtiff
+           mesa
+           (sdl-union (list sdl
+                            sdl-gfx
+                            sdl-image
+                            sdl-mixer
+                            sdl-pango
+                            sdl-ttf))))
+    (propagated-inputs
+     (list perl-file-sharedir perl-tie-simple))
     (home-page "https://metacpan.org/release/SDL")
     (synopsis "SDL bindings to Perl")
     (description
@@ -11640,7 +11347,7 @@ spirit of both the SDL and Perl.")
                             `("PERL5LIB" suffix (,site))))
                         #t))))))
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (home-page "https://metacpan.org/release/RAAB/SGMLSpm-1.1")
     (synopsis "Perl module for processing SGML parser output")
     (description "This package contains @code{SGMLS.pm}, a perl5 class library
@@ -11689,9 +11396,9 @@ be used.")
           "0gf13b76b824s73r5rp00v8xrd6dnb5yi5jjavfc394scqv6ldh4"))))
   (build-system perl-build-system)
   (native-inputs
-    `(("perl-module-build" ,perl-module-build)))
+    (list perl-module-build))
   (inputs
-    `(("perl-class-xsaccessor" ,perl-class-xsaccessor)))
+    (list perl-class-xsaccessor))
   (home-page
     "https://metacpan.org/release/File-Find-Object")
   (synopsis
@@ -11715,12 +11422,10 @@ File::Find replacement in Perl.")
         (base32 "0gjzfd5fz7mhr5abafxr7qic7nwhk7y9iv17as6l880973j952h3"))))
   (build-system perl-build-system)
   (native-inputs
-    `(("perl-module-build" ,perl-module-build)))
+    (list perl-module-build))
   (inputs
-    `(("perl-class-xsaccessor" ,perl-class-xsaccessor)
-      ("perl-file-find-object" ,perl-file-find-object)
-      ("perl-number-compare" ,perl-number-compare)
-      ("perl-text-glob" ,perl-text-glob)))
+    (list perl-class-xsaccessor perl-file-find-object perl-number-compare
+          perl-text-glob))
   (home-page
     "https://metacpan.org/release/File-Find-Object-Rule")
   (synopsis
@@ -11744,7 +11449,7 @@ interface to File::Find::Object.")
          "0x3a2xgzrka73lcmmwalq2mmpzxa7s6pm01ahxf677ksqsdc3jrf"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-text-glob" ,perl-text-glob)))
+     (list perl-text-glob))
     (home-page "https://metacpan.org/release/File-Finder")
     (synopsis "Wrapper for @code{File::Find} ala @code{find(1)}")
     (description
@@ -11775,7 +11480,7 @@ used as the head of many different sequences.")
                 "14y29ja3lsa3yw0ll20lj96f3zz5zydjqi1c5nh9wxar8927ssab"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-io-string" ,perl-io-string)))
+     (list perl-io-string))
     (home-page "https://metacpan.org/release/Font-TTF")
     (synopsis "TTF font support for Perl")
     (description "This package provides a Perl module for TrueType/OpenType
@@ -11812,8 +11517,7 @@ prop, vhea, vmtx and the reading and writing of all other table types.")
              (setenv "TZDIR"
                      (search-input-directory inputs "share/zoneinfo")))))))
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("tzdata" ,tzdata-for-tests)))
+     (list perl-module-build tzdata-for-tests))
     (home-page "https://metacpan.org/release/Time-ParseDate")
     (synopsis "Collection of Perl modules for time/date manipulation")
     (description "Provides several perl modules for date/time manipulation:
@@ -11842,7 +11546,7 @@ libtime-parsedate-perl_2015.103-2_copyright"))))
         (base32 "0c0yd999h0ikj88c9j95wa087m87i0qh7vja3715y2kd7vixkci2"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     ;; Unless some other homepage is out there...
     (home-page "https://packages.debian.org/stretch/libtime-period-perl")
     (synopsis "Perl library for testing if a time() is in a specific period")
@@ -11868,14 +11572,10 @@ till 5pm\" and \"on the second Tuesday of the month\" and \"between 4pm and
         (base32 "19mik0r5v1cmxfxm0h4lwqyj0nmq6jgnvvq96hqcjgylpvc02x1z"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-file-pushd" ,perl-file-pushd)
-       ("perl-path-tiny" ,perl-path-tiny)
-       ("perl-test-deep" ,perl-test-deep)
-       ("perl-test-filename" ,perl-test-filename)))
+     (list perl-file-pushd perl-path-tiny perl-test-deep
+           perl-test-filename))
     (propagated-inputs
-     `(("perl-number-compare" ,perl-number-compare)
-       ("perl-text-glob" ,perl-text-glob)
-       ("perl-try-tiny" ,perl-try-tiny)))
+     (list perl-number-compare perl-text-glob perl-try-tiny))
     (home-page "https://metacpan.org/release/Path-Iterator-Rule")
     (synopsis "Iterative, recursive file finder")
     (description "Path::Iterator::Rule iterates over files and directories to
@@ -11970,7 +11670,7 @@ the National Archives and Records Administration (NARA).")
         (base32 "064igp2wxgsz4yb33v1r90i8clwjzs2xnpvw9niqlqrbzzrd4q1l"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-exception" ,perl-test-exception)))
+     (list perl-test-exception))
     (home-page "https://metacpan.org/release/Regexp-Pattern")
     (synopsis "Collection of regexp patterns")
     (description "Regexp::Pattern is a convention for organizing reusable
@@ -11992,10 +11692,9 @@ regexp patterns in modules.")
          "16qls1yqcmhxrcx9agsmaypxa1nirq4nvbyzbww9984589m44ql1"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)
-       ("perl-test-deep" ,perl-test-deep)))
+     (list perl-module-install perl-test-deep))
     (propagated-inputs
-     `(("perl-class-accessor" ,perl-class-accessor)))
+     (list perl-class-accessor))
     (home-page "https://metacpan.org/release/Data-SExpression")
     (synopsis "Parse Lisp S-Expressions into Perl data structures")
     (description "Data::SExpression parses Lisp S-Expressions into Perl data
diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index e02dd757e5..5c28df054f 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -62,6 +62,7 @@
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out        (assoc-ref outputs "out"))
                    (pkg-config (assoc-ref inputs "pkg-config")))
+               (setenv "CFLAGS" "-fcommon")
                (setenv "LDFLAGS" (string-append "-Wl,-rpath=" out "/lib"))
                (invoke "perl" "Configure.pl"
                        "--prefix" out
@@ -73,12 +74,9 @@
     (home-page "https://moarvm.org/")
     ;; These should be inputs but moar.h can't find them when building rakudo
     (propagated-inputs
-     `(("libatomic-ops" ,libatomic-ops)
-       ("libffi" ,libffi)
-       ("libtommath" ,libtommath-1.0)
-       ("libuv" ,libuv)))
+     (list libatomic-ops libffi libtommath-1.0 libuv))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "VM for NQP And Rakudo Perl 6")
     (description
      "Short for \"Metamodel On A Runtime\", MoarVM is a modern virtual machine
@@ -149,7 +147,7 @@ with native libraries.
                        "--with-moar" (string-append moar "/bin/moar")
                        "--prefix" out)))))))
     (inputs
-     `(("moarvm" ,moarvm)))
+     (list moarvm))
     (home-page "https://github.com/perl6/nqp")
     (synopsis "Not Quite Perl")
     (description "This is \"Not Quite Perl\" -- a lightweight Perl 6-like
@@ -212,9 +210,7 @@ regular expression engine for the virtual machine.")
                   (string-append out "/bin/perl6"))))
              #t)))))
     (inputs
-     `(("moarvm" ,moarvm)
-       ("nqp" ,nqp)
-       ("openssl" ,openssl)))
+     (list moarvm nqp openssl))
     (home-page "https://rakudo.org/")
     (native-search-paths
       (list (search-path-specification
@@ -247,7 +243,7 @@ specification and runs on top of several virtual machines.")
             "0y826z3m276n7ia810hgcb3div67nxmx125m2fzlc16994zd5vm5"))))
       (build-system rakudo-build-system)
       (propagated-inputs
-       `(("perl6-terminal-ansicolor" ,perl6-terminal-ansicolor)))
+       (list perl6-terminal-ansicolor))
       (home-page "https://github.com/jnthn/grammar-debugger")
       (synopsis "Simple tracing and debugging support for Perl 6 grammars")
       (description "This module provides a simple debugger for grammars.  Just
@@ -323,10 +319,9 @@ deserializing JSON.")
           "1zyzajc57j3m8q0nr72h9pw4w2nx92rafywlvysgphc5q9sb8np2"))))
     (build-system rakudo-build-system)
     (propagated-inputs
-     `(("perl6-json-marshal" ,perl6-json-marshal)
-       ("perl6-json-unmarshal" ,perl6-json-unmarshal)))
+     (list perl6-json-marshal perl6-json-unmarshal))
     (native-inputs
-     `(("perl6-json-fast" ,perl6-json-fast)))
+     (list perl6-json-fast))
     (home-page "https://github.com/jonathanstowe/JSON-Class")
     (synopsis "Provide simple serialisation/deserialisation of objects to/from JSON")
     (description "This is a simple role that provides methods to instantiate a
@@ -378,10 +373,9 @@ but it offers a few extra features.")
           "0qy7j83h6gjzyyv74ncd92cd9h45rv8diaz3vldiv3b6fqwz4c6i"))))
     (build-system rakudo-build-system)
     (propagated-inputs
-     `(("perl6-json-fast" ,perl6-json-fast)
-       ("perl6-json-name" ,perl6-json-name)))
+     (list perl6-json-fast perl6-json-name))
     (native-inputs
-     `(("perl6-json-fast" ,perl6-json-fast)))
+     (list perl6-json-fast))
     (home-page "https://github.com/jonathanstowe/JSON-Marshal")
     (synopsis "Simple serialisation of objects to JSON")
     (description "This library provides a single exported subroutine to create
@@ -434,8 +428,7 @@ It will of course also be needed in classes thar are going to use
           "14azsmzmwdn8k0gqcpvballharcvzylmlyrx2wmv4kpqfnz29fjc"))))
       (build-system rakudo-build-system)
       (propagated-inputs
-       `(("perl6-json-fast" ,perl6-json-fast)
-         ("perl6-json-name" ,perl6-json-name)))
+       (list perl6-json-fast perl6-json-name))
       (home-page "https://github.com/tadzik/JSON-Unmarshal")
       (synopsis "Make JSON from an Object")
       (description "This library provides a single exported subroutine to
@@ -458,7 +451,7 @@ create an object from a JSON representation of an object.")
           "0dl263c3fbxk001gm5fisrzqz1dx182ipaa0x2qva2gxvl075xm8"))))
     (build-system rakudo-build-system)
     (propagated-inputs
-     `(("perl6-json-class" ,perl6-json-class)))
+     (list perl6-json-class))
     (home-page "https://github.com/jonathanstowe/License-SPDX")
     (synopsis "Abstraction over the SPDX License List")
     (description "This provides an abstraction over the SPDX License List as
@@ -483,9 +476,9 @@ licences therein.")
           "1xnlaamfbdlfb2zidim3bbc4mawsrg6qxhxi6gbld46z1cyry1cw"))))
     (build-system rakudo-build-system)
     (propagated-inputs
-     `(("perl6-json-class" ,perl6-json-class)))
+     (list perl6-json-class))
     (native-inputs
-     `(("perl6-json-fast" ,perl6-json-fast)))
+     (list perl6-json-fast))
     (home-page "https://github.com/jonathanstowe/META6")
     (synopsis "Do things with Perl 6 [META files]")
     (description "This provides a representation of the Perl 6 META files
@@ -568,7 +561,7 @@ monitor.  Condition variables are also supported.")
             "0mkjdhg7ajksdn61n8fqhyzfd7ly9myazsvpsm02a5c2q73hdygg"))))
       (build-system rakudo-build-system)
       (propagated-inputs
-       `(("perl6-xml-writer" ,perl6-xml-writer)))
+       (list perl6-xml-writer))
       (home-page "https://github.com/moritz/svg")
       (synopsis "Perl 6 module to generate SVG")
       (description "This is a Perl 6 module that makes it easy to write
@@ -596,7 +589,7 @@ XML file as SVG.")
             "095ga5hbg92jnmczxvhk1hjz14yr334zyf8cph4w5w5frcza44my"))))
       (build-system rakudo-build-system)
       (propagated-inputs
-       `(("perl6-svg" ,perl6-svg)))
+       (list perl6-svg))
       (home-page "https://github.com/moritz/svg-plot")
       (synopsis "Perl 6 charting and plotting library that produces SVG output")
       (description "@code{SVG::Plot} is a simple 2D chart plotter for Perl 6.
@@ -672,8 +665,7 @@ minimal wrapper around an instance of this module.")
           "1mzrglb7lbiy5h9dlc7dyhvv9gppxmdmpmrv6nzbd695jzr38bri"))))
     (build-system rakudo-build-system)
     (propagated-inputs
-     `(("perl6-meta6" ,perl6-meta6)
-       ("perl6-uri" ,perl6-uri)))
+     (list perl6-meta6 perl6-uri))
     (home-page "https://github.com/jonathanstowe/Test-META")
     (synopsis "Test a distributions META file")
     (description "This provides a simple mechanism for module authors to have
@@ -697,7 +689,7 @@ some confidence that they have a working distribution META description file.")
           "07yr3qimc8fl29p23562ayj2j9h53madcnf9sgqvgf2kcprh0zd2"))))
     (build-system rakudo-build-system)
     (propagated-inputs
-     `(("perl6-oo-monitors" ,perl6-oo-monitors)))
+     (list perl6-oo-monitors))
     (home-page "https://github.com/jnthn/test-mock")
     (synopsis "Module for simply generating and checking mock objects")
     (description "@code{Test::Mock} is a module that works alongside the
diff --git a/gnu/packages/phabricator.scm b/gnu/packages/phabricator.scm
index af95cd93d2..b0d5a04a24 100644
--- a/gnu/packages/phabricator.scm
+++ b/gnu/packages/phabricator.scm
@@ -70,10 +70,7 @@
                          (find-files %output ".*\\.t?gz$"))
                #t)))))
       (inputs
-       `(("php" ,php)
-         ("git" ,git)
-         ("mercurial" ,mercurial)
-         ("subversion" ,subversion)))
+       (list php git mercurial subversion))
       (home-page "https://github.com/phacility/arcanist")
       (synopsis "Command-line interface for Phabricator")
       (description
@@ -83,6 +80,3 @@ send code for review, download patches, transfer files, view status, make API
 calls, and various other things.")
       ;; Bundled libraries are expat-licensed.
       (license (list license:asl2.0 license:expat)))))
-
-(define-public libphutil
-  (deprecated-package "libphutil" arcanist))
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index f292d3e8ba..fa603a60be 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -41,6 +41,7 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
@@ -103,9 +104,7 @@
                 "15p7sssg6vmqbm5xnc4j5dr89d7gl7y5qyq44a240yl5aqkjnybw"))))
     (build-system python-build-system)
     (native-inputs
-     `(("file" ,file)
-       ("intltool" ,intltool)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list file intltool gobject-introspection))
     (inputs
      `(("gdk-pixbuf" ,gdk-pixbuf)
        ("gexiv2" ,gexiv2)
@@ -187,11 +186,11 @@ cards and generate meaningful file and folder names.")
                 "18wlsvj6c1rv036ph3695kknpgzc3lk2ikgshy8417yfl8ykh2hz"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libjpeg" ,libjpeg-turbo)))     ;for lossy DNGs and old Kodak cameras
+     (list libjpeg-turbo))     ;for lossy DNGs and old Kodak cameras
     (propagated-inputs
-     `(("lcms" ,lcms)))                 ;for color profiles
+     (list lcms))                 ;for color profiles
     (home-page "https://www.libraw.org")
     (synopsis "Raw image decoder")
     (description
@@ -249,15 +248,12 @@ data as produced by digital cameras.")
                (base32
                 "1ms06b3dj1p33aypcb16gg5pn7fylbylsk9cnnqa0j29qiw59f7q"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
-     `(("libjpeg-turbo" ,libjpeg-turbo)
-       ("libltdl" ,libltdl)
-       ("libusb" ,libusb)
-       ("libxml2" ,libxml2)))
+     (list libjpeg-turbo libltdl libusb libxml2))
     (propagated-inputs
-     `(;; The .pc refers to libexif.
-       ("libexif" ,libexif)))
+     (list ;; The .pc refers to libexif.
+           libexif))
     (home-page "http://www.gphoto.org/proj/libgphoto2/")
     (synopsis "Accessing digital cameras")
     (description
@@ -281,13 +277,9 @@ from digital cameras.")
                 "0f4d3q381jnnkcqkb2dj1k709skp65qihl5xm80zandvl69lw19h"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("readline" ,readline)
-       ("libjpeg-turbo" ,libjpeg-turbo)
-       ("popt" ,popt)
-       ("libexif" ,libexif)
-       ("libgphoto2" ,libgphoto2)))
+     (list readline libjpeg-turbo popt libexif libgphoto2))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -368,10 +360,7 @@ and a wide variety of other metadata.")
                 "12cv4886l1czfjwy7k6ipgf3zjksgwhdjzr2s9fdg33vqcv2hlrv"))))
     (build-system cmake-build-system)
     (inputs
-     `(("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libtiff" ,libtiff)
-       ("zlib" ,zlib)))
+     (list libjpeg-turbo libpng libtiff zlib))
     (home-page "http://panotools.sourceforge.net/")
     (synopsis "Library for panoramic images")
     (description
@@ -413,7 +402,7 @@ overlapping images, as well as some command line tools.")
        ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
        ("libtiff" ,libtiff)
-       ("openexr" ,openexr)
+       ("openexr" ,openexr-2)
        ("vigra" ,vigra)
        ("zlib" ,zlib)))
     (arguments
@@ -448,9 +437,9 @@ scene to produce an image that looks much like a tone-mapped image.")
         '(#:configure-flags '("-DBUILD_FOR_SSE=OFF" "-DBUILD_FOR_SSE2=OFF")))
        #:tests? #f)) ; There are no tests to run.
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("glib" ,glib)))
+     (list glib))
     (home-page "https://sourceforge.net/projects/lensfun/")
     (synopsis "Library to correct optical lens defects with a lens database")
     (description "Digital photographs are not ideal.  Of course, the better is
@@ -471,7 +460,7 @@ photographic equipment.")
 (define-public darktable
   (package
     (name "darktable")
-    (version "3.6.0")
+    (version "3.6.1")
     (source
      (origin
        (method url-fetch)
@@ -479,7 +468,7 @@ photographic equipment.")
              "https://github.com/darktable-org/darktable/releases/"
              "download/release-" version "/darktable-" version ".tar.xz"))
        (sha256
-        (base32 "0f8aqwkgw4gs97b5i4ygiqk5zilwq7ax7zwdd31r72zk98cd1g46"))))
+        (base32 "051dwhdqa9q3zyrvr78g0cfzl1zhaagfvgx9axa9895q0g0wggx2"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags '("-DBINARY_PACKAGE_BUILD=On"
@@ -492,19 +481,7 @@ photographic equipment.")
              (substitute* "./src/common/dlopencl.c"
                (("\"libOpenCL\"")
                 (string-append "\"" (assoc-ref inputs "opencl-icd-loader")
-                               "/lib/libOpenCL.so\"")))
-             #t))
-         ;; The use of inline is wrong and darktable cannot compile its kernels
-         ;; with ROCm. See upstream commit
-         ;; https://github.com/darktable-org/darktable/commit/f0d8710f5ef34eb7e33b4064e022ebf3057b9e53
-         (add-after 'unpack 'opencl-inline
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; This is a feature of OpenCL 1.2 and later.
-             (substitute* "data/kernels/CMakeLists.txt"
-               (("CL1\\.1") "CL1.2"))
-             (substitute* (find-files "data/kernels" "\\.(cl|h)$")
-               (("inline") "static inline"))
-             #t))
+                               "/lib/libOpenCL.so\"")))))
          (add-before 'configure 'prepare-build-environment
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Rawspeed fails to build with GCC due to OpenMP error:
@@ -514,20 +491,13 @@ photographic equipment.")
              ;; it to the Clang dir. We fix this by patching CMakeLists.txt.
              (substitute* "CMakeLists.txt"
                (("\\$\\{LLVM_INSTALL_PREFIX\\}")
-                (assoc-ref %build-inputs "clang")))
-             #t))
-         (add-before 'configure 'set-LDFLAGS-and-CPATH
-           (lambda* (#:key inputs outputs #:allow-other-keys)
+                (assoc-ref %build-inputs "clang")))))
+         (add-before 'configure 'set-LDFLAGS
+           (lambda* (#:key outputs #:allow-other-keys)
              (setenv "LDFLAGS"
                      (string-append
                       "-Wl,-rpath="
-                      (assoc-ref outputs "out") "/lib/darktable"))
-
-             ;; Ensure the OpenEXR headers are found.
-             (setenv "CPATH"
-                     (string-append
-                      (search-input-directory inputs "include/OpenEXR")
-                      ":" (or (getenv "CPATH") "")))))
+                      (assoc-ref outputs "out") "/lib/darktable"))))
          (add-after 'install 'wrap-program
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (wrap-program (string-append (assoc-ref outputs "out")
@@ -535,8 +505,7 @@ photographic equipment.")
                ;; For GtkFileChooserDialog.
                `("GSETTINGS_SCHEMA_DIR" =
                  (,(string-append (assoc-ref inputs "gtk+")
-                                  "/share/glib-2.0/schemas"))))
-             #t)))))
+                                  "/share/glib-2.0/schemas")))))))))
     (native-inputs
      `(("clang" ,clang-11)
        ("cmocka" ,cmocka)
@@ -563,7 +532,7 @@ photographic equipment.")
        ("graphicsmagick" ,graphicsmagick)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gtk+" ,gtk+)
-       ("ilmbase" ,ilmbase)
+       ("imath" ,imath)
        ("iso-codes" ,iso-codes) ;optional, for language names in the preferences
        ("json-glib" ,json-glib)
        ("lcms" ,lcms)
@@ -575,7 +544,7 @@ photographic equipment.")
        ("libpng" ,libpng)
        ("librsvg" ,librsvg)
        ("libsecret" ,libsecret) ;optional, for storing passwords
-       ("libsoup" ,libsoup)
+       ("libsoup" ,libsoup-minimal-2)
        ("libtiff" ,libtiff)
        ("libwebp" ,libwebp) ;optional, for WebP support
        ("libxml2" ,libxml2)
@@ -595,7 +564,7 @@ developer.  It manages your digital negatives in a database, lets you view
 them through a zoomable lighttable and enables you to develop raw images
 and enhance them.")
     ;; See src/is_supported_platform.h for supported platforms.
-    (supported-systems '("x86_64-linux" "aarch64-linux"))
+    (supported-systems '("x86_64-linux" "aarch64-linux" "powerpc64le-linux"))
     (license (list license:gpl3+ ;; Darktable itself.
                    license:lgpl2.1+)))) ;; Rawspeed library.
 
@@ -627,12 +596,9 @@ and enhance them.")
                        (string-append "PREFIX=" out)
                        "Photoflare.pro")))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (inputs
-     `(("graphicsmagick" ,graphicsmagick)
-       ("libomp" ,libomp)
-       ("qtbase" ,qtbase-5)))
+     (list graphicsmagick libomp qtbase-5))
     (home-page "https://photoflare.io")
     (synopsis "Quick, simple but powerful image editor")
     (description "Photoflare is a cross-platform image editor with an aim
@@ -659,6 +625,7 @@ such as Batch image processing.")
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
+       #:meson ,meson-0.59                     ;fails to build with Meson 0.60
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
@@ -687,18 +654,18 @@ such as Batch image processing.")
        ("pkg-config" ,pkg-config)
        ("xmllint" ,libxml2)))
     (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
-       ("gexiv2" ,gexiv2)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gstreamer" ,gstreamer)
-       ("gtk+" ,gtk+)
-       ("lcms" ,lcms)
-       ("libgphoto2" ,libgphoto2)
-       ("libgudev" ,libgudev)
-       ("libpeas" ,libpeas)
-       ("libraw" ,libraw)
-       ("python" ,python)
-       ("python-pygobject" ,python-pygobject)))
+     (list gdk-pixbuf
+           gexiv2
+           gst-plugins-base
+           gstreamer
+           gtk+
+           lcms
+           libgphoto2
+           libgudev
+           libpeas
+           libraw
+           python
+           python-pygobject))
     (home-page "https://entangle-photo.org/")
     (synopsis "Camera control and capture")
     (description
@@ -740,7 +707,7 @@ off' shooting directly from the controlling computer.")
        ("libxi" ,libxi)
        ("libxmu" ,libxmu)
        ("mesa" ,mesa)
-       ("openexr" ,openexr)
+       ("openexr" ,openexr-2)
        ("sqlite" ,sqlite)
        ("vigra" ,vigra)
        ("wxwidgets" ,wxwidgets)
@@ -806,14 +773,14 @@ a complete panorama and stitch any series of overlapping pictures.")
              "-O3"
              "-DCACHE_NAME_SUFFIX=\"\"")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("expat" ,expat)
        ("fftw" ,fftwf)
        ("glib" ,glib)
        ("glibmm" ,glibmm)
        ("gtk+" ,gtk+)
-       ("gtkmm" ,gtkmm)
+       ("gtkmm" ,gtkmm-3)
        ("lcms" ,lcms)
        ("lensfun" ,lensfun)
        ("libcanberra" ,libcanberra)
diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index cecb6150a1..191dcafb4a 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -60,7 +61,7 @@
 (define-public php
   (package
     (name "php")
-    (version "7.4.22")
+    (version "7.4.26")
     (home-page "https://secure.php.net/")
     (source (origin
               (method url-fetch)
@@ -68,7 +69,10 @@
                                   "php-" version ".tar.xz"))
               (sha256
                (base32
-                "1s5xjy1cchlg0vfxic73wy2wip8spfjr094hzzyc76plsbbqq1wf"))
+                "1y0f1xgfi8cks6npdhrycg8r9g3q0pikqgf5h4xafpy8znmb61g3"))
+              (patches
+               (search-patches "php-bug-74093-test.patch"
+                               "php-openssl_x509_checkpurpose_basic.patch"))
               (modules '((guix build utils)))
               (snippet
                '(with-directory-excursion "ext"
@@ -81,8 +85,7 @@
                             ;;"fileinfo/libmagic" ; a patched version of libmagic
                             '("gd/libgd"
                               "pcre/pcre2lib"
-                              "xmlrpc/libxmlrpc"))
-                  #t))))
+                              "xmlrpc/libxmlrpc"))))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -93,7 +96,7 @@
          (list (with "--with-bz2" "bzip2")
                (with "--with-curl" "curl")
                (with "--with-gdbm" "gdbm")
-               (with "--with-gettext" "glibc") ; libintl.h
+               (with "--with-gettext" "libc")  ; libintl.h
                (with "--with-gmp" "gmp")
                (with "--with-ldap" "openldap")
                (with "--with-ldap-sasl" "cyrus-sasl")
@@ -367,7 +370,6 @@
        ("cyrus-sasl" ,cyrus-sasl)
        ("gd" ,gd)
        ("gdbm" ,gdbm)
-       ("glibc" ,glibc)
        ("gmp" ,gmp)
        ("gnutls" ,gnutls)
        ("icu4c" ,icu4c)
diff --git a/gnu/packages/piet.scm b/gnu/packages/piet.scm
index a09c05d990..824efe59de 100644
--- a/gnu/packages/piet.scm
+++ b/gnu/packages/piet.scm
@@ -52,11 +52,8 @@
                  `("PATH" ":" prefix (,(dirname (which "wish")))))
                #t))))))
     (inputs
-     `(("gd" ,gd)
-       ("giflib" ,giflib)
-       ("libpng" ,libpng)
-       ("tk" ,tk)))
-    (native-inputs `(("groff" ,groff)))
+     (list gd giflib libpng tk))
+    (native-inputs (list groff))
     (synopsis "Piet interpreter")
     (description
      "Npiet is an interpreter for the Piet programming language.  Instead of
@@ -151,11 +148,9 @@ an Algol-like language
                    #t)))))))
       (native-inputs
        ;; For our tests.
-       `(("netpbm" ,netpbm)
-         ("npiet" ,npiet)))
+       (list netpbm npiet))
       (inputs
-       `(("perl" ,perl)
-         ("perl-parse-recdescent" ,perl-parse-recdescent)))
+       (list perl perl-parse-recdescent))
       (home-page "https://www.toothycat.net/wiki/wiki.pl?MoonShadow/Piet")
       (synopsis "Piet compiler and assembler")
       (description
diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm
index 2b4173a7db..770426d779 100644
--- a/gnu/packages/pkg-config.scm
+++ b/gnu/packages/pkg-config.scm
@@ -145,8 +145,7 @@ build, or a GNU triplet."
     (source #f)
     (build-system trivial-build-system)
     (inputs
-     `(("bash-minimal" ,bash-minimal)
-       ("pkg-config" ,%pkg-config)))
+     (list bash-minimal %pkg-config))
     (arguments
      `(#:modules ((guix build utils))
        #:builder
@@ -166,5 +165,5 @@ exec ~a \"$@\""
      (map (lambda (original)
             (search-path-specification
              (inherit original)
-             (variable "PKG_CONFIG_FOR_BUILD")))
+             (variable "PKG_CONFIG_PATH_FOR_BUILD")))
           (package-native-search-paths %pkg-config)))))
diff --git a/gnu/packages/plan9.scm b/gnu/packages/plan9.scm
index e306e04d85..73694c4ed3 100644
--- a/gnu/packages/plan9.scm
+++ b/gnu/packages/plan9.scm
@@ -55,8 +55,7 @@
                  (install-file "drawterm" bin)
                  (install-file "drawterm.1" man)))))))
       (inputs
-       `(("libx11" ,libx11)
-         ("libxt" ,libxt)))
+       (list libx11 libxt))
       (synopsis "Connect to Plan 9 systems")
       (home-page "http://drawterm.9front.org")
       (description
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index cb6ac63005..ecee057913 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -22,6 +22,8 @@
 
 (define-module (gnu packages plotutils)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix gexp)
+  #:use-module ((guix utils) #:select (target-x86-32?))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -83,11 +85,28 @@
               (search-patches "plotutils-spline-test.patch"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags (list "--enable-libplotter")))
-    (inputs `(("libpng" ,libpng)
-              ("libx11" ,libx11)
-              ("libxt" ,libxt)
-              ("libxaw" ,libxaw)))
+     (list #:configure-flags
+           #~(list "--enable-libplotter"
+
+                   ;; On i686 some tests fail due to excess floating point
+                   ;; precision; work around it.  However, libplotter is C++
+                   ;; and thus unaffected by CFLAGS, but '-fexcess-precision'
+                   ;; is not implemented for C++ as of GCC 10.
+                   #$@(if (target-x86-32?)
+                          #~("CFLAGS=-g -O2 -fexcess-precision=standard")
+                          #~()))
+
+           #:phases
+           (if (target-x86-32?)
+               #~(modify-phases %standard-phases
+                   (add-before 'check 'skip-sloppy-test
+                     (lambda _
+                       ;; This test reveals a slight difference in the SVG
+                       ;; output due to floating point inequalities.  Skip it.
+                       (substitute* "test/plot2svg.test"
+                         (("^exit .*") "exit 77")))))
+               #~%standard-phases)))
+    (inputs (list libpng libx11 libxt libxaw))
     (home-page "https://www.gnu.org/software/plotutils/")
     (synopsis "Plotting utilities and library")
     (description
@@ -98,6 +117,54 @@ for 2D vector graphics animations.  The package also contains command-line
 programs for plotting scientific data.")
     (license license:gpl2+)))
 
+(define-public guile-plotutils
+  (package
+    (name "guile-plotutils")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (list (string-append "https://lonelycactus.com/tarball/"
+                                        "guile_plotutils-" version ".tar.gz")
+                         (string-append
+                          "https://github.com/spk121/guile-plotutils/releases/download/v"
+                          version "/guile_plotutils-" version
+                          ".tar.gz")))
+              (sha256
+               (base32
+                "0r245z75cdzgzi57fpz84mnyrjq44793zzaaxxrszyxm1d06hc6r"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:imported-modules ((guix build guile-build-system)
+                           ,@%gnu-build-system-modules)
+       #:modules (((guix build guile-build-system)
+                   #:select (target-guile-effective-version))
+                  (guix build gnu-build-system)
+                  (guix build utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'set-library-file-name
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (version (target-guile-effective-version)))
+               ;; First install libguile-plotutils.so.
+               (invoke "make" "install-guileextensionLTLIBRARIES")
+
+               ;; Then change source files to refer to it.
+               (substitute* '("module/plotutils/graph.scm"
+                              "module/plotutils/plot.scm")
+                 (("\"libguile-plotutils\"")
+                  (string-append "\"" out "/lib/guile/" version
+                                 "/extensions/libguile-plotutils\"")))))))))
+    (native-inputs (list pkg-config texinfo))
+    (inputs (list plotutils guile-3.0 zlib))
+    (home-page "https://lonelycactus.com/guile-plotutils.html")
+    (synopsis "Guile bindings to the GNU Plotutils plotting libraries")
+    (description
+     "Guile-Plotutils is a Guile binding to the venerable GNU Plotutils
+plotting and graphing library.  If you want to make graphs that look like you
+went to university in the 1990s, this is the library for you.")
+    (license license:gpl3+)))
+
 (define-public guile-charting
   ;; This commit fixes a few things, including Guile 3 support, not available
   ;; in the latest release.
@@ -117,12 +184,9 @@ programs for plotting scientific data.")
                   "03049g7wnpyfi0r36ij4a46kc9l45jbanx02iklkjwav2n6jqnnk"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("texinfo" ,texinfo)
-         ("pkg-config" ,pkg-config)))
-      (inputs `(("guile" ,guile-3.0)))
-      (propagated-inputs `(("guile-cairo" ,guile-cairo)))
+       (list autoconf automake texinfo pkg-config))
+      (inputs (list guile-3.0))
+      (propagated-inputs (list guile-cairo))
       (home-page "http://wingolog.org/projects/guile-charting/")
       (synopsis "Create charts and graphs in Guile")
       (description
@@ -134,11 +198,8 @@ using the Cairo drawing library.")
   (package
     (inherit guile-charting)
     (name "guile2.2-charting")
-    (inputs `(("guile" ,guile-2.2)))
-    (propagated-inputs `(("guile-cairo" ,guile2.2-cairo)))))
-
-(define-public guile3.0-charting
-  (deprecated-package "guile3.0-charting" guile-charting))
+    (inputs (list guile-2.2))
+    (propagated-inputs (list guile2.2-cairo))))
 
 (define-public ploticus
   (package
@@ -190,9 +251,7 @@ using the Cairo drawing library.")
                         (wrap-program (string-append bin "/pl")
                           `("PLOTICUS_PREFABS" ":" = (,dir)))))))))
     (inputs
-     `(("libpng" ,libpng)
-       ("libx11" ,libx11)
-       ("zlib" ,zlib)))
+     (list libpng libx11 zlib))
     (home-page "http://ploticus.sourceforge.net/")
     (synopsis "Command-line tool for producing plots and charts")
     (description
@@ -224,28 +283,36 @@ colors, styles, options and details.")
        ("perl" ,perl)
        ("texinfo" ,texinfo)             ;For generating documentation
        ;; For the manual and the tests.
-       ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
-                                        texlive-epsf
-                                        texlive-etoolbox
-                                        texlive-latex-base
-                                        texlive-latex-geometry
-                                        texlive-latex-graphics
-                                        texlive-oberdiek ;for ifluatex
-                                        texlive-latex-parskip
-                                        texlive-tex-texinfo)))))
+       ("texlive" ,(texlive-updmap.cfg
+                    (list texlive-amsfonts
+                          texlive-dvips-l3backend
+                          texlive-epsf
+                          texlive-etoolbox
+                          texlive-fonts-ec
+                          texlive-generic-infwarerr
+                          texlive-generic-kvdefinekeys
+                          texlive-grfext
+                          texlive-latex-base
+                          texlive-latex-geometry
+                          texlive-latex-graphics
+                          texlive-latex-kvoptions
+                          texlive-latex-pdftexcmds
+                          texlive-oberdiek ;for ifluatex
+                          texlive-latex-parskip
+                          texlive-tex-texinfo)))))
     (inputs
-     `(("fftw" ,fftw)
-       ("freeglut" ,freeglut)
-       ("glew" ,glew)
-       ("glm" ,glm)
-       ("gsl" ,gsl)
-       ("libgc" ,libgc)
-       ("python" ,python)
-       ("python-cson" ,python-cson)
-       ("python-numpy" ,python-numpy)
-       ("python-pyqt" ,python-pyqt)
-       ("readline" ,readline)
-       ("zlib" ,zlib)))
+     (list fftw
+           freeglut
+           glew
+           glm
+           gsl
+           libgc
+           python
+           python-cson
+           python-numpy
+           python-pyqt
+           readline
+           zlib))
     (arguments
      `(#:modules ((guix build emacs-utils)
                   (guix build gnu-build-system)
diff --git a/gnu/packages/poedit.scm b/gnu/packages/poedit.scm
index 3487636a3d..fd8ed06c83 100644
--- a/gnu/packages/poedit.scm
+++ b/gnu/packages/poedit.scm
@@ -60,19 +60,16 @@
                             (assoc-ref %build-inputs "boost")
                             "/lib"))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext-minimal" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake gettext-minimal pkg-config))
     (inputs
-     `(("boost" ,boost)
-       ("enchant" ,enchant)
-       ("gtk+" ,gtk+)
-       ("gtkspell3" ,gtkspell3)
-       ("icu4c" ,icu4c)
-       ("lucene++" ,lucene++)
-       ("pugixml" ,pugixml)
-       ("wxwidgets" ,wxwidgets)))
+     (list boost
+           enchant
+           gtk+
+           gtkspell3
+           icu4c
+           lucene++
+           pugixml
+           wxwidgets))
     (home-page "https://poedit.net/")
     (synopsis "Gettext catalog editing tool")
     (description "Poedit is a GUI frontend to the GNU gettext utilities and
diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 585e0d8087..e4f4b1276f 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -1,11 +1,14 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
+;;; Copyright © 2015, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Huang Ying <huang.ying.caritas@gmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,25 +29,31 @@
   #:use-module ((guix licenses) #:select (lgpl2.0+))
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix memoization)
+  #:use-module (guix utils)
+  #:use-module (guix build utils)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages gnuzilla)
+  #:use-module (gnu packages javascript)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages qt)
-  #:use-module (gnu packages xml))
+  #:use-module (gnu packages xml)
+  #:export (polkit))
 
-(define-public polkit
+(define-public polkit-mozjs
   (package
     (name "polkit")
-    (version "0.116")
-    (replacement polkit/fixed)
+    (version "0.120")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -52,7 +61,8 @@
                    name "-" version ".tar.gz"))
              (sha256
               (base32
-               "1c9lbpndh5zis22f154vjrhnqw65z8s85nrgl42v738yf6g0q5w8"))
+               "00zfg9b9ivkcj2jcf5b92cpvvyljz8cmfwj86lkvy5rihnd5jypf"))
+             (patches (search-patches "polkit-configure-elogind.patch"))
              (modules '((guix build utils)))
              (snippet
               '(begin
@@ -61,44 +71,33 @@
                  (substitute* "test/Makefile.in"
                    (("SUBDIRS = mocklibc . polkit polkitbackend")
                     "SUBDIRS = mocklibc . polkit"))
-                 (substitute* "configure"
-                   ;; Replace libsystemd-login with libelogind.
-                   (("libsystemd-login") "libelogind")
-                   ;; Skip the sanity check that the current system runs
-                   ;; systemd.
-                   (("test ! -d /sys/fs/cgroup/systemd/") "false"))
-                 (substitute* "src/polkit/polkitunixsession-systemd.c"
-                   (("systemd") "elogind"))
-                 (substitute* "src/polkitbackend/polkitbackendsessionmonitor-systemd.c"
-                   (("systemd") "elogind"))
-                 (substitute* "src/polkitbackend/polkitbackendjsauthority.cpp"
-                   (("systemd") "elogind"))
-
-                 ;; Guix System's polkit service stores actions under
-                 ;; /etc/polkit-1/actions.
+                 ;; Disable a test that requires Python, D-Bus and a few
+                 ;; libraries and fails with "ERROR: timed out waiting for bus
+                 ;; process to terminate".
+                 (substitute* "test/polkitbackend/Makefile.am"
+                   (("TEST_PROGS \\+= polkitbackendjsauthoritytest-wrapper.py")
+                    ""))
+                 ;; Guix System's polkit
+                 ;; service stores actions under /etc/polkit-1/actions.
                  (substitute* "src/polkitbackend/polkitbackendinteractiveauthority.c"
                    (("PACKAGE_DATA_DIR \"/polkit-1/actions\"")
                     "PACKAGE_SYSCONF_DIR \"/polkit-1/actions\""))
-
                  ;; Set the setuid helper's real location.
                  (substitute* "src/polkitagent/polkitagentsession.c"
                    (("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"")
-                    "\"/run/setuid-programs/polkit-agent-helper-1\""))
-                 #t))))
+                    "\"/run/setuid-programs/polkit-agent-helper-1\""))))))
     (build-system gnu-build-system)
     (inputs
-     `(("expat" ,expat)
-       ("linux-pam" ,linux-pam)
-       ("elogind" ,elogind)
-       ("mozjs" ,mozjs-60)
-       ("nspr" ,nspr)))
+     (list expat linux-pam elogind mozjs-78 nspr))
     (propagated-inputs
-     `(("glib" ,glib))) ; required by polkit-gobject-1.pc
+     (list glib)) ; required by polkit-gobject-1.pc
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("glib:bin" ,glib "bin") ; for glib-mkenums
        ("intltool" ,intltool)
-       ("gobject-introspection" ,gobject-introspection)))
+       ("gobject-introspection" ,gobject-introspection)
+       ("libxslt" ,libxslt) ; for man page generation
+       ("docbook-xsl" ,docbook-xsl))) ; for man page generation
     (arguments
      `(#:configure-flags '("--sysconfdir=/etc"
                            "--enable-man-pages"
@@ -117,8 +116,15 @@
                 (("@INTROSPECTION_GIRDIR@")
                  (string-append out "/share/gir-1.0/"))
                 (("@INTROSPECTION_TYPELIBDIR@")
-                 (string-append out "/lib/girepository-1.0/")))
-              #t)))
+                 (string-append out "/lib/girepository-1.0/"))))))
+         (add-after 'unpack 'fix-manpage-generation
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((xsldoc (string-append (assoc-ref inputs "docbook-xsl")
+                                          "/xml/xsl/docbook-xsl-"
+                                          ,(package-version docbook-xsl))))
+               (substitute* '("docs/man/Makefile.am" "docs/man/Makefile.in")
+                 (("http://docbook.sourceforge.net/release/xsl/current")
+                  xsldoc)))))
          (replace
           'install
           (lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
@@ -130,8 +136,7 @@
                            (string-append "sysconfdir=" out "/etc")
                            (string-append "polkit_actiondir="
                                           out "/share/polkit-1/actions")
-                           make-flags)
-             #t))))))
+                           make-flags)))))))
     (home-page "https://www.freedesktop.org/wiki/Software/polkit/")
     (synopsis "Authorization API for privilege management")
     (description "Polkit is an application-level toolkit for defining and
@@ -141,12 +146,52 @@ making process with respect to granting access to privileged operations
 for unprivileged applications.")
     (license lgpl2.0+)))
 
-(define polkit/fixed
-  (package
-    (inherit polkit)
-    (source (origin
-              (inherit (package-source polkit))
-              (patches (search-patches "polkit-CVE-2021-3560.patch"))))))
+;;; Variant of polkit built with Duktape, a lighter JavaScript engine compared
+;;; to mozjs.
+(define-public polkit-duktape
+  (let ((base polkit-mozjs))
+    (package/inherit base
+      (name "polkit-duktape")
+      (source
+       (origin
+         (inherit (package-source base))
+         (patches
+          (append
+              (search-patches "polkit-use-duktape.patch")
+              (origin-patches (package-source base))))))
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:configure-flags flags)
+          `(cons "--with-duktape" ,flags))
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'unpack 'force-gnu-build-system-bootstrap
+               (lambda _
+                 (delete-file "configure")))))))
+      (native-inputs
+       (append `(("autoconf" ,autoconf)
+                 ("automake" ,automake)
+                 ("libtool" ,libtool)
+                 ("pkg-config" ,pkg-config))
+           (package-native-inputs base)))
+      (inputs (alist-replace "mozjs" `(,duktape)
+                             (package-inputs base))))))
+
+(define polkit-for-system
+  (mlambda (system)
+    "Return a polkit package that can be built for SYSTEM; that is, either the
+regular polkit that requires mozjs or its duktape variant."
+    (if (string-prefix? "x86_64" system)
+        polkit-mozjs
+        polkit-duktape)))
+
+;;; Define a top level polkit variable that can be built on any of the
+;;; supported platforms.  This is to work around the fact that our
+;;; mrustc-bootstrapped rust toolchain currently only supports the x86_64
+;;; architecture.
+(define-syntax polkit
+  (identifier-syntax (polkit-for-system
+                      (or (%current-target-system) (%current-system)))))
 
 (define-public polkit-qt
   (package
@@ -162,11 +207,11 @@ for unprivileged applications.")
                "1ip78x20hjqvm08kxhp6gb8hf6k5n6sxyx6kk2yvvq53djzh7yv7"))))
     (build-system cmake-build-system)
     (inputs
-     `(("polkit" ,polkit)))
+     (list polkit))
     (propagated-inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:configure-flags (list (string-append "-DCMAKE_INSTALL_RPATH="
                                               (assoc-ref %outputs "out")
@@ -195,10 +240,8 @@ easily with PolicyKit.")
                (base32
                 "0sckmcbxyj6sbrnfc5p5lnw27ccghsid6v6wxq09mgxqcd4lk10p"))))
     (build-system gnu-build-system)
-    (inputs `(("gtk+" ,gtk+)
-              ("polkit" ,polkit)))
-    (native-inputs `(("intltool"   ,intltool)
-                     ("pkg-config" ,pkg-config)))
+    (inputs (list gtk+ polkit))
+    (native-inputs (list intltool pkg-config))
     (synopsis "Legacy polkit authentication agent for GNOME")
     (description "PolicyKit-gnome provides a D-Bus session bus service
 that is used to bring up authentication dialogs used for obtaining
diff --git a/gnu/packages/popt.scm b/gnu/packages/popt.scm
index 1c325e0c3d..16ff2c3448 100644
--- a/gnu/packages/popt.scm
+++ b/gnu/packages/popt.scm
@@ -141,7 +141,7 @@ appropriately.")
      `(#:parallel-build? #f             ; not supported
        #:parallel-tests? #f))           ; likewise
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (synopsis "Create parsers for command line options")
     (description
      "GNU Gengetopt is a program to generate a C/C++ function for parsing
diff --git a/gnu/packages/presentation.scm b/gnu/packages/presentation.scm
index 8d24a81f9d..1601ba7f2a 100644
--- a/gnu/packages/presentation.scm
+++ b/gnu/packages/presentation.scm
@@ -71,16 +71,15 @@
                  '("presentty" "presentty-console")))
              #t)))))
     (inputs
-     `(("cowsay" ,cowsay)
-       ("figlet" ,figlet)
-       ("jp2a" ,jp2a)
-       ("python-docutils" ,python-docutils)
-       ("python-pillow" ,python-pillow-2.9)
-       ("python-six" ,python-six)
-       ("python-urwid" ,python-urwid)))
+     (list cowsay
+           figlet
+           jp2a
+           python-docutils
+           python-pillow-2.9
+           python-six
+           python-urwid))
     (native-inputs
-     `(("python-pbr" ,python-pbr)
-       ("python-pygments" ,python-pygments)))
+     (list python-pbr python-pygments))
     (home-page "http://git.inaugust.com/cgit/presentty/")
     (synopsis "Console-based presentation system")
     (description "Presentty is a console-based presentation program where slides
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index d7a5ddc8e5..05960f6f48 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -72,12 +72,9 @@
                         "a2ps-CVE-2015-8107.patch"))))
     (build-system gnu-build-system)
     (inputs
-     `(("psutils" ,psutils)
-       ("gv" ,gv)))
+     (list psutils gv))
     (native-inputs
-     `(("gperf" ,gperf)
-       ("groff" ,groff)
-       ("perl" ,perl)))
+     (list gperf groff perl))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -168,19 +165,19 @@ different programming languages.")
 (define-public fmt
   (package
     (name "fmt")
-    (version "7.1.3")
+    (version "8.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/fmtlib/fmt/releases/download/"
                            version "/fmt-" version ".zip"))
        (sha256
-        (base32 "17sc10hfg087z0s774lnn05wwy3bfzmcv7j448p92pr0s02cb62x"))))
+        (base32 "1gqmsk4r93x65cqs8w7zhfiv70w5fv8279nrblggqm4mmdpaa9x6"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://fmt.dev")
     (synopsis "Small and fast C++ formatting library")
     (description
@@ -190,6 +187,17 @@ to @code{IOStreams}.")
     ;; The library is bsd-2, but documentation and tests include other licenses.
     (license (list bsd-2 bsd-3 psfl))))
 
+(define-public fmt-7
+  (package (inherit fmt)
+    (version "7.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/fmtlib/fmt/releases/download/"
+                           version "/fmt-" version ".zip"))
+       (sha256
+        (base32 "17sc10hfg087z0s774lnn05wwy3bfzmcv7j448p92pr0s02cb62x"))))))
+
 (define-public fmt-for-irods
   (package
     (inherit fmt)
@@ -229,7 +237,7 @@ to @code{IOStreams}.")
                        (getenv "CPLUS_INCLUDE_PATH"))))))))
     (properties `((hidden? . #true)))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (inputs
      `(("libcxx" ,libcxx+libcxxabi-6)
        ("libcxxabi" ,libcxxabi-6)
@@ -251,10 +259,9 @@ to @code{IOStreams}.")
     ;; The ctags that comes with emacs does not support the --excmd options,
     ;; so can't be used
     (inputs
-     `(("boost" ,boost)))
+     (list boost))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (arguments
      `(#:configure-flags
        (list (string-append "--with-boost="
@@ -347,12 +354,9 @@ seen in a terminal.")
                  (install-file "highlight.so" autodir))
                #t))))))
     (inputs
-     `(("lua" ,lua)
-       ("boost" ,boost)
-       ("perl" ,perl)))
+     (list lua boost perl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("swig" ,swig)))
+     (list pkg-config swig))
     (home-page "http://www.andre-simon.de/doku/highlight/en/highlight.php")
     (synopsis "Convert code to documents with syntax highlighting")
     (description "Highlight converts source code to HTML, XHTML, RTF, LaTeX,
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index b4d52d8d85..3cfe89d963 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -57,14 +57,11 @@
        (sha256 (base32 "1m62s8fkjjgq04ayf18jcxc33rqfd7nrkdw1gr54q5pn4cijrp29"))))
     (build-system gnu-build-system)
     (inputs
-     `(("ncurses" ,ncurses)
-       ("lm-sensors" ,lm-sensors "lib")
-       ("rdma-core" ,rdma-core)
-       ("infiniband-diags" ,infiniband-diags "lib")
-       ("net-tools" ,net-tools)))
+     (list ncurses
+           `(,lm-sensors "lib") rdma-core
+           `(,infiniband-diags "lib") net-tools))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("gfortran" ,gfortran)))
+     (list autoconf gfortran))
     (arguments
      `(#:tests? #f ; no check target
        #:configure-flags
@@ -147,7 +144,7 @@ performance measurement opportunites across the hardware and software stack.")
        (uri (string-append "http://www.vi-hps.org/upload/packages/otf2/otf2-"
                            version ".tar.gz"))
        (sha256 (base32 "1ls7rz6qwnqbkifpafc95bnfh3m9xbs74in8zxlnhfbgwx11nn81"))))
-    (native-inputs `(("python" ,python)))
+    (native-inputs (list python))
     (outputs '("doc"                              ; 18MB
                "lib"
                "out"))
@@ -182,9 +179,9 @@ memory-efficient event trace data format plus support library.")
        (sha256
         (base32 "1xaf25lcxk4ky1kzfks40ja9mayh8pnmrzch2107c8dcjrsxsd4h"))))
     (build-system gnu-build-system)
-    (inputs `(("gfortran" ,gfortran)))
-    (native-inputs `(("gawk" ,gawk)     ; for tests
-                     ("which" ,which)))
+    (inputs (list gfortran))
+    (native-inputs (list gawk ; for tests
+                         which))
     (home-page "https://www.vi-hps.org/projects/score-p")
     (synopsis "OpenMP runtime performance measurement instrumenter")
     (description "OPARI2 is a source-to-source instrumentation tool for OpenMP
@@ -204,11 +201,9 @@ with calls to the POMP2 measurement interface.")
              version ".tar.gz"))
        (sha256 (base32 "04irflia4rfw02093w9nx7rr98r640y4q8hisjywvd4b7r3nzhhx"))
        (patches (search-patches "cube-nocheck.patch"))))
-    (inputs `(("dbus" ,dbus)
-              ("zlib" ,zlib)))
-    (native-inputs `(("perl" ,perl)
-                     ("qtbase" ,qtbase-5)           ; native because of qmake
-                     ("which" ,which)))
+    (inputs (list dbus zlib))
+    (native-inputs (list perl qtbase-5 ; native because of qmake
+                         which))
 
     ;; FIXME: The doc is 14MB, but adding a doc output results in a cycle.
     (outputs '("out"                              ;"doc"
@@ -354,13 +349,13 @@ different kinds of performance behavior.")
        ("openmpi" ,openmpi)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("flex" ,flex)
-       ("cube" ,cube)                             ;for cube-config
-       ("bison" ,bison)
-       ("python" ,python)
-       ("doxygen" ,doxygen)
-       ("which" ,which)))
+     (list gfortran
+           flex
+           cube ;for cube-config
+           bison
+           python
+           doxygen
+           which))
     (arguments
      `(#:configure-flags
        (list "--enable-shared" "--disable-static"
diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm
index f8dff1f229..b08c049717 100644
--- a/gnu/packages/protobuf.scm
+++ b/gnu/packages/protobuf.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -59,9 +60,9 @@
          "1i9y8a1712aj80p5a1kcp378bnjrg3s2127q7304hklhmjcrjl1d"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libevent" ,libevent)))
+     (list libevent))
     (home-page "https://github.com/farsightsec/fstrm")
     (synopsis "Implementation of the Frame Streams data transport protocol")
     (description
@@ -94,7 +95,7 @@ data in motion, or as a file format for data at rest.")
                (base32
                 "1jzqrklhj9grs6xbddyb5dyxfbgbgbyhl5zig8ml50wb22gwkkji"))))
     (build-system gnu-build-system)
-    (inputs `(("zlib" ,zlib)))
+    (inputs (list zlib))
     (outputs (list "out"
                    "static"))           ; ~12 MiB of .a files
     (arguments
@@ -194,8 +195,8 @@ internal RPC protocols and file formats.")
                (base32
                 "0y3yaanq97si7iyld06p8w20m0shpj7sf4xwzbhhvijhxw36d592"))))
     (build-system gnu-build-system)
-    (inputs `(("protobuf" ,protobuf)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list protobuf))
+    (native-inputs (list pkg-config))
     (home-page "https://github.com/protobuf-c/protobuf-c")
     (synopsis "Protocol Buffers implementation in C")
     (description
@@ -209,7 +210,7 @@ code.")
 (define-public protozero
   (package
     (name "protozero")
-    (version "1.6.8")
+    (version "1.7.0")
     (source
      (origin
        (method git-fetch)
@@ -218,7 +219,7 @@ code.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1hfijpfylf1c71wa3mk70gjc88b6k1q7cxb87cwqdflw5q2x8ma6"))))
+        (base32 "0fdihfl5j68wayjjxvpvhvnjq1anzcfnfl09f68wpzbkg3zmhblz"))))
     (build-system cmake-build-system)
     (home-page "https://github.com/mapbox/protozero")
     (synopsis "Minimalistic protocol buffer decoder and encoder in C++")
@@ -242,9 +243,9 @@ encoder in C++.  The developer using protozero has to manually translate the
          "0mj6z58aiw532s1mq48m9xdrm3gdyp2vv9cdinfb5wmnfpm5m7n9"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-wheel" ,python-wheel)))
+     (list python-wheel))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/google/protobuf")
     (synopsis "Protocol buffers is a data interchange format")
     (description
@@ -268,10 +269,7 @@ mechanism for serializing structured data.")
         (base32 "15dp5pvazd0jx4wzzh79080ah7hkpd3axh40al9vhzs2hf3v90hx"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-flake8" ,python-flake8)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-isort" ,python-isort)))
+     (list python-flake8 python-pytest python-pytest-cov python-isort))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -384,26 +382,23 @@ source files.")
            (lambda _
              (invoke "rspec"))))))
     (native-inputs
-     `(("ruby-benchmark-ips" ,ruby-benchmark-ips)
-       ("ruby-ffi-rzmq" ,ruby-ffi-rzmq)
-       ("ruby-parser" ,ruby-parser)
-       ("ruby-pry-byebug" ,ruby-pry-byebug)
-       ("ruby-pry-stack-explorer" ,ruby-pry-stack-explorer)
-       ("ruby-rake" ,ruby-rake)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-ruby-prof" ,ruby-ruby-prof)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-timecop" ,ruby-timecop)
-       ("ruby-varint" ,ruby-varint)
-       ("ruby-yard" ,ruby-yard)))
+     (list ruby-benchmark-ips
+           ruby-ffi-rzmq
+           ruby-parser
+           ruby-pry-byebug
+           ruby-pry-stack-explorer
+           ruby-rake
+           ruby-rspec
+           ruby-rubocop
+           ruby-ruby-prof
+           ruby-simplecov
+           ruby-timecop
+           ruby-varint
+           ruby-yard))
     (inputs
-     `(("protobuf" ,protobuf)))
+     (list protobuf))
     (propagated-inputs
-     `(("ruby-activesupport" ,ruby-activesupport)
-       ("ruby-middleware" ,ruby-middleware)
-       ("ruby-thor" ,ruby-thor)
-       ("ruby-thread-safe" ,ruby-thread-safe)))
+     (list ruby-activesupport ruby-middleware ruby-thor ruby-thread-safe))
     (home-page "https://github.com/ruby-protobuf/protobuf")
     (synopsis "Implementation of Google's Protocol Buffers in Ruby")
     (description "Protobuf is an implementation of Google's Protocol Buffers
diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm
index 59db96e0ef..5cda29789f 100644
--- a/gnu/packages/pulseaudio.scm
+++ b/gnu/packages/pulseaudio.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -49,7 +50,9 @@
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
-  #:use-module (gnu packages dbm)
+  #:use-module (gnu packages databases)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnome)
@@ -100,13 +103,9 @@
                  #t))))
     (build-system gnu-build-system)
     (propagated-inputs
-     `(("flac" ,flac)
-       ("libogg" ,libogg)
-       ("libvorbis" ,libvorbis)
-       ("opus" ,opus)))
+     (list flac libogg libvorbis opus))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)))
+     (list pkg-config python))
     (home-page "http://www.mega-nerd.com/libsndfile/")
     (synopsis "Reading and writing files containing sampled sound")
     (description
@@ -128,10 +127,7 @@ for reading and writing new sound file formats.")
     (inherit libsndfile)
     (inputs '())
     (propagated-inputs
-     `(("libvorbis" ,libvorbis)
-       ("libogg" ,libogg)
-       ("flac" ,flac)
-       ("opus" ,opus)))))
+     (list libvorbis libogg flac opus))))
 
 (define-public libsamplerate
   (package
@@ -146,11 +142,9 @@ for reading and writing new sound file formats.")
                "1ha46i0nbibq0pl0pjwcqiyny4hj8lp1bnl4dpxm64zjw9lb2zha"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("automake" ,automake))) ;For up to date 'config.guess' and 'config.sub'.
+     (list pkg-config automake)) ;For up to date 'config.guess' and 'config.sub'.
     (propagated-inputs
-     `(("libsndfile" ,libsndfile)
-       ("fftw" ,fftw)))
+     (list libsndfile fftw))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -192,7 +186,7 @@ rates.")
 (define-public pulseaudio
   (package
     (name "pulseaudio")
-    (version "14.0")
+    (version "15.0")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -200,7 +194,7 @@ rates.")
                    name "-" version ".tar.xz"))
              (sha256
               (base32
-               "0qf20rgg0ysrnvg3359j56ndls07qmfn5rsy9r85bc42jdfpfd58"))
+               "1851rg4h6sjwanvd294hn52z321rc6vbs4gbfrlw53597dx8h2x4"))
              (modules '((guix build utils)))
              (snippet
               ;; Disable console-kit support by default since it's deprecated
@@ -213,14 +207,19 @@ rates.")
              (patches (search-patches
                        "pulseaudio-fix-mult-test.patch"
                        "pulseaudio-longer-test-timeout.patch"))))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (arguments
-     `(#:configure-flags (list "--localstatedir=/var" ;"--sysconfdir=/etc"
-                               "--disable-oss-output"
-                               "--enable-bluez5"
-                               (string-append "--with-udev-rules-dir="
-                                              (assoc-ref %outputs "out")
-                                              "/lib/udev/rules.d"))
+     `(#:configure-flags
+       (let ((out (assoc-ref %outputs "out")))
+         (list "-Doss-output=disabled"
+               "-Dlocalstatedir=/var"
+               (string-append "-Dudevrulesdir="
+                              out "/lib/udev/rules.d")
+               ;; Ensure the RUNPATH contains all installed library locations.
+               (string-append "-Dc_link_args=-Wl,-rpath="
+                              out "/lib/pulseaudio:"
+                              out "/lib:"
+                              out "/lib/pulse-" ,version "/modules")))
        #:phases (modify-phases %standard-phases
                  (add-before 'check 'pre-check
                    (lambda _
@@ -232,29 +231,28 @@ rates.")
                      (setenv "CK_DEFAULT_TIMEOUT" "120")
                      #t)))))
     (inputs
-     ;; TODO: Add optional inputs (GTK+?).
-     `(("alsa-lib" ,alsa-lib)
-       ("bluez" ,bluez)
-       ("sbc" ,sbc)
-       ("speexdsp" ,speexdsp)
-       ("libsndfile" ,libsndfile)
-       ("jack" ,jack-1) ; For routing the output to jack.
-       ("dbus" ,dbus)
-       ("glib" ,glib)
-       ("libltdl" ,libltdl)
-       ("fftwf" ,fftwf)
-       ("avahi" ,avahi)
-       ("webrtc-audio-processing", webrtc-audio-processing)
-
-       ;; For the optional X11 modules.
-       ("libice" ,libice)
-       ("libsm" ,libsm)
-       ("libxcb" ,libxcb)
-       ("libxtst" ,libxtst)
-
-       ("eudev" ,eudev)))         ;for the detection of hardware audio devices
+     (list alsa-lib
+           bluez
+           sbc
+           speexdsp
+           libsndfile
+           jack-1 ; For routing the output to jack.
+           dbus
+           glib
+           libltdl
+           fftwf
+           avahi
+           webrtc-audio-processing
+           ;; For the optional X11 modules.
+           libice
+           libsm
+           libxcb
+           libxtst
+           elogind
+           eudev))         ;for the detection of hardware audio devices
     (native-inputs
      `(("check" ,check)
+       ("doxygen" ,doxygen)
        ("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
        ("m4" ,m4)
@@ -262,9 +260,8 @@ rates.")
        ("perl-xml-parser" ,perl-xml-parser)
        ("pkg-config" ,pkg-config)))
     (propagated-inputs
-     ;; 'libpulse*.la' contain `-lgdbm' and `-lcap', so propagate them.
-     `(("libcap" ,libcap)
-       ("gdbm" ,gdbm)))
+     ;; 'libpulse*.la' contain `-ltdb' and `-lcap', so propagate them.
+     (list libcap tdb))
     (home-page "http://www.pulseaudio.org/")
     (synopsis "Sound server")
     (description
@@ -283,7 +280,7 @@ sound server.")
 (define-public pavucontrol
   (package
     (name "pavucontrol")
-    (version "4.0")
+    (version "5.0")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -292,16 +289,16 @@ sound server.")
                    ".tar.xz"))
              (sha256
               (base32
-               "1qhlkl3g8d7h72xjskii3g1l7la2cavwp69909pzmbi2jyn5pi4g"))))
+               "0yjfiwpaydh5s8v3l78dhwhbsmcl1xsq3p8rvz80m9zinp1p4ayf"))))
     (build-system glib-or-gtk-build-system)
     (inputs
-     `(("adwaita-icon-theme" ,adwaita-icon-theme)          ;hard-coded theme
-       ("gtkmm" ,gtkmm)
-       ("libcanberra" ,libcanberra)
-       ("pulseaudio" ,pulseaudio)))
+     (list adwaita-icon-theme ;hard-coded theme
+           gtkmm-3
+           json-glib
+           libcanberra
+           pulseaudio))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (home-page "https://www.freedesktop.org/software/pulseaudio/pavucontrol/")
     (synopsis "PulseAudio volume control")
     (description
@@ -336,9 +333,9 @@ easily control the volume of all clients, sinks, etc.")
                (("/usr") ""))))
          (delete 'configure)))) ; There's no configure phase.
     (inputs
-     `(("pulseaudio" ,pulseaudio)))
+     (list pulseaudio))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/falconindy/ponymix")
     (synopsis "Console-based PulseAudio mixer")
     (description "Ponymix is a PulseAudio mixer and volume controller with a
@@ -371,7 +368,7 @@ sinks.")
                   (string-append pulse "/lib/libpulse.so.0")))
                #t))))))
     (inputs
-     `(("pulseaudio" ,pulseaudio)))
+     (list pulseaudio))
     (home-page "https://github.com/GeorgeFilipkin/pulsemixer/")
     (synopsis "Command-line and curses mixer for PulseAudio")
     (description "Pulsemixer is a PulseAudio mixer with command-line and
@@ -398,20 +395,20 @@ curses-style interfaces.")
       (build-system python-build-system)
       (arguments `(#:python ,python-2))
       (inputs
-       `(("python2-chardet" ,python2-chardet)
-         ("python2-dbus" ,python2-dbus)
-         ("python2-docopt" ,python2-docopt)
-         ("python2-futures" ,python2-futures)
-         ("python2-pygobject" ,python2-pygobject)
-         ("python2-lxml" ,python2-lxml)
-         ("python2-netifaces" ,python2-netifaces)
-         ("python2-notify2" ,python2-notify2)
-         ("python2-protobuf" ,python2-protobuf)
-         ("python2-psutil" ,python2-psutil)
-         ("python2-requests" ,python2-requests)
-         ("python2-pyroute2" ,python2-pyroute2)
-         ("python2-setproctitle" ,python2-setproctitle)
-         ("python2-zeroconf" ,python2-zeroconf)))
+       (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
@@ -433,7 +430,7 @@ install one or more of the following packages alongside pulseaudio-dlna:
 (define-public pamixer
   (package
     (name "pamixer")
-    (version "1.4")
+    (version "1.5")
     (source
      (origin
        (method git-fetch)
@@ -442,22 +439,20 @@ install one or more of the following packages alongside pulseaudio-dlna:
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1i14550n8paijwwnhksv5izgfqm3s5q2773bdfp6vyqybkll55f7"))))
+        (base32 "1d5arjbsh3q9z693pi2rq553ai9b18iz36ss7q8ff29m0hf62lzd"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f                      ; There is no test suite.
+     `(#:tests? #f                      ; no test suite
        #:make-flags
        (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)            ; There's no configure phase.
+         (delete 'configure)            ; no configure script
          (add-before 'install 'mkdir-bin
            (lambda _
-             (mkdir-p (string-append (assoc-ref %outputs "out") "/bin"))
-             #t)))))
+             (mkdir-p (string-append (assoc-ref %outputs "out") "/bin")))))))
     (inputs
-     `(("boost" ,boost)
-       ("pulseaudio" ,pulseaudio)))
+     (list boost pulseaudio))
     (home-page "https://github.com/cdemoulins/pamixer")
     (synopsis "PulseAudio command line mixer")
     (description
@@ -488,15 +483,9 @@ volume levels of the sinks (get, set, decrease, increase, toggle mute, etc).")
              (delete-file "bootstrap.sh")
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
-     `(("avahi" ,avahi)
-       ("gtk+" ,gtk+)
-       ("libnotify" ,libnotify)
-       ("libx11" ,libx11)
-       ("pulseaudio" ,pulseaudio)))
+     (list avahi gtk+ libnotify libx11 pulseaudio))
     (home-page "https://github.com/christophgysin/pasystray")
     (synopsis "PulseAudio controller for the system tray")
     (description "@command{pasystray} enables control of various
@@ -518,11 +507,9 @@ README.md for a detailed list of features.")
          "189z5p20hk0xv9vwvym293503j4pwl03xqk9hl7cl6dwgv0l7wkf"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+     (list gettext-minimal pkg-config))
     (inputs
-     `(("gtkmm" ,gtkmm)
-       ("pulseaudio" ,pulseaudio)))
+     (list gtkmm-3 pulseaudio))
     (home-page "https://freedesktop.org/software/pulseaudio/paprefs/")
     (synopsis "Simple GTK based configuration dialog for the PulseAudio sound
 server")
@@ -550,8 +537,8 @@ module-gsettings is loaded in the sound server.")
      ;; No tests.
      '(#:tests? #f))
     (inputs
-     `(;; TODO: Package VST to build the corresponding plugin.
-       ("pulseaudio" ,pulseaudio)))
+     (list ;; TODO: Package VST to build the corresponding plugin.
+           pulseaudio))
     (home-page "https://github.com/werman/noise-suppression-for-voice")
     (synopsis "Real-time Noise suppression plugin based on Xiph's RNNoise")
     (description "The plugin is meant to suppress a wide range of noise
@@ -613,7 +600,7 @@ The plugin is made to work with 1 or 2 channels (ladspa plugin),
              (with-directory-excursion "src/github.com/lawl/NoiseTorch"
                (invoke "go" "generate")))))))
     (inputs
-     `(("rnnoise" ,rnnoise)))
+     (list rnnoise))
     (home-page "https://github.com/lawl/NoiseTorch")
     (synopsis "Real-time microphone noise suppression")
     (description "NoiseTorch creates a virtual PulseAudio microphone that
diff --git a/gnu/packages/pumpio.scm b/gnu/packages/pumpio.scm
index 1cdb2fdd88..2f4dd359d1 100644
--- a/gnu/packages/pumpio.scm
+++ b/gnu/packages/pumpio.scm
@@ -59,9 +59,7 @@
                (invoke "qmake" prefix))
              #t)))))
     (inputs
-     `(("aspell" ,aspell)
-       ("qtbase" ,qtbase-5)
-       ("tidy" ,tidy)))
+     (list aspell qtbase-5 tidy))
     (synopsis "Qt-based pump.io client")
     (description "Pumpa is a simple pump.io client written in C++ and Qt.")
     (home-page "https://pumpa.branchable.com/")
diff --git a/gnu/packages/pure.scm b/gnu/packages/pure.scm
index 39c1d6089f..cb4cdd4d88 100644
--- a/gnu/packages/pure.scm
+++ b/gnu/packages/pure.scm
@@ -56,9 +56,7 @@
                 "`$LLVMCONF --libs`"))
              #t)))))
     (inputs
-     `(("gmp" ,gmp)
-       ("llvm" ,llvm-3.5)
-       ("mpfr" ,mpfr)))
+     (list gmp llvm-3.5 mpfr))
     (home-page "https://agraef.github.io/pure-lang/")
     (synopsis "Pure programming Language")
     (description "@code{pure} is a programming language based on term
diff --git a/gnu/packages/purescript.scm b/gnu/packages/purescript.scm
index cc51b163c9..fe135be5d9 100644
--- a/gnu/packages/purescript.scm
+++ b/gnu/packages/purescript.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
 ;;; Copyright © 2020 Bonface Munyoki Kilyungi <bonfacemunyoki@gmail.com>
+;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,107 +31,158 @@
   #:use-module (guix build-system haskell)
   #:use-module ((guix licenses) #:prefix license:))
 
-(define ghc-happy-1.19.9
-  (package
-    (inherit ghc-happy)
-    (version "1.19.9")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/happy/happy-"
-             version
-             ".tar.gz"))
-       (sha256
-        (base32
-         "138xpxdb7x62lpmgmb6b3v3vgdqqvqn4273jaap3mjmc2gla709y"))))))
-
 (define-public purescript
   (package
     (name "purescript")
-    (version "0.13.8")
+    (version "0.14.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://hackage/package/purescript/purescript-"
+             "https://hackage.haskell.org/package/purescript/purescript-"
              version
              ".tar.gz"))
        (sha256
-        (base32
-         "0sh9z3ir3jiwmi5h95v9p7j746xxidg1hrxha89c0zl6vr4sq7vh"))
-       (patches (search-patches "purescript-relax-dependencies.patch"))))
+        (base32 "06f318hdah076vkviw1ryyg2p0gpbabsp8lbm5x03f2qv92n9j1n"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-glob" ,ghc-glob)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-aeson-better-errors" ,ghc-aeson-better-errors)
-       ("ghc-aeson-pretty" ,ghc-aeson-pretty)
-       ("ghc-ansi-terminal" ,ghc-ansi-terminal)
-       ("ghc-base-compat" ,ghc-base-compat)
-       ("ghc-blaze-html" ,ghc-blaze-html)
-       ("ghc-bower-json" ,ghc-bower-json)
-       ("ghc-boxes" ,ghc-boxes)
-       ("ghc-cborg" ,ghc-cborg)
-       ("ghc-cheapskate" ,ghc-cheapskate)
-       ("ghc-clock" ,ghc-clock)
-       ("ghc-cryptonite" ,ghc-cryptonite)
-       ("ghc-data-ordlist" ,ghc-data-ordlist)
-       ("ghc-dlist" ,ghc-dlist)
-       ("ghc-edit-distance" ,ghc-edit-distance)
-       ("ghc-file-embed" ,ghc-file-embed)
-       ("ghc-fsnotify" ,ghc-fsnotify)
-       ("ghc-happy" ,ghc-happy)
-       ("ghc-language-javascript" ,ghc-language-javascript)
-       ("ghc-lifted-async" ,ghc-lifted-async)
-       ("ghc-lifted-base" ,ghc-lifted-base)
-       ("ghc-memory" ,ghc-memory)
-       ("ghc-microlens-platform" ,ghc-microlens-platform)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-monad-logger" ,ghc-monad-logger)
-       ("ghc-network" ,ghc-network)
-       ("ghc-parallel" ,ghc-parallel)
-       ("ghc-pattern-arrows" ,ghc-pattern-arrows)
-       ("ghc-protolude" ,ghc-protolude)
-       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
-       ("ghc-safe" ,ghc-safe)
-       ("ghc-scientific" ,ghc-scientific)
-       ("ghc-semialign" ,ghc-semialign)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-serialise" ,ghc-serialise)
-       ("ghc-sourcemap" ,ghc-sourcemap)
-       ("ghc-split" ,ghc-split)
-       ("ghc-stringsearch" ,ghc-stringsearch)
-       ("ghc-syb" ,ghc-syb)
-       ("ghc-these" ,ghc-these)
-       ("ghc-transformers-base" ,ghc-transformers-base)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-network" ,ghc-network)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-wai" ,ghc-wai)
-       ("ghc-wai-websockets" ,ghc-wai-websockets)
-       ("ghc-warp" ,ghc-warp)
-       ("ghc-websockets" ,ghc-websockets)))
+     (list ghc-glob
+           ghc-aeson
+           ghc-aeson-better-errors
+           ghc-aeson-pretty
+           ghc-ansi-terminal
+           ghc-base-compat
+           ghc-blaze-html
+           ghc-bower-json
+           ghc-boxes
+           ghc-cborg
+           ghc-cheapskate
+           ghc-clock
+           ghc-cryptonite
+           ghc-data-ordlist
+           ghc-dlist
+           ghc-edit-distance
+           ghc-file-embed
+           ghc-fsnotify
+           ghc-happy
+           ghc-language-javascript
+           ghc-lifted-async
+           ghc-lifted-base
+           ghc-memory
+           ghc-microlens-platform
+           ghc-monad-control
+           ghc-monad-logger
+           ghc-network
+           ghc-parallel
+           ghc-pattern-arrows
+           ghc-protolude
+           ghc-purescript-cst
+           ghc-regex-tdfa
+           ghc-safe
+           ghc-scientific
+           ghc-semialign
+           ghc-semigroups
+           ghc-serialise
+           ghc-sourcemap
+           ghc-split
+           ghc-stringsearch
+           ghc-syb
+           ghc-these
+           ghc-transformers-base
+           ghc-transformers-compat
+           ghc-unordered-containers
+           ghc-utf8-string
+           ghc-vector
+           ghc-ansi-wl-pprint
+           ghc-http-types
+           ghc-network
+           ghc-optparse-applicative-0.15.1.0 ; XXX: needs specific version
+           ghc-wai
+           ghc-wai-websockets
+           ghc-warp
+           ghc-websockets))
     (native-inputs
-     `(("ghc-happy" ,ghc-happy-1.19.9) ; build fails with 1.19.12
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)
-       ("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-golden" ,ghc-tasty-golden)
-       ("ghc-tasty-hspec" ,ghc-tasty-hspec)))
+     (list ghc-happy
+           ghc-hunit
+           ghc-hspec
+           hspec-discover
+           ghc-tasty
+           ghc-tasty-golden
+           ghc-tasty-hspec))
     (arguments
      `(;; Tests require npm
        #:tests? #f
-       #:configure-flags '("--flags=release")))
+       #:configure-flags '("--flags=release")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'update-constraints
+           (lambda _
+             (substitute* "purescript.cabal"
+               (("\\b(ansi-terminal|cryptonite|dlist|language-javascript)\\s+[^,]+" all dep)
+                dep)))))))
     (home-page "https://www.purescript.org/")
     (synopsis "Haskell inspired programming language compiling to JavaScript")
     (description
      "Purescript is a small strongly, statically typed programming language with
 expressive types, inspired by Haskell and compiling to JavaScript.")
     (license license:bsd-3)))
+
+(define-public ghc-purescript-cst
+  (package
+    (name "ghc-purescript-cst")
+    (version "0.4.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/purescript-cst/purescript-cst-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32 "0r3f5lr9lrv9wpgkwj6nyl42lvxryj2lvr1w7ld4gki8ylq24n8g"))))
+    (build-system haskell-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'update-constraints
+           (lambda _
+             (substitute* "purescript-cst.cabal"
+               (("\\b(dlist)\\s+[^,]+" all dep)
+                dep)))))))
+    (inputs
+      (list ghc-aeson
+            ghc-base-compat
+            ghc-dlist
+            ghc-microlens
+            ghc-protolude
+            ghc-scientific
+            ghc-semigroups
+            ghc-serialise
+            ghc-vector))
+    (native-inputs (list ghc-happy))
+    (home-page "https://www.purescript.org/")
+    (synopsis "PureScript Programming Language Concrete Syntax Tree")
+    (description
+     "This package implements parser for the PureScript programming language.")
+    (license license:bsd-3)))
+
+(define-public ghc-optparse-applicative-0.15.1.0
+  (package
+    (inherit ghc-optparse-applicative)
+    (name "ghc-optparse-applicative")
+    (version "0.15.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "https://hackage.haskell.org/package/optparse-applicative/optparse-applicative-"
+               version
+               ".tar.gz"))
+        (sha256
+          (base32 "1ws6y3b3f6hsgv0ff0yp6lw4hba1rps4dnvry3yllng0s5gngcsd"))))
+    (inputs
+      (list ghc-transformers-compat ghc-ansi-wl-pprint))
+    (native-inputs (list ghc-quickcheck))
+    (arguments
+      `(#:cabal-revision
+        ("1" "0zmhqkd96v2z1ilhqdkd9z4jgsnsxb8yi2479ind8m5zm9363zr9")))))
diff --git a/gnu/packages/pv.scm b/gnu/packages/pv.scm
index db6c3dd669..97b3dcdadc 100644
--- a/gnu/packages/pv.scm
+++ b/gnu/packages/pv.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Claes Wallin <claes.wallin@greatsinodevelopment.com>
+;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,22 +26,22 @@
 (define-public pv
   (package
     (name "pv")
-    (version "1.6.6")
+    (version "1.6.20")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "https://www.ivarch.com/programs/sources/pv-"
-                          version ".tar.bz2"))
-      (sha256
-       (base32
-        "1wbk14xh9rfypiwyy68ssl8dliyji30ly70qki1y2xx3ywszk3k0"))))
+       (method url-fetch)
+       (uri (string-append "https://www.ivarch.com/programs/sources/pv-"
+                           version ".tar.bz2"))
+       (sha256
+        (base32 "00y6zla8h653sn4axgqz7rr0x79vfwl62a7gn6lzn607zwg9acg8"))))
     (build-system gnu-build-system)
     (home-page "https://www.ivarch.com/programs/pv.shtml")
     (synopsis "Pipeline progress indicator")
     (description
-     "pv (Pipe Viewer) is a terminal-based tool for monitoring the progress
+     "@acronym{pv, Pipe Viewer} is a terminal tool for monitoring the progress
 of data through a pipeline.  It can be inserted into any normal pipeline
-between two processes to give a visual indication of how quickly data is
-passing through, how long it has taken, how near to completion it is, and an
-estimate of how long it will be until completion.")
+between two processes.  It gives a visual indication of how quickly data is
+passing through, how much has been transferred and how near to completion it is
+(with a progress bar), how long it has taken, and an estimate of the remaining
+time before completion.")
     (license artistic2.0)))
diff --git a/gnu/packages/python-build.scm b/gnu/packages/python-build.scm
index 59ee91aa9c..1db5a6b335 100644
--- a/gnu/packages/python-build.scm
+++ b/gnu/packages/python-build.scm
@@ -23,9 +23,11 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages python-build)
+  #:use-module (gnu packages)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system python)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages))
 
 ;;; Commentary:
@@ -107,6 +109,70 @@ Language (TOML) configuration files.")
     (description "This package provides a Python parser for TOML-0.4.0.")
     (license license:expat)))
 
+(define-public python-six-bootstrap
+  (package
+    (name "python-six-bootstrap")
+    (version "1.16.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "six" version))
+       (sha256
+        (base32
+         "09n9qih9rpj95q3r4a40li7hk6swma11syvgwdc68qm1fxsc6q8y"))))
+    (build-system python-build-system)
+    (arguments `(#:tests? #f))          ;to avoid pytest dependency
+    (home-page "https://pypi.org/project/six/")
+    (synopsis "Python 2 and 3 compatibility utilities")
+    (description
+     "Six is a Python 2 and 3 compatibility library.  It provides utility
+functions for smoothing over the differences between the Python versions with
+the goal of writing Python code that is compatible on both Python versions.
+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")
+    (version "1.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "tomli" version))
+       (sha256
+        (base32 "1vjg44narb7hdiazdmbv8bfv7pi6phnq7nxm6aphx0iqxcah1kn6"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f                      ;disabled to avoid extra dependencies
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'build
+           (lambda _
+             (setenv "PYTHONPATH" (string-append (getcwd) ":"
+                                                 (getenv "GUIX_PYTHONPATH")))
+             (invoke "python" "-m" "build" "--wheel" "--no-isolation"
+                     "--skip-dependency-check")))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (whl (car (find-files "dist" "\\.whl$"))))
+               (invoke "pip" "--no-cache-dir" "--no-input"
+                       "install" "--no-deps" "--prefix" out whl)))))))
+    (native-inputs
+     `(("python-flit-core" ,python-flit-core)
+       ("python-pypa-build" ,python-pypa-build)
+       ("python-six", python-six-bootstrap)))
+    (home-page "https://github.com/hukkin/tomli")
+    (synopsis "Small and fast TOML parser")
+    (description "Tomli is a minimal TOML parser that is fully compatible with
+@url{https://toml.io/en/v1.0.0,TOML v1.0.0}.  It is about 2.4 times as fast as
+@code{python-toml}.")
+    (license license:expat)))
+
 (define-public python-pep517-bootstrap
   (hidden-package
    (package
@@ -123,39 +189,124 @@ Language (TOML) configuration files.")
      (arguments
       `(#:tests? #f))                     ;to avoid circular dependencies
      (propagated-inputs
-      `(("python-toml" ,python-toml)
-        ("python-wheel" ,python-wheel)))
+      (list python-toml python-wheel))
      (home-page "https://github.com/pypa/pep517")
      (synopsis "Wrappers to build Python packages using PEP 517 hooks")
      (description
       "Wrappers to build Python packages using PEP 517 hooks.")
      (license license:expat))))
 
+(define-public python-pyparsing
+  (package
+    (name "python-pyparsing")
+    (version "2.4.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pyparsing" version))
+       (sha256
+        (base32 "1hgc8qrbq1ymxbwfbjghv01fm3fbpjwpjwi0bcailxxzhf3yq0y2"))))
+    (build-system python-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:tests? #f                      ;no test target
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((doc (string-append (assoc-ref outputs "doc")
+                                        "/share/doc/" ,name "-" ,version))
+                    (html-doc (string-append doc "/html"))
+                    (examples (string-append doc "/examples")))
+               (mkdir-p html-doc)
+               (mkdir-p examples)
+               (for-each
+                (lambda (dir tgt)
+                  (map (lambda (file)
+                         (install-file file tgt))
+                       (find-files dir ".*")))
+                (list "docs" "htmldoc" "examples")
+                (list doc html-doc examples))))))))
+    (home-page "https://github.com/pyparsing/pyparsing")
+    (synopsis "Python parsing class library")
+    (description
+     "The pyparsing module is an alternative approach to creating and
+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)))
+
+(define-public python-pyparsing-2.4.7
+  (package
+    (inherit python-pyparsing)
+    (version "2.4.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pyparsing" version))
+       (sha256
+        (base32 "1hgc8qrbq1ymxbwfbjghv01fm3fbpjwpjwi0bcailxxzhf3yq0y2"))))))
+
+(define-public python2-pyparsing
+  (package-with-python2 python-pyparsing))
+
+(define-public python-packaging-bootstrap
+  (package
+    (name "python-packaging-bootstrap")
+    (version "20.0")
+    (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"))))
+    (build-system python-build-system)
+    (arguments `(#:tests? #f))         ;disabled to avoid extra dependencies
+    (propagated-inputs
+     (list python-pyparsing python-six-bootstrap))
+    (home-page "https://github.com/pypa/packaging")
+    (synopsis "Core utilities for Python packages")
+    (description "Packaging is a Python module for dealing with Python packages.
+It offers an interface for working with package versions, names, and dependency
+information.")
+    ;; From 'LICENSE': This software is made available under the terms of
+    ;; *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))))
+
+(define-public python2-packaging-bootstrap
+  (package-with-python2 python-packaging-bootstrap))
+
 ;;; The name 'python-pypa-build' is chosen rather than 'python-build' to avoid
 ;;; a name clash with python-build from (guix build-system python).
 (define-public python-pypa-build
   (package
     (name "python-pypa-build")
-    (version "0.1.0")
+    (version "0.7.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "build" version))
               (sha256
                (base32
-                "1d6m21lijwm04g50nwgsgj7x3vhblzw7jv05ah8psqgzk20bbch8"))))
+                "17xqija27x4my1yrnk6q2vwln60r39g2dhby9zg2l99qjgbdrahs"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f                      ;to tests in the PyPI release
        #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'relax-requirements
+                  (add-after 'unpack 'use-toml-instead-of-tomli
+                    ;; Using toml instead of tomli eases bootstrapping.
                     (lambda _
                       (substitute* "setup.cfg"
-                        ;; Drop the requirement on python-packaging, which is
-                        ;; not required.
-                        ((".*packaging.*")
-                         "")))))))
+                        (("tomli>=.*")
+                         "toml\n")))))))
     (propagated-inputs
-     `(("python-pep517", python-pep517-bootstrap)
+     `(("python-packaging" ,python-packaging-bootstrap)
+       ("python-pep517", python-pep517-bootstrap)
        ("python-toml" ,python-toml)))
     (home-page "https://pypa-build.readthedocs.io/en/latest/")
     (synopsis "Simple Python PEP 517 package builder")
@@ -168,13 +319,13 @@ order to make bootstrapping easier.")
 (define-public python-poetry-core
   (package
     (name "python-poetry-core")
-    (version "1.0.3")
+    (version "1.0.7")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "poetry-core" version))
        (sha256
-        (base32 "1ichii48zkywcnj8v3bcn9vk09v69jv6h65805w21hwz4hlcj593"))))
+        (base32 "01n2rbsvks7snrq3m1d08r3xz9q2715ajb62fdb6rvqnb9sirhcq"))))
     (build-system python-build-system)
     (home-page "https://github.com/python-poetry/poetry-core")
     (synopsis "Poetry PEP 517 build back-end")
@@ -184,3 +335,44 @@ implementation developed for Poetry.  This project is intended to be
 a light weight, fully compliant, self-contained package allowing PEP 517
 compatible build front-ends to build Poetry managed projects.")
     (license license:expat)))
+
+(define-public python-flit-core
+  (package
+    (name "python-flit-core")
+    (version "3.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "flit" version))
+       (sha256
+        (base32 "10vjqnybvjdqdbmyc0asbhhvq51yjnnj00645yiq9849gnr8h0ir"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-toml))
+    (arguments
+     ;; flit-core has a test suite, but it requires Pytest.  Disable it so
+     ;; as to not pull pytest as an input.
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'build
+           ;; flit-core requires itself to build.  Luckily, a
+           ;; bootstrapping script exists, which does so using just
+           ;; the checkout sources and Python.
+           (lambda _
+             (invoke "python" "flit_core/build_dists.py")))
+         (replace 'install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (whl (car (find-files "." "\\.whl$"))))
+               (invoke "pip" "--no-cache-dir" "--no-input"
+                       "install" "--no-deps" "--prefix" out whl))))
+         ;; The sanity-check phase fails because flit depends on tomli at
+         ;; run-time, but this core variant avoids it to avoid a cycle.
+         (delete 'sanity-check))))
+    (home-page "https://github.com/takluyver/flit")
+    (synopsis "Core package of the Flit Python build system")
+    (description "This package provides @code{flit-core}, a PEP 517 build
+backend for packages using Flit.  The only public interface is the API
+specified by PEP 517, @code{flit_core.buildapi}.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index b1af78d4f8..6bd86d451f 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -80,14 +80,47 @@ data in a standard way.")
         (base32 "1rcv4m850rl7djzdgzz2zhjd8g5ih8w6l0sj2f9hsynymlsq82xl"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-pytest" ,python-pytest)))
+     (list python-click python-pytest))
     (home-page "https://github.com/Stranger6667/pytest-click")
     (synopsis "Py.test plugin for Click")
     (description "This package provides a plugin to test Python click
 interfaces with pytest.")
     (license license:expat)))
 
+(define-public python-pytest-csv
+  (package
+    (name "python-pytest-csv")
+    (version "3.0.0")
+    (source
+     (origin
+       (method git-fetch)               ;no tests in PyPI archive
+       (uri (git-reference
+             (url "https://github.com/nicoulaj/pytest-csv")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "17518f2fn5l98lyk9p8r7215c1whi61imzrh6ahrmcksr8w0zz04"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest")))))))
+    (native-inputs
+     (list python-pytest-flake8 python-pytest-xdist-next python-tabulate))
+    (propagated-inputs
+     (list python-pytest-6 python-six))
+    (home-page "https://github.com/nicoulaj/pytest-csv")
+    (synopsis "CSV reporter for Pytest")
+    (description "This package provides a plugin for Pytest that enables a
+CSV output mode for Pytest.  It can be enabled via the @option{--csv} option
+it adds to the Pytest command line interface (CLI).")
+    (license license:gpl3+)))
+
 (define-public python-testfixtures
   (package
     (name "python-testfixtures")
@@ -102,11 +135,9 @@ interfaces with pytest.")
     (arguments
      `(#:tests? #f))          ; PyTest-Django fails to build in master
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ;;("python-pytest-django" ,python-pytest-django)
-       ("python-twine" ,python-twine)
-       ("python-wheel" ,python-wheel)))
+     (list python-pytest python-pytest-cov
+           ;;("python-pytest-django" ,python-pytest-django)
+           python-twine python-wheel))
     (synopsis "Tests components for Python")
     (description "Testfixtures is a collection of helpers and mock objects that
 are useful when writing automated tests in Python.")
@@ -140,14 +171,9 @@ are useful when writing automated tests in Python.")
                           (invoke "pytest" "-vv")
                           (format #t "test suite not run~%")))))))
     (propagated-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-docopt" ,python-docopt)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-requests" ,python-requests)))
+     (list python-coverage python-docopt python-pyyaml python-requests))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-responses" ,python-responses)))
+     (list python-mock python-pytest python-responses))
     (synopsis "Show coverage stats online via coveralls.io")
     (description
      "Coveralls.io is a service for publishing code coverage statistics online.
@@ -179,9 +205,9 @@ nosetests, etc...) in Python projects.")
                       (lambda _
                         (invoke "pytest" "-vv"))))))
       (native-inputs
-       `(("python-pytest" ,python-pytest)))
+       (list python-pytest))
       (propagated-inputs
-       `(("python-six" ,python-six)))
+       (list python-six))
       (synopsis "Create JUnit XML test results")
       (description
        "This package provides a Python module for creating JUnit XML test
@@ -191,25 +217,40 @@ result documents that can be read by tools such as Jenkins or Bamboo.")
 (define-public python-vcrpy
   (package
     (name "python-vcrpy")
-    (version "2.0.1")
+    (version "4.1.1")
     (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "vcrpy" version))
-        (sha256
-         (base32
-          "0kws7l3hci1dvjv01nxw3805q9v2mwldw58bgl8s90wqism69gjp"))))
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "vcrpy" version))
+       (sha256
+        (base32 "16gmzxs3lzbgf1828n0q61vbmwyhpvzdlk37x6gdk8n05zr5n2ap"))))
     (build-system python-build-system)
-    (arguments `(#:tests? #f)) ; tests require more packages for python-pytest-httpbin
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? outputs #:allow-other-keys)
+             (when tests?
+               (substitute* "tox.ini"
+                 (("AWS_ACCESS_KEY_ID") "PYTHONPATH"))
+               ;; These tests require network access.
+               (delete-file "tests/unit/test_stubs.py")
+               (invoke "pytest" "tests/unit")))))))
     (propagated-inputs
-     `(("python-pyyaml" ,python-pyyaml)
-       ("python-six" ,python-six)
-       ("python-wrapt" ,python-wrapt)
-       ("python-yarl" ,python-yarl)))
+     (list python-pyyaml python-six python-wrapt python-yarl))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-httpbin" ,python-pytest-httpbin)))
+     (list python-black
+           python-coverage
+           python-flake8
+           python-flask
+           python-httplib2
+           python-ipaddress
+           python-mock
+           python-pytest
+           python-pytest-cov
+           python-pytest-httpbin
+           python-tox
+           python-urllib3))
     (home-page "https://github.com/kevin1024/vcrpy")
     (synopsis "Automatically mock your HTTP interactions")
     (description
@@ -260,7 +301,7 @@ interactions, which will update them to correspond to the new API.")
                      ;; argument passed to @code{pytest.main}.
                      "not test_run_marker_registered"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/ftobia/pytest-ordering")
     (synopsis "Pytest plugin to run your tests in a specific order")
     (description
@@ -280,8 +321,7 @@ of tests run in a specific order.")
         (base32 "1y87agr324p6x5gvhziymxjlw54pyn4gqnd49papbl941djpkp5g"))))
   (build-system python-build-system)
   (native-inputs
-   `(("pytest" ,python-pytest)
-     ("setuptools-scm" ,python-setuptools-scm)))
+   (list python-pytest python-setuptools-scm))
   (home-page "https://www.astropy.org/")
   (synopsis
    "Pytest plugin adding diagnostic data to the header of the test output")
@@ -304,21 +344,26 @@ Astropy project, but is optimized for use with astropy-related projects.")
         (base32 "18j6z6y2fvykmcs5z0mldhhaxxn6wzpnhlm2ps7m8r5z5kmh1631"))))
     (build-system python-build-system)
     (arguments
-     ;; No tests provided
-     '(#:tests? #f))
+     `(#:tests? #f ; there are no tests
+       #:phases
+       (modify-phases %standard-phases
+         ;; There is a bug somewhere that makes pytest-filter-subpackage appear
+         ;; as version 0.0.0 to setup.py.  Remove it from the requirements.
+         (add-after 'unpack 'remove-requirement
+           (lambda _
+             (substitute* "setup.cfg"
+               ((".*pytest-filter-subpackage.*") "")))))))
     (native-inputs
-     `(("attrs" ,python-attrs)
-       ("hypothesis" ,python-hypothesis)
-       ("pytest" ,python-pytest)
-       ("pytest-arraydiff" ,python-pytest-arraydiff)
-       ("pytest-astropy-header" ,python-pytest-astropy-header)
-       ("pytest-cov" ,python-pytest-cov)
-       ("pytest-doctestplus" ,python-pytest-doctestplus)
-       ("pytest-filter-subpackage" ,python-pytest-filter-subpackage)
-       ("pytest-mock" ,python-pytest-mock)
-       ("pytest-openfiles" ,python-pytest-openfiles)
-       ("pytest-remotedata" ,python-pytest-remotedata)
-       ("setuptools-scm" ,python-setuptools-scm)))
+     (list python-attrs python-pytest-mock python-setuptools-scm))
+    (propagated-inputs
+     (list python-hypothesis
+           python-pytest-arraydiff
+           python-pytest-astropy-header
+           python-pytest-cov
+           python-pytest-doctestplus
+           python-pytest-filter-subpackage
+           python-pytest-openfiles
+           python-pytest-remotedata))
     (home-page "https://github.com/astropy/pytest-astropy")
     (synopsis
      "Metapackage for all the testing machinery used by the Astropy Project")
@@ -343,8 +388,7 @@ astropy related packages.")
      ;; Disable tests to avoid the circular dependency problem.
      '(#:tests? #f))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-six" ,python-six)))
+     (list python-numpy python-six))
     (home-page "https://github.com/astropy/pytest-arraydiff")
     (synopsis "Pytest plugin to help with comparing array output from tests")
     (description
@@ -373,7 +417,7 @@ are too large to conveniently hard-code them in the tests.")
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/astropy/pytest-doctestplus")
     (synopsis "Pytest plugin with advanced doctest features")
     (description
@@ -381,6 +425,33 @@ are too large to conveniently hard-code them in the tests.")
 advanced doctest support and enables the testing of reStructuredText files.")
     (license license:bsd-3)))
 
+(define-public python-pytest-exploratory
+  (package
+    (name "python-pytest-exploratory")
+    (version "0.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest_exploratory" version))
+       (sha256
+        (base32 "159rcqv6wrdqdlag1gz39n6fk58232hbxshan043ljgpp1qfs6xk"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest" "tests")))))))
+    (propagated-inputs
+     (list python-ipython python-py python-pytest))
+    (native-inputs (list python-pytest))
+    (home-page "https://github.com/nokia/pytest-exploratory")
+    (synopsis "Interactive console for Pytest")
+    (description "This Pytest plugin provides an IPython extension that allows
+for interactively selecting and running Pytest tests.")
+    (license license:expat)))
+
 (define-public python-pytest-filter-subpackage
   (package
     (name "python-pytest-filter-subpackage")
@@ -404,10 +475,7 @@ advanced doctest support and enables the testing of reStructuredText files.")
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "-vv" "-k" "not test_with_rst"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-doctestplus"
-        ,python-pytest-doctestplus)))
+     (list python-pytest python-pytest-cov python-pytest-doctestplus))
     (home-page "https://github.com/astropy/pytest-filter-subpackage")
     (synopsis "Pytest plugin for filtering based on sub-packages")
     (description
@@ -437,11 +505,8 @@ sub-package.")
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-setuptools" ,python-setuptools) ; needs setuptools >= 50.3.2
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-setuptools-declarative-requirements"
-        ,python-setuptools-declarative-requirements)))
+     (list python-pytest python-setuptools ; needs setuptools >= 50.3.2
+           python-setuptools-scm python-setuptools-declarative-requirements))
     (home-page "https://github.com/saltstack/pytest-helpers-namespace")
     (synopsis "Pytest Helpers Namespace Plugin")
     (description "Pytest Helpers Namespace Plugin provides a helpers pytest
@@ -469,10 +534,9 @@ someone to import them in their actual tests to use them.")
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-pytest" ,python-pytest)))
+     (list python-setuptools-scm python-pytest))
     (propagated-inputs
-     `(("python-psutil" ,python-psutil)))
+     (list python-psutil))
     (home-page "https://github.com/astropy/pytest-openfiles")
     (synopsis "Pytest plugin for detecting inadvertent open file handles")
     (description
@@ -505,9 +569,9 @@ were inadvertently left open at the end of a unit test.")
                       "not test_default_behavior"
                       " and not test_strict_with_decorator")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/astropy/pytest-remotedata")
     (synopsis "Pytest plugin for controlling remote data access")
     (description
@@ -516,6 +580,74 @@ developers to control unit tests that require access to data from the
 internet.")
     (license license:bsd-3)))
 
+(define-public python-pytest-repeat
+  (package
+    (name "python-pytest-repeat")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-repeat" version))
+       (sha256
+        (base32 "0nxdbghjz6v4xidl5ky9wlx6z4has3vygj5r7va5ccdb8nbjilsw"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest")))))))
+    (propagated-inputs
+     (list python-pytest))
+    (native-inputs
+     (list python-setuptools-scm))
+    (home-page "https://github.com/pytest-dev/pytest-repeat")
+    (synopsis "Pytest plugin for repeating tests")
+    (description "@code{pytest-repeat} is a plugin for Pytest that makes it
+enables repeating a single test, or multiple tests, a specific number of
+times.")
+    (license license:mpl2.0)))
+
+(define-public python-pytest-mockito
+  (package
+    (name "python-pytest-mockito")
+    (version "0.0.4")
+    (source
+     (origin
+       (method git-fetch)               ;no tests in pypi archive
+       (uri (git-reference
+             (url "https://github.com/kaste/pytest-mockito")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0hnpazaw3mglx1c405z2hkavgan99rqb3wgrcqk8x5kmhpay53xx"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "python" "-m" "pytest" "-vv")))))))
+    (propagated-inputs
+     (list python-mockito python-pytest))
+    (home-page "https://github.com/kaste/pytest-mockito")
+    (synopsis "Mockito base fixtures for Pytest")
+    (description "The @code{pytest-mockito} plugin provides base Mockito
+fixtures for Pytest.  It covers the main entry points of the Mockito mocking
+framework and makes it easy to undo any monkey patching.  The fixtures are:
+@itemize
+@item when
+@item when2
+@item expect
+@item patch
+@item unstub
+@item spy2
+@end itemize")
+    (license license:expat)))
+
 (define-public python-pytest-mpl
   (package
     (name "python-pytest-mpl")
@@ -534,11 +666,9 @@ internet.")
            (lambda _
              (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-matplotlib" ,python-matplotlib)
-       ("python-nose" ,python-nose)
-       ("python-pillow" ,python-pillow)))
+     (list python-matplotlib python-nose python-pillow))
     (home-page "https://github.com/matplotlib/pytest-mpl")
     (synopsis "Pytest plugin to help with testing figures output from Matplotlib")
     (description
@@ -568,8 +698,7 @@ in Pytest.")
            (lambda _
              (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-pytest" ,python-pytest)))
+     (list python-coverage python-pytest))
     (home-page "https://github.com/asottile/covdefaults")
     (synopsis "Coverage plugin to provide opinionated default settings")
     (description
@@ -603,8 +732,7 @@ in Pytest.")
                (add-installed-pythonpath inputs outputs)
                (invoke "pytest" "tests/"))))))
       (propagated-inputs
-       `(("python-pytest" ,python-pytest)
-         ("python-vcrpy" ,python-vcrpy)))
+       (list python-pytest python-vcrpy))
       (home-page "https://github.com/ktosiek/pytest-vcr")
       (synopsis "Plugin for managing VCR.py cassettes")
       (description
@@ -614,20 +742,18 @@ in Pytest.")
 (define-public python-pytest-checkdocs
   (package
     (name "python-pytest-checkdocs")
-    (version "1.2.2")
+    (version "1.2.5")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pytest-checkdocs" version))
        (sha256
-        (base32 "0j6j1gvj6x451y3qsx4xbaq9p1w9gg3mwk7n0w80cy8vdyjkngb0"))))
+        (base32 "0m4kn7141i6k8qr8ak3lbmk9vim11xsrlnrggcfwczfrglc6jmia"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-docutils" ,python-docutils)
-       ("python-importlib-metadata" ,python-importlib-metadata)
-       ("python-more-itertools" ,python-more-itertools)))
+     (list python-docutils python-importlib-metadata python-more-itertools))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm python-pytest))
     (home-page "https://github.com/jaraco/pytest-checkdocs")
     (synopsis "Check the README when running tests")
     (description
@@ -657,11 +783,9 @@ of the project to ensure it renders properly.")
            (lambda _
              (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-covdefaults" ,python-covdefaults)
-       ("python-coverage" ,python-coverage)
-       ("python-pytest" ,python-pytest)))
+     (list python-covdefaults python-coverage python-pytest))
     (propagated-inputs
-     `(("python-regex" ,python-regex)))
+     (list python-regex))
     (home-page "https://github.com/asottile/re-assert")
     (synopsis "Show where your regex match assertion failed")
     (description
@@ -672,28 +796,33 @@ simpler.")
 (define-public python-pytest-trio
   (package
     (name "python-pytest-trio")
-    (version "0.6.0")
+    (version "0.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pytest-trio" version))
        (sha256
-        (base32 "1zm8didm9h5jkqhghl9bvqs7kr7sjci282c7grhk6yhpzn8a9w4v"))))
+        (base32 "0c8cqf9by2884riksrqymqfp2g1d2d798a2zalcw9hmf34c786y0"))))
     (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" "-W" "error" "-ra" "-v" "--pyargs"
-                     "pytest_trio" "--verbose" "--cov"))))))
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "-W" "error" "-ra" "-v" "--pyargs"
+                       "pytest_trio" "--verbose" "--cov" "-k"
+                       (string-append
+                         ;; Needs network
+                         "not test_async_yield_fixture_with_nursery"
+                         " and not test_try"
+                         ;; No keyboard interrupt in our build environment.
+                         " and not test_actual_test"))))))))
     (native-inputs
-     `(("python-hypothesis" ,python-hypothesis)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-hypothesis python-pytest python-pytest-cov))
     (propagated-inputs
-     `(("python-trio" ,python-trio)))
+      (list python-async-generator python-outcome python-pytest python-trio))
     (home-page "https://github.com/python-trio/pytest-trio")
     (synopsis "Pytest plugin for trio")
     (description
@@ -715,9 +844,9 @@ friendly library for concurrency and async I/O in Python.")
          "0syx68xk5ss3hgp3nr2y122w0fgkzr5936ghsqrkymh3m5hrf9gh"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-flake8" ,python-flake8)))
+     (list python-flake8))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/tholo/pytest-flake8")
     (synopsis "Pytest plugin to check FLAKE8 requirements")
     (description
@@ -744,10 +873,9 @@ compliance.")
              (when tests?
                (invoke "pytest")))))))
     (propagated-inputs
-     `(("python-isort" ,python-isort)
-       ("python-pytest" ,python-pytest)))
+     (list python-isort python-pytest))
     (native-inputs
-     `(("python-mock" ,python-mock)))
+     (list python-mock))
     (home-page "https://github.com/moccu/pytest-isort/")
     (synopsis "Pytest plugin to check import ordering using isort")
     (description
@@ -780,14 +908,10 @@ isort.")
                 "bindir = os.path.realpath('/tmp/bin')"))
              #t)))))
     (propagated-inputs
-     `(("python-contextlib2" ,python-contextlib2)
-       ("python-execnet" ,python-execnet)
-       ("python-pathpy" ,python-pathpy)
-       ("python-termcolor" ,python-termcolor)))
+     (list python-contextlib2 python-execnet python-pathpy
+           python-termcolor))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-setuptools-git" ,python-setuptools-git)))
+     (list python-mock python-pytest python-setuptools-git))
     (home-page "https://github.com/manahl/pytest-plugins")
     (synopsis "Assorted shell and environment tools for py.test")
     (description
@@ -808,8 +932,7 @@ py.test testing framework.")
          "13i1qpz22w3x4dmw8vih5jdnbqfqvl7jiqs0dg764s0zf8bp98a1"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-setuptools-git" ,python-setuptools-git)))
+     (list python-pytest python-setuptools-git))
     (home-page "https://github.com/manahl/pytest-plugins")
     (synopsis "Fixture configuration utils for py.test")
     (description
@@ -846,14 +969,11 @@ testing framework.")
                           virtualenv-bin)))
                #t))))))
     (propagated-inputs
-     `(("python-pytest-shutil" ,python-pytest-shutil)
-       ("python-pytest-fixture-config" ,python-pytest-fixture-config)))
+     (list python-pytest-shutil python-pytest-fixture-config))
     (inputs
-     `(("python-virtualenv" ,python-virtualenv)))
+     (list python-virtualenv))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-setuptools-git" ,python-setuptools-git)))
+     (list python-mock python-pytest python-setuptools-git))
     (home-page "https://github.com/manahl/pytest-plugins")
     (synopsis "Virtualenv fixture for py.test")
     (description "This package provides a virtualenv fixture for the py.test
@@ -873,9 +993,9 @@ framework.")
          "02i5gl7pm9cwxk15sn29inz3n8flpj1r3p1l110h43f2na5w8h7z"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pycodestyle" ,python-pycodestyle)))
+     (list python-pycodestyle))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/henry0312/pytest-pycodestyle")
     (synopsis "Pytest plugin to run pycodestyle")
     (description "This package provides a plugin to run @code{pycodestyle}
@@ -895,10 +1015,9 @@ for the @code{pytest} framework.")
          "0a4mpb4j73dsyk47hd1prrjpfk4r458s102cn80rf253jg818hxd"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-py-cpuinfo" ,python-py-cpuinfo)))
+     (list python-py-cpuinfo))
     (native-inputs
-     `(("python-pathlib2" ,python-pathlib2)
-       ("python-pytest" ,python-pytest)))
+     (list python-pathlib2 python-pytest))
     (home-page "https://github.com/ionelmc/pytest-benchmark")
     (synopsis "Pytest fixture for benchmarking code")
     (description
@@ -930,12 +1049,9 @@ rounds that are calibrated to the chosen timer.")
              (delete-file "tests/test_xvfb_windows.py")
              #t)))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("xorg-server" ,xorg-server-for-tests)))
+     (list python-pytest python-pytest-runner xorg-server-for-tests))
     (propagated-inputs
-     `(("python-pyvirtualdisplay"
-        ,python-pyvirtualdisplay)))
+     (list python-pyvirtualdisplay))
     (home-page "https://github.com/The-Compiler/pytest-xvfb")
     (synopsis "Pytest plugin to run Xvfb for tests")
     (description
@@ -956,10 +1072,9 @@ rounds that are calibrated to the chosen timer.")
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; Tests not included in release tarball.
     (propagated-inputs
-     `(("python-psutil" ,python-psutil)
-       ("python-requests" ,python-requests)))
+     (list python-psutil python-requests))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/pytest-dev/pytest-services")
     (synopsis "Services plugin for pytest testing framework")
     (description
@@ -986,23 +1101,15 @@ service processes for your tests with pytest.")
      '(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             ;; Make the installed plugin discoverable by Pytest.
-             (add-installed-pythonpath inputs outputs)
-             (invoke "pytest" "-vv"))))))
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (substitute* "setup.cfg"
+                 ((".*timeout.*") ""))
+               ;; Make the installed plugin discoverable by Pytest.
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "-vv")))))))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-docutils" ,python-docutils)
-       ("python-flake8" ,python-flake8)
-       ("python-isort" ,python-isort)
-       ("python-pydantic" ,python-pydantic)
-       ("python-pyflakes" ,python-pyflakes)
-       ("python-pygments" ,python-pygments)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-isort" ,python-pytest-isort)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-pytest-sugar" ,python-pytest-sugar)))
+     (list python-pydantic python-pytest python-pytest-isort))
     (home-page "https://github.com/samuelcolvin/pytest-toolbox")
     (synopsis "Numerous useful plugins for Pytest")
     (description
@@ -1023,9 +1130,9 @@ new fixtures, new methods and new comparison objects.")
          "0kx4mbs9bflycd8x9af0idcjhdgnzri3nw1qb0vpfyb3751qaaf9"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-aiohttp" ,python-aiohttp)))
+     (list python-aiohttp))
     (home-page "https://github.com/aio-libs/pytest-aiohttp/")
     (synopsis "Pytest plugin for aiohttp support")
     (description "This package provides a pytest plugin for aiohttp support.")
@@ -1061,14 +1168,10 @@ new fixtures, new methods and new comparison objects.")
                      ;; https://github.com/computationalmodelling/nbval/pull/148.
                       " and not test_timeouts")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-sympy" ,python-sympy)))
+     (list python-pytest python-pytest-cov python-sympy))
     (propagated-inputs
-     `(("python-ipykernel" ,python-ipykernel)
-       ("python-jupyter-client" ,python-jupyter-client)
-       ("python-nbformat" ,python-nbformat)
-       ("python-six" ,python-six)))
+     (list python-ipykernel python-jupyter-client python-nbformat
+           python-six))
     (home-page "https://github.com/computationalmodelling/nbval")
     (synopsis "Pytest plugin to validate Jupyter notebooks")
     (description
@@ -1091,10 +1194,8 @@ also ensuring that the notebooks are running without errors.")
          "1hln7mwgdzfi5ma0kqfsi768l7p24jhkw8l0imhifwy08nh7hmjd"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-flask" ,python-flask)
-       ("python-pytest" ,python-pytest)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-werkzeug" ,python-werkzeug)))
+     (list python-flask python-pytest python-setuptools-scm
+           python-werkzeug))
     (home-page "https://github.com/pytest-dev/pytest-flask")
     (synopsis "Pytest fixtures to test Flask applications")
     (description
@@ -1104,14 +1205,14 @@ also ensuring that the notebooks are running without errors.")
 (define-public python-pytest-console-scripts
   (package
     (name "python-pytest-console-scripts")
-    (version "1.2.0")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pytest-console-scripts" version))
        (sha256
         (base32
-         "073l2cz11013dl30zjr575ms78j9b2bsbdl1w0gmig37spbkh8aa"))))
+         "1qsw3i2h3psyi5avwf14panx8wxqfik2z7294dy37w8ha415iwn7"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1124,10 +1225,9 @@ also ensuring that the notebooks are running without errors.")
                        ;; This one test fails because of PATH assumptions
                        "-k" "not test_elsewhere_in_the_path")))))))
     (propagated-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-mock python-pytest))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (home-page "https://github.com/kvas-it/pytest-console-scripts")
     (synopsis "Pytest plugin for testing console scripts")
     (description
@@ -1156,8 +1256,7 @@ also ensuring that the notebooks are running without errors.")
                (add-installed-pythonpath inputs outputs)
                (invoke "pytest" "--verbose")))))))
     (propagated-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-tornado" ,python-tornado)))
+     (list python-pytest python-tornado))
     (home-page "https://github.com/eukaryote/pytest-tornasync")
     (synopsis "Pytest plugin for testing Tornado code")
     (description
@@ -1178,7 +1277,7 @@ plain (undecoratored) native coroutine tests.")
         (base32 "1hl0ln0cicdid4qjk7mv90lw9xkb0v71dlj7q7rn89vzxxm9b53y"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/MobileDynasty/pytest-env")
     (synopsis "Pytest plugin that allows you to add environment variables")
     (description
@@ -1226,11 +1325,9 @@ libraries.")
              (setenv "QT_QPA_PLATFORM" "offscreen")
              #t)))))
     (propagated-inputs
-     `(("python-pyqt" ,python-pyqt)))
+     (list python-pyqt))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-pytest python-pytest-runner python-setuptools-scm))
     (home-page "https://github.com/pytest-dev/pytest-qt")
     (synopsis "Pytest support for PyQt and PySide applications")
     (description
@@ -1257,7 +1354,7 @@ interaction, like key presses and mouse clicks.")
     (arguments
      `(#:tests? #f)); no tests
     (propagated-inputs
-     `(("python-check-manifest" ,python-check-manifest)))
+     (list python-check-manifest python-requests))
     (home-page "https://github.com/codacy/python-codacy-coverage")
     (synopsis "Codacy coverage reporter for Python")
     (description "This package analyses Python test suites and reports how much
@@ -1280,7 +1377,7 @@ analysing code quality.")
     (arguments
      `(#:tests? #f)); no tests
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     (home-page "https://github.com/patrys/httmock")
     (synopsis "Mocking library for requests.")
     (description "This package provides a library for replying fake data to
@@ -1310,7 +1407,7 @@ Python software under test, when they make an HTTP query.")
            (lambda _
              (invoke "python" "-m" "nose2" "-v"))))))
     (native-inputs
-     `(("python-nose2" ,python-nose2)))
+     (list python-nose2))
     (home-page "https://public.readthedocs.io/")
     (synopsis "@code{@@public} decorator for populating @code{__all__}")
     (description
@@ -1321,6 +1418,37 @@ the implementation of that name.")
     (license (list license:asl2.0
                    license:lgpl3))))    ; only for setup_helpers.py
 
+(define-public python-mockito
+  (package
+    (name "python-mockito")
+    (version "1.2.2")
+    (source
+     (origin
+       (method git-fetch)               ;no tests in pypi archive
+       (uri (git-reference
+             (url "https://github.com/kaste/mockito-python")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0fg8jflcf4c929gd4zbcrk73d08waaqjfjmdjrgnv54mzl35pjxl"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest")))))))
+    (native-inputs
+     (list python-numpy python-pytest))
+    (home-page "https://github.com/kaste/mockito-python")
+    (synopsis "Mocking library for Python")
+    (description "This package provides a Python implementation of the Java
+library of the same name.  It eases monkey patching, for example to stub out
+side effects when unit testing.")
+    (license license:expat)))
+
 (define-public python-mypy-extensions
   (package
     (name "python-mypy-extensions")
@@ -1344,7 +1472,7 @@ supported by the MyPy typechecker.")
 (define-public python-mypy
   (package
     (name "python-mypy")
-    (version "0.790")
+    (version "0.910")
     (source
      (origin
        ;; Because of https://github.com/python/mypy/issues/9584, the
@@ -1361,31 +1489,31 @@ supported by the MyPy typechecker.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0zq3lpdf9hphcklk40wz444h8w3dkhwa12mqba5j9lmg11klnhz7"))))
+         "16ryn9d48ilcs3yrkrm9ynx36qnv0gkdkc4sbafpagcqgr2f0mrg"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _
-             (invoke "pytest" "mypyc"))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest" "mypyc")))))))
     (native-inputs
-     `(("python-attrs" ,python-attrs)
-       ("python-flake8" ,python-flake8)
-       ("python-flake8-bugbear" ,python-flake8-bugbear)
-       ("python-flake8-pyi" ,python-flake8-pyi)
-       ("python-importlib-metadata" ,python-importlib-metadata)
-       ("python-lxml" ,python-lxml)
-       ("python-psutil" ,python-psutil)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-forked" ,python-pytest-forked)
-       ("python-pytest-xdist" ,python-pytest-xdist)
-       ("python-virtualenv" ,python-virtualenv)))
+     (list python-attrs
+           python-flake8
+           python-flake8-bugbear
+           python-flake8-pyi
+           python-importlib-metadata
+           python-lxml
+           python-psutil
+           python-pytest
+           python-pytest-cov
+           python-pytest-forked
+           python-pytest-xdist
+           python-virtualenv))
     (propagated-inputs
-     `(("python-mypy-extensions" ,python-mypy-extensions)
-       ("python-typing-extensions" ,python-typing-extensions)
-       ("python-typed-ast" ,python-typed-ast)))
+     (list python-mypy-extensions python-toml python-typing-extensions
+           python-typed-ast))
     (home-page "http://www.mypy-lang.org/")
     (synopsis "Static type checker for Python")
     (description "Mypy is an optional static type checker for Python that aims
@@ -1436,9 +1564,7 @@ any Python VM with basically no runtime overhead.")
                       ;; https://github.com/PyCQA/astroid/issues/881).
                       (delete-file "pylama/lint/pylama_pylint.py"))))))
     (native-inputs
-     `(("python-py" ,python-py)
-       ("python-pytest" ,python-pytest)
-       ("python-radon" ,python-radon)))
+     (list python-py python-pytest python-radon))
     (propagated-inputs
      `(("python-mccabe" ,python-mccabe)
        ("python-mypy", python-mypy-minimal)
@@ -1466,8 +1592,7 @@ McCabe, among others.")
          "16bm0mf7wxvy0lgmcs1p8n1ji8pnvj1jvj8zk3am70dkp825iv84"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-mypy-extensions" ,python-mypy-extensions)
-       ("python-six" ,python-six)))
+     (list python-mypy-extensions python-six))
     (home-page
      "https://github.com/dropbox/pyannotate")
     (synopsis "Auto-generate PEP-484 annotations")
@@ -1510,8 +1635,7 @@ valid Python syntax that are likely to be commented out code.")
     ;; Reported upstream: <https://github.com/vesln/robber.py/issues/20>.
     (arguments '(#:tests? #f))
     (propagated-inputs
-     `(("python-mock" ,python-mock)
-       ("python-termcolor" ,python-termcolor)))
+     (list python-mock python-termcolor))
     ;; URL of the fork used to generate the package available on PyPI.
     (home-page "https://github.com/EastAgile/robber.py")
     (synopsis "Test-driven development (TDD) assertion library for Python")
@@ -1534,15 +1658,15 @@ behavior-driven development (TDD and BDD).")
     (arguments
      `(#:tests? #f))                    ;to avoid circular dependencies
     (native-inputs
-     `(("python-pbr" ,python-pbr)))
+     (list python-pbr))
     (propagated-inputs
-     `(("python-cliff" ,python-cliff)
-       ("python-fixtures" ,python-fixtures)
-       ("python-future" ,python-future)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-subunit" ,python-subunit)
-       ("python-testtools" ,python-testtools)
-       ("python-voluptuous" ,python-voluptuous)))
+     (list python-cliff
+           python-fixtures
+           python-future
+           python-pyyaml
+           python-subunit
+           python-testtools
+           python-voluptuous))
     (home-page "https://stestr.readthedocs.io/en/latest/")
     (synopsis "Parallel Python test runner")
     (description "This package provides the @command{stestr} command, a
@@ -1568,11 +1692,8 @@ help in debugging failures and optimizing the scheduler to improve speed.")
      ;; Tests depend on python-sanic.
      `(#:tests? #f))
     (propagated-inputs
-      `(("python-httpx" ,python-httpx)
-        ("python-async-generator"
-         ,python-async-generator)
-        ("python-pytest" ,python-pytest)
-        ("python-websockets" ,python-websockets)))
+      (list python-httpx python-async-generator python-pytest
+            python-websockets))
     (home-page
       "https://github.com/yunstanford/pytest-sanic")
     (synopsis "Pytest plugin for Sanic")
@@ -1592,8 +1713,7 @@ code asynchronously.")
         (base32 "1c987h13dly9919d15w3h747rgn50ilnv7dginhlprxbj564hn4k"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest python-pytest-runner))
     (home-page "https://github.com/thombashi/allpairspy")
     (synopsis "Pairwise test combinations generator")
     (description
@@ -1618,8 +1738,7 @@ most situations.")
         (base32 "01v98b6n3yvkfmxf2v38xk5ijqlk6ika0yljwkhl5bh6qhq23498"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-psutil" ,python-psutil)))
+     (list python-pytest python-psutil))
     (arguments
      ;; tests require setuptools-markdown, which is deprecated and not in guix
      '(#:tests? #f
@@ -1639,3 +1758,86 @@ or use cases.  Design is based on supporting slow, io-bound testing with often
 tedious system under test configuration that can benefit from running several
 tests at one time.")
     (license license:expat)))
+
+(define-public python-aioresponses
+  (package
+    (name "python-aioresponses")
+    (version "0.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "aioresponses" version))
+       (sha256
+        (base32 "16p8mdyfirddrsay62ji7rwcrqmmzxzf2isdbfm9cj5p338rbr42"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke
+                "pytest" "-vv" "tests" "-k"
+                (string-append
+                 ;; These tests require network access.
+                 "not test_address_as_instance_of_url_combined_with_pass_through "
+                 "and not test_pass_through_with_origin_params"))))))))
+    (native-inputs
+     (list python-pbr python-ddt python-pytest))
+    (propagated-inputs
+     (list python-aiohttp))
+    (home-page "https://github.com/pnuckowski/aioresponses")
+    (synopsis "Mock out requests made by ClientSession from aiohttp package")
+    (description
+     "Aioresponses is a helper to mock/fake web requests in python aiohttp
+package.  For requests module there are a lot of packages that help us with
+testing (eg. httpretty, responses, requests-mock).  When it comes to testing
+asynchronous HTTP requests it is a bit harder (at least at the beginning).
+The purpose of this package is to provide an easy way to test asynchronous
+HTTP requests.")
+    (license license:expat)))
+
+(define-public python-pytest-rerunfailures
+  (package
+    (name "python-pytest-rerunfailures")
+    (version "10.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-rerunfailures" version))
+       (sha256
+        (base32 "15v68kggjvkflbqr0vz8gp5yp3pcsk0rz05bpg2l4xp0a6nin7ly"))))
+    (build-system python-build-system)
+    (propagated-inputs (list python-pytest python-setuptools))
+    (home-page "https://github.com/pytest-dev/pytest-rerunfailures")
+    (synopsis "Pytest plugin to re-run flaky tests")
+    (description "This package provides a pytest plugin to re-run tests to
+eliminate flaky failures.")
+    (license license:mpl2.0)))
+
+(define-public python-xunitparser
+  (package
+    (name "python-xunitparser")
+    (version "1.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "xunitparser" version))
+       (sha256
+        (base32 "05amn9yik0mxg89iiprkb6lrmc7rlccgvwajrpyfi6zbp8mjdsgn"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; See https://github.com/laurentb/xunitparser/pull/11
+         (add-after 'unpack 'fix-test-suite
+           (lambda _
+             (substitute* "xunitparser.py"
+               (("(^ +)self.stderr = None" m indent)
+                (string-append m "\n" indent "self._cleanup = False\n"))))))))
+    (home-page "http://git.p.engu.in/laurentb/xunitparser/")
+    (synopsis "Read JUnit/XUnit XML files and map them to Python objects")
+    (description "xunitparser reads a JUnit/XUnit XML file and maps it to
+Python objects.  It tries to use the objects available in the standard
+@code{unittest} module.")
+    (license license:expat)))
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 6906f7050c..afb2caf13b 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
@@ -56,14 +56,14 @@
          "0j46wab4b09s3favjzp3zs1cn2sn8pr7qyngs5wn31hpqqxbbz76"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pep517" ,python-pep517)
-       ("python-setuptools" ,python-setuptools)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-coverage" ,python-coverage)
-       ("python-coveralls" ,python-coveralls)
-       ("python-pyannotate" ,python-pyannotate)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-pep517
+           python-setuptools
+           python-setuptools-scm
+           python-coverage
+           python-coveralls
+           python-pyannotate
+           python-pytest
+           python-pytest-cov))
     (home-page "https://github.com/miurahr/multivolume")
     (synopsis "Treat multiple files as one")
     (description "MultiVolumefile is a Python library that provides a
@@ -84,20 +84,45 @@ were a single file.")
          "1jcczrb8zgg6w7v76w1wpz3nw75fghk3xwxkn09ll7kck7sdf68d"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-cffi" ,python-cffi)
-       ("python-toml" ,python-toml)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-cffi python-toml python-setuptools-scm))
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-coverage" ,python-coverage)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-setuptools python-coverage python-pytest
+           python-pytest-cov))
     (home-page "https://github.com/miurahr/bcj-cffi")
     (synopsis "Branch / Call /Jump CFFI library in Python")
     (description "This package provides an implementation of the Branch / Call /
 Jump conversion filter by CFFI for Python.")
     (license license:lgpl2.1+)))
 
+(define-public python-isal
+  (package
+    (name "python-isal")
+    (version "0.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "isal" version))
+       (sha256
+        (base32 "1bxj7r24p974pqfgym485s90ydhzji9q7zyfg3sf8fycm9ya01wd"))
+       ;; Remove bundles isa-l source code
+       (modules '((guix build utils)))
+       (snippet
+        '(delete-file-recursively "src/isal/isa-l"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'use-dynamic-linking
+           (lambda _ (setenv "PYTHON_ISAL_LINK_DYNAMIC" "1"))))))
+    (inputs (list isa-l))
+    (native-inputs (list python-cython))
+    (home-page "https://github.com/pycompression/python-isal")
+    (synopsis "Python bindings for the ISA-L compression library")
+    (description
+     "This package aims to provide faster zlib and gzip compatible compression
+and decompression by implementing Python bindings for the ISA-L library.")
+    (license license:expat)))
+
 (define-public python-ppmd-cffi
   (package
     (name "python-ppmd-cffi")
@@ -111,14 +136,14 @@ Jump conversion filter by CFFI for Python.")
          "01wcd9l6pp6hivdmd275qh9dhcwficjqfl67hxix5n07vvq7jzz0"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-cffi" ,python-cffi)))
+     (list python-cffi))
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-pep517" ,python-pep517)
-       ("python-coverage" ,python-coverage)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-setuptools
+           python-setuptools-scm
+           python-pep517
+           python-coverage
+           python-pytest
+           python-pytest-cov))
     (home-page "https://github.com/miurahr/ppmd")
     (synopsis "Prediction by Partial Matching compression library")
     (description "PPMd is a compression algorithm library using the Prediction
@@ -139,26 +164,26 @@ several possible methods.")
          "1zmgp7yax328fj8yj8pj4l7yh78hp727j6wk12vfi6nmi82wl32i"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-bcj-cffi" ,python-bcj-cffi)
-       ("python-multivolumefile" ,python-multivolumefile)
-       ("python-ppmd-cffi" ,python-ppmd-cffi)
-       ("python-pycryptodome" ,python-pycryptodome)
-       ("python-pyzstd" ,python-pyzstd)
-       ("python-texttable" ,python-texttable)
-       ("python-zstandard" ,python-zstandard)))
+     (list python-bcj-cffi
+           python-multivolumefile
+           python-ppmd-cffi
+           python-pycryptodome
+           python-pyzstd
+           python-texttable
+           python-zstandard))
     (native-inputs
-     `(("python-setuptools" ,python-setuptools)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-coverage" ,python-coverage)
-       ("python-coveralls" ,python-coveralls)
-       ("python-libarchive-c" ,python-libarchive-c)
-       ("python-py-cpuinfo" ,python-py-cpuinfo)
-       ("python-pyannotate" ,python-pyannotate)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-benchmark" ,python-pytest-benchmark)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-remotedata" ,python-pytest-remotedata)
-       ("python-pytest-timeout" ,python-pytest-timeout)))
+     (list python-setuptools
+           python-setuptools-scm
+           python-coverage
+           python-coveralls
+           python-libarchive-c
+           python-py-cpuinfo
+           python-pyannotate
+           python-pytest
+           python-pytest-benchmark
+           python-pytest-cov
+           python-pytest-remotedata
+           python-pytest-timeout))
     (home-page "https://github.com/miurahr/py7zr")
     (synopsis "7-zip in Python")
     (description "This package provides py7zr, which implements 7-zip
@@ -192,7 +217,7 @@ Python.")
                                "')")))
              #t)))))
     (inputs
-     `(("lzo" ,lzo)))
+     (list lzo))
     (home-page "https://github.com/jd-boyd/python-lzo")
     (synopsis "Python bindings for the LZO data compression library")
     (description
@@ -223,11 +248,9 @@ Python strings.")
            #t))))
     (build-system python-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-nose" ,python-nose)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list pkg-config python-nose python-setuptools-scm))
     (inputs
-     `(("lz4" ,lz4)))
+     (list lz4))
     (home-page "https://github.com/python-lz4/python-lz4")
     (synopsis "LZ4 bindings for Python")
     (description
@@ -252,7 +275,7 @@ the LZ4 frame format.")
          "18ly9pppy2yspxzw7k1b23wk77k7m44rz2g0271bqgqrk3jn3yhs"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-future" ,python-future)))
+     (list python-future))
     (home-page "https://github.com/gkovacs/lz-string-python")
     (synopsis "String compression")
     (description "Lz-string is a string compressor library for Python.")
@@ -261,26 +284,6 @@ the LZ4 frame format.")
 (define-public python2-lzstring
   (package-with-python2 python-lzstring))
 
-(define-public python-brotli
-  (package
-    (name "python-brotli")
-    (version "1.0.9")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "Brotli" version ".zip"))
-        (sha256
-         (base32
-          "0f4433s4wv9masc303kkb1s0a09x81xwr8pdvj0kyxzdl05826sd"))))
-    (build-system python-build-system)
-    (native-inputs
-     `(("unzip" ,unzip)))
-    (home-page "https://github.com/google/brotli")
-    (synopsis "Python bindings for the Brotli compression library")
-    (description
-     "This package provides python bindings for the Brotli compression library.")
-    (license license:asl2.0)))
-
 (define-public bitshuffle
   (package
     (name "bitshuffle")
@@ -379,9 +382,9 @@ install: libbitshuffle.so
          "0v3qayhqv7vyzydpydwcp51bqciw8p2ajddw68x5k8zppc0vx3yk"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-more-itertools" ,python-more-itertools)))
+     (list python-more-itertools))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (home-page "https://github.com/jaraco/zipp")
     (synopsis
      "Backport of pathlib-compatible object wrapper for zip files")
@@ -425,7 +428,7 @@ wrapper.  It provides a backport of the @code{Path} object.")
         (base32 "0by9z7nxnkzhmza075q6q91rs8lnpf91129k8ppv7kymbwshipjj"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-hypothesis" ,python-hypothesis)))
+     (list python-hypothesis))
     (home-page "https://github.com/indygreg/python-zstandard")
     (synopsis "Zstandard bindings for Python")
     (description "This project provides Python bindings for interfacing with
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 38accb2b87..2072e4e164 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -23,7 +23,7 @@
 ;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
 ;;; Copyright © 2020 Justus Winter <justus@sequoia-pgp.org>
-;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;;
@@ -86,7 +86,7 @@
         (base32 "1hzw6h01fm216nmipyylgz0zybd80w1xsk12m7djycnhqrnrvvv1"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pycrypto" ,python-pycrypto)))
+     (list python-pycrypto))
     (synopsis "Python OTR Implementation")
     (description "Python OTR is an Off-The-Record Protocol Implementation in
 Python.  It does not bind to libotr.")
@@ -106,7 +106,7 @@ Python.  It does not bind to libotr.")
          "0yfaqp76kbdb62hikr5n4jkkfjfmii89grwfy6sw3fmsv5hrap1n"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pyhamcrest" ,python-pyhamcrest)))
+     (list python-pyhamcrest))
     (home-page "https://github.com/keis/base58")
     (synopsis "Base58 and Base58Check implementation")
     (description "Base58 and Base58Check implementation compatible
@@ -125,11 +125,9 @@ with what is used by the Bitcoin network.")
         (base32 "0agvzdn7r7jx5y4scl5gjmrmr6njvizwmr9n7h1kmaahdrrc34sv"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pycparser" ,python-pycparser)
-       ("python-pytest" ,python-pytest)))
+     (list python-pycparser python-pytest))
     (propagated-inputs
-     `(("python-cffi" ,python-cffi)
-       ("python-six" ,python-six)))
+     (list python-cffi python-six))
     (home-page "https://github.com/pyca/bcrypt/")
     (synopsis
      "Modern password hashing library")
@@ -152,15 +150,15 @@ Password Scheme\"} by Niels Provos and David Mazieres.")
         (base32 "015y5qaw9qnxr29lg60dml1g5rbqd4586wy5n8m41ib55gvm1zfy"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (propagated-inputs
-     `(("python-py-bcrypt" ,python-py-bcrypt)))
+     (list python-bcrypt))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-before 'check 'set-PYTHON_EGG_CACHE
            ;; Some tests require access to "$HOME/.cython".
-           (lambda _ (setenv "PYTHON_EGG_CACHE" "/tmp") #t)))))
+           (lambda _ (setenv "PYTHON_EGG_CACHE" "/tmp"))))))
     (home-page "https://bitbucket.org/ecollins/passlib")
     (synopsis "Comprehensive password hashing framework")
     (description
@@ -171,41 +169,6 @@ useful for a wide range of tasks, from verifying a hash found in /etc/shadow,
 to providing full-strength password hashing for multi-user application.")
     (license license:bsd-3)))
 
-(define-public python2-passlib
-  (package-with-python2 python-passlib))
-
-(define-public python-py-bcrypt
-  (package
-    (name "python-py-bcrypt")
-    (version "0.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "py-bcrypt" version))
-       (sha256
-        (base32
-         "0y6smdggwi5s72v6p1nn53dg6w05hna3d264cq6kas0lap73p8az"))))
-    (build-system python-build-system)
-    (home-page "https://code.google.com/p/py-bcrypt")
-    (synopsis
-     "Bcrypt password hashing and key derivation")
-    (description
-     "A python wrapper of OpenBSD's Blowfish password hashing code.  This
-system hashes passwords using a version of Bruce Schneier's Blowfish block
-cipher with modifications designed to raise the cost of off-line password
-cracking and frustrate fast hardware implementation.  The computation cost of
-the algorithm is parametrised, so it can be increased as computers get faster.
-The intent is to make a compromise of a password database less likely to
-result in an attacker gaining knowledge of the plaintext passwords (e.g. using
-John the Ripper).")
-    ;; "sha2.c" is under BSD-3;
-    ;; "blowfish.c" and "bcrypt.c" are under BSD-4;
-    ;; the rest is under ISC.
-    (license (list license:isc license:bsd-3 license:bsd-4))))
-
-(define-public python2-py-bcrypt
-  (package-with-python2 python-py-bcrypt))
-
 (define-public python-pyblake2
   (package
     (name "python-pyblake2")
@@ -247,10 +210,7 @@ This package provides a Python interface for BLAKE2.")
      `(;; FIXME: Tests require many unpackaged libraries, see dev-requirements.txt.
        #:tests? #f))
     (propagated-inputs
-     `(("python-bcrypt" ,python-bcrypt)
-       ("python-pyasn1" ,python-pyasn1)
-       ("python-pynacl" ,python-pynacl)
-       ("python-cryptography" ,python-cryptography)))
+     (list python-bcrypt python-pyasn1 python-pynacl python-cryptography))
     (home-page "https://www.paramiko.org/")
     (synopsis "SSHv2 protocol library")
     (description "Paramiko is a python implementation of the SSHv2 protocol,
@@ -276,10 +236,9 @@ Python interface around SSH networking concepts.")
          (replace 'check
            (lambda _ (invoke "pytest"))))))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (native-inputs
-     `(("openssl" ,openssl)
-       ("python-pytest" ,python-pytest)))
+     (list openssl python-pytest))
     (home-page "https://github.com/warner/python-ecdsa")
     (synopsis "ECDSA cryptographic signature library (pure python)")
     (description
@@ -313,8 +272,7 @@ making them easy to handle and incorporate into other protocols.")
         "0g0ayql5b9mkjam8hym6zyg6bv77lbh66rv1fyvgqb17kfc1xkpj"))))
     (build-system python-build-system)
     (inputs
-     `(("python" ,python)
-       ("gmp" ,gmp)))
+     (list python gmp))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -351,7 +309,7 @@ etc.).  The package is structured to make adding new modules easy.")
          "19663qxmma0i8bfbjc2iwy5hgq0g4pfb75r023v5dps68zfvffgh"))))
     (build-system python-build-system)
     (inputs
-     `(("mit-krb5" ,mit-krb5)))
+     (list mit-krb5))
     (home-page "https://github.com/apple/ccs-pykerberos")
     (synopsis
      "Python Kerberos library used by CalendarServer")
@@ -384,15 +342,15 @@ do what is needed for client/server Kerberos authentication based on
                (invoke "pytest"))
              #t)))))
     (native-inputs
-     `(("python-toml" ,python-toml)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-checkdocs" ,python-pytest-checkdocs)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-flake8" ,python-pytest-flake8)
-       ("python-setuptools" ,python-setuptools)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-toml
+           python-pytest
+           python-pytest-checkdocs
+           python-pytest-cov
+           python-pytest-flake8
+           python-setuptools
+           python-setuptools-scm))
     (propagated-inputs
-     `(("python-secretstorage" ,python-secretstorage)))
+     (list python-secretstorage))
     (home-page "https://github.com/jaraco/keyring")
     (synopsis "Store and access your passwords safely")
     (description
@@ -420,11 +378,9 @@ password storage.")
       (arguments
        `(#:python ,python-2))
       (native-inputs
-       `(("python2-pytest" ,python2-pytest)
-         ("python2-pytest-runner" ,python2-pytest-runner)
-         ("python2-setuptools-scm" ,python2-setuptools-scm)))
+       (list python2-pytest python2-pytest-runner python2-setuptools-scm))
       (propagated-inputs
-       `(("python2-pycrypto" ,python2-pycrypto))))))
+       (list python2-pycrypto)))))
 
 (define-public python-keyrings.alt
   (package
@@ -453,9 +409,7 @@ password storage.")
             #t))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-keyring" ,python-keyring)
-       ("python-pytest" ,python-pytest)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-keyring python-pytest python-setuptools-scm))
     (home-page "https://github.com/jaraco/keyrings.alt")
     (synopsis "Alternate keyring implementations")
     (description "Keyrings in this package may have security risks or other
@@ -478,10 +432,9 @@ risk.")
          "1yxqfb5131wahjyw9pxz03bq476rcfx62s6k53xx4cqbzzgdaqkq"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pyopenssl" ,python-pyopenssl)
-       ("python-tldextract" ,python-tldextract)))
+     (list python-pyopenssl python-tldextract))
     (native-inputs
-     `(("python-pytest-cov" ,python-pytest-cov)))
+     (list python-pytest-cov))
     (home-page "https://github.com/ikreymer/certauth")
     (synopsis "Certificate authority creation tool")
     (description "This package provides a small library, built on top of
@@ -548,19 +501,13 @@ is used by the Requests library to verify HTTPS requests.")
          "1ribd1vxq9wwz564mg60dzcy699gng54admihjjkgs9dx95pw5vy"))))
     (build-system python-build-system)
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (propagated-inputs
-     `(("python-asn1crypto" ,python-asn1crypto)
-       ("python-cffi" ,python-cffi)
-       ("python-six" ,python-six)
-       ("python-idna" ,python-idna)
-       ("python-iso8601" ,python-iso8601)))
+     (list python-asn1crypto python-cffi python-six python-idna
+           python-iso8601))
     (native-inputs
-     `(("python-cryptography-vectors" ,python-cryptography-vectors)
-       ("python-hypothesis" ,python-hypothesis)
-       ("python-pretend" ,python-pretend)
-       ("python-pytz" ,python-pytz)
-       ("python-pytest" ,python-pytest)))
+     (list python-cryptography-vectors python-hypothesis python-pretend
+           python-pytz python-pytest))
     (home-page "https://github.com/pyca/cryptography")
     (synopsis "Cryptographic recipes and primitives for Python")
     (description
@@ -577,6 +524,13 @@ message digests and key derivation functions.")
   (let ((crypto (package-with-python2
                  (strip-python2-variant python-cryptography))))
     (package/inherit crypto
+      (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))))
       (propagated-inputs
        `(("python2-ipaddress" ,python2-ipaddress)
          ("python2-backport-ssl-match-hostname"
@@ -619,15 +573,11 @@ message digests and key derivation functions.")
                       ;; https://github.com/pyca/pyopenssl/issues/974
                       "and not test_verify_with_time")))))))
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-six" ,python-six)))
+     (list python-cryptography python-six))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (native-inputs
-     `(("libfaketime" ,libfaketime)
-       ("python-flaky" ,python-flaky)
-       ("python-pretend" ,python-pretend)
-       ("python-pytest" ,python-pytest)))
+     (list libfaketime python-flaky python-pretend python-pytest))
     (home-page "https://github.com/pyca/pyopenssl")
     (synopsis "Python wrapper module around the OpenSSL library")
     (description
@@ -704,9 +654,7 @@ python-axolotl.")
                        '("axolotl/tests" "build/lib/axolotl/tests"))
              #t)))))
     (propagated-inputs
-     `(("python-axolotl-curve25519" ,python-axolotl-curve25519)
-       ("python-cryptography" ,python-cryptography)
-       ("python-protobuf" ,python-protobuf)))
+     (list python-axolotl-curve25519 python-cryptography python-protobuf))
     (home-page "https://github.com/tgalal/python-axolotl")
     (synopsis "Python port of libaxolotl-android")
     (description "This is a python port of libaxolotl-android.  This
@@ -821,12 +769,9 @@ PKCS#8, PKCS#12, PKCS#5, X.509 and TSP.")
            (lambda _
              (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-hypothesis" ,python-hypothesis)
-       ("python-pytest" ,python-pytest)))
+     (list python-hypothesis python-pytest))
     (propagated-inputs
-     `(("python-cffi" ,python-cffi)
-       ("python-six" ,python-six)
-       ("libsodium" ,libsodium)))
+     (list python-cffi python-six libsodium))
     (home-page "https://github.com/pyca/pynacl/")
     (synopsis "Python bindings to libsodium")
     (description
@@ -859,9 +804,7 @@ of improving usability, security and speed.")
              (delete-file "setup.cfg")
              (invoke "pytest"))))))
     (native-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-pillow" ,python-pillow)
-       ("python-pytest" ,python-pytest)))
+     (list python-numpy python-pillow python-pytest))
     (home-page "https://github.com/halcy/blurhash-python")
     (synopsis
      "Pure-Python implementation of the blurhash algorithm")
@@ -882,7 +825,7 @@ of improving usability, security and speed.")
             "1gc3i5s93zq6x1nkaxkq1dvmsc12vmrw0hns9f5s1hcb78ni52c8"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-future" ,python-future)))
+     (list python-future))
     (home-page "https://github.com/ubinity/ECPy")
     (synopsis "Pure Python Elliptic Curve Library")
     (description "This package provides a Elliptic Curve Library in pure
@@ -907,9 +850,7 @@ Python.")
      ;; The tests require flake8 >= 3.5, which is not yet packaged.
      '(#:tests? #f))
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-pyopenssl" ,python-pyopenssl)
-       ("python-six" ,python-six)))
+     (list python-cryptography python-pyopenssl python-six))
 ;; TODO Enable when we have flake8 >= 3.5.
 ;    (native-inputs
 ;     `(("python-coverage" ,python-coverage)
@@ -948,20 +889,19 @@ protocol (Javascript Object Signing and Encryption).")
 (define-public python-pycryptodome
   (package
     (name "python-pycryptodome")
-    (version "3.9.9")
+    (version "3.11.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pycryptodome" version))
        (sha256
         (base32
-         "1i4m74f88qj9ci8rpyzrbk2slmsdj5ipmwdkq6qk24byalm203li"))
+         "1l3a80z3lxcj1q0hzj1d3plavy2d51y4vzcd85zj0zm7yyxrd022"))
        (modules '((guix build utils)))
        (snippet pycryptodome-unbundle-tomcrypt-snippet)))
     (build-system python-build-system)
     (inputs
-     `(("libtomcrypt" ,libtomcrypt)
-       ("libtommath" ,libtommath)))
+     (list libtomcrypt libtommath))
     (home-page "https://www.pycryptodome.org")
     (synopsis "Low-level cryptographic Python library")
     (description
@@ -1014,7 +954,7 @@ PyCryptodome variants, the other being python-pycryptodomex.")
        (method url-fetch)
        (uri (pypi-uri "pycryptodomex" version))
        (sha256
-        (base32 "0lbx4qk3xmwqiidhmkj8qa7bh2lf8bwzg0xjpsh2w5zqjrc7qnvv"))
+        (base32 "0vcd65ylri2a4pdqcc1897jasj7wfmqklj8x3pdynmdvark3d603"))
        (modules '((guix build utils)))
        (snippet pycryptodome-unbundle-tomcrypt-snippet)))
     (description
@@ -1068,8 +1008,8 @@ provides drop-in compatibility with PyCrypto.")))
      `(;; FIXME: Tests start failing with time due to date checks in TLS
        ;; certificates.
        #:tests? #f))
-    (inputs `(("openssl" ,openssl)))
-    (native-inputs `(("swig" ,swig)))
+    (inputs (list openssl))
+    (native-inputs (list swig))
     (home-page "https://gitlab.com/m2crypto/m2crypto")
     (synopsis "Python crypto and TLS toolkit")
     (description "@code{M2Crypto} is a complete Python wrapper for OpenSSL
@@ -1121,12 +1061,12 @@ through the Engine interface.")
                (("==") ">="))
              #t)))))
     (propagated-inputs
-     `(("python-argon2-cffi" ,python-argon2-cffi)
-       ("python-construct" ,python-construct)
-       ("python-dateutil" ,python-dateutil)
-       ("python-future" ,python-future)
-       ("python-lxml" ,python-lxml)
-       ("python-pycryptodomex" ,python-pycryptodomex)))
+     (list python-argon2-cffi
+           python-construct
+           python-dateutil
+           python-future
+           python-lxml
+           python-pycryptodomex))
     (home-page "https://github.com/libkeepass/pykeepass")
     (synopsis "Python library to interact with keepass databases")
     (description
@@ -1166,7 +1106,7 @@ supports KDBX3 and KDBX4.")
     ;; requires "hashlib.scrypt", provided by Python 3.6+ built with OpenSSL
     ;; 1.1+.  Use that as soon as Guix provides it.
     (inputs
-     `(("libscrypt" ,libscrypt)))
+     (list libscrypt))
     (home-page "https://github.com/jvarho/pylibscrypt")
     (synopsis "Scrypt for Python")
     (description "There are a lot of different scrypt modules for Python, but
@@ -1195,9 +1135,9 @@ none of them have everything that I'd like, so here's one more.  It uses
                (("/usr/local/lib/libsodium.so")
                 (search-input-file inputs "/lib/libsodium.so"))))))))
     (native-inputs
-     `(("python-pyhamcrest" ,python-pyhamcrest)))
+     (list python-pyhamcrest))
     (inputs
-     `(("libsodium" ,libsodium)))
+     (list libsodium))
     (home-page "https://libnacl.readthedocs.org/")
     (synopsis "Python bindings for libsodium based on ctypes")
     (description "@code{libnacl} is used to gain direct access to the
@@ -1239,7 +1179,7 @@ require users to log in.")
          "0hjk71k3mgnl8siikm9lii9im8kv0rb7inkjzx78rnancra48xxr"))))
     (build-system python-build-system)
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (home-page "https://bitbucket.org/mhallin/py-scrypt")
     (synopsis "Bindings for the scrypt key derivation function library")
     (description "This is a set of Python bindings for the scrypt key
@@ -1259,10 +1199,8 @@ derivation function.")
          "0b9f5qiqjy8ralzgwjgkhx82h6h8sa7532psmb8mkd65md5aan08"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-attrs" ,python-attrs)
-       ("python-pyasn1" ,python-pyasn1)
-       ("python-pyasn1-modules" ,python-pyasn1-modules)
-       ("python-pyopenssl" ,python-pyopenssl)))
+     (list python-attrs python-pyasn1 python-pyasn1-modules
+           python-pyopenssl))
     (home-page "https://service-identity.readthedocs.io/")
     (synopsis "Service identity verification for PyOpenSSL")
     (description
@@ -1289,7 +1227,7 @@ relevant RFCs too.")
           "1jhxk5vhxmxxjp3zj526ry521v9inzzl8jqaaf0ma65w6k332ak2"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/casebeer/python-hkdf")
     (synopsis "HMAC-based Extract-and-Expand Key Derivation Function (HKDF)")
     (description "This package provides a Python implementation of the HMAC Key
@@ -1309,7 +1247,7 @@ Derivation function (HKDF) defined in RFC 5869.")
           "1x16r7lrbklvfzbacb66qv9iiih6liq1y612dqh2chgf555n2yn1"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-hkdf" ,python-hkdf)))
+     (list python-hkdf))
     (home-page "https://github.com/warner/python-spake2")
     (synopsis "SPAKE2 password-authenticated key exchange in Python")
     (description "This package provides a Python implementation of the SPAKE2
@@ -1333,12 +1271,12 @@ Password-Authenticated Key Exchange algorithm.")
       ;; <https://github.com/meejah/txtorcon/issues/330>
      `(#:tests? #f))
     (propagated-inputs
-     `(("python-automat" ,python-automat)
-       ("python-idna" ,python-idna)
-       ("python-incremental" ,python-incremental)
-       ("python-service-identity" ,python-service-identity)
-       ("python-twisted" ,python-twisted)
-       ("python-zope-interface" ,python-zope-interface)))
+     (list python-automat
+           python-idna
+           python-incremental
+           python-service-identity
+           python-twisted
+           python-zope-interface))
     (home-page "https://github.com/meejah/txtorcon")
     (synopsis "Twisted-based Tor controller client")
     (description "This package provides a Twisted-based Tor controller client,
@@ -1358,10 +1296,9 @@ with state-tracking and configuration abstractions.")
          "0lipygpzhwzzsq2k5imb1jgkmj8y4khxdwhzadjs3bd56g6bmkx9"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest python-pytest-runner))
     (inputs
-     `(("keyutils" ,keyutils)))
+     (list keyutils))
     (arguments
      '(#:tests? #f))
     (home-page "https://github.com/sassoftware/python-keyutils")
@@ -1400,9 +1337,7 @@ storing and retrieving sensitive information in your programs.")
              (chdir "scripts")
              #t)))))
     (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-intelhex" ,python-intelhex)
-       ("python-cryptography" ,python-cryptography)))
+     (list python-click python-intelhex python-cryptography))
     (home-page "https://mcuboot.com")
     (synopsis "Tool to securely sign firmware images for booting by MCUboot")
     (description "MCUboot is a secure bootloader for 32-bit MCUs.  This
@@ -1423,7 +1358,7 @@ MCUboot.")
          "16mavidki4ma5ip8srqalr19gz4f5yn3cnmmgps1fmgfr24j63rm"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)))
+     (list python-cryptography))
     (home-page "https://github.com/jborean93/ntlm-auth")
     (synopsis
      "Calculates NTLM Authentication codes")
@@ -1454,8 +1389,7 @@ and Backlog for a list of what is and is not currently supported.")
     (arguments
      '(#:tests? #f)) ; Tests require a running dbus service.
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-jeepney" ,python-jeepney)))
+     (list python-cryptography python-jeepney))
     (home-page "https://github.com/mitya57/secretstorage")
     (synopsis "Python bindings to FreeDesktop.org Secret Service API")
     (description
@@ -1486,14 +1420,14 @@ items and collections, editing items, locking and unlocking collections
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-more-itertools" ,python-more-itertools)
-       ("python-pyopenssl" ,python-pyopenssl)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-service-identity" ,python-service-identity)
-       ("python-zipp" ,python-zipp)))
+     (list python-more-itertools
+           python-pyopenssl
+           python-pytest
+           python-pytest-cov
+           python-service-identity
+           python-zipp))
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)))
+     (list python-cryptography))
     (home-page "https://github.com/python-trio/trustme")
     (synopsis "Fake a certificate authority for tests")
     (description
@@ -1516,9 +1450,9 @@ use in your tests.")
           "0n980gqpzh0fm58h3i4mi2i10wgj606lscm1r5sk60vbf6vh8mv9"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pyopenssl" ,python-pyopenssl)))
+     (list python-pyopenssl))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/LLNL/certipy")
     (synopsis "Utility to create and sign CAs and certificates")
     (description
@@ -1539,11 +1473,8 @@ certificates, signing and building trust bundles.")
          (base32 "0mw6ch5s4czpmsiwqwhcidgk27858pl8vlvb7acrxjkm4ribcnbx"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-testpath" ,python-testpath)
-       ("python-tornado" ,python-tornado)
-       ("python-trio" ,python-trio)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-trio" ,python-pytest-trio)))
+     (list python-testpath python-tornado python-trio python-pytest
+           python-pytest-trio))
     (home-page "https://gitlab.com/takluyver/jeepney")
     (synopsis "Low-level, pure Python DBus protocol wrapper")
     (description
@@ -1580,12 +1511,10 @@ I/O-free core, and integration modules for different event loops.")
              ;; see tox.ini
              (invoke "python" "-m" "argon2" "-n" "1" "-t" "1" "-m" "8" "-p" "1"))))))
     (propagated-inputs
-     `(("python-cffi" ,python-cffi)
-       ("python-six" ,python-six)))
-    (inputs `(("argon2" ,argon2)))
+     (list python-cffi python-six))
+    (inputs (list argon2))
     (native-inputs
-     `(("python-hypothesis" ,python-hypothesis)
-       ("python-pytest" ,python-pytest)))
+     (list python-hypothesis python-pytest))
     (home-page "https://argon2-cffi.readthedocs.io/")
     (synopsis "Secure Password Hashes for Python")
     (description
@@ -1617,10 +1546,9 @@ can decide how long it takes to hash a password and how much memory is required.
            (lambda _
              (invoke "python" "-m" "pytest"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-argon2-cffi" ,python-argon2-cffi)
-       ("python-cryptography" ,python-cryptography)))
+     (list python-argon2-cffi python-cryptography))
     (home-page "https://www.dropbox.com/developers")
     (synopsis "Library to password-protect your data")
     (description
@@ -1648,12 +1576,12 @@ signatures.")
              (when tests?
                (invoke "pytest")))))))
     (native-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-pyasn1" ,python-pyasn1)
-       ("python-pytest" ,python-pytest)
-       ("python-singledispatch" ,python-singledispatch)
-       ("python-six" ,python-six)
-       ("python-wheel" ,python-wheel)))
+     (list python-cryptography
+           python-pyasn1
+           python-pytest
+           python-singledispatch
+           python-six
+           python-wheel))
     (home-page "https://github.com/SecurityInnovation/PGPy")
     (synopsis "Python implementation of OpenPGP")
     (description
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 738b504e3b..393e59896d 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2021 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2021 Paul Garlick <pgarlick@tourbillion-technology.com>
 ;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -74,20 +75,17 @@
         (base32 "0rh5b1rwdcvvagld8vpxnpaibszy1skpx39a0fwzd5gx5pwcjvfb"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-pyparsing" ,python-pyparsing)))
+     (list python-numpy python-matplotlib python-pyparsing))
     (inputs
-     `(("openblas" ,openblas)
-       ("pybind11" ,pybind11)))
+     (list openblas pybind11))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)
-       ("python-sphinx" ,python-sphinx)
-       ("python-numpydoc" ,python-numpydoc)
-       ("gfortran" ,gfortran)
-       ("perl" ,perl)
-       ("which" ,which)))
+     (list python-cython
+           python-pytest
+           python-sphinx
+           python-numpydoc
+           gfortran
+           perl
+           which))
     (outputs '("out" "doc"))
     (arguments
      `(#:phases
@@ -159,11 +157,12 @@ atlas_libs = openblas
          ;; within the source directory.
          (delete 'check)
          (add-after 'install 'check
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (add-installed-pythonpath inputs outputs)
-             (with-directory-excursion "/tmp"
-               (invoke "python" "-c"
-                       "import scipy; scipy.test(verbose=2)")))))))
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (with-directory-excursion "/tmp"
+                 (invoke "python" "-c"
+                         "import scipy; scipy.test(verbose=2)"))))))))
     (home-page "https://www.scipy.org/")
     (synopsis "The Scipy library provides efficient numerical routines")
     (description "The SciPy library is one of the core packages that make up
@@ -184,7 +183,16 @@ routines such as routines for numerical integration and optimization.")
        (uri (pypi-uri "scipy" version))
        (sha256
         (base32
-         "1cgvgin8fvckv96hjh3ikmwkra5rif51bdb75ifzf7xbil5iwcx4"))))))
+         "1cgvgin8fvckv96hjh3ikmwkra5rif51bdb75ifzf7xbil5iwcx4"))))
+    (native-inputs
+     (list python2-cython
+           python2-pytest
+           python2-sphinx
+           python2-numpydoc
+           gfortran-7
+           gcc-7
+           perl
+           which))))
 
 (define-public python2-weave
   (package
@@ -207,9 +215,9 @@ routines such as routines for numerical integration and optimization.")
                      "--exclude"
                      "test_(user|incorrect_ownership|char_fail|obj_fail)"))))))
     (propagated-inputs
-     `(("python-numpy" ,python2-numpy)))
+     (list python2-numpy))
     (native-inputs
-     `(("python-nose" ,python2-nose)))
+     (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
@@ -238,11 +246,9 @@ Cython.")
              (invoke "nosetests" "-s" "-v" "skfuzzy")
              #t)))))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (propagated-inputs
-     `(("python-networkx" ,python-networkx)
-       ("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)))
+     (list python-networkx python-numpy python-scipy))
     (home-page "https://github.com/scikit-fuzzy/scikit-fuzzy")
     (synopsis "Fuzzy logic toolkit for SciPy")
     (description
@@ -282,24 +288,24 @@ logic, also known as grey logic.")
     ;; NOTE: scikit-image has an optional dependency on python-pooch, however
     ;; propagating it would enable many more tests that require online data.
     (propagated-inputs
-     `(("python-cloudpickle" ,python-cloudpickle)
-       ("python-dask" ,python-dask)
-       ("python-imageio" ,python-imageio)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-networkx" ,python-networkx)
-       ("python-numpy" ,python-numpy)
-       ("python-pillow" ,python-pillow)
-       ("python-pywavelets" ,python-pywavelets)
-       ("python-scipy" ,python-scipy)
-       ("python-tifffile" ,python-tifffile)))
+     (list python-cloudpickle
+           python-dask
+           python-imageio
+           python-matplotlib
+           python-networkx
+           python-numpy
+           python-pillow
+           python-pywavelets
+           python-scipy
+           python-tifffile))
     (native-inputs
-     `(("python-codecov" ,python-codecov)
-       ("python-cython" ,python-cython)
-       ("python-flake8" ,python-flake8)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-localserver" ,python-pytest-localserver)
-       ("python-wheel" ,python-wheel)))
+     (list python-codecov
+           python-cython
+           python-flake8
+           python-pytest
+           python-pytest-cov
+           python-pytest-localserver
+           python-wheel))
     (home-page "https://scikit-image.org/")
     (synopsis "Image processing in Python")
     (description
@@ -318,7 +324,7 @@ logic, also known as grey logic.")
         (base32 "0dncp9i5b6afkg7f8mj9j0qzsp008b8v73yc0qkmizhpns7mvwvx"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (home-page "https://github.com/brandon-rhodes/python-sgp4")
     (synopsis "Track earth satellite TLE orbits using SGP4")
     (description
@@ -329,13 +335,13 @@ of the SGP4 satellite tracking algorithm.")
 (define-public python-pandas
   (package
     (name "python-pandas")
-    (version "1.3.0")
+    (version "1.3.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pandas" version))
        (sha256
-        (base32 "1qi2cv450m05dwccx3p1s373k5b4ncvwi74plnms2pidrz4ycm65"))))
+        (base32 "1z3gm521wpm3j13rwhlb4f2x0645zvxkgxij37i3imdpy39iiam2"))))
     (build-system python-build-system)
     (arguments
      `(#:modules ((guix build utils)
@@ -358,47 +364,49 @@ of the SGP4 satellite tracking algorithm.")
              ;; xsel needs to write a log file.
              (setenv "HOME" "/tmp")))
          (replace 'check
-           (lambda _
+           (lambda* (#:key tests? #:allow-other-keys)
              (let ((build-directory
                     (string-append
                      (getcwd) "/build/"
                      (first (scandir "build"
                                      (cut string-prefix? "lib." <>))))))
+               (substitute* "pyproject.toml"
+                 ;; Not all data files are distributed with the tarball.
+                 (("--strict-data-files ") ""))
                (with-directory-excursion build-directory
-                 (invoke "pytest" "-vv" "pandas" "--skip-slow"
-                         "--skip-network"
-                         "-k"
-                         ;; These tets access the internet:
-                         ;; pandas/tests/io/xml/test_xml.py::test_wrong_url[lxml]
-                         ;; pandas/tests/io/xml/test_xml.py::test_wrong_url[etree]
-                         ;; TODO: the excel tests fail for unknown reasons
-                         (string-append "not test_wrong_url"
-                                        " and not test_excelwriter_fspath"
-                                        " and not test_ExcelWriter_dispatch"
-                                        ;; TODO: Missing input
-                                        " and not TestS3"
-                                        " and not s3")))))))))
+                 (when tests?
+                   (invoke "pytest" "-vv" "pandas" "--skip-slow"
+                           "--skip-network"
+                           "-k"
+                           ;; These tets access the internet:
+                           ;; pandas/tests/io/xml/test_xml.py::test_wrong_url[lxml]
+                           ;; pandas/tests/io/xml/test_xml.py::test_wrong_url[etree]
+                           ;; TODO: the excel tests fail for unknown reasons
+                           (string-append "not test_wrong_url"
+                                          " and not test_excelwriter_fspath"
+                                          " and not test_ExcelWriter_dispatch"
+                                          ;; TODO: Missing input
+                                          " and not TestS3"
+                                          " and not s3"))))))))))
     (propagated-inputs
-     `(("python-jinja2" ,python-jinja2)
-       ("python-numpy" ,python-numpy)
-       ("python-openpyxl" ,python-openpyxl)
-       ("python-pytz" ,python-pytz)
-       ("python-dateutil" ,python-dateutil)
-       ("python-xlrd" ,python-xlrd)))
+     (list python-jinja2
+           python-numpy
+           python-openpyxl
+           python-pytz
+           python-dateutil
+           python-xlrd))
     (inputs
-     `(("which" ,which)
-       ("xclip" ,xclip)
-       ("xsel" ,xsel)))
+     (list which xclip xsel))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-lxml" ,python-lxml)
-       ("python-html5lib" ,python-html5lib)
-       ("python-nose" ,python-nose)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ;; Needed to test clipboard support.
-       ("xorg-server" ,xorg-server-for-tests)))
+     (list python-cython
+           python-beautifulsoup4
+           python-lxml
+           python-html5lib
+           python-nose
+           python-pytest
+           python-pytest-mock
+           ;; Needed to test clipboard support.
+           xorg-server-for-tests))
     (home-page "https://pandas.pydata.org")
     (synopsis "Data structures for data analysis, time series, and statistics")
     (description
@@ -453,12 +461,62 @@ doing practical, real world data analysis in Python.")
                     ;; 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:"))
-                    #t)))))))
+                       "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 python-pyflow
+(define-public python2-pyflow
   (package
-    (name "python-pyflow")
+    (name "python2-pyflow")
     (version "1.1.20")
     (source (origin
               (method url-fetch)
@@ -470,7 +528,10 @@ doing practical, real world data analysis in Python.")
                 "1bvfvviw58cndyn862qnv9nj3d9cd3a0dm4vc4sd9vwq8a6z1riv"))))
     (build-system python-build-system)
     (arguments
-     `(#:tests? #f)) ; There is no test suite.
+     `(#: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
@@ -495,11 +556,9 @@ context of a task dependency graph.  It has some similarities to make.")
            (lambda _
              (invoke "python" "setup.py" "pytest"))))))
     (native-inputs
-     `(("python-hypothesis" ,python-hypothesis)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-hypothesis python-pytest python-pytest-runner))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (home-page "https://github.com/pydata/bottleneck")
     (synopsis "Fast NumPy array functions written in C")
     (description
@@ -519,9 +578,7 @@ written in C.")
         (base32 "1c1354a7b3g8slychjgyjxqdm8z40z9kviyl9n4g9kfpdg0p4d64"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-matplotlib" ,python-matplotlib)
-       ("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)))
+     (list python-matplotlib python-numpy python-scipy))
     (home-page "https://github.com/janezd/baycomp")
     (synopsis "Library for comparison of Bayesian classifiers")
     (description
@@ -545,11 +602,9 @@ higher scores.")
                 "1yx8j66b7rn10m2l6gmn8yr9cn38pi5cj0x0wwpy4hdnhy6i7qv4"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-pytest" ,python-pytest)))
+     (list python-setuptools-scm python-pytest))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)))
+     (list python-numpy python-pandas))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -581,8 +636,7 @@ and visualization with these data structures.")
          "0syzy645mwcy7lfjwz6pc8f9p2vv1qk4limc8iina3l5nnf0rjyz"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-msgpack" ,python-msgpack)
-       ("python-numpy" ,python-numpy)))
+     (list python-msgpack python-numpy))
     (home-page "https://github.com/lebedov/msgpack-numpy")
     (synopsis
      "Numpy data serialization using msgpack")
@@ -616,7 +670,7 @@ Python's native complex data types is also supported.")
                (with-directory-excursion "ruffus/test"
                  (invoke "bash" "run_all_unit_tests3.cmd"))))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "http://www.ruffus.org.uk")
     (synopsis "Light-weight computational pipeline management")
     (description
@@ -637,11 +691,8 @@ automated with the minimum of fuss and the least effort.")
          "1f8c2sylzr7lpjbyqxsqlp9xi8rj3d8c9hfh98x4jbb83zxc4026"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-seaborn" ,python-seaborn)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-pandas" ,python-pandas)
-       ("python-scipy" ,python-scipy)))
+     (list python-numpy python-seaborn python-matplotlib python-pandas
+           python-scipy))
     (home-page
      "https://github.com/webermarcolivier/statannot")
     (synopsis "Add annotations to existing plots generated by seaborn")
@@ -674,11 +725,9 @@ annotations on an existing boxplots and barplots generated by seaborn.")
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "-v" "--doctest-modules"))))))
     (propagated-inputs
-     `(("python-matplotlib" ,python-matplotlib)
-       ("python-pandas" ,python-pandas)))
+     (list python-matplotlib python-pandas))
     (native-inputs
-     `(("python-pytest-runner" ,python-pytest-runner)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-pytest-runner python-pytest-cov))
     (home-page "https://upsetplot.readthedocs.io")
     (synopsis "Draw UpSet plots with Pandas and Matplotlib")
     (description
@@ -722,7 +771,7 @@ readable.")
        ("pkgconfig" ,python-pkgconfig)
        ("matplotlib" ,python-matplotlib)))
     (native-inputs ; for python-pkgconfig
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
      `(("numpy" ,python-numpy)
        ("vtk" ,vtk)))
@@ -758,8 +807,7 @@ dependencies.")
          "12g4av8gpl6l83yza3h97j3f2jblqv69frlidrvdq8ny2rc6awbq"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pandas" ,python-pandas)
-       ("python-xarray" ,python-xarray)))
+     (list python-pandas python-xarray))
     (home-page "https://github.com/Zsailer/pandas_flavor")
     (synopsis "Write your own flavor of Pandas")
     (description "Pandas 0.23 added a simple API for registering accessors
@@ -775,7 +823,7 @@ of Pandas
 (define-public python-pingouin
   (package
     (name "python-pingouin")
-    (version "0.3.12")
+    (version "0.5.0")
     (source
      ;; The PyPI tarball does not contain the tests.
      (origin
@@ -786,7 +834,7 @@ of Pandas
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1ap29x54kdr19vi8qxj9g6cz2r1q4f0z7dcf6g77zwav7hf7r61a"))))
+         "01aaq023q4bymffrc2wm56af87da32wcvy5d5156i4g7qgvh346r"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -806,19 +854,18 @@ of Pandas
              (when tests?
                (invoke "pytest")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-pytest python-pytest-cov))
     (propagated-inputs
-     `(("python-matplotlib" ,python-matplotlib)
-       ("python-mpmath" ,python-mpmath)
-       ("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-pandas-flavor" ,python-pandas-flavor)
-       ("python-scikit-learn" ,python-scikit-learn)
-       ("python-scipy" ,python-scipy)
-       ("python-seaborn" ,python-seaborn)
-       ("python-statsmodels" ,python-statsmodels)
-       ("python-tabulate" ,python-tabulate)))
+     (list python-matplotlib
+           python-mpmath
+           python-numpy
+           python-pandas
+           python-pandas-flavor
+           python-scikit-learn
+           python-scipy
+           python-seaborn
+           python-statsmodels
+           python-tabulate))
     (home-page "https://pingouin-stats.org/")
     (synopsis "Statistical package for Python")
     (description "Pingouin is a statistical package written in Python 3 and
@@ -846,7 +893,7 @@ and more
 (define-public python-distributed
   (package
     (name "python-distributed")
-    (version "2021.07.1")
+    (version "2021.11.2")
     (source
      (origin
        ;; The test files are not included in the archive on pypi
@@ -857,11 +904,16 @@ and more
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0i55zf3k55sqjxnwlzsyj3h3v1588fn54ng4mj3dfiqzh3nlj0dg"))))
+         "1p20cbyabzl7rs8y3ydzszsskh4kw088m252ghgairhs0p2f95hl"))
+       ;; Delete bundled copy of python-versioneer.
+       (snippet '(delete-file "versioneer.py"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'versioneer
+           (lambda _
+             (invoke "versioneer" "install")))
          (add-after 'unpack 'fix-references
            (lambda* (#:key outputs #:allow-other-keys)
              (substitute* '("distributed/comm/tests/test_ucx_config.py"
@@ -886,29 +938,31 @@ and more
                        "-m" "not slow and not gpu and not ipython and not avoid_ci"
                        "-k"
                        ;; TODO: These tests fail for unknown reasons:
-                       ;; Assertion error.
                        (string-append
-                        "not test_version_option"
+                        ;; 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"))))))))
     (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-cloudpickle" ,python-cloudpickle)
-       ("python-cryptography" ,python-cryptography)
-       ("python-dask" ,python-dask)
-       ("python-msgpack" ,python-msgpack)
-       ("python-psutil" ,python-psutil)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-setuptools" ,python-setuptools)
-       ("python-sortedcontainers" ,python-sortedcontainers)
-       ("python-tblib" ,python-tblib)
-       ("python-toolz" ,python-toolz)
-       ("python-tornado" ,python-tornado-6)
-       ("python-zict" ,python-zict)))
+     (list python-click
+           python-cloudpickle
+           python-cryptography
+           python-dask
+           python-msgpack
+           python-psutil
+           python-pyyaml
+           python-setuptools
+           python-sortedcontainers
+           python-tblib
+           python-toolz
+           python-tornado-6
+           python-zict))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest python-versioneer))
     (home-page "https://distributed.dask.org")
     (synopsis "Distributed scheduler for Dask")
     (description "Dask.distributed is a lightweight library for distributed
@@ -948,31 +1002,31 @@ computing in Python.  It extends both the @code{concurrent.futures} and
                (invoke "python" "-m" "pytest"
                        "modin/pandas/test/test_concat.py")))))))
     (propagated-inputs
-     `(("python-cloudpickle" ,python-cloudpickle)
-       ("python-dask" ,python-dask)
-       ("python-distributed" ,python-distributed)
-       ("python-numpy" ,python-numpy)
-       ("python-packaging" ,python-packaging)
-       ("python-pandas" ,python-pandas)))
+     (list python-cloudpickle
+           python-dask
+           python-distributed
+           python-numpy
+           python-packaging
+           python-pandas))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-jinja2" ,python-jinja2)
-       ("python-lxml" ,python-lxml)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-msgpack" ,python-msgpack)
-       ("python-openpyxl" ,python-openpyxl)
-       ("python-psutil" ,python-psutil)
-       ("python-pyarrow" ,python-pyarrow)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-benchmark" ,python-pytest-benchmark)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-xdist" ,python-pytest-xdist)
-       ("python-scipy" ,python-scipy)
-       ("python-sqlalchemy" ,python-sqlalchemy)
-       ("python-tables" ,python-tables)
-       ("python-tqdm" ,python-tqdm)
-       ("python-xarray" ,python-xarray)
-       ("python-xlrd" ,python-xlrd)))
+     (list python-coverage
+           python-jinja2
+           python-lxml
+           python-matplotlib
+           python-msgpack
+           python-openpyxl
+           python-psutil
+           python-pyarrow
+           python-pytest
+           python-pytest-benchmark
+           python-pytest-cov
+           python-pytest-xdist
+           python-scipy
+           python-sqlalchemy
+           python-tables
+           python-tqdm
+           python-xarray
+           python-xlrd))
     (home-page "https://github.com/modin-project/modin")
     (synopsis "Make your pandas code run faster")
     (description
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 9c8e328959..61a34bfc63 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -44,6 +44,9 @@
 ;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2021 Pradana Aumars <paumars@courrier.dev>
+;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
+;;; Copyright © 2021 Alice Brenon <alice.brenon@ens-lyon.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -78,14 +81,15 @@
   #:use-module (gnu packages groff)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libffi)
+  #:use-module (gnu packages node)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
-  #:use-module (gnu packages python-compression)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages texinfo)
@@ -99,23 +103,23 @@
 (define-public python-prawcore
   (package
     (name "python-prawcore")
-    (version "2.0.0")
+    (version "2.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "prawcore" version))
        (sha256
-        (base32 "1l9nrn4s03xl8fvkyybdk86bm9cyyk43alkxf9g014a9ynvdk65l"))))
+        (base32 "0vgmhjddqxnz5vy70dyqvakak51fg1nk6j3xavkc83d8nzacrwfs"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-betamax" ,python-betamax)
-       ("python-betamax-matchers" ,python-betamax-matchers)
-       ("python-betamax-serializers" ,python-betamax-serializers)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-testfixtures" ,python-testfixtures)))
-    (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-betamax
+           python-betamax-matchers
+           python-betamax-serializers
+           python-mock
+           python-pytest
+           python-testfixtures))
+    (propagated-inputs
+     (list python-requests))
     (synopsis "Core component of PRAW")
     (description "PRAWcore is a low-level communication layer used by PRAW.")
     (home-page "https://praw.readthedocs.io/en/latest/")
@@ -124,13 +128,13 @@
 (define-public python-praw
   (package
     (name "python-praw")
-    (version "7.2.0")
+    (version "7.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "praw" version))
        (sha256
-        (base32 "0ll1a0n8xs8gykizdsfrw63jp6bc39ab0pk3yzwcak96fyxh0ij3"))))
+        (base32 "1nqcwz8r8xp4rfpy2i11x2fjga8fmmf6zw94xjk1h1yxgn1gq6zr"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -138,25 +142,22 @@
          (add-after 'unpack 'disable-failing-tests
            (lambda _
              (with-directory-excursion "tests"
-               ;; Require networking.
+               ;; Integration tests depend on files that are not included.
                (for-each delete-file-recursively
                          '("integration/models" "unit/models"))
-               ;; https://github.com/praw-dev/praw/issues/1699
-               ;; #issuecomment-795336704
-               (delete-file "unit/test_config.py"))
-             #t))
+               ;; The configuration file does not seem to exist.
+               (delete-file "unit/test_config.py"))))
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
-               (invoke "pytest"))
-             #t)))))
+               (invoke "pytest" "-k"
+                       ;; These tests depend on test files that don't exist.
+                       (string-append "not test_bad_request_without_json_text_plain_response"
+                                      " and not test_bad_request_without_json_text_html_response"))))))))
     (native-inputs
-     `(("python-betamax" ,python-betamax)
-       ("python-betamax-matchers" ,python-betamax-matchers)
-       ("python-pytest" ,python-pytest)))
+     (list python-betamax python-betamax-matchers python-pytest))
     (propagated-inputs
-     `(("python-prawcore" ,python-prawcore)
-       ("python-websocket-client" ,python-websocket-client)))
+     (list python-prawcore python-update-checker python-websocket-client))
     (synopsis "Python Reddit API Wrapper")
     (description "PRAW is a Python package that allows for simple access to
 Reddit’s API.  It aims to be easy to use and internally follows all of Reddit’s
@@ -173,7 +174,16 @@ API rules.")
        (method url-fetch)
        (uri (pypi-uri "aiohttp" version))
        (sha256
-        (base32 "1pn79h8fng4xi5gl1f6saw31nxgmgyxl41yf3vba1l21673yr12x"))))
+        (base32 "1pn79h8fng4xi5gl1f6saw31nxgmgyxl41yf3vba1l21673yr12x"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (for-each delete-file
+                     '("aiohttp/_frozenlist.c"
+                       "aiohttp/_helpers.c"
+                       "aiohttp/_http_parser.c"
+                       "aiohttp/_http_writer.c"
+                       "aiohttp/_websocket.c"))))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -196,6 +206,15 @@ API rules.")
 
              ;; Don't test the aiohttp pytest plugin to avoid a dependency loop.
              (delete-file "tests/test_pytest_plugin.py")))
+         (add-before 'build 'cythonize
+           (lambda _
+             ;; Adapted from the Makefile.
+             (with-directory-excursion "aiohttp"
+               (for-each
+                 (lambda (file)
+                   (invoke "cython" "-3"
+                           file "-I" "."))
+                 (find-files "." "_.*\\.pyx$")))))
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (if tests?
@@ -203,24 +222,25 @@ API rules.")
                          ;; Disable loading the aiohttp coverage plugin
                          ;; to avoid a circular dependency (code coverage
                          ;; is not very interesting to us anyway).
-                         "-o" "addopts=''")
+                         "-o" "addopts=''" "--ignore=aiohttp")
                  (format #t "test suite not run~%")))))))
     (propagated-inputs
-     `(("python-aiodns" ,python-aiodns)
-       ("python-async-timeout" ,python-async-timeout)
-       ("python-attrs" ,python-attrs)   ;note: remove for > 3.7
-       ("python-chardet" ,python-chardet)
-       ("python-idna-ssl" ,python-idna-ssl)
-       ("python-multidict" ,python-multidict)
-       ("python-typing-extensions" ,python-typing-extensions)
-       ("python-yarl" ,python-yarl)))
+     (list python-aiodns
+           python-async-timeout
+           python-attrs ;note: remove for > 3.7
+           python-chardet
+           python-idna-ssl
+           python-multidict
+           python-typing-extensions
+           python-yarl))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-re-assert" ,python-re-assert)
-       ("gunicorn" ,gunicorn-bootstrap)
-       ("python-freezegun" ,python-freezegun)
-       ("python-async-generator" ,python-async-generator)))
+     (list gunicorn-bootstrap
+           python-async-generator
+           python-cython
+           python-freezegun
+           python-pytest-6.1
+           python-pytest-mock
+           python-re-assert))
     (home-page "https://github.com/aio-libs/aiohttp/")
     (synopsis "Async HTTP client/server framework (asyncio)")
     (description "@code{aiohttp} is an asynchronous HTTP client/server
@@ -238,19 +258,17 @@ Callback Hell.
 (define-public python-aiohttp-socks
   (package
     (name "python-aiohttp-socks")
-    (version "0.5.5")
+    (version "0.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "aiohttp_socks" version))
        (sha256
         (base32
-         "0jmhb0l1w8k1nishij3awd9zv8zbyb5l35a2pdalrqxxasbhbcif"))))
+         "04w010bvi719ifpc3sshav95k10hf9nq8czn9yglkj206yxcypdr"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-aiohttp" ,python-aiohttp)
-       ("python-attrs" ,python-attrs)
-       ("python-socks" ,python-socks)))
+     (list python-aiohttp python-attrs python-socks))
     (home-page "https://github.com/romis2012/aiohttp-socks")
     (synopsis "SOCKS proxy connector for aiohttp")
     (description "This package provides a SOCKS proxy connector for
@@ -270,7 +288,7 @@ aiohttp.  It supports SOCKS4(a) and SOCKS5.")
          "1snr5paql8dgvc676n8xq460wypjsb1xj53cf3px1s4wczf7lryq"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pycares" ,python-pycares)))
+     (list python-pycares))
     (arguments
      `(#:tests? #f))                    ;tests require internet access
     (home-page "https://github.com/saghul/aiodns")
@@ -293,7 +311,7 @@ using @url{https://github.com/saghul/pycares,pycares}.")
          "0lx54bcinp44fmr8q4bbffsqbkg8kdcwykf9i5jj0bj3sfzgf9k0"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-attrs" ,python-attrs)))
+     (list python-attrs))
     (home-page "https://github.com/kyuupichan/aiorpcX")
     (synopsis "Generic asyncio RPC implementation")
     (description
@@ -320,22 +338,22 @@ comes with a SOCKS proxy client.")
 (define-public python-asgiref
   (package
     (name "python-asgiref")
-    (version "3.3.4")
+    (version "3.4.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "asgiref" version))
               (sha256
-               (base32
-                "0y0vdzldjkbs4pxf10pi6jpxq9b2sfp1rlwm153jcf5nvzxns8fi"))))
+               (base32 "1saqgpgbdvb8awzm0f0640j0im55hkrfzvcw683cgqw4ni3apwaf"))))
     (build-system python-build-system)
     (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (replace 'check
-                    (lambda _
-                      (invoke "pytest" "-vv"))))))
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest" "-vv")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-asyncio" ,python-pytest-asyncio)))
+     (list python-pytest python-pytest-asyncio))
     (home-page "https://github.com/django/asgiref/")
     (synopsis "ASGI specs, helper code, and adapters")
     (description
@@ -358,7 +376,7 @@ WSGI.  This package includes libraries for implementing ASGI servers.")
     ;; XXX: The git repository has no tags, and the PyPI releases do not
     ;; contain tests.
     (arguments '(#:tests? #f))
-    (native-inputs `(("unzip" ,unzip)))
+    (native-inputs (list unzip))
     (home-page "https://github.com/juancarlospaco/css-html-js-minify")
     (synopsis "CSS/HTML/JS minifier")
     (description
@@ -371,13 +389,13 @@ WSGI.  This package includes libraries for implementing ASGI servers.")
 (define-public python-aws-sam-translator
   (package
     (name "python-aws-sam-translator")
-    (version "1.38.0")
+    (version "1.40.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "aws-sam-translator" version))
               (sha256
                (base32
-                "1djwlsjpbh13m4biglimrm9lq7hmla0k29giay7k3cjsrylxvjhf"))))
+                "1hq5ggbzcq4k3ks439hki493w4sasgaxns6j5x57xsj822acalmf"))))
     (build-system python-build-system)
     (arguments
      `(;; XXX: Tests are not distributed with the PyPI archive, and would
@@ -390,13 +408,10 @@ WSGI.  This package includes libraries for implementing ASGI servers.")
                       ;; of dependencies, when it works fine with others.
                       (substitute* "requirements/base.txt"
                         (("(.*)(~=[0-9\\.]+)" all package version)
-                         package))
-                      #t)))))
+                         package)))))))
     (propagated-inputs
-     `(("python-boto3" ,python-boto3)
-       ("python-jsonschema" ,python-jsonschema)
-       ("python-six" ,python-six)))
-    (home-page "https://github.com/awslabs/serverless-application-model")
+     (list python-boto3 python-jsonschema python-six))
+    (home-page "https://github.com/aws/serverless-application-model")
     (synopsis "Transform AWS SAM templates into AWS CloudFormation templates")
     (description
      "AWS SAM Translator is a library that transform @dfn{Serverless Application
@@ -443,25 +458,27 @@ Model} (SAM) templates into AWS CloudFormation templates.")
                                   "tests/ext/aiohttp/test_client.py"))))
                   (replace 'check
                     (lambda _
+                      ;; Allow "import tests.utils" to work as expected.
+                      (setenv "PYTHONPATH" (getcwd))
                       (invoke "pytest" "-vv" "tests"))))))
     (native-inputs
-     `(;; These are required for the test suite.
-       ("python-bottle" ,python-bottle)
-       ("python-flask" ,python-flask)
-       ("python-flask-sqlalchemy" ,python-flask-sqlalchemy)
-       ("python-pymysql" ,python-pymysql)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-aiohttp" ,python-pytest-aiohttp)
-       ("python-requests" ,python-requests)
-       ("python-sqlalchemy" ,python-sqlalchemy)
-       ("python-webtest" ,python-webtest)))
-    (propagated-inputs
-     `(("python-aiohttp" ,python-aiohttp)
-       ("python-botocore" ,python-botocore)
-       ("python-future" ,python-future)
-       ("python-jsonpickle" ,python-jsonpickle)
-       ("python-urllib3" ,python-urllib3)
-       ("python-wrapt" ,python-wrapt)))
+     (list ;; These are required for the test suite.
+           python-bottle
+           python-flask
+           python-flask-sqlalchemy
+           python-pymysql
+           python-pytest
+           python-pytest-aiohttp
+           python-requests
+           python-sqlalchemy
+           python-webtest))
+    (propagated-inputs
+     (list python-aiohttp
+           python-botocore
+           python-future
+           python-jsonpickle
+           python-urllib3
+           python-wrapt))
     (synopsis "Profile applications on AWS X-Ray")
     (description
      "The AWS X-Ray SDK for Python enables Python developers to record and
@@ -471,8 +488,8 @@ emit information from within their applications to the AWS X-Ray service.")
 (define-public python-cfn-lint
   (package
     (name "python-cfn-lint")
-    (version "0.54.1")
-    (home-page "https://github.com/aws-cloudformation/cfn-python-lint")
+    (version "0.54.3")
+    (home-page "https://github.com/aws-cloudformation/cfn-lint")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -481,32 +498,36 @@ emit information from within their applications to the AWS X-Ray service.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "161mzzlpbi85q43kwzrj39qb32l6wg6xhnbbd4z860yrfbymsn87"))))
+                "106qf19n2k6sdjkb4006aidibd24qqiw901c1613xgjpnyw4dyl6"))))
     (build-system python-build-system)
     (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (replace 'check
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      (let ((out (assoc-ref outputs "out")))
-                        ;; Remove test for the documentation update scripts
-                        ;; to avoid a dependency on 'git'.
-                        (delete-file
-                         "test/unit/module/maintenance/test_update_documentation.py")
-                        (delete-file
-                         "test/unit/module/maintenance/test_update_resource_specs.py")
-                        (invoke "python" "-m" "unittest" "discover" "-v"
-                                "-s" "test")))))))
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (let ((out (assoc-ref outputs "out")))
+                 ;; Remove test for the documentation update scripts
+                 ;; to avoid a dependency on 'git'.
+                 (delete-file
+                  "test/unit/module/maintenance/test_update_documentation.py")
+                 (delete-file
+                  "test/unit/module/maintenance/test_update_resource_specs.py")
+                 (add-installed-pythonpath inputs outputs)
+                 (setenv "PATH" (string-append out "/bin:"
+                                               (getenv "PATH")))
+                 (invoke "python" "-m" "unittest" "discover"
+                         "-s" "test"))))))))
     (native-inputs
-     `(("python-pydot" ,python-pydot)
-       ("python-mock" ,python-mock)))
-    (propagated-inputs
-     `(("python-aws-sam-translator" ,python-aws-sam-translator)
-       ("python-jsonpatch" ,python-jsonpatch)
-       ("python-jsonschema" ,python-jsonschema)
-       ("python-junit-xml" ,python-junit-xml)
-       ("python-networkx" ,python-networkx)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-six" ,python-six)))
+     (list python-pydot python-mock))
+    (propagated-inputs
+     (list python-aws-sam-translator
+           python-jsonpatch
+           python-jsonschema
+           python-junit-xml
+           python-networkx
+           python-pyyaml
+           python-six))
     (synopsis "Validate CloudFormation templates")
     (description
      "This package lets you validate CloudFormation YAML/JSON templates against
@@ -549,18 +570,18 @@ for resource properties and best practices.")
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "--ignore" "falcon"))))))
     (propagated-inputs
-     `(("python-mimeparse" ,python-mimeparse)))
+     (list python-mimeparse))
     (native-inputs
-     `(("python-cython" ,python-cython) ;for faster binaries
-       ("python-mujson" ,python-mujson)
-       ("python-msgpack" ,python-msgpack)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-rapidjson" ,python-rapidjson)
-       ("python-requests" ,python-requests)
-       ("python-testtools" ,python-testtools)
-       ("python-ujson" ,python-ujson)))
+     (list python-cython ;for faster binaries
+           python-mujson
+           python-msgpack
+           python-pytest
+           python-pytest-runner
+           python-pyyaml
+           python-rapidjson
+           python-requests
+           python-testtools
+           python-ujson))
     (home-page "https://falconframework.org")
     (synopsis
      "Web framework for building APIs and application backends")
@@ -595,7 +616,7 @@ classes
          "12pym7hwsbd8b0c1azn95nas8gm3f1qpr6lpyx0958xm65ffr20p"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-falcon" ,python-falcon)))
+     (list python-falcon))
     (home-page
      "https://github.com/lwcolton/falcon-cors")
     (synopsis "Falcon @dfn{cross-origin resource sharing} (CORS) library")
@@ -608,20 +629,19 @@ over a different origin than that of the web application.")
 (define-public python-furl
   (package
     (name "python-furl")
-    (version "2.0.0")
+    (version "2.1.3")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "furl" version))
         (sha256
           (base32
-            "1v2lakx03d5w8954a39ki44xv5mllnq0a0avhxykv9hrzg0yvjpx"))))
+            "0knc76pm8pzigs3bpx9fccfsfxqrgblqphar46hq9i364vz8hqas"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-orderedmultidict" ,python-orderedmultidict)))
+     (list python-six python-orderedmultidict))
     (native-inputs
-     `(("python-flake8" ,python-flake8)))
+     (list python-flake8))
     (home-page "https://github.com/gruns/furl")
     (synopsis "URL manipulation in Python")
     (description "Furl provides an easy-to-use alternative to the
@@ -666,10 +686,8 @@ other HTTP libraries.")
      ;; The tests attempt to access external web servers, so we cannot run them.
      '(#:tests? #f))
     (propagated-inputs
-     `(("python-colorama" ,python-colorama)
-       ("python-pygments" ,python-pygments)
-       ("python-requests" ,python-requests)
-       ("python-requests-toolbelt" ,python-requests-toolbelt-0.9.1)))
+     (list python-colorama python-pygments python-requests
+           python-requests-toolbelt-0.9.1))
     (home-page "https://httpie.io")
     (synopsis "cURL-like tool for humans")
     (description
@@ -700,7 +718,7 @@ HTTP servers, RESTful APIs, and web services.")
            (lambda _
              (invoke "pytest" "test/"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/Alir3z4/html2text")
     (synopsis "Convert HTML into plain text")
     (description "html2text takes HTML and converts it into plain ASCII text
@@ -744,15 +762,11 @@ Swartz.")
                  (format #t "test suite not run~%"))
              #t)))))
     (native-inputs
-     `(;; All native inputs are for tests.
-       ("python-pyasn1" ,python-pyasn1)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-runner" ,python-pytest-runner)))
-    (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-rsa" ,python-rsa)
-       ("python-six" ,python-six)))
+     (list ;; All native inputs are for tests.
+           python-pyasn1 python-pytest python-pytest-cov
+           python-pytest-runner))
+    (propagated-inputs
+     (list python-cryptography python-ecdsa python-rsa python-six))
     (synopsis "JOSE implementation in Python")
     (description
      "The @dfn{JavaScript Object Signing and Encryption} (JOSE) technologies
@@ -764,13 +778,13 @@ content using a variety of algorithms.")
 (define-public python-jsonpickle
   (package
     (name "python-jsonpickle")
-    (version "1.4.1")
+    (version "1.5.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "jsonpickle" version))
               (sha256
                (base32
-                "1fn86z468hamw8njh2grw2xdhsm7g48dyxs3lw0n10nn1g6vgm78"))))
+                "0n93h9b9ad58lxdfbvgsh4b25mkg146qikzcgghyc75vjk7rp2cy"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -782,12 +796,12 @@ content using a variety of algorithms.")
                               ;; and frequently causes harmless failures.
                               "-o" "addopts=''"))))))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-toml" ,python-toml)  ;XXX: for setuptools_scm[toml]
-       ;; For tests.
-       ("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-pytest" ,python-pytest)))
+     (list python-setuptools-scm
+           python-toml ;XXX: for setuptools_scm[toml]
+           ;; For tests.
+           python-numpy
+           python-pandas
+           python-pytest))
     (home-page "https://jsonpickle.github.io/")
     (synopsis "Serialize object graphs into JSON")
     (description
@@ -807,17 +821,14 @@ object graph to and from JSON.")
         (base32 "01sddjxy3rznh63hnl5lbv1hhk6xyiviwmkiw4x7v4ap35fb3lrp"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-lxml" ,python-lxml)
-       ("python-requests" ,python-requests)
-       ("python-six" ,python-six)))
+     (list python-beautifulsoup4 python-lxml python-requests python-six))
     (native-inputs
-     `(("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-flake8" ,python-pytest-flake8)
-       ("python-pytest-httpbin" ,python-pytest-httpbin)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-requests-mock" ,python-requests-mock)))
+     (list python-pytest-cov
+           python-pytest-flake8
+           python-pytest-httpbin
+           python-pytest-mock
+           python-pytest-runner
+           python-requests-mock))
     (home-page "https://mechanicalsoup.readthedocs.io/")
     (synopsis "Python library for automating website interaction")
     (description
@@ -829,13 +840,13 @@ follow links and submit forms.  It doesn’t do JavaScript.")
 (define-public python-hyperframe
   (package
     (name "python-hyperframe")
-    (version "5.2.0")
+    (version "6.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "hyperframe" version))
        (sha256
-        (base32 "07xlf44l1cw0ghxx46sbmkgzil8vqv8kxwy42ywikiy35izw3xd9"))))
+        (base32 "055951gyhnjqpa2al52rj34g8yrls9inyn56n7nfkj0x4d300ldf"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -846,7 +857,7 @@ follow links and submit forms.  It doesn’t do JavaScript.")
                (add-installed-pythonpath inputs outputs)
                (invoke "pytest" "-vv" "test")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/python-hyper/hyperframe")
     (synopsis "HTTP/2 framing layer for Python")
     (description
@@ -858,7 +869,7 @@ into HTTP/2 frames.")
 (define-public python-hpack
   (package
     (name "python-hpack")
-    (version "3.0.0")
+    (version "4.0.0")
     (source
      (origin
        ;; PyPI tarball is missing some files necessary for the tests.
@@ -868,7 +879,7 @@ into HTTP/2 frames.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0w8hkz50a6lzkmgi41ryicm0mh9ca9cx29pm3s0xlpn0vs29xrmd"))))
+        (base32 "11qdayvz5a8zlzdcdm37f2z1fgnl67pz6j8xj2dz5rfa5lds29yq"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -877,12 +888,9 @@ into HTTP/2 frames.")
            (lambda* (#:key tests? inputs outputs #:allow-other-keys)
              (when tests?
                (add-installed-pythonpath inputs outputs)
-               (invoke "pytest" "-vv" "test" "-k"
-                       ;; This test will be fixed in the next version. See:
-                       ;; https://github.com/python-hyper/hpack/issues/168.
-                       "not test_get_by_index_out_of_range")))))))
+               (invoke "pytest" "-vv" "test")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://hyper.rtfd.org")
     (synopsis "Pure-Python HPACK header compression")
     (description
@@ -893,13 +901,13 @@ for use in Python programs that implement HTTP/2.")
 (define-public python-h11
   (package
     (name "python-h11")
-    (version "0.9.0")
+    (version "0.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "h11" version))
        (sha256
-        (base32 "1qfad70h59hya21vrzz8dqyyaiqhac0anl2dx3s3k80gpskvrm1k"))))
+        (base32 "0hk0nll6qazsambp3kl8cxxsbl4gv5y9252qadyk0jky0sv2q8j7"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -909,7 +917,7 @@ for use in Python programs that implement HTTP/2.")
              (when tests?
                (invoke "pytest" "-vv")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/python-hyper/h11")
     (synopsis "Pure-Python, bring-your-own-I/O implementation of HTTP/1.1")
     (description
@@ -922,13 +930,13 @@ and that could be anything you want.")
 (define-public python-h2
   (package
     (name "python-h2")
-    (version "3.2.0")
+    (version "4.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "h2" version))
        (sha256
-        (base32 "051gg30aca26rdxsmr9svwqm06pdz9bv21ch4n0lgi7jsvml2pw7"))))
+        (base32 "1fraip114fm1ha5w37pdc0sk8dn9pb0ck267zrwwpap7zc4clfm8"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -937,13 +945,12 @@ and that could be anything you want.")
            (lambda* (#:key tests? inputs outputs #:allow-other-keys)
              (when tests?
                (add-installed-pythonpath inputs outputs)
-               (invoke "pytest" "-vv" "test")))))))
+               (invoke "python" "-m" "pytest" "-vv" "test")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-hypothesis-6.23 python-pytest))
     (propagated-inputs
-     `(("python-hpack" ,python-hpack)
-       ("python-hyperframe" ,python-hyperframe)))
-    (home-page "https://github.com/python-hyper/hyper-h2")
+     (list python-hpack python-hyperframe))
+    (home-page "https://github.com/python-hyper/h2")
     (synopsis "HTTP/2 State-Machine based protocol implementation")
     (description
      "This module contains a pure-Python implementation of a HTTP/2 protocol
@@ -970,7 +977,7 @@ Python HTTP implementation.")
        ;; dependencies
        #:tests? #f))
     (propagated-inputs
-     `(("python-tornado" ,python-tornado)))
+     (list python-tornado))
     (home-page "https://github.com/mrjoes/sockjs-tornado/")
     (synopsis
      "SockJS Python server implementation on top of the Tornado framework")
@@ -1004,10 +1011,7 @@ between a web browser and web server.")
                       (with-directory-excursion "tests"
                         (invoke "python" "tests.py")))))))
     (propagated-inputs
-     `(("python-flask" ,python-flask)
-       ("python-babel" ,python-babel)
-       ("python-jinja2" ,python-jinja2)
-       ("python-pytz" ,python-pytz)))
+     (list python-flask python-babel python-jinja2 python-pytz))
     (home-page "https://github.com/python-babel/flask-babel")
     (synopsis "Add i18n/l10n support to Flask applications")
     (description "This package implements internationalization and localization
@@ -1027,11 +1031,9 @@ both of which are installed automatically if you install this library.")
                 "1f36hkaxc92zn12f88fkzwifdvlvsnmlp1dv3p5inpcc500c3kvb"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-flask" ,python-flask)
-       ("python-nose" ,python-nose)
-       ("python-packaging" ,python-packaging)))
+     (list python-flask python-nose python-packaging))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://flask-cors.readthedocs.io/en/latest/")
     (synopsis "Handle Cross-Origin Resource Sharing with Flask")
     (description
@@ -1054,10 +1056,9 @@ Origin Resource Sharing}, making cross-origin AJAX possible.")
     (arguments
      '(#:tests? #f))        ; Tests seem to be incompatible with latest python
     (propagated-inputs
-     `(("python-markdown" ,python-markdown)
-       ("python-flask" ,python-flask)))
+     (list python-markdown python-flask))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/dcolish/flask-markdown")
     (synopsis "Small extension to help with using Markdown in Flask")
     (description
@@ -1078,11 +1079,9 @@ into Jinja2 by default.")
             "12gm6hq3lvlj0ddw8p6lk5pky8jk3pw758ihffjl49shnnzc68zl"))))
     (build-system python-build-system)
     (native-inputs
-      `(("python-coverage" ,python-coverage)
-        ("python-mock" ,python-mock)))
+      (list python-coverage python-mock))
     (propagated-inputs
-      `(("python-flask" ,python-flask)
-        ("python-misaka" ,python-misaka)))
+      (list python-flask python-misaka))
     (home-page "https://github.com/singingwolfboy/flask-misaka/")
     (synopsis "Flask interface to Misaka, a Markdown parsing library")
     (description
@@ -1105,7 +1104,7 @@ the Misaka Markdown parser.")
     (arguments
      '(#:tests? #f)) ; Tests require the various storage backends to be present
     (propagated-inputs
-     `(("python-flask" ,python-flask)))
+     (list python-flask))
     (home-page "https://github.com/fengsp/flask-session")
     (synopsis "Adds server-side session support to your Flask application")
     (description
@@ -1127,10 +1126,9 @@ storage.")
             "0vqlhk0hgbsfkh7ybmby93xhlx8dq6pr5blf356ka3z2c41b9rdj"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-webencodings" ,python-webencodings)
-       ;; Required by Calibre 5.
-       ("python-chardet" ,python-chardet)))
+     (list python-six python-webencodings
+           ;; Required by Calibre 5.
+           python-chardet))
     (arguments
      `(#:test-target "check"))
     (home-page
@@ -1173,13 +1171,11 @@ and written in Python.")
                 "13yl3vnf3sxl05m0nhpngnrz3g1jvyahd33lys3m3hfb91l8zzi5"))))
     (build-system python-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libxml2" ,libxml2)))
+     (list libxml2))
     (propagated-inputs
-     `(("python-lxml" ,python-lxml)
-       ("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-chardet" ,python-chardet)))
+     (list python-lxml python-beautifulsoup4 python-chardet))
     (home-page "https://html5-parser.readthedocs.io")
     (synopsis "Fast C-based HTML5 parsing for Python")
     (description "This package provides a fast implementation of the HTML5
@@ -1212,15 +1208,10 @@ C, yielding parse times that can be a thirtieth of the html5lib parse times.")
                       (delete-file "tests/unit/credentials_test.py")
                       #t)))))
     (native-inputs
-     `(("python-faker" ,python-faker)
-       ("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)))
-    (propagated-inputs
-     `(("python-certifi" ,python-certifi)
-       ("python-configparser" ,python-configparser)
-       ("python-dateutil" ,python-dateutil)
-       ("python-pytz" ,python-pytz)
-       ("python-urllib3" ,python-urllib3)))
+     (list python-faker python-mock python-nose))
+    (propagated-inputs
+     (list python-certifi python-configparser python-dateutil python-pytz
+           python-urllib3))
     (home-page "https://github.com/minio/minio-py")
     (synopsis "Programmatically access Amazon S3 from Python")
     (description
@@ -1252,11 +1243,9 @@ Amazon S3 compatible object storage server.")
                         (setenv "PYCURL_SSL_LIBRARY" "gnutls")
                         #t)))))
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-bottle" ,python-bottle)))
+     (list python-nose python-bottle))
     (inputs
-     `(("curl" ,curl)
-       ("gnutls" ,gnutls)))
+     (list curl gnutls))
     (home-page "http://pycurl.io/")
     (synopsis "Lightweight Python wrapper around libcurl")
     (description "Pycurl is a lightweight wrapper around libcurl.  It provides
@@ -1288,7 +1277,7 @@ high-speed transfers via libcurl and frequently outperforms alternatives.")
              (invoke "py.test" "-v" "webencodings/tests.py")
              #t)))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/SimonSapin/python-webencodings")
     (synopsis "Character encoding aliases for legacy web content")
     (description
@@ -1331,11 +1320,9 @@ is Python’s.")
                     "unittest" "openid.test.test_suite"))))))
     (properties `((python2-variant . ,(delay python2-openid))))
     (propagated-inputs
-     `(("python-defusedxml" ,python-defusedxml)))
+     (list python-defusedxml))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-psycopg2" ,python-psycopg2)
-       ("python-django" ,python-django)))
+     (list python-coverage python-psycopg2 python-django))
     (home-page "https://github.com/necaris/python3-openid")
     (synopsis "OpenID support for servers and consumers")
     (description "This library provides OpenID authentication for Python, both
@@ -1378,7 +1365,7 @@ for clients and servers.")
           "1bxchrbqzapwijap0yhlxdil1w9bmwvgx77aizlkhc2mcxjg1z52"))))
     (build-system python-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))               ; for unpacking the source
+     (list unzip))               ; for unpacking the source
     (arguments
      `(#:tests? #f))                    ; tests require python-pbr < 1.7.0
     (home-page "http://cthedot.de/cssutils/")
@@ -1439,8 +1426,7 @@ cssutils not receiving updates as of 1.0.2.")
                     (lambda _
                       (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-lxml" ,python-lxml)
-       ("python-pytest" ,python-pytest)))
+     (list python-lxml python-pytest))
     (home-page "https://github.com/scrapy/cssselect")
     (synopsis "CSS3 selector parser and translator to XPath 1.0")
     (description
@@ -1474,17 +1460,11 @@ another XPath engine to find the matching elements in an XML or HTML document.")
                               ;; (upstream uses Pytest 3..).
                               "-k" "not test_get_request_with_list"))))))
     (native-inputs
-     `(;; For tests.
-       ("python-decorator" ,python-decorator)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-requests-mock" ,python-requests-mock)))
-    (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-configparser" ,python-configparser)
-       ("python-requests" ,python-requests)
-       ("python-six" ,python-six)
-       ("python-tabulate" ,python-tabulate)))
+     (list ;; For tests.
+           python-decorator python-mock python-pytest python-requests-mock))
+    (propagated-inputs
+     (list python-click python-configparser python-requests python-six
+           python-tabulate))
     (synopsis "Command line interface for Databricks")
     (description
      "The Databricks Command Line Interface is a tool which provides an easy
@@ -1558,10 +1538,8 @@ teams extension for python-openid.")
                      ;; This test exceeded the Hypothesis deadline.
                      "not test_period_of_repetition"))))))
     (native-inputs
-     `(("python-hypothesis" ,python-hypothesis)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-xdist" ,python-pytest-xdist)))
+     (list python-hypothesis python-pytest python-pytest-cov
+           python-pytest-xdist))
     (home-page "https://python-hyper.org/projects/priority/en/latest/")
     (synopsis "Pure-Python implementation of the HTTP/2 priority tree")
     (description
@@ -1588,9 +1566,9 @@ set out in RFC 7540 Section 5.3 (Stream Priority).")
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "-vv" "test"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-h11" ,python-h11)))
+     (list python-h11))
     (home-page "https://github.com/python-hyper/wsproto/")
     (synopsis "WebSockets state-machine based protocol implementation")
     (description
@@ -1600,39 +1578,41 @@ choose to use, ensuring that you can communicate via WebSockets, as defined in
 RFC6455, regardless of your programming paradigm.")
     (license license:expat)))
 
-(define-public python-hypercorn
+(define-public hypercorn
   (package
-    (name "python-hypercorn")
-    (version "0.10.2")
+    (name "hypercorn")
+    (version "0.11.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Hypercorn" version))
        (sha256
-        (base32 "15dgy47a18w2ls3hwykra1cyf7yzxmfjqnsqml482p12cxr2xwqr"))))
+        (base32 "16kai5d12f05jr89mj611zslxqri4cd7ixcgd6yhl211qlcyg8av"))))
     (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" "-vv"))))))
-    (propagated-inputs
-     `(("python-h11" ,python-h11)
-       ("python-h2" ,python-h2)
-       ("python-priority" ,python-priority)
-       ("python-toml" ,python-toml)
-       ("python-typing-extensions" ,python-typing-extensions)
-       ("python-wsproto" ,python-wsproto)))
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest")))))))
+    ;; Propagate because Hypercorn also exposes functionality over a module.
+    (propagated-inputs
+     (list python-h11
+           python-h2
+           python-priority
+           python-toml
+           python-typing-extensions
+           python-wsproto))
     (native-inputs
-     `(("python-hypothesis" ,python-hypothesis)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-asyncio" ,python-pytest-asyncio)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-trio" ,python-pytest-trio)
-       ("python-trio" ,python-trio)))
+     (list python-hypothesis
+           python-mock
+           python-pytest
+           python-pytest-asyncio
+           python-pytest-cov
+           python-pytest-trio
+           python-trio))
     (home-page "https://gitlab.com/pgjones/hypercorn/")
     (synopsis "ASGI Server based on Hyper libraries")
     (description
@@ -1642,6 +1622,9 @@ WebSockets (over HTTP/1 and HTTP/2), ASGI/2, and ASGI/3 specifications.  It can
 utilise asyncio, uvloop, or trio worker types.")
     (license license:expat)))
 
+(define-public python-hypercorn
+  (deprecated-package "python-hypercorn" hypercorn))
+
 (define-public python-querystring-parser
   (package
     (name "python-querystring-parser")
@@ -1664,7 +1647,7 @@ utilise asyncio, uvloop, or trio worker types.")
                          "True"))
                       (invoke "python" "querystring_parser/tests.py"))))))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/bernii/querystring-parser")
     (synopsis "QueryString parser that correctly handles nested dictionaries")
     (description
@@ -1698,7 +1681,7 @@ data.")
        ;;       #t)))
        #:tests? #f))
     (native-inputs
-     `(("python-certifi" ,python-certifi)))
+     (list python-certifi))
     (home-page "https://www.tornadoweb.org/")
     (synopsis "Python web framework and asynchronous networking library")
     (description
@@ -1730,7 +1713,7 @@ connection to each user.")
              (invoke "python" "-m" "tornado.test.runtests")
              #t)))))
     (native-inputs
-     `(("python-certifi" ,python-certifi)))
+     (list python-certifi))
     (home-page "https://www.tornadoweb.org/")
     (synopsis "Python web framework and asynchronous networking library")
     (description
@@ -1763,7 +1746,7 @@ connection to each user.")
         (base32 "0hyc5f0a09i5yb99pk4bxpg6w9ichbrb5cv7hc9hff7rxd8w0v0x"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-tornado" ,python-tornado)))
+     (list python-tornado))
     (home-page "https://github.com/gvalkov/tornado-http-auth")
     (synopsis "Digest and basic authentication module for Tornado")
     (description
@@ -1784,10 +1767,9 @@ web framework, either via the basic or digest authentication schemes.")
          "1smvra3sc9sg64w49kfn5yhagshq3x55839748ck5dvxvk4hgza6"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-tornado" ,python-tornado-6)
-       ("python-ptyprocess" ,python-ptyprocess)))
+     (list python-tornado-6 python-ptyprocess))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1811,12 +1793,9 @@ term.js Javascript terminal emulator library.")
                "0kjj2v2dvmnpdd5h5gk9rzz0f54rhjb0yiz3zg65bmp65slfw65d"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-httplib2" ,python-httplib2)
-       ("python-requests" ,python-requests)
-       ("python-urllib3" ,python-urllib3)))
+     (list python-pytest python-httplib2 python-requests python-urllib3))
     (synopsis "Puts a WSGI application in place of a real URI for testing")
     (description "Wsgi_intercept installs a WSGI application in place of a real
 URI for testing.  Testing a WSGI application normally involves starting a
@@ -1841,7 +1820,7 @@ your Web app.")
           "026i3z99nr3px75isa9mbnky5i7rffiv4d124h5kxfjjsxz92fma"))))
     (build-system python-build-system)
     (native-inputs
-      `(("python-nose" ,python-nose)))
+      (list python-nose))
     (home-page "https://webob.org/")
     (synopsis "WSGI request and response object")
     (description
@@ -1889,10 +1868,8 @@ dispatching systems can be built.")
     (build-system python-build-system)
     (arguments '(#:tests? #f))  ; test suite can't find python-zope-testing
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-nose" ,python-nose)
-       ("python-zope-event" ,python-zope-event)
-       ("python-zope-testing" ,python-zope-testing)))
+     (list python-coverage python-nose python-zope-event
+           python-zope-testing))
     (home-page "https://github.com/zopefoundation/zope.interface")
     (synopsis "Python implementation of the \"design by contract\"
 methodology")
@@ -1920,26 +1897,41 @@ conforming to a given API or contract.")
      '(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _
-             (invoke "zope-testrunner" "--test-path=src"))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (if tests?
+                 (invoke "zope-testrunner" "--test-path=src")
+                 (format #t "test suite not run~%")))))))
     (native-inputs
      `(("python-zope-testrunner" ,python-zope-testrunner-bootstrap)))
     (propagated-inputs
-     `(("python-zope-interface" ,python-zope-interface)))
+     (list python-zope-interface))
     (home-page "https://pypi.org/project/zope.exceptions/")
     (synopsis "Zope exceptions")
     (description "Zope.exceptions provides general-purpose exception types
 that have uses outside of the Zope framework.")
     (license license:zpl2.1)))
 
-(define-public python-zope-exceptions-bootstrap
+(define (python-zope-bootstrap-package orig)
   (package
-    (inherit python-zope-exceptions)
-    (arguments `(#:tests? #f))
+    (inherit orig)
+    (name (string-append (package-name orig) "-bootstrap"))
+    (arguments
+     (if (null? (package-arguments orig))
+         `(#:tests? #f
+           #:phases (modify-phases %standard-phases
+                      (delete 'sanity-check)))
+         (substitute-keyword-arguments (package-arguments orig)
+           ((#:tests? _ #f) #f)
+           ((#:phases phases '%standard-phases)
+            `(modify-phases ,phases
+               (delete 'sanity-check))))))
     (propagated-inputs `())
     (native-inputs `())
     (properties `((hidden? . #t)))))
 
+(define-public python-zope-exceptions-bootstrap
+  (python-zope-bootstrap-package python-zope-exceptions))
+
 (define-public python2-zope-exceptions
   (package-with-python2 python-zope-exceptions))
 
@@ -1977,13 +1969,19 @@ forms, HTTP servers, regular expressions, and more.")
          "0jyyf1dcz156q95x2y7yw2v420q2xn3cff0c5aci7hmdmcbn0gc7"))))
     (build-system python-build-system)
     (arguments
-     '(#:tests? #f)) ; FIXME: Tests can't find zope.interface.
+     '(#:tests? #f                    ;FIXME: Tests can't find zope.interface.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-problematic-test
+           (lambda _
+             ;; This test contains invalid syntax, which breaks bytecode
+             ;; compilation.  For simplicity just remove it.
+             (delete-file
+              "src/zope/testrunner/tests/testrunner-ex/sample2/badsyntax.py"))))))
     (native-inputs
-     `(("python-zope-testing" ,python-zope-testing)))
+     (list python-zope-testing))
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-zope-exceptions" ,python-zope-exceptions)
-       ("python-zope-interface" ,python-zope-interface)))
+     (list python-six python-zope-exceptions python-zope-interface))
     (home-page "https://pypi.org/project/zope.testrunner/")
     (synopsis "Zope testrunner script")
     (description "Zope.testrunner provides a script for running Python
@@ -1992,8 +1990,7 @@ tests.")
 
 (define-public python-zope-testrunner-bootstrap
   (package
-    (inherit python-zope-testrunner)
-    (arguments `(#:tests? #f))
+    (inherit (python-zope-bootstrap-package python-zope-testrunner))
     (propagated-inputs
      `(("python-six" ,python-six)
        ("python-zope-exceptions" ,python-zope-exceptions-bootstrap)))
@@ -2015,10 +2012,9 @@ tests.")
          "0ndhn4w1qgwkfbwf9vm2bgq418z5g0wmfsgl0d9nz62cd0mi8d4m"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-zope-testrunner" ,python-zope-testrunner)))
+     (list python-coverage python-zope-testrunner))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://pypi.org/project/zope.i18nmessageid/")
     (synopsis "Message identifiers for internationalization")
     (description "Zope.i18nmessageid provides facilities for declaring
@@ -2050,12 +2046,10 @@ internationalized messages within program source text.")
                (invoke "zope-testrunner" "--test-path=src")
                #t))))))
     (propagated-inputs
-     `(("python-zope-event" ,python-zope-event)
-       ("python-zope-interface" ,python-zope-interface)))
+     (list python-zope-event python-zope-interface))
     (native-inputs
-     `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
-       ("python-zope-testing" ,python-zope-testing)
-       ("python-zope-testrunner" ,python-zope-testrunner)))
+     (list python-zope-i18nmessageid python-zope-testing
+           python-zope-testrunner))
     (home-page "https://pypi.org/project/zope.schema/")
     (synopsis "Zope data schemas")
     (description "Zope.scheme provides extensions to zope.interface for
@@ -2077,13 +2071,10 @@ defining data schemas.")
                 "0g6vrl7y27z9cj5xyrww9xlzk4npj55mgmlrcd9d2nj08jn2pw79"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-manuel" ,python-manuel)
-       ("python-zope-testing" ,python-zope-testing)
-       ("python-zope-testrunner" ,python-zope-testrunner)))
+     (list python-manuel python-zope-testing python-zope-testrunner))
     (propagated-inputs
-     `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
-       ("python-zope-interface" ,python-zope-interface)
-       ("python-zope-schema" ,python-zope-schema)))
+     (list python-zope-i18nmessageid python-zope-interface
+           python-zope-schema))
     (home-page "https://pypi.org/project/zope.configuration/")
     (synopsis "Zope Configuration Markup Language")
     (description "Zope.configuration implements ZCML, the Zope Configuration
@@ -2091,11 +2082,7 @@ Markup Language.")
     (license license:zpl2.1)))
 
 (define-public python-zope-configuration-bootstrap
-  (package
-    (inherit python-zope-configuration)
-    (arguments `(#:tests? #f))
-    (native-inputs `())
-    (properties `((hidden? . #t)))))
+  (python-zope-bootstrap-package python-zope-configuration))
 
 (define-public python2-zope-configuration
   (package-with-python2 python-zope-configuration))
@@ -2119,7 +2106,7 @@ Markup Language.")
            (lambda _
              (invoke "zope-testrunner" "--test-path=src" "\\[]"))))))
     (propagated-inputs
-     `(("python-zope-interface" ,python-zope-interface)))
+     (list python-zope-interface))
     (native-inputs
      `(("python-zope-component" ,python-zope-component-bootstrap)
        ("python-zope-location" ,python-zope-location-bootstrap)
@@ -2144,10 +2131,9 @@ Markup Language.")
          "14h7nyfbl5vpfk0rbviy4ygdfx0yx5kncvg6jpbdb0dhwna0ssm6"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-zope-security" ,python-zope-security-bootstrap)
-       ("python-zope-testrunner" ,python-zope-testrunner)))
+     (list python-zope-security-bootstrap python-zope-testrunner))
     (propagated-inputs
-     `(("python-zope-interface" ,python-zope-interface)))
+     (list python-zope-interface))
     (home-page "https://pypi.org/project/zope.proxy/")
     (synopsis "Generic, transparent proxies")
     (description "Zope.proxy provides generic, transparent proxies for Python.
@@ -2158,11 +2144,7 @@ brokering, etc.) for which the proxy is responsible.")
     (license license:zpl2.1)))
 
 (define-public python-zope-proxy-bootstrap
-  (package
-    (inherit python-zope-proxy)
-    (arguments `(#:tests? #f))
-    (native-inputs `())
-    (properties `((hidden? . #t)))))
+  (python-zope-bootstrap-package python-zope-proxy))
 
 (define-public python2-zope-proxy
   (package-with-python2 python-zope-proxy))
@@ -2180,8 +2162,7 @@ brokering, etc.) for which the proxy is responsible.")
           "0hc82lfr7bk53nvbxvjkibkarngyrzgfk2i6bg8wshl0ly0pdl19"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-zope-testing" ,python-zope-testing)))
+     (list python-coverage python-zope-testing))
     (home-page "https://github.com/zopefoundation/zope.hookable")
     (synopsis "Zope hookable")
     (description "This package supports the efficient creation of hookable
@@ -2207,11 +2188,9 @@ that imported it, will see the change.")
     (arguments
      '(#:tests? #f)) ; FIXME: Tests can't find zope.interface.
     (native-inputs
-     `(("python-zope-testrunner" ,python-zope-testrunner)))
+     (list python-zope-testrunner))
     (propagated-inputs
-     `(("python-zope-interface" ,python-zope-interface)
-       ("python-zope-proxy" ,python-zope-proxy)
-       ("python-zope-schema" ,python-zope-schema)))
+     (list python-zope-interface python-zope-proxy python-zope-schema))
     (home-page "https://pypi.org/project/zope.location/")
     (synopsis "Zope location library")
     (description "Zope.location implements the concept of \"locations\" in
@@ -2219,11 +2198,7 @@ Zope3, which are are special objects that have a structural location.")
     (license license:zpl2.1)))
 
 (define-public python-zope-location-bootstrap
-  (package
-    (inherit python-zope-location)
-    (arguments `(#:tests? #f))
-    (native-inputs `())
-    (properties `((hidden? . #t)))))
+  (python-zope-bootstrap-package python-zope-location))
 
 (define-public python2-zope-location
   (package-with-python2 python-zope-location))
@@ -2241,19 +2216,19 @@ Zope3, which are are special objects that have a structural location.")
          "11lfw67cigscfax9c5j63xcvz2qcj724zx5fcdqyc94am2glim0h"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-zope-component" ,python-zope-component)
-       ("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
-       ("python-zope-interface" ,python-zope-interface)
-       ("python-zope-location" ,python-zope-location)
-       ("python-zope-proxy" ,python-zope-proxy)
-       ("python-zope-schema" ,python-zope-schema)))
+     (list python-zope-component
+           python-zope-i18nmessageid
+           python-zope-interface
+           python-zope-location
+           python-zope-proxy
+           python-zope-schema))
     (native-inputs
-     `(("python-btrees" ,python-btrees)
-       ("python-zope-component" ,python-zope-component-bootstrap)
-       ("python-zope-configuration" ,python-zope-configuration-bootstrap)
-       ("python-zope-location" ,python-zope-location-bootstrap)
-       ("python-zope-testing" ,python-zope-testing)
-       ("python-zope-testrunner" ,python-zope-testrunner)))
+     (list python-btrees
+           python-zope-component-bootstrap
+           python-zope-configuration-bootstrap
+           python-zope-location-bootstrap
+           python-zope-testing
+           python-zope-testrunner))
     (home-page "https://pypi.org/project/zope.security/")
     (synopsis "Zope security framework")
     (description "Zope.security provides a generic mechanism to implement
@@ -2262,15 +2237,12 @@ security policies on Python objects.")
 
 (define-public python-zope-security-bootstrap
   (package
-    (inherit python-zope-security)
-    (arguments `(#:tests? #f))
+    (inherit (python-zope-bootstrap-package python-zope-security))
     (propagated-inputs
      `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
        ("python-zope-interface" ,python-zope-interface)
        ("python-zope-proxy" ,python-zope-proxy-bootstrap)
-       ("python-zope-schema" ,python-zope-schema)))
-    (native-inputs `())
-    (properties `((hidden? . #t)))))
+       ("python-zope-schema" ,python-zope-schema)))))
 
 (define-public python2-zope-security
   (package-with-python2 python-zope-security))
@@ -2291,9 +2263,10 @@ security policies on Python objects.")
      '(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (add-installed-pythonpath inputs outputs)
-             (invoke "python" "setup.py" "test"))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (if tests?
+                 (invoke "python" "setup.py" "test")
+                 (format #t "test suite not run~%")))))))
     (native-inputs
      `(("python-persistent" ,python-persistent)
        ("python-zope-configuration" ,python-zope-configuration-bootstrap)
@@ -2304,11 +2277,8 @@ security policies on Python objects.")
        ("python-zope-testing" ,python-zope-testing)
        ("python-zope-testrunner" ,python-zope-testrunner)))
     (propagated-inputs
-     `(("python-zope-deferredimport" ,python-zope-deferredimport)
-       ("python-zope-deprecation" ,python-zope-deprecation)
-       ("python-zope-event" ,python-zope-event)
-       ("python-zope-hookable" ,python-zope-hookable)
-       ("python-zope-interface" ,python-zope-interface)))
+     (list python-zope-deferredimport python-zope-deprecation
+           python-zope-event python-zope-hookable python-zope-interface))
     (home-page "https://github.com/zopefoundation/zope.component")
     (synopsis "Zope Component Architecture")
     (description "Zope.component represents the core of the Zope Component
@@ -2317,11 +2287,7 @@ facilities for defining, registering and looking up components.")
     (license license:zpl2.1)))
 
 (define-public python-zope-component-bootstrap
-  (package
-    (inherit python-zope-component)
-    (arguments `(#:tests? #f))
-    (native-inputs `())
-    (properties `((hidden? . #t)))))
+  (python-zope-bootstrap-package python-zope-component))
 
 (define-public python2-zope-component
   (package-with-python2 python-zope-component))
@@ -2339,9 +2305,9 @@ facilities for defining, registering and looking up components.")
           "1q89v54dwniiqypjbwywwdfjdr4kdkqlyqsgrpplgvsygdg39cjp"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-zope-proxy" ,python-zope-proxy)))
+     (list python-zope-proxy))
     (native-inputs
-     `(("python-zope-testrunner" ,python-zope-testrunner)))
+     (list python-zope-testrunner))
     (home-page "https://github.com/zopefoundation/zope.deferredimport")
     (synopsis "Defer imports until used by code")
     (description
@@ -2367,7 +2333,7 @@ deprecation warnings to be issued when a variable is used.")
      '(;; The tests appear to require networking.
        #:tests? #f))
     (propagated-inputs
-     `(("python-pyopenssl" ,python-pyopenssl)))
+     (list python-pyasn1 python-pyopenssl))
     (synopsis "HTTPS support for Python's httplib and urllib2")
     (description "This is a HTTPS client implementation for httplib and urllib2
 based on PyOpenSSL.  PyOpenSSL provides a more fully-featured SSL implementation
@@ -2400,7 +2366,7 @@ verification of the SSL peer.")
          "0j88zmikaypf38lvpkf4aaxrjp9j07dmy5ghj7kli0fv3p4n45g5"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/liris/websocket-client")
     (synopsis "WebSocket client for Python")
     (description "The Websocket-client module provides the low level APIs for
@@ -2429,7 +2395,7 @@ WebSocket usage in Python programs.")
           (base32
             "15ibnz1xrh5msmn04j0nr00sz4n7jwx6cwd6zlx99kkz3vpin53m"))))
     (build-system python-build-system)
-    (propagated-inputs `(("python-six" ,python-six)))
+    (propagated-inputs (list python-six))
     (home-page
       "https://github.com/codeinthehole/purl")
     (synopsis
@@ -2459,10 +2425,9 @@ WebSocket usage in Python programs.")
                      ;; This test tries to connect to the internet.
                      "not test_call"))))))
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-pytest python-pytest-cov))
     (home-page "https://github.com/ithaka/apiron")
     (synopsis "Python wrapper for interacting with RESTful APIs")
     (description
@@ -2486,7 +2451,7 @@ APIs.")
      ;; The test tries to open a connection to a remote server.
      `(#:tests? #f))
     (propagated-inputs
-     `(("python-apiron" ,python-apiron)))
+     (list python-apiron))
     (home-page "https://github.com/teffalump/beren")
     (synopsis "REST client for Orthanc DICOM servers")
     (description
@@ -2496,19 +2461,17 @@ APIs.")
 (define-public python-requests
   (package
     (name "python-requests")
-    (version "2.25.0")
+    (version "2.26.0")
     (source (origin
              (method url-fetch)
              (uri (pypi-uri "requests" version))
              (sha256
               (base32
-               "1y6mb8c0ipd64d5axq2p368yxndp3f966hmabjka2q2a5y9hn6kz"))))
+               "19q73fq7hip7b74fwls3p9x6zwvfwqcwpn6kha3zsgvrrzw5iamq"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-certifi" ,python-certifi)
-       ("python-chardet" ,python-chardet)
-       ("python-idna" ,python-idna)
-       ("python-urllib3" ,python-urllib3)))
+     (list python-certifi python-chardet python-charset-normalizer
+           python-idna python-urllib3))
     (arguments
      ;; FIXME: Some tests require network access.
      '(#:tests? #f))
@@ -2517,26 +2480,17 @@ 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)))
-
-;; Some software requires an older version of Requests, notably Docker/Docker
-;; Compose.
-(define-public python-requests-2.20
-  (package (inherit python-requests)
-           (version "2.20.1")
-           (source (origin
-                     (method url-fetch)
-                     (uri (pypi-uri "requests" version))
-                     (sha256
-                      (base32
-                       "0qzj6cgv3k9wyj7wlxgz7xq0cfg4jbbkfm24pp8dnhczwl31527a"))))
-           (propagated-inputs
-            `(("python-urllib3" ,python-urllib3-1.24)
-              ("python-idna" ,python-idna-2.7)
-              ,@(package-propagated-inputs python-requests)))))
+    (license license:asl2.0)
+    (properties `((python2-variant . ,(delay python2-requests))))))
 
 (define-public python2-requests
-  (package-with-python2 python-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)
+                           (delete "python-charset-normalizer"))))))
 
 (define-public python-requests-unixsocket
   (package
@@ -2558,26 +2512,28 @@ than Python’s urllib2 library.")
              (substitute* "test-requirements.txt"
                (("(.*)==(.*)" _ name) (string-append name "\n")))))
          (replace 'check
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (add-installed-pythonpath inputs outputs)
-             (invoke "pytest" "-vv"))))))
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             ;; Avoid a deprecation error.
+             (substitute* "pytest.ini"
+               (("--pep8") ""))
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "-vv")))))))
     (propagated-inputs
-     `(("python-pbr" ,python-pbr)
-       ("python-requests" ,python-requests)
-       ("python-urllib3" ,python-urllib3)))
+     (list python-pbr python-requests python-urllib3))
     (native-inputs
-     `(("python-apipkg" ,python-apipkg)
-       ("python-appdirs" ,python-appdirs)
-       ("python-execnet" ,python-execnet)
-       ("python-packaging" ,python-packaging)
-       ("python-pep8" ,python-pep8)
-       ("python-py" ,python-py)
-       ("python-pyparsing" ,python-pyparsing)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cache" ,python-pytest-cache)
-       ("python-pytest-pep8" ,python-pytest-pep8)
-       ("python-six" ,python-six)
-       ("python-waitress" ,python-waitress)))
+     (list python-apipkg
+           python-appdirs
+           python-execnet
+           python-packaging
+           python-pep8
+           python-py
+           python-pyparsing
+           python-pytest
+           python-pytest-cache
+           python-pytest-pep8
+           python-six
+           python-waitress))
     (home-page "https://github.com/msabramo/requests-unixsocket")
     (synopsis "Talk HTTP via a UNIX domain socket")
     (description
@@ -2598,9 +2554,7 @@ HTTP via a UNIX domain socket.")
          "0wgbqzaq9w7bas16b7brdb75f91bh3275fb459093bk1ihpck2ci"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-ntlm-auth" ,python-ntlm-auth)
-       ("python-requests" ,python-requests)))
+     (list python-cryptography python-ntlm-auth python-requests))
     (home-page "https://github.com/requests/requests-ntlm")
     (synopsis
      "NTLM authentication support for Requests")
@@ -2622,18 +2576,17 @@ library.")
          "09nj8fmyj7xz2mgwyvbw0fl9zybmx2d3qd2hf529vvjc9s24d3z6"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("python-six" ,python-six)))
+     (list python-requests python-six))
     (native-inputs
-     `(("python-pbr" ,python-pbr)
-       ("python-discover" ,python-discover)
-       ("python-docutils" ,python-docutils)
-       ("python-fixtures" ,python-fixtures)
-       ("python-mock" ,python-mock)
-       ("python-purl" ,python-purl)
-       ("python-pytest" ,python-pytest)
-       ("python-sphinx" ,python-sphinx)
-       ("python-testrepository" ,python-testrepository)))
+     (list python-pbr
+           python-discover
+           python-docutils
+           python-fixtures
+           python-mock
+           python-purl
+           python-pytest
+           python-sphinx
+           python-testrepository))
     (home-page "https://requests-mock.readthedocs.org/")
     (synopsis "Mock out responses from the requests package")
     (description
@@ -2653,11 +2606,9 @@ portions of your testing code.")
                "1dc7l42i4080r8i4m9fj51jx367lqkai170vrv7wd93gdj9k39gn"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-betamax" ,python-betamax)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-betamax python-mock python-pytest))
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     (synopsis "Extensions to python-requests")
     (description "This is a toolbelt of useful classes and functions to be used
 with python-requests.")
@@ -2694,7 +2645,7 @@ with python-requests.")
          "0yh5v21v36dsjsgv4y9dx4mmz35741l5jf6pbq9w19d8rfsww13m"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     (home-page
      "https://github.com/Lukasa/requests-ftp")
     (synopsis "FTP Transport Adapter for Requests")
@@ -2720,13 +2671,9 @@ adapter for use with the Requests library.")
                     (lambda _
                       (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-mock" ,python-mock)))
+     (list python-pytest python-pytest-cov python-mock))
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-pyjwt" ,python-pyjwt)
-       ("python-blinker" ,python-blinker)))
+     (list python-cryptography python-pyjwt python-blinker))
     (home-page "https://github.com/oauthlib/oauthlib")
     (synopsis "OAuth implementation for Python")
     (description
@@ -2752,7 +2699,7 @@ OAuth request-signing logic.")
     (arguments
      `(#:test-target "check"))
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     (home-page "https://github.com/litl/rauth")
     (synopsis "Python library for OAuth 1.0/a, 2.0, and Ofly")
     (description
@@ -2771,23 +2718,23 @@ authenticated session objects providing things like keep-alive.")
 (define-public python-urllib3
   (package
     (name "python-urllib3")
-    (version "1.26.4")
+    (version "1.26.7")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "urllib3" version))
         (sha256
          (base32
-          "0dw9w9bs3hmr5dp3r3h43jyzzb1g1046ag7lj8pqf58i4kvj3c77"))))
+          "1kkf6gi8a1fs0dqkf6kpmdpsy97iirvliz8q1krxp8ppaiawd1s9"))))
     (build-system python-build-system)
     (arguments `(#:tests? #f))
     (propagated-inputs
-     `(;; These 5 inputs are used to build urrlib3[secure]
-       ("python-certifi" ,python-certifi)
-       ("python-cryptography" ,python-cryptography)
-       ("python-idna" ,python-idna)
-       ("python-pyopenssl" ,python-pyopenssl)
-       ("python-pysocks" ,python-pysocks)))
+     (list ;; These 5 inputs are used to build urrlib3[secure]
+           python-certifi
+           python-cryptography
+           python-idna
+           python-pyopenssl
+           python-pysocks))
     (home-page "https://urllib3.readthedocs.io/")
     (synopsis "HTTP library with thread-safe connection pooling")
     (description
@@ -2797,18 +2744,6 @@ supports url redirection and retries, and also gzip and deflate decoding.")
     (properties `((python2-variant . ,(delay python2-urllib3))))
     (license license:expat)))
 
-;; Some software requires an older version of urllib3, notably Docker.
-(define-public python-urllib3-1.24
-  (package (inherit python-urllib3)
-           (version "1.24.3")
-           (source (origin
-                     (method url-fetch)
-                     (uri (pypi-uri "urllib3" version))
-                     (sha256
-                      (base32
-                       "1x0slqrv6kixkbcdnxbglvjliwhc1payavxjvk8fvbqjrnasd4r3"))))))
-
-
 (define-public python2-urllib3
   (let ((base (package-with-python2 (strip-python2-variant python-urllib3))))
     (package/inherit
@@ -2821,14 +2756,14 @@ supports url redirection and retries, and also gzip and deflate decoding.")
   (package
     ;; Note: updating awscli typically requires updating botocore as well.
     (name "awscli")
-    (version "1.18.203")
+    (version "1.21.11")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri name version))
        (sha256
         (base32
-         "128zg24961j8nmnq2dxqg6a7zwh3qgv87cmvclsdqwwih9nigxv9"))))
+         "0fkivwbx4nind5b7l4jhqm5bb9drgqsclcslrg4aggf9rcs4g4s0"))))
     (build-system python-build-system)
     (arguments
      ;; FIXME: The 'pypi' release does not contain tests.
@@ -2841,17 +2776,16 @@ supports url redirection and retries, and also gzip and deflate decoding.")
                (("if not self._exists_on_path\\('groff'\\):") "")
                (("raise ExecutableNotFoundError\\('groff'\\)") "")
                (("cmdline = \\['groff'")
-                (string-append "cmdline = ['" (which "groff") "'")))
-             #t)))))
-    (propagated-inputs
-     `(("python-colorama" ,python-colorama)
-       ("python-botocore" ,python-botocore)
-       ("python-s3transfer" ,python-s3transfer)
-       ("python-docutils" ,python-docutils)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-rsa" ,python-rsa)))
+                (string-append "cmdline = ['" (which "groff") "'"))))))))
+    (propagated-inputs
+     (list python-colorama-for-awscli
+           python-botocore
+           python-s3transfer
+           python-docutils-0.15
+           python-pyyaml
+           python-rsa))
     (native-inputs
-     `(("groff" ,groff)))
+     (list groff))
     (home-page "https://aws.amazon.com/cli/")
     (synopsis "Command line client for AWS")
     (description "AWS CLI provides a unified command line interface to the
@@ -2870,12 +2804,9 @@ Amazon Web Services (AWS) API.")
         (base32 "16jch5nic0hia28lps3c678s9s9mjdq8n87igxncjg0rpi5adqnf"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-webtest" ,python-webtest)))
+     (list python-webtest))
     (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("python-six" ,python-six)
-       ("python-urllib3" ,python-urllib3)
-       ("python-webob" ,python-webob)))
+     (list python-requests python-six python-urllib3 python-webob))
     (home-page "https://github.com/gawel/WSGIProxy2/")
     (synopsis "WSGI Proxy with various http client backends")
     (description "WSGI turns HTTP requests into WSGI function calls.
@@ -2898,8 +2829,7 @@ and to spawn subprocesses to handle requests.")
     (arguments
      '(#:test-target "pytest"))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest python-pytest-runner))
     (home-page "https://pylonsproject.org/")
     (synopsis
      "Load, configure, and compose WSGI applications and servers")
@@ -2928,10 +2858,7 @@ file.")
      ;; Tests require python-pyquery, which creates a circular dependency.
      `(#:tests? #f))
     (propagated-inputs
-     `(("python-waitress" ,python-waitress)
-       ("python-webob" ,python-webob)
-       ("python-six" ,python-six)
-       ("python-beautifulsoup4" ,python-beautifulsoup4)))
+     (list python-waitress python-webob python-six python-beautifulsoup4))
     (home-page "https://docs.pylonsproject.org/projects/webtest/")
     (synopsis "Helper to test WSGI applications")
     (description "Webtest allows you to test your Python web applications
@@ -2961,12 +2888,9 @@ minimum of WSGI.")
              (when tests?
                (invoke "pytest" "-vv" "tests")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-itsdangerous" ,python-itsdangerous)
-       ("python-jinja2" ,python-jinja2)
-       ("python-click" ,python-click)
-       ("python-werkzeug" ,python-werkzeug)))
+     (list python-itsdangerous python-jinja2 python-click python-werkzeug))
     (home-page "https://www.palletsprojects.com/p/flask/")
     (synopsis "Microframework based on Werkzeug, Jinja2 and good intentions")
     (description "Flask is a micro web framework based on the Werkzeug toolkit
@@ -2993,11 +2917,9 @@ presume or force a developer to use a particular tool or library.")
            (lambda _
              (invoke "pytest" "-vv"))))))
     (propagated-inputs
-     `(("python-flask-babel" ,python-flask-babel)
-       ("python-babel" ,python-babel)
-       ("python-wtforms" ,python-wtforms)))
+     (list python-flask-babel python-babel python-wtforms))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/lepture/flask-wtf")
     (synopsis "Simple integration of Flask and WTForms")
     (description "Flask-WTF integrates Flask and WTForms, including CSRF, file
@@ -3017,7 +2939,7 @@ upload, and reCAPTCHA.")
          "0p4v50rwv64wcd0zlq7rzl4waprwr4hj19s3cgf1isywa7jcisgm"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-flask" ,python-flask)))
+     (list python-flask))
     (home-page "https://pagure.io/flask-multistatic")
     (synopsis "Flask plugin to allow overriding static files")
     (description "@code{flask-multistatic} is a flask plugin that adds support
@@ -3039,7 +2961,7 @@ for overriding static files.")
      `(;; test are broken: https://gitlab.com/sashahart/cookies/issues/3
        #:tests? #f))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (synopsis "HTTP cookie parser and renderer")
     (description "A RFC 6265-compliant HTTP cookie parser and renderer in
 Python.")
@@ -3065,11 +2987,9 @@ Python.")
        ;; https://github.com/getsentry/responses/issues/38
        #:tests? #f))
     (native-inputs
-     `(("python-mock" ,python-mock)))
+     (list python-mock))
     (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("python-cookies" ,python-cookies)
-       ("python-six" ,python-six)))
+     (list python-requests python-cookies python-six))
     (home-page "https://github.com/getsentry/responses")
     (synopsis "Utility for mocking out the `requests` Python library")
     (description "A utility library for mocking out the `requests` Python
@@ -3092,12 +3012,9 @@ library.")
          "1j9icncllbkv7x5719b20mx670c6q1jrdx1sakskkarvx3pc8h8g"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-gevent" ,python-gevent)
-       ("python-requests" ,python-requests)))
+     (list python-gevent python-requests))
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-zope.interface" ,python-zope-interface)
-       ("python-zope.event" ,python-zope-event)))
+     (list python-nose python-zope-interface python-zope-event))
     (home-page "https://github.com/kennethreitz/grequests")
     (synopsis "Python library for asynchronous HTTP requests")
     (description "GRequests is a Python library that allows you to use
@@ -3162,12 +3079,9 @@ for the basic TCP/IP protocols.")
                      ;; https://github.com/gwik/geventhttpclient/issues/119
                      "-k" "not test_cookielib_compatibility"))))))
     (native-inputs
-     `(("python-dpkt" ,python-dpkt)
-       ("python-pytest" ,python-pytest)))
+     (list python-dpkt python-pytest))
     (propagated-inputs
-     `(("python-certifi" ,python-certifi)
-       ("python-gevent" ,python-gevent)
-       ("python-six" ,python-six)))
+     (list python-certifi python-gevent python-six))
     (home-page "https://github.com/gwik/geventhttpclient")
     (synopsis "HTTP client library for gevent")
     (description "@code{python-geventhttpclient} is a high performance,
@@ -3195,12 +3109,9 @@ concurrent HTTP client library for python using @code{gevent}.")
              (delete-file "tests/test_core.py")
              #t)))))
     (native-inputs
-     `(("python-pyjwt" ,python-pyjwt)
-       ("python-requests-mock" ,python-requests-mock)
-       ("python-mock" ,python-mock)))
+     (list python-pyjwt python-requests-mock python-mock))
     (propagated-inputs
-     `(("python-oauthlib" ,python-oauthlib)
-       ("python-requests" ,python-requests)))
+     (list python-oauthlib python-requests))
     (home-page
      "https://github.com/requests/requests-oauthlib")
     (synopsis
@@ -3222,10 +3133,9 @@ provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients."
                 "0v879yadcz9qxfl41ak6wkga1kimp9cflla9ddz03hjjvgkqy5ki"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-publicsuffix" ,python-publicsuffix)))
+     (list python-publicsuffix))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-nose" ,python-nose)))
+     (list python-coverage python-nose))
     (arguments
      `(#:tests? #f)) ; FIXME: tests fail with "ImportError: No module named 'tests'"
     (home-page "https://github.com/seomoz/url-py")
@@ -3261,9 +3171,7 @@ provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients."
      ;; It's too much work to package CherryPy for now.
      `(#:tests? #f))
     (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("python-msgpack" ,python-msgpack)
-       ("python-lockfile" ,python-lockfile)))
+     (list python-requests python-msgpack python-lockfile))
     (home-page "https://github.com/ionrock/cachecontrol")
     (synopsis "The httplib2 caching algorithms for use with requests")
     (description "CacheControl is a port of the caching algorithms in
@@ -3299,7 +3207,7 @@ provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients."
      '(;; Many tests fail because they require networking.
        #:tests? #f))
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     (home-page "https://github.com/sigmavirus24/betamax")
     (synopsis "Record HTTP interactions with python-requests")
     (description "Betamax will record your test suite's HTTP interactions and
@@ -3322,8 +3230,7 @@ replay them during future tests.  It is designed to work with python-requests.")
          "07qpwjyq2i2aqhz5iwghnj4pqr2ys5n45v1vmpcfx9r5mhwrsq43"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-betamax" ,python-betamax)
-       ("python-requests-toolbelt" ,python-requests-toolbelt)))
+     (list python-betamax python-requests-toolbelt))
     (home-page "https://github.com/sigmavirus24/betamax_matchers")
     (synopsis "VCR imitation for python-requests")
     (description "@code{betamax-matchers} provides a set of Matchers for
@@ -3345,8 +3252,7 @@ Betamax.")
         (base32 "0ja9isbjmzzhxdj69s0kdsvw8nkp073w6an6a4liy5vk3fdl2p1l"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-betamax" ,python-betamax)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python-betamax python-pyyaml))
     (synopsis "Set of third-party serializers for Betamax")
     (description "Betamax-Serializers are an experimental set of Serializers for
 Betamax that may possibly end up in the main package.")
@@ -3356,39 +3262,27 @@ Betamax that may possibly end up in the main package.")
 (define-public python-s3transfer
   (package
     (name "python-s3transfer")
-    (version "0.3.3")
+    (version "0.5.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "s3transfer" version))
               (sha256
                (base32
-                "1nzp5kwmy9669334shcz9ipg89jgpdqhrmbkgdg18r7wmvi3f6lj"))))
+                "0k6sc956yrrv9b4laa0r79jhxajpyxr21jcd1ka8m1n53lz85vah"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch
-           (lambda _
-             ;; There's a small issue with one test with Python 3.8, this
-             ;; change has been suggested upstream:
-             ;; https://github.com/boto/s3transfer/pull/164
-             (substitute* "tests/unit/test_s3transfer.py"
-               (("super\\(FailedDownloadParts, self\\)\\.submit\\(function\\)")
-                "futures.Future()"))
-             #t))
          (replace 'check
-           (lambda _
-             ;; Some of the 'integration' tests require network access or
-             ;; login credentials.
-             (invoke "nosetests" "--exclude=integration")
-             #t)))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; Some of the 'integration' tests require network access or
+               ;; login credentials.
+               (invoke "nosetests" "--exclude=integration")))))))
     (native-inputs
-     `(("python-docutils" ,python-docutils)
-       ("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)))
+     (list python-docutils python-mock python-nose))
     (propagated-inputs
-     `(("python-botocore" ,python-botocore)
-       ("python-urllib3" ,python-urllib3)))
+     (list python-botocore python-urllib3))
     (synopsis "Amazon S3 Transfer Manager")
     (description "S3transfer is a Python library for managing Amazon S3
 transfers.")
@@ -3416,9 +3310,9 @@ transfers.")
          "02vj2x728rs1127q2nc27frrqra4fczivnb7gch6n5lzi7pxqczl"))))
     (build-system python-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (propagated-inputs
-     `(("python-ply" ,python-ply)))
+     (list python-ply))
     (home-page "https://slimit.readthedocs.io/")
     (synopsis "JavaScript minifier, parser and lexer written in Python")
     (description
@@ -3441,16 +3335,19 @@ pretty printer and a tree visitor.")
          (base32
           "05b9lzx5yc3wgml2bcq50lq35h66m8zpj6dc9advcb5z3acsbaay"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-imports
+           (lambda _
+             (substitute* "flask_restful/__init__.py"
+               (("flask\\.helpers") "flask.scaffold")))))))
     (propagated-inputs
-      `(("python-aniso8601" ,python-aniso8601)
-        ("python-flask" ,python-flask)
-        ("python-pycrypto" ,python-pycrypto)
-        ("python-pytz" ,python-pytz)))
+      (list python-aniso8601 python-flask python-pycrypto python-pytz))
     (native-inputs
-      `(;; Optional dependency of Flask. Tests need it.
-        ("python-blinker" ,python-blinker)
-        ("python-mock" ,python-mock) ; For tests
-        ("python-nose" ,python-nose)))  ;for tests
+      (list ;; Optional dependency of Flask. Tests need it.
+            python-blinker python-mock ; For tests
+            python-nose))  ;for tests
     (home-page
       "https://www.github.com/flask-restful/flask-restful/")
     (synopsis
@@ -3483,7 +3380,7 @@ pretty printer and a tree visitor.")
                          "flask_basicauth"))
                       #t)))))
     (propagated-inputs
-     `(("python-flask" ,python-flask)))
+     (list python-flask))
     (home-page "https://github.com/jpvanhal/flask-basicauth")
     (synopsis "HTTP basic access authentication for Flask")
     (description
@@ -3503,10 +3400,7 @@ pretty printer and a tree visitor.")
             "14q1y1y9i9bhabdnwd25jqzc4ljli23smxfyyh8abxz1vq93pxra"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-flask" ,python-flask)
-       ("python-itsdangerous" ,python-itsdangerous)
-       ("python-passlib" ,python-passlib)
-       ("python-tox" ,python-tox)))
+     (list python-flask python-itsdangerous python-passlib python-tox))
     (home-page "https://github.com/carsongee/flask-htpasswd")
     (synopsis "Basic authentication via htpasswd files in Flask applications")
     (description "This package provides Basic authentication via
@@ -3526,8 +3420,7 @@ applications.")
                 "04jrx4sjrz1b20j38qk4qin975xwz30krzq59rfv3b3w7ss49nib"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-flask" ,python-flask)
-       ("python-sqlalchemy" ,python-sqlalchemy)))
+     (list python-flask python-sqlalchemy))
     (home-page "https://github.com/mitsuhiko/flask-sqlalchemy")
     (synopsis "Module adding SQLAlchemy support to your Flask application")
     (description
@@ -3555,16 +3448,10 @@ applications.")
        ;;       (invoke "nosetests")
        ;;       #t)))))
     (propagated-inputs
-      `(("python-aniso8601" ,python-aniso8601)
-        ("python-flask" ,python-flask)
-        ("python-jsonschema" ,python-jsonschema)
-        ("python-pytz" ,python-pytz)
-        ("python-six" ,python-six)))
+      (list python-aniso8601 python-flask python-jsonschema python-pytz
+            python-six))
     (native-inputs
-     `(("python-tzlocal" ,python-tzlocal)
-       ("python-blinker" ,python-blinker)
-       ("python-nose" ,python-nose)
-       ("python-rednose" ,python-rednose)))
+     (list python-tzlocal python-blinker python-nose python-rednose))
     (home-page "https://github.com/noirbizarre/flask-restplus")
     (synopsis "Framework for documented API development with Flask")
     (description "This package provides a framework for API development with
@@ -3587,7 +3474,7 @@ documentation builder.")
     (build-system python-build-system)
     (arguments '(#:tests? #f))          ;no tests
     (propagated-inputs
-     `(("python-flask-restful" ,python-flask-restful)))
+     (list python-flask-restful))
     (home-page "https://github.com/rantav/flask-restful-swagger")
     (synopsis "Extract Swagger specs from Flask-Restful projects")
     (description "This package lets you extract Swagger API documentation
@@ -3629,8 +3516,7 @@ It comes with safe defaults and easily configurable options.")
        (base32
         "1n6zlq72kakkw0z2jpq6nh74lfsmxybm4g053pwhc14fbr809348"))))
     (propagated-inputs
-     `(("python-flask" ,python-flask)
-       ("python-htmlmin" ,python-htmlmin)))
+     (list python-flask python-htmlmin))
     (build-system python-build-system)
     (home-page "https://github.com/hamidfzm/Flask-HTMLmin")
     (synopsis "HTML response minifier for Flask")
@@ -3672,17 +3558,17 @@ on the command line.")
         (base32 "11ac924w0y4m0kf3mxnxdlidy88jfa7njw5yyrq16dvnx4iwd8gg"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-flask" ,python-flask)))
+     (list python-flask))
     (native-inputs
      ;; For tests.
-     `(("python-blinker" ,python-blinker)
-       ("python-coverage" ,python-coverage)
-       ("python-mock" ,python-mock)
-       ("python-pycodestyle" ,python-pycodestyle)
-       ("python-pyflakes" ,python-pyflakes)
-       ("python-pytest" ,python-pytest)
-       ("python-semantic-version" ,python-semantic-version)
-       ("python-werkzeug" ,python-werkzeug)))
+     (list python-blinker
+           python-coverage
+           python-mock
+           python-pycodestyle
+           python-pyflakes
+           python-pytest
+           python-semantic-version
+           python-werkzeug))
     (home-page "https://github.com/maxcountryman/flask-login")
     (synopsis "User session management for Flask")
     (description
@@ -3706,11 +3592,8 @@ users' sessions over extended periods of time.")
     (arguments
      `(#:tests? #f))
     (propagated-inputs
-     `(("python-httplib2" ,python-httplib2)
-       ("python-pyasn1" ,python-pyasn1)
-       ("python-pyasn1-modules" ,python-pyasn1-modules)
-       ("python-rsa" ,python-rsa)
-       ("python-six" ,python-six)))
+     (list python-httplib2 python-pyasn1 python-pyasn1-modules python-rsa
+           python-six))
     (home-page "https://github.com/google/oauth2client/")
     (synopsis "OAuth 2.0 client library")
     (description "@code{python-oauth2client} provides an OAuth 2.0 client
@@ -3733,13 +3616,10 @@ library for Python")
          "1ay5j0mf174bix7i67hclr95gv16z81fpx0dijvi0gydvdj3ddy2"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-flask" ,python-flask)
-       ("python-itsdangerous" ,python-itsdangerous)
-       ("python-oauth2client" ,python-oauth2client)
-       ("python-six" ,python-six)))
+     (list python-flask python-itsdangerous python-oauth2client
+           python-six))
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-mock" ,python-mock)))
+     (list python-nose python-mock))
     (home-page "https://github.com/puiterwijk/flask-oidc")
     (synopsis "OpenID Connect extension for Flask")
     (description "@code{python-flask-oidc} provides an OpenID Connect extension
@@ -3760,8 +3640,12 @@ for Flask.")
     (build-system python-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
-                  (add-before 'check 'disable-some-tests
+                  (add-before 'check 'adjust-tests
                     (lambda _
+                      ;; Fix for Python 3.9 compatibility.
+                      (substitute* "tests/test_script.py"
+                        (("self\\.t\\.isAlive")
+                         "self.t.is_alive"))
                       ;; This test requires 'postcss' and 'babel' which are
                       ;; not yet available in Guix.
                       (delete-file "tests/test_filters.py")))
@@ -3769,10 +3653,7 @@ for Flask.")
                     (lambda _
                       (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-jinja2" ,python-jinja2)
-       ("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)
-       ("python-pytest" ,python-pytest)))
+     (list python-jinja2 python-mock python-nose python-pytest))
     (home-page "https://github.com/miracle2k/webassets")
     (synopsis "Media asset management")
     (description "Merges, minifies and compresses Javascript and CSS files,
@@ -3813,8 +3694,7 @@ CSS tidy.  Also supports URL rewriting in CSS files.")
           "1q38w9nh2j2yi82d8rhzb57597l4lq5zx7xzfg45xf7ffrgsipaj"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-certifi" ,python-certifi)
-       ("python-urllib3" ,python-urllib3)))
+     (list python-certifi python-urllib3))
     (arguments
      ;; tests require the test_elasticsearch module but it is not distributed.
      `(#:tests? #f))
@@ -3841,9 +3721,7 @@ this it tries to be opinion-free and very extendable.")
          "0xqkjjxbxakz9fd7v94rkr2r5r9nrkap2c3gf3abbd0j6ld5qmxv"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-aiohttp" ,python-aiohttp)
-       ("python-requests" ,python-requests)
-       ("python-websocket-client" ,python-websocket-client)))
+     (list python-aiohttp python-requests python-websocket-client))
     (arguments '(#:tests? #f))        ; Tests not included in release tarball.
     (home-page "https://github.com/miguelgrinberg/python-engineio/")
     (synopsis "Engine.IO server")
@@ -3872,11 +3750,9 @@ server.")
             (("flask\\.ext\\.script") "flask_script"))
            #t)))))
   (propagated-inputs
-   `(("python-flask" ,python-flask)
-     ("python-argcomplete" ,python-argcomplete)
-     ("python-werkzeug" ,python-werkzeug)))
+   (list python-flask python-argcomplete python-werkzeug))
   (native-inputs
-   `(("python-pytest" ,python-pytest)))
+   (list python-pytest))
   (home-page
     "https://github.com/smurfix/flask-script")
   (synopsis "Scripting support for Flask")
@@ -3900,11 +3776,8 @@ itself.")
           "1vip9ww6l18dxffjsggm83k71zkvihxpnhaswpv8klh95s6517d6"))))
   (build-system python-build-system)
   (propagated-inputs
-   `(("python-flask" ,python-flask)
-     ("python-alembic" ,python-alembic)
-     ("python-sqlalchemy" ,python-sqlalchemy)
-     ("python-flask-script" ,python-flask-script)
-     ("python-flask-sqlalchemy" ,python-flask-sqlalchemy)))
+   (list python-flask python-alembic python-sqlalchemy
+         python-flask-script python-flask-sqlalchemy))
   (home-page "https://github.com/miguelgrinberg/flask-migrate/")
   (synopsis "SQLAlchemy database migrations for Flask programs using
 Alembic")
@@ -3926,7 +3799,7 @@ for Flask programs that are using @code{python-alembic}.")
        (sha256
         (base32 "04i0caywiwrgw09grz988n15qr9lr31d9n6a529p8v80cy1fv23c"))))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (build-system python-build-system)
     (home-page "https://genshi.edgewall.org/")
     (synopsis "Toolkit for generation of output for the web")
@@ -3951,10 +3824,9 @@ textual content for output generation on the web.")
            "0lwlr5smz8vfm5h9a9i7da3q1c24xqc6vm9jdywdpgxfbi5i7mpm"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-blinker" ,python-blinker)))
+     (list python-blinker))
     (native-inputs
-     `(("python-flask" ,python-flask)
-       ("python-nose" ,python-nose)))
+     (list python-flask python-nose))
     (home-page "https://pythonhosted.org/Flask-Principal/")
     (synopsis "Identity management for Flask")
     (description "@code{flask_principal} is a identity management library for
@@ -3975,7 +3847,7 @@ thread-local variable.")
          "13gff5w1mqpzm5nccyg02v3ifb9ifqh5k866cssjhghhg6msfjsz"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-flask" ,python-flask)))
+     (list python-flask))
     (home-page "https://github.com/miguelgrinberg/flask-httpauth/")
     (synopsis "Basic and Digest HTTP authentication for Flask routes")
     (description "@code{flask_httpauth} provides Basic and Digest HTTP
@@ -3985,23 +3857,23 @@ authentication for Flask routes.")
 (define-public python-uritemplate
   (package
     (name "python-uritemplate")
-    (version "3.0.1")
+    (version "4.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "uritemplate" version))
        (sha256
         (base32
-         "1bkwmgr0ia9gcn4bszs2xlvml79f0bi2s4a87xg22ky9rq8avy2s"))))
+         "1w14a775d92mx9pdhb5zimifpfr2lfcn0vfdpjagcy9vbkyfsij3"))))
     (build-system python-build-system)
     (home-page "https://uritemplate.readthedocs.org")
     (synopsis "Library to deal with URI Templates")
     (description "@code{uritemplate} provides Python library to deal with URI
 Templates.")
-    (license license:bsd-2)))
-
-(define-public python2-uritemplate
-  (package-with-python2 python-uritemplate))
+    ;; The software is made available under the terms of *either* of the
+    ;; licenses found in LICENSE.APACHE or LICENSE.BSD.  Contributions
+    ;; are made under *both* licenses (excerpt from the LICENSE file).
+    (license (list license:bsd-2 license:asl2.0))))
 
 (define-public python-publicsuffix
   (package
@@ -4080,11 +3952,9 @@ List.  Forked from and using the same API as the publicsuffix package.")
                        ;; Test tries to use the network.
                        "-k not test_reloader_sys_path")))))))
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-timeout" ,python-pytest-timeout)
-       ("python-pytest-xprocess" ,python-pytest-xprocess)))
+     (list python-pytest python-pytest-timeout python-pytest-xprocess))
     (home-page "https://palletsprojects.com/p/werkzeug/")
     (synopsis "Utilities for WSGI applications")
     (description "One of the most advanced WSGI utility modules.  It includes a
@@ -4094,6 +3964,30 @@ uploads, a powerful URL routing system and a bunch of community-contributed
 addon modules.")
     (license license:x11)))
 
+(define-public python-werkzeug-1.0
+  (package
+    (inherit python-werkzeug)
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "Werkzeug" version))
+              (sha256
+               (base32
+                "0z74sa1xw5h20yin9faj0vvdbq713cgbj84klc72jr9nmpjv303c"))
+              (patches (search-patches "python-werkzeug-tests.patch"))))
+    (arguments
+     '(#: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" "-m" "pytest"))))))
+    (propagated-inputs
+     (list python-requests))
+    (native-inputs
+     (list python-pytest python-pytest-timeout))))
+
 (define-public python-bottle
   (package
     (name "python-bottle")
@@ -4141,12 +4035,9 @@ addon modules.")
                (invoke "python" "setup.py" "compile_catalog")
                (invoke "python" "tests/runtests.py")))))))
     (native-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-sqlalchemy" ,python-sqlalchemy)))
+     (list python-dateutil python-sqlalchemy))
     (propagated-inputs
-     `(("python-babel" ,python-babel)
-       ("python-email-validator" ,python-email-validator)
-       ("python-markupsafe" ,python-markupsafe)))
+     (list python-babel python-email-validator python-markupsafe))
     (home-page "http://wtforms.simplecodes.com/")
     (synopsis
      "Form validation and rendering library for Python web development")
@@ -4175,11 +4066,9 @@ available in Django, but is a standalone package.")
            (delete-file "tests/test_proxy.py") #t))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-nose" ,python-nose)))
+     (list python-pytest python-pytest-runner python-nose))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://pythonpaste.readthedocs.io/")
     (synopsis
      "Python web development tools, focusing on WSGI")
@@ -4205,10 +4094,9 @@ follows ideas flowing from WSGI (Web Standard Gateway Interface).")
          "1h3nnhn45kf4pbcv669ik4faw04j58k8vbj1hwrc532k0nc28gy0"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (propagated-inputs
-     `(("python-paste" ,python-paste)
-       ("python-pastedeploy" ,python-pastedeploy)))
+     (list python-paste python-pastedeploy))
     (home-page (string-append "https://web.archive.org/web/20161025192515/"
                               "http://pythonpaste.org/script/"))
     (arguments
@@ -4301,12 +4189,9 @@ name resolutions asynchronously.")
                       (add-installed-pythonpath inputs outputs)
                       (invoke "python" "-m" "pytest")))))))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-cython python-pytest python-pytest-runner))
     (propagated-inputs
-     `(("python-idna" ,python-idna)
-       ("python-multidict" ,python-multidict)))
+     (list python-idna python-multidict))
     (home-page "https://github.com/aio-libs/yarl/")
     (synopsis "Yet another URL library")
     (description "@code{yarl} module provides handy @code{URL} class
@@ -4355,18 +4240,13 @@ Google search engine.  Its module is called @code{googlesearch}.")
                 "googleapiclient.discovery_cache"))
              #t)))))
     (native-inputs
-     `(("python-httplib2" ,python-httplib2)
-       ("python-six" ,python-six)
-       ("python-oauth2client" ,python-oauth2client)
-       ("python-uritemplate" ,python-uritemplate)))
+     (list python-httplib2 python-six python-oauth2client
+           python-uritemplate))
     (home-page "https://github.com/google/google-api-python-client")
     (synopsis "Core Python library for accessing Google APIs")
     (description "Python client library for Google's discovery based APIs")
     (license license:asl2.0)))
 
-(define-public python2-google-api-client
-  (package-with-python2 python-google-api-client))
-
 (define-public python-hawkauthlib
   (package
     (name "python-hawkauthlib")
@@ -4380,8 +4260,7 @@ Google search engine.  Its module is called @code{googlesearch}.")
          "03ai47s4h8nfnrf25shbfvkm1b9n1ccd4nmmj280sg1fayi69zgg"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("python-webob" ,python-webob)))
+     (list python-requests python-webob))
     (home-page "https://github.com/mozilla-services/hawkauthlib")
     (synopsis "Hawk Access Authentication protocol")
     (description
@@ -4402,9 +4281,9 @@ a simple HTTP request-signing scheme.")
          "1qvi79kfb8x9kxkm5lw2mp42hm82cpps1xknmsb5ghkwx1lpc8kc"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     (native-inputs
-     `(("python-mock" ,python-mock)))
+     (list python-mock))
     (home-page "https://github.com/mozilla/PyBrowserID")
     (synopsis "Python library for the BrowserID protocol")
     (description
@@ -4426,16 +4305,10 @@ underlies Mozilla Persona.")
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; 17 tests require network access
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-hawkauthlib" ,python-hawkauthlib)
-       ("python-pybrowserid" ,python-pybrowserid)
-       ("python-requests" ,python-requests)
-       ("python-six" ,python-six)))
+     (list python-cryptography python-hawkauthlib python-pybrowserid
+           python-requests python-six))
     (native-inputs
-     `(("python-grequests" ,python-grequests)
-       ("python-mock" ,python-mock)
-       ("python-responses" ,python-responses)
-       ("python-unittest2" ,python-unittest2)))
+     (list python-grequests python-mock python-responses python-unittest2))
     (home-page "https://github.com/mozilla/PyFxA")
     (synopsis "Firefox Accounts client library for Python")
     (description
@@ -4456,7 +4329,7 @@ ecosystem.")
           "0m2nhi0j8wmgfscf974wd5v1xfq8mah286hil6npy1ys0m3y7222"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-idna" ,python-idna)))
+     (list python-idna))
     (home-page "https://github.com/python-hyper/hyperlink")
     (synopsis "Python module to create immutable URLs according to spec")
     (description "This package provides a Python module to create immutable, and
@@ -4476,12 +4349,12 @@ correct URLs for Python according to RFCs 3986 and 3987.")
           "0j4zwq9p1c9piv1vc66nxcv9s6hdinf90jwkbsm91k14npv9zq4i"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-attrs" ,python-attrs)
-       ("python-idna" ,python-idna)
-       ("python-incremental" ,python-incremental)
-       ("python-requests" ,python-requests)
-       ("python-service-identity" ,python-service-identity)
-       ("python-twisted" ,python-twisted)))
+     (list python-attrs
+           python-idna
+           python-incremental
+           python-requests
+           python-service-identity
+           python-twisted))
     (home-page "https://github.com/twisted/treq")
     (synopsis "Requests-like API built on top of twisted.web's Agent")
     (description "This package provides an HTTP library inspired by
@@ -4506,9 +4379,7 @@ high level API for making HTTP requests when using Twisted.")
       ;; https://github.com/crossbario/autobahn-python/issues/1117
      `(#:tests? #f))
     (propagated-inputs
-     `(("python-cffi" ,python-cffi)
-       ("python-twisted" ,python-twisted)
-       ("python-txaio" ,python-txaio)))
+     (list python-cffi python-twisted python-txaio))
     (home-page "https://crossbar.io/autobahn/")
     (synopsis "Web Application Messaging Protocol implementation")
     (description "This package provides an implementation of the @dfn{Web Application
@@ -4546,8 +4417,7 @@ such as IoT applications or multi-user database-driven business applications.")
              (delete-file "ws4py/server/cherrypyserver.py")
              #t)))))
     (propagated-inputs
-     `(("python-gevent" ,python-gevent)
-       ("python-tornado" ,python-tornado)))
+     (list python-gevent python-tornado))
     (home-page "https://github.com/Lawouach/WebSocket-for-Python")
     (synopsis "WebSocket client and server library")
     (description
@@ -4558,22 +4428,22 @@ Python.")
 (define-public python-slugify
   (package
     (name "python-slugify")
-    (version "4.0.1")
+    (version "5.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-slugify" version))
        (sha256
-        (base32 "0w22fapghmzk3xdasc4dn7h8sl58l08d1h5zbf72dh80drv1g9b9"))))
+        (base32 "1aww2ncglyii4jkbfjxqhinivawf9zmwifcj32d69gpwp6h86czi"))))
     (propagated-inputs
-     `(("python-unidecode" ,python-unidecode)
-       ("python-text-unidecode" ,python-text-unidecode)))
+     (list python-unidecode python-text-unidecode))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _
-             (invoke "python" "test.py"))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "python" "test.py")))))))
     (build-system python-build-system)
     (home-page "https://github.com/un33k/python-slugify")
     (synopsis "Python Slugify application that handles Unicode")
@@ -4594,10 +4464,9 @@ library to create slugs from unicode strings while keeping it DRY.")
          "0pmigd521j2228xf8x34vbx0niwvms7xl7za0lymywj0vydjqxiy"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-jinja2" ,python-jinja2)
-       ("python-six" ,python-six)))
+     (list python-jinja2 python-six))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/python-visualization/branca")
     (synopsis "Generate complex HTML+JS pages with Python")
     (description "Generate complex HTML+JS pages with Python")
@@ -4628,10 +4497,8 @@ library to create slugs from unicode strings while keeping it DRY.")
              (invoke "python" "-m" "pytest" "-k"
                      "not test_speedups"))))))
     (native-inputs
-     `(("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-flake8" ,python-pytest-flake8)
-       ("python-pytest-isort" ,python-pytest-isort)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest-cov python-pytest-flake8 python-pytest-isort
+           python-pytest-runner))
     (home-page "https://tinycss.readthedocs.io/")
     (synopsis "Complete yet simple CSS parser for Python")
     (description
@@ -4686,13 +4553,10 @@ modules:
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "-vv"))))))
     (propagated-inputs
-     `(("python-webencodings" ,python-webencodings)))
+     (list python-webencodings))
     (native-inputs
-     `(("python-flit" ,python-flit)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-flake8" ,python-pytest-flake8)
-       ("python-pytest-isort" ,python-pytest-isort)))
+     (list python-flit python-pytest python-pytest-cov
+           python-pytest-flake8 python-pytest-isort))
     (home-page "https://tinycss2.readthedocs.io/")
     (synopsis "Low-level CSS parser for Python")
     (description "@code{tinycss2} can parse strings, return Python objects
@@ -4721,12 +4585,10 @@ in various CSS modules.")
          (replace 'check
            (lambda _ (invoke "pytest"))))))
     (propagated-inputs
-     `(("python-tinycss2" ,python-tinycss2)))
+     (list python-tinycss2))
     (native-inputs
-     `(("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-flake8" ,python-pytest-flake8)
-       ("python-pytest-isort" ,python-pytest-isort)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest-cov python-pytest-flake8 python-pytest-isort
+           python-pytest-runner))
     (home-page "https://cssselect2.readthedocs.io/")
     (synopsis "CSS selectors for Python ElementTree")
     (description "@code{cssselect2} is a straightforward implementation of
@@ -4760,14 +4622,14 @@ hard or impossible to fix in cssselect.")
                                       "self.use_system_libuv = True"))
              #t)))))
     (native-inputs
-     `(("python-aiohttp" ,python-aiohttp)
-       ("python-cython" ,python-cython)
-       ("python-flake8" ,python-flake8)
-       ("python-psutil" ,python-psutil)
-       ("python-pyopenssl" ,python-pyopenssl)
-       ("python-twine" ,python-twine)))
+     (list python-aiohttp
+           python-cython
+           python-flake8
+           python-psutil
+           python-pyopenssl
+           python-twine))
     (inputs
-     `(("libuv" ,libuv)))
+     (list libuv))
     (home-page "https://github.com/MagicStack/uvloop")
     (synopsis "Fast implementation of asyncio event loop on top of libuv")
     (description
@@ -4838,13 +4700,13 @@ event loop.  It is implemented in Cython and uses libuv under the hood.")
                            (string-append output sitedir))
                          (list python out))))))))))
     (native-inputs
-     `(("binutils" ,binutils)  ;; for ctypes.util.find_library()
-       ("python-aiohttp" ,python-aiohttp)
-       ("python-gevent" ,python-gevent)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-sphinx" ,python-sphinx)
-       ("texinfo" ,texinfo)))
+     (list binutils ;; for ctypes.util.find_library()
+           python-aiohttp
+           python-gevent
+           python-pytest
+           python-pytest-cov
+           python-sphinx
+           texinfo))
     (home-page "https://gunicorn.org/")
     (synopsis "Python WSGI HTTP Server for UNIX")
     (description "Gunicorn ‘Green Unicorn’ is a Python WSGI HTTP
@@ -4903,10 +4765,9 @@ and fairly speedy.")
              (substitute* "setup.py" (("Cython==") "Cython>="))
              #t)))))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)))
+     (list python-cython python-pytest))
     (inputs
-     `(("http-parser" ,http-parser)))
+     (list http-parser))
     (home-page "https://github.com/MagicStack/httptools")
     (synopsis "Collection of framework independent HTTP protocol utils")
     (description
@@ -4916,7 +4777,7 @@ and fairly speedy.")
 (define-public python-uvicorn
   (package
     (name "python-uvicorn")
-    (version "0.11.8")
+    (version "0.13.2")
     (source
      (origin
        ;; PyPI tarball has no tests.
@@ -4926,7 +4787,7 @@ and fairly speedy.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "00iidg5ysp7k00bw3kmkvr8mghnh4jdi0p2ryiarhryf8wz2r3fy"))))
+        (base32 "04zgmp9z46k72ay6cz7plga6d3w3a6x41anabm7ramp7jdqf6na9"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -4936,24 +4797,16 @@ and fairly speedy.")
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-black" ,python-black)
-       ("python-codecov" ,python-codecov)
-       ("python-flake8" ,python-flake8)
-       ("python-isort" ,python-isort)
-       ("python-mypy" ,python-mypy)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-requests" ,python-requests)))
-    (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-h11" ,python-h11)
-       ("python-httptools" ,python-httptools)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-uvloop" ,python-uvloop)
-       ("python-watchgod" ,python-watchgod)
-       ("python-websockets" ,python-websockets)
-       ("python-wsproto" ,python-wsproto)))
+     (list python-pytest python-pytest-mock python-requests
+           python-trustme python-wsproto))
+    (propagated-inputs
+     (list python-click
+           python-h11
+           python-httptools
+           python-pyyaml
+           python-uvloop
+           python-watchgod
+           python-websockets))
     (home-page "https://github.com/encode/uvicorn")
     (synopsis "Fast ASGI server implementation")
     (description
@@ -4982,16 +4835,10 @@ for HTTP/2 is planned.")
              (delete-file "translation_finder/test_api.py")
              #t)))))
     (propagated-inputs
-     `(("python-chardet" ,python-chardet)
-       ("python-pathlib2" ,python-pathlib2)
-       ("python-ruamel.yaml" ,python-ruamel.yaml)
-       ("python-six" ,python-six)))
+     (list python-chardet python-pathlib2 python-ruamel.yaml python-six))
     (native-inputs
-     `(("python-codecov" ,python-codecov)
-       ("python-codacy-coverage" ,python-codacy-coverage)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-twine" ,python-twine)))
+     (list python-codecov python-codacy-coverage python-pytest-cov
+           python-pytest-runner python-twine))
     (home-page "https://weblate.org/")
     (synopsis "Translation file finder for Weblate")
     (description "This package provides a function to find translation file in
@@ -5012,11 +4859,9 @@ is part of the Weblate translation platform.")
           "0zl6kz8v8cg1bcy2r78b2snb0lpw0b573gdx2x1ps0nhsh75l4j5"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("python-six" ,python-six)))
+     (list python-requests python-six))
     (native-inputs
-     `(("python-httmock" ,python-httmock)
-       ("python-mock" ,python-mock)))
+     (list python-httmock python-mock))
     (home-page
       "https://github.com/python-gitlab/python-gitlab")
     (synopsis "Interact with GitLab API")
@@ -5048,7 +4893,7 @@ with GitLab instances through their API.")
              (add-installed-pythonpath inputs outputs)
              (invoke "py.test"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/joeyespo/path-and-address")
     (synopsis "Functions for command-line server tools used by humans")
     (description "Path-and-address resolves ambiguities of command-line
@@ -5074,15 +4919,14 @@ interfaces, inferring which argument is the path, and which is the address.")
            "0kx5hgb3q19i4l18a4vqdq9af390xgpk88lp2ay75qi96k0dc68w"))))
       (build-system python-build-system)
       (propagated-inputs
-       `(("python-docopt" ,python-docopt)
-         ("python-flask" ,python-flask)
-         ("python-markdown" ,python-markdown)
-         ("python-path-and-address" ,python-path-and-address)
-         ("python-pygments" ,python-pygments)
-         ("python-requests" ,python-requests)))
+       (list python-docopt
+             python-flask
+             python-markdown
+             python-path-and-address
+             python-pygments
+             python-requests))
       (native-inputs
-       `(("python-pytest" ,python-pytest)
-         ("python-responses" ,python-responses)))
+       (list python-pytest python-responses))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -5123,9 +4967,9 @@ without requiring a page refresh.")
                (("urllib2") "urllib3"))
              #t)))))
     (propagated-inputs
-     `(("python-urllib3" ,python-urllib3)))
+     (list python-urllib3))
     (native-inputs
-     `(("python-mock" ,python-mock)))
+     (list python-mock))
     (home-page "https://github.com/kmike/port-for/")
     (synopsis "TCP localhost port finder and association manager")
     (description
@@ -5147,8 +4991,7 @@ association.")
          "0rhggz185bxc3zjnfpmhcvibyzi86i624za1lfh7x7ajsxw4y9c9"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-tornado" ,python-tornado)))
+     (list python-six python-tornado))
     (home-page "https://github.com/lepture/python-livereload")
     (synopsis "Python LiveReload")
     (description
@@ -5202,24 +5045,21 @@ and serve updated contents upon changes to the directory.")
                        "--cov=tests" "tests"))
              #t)))))
     (native-inputs
-     `(("python-autoflake" ,python-autoflake)
-       ("python-flake8" ,python-flake8)
-       ("python-flake8-bugbear" ,python-flake8-bugbear)
-       ("python-flake8-pie" ,python-flake8-pie)
-       ("python-isort" ,python-isort)
-       ("python-mypy" ,python-mypy)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-asyncio" ,python-pytest-asyncio)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-trio" ,python-pytest-trio)
-       ("python-uvicorn" ,python-uvicorn)
-       ("python-trustme" ,python-trustme)))
-    (propagated-inputs
-     `(("python-h11" ,python-h11)
-       ("python-h2" ,python-h2)
-       ("python-sniffio" ,python-sniffio)
-       ("python-trio" ,python-trio)
-       ("python-trio-typing" ,python-trio-typing)))
+     (list python-autoflake
+           python-flake8
+           python-flake8-bugbear
+           python-flake8-pie
+           python-isort
+           python-mypy
+           python-pytest
+           python-pytest-asyncio
+           python-pytest-cov
+           python-pytest-trio
+           python-uvicorn
+           python-trustme))
+    (propagated-inputs
+     (list python-h11 python-h2 python-sniffio python-trio
+           python-trio-typing))
     (home-page "https://github.com/encode/httpcore")
     (synopsis "Minimal, low-level HTTP client")
     (description
@@ -5257,43 +5097,44 @@ Some things HTTP Core does do:
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _
-             (invoke "pytest" "-vv" "-k"
-                     ;; These tests try to open an outgoing connection.
-                     (string-append
-                      "not test_connect_timeout"
-                      " and not test_that_send_cause_async_client_to_be_not_"
-                      "closed"
-                      " and not test_that_async_client_caused_warning_when_"
-                      "being_deleted"
-                      " and not test_that_send_cause_client_to_be_not_closed"
-                      " and not test_async_proxy_close"
-                      " and not test_sync_proxy_close")))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest" "-vv" "-k"
+                       ;; These tests try to open an outgoing connection.
+                       (string-append
+                        "not test_connect_timeout"
+                        " and not test_that_send_cause_async_client_to_be_not_"
+                        "closed"
+                        " and not test_that_async_client_caused_warning_when_"
+                        "being_deleted"
+                        " and not test_that_send_cause_client_to_be_not_closed"
+                        " and not test_async_proxy_close"
+                        " and not test_sync_proxy_close"))))))))
     (native-inputs
-     `(("python-autoflake" ,python-autoflake)
-       ("python-black" ,python-black)
-       ("python-cryptography" ,python-cryptography)
-       ("python-flake8" ,python-flake8)
-       ("python-flake8-bugbear" ,python-flake8-bugbear)
-       ("python-flake8-pie" ,python-flake8-pie)
-       ("python-isort" ,python-isort)
-       ("python-mypy" ,python-mypy)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-asyncio" ,python-pytest-asyncio)
-       ("python-pytest-trio" ,python-pytest-trio)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-trio" ,python-trio)
-       ("python-trio-typing" ,python-trio-typing)
-       ("python-trustme" ,python-trustme)
-       ("python-uvicorn" ,python-uvicorn)))
-    (propagated-inputs
-     `(("python-brotli" ,python-brotli)
-       ("python-certifi" ,python-certifi)
-       ("python-chardet" ,python-chardet)
-       ("python-httpcore" ,python-httpcore)
-       ("python-idna" ,python-idna)
-       ("python-rfc3986" ,python-rfc3986)
-       ("python-sniffio" ,python-sniffio)))
+     (list python-autoflake
+           python-black
+           python-cryptography
+           python-flake8
+           python-flake8-bugbear
+           python-flake8-pie
+           python-isort
+           python-mypy
+           python-pytest
+           python-pytest-asyncio
+           python-pytest-trio
+           python-pytest-cov
+           python-trio
+           python-trio-typing
+           python-trustme
+           python-uvicorn))
+    (propagated-inputs
+     (list python-brotli
+           python-certifi
+           python-chardet
+           python-httpcore
+           python-idna
+           python-rfc3986
+           python-sniffio))
     (home-page "https://www.python-httpx.org/")
     (synopsis "HTTP client for Python")
     (description
@@ -5358,13 +5199,9 @@ Plus all the standard features of requests:
                (("--doctest-module")
                 "--doctest-modules")))))))
     (propagated-inputs
-     `(("python-certauth" ,python-certauth)
-       ("python-gevent" ,python-gevent)
-       ("python-websocket-client" ,python-websocket-client)))
+     (list python-certauth python-gevent python-websocket-client))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-waitress" ,python-waitress)))
+     (list python-mock python-pytest-cov python-waitress))
     (home-page "https://github.com/webrecorder/wsgiprox")
     (synopsis "HTTP/S proxy with WebSockets over WSGI")
     (description "@code{wsgiprox} is a Python WSGI (Web Server Gateway
@@ -5405,10 +5242,8 @@ them to a designated prefix.")
                                                 "not test_remote") "'"))))))))
       (native-inputs
        ;; These inputs are required for the test suite.
-       `(("python-httpbin" ,python-httpbin)
-         ("python-pytest-cov" ,python-pytest-cov)
-         ("python-requests" ,python-requests)
-         ("python-wsgiprox" ,python-wsgiprox)))
+       (list python-httpbin python-pytest-cov python-requests
+             python-wsgiprox))
       (home-page "https://github.com/webrecorder/warcio")
       (synopsis "Streaming web archival archive (WARC) library")
       (description "warcio is a Python library to read and write the WARC format
@@ -5462,7 +5297,7 @@ it provides an elegant coroutine-based API.")
          "039hf9knvl4s3hp21bzwsp1g5ri9gxsh504dp48lc6nr1av35byy"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-urllib3" ,python-urllib3)))
+     (list python-urllib3))
     (home-page
      "https://github.com/SeleniumHQ/selenium/")
     (synopsis "Python bindings for Selenium")
@@ -5508,9 +5343,7 @@ major web browsers.")
              (delete-file "tests/test_validator.py")
              (invoke "python" "-m" "pytest" "tests"))))))
     (native-inputs
-     `(("rapidjson" ,rapidjson)
-       ("python-pytest" ,python-pytest)
-       ("python-pytz" ,python-pytz)))
+     (list rapidjson python-pytest python-pytz))
     (home-page "https://github.com/python-rapidjson/python-rapidjson")
     (synopsis "Python wrapper around rapidjson")
     (description "This package provides a python wrapper around rapidjson.")
@@ -5591,7 +5424,7 @@ translation.")
                 "1hy8k0nv2mxq94y5aysk6hjk9ryb4bsd13g83m60hcyzxz3wflc3"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://docs.pylonsproject.org/projects/plaster/en/latest/")
     (synopsis "Configuration loader for multiple config file formats")
     (description
@@ -5615,10 +5448,9 @@ be registered via an entrypoint.")
                 "1zg7gcsvc1kzay1ry5p699rg2qavfsxqwl17mqxzr0gzw6j9679r"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-plaster" ,python-plaster)
-       ("python-pastedeploy" ,python-pastedeploy)))
+     (list python-plaster python-pastedeploy))
     (home-page "https://github.com/Pylons/plaster_pastedeploy")
     (synopsis "Plugin for python-plaster adding PasteDeploy syntax")
     (description
@@ -5640,13 +5472,10 @@ according to the standard set by PasteDeploy ")
     (build-system python-build-system)
     (arguments '(#:test-target "pytest"))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-watchdog" ,python-watchdog)
-       ("python-mock" ,python-mock)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-pytest python-pytest-runner python-watchdog python-mock
+           python-pytest-cov))
     (propagated-inputs
-     `(("python-pytz" ,python-pytz)))
+     (list python-pytz))
     (home-page "https://readthedocs.org/projects/hupper")
     (synopsis "Integrated process monitor tracking changes to imported Python files")
     (description
@@ -5667,16 +5496,16 @@ changed the process is restarted.")
                 "0rkxs1ajycg2zh1c94xlmls56mx5m161sn8112skj0amza6cn36q"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-hupper" ,python-hupper)
-       ("python-plaster-pastedeploy" ,python-plaster-pastedeploy)
-       ("python-translationstring" ,python-translationstring)
-       ("python-venusian" ,python-venusian)
-       ("python-webob" ,python-webob)
-       ("python-zope-deprecation" ,python-zope-deprecation)
-       ("python-zope-interface" ,python-zope-interface)
-       ("python-webtest" ,python-webtest)
-       ("python-zope-component" ,python-zope-component)
-       ("python-plaster" ,python-plaster)))
+     (list python-hupper
+           python-plaster-pastedeploy
+           python-translationstring
+           python-venusian
+           python-webob
+           python-zope-deprecation
+           python-zope-interface
+           python-webtest
+           python-zope-component
+           python-plaster))
     (home-page "https://trypyramid.com/")
     (synopsis "Python web-framework suitable for small and large sites")
     (description
@@ -5721,18 +5550,14 @@ based on filters.")
         (base32 "0xf2vkmdngp9cv9klznizai4byxjcf0iqh1pr4b83nann0jxqwy7"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-aniso8601" ,python-aniso8601)
-       ("python-flask" ,python-flask)
-       ("python-jsonschema" ,python-jsonschema)
-       ("python-pytz" ,python-pytz)))
+     (list python-aniso8601 python-flask python-jsonschema python-pytz))
     (native-inputs
-     `(("python-blinker" ,python-blinker)
-       ("python-faker" ,python-faker)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-benchmark"
-        ,python-pytest-benchmark)
-       ("python-pytest-flask" ,python-pytest-flask)
-       ("python-pytest-mock" ,python-pytest-mock)))
+     (list python-blinker
+           python-faker
+           python-pytest
+           python-pytest-benchmark
+           python-pytest-flask
+           python-pytest-mock))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -5765,8 +5590,7 @@ Swagger.")
          "09r2gpj2nbn72v2zaf6xsvlazln77pgqzp2pg2021nja47sijhsw"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-flask" ,python-flask)
-       ("python-socketio" ,python-socketio)))
+     (list python-flask python-socketio))
     (arguments '(#:tests? #f))        ; Tests not included in release tarball.
     (home-page "https://github.com/miguelgrinberg/Flask-SocketIO/")
     (synopsis "Socket.IO integration for Flask applications")
@@ -5786,9 +5610,9 @@ Swagger.")
           "1bdzay7j70fly5fy6wbdi8fbrxjrrlxnxnw226rwry1c8a351rpy"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (native-inputs
-     `(("python-zope-testing" ,python-zope-testing)))
+     (list python-zope-testing))
     (home-page "https://pypi.org/project/manuel/")
     (synopsis "Build tested documentation")
     (description
@@ -5808,11 +5632,9 @@ Swagger.")
           "0imm9ji03lhkpcfmhid7x5209ix8g2rlgki9ik1qxks4b8sm8gzq"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-cffi" ,python-cffi)
-       ("python-zope-interface" ,python-zope-interface)))
+     (list python-cffi python-zope-interface))
     (native-inputs
-     `(("python-manuel" ,python-manuel)
-       ("python-zope-testrunner" ,python-zope-testrunner)))
+     (list python-manuel python-zope-testrunner))
     (home-page "https://github.com/zopefoundation/persistent/")
     (synopsis "Translucent persistent objects")
     (description "This package contains a generic persistence implementation for
@@ -5833,12 +5655,9 @@ Python.  It forms the core protocol for making objects interact
           "0iiq0g9k1g6qgqq84q9h6639vlvzznk1rgdm0rfcnnqkbkmsbr3w"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-persistent" ,python-persistent)
-       ("python-zope-interface" ,python-zope-interface)))
+     (list python-persistent python-zope-interface))
     (native-inputs
-     `(("python-persistent" ,python-persistent)
-       ("python-transaction" ,python-transaction)
-       ("python-zope-testrunner" ,python-zope-testrunner)))
+     (list python-persistent python-transaction python-zope-testrunner))
     (home-page "https://github.com/zopefoundation/BTrees")
     (synopsis "Scalable persistent object containers")
     (description
@@ -5861,11 +5680,9 @@ conflicts detected by that mechanism.")
           "0bdaks31bgfh78wnj3sij24bfysmqk25crsis6amz8kzrc0d82iv"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-zope-interface" ,python-zope-interface)))
+     (list python-zope-interface))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)))
+     (list python-coverage python-mock python-nose))
     (home-page "https://github.com/zopefoundation/transaction")
     (synopsis "Transaction management for Python")
     (description "This package contains a generic transaction implementation
@@ -5885,7 +5702,7 @@ for Python.  It is mainly used by the ZODB.")
           "1xd2jm3yn31bnk1kqzggils2rxj26ylxsfz3ap7bhr3ilhnbg3rx"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; Tests not shipped in pypi release.
-    (propagated-inputs `(("python-six" ,python-six)))
+    (propagated-inputs (list python-six))
     (home-page "https://github.com/rory/robot-detection")
     (synopsis "Detect web crawlers")
     (description
@@ -5909,9 +5726,9 @@ Agent is a web crawler.  It uses the list of registered robots from
     (arguments
      '(#:tests? #f)) ; Tests require network access.
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (home-page "https://github.com/django-haystack/pysolr/")
     (synopsis "Lightweight python wrapper for Apache Solr")
     (description
@@ -5919,6 +5736,44 @@ Agent is a web crawler.  It uses the list of registered robots from
 using a pure Python implementation.")
     (license license:bsd-3)))
 
+(define-public python-pyjsparser
+  (package
+    (name "python-pyjsparser")
+    (version "2.7.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pyjsparser" version))
+       (sha256
+        (base32 "0ycmf9fsvwliqmm1n6sfz7x71y7i2kbfgn39d8lsbiccfxmxlq5y"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/PiotrDabkowski/pyjsparser")
+    (synopsis "Fast JavaScript parser")
+    (description "This package provides a fast JavaScript parser (based on
+esprima.js)")
+    (license license:expat)))
+
+(define-public python-js2py
+  (package
+    (name "python-js2py")
+    (version "0.71")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Js2Py" version))
+       (sha256
+        (base32 "1kkzkys6dfcbdv51vqxr9cmak350ab4mmykb8dysx60lvl4i06x4"))))
+    (build-system python-build-system)
+    (arguments '(#:tests? #false)) ; none included
+    (propagated-inputs
+     (list python-pyjsparser python-six python-tzlocal))
+    (home-page "https://github.com/PiotrDabkowski/Js2Py")
+    (synopsis "JavaScript to Python translator")
+    (description
+     "This package provides a JavaScript to Python translator and a JavaScript
+interpreter written in pure Python.")
+    (license license:expat)))
+
 (define-public python-http-ece
   (package
     (name "python-http-ece")
@@ -5940,12 +5795,9 @@ using a pure Python implementation.")
          (add-after 'unpack 'change-directory
            (lambda _ (chdir "python") #t)))))
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)))
+     (list python-cryptography))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-flake8" ,python-flake8)
-       ("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)))
+     (list python-coverage python-flake8 python-mock python-nose))
     (home-page "https://github.com/web-push-libs/encrypted-content-encoding")
     (synopsis "Encrypted Content Encoding for HTTP")
     (description
@@ -5956,26 +5808,26 @@ Encoding for HTTP.")
 (define-public python-cloudscraper
   (package
     (name "python-cloudscraper")
-    (version "1.2.48")
+    (version "1.2.58")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "cloudscraper" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/VeNoMouS/cloudscraper")
+             ;; Corresponds to 1.2.58
+             (commit "f3a3d067ea8b5238e9a0948aed0c3fa0d9c29b96")))
        (sha256
-        (base32 "0qjxzb0z5bprvmdhx42ayqhlhi2h49d9dwc0vvycj817s71f2sxv"))
+        (base32 "18fbp086imabjxly04rrchbf6n6m05bpd150zxbw7z2w3mjnpsqd"))
        (modules '((guix build utils)))
        (snippet
         '(with-directory-excursion "cloudscraper"
            (for-each delete-file
-                     '("captcha/2captcha.py"
-                       "captcha/9kw.py"
-                       "captcha/anticaptcha.py"
-                       "captcha/deathbycaptcha.py"))
+                     '("captcha/9kw.py"
+                       "captcha/anticaptcha.py"))
            (substitute* "__init__.py"
              ;; Perhaps it's a joke, but don't promote proprietary software.
              (("([Th]is feature is not available) in the .*'" _ prefix)
-              (string-append prefix ".'")))
-           #t))))
+              (string-append prefix ".'")))))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -5986,15 +5838,28 @@ Encoding for HTTP.")
            (lambda _
              (with-directory-excursion "cloudscraper"
                (for-each delete-file
-                         '("interpreters/js2py.py"
-                           "interpreters/v8.py")))
-             #t)))))
-    (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("python-requests-toolbelt" ,python-requests-toolbelt-0.9.1)
-       ("python-pyparsing" ,python-pyparsing-2.4.7)))
+                         '("interpreters/v8.py")))))
+         (add-after 'unpack 'fix-references
+           (lambda _
+             (substitute* "cloudscraper/interpreters/nodejs.py"
+               (("'node'")
+                (string-append "'" (which "node") "'")))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest" "-vv"
+                       "-k" "not test_getCookieString_challenge_js_challenge1_16_05_2020")))))))
+    (inputs
+     (list node))
+    (propagated-inputs
+     (list python-js2py
+           python-polling2
+           python-requests
+           python-requests-toolbelt-0.9.1
+           python-responses
+           python-pyparsing-2.4.7))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/venomous/cloudscraper")
     (synopsis "Cloudflare anti-bot bypass")
     (description
@@ -6029,6 +5894,23 @@ over IMAP:
 @end itemize")
     (license license:asl2.0)))
 
+(define-public python-giturlparse
+  (package
+    (name "python-giturlparse")
+    (version "0.10.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "giturlparse" version))
+        (sha256
+         (base32 "0dxk7sqy8ibaqdl6jzxd0ac1p7shzp4p9f3lhkd7qw9h3llsp595"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/nephila/giturlparse")
+    (synopsis "Git URL parsing module")
+    (description "This package provides a git URL parsing module which supports
+parsing and rewriting of remote git URLs from various hosting providers.")
+    (license license:asl2.0)))
+
 (define-public python-hstspreload
   (package
     (name "python-hstspreload")
@@ -6053,14 +5935,14 @@ as a Python package.")
 (define-public python-sanic
   (package
     (name "python-sanic")
-    (version "20.12.2")
+    (version "20.12.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "sanic" version))
        (sha256
         (base32
-         "1c02gdp1j18xny9jd33fp0w57qqi7g66zwmaykv2dhcks96f5mxr"))))
+         "0axfc151s7nrykzypzciyvkxxrs5ayx8kxv4r620hjb9w3jjhfnp"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -6077,28 +5959,30 @@ as a Python package.")
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "-vv" "./tests" "-k"
-                     "not test_zero_downtime and not test_gunicorn_worker"))))))
-    (propagated-inputs
-     `(("python-aiofiles" ,python-aiofiles)
-       ("python-httptools" ,python-httptools)
-       ("python-httpx" ,python-httpx)
-       ("python-multidict" ,python-multidict)
-       ("python-ujson" ,python-ujson)
-       ("python-uvloop" ,python-uvloop)
-       ("python-websockets" ,python-websockets)))
+                     (string-append "not test_zero_downtime "
+                                    "and not test_gunicorn_worker "
+                                    "and not test_logo_")))))))
+    (propagated-inputs
+     (list python-aiofiles
+           python-httptools
+           python-httpx
+           python-multidict
+           python-ujson
+           python-uvloop
+           python-websockets))
     (native-inputs
-     `(("gunicorn" ,gunicorn)
-       ("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-hstspreload" ,python-hstspreload)
-       ("python-httpcore" ,python-httpcore)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-benchmark" ,python-pytest-benchmark)
-       ("python-pytest-sanic" ,python-pytest-sanic)
-       ("python-pytest-sugar" ,python-pytest-sugar)
-       ("python-pytest-asyncio" ,python-pytest-asyncio)
-       ("python-urllib3" ,python-urllib3)
-       ("python-uvicorn" ,python-uvicorn)))
+     (list gunicorn
+           python-beautifulsoup4
+           python-hstspreload
+           python-httpcore
+           python-pytest
+           python-pytest-cov
+           python-pytest-benchmark
+           python-pytest-sanic
+           python-pytest-sugar
+           python-pytest-asyncio
+           python-urllib3
+           python-uvicorn))
     (home-page
      "https://github.com/sanic-org/sanic/")
     (synopsis
@@ -6123,12 +6007,12 @@ your code non-blocking and speedy.")
          "14vhpxdn54lz54mhcqlgcks0ssbws9gd1y7ii16a2g3gpfdc531k"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-aiohttp" ,python-aiohttp)
-       ("python-bidict" ,python-bidict)
-       ("python-engineio" ,python-engineio)
-       ("python-requests" ,python-requests)
-       ("python-websocket-client" ,python-websocket-client)
-       ("python-websockets" ,python-websockets)))
+     (list python-aiohttp
+           python-bidict
+           python-engineio
+           python-requests
+           python-websocket-client
+           python-websockets))
     (arguments '(#:tests? #f))        ; Tests not included in release tarball.
     (home-page "https://github.com/miguelgrinberg/python-socketio/")
     (synopsis "Python Socket.IO server")
@@ -6139,17 +6023,17 @@ your code non-blocking and speedy.")
 (define-public python-socks
   (package
     (name "python-socks")
-    (version "1.1.2")
+    (version "1.2.4")
     (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "python-socks" version))
-        (sha256
-         (base32
-          "06mgv3icsyglv50w3sb71x6cpbskza20pqd93l5xk59x574i6xgs"))))
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "python-socks" version))
+       (sha256
+        (base32
+         "1n6xb18jy41ybgkmamakg6psp3qididd45qknxiggngaiibz43kx"))))
     (build-system python-build-system)
     (arguments
-     `(#:tests? #f  ; tests not included
+     `(#:tests? #f                      ; tests not included
        #:phases
        (modify-phases %standard-phases
          (replace 'check
@@ -6158,11 +6042,9 @@ your code non-blocking and speedy.")
                (invoke "pytest" "tests/" "-s"))
              #t)))))
     (propagated-inputs
-     `(("python-async-timeout" ,python-async-timeout)
-       ("python-curio" ,python-curio)
-       ("python-trio" ,python-trio)))
+     (list python-async-timeout python-curio python-trio))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/romis2012/python-socks")
     (synopsis
      "Core proxy (SOCKS4, SOCKS5, HTTP tunneling) functionality for Python")
@@ -6183,7 +6065,7 @@ your code non-blocking and speedy.")
         (base32
          "1l4xwdh0fcnvrv0mzig4g2kgqkfbsy64zjm1ggc6grk3mykcxlz7"))))
     (build-system python-build-system)
-    (native-inputs `(("unzip" ,unzip)))
+    (native-inputs (list unzip))
     (home-page "https://github.com/Azure/azure-sdk-for-python")
     (synopsis "Azure namespace internals")
     (description
@@ -6203,7 +6085,7 @@ your code non-blocking and speedy.")
          "049qcmgshz7dj9yaqma0fwcgbxwddgwyfcw4gmv45xfmaa3bwfvg"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-azure-nspkg" ,python-azure-nspkg)))
+     (list python-azure-nspkg))
     (home-page "https://github.com/Azure/azure-storage-python")
     (synopsis "Microsoft Azure Storage Namespace package")
     (description
@@ -6224,11 +6106,152 @@ communicate with Microsoft Azure Storage services.")
          "1pv02lvvmgz2qb61vz1jkjc04fgm4hpfvaj5zm4i3mjp64hd1mha"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/scrapy/w3lib")
     (synopsis "Python library of web-related functions")
     (description
-     "This is a Python library of web-related functions, such as: remove comments,
-or tags from HTML snippets, extract base url from HTML snippets, translate entites
-on HTML strings, among other things.")
+     "This is a Python library of web-related functions, such as: remove
+comments, or tags from HTML snippets, extract base url from HTML snippets,
+translate entities on HTML strings, among other things.")
     (license license:bsd-3)))
+
+(define-public python-webcolors
+  (package
+    (name "python-webcolors")
+    (version "1.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "webcolors" version))
+       (sha256
+        (base32 "1rkda75h2p65zx6r84c9mjavn4xpviqvqrklvdvcklapd5in1wvn"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest")))))))
+    (native-inputs
+     (list python-pytest))
+    (home-page "https://github.com/ubernostrum/webcolors")
+    (synopsis "HTML/CSS color definitions library")
+    (description "@code{python-webcolors} is a module for working with
+HTML/CSS color definitions.  Normalizing and converting between the following
+formats is supported.
+@itemize
+@item Specification-defined color names
+@item Six-digit hexadecimal
+@item Three-digit hexadecimal
+@item Integer rgb() triplet
+@item Percentage rgb() triplet
+@end itemize
+Only the RGB colorspace is supported.  Conversion to/from the HSL colorspace
+can be handled by the @code{colorsys} module in the Python standard library.")
+    (license license:bsd-3)))
+
+(define-public python-woob
+  (package
+    (name "python-woob")
+    (version "3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "woob" version))
+       (sha256
+        (base32 "09hpxy5zhn2b8li0xjf3zd7s46lawb0315p5mdcsci3bj3s4v1j7"))))
+    (build-system python-build-system)
+    ;; A small number of tests for optional applications fails due to missing
+    ;; inputs.
+    (arguments `(#:tests? #f))
+    (propagated-inputs
+     (list python-babel
+           python-colorama
+           python-cssselect
+           python-dateutil
+           python-feedparser
+           python-html2text
+           python-lxml
+           python-pillow
+           python-prettytable
+           python-pyqt
+           python-pyyaml
+           python-requests
+           python-six
+           python-unidecode))
+    (native-inputs
+     (list python-coverage python-flake8 python-nose python-selenium
+           python-xunitparser))
+    (home-page "https://woob.tech/")
+    (synopsis "Woob, Web Outside Of Browsers")
+    (description "Woob is a collection of applications able to interact with
+websites, without requiring the user to open them in a browser.  It also
+provides well-defined APIs to talk to websites lacking one.")
+    (license license:lgpl3+)))
+
+(define-public python-flask-combo-jsonapi
+  (package
+    (name "python-flask-combo-jsonapi")
+    (version "1.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/AdCombo/flask-combo-jsonapi")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "07fhcjiyif80z1vyh35za29sqx1mmqh568jrbrrs675j4a797sj1"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-flask
+           python-marshmallow-3.2
+           python-marshmallow-jsonapi
+           python-simplejson
+           python-sqlalchemy-1.3
+           python-apispec
+           python-simplejson
+           python-six))
+    (native-inputs
+     (list python-coverage python-coveralls python-pytest
+           python-pytest-runner))
+    (home-page "https://github.com/AdCombo/flask-combo-jsonapi")
+    (synopsis "Flask extension to quickly create JSON:API 1.0 REST Web APIs")
+    (description
+     "Flask-COMBO-JSONAPI is a Python Flask extension for building REST Web APIs
+compliant with the @uref{https://jsonapi.org, JSON:API 1.0} specification.
+
+It tries to combine the power of Flask-Restless with the flexibility of
+Flask-RESTful to quickly build APIs that fit the complexity of existing
+real-life projects with legacy data and diverse storage providers.")
+    (license license:expat)))
+
+(define-public python-mwparserfromhell
+  (package
+    (name "python-mwparserfromhell")
+    (version "0.6.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "mwparserfromhell" version))
+       (sha256
+        (base32 "0zh9zaqbac18s7mivqk8am9xw97lfkgcj9hhxj0d4208pkqpkmqs"))))
+    (build-system python-build-system)
+    (native-inputs
+     (list python-pytest python-pytest-runner))
+    (home-page "https://github.com/earwig/mwparserfromhell")
+    (synopsis "Python parser for MediaWiki wikicode")
+    (description
+     "The MediaWiki Parser From Hell is a python library package that provides
+a parser for MediaWiki.
+
+It exposes parses as normal string objects with additional methods giving
+access to the special Wikicode features it contains (hyperlinks, tags,
+templates…).  The parser doesn't interpolate strings at all, it remains at a
+purely formal level.
+
+Full documentation may be found at
+@uref{https://mwparserfromhell.readthedocs.io, ReadTheDocs}")
+    (license license:expat)))
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b319793b38..2af4794019 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -42,7 +42,6 @@
 ;;; Copyright © 2017, 2020, 2021 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com>
 ;;; Copyright © 2017, 2019, 2021 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2018 Ethan R. Jones <ethanrjones97@gmail.com
 ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
@@ -52,7 +51,7 @@
 ;;; Copyright © 2016, 2018 Tomáš Čech <sleep_walker@gnu.org>
 ;;; Copyright © 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2018, 2019, 2021 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018, 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2018 Luther Thompson <lutheroto@gmail.com>
 ;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
@@ -64,7 +63,7 @@
 ;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019, 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
-;;; Copyright © 2019, 2020 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2019, 2020, 2021 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
 ;;; Copyright © 2019, 2020, 2021 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;; Copyright © 2019, 2021 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
@@ -72,9 +71,8 @@
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 sirgazil <sirgazil@zoho.com>
 ;;; Copyright © 2020 Sebastian Schott <sschott@mailbox.org>
-;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
-;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com>
 ;;; Copyright © 2020, 2021 Alexandros Theodotou <alex@zrythm.org>
+;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com>
 ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
 ;;; Copyright © 2020 Alex ter Weele <alex.ter.weele@gmail.com>
 ;;; Copyright © 2020 Matthew James Kraai <kraai@ftbfs.org>
@@ -91,7 +89,7 @@
 ;;; Copyright © 2020, 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
 ;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
 ;;; Copyright © 2020 Diego N. Barbato <dnbarbato@posteo.de>
-;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2019 Kristian Trandem <kristian@devup.no>
 ;;; Copyright © 2020, 2021 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
@@ -110,6 +108,10 @@
 ;;; 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 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021 Sébastien Lerique <sl@eauchat.org>
+;;; Copyright © 2021 Raphaël Mélotte <raphael.melotte@mind.be>
+;;; Copyright © 2021 ZmnSCPxj <ZmnSCPxj@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -141,6 +143,7 @@
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dbm)
+  #:use-module (gnu packages django)
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages docker)
   #:use-module (gnu packages enchant)
@@ -183,6 +186,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
@@ -232,6 +236,78 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public python-janus
+  (package
+    (name "python-janus")
+    (version "0.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "janus" version))
+       (sha256
+        (base32 "030xvl2vghi5ispfalhvch1rl6i2jsy5bf1dgjafa7vifppy04j7"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "--cov=janus" "--cov=tests")))))))
+    (native-inputs
+     (list python-pytest python-pytest-cov python-pytest-asyncio))
+    (home-page "https://github.com/aio-libs/janus/")
+    (synopsis
+     "Sync-async queue to interoperate between asyncio tasks and classic threads")
+    (description
+     "Mixed sync-async queue, supposed to be used for communicating between
+classic synchronous (threaded) code and asynchronous (in terms of
+@url{https://docs.python.org/3/library/asyncio.html,asyncio}) one.  Like
+@url{https://en.wikipedia.org/wiki/Janus,Janus god} the queue object from the
+library has two faces: synchronous and asynchronous interface.  Synchronous is
+fully compatible with
+@url{https://docs.python.org/3/library/queue.html,standard queue},
+asynchronous one follows
+@url{https://docs.python.org/3/library/asyncio-queue.html,asyncio queue
+design}.")
+    (license license:asl2.0)))
+
+(define-public python-logbook
+  (package
+    (name "python-logbook")
+    (version "1.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Logbook" version))
+       (sha256
+        (base32 "1s1gyfw621vid7qqvhddq6c3z2895ci4lq3g0r1swvpml2nm9x36"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'cythonize-sources
+           (lambda _
+             (with-directory-excursion "logbook"
+               (invoke "cython" "_speedups.pyx"))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; Check cython build also
+               (setenv "CYBUILD" "True")
+               (invoke "pytest" "--cov=logbook" "-r" "s" "tests")))))))
+    (native-inputs
+     (list python-cython python-mock python-pytest python-pytest-cov
+           python-google-brotli))
+    (home-page "https://github.com/getlogbook/logbook")
+    (synopsis "Logbook is a logging replacement for Python")
+    (description
+     "Logbook is a logging system for Python that replaces the standard
+library’s logging module.  It was designed with both complex and simple
+applications in mind and the idea to make logging fun.")
+    (license license:bsd-3)))
+
 (define-public python-ueberzug
   (package
     (name "python-ueberzug")
@@ -245,16 +321,12 @@
          "1hxd45dnwa9yv908acarr98n2drmar66wzq9z2qd3irj24srzr3w"))))
     (build-system python-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("libxext" ,libxext)))
+     (list libx11 libxext))
     (propagated-inputs
-     `(("python-attrs" ,python-attrs)
-       ("python-docopt" ,python-docopt)
-       ("python-pillow" ,python-pillow)
-       ("python-xlib" ,python-xlib)))
+     (list python-attrs python-docopt python-pillow python-xlib))
     (home-page "https://github.com/seebye/ueberzug")
     (synopsis "Command line util to display images in combination with X11")
-    (description "Überzug is a command line util which allows to draw images on
+    (description "Überzug is a command line util which draws images on
 terminals by using child windows.  The advantages of using Überzug are:
 @itemize
 @item No race conditions as a new window is created to display images.
@@ -280,7 +352,7 @@ workspaces.
          "0qka44n88y3qcj7xz0k0f3qb4phcg4z0wvd4jcii9lcr6rvbiqn5"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest", python-pytest)))
+     (list python-pytest))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -289,8 +361,7 @@ workspaces.
              (when tests?
                (invoke "pytest")))))))
     (inputs
-     `(("python-six", python-six)
-       ("python-termcolor", python-termcolor)))
+     (list python-six python-termcolor))
     (synopsis "Library for automatically generating command line interfaces")
     (description
      "Fire is a library for automatically generating command line interfaces
@@ -353,13 +424,10 @@ features of the Python's built-in dict.")
               "0ybs7kkp0cpl8zn1lvf7481xhssg1bbhh5la2cjzdm5yibashyxa"))))
    (build-system python-build-system)
    (native-inputs
-    `(("python-coverage" ,python-coverage)
-      ("python-nose" ,python-nose)
-      ("python-setuptools" ,python-setuptools) ; Won't build without this.
-      ("python-setuptools-scm" ,python-setuptools-scm)))
+    (list python-coverage python-nose python-setuptools ; Won't build without this.
+          python-setuptools-scm))
    (propagated-inputs
-    `(("python-toml" ,python-toml)
-      ("python-flake8" ,python-flake8)))
+    (list python-toml python-flake8))
    (home-page "https://github.com/casperdcl/argopt")
    (synopsis "Generate a command-line interface from a docstring")
    (description "This package provides tools to define a command line interface
@@ -401,11 +469,9 @@ decorators, including variants of the Python standard library's
     (arguments
      `(#:tests? #f))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-flake8" ,python-flake8)
-       ("python-pytest" ,python-pytest)))
+     (list python-coverage python-flake8 python-pytest))
     (propagated-inputs
-     `(("python-colorama" ,python-colorama)))
+     (list python-colorama))
     (home-page "http://github.com/timofurrer/colorful")
     (synopsis "Terminal string styling")
     (description "Colorful provides an array of text styles, that can be used
@@ -425,7 +491,7 @@ as functions or string constants to form colored terminal output.")
         (base32 "1iirah0kydrdp505qnjj6gi54avcr7z0hbkfx9vmh8myr30rpz6q"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/pavdmyt/yaspin")
     (synopsis "Yet Another Terminal Spinner")
     (description "Yaspin provides a terminal spinner to indicate the progress
@@ -445,10 +511,9 @@ during long operations.")
         (base32 "106akalywfmnypzkdrhgz4n4740a8xayspybsw59kq06vz8i2qrc"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-mock python-pytest))
     (propagated-inputs
-     `(("python-nltk" ,python-nltk-3.4)))
+     (list python-nltk-3.4))
     (home-page
      "https://github.com/yeraydiazdiaz/lunr.py")
     (synopsis "Full-text search library")
@@ -457,6 +522,26 @@ It indexes documents and provides a search interface for retrieving documents
 that best match text queries.")
     (license license:expat)))
 
+(define-public python-mrkd
+  (package
+    (name "python-mrkd")
+    (version "0.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "mrkd" version))
+        (sha256
+          (base32 "1bvaqbna1ihb4y2mv9pmvqcq3r9j6lwbbii99dani8lxx4dqqvs5"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-jinja2 python-mistune python-pygments))
+    (home-page "https://pypi.org/project/mrkd/")
+    (synopsis "Python Markdown implementation")
+    (description
+     "@code{mrkd} writes man pages using Markdown, and convert them to Roff or
+HTML")
+    (license license:bsd-3)))
+
 (define-public python-mkdocs
   (package
     (name "python-mkdocs")
@@ -479,13 +564,13 @@ that best match text queries.")
              (substitute* "setup.py"
                (("==") ">=")))))))
     (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-jinja2" ,python-jinja2)
-       ("python-livereload" ,python-livereload)
-       ("python-lunr" ,python-lunr)
-       ("python-markdown" ,python-markdown)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-tornado" ,python-tornado)))
+     (list python-click
+           python-jinja2
+           python-livereload
+           python-lunr
+           python-markdown
+           python-pyyaml
+           python-tornado))
     (home-page "https://www.mkdocs.org")
     (synopsis "Project documentation with Markdown")
     (description "MkDocs is a static site generator geared towards building
@@ -509,7 +594,7 @@ configured with a single YAML configuration file.")
     (arguments
      `(#:tests? #f))
     (propagated-inputs
-     `(("python-markdown" ,python-markdown)))
+     (list python-markdown))
     (home-page "https://github.com/facelessuser/pymdown-extensions")
     (synopsis "Extension pack for Python Markdown")
     (description "PyMdown Extensions is a collection of extensions for Python
@@ -539,11 +624,8 @@ Markdown.  All extensions are found under the module namespace of pymdownx.")
              (substitute* "requirements.txt"
                (("mkdocs-material-extensions.*$") "")))))))
     (propagated-inputs
-     `(("python-markdown" ,python-markdown)
-       ("python-mkdocs" ,python-mkdocs)
-       ("python-pygments" ,python-pygments)
-       ("python-pymdown-extensions"
-        ,python-pymdown-extensions)))
+     (list python-markdown python-mkdocs python-pygments
+           python-pymdown-extensions))
     (home-page "https://squidfunk.github.io/mkdocs-material/")
     (synopsis "Material Design theme for MkDocs")
     (description "This package provides a theme plugin for the static site
@@ -581,13 +663,10 @@ generator MkDocs.")
        ("gnupg" ,gnupg)
        ("pkg-config" ,pkg-config)))
     (propagated-inputs
-     `(("python-aiodns" ,python-aiodns)
-       ("python-aiohttp" ,python-aiohttp)
-       ("python-pyasn1" ,python-pyasn1)
-       ("python-pyasn1-modules" ,python-pyasn1-modules)))
+     (list python-aiodns python-aiohttp python-pyasn1
+           python-pyasn1-modules))
     (inputs
-     `(("libidn" ,libidn)
-       ("python" ,python))) ; We are building a Python extension.
+     (list libidn python)) ; We are building a Python extension.
     (synopsis "XMPP library without threads")
     (description "Slixmpp is a XMPP library for Python 3.7+.  It is a fork of
 SleekXMPP.  Its goal is to only rewrite the core of the library (the low level
@@ -608,12 +687,10 @@ threads.")
                 "1j36v9fcpmmd4985ix0cwnvcq71rkrn5cjiiv0id9vkl4kpxh0gv"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-sphinx" ,python-sphinx)
-       ("python-tornado" ,python-tornado)
-       ("python-pytest" ,python-pytest)))
+     (list python-setuptools-scm python-sphinx python-tornado
+           python-pytest))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (replace 'check
@@ -650,9 +727,9 @@ task of adding retry behavior to just about anything.")
                  (invoke "py.test")))
              #t)))))
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/eternnoir/pyTelegramBotAPI")
     (synopsis "Python Telegram bot api")
     (description "This package provides a simple, but extensible Python
@@ -671,7 +748,7 @@ implementation for the Telegram Bot API.")
                 "1lpk8zmfv8vz090h5d0hzb4n39wgasxdd3x3bpn3v1x1n9dfzaih"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (replace 'check
@@ -695,7 +772,7 @@ with Python's logging module that outputs records using terminal colors.")
                 "1gscnlvj37m421ch3akm3kddxqkrgbg5zrpwy2ky1j59w6vclzg3"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-psutil" ,python-psutil)))
+     (list python-psutil))
     (home-page "https://github.com/rasbt/pyprind")
     (synopsis "Python Progress Bar and Percent Indicator Utility")
     (description "The PyPrind (Python Progress Indicator) module provides a
@@ -715,9 +792,9 @@ of a loop structure or other iterative computation.")
                 "118zm25c8mlajfl0pzssnwz4b8lamj9dgymla9rn4nla7l244a0r"))))
     (build-system python-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libgphoto2" ,libgphoto2)))
+     (list libgphoto2))
     (home-page "https://github.com/jim-easterbrook/python-gphoto2")
     (synopsis "Python interface to libgphoto2")
     (description "@code{python-gphoto2} is a comprehensive Python interface
@@ -737,7 +814,7 @@ automatically generate the interface code.")
                 "1visbisfini5j14bdzgs95yssw6sm4pfzyq1n3lfvbyjxw7i485g"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-d2to1" ,python-d2to1)))
+     (list python-d2to1))
     (home-page "https://github.com/vaab/colour")
     (synopsis "Convert and manipulate various color representations")
     (description "Pythonic way to manipulate color representations (HSL, RVB,
@@ -756,7 +833,7 @@ web, X11, ...).")
                 "09fq7pq1z8d006xh5z75rm2lk61v6yn2xhy53z4gsgibhqb2vvs9"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/embray/d2to1")
     (synopsis "Allows for distutils2-like setup.cfg files as package metadata
 in python")
@@ -777,10 +854,9 @@ distribute/setuptools setup.py script.")
                 "0vrhrpr70i61y5q5ysk341x1539ff1q1k82g59zq69lv16s0f76s"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-mock" ,python-mock)))
+     (list python-pytest python-mock))
     (inputs
-     `(("libraw" ,libraw)))
+     (list libraw))
     (home-page "https://rawkit.readthedocs.io")
     (synopsis "Ctypes-based LibRaw binding for Python")
     (description "The rawkit package provides two modules:  rawkit and libraw.
@@ -801,7 +877,7 @@ interacting with the low-level LibRaw C APIs.")
                 "1zmvmwgxyzvm83818skhn8b4wrci4kmnixaax8q3ia5cn7xrmj6v"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-tkinter" ,python "tk")))
+     (list `(,python "tk")))
     (home-page "https://github.com/robertlugg/easygui")
     (synopsis "GUI programming module for Python")
     (description "EasyGUI is a module for very simple, very easy GUI
@@ -822,11 +898,9 @@ simple function calls.")
         (base32 "07s3arn85ri92im6x3ipljdmrxmpik7irs06i6lm17j1x6j9841d"))))
     (build-system python-build-system)
     (inputs
-     `(("md4c" ,md4c)))
+     (list md4c))
     (native-inputs
-     `(("python-flake8" ,python-flake8)
-       ("python-pkgconfig" ,python-pkgconfig)
-       ("pkg-config" ,pkg-config)))
+     (list python-flake8 python-pkgconfig pkg-config))
     (home-page "https://github.com/dominickpastore/pymd4c")
     (synopsis "Python bindings for MD4C")
     (description
@@ -847,10 +921,9 @@ to CommonMark.")
          "0mhpxs7vlqx8w75z93dy7nnvx89kwfdjkla03l19an15rlyqyspd"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-pytest" ,python-pytest)))
+     (list python-setuptools-scm python-pytest))
     (inputs
-     `(("libmediainfo" ,libmediainfo)))
+     (list libmediainfo))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -858,25 +931,22 @@ to CommonMark.")
            (lambda _
              (substitute* "pymediainfo/__init__.py"
                (("libmediainfo.so.0")
-                (string-append (assoc-ref %build-inputs "libmediainfo")
-                               "/lib/libmediainfo.so.0")))
-             #t))
+                (search-input-file %build-inputs
+                                   "/lib/libmediainfo.so.0")))))
          (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
              (when tests?
-               ;; Extend PYTHONPATH so the built package will be found.
-               (setenv "PYTHONPATH"
-                       (string-append (getcwd) "/build/lib:"
-                                      (getenv "PYTHONPATH")))
-               ;; Skip the only failing test "test_parse_url"
+               (add-installed-pythonpath inputs outputs)
+               ;; Skip the only failing test "test_parse_url" because it tries
+               ;; to access the internet.
                (invoke "pytest" "-vv" "-k" "not test_parse_url")))))))
     (home-page
      "https://github.com/sbraz/pymediainfo")
     (synopsis
      "Python wrapper for the mediainfo library")
     (description
-     "Python wrapper for the mediainfo library to access the technical and tag
-data for video and audio files.")
+     "This package provides a Python wrapper for the mediainfo library to
+access the technical and tag data for video and audio files.")
     (license license:expat)))
 
 (define-public python-psutil
@@ -933,14 +1003,12 @@ iotop, uptime, pidof, tty, taskset, pmap.")
            #t))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-cython python-matplotlib python-pytest
+           python-pytest-cov))
     (inputs
-     `(("geos" ,geos)))
+     (list geos))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -979,7 +1047,7 @@ planar geometric objects.  It is based on the @code{GEOS} library.")
          "1f8i4zwj5vmpzbz6b17bljy4399gx5aq7vsyw63sz2qgyjcd73yh"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pep8" ,python-pep8)))
+     (list python-pep8))
     (home-page "https://github.com/skorokithakis/shortuuid")
     (synopsis "Generator library for concise, unambiguous and URL-safe UUIDs")
     (description
@@ -1010,11 +1078,8 @@ module and then similar looking characters are removed.")
                (invoke "pytest"))
              #t)))))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-toml" ,python-toml)
-       ("python-wheel" ,python-wheel)))
+     (list python-cython python-pytest python-setuptools-scm python-toml
+           python-wheel))
     (home-page "https://github.com/python-useful-helpers/logwrap")
     (synopsis "Decorator for logging function arguments")
     (description "This package provides a decorator to log function arguments
@@ -1034,7 +1099,7 @@ and function call return values in a human-readable way.")
          "1r9987qmy1pz3hq54160bapqsywpq14waw4w9x3ly8hmq7kpgfbj"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-mock" ,python-mock)))
+     (list python-mock))
     (home-page "https://github.com/Anaconda-Platform/clyent")
     (synopsis "Command line client library")
     (description "Clyent is a Python command line utility library.  It is used
@@ -1057,11 +1122,9 @@ by @code{binstar}, @code{binstar-build}, and @code{chalmers}.")
          "018yg7g2pa6vjixx1nx41cfispgfi0azzp0a1chlycbj8jsil0ys"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-freezegun" ,python-freezegun)
-       ("python-pytest" ,python-pytest)
-       ("tzdata" ,tzdata-for-tests)))
+     (list python-freezegun python-pytest tzdata-for-tests))
     (propagated-inputs
-     `(("python-pytz" ,python-pytz)))
+     (list python-pytz))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (replace 'check
@@ -1118,19 +1181,19 @@ and verifies that it matches the intended target hostname.")
          "02dy0b1k7qlhn7ajyzkrvxhyhjj0hzcq6ws3zjml9hkdz5znz92g"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-hypothesis" ,python-hypothesis)
-       ("python-pre-commit" ,python-pre-commit)
-       ("python-py" ,python-py)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-benchmark" ,python-pytest-benchmark)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-sortedcollections" ,python-sortedcollections)
-       ("python-sortedcontainers" ,python-sortedcontainers)
-       ("python-sphinx" ,python-sphinx)
-       ("python-sphinx-autodoc-typehints" ,python-sphinx-autodoc-typehints)
-       ("python-tox" ,python-tox)))
+     (list python-coverage
+           python-hypothesis
+           python-pre-commit
+           python-py
+           python-pytest
+           python-pytest-benchmark
+           python-pytest-cov
+           python-setuptools-scm
+           python-sortedcollections
+           python-sortedcontainers
+           python-sphinx
+           python-sphinx-autodoc-typehints
+           python-tox))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-after 'unpack 'relax-reqs
@@ -1259,14 +1322,11 @@ NetCDF files can also be read and modified.  Python-HDF4 is a fork of
                  (string-append "['" prefix "/lib" "']")))
               #t))))))
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-numpy" ,python-numpy)))
+     (list python-six python-numpy))
     (inputs
-     `(("hdf5" ,hdf5-1.10)))
+     (list hdf5-1.10))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pkgconfig" ,python-pkgconfig)
-       ("pkg-config" ,pkg-config)))
+     (list python-cython python-pkgconfig pkg-config))
     (home-page "https://www.h5py.org/")
     (synopsis "Read and write HDF5 files from Python")
     (description
@@ -1280,6 +1340,34 @@ concepts.")
 (define-public python2-h5py
   (package-with-python2 python-h5py))
 
+(define-public python-hnswlib
+  (package
+    (name "python-hnswlib")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "hnswlib" version))
+       (sha256
+        (base32 "0wf1cwmxmdzfqmfhrkqdxb5spf21ylgl2bidswhzjrqhwf35c9qf"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-native-optimization
+           (lambda _
+             (substitute* "setup.py"
+               ((", '-march=native'") "")))))))
+    (propagated-inputs
+     (list python-numpy))
+    (native-inputs
+     (list pybind11))
+    (home-page "https://github.com/nmslib/hnswlib")
+    (synopsis "Fast approximate nearest neighbor search")
+    (description "Hnswlib is a header-only C++ implementation of fast
+approximate nearest neighbor search with Python bindings.")
+    (license license:asl2.0)))
+
 (define-public python-pyls-black
   (package
     (name "python-pyls-black")
@@ -1298,16 +1386,10 @@ concepts.")
     (arguments
      `(#:test-target "pytest"))
     (propagated-inputs
-     `(("python-black" ,python-black)
-       ("python-language-server"
-        ,python-language-server)
-       ("python-toml" ,python-toml)))
+     (list python-black python-language-server python-toml))
     (native-inputs
-     `(("python-flake8" ,python-flake8)
-       ("python-isort" ,python-isort)
-       ("python-mypy" ,python-mypy)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-flake8 python-isort python-mypy python-pytest
+           python-pytest-runner))
     (home-page "https://github.com/rupert/pyls-black")
     (synopsis "Black plugin for the Python Language Server")
     (description "Black plugin for the Python Language Server.")
@@ -1334,7 +1416,7 @@ concepts.")
              (setenv "HOME" "/tmp")
              (invoke "python" "sh.py" "test"))))))
     (native-inputs
-     `(("python-coverage" ,python-coverage)))
+     (list python-coverage))
     (home-page "https://github.com/amoffat/sh")
     (synopsis "Python subprocess replacement")
     (description "This package provides a replacement for Python's
@@ -1353,11 +1435,9 @@ concepts.")
         (base32 "0w0gi6jnch38hiygl62j4xkcirv4y3dcwrvxl9p7bsk6j27lzihs"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (native-inputs
-     `(("python-coveralls" ,python-coveralls)
-       ("python-cython" ,python-cython)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-coveralls python-cython python-pytest-cov))
     (home-page "https://github.com/Unidata/cftime")
     (synopsis "Library for time handling")
     (description
@@ -1387,14 +1467,11 @@ of the netcdf4 package before.")
              (setenv "HDF5_DIR" (assoc-ref inputs "hdf5"))
              #t)))))
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-cftime" ,python-cftime)))
+     (list python-numpy python-cftime))
     (inputs
-     `(("netcdf" ,netcdf)
-       ("hdf4" ,hdf4)
-       ("hdf5" ,hdf5)))
+     (list netcdf hdf4 hdf5))
     (home-page "https://github.com/Unidata/netcdf4-python")
     (synopsis "Python/numpy interface to the netCDF library")
     (description "Netcdf4-python is a Python interface to the netCDF C
@@ -1430,10 +1507,9 @@ to users of that module.")
                       (when tests?
                         (invoke "pytest")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-lxml" ,python-lxml)
-       ("python-paramiko" ,python-paramiko)))
+     (list python-lxml python-paramiko))
     (home-page "https://github.com/ncclient/ncclient")
     (synopsis "Python library for NETCONF clients")
     (description "@code{ncclient} is a Python library that facilitates
@@ -1453,7 +1529,7 @@ protocol.")
         (base32 "1g0sgphss8hbi1rpl4avy1nmbixmy9v194xdbvkjgl90vzgy2q3r"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-boolean.py" ,python-boolean.py)))
+     (list python-boolean.py))
     (home-page "https://github.com/nexB/license-expression")
     (synopsis "Apply boolean logic to license expressions")
     (description
@@ -1464,6 +1540,35 @@ and simplified.  It supports SPDX license expressions as well as other naming
 conventions and aliases in the same expression.")
     (license license:gpl2+)))
 
+(define-public python-wand
+  (package
+    (name "python-wand")
+    (version "0.6.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Wand" version))
+       (sha256
+        (base32 "1nxn7zvbnfgk4kkxajbzglcjpbgr84ilhnxm990nifjxqb61ph7b"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'find-magickwand
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "MAGICK_HOME" (assoc-ref inputs "imagemagick"))
+             (setenv "WAND_MAGICK_LIBRARY_SUFFIX" ".Q16"))))))
+    (native-inputs
+     (list python-pytest))
+    (inputs
+     (list imagemagick))
+    (home-page "https://docs.wand-py.org/")
+    (synopsis "MagickWand API binding for Python")
+    (description
+     "Wand is a ctypes-based binding for the C API of ImageMagick's MagickWand
+library.")
+    (license license:expat)))
+
 (define-public python-lockfile
   (package
     (name "python-lockfile")
@@ -1478,7 +1583,7 @@ conventions and aliases in the same expression.")
     (build-system python-build-system)
     (arguments '(#:test-target "check"))
     (native-inputs
-     `(("python-pbr" ,python-pbr)))
+     (list python-pbr))
     (home-page "https://launchpad.net/pylockfile")
     (synopsis "Platform-independent file locking module")
     (description
@@ -1502,7 +1607,7 @@ API for locking files.")
          "0snprxdnh3m45r3b0az4v0l28h90ycmfbybzla6xg1qviwv9w1ak"))))
     (build-system python-build-system)
     (inputs
-     `(("re2" ,re2)))
+     (list re2))
     (home-page "https://github.com/facebook/pyre2")
     (synopsis "Python wrapper for RE2")
     (description "This package provides a Python extension that wraps Google's
@@ -1568,8 +1673,7 @@ version identifier.")
         (base32 "1arnckykpkvv2qrp49l1k7q5mr5pisswl0rvdx98x8wsl1n361pk"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-attrs" ,python-attrs)
-       ("python-pytz" ,python-pytz)))
+     (list python-attrs python-pytz))
     (home-page "https://github.com/irmen/Serpent")
     (synopsis "Serializer for literal Python expressions")
     (description
@@ -1660,7 +1764,7 @@ Python 3 support.")
     (arguments
      `(#:tests? #f))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://pypi.org/project/setuptools/")
     (synopsis
      "Library designed to facilitate packaging Python projects")
@@ -1695,11 +1799,9 @@ Python 3 support.")
          "1l8zmcnp9h8sp8hsw7b81djaa1a9yig0y7i4phh5pihqz1gdn7yi"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-pytest python-setuptools-scm))
     (propagated-inputs
-     `(("python-toml" ,python-toml)
-       ("python-wheel" ,python-wheel)))
+     (list python-toml python-wheel))
     (home-page
      "https://github.com/s0undt3ch/setuptools-declarative-requirements")
     (synopsis "File support for setuptools declarative setup.cfg")
@@ -1708,7 +1810,7 @@ Python 3 support.")
 @code{setup.cfg}.")
     (license license:asl2.0)))
 
-;; The setuptools provided by Python 3.7.4 is too new for Tensorflow.
+;; The setuptools provided by Python 3.9 is too new for Tensorflow.
 (define-public python-setuptools-for-tensorflow
   (hidden-package
    (package
@@ -1719,7 +1821,21 @@ Python 3 support.")
                (uri (pypi-uri "setuptools" version ".zip"))
                (sha256
                 (base32
-                 "1mzdhvfhnv4lggxa8rjl0dzqxvfx377gg5sqs57v89wrp09lwj65")))))))
+                 "1mzdhvfhnv4lggxa8rjl0dzqxvfx377gg5sqs57v89wrp09lwj65"))))
+     (arguments
+      `(#:tests? #f                     ; tests require vendored resources
+        #:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'compatibility-fixes
+            (lambda _
+              ;; Python 3.9 no longer has HTMLParser
+              (substitute* "setuptools/py33compat.py"
+                (("html_parser.HTMLParser\\(\\).unescape")
+                 "html.unescape"))
+              ;; This needs distutils.msvc9compiler
+              (delete-file "setuptools/tests/test_msvc.py"))))))
+     (native-inputs
+      (list python-pytest python-mock python-six)))))
 
 (define-public python-uniseg
   (package
@@ -1736,7 +1852,7 @@ Python 3 support.")
     (arguments
      '(#:tests? #f)) ; The test suite requires network access.
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page
      "https://bitbucket.org/emptypage/uniseg-python")
     (synopsis
@@ -1875,19 +1991,18 @@ class.")
                         (("\"can_player\\.py --help\"") ""))
                       #t)))))
     (propagated-inputs
-     `(("python-aenum" ,python-aenum)
-       ("python-wrapt" ,python-wrapt)))
-    (native-inputs
-     `(("python-codecov" ,python-codecov)
-       ("python-coverage" ,python-coverage)
-       ("python-future" ,python-future)
-       ("python-hypothesis" ,python-hypothesis)
-       ("python-mock" ,python-mock)
-       ("python-pyserial" ,python-pyserial)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-pytest-timeout" ,python-pytest-timeout)))
+     (list python-aenum python-wrapt))
+    (native-inputs
+     (list python-codecov
+           python-coverage
+           python-future
+           python-hypothesis
+           python-mock
+           python-pyserial
+           python-pytest
+           python-pytest-cov
+           python-pytest-runner
+           python-pytest-timeout))
     (home-page "https://github.com/hardbyte/python-can")
     (synopsis "Controller Area Network (CAN) interface module for Python")
     (description "This package defines the @code{can} module, which provides
@@ -1923,12 +2038,9 @@ sending and receiving messages on a CAN bus.")
                     (lambda _
                       (invoke "py.test" "-k" "not NetworkTests"))))))
     (propagated-inputs
-      `(("python-distlib" ,python-distlib)
-        ("python-packaging" ,python-packaging)
-        ("python-requests" ,python-requests)))
+      (list python-distlib python-packaging python-requests))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-mock python-pytest))
     (home-page "https://github.com/brettcannon/caniusepython3")
     (synopsis "Check for Python 3-incompatible Python libraries")
     (description "The @command{caniusepython3} command scans your project and
@@ -2017,10 +2129,7 @@ bits instead of primitive data types like @code{char}, @code{int}, etc.")
      `(("sphinx" ,python-sphinx)
        ("texinfo" ,texinfo)))
     (propagated-inputs
-     `(("python-bitstruct" ,python-bitstruct)
-       ("python-can" ,python-can)
-       ("python-diskcache" ,python-diskcache)
-       ("python-textparser" ,python-textparser)))
+     (list python-bitstruct python-can python-diskcache python-textparser))
     (home-page "https://github.com/eerimoq/cantools")
     (synopsis "Tools for the Controller Area Network (CAN) bus protocol")
     (description "This package includes Controller Area Network (CAN) related
@@ -2052,7 +2161,7 @@ tools that can be used to:
     (arguments
      `(#:tests? #f))
     (propagated-inputs
-     `(("python-humanfriendly" ,python-humanfriendly)))
+     (list python-humanfriendly))
     (home-page "https://capturer.readthedocs.io")
     (synopsis "Capture stdout and stderr streams of the current process")
     (description
@@ -2078,12 +2187,9 @@ for additional processing.")
          "1cagg06vfph864s6l5jb0zqliwxh647bki8j6lf4a4qrv40jnhs8"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)
-       ("python-six" ,python-six)
-       ("python-unittest2" ,python-unittest2)))
+     (list python-mock python-nose python-six python-unittest2))
     (native-inputs
-     `(("python-coverage" ,python-coverage)))
+     (list python-coverage))
     (home-page "https://github.com/celery/case")
     (synopsis "Unittest utilities and convenience methods")
     (description
@@ -2113,8 +2219,7 @@ some helpful Python 2 compatibility convenience methods.")
              (invoke "pytest" "-v" "-k" "not test_pylint_plugin"
                      "verboselogs/tests.py"))))))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-mock python-pytest))
     (home-page "https://verboselogs.readthedocs.io")
     (synopsis "Verbose logging level for Python's logging module")
     (description
@@ -2141,7 +2246,7 @@ add the log levels NOTICE, SPAM, SUCCESS and VERBOSE.")
      `(;Tests require some updated modules
        #:tests? #f))
     (propagated-inputs
-     `(("python-capturer" ,python-capturer)))
+     (list python-capturer))
     (home-page "https://coloredlogs.readthedocs.io")
     (synopsis "Colored stream handler for Python's logging module")
     (description
@@ -2188,22 +2293,18 @@ files are easily readable and they work nicely with version control systems.")
          "0vmxgn9wd3j80hp4gr5iq06jrl4gryz5zgfdd2ah30d12sfcfig0"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python2-backports-functools-lru-cache"
-        ,python2-backports-functools-lru-cache)
-       ("python2-backports-shutil-get-terminal-size"
-        ,python2-backports-shutil-get-terminal-size)
-       ("python-cached-property" ,python-cached-property)
-       ("python-colorama" ,python-colorama)
-       ("python-imagesize" ,python-imagesize)
-       ("python-importlib-metadata" ,python-importlib-metadata)
-       ("python-lxml" ,python-lxml)
-       ("python-requests" ,python-requests)
-       ("python-six" ,python-six)))
+     (list python2-backports-functools-lru-cache
+           python2-backports-shutil-get-terminal-size
+           python-cached-property
+           python-colorama
+           python-imagesize
+           python-importlib-metadata
+           python-lxml
+           python-requests
+           python-six))
     (native-inputs
-     `(("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-xdist" ,python-pytest-xdist)
-       ("python-responses" ,python-responses)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-pytest-cov python-pytest-xdist python-responses
+           python-setuptools-scm))
     (home-page "https://github.com/webcomics/dosage")
     (synopsis "Comic strip downloader and archiver")
     (description "Dosage is designed to keep a local copy of specific webcomics and other
@@ -2230,8 +2331,7 @@ downloaded, or download a strip for a particular date or index, if possible.")
                     (lambda _
                       (invoke "pytest"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-lxml" ,python-lxml)))   ;used for the tests
+     (list python-pytest python-lxml))   ;used for the tests
     (home-page "https://bitbucket.org/openpyxl/et_xmlfile")
     (synopsis "Low memory implementation of @code{lxml.xmlfile}")
     (description "This Python library is based upon the @code{xmlfile} module
@@ -2265,12 +2365,9 @@ of @code{xmlfile}.")
                       (invoke "pytest"))))))
     (native-inputs
      ;; For the test suite.
-     `(("python-lxml" ,python-lxml)
-       ("python-pillow" ,python-pillow)
-       ("python-pytest" ,python-pytest)))
+     (list python-lxml python-pillow python-pytest))
     (propagated-inputs
-     `(("python-et-xmlfile" ,python-et-xmlfile)
-       ("python-jdcal" ,python-jdcal)))
+     (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,
@@ -2293,27 +2390,44 @@ standard.")
           (sha256
            (base32
             "1qzjj8nwj4dn0mhq1j64f136afiqqb81lvqiikipz3g1g0b80lqx"))))
-      (arguments '(#:tests? #f)))))     ; No test suite.
+      (arguments
+       `(#:python ,python-2
+         #:tests? #f)))))     ; No test suite.
 
 (define-public python-eventlet
   (package
     (name "python-eventlet")
-    (version "0.25.1")
+    (version "0.33.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "eventlet" version))
        (sha256
         (base32
-         "1hgz8jq19wlz8vwqj900ry8cjv578nz4scc91mlc8944yid6573c"))))
+         "07qlyhcm0f28sxdizawvdf3d50m3hnbzz5kg3fjp7chvki44y540"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-dnspython" ,python-dnspython)
-       ("python-greenlet" ,python-greenlet)
-       ("python-monotonic" ,python-monotonic)))
+     (list python-dnspython python-greenlet python-monotonic python-six))
+    (native-inputs
+     (list python-nose))
     (arguments
-     ;; TODO: Requires unpackaged 'enum-compat'.
-     '(#:tests? #f))
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'avoid-OSError
+           (lambda _
+             ;; If eventlet tries to load greendns, an OSError is thrown when
+             ;; getprotobyname is called.  Thankfully there is an environment
+             ;; variable to disable the greendns import, so use it:
+             (setenv "EVENTLET_NO_GREENDNS" "yes")))
+         (add-after 'unpack 'delete-broken-tests
+           (lambda _
+             (delete-file "tests/greendns_test.py")
+             (delete-file "tests/socket_test.py")))
+         ;; See https://github.com/eventlet/eventlet/issues/562#issuecomment-714183009
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "nosetests" "-v" "tests/")))))))
     (home-page "https://eventlet.net")
     (synopsis "Concurrent networking library for Python")
     (description
@@ -2324,7 +2438,7 @@ Coroutines ensure that the developer uses a blocking style of programming
 that is similar to threading, but provide the benefits of non-blocking I/O.
 The event dispatch is implicit, which means you can easily use @code{Eventlet}
 from the Python interpreter, or as a small part of a larger application.")
-  (license license:expat)))
+    (license license:expat)))
 
 (define-public python-sinfo
   (package
@@ -2338,7 +2452,7 @@ from the Python interpreter, or as a small part of a larger application.")
                 "0kdsp883mx0lfyykv0p12bvs203kdm3skb8bw5wf2pc7kb393sl1"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-stdlib-list" ,python-stdlib-list)))
+     (list python-stdlib-list))
     (home-page "https://gitlab.com/joelostblom/session_info")
     (synopsis "Output module version information loaded in a Python session")
     (description "This package outputs version information for modules loaded
@@ -2346,48 +2460,20 @@ in the current session, Python, and the OS.")
     (license license:bsd-3)))
 
 (define-public python-six
-  (package
+  (package/inherit python-six-bootstrap
     (name "python-six")
-    (version "1.15.0")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (pypi-uri "six" version))
-      (sha256
-       (base32
-        "0n82108wxn5giff50hd9ykjhd3zl7cndabdasi6568yvbh1rqqrh"))))
-    (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
-             (invoke "py.test" "-v"))))))
+             (invoke "pytest" "-v"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest-bootstrap)))
-    (home-page "https://pypi.org/project/six/")
-    (synopsis "Python 2 and 3 compatibility utilities")
-    (description
-     "Six is a Python 2 and 3 compatibility library.  It provides utility
-functions for smoothing over the differences between the Python versions with
-the goal of writing Python code that is compatible on both Python versions.
-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)))
+     `(("python-pytest" ,python-pytest-bootstrap)))))
 
 (define-public python2-six
   (package-with-python2 python-six))
 
-(define-public python-six-bootstrap
-  (package
-    (inherit python-six)
-    (name "python-six-bootstrap")
-    (native-inputs `())
-    (arguments `(#:tests? #f))))
-
-(define-public python2-six-bootstrap
-  (package-with-python2 python-six-bootstrap))
-
 (define-public python-schedule
   (package
     (name "python-schedule")
@@ -2401,8 +2487,7 @@ Python file, so it can be easily copied into your project.")
         "0vplyjcbfrq50sphlwya749z8p2pcyi2nycw3518i0qpd9a6189i"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-mock" ,python-mock)))
+     (list python-pytest python-mock))
     (home-page "https://github.com/dbader/schedule")
     (synopsis "Schedule periodic function calls in Python")
     (description
@@ -2431,7 +2516,7 @@ human-friendly syntax.")
        (sha256
         (base32 "0mmfvx4wqp8gkpv0kbih89zfs9njvmd3v4dxfqii62xddpxq0f1k"))))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (build-system python-build-system)
     (home-page "https://github.com/scour-project/scour")
     (synopsis "Scour is an SVG optimizer/cleaner written in Python")
@@ -2454,7 +2539,7 @@ lossless but can be tweaked for more aggressive cleaning.")
         "1z9kqcwb8gfq2l6i42z624kxpd8692a0c8gw2x5bbm7n848w2mb3"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-html5lib" ,python-html5lib)))
+     (list python-html5lib))
     (home-page "https://github.com/python-mechanize/mechanize")
     (synopsis
      "Stateful programmatic web browsing in Python")
@@ -2481,7 +2566,7 @@ after Andy Lester’s Perl module WWW::Mechanize.")
     (arguments
      `(#:tests? #f))
     (inputs
-      `(("alsa-lib" ,alsa-lib)))
+      (list alsa-lib))
     (home-page
      "https://github.com/hamiltron/py-simple-audio")
     (synopsis "Simple, asynchronous audio playback for Python 3")
@@ -2503,7 +2588,7 @@ audio playback capability for Python 3 on OSX, Windows, and Linux.")
         "0hc8nqwdlll4a9cr1k9msn5kmb6kmbjirpgvhjh254nr4sgwgv3m"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-toml" ,python-toml)))
+     (list python-toml))
     (home-page "https://simplejson.readthedocs.io/en/latest")
     (synopsis
      "Json library for Python")
@@ -2537,10 +2622,9 @@ Python 3.3+.")
         "0mkz1673qxldxs4mrqg9882xgmz5fhpia17yrsd6z8dfw8156rf0"))))
     (build-system python-build-system)
     (inputs
-     `(("icu4c" ,icu4c)))
+     (list icu4c))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-six" ,python-six)))
+     (list python-pytest python-six))
     (home-page "https://github.com/ovalhub/pyicu")
     (synopsis "Python extension wrapping the ICU C++ API")
     (description
@@ -2577,9 +2661,7 @@ Python 3.3+.")
                (invoke "dbus-run-session" "--" "nosetests" "-v" "tests/"))
              #t)))))
     (propagated-inputs
-     `(("python-pygobject" ,python-pygobject)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pyatspi" ,python-pyatspi)))
+     (list python-pygobject python-pycairo python-pyatspi))
     (native-inputs
      `(("python-nose" ,python-nose)
        ("gtk+" ,gtk+)
@@ -2744,11 +2826,9 @@ backported for previous versions of Python from 2.4 to 3.3.")
         "0g3b6gsdwnm8dpkh2vn34q6dzxm9gl908ggyzcv31n9xbp3vv5pm"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-parse" ,python-parse)))
+     (list python-six python-parse))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest python-pytest-runner))
     (home-page "https://github.com/jenisys/parse_type")
     (synopsis "Extended parse module")
     (description
@@ -2814,6 +2894,26 @@ existing ones.")
                    ;; Tests don't work with python2.
                    #:tests? #f)))))
 
+(define-public python-polling2
+  (package
+    (name "python-polling2")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "polling2" version))
+       (sha256
+        (base32 "0hp3238fv6k1qk43gv4jwnv1mwlkmx33akbj560b9nvsry1dmdwh"))))
+    (build-system python-build-system)
+    (arguments '(#:tests? #false)) ; no tests included
+    (native-inputs
+     (list python-mock python-pytest python-pytest-runner))
+    (home-page "https://github.com/ddmee/polling2")
+    (synopsis "Polling utility with many configurable options")
+    (description "Polling2 is a utility used to wait for a function to return
+a certain expected condition.")
+    (license license:expat)))
+
 (define-public python-poyo
   (package
     (name "python-poyo")
@@ -2892,10 +2992,8 @@ software.")
         (base32 "10iqjzmya2h4sk765dlm1pbqypwlqyh8rw59a5m9i63d3klnz2mc"))))
   (build-system python-build-system)
   (native-inputs
-    `(("coverage" ,python-coverage)
-      ("pytest" ,python-pytest-astropy)
-      ("pytest-cov" ,python-pytest-cov)
-      ("setuptools-scm" ,python-setuptools-scm)))
+    (list python-coverage python-pytest-astropy python-pytest-cov
+          python-setuptools-scm))
   (home-page "https://github.com/astropy/astropy-helpers")
   (synopsis
    "Utilities for building and installing packages in the Astropy ecosystem")
@@ -2996,7 +3094,7 @@ server.")
     (propagated-inputs
      ;; Youtube-dl is a python package which is imported in the file
      ;; "backend_youtube_dl.py", therefore it needs to be propagated.
-     `(("youtube-dl" ,youtube-dl)))
+     (list youtube-dl))
     (home-page "https://np1.github.io/pafy/")
     (synopsis "Retrieve YouTube content and metadata")
     (description
@@ -3017,7 +3115,7 @@ server.")
     (arguments
      `(#:python ,python-2))
     (native-inputs
-     `(("python2-unittest2" ,python2-unittest2)))
+     (list python2-unittest2))
     (home-page "http://funcsigs.readthedocs.org")
     (synopsis "Python function signatures from PEP362")
     (description
@@ -3052,7 +3150,7 @@ server.")
      ;; Is this module globally installed?"
      '(#:tests? #f))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (home-page "https://github.com/pytest-dev/py")
     (synopsis "Python library for parsing, I/O, instrospection, and logging")
     (description
@@ -3076,14 +3174,14 @@ code introspection, and logging.")
 (define-public python-pbr-minimal
   (package
     (name "python-pbr-minimal")
-    (version "3.0.1")
+    (version "5.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pbr" version))
        (sha256
         (base32
-         "14fs5acnalnb3h62s7q7av239j541fk0n0z0lawh4h09b1s93s6p"))))
+         "1j8k5d4rdhy5bw5ai1vkjzln2albah94in3vvyvxa0n42fv81baz"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))
@@ -3100,7 +3198,7 @@ code introspection, and logging.")
     (arguments
      `(#:tests? #f)) ;; Most tests seem to use the Internet.
     (propagated-inputs
-      `(("git" ,git))) ;; pbr actually uses the "git" binary.
+      (list git)) ;; pbr actually uses the "git" binary.
     (native-inputs
       `(("python-fixtures" ,python-fixtures-bootstrap)
         ;; discover, coverage, hacking, subunit
@@ -3143,11 +3241,9 @@ from git information.
                         (("hypothesis<5") "hypothesis"))
                       #t)))))
     (native-inputs
-     `(("python-hypothesis" ,python-hypothesis)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-hypothesis python-pytest python-pytest-runner))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (synopsis "Persistent data structures for Python")
     (description
      "Pyrsistent is a number of persistent collections (by some referred to as
@@ -3219,12 +3315,10 @@ files.")
         (base32 "1bg2iw9l5dip0kbs00hajdk2v18wvhssbnq8hdf71278qf0wks5l"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-wcwidth" ,python-wcwidth)
-       ("python-configobj" ,python-configobj)
-       ("python-tabulate" ,python-tabulate)
-       ("python-terminaltables" ,python-terminaltables)))
+     (list python-wcwidth python-configobj python-tabulate
+           python-terminaltables))
     (home-page "https://github.com/dbcli/cli_helpers")
     (synopsis "Helpers for building command-line apps")
     (description
@@ -3259,7 +3353,7 @@ interfaces.")
            (lambda _
              (invoke "python" "-m" "pytest"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://palletsprojects.com/p/click/")
     (synopsis "Command line library for Python")
     (description
@@ -3284,6 +3378,30 @@ with sensible defaults out of the box.")
         (base32 "0njsm0wn31l21bi118g5825ma5sa3rwn7v2x4wjd7yiiahkri337"))))
     (arguments `())))
 
+(define-public python-cligj
+  (package
+    (name "python-cligj")
+    (version "0.7.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "cligj" version))
+        (sha256
+          (base32
+            "09vbkik6kyn6yrqzl2r74vaybjk8kjykvi975hy3fsrm4gb17g54"))))
+    (build-system python-build-system)
+    (propagated-inputs
+      (list python-click))
+    (native-inputs
+      (list python-pytest-cov))
+    (home-page "https://github.com/mapbox/cligj")
+    (synopsis "Click params for command line interfaces to GeoJSON")
+    (description
+      "cligj is for Python developers who create command line interfaces
+for geospatial data.  cligj allows you to quickly build consistent,
+well-tested and interoperable CLIs for handling GeoJSON.")
+    (license license:bsd-3)))
+
 (define-public python-vcversioner
   (package
     (name "python-vcversioner")
@@ -3324,7 +3442,7 @@ version numbers.")
                     (lambda _
                       (invoke "pytest"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/phn/jdcal")
     (synopsis "Functions to convert between Julian dates Gregorian dates")
     (description "This Python library provides functions for converting
@@ -3347,8 +3465,7 @@ between Julian dates and Gregorian dates.")
        "00v3689175aqzdscrxpffm712ylp8jvcpqdg51ca22ni6721p51l"))))
    (build-system python-build-system)
    (native-inputs
-    `(("python-nose" ,python-nose)
-      ("python-nose-random" ,python-nose-random)))
+    (list python-nose python-nose-random))
    (home-page
     "https://github.com/fzumstein/jsondiff")
    (synopsis "Compare JSON and JSON-like structures in Python")
@@ -3379,24 +3496,12 @@ compare, diff, and patch JSON and JSON-like structures in Python.")
      `(("python-setuptools_scm" ,python-setuptools-scm)
        ("python-twisted" ,python-twisted)))
     (propagated-inputs
-     `(("python-attrs" ,python-attrs)
-       ("python-pyrsistent" ,python-pyrsistent)
-       ("python-six" ,python-six)))
+     (list python-attrs python-pyrsistent python-six))
     (home-page "https://github.com/Julian/jsonschema")
     (synopsis "Implementation of JSON Schema for Python")
     (description
      "Jsonschema is an implementation of JSON Schema for Python.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-jsonschema))))))
-
-(define-public python2-jsonschema
-  (let ((jsonschema (package-with-python2
-                     (strip-python2-variant python-jsonschema))))
-    (package/inherit jsonschema
-             (propagated-inputs
-              `(("python2-functools32" ,python2-functools32)
-                ("python2-importlib-metadata" ,python2-importlib-metadata)
-                ,@(package-propagated-inputs jsonschema))))))
+    (license license:expat)))
 
 (define-public python-schema
   (package
@@ -3411,7 +3516,7 @@ compare, diff, and patch JSON and JSON-like structures in Python.")
          "1lw28j9w9vxyigg7vkfkvi6ic9lgjkdnfvnxdr7pklslqvzmk2vm"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/keleshev/schema")
     (synopsis "Simple data validation library")
     (description
@@ -3451,7 +3556,7 @@ something else) to Python data-types.")
          "1zakh6l0yjvwic9p0nkvmbidpnkygkxbigh2skmb5gccyrhbp7xg"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-chardet" ,python-chardet)))
+     (list python-chardet))
     (home-page "https://github.com/fedora-infra/kitchen")
     (synopsis "Python API for snippets")
     (description "@code{kitchen} module provides a python API for all sorts of
@@ -3526,7 +3631,7 @@ somewhat intelligible.")
                     (lambda _
                       (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/kmike/text-unidecode/")
     (synopsis "Decode Unicode data")
     (description
@@ -3570,8 +3675,7 @@ memory usage and transliteration quality.")
                          ""))
                       (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-pytest python-pytest-cov))
     (home-page "https://github.com/progrium/pyjwt")
     (synopsis "JSON Web Token implementation in Python")
     (description
@@ -3670,9 +3774,6 @@ visualisation and class tracker statistics.")
 environments and back.")
     (license license:bsd-3)))
 
-(define-public python2-itsdangerous
-  (package-with-python2 python-itsdangerous))
-
 (define-public python-pyyaml
   (package
     (name "python-pyyaml")
@@ -3686,8 +3787,7 @@ environments and back.")
          "0pm440pmpvgv5rbbnm8hk4qga5a292kvlm1bh3x2nwr8pb5p8xv0"))))
     (build-system python-build-system)
     (inputs
-     `(("libyaml" ,libyaml)
-       ("python-cython" ,python-cython)))
+     (list libyaml python-cython))
     (home-page "https://pyyaml.org")
     (synopsis "YAML parser and emitter for Python")
     (description
@@ -3713,8 +3813,7 @@ provides Python-specific tags that represent an arbitrary Python object.")
          "0wkskb2hb494v9gixqnf4bl972p4ibcmxdykzpwjlfa5picns4aj"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-case" ,python-case)))
+     (list python-pytest python-case))
     (home-page "https://github.com/celery/vine")
     (synopsis "Promises for Python")
     (description
@@ -3737,14 +3836,9 @@ e.g. filters, callbacks and errbacks can all be promises.")
          "1nbhnpzswcf3lmzn5xabmfdd7ki8r2w2i37y6wml54di6qi1l48c"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-mock python-pytest python-setuptools-scm))
     (propagated-inputs
-     `(("python-appdirs" ,python-appdirs)
-       ("python-distlib" ,python-distlib)
-       ("python-filelock" ,python-filelock)
-       ("python-six" ,python-six)))
+     (list python-appdirs python-distlib python-filelock python-six))
     (home-page "https://virtualenv.pypa.io/")
     (synopsis "Virtual Python environment builder")
     (description
@@ -3755,32 +3849,9 @@ e.g. filters, callbacks and errbacks can all be promises.")
   (let ((base (package-with-python2 (strip-python2-variant python-virtualenv))))
     (package
       (inherit base)
-      (arguments
-       `(#:python ,python-2
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'set-paths 'adjust-PYTHONPATH
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let* ((python (assoc-ref inputs "python"))
-                      (python-sitedir (string-append python "/lib/python2.7"
-                                                     "/site-packages")))
-                 ;; XXX: 'python2' always comes first on PYTHONPATH
-                 ;; and shadows the 'setuptools' input.  Move python2
-                 ;; last: this should be fixed in python-build-system
-                 ;; in a future rebuild cycle.
-                 (setenv "PYTHONPATH"
-                         (string-append (string-join (delete python-sitedir
-                                                             (string-split
-                                                              (getenv "PYTHONPATH")
-                                                              #\:))
-                                                     ":")
-                                        ":" python-sitedir))
-                 (format #t "environment variable `PYTHONPATH' changed to `~a'~%"
-                         (getenv "PYTHONPATH"))
-                 #t))))))
       (propagated-inputs
-       `(("python-contextlib2" ,python2-contextlib2)
-         ,@(package-propagated-inputs base))))))
+       (modify-inputs (package-propagated-inputs base)
+         (prepend python2-contextlib2))))))
 
 (define-public python-markupsafe
   (package
@@ -3801,16 +3872,28 @@ e.g. filters, callbacks and errbacks can all be promises.")
                       (when tests?
                         (invoke "pytest" "-vv")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/mitsuhiko/markupsafe")
     (synopsis "XML/HTML/XHTML markup safe string implementation for Python")
     (description
      "Markupsafe provides an XML/HTML/XHTML markup safe string implementation
 for Python.")
-    (license license:bsd-3)))
+    (license license:bsd-3)
+    (properties `((python2-variant . ,(delay python2-markupsafe))))))
 
+;; Version 1.1.1 is the last to support Python 2.
 (define-public python2-markupsafe
-  (package-with-python2 python-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
@@ -3832,18 +3915,30 @@ for Python.")
                           (invoke "pytest" "-vv")
                           (format #t "test suite not run~%")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-markupsafe" ,python-markupsafe)))
+     (list python-markupsafe))
     (home-page "http://jinja.pocoo.org/")
     (synopsis "Python template engine")
     (description
      "Jinja2 is a small but fast and easy to use stand-alone template engine
 written in pure Python.")
-    (license license:bsd-3)))
+    (license license:bsd-3)
+    (properties `((python2-variant . ,(delay python2-jinja2))))))
 
+;; Version 2.11.3 is the last to support Python 2.
 (define-public python2-jinja2
-  (package-with-python2 python-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
@@ -3858,8 +3953,7 @@ written in pure Python.")
          "0h0dr7cfpjnjj8bgl2vk9063a53649pn37wnlkd8hxjy656slkni"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-arrow" ,python-arrow)
-       ("python-jinja2" ,python-jinja2)))
+     (list python-arrow python-jinja2))
     (home-page
      "https://github.com/hackebrot/jinja2-time")
     (synopsis "Jinja2 Extension for Dates and Times")
@@ -3905,21 +3999,26 @@ logic-free templating system Mustache.")
 (define-public python-joblib
   (package
     (name "python-joblib")
-    (version "0.14.1")
+    (version "1.1.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "joblib" version))
               (sha256
                (base32
-                "1j464w137w6s367gl697j1l63g52akydrxgv4czlck36ynjfwc06"))))
+                "0d8ypyhsw1bjr96zan9ms8wbvnzbjqxniq4vcszghcrps7ngqn21"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _ (invoke "pytest" "-v" "joblib"))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "JOBLIB_MULTIPROCESSING" "0")
+               (invoke "pytest" "-v" "joblib"
+                       ;; We disable this test to avoid having to depend on ipython/jupyter
+                       "-k" "not test_parallel_call_cached_function_defined_in_jupyter")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://joblib.readthedocs.io/")
     (synopsis "Using Python functions as pipeline jobs")
     (description
@@ -3929,39 +4028,54 @@ 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-with-python2 python-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
     (name "python-daemon")
-    (version "2.2.3")
+    (version "2.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-daemon" version))
        (sha256
         (base32
-         "09fcjdjzk9ywmpnrj62iyxqgcygzdafsz41qlrk2dknzbagcmzmg"))))
+         "1bxfn2bq56sd4w0nm9mqy8y0905m7fc8vmhnjxlrf49vcbqr7adx"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'disable-tests
+         (add-before 'check 'adjust-tests
            (lambda _
+             ;; Drop use of testtools.helpers.safe_hasattr which has
+             ;; been removed in favor of hasattr.
+             (substitute* "test/test_metadata.py"
+               (("testtools\\.helpers\\.safe_hasattr")
+                "hasattr"))
              ;; FIXME: Determine why test fails
              (substitute* "test/test_daemon.py"
                (("test_detaches_process_context")
-                "skip_test_detaches_process_context"))
-             #t)))))
+                "skip_test_detaches_process_context")))))))
     (propagated-inputs
-     `(("python-lockfile" ,python-lockfile)))
+     (list python-lockfile))
     (native-inputs
-     `(("python-unittest2" ,python-unittest2)
-       ("python-testtools" ,python-testtools)
-       ("python-testscenarios" ,python-testscenarios)
-       ("python-mock" ,python-mock)
-       ("python-docutils" ,python-docutils)))
+     (list python-coverage
+           python-unittest2
+           python-testtools
+           python-testscenarios
+           python-twine
+           python-mock
+           python-docutils))
     (home-page "https://pagure.io/python-daemon/")
     (synopsis "Python library for making a Unix daemon process")
     (description "Python-daemon is a library that assists a Python program to
@@ -3995,11 +4109,11 @@ important tasks for becoming a daemon process:
                 "1aycpc387wqz7h9w2p53qxn43qsh3m6by6ak4kkc66x9aprr63rz"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (native-inputs
-     `(;; For tests.
-       ("graphviz" ,graphviz)           ;for 'dot'
-       ("python-nose" ,python-nose)))
+     (list ;; For tests.
+           graphviz ;for 'dot'
+           python-nose))
     (home-page "https://github.com/c0fec0de/anytree")
     (synopsis "Lightweight tree data library")
     (description
@@ -4010,14 +4124,14 @@ structure for Python.")
 (define-public python-docutils
   (package
     (name "python-docutils")
-    (version "0.16")
+    (version "0.17.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "docutils" version))
        (sha256
         (base32
-         "1z3qliszqca9m719q3qhdkh0ghh90g500avzdgi7pl77x5h3mpn2"))))
+         "09gii36lp1bs26cpxqyfd20xahnpbrbjzcnba2xq08y3wk97frb8"))))
     (build-system python-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -4043,6 +4157,20 @@ via commands such as @command{rst2man}, as well as supporting Python code.")
 (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
+    (inherit python-docutils)
+    (version "0.15")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "docutils" version))
+              (sha256
+               (base32
+                "0ja8q6mdj6xv62jjw3phv8j5nfqi5x8hnfy4pqfcjcgz4b34k8sl"))))
+    ;; tests contain Python 2 syntax.
+    (arguments '(#:tests? #false))))
+
 ;; python2-sphinx fails its test suite with newer versions.
 (define-public python2-docutils-0.14
   (package
@@ -4078,9 +4206,9 @@ via commands such as @command{rst2man}, as well as supporting Python code.")
                (invoke "nosetests" "-v"))
              #t)))))
     (propagated-inputs
-     `(("python-docutils" ,python-docutils)))
+     (list python-docutils))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/twolfson/restructuredtext-lint")
     (synopsis "reStructuredText linter")
     (description "This package provides a linter for the reStructuredText
@@ -4110,14 +4238,10 @@ format.")
                (invoke "pytest" "-v"))
              #t)))))
     (propagated-inputs
-     `(("python-chardet" ,python-chardet)
-       ("python-docutils" ,python-docutils)
-       ("python-restructuredtext-lint" ,python-restructuredtext-lint)
-       ("python-six" ,python-six)
-       ("python-stevedore" ,python-stevedore)))
+     (list python-chardet python-docutils python-restructuredtext-lint
+           python-six python-stevedore))
     (native-inputs
-     `(("python-testtools" ,python-testtools)
-       ("python-pytest" ,python-pytest)))
+     (list python-testtools python-pytest))
     (home-page "https://launchpad.net/doc8")
     (synopsis
      "Style checker for Sphinx (or other) RST documentation")
@@ -4174,7 +4298,7 @@ text styles of documentation.")
          "0cz14clcc9z4pn79ll8hp3xzgsrfjscak5zfsvlgrz6ngkkmgjma"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pygments" ,python-pygments)))
+     (list python-pygments))
     (home-page "https://github.com/liluo/pygments-github-lexers")
     (synopsis "Pygments Github custom lexers")
     (description "This package installs Github custom lexers to Pygments.")
@@ -4224,7 +4348,7 @@ software version simply.")
 (define-public python-deprecated
   (package
     (name "python-deprecated")
-    (version "1.2.5")
+    (version "1.2.13")
     (source
      (origin
        (method git-fetch)
@@ -4234,21 +4358,19 @@ software version simply.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "14909glxxwwc4b9qpz2b9jdriwzi5n65ichw85xqppap5f79wcwz"))))
+         "0v4ys9xr8lski2r98da99spsj6hjlnnqgnhhmyhrm66myiix885c"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (replace 'check
-                    (lambda _
-                      (invoke "pytest"))))))
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "pytest")))))))
     (propagated-inputs
-     `(("python-wrapt" ,python-wrapt)))
+     (list python-wrapt))
     (native-inputs
-     `(("python-bumpversion" ,python-bumpversion)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-sphinx" ,python-sphinx)
-       ("python-tox" ,python-tox)))
+     (list python-bumpversion python-pytest python-pytest-cov
+           python-sphinx python-tox))
     (home-page "https://github.com/tantale/deprecated")
     (synopsis "Python decorator to deprecate classes, functions or methods")
     (description "The @code{deprecated} decorator provides a convenient way to deprecate
@@ -4280,13 +4402,10 @@ to deprecate classes, functions or methods.")
                (invoke "pytest"))
              #t)))))
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-deprecated" ,python-deprecated)
-       ("python-pyjwt" ,python-pyjwt)
-       ("python-requests" ,python-requests)))
+     (list python-cryptography python-deprecated python-pyjwt
+           python-requests))
     (native-inputs
-     `(("python-httpretty" ,python-httpretty)
-       ("python-pytest" ,python-pytest)))
+     (list python-httpretty python-pytest))
     (home-page "https://pygithub.readthedocs.io/en/latest/")
     (synopsis "Python library for the GitHub API")
     (description "This library allows managing GitHub resources such as
@@ -4307,8 +4426,7 @@ using version 3 of the GitHub application programming interface (API).")
          "1w0arpj1sm7vh29nrbnca4pnp8sx42l07r17inwqcjjf9bhng66x"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-invoke" ,python-invoke)
-       ("python-pygithub" ,python-pygithub)))
+     (list python-invoke python-pygithub))
     (home-page "https://github.com/robotframework/rellu")
     (synopsis "Utilities to create PyPI releases")
     (description "This collection of utilities contains tooling and templates
@@ -4320,7 +4438,7 @@ ecosystem, but can naturally be used also by other projects.")
 (define-public python-robotframework
   (package
     (name "python-robotframework")
-    (version "3.2.2")
+    (version "4.1.2")
     ;; There are no tests in the PyPI archive.
     (source
      (origin
@@ -4330,7 +4448,7 @@ ecosystem, but can naturally be used also by other projects.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0if0h3myb9m3hgmn1phrhq8pfp89kfqsaq32vmfdjkyjdj7y59ds"))
+        (base32 "0s6lakbd8h1pa4lfdj18sm13gpywszgpcns4hz026a4kam787kby"))
        (patches (search-patches
                  "python-robotframework-source-date-epoch.patch"))))
     (build-system python-build-system)
@@ -4344,8 +4462,7 @@ ecosystem, but can naturally be used also by other projects.")
                         (invoke "invoke" "library-docs" "all")
                         (mkdir-p doc)
                         (copy-recursively "doc/libraries"
-                                          (string-append doc "/libraries"))
-                        #t)))
+                                          (string-append doc "/libraries")))))
                   (replace 'check
                     (lambda* (#:key inputs #:allow-other-keys)
                       ;; Some tests require timezone data.  Otherwise, they
@@ -4359,7 +4476,9 @@ ecosystem, but can naturally be used also by other projects.")
 
                       (invoke "python" "utest/run.py"))))))
     (native-inputs
-     `(("python-invoke" ,python-invoke)
+     `(("python-docutils" ,python-docutils)
+       ("python-jsonschema" ,python-jsonschema)
+       ("python-invoke" ,python-invoke)
        ("python-rellu" ,python-rellu)
        ("python:tk" ,python "tk")             ;used when building the HTML doc
        ("tzdata" ,tzdata-for-tests)))
@@ -4371,6 +4490,48 @@ acceptance testing, acceptance test driven development (ATDD), and robotic
 process automation (RPA).")
     (license license:asl2.0)))
 
+(define-public python-robotframework-datadriver
+  (package
+    (name "python-robotframework-datadriver")
+    (version "1.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "robotframework-datadriver" version))
+       (sha256
+        (base32 "1kv6h47850gdqr8azknkh81z7hw6yz5pjn53mkn71ly4szw4pqb7"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-readme-file-name
+           (lambda _
+             (rename-file "Readme.rst" "README.rst")))
+         (add-before 'check 'skip-problematic-tests
+           (lambda _
+             ;; The test file 'tab-csv-file-name.tsv' contains special
+             ;; characters for which there is no locale in the build
+             ;; environment, causing one test to fail.
+             (delete-file-recursively "atest/TestCases/csv_reader_config")))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (with-directory-excursion "atest"
+                 (invoke "sh" "run_atest.sh"))))))))
+    (native-inputs (list python-docutils
+                         python-robotframework-stacktrace))
+    (propagated-inputs (list python-openpyxl
+                             python-pandas
+                             python-pygments
+                             python-robotframework))
+    (home-page "https://github.com/Snooz82/robotframework-datadriver")
+    (synopsis "Data-driven test extension for Robot Framework")
+    (description "DataDriver is a data-driven extension for Robot Framework.
+DataDriver uses the Listener Interface of Robot Framework to create new test
+cases based on a data file that contains the test data.  DataDriver supports
+data files in the CSV, XLS or XLSX formats.")
+    (license license:asl2.0)))
+
 (define-public python-robotframework-lint
   ;; There is no properly tagged release; the commit below seems to correspond
   ;; to the 0.9 stable release available from PyPI.  The tests are not
@@ -4401,17 +4562,46 @@ process automation (RPA).")
                (invoke "python" "-m" "robot" "-A"
                        "tests/conf/default.args" "tests"))))))
       (propagated-inputs
-       `(("python-robotframework" ,python-robotframework)))
+       (list python-robotframework))
       (home-page "https://github.com/boakley/robotframework-lint/")
       (synopsis "Static analysis tool (linter) for Robot Framework")
       (description "This package provides the @code{rflint} command-line
 utility, a static analysis tool (linter) for Robot Framework source files.")
       (license license:asl2.0))))
 
+(define-public python-robotframework-stacktrace
+  (package
+    (name "python-robotframework-stacktrace")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "robotframework-stacktrace" version))
+       (sha256
+        (base32 "19gnwr7da1zz9clhwsmvqfjf02d195i61lzpq4253dcsgrpb6v79"))))
+    (build-system python-build-system)
+    (arguments
+     ;; The test suite fails (see:
+     ;; https://github.com/MarketSquare/robotframework-stacktrace/issues/4).
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (with-directory-excursion "tests"
+                 (invoke "python" "-m" "robot" "."))))))))
+    (propagated-inputs (list python-robotframework))
+    (home-page "https://github.com/MarketSquare/robotframework-stacktrace")
+    (synopsis "Robot Framework listener to print a stack trace on error")
+    (description "StackTrace is a Robot Framework listener that prints a stack
+trace directly to the terminal to ease debugging.")
+    (license license:asl2.0)))
+
 (define-public python-robotframework-sshlibrary
   (package
     (name "python-robotframework-sshlibrary")
-    (version "3.3.0")
+    (version "3.7.0")
     ;; There are no tests in the PyPI archive.
     (source
      (origin
@@ -4422,7 +4612,7 @@ utility, a static analysis tool (linter) for Robot Framework source files.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1mk6dz2jqqndbx4yji09012q6rmadnqdywi7czvj62b0s07dr3r2"))))
+         "09ak22rh9qa9wlpvhkliyybcp4xafjhxsps28wz0pf0030771xav"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -4436,26 +4626,24 @@ utility, a static analysis tool (linter) for Robot Framework source files.")
                (invoke "invoke" "kw-docs" "project-docs")
                (mkdir-p doc)
                (for-each delete-file (find-files "docs" "\\.rst"))
-               (copy-recursively "docs" doc)
-               #t)))
+               (copy-recursively "docs" doc))))
          (replace 'check
-           (lambda _
-             ;; Some tests require an SSH server; we remove them.
-             (delete-file "utest/test_client_api.py")
-             (delete-file "utest/test_scp.py")
-             (invoke "python" "utest/run.py"))))))
-    (propagated-inputs
-     `(("python-robotframework" ,python-robotframework)
-       ("python-paramiko" ,python-paramiko)
-       ("python-scp" ,python-scp)))
-    (native-inputs
-     `(("openssh" ,openssh)
-       ("which" ,which)
-       ;; To generate the documentation
-       ("python-docutils" ,python-docutils)
-       ("python-invoke" ,python-invoke)
-       ("python-pygments" ,python-pygments)
-       ("python-rellu" ,python-rellu)))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; Some tests require an SSH server; we remove them.
+               (delete-file "utest/test_client_api.py")
+               (delete-file "utest/test_scp.py")
+               (invoke "python" "utest/run.py")))))))
+    (propagated-inputs
+     (list python-robotframework python-paramiko python-scp))
+    (native-inputs
+     (list openssh
+           which
+           ;; To generate the documentation
+           python-docutils
+           python-invoke
+           python-pygments
+           python-rellu))
     (outputs '("out" "doc"))
     (home-page "https://github.com/robotframework/SSHLibrary")
     (synopsis "Robot Framework library for SSH and SFTP")
@@ -4469,6 +4657,88 @@ for SSH and SFTP.  It has the following main usages:
 @end itemize")
     (license license:asl2.0)))
 
+(define-public python-robotframework-pythonlibcore
+  (package
+    (name "python-robotframework-pythonlibcore")
+    (version "3.0.0")
+    (source
+     (origin
+       (method git-fetch)               ;no tests in pypi archive
+       (uri (git-reference
+             (url "https://github.com/robotframework/PythonLibCore")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0v89v8va65l6inh0fb34qgxawx6p29pnrmw4n5941yzdi3804rc4"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "utest/run.py")))))))
+    (native-inputs
+     (list python-pytest python-pytest-cov python-pytest-mockito
+           python-robotframework))
+    (home-page "https://github.com/robotframework/PythonLibCore")
+    (synopsis "Robot Framework Python library tools")
+    (description "PythonLibCore provides tools for creating larger test
+libraries for Robot Framework using Python.  The Robot Framework hybrid and
+dynamic library APIs give more flexibility for library than the static library
+API, but they also set requirements for libraries which need to be implemented
+in the library side.  PythonLibCore eases the problem by providing a simpler
+interface and by handling all the requirements towards the Robot Framework
+library APIs.")
+    (license license:asl2.0)))
+
+(define-public python-robotframework-seleniumlibrary
+  (package
+    (name "python-robotframework-seleniumlibrary")
+    (version "5.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "robotframework-seleniumlibrary" version))
+       (sha256
+        (base32 "1dihrbcid9i7daw2qy6h3xsvwaxzmyip820jw5z11n60qrl006pm"))))
+    (build-system python-build-system)
+    ;; XXX: Tests require ungoogled-chromium, but the chromium module would
+    ;; introduce a cycle if imported here.
+    (propagated-inputs
+     (list python-robotframework python-robotframework-pythonlibcore
+           python-selenium))
+    (home-page "https://github.com/robotframework/SeleniumLibrary")
+    (synopsis "Web testing library for Robot Framework")
+    (description "SeleniumLibrary is a web testing library for Robot Framework
+that utilizes the Selenium tool internally.")
+    (license license:asl2.0)))
+
+(define-public python-robotframework-seleniumscreenshots
+  (package
+    (name "python-robotframework-seleniumscreenshots")
+    (version "0.9.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "robotframework-seleniumscreenshots" version))
+       (sha256
+        (base32 "05qv323hvjmy62h33ryrjaa9k1hyvp8hq5qnj8j1x3ap2ci3q3s0"))))
+    (build-system python-build-system)
+    (arguments
+    ;; XXX: The tests require a relatively complicated setup configured in
+    ;; their CI with Nix (!).
+     `(#:tests? #f))
+    (propagated-inputs
+     (list python-robotframework python-robotframework-seleniumlibrary))
+    (home-page "https://github.com/MarketSquare/robotframework-seleniumscreenshots")
+    (synopsis "Robot Framework library for annotating and cropping screenshots")
+    (description "The SeleniumScreenshots library for Robot Framework provides
+keywords for annotating and cropping screenshots taken with SeleniumLibrary.
+It is useful for scripting automatically updated screenshots for documentation
+or for visual regression testing purposes.")
+    (license license:bsd-3)))
+
 (define-public python-rstr
   (package
    (name "python-rstr")
@@ -4503,7 +4773,7 @@ outside the standard library.")
     (arguments
      '(#:tests? #f))                     ;tests require an SSH server
     (propagated-inputs
-     `(("python-paramiko" ,python-paramiko)))
+     (list python-paramiko))
     (home-page "https://github.com/jbardin/scp.py")
     (synopsis "SCP protocol module for Python and Paramiko")
     (description "The scp module extends the Paramiko library to send and
@@ -4523,10 +4793,9 @@ receive files via the SCP1 protocol, as implemented by the OpenSSH
         (base32 "0pqsfqqx8h0pq21k8l3k62kznrgaj2ala93c64s4d9rpbr4mgkd2"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-six" ,python-six)))
+     (list python-dateutil python-six))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     ;; Test would require path.py, which would introduce a cyclic dependence.
     (arguments `(#:tests? #f))
     ;; Note: As of version 1.7 the documentation is not worth building.
@@ -4556,8 +4825,7 @@ augment the changelog, but it can be used for other documents, too.")
                 "1h4gwmcfn84kkqh83km1vfz8sc5kr2g4gzgzmr8gz704jmqiv7nq"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-ecdsa" ,python-ecdsa)))
+     (list python-cryptography python-ecdsa))
     (synopsis "OpenSSH public key parser")
     (description
      "This package provides a library for parsing and validating OpenSSH
@@ -4585,8 +4853,7 @@ public key files.")
            #t))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pytz" ,python-pytz)
-       ("python-six" ,python-six)))
+     (list python-pytz python-six))
     (home-page "https://github.com/getpelican/feedgenerator")
     (synopsis
      "Standalone version of Django's Atom/RSS feed generator")
@@ -4598,29 +4865,31 @@ which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
 (define-public python2-feedgenerator
   (package-with-python2 python-feedgenerator))
 
-(define-public python-jsonrpc-server
+(define-public python-lsp-jsonrpc
   (package
-    (name "python-jsonrpc-server")
-    (version "0.4.0")
+    (name "python-lsp-jsonrpc")
+    (version "1.0.0")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "python-jsonrpc-server" version))
+       (uri (pypi-uri "python-lsp-jsonrpc" version))
        (sha256
         (base32
-         "1585ybn3djvx5r5zbxkzlhz2wb1d47y4wrfwaxdyq0gi87jl7ib2"))))
+         "1gb0fsamxndhplx25v8m0b3k7aknzy454fpa0qsqsqnv6c3igv3v"))))
     (build-system python-build-system)
+    (native-inputs
+     (list python-mock python-pytest))
     (propagated-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-ujson" ,python-ujson)))
-    (home-page
-     "https://github.com/palantir/python-jsonrpc-server")
+     (list python-ujson))
+    (home-page "https://github.com/python-lsp/python-lsp-jsonrpc")
     (synopsis "JSON RPC 2.0 server library")
     (description
      "This package provides a JSON RPC 2.0 server library for Python.")
     (license license:expat)))
 
+(define-public python-jsonrpc-server
+  (deprecated-package "python-jsonrpc-server" python-lsp-jsonrpc))
+
 (define-public python-pydantic
   (package
     (name "python-pydantic")
@@ -4662,10 +4931,9 @@ which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
          (replace 'check
            (lambda _ (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-mock" ,python-pytest-mock)))
+     (list python-pytest python-pytest-mock))
     (propagated-inputs
-     `(("python-typing-extensions" ,python-typing-extensions)))
+     (list python-typing-extensions))
     (home-page "https://github.com/samuelcolvin/pydantic")
     (synopsis "Python data validation and settings management")
     (description
@@ -4686,8 +4954,7 @@ errors when data is invalid.")
          "1m1xv9clkg9lgzyza6dnj359z04vh5g0h49nhzghv7lg81gchhap"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-snowballstemmer" ,python-snowballstemmer)))
+     (list python-six python-snowballstemmer))
     (home-page
      "https://github.com/PyCQA/pydocstyle/")
     (synopsis "Python docstring style checker")
@@ -4696,68 +4963,65 @@ errors when data is invalid.")
 Server (PLS).")
     (license license:expat)))
 
-(define-public python-language-server
+(define-public python-lsp-server
   (package
-    (name "python-language-server")
-    (version "0.36.2")
+    (name "python-lsp-server")
+    (version "1.3.1")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "python-language-server" version))
+       (uri (pypi-uri "python-lsp-server" version))
        (sha256
         (base32
-         "1c0pnk2aibfhfaanrs0a5gkabkvz81gj20z7r0152b7fcx5ci14r"))))
+         "15075a5irjxh55wcdf25hllz9c42byxc4770cmwgb480k1dm8scq"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'relax-deps
-           (lambda _
-             (substitute* "setup.py" (("pycodestyle>=2.6.0,<2.7.0")
-                                      "pycodestyle"))
-             (substitute* "setup.py" (("pyflakes>=2.2.0,<2.3.0") "pyflakes"))
-             #t))
          (add-before 'check 'set-HOME
-           (lambda _ (setenv "HOME" "/tmp") #t))
+           (lambda _ (setenv "HOME" "/tmp")))
          (replace 'check
            (lambda _
              ;; Disable failing test.
              (invoke "python" "-m" "pytest" "-k"
                      "not test_pyqt_completion"))))))
     (propagated-inputs
-     `(("python-autopep8" ,python-autopep8)
-       ("python-configparser" ,python-configparser)
-       ("python-pydocstyle" ,python-pydocstyle)
-       ("python-flake8" ,python-flake8)
-       ("python-future" ,python-future)
-       ("python-jedi" ,python-jedi)
-       ("python-jsonrpc-server" ,python-jsonrpc-server)
-       ("python-pluggy" ,python-pluggy)
-       ("python-pycodestyle" ,python-pycodestyle)
-       ("python-pyflakes" ,python-pyflakes)
-       ("python-rope" ,python-rope)
-       ("python-ujson" ,python-ujson)
-       ("python-yapf" ,python-yapf)))
-    (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-flaky" ,python-flaky)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-mock" ,python-mock)
-       ("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-pylint" ,python-pylint)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-versioneer" ,python-versioneer)))
+     (list python-autopep8
+           python-configparser
+           python-pydocstyle
+           python-flake8
+           python-future
+           python-jedi
+           python-lsp-jsonrpc
+           python-pluggy
+           python-pycodestyle
+           python-pyflakes
+           python-rope
+           python-ujson
+           python-yapf))
+    (native-inputs
+     (list python-coverage
+           python-flaky
+           python-matplotlib
+           python-mock
+           python-numpy
+           python-pandas
+           python-pylint
+           python-pytest
+           python-pytest-cov
+           python-versioneer))
     (home-page "https://github.com/palantir/python-language-server")
     (synopsis "Python implementation of the Language Server Protocol")
     (description
-     "The Python Language Server (pyls) is an implementation of the Python 3
-language specification for the Language Server Protocol (LSP).  This tool is
-used in text editing environments to provide a complete and integrated
-feature-set for programming Python effectively.")
+"The Python Language Server @command{pylsp} is an implementation of the
+Python 3 language specification for the Language Server Protocol (LSP).
+This tool is used in text editing environments to provide a complete
+and integrated feature-set for programming Python effectively.")
     (license license:expat)))
 
+(define-public python-language-server
+  (deprecated-package "python-language-server" python-lsp-server))
+
 (define-public python-pathspec
   (package
     (name "python-pathspec")
@@ -4836,17 +5100,17 @@ matching of file paths.")
                (("\\s*\"blackd=blackd:patched_main \\[d\\]\",\n") "")
                 (("\"blackd\", ") "")))))))
     (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-attrs" ,python-attrs)
-       ("python-appdirs" ,python-appdirs)
-       ("python-pathspec" ,python-pathspec)
-       ("python-mypy-extensions" ,python-mypy-extensions)
-       ("python-regex" ,python-regex)
-       ("python-toml" ,python-toml)
-       ("python-typed-ast" ,python-typed-ast)
-       ("python-typing-extensions" ,python-typing-extensions)))
-    (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-click
+           python-attrs
+           python-appdirs
+           python-pathspec
+           python-mypy-extensions
+           python-regex
+           python-toml
+           python-typed-ast
+           python-typing-extensions))
+    (native-inputs
+     (list python-setuptools-scm))
     (home-page "https://github.com/ambv/black")
     (synopsis "The uncompromising code formatter")
     (description "Black is the uncompromising Python code formatter.")
@@ -4865,7 +5129,7 @@ matching of file paths.")
          "1drp5p697ni1xn5y2lbjpalgpkzy2i4cyxjj5pk4dxr0vk97dd7i"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-black" ,python-black)))
+     (list python-black))
     (home-page "https://github.com/wbolster/black-macchiato")
     (synopsis "Partial @code{python-black} formatting")
     (description
@@ -4898,27 +5162,29 @@ interested parties to subscribe to events, or \"signals\".")
 (define-public pelican
   (package
     (name "pelican")
-    (version "4.2.0")
+    (version "4.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pelican" version))
        (sha256
         (base32
-         "0mp7hjyhs38ag1hyfcy882g400z0babqi72pnli46dqijfhajzmy"))))
+         "0g1sbzlz5mfc70gwgnj3lz4kf4psdjl96n6ywklv8z817m1khxdd"))))
     (build-system python-build-system)
-    (propagated-inputs
-     `(("python-blinker" ,python-blinker)
-       ("python-dateutil" ,python-dateutil)
-       ("python-docutils" ,python-docutils)
-       ("python-feedgenerator" ,python-feedgenerator)
-       ("python-jinja2" ,python-jinja2)
-       ("python-markdown" ,python-markdown)
-       ("python-pygments" ,python-pygments)
-       ("python-pytz" ,python-pytz)
-       ("python-six" ,python-six)
-       ("python-unidecode" ,python-unidecode)))
-    (home-page "https://getpelican.com/")
+    (inputs
+     (list python-blinker
+           python-dateutil
+           ;; Ignoring `guix lint` warning as python-docutils is used to support
+           ;; reStructuredText processing at runtime.
+           python-docutils
+           python-feedgenerator
+           python-jinja2
+           python-markdown
+           python-pygments
+           python-pytz
+           python-rich
+           python-unidecode))
+    (home-page "https://blog.getpelican.com/")
     (arguments
      `(;; XXX Requires a lot more packages to do unit tests :P
        #:tests? #f))
@@ -4965,38 +5231,41 @@ provides additional functionality on the produced Mallard documents.")
 (define-public python-cython
   (package
     (name "python-cython")
-    (version "0.29.22")
+    (version "0.29.24")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Cython" version))
        (sha256
-        (base32 "01jl3544qwsi8lp6anbl55566xqkjd53x452i7m6gnfilv3q6syz"))))
+        (base32 "0hw4gs18rh4slij1fg252argxhraypld9apbqbl60230qc3lvw6d"))))
     (build-system python-build-system)
     ;; we need the full python package and not just the python-wrapper
     ;; because we need libpython3.3m.so
     (inputs
-     `(("python" ,python)))
+     (list python))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-before 'check 'set-HOME
            ;; some tests require access to "$HOME/.cython"
-           (lambda _ (setenv "HOME" "/tmp") #t))
+           (lambda _ (setenv "HOME" "/tmp")))
          (replace 'check
-           (lambda _
+           (lambda* (#:key tests? #:allow-other-keys)
              ;; Disable compiler optimizations to greatly reduce the running
              ;; time of the test suite.
              (setenv "CFLAGS" "-O0")
 
-             (invoke "python" "runtests.py" "-vv"
-                     "-j" (number->string (parallel-job-count))
-                     ;; XXX: On 32-bit architectures, running the parallel tests
-                     ;; fails on many-core systems, see
-                     ;; <https://github.com/cython/cython/issues/2807>.
-                     ,@(if (not (target-64bit?))
-                           '("-x" "run.parallel")
-                           '())))))))
+             (when tests?
+               (invoke "python" "runtests.py" "-vv"
+                       "-j" (number->string (parallel-job-count))
+                       ;; XXX: On 32-bit architectures, running the parallel tests
+                       ;; fails on many-core systems, see
+                       ;; <https://github.com/cython/cython/issues/2807>.
+                       ,@(if (not (target-64bit?))
+                             '("-x" "run.parallel")
+                             '())
+                       ;; This test fails when running on 24 cores.
+                       "-x" "cpp_stl_conversion")))))))
     (home-page "https://cython.org/")
     (synopsis "C extensions for Python")
     (description "Cython is an optimising static compiler for both the Python
@@ -5041,10 +5310,10 @@ writing C extensions for Python as easy as Python itself.")
 
 ;; NOTE: when upgrading numpy please make sure that python-pandas and
 ;; python-scipy still build, as these three packages are often used together.
-(define-public python-numpy
+(define-public python-numpy-next
   (package
     (name "python-numpy")
-    (version "1.17.3")
+    (version "1.21.3")
     (source
      (origin
        (method url-fetch)
@@ -5053,38 +5322,29 @@ writing C extensions for Python as easy as Python itself.")
              version "/numpy-" version ".tar.gz"))
        (sha256
         (base32
-         "1ak9dmjja0q90a7fsxli51ypcwssh8c4pb6f8wkrsnf2xgdk6dy9"))))
+         "0s6hy8828yr7fcjiwnym4l8lrknr21gqfkaiawsf86n0hd0a5fyh"))))
     (build-system python-build-system)
     (inputs
-     `(("openblas" ,openblas)))
+     (list openblas))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)
-       ("gfortran" ,gfortran)))
+     (list python-cython python-hypothesis python-pytest
+           python-pytest-xdist gfortran))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'build 'configure-blas-lapack
+         (add-before 'build 'configure-blas
            (lambda* (#:key inputs #:allow-other-keys)
              (call-with-output-file "site.cfg"
                (lambda (port)
                  (format port
-                         "[openblas]
+                         "\
+[openblas]
 libraries = openblas
 library_dirs = ~a/lib
 include_dirs = ~a/include
-
-# backslash-n to make emacs happy
-\n[lapack]
-lapack_libs = lapack
-library_dirs = ~a/lib
-include_dirs = ~a/include
 "
                          (assoc-ref inputs "openblas")
-                         (assoc-ref inputs "openblas")
-                         (assoc-ref inputs "lapack")
-                         (assoc-ref inputs "lapack"))))
-             #t))
+                         (assoc-ref inputs "openblas"))))))
          (add-before 'build 'fix-executable-paths
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Make /gnu/store/...-bash-.../bin/sh the default shell,
@@ -5095,21 +5355,17 @@ include_dirs = ~a/include
              ;; Use "gcc" executable, not "cc".
              (substitute* "numpy/distutils/system_info.py"
                (("c = distutils\\.ccompiler\\.new_compiler\\(\\)")
-                "c = distutils.ccompiler.new_compiler(); c.set_executables(compiler='gcc',compiler_so='gcc',linker_exe='gcc',linker_so='gcc -shared')"))
-             #t))
-         ;; Tests can only be run after the library has been installed and not
-         ;; within the source directory.
-         (delete 'check)
-         (add-after 'install 'check
-           (lambda* (#:key outputs inputs #:allow-other-keys)
-             ;; Make installed package available for running the tests
-             (add-installed-pythonpath inputs outputs)
-             ;; Make sure "f2py" etc is found.
-             (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
-                                           ":" (getenv "PATH")))
-             (with-directory-excursion "/tmp"
-               (invoke "python" "-c"
-                       "import numpy; numpy.test(verbose=2)")))))))
+                "c = distutils.ccompiler.new_compiler(); c.set_executables(compiler='gcc',compiler_so='gcc',linker_exe='gcc',linker_so='gcc -shared')"))))
+         (replace 'check
+           (lambda* (#:key tests? outputs inputs #:allow-other-keys)
+             (when tests?
+               ;; Make installed package available for running the tests.
+               (add-installed-pythonpath inputs outputs)
+               ;; Make sure "f2py" etc is found.
+               (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
+                                             ":" (getenv "PATH")))
+               (invoke "./runtests.py"
+                       "-j" (number->string (parallel-job-count)))))))))
     (home-page "https://numpy.org")
     (synopsis "Fundamental package for scientific computing with Python")
     (description "NumPy is the fundamental package for scientific computing
@@ -5123,7 +5379,7 @@ capabilities.")
 ;; 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))))
+                (strip-python2-variant python-numpy-next))))
     (package
       (inherit numpy)
       (version "1.16.5")
@@ -5134,7 +5390,40 @@ capabilities.")
                       version "/numpy-" version ".tar.gz"))
                 (sha256
                  (base32
-                  "0lg1cycxzi4rvvrd5zxinpdz0ni792fpx6xjd75z1923zcac8qrb")))))))
+                  "0lg1cycxzi4rvvrd5zxinpdz0ni792fpx6xjd75z1923zcac8qrb"))))
+      (arguments
+       (substitute-keyword-arguments (package-arguments numpy)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'unpack 'delete-failing-test
+               (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")))))))
+      (native-inputs
+       (list python2-cython python2-pytest gfortran)))))
+
+;; Needed by python-numba, see https://github.com/numba/numba/issues/7176
+(define-public python-numpy-1.20
+  (package
+    (inherit python-numpy-next)
+    (version "1.20.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/numpy/numpy/releases/download/v"
+                    version "/numpy-" version ".tar.gz"))
+              (sha256
+               (base32
+                "140zq9snx0di4id4g97vaw9zz8x2rfla5lp3a70j666f5030yd5p"))))
+    ;; 92 tests fail, many of them because parts of the temp file name
+    ;; accidentally ends up in a comparison.
+    (arguments
+     (substitute-keyword-arguments (package-arguments python-numpy-next)
+       ((#:tests? _ #t) #f)))))
+
+(define-public python-numpy python-numpy-1.20)
 
 ;; 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
@@ -5156,23 +5445,20 @@ capabilities.")
      (substitute-keyword-arguments (package-arguments python2-numpy)
        ((#:phases phases)
         `(modify-phases ,phases
-           (replace 'configure-blas-lapack
+           (replace 'configure-blas
              (lambda* (#:key inputs #:allow-other-keys)
                (call-with-output-file "site.cfg"
                  (lambda (port)
                    (format port
                            "[openblas]
-libraries = openblas,lapack
-library_dirs = ~a/lib:~a/lib
-include_dirs = ~a/include:~a/include
+libraries = openblas
+library_dirs = ~a/lib
+include_dirs = ~a/include
 "
                            (assoc-ref inputs "openblas")
-                           (assoc-ref inputs "lapack")
-                           (assoc-ref inputs "openblas")
-                           (assoc-ref inputs "lapack"))))
-               #t))))))
+                           (assoc-ref inputs "openblas"))))))))))
     (native-inputs
-     `(("python2-nose" ,python2-nose)))
+     (list python2-nose))
     (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++
@@ -5216,28 +5502,24 @@ objects.")
          "05qjycgxp3p2f9n6lmic68sxmsyvgnnlyl4z9w7dl9s56jphaiix"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-networkx" ,python-networkx)
-       ("python-numpy" ,python-numpy)))
+     (list python-networkx python-numpy))
     (home-page "https://github.com/gtaylor/python-colormath")
     (synopsis "Color math and conversion library")
     (description
      "This is a Python library for color math and conversions.")
     (license license:bsd-3)))
 
-(define-public python2-colormath
-  (package-with-python2 python-colormath))
-
 (define-public python-sparse
   (package
     (name "python-sparse")
-    (version "0.12.0")
+    (version "0.13.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "sparse" version))
        (sha256
         (base32
-         "05lmzckv69cvxavhdr36k803bgr5dl04cppglid1l880xswc759c"))))
+         "05ar1lhq1yy4nb78s7vpb1wz4ac4kj0r4lrd7yrf23kpmaacjpb8"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -5247,14 +5529,10 @@ objects.")
              (when tests?
                (invoke "python" "-m" "pytest" "-v")))))))
     (propagated-inputs
-     `(("python-numba" ,python-numba)
-       ("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)))
+     (list python-numba python-numpy python-scipy))
     (native-inputs
-     `(("python-dask" ,python-dask)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-black" ,python-pytest-black)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-dask python-pytest python-pytest-black
+           python-pytest-cov))
     (home-page "https://github.com/pydata/sparse/")
     (synopsis "Library for multi-dimensional sparse arrays")
     (description
@@ -5290,9 +5568,9 @@ depends on @code{scipy.sparse} for some computations.")
          (replace 'check
            (lambda _ (invoke "nosetests" "-v"))))))
     (propagated-inputs
-     `(("python-colormath" ,python-colormath)))
+     (list python-colormath))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/jsvine/spectra")
     (synopsis "Color scales and color conversion")
     (description
@@ -5309,9 +5587,6 @@ color scales, and color space conversion easy.  It has support for:
 @end enumerate\n")
     (license license:expat)))
 
-(define-public python2-spectra
-  (package-with-python2 python-spectra))
-
 (define-public python-pyspnego
   (package
     (name "python-pyspnego")
@@ -5334,12 +5609,9 @@ color scales, and color space conversion easy.  It has support for:
                       (when tests?
                         (invoke "pytest")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-mock" ,python-pytest-mock)))
+     (list python-pytest python-pytest-mock))
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-gssapi" ,python-gssapi)
-       ("python-ruamel.yaml" ,python-ruamel.yaml)))
+     (list python-cryptography python-gssapi python-ruamel.yaml))
     (home-page "https://github.com/jborean93/pyspnego")
     (synopsis "Python SPNEGO library")
     (description "The @code{pyspnego} Python library handles Negotiate, NTLM,
@@ -5463,22 +5735,20 @@ readable format.")
 (define-public python-pygit2
   (package
     (name "python-pygit2")
-    (version "1.6.0")
+    (version "1.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pygit2" version))
        (sha256
-        (base32 "0qjd5aqpmla64da4pb47vdnrmnqdbn7248a4fzs7f5q1ax7fmb3s"))))
+        (base32 "0p8n25bijirxh31cv99vd1mkdsvpcs6z6441wz1fqva3b2as5ynp"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f))            ; tests don't run correctly in our environment
     (propagated-inputs
-     `(("python-cached-property" ,python-cached-property)
-       ("python-cffi" ,python-cffi)
-       ("libgit2" ,libgit2)))
+     (list python-cached-property python-cffi libgit2))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/libgit2/pygit2")
     (synopsis "Python bindings for libgit2")
     (description "Pygit2 is a set of Python bindings to the libgit2 shared
@@ -5506,6 +5776,106 @@ algorithm.  Patiencediff provides a good balance of performance, nice output for
 humans, and implementation simplicity.")
     (license license:gpl2)))
 
+(define-public python-wmctrl
+  (package
+    (name "python-wmctrl")
+    (version "0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "wmctrl" version))
+       (sha256
+        (base32
+         "1q0l1sqnj5wma87k3dsgmsyph464syjc6fl8qcpa41nan1rgzjv6"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'patch-paths
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (let ((wmctrl (assoc-ref inputs "wmctrl")))
+                        (substitute* "wmctrl.py"
+                          (("'wmctrl")
+                           (string-append "'" wmctrl "/bin/wmctrl")))))))))
+    (inputs (list wmctrl))
+    (propagated-inputs (list python-attrs))
+    (home-page "https://github.com/antocuni/wmctrl")
+    (synopsis "Tool to programmatically control Xorg windows")
+    (description "This package provides a library for programmatically
+controlling Xorg windows using Python.  The library relies on the
+@command{wmctrl} to do so.")
+    (license license:expat)))
+
+(define-public python-fancycompleter
+  (package
+    (name "python-fancycompleter")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "fancycompleter" version))
+       (sha256
+        (base32 "0wkj4h01pxa8prv59zl09a0i3w26k835bfpjgvyvsai4mswgxq09"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'fix-setup.py
+                    (lambda _
+                      (substitute* "setup.py"
+                        ((".*setupmeta.*")
+                         "")
+                        (("versioning=.*")
+                         (string-append "version='" ,version "',"))
+                        ((".*pyrepl.*") ;broken on Python 3
+                         "")))))))
+    (home-page "https://github.com/pdbpp/fancycompleter")
+    (synopsis "TAB completion library for Python")
+    (description "@code{fancycompleter} is a module that adds TAB completion
+to the interactive prompt.  It is an extension of the @code{rlcompleter}
+module from the standard Python library.")
+    (license license:bsd-3)))
+
+(define-public python-pdbpp
+  (package
+    (name "python-pdbpp")
+    (version "0.10.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pdbpp" version))
+       (sha256
+        (base32
+         "1xb9yvi30rb1cdpvfdk2kg79vh3anvkz91r8bwvfp3iqv97kzr6r"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest"
+                       "-k"
+                       (string-append
+                        ;; These tests seem to require a real TTY.
+                        "not interaction_restores_previous_sigint_handler "
+                        "and not python_m_pdb_uses_pdbpp"))))))))
+    (propagated-inputs
+     (list python-fancycompleter python-pygments python-wmctrl))
+    (native-inputs
+     (list python-pytest python-setuptools-scm))
+    (home-page "https://github.com/pdbpp/pdbpp")
+    (synopsis "Drop-in replacement for pdb")
+    (description "Pdb++ is a drop-in replacement for @code{pdb}.  It
+includes the following improvements compared to @code{pdb}:
+@itemize
+@item auto-completion
+@item syntax highlighting of code listings
+@item sticky mode
+@item new commands to be used from the interactive (Pdb++) prompt
+@item smart command parsing
+@item additional convenience functions in the @code{pdb} module.
+@end itemize")
+    (license license:bsd-3)))
+
 (define-public python-pdftotext
   (package
     (name "python-pdftotext")
@@ -5518,83 +5888,115 @@ humans, and implementation simplicity.")
         (base32 "1555wbgr5spj8xflrs4mwsrdmba2f9s72nk50xzqk9ghxaxdvy6a"))))
     (build-system python-build-system)
     (inputs
-     `(("poppler" ,poppler)))
+     (list poppler))
     (home-page "https://github.com/jalan/pdftotext")
     (synopsis "Simple PDF text extraction")
     (description "Pdftotext is a Python library of PDF text extraction.")
     (license license:expat)))
 
-(define-public python-pyparsing
+(define-public python-pluginbase
   (package
-    (name "python-pyparsing")
-    (version "2.4.6")
+    (name "python-pluginbase")
+    (version "1.0.1")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "pyparsing" version))
+       (uri (pypi-uri "pluginbase" version))
        (sha256
-        (base32 "17wn5zlijc9m9zj26gy3f541y7smpj8rfhl51d025c2gm210b0sc"))))
+        (base32
+         "11z2vvbp13828y0x3w39f29p9r9xcix7h7c4fff2w8yfiylk6v7z"))))
     (build-system python-build-system)
-    (outputs '("out" "doc"))
     (arguments
-     `(#:tests? #f ; no test target
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'install-doc
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((doc (string-append (assoc-ref outputs "doc")
-                                        "/share/doc/" ,name "-" ,version))
-                    (html-doc (string-append doc "/html"))
-                    (examples (string-append doc "/examples")))
-               (mkdir-p html-doc)
-               (mkdir-p examples)
-               (for-each
-                (lambda (dir tgt)
-                  (map (lambda (file)
-                         (install-file file tgt))
-                       (find-files dir ".*")))
-                (list "docs" "htmldoc" "examples")
-                (list doc html-doc examples))
-               #t))))))
-    (home-page "https://github.com/pyparsing/pyparsing")
-    (synopsis "Python parsing class library")
-    (description
-     "The pyparsing module is an alternative approach to creating and
-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)))
-
-(define-public python2-pyparsing
-  (package-with-python2 python-pyparsing))
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "make" "test")))))))
+    (native-inputs (list python-pytest))
+    (home-page "https://github.com/mitsuhiko/pluginbase")
+    (synopsis "Simple but flexible plugin system for Python")
+    (description "PluginBase is a library useful in the development of
+flexible plugin systems in Python.")
+    (license license:bsd-3)))
 
-(define-public python-pyparsing-2.4.7
+(define-public python-node-semver
   (package
-    (inherit python-pyparsing)
-    (version "2.4.7")
+    (name "python-node-semver")
+    (version "0.8.1")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "pyparsing" version))
+       (uri (pypi-uri "node-semver" version))
        (sha256
-        (base32 "1hgc8qrbq1ymxbwfbjghv01fm3fbpjwpjwi0bcailxxzhf3yq0y2"))))))
+        (base32
+         "000ypfns5x72b41w5f9pk6k3jnr35scliqfbvmilyvv0178005i8"))))
+    (build-system python-build-system)
+    (native-inputs
+     (list python-pytest))
+    (home-page "https://github.com/podhmo/python-node-semver")
+    (synopsis "Python port of node-semver")
+    (description "This module provides a Python version of node-semver, a
+semantic version parser for Node.js.")
+    (license license:expat)))
+
+(define-public python-patch-ng
+  (package
+    (name "python-patch-ng")
+    (version "1.17.4")
+    (source
+     (origin
+       (method git-fetch)               ;no tests in PyPI archive
+       (uri (git-reference
+             (url "https://github.com/conan-io/python-patch-ng")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0qxn4ss2s54qy87xrpcybz26kp2fwlaq41x4k9jcmp6d7p0w569m"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "tests/run_tests.py" "-v")))))))
+    (home-page "https://github.com/conan-io/python-patch-ng")
+    (synopsis "Python library to parse and apply unified diffs")
+    (description "Patch NG (New Generation) is a command and Python library to
+parse and apply unified diffs.  It has features such as:
+@itemize
+@item automatic correction of common patch formatting corruption
+@item patch format detection (SVN, Hg, Git)
+@item nice diffstat histogram.
+@end itemize")
+    (license license:expat)))
 
 (define-public python-numpydoc
   (package
     (name "python-numpydoc")
-    (version "0.8.0")
+    (version "1.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "numpydoc" version))
        (sha256
         (base32
-         "1zazxg3m8j4fksv3f7v7vpf4bj9qb1vj3r326am0vdip141vzx31"))))
+         "13j4fvy2p7lc8sn00sxvs0jb19vicaznfgx4cphv9jgxgz5xcvy3"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "-v" "numpydoc/tests"
+                       ;; TODO: unclear why these fail.
+                       "-k" "not test_MyClass and not test_my_function")))))))
     (propagated-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     (list python-sphinx))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-matplotlib python-pytest python-pytest-cov))
     (home-page "https://pypi.org/project/numpydoc/")
     (synopsis
      "Numpy's Sphinx extensions")
@@ -5607,6 +6009,15 @@ that client code uses to construct the grammar directly in Python code.")
   (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))))))
@@ -5625,7 +6036,7 @@ that client code uses to construct the grammar directly in Python code.")
     (build-system python-build-system)
     (arguments `(#:tests? #f))          ; no tests included
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (home-page "https://github.com/pydata/numexpr")
     (synopsis "Fast numerical expression evaluator for NumPy")
     (description
@@ -5656,7 +6067,7 @@ transcendental functions).")
      ;; Enable this for the next release which uses 'python-pytest'.
      '(#:tests? #f))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://matplotlib.org/cycler/")
     (synopsis "Composable keyword argument iterator")
     (description
@@ -5685,9 +6096,9 @@ To address this and enable easy cycling over arbitrary @code{kwargs}, the
         (base32 "0x7nkphr6g5ql5fvgss8l56rgiyjgh6fm8zzs73i94ci9wzlm63w"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -5703,6 +6114,44 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
 (define-public python2-colorspacious
   (package-with-python2 python-colorspacious))
 
+(define-public python-proto-matcher
+  (package
+    (name "python-proto-matcher")
+    (version "0.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "proto_matcher" version))
+       (sha256
+        (base32 "1644x0hrl398ji3281n44ymfgc3cspzfagjckhqjn4nja5nlikxg"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))                    ;no test suite
+    (propagated-inputs
+     (list python-protobuf python-pyhamcrest))
+    (home-page "https://github.com/dayfine/proto-matcher")
+    (synopsis "PyHamcrest test matchers for protocol buffers")
+    (description "This package provides the following PyHamcrest test
+matchers, that enable matching a protocol buffer message:
+@table @code
+@item equals_proto
+Test the argument equals the given protobuf message.
+@item approximately
+Test the argument equals the given protobuf message, while comparing any float
+field using approximation.
+@item ignoring_field_paths
+Test the argument equals the given protobuf message, while ignoring those
+fields specified in the field paths.
+@item ignoring_repeated_field_ordering
+Test the argument equals the given protobuf message, ignoring the ordering of
+any repeated field.
+@item partially
+Test the argument partially equals the given protobuf message, i.e. if a field
+is in the argument but not in the expected message, it's ignored in the
+comparison.
+@end table")
+    (license license:asl2.0)))
+
 (define-public python-matplotlib
   (package
     (name "python-matplotlib")
@@ -5734,15 +6183,15 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
        ("python-pycairo" ,python-pycairo)
        ("python-cairocffi" ,python-cairocffi)))
     (inputs
-     `(("libpng" ,libpng)
-       ("freetype" ,freetype)
-       ("qhull" ,qhull)
-       ("cairo" ,cairo)
-       ("glib" ,glib)
-       ;; FIXME: Add backends when available.
-       ;("python-wxpython" ,python-wxpython)
-       ("tcl" ,tcl)
-       ("tk" ,tk)))
+     (list libpng
+           freetype
+           qhull
+           cairo
+           glib
+           ;; FIXME: Add backends when available.
+           ;("python-wxpython" ,python-wxpython)
+           tcl
+           tk))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("python-pytest" ,python-pytest)
@@ -5869,8 +6318,15 @@ toolkits.")
                    (mkdir-p dir)
                    (invoke "unzip"
                            (assoc-ref inputs "jquery-ui")
-                           "-d" dir))
-                 #t))
+                           "-d" dir))))
+             ;; Without this file mpl_toolkits cannot be imported.
+             (add-after 'install 'create-init-file
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (with-output-to-file
+                     (string-append
+                      (assoc-ref outputs "out")
+                      "/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.
       ;; Make sure to use special packages for Python 2 instead
@@ -5985,8 +6441,7 @@ toolkits.")
         (base32 "1vilzwj3xp00mxprmmn1hlafm3p23vn56s46kx3ra4qd5signjx0"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-matplotlib" ,python-matplotlib)
-       ("python-traitlets" ,python-traitlets)))
+     (list python-matplotlib python-traitlets))
     (arguments
      ;; Tests disabled because of a circular dependency with ipython.
      `(#:tests? #f))
@@ -6011,11 +6466,9 @@ Jupyter.")
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; tests are not included
     (propagated-inputs
-     `(("python-matplotlib" ,python-matplotlib)
-       ("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)))
+     (list python-matplotlib python-numpy python-scipy))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://github.com/konstantint/matplotlib-venn")
     (synopsis "Plot area-proportional Venn diagrams")
     (description
@@ -6047,14 +6500,14 @@ three-way Venn diagrams in @code{matplotlib}.")
                    (invoke "python3" "pysnptools/test.py"))
                  #t))))))
     (propagated-inputs
-     `(("python-dill" ,python-dill)
-       ("python-h5py" ,python-h5py)
-       ("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-psutil" ,python-psutil)
-       ("python-scipy" ,python-scipy)))
+     (list python-dill
+           python-h5py
+           python-numpy
+           python-pandas
+           python-psutil
+           python-scipy))
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (home-page "http://microsoftgenomics.github.io/PySnpTools/")
     (synopsis "Library for reading and manipulating genetic data")
     (description
@@ -6079,9 +6532,9 @@ operators such as union, intersection, and difference.")
         (base32 "0p8n2ljdacfixkiw092974dmhy4s1c0h032ii1z9kwi9h5h5rgmy"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (home-page "https://github.com/storpipfugl/pykdtree")
     (synopsis "Fast kd-tree implementation with OpenMP-enabled queries")
     (description
@@ -6107,8 +6560,7 @@ search in Python.")
            (lambda _
              (invoke "pytest" "-vv" "test.py"))))))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-mock python-pytest))
     (home-page "https://github.com/minrk/wurlitzer")
     (synopsis "Capture C-level output in context managers")
     (description
@@ -6190,7 +6642,7 @@ a simple netcat replacement with chaining support.")
            (lambda _
              (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://pycodestyle.readthedocs.io/")
     (synopsis "Python style guide checker")
     (description "@code{pycodestyle} (formerly pep8) is a tool to check
@@ -6232,8 +6684,7 @@ Python code against some of the style conventions in
                           (invoke "pytest" "-vv")
                           (format #t "test suite not run~%")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-pytest python-pytest-cov))
     (home-page "https://github.com/aio-libs/multidict/")
     (synopsis "Multidict implementation")
     (description "Multidict is dict-like collection of key-value pairs
@@ -6243,29 +6694,19 @@ where key might be occurred more than once in the container.")
 (define-public python-orderedmultidict
   (package
     (name "python-orderedmultidict")
-    (version "1.0")
+    (version "1.0.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "orderedmultidict" version))
         (sha256
           (base32
-            "1idjbl933avgaadscrjw1np3xkvnz3phq0l8vw5qs0rqcjx9b65q"))))
+            "1bc2v0yflsxjyyjx4q9wqx0j3bvzcw9z87d5pz4iqac7bsxhn1q4"))))
     (build-system python-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-tests
-           (lambda _
-             ;; The package uses nosetest for running the tests.
-             ;; Adding this initfile allows to run the test suite
-             ;; without requiring nosetest.
-             (with-output-to-file "tests/__init__.py" newline)
-             #t)))))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (native-inputs
-     `(("python-pycodestyle" ,python-pycodestyle)))
+     (list python-flake8 python-pycodestyle))
     (home-page "https://github.com/gruns/orderedmultidict")
     (synopsis "Python Ordered Multivalue Dictionary - omdict")
     (description "This package contains a library for ordered multivalue
@@ -6274,9 +6715,6 @@ multiple values for the same key.  An ordered multivalue dictionary is a
 multivalue dictionary that retains the order of insertions and deletions.")
     (license license:unlicense)))
 
-(define-public python2-orderedmultidict
-  (package-with-python2 python-orderedmultidict))
-
 (define-public python-autopep8
   (package
     (name "python-autopep8")
@@ -6290,8 +6728,7 @@ multivalue dictionary that retains the order of insertions and deletions.")
          "1w6vh627vrmgfbvrdcxrc3k4gxcldrb2lpgxv9irkdds851qrzb0"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pycodestyle" ,python-pycodestyle)
-       ("python-toml" ,python-toml)))
+     (list python-pycodestyle python-toml))
     (home-page "https://github.com/hhatto/autopep8")
     (synopsis "Format Python code according to the PEP 8 style guide")
     (description
@@ -6332,7 +6769,7 @@ by pycodestyle.")
              ;; NOTE: Any value works, the variable just has to be present.
              (setenv "SKIP_ONLINE" "1")
              #t)))))
-    (native-inputs `(("unzip" ,unzip)))
+    (native-inputs (list unzip))
     (home-page "https://bitbucket.org/pypa/distlib")
     (synopsis "Distribution utilities")
     (description "Distlib is a library which implements low-level functions that
@@ -6432,17 +6869,16 @@ the OleFileIO module from PIL, the Python Image Library.")
     (arguments
      `(#:tests? #false))                ;require python-xmp-toolkit
     (native-inputs
-     `(("pybind11" ,pybind11)
-       ("python-setuptools" ,python-setuptools)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-setuptools-scm-git-archive" ,python-setuptools-scm-git-archive)
-       ("python-toml" ,python-toml)
-       ("python-wheel" ,python-wheel)))
+     (list pybind11
+           python-setuptools
+           python-setuptools-scm
+           python-setuptools-scm-git-archive
+           python-toml
+           python-wheel))
     (inputs
-     `(("qpdf" ,qpdf)))
+     (list qpdf))
     (propagated-inputs
-     `(("python-lxml" ,python-lxml)
-       ("python-pillow" ,python-pillow)))
+     (list python-lxml python-pillow))
     (home-page "https://github.com/pikepdf/pikepdf")
     (synopsis "Read and write PDFs with Python")
     (description
@@ -6462,7 +6898,7 @@ the OleFileIO module from PIL, the Python Image Library.")
          "086g7nhv52wclrwnzbzs2x3nvyzs2hfq1bvgivsrp5f7r7wiiz7n"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (inputs
      `(("freetype" ,freetype)
        ("lcms"     ,lcms)
@@ -6472,7 +6908,7 @@ the OleFileIO module from PIL, the Python Image Library.")
        ("openjpeg" ,openjpeg)
        ("zlib"     ,zlib)))
     (propagated-inputs
-     `(("python-olefile" ,python-olefile)))
+     (list python-olefile))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -6563,9 +6999,8 @@ a general image processing tool.")
                (for-each make-file-writable (find-files "Tests"))
                #t))))))
     (inputs
-     `(("libraqm" ,libraqm)
-       ("libimagequant" ,libimagequant)
-       ,@(package-inputs python-pillow)))
+     (modify-inputs (package-inputs python-pillow)
+       (prepend libraqm libimagequant)))
     (home-page "https://github.com/uploadcare/pillow-simd")
     (synopsis "Fork of the Python Imaging Library (Pillow)")
     (description "This package is a fork of Pillow which adds support for SIMD
@@ -6622,28 +7057,28 @@ def customize_build(EXTENSIONS, OPTIONS):
 ")))
              #t)))))
     (inputs
-      `(("c-blosc" ,c-blosc)
-        ("giflib" ,giflib)
-        ("google-brotli" ,google-brotli)
-        ("libjpeg-turbo" ,libjpeg-turbo)
-        ("libpng" ,libpng)
-        ("libtiff" ,libtiff)
-        ("libwebp" ,libwebp)
-        ("lz4" ,lz4)
-        ("snappy" ,snappy)
-        ("xz" ,xz)
-        ("zlib" ,zlib)
-        ("zstd" ,zstd "lib")))
-    (propagated-inputs
-      `(("python-numpy" ,python-numpy)))
+      (list c-blosc
+            giflib
+            brotli
+            libjpeg-turbo
+            libpng
+            libtiff
+            libwebp
+            lz4
+            snappy
+            xz
+            zlib
+            `(,zstd "lib")))
+    (propagated-inputs
+      (list python-numpy))
     (native-inputs
       ;; For building.
-      `(("python-cython" ,python-cython)
-        ;; For testing. Incomplete.
-        ;("python-numcodecs" ,python-numcodecs)
-        ;("python-zarr" ,python-zarr)
-        ;("python-pytest" ,python-pytest)
-        ))
+      (list python-cython
+            ;; For testing. Incomplete.
+            ;("python-numcodecs" ,python-numcodecs)
+            ;("python-zarr" ,python-zarr)
+            ;("python-pytest" ,python-pytest)
+            ))
     (home-page "https://www.lfd.uci.edu/~gohlke/")
     (synopsis
       "Image transformation, compression, and decompression codecs")
@@ -6667,7 +7102,7 @@ tifffile, czifile, and other scientific image input/output modules.")
     (build-system python-build-system)
     (arguments `(#:tests? #f)) ; there are none
     (propagated-inputs
-      `(("python-numpy" ,python-numpy)))
+      (list python-numpy))
     (home-page "https://www.lfd.uci.edu/~gohlke/")
     (synopsis "Read and write ImageJ ROI format")
     (description "Roifile is a Python library to read, write, create, and plot
@@ -6690,8 +7125,7 @@ regions of interest, geometric shapes, paths, text, etc for image overlays.")
     ;; Tests require lfdfiles, which depends on tifffile
     (arguments `(#:tests? #f))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-imagecodecs" ,python-imagecodecs)))
+     (list python-numpy python-imagecodecs))
     (home-page "https://www.lfd.uci.edu/~gohlke/")
     (synopsis "Read and write TIFF(r) files")
     (description "This package lets you read image and metadata from many
@@ -6721,10 +7155,8 @@ numpy arrays to TIFF, BigTIFF, and ImageJ hyperstack compatible files.")
     (arguments
      `(#:tests? #f)) ; No tests exist, despite a test dependency on pytest.
     (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-numpy" ,python-numpy)
-       ("python-tifffile" ,python-tifffile)))
-    (native-inputs `(("python-cython" ,python-cython)))
+     (list python-click python-numpy python-tifffile))
+    (native-inputs (list python-cython))
     (home-page "https://www.lfd.uci.edu/~gohlke/")
     (synopsis "Work with LFD data files")
     (description
@@ -6758,11 +7190,9 @@ experimental data and metadata at the Laboratory for Fluorescence Dynamics.")
                    (invoke "pytest" "-vv"))
                  #t))))))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-pillow" ,python-pillow)
-       ("python-psutil" ,python-psutil)))
+     (list python-numpy python-pillow python-psutil))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://imageio.github.io/")
     (synopsis "Library for reading and writing a wide range of image data")
     (description
@@ -6785,7 +7215,7 @@ data, and scientific formats.")
     (outputs '("out" "doc"))
     (build-system python-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -6867,10 +7297,10 @@ formulas and hyperlinks to multiple worksheets in an Excel 2007+ XLSX file.")
                (with-directory-excursion (string-append cwd "/build/" libdir)
                  (invoke "pytest" "-vv"))))))))
     (native-inputs
-     `(("python-matplotlib" ,python-matplotlib)          ;for tests
-       ("python-pytest" ,python-pytest)))
+     (list python-matplotlib ;for tests
+           python-pytest))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (synopsis "Wavelet transforms in Python")
     (description
      "PyWavelets is a library for wavelet transforms in Python.  Wavelets are
@@ -6903,7 +7333,7 @@ localized only in frequency instead of in time and frequency.")
              (setenv "HOME" "/tmp")
              #t)))))
     (inputs
-     `(("imagemagick" ,imagemagick)))
+     (list imagemagick))
     (home-page "https://github.com/dylanaraps/pywal")
     (synopsis "Color palette generator and applicator")
     (description
@@ -6925,13 +7355,10 @@ your favourite programs.")
          "10gabhhg3rgacd5ahmi2r128z99fzbrbx6mz1nnq0dxmhmn5rpjf"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-requests_ntlm" ,python-requests_ntlm)
-       ("python-xmltodict" ,python-xmltodict)
-       ("python-kerberos" ,python-kerberos)))
+     (list python-six python-requests_ntlm python-xmltodict
+           python-kerberos))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-mock python-pytest))
     (home-page "https://github.com/diyan/pywinrm/")
     (synopsis
      "Python library for Windows Remote Management (WinRM)")
@@ -6944,20 +7371,20 @@ any machine that can run Python.")
 (define-public python-xcffib
   (package
     (name "python-xcffib")
-    (version "0.6.0")
+    (version "0.11.1")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "xcffib" version))
       (sha256
        (base32
-        "04k91yxyb3pgc5lvxmivh8w71yjrap2g57yk3s73x4rm4nvjq51n"))))
+        "0nkglsm9nbhv238iagmmsjcz6lf1yfdvp5kmspphdj385vz9r50j"))))
     (build-system python-build-system)
     (inputs
-     `(("libxcb" ,libxcb)))
+     (list libxcb))
     (propagated-inputs
-     `(("python-cffi" ,python-cffi) ; used at run time
-       ("python-six" ,python-six)))
+     (list python-cffi ; used at run time
+           python-six))
     (arguments
      `(;; FIXME: Tests need more work. See ".travis.yml" in the repository.
        #:tests? #f
@@ -6967,7 +7394,8 @@ any machine that can run Python.")
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((libxcb (assoc-ref inputs "libxcb")))
                (substitute* '("xcffib/__init__.py")
-                 (("^soname = \"") (string-append "soname = \"" libxcb "/lib/")))
+                 (("soname = ctypes.util.find_library.*xcb.*")
+                  (string-append "soname = \"" libxcb "/lib/libxcb.so\"\n")))
                #t)))
          (add-after 'install 'install-doc
            (lambda* (#:key outputs #:allow-other-keys)
@@ -7005,19 +7433,16 @@ support for Python 3 and PyPy.  It is based on cffi.")
     (build-system python-build-system)
     (outputs '("out" "doc"))
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("cairo" ,cairo)))
+     (list glib gtk+ gdk-pixbuf cairo))
     (native-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-sphinx" ,python-sphinx)
-       ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)))
+     (list python-numpy
+           python-pytest
+           python-pytest-cov
+           python-pytest-runner
+           python-sphinx
+           python-sphinx-rtd-theme))
     (propagated-inputs
-     `(("python-xcffib" ,python-xcffib))) ; used at run time
+     (list python-xcffib)) ; used at run time
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -7093,10 +7518,21 @@ 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)))
+    (license license:expat)
+    (properties `((python2-variant . ,(delay python2-decorator))))))
 
+;; Version 5 does not support Python 2
 (define-public python2-decorator
-  (package-with-python2 python-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
@@ -7114,7 +7550,7 @@ etc.  The core of this module is a decorator factory.")
     ;; should be set to the path of the libdrmaa library.
     (arguments '(#:tests? #f))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://pypi.org/project/drmaa/")
     (synopsis "Python bindings for the DRMAA library")
     (description
@@ -7141,9 +7577,7 @@ Python language binding specification.")
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; Test file 'grako.ebnf' is missing from archive.
     (native-inputs
-     `(("unzip" ,unzip)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list unzip python-pytest python-pytest-runner))
     (home-page "https://bitbucket.org/neogeny/grako")
     (synopsis "EBNF parser generator")
     (description
@@ -7177,11 +7611,9 @@ memoizing PEG/Packrat parser in Python.")
            (lambda _
              (invoke "python" "setup.py" "pytest"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest python-pytest-runner))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-ply" ,python-ply)))
+     (list python-numpy python-ply))
     (home-page "https://github.com/bdcht/grandalf")
     (synopsis "Graph and drawing algorithms framework")
     (description
@@ -7226,9 +7658,7 @@ you to actually draw things with your favorite toolkit.")
     (arguments
      '(#:tests? #f)) ; FIXME: Requires python-cherrypy.
     (propagated-inputs
-     `(("python-psutil" ,python-psutil)
-       ("python-drmaa" ,python-drmaa)
-       ("python-pyzmq" ,python-pyzmq)))
+     (list python-psutil python-drmaa python-pyzmq))
     (home-page "https://github.com/pygridtools/gridmap")
     (synopsis "Create jobs on a cluster directly from Python")
     (description
@@ -7252,12 +7682,9 @@ cluster without needing to write any wrapper code yourself.")
         (base32 "11bd87474qpif20xdcn0ra1idj5k16ka51i658wfpxwc6nzsn92b"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-mock" ,python-mock)
-       ("python-tox" ,python-tox)
-       ("which" ,which))) ;for tests
+     (list python-pytest python-mock python-tox which)) ;for tests
     (propagated-inputs
-     `(("python-jinja2" ,python-jinja2)))
+     (list python-jinja2))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -7293,7 +7720,7 @@ displayed.")
         (base32 "16siqc3brbk7dp4d9sg48bjl6a8wyy24aib3il1hf4y2624draxh"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -7345,7 +7772,7 @@ wraps Python's standard library threading and multiprocessing objects.")
        ("which" ,which)
        ("bash-full" ,bash)))                 ;full Bash for 'test_replwrap.py'
     (propagated-inputs
-     `(("python-ptyprocess" ,python-ptyprocess)))
+     (list python-ptyprocess))
     (home-page "http://pexpect.readthedocs.org/")
     (synopsis "Controlling interactive console applications")
     (description
@@ -7361,24 +7788,37 @@ child application and control it as if a human were typing commands.")
 (define-public python-setuptools-scm
   (package
     (name "python-setuptools-scm")
-    (version "5.0.1")
+    (version "6.3.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "setuptools_scm" version))
               (sha256
-               (base32
-                "0ahlrxxkx2xhmxskx57gc96w3bdndflxx30304ihvm7ds136nny8"))))
+               (base32 "1wm0i27siyy1yqr9rv7lqvb65agay9051yi8jzmi8dgb3q4ai6m4"))))
     (build-system python-build-system)
+    (propagated-inputs
+     `(("python-packaging",python-packaging-bootstrap)
+       ("python-tomli" ,python-tomli)))
     (home-page "https://github.com/pypa/setuptools_scm/")
     (synopsis "Manage Python package versions in SCM metadata")
     (description
      "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)))
+    (license license:expat)
+    (properties `((python2-variant . ,(delay python2-setuptools-scm))))))
 
 (define-public python2-setuptools-scm
-  (package-with-python2 python-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 '()))))
 
 (define-public python-sexpdata
   (package
@@ -7402,18 +7842,17 @@ functions like pickle, json or PyYAML module.")
 (define-public python-pathlib2
   (package
     (name "python-pathlib2")
-    (version "2.3.3")
+    (version "2.3.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pathlib2" version))
        (sha256
         (base32
-         "0hpp92vqqgcd8h92msm9slv161b1q160igjwnkf2ag6cx0c96695"))))
+         "0psyg60vk8wca473djrh0v9gb853z8wcawi8im5dyg00amawp2vx"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-scandir" ,python-scandir)
-       ("python-six" ,python-six)))
+     (list python-scandir python-six))
     (home-page "https://pypi.org/project/pathlib2/")
     (synopsis "Object-oriented file system paths")
     (description "The goal of pathlib2 is to provide a backport of the
@@ -7435,8 +7874,7 @@ older Python versions.")
           "1hq626mx5jl9zfl0wdrjkxsnh8qd98fqv322n68b9251xjk4bxqr"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-toml" ,python-toml)))
+     (list python-setuptools-scm python-toml))
     (home-page "http://importlib-resources.readthedocs.io/")
     (synopsis "Read resources from Python packages")
     (description
@@ -7469,8 +7907,7 @@ older Python versions.")
                          ""))
                       #t)))))
     (propagated-inputs
-     `(("python-pathlib2" ,python2-pathlib2)
-       ("python-typing" ,python2-typing)))
+     (list python2-pathlib2 python2-typing))
     (home-page "https://gitlab.com/python-devs/importlib_resources")
     (synopsis "Backport of @code{importlib.resources} from Python 3.7")
     (description
@@ -7501,11 +7938,9 @@ for older versions of Python.")
          "00ikdj4gjhankdljnz7g5ggak4k9lql2926x0x117ir9j2lv7x86"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-zipp" ,python-zipp)))
+     (list python-zipp))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-pyfakefs" ,python-pyfakefs)
-       ("python-packaging" ,python-packaging)))
+     (list python-setuptools-scm python-pyfakefs python-packaging))
     (home-page "https://importlib-metadata.readthedocs.io/")
     (synopsis "Read metadata from Python packages")
     (description
@@ -7604,14 +8039,14 @@ finding unresolved symbols in Python code and their corresponding imports.")
             "0zimrnkh33b9g8ffw11mjh6kvs54cy5gcjw1h5cl1r7dc833dmkm"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-checkdocs" ,python-pytest-checkdocs)
-       ("python-pytest-flake8" ,python-pytest-flake8)
-       ("python-rst.linker" ,python-rst.linker)
-       ("python-setuptools" ,python-setuptools)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-six" ,python-six)
-       ("python-sphinx" ,python-sphinx)))
+     (list python-pytest
+           python-pytest-checkdocs
+           python-pytest-flake8
+           python-rst.linker
+           python-setuptools
+           python-setuptools-scm
+           python-six
+           python-sphinx))
     (home-page "https://github.com/jaraco/jaraco.packaging")
     (synopsis "Tools to supplement packaging Python releases")
     (description
@@ -7632,15 +8067,14 @@ releases.")
     (outputs '("out" "doc"))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-appdirs" ,python-appdirs)
-       ("python-importlib-metadata" ,python-importlib-metadata)))
+     (list python-appdirs python-importlib-metadata))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-sphinx" ,python-sphinx)
-       ("python-rst.linker" ,python-rst.linker)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-jaraco-packaging" ,python-jaraco-packaging)))
+     (list python-setuptools-scm
+           python-sphinx
+           python-rst.linker
+           python-pytest
+           python-pytest-runner
+           python-jaraco-packaging))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -7683,7 +8117,7 @@ common operations on files to be invoked on those path objects directly.")
         (base32 "0wwi1c6md4vkbcsfsf8dklf3vr4mcdj4mpxkanwgb6jb1432x5yw"))))
     (build-system python-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "http://cheeseshop.python.org/pypi/simplegeneric")
     (synopsis "Python module for simple generic functions")
     (description
@@ -7747,22 +8181,22 @@ away.")
              (setenv "HOME" (getcwd))
              #t)))))
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-decorator" ,python-decorator)
-       ("python-ipykernel" ,python-ipykernel)
-       ("python-ipython" ,python-ipython)
-       ("python-ipython-genutils" ,python-ipython-genutils)
-       ("python-jupyter-client" ,python-jupyter-client)
-       ("python-pyzmq" ,python-pyzmq)
-       ("python-tornado" ,python-tornado)
-       ("python-traitlets" ,python-traitlets)))
-    (native-inputs
-     `(("python-ipython" ,python-ipython)
-       ("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-testpath" ,python-testpath)))
+     (list python-dateutil
+           python-decorator
+           python-ipykernel
+           python-ipython
+           python-ipython-genutils
+           python-jupyter-client
+           python-pyzmq
+           python-tornado
+           python-traitlets))
+    (native-inputs
+     (list python-ipython
+           python-mock
+           python-nose
+           python-pytest
+           python-pytest-cov
+           python-testpath))
     (home-page "https://ipython.org/")
     (synopsis "Interactive Parallel Computing with IPython")
     (description
@@ -7806,12 +8240,12 @@ CLI scripts:
                  (invoke "python" "example/example.py" "--local"))
                #t))))))
     (propagated-inputs
-     `(("python-ipyparallel" ,python-ipyparallel)
-       ("python-ipython" ,python-ipython)
-       ("python-netifaces" ,python-netifaces)
-       ("python-pyzmq" ,python-pyzmq)
-       ("python-setuptools" ,python-setuptools)
-       ("python-six" ,python-six)))
+     (list python-ipyparallel
+           python-ipython
+           python-netifaces
+           python-pyzmq
+           python-setuptools
+           python-six))
     (home-page "https://github.com/roryk/ipython-cluster-helper")
     (synopsis
      "Simplify IPython cluster start up and use for multiple schedulers")
@@ -7838,12 +8272,9 @@ cluster down and deletes the throwaway profile.")
        (modify-phases %standard-phases
          (replace 'check (lambda _ (invoke "pytest" "-vv" "traitlets"))))))
     (propagated-inputs
-     `(("python-ipython-genutils" ,python-ipython-genutils)
-       ("python-decorator" ,python-decorator)
-       ("python-six" ,python-six)))
+     (list python-ipython-genutils python-decorator python-six))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
-    (properties `((python2-variant . ,(delay python2-traitlets))))
+     (list python-pytest))
     (home-page "https://ipython.org")
     (synopsis "Configuration system for Python applications")
     (description
@@ -7855,13 +8286,6 @@ is a distinct layer on top of traitlets, so you can use traitlets in your code
 without using the configuration machinery.")
     (license license:bsd-3)))
 
-(define-public python2-traitlets
-  (let ((traitlets (package-with-python2 (strip-python2-variant python-traitlets))))
-    (package/inherit traitlets
-      (propagated-inputs
-       `(("python2-enum34" ,python2-enum34)
-         ,@(package-propagated-inputs traitlets))))))
-
 (define-public python-jupyter-core
   (package
     (name "python-jupyter-core")
@@ -7907,15 +8331,14 @@ without using the configuration machinery.")
                  (assoc-ref outputs "out")
                  "/etc/jupyter/migrated")))))))
     (propagated-inputs
-     `(("python-traitlets" ,python-traitlets)))
+     (list python-traitlets))
     (native-inputs
-     `(("python-six" ,python-six)
-       ("python-pytest" ,python-pytest)))
+     (list python-six python-pytest))
     ;; This package provides the `jupyter` binary and thus also exports the
     ;; search paths.
     (native-search-paths
      (list (search-path-specification
-            (variable "JUPYTER_CONFIG_DIR")
+            (variable "JUPYTER_CONFIG_PATH")
             (files '("etc/jupyter")))
            (search-path-specification
             (variable "JUPYTER_PATH")
@@ -7957,14 +8380,10 @@ without using the configuration machinery.")
     (inputs
      `(("iproute" ,iproute)))
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-jupyter-core" ,python-jupyter-core)
-       ("python-pyzmq" ,python-pyzmq)
-       ("python-tornado" ,python-tornado-6)
-       ("python-traitlets" ,python-traitlets)))
+     (list python-dateutil python-jupyter-core python-pyzmq
+           python-tornado-6 python-traitlets))
     (native-inputs
      `(("python-pytest" ,python-pytest)
-       ("python-pytest-asyncio" ,python-pytest-asyncio)
        ("python-pytest-timeout" ,python-pytest-timeout)
        ("python-async-generator" ,python-async-generator)
        ("python-mock" ,python-mock)
@@ -8009,10 +8428,10 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _
-             (setenv "HOME" "/tmp")
-             (invoke "pytest" "-v")
-             #t))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "HOME" "/tmp")
+               (invoke "pytest" "-v"))))
          (add-after 'install 'set-python-file-name
            (lambda* (#:key outputs #:allow-other-keys)
              ;; Record the absolute file name of the 'python' executable in
@@ -8024,15 +8443,11 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
                   (string-append "\"" (which "python") "\"")))
                #t))))))
     (propagated-inputs
-     `(("python-ipython" ,python-ipython)
-       ("python-tornado" ,python-tornado-6)
-       ("python-traitlets" ,python-traitlets)
-       ;; imported at runtime during connect
-       ("python-jupyter-client" ,python-jupyter-client)))
+     (list python-ipython python-tornado-6 python-traitlets
+           ;; imported at runtime during connect
+           python-jupyter-client))
     (native-inputs
-     `(("python-flaky" ,python-flaky)
-       ("python-nose" ,python-nose)
-       ("python-pytest" ,python-pytest)))
+     (list python-flaky python-nose python-pytest))
     (home-page "https://ipython.org")
     (synopsis "IPython Kernel for Jupyter")
     (description
@@ -8065,10 +8480,9 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
          "1yash0p422nnin7z58b99d0p23nx79f5m0mainc9hsjg72jhdhr6"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-ipykernel" ,python-ipykernel)))
+     (list python-ipykernel))
     (inputs
-     `(("pari-gp" ,pari-gp)
-       ("readline" ,readline)))
+     (list pari-gp readline))
     (arguments
      `(#:tests? #f)) ; no test suite
     (home-page
@@ -8111,33 +8525,32 @@ callback signature using a prototype function.")
         (base32 "04xgymypnbfgf2q0d5b0hanjbjsp53f055sh1p8xlq52vyzmxdaq"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-backcall" ,python-backcall)
-       ("python-pyzmq" ,python-pyzmq)
-       ("python-prompt-toolkit" ,python-prompt-toolkit-2)
-       ("python-terminado" ,python-terminado)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-matplotlib-inline" ,python-matplotlib-inline)
-       ("python-numpy" ,python-numpy)
-       ("python-numpydoc" ,python-numpydoc)
-       ("python-jedi" ,python-jedi)
-       ("python-jinja2" ,python-jinja2)
-       ("python-mistune" ,python-mistune)
-       ("python-pexpect" ,python-pexpect)
-       ("python-pickleshare" ,python-pickleshare)
-       ("python-simplegeneric" ,python-simplegeneric)
-       ("python-jsonschema" ,python-jsonschema)
-       ("python-traitlets" ,python-traitlets)
-       ("python-nbformat" ,python-nbformat)
-       ("python-pygments" ,python-pygments)))
+     (list python-backcall
+           python-pyzmq
+           python-prompt-toolkit-2
+           python-terminado
+           python-matplotlib
+           python-matplotlib-inline
+           python-numpy
+           python-numpydoc
+           python-jedi
+           python-jinja2
+           python-mistune
+           python-pexpect
+           python-pickleshare
+           python-simplegeneric
+           python-jsonschema
+           python-traitlets
+           python-nbformat
+           python-pygments))
     (inputs
-     `(("readline" ,readline)
-       ("which" ,which)))
+     (list readline which))
     (native-inputs
-     `(("graphviz" ,graphviz)
-       ("pkg-config" ,pkg-config)
-       ("python-requests" ,python-requests) ;; for tests
-       ("python-testpath" ,python-testpath)
-       ("python-nose" ,python-nose)))
+     (list graphviz
+           pkg-config
+           python-requests ;; for tests
+           python-testpath
+           python-nose))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -8146,8 +8559,7 @@ callback signature using a prototype function.")
              (substitute* "IPython/sphinxext/ipython_directive.py"
                ((".*import datetime") "")
                ((".*datetime.datetime.now\\(\\)") "")
-               (("%timeit") "# %timeit"))
-             #t))
+               (("%timeit") "# %timeit"))))
          ;; Tests can only be run after the library has been installed and not
          ;; within the source directory.
          (delete 'check)
@@ -8161,8 +8573,7 @@ callback signature using a prototype function.")
                    ;; We only test the core because one of the other tests
                    ;; tries to import ipykernel.
                    (invoke "python" "IPython/testing/iptest.py"
-                           "-v" "IPython/core/tests"))
-                 #t)))
+                           "-v" "IPython/core/tests")))))
          (add-before 'check 'fix-tests
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "./IPython/utils/_process_posix.py"
@@ -8177,8 +8588,7 @@ callback signature using a prototype function.")
              (delete-file "IPython/core/tests/test_interactiveshell.py")
              ;; AttributeError: module 'matplotlib_inline' has no
              ;; attribute 'backend_inline'
-             (delete-file "IPython/core/tests/test_pylabtools.py")
-             #t)))))
+             (delete-file "IPython/core/tests/test_pylabtools.py"))))))
     (home-page "https://ipython.org")
     (synopsis "IPython is a tool for interactive computing in Python")
     (description
@@ -8227,8 +8637,7 @@ computing.")
                (copy-file "COPYING.rst" (string-append doc "/COPYING.rst")))
              #t)))))
     (inputs
-     `(("python-ipython" ,python-ipython)
-       ("python-ipykernel" ,python-ipykernel)))
+     (list python-ipython python-ipykernel))
     (native-inputs
      `(("python-sphinx" ,python-sphinx)
        ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
@@ -8280,6 +8689,15 @@ computing.")
         (base32
          "1bky2bra6673xx8jy0826znw6cmxs89wcwwzda8d025j3jffx2sq"))))
     (build-system python-build-system)
+    (arguments
+      (list
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'remove-vterm-tests
+              ;; According to Debian these tests are cursed.
+              ;; https://salsa.debian.org/python-team/packages/urwid/-/blob/debian/2.1.2-2/debian/changelog#L141
+              (lambda _
+                (delete-file "urwid/tests/test_vterm.py"))))))
     (home-page "http://urwid.org")
     (synopsis "Console user interface library for Python")
     (description
@@ -8326,9 +8744,9 @@ features useful for text console applications.")
                (invoke "python" "-m" "pytest"))
              #t)))))
     (propagated-inputs
-     `(("python-urwid" ,python-urwid)))
+     (list python-urwid))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/rr-/urwid_readline")
     (synopsis "Text input widget for urwid that supports readline shortcuts")
     (description
@@ -8361,12 +8779,12 @@ supports @code{readline} shortcuts.")
              (delete-file "tests/test_external.py")
              #t)))))
     (native-inputs
-     `(("python-hypothesis" ,python-hypothesis)
-       ("python-isort" ,python-isort)
-       ("python-numpy" ,python-numpy)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-tabulate" ,python-tabulate)))
+     (list python-hypothesis
+           python-isort
+           python-numpy
+           python-pytest
+           python-pytest-runner
+           python-tabulate))
     (home-page "https://github.com/life4/textdistance")
     (synopsis "Compute distance between the two texts")
     (description "@code{textdistance} is a pure Python library for comparing
@@ -8376,7 +8794,7 @@ distance between two or more sequences by many algorithms.")
 (define-public python-urwidtrees
   (package
     (name "python-urwidtrees")
-    (version "1.0.2")
+    (version "1.0.3")
     (source
       (origin
         (method git-fetch)
@@ -8388,12 +8806,11 @@ distance between two or more sequences by many algorithms.")
         (file-name (git-file-name name version))
         (sha256
           (base32
-           "1n1kpidvkdnsqyb82vlvk78gmly96kh8351lqxn2pzgwwns6fml2"))))
+           "1y1vysx7jg0vbrarlsykhf7nmr8fc6k1fva1q3i98xq2m30s6r68"))))
     (build-system python-build-system)
     (arguments
-     '(#:use-setuptools? #f
-       #:tests? #f)) ; no tests
-    (propagated-inputs `(("python-urwid" ,python-urwid)))
+     '(#:tests? #f)) ; no tests
+    (propagated-inputs (list python-urwid))
     (home-page "https://github.com/pazz/urwidtrees")
     (synopsis "Tree widgets for urwid")
     (description "Urwidtrees is a Widget Container API for the @code{urwid}
@@ -8418,7 +8835,7 @@ toolkit.  Use it to build trees of widgets.")
     (arguments
      `(#:tests? #f))                    ;no test suite in release
     (native-inputs
-     `(("python-pyyaml" ,python-pyyaml)))
+     (list python-pyyaml))
     (home-page "https://github.com/ua-parser/uap-python")
     (synopsis "User agent parser")
     (description
@@ -8443,7 +8860,7 @@ toolkit.  Use it to build trees of widgets.")
     (arguments
      `(#:tests? #f))                  ;missing devices.json test file in release
     (propagated-inputs
-     `(("python-ua-parser" ,python-ua-parser)))
+     (list python-ua-parser))
     (home-page "https://github.com/selwin/python-user-agents")
     (synopsis "User Agent strings parsing library")
   (description
@@ -8457,17 +8874,17 @@ parsing (browser/HTTP) user agent strings.")
 (define-public python-dbus
   (package
     (name "python-dbus")
-    (version "1.2.16")
+    (version "1.2.18")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://dbus.freedesktop.org/releases/dbus-python/"
                            "dbus-python-" version ".tar.gz"))
        (sha256
-        (base32 "196m5rk3qzw5nkmgzjl7wmq0v7vpwfhh8bz2sapdi5f9hqfqy8qi"))))
+        (base32 "0q3jrw515z98mqdk9x822nd95rky455zz9876f1nqna5igkd3gcj"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("python" ,python-wrapper)
        ("dbus-glib" ,dbus-glib)))
@@ -8475,6 +8892,7 @@ parsing (browser/HTTP) user agent strings.")
     (description "python-dbus provides bindings for libdbus, the reference
 implementation of D-Bus.")
     (home-page "https://www.freedesktop.org/wiki/Software/DBusBindings/")
+    (properties `((python2-variant . ,(delay python2-dbus))))
     (license license:expat)))
 
 (define-public python2-dbus
@@ -8482,8 +8900,34 @@ implementation of D-Bus.")
     (name "python2-dbus")
     (inputs `(("python" ,python-2)
               ,@(alist-delete "python"
-                              (package-inputs python-dbus)
-                              equal?)))))
+                              (package-inputs python-dbus))))
+    (arguments
+     `(#:configure-flags '("PYTHON_VERSION=2")))))
+
+(define-public python-dbus-next
+  (package
+    (name "python-dbus-next")
+    (version "0.2.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/altdesktop/python-dbus-next")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1ahaz52kny1p9xxv6phvk4iq56rg8li390wywlxf2yslaij1188h"))))
+    (build-system python-build-system)
+    (native-inputs
+      (list python-pytest))
+    (home-page "https://github.com/altdesktop/python-dbus-next")
+    (synopsis "Zero-dependency DBus library for Python with asyncio support")
+    (description
+     "This DBus library for Python aims to be a fully-featured high-level
+library primarily geared towards integration of applications into desktop and
+mobile environments.")
+    (license license:expat)))
 
 (define-public python-notify2
   (package
@@ -8498,8 +8942,8 @@ implementation of D-Bus.")
          "0z8rrv9rsg1r2qgh2dxj3dfj5xnki98kgi3w839kqby4a26i1yik"))))
     (build-system python-build-system)
     (arguments `(#:tests? #f))                    ; tests depend on system state
-    (native-inputs
-     `(("python-dbus" ,python-dbus)))
+    (propagated-inputs
+     (list python-dbus))
     (home-page "https://bitbucket.org/takluyver/pynotify2")
     (synopsis "Python interface to D-Bus notifications")
     (description
@@ -8537,7 +8981,7 @@ the GObject Introspection bindings to libnotify for non-GTK applications.")
          (replace 'check
            (lambda _ (invoke "./convert-py3k"))))))
     (propagated-inputs
-     `(("python-soupsieve" ,python-soupsieve)))
+     (list python-soupsieve))
     (home-page
      "https://www.crummy.com/software/BeautifulSoup/bs4/")
     (synopsis
@@ -8603,9 +9047,8 @@ some are not yet implemented).")
           (base32
            "1apgqxngi1216h1cyvrvj9gy3wf45mh1lz4n76j26jf3k36bm1br"))))
       (propagated-inputs
-       `(("python2-backports-functools-lru-cache"
-          ,python2-backports-functools-lru-cache)
-         ,@(package-propagated-inputs base))))))
+       (modify-inputs (package-propagated-inputs base)
+         (prepend python2-backports-functools-lru-cache))))))
 
 (define-public python-netifaces
   (package
@@ -8651,9 +9094,9 @@ interfaces in an easy and portable manner.")
                       #t)))))
     ;; python-decorator is needed at runtime.
     (propagated-inputs
-     `(("python-decorator" ,python-decorator)))
+     (list python-decorator))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://networkx.github.io/")
     (synopsis "Python module for creating and manipulating graphs and networks")
     (description
@@ -8677,8 +9120,7 @@ of the structure, dynamics, and functions of complex networks.")
       (arguments
        `(#:python ,python-2))
       (native-inputs
-       `(("python-nose" ,python2-nose)
-         ("unzip" ,unzip))))))
+       (list python2-nose unzip)))))
 
 (define-public python-datrie
   (package
@@ -8693,10 +9135,8 @@ of the structure, dynamics, and functions of complex networks.")
          "0pbn32flkrpjiwfcknmj6398qa81ba783kbcvwan3kym73v0hnsj"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-hypothesis" ,python-hypothesis)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-cython python-hypothesis python-pytest
+           python-pytest-runner))
     (home-page "https://github.com/kmike/datrie")
     (synopsis "Fast, efficiently stored trie for Python")
     (description
@@ -8717,10 +9157,9 @@ Python.")
          "0f1db9zp0rsfzxvaz55xwh8h5rfdgr9a2a715g06ic8nknsdq4nb"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-docutils" ,python-docutils)
-       ("python-pyparsing" ,python-pyparsing)))
+     (list python-docutils python-pyparsing))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (home-page "https://github.com/willu47/amply")
     (synopsis "Load and manipulate AMPL/GLPK data as Python data structures")
     (description
@@ -8741,7 +9180,7 @@ structures.")
          "1dammrg0f1v0r028i3rpxbf2bsyxmjq0q6ihb4x2wsdki44z3bxj"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-amply" ,python-amply)))
+     (list python-amply))
     (home-page "https://github.com/coin-or/pulp")
     (synopsis "Linear Programming modeler")
     (description
@@ -8787,13 +9226,10 @@ algorithm.")
     (arguments
      `(#:test-target "pytest"))
     (propagated-inputs
-     `(("python-diff-match-patch" ,python-diff-match-patch)))
+     (list python-diff-match-patch))
     (native-inputs
-     `(("python-flaky" ,python-flaky)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-pytest-timeout" ,python-pytest-timeout)))
+     (list python-flaky python-pytest python-pytest-cov
+           python-pytest-runner python-pytest-timeout))
     (home-page "https://github.com/spyder-ide/three-merge")
     (synopsis "Library for merging two strings with respect to a base one")
     (description
@@ -8830,22 +9266,22 @@ approach.")
                                "/bin/snakemake")))
              #t)))))
     (propagated-inputs
-     `(("python-appdirs" ,python-appdirs)
-       ("python-configargparse" ,python-configargparse)
-       ("python-datrie" ,python-datrie)
-       ("python-docutils" ,python-docutils)
-       ("python-gitpython" ,python-gitpython)
-       ("python-jinja2" ,python-jinja2)
-       ("python-jsonschema" ,python-jsonschema)
-       ("python-nbformat" ,python-nbformat)
-       ("python-networkx" ,python-networkx)
-       ("python-psutil" ,python-psutil)
-       ("python-pulp" ,python-pulp)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-ratelimiter" ,python-ratelimiter)
-       ("python-requests" ,python-requests)
-       ("python-toposort" ,python-toposort)
-       ("python-wrapt" ,python-wrapt)))
+     (list python-appdirs
+           python-configargparse
+           python-datrie
+           python-docutils
+           python-gitpython
+           python-jinja2
+           python-jsonschema
+           python-nbformat
+           python-networkx
+           python-psutil
+           python-pulp
+           python-pyyaml
+           python-ratelimiter
+           python-requests
+           python-toposort
+           python-wrapt))
     (home-page "https://snakemake.readthedocs.io")
     (synopsis "Python-based execution environment for make-like workflows")
     (description
@@ -8877,13 +9313,13 @@ SVG, EPS, PNG and terminal output.")
 (define-public python-seaborn
   (package
     (name "python-seaborn")
-    (version "0.11.1")
+    (version "0.11.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "seaborn" version))
        (sha256
-        (base32 "1b81p9s6li3b606ivgbynrh102fclwlw74m8qxzsii9pv6p8xrs4"))
+        (base32 "1xpl3zb945sihsiwm9q1yyx84sakk1phcg0fprj6i0j0dllfjifg"))
        (patches (search-patches "python-seaborn-kde-test.patch"))))
     (build-system python-build-system)
     (arguments
@@ -8900,13 +9336,9 @@ SVG, EPS, PNG and terminal output.")
              (when tests?
                (invoke "pytest" "seaborn")))))))
     (propagated-inputs
-     `(("python-pandas" ,python-pandas)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)))
+     (list python-pandas python-matplotlib python-numpy python-scipy))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("xorg-server" ,xorg-server-for-tests)))
+     (list python-pytest xorg-server-for-tests))
     (home-page "https://seaborn.pydata.org/")
     (synopsis "Statistical data visualization")
     (description
@@ -8932,31 +9364,40 @@ and statistical routines from scipy and statsmodels.")
 
 (define-public python-mpmath
   (package
-  (name "python-mpmath")
-  (version "1.1.0")
-  (source (origin
-            (method url-fetch)
-            (uri (pypi-uri "mpmath" version))
-            (file-name (git-file-name name version))
-            (sha256
-             (base32
-              "1xlrcja213jpfhw25q1jl5pl10w1a2cc68x1c4mkicxsbzhan5zw"))))
-  (build-system python-build-system)
-  (native-inputs
-   `(("python-pytest" ,python-pytest)))
-  (arguments
-   '(#:phases
-     (modify-phases %standard-phases
-       (replace 'check
-         (lambda _
-           (invoke "python" "mpmath/tests/runtests.py" "-local"))))))
-  (home-page "https://mpmath.org")
-  (synopsis "Arbitrary-precision floating-point arithmetic in python")
-  (description
-    "@code{mpmath} can be used as an arbitrary-precision substitute for
+    (name "python-mpmath")
+    (version "1.2.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/fredrik-johansson/mpmath")
+                    (commit "c6a35f9ee7c294bcf4e0517bc76b268843db9499")))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0ifw59fjjls3mas104rh0frilvab2fhk1dkjraxlqni5n9l676im"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'set-version
+           (lambda _
+             (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" ,version)
+             ;; ZIP does not support timestamps before 1980.
+             (setenv "SOURCE_DATE_EPOCH" "315532800")))
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "-vv")))))))
+    (native-inputs
+     (list python-pytest python-setuptools-scm))
+    (home-page "https://mpmath.org")
+    (synopsis "Arbitrary-precision floating-point arithmetic in python")
+    (description
+     "@code{mpmath} can be used as an arbitrary-precision substitute for
 Python's float/complex types and math/cmath modules, but also does much
 more advanced mathematics.")
-  (license license:bsd-3)))
+    (license license:bsd-3)))
 
 (define-public python2-mpmath
   (package-with-python2 python-mpmath))
@@ -8973,7 +9414,7 @@ more advanced mathematics.")
         (base32 "0xd7q4l7v0f463diznjv4k9wlaks80pn9drdqmfifi7zx8qvybi6"))))
     (build-system python-build-system)
     (inputs
-     `(("mpfr" ,mpfr)))
+     (list mpfr))
     (home-page "https://github.com/mdickinson/bigfloat")
     (synopsis "Arbitrary precision floating-point arithmetic for Python")
     (description
@@ -9001,7 +9442,7 @@ multiprecision arithmetic.")
                (or (which "python3") (which "python"))
                "-c" "import sympy; sympy.test(\"/core\")"))))))
     (propagated-inputs
-     `(("python-mpmath" ,python-mpmath)))
+     (list python-mpmath))
     (home-page "https://www.sympy.org/")
     (synopsis "Python library for symbolic mathematics")
     (description
@@ -9070,11 +9511,9 @@ falling into the Python interpreter.")
                (setenv "DISPLAY" ":1")
                #t))))))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("xorg-server" ,xorg-server)))
+     (list python-mock python-setuptools-scm xorg-server))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/python-xlib/python-xlib")
     (synopsis "Python X11 client library")
     (description
@@ -9099,7 +9538,7 @@ low-level X clients.  It is written entirely in Python.")
          "171b7ip0hsq5qm83np40h3phlr36ym18w0lay0a8v08kvy3sy1jv"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-six" ,python-six))) ; required for conversion, not at run-time
+     (list python-six)) ; required for conversion, not at run-time
     (home-page
      "https://docs.python.org/3/library/functools.html#functools.singledispatch")
     (synopsis "Backport of singledispatch feature from Python 3.4")
@@ -9156,7 +9595,14 @@ Python 2 and Python 3.")
     (license license:psfl)))
 
 (define-public python2-backports-csv
-  (package-with-python2 python-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
@@ -9178,7 +9624,7 @@ Python 2 and Python 3.")
            (lambda _
              (invoke "py.test" "-v"))))))
     (native-inputs
-     `(("python2-pytest" ,python2-pytest)))
+     (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
@@ -9252,17 +9698,65 @@ applications.")
              ;; Cython extensions have to be built before running the tests.
              (invoke "python" "setup.py" "build_ext" "--inplace"))))))
     (inputs
-     `(("zeromq" ,zeromq)))
+     (list zeromq))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)))
+     (list pkg-config python-cython python-pytest))
     (home-page "https://github.com/zeromq/pyzmq")
     (synopsis "Python bindings for 0MQ")
     (description
      "PyZMQ is the official Python binding for the ZeroMQ messaging library.")
     (license license:bsd-4)))
 
+(define-public python-immutabledict
+  (package
+    (name "python-immutabledict")
+    (version "2.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "immutabledict" version))
+       (sha256
+        (base32 "0fpc4gbk7inpfbgdypsg6c18bmdjw8gwx47bjw0hvixn3gghxnqx"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ; no tests in PyPI release and no setup.py in GitHub
+    (native-inputs
+     (list python-pytest))
+    (home-page "https://github.com/corenting/immutabledict")
+    (synopsis "Immutable wrapper around dictionaries")
+    (description
+     "@dfn{immutabledict} is an immutable wrapper around dictionaries.
+It implements the complete mapping interface and can be used as a drop-in
+replacement for dictionaries where immutability is desired.")
+    (license license:expat)))
+
+(define-public python-emoji
+  (package
+    (name "python-emoji")
+    (version "1.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "emoji" version))
+       (sha256
+        (base32 "0923mpixwq6hdpkgvi4r46alfvf608iq975rb8lnqpq29j71mmjk"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "python" "-m" "pytest")))))))
+    (native-inputs
+     (list python-pytest))
+    (home-page "https://github.com/carpedm20/emoji/")
+    (synopsis "Emoji terminal output for Python")
+    (description "This package provides Emoji terminal output for Python.  The
+entire set of Emoji codes as defined by the Unicode Consortium is supported in
+addition to a bunch of aliases.")
+    (license license:bsd-3)))
+
 (define-public python-pep8
   ;; This package has been renamed to ‘pycodestyle’ and is no longer updated.
   ;; Its last release (1.7.1) adds only a scary warning to this effect, breaking
@@ -9289,6 +9783,27 @@ PEP 8.")
 (define-public python2-pep8
   (package-with-python2 python-pep8))
 
+(define-public python-pep8-naming
+  (package
+    (name "python-pep8-naming")
+    (version "0.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pep8-naming" version))
+       (sha256
+        (base32
+         "04kyh9hkpyc8jzj16d1kkk29b5n8miqdvbs0zm035n1z5z5kx6hz"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-flake8 python-flake8-polyfill))
+    (home-page "https://github.com/PyCQA/pep8-naming")
+    (synopsis "Check PEP-8 naming conventions")
+    (description
+     "This package provides the @code{pep8-naming} Python module, a
+plugin for flake8 to check PEP-8 naming conventions.")
+    (license license:expat)))
+
 (define-public python-pep517
   (package
     (inherit python-pep517-bootstrap)
@@ -9305,9 +9820,7 @@ PEP 8.")
                (invoke "pytest")
                #t))))))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-testpath" ,python-testpath)))
+     (list python-mock python-pytest python-testpath))
     (properties `((python2-variant . ,(delay python2-pep517))))))
 
 ;; Skip the tests so we don't create a cyclical dependency with pytest.
@@ -9351,7 +9864,9 @@ PEP 8.")
               (uri (pypi-uri "pyflakes" version))
               (sha256
                (base32
-                "1j3zqbiwkyicvww499bblq33x0bjpzdrxajhaysr7sk7x5gdgcim"))))))
+                "1j3zqbiwkyicvww499bblq33x0bjpzdrxajhaysr7sk7x5gdgcim"))
+              (patches
+               (search-patches "python-pyflakes-test-location.patch"))))))
 
 (define-public python-mccabe
   (package
@@ -9366,9 +9881,7 @@ PEP 8.")
          "07w3p1qm44hgxf3vvwz84kswpsx6s7kvaibzrsx5dzm0hli1i3fx"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-toml", python-toml)
-       ("python-pytest" ,python-pytest-bootstrap)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-toml python-pytest-bootstrap python-pytest-runner))
     (home-page "https://github.com/PyCQA/mccabe")
     (synopsis "McCabe checker, plugin for flake8")
     (description "This package provides a Flake8 plug-in to compute the McCabe
@@ -9397,13 +9910,10 @@ cyclomatic complexity of Python source code.")
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "-v"))))))
     (propagated-inputs
-     `(("python-pycodestyle" ,python-pycodestyle)
-       ("python-entrypoints" ,python-entrypoints)
-       ("python-pyflakes" ,python-pyflakes)
-       ("python-mccabe" ,python-mccabe)))
+     (list python-pycodestyle python-entrypoints python-pyflakes
+           python-mccabe))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-mock python-pytest))
     (home-page "https://gitlab.com/pycqa/flake8")
     (synopsis
       "The modular source code checker: pep8, pyflakes and co")
@@ -9433,10 +9943,8 @@ cyclomatic complexity of Python source code.")
                (base32
                 "0fvcrsbyzjpcli8ldbpsdbpmf238nkvwc1dy4hy82lf63rvfinma"))))
     (propagated-inputs
-     `(("python-pycodestyle" ,python-pycodestyle-2.6)
-       ("python-entrypoints" ,python-entrypoints)
-       ("python-pyflakes" ,python-pyflakes-2.2)
-       ("python-mccabe" ,python-mccabe)))))
+     (list python-pycodestyle-2.6 python-entrypoints python-pyflakes-2.2
+           python-mccabe))))
 
 (define-public python-flake8-bugbear
   (package
@@ -9460,11 +9968,9 @@ cyclomatic complexity of Python source code.")
                (("def test_does_not_crash_on_any_valid_code")
                 "def _test_does_not_crash_on_any_valid_code")))))))
     (native-inputs
-     `(("python-hypothesis" ,python-hypothesis)
-       ("python-hypothesmith" ,python-hypothesmith)))
+     (list python-hypothesis python-hypothesmith))
     (propagated-inputs
-     `(("python-attrs" ,python-attrs)
-       ("python-flake8" ,python-flake8)))
+     (list python-attrs python-flake8))
     (home-page "https://github.com/PyCQA/flake8-bugbear")
     (synopsis
       "Flake8 plugin for finding likely bugs and design problems in your program")
@@ -9487,9 +9993,7 @@ in pyflakes and pycodestyle.")
          "0dzaw8jr7yhlabxhrblnrizxx17xa9ngjnbr1kidg5lapq6b9q1y"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-flake8" ,python-flake8)
-       ("python-pycodestyle" ,python-pycodestyle)
-       ("python-six" ,python-six)))
+     (list python-flake8 python-pycodestyle python-six))
     (home-page "https://github.com/planetlabs/flake8-continuation")
     (synopsis "Flake8 Line Continuation Plugin")
     (description "A Flake8 plugin that checks for the line continuation
@@ -9514,8 +10018,7 @@ These should be used in preference to using a backslash for line continuation.
         (base32 "1v0y29xlmbr2q12a4nnpm1dm9aw1mjiys1x8jif4z8c90d63cqm6"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-attrs" ,python-attrs)
-       ("python-more-itertools" ,python-more-itertools)))
+     (list python-attrs python-more-itertools))
     (home-page "https://github.com/keisheiled/flake8-implicit-str-concat")
     (synopsis "Flake8 plugin to encourage correct string literal concatenation")
     (description
@@ -9551,12 +10054,9 @@ unnecessary plus operators for explicit string literal concatenation.")
                 "[tool:pytest]"))
              (invoke "py.test" "-v"))))))
     (propagated-inputs
-     `(("python-flake8" ,python-flake8)))
+     (list python-flake8))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pep8" ,python-pep8)
-       ("python-pycodestyle" ,python-pycodestyle)
-       ("python-pytest" ,python-pytest)))
+     (list python-mock python-pep8 python-pycodestyle python-pytest))
     (home-page "https://gitlab.com/pycqa/flake8-polyfill")
     (synopsis "Polyfill package for Flake8 plugins")
     (description
@@ -9579,9 +10079,7 @@ plugins that intend to support Flake8 2.x and 3.x simultaneously.")
         (base32 "05k5kkvyk6fdmvnacxfzypk74vbl3pmva13dqg1aljfwnxsc7yjs"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-flake8" ,python-flake8)
-       ("python-pycodestyle" ,python-pycodestyle)
-       ("python-six" ,python-six)))
+     (list python-flake8 python-pycodestyle python-six))
     (home-page "https://github.com/jbkahn/flake8-print")
     (synopsis "Print statement checker plugin for Flake8")
     (description
@@ -9602,9 +10100,7 @@ files.")
          "0b27n2pmrxcc7nva4wp2i7mrag0fnq0firvhg1ljq593a45b5qyf"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-attrs" ,python-attrs)
-       ("python-flake8" ,python-flake8)
-       ("python-pyflakes" ,python-pyflakes)))
+     (list python-attrs python-flake8 python-pyflakes))
     (home-page "https://github.com/ambv/flake8-pyi")
     (synopsis
       "Flake8 plugin that provides specializations for type hinting stub files")
@@ -9650,12 +10146,33 @@ lints.")
          "0ph5s6lxgpzz4an0ax6s5xjqypqmngwr5b1i0h9pqhzghplic49z"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-flake8" ,python-flake8)))
+     (list python-flake8))
     (home-page "https://github.com/zheller/flake8-quotes/")
     (synopsis "Flake8 lint for quotes")
     (description "This package provides a Flake8 lint for quotes.")
     (license license:expat)))
 
+(define-public python-flake8-todo
+  (package
+    (name "python-flake8-todo")
+    (version "0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "flake8-todo" version))
+       (sha256
+        (base32
+         "05arm0sch3r8248035kilmf01z0mxsahw6vpbbz0d343zy8m8k3f"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-pycodestyle))
+    (home-page "https://github.com/schlamar/flake8-todo")
+    (synopsis "TODO notes checker, plugin for flake8")
+    (description
+     "This package provides the @code{flake8-todo} Python module, a
+TODO notes checker plugin for flake8.")
+    (license license:expat)))
+
 (define-public python-autoflake
   (package
     (name "python-autoflake")
@@ -9668,7 +10185,7 @@ lints.")
         (base32 "0nzr057dbmgprp4a52ymafdkdd5zp2wcqf42913xc7hhvvdbj338"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pyflakes" ,python-pyflakes)))
+     (list python-pyflakes))
     (home-page "https://github.com/myint/autoflake")
     (synopsis "Removes unused imports and unused variables")
     (description
@@ -9693,8 +10210,7 @@ It also removes useless @code{pass} statements.")
          "0vkmsh0x480rni51lhyvigfdf06b9247z868pk3bal1wnnfl58sr"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-cython" ,python-cython)))
+     (list python-nose python-cython))
     (home-page "https://github.com/lepture/mistune")
     (synopsis "Markdown parser in pure Python")
     (description "This package provides a fast markdown parser in pure
@@ -9704,6 +10220,20 @@ Python.")
 (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
+    (inherit python-mistune)
+    (name "python-mistune-next")
+    (version "2.0.0rc1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "mistune" version))
+              (sha256
+               (base32
+                "1nd7iav1ixh9hlj4hxn6lmpava88d86ys8rqm30wgvr7gjlxnas5"))))
+    (native-inputs (list python-nose))))
+
 (define-public python-markdown
   (package
     (name "python-markdown")
@@ -9717,8 +10247,7 @@ Python.")
          "0jbs73nincha8fkfxx267sfxac6pl0ckszjbqbb8gk4dhs8v9d9i"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python-nose python-pyyaml))
     (home-page "https://python-markdown.github.io/")
     (synopsis "Python implementation of Markdown")
     (description
@@ -9755,7 +10284,7 @@ markdown_py is also provided to convert Markdown files to HTML.")
          "0ra31k10v3629xq0kdn8lwmfbi97anmk48r03yvh7mks0kq96hg6"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -9821,8 +10350,7 @@ pseudo terminal (pty), and interact with both the process and its pty.")
              (invoke "make" "test"))))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("which" ,which)))
+     (list python-coverage which))
     (synopsis "Simple testing framework for command line applications")
     (description
      "Cram is a functional testing framework for command line applications.
@@ -9865,7 +10393,7 @@ output.")
     (arguments
      `(#:tests? #f)) ; Tests require more dependencies.
     (native-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     (list python-sphinx))
     (home-page "https://github.com/jackmaney/python-stdlib-list")
     (synopsis "Python Standard Libraries")
     (description "This package contains a list of Python Standard Libraries.")
@@ -9905,9 +10433,7 @@ add functionality and customization to your projects with their own plugins.")
                 "1mq9kdzhcsp96bhv7smnrpdg1s4z5wh70bsl99c0jmcrahqdisqq"))))
     (build-system python-build-system)
     (native-inputs
-     `(("unzip" ,unzip)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list unzip python-pytest python-pytest-runner))
     (home-page "https://github.com/fonttools/fonttools")
     (synopsis "Tools to manipulate font files")
     (description
@@ -10008,10 +10534,9 @@ third-party code.")
                 "1g2cdhdqrb6m7655qp61pn61pwj1ql61cdzhr2jvl3w4i8877ddr"))))
     (build-system python-build-system)
     (inputs
-     `(("fuse" ,fuse)
-       ("attr" ,attr)))
+     (list fuse attr))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Python bindings for FUSE")
     (description
      "Python-LLFUSE is a set of Python bindings for the low level FUSE API.")
@@ -10048,7 +10573,7 @@ third-party code.")
            (lambda _
              (invoke "pytest" "-v" "test"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (synopsis "MessagePack (de)serializer")
     (description "MessagePack is a fast, compact binary serialization format,
 suitable for similar data to JSON.  This package provides CPython bindings for
@@ -10214,9 +10739,9 @@ Supported netlink families and protocols include:
                            (filter (lambda (f) (grep "from test." f))
                                    test-files)))))))))
     (propagated-inputs
-     `(("python-lark-parser" ,python-lark-parser)))
+     (list python-lark-parser))
     (native-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/vaidik/commentjson")
     (synopsis "Python library for adding comments to JSON files")
     (description "Comment JSON is a Python package that helps you create JSON
@@ -10249,9 +10774,7 @@ similar to the Python standard library's @code{json} module.")
                (add-installed-pythonpath inputs outputs)
                (invoke "pytest")))))))
     (native-inputs
-     `(("python-commentjson" ,python-commentjson)
-       ("python-packaging" ,python-packaging)
-       ("python-pytest" ,python-pytest)))
+     (list python-commentjson python-packaging python-pytest))
     (home-page "https://github.com/sarugaku/resolvelib")
     (synopsis "Abstract dependencies resolver")
     (description "The ResolveLib library provides a @code{Resolver} class that
@@ -10331,6 +10854,37 @@ Unicode-aware.  It is not intended as an end-user tool.")
 (define-public python2-xlrd
   (package-with-python2 python-xlrd))
 
+(define-public python-xlwt
+  (package
+    (name "python-xlwt")
+    (version "1.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "xlwt" version))
+       (sha256
+        (base32 "123c2pdamshkq75wwvck8fq0cjq1843xd3x9qaiz2a4vg9qi56f5"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "GUIX_PYTHONPATH"
+                       (string-append (getcwd) "/build/lib:"
+                                      (getenv "GUIX_PYTHONPATH")))
+               (invoke "nosetests" "-v")))))))
+    (native-inputs
+     `(("nose" ,python-nose)))
+    (home-page "http://www.python-excel.org/")
+    (synopsis "Library for creating spreadsheet Excel files")
+    (description "@code{xlwt} is a library for writing data and formatting
+information to older Excel files (i.e. .xls).  The package itself is pure
+Python with no dependencies on modules or packages outside the standard Python
+distribution.  It is not intended as an end-user tool.")
+    (license license:bsd-3)))
+
 (define-public python-immutables
   (package
     (name "python-immutables")
@@ -10377,13 +10931,13 @@ printing of sub-tables by specifying a row range.")
 (define-public python-curio
   (package
     (name "python-curio")
-    (version "1.2")
+    (version "1.5")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "curio" version))
        (sha256
-        (base32 "16wkww6kh511b9bzsfhpvrv0766cc6ssgbzz4lgpjnrzzgx21wwh"))))
+        (base32 "045wwg16qadsalhicbv21p14sj8i4w0l57639j7dmdqbb4p2225g"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -10395,7 +10949,7 @@ printing of sub-tables by specifying a row range.")
                      ;; Tries to open an outgoing connection.
                      "not test_ssl_outgoing"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/dabeaz/curio")
     (synopsis "Coroutine-based library for concurrent Python")
     (description
@@ -10458,15 +11012,11 @@ tasks, sockets, files, locks, and queues.")
                      (string-append "--hdf5="
                                     (assoc-ref inputs "hdf5"))))))))
     (propagated-inputs
-     `(("python-numexpr" ,python-numexpr)
-       ("python-numpy" ,python-numpy)))
+     (list python-numexpr python-numpy))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("pkg-config" ,pkg-config)))
+     (list python-cython pkg-config))
     (inputs
-     `(("hdf5" ,hdf5-1.10)
-       ("bzip2" ,bzip2)
-       ("zlib" ,zlib)))
+     (list hdf5-1.10 bzip2 zlib))
     (home-page "https://www.pytables.org/")
     (synopsis "Hierarchical datasets for Python")
     (description "PyTables is a package for managing hierarchical datasets and
@@ -10491,9 +11041,7 @@ designed to efficiently cope with extremely large amounts of data.")
            (lambda _
              (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-curio" ,python-curio)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-curio python-pytest python-pytest-cov))
     (home-page "https://github.com/python-trio/sniffio")
     (synopsis "Detect which async library a program is running under")
     (description "This package detects which async library a program is
@@ -10515,11 +11063,9 @@ asyncio.")
          "04lppqydxm0f3f3x0l8hj7v0j6d8syj34jc37yzqwqcyqsnaga81"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-black" ,python-black)
-       ("python-toml" ,python-toml)))
+     (list python-pytest python-black python-toml))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (home-page "https://github.com/shopkeep/pytest-black")
     (synopsis "Pytest plugin to enable format checking with black")
     (description
@@ -10540,12 +11086,12 @@ Python code formatter \"black\".")
          "1g15jyx33vkxavv9hwv275cs4g9bp2i1y942raw3fxamq8kbaml1"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pygments" ,python-pygments)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-black" ,python-pytest-black)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-setuptools" ,python-setuptools)
-       ("python-testpath" ,python-testpath)))
+     (list python-pygments
+           python-pytest
+           python-pytest-black
+           python-pytest-cov
+           python-setuptools
+           python-testpath))
     (home-page "https://github.com/flying-sheep/get_version")
     (synopsis "Version helper in the spirit of versioneer")
     (description
@@ -10556,6 +11102,65 @@ your package is installed, via @code{pkg_resources} (part of
 @code{setuptools}).")
     (license license:gpl3+)))
 
+(define-public python-filetype
+  (package
+    (name "python-filetype")
+    (version "1.0.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "filetype" version))
+       (sha256
+        (base32 "05mkinkcn36v1cnb5hzay3zxmv7jmmflckxxp08rgzbkkf3i9pvp"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "-k"
+                       (string-append
+                        ;; Both tests fail with FileNotFoundError.
+                        "not test_infer_zip_from_disk"
+                        " and not test_infer_tar_from_disk"))))))))
+    (native-inputs
+     (list python-pytest python-pytest-benchmark))
+    (home-page "https://github.com/h2non/filetype.py")
+    (synopsis "Infer file type and MIME type of any file/buffer")
+    (description "@code{filetype} is a small and dependency free Python
+package to infer file type and MIME type checking the magic numbers
+signature of a file or buffer.")
+    (license license:expat)))
+
+(define-public python-cachelib
+  (package
+    (name "python-cachelib")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "cachelib" version))
+       (sha256
+        (base32 "0p4chkvbvffcllsny5rpzmsq2vyr24ql3kzif4ha0fxp3fp7vqk8"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest")))))))
+    (native-inputs
+     (list python-pytest python-pytest-xprocess))
+    (home-page "https://github.com/pallets/cachelib")
+    (synopsis "Collection of cache libraries")
+    (description "Cachelib is a library extracted from @code{werkzeug} which
+provides a collection of cache libraries in the same API interface.")
+    (license license:bsd-3)))
+
 (define-public python-legacy-api-wrap
   (package
     (name "python-legacy-api-wrap")
@@ -10569,11 +11174,8 @@ your package is installed, via @code{pkg_resources} (part of
          "06qhp0g543dy98vpa41hwdalvdbsjfc3ldk474yr9sd75mhl8jh3"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-get-version" ,python-get-version)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-black" ,python-pytest-black)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-setuptools" ,python-setuptools)))
+     (list python-get-version python-pytest python-pytest-black
+           python-pytest-cov python-setuptools))
     (home-page "https://github.com/flying-sheep/legacy-api-wrap")
     (synopsis "Legacy API wrapper")
     (description "This module defines a decorator to wrap legacy APIs.  The
@@ -10592,7 +11194,7 @@ primary use case is APIs defined before keyword-only parameters existed.")
         (base32 "1805svvb7xjm4sf1j7b6nc3409x37pd1xmabfwwjf1ldkzwgxhfb"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/Mimino666/langdetect")
     (synopsis "Language detection library")
     (description
@@ -10625,17 +11227,17 @@ suitable for a wide range of protocols based on the ASN.1 specification.")
 (define-public python-pyasn1-modules
   (package
     (name "python-pyasn1-modules")
-    (version "0.2.2")
+    (version "0.2.8")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "pyasn1-modules" version))
         (sha256
          (base32
-          "0ivm850yi7ajjbi8j115qpsj95bgxdsx48nbjzg0zip788c3xkx0"))))
+          "0pp6dcagd8c2c9qx3lahc1rdwlnmm0y0siqr5icjq2r32b3q8pwh"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pyasn1" ,python-pyasn1)))
+     (list python-pyasn1))
     (home-page "https://sourceforge.net/projects/pyasn1/")
     (synopsis "ASN.1 codec implementations")
     (description
@@ -10646,9 +11248,9 @@ implementations of ASN.1-based codecs and protocols.")
 (define-public python2-pyasn1-modules
   (package-with-python2 python-pyasn1-modules))
 
-(define-public python2-ipaddress
+(define-public python-ipaddress
   (package
-    (name "python2-ipaddress")
+    (name "python-ipaddress")
     (version "1.0.23")
     (source (origin
               (method url-fetch)
@@ -10657,17 +11259,17 @@ implementations of ASN.1-based codecs and protocols.")
                (base32
                 "1qp743h30s04m3cg3yk3fycad930jv17q7dsslj4mfw0jlvf1y5p"))))
     (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2))
     (home-page "https://github.com/phihag/ipaddress")
     (synopsis "IP address manipulation library")
     (description
       "This package provides a fast, lightweight IPv4/IPv6 manipulation library
  in Python.  This library is used to create, poke at, and manipulate IPv4 and
- IPv6 addresses and networks.  This is a port of the Python 3.3 ipaddress
- module to older versions of Python.")
+ IPv6 addresses and networks.")
     (license license:psfl)))
 
+(define-public python2-ipaddress
+  (package-with-python2 python-ipaddress))
+
 (define-public python-asn1tools
   (package
     (name "python-asn1tools")
@@ -10680,10 +11282,8 @@ implementations of ASN.1-based codecs and protocols.")
         (base32 "1k88a1azmyvp2ab6qcf2i40dig5abhyn7cmlyhmwwh8kr3syvma0"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-bitstruct" ,python-bitstruct)
-       ("python-diskcache" ,python-diskcache)
-       ("python-prompt-toolkit" ,python-prompt-toolkit)
-       ("python-pyparsing" ,python-pyparsing)))
+     (list python-bitstruct python-diskcache python-prompt-toolkit
+           python-pyparsing))
     (home-page "https://github.com/eerimoq/asn1tools")
     (synopsis  "ASN.1 parsing, encoding and decoding")
     (description "This package provides ASN.1 parsing, encoding and decoding
@@ -10786,12 +11386,11 @@ specification.")
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "sasstests.py"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-werkzeug" ,python-werkzeug)))
+     (list python-pytest python-werkzeug))
     (inputs
-     `(("libsass" ,libsass)))
+     (list libsass))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://sass.github.io/libsass-python/")
     (synopsis "Straightforward binding of libsass for Python")
     (description
@@ -10813,7 +11412,7 @@ is binding LibSass.")
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))          ;circular dependency with python-aiohttp
-    (propagated-inputs `(("python-idna" ,python-idna)))
+    (propagated-inputs (list python-idna))
     (home-page "https://github.com/aio-libs/idna-ssl")
     (synopsis "Patch @code{ssl.match_hostname} for Unicode(idna) domains support")
     (description "Patch @code{ssl.match_hostname} for Unicode(idna)
@@ -10982,10 +11581,9 @@ applications from a list of lists of strings.  It supports multi-line rows.")
                   (replace 'check
                     (lambda _ (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-mock python-pytest))
     (inputs
-     `(("libarchive" ,libarchive)))
+     (list libarchive))
     (home-page "https://github.com/Changaco/python-libarchive-c")
     (synopsis "Python interface to libarchive")
     (description
@@ -11059,8 +11657,7 @@ libmagic.")))
                       (delete-file "lib/debian/tests/test_debfile.py")
                       #t)))))
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-chardet" ,python-chardet)))
+     (list python-six python-chardet))
     (synopsis "Debian package related modules")
     (description
      ;; XXX: Use @enumerate instead of @itemize to work around
@@ -11094,10 +11691,9 @@ Debian-related files, such as:
             "06dpbsq61ja9r89wpa2pzdii47qh3xri9ajdrgn1awfl102znchb"))))
     (build-system python-build-system)
     (propagated-inputs
-      `(("python-pathlib" ,python-pathlib)
-        ("python-six" ,python-six)))
+      (list python-pathlib python-six))
     (native-inputs
-      `(("python-pytest" ,python-pytest)))
+      (list python-pytest))
     (home-page "http://py.errorist.io/json-spec")
     (synopsis
       "JSON Schema, JSON Pointer and JSON Reference for Python")
@@ -11126,15 +11722,14 @@ JSON Reference and JSON Pointer.")
             (when tests?
               (invoke "pytest" "-vv" "-m" "not benchmark")))))))
     (native-inputs
-      `(("python-colorama" ,python-colorama)
-        ("python-json-spec" ,python-json-spec)
-        ("python-jsonschema" ,python-jsonschema)
-        ("python-pylint" ,python-pylint)
-        ("python-pytest" ,python-pytest)
-        ("python-pytest-benchmark"
-         ,python-pytest-benchmark)
-        ("python-pytest-cache" ,python-pytest-cache)
-        ("python-validictory" ,python-validictory)))
+      (list python-colorama
+            python-json-spec
+            python-jsonschema
+            python-pylint
+            python-pytest
+            python-pytest-benchmark
+            python-pytest-cache
+            python-validictory))
     (home-page
       "https://github.com/horejsek/python-fastjsonschema")
     (synopsis
@@ -11167,16 +11762,14 @@ drafts 04, 06 and 07.")
              (when tests?
                (invoke "pytest" "-vv")))))))
     (propagated-inputs
-     `(("python-ipython-genutils" ,python-ipython-genutils)
-       ("python-jsonschema" ,python-jsonschema)
-       ("python-jupyter-core" ,python-jupyter-core)
-       ("python-traitlets" ,python-traitlets)))
+     (list python-ipython-genutils python-jsonschema python-jupyter-core
+           python-traitlets))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-fastjsonschema" ,python-fastjsonschema) ; This is only active
-       ; when setting NBFORMAT_VALIDATOR="fastjsonschema", so include it for
-       ; testing only.
-       ("python-testpath" ,python-testpath)))
+     (list python-pytest
+           python-fastjsonschema ; This is only active
+           ; when setting NBFORMAT_VALIDATOR="fastjsonschema", so include it for
+           ; testing only.
+           python-testpath))
     (home-page "https://jupyter.org")
     (synopsis "Jupyter Notebook format")
     (description "This package provides the reference implementation of the
@@ -11195,13 +11788,9 @@ Jupyter Notebook format and Python APIs for working with notebooks.")
         (base32 "0jqa8f1ni10cyf4h7sjpf8mbqlcbkyvmsnli77qrxdcxvc7m4k1w"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-webencodings" ,python-webencodings)
-       ("python-six" ,python-six)))
+     (list python-webencodings python-six))
     (native-inputs
-     `(("python-datrie" ,python-datrie)
-       ("python-genshi" ,python-genshi)
-       ("python-lxml" ,python-lxml)
-       ("python-pytest" ,python-pytest)))
+     (list python-datrie python-genshi python-lxml python-pytest))
     (home-page "https://github.com/mozilla/bleach")
     (synopsis "Whitelist-based HTML-sanitizing tool")
     (description "Bleach is an easy whitelist-based HTML-sanitizing tool.")
@@ -11243,10 +11832,15 @@ 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)))
+    (license license:expat)
+    (properties `((python2-variant . ,(delay python2-entrypoints))))))
 
 (define-public python2-entrypoints
-  (package-with-python2 python-entrypoints))
+  (package
+    (inherit (package-with-python2
+              (strip-python2-variant python-entrypoints)))
+    (propagated-inputs
+     (list python2-configparser))))
 
 (define-public python-epc
   (package
@@ -11261,9 +11855,9 @@ functions to find and load entry points.")
          "09bx1ln1bwa00917dndlgs4k589h8qx2x080xch5m58p92kjwkd1"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-sexpdata" ,python-sexpdata)))
+     (list python-sexpdata))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/tkf/python-epc")
     (synopsis "Remote procedure call (RPC) stack for Emacs Lisp and Python")
     (description
@@ -11287,8 +11881,7 @@ from elisp.")
      ;; repository require online data.
      `(#:tests? #f))
     (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("python-simplejson" ,python-simplejson)))
+     (list python-requests python-simplejson))
     (home-page "https://github.com/MicroPyramid/forex-python")
     (synopsis "Foreign exchange rates and currency conversion")
     (description
@@ -11373,8 +11966,6 @@ time.")
              (when tests?
                ;; Some tests invoke the installed nbconvert binary.
                (add-installed-pythonpath inputs outputs)
-               ;; Tries to write to this path.
-               (unsetenv "JUPYTER_CONFIG_DIR")
                ;; Tests depend on templates installed to output.
                (setenv "JUPYTER_PATH"
                        (string-append
@@ -11385,10 +11976,10 @@ time.")
                (setenv "HOME" "/tmp")
                (invoke "pytest" "-vv")))))))
     (inputs
-     `(("pandoc" ,pandoc)
-       ;; XXX: Disabled, needs substitute*.
-       ;;("inkscape" ,inkscape)
-       ))
+     (list pandoc
+           ;; XXX: Disabled, needs substitute*.
+           ;;("inkscape" ,inkscape)
+           ))
     (native-inputs
      `(("python-ipykernel" ,python-ipykernel)
        ;; XXX: Disabled, not in guix.
@@ -11411,6 +12002,7 @@ time.")
                                         texlive-latex-float
                                         texlive-fontspec
                                         texlive-latex-geometry
+                                        texlive-grffile
                                         texlive-hyperref
                                         texlive-latex-jknapltx
                                         texlive-latex-ms
@@ -11421,27 +12013,28 @@ time.")
                                         texlive-latex-ucs
                                         texlive-lm
                                         texlive-mathpazo
+                                        texlive-stringenc
                                         texlive-tcolorbox
                                         texlive-titling
                                         texlive-tools
                                         texlive-xcolor
                                         texlive-zapfding)))))
     (propagated-inputs
-     `(("python-bleach" ,python-bleach)
-       ("python-defusedxml" ,python-defusedxml)
-       ("python-entrypoints" ,python-entrypoints)
-       ("python-jinja2" ,python-jinja2)
-       ("python-jupyter-core" ,python-jupyter-core)
-       ("python-mistune" ,python-mistune)
-       ("python-nbclient" ,python-nbclient)
-       ("python-nbformat" ,python-nbformat)
-       ("python-pandocfilters" ,python-pandocfilters)
-       ("python-pygments" ,python-pygments)
-       ("python-jupyterlab-pygments" ,python-jupyterlab-pygments)
-       ("python-testpath" ,python-testpath)
-       ("python-traitlets" ,python-traitlets)
-       ;; Required, even if [serve] is not used.
-       ("python-tornado" ,python-tornado-6)))
+     (list python-bleach
+           python-defusedxml
+           python-entrypoints
+           python-jinja2
+           python-jupyter-core
+           python-mistune
+           python-nbclient
+           python-nbformat
+           python-pandocfilters
+           python-pygments
+           python-jupyterlab-pygments
+           python-testpath
+           python-traitlets
+           ;; Required, even if [serve] is not used.
+           python-tornado-6))
     (home-page "https://jupyter.org")
     (synopsis "Converting Jupyter Notebooks")
     (description "The @code{nbconvert} tool, @{jupyter nbconvert}, converts
@@ -11473,44 +12066,55 @@ convert an @code{.ipynb} notebook file into various static formats including:
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'use-our-home-for-tests
+           (lambda _
+             ;; The 'get_patch_env' function in this file reads:
+             ;;   'HOME': cls.home_dir
+             ;; but for some reason, that definition of HOME is not what the
+             ;; GLib/GIO trash mechanism honors, which would cause test
+             ;; failures.  Instead, set 'HOME' here to an existing directory
+             ;; and let the tests honor it.
+             (substitute* "notebook/tests/launchnotebook.py"
+               (("'HOME': .*," all)
+                (string-append "# " all "\n")))
+             (setenv "HOME" (getcwd))))
          (replace 'check
            (lambda* (#:key tests? inputs outputs #:allow-other-keys)
              ;; These tests require a browser
              (delete-file-recursively "notebook/tests/selenium")
              (when tests?
                (add-installed-pythonpath inputs outputs)
+               ;; Interferes with test expectations.
+               (unsetenv "JUPYTER_CONFIG_PATH")
                ;; Some tests do not expect all files to be installed in the
                ;; same directory, but JUPYTER_PATH contains multiple entries.
                (unsetenv "JUPYTER_PATH")
-               ;; Some tests need HOME
-               (setenv "HOME" "/tmp")
-               (with-directory-excursion "/tmp"
-                 (invoke "pytest" "-vv"
-                         ;; TODO: This tests fails because nbconvert does not
-                         ;; list "python" as a format.
-                         "-k" "not test_list_formats"))))))))
-    (propagated-inputs
-     `(("python-argon2-cffi" ,python-argon2-cffi)
-       ("python-ipykernel" ,python-ipykernel)
-       ("python-ipython-genutils" ,python-ipython-genutils)
-       ("python-jinja2" ,python-jinja2)
-       ("python-jupyter-client" ,python-jupyter-client)
-       ("python-jupyter-core" ,python-jupyter-core)
-       ("python-nbconvert" ,python-nbconvert)
-       ("python-nbformat" ,python-nbformat)
-       ("python-prometheus-client" ,python-prometheus-client)
-       ("python-pyzmq" ,python-pyzmq)
-       ("python-send2trash" ,python-send2trash)
-       ("python-terminado" ,python-terminado)
-       ("python-tornado" ,python-tornado-6)
-       ("python-traitlets" ,python-traitlets)))
-    (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-nbval" ,python-nbval)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-requests" ,python-requests)
-       ("python-requests-unixsocket" ,python-requests-unixsocket)))
+               (invoke "pytest" "-vv"
+                       ;; TODO: This tests fails because nbconvert does not
+                       ;; list "python" as a format.
+                       "-k" "not test_list_formats")))))))
+    (propagated-inputs
+     (list python-argon2-cffi
+           python-ipykernel
+           python-ipython-genutils
+           python-jinja2
+           python-jupyter-client
+           python-jupyter-core
+           python-nbconvert
+           python-nbformat
+           python-prometheus-client
+           python-pyzmq
+           python-send2trash
+           python-terminado
+           python-tornado-6
+           python-traitlets))
+    (native-inputs
+     (list python-coverage
+           python-nbval
+           python-pytest
+           python-pytest-cov
+           python-requests
+           python-requests-unixsocket))
     (home-page "https://jupyter.org/")
     (synopsis "Web-based notebook environment for interactive computing")
     (description
@@ -11531,7 +12135,7 @@ interactive computing.")
          "1ismyaxbv9d56yqqqb8xl58hg0iq0bbyy014a53y1g3hfbc8g7q7"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-notebook" ,python-notebook)))
+     (list python-notebook))
     (home-page "https://ipython.org")
     (synopsis "IPython HTML widgets for Jupyter")
     (description "This package provides interactive HTML widgets for Jupyter
@@ -11551,16 +12155,14 @@ notebooks.")
          "1w217j8i53x14l7b05fk300k222zs9vkcjaa1rbrw3sk43k466lz"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-ipykernel" ,python-ipykernel)
-       ("python-ipython" ,python-ipython)
-       ("python-jupyterlab-widgets" ,python-jupyterlab-widgets)
-       ("python-nbformat" ,python-nbformat)
-       ("python-traitlets" ,python-traitlets)
-       ("python-widgetsnbextension" ,python-widgetsnbextension)))
+     (list python-ipykernel
+           python-ipython
+           python-jupyterlab-widgets
+           python-nbformat
+           python-traitlets
+           python-widgetsnbextension))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)))
+     (list python-mock python-pytest python-pytest-cov))
     (home-page "https://ipython.org")
     (synopsis "IPython HTML widgets for Jupyter")
     (description "Ipywidgets are interactive HTML widgets for Jupyter
@@ -11572,22 +12174,20 @@ in the data.")
 (define-public python-jupyter-console
   (package
     (name "python-jupyter-console")
-    (version "6.1.0")
+    (version "6.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "jupyter_console" version))
        (sha256
         (base32
-         "06s3kr5vx0l1y1b7fxb04dmrppscl7q69sl9yyfr0d057d1ssvkg"))))
+         "1iqrxhd8hvlyf8cqbc731ssnwm61wrycnbiczy5wsfahd3hlh8i4"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-ipykernel" ,python-ipykernel)
-       ("python-jupyter-client" ,python-jupyter-client)
-       ("python-prompt-toolkit" ,python-prompt-toolkit-2)
-       ("python-pygments" ,python-pygments)))
+     (list python-ipykernel python-jupyter-client python-prompt-toolkit-2
+           python-pygments))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose python-pytest))
     (home-page "https://jupyter.org")
     (synopsis "Jupyter terminal console")
     (description "This package provides a terminal-based console frontend for
@@ -11646,10 +12246,9 @@ Jupyter kernels such as IJulia and IRKernel.")
              (setenv "QT_QPA_PLATFORM" "offscreen")
              #t)))))
     (propagated-inputs
-     `(("python-ipykernel" ,python-ipykernel)
-       ("python-ipython" ,python-ipython)))
+     (list python-ipykernel python-ipython python-pyqt))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://jupyter.org")
     (synopsis "Jupyter Qt console")
     (description "This package provides a Qt-based console for Jupyter with
@@ -11686,10 +12285,9 @@ support for rich media output.")
                          "six>=1.11.0"))
                       #t)))))
     (propagated-inputs
-     `(("python-editorconfig" ,python-editorconfig)
-       ("python-six" ,python-six)))
+     (list python-editorconfig python-six))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (synopsis "JavaScript unobfuscator and beautifier")
     (description "Beautify, unpack or deobfuscate JavaScript, leveraging
 popular online obfuscators.")
@@ -11709,12 +12307,12 @@ popular online obfuscators.")
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; there are none.
     (propagated-inputs
-     `(("python-ipykernel" ,python-ipykernel)
-       ("python-ipywidgets" ,python-ipywidgets)
-       ("python-jupyter-console" ,python-jupyter-console)
-       ("python-nbconvert" ,python-nbconvert)
-       ("python-notebook" ,python-notebook)
-       ("python-qtconsole" ,python-qtconsole)))
+     (list python-ipykernel
+           python-ipywidgets
+           python-jupyter-console
+           python-nbconvert
+           python-notebook
+           python-qtconsole))
     (home-page "https://jupyter.org")
     (synopsis "Web application for interactive documents")
     (description
@@ -11736,9 +12334,7 @@ simulation, statistical modeling, machine learning and much more.")
         (base32
          "1bpalpia6r5x1kknbk11p1fzph56fmmnp405ds8icksd3knr5aw4"))))
     (native-inputs
-     `(("python-hypothesis" ,python-hypothesis)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-hypothesis python-pytest python-pytest-runner))
     (build-system python-build-system)
     ;; XXX: Incompatible with Pytest 4: <https://github.com/chardet/chardet/issues/173>.
     (arguments `(#:tests? #f))
@@ -11752,6 +12348,27 @@ automatically detect a wide range of file encodings.")
 (define-public python2-chardet
   (package-with-python2 python-chardet))
 
+(define-public python-charset-normalizer
+  (package
+    (name "python-charset-normalizer")
+    (version "2.0.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "charset-normalizer" version))
+       (sha256
+        (base32 "0rr3iv2xw4rz5ijnfqk229fw85cq6p6rhqqsilm0ldzncblfg63h"))))
+    (build-system python-build-system)
+    (native-inputs
+     (list python-pytest))
+    (home-page "https://github.com/ousret/charset_normalizer")
+    (synopsis "Universal Charset Detector, alternative to Chardet")
+    (description "This library helps you read text from an unknown charset
+encoding.  Motivated by @code{chardet}, it tries to resolve the issue by
+taking a new approach.  All IANA character set names for which the Python core
+library provides codecs are supported.")
+    (license license:expat)))
+
 (define-public python-docopt
   (package
     (name "python-docopt")
@@ -11770,7 +12387,7 @@ automatically detect a wide range of file encodings.")
        (patches (search-patches "python-docopt-pytest6-compat.patch"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -11815,7 +12432,7 @@ programmatically with command-line parsers like @code{getopt} and
                #t))))
        #:tests? #f)) ; no test suite
     (propagated-inputs
-     `(("dialog" ,dialog)))
+     (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
@@ -11851,7 +12468,7 @@ This allows one to make simple text-mode user interfaces on Unix-like systems")
               (patches (search-patches "python-configobj-setuptools.patch"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (synopsis "Config file reading, writing and validation")
     (description "ConfigObj is a simple but powerful config file reader and
 writer: an ini file round tripper.  Its main feature is that it is very easy to
@@ -11875,7 +12492,7 @@ config files.")
                 "1p1pzpf5qpf80bfxsx1mbw9blyhhypjvhl3i60pbmhfmhvlpplgd"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pyyaml" ,python-pyyaml)))
+     (list python-pyyaml))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -11978,7 +12595,7 @@ the standard library.")
          (replace 'check
            (lambda _ (invoke "pytest" "tests.py"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/foutaise/texttable/")
     (synopsis "Python module for creating simple ASCII tables")
     (description "Texttable is a Python module for creating simple ASCII
@@ -12009,6 +12626,17 @@ for atomic file system operations.")
 (define-public python2-atomicwrites
   (package-with-python2 python-atomicwrites))
 
+(define-public python-atomicwrites-1.4
+  (package
+    (inherit python-atomicwrites)
+    (version "1.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "atomicwrites" version))
+              (sha256
+               (base32
+                "0yla2svfhfqrcj8qbyqzx7wi4jy0dwcxvlkg0k3zjd54s5m3jw5f"))))))
+
 (define-public python-qstylizer
   (package
     (name "python-qstylizer")
@@ -12031,16 +12659,15 @@ for atomic file system operations.")
            (lambda _
              (setenv "PBR_VERSION" "3.0.1"))))))
     (native-inputs
-     `(("python-pbr" ,python-pbr)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-catchlog" ,python-pytest-catchlog)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-pytest-xdist" ,python-pytest-xdist)))
+     (list python-pbr
+           python-pytest
+           python-pytest-catchlog
+           python-pytest-cov
+           python-pytest-mock
+           python-pytest-runner
+           python-pytest-xdist))
     (propagated-inputs
-     `(("python-inflection" ,python-inflection)
-       ("python-tinycss" ,python-tinycss)))
+     (list python-inflection python-tinycss))
     (home-page "https://github.com/blambright/qstylizer")
     (synopsis "Qt stylesheet generation utility for PyQt/PySide")
     (description "@code{qstylizer} is a Python package designed to help with
@@ -12050,16 +12677,16 @@ the construction of PyQt/PySide stylesheets.")
 (define-public python-click-threading
   (package
     (name "python-click-threading")
-    (version "0.4.4")
+    (version "0.5.0")
     (source (origin
              (method url-fetch)
              (uri (pypi-uri "click-threading" version))
              (sha256
               (base32
-               "1rsxc2fbkxlhwhlmxsdjzq3spn284l6rvjfcz9mbb17ibgdgmc5j"))))
+               "0f9lmxwcq0y9lb8w0whbni7gwy12gbv74h1igh85qn9aq0iydkxd"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-click" ,python-click)))
+     (list python-click))
     (synopsis "Utilities for multithreading in Click")
     (description "This package provides utilities for multithreading in Click
 applications.")
@@ -12078,7 +12705,7 @@ applications.")
                "091i03bhxyzsdbc6kilxhivfda2f8ymz3b33xa6cj5kbzjiirz8n"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-click" ,python-click)))
+     (list python-click))
     (synopsis "Logging for click applications")
     (description "This package provides a Python library for logging Click
 applications.")
@@ -12099,7 +12726,7 @@ applications.")
     (arguments
       `(#:tests? #f)) ; no target
     (propagated-inputs
-     `(("python-click" ,python-click)))
+     (list python-click))
     (synopsis "Extends click.Group")
     (description "This package extends click.Group to invoke a command without
 explicit subcommand name.")
@@ -12128,13 +12755,13 @@ explicit subcommand name.")
                (invoke "pytest"))
              #t)))))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-freezegun" ,python-freezegun)
-       ("python-pretend" ,python-pretend)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-asyncio" ,python-pytest-asyncio)
-       ("python-simplejson" ,python-simplejson)
-       ("python-twisted" ,python-twisted)))
+     (list python-coverage
+           python-freezegun
+           python-pretend
+           python-pytest
+           python-pytest-asyncio
+           python-simplejson
+           python-twisted))
     (home-page "https://www.structlog.org/")
     (synopsis "Structured Logging for Python")
     (description "@code{structlog} changes logging in Python by adding structure
@@ -12153,8 +12780,7 @@ to your log entries.")
                "1xhak74yj3lqflvpijg15rnkklrigvsp5q7s4as4h6a157d8q8ip"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-pytest python-setuptools-scm))
     (synopsis "Namespace control and lazy-import mechanism")
     (description "With apipkg you can control the exported namespace of a Python
 package and greatly reduce the number of imports for your users.  It is a small
@@ -12188,8 +12814,7 @@ pure Python module that works on virtually all Python versions.")
                         (add-installed-pythonpath inputs outputs)
                         (invoke "pytest" "-vv")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-pytest python-setuptools-scm))
     (synopsis "Rapid multi-Python deployment")
     (description "Execnet provides a share-nothing model with
 channel-send/receive communication for distributing execution across many
@@ -12218,8 +12843,7 @@ minimal and fast API targeting the following uses:
                "19574j3jwssm2dkqykih4568xqfgjsa3hcd79yl5s2vfys3qvh8g"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-pytz" ,python-pytz)))
+     (list python-dateutil python-pytz))
     (synopsis "Python library for parsing iCalendar files")
     (description "The icalendar package is a parser/generator of iCalendar
 files for use with Python.")
@@ -12263,9 +12887,9 @@ files for use with Python.")
          (replace 'check
            (lambda _ (invoke "py.test" "-v"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-args" ,python-args)))
+     (list python-args))
     (home-page "https://github.com/kennethreitz/clint")
     (synopsis "Command-line interface tools")
     (description
@@ -12289,7 +12913,7 @@ output, progress bar display, and pipes.")
                 "1j81nddvnb145x4p81bnfpyai6g26i2dc1633ycsk025bb18m01a"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-appdirs" ,python-appdirs)))
+     (list python-appdirs))
     (home-page "https://github.com/alex/rply")
     (synopsis "Parser generator for Python")
     (description
@@ -12324,14 +12948,9 @@ with a new public API, and RPython support.")
              (setenv "HOME" "/tmp")
              (invoke "nosetests"))))))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-nose" ,python-nose)))
+     (list python-coverage python-nose))
     (propagated-inputs
-     `(("python-astor" ,python-astor)
-       ("python-colorama" ,python-colorama)
-       ("python-rply" ,python-rply)
-       ("python-funcparserlib"
-        ,python-funcparserlib)))
+     (list python-astor python-colorama python-rply python-funcparserlib))
     (home-page "http://hylang.org/")
     (synopsis "Lisp frontend to Python")
     (description
@@ -12494,18 +13113,17 @@ concurrent.futures package from Python 3.2")
          "0b2v3mim90rmfvixkaniz2qrs650sk230rzgd5zhcjfldmlqgxpc"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-utils" ,python-utils)))
+     (list python-six python-utils))
     (native-inputs
-     `(("python-flake8" ,python-flake8)
-       ("python-freezegun" ,python-freezegun)
-       ("python-pycodestyle" ,python-pycodestyle)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cache" ,python-pytest-cache)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-flakes" ,python-pytest-flakes)
-       ("python-pytest-pep8" ,python-pytest-pep8)
-       ("python-sphinx" ,python-sphinx)))
+     (list python-flake8
+           python-freezegun
+           python-pycodestyle
+           python-pytest
+           python-pytest-cache
+           python-pytest-cov
+           python-pytest-flakes
+           python-pytest-pep8
+           python-sphinx))
     (home-page "https://github.com/WoLpH/python-progressbar")
     (synopsis "Text progress bar library for Python")
     (description
@@ -12555,64 +13173,86 @@ text.")
 (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
+    (inherit python-colorama)
+    (version "0.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "colorama" version))
+       (sha256
+        (base32 "189n8hpijy14jfan4ha9f5n06mnl33cxz7ay92wjqgkr639s0vg9"))))))
+
 (define-public python-moto
   (package
     (name "python-moto")
-    ;; XXX: Use a pre-release for compatibility with latest botocore & friends.
-    (version "1.3.16.dev134")
+    (version "2.2.12")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "moto" version))
               (sha256
                (base32
-                "1pix0c7zszjwzfy88n1rpih9vkdm25nqcvz93z850xvgwb4v81bd"))))
+                "0pvay0jp119lzzwf5qj5h6311271yq0w2i6344ds20grpf6g6gz8"))))
     (build-system python-build-system)
     (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'patch-hardcoded-executable-names
-                    (lambda _
-                      (substitute* "moto/batch/models.py"
-                        (("/bin/sh")
-                         (which "sh")))
-                      (substitute* (find-files "tests" "\\.py$")
-                        (("#!/bin/bash")
-                         (string-append "#!" (which "bash"))))
-                      #t))
-                  (replace 'check
-                    (lambda _
-                      (invoke "pytest" "-vv" "-m" "not network"
-                              ;; These tests require Docker.
-                              "-k" "not test_terminate_job \
-and not test_invoke_function_from_sqs_exception"))))))
-    (native-inputs
-     `(("python-flask" ,python-flask)
-       ("python-flask-cors" ,python-flask-cors)
-       ("python-freezegun" ,python-freezegun)
-       ("python-parameterized" ,python-parameterized)
-       ("python-pytest" ,python-pytest)
-       ("python-sure" ,python-sure)))
-    (propagated-inputs
-     `(("python-aws-xray-sdk" ,python-aws-xray-sdk)
-       ("python-boto" ,python-boto)
-       ("python-boto3" ,python-boto3)
-       ("python-botocore" ,python-botocore)
-       ("python-cfn-lint" ,python-cfn-lint)
-       ("python-cryptography" ,python-cryptography)
-       ("python-dateutil" ,python-dateutil)
-       ("python-docker" ,python-docker)
-       ("python-idna" ,python-idna)
-       ("python-jinja2" ,python-jinja2)
-       ("python-jose" ,python-jose)
-       ("python-jsondiff" ,python-jsondiff)
-       ("python-mock" ,python-mock)
-       ("python-pytz" ,python-pytz)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-requests" ,python-requests)
-       ("python-responses" ,python-responses)
-       ("python-six" ,python-six)
-       ("python-sshpubkeys" ,python-sshpubkeys)
-       ("python-werkzeug" ,python-werkzeug)
-       ("python-xmltodict" ,python-xmltodict)))
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-hardcoded-executable-names
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((bash-exec (search-input-file inputs "/bin/sh")))
+               (substitute* "moto/batch/models.py"
+                 (("/bin/sh") bash-exec))
+               (substitute* (find-files "tests" "\\.py$")
+                 (("#!/bin/bash") (string-append "#!" bash-exec))))))
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "-vv" "-m" "not network" "-k"
+                       (string-append
+                        ;; These tests require Docker.
+                        "not test_terminate_job"
+                        " and not test_invoke_function_from_sqs_exception"
+                        " and not test_rotate_secret_lambda_invocations"
+                        ;; These tests also require the network.
+                        " and not test_put_record_batch_http_destination"
+                        " and not test_put_record_http_destination"
+                        " and not test_dependencies"
+                        " and not test_cancel_running_job"
+                        " and not test_container_overrides"))))))))
+    (native-inputs
+     (list python-flask
+           python-flask-cors
+           python-freezegun
+           python-parameterized
+           python-pytest
+           python-sure))
+    (inputs
+     `(("bash" ,bash-minimal)))
+    (propagated-inputs
+     (list python-aws-xray-sdk
+           python-boto
+           python-boto3
+           python-botocore
+           python-cfn-lint
+           python-cryptography
+           python-dateutil
+           python-docker
+           python-idna
+           python-jinja2
+           python-jose
+           python-jsondiff
+           python-mock
+           python-pytz
+           python-pyyaml
+           python-requests
+           python-responses
+           python-six
+           python-sshpubkeys
+           python-werkzeug
+           python-xmltodict))
     (home-page "https://github.com/spulec/moto")
     (synopsis "Mock out the boto library")
     (description
@@ -12633,7 +13273,7 @@ and not test_invoke_function_from_sqs_exception"))))))
        "1dcxvszbikgzh99ybdc7jq0zb9wspy2ds8z9mjsqiyv3q884xpr5"))))
    (build-system python-build-system)
    (propagated-inputs
-    `(("python-pyasn1" ,python-pyasn1)))
+    (list python-pyasn1))
    (synopsis "Pure-Python RSA implementation")
    (description "Python-RSA is a pure-Python RSA implementation.  It supports
 encryption and decryption, signing and verifying signatures, and key
@@ -12658,7 +13298,7 @@ library as well as on the command line.")
        "1c35qyhvy27q9ih9n899f3h4sdnpgq027dbiilly2qb5cvgarchm"))))
    (build-system python-build-system)
    (native-inputs
-    `(("python-setuptools-scm" ,python-setuptools-scm)))
+    (list python-setuptools-scm))
    (synopsis "Plugin and hook calling mechanism for Python")
    (description "Pluggy is an extraction of the plugin manager as used by
 Pytest but stripped of Pytest specific details.")
@@ -12704,7 +13344,7 @@ Pytest but stripped of Pytest specific details.")
     (native-inputs
      ;; XXX: Not actually used since there are no tests but required for
      ;; build.
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://plumbum.readthedocs.io")
     (synopsis "Python shell combinators library")
     (description
@@ -12725,9 +13365,9 @@ code.")
          "1zqqjlgmhgkpzg9ss5ki8wamxl83xn51fs6gn2a8cxsx9vkbvcvj"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-packaging" ,python-packaging)))
+     (list python-packaging))
     (native-inputs
-     `(("python-unittest2" ,python-unittest2)))
+     (list python-unittest2))
     (home-page "https://deprecation.readthedocs.io/")
     (synopsis "Python library to handle automated deprecations")
     (description
@@ -12755,17 +13395,17 @@ that deprecated code is eventually removed.")
      ;; pytest>=2.8.0 for installation.
      '(#:tests? #f))
     (propagated-inputs
-     `(("python-filelock" ,python-filelock)
-       ("python-packaging" ,python-packaging)
-       ("python-pluggy" ,python-pluggy)
-       ("python-py" ,python-py)
-       ("python-six" ,python-six)
-       ("python-toml" ,python-toml)
-       ("python-virtualenv" ,python-virtualenv)))
-    (native-inputs
-     `(; FIXME: Missing: ("python-pytest-timeout" ,python-pytest-timeout)
-       ("python-pytest" ,python-pytest)  ; >= 2.3.5
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-filelock
+           python-packaging
+           python-pluggy
+           python-py
+           python-six
+           python-toml
+           python-virtualenv))
+    (native-inputs
+     (list ; FIXME: Missing: ("python-pytest-timeout" ,python-pytest-timeout)
+           python-pytest ; >= 2.3.5
+           python-setuptools-scm))
     (home-page "https://tox.readthedocs.io")
     (synopsis "Virtualenv-based automation of test activities")
     (description "Tox is a generic virtualenv management and test command line
@@ -12788,7 +13428,7 @@ servers.")
        "0k0765x1mybcrzajh3hiqkl8sy9hs0bmn4900frxy0j3ykvaxqmx"))))
    (build-system python-build-system)
    (native-inputs
-    `(("python-nose" ,python-nose)))
+    (list python-nose))
    (synopsis "JSON Matching Expressions")
    (description "JMESPath (pronounced “james path”) is a Python library that
 allows one to declaratively specify how to extract elements from a JSON
@@ -12811,10 +13451,9 @@ document.")
         (base32 "1kn1w4dp9mrsq6kzmhf4pjmx3wicxc3dw1mwa924q8g48g77lr4c"))))
     (build-system python-build-system)
     (native-inputs
-     `(("cmake" ,cmake)
-       ("python-cython" ,python-cython)))
+     (list cmake python-cython))
     (inputs
-     `(("symengine" ,symengine)))
+     (list symengine))
     (home-page "https://github.com/symengine/symengine.py")
     (synopsis "Python library providing wrappers to SymEngine")
     (description
@@ -12838,10 +13477,9 @@ manipulation library.")
     ;; fail.
     (arguments '(#:tests? #false))
     (propagated-inputs
-     `(("python-future" ,python-future)))
+     (list python-future))
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-numpy" ,python-numpy)))
+     (list python-nose python-numpy))
     (home-page "https://uncertainties-python-package.readthedocs.io/")
     (synopsis "Calculations with uncertainties")
     (description
@@ -12863,7 +13501,7 @@ expression.")
          "0f54sd4w1a72ij1bcxs2x7dk9xf8bzclawijf1z18bqx9f96l2gm"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/newville/asteval")
     (synopsis "Minimalistic evaluator of Python expressions")
     (description
@@ -12884,12 +13522,9 @@ using the @code{ast} module")
          "0iab33jjb60f8kn0k0cqb0vjp1mdskks2n3kpn97zkw5cvjhq2b7"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-asteval" ,python-asteval)
-       ("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)
-       ("python-uncertainties" ,python-uncertainties)))
+     (list python-asteval python-numpy python-scipy python-uncertainties))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://lmfit.github.io/lmfit-py/")
     (synopsis "Least-Squares minimization with bounds and constraints")
     (description
@@ -12918,8 +13553,7 @@ enhancements to optimization and data fitting problems.")
      ;; subset of this library, so keep it around for now, but disable tests.
      '(#:tests? #f))
     (propagated-inputs
-     `(("python-paramiko" ,python-paramiko)
-       ("python-requests" ,python-requests)))
+     (list python-paramiko python-requests))
     (home-page "https://github.com/boto/boto")
     (synopsis "Python interfaces for Amazon Web Services")
     (description
@@ -12934,22 +13568,20 @@ This software is unmaintained, and new projects should use @code{boto3} instead.
   ;; are compatible.
   (package
     (name "python-botocore")
-    (version "1.19.22")
+    (version "1.22.11")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "botocore" version))
        (sha256
         (base32
-         "0iim86x7c6hqmvd61ygz6x6x9glnsfbnyzv2y67qjdcdx8jpkmw7"))))
+         "1z7g2scyzvfq4yj9b4w911k7802ry1v6lqfnwq12l0ak7ywmsvrh"))))
     (build-system python-build-system)
     (arguments
      ;; FIXME: Many tests are failing.
      '(#:tests? #f))
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-jmespath" ,python-jmespath)
-       ("python-urllib3" ,python-urllib3)))
+     (list python-dateutil python-jmespath python-urllib3))
     (home-page "https://github.com/boto/botocore")
     (synopsis "Low-level interface to AWS")
     (description "Botocore is a Python library that provides a low-level
@@ -12962,7 +13594,7 @@ interface to the Amazon Web Services (AWS) API.")
 (define-public python-boto3
   (package
     (name "python-boto3")
-    (version "1.16.22")
+    (version "1.19.11")
     (home-page "https://github.com/boto/boto3")
     (source (origin
               (method git-fetch)
@@ -12970,23 +13602,19 @@ interface to the Amazon Web Services (AWS) API.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0h20hgl4yfl58g75qhb6ibrdmzn47md3srgar7hask14cjmfhfy3"))))
+                "1wv0ci2z5ywvm63dh4mp64vqyyvkm4qxc8dxv8ncrqiiphpgr9aq"))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'delete-network-tests
            ;; Deleting integration tests because they are trying to connect to AWS.
-	   (lambda _
-	     (delete-file-recursively "tests/integration")
-	     #t)))))
+           (lambda _
+             (delete-file-recursively "tests/integration"))))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-mock" ,python-mock)))
+     (list python-nose python-mock python-pytest))
     (propagated-inputs
-     `(("python-botocore" ,python-botocore)
-       ("python-jmespath" ,python-jmespath)
-       ("python-s3transfer" ,python-s3transfer)))
+     (list python-botocore python-jmespath python-s3transfer))
     (synopsis "AWS SDK for Python")
     (description
      "Boto3 is a Python library for writing programs that interact with
@@ -13039,7 +13667,7 @@ in pure Python.")
                #t))))
        #:tests? #f))  ; no tests provided
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (inputs
      `(("xdotool" ,xdotool)
        ("libX11" ,libx11)))
@@ -13074,10 +13702,9 @@ python-xdo for newer bindings.)")
                           (format #t "test suite not run~%"))
                       #t)))))
     (propagated-inputs
-     `(("python-markupsafe" ,python-markupsafe)))
+     (list python-markupsafe))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)))
+     (list python-mock python-nose))
     (home-page "https://www.makotemplates.org/")
     (synopsis "Templating language for Python")
     (description "Mako is a templating language for Python that compiles
@@ -13122,7 +13749,7 @@ server with very acceptable performance.")
          "11yfkzyplizdgndy34vyd5qlmr1n5mxis3a3svxmx8fnccdvknxc"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/pydanny/whichcraft")
     (synopsis "Cross-platform cross-python shutil.which functionality")
     (description
@@ -13142,22 +13769,19 @@ designed to work across multiple versions of Python.")
         (base32 "0mx49whhwcxmvcak27zr7p7ndzkn3w7psfd7fzh3n91fi1r4v6kb"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-freezegun" ,python-freezegun)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-catchlog" ,python-pytest-catchlog)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-mock" ,python-pytest-mock)))
-    (propagated-inputs
-     `(("python-binaryornot" ,python-binaryornot)
-       ("python-click" ,python-click)
-       ("python-future" ,python-future)
-       ("python-jinja2" ,python-jinja2)
-       ("python-jinja2-time" ,python-jinja2-time)
-       ("python-poyo" ,python-poyo)
-       ("python-requests" ,python-requests)
-       ("python-slugify" ,python-slugify)
-       ("python-text-unidecode" ,python-text-unidecode)
-       ("python-whichcraft" ,python-whichcraft)))
+     (list python-freezegun python-pytest python-pytest-catchlog
+           python-pytest-cov python-pytest-mock))
+    (propagated-inputs
+     (list python-binaryornot
+           python-click
+           python-future
+           python-jinja2
+           python-jinja2-time
+           python-poyo
+           python-requests
+           python-slugify
+           python-text-unidecode
+           python-whichcraft))
     (home-page "https://github.com/cookiecutter/cookiecutter")
     (synopsis
      "Command-line utility that creates projects from project templates")
@@ -13180,11 +13804,9 @@ project template.")
          "1xia20wm0vx5dk85kcwgh13bylz8qh47ffjxssd2586r60xi783a"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-webob" ,python-webob)
-       ("python-webtest" ,python-webtest)))
+     (list python-webob python-webtest))
     (propagated-inputs
-     `(("python-lxml" ,python-lxml)
-       ("python-cssselect" ,python-cssselect)))
+     (list python-lxml python-cssselect))
     (home-page "https://github.com/gawel/pyquery")
     (synopsis "Make jQuery-like queries on xml documents")
     (description "pyquery allows you to make jQuery queries on xml documents.
@@ -13243,11 +13865,9 @@ and provides a uniform API regardless of which JSON implementation is used.")
          "1sv600dgqwpimr6i1g59y9hpn50mc236gdqkr7zin13kvlpx0g87"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-case" ,python-case)
-       ("python-pytest-sugar" ,python-pytest-sugar)
-       ("python-mock" ,python-mock)))
+     (list python-case python-pytest-sugar python-mock))
     (propagated-inputs
-     `(("python-vine" ,python-vine)))
+     (list python-vine))
     (home-page "https://github.com/celery/py-amqp")
     (synopsis
      "Low-level AMQP client for Python (fork of amqplib)")
@@ -13281,8 +13901,7 @@ alternative when librabbitmq is not available.")
          "0jd9864k3csc06kipiwzjlk9mq4054s8kzk5q1cfnxj8572s4iv4"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-twisted" ,python-twisted)))
+     (list python-six python-twisted))
     (home-page "https://github.com/txamqp/txamqp")
     (synopsis "Communicate with AMQP peers and brokers using Twisted")
     (description
@@ -13294,9 +13913,6 @@ also includes support for using Thrift RPC over AMQP in Twisted
 applications.")
     (license license:asl2.0)))
 
-(define-public python2-txamqp
-  (package-with-python2 python-txamqp))
-
 (define-public python-kombu
   (package
     (name "python-kombu")
@@ -13310,15 +13926,10 @@ applications.")
          "15k8f7mzqr049sg9vi48m19vjykviafk3f0p5xzgw9by0x0kyxjj"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-case" ,python-case)
-       ("python-pyro4" ,python-pyro4)
-       ("python-pytest-sugar" ,python-pytest-sugar)
-       ("python-pytz" ,python-pytz)))
+     (list python-mock python-case python-pyro4 python-pytest-sugar
+           python-pytz))
     (propagated-inputs
-     `(("python-anyjson" ,python-anyjson)
-       ("python-amqp" ,python-amqp)
-       ("python-redis" ,python-redis)))
+     (list python-anyjson python-amqp python-redis))
     (home-page "https://kombu.readthedocs.io")
     (synopsis "Message passing library for Python")
     (description "The aim of Kombu is to make messaging in Python as easy as
@@ -13354,8 +13965,7 @@ RabbitMQ messaging server is the most popular implementation.")
          "03msmapj3s5zgqk87d646mafz7a01h5bm2wijalgpi0s80ks5na2"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-case" ,python-case)
-       ("python-pytest" ,python-pytest)))
+     (list python-case python-pytest))
     (home-page "https://github.com/celery/billiard")
     (synopsis
      "Python multiprocessing fork with improvements and bugfixes")
@@ -13400,12 +14010,9 @@ Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.")
                 "pytest>=3.0"))
              #t)))))
     (native-inputs
-     `(("python-case" ,python-case)
-       ("python-pytest" ,python-pytest)))
+     (list python-case python-pytest))
     (propagated-inputs
-     `(("python-pytz" ,python-pytz)
-       ("python-billiard" ,python-billiard)
-       ("python-kombu" ,python-kombu)))
+     (list python-pytz python-billiard python-kombu))
     (home-page "https://celeryproject.org")
     (synopsis "Distributed Task Queue")
     (description "Celery is an asynchronous task queue/job queue based on
@@ -13501,27 +14108,27 @@ ISO 8859, etc.).")
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "-vv" "-k"
-                     ;; These tests try to download online data.
-                     (string-append "not test_PolyLineROI"
-                                    " and not test_getArrayRegion_axisorder"
-                                    " and not test_getArrayRegion"
-                                    " and not test_PlotCurveItem"
-                                    " and not test_NonUniformImage_colormap"
-                                    " and not test_NonUniformImage_lut"
-                                    " and not test_ImageItem_axisorder"
-                                    " and not test_ImageItem")))))))
-    (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-xdist" ,python-pytest-xdist)))
+                     (string-append
+                      ;; These tests try to download online data.
+                      "not test_PolyLineROI"
+                      " and not test_getArrayRegion_axisorder"
+                      " and not test_getArrayRegion"
+                      " and not test_PlotCurveItem"
+                      " and not test_NonUniformImage_colormap"
+                      " and not test_NonUniformImage_lut"
+                      " and not test_ImageItem_axisorder"
+                      " and not test_ImageItem"
+                      ;; The test_reload test fails and suggests adding
+                      ;; "--assert=plain" to the pytest command, but it
+                      ;; doesn't solve the failure.
+                      " and not test_reload")))))))
+    (native-inputs
+     (list python-pytest python-pytest-cov python-pytest-xdist))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (propagated-inputs
-     `(("python-h5py" ,python-h5py)
-       ("python-numpy" ,python-numpy)
-       ("python-pyopengl" ,python-pyopengl)
-       ("python-scipy" ,python-scipy)
-       ("python-pyqt" ,python-pyqt)))
+     (list python-h5py python-numpy python-pyopengl python-scipy
+           python-pyqt))
     (home-page "http://www.pyqtgraph.org")
     (synopsis "Scientific graphics and GUI library for Python")
     (description
@@ -13554,10 +14161,9 @@ applications.")
              (setenv "QT_QPA_PLATFORM" "offscreen")
              #t)))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest python-pytest-runner))
     (propagated-inputs
-     `(("python-pyqt" ,python-pyqt)))
+     (list python-pyqt))
     (home-page "https://github.com/CabbageDevelopment/qasync")
     (synopsis "Implementation of the PEP 3156 Event-Loop with Qt")
     (description
@@ -13626,8 +14232,7 @@ main process so that they are handled correctly.")
      '(;; The test suite relies on some non-portable Windows interfaces.
        #:tests? #f))
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-pyicu" ,python-pyicu)))
+     (list python-dateutil python-pyicu))
     (synopsis "Parse and generate vCard and vCalendar files")
     (description "Vobject is intended to be a full featured Python package for
 parsing and generating vCard and vCalendar files.  Currently, iCalendar files
@@ -13651,7 +14256,7 @@ way.")
                (base32
                 "00yvj8bxmhhhhd74v7j0x673is7vizmxwgb3dd5xmnkr74ybyi7w"))))
     (build-system python-build-system)
-    (native-inputs `(("python-pytest" ,python-pytest-6)))
+    (native-inputs (list python-pytest-6))
     (home-page "https://software.clapper.org/munkres/")
     (synopsis "Implementation of the Munkres algorithm")
     (description "The Munkres module provides an implementation of the Munkres
@@ -13659,9 +14264,6 @@ algorithm (also called the Hungarian algorithm or the Kuhn-Munkres algorithm),
 useful for solving the Assignment Problem.")
     (license license:bsd-3)))
 
-(define-public python2-munkres
-  (package-with-python2 python-munkres))
-
 (define-public python-whoosh
   (package
     (name "python-whoosh")
@@ -13676,7 +14278,7 @@ useful for solving the Assignment Problem.")
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; Test invocation is no longer supported by Python.
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://bitbucket.org/mchaput/whoosh")
     (synopsis "Full text indexing, search, and spell checking library")
     (description
@@ -13692,6 +14294,50 @@ checking library.")
           ,python2-backport-ssl-match-hostname)
           ,@(package-propagated-inputs whoosh))))))
 
+(define-public python-codespell
+  (package
+    (name "python-codespell")
+    (version "2.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "codespell" version))
+        (sha256
+          (base32 "1r9y714cz8m894rxp7pyvicr1lw2iid24vz6fxbl5wzy8ibgxlqr"))))
+    (build-system python-build-system)
+    (inputs
+      (list python-chardet))
+    (native-inputs
+      (list python-check-manifest python-flake8 python-pytest
+            python-pytest-cov python-pytest-dependency))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key outputs tests? #:allow-other-keys)
+             (when tests?
+               ;; Make installed executable available for running the tests.
+               (setenv "PATH"
+                       (string-append (assoc-ref outputs "out") "/bin"
+                                      ":" (getenv "PATH")))
+               (invoke "pytest" "-vv")))))))
+    (home-page "https://github.com/codespell-project/codespell/")
+    (synopsis "Spellchecker for code")
+    (description "Codespell fixes common misspellings in text files.
+It's designed primarily for checking misspelled words in source code,
+but it can be used with other files as well.  It does not check for word
+membership in a complete dictionary, but instead looks for a set of
+common misspellings.  Therefore it should catch errors like \"adn\", but
+it will not catch \"adnasdfasdf\".  This also means it shouldn't
+generate false-positives when you use a niche term it doesn't know
+about.")
+    (license
+      (list
+        ; for codespell and codespell_lib
+        license:gpl2
+        ; for dictionary*.txt
+        license:cc-by-sa3.0))))
+
 (define-public python-pathlib
   (package
     (name "python-pathlib")
@@ -13746,8 +14392,7 @@ anymore.")
     (arguments
      `(#:python ,python-2))
     (propagated-inputs
-     `(("python2-scandir" ,python2-scandir)
-       ("python2-six" ,python2-six)))
+     (list python2-scandir python2-six))
     (home-page "https://pypi.org/project/pathlib2/")
     (synopsis "Object-oriented file system paths - backport of standard
 pathlib module")
@@ -13798,7 +14443,7 @@ ambiguities (forward vs. backward slashes, etc.).
                (add-installed-pythonpath inputs outputs)
                (invoke "pytest" "-vv" "jellyfish/test.py")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/jamesturk/jellyfish")
     (synopsis "Approximate and phonetic matching of strings")
     (description "Jellyfish uses a variety of string comparison and phonetic
@@ -13825,7 +14470,7 @@ encoding algorithms to do fuzzy string matching.")
      `(;; It supports Python 3, but Python 3 can already do Unicode CSV.
        #:python ,python-2))
     (native-inputs
-     `(("python2-unittest2" ,python2-unittest2)))
+     (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
@@ -13865,12 +14510,9 @@ module, adding support for Unicode strings.")
                          (find-files out "\\.gz$"))
                #t))))))
     (propagated-inputs
-     `(("python-chardet" ,python-chardet)
-       ("python-cryptography" ,python-cryptography)
-       ("python-sortedcontainers" ,python-sortedcontainers)))
+     (list python-chardet python-cryptography python-sortedcontainers))
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-tox" ,python-tox)))
+     (list python-nose python-tox))
     (home-page "https://github.com/pdfminer/pdfminer.six")
     (synopsis "PDF parser and analyzer")
     (description "@code{pdfminer.six} is a community maintained fork of
@@ -13908,8 +14550,8 @@ can also be used to get the exact location, font or color of the text.")
            (lambda* (#:key inputs tests? #:allow-other-keys)
              (when tests?
                (invoke "pytest" "-vv")))))))
-    (native-inputs `(("python-pytest" ,python-pytest)))
-    (inputs `(("libarchive" ,libarchive)))
+    (native-inputs (list python-pytest))
+    (inputs (list libarchive))
     (home-page "https://github.com/markokr/rarfile")
     (synopsis "RAR archive reader for Python")
     (description "This is Python module for RAR archive reading.  The interface
@@ -13938,12 +14580,8 @@ is made as zipfile like as possible.")
                                  "tests")
                (invoke "python" "-m" "pytest" "-vv")))))))
     (propagated-inputs
-     `(("python-attrs" ,python-attrs)
-       ("python-colorama" ,python-colorama)
-       ("python-commonmark" ,python-commonmark)
-       ("python-ipywidgets" ,python-ipywidgets)
-       ("python-pygments" ,python-pygments)
-       ("python-typing-extensions" ,python-typing-extensions)))
+     (list python-attrs python-colorama python-commonmark python-pygments
+           python-typing-extensions))
     (native-inputs
      `(("python-pytest" ,python-pytest)
        ("tests"
@@ -13969,16 +14607,17 @@ syntax highlighting, markdown and more to the terminal.")
 (define-public python-magic
   (package
     (name "python-magic")
-    (version "0.4.22")
+    (version "0.4.24")
     (home-page "https://github.com/ahupp/python-magic")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference (url home-page) (commit version)))
        (file-name (git-file-name name version))
+       (patches (search-patches "python-magic-python-bytecode.patch"))
        (sha256
         (base32
-         "0zbdjr5shijs0jayz7gycpx0kn6v2bh83dpanyajk2vmy47jvbd6"))))
+         "17jalhjbfd600lzfz296m0nvgp6c7vx1mgz82jbzn8hgdzknf4w0"))))
     (build-system python-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -13990,22 +14629,26 @@ syntax highlighting, markdown and more to the terminal.")
                   ;; python-magic to fail.
                   (add-before 'build 'hard-code-path-to-libmagic
                     (lambda* (#:key inputs #:allow-other-keys)
-                      (let ((file (assoc-ref inputs "file")))
+                      (let ((magic (search-input-file inputs "/lib/libmagic.so")))
                         (substitute* "magic/loader.py"
-                          (("ctypes\\.util\\.find_library\\('magic'\\)")
-                           (string-append "'" file "/lib/libmagic.so'"))))))
+                          (("find_library\\('magic'\\)")
+                           (string-append "'" magic "'"))))))
                   (replace 'check
                     (lambda* (#:key tests? #:allow-other-keys)
                       ;; The test suite mandates this variable.
                       (setenv "LC_ALL" "en_US.UTF-8")
                       (if tests?
-                          (invoke "python" "./test/test.py")
+                          (with-directory-excursion "test"
+                            (invoke "python" "./test.py")
+                            (invoke "python" "./libmagic_test.py"))
                           (format #t "test suite not run~%")))))))
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (inputs
      ;; python-magic needs to be able to find libmagic.so.
-     `(("file" ,file)))
+     ;; Use a newer version because 5.39 returns bogus for some archives
+     ;; (notably Chromium .crx extensions), which breaks e.g. 'diffoscope'.
+     (list file-next))
     (synopsis "File type identification using libmagic")
     (description
      "This module uses ctypes to access the libmagic file type
@@ -14037,15 +14680,15 @@ the same purpose: to provide Python bindings for libmagic.")
      `(#:python ,python-2
        #:tests? #f))
     (propagated-inputs
-     `(("python2-dateutil" ,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" ,python2-magic)))
+     (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
@@ -14069,9 +14712,9 @@ CloudFront content delivery network.")
             "107x2wmchlch8saixb488cgjz9n6inl38wi7nxkb942rbaapxiqb"))))
     (build-system python-build-system)
     (native-inputs
-      `(("python-nose" ,python-nose)))
+      (list python-nose))
     (inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (arguments
       `(#:phases
         (modify-phases %standard-phases
@@ -14125,14 +14768,14 @@ development version of CPython that are not available in older releases.")
 (define-public python-future
   (package
     (name "python-future")
-    (version "0.17.1")
+    (version "0.18.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "future" version))
        (sha256
         (base32
-         "1f2rlqn9rh7adgir52dlbqz69gsab44x0mlm8gf1cs7xvhv54137"))))
+         "0zakvfj87gy6mn1nba06sdha63rn4njm7bhh0wzyrxhcny8avgmi"))))
     (build-system python-build-system)
     ;; Many tests connect to the network or are otherwise flawed.
     ;; https://github.com/PythonCharmers/python-future/issues/210
@@ -14162,10 +14805,9 @@ to support both Python 2 and Python 3 with minimal overhead.")
             "15ix8crpad26cfl1skyg7qajqqfdrm8q5ahhmlfmqi1aw0jqj2g2"))))
     (build-system python-build-system)
     (native-inputs
-      `(("python-cython" ,python-cython)
-        ("python-sphinx" ,python-sphinx)))
+      (list python-cython python-sphinx))
     (inputs
-      `(("pari-gp" ,pari-gp)))
+      (list pari-gp))
     (arguments
      `(#:modules ((guix build python-build-system)
                   ((guix build gnu-build-system) #:prefix gnu:)
@@ -14224,8 +14866,7 @@ respectively.")
                                    "            line += ' -L" pcre "/lib"
                                    " -L " libgc "/lib'")))
                   #t))))))
-  (inputs `(("pcre" ,pcre)
-            ("libgc" ,libgc)))
+  (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
@@ -14264,7 +14905,7 @@ to occurrences in strings and comments.")
         (base32 "16z8zq83hxy48g6hh4xczbdz50qvxv9k1aahr4fqq7jis60cc262"))))
     (build-system python-build-system)
     (inputs
-     `(("file" ,file)))
+     (list file))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -14303,8 +14944,7 @@ own code, responding to click events and updating clock every second.")
            (lambda _
              (invoke "py.test" "-vv" "tests" "README.rst"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-six" ,python-six)))
+     (list python-pytest python-six))
     (home-page "https://github.com/ionelmc/python-tblib")
     (synopsis "Traceback serialization library")
     (description
@@ -14322,6 +14962,37 @@ multiple processes (imagine multiprocessing, billiard, futures, celery etc).
 (define-public python2-tblib
   (package-with-python2 python-tblib))
 
+(define-public python-tftpy
+  (package
+    (name "python-tftpy")
+    (version "0.8.2")
+    (source
+     (origin
+       (method git-fetch)               ;no tests in PyPI archive
+       (uri (git-reference
+             (url "https://github.com/msoulier/tftpy")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1gl04ps8h8r7av3h0zbm8gwmkqs9rkk5vf7n8mv2bzrkwvy9hacc"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+                      (when tests?
+                        ;; The default DEBUG logging level is way too verbose.
+                        (substitute* "t/test.py"
+                          (("logging\\.DEBUG")
+                           "logging.INFO"))
+                        (invoke "python" "-m" "unittest" "t/test.py")))))))
+    (home-page "http://tftpy.sourceforge.net/")
+    (synopsis "Python trivial file transfer protocol (TFTP) library")
+    (description "TFTPy is a trivial file transfer protocol (TFTP) Python
+library.  It can be used to act both as a TFTP client or TFTP server.")
+    (license license:expat)))
+
 (define-public python-greenlet
   (package
     (name "python-greenlet")
@@ -14355,10 +15026,9 @@ are synchronized with data exchanges on \"channels\".")
          "19qmqsh984zq1rzzjy4vqnmviaqnymcyl8h7z99pnicbgwnm2adz"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-graphviz" ,python-graphviz)))
+     (list python-graphviz))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("graphviz" ,graphviz)))
+     (list python-mock graphviz))
     (home-page "https://mg.pov.lt/objgraph/")
     (synopsis "Draw Python object reference graphs with graphviz")
     (description
@@ -14474,14 +15144,11 @@ graphviz.")
        ("python-zope.event" ,python-zope-event)
        ("python-zope.interface" ,python-zope-interface)))
     (native-inputs
-     `(("python-six" ,python-six)
-
-       ;; For tests.
-       ("python-dnspython" ,python-dnspython)
-       ("python-psutil" ,python-psutil)))
+     (list python-six
+           ;; For tests.
+           python-dnspython python-psutil))
     (inputs
-     `(("c-ares" ,c-ares)
-       ("libev" ,libev)))
+     (list c-ares libev))
     (home-page "https://www.gevent.org/")
     (synopsis "Coroutine-based network library")
     (description
@@ -14529,12 +15196,12 @@ format.")
              (substitute* "src/twisted/python/_setup.py"
                (("\".+ = twisted\\.conch\\.scripts\\..+\",") "")))))))
     (propagated-inputs
-     `(("python-zope-interface" ,python-zope-interface)
-       ("python-pyhamcrest" ,python-pyhamcrest)
-       ("python-incremental" ,python-incremental)
-       ("python-hyperlink" ,python-hyperlink)
-       ("python-constantly" ,python-constantly)
-       ("python-automat" ,python-automat)))
+     (list python-zope-interface
+           python-pyhamcrest
+           python-incremental
+           python-hyperlink
+           python-constantly
+           python-automat))
     (home-page "https://twistedmatrix.com/")
     (synopsis "Asynchronous networking framework written in Python")
     (description
@@ -14542,9 +15209,6 @@ format.")
 focus on event-based network programming and multiprotocol integration.")
     (license license:expat)))
 
-(define-public python2-twisted
-  (package-with-python2 python-twisted))
-
 (define-public python-pika
   (package
     (name "python-pika")
@@ -14577,13 +15241,12 @@ focus on event-based network programming and multiprotocol integration.")
                     (lambda _
                       (invoke "nosetests"))))))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)
-
-       ;; These are optional at runtime, and provided here for tests.
-       ("python-gevent" ,python-gevent)
-       ("python-tornado" ,python-tornado)
-       ("python-twisted" ,python-twisted)))
+     (list python-mock
+           python-nose
+           ;; These are optional at runtime, and provided here for tests.
+           python-gevent
+           python-tornado
+           python-twisted))
     (home-page "https://pika.readthedocs.org")
     (synopsis "Pure Python AMQP Client Library")
     (description
@@ -14649,7 +15312,7 @@ data in Python.")
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; XXX: needs zookeeper
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://kazoo.readthedocs.org")
     (synopsis "High-level Zookeeper client library")
     (description
@@ -14674,11 +15337,9 @@ programming errors.")
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; XXX: needs zookeeper, kafka, etc.
     (propagated-inputs
-     `(("python-gevent" ,python-gevent)
-       ("python-kazoo" ,python-kazoo)
-       ("python-tabulate" ,python-tabulate)))
+     (list python-gevent python-kazoo python-tabulate))
     (inputs
-     `(("librdkafka" ,librdkafka)))
+     (list librdkafka))
     (home-page "https://pykafka.readthedocs.io/")
     (synopsis "Apache Kafka client for Python")
     (description
@@ -14764,7 +15425,7 @@ objects, patterned after the Mocha library for Ruby.")
                "1jhnxgnw8y3mbzjssixh6qkc7a3afc4fygajhqrqalnilyvpzshq"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/jpvanhal/inflection")
     (synopsis "Python string transformation library")
     (description
@@ -14809,15 +15470,10 @@ Wikipedia code samples at
                 "17q6wi3q280kxmxzb2iwnnqih2xbljn18v0bjx2ip18p079j43ix"))))
     (build-system python-build-system)
     (native-inputs
-     `( ;; For testing
-       ("python-mock" ,python-mock)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-pytest" ,python-pytest)))
+     (list ;; For testing
+           python-mock python-pytest-mock python-pytest))
     (propagated-inputs
-     `(("python-backpack" ,python-backpack)
-       ("python-clikit" ,python-clikit)
-       ("python-pastel" ,python-pastel)
-       ("python-pylev" ,python-pylev)))
+     (list python-backpack python-clikit python-pastel python-pylev))
     (home-page "https://github.com/sdispater/cleo")
     (synopsis "Command-line arguments library for Python")
     (description
@@ -14840,8 +15496,7 @@ docstring and colored output.")
         (base32 "062n694sfv24ylda6nh8228y2q9hrvy554kqx84y7czsjfbg4mxc"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python-pytest python-pyyaml))
     (home-page "https://github.com/sdispater/tomlkit")
     (synopsis "Style-preserving TOML library")
     (description
@@ -14894,7 +15549,7 @@ running in.")
          "0kvyapavbirk2x3n1jx4yb9nyigrj1s3x15nm3qhpvhkpqvqdqm2"))
        (patches (search-patches "python-memcached-syntax-warnings.patch"))))
     (build-system python-build-system)
-    (propagated-inputs `(("python-six" ,python-six)))
+    (propagated-inputs (list python-six))
     (home-page
      "https://github.com/linsomniac/python-memcached")
     (synopsis "Pure python memcached client")
@@ -14918,9 +15573,7 @@ more, possibly remote, memcached servers.")
     (build-system python-build-system)
     (arguments '(#:tests? #f))  ; no test in the PyPI tarball
     (propagated-inputs
-     `(("python-crashtest" ,python-crashtest)
-       ("python-pastel" ,python-pastel)
-       ("python-pylev" ,python-pylev)))
+     (list python-crashtest python-pastel python-pylev))
     (home-page "https://github.com/sdispater/clikit")
     (synopsis "Group of utilities to build command line interfaces")
     (description
@@ -14978,15 +15631,10 @@ strings require only one extra byte in addition to the strings themselves.")
            (lambda _ (invoke "pifpaf" "run" "memcached" "--port" "11211" "--"
                              "pytest"))))))
     (native-inputs
-     `(("memcached" ,memcached)
-       ("python-fakeredis" ,python-fakeredis)
-       ("python-flexmock" ,python-flexmock)
-       ("python-pifpaf" ,python-pifpaf)
-       ("python-pytest" ,python-pytest)))
+     (list memcached python-fakeredis python-flexmock python-pifpaf
+           python-pytest))
     (propagated-inputs
-     `(("python-memcached" ,python-memcached)
-       ("python-msgpack-python" ,python-msgpack-python)
-       ("python-redis" ,python-redis)))
+     (list python-memcached python-msgpack-python python-redis))
     (home-page "https://github.com/sdispater/cachy")
     (synopsis "Simple yet effective caching library")
     (description
@@ -14998,7 +15646,7 @@ database, file, dict stores.  Cachy supports python versions 2.7+ and 3.2+.")
 (define-public poetry
   (package
     (name "poetry")
-    (version "1.1.5")
+    (version "1.1.11")
     ;; Poetry can only be built from source with Poetry.
     (source
      (origin
@@ -15006,7 +15654,7 @@ database, file, dict stores.  Cachy supports python versions 2.7+ and 3.2+.")
        (uri (pypi-uri "poetry" version))
        (sha256
         (base32
-         "1dvx08ksv5wnsj45db23921rj136akmcnxa0kmlsddf3wbh6wcka"))))
+         "17pnf2j4adlm9fhyg5jkkvs8bzcigb6nj72vr0687fxybzsj4zbx"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f ;; Pypi does not have tests.
@@ -15022,23 +15670,23 @@ database, file, dict stores.  Cachy supports python versions 2.7+ and 3.2+.")
                (("packaging>=20.4,<21.0") "packaging>=20.0,<21.0"))
              #t)))))
     (propagated-inputs
-     `(("python-cachecontrol" ,python-cachecontrol)
-       ("python-cachy" ,python-cachy)
-       ("python-cleo" ,python-cleo)
-       ("python-clikit" ,python-clikit)
-       ("python-html5lib" ,python-html5lib)
-       ("python-keyring" ,python-keyring)
-       ("python-msgpack-transitional" ,python-msgpack-transitional)
-       ("python-packaging" ,python-packaging)
-       ("python-pexpect" ,python-pexpect)
-       ("python-pip" ,python-pip)
-       ("python-pkginfo" ,python-pkginfo)
-       ("python-poetry-core" ,python-poetry-core)
-       ("python-requests" ,python-requests)
-       ("python-requests-toolbelt" ,python-requests-toolbelt-0.9.1)
-       ("python-shellingham" ,python-shellingham)
-       ("python-tomlkit" ,python-tomlkit)
-       ("python-virtualenv" ,python-virtualenv)))
+     (list python-cachecontrol
+           python-cachy
+           python-cleo
+           python-clikit
+           python-html5lib
+           python-keyring
+           python-msgpack-transitional
+           python-packaging
+           python-pexpect
+           python-pip
+           python-pkginfo
+           python-poetry-core
+           python-requests
+           python-requests-toolbelt-0.9.1
+           python-shellingham
+           python-tomlkit
+           python-virtualenv))
     (home-page "https://python-poetry.org")
     (synopsis "Python dependency management and packaging made easy")
     (description "Poetry is a tool for dependency management and packaging
@@ -15098,12 +15746,9 @@ some degree most natural languages too.")
              (when tests?
                (invoke "python" "-m" "unittest")))))))
     (native-inputs
-     `(("python-black" ,python-black)
-       ("python-isort" ,python-isort)))
+     (list python-black python-isort))
     (propagated-inputs
-     `(("python-typing-extensions" ,python-typing-extensions)
-       ("python-typing-inspect" ,python-typing-inspect)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python-typing-extensions python-typing-inspect python-pyyaml))
     (home-page "https://github.com/Instagram/LibCST")
     (synopsis "Concrete Syntax Tree (CST) parser and serializer library for Python")
     (description
@@ -15142,8 +15787,7 @@ feels like an AST.")
               (patches (search-patches "python-typing-inspect-fix.patch"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-mypy-extensions" ,python-mypy-extensions)
-       ("python-typing-extensions" ,python-typing-extensions)))
+     (list python-mypy-extensions python-typing-extensions))
     (home-page "https://github.com/ilevkivskyi/typing_inspect")
     (synopsis "API for inspection of types in the Python @code{typing} module")
     (description
@@ -15162,7 +15806,7 @@ inspection of types defined in the Python standard typing module.")
                (base32
                 "0hwh29m9wa582ramj30p4pysckdrmki1z1b8iaaxk6mpfx2kc8wp"))))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (build-system python-build-system)
     (home-page "https://github.com/ionelmc/python-lazy-object-proxy")
     (synopsis "Lazy object proxy for python")
@@ -15185,8 +15829,21 @@ until the object is actually required, and caches the result of said call.")
                (base32
                 "1m0xvyby8baaxp6pfm0fgq8d2pq5dd8qm8bzfbrs009jaw5pza74"))))
     (build-system python-build-system)
-    (native-inputs `(("unzip" ,unzip)))
-    (arguments '(#:tests? #f))          ; XXX: requires internet access
+    (arguments
+     `(#:tests? #f                      ; XXX: requires internet access
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-getprotobyname-calls
+           ;; These calls are problematic in the build environment as there is
+           ;; no /etc/protocols.  This breaks the sanity-check phase of any
+           ;; package depnding on this one.
+           (lambda _
+             (substitute* "dns/rdtypes/IN/WKS.py"
+               (("socket.getprotobyname\\('tcp'\\)")
+                "6")
+               (("socket.getprotobyname\\('udp'\\)")
+                "17")))))))
+    (native-inputs (list unzip))
     (home-page "https://www.dnspython.org")
     (synopsis "DNS toolkit for Python")
     (description
@@ -15262,8 +15919,7 @@ simple, lightweight implementation.")
                (("dnspython3") "dnspython"))
              #t)))))
     (propagated-inputs
-     `(("python-dnspython" ,python-dnspython)
-       ("python-idna" ,python-idna)))
+     (list python-dnspython python-idna))
     (home-page "https://github.com/JoshData/python-email-validator")
     (synopsis "Email address validation library for Python")
     (description
@@ -15276,14 +15932,29 @@ simple, lightweight implementation.")
 (define-public python-ukpostcodeparser
   (package
     (name "python-ukpostcodeparser")
-    (version "1.0.3")
+    (version "1.1.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "UkPostcodeParser" version))
               (sha256
                (base32
-                "1jwg9z4rz51mcka1821rwgycsd0mcicyp1kiwjfa2kvg8bm9p2qd"))))
+                "03jkf1ygbwq3akzbcjyjk1akc1hv2sfgx90306pq1nwklbpn80lk"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; Tests for lowercase postcodes fail.
+               (invoke "pytest" "-vv" "ukpostcodeparser/test/parser.py" "-k"
+                       (string-append "not test_091 "
+                                      "and not test_097 "
+                                      "and not test_098 "
+                                      "and not test_125 "
+                                      "and not test_131"))))))))
+    (native-inputs
+     (list python-pytest))
     (home-page "https://github.com/hamstah/ukpostcodeparser")
     (synopsis "UK Postcode parser for Python")
     (description
@@ -15296,58 +15967,35 @@ parsing UK postcodes.")
 
 (define-public python-faker
   (package
-  (name "python-faker")
-  (version "8.12.1")
-  (source (origin
-            (method url-fetch)
-            (uri (pypi-uri "Faker" version))
-            (sha256
-             (base32
-              "1f95g8adzdh97cbfq7j3482iy4yskbahhjma2cm2mrhrdmi5j241"))))
-  (build-system python-build-system)
-  (arguments
-   '(#:phases
-     (modify-phases %standard-phases
-       (replace 'check
-         (lambda _ (invoke "python" "-m" "pytest" "-v"))))))
-  (native-inputs
-   `(;; For testing
-     ("python-freezegun" ,python-freezegun)
-     ("python-pytest" ,python-pytest)
-     ("python-random2" ,python-random2)
-     ("python-ukpostcodeparser" ,python-ukpostcodeparser)
-     ("python-validators" ,python-validators)))
-  (propagated-inputs
-   `(("python-dateutil" ,python-dateutil)
-     ("python-text-unidecode" ,python-text-unidecode)))
-  (home-page "https://github.com/joke2k/faker")
-  (synopsis "Python package that generates fake data")
-  (description
-   "Faker is a Python package that generates fake data such as names,
+    (name "python-faker")
+    (version "9.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "Faker" version))
+              (sha256
+               (base32
+                "0lpfdc4ndvk7chgqrfd2b1my4n54pccq9b645vp9cp5s5ypyknfd"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _ (invoke "python" "-m" "pytest" "-v"))))))
+    (native-inputs
+     (list ;; For testing
+           python-freezegun
+           python-pytest-6
+           python-random2
+           python-ukpostcodeparser
+           python-validators))
+    (propagated-inputs
+     (list python-dateutil python-text-unidecode))
+    (home-page "https://github.com/joke2k/faker")
+    (synopsis "Python package that generates fake data")
+    (description
+     "Faker is a Python package that generates fake data such as names,
 addresses, and phone numbers.")
-  (license license:expat)
-  (properties `((python2-variant . ,(delay python2-faker))))))
-
-;; Faker 4.0 dropped Python 2 support, so we stick with this older version here.
-(define-public python2-faker
-  (let ((base (package-with-python2 (strip-python2-variant
-                                     python-faker))))
-    (package
-      (inherit base)
-      (version "3.0.1")
-      (source (origin
-                (method url-fetch)
-                (uri (pypi-uri "Faker" version))
-                (sha256
-                 (base32
-                  "11cr0qvspkdh6198rqy56qildk7bnp6llj8kyy1dan5sp5n4dxy7"))))
-      (native-inputs
-       `(("python-mock" ,python2-mock)
-         ,@(package-native-inputs base)))
-      (propagated-inputs
-       `(("python2-ipaddress" ,python2-ipaddress)
-         ("python2-six" ,python2-six)
-         ,@(package-propagated-inputs base))))))
+    (license license:expat)))
 
 (define-public python-pyaml
   (package
@@ -15361,9 +16009,9 @@ addresses, and phone numbers.")
                 "0fi604ix8lbpj1266q7js6szm771saprdzzcdwmj43wy83694qmr"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-unidecode" ,python-unidecode)))
+     (list python-unidecode))
     (propagated-inputs
-     `(("python-pyyaml" ,python-pyyaml)))
+     (list python-pyyaml))
     (home-page "https://github.com/mk-fg/pretty-yaml")
     (synopsis "YAML pretty-print library for Python")
     (description
@@ -15387,11 +16035,9 @@ YAML-serialized data.")
          "14rq1mvm0jda90lcx9gyyby9dvq4x3js2cmxvd6vl4686ixwyqh1"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-nose" ,python-nose)
-       ("python-toml" ,python-toml)))
+     (list python-pytest python-nose python-toml))
     (propagated-inputs
-     `(("python-simplejson" ,python-simplejson)))
+     (list python-simplejson))
     (home-page "https://github.com/sdispater/backpack")
     (synopsis "Utilities for working with Python collections")
     (description "Backpack provides some useful utilities for working with
@@ -15424,9 +16070,9 @@ collections of data.")
              (add-installed-pythonpath inputs outputs)
              (invoke "py.test"))))))
     (propagated-inputs
-     `(("python-wcwidth" ,python-wcwidth)))
+     (list python-wcwidth))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/prompt-toolkit/python-prompt-toolkit")
     (synopsis "Library for building command line interfaces in Python")
     (description
@@ -15450,9 +16096,7 @@ characters, mouse support, and auto suggestions.")
         (base32
          "0fgacqk73w7s932vy46pan2yp8rvjmlkag20xvaydh9mhf6h85zx"))))
     (propagated-inputs
-     `(("python-wcwidth" ,python-wcwidth)
-       ("python-six" ,python-six)
-       ("python-pygments" ,python-pygments)))
+     (list python-wcwidth python-six python-pygments))
     (properties '())))
 
 (define-public python2-prompt-toolkit
@@ -15473,80 +16117,44 @@ characters, mouse support, and auto suggestions.")
   (package-with-python2 python-prompt-toolkit-1))
 
 (define-public python-jedi
-  ;; The 0.18.0 release tests do not work with Python 3.9.6. Use a more
-  ;; recent commit.
-  (let ((commit "1d944943c311b2d71655432f8870d68b2cf7d44b")
-        (revision "1"))
-    (package
-      (name "python-jedi")
-      (version
-       (git-version "0.18.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/davidhalter/jedi")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "052szkbv2pf9hy21any6zb4dhx3c5w1v6b9hn5grlc84zfm350vq"))))
-      (build-system python-build-system)
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'unpack-submodule-sources
-             (lambda* (#:key inputs #:allow-other-keys)
-               (copy-recursively (assoc-ref inputs "python-django-stubs")
-                                 "jedi/third_party/django-stubs")
-               (copy-recursively (assoc-ref inputs "python-typeshed")
-                                 "jedi/third_party/typeshed")
-               #t))
-           (replace 'check
-             (lambda* (#:key tests? #:allow-other-keys)
-               (when tests?
-                 (setenv "HOME" "/tmp")
-                 ;; Disable the pytest tests that fail with pytest 6.  See:
-                 ;; https://github.com/davidhalter/jedi/issues/1660.
-                 (invoke "pytest" "-vv" "-k"
-                         "not test_completion[pytest"))
-               #t)))))
-      (native-inputs
-       `(("python-pytest" ,python-pytest)
-         ("python-docopt" ,python-docopt)
-         ("python-django-stubs"
-          ,(origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://github.com/davidhalter/django-stubs")
-                   (commit "3d2534ea8d8300c4c9db8f18e300355d5fd5488b")))
-             (file-name "django-stubs-checkout")
-             (sha256
-              (base32 "1fpvn4lcqkd2q18z29rcnwakm649fccw2k6jik5d64j7p6xns08r"))))
-         ("python-typeshed"
-          ,(origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://github.com/davidhalter/typeshed")
-                   (commit "ae9d4f4b21bb5e1239816c301da7b1ea904b44c3")))
-             (file-name "typeshed-checkout")
-             (sha256
-              (base32 "02xdip4amj0a7z9xph2mj46x1k55bjxl8d0gkpy25575acyx1kjq"))))))
-      (propagated-inputs
-       `(("python-parso" ,python-parso)))
-      (home-page "https://github.com/davidhalter/jedi")
-      (synopsis "Autocompletion and static analysis library for Python")
-      (description
-       "Jedi is a static analysis tool for Python that can be used in Integrated
+  (package
+    (name "python-jedi")
+    (version "0.18.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/davidhalter/jedi")
+             (commit (string-append "v" version))
+             (recursive? #true)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "07drmi3ai49jw5n23ibkambcgijqcw073ihypjgxfnks5lv4yqy1"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "HOME" "/tmp")
+               (invoke "python" "-m" "pytest" "-vv"))
+             #t)))))
+    (native-inputs
+     (list python-colorama python-docopt python-django-2.2 python-pytest))
+    (propagated-inputs
+     (list python-parso))
+    (home-page "https://github.com/davidhalter/jedi")
+    (synopsis "Autocompletion and static analysis library for Python")
+    (description
+     "Jedi is a static analysis tool for Python that can be used in Integrated
 Development Environments (@dfn{IDE}s) and text editors.  It understands Python
 on a deeper level than many other static analysis frameworks for Python.
 
-Jedi understands docstrings and you can use Jedi autocompletion in your REPL as
-well.")
-      (license license:expat))))
-
-(define-public python2-jedi
-  (package-with-python2 python-jedi))
+Jedi understands docstrings and you can use Jedi autocompletion in your REPL
+as well.")
+    (license license:expat)))
 
 (define-public ptpython
   (package
@@ -15562,18 +16170,15 @@ well.")
     (arguments
      `(#:tests? #f)) ;there are no tests
     (propagated-inputs
-     `(("python-appdirs" ,python-appdirs)
-       ("python-black" ,python-black)
-       ("python-jedi" ,python-jedi)
-       ("python-prompt-toolkit" ,python-prompt-toolkit)
-       ("python-pygments" ,python-pygments)))
+     (list python-appdirs python-black python-jedi python-prompt-toolkit
+           python-pygments))
     (home-page "https://github.com/jonathanslenders/ptpython")
     (synopsis "Python Read-Eval-Print-Loop with nice IDE-like features")
     (description
      "ptpython is a Python read-eval-print loop with IDE-like features.
-It supports syntax highlighting, multiline editing, autocompletion, mouse,
-color schemes, bracketed paste, Vi and Emacs keybindings, Chinese characters
-etc.")
+     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))))))
 
@@ -15616,15 +16221,13 @@ etc.")
     (arguments
      `(#:test-target "pytest"))
     (native-inputs
-     `(("python-easyprocess" ,python-easyprocess)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-easyprocess python-pytest python-pytest-runner))
     (home-page "https://github.com/ponty/entrypoint2")
     (synopsis "Command-line interface for Python modules")
     (description
      "@code{entrypoint2} is an easy to use command-line interface for Python
-modules based on @code{argparse}.  It translates function signature and
-documentation to argparse configuration.")
+     modules based on @code{argparse}.  It translates function signature and
+     documentation to argparse configuration.")
     (license license:bsd-3)))
 
 (define-public python-pyvirtualdisplay
@@ -15643,13 +16246,10 @@ documentation to argparse configuration.")
      ;; FileNotFoundError: [Errno 2] No such file or directory: 'Xvnc'.
      `(#:tests? #f))
     (native-inputs
-     `(("python-entrypoint2" ,python-entrypoint2)
-       ("python-psutil" ,python-psutil)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-entrypoint2 python-psutil python-pytest
+           python-pytest-runner))
     (propagated-inputs
-     `(("python-easyprocess" ,python-easyprocess)
-       ("python-pillow" ,python-pillow)))
+     (list python-easyprocess python-pillow))
     (home-page "https://github.com/ponty/pyvirtualdisplay")
     (synopsis "Python wrapper for Xvfb, Xephyr and Xvnc")
     (description
@@ -15682,16 +16282,14 @@ documentation to argparse configuration.")
              (invoke "./run_tests.py" "--unit")
              #t)))))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pycodestyle" ,python-pycodestyle)
-       ("python-pyflakes" ,python-pyflakes)))
+     (list python-mock python-pycodestyle python-pyflakes))
     (home-page "https://stem.torproject.org/")
     (synopsis
      "Python controller library that allows applications to interact with Tor")
     (description
      "Stem is a Python controller library for Tor.  With it you can use Tor's
-control protocol to script against the Tor process and read descriptor data
-relays publish about themselves.")
+     control protocol to script against the Tor process and read descriptor data
+     relays publish about themselves.")
     (license license:lgpl3)))
 
 (define-public python-pyserial
@@ -15717,13 +16315,130 @@ relays publish about themselves.")
       "https://github.com/pyserial/pyserial")
     (synopsis "Python Serial Port Bindings")
     (description "@code{pyserial} provide serial port bindings for Python.  It
-supports different byte sizes, stop bits, parity and flow control with RTS/CTS
-and/or Xon/Xoff.  The port is accessed in RAW mode.")
+     supports different byte sizes, stop bits, parity and flow control with RTS/CTS
+     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")
+    (version "0.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pyserial-asyncio" version))
+       (sha256
+        (base32 "0cwd2cjz859v6jrm3y6hikfqjyhyfj5vhfjb8vvflvl6791yah8n"))))
+    (build-system python-build-system)
+    (propagated-inputs (list python-pyserial))
+    (home-page "https://github.com/pyserial/pyserial-asyncio")
+    (synopsis "Pyserial asynchronous I/O extension")
+    (description "This package extends Pyserial with asynchronous I/O
+     support.")
+    (license license:bsd-3)))
+
+(define-public python-pymodbus
+  (package
+    (name "python-pymodbus")
+    (version "2.5.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/riptideio/pymodbus")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0kjjrx7xrlx0pf3y67hhr4xvqrly3xzmvf6ic5as61m6z19m7zd5"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'disable-problematic-tests
+                    (lambda _
+                      ;; The following test modules rely on Python's own
+                      ;; 'test' module, which is not distributed in the Python
+                      ;; package of Guix.
+                      (delete-file "test/test_client_async_asyncio.py")
+                      (delete-file "test/test_client_sync_diag.py")
+                      ;; The following test module requires the asynctest
+                      ;; library, abandoned without support for Python 3.9+
+                      ;; (see:
+                      ;; https://github.com/riptideio/pymodbus/issues/681).
+                      (delete-file "test/test_server_asyncio.py")))
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "python" "-m" "pytest")))))))
+    (native-inputs
+     (list python-mock
+           python-pytest
+           python-redis
+           python-sqlalchemy
+           python-tornado
+           python-twisted))
+    (propagated-inputs
+     (list python-pyserial
+           python-six
+           ;; For the REPL.
+           python-aiohttp
+           python-click
+           python-prompt-toolkit
+           python-pygments
+           python-pyserial-asyncio))
+    (home-page "https://github.com/riptideio/pymodbus/")
+    (synopsis "Modbus protocol stack in Python")
+    (description "Pymodbus is a full Modbus protocol implementation using
+     @code{asyncio}, @code{tornado} or @code{twisted} for its asynchronous
+     communications core.  It includes the following @emph{client} features:
+     @itemize
+     @item full read/write protocol on discrete and register
+     @item most of the extended protocol (diagnostic/file/pipe/setting/information)
+     @item TCP, UDP, Serial ASCII, Serial RTU, and Serial Binary
+     @item asynchronous and synchronous versions
+     @item payload builder/decoder utilities
+     @item pymodbus read eval print loop (REPL).
+     @end itemize
+     It also includes the following @emph{server} features:
+     @itemize
+     @item can function as a fully implemented Modbus server
+     @item TCP, UDP, Serial ASCII, Serial RTU, and Serial Binary
+     @item asynchronous and synchronous versions
+     @item full server control context (device information, counters, etc)
+     @item a number of backing contexts (database, redis, sqlite, a slave device).
+     @end itemize")
+    (license license:bsd-3)))
+
+(define-public python-kivy-garden
+  (package
+    (name "python-kivy-garden")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "kivy-garden" version))
+       (sha256
+        (base32 "0wkcpr2zc1q5jb0bi7v2dgc0vs5h1y7j42mviyh764j2i0kz8mn2"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (add-after 'install 'remove-bat-file
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (delete-file
+                         (string-append out "/bin/garden.bat"))))))))
+    (propagated-inputs
+     (list python-requests))
+    (home-page "https://github.com/kivy-garden/garden")
+    (synopsis "Garden tool for Kivy flowers")
+    (description
+     "This package provides the @command{garden} command to install packages
+for Kivy, the multitouch application platform.")
+    (license license:expat)))
+
 (define-public python-kivy
   (package
     (name "python-kivy")
@@ -15744,21 +16459,25 @@ and/or Xon/Xoff.  The port is accessed in RAW mode.")
          (add-after 'patch-generated-file-shebangs 'set-sdl-paths
            (lambda* (#:key inputs #:allow-other-keys)
              (setenv "KIVY_SDL2_PATH"
-                     (search-input-directory inputs "/include/SDL2")))))))
+                     (search-input-directory inputs "/include/SDL2"))))
+         (add-before 'sanity-check 'set-home
+           (lambda _
+             ;; 'kivy/__init__.py' wants to create $HOME/.kivy.
+             (setenv "HOME" (getcwd)))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-cython" ,python-cython)))
+     (list pkg-config python-cython))
     (inputs
-     `(("gstreamer" ,gstreamer)
-       ("mesa" ,mesa)
-       ("sdl-union"
-        ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))))
+     (list gstreamer
+           mesa
+           (sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf))
+           python-docutils
+           python-kivy-garden
+           python-pygments))
     (home-page "https://kivy.org")
-    (synopsis
-     "Multitouch application framework")
+    (synopsis "Multitouch application framework")
     (description
-     "A software library for rapid development of
-hardware-accelerated multitouch applications.")
+     "Kivy is a software library for rapid development of hardware-accelerated
+multitouch applications.")
     (license license:expat)))
 
 (define-public python2-kivy
@@ -15786,12 +16505,11 @@ hardware-accelerated multitouch applications.")
               (("average_size=512") ""))
              #t)))))
     (propagated-inputs
-     `(("python-chardet" ,python-chardet)
-       ("python-hypothesis" ,python-hypothesis)))
+     (list python-chardet python-hypothesis))
     (home-page "https://github.com/audreyr/binaryornot")
     (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.")
+     binary or text.")
     (license license:bsd-3)
     (properties `((python2-variant . ,(delay python2-binaryornot))))))
 
@@ -15802,10 +16520,10 @@ binary or text.")
        `(("python2-enum34" ,python2-enum34)
          ,@(package-propagated-inputs base))))))
 
-(define-public python-binwalk
+(define-public binwalk
   (package
-    (name "python-binwalk")
-    (version "2.2.0")
+    (name "binwalk")
+    (version "2.3.2")
     (source
      (origin
        (method git-fetch)
@@ -15814,8 +16532,7 @@ binary or text.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1bxgj569fzwv6jhcbl864nmlsi9x1k1r20aywjxc8b9b1zgqrlvc"))))
+        (base32 "01dalxw07c42ka4fqpixcacvy42h04ya909lzpmsblr9s2xdgwcm"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -15824,14 +16541,16 @@ binary or text.")
            (lambda _
              (setenv "HOME" ""))))))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-nose" ,python-nose)))
+     (list python-coverage python-nose))
     (home-page "https://github.com/ReFirmLabs/binwalk")
     (synopsis "Firmware analysis tool")
     (description "Binwalk is a tool for analyzing, reverse engineering, and
-extracting firmware images")
+     extracting firmware images")
     (license license:expat)))
 
+(define-public python-binwalk
+  (deprecated-package "python-binwalk" binwalk))
+
 (define-public python-nltk
   (package
     (name "python-nltk")
@@ -15848,18 +16567,15 @@ extracting firmware images")
        ;; TODO Try packaging these resources.
        #:tests? #f))
     (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-joblib" ,python-joblib)
-       ("python-regex" ,python-regex)
-       ("python-tqdm" ,python-tqdm)))
+     (list python-click python-joblib python-regex python-tqdm))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "http://nltk.org/")
     (synopsis "Natural Language Toolkit")
     (description "It provides interfaces to over 50 corpora and lexical
-resources such as WordNet, along with a suite of text processing libraries
-for classification, tokenization, stemming, tagging, parsing, and semantic
-reasoning, wrappers for natural language processing libraries.")
+     resources such as WordNet, along with a suite of text processing libraries
+     for classification, tokenization, stemming, tagging, parsing, and semantic
+     reasoning, wrappers for natural language processing libraries.")
     (license license:asl2.0)))
 
 ;; Versions >=3.5 breaks backward-compatibility,
@@ -15874,7 +16590,7 @@ reasoning, wrappers for natural language processing libraries.")
        (uri (pypi-uri "nltk" version ".zip"))
        (sha256
         (base32 "153x2clrnigs74jdgnn3qmljdjj4gprmvpdvh49i18ls4m8mbm5y"))))
-    (propagated-inputs `(("python-six" ,python-six)))))
+    (propagated-inputs (list python-six))))
 
 (define-public python2-nltk
   (package-with-python2 python-nltk))
@@ -15891,7 +16607,7 @@ reasoning, wrappers for natural language processing libraries.")
                 "0zis4707r9hdg5qgkhp3wss9camr9h56ixyfc8n9dxwlnnly4x4c"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-certifi" ,python-certifi)))
+     (list python-certifi))
     (home-page "https://github.com/mongodb/mongo-python-driver")
     (synopsis "Python driver for MongoDB")
     (description "Python driver for MongoDB.")
@@ -15915,13 +16631,12 @@ reasoning, wrappers for natural language processing libraries.")
     (arguments
      '(#:tests? #f)) ; The tests are not distributed
     (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("python-six" ,python-six)))
+     (list python-requests python-six))
     (home-page "https://github.com/cablehead/python-consul")
     (synopsis "Python client for Consul")
     (description
      "Python client for @url{http://www.consul.io/,Consul}, a tool for service
-discovery, monitoring and configuration.")
+     discovery, monitoring and configuration.")
     (license license:expat)))
 
 (define-public python2-consul
@@ -15942,7 +16657,7 @@ discovery, monitoring and configuration.")
         (base32 "0xdqskycznqc7mfp60bhw1zq8wx7yx1dvmbq3brnm1dx3xnqa0zd"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (arguments
      ;; The tests require a bunch of not very nice packages with fixed
      ;; version requirements (e.g. python-coveralls).
@@ -15973,13 +16688,13 @@ discovery, monitoring and configuration.")
              (invoke "pytest" "-vv"))))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-defusedxml" ,python-defusedxml)))
+     (list python-defusedxml))
     (home-page "https://github.com/eea/odfpy")
     (synopsis "Python API and tools to manipulate OpenDocument files")
     (description "Collection of libraries and utility programs written in
-Python to manipulate OpenDocument 1.2 files.")
+     Python to manipulate OpenDocument 1.2 files.")
     (license
      ;; The software is mainly dual GPL2+ and ASL2.0, but includes a
      ;; number of files with other licenses.
@@ -16006,23 +16721,21 @@ Python to manipulate OpenDocument 1.2 files.")
            (lambda _
              (invoke "pytest" "-v"))))))
     (native-inputs
-     `(("python-hypothesis" ,python-hypothesis)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-hypothesis python-pytest-cov python-pytest-mock
+           python-pytest))
     (propagated-inputs ; TODO: Add python-fastnumbers.
-     `(("python-pyicu" ,python-pyicu)))
+     (list python-pyicu))
     (home-page "https://github.com/SethMMorton/natsort")
     (synopsis "Natural sorting for python and shell")
     (description
      "Natsort lets you apply natural sorting on lists instead of
-lexicographical.  If you use the built-in @code{sorted} method in python
-on a list such as @code{[@code{a20}, @code{a9}, @code{a1}, @code{a4},
-@code{a10}]}, it would be returned as @code{[@code{a1}, @code{a10}, @code{a20},
-@code{a4}, @code{a9}]}.  Natsort provides a function @code{natsorted} that
-identifies numbers and sorts them separately from strings.  It can also sort
-version numbers, real numbers, mixed types and more, and comes with a shell
-command @command{natsort} that exposes this functionality in the command line.")
+     lexicographical.  If you use the built-in @code{sorted} method in python
+     on a list such as @code{[@code{a20}, @code{a9}, @code{a1}, @code{a4},
+                                   @code{a10}]}, it would be returned as @code{[@code{a1}, @code{a10}, @code{a20},
+                                   @code{a4}, @code{a9}]}.  Natsort provides a function @code{natsorted} that
+     identifies numbers and sorts them separately from strings.  It can also sort
+     version numbers, real numbers, mixed types and more, and comes with a shell
+     command @command{natsort} that exposes this functionality in the command line.")
     (license license:expat)))
 
 (define-public glances
@@ -16048,19 +16761,15 @@ command @command{natsort} that exposes this functionality in the command line.")
           #t))))
   (build-system python-build-system)
   (propagated-inputs
-   `(("python-future" ,python-future)
-     ("python-psutil" ,python-psutil)))
+   (list python-future python-psutil))
   (home-page "https://github.com/nicolargo/glances")
   (synopsis "Cross-platform curses-based monitoring tool")
   (description
     "Glances is a curses-based monitoring tool for a wide variety of platforms.
-Glances uses the PsUtil library to get information from your system.  It
-monitors CPU, load, memory, network bandwidth, disk I/O, disk use, and more.")
+     Glances uses the PsUtil library to get information from your system.  It
+     monitors CPU, load, memory, network bandwidth, disk I/O, disk use, and more.")
   (license license:lgpl3+)))
 
-(define-public python-glances
-  (deprecated-package "python-glances" glances))
-
 (define-public python-graphql-core
   (package
     (name "python-graphql-core")
@@ -16083,108 +16792,76 @@ monitors CPU, load, memory, network bandwidth, disk I/O, disk use, and more.")
                        (("'gevent==1.1rc1'") "'gevent'"))
              #t)))))
     (native-inputs
-     `(("python-gevent" ,python-gevent)
-       ("python-mock" ,python-mock)
-       ("python-pytest-mock" ,python-pytest-mock)))
+     (list python-gevent python-mock python-pytest-mock))
     (propagated-inputs
-     `(("python-promise" ,python-promise)
-       ("python-six" ,python-six)))
+     (list python-promise python-six))
     (home-page "https://github.com/graphql-python/graphql-core")
     (synopsis "GraphQL implementation for Python")
     (description
      "GraphQL implementation for Python.  GraphQL is a data query language and
-runtime designed and used to request and deliver data to mobile and web apps.
-This library is a port of @url{https://github.com/graphql/graphql-js,graphql-js}
-to Python.")
+     runtime designed and used to request and deliver data to mobile and web apps.
+     This library is a port of @url{https://github.com/graphql/graphql-js,graphql-js}
+     to Python.")
     (license license:expat)))
 
 (define-public python-graphql-relay
   (package
     (name "python-graphql-relay")
-    (version "0.4.5")
+    (version "3.1.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "graphql-relay" version))
         (sha256
          (base32
-          "1nv5dxcj59zv31qvl8bd142njmxcmymny2dz3br1l2cpbljbf5i7"))))
+          "1d70vwam9gjhx7fqzsa03x7lc6ivcqki5r9pk8m7rslmb7pagmbh"))))
     (build-system python-build-system)
     (arguments
-     '(#:tests? #f)) ; The tests are not distributed
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest" "tests")))))))
+    (native-inputs
+     (list
+       python-pytest
+       python-pytest-asyncio))
     (propagated-inputs
-     `(("python-graphql-core" ,python-graphql-core)
-       ("python-promise" ,python-promise)
-       ("python-six" ,python-six)))
+     (list python-graphql-core))
     (home-page "https://github.com/graphql-python/graphql-relay-py")
     (synopsis "Relay implementation for Python")
     (description
      "This is a library to allow the easy creation of Relay-compliant servers
-using the GraphQL Python reference implementation of a GraphQL server.  It
-should be noted that the code is a exact port of the original
-@url{https://github.com/graphql/graphql-relay-js,graphql-relay js implementation}
-from Facebook.")
+     using the GraphQL Python reference implementation of a GraphQL server.  It
+     should be noted that the code is a exact port of the original
+     @url{https://github.com/graphql/graphql-relay-js,graphql-relay js implementation}
+     from Facebook.")
     (license license:expat)))
 
 (define-public python-graphene
   (package
     (name "python-graphene")
-    (version "0.10.2")
+    (version "3.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "graphene" version))
         (sha256
          (base32
-          "09zhac7igh9ixdz0ay6csy35b40l1jwbf2wrbxmgxwfhy51iy06q"))))
+          "08m1n2ydk48c18cvl8474v3pwwacjl1vgq61m9qs00122mp0cj5g"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-graphql-core" ,python-graphql-core)
-       ("python-graphql-relay" ,python-graphql-relay)
-       ("python-iso8601" ,python-iso8601)
-       ("python-promise" ,python-promise)
-       ("python-six" ,python-six)))
+     (list python-graphql-core python-graphql-relay python-aniso8601
+           python-promise python-six))
     (arguments
      `(#:tests? #f))                    ; no tests/ in the PyPI tarball
     (home-page "https://graphene-python.org/")
     (synopsis "GraphQL Framework for Python")
     (description
      "Graphene is a Python library for building GraphQL schemas/types.
-A GraphQL schema describes your data model, and provides a GraphQL server
-with an associated set of resolve methods that know how to fetch data.")
-    (license license:expat)))
-
-(define-public python-nautilus
-  (package
-    (name "python-nautilus")
-    (version "0.4.9")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "nautilus" version))
-        (sha256
-         (base32
-          "01hwzjc1zshk4vvxrcghm398fpy4jls66dyz06g07mrwqif8878p"))))
-    (build-system python-build-system)
-    (arguments `(#:tests? #f)) ; fails to import test modules
-    (propagated-inputs
-     `(("python-bcrypt" ,python-bcrypt)
-       ("python-click" ,python-click)
-       ("python-consul" ,python-consul)
-       ("python-graphene" ,python-graphene)
-       ("python-jinja2" ,python-jinja2)
-       ("python-peewee" ,python-peewee)
-       ("python-pika" ,python-pika)
-       ("python-tornado" ,python-tornado)
-       ("python-wtforms" ,python-wtforms)))
-    (native-inputs
-     `(("python-nose2" ,python-nose2)))
-    (home-page "https://github.com/AlecAivazis/nautilus")
-    (synopsis "Library for creating microservice applications")
-    (description
-     "Nautilus is a framework for flux based microservices that looks to
-provide extendible implementations of common aspects of a cloud so that you can
-focus on building massively scalable web applications.")
+     A GraphQL schema describes your data model, and provides a GraphQL server
+     with an associated set of resolve methods that know how to fetch data.")
     (license license:expat)))
 
 (define-public python-random2
@@ -16200,18 +16877,18 @@ focus on building massively scalable web applications.")
               (patches
                (search-patches "python-random2-getrandbits-test.patch"))))
     (build-system python-build-system)
-    (native-inputs `(("unzip" ,unzip)))
+    (native-inputs (list unzip))
     (home-page "http://pypi.python.org/pypi/random2")
     (synopsis "Python 3 version of the Python 2 @code{random} module")
     (description
      "This package provides a Python 3 ported version of Python 2.7’s
-@code{random} module.  It has also been back-ported to work in Python 2.6.
+     @code{random} module.  It has also been back-ported to work in Python 2.6.
 
-In Python 3, the implementation of @code{randrange()} was changed, so that
-even with the same seed you get different sequences in Python 2 and 3.
+     In Python 3, the implementation of @code{randrange()} was changed, so that
+     even with the same seed you get different sequences in Python 2 and 3.
 
-This package closes that gap, allowing stable random number generation
-between the different Python versions.")
+     This package closes that gap, allowing stable random number generation
+     between the different Python versions.")
     (license license:psfl)))
 
 (define-public python2-random2
@@ -16234,8 +16911,8 @@ between the different Python versions.")
     (home-page "https://github.com/shibukawa/snowball_py")
     (synopsis "Snowball stemming library collection for Python")
     (description "This package provides 16 word stemmer algorithms generated
-from Snowball algorithms.  It includes the 15 original ones plus the Poerter
-English stemmer.")
+     from Snowball algorithms.  It includes the 15 original ones plus the Poerter
+     English stemmer.")
     (license license:bsd-3)))
 
 (define-public python2-snowballstemmer
@@ -16278,17 +16955,17 @@ English stemmer.")
              ;; the Makefile will build anyway
              (invoke "make" "check"))))))
     (native-inputs
-     `(("procps" ,procps)))             ; required for tests
+     (list procps))             ; required for tests
     (home-page "https://github.com/dvarrazzo/py-setproctitle")
     (synopsis
      "Setproctitle implementation for Python to customize the process title")
     (description "The library allows a process to change its title (as displayed
-by system tools such as ps and top).
+                                                                       by system tools such as ps and top).
 
-Changing the title is mostly useful in multi-process systems, for
-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.")
+     Changing the title is mostly useful in multi-process systems, for
+     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))))))
 
@@ -16324,15 +17001,15 @@ is used by PostgreSQL and the OpenSSH Server for example.")
            (lambda _
              (invoke "py.test" "-vv" ))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page
      "https://github.com/jamesturk/validictory")
     (synopsis "General purpose Python data validator")
     (description "It allows validation of arbitrary Python data structures.
 
-The schema format is based on the JSON Schema
-proposal (http://json-schema.org), so combined with json the library is also
-useful as a validator for JSON data.")
+     The schema format is based on the JSON Schema
+     proposal (http://json-schema.org), so combined with json the library is also
+     useful as a validator for JSON data.")
   (license license:expat)))
 
 (define-public python2-validictory
@@ -16355,9 +17032,9 @@ useful as a validator for JSON data.")
     (synopsis
      "Analyze binary and library file information")
     (description "This Python library provides interfaces for parsing and
-analyzing two binary and library file formats; the Executable and Linking
-Format (ELF), and debugging information in the Debugging With Attributed
-Record Format (DWARF).")
+     analyzing two binary and library file formats ; the Executable and Linking
+     Format (ELF), and debugging information in the Debugging With Attributed
+     Record Format (DWARF).")
     (license license:public-domain)))
 
 (define-public python-pyev
@@ -16383,7 +17060,7 @@ Record Format (DWARF).")
                  (("libev_dll_name = find_library\\(\\\"ev\\\"\\)")
                   (string-append "libev_dll_name = \"" libev "\"")))))))))
     (inputs
-     `(("libev" ,libev)))
+     (list libev))
     (home-page "https://github.com/gabrielfalcao/pyev")
     (synopsis "Python libev interface")
     (description "Pyev provides a Python interface to libev.")
@@ -16408,7 +17085,7 @@ Record Format (DWARF).")
     (synopsis "Gets image size of files in various formats in Python")
     (description
       "This package allows determination of image size from
-PNG, JPEG, JPEG2000 and GIF files in pure Python.")
+     PNG, JPEG, JPEG2000 and GIF files in pure Python.")
     (license license:expat)))
 
 (define-public python2-imagesize
@@ -16451,20 +17128,20 @@ PNG, JPEG, JPEG2000 and GIF files in pure Python.")
        (patches (search-patches "python-argcomplete-1.11.1-fish31.patch"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-flake8" ,python-flake8)
-       ("python-pexpect" ,python-pexpect)
-       ("python-wheel" ,python-wheel)
-       ("tcsh" ,tcsh)
-       ("fish" ,fish)
-       ("bash-full" ,bash)))            ;full Bash for 'test_file_completion'
+     (list python-coverage
+           python-flake8
+           python-pexpect
+           python-wheel
+           tcsh
+           fish
+           bash))            ;full Bash for 'test_file_completion'
     (home-page "https://github.com/kislyuk/argcomplete")
     (synopsis "Shell tab completion for Python argparse")
     (description "argcomplete provides extensible command line tab completion
-of arguments and options for Python scripts using @code{argparse}.  It's
-particularly useful for programs with many options or sub-parsers that can
-dynamically suggest completions; for example, when browsing resources over the
-network.")
+     of arguments and options for Python scripts using @code{argparse}.  It's
+     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))))))
 
@@ -16501,7 +17178,7 @@ network.")
            (lambda _
              (invoke "py.test"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/sprymix/csscompressor")
     (synopsis "Python port of YUI CSS Compressor")
     (description
@@ -16529,7 +17206,7 @@ network.")
     (home-page "http://opensource.perlig.de/rcssmin/")
     (synopsis "CSS Minifier")
     (description "The minifier is based on the semantics of the YUI compressor,
-which itself is based on the rule list by Isaac Schlueter.")
+     which itself is based on the rule list by Isaac Schlueter.")
     (license license:asl2.0)))
 
 (define-public python-rjsmin
@@ -16560,36 +17237,36 @@ which itself is based on the rule list by Isaac Schlueter.")
                (invoke "py.test" "-vv" "tests")
                #t))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "http://opensource.perlig.de/rjsmin/")
     (synopsis "Javascript Minifier")
     (description "@code{rJSmin} is a javascript minifier written in Python.  The
-minifier is based on the semantics of jsmin.c by Douglas Crockford.  The module
-is a re-implementation aiming for speed, so it can be used at runtime (rather
-than during a preprocessing step).")
+     minifier is based on the semantics of jsmin.c by Douglas Crockford.  The module
+     is a re-implementation aiming for speed, so it can be used at runtime (rather
+                                                                            than during a preprocessing step).")
     (license license:asl2.0)))
 
 (define-public python-xopen
   (package
     (name "python-xopen")
-    (version "0.5.0")
+    (version "0.8.2")
     (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "xopen" version))
-        (sha256
-          (base32
-           "17xbrgi23l87yg6h0qcknssp2q812miiy33qw6v45v5gx0jwv5xh"))))
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "xopen" version))
+       (sha256
+        (base32
+         "1xrlcnd6fri3w97zzzp6vyk4l21yq1lc8r4wksi06hgpkbh4jdq0"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (home-page "https://github.com/marcelm/xopen/")
     (synopsis "Open compressed files transparently")
     (description "This module provides an @code{xopen} function that works like
-Python's built-in @code{open} function, but can also deal with compressed files.
-Supported compression formats are gzip, bzip2 and, xz, and are automatically
-recognized by their file extensions.  The focus is on being as efficient as
-possible on all supported Python versions.")
+     Python's built-in @code{open} function, but can also deal with compressed files.
+     Supported compression formats are gzip, bzip2 and, xz, and are automatically
+     recognized by their file extensions.  The focus is on being as efficient as
+     possible on all supported Python versions.")
     (license license:expat)))
 
 (define-public python2-xopen
@@ -16632,33 +17309,33 @@ possible on all supported Python versions.")
 
                       (invoke "python" "Cheetah/Tests/Test.py"))))))
     (propagated-inputs
-     `(("python-markdown" ,python-markdown)))    ;optional
+     (list python-markdown))    ;optional
     (home-page "https://cheetahtemplate.org/")
     (synopsis "Template engine")
     (description "Cheetah is a text-based template engine and Python code
-generator.
-
-Cheetah can be used as a standalone templating utility or referenced as
-a library from other Python applications.  It has many potential uses,
-but web developers looking for a viable alternative to ASP, JSP, PHP and
-PSP are expected to be its principle user group.
-
-Features:
-@enumerate
-@item Generates HTML, SGML, XML, SQL, Postscript, form email, LaTeX, or any other
-   text-based format.
-@item Cleanly separates content, graphic design, and program code.
-@item Blends the power and flexibility of Python with a simple template language
-   that non-programmers can understand.
-@item Gives template writers full access to any Python data structure, module,
-   function, object, or method in their templates.
-@item Makes code reuse easy by providing an object-orientated interface to
-   templates that is accessible from Python code or other Cheetah templates.
-   One template can subclass another and selectively reimplement sections of it.
-@item Provides a simple, yet powerful, caching mechanism that can dramatically
-   improve the performance of a dynamic website.
-@item Compiles templates into optimized, yet readable, Python code.
-@end enumerate")
+     generator.
+
+     Cheetah can be used as a standalone templating utility or referenced as
+     a library from other Python applications.  It has many potential uses,
+     but web developers looking for a viable alternative to ASP, JSP, PHP and
+     PSP are expected to be its principle user group.
+
+     Features:
+     @enumerate
+     @item Generates HTML, SGML, XML, SQL, Postscript, form email, LaTeX, or any other
+     text-based format.
+     @item Cleanly separates content, graphic design, and program code.
+     @item Blends the power and flexibility of Python with a simple template language
+     that non-programmers can understand.
+     @item Gives template writers full access to any Python data structure, module,
+     function, object, or method in their templates.
+     @item Makes code reuse easy by providing an object-orientated interface to
+     templates that is accessible from Python code or other Cheetah templates.
+     One template can subclass another and selectively reimplement sections of it.
+     @item Provides a simple, yet powerful, caching mechanism that can dramatically
+     improve the performance of a dynamic website.
+     @item Compiles templates into optimized, yet readable, Python code.
+     @end enumerate")
     (license (license:x11-style "file://LICENSE"))))
 
 (define-public python2-cheetah
@@ -16696,16 +17373,13 @@ Features:
              (setenv "PYTHONHASHSEED" "random")
              #t)))))
     (propagated-inputs
-     `(("python-fastimport" ,python-fastimport)
-       ("python-urllib3" ,python-urllib3)))
+     (list python-fastimport python-urllib3))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-geventhttpclient" ,python-geventhttpclient)
-       ("git" ,git)))
+     (list python-mock python-geventhttpclient git))
     (home-page "https://www.dulwich.io/")
     (synopsis "Git implementation in Python")
     (description "Dulwich is an implementation of the Git file formats and
-protocols written in pure Python.")
+     protocols written in pure Python.")
     ;; Can be used with either license.
     (license (list license:asl2.0 license:gpl2+))))
 
@@ -16728,17 +17402,17 @@ protocols written in pure Python.")
            (lambda _
              (invoke "python" "test/test_pbkdf2.py"))))))
     (propagated-inputs
-     `(("python-pycrypto" ,python-pycrypto)))  ; optional
+     (list python-pycrypto))  ; optional
     (home-page "https://www.dlitz.net/software/python-pbkdf2/")
     (synopsis "Password-based key derivation")
     (description "This module implements the password-based key derivation
-function, PBKDF2, specified in RSA PKCS#5 v2.0.
+     function, PBKDF2, specified in RSA PKCS#5 v2.0.
 
-PKCS#5 v2.0 Password-Based Key Derivation is a key derivation function which
-is part of the RSA Public Key Cryptography Standards series.  The provided
-implementation takes a password or a passphrase and a salt value (and
-optionally a iteration count, a digest module, and a MAC module) and provides
-a file-like object from which an arbitrarily-sized key can be read.")
+     PKCS#5 v2.0 Password-Based Key Derivation is a key derivation function which
+     is part of the RSA Public Key Cryptography Standards series.  The provided
+     implementation takes a password or a passphrase and a salt value (and
+                                                                       optionally a iteration count, a digest module, and a MAC module) and provides
+     a file-like object from which an arbitrarily-sized key can be read.")
     (license license:expat)))
 
 (define-public python2-pbkdf2
@@ -16759,18 +17433,18 @@ a file-like object from which an arbitrarily-sized key can be read.")
      ;; FIXME: Tests require packaging 'pymaging'.
      '(#:tests? #f))
     (propagated-inputs
-     `(("python-lxml" ,python-lxml)     ; for SVG output
-       ("python-pillow" ,python-pillow) ; for PNG output
-       ("python-six" ,python-six)))
+     (list python-lxml ; for SVG output
+           python-pillow ; for PNG output
+           python-six))
     (home-page "https://github.com/lincolnloop/python-qrcode")
     (synopsis "QR Code image generator")
     (description "This package provides a pure Python QR Code generator
-module.  It uses the Python Imaging Library (PIL) to allow for the generation
-of QR Codes.
+     module.  It uses the Python Imaging Library (PIL) to allow for the generation
+     of QR Codes.
 
-In addition this package provides a command line tool to generate QR codes and
-either write these QR codes to a file or do the output as ascii art at the
-console.")
+     In addition this package provides a command line tool to generate QR codes and
+     either write these QR codes to a file or do the output as ascii art at the
+     console.")
     (license license:bsd-3)))
 
 (define-public python2-qrcode
@@ -16789,12 +17463,12 @@ console.")
          "0vzy6gd60l79ff750scl0sz48r1laalkl6md6dwzah4dcadgn5qv"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-docutils" ,python-docutils)))
+     (list python-docutils))
     (home-page "https://github.com/Snaipe/python-rst-to-ansi")
     (synopsis "Convert RST to ANSI-decorated console output")
     (description
      "Python module dedicated to rendering RST (reStructuredText) documents
-to ansi-escaped strings suitable for display in a terminal.")
+     to ansi-escaped strings suitable for display in a terminal.")
     (license license:expat)))
 
 (define-public python-ansi2html
@@ -16810,15 +17484,14 @@ to ansi-escaped strings suitable for display in a terminal.")
          "1wa00zffprb78w1mqq90dk47czz1knanys2a40zbw2vyapd5lp9y"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)))
+     (list python-mock python-nose))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/ralphbean/ansi2html")
     (synopsis "Convert ANSI-decorated console output to HTML")
     (description
      "@command{ansi2html} is a Python library and command line utility for
-converting text with ANSI color codes to HTML or LaTeX.")
+     converting text with ANSI color codes to HTML or LaTeX.")
     (license license:gpl3+)))
 
 (define-public python2-ansi2html
@@ -16842,10 +17515,10 @@ converting text with ANSI color codes to HTML or LaTeX.")
     (synopsis "Terminal framework API")
     (description
      "Easy ANSI is a terminal framework API to give you an easy way to use
-colors, cursor control movements, and line/box drawing.  It is not meant as a
-replacement to more full-featured frameworks (such as curses or urwid), but as
-a tool to quickly create nice-looking screens in your terminal window.  You
-can even create animations with the cursor controls.")
+     colors, cursor control movements, and line/box drawing.  It is not meant as a
+     replacement to more full-featured frameworks (such as curses or urwid), but as
+     a tool to quickly create nice-looking screens in your terminal window.  You
+     can even create animations with the cursor controls.")
     (license license:expat)))
 
 (define-public python-ddt
@@ -16861,15 +17534,15 @@ can even create animations with the cursor controls.")
          "0y2k756qjz1rhpivi60hy29b4bf0bh3wck39i1mn6pkil9k779k4"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-pyyaml" ,python-pyyaml)))
+     (list python-pyyaml))
     (home-page "https://github.com/datadriventests/ddt")
     (synopsis "Data-Driven Tests")
     (description
      "Data-Driven Tests (@dfn{DDT}) allow you to multiply one test case by
-running it with different test data, and make it appear as multiple test
-cases.")
+     running it with different test data, and make it appear as multiple test
+     cases.")
     (license license:expat)))
 
 (define-public python-pycountry
@@ -16888,16 +17561,16 @@ cases.")
     (synopsis "ISO databases for languages, countries, currencies, etc.")
     (description
      "@code{pycountry} provides the ISO databases for the standards:
-@enumerate
-@item 639-3 (Languages)
-@item 3166 (Countries)
-@item 3166-3 (Deleted Countries)
-@item 3166-2 (Subdivisions of countries)
-@item 4217 (Currencies)
-@item 15924 (Scripts)
-@end enumerate
-It includes a copy from Debian’s pkg-isocodes and makes the data accessible
-through a Python API.")
+     @enumerate
+     @item 639-3 (Languages)
+     @item 3166 (Countries)
+     @item 3166-3 (Deleted Countries)
+     @item 3166-2 (Subdivisions of countries)
+     @item 4217 (Currencies)
+     @item 15924 (Scripts)
+     @end enumerate
+     It includes a copy from Debian’s pkg-isocodes and makes the data accessible
+     through a Python API.")
     (license license:lgpl2.1+)))
 
 (define-public python2-pycountry
@@ -16917,14 +17590,14 @@ through a Python API.")
     ;; TODO: Unundle picosat. http://fmv.jku.at/picosat/
     (build-system python-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "https://github.com/ContinuumIO/pycosat")
     (synopsis "Bindings to picosat (a SAT solver)")
     (description
      "This package provides efficient Python bindings to @code{picosat} on
-the C level.  When importing pycosat, the @code{picosat} solver becomes part
-of the Python process itself.  @code{picosat} is a @dfn{Boolean Satisfiability
-Problem} (SAT) solver.")
+     the C level.  When importing pycosat, the @code{picosat} solver becomes part
+     of the Python process itself.  @code{picosat} is a @dfn{Boolean Satisfiability
+                                                                     Problem} (SAT) solver.")
     (license license:expat)))
 
 (define-public python2-pycosat
@@ -16955,13 +17628,13 @@ Problem} (SAT) solver.")
     (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})).")
+                                                                     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
@@ -16976,15 +17649,15 @@ specified to apply on the key before comparison (e.g. @code{string.lower})).")
         (base32
          "0v8ziaam2r637v94ra4dbjw6jzxz99gs5x4i585kgag1v204yb9b"))))
     (build-system python-build-system)
-    (propagated-inputs `(("python-lxml" ,python-lxml)))
+    (propagated-inputs (list python-lxml))
     (arguments
      ;;https://bitbucket.org/fdik/pypeg/issues/36/test-failures-on-py35
      '(#:tests? #f))
     (home-page "https://fdik.org/pyPEG/")
     (synopsis "Parsing Expression Grammars in Python")
     (description "PyPEG is an intrinsic parser interpreter framework for
-Python.  It is based on Parsing Expression Grammars, PEG.  With pyPEG you can
-parse many formal languages.")
+     Python.  It is based on Parsing Expression Grammars, PEG.  With pyPEG you can
+     parse many formal languages.")
     (license license:gpl2)))
 
 (define-public python-incremental
@@ -17002,7 +17675,7 @@ parse many formal languages.")
     (home-page "https://github.com/hawkowl/incremental")
     (synopsis "Library for versioning Python projects")
     (description "Incremental is a small library that versions your Python
-projects.")
+     projects.")
     (license license:expat)))
 
 (define-public python2-incremental
@@ -17012,39 +17685,50 @@ projects.")
   (package
     (name "python-invoke")
     (home-page "https://www.pyinvoke.org/")
-    (version "1.5.0")
+    (version "1.6.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "invoke" version))
               (sha256
                (base32
-                "0l16v7zcbgi36z6pvmdrs5q4ks8lalcafi5d9nhrpcjzbc3n1igh"))))
+                "1lsql9daabfr31c7syva5myc5bka45k57ygs9fliv63qrwp1wk9p"))))
     (build-system python-build-system)
     (arguments
      ;; XXX: Requires many dependencies that are not yet in Guix.
      `(#:tests? #f
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'delete-python2-code
+           (lambda _
+             (delete-file-recursively "invoke/vendor/yaml2")))
          (add-after 'unpack 'fix-bash-path
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((bash (assoc-ref inputs "bash")))
                (substitute* "invoke/config.py"
                  (("shell = \"/bin/bash\"")
-                  (string-append "shell = \"" bash "/bin/bash\""))
-                 )
-               #t))))))
+                  (string-append "shell = \"" bash "/bin/bash\"")))))))))
     (inputs
      `(("bash" ,bash-minimal)))
     (synopsis "Pythonic task execution")
     (description
      "Invoke is a Python task execution tool and library, drawing inspiration
-from various sources to arrive at a powerful and clean feature set.  It is
-evolved from the Fabric project, but focuses on local and abstract concerns
-instead of servers and network commands.")
+     from various sources to arrive at a powerful and clean feature set.  It is
+     evolved from the Fabric project, but focuses on local and abstract concerns
+     instead of servers and network commands.")
     (license license:bsd-3)))
 
 (define-public python2-invoke
-  (package-with-python2 python-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
@@ -17071,17 +17755,14 @@ instead of servers and network commands.")
              (substitute* "setup.py"
                (("\"automat-visualize = automat._visualize:tool\"") "")))))))
     (native-inputs
-     `(("python-m2r" ,python-m2r)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-graphviz" ,python-graphviz)))
+     (list python-m2r python-setuptools-scm python-graphviz))
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-attrs" ,python-attrs)))
+     (list python-six python-attrs))
     (home-page "https://github.com/glyph/Automat")
     (synopsis "Self-service finite-state machines")
     (description "Automat is a library for concise, idiomatic Python
-expression of finite-state automata (particularly deterministic finite-state
-transducers).")
+     expression of finite-state automata (particularly deterministic finite-state
+                                                       transducers).")
     (license license:expat)))
 
 (define-public python2-automat
@@ -17099,15 +17780,13 @@ transducers).")
                 "16gdm8i06jjmlpvckpfmlkr4693dh0vs192vgsqn84fsdkbbm45z"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-docutils" ,python-docutils)
-       ("python-mistune" ,python-mistune)))
+     (list python-docutils python-mistune))
     (native-inputs
-     `(("python-pygments" ,python-pygments)
-       ("python-mock" ,python-mock)))
+     (list python-pygments python-mock))
     (home-page "https://github.com/miyakogi/m2r")
     (synopsis "Markdown to reStructuredText converter")
     (description "M2R converts a markdown file including reST markups to valid
-reST format.")
+     reST format.")
     (license license:expat)))
 
 (define-public python2-m2r
@@ -17127,8 +17806,8 @@ reST format.")
     (home-page "https://github.com/twisted/constantly")
     (synopsis "Symbolic constants in Python")
     (description "Constantly is a Python library that provides symbolic
-constant support.  It includes collections and constants with text, numeric,
-and bit flag values.")
+     constant support.  It includes collections and constants with text, numeric,
+     and bit flag values.")
     (license license:expat)))
 
 (define-public python2-constantly
@@ -17152,16 +17831,13 @@ and bit flag values.")
                       (when tests?
                         (invoke "pytest")))))))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-hypothesis" ,python-hypothesis)
-       ("python-pympler" ,python-pympler)
-       ("python-pytest" ,python-pytest)
-       ("python-six" ,python-six)))
+     (list python-coverage python-hypothesis python-pympler python-pytest
+           python-six))
     (home-page "https://github.com/python-attrs/attrs/")
     (synopsis "Attributes without boilerplate")
     (description "@code{attrs} is a Python package with class decorators that
-ease the chores of implementing the most common attribute-related object
-protocols.")
+     ease the chores of implementing the most common attribute-related object
+     protocols.")
     (license license:expat)))
 
 (define-public python2-attrs
@@ -17196,15 +17872,14 @@ protocols.")
        ;; fails due to deprecation warnings, etc.
        #:tests? #f))
     (native-inputs
-     `(("python-coverage-test-runner" ,python-coverage-test-runner)
-       ("python-pep8" ,python-pep8)))
+     (list python-coverage-test-runner python-pep8))
     (propagated-inputs
-     `(("python-pyaml" ,python-pyaml)))
+     (list python-pyaml))
     (home-page "https://liw.fi/cliapp/")
     (synopsis "Python framework for command line programs")
     (description "@code{cliapp} is a Python framework for command line
-programs.  It contains the typical stuff such programs need to do, such
-as parsing the command line for options, and iterating over input files.")
+     programs.  It contains the typical stuff such programs need to do, such
+     as parsing the command line for options, and iterating over input files.")
     (license license:gpl2+)))
 
 (define-public python2-cliapp
@@ -17226,8 +17901,7 @@ as parsing the command line for options, and iterating over input files.")
        (file-name (git-file-name name version))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-coverage-test-runner" ,python-coverage-test-runner)
-       ("python-pep8" ,python-pep8)))
+     (list python-coverage-test-runner python-pep8))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -17239,11 +17913,11 @@ as parsing the command line for options, and iterating over input files.")
            (lambda _ (invoke "make" "check"))))))
     (home-page "https://liw.fi/ttystatus/")
     (synopsis "Python library for showing progress reporting and
-status updates on terminals")
+     status updates on terminals")
     (description "@code{ttystatus} is a Python library for showing progress
-reporting and status updates on terminals, for command line programs.
-Output is automatically adapted to the width of the terminal: truncated
-if it does not fit, and resized if the terminal size changes.")
+     reporting and status updates on terminals, for command line programs.
+     Output is automatically adapted to the width of the terminal: truncated
+     if it does not fit, and resized if the terminal size changes.")
     (license license:gpl3+)))
 
 (define-public python2-ttystatus
@@ -17268,11 +17942,11 @@ if it does not fit, and resized if the terminal size changes.")
     (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.")
+     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
@@ -17290,23 +17964,21 @@ happens using the @code{logging} library.")
         (base32 "1amzf996inwmh4r3mlpzmch60xs6lrg86vppfnwl1y0l8r0y7zxh"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-lazy-object-proxy" ,python-lazy-object-proxy)
-       ("python-wrapt" ,python-wrapt)))
+     (list python-lazy-object-proxy python-wrapt))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest python-pytest-runner))
     (home-page "https://github.com/PyCQA/astroid")
     (synopsis "Common base representation of python source code for pylint and
-other projects")
+     other projects")
     (description "@code{python-astroid} provides a common base representation
-of python source code for projects such as pychecker, pyreverse, pylint, etc.
-
-It provides a compatible representation which comes from the _ast module.  It
-rebuilds the tree generated by the builtin _ast module by recursively walking
-down the AST and building an extended ast.  The new node classes have
-additional methods and attributes for different usages.  They include some
-support for static inference and local name scopes.  Furthermore, astroid
-builds partial trees by inspecting living objects.")
+     of python source code for projects such as pychecker, pyreverse, pylint, etc.
+
+     It provides a compatible representation which comes from the _ast module.  It
+     rebuilds the tree generated by the builtin _ast module by recursively walking
+     down the AST and building an extended ast.  The new node classes have
+     additional methods and attributes for different usages.  They include some
+     support for static inference and local name scopes.  Furthermore, astroid
+     builds partial trees by inspecting living objects.")
     (license license:lgpl2.1+)
     (properties `((python2-variant . ,(delay python2-astroid))))))
 
@@ -17324,26 +17996,26 @@ builds partial trees by inspecting living objects.")
         (base32
          "0fir4b67sm7shcacah9n61pvq313m523jb4q80sycrh3p8nmi6zw"))))
     (arguments
-      (substitute-keyword-arguments (package-arguments base)
-        ((#:phases phases)
-         `(modify-phases ,phases
-            (add-after 'unpack 'remove-spurious-test
-              (lambda _
-                ;; https://github.com/PyCQA/astroid/issues/276
-                (delete-file "astroid/tests/unittest_brain.py")
-                #t))
-            (replace 'check
-              (lambda _
-                (invoke"python" "-m" "unittest" "discover"
-                                "-p" "unittest*.py")))))))
+     `(#:python ,python-2
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-spurious-test
+           (lambda _
+             ;; https://github.com/PyCQA/astroid/issues/276
+             (delete-file "astroid/tests/unittest_brain.py")))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "python" "-m" "unittest" "discover"
+                       "-p" "unittest*.py")))))))
     (native-inputs `())
     (propagated-inputs
-      `(("python2-backports-functools-lru-cache"
-         ,python2-backports-functools-lru-cache)
-        ("python2-enum34" ,python2-enum34)
-        ("python2-singledispatch" ,python2-singledispatch)
-        ,@(alist-delete "python-typed-ast"
-                        (package-propagated-inputs base)))))))
+     (list python2-backports-functools-lru-cache
+           python2-enum34
+           python2-lazy-object-proxy
+           python2-singledispatch
+           python2-six
+           python2-wrapt)))))
 
 (define-public python-isbnlib
   (package
@@ -17361,9 +18033,9 @@ builds partial trees by inspecting living objects.")
     (home-page "https://github.com/xlcnd/isbnlib")
     (synopsis "Python library to work with ISBN strings")
     (description "@code{python-isbnlib} is a (pure) python library that provides
-several useful methods and functions to validate, clean, transform, hyphenate and
-get metadata for ISBN strings.  Its origin was as the core of isbntools.  This short
-version, is suitable to be include as a dependency in other projects.")
+     several useful methods and functions to validate, clean, transform, hyphenate and
+     get metadata for ISBN strings.  Its origin was as the core of isbntools.  This short
+     version, is suitable to be include as a dependency in other projects.")
     (license license:lgpl3+)))
 
 (define-public python-isort
@@ -17442,9 +18114,9 @@ version, is suitable to be include as a dependency in other projects.")
     (home-page "https://github.com/PyCQA/isort")
     (synopsis "Python utility/library to sort python imports")
     (description "@code{python-isort} is a python utility/library to sort
-imports alphabetically, and automatically separated into sections.  It
-provides a command line utility, a python library and plugins for various
-editors.")
+     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))))))
 
@@ -17470,13 +18142,13 @@ editors.")
          "0jidrkk2w6bhjm197plxiaxrav64mgcrign0bfyr7md2ilc5zplg"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python2-setuptools-scm" ,python2-setuptools-scm)))
+     (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.")
+     of @code{functools.lru_cache} from python 3.3.")
     (license license:expat)))
 
 (define-public python-configparser
@@ -17491,13 +18163,13 @@ of @code{functools.lru_cache} from python 3.3.")
         (base32
          "1priacxym85yjcf68hh38w55nqswaxp71ryjyfdk222kg9l85ln7"))))
     (native-inputs
-     `(("python-setuptools_scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (build-system python-build-system)
     (home-page "https://github.com/jaraco/configparser/")
     (synopsis "Backport of configparser from python 3.5")
     (description "@code{python-configparser} is a backport of
-@code{configparser} from Python 3.5 so that it can be used directly
-in other versions.")
+     @code{configparser} from Python 3.5 so that it can be used directly
+     in other versions.")
     (license license:expat)))
 
 (define-public python2-configparser
@@ -17518,14 +18190,14 @@ in other versions.")
     (home-page "https://github.com/RonnyPfannschmidt/iniconfig")
     (synopsis "Simple INI-file parser")
     (description "The @code{iniconfig} package provides a small and simple
-INI-file parser module having a unique set of features; @code{iniconfig}
-@itemize
-@item maintains the order of sections and entries;
-@item supports multi-line values with or without line-continuations;
-@item supports \"#\" comments everywhere;
-@item raises errors with proper line-numbers;
-@item raises an error when two sections have the same name.
-@end itemize")
+     INI-file parser module having a unique set of features ; @code{iniconfig}
+     @itemize
+     @item maintains the order of sections and entries              ;
+     @item supports multi-line values with or without line-continuations ;
+     @item supports \"#\" comments everywhere                            ;
+     @item raises errors with proper line-numbers                        ;
+     @item raises an error when two sections have the same name.
+     @end itemize")
     (license license:expat)))
 
 (define-public python-mamba
@@ -17541,13 +18213,12 @@ INI-file parser module having a unique set of features; @code{iniconfig}
     (build-system python-build-system)
     (arguments `(#:tests? #f))  ; No test
     (propagated-inputs
-     `(("python-clint" ,python-clint)
-       ("python-coverage" ,python-coverage)))
+     (list python-clint python-coverage))
     (home-page "https://nestorsalceda.com/mamba/")
     (synopsis "Test runner for Python")
     (description
      "Mamba is a Behaviour-Driven Development tool for Python developers.
-Is heavily influenced from RSpec, Mocha, Jasmine or Ginkgo.")
+     Is heavily influenced from RSpec, Mocha, Jasmine or Ginkgo.")
     (license license:expat)))
 
 (define-public python-mando
@@ -17562,16 +18233,15 @@ Is heavily influenced from RSpec, Mocha, Jasmine or Ginkgo.")
                 "0q6rl085q1hw1wic52pqfndr0x3nirbxnhqj9akdm5zhq2fv3zkr"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-rst2ansi" ,python-rst2ansi)
-       ("python-six" ,python-six)))
+     (list python-rst2ansi python-six))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://mando.readthedocs.org/")
     (synopsis
      "Wrapper around argparse, allowing creation of complete CLI applications")
     (description
      "This package is a wrapper around argparse, allowing you to write complete CLI
-applications in seconds while maintaining all the flexibility.")
+     applications in seconds while maintaining all the flexibility.")
     (license license:expat)))
 
 (define-public python2-mando
@@ -17595,7 +18265,7 @@ applications in seconds while maintaining all the flexibility.")
     (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.")
+     older Pythons because it was not part of the standard library back then.")
     (license license:psfl)))
 
 (define-public python-mwclient
@@ -17614,14 +18284,10 @@ older Pythons because it was not part of the standard library back then.")
         (base32 "120snnsh9n5svfwkyj1w9jrxf99jnqm0jk282yypd3lpyca1l9hj"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-requests-oauthlib" ,python-requests-oauthlib)
-       ("python-six" ,python-six)))
+     (list python-requests-oauthlib python-six))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-responses" ,python-responses)))
+     (list python-mock python-pytest python-pytest-cov
+           python-pytest-runner python-responses))
     (home-page "https://github.com/btongminh/mwclient")
     (synopsis "MediaWiki API client")
     (description "This package provides a MediaWiki API client.")
@@ -17654,7 +18320,7 @@ older Pythons because it was not part of the standard library back then.")
     (synopsis "Convenient utilities not included with the standard Python install")
     (description
       "Python Utils is a collection of small Python functions and classes which
-make common patterns shorter and easier.")
+     make common patterns shorter and easier.")
     (license license:bsd-2)))
 
 (define-public python-diff-match-patch
@@ -17672,7 +18338,7 @@ make common patterns shorter and easier.")
     (home-page "https://code.google.com/p/google-diff-match-patch")
     (synopsis "Synchronize plain text")
     (description "Diff Match and Patch libraries offer robust algorithms to
-perform the operations required for synchronizing plain text.")
+     perform the operations required for synchronizing plain text.")
     (license license:asl2.0)))
 
 (define-public python2-diff-match-patch
@@ -17691,7 +18357,7 @@ perform the operations required for synchronizing plain text.")
           "1gm82jddm1lkazdi8lfsl1b3vi1z0252ng60mzjym8irnv94qfhy"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/tkhyn/dirsync")
     (synopsis "Advanced directory tree synchronisation tool")
     (description "Advanced directory tree synchronisation tool.")
@@ -17703,26 +18369,26 @@ perform the operations required for synchronizing plain text.")
 (define-public python-levenshtein
   (package
     (name "python-levenshtein")
-    (version "0.12.0")
+    (version "0.12.2")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "python-Levenshtein" version))
       (sha256
        (base32
-        "1c9ybqcja31nghfcc8xxbbz9h60s9qi12b9hr4jyl69xbvg12fh3"))))
+        "1xj60gymwx1jl2ra9razx2wk8nb9cv1i7l8d14qsp8a8s7xra8yw"))))
     (build-system python-build-system)
     (home-page "https://github.com/ztane/python-Levenshtein")
     (synopsis "Fast computation of Levenshtein distance and string similarity")
     (description
      "The Levenshtein Python C extension module contains functions for fast computation of
-@enumerate
-@item Levenshtein (edit) distance, and edit operations
-@item string similarity
-@item approximate median strings, and generally string averaging
-@item string sequence and set similarity
-@end enumerate
-It supports both normal and Unicode strings.")
+     @enumerate
+     @item Levenshtein (edit) distance, and edit operations
+     @item string similarity
+     @item approximate median strings, and generally string averaging
+     @item string sequence and set similarity
+     @end enumerate
+     It supports both normal and Unicode strings.")
     (license license:gpl2+)))
 
 (define-public python2-levenshtein
@@ -17748,12 +18414,12 @@ It supports both normal and Unicode strings.")
     (synopsis "Directory iteration function")
     (description
      "Directory iteration function like os.listdir(), except that instead of
-returning a list of bare filenames, it yields DirEntry objects that include
-file type and stat information along with the name.  Using scandir() increases
-the speed of os.walk() by 2-20 times (depending on the platform and file
-system) by avoiding unnecessary calls to os.stat() in most cases.
+     returning a list of bare filenames, it yields DirEntry objects that include
+     file type and stat information along with the name.  Using scandir() increases
+     the speed of os.walk() by 2-20 times (depending on the platform and file
+                                                     system) by avoiding unnecessary calls to os.stat() in most cases.
 
-This package is part of the Python standard library since version 3.5.")
+     This package is part of the Python standard library since version 3.5.")
     (license license:bsd-3)))
 
 (define-public python2-scandir
@@ -17776,10 +18442,10 @@ This package is part of the Python standard library since version 3.5.")
     (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.")
+     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
@@ -17803,38 +18469,37 @@ search engine.")
     (description
      "Factory_boy is a fixtures replacement based on thoughtbot’s factory_girl.
 
-As a fixtures replacement tool, it aims to replace static, hard to maintain
-fixtures with easy-to-use factories for complex object.
+     As a fixtures replacement tool, it aims to replace static, hard to maintain
+     fixtures with easy-to-use factories for complex object.
 
-Instead of building an exhaustive test setup with every possible combination
-of corner cases, factory_boy allows you to use objects customized for the
-current test, while only declaring the test-specific fields")
+     Instead of building an exhaustive test setup with every possible combination
+     of corner cases, factory_boy allows you to use objects customized for the
+     current test, while only declaring the test-specific fields")
     (license license:expat)))
 
 (define-public python-translate-toolkit
   (package
     (name "python-translate-toolkit")
-    (version "2.1.0")
+    (version "3.5.1")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "translate-toolkit" version ".tar.bz2"))
+       (uri (pypi-uri "translate-toolkit" version ".tar.gz"))
        (sha256
-        (base32 "1vlkwrg83vb17jc36pmwh2b7jphwf390lz0jw8hakcg16qhwypvq"))))
+        (base32 "020pp7pbpnavxd41z90vyzzx06ci57mx9drkgbsb89wxxx4gal9v"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-sphinx" ,python-sphinx)))
-    (propagated-inputs
-     `(("python-babel" ,python-babel)
-       ("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-chardet" ,python-chardet)
-       ("python-diff-match-patch" ,python-diff-match-patch)
-       ("python-levenshtein" ,python-levenshtein)
-       ("python-lxml" ,python-lxml)
-       ("python-six" ,python-six)
-       ("python-vobject" ,python-vobject)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python-pytest python-sphinx))
+    (propagated-inputs
+     (list python-babel
+           python-beautifulsoup4
+           python-chardet
+           python-diff-match-patch
+           python-levenshtein
+           python-lxml
+           python-six
+           python-vobject
+           python-pyyaml))
     (arguments
      ;; TODO: tests are not run, because they end with
      ;; TypeError: parse() missing 2 required positional arguments: 'tree' and
@@ -17845,35 +18510,32 @@ current test, while only declaring the test-specific fields")
     (synopsis "Tools and API for translation and localization engineering")
     (description
      "Tools and API for translation and localization engineering.  It contains
-several utilities, as well as an API for building localization tools.")
+     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 python-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
+  (package/inherit python-packaging-bootstrap
     (name "python-packaging")
-    (version "20.0")
-    (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"))))
-    (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (replace 'check
                     (lambda* (#:key tests? #:allow-other-keys)
                       (if tests?
-                          (invoke "py.test" "-vv")
-                          (format #t "test suite not run~%"))
-                      #t)))))
+                          (invoke "pytest" "-vv")
+                          (format #t "test suite not run~%")))))))
     (native-inputs
      `(("python-pretend" ,python-pretend)
        ("python-pytest" ,python-pytest)))
@@ -17883,8 +18545,8 @@ several utilities, as well as an API for building localization tools.")
     (home-page "https://github.com/pypa/packaging")
     (synopsis "Core utilities for Python packages")
     (description "Packaging is a Python module for dealing with Python packages.
-It offers an interface for working with package versions, names, and dependency
-information.")
+     It offers an interface for working with package versions, names, and dependency
+     information.")
     ;; From 'LICENSE': This software is made available under the terms of
     ;; *either* of the licenses found in LICENSE.APACHE or LICENSE.BSD.
     ;; Contributions to this software is made under the terms of *both* these
@@ -17894,37 +18556,6 @@ information.")
 (define-public python2-packaging
   (package-with-python2 python-packaging))
 
-;; Variants with minimal dependencies, for bootstrapping Pytest.
-(define-public python-packaging-bootstrap
-  (hidden-package
-   (package/inherit
-    python-packaging
-    (name "python-packaging-bootstrap")
-    (arguments
-      (substitute-keyword-arguments (package-arguments python-packaging)
-        ((#:phases phases)
-         `(modify-phases ,phases
-            (add-after 'unpack 'fix-dependencies
-              (lambda* (#:key tests? #:allow-other-keys)
-                (substitute* "setup.py" (("\"six\"") ""))))))
-         ((#:tests? _ #f) #f)))
-    (native-inputs '())
-    (propagated-inputs
-     `(("python-pyparsing" ,python-pyparsing))))))
-
-(define-public python2-packaging-bootstrap
-  (hidden-package
-   (package/inherit
-    python2-packaging
-    (name "python2-packaging-bootstrap")
-    (native-inputs '())
-    (propagated-inputs
-     `(("python-pyparsing" ,python2-pyparsing)
-       ("python-six" ,python2-six-bootstrap)))
-    (arguments
-     `(#:tests? #f
-       ,@(package-arguments python2-packaging))))))
-
 (define-public python-relatorio
   (package
     (name "python-relatorio")
@@ -17938,20 +18569,16 @@ information.")
          "09nhrz80dfm60nssbvjgz4czzy4yzfa8gxczcdlzbgcnnvm914vb"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-lxml" ,python-lxml)
-       ("python-genshi" ,python-genshi)))
+     (list python-lxml python-genshi))
     (native-inputs
-     `(("python-magic" ,python-magic)))
+     (list python-magic))
     (home-page "https://relatorio.tryton.org/")
     (synopsis "Templating library able to output ODT and PDF files")
     (description "Relatorio is a templating library which provides a way to
-easily output ODT, ODS, PNG, SVG and several other kinds of files.  Support
-for more filetypes can be easily added by creating plugins for them.")
+     easily output ODT, ODS, PNG, SVG and several other kinds of files.  Support
+     for more filetypes can be easily added by creating plugins for them.")
     (license license:gpl3+)))
 
-(define-public python2-relatorio
-  (package-with-python2 python-relatorio))
-
 (define-public python-radon
   (package
     (name "python-radon")
@@ -17977,22 +18604,19 @@ for more filetypes can be easily added by creating plugins for them.")
                     (lambda _
                       (invoke "python" "radon/tests/run.py"))))))
     (propagated-inputs
-     `(("python-colorama" ,python-colorama)
-       ("python-flake8-polyfill" ,python-flake8-polyfill)
-       ("python-mando" ,python-mando)))
+     (list python-colorama python-flake8-polyfill python-mando))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-mock" ,python-pytest-mock)))
+     (list python-pytest python-pytest-mock))
     (home-page "https://radon.readthedocs.org/")
     (synopsis "Code Metrics in Python")
     (description "Radon is a Python tool which computes various code metrics.
-Supported metrics are:
-@itemize @bullet
-@item raw metrics: SLOC, comment lines, blank lines, &c.
-@item Cyclomatic Complexity (i.e.  McCabe’s Complexity)
-@item Halstead metrics (all of them)
-@item the Maintainability Index (a Visual Studio metric)
-@end itemize")
+     Supported metrics are:
+     @itemize @bullet
+     @item raw metrics: SLOC, comment lines, blank lines, &c.
+     @item Cyclomatic Complexity (i.e.  McCabe’s Complexity)
+     @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)))
 
@@ -18017,15 +18641,14 @@ Supported metrics are:
          "1and0drq8w9iplsic22n2h7hkpyq03a1mbqk4sgcdqhqzdqm539w"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-mock" ,python-mock)
-       ("python-six" ,python-six)))
+     (list python-mock python-six))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/gabrielfalcao/sure")
     (synopsis "Automated testing library in python for python")
     (description
      "Sure is a python library that leverages a DSL for writing assertions.
-Sure is heavily inspired by @code{RSpec Expectations} and @code{should.js}.")
+     Sure is heavily inspired by @code{RSpec Expectations} and @code{should.js}.")
     (license license:gpl3+)))
 
 (define-public python2-sure
@@ -18052,7 +18675,7 @@ Sure is heavily inspired by @code{RSpec Expectations} and @code{should.js}.")
      "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.")
+     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+)))
@@ -18077,13 +18700,13 @@ terminal such as coloured output in the shell, overwriting output, indentation,
        ;; for which it does not have the permission to write.
        #:tests? #f))
     (propagated-inputs
-     `(("python-cffi" ,python-cffi)))
+     (list python-cffi))
     (home-page "https://github.com/FSX/misaka")
     (synopsis "Python binding for Hoedown")
     (description
      "@code{Misaka} is a CFFI-based binding for @code{Hoedown}, a fast markdown processing
-library written in C.  It features a fast HTML renderer and functionality to make custom
-renderers (e.g. man pages or LaTeX).")
+     library written in C.  It features a fast HTML renderer and functionality to make custom
+     renderers (e.g. man pages or LaTeX).")
     (license license:expat)))
 
 (define-public python2-misaka
@@ -18105,9 +18728,7 @@ renderers (e.g. man pages or LaTeX).")
          "1640i9g8dycql3cc8j0bky0jkzj0q39blfbp4lsgpkprkfgcdk8v"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-couleur" ,python2-couleur)
-       ("python-sure" ,python2-sure)
-       ("python-misaka" ,python2-misaka)))
+     (list python2-couleur python2-sure python2-misaka))
     (arguments
      `(#:python ,python-2
        #:phases
@@ -18123,9 +18744,9 @@ renderers (e.g. man pages or LaTeX).")
     (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.")
+     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
@@ -18143,7 +18764,7 @@ sure that there are no old malfunctional examples in the documentation examples.
   (home-page "https://github.com/stefankoegl/python-json-pointer")
   (synopsis "Identify specific nodes in a JSON document")
   (description "@code{jsonpointer} allows you to access specific nodes
-by path in a JSON document (see RFC 6901).")
+     by path in a JSON document (see RFC 6901).")
   (license license:bsd-3)))
 
 (define-public python2-jsonpointer
@@ -18166,11 +18787,11 @@ by path in a JSON document (see RFC 6901).")
          "0k9pff06lxama3nhsc7cdxbp83422bdy8ifs52i6xkas8hpyzfzr"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-jsonpointer" ,python-jsonpointer)))
+     (list python-jsonpointer))
     (home-page "https://github.com/stefankoegl/python-json-patch")
     (synopsis "Applying JSON Patches in Python 2.6+ and 3.x")
     (description "@code{jsonpatch} is a library and program that allows
-applying JSON Patches according to RFC 6902.")
+     applying JSON Patches according to RFC 6902.")
     (license license:bsd-3)))
 
 (define-public python2-jsonpatch
@@ -18212,13 +18833,13 @@ applying JSON Patches according to RFC 6902.")
            (lambda _
              (invoke "pytest" "-v"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://rfc3986.readthedocs.io/")
     (synopsis "Parse and validate URI references")
     (description
      "@code{rfc3986} is a Python implementation of RFC@tie{}3986 including
-validation and authority parsing.  This module also supports RFC@tie{}6874
-which adds support for zone identifiers to IPv6 addresses.")
+     validation and authority parsing.  This module also supports RFC@tie{}6874
+     which adds support for zone identifiers to IPv6 addresses.")
     (license license:asl2.0)))
 
 (define-public python2-rfc3986
@@ -18239,7 +18860,7 @@ which adds support for zone identifiers to IPv6 addresses.")
     (home-page "https://pypi.org/project/rfc3987/")
     (synopsis "Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)")
     (description "@code{rfc3987} provides routines for parsing and
-validation of URIs (see RFC 3986) and IRIs (see RFC 3987).")
+     validation of URIs (see RFC 3986) and IRIs (see RFC 3987).")
     (license license:gpl3+)))
 
 (define-public python2-rfc3987
@@ -18272,13 +18893,13 @@ validation of URIs (see RFC 3986) and IRIs (see RFC 3987).")
                  (invoke "pytest" "tests/test_ipv6.py")
                  #t))))))
       (native-inputs
-       `(("python-pytest" ,python-pytest)))
+       (list python-pytest))
       (home-page "https://pypi.org/project/rfc6555/")
       (synopsis "Python implementation of RFC 6555")
       (description
        "Python implementation of the Happy Eyeballs Algorithm described in RFC
-6555.  Provided with a single file and dead-simple API to allow easy vendoring
-and integration into other projects.")
+     6555.  Provided with a single file and dead-simple API to allow easy vendoring
+     and integration into other projects.")
       (license license:asl2.0))))
 
 (define-public python-bagit
@@ -18294,14 +18915,12 @@ and integration into other projects.")
           "1m6y04qmig0b5hzb35lnaw3d2yfydb7alyr1579yblvgs3da6j7j"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-coverage" ,python-coverage)
-       ("python-mock" ,python-mock)))
+     (list python-setuptools-scm python-coverage python-mock))
     (home-page "https://libraryofcongress.github.io/bagit-python/")
     (synopsis "Create and validate BagIt packages")
     (description "Bagit is a Python library and command line utility for working
-with BagIt style packages.  BagIt is a minimalist packaging format for digital
-preservation.")
+     with BagIt style packages.  BagIt is a minimalist packaging format for digital
+     preservation.")
     (license license:cc0)))
 
 (define-public python-prov
@@ -18317,19 +18936,15 @@ preservation.")
           "1vi2fj31vygfcqrkimdmk52q2ldw08g9fn4v4zlgdfgcjlhqyhxn"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-lxml" ,python-lxml)
-       ("python-networkx" ,python-networkx)
-       ("python-rdflib" ,python-rdflib)))
+     (list python-dateutil python-lxml python-networkx python-rdflib))
     (native-inputs
-     `(("graphviz" ,graphviz)
-       ("python-pydot" ,python-pydot)))
+     (list graphviz python-pydot))
     (home-page "https://github.com/trungdong/prov")
     (synopsis
      "W3C Provenance Data Model supporting PROV-JSON, PROV-XML and PROV-O (RDF)")
     (description
      "This package provides a library for W3C Provenance Data Model supporting
-PROV-O (RDF), PROV-XML, PROV-JSON import/export.")
+     PROV-O (RDF), PROV-XML, PROV-JSON import/export.")
     (license license:expat)))
 
 (define-public python-arcp
@@ -18345,23 +18960,23 @@ PROV-O (RDF), PROV-XML, PROV-JSON import/export.")
           "1p8mfyjssa6pbn5dp6pyzv9yy6kwm2rz5jn2kjbq5vy9f9wsq5sw"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "http://arcp.readthedocs.io/")
     (synopsis
      "Archive and Package URI parser and generator")
     (description
      "@acronym{arcp, Archive and Package} provides functions for creating
-@code{arcp_} URIs, which can be used for identifying or parsing hypermedia files
-packaged in an archive or package, like a ZIP file.  arcp URIs can be used to
-consume or reference hypermedia resources bundled inside a file archive or an
-application package, as well as to resolve URIs for archive resources within a
-programmatic framework.  This URI scheme provides mechanisms to generate a
-unique base URI to represent the root of the archive, so that relative URI
-references in a bundled resource can be resolved within the archive without
-having to extract the archive content on the local file system.  An arcp URI can
-be used for purposes of isolation (e.g. when consuming multiple archives),
-security constraints (avoiding \"climb out\" from the archive), or for
-externally identiyfing sub-resources referenced by hypermedia formats.")
+     @code{arcp_} URIs, which can be used for identifying or parsing hypermedia files
+     packaged in an archive or package, like a ZIP file.  arcp URIs can be used to
+     consume or reference hypermedia resources bundled inside a file archive or an
+     application package, as well as to resolve URIs for archive resources within a
+     programmatic framework.  This URI scheme provides mechanisms to generate a
+     unique base URI to represent the root of the archive, so that relative URI
+     references in a bundled resource can be resolved within the archive without
+     having to extract the archive content on the local file system.  An arcp URI can
+     be used for purposes of isolation (e.g. when consuming multiple archives),
+     security constraints (avoiding \"climb out\" from the archive), or for
+     externally identiyfing sub-resources referenced by hypermedia formats.")
     (license license:asl2.0)))
 
 (define-public python-shellescape
@@ -18389,15 +19004,15 @@ externally identiyfing sub-resources referenced by hypermedia formats.")
                (invoke "python" "tests/test_shellescape.py"))
              #t)))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/chrissimpkins/shellescape")
     (synopsis
      "Shell escape a string to safely use it as a token in a shell command")
     (description
      "The shellescape Python module defines the @code{shellescape.quote()}
-function that returns a shell-escaped version of a Python string.  This is a
-backport of the @code{shlex.quote()} function from Python 3.8 that makes it
-accessible to users of Python 3 versions < 3.3 and all Python 2.x versions.")
+     function that returns a shell-escaped version of a Python string.  This is a
+     backport of the @code{shlex.quote()} function from Python 3.8 that makes it
+     accessible to users of Python 3 versions < 3.3 and all Python 2.x versions.")
     (license license:expat)))
 
 (define-public python-validators
@@ -18417,24 +19032,18 @@ accessible to users of Python 3 versions < 3.3 and all Python 2.x versions.")
                     (lambda _
                       (invoke "pytest" "-vv"))))))
     (propagated-inputs
-     `(("python-decorator" ,python-decorator)
-       ("python-six" ,python-six)))
+     (list python-decorator python-six))
     (native-inputs
-     `(("python-flake8" ,python-flake8)
-       ("python-isort" ,python-isort)
-       ("python-pytest" ,python-pytest)))
+     (list python-flake8 python-isort python-pytest))
     (home-page "https://github.com/kvesteri/validators")
     (synopsis "Data validation library")
     (description
      "This package contains validators for different things such as email
-addresses, IP addresses, URLs, hashes and more.  It has been designed to
-be easy to use and not require defining a schema or form just to validate
-some input.")
+     addresses, IP addresses, URLs, hashes and more.  It has been designed to
+     be easy to use and not require defining a schema or form just to validate
+     some input.")
     (license license:expat)))
 
-(define-public python2-validators
-  (package-with-python2 python-validators))
-
 (define-public python-validate-email
   (package
     (name "python-validate-email")
@@ -18450,7 +19059,7 @@ some input.")
     (home-page "https://github.com/syrusakbary/validate_email")
     (synopsis "Verifies if an email address is valid and really exists")
     (description "@code{validate_email} can be used to verify if an email
-address is valid and really exists.")
+     address is valid and really exists.")
     (license license:lgpl3+)))
 
 (define-public python2-validate-email
@@ -18469,14 +19078,14 @@ address is valid and really exists.")
         "00pamnwla3khk8nyla7y28dq9jnh69swd7f4jfsl7sn1izs8n8zk"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-iso8601" ,python-iso8601)
-       ("python-jsonpointer" ,python-jsonpointer)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-requests" ,python-requests)
-       ("python-rfc3987" ,python-rfc3987)
-       ("python-six" ,python-six)
-       ("python-validate-email" ,python-validate-email)))
+     (list python-click
+           python-iso8601
+           python-jsonpointer
+           python-pyyaml
+           python-requests
+           python-rfc3987
+           python-six
+           python-validate-email))
     (home-page "https://github.com/pipermerriam/flex")
     (synopsis "Validates Swagger schemata")
     (description "@code{flex} can be used to validate Swagger schemata.")
@@ -18498,16 +19107,55 @@ address is valid and really exists.")
         "0kizhh3mnhpa08wfnsv1gagy22bpxzxszgbiylkhpz1d8qvwrykk"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-simplejson" ,python-simplejson)))
+     (list python-dateutil python-simplejson))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytz" ,python-pytz)))
+     (list python-pytest python-pytz))
     (home-page "https://github.com/marshmallow-code/marshmallow")
     (synopsis "Convert complex datatypes to and from native
-Python datatypes.")
+     Python datatypes")
     (description "@code{marshmallow} provides a library for converting
-complex datatypes to and from native Python datatypes.")
+     complex datatypes to and from native Python datatypes.")
+    (license license:expat)))
+
+(define-public python-marshmallow-3.2
+  (package
+    (inherit python-marshmallow)
+    (version "3.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "marshmallow" version))
+       (sha256
+        (base32 "1w18klwj0z9bqxj252qpj1hz8l46nl27sbc89rkajc7mln73wbws"))))))
+
+(define-public python-marshmallow-jsonapi
+  (package
+    (name "python-marshmallow-jsonapi")
+    (version "0.24.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "marshmallow-jsonapi" version))
+       (sha256
+        (base32 "1d9pxcgmln4gls99vwj1h24qv0lz7fb2jqmqrsiv1pid1snc125x"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-marshmallow-3.2))
+    (native-inputs
+     (list python-faker
+           python-flake8
+           python-flake8-bugbear
+           python-flask
+           python-mock
+           python-pre-commit
+           python-pytest
+           python-tox))
+    (home-page "https://github.com/marshmallow-code/marshmallow-jsonapi")
+    (synopsis "JSON:API 1.0 formatting with Marshmallow")
+    (description
+     "The marshmallow-jsonapi package provides a simple way to produce
+     @uref{https://jsonapi.org, JSON:API}-compliant data in any Python Web framework.
+     It includes optional utilities to integrate with Flask.")
     (license license:expat)))
 
 (define-public python-apispec
@@ -18532,15 +19180,14 @@ complex datatypes to and from native Python datatypes.")
                               ;; yet in Guix.
                               "-k" "not openapi_tools_validate"))))))
     (propagated-inputs
-     `(("python-pyyaml" ,python-pyyaml)))
+     (list python-pyyaml))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-marshmallow" ,python-marshmallow)))
+     (list python-pytest python-marshmallow))
     (home-page "https://github.com/marshmallow-code/apispec")
     (synopsis "Swagger/OpenAPI specification generator")
     (description "@code{python-apispec} is a pluggable API specification
-generator.  It currently supports the OpenAPI specification, formerly known
-as Swagger.")
+     generator.  It currently supports the OpenAPI specification, formerly known
+     as Swagger.")
     (license license:expat)))
 
 (define-public python-flasgger
@@ -18567,24 +19214,21 @@ as Swagger.")
                 "flake8 flasgger --ignore=E731,F403"))
              (invoke "py.test"))))))
     (propagated-inputs
-     `(("python-flask" ,python-flask)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-jsonschema" ,python-jsonschema)
-       ("python-mistune" ,python-mistune)
-       ("python-six" ,python-six)))
-    (native-inputs
-     `(("python-decorator" ,python-decorator)
-       ("python-flake8" ,python-flake8)
-       ("python-flask-restful" ,python-flask-restful)
-       ("python-flex" ,python-flex)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-marshmallow" ,python-marshmallow)
-       ("python-apispec" ,python-apispec)))
+     (list python-flask python-pyyaml python-jsonschema python-mistune
+           python-six))
+    (native-inputs
+     (list python-decorator
+           python-flake8
+           python-flask-restful
+           python-flex
+           python-pytest
+           python-pytest-cov
+           python-marshmallow
+           python-apispec))
     (home-page "https://github.com/rochacbruno/flasgger/")
     (synopsis "Extract Swagger specs from your Flask project")
     (description "@code{python-flasgger} allows extracting Swagger specs
-from your Flask project.  It is a fork of Flask-Swagger.")
+     from your Flask project.  It is a fork of Flask-Swagger.")
     (license license:expat)))
 
 (define-public python-swagger-spec-validator
@@ -18600,19 +19244,14 @@ from your Flask project.  It is a fork of Flask-Swagger.")
          "11g627icrsqwazsncwi0sdvprcj6hwaayw5xk3xsj8d97bmrzqjp"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-jsonschema" ,python-jsonschema)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-six" ,python-six)))
+     (list python-jsonschema python-pyyaml python-six))
     (home-page
      "https://github.com/Yelp/swagger_spec_validator")
     (synopsis "Validation of Swagger specifications")
     (description "@code{swagger_spec_validator} provides a library for
-validating Swagger API specifications.")
+     validating Swagger API specifications.")
     (license license:asl2.0)))
 
-(define-public python2-swagger-spec-validator
-  (package-with-python2 python-swagger-spec-validator))
-
 (define-public python-apache-libcloud
   (package
     (name "python-apache-libcloud")
@@ -18639,7 +19278,7 @@ validating Swagger API specifications.")
              (substitute* "libcloud/test/compute/test_ssh_client.py"
                (("class ShellOutSSHClientTests")
                 "@unittest.skip(\"Guix container doesn't have ssh service\")
-class ShellOutSSHClientTests"))
+     class ShellOutSSHClientTests"))
              #t))
          (add-before 'check 'copy-secret
            (lambda _
@@ -18647,20 +19286,16 @@ class ShellOutSSHClientTests"))
                         "libcloud/test/secrets.py")
              #t)))))
     (inputs
-     `(("openssh" ,openssh)))
+     (list openssh))
     (propagated-inputs
-     `(("python-paramiko" ,python-paramiko)
-       ("python-requests" ,python-requests)))
+     (list python-paramiko python-requests))
     (native-inputs
-     `(("python-lockfile" ,python-lockfile)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-requests-mock" ,python-requests-mock)))
+     (list python-lockfile python-mock python-pytest python-pytest-runner
+           python-requests-mock))
     (home-page "https://libcloud.apache.org/")
     (synopsis "Unified Cloud API")
     (description "@code{libcloud} is a Python library for interacting with
-many of the popular cloud service providers using a unified API.")
+     many of the popular cloud service providers using a unified API.")
     (license license:asl2.0)))
 
 (define-public python-smmap
@@ -18675,22 +19310,16 @@ many of the popular cloud service providers using a unified API.")
         (base32 "0ijlnv60y8f41py1wnn5n1a1i81cxd9dfpdhr0k3cgkrcbz8850p"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nosexcover" ,python-nosexcover)))
+     (list python-nosexcover))
     (home-page "https://github.com/Byron/smmap")
     (synopsis "Python sliding window memory map manager")
     (description "@code{smmap} is a pure Python implementation of a sliding
-window memory map manager.")
+     window memory map manager.")
     (license license:bsd-3)))
 
-(define-public python-smmap2
-  (deprecated-package "python-smmap2" python-smmap))
-
 (define-public python2-smmap
   (package-with-python2 python-smmap))
 
-(define-public python2-smmap2
-  (deprecated-package "python2-smmap2" python2-smmap))
-
 (define-public python-regex
   (package
     (name "python-regex")
@@ -18709,13 +19338,13 @@ window memory map manager.")
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (add-installed-pythonpath inputs outputs)
              (invoke "python" "-c"
-                     "from regex.test_regex import test_main; test_main()"))))))
-    (home-page "https://bitbucket.org/mrabarnett/mrab-regex")
-    (synopsis "Alternative regular expression module")
-    (description "This regular expression implementation is backwards-
+                     "from regex.test_regex import test_main ; test_main()"))))))
+     (home-page "https://bitbucket.org/mrabarnett/mrab-regex")
+     (synopsis "Alternative regular expression module")
+     (description "This regular expression implementation is backwards-
 compatible with the standard @code{re} module, but offers additional
 functionality like full case-folding for case-insensitive matches in Unicode.")
-    (license license:psfl)))
+     (license license:psfl)))
 
 (define-public python2-regex
   (package-with-python2 python-regex))
@@ -18733,9 +19362,7 @@ functionality like full case-folding for case-insensitive matches in Unicode.")
          "091lp9bpqi8yf1nmyg19xmvw611lrzq2q94cl1k5gnlh0c6vl1s1"))))
     (build-system python-build-system)
     (inputs
-     `(("mesa" ,mesa)
-       ("freeglut" ,freeglut)
-       ("glu" ,glu)))
+     (list mesa freeglut glu))
     (arguments
      `(#:tests? #f ; Tests fail: AttributeError: 'GLXPlatform' object has no
                                         ;attribute 'OSMesa'
@@ -18779,8 +19406,7 @@ library.")
         (base32
          "01iggy5jwxv7lxnj51zbmlbhag9wcb7dvrbwgi97i90n0a5m3r8j"))))
     (inputs
-     `(("mesa" ,mesa)
-       ("python-numpy" ,python-numpy))) ; for cython module
+     (list mesa python-numpy)) ; for cython module
                                         ; numpy_formathandler, thus not propagated
     (arguments
      `(#:tests? #f
@@ -18812,8 +19438,7 @@ library.")
           (lambda _
             (delete-file "rencode/t.py")
             #t)))))
-   (native-inputs `(("pkg-config" ,pkg-config)
-                    ("python-cython" ,python-cython)))
+   (native-inputs (list pkg-config python-cython))
    (home-page "https://github.com/aresch/rencode")
    (synopsis "Serialization of heterogeneous data structures")
    (description
@@ -18841,11 +19466,8 @@ pure Python module.")
          "0nv207ql2wmh9q62503np056c4vf1c1hlsi5cvv5p5kx574k6r2y"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pyyaml" ,python-pyyaml)
-       ("python-radon" ,python-radon)
-       ("python-requests" ,python-requests)
-       ("python-flake8" ,python-flake8)
-       ("python-tox" ,python-tox)))
+     (list python-pyyaml python-radon python-requests python-flake8
+           python-tox))
     (arguments
      `(#:tests? #f                      ;test suite not shipped with the PyPI archive
        #:phases
@@ -18939,9 +19561,9 @@ ignoring formatting changes.")
                #t))))))
     (home-page "https://pydub.com")
     (inputs
-     `(("ffmpeg" ,ffmpeg)))
+     (list ffmpeg))
     (propagated-inputs
-     `(("python-scipy" ,python-scipy)))
+     (list python-scipy))
     (synopsis "Manipulate audio with a high level interface in Python")
     (description
      "@code{pydub} makes it easy to manipulate audio in Python.  It relies on
@@ -18966,11 +19588,8 @@ ignoring formatting changes.")
                     (lambda _
                       (invoke "pytest" "-vv" "-k" "not perf"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-asyncio" ,python-pytest-asyncio)
-       ("python-pytest-timeout" ,python-pytest-timeout)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-toml" ,python-toml)))
+     (list python-pytest python-pytest-asyncio python-pytest-timeout
+           python-setuptools-scm python-toml))
     (home-page "https://github.com/tqdm/tqdm")
     (synopsis "Fast, extensible progress meter")
     (description
@@ -19030,12 +19649,12 @@ created by running @code{python setup.py develop}).")
          (base32 "11rpd653zcgzkq3sgwkzs3mpxl3r5rij59745ni84ikv8smjmlm3"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-tqdm" ,python-tqdm)
-       ("python-packaging" ,python-packaging)
-       ("python-pkginfo" ,python-pkginfo)
-       ("python-readme-renderer" ,python-readme-renderer)
-       ("python-requests" ,python-requests)
-       ("python-requests-toolbelt" ,python-requests-toolbelt)))
+     (list python-tqdm
+           python-packaging
+           python-pkginfo
+           python-readme-renderer
+           python-requests
+           python-requests-toolbelt))
     (home-page "https://github.com/pypa/twine")
     (synopsis "Collection of utilities for interacting with PyPI")
     (description
@@ -19094,8 +19713,7 @@ lines are read from a single file.")
     (native-inputs
      `(("python-pbr" ,python-pbr-minimal)))
     (propagated-inputs
-      `(("python-linecache2" ,python-linecache2)
-        ("python-six" ,python-six)))
+      (list python-linecache2 python-six))
     (home-page
       "https://github.com/testing-cabal/traceback2")
     (synopsis "Backports of the traceback module")
@@ -19196,10 +19814,20 @@ services.")
         (base32
          "1nii1sz5jq75ilf18bjnr11l9rz1lvdmyk66bxl7q90qan85yhjj"))))
     (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'dont-install-defunct-egginfo
+                    (lambda _
+                      ;; When a ".git" directory is missing, the setup.py
+                      ;; script invokes setuptools.setup twice, once with
+                      ;; "0" as the version.  Prevent that.
+                      (substitute* "setup.py"
+                        (("if not isdir\\('\\.git'\\):")
+                         "if False:")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (home-page "https://github.com/Changaco/setuptools_scm_git_archive/")
     (synopsis "Setuptools_scm plugin for git archives")
     (description
@@ -19266,13 +19894,10 @@ Git.")
              (with-directory-excursion "pyclipper"
                (invoke "cython" "--cplus" "pyclipper.pyx")))))))
     (propagated-inputs
-     `(("python-setuptools-scm-git-archive" ,python-setuptools-scm-git-archive)))
+     (list python-setuptools-scm-git-archive))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-unittest2" ,python-unittest2)
-       ("unzip" ,unzip)))
+     (list python-cython python-pytest python-pytest-runner
+           python-unittest2 unzip))
     (home-page "https://github.com/greginvm/pyclipper")
     (synopsis "Wrapper for Angus Johnson's Clipper library")
     (description
@@ -19298,13 +19923,9 @@ Angus Johnson's polygon clipping Clipper library (ver. 6.4.2).")
     (arguments
      `(#:python ,python-2))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("python2-pytest" ,python2-pytest)
-       ("python2-pytest-runner" ,python2-pytest-runner)))
+     (list unzip python2-pytest python2-pytest-runner))
     (propagated-inputs
-     `(("python-fonttools" ,python2-fonttools)
-       ("python-pyclipper" ,python2-pyclipper)
-       ("python-ufolib" ,python2-ufolib)))
+     (list python2-fonttools python2-pyclipper python2-ufolib))
     (home-page "https://github.com/typemytype/booleanOperations")
     (synopsis "Boolean operations on paths")
     (description
@@ -19378,10 +19999,9 @@ particularly convenient for use in tests.")
                                 (lambda (filename)
                                   (string-suffix? ".py" filename)))))))))
     (native-inputs
-     `(("python-tempdir" ,python-tempdir)
-       ("python-nose" ,python-nose)))
+     (list python-tempdir python-nose))
     (propagated-inputs
-     `(("python-h5py" ,python-h5py)))
+     (list python-h5py))
     (home-page "https://www.activepapers.org/")
     (synopsis "Executable papers for scientific computing")
     (description
@@ -19427,7 +20047,7 @@ such as figshare or Zenodo.")
                       (delete-file "setup.cfg")
                       (invoke "py.test"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/k-bx/python-semver")
     (synopsis "Python helper for Semantic Versioning")
     (description "This package provides a Python library for
@@ -19451,11 +20071,9 @@ such as figshare or Zenodo.")
     (arguments
      '(#:tests? #f)) ;FIXME: Some tests require network access.
     (native-inputs
-     `(("python-cloudpickle" ,python-cloudpickle)
-       ("python-dill" ,python-dill)
-       ("python-msgpack" ,python-msgpack)))
+     (list python-cloudpickle python-dill python-msgpack))
     (propagated-inputs
-     `(("python-serpent" ,python-serpent)))
+     (list python-serpent))
     (home-page "https://pyro4.readthedocs.io")
     (synopsis "Distributed object middleware for Python")
     (description
@@ -19509,10 +20127,9 @@ is the new Pyro version that is actively developed.")
          "16l48aj9fps9r7jyk8gpxppwrv0fqvlc13sayxskz28r5s6sjwbl"))))
     (build-system python-build-system)
     (inputs
-     `(("netcdf" ,netcdf)))
+     (list netcdf))
     (propagated-inputs
-     `(("python-numpy" ,python2-numpy-1.8)
-       ("python-pyro" ,python2-pyro)))
+     (list python2-numpy-1.8 python2-pyro))
     (arguments
      ;; ScientificPython is not compatible with Python 3
      `(#:python ,python-2
@@ -19549,7 +20166,7 @@ not actively maintained and works only with Python 2 and NumPy < 1.9.")
          "1fqwh3ba9jd42nigvn5shndgwb1zy7kh9520ncvqci7n8ffjr6p1"))))
     (build-system python-build-system)
     (native-inputs
-     `(("netcdf" ,netcdf)))
+     (list netcdf))
     (propagated-inputs
      `(("python-scientific" ,python2-scientific)
        ("python-tkinter" ,python-2 "tk")))
@@ -19631,9 +20248,9 @@ queue.")
          "05pd1hyhqvpw87rnbvl3vdyf619snpyccbswaxisdj17frwnjacf"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-heapdict" ,python-heapdict)))
+     (list python-heapdict))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://zict.readthedocs.io/en/latest/")
     (synopsis "Composable mutable mapping tools")
     (description "This package provides abstract @code{MutableMapping} classes
@@ -19682,9 +20299,8 @@ user's @file{~/Trash} directory.")
           `(modify-phases ,phases
              (add-before 'check 'setenv
                (lambda _
-                 (setenv "PYTHONPATH"
-                         (string-append (getcwd) ":" (getenv "PYTHONPATH")))
-                 #t)))))))))
+                 (setenv "GUIX_PYTHONPATH"
+                         (string-append (getcwd) ":" (getenv "GUIX_PYTHONPATH"))))))))))))
 
 (define-public python-pyfavicon
   (package
@@ -19702,9 +20318,7 @@ user's @file{~/Trash} directory.")
      ;; repository require online data.
      '(#:tests? #f))
     (propagated-inputs
-     `(("python-aiohttp" ,python-aiohttp)
-       ("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-pillow" ,python-pillow)))
+     (list python-aiohttp python-beautifulsoup4 python-pillow))
     (home-page "https://github.com/bilelmoussaoui/pyfavicon")
     (synopsis "Async favicon fetcher")
     (description
@@ -19723,9 +20337,7 @@ user's @file{~/Trash} directory.")
         (base32 "090krlxj7az0d9yl8i20vjrqi66dfxx7y5xakjhxzsfp7qmldnc7"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pathspec" ,python-pathspec)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-setuptools" ,python-setuptools)))
+     (list python-pathspec python-pyyaml python-setuptools))
     (home-page "https://github.com/adrienverge/yamllint")
     (synopsis "Linter for YAML files")
     (description
@@ -19782,14 +20394,9 @@ style guide, even if the original code didn't violate the style guide.")
                  "/bin/jq")))
              #t)))))
     (inputs
-     `(("python-argcomplete" ,python-argcomplete)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-xmltodict" ,python-xmltodict)
-       ("jq" ,jq)))
-    (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-flake8" ,python-flake8)
-       ("python-wheel" ,python-wheel)))
+     (list python-argcomplete python-pyyaml python-xmltodict jq))
+    (native-inputs
+     (list python-coverage python-flake8 python-wheel))
     (home-page "https://github.com/kislyuk/yq")
     (synopsis "Command-line YAML/XML processor")
     (description
@@ -19851,7 +20458,7 @@ files, and Makefiles.")
           (lambda _
             (invoke "py.test"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/Suor/whatever")
     (synopsis "Make anonymous functions by partial application of operators")
     (description "@code{whatever} provides an easy way to make anonymous
@@ -19882,8 +20489,7 @@ functions by partial application of operators.")
            (lambda _
              (invoke "py.test"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-whatever" ,python-whatever)))
+     (list python-pytest python-whatever))
     (home-page "https://github.com/Suor/funcy")
     (synopsis "Functional tools")
     (description "@code{funcy} is a library that provides functional tools.
@@ -19968,11 +20574,9 @@ Week instances stringify to this form.")
                   (string-append "'" libzbar "/lib/libzbar.so.0'")))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-numpy" ,python-numpy)
-       ("python-pillow" ,python-pillow)))
+     (list pkg-config python-numpy python-pillow))
     (inputs
-     `(("zbar" ,zbar)))
+     (list zbar))
     (home-page "https://github.com/NaturalHistoryMuseum/pyzbar/")
     (synopsis "Read one-dimensional barcodes and QR codes")
     (description
@@ -20022,7 +20626,7 @@ and @code{tokens_to_src} to roundtrip.")
          "0ydxqz2dvns44g55p8ix2x18qkfk3aaz0m0dc70f3g6n8js35h47"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-tokenize-rt" ,python-tokenize-rt)))
+     (list python-tokenize-rt))
     (home-page "https://github.com/asottile/future-fstrings")
     (synopsis "Backport of fstrings to Python < 3.6")
     (description
@@ -20052,7 +20656,7 @@ source bytes using the UTF-8 encoding and then rewrites Python 3.6 style
          (replace 'check
            (lambda _
              (invoke "pytest"))))))
-    (native-inputs `(("python-pytest" ,python-pytest)))
+    (native-inputs (list python-pytest))
     (home-page "https://github.com/python/typed_ast")
     (synopsis "Fork of Python @code{ast} modules with type comment support")
     (description "This package provides a parser similar to the standard
@@ -20082,36 +20686,35 @@ based on the CPython 2.7 and 3.7 parsers.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'disable-failing-tests
+         ;; Unfortunately, this doesn't seem to be enough to fix these two
+         ;; tests, but we'll patch this anyway.
+         (add-after 'unpack 'patch-shell-reference
            (lambda _
              (substitute* "tests/test_completion/test_completion.py"
-               (("def test_show_completion")
-                "def _test_show_completion")
-               (("def test_install_completion")
-                "def _test_install_completion"))
-             (substitute* "tests/test_completion/test_completion_install.py"
-               (("def test_completion_install_bash")
-                "def _test_completion_install_bash")
-               (("def test_completion_install_zsh")
-                "def _test_completion_install_zsh")
-               (("def test_completion_install_fish")
-                "def _test_completion_install_fish")
-               (("def test_completion_install_powershell")
-                "def _test_completion_install_powershell"))
-             #t))
+               (("\"bash\"") (string-append "\"" (which "bash") "\""))
+               (("\"/bin/bash\"") (string-append "\"" (which "bash") "\"")))))
          (replace 'check
-           (lambda _
-             (setenv "PYTHONPATH"
-                     (string-append (getcwd) ":"
-                                    (getenv "PYTHONPATH")))
-             (invoke "python" "-m" "pytest" "tests/")
-             #t)))))
-    (propagated-inputs
-     `(("python-click" ,python-click)))
-    (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-pytest" ,python-pytest)
-       ("python-shellingham" ,python-shellingham)))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "HOME" "/tmp") ; some tests need it
+
+               ;; This is for completion tests
+               (with-output-to-file "/tmp/.bashrc" (lambda _ (display "# dummy")))
+
+               (setenv "GUIX_PYTHONPATH"
+                       (string-append (getcwd) ":"
+                                      (getenv "GUIX_PYTHONPATH")))
+               (let ((disabled-tests (list "test_show_completion"
+                                           "test_install_completion")))
+                 (invoke "python" "-m" "pytest" "tests/"
+                         "-k"
+                         (string-append "not "
+                                        (string-join disabled-tests
+                                                     " and not "))))))))))
+    (propagated-inputs
+     (list python-click))
+    (native-inputs
+     (list python-coverage python-pytest python-shellingham))
     (home-page "https://github.com/tiangolo/typer")
     (synopsis
       "Typer builds CLI based on Python type hints")
@@ -20212,22 +20815,19 @@ Included are implementations of:
                 '("bpython3" "bpython3-curses" "bpython3-urwid" "bpdb3")))
              #t)))))
     (propagated-inputs
-     `(("python-pygments" ,python-pygments)
-       ("python-requests" ,python-requests)
-       ("python-curtsies" ,python-curtsies)
-       ("python-greenlet" ,python-greenlet)
-       ("python-six" ,python-six)
-       ("python-cwcwidth" ,python-cwcwidth)
-       ("python-pyxdg" ,python-pyxdg)
-       ;; optional dependencies
-       ("python-urwid" ,python-urwid)   ; for bpython-urwid only
-       ("python-watchdog" ,python-watchdog)
-       ("python-jedi" ,python-jedi)))
-    (native-inputs
-     `(("python-sphinx" ,python-sphinx)
-       ("python-mock" ,python-mock)
-       ("python-tox" ,python-tox)
-       ("python-wheel" ,python-wheel)))
+     (list python-pygments
+           python-requests
+           python-curtsies
+           python-greenlet
+           python-six
+           python-cwcwidth
+           python-pyxdg
+           ;; optional dependencies
+           python-urwid ; for bpython-urwid only
+           python-watchdog
+           python-jedi))
+    (native-inputs
+     (list python-sphinx python-mock python-tox python-wheel))
     (home-page "https://bpython-interpreter.org/")
     (synopsis "Fancy interface to the Python interpreter")
     (description "Bpython is a fancy interface to the Python
@@ -20283,7 +20883,7 @@ file system events on Linux.")
          "14gv8ll3ipqv4kyc2xiy891nrmjl4ic823zfyx8hassagyclyppw"))))
     (build-system python-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (arguments
      `(#:python ,python-2
        #:tests? #f
@@ -20373,7 +20973,7 @@ working with iterables.")
         (base32 "0wnp3yqcgx0rpy8dz51vh75lbp2qif67da19zi7m3ca98n887hgb"))))
     (build-system python-build-system)
     (inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://readthedocs.org/projects/latexcodec/")
     (synopsis "Work with LaTeX code in Python")
     (description "Lexer and codec to work with LaTeX code in Python.")
@@ -20391,11 +20991,9 @@ working with iterables.")
         (base32 "070wfcmxrd7xg1si421mi9150gmx2qwx431nwf69sq3hhmgnx080"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (inputs
-     `(("python-latexcodec" ,python-latexcodec)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-six" ,python-six)))
+     (list python-latexcodec python-pyyaml python-six))
     (arguments
      `(#:test-target "nosetests"))
     (home-page "https://pybtex.org/")
@@ -20415,7 +21013,7 @@ in Python.  You can simply type pybtex instead of bibtex.")
        (sha256
         (base32 "09vagxgbq78wvq4xbikmn2hpqqsa2i96kqsmphf7dqynfv0dlsd5"))))
     (build-system python-build-system)
-    (propagated-inputs `(("python-six" ,python-six)))
+    (propagated-inputs (list python-six))
     (home-page "https://github.com/tadeck/onetimepass/")
     (synopsis "One-time password library")
     (description "Python one-time password library for HMAC-based (HOTP) and
@@ -20433,7 +21031,7 @@ time-based (TOTP) passwords.")
        (sha256
         (base32 "161k8771m7w60qakyvrwf9q62lvakmix7mpfylpy7713qs939f0j"))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -20462,7 +21060,7 @@ Parso is also able to list multiple syntax errors in your Python file.")
          "0i11f6z6lix8ixi3vsk6s76zvvpmgrw6zjrcwjm0m4hjdh83vfvf"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/python-trio/async_generator")
     (synopsis "Async generators and context managers for Python 3.5+")
     (description "@code{async_generator} back-ports Python 3.6's native async
@@ -20537,9 +21135,9 @@ Glob2 currently based on the glob code from Python 3.3.1.")
          "0pd9by719qh882hqs6xpby61sn1x5h98hms5p2p8yqnycrf1s0h2"))))
     (build-system python-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (propagated-inputs
-     `(("python-gevent" ,python-gevent)))
+     (list python-gevent))
     (home-page "https://gehrcke.de/gipc/")
     (synopsis "Child process management in the context of gevent")
     (description "Usage of Python's multiprocessing package in a
@@ -20561,7 +21159,7 @@ gevent-powered application.")
          "0wwlbifcbpzy3wfv6yzsxncarsngzizmmxbn6cy5gazlcq7h4k5x"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-wcwidth" ,python-wcwidth)))
+     (list python-wcwidth))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -20635,14 +21233,13 @@ path components.")
                (("setup\\(")
                 "setup(\n    test_suite=\"test\",")))))))
     (propagated-inputs
-     `(("python-beautifultable" ,python-beautifultable)
-       ("python-dateutil" ,python-dateutil)
-       ("python-gitpython" ,python-gitpython)
-       ("python-globber" ,python-globber)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-sqlalchemy" ,python-sqlalchemy)
-       ("python-sqlalchemy-utils"
-        ,python-sqlalchemy-utils)))
+     (list python-beautifultable
+           python-dateutil
+           python-gitpython
+           python-globber
+           python-matplotlib
+           python-sqlalchemy
+           python-sqlalchemy-utils))
     (home-page "https://github.com/asharov/git-hammer")
     (synopsis "Provide statistics for git repositories")
     (description
@@ -20674,7 +21271,7 @@ commit, but it also includes some other useful statistics.")
                   (string-append "'" fuse "/lib/libfuse.so'")))
                #t))))))
     (propagated-inputs
-     `(("fuse" ,fuse)))
+     (list fuse))
     (home-page "https://github.com/fusepy/fusepy")
     (synopsis "Simple ctypes bindings for FUSE")
     (description "Python module that provides a simple interface to FUSE and
@@ -20707,9 +21304,9 @@ MacFUSE.  The binding is created using the standard @code{ctypes} library.")
                   (string-append "\"" fuse "/lib/libfuse.so\""))))
              #t)))))
     (inputs
-     `(("fuse" ,fuse)))
+     (list fuse))
     (propagated-inputs
-     `(("python-paramiko" ,python-paramiko)))
+     (list python-paramiko))
     (home-page "https://github.com/rianhunter/fusepyng")
     (synopsis "Simple ctypes bindings for FUSE")
     (description "@code{fusepyng} is a Python module that provides a simple
@@ -20717,20 +21314,39 @@ interface to FUSE on various operating systems.  It's just one file and is
 implemented using @code{ctypes}.")
     (license license:isc)))
 
+(define-public python-update-checker
+  (package
+    (name "python-update-checker")
+    (version "0.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "update-checker" version))
+       (sha256
+        (base32 "04yb5a9mi45ax50m2m0ih6gdvkk1j7gfmy83dd58i1f59axlabba"))))
+    (build-system python-build-system)
+    (propagated-inputs (list python-requests))
+    (native-inputs (list python-black python-flake8 python-pytest))
+    (home-page "https://github.com/bboe/update_checker")
+    (synopsis "Python module that will check for package updates")
+    (description "This package provides a Python module that will check for
+package updates.")
+    (license license:bsd-2)))
+
 (define-public python-userspacefs
   (package
     (name "python-userspacefs")
-    (version "2.0.3")
+    (version "2.0.4")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "userspacefs" version))
         (sha256
          (base32
-          "1v6saf62ml3j63adalvlkj4iavxjbsbapl20b21mn73p7kvn4ayf"))))
+          "06f2gsiypas270nqfjir4wwjlpkjp097pm6zchc7k20ggg32gv1k"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-fusepyng" ,python-fusepyng)))
+     (list python-fusepyng))
     (home-page "https://github.com/rianhunter/userspacefs")
     (synopsis "User-space file systems for Python")
     (description
@@ -20770,13 +21386,9 @@ user-space file systems in Python.")
                (delete-file "test/test_python_gen.py")
                (invoke "pytest")))))))
     (propagated-inputs
-     `(("python-ply" ,python-ply)
-       ("python-six" ,python-six)))
+     (list python-ply python-six))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-coverage python-mock python-pytest python-pytest-runner))
     (home-page "https://github.com/dropbox/stone")
     (synopsis "Official Api Spec Language for Dropbox")
     (description
@@ -20846,9 +21458,7 @@ inferring type information using compile-time introspection.")
     (arguments
      `(#:tests? #f)) ;requires online data
     (propagated-inputs
-     `(("python-appdirs" ,python-appdirs)
-       ("python-packaging" ,python-packaging)
-       ("python-requests" ,python-requests)))
+     (list python-appdirs python-packaging python-requests))
     (home-page "https://github.com/fatiando/pooch")
     (synopsis "Manage your Python library's sample data files")
     (description
@@ -20870,10 +21480,9 @@ and corruption checks.")
          "1vzmz1xh38b84dv0f4hlp7arwmx8wjlih6lf964bpy8dnyk6s5rs"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-monotonic" ,python-monotonic)
-       ("python-six" ,python-six)))
+     (list python-monotonic python-six))
     (native-inputs
-     `(("python-testtools" ,python-testtools)))
+     (list python-testtools))
     (home-page "https://github.com/harlowja/fasteners")
     (synopsis "Python package that provides useful locks")
     (description
@@ -20900,8 +21509,7 @@ and corruption checks.")
          "1yp2jaxg3v86pia0q512dg3hz6s9y5vzdivsgrba1kds05ial14g"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("python-six" ,python-six)))
+     (list python-requests python-six))
     (home-page
      "https://github.com/dashea/requests-file")
     (synopsis "File transport adapter for Requests")
@@ -20938,10 +21546,9 @@ library to allow local file system access via @code{file://} URLs.")
              (when tests?
                (invoke "pytest" "-vv")))))))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-pytest" ,python-pytest)))
+     (list python-coverage python-pytest))
     (propagated-inputs
-     `(("python-editdistance" ,python-editdistance)))
+     (list python-editdistance))
     (home-page "https://github.com/chriskuehl/identify")
     (synopsis "File identification library for Python")
     (description
@@ -20963,12 +21570,9 @@ identifying what the file is.")
          "1d5s8v6kpsgazyahflhji1cfdcf89rv7l7z55v774bhzvcjp2y99"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-responses" ,python-responses)))
+     (list python-pytest python-responses))
     (propagated-inputs
-     `(("python-idna" ,python-idna)
-       ("python-requests" ,python-requests)
-       ("python-requests-file" ,python-requests-file)))
+     (list python-idna python-requests python-requests-file))
     (home-page
      "https://github.com/john-kurkowski/tldextract")
     (synopsis
@@ -21007,12 +21611,9 @@ Public Suffix List's private domains as well.")
                ;; This test fails. It tries to open a network socket.
                (invoke "pytest" "-vv" "-k" "not test_error_message")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest python-pytest-runner))
     (inputs
-     `(("python-argcomplete" ,python-argcomplete)
-       ("python-colorama" ,python-colorama)
-       ("python-termcolor" ,python-termcolor)))
+     (list python-argcomplete python-colorama python-termcolor))
     (home-page "https://github.com/tldr-pages/tldr-python-client")
     (synopsis "Python command-line client for tldr pages")
     (description "This package provides the @code{tldr} command allowing users
@@ -21043,9 +21644,7 @@ effort to simplify the man pages with practical examples.")
              ;; This test fails. It tries to open a network socket.
              (invoke "pytest" "-vv" "-k" "not test_smoke"))))))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-coverage python-mock python-pytest))
     (home-page "https://ekalinin.github.io/nodeenv/")
     (synopsis "Create isolated node.js environments")
     (description
@@ -21068,7 +21667,7 @@ environments.")
          "0wkbwz208j8nfrsmzmclvxg22ymknn0mlz76wbdza9k2bx2zja6l"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     (home-page
      "https://github.com/Bemmu/PyNamecheap")
     (synopsis
@@ -21095,11 +21694,8 @@ environments.")
     (arguments
      `(#:tests? #f))                    ;requires internet access
     (propagated-inputs
-     `(("python-future" ,python-future)
-       ("python-pynamecheap" ,python-pynamecheap)
-       ("python-requests" ,python-requests)
-       ("python-tldextract" ,python-tldextract)
-       ("python-urllib3" ,python-urllib3)))
+     (list python-future python-pynamecheap python-requests
+           python-tldextract python-urllib3))
     (home-page "https://github.com/AnalogJ/lexicon")
     (synopsis
      "Manipulate DNS records on various DNS providers")
@@ -21135,9 +21731,7 @@ Let's Encrypt.")
            (lambda _
              (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-covdefaults" ,python-covdefaults)
-       ("python-coverage" ,python-coverage)
-       ("python-pytest" ,python-pytest)))
+     (list python-covdefaults python-coverage python-pytest))
     (home-page "https://github.com/asottile/cfgv")
     (synopsis "Configuration validation library")
     (description
@@ -21170,14 +21764,14 @@ validation testing and application logic.")
 (define-public python-numba
   (package
     (name "python-numba")
-    (version "0.51.2")
+    (version "0.54.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "numba" version))
        (sha256
         (base32
-         "0s0777m8kq4l96i88zj78np7283v1n4878qfc1gvzb8l45bmkg8n"))))
+         "0gzl2hz9azav9mny4mga19096rrnpw5816r1h4iwrvb4r01wipzr"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -21185,24 +21779,27 @@ validation testing and application logic.")
          (add-after 'unpack 'disable-proprietary-features
            (lambda _
              (setenv "NUMBA_DISABLE_HSA" "1")
-             (setenv "NUMBA_DISABLE_CUDA" "1")
-             #t))
+             (setenv "NUMBA_DISABLE_CUDA" "1")))
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             ;; This one test fails because a deprecation warning is printed.
+             (substitute* "numba/tests/test_import.py"
+               (("def test_no_accidental_warnings")
+                "def disabled_test_no_accidental_warnings"))))
          (replace 'check
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (add-installed-pythonpath inputs outputs)
-             ;; Something is wrong with the PYTHONPATH when running the
-             ;; tests from the build directory, as it complains about not being
-             ;; able to import certain modules.
-             (with-directory-excursion "/tmp"
-               (setenv "HOME" (getcwd))
-               (invoke "python3" "-m" "numba.runtests" "-v" "-m")))))))
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               ;; Something is wrong with the PYTHONPATH when running the
+               ;; tests from the build directory, as it complains about not being
+               ;; able to import certain modules.
+               (with-directory-excursion "/tmp"
+                 (setenv "HOME" (getcwd))
+                 (invoke "python3" "-m" "numba.runtests" "-v" "-m"))))))))
     (propagated-inputs
-     `(("python-llvmlite" ,python-llvmlite)
-       ("python-numpy" ,python-numpy)
-       ("python-singledispatch" ,python-singledispatch)))
+     (list python-llvmlite python-numpy python-singledispatch))
     (native-inputs                      ;for tests
-     `(("python-jinja2" ,python-jinja2)
-       ("python-pygments" ,python-pygments)))
+     (list python-jinja2 python-pygments))
     (home-page "https://numba.pydata.org")
     (synopsis "Compile Python code using LLVM")
     (description "Numba gives you the power to speed up your applications with
@@ -21226,14 +21823,49 @@ tool).")
        (uri (pypi-uri "numcodecs" version))
        (sha256
         (base32
-         "0kbfr8pl3x9glsypbq8hzim003f16ml1b1cvgrh4w1sdvgal6j7g"))))
+         "0kbfr8pl3x9glsypbq8hzim003f16ml1b1cvgrh4w1sdvgal6j7g"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (delete-file-recursively "c-blosc")
+           (for-each delete-file '("numcodecs/blosc.c"
+                                   "numcodecs/compat_ext.c"
+                                   "numcodecs/lz4.c"
+                                   "numcodecs/vlen.c"
+                                   "numcodecs/zstd.c"))))))
     (build-system python-build-system)
+    (arguments
+     `(#:tests? #false ; TODO: unclear why numcodecs.* are not found
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-avx2
+           (lambda _
+             (setenv "DISABLE_NUMCODECS_AVX2" "1")))
+         (add-after 'unpack 'unbundle
+           (lambda _
+             (substitute* "setup.py"
+               (("sources=sources \\+ blosc_sources,")
+                "sources=sources,")
+               (("extra_compile_args=extra_compile_args")
+                "extra_compile_args=list(base_compile_args)")
+               (("'numcodecs.zstd',")
+                "'numcodecs.zstd', libraries=['zstd'], ")
+               (("'numcodecs.lz4',")
+                "'numcodecs.lz4', libraries=['lz4'], ")
+               (("'numcodecs.blosc',")
+                "'numcodecs.blosc', libraries=['blosc'], "))))
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "-vv")))))))
+    (inputs
+     (list c-blosc lz4 zlib
+           `(,zstd "lib")))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-msgpack" ,python-msgpack)))
+     (list python-numpy python-msgpack))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-cython python-pytest python-setuptools-scm))
     (home-page "https://github.com/zarr-developers/numcodecs")
     (synopsis "Buffer compression and transformation codecs")
     (description
@@ -21284,13 +21916,10 @@ codecs for use in data storage and communication applications.")
              (invoke "pytest" "-vv" "-k" "not lmdb")
              #t)))))
     (propagated-inputs
-     `(("python-asciitree" ,python-asciitree)
-       ("python-fasteners" ,python-fasteners)
-       ("python-numcodecs" ,python-numcodecs)
-       ("python-numpy" ,python-numpy)))
+     (list python-asciitree python-fasteners python-numcodecs
+           python-numpy))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-pytest python-setuptools-scm))
     (home-page "https://github.com/zarr-developers/zarr-python")
     (synopsis "Chunked, compressed, N-dimensional arrays for Python")
     (description
@@ -21341,20 +21970,17 @@ N-dimensional arrays for Python.")
                          (find-files "dist" "\\.whl$")))
              #t)))))
     (propagated-inputs
-     `(("python-h5py" ,python-h5py)
-       ("python-importlib-metadata" ,python-importlib-metadata)
-       ("python-natsort" ,python-natsort)
-       ("python-numcodecs" ,python-numcodecs)
-       ("python-packaging" ,python-packaging)
-       ("python-pandas" ,python-pandas)
-       ("python-scipy" ,python-scipy)
-       ("python-zarr" ,python-zarr)))
-    (native-inputs
-     `(("python-joblib" ,python-joblib)
-       ("python-pytest" ,python-pytest)
-       ("python-toml" ,python-toml)
-       ("python-flit" ,python-flit)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-h5py
+           python-importlib-metadata
+           python-natsort
+           python-numcodecs
+           python-packaging
+           python-pandas
+           python-scipy
+           python-zarr))
+    (native-inputs
+     (list python-joblib python-pytest python-toml python-flit
+           python-setuptools-scm))
     (home-page "https://github.com/theislab/anndata")
     (synopsis "Annotated data for data analysis pipelines")
     (description "Anndata is a package for simple (functional) high-level APIs
@@ -21384,7 +22010,7 @@ object-oriented library such as @code{scikit-learn}.")
                (invoke "nosetests" "-v"))
              #t)))))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://pypi.org/project/dill/")
     (synopsis "Serialize all of Python")
     (description "Dill extends Python's @code{pickle} module for serializing
@@ -21431,7 +22057,7 @@ the saved state of the original interpreter session.")
              (invoke "python" "-m" "multiprocess.tests")
              #t)))))
     (propagated-inputs
-     `(("python-dill" ,python-dill)))
+     (list python-dill))
     (home-page "https://pypi.org/project/multiprocess/")
     (synopsis "Multiprocessing and multithreading in Python")
     (description
@@ -21443,14 +22069,14 @@ library's @code{threading} module.")
 (define-public python-toolz
   (package
     (name "python-toolz")
-    (version "0.11.1")
+    (version "0.11.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "toolz" version))
        (sha256
         (base32
-         "1grz3zvw5ixwqqlbv0n7j11mlcxb66cirh5i9x9zw8kqy0hpk967"))))
+         "0cxwlh8dz8gq0l0bzchjnqqwhdp261nfd958ppqm518k2mg2scbb"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -21462,7 +22088,7 @@ library's @code{threading} module.")
                (invoke "python" "-m" "pytest" "--doctest-modules"
                        "--pyargs" "toolz")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/pytoolz/toolz/")
     (synopsis "List processing tools and functional utilities")
     (description
@@ -21473,22 +22099,25 @@ functions, and dictionaries.")
 (define-public python-cytoolz
   (package
     (name "python-cytoolz")
-    (version "0.9.0.1")
+    (version "0.11.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cytoolz" version))
        (sha256
         (base32
-         "1r80p88hm3f3r4zpixzr047y5hw4bzy41m4xywnhycda83x0dk44"))))
+         "1d12mgaippxxhn24w2hj0my3aqkx80fks5g4wzfdsvl0acqnc8za"))
+       (modules '((guix build utils)))
+       (snippet
+        '(for-each delete-file (find-files "cytoolz" "\\.c$")))))
     (build-system python-build-system)
     ;; FIXME: tests fail with "module 'cytoolz.curried' has no attribute
     ;; 'exceptions'"
     (arguments '(#:tests? #f))
     (propagated-inputs
-     `(("python-toolz" ,python-toolz)))
+     (list python-toolz))
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (home-page "https://github.com/pytoolz/cytoolz")
     (synopsis "High performance functional utilities")
     (description
@@ -21497,6 +22126,22 @@ main differences are that @code{cytoolz} is faster and cytoolz offers a C API
 that is accessible to other projects developed in Cython.")
     (license license:bsd-3)))
 
+;; python-cooler doesn't work with 0.11 yet
+(define-public python-cytoolz-for-cooler
+  (package
+    (inherit python-cytoolz)
+    (version "0.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "cytoolz" version))
+       (sha256
+        (base32
+         "0p4a9nadsy1337gy2cnb5yanbn03j3zm6d9adyqad9bk3nlbpxc2"))
+       (modules '((guix build utils)))
+       (snippet
+        '(for-each delete-file (find-files "cytoolz" "\\.c$")))))))
+
 (define-public python-sortedcollections
   (package
     (name "python-sortedcollections")
@@ -21510,7 +22155,7 @@ that is accessible to other projects developed in Cython.")
          "1kfabpnjyjm5ml2zspry9jy3xq49aybchgaa4ahic2jqdjfn1sfq"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-sortedcontainers" ,python-sortedcontainers)))
+     (list python-sortedcontainers))
     (arguments '(#:tests? #f))  ; Tests not included in release tarball.
     (home-page "http://www.grantjenks.com/docs/sortedcollections/")
     (synopsis "Python Sorted Collections")
@@ -21593,11 +22238,9 @@ data.")
                  (invoke "pytest" "-s" "-vv")
                  (format #t "test suite not run~%")))))))
     (native-inputs
-     `(;; For tests.
-       ("python-cloudpickle-testpkg" ,python-cloudpickle-testpkg)
-       ("python-psutil" ,python-psutil)
-       ("python-pytest" ,python-pytest)
-       ("python-tornado" ,python-tornado-6)))
+     (list ;; For tests.
+           python-cloudpickle-testpkg python-psutil python-pytest
+           python-tornado-6))
     (home-page "https://github.com/cloudpipe/cloudpickle")
     (synopsis "Extended pickling support for Python objects")
     (description
@@ -21668,7 +22311,7 @@ they use the same path.")
     ;; TypeError: calling <function run at 0x7ffff2568d90> returned None, not a test
     (arguments '(#:tests? #f))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (home-page "https://github.com/blosc/python-blosc")
     (synopsis "Python wrapper for the Blosc data compressor library")
     (description "Blosc is a high performance compressor optimized for binary
@@ -21699,12 +22342,12 @@ This Python package wraps the Blosc library.")
          "1sy3vdfyyx3bc5590zb7gwpsmimqz8m992x9hsydq8nmhixqjrxa"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-blosc" ,python-blosc)
-       ("python-locket" ,python-locket)
-       ("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-pyzmq" ,python-pyzmq)
-       ("python-toolz" ,python-toolz)))
+     (list python-blosc
+           python-locket
+           python-numpy
+           python-pandas
+           python-pyzmq
+           python-toolz))
     (home-page "https://github.com/dask/partd/")
     (synopsis "Appendable key-value storage")
     (description "Partd stores key-value pairs.  Values are raw bytes.  We
@@ -21733,41 +22376,45 @@ behavior and not have to worry about the specific internal implementation
 decisions with any given backend.")
     (license license:bsd-3)))
 
+;; Note: Remember to update python-distributed when updating dask.
 (define-public python-dask
   (package
     (name "python-dask")
-    (version "2021.7.1")
+    (version "2021.11.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "dask" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dask/dask/")
+             (commit "5a8275dd53193b47457cdfadc0e2356ea3eb6ccd")))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "131c1bp193d7wp4gx09j6wark1c322c8sqjy22i0jaafl5rqfbz7"))))
+        (base32 "0h8w7c03mn6s2mmwbqd2sqay3k4vaqiwlsbvliziggw28042zfw2"))
+       (snippet
+        ;; Delete generated copy of python-versioneer.  We recreate it below.
+        '(delete-file "versioneer.py"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'disable-broken-tests
+         (add-after 'unpack 'versioneer
            (lambda _
-             ;; This test is marked as xfail when pytest-xdist is used.
-             (substitute* "dask/tests/test_threaded.py"
-               (("def test_interrupt\\(\\)" m)
-                (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
-                               m)))))
+             (invoke "versioneer" "install")))
          (replace 'check
-           (lambda _ (invoke "pytest" "-vv"))))))
-    (propagated-inputs
-     `(("python-cloudpickle" ,python-cloudpickle)
-       ("python-fsspec" ,python-fsspec)
-       ("python-numpy" ,python-numpy)
-       ("python-packaging" ,python-packaging)
-       ("python-pandas" ,python-pandas)
-       ("python-partd" ,python-partd)
-       ("python-toolz" ,python-toolz)
-       ("python-pyyaml" ,python-pyyaml)))
-    (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests? (invoke "pytest" "-vv")))))))
+    (propagated-inputs
+     (list python-cloudpickle
+           python-fsspec
+           python-numpy
+           python-packaging
+           python-pandas
+           python-partd
+           python-toolz
+           python-pyyaml))
+    (native-inputs
+     (list python-pytest python-pytest-runner python-pytest-rerunfailures
+           python-versioneer))
     (home-page "https://github.com/dask/dask/")
     (synopsis "Parallel computing with task scheduling")
     (description
@@ -21791,8 +22438,8 @@ run on top of the dynamic task schedulers. ")
         (base32
          "0nrw4sr3afldrp7073hvc0rgdz282s0l819jdmj1i6nn05v33h0l"))))
     (build-system python-build-system)
-    (native-inputs `(("python-pytest" ,python-pytest)))
-    (inputs `(("python" ,python)))
+    (native-inputs (list python-pytest))
+    (inputs (list python))
     (home-page "https://github.com/luther9/ilinkedlist-py")
     (synopsis "Immutable linked list library")
     (description
@@ -21873,7 +22520,7 @@ on regular expressions.")
          "1kqipkbdaw5s1xg0gi29awm03vp1x8dz24pjidgxagvkvrjpzhi7"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/rholder/retrying")
     (synopsis "Library for adding retry behavior")
     (description "Retrying is a general-purpose retrying library to simplify
@@ -21906,14 +22553,14 @@ Features:
      ;; attribute 'empty_template_setup'".
      `(#:tests? #false))
     (propagated-inputs
-     `(("python-cfgv" ,python-cfgv)
-       ("python-identify" ,python-identify)
-       ("python-importlib-metadata" ,python-importlib-metadata)
-       ("python-importlib-resources" ,python-importlib-resources)
-       ("python-nodeenv" ,python-nodeenv)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-toml" ,python-toml)
-       ("python-virtualenv" ,python-virtualenv)))
+     (list python-cfgv
+           python-identify
+           python-importlib-metadata
+           python-importlib-resources
+           python-nodeenv
+           python-pyyaml
+           python-toml
+           python-virtualenv))
     (home-page "https://github.com/pre-commit/pre-commit")
     (synopsis "Framework for managing multi-language pre-commit hooks")
     (description
@@ -21924,14 +22571,14 @@ multi-language pre-commit hooks.")
 (define-public python-precis-i18n
   (package
     (name "python-precis-i18n")
-    (version "1.0.0")
+    (version "1.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "precis_i18n" version))
        (sha256
         (base32
-         "0gjhvwd8aifx94rl1ag08vlmndyx2q3fkyqb0c4i46x3p2bc2yi2"))))
+         "1qfb78zpx565vqkg0xhx75pna9sc35m370vpcz82982c8ix3ypyz"))))
     (build-system python-build-system)
     (home-page "https://github.com/byllyfish/precis_i18n")
     (synopsis "Implementation of the PRECIS framework")
@@ -21953,7 +22600,7 @@ RFC 8265 and RFC 8266.")
          "1mp9lk0b2qa37b7y6ak4lvf6ifw2ylyy6bkf9ik77md3j4xrwlc7"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/abseil/abseil-py")
     (synopsis "Abseil Python common libraries")
     (description
@@ -21997,8 +22644,7 @@ source via the Abstract Syntax Tree.")
     (build-system python-build-system)
     (arguments '(#:tests? #f))          ; there are none
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-wheel" ,python-wheel)))
+     (list python-six python-wheel))
     (home-page "https://github.com/simonpercivall/astunparse")
     (synopsis "AST unparser for Python")
     (description "This package provides an AST unparser for Python.  It is a
@@ -22018,7 +22664,7 @@ distribution.")
         (base32 "1xv77kzghiqfm4fnvlv0p878ma152dvcfkly3jij89lqigxcw7zq"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-astunparse" ,python-astunparse)))
+     (list python-astunparse))
     (home-page "https://pypi.org/project/gast/")
     (synopsis "Generic Python AST that abstracts the underlying Python version")
     (description
@@ -22040,7 +22686,7 @@ module.")
          "08nlnydddfp1jj0cdmshvld1irzngbp3dij928wqsg9ziklm6mw9"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-babel" ,python-babel)))
+     (list python-babel))
     (home-page "https://github.com/dahlia/wikidata")
     (synopsis "Wikidata client library")
     (description
@@ -22062,7 +22708,7 @@ module.")
          "1m9aa4qnyj21lbq4sbvmv1vcz7zksss4rz37ddf2hxv4hk8b547w"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/gnublade/doctest-ignore-unicode")
     (synopsis "Ignore Unicode literal prefixes in doctests")
     (description
@@ -22103,10 +22749,7 @@ class in a @acronym{DRY, Don't Repeat Yourself} way.")
     (arguments
      `(#:tests? #f)) ; No tests exist.
     (propagated-inputs
-     `(("python-extras" ,python-extras)
-       ("python-arrow" ,python-arrow)
-       ("python-numpy" ,python-numpy)
-       ("python-ruamel.yaml" ,python-ruamel.yaml)))
+     (list python-extras python-arrow python-numpy python-ruamel.yaml))
     (home-page "https://construct.readthedocs.io")
     (synopsis "Declarative and symmetrical parser and builder for binary data")
     (description
@@ -22137,12 +22780,9 @@ make your work easier.")
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-asyncio" ,python-pytest-asyncio)))
+     (list python-pytest python-pytest-cov python-pytest-asyncio))
     (propagated-inputs
-     `(("python-async-generator" ,python-async-generator)
-       ("python-attrs" ,python-attrs)))
+     (list python-async-generator python-attrs))
     (home-page "https://github.com/python-trio/outcome")
     (synopsis "Capture the outcome of Python function calls")
     (description
@@ -22154,13 +22794,13 @@ project.")
 (define-public python-trio
   (package
     (name "python-trio")
-    (version "0.17.0")
+    (version "0.19.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "trio" version))
        (sha256
-        (base32 "0zcxirpdvvl54pbfkgw7vz984879xwvdygqfpggnam24is2zjp78"))))
+        (base32 "1qgg4zhca81dxc1nlmcr5pl1bclmvdp3niqbyslwxs65bs732pl9"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -22171,39 +22811,43 @@ project.")
              (setenv "HOME" "/tmp")
              #t))
          (replace 'check
-           (lambda _
-             (invoke "pytest" "-vv" "-k"
-                     (string-append
-                     ;; This test times out.
-                     "not test_ki_protection_works"
-                     ;; Assertion errors.
-                     " and not test_guest_mode_ki"
-                     " and not test_run_in_trio_thread_ki"
-                     ;; These try to raise KeyboardInterrupt which does not work
-                     ;; in the build environment.
-                     " and not test_ki_self"
-                     " and not test_ki_wakes_us_up"
-                     ;; Failure in name resolution.
-                     " and not test_getnameinfo"
-                     " and not test_SocketType_resolve"
-                     ;; OSError: protocol not found.
-                     " and not test_getprotobyname")))))))
-    (native-inputs
-     `(("python-astor" ,python-astor)
-       ("python-ipython" ,python-ipython)
-       ("python-jedi" ,python-jedi)
-       ("python-pylint" ,python-pylint)
-       ("python-pyopenssl" ,python-pyopenssl)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-trustme" ,python-trustme)))
-    (propagated-inputs
-     `(("python-attrs" ,python-attrs)
-       ("python-idna" ,python-idna)
-       ("python-outcome" ,python-outcome)
-       ("python-sniffio" ,python-sniffio)
-       ("python-sortedcontainers"
-        ,python-sortedcontainers)))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest" "-vv" "-k"
+                       (string-append
+                         ;; This test times out.
+                         "not test_ki_protection_works"
+                         ;; Assertion errors.
+                         " and not test_guest_mode_ki"
+                         " and not test_run_in_trio_thread_ki"
+                         " and not test_simple_cancel_scope_usage_doesnt_create_cyclic_garbage"
+                         " and not test_nursery_cancel_doesnt_create_cyclic_garbage"
+                         " and not test_locals_destroyed_promptly_on_cancel"
+                         ;; These try to raise KeyboardInterrupt which does not work
+                         ;; in the build environment.
+                         " and not test_ki_self"
+                         " and not test_ki_wakes_us_up"
+                         ;; Failure in name resolution.
+                         " and not test_getnameinfo"
+                         " and not test_SocketType_resolve"
+                         ;; OSError: protocol not found.
+                         " and not test_getprotobyname"))))))))
+    (native-inputs
+     (list python-astor
+           python-ipython
+           python-jedi
+           python-pylint
+           python-pyopenssl
+           python-pytest
+           python-pytest-cov
+           python-trustme))
+    (propagated-inputs
+     (list python-async-generator
+           python-attrs
+           python-idna
+           python-outcome
+           python-sniffio
+           python-sortedcontainers))
     (home-page "https://github.com/python-trio/trio")
     (synopsis "Friendly Python library for async concurrency and I/O")
     (description
@@ -22231,15 +22875,10 @@ programs that do multiple things at the same time with parallelized I/O.")
            (lambda _
              (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-attrs" ,python-attrs)
-       ("python-pytest" ,python-pytest)))
+     (list python-attrs python-pytest))
     (propagated-inputs
-     `(("python-mypy" ,python-mypy)
-       ("python-mypy-extensions"
-        ,python-mypy-extensions)
-       ("python-trio" ,python-trio)
-       ("python-typing-extensions"
-        ,python-typing-extensions)))
+     (list python-mypy python-mypy-extensions python-trio
+           python-typing-extensions))
     (home-page "https://github.com/python-trio/trio-typing")
     (synopsis "Static type checking support for Trio and related projects")
     (description
@@ -22295,8 +22934,7 @@ and dates in \"human readable\" forms.  For example, it would display
           "1zmpdph6zddgrnkkcykh6qk5s46l7s5mzfqrh82m4b5iffn61qv7"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-twisted" ,python-twisted)
-       ("python-six" ,python-six)))
+     (list python-twisted python-six))
     (home-page "https://github.com/crossbario/txaio")
     (synopsis "Compatibility layer between Python asyncio and Twisted")
     (description "Txaio provides a compatibility layer between the Python
@@ -22316,7 +22954,7 @@ and dates in \"human readable\" forms.  For example, it would display
          "14zvz51gzf9i1i3d1sj363ba4rksl6lcf4lz1arl8hpqgcbir8r3"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/brentp/toolshed/")
     (synopsis "Collection of modules and functions for working with data")
     (description "This is a collection of well-tested, simple modules and
@@ -22336,7 +22974,7 @@ functions that aim to reduce boilerplate when working with data.")
          "1rxn6snn0r32r07g45hdjhh8aa1xzx6fjrm8g62d8vzp46z7rzrp"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/spotify/annoy/")
     (synopsis "Approximate nearest neighbors library")
     (description
@@ -22358,8 +22996,7 @@ processes may share the same data.")
                 "0r79cx4v2dw4hzr0annkkxxis46c8hivq61sr39z6p7lcjsbk1ki"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-natsort" ,python-natsort)))
+     (list python-dateutil python-natsort))
     (home-page "https://github.com/kiorky/croniter")
     (synopsis "Iterate datetime objects with cron-like syntax")
     (description
@@ -22382,7 +23019,7 @@ format.")
      ;; Comptability tests fail so they are disabled.
      `(#:tests? #f))
     (inputs
-     `(("python-dateutil" ,python-dateutil)))
+     (list python-dateutil))
     (home-page "https://gitlab.com/doctormo/python-crontab/")
     (synopsis "Module for reading and writing crontab files")
     (description "This Python module can read, write crontab files, and
@@ -22428,7 +23065,7 @@ by Igor Pavlov.")
          (replace 'check
            (lambda _ (invoke "nosetests"))))))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/pydron/ifaddr")
     (synopsis "Network interface and IP address enumeration library")
     (description "This package provides a network interface and IP address
@@ -22448,9 +23085,9 @@ enumeration library in Python.")
          "0narq8haa3b375vfblbyil77n8bw0wxqnanl91pl0wwwm884mqjb"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (propagated-inputs
-     `(("python-ifaddr" ,python-ifaddr)))
+     (list python-ifaddr))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -22516,7 +23153,7 @@ compatible).")
         (base32 "00bqdsfx8jgmfz5bgkx10nlw5bfsw11a86f91zkl53snvk45xl3h"))))
     (build-system python-build-system)
     (inputs
-     `(("bdb" ,bdb)))
+     (list bdb))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -22552,7 +23189,7 @@ Complete support for Berkeley DB Base Replication.  Support for RPC.")
                 "0gdpwdzf1fngsi6jrdyj4qdf6cr7gnnr3zp80dpkzbgz0spskj07"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://dbfread.readthedocs.io")
     (synopsis "Read DBF Files with Python")
     (description
@@ -22586,7 +23223,7 @@ one-off scripts.")
                                "    " m)))
              #t)))))
     (native-inputs
-     `(("python-freezegun" ,python-freezegun)))
+     (list python-freezegun))
     (home-page
      "https://github.com/pydanny/cached-property")
     (synopsis
@@ -22611,15 +23248,12 @@ time-or-computationally-expensive properties quick and easy and works in Python
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0yi5y9pfpbc4bc4ibr8cblif8ls1wf3k0zawyx86r2qwxxkkyd6k"))))
+        (base32 "1q05pzca3wfwgnbg03l3bagnhh348yx68w4aa91rg3g8zlviwjz1"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-branca" ,python-branca)
-       ("python-jinja2" ,python-jinja2)
-       ("python-numpy" ,python-numpy)
-       ("python-requests" ,python-requests)))
+     (list python-branca python-jinja2 python-numpy python-requests))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/python-visualization/folium")
     (synopsis "Make beautiful maps with Leaflet.js & Python")
     (description "@code{folium} makes it easy to visualize data that’s been
@@ -22670,7 +23304,7 @@ for manual interpretation.")
          "1hpbydpn2alyswiajfbvhzq4c7f36vdmvxy91hgv8l1lb2g2vfrj"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)))
+     (list python-dateutil))
     (home-page "https://github.com/MKuranowski/pyroutelib3")
     (synopsis "Library for simple routing on OSM data")
     (description "Library for simple routing on OSM data")
@@ -22689,9 +23323,9 @@ for manual interpretation.")
          "0zwhfkrzf3n5847dbnfng92k7ak199l9v6x6ax3dgdidfpm6d2fz"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pyparsing" ,python-pyparsing)))
+     (list python-pyparsing))
     (native-inputs
-     `(("python-future" ,python-future)))
+     (list python-future))
     (home-page "https://github.com/sciunto-org/python-bibtexparser")
     (synopsis "Python library to parse BibTeX files")
     (description "BibtexParser is a Python library to parse BibTeX files.")
@@ -22700,17 +23334,17 @@ for manual interpretation.")
 (define-public python-distro
   (package
     (name "python-distro")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "distro" version))
        (sha256
         (base32
-         "0mrg75w4ap7mdzyga75yaid9n8bgb345ih5mwjp3plj6v1jxwb9n"))))
+         "09441261dd3c8b2gv15vhw1cryzg60lmgpkk07v6hpwwkyhfbxc3"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/nir0s/distro")
     (synopsis
      "OS platform information API")
@@ -22741,15 +23375,10 @@ information in various formats.")
          (replace 'check
            (lambda _ (invoke "pytest"))))))
     (propagated-inputs
-     `(("python-cairocffi" ,python-cairocffi)
-       ("python-cssselect2" ,python-cssselect2)
-       ("python-defusedxml" ,python-defusedxml)
-       ("python-pillow" ,python-pillow)
-       ("python-tinycss2" ,python-tinycss2)))
+     (list python-cairocffi python-cssselect2 python-defusedxml
+           python-pillow python-tinycss2))
     (native-inputs
-     `(("python-pytest-flake8" ,python-pytest-flake8)
-       ("python-pytest-isort" ,python-pytest-isort)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest-flake8 python-pytest-isort python-pytest-runner))
     (home-page "https://cairosvg.org/")
     (synopsis "SVG to PDF/PS/PNG converter based on Cairo")
     (description "CairoSVG is a SVG converter based on Cairo.  It can export
@@ -22816,9 +23445,7 @@ converters and more, those based on the library itself.")
     (build-system python-build-system)
     (arguments '(#:tests? #f))          ;missing dependencies
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-docopt" ,python-docopt)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python-dateutil python-docopt python-pyyaml))
     (home-page "https://github.com/grokzen/pykwalify")
     (synopsis
      "Python lib/cli for JSON/YAML schema validation")
@@ -22830,31 +23457,34 @@ for YAML and JSON.")
 (define-public python-dbusmock
   (package
     (name "python-dbusmock")
-    (version "0.18.3")
+    (version "0.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-dbusmock" version))
        (sha256
         (base32
-         "0hp2kyac88nh9iv6l8hlmv7s1sa1s5f1a3wc2pmlmmxnd211fjlr"))))
+         "0kvjwn5sdp3rqcbclvxljkmk988l12dvppzfn3ldy3jxbyyn1mjn"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-shell-path
-           (lambda _
+         (add-after 'unpack 'patch-paths
+           (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "tests/test_code.py"
                (("/bin/bash") (which "bash")))
-             #t)))))
-    (native-inputs
-     `(;; For tests.
-       ("dbus" ,dbus) ; for dbus-daemon
-       ("python-nose" ,python-nose)
-       ("which" ,which)))
+             (substitute* "dbusmock/testcase.py"
+               (("'dbus-daemon'")
+                (string-append "'" (assoc-ref inputs "dbus")
+                               "/bin/dbus-daemon'"))))))))
+    (native-inputs
+     (list ;; For tests.
+           dbus ; for dbus-daemon
+           python-nose which))
+    (inputs
+     (list dbus))
     (propagated-inputs
-     `(("python-dbus" ,python-dbus)
-       ("python-pygobject" ,python-pygobject)))
+     (list python-dbus python-pygobject))
     (home-page "https://github.com/martinpitt/python-dbusmock")
     (synopsis "Python library for mock D-Bus objects")
     (description "python-dbusmock allows for the easy creation of mock objects on
@@ -22879,9 +23509,7 @@ services to what you expect in your tests.")
     ;; XXX: No tests on PyPI, and the repository has no tags.
     (arguments '(#:tests? #f))
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-simplejson" ,python-simplejson)
-       ("python-sortedcontainers" ,python-sortedcontainers)))
+     (list python-dateutil python-simplejson python-sortedcontainers))
     (synopsis "Serialize Python types to/from JSON")
     (description
      "This package provides functionality to serialize arbitrary data types
@@ -22923,9 +23551,7 @@ register custom encoders and decoders.")
              (add-installed-pythonpath inputs outputs)
              (invoke "pytest"))))))
     (native-inputs
-     `(("double-conversion" ,double-conversion)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-pytest" ,python-pytest)))
+     (list double-conversion python-setuptools-scm python-pytest))
     (home-page "https://github.com/ultrajson/ultrajson")
     (synopsis "Ultra fast JSON encoder and decoder for Python")
     (description
@@ -22961,10 +23587,7 @@ bindings for Python 3.")
                (invoke "py.test" "-v" "tests")
                #t)))))
       (propagated-inputs
-       `(("python-flexmock" ,python-flexmock)
-         ("python-pytest" ,python-pytest)
-         ("python-pytest-cov" ,python-pytest-cov)
-         ("python-six" ,python-six)))
+       (list python-flexmock python-pytest python-pytest-cov python-six))
       (home-page "https://github.com/oinume/iocapture")
       (synopsis "Python capturing tool for stdout and stderr")
       (description
@@ -23032,20 +23655,18 @@ standard error channel (stderr) in your program.")
                         " and not test_send_receive"
                         " and not test_socket_options"))))))))
     (propagated-inputs
-     `(("python-idna" ,python-idna)
-       ("python-sniffio" ,python-sniffio)
-       ("python-typing-extensions" ,python-typing-extensions)))
-    (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-hypothesis" ,python-hypothesis)
-       ("python-iniconfig" ,python-iniconfig)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest-6)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-pytest-trio" ,python-pytest-trio)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-trustme" ,python-trustme)
-       ("python-uvloop" ,python-uvloop)))
+     (list python-idna python-sniffio python-typing-extensions))
+    (native-inputs
+     (list python-coverage
+           python-hypothesis
+           python-iniconfig
+           python-mock
+           python-pytest-6
+           python-pytest-mock
+           python-pytest-trio
+           python-setuptools-scm
+           python-trustme
+           python-uvloop))
     (home-page "https://github.com/agronholm/anyio")
     (synopsis "Compatibility layer for multiple asynchronous event loops")
     (description
@@ -23075,11 +23696,8 @@ itself.")
            "1p5h3dnpbsjmqrvil96s71asc6i3gpinmbrabqmwnrsxprz7r3ns"))))
       (build-system python-build-system)
       (propagated-inputs
-       `(("python-iocapture" ,python-iocapture)
-         ("python-mock" ,python-mock)
-         ("python-pytest" ,python-pytest)
-         ("python-pytest-cov" ,python-pytest-cov)
-         ("python-pytest-xdist" ,python-pytest-xdist)))
+       (list python-iocapture python-mock python-pytest python-pytest-cov
+             python-pytest-xdist))
       (home-page "https://github.com/neithere/argh/")
       (synopsis "Argparse wrapper with natural syntax")
       (description
@@ -23104,7 +23722,7 @@ including the native API of @code{python-argparse}.")
     (build-system python-build-system)
     (arguments '(#:tests? #f))          ; there are none
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://pypi.org/project/ppft/")
     (synopsis "Fork of Parallel Python")
     (description
@@ -23139,8 +23757,7 @@ load balancing.")
              (invoke "py.test" "-vv")
              #t)))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("which" ,which)))
+     (list python-pytest which))
     (home-page "https://pypi.org/project/pox/")
     (synopsis "Python utilities for file system exploration and automated builds")
     (description
@@ -23172,12 +23789,9 @@ essential tools are located.")
            (lambda _
              (invoke "python" "./tests/__main__.py"))))))
     (propagated-inputs
-     `(("python-dill" ,python-dill)
-       ("python-multiprocess" ,python-multiprocess)
-       ("python-pox" ,python-pox)
-       ("python-ppft" ,python-ppft)))
+     (list python-dill python-multiprocess python-pox python-ppft))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://pypi.org/project/pathos/")
     (synopsis
      "Parallel graph management and execution in heterogeneous computing")
@@ -23192,7 +23806,7 @@ the syntactic logic to configure and launch jobs in an execution environment.")
 (define-public python-flit
   (package
     (name "python-flit")
-    (version "3.2.0")
+    (version "3.3.0")
     ;; We fetch the sources via git because on pypi the package is split into
     ;; two parts: flit and flit_core; flit_core cannot be built without flit.
     (source (origin
@@ -23203,7 +23817,7 @@ the syntactic logic to configure and launch jobs in an execution environment.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0fpqxpz5bv2xpv1akmc0c8yfss6sj09wdzxrlf3qw1lp1jhbzpyc"))))
+                "0mvyymw3zqsnip4x4ca6anr5rbx30hcmpqwrnhjwcm7s8mycd01x"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -23248,8 +23862,7 @@ the syntactic logic to configure and launch jobs in an execution environment.")
                           (find-files "dist" "\\.whl$")))))))
        #:tests? #f)) ; XXX: Check requires network access.
     (propagated-inputs
-     `(("python-pytoml" ,python-pytoml)
-       ("python-toml" ,python-toml)))
+     (list python-pytoml python-toml))
     (native-inputs
      `(("python-docutils" ,python-docutils)
        ("python-responses" ,python-responses)
@@ -23334,7 +23947,7 @@ scripts to load entry points more quickly.")
         (base32
          "07f9cgjr3h4j2m67fhwapn8fja87vazl58zsj4yppf9y3an2x6dp"))))
     (native-inputs
-     `(("python-tox" ,python-tox)))
+     (list python-tox))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -23365,7 +23978,7 @@ that take parsers as their arguments and return them as result values.")
     (arguments
      `(#:tests? #f))                    ;FIXME: tests fail, not sure why
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (build-system python-build-system)
     (home-page "https://github.com/avakar/speg")
     (synopsis "PEG-based parser interpreter with memoization")
@@ -23385,57 +23998,13 @@ memoization.")
         (base32 "00cyvigg4npbph39ghkg77xbxisa6plf75vii24igxfizik0337f"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-speg" ,python-speg)))
+     (list python-speg))
     (home-page "https://github.com/avakar/pycson")
     (synopsis "Parser for Coffeescript Object Notation (CSON)")
     (description "This package is a parser for Coffeescript Object
 Notation (CSON).")
     (license license:expat)))
 
-(define-public python-asynctest
-  (package
-    (name "python-asynctest")
-    (version "0.13.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "asynctest" version))
-       (sha256
-        (base32
-         "1b3zsy7p84gag6q8ai2ylyrhx213qdk2h2zb6im3xn0m5n264y62"))))
-    (build-system python-build-system)
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda _
-             (invoke "python" "-X" "dev" "-m" "unittest" "-v" "test")))
-         (add-after 'unpack 'disable-tests
-           (lambda* _
-             ;; XXX: 7 tests fail out of 220. Disable them for now.
-             (substitute* (list "test/test_selector.py"
-                                "test/test_mock.py")
-               (("def test_events_watched_outside_test_are_ignored")
-                "@unittest.skip('disabled by guix')
-    def test_events_watched_outside_test_are_ignored")
-               (("def test_awaited_from_autospec_mock.*" line)
-                (string-append line "        return True\n"))
-               (("def test_create_autospec_on_coroutine_and_using_assert_methods.*" line)
-                (string-append line "        return True\n"))
-               (("def test_patch_coroutine_with_multiple_scopes.*" line)
-                (string-append line "        return True\n"))
-               (("def test_multiple_patches_on_coroutine.*" line)
-                (string-append line "        return True\n"))
-               (("def test_patch_coroutine_only_when_running.*" line)
-                (string-append line "        return True\n")))
-             #t)))))
-    (home-page "https://github.com/Martiusweb/asynctest")
-    (synopsis "Extension of unittest for testing asyncio libraries")
-    (description
-     "The package asynctest is built on top of the standard unittest module
-and cuts down boilerplate code when testing libraries for asyncio.")
-    (license license:asl2.0)))
-
 (define-public python-aionotify
   (package
     (name "python-aionotify")
@@ -23480,8 +24049,7 @@ and cuts down boilerplate code when testing libraries for asyncio.")
            (lambda _
              (invoke "make" "SKIP_DEPS=1"))))))
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-coverage" ,python-coverage)))
+     (list python-nose python-coverage))
     (home-page "https://github.com/clarete/forbiddenfruit")
     (synopsis "Patch python built-in objects")
     (description "This project allows Python code to extend built-in types.")
@@ -23500,11 +24068,10 @@ and cuts down boilerplate code when testing libraries for asyncio.")
          "1lqp3jgfngyhaxjgj3n230hn90wsylwilh120yjf62h7b1s02mh8"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ;; `which`, `kadmin.local` binaries called inside library
-       ("which" ,which)
-       ("mit-krb5" ,mit-krb5)))
-    (native-inputs `(("mit-krb5" ,mit-krb5)))
+     (list python-six
+           ;; `which`, `kadmin.local` binaries called inside library
+           which mit-krb5))
+    (native-inputs (list mit-krb5))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -23537,15 +24104,12 @@ tests.")
          "1j2idrbrbczykzlb56q1bn0ivc9c0rjjljpk4yz86xn3gxfkpv8n"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-decorator" ,python-decorator)
-       ("python-six" ,python-six)))
+     (list python-decorator python-six))
     (inputs
-     `(("mit-krb5" ,mit-krb5)))
+     (list mit-krb5))
     ;; for tests
     (native-inputs
-     `(("python-parameterized" ,python-parameterized)
-       ("python-k5test" ,python-k5test)
-       ("python-nose" ,python-nose)))
+     (list python-parameterized python-k5test python-nose))
     (home-page "https://github.com/pythongssapi/python-gssapi")
     (synopsis "Python GSSAPI Wrapper")
     (description
@@ -23567,8 +24131,7 @@ also be usable with other GSSAPI mechanisms.")
           "0lk45ifdv2cpkl6ayfyix7jwmnxa1rha7xvb0ih5999k115wzqs4"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("git" ,git)))
+     (list python-mock git))
     (home-page "https://github.com/mgedmin/check-manifest")
     (synopsis "Check MANIFEST.in in a Python source package for completeness")
     (description "Python package can include a MANIFEST.in file to help with
@@ -23620,12 +24183,9 @@ files.  These files are used to translate strings in android apps.")
              (delete-file "tests/test_snapshot_diff.py")
              #t)))))
     (propagated-inputs
-     `(("python-argh" ,python-argh)
-       ("python-pathtools" ,python-pathtools)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python-argh python-pathtools python-pyyaml))
     (native-inputs
-     `(("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-timeout" ,python-pytest-timeout)))
+     (list python-pytest-cov python-pytest-timeout))
     (home-page "https://github.com/gorakhargosh/watchdog")
     (synopsis "File system events monitoring")
     (description "This package provides a way to monitor file system events
@@ -23636,7 +24196,7 @@ but portable.")
 (define-public python-watchgod
   (package
     (name "python-watchgod")
-    (version "0.6")
+    (version "0.7")
     (source
      (origin
        ;; There are no tests in the PyPI tarball.
@@ -23646,7 +24206,7 @@ but portable.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1lqx44wkryakgpyqj3m0hsz61bqr07vc7smgzh188374hwvscp66"))))
+        (base32 "1w2xsidwp9n4giqhja0bzw7rwrh01db0kdxf2n54mv3dkx545jpq"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -23656,19 +24216,14 @@ but portable.")
              (when tests?
                (invoke "pytest" "-vv")))))))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-docutils" ,python-docutils)
-       ("python-flake8" ,python-flake8)
-       ("python-isort" ,python-isort)
-       ("python-pycodestyle" ,python-pycodestyle)
-       ("python-pyflakes" ,python-pyflakes)
-       ("python-pygments" ,python-pygments)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-aiohttp" ,python-pytest-aiohttp)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-pytest-sugar" ,python-pytest-sugar)
-       ("python-pytest-toolbox" ,python-pytest-toolbox)))
+     (list python-coverage
+           python-pygments
+           python-pytest
+           python-pytest-asyncio
+           python-pytest-cov
+           python-pytest-mock
+           python-pytest-sugar
+           python-pytest-toolbox))
     (home-page "https://github.com/samuelcolvin/watchgod")
     (synopsis "Simple, modern file watching and code reload in Python")
     (description
@@ -23689,7 +24244,7 @@ operating systems and an elegant approach to concurrency using threading.")
         (base32
          "0qb0y7ipby42m4m7h0ipazpdyc3bn9xi46lvifcwwl5albn31rim"))))
     (build-system python-build-system)
-    (native-inputs `(("unzip" ,unzip)))
+    (native-inputs (list unzip))
     (home-page "https://bitbucket.org/techtonik/python-wget/")
     (synopsis "Pure Python download utility")
     (description "The python-wget library provides an API to download files
@@ -23715,21 +24270,21 @@ with features similar to the @command{wget} utility.")
      ;; No tests
      `(#:tests? #f))
     (propagated-inputs
-      `(("python-android-stringslib" ,python-android-stringslib)
-        ("python-dateutil" ,python-dateutil)
-        ("python-gitlab" ,python-gitlab)
-        ("python-lxml" ,python-lxml)
-        ("python-polib" ,python-polib)
-        ("python-pyenchant" ,python-pyenchant)
-        ("python-pygit2" ,python-pygit2)
-        ("python-pygithub" ,python-pygithub)
-        ("python-pyqt" ,python-pyqt)
-        ("python-requests" ,python-requests)
-        ("python-ruamel.yaml" ,python-ruamel.yaml)
-        ("python-translation-finder" ,python-translation-finder)
-        ("python-watchdog" ,python-watchdog)))
-    (native-inputs
-     `(("qttools" ,qttools)))
+      (list python-android-stringslib
+            python-dateutil
+            python-gitlab
+            python-lxml
+            python-polib
+            python-pyenchant
+            python-pygit2
+            python-pygithub
+            python-pyqt
+            python-requests
+            python-ruamel.yaml
+            python-translation-finder
+            python-watchdog))
+    (native-inputs
+     (list qttools))
     (home-page "https://framagit.org/tyreunom/offlate")
     (synopsis "Offline translation interface for online translation tools")
     (description "Offlate offers a unified interface for different translation
@@ -23753,7 +24308,7 @@ an upload option to send your work back to the platform.")
          "0486i99wf8ssa7sgn81fn6fv6i4rhhq6n751bc740b3hzfbpmpl4"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/ppannuto/python-titlecase")
     (synopsis "Capitalize strings similar to book titles")
     (description
@@ -23805,11 +24360,9 @@ custom PNG processing.")
          "1s00zn75y2dkxgnbw8kl8dw4p1mc77cv78fwfa4yb0274s96w0a5"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-hypothesis" ,python-hypothesis)
-       ("python-pycodestyle" ,python-pycodestyle)
-       ("python-pytest" ,python-pytest)))
+     (list python-hypothesis python-pycodestyle python-pytest))
     (propagated-inputs
-     `(("python-levenshtein" ,python-levenshtein)))
+     (list python-levenshtein))
     (home-page "https://github.com/seatgeek/fuzzywuzzy")
     (synopsis "Fuzzy string matching in Python")
     (description "Approximate string matching using
@@ -23854,8 +24407,7 @@ your process.")
           "0gyady7x3v3l9fm1zan0idaggqqcm31y7g5vxk7h05p5h7f39bjs"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-lxml" ,python-lxml)
-       ("python-jinja2" ,python-jinja2)))
+     (list python-lxml python-jinja2))
     (home-page "https://gcovr.com/")
     (synopsis "Utility for generating code coverage results")
     (description
@@ -23903,13 +24455,13 @@ content models.")
     ;; Testing requires undocumented setup changes, and so testing is disabled here.
     (arguments `(#:tests? #f))
     (propagated-inputs
-      `(("python-certifi" ,python-certifi)
-        ("python-six" ,python-six)
-        ("python-dateutil" ,python-dateutil)
-        ("python-urllib3" ,python-urllib3)
-        ("python-pyjwt" ,python-pyjwt)
-        ("python-cryptography" ,python-cryptography)
-        ("python-nose" ,python-nose)))
+      (list python-certifi
+            python-six
+            python-dateutil
+            python-urllib3
+            python-pyjwt
+            python-cryptography
+            python-nose))
     (synopsis "DocuSign Python Client")
     (description "The Official DocuSign Python Client Library used to interact
  with the eSign REST API.  Send, sign, and approve documents using this client.")
@@ -23929,7 +24481,7 @@ content models.")
          "0i4xyiqbhjz2g16zbim17zjdbjkw79xsw8k59942vvq4is1cmfxh"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-cffi" ,python-cffi)))
+     (list python-cffi))
     (home-page "https://github.com/xattr/xattr")
     (synopsis
      "Python wrapper for extended file system attributes")
@@ -23972,12 +24524,9 @@ we can stop writing custom parsers for syslog-type records.")
          "1qmank3c217ddiig3xr8ps0mqaydcp0q5a62in9a9g4zf72zjnqd"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-json-logger" ,python-json-logger)))
+     (list python-json-logger))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-six" ,python-six)))
+     (list python-mock python-pytest python-setuptools-scm python-six))
     (home-page "https://github.com/jd/daiquiri")
     (synopsis
      "Library to configure Python logging easily")
@@ -24005,20 +24554,17 @@ logging in Python.  It also provides some custom formatters and handlers.")
              (invoke "python" "setup.py" "testr" "--slowest"
                      "--testr-args=until-failure"))))))
     (propagated-inputs
-     `(("python-click" ,python-click)
-       ("python-daiquiri" ,python-daiquiri)
-       ("python-fixtures" ,python-fixtures)
-       ("python-jinja2" ,python-jinja2)
-       ("python-pbr" ,python-pbr)
-       ("python-psutil" ,python-psutil)
-       ("python-six" ,python-six)
-       ("python-xattr" ,python-xattr)))
-    (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-os-testr" ,python-os-testr)
-       ("python-requests" ,python-requests)
-       ("python-testrepository" ,python-testrepository)
-       ("python-testtools" ,python-testtools)))
+     (list python-click
+           python-daiquiri
+           python-fixtures
+           python-jinja2
+           python-pbr
+           python-psutil
+           python-six
+           python-xattr))
+    (native-inputs
+     (list python-mock python-os-testr python-requests
+           python-testrepository python-testtools))
     (home-page "https://github.com/jd/pifpaf")
     (synopsis "Tools and fixtures to manage daemons for testing in Python")
     (description "Pifpaf is a suite of fixtures and a command-line tool that
@@ -24041,14 +24587,14 @@ evolved from its precursor @code{overtest}.")
          "12x3wmrdzm6wgk0vz02hb769h68nr49q47w5q1pj95pc89hsa34v"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-docutils" ,python-docutils)
-       ("python-html5lib" ,python-html5lib)
-       ("python-nbconvert" ,python-nbconvert)
-       ("python-nbformat" ,python-nbformat)
-       ("python-pytest" ,python-pytest)
-       ("python-six" ,python-six)))
+     (list python-docutils
+           python-html5lib
+           python-nbconvert
+           python-nbformat
+           python-pytest
+           python-six))
     (native-inputs
-     `(("python-pbr-minimal" ,python-pbr-minimal)))
+     (list python-pbr-minimal))
     (home-page "https://github.com/minrk/pytest-check-links")
     (synopsis "Check links in files")
     (description "This package provides a pytest plugin that checks URLs for
@@ -24101,19 +24647,40 @@ replacement for dictionaries where immutability is desired.")
 (define-public python-unpaddedbase64
   (package
     (name "python-unpaddedbase64")
-    (version "1.1.0")
+    (version "2.1.0")
     (source
      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/matrix-org/python-unpaddedbase64")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
+       (method url-fetch)
+       (uri (pypi-uri "unpaddedbase64" version))
        (sha256
-        (base32
-         "0if3fjfxga0bwdq47v77fs9hrcqpmwdxry2i2a7pdqsp95258nxd"))))
+        (base32 "01ghlmw63fgslwj8j74vkpf1kqvr7a4agm6nyn89vqwx106ccwvj"))))
     (build-system python-build-system)
-    (home-page "https://pypi.org/project/unpaddedbase64/")
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs tests? #:allow-other-keys)
+             (when tests?
+               (copy-recursively (string-append
+                                  (assoc-ref inputs "tests") "/tests")
+                                 "tests")
+               (invoke "python" "-m" "pytest" "-vv")))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("tests"
+        ;; The release on pypi comes without tests.  We can't build from this
+        ;; checkout, though, because installation requires an invocation of
+        ;; poetry.
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/matrix-org/python-unpaddedbase64")
+                 (commit (string-append "v" version))))
+           (file-name (git-file-name name version))
+           (sha256
+            (base32
+             "1n6har8pxv0mqb96lanzihp1xf76aa17jw3977drb1fgz947pnmz"))))))
+    (home-page "https://github.com/matrix-org/python-unpaddedbase64")
     (synopsis "Encode and decode Base64 without “=” padding")
     (description
      "RFC 4648 specifies that Base64 should be padded to a multiple of 4 bytes
@@ -24152,9 +24719,7 @@ information for your operating system.")
         (base32 "0c86g0vvzdcg3nrcsqnbzlfhpprc2i894p8i14hska56yl27d6w9"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-frozendict" ,python-frozendict)
-       ("python-simplejson" ,python-simplejson)))
+     (list python-six python-frozendict python-simplejson))
     (home-page "https://github.com/matrix-org/python-canonicaljson")
     (synopsis "Canonical JSON")
     (description
@@ -24184,13 +24749,10 @@ information for your operating system.")
         (base32 "0280f8zyycsmd7iy65bs438flm7m8ffs1kcxfbvhi8hbazkqc19m"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-canonicaljson" ,python-canonicaljson)
-       ("python-importlib-metadata" ,python-importlib-metadata)
-       ("python-pynacl" ,python-pynacl)
-       ("python-typing-extensions" ,python-typing-extensions)
-       ("python-unpaddedbase64" ,python-unpaddedbase64)))
+     (list python-canonicaljson python-importlib-metadata python-pynacl
+           python-typing-extensions python-unpaddedbase64))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (home-page "https://github.com/matrix-org/python-signedjson")
     (synopsis "Sign JSON objects with ED25519 signatures")
     (description
@@ -24234,8 +24796,7 @@ key.
         (base32 "1f0357a6g1h96sk6wy030xmc1p4rd80a999qvxd28v7nlm1blsqy"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-pynacl" ,python-pynacl)))
+     (list python-six python-pynacl))
     (home-page "https://github.com/ecordell/pymacaroons")
     (synopsis "Python Macaroon Library")
     (description
@@ -24272,10 +24833,9 @@ enforcement of that policy.")
                         (invoke "nosetests" "-s" "test"))
                       #t)))))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (propagated-inputs
-     `(("python-gssapi" ,python-gssapi)
-       ("python-pyasn1" ,python-pyasn1)))
+     (list python-gssapi python-pyasn1))
     (synopsis "Python LDAP client")
     (description
      "LDAP3 is a strictly RFC 4510 conforming LDAP V3 pure Python client
@@ -24316,13 +24876,13 @@ tbutils
 (define-public python-eliot
   (package
     (name "python-eliot")
-    (version "1.12.0")
+    (version "1.13.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "eliot" version))
        (sha256
-        (base32 "0wabv7hk63l12881f4zw02mmj06583qsx2im0yywdjlj8f56vqdn"))))
+        (base32 "1xzzhsjrrw430dc84vamf683bwp9i0nr86xf2iav6yla615ijq2p"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -24338,25 +24898,33 @@ tbutils
            ;; be installed and these tests should pass.
            (lambda _
              (delete-file "eliot/tests/test_prettyprint.py")
+             #t))
+         (add-after 'remove-eliot-prettyprint-tests 'remove-failing-tests
+           (lambda _
+             ;; These tests started to fail after updating python-pandas to
+             ;; 1.3.3 and python-dask to 2021.9.1.
+             (substitute* "eliot/tests/test_validation.py"
+               (("test_omitLoggerFromActionType")
+                "_test_omitLoggerFromActionType")
+               (("test_logCallsDefaultLoggerWrite")
+                "_test_logCallsDefaultLoggerWrite"))
              #t)))))
     (propagated-inputs
-     `(("python-boltons" ,python-boltons)
-       ("python-pyrsistent" ,python-pyrsistent)
-       ("python-six" ,python-six)
-       ("python-zope-interface" ,python-zope-interface)))
-    (native-inputs
-     `(("python-black" ,python-black)
-       ("python-coverage" ,python-coverage)
-       ("python-dask" ,python-dask)
-       ("python-flake8" ,python-flake8)
-       ("python-hypothesis" ,python-hypothesis)
-       ("python-pytest" ,python-pytest)
-       ("python-setuptools" ,python-setuptools)
-       ("python-sphinx" ,python-sphinx)
-       ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
-       ("python-testtools" ,python-testtools)
-       ("python-twine" ,python-twine)
-       ("python-twisted" ,python-twisted)))
+     (list python-boltons python-pyrsistent python-six
+           python-zope-interface))
+    (native-inputs
+     (list python-black
+           python-coverage
+           python-dask
+           python-flake8
+           python-hypothesis
+           python-pytest
+           python-setuptools
+           python-sphinx
+           python-sphinx-rtd-theme
+           python-testtools
+           python-twine
+           python-twisted))
     (home-page "https://github.com/itamarst/eliot/")
     (synopsis "Eliot: the logging system that tells you why it happened")
     (description
@@ -24379,13 +24947,13 @@ happened, and what caused it.")
          "1xh88ss279fprxnzd10dczmqwjhppbyvljm33zrg2mgybwd66qr7"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-certifi" ,python-certifi)
-       ("python-coverage" ,python-coverage)
-       ("python-pretend" ,python-pretend)
-       ("python-pyopenssl" ,python-pyopenssl)
-       ("python-pytest" ,python-pytest)
-       ("python-sphinx" ,python-sphinx)
-       ("python-twisted" ,python-twisted)))
+     (list python-certifi
+           python-coverage
+           python-pretend
+           python-pyopenssl
+           python-pytest
+           python-sphinx
+           python-twisted))
     (home-page "https://pem.readthedocs.io/")
     (synopsis "Easy PEM file parsing in Python")
     (description
@@ -24411,9 +24979,7 @@ happened, and what caused it.")
            "0imfxx4yjj1lbq0n5ad45al3wvv4qv96sivnc1r51i66mxi658z8"))))
       (build-system python-build-system)
       (propagated-inputs
-       `(("python-pyopenssl" ,python-pyopenssl)
-         ("python-service-identity" ,python-service-identity)
-         ("python-twisted" ,python-twisted)))
+       (list python-pyopenssl python-service-identity python-twisted))
       (synopsis "Run TLS servers with Twisted")
       (description
        "This package provides an easy-to-use SNI endpoint for use
@@ -24432,23 +24998,22 @@ with the Twisted web framework.")
         (base32 "1cplx4llq7i508w6fgwjdv9di7rsz9k9irfmzdfbiz6q6a0ykf1d"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-acme" ,python-acme)
-       ("python-attrs" ,python-attrs)
-       ("python-eliot" ,python-eliot)
-       ("python-josepy" ,python-josepy)
-       ("python-pem" ,python-pem)
-       ("python-treq" ,python-treq)
-       ("python-twisted" ,python-twisted)
-       ("python-txsni" ,python-txsni)))
-    (native-inputs
-     `(("python-fixtures" ,python-fixtures)
-       ("python-hypothesis" ,python-hypothesis)
-       ("python-mock" ,python-mock)
-       ("python-service-identity"
-        ,python-service-identity)
-       ("python-testrepository" ,python-testrepository)
-       ("python-testscenarios" ,python-testscenarios)
-       ("python-testtools" ,python-testtools)))
+     (list python-acme
+           python-attrs
+           python-eliot
+           python-josepy
+           python-pem
+           python-treq
+           python-twisted
+           python-txsni))
+    (native-inputs
+     (list python-fixtures
+           python-hypothesis
+           python-mock
+           python-service-identity
+           python-testrepository
+           python-testscenarios
+           python-testtools))
     (home-page "https://github.com/twisted/txacme")
     (synopsis "Twisted implexmentation of the ACME protocol")
     (description
@@ -24474,16 +25039,15 @@ networking engine for Python.")
          "1xk2x0slz1f8cqv7vn77qx99xfd1mshhswiwrljk9m72w2m9iivd"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-dateutil" ,python-dateutil)
-       ("python-defusedxml" ,python-defusedxml)
-       ("python-importlib-resources"
-        ,python-importlib-resources)
-       ("python-pyopenssl" ,python-pyopenssl)
-       ("python-pytz" ,python-pytz)
-       ("python-requests" ,python-requests)
-       ("python-six" ,python-six)
-       ("python-xmlschema" ,python-xmlschema)))
+     (list python-cryptography
+           python-dateutil
+           python-defusedxml
+           python-importlib-resources
+           python-pyopenssl
+           python-pytz
+           python-requests
+           python-six
+           python-xmlschema))
     (home-page "https://idpy.org")
     (synopsis "Python implementation of SAML Version 2 Standard")
     (description
@@ -24507,9 +25071,9 @@ there are extensions that allow you to use it with other frameworks.")
         (base32 "0jr6bxj67vg988vkm6nz8jj98v9lg46bn49lkhak3n598jbrkas6"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-click" ,python-click)))
+     (list python-click))
     (synopsis "Extension for Click to register external CLI commands")
     (description "This package provides n extension module for Click to
 register external CLI commands via setuptools entry-points.")
@@ -24529,9 +25093,7 @@ register external CLI commands via setuptools entry-points.")
          "0klb0ysybzlh2wihvir82hgq62v0jjmlcqklwajyms7c0p529yby"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-coverage python-pytest python-pytest-runner))
     (home-page "https://github.com/ulif/diceware/")
     (synopsis "Generates memorable passphrases")
     (description "This package generates passphrases by concatenating words
@@ -24552,18 +25114,18 @@ cryptographically signed ones).")
                 "1lk3qmy1hkaphk4n7ayfk0wl6m2yvd6r7qkam6yncqfzgkbc1phs"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-check-manifest" ,python-check-manifest)
-       ("python-coverage" ,python-coverage)
-       ("python-isort" ,python-isort)
-       ("python-mock" ,python-mock)
-       ("python-pydoctstyle" ,python-pydocstyle)
-       ("python-pytest-cache" ,python-pytest-cache)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-pep8" ,python-pytest-pep8)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-pytest" ,python-pytest)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-tox" ,python-tox)))
+     (list python-check-manifest
+           python-coverage
+           python-isort
+           python-mock
+           python-pydocstyle
+           python-pytest-cache
+           python-pytest-cov
+           python-pytest-pep8
+           python-pytest-runner
+           python-pytest
+           python-setuptools-scm
+           python-tox))
     (home-page "https://github.com/inveniosoftware/dictdiffer")
     (synopsis "Diff and patch Python dictionary objects")
     (description
@@ -24574,13 +25136,13 @@ dictionaries.")
 (define-public pyzo
   (package
     (name "pyzo")
-    (version "4.11.2")
+    (version "4.11.7")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyzo" version))
        (sha256
-        (base32 "1jk5f79lj09vnsdk9h01w21p9h49z2hhf8xhkx8471pjbg9vrlzr"))))
+        (base32 "1qa007nw464r7jw8y8fqf17jx473q55p5ay5bh8kq55v0zyi27yn"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -24588,13 +25150,12 @@ dictionaries.")
          (add-before 'check 'fix-home-directory
            (lambda _
              ;; Tests fail with "Permission denied: '/homeless-shelter'".
-             (setenv "HOME" "/tmp")
-             #t)))
+             (setenv "HOME" "/tmp"))))
        ;; Tests fail with "Uncaught Python exception: python: undefined
        ;; symbol: objc_getClass".
        #:tests? #f))
     (propagated-inputs
-     `(("python-pyqt" ,python-pyqt)))
+     (list python-pyqt))
     (home-page "https://pyzo.org")
     (synopsis
      "Python IDE for scientific computing")
@@ -24642,7 +25203,7 @@ Open Sound Control 1.0} specification.")
             "0mplkcpb5d8wjf8vk195fys4y6a3wbibiyf708imw33lphfk9g1a"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/alecthomas/voluptuous")
     (synopsis "Python data validation library")
     (description
@@ -24663,27 +25224,24 @@ intended for validating data coming into Python as JSON, YAML, etc.")
          "1f18plbc9yyvhn0js3d2bii9yld8zfl775gxsaw9jza5pmlg9ss2"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-attrs" ,python-attrs)
-       ("python-colorama" ,python-colorama)
-       ("python-pyperclip" ,python-pyperclip)
-       ("python-wcwidth" ,python-wcwidth)))
-    (native-inputs
-     `(("python-codecov" ,python-codecov)
-       ("python-coverage" ,python-coverage)
-       ("python-doc8" ,python-doc8)
-       ("python-flake8" ,python-flake8)
-       ("python-invoke" ,python-invoke)
-       ("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-sphinx" ,python-sphinx)
-       ("python-sphinx-autobuild" ,python-sphinx-autobuild)
-       ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
-       ("python-tox" ,python-tox)
-       ("python-twine" ,python-twine)
-       ("which" ,which)))
+     (list python-attrs python-colorama python-pyperclip python-wcwidth))
+    (native-inputs
+     (list python-codecov
+           python-coverage
+           python-doc8
+           python-flake8
+           python-invoke
+           python-mock
+           python-pytest
+           python-pytest-cov
+           python-pytest-mock
+           python-setuptools-scm
+           python-sphinx
+           python-sphinx-autobuild
+           python-sphinx-rtd-theme
+           python-tox
+           python-twine
+           which))
     (home-page "https://github.com/python-cmd2/cmd2")
     (synopsis "Tool for building interactive command line applications")
     (description
@@ -24717,7 +25275,7 @@ be necessary when using @code{cmd}.")
                  (("ctypes\\.util\\.find_library\\('tidy'\\)")
                   (format #f "'~a'" libtidy)))
                #t))))))
-    (inputs `(("tidy" ,tidy)))
+    (inputs (list tidy))
     (home-page "https://github.com/countergram/pytidylib")
     (synopsis "Python wrapper for HTML Tidy library")
     (description
@@ -24805,7 +25363,7 @@ For the most part it's transliterated from C, the major differences are:
                #t))))
        #:tests? #f)) ; _curses.error: setupterm: could not find terminal
     (native-inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (home-page "https://github.com/Rockhopper-Technologies/jinxed")
     (synopsis "Jinxed Terminal Library")
     (description
@@ -24825,7 +25383,7 @@ For the most part it's transliterated from C, the major differences are:
          "0lz0w2ajdvwd269a7ppnzawmx8px0116j0nx8xvhlihxrd28zx4y"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-lxml" ,python-lxml)))
+     (list python-lxml))
     (home-page "https://svgutils.readthedocs.io")
     (synopsis "Python SVG editor")
     (description "This is an utility package that helps with editing and
@@ -24852,12 +25410,9 @@ placement and scaling of SVG figures and adding markers, such as labels.")
             (delete-file "blessed/win_terminal.py") #t))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-jinxed" ,python-jinxed)
-       ("python-six" ,python-six)
-       ("python-wcwidth" ,python-wcwidth)))
+     (list python-jinxed python-six python-wcwidth))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-mock python-pytest))
     (home-page "https://github.com/jquast/blessed")
     (synopsis "Wrapper around terminal capabilities")
     (description
@@ -24878,13 +25433,9 @@ positioning, and keyboard input.")
           "13fnrv7z3y0yfafzcjbl55cqxncvbxadr72ql4l29pgyvrqxpsfb"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-bleach" ,python-bleach)
-       ("python-docutils" ,python-docutils)
-       ("python-pygments" ,python-pygments)
-       ("python-six" ,python-six)))
+     (list python-bleach python-docutils python-pygments python-six))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)))
+     (list python-mock python-pytest))
     (home-page "https://github.com/pypa/readme_renderer")
     (synopsis "Render README files in Warehouse")
     (description
@@ -24913,9 +25464,9 @@ and plain text.")
            (lambda _
              (invoke "python" "setup.py" "nosetests"))))))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (propagated-inputs
-     `(("python-zope-interface" ,python-zope-interface)))
+     (list python-zope-interface))
     (home-page "https://launchpad.net/lazr.delegates")
     (synopsis "Easily write objects that delegate behavior")
     (description
@@ -24928,14 +25479,14 @@ and delegating behavior.")
 (define-public python-lazr-config
   (package
     (name "python-lazr-config")
-    (version "2.2.2")
+    (version "2.2.3")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "lazr.config" version))
         (sha256
          (base32
-          "11xpddgyhyj7sf27wbmrq5lnqk21wnprx3ajycgwlxjamh6sgffd"))))
+          "1qdbrzl61q7cjhbnxvw9y3frcr935y7diwy15xrwcv9ynvw76jmp"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -24944,10 +25495,9 @@ and delegating behavior.")
            (lambda _
              (invoke "python" "-s" "-m" "nose" "-P" "lazr"))))))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (propagated-inputs
-     `(("python-lazr-delegates" ,python-lazr-delegates)
-       ("python-zope-interface" ,python-zope-interface)))
+     (list python-lazr-delegates python-zope-interface))
     (home-page "https://launchpad.net/lazr.config")
     (synopsis "Create configuration schemas and process and validate configurations")
     (description
@@ -24972,10 +25522,9 @@ validation.")
           "01lg1b0jpf8605mzaz9miq3nray6s7a7gc8n4wzg5nsxl8fglcp4"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-atpublic" ,python-atpublic)
-       ("python-zope-interface" ,python-zope-interface)))
+     (list python-atpublic python-zope-interface))
     (native-inputs
-     `(("python-nose2" ,python-nose2)))
+     (list python-nose2))
     (home-page "https://fluflbounce.readthedocs.io/en/latest/")
     (synopsis "Email bounce detectors")
     (description "The @code{flufl.bounce} library provides a set of heuristics
@@ -24998,7 +25547,7 @@ RFC 3464.")
           "1flwpn1xhgc957zj3zxw92dhdjh0lsy0hdvzq32dzqpsajfsvq1r"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-atpublic" ,python-atpublic)))
+     (list python-atpublic))
     (home-page "https://flufli18n.readthedocs.io")
     (synopsis "API for Python internationalization")
     (description
@@ -25024,8 +25573,7 @@ different tasks.")
           "055941zyma3wfx25jhm8wcsghpv3jc3iwi1gdrdjhzcnfhn62lxq"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-atpublic" ,python-atpublic)
-       ("python-psutil" ,python-psutil)))
+     (list python-atpublic python-psutil))
     (home-page "https://flufllock.readthedocs.io")
     (synopsis "NFS-safe file locking with timeouts for POSIX systems")
     (description
@@ -25049,7 +25597,7 @@ and have a maximum lifetime built-in.")
           "1nkm95mhcfhl4x5jgs6y97ikszaxsfh07nyawsih6cxxm6l62641"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose2" ,python-nose2)))
+     (list python-nose2))
     (home-page "https://gitlab.com/warsaw/flufl.testing")
     (synopsis "Collection of test tool plugins")
     (description
@@ -25072,10 +25620,9 @@ and have a maximum lifetime built-in.")
         (base32 "15zczdcm90wl54c68f1qjb05nkd5bjsc9xjl3lk4frs7k7wkmrvp"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-mock" ,python-pytest-mock)))
+     (list python-pytest python-pytest-mock))
     (propagated-inputs
-     `(("python-pygments" ,python-pygments)))
+     (list python-pygments))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (replace 'check
@@ -25102,15 +25649,10 @@ It adds a simple and readable way to print stuff during development.")
          "1ypbyqxlk7n6zibk90js3ybz37xmin3kk0i35g8c51bwqpcfyxg8"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-pytz" ,python-pytz)
-       ("python-regex" ,python-regex)
-       ("python-ruamel.yaml" ,python-ruamel.yaml)
-       ("python-tzlocal" ,python-tzlocal)))
+     (list python-dateutil python-pytz python-regex python-ruamel.yaml
+           python-tzlocal))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-parameterized" ,python-parameterized)
-       ("tzdata" ,tzdata-for-tests)))
+     (list python-mock python-parameterized tzdata-for-tests))
     (arguments
      `(;; TODO: Of 23320 tests, 6 fail and 53 error.
        #:tests? #f
@@ -25143,11 +25685,9 @@ dates in almost any string formats commonly found on web pages.")
             "0rzkg3nymsbwdjc0ms2bsajkda02jipwyp3xk97qj71f21lz3dd1"))))
     (build-system python-build-system)
     (native-inputs
-      `(("python-pytest" ,python-pytest)))
+      (list python-pytest))
     (propagated-inputs
-      `(("python-packaging" ,python-packaging)
-        ("python-pyyaml" ,python-pyyaml)
-        ("python-toml" ,python-toml)))
+      (list python-packaging python-pyyaml python-toml))
     (home-page "https://github.com/pyupio/dparse")
     (synopsis "Parser for Python dependency files")
     (description "This package provides a parser for Python dependency files.")
@@ -25166,9 +25706,7 @@ dates in almost any string formats commonly found on web pages.")
          "1ymi9ssk7i0mx3mviplf4csfvzibdd6wyj4qzj6s487n9xgnp85y"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-hypothesis" ,python-hypothesis)
-       ("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)))
+     (list python-hypothesis python-mock python-nose))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -25211,10 +25749,7 @@ facility for filtering those results.")
                (("def test_check_live") "def _test_check_live"))
              #t)))))
     (propagated-inputs
-      `(("python-click" ,python-click)
-        ("python-dparse" ,python-dparse)
-        ("python-packaging" ,python-packaging)
-        ("python-requests" ,python-requests)))
+      (list python-click python-dparse python-packaging python-requests))
     (home-page "https://github.com/pyupio/safety")
     (synopsis "Check installed dependencies for known vulnerabilities")
     (description "Safety checks installed dependencies for known vulnerabilities.
@@ -25224,23 +25759,23 @@ By default it uses the open Python vulnerability database Safety DB.")
 (define-public python-pypandoc
   (package
     (name "python-pypandoc")
-    (version "1.5")
+    (version "1.6.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pypandoc" version))
        (sha256
         (base32
-         "1zvn9764cf7kkjkmr9gw6wc8adpk06qxr1rhxwa9pg0zmdvrk90l"))))
+         "149basv4pvzg9zm74cjz68x8s2n5fykyj7prgysb0qfmja73r83f"))))
     (build-system python-build-system)
     (inputs
-     `(("pandoc" ,pandoc)
-       ("pandoc-citeproc" ,pandoc-citeproc)))
+     (list pandoc))
     (propagated-inputs
      `(("wheel" ,python-wheel)))
     (native-inputs
      `(("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
                                         texlive-fonts-ec
+                                        texlive-generic-iftex
                                         texlive-hyperref
                                         texlive-oberdiek
                                         texlive-lm
@@ -25274,7 +25809,7 @@ and pandoc-citeproc.")
          "1kmp3iwxxyzjsd47j2sprd47ihhkwhb3yydih3af5bbfq0ibh1w8"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-rply" ,python-rply)))
+     (list python-rply))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (replace 'check
@@ -25311,12 +25846,9 @@ equivalent schemata in the XML-based default RELAX NG syntax.")
                (invoke "py.test" "-v"))
              #t)))))
     (propagated-inputs
-     `(("python-rsa" ,python-rsa)
-       ("python-pyaes" ,python-pyaes)))
+     (list python-rsa python-pyaes))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-asyncio" ,python-pytest-asyncio)
-       ("python-pytest-trio" ,python-pytest-trio)))
+     (list python-pytest python-pytest-asyncio python-pytest-trio))
     (home-page "https://docs.telethon.dev")
     (synopsis "Full-featured Telegram client library for Python 3")
     (description "This library is designed to make it easy to write Python
@@ -25336,8 +25868,7 @@ programs that can interact with Telegram.")
          "00aaff50jy4j0nakdzq9258z1gzrac9baarli2ymgspj88jg5968"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-lxml" ,python-lxml)
-       ("python-rnc2rng" ,python-rnc2rng)))
+     (list python-lxml python-rnc2rng))
     (home-page
      "https://github.com/brechtm/citeproc-py")
     (synopsis "Citations and bibliography formatter")
@@ -25363,12 +25894,9 @@ are plain text, reStructuredText and HTML.")
     (arguments
      `(#:tests? #f))  ; PyPI tarball lacks tests
     (native-inputs
-      `(("python-hypothesis" ,python-hypothesis)
-        ("python-pytest-cov" ,python-pytest-cov)
-        ("python-pytest-runner" ,python-pytest-runner)))
+      (list python-hypothesis python-pytest-cov python-pytest-runner))
     (propagated-inputs
-      `(("python-arrow" ,python-arrow)
-        ("python-six" ,python-six)))
+      (list python-arrow python-six))
     (home-page "https://inform.readthedocs.io")
     (synopsis "Print & logging utilities for communicating with user")
     (description
@@ -25392,7 +25920,7 @@ cleanly print different types of messages.")
     (arguments
      `(#:tests? #f))  ; PyPI tarball lacks tests
     (propagated-inputs
-      `(("python-inform" ,python-inform)))
+      (list python-inform))
     (home-page "https://nestedtext.org")
     (synopsis "Human readable and writable data interchange format")
     (description
@@ -25453,9 +25981,7 @@ module patches @code{asyncio} to allow nested use of @code{asyncio.run} and
                (invoke "pytest" "--maxfail" "3" "--verbose"))
              #t)))))
     (native-inputs
-     `(("python-aiohttp" ,python-aiohttp)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-asyncio" ,python-pytest-asyncio)))
+     (list python-aiohttp python-pytest python-pytest-asyncio))
     (home-page "https://github.com/yuvipanda/simpervisor")
     (synopsis "Simple async process supervisor")
     (description
@@ -25476,7 +26002,7 @@ module patches @code{asyncio} to allow nested use of @code{asyncio.run} and
         (base32
          "1mzk4yabxj6r149fswhis18hd8dnag5sj8i4wb06450zq3pi8dh7"))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (build-system python-build-system)
     (arguments '(#:tests? #f))  ; No test suite.
     (home-page "https://www.parallelpython.com")
@@ -25504,12 +26030,9 @@ applications with variable CPU loads).")
         (base32 "089smpq29ll0z37lnq26r2f72d31i33xm9fw9pc6hlcsm6nbjbiv"))))
     (build-system python-build-system)
     (native-inputs
-     `(("ghostscript" ,ghostscript)
-       ("pkg-config" ,pkg-config)
-       ("python-nose" ,python-nose)))
+     (list ghostscript pkg-config python-nose))
     (inputs
-     `(("djvulibre" ,djvulibre)
-       ("python-cython" ,python-cython)))
+     (list djvulibre python-cython))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -25530,14 +26053,15 @@ applications with variable CPU loads).")
 (define-public python-versioneer
   (package
     (name "python-versioneer")
-    (version "0.19")
+    (version "0.21")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "versioneer" version))
        (sha256
         (base32
-         "1bmg8y78am371rd9b4clf11b8g1h7xvq8q58z03jvgdwpsdx7zm4"))))
+         "084fglxafbzvf1vbkzfajvs9qwnvjwwn8pxql9nrlpyipv5xpwk4"))
+       (patches (search-patches "python-versioneer-guix-support.patch"))))
     (build-system python-build-system)
     (home-page
      "https://github.com/python-versioneer/python-versioneer")
@@ -25571,9 +26095,7 @@ process.")
                        "src/zlib-1.2.8"))))))
     (build-system python-build-system)
     (inputs
-     `(("libpng" ,libpng)
-       ("libtiff" ,libtiff)
-       ("zlib" ,zlib)))
+     (list libpng libtiff zlib))
     (arguments
      `(#:python ,python-2
        #:phases
@@ -25602,7 +26124,7 @@ process.")
             "17n3w8c20kgkgc6khaafdhhlcdj4bzman4paxqsl7harma59137k"))))
     (build-system python-build-system)
     (propagated-inputs
-      `(("python-immutables" ,python-immutables)))
+      (list python-immutables))
     (home-page
       "https://github.com/MagicStack/contextvars")
     (synopsis "PEP 567 Backport")
@@ -25641,9 +26163,7 @@ disk files in asyncio applications.")
             "0c5cbbqrfyjwakdh3kbwxis6mbrbwky1z1fqslgszgpcj4g43q30"))))
     (build-system python-build-system)
     (propagated-inputs
-      `(("python-typing-extensions"
-         ,python-typing-extensions)
-        ("python-typing-inspect" ,python-typing-inspect)))
+      (list python-typing-extensions python-typing-inspect))
     (home-page "https://pyre-check.org")
     (synopsis
      "Type system extensions for use with @code{python-pyre}")
@@ -25716,9 +26236,9 @@ query Watchman to discover file changes.")
                (invoke "pytest" "tests"))
              #t)))))
     (propagated-inputs
-     `(("python-importlib-metadata" ,python-importlib-metadata)))
+     (list python-importlib-metadata))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://gitlab.com/dpizetta/helpdev")
     (synopsis
      "Extract information about the Python environment easily")
@@ -25760,10 +26280,9 @@ older versions of Python and so are packaged here.")
                 "1d2j64wgbggzv5rhvil10zndp2w78wa5np5w0psj122ws9qr9wsa"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-mock" ,python-mock)))
+     (list python-mock))
     (propagated-inputs
-     `(("python-logutils" ,python-logutils)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python-logutils python-pyyaml))
     (home-page "https://github.com/gmr/helper")
     (synopsis "Library for writing configurable applications and daemons")
     (description
@@ -25796,11 +26315,9 @@ applications and daemons.")
              (for-each make-file-writable (find-files "."))
              #t)))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest python-pytest-cov python-pytest-runner))
     (propagated-inputs
-     `(("python-libsass" ,python-libsass)))
+     (list python-libsass))
     (home-page "https://github.com/spyder-ide/qtsass")
     (synopsis "Compile SCSS files to valid Qt stylesheets")
     (description
@@ -25829,8 +26346,7 @@ handling those variations.")
        ;; added as native-inputs.
        #:tests? #f))
     (propagated-inputs
-     `(("python-helpdev" ,python-helpdev)
-       ("python-qtpy" ,python-qtpy)))
+     (list python-helpdev python-qtpy))
     (home-page
      "https://github.com/ColinDuquesnoy/QDarkStyleSheet")
     (synopsis
@@ -25862,7 +26378,7 @@ Qt applications.")
                  (invoke "pytest")))
              #t)))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/scott-griffiths/bitstring")
     (synopsis
      "Simple construction, analysis and modification of binary data")
@@ -25884,7 +26400,7 @@ Qt applications.")
          "0bh2kyj8wd7h9gg4nsvrbykl5ly0f70f0wi3fbm204b1f0fcmywj"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pyyaml" ,python-pyyaml)))
+     (list python-pyyaml))
     (home-page "https://github.com/beetbox/confuse")
     (synopsis "Painless YAML configuration")
     (description "Confuse is a configuration library for Python that uses
@@ -25907,10 +26423,9 @@ integration, human-readable errors, and standard OS-specific locations.")
     (arguments
      `(#:tests? #false)) ; almost all tests want to run mkfs.btrfs
     (propagated-inputs
-     `(("python-cffi" ,python-cffi)))
+     (list python-cffi))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-pytest python-pytest-runner))
     (home-page "https://gitlab.com/rubdos/pyreflink")
     (synopsis "Python wrapper around reflink system call")
     (description
@@ -25945,16 +26460,15 @@ implementations.")
                            "${Coin_INCLUDE_DIR};${SoQt_INCLUDE_DIRS}"))
              #t)))))
     (native-inputs
-      `(("cmake" ,cmake)
-        ("swig" ,swig)))
+      (list cmake swig))
     (inputs
-      `(("python-wrapper" ,python-wrapper)
-        ("qtbase" ,qtbase-5)
-        ("libxi" ,libxi)
-        ("libice" ,libice)
-        ("soqt" ,soqt)
-        ("glew" ,glew)
-        ("coin3D" ,coin3D-4)))
+      (list python-wrapper
+            qtbase-5
+            libxi
+            libice
+            soqt
+            glew
+            coin3D-4))
     (home-page "https://github.com/coin3d/pivy")
     (synopsis "Python bindings to Coin3D")
     (description
@@ -25975,7 +26489,7 @@ Application Programming Interface based on the Open Inventor 2.1 API.")
           "0gw106k4b6y8mw7pp52awxyplj2bwvwk315k4sywzwh0g1abfcxx"))))
     (build-system python-build-system)
     (propagated-inputs
-      `(("python-colorama" ,python-colorama)))
+      (list python-colorama))
     (home-page "https://github.com/MasterOdin/crayons")
     (synopsis "TextUI colors for Python")
     (description "This package gives you colored strings for the terminal.
@@ -25996,9 +26510,9 @@ restores the original state after the string is printed.")
          "1pi597z94n2mkd821ln52fq0g727n2jxfskf280ip3kf7jw8w294"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (inputs
-     `(("sane-backends" ,sane-backends)))
+     (list sane-backends))
     (home-page "https://github.com/python-pillow/Sane")
     (synopsis "Python interface to the SANE scanner")
     (description "This package provides Python interface to the SANE scanner
@@ -26040,25 +26554,25 @@ and frame grabber interface.")
             (lambda* (#:key outputs #:allow-other-keys)
               (wrap-program
                   (string-append (assoc-ref outputs "out") "/bin/screenkey")
-                `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
+                `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
                 `("GI_TYPELIB_PATH"
-                  ":" prefix (,(getenv "GI_TYPELIB_PATH"))))
-              #t)))))
+                  ":" prefix (,(getenv "GI_TYPELIB_PATH")))))))))
     (inputs
-     `(("python-distutils-extra" ,python-distutils-extra)
-       ("python-tokenize-rt" ,python-tokenize-rt)
-       ("libx11" ,libx11)
-       ("libxtst" ,libxtst)
-       ("gtk+" ,gtk+)
-       ("python-pygobject" ,python-pygobject)
-       ("python-pycairo" ,python-pycairo)
-       ("python-setuptools-git" ,python-setuptools-git)
-       ("python-babel" ,python-babel)))
+     (list python-distutils-extra
+           python-tokenize-rt
+           libx11
+           libxtst
+           gtk+
+           python-pygobject
+           python-pycairo
+           python-setuptools-git
+           python-babel))
     (home-page "https://www.thregr.org/~wavexx/software/screenkey/")
     (synopsis
       "Screencast tool to display pressed keys")
     (description
-      "A screencast tool to display your keys inspired by Screenflick.")
+      "Screenkey is a screencast tool to display your keys inspired by
+Screenflick.")
     (license license:gpl3+)))
 
 (define-public python-jinja2-cli
@@ -26074,11 +26588,9 @@ and frame grabber interface.")
             "0vikx7v6fbvww6kfrv0k5a24jyv3ak7nindg60906pdd1m9qvkcw"))))
     (build-system python-build-system)
     (propagated-inputs
-      `(("python-jinja2" ,python-jinja2)))
+      (list python-jinja2))
     (native-inputs
-      `(("python-flake8" ,python-flake8)
-        ("python-jinja2" ,python-jinja2)
-        ("python-pytest" ,python-pytest)))
+      (list python-flake8 python-jinja2 python-pytest))
     (home-page "https://github.com/mattrobenolt/jinja2-cli")
     (synopsis "Command-line interface to Jinja2")
     (description
@@ -26156,9 +26668,7 @@ iGoogle subscription lists.")
              (invoke "nosetests" "-v" "--exclude=^load_tests$"))))))
     (native-inputs
      ;; For tests.
-     `(("python-docutils" ,python-docutils)
-       ("python-nose" ,python-nose)
-       ("python-pygments" ,python-pygments)))
+     (list python-docutils python-nose python-pygments))
     (home-page "https://github.com/leohemsted/smartypants.py")
     (synopsis "Translate punctuation characters into smart quotes")
     (description
@@ -26190,10 +26700,10 @@ entities
            (lambda _
              (invoke "nosetests" "-v"))))))
     (propagated-inputs
-     `(("python-smartypants" ,python-smartypants)))
+     (list python-smartypants))
     (native-inputs
      ;; For tests.
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/mintchaos/typogrify")
     (synopsis "Filters to transform text into typographically-improved HTML")
     (description
@@ -26216,7 +26726,7 @@ Django template systems, the filters can be used in any environment.")
          "1k4ydp5rgkv4985v459kcl06i1igjm1ywvh2vkbi9ck1zyyri1z5"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/nir0s/ld")
     (synopsis "OS platform information API")
     (description
@@ -26255,8 +26765,7 @@ runs on, such as a reliable machine-readable ID, or version information.")
                (invoke "pytest"))
              #t)))))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)))
+     (list python-cython python-pytest))
     (home-page "https://github.com/scoder/quicktions")
     (synopsis "Fast fractions data type for rational numbers")
     (description
@@ -26281,10 +26790,7 @@ is the cythonized version of @code{fractions.Fraction}.")
     ;; pathvalidate tests depend on pytest-md-report, which
     ;; depends on pathvalidate.
     (native-inputs
-     `(("python-allpairspy" ,python-allpairspy)
-       ("python-click" ,python-click)
-       ("python-faker" ,python-faker)
-       ("python-pytest" ,python-pytest)))
+     (list python-allpairspy python-click python-faker python-pytest))
     (home-page "https://github.com/thombashi/pathvalidate")
     (synopsis "Sanitize strings representing paths")
     (description
@@ -26325,9 +26831,7 @@ result.")
          "0rvdd2ikdr0yg6cx6594fdzn53cmdc0g0i6qsbcdq8i2kxjdpd5x"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-commonmark" ,python-commonmark)
-       ("python-docutils" ,python-docutils)
-       ("python-sphinx" ,python-sphinx)))
+     (list python-commonmark python-docutils python-sphinx))
     (arguments
      '(#:phases (modify-phases %standard-phases
                   (add-after 'unpack 'delete-test-sphinx
@@ -26337,8 +26841,8 @@ result.")
     (home-page "https://github.com/readthedocs/recommonmark")
     (synopsis "Docutils-compatibility bridge to CommonMark")
     (description
-     "This packages provides a docutils-compatibility bridge to CommonMark,
-enabling you to write CommonMark inside of Docutils & Sphinx projects.")
+     "This package provides a docutils-compatibility bridge to CommonMark that
+lets you write CommonMark inside of Docutils & Sphinx projects.")
     (license license:expat)))
 
 (define-public python-pyhull
@@ -26354,7 +26858,7 @@ enabling you to write CommonMark inside of Docutils & Sphinx projects.")
          "091sph52c4yk1jlm5w8xidxpzbia9r7s42bnb23q4m4b56ihmzyj"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (home-page "https://github.com/materialsvirtuallab/pyhull")
     (synopsis "Python wrapper to Qhull")
     (description
@@ -26411,7 +26915,8 @@ and BMI2).")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1yy62k3cjr6556nbp651w6v4hzl7kz4y75wy2dfqgndgbnixskx2"))))
+                  "1yy62k3cjr6556nbp651w6v4hzl7kz4y75wy2dfqgndgbnixskx2"))
+                (patches (search-patches "python-peachpy-determinism.patch"))))
       (build-system python-build-system)
       (arguments
        '(#:phases (modify-phases %standard-phases
@@ -26420,11 +26925,9 @@ and BMI2).")
                         (when tests?
                           (invoke "python" "setup.py" "nosetests")))))))
       (native-inputs
-       `(("python-nose" ,python-nose)
-         ("python-rednose" ,python-rednose)))
+       (list python-nose python-rednose))
       (propagated-inputs
-       `(("python-six" ,python-six)
-         ("python-opcodes" ,python-opcodes)))
+       (list python-six python-opcodes))
       (synopsis "Efficient assembly code generation in Python")
       (description
        "PeachPy is a Python framework for writing high-performance assembly kernels.
@@ -26457,8 +26960,9 @@ supports x86_64 instructions up to AVX-512 and SHA.")
       (build-system python-build-system)
       (home-page "https://github.com/hsoft/sgmllib")
       (synopsis "Python 3 port of sgmllib")
-      (description "This package is a port of sgmllib that is no longer part
-of Python 3.")
+      (description "This packages provides an unmaintained port of sgmllib to
+Python 3.  It is used to parse text files formatted in @acronym{SGML,Standard
+Generalized Mark-up Language}.")
       (license license:bsd-3))))
 
 (define-public python-cwcwidth
@@ -26474,11 +26978,8 @@ of Python 3.")
          "1azrphpkcyggg38xvkfb9dpc4xmmm90p02kf8dkqd4d6j5w96aj8"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-toml" ,python-toml)
-       ("python-wheel" ,python-wheel)))
+     (list python-cython python-pytest python-setuptools-scm python-toml
+           python-wheel))
     (home-page
      "https://github.com/sebastinas/cwcwidth")
     (synopsis "Python bindings for wc(s)width")
@@ -26515,11 +27016,9 @@ functions defined in POSIX.1-2001 and POSIX.1-2008.")
                        (string-append (getcwd) ":" (getenv "GUIX_PYTHONPATH")))
                (invoke "pytest")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-wheel" ,python-wheel)))
+     (list python-pytest python-pytest-cov python-wheel))
     (propagated-inputs
-     `(("python-jinja2" ,python-jinja2)))
+     (list python-jinja2))
     (home-page "https://github.com/Technologicat/pyan")
     (synopsis "Offline call graph generator for Python 3")
     (description "Pyan takes one or more Python source files, performs
@@ -26528,6 +27027,176 @@ objects in the combined source, and how they define or use each other.  The
 graph can be output for rendering by GraphViz or yEd.")
     (license license:gpl2)))
 
+(define-public python-multipledispatch
+  (package
+    (name "python-multipledispatch")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "multipledispatch" version))
+       (sha256
+        (base32
+         "1slblghfjg9fdi9zpd7gmrkvfbv20nrdgnrymcnbky8bzm8i9ax7"))))
+    (build-system python-build-system)
+    (propagated-inputs (list python-six))
+    (home-page "https://github.com/mrocklin/multipledispatch/")
+    (synopsis "Multiple dispatch for Python based on pattern matching")
+    (description "This library provides an efficient mechanism for overloading
+function implementations based on the types of the arguments.")
+    (license license:bsd-3)))
+
+(define-public python-logical-unification
+  (package
+    (name "python-logical-unification")
+    (version "0.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "logical-unification" version))
+       (sha256
+        (base32
+         "0j57953hi7kg2rl0163vzjzsvzdyjimnklhx6idf5vaqqf1d3p1j"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-multipledispatch python-toolz))
+    (home-page "https://github.com/pythological/unification/")
+    (synopsis "Logical unification in Python for solving symbolic expressions")
+    (description "This library provides algorithms and data types for solving
+symbolic expressions in pure Python using the technique of logical unification.")
+    (license license:bsd-3)))
+
+(define-public python-cons
+  (package
+    (name "python-cons")
+    (version "0.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "cons" version))
+       (sha256
+        (base32
+         "0w9giq196wps7mbm47c4shdzs5yvwvqajqzkim2p92i51sm5qgvm"))))
+    (build-system python-build-system)
+    (native-inputs
+     (list python-pytest-6 python-toml))
+    (propagated-inputs
+     (list python-logical-unification))
+    (home-page "https://github.com/pythological/python-cons")
+    (synopsis "Cons cell data structures and related algorithms for Python")
+    (description
+     "This library implements algorithms and data structures for Lisp-style
+cons cells in Python.")
+    (license license:lgpl3+)))
+
+(define-public python-etuples
+  (package
+    (name "python-etuples")
+    (version "0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "etuples" version))
+       (sha256
+        (base32
+         "0jhfyp177v37rl0i7wqfx7q6s5qkz027hl283d1x8d0vm3w0zqc8"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-cons python-multipledispatch))
+    (home-page "https://github.com/pythological/etuples")
+    (synopsis "S-expressions in Python")
+    (description
+     "This library implements eval'able S-expression in Python using tuple-like objects.")
+    (license license:asl2.0)))
+
+(define-public python-minikanren
+  (package
+    (name "python-minikanren")
+    (version "1.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pythological/kanren")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0g7wfj5hxalwz7k1301nsjqhjpzsif1bj6wjm2x2kavlm2ypv9jc"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "python" "-m" "pytest" "-v" "tests/" "kanren/"))
+                      #t)))))
+    (native-inputs
+     (list python-coveralls
+           python-pydocstyle
+           python-pytest
+           python-pytest-cov
+           python-pylint
+           python-black
+           python-sympy
+           python-versioneer
+           python-coverage
+           python-pre-commit))
+    (propagated-inputs
+     (list python-toolz python-cons python-multipledispatch
+           python-etuples python-logical-unification))
+    (home-page "https://github.com/pythological/kanren")
+    (synopsis "Relational logic programming in pure Python")
+    (description
+     "The minikanren library provides an algorithmic core for computer algebra
+systems in Python.")
+    (license license:bsd-3)))
+
+(define-public python-dotenv
+  (package
+    (name "python-dotenv")
+    (version "0.19.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "python-dotenv" version))
+       (sha256
+        (base32 "0pv5ygpr6syc6zkw21in4ysqs3k7qaxk9m1g5pzlafwm3silkpm5"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (setenv "PATH" (string-append (getenv "PATH") ":"
+                                             (assoc-ref outputs "out") "/bin"))
+               ;; Skip the ipython tests.
+               (delete-file "tests/test_ipython.py")
+               (invoke "python" "-m" "pytest")))))))
+    (propagated-inputs
+     (list python-click))
+    (native-inputs
+     (list python-mock python-pytest python-sh))
+    (home-page "https://github.com/theskumar/python-dotenv")
+    (synopsis "Setup environment variables according to .env files")
+    (description
+     "This package provides the @code{python-dotenv} Python module to read
+key-value pairs from a @code{.env} file and set them as environment variables.")
+    (license license:bsd-3)))
+
+(define-public python-dotenv-0.13.0
+  (package (inherit python-dotenv)
+    (name "python-dotenv")
+    (version "0.13.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "python-dotenv" version))
+       (sha256
+        (base32
+         "0x5dagmfn31phrbxlwacw3s4w5vibv8fxqc62nqcdvdhjsy0k69v"))))))
+
 (define-public date2name
   (let ((commit "6c8f37277e8ec82aa50f90b8921422be30c4e798")
         (revision "1"))
@@ -26563,3 +27232,553 @@ files and directories and adds a datestamp in standard ISO 8601+ format
 YYYY-MM-DD at the beginning of the file or directory name.")
       (home-page "https://github.com/novoid/date2name")
       (license license:gpl3+))))
+
+(define-public python-braintree
+  (package
+    (name "python-braintree")
+    (version "4.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "braintree" version))
+       (sha256
+        (base32 "19kli85q18p80nsn8fm4ql6axpr7bllfqg5chv2ywhr8zr8bssll"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-requests))
+    (home-page
+     "https://developers.braintreepayments.com/python/sdk/server/overview")
+    (synopsis "Braintree Python Library")
+    (description "The Braintree Python SDK provides integration access to the
+Braintree Gateway.  Braintree is a US-based payments service provider.")
+    (license license:expat)))
+
+(define-public python-markuppy
+  (package
+    (name "python-markuppy")
+    (version "1.14")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "MarkupPy" version))
+       (sha256
+        (base32 "0pqdmpxbr8iq22b4css2gz5z6s01ddpzyj25x27kgbs2lp0f5phs"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/tylerbakke/MarkupPy")
+    (synopsis "A pythonic HTML/XML generator")
+    (description "This Python module attempts to make it easier to generate
+HTML/XML from a Python program in an intuitive, lightweight, customizable and
+pythonic way.")
+    (license license:expat)))
+
+(define-public python-tablib
+  (package
+    (name "python-tablib")
+    (version "3.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "tablib" version))
+       (sha256
+       (base32 "03f1z6jq6rf67gwhbm9ma4rydm8h447a5nh5lcs5l8jg8l4aqg7q"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "GUIX_PYTHONPATH"
+                       (string-append (getcwd) "/build/lib:"
+                                      (getenv "GUIX_PYTHONPATH")))
+               (invoke "pytest")))))))
+    (native-inputs
+     (list python-pandas ;; required for test-suite
+           python-pytest python-pytest-cov python-setuptools-scm))
+    (propagated-inputs
+     (list python-markuppy
+           python-odfpy
+           python-openpyxl
+           python-pyyaml
+           python-tabulate
+           python-xlrd
+           python-xlwt))
+    (home-page "https://tablib.readthedocs.io")
+    (synopsis "Format agnostic tabular data library")
+    (description "@code{tablib} is a format-agnostic tabular dataset library,
+written in Python.  Supported output formats are Excel (Sets + Books),
+JSON (Sets + Books), YAML (Sets + Books), HTML (Sets), Jira (Sets),
+TSV (Sets), ODS (Sets), CSV (Sets), and DBF (Sets).
+
+@code{tablib} also supports Pandas DataFrames (Sets).  Anyhow, since pandas is
+quite huge, this Guix package doesn't depend on pandas.  In case, just also
+install @code{python-pandas}.")
+    (license license:expat)))
+
+(define-public python-csb43
+  (package
+    (name "python-csb43")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "csb43" version))
+       (sha256
+        (base32 "0r0csl9npncnkfafg3rg6xr38d1qr0sxvq7wn7mg9bq41hvvh1si"))))
+    (build-system python-build-system)
+    (native-inputs
+     (list python-lxml))
+    (propagated-inputs
+     (list python-pycountry python-pyyaml python-tablib))
+    (home-page "https://bitbucket.org/wmj/csb43")
+    (synopsis "Tools for converting from the Spanish banks' format CSB norm
+43 (CSB43)")
+    (description "This package provides tools to convert files in the format
+used by multiple Spanish banks (standard 43 of the Spanish Banking Council
+[CSB43] / Spanish Banking Association [AEB43]) to other formats.
+
+Supported output formats are: OFX, HomeBank CSV, HTML, JSON, ODS (OpenDocument
+spreadsheet), CSV, TSV, XLS, XLSX (Microsoft Excel spreadsheet), and YAML.")
+    (license license:lgpl3)))
+
+(define-public python-febelfin-coda
+  (package
+    (name "python-febelfin-coda")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "febelfin-coda" version))
+       (sha256
+        (base32 "10nf4hdwldqgdmh4g613vx55sbsw1x1yzpvs3crwlggbp75fjjfi"))))
+    (build-system python-build-system)
+    (home-page "https://coda.b2ck.com/")
+    (synopsis "A module to parse Belgian CODA files")
+    (description "This package provides a module to parse Coded statement of
+account (CODA) files as defined be the Belgian Febelfin bank standard.")
+    (license license:bsd-3)))
+
+(define-public python-ofxparse
+  (package
+    (name "python-ofxparse")
+    (version "0.21")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "ofxparse" version))
+       (sha256
+        (base32 "19y4sp5l9jqiqzzlbqdfiab42qx7d84n4xm4s7jfq397666vcyh5"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "nosetests" "-v")))))))
+    (native-inputs
+     (list python-nose))
+    (propagated-inputs
+     (list python-beautifulsoup4 python-lxml python-six))
+    (home-page "http://sites.google.com/site/ofxparse")
+    (synopsis "Tools for working with the OFX (Open Financial Exchange) file
+format")
+    (description "@code{ofxparse} is a parser for Open Financial
+Exchange (.ofx) format files.  OFX files are available from almost any online
+banking site, so they work well if you want to pull together your finances
+from multiple sources.  Online trading accounts also often provide account
+statements in OFX files.")
+    (license license:expat)))
+
+(define-public python-stripe
+  (package
+    (name "python-stripe")
+    (version "2.60.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "stripe" version))
+       (sha256
+        (base32 "0258lzh4qikhinfggnlfh5aklcvg7lrvl8giqrh0yf0l61wvfrl9"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:tests? #f))  ;; tests require network
+    (propagated-inputs
+     (list python-requests))
+    (home-page "https://github.com/stripe/stripe-python")
+    (synopsis "Python bindings for the Stripe financial services' API")
+    (description "This package provides access to the Stripe financial
+services' API.  It includes a pre-defined set of classes for API resources
+that initialize themselves dynamically from API responses which makes it
+compatible with a wide range of versions of the Stripe API.")
+    (license license:expat)))
+
+(define-public python-platformdirs
+  (package
+    (name "python-platformdirs")
+    (version "2.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "platformdirs" version))
+       (sha256
+        (base32 "07hq5qrp7pqj63iczg01wbf5ii6f0ncd0dq5mzkdhsslmg9slbb3"))))
+    (build-system python-build-system)
+    (native-inputs
+     (list python-appdirs python-pytest python-pytest-cov
+           python-pytest-mock))
+    (home-page "https://github.com/platformdirs/platformdirs")
+    (synopsis "Determine the appropriate platform-specific directories")
+    (description "When writing applications, finding the right location to
+store user data and configuration varies per platform.  Even for
+single-platform apps, there may by plenty of nuances in figuring out the right
+location.  This small Python module determines the appropriate
+platform-specific directories, e.g. the ``user data dir''.")
+    (license license:expat)))
+
+(define-public python-json2html
+  (package
+    (name "python-json2html")
+    (version "1.3.0")
+    (source
+     ;; There are no tests in the PyPI tarball.
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/softvar/json2html")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1ncypljnl5y8lsxy6ibcqy412kx3mzxl4ajg67568hvq98kv1sb3"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "test/run_tests.py")))))))
+    (home-page "https://github.com/softvar/json2html")
+    (synopsis "Convert JSON to HTML table")
+    (description "@code{python-json2html} is a python module to convert JSON
+into a human readable HTML table representation.")
+    (license license:expat)))
+
+(define-public python-face
+  (package
+    (name "python-face")
+    (version "20.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "face" version))
+       (sha256
+        (base32 "0gpd9f0rmbv3rd2szi2na37l29fabkwazikjrxc6wca1lddwlnbx"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               ;; Make installed package available for running the tests.
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "-v")))))))
+    (native-inputs
+     (list python-pytest))
+    (propagated-inputs
+     (list python-boltons))
+    (home-page "https://github.com/mahmoud/face")
+    (synopsis "CLI parsing and dispatching microframework")
+    (description "@code{python-face} is a Pythonic microframework for building
+command-line applications.
+
+@itemize
+@item First-class subcommand support
+@item Powerful middleware architecture
+@item Separate parser layer
+@item Built-in flagfile support
+@item Handy testing utilities
+@item Themeable help display
+@end itemize")
+    (license license:bsd-3)))
+
+(define-public python-glom
+  (package
+    (name "python-glom")
+    (version "20.11.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "glom" version))
+       (sha256
+        (base32 "04pba09vdr3qjvqvy14g60fscdsi35chbbyqpczdp76cpir101al"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               ;; Make installed executable available for running the tests.
+               (setenv "PATH"
+                       (string-append (assoc-ref outputs "out") "/bin"
+                                      ":" (getenv "PATH")))
+               (invoke "pytest" "-v")))))))
+    (native-inputs
+     (list python-pytest python-pyyaml))
+    (propagated-inputs
+     (list python-attrs python-boltons python-face))
+    (home-page "https://github.com/mahmoud/glom")
+    (synopsis "Declaratively restructure data")
+    (description "Real applications have real data, and real data
+nests---objects inside of objects inside of lists of objects.  glom is a new
+and powerful way to handle real-world data, featuring:
+
+@itemize
+@item Path-based access to nested data structures
+@item Readable, meaningful error messages
+@item Declarative data transformation, using lightweight, Pythonic specifications
+@item Built-in data exploration and debugging features
+@end itemize")
+    (license license:bsd-3)))
+
+(define-public python-box
+  (package
+    (name "python-box")
+    (version "5.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "python-box" version))
+       (sha256
+        (base32
+         "0jhrdif57khx2hsw1q6a9x42knwcvq8ijgqyq1jmll6y6ifyzm2f"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-msgpack python-ruamel.yaml python-toml))
+    (home-page "https://github.com/cdgriffith/Box")
+    (synopsis "Advanced Python dictionaries with dot notation access")
+    (description
+     "This package provides the @code{python-box} Python module.
+It implements advanced Python dictionaries with dot notation access.")
+    (license license:expat)))
+
+(define-public python-fields
+  (package
+    (name "python-fields")
+    (version "5.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "fields" version))
+        (sha256
+          (base32 "09sppvhhkhkv9zc9g994m53z15v92csxwcf42ggkaknlv01smm1i"))))
+    (build-system python-build-system)
+    (home-page "https://python-fields.readthedocs.io/")
+    (synopsis "Python container class boilerplate killer")
+    (description "Avoid repetetive boilerplate code in Python classes.")
+    (license license:bsd-3)))
+
+(define-public python-aspectlib
+  (package
+    (name "python-aspectlib")
+    (version "1.5.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "aspectlib" version))
+        (sha256
+          (base32 "1am4ycf292zbmgz791z393v63w7qrynf8q5p9db2wwf2qj1fqxfj"))))
+    (build-system python-build-system)
+    (propagated-inputs (list python-fields))
+    (home-page "https://github.com/ionelmc/python-aspectlib")
+    (synopsis
+      "Python monkey-patching and decorators")
+    (description
+      "This package provides an aspect-oriented programming, monkey-patch
+and decorators library.  It is useful when changing behavior in existing
+code is desired.  It includes tools for debugging and testing:
+simple mock/record and a complete capture/replay framework.")
+    (license license:bsd-2)))
+
+(define-public python-ijson
+  (package
+    (name "python-ijson")
+    (version "3.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "ijson" version))
+       (sha256
+        (base32 "1sp463ywj4jv5cp6hsv2qwiima30d09xsabxb2dyq5b17jp0640x"))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; the tests run by the default setup.py require yajl 1.x,
+         ;; but we have 2.x.  yajl 1.x support is going to be removed
+         ;; anyway, so use pytest to avoid running the yajl1-related
+         ;; tests. See: https://github.com/ICRAR/ijson/issues/55
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest" "-vv")))))))
+    (inputs
+     ;; libyajl is optional, but compiling with it makes faster
+     ;; backends available to ijson:
+     (list libyajl))
+    (native-inputs
+     (list python-pytest))
+    (build-system python-build-system)
+    (home-page "https://github.com/ICRAR/ijson")
+    (synopsis "Iterative JSON parser with Python iterator interfaces")
+    (description
+     "Ijson is an iterative JSON parser with standard Python iterator
+interfaces.")
+    (license license:bsd-3)))
+
+(define-public python-orgparse
+  (package
+    (name "python-orgparse")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "orgparse" version))
+       (sha256
+        (base32 "14iv4pg3rma9560plg0w943x04mr2cmrssda43y2d1x9acrd2n71"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest" "-vv" "orgparse/tests")))))))
+    (native-inputs
+     (list python-pytest python-setuptools-scm))
+    (home-page "https://github.com/karlicoss/orgparse")
+    (synopsis "Emacs Org mode parser in Python")
+    (description
+     "This package is a Python module for reading Emacs Org mode files.")
+    (license license:bsd-3)))
+
+(define-public dynaconf
+  (package
+    (name "dynaconf")
+    (version "3.1.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/rochacbruno/dynaconf")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0pjyjsdzairpn5vq8nzddhxwxmr18grn272nj31wcy2ipwdl3c3h"))
+       (patches (search-patches "dynaconf-unvendor-deps.patch"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   ;; Remove vendored dependencies
+                   (let ((unvendor '("click" "dotenv" "ruamel" "toml")))
+                     (with-directory-excursion "dynaconf/vendor"
+                       (for-each delete-file-recursively unvendor))
+                     (with-directory-excursion "dynaconf/vendor_src"
+                       (for-each delete-file-recursively unvendor)))))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? outputs #:allow-other-keys)
+             (when tests?
+               (setenv "PATH"
+                       (string-append (assoc-ref outputs "out") "/bin:"
+                                      (getenv "PATH")))
+               ;; These tests depend on hvac and a live Vault process.
+               (delete-file "tests/test_vault.py")
+               (invoke "make" "test_only")))))))
+    (propagated-inputs
+     (list python-click python-configobj python-dotenv-0.13.0
+           python-ruamel.yaml python-toml))
+    (native-inputs
+     (list python-django python-flask python-pytest-6 python-pytest-cov
+           python-pytest-mock))
+    (home-page "https://www.dynaconf.com/")
+    (synopsis "The dynamic configurator for your Python project")
+    (description
+     "This package provides @code{dynaconf} the dynamic configurator manager for
+your Python project.  It provides features such as:
+
+@itemize
+@item Inspired by the @url{https://12factor.net/config, 12-factor application guide};
+@item Settings management (default values, validation, parsing, templating);
+@item Protection of sensitive information (passwords/tokens);
+@item Multiple file formats @code{toml|yaml|json|ini|py} and also customizable
+loaders;
+@item Full support for environment variables to override existing settings
+(dotenv support included);
+@item Optional layered system for multiple environments @code{[default,
+development, testing, production]};
+@item Built-in support for Hashicorp Vault and Redis as settings and secrets storage;
+@item Built-in extensions for Django and Flask web frameworks;
+@item CLI for common operations such as @code{init, list, write, validate, export}.
+@end itemize")
+    (license license:expat)))
+
+(define-public pudb
+  (package
+    (name "pudb")
+    (version "2021.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pudb" version))
+       (sha256
+        (base32 "0p16pvzfa3w02ybg3n0iy5rs23z4rz4a42lb8wh3mcq62y9ik2w7"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'fix-read-only-home
+           (lambda _
+             (setenv "HOME" "/tmp")))
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest")))))))
+    (native-inputs
+     (list python-numpy python-pytest python-pytest-mock))
+    (propagated-inputs
+     (list python-jedi python-pygments python-urwid python-urwid-readline))
+    (home-page "https://documen.tician.de/pudb/")
+    (synopsis "Console-based Python debugger")
+    (description
+     "@command{pudb} is a full-screen, console-based Python debugger providing
+all the niceties of modern GUI-based debuggers in a more lightweight and
+keyboard-friendly package.")
+    (license license:expat)))
+
+(define-public python-iwlib
+  (package
+    (name "python-iwlib")
+    (version "1.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "iwlib" version))
+       (sha256
+        (base32 "18bd35wn7zclalpqbry42pf7bjrdggxkkw58mc0k1vkhg9czc1d8"))))
+    (build-system python-build-system)
+    (inputs
+     (list wireless-tools))
+    (propagated-inputs (list python-cffi))
+    (home-page "https://github.com/nhoad/python-iwlib")
+    (synopsis "Python module to interface with iwlib")
+    (description
+     "This package provides a Python interface to iw wireless tools.")
+    (license license:gpl2)))
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 08d7c2f41e..f0d2fd6eb8 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -28,7 +28,6 @@
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2016, 2017 Stefan Reichör <stefan@xsteve.at>
-;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
 ;;; Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016–2018, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -43,7 +42,6 @@
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2017, 2018 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com>
 ;;; Copyright © 2017 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2018 Ethan R. Jones <ethanrjones97@gmail.com
 ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
@@ -384,16 +382,16 @@
          (add-after 'install 'install-sitecustomize.py
            ,(customize-site version)))))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("expat" ,expat)
-       ("gdbm" ,gdbm)
-       ("libffi" ,libffi)               ; for ctypes
-       ("sqlite" ,sqlite)               ; for sqlite extension
-       ("openssl" ,openssl)
-       ("readline" ,readline)
-       ("zlib" ,zlib)
-       ("tcl" ,tcl)
-       ("tk" ,tk)))                     ; for tkinter
+     (list bzip2
+           expat
+           gdbm
+           libffi ; for ctypes
+           sqlite ; for sqlite extension
+           openssl
+           readline
+           zlib
+           tcl
+           tk))                     ; for tkinter
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("sitecustomize.py" ,(local-file (search-auxiliary-file
@@ -731,7 +729,7 @@ To function properly, this package should not be installed together with the
      `(("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)))
     (inputs
-     `(("libffi" ,libffi)))
+     (list libffi))
     (home-page "https://micropython.org/")
     (synopsis "Python implementation for microcontrollers and constrained systems")
     (description "MicroPython is a lean and efficient implementation of the
@@ -766,18 +764,18 @@ ease from the desktop to a microcontroller or embedded system.")
        ("nss-certs" ,nss-certs)         ; For ssl tests
        ("gzip" ,gzip)))
     (inputs
-     `(("libffi" ,libffi)
-       ("zlib" ,zlib)
-       ("ncurses" ,ncurses)
-       ("openssl" ,openssl)
-       ("expat" ,expat)
-       ("bzip2" ,bzip2)
-       ("sqlite" ,sqlite)
-       ("gdbm" ,gdbm)
-       ("tcl" ,tcl)
-       ("tk" ,tk)
-       ("glibc" ,glibc)
-       ("xz" ,xz)))                     ; liblzma
+     (list libffi
+           zlib
+           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)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 5ce4220cb0..01bf961bbf 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -136,8 +136,7 @@
                (chdir "libqite")
                #t)))))
       (inputs
-       `(("qtbase" ,qtbase-5)
-         ("qtmultimedia" ,qtmultimedia)))
+       (list qtbase-5 qtmultimedia))
       (home-page "https://github.com/Ri0n/qite/")
       (synopsis "Qt Interactive Text Elements")
       (description "Qite manages interactive elements on QTextEdit.")
@@ -183,10 +182,9 @@
          (add-after 'install 'qt-wrap
            (assoc-ref qt:%standard-phases 'qt-wrap)))))
     (native-inputs
-     `(("qttools" ,qttools)))
+     (list qttools))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+     (list qtbase-5 qtsvg))
     (synopsis "Qt5 Configuration Tool")
     (description "Qt5CT is a program that allows users to configure Qt5
 settings (such as icons, themes, and fonts) in desktop environments or
@@ -228,9 +226,7 @@ window managers, that don't provide Qt integration by themselves.")
                             "/include/qt5/QtXkbCommonSupport/"
                             #$(package-version qtbase-5)))))
       (native-inputs
-       `(("cmake-shared" ,cmake-shared)
-         ("extra-cmake-modules" ,extra-cmake-modules)
-         ("pkg-config" ,pkg-config)))
+       (list cmake-shared extra-cmake-modules pkg-config))
       (inputs
        `(("qtbase" ,qtbase-5)
          ("qtwayland" ,qtwayland)
@@ -257,11 +253,9 @@ applications on Wayland.")
          (base32 "02dyqxjyxiqxrlz5g7v9ly8f095vs3iha39l75q6s8axs36y01lq"))))
     (native-inputs
      ;; Optional: lcov and cccc, both are for code coverage
-     `(("doxygen" ,doxygen)))
+     (list doxygen))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtscript" ,qtscript)))
+     (list qtbase-5 qtdeclarative qtscript))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -322,9 +316,9 @@ system, and the core design of Django is reused in Grantlee.")
     (build-system gnu-build-system)
     (outputs '("out" "debug"))
     (propagated-inputs
-     `(("mesa" ,mesa)
-       ;; Use which the package, not the function
-       ("which" ,(@ (gnu packages base) which))))
+     (list mesa
+           ;; Use which the package, not the function
+           (@ (gnu packages base) which)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("cups" ,cups)
@@ -371,14 +365,14 @@ system, and the core design of Django is reused in Grantlee.")
        ("xdg-utils" ,xdg-utils)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("gperf" ,gperf)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("vulkan-headers" ,vulkan-headers)
-       ("ruby" ,ruby)))
+     (list bison
+           flex
+           gperf
+           perl
+           pkg-config
+           python
+           vulkan-headers
+           ruby))
     (arguments
      `(#:configure-flags
        (let ((out (assoc-ref %outputs "out")))
@@ -709,11 +703,9 @@ developers using C++ or QML, a CSS & JavaScript like language.")
               (base32
                "0pjqrdmd1991x9h4rl8sf81pkd89hfd5h1a2gp3fjw96pk0w5hwb"))))
     (propagated-inputs `())
-    (native-inputs `(("perl" ,perl)))
+    (native-inputs (list perl))
     (inputs
-     `(("mesa" ,mesa)
-       ("qtbase" ,qtbase-5)
-       ("zlib" ,zlib)))
+     (list mesa qtbase-5 zlib))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -797,13 +789,13 @@ HostData=lib/qt5
                #t))))))
     (native-inputs `())
     (inputs
-     `(("jasper" ,jasper)
-       ("libmng" ,libmng)
-       ("libtiff" ,libtiff)
-       ("libwebp" ,libwebp)
-       ("mesa" ,mesa)
-       ("qtbase" ,qtbase-5)
-       ("zlib" ,zlib)))
+     (list jasper
+           libmng
+           libtiff
+           libwebp
+           mesa
+           qtbase-5
+           zlib))
     (synopsis "Additional Image Format plugins for Qt")
     (description "The QtImageFormats module contains plugins for adding
 support for MNG, TGA, TIFF and WBMP image formats.")))
@@ -821,10 +813,9 @@ support for MNG, TGA, TIFF and WBMP image formats.")))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
-    (native-inputs `(("perl" ,perl)))
+    (native-inputs (list perl))
     (inputs
-     `(("mesa" ,mesa)
-       ("qtbase" ,qtbase-5)))
+     (list mesa qtbase-5))
     (synopsis "Qt Extras for X11")
     (description "The QtX11Extras module includes the library to access X11
 from within Qt 5.")))
@@ -849,9 +840,8 @@ from within Qt 5.")))
                          (("qxmlquery") "# qxmlquery")
                          (("xmlpatterns ") "# xmlpatterns"))
                #t))))))
-    (native-inputs `(("perl" ,perl)
-                     ("qtdeclarative" ,qtdeclarative)))
-    (inputs `(("qtbase" ,qtbase-5)))
+    (native-inputs (list perl qtdeclarative))
+    (inputs (list qtbase-5))
     (synopsis "Qt XML patterns module")
     (description "The QtXmlPatterns module is a XQuery and XPath engine for
 XML and custom data models.  It contains programs such as xmlpatterns and
@@ -882,15 +872,14 @@ xmlpatternsvalidator.")))
                    (("\\$\\{_qt5Core_install_prefix\\}") out)))
                #t))))))
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("python-wrapper" ,python-wrapper)
-       ("qtsvg" ,qtsvg)
-       ("vulkan-headers" ,vulkan-headers)))
+     (list perl
+           pkg-config
+           python
+           python-wrapper
+           qtsvg
+           vulkan-headers))
     (inputs
-     `(("mesa" ,mesa)
-       ("qtbase" ,qtbase-5)))
+     (list mesa qtbase-5))
     (synopsis "Qt QML module (Quick 2)")
     (description "The Qt QML module provides a framework for developing
 applications and libraries with the QML language.  It defines and implements the
@@ -909,12 +898,9 @@ with JavaScript and C++.")))
               (base32
                "185zci61ip1wpjrygcw2m6v55lvninc0b8y2p3jh6qgpf5w35003"))))
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list perl pkg-config qtdeclarative))
     (inputs
-     `(("bluez" ,bluez)
-       ("qtbase" ,qtbase-5)))
+     (list bluez qtbase-5))
     (synopsis "Qt Connectivity module")
     (description "The Qt Connectivity modules provides modules for interacting
 with Bluetooth and NFC.")))
@@ -933,9 +919,8 @@ with Bluetooth and NFC.")))
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
     (native-inputs
-     `(("perl" ,perl)
-       ("qtdeclarative" ,qtdeclarative)))
-    (inputs `(("qtbase" ,qtbase-5)))
+     (list perl qtdeclarative))
+    (inputs (list qtbase-5))
     (synopsis "Qt Web Sockets module")
     (description "WebSocket is a web-based protocol designed to enable two-way
 communication between a client application and a remote host.  The Qt
@@ -965,9 +950,8 @@ consume data received from the server, or both.")))
                  (("QTest::newRow(\"twist\") << \"twist\"") "")) ;failing test
                #t))))))
     (native-inputs
-     `(("perl" ,perl)
-       ("qtdeclarative" ,qtdeclarative)))
-    (inputs `(("qtbase" ,qtbase-5)))
+     (list perl qtdeclarative))
+    (inputs (list qtbase-5))
     (synopsis "Qt Sensors module")
     (description "The Qt Sensors API provides access to sensor hardware via QML
 and C++ interfaces.  The Qt Sensors API also provides a motion gesture
@@ -1004,18 +988,15 @@ recognition API for devices.")))
                          (string-append "PREFIX=" out)))))))
        ((#:tests? _ #f) #f)))           ; TODO: Enable the tests
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list perl pkg-config python qtdeclarative))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("mesa" ,mesa)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ;; Gstreamer is needed for the mediaplayer plugin
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)))
+     (list alsa-lib
+           mesa
+           pulseaudio
+           qtbase-5
+           ;; Gstreamer is needed for the mediaplayer plugin
+           gstreamer
+           gst-plugins-base))
     (synopsis "Qt Multimedia module")
     (description "The Qt Multimedia module provides set of APIs to play and
 record media, and manage a collection of media content.  It also contains a
@@ -1052,10 +1033,7 @@ set of plugins for interacting with pulseaudio and GStreamer.")))
                (setenv "DBUS_FATAL_WARNINGS" "0")
                #t))))))
     (native-inputs
-     `(("glib" ,glib)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list glib perl pkg-config qtdeclarative))
     (inputs
      `(("fontconfig" ,fontconfig)
        ("freetype" ,freetype)
@@ -1083,10 +1061,9 @@ compositor libraries.")))
              (sha256
               (base32
                "17gp5qzg4wdg8qlxk2p3mh8x1vk33rf33wic3fy0cws193bmkiar"))))
-    (native-inputs `(("perl" ,perl)))
+    (native-inputs (list perl))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("eudev" ,eudev)))
+     (list qtbase-5 eudev))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:phases phases)
@@ -1128,9 +1105,7 @@ interacting with serial ports from within Qt.")))
                     (format #f "QStringLiteral(~s)" libcansocket.so)))
                  #t)))))))
     (inputs
-     `(("libsocketcan" ,libsocketcan)
-       ("qtbase" ,qtbase-5)
-       ("qtserialport" ,qtserialport)))
+     (list libsocketcan qtbase-5 qtserialport))
     (synopsis "Qt Serial Bus module")
     (description "The Qt Serial Bus API provides classes and functions to
 access the various industrial serial buses and protocols, such as CAN, ModBus,
@@ -1147,10 +1122,8 @@ and others.")))
               (base32
                "1h9y634phvvk557mhmf9z4lmxr41rl8x9mqy2lzp31mk8ffffzqj"))))
     (native-inputs
-     `(("perl" ,perl)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtwebsockets" ,qtwebsockets)))
-    (inputs `(("qtbase" ,qtbase-5)))
+     (list perl qtdeclarative qtwebsockets))
+    (inputs (list qtbase-5))
     (synopsis "Web communication library for Qt")
     (description "The Qt WebChannel module enables peer-to-peer communication
 between the host (QML/C++ application) and the client (HTML/JavaScript
@@ -1177,11 +1150,7 @@ popular web engines, Qt WebKit 2 and Qt WebEngine.")))
                #t))))))
     (native-inputs '())
     (inputs
-     `(("mesa" ,mesa)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtwebsockets" ,qtwebsockets)
-       ("zlib" ,zlib)))
+     (list mesa qtbase-5 qtdeclarative qtwebsockets zlib))
     (synopsis "QPA plugin for running an application via a browser using
 streamed WebGL commands")
     (description "Qt back end that uses WebGL for rendering. It allows Qt
@@ -1201,10 +1170,9 @@ OpenGL ES 2.0 and can be used in HTML5 canvas elements")))
               (base32
                "1rw1wibmbxlj6xc86qs3y8h42al1vczqiksyxzaylxs9gqb4d7xy"))))
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list qtbase-5 qtdeclarative))
     (synopsis "Display web content in a QML application")
     (description "Qt WebView provides a way to display web content in a QML
 application without necessarily including a full web browser stack by using
@@ -1227,15 +1195,9 @@ native APIs where it makes sense.")))
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
     (native-inputs
-     `(("perl" ,perl)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtquickcontrols" ,qtquickcontrols)
-       ("qtserialport" ,qtserialport)))
+     (list perl qtdeclarative qtquickcontrols qtserialport))
     (inputs
-     `(("icu4c" ,icu4c)
-       ("openssl" ,openssl)
-       ("qtbase" ,qtbase-5)
-       ("zlib" ,zlib)))
+     (list icu4c openssl qtbase-5 zlib))
     (synopsis "Qt Location and Positioning modules")
     (description "The Qt Location module provides an interface for location,
 positioning and geolocation plugins.")))
@@ -1254,12 +1216,9 @@ positioning and geolocation plugins.")))
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
     (native-inputs
-     `(("perl" ,perl)
-       ("qtdeclarative" ,qtdeclarative)
-       ("vulkan-headers" ,vulkan-headers)))
+     (list perl qtdeclarative vulkan-headers))
     (inputs
-     `(("mesa" ,mesa)
-       ("qtbase" ,qtbase-5)))
+     (list mesa qtbase-5))
     (synopsis "Qt Tools and Designer modules")
     (description "The Qt Tools module provides a set of applications to browse
 the documentation, translate applications, generate help files and other stuff
@@ -1277,10 +1236,9 @@ that helps in Qt development.")))
                "0gk74hk488k9ldacxbxcranr3arf8ifqg8kz9nm1rgdgd59p36d2"))
              (patches (search-patches "qtscript-disable-tests.patch"))))
     (native-inputs
-     `(("perl" ,perl)
-       ("qttools" ,qttools)))
+     (list perl qttools))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (synopsis "Qt Script module")
     (description "Qt provides support for application scripting with ECMAScript.
 The following guides and references cover aspects of programming with
@@ -1300,8 +1258,7 @@ ECMAScript and Qt.")))
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list qtbase-5 qtdeclarative))
     (synopsis "Qt Quick Controls and other Quick modules")
     (description "The QtScript module provides classes for making Qt
 applications scriptable.  This module provides a set of extra components that
@@ -1321,8 +1278,7 @@ can be used to build complete interfaces in Qt Quick.")))
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list qtbase-5 qtdeclarative))
     (synopsis "Qt Quick Controls 2 and other Quick 2 modules")
     (description "The Qt Quick Controls 2 module contains the Qt Labs Platform
 module that provides platform integration: native dialogs, menus and menu bars,
@@ -1343,8 +1299,7 @@ not available.")))
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list qtbase-5 qtdeclarative))
     (synopsis "Qt Graphical Effects module")
     (description "The Qt Graphical Effects module provides a set of QML types
 for adding visually impressive and configurable effects to user interfaces.
@@ -1364,8 +1319,7 @@ coloring, and many more.")))
               (base32
                "0p07bg93fdfn4gr2kv38qgnws5znhswajrxdfs8xc9l3i7vi2xn7"))))
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list perl pkg-config))
     (inputs
      `(("fontconfig" ,fontconfig)
        ("freetype" ,freetype)
@@ -1399,8 +1353,7 @@ and mobile applications targeting TV-like form factors.")))
                    (("scion") "#"))
                  #t))))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list qtbase-5 qtdeclarative))
     (synopsis "Qt SCXML module")
     (description "The Qt SCXML module provides functionality to create state
 machines from SCXML files.  This includes both dynamically creating state
@@ -1419,8 +1372,7 @@ also contains functionality to support data models and executable content.")))
               (base32
                "09rjx53519dfk4qj2gbn3vlxyriasyb747wpg1p11y7jkwqhs4l7"))))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list qtbase-5 qtdeclarative))
     (synopsis "Qt Purchasing module")
     (description "The Qt Purchasing module provides and in-app API for
 purchasing goods and services.")))
@@ -1439,8 +1391,7 @@ purchasing goods and services.")))
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list qtbase-5 qtdeclarative))
     (synopsis "Qt Charts module")
     (description "The Qt Charts module provides a set of easy to use chart
 components.  It uses the Qt Graphics View Framework, therefore charts can be
@@ -1463,8 +1414,7 @@ selecting one of the charts themes.")
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list qtbase-5 qtdeclarative))
     (synopsis "Qt Data Visualization module")
     (description "The Qt Data Visualization module provides a way to visualize
 data in 3D as bar, scatter, and surface graphs. It is especially useful for
@@ -1494,7 +1444,7 @@ customized by using themes or by adding custom items and labels to them.")
                  (("oauth1 ") "# oauth1 "))
                #t))))))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (synopsis "Qt Network Authorization module")
     (description "The Qt Network Authorization module provides an
 implementation of OAuth and OAuth2 authenticathon methods for Qt.")))
@@ -1525,8 +1475,7 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt.")))
                    "integration_multiprocess"))
                #t))))))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list qtbase-5 qtdeclarative))
     (synopsis "Qt Remote Objects module")
     (description "The Qt Remote Objects module is an @dfn{inter-process
 communication} (IPC) module developed for Qt.  The idea is to extend existing
@@ -1548,12 +1497,9 @@ processes or computers.")))
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (native-inputs
-     `(("perl" ,perl)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtxmlpatterns" ,qtxmlpatterns)))
+     (list perl qtdeclarative qtmultimedia qtxmlpatterns))
     (synopsis "Qt Speech module")
     (description "The Qt Speech module enables a Qt application to support
 accessibility features such as text-to-speech, which is useful for end-users
@@ -1580,11 +1526,9 @@ message.")))
     (arguments
      `(#:tests? #f))                    ;no test
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (inputs
-     `(("enchant" ,enchant)
-       ("qtbase" ,qtbase-5)))
+     (list enchant qtbase-5))
     (home-page "https://github.com/manisandro/qtspell")
     (synopsis "Spell checking for Qt text widgets")
     (description
@@ -2005,7 +1949,7 @@ and binaries removed, and adds modular support for using system libraries.")
                     "singleapplication.h" "singleapplication_p.h"))
                  #t))))))
       (inputs
-       `(("qtbase" ,qtbase-5)))
+       (list qtbase-5))
       (home-page "https://github.com/itay-grudev/SingleApplication")
       (synopsis "Replacement of QtSingleApplication for Qt5 and Qt6")
       (description
@@ -2033,10 +1977,9 @@ instances.")
           "1idaivamp1jvbbai9yzv471c62xbqxhaawccvskaizihkd0lq0jx"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python" ,python-wrapper)))
+     (list python-wrapper))
     (propagated-inputs
-     `(("python-toml" ,python-toml)
-       ("python-packaging" ,python-packaging)))
+     (list python-toml python-packaging))
     (home-page "https://www.riverbankcomputing.com/software/sip/intro")
     (synopsis "Python binding creator for C and C++ libraries")
     (description
@@ -2115,10 +2058,9 @@ module provides support functions to the automatically generated code.")
         (patches (search-patches "pyqt-configure.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("qtbase" ,qtbase-5))) ; for qmake
+     (list qtbase-5)) ; for qmake
     (propagated-inputs
-     `(("python-sip" ,python-sip)
-       ("python-pyqt5-sip" ,python-pyqt5-sip)))
+     (list python-sip python-pyqt5-sip))
     (inputs
      `(("python" ,python-wrapper)
        ("qtbase" ,qtbase-5)
@@ -2224,10 +2166,9 @@ contain over 620 classes.")
          "0d56ak71r14w4f9r96vaj34qcn2rbln3s6ildvvyc707fjkzwwjd"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("python" ,python)
-       ("python-sip" ,python-sip)
-       ;; qtbase is required for qmake
-       ("qtbase" ,qtbase-5)))
+     (list python python-sip
+           ;; qtbase is required for qmake
+           qtbase-5))
     (inputs
      `(("python" ,python-wrapper)
        ("python-sip" ,python-sip)
@@ -2312,7 +2253,7 @@ itself.")
        "0nh0054c54ji3sm6d268fccf0y5f613spswwgwqd3rnn816hnljl"))))
    (build-system python-build-system)
    (inputs
-    `(("python-sip" ,python-sip)))
+    (list python-sip))
    (home-page "https://www.riverbankcomputing.com/static/Docs/PyQt-builder/")
    (synopsis "PEP 517 compliant PyQt build system")
    (description "PyQt-builder is a tool for generating Python bindings for C++
@@ -2379,7 +2320,7 @@ top of the PyQt bindings for Qt.  PyQt-builder is used to build PyQt itself.")
                  (("\\$\\$\\[QT_HOST_DATA\\]")
                  (string-append out "/lib/qt$${QT_MAJOR_VERSION}")))
                (invoke "qmake")))))))
-    (native-inputs `(("qtbase" ,qtbase-5)))
+    (native-inputs (list qtbase-5))
     (home-page "https://www.riverbankcomputing.co.uk/software/qscintilla/intro")
     (synopsis "Qt port of the Scintilla C++ editor control")
     (description "QScintilla is a port to Qt of Neil Hodgson's Scintilla C++
@@ -2474,10 +2415,9 @@ This package provides the Python bindings.")))
           "0h4wgngn2yl35hapbjs24amkjfbzsvnna4ixfhn87snjnq5lmjbc"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (arguments
      `(#:tests? #f ; No tests included
        #:phases
@@ -2587,7 +2527,7 @@ securely.  It will not store any data unencrypted unless explicitly requested.")
                          '("qtlockedfile" "qtpropertybrowser" "qtservice"
                            "qtsingleapplication" "qtsoap")))))))
       (inputs
-       `(("qtbase" ,qtbase-5)))
+       (list qtbase-5))
       (synopsis "Collection of Qt extensions")
       (description "QtSolutions is a set of components extending Qt.
 @itemize
@@ -2620,9 +2560,7 @@ that can be only started once per user.
          (base32 "0hf0mpca248xlqn7xnzkfj8drf19gdyg5syzklvq8pibxiixwxj0"))))
   (build-system gnu-build-system)
   (inputs
-   `(("qtbase" ,qtbase-5)
-     ("qtsvg" ,qtsvg)
-     ("qttools" ,qttools)))
+   (list qtbase-5 qtsvg qttools))
   (arguments
    `(#:phases
      (modify-phases %standard-phases
@@ -2690,13 +2628,13 @@ different kinds of sliders, and much more.")
                                  "qtwebkit-fix-building-with-python-3.9.patch"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("perl" ,perl)
-       ("python" ,python)
-       ("ruby" ,ruby)
-       ("bison" ,bison)
-       ("flex" ,flex)
-       ("gperf" ,gperf)
-       ("pkg-config" ,pkg-config)))
+     (list perl
+           python
+           ruby
+           bison
+           flex
+           gperf
+           pkg-config))
     (inputs
      `(("icu" ,icu4c)
        ("glib" ,glib)
@@ -2770,10 +2708,9 @@ time Web content can be enhanced with native controls.")
          "09fz6v8rp28997f235yaifj8p4vvsyv45knc1iivgdvx7msgcd0m"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("qttools" ,qttools)))
+     (list qttools))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)))
+     (list qtbase-5 qtdeclarative))
     (home-page "https://filcuc.github.io/DOtherSide/index.html")
     (synopsis "C language library for creating bindings for the Qt QML language")
     (description
@@ -2808,9 +2745,9 @@ a binding language:
       (build-system cmake-build-system)
       (arguments `(#:tests? #f)) ; There are no tests
       (native-inputs
-       `(("qttools" ,qttools)))
+       (list qttools))
       (inputs
-       `(("qtbase" ,qtbase-5)))
+       (list qtbase-5))
       (home-page "https://gitlab.com/mattia.basaglia/Qt-Color-Widgets")
       (synopsis "Color management widgets")
       (description "QtColorWidgets provides a Qt color dialog that is more
@@ -2839,7 +2776,7 @@ color-related widgets.")
            (sha256
             (base32 "0vp8lpxvd1nlp4liqrlvslpqrgfn0wpiwizzdsjbj22zzb8vxikc"))))))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -2884,12 +2821,12 @@ color-related widgets.")
                 "060ljj1nzyp4zfz2vasbv2i7gs5rfkkjwxxbisd0fdw01d5m01mk"))))
     (build-system cmake-build-system)
     (inputs
-     `(("clang-toolchain" ,clang-toolchain)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("python-wrapper" ,python-wrapper)
-       ("qtbase" ,qtbase-5)
-       ("qtxmlpatterns" ,qtxmlpatterns)))
+     (list clang-toolchain
+           libxml2
+           libxslt
+           python-wrapper
+           qtbase-5
+           qtxmlpatterns))
     (arguments
      `(#:tests? #f
        ;; FIXME: Building tests fails
@@ -2935,25 +2872,25 @@ color-related widgets.")
     (source (package-source python-shiboken-2))
     (build-system cmake-build-system)
     (inputs
-     `(("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("clang-toolchain" ,clang-toolchain)
-       ("qtbase" ,qtbase-5)
-       ("qtdatavis3d" ,qtdatavis3d)
-       ("qtlocation" ,qtlocation)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtquickcontrols" ,qtquickcontrols)
-       ("qtscript" ,qtscript)
-       ("qtscxml" ,qtscxml)
-       ("qtsensors" ,qtsensors)
-       ("qtspeech" ,qtspeech)
-       ("qtsvg" ,qtsvg)
-       ("qtwebchannel" ,qtwebchannel)
-       ("qtwebsockets" ,qtwebsockets)
-       ("qtx11extras" ,qtx11extras)
-       ("qtxmlpatterns" ,qtxmlpatterns)))
+     (list libxml2
+           libxslt
+           clang-toolchain
+           qtbase-5
+           qtdatavis3d
+           qtlocation
+           qtmultimedia
+           qtquickcontrols
+           qtscript
+           qtscxml
+           qtsensors
+           qtspeech
+           qtsvg
+           qtwebchannel
+           qtwebsockets
+           qtx11extras
+           qtxmlpatterns))
     (propagated-inputs
-     `(("python-shiboken-2" ,python-shiboken-2)))
+     (list python-shiboken-2))
     (native-inputs
      `(("cmake" ,cmake-minimal)
        ("python" ,python-wrapper)
@@ -3004,9 +2941,7 @@ generate Python bindings for your C or C++ code.")
     (source (package-source python-shiboken-2))
     (build-system cmake-build-system)
     (inputs
-     `(("python-pyside-2" ,python-pyside-2)
-       ("python-shiboken-2" ,python-shiboken-2)
-       ("qtbase" ,qtbase-5)))
+     (list python-pyside-2 python-shiboken-2 qtbase-5))
     (native-inputs
      `(("python" ,python-wrapper)))
     (arguments
@@ -3050,10 +2985,9 @@ generate Python bindings for your C or C++ code.")
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke (cons "qmake" make-flags)))))))
     (native-inputs
-     `(("qtbase" ,qtbase-5)
-       ("qttools" ,qttools)))
+     (list qtbase-5 qttools))
     (inputs
-     `(("glu" ,glu)))
+     (list glu))
     (home-page "http://libqglviewer.com")
     (synopsis "Qt-based C++ library for the creation of OpenGL 3D viewers")
     (description
@@ -3090,11 +3024,9 @@ being fully customizable and easy to extend.")
     (build-system cmake-build-system)
     (arguments '(#:tests? #f)) ; There are no tests
     (native-inputs
-      `(("pkg-config" ,pkg-config)
-        ("cmake" ,cmake)))
+      (list pkg-config cmake))
     (inputs
-      `(("qtbase" ,qtbase-5)
-        ("coin3D" ,coin3D-4)))
+      (list qtbase-5 coin3D-4))
     (home-page "https://github.com/coin3d/soqt")
     (synopsis "Qt GUI component toolkit library for Coin")
     (description "SoQt is a Qt GUI component toolkit library for Coin.  It is
diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm
index 661443e0c3..d0a5ca494b 100644
--- a/gnu/packages/racket.scm
+++ b/gnu/packages/racket.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -128,7 +129,7 @@
 (define-public racket-minimal
   (package
     (name "racket-minimal")
-    (version "8.2")            ; note: remember to also update racket!
+    (version "8.3")            ; note: remember to also update racket!
     (source
      (origin
        (method git-fetch)
@@ -136,11 +137,9 @@
              (url "https://github.com/racket/racket")
              (commit (string-append "v" version))))
        (sha256
-        "061bhiyjlvazph0dj9i3i3x2q5z53rp8h5cjwg3frjimkr45lncn")
+        "1i1jnv1wb0kanfg47hniafx2vhwjc33qqx66lq7wkf5hbmgsyws3")
        (file-name (git-file-name name version))
-       (patches (search-patches "racket-minimal-sh-via-rktio.patch"
-                                ;; Remove the following in version 8.3:
-                                "racket-minimal-backport-1629887.patch"))
+       (patches (search-patches "racket-minimal-sh-via-rktio.patch"))
        (modules '((guix build utils)))
        (snippet
         (with-imported-modules '((guix build utils))
@@ -264,10 +263,10 @@ DrRacket IDE, are not included.")
      (inherit racket-minimal)
      (name "racket-minimal-bc-3m")
      (inputs
-      `(("libffi" ,libffi) ;; <- only for BC variants
-        ,@(fold alist-delete
-                (package-inputs racket-minimal)
-                '("zlib" "zlib:static" "lz4" "lz4:static"))))
+      (modify-inputs (package-inputs racket-minimal)
+        (delete "zlib" "zlib:static" "lz4" "lz4:static")
+        (prepend libffi ;; <- only for BC variants
+                 )))
      (native-inputs
       `(("libtool" ,libtool)
         ("racket" ,(if (%current-target-system)
@@ -427,7 +426,7 @@ Chez Scheme.")
                  %installer-mirrors))
        (sha256
         (base32
-         "10sgzsraxzxp1k2y2wvz8rcjwvhbcd6k72l9lyqr34yazlwfdz26"))
+         "0jdr0y7scvv2a3sq456ifrgq0yfsbiwavdf2m86zmrapp481mby4"))
        (snippet
         #~(begin
             (use-modules (guix build utils)
@@ -530,7 +529,7 @@ Chez Scheme.")
          (delete 'install))
        ;; we still don't have these:
        #:tests? #f))
-    (synopsis "A programmable programming language in the Scheme family")
+    (synopsis "Programmable programming language in the Scheme family")
     (description
      "Racket is a general-purpose programming language in the Scheme family,
 with a large set of libraries and a compiler based on Chez Scheme.  Racket is
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index e9e8e08aa5..b40332aee8 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -52,6 +52,7 @@
   #:use-module (gnu packages geo)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages golang)
@@ -143,11 +144,9 @@ useful in modems implemented with @dfn{digital signal processing} (DSP).")
               (base32 "1n6dbg13q8ga5qhg1yiszwly4jj0rxqr6f1xwm9waaly5z493xsd"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (inputs
-     `(("fftwf" ,fftwf)
-       ("libfec" ,libfec)))
+     (list fftwf libfec))
     (arguments
      `(;; For reproducibility, disable use of SSE3, SSE4.1, etc.
        #:configure-flags '("--enable-simdoverride")
@@ -185,9 +184,9 @@ mathematical operations, and much more.")
          "0lmvsnb4xw4hmz6zs0z5ilsah5hjz29g1s0050n59fllskqr3b8k"))))
     (build-system cmake-build-system)
     (inputs
-     `(("libusb" ,libusb)))
+     (list libusb))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:configure-flags '("-DDETACH_KERNEL_DRIVER=ON"
                            "-DINSTALL_UDEV_RULES=ON")
@@ -236,9 +235,9 @@ this package.  E.g.: @code{(udev-rules-service 'rtl-sdr rtl-sdr)}")
         (base32 "0n699i5a9fzzhf80fcjlqq6p2a013rzlwmwv4nmwfafy6c8cr924"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libusb" ,libusb)))
+     (list libusb))
     (arguments
      '(#:configure-flags '("-DINSTALL_UDEV_RULES=ON")
        #:tests? #f ; No tests
@@ -283,8 +282,7 @@ with this package.  E.g.: @code{(udev-rules-service 'airspyhf airspyhf)}")
         (base32 "1dy25zxk7wmg7ik82dx7h3bbbynvalbz1dxsl7kgm3374yxhnixv"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("python" ,python)
-       ("swig" ,swig)))
+     (list python swig))
     (native-search-paths
      (list (search-path-specification
             (variable "SOAPY_SDR_PLUGIN_PATH")
@@ -312,8 +310,7 @@ defined radio hardware devices with a common API.")
         (base32 "04krqinglgkjvx7klqik6yn8rb4mlpwzb6zvnmvm7szqci2agggz"))))
     (build-system cmake-build-system)
     (inputs
-     `(("airspyhf" ,airspyhf)
-       ("soapysdr" ,soapysdr)))
+     (list airspyhf soapysdr))
     (arguments
      `(#:tests? #f))  ; No test suite
     (home-page "https://github.com/pothosware/SoapyAirspyHF/wiki")
@@ -341,8 +338,7 @@ SoapySDR library.")
           (base32 "0l5890a240i1fan88jjdxaqswk3as410nlrv12a698fy9npqh4w4"))))
       (build-system cmake-build-system)
       (inputs
-       `(("hackrf" ,hackrf)
-         ("soapysdr" ,soapysdr)))
+       (list hackrf soapysdr))
       (arguments
        `(#:tests? #f))  ; No test suite
       (home-page "https://github.com/pothosware/SoapyHackRF/wiki")
@@ -366,8 +362,7 @@ SoapySDR library.")
         (base32 "1dlnryj6k20pk7w7v4v13y099r7ikhvlzbgzgphmi5cxkdv0shrd"))))
     (build-system cmake-build-system)
     (inputs
-     `(("rtl-sdr" ,rtl-sdr)
-       ("soapysdr" ,soapysdr)))
+     (list rtl-sdr soapysdr))
     (arguments
      `(#:tests? #f))  ; No test suite
     (home-page "https://github.com/pothosware/SoapyRTLSDR/wiki")
@@ -379,19 +374,17 @@ SoapySDR library.")
 (define-public chirp
   (package
     (name "chirp")
-    (version "20201121")
+    (version "20211016")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://trac.chirp.danplanet.com/chirp_daily/daily-"
                            version "/chirp-daily-" version ".tar.gz"))
        (sha256
-        (base32 "092jryb1jn9li6zj243awv6piz1lhghqsm4phrz7j0rgqf76dy4n"))))
+        (base32 "13xzqnhvnw6yipv4izkq0s9ykyl9pc5ifpr1ii8xfp28ch706qyw"))))
     (build-system python-build-system)
     (inputs
-     `(("python2-libxml2" ,python2-libxml2)
-       ("python2-pygtk" ,python2-pygtk)
-       ("python2-pyserial" ,python2-pyserial)))
+     (list python2-libxml2 python2-pygtk python2-pyserial))
     (arguments
      `(#:python ,python-2))
     (home-page "https://chirp.danplanet.com")
@@ -420,8 +413,7 @@ memory contents between them.")
           (base32 "0i7vkjjrq392gs9qaibr7j3v4hijqqg8458dn21dwh16ncrvr9bp"))))
       (build-system cmake-build-system)
       (inputs
-       `(("libpng" ,libpng)
-         ("libsndfile" ,libsndfile)))
+       (list libpng libsndfile))
       (arguments
        `(#:tests? #f))  ; no tests
       (home-page "https://github.com/Xerbo/aptdec")
@@ -464,12 +456,9 @@ and a dedicated receiver.")
                 "esac\nAC_SUBST([ICONV], [\"-liconv\"])"))
              #t)))))
     (inputs
-     `(("libiconv" ,libiconv)
-       ("libsndfile" ,libsndfile)
-       ("liquid-dsp" ,liquid-dsp)))
+     (list libiconv libsndfile liquid-dsp))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (home-page "https://github.com/windytan/redsea")
     (synopsis "Lightweight RDS to JSON decoder")
     (description "redsea is a lightweight command-line @dfn{FM Radio Data
@@ -535,6 +524,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
        ("python-pycairo" ,python-pycairo)
        ("python-pygobject" ,python-pygobject)
        ("python-pyqt" ,python-pyqt-without-qtwebkit)
+       ("python-pyqtgraph" ,python-pyqtgraph)
        ("python-pyyaml" ,python-pyyaml)
        ("qtbase" ,qtbase-5)
        ("qwt" ,qwt)
@@ -596,7 +586,10 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
                            '(;; https://github.com/gnuradio/gnuradio/issues/3871
                              "qa_header_payload_demux"
                              ;; https://github.com/gnuradio/gnuradio/issues/4348
-                             "qa_packet_headerparser_b")
+                             "qa_packet_headerparser_b"
+                             ;; qa_rotator_cc sometimes fails, it looks like
+                             ;; a floating point number precision issue.
+                             "qa_rotator_cc")
                            "|"))))
          (add-after 'install 'wrap-python
            (assoc-ref python:%standard-phases 'wrap))
@@ -655,26 +648,22 @@ environment.")
           (base32 "1pk5gnyznfyy510lbqzg9ijcb1fnhmn547n24aiqyrxd6i6vv1ki"))))
       (build-system cmake-build-system)
       (native-inputs
-       `(("doxygen" ,doxygen)
-         ("pkg-config" ,pkg-config)
-         ("pybind11" ,pybind11)
-         ("python-mako" ,python-mako)
-         ("python-six" ,python-six)))
+       (list doxygen pkg-config pybind11 python-mako python-six))
       (inputs
-       `(("airspyhf" ,airspyhf)
-         ("boost" ,boost)
-         ("fftwf" ,fftwf)
-         ("gmp" ,gmp)
-         ("gnuradio" ,gnuradio)
-         ("hackrf" ,hackrf)
-         ("libsndfile" ,libsndfile)
-         ("log4cpp" ,log4cpp)
-         ("python" ,python)
-         ("python-numpy" ,python-numpy)
-         ("python-pyqt" ,python-pyqt)
-         ("rtl-sdr" ,rtl-sdr)
-         ("soapysdr" ,soapysdr)
-         ("volk" ,volk)))
+       (list airspyhf
+             boost
+             fftwf
+             gmp
+             gnuradio
+             hackrf
+             libsndfile
+             log4cpp
+             python
+             python-numpy
+             python-pyqt
+             rtl-sdr
+             soapysdr
+             volk))
       (arguments
        `(#:modules ((guix build cmake-build-system)
                     ((guix build python-build-system) #:prefix python:)
@@ -718,7 +707,7 @@ to access different radio hardware.")
                                         ;; TODO: Add newunicodechar.
                                         texlive-latex-graphics)))))
     (inputs
-     `(("fftwf" ,fftwf)))
+     (list fftwf))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -752,20 +741,20 @@ primitives for SDR (Software Defined Radio).")
           (base32 "12p193ngcs65nd3lynry119nhv40mikamqkw37wdln7lawx3nw7p"))))
       (build-system cmake-build-system)
       (native-inputs
-       `(("doxygen" ,doxygen)
-         ("pkg-config" ,pkg-config)
-         ("pybind11" ,pybind11)
-         ("python" ,python)
-         ("python-numpy" ,python-numpy)
-         ("python-six" ,python-six)))
+       (list doxygen
+             pkg-config
+             pybind11
+             python
+             python-numpy
+             python-six))
       (inputs
-       `(("boost" ,boost)
-         ("fftwf" ,fftwf)
-         ("gmp" ,gmp)
-         ("gnuradio" ,gnuradio)
-         ("libosmo-dsp" ,libosmo-dsp)
-         ("log4cpp" ,log4cpp)
-         ("volk" ,volk)))
+       (list boost
+             fftwf
+             gmp
+             gnuradio
+             libosmo-dsp
+             log4cpp
+             volk))
       (synopsis "GNU Radio block to correct IQ imbalance")
       (description
      "This is a GNU Radio block to correct IQ imbalance in quadrature
@@ -794,21 +783,19 @@ to the fix block above.
         (base32 "01p9cnwjxas3pkqr9m5fnrgm45cji0sfdqqa51hzy7izx9vgzaf8"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("pybind11" ,pybind11)
-       ("python-six" ,python-six)))
+     (list pkg-config pybind11 python-six))
     (inputs
-     `(("boost" ,boost)
-       ("gmp" ,gmp)
-       ("gnuradio" ,gnuradio)
-       ("log4cpp" ,log4cpp)
-       ("python" ,python)
-       ("python-construct" ,python-construct)
-       ("python-numpy" ,python-numpy)
-       ("python-pyaml" ,python-pyaml)
-       ("python-pyzmq" ,python-pyzmq)
-       ("python-requests" ,python-requests)
-       ("volk" ,volk)))
+     (list boost
+           gmp
+           gnuradio
+           log4cpp
+           python
+           python-construct
+           python-numpy
+           python-pyaml
+           python-pyzmq
+           python-requests
+           volk))
     (arguments
      `(#:modules ((guix build cmake-build-system)
                   ((guix build python-build-system) #:prefix python:)
@@ -835,35 +822,35 @@ satellites.")
 (define-public gqrx
   (package
     (name "gqrx")
-    (version "2.14.4")
+    (version "2.15")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/csete/gqrx")
+             (url "https://github.com/gqrx-sdr/gqrx")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0m4ncydihz4n4i80c252vk3c5v672yab1jv85n6ndn7a92xv3ilq"))))
+        (base32 "1a81wrsl3bj2g3dyd21mka45sfhygbncpkp29ggfvrzffvj1axlv"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("boost" ,boost)
-       ("fftwf" ,fftwf)
-       ("gmp" ,gmp)
-       ("gnuradio" ,gnuradio)
-       ("gr-iqbal" ,gr-iqbal)
-       ("gr-osmosdr" ,gr-osmosdr)
-       ("jack" ,jack-1)
-       ("libsndfile" ,libsndfile)
-       ("log4cpp" ,log4cpp)
-       ("portaudio" ,portaudio)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("volk" ,volk)))
+     (list alsa-lib
+           boost
+           fftwf
+           gmp
+           gnuradio
+           gr-iqbal
+           gr-osmosdr
+           jack-1
+           libsndfile
+           log4cpp
+           portaudio
+           pulseaudio
+           qtbase-5
+           qtsvg
+           volk))
     (arguments
      `(#:tests? #f))                    ; no tests
     (synopsis "Software defined radio receiver")
@@ -887,24 +874,21 @@ using GNU Radio and the Qt GUI toolkit.")
         (base32 "0y43241s3p8qzn7x6x28v5v2bf934riznj14bb7m6k6vgd849qzl"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake gettext-minimal pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("fltk" ,fltk)
-       ("eudev" ,eudev)
-       ("hamlib" ,hamlib)
-       ("libpng" ,libpng)
-       ("libsamplerate" ,libsamplerate)
-       ("libusb" ,libusb)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxfixes" ,libxfixes)
-       ("libxft" ,libxft)
-       ("portaudio" ,portaudio)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib
+           fltk
+           eudev
+           hamlib
+           libpng
+           libsamplerate
+           libusb
+           libx11
+           libxext
+           libxfixes
+           libxft
+           portaudio
+           pulseaudio))
     (synopsis "Software modem for amateur radio use")
     (description
      "Fldigi is a software modem for amateur radio use.  It is a sound card
@@ -929,15 +913,9 @@ hardware.")
         (base32 "0vxn1wy5b2zfq20k93rfgq34m1nd3mxd74h8l98f90d85fhcqggy"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
-     `(("fltk" ,fltk)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxfixes" ,libxfixes)
-       ("libxft" ,libxft)))
+     (list fltk libx11 libxext libxfixes libxft))
     (synopsis "Radio transceiver control program")
     (description
      "Flrig is a transceiver control program for amateur radio use.
@@ -949,7 +927,7 @@ or USB connection.")
 (define-public flamp
   (package
     (name "flamp")
-    (version "2.2.05")
+    (version "2.2.07")
     (source
      (origin
        (method git-fetch)
@@ -958,18 +936,12 @@ or USB connection.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ll2wbhyh1sb4iqsypwrd118mrgw3vbsdbz442qhk4r6l8kjzblq"))))
+        (base32 "0rygd5w04nspxdj8qj81gpb3mgijvlmii74s1f4mihqs5kb8nwh6"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
-     `(("fltk" ,fltk)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxfixes" ,libxfixes)
-       ("libxft" ,libxft)))
+     (list fltk libx11 libxext libxfixes libxft))
     (synopsis "Tool for AMP file transfer")
     (description
      "FLAMP is a program for transferring files by radio waves using AMP
@@ -992,15 +964,9 @@ or USB connection.")
         (base32 "0xkhr82smfr7wpb9xl05wf7bz3vi2mr4xkcr2s8v6mblhgsdhqwg"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
-     `(("fltk" ,fltk)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxfixes" ,libxfixes)
-       ("libxft" ,libxft)))
+     (list fltk libx11 libxext libxfixes libxft))
     (synopsis "File encapsulation program")
     (description
      "Flwrap is a software utility for amateur radio use.  Its purpose is to
@@ -1047,11 +1013,9 @@ for correctness.")
              #t)))
        #:tests? #f)) ; no test suite
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("fftw" ,fftw)
-       ("fftwf" ,fftwf)
-       ("libusb" ,libusb)))
+     (list fftw fftwf libusb))
     (home-page "https://greatscottgadgets.com/hackrf/")
     (synopsis "User-space library and utilities for HackRF SDR")
     (description
@@ -1065,7 +1029,7 @@ you must extend 'udev-service-type' with this package.  E.g.:
 (define-public hamlib
   (package
     (name "hamlib")
-    (version "4.2")
+    (version "4.3.1")
     (source
      (origin
        (method url-fetch)
@@ -1073,20 +1037,17 @@ you must extend 'udev-service-type' with this package.  E.g.:
              "https://github.com/Hamlib/Hamlib/releases/download/"
              version "/hamlib-" version ".tar.gz"))
        (sha256
-        (base32 "1m8gb20i8ga6ndnnw187ry1h4z8wx27v1hl7c610r6ky60pv4072"))))
+        (base32 "0c578m04zs8dllbd4cv6nxb44y0dn8kiapzkih84ycfjzmnkhdrl"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("lua" ,lua)
-       ("pkg-config" ,pkg-config)
-       ("python-wrapper" ,python-wrapper)
-       ("swig" ,swig)
-       ("tcl" ,tcl)))
+     (list doxygen
+           lua
+           pkg-config
+           python-wrapper
+           swig
+           tcl))
     (inputs
-     `(("gd" ,gd)
-       ("libusb" ,libusb)
-       ("libxml2" ,libxml2)
-       ("readline" ,readline)))
+     (list gd libusb libxml2 readline))
     (arguments
      `(#:configure-flags '("--disable-static"
                            "--with-lua-binding"
@@ -1107,7 +1068,7 @@ users.")
   (package
     (inherit hamlib)
     (name "wsjtx-hamlib")
-    (version "2.3.1")
+    (version "2.5.2")
     (source
      (origin
        (method git-fetch)
@@ -1116,7 +1077,7 @@ users.")
              (commit (string-append "wsjtx-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0m4yzjcqs7a1w4lghyyckpkiy96jxdjijddxarqr3a37cl2rz23j"))))
+        (base32 "1bgf7bz2280739a7ip7lvpns0i7x6svryxfmsp32cff2dr146lz3"))))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -1150,17 +1111,14 @@ users.")
      '(#:configure-flags
        (list "--enable-fldigi-xmlrpc")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake perl pkg-config))
     (inputs
-     `(("cmocka" ,cmocka)
-       ("glib" ,glib)
-       ("hamlib" ,hamlib)
-       ("libusb" ,libusb) ;`Requires.private: libusb-1.0` in hamlib pkg-config
-       ("ncurses" ,ncurses)
-       ("xmlrpc-c" ,xmlrpc-c)))
+     (list cmocka
+           glib
+           hamlib
+           libusb ;`Requires.private: libusb-1.0` in hamlib pkg-config
+           ncurses
+           xmlrpc-c))
     (home-page "https://tlf.github.io/")
     (synopsis "Amateur radio contest logging for the terminal")
     (description "TLF is a @acronym{Text User Interface, TUI} amateur radio
@@ -1192,7 +1150,7 @@ instances over the network, and general QSO and DXpedition logging.")
 (define-public wsjtx
   (package
     (name "wsjtx")
-    (version "2.3.1")
+    (version "2.5.2")
     (source
      (origin
        (method git-fetch)
@@ -1201,14 +1159,10 @@ instances over the network, and general QSO and DXpedition logging.")
              (commit (string-append "wsjtx-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0mdr4l7zii08615yn7z91spnvnqm5i9390bra9lz3aqyxrsiim91"))))
+        (base32 "01346f2x3jc0gbzdi7ihzr9rxibnbzn31ix0879qfavrv8l31k1s"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("asciidoc" ,asciidoc)
-       ("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)
-       ("ruby-asciidoctor" ,ruby-asciidoctor)))
+     (list asciidoc gfortran pkg-config qttools ruby-asciidoctor))
     (inputs
      `(("boost" ,boost)
        ("fftw" ,fftw)
@@ -1219,20 +1173,7 @@ instances over the network, and general QSO and DXpedition logging.")
        ("qtmultimedia" ,qtmultimedia)
        ("qtserialport" ,qtserialport)))
     (arguments
-     `(#:tests? #f ; No test suite
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'work-around-runtime-bug
-           (lambda _
-             ;; Some of the programs in this package fail to find symbols
-             ;; in libm at runtime. Adding libm manually at the end of the
-             ;; library lists when linking the programs seems to help.
-             ;; TODO: find exactly what is wrong in the way the programs
-             ;; are built.
-             (substitute* "CMakeLists.txt"
-               (("target_link_libraries \\((.*)\\)" all libs)
-                (string-append "target_link_libraries (" libs " m)")))
-             #t)))))
+     `(#:tests? #f)) ; No test suite
     (synopsis "Weak-signal ham radio communication program")
     (description
      "WSJT-X implements communication protocols or modes called FT4, FT8,
@@ -1263,11 +1204,7 @@ weak-signal conditions.")
            #t))))
     (build-system qt-build-system)
     (native-inputs
-     `(("asciidoc" ,asciidoc)
-       ("gfortran" ,gfortran)
-       ("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)
-       ("ruby-asciidoctor" ,ruby-asciidoctor)))
+     (list asciidoc gfortran pkg-config qttools ruby-asciidoctor))
     (inputs
      `(("boost" ,boost)
        ("fftw" ,fftw)
@@ -1287,19 +1224,7 @@ weak-signal conditions.")
                (("DESTINATION /usr/share")
                 (string-append "DESTINATION "
                                (assoc-ref outputs "out")
-                               "/share")))
-             #t))
-         (add-after 'fix-paths 'work-around-runtime-bug
-           (lambda _
-             ;; Some of the programs in this package fail to find symbols
-             ;; in libm at runtime. Adding libm manually at the end of the
-             ;; library lists when linking the programs seems to help.
-             ;; TODO: find exactly what is wrong in the way the programs
-             ;; are built.
-             (substitute* "CMakeLists.txt"
-               (("target_link_libraries \\((.*)\\)" all libs)
-                (string-append "target_link_libraries (" libs " m)")))
-             #t))
+                               "/share")))))
          (add-after 'unpack 'fix-hamlib
            (lambda _
              (substitute* "CMake/Modules/Findhamlib.cmake"
@@ -1309,8 +1234,7 @@ weak-signal conditions.")
   set (ENV{PKG_CONFIG_PATH} \"${__pc_path}\")"))
              (substitute* "HamlibTransceiver.hpp"
                (("#ifdef JS8_USE_LEGACY_HAMLIB")
-                "#if 1"))
-             #t)))))
+                "#if 1")))))))
     (synopsis "Weak-signal ham radio communication program")
     (description
      "JS8Call is a software using the JS8 digital mode (a derivative of the FT8
@@ -1322,42 +1246,19 @@ operators.")
 (define-public xnec2c
   (package
     (name "xnec2c")
-    (version "4.1.1")
+    (version "4.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://www.5b4az.org/pkg/nec2/xnec2c/xnec2c-"
                            version ".tar.bz2"))
        (sha256
-        (base32 "1myvlkfybb2ha8l0h96ca3iz206zzy9z5iizm0sbab2zzp78n1r9"))))
+        (base32 "0jprahww6jvwq616lkq80sac166ffy0fp83gr5kvjc9k4pcls00n"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("gtk+" ,gtk+)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-makefile
-           (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* '("Makefile.am" "Makefile.in")
-               ;; The DESTDIR variable does not get replaced the prefix
-               ;; in the final Makefile, so let's do here.
-               (("\\$\\(DESTDIR\\)/usr")
-                (assoc-ref outputs "out")))
-             #t))
-         (add-after 'fix-makefile 'fix-paths
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; Increase the max length of the path to the glade file,
-             ;; so that the '/gnu/store/...' path can fit in.
-             (substitute* '("src/shared.c" "src/shared.h")
-               (("char xnec2c_glade\\[64\\];")
-                "char xnec2c_glade[256];"))
-             ;; Fix hard coded references to '/usr/...'.
-             (substitute* '("src/geom_edit.c" "src/main.c")
-               (("\"/usr")
-                (string-append "\"" (assoc-ref outputs "out"))))
-             #t)))))
+     (list gtk+))
     (synopsis "Antenna modeling software")
     (description
      "Xnec2c is a GTK3-based graphical version of nec2c, a translation to the
@@ -1371,7 +1272,7 @@ gain and standing wave ratio.")
 (define-public dump1090
   (package
     (name "dump1090")
-    (version "5.0")
+    (version "6.1")
     (source
      (origin
        (method git-fetch)
@@ -1380,15 +1281,12 @@ gain and standing wave ratio.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1fckfcgypmplzl1lidd04jxiabczlfx9mv21d6rbsfknghsjpn03"))))
+        (base32 "13ssp2c3s18rszpmm3rpvicqvgvfiirsjf294m6r1sf3ji7ygd9q"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("hackrf" ,hackrf)
-       ("libusb" ,libusb)
-       ("ncurses" ,ncurses)
-       ("rtl-sdr" ,rtl-sdr)))
+     (list hackrf libusb ncurses rtl-sdr))
     (arguments
      `(#:test-target "test"
        #:make-flags
@@ -1401,8 +1299,7 @@ gain and standing wave ratio.")
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
                (install-file "dump1090" bin)
-               (install-file "view1090" bin)
-               #t))))))
+               (install-file "view1090" bin)))))))
     (synopsis "Mode S decoder for rtl-sdr devices")
     (description
      "Dump1090 is a Mode S decoder specifically designed for rtl-sdr devices.
@@ -1414,7 +1311,7 @@ their position, altitude, speed, etc.")
 (define-public rtl-433
   (package
     (name "rtl-433")
-    (version "21.05")
+    (version "21.12")
     (source
      (origin
        (method git-fetch)
@@ -1423,15 +1320,12 @@ their position, altitude, speed, etc.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1f60nvahsplv1yszacc49mlbcnacgs1nwhdf8y9srmzg08xrfnfk"))))
+        (base32 "0ygxs35zvgnamhqdwk1akcwagcirzpi4wndzgf9d23faiv4cm01a"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libusb" ,libusb)
-       ("openssl" ,openssl)
-       ("rtl-sdr" ,rtl-sdr)
-       ("soapysdr" ,soapysdr)))
+     (list libusb openssl rtl-sdr soapysdr))
     (synopsis "Decoder for radio transmissions in ISM bands")
     (description
      "This is a generic data receiver, mainly for decoding radio transmissions
@@ -1454,8 +1348,7 @@ from devices on the 433 MHz, 868 MHz, 315 MHz, 345 MHz and 915 MHz ISM bands.")
         (base32 "01716cfhxfzsab9zjply9giaa4nn4b7rm3p3vizrwi7n253yiwm2"))))
     (build-system cmake-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("pulseaudio" ,pulseaudio)))
+     (list libx11 pulseaudio))
     (arguments
      '(#:tests? #f))                    ; no test suite
     (home-page "https://github.com/EliasOenal/multimon-ng")
@@ -1492,12 +1385,9 @@ modes:
         (base32 "1h5k402wjlj7xjniggwf0x7a5srlgglc2x4hy6lz6c30zwa7z8fm"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-pyqt" ,python-pyqt)
-       ("python-pyserial" ,python-pyserial)
-       ("python-scipy" ,python-scipy)))
+     (list python-numpy python-pyqt python-pyserial python-scipy))
     (arguments
      '(#:tests? #f))
     (home-page "https://github.com/NanoVNA-Saver/nanovna-saver")
@@ -1510,40 +1400,34 @@ NanoVNA vector network analyzers.")
 (define-public qsstv
   (package
     (name "qsstv")
-    (version "9.4.4")
+    (version "9.5.8")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://users.telenet.be/on4qz/qsstv/downloads/"
                            "qsstv_" version ".tar.gz"))
        (sha256
-        (base32 "0f9hx6sy418cb23fadll298pqbc5l2lxsdivi4vgqbkvx7sw58zi"))))
+        (base32 "0s3sivc0xan6amibdiwfnknrl3248wzgy98w6gyxikl0qsjpygy0"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("fftw" ,fftw)
-       ("fftwf" ,fftwf)
-       ("hamlib" ,hamlib)
-       ("openjpeg" ,openjpeg)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ("v4l-utils" ,v4l-utils)))
+     (list alsa-lib
+           fftw
+           fftwf
+           hamlib
+           openjpeg
+           pulseaudio
+           qtbase-5
+           v4l-utils))
     (arguments
      `(#:tests? #f  ; No test suite.
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-newer-hamlib-support
-           (lambda _
-             (substitute* "qsstv/rig/rigcontrol.cpp"
-               (("FILPATHLEN")
-                "HAMLIB_FILPATHLEN"))))
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
              (invoke "qmake"
-                     (string-append "PREFIX=" (assoc-ref outputs "out")))
-             #t)))))
+                     (string-append "PREFIX=" (assoc-ref outputs "out"))))))))
     (home-page "http://users.telenet.be/on4qz/qsstv/")
     (synopsis "Program for receiving and transmitting SSTV and HAMDRM")
     (description
@@ -1567,8 +1451,7 @@ NanoVNA vector network analyzers.")
         (base32 "0xmz64m02knbrpasfij4rrq53ksxna5idxwgabcw4n2b1ig7pyx5"))))
     (build-system cmake-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("hamlib" ,hamlib)))
+     (list alsa-lib hamlib))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1604,7 +1487,7 @@ It can perform as:
         (base32 "14lzgldqzbbzydsy1cai3wln3hpyj1yhj8ji3wygyzr616fq9f7i"))))
     (build-system gnu-build-system)
     (inputs
-     `(("ao" ,ao)))
+     (list ao))
     (home-page "https://www.nongnu.org/aldo/")
     (synopsis "Morse code tutor")
     (description
@@ -1632,12 +1515,9 @@ methods:
         (base32 "15wriwv91583kmmyijbzam3dpclzmg4qjyfzjv5f75x9b0gqabxm"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("ncurses" ,ncurses)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)))
+     (list alsa-lib ncurses pulseaudio qtbase-5))
     (arguments
      `(#:configure-flags '("--disable-static")
        #:phases
@@ -1721,15 +1601,14 @@ Identification System) messages sent by ships and coast stations.")
      '(#:import-path "github.com/nonoo/kappanhang"
        #:install-source? #f))
     (inputs
-     `(("go-github-com-akosmarton-papipes",go-github-com-akosmarton-papipes)
-       ("go-github-com-fatih-color" ,go-github-com-fatih-color)
-       ("go-github-com-google-goterm" ,go-github-com-google-goterm)
-       ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
-       ("go-github-com-mesilliac-pulse-simple"
-        ,go-github-com-mesilliac-pulse-simple)
-       ("go-github-com-pborman-getopt" ,go-github-com-pborman-getopt)
-       ("go-go-uber-org-multierr" ,go-go-uber-org-multierr)
-       ("go-go-uber-org-zap" ,go-go-uber-org-zap)))
+     (list go-github-com-akosmarton-papipes
+           go-github-com-fatih-color
+           go-github-com-google-goterm
+           go-github-com-mattn-go-isatty
+           go-github-com-mesilliac-pulse-simple
+           go-github-com-pborman-getopt
+           go-go-uber-org-multierr
+           go-go-uber-org-zap))
     (home-page "https://github.com/nonoo/kappanhang")
     (synopsis "Client for Icom RS-BA1 server")
     (description
@@ -1748,30 +1627,30 @@ Compatible hardware/software:
 (define-public dream
   (package
     (name "dream")
-    (version "2.1.1")
+    (version "2.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/drm/dream/" version
-                           "/dream-" version "-svn808.tar.gz"))
+                           "/dream_" version ".orig.tar.gz"))
        (sha256
-        (base32 "01dv6gvljz64zrjbr08mybr9aicvpq2c6qskww46lngdjyhk8xs1"))))
+        (base32 "0mpg341b0vnm6ym0cag9zri9w6kw012rv68zdmmi2hlvq7iiw8gp"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("faad2" ,faad2)
-       ("fftw" ,fftw)
-       ("libsndfile" ,libsndfile)
-       ("libpcap" ,libpcap)
-       ("opus" ,opus)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtwebkit" ,qtwebkit)
-       ("qwt" ,qwt)
-       ("speexdsp" ,speexdsp)
-       ("zlib" ,zlib)))
+     (list faad2
+           fftw
+           libsndfile
+           libpcap
+           opus
+           pulseaudio
+           qtbase-5
+           qtsvg
+           qtwebkit
+           qwt
+           speexdsp
+           zlib))
     (arguments
      `(#:tests? #f
        #:phases
@@ -1823,22 +1702,22 @@ receiver.")
         (base32 "1xl1lanw0xgmgks67dbfb2h52jxnrd1i2zik56v0q8dwsr7f0daw"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("faad2" ,faad2)
-       ("fftwf" ,fftwf)
-       ("lame" ,lame)
-       ("libusb" ,libusb)
-       ("mpg123" ,mpg123)
-       ("rtl-sdr" ,rtl-sdr)
-       ("qtbase" ,qtbase-5)
-       ("qtcharts" ,qtcharts)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtgraphicaleffects" ,qtgraphicaleffects)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtquickcontrols2" ,qtquickcontrols2)
-       ("soapysdr" ,soapysdr)))
+     (list alsa-lib
+           faad2
+           fftwf
+           lame
+           libusb
+           mpg123
+           rtl-sdr
+           qtbase-5
+           qtcharts
+           qtdeclarative
+           qtgraphicaleffects
+           qtmultimedia
+           qtquickcontrols2
+           soapysdr))
     (arguments
      `(#:configure-flags '("-DRTLSDR=ON"
                            "-DSOAPYSDR=ON")
@@ -1868,7 +1747,7 @@ defined radio with support for rtl-sdr.")
           (base32 "0ic35130lf66lk3wawgc5bcg711l7chv9al1hzdc1xrmq9qf9hri"))))
       (build-system gnu-build-system)
       (inputs
-       `(("fftwf" ,fftwf)))
+       (list fftwf))
       (arguments
        `(#:make-flags
          (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
@@ -1976,9 +1855,7 @@ Codec.")
           (base32 "0j339kx3n2plgfw7ikpp7b81h5n68wmsgflwljbh2sy8j62faik9"))))
       (build-system cmake-build-system)
       (inputs
-       `(("faad2" ,faad2)
-         ("fftwf" ,fftwf)
-         ("zlib" ,zlib)))
+       (list faad2 fftwf zlib))
       (arguments
        `(#:tests? #f  ; No test suite.
          #:phases
@@ -2007,8 +1884,7 @@ Audio Broadcasting}.")
         (base32 "0jgzpv4d6ckd0sdq6438rjh3m6knj6gx63627fajch74hxrvclzj"))))
     (build-system cmake-build-system)
     (inputs
-     `(("mbelib" ,mbelib)
-       ("serialdv" ,serialdv)))
+     (list mbelib serialdv))
     (arguments
      `(#:tests? #f  ; No test suite.
        #:configure-flags
@@ -2035,7 +1911,7 @@ voice formats.")
 (define-public sdrangel
   (package
     (name "sdrangel")
-    (version "6.16.1")
+    (version "6.17.5")
     (source
      (origin
        (method git-fetch)
@@ -2044,43 +1920,42 @@ voice formats.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0g9h4cy8k9dqlwkfk4lkk2d2s003bckzskm3vra87ndmgq1nfbzv"))))
+        (base32 "1g9972q78nxl62hpyn029s85ny5jj9dxlmmfqyz3l9sd6kdv9kl6"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("graphviz" ,graphviz)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen graphviz pkg-config))
     (inputs
-     `(("airspyhf" ,airspyhf)
-       ("alsa-lib" ,alsa-lib)
-       ("aptdec" ,aptdec)
-       ("boost" ,boost)
-       ("cm256cc" ,cm256cc)
-       ("codec2" ,codec2)
-       ("dsdcc" ,dsdcc)
-       ("faad2" ,faad2)
-       ("ffmpeg" ,ffmpeg)
-       ("fftwf" ,fftwf)
-       ("hackrf" ,hackrf)
-       ("libdab" ,libdab)
-       ("libusb" ,libusb)
-       ("mbelib" ,mbelib)
-       ("opencv" ,opencv)
-       ("opus" ,opus)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtcharts" ,qtcharts)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtlocation" ,qtlocation)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtserialport" ,qtserialport)
-       ("qtspeech" ,qtspeech)
-       ("qtwebsockets" ,qtwebsockets)
-       ("rtl-sdr" ,rtl-sdr)
-       ("serialdv" ,serialdv)
-       ("soapysdr" ,soapysdr)
-       ("sgp4" ,sgp4)
-       ("zlib" ,zlib)))
+     (list airspyhf
+           alsa-lib
+           aptdec
+           boost
+           cm256cc
+           codec2
+           dsdcc
+           faad2
+           ffmpeg
+           fftwf
+           hackrf
+           libdab
+           libusb
+           mbelib
+           opencv
+           opus
+           pulseaudio
+           qtbase-5
+           qtcharts
+           qtdeclarative
+           qtlocation
+           qtmultimedia
+           qtquickcontrols2
+           qtserialport
+           qtspeech
+           qtwebsockets
+           rtl-sdr
+           serialdv
+           soapysdr
+           sgp4
+           zlib))
     (arguments
      `(#:tests? #f  ; No test suite.
        #:configure-flags
@@ -2097,7 +1972,16 @@ voice formats.")
                 (string-append "-DSGP4_DIR="
                                #$(this-package-input "sgp4"))
                 (string-append "-DSOAPYSDR_DIR="
-                               #$(this-package-input "soapysdr")))))
+                               #$(this-package-input "soapysdr")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-boost-compatibility
+           (lambda _
+             (substitute*
+                 '("plugins/channelrx/noisefigure/noisefigure.cpp"
+                   "plugins/channelrx/noisefigure/noisefigureenrdialog.cpp")
+               (("boost::math::barycentric_rational<double>")
+                "boost::math::interpolators::barycentric_rational<double>")))))))
     (home-page "https://github.com/f4exb/sdrangel/wiki")
     (synopsis "Software defined radio")
     (description
@@ -2105,6 +1989,55 @@ voice formats.")
 various hardware.")
     (license license:gpl3+)))
 
+(define-public sdr++
+  (package
+    (name "sdr++")
+    (version "1.0.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/AlexandreRouma/SDRPlusPlus")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1xwbz6yyca6wmzad5ykxw6i0r8jzc7i3jbzq7mhp8caiymd6knw3"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     `(("airspyhf" ,airspyhf)
+       ("alsa-lib" ,alsa-lib)
+       ("codec2" ,codec2)
+       ("fftwf" ,fftwf)
+       ("glew" ,glew)
+       ("glfw" ,glfw)
+       ("hackrf" ,hackrf)
+       ("jack" ,jack-2)
+       ("libusb" ,libusb)
+       ("pulseaudio" ,pulseaudio)
+       ("rtaudio" ,rtaudio)
+       ("rtl-sdr" ,rtl-sdr)
+       ("soapysdr" ,soapysdr)
+       ("volk" ,volk)))
+    (arguments
+     `(#:tests? #f ; No test suite.
+       #:configure-flags '("-DOPT_BUILD_AIRSPY_SOURCE=OFF"
+                           "-DOPT_BUILD_PLUTOSDR_SOURCE=OFF"
+                           "-DOPT_BUILD_M17_DECODER=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "CMakeLists.txt"
+               (("/usr")
+                (assoc-ref outputs "out"))))))))
+    (home-page "https://github.com/AlexandreRouma/SDRPlusPlus")
+    (synopsis "Software defined radio software")
+    (description
+     "SDR++ is a software defined radio software for various hardware.")
+    (license license:gpl3+)))
+
 (define-public inspectrum
   (package
     (name "inspectrum")
@@ -2120,11 +2053,9 @@ various hardware.")
         (base32 "1x6nyn429pk0f7lqzskrgsbq09mq5787xd4piic95add6n1cc355"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("fftwf" ,fftwf)
-       ("liquid-dsp" ,liquid-dsp)
-       ("qtbase" ,qtbase-5)))
+     (list fftwf liquid-dsp qtbase-5))
     (home-page "https://github.com/miek/inspectrum")
     (synopsis "Radio signal analyser")
     (description
@@ -2135,22 +2066,19 @@ software-defined radio receivers.")
 (define-public wfview
   (package
     (name "wfview")
-    (version "1.0")
+    (version "1.2d")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://gitlab.com/eliggett/wfview")
-             (commit (string-append "v" version))))
+             (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "16a9afm0nkqx4pzwfxisspybimhqdyr3yjpr7ac7wgpp3520ikzi"))))
+        (base32 "1kpkwxhcacgmprbr8xz840rj9a22513vxrh2q7d3js5i1dva8j2z"))))
     (build-system qt-build-system)
     (inputs
-     `(("qcustomplot" ,qcustomplot)
-       ("qtbase" ,qtbase-5)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtserialport" ,qtserialport)))
+     (list opus qcustomplot qtbase-5 qtmultimedia qtserialport))
     (arguments
      `(#:tests? #f  ; No test suite.
        #:phases
@@ -2164,23 +2092,12 @@ software-defined radio receivers.")
                (("/usr/share")
                 (string-append (assoc-ref outputs "out") "/share")))))
          (replace 'configure
-           (lambda _
+           (lambda* (#:key outputs #:allow-other-keys)
              (mkdir-p "build")
              (chdir "build")
-             (invoke "qmake" "../wfview.pro")))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out")))
-               (install-file "wfview"
-                             (string-append out "/bin"))
-               (install-file "wfview.png"
-                             (string-append out "/share/pixmaps"))
-               (install-file "wfview.desktop"
-                             (string-append out "/share/applications"))
-               (let ((dir (string-append
-                           out "/share/wfview/stylesheets/qdarkstyle")))
-                 (mkdir-p dir)
-                 (copy-recursively "qdarkstyle" dir))))))))
+             (invoke "qmake"
+                     (string-append "PREFIX=" (assoc-ref outputs "out"))
+                     "../wfview.pro"))))))
     (home-page "https://wfview.org/")
     (synopsis "Software to control Icom radios")
     (description
@@ -2211,12 +2128,9 @@ spectrum waterfall.  It supports at least the following models:
         (base32 "13ipyh39l7p420j1j9kvwyskv2nqnimls1a3z1klsa1zivds9k7q"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("fftwf" ,fftwf)
-       ("libsndfile" ,libsndfile)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib fftwf libsndfile pulseaudio))
     (home-page "http://www.whence.com/minimodem/")
     (synopsis "Software audio FSK modem")
     (description
@@ -2246,12 +2160,12 @@ Caller-ID.")
           (base32 "0dbc6n4pxsa73wzxny773khc73r1dn3ma5hi7xv76vcykjvzkdi3"))))
       (build-system python-build-system)
       (inputs
-       `(("python-future" ,python-future)
-         ("python-ipython" ,python-ipython)
-         ("python-numpy" ,python-numpy)
-         ("python-pyserial" ,python-pyserial)
-         ("python-pyside-2" ,python-pyside-2)
-         ("python-pyusb" ,python-pyusb)))
+       (list python-future
+             python-ipython
+             python-numpy
+             python-pyserial
+             python-pyside-2
+             python-pyusb))
       (arguments
        `(#:tests? #f  ; Tests want to use a serial port
          #:phases
@@ -2283,10 +2197,41 @@ this package.  E.g.: @code{(udev-rules-service 'rfcat rfcat)}")
       (license (list license:bsd-3
                      license:gpl2)))))
 
+(define-public rx-tools
+  ;; No tagged release since 2016, use commit instead.
+  (let ((commit "811b21c4c8a592515279bd19f7460c6e4ff0551c")
+        (revision "1"))
+    (package
+      (name "rx-tools")
+      (version (git-version "1.0.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/rxseger/rx_tools")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0qr8q00cv6q0ikjrph0qh07mlbvgk4yimccpkn3ir8ib5ma0r9sr"))))
+      (build-system cmake-build-system)
+      (inputs
+       (list soapysdr))
+      (arguments
+       `(#:tests? #f)) ; No test suite.
+      (home-page "https://github.com/rxseger/rx_tools")
+      (synopsis "Command line programs for receiving data from SDRs")
+      (description
+       "This package provides the @code{rx_fm}, @code{rx_power} and
+@code{rx_sdr} tools for receiving data from SDRs, based on @code{rtl_fm},
+@code{rtl_power} and @code{rtl_sdr} from RTL-SDR, but using the SoapySDR
+vendor-neutral SDR support library instead, intended to support a wider range
+of devices than RTL-SDR.")
+      (license license:gpl2+))))
+
 (define-public gnss-sdr
   (package
     (name "gnss-sdr")
-    (version "0.0.14")
+    (version "0.0.15")
     (source
      (origin
        (method git-fetch)
@@ -2295,7 +2240,7 @@ this package.  E.g.: @code{(udev-rules-service 'rfcat rfcat)}")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1kjh9bnf6h9q71bnn8nrwlc80wcnkib97ylzvb102acii4p0fm08"))))
+        (base32 "1m41rnlfr1nrzbg382jfsk5x0by2ym48v3innd2rbc6phd85q223"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)
@@ -2305,22 +2250,22 @@ this package.  E.g.: @code{(udev-rules-service 'rfcat rfcat)}")
        ("python" ,python)
        ("python-mako" ,python-mako)))
     (inputs
-     `(("armadillo" ,armadillo)
-       ("boost" ,boost)
-       ("gflags" ,gflags)
-       ("glog" ,glog)
-       ("gmp" ,gmp)
-       ("gnuradio" ,gnuradio)
-       ("gr-osmosdr" ,gr-osmosdr)
-       ("lapack" ,lapack)
-       ("libpcap" ,libpcap)
-       ("log4cpp" ,log4cpp)
-       ("matio" ,matio)
-       ("openblas" ,openblas)
-       ("openssl" ,openssl)
-       ("protobuf" ,protobuf)
-       ("pugixml" ,pugixml)
-       ("volk" ,volk)))
+     (list armadillo
+           boost
+           gflags
+           glog
+           gmp
+           gnuradio
+           gr-osmosdr
+           lapack
+           libpcap
+           log4cpp
+           matio
+           openblas
+           openssl
+           protobuf
+           pugixml
+           volk))
     (arguments
      `(#:configure-flags
        (list "-DENABLE_GENERIC_ARCH=ON"
@@ -2333,14 +2278,6 @@ this package.  E.g.: @code{(udev-rules-service 'rfcat rfcat)}")
                             (assoc-ref %build-inputs "googletest-source")))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-tests
-           (lambda _
-             ;; Some tests fail to compile when the FILESYSTEM package is
-             ;; available, so we disable it (and the tests will use Boost
-             ;; Filesystem instead).
-             (substitute* "CMakeLists.txt"
-               (("find_package\\(FILESYSTEM COMPONENTS Final Experimental\\)")
-                ""))))
          (add-before 'check 'set-home
            (lambda _
              (setenv "HOME" "/tmp"))))))
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 76ed4df6e4..45fa5d8606 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -56,8 +56,7 @@
                (("require \\\"bump/tasks\\\"") ""))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-activesupport" ,ruby-activesupport)))
+     (list bundler ruby-activesupport))
     (synopsis "Ruby on Rails application preloader")
     (description
      "Spring is a Ruby on Rails application preloader.  It speeds up
@@ -82,11 +81,8 @@ migration.")
     (arguments
      '(#:tests? #f)) ; No included tests
     (propagated-inputs
-     `(("ruby-railties" ,ruby-railties)
-       ("ruby-sass" ,ruby-sass)
-       ("ruby-sprockets" ,ruby-sprockets)
-       ("ruby-sprockets-rails" ,ruby-sprockets-rails)
-       ("ruby-tilt" ,ruby-tilt)))
+     (list ruby-railties ruby-sass ruby-sprockets ruby-sprockets-rails
+           ruby-tilt))
     (synopsis "Sass adapter for the Rails asset pipeline")
     (description
      "This library integrates the SASS stylesheet language into Ruby on
@@ -160,15 +156,15 @@ API.")
                (("gemspec") "gemspec\ngem 'tzinfo-data'\ngem 'sass'"))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rails" ,ruby-rails)
-       ("ruby-rspec-rails" ,ruby-rspec-rails)
-       ;; This is needed for a test, but I'm unsure why
-       ("ruby-sass" ,ruby-sass)
-       ;; This is used as the ruby-execjs runtime
-       ("node" ,node)))
+     (list bundler
+           ruby-rails
+           ruby-rspec-rails
+           ;; This is needed for a test, but I'm unsure why
+           ruby-sass
+           ;; This is used as the ruby-execjs runtime
+           node))
     (propagated-inputs
-     `(("ruby-execjs" ,ruby-execjs)))
+     (list ruby-execjs))
     (synopsis "Parse CSS and add vendor prefixes to CSS rules")
     (description
      "This gem provides Ruby and Ruby on Rails integration with Autoprefixer,
@@ -193,7 +189,7 @@ Can I Use website.")
     '(;; No included tests
       #:tests? #f))
    (propagated-inputs
-    `(("ruby-activesupport" ,ruby-activesupport)))
+    (list ruby-activesupport))
    (synopsis "Toolkit for building modeling frameworks like Active Record")
    (description
     "This package provides a toolkit for building modeling frameworks like
@@ -218,9 +214,7 @@ serialization, internationalization, and testing.")
     '(;; No included tests
       #:tests? #f))
    (propagated-inputs
-    `(("ruby-activemodel" ,ruby-activemodel)
-      ("ruby-activesupport" ,ruby-activesupport)
-      ("ruby-arel" ,ruby-arel)))
+    (list ruby-activemodel ruby-activesupport ruby-arel))
    (synopsis "Ruby library to connect to relational databases")
    (description
     "Active Record connects classes to relational database table to establish
@@ -243,13 +237,13 @@ an almost zero-configuration persistence layer for applications.")
     (arguments
      '(#:tests? #f)) ; No included tests
     (propagated-inputs
-     `(("ruby-actionpack" ,ruby-actionpack)
-       ("ruby-activesupport" ,ruby-activesupport)
-       ("ruby-railties" ,ruby-railties)
-       ("ruby-rspec-core" ,ruby-rspec-core)
-       ("ruby-rspec-expectations" ,ruby-rspec-expectations)
-       ("ruby-rspec-mocks" ,ruby-rspec-mocks)
-       ("ruby-rspec-support" ,ruby-rspec-support)))
+     (list ruby-actionpack
+           ruby-activesupport
+           ruby-railties
+           ruby-rspec-core
+           ruby-rspec-expectations
+           ruby-rspec-mocks
+           ruby-rspec-support))
     (synopsis "Use RSpec to test Ruby on Rails applications")
     (description
      "This package provides support for using RSpec to test Ruby on Rails
@@ -273,7 +267,7 @@ applications, in pace of the default Minitest testing library.")
      '(;; No included tests
        #:tests? #f))
     (propagated-inputs
-     `(("ruby-loofah" ,ruby-loofah)))
+     (list ruby-loofah))
     (synopsis "HTML sanitization for Rails applications")
     (description
      "This gem is used to handle HTML sanitization in Rails applications.  If
@@ -298,10 +292,9 @@ directly.")
         "17vdh273cmmfpzy5m546dd13zqmimv54jjx0f7sl0zi5lwz0gnck"))))
    (build-system ruby-build-system)
    (native-inputs
-    `(("bundler" ,bundler)))
+    (list bundler))
    (propagated-inputs
-    `(("ruby-activesupport" ,ruby-activesupport)
-      ("ruby-nokogiri" ,ruby-nokogiri)))
+    (list ruby-activesupport ruby-nokogiri))
    (synopsis "Compare HTML DOMs and assert certain elements exists")
    (description
     "This gem can compare HTML and assert certain elements exists.  This is
@@ -325,11 +318,8 @@ useful when writing tests.")
     '(;; No included tests
       #:tests? #f))
     (propagated-inputs
-     `(("ruby-actionpack" ,ruby-actionpack)
-       ("ruby-activerecord" ,ruby-activerecord)
-       ("ruby-activestorage" ,ruby-activestorage)
-       ("ruby-activesupport" ,ruby-activesupport)
-       ("ruby-nokogiri" ,ruby-nokogiri)))
+     (list ruby-actionpack ruby-activerecord ruby-activestorage
+           ruby-activesupport ruby-nokogiri))
     (synopsis "Edit and display rich text in Rails applications")
     (description
      "ActionText edits and displays rich text in Rails applications.")
@@ -352,11 +342,8 @@ useful when writing tests.")
     '(;; No included tests
       #:tests? #f))
    (propagated-inputs
-    `(("ruby-activesupport" ,ruby-activesupport)
-      ("ruby-builder" ,ruby-builder)
-      ("ruby-erubi" ,ruby-erubi)
-      ("ruby-rails-dom-testing" ,ruby-rails-dom-testing)
-      ("ruby-rails-html-sanitizer" ,ruby-rails-html-sanitizer)))
+    (list ruby-activesupport ruby-builder ruby-erubi
+          ruby-rails-dom-testing ruby-rails-html-sanitizer))
    (synopsis "Conventions and helpers for building web pages")
    (description
     "ActionView provides conventions and helpers for building web pages in
@@ -380,12 +367,12 @@ Ruby.")
     '(;; No included tests
       #:tests? #f))
    (propagated-inputs
-    `(("ruby-actionview" ,ruby-actionview)
-      ("ruby-activesupport" ,ruby-activesupport)
-      ("ruby-rack" ,ruby-rack)
-      ("ruby-rack-test" ,ruby-rack-test)
-      ("ruby-rails-dom-testing" ,ruby-rails-dom-testing)
-      ("ruby-rails-html-sanitizer" ,ruby-rails-html-sanitizer)))
+    (list ruby-actionview
+          ruby-activesupport
+          ruby-rack
+          ruby-rack-test
+          ruby-rails-dom-testing
+          ruby-rails-html-sanitizer))
    (synopsis "Conventions for building and testing MVC web applications")
    (description
     "ActionPack provides conventions for building and testing MVC web
@@ -409,10 +396,8 @@ applications.  These work with any Rack-compatible server.")
     '(;; No included tests
       #:tests? #f))
    (propagated-inputs
-    `(("ruby-actionpack" ,ruby-actionpack)
-      ("ruby-activesupport" ,ruby-activesupport)
-      ("ruby-nio4r" ,ruby-nio4r)
-      ("ruby-websocket-driver" ,ruby-websocket-driver)))
+    (list ruby-actionpack ruby-activesupport ruby-nio4r
+          ruby-websocket-driver))
    (synopsis "Integrate integrates WebSockets with Rails applications")
    (description
     "Action Cable integrates WebSockets with Rails applications.  Through
@@ -436,8 +421,7 @@ WebSockets it allows for real-time features in web applications.")
     '(;; No included tests
       #:tests? #f))
    (propagated-inputs
-    `(("ruby-activesupport" ,ruby-activesupport)
-      ("ruby-globalid" ,ruby-globalid)))
+    (list ruby-activesupport ruby-globalid))
    (synopsis "Declare job classes for multiple backends")
    (description
     "ActiveJob allows declaring job classes in a common way across Rails
@@ -461,12 +445,12 @@ applications.")
      '(;; No included tests
        #:tests? #f))
     (propagated-inputs
-     `(("ruby-actionpack" ,ruby-actionpack)
-       ("ruby-activejob" ,ruby-activejob)
-       ("ruby-activerecord" ,ruby-activerecord)
-       ("ruby-activesupport" ,ruby-activesupport)
-       ("ruby-marcel" ,ruby-marcel)
-       ("ruby-mimemagic" ,ruby-mimemagic)))
+     (list ruby-actionpack
+           ruby-activejob
+           ruby-activerecord
+           ruby-activesupport
+           ruby-marcel
+           ruby-mimemagic))
     (synopsis "Integrate file storage services in to Rails applications")
     (description
      "ActiveStorage integrates file storage services with Rails applications,
@@ -490,12 +474,12 @@ allowing files to be attached to ActiveRecord models.")
     '(;; No included tests
       #:tests? #f))
     (propagated-inputs
-     `(("ruby-actionpack" ,ruby-actionpack)
-       ("ruby-activejob" ,ruby-activejob)
-       ("ruby-activerecord" ,ruby-activerecord)
-       ("ruby-activestorage" ,ruby-activestorage)
-       ("ruby-activesupport" ,ruby-activesupport)
-       ("ruby-mail" ,ruby-mail)))
+     (list ruby-actionpack
+           ruby-activejob
+           ruby-activerecord
+           ruby-activestorage
+           ruby-activesupport
+           ruby-mail))
     (synopsis "Receive and process incoming emails in Rails applications")
     (description
      "ActionMailbox receives and processes incoming emails in Rails applications.")
@@ -518,12 +502,12 @@ allowing files to be attached to ActiveRecord models.")
     '(;; No included tests
       #:tests? #f))
    (propagated-inputs
-    `(("ruby-actionpack" ,ruby-actionpack)
-      ("ruby-actionview" ,ruby-actionview)
-      ("ruby-activejob" ,ruby-activejob)
-      ("ruby-activesupport" ,ruby-activesupport)
-      ("ruby-mail" ,ruby-mail)
-      ("ruby-rails-dom-testing" ,ruby-rails-dom-testing)))
+    (list ruby-actionpack
+          ruby-actionview
+          ruby-activejob
+          ruby-activesupport
+          ruby-mail
+          ruby-rails-dom-testing))
    (synopsis "Work with emails using the controller/view pattern")
    (description
     "Compose, deliver, receive, and test emails using the controller/view
@@ -547,11 +531,8 @@ pattern.  Including support for multipart email and attachments.")
     '(;; No included tests
       #:tests? #f))
    (propagated-inputs
-    `(("ruby-actionpack" ,ruby-actionpack)
-      ("ruby-activesupport" ,ruby-activesupport)
-      ("ruby-method-source" ,ruby-method-source)
-      ("ruby-rake" ,ruby-rake)
-      ("ruby-thor" ,ruby-thor)))
+    (list ruby-actionpack ruby-activesupport ruby-method-source ruby-rake
+          ruby-thor))
    (synopsis "Rails internals, including application bootup and generators")
    (description
     "@code{railties} provides the core Rails internals including handling
@@ -575,9 +556,7 @@ application bootup, plugins, generators, and Rake tasks.")
     '(;; No included tests
       #:tests? #f))
    (propagated-inputs
-    `(("ruby-actionpack" ,ruby-actionpack)
-      ("ruby-activesupport" ,ruby-activesupport)
-      ("ruby-sprockets" ,ruby-sprockets)))
+    (list ruby-actionpack ruby-activesupport ruby-sprockets))
    (synopsis "Sprockets Rails integration")
    (description
     "Provides Sprockets implementation for the Rails Asset Pipeline.")
@@ -618,15 +597,9 @@ application bootup, plugins, generators, and Rake tasks.")
                (("group :test do") "group :test do\n  gem 'tzinfo-data'"))
              #t)))))
     (propagated-inputs
-     `(("ruby-actionview" ,ruby-actionview)
-       ("ruby-activemodel" ,ruby-activemodel)
-       ("ruby-bindex" ,ruby-bindex)
-       ("ruby-railties" ,ruby-railties)))
+     (list ruby-actionview ruby-activemodel ruby-bindex ruby-railties))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rails" ,ruby-rails)
-       ("ruby-mocha" ,ruby-mocha)
-       ("ruby-simplecov" ,ruby-simplecov)))
+     (list bundler ruby-rails ruby-mocha ruby-simplecov))
     (synopsis "Debugging tool for your Ruby on Rails applications")
     (description
      "This package allows you to create an interactive Ruby session in your
@@ -650,11 +623,9 @@ can also be launched manually in any page.")
     (arguments
      '(#:tests? #f)) ; TODO Tests require a running MySQL service
     (propagated-inputs
-     `(("ruby-activerecord" ,ruby-activerecord)))
+     (list ruby-activerecord))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-yard" ,ruby-yard)
-       ("ruby-mysql2" ,ruby-mysql2)))
+     (list bundler ruby-yard ruby-mysql2))
     (synopsis "Advisory locking for ActiveRecord")
     (description
      "The With advisory lock gem adds advisory locking to ActiveRecord for
@@ -696,20 +667,20 @@ for locks.")
               (invoke "ruby" "-e" "gem 'rails'"))
             #t)))))
    (propagated-inputs
-    `(("ruby-actioncable" ,ruby-actioncable)
-      ("ruby-actionmailbox" ,ruby-actionmailbox)
-      ("ruby-actionmailer" ,ruby-actionmailer)
-      ("ruby-actionpack" ,ruby-actionpack)
-      ("ruby-actiontext" ,ruby-actiontext)
-      ("ruby-actionview" ,ruby-actionview)
-      ("ruby-activejob" ,ruby-activejob)
-      ("ruby-activemodel" ,ruby-activemodel)
-      ("ruby-activerecord" ,ruby-activerecord)
-      ("ruby-activestorage" ,ruby-activestorage)
-      ("ruby-activesupport" ,ruby-activesupport)
-      ("bundler" ,bundler)
-      ("ruby-railties" ,ruby-railties)
-      ("ruby-sprockets-rails" ,ruby-sprockets-rails)))
+    (list ruby-actioncable
+          ruby-actionmailbox
+          ruby-actionmailer
+          ruby-actionpack
+          ruby-actiontext
+          ruby-actionview
+          ruby-activejob
+          ruby-activemodel
+          ruby-activerecord
+          ruby-activestorage
+          ruby-activesupport
+          bundler
+          ruby-railties
+          ruby-sprockets-rails))
    (synopsis "Full-stack web framework optimized for programmer happiness")
    (description
     "Ruby on Rails is a full-stack web framework optimized for programmer
diff --git a/gnu/packages/ratpoison.scm b/gnu/packages/ratpoison.scm
index 42e17b63d9..0c0687032d 100644
--- a/gnu/packages/ratpoison.scm
+++ b/gnu/packages/ratpoison.scm
@@ -79,8 +79,7 @@
        ("readline" ,readline)
        ("xorgproto" ,xorgproto)))
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list perl pkg-config))
     (home-page "https://www.nongnu.org/ratpoison/")
     (synopsis "Simple mouse-free tiling window manager")
     (description
diff --git a/gnu/packages/rcm.scm b/gnu/packages/rcm.scm
index f8c7ba4200..5fab6250fd 100644
--- a/gnu/packages/rcm.scm
+++ b/gnu/packages/rcm.scm
@@ -48,8 +48,7 @@
                          (("/usr/bin/env") (which "env")))
                        #t)))
                   #:parallel-tests? #f))
-    (native-inputs `(("perl" ,perl)
-                     ("python-cram" ,python-cram)))
+    (native-inputs (list perl python-cram))
     (synopsis "Management suite for dotfiles")
     (description "The rcm suite of tools is for managing dotfiles directories.  This is
 a directory containing all the @code{.*rc} files in your home directory
diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm
index adfbe7de06..12a1d3e9eb 100644
--- a/gnu/packages/rdesktop.scm
+++ b/gnu/packages/rdesktop.scm
@@ -65,12 +65,9 @@
                                "--disable-smartcard")
        #:tests? #f))                    ; No 'check' target
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("gnutls" ,gnutls)
-       ("libx11" ,libx11)
-       ("libxcursor" ,libxcursor)
-       ("nettle" ,nettle)))
+     (list gnutls libx11 libxcursor nettle))
     (home-page "https://www.rdesktop.org/")
     (synopsis "Client for Windows Terminal Services")
     (description
@@ -94,13 +91,13 @@ to remotely control a user's Windows desktop.")
         (base32 "02zlg5r704zbryx09a5rjjf7q137kj16i9qh25dw9q1y69ri619n"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("docbook-xml" ,docbook-xml)
-       ("docbook-xsl" ,docbook-xsl)
-       ("glib" ,glib)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("pkg-config" ,pkg-config)
-       ("xmlto" ,xmlto)))
+     (list docbook-xml
+           docbook-xsl
+           glib
+           libxml2
+           libxslt
+           pkg-config
+           xmlto))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("cups" ,cups)
@@ -120,9 +117,7 @@ to remotely control a user's Windows desktop.")
        ("pulseaudio" ,pulseaudio)
        ("zlib" ,zlib)))
     (propagated-inputs
-     `(("libxkbcommon" ,libxkbcommon)
-       ("openssl" ,openssl)
-       ("wayland" ,wayland)))
+     (list libxkbcommon openssl wayland))
     (arguments
      `(#:build-type "RELEASE"
        #:configure-flags
diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm
index fb84d8053d..83e5912464 100644
--- a/gnu/packages/rdf.scm
+++ b/gnu/packages/rdf.scm
@@ -48,6 +48,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
@@ -70,10 +71,7 @@
                "1vc02im4mpc28zxzgli68k6j0dakh0k3s389bm436yvqajxg19xd"))))
     (build-system gnu-build-system)
     (inputs
-     `(("curl" ,curl)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("zlib" ,zlib)))
+     (list curl libxml2 libxslt zlib))
     (arguments
      `(#:parallel-tests? #f))
     (home-page "https://librdf.org/raptor/")
@@ -105,8 +103,8 @@ HTML and JSON.")
                                       "clucene-contribs-lib.patch"))))
     (build-system cmake-build-system)
     (inputs
-     `(("boost" ,boost) ; could also use bundled copy
-       ("zlib" ,zlib)))
+     (list boost ; could also use bundled copy
+           zlib))
     (arguments
      `(#:test-target "cl_test"
        #:configure-flags '("-DBUILD_CONTRIBS_LIB=ON")
@@ -145,9 +143,9 @@ Java Lucene text search engine API to C++.")
              ;; Install in lib64 break rpath
              "-DCMAKE_INSTALL_LIBDIR:PATH=lib")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("boost" ,boost)))
+     (list boost))
     (home-page "https://github.com/luceneplusplus/LucenePlusPlus")
     (synopsis "Text search engine")
     (description "Lucene++ is an up to date C++ port of the popular Java
@@ -186,10 +184,7 @@ Lucene library, a high-performance, full-featured text search engine.")
        ("cyrus-sasl" ,cyrus-sasl)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (home-page "https://github.com/swh/LRDF")
     (synopsis "Lightweight RDF library for accessing LADSPA plugin metadata")
     (description
@@ -212,17 +207,13 @@ taxonomic inference capability.")
                "0z6rrwn4jsagvarg8d5zf0j352kjgi33py39jqd29gbhcnncj939"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)
-       ("perl-xml-dom" ,perl-xml-dom) ; for the tests
-       ("pkg-config" ,pkg-config)))
+     (list perl perl-xml-dom ; for the tests
+           pkg-config))
     (inputs
-     `(("libgcrypt" ,libgcrypt)
-       ("libxml2" ,libxml2)
-       ("mpfr" ,mpfr)
-       ("pcre" ,pcre)
-       ("util-linux" ,util-linux "lib")))
+     (list libgcrypt libxml2 mpfr pcre
+           `(,util-linux "lib")))
     (propagated-inputs
-     `(("raptor2" ,raptor2))) ; stipulated by rasqal.pc
+     (list raptor2)) ; stipulated by rasqal.pc
     (arguments
      `(#:parallel-tests? #f
        ; test failure reported upstream, see
@@ -253,12 +244,12 @@ Turtle/N3 and read them in SPARQL XML, RDF/XML and Turtle/N3.")
                "109n0kp39p966dpiasad2bb7q66rwbcb9avjvimw28chnpvlf66y"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl) ; needed for installation
-       ("pkg-config" ,pkg-config)))
+     (list perl ; needed for installation
+           pkg-config))
     (propagated-inputs
-     `(("rasqal" ,rasqal))) ; in Requires.private field of .pc
+     (list rasqal)) ; in Requires.private field of .pc
     (inputs
-     `(("bdb" ,bdb)))
+     (list bdb))
     (home-page "http://librdf.org/")
     (synopsis "RDF library")
     (description "The Redland RDF Library (librdf) provides the RDF API
@@ -323,11 +314,11 @@ ideal (e.g. in LV2 implementations or embedded applications).")
                                    (assoc-ref outputs "out") "/lib"))
             #t)))))
     (inputs
-     `(("pcre" ,pcre)))
+     (list pcre))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
-     `(("serd" ,serd)))                 ; required by sord-0.pc
+     (list serd))                 ; required by sord-0.pc
     (home-page "https://drobilla.net/software/sord/")
     (synopsis "C library for storing RDF data in memory")
     (description
@@ -357,11 +348,9 @@ ideal (e.g. in LV2 implementations or embedded applications).")
        ;;       ;; sees the installed 2to3 version.
        ;;       (invoke "nosetests" "--where=./build/src"))))))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (propagated-inputs
-      `(("python-html5lib" ,python-html5lib)
-        ("python-isodate" ,python-isodate)
-        ("python-pyparsing" ,python-pyparsing)))
+      (list python-html5lib python-isodate python-pyparsing))
     (home-page "https://github.com/RDFLib/rdflib")
     (synopsis "Python RDF library")
     (description
@@ -386,9 +375,9 @@ powerful language for representing information.")
           "1v85f4hdlrrk0l1najmqmm79ijrvcj259kwsrrxiq1q5chr5azag"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (propagated-inputs
-     `(("python-rdflib" ,python-rdflib)))
+     (list python-rdflib))
     (home-page "https://github.com/RDFLib/rdflib-jsonld")
     (synopsis "rdflib extension adding JSON-LD parser and serializer")
     (description "This package provides an rdflib extension adding JSON-LD
@@ -408,7 +397,7 @@ parser and serializer.")
           "0x7yz0lvqb6mkhl5fbml27sppmscgpf8v2ism9jzzf0h982ffzxm"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-rdflib" ,python-rdflib)))
+     (list python-rdflib))
     (home-page "https://github.com/hsolbrig/CFGraph")
     (synopsis "RDF Collections flattener for rdflib")
     (description
@@ -430,13 +419,9 @@ parser and serializer.")
                 "1vsq80jnix6cy78ayag7v8ajyw7h8dqyad1q6xkf2hzz3skvr34z"))))
     (build-system gnu-build-system)
     (inputs
-     `(("serd" ,serd)
-       ("zlib" ,zlib)))
+     (list serd zlib))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (home-page "https://github.com/rdfhdt/hdt-cpp")
     (synopsis "C++ implementation of the HDT compression format")
     (description "Header Dictionary Triples (HDT) is a compression format for
@@ -461,9 +446,9 @@ C++ library as well as various command-line tools to to work with HDT.")
     (arguments
      '(#:tests? #f)) ; The test suite simply queries external HTTP endpoints.
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (propagated-inputs
-     `(("python-rdflib" ,python-rdflib)))
+     (list python-rdflib))
     (home-page "https://rdflib.dev/sparqlwrapper/")
     (synopsis "SPARQL Endpoint interface to Python")
     (description "Python wrapper around a SPARQL service.  It helps in creating
diff --git a/gnu/packages/re2c.scm b/gnu/packages/re2c.scm
index ba96727d56..eb9daf4622 100644
--- a/gnu/packages/re2c.scm
+++ b/gnu/packages/re2c.scm
@@ -40,7 +40,7 @@
     (build-system gnu-build-system)
     (home-page "https://re2c.org/")
     (native-inputs
-     `(("python" ,python)))             ; for the test driver
+     (list python))             ; for the test driver
     (synopsis "Lexer generator for C/C++")
     (description
      "@code{re2c} generates minimalistic hard-coded state machine (as opposed
diff --git a/gnu/packages/readline.scm b/gnu/packages/readline.scm
index 9aeb7d0e7e..5920f1c8e1 100644
--- a/gnu/packages/readline.scm
+++ b/gnu/packages/readline.scm
@@ -78,7 +78,7 @@
                                (search-patches "readline-link-ncurses.patch")))
               (patch-flags '("-p0"))))
     (build-system gnu-build-system)
-    (propagated-inputs `(("ncurses" ,ncurses)))
+    (propagated-inputs (list ncurses))
     (arguments `(#:configure-flags
                  (list (string-append "LDFLAGS=-Wl,-rpath -Wl,"
                                       (assoc-ref %build-inputs "ncurses")
@@ -155,11 +155,9 @@ comfortable for anyone.")
         (base32 "1irlcdvj1ddxkfzwa7l2djxgp5xbqch9vaajk2s32x1h5cxl1f5r"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("perl" ,perl)))
+     (list autoconf automake perl))
     (inputs
-     `(("readline" ,readline)))
+     (list readline))
     (synopsis "Wrapper to allow the editing of keyboard commands")
     (description
      "Rlwrap is a 'readline wrapper', a small utility that uses the GNU
diff --git a/gnu/packages/rednotebook.scm b/gnu/packages/rednotebook.scm
index 0c7e5994cd..f63104ad32 100644
--- a/gnu/packages/rednotebook.scm
+++ b/gnu/packages/rednotebook.scm
@@ -71,11 +71,7 @@
                  `("LD_LIBRARY_PATH" ":" prefix (,webkitgtk-path)))
                #t))))))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("gtksourceview" ,gtksourceview-3)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-pygobject" ,python-pygobject)
-       ("webkitgtk" ,webkitgtk)))
+     (list gtk+ gtksourceview-3 python-pyyaml python-pygobject webkitgtk))
     ;; TODO: package the following for python3 (if possible), add them as
     ;; dependencies, and remove them from rednotebook source:
     ;; pygtkspellcheck, elib.intl, msgfmt, txt2tags
diff --git a/gnu/packages/robotics.scm b/gnu/packages/robotics.scm
index 87dcc6f890..a110d0e6bd 100644
--- a/gnu/packages/robotics.scm
+++ b/gnu/packages/robotics.scm
@@ -51,14 +51,14 @@
       (build-system cmake-build-system)
       (arguments
        '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
-      (native-inputs `(("pkg-config" ,pkg-config)))
+      (native-inputs (list pkg-config))
       (inputs
        ;; Optionally, add Python + Boost for Python bindings.
-       `(("sdl2" ,sdl2)))
+       (list sdl2))
       (propagated-inputs
        ;; 'Viewer.h' includes 'QGLWidget'.
-       `(("qtbase" ,qtbase-5)                ;the viewer module needs Qt5 + MESA
-         ("mesa" ,mesa)))
+       (list qtbase-5 ;the viewer module needs Qt5 + MESA
+             mesa))
       (synopsis "Robot simulator")
       (description
        "Enki is a robot simulator written in C++.  It provides collision and
@@ -101,21 +101,20 @@ hundred times faster than real-time.")
       (arguments
        '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("valgrind" ,valgrind)))                 ;for tests
+       (list pkg-config valgrind))                 ;for tests
       (inputs
-       `(("dashel" ,dashel)
-         ("enki" ,enki)
-         ("protobuf" ,protobuf-3.5)               ;for logging
-         ("qtbase" ,qtbase-5)
-         ("qtsvg" ,qtsvg)
-         ("qttools" ,qttools)              ;for libQt5Help, needed by "studio"
-         ("qtwebkit" ,qtwebkit)
-         ("qtx11extras" ,qtx11extras)
-         ("eudev" ,eudev)
-         ("libxml2" ,libxml2)
-         ("sdl2" ,sdl2)
-         ("avahi" ,avahi)))            ;XXX: we need the libdnssd compat layer
+       (list dashel
+             enki
+             protobuf-3.5 ;for logging
+             qtbase-5
+             qtsvg
+             qttools ;for libQt5Help, needed by "studio"
+             qtwebkit
+             qtx11extras
+             eudev
+             libxml2
+             sdl2
+             avahi))            ;XXX: we need the libdnssd compat layer
       (synopsis "Event-based robot programming tools")
       (description
        "Aseba means @dfn{actuator and sensor event-based architecture}.
diff --git a/gnu/packages/rocm.scm b/gnu/packages/rocm.scm
index 9a015d2490..2ccc6d3251 100644
--- a/gnu/packages/rocm.scm
+++ b/gnu/packages/rocm.scm
@@ -49,7 +49,7 @@
                 "0sic2zxmzl2pb2865vvq55mbpcr8pby8v19pjdlm08pypqw5h6h6"))))
     (build-system cmake-build-system)
     (arguments `(#:tests? #f)) ; Tests try to use git commit
-    (native-inputs `(("git" ,git)))
+    (native-inputs (list git))
     (home-page "https://github.com/RadeonOpenCompute/rocm-cmake")
     (synopsis "ROCm cmake modules")
     (description "ROCm cmake modules provides cmake modules for common build
@@ -128,7 +128,7 @@ AMDGPU code objects.")
                 "0ffqhrrscmcydfqf61dk58d7nnxk6n2k68jhqfj7a4hvhlphb74f"))))
     (build-system cmake-build-system)
     (arguments `(#:tests? #f)) ; Not sure how to run tests.
-    (inputs `(("numactl" ,numactl)))
+    (inputs (list numactl))
     (home-page "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface")
     (synopsis "Radeon Open Compute Thunk Interface")
     (description "User-mode API interfaces used to interact with the ROCk
@@ -167,7 +167,7 @@ driver.")
        ("llvm" ,llvm-for-rocm)
        ("roct-thunk-interface" ,roct-thunk-interface)
        ("rocm-device-libs" ,rocm-device-libs))) ; For bitcode.
-    (native-inputs `(("xxd" ,xxd)))
+    (native-inputs (list xxd))
     (home-page "https://github.com/RadeonOpenCompute/ROCR-Runtime")
     (synopsis "ROCm Platform Runtime")
     (description "User-mode API interfaces and libraries necessary for host
@@ -258,12 +258,12 @@ allows runtimes to work on Windows as well as on Linux without much effort.")
                (with-output-to-file (string-append vendors "/amdocl64.icd")
                  (lambda _ (display sopath)))))))))
     (inputs
-     `(("mesa" ,mesa)
-       ("rocm-comgr" ,rocm-comgr)
-       ("rocr-runtime" ,rocr-runtime)
-       ("rocclr" ,rocclr)
-       ("opencl-icd-loader" ,opencl-icd-loader)
-       ("glew" ,glew)))
+     (list mesa
+           rocm-comgr
+           rocr-runtime
+           rocclr
+           opencl-icd-loader
+           glew))
     (native-inputs `())
     (synopsis "ROCm OpenCL Runtime")
     (description "OpenCL 2.0 compatible language runtime, supporting offline
@@ -295,8 +295,7 @@ and in-process/in-memory compilation.")
                 (string-append (assoc-ref inputs "kmod") "/bin/lsmod"))
                (("grep") (which "grep"))))))))
     (inputs
-     `(("rocr-runtime" ,rocr-runtime)
-       ("kmod" ,kmod)))
+     (list rocr-runtime kmod))
     (home-page "https://github.com/RadeonOpenCompute/rocminfo")
     (synopsis "ROCm Application for Reporting System Info")
     (description "List @acronym{HSA,Heterogeneous System Architecture} Agents
@@ -318,7 +317,7 @@ available to ROCm and show their properties.")
                 "0a14kwkjpiyljgzxblh031qibn6xgbxp6m12zdy1pmwb2c44jjmm"))))
     (build-system cmake-build-system)
     (arguments `(#:tests? #f)) ; No tests.
-    (inputs `(("rocr-runtime" ,rocr-runtime)))
+    (inputs (list rocr-runtime))
     (home-page "https://github.com/RadeonOpenCompute/rocm_bandwidth_test")
     (synopsis "Bandwidth test for ROCm")
     (description "RocBandwidthTest is designed to capture the performance
diff --git a/gnu/packages/rpc.scm b/gnu/packages/rpc.scm
index f02fa66f6c..b4f4af9446 100644
--- a/gnu/packages/rpc.scm
+++ b/gnu/packages/rpc.scm
@@ -105,11 +105,7 @@
                    (find-files "." "\\.a$"))))
              #t)))))
     (inputs
-     `(("abseil-cpp" ,abseil-cpp)
-       ("c-ares" ,c-ares/cmake)
-       ("openssl" ,openssl)
-       ("re2" ,re2)
-       ("zlib" ,zlib)))
+     (list abseil-cpp c-ares/cmake openssl re2 zlib))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("protobuf" ,protobuf)
@@ -152,11 +148,11 @@ browsers to backend services.")
                               "src/core/lib/gpr/log_posix.cc"
                               "src/core/lib/iomgr/ev_epollex_linux.cc")
                  (("gettid\\(")
-                  "sys_gettid("))
-               #t))))))
+                  "sys_gettid("))))))))
     (native-inputs
-     `(("protobuf" ,protobuf-3.6)
-       ,@(alist-delete "protobuf" (package-native-inputs grpc))))))
+     (modify-inputs (package-native-inputs grpc)
+       (delete "abseil-cpp" "protobuf")
+       (prepend abseil-cpp-20200923.3 protobuf-3.6)))))
 
 (define-public python-grpcio
   (package
@@ -199,11 +195,9 @@ browsers to backend services.")
                         (("'cc'") "'gcc'"))
                       #t)))))
     (inputs
-     `(("c-ares" ,c-ares)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list c-ares openssl zlib))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://grpc.io")
     (synopsis "HTTP/2-based RPC framework")
     (description "This package provides a Python library for communicating
@@ -230,15 +224,14 @@ with the HTTP/2-based RPC framework gRPC.")
        (list (string-append "--with-boost="
                             (assoc-ref %build-inputs "boost")))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("flex" ,flex)
-       ("bison" ,bison)))
+     (list autoconf
+           automake
+           libtool
+           pkg-config
+           flex
+           bison))
     (inputs
-     `(("boost" ,boost)
-       ("libressl" ,libressl)))
+     (list boost libressl))
     (outputs '("out" "lib" "include"))
     (home-page "https://thrift.apache.org/")
     (synopsis
diff --git a/gnu/packages/rpm.scm b/gnu/packages/rpm.scm
index 008ddd6fe7..96c6776d1a 100644
--- a/gnu/packages/rpm.scm
+++ b/gnu/packages/rpm.scm
@@ -55,17 +55,16 @@
                 "0m269nl8s31yjyz7kknv4jl9mx12xjpx2ly6wf66zs5613m4rj1z"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("cmocka" ,cmocka)
-       ("pkg-config" ,pkg-config)))
+     (list cmocka pkg-config))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("lzlib" ,lzlib)
-       ("openssl" ,openssl)
-       ("popt" ,popt)
-       ("rpm" ,rpm)
-       ("xz" ,xz)
-       ("zlib" ,zlib)
-       ("zstd" ,zstd "lib")))
+     (list bzip2
+           lzlib
+           openssl
+           popt
+           rpm
+           xz
+           zlib
+           `(,zstd "lib")))
     (home-page "https://github.com/rpm-software-management/drpm")
     (synopsis "Delta RPM library")
     (description "This package provides a library for making, reading and
@@ -135,10 +134,9 @@ applying deltarpms, compatible with the original deltarpm packages.")
        ("python-pygobject" ,python-pygobject)))
     (propagated-inputs
      ;; glib and gobject are listed as 'Requires' in modulemd-2.0.pc.
-     `(("glib" ,glib)
-       ;; yaml and rpm are listed as 'Requires.private' in modulemd-2.0.pc.
-       ("libyaml" ,libyaml)
-       ("rpm" ,rpm)))
+     (list glib
+           ;; yaml and rpm are listed as 'Requires.private' in modulemd-2.0.pc.
+           libyaml rpm))
     (home-page "https://github.com/fedora-modularity/libmodulemd")
     (synopsis "C library for manipulating module metadata files")
     (description "The libmodulemd API provides a number of convenience tools
@@ -149,7 +147,7 @@ information on multiple streams, default data and translations).")
 (define-public createrepo-c
   (package
     (name "createrepo-c")
-    (version "0.17.4")
+    (version "0.17.6")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -158,7 +156,7 @@ information on multiple streams, default data and translations).")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1fgf71mkhghgbp0pf2pazc7hyaix5igb5nl4fqsisjksfvzdfm5k"))))
+                "175na06mjyr8ws5pkknaicpziayj6p0xaanv62d54c6zxl4w484w"))))
     (build-system cmake-build-system)
     (arguments
      `(#:imported-modules (,@%cmake-build-system-modules
@@ -181,18 +179,16 @@ information on multiple streams, default data and translations).")
                 (format #f "set (BASHCOMP_DIR ~a\
 /share/bash-completion/completions)~%" (assoc-ref outputs "out")))))))))
     (native-inputs
-     `(("bash-completion" ,bash-completion)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python)))
+     (list bash-completion pkg-config python))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("curl" ,curl)
-       ("drpm" ,drpm)
-       ("libmodulemd" ,libmodulemd)
-       ("libxml2" ,libxml2)
-       ("openssl" ,openssl)
-       ("sqlite" ,sqlite)
-       ("zchunk" ,zchunk)))
+     (list bzip2
+           curl
+           drpm
+           libmodulemd
+           libxml2
+           openssl
+           sqlite
+           zchunk))
     (home-page "https://rpm-software-management.github.io/createrepo_c/")
     (synopsis "C implementation of the createrepo tool")
     (description "This package provides the @command{createrepo} command,
diff --git a/gnu/packages/rrdtool.scm b/gnu/packages/rrdtool.scm
index b8b48e21d6..4390c5b0ca 100644
--- a/gnu/packages/rrdtool.scm
+++ b/gnu/packages/rrdtool.scm
@@ -55,13 +55,12 @@
        ("pango" ,pango)
        ("python" ,python-2)))
     (native-inputs
-     `(("groff" ,groff)
-       ("pkg-config" ,pkg-config)
-
-       ;; For tests.
-       ("bc" ,bc)
-       ("perl" ,perl)                   ; will also build Perl bindings
-       ("tzdata" ,tzdata-for-tests)))
+     (list groff
+           pkg-config
+           ;; For tests.
+           bc
+           perl ; will also build Perl bindings
+           tzdata-for-tests))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/rsync.scm b/gnu/packages/rsync.scm
index 59460f1324..bce184da58 100644
--- a/gnu/packages/rsync.scm
+++ b/gnu/packages/rsync.scm
@@ -54,11 +54,9 @@
       (list "--without-included-zlib"
             "--without-included-popt")))
    (native-inputs
-    `(("perl" ,perl)))
+    (list perl))
    (inputs
-    `(("acl" ,acl)
-      ("popt" ,popt)
-      ("zlib" ,zlib)))
+    (list acl popt zlib))
    (synopsis "Remote (and local) file copying tool")
    (description
     "Rsync is a fast and versatile file copying tool.  It can copy locally,
@@ -87,16 +85,16 @@ files in the destination.")
       (list "--without-included-zlib"
             "--without-included-popt"
             ;; Avoid these dependencies for now.
-            "--disable-lz4"
-            "--disable-openssl"
-            "--disable-zstd")))
+            "--disable-openssl")))
    (native-inputs
-    `(("perl" ,perl)))
+    (list perl))
    (inputs
     `(("acl" ,acl)
+      ("lz4" ,lz4)
       ("popt" ,popt)
       ("xxhash" ,xxhash)
-      ("zlib" ,zlib)))
+      ("zlib" ,zlib)
+      ("zstd:lib" ,zstd "lib")))
    (synopsis "Remote (and local) file copying tool")
    (description
     "Rsync is a fast and versatile file copying tool.  It can copy locally,
@@ -122,10 +120,9 @@ files in the destination.")
               "0bn29npmbw26akc6y54661irpdh6qcivcs6q48cgp3llklhhxp0q"))))
    (build-system cmake-build-system)
    (inputs
-    `(("popt" ,popt)))
+    (list popt))
    (native-inputs
-    `(("which" ,which)
-      ("perl" ,perl)))
+    (list which perl))
    (home-page "http://librsync.sourceforge.net/")
    (synopsis "Implementation of the rsync remote-delta algorithm")
    (description
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 9dfa5043ed..55af2beb8b 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2015, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
@@ -135,12 +135,9 @@
                (("/bin/sh") (which "sh")))
              #t)))))
     (inputs
-     `(("readline" ,readline)
-       ("openssl" ,openssl)
-       ("libffi" ,libffi)
-       ("gdbm" ,gdbm)))
+     (list readline openssl libffi gdbm))
     (propagated-inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (native-search-paths
      (list (search-path-specification
             (variable "GEM_PATH")
@@ -187,7 +184,7 @@ a focus on simplicity and productivity.")
                (("/bin/sh") (which "sh")))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)))))
+     (list autoconf))))
 
 (define-public ruby-3.0
   (package
@@ -289,8 +286,7 @@ a focus on simplicity and productivity.")
                (copy-recursively "build/host/lib" lib))
              #t)))))
     (native-inputs
-     `(("ruby" ,ruby)
-       ("bison" ,bison)))
+     (list ruby bison))
     (home-page "https://github.com/mruby/mruby")
     (synopsis "Lightweight Ruby")
     (description "mruby is the lightweight implementation of the Ruby
@@ -323,13 +319,10 @@ embedded within your application.")
                ((".*RuboCop.*") ""))
              #t)))))
     (propagated-inputs
-     `(("ruby-highline" ,ruby-highline)))
+     (list ruby-highline))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec-core" ,ruby-rspec-core)
-       ("ruby-rspec-expectations" ,ruby-rspec-expectations)
-       ("ruby-rspec-mocks" ,ruby-rspec-mocks)
-       ("ruby-simplecov" ,ruby-simplecov)))
+     (list bundler ruby-rspec-core ruby-rspec-expectations
+           ruby-rspec-mocks ruby-simplecov))
     (home-page "https://github.com/commander-rb/commander")
     (synopsis "Library for building Ruby command-line executables")
     (description
@@ -354,8 +347,7 @@ elegant API.")
     (arguments
      `(#:tests? #f)) ;; TODO: NameError: uninitialized constant SPEC
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-code-statistics" ,ruby-code-statistics)))
+     (list bundler ruby-code-statistics))
     (synopsis
      "HighLine helps you build command-line interfaces")
     (description
@@ -446,11 +438,8 @@ packaging native C and Java extensions in Ruby.")
                (("Coveralls.wear!") ""))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("rsync" ,rsync)
-       ("ruby-rspec-core" ,ruby-rspec-core)
-       ("ruby-rspec-expectations" ,ruby-rspec-expectations)
-       ("ruby-rspec-mocks" ,ruby-rspec-mocks)))
+     (list bundler rsync ruby-rspec-core ruby-rspec-expectations
+           ruby-rspec-mocks))
     (home-page "https://github.com/jbussdieker/ruby-rsync")
     (synopsis "Ruby wrapper around rsync")
     (description
@@ -522,15 +511,15 @@ an extensible architecture with a swappable backend.")
                  "/bin/")))
              #t)))))
     (inputs
-     `(("python-ipython" ,python-ipython)))
-    (propagated-inputs
-     `(("ruby-bond" ,ruby-bond)
-       ("ruby-data_uri" ,ruby-data_uri)
-       ("ruby-mimemagic" ,ruby-mimemagic)
-       ("ruby-multi-json" ,ruby-multi-json)
-       ("ruby-cztop" ,ruby-cztop)
-       ;; Optional inputs
-       ("ruby-pry" ,ruby-pry)))
+     (list python-ipython))
+    (propagated-inputs
+     (list ruby-bond
+           ruby-data_uri
+           ruby-mimemagic
+           ruby-multi-json
+           ruby-cztop
+           ;; Optional inputs
+           ruby-pry))
     (synopsis "Ruby kernel for Jupyter/IPython")
     (description
      "This package provides a Ruby kernel for Jupyter/IPython frontends (e.g.
@@ -573,7 +562,7 @@ notebook).")
     (arguments
      '(#:tests? #f)) ; avoid dependency cycles
     (propagated-inputs
-     `(("ruby-rspec-support" ,ruby-rspec-support)))
+     (list ruby-rspec-support))
     (synopsis "RSpec core library")
     (description "Rspec-core provides the RSpec test runner and example
 groups.")
@@ -626,8 +615,7 @@ standard diff-like tool.")
     (arguments
      '(#:tests? #f)) ; avoid dependency cycles
     (propagated-inputs
-     `(("ruby-rspec-support" ,ruby-rspec-support)
-       ("ruby-diff-lcs" ,ruby-diff-lcs)))
+     (list ruby-rspec-support ruby-diff-lcs))
     (synopsis "RSpec expectations library")
     (description "Rspec-expectations provides a simple API to express expected
 outcomes of a code example.")
@@ -644,7 +632,7 @@ outcomes of a code example.")
                (base32
                 "1ni8kw8kjv76jvwjzi4jba00k3qzj9f8wd94vm6inz0jz3gwjqf9"))))
     (propagated-inputs
-     `(("ruby-diff-lcs" ,ruby-diff-lcs)))))
+     (list ruby-diff-lcs))))
 
 (define-public ruby-sorcerer
   (package
@@ -680,7 +668,7 @@ re-sourced, but they will be rendered in a single-line format.")
     (build-system ruby-build-system)
     (arguments '(#:tests? #f))          ;no test suite for the core package
     (propagated-inputs
-     `(("ruby-sorcerer" ,ruby-sorcerer)))
+     (list ruby-sorcerer))
     (synopsis "Core abstractions used by rspec-given and minitest-given")
     (description "Given_core is the basic functionality behind rspec-given and
 minitest-given, extensions that allow the use of Given/When/Then terminology
@@ -725,11 +713,9 @@ when defining specifications.")
              (delete-file "examples/integration/failing_messages_spec.rb")
              #t)))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("ruby-minitest" ,ruby-minitest)))
+     (list ruby-rspec ruby-minitest))
     (propagated-inputs
-     `(("ruby-given-core" ,ruby-given-core)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list ruby-given-core ruby-rspec))
     (synopsis "Given/When/Then for RSpec and Minitest")
     (description "Given is an RSpec extension that allows the use of
 Given/When/Then terminology when defining specifications, in a way similar to
@@ -779,13 +765,9 @@ the Cucumber Gherkin language.")
                (("\"aruba.*") "'aruba'\n"))
              #t)))))
     (propagated-inputs
-     `(("ruby-rspec-core" ,ruby-rspec-core)
-       ("ruby-rspec-expectations" ,ruby-rspec-expectations)))
+     (list ruby-rspec-core ruby-rspec-expectations))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-cucumber" ,ruby-cucumber)
-       ("ruby-ffi" ,ruby-ffi)
-       ("ruby-aruba" ,ruby-aruba)))
+     (list bundler ruby-cucumber ruby-ffi ruby-aruba))
     (synopsis "RSpec extension that provides the @code{its} method")
     (description
      "RSpec::Its provides the its method as a short-hand to specify the expected
@@ -818,8 +800,7 @@ eq(1)\\}}.")
     (arguments
      '(#:tests? #f)) ; avoid dependency cycles
     (propagated-inputs
-     `(("ruby-rspec-support" ,ruby-rspec-support)
-       ("ruby-diff-lcs" ,ruby-diff-lcs)))
+     (list ruby-rspec-support ruby-diff-lcs))
     (synopsis "RSpec stubbing and mocking library")
     (description "Rspec-mocks provides RSpec's \"test double\" framework, with
 support for stubbing and mocking.")
@@ -836,7 +817,7 @@ support for stubbing and mocking.")
                (base32
                 "1fwsmijd6w6cmqyh4ky2nq89jrpzh56hzmndx9wgkmdgfhfakv30"))))
     (propagated-inputs
-     `(("ruby-diff-lcs" ,ruby-diff-lcs)))))
+     (list ruby-diff-lcs))))
 
 (define-public ruby-rspec-rerun
   (package
@@ -853,7 +834,7 @@ support for stubbing and mocking.")
     (arguments
      '(;; No included tests
        #:tests? #f))
-    (propagated-inputs `(("ruby-rspec" ,ruby-rspec)))
+    (propagated-inputs (list ruby-rspec))
     (synopsis "Track failed RSpec tests to re-run them")
     (description
      "This package provides an automated way to track, and then re-run failed
@@ -880,9 +861,9 @@ RSpec tests.")
            (lambda _
              (invoke "rake" "spec"))))))
     (native-inputs
-     `(("bundler" ,bundler)))
+     (list bundler))
     (propagated-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (home-page "https://github.com/laserlemon/rspec-wait")
     (synopsis "Wait for conditions in RSpec")
     (description
@@ -904,9 +885,7 @@ interactions.")
     (arguments
      '(#:tests? #f)) ; avoid dependency cycles
     (propagated-inputs
-     `(("ruby-rspec-core" ,ruby-rspec-core)
-       ("ruby-rspec-mocks" ,ruby-rspec-mocks)
-       ("ruby-rspec-expectations" ,ruby-rspec-expectations)))
+     (list ruby-rspec-core ruby-rspec-mocks ruby-rspec-expectations))
     (synopsis "Behavior-driven development framework for Ruby")
     (description "RSpec is a behavior-driven development (BDD) framework for
 Ruby.  This meta-package includes the RSpec test runner, along with the
@@ -924,9 +903,7 @@ expectations and mocks frameworks.")
                (base32
                 "134y4wzk1prninb5a0bhxgm30kqfzl8dg06af4js5ylnhv2wd7sg"))))
     (propagated-inputs
-     `(("ruby-rspec-core" ,ruby-rspec-core-2)
-       ("ruby-rspec-mocks" ,ruby-rspec-mocks-2)
-       ("ruby-rspec-expectations" ,ruby-rspec-expectations-2)))))
+     (list ruby-rspec-core-2 ruby-rspec-mocks-2 ruby-rspec-expectations-2))))
 
 ;; Bundler is yet another source of circular dependencies, so we must disable
 ;; its test suite as well.
@@ -1062,9 +1039,9 @@ configuration, and more.")
     ;; Test data required for most of the tests are not included.
     (arguments `(#:tests? #f))
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)))
+     (list ruby-hoe))
     (inputs
-     `(("ruby-rjb" ,ruby-rjb)))
+     (list ruby-rjb))
     (synopsis "Ruby wrapper for the Ant build tool")
     (description "Antwrap is a Ruby module that wraps the Apache Ant build
 tool.  Antwrap can be used to invoke Ant tasks from a Ruby or a JRuby
@@ -1125,9 +1102,7 @@ line of code.")
                          "spec/objects_spec.rb"))
              (invoke "rspec" "-c" "spec"))))))
     (native-inputs
-     `(("ruby-nokogiri" ,ruby-nokogiri)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)))
+     (list ruby-nokogiri ruby-rspec ruby-simplecov))
     (synopsis "Pretty print Ruby objects to visualize their structure")
     (description
      "Ruby dubugging companion: pretty print Ruby objects to visualize their
@@ -1151,18 +1126,10 @@ structure.  Supports custom object formatting via plugins.")
          "03a11clhycyn0jhc7g9davpqd83sn60jqwjy1y145ag9sq6sp935"))))
     (build-system ruby-build-system)
     (arguments
-     `(#:phases
+     `(#:tests? #f ; Disable tests since they depend on pandoc behavior
+                   ; and there are no upstream releases.
+       #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'disable-failing-tests
-           ;; TODO: Remove this phase after ghc-pandoc gets upgraded to 2.9.2+
-           ;; (see: https://github.com/xwmx/pandoc-ruby/issues/39).
-           (lambda _
-             (substitute* "test/test_conversions.rb"
-               (("next if from == to.*" all)
-                (string-append
-                 all
-                 "      next if ['plain', 'beamer'].include? to\n")))
-             #t))
          (add-after 'unpack 'patch-pandoc-path
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((pandoc (search-input-file inputs "/bin/pandoc")))
@@ -1186,9 +1153,9 @@ structure.  Supports custom object formatting via plugins.")
              (substitute* "pandoc-ruby.gemspec"
                (("Gemfile\\.lock") "")))))))
     (native-inputs
-     `(("ruby-mocha" ,ruby-mocha)))
+     (list ruby-mocha))
     (inputs
-     `(("pandoc" ,pandoc)))
+     (list pandoc))
     (synopsis "Ruby wrapper for Pandoc")
     (description "PandocRuby is a wrapper for Pandoc, a Haskell library with
 command line tools for converting one markup format to another.  Pandoc can
@@ -1214,7 +1181,7 @@ more.")
          "0523gddx88zql2mq6655k60gy2ac8vybpzkcf90lmd9nx7wl3fi9"))))
     (build-system ruby-build-system)
     (inputs
-     `(("curl" ,curl)))
+     (list curl))
     (arguments
      `(#:tests? #f))                    ; no included tests
     (synopsis "Ruby HTTP client library based on @code{libcurl}")
@@ -1261,11 +1228,9 @@ under the hood.")
                (("Bundler::GemHelper\\.install_tasks") "nil"))
              #t)))))
     (native-inputs
-     `(("ruby-rack-test" ,ruby-rack-test)
-       ("ruby-sinatra" ,ruby-sinatra)))
+     (list ruby-rack-test ruby-sinatra))
     (propagated-inputs
-     `(("ruby-temple" ,ruby-temple)
-       ("ruby-tilt" ,ruby-tilt)))
+     (list ruby-temple ruby-tilt))
     (synopsis "Minimalist template language for Ruby")
     (description "Slim is a template language for Ruby that aims to reduce the
 syntax to the minimum while remaining clear.")
@@ -1299,19 +1264,19 @@ syntax to the minimum while remaining clear.")
                 (string-append stripped "\n")))
              #t)))))
     (native-inputs
-     `(("ruby-erubi" ,ruby-erubi)
-       ("ruby-erubis" ,ruby-erubis)
-       ("ruby-minitest" ,ruby-minitest)
-       ("ruby-nokogiri" ,ruby-nokogiri)
-       ("ruby-asciimath" ,ruby-asciimath)
-       ("ruby-coderay" ,ruby-coderay)
-       ("ruby-cucumber" ,ruby-cucumber)
-       ("ruby-haml" ,ruby-haml)
-       ("ruby-rouge" ,ruby-rouge)
-       ("ruby-rspec-expectations" ,ruby-rspec-expectations)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-slim" ,ruby-slim)
-       ("ruby-tilt" ,ruby-tilt)))
+     (list ruby-erubi
+           ruby-erubis
+           ruby-minitest
+           ruby-nokogiri
+           ruby-asciimath
+           ruby-coderay
+           ruby-cucumber
+           ruby-haml
+           ruby-rouge
+           ruby-rspec-expectations
+           ruby-simplecov
+           ruby-slim
+           ruby-tilt))
     (synopsis "Converter from AsciiDoc content to other formats")
     (description "Asciidoctor is a text processor and publishing toolchain for
 converting AsciiDoc content to HTML5, DocBook 5 (or 4.5), PDF, and other
@@ -1342,12 +1307,9 @@ formats.")
                         (("^RuboCop.*") ""))
                       #t)))))
     (native-inputs
-     `(("ruby-pdf-inspector" ,ruby-pdf-inspector)
-       ("ruby-pdf-reader" ,ruby-pdf-reader)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)))
+     (list ruby-pdf-inspector ruby-pdf-reader ruby-rspec ruby-simplecov))
     (propagated-inputs
-     `(("ruby-prawn" ,ruby-prawn)))
+     (list ruby-prawn))
     (synopsis "Icon fonts for use with the Prawn PDF toolkit")
     (description "@code{Prawn::Icon} provides various icon fonts including
 FontAwesome, PaymentFont and Foundation Icons for use with the Prawn PDF
@@ -1369,7 +1331,7 @@ toolkit.")
     (build-system ruby-build-system)
     (arguments `(#:tests? #f))          ;gem doesn't ship with test suite
     (propagated-inputs
-     `(("ruby-addressable" ,ruby-addressable)))
+     (list ruby-addressable))
     (synopsis "Ruby Cascading Style Sheets (CSS) parser")
     (description "This package allows loading, parsing and cascading Cascading
 Style Sheets (CSS) rule sets in Ruby.")
@@ -1401,10 +1363,9 @@ Style Sheets (CSS) rule sets in Ruby.")
                         (invoke "rspec" "-Ilib" "-rprawn-svg"))
                       #t)))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (propagated-inputs
-     `(("ruby-css-parser" ,ruby-css-parser)
-       ("ruby-prawn" ,ruby-prawn)))
+     (list ruby-css-parser ruby-prawn))
     (synopsis "SVG renderer for the Prawn PDF library")
     (description "This library allows rendering Scalable Vector Graphics (SVG)
 graphics directly into a Portable Document Format (PDF) document using the
@@ -1440,11 +1401,9 @@ Prawn module.")
                         (invoke "rspec"))
                       #t)))))
     (native-inputs
-     `(("ruby-pdf-inspector" ,ruby-pdf-inspector)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list ruby-pdf-inspector ruby-rspec))
     (propagated-inputs
-     `(("ruby-pdf-reader" ,ruby-pdf-reader)
-       ("ruby-prawn" ,ruby-prawn)))
+     (list ruby-pdf-reader ruby-prawn))
     (synopsis "Prawn extension to include or combine PDF documents")
     (description "This @strong{unmaintained} package provides a Prawn
 extension that allows including other Portable Document Format (PDF) documents
@@ -1492,11 +1451,9 @@ loader for the file type associated with a filename extension, and it augments
     (arguments
      `(#:test-target "spec"))
     (native-inputs
-     `(("ruby-activesupport" ,ruby-activesupport)
-       ("ruby-rr" ,ruby-rr)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list ruby-activesupport ruby-rr ruby-rspec))
     (propagated-inputs
-     `(("ruby-polyglot" ,ruby-polyglot)))
+     (list ruby-polyglot))
     (synopsis "Ruby-based parsing DSL based on parsing expression grammars")
     (description "This package provides a Ruby-based Parsing Expression
 Grammar (PEG) parser generator Domain Specific Language (DSL).")
@@ -1518,7 +1475,7 @@ Grammar (PEG) parser generator Domain Specific Language (DSL).")
     (arguments
      `(#:tests? #f))                    ; no included tests
     (propagated-inputs
-     `(("ruby-ethon" ,ruby-ethon)))
+     (list ruby-ethon))
     (synopsis "@code{libcurl} wrapper in Ruby")
     (description
      "Like a modern code version of the mythical beast with 100 serpent heads,
@@ -1551,14 +1508,10 @@ logic.")
              (setenv "HOME" "/tmp")
              #t)))))
     (propagated-inputs
-     `(("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-rubocop-ast" ,ruby-rubocop-ast)))
+     (list ruby-rubocop ruby-rubocop-ast))
     (native-inputs
-     `(("ruby-rack" ,ruby-rack)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rubocop-performance" ,ruby-rubocop-performance)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-yard" ,ruby-yard)))
+     (list ruby-rack ruby-rspec ruby-rubocop-performance ruby-simplecov
+           ruby-yard))
     (synopsis "Code style checking for RSpec files")
     (description "This package provides a plugin for the RuboCop code style
 enforcing & linting tool.")
@@ -1605,11 +1558,9 @@ enforcing & linting tool.")
              (setenv "HOME" "/tmp")
              #t)))))
     (propagated-inputs
-     `(("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-rubocop-ast" ,ruby-rubocop-ast)))
+     (list ruby-rubocop ruby-rubocop-ast))
     (native-inputs
-     `(("ruby-bump" ,ruby-bump)
-       ("ruby-yard" ,ruby-yard)))
+     (list ruby-bump ruby-yard))
     (synopsis "Performance optimizations checkers for Ruby code")
     (description "This package provides a collection of RuboCop cops to check
 for performance optimizations in Ruby code.")
@@ -1644,11 +1595,8 @@ for performance optimizations in Ruby code.")
            "0hrd32ygvf3i7h47ak8f623cz8ns9q7g60nnnvvlnywbggjaz3h6"))))
       (build-system ruby-build-system)
       (native-inputs
-       `(("ruby-coveralls" ,ruby-coveralls)
-         ("ruby-cucumber" ,ruby-cucumber)
-         ("ruby-pry" ,ruby-pry)
-         ("ruby-simplecov" ,ruby-simplecov)
-         ("ruby-rspec-given" ,ruby-rspec-given)))
+       (list ruby-coveralls ruby-cucumber ruby-pry ruby-simplecov
+             ruby-rspec-given))
       (arguments
        `(;; The cucumber task fails with error: "index 3 out of matches
          ;; (IndexError)", apparently due to our newer Cucumber version.
@@ -1715,12 +1663,9 @@ only what they care about.")
              (delete-file "Gemfile.lock")
              #t)))))
     (native-inputs
-     `(("ruby-gimme" ,ruby-gimme)
-       ("ruby-pry" ,ruby-pry)
-       ("ruby-simplecov" ,ruby-simplecov)))
+     (list ruby-gimme ruby-pry ruby-simplecov))
     (propagated-inputs
-     `(("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-rubocop-performance" ,ruby-rubocop-performance)))
+     (list ruby-rubocop ruby-rubocop-performance))
     (synopsis "Ruby Style Guide, with linter & automatic code fixer")
     (description "Standard is a port of StandardJS.  Like StandardJS, it aims
 to save time in the following ways:
@@ -1756,10 +1701,7 @@ to save time in the following ways:
                (("require.*bundler/setup.*") ""))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-standard" ,ruby-standard)
-       ("ruby-yard" ,ruby-yard)))
+     (list bundler ruby-rspec ruby-standard ruby-yard))
     (synopsis "Ruby library to handle PNG images")
     (description "ChunkyPNG is a pure Ruby library that can read and write
 Portable Network Graphics (PNG) images without depending on an external image
@@ -1805,7 +1747,7 @@ or a background processing library.")
             "1gj4awvs9ryf960m0iawg43jyjmfwcqgfwrbcfp890a57b9ag7q1"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)))
+     (list ruby-hoe))
     (synopsis "Ruby library to hyphenate words in various languages")
     (description "Text::Hyphen is a Ruby library to hyphenate words in various
 languages using Ruby-fied versions of TeX hyphenation patterns.  It will
@@ -1839,76 +1781,66 @@ web pages.")
     (license license:expat)))
 
 (define-public ruby-asciidoctor-pdf
-  ;; Use the latest commit, as the last tag doesn't build with the
-  ;; latest Ruby dependencies in Guix.
-  (let ((revision "1")
-        (commit "d257440df895d1595a3825ef58b32e4b290ba1c3"))
-    (package
-      (name "ruby-asciidoctor-pdf")
-      (version (git-version "1.5.3" revision commit))
-      (source
-       (origin
-         (method git-fetch)      ;no test suite in the distributed gem
-         (uri (git-reference
-               (url "https://github.com/asciidoctor/asciidoctor-pdf")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1563d11ghzsrsg4inwfwj6b9hb5sk5b429f49fwq5qg3sq76kgjj"))))
-      (build-system ruby-build-system)
-      (arguments
-       `(#:test-target "spec"
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'remove-failing-tests
-             ;; Two tests module fail for unknown reasons, *only* when
-             ;; ran in the build container (see:
-             ;; https://github.com/asciidoctor/asciidoctor-pdf/issues/1725#issuecomment-658777965).
-             (lambda _
-               (delete-file "spec/audio_spec.rb")
-               (delete-file "spec/video_spec.rb")
-               #t))
-           (add-after 'extract-gemspec 'strip-version-requirements
-             (lambda _
-               (substitute* "asciidoctor-pdf.gemspec"
-                 (("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped)
-                  (string-append stripped "\n")))
-               #t))
-           ;; The tests rely on the Gem being installed, so move the check phase
-           ;; after the install phase.
-           (delete 'check)
-           (add-after 'install 'check
-             (lambda* (#:key outputs tests? #:allow-other-keys)
-               (let ((new-gem (string-append (assoc-ref outputs "out")
-                                             "/lib/ruby/vendor_ruby")))
-                 (setenv "GEM_PATH"
-                         (string-append (getenv "GEM_PATH") ":" new-gem))
-                 (when tests?
-                   (invoke "rspec" "-t" "~visual" "-t" "~cli" "-t" "~network"))
-                 #t))))))
-      (native-inputs
-       `(("ruby-chunky-png" ,ruby-chunky-png)
-         ("ruby-coderay" ,ruby-coderay)
-         ("ruby-pdf-inspector" ,ruby-pdf-inspector)
-         ("ruby-rouge" ,ruby-rouge)
-         ("ruby-rspec" ,ruby-rspec)))
-      (propagated-inputs
-       `(("ruby-asciidoctor" ,ruby-asciidoctor)
-         ("ruby-concurrent-ruby" ,ruby-concurrent)
-         ("ruby-open-uri-cached" ,ruby-open-uri-cached)
-         ("ruby-prawn" ,ruby-prawn)
-         ("ruby-prawn-icon" ,ruby-prawn-icon)
-         ("ruby-prawn-svg" ,ruby-prawn-svg)
-         ("ruby-prawn-table" ,ruby-prawn-table)
-         ("ruby-prawn-templates" ,ruby-prawn-templates)
-         ("ruby-safe-yaml" ,ruby-safe-yaml)
-         ("ruby-text-hyphen" ,ruby-text-hyphen)
-         ("ruby-thread-safe" ,ruby-thread-safe)
-         ("ruby-treetop" ,ruby-treetop)
-         ("ruby-ttfunk" ,ruby-ttfunk)))
-      (synopsis"AsciiDoc to Portable Document Format (PDF)} converter")
-      (description "Asciidoctor PDF is an extension for Asciidoctor that
+  (package
+    (name "ruby-asciidoctor-pdf")
+    (version "1.6.1")
+    (source
+     (origin
+       (method git-fetch)               ;no test suite in the distributed gem
+       (uri (git-reference
+             (url "https://github.com/asciidoctor/asciidoctor-pdf")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1iyfy6n9d3rkyrfjmnnfb44c76mq1larmkv1x8n6p5nbm33wb9sf"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:test-target "spec"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-failing-tests
+           ;; Two tests module fail for unknown reasons, *only* when
+           ;; ran in the build container (see:
+           ;; https://github.com/asciidoctor/asciidoctor-pdf/issues/1725#issuecomment-658777965).
+           (lambda _
+             (delete-file "spec/audio_spec.rb")
+             (delete-file "spec/video_spec.rb")))
+         (add-after 'extract-gemspec 'strip-version-requirements
+           (lambda _
+             (substitute* "asciidoctor-pdf.gemspec"
+               (("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped)
+                (string-append stripped "\n")))))
+         ;; The tests rely on the Gem being installed, so move the check phase
+         ;; after the install phase.
+         (delete 'check)
+         (add-after 'install 'check
+           (lambda* (#:key outputs tests? #:allow-other-keys)
+             (let ((new-gem (string-append (assoc-ref outputs "out")
+                                           "/lib/ruby/vendor_ruby")))
+               (setenv "GEM_PATH"
+                       (string-append (getenv "GEM_PATH") ":" new-gem))
+               (when tests?
+                 (invoke "rspec" "-t" "~visual" "-t" "~cli" "-t" "~network"))))))))
+    (native-inputs
+     (list ruby-chunky-png ruby-coderay ruby-pdf-inspector ruby-rouge
+           ruby-rspec))
+    (propagated-inputs
+     `(("ruby-asciidoctor" ,ruby-asciidoctor)
+       ("ruby-concurrent-ruby" ,ruby-concurrent)
+       ("ruby-open-uri-cached" ,ruby-open-uri-cached)
+       ("ruby-prawn" ,ruby-prawn)
+       ("ruby-prawn-icon" ,ruby-prawn-icon)
+       ("ruby-prawn-svg" ,ruby-prawn-svg)
+       ("ruby-prawn-table" ,ruby-prawn-table)
+       ("ruby-prawn-templates" ,ruby-prawn-templates)
+       ("ruby-safe-yaml" ,ruby-safe-yaml)
+       ("ruby-text-hyphen" ,ruby-text-hyphen)
+       ("ruby-thread-safe" ,ruby-thread-safe)
+       ("ruby-treetop" ,ruby-treetop)
+       ("ruby-ttfunk" ,ruby-ttfunk)))
+    (synopsis"AsciiDoc to Portable Document Format (PDF)} converter")
+    (description "Asciidoctor PDF is an extension for Asciidoctor that
 converts AsciiDoc documents to Portable Document Format (PDF) using the Prawn
 PDF library.  It has features such as:
 @itemize
@@ -1931,8 +1863,8 @@ PDF library.  It has features such as:
 @item Custom TrueType (TTF) fonts
 @item Double-sided printing mode (margins alternate on recto and verso pages)
 @end itemize")
-      (home-page "https://asciidoctor.org/docs/asciidoctor-pdf")
-      (license license:expat))))
+    (home-page "https://asciidoctor.org/docs/asciidoctor-pdf")
+    (license license:expat)))
 
 (define-public ruby-ast
   (package
@@ -1968,16 +1900,16 @@ PDF library.  It has features such as:
                (("12\\.3") "13.0"))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-bacon" ,ruby-bacon)
-       ("ruby-bacon-colored-output" ,ruby-bacon-colored-output)
-       ("ruby-json-pure" ,ruby-json-pure)
-       ("ruby-kramdown" ,ruby-kramdown)
-       ("ruby-mime-types" ,ruby-mime-types)
-       ("ruby-racc" ,ruby-racc)
-       ("ruby-rest-client" ,ruby-rest-client)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-yard" ,ruby-yard)))
+     (list bundler
+           ruby-bacon
+           ruby-bacon-colored-output
+           ruby-json-pure
+           ruby-kramdown
+           ruby-mime-types
+           ruby-racc
+           ruby-rest-client
+           ruby-simplecov
+           ruby-yard))
     (synopsis "Library for working with Abstract Syntax Trees")
     (description
      "@code{ast} is a Ruby library for working with Abstract Syntax Trees.
@@ -2007,7 +1939,7 @@ It does this through immutable data structures.")
        ;; Tests currently fail so disable them.
        ;; https://github.com/sporkmonger/rack-mount/pull/1
        `(#:tests? #f))
-      (propagated-inputs `(("ruby-rack" ,ruby-rack)))
+      (propagated-inputs (list ruby-rack))
       (synopsis "Stackable dynamic tree based Rack router")
       (description
        "@code{Rack::Mount} supports Rack's @code{X-Cascade} convention to
@@ -2030,10 +1962,9 @@ routes to be nested or stacked on top of each other.")
     (arguments
      `(#:test-target "rspec"))
     (propagated-inputs
-     `(("ruby-builder" ,ruby-builder)))
+     (list ruby-builder))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rspec))
     (synopsis "Generate XML reports of runs test")
     (description
      "@code{CI::Reporter} is an add-on to Ruby testing frameworks that allows
@@ -2068,7 +1999,7 @@ format.")
               ((".*RuboCop.*") ""))
             #t)))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (synopsis "Method contracts for Ruby")
     (description
      "This library provides contracts for Ruby.  A contract describes the
@@ -2132,8 +2063,7 @@ code in Merb and Rails.")
                (invoke "rspec"))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec-2)))
+     (list bundler ruby-rspec-2))
     (synopsis "Assertions for command-line dependencies in Ruby")
     (description
      "@code{cliver} provides a way to detect missing command-line
@@ -2170,9 +2100,8 @@ dependencies, including versions.")
                                (assoc-ref inputs "zeromq") "/lib"
                                "']"))))))))
     (inputs
-     `(("zeromq" ,zeromq)
-       ("czmq" ,czmq)))
-    (propagated-inputs `(("ruby-ffi" ,ruby-ffi)))
+     (list zeromq czmq))
+    (propagated-inputs (list ruby-ffi))
     (synopsis "Low-level Ruby bindings for CZMQ (generated using zproject)")
     (description
      "These Ruby bindings are not intended to be directly used, but rather
@@ -2205,12 +2134,11 @@ used by higher level bindings like those provided by CZTop.")
                                (assoc-ref inputs "zeromq") "/lib"
                                "']"))))))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rspec))
     (inputs
-     `(("zeromq" ,zeromq)))
+     (list zeromq))
     (propagated-inputs
-     `(("ruby-czmq-ffi-gen" ,ruby-czmq-ffi-gen)))
+     (list ruby-czmq-ffi-gen))
     (synopsis "CZMQ Ruby bindings")
     (description
      "CZMQ Ruby bindings, based on the generated low-level FFI bindings of
@@ -2235,8 +2163,7 @@ support for security mechanisms.")
     ;; of the involved libraries.
     (arguments `(#:tests? #f))
     (propagated-inputs
-     `(("ruby-json-pure" ,ruby-json-pure)
-       ("ruby-atoulme-saikuro" ,ruby-atoulme-saikuro)))
+     (list ruby-json-pure ruby-atoulme-saikuro))
     (synopsis "Generate complexity treemap based on saikuro analysis")
     (description
      "This gem generates a treemap showing the complexity of Ruby code on
@@ -2259,11 +2186,8 @@ complexity.")
     (arguments
      '(#:tests? #f))                    ; no included tests
     (propagated-inputs
-     `(("ruby-faraday" ,ruby-faraday)
-       ("ruby-jwt" ,ruby-jwt)
-       ("ruby-multi-json" ,ruby-multi-json)
-       ("ruby-multi-xml" ,ruby-multi-xml)
-       ("ruby-rack" ,ruby-rack)))
+     (list ruby-faraday ruby-jwt ruby-multi-json ruby-multi-xml
+           ruby-rack))
     (synopsis "Ruby wrapper for the OAuth 2.0")
     (description
      "This package provides a Ruby wrapper for the OAuth 2.0 protocol built
@@ -2283,11 +2207,9 @@ with a similar style to the original OAuth spec.")
         (base32 "105mzgvmn2kjaacxw01h4wqv33r7hfn5z8fxlkk3jcjar14j71bh"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-hashie" ,ruby-hashie)
-       ("ruby-rack" ,ruby-rack)
-       ("ruby-rack-protection" ,ruby-rack-protection)))
+     (list ruby-hashie ruby-rack ruby-rack-protection))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (synopsis "Generalized Rack framework for multiple-provider authentication")
     (description
      "This package provides a generalized Rack framework for multiple-provider
@@ -2321,14 +2243,9 @@ authentication.")
                (("Coveralls::SimpleCov::Formatter") ""))
              #t)))))
     (propagated-inputs
-     `(("ruby-oauth2" ,ruby-oauth2)
-       ("ruby-omniauth" ,ruby-omniauth)))
+     (list ruby-oauth2 ruby-omniauth))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-rack-test" ,ruby-rack-test)
-       ("ruby-webmock" ,ruby-webmock)))
+     (list bundler ruby-rspec ruby-simplecov ruby-rack-test ruby-webmock))
     (synopsis "Abstract OAuth2 strategy for OmniAuth")
     (description
      "This library provides a generic OAuth2 strategy for OmniAuth.  It
@@ -2457,9 +2374,9 @@ support.")
     (arguments
      `(#:tests? #f))                    ; no included tests
     (inputs
-     `(("curl" ,curl)))
+     (list curl))
     (propagated-inputs
-     `(("ruby-ffi" ,ruby-ffi)))
+     (list ruby-ffi))
     (synopsis "Very lightweight @code{libcurl} wrapper")
     (description
      "Ethon is a very basic @code{libcurl} wrapper using ffi.")
@@ -2483,14 +2400,14 @@ support.")
          "0c0vd2mmqq3ar4plbwi2wsbr31vn4h45i19r5km66skydnnbp1y6"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("bundler" ,bundler)
-       ;; The test suite tests all the available backends. Currenly, this just
-       ;; means the node backend.
-       ;;
-       ;; PASSED: test:node
-       ;; SKIPPED: test:duktape, ;; test:javascriptcore, test:jscript,
-       ;; test:miniracer, test:rubyracer, ;; test:rubyrhino, test:v8
-       ("node" ,node)))
+     (list bundler
+           ;; The test suite tests all the available backends. Currenly, this just
+           ;; means the node backend.
+           ;;
+           ;; PASSED: test:node
+           ;; SKIPPED: test:duktape, ;; test:javascriptcore, test:jscript,
+           ;; test:miniracer, test:rubyracer, ;; test:rubyrhino, test:v8
+           node))
     (synopsis "Run JavaScript code from Ruby")
     (description
      "ExecJS lets you run JavaScript code from Ruby.  It automatically picks a
@@ -2531,10 +2448,7 @@ a Ruby object.")
                          (string-append dep "\n")))
                       #t)))))
     (native-inputs
-     `(("ruby-bump" ,ruby-bump)
-       ("ruby-maxitest" ,ruby-maxitest)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list ruby-bump ruby-maxitest ruby-rubocop ruby-rspec))
     (synopsis "Fake file system for Ruby")
     (description
      "This package provides a fake file system for use in test suites.  It
@@ -2575,8 +2489,7 @@ extensions.")
          "0xy8wmjwjcnv36zi042678ncjzpxvy351ccbv7mzkns2n3kxfp54"))))
     (build-system ruby-build-system)
     (inputs
-     `(("zlib" ,zlib)
-       ("libxml2" ,libxml2)))
+     (list zlib libxml2))
     (arguments
      '(#:tests? #f ; test suite hangs for unknown reason
        #:gem-flags
@@ -2607,8 +2520,7 @@ the GNOME Libxml2 XML toolkit.")
     (arguments
      '(#:tests? #f)) ; No included tests
     (propagated-inputs
-     `(("ruby-hamster" ,ruby-hamster)
-       ("ruby-open4" ,ruby-open4)))
+     (list ruby-hamster ruby-open4))
     (synopsis "Build and execute commands in Ruby")
     (description
      "@code{Lino} provides an interface to run external commands.  It provides
@@ -2701,8 +2613,7 @@ Ruby.")
                     (lambda _
                       (invoke "rspec" "spec"))))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)))
+     (list ruby-rspec ruby-simplecov))
     (synopsis "Ruby toolkit for building command-line interfaces")
     (description "Thor is a toolkit for building powerful command-line
 interfaces.")
@@ -2721,8 +2632,7 @@ interfaces.")
                 "06im7gcg42x77yhz2w5da2ly9xz0n0c36y5ks7xs53v0l9g0vf5n"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("ruby-timecop" ,ruby-timecop)))
+     (list ruby-rspec ruby-timecop))
     (synopsis "Logging utility library for Ruby")
     (description "Lumberjack is a simple logging utility that can be a drop in
 replacement for Logger or ActiveSupport::BufferedLogger.  It provides support
@@ -2774,12 +2684,11 @@ same log file.")
                (invoke "rspec"))
              #t)))))
     (propagated-inputs
-     `(("ruby-ffi" ,ruby-ffi)))
+     (list ruby-ffi))
     (inputs
-     `(("libsodium" ,libsodium)))
+     (list libsodium))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rspec))
     (synopsis "Ruby FFI binding to libsodium")
     (description
      "This package provides Ruby FFI bindings to the Networking and
@@ -2806,7 +2715,7 @@ high-level toolkit for building cryptographic systems and protocols.")
     (arguments
      `(#:test-target "default"))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (synopsis "HMAC-based Key Derivation Function")
     (description
      "This package provides a Ruby implementation of RFC5869: @acronym{HKDF,
@@ -2829,8 +2738,7 @@ take some source key material and generate suitable cryptographic keys from it."
     (arguments
      `(#:tests? #f)) ; no tests included
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("bundler" ,bundler)))
+     (list ruby-rspec bundler))
     (synopsis "Ruby interface for modifying the environment")
     (description "Nenv provides a convenient wrapper for Ruby's ENV to modify
 and inspect the environment.")
@@ -2923,9 +2831,7 @@ operations with permutations of sequences, such as strings and arrays.")
               (("^RSpec") "require \"shellany\"\nRSpec"))
             #t)))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("ruby-nenv" ,ruby-nenv)
-       ("bundler" ,bundler)))
+     (list ruby-rspec ruby-nenv bundler))
     (synopsis "Capture command output")
     (description "Shellany is a Ruby library providing functions to capture
 the output produced by running shell commands.")
@@ -2946,10 +2852,9 @@ the output produced by running shell commands.")
     ;; Tests are not included in the gem.
     (arguments `(#:tests? #f))
     (propagated-inputs
-     `(("ruby-shellany" ,ruby-shellany)
-       ("ruby-nenv" ,ruby-nenv)))
+     (list ruby-shellany ruby-nenv))
     (native-inputs
-     `(("bundler" ,bundler)))
+     (list bundler))
     (synopsis "Wrapper library for notification libraries")
     (description "Notiffany is a Ruby wrapper library for notification
 libraries such as Libnotify.")
@@ -2994,13 +2899,9 @@ libraries such as Libnotify.")
                       (setenv "HOME" "/tmp")
                       #t)))))
     (native-inputs
-     `(("ruby-activerecord" ,ruby-activerecord)
-       ("ruby-bump" ,ruby-bump)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-sqlite3" ,ruby-sqlite3)
-       ("ruby-wwtd" ,ruby-wwtd)))
+     (list ruby-activerecord ruby-bump ruby-rspec ruby-sqlite3 ruby-wwtd))
     (propagated-inputs
-     `(("ruby-parallel-tests" ,ruby-parallel-tests)))
+     (list ruby-parallel-tests))
     (synopsis "Run every test in a fork")
     (description
      "This package is a wrapper around @code{parallel_tests} that runs every
@@ -3063,10 +2964,9 @@ standard output stream.")
                (invoke "rspec"))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)))
+     (list bundler))
     (propagated-inputs
-     `(("ruby-rspec-core" ,ruby-rspec-core)
-       ("ruby-progressbar" ,ruby-progressbar)))
+     (list ruby-rspec-core ruby-progressbar))
     (synopsis "Fuubar is an RSpec formatter that uses a progress bar")
     (description
      "Fuubar is an RSpec formatter that uses a progress bar instead of a
@@ -3090,8 +2990,7 @@ failure.")
     (arguments
      '(#:tests? #f)) ; No included tests
     (propagated-inputs
-     `(("ruby-tilt" ,ruby-tilt)
-       ("ruby-temple" ,ruby-temple)))
+     (list ruby-tilt ruby-temple))
     (synopsis "Haml is a Ruby library to generate HTML documents")
     (description
      "@acronym{Haml, HTML Abstraction Markup Language} is a layer on top of
@@ -3137,9 +3036,9 @@ engine.")
              (invoke "rspec"))
            #t)))))
   (propagated-inputs
-   `(("ruby-concurrent" ,ruby-concurrent)))
+   (list ruby-concurrent))
   (native-inputs
-   `(("ruby-rspec" ,ruby-rspec)))
+   (list ruby-rspec))
   (synopsis "Efficient, immutable, thread-safe collection classes for Ruby")
   (description
     "Hamster provides 6 persistent data structures: @code{Hash}, @code{Vector},
@@ -3170,8 +3069,7 @@ immutable queue or stack).")
                (invoke "rspec"))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec-2)))
+     (list bundler ruby-rspec-2))
     (synopsis "HashDiff computes the smallest difference between two hashes")
     (description
      "HashDiff is a Ruby library to compute the smallest difference between
@@ -3205,9 +3103,9 @@ two hashes.")
                       (lambda _
                         (invoke "rspec"))))))
       (native-inputs
-       `(("ruby-rspec" ,ruby-rspec)))
+       (list ruby-rspec))
       (propagated-inputs
-       `(("ruby-byebug" ,ruby-byebug)))
+       (list ruby-byebug))
       (synopsis "Ruby hyphenation patterns")
       (description
        "ruby-hydra is a Ruby library for working with hyphenation patterns.")
@@ -3239,7 +3137,7 @@ two hashes.")
                ((" -rubygems") ""))
              #t)))))
     (propagated-inputs
-     `(("ruby-formatador" ,ruby-formatador)))
+     (list ruby-formatador))
     (synopsis "Simple depth first Ruby testing")
     (description "Shindo is a simple depth first testing library for Ruby.")
     (home-page "https://github.com/geemus/shindo")
@@ -3259,8 +3157,7 @@ two hashes.")
     ;; Tests need Internet access.
     (arguments `(#:tests? #f))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("ruby-yard" ,ruby-yard)))
+     (list ruby-rspec ruby-yard))
     (synopsis "Rake tasks for managing and releasing Ruby Gems")
     (description "Rubygems-task provides Rake tasks for managing and releasing
 Ruby Gems.")
@@ -3292,10 +3189,7 @@ Ruby Gems.")
              (("/usr/bin/env ruby") (which "ruby")))
            #t)))))
   (native-inputs
-   `(("bundler" ,bundler)
-     ("ruby-simplecov" ,ruby-simplecov)
-     ("zip" ,zip)
-     ("unzip" ,unzip)))
+   (list bundler ruby-simplecov zip unzip))
   (synopsis "Ruby module is for reading and writing zip files")
   (description
     "The rubyzip module provides ways to read from and create zip files.")
@@ -3315,7 +3209,7 @@ Ruby Gems.")
     (build-system ruby-build-system)
     (arguments `(#:tests? #f)) ; there are no tests
     (native-inputs
-     `(("bundler" ,bundler)))
+     (list bundler))
     (synopsis "Default HTML formatter for SimpleCov code coverage tool")
     (description "This package provides the default HTML formatter for
 the SimpleCov code coverage tool for Ruby version 1.9 and above.")
@@ -3337,11 +3231,9 @@ the SimpleCov code coverage tool for Ruby version 1.9 and above.")
     ;; Rubocop needs simplecov at build time.
     (arguments `(#:tests? #f))
     (propagated-inputs
-     `(("ruby-json" ,ruby-json)
-       ("ruby-docile" ,ruby-docile)
-       ("ruby-simplecov-html" ,ruby-simplecov-html)))
+     (list ruby-json ruby-docile ruby-simplecov-html))
     (native-inputs
-     `(("bundler" ,bundler)))
+     (list bundler))
     (synopsis "Code coverage framework for Ruby")
     (description "SimpleCov is a code coverage framework for Ruby with a
 powerful configuration library and automatic merging of coverage across test
@@ -3384,8 +3276,7 @@ User Agents.")
    '(;; TODO: This should be default, but there is one test failure
      #:test-target "all_spec"))
   (native-inputs
-   `(("ruby-mspec" ,ruby-mspec)
-     ("ruby-activesupport" ,ruby-activesupport)))
+   (list ruby-mspec ruby-activesupport))
   (synopsis "Backports of the features in newer Ruby versions")
   (description
     "Backports enables more compatibility across Ruby versions by providing
@@ -3425,7 +3316,7 @@ features.")
     (arguments
      ;; No tests
      '(#:tests? #f))
-    (propagated-inputs `(("ruby-bacon" ,ruby-bacon)))
+    (propagated-inputs (list ruby-bacon))
     (synopsis "Extensions to Bacon, for disabling tests, before and after
 blocks and more")
     (description
@@ -3450,7 +3341,7 @@ disable tests, have before and after blocks that run once and more.")
      '(;; No included tests
        #:tests? #f))
     (propagated-inputs
-     `(("ruby-bacon" ,ruby-bacon)))
+     (list ruby-bacon))
     (synopsis "Colored output for Bacon test framework")
     (description
      "This package adds color through ANSI escape codes to Bacon test
@@ -3470,7 +3361,7 @@ output.")
                 "0lflx29mlznf1hn0nihkgllzbj8xp5qasn8j7h838465pi399k68"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("bundler" ,bundler)))
+     (list bundler))
     (synopsis "Generic connection pool for Ruby")
     (description "Connection_pool provides a generic connection pooling
 interface for Ruby programs.")
@@ -3518,17 +3409,17 @@ interface for Ruby programs.")
                          "ActiveRecord::VERSION::MAJOR >= 4"))
                       #t)))))
     (native-inputs
-     `(;; For tests.
-       ("ruby-activerecord" ,ruby-activerecord)
-       ("ruby-activesupport" ,ruby-activesupport)
-       ("ruby-bump" ,ruby-bump)
-       ("ruby-forking-test-runner" ,ruby-forking-test-runner)
-       ("ruby-i18n" ,ruby-i18n)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-single-cov" ,ruby-single-cov)
-       ("ruby-sqlite3" ,ruby-sqlite3)
-       ("ruby-wwtd" ,ruby-wwtd)))
+     (list ;; For tests.
+           ruby-activerecord
+           ruby-activesupport
+           ruby-bump
+           ruby-forking-test-runner
+           ruby-i18n
+           ruby-rubocop
+           ruby-rspec
+           ruby-single-cov
+           ruby-sqlite3
+           ruby-wwtd))
     (synopsis "Fast implementation of @code{GetText}")
     (description
      "This package provides an alternative implementation of the Ruby
@@ -3548,8 +3439,7 @@ interface for Ruby programs.")
                 "156rv95bgxfz6qw5y1r7c7bswr77918hygl8dyl14qzbqc5vyp18"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-connection-pool" ,ruby-connection-pool)
-       ("ruby-hoe" ,ruby-hoe)))
+     (list ruby-connection-pool ruby-hoe))
     (synopsis "Persistent HTTP connection manager")
     (description "Net::HTTP::Persistent manages persistent HTTP connections
 using Net::HTTP, supporting reconnection and retry according to RFC 2616.")
@@ -3570,7 +3460,7 @@ using Net::HTTP, supporting reconnection and retry according to RFC 2616.")
     (arguments
      '(#:tests? #f))                    ; No included tests
     (native-inputs
-     `(("bundler" ,bundler)))
+     (list bundler))
     (synopsis "Assert library with descriptive assertion messages")
     (description "Power-assert is an assertion library providing descriptive
 assertion messages for tests.")
@@ -3592,9 +3482,7 @@ assertion messages for tests.")
     (arguments
      '(#:test-target "spec"))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-yard" ,ruby-yard)))
+     (list bundler ruby-rspec ruby-yard))
     (synopsis "Useful extensions to core Ruby classes")
     (description
      "This package provides a few useful extensions to core Ruby classes,
@@ -3619,8 +3507,7 @@ including @code{Array}, @code{Enumerable}, @code{Hash}, @code{Numeric}, and
     ;; dependency cycle we disable tests.
     (arguments `(#:tests? #f))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-yard" ,ruby-yard)))
+     (list bundler ruby-yard))
     (synopsis "Ruby library providing basic localization APIs")
     (description
      "Ruby-Locale is the pure ruby library which provides basic APIs for
@@ -3641,9 +3528,7 @@ localization.")
          "060zzj7c2kicdfk6cpnn40n9yjnhfrr13d0rsbdhdij68chp2861"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-tilt" ,ruby-tilt)
-       ("ruby-bacon" ,ruby-bacon)
-       ("ruby-erubis" ,ruby-erubis)))
+     (list ruby-tilt ruby-bacon ruby-erubis))
     (synopsis "Template compilation framework in Ruby")
     (description
      "Temple is an abstraction and framework for compiling templates to pure
@@ -3685,11 +3570,9 @@ Soundex, Metaphone, Double Metaphone, Porter Stemming.")
     ;; tests.
     (arguments `(#:tests? #f))
     (propagated-inputs
-     `(("ruby-locale" ,ruby-locale)
-       ("ruby-text" ,ruby-text)))
+     (list ruby-locale ruby-text))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-yard" ,ruby-yard)))
+     (list bundler ruby-yard))
     (synopsis "GNU gettext-like program for Ruby")
     (description
      "Gettext is a GNU gettext-like program for Ruby.  The catalog
@@ -3713,10 +3596,9 @@ use GNU gettext tools for maintenance.")
     ;; To break the dependency cycle we disable tests.
     (arguments `(#:tests? #f))
     (propagated-inputs
-     `(("ruby-gettext" ,ruby-gettext)
-       ("ruby-yard" ,ruby-yard)))
+     (list ruby-gettext ruby-yard))
     (native-inputs
-     `(("bundler" ,bundler)))
+     (list bundler))
     (synopsis "Utility library to package internationalized libraries")
     (description
      "Packnga is a library to translate to many languages using YARD.")
@@ -3736,9 +3618,7 @@ use GNU gettext tools for maintenance.")
          "1a2ym3l068d0pxzzr95kvqx87zpdsarxslz9ygd4qfm9frrz0kgj"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-mocha" ,ruby-mocha)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-mocha ruby-rspec))
     (synopsis "Creates temporary files and directories for testing")
     (description
      "TestConstruct is a @acronym{DSL, Domain Specific Language} for creating
@@ -3758,11 +3638,9 @@ temporary files and directories during tests.")
                 "15isy7vhppbfd0032klirj9gxp65ygkzjdwrmm28xpirlcsk6qpd"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-power-assert" ,ruby-power-assert)))
+     (list ruby-power-assert))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-packnga" ,ruby-packnga)
-       ("ruby-yard" ,ruby-yard)))
+     (list bundler ruby-packnga ruby-yard))
     (synopsis "Unit testing framework for Ruby")
     (description "@code{Test::Unit} is unit testing framework for Ruby, based
 on xUnit principles.  These were originally designed by Kent Beck, creator of
@@ -3796,10 +3674,9 @@ It allows writing tests, checking results and automated testing in Ruby.")
                (invoke "rspec"))
              #t)))))
     (propagated-inputs
-     `(("ruby-builder" ,ruby-builder)))
+     (list ruby-builder))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec-2)))
+     (list bundler ruby-rspec-2))
     (synopsis "Write HTML pages in pure Ruby")
     (description
      "Markaby allows writing HTML packages in pure Ruby.  This is similar to
@@ -3831,9 +3708,7 @@ mixture of HTML and additional ERB syntax.")
                (invoke "rspec"))
              #t)))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-nokogiri-diff" ,ruby-nokogiri-diff)))
+     (list ruby-rspec ruby-simplecov ruby-nokogiri-diff))
     (synopsis "Markdown interpreter in Ruby")
     (description
      "Maruku is a Markdown interpreter in Ruby.  It can export Markdown to
@@ -3867,8 +3742,7 @@ HTML, and PDF through LaTeX.")
                                  "/lib\""))))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-test-unit" ,ruby-test-unit)))
+     (list bundler ruby-test-unit))
     (synopsis "Ruby library adding metaclass method to all objects")
     (description
      "Metaclass is a Ruby library adding a @code{metaclass} method to all Ruby
@@ -3888,7 +3762,7 @@ objects.")
                 "0br9k6zijj1zc25n8p7f2j1mwl58nfgdknf3q13h9k156jvrir06"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-ptools" ,ruby-ptools)))
+     (list ruby-ptools))
     (synopsis "Lightweight alternative to @code{mkmf}")
     (description
      "@code{mkmf-lite} is a light version of Ruby's @code{mkmf.rb} designed
@@ -3930,9 +3804,7 @@ to check for the presence of header files, constants, and so on.")
                (invoke "rspec" "spec"))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rake" ,ruby-rake)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rake ruby-rspec))
     (synopsis "MSpec is a specialized framework for RubySpec")
     (description
      "MSpec is a specialized framework that is syntax-compatible with RSpec 2
@@ -3990,8 +3862,7 @@ specs for Ruby implementations in ruby/spec.")
      `(("mariadb-dev" ,mariadb "dev")
        ("zlib" ,zlib)))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)))
+     (list ruby-rspec ruby-rake-compiler))
     (synopsis "MySQL library for Ruby, binding to libmysql")
     (description
      "This package provides a simple, fast MySQL library for Ruby, binding to
@@ -4016,8 +3887,7 @@ libmysql.")
          (replace 'check
           (lambda _ (invoke "rspec" "spec/"))))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rspec))
     (synopsis "Abstract base class with no predefined methods")
     (description
      "BlankSlate provides an abstract base class with no predefined
@@ -4044,9 +3914,7 @@ as a base class when writing classes that depend upon
      ;; https://github.com/cldwalker/bond/issues/46).
      `(#:tests? #f))
     (native-inputs
-     `(("ruby-bacon" ,ruby-bacon)
-       ("ruby-bacon-bits" ,ruby-bacon-bits)
-       ("ruby-mocha-on-bacon" ,ruby-mocha-on-bacon)))
+     (list ruby-bacon ruby-bacon-bits ruby-mocha-on-bacon))
     (synopsis "Bond can provide custom autocompletion for arguments, methods
 and more")
     (description
@@ -4090,7 +3958,7 @@ irb's last-word approach.")
                         (find-files "./test" ".*\\.rb"))))
              #t)))))
     (inputs
-     `(("libidn" ,libidn)))
+     (list libidn))
     (synopsis "Ruby Bindings for the GNU LibIDN library")
     (description
      "Ruby Bindings for the GNU LibIDN library, an implementation of the
@@ -4131,10 +3999,9 @@ encoded form.")
                                  "/lib\""))))
              #t)))))
     (propagated-inputs
-     `(("ruby-blankslate" ,ruby-blankslate)))
+     (list ruby-blankslate))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-test-unit" ,ruby-test-unit)))
+     (list bundler ruby-test-unit))
     (synopsis "Instantiate an arbitrary Ruby class")
     (description
      "Instantiator lets you instantiate an arbitrary Ruby class without
@@ -4168,12 +4035,9 @@ knowing anything about the constructor.")
                                 "/lib\""))))
             #t)))))
     (propagated-inputs
-     `(("ruby-instantiator" ,ruby-instantiator)
-       ("ruby-metaclass" ,ruby-metaclass)))
+     (list ruby-instantiator ruby-metaclass))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-blankslate" ,ruby-blankslate)
-       ("ruby-test-unit" ,ruby-test-unit)))
+     (list bundler ruby-blankslate ruby-test-unit))
     (synopsis "Dynamic inspection of the method hierarchy on a Ruby object")
     (description
      "Introspection provides tools to inspect the hierarchy of method
@@ -4203,9 +4067,7 @@ definitions on a Ruby object.")
                "task :test => %w[test:unit]"))
             #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-test-unit" ,ruby-test-unit)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)))
+     (list bundler ruby-test-unit ruby-rake-compiler))
     (synopsis "Extensible Markdown to (X)HTML converter")
     (description
      "Redcarpet is an extensible Ruby library for Markdown processing and
@@ -4228,7 +4090,7 @@ conversion to (X)HTML.")
   (arguments
    '(#:tests? #f)) ; No included tests
   (propagated-inputs
-   `(("ruby-listen" ,ruby-listen)))
+   (list ruby-listen))
   (synopsis "Run a process, and restart when some monitored files change")
   (description
     "Rerun is a tool to launch programs, then monitor the file system, and
@@ -4282,7 +4144,7 @@ Ruby, but can be used for all programs.")
        ("ruby-rspec" ,ruby-rspec)
        ("ruby-wwtd" ,ruby-wwtd)))
     (propagated-inputs
-     `(("ruby-minitest" ,ruby-minitest)))
+     (list ruby-minitest))
     (synopsis "Minitest with extra features")
     (description
      "Maxitest is a wrapper around Minitest with extra functionality such
@@ -4313,7 +4175,7 @@ number, support for interrupted tests, better backtraces, and more.")
                 "true\n"))
              #t)))))
     (native-inputs
-     `(("ruby-introspection" ,ruby-introspection)))
+     (list ruby-introspection))
     (synopsis "Mocking and stubbing library for Ruby")
     (description
      "Mocha is a mocking and stubbing library with JMock/SchMock syntax, which
@@ -4337,7 +4199,7 @@ allows mocking and stubbing of methods on real (non-mock) classes.")
     (arguments
      ;; rubygems.org release missing tests
      '(#:tests? #f))
-    (propagated-inputs `(("ruby-mocha" ,ruby-mocha)))
+    (propagated-inputs (list ruby-mocha))
     (synopsis "Mocha adapter for Bacon")
     (description
      "This package provides a Mocha adapter for Bacon, allowing you to use the
@@ -4358,9 +4220,7 @@ Mocha stubbing and mocking library with Bacon, a small RSpec clone.")
                 "07c4v97zl1daabmri9zlbzs6yvkl56z1q14bw74d53jdj0c17nhx"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-mocha" ,ruby-mocha)
-       ("ruby-test-unit" ,ruby-test-unit)))
+     (list bundler ruby-mocha ruby-test-unit))
     (synopsis "Ruby implementation of the SSH2 client protocol")
     (description "@code{Net::SSH} is a pure-Ruby implementation of the SSH2
 client protocol.  It allows you to write programs that invoke and interact
@@ -4384,11 +4244,9 @@ with processes on remote servers, via SSH2.")
         (base32 "1nyn17sy71fn7zs3y6wbgcn35318c10flqgc0582409095x4h0sx"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-test-unit" ,ruby-test-unit)
-       ("ruby-mocha" ,ruby-mocha)))
+     (list bundler ruby-test-unit ruby-mocha))
     (propagated-inputs
-     `(("ruby-net-ssh" ,ruby-net-ssh)))
+     (list ruby-net-ssh))
     (synopsis "Pure-Ruby SCP client library")
     (description "@code{Net::SCP} is a pure-Ruby implementation of the SCP
 client protocol.")
@@ -4407,7 +4265,7 @@ client protocol.")
                 "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)))
+     (list ruby-hoe))
     (synopsis "Small test suite library for Ruby")
     (description "Minitest provides a complete suite of Ruby testing
 facilities supporting TDD, BDD, mocking, and benchmarking.")
@@ -4460,12 +4318,9 @@ facilities supporting TDD, BDD, mocking, and benchmarking.")
                (("%q<cucumber>.*") "%q<cucumber>, [\">= 0\"])\n"))
              #t)))))
     (propagated-inputs
-     `(("ruby-minitest" ,ruby-minitest)))
+     (list ruby-minitest))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-cucumber" ,ruby-cucumber)
-       ("ruby-bump" ,ruby-bump)
-       ("ruby-test-construct" ,ruby-test-construct)))
+     (list bundler ruby-cucumber ruby-bump ruby-test-construct))
     (synopsis "Run code around tests in Minitest")
     (description
      "This library provides a way to run code around tests in Minitest,
@@ -4485,8 +4340,7 @@ written using either the unit test or spec style.")
                 "179d6pj56l9xzm46fqsqj10mzjkr1f9fv4cxa8wvchs97hqz33w1"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)
-       ("ruby-minitest" ,ruby-minitest)))
+     (list ruby-hoe ruby-minitest))
     (synopsis "Fast test suite runner for minitest")
     (description "Minitest-sprint is a test runner for minitest that makes it
 easier to re-run individual failing tests.")
@@ -4505,9 +4359,9 @@ easier to re-run individual failing tests.")
                 "0zhdwcl6bgha61qiyfvr7zs7ywaxc33wmj9xhxl8jdmpdvifvfaj"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)))
+     (list ruby-hoe))
     (inputs
-     `(("ruby-minitest" ,ruby-minitest)))
+     (list ruby-minitest))
     (synopsis "Bacon compatibility library for minitest")
     (description "Minitest-bacon extends minitest with bacon-like
 functionality, making it easier to migrate test suites from bacon to minitest.")
@@ -4527,9 +4381,9 @@ functionality, making it easier to migrate test suites from bacon to minitest.")
          "1zgjslp6d7dzcn8smj595idymgd5j603p9g2jqkfgi28sqbhz6m0"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-minitest" ,ruby-minitest)))
+     (list ruby-minitest))
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)))
+     (list ruby-hoe))
     (synopsis "Allows a few specific tests to be focused on")
     (description
      "@code{minitest-focus} gives the ability focus on a few tests with ease
@@ -4563,8 +4417,7 @@ is to be run.")
              (lambda _
                (invoke "script/test"))))))
       (native-inputs
-       `(("bundler" ,bundler)
-         ("ruby-turn" ,ruby-turn)))
+       (list bundler ruby-turn))
       (synopsis "Pretty-print hashes and arrays in MiniTest")
       (description
        "@code{minitest-pretty_diff} monkey-patches
@@ -4600,8 +4453,7 @@ structures when tests fail.")
                (("require 'byebug'") ""))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-minitest" ,ruby-minitest)))
+     (list bundler ruby-minitest))
     (synopsis "Extra features and changes to MiniTest")
     (description "@code{MiniTest Moar} add some additional features and
 changes some default behaviours in MiniTest.  For instance, Moar replaces the
@@ -4633,10 +4485,8 @@ MiniTest @code{Object#stub} with a global @code{stub} method.")
                (("require 'minitest/bisect'") ""))
              #t)))))
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)
-       ("ruby-minitest-pretty-diff" ,ruby-minitest-pretty-diff)
-       ("ruby-minitest-focus" ,ruby-minitest-focus)
-       ("ruby-minitest-moar" ,ruby-minitest-moar)))
+     (list ruby-hoe ruby-minitest-pretty-diff ruby-minitest-focus
+           ruby-minitest-moar))
     (synopsis "Bonus assertions for @code{Minitest}")
     (description
      "Minitest bonus assertions provides extra MiniTest assertions.  For
@@ -4674,13 +4524,9 @@ instance, it provides @code{assert_true}, @code{assert_false} and
                ((".*%q<rubocop>.*") "\n"))
              #t)))))
     (propagated-inputs
-     `(("ruby-ansi" ,ruby-ansi)
-       ("ruby-builder" ,ruby-builder)
-       ("ruby-minitest" ,ruby-minitest)
-       ("ruby-progressbar" ,ruby-progressbar)))
+     (list ruby-ansi ruby-builder ruby-minitest ruby-progressbar))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-maruku" ,ruby-maruku)))
+     (list bundler ruby-maruku))
     (synopsis "Enhanced reporting for Minitest tests")
     (description
      "@code{minitest/reporters} provides a custom Minitest runner to improve
@@ -4708,7 +4554,7 @@ reporter.")
      ;; https://github.com/blowmage/minitest-rg/pull/13
      `(#:tests? #f))
     (propagated-inputs
-     `(("ruby-minitest" ,ruby-minitest)))
+     (list ruby-minitest))
     (synopsis "Coloured output for Minitest")
     (description
      "@code{minitest-rg} changes the colour of the output from Minitest.")
@@ -4729,7 +4575,7 @@ reporter.")
          "1pp3k2608spj4kvqy2y16hs18an917g6vwgvphrfhjviac83090x"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-minitest" ,ruby-minitest)))
+     (list ruby-minitest))
     (synopsis "Adjust minitest behaviour for calling expectation methods")
     (description
      "Minitest-global_expectations allows continued use of expectation methods
@@ -4756,8 +4602,7 @@ minitest 5.12, and is planned to be removed from minitest 6.")
        ;; https://github.com/jeremyevans/minitest-hooks/issues/19
        #:tests? #f))
     (native-inputs
-     `(("ruby-sequel" ,ruby-sequel)
-       ("ruby-sqlite3" ,ruby-sqlite3)))
+     (list ruby-sequel ruby-sqlite3))
     (synopsis "Hooks for the minitest framework")
     (description
      "Minitest-hooks adds @code{around}, @code{before_all}, @code{after_all},
@@ -4822,7 +4667,7 @@ URIs using the normal URI.parse method.")
                 "0c9rk23ilhc0n4489y6lda2wzphpzh6ish6fahlbpjhxn82wb931"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-minitest" ,ruby-minitest)))
+     (list ruby-minitest))
     (synopsis "Recursively merge hashes")
     (description
      "Deep Merge is a set of utility functions for @code{Hash}.  It permits
@@ -4857,7 +4702,7 @@ you to merge elements inside a hash together recursively.")
                            (string-append "'" git "'")))
                         #t))))))
     (inputs
-     `(("git" ,git)))
+     (list git))
     (synopsis "Ruby wrappers for Git")
     (description "Ruby/Git is a Ruby library that can be used to create, read
 and manipulate Git repositories by wrapping system calls to the git binary.")
@@ -4886,8 +4731,7 @@ and manipulate Git repositories by wrapping system calls to the git binary.")
                           (format #t "test suite not run~%"))
                       #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rspec))
     (synopsis "HOCON config library")
     (description
      "This package provides Ruby support for the @acronym{HOCON,
@@ -4908,7 +4752,7 @@ objects back to a @code{String}.")
                 "0bfm8535g0rkn9cbjndkckf0f7a3wj0rg4rqhrpsgxnbfdf2lm0p"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-minitest" ,ruby-minitest)))
+     (list ruby-minitest))
     (synopsis "Ruby command line option parser")
     (description "Slop provides a Ruby domain specific language for gathering
 options and parsing command line flags.")
@@ -4958,7 +4802,7 @@ Nokogiri, Ox, or REXML.")
                 "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("bundler" ,bundler)))
+     (list bundler))
     (synopsis "Multipart POST library for Ruby")
     (description "Multipart-Post Adds multipart POST capability to Ruby's
 net/http library.")
@@ -4990,10 +4834,7 @@ net/http library.")
              ;; As seen in the .travis.yml file.
              (setenv "SKIP_ADAPTERS" "gson,jr_jackson,nsjsonserialization"))))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("ruby-json-pure" ,ruby-json-pure)
-       ("ruby-oj" ,ruby-oj)
-       ("ruby-yajl-ruby" ,ruby-yajl-ruby)))
+     (list ruby-rspec ruby-json-pure ruby-oj ruby-yajl-ruby))
     (synopsis "Common interface to multiple JSON libraries for Ruby")
     (description
      "This package provides a common interface to multiple JSON libraries,
@@ -5063,7 +4904,7 @@ various relational database implementations.")
      '(;; No included tests
        #:tests? #f))
     (propagated-inputs
-     `(("ruby-mimemagic" ,ruby-mimemagic)))
+     (list ruby-mimemagic))
     (synopsis "MIME type detection using magic numbers, filenames and extensions")
     (description
      "@code{marcel} provides @acronym{MIME, Multipurpose Internet Mail
@@ -5129,7 +4970,10 @@ to reproduce user environments.")
                (base32
                 "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy"))))))
 
-(define-public ruby-nokogiri
+;; TODO: In the next rebuild cycle, provide texlive a version of ruby-hydra
+;; that does not depend on byebug and rspec, so that their dependencies can
+;; be updated more freely.  For now pin this version to avoid rebuilds.
+(define-public ruby-nokogiri-1.10
   (package
     (name "ruby-nokogiri")
     (version "1.10.9")
@@ -5164,20 +5008,49 @@ to reproduce user environments.")
                                  "/lib'\n"))))
              #t)))))
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)))
+     (list ruby-hoe))
     (inputs
-     `(("zlib" ,zlib)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)))
+     (list zlib libxml2 libxslt))
     (propagated-inputs
-     `(("ruby-mini-portile" ,ruby-mini-portile-2)
-       ("ruby-pkg-config" ,ruby-pkg-config)))
+     (list ruby-mini-portile-2 ruby-pkg-config))
     (synopsis "HTML, XML, SAX, and Reader parser for Ruby")
     (description "Nokogiri (鋸) parses and searches XML/HTML, and features
 both CSS3 selector and XPath 1.0 support.")
     (home-page "http://www.nokogiri.org/")
     (license license:expat)))
 
+;; nokogiri requires this version exactly.
+(define-public ruby-mini-portile-2.6.1
+  (package
+    (inherit ruby-mini-portile)
+    (version "2.6.1")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "mini_portile2" version))
+              (sha256
+               (base32
+                "1lvxm91hi0pabnkkg47wh1siv56s6slm2mdq1idfm86dyfidfprq"))))))
+
+(define-public ruby-nokogiri
+  (package
+    (inherit ruby-nokogiri-1.10)
+    (version "1.12.5")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "nokogiri" version))
+              (sha256
+               (base32
+                "1v02g7k7cxiwdcahvlxrmizn3avj2q6nsjccgilq1idc89cr081b"))))
+    (arguments
+     '(#:tests? #f                      ;XXX: no tests in rubygem
+       #:gem-flags (list "--" "--use-system-libraries"
+                         (string-append "--with-xml2-include="
+                                        (assoc-ref %build-inputs "libxml2")
+                                        "/include/libxml2"))))
+    (propagated-inputs
+     (modify-inputs (package-propagated-inputs ruby-nokogiri-1.10)
+       (replace "ruby-mini-portile" ruby-mini-portile-2.6.1)))))
+
 (define-public ruby-method-source
   (package
     (name "ruby-method-source")
@@ -5200,7 +5073,7 @@ both CSS3 selector and XPath 1.0 support.")
                (("git ls-files") "find . -type f"))
              #t)))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (synopsis "Retrieve the source code for Ruby methods")
     (description "Method_source retrieves the source code for Ruby methods.
 Additionally, it can extract source code from Proc and Lambda objects or just
@@ -5242,7 +5115,7 @@ for select languages.")
     (build-system ruby-build-system)
     (arguments `(#:tests? #f))          ;no test suite in gem
     (propagated-inputs
-     `(("ruby-gherkin" ,ruby-gherkin)))
+     (list ruby-gherkin))
     (synopsis "Gherkin test suite analysis tool")
     (description "CukeModeler facilitates modeling a test suite that is
 written in Gherkin (e.g.  Cucumber, SpecFlow, Lettuce, etc.).  It does this by
@@ -5303,15 +5176,15 @@ then be analyzed or manipulated more easily than the underlying AST layer.")
                       (setenv "HOME" "/tmp")
                       #t)))))
     (native-inputs
-     `(("ruby-bump" ,ruby-bump)
-       ("ruby-cucumber" ,ruby-cucumber)
-       ("ruby-cuke-modeler" ,ruby-cuke-modeler)
-       ("ruby-minitest" ,ruby-minitest)
-       ("ruby-rake" ,ruby-rake)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-spinach" ,ruby-spinach)))
+     (list ruby-bump
+           ruby-cucumber
+           ruby-cuke-modeler
+           ruby-minitest
+           ruby-rake
+           ruby-rspec
+           ruby-spinach))
     (propagated-inputs
-     `(("ruby-parallel" ,ruby-parallel)))
+     (list ruby-parallel))
     (synopsis "Run tests in parallel")
     (description
      "This package can speed up @code{Test::Unit}, @code{RSpec},
@@ -5334,14 +5207,11 @@ across multiple CPU cores.")
     (arguments
      '(#:tests? #f)) ; tests not included in gem
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-cliver" ,ruby-cliver)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-racc" ,ruby-racc)))
+     (list bundler ruby-cliver ruby-simplecov ruby-racc))
     (inputs
-     `(("ragel" ,ragel)))
+     (list ragel))
     (propagated-inputs
-     `(("ruby-ast" ,ruby-ast)))
+     (list ruby-ast))
     (synopsis "Ruby parser written in pure Ruby")
     (description
      "This package provides a Ruby parser written in pure Ruby.")
@@ -5362,7 +5232,7 @@ across multiple CPU cores.")
     (build-system ruby-build-system)
     (native-inputs
      ;; TODO: Add ruby-minitest-proveit once available.
-     `(("hoe" ,ruby-hoe)))
+     (list ruby-hoe))
     (synopsis "ParseTree fork which includes generic S-exp processing tools")
     (description "The sexp_processor package is derived from ParseTree, but
 contrary to ParseTree, it includes all the generic S-exp processing tools.
@@ -5384,11 +5254,9 @@ Amongst the included tools are @code{Sexp}, @code{SexpProcessor} and
          "09qcdyjjw3p7g6cjm5m9swkms1xnv35ndiy7yw24cas16qrhha6c"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("hoe" ,ruby-hoe)
-       ("racc" ,ruby-racc)
-       ("unifdef" ,unifdef)))
+     (list ruby-hoe ruby-racc unifdef))
     (propagated-inputs
-     `(("ruby-sexp-processor" ,ruby-sexp-processor)))
+     (list ruby-sexp-processor))
     (home-page "https://github.com/seattlerb/ruby_parser/")
     (synopsis "Ruby parser written in pure Ruby")
     (description "The ruby_parser (RP) package provides a Ruby parser written
@@ -5417,7 +5285,7 @@ back to Ruby via the @code{ruby2ruby} library.")
                ;; Loosen the requirement for pdf-inspector
                (("~> 1\\.0\\.7") ">= 0")))))))
     (propagated-inputs
-     `(("ruby-coderay" ,ruby-coderay)))
+     (list ruby-coderay))
     (synopsis "Tool for writing manuals for Prawn and Prawn accessories")
     (description
      "This package provides a tool for writing manuals for Prawn and Prawn
@@ -5440,12 +5308,9 @@ accessories")
     (arguments
      '(#:test-target "spec"))
     (propagated-inputs
-     `(("ruby-highline" ,ruby-highline)
-       ("ruby-options" ,ruby-options)))
+     (list ruby-highline ruby-options))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-timecop" ,ruby-timecop)))
+     (list bundler ruby-rspec ruby-timecop))
     (synopsis
      "Ruby library for displaying progress bars")
     (description
@@ -5513,8 +5378,7 @@ The output can be customized with a formatting system.")
     (arguments
      '(#:tests? #f)) ; no tests
     (propagated-inputs
-     `(("ruby-coderay" ,ruby-coderay)
-       ("ruby-method-source" ,ruby-method-source)))
+     (list ruby-coderay ruby-method-source))
     (synopsis "Ruby REPL")
     (description "Pry is an IRB alternative and runtime developer console for
 Ruby.  It features syntax highlighting, a plugin architecture, runtime
@@ -5566,10 +5430,7 @@ invocation, and source and documentation browsing.")
                          "xit \"complains when coverage is bad\""))
                       #t)))))
     (native-inputs
-     `(("ruby-bump" ,ruby-bump)
-       ("ruby-minitest" ,ruby-minitest)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)))
+     (list ruby-bump ruby-minitest ruby-rspec ruby-simplecov))
     (synopsis "Code coverage reporting tool")
     (description
      "This package provides actionable code coverage reports for Ruby
@@ -5590,7 +5451,7 @@ development tools to catch coverage problems early.")
           "1v1rk78khwq87ar300lwll570zxpkq9rjnpgc9mgsyd6mm9qjz4w"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)))
+     (list ruby-hoe))
     (synopsis "Ruby lexer")
     (description
      "Oedipus Lex is a lexer generator in the same family as Rexical and Rex.
@@ -5630,17 +5491,16 @@ Oedipus matches on the first match, not the longest.")
           (lambda _
             (invoke "gem" "build" "guard.gemspec"))))))
     (propagated-inputs
-     `(("ruby-formatador" ,ruby-formatador)
-       ("ruby-listen" ,ruby-listen)
-       ("ruby-lumberjack" ,ruby-lumberjack)
-       ("ruby-nenv" ,ruby-nenv)
-       ("ruby-notiffany" ,ruby-notiffany)
-       ("ruby-pry" ,ruby-pry)
-       ("ruby-shellany" ,ruby-shellany)
-       ("ruby-thor" ,ruby-thor)))
+     (list ruby-formatador
+           ruby-listen
+           ruby-lumberjack
+           ruby-nenv
+           ruby-notiffany
+           ruby-pry
+           ruby-shellany
+           ruby-thor))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rspec))
     (synopsis "Tool to handle events on file system modifications")
     (description
      "Guard is a command line tool to easily handle events on file system
@@ -5667,9 +5527,7 @@ file or directories are modified.")
        ;; capybara is available.
        '(#:tests? #f))
     (propagated-inputs
-     `(("ruby-colorize" ,ruby-colorize)
-       ("ruby-gherkin-ruby" ,ruby-gherkin-ruby)
-       ("ruby-json" ,ruby-json)))
+     (list ruby-colorize ruby-gherkin-ruby ruby-json))
     (synopsis "Gherkin-based BDD framework")
     (description
      "Spinach is a high-level @acronym{BDD, Behavior-driven development}
@@ -5713,14 +5571,9 @@ define executable specifications of your code.")
                (("group :secondary") "[].each"))
              #t)))))
     (propagated-inputs
-     `(("ruby-pandoc-ruby" ,ruby-pandoc-ruby)
-       ("ruby-sassc" ,ruby-sassc)))
+     (list ruby-pandoc-ruby ruby-sassc))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-yard" ,ruby-yard)
-       ("ruby-builder" ,ruby-builder)
-       ("ruby-erubis" ,ruby-erubis)
-       ("ruby-markaby" ,ruby-markaby)))
+     (list bundler ruby-yard ruby-builder ruby-erubis ruby-markaby))
     (synopsis "Generic interface to multiple Ruby template engines")
     (description
      "Tilt is a thin interface over a number of different Ruby template
@@ -5788,7 +5641,7 @@ utilities for Ruby.")
     (propagated-inputs
      `(("ruby-concurrent-ruby" ,ruby-concurrent)))
     (native-inputs
-     `(("ruby-simplecov" ,ruby-simplecov)))
+     (list ruby-simplecov))
     (synopsis "Time zone library for Ruby")
     (description "TZInfo is a Ruby library that provides daylight savings
 aware transformations between times in different time zones.")
@@ -5833,7 +5686,7 @@ aware transformations between times in different time zones.")
                (setenv "cc" ,(cc-for-target))
              #t)))))
     (propagated-inputs
-     `(("ruby-tzinfo" ,ruby-tzinfo)))
+     (list ruby-tzinfo))
     (native-inputs
      `(("tzdata"
         ,(file-union "tzdata-for-ruby-tzdata-info"
@@ -5896,9 +5749,9 @@ IANA Time Zone database packaged as Ruby modules for use with @code{TZInfo}.")
           (lambda _
             (invoke "gem" "build" "rb-inotify.gemspec"))))))
     (propagated-inputs
-     `(("ruby-ffi" ,ruby-ffi)))
+     (list ruby-ffi))
     (native-inputs
-     `(("ruby-yard" ,ruby-yard)))
+     (list ruby-yard))
     (synopsis "Ruby wrapper for Linux's inotify")
     (description "rb-inotify is a simple wrapper over the @code{inotify} Linux
 kernel subsystem for monitoring changes to files and directories.")
@@ -5918,7 +5771,7 @@ kernel subsystem for monitoring changes to files and directories.")
     (build-system ruby-build-system)
     (arguments `(#:tests? #f)) ; no tests included
     (native-inputs
-     `(("bundler" ,bundler)))
+     (list bundler))
     (synopsis "Open the current REPL line in an editor")
     (description
      "This gem provides a plugin for the Ruby REPL to enable opening the
@@ -5951,11 +5804,9 @@ current line in an external editor.")
                "gem 'rake'\ngem 'rdoc'\ngem 'json'\n"))
             #t)))))
     (propagated-inputs
-     `(("ruby-json" ,ruby-json)))
+     (list ruby-json))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-minitest" ,ruby-minitest)
-       ("ruby-hoe" ,ruby-hoe)))
+     (list bundler ruby-minitest ruby-hoe))
     (synopsis "Generate searchable RDoc documentation")
     (description
      "SDoc is an RDoc documentation generator to build searchable HTML
@@ -5989,7 +5840,7 @@ documentation for Ruby code.")
               (("\"lib/spruz\", ") ""))
             (invoke "gem" "build" "tins.gemspec"))))))
     (propagated-inputs
-     `(("ruby-sync" ,ruby-sync)))
+     (list ruby-sync))
     (synopsis "Assorted tools for Ruby")
     (description "Tins is a Ruby library providing assorted tools.")
     (home-page "https://github.com/flori/tins")
@@ -6016,9 +5867,7 @@ documentation for Ruby code.")
           (lambda _
             (invoke "gem" "build" "gem_hadar.gemspec"))))))
     (propagated-inputs
-     `(("git" ,git)
-       ("ruby-tins" ,ruby-tins)
-       ("ruby-yard" ,ruby-yard)))
+     (list git ruby-tins ruby-yard))
     (synopsis "Library for the development of Ruby gems")
     (description
      "This library contains some useful functionality to support the
@@ -6065,7 +5914,7 @@ development of Ruby gems.")
     (propagated-inputs
      `(("ruby-minitest-4" ,ruby-minitest-4)))
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)))
+     (list ruby-hoe))
     (synopsis "Adapter library between minitest and test/unit")
     (description
      "This library bridges the gap between the small and fast minitest and
@@ -6098,10 +5947,9 @@ Ruby's large and slower test/unit.")
           (lambda _
             (invoke "gem" "build" "term-ansicolor.gemspec"))))))
     (propagated-inputs
-     `(("ruby-tins" ,ruby-tins)))
+     (list ruby-tins))
     (native-inputs
-     `(("ruby-gem-hadar" ,ruby-gem-hadar)
-       ("ruby-minitest-tu-shim" ,ruby-minitest-tu-shim)))
+     (list ruby-gem-hadar ruby-minitest-tu-shim))
     (synopsis "Ruby library to control the attributes of terminal output")
     (description
      "This Ruby library uses ANSI escape sequences to control the attributes
@@ -6125,7 +5973,7 @@ of terminal output.")
   (arguments
    '(#:tests? #f)) ; No included tests
   (propagated-inputs
-   `(("ruby-lino" ,ruby-lino)))
+   (list ruby-lino))
   (synopsis "Ruby wrapper around the Terraform command line interface")
   (description
    "This package provides a Ruby wrapper around the Terraform command line
@@ -6145,8 +5993,7 @@ interface so that Terraform can be more easily invoked from Ruby code.")
                 "0ld3ng37y92kv9vqnachw1l3n07hsc8hrnjs9d840liw0mysf1vp"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-gem-hadar" ,ruby-gem-hadar)
-       ("bundler" ,bundler)))
+     (list ruby-gem-hadar bundler))
     (synopsis "Create a process tree data structure")
     (description
      "This library uses the output of the @code{ps} command to create a
@@ -6167,13 +6014,9 @@ process tree data structure for the current host.")
                 "196zhgcygrnx09bb9mh22qas03rl9avzx8qs0wnxznpin4pffwcl"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-tins" ,ruby-tins)
-       ("ruby-term-ansicolor" ,ruby-term-ansicolor)
-       ("ruby-pstree" ,ruby-pstree)
-       ("ruby-pry-editline" ,ruby-pry-editline)))
+     (list ruby-tins ruby-term-ansicolor ruby-pstree ruby-pry-editline))
     (native-inputs
-     `(("ruby-gem-hadar" ,ruby-gem-hadar)
-       ("bundler" ,bundler)))
+     (list ruby-gem-hadar bundler))
     (synopsis "Command line tools for working with Ruby")
     (description
      "This package provides assorted command line tools that may be useful
@@ -6242,11 +6085,7 @@ a native C extension.")
                ;; Since this is not a git repository, do not call 'git'.
                (("`git ls-files`") "`find . -type f |sort`")))))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ragel" ,ragel)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-test-unit" ,ruby-test-unit)
-       ("which" ,which)))
+     (list bundler ragel ruby-simplecov ruby-test-unit which))
     (synopsis "JSON implementation in pure Ruby")
     (description
      "This package provides a JSON implementation written in pure Ruby.")
@@ -6281,9 +6120,7 @@ a native C extension.")
                (("Codacy::Reporter\\.start") ""))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rbnacl" ,ruby-rbnacl)))
+     (list bundler ruby-rspec ruby-rbnacl))
     (synopsis "Ruby implementation of the JSON Web Token standard")
     (description
      "This package provides a pure Ruby implementation of the RFC 7519 OAuth
@@ -6347,16 +6184,13 @@ a native C extension.")
                ((".*rubocop.*") ""))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rspec))
     (inputs
-     `(;; ruby-thor is used for the command line interface, and is referenced
-       ;; in the wrapper, and therefore just needs to be an input.
-       ("ruby-thor" ,ruby-thor)))
+     (list ;; ruby-thor is used for the command line interface, and is referenced
+           ;; in the wrapper, and therefore just needs to be an input.
+           ruby-thor))
     (propagated-inputs
-     `(("ruby-rb-fsevent" ,ruby-rb-fsevent)
-       ("ruby-rb-inotify" ,ruby-rb-inotify)
-       ("ruby-dep" ,ruby-dep)))
+     (list ruby-rb-fsevent ruby-rb-inotify ruby-dep))
     (synopsis "Listen to file modifications")
     (description "The Listen gem listens to file modifications and notifies
 you about the changes.")
@@ -6366,37 +6200,27 @@ you about the changes.")
 (define-public ruby-loofah
   (package
     (name "ruby-loofah")
-    (version "2.3.1")
+    (version "2.13.0")
+    (home-page "https://github.com/flavorjones/loofah")
     (source
      (origin
-       (method url-fetch)
-       (uri (rubygems-uri "loofah" version))
+       ;; Build from git because the gem lacks tests.
+       (method git-fetch)
+       (uri (git-reference (url home-page)
+                           (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "0npqav026zd7r4qdidq9x5nxcp2dzg71bnp421xxx7sngbxf2xbd"))))
+         "0rmsm7mckiq0gslfqdl02yvn500n42v84gq28qjqn4yq9jwfs9ga"))))
     (build-system ruby-build-system)
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-unnecessary-dependencies
-           (lambda _
-             ;; concourse is a development tool which is unused, so remove it
-             ;; so it's not required.
-             (substitute* "Rakefile"
-               (("require \"concourse\"") "")
-               (("Concourse\\.new.*") "task :concourse do\n"))
-             #t)))))
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)
-       ("ruby-rr" ,ruby-rr)))
+     (list ruby-hoe ruby-hoe-markdown ruby-rr))
     (propagated-inputs
-     `(("ruby-nokogiri" ,ruby-nokogiri)
-       ("ruby-crass" ,ruby-crass)))
+     (list ruby-nokogiri ruby-crass))
     (synopsis "Ruby library for manipulating and transforming HTML/XML")
     (description
      "Loofah is a general library for manipulating and transforming HTML/XML
 documents and fragments.  It's built on top of Nokogiri and libxml2.")
-    (home-page "https://github.com/flavorjones/loofah")
     (license license:expat)))
 
 (define-public ruby-activesupport
@@ -6419,12 +6243,12 @@ documents and fragments.  It's built on top of Nokogiri and libxml2.")
              ;; There are no tests, instead attempt to load the library.
              (invoke "ruby" "-Ilib" "-r" "active_support"))))))
     (propagated-inputs
-     `(("ruby-concurrent" ,ruby-concurrent)
-       ("ruby-i18n" ,ruby-i18n)
-       ("ruby-minitest" ,ruby-minitest)
-       ("ruby-tzinfo" ,ruby-tzinfo)
-       ("ruby-tzinfo-data" ,ruby-tzinfo-data)
-       ("ruby-zeitwerk" ,ruby-zeitwerk)))
+     (list ruby-concurrent
+           ruby-i18n
+           ruby-minitest
+           ruby-tzinfo
+           ruby-tzinfo-data
+           ruby-zeitwerk))
     (synopsis "Ruby on Rails utility library")
     (description "ActiveSupport is a toolkit of support libraries and Ruby
 core extensions extracted from the Rails framework.  It includes support for
@@ -6470,11 +6294,11 @@ multibyte strings, internationalization, time zones, and testing.")
                 "1qg0iyw450lw6d0j1ghzg79a6l60nm1m4qmrzwzybi585861jxcx"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-rake-compiler" ,ruby-rake-compiler)))
+     (list ruby-rake-compiler))
     (inputs
-     `(("gumbo-parser" ,gumbo-parser)))
+     (list gumbo-parser))
     (propagated-inputs
-     `(("ruby-nokogiri" ,ruby-nokogiri)))
+     (list ruby-nokogiri))
     (synopsis "Ruby bindings to the Gumbo HTML5 parser")
     (description
      "Nokogumbo allows a Ruby program to invoke the Gumbo HTML5 parser and
@@ -6501,11 +6325,9 @@ access the result as a Nokogiri parsed document.")
                 "0lj0q9yhjp0q0in5majkshnki07mw8m2vxgndx4m5na6232aszl0"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-crass" ,ruby-crass)
-       ("ruby-nokogiri" ,ruby-nokogiri)
-       ("ruby-nokogumbo" ,ruby-nokogumbo)))
+     (list ruby-crass ruby-nokogiri ruby-nokogumbo))
     (native-inputs
-     `(("ruby-minitest" ,ruby-minitest)))
+     (list ruby-minitest))
     (synopsis "Whitelist-based HTML and CSS sanitizer")
     (description
      "Sanitize is a whitelist-based HTML and CSS sanitizer.  Given a list of
@@ -6534,7 +6356,7 @@ lock with a counter.")
 (define-public ruby-oj
   (package
     (name "ruby-oj")
-    (version "3.10.1")
+    (version "3.13.9")
     (source
      (origin
        (method git-fetch)
@@ -6546,7 +6368,7 @@ lock with a counter.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0i5xjx4sh816zx2c1a4d1q67k7vllg5jnnc4jy6zhbmwi1dvp5vw"))))
+         "0a24zd28y58nyhjxgrpn2k9p72vzj3zbmdrcsbhwbdycj7nn9fpd"))))
     (build-system ruby-build-system)
     (arguments
      '(#:test-target "test_all"
@@ -6558,9 +6380,7 @@ lock with a counter.")
                (("Bundler\\.with_clean_env") "1.times")
                (("bundle exec ") "")))))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)))
+     (list bundler ruby-rspec ruby-rake-compiler))
     (synopsis "JSON parser for Ruby optimized for speed")
     (description
      "Oj is a JSON parser and generator for Ruby, where the encoding and
@@ -6638,11 +6458,9 @@ alternative to Marshal for Object serialization. ")
     (arguments
      '(#:test-target "spec"))
     (native-inputs
-     `(("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-hoe" ,ruby-hoe)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rake-compiler ruby-hoe ruby-rspec))
     (inputs
-     `(("postgresql" ,postgresql)))
+     (list postgresql))
     (synopsis "Ruby interface to PostgreSQL")
     (description "Pg is the Ruby interface to the PostgreSQL RDBMS.  It works
 with PostgreSQL 9.0 and later.")
@@ -6699,13 +6517,13 @@ with PostgreSQL 9.0 and later.")
              (setenv "HOME" (getcwd))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-chandler" ,ruby-chandler)
-       ("ruby-minitest" ,ruby-minitest)
-       ("ruby-pry" ,ruby-pry)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-yard" ,ruby-yard)))
+     (list bundler
+           ruby-chandler
+           ruby-minitest
+           ruby-pry
+           ruby-rake-compiler
+           ruby-rubocop
+           ruby-yard))
     (synopsis "Debugger for Ruby 2")
     (description "Byebug is a Ruby 2 debugger implemented using the Ruby 2
 TracePoint C API for execution control and the Debug Inspector C API for call
@@ -6741,7 +6559,7 @@ other things and it comes with a command line interface.")
              (substitute* "test/test_netrc.rb"
                (("Dir.pwd, '.netrc'") "Netrc.home_path, '.netrc'")))))))
     (native-inputs
-     `(("ruby-minitest" ,ruby-minitest)))
+     (list ruby-minitest))
     (synopsis "Library to read and update netrc files")
     (description
      "This library can read and update netrc files, preserving formatting
@@ -6773,9 +6591,7 @@ including comments and whitespace.")
                ((".*rake-compiler-dock.*") ""))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-test-unit" ,ruby-test-unit)))
+     (list bundler ruby-rake-compiler ruby-test-unit))
     (synopsis "Unicode normalization form support library")
     (description
      "This package provides unicode normalization form support for Ruby.")
@@ -6799,9 +6615,7 @@ including comments and whitespace.")
                   "0n3gq8rx49f7ln6zqlshqfg2mgqyy30rsdjlnki5mv307ykc7ad4"))))
       (build-system ruby-build-system)
       (native-inputs
-       `(("ruby-rspec" ,ruby-rspec)
-         ("ruby-yard" ,ruby-yard)
-         ("ruby-rubygems-tasks" ,ruby-rubygems-tasks)))
+       (list ruby-rspec ruby-yard ruby-rubygems-tasks))
       (synopsis "Calculate the differences between two tree-like structures")
       (description
        "This library provides functions to calculate the differences between two
@@ -6826,12 +6640,11 @@ tree-like structures.  It is similar to Ruby's built-in @code{TSort} module.")
                   "1ah2sfjh9n1p0ln2wkqzfl448ml7j4zfy6dhp1qgzq2m41php6rf"))))
       (build-system ruby-build-system)
       (propagated-inputs
-       `(("ruby-tdiff" ,ruby-tdiff)
-         ("ruby-nokogiri" ,ruby-nokogiri)))
+       (list ruby-tdiff
+             ;; Use a fixed version to prevent rebuilds; see ruby-nokogiri TODO.
+             ruby-nokogiri-1.10))
       (native-inputs
-       `(("ruby-rspec" ,ruby-rspec)
-         ("ruby-yard" ,ruby-yard)
-         ("ruby-rubygems-tasks" ,ruby-rubygems-tasks)))
+       (list ruby-rspec ruby-yard ruby-rubygems-tasks))
       (synopsis "Calculate the differences between two XML/HTML documents")
       (description
        "@code{Nokogiri::Diff} adds the ability to calculate the
@@ -6854,8 +6667,7 @@ differences (added or removed nodes) between two XML/HTML documents.")
     (arguments
      `(#:tests? #f))            ; Fails while parsing test instructions.
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)))
+     (list ruby-hoe ruby-rake-compiler))
     (synopsis "LALR(1) parser generator for Ruby")
     (description
      "Racc is a LALR(1) parser generator.  It is written in Ruby itself, and
@@ -6913,8 +6725,7 @@ generates Ruby program.")
                                  (number->string (+ 33 size-diff))))))
              #t)))))
     (native-inputs
-     `(("ruby-minitest" ,ruby-minitest)
-       ("ruby-minitest-global-expectations" ,ruby-minitest-global-expectations)))
+     (list ruby-minitest ruby-minitest-global-expectations))
     (synopsis "Unified web application interface for Ruby")
     (description "Rack provides a minimal, modular and adaptable interface for
 developing web applications in Ruby.  By wrapping HTTP requests and responses,
@@ -6945,7 +6756,7 @@ into a single method call.")
            (lambda _
              (invoke "ruby" "-Ilib" "-r" "rack/test"))))))
     (propagated-inputs
-     `(("ruby-rack" ,ruby-rack)))
+     (list ruby-rack))
     (synopsis "Testing API for Rack applications")
     (description
      "Rack::Test is a small, simple testing API for Rack applications.  It can
@@ -6970,11 +6781,9 @@ testing libraries to build on.")
      '(;; Tests missing from the gem.
        #:tests? #f))
     (propagated-inputs
-     `(("ruby-rack" ,ruby-rack)))
+     (list ruby-rack))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec-2)
-       ("ruby-rack-test" ,ruby-rack-test)))
+     (list bundler ruby-rspec-2 ruby-rack-test))
     (synopsis "Rack middleware that protects against typical web attacks")
     (description "Rack middleware that can be used to protect against typical
 web attacks.  It can protect all Rack apps, including Rails.  For instance, it
@@ -7006,8 +6815,7 @@ clickjacking, directory traversal, session hijacking and IP spoofing.")
                (invoke "rspec"))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rspec))
     (synopsis "Colorize printed text on ANSI terminals")
     (description
      "@code{rainbow} provides a string presenter object to colorize strings by
@@ -7030,8 +6838,7 @@ wrapping them in ANSI escape codes.")
     (arguments
      '(#:tests? #f)) ; test files not included
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rspec))
     (synopsis "Ruby test double framework")
     (description
      "RR is a test double framework that features a rich selection of double
@@ -7072,13 +6879,9 @@ techniques and a terse syntax.")
              (delete-file "spec/integration/httpbin_spec.rb")
              #t)))))
     (propagated-inputs
-     `(("ruby-http-cookie" ,ruby-http-cookie)
-       ("ruby-mime-types" ,ruby-mime-types)
-       ("ruby-netrc" ,ruby-netrc)))
+     (list ruby-http-cookie ruby-mime-types ruby-netrc))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-webmock" ,ruby-webmock-2)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-webmock-2 ruby-rspec))
     (synopsis "Simple HTTP and REST client for Ruby")
     (description
      "@code{rest-client} provides a simple HTTP and REST client for Ruby,
@@ -7116,15 +6919,15 @@ inspired by the Sinatra microframework style of specifying actions:
                          (format #f "`find ~a -type f| sort`" files)))
                       #t)))))
     (native-inputs
-     `(("ruby-bump" ,ruby-bump)
-       ("ruby-oedipus-lex" ,ruby-oedipus-lex)
-       ("ruby-pry" ,ruby-pry)
-       ("ruby-racc" ,ruby-racc)
-       ("ruby-rake" ,ruby-rake)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)))
+     (list ruby-bump
+           ruby-oedipus-lex
+           ruby-pry
+           ruby-racc
+           ruby-rake
+           ruby-rspec
+           ruby-simplecov))
     (propagated-inputs
-     `(("ruby-parser" ,ruby-parser)))
+     (list ruby-parser))
     (synopsis "RuboCop's AST extensions and NodePattern functionality")
     (description "Rubocop::AST extends @code{ruby-parser} with classes used
 by RuboCop to deal with Ruby's Abstract Syntax Tree (AST), in particular:
@@ -7210,7 +7013,7 @@ better performance than @code{Regexp} and @code{String} methods from the
                          (string-append stripped "\n")))
                       #t)))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (synopsis "Simple arrays of objects to arrays of ranges compressor")
     (description "RangeCompresses is a tiny library that allows compressing
 arrays of objects into arrays of ranges.  For example, it can turn the
@@ -7238,11 +7041,8 @@ following: @code{[1, 2, 3, 4, 6, 8, 9, 10]} into @code{[1..4, 6..6, 8..10]}.")
       (arguments
        '(#:test-target "default"))
       (native-inputs
-       `(("ruby-character-set" ,ruby-character-set)
-         ("ruby-rake" ,ruby-rake)
-         ("ruby-rake-compiler" ,ruby-rake-compiler)
-         ("ruby-range-compressor" ,ruby-range-compressor)
-         ("ruby-rspec" ,ruby-rspec)))
+       (list ruby-character-set ruby-rake ruby-rake-compiler
+             ruby-range-compressor ruby-rspec))
       (synopsis "Inspect Ruby's regex engine property values")
       (description "This small library lets you see which property values are
 supported by the regular expression engine of the Ruby version you are running
@@ -7279,9 +7079,7 @@ they match.")
                       (delete-file-recursively "pkg")
                       #t)))))
     (native-inputs
-     `(("ragel" ,ragel)
-       ("ruby-regexp-property-values" ,ruby-regexp-property-values)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list ragel ruby-regexp-property-values ruby-rspec))
     (synopsis "A regular expression parser library for Ruby ")
     (description "A Ruby gem for tokenizing, parsing, and transforming regular
 expressions.  It comprises the following components:
@@ -7314,7 +7112,7 @@ expressions.  It comprises the following components:
                (invoke "rspec"))
              #t)))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (synopsis "Minitest/RSpec parallel test runner for CI environments")
     (description "The test-queue module is a parallel test runner,
 built using a centralized queue to ensure optimal distribution of
@@ -7377,13 +7175,13 @@ run.")
        ("ruby-webmock" ,ruby-webmock)
        ("ruby-yard" ,ruby-yard)))
     (propagated-inputs
-     `(("ruby-parallel" ,ruby-parallel)
-       ("ruby-parser" ,ruby-parser)
-       ("ruby-rainbow" ,ruby-rainbow)
-       ("ruby-regexp-parser" ,ruby-regexp-parser)
-       ("ruby-rubocop-ast" ,ruby-rubocop-ast)
-       ("ruby-progressbar" ,ruby-progressbar)
-       ("ruby-unicode-display-width" ,ruby-unicode-display-width)))
+     (list ruby-parallel
+           ruby-parser
+           ruby-rainbow
+           ruby-regexp-parser
+           ruby-rubocop-ast
+           ruby-progressbar
+           ruby-unicode-display-width))
     (synopsis "Ruby code style checking tool")
     (description
      "@code{rubocop} is a Ruby code style checking tool.  It aims to enforce
@@ -7433,7 +7231,7 @@ contexts without performance penalties.")
          "00rcscz16idp6dx0dk5yi5i0fz593i3r6anbn5bg2q07v3i025wm"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-bacon" ,ruby-bacon)))
+     (list ruby-bacon))
     (synopsis "Creole markup language converter")
     (description
      "Creole is a lightweight markup language and this library for converting
@@ -7494,7 +7292,7 @@ abstraction for Ruby.")
          "1n9397j7kh4vvikfann1467qgksc679imlr50hax3lk1q3af8kdw"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)))
+     (list ruby-hoe))
     (synopsis "Iterations per second enhancement for the Ruby Benchmark module")
     (description "Benchmark-ips enhances the Ruby Benchmark module with the
 iterations per second count.  For short snippets of code, it can automatically
@@ -7528,10 +7326,10 @@ figure out how many times to run the code to get interesting data.")
                     (lambda _
                       (invoke "rspec"))))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (inputs
-     `(("zeromq" ,zeromq)))
-    (propagated-inputs `(("ruby-ffi" ,ruby-ffi)))
+     (list zeromq))
+    (propagated-inputs (list ruby-ffi))
     (synopsis "Low-level Ruby FFI wrapper for the ZeroMQ networking library")
     (description "This library only provides the FFI wrapper for the ZeroMQ
 networking library.  It can be used to implement a Ruby API for the ZeroMQ
@@ -7557,9 +7355,9 @@ library.")
                               (lambda _
                                 (invoke "rspec"))))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (propagated-inputs
-     `(("ruby-ffi-rzmq-core" ,ruby-ffi-rzmq-core)))
+     (list ruby-ffi-rzmq-core))
     (synopsis "High-level Ruby wrapper for the ZeroMQ networking library")
     (description "This library provides a high-level API that wraps the ZeroMQ
 networking library using the Ruby foreign function interface (FFI).  It is a
@@ -7581,8 +7379,7 @@ for FFI.")
          "0yrdchs3psh583rjapkv33mljdivggqn99wkydkjdckcjn43j3cz"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-addressable" ,ruby-addressable)
-       ("ruby-faraday" ,ruby-faraday)))
+     (list ruby-addressable ruby-faraday))
     (synopsis "Experimental hypermedia agent for Ruby")
     (description "Sawyer is an experimental hypermedia agent for Ruby built on
 top of Faraday.")
@@ -7603,8 +7400,7 @@ top of Faraday.")
     (build-system ruby-build-system)
     (arguments '(#:tests? #f))          ;no test suite in the gem release
     (propagated-inputs
-     `(("ruby-faraday" ,ruby-faraday)
-       ("ruby-sawyer" ,ruby-sawyer)))
+     (list ruby-faraday ruby-sawyer))
     (synopsis "Ruby toolkit for the GitHub API")
     (description "Octokit wraps the GitHub API in a flat API client that
 follows Ruby conventions and requires little knowledge of REST.")
@@ -7624,10 +7420,9 @@ follows Ruby conventions and requires little knowledge of REST.")
          "1n8a4mr2jkcz5vaaps45g2rxa2pzy1wb7cylgw85xmmyyp14lnrr"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-rubocop" ,ruby-rubocop)))
+     (list ruby-rubocop))
     (propagated-inputs
-     `(("ruby-netrc" ,ruby-netrc)
-       ("ruby-octokit" ,ruby-octokit)))
+     (list ruby-netrc ruby-octokit))
     (synopsis "Sync CHANGELOG entries to GitHub's release notes")
     (description "Chandler syncs a project's CHANGELOG file entries to
 GitHub's release notes to remove the need of manually entering release
@@ -7657,12 +7452,9 @@ notes.")
                       (setenv "HOME" (getcwd))
                       #t)))))
     (native-inputs
-     `(("ruby-chandler" ,ruby-chandler)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-simplecov" ,ruby-simplecov)))
+     (list ruby-chandler ruby-rubocop ruby-simplecov))
     (propagated-inputs
-     `(("ruby-byebug" ,ruby-byebug)
-       ("ruby-pry" ,ruby-pry)))
+     (list ruby-byebug ruby-pry))
     (synopsis "Step-by-step debugging and stack navigation in Pry")
     (description "This package adds step-by-step debugging and stack
 navigation capabilities to @code{pry}, using @code{byebug}.")
@@ -7693,8 +7485,7 @@ navigation capabilities to @code{pry}, using @code{byebug}.")
            (lambda _
              (invoke "rake" "compile"))))))
     (native-inputs
-     `(("ruby-mocha" ,ruby-mocha)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)))
+     (list ruby-mocha ruby-rake-compiler))
     (synopsis "Sampling profiler for Ruby code")
     (description
      "@code{stackprof} is a fast sampling profiler for Ruby code, with cpu,
@@ -7718,7 +7509,7 @@ wallclock and object allocation samplers.")
     ;; (see: https://github.com/banister/binding_of_caller/issues/76).
     (arguments '(#:tests? #f))
     (propagated-inputs
-     `(("ruby-debug-inspector" ,ruby-debug-inspector)))
+     (list ruby-debug-inspector))
     (synopsis "Retrieve the binding of a method's caller")
     (description "The @code{binding_of_caller} module provides the
 @code{Binding#of_caller} method.  It allows accessing bindings from upper
@@ -7740,8 +7531,7 @@ frames in the call stack and can evaluate code in that context.")
     (build-system ruby-build-system)
     (arguments '(#:tests? #f))          ;no test suite in gem release
     (propagated-inputs
-     `(("ruby-binding-of-caller" ,ruby-binding-of-caller)
-       ("ruby-pry" ,ruby-pry)))
+     (list ruby-binding-of-caller ruby-pry))
     (synopsis "Call-stack navigation plugin for the Pry REPL")
     (description "@code{pry-stack_explorer} is a plugin for the Pry REPL that
 add support to navigate the call-stack.")
@@ -7803,10 +7593,7 @@ variable length integers (varint) in Ruby Protocol Buffers.")
           (lambda _
             (invoke "rake" "compile"))))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-minitest" ,ruby-minitest)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-rdoc" ,ruby-rdoc)))
+     (list bundler ruby-minitest ruby-rake-compiler ruby-rdoc))
     (synopsis "Fast code profiler for Ruby")
     (description "RubyProf is a fast code profiler for Ruby.  Its features
 include:
@@ -7880,7 +7667,7 @@ Profiling multiple threads simultaneously is supported.
     (propagated-inputs
      `(("ruby-protobuf" ,ruby-protobuf-cucumber)))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (home-page "https://github.com/cucumber/messages-ruby")
     (synopsis "Cucumber Messages for Ruby (Protocol Buffers)")
     (description "Cucumber Messages for Ruby is a library which allows
@@ -7903,8 +7690,7 @@ Cucumber.")
                 "1dwa8632nc6kijv8p257jl64rsjmc0fimlaqvxlkdi2h9n1nympb"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-cucumber-messages" ,ruby-cucumber-messages)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list ruby-cucumber-messages ruby-rspec))
     (arguments
      `(#:test-target "spec"))
     (synopsis "Gherkin parser for Ruby")
@@ -7983,18 +7769,15 @@ It is intended be used by all Cucumber implementations to parse
          (add-before 'check 'set-home
            (lambda _ (setenv "HOME" "/tmp") #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-fuubar" ,ruby-fuubar)
-       ("ruby-simplecov" ,ruby-simplecov)))
-    (propagated-inputs
-     `(("ruby-childprocess" ,ruby-childprocess)
-       ("ruby-contracts" ,ruby-contracts)
-       ("ruby-cucumber" ,ruby-cucumber)
-       ("ruby-ffi" ,ruby-ffi)
-       ("ruby-rspec-expectations" ,ruby-rspec-expectations)
-       ("ruby-thor" ,ruby-thor)
-       ("ruby-yard" ,ruby-yard)))
+     (list bundler ruby-rspec ruby-fuubar ruby-simplecov))
+    (propagated-inputs
+     (list ruby-childprocess
+           ruby-contracts
+           ruby-cucumber
+           ruby-ffi
+           ruby-rspec-expectations
+           ruby-thor
+           ruby-yard))
     (synopsis "Test command-line applications with Cucumber, RSpec or Minitest")
     (description
      "Aruba is an extension for Cucumber, RSpec and Minitest for testing
@@ -8029,8 +7812,8 @@ language.")
   (build-system ruby-build-system)
   (arguments
    `(#:test-target "spec"))
-  (propagated-inputs `(("ruby-ffi" ,ruby-ffi)))
-  (native-inputs `(("ruby-rspec" ,ruby-rspec)))
+  (propagated-inputs (list ruby-ffi))
+  (native-inputs (list ruby-rspec))
   (synopsis "Ruby interface for gathering system information")
   (description "The sys-uname library provides an interface for gathering
 information about your current platform.  It allows retrieving information
@@ -8062,10 +7845,9 @@ such as the OS name, OS version, system name, etc.")
                     (lambda _
                       (invoke "rspec"))))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (propagated-inputs
-     `(("ruby-cucumber-messages" ,ruby-cucumber-messages)
-       ("ruby-sys-uname" ,ruby-sys-uname)))
+     (list ruby-cucumber-messages ruby-sys-uname))
     (synopsis "Function to create @code{Meta} messages for Cucumber Ruby")
     (description "The @code{createMeta} utility function allows generating
 system-specific @code{Meta} messages for Cucumber Ruby.")
@@ -8090,9 +7872,9 @@ system-specific @code{Meta} messages for Cucumber Ruby.")
                     (lambda _
                       (invoke "rspec"))))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (propagated-inputs
-     `(("ruby-cucumber-messages" ,ruby-cucumber-messages)))
+     (list ruby-cucumber-messages))
     (synopsis "HTML formatter for Cucumber")
     (description "Cucumber HTML Formatter produces a HTML report for Cucumber
 runs.  It is built on top of cucumber-react and works with any Cucumber
@@ -8140,24 +7922,24 @@ master/html-formatter/ruby")
              (setenv "HOME" (getcwd))
              #t)))))
     (propagated-inputs
-     `(("ruby-builder" ,ruby-builder)
-       ("ruby-cucumber-core" ,ruby-cucumber-core)
-       ("ruby-cucumber-create-meta" ,ruby-cucumber-create-meta)
-       ("ruby-cucumber-html-formatter" ,ruby-cucumber-html-formatter)
-       ("ruby-cucumber-messages" ,ruby-cucumber-messages)
-       ("ruby-cucumber-wire" ,ruby-cucumber-wire)
-       ("ruby-diff-lcs" ,ruby-diff-lcs)
-       ("ruby-gherkin" ,ruby-gherkin)
-       ("ruby-multi-json" ,ruby-multi-json)
-       ("ruby-multi-test" ,ruby-multi-test)))
-    (native-inputs
-     `(;; Use a untested version of aruba, to avoid a circular dependency, as
-       ;; ruby-aruba depends on ruby-cucumber.
-       ("ruby-aruba" ,ruby-aruba-without-tests)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-pry" ,ruby-pry)
-       ("ruby-nokogiri" ,ruby-nokogiri)
-       ("ruby-rubocop" ,ruby-rubocop)))
+     (list ruby-builder
+           ruby-cucumber-core
+           ruby-cucumber-create-meta
+           ruby-cucumber-html-formatter
+           ruby-cucumber-messages
+           ruby-cucumber-wire
+           ruby-diff-lcs
+           ruby-gherkin
+           ruby-multi-json
+           ruby-multi-test))
+    (native-inputs
+     (list ;; Use a untested version of aruba, to avoid a circular dependency, as
+           ;; ruby-aruba depends on ruby-cucumber.
+           ruby-aruba-without-tests
+           ruby-rspec
+           ruby-pry
+           ruby-nokogiri
+           ruby-rubocop))
     (synopsis "Describe automated tests in plain language")
     (description "Cucumber is a tool for running automated tests written in
 plain language.  It's designed to support a Behaviour Driven Development (BDD)
@@ -8200,10 +7982,7 @@ software development workflow.")
                          (string-append stripped ")\n")))
                       #t)))))
     (propagated-inputs
-     `(("ruby-json" ,ruby-json)
-       ("ruby-term-ansicolor" ,ruby-term-ansicolor)
-       ("ruby-thor" ,ruby-thor)
-       ("ruby-tins" ,ruby-tins)))
+     (list ruby-json ruby-term-ansicolor ruby-thor ruby-tins))
     (synopsis "Ruby implementation of the Coveralls API")
     (description "This package provides a Ruby implementation of the Coveralls
 API.")
@@ -8255,15 +8034,11 @@ in already-indented code.")
                  "'cucumber-tag-expressions', '>=2.0.0'\n"))
              #t)))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("ruby-coveralls" ,ruby-coveralls)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-unindent" ,ruby-unindent)))
+     (list ruby-rspec ruby-coveralls ruby-rubocop ruby-simplecov
+           ruby-unindent))
     (propagated-inputs
-     `(("ruby-cucumber-messages" ,ruby-cucumber-messages)
-       ("ruby-gherkin" ,ruby-gherkin)
-       ("ruby-cucumber-tag-expressions" ,ruby-cucumber-tag-expressions)))
+     (list ruby-cucumber-messages ruby-gherkin
+           ruby-cucumber-tag-expressions))
     (synopsis "Core library for the Cucumber BDD app")
     (description "Cucumber is a tool for running automated tests
 written in plain language.  Because they're written in plain language,
@@ -8291,8 +8066,7 @@ and trust on your team.")
     (arguments
      '(#:test-target "spec"))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)))
+     (list ruby-rspec ruby-simplecov))
     (synopsis "Simpler alternative to Regular Expressions")
     (description "Cucumber Expressions offer similar functionality to Regular
 Expressions, with a syntax that is easier to read and write.  Cucumber
@@ -8322,9 +8096,8 @@ Expressions are extensible with parameter types.")
                ((" 10\\.1") " 10.2"))
              #t)))))
     (propagated-inputs
-     `(("ruby-cucumber-core" ,ruby-cucumber-core)
-       ("ruby-cucumber-expressions" ,ruby-cucumber-expressions)
-       ("ruby-cucumber-messages" ,ruby-cucumber-messages)))
+     (list ruby-cucumber-core ruby-cucumber-expressions
+           ruby-cucumber-messages))
     (synopsis "Cucumber wire protocol plugin")
     (description "Cucumber's wire protocol allows step definitions to be
 implemented and invoked on any platform.")
@@ -8349,7 +8122,7 @@ implemented and invoked on any platform.")
     (arguments
      `(#:test-target "spec"))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (synopsis "Cucumber tag expressions for Ruby")
     (description "Cucumber tag expression parser for Ruby.  A tag expression
 is an infix boolean expression used by Cucumber.")
@@ -8371,8 +8144,7 @@ is an infix boolean expression used by Cucumber.")
     (arguments
      '(#:test-target "default"))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)))
+     (list bundler ruby-rake-compiler))
     (synopsis "Provides access for bindings relating to Ruby exceptions")
     (description
      "@code{bindex} provides a way to access the bindings that relate to
@@ -8396,7 +8168,7 @@ exception occurred.")
     (arguments
      `(#:tests? #f)) ; rake errors, missing shoulda
     (propagated-inputs
-     `(("ruby-log4r" ,ruby-log4r)))
+     (list ruby-log4r))
     (synopsis "Log4r wrapper for Ruby")
     (description "Bio-logger is a wrapper around Log4r adding extra logging
 features such as filtering and fine grained logging.")
@@ -8426,8 +8198,7 @@ features such as filtering and fine grained logging.")
                 "$LOAD_PATH << 'lib'; require 'yajl'"))
              #t)))))
      (native-inputs
-      `(("ruby-rake-compiler" ,ruby-rake-compiler)
-        ("ruby-rspec" ,ruby-rspec)))
+      (list ruby-rake-compiler ruby-rspec))
      (synopsis "Streaming JSON parsing and encoding library for Ruby")
      (description
       "Ruby C bindings to the Yajl JSON stream-based parser library.  The API
@@ -8534,10 +8305,9 @@ Test.run :default do |run|
 end")))
              (invoke "ruby" "-Ilib" "-rrubytest" ".test"))))))
     (native-inputs
-     `(("ruby-ae" ,ruby-ae)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list ruby-ae ruby-rspec))
     (propagated-inputs
-     `(("ruby-rubytest" ,ruby-rubytest)))
+     (list ruby-rubytest))
     (synopsis "Behavior-Driven Development (BDD) framework built on RubyTest")
     (description "Spectroscope is a Behavior-Driven Development (BDD)
 framework built on RubyTest, designed to emulate RSpec in most respects.  It
@@ -8587,12 +8357,9 @@ TomDoc format.")
                     (lambda _
                       (invoke "rubytest" "-Ilib" "-Itest" "test/"))))))
     (native-inputs
-     `(("ruby-rubytest-cli" ,ruby-rubytest-cli)
-       ("ruby-spectroscope" ,ruby-spectroscope)
-       ("ruby-ae" ,ruby-ae)))
+     (list ruby-rubytest-cli ruby-spectroscope ruby-ae))
     (propagated-inputs
-     `(("ruby-tomparse" ,ruby-tomparse)
-       ("ruby-yard" ,ruby-yard)))
+     (list ruby-tomparse ruby-yard))
     (synopsis "TomDoc syntax for YARD")
     (description "This module adds support for the TomDoc documentation format
 to YARD, a documentation generation tool for Ruby.")
@@ -8631,7 +8398,7 @@ simple case of executing code based on the flags or parameters passed.")
                 "1mldhjn62g53vx4gq2qdqg2lgjvyrqxa8d0khf8347bbfgi16d32"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-clap" ,ruby-clap)))
+     (list ruby-clap))
     (synopsis "Run tests in separate processes")
     (description
      "Cutest runs tests in separate processes to avoid shared state.")
@@ -8669,8 +8436,7 @@ simple case of executing code based on the flags or parameters passed.")
     (inputs
      `(("pygments" ,python-pygments)))
     (native-inputs
-     `(("ruby-cutest" ,ruby-cutest)
-       ("ruby-nokogiri" ,ruby-nokogiri)))
+     (list ruby-cutest ruby-nokogiri))
     (synopsis "Thin Ruby wrapper around pygmentize")
     (description
      "Pygmentize provides a simple way to call pygmentize from within a Ruby
@@ -8692,8 +8458,10 @@ application.")
     (build-system ruby-build-system)
     (arguments
      '(#:tests? #f))               ; test suite tries to connect to google.com
+    (inputs
+     (list openssl))
     (native-inputs
-     `(("ruby-rake-compiler" ,ruby-rake-compiler)))
+     (list ruby-rake-compiler))
     (synopsis "Single-threaded network event framework for Ruby")
     (description
      "EventMachine implements a single-threaded engine for arbitrary network
@@ -8743,9 +8511,7 @@ used to create both network servers and clients.")
              (delete-file-recursively "pkg")
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rake" ,ruby-rake)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rake ruby-rspec))
     (synopsis "Simplifies checking for Ruby implementation")
     (description
      "@code{ruby_engine} provides an RubyEngine class that can be used to
@@ -8776,8 +8542,7 @@ name and provides query methods such as @{RubyEngine.mri?}.")
            (lambda _
              (invoke "ruby" "-Ilib" "bin/turn" "-h"))))))
     (propagated-inputs
-     `(("ruby-ansi" ,ruby-ansi)
-       ("ruby-minitest" ,ruby-minitest-4)))
+     (list ruby-ansi ruby-minitest-4))
     (synopsis "Alternate set of alternative runners for MiniTest")
     (description
      "TURN provides a set of alternative runners for MiniTest which are both
@@ -8804,7 +8569,7 @@ that TURN is no longer being maintained.")
          ;; This phase breaks the tests, as it patches some of the test data.
          (delete 'patch-source-shebangs))))
     (native-inputs
-     `(("ruby-bacon" ,ruby-bacon)))
+     (list ruby-bacon))
     (synopsis "Ruby library for MIME detection by extension or content")
     (description
      "@acronym{MIME, Multipurpose Internet Mail Extensions} detection by
@@ -8826,7 +8591,7 @@ database.")
          "04my3746hwa4yvbx1ranhfaqkgf6vavi1kyijjnw8w3dy37vqhkm"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)))
+     (list ruby-hoe))
     (synopsis "Registry for information about MIME media type definitions")
     (description
      "@code{mime-types-data} provides a registry for information about
@@ -8850,14 +8615,14 @@ look up the likely MIME type definitions.")
          "0087z9kbnlqhci7fxh9f6il63hj1k02icq2rs0c6cppmqchr753m"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-mime-types-data" ,ruby-mime-types-data)))
+     (list ruby-mime-types-data))
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)
-       ("ruby-fivemat" ,ruby-fivemat)
-       ("ruby-minitest-focus" ,ruby-minitest-focus)
-       ("ruby-minitest-rg" ,ruby-minitest-rg)
-       ("ruby-minitest-bonus-assertions" ,ruby-minitest-bonus-assertions)
-       ("ruby-minitest-hooks" ,ruby-minitest-hooks)))
+     (list ruby-hoe
+           ruby-fivemat
+           ruby-minitest-focus
+           ruby-minitest-rg
+           ruby-minitest-bonus-assertions
+           ruby-minitest-hooks))
     (synopsis "Library and registry for MIME content type definitions")
     (description "The mime-types library provides a library and registry for
 information about Multipurpose Internet Mail Extensions (MIME) content type
@@ -8925,11 +8690,9 @@ neither too verbose nor too minimal.")
            ;; This file exists in the repository but is not distributed.
            (lambda _ (invoke "touch" ".gemtest"))))))
     (inputs
-     `(("sqlite" ,sqlite)))
+     (list sqlite))
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-mini-portile" ,ruby-mini-portile)))
+     (list ruby-hoe ruby-rake-compiler ruby-mini-portile))
     (synopsis "Interface with SQLite3 databases")
     (description
      "This module allows Ruby programs to interface with the SQLite3 database
@@ -8988,7 +8751,7 @@ names.")
              ;; just import the library to test.
              (invoke "ruby" "-Ilib" "-r" "shoulda-matchers"))))))
     (propagated-inputs
-     `(("ruby-activesupport" ,ruby-activesupport)))
+     (list ruby-activesupport))
     (synopsis "Collection of testing matchers extracted from Shoulda")
     (description
      "Shoulda Matchers provides RSpec- and Minitest-compatible one-liners that
@@ -9028,8 +8791,7 @@ more complex, and error-prone.")
            ;; just import the library to test.
            (lambda _ (invoke "ruby" "-Ilib" "-r" "shoulda"))))))
     (propagated-inputs
-     `(("ruby-shoulda-context" ,ruby-shoulda-context)
-       ("ruby-shoulda-matchers" ,ruby-shoulda-matchers-2)))
+     (list ruby-shoulda-context ruby-shoulda-matchers-2))
     (synopsis "Context framework and matchers for testing")
     (description
      "@code{shoulda} is a meta-package combining @code{shoulda-context} and
@@ -9061,11 +8823,9 @@ more complex, and error-prone.")
                (("^gemspec") "gem 'test-unit'\ngemspec"))
              #t)))))
     (propagated-inputs
-     `(("ruby-unf-ext" ,ruby-unf-ext)))
+     (list ruby-unf-ext))
     (native-inputs
-     `(("ruby-shoulda" ,ruby-shoulda)
-       ("bundler" ,bundler)
-       ("ruby-test-unit" ,ruby-test-unit)))
+     (list ruby-shoulda bundler ruby-test-unit))
     (synopsis "Unicode Normalization Form support to Ruby and JRuby")
     (description
      "@code{ruby-unf} is a wrapper library to bring Unicode Normalization Form
@@ -9089,7 +8849,7 @@ support to both Ruby and JRuby.  It uses @code{unf_ext} on CRuby and
     (arguments
      '(#:tests? #f)) ; No included tests
     (propagated-inputs
-     `(("ruby-rack" ,ruby-rack)))
+     (list ruby-rack))
     (synopsis "Rack middleware providing authentication")
     (description
      "Warden is a Rack-based middleware that provides a mechanism for
@@ -9133,11 +8893,9 @@ authentication in Ruby web applications.")
                (invoke "bundle" "exec" "rspec"))
              #t)))))
     (propagated-inputs
-     `(("ruby-warden" ,ruby-warden)))
+     (list ruby-warden))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec-2)
-       ("ruby-rack-test" ,ruby-rack-test)))
+     (list bundler ruby-rspec-2 ruby-rack-test))
     (synopsis "OAuth 2.0 strategies for Warden")
     (description
      "This library extends Warden to support OAuth 2.0 authorized API
@@ -9158,12 +8916,9 @@ requests.")
          "1hdlbvfw316lkz251qnfk79drmaay7l51kidvicz41nhvw12xz8v"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rspec))
     (propagated-inputs
-     `(("ruby-addressable" ,ruby-addressable)
-       ("ruby-crack" ,ruby-crack)
-       ("ruby-hashdiff" ,ruby-hashdiff)))
+     (list ruby-addressable ruby-crack ruby-hashdiff))
     (synopsis "Allows stubbing and setting expectations on HTTP requests")
     (description
      "WebMock allows stubbing HTTP requests and setting expectations on HTTP
@@ -9240,9 +8995,7 @@ display width of strings in Ruby.")
                (("Bundler\\.setup.*") "nil\n"))
              #t)))))
     (native-inputs
-     `(("ruby-rdoc" ,ruby-rdoc)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rubygems-tasks" ,ruby-rubygems-tasks)))
+     (list ruby-rdoc ruby-rspec ruby-rubygems-tasks))
     (synopsis "Ruby library to help check the Ruby version")
     (description "@code{ruby_version} provides a @code{RubyVersion} module to simplify
 checking for the right Ruby version in software.")
@@ -9263,7 +9016,7 @@ checking for the right Ruby version in software.")
    (arguments
     '(#:tests? #f))                     ; no included tests
    (propagated-inputs
-    `(("ruby-websocket-extensions" ,ruby-websocket-extensions)))
+    (list ruby-websocket-extensions))
    (synopsis "WebSocket protocol handler with pluggable I/O")
    (description
     "@code{websocket-driver} provides a complete implementation of the
@@ -9318,11 +9071,9 @@ extension plugins.")
                (("<test-unit>.freeze, \\[\\\"~> 2.5.5") "<test-unit>, [\">0"))
              #t)))))
     (propagated-inputs
-     `(("ruby-unf" ,ruby-unf)))
+     (list ruby-unf))
     (native-inputs
-     `(("ruby-shoulda" ,ruby-shoulda)
-       ("bundler" ,bundler)
-       ("ruby-test-unit" ,ruby-test-unit)))
+     (list ruby-shoulda bundler ruby-test-unit))
     (synopsis "Domain name manipulation library")
     (description
      "@code{domain_name} is a Domain name manipulation library.  It parses a
@@ -9355,7 +9106,7 @@ Suffix List.")
                 "Bundler::GemHelper.gemspec.version"))
              #t)))))
     (propagated-inputs
-     `(("ruby-domain-name" ,ruby-domain-name)))
+     (list ruby-domain-name))
     (native-inputs
      `(("rubysimplecov" ,ruby-simplecov)
        ("bundler" ,bundler)
@@ -9402,7 +9153,7 @@ It has built-in support for the legacy @code{cookies.txt} and
                          "test/runner.rb")
                  #t))))))
     (native-inputs
-     `(("ruby-rack" ,ruby-rack)))
+     (list ruby-rack))
     (synopsis
      "Make HTTP requests with support for HTTPS, Cookies, authentication and more")
     (description
@@ -9512,11 +9263,9 @@ subprocess.")
            (lambda _
              (invoke "rspec" "spec/bio-commandeer_spec.rb"))))))
     (propagated-inputs
-     `(("ruby-bio-logger" ,ruby-bio-logger)
-       ("ruby-systemu" ,ruby-systemu)))
+     (list ruby-bio-logger ruby-systemu))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rspec))
     (synopsis "Simplified running of shell commands from within Ruby")
     (description
      "Bio-commandeer provides an opinionated method of running shell commands
@@ -9549,7 +9298,7 @@ detail to ease debugging.")
            (lambda _
              (invoke "ruby" "-Ilib" "-r" "rubytest"))))))
     (propagated-inputs
-     `(("ruby-ansi" ,ruby-ansi)))
+     (list ruby-ansi))
     (synopsis "Universal test harness for Ruby")
     (description
      "Rubytest is a testing meta-framework for Ruby.  It can handle any
@@ -9607,8 +9356,7 @@ make use of.")
            (lambda _
              (invoke "ruby" "-Ilib" "bin/qed" "--copyright"))))))
     (propagated-inputs
-     `(("ruby-ansi" ,ruby-ansi)
-       ("ruby-brass" ,ruby-brass)))
+     (list ruby-ansi ruby-brass))
     (synopsis "Test framework utilizing literate programming techniques")
     (description
      "@dfn{Quality Ensured Demonstrations} (QED) is a test framework for
@@ -9673,9 +9421,9 @@ and locking between worker processes.")
                (symlink "../.index" file)
                #t))))))
     (propagated-inputs
-     `(("ruby-ansi" ,ruby-ansi)))
+     (list ruby-ansi))
     (native-inputs
-     `(("ruby-qed" ,ruby-qed)))
+     (list ruby-qed))
     (synopsis "Assertions library")
     (description
      "Assertive Expressive (AE) is an assertions library specifically designed
@@ -9700,11 +9448,9 @@ for reuse by other test frameworks.")
        (modify-phases %standard-phases
          (replace 'check (lambda _ (invoke "qed"))))))
     (propagated-inputs
-     `(("ruby-ae" ,ruby-ae)
-       ("ruby-ansi" ,ruby-ansi)
-       ("ruby-rubytest" ,ruby-rubytest)))
+     (list ruby-ae ruby-ansi ruby-rubytest))
     (native-inputs
-     `(("ruby-qed" ,ruby-qed)))
+     (list ruby-qed))
     (synopsis "Test framework correlating code structure and test unit")
     (description
      "Lemon is a unit testing framework that enforces highly formal
@@ -9728,8 +9474,7 @@ focus concern on individual units of behavior.")
     (arguments
      `(#:tests? #f)) ; no tests
     (propagated-inputs
-     `(("ruby-ansi" ,ruby-ansi)
-       ("ruby-rubytest" ,ruby-rubytest)))
+     (list ruby-ansi ruby-rubytest))
     (synopsis "Command-line interface for rubytest")
     (description
      "Rubytest CLI is a command-line interface for running tests for
@@ -9757,9 +9502,7 @@ Rubytest-based test frameworks.  It provides the @code{rubytest} executable.")
              (invoke "qed")
              (invoke "rubytest" "-Ilib" "-Itest" "test/"))))))
     (native-inputs
-     `(("ruby-rubytest-cli" ,ruby-rubytest-cli)
-       ("ruby-qed" ,ruby-qed)
-       ("ruby-lemon" ,ruby-lemon)))
+     (list ruby-rubytest-cli ruby-qed ruby-lemon))
     (synopsis "Hash-like classes with extra features")
     (description
      "The Hashery is a tight collection of @code{Hash}-like classes.
@@ -9791,7 +9534,7 @@ specific use case.")
            (lambda _
              (invoke "rspec" "spec/rc4_spec.rb"))))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec-2)))
+     (list ruby-rspec-2))
     (synopsis "Implementation of the RC4 algorithm")
     (description
      "RubyRC4 is a pure Ruby implementation of the RC4 algorithm.")
@@ -9811,7 +9554,7 @@ specific use case.")
          "06kj9hgd0z8pj27bxp2diwqh6fv7qhwwm17z64rhdc4sfn76jgn8"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("bundler" ,bundler)))
+     (list bundler))
     (synopsis "Read Adobe Font Metrics (afm) files")
     (description
      "This library provides methods to read @dfn{Adobe Font Metrics} (afm)
@@ -9832,7 +9575,7 @@ files and use the data therein.")
          "0658m37jjjn6drzqg1gk4p6c205mgp7g1jh2d00n4ngghgmz5qvs"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("bundler" ,bundler)))
+     (list bundler))
     (synopsis "Encode and decode Ascii85 binary-to-text encoding")
     (description
      "This library provides methods to encode and decode Ascii85
@@ -9877,9 +9620,7 @@ binary-to-text encoding.  The main modern use of Ascii85 is in PostScript and
                (("RuboCop::RakeTask.new") ""))
              #t)))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("ruby-yard" ,ruby-yard)
-       ("bundler" ,bundler)))
+     (list ruby-rspec ruby-yard bundler))
     (synopsis "Font metrics parser for the Prawn PDF generator")
     (description
      "TTFunk is a TrueType font parser written in pure Ruby.  It is used as
@@ -9937,7 +9678,7 @@ or JRuby.")
          "10jmmbjm0lkglwxbn4rpqghgg1ipjxrswm117n50adhmy8yij650"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-hoe" ,ruby-hoe)))
+     (list ruby-hoe))
     (synopsis "Hoe plugins for tighter Git integration")
     (description
      "This package provides a set of Hoe plugins for tighter Git integration.
@@ -9946,6 +9687,39 @@ generation.")
     (home-page "https://github.com/jbarnette/hoe-git")
     (license license:expat)))
 
+(define-public ruby-hoe-markdown
+  (package
+    (name "ruby-hoe-markdown")
+    (version "1.4.0")
+    (home-page "https://github.com/flavorjones/hoe-markdown")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0wb0yjdx9gx9r0cahpx42pblvglgh1i9pdfxjavq7f40nan2g076"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:test-target "spec"
+       #:phases (modify-phases %standard-phases
+                  (add-before 'check 'disable-bundler-dependency
+                    (lambda _
+                      (substitute* "spec/spec_helper.rb"
+                        (("require.*bundler/setup.*")
+                         "")))))))
+    (native-inputs
+     (list ruby-rspec))
+    (propagated-inputs
+     (list ruby-rake))
+    (synopsis "Hoe plugin with Markdown helpers")
+    (description
+     "This package provides a Hoe plugin with various Markdown helpers, which
+can be used to e.g. hyperlink Markdown documentation between project files.")
+    (license license:expat)))
+
 (define-public ruby-sequel
   (package
     (name "ruby-sequel")
@@ -9989,10 +9763,7 @@ associated records.")
              (setenv "RUBYLIB" "lib")
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-minitest-rg" ,ruby-minitest-rg)
-       ("ruby-mocha" ,ruby-mocha)
-       ("ruby-activesupport" ,ruby-activesupport)))
+     (list bundler ruby-minitest-rg ruby-mocha ruby-activesupport))
     (synopsis "Test mocks for time-dependent functions")
     (description
      "Timecop provides \"time travel\" and \"time freezing\" capabilities,
@@ -10063,8 +9834,7 @@ call.")
              (delete-file "spec/concurrent/scheduled_task_spec.rb")
              #t)))))
     (native-inputs
-     `(("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rake-compiler ruby-rspec))
     (synopsis "Concurrency tools for Ruby")
     (description
      "This library provides modern concurrency tools including agents,
@@ -10109,7 +9879,7 @@ libraries for compiling Ruby native extensions.")
          "1nq859b0gh2vjhvl1qh1zrk09pc7p54r9i6nnn6sb06iv07db2jb"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)))
+     (list ruby-hoe))
     (synopsis "RFC 2617 HTTP digest authentication library")
     (description
      "This library implements HTTP's digest authentication scheme based on
@@ -10131,7 +9901,7 @@ of the more insecure basic authentication scheme.")
          "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-mini-mime" ,ruby-mini-mime)))
+     (list ruby-mini-mime))
     (arguments
      '(#:tests? #f)) ; no rakefile
     (synopsis "Mail library for Ruby")
@@ -10179,8 +9949,7 @@ from plain text email.")
          "1wn812llln9jzgybz2d7536q39z3gi99i6fi0j1dapcpzvhgrr0p"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)))
+     (list bundler ruby-rake-compiler))
     (synopsis "Extends math operations for increased precision")
     (description
      "This gem makes mathematical operations more precise in Ruby and
@@ -10246,7 +10015,7 @@ smart typographic punctuation HTML entities.")
     (arguments
      '(#:tests? #f)) ; no rakefile
     (propagated-inputs
-     `(("ruby-rubypants" ,ruby-rubypants)))
+     (list ruby-rubypants))
     (synopsis "Org-mode parser written in Ruby")
     (description
      "Org-ruby is an org-mode parser written in Ruby.  The most significant
@@ -10268,7 +10037,7 @@ Markdown.")
          "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("bundler" ,bundler)))
+     (list bundler))
     (synopsis "Rake is a Make-like program implemented in Ruby")
     (description
      "Rake is a Make-like program where tasks and dependencies are specified
@@ -10291,10 +10060,9 @@ in standard Ruby syntax.")
     (arguments
      `(#:tests? #f))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rspec))
     (propagated-inputs
-     `(("ruby-ffi" ,ruby-ffi)))
+     (list ruby-ffi))
     (synopsis "Control external programs running in the background, in Ruby")
     (description "@code{childprocess} provides a gem to control external
 programs running in the background, in Ruby.")
@@ -10324,10 +10092,7 @@ programs running in the background, in Ruby.")
                (("RuboCop::RakeTask\\.new") ""))
              #t)))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-yard" ,ruby-yard)
-       ("ruby-mocha" ,ruby-mocha)
-       ("ruby-minitest-reporters" ,ruby-minitest-reporters)))
+     (list bundler ruby-yard ruby-mocha ruby-minitest-reporters))
     (home-page "https://simonecarletti.com/code/publicsuffix-ruby/")
     (synopsis "Domain name parser")
     (description "The gem @code{public_suffix} is a domain name parser,
@@ -10366,15 +10131,15 @@ all known public suffixes.")
              (delete-file "spec/addressable/net_http_compat_spec.rb")
              #t)))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("bundler" ,bundler)
-       ("ruby-idn-ruby" ,ruby-idn-ruby)
-       ("ruby-sporkmonger-rack-mount" ,ruby-sporkmonger-rack-mount)
-       ("ruby-rspec-its" ,ruby-rspec-its-minimal)
-       ("ruby-yard" ,ruby-yard)
-       ("ruby-simplecov" ,ruby-simplecov)))
+     (list ruby-rspec
+           bundler
+           ruby-idn-ruby
+           ruby-sporkmonger-rack-mount
+           ruby-rspec-its-minimal
+           ruby-yard
+           ruby-simplecov))
     (propagated-inputs
-     `(("ruby-public-suffix" ,ruby-public-suffix)))
+     (list ruby-public-suffix))
     (home-page "https://github.com/sporkmonger/addressable")
     (synopsis "Alternative URI implementation")
     (description "Addressable is a replacement for the URI implementation that
@@ -10456,7 +10221,7 @@ for the terminal.")
                ;; colorator version
                (("= 1.2") "= 1.1"))
              #t)))))
-    (propagated-inputs `(("ruby-colorator" ,ruby-colorator)))
+    (propagated-inputs (list ruby-colorator))
     (home-page "https://github.com/wbailey/command_line_reporter")
     (synopsis "Report production while executing Ruby scripts")
     (description "This gem provides a DSL that makes it easy to write reports
@@ -10489,7 +10254,7 @@ your application.")
           "0x2kpfrcagj931masm5y1kwbnc6nxl60cqdcd3lyd1d2hz7kzlia"))))
   (build-system ruby-build-system)
   (native-inputs
-   `(("ruby-hoe" ,ruby-hoe)))
+   (list ruby-hoe))
   (synopsis "PEG library for Ruby")
   (description "KPeg is a simple PEG library for Ruby.  It provides an API as
 well as native grammar to build the grammar.  KPeg supports direct left
@@ -10530,10 +10295,7 @@ jquery\\.js\", ") ""))
            (lambda _
              (invoke "rake" "generate"))))))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-kpeg" ,ruby-kpeg)
-       ("ruby-racc" ,ruby-racc)
-       ("ruby-rubocop" ,ruby-rubocop)))
+     (list bundler ruby-kpeg ruby-racc ruby-rubocop))
     (home-page "https://ruby.github.io/rdoc/")
     (synopsis "HTML and command-line documentation utility")
     (description "RDoc produces HTML and command-line documentation for Ruby
@@ -10556,8 +10318,7 @@ documentation from the command-line.")
      ;; No test target
      `(#:tests? #f))
     (propagated-inputs
-     `(("ruby-rb-fsevent" ,ruby-rb-fsevent)
-       ("ruby-rb-inotify" ,ruby-rb-inotify)))
+     (list ruby-rb-fsevent ruby-rb-inotify))
     (home-page "https://github.com/sass/listen")
     (synopsis "File modification notification library")
     (description "The Listen gem listens to file modifications and notifies you
@@ -10582,10 +10343,9 @@ about the changes.")
        ;; work with current software.
        #:tests? #f))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (native-inputs
-     `(("ruby-rubygems-tasks" ,ruby-rubygems-tasks)
-       ("ruby-rdoc" ,ruby-rdoc)))
+     (list ruby-rubygems-tasks ruby-rdoc))
     (home-page "http://www.a-k-r.org/ruby-terminfo/")
     (synopsis "Terminfo binding for Ruby")
     (description "Ruby-terminfo provides terminfo binding for Ruby.")
@@ -10607,7 +10367,7 @@ about the changes.")
      ;; No tests
      `(#:tests? #f))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (home-page "https://github.com/samg/diffy")
     (synopsis "Convenient diffing in ruby")
     (description "Diffy provides a convenient way to generate a diff from two
@@ -10661,11 +10421,9 @@ the @file{spec} directory.")
                 "18c6prbw9wl8bqhb2435pd9s0lzarl3g7xf8pmyla28zblvwxmyh"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-sass-listen" ,ruby-sass-listen)))
+     (list ruby-sass-listen))
     (native-inputs
-     `(("ruby-sass-spec" ,ruby-sass-spec)
-       ("ruby-mathn" ,ruby-mathn)
-       ("ruby-cmath" ,ruby-cmath)))
+     (list ruby-sass-spec ruby-mathn ruby-cmath))
     (home-page "https://sass-lang.com/")
     (synopsis "CSS extension language")
     (description "Sass is a CSS extension language.  It extends CSS with
@@ -10741,15 +10499,12 @@ features that don't exist yet like variables, nesting, mixins and inheritance.")
          ;; one in the gem.
          (delete 'extract-gemspec))))
     (propagated-inputs
-     `(("ruby-ffi" ,ruby-ffi)
-       ("ruby-rake" ,ruby-rake)))
+     (list ruby-ffi ruby-rake))
     (inputs
-     `(("libsass" ,libsass)))
+     (list libsass))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-minitest-around" ,ruby-minitest-around)
-       ("ruby-test-construct" ,ruby-test-construct)))
+     (list bundler ruby-rake-compiler ruby-minitest-around
+           ruby-test-construct))
     (synopsis "Use libsss from Ruby")
     (description
      "This library provides Ruby q@acronym{FFI, Foreign Function Interface}
@@ -10770,7 +10525,7 @@ bindings to the libsass library.  This enables rendering
                 "04ncr44wrilz26ayqwlg7379yjnkb29mvx4j04i62b7czmdrc9dv"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-sass" ,ruby-sass)))
+     (list ruby-sass))
     (arguments
      ;; No rakefile
      `(#:tests? #f))
@@ -10792,7 +10547,7 @@ in Jekyll.")
                 "1s9ly83sp8albvgdff12xy2h4xd8lm6z2fah4lzmk2yvp85jzdzv"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-listen" ,ruby-listen)))
+     (list ruby-listen))
     (arguments
      ;; No rakefile
      `(#:tests? #f))
@@ -10805,7 +10560,7 @@ interface.  It allows Jekyll to rebuild your site when a file changes.")
 (define-public ruby-parallel
   (package
     (name "ruby-parallel")
-    (version "1.13.0")
+    (version "1.21.0")
     (source
      (origin
        (method git-fetch)
@@ -10815,7 +10570,7 @@ interface.  It allows Jekyll to rebuild your site when a file changes.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1isqzbqxz2ndad4i5z3lb9ldrhaijfncj8bmffv04sq44sv87ikv"))))
+         "1xqjcvl3gq3shvrqp8wc3fbqibzh4mf1yczq6np9gd79558dwj3w"))))
     (build-system ruby-build-system)
     (arguments
      `(;; TODO 3 test failures
@@ -10846,17 +10601,17 @@ interface.  It allows Jekyll to rebuild your site when a file changes.")
                (("git ls-files") "find"))
              #t)))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("ruby-rspec-rerun" ,ruby-rspec-rerun)
-       ("bundler" ,bundler)
-       ("ruby-activerecord" ,ruby-activerecord)
-       ("ruby-progressbar" ,ruby-progressbar)
-       ("ruby-bump" ,ruby-bump)
-       ("procps" ,procps)
-       ("lsof" ,lsof)
-       ("ruby-mysql2" ,ruby-mysql2)
-       ("ruby-sqlite3" ,ruby-sqlite3)
-       ("ruby-i18n" ,ruby-i18n)))
+     (list ruby-rspec
+           ruby-rspec-rerun
+           bundler
+           ruby-activerecord
+           ruby-progressbar
+           ruby-bump
+           procps
+           lsof
+           ruby-mysql2
+           ruby-sqlite3
+           ruby-i18n))
     (home-page "https://github.com/grosser/parallel")
     (synopsis "Parallel processing in Ruby")
     (description "Parallel allows you to run any code in parallel Processes
@@ -10878,7 +10633,7 @@ suited for map-reduce or e.g. parallel downloads/uploads.")
     (arguments `(#:tests? #f)); No rakefile
     (home-page "https://github.com/square/cane")
     (propagated-inputs
-     `(("ruby-parallel" ,ruby-parallel)))
+     (list ruby-parallel))
     (synopsis "Code quality threshold checking")
     (description "Cane fails your build if code quality thresholds are not met.")
     (license license:asl2.0)))
@@ -10897,7 +10652,7 @@ suited for map-reduce or e.g. parallel downloads/uploads.")
     (home-page "https://github.com/yob/morecane")
     (arguments `(#:tests? #f)); No rakefile
     (propagated-inputs
-     `(("ruby-parallel" ,ruby-parallel)))
+     (list ruby-parallel))
     (synopsis "Extra checks for cane")
     (description "The cane gem provides a great framework for running quality
 checks over your ruby project as part of continuous integration build.  It
@@ -10927,15 +10682,9 @@ custom checks.  This gem provides a set of additional checks.")
                                   ((".*[Bb]undler.*") ""))
                                 #t)))))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("ruby-cane" ,ruby-cane)
-       ("ruby-morecane" ,ruby-morecane)))
+     (list ruby-rspec ruby-cane ruby-morecane))
     (propagated-inputs
-     `(("ruby-afm" ,ruby-afm)
-       ("ruby-ascii85" ,ruby-ascii85)
-       ("ruby-hashery" ,ruby-hashery)
-       ("ruby-rc4" ,ruby-rc4)
-       ("ruby-ttfunk" ,ruby-ttfunk)))
+     (list ruby-afm ruby-ascii85 ruby-hashery ruby-rc4 ruby-ttfunk))
     (home-page "https://github.com/yob/pdf-reader")
     (synopsis "PDF parser in Ruby")
     (description "The PDF::Reader library implements a PDF parser conforming as
@@ -10975,9 +10724,9 @@ access to the contents of a PDF file with a high degree of flexibility.")
                           ((".*yard.*") ""))
                         (invoke "rspec"))))))
       (native-inputs
-       `(("ruby-rspec" ,ruby-rspec)))
+       (list ruby-rspec))
       (propagated-inputs
-       `(("ruby-pdf-reader" ,ruby-pdf-reader)))
+       (list ruby-pdf-reader))
       (home-page "https://github.com/prawnpdf/pdf-inspector")
       (synopsis "Analysis classes for inspecting PDF output")
       (description "This library provides a number of PDF::Reader based tools for
@@ -11040,14 +10789,10 @@ functionality from Prawn.")
                  (invoke "rspec" "--exclude-pattern" "prawn_manual_spec.rb"))
                #t)))))
       (propagated-inputs
-       `(("ruby-pdf-core" ,ruby-pdf-core)
-         ("ruby-ttfunk" ,ruby-ttfunk)))
+       (list ruby-pdf-core ruby-ttfunk))
       (native-inputs
-       `(("ruby-pdf-inspector" ,ruby-pdf-inspector)
-         ("ruby-prawn-manual-builder" ,ruby-prawn-manual-builder)
-         ("ruby-rspec" ,ruby-rspec)
-         ("ruby-simplecov" ,ruby-simplecov)
-         ("ruby-yard" ,ruby-yard)))
+       (list ruby-pdf-inspector ruby-prawn-manual-builder ruby-rspec
+             ruby-simplecov ruby-yard))
       (home-page "https://prawnpdf.org/api-docs/2.0/")
       (synopsis "PDF generation for Ruby")
       (description "Prawn is a pure Ruby PDF generation library.")
@@ -11065,8 +10810,7 @@ functionality from Prawn.")
                 "1nxd6qmxqwl850icp18wjh5k0s3amxcajdrkjyzpfgq0kvilcv9k"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-prawn" ,ruby-prawn)
-       ("ruby-pdf-inspector" ,ruby-pdf-inspector)))
+     (list ruby-prawn ruby-pdf-inspector))
     (native-inputs
      `(("bundler" ,bundler)
        ("ruby-yard" ,ruby-yard)
@@ -11116,8 +10860,7 @@ functionality from Prawn.")
     (build-system ruby-build-system)
     (arguments `(#:tests? #f)); FIXME: some test failures
     (native-inputs
-     `(("ruby-prawn" ,ruby-prawn)
-       ("ruby-prawn-table" ,ruby-prawn-table)))
+     (list ruby-prawn ruby-prawn-table))
     (home-page "https://kramdown.gettalong.org/")
     (synopsis "Markdown parsing and converting library")
     (description "Kramdown is a library for parsing and converting a superset
@@ -11140,7 +10883,7 @@ popular by the PHP @code{Markdown Extra} package and @code{Maruku}.")
     (arguments
      `(#:tests? #f))                    ;no rakefile
     (propagated-inputs
-     `(("ruby-kramdown" ,ruby-kramdown)))
+     (list ruby-kramdown))
     (synopsis "Kramdown parser for the GFM dialect of Markdown")
     (description
      "This is a parser for kramdown that converts Markdown documents in the
@@ -11164,8 +10907,7 @@ GFM dialect to HTML.")
      ;; No tests
      `(#:tests? #f))
     (native-inputs
-     `(("ruby-rake-compiler" ,ruby-rake-compiler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rake-compiler ruby-rspec))
     (home-page "https://github.com/tmm1/http_parser.rb")
     (synopsis "HTTP parser un Ruby")
     (description "This gem is a simple callback-based HTTP request/response
@@ -11188,11 +10930,9 @@ parser for writing http servers, clients and proxies.")
      ;; No tests
      `(#:tests? #f))
     (propagated-inputs
-      `(("ruby-eventmachine" ,ruby-eventmachine)
-        ("ruby-http-parser.rb" ,ruby-http-parser.rb)))
+      (list ruby-eventmachine ruby-http-parser.rb))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rspec))
     (home-page "https://github.com/igrigorik/em-websocket")
     (synopsis "EventMachine based WebSocket server")
     (description "Em-websocket is an EventMachine based WebSocket server
@@ -11202,13 +10942,13 @@ implementation.")
 (define-public ruby-rouge
   (package
     (name "ruby-rouge")
-    (version "3.21.0")
+    (version "3.26.1")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "rouge" version))
               (sha256
                (base32
-                "1agrrmj88k9jkk36ra1ml2c1jffpp595pkxmcla74ac9ia09vn3s"))))
+                "197k0vskf72wxx0gzwld2jzg27bb7982xlvnzy9adlvkzp7nh8vf"))))
     (build-system ruby-build-system)
     (arguments `(#:tests? #f)); No rakefile
     (home-page "http://rouge.jneen.net/")
@@ -11234,7 +10974,7 @@ is compatible with stylesheets designed for pygments.")
                 "13bdzfp25c8k51ayzxqkbzag3wj5gc1jd8h7d985nsq6pn57g5xh"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("bundler" ,bundler)))
+     (list bundler))
     (arguments `(#:tests? #f)); FIXME: Could not locate Gemfile or .bundle/ directory
     (home-page "https://github.com/intridea/hashie")
     (synopsis "Extensions to Ruby Hashes")
@@ -11254,7 +10994,7 @@ hashes more powerful.")
                 "14ijr2fsjwhrkjkcaz81d5xnfa4vvgvcflrff83avqw9klm011yw"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-hoe" ,ruby-hoe)))
+     (list ruby-hoe))
     (home-page "https://github.com/adrianomitre/heredoc_unindent")
     (synopsis "Heredoc indentation cleaner")
     (description "This gem removes common margin from indented strings, such
@@ -11284,9 +11024,7 @@ indentation will probably be an issue and hence this gem.")
          "1a0wh7y3va2m7bjza95na2snw0vrdh9syz40mpjvjphbc4ph3pzg"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("ruby-hashie" ,ruby-hashie)
-       ("ruby-heredoc-unindent" ,ruby-heredoc-unindent)))
+     (list ruby-rspec ruby-hashie ruby-heredoc-unindent))
     (arguments
      '(#:test-target "spec"
        #:phases
@@ -11329,9 +11067,7 @@ YAML.load suitable for accepting user input in Ruby applications.")
                (invoke "rspec"))
              #t)))))
     (native-inputs
-     `(("ruby-coveralls" ,ruby-coveralls)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-simplecov" ,ruby-simplecov)))
+     (list ruby-coveralls ruby-rspec ruby-simplecov))
     (synopsis "Simple YAML check tool")
     (description
      "@code{yaml-lint} will simply try to load the YAML file with the built-in
@@ -11352,7 +11088,7 @@ Ruby yaml library.")
     (build-system ruby-build-system)
     (arguments `(#:test-target "spec"))
     (native-inputs
-     `(("bundler" ,bundler)))
+     (list bundler))
     (home-page "https://github.com/jekyll/mercenary")
     (synopsis "Command-line apps library in Ruby")
     (description "Mercenary is a lightweight and flexible library for writing
@@ -11407,10 +11143,9 @@ methods for your source as @code{Forwardable::Extended}.")
                 "12fm93ljw9fbxmv2krki5k5wkvr7560qy8p4spvb9jiiaqv78fz4"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-forwardable-extended" ,ruby-forwardable-extended)))
+     (list ruby-forwardable-extended))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rspec))
     ;; Fails with: cannot load such file --
     ;; /tmp/guix-build-ruby-pathutil-0.16.0.drv-0/gem/benchmark/support/task
     (arguments `(#:tests? #f))
@@ -11450,9 +11185,9 @@ Pathname.")
                (invoke "rspec")))))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-unicode-display-width" ,ruby-unicode-display-width)))
+     (list ruby-unicode-display-width))
     (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)))
+     (list ruby-rspec))
     (home-page "https://github.com/tj/terminal-table")
     (synopsis "Simple, feature rich ASCII table generation library")
     (description
@@ -11515,7 +11250,7 @@ Unicode formatted tables.")
                 "1qzlqhpiqz28624fp0ak76hfy7908w6kpx62v7z43aiwjv0yc6q0"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("jekyll" ,jekyll)))
+     (list jekyll))
     (home-page "https://github.com/sverrirs/jekyll-paginate-v2")
     (synopsis "Pagination Generator for Jekyll 3")
     (description "The Pagination Generator forms the core of the pagination
@@ -11537,7 +11272,7 @@ logic in Jekyll.  It calculates and generates the pagination pages.")
     (arguments
      '(#:tests? #f))
     (propagated-inputs
-     `(("ruby-multipart-post" ,ruby-multipart-post)))
+     (list ruby-multipart-post))
     (synopsis "Ruby HTTP/REST API client library")
     (description
      "Faraday is a HTTP/REST API client library which provides a common
@@ -11583,10 +11318,7 @@ interface over different adapters.")
               (invoke "rspec"))
             #t)))))
    (native-inputs
-    `(("bundler" ,bundler)
-      ("ruby-rake-compiler" ,ruby-rake-compiler)
-      ("ruby-rspec" ,ruby-rspec)
-      ("ruby-rubocop" ,ruby-rubocop)))
+    (list bundler ruby-rake-compiler ruby-rspec ruby-rubocop))
    (synopsis "New I/O for Ruby")
    (description
     "@code{nio} provides cross-platform asynchronous I/O primitives in Ruby
@@ -11610,7 +11342,7 @@ for scalable network clients and servers.")
     '(;; No included tests
       #:tests? #f))
    (propagated-inputs
-    `(("ruby-activesupport" ,ruby-activesupport)))
+    (list ruby-activesupport))
    (synopsis "Generate URIs idenfitying model instances in Ruby")
    (description
     "@code{GlobalID} provides a way to generate URIs from a model in Ruby that
@@ -11634,8 +11366,7 @@ uniquely identify it.")
      '(;; No included tests
        #:tests? #f))
     (propagated-inputs
-     `(("ruby-concurrent" ,ruby-concurrent)
-       ("ruby-rack" ,ruby-rack)))
+     (list ruby-concurrent ruby-rack))
     (synopsis "Sprockets is a Rack-based asset packaging system")
     (description
      "Sprockets is a Rack-based asset packaging system that concatenates and
@@ -11655,7 +11386,7 @@ serves JavaScript, CoffeeScript, CSS, LESS, Sass, and SCSS.")
         (base32 "1l0p4wx15mi3wnamfv92ipkia4nsx8qi132c6g51jfdma3fiz2ch"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-simplecov" ,ruby-simplecov)))
+     (list ruby-simplecov))
     (synopsis "framework-agnostic way to render logic-free views")
     (description
      "Mustache is a framework-agnostic way to render logic-free views.
@@ -11707,20 +11438,20 @@ characteristics.")
      `(;; FIXME: Tests depend on rubocop-standard.
        #:tests? #f))
     (native-inputs
-     `(("ruby-awesome-print" ,ruby-awesome-print)
-       ("ruby-redcarpet" ,ruby-redcarpet)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-rubocop-performance" ,ruby-rubocop-performance)
-       ("ruby-pry-byebug" ,ruby-pry-byebug)))
-    (propagated-inputs
-     `(("ruby-addressable" ,ruby-addressable)
-       ("ruby-mercenary" ,ruby-mercenary)
-       ("ruby-nokogumbo" ,ruby-nokogumbo)
-       ("ruby-parallel" ,ruby-parallel)
-       ("ruby-rainbow" ,ruby-rainbow)
-       ("ruby-typhoeus" ,ruby-typhoeus)
-       ("ruby-yell" ,ruby-yell)))
+     (list ruby-awesome-print
+           ruby-redcarpet
+           ruby-rspec
+           ruby-rubocop
+           ruby-rubocop-performance
+           ruby-pry-byebug))
+    (propagated-inputs
+     (list ruby-addressable
+           ruby-mercenary
+           ruby-nokogumbo
+           ruby-parallel
+           ruby-rainbow
+           ruby-typhoeus
+           ruby-yell))
     (synopsis "Test your rendered HTML files to make sure they're accurate")
     (description
      "HTMLProofer is a set of tests to validate your HTML output.  These
@@ -11780,10 +11511,7 @@ entities.")
                 (string-append all " \"--exclude=.*\\.md\".freeze,")))
              #t)))))
     (propagated-inputs
-     `(("ruby-mustermann" ,ruby-mustermann)
-       ("ruby-rack" ,ruby-rack)
-       ("ruby-rack-protection" ,ruby-rack-protection)
-       ("ruby-tilt" ,ruby-tilt)))
+     (list ruby-mustermann ruby-rack ruby-rack-protection ruby-tilt))
     (synopsis "DSL for quick web applications creation in Ruby")
     (description
      "Sinatra is a DSL for quickly creating web applications in Ruby with
@@ -11807,9 +11535,7 @@ minimal effort.")
      ;; No tests.
      '(#:tests? #f))
     (propagated-inputs
-     `(("ruby-daemons" ,ruby-daemons)
-       ("ruby-eventmachine" ,ruby-eventmachine)
-       ("ruby-rack" ,ruby-rack)))
+     (list ruby-daemons ruby-eventmachine ruby-rack))
     (synopsis "Thin and fast web server for Ruby")
     (description "Thin is a Ruby web server that glues together 3 Ruby libraries:
 @itemize
@@ -11845,8 +11571,7 @@ and stability,
                (("<thin>.freeze, \\[\\\"< 1.7\", ") "<thin>, ["))
              #t)))))
     (propagated-inputs
-     `(("ruby-eventmachine" ,ruby-eventmachine)
-       ("ruby-thin" ,ruby-thin)))
+     (list ruby-eventmachine ruby-thin))
     (synopsis "Simple, upgradable WebSockets for Ruby Thin")
     (description "Skinny is a simple, upgradable WebSockets for Ruby, using
 the Thin library.")
@@ -11872,9 +11597,9 @@ the Thin library.")
                       (setenv "HOME" "/tmp")
                       #t)))))
     (propagated-inputs
-     `(("ruby-ffi" ,ruby-ffi)))
+     (list ruby-ffi))
     (native-inputs
-     `(("ruby-mkmf-lite" ,ruby-mkmf-lite)))
+     (list ruby-mkmf-lite))
     (synopsis "Gather file system information")
     (description
      "The @code{sys-filesystem} library provides a cross-platform interface
@@ -11919,13 +11644,13 @@ for gathering file system information, such as disk space and mount points.")
                  (("\"sinatra\", \"~> 1.2\"") "\"sinatra\", \">= 1.2\""))
                #t)))))
     (inputs
-     `(("ruby-eventmachine" ,ruby-eventmachine)
-       ("ruby-mail" ,ruby-mail)
-       ("ruby-rack" ,ruby-rack)
-       ("ruby-sinatra" ,ruby-sinatra)
-       ("ruby-skinny" ,ruby-skinny)
-       ("ruby-sqlite3" ,ruby-sqlite3)
-       ("ruby-thin" ,ruby-thin)))
+     (list ruby-eventmachine
+           ruby-mail
+           ruby-rack
+           ruby-sinatra
+           ruby-skinny
+           ruby-sqlite3
+           ruby-thin))
     (synopsis "SMTP server which catches messages to display them a browser")
     (description
      "MailCatcher runs a super simple SMTP server which catches any message
@@ -11953,10 +11678,9 @@ then check out http://127.0.0.1:1080 to see the mail.")
     (arguments
      `(#:test-target "spec"))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list bundler ruby-rspec))
     (inputs
-     `(("ruby-simplecov" ,ruby-simplecov)))
+     (list ruby-simplecov))
     (synopsis "Pure Ruby library for event-driven IO")
     (description
      "This package provides a pure Ruby library for event-driven IO.")
@@ -11983,7 +11707,7 @@ then check out http://127.0.0.1:1080 to see the mail.")
            (lambda _
              (invoke "gem" "build" ".gemspec"))))))
     (propagated-inputs
-     `(("ruby-addressable" ,ruby-addressable)))
+     (list ruby-addressable))
     (synopsis "Ruby JSON Schema Validator")
     (description "This library provides Ruby with an interface for validating
 JSON objects against a JSON schema conforming to JSON Schema Draft 4.  Legacy
@@ -12017,11 +11741,9 @@ is also included.")
                ((".*RuboCop.*") ""))
              #t)))))
     (propagated-inputs
-     `(("ruby-json-schema" ,ruby-json-schema)))
+     (list ruby-json-schema))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec-core" ,ruby-rspec-core)
-       ("ruby-rspec-expectations" ,ruby-rspec-expectations)))
+     (list bundler ruby-rspec-core ruby-rspec-expectations))
     (synopsis
      "Compare Open API Initiative specification files")
     (description
@@ -12045,12 +11767,9 @@ backwards-compatible with an older API specification.")
          "0w7y5n74daajvl9gixr91nh8670d7mkgspkk3ql71m8azq3nffbg"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-nokogiri" ,ruby-nokogiri)))
+     (list ruby-nokogiri))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-kramdown" ,ruby-kramdown)
-       ("ruby-simplecov" ,ruby-simplecov)))
+     (list bundler ruby-rspec ruby-kramdown ruby-simplecov))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -12080,26 +11799,23 @@ application.")
          "1gf049rm0yvw4r8r5yyi890idbfg8qh0dikqx5prvkh11srl73bz"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-backport" ,ruby-backport)
-       ("bundler" ,bundler)
-       ("ruby-benchmark" ,ruby-benchmark)
-       ("ruby-e2mmap" ,ruby-e2mmap)
-       ("ruby-jaro-winkler" ,ruby-jaro-winkler)
-       ("ruby-kramdown" ,ruby-kramdown)
-       ("ruby-kramdown-parser-gfm" ,ruby-kramdown-parser-gfm)
-       ("ruby-maruku" ,ruby-maruku)
-       ("ruby-nokogiri" ,ruby-nokogiri)
-       ("ruby-parser" ,ruby-parser)
-       ("ruby-reverse-markdown" ,ruby-reverse-markdown)
-       ("ruby-rubocop" ,ruby-rubocop)
-       ("ruby-thor" ,ruby-thor)
-       ("ruby-tilt" ,ruby-tilt)
-       ("ruby-yard" ,ruby-yard)))
-    (native-inputs
-     `(("ruby-rspec" ,ruby-rspec)
-       ("ruby-pry" ,ruby-pry)
-       ("ruby-simplecov" ,ruby-simplecov)
-       ("ruby-webmock" ,ruby-webmock)))
+     (list ruby-backport
+           bundler
+           ruby-benchmark
+           ruby-e2mmap
+           ruby-jaro-winkler
+           ruby-kramdown
+           ruby-kramdown-parser-gfm
+           ruby-maruku
+           ruby-nokogiri
+           ruby-parser
+           ruby-reverse-markdown
+           ruby-rubocop
+           ruby-thor
+           ruby-tilt
+           ruby-yard))
+    (native-inputs
+     (list ruby-rspec ruby-pry ruby-simplecov ruby-webmock))
     ;; FIXME: can't figure out how to run the tests properly:
 
     ;; An error occurred while loading spec_helper.
@@ -12167,9 +11883,7 @@ which snapshots to consider and what files to include.")
           "119fgdyb57gmss2yvfwfr47wcy8nny38sai72446krpihyavpizw"))))
     (build-system ruby-build-system)
     (native-inputs
-     `(("ruby-minitest" ,ruby-minitest)
-       ("ruby-minitest-focus" ,ruby-minitest-focus)
-       ("ruby-minitest-reporters" ,ruby-minitest-reporters)))
+     (list ruby-minitest ruby-minitest-focus ruby-minitest-reporters))
     (synopsis "Efficient and thread-safe code loader for Ruby")
     (description
      "Zeitwerk implements constant autoloading with Ruby semantics.  Each gem
@@ -12222,8 +11936,7 @@ eager loading.")
                           (format #t "test suite not run~%"))
                       #t)))))
     (native-inputs
-     `(("ruby-bump" ,ruby-bump)
-       ("ruby-rspec" ,ruby-rspec)))
+     (list ruby-bump ruby-rspec))
     (synopsis "Run @file{.travis.yml} files locally")
     (description
      "WWTD is a @dfn{Travis Simulator} that lets you run test matrices
@@ -12247,11 +11960,9 @@ defined in @file{.travis.yml} on your local machine, using @code{rvm},
      `(#:tests? #f
        #:gem-flags (list  "--" "--use-system-libraries")))
     (inputs
-     `(("libgit2" ,libgit2)))
+     (list libgit2))
     (native-inputs
-     `(("ruby-minitest" ,ruby-minitest)
-       ("ruby-pry" ,ruby-pry)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)))
+     (list ruby-minitest ruby-pry ruby-rake-compiler))
     (synopsis "Ruby bindings to the libgit2 linkable C Git library")
     (description "Rugged is a library for accessing libgit2 in Ruby.  It gives
 you the speed and portability of libgit2 with the beauty of the Ruby
@@ -12340,7 +12051,7 @@ giving detailed reports on the time taken for each task.")
     (arguments
      `(#:tests? #false))     ;there are none
     (propagated-inputs
-      `(("jekyll" ,jekyll)))
+      (list jekyll))
     (synopsis
       "Jekyll plugin to generate an Atom feed of your Jekyll posts")
     (description
@@ -12365,7 +12076,7 @@ of your Jekyll posts.")
     (arguments
      `(#:tests? #false))     ;there are none
     (propagated-inputs
-      `(("jekyll" ,jekyll)))
+      (list jekyll))
     (synopsis
       "Automatically generate a sitemap.xml for your Jekyll site")
     (description
@@ -12390,7 +12101,7 @@ a sitemaps.org compliant sitemap for your Jekyll site.")
    (arguments
     `(#:tests? #false))
    (propagated-inputs
-    `(("jekyll" ,jekyll)))
+    (list jekyll))
    (synopsis
     "Jekyll plugin to add metadata tags for search engines and social networks")
    (description
@@ -12412,10 +12123,9 @@ and social networks to better index and display your site's content.")
         (base32
          "1jrsajzhzpnfa8hj6lbf7adn8hls56dz3yw1gvzgz9y4zkka3k9v"))))
     (build-system ruby-build-system)
-    (native-inputs `(("tzdata" ,tzdata-for-tests)))
+    (native-inputs (list tzdata-for-tests))
     (propagated-inputs
-     `(("ruby-mail" ,ruby-mail)
-       ("ruby-term-ansicolor" ,ruby-term-ansicolor)))
+     (list ruby-mail ruby-term-ansicolor))
     (arguments
      '(#:phases (modify-phases %standard-phases
                   (replace 'replace-git-ls-files
@@ -12467,8 +12177,7 @@ management, status tracking and reporting.")
     (arguments
      `(#:tests? #false))
     (native-inputs
-     `(("bundler" ,bundler)
-       ("ruby-rake-compiler" ,ruby-rake-compiler)))
+     (list bundler ruby-rake-compiler))
     (synopsis "Trigonometric functions for complex numbers")
     (description
      "This gem is a library that provides trigonometric and transcendental
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 3225703e26..e9bd4ebbd2 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -12,6 +12,8 @@
 ;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,23 +36,34 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix packages)
+  #:use-module (guix utils)
+  #:use-module (gnu packages)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crates-io)
   #:use-module (gnu packages crates-graphics)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages ibus)
   #:use-module (gnu packages jemalloc)
+  #:use-module (gnu packages kde)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages networking)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages rust)
   #:use-module (gnu packages tls)
-  #:use-module (gnu packages version-control))
+  #:use-module (gnu packages version-control)
+  #:use-module (gnu packages xorg))
 
 (define-public agate
   (package
@@ -132,10 +145,9 @@ low-end hardware and serving many concurrent requests.")
         ("rust-tempfile" ,rust-tempfile-3)
         ("rust-wait-timeout" ,rust-wait-timeout-0.2))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libgit2" ,libgit2)
-       ("zlib" ,zlib)))
+     (list libgit2 zlib))
     (home-page "https://github.com/sharkdp/bat")
     (synopsis "@command{cat} clone with syntax highlighting and git integration")
     (description
@@ -144,6 +156,46 @@ highlighting for a large number of languages, git integration, and automatic
 paging.")
     (license (list license:expat license:asl2.0))))
 
+(define-public diffr
+  (package
+    (name "diffr")
+    (version "0.1.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "diffr" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "1b0mz1ki2ksxni6g49x5l5j9ijpyhc11mywvxr9i9h3nr098nc5l"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:install-source? #f
+       ;; https://github.com/mookid/diffr/issues/79
+       #:cargo-test-flags
+       '("--release" "--"
+         "--skip=tests::success"
+         "--skip=test_cli::color_invalid_attribute_name"
+         "--skip=test_cli::color_invalid_color_not_done"
+         "--skip=test_cli::color_invalid_color_value_ansi"
+         "--skip=test_cli::color_invalid_color_value_name"
+         "--skip=test_cli::color_invalid_color_value_rgb"
+         "--skip=test_cli::color_invalid_face_name"
+         "--skip=test_cli::color_ok"
+         "--skip=test_cli::color_ok_multiple"
+         "--skip=test_cli::color_only_face_name"
+         "--skip=test_cli::debug_flag")
+       #:cargo-inputs
+       (("rust-atty" ,rust-atty-0.2)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-diffr-lib" ,rust-diffr-lib-0.1)
+        ("rust-termcolor" ,rust-termcolor-1))))
+    (home-page "https://github.com/mookid/diffr")
+    (synopsis "Longest Common Sequence based diff highlighting tool")
+    (description
+     "This package provides an @acronym{LCS, longest common sequence} based diff
+highlighting tool to ease code review from your terminal.")
+    (license license:expat)))
+
 (define-public drill
   (package
     (name "drill")
@@ -175,9 +227,9 @@ paging.")
          ("rust-url" ,rust-url-2)
          ("rust-yaml-rust" ,rust-yaml-rust-0.4))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (home-page "https://github.com/fcsonline/drill")
     (synopsis "HTTP load testing application")
     (description
@@ -185,6 +237,42 @@ paging.")
 Ansible syntax.  Benchmark files can be written in YAML.")
     (license license:gpl3)))
 
+(define-public dutree
+  (package
+    (name "dutree")
+    (version "0.2.18")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "dutree" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "1611h27i8fm3jndscd6w65z8z7w09nnrm61vdgs9kb8ln57gqm8x"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:install-source? #f
+       #:cargo-inputs
+       (("rust-getopts" ,rust-getopts-0.2)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-signal-hook" ,rust-signal-hook-0.1)
+        ("rust-terminal-size" ,rust-terminal-size-0.1)
+        ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
+        ("rust-unicode-width" ,rust-unicode-width-0.1))))
+    (home-page "https://ownyourbits.com/2018/03/25/analyze-disk-usage-with-dutree/")
+    (synopsis "Command line tool to analyze disk usage")
+    (description
+     "@command{dutree} is command line tool to analyze disk usage.
+Features include:
+@enumerate
+@item coloured output, according to the @code{LS_COLORS} environment variable.
+@item display the file system tree.
+@item ability to aggregate small files.
+@item ability to exclude files or directories.
+@item ability to compare different directories.
+@item fast, written in Rust.
+@end enumerate\n")
+    (license license:gpl3)))
+
 (define-public exa
   (package
     (name "exa")
@@ -267,10 +355,9 @@ Ansible syntax.  Benchmark files can be written in YAML.")
                           (string-append share "/zsh/site-functions/_exa"))
                #t))))))
     (inputs
-     `(("libgit2" ,libgit2)
-       ("zlib" ,zlib)))
+     (list libgit2 zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://the.exa.website/")
     (synopsis "Modern replacement for ls")
     (description "@code{exa} is a modern replacement for the command-line
@@ -342,7 +429,7 @@ also knows about symlinks, extended attributes, and Git.")
                (rename-file (string-append out "/etc/bash_completion.d/fd.bash")
                             (string-append out "/etc/bash_completion.d/fd"))
                #t))))))
-    (inputs `(("jemalloc" ,jemalloc)))
+    (inputs (list jemalloc))
     (home-page "https://github.com/sharkdp/fd")
     (synopsis "Simple, fast and user-friendly alternative to find")
     (description
@@ -439,6 +526,103 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
      "This package provides a command-line benchmarking tool.")
     (license (list license:expat license:asl2.0))))
 
+(define-public i3status-rust
+  (package
+    (name "i3status-rust")
+    (version "0.20.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/greshake/i3status-rust")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (patches (search-patches "i3status-rust-enable-unstable-features.patch"))
+       (sha256
+        (base32 "00gzm3g297s9bfp13vnb623p7dfac3g6cdhz2b3lc6l0kmnnqs1s"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:features '("pulseaudio" "libpulse-binding")
+       #:install-source? #f
+       #:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-chrono-tz" ,rust-chrono-tz-0.5)
+        ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
+        ("rust-curl" ,rust-curl-0.4)
+        ("rust-dbus" ,rust-dbus-0.9)
+        ("rust-dbus-tree" ,rust-dbus-tree-0.9)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-nix" ,rust-nix-0.20)
+        ("rust-nl80211" ,rust-nl80211-0.0.2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-signal-hook" ,rust-signal-hook-0.3)
+        ("rust-swayipc" ,rust-swayipc-2)
+        ("rust-toml" ,rust-toml-0.5)
+        ("rust-cpuprofiler" ,rust-cpuprofiler-0.0)
+        ("rust-inotify" ,rust-inotify-0.9)
+        ("rust-libpulse-binding" ,rust-libpulse-binding-2)
+        ("rust-maildir" ,rust-maildir-0.5)
+        ("rust-notmuch" ,rust-notmuch-0.6)
+        ("rust-progress" ,rust-progress-0.2))
+       #:cargo-development-inputs
+       (("rust-assert-fs" ,rust-assert-fs-1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enable-unstable-features
+           (lambda _
+             (setenv "RUSTC_BOOTSTRAP" "1")))
+         (add-after 'unpack 'fix-resources-path
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (share (string-append out "/share")))
+               (substitute* "src/util.rs"
+                 (("/usr/share/i3status-rust") share)))))
+         (add-after 'install 'install-resources
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (copy-recursively "files" (string-append out "/share")))))
+         (add-after 'install 'wrap-i3status
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (paths (map
+                           (lambda (input)
+                             (string-append (assoc-ref inputs input) "/bin"))
+                           '("alsa-utils" "coreutils" "curl" "dbus" "ibus" "iproute"
+                             "kdeconnect" "lm-sensors" "pulseaudio"
+                             "openssl"
+                             "setxkbmap" "speedtest-cli" "xdg-utils" "xrandr"
+                             "zlib"))))
+               (wrap-program (string-append out "/bin/i3status-rs")
+                 `("PATH" prefix ,paths))))))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     `(("alsa-utils" ,alsa-utils)
+       ("bash-minimal" ,bash-minimal)
+       ("coreutils" ,coreutils)
+       ("curl" ,curl)
+       ("dbus" ,dbus)
+       ("ibus" ,ibus)
+       ("iproute" ,iproute)
+       ("kdeconnect" ,kdeconnect)
+       ("lm-sensors" ,lm-sensors)
+       ("pulseaudio" ,pulseaudio)
+       ("openssl" ,openssl)
+       ("setxkbmap" ,setxkbmap)
+       ("speedtest-cli" ,speedtest-cli)
+       ("xdg-utils" ,xdg-utils)
+       ("xrandr" ,xrandr)
+       ("zlib" ,zlib)))
+    (home-page "https://github.com/greshake/i3status-rust")
+    (synopsis "i3status, written in pure Rust")
+    (description "@code{i3status-rs} is a feature-rich and resource-friendly
+replacement for i3status, written in pure Rust.  It provides a way to display
+@code{blocks} of system information (time, battery status, volume, etc) on the i3
+bar.  It is also compatible with sway.")
+    (license license:gpl3)))
+
 (define-public ripgrep
   (package
     (name "ripgrep")
@@ -487,9 +671,7 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
              #t)))
        #:features '("pcre2")))
     (native-inputs
-     `(("asciidoc" ,asciidoc)
-       ("pcre2" ,pcre2)
-       ("pkg-config" ,pkg-config)))
+     (list asciidoc pcre2 pkg-config))
     (home-page "https://github.com/BurntSushi/ripgrep")
     (synopsis "Line-oriented search tool")
     (description
@@ -506,7 +688,7 @@ gitignore rules.")
       (origin
         (method url-fetch)
         (uri (crate-uri "cbindgen" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.xz"))
         (sha256
          (base32
           "0673pq96hs7waavkv58v2pakpxpsfyjvbraa5kyl2b44phgdzcid"))))
@@ -558,7 +740,7 @@ gitignore rules.")
        #:cargo-development-inputs
        (("rust-serial-test" ,rust-serial-test-0.5))))
     (native-inputs
-     `(("python-cython" ,python-cython)))))
+     (list python-cython))))
 
 (define-public rust-cbindgen-0.16
   (package
@@ -690,8 +872,7 @@ gitignore rules.")
        #:cargo-development-inputs
        (("rust-boxxy" ,rust-boxxy-0.11))))
     (inputs
-     `(("libpcap" ,libpcap)
-       ("libseccomp" ,libseccomp)))
+     (list libpcap libseccomp))
     (home-page "https://github.com/kpcyrd/sniffglue")
     (synopsis "Secure multithreaded packet sniffer")
     (description
@@ -700,21 +881,55 @@ are parsed concurrently using a thread pool to utilize all cpu cores.  A goal
 of the project is to be runnable on untrusted networks without crashing.")
     (license license:gpl3)))
 
+(define-public spotify-tui-0.25
+  (package
+    (name "spotify-tui")
+    (version "0.25.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "spotify-tui" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "08bpihkdv3rmcksnxp4cz04kawjs6spmwa3wr2k27b30x3q9cd4r"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-anyhow" ,rust-anyhow-1)
+         ("rust-arboard" ,rust-arboard-1)
+         ("rust-backtrace" ,rust-backtrace-0.3)
+         ("rust-clap" ,rust-clap-2)
+         ("rust-crossterm" ,rust-crossterm-0.20)
+         ("rust-dirs" ,rust-dirs-3)
+         ("rust-rand" ,rust-rand-0.8)
+         ("rust-rspotify" ,rust-rspotify-0.10)
+         ("rust-serde" ,rust-serde-1)
+         ("rust-serde-json" ,rust-serde-json-1)
+         ("rust-serde-yaml" ,rust-serde-yaml-0.8)
+         ("rust-tokio" ,rust-tokio-0.2)
+         ("rust-tui" ,rust-tui-0.16)
+         ("rust-unicode-width" ,rust-unicode-width-0.1))))
+    (native-inputs (list pkg-config))
+    (inputs (list openssl))
+    (home-page "https://github.com/Rigellute/spotify-tui")
+    (synopsis "Terminal user interface for Spotify")
+    (description "This package provides a terminal user interface for Spotify")
+    (license (list license:expat license:asl2.0))))
+
 (define-public tectonic
   (package
     (name "tectonic")
-    (version "0.7.1")
+    (version "0.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tectonic" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0rjkfmbam81anpdqs2qafcmd5bf7y898c8a7iqqqwkbl1hfw4sqs"))))
+        (base32 "0hzyqpjxya6g1ifb3hvjvj0zl2aigx898pz7h5pl46z50jp2pdc8"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:rust ,rust-1.52
-       #:cargo-build-flags '("--release" "--features" "external-harfbuzz")
+     `(#:cargo-build-flags '("--release" "--features" "external-harfbuzz")
        #:cargo-inputs
        (("rust-atty" ,rust-atty-0.2)
         ("rust-byte-unit" ,rust-byte-unit-4)
@@ -730,14 +945,14 @@ of the project is to be runnable on untrusted networks without crashing.")
         ("rust-serde" ,rust-serde-1)
         ("rust-sha2" ,rust-sha2-0.9)
         ("rust-structopt" ,rust-structopt-0.3)
-        ("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.2)
-        ("rust-tectonic-bundles" ,rust-tectonic-bundles-0.1)
+        ("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.3)
+        ("rust-tectonic-bundles" ,rust-tectonic-bundles-0.2)
         ("rust-tectonic-docmodel" ,rust-tectonic-docmodel-0.1)
         ("rust-tectonic-engine-bibtex" ,rust-tectonic-engine-bibtex-0.1)
         ("rust-tectonic-engine-xdvipdfmx" ,rust-tectonic-engine-xdvipdfmx-0.1)
         ("rust-tectonic-engine-xetex" ,rust-tectonic-engine-xetex-0.1)
         ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
-        ("rust-tectonic-geturl" ,rust-tectonic-geturl-0.2)
+        ("rust-tectonic-geturl" ,rust-tectonic-geturl-0.3)
         ("rust-tectonic-io-base" ,rust-tectonic-io-base-0.3)
         ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.2)
         ("rust-tectonic-xdv" ,rust-tectonic-xdv-0.1)
@@ -763,7 +978,7 @@ of the project is to be runnable on untrusted networks without crashing.")
                     (doc (string-append out "/share/doc/" ,name "-" ,version)))
                (copy-recursively "docs/src" doc)))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("fontconfig" ,fontconfig)
        ("harfbuzz" ,harfbuzz)
@@ -778,6 +993,36 @@ classic Web2C implementation of TeX and uses the TeXLive distribution
 of support files.")
     (license license:expat)))
 
+(define-public hex
+  (package
+    (name "hex")
+    (version "0.4.2")
+    (source
+     (origin
+       ;; crates.io does not provide the test data.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sitkevij/hex")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "03x27nixdlnkkrh85gy4152arp02kpjwq0i9dn9p73lyr24s64lv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.12)
+        ("rust-atty" ,rust-atty-0.2)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-no-color" ,rust-no-color-0.1))
+       #:cargo-development-inputs
+       (("rust-assert-cmd" ,rust-assert-cmd-1))))
+    (home-page "https://github.com/sitkevij/hex")
+    (synopsis "Hexadecimal colorized view of a file")
+    (description
+     "@command{hx} accepts a file path as input and outputs a hexadecimal
+colorized view to stdout.")
+    (license license:expat)))
+
 (define-public tokei
   (package
     (name "tokei")
@@ -820,11 +1065,9 @@ of support files.")
         ("rust-regex" ,rust-regex-1)
         ("rust-tempfile" ,rust-tempfile-3))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libgit2" ,libgit2)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list libgit2 openssl zlib))
     (home-page "https://tokei.rs")
     (synopsis "Count code, quickly")
     (description
@@ -833,6 +1076,41 @@ show number of files, total lines within those files and code, comments, and
 blanks grouped by language.")
     (license (list license:expat license:asl2.0))))
 
+(define-public vivid
+  (package
+    (name "vivid")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "vivid" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "01fds6dm19bqgqydaa6n051v9l4wh9rb5d6sr9akwp2cc0fs43b7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ansi-colours" ,rust-ansi-colours-1)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-dirs" ,rust-dirs-3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-rust-embed" ,rust-rust-embed-5)
+        ("rust-yaml-rust" ,rust-yaml-rust-0.4))))
+    (home-page "https://github.com/sharkdp/vivid")
+    (synopsis "LS_COLORS environment variable manager")
+    (description
+     "vivid is a generator for the @code{LS_COLORS} environment variable that
+controls the colorized output of ls, tree, fd, bfs, dust and many other tools.
+
+It uses a YAML configuration format for the filetype-database and the color
+themes.  In contrast to @command{dircolors}, the database and the themes are
+organized in different files.  This allows users to choose and customize color
+themes independent from the collection of file extensions.  Instead of using
+cryptic ANSI escape codes, colors can be specified in the RRGGBB format and
+will be translated to either truecolor (24-bit) ANSI codes or 8-bit codes for
+older terminal emulators.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public watchexec
   (package
     (name "watchexec")
@@ -892,8 +1170,7 @@ runs a command whenever it detects modifications.")
          "06bc3s5kjwpyr2cq79p0306a9bqp3xp928d750ybby9npq2dvj3z"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:rust ,rust-1.52
-       #:install-source? #f             ; virtual manifest
+     `(#:install-source? #f             ; virtual manifest
        #:cargo-test-flags
        '("--release" "--"
          "--skip=tests::test_version_check"         ;; It need rustc's version
@@ -1020,8 +1297,7 @@ support for Rust.")
           "0fwdxhdj2963xr6xfqr56i7hikhsdv562vgxq2dj3h2mi3dil1k6"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:rust ,rust-1.52                ;inherited from rust-cargo
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-cbindgen" ,rust-cbindgen-0.19)
         ("rust-cargo" ,rust-cargo-0.53) ;
         ("rust-anyhow" ,rust-anyhow-1)
@@ -1036,12 +1312,9 @@ support for Rust.")
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-regex" ,rust-regex-1))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("curl" ,curl)
-       ("libssh2" ,libssh2)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list curl libssh2 openssl zlib))
     (home-page "https://github.com/lu-zero/cargo-c")
     (synopsis "Build and install C-compatible libraries")
     (description
@@ -1050,6 +1323,132 @@ library and a dynamic library, and a C header to be used by any C (and
 C-compatible) software.")
     (license license:expat)))
 
+(define-public tealdeer
+  (package
+    (name "tealdeer")
+    (version "1.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tealdeer" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0cwf46k2rszcpydrqajnm4dvhggr3ms7sjma0jx02ch4fjicxch7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-completions
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out  (assoc-ref outputs "out"))
+                    (bash (string-append out "/etc/bash_completion.d/"))
+                    (fish (string-append out "/share/fish/vendor_completions.d/")))
+               (mkdir-p bash)
+               (mkdir-p fish)
+               (copy-file "bash_tealdeer"
+                          (string-append bash "tealdeer"))
+               (copy-file "fish_tealdeer"
+                          (string-append fish "tealdeer.fish"))))))
+       #:install-source? #f
+       #:cargo-test-flags
+       '("--release" "--"
+         ;; These tests go to the network
+         "--skip=test_quiet_old_cache"
+         "--skip=test_quiet_cache"
+         "--skip=test_quiet_failures"
+         "--skip=test_pager_flag_enable"
+         "--skip=test_markdown_rendering"
+         "--skip=test_spaces_find_command"
+         "--skip=test_autoupdate_cache"
+         "--skip=test_update_cache")
+       #:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.12)
+        ("rust-app-dirs2" ,rust-app-dirs2-2)
+        ("rust-atty" ,rust-atty-0.2)
+        ("rust-docopt" ,rust-docopt-1)
+        ("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-pager" ,rust-pager-0.15)
+        ("rust-reqwest" ,rust-reqwest-0.10)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-tar" ,rust-tar-0.4)
+        ("rust-toml" ,rust-toml-0.5)
+        ("rust-walkdir" ,rust-walkdir-2)
+        ("rust-xdg" ,rust-xdg-2))
+       #:cargo-development-inputs
+       (("rust-assert-cmd" ,rust-assert-cmd-1)
+        ("rust-escargot" ,rust-escargot-0.5)
+        ("rust-filetime" ,rust-filetime-0.2)
+        ("rust-predicates" ,rust-predicates-1)
+        ;; This earlier version is required to fix a bug.
+        ;; Remove rust-remove-dir-all-0.5.2 when tealdeer gets upgraded
+        ("rust-remove-dir-all" ,rust-remove-dir-all-0.5.2)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list openssl))
+    (home-page "https://github.com/dbrgn/tealdeer/")
+    (synopsis "Fetch and show tldr help pages for many CLI commands")
+    (description
+     "This package fetches and shows tldr help pages for many CLI commands.
+Full featured offline client with caching support.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public git-absorb
+  (package
+    (name "git-absorb")
+    (version "0.6.6")
+    (source
+     (origin
+       ;; crates.io does not include the manual page.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tummychow/git-absorb")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "04v10bn24acify34vh5ayymsr1flcyb05f3az9k1s2m6nlxy5gb9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-git2" ,rust-git2-0.13)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-slog" ,rust-slog-2)
+        ("rust-slog-async" ,rust-slog-async-2)
+        ("rust-slog-term" ,rust-slog-term-2))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'relax-version-requirements
+           (lambda _
+             (substitute* "Cargo.toml"
+               (("2.5") "2")
+               (("~2.3\"") "2\"")
+               (("3.1") "3"))))
+         (add-after 'install 'install-manual-page
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out   (assoc-ref outputs "out"))
+                    (man   (string-append out "/share/man/man1")))
+               (install-file "Documentation/git-absorb.1" man)))))))
+    (inputs
+     (list zlib))
+    (home-page "https://github.com/tummychow/git-absorb")
+    (synopsis "Git tool for making automatic fixup commits")
+    (description
+     "@code{git absorb} automatically absorbs staged changes into their
+current branch.  @code{git absorb} will automatically identify which commits
+are safe to modify, and which staged changes belong to each of those commits.
+It will then write @code{fixup!} commits for each of those changes.")
+    (license license:bsd-3)))
+
 (define-public zoxide
   (package
     (name "zoxide")
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index fd6233fc94..2a43e88727 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -118,37 +118,43 @@
                                    (package-native-inputs base-rust))))))
 
 ;;; Note: mrustc's only purpose is to be able to bootstap Rust; it's designed
-;;; to be used in source form.
+;;; to be used in source form.  The latest support for bootstrapping from
+;;; 1.39.0 is not yet released so use the latest commit (see:
+;;; https://github.com/thepowersgang/mrustc/issues/185).
+(define %mrustc-commit "474bec9cfd7862a20e7288cecd7fcf5e18648b9a")
 (define %mrustc-source
-  (let ((name "mrustc")
-        (version "0.9"))
+  (let* ((version "0.9")
+         (commit %mrustc-commit)
+         (revision "1")
+         (name "mrustc"))
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/thepowersgang/mrustc")
-            (commit (string-append "v" version))))
-      (file-name (git-file-name name version))
+            (commit commit)))
+      (file-name (git-file-name name (git-version version revision commit)))
       (sha256
        (base32
-        "194ny7vsks5ygiw7d8yxjmp1qwigd71ilchis6xjl6bb2sj97rd2")))))
+        "1zacz5qia0r457mv74wvrvznnv4az5g2w9j8ji9ssy727wljhvz7")))))
 
-;;; Rust 1.29 is special in that it is built with mrustc, which shortens the
-;;; bootstrap path.  Note: the build is non-deterministic.
-(define-public rust-1.29
+;;; Rust 1.39 is special in that it is built with mrustc, which shortens the
+;;; bootstrap path.
+(define rust-1.39
   (package
     (name "rust")
-    (version "1.29.2")
+    (version "1.39.0")
     (source
      (origin
        (method url-fetch)
        (uri (rust-uri version))
-       (sha256 (base32 "1jb787080z754caa2w3w1amsygs4qlzj9rs1vy64firfmabfg22h"))
+       (sha256 (base32 "0mwkc1bnil2cfyf6nglpvbn2y0zfbv44zfhsd5qg4c9rm6vgd8dl"))
        (modules '((guix build utils)))
        (snippet '(for-each delete-file-recursively
-                           '("src/jemalloc"
-                             "src/llvm"
-                             "src/llvm-emscripten")))
-       (patches (search-patches "rust-reproducible-builds.patch"))))
+                           '("src/llvm-emscripten"
+                             "src/llvm-project"
+                             "vendor/jemalloc-sys/jemalloc")))
+       (patches (search-patches "rustc-1.39.0-src.patch"))
+       (patch-flags '("-p0"))))         ;default is -p1
     (outputs '("out" "cargo"))
     (properties '((timeout . 72000)           ;20 hours
                   (max-silent-time . 18000))) ;5 hours (for armel)
@@ -156,9 +162,7 @@
     (inputs
      `(("libcurl" ,curl)
        ("libssh2" ,libssh2)
-       ;; Use llvm-7, which enables rust to be built reproducibly.
-       ;; Versions newer than 7 fail to compile.
-       ("llvm" ,llvm-7)
+       ("llvm" ,llvm)
        ("openssl" ,openssl)
        ("zlib" ,zlib)))
     (native-inputs
@@ -180,7 +184,10 @@
        (list ,(string-append "RUSTC_TARGET="
                              (or (%current-target-system)
                                  (nix-system->gnu-triplet-for-rust)))
-             ,(string-append "RUSTCSRC=../"))
+             ,(string-append "RUSTC_VERSION=" version)
+             ,(string-append "MRUSTC_TARGET_VER="
+                             (version-major+minor version))
+             "OUTDIR_SUF=")           ;do not add version suffix to output dir
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-reference-to-cc
@@ -191,11 +198,15 @@
                (substitute* (find-files "." "^link.rs$")
                  (("\"cc\".as_ref")
                   (format #f "~s.as_ref" (string-append gcc "/bin/gcc")))))))
-         (add-after 'unpack 'copy-mrustc-and-patch
+         (add-after 'unpack 'setup-mrustc-sources
            (lambda* (#:key inputs #:allow-other-keys)
-             (copy-recursively (assoc-ref inputs "mrustc-source") "mrustc")
-             (invoke "patch" "-p0" "-i" "mrustc/rustc-1.29.0-src.patch")))
-         (add-after 'copy-mrustc-and-patch 'patch-makefiles
+             (copy-recursively (assoc-ref inputs "mrustc-source") "../mrustc")
+             ;; The Makefile of mrustc expects the sources directory of rustc
+             ;; to be at this location, and it simplifies things to make it
+             ;; so.
+             (symlink (getcwd)
+                      (string-append "../mrustc/rustc-" ,version "-src"))))
+         (add-after 'setup-mrustc-sources 'patch-makefiles
            ;; This disables building the (unbundled) LLVM.
            (lambda* (#:key inputs parallel-build? #:allow-other-keys)
              (let ((llvm (assoc-ref inputs "llvm"))
@@ -203,7 +214,7 @@
                                      (if parallel-build?
                                          (number->string (parallel-job-count))
                                          "1"))))
-               (with-directory-excursion "mrustc"
+               (with-directory-excursion "../mrustc"
                  (substitute* '("minicargo.mk"
                                 "run_rustc/Makefile")
                    ;; Use the system-provided LLVM.
@@ -213,27 +224,40 @@
                     "$(LLVM_CONFIG):\n")
                    (("\\$Vcd \\$\\(RUSTCSRC\\)build && \\$\\(MAKE\\).*")
                     "true\n"))
-                 ;; Patch date.
                  (substitute* "Makefile"
-                   (("shell date")
-                    "shell date -d @1"))
+                   ;; Patch date and git obtained version information.
+                   ((" -D VERSION_GIT_FULLHASH=.*")
+                    (string-append
+                     " -D VERSION_GIT_FULLHASH=\\\"" ,%mrustc-commit "\\\""
+                     " -D VERSION_GIT_BRANCH=\\\"master\\\""
+                     " -D VERSION_GIT_SHORTHASH=\\\""
+                     ,(string-take %mrustc-commit 7) "\\\""
+                     " -D VERSION_BUILDTIME="
+                     "\"\\\"Thu, 01 Jan 1970 00:00:01 +0000\\\"\""
+                     " -D VERSION_GIT_ISDIRTY=0\n"))
+                   ;; Do not try to fetch sources from the Internet.
+                   ((": \\$\\(RUSTC_SRC_DL\\)")
+                    ":"))
                  (substitute* "run_rustc/Makefile"
                    (("[$]Vtime ")
                     "$V ")
                    ;; Unlock the number of parallel jobs for cargo.
                    (("-j [[:digit:]]+ ")
                     "")
-                   ;; Patch the shebang of a generated wrapper for rustc, and
-                   ;; make sure that \n newline escapes get interpreted
-                   ;; correctly, specifying the '-e' option of echo.
-                   (("echo '#!/bin/sh")
-                    (string-append "echo -e '#!" (which "sh"))))))))
-         (add-after 'patch-source-shebangs 'patch-cargo-checksums
+                   ;; Patch the shebang of a generated wrapper for rustc
+                   (("#!/bin/sh")
+                    (string-append "#!" (which "sh"))))))))
+         (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums
            (lambda* _
-             (substitute* "src/Cargo.lock"
-               (("(\"checksum .* = )\".*\"" all name)
+             (substitute* "Cargo.lock"
+               (("(checksum = )\".*\"" all name)
                 (string-append name "\"" ,%cargo-reference-hash "\"")))
-             (generate-all-checksums "src/vendor")))
+             (generate-all-checksums "vendor")))
+         (add-before 'configure 'configure-cargo-home
+           (lambda _
+             (let ((cargo-home (string-append (getcwd) "/.cargo")))
+               (mkdir-p cargo-home)
+               (setenv "CARGO_HOME" cargo-home))))
          (replace 'configure
            (lambda _
              (setenv "CC" "gcc")
@@ -242,29 +266,35 @@
              (setenv "LLVM_LINK_SHARED" "1")
              ;; This is a workaround for
              ;; https://github.com/thepowersgang/mrustc/issues/138.
-             (setenv "LIBSSH2_SYS_USE_PKG_CONFIG" "yes")))
+             (setenv "LIBSSH2_SYS_USE_PKG_CONFIG" "yes")
+             ;; rustc still insists on having 'cc' on PATH in some places
+             ;; (e.g. when building the 'test' library crate).
+             (mkdir-p "/tmp/bin")
+             (symlink (which "gcc") "/tmp/bin/cc")
+             (setenv "PATH" (string-append "/tmp/bin:" (getenv "PATH")))))
          (delete 'patch-generated-file-shebangs)
          (replace 'build
            (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
-             (let* ((job-count (if parallel-build?
+             (let* ((src-root (getcwd))
+                    (job-count (if parallel-build?
                                    (parallel-job-count)
                                    1))
-                    (job-spec (string-append "-j" (number->string job-count)))
-                    (make-flags* (cons job-spec make-flags)))
+                    (job-spec (string-append "-j" (number->string job-count))))
                ;; Adapted from:
                ;; https://github.com/dtolnay/bootstrap/blob/master/build.sh.
-               (chdir "mrustc")
+               (chdir "../mrustc")
                (setenv "MINICARGO_FLAGS" job-spec)
                (setenv "CARGO_BUILD_JOBS" (number->string job-count))
                (display "Building rustc...\n")
                (apply invoke "make" "-f" "minicargo.mk" "output/rustc"
-                      make-flags*)
+                      job-spec make-flags)
                (display "Building cargo...\n")
                (apply invoke "make" "-f" "minicargo.mk" "output/cargo"
-                      make-flags*)
+                      job-spec make-flags)
                (display "Rebuilding stdlib with rustc...\n")
-               (with-directory-excursion "run_rustc"
-                 (apply invoke "make" "RUST_SRC=../../src/" make-flags*)))))
+               ;; Note: invoking make with -j would cause a compiler error
+               ;; (unexpected panic).
+               (apply invoke "make" "-C" "run_rustc" make-flags))))
          (replace 'install
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -288,34 +318,51 @@
     (description "Rust is a systems programming language that provides memory
 safety and thread safety guarantees.")
     (home-page "https://github.com/thepowersgang/mrustc")
+
+    ;; So far mrustc is x86_64-only.  It may support i686 soon:
+    ;; <https://github.com/thepowersgang/mrustc/issues/78>.
+    (supported-systems '("x86_64-linux"))
+
     ;; Dual licensed.
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-1.30
+(define rust-1.40
   (package
     (name "rust")
-    (version "1.30.1")
-    (source (origin
-              (inherit (package-source rust-1.29))
-              (uri (rust-uri version))
-              (sha256
-               (base32 "0aavdc1lqv0cjzbqwl5n59yd0bqdlhn0zas61ljf38yrvc18k8rn"))
-              (snippet '(for-each delete-file-recursively
-                                  '("src/jemalloc"
-                                    "src/llvm"
-                                    "src/llvm-emscripten"
-                                    "src/tools/clang"
-                                    "src/tools/lldb")))))
+    (version "1.40.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rust-uri version))
+       (sha256 (base32 "1ba9llwhqm49w7sz3z0gqscj039m53ky9wxzhaj11z6yg1ah15yx"))
+       (modules '((guix build utils)))
+       ;; llvm-emscripten is no longer bundled, as that codegen backend got
+       ;; removed.
+       (snippet '(for-each delete-file-recursively
+                           '("src/llvm-project"
+                             "vendor/jemalloc-sys/jemalloc")))))
     (outputs '("out" "cargo"))
     (properties '((timeout . 72000)           ;20 hours
                   (max-silent-time . 18000))) ;5 hours (for armel)
     (build-system gnu-build-system)
+    ;; Rust 1.40 does not ship rustc-internal libraries by default (see
+    ;; rustc-dev-split). This means that librustc_driver.so is no longer
+    ;; available in lib/rustlib/$target/lib, which is the directory
+    ;; included in the runpath of librustc_codegen_llvm-llvm.so.  This is
+    ;; detected by our validate-runpath phase as an error, but it is
+    ;; harmless as the codegen backend is loaded by librustc_driver.so
+    ;; itself, which must at that point have been already loaded.  As such,
+    ;; we skip validating the runpath for Rust 1.40.  Rust 1.41 stopped
+    ;; putting the codegen backend in a separate library, which makes this
+    ;; workaround only necessary for this release.
     (arguments
-     ;; Only the final Rust is tested, not the intermediate bootstrap ones,
-     ;; for performance and simplicity.
-     `(#:tests? #f
+     `(#:validate-runpath? #f
+       ;; Only the final Rust is tested, not the intermediate bootstrap ones,
+       ;; for performance and simplicity.
+       #:tests? #f
        #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
-       #:modules ((guix build utils)
+       #:modules ((guix build cargo-utils)
+                  (guix build utils)
                   (guix build gnu-build-system)
                   (ice-9 match)
                   (srfi srfi-1))
@@ -328,6 +375,11 @@ safety and thread safety guarantees.")
              (setenv "CC" (search-input-file inputs "/bin/gcc"))
              ;; The Guix LLVM package installs only shared libraries.
              (setenv "LLVM_LINK_SHARED" "1")))
+         (add-after 'unpack 'add-cc-shim-to-path
+           (lambda _
+             (mkdir-p "/tmp/bin")
+             (symlink (which "gcc") "/tmp/bin/cc")
+             (setenv "PATH" (string-append "/tmp/bin:" (getenv "PATH")))))
          (add-after 'unpack 'neuter-tidy
            ;; We often need to patch tests with various Guix-specific paths.
            ;; This often increases the line length and makes tidy, rustc's
@@ -341,13 +393,6 @@ safety and thread safety guarantees.")
              (substitute* "src/bootstrap/builder.rs"
                ((".*::Tidy,.*")
                 ""))))
-         (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums
-           (lambda* _
-             (use-modules (guix build cargo-utils))
-             (substitute* "src/Cargo.lock"
-               (("(\"checksum .* = )\".*\"" all name)
-                (string-append name "\"" ,%cargo-reference-hash "\"")))
-             (generate-all-checksums "src/vendor")))
          (replace 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -358,6 +403,14 @@ safety and thread safety guarantees.")
                     (cargo (assoc-ref inputs "cargo-bootstrap"))
                     (llvm (assoc-ref inputs "llvm"))
                     (jemalloc (assoc-ref inputs "jemalloc")))
+               ;; The compiler is no longer directly built against jemalloc, but
+               ;; rather via the jemalloc-sys crate (which vendors the jemalloc
+               ;; source). To use jemalloc we must enable linking to it (otherwise
+               ;; it would use the system allocator), and set an environment
+               ;; variable pointing to the compiled jemalloc.
+               (setenv "JEMALLOC_OVERRIDE"
+                       (search-input-file inputs
+                                          "/lib/libjemalloc_pic.a"))
                (call-with-output-file "config.toml"
                  (lambda (port)
                    (display (string-append "
@@ -373,6 +426,7 @@ submodules = false
 prefix = \"" out "\"
 sysconfdir = \"etc\"
 [rust]
+jemalloc=true
 default-linker = \"" gcc "/bin/gcc" "\"
 channel = \"stable\"
 rpath = true
@@ -381,7 +435,6 @@ llvm-config = \"" llvm "/bin/llvm-config" "\"
 cc = \"" gcc "/bin/gcc" "\"
 cxx = \"" gcc "/bin/g++" "\"
 ar = \"" binutils "/bin/ar" "\"
-jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 [dist]
 ") port))))))
          (replace 'build
@@ -390,20 +443,25 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                               "-j" (if parallel-build?
                                        (number->string (parallel-job-count))
                                        "1"))))
-               (invoke "./x.py" job-spec "build")
-               (invoke "./x.py" job-spec "build" "src/tools/cargo"))))
+               (invoke "./x.py" job-spec "build" "--stage=1"
+                       "src/libstd"
+                       "src/tools/cargo"))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (cargo-out (assoc-ref outputs "cargo")))
-               (mkdir-p out)
-               (invoke "./x.py" "install")
-               (substitute* "config.toml"
-                 ;; Adjust the prefix to the 'cargo' output.
-                 (("prefix = \"[^\"]*\"")
-                  (format #f "prefix = ~s" cargo-out)))
-               (mkdir-p cargo-out)
-               (invoke "./x.py" "install" "cargo"))))
+             (let* ((out (assoc-ref outputs "out"))
+                    (cargo-out (assoc-ref outputs "cargo"))
+                    (gnu-triplet ,(or (%current-target-system)
+                                      (nix-system->gnu-triplet-for-rust)))
+                    (build (string-append "build/" gnu-triplet)))
+               ;; Manually do the installation instead of calling './x.py
+               ;; install', as that is slow and needlessly rebuilds some
+               ;; things.
+               (install-file (string-append build "/stage1/bin/rustc")
+                             (string-append out "/bin"))
+               (copy-recursively (string-append build "/stage1/lib")
+                                 (string-append out "/lib"))
+               (install-file (string-append build "/stage1-tools-bin/cargo")
+                             (string-append cargo-out "/bin")))))
          (add-after 'install 'delete-install-logs
            (lambda* (#:key outputs #:allow-other-keys)
              (for-each (lambda (f)
@@ -427,12 +485,12 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
      `(("cmake" ,cmake-minimal)
        ("pkg-config" ,pkg-config)       ; For "cargo"
        ("python" ,python-wrapper)
-       ("rustc-bootstrap" ,rust-1.29)
-       ("cargo-bootstrap" ,rust-1.29 "cargo")
+       ("rustc-bootstrap" ,rust-1.39)
+       ("cargo-bootstrap" ,rust-1.39 "cargo")
        ("which" ,which)))
     (inputs
-     `(("jemalloc" ,jemalloc-4.5.0)
-       ("llvm" ,llvm-7)
+     `(("jemalloc" ,jemalloc)
+       ("llvm" ,llvm)
        ("openssl" ,openssl)
        ("libssh2" ,libssh2)             ; For "cargo"
        ("libcurl" ,curl)))              ; For "cargo"
@@ -449,9 +507,6 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
            (search-path-specification
             (variable "LIBRARY_PATH")
             (files '("lib" "lib64")))))
-    (supported-systems
-     (delete "i686-linux"  ; fails to build, see bug #35519
-             %supported-systems))
     (synopsis "Compiler for the Rust progamming language")
     (description "Rust is a systems programming language that provides memory
 safety and thread safety guarantees.")
@@ -459,201 +514,41 @@ safety and thread safety guarantees.")
     ;; Dual licensed.
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-1.31
-  (rust-bootstrapped-package
-   rust-1.30 "1.31.1" "0sk84ff0cklybcp0jbbxcw7lk7mrm6kb6km5nzd6m64dy0igrlli"))
-
-(define-public rust-1.32
+(define rust-1.41
   (let ((base-rust (rust-bootstrapped-package
-                    rust-1.31 "1.32.0"
-                    "0ji2l9xv53y27xy72qagggvq47gayr5lcv2jwvmfirx029vlqnac")))
-    (package
-      (inherit base-rust)
-      (source
-       (origin
-         (inherit (package-source base-rust))
-         (snippet '(for-each delete-file-recursively
-                             '("src/llvm"
-                               "src/llvm-emscripten"
-                               "src/tools/clang"
-                               "src/tools/lldb"
-                               "vendor/jemalloc-sys/jemalloc")))
-          ;; the vendor directory has moved to the root of
-          ;; the tarball, so we have to strip an extra prefix
-         (patch-flags '("-p2"))))
-      (arguments
-       (substitute-keyword-arguments (package-arguments base-rust)
-         ;; The test suite fails due to LLVM 7, required for the build to be
-         ;; reproducible.
-         ((#:tests? _ #t)
-          #f)
-         ((#:phases phases)
-          `(modify-phases ,phases
-             ;; Cargo.lock and the vendor/ directory have been moved to the
-             ;; root of the rust tarball
-             (replace 'patch-cargo-checksums
-               (lambda* _
-                 (use-modules (guix build cargo-utils))
-                 (substitute* "Cargo.lock"
-                   (("(\"checksum .* = )\".*\"" all name)
-                    (string-append name "\"" ,%cargo-reference-hash "\"")))
-                 (generate-all-checksums "vendor")))
-             (add-after 'configure 'override-jemalloc
-               (lambda* (#:key inputs #:allow-other-keys)
-                 ;; The compiler is no longer directly built against jemalloc,
-                 ;; but rather via the jemalloc-sys crate (which vendors the
-                 ;; jemalloc source). To use jemalloc we must enable linking to
-                 ;; it (otherwise it would use the system allocator), and set
-                 ;; an environment variable pointing to the compiled jemalloc.
-                 (substitute* "config.toml"
-                   (("^jemalloc =.*$") "")
-                   (("[[]rust[]]") "\n[rust]\njemalloc=true\n"))
-                 (setenv "JEMALLOC_OVERRIDE"
-                         (search-input-file inputs
-                                            "/lib/libjemalloc_pic.a")))))))))))
-
-(define-public rust-1.33
-  (let ((base-rust (rust-bootstrapped-package
-                    rust-1.32 "1.33.0"
-                    "152x91mg7bz4ygligwjb05fgm1blwy2i70s2j03zc9jiwvbsh0as")))
-    (package
-      (inherit base-rust)
-      (source
-       (origin
-         (inherit (package-source base-rust))
-         (patches '())
-         (patch-flags '("-p1"))))
-      (inputs
-       ;; Upgrade jemalloc.
-       (alist-replace "jemalloc" (list jemalloc) (package-inputs base-rust))))))
-
-(define-public rust-1.34
-  (let ((base-rust (rust-bootstrapped-package
-                    rust-1.33 "1.34.1"
-                    "19s09k7y5j6g3y4d2rk6kg9pvq6ml94c49w6b72dmq8p9lk8bixh")))
-    (package
-      (inherit base-rust)
-      (source
-       (origin
-         (inherit (package-source base-rust))
-         (snippet '(for-each delete-file-recursively
-                             '("src/llvm-emscripten"
-                               "src/llvm-project"
-                               "vendor/jemalloc-sys/jemalloc"))))))))
-
-(define-public rust-1.35
-  (let ((base-rust (rust-bootstrapped-package
-                    rust-1.34 "1.35.0"
-                    "0bbizy6b7002v1rdhrxrf5gijclbyizdhkglhp81ib3bf5x66kas")))
-    (package
-      (inherit base-rust)
-      (arguments
-       (substitute-keyword-arguments (package-arguments base-rust)
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (delete 'disable-codegen-tests))))))))
-
-(define-public rust-1.36
-  (rust-bootstrapped-package
-   rust-1.35 "1.36.0" "06xv2p6zq03lidr0yaf029ii8wnjjqa894nkmrm6s0rx47by9i04"))
-
-(define-public rust-1.37
-  (let ((base-rust (rust-bootstrapped-package
-                    rust-1.36 "1.37.0"
-                    "1hrqprybhkhs6d9b5pjskfnc5z9v2l2gync7nb39qjb5s0h703hj")))
-    (package
-      (inherit base-rust)
-      (arguments
-       (substitute-keyword-arguments (package-arguments base-rust)
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (add-before 'configure 'configure-cargo-home
-               (lambda _
-                 (let ((cargo-home (string-append (getcwd) "/.cargo")))
-                   (mkdir-p cargo-home)
-                   (setenv "CARGO_HOME" cargo-home)))))))))))
-
-(define-public rust-1.38
-  (rust-bootstrapped-package
-    rust-1.37 "1.38.0" "101dlpsfkq67p0hbwx4acqq6n90dj4bbprndizpgh1kigk566hk4"))
-
-(define-public rust-1.39
-  (let ((base-rust (rust-bootstrapped-package
-                    rust-1.38 "1.39.0"
-                    "0mwkc1bnil2cfyf6nglpvbn2y0zfbv44zfhsd5qg4c9rm6vgd8dl")))
+                    rust-1.40 "1.41.1"
+                    "0ws5x0fxv57fyllsa6025h3q6j9v3m8nb3syl4x0hgkddq0kvj9q")))
     (package
       (inherit base-rust)
       (arguments
        (substitute-keyword-arguments (package-arguments base-rust)
+         ((#:validate-runpath? _ #t)
+          #t)
          ((#:phases phases)
           `(modify-phases ,phases
-             (replace 'patch-cargo-checksums
-               ;; The Cargo.lock format changed.
+             (delete 'add-cc-shim-to-path)
+             (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums
                (lambda* _
-                 (use-modules (guix build cargo-utils))
                  (substitute* "Cargo.lock"
                    (("(checksum = )\".*\"" all name)
                     (string-append name "\"" ,%cargo-reference-hash "\"")))
                  (generate-all-checksums "vendor"))))))))))
 
-(define-public rust-1.40
-  (let ((base-rust (rust-bootstrapped-package
-                    rust-1.39 "1.40.0"
-                    "1ba9llwhqm49w7sz3z0gqscj039m53ky9wxzhaj11z6yg1ah15yx")))
-    (package
-      (inherit base-rust)
-      (source
-       (origin
-         (inherit (package-source base-rust))
-         ;; llvm-emscripten is no longer bundled, as that codegen backend
-         ;; got removed.
-         (snippet '(for-each delete-file-recursively
-                             '("src/llvm-project"
-                               "vendor/jemalloc-sys/jemalloc")))))
-       ;; Rust 1.40 does not ship rustc-internal libraries by default (see
-       ;; rustc-dev-split). This means that librustc_driver.so is no longer
-       ;; available in lib/rustlib/$target/lib, which is the directory
-       ;; included in the runpath of librustc_codegen_llvm-llvm.so.  This is
-       ;; detected by our validate-runpath phase as an error, but it is
-       ;; harmless as the codegen backend is loaded by librustc_driver.so
-       ;; itself, which must at that point have been already loaded.  As such,
-       ;; we skip validating the runpath for Rust 1.40.  Rust 1.41 stopped
-       ;; putting the codegen backend in a separate library, which makes this
-       ;; workaround only necessary for this release.
-      (arguments (substitute-keyword-arguments (package-arguments base-rust)
-         ((#:validate-runpath? _ #f)
-          #f))))))
-
-(define-public rust-1.41
-  (let ((base-rust (rust-bootstrapped-package
-                    rust-1.40 "1.41.1"
-                    "0ws5x0fxv57fyllsa6025h3q6j9v3m8nb3syl4x0hgkddq0kvj9q")))
-    (package
-      (inherit base-rust)
-      (arguments
-       (substitute-keyword-arguments (package-arguments base-rust)
-         ((#:validate-runpath? _ #t)
-          #t))))))
-
-(define-public rust-1.42
+(define rust-1.42
   (rust-bootstrapped-package
    rust-1.41 "1.42.0" "0x9lxs82may6c0iln0b908cxyn1cv7h03n5cmbx3j1bas4qzks6j"))
 
-(define-public rust-1.43
+(define rust-1.43
   (rust-bootstrapped-package
    rust-1.42 "1.43.0" "18akhk0wz1my6y9vhardriy2ysc482z0fnjdcgs9gy59kmnarxkm"))
 
-;; This version needs llvm >= 8.0 and NOT 11
-(define-public rust-1.44
-  (let ((base-rust  (rust-bootstrapped-package
-                      rust-1.43 "1.44.1"
-                      "0ww4z2v3gxgn3zddqzwqya1gln04p91ykbrflnpdbmcd575n8bky")))
-    (package
-      (inherit base-rust)
-      (inputs
-       (alist-replace "llvm" (list llvm-10) (package-inputs base-rust))))))
+;; This version requires llvm <= 11.
+(define rust-1.44
+  (rust-bootstrapped-package
+   rust-1.43 "1.44.1"
+   "0ww4z2v3gxgn3zddqzwqya1gln04p91ykbrflnpdbmcd575n8bky"))
 
-(define-public rust-1.45
+(define rust-1.45
   (let ((base-rust (rust-bootstrapped-package
                     rust-1.44 "1.45.2"
                     "0273a1g3f59plyi1n0azf21qjzwml1yqdnj5z472crz37qggr8xp")))
@@ -669,68 +564,73 @@ safety and thread safety guarantees.")
                    (("linker.env\\(\"LC_ALL\", \"C\"\\);")
                     "linker.env(\"LC_ALL\", \"en_US.UTF-8\");")))))))))))
 
-(define-public rust-1.46
+(define rust-1.46
+  (rust-bootstrapped-package
+   rust-1.45 "1.46.0" "0a17jby2pd050s24cy4dfc0gzvgcl585v3vvyfilniyvjrqknsid"))
+
+(define rust-1.47
   (let ((base-rust (rust-bootstrapped-package
-                    rust-1.45 "1.46.0"
-                    "0a17jby2pd050s24cy4dfc0gzvgcl585v3vvyfilniyvjrqknsid")))
-    (package
-      (inherit base-rust)
-      (outputs (cons "rustfmt" (package-outputs base-rust)))
+                    rust-1.46 "1.47.0"
+                    "07fqd2vp7cf1ka3hr207dnnz93ymxml4935vp74g4is79h3dz19i")))
+    (package/inherit base-rust
       (arguments
        (substitute-keyword-arguments (package-arguments base-rust)
          ((#:phases phases)
           `(modify-phases ,phases
              (replace 'build
-               ;; Phase overridden to also build rustfmt.
+               ;; The standard library source location moved in this release.
                (lambda* (#:key parallel-build? #:allow-other-keys)
                  (let ((job-spec (string-append
                                   "-j" (if parallel-build?
                                            (number->string (parallel-job-count))
                                            "1"))))
-                   (invoke "./x.py" job-spec "build")
-                   (invoke "./x.py" job-spec "build" "src/tools/cargo")
-                   (invoke "./x.py" job-spec "build" "src/tools/rustfmt"))))
-             (replace 'check
-               ;; Phase overridden to also test rustfmt.
-               (lambda* (#:key tests? parallel-build? #:allow-other-keys)
-                 (when tests?
-                   (let ((job-spec (string-append
-                                    "-j" (if parallel-build?
-                                             (number->string (parallel-job-count))
-                                             "1"))))
-                     (invoke "./x.py" job-spec "test" "-vv")
-                     (invoke "./x.py" job-spec "test" "src/tools/cargo")
-                     (invoke "./x.py" job-spec "test" "src/tools/rustfmt")))))
-             (replace 'install
-               ;; Phase overridden to also install rustfmt.
-               (lambda* (#:key outputs #:allow-other-keys)
-                 (invoke "./x.py" "install")
-                 (substitute* "config.toml"
-                   ;; Adjust the prefix to the 'cargo' output.
-                   (("prefix = \"[^\"]*\"")
-                    (format #f "prefix = ~s" (assoc-ref outputs "cargo"))))
-                 (invoke "./x.py" "install" "cargo")
-                 (substitute* "config.toml"
-                   ;; Adjust the prefix to the 'rustfmt' output.
-                   (("prefix = \"[^\"]*\"")
-                    (format #f "prefix = ~s" (assoc-ref outputs "rustfmt"))))
-                 (invoke "./x.py" "install" "rustfmt"))))))))))
+                   (invoke "./x.py" job-spec "build" "--stage=1"
+                           "library/std"
+                           "src/tools/cargo")))))))))))
 
-(define-public rust-1.47
+(define rust-1.48
   (rust-bootstrapped-package
-    rust-1.46 "1.47.0" "07fqd2vp7cf1ka3hr207dnnz93ymxml4935vp74g4is79h3dz19i"))
+   rust-1.47 "1.48.0" "0fz4gbb5hp5qalrl9lcl8yw4kk7ai7wx511jb28nypbxninkwxhf"))
 
-(define-public rust-1.48
+(define rust-1.49
   (rust-bootstrapped-package
-   rust-1.47 "1.48.0" "0fz4gbb5hp5qalrl9lcl8yw4kk7ai7wx511jb28nypbxninkwxhf"))
+   rust-1.48 "1.49.0" "0yf7kll517398dgqsr7m3gldzj0iwsp3ggzxrayckpqzvylfy2mm"))
 
-(define-public rust-1.49
+(define rust-1.50
+  (rust-bootstrapped-package
+   rust-1.49 "1.50.0" "0pjs7j62maiyvkmhp9zrxl528g2n0fphp4rq6ap7aqdv0a6qz5wm"))
+
+(define rust-1.51
+  (rust-bootstrapped-package
+   rust-1.50 "1.51.0" "0ixqkqglv3isxbvl4ldr4byrkx692wghsz3fasy1pn5kr2prnsvs"))
+
+;;; The LLVM requiriment has been bumped to version 10 in Rust 1.52.  Use the
+;;; latest available.
+(define rust-1.52
   (let ((base-rust (rust-bootstrapped-package
-                    rust-1.48 "1.49.0"
-                    "0yf7kll517398dgqsr7m3gldzj0iwsp3ggzxrayckpqzvylfy2mm")))
+                    rust-1.51 "1.52.1"
+                    "165zs3xzp9dravybwslqs1qhn35agp6wacmzpymqg3qfdni26vrs")))
+    (package
+      (inherit base-rust)
+      (inputs (alist-replace "llvm" (list llvm-12)
+                             (package-inputs base-rust))))))
+
+(define rust-1.53
+  (rust-bootstrapped-package
+   rust-1.52 "1.53.0" "1f95p259dfp5ca118bg107rj3rqwlswy65dxn3hg8sqgl4wwmxsw"))
+
+(define rust-1.54
+  (let ((base-rust
+         (rust-bootstrapped-package
+          rust-1.53 "1.54.0"
+          "0xk9dhfff16caambmwij67zgshd8v9djw6ha0fnnanlv7rii31dc")))
     (package
       (inherit base-rust)
-      (outputs (cons "doc" (package-outputs base-rust)))
+      (source
+       (origin
+         (inherit (package-source base-rust))
+         (snippet '(delete-file-recursively "src/llvm-project"))))
+      (outputs (cons "rustfmt" (package-outputs base-rust)))
       (arguments
        (substitute-keyword-arguments (package-arguments base-rust)
          ((#:tests? _ #f)
@@ -828,35 +728,51 @@ safety and thread safety guarantees.")
                    (substitute* "config.toml"
                      (("^python =.*" all)
                       (string-append all
-                                     "gdb = \"" gdb "/bin/gdb\"\n"))))))))))
+                                     "gdb = \"" gdb "/bin/gdb\"\n"))))))
+             (replace 'build
+               ;; Phase overridden to also build rustfmt.
+               (lambda* (#:key parallel-build? #:allow-other-keys)
+                 (let ((job-spec (string-append
+                                  "-j" (if parallel-build?
+                                           (number->string (parallel-job-count))
+                                           "1"))))
+                   (invoke "./x.py" job-spec "build"
+                           "library/std" ;rustc
+                           "src/tools/cargo"
+                           "src/tools/rustfmt"))))
+             (replace 'check
+               ;; Phase overridden to also test rustfmt.
+               (lambda* (#:key tests? parallel-build? #:allow-other-keys)
+                 (when tests?
+                   (let ((job-spec (string-append
+                                    "-j" (if parallel-build?
+                                             (number->string (parallel-job-count))
+                                             "1"))))
+                     (invoke "./x.py" job-spec "test" "-vv"
+                             "library/std"
+                             "src/tools/cargo"
+                             "src/tools/rustfmt")))))
+             (replace 'install
+               ;; Phase overridden to also install rustfmt.
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (invoke "./x.py" "install")
+                 (substitute* "config.toml"
+                   ;; Adjust the prefix to the 'cargo' output.
+                   (("prefix = \"[^\"]*\"")
+                    (format #f "prefix = ~s" (assoc-ref outputs "cargo"))))
+                 (invoke "./x.py" "install" "cargo")
+                 (substitute* "config.toml"
+                   ;; Adjust the prefix to the 'rustfmt' output.
+                   (("prefix = \"[^\"]*\"")
+                    (format #f "prefix = ~s" (assoc-ref outputs "rustfmt"))))
+                 (invoke "./x.py" "install" "rustfmt")))))))
       ;; Add test inputs.
-      (native-inputs (cons*
-                      ;; The tests fail when using GDB 10 (see:
-                      ;; https://github.com/rust-lang/rust/issues/79009).
-                      `("gdb" ,gdb-9.2)
-                      `("procps" ,procps)
-                      (package-native-inputs base-rust))))))
-
-(define-public rust-1.50
-  (rust-bootstrapped-package rust-1.49 "1.50.0"
-    "0pjs7j62maiyvkmhp9zrxl528g2n0fphp4rq6ap7aqdv0a6qz5wm"))
-
-(define-public rust-1.51
-  (rust-bootstrapped-package rust-1.50 "1.51.0"
-    "0ixqkqglv3isxbvl4ldr4byrkx692wghsz3fasy1pn5kr2prnsvs"))
-
-(define-public rust-1.52
-  (let ((base-rust
-         (rust-bootstrapped-package rust-1.51 "1.52.1"
-           "165zs3xzp9dravybwslqs1qhn35agp6wacmzpymqg3qfdni26vrs")))
-    (package
-      (inherit base-rust)
-      (inputs
-        (alist-replace "llvm" (list llvm-12)
-                       (package-inputs base-rust))))))
+      (native-inputs (cons* `("gdb" ,gdb)
+                            `("procps" ,procps)
+                            (package-native-inputs base-rust))))))
 
 ;;; Note: Only the latest versions of Rust are supported and tested.  The
 ;;; intermediate rusts are built for bootstrapping purposes and should not
 ;;; be relied upon.  This is to ease maintenance and reduce the time
 ;;; required to build the full Rust bootstrap chain.
-(define-public rust rust-1.49)
+(define-public rust rust-1.54)
diff --git a/gnu/packages/sagemath.scm b/gnu/packages/sagemath.scm
index 7f060155ed..b603a2f151 100644
--- a/gnu/packages/sagemath.scm
+++ b/gnu/packages/sagemath.scm
@@ -55,12 +55,11 @@
          "0ymc4i9y60aazscc1blivirkr1rflzz6akkmvfzyn5l7mgnlbk83"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (propagated-inputs
-     `(("python-cysignals" ,python-cysignals)))
+     (list python-cysignals))
     (inputs
-     `(("gmp" ,gmp)
-       ("pari-gp" ,pari-gp)))
+     (list gmp pari-gp))
     (home-page "https://cypari2.readthedocs.io/")
     (synopsis
      "Python interface to the number theory library libpari")
@@ -91,11 +90,9 @@ but it can be used independently.")
                 "0ljvnmhxqdfsp0yy4c2hynhk5sggm63kkqsq4iwq4k9vsnx2xm97"))))
     (build-system python-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (inputs
-     `(("gmp" ,gmp)
-       ("mpfr" ,mpfr)
-       ("mpc" ,mpc)))
+     (list gmp mpfr mpc))
     (home-page "https://github.com/aleaxit/gmpy")
     (synopsis
      "GMP/MPIR, MPFR, and MPC interface to Python 2.6+ and 3.x")
@@ -150,9 +147,7 @@ function for every found clique.")
          "0l68rikfr7k2l547gb3pp3g8cj5zzxwipm79xrb5r8ffj466ydxg"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (synopsis "Computations with braid groups")
     (description "libbraiding performs computations with braid groups,
 in particular it computes normal forms of group elements.")
@@ -176,11 +171,9 @@ in particular it computes normal forms of group elements.")
          "0sv3cwrf9v9sb5a8wbhjmarxvya13ma3j8y8592f9ymxlk5y0ldk"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (inputs
-     `(("libgc" ,libgc)))
+     (list libgc))
     (synopsis "Computation of homfly polynomials of links")
     (description "libhomfly computes homfly polynomials of links,
 represented as strings.")
@@ -223,15 +216,9 @@ represented as strings.")
         (base32 "09d2p74x1arkydlxy6pw4p4byi7r8q7f29w373h4d8a215kadc6d"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("flint" ,flint)
-       ("gmp" ,gmp)
-       ("python" ,python)
-       ("singular" ,singular)))
+     (list flint gmp python singular))
     (synopsis "Sage fork of GiNaC")
     (description "Pynac is a derivative of the C++ library GiNaC, which
 allows manipulation of symbolic expressions.  It currently provides the
@@ -260,7 +247,7 @@ on numerical types, while GiNaC depends on CLN for this purpose.")
     (native-inputs
      `(("python" ,python-2)))
     (inputs
-     `(("gmp" ,gmp)))
+     (list gmp))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -313,14 +300,9 @@ coefficients of which are modular integers.")
        (base32 "0qhgckd4fvbs40jw14mvw89rccv94d3df27kipd27hxd4cx7y80y"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("boost" ,boost)
-       ("libpng" ,libpng)
-       ("m4ri" ,m4ri)))
+     (list boost libpng m4ri))
     (arguments
     ;; We are missing the boost unit test framework.
      `(#:tests? #f
@@ -426,7 +408,7 @@ zeta function and its twists by quadratic characters.")
                            '("bin" "include" "lib"))))
              #t)))))
     (inputs
-     `(("gmp" ,gmp)))
+     (list gmp))
     (home-page "http://www.mathe2.uni-bayreuth.de/stoll/programs/")
     (synopsis "Find rational points on hyperelliptic curves")
     (description "Ratpoints tries to find all rational points within
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index 359a345029..bb5b402eee 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2015, 2017, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
@@ -55,6 +55,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages popt)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
@@ -64,19 +65,19 @@
 (define-public cifs-utils
   (package
     (name "cifs-utils")
-    (version "6.13")
+    (version "6.14")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.samba.org/pub/linux-cifs/"
                            "cifs-utils/cifs-utils-" version ".tar.bz2"))
        (sha256 (base32
-                "0mnhcc4ayj2vn2azhk45fnal1hibsv0q2c4ihkxcrjhkhrn7in23"))))
+                "1f2n0yzqsy5v5qv83731bi0mi86rrh11z8qjy1gjj8al9c3yh2b6"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config
+           ;; To generate the manpages.
+           python-docutils)) ; rst2man
     (inputs
      `(("keytuils" ,keyutils)
        ("linux-pam" ,linux-pam)
@@ -85,23 +86,31 @@
        ("samba" ,samba)
        ("talloc" ,talloc)))
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       (list "--enable-man")
+       #:phases
        (modify-phases %standard-phases
+         (add-before 'bootstrap 'trigger-bootstrap
+           ;; The shipped configure script is buggy, e.g., it contains a
+           ;; unexpanded literal ‘LIBCAP_NG_PATH’ line).
+           (lambda _
+             (delete-file "configure")))
          (add-before 'configure 'set-root-sbin
            (lambda* (#:key outputs #:allow-other-keys)
              ;; Don't try to install into "/sbin".
              (setenv "ROOTSBINDIR"
-                     (string-append (assoc-ref outputs "out") "/sbin"))
-             #t))
-         (add-before 'install 'create-man8dir
+                     (string-append (assoc-ref outputs "out") "/sbin"))))
+         (add-before 'install 'install-man-pages
            ;; Create a directory that isn't created since version 6.10.
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (mkdir-p (string-append out "/share/man/man8"))
-               #t))))))
+           (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
+             (apply invoke "make" "install-man"
+                    `(,@(if parallel-build?
+                            `("-j" ,(number->string (parallel-job-count)))
+                            '())
+                      ,@make-flags)))))))
     (synopsis "User-space utilities for Linux CIFS (Samba) mounts")
     (description "@code{cifs-utils} is a set of user-space utilities for
-mounting and managing @dfn{Common Internet File System} (CIFS) shares using
+mounting and managing @acronym{CIFS, Common Internet File System} shares using
 the Linux kernel CIFS client.")
     (home-page "https://wiki.samba.org/index.php/LinuxCIFS_utils")
     ;; cifs-utils is licensed as GPL3 or later, but 3 files contain LGPL code.
@@ -172,14 +181,14 @@ external dependencies.")
 (define-public samba
   (package
     (name "samba")
-    (version "4.13.10")
+    (version "4.13.14")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.samba.org/pub/samba/stable/"
                            "samba-" version ".tar.gz"))
        (sha256
-        (base32 "00q5hf2r71dyma785dckcyksv3082mqfgyy9q6k6rc6kqjwkirzh"))
+        (base32 "103zy09mszjlfrsnm2vzrw5d9ph5jckddb9cxsrhrslkzblah4b6"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -231,30 +240,28 @@ external dependencies.")
        ;; test environment.
        #:tests? #f))
     (inputs
-     `(("acl" ,acl)
-       ("cmocka" ,cmocka)
-       ("cups" ,cups)
-       ("gamin" ,gamin)
-       ("dbus" ,dbus)
-       ("gpgme" ,gpgme)
-       ("gnutls" ,gnutls)
-       ("heimdal" ,heimdal)
-       ("jansson" ,jansson)
-       ("libarchive" ,libarchive)
-       ("libtirpc" ,libtirpc)
-       ("linux-pam" ,linux-pam)
-       ("lmdb" ,lmdb)
-       ("openldap" ,openldap)
-       ("perl" ,perl)
-       ("python" ,python)
-       ("popt" ,popt)
-       ("readline" ,readline)
-       ("tdb" ,tdb)))
+     (list acl
+           cmocka
+           cups
+           gamin
+           dbus
+           gpgme
+           gnutls
+           heimdal
+           jansson
+           libarchive
+           libtirpc
+           linux-pam
+           lmdb
+           openldap
+           perl
+           python
+           popt
+           readline
+           tdb))
     (propagated-inputs
      ;; In Requires or Requires.private of pkg-config files.
-     `(("ldb" ,ldb)
-       ("talloc" ,talloc)
-       ("tevent" ,tevent)))
+     (list ldb talloc tevent))
     (native-inputs
      `(("perl-parse-yapp" ,perl-parse-yapp)
        ("pkg-config" ,pkg-config)
@@ -277,6 +284,18 @@ Samba is an important component to seamlessly integrate Linux/Unix Servers and
 Desktops into Active Directory environments using the winbind daemon.")
     (license gpl3+)))
 
+(define-public samba/fixed
+  ;; Version that rarely changes, depended on by libsoup.
+  (package/inherit samba
+    (version "4.13.10")
+    (source
+     (origin
+       (inherit (package-source samba))
+       (uri (string-append "https://download.samba.org/pub/samba/stable/"
+                           "samba-" version ".tar.gz"))
+       (sha256
+        (base32 "00q5hf2r71dyma785dckcyksv3082mqfgyy9q6k6rc6kqjwkirzh"))))))
+
 (define-public talloc
   (package
     (name "talloc")
@@ -301,9 +320,9 @@ Desktops into Active Directory environments using the winbind daemon.")
                (invoke "./configure"
                        (string-append "--prefix=" out))))))))
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (inputs
-     `(("python" ,python)))
+     (list python))
     (home-page "https://talloc.samba.org")
     (synopsis "Hierarchical, reference counted memory pool system")
     (description
@@ -367,12 +386,9 @@ destructors.  It is the core memory allocator used in Samba.")
                        (string-append "--prefix=" out)
                        "--bundled-libraries=NONE")))))))
     (native-inputs
-     `(("cmocka" ,cmocka)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("which" ,which)))
+     (list cmocka pkg-config python which))
     (propagated-inputs
-     `(("talloc" ,talloc))) ; required by tevent.pc
+     (list talloc)) ; required by tevent.pc
     (synopsis "Event system library")
     (home-page "https://tevent.samba.org/")
     (description
@@ -384,14 +400,14 @@ many event types, including timers, signals, and the classic file descriptor eve
 (define-public ldb
   (package
     (name "ldb")
-    (version "2.4.0")
+    (version "2.4.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.samba.org/ftp/ldb/ldb-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "10rd1z2llqz8xdx6m7yyxb9a118gx2xxwri18bhkkab9n1w55rvn"))
+                "13yd7lavbx8bxwnmzl0j7xnl2gl4wmnn0q9g7n3y7bvbnhm07hb9"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -400,8 +416,7 @@ many event types, including timers, signals, and the classic file descriptor eve
                               (unless (or (string-prefix? "third_party/waf" file)
                                           (string-suffix? "wscript" file))
                                 (delete-file file)))
-                            (find-files "third_party"))
-                  #t))))
+                            (find-files "third_party"))))))
     (build-system gnu-build-system)
     (arguments
      '(;; LMDB is only supported on 64-bit systems, yet the test suite
@@ -419,14 +434,10 @@ many event types, including timers, signals, and the classic file descriptor eve
                                       "/lib/ldb/modules")
                        "--bundled-libraries=NONE")))))))
     (native-inputs
-     `(("cmocka" ,cmocka)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("which" ,which)))
+     (list cmocka pkg-config python which))
     (propagated-inputs
      ;; ldb.pc refers to all these.
-     `(("talloc" ,talloc)
-       ("tdb" ,tdb)))
+     (list talloc tdb))
     (inputs
      `(,@(if (target-64bit?)
              `(("lmdb" ,lmdb))
@@ -475,8 +486,8 @@ key-value pair databases and a real LDAP database.")
                   (string-append libpcap "/include/pcap-bpf.h")))
                #t))))))
     (inputs
-     `(("libpcap" ,libpcap)
-       ("openssl" ,(@ (gnu packages tls) openssl))))
+     (list libpcap
+           (@ (gnu packages tls) openssl)))
     (synopsis "Implementation of the Point-to-Point Protocol")
     (home-page "https://ppp.samba.org/")
     (description
diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm
index 4162fe43cd..ab715b4a7d 100644
--- a/gnu/packages/sawfish.scm
+++ b/gnu/packages/sawfish.scm
@@ -50,17 +50,9 @@
                 "1bmcjl1x1rdh514q9z3hzyjmjmwwwkziipjpjsl301bwmiwrd8a8"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("makeinfo"   ,texinfo)
-       ("pkg-config" ,pkg-config)
-
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool"  ,libtool)))
+     (list texinfo pkg-config autoconf automake libtool))
     (inputs
-     `(("gdbm"     ,gdbm)
-       ("gmp"      ,gmp)
-       ("libffi"   ,libffi)
-       ("readline" ,readline)))
+     (list gdbm gmp libffi readline))
     (native-search-paths
      (list (search-path-specification
             (variable "REP_DL_LOAD_PATH")
@@ -107,14 +99,10 @@ implementing both small and large scale systems.")
              (delete-file "autogen.sh")
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (propagated-inputs
      ;; required by rep-gtk.pc.
-     `(("gtk+"   ,gtk+-2)
-       ("librep" ,librep)))
+     (list gtk+-2 librep))
     (home-page "https://sawfish.fandom.com/wiki/Rep-GTK")
     (synopsis "GTK+ binding for librep")
     (description
@@ -180,12 +168,12 @@ backend of Sawfish.")
        ("pkg-config"  ,pkg-config)
        ("which"       ,which)))
     (inputs
-     `(("libsm"       ,libsm)
-       ("libxft"      ,libxft)
-       ("libxinerama" ,libxinerama)
-       ("libxrandr"   ,libxrandr)
-       ("libxtst"     ,libxtst)
-       ("rep-gtk"     ,rep-gtk)))
+     (list libsm
+           libxft
+           libxinerama
+           libxrandr
+           libxtst
+           rep-gtk))
     (home-page "https://sawfish.tuxfamily.org")
     (synopsis "Configurable window manager")
     (description
diff --git a/gnu/packages/scanner.scm b/gnu/packages/scanner.scm
index 00d094cc4b..02424f0da2 100644
--- a/gnu/packages/scanner.scm
+++ b/gnu/packages/scanner.scm
@@ -75,7 +75,7 @@
        ;; For scripts/pixma_gen_options.py.
        ("python" ,python-wrapper)))
     (inputs
-     `(("libusb" ,libusb)))
+     (list libusb))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -231,7 +231,7 @@ package contains the library and drivers.")))
                                         ,name "-" ,version)))
                (install-file "doc/README.txt" doc)))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("dbus" ,dbus)
        ("libconfuse" ,libconfuse)
@@ -240,7 +240,7 @@ package contains the library and drivers.")))
        ("zlib" ,zlib)))
     (home-page "https://scanbd.sourceforge.io")
     (synopsis "Configurable scanner button monitor")
-    (description "Scanbd stands for scanner button daemon.  It regulary polls
+    (description "Scanbd stands for scanner button daemon.  It regularly polls
 scanners for pressed buttons, function knob changes, or other events such
 as (un)plugging the scanner or inserting and removing paper.  Then it performs
 the desired action(s) such as saving, copying, or e-mailing the image.
@@ -315,7 +315,7 @@ provided the driver also exposes the buttons.")
                (rmdir (string-append out "/sbin"))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("gtk+" ,gtk+-2)
        ("lcms" ,lcms)
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index ea1adb99ee..f9ffa25f5a 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -16,6 +16,7 @@
 ;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
 ;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -36,7 +37,7 @@
   #:use-module (gnu packages)
   #:use-module ((guix licenses)
                 #:select (gpl2+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ asl2.0 bsd-3
-                          cc-by-sa4.0 non-copyleft expat))
+                          cc-by-sa4.0 non-copyleft expat public-domain))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -303,21 +304,20 @@ features an integrated Emacs-like editor and a large runtime library.")
                          (string-append "EMACSBRAND=emacs25")
                          (string-append "EMACSDIR=" dir))))))))
       (inputs
-       `(("emacs" ,emacs)                     ;UDE needs the X version of Emacs
-         ("libgc" ,libgc)
-         ("libunistring" ,libunistring)
-         ("libuv" ,libuv)
-         ("openssl" ,openssl)
-         ("sqlite" ,sqlite)
-
-         ;; Optional APIs for which Bigloo has bindings.
-         ("avahi" ,avahi)
-         ("libphidget" ,libphidget)
-         ("pcre" ,pcre)))
+       (list emacs ;UDE needs the X version of Emacs
+             libgc
+             libunistring
+             libuv
+             openssl
+             sqlite
+             ;; Optional APIs for which Bigloo has bindings.
+             avahi
+             libphidget
+             pcre))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (propagated-inputs
-       `(("gmp" ,gmp)))                            ; bigloo.h refers to gmp.h
+       (list gmp))                            ; bigloo.h refers to gmp.h
       (home-page "https://www-sop.inria.fr/indes/fp/Bigloo/")
       (synopsis "Efficient Scheme compiler")
       (description
@@ -363,14 +363,14 @@ and between Scheme and Java programs.")
                                       "-copt \\$(CPICFLAGS) "
                                       "-L \\$(BUILDLIBDIR) "
                                       "-ldopt -Wl,-rpath," out "/lib"))))))))
-    (inputs `(("avahi" ,avahi)
-              ("bigloo" ,bigloo)
-              ("libgc" ,libgc)
-              ("libunistring" ,libunistring)
-              ("libuv" ,libuv)
-              ("pcre" ,pcre)
-              ("sqlite" ,sqlite)
-              ("which" ,which)))
+    (inputs (list avahi
+                  bigloo
+                  libgc
+                  libunistring
+                  libuv
+                  pcre
+                  sqlite
+                  which))
     (home-page "http://hop.inria.fr/")
     (synopsis "Multi-tier programming language for the Web 2.0")
     (description
@@ -440,7 +440,7 @@ mixed.")
 (define-public chibi-scheme
   (package
     (name "chibi-scheme")
-    (version "0.9")
+    (version "0.10")
     (home-page "https://github.com/ashinn/chibi-scheme")
     (source
      (origin
@@ -448,17 +448,15 @@ mixed.")
        (uri (git-reference (url home-page) (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1lnap41gl9vg82h557f4rlr69jgmd2gh0iqs6cxm77d39kv1scb8"))))
+        (base32 "0yhmj0lws3r3bl4ivs31dhlzxqc7f0dinixi904mraz1fmrg3w7f"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (delete 'configure)
-                  (add-before 'build 'set-cc
-                    (lambda _
-                      (setenv "CC" "gcc"))))
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure))           ; no configure script
        #:make-flags (let ((out (assoc-ref %outputs "out")))
                       (list (string-append "PREFIX=" out)
+                            (string-append "CC=" ,(cc-for-target))
                             (string-append "LDFLAGS=-Wl,-rpath=" out "/lib")))
        #:test-target "test"))
     (synopsis "Small embeddable Scheme implementation")
@@ -585,8 +583,7 @@ regular-expression notation.")
                     (invoke "./configure"
                             (string-append "--prefix="
                                            (assoc-ref outputs "out"))))))))
-    (native-inputs `(("unzip" ,unzip)
-                     ("texinfo" ,texinfo)))
+    (native-inputs (list unzip texinfo))
     (home-page "https://people.csail.mit.edu/jaffer/SLIB.html")
     (synopsis "Compatibility and utility library for Scheme")
     (description "SLIB is a portable Scheme library providing compatibility and
@@ -639,9 +636,8 @@ utility functions for all standard Scheme implementations.")
                         ;; We must generate the slibcat file.
                         (invoke (string-append out "/bin/scm")
                                 "-br" "new-catalog")))))))
-    (inputs `(("slib" ,slib)))
-    (native-inputs `(("unzip" ,unzip)
-                     ("texinfo" ,texinfo)))
+    (inputs (list slib))
+    (native-inputs (list unzip texinfo))
     (home-page "https://people.csail.mit.edu/jaffer/SCM")
     (synopsis "Scheme implementation conforming to R5RS and IEEE P1178")
     (description "GNU SCM is an implementation of Scheme.  This
@@ -663,7 +659,7 @@ linked with a SCM executable.")
                 "0rik3qnxqd8wjlazx8rw996pfzkjjg60v6hcbpcqzi7rgml8q4n8"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -777,9 +773,9 @@ small program, it is easy to comprehend, get to grips with, and use.")
                                (string-append out "/bin"))
                  #t))))))
       (inputs
-       `(("libx11" ,libx11)))
+       (list libx11))
       (propagated-inputs
-       `(("libgc" ,libgc)))
+       (list libgc))
       (supported-systems '("x86_64-linux"))
       (home-page "https://engineering.purdue.edu/~qobi/papers/fdlcc.pdf")
       (synopsis "Brutally efficient Scheme compiler")
@@ -794,6 +790,45 @@ program-point-specific low-level representation selection and code
 generation.")
       (license gpl2+))))
 
+(define-public s9fes
+  (package
+    (name "s9fes")
+    (version "20181205")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.t3x.org/s9fes/s9fes-" version ".tgz"))
+       (sha256
+        (base32 "0ynpl707bc9drwkdpdgvw14bz9zmwd3wffl1k02sxppjl28xm7rf"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "PREFIX=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'install
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "install-all" make-flags))))
+       #:tests? #f))  ; No check target.
+    (inputs
+     (list ncurses))
+    (home-page "https://www.t3x.org/s9fes/")
+    (synopsis "Interpreter for R4RS Scheme")
+    (description
+     "Scheme 9 from Empty Space (S9fES) is a mature, portable, and
+comprehensible public-domain interpreter for R4RS Scheme offering:
+@itemize
+@item bignum arithmetics
+@item decimal-based real number arithmetics
+@item support for low-level Unix programming
+@item cursor addressing with Curses
+@item basic networking procedures
+@item an integrated online help system
+@item loads of useful library functions
+@end itemize")
+    (license public-domain)))
+
 (define-public femtolisp
   (let ((commit "ec7601076a976f845bc05ad6bd3ed5b8cde58a97")
         (revision "2"))
@@ -865,13 +900,10 @@ The core is 12 builtin special forms and 33 builtin functions.")
                    #t))))
     (build-system gnu-build-system)
     (inputs
-     `(("libatomic-ops" ,libatomic-ops)
-       ("slib" ,slib)
-       ("zlib" ,zlib)))
+     (list libatomic-ops slib zlib))
     (native-inputs
-     `(("texinfo" ,texinfo)
-       ("openssl" ,openssl)            ; needed for tests
-       ("pkg-config" ,pkg-config)))    ; needed to find external libatomic-ops
+     (list texinfo openssl ; needed for tests
+           pkg-config))    ; needed to find external libatomic-ops
     (arguments
      `(#:configure-flags
        (list (string-append "--with-slib="
@@ -998,13 +1030,9 @@ and list gauche extension packages.")
                (copy-recursively "../bin" bin)
                (copy-recursively "../lib" lib)))))))
     (native-inputs
-     `(("coreutils" ,coreutils)
-       ("util-linux" ,util-linux)))
+     (list coreutils util-linux))
     (propagated-inputs
-     `(("gambit-c" ,gambit-c)
-       ("zlib" ,zlib)
-       ("openssl" ,openssl)
-       ("sqlite" ,sqlite)))
+     (list gambit-c zlib openssl sqlite))
     (build-system gnu-build-system)
     (synopsis "Meta-dialect of Scheme with post-modern features")
     (description "Gerbil is an opinionated dialect of Scheme designed for Systems
diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm
index 502e8f11af..d244ed1434 100644
--- a/gnu/packages/screen.scm
+++ b/gnu/packages/screen.scm
@@ -52,8 +52,7 @@
     (native-inputs
      `(("makeinfo" ,texinfo)))
     (inputs
-     `(("ncurses" ,ncurses)
-       ("perl" ,perl)))
+     (list ncurses perl))
     (arguments
      `(#:configure-flags
        ;; By default, screen supports 16 colors, but we want 256 when
diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm
index a9372735bf..1da289c010 100644
--- a/gnu/packages/scribus.scm
+++ b/gnu/packages/scribus.scm
@@ -91,9 +91,7 @@
        ("qtdeclarative" ,qtdeclarative)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)
-       ("util-linux" ,util-linux)))
+     (list pkg-config qttools util-linux))
     (home-page "https://www.scribus.net")
     (synopsis "Desktop publishing and page layout program")
     (description
diff --git a/gnu/packages/scsi.scm b/gnu/packages/scsi.scm
index 4c3bfd7e33..12a623776e 100644
--- a/gnu/packages/scsi.scm
+++ b/gnu/packages/scsi.scm
@@ -27,15 +27,18 @@
 (define-public sg3-utils
   (package
     (name "sg3-utils")
-    (version "1.46")
+    (version "1.47")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://sg.danny.cz/sg/p/sg3_utils-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "185rlxppnsmi6q7garfhglmw31gji2ff24xg2yjk3klk1fqnihjr"))))
+                "1ckj2kjcs23lbjfyl5mz2rb0aylnyq13yghg0bdv1n7dbywcmc6x"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "--disable-static")))
     (home-page "http://sg.danny.cz/sg/sg3_utils.html")
     (synopsis "SCSI device utilities")
     (description
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index f2afe763c5..4c38e2f055 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2017 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
@@ -34,7 +34,7 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:use-module (gnu packages)
-  #:use-module ((guix licenses) #:hide (freetype))
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -43,6 +43,7 @@
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages fcitx)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
@@ -93,24 +94,21 @@
        #:tests? #f)) ; no check target
     (propagated-inputs
      ;; SDL headers include X11 headers.
-     `(("libx11" ,libx11)
-       ("libcap" ,libcap) ; 'libSDL.la' contain `-lcap'.
-       ;; TODO: Since building Mesa with Meson it is now necessary that Mesa is
-       ;; a propogated input. We still need to figure out why, possibly due to a
-       ;; change in pkg-config.
-       ("mesa" ,mesa)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("libxrandr" ,libxrandr)
-              ("glu" ,glu)
-              ("alsa-lib" ,alsa-lib)
-              ("pulseaudio" ,pulseaudio)))
+     (list libx11
+           libcap ; 'libSDL.la' contain `-lcap'.
+           ;; TODO: Since building Mesa with Meson it is now necessary that Mesa is
+           ;; a propogated input. We still need to figure out why, possibly due to a
+           ;; change in pkg-config.
+           mesa))
+    (native-inputs (list pkg-config))
+    (inputs (list libxrandr glu alsa-lib pulseaudio))
     (outputs '("out" "debug"))
     (synopsis "Cross platform game development library")
     (description "Simple DirectMedia Layer is a cross-platform development
 library designed to provide low level access to audio, keyboard, mouse,
 joystick, and graphics hardware.")
     (home-page "https://libsdl.org/")
-    (license lgpl2.1)))
+    (license license:lgpl2.1)))
 
 (define-public sdl2
   (package (inherit sdl)
@@ -153,7 +151,7 @@ joystick, and graphics hardware.")
                ("wayland" ,wayland)
                ("wayland-protocols" ,wayland-protocols))
              (package-inputs sdl)))
-    (license bsd-3)))
+    (license license:bsd-3)))
 
 (define-public libmikmod
   (package
@@ -182,7 +180,7 @@ joystick, and graphics hardware.")
      "MikMod is able to play a wide range of module formats, as well as
 digital sound files.  It can take advantage of particular features of your
 system, such as sound redirection over the network.")
-    (license lgpl2.1)
+    (license license:lgpl2.1)
     (home-page "http://mikmod.sourceforge.net/")))
 
 (define-public sdl-gfx
@@ -206,12 +204,12 @@ system, such as sound redirection over the network.")
         ;; mmx is supported only on Intel processors.
         '()
         '(#:configure-flags '("--disable-mmx")))))
-    (propagated-inputs `(("sdl" ,sdl)))
+    (propagated-inputs (list sdl))
     (synopsis "SDL graphics primitives library")
     (description "SDL_gfx provides graphics drawing primitives, rotozoom and
 other supporting functions for SDL.")
     (home-page "http://www.ferzkopp.net/joomla/software-mainmenu-14/4-ferzkopps-linux-software/19-sdlgfx")
-    (license zlib)))
+    (license license:zlib)))
 
 (define-public sdl-image
   (package
@@ -233,7 +231,7 @@ other supporting functions for SDL.")
                            "--disable-png-shared"
                            "--disable-tif-shared"
                            "--disable-webp-shared")))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     ;; libjpeg, libpng, and libtiff are propagated inputs because the
     ;; SDL_image headers include the headers of these libraries.  SDL is a
     ;; propagated input because the pkg-config file refers to SDL's pkg-config
@@ -248,7 +246,7 @@ other supporting functions for SDL.")
 supports the following formats: BMP, GIF, JPEG, LBM, PCX, PNG, PNM, TGA, TIFF,
 WEBP, XCF, XPM, and XV.")
     (home-page "https://www.libsdl.org/projects/SDL_image/")
-    (license zlib)))
+    (license license:zlib)))
 
 (define-public sdl-mixer
   (package
@@ -290,7 +288,7 @@ WEBP, XCF, XPM, and XV.")
        ("libmad" ,libmad)
        ("libmikmod" ,libmikmod)
        ("libvorbis" ,libvorbis)))
-    (propagated-inputs `(("sdl" ,sdl)))
+    (propagated-inputs (list sdl))
     (synopsis "SDL multi-channel audio mixer library")
     (description "SDL_mixer is a multi-channel audio mixer library for SDL.
 It supports any number of simultaneously playing channels of 16 bit stereo
@@ -303,7 +301,7 @@ and specify it using the @code{SDL_SOUNDFONTS} environment variable.  For the
 legacy @code{timidity} backend, install a patch set such as @code{freepats}
 and set the path to the configuration file with @code{TIMIDITY_CFG}.")
     (home-page "https://www.libsdl.org/projects/SDL_mixer/")
-    (license zlib)))
+    (license license:zlib)))
 
 (define-public sdl-net
   (package
@@ -318,14 +316,14 @@ and set the path to the configuration file with @code{TIMIDITY_CFG}.")
                (base32
                 "1d5c9xqlf4s1c01gzv6cxmg0r621pq9kfgxcg3197xw4p25pljjz"))))
     (build-system gnu-build-system)
-    (propagated-inputs `(("sdl" ,sdl)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (propagated-inputs (list sdl))
+    (native-inputs (list pkg-config))
     (outputs '("out" "debug"))
     (synopsis "SDL networking library")
     (description "SDL_net is a small, cross-platform networking library for
 SDL.")
     (home-page "https://www.libsdl.org/projects/SDL_net/")
-    (license zlib)))
+    (license license:zlib)))
 
 (define-public sdl-pango
   (package
@@ -355,10 +353,7 @@ SDL.")
            ;; generates linking errors.
            (lambda _ (invoke "autoreconf" "-vif"))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
      `(("fontconfig" ,fontconfig)
        ("freetype" ,freetype)
@@ -371,30 +366,35 @@ SDL.")
     (description "This library is a wrapper around the Pango library.
 It allows you to use TrueType fonts to render internationalized and
 tagged text in SDL applications.")
-    (license lgpl2.1)))
+    (license license:lgpl2.1)))
 
 (define-public sdl-ttf
   (package
     (name "sdl-ttf")
-    (version "2.0.11")
+    (version "2.0.11.1")
+    ;; No release tarball for 2.0.11.1, changes:
+    ;; <https://github.com/libsdl-org/SDL_ttf/commit/e31d11a692>
     (source (origin
-             (method url-fetch)
-             (uri
-              (string-append "https://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-"
-                             version ".tar.gz"))
-             (sha256
-              (base32
-               "1dydxd4f5kb1288i5n5568kdk2q7f8mqjr7i7sd33nplxjaxhk3j"))))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/libsdl-org/SDL_ttf")
+                    (commit "e31d11a692e5b55e8e624ad766e4e44d655422c8")))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1id1cdign615wd5rq0g4ppzwclvhkwd61yb5rwvvvakkpplp3lvd"))
+              ;; Remove bundled libraries.
+              (modules '((guix build utils)))
+              (snippet '(delete-file-recursively "external"))))
     (build-system gnu-build-system)
-    (propagated-inputs `(("sdl" ,sdl)))
-    (inputs `(("freetype" ,freetype)
-              ("mesa" ,mesa)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (propagated-inputs (list sdl))
+    (inputs (list freetype mesa))
+    (native-inputs (list pkg-config))
     (outputs '("out" "debug"))
     (synopsis "SDL TrueType font library")
     (description "SDL_ttf is a TrueType font rendering library for SDL.")
     (home-page "https://www.libsdl.org/projects/SDL_ttf/")
-    (license zlib)))
+    (license license:zlib)))
 
 (define* (sdl-union #:optional (packages (list sdl sdl-gfx sdl-net sdl-ttf
                                                sdl-image sdl-mixer)))
@@ -492,10 +492,11 @@ directory.")
             "--disable-music-midi-fluidsynth-shared"
             ,flags))))
     (inputs
-     `(("opusfile" ,opusfile)
-       ;; The default MOD library changed in SDL2 mixer.
-       ("libmodplug" ,libmodplug)
-       ,@(alist-delete "libmikmod" (package-inputs sdl-mixer))))
+     (modify-inputs (package-inputs sdl-mixer)
+       (delete "libmikmod")
+       (prepend opusfile
+                ;; The default MOD library changed in SDL2 mixer.
+                libmodplug)))
     (native-inputs
      `(("pkgconfig" ,pkg-config))) ; Needed to find the opus library.
     (propagated-inputs
@@ -540,24 +541,25 @@ directory.")
 (define-public guile-sdl
   (package
     (name "guile-sdl")
-    (version "0.5.2")
+    (version "0.5.3")
     (source (origin
               (method url-fetch)
               (uri
                (string-append "mirror://gnu/guile-sdl/guile-sdl-"
-                              version ".tar.xz"))
+                              version ".tar.lz"))
               (sha256
                (base32
-                "0cjgs012a9922hn6xqwj66w6qmfs3nycnm56hyykx5n3g5p7ag01"))))
+                "040gyk3n3yp8i30ngdg97n3083g8b6laky2nlh10jqcyjdd550d6"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("lzip" ,lzip)
+       ("pkg-config" ,pkg-config)
        ;; Required by test suite.
-       ("xorg-server" ,xorg-server)
-       ("libjpeg" ,libjpeg-turbo)))
+       ("libjpeg" ,libjpeg-turbo)
+       ("xorg-server" ,xorg-server)))
     (inputs
-     `(("guile" ,guile-2.2)
-       ("sdl-union" ,(sdl-union))))
+     (list guile-2.2
+           (sdl-union)))
     (arguments
      '(#:configure-flags
        (list (string-append "--with-sdl-prefix="
@@ -615,45 +617,44 @@ directory.")
 Layer (SDL).  With them, Guile programmers can have easy access to graphics,
 sound and device input (keyboards, joysticks, mice, etc.).")
     (home-page "https://www.gnu.org/software/guile-sdl/")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define-public guile-sdl2
   (package
     (name "guile-sdl2")
-    (version "0.6.0")
+    (version "0.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://files.dthompson.us/guile-sdl2/"
                                   "guile-sdl2-" version ".tar.gz"))
               (sha256
                (base32
-                "06vrknn4iz0ag932rb4almyhi9cvdkn081shvsi0h4skd6ry8bdl"))))
+                "197dzkxw8nv92da56iv2r8ih5r3pr4pd5c5j2q83aqb78h4jqjl7"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags '("GUILE_AUTO_COMPILE=0")))
     (native-inputs
-     `(("guile" ,guile-2.2)
-       ("pkg-config" ,pkg-config)))
+     (list guile-3.0 pkg-config))
     (inputs
-     `(("sdl2" ,sdl2)
-       ("sdl2-image" ,sdl2-image)
-       ("sdl2-mixer" ,sdl2-mixer)
-       ("sdl2-ttf" ,sdl2-ttf)))
+     (list sdl2 sdl2-image sdl2-mixer sdl2-ttf))
     (synopsis "Guile bindings for SDL2")
     (home-page "https://dthompson.us/projects/guile-sdl2.html")
     (description
      "Guile-SDL2 provides Guile Scheme bindings for the SDL2 C shared library.
 The bindings are written in pure Scheme using Guile's foreign function
 interface.")
-    (license lgpl3+)))
+    (license license:lgpl3+)))
 
-(define-public guile3.0-sdl2
+(define-public guile2.2-sdl2
   (package/inherit guile-sdl2
-    (name "guile3.0-sdl2")
+    (name "guile2.2-sdl2")
     (native-inputs
-     `(("guile" ,guile-3.0)
+     `(("guile" ,guile-2.2)
        ("pkg-config" ,pkg-config)))))
 
+(define-public guile3.0-sdl2
+  (deprecated-package "guile3.0-sdl2" guile-sdl2))
+
 (define-public sdl2-cs
   (let ((commit "1a3556441e1394eb0b5d46aeb514b8d1090b93f8"))
     (package
@@ -683,16 +684,13 @@ interface.")
                  (install-file "bin/Release/SDL2-CS.dll" (string-append out "/lib"))
                  #t))))))
       (native-inputs
-       `(("mono" ,mono)))
+       (list mono))
       (inputs
-       `(("sdl2" ,sdl2)
-         ("sdl2-image" ,sdl2-image)
-         ("sdl2-mixer" ,sdl2-mixer)
-         ("sdl2-ttf" ,sdl2-ttf)))
+       (list sdl2 sdl2-image sdl2-mixer sdl2-ttf))
       (home-page "https://dthompson.us/projects/guile-sdl2.html")
       (synopsis "C# wrapper for SDL2")
       (description
        "SDL2-CS provides C# bindings for the SDL2 C shared library.
 The C# wrapper was written to be used for FNA's platform support.  However, this
 is written in a way that can be used for any general C# application.")
-      (license zlib))))
+      (license license:zlib))))
diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index 44d5b631ca..5d860fb756 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -2,11 +2,12 @@
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
-;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
 ;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2021 Alexandr Vityazev <avityazev@posteo.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,25 +34,34 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system meson)
   #:use-module (gnu packages)
+  #:use-module (gnu packages aspell)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages check)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages ebook)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gawk)
+  #:use-module (gnu packages groff)
   #:use-module (gnu packages less)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pdf)
+  #:use-module (gnu packages photo)
   #: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 qt)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages time)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
-  #:use-module (gnu packages xml))
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages pkg-config))
 
 (define-public xapian
   (package
@@ -65,8 +75,8 @@
               (sha256
                (base32 "0xsb4ihf3p767f0zx9p4janwni6r9sg5j6lry0002i8hmnsdnv8r"))))
     (build-system gnu-build-system)
-    (inputs `(("zlib" ,zlib)
-              ("util-linux" ,util-linux "lib")))
+    (inputs (list zlib
+                  `(,util-linux "lib")))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -112,11 +122,9 @@ rich set of boolean query operators.")
                                             (package-version python))
                             "/site-packages/xapian"))))
     (native-inputs
-     `(("python-sphinx" ,python-sphinx))) ;for documentation
+     (list python-sphinx)) ;for documentation
     (inputs
-     `(("python" ,python)
-       ("xapian" ,xapian)
-       ("zlib" ,zlib)))
+     (list python xapian zlib))
     (synopsis "Python bindings for the Xapian search engine library")
     (license gpl2+)))
 
@@ -133,9 +141,9 @@ rich set of boolean query operators.")
         (base32 "1pbl8pbgmbs3i8yik4p63g4pd9bhn0dp3d7l667dkvw0kccl66c7"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-devel-leak" ,perl-devel-leak)))
+     (list perl-devel-leak))
     (inputs
-     `(("xapian" ,xapian)))
+     (list xapian))
     (home-page "https://metacpan.org/release/Search-Xapian")
     (synopsis "Perl XS frontend to the Xapian C++ search library")
     (description
@@ -157,8 +165,8 @@ simplified, more 'perlish' interface to some common operations.")
         (base32
          "1kd2jd74m8ksc8s7hh0haz0q0c3n0mr39bbky262kk4l58f1g068"))))
     (build-system gnu-build-system)
-    (native-inputs `(("catch" ,catch-framework)))
-    (inputs `(("unqlite" ,unqlite)))
+    (native-inputs (list catch-framework))
+    (inputs (list unqlite))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-before 'configure 'chdir-source
@@ -195,8 +203,7 @@ files and directories.")
     (source (package-source libtocc))
     (build-system gnu-build-system)
     (inputs
-     `(("libtocc" ,libtocc)
-       ("unqlite" ,unqlite)))
+     (list libtocc unqlite))
     (arguments
      `(#:tests? #f                      ;No tests
        #:phases (modify-phases %standard-phases
@@ -241,18 +248,18 @@ command line tool for interacting with libtocc.")
                (("requests\\[socks\\]==2.25.1") "requests>=2.25")
                (("==") ">=")))))))
     (propagated-inputs
-     `(("python-babel" ,python-babel)
-       ("python-certifi" ,python-certifi)
-       ("python-dateutil" ,python-dateutil)
-       ("python-flask" ,python-flask)
-       ("python-flask-babel" ,python-flask-babel)
-       ("python-idna" ,python-idna)
-       ("python-jinja2" ,python-jinja2)
-       ("python-langdetect" ,python-langdetect)
-       ("python-lxml" ,python-lxml)
-       ("python-pygments" ,python-pygments)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-requests" ,python-requests)))
+     (list python-babel
+           python-certifi
+           python-dateutil
+           python-flask
+           python-flask-babel
+           python-idna
+           python-jinja2
+           python-langdetect
+           python-lxml
+           python-pygments
+           python-pyyaml
+           python-requests))
     (home-page "https://searx.github.io/searx/")
     (synopsis "Privacy-respecting metasearch engine")
     (description "Searx is a privacy-respecting, hackable metasearch engine.")
@@ -283,6 +290,102 @@ accounting for new lines and paragraph changes.  It also has robust support
 for parsing HTML files.")
     (license gpl3+)))
 
+(define-public recoll
+  (package
+    (name "recoll")
+    (version "1.31.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.lesbonscomptes.com/recoll/"
+                           "recoll-" version ".tar.gz"))
+       (sha256
+        (base32 "0m1w5hf2n09lbzmzvlrm2lks4lci9vvjxy2mcmgb2avgly7v5vfk"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "--disable-webkit"
+             "--disable-python-module"
+             "--without-systemd"
+             (string-append "QMAKEPATH=" (assoc-ref %build-inputs "qtbase")
+                            "/bin/qmake"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-default-data-dir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "python/recoll/recoll/rclconfig.py"
+               (("/opt/local")
+                (assoc-ref outputs "out")))))
+         (add-after 'install 'wrap-filters
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (mapping
+                     '(("rclps"
+                        "poppler")
+                       ("rclpdf.py"
+                        "poppler")
+                       ("rclpurple"
+                        "gawk")
+                       ("rcllyx"
+                        "libiconv")
+                       ("rcltex"
+                        "libiconv")
+                       ("rclkwd"
+                        "unzip" "gzip" "tar" "libxslt")
+                       ("rclman"
+                        "groff")
+                       ("rclgaim"
+                        "gawk" "libiconv")
+                       ("rclaptosidman"
+                        "sed")
+                       ("rclscribus"
+                        "grep" "gawk" "sed"))))
+               (for-each
+                (lambda (program packages)
+                  (wrap-program (string-append out "/share/recoll/filters/" program)
+                    `("PATH" ":" prefix
+                      ,(map (lambda (i)
+                              (string-append (assoc-ref inputs i) "/bin"))
+                            packages))))
+                (map car mapping)
+                (map cdr mapping))
+
+               (wrap-program (string-append out "/share/recoll/filters/rclimg")
+                 `("PERL5LIB" ":" prefix
+                   (,(getenv "PERL5LIB"))))))))))
+    (inputs
+     (list aspell
+           chmlib
+           inotify-tools
+           libxslt
+           libxml2
+           python
+           qtbase-5
+           unzip
+           xapian
+           zlib
+           ;; For filters
+           gawk
+           grep
+           groff
+           gzip
+           libiconv
+           perl
+           perl-image-exiftool
+           poppler
+           sed
+           tar))
+    (native-inputs
+     (list pkg-config which))
+    (home-page "https://www.lesbonscomptes.com/recoll/")
+    (synopsis "Find documents based on their contents or file names")
+    (description "Recoll finds documents based on their contents as well as
+their file names.  It can search most document formats, but you may need
+external applications for text extraction.  It can reach any storage place:
+files, archive members, email attachments, transparently handling
+decompression.")
+    (license gpl2+)))
+
 (define-public hyperestraier
   (package
     (name "hyperestraier")
@@ -296,8 +399,7 @@ for parsing HTML files.")
          (base32
           "1qk3pxgzyrpcz5qfyd5xs2hw9q1cbb7j5zd4kp1diq501wcj2vs9"))))
     (inputs
-     `(("qdbm" ,qdbm)
-       ("zlib" ,zlib)))
+     (list qdbm zlib))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath="
@@ -333,6 +435,35 @@ with slocate, and attempts to be compatible to GNU locate when it does not
 conflict with slocate compatibility.")
     (license gpl2)))
 
+(define-public plocate
+  (package
+    (name "plocate")
+    (version "1.1.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://plocate.sesse.net/download/"
+                           "plocate-" version ".tar.gz"))
+       (sha256
+        (base32 "16lpiirjmj4mrdj5kkjv7rikkgjx3i64ac0sl3lz1rshflhxgqww"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        (string-append
+         "--sharedstatedir=" (assoc-ref %outputs "out") "/var"))))
+    (inputs
+     (list liburing
+           `(,zstd "lib")))
+    (native-inputs
+     (list pkg-config))
+    (home-page "https://plocate.sesse.net/")
+    (synopsis "Faster locate")
+    (description "Plocate is a @code{locate} based on posting lists,
+completely replacing @command{mlocate} with a faster and smaller index.  It is
+suitable as a default locate on your system.")
+    (license gpl2)))
+
 (define-public swish-e
   (package
     (name "swish-e")
@@ -358,11 +489,8 @@ conflict with slocate compatibility.")
     ;; building: xpdf, catdoc, MP3::Tag, Spreadsheet::ParseExcel,
     ;; HTML::Entities.
     (inputs
-     `(("perl" ,perl)
-       ("perl-uri" ,perl-uri)
-       ("perl-html-parser" ,perl-html-parser)
-       ("perl-html-tagset" ,perl-html-tagset)
-       ("perl-mime-types" ,perl-mime-types)))
+     (list perl perl-uri perl-html-parser perl-html-tagset
+           perl-mime-types))
     (arguments
      `(;; XXX: This fails to build with zlib (API mismatch) and tests fail
        ;; with libxml2, so disable both.
@@ -412,17 +540,14 @@ search the generated indexes.")
          "0ykz6hn3qj46w3c99d6q0pi5ncq2894simcl7vapv047zm3cylmd"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("poppler" ,poppler)
-       ("python-urwid" ,python-urwid)
-       ("xclip" ,xclip)
-       ("xdg-utils" ,xdg-utils)))
+     (list poppler python-urwid xclip xdg-utils))
     (inputs
-     `(("python-latexcodec" ,python-latexcodec)
-       ("python-pybtex" ,python-pybtex)
-       ("python-pycurl" ,python-pycurl)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-six" ,python-six)
-       ("python-xapian-bindings" ,python-xapian-bindings)))
+     (list python-latexcodec
+           python-pybtex
+           python-pycurl
+           python-pyyaml
+           python-six
+           python-xapian-bindings))
     (arguments
      `(#:modules ((ice-9 rdelim)
                   (guix build python-build-system)
@@ -490,12 +615,12 @@ bibliographic data and simple document and bibtex retrieval.")
                   #t))))
     (build-system gnu-build-system)
     (inputs
-     `(("bzip2" ,bzip2)
-       ("less" ,less)
-       ("lz4" ,lz4)
-       ("lzip" ,lzip)  ;; lzma
-       ("pcre2" ,pcre2)
-       ("zlib" ,zlib)))
+     (list bzip2
+           less
+           lz4
+           lzip ;; lzma
+           pcre2
+           zlib))
     (arguments
      `(#:tests? #f                  ; no way to rebuild the binary input files
        #:test-target "test"
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index 5304f90649..6a3e2d9179 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2021 Sergey Trofimov <sarg@sarg.org.ru>
 ;;; Copyright © 2021 Dhruvin Gandhi <contact@dhruvin.dev>
+;;; Copyright © 2021 Ahmad Jarara <git@ajarara.io>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,6 +46,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages crates-io)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
@@ -53,6 +55,7 @@
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages libbsd)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages man)
@@ -75,14 +78,14 @@
 (define-public ccid
   (package
     (name "ccid")
-    (version "1.4.34")
+    (version "1.4.36")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://ccid.apdu.fr/files/ccid-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "02mlbpnsvy6jgwpz0jk5lh27y3cn2bsyz9xini7898m9b5dn9xz6"))))
+                "1ha9cwxkadx4rs4jj114qzh42qj02x6r8y1mvhcvijhvby4aqwrb"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list (string-append "--enable-usbdropdir=" %output
@@ -95,11 +98,9 @@
                (("/bin/echo") (which "echo")))
              #t)))))
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list perl pkg-config))
     (inputs
-     `(("libusb" ,libusb)
-       ("pcsc-lite" ,pcsc-lite)))
+     (list libusb pcsc-lite))
     (home-page "https://ccid.apdu.fr/")
     (synopsis "PC/SC driver for USB smart card devices")
     (description
@@ -112,7 +113,8 @@ readers and is needed to communicate with such devices through the
 (define-public eid-mw
   (package
     (name "eid-mw")
-    (version "5.0.14")
+    ;; When updating, remove the short-lived libbsd input and module import!
+    (version "5.0.28")
     (source
      (origin
        (method git-fetch)
@@ -121,7 +123,7 @@ readers and is needed to communicate with such devices through the
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1hyxsbxjjn9hh5p7jlcfb5yplf3n8dg49dfgi8fjp95phis3gbd4"))))
+        (base32 "0fmpdx09a60ndbsvy3m6w77naqy3j6k2ydq6jdcmdvxnr31z7fmf"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -133,17 +135,23 @@ readers and is needed to communicate with such devices through the
        ("pkg-config" ,pkg-config)
        ("perl" ,perl)))
     (inputs
-     `(("curl" ,curl)
-       ("openssl" ,openssl)
-       ("gtk+" ,gtk+)
-       ("pcsc-lite" ,pcsc-lite)
-       ("p11-kit" ,p11-kit)
-       ("libproxy" ,libproxy)
-       ("libxml2" ,libxml2)
-       ("cyrus-sasl" ,cyrus-sasl)))
+     (list curl
+           libbsd
+           openssl
+           gtk+
+           pcsc-lite
+           p11-kit
+           libproxy
+           libxml2
+           cyrus-sasl))
     (arguments
      `(#:configure-flags
-       (list "--disable-static")
+       (list "--disable-static"
+
+             ;; With the (prettier) pinentry enabled, eid-viewer will skip
+             ;; crucial dialogue when used with card readers with built-in
+             ;; keypads such as the Digipass 870, and possibly others too.
+             "--disable-pinentry")
        #:phases
        (modify-phases %standard-phases
          (replace 'bootstrap
@@ -153,25 +161,12 @@ readers and is needed to communicate with such devices through the
              (substitute* "scripts/build-aux/genver.sh"
                (("/bin/sh") (which "sh"))
                (("^(GITDESC=).*" _ match) (string-append match ,version "\n")))
-             (invoke "sh" "./bootstrap.sh")))
-         (add-after 'unpack 'make-reproducible
-           (lambda _
-             (substitute* "scripts/mac/create-vers.sh"
-               (("NOW=.*")
-                "NOW=1970-01-01\n"))
-             #t))
-         ;; Remove failing test that was removed upstream after version 5.0.8.
-         ;; See: https://github.com/Fedict/eid-mw/commit/3d1187b1b61118b9ae97607903d3d2fc0bad7518
-         (add-before 'check 'remove-failing-test
-           (lambda _
-             (substitute* "tests/unit/Makefile.am"
-               (("sign_state ordering cardcom_common")
-                "sign_state ordering #cardcom_common"))
-             #t))
-         )))
-    (synopsis "Belgian eID Middleware")
-    (description "The Belgian eID Middleware is required to authenticate with
-online services using the Belgian electronic identity card.")
+             (invoke "sh" "./bootstrap.sh"))))))
+    (synopsis "Belgian electronic identity card (eID) middleware")
+    (description "The Belgian eID middleware is required to authenticate with
+online services and sign digital documents with Belgian identity cards.
+
+It requires a running pcscd service and a compatible card reader.")
     (home-page "https://github.com/Fedict/eid-mw")
     (license license:lgpl3)))
 
@@ -212,10 +207,9 @@ the low-level development kit for the Yubico YubiKey authentication device.")
      '(#:configure-flags '("--disable-gost"))) ; TODO Missing the OpenSSL
                                                ; engine for GOST
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("cppunit" ,cppunit)))
+     (list pkg-config cppunit))
     (synopsis "Software implementation of a generic cryptographic device")
     (description
      "SoftHSM 2 is a software implementation of a generic cryptographic device
@@ -239,8 +233,8 @@ with a PKCS #11 Cryptographic Token Interface.")
      `(#:configure-flags '("--enable-usbdropdir=/var/lib/pcsc/drivers"
                            "--disable-libsystemd")))
     (native-inputs
-     `(("perl" ,perl)                   ; for pod2man
-       ("pkg-config" ,pkg-config)))
+     (list perl ; for pod2man
+           pkg-config))
     (inputs
      `(("libudev" ,eudev)))
     (home-page "https://pcsclite.apdu.fr/")
@@ -271,9 +265,8 @@ from a client application and provide access to the desired reader.")
     ;; yubico.com, so skip it.
     (arguments '(#:tests? #f))
 
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("help2man" ,help2man)))
-    (inputs `(("curl" ,curl)))
+    (native-inputs (list pkg-config help2man))
+    (inputs (list curl))
     (synopsis "C library to validate one-time-password YubiKeys")
     (description
      "YubiKey C Client Library (libykclient) is a C library used to validate a
@@ -285,7 +278,7 @@ website for more information about Yubico and the YubiKey.")
 (define-public opensc
   (package
     (name "opensc")
-    (version "0.21.0")
+    (version "0.22.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -293,7 +286,7 @@ website for more information about Yubico and the YubiKey.")
                     version "/opensc-" version ".tar.gz"))
               (sha256
                (base32
-                "0pijycjwpll9zn83dazgsh8n9ywq0z1ragjsd1sqv3abrcfvpyrb"))))
+                "11ki9j2b07w5gi2b1r39d71320s7rhfzcpaqpqra7gjy353m6kld"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -309,17 +302,11 @@ website for more information about Yubico and the YubiKey.")
                (substitute* "configure"
                  (("DEFAULT_PCSC_PROVIDER=\"libpcsclite\\.so\\.1\"")
                   (string-append
-                   "DEFAULT_PCSC_PROVIDER=\"" libpcsclite "\"")))
-               #t))))))
+                   "DEFAULT_PCSC_PROVIDER=\"" libpcsclite "\"")))))))))
     (inputs
-     `(("readline" ,readline)
-       ("openssl" ,openssl)
-       ("pcsc-lite" ,pcsc-lite)
-       ("ccid" ,ccid)))
+     (list readline openssl pcsc-lite ccid))
     (native-inputs
-     `(("libxslt" ,libxslt)
-       ("docbook-xsl" ,docbook-xsl)
-       ("pkg-config" ,pkg-config)))
+     (list libxslt docbook-xsl pkg-config))
     (home-page "https://github.com/OpenSC/OpenSC/wiki")
     (synopsis "Tools and libraries related to smart cards")
     (description
@@ -344,17 +331,14 @@ authentication, encryption and digital signatures.  OpenSC implements the PKCS
                 "10xgdc51xvszkxmsvqnbjs8ixxz7rfnfahh3wn8glllynmszbhwi"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gengetopt" ,gengetopt)
-       ("perl" ,perl)
-       ("pcsc-lite" ,pcsc-lite)
-       ("openssl" ,openssl)))
+     (list gengetopt perl pcsc-lite openssl))
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("graphviz" ,graphviz)
-       ("help2man" ,help2man)
-       ("check" ,check)
-       ("texlive-bin" ,texlive-bin)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen
+           graphviz
+           help2man
+           check
+           texlive-bin
+           pkg-config))
     (home-page "https://developers.yubico.com/yubico-piv-tool/")
     (synopsis "Interact with the PIV application on a YubiKey")
     (description
@@ -392,13 +376,11 @@ and other operations.  It includes a library and a command-line tool.")
                                               (assoc-ref %outputs "out")
                                               "/lib/udev/rules.d"))))
     (inputs
-     `(("json-c" ,json-c-0.13)
-       ("libusb" ,libusb)
-       ;; The library "libyubikey" is also known as "yubico-c".
-       ("libyubikey" ,libyubikey)))
+     (list json-c-0.13 libusb
+           ;; The library "libyubikey" is also known as "yubico-c".
+           libyubikey))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("eudev" ,eudev)))
+     (list pkg-config eudev))
     (home-page "https://developers.yubico.com/yubikey-personalization/")
     (synopsis "Library and tools to personalize YubiKeys")
     (description
@@ -447,9 +429,9 @@ retrieve a YubiKey's serial number, and so forth.")
                                                   "/lib/libpcsclite.so.1"))))
              #t)))))
     (inputs
-     `(("pcsc-lite" ,pcsc-lite)))
+     (list pcsc-lite))
     (native-inputs
-     `(("swig" ,swig)))
+     (list swig))
     (home-page "https://github.com/LudovicRousseau/pyscard")
     (synopsis "Smart card library for Python")
     (description
@@ -492,15 +474,14 @@ PCSC API Python wrapper module.")
                                "/xml/dtd/docbook/docbookx.dtd")))
              #t)))))
     (inputs
-     `(("json-c" ,json-c-0.13)
-       ("hidapi" ,hidapi)))
+     (list json-c-0.13 hidapi))
     (native-inputs
-     `(("help2man" ,help2man)
-       ("gengetopt" ,gengetopt)
-       ("pkg-config" ,pkg-config)
-       ("gtk-doc" ,gtk-doc)
-       ("docbook-xml" ,docbook-xml-4.3)
-       ("eudev" ,eudev)))
+     (list help2man
+           gengetopt
+           pkg-config
+           gtk-doc
+           docbook-xml-4.3
+           eudev))
     (home-page "https://developers.yubico.com/libu2f-host/")
     ;; TRANSLATORS: The U2F protocol has a "server side" and a "host side".
     (synopsis "U2F host-side C library and tool")
@@ -532,18 +513,17 @@ operations.")
        (list "--enable-gtk-doc"
              "--enable-tests")))
     (inputs
-     `(("json-c" ,json-c-0.13)
-       ("libressl" ,libressl)))
+     (list json-c-0.13 libressl))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("check" ,check)
-       ("gengetopt" ,gengetopt)
-       ("help2man" ,help2man)
-       ("pkg-config" ,pkg-config)
-       ("gtk-doc" ,gtk-doc)
-       ("which" ,which)))
+     (list autoconf
+           automake
+           libtool
+           check
+           gengetopt
+           help2man
+           pkg-config
+           gtk-doc
+           which))
     (home-page "https://developers.yubico.com/libu2f-server/")
     ;; TRANSLATORS: The U2F protocol has a "server side" and a "host side".
     (synopsis "U2F server-side C library")
@@ -575,15 +555,9 @@ verifying the cryptographic operations.")
        (list (string-append "--with-pam-dir="
                             (assoc-ref %outputs "out") "/lib/security"))))
     (inputs
-     `(("libu2f-host" ,libu2f-host)
-       ("libu2f-server" ,libu2f-server)
-       ("linux-pam" ,linux-pam)))
+     (list libu2f-host libu2f-server linux-pam))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("asciidoc" ,asciidoc)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool asciidoc pkg-config))
     (home-page "https://developers.yubico.com/pam-u2f/")
     (synopsis "PAM module for U2F authentication")
     (description
@@ -623,12 +597,9 @@ your existing infrastructure.")
               "fido2/public_suffix_list.dat")
              #t)))))
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-six" ,python-six)))
+     (list python-cryptography python-six))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pyfakefs" ,python-pyfakefs)
-       ("public-suffix-list" ,public-suffix-list)))
+     (list python-mock python-pyfakefs public-suffix-list))
     (home-page "https://github.com/Yubico/python-fido2")
     (synopsis "Python library for communicating with FIDO devices over USB")
     (description
@@ -678,20 +649,17 @@ implementing a Relying Party.")
                  "')")))
              #t)))))
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-pyscard" ,python-pyscard)
-       ("python-pyusb" ,python-pyusb)
-       ("python-click" ,python-click)
-       ("python-cryptography" ,python-cryptography)
-       ("python-pyopenssl" ,python-pyopenssl)
-       ("python-fido2" ,python-fido2)))
+     (list python-six
+           python-pyscard
+           python-pyusb
+           python-click
+           python-cryptography
+           python-pyopenssl
+           python-fido2))
     (inputs
-     `(("yubikey-personalization" ,yubikey-personalization)
-       ("pcsc-lite" ,pcsc-lite)
-       ("libusb" ,libusb)))
+     (list yubikey-personalization pcsc-lite libusb))
     (native-inputs
-     `(("swig" ,swig)
-       ("python-mock" ,python-mock)))
+     (list swig python-mock))
     (home-page "https://developers.yubico.com/yubikey-manager/")
     (synopsis "Command line tool and library for configuring a YubiKey")
     (description
@@ -734,8 +702,7 @@ an unprivileged user.")
         ("rust-regex" ,rust-regex-1)
         ("rust-tempfile" ,rust-tempfile-3))))
     (inputs
-     `(("hidapi" ,hidapi)
-       ("gnupg" ,gnupg)))
+     (list hidapi gnupg))
     (home-page "https://github.com/d-e-s-o/nitrocli")
     (synopsis "Command line tool for Nitrokey devices")
     (description
@@ -758,17 +725,16 @@ devices.")
 
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtwebsockets" ,qtwebsockets)
-       ("qtgraphicaleffects" ,qtgraphicaleffects)
-       ("qtquickcontrols2" ,qtquickcontrols2)
-       ("pcsc-lite" ,pcsc-lite)
-       ("openssl" ,openssl)))
+     (list qtbase-5
+           qtsvg
+           qtdeclarative
+           qtwebsockets
+           qtgraphicaleffects
+           qtquickcontrols2
+           pcsc-lite
+           openssl))
     (arguments
      `(#:modules ((guix build cmake-build-system)
                   (guix build qt-utils)
@@ -790,3 +756,36 @@ used for online authentication with electronic German ID cards and residence
 titles.  To use this app, a supported RFID card reader or NFC-enabled smart
 phone is required.")
     (license license:eupl1.2)))
+
+(define-public libfido2
+  (package
+    (name "libfido2")
+    (version "1.9.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "git://github.com/Yubico/libfido2")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256 (base32 "12zy4cnlcffcb64lsx8198y09j1dwi0bcn9rr82q6i1k950yzd3p"))))
+    (native-inputs (list pkg-config))
+    (inputs
+     `(("zlib" ,zlib)
+       ("udev" ,eudev)
+       ("libcbor" ,libcbor)
+       ("openssl" ,openssl)))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         ;; regress tests enabled only for debug builds
+         (delete 'check))))
+    (synopsis "Library functionality and command-line tools for FIDO devices")
+    (description "libfido2 provides library functionality and command-line
+tools to communicate with a FIDO device over USB, and to verify attestation
+and assertion signatures.
+
+libfido2 supports the FIDO U2F (CTAP 1) and FIDO 2.0 (CTAP 2) protocols.")
+    (license license:bsd-2)
+    (home-page "https://github.com/Yubico/libfido2")))
diff --git a/gnu/packages/selinux.scm b/gnu/packages/selinux.scm
index ecc18865cb..0000bc7bc9 100644
--- a/gnu/packages/selinux.scm
+++ b/gnu/packages/selinux.scm
@@ -85,7 +85,7 @@
                 (string-append line "\n#include <inttypes.h>\n"))
                (("%#lx") "%#\" PRIx64 \"")))))))
     (native-inputs
-     `(("flex" ,flex)))
+     (list flex))
     (home-page "https://selinuxproject.org/")
     (synopsis "Library for manipulating SELinux policies")
     (description
@@ -344,14 +344,11 @@ based on required access.")
                 (string-append "join(\"" (assoc-ref outputs "out") "/\"")))
              #t)))))
     (propagated-inputs
-     `(("python-networkx" ,python-networkx)))
+     (list python-networkx))
     (inputs
-     `(("libsepol" ,libsepol)
-       ("libselinux" ,libselinux)))
+     (list libsepol libselinux))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("swig" ,swig)))
+     (list bison flex swig))
     (home-page "https://github.com/TresysTechnology/setools")
     (synopsis "Tools for SELinux policy analysis")
     (description "SETools is a collection of graphical tools, command-line
diff --git a/gnu/packages/sequoia.scm b/gnu/packages/sequoia.scm
index 719a9d2ef4..3757fdd971 100644
--- a/gnu/packages/sequoia.scm
+++ b/gnu/packages/sequoia.scm
@@ -55,19 +55,16 @@
     (build-system cargo-build-system)
     (outputs '("out" "python"))
     (native-inputs
-     `(("clang" ,clang)
-       ("pkg-config" ,pkg-config)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-wrapper" ,python-wrapper)))
+     (list clang pkg-config python-pytest python-pytest-runner
+           python-wrapper))
     (inputs
-     `(("capnproto" ,capnproto)
-       ("gmp" ,gmp)
-       ("nettle" ,nettle)
-       ("openssl" ,openssl)
-       ("python" ,python)
-       ("python-cffi" ,python-cffi)
-       ("sqlite" ,sqlite)))
+     (list capnproto
+           gmp
+           nettle
+           openssl
+           python
+           python-cffi
+           sqlite))
     (arguments
      `(#:tests? #f ;; building the tests requires 9.7GB total
        #:rust ,rust
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index c8dcf65905..5cf39ac7f4 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -36,10 +36,13 @@
   #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -74,8 +77,7 @@
          (add-after 'unpack 'chdir
            (lambda _ (chdir "lang/c++"))))))
     (inputs
-     `(("boost" ,boost)
-       ("snappy" ,snappy)))
+     (list boost snappy))
     (home-page "https://avro.apache.org/")
     (synopsis "Data serialization system")
     (description "Apache Avro is a data serialization system.  Avro provides:
@@ -143,34 +145,21 @@ implement RPC protocols.")
          "0hc8wh9dwpc1w1zf5lfss4vg5hmgpblqxbrpp1rggicpx9ar831p"))))
     (build-system cmake-build-system)
     (arguments
-     `(;; The only included tests are portability tests requiring
-       ;; cross-compilation and boost.  Since we are building cereal on more
-       ;; platforms anyway, there is no compelling reason to build the tests.
-       #:tests? #f
-       #:out-of-source? #f
+     `(#:configure-flags '("-DSKIP_PORTABILITY_TEST=ON")
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
-         (replace 'build
-          (lambda _
-            (substitute* "doc/doxygen.in"
-              (("@CMAKE_CURRENT_BINARY_DIR@") ".")
-              (("@CMAKE_CURRENT_SOURCE_DIR@") "."))
-            (with-directory-excursion "doc"
-              (invoke "doxygen" "doxygen.in"))))
-         ;; There is no "install" target, so we have to provide our own
-         ;; "install" phase.
-         (replace 'install
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let* ((out     (assoc-ref outputs "out"))
-                   (doc     (string-append out "/share/cereal/docs"))
-                   (include (string-append out "/include/cereal")))
-              (mkdir-p doc)
-              (mkdir-p include)
-              (copy-recursively "include/cereal" include)
-              (copy-recursively "doc/html" doc)))))))
+         (add-before 'configure 'skip-sandbox
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("add_subdirectory\\(sandbox\\)") ""))))
+         (add-after 'install 'install-doc
+           (lambda _
+             (let ((doc (string-append %output "/share/doc/html")))
+               (invoke "make" "doc")
+               (mkdir-p doc)
+               (copy-recursively "doc/html" doc)))))))
     (native-inputs
-     `(("doxygen" ,doxygen)))
+     (list doxygen))
     (home-page "https://uscilab.github.io/cereal/")
     (synopsis "C++11 library for serialization")
     (description
@@ -200,10 +189,9 @@ such as compact binary encodings, XML, or JSON.")
         (base32 "0yzhq50ijvwrfkr97knhvn54lj3f4hr3zy39yq8wpf6xll94s4bf"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("googletest" ,googletest-1.8)
-       ("pkg-config" ,pkg-config)))
+     (list googletest-1.8 pkg-config))
     (propagated-inputs
-     `(("zlib" ,zlib))) ;; Msgpack installs two headers (zbuffer.h,
+     (list zlib)) ;; Msgpack installs two headers (zbuffer.h,
     ;; zbuffer.hpp) which #include <zlib.h>.  However, 'guix gc --references'
     ;; does not detect a store reference to zlib since these headers are not
     ;; compiled.
@@ -236,7 +224,7 @@ serialization.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("libtool" ,libtool)))
+     (list libtool))
     (home-page "https://github.com/tarruda/libmpack")
     (synopsis "Small binary serialization library")
     (description "Libmpack is a small binary serialization and RPC library
@@ -288,7 +276,7 @@ that implements both the msgpack and msgpack-rpc specifications.")
                                "mpack-src")
              #t)))))
     (inputs
-     `(("lua" ,lua)))
+     (list lua))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("libmpack" ,(package-source libmpack))))
@@ -390,9 +378,9 @@ that implements both the msgpack and msgpack-rpc specifications.")
              (setenv "CC" "gcc")
              (invoke "make" "test"))))))
     (inputs
-     `(("libyaml" ,libyaml)))
+     (list libyaml))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "C library for reading and writing YAML")
     (description
      "LibCYAML is a C library written in ISO C11 for reading and writing
@@ -420,7 +408,7 @@ in which the loaded data is arranged in memory.")
     (arguments
      '(#:configure-flags '("-DYAML_BUILD_SHARED_LIBS=ON")))
     (native-inputs
-     `(("python" ,python)))
+     (list python))
     (home-page "https://github.com/jbeder/yaml-cpp")
     (synopsis "YAML parser and emitter in C++")
     (description "YAML parser and emitter in C++ matching the YAML 1.2 spec.")
@@ -435,6 +423,8 @@ in which the loaded data is arranged in memory.")
               (method git-fetch)
               (uri (git-reference (url home-page) (commit version)))
               (file-name (git-file-name name version))
+              (patches
+               (search-patches "jsoncpp-pkg-config-version.patch"))
               (sha256
                (base32
                 "0qnx5y6c90fphl9mj9d20j2dfgy6s5yr5l0xnzid0vh71zrp6jwv"))))
@@ -471,6 +461,51 @@ it a convenient format to store user input files.")
                (base32
                 "1180ln8blrb0mwzpcf78k49hlki6di65q77rsvglf83kfcyh4d7z"))))))
 
+(define-public json.sh
+  (let ((commit "0d5e5c77365f63809bf6e77ef44a1f34b0e05840") ;no releases
+        (revision "1"))
+    (package
+      (name "json.sh")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/dominictarr/JSON.sh")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "14lxvp5xbdk0dcwkjbdp098z1108j8z48zaibndh4i731kkcz43i"))))
+      (build-system copy-build-system)
+      (arguments
+       `(#:install-plan '(("JSON.sh" "bin/"))
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'install 'check
+             (lambda* (#:key tests? #:allow-other-keys)
+               (when tests? (invoke "./all-tests.sh"))
+               #t))
+           (add-after 'install 'wrap-program
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (wrap-program (string-append (assoc-ref outputs "out") "/bin/JSON.sh")
+                 `("PATH" ":" prefix
+                   (,(string-join
+                     (map (lambda (in) (string-append (assoc-ref inputs in) "/bin"))
+                          '("grep" "sed"))
+                      ":"))))
+                #t)))))
+      (inputs
+       (list bash-minimal grep sed))
+      (synopsis "Pipeable JSON parser written in shell")
+      (description
+        "This package provides a JSON parser written in shell, compatible with
+ash, Bash, Dash and Zsh.  Pipe JSON to it, and it traverses the JSON objects
+and prints out the path to the current object (as a JSON array) and then the
+object, without whitespace.")
+      (home-page "https://github.com/dominictarr/JSON.sh")
+      (license (list license:expat license:asl2.0))))) ;dual-licensed
+
 (define-public capnproto
   (package
     (name "capnproto")
@@ -521,7 +556,7 @@ RPC system.  Think JSON, except binary.  Or think Protocol Buffers, except faste
          (base32
           "1fj4554msq0rrz14snbj908dzqj46gh7jg9w9j0akn2b7q911m5a"))))
     (build-system gnu-build-system)
-    (native-inputs `(("perl" ,perl)))
+    (native-inputs (list perl))
     (home-page "http://mongoc.org/libbson/current/index.html")
     (synopsis "C BSON library")
     (description "Libbson can create and parse BSON documents.  It can also
@@ -542,9 +577,9 @@ it is comparable to protobuf.")
          "0hm9yg785f46bkrgqknd6fdvmkby9dpzjnm0b63qf0i748acaj5v"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-ruamel.yaml.clib" ,python-ruamel.yaml.clib)))
+     (list python-ruamel.yaml.clib))
     (arguments
      `(;; TODO: Tests require packaging "ruamel.std.pathlib".
        #:tests? #f))
@@ -588,7 +623,7 @@ style and key ordering are kept, so you can diff the source.")
            (lambda _
              (invoke "cython" "_ruamel_yaml.pyx"))))))
     (native-inputs
-     `(("python-cython" ,python-cython)))
+     (list python-cython))
     (home-page "https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree")
     (synopsis "C version of reader, parser and emitter for ruamel.yaml")
     (description
@@ -663,8 +698,7 @@ game development and other performance-critical applications.")
           "00w9hwz7sj3fkdjc378r066vdy6lpxmn6vfac3qx956k8lvpxxj5"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pandas" ,python-pandas)
-       ("python-pyarrow" ,python-pyarrow)))
+     (list python-pandas python-pyarrow))
     (home-page "https://github.com/wesm/feather")
     (synopsis "Python wrapper to the Feather file format")
     (description "This package provides a Python wrapper library to the
diff --git a/gnu/packages/serveez.scm b/gnu/packages/serveez.scm
index 871fb00d3b..b19d0ca596 100644
--- a/gnu/packages/serveez.scm
+++ b/gnu/packages/serveez.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,22 +23,22 @@
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages guile))
 
 (define-public serveez
   (package
     (name "serveez")
-    (version "0.2.2")
+    (version "0.3.0")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/serveez/serveez-"
-                          version ".tar.xz"))
+                          version ".tar.lz"))
       (sha256
        (base32
-        "09a5jh762ps71ivlg7vdlzp3y29ncl3nsad7qbcni78bq2mzwxsc"))))
+        "0capm8i6fyjvh5rflxkfd07llfaa0kk4i3y836qpld9vzy49q6ky"))))
     (build-system gnu-build-system)
-    (inputs `(("guile" ,guile-2.0)))
     (arguments
      `(#:configure-flags '("--enable-libserveez-install")
        #:phases
@@ -48,6 +49,10 @@
                  (find-files "test" "^t[0-9]{3}$")
                (("/bin/sh") (which "sh")))
              #t)))))
+    (native-inputs
+     (list lzip))
+    (inputs
+     (list guile-2.2))
     (home-page "https://www.gnu.org/software/serveez/")
     (synopsis "Framework for implementing IP-based servers")
     (description
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 7c8c1aeef6..346bb7cdbe 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -98,7 +98,7 @@
            #t))))
     (build-system gnu-build-system)
     (inputs
-     `(("libedit" ,libedit)))
+     (list libedit))
     (arguments
      '(#:configure-flags '("--with-libedit")))
     (home-page "http://gondor.apana.org.au/~herbert/dash")
@@ -130,14 +130,11 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
            (delete-file-recursively "pcre2")))))
     (build-system cmake-build-system)
     (inputs
-     `(("fish-foreign-env" ,fish-foreign-env)
-       ("ncurses" ,ncurses)
-       ("pcre2" ,pcre2)      ; don't use the bundled PCRE2
-       ("python" ,python)))  ; for fish_config and manpage completions
+     (list fish-foreign-env ncurses pcre2 ; don't use the bundled PCRE2
+           python))  ; for fish_config and manpage completions
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("groff" ,groff)                 ; for 'fish --help'
-       ("procps" ,procps)))             ; for the test suite
+     (list doxygen groff ; for 'fish --help'
+           procps))             ; for the test suite
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -297,16 +294,15 @@ and syntax highlighting.")
                           ,(string-append func-path "/fenv.apply.fish")
                           ,(string-append func-path "/fenv.main.fish"))
              (("bash")
-              (string-append (assoc-ref %build-inputs "bash") "/bin/bash"))
+              (search-input-file %build-inputs "/bin/bash"))
              (("sed")
-              (string-append (assoc-ref %build-inputs "sed") "/bin/sed"))
+              (search-input-file %build-inputs "/bin/sed"))
              ((" tr ")
-              (string-append " " (assoc-ref %build-inputs "coreutils")
-                             "/bin/tr ")))))))
+              (string-append " "
+                             (search-input-file %build-inputs "/bin/tr")
+                             " ")))))))
     (inputs
-     `(("bash" ,bash)
-       ("coreutils" ,coreutils)
-       ("sed" ,sed)))
+     (list bash coreutils sed))
     (home-page "https://github.com/oh-my-fish/plugin-foreign-env")
     (synopsis "Foreign environment interface for fish shell")
     (description "@code{fish-foreign-env} wraps bash script execution in a way
@@ -341,12 +337,8 @@ into fish.")
               (("/bin/rm")  (which "rm"))
               (("/bin\\)")  (string-append (dirname (which "rm")) ")")))
             #t)))))
-    (inputs `(("readline" ,readline)
-              ("perl" ,perl)))
-    (native-inputs `(("autoconf" ,autoconf)
-                     ("automake" ,automake)
-                     ("libtool" ,libtool)
-                     ("pkg-config" ,pkg-config)))
+    (inputs (list readline perl))
+    (native-inputs (list autoconf automake libtool pkg-config))
     (synopsis "Alternative implementation of the rc shell by Byron Rakitzis")
     (description
      "This is a reimplementation by Byron Rakitzis of the Plan 9 shell.  It
@@ -377,9 +369,9 @@ has a small feature set similar to a traditional Bourne shell.")
            (lambda _
              (chdir ".."))))))
     (inputs
-     `(("readline" ,readline)))
+     (list readline))
     (native-inputs
-     `(("bison" ,bison)))
+     (list bison))
     (synopsis "Extensible shell with higher-order functions")
     (description
      "Es is an extensible shell.  The language was derived from the Plan 9
@@ -408,10 +400,9 @@ written by Paul Haahr and Byron Rakitzis.")
               (patch-flags '("-p0"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("perl" ,perl)))
+     (list autoconf perl))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (arguments
      `(#:phases
         (modify-phases %standard-phases
@@ -525,10 +516,8 @@ history mechanism, job control and a C-like syntax.")
                          (("command -p") "command ")
                          (("'command' -p") "'command' "))
                        #t)))))
-    (native-inputs `(("autoconf" ,autoconf)))
-    (inputs `(("ncurses" ,ncurses)
-              ("pcre" ,pcre)
-              ("perl" ,perl)))
+    (native-inputs (list autoconf))
+    (inputs (list ncurses pcre perl))
     (synopsis "Powerful shell for interactive use and scripting")
     (description "The Z shell (zsh) is a Unix shell that can be used
 as an interactive login shell and as a powerful command interpreter
@@ -576,7 +565,7 @@ ksh, and tcsh.")
        ;; information.
        #:tests? #f))
     (inputs
-     `(("python-ply" ,python-ply)))
+     (list python-ply))
     (home-page "https://xon.sh/")
     (synopsis "Python-ish shell")
     (description
@@ -618,11 +607,9 @@ use of experts and novices alike.")
                  (symlink rxpath "rx"))
                #t)))))
       (inputs
-       `(("scheme48" ,scheme48)
-         ("scheme48-rx" ,scheme48-rx)))
+       (list scheme48 scheme48-rx))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)))
+       (list autoconf automake))
       (home-page "https://github.com/scheme/scsh")
       (synopsis "Unix shell embedded in Scheme")
       (description
@@ -698,7 +685,7 @@ Its features include:
            "0qiny71ww5nhzy4mnc8652hn0mlxyb67h333gbdxp4j4qxsi13q4"))))
       (build-system gnu-build-system)
       (inputs
-       `(("linenoise" ,linenoise)))
+       (list linenoise))
       (arguments
        `(#:tests? #f
          #:make-flags (list "CC=gcc"
@@ -785,9 +772,9 @@ The OpenBSD Korn Shell is a cleaned up and enhanced ksh.")
         (base32 "0x33plxqhh5202hgqidgccz5hpg8d2q71ylgnm437g60mfi9z0px"))))
     (build-system meson-build-system)
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:tests? #f))                    ; no tests included
     (home-page "https://github.com/dimkr/loksh")
@@ -802,14 +789,14 @@ interactive POSIX shell targeted at resource-constrained systems.")
 (define-public mksh
   (package
     (name "mksh")
-    (version "58")
+    (version "59c")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R"
                            version ".tgz"))
        (sha256
-        (base32 "1337zjvzh14yncg9igdry904a3ns52l8rnm1kcq262w7f5xyp2v0"))))
+        (base32 "01n5ggw33bw4jv4d3148wlw9n4aj7vdn3ffnc66c9w9pldjidbkp"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; tests require access to /dev/tty
@@ -828,8 +815,7 @@ interactive POSIX shell targeted at resource-constrained systems.")
                (install-file "mksh" bin)
                (with-directory-excursion bin
                  (symlink "mksh" "ksh"))
-               (install-file "mksh.1" man)
-               #t))))))
+               (install-file "mksh.1" man)))))))
     (home-page "https://www.mirbsd.org/mksh.htm")
     (synopsis "Korn Shell from MirBSD")
     (description "mksh is an actively developed free implementation of the
@@ -841,14 +827,14 @@ Shell (pdksh).")
 (define-public oil
   (package
     (name "oil")
-    (version "0.9.0")
+    (version "0.9.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.oilshell.org/download/oil-"
                            version ".tar.gz"))
        (sha256
-        (base32 "0jm9bmjhdpa30i16glssp735f4yqijl1zkmyywifkpxis4kwmqkg"))))
+        (base32 "0q29k500is2iif77dkpr7zncjg6ghzmmxs7c9pr2hjz8vvykv58x"))))
     (build-system gnu-build-system)
     (arguments
      `(#:strip-binaries? #f             ; strip breaks the binary
@@ -872,7 +858,7 @@ Shell (pdksh).")
                  (invoke/quiet oil "osh" "-c" "echo hi")
                  (invoke/quiet oil "osh" "-n" "configure"))))))))
     (inputs
-     `(("readline" ,readline)))
+     (list readline))
     (home-page "https://www.oilshell.org")
     (synopsis "Programming language and Bash-compatible Unix shell")
     (description "Oil is a programming language with automatic translation for
@@ -881,9 +867,6 @@ scripts.")
     (license (list license:psfl                 ; tarball includes python2.7
                    license:asl2.0))))
 
-(define-public oil-shell
-  (deprecated-package "oil-shell" oil))
-
 (define-public gash
   (package
     (name "gash")
@@ -905,9 +888,9 @@ scripts.")
                  #t))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (arguments
      '(#:make-flags '("XFAIL_TESTS=tests/redirects.org")))
     (home-page "https://savannah.nongnu.org/projects/gash/")
@@ -940,10 +923,9 @@ as part of the Guix bootstrap process.")
                   #t))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("guile" ,guile-3.0)
-       ("gash" ,gash)))
+     (list guile-3.0 gash))
     (home-page "https://savannah.nongnu.org/projects/gash/")
     (synopsis "Core POSIX utilities written in Guile Scheme")
     (description "Gash-Utils provides Scheme implementations of many
@@ -969,8 +951,7 @@ files and text.")
         (base32 "1db521jrs0yxwmvkkl8wssa8qyi0m62n69l7xxl2gpyz1v8nvw76"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:rust ,rust-1.52
-       #:tests? #false                  ;missing files
+     `(#:tests? #false                  ;missing files
        #:features '("extra")
        #:cargo-inputs
        (("rust-ctrlc" ,rust-ctrlc-3)
@@ -1029,15 +1010,14 @@ files and text.")
         ("rust-rstest" ,rust-rstest-0.10)
         ("rust-serial-test" ,rust-serial-test-0.5))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)))
+     (list pkg-config python))
     (inputs
-     `(("curl" ,curl)
-       ("libgit2" ,libgit2)
-       ("libx11" ,libx11)
-       ("libxcb" ,libxcb)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list curl
+           libgit2
+           libx11
+           libxcb
+           openssl
+           zlib))
     (home-page "https://www.nushell.sh")
     (synopsis "Shell that understands the structure of the data")
     (description
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm
index 94b5536df7..7a868f0789 100644
--- a/gnu/packages/shellutils.scm
+++ b/gnu/packages/shellutils.scm
@@ -10,6 +10,10 @@
 ;;; Copyright © 2020 aecepoglu <aecepoglu@fastmail.fm>
 ;;; Copyright © 2020 Dion Mendel <guix@dm9.info>
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2021 Alexandr Vityazev <avityazev@posteo.org>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
+;;; Copyright © 2021 Wiktor Żelazny <wzelazny@vurv.cz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,18 +44,59 @@
   #:use-module (gnu packages bison)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages golang)
+  #:use-module (gnu packages libunistring)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages shells)
-  #:use-module (gnu packages tmux))
+  #:use-module (gnu packages tmux)
+  #:use-module (gnu packages vim))
+
+(define-public ascii
+  (package
+    (name "ascii")
+    (version "3.18")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.catb.org/~esr/ascii/"
+                                  "ascii-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0b87vy06s8s3a8q70pqavsbk4m4ff034sdml2xxa6qfsykaj513j"))))
+    (build-system gnu-build-system)
+    (arguments `(#:make-flags
+                 (list (string-append "CC=" ,(cc-for-target))
+                       (string-append "PREFIX=" %output))
+                 #:phases
+                 (modify-phases %standard-phases
+                   (delete 'configure)
+                   (add-before 'install 'create-directories
+                     (lambda* (#:key outputs #:allow-other-keys)
+                       (let* ((out (assoc-ref outputs "out"))
+                              (bin (string-append out "/bin"))
+                              (man1 (string-append out "/share/man/man1")))
+                         (mkdir-p bin)
+                         (mkdir-p man1)))))
+                 #:tests? #f))
+    (home-page "http://www.catb.org/~esr/ascii/")
+    (synopsis "ASCII name and synonym chart")
+    (description
+      "The @code{ascii} utility provides easy conversion between various byte
+representations and the American Standard Code for Information Interchange
+(ASCII) character table.  It knows about a wide variety of hex, binary, octal,
+Teletype mnemonic, ISO/ECMA code point, slang names, XML entity names, and
+other representations.  Given any one on the command line, it will try to
+display all others.  Called with no arguments it displays a handy small ASCII
+chart.")
+    (license license:bsd-2)))
 
 (define-public boxes
   (package
     (name "boxes")
-    (version "1.3")
+    (version "2.1.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -60,32 +105,40 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0b12rsynrmkldlwcb62drk33kk0aqwbj10mq5y5x3hjf626gjwsi"))))
+                "1bf5rnfiw04ffs1l17zhbg4wvq2vfn2qbz1xmd250xqj15lysw88"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
        #:make-flags (list (string-append "GLOBALCONF="
                                          (assoc-ref %outputs "out")
                                          "/etc/boxes-config"))
+       #:modules
+       ((ice-9 match)
+        ,@%gnu-build-system-modules)
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
-             (let ((dest (assoc-ref outputs "out")))
-               (for-each (lambda (x)
-                           (install-file (car x)
-                                         (string-append dest "/" (cdr x))))
-                         '(("src/boxes" . "bin")
-                           ("doc/boxes.1" . "share/man/man1")
-                           ("boxes-config" . "etc/")))
-               #t))))))
-    (native-inputs `(("flex" ,flex) ("bison" ,bison)))
+             (let ((out (assoc-ref outputs "out")))
+               (for-each (match-lambda
+                           ((source target)
+                            (install-file source
+                                          (string-append out "/" target))))
+                         '(("out/boxes"    "bin/")
+                           ("doc/boxes.1"  "share/man/man1/")
+                           ("boxes-config" "etc/")))))))))
+    (native-inputs
+     (list bison flex
+           ;; For the tests.
+           xxd))
+    (inputs
+     (list libunistring pcre2))
+    (home-page "https://boxes.thomasjensen.com")
     (synopsis "Command line ASCII boxes")
     (description
      "This command-line filter program draws ASCII-art boxes around your input
 text.")
-    (home-page "https://boxes.thomasjensen.com/build.html")
     (license license:gpl2)))
 
 (define-public zsh-autosuggestions
@@ -103,13 +156,13 @@ text.")
                 "1g3pij5qn2j7v7jjac2a63lxd97mcsgw6xq6k5p7835q9fjiid98"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("ruby" ,ruby)
-       ("ruby-byebug" ,ruby-byebug)
-       ("ruby-pry" ,ruby-pry)
-       ("ruby-rspec" ,ruby-rspec)
-       ("ruby-rspec-wait" ,ruby-rspec-wait)
-       ("tmux" ,tmux)
-       ("zsh" ,zsh)))
+     (list ruby
+           ruby-byebug
+           ruby-pry
+           ruby-rspec
+           ruby-rspec-wait
+           tmux
+           zsh))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -138,6 +191,57 @@ text.")
 as you type.")
     (license license:expat)))
 
+(define-public zsh-syntax-highlighting
+  (package
+    (name "zsh-syntax-highlighting")
+    (version "0.7.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/zsh-users/zsh-syntax-highlighting")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "039g3n59drk818ylcyvkciv8k9mf739cv6v4vis1h9fv9whbcmwl"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list zsh))
+    (arguments
+     ;; FIXME: Tests fail when running test regexp
+     ;; there is no pcre module in the Guix zsh package
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'unpack 'patch-paths
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "Makefile"
+                 (("/usr/local") out)
+                 (("share/\\$\\(NAME\\)") "share/zsh/plugins/$(NAME)")))))
+         (add-after 'patch-paths 'make-writable
+           (lambda _
+             (for-each make-file-writable
+                       '("docs/highlighters.md"
+                         "README.md"))))
+         (add-before 'build 'add-all-md
+           (lambda _
+             (invoke "make" "all")))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "make" "test")
+               (invoke "make" "perf")))))))
+    (home-page "https://github.com/zsh-users/zsh-syntax-highlighting")
+    (synopsis "Fish shell-like syntax highlighting for Zsh")
+    (description
+     "This package provides syntax highlighting for Zsh.  It enables
+highlighting of commands whilst they are typed at a Zsh prompt into an
+interactive terminal.  This helps in reviewing commands before running them,
+particularly in catching syntax errors.")
+    (license license:bsd-3)))
+
 (define-public sh-z
   (package
     (name "sh-z")
@@ -226,7 +330,7 @@ between various shells or commands.")
                   (string-append "\"" libc "/lib/libc.so.6\"\n"))
                  (("\"df\"")
                   (string-append "\"" coreutils "/bin/df\"")))))))))
-    (inputs `(("coreutils" ,coreutils)))
+    (inputs (list coreutils))
     (home-page "https://github.com/andreafrancia/trash-cli")
     (synopsis "Trash can management tool")
     (description
@@ -239,7 +343,7 @@ are already there.")
 (define-public direnv
   (package
     (name "direnv")
-    (version "2.15.2")
+    (version "2.28.0")
     (source
      (origin (method git-fetch)
              (uri (git-reference
@@ -248,18 +352,12 @@ are already there.")
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "1y18619pmhfl0vrf4w0h75ybkkwgi9wcb7d9kv4n8drg1xp4aw4w"))))
+               "0yk53jn7wafklixclka17wyjjs2g5giigjr2bd0xzy10nrzwp7c9"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/direnv/direnv"
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'delete-vendor
-           (lambda _
-             ;; Using a snippet causes issues with the name of the directory,
-             ;; so delete the extra source code here.
-             (delete-file-recursively "src/github.com/direnv/direnv/vendor")
-             #t))
          (add-after 'install 'install-manpages
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -277,15 +375,16 @@ are already there.")
                  ;; The following file needs to be writable so it can be
                  ;; modified by the testsuite.
                  (make-file-writable "test/scenarios/base/.envrc")
-                 (invoke "make" "test")
+                 ;; We need to manually run test because make test
+                 ;; tries to use go modules
+                 (invoke "go" "test" "./...")
                  ;; Clean up from the tests, especially so that the extra
                  ;; direnv executable that's generated is removed.
                  (invoke "make" "clean")))
              #t)))))
     (native-inputs
-     `(("go-github-com-burntsushi-toml" ,go-github-com-burntsushi-toml)
-       ("go-github-com-direnv-go-dotenv" ,go-github-com-direnv-go-dotenv)
-       ("which" ,which)))
+     (list go-github-com-burntsushi-toml go-github-com-direnv-go-dotenv
+           go-github-com-mattn-go-isatty go-golang-org-x-mod which))
     (home-page "https://direnv.net/")
     (synopsis "Environment switcher for the shell")
     (description
@@ -336,7 +435,7 @@ below the current cursor position, scrolling the screen if necessary.")
 (define-public hstr
   (package
     (name "hstr")
-    (version "2.3")
+    (version "2.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -345,7 +444,7 @@ below the current cursor position, scrolling the screen if necessary.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1chmfdi1dwg3sarzd01nqa82g65q7wdr6hrnj96l75vikwsg986y"))))
+                "0xg10jyiq12bcygi6aa9qq9pki7bipdsvsza037p2iqix19jg0x8"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -359,12 +458,9 @@ below the current cursor position, scrolling the screen if necessary.")
                  (("ncursesw\\/curses.h") "ncurses.h")))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
-     `(("ncurses" ,ncurses)
-       ("readline" ,readline)))
+     (list ncurses readline))
     (synopsis "Navigate and search command history with shell history suggest box")
     (description "HSTR (HiSToRy) is a command-line utility that brings
 improved Bash and Zsh command completion from the history.  It aims to make
@@ -398,3 +494,79 @@ the UNIX philosophy, these commands are designed to be composed via pipes. A
 large collection of functions such as basename, replace, contains or is_dir
 are provided as arguments to these commands.")
     (license license:expat)))
+
+(define-public rig
+  (package
+    (name "rig")
+    (version "1.11")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/rig/rig/"
+                                  version "/rig-"
+                                  version ".tar.gz"))
+              (sha256
+                (base32
+                  "1f3snysjqqlpk2kgvm5p2icrj4lsdymccmn3igkc2f60smqckgq0"))))
+    (build-system gnu-build-system)
+    (arguments `(#:make-flags
+                 (list (string-append "CXX=" ,(cxx-for-target))
+                       (string-append "PREFIX=" %output))
+                 #:phases
+                 (modify-phases %standard-phases
+                   (delete 'configure)
+                   (add-after 'unpack 'fix-build
+                     (lambda _
+                       (substitute* "rig.cc"
+                         (("^#include <string>")
+                          "#include <cstring>"))
+                       (substitute* "Makefile"
+                         (("g\\+\\+")
+                          "${CXX} -O2")
+                         (("install -g 0 -m 755 -o 0 -s rig \\$\\(BINDIR\\)")
+                          "install -m 755 -d $(DESTDIR)$(BINDIR)\n\t\
+install -m 755 rig $(DESTDIR)$(BINDIR)/rig")
+                         (("install -g 0 -m 644 -o 0 rig.6 \\$\\(MANDIR\\)/man6/rig.6")
+                          "install -m 755 -d $(DESTDIR)$(MANDIR)/man6/\n\t\
+install -m 644 rig.6 $(DESTDIR)$(MANDIR)/man6/rig.6")
+                         (("install -g 0 -m 755 -o 0 -d \\$\\(DATADIR\\)")
+                          "install -m 755 -d $(DESTDIR)$(DATADIR)")
+                         (("install -g 0 -m 644 -o 0 data/\\*.idx \\$\\(DATADIR\\)")
+                          "install -m 644 data/*.idx $(DESTDIR)$(DATADIR)")))))
+                 #:tests? #f))
+    (home-page "http://rig.sourceforge.net")
+    (synopsis "Random identity generator")
+    (description
+      "RIG (Random Identity Generator) generates random, yet real-looking,
+personal data.  It is useful if you need to feed a name to a Web site, BBS, or
+real person, and are too lazy to think of one yourself.  Also, if the Web
+site/BBS/person you are giving the information to tries to cross-check the
+city, state, zip, or area code, it will check out.")
+    (license license:gpl2+)))
+
+(define-public renameutils
+  (package
+    (name "renameutils")
+    (version "0.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://savannah/renameutils/"
+                           "renameutils-" version ".tar.gz"))
+       (sha256
+        (base32
+         "18xlkr56jdyajjihcmfqlyyanzyiqqlzbhrm6695mkvw081g1lnb"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   (substitute* "src/Makefile.in"
+                     (("\\(\\$bindir\\)") "$(bindir)"))
+                   #t))))
+    (build-system gnu-build-system)
+    (inputs
+     (list readline))
+    (home-page "https://www.nongnu.org/renameutils/")
+    (synopsis "File renaming utilities")
+    (description "The file renaming utilities (renameutils for short) are a
+set of programs designed to make renaming of files faster and less cumbersome.
+The file renaming utilities consists of five programs: @command{qmv},
+@command{qcp}, @command{imv}, @command{icp}, and @command{deurlname}.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/simh.scm b/gnu/packages/simh.scm
index b911b30b00..81d26bbde0 100644
--- a/gnu/packages/simh.scm
+++ b/gnu/packages/simh.scm
@@ -40,7 +40,7 @@
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
-     `(("libpcap" ,libpcap)))
+     (list libpcap))
     (arguments
      '(#:tests? #f
        #:make-flags (list
diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm
index f5fe3fcf1d..240549be47 100644
--- a/gnu/packages/simulation.scm
+++ b/gnu/packages/simulation.scm
@@ -101,11 +101,9 @@
        ("scotch" ,pt-scotch32)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("bison" ,bison)))
+     (list bison))
     (propagated-inputs
-     `(("gzip" ,gzip)
-       ("gnuplot" ,gnuplot)
-       ("openmpi" ,openmpi)))
+     (list gzip gnuplot openmpi))
     (outputs '("debug"                  ;~60MB
                "out"))
     (arguments
@@ -257,12 +255,11 @@ problems for efficient solution on parallel systems.")
             "0lhqsq8ypdak0ahr2jnyvg07yrqp6wicjxi6k56zx24wp3qg60sc"))))
     (build-system python-build-system)
     (inputs
-     `(("openmpi" ,openmpi)
-       ("python-numpy" ,python-numpy)))
+     (list openmpi python-numpy))
     (native-inputs
-     `(("python-pytest-cov" ,python-pytest-cov)))
+     (list python-pytest-cov))
     (propagated-inputs
-     `(("python-mpi4py" ,python-mpi4py)))
+     (list python-mpi4py))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -305,9 +302,9 @@ the complexity of that interface.  Parallel support depends on the
             "10dz8x3lm68x2w3kkqcjask38h0zkhhak26jdbkppr8g9y8wny7p"))))
     (build-system python-build-system)
     (inputs
-     `(("python-numpy" ,python-numpy)))
+     (list python-numpy))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -338,10 +335,9 @@ UFL is part of the FEniCS Project.")
             "13sc7lma3d2mh43an7i4kkdbbk4cmvxjk45wi43xnjd7qc38zg4b"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-sympy" ,python-sympy)))
+     (list python-numpy python-sympy))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -385,11 +381,9 @@ FIAT is part of the FEniCS Project.")
             "1f2a44ha65fg3a1prrbrsz4dgvibsv0j5c3pi2m52zi93bhwwgg9"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (propagated-inputs
-     `(("python-fenics-dijitso" ,python-fenics-dijitso)
-       ("python-fenics-fiat" ,python-fenics-fiat)
-       ("python-fenics-ufl" ,python-fenics-ufl)))
+     (list python-fenics-dijitso python-fenics-fiat python-fenics-ufl))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -725,7 +719,7 @@ FEniCS core components and external libraries.")
                  "16v08dx7h7n4wyddzbwimazwyj74ynis12mpjfkay4243npy44b8"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("inetutils" ,inetutils))) ; for 'hostname', used in the check phase
+       (list inetutils)) ; for 'hostname', used in the check phase
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -905,16 +899,14 @@ command-line utility for mesh optimisation.")
             #t))))
     (build-system python-build-system)
     (inputs
-     `(("fenics" ,fenics)
-       ("openmpi" ,openmpi)
-       ("pybind11" ,pybind11)))
+     (list fenics openmpi pybind11))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-coverage" ,python-coverage)
-       ("python-decorator" ,python-decorator)
-       ("python-flake8" ,python-flake8)
-       ("python-pkgconfig" ,python-pkgconfig)
-       ("python-pytest" ,python-pytest)))
+     (list pkg-config
+           python-coverage
+           python-decorator
+           python-flake8
+           python-pkgconfig
+           python-pytest))
     (propagated-inputs
      `(("scipy" ,python-scipy)))
     (arguments
diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm
index b38d3f418f..31349e858b 100644
--- a/gnu/packages/skarnet.scm
+++ b/gnu/packages/skarnet.scm
@@ -30,14 +30,14 @@
 (define-public skalibs
   (package
     (name "skalibs")
-    (version "2.10.0.3")
+    (version "2.11.0.0")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://skarnet.org/software/skalibs/skalibs-"
                           version ".tar.gz"))
       (sha256
-       (base32 "0ka6n5rnxd5sn5lycarf596d5wlak5s535zqqlz0rnhdcnpb105p"))))
+       (base32 "1n9l7mb54dlb0iijjaf446jba6nmq1ql9n39s095ngrk5ahcipwq"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no tests exist
@@ -48,8 +48,7 @@
                       ;; and *.so files are reproducible.
                       (substitute* "Makefile"
                         (("\\$\\(wildcard src/lib\\*/\\*.c\\)")
-                         "$(sort $(wildcard src/lib*/*.c))"))
-                      #t)))))
+                         "$(sort $(wildcard src/lib*/*.c))")))))))
     (home-page "https://skarnet.org/software/skalibs/")
     (synopsis "Platform abstraction libraries for skarnet.org software")
     (description
@@ -62,16 +61,16 @@ and file system operations.  It is used by all skarnet.org software.")
 (define-public execline
   (package
     (name "execline")
-    (version "2.8.0.1")
+    (version "2.8.1.0")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://skarnet.org/software/execline/execline-"
                           version ".tar.gz"))
       (sha256
-       (base32 "1v9swmhw2rcrr9fmkmd7qh8qq0kslhmvxwz2a3bhan9ksabz8wx3"))))
+       (base32 "0msmzf5zwjcsgjlvvq28rd2i0fkdb2skmv8ii0ix8dhyckwwjmav"))))
     (build-system gnu-build-system)
-    (inputs `(("skalibs" ,skalibs)))
+    (inputs (list skalibs))
     (arguments
      '(#:configure-flags (list
                           (string-append "--with-lib="
@@ -104,17 +103,16 @@ complexity.")))
 (define-public s6
   (package
    (name "s6")
-   (version "2.10.0.3")
+   (version "2.11.0.0")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "https://skarnet.org/software/s6/s6-"
                          version ".tar.gz"))
      (sha256
-      (base32 "0mw7blp8dwr09z58m9mrxwmmvvpnjzq9klcf1vgm0hbha4qkf88x"))))
+      (base32 "1a3lj0xfhn1w3a4ygqsxy8q4dr3n48hnwml4xzdpz3nrikhy8if5"))))
    (build-system gnu-build-system)
-   (inputs `(("skalibs" ,skalibs)
-             ("execline" ,execline)))
+   (inputs (list skalibs execline))
    (arguments
     `(#:configure-flags (list
                         (string-append "--with-lib="
@@ -133,8 +131,7 @@ complexity.")))
           (lambda* (#:key outputs #:allow-other-keys)
             (let* ((out (assoc-ref outputs "out"))
                    (doc (string-append out "/share/doc/s6-" ,version)))
-              (copy-recursively "doc" doc)
-              #t))))))
+              (copy-recursively "doc" doc)))))))
    (home-page "https://skarnet.org/software/s6")
    (license isc)
    (synopsis "Small suite of programs for process supervision")
@@ -150,16 +147,16 @@ functionality with a very small amount of code.")))
 (define-public s6-dns
   (package
    (name "s6-dns")
-   (version "2.3.5.1")
+   (version "2.3.5.2")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "https://skarnet.org/software/s6-dns/s6-dns-"
                          version ".tar.gz"))
      (sha256
-      (base32 "0qsgqwdr5ms337fc9f2b4aa5cr7myvbzndvgkgswnrdwszjm078c"))))
+      (base32 "0nczzjprvp6wirzycgf5h32dlgx4r8grzkqhif27n3ii6f5g78yw"))))
     (build-system gnu-build-system)
-    (inputs `(("skalibs" ,skalibs)))
+    (inputs (list skalibs))
     (arguments
      '(#:configure-flags (list
                           (string-append "--with-lib="
@@ -179,19 +176,16 @@ as an alternative to the BIND, djbdns or other DNS clients.")))
 (define-public s6-networking
   (package
    (name "s6-networking")
-   (version "2.4.1.1")
+   (version "2.5.0.0")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "https://skarnet.org/software/s6-networking/"
                          "s6-networking-" version ".tar.gz"))
      (sha256
-      (base32 "0m55ibx7k2wgrqbpci1n667ij0h925ajzggxalq2pj65kmwcmyx3"))))
+      (base32 "1fn3g9gkwgmnxallhk82f5rly81pnkilj7n49g5fbfmaalsq96mh"))))
     (build-system gnu-build-system)
-    (inputs `(("skalibs" ,skalibs)
-              ("execline" ,execline)
-              ("s6" ,s6)
-              ("s6-dns" ,s6-dns)))
+    (inputs (list skalibs execline s6 s6-dns))
     (arguments
      '(#:configure-flags (list
                           (string-append "--with-lib="
@@ -222,18 +216,16 @@ clock synchronization.")))
 (define-public s6-rc
   (package
    (name "s6-rc")
-   (version "0.5.2.2")
+   (version "0.5.2.3")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "https://skarnet.org/software/s6-rc/s6-rc-"
                          version ".tar.gz"))
      (sha256
-      (base32 "12bzc483jpd16xmhfsfrib84daj1k3kwy5s5nc18ap60apa1r39a"))))
+      (base32 "1xyaplwzvqnb53mg59a7jklakzwsiqivp6qggsry3sbaw4hf3d5j"))))
     (build-system gnu-build-system)
-    (inputs `(("skalibs" ,skalibs)
-              ("execline" ,execline)
-              ("s6" ,s6)))
+    (inputs (list skalibs execline s6))
     (arguments
      '(#:configure-flags (list
                           (string-append "--with-lib="
@@ -263,7 +255,7 @@ environment.")))
 (define-public s6-portable-utils
   (package
    (name "s6-portable-utils")
-   (version "2.2.3.2")
+   (version "2.2.3.3")
    (source
     (origin
      (method url-fetch)
@@ -271,9 +263,9 @@ environment.")))
            "https://skarnet.org/software/s6-portable-utils/s6-portable-utils-"
            version ".tar.gz"))
      (sha256
-      (base32 "173nmygkp7ky3093dg4rx3ahvyl7ll86z8qj6pl3jd96xb9s49v6"))))
+      (base32 "132jj5qk8x40kw6lrrn7jiqhvqj9d2h6g6mhl8zma1sp37bg0i84"))))
     (build-system gnu-build-system)
-    (inputs `(("skalibs" ,skalibs)))
+    (inputs (list skalibs))
     (arguments
      '(#:configure-flags (list
                           (string-append "--with-lib="
@@ -295,7 +287,7 @@ systems and other constrained environments, but they work everywhere.")))
 (define-public s6-linux-init
   (package
    (name "s6-linux-init")
-   (version "1.0.6.3")
+   (version "1.0.6.4")
    (source
     (origin
      (method url-fetch)
@@ -303,12 +295,10 @@ systems and other constrained environments, but they work everywhere.")))
            "https://skarnet.org/software/s6-linux-init/s6-linux-init-"
            version ".tar.gz"))
      (sha256
-      (base32 "1idqjcxhl5wgff8yrsvx2812wahjri2hcs7qs6k62g0sdd8niqr9"))))
+      (base32 "0grqk111d6aqym1c4l9j26fdqcgra1hvwb9vdgylrfbvn1c3hlpb"))))
     (build-system gnu-build-system)
     (inputs
-     `(("execline" ,execline)
-       ("s6" ,s6)
-       ("skalibs" ,skalibs)))
+     (list execline s6 skalibs))
     (arguments
      '(#:configure-flags
        (list
@@ -341,7 +331,7 @@ all the details.")))
 (define-public s6-linux-utils
   (package
    (name "s6-linux-utils")
-   (version "2.5.1.5")
+   (version "2.5.1.6")
    (source
     (origin
      (method url-fetch)
@@ -349,9 +339,9 @@ all the details.")))
            "https://skarnet.org/software/s6-linux-utils/s6-linux-utils-"
            version ".tar.gz"))
      (sha256
-      (base32 "1fj5ldlrc6bx40pphg29rp3byd6fal6869v85kw86c2kdgrxn063"))))
+      (base32 "0hr49nl0d7a6i5w8cfg43xzvzayb8kpqij9xg7bmw2fyvc2z338z"))))
     (build-system gnu-build-system)
-    (inputs `(("skalibs" ,skalibs)))
+    (inputs (list skalibs))
     (arguments
      '(#:configure-flags (list
                           (string-append "--with-lib="
diff --git a/gnu/packages/skribilo.scm b/gnu/packages/skribilo.scm
index e5d764ae28..1b000e0688 100644
--- a/gnu/packages/skribilo.scm
+++ b/gnu/packages/skribilo.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -65,20 +65,24 @@
                                  " -c"))))
              #t)))
 
-       #:parallel-build? #f))
+       #:parallel-build? #f
 
-    (native-inputs `(("pkg-config" ,pkg-config)))
+       ;; XXX: Temporarily disable tests because they rely on
+       ;; 'test-runner-current' *not* returning #f after 'test-end', which is
+       ;; no longer the case in Guile >= 3.0.6.  This is fixed upstream.
+       #:tests? #f))
 
-    (inputs `(("guile" ,guile-3.0)
-              ("imagemagick" ,imagemagick)
-              ("ghostscript" ,ghostscript)        ; for 'convert'
-              ("ploticus" ,ploticus)
-              ("lout" ,lout)))
+    (native-inputs (list pkg-config))
+
+    (inputs (list guile-3.0
+                  imagemagick
+                  ghostscript ; for 'convert'
+                  ploticus
+                  lout))
 
     ;; The 'skribilo' command needs them, and for people using Skribilo as a
     ;; library, these inputs are needed as well.
-    (propagated-inputs `(("guile-reader" ,guile-reader)
-                         ("guile-lib" ,guile-lib)))
+    (propagated-inputs (list guile-reader guile-lib))
 
     (home-page "https://www.nongnu.org/skribilo/")
     (synopsis "Document production tool written in Guile Scheme")
diff --git a/gnu/packages/slang.scm b/gnu/packages/slang.scm
index 404a4535ca..c8de04667f 100644
--- a/gnu/packages/slang.scm
+++ b/gnu/packages/slang.scm
@@ -57,20 +57,23 @@
        #:parallel-build? #f  ; there's at least one race
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'reduce-array-test-size
+           ;; Reduce the size of the array, otherwise the array.sl/array.slc
+           ;; tests fails with "Unable to create a multi-dimensional array of
+           ;; the desired size" on 32 bit systems.
+           (lambda _
+             (substitute* "src/test/array.sl"
+               (("10000,10000,10000,10000,10000,10000")
+                "10,10,10,10,10,10"))))
          (add-before 'configure 'substitute-before-config
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((ncurses (assoc-ref inputs "ncurses")))
                (substitute* "configure"
                  (("MISC_TERMINFO_DIRS=\"\"")
                   (string-append "MISC_TERMINFO_DIRS="
-                                 "\"" ncurses "/share/terminfo" "\"")))
-               #t))))))
+                                 "\"" ncurses "/share/terminfo" "\"")))))))))
     (inputs
-     `(("readline" ,readline)
-       ("zlib" ,zlib)
-       ("libpng" ,libpng)
-       ("pcre" ,pcre)
-       ("ncurses" ,ncurses)))
+     (list readline zlib libpng pcre ncurses))
     (home-page "https://www.jedsoft.org/slang/")
     (synopsis "Library for interactive applications and extensibility")
     (description
@@ -98,10 +101,7 @@ slsh, which is part of the S-Lang distribution.")
     (build-system gnu-build-system)
     (outputs '("out" "python"))
     (inputs
-     `(("slang" ,slang)
-       ("popt" ,popt)
-       ("python" ,python)
-       ("fribidi" ,fribidi)))
+     (list slang popt python fribidi))
     (arguments
      `(#:tests? #f    ; no test suite
        #:configure-flags
diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm
index 26f7ab2c76..c89e95316a 100644
--- a/gnu/packages/smalltalk.scm
+++ b/gnu/packages/smalltalk.scm
@@ -61,12 +61,12 @@
       (patches (search-patches "smalltalk-multiplication-overflow.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ;; XXX: To be removed with the next release of Smalltalk.
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("zip" ,zip)))
+     (list pkg-config
+           ;; XXX: To be removed with the next release of Smalltalk.
+           autoconf
+           automake
+           libtool
+           zip))
     ;; TODO: These optional dependencies raise the closure size to ~1 GiB
     ;; from the current ~100 MiB, although some of them might be very
     ;; useful for end users:
@@ -79,11 +79,7 @@
     ;;  - sqlite
     ;;  - zlib
     (inputs
-     `(("gmp" ,gmp)
-       ("libffi" ,libffi)
-       ("libltdl" ,libltdl)
-       ("libsigsegv" ,libsigsegv)
-       ("lightning" ,lightning)))
+     (list gmp libffi libltdl libsigsegv lightning))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -146,15 +142,15 @@ such as ones for networking and GUI programming.")
               "(VM_BUILD_STRING \\\"Built with GNU Guix\\\")"))
            #t))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("dbus" ,dbus)
-       ("freetype" ,freetype)
-       ("libffi" ,libffi)
-       ("libxrender" ,libxrender)
-       ("mesa" ,mesa)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib
+           dbus
+           freetype
+           libffi
+           libxrender
+           mesa
+           pulseaudio))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ;no check target
diff --git a/gnu/packages/sml.scm b/gnu/packages/sml.scm
index b7e96f028c..1d1ccf6d8c 100644
--- a/gnu/packages/sml.scm
+++ b/gnu/packages/sml.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2017, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,7 +29,8 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix packages))
+  #:use-module (guix packages)
+  #:use-module (guix utils))
 
 (define-public polyml
   (package
@@ -45,11 +47,7 @@
                 "1y3i919kzylvhwfsi6adnc0ah0xahl6ncna0g5bcjyhxsq2416rn"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gmp" ,gmp)
-       ("lesstif" ,lesstif)
-       ("libffi" ,libffi)
-       ("libx11" ,libx11)
-       ("libxt" ,libxt)))
+     (list gmp lesstif libffi libx11 libxt))
     (arguments
      '(#:configure-flags
        (list "--with-system-libffi=yes"
@@ -75,3 +73,260 @@ function interface, and a symbolic debugger.")
     (license
      (list license:lgpl2.1
            license:lgpl2.1+))))
+
+(define (smlnj-file version filename hash)
+  (origin
+    (method url-fetch)
+    (uri (string-append "http://smlnj.cs.uchicago.edu/dist/working/"
+                        version "/" filename))
+    (sha256 (base32 hash))))
+
+(define-public smlnj
+  (package
+    (name "smlnj")
+    (version "110.99.2")
+    (source #f)  ; Sources are passed as native-inputs.
+    (supported-systems '("x86_64-linux" "i686-linux"))
+    (build-system gnu-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'unpack
+           (lambda* (#:key inputs #:allow-other-keys)
+             (for-each
+               (lambda (file)
+                 (invoke "tar" "xvf" (assoc-ref inputs file)))
+               (list (if (string=? "i686-linux" ,(%current-system))
+                       "boot.x86-unix"
+                       "boot.amd64-unix")
+                     "config"
+                     "cm"
+                     "compiler"
+                     "runtime"
+                     "system"
+                     "MLRISC"
+                     "smlnj-lib"
+                     "old-basis"
+                     "ckit"
+                     "nlffi"
+                     "cml"
+                     "eXene"
+                     "ml-lpt"
+                     "ml-lex"
+                     "ml-yacc"
+                     "ml-burg"
+                     "pgraph"
+                     "trace-debug-profile"
+                     "heap2asm"
+                     "smlnj-c"
+                     "doc"
+                     "asdl"))
+             ;; Same directory structure as what the config/unpack script
+             ;; would produce.
+             (mkdir "base")
+             (rename-file "runtime" "base/runtime")
+             (rename-file "compiler" "base/compiler")
+             (rename-file "cm" "base/cm")
+             (rename-file "old-basis" "base/old-basis")
+             (rename-file "system" "base/system")
+             #t))
+         (delete 'configure)
+         (replace 'patch-source-shebangs
+           (lambda _
+             ;; Fix paths to /bin/sh.
+             (substitute* (list "config/install.sh"
+                                (if (string=? "i686-linux" ,(%current-system))
+                                  "base/runtime/objs/mk.x86-linux"
+                                  "base/runtime/objs/mk.amd64-linux")
+                                "asdl/configure"
+                                "asdl/src/asdlgen/Makefile.in")
+               (("^SHELL[[:space:]]*=[[:space:]]*/bin/sh")
+                (string-append "SHELL=" (which "sh"))))
+             (substitute* "asdl/configure"
+               (("^SHELL=\\$\\{CONFIG_SHELL-/bin/sh\\}")
+                (string-append "SHELL=" (which "sh"))))
+             (substitute* (list "asdl/src/gen/fragments/mkfrags_sh.in"
+                                "asdl/src/gen/fragments/mkmk_sh.in")
+               (("^#!/bin/sh")
+                (string-append "#!" (which "sh"))))
+             #t))
+         (replace 'build
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* "config/chk-global-names.sh"
+               (("^CC=.*")
+                (string-append "CC=" ,(cc-for-target))))
+
+             ;; /bin and /usr/bin do not exist in the build environment.
+             (substitute* "config/_arch-n-opsys"
+               (("^export PATH") "")
+               (("^PATH=\"/bin:/usr/bin\"") "")
+               (("uname") (which "uname")))
+             (substitute* "base/runtime/config/gen-posix-names.sh"
+               (("^PATH=/bin:/usr/bin") ""))
+
+             ;; The build process uses an SML Basis Library function
+             ;; `OS.Process.system`, which uses "/bin/sh" (this is hardcoded).
+             ;; However, /bin/sh does not exist in the Guix build environment.
+             ;; Solution: binary patch — replace "/bin/sh" with "/tmp/sh".
+             (symlink (which "sh") "/tmp/sh")
+             (invoke "sed" "-i" "s,/bin/sh,/tmp/sh,"
+                     (if (string=? "i686-linux" ,(%current-system))
+                       "sml.boot.x86-unix/SMLNJ-BASIS/.cm/x86-unix/basis-common.cm"
+                       "sml.boot.amd64-unix/SMLNJ-BASIS/.cm/amd64-unix/basis-common.cm"))
+
+             ;; Build.
+             (invoke "./config/install.sh" "-default"
+                     (if (string=? "i686-linux" ,(%current-system))
+                       "32"
+                       "64"))
+
+             ;; Undo the binary patch.
+             (for-each
+               (lambda (file)
+                 (invoke "sed" "-i" "s,/tmp/sh,/bin/sh," file))
+               (if (string=? "i686-linux" ,(%current-system))
+                 '("bin/.heap/sml.x86-linux"
+                   "lib/SMLNJ-BASIS/.cm/x86-unix/basis-common.cm")
+                 '("bin/.heap/sml.amd64-linux"
+                   "lib/SMLNJ-BASIS/.cm/amd64-unix/basis-common.cm")))
+
+             ;; Set SMLNJ_HOME in the bin/ files, so that `sml` is able to find
+             ;; the SML/NJ Library.
+             (let ((out (assoc-ref outputs "out")))
+               (for-each
+                 (lambda (file)
+                   (invoke "sed" "-i"
+                           (string-append "2iSMLNJ_HOME=${SMLNJ_HOME:-" out "}")
+                           file))
+                 '("bin/.link-sml"
+                   "bin/.run-sml"
+                   "bin/ml-build"
+                   "bin/ml-makedepend")))))
+        (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (out-bin (string-append out "/bin/"))
+                    (out-lib (string-append out "/lib/"))
+                    (out-man (string-append out "/share/man/")))
+               (copy-recursively "bin" out-bin)
+               (copy-recursively "lib" out-lib)
+               (copy-recursively "doc/man" out-man))
+             #t))
+        (add-after 'install 'install-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((doc (string-append (assoc-ref outputs "doc")
+                                       "/share/doc/smlnj")))
+               (mkdir-p doc)
+               (copy-recursively "doc" doc))
+             #t)))))
+    (native-inputs
+     `(,(if (string=? "i686-linux" (%current-system))
+          `("boot.x86-unix"
+            ,(smlnj-file version
+                         "boot.x86-unix.tgz"
+                         "117dq1g387vcy1105dlpw770gzrg423jng89ynraiy6kiaalvbcq"))
+          `("boot.amd64-unix"
+            ,(smlnj-file version
+                         "boot.amd64-unix.tgz"
+                         "0cbaz8sxp30y2a4blm0pzk9aa1g9jj65d6d7kydvn0w7m22rjjff")))
+       ("config"
+        ,(smlnj-file version
+                     "config.tgz"
+                     "1sq60frd66kv807bahsyxda355qq67zvvb4sr1d72cv6capv5nsg"))
+       ("cm"
+        ,(smlnj-file version
+                     "cm.tgz"
+                     "087yy9k9vyyvhb24rni6js7s8iqbs8vjm9kjd9s311swjd66qhjc"))
+       ("compiler"
+        ,(smlnj-file version
+                     "compiler.tgz"
+                     "149vrmiba0dqggr15axqqzzfmd0kx7kchlr49gii6hw5dal6vqnn"))
+       ("runtime"
+        ,(smlnj-file version
+                     "runtime.tgz"
+                     "0c3q7qr2i3r91sx9p3z1ar7gvyk6qsm5gcbpbyj6l67qzn192yc3"))
+       ("system"
+        ,(smlnj-file version
+                     "system.tgz"
+                     "0aflnqh9zi9f8vs9pjlxysxplrwl98aiaxx4n41sba4m1r30n0za"))
+       ("MLRISC"
+        ,(smlnj-file version
+                     "MLRISC.tgz"
+                     "1kkga7r7qnw09s8yhqbhrq8gxf6c8x0fiwsbwkr8ls6xwv48sp74"))
+       ("smlnj-lib"
+        ,(smlnj-file version
+                     "smlnj-lib.tgz"
+                     "14fvqgn580k3ylvfhbkwv4cw87ipggq548r7jzp8fzfn2h6wdl01"))
+       ("old-basis"
+        ,(smlnj-file version
+                     "old-basis.tgz"
+                     "11j7a0sxyd1kwxjvxnarab5vc3x43gl90m07wxm37fd4jbfd1fn1"))
+       ("ckit"
+        ,(smlnj-file version
+                     "ckit.tgz"
+                     "1fbfjb2fhr6zkcz5jhqh3888zska6vffndyqwvk6rpbcl7an8niq"))
+       ("nlffi"
+        ,(smlnj-file version
+                     "nlffi.tgz"
+                     "0p5z77x295xfh71481kbd5pwis52kv03vxpad4pzkpk0l6smcgmj"))
+       ("cml"
+        ,(smlnj-file version
+                     "cml.tgz"
+                     "13xchaamwanxhwklsgkn1rmkr044h9qsj0rbr9c7pm903yivdwcn"))
+       ("eXene"
+        ,(smlnj-file version
+                     "eXene.tgz"
+                     "0p4snql0a1a952h98ma9ybmp7z1q305mz859b0mxhsg3jdrzl9wb"))
+       ("ml-lpt"
+        ,(smlnj-file version
+                     "ml-lpt.tgz"
+                     "0m00vglg95apdpzsy6qv88izj5ai4ibylxni01an75xpnxyy5qbg"))
+       ("ml-lex"
+        ,(smlnj-file version
+                     "ml-lex.tgz"
+                     "1pmi5qwjcf1h5nfi7d4vvm7cf90g6dlk2mqikj0y9c464ia1l2jc"))
+       ("ml-yacc"
+        ,(smlnj-file version
+                     "ml-yacc.tgz"
+                     "1zla2m1rn8r8k85ps9r2mw38xkh276j7aqv9f69v55102hchx13p"))
+       ("ml-burg"
+        ,(smlnj-file version
+                     "ml-burg.tgz"
+                     "14cqasasa273x09phykzjgk1wl6vrkdcwrdi39hnacp443cilz7x"))
+       ("pgraph"
+        ,(smlnj-file version
+                     "pgraph.tgz"
+                     "183fv61xlac5kpxn5m4iqgdvc2xb1chlxy5ip4i25x589bh4b5k9"))
+       ("trace-debug-profile"
+        ,(smlnj-file version
+                     "trace-debug-profile.tgz"
+                     "1k0w581kr43mpjzm7778xgx1rpz45aq1h80jdr6jls5vz3k8ia18"))
+       ("heap2asm"
+        ,(smlnj-file version
+                     "heap2asm.tgz"
+                     "0p9s42acngxh0401wm6fqs3im3rzzw9sh448x38zhdi47h8h1m9n"))
+       ("smlnj-c"
+        ,(smlnj-file version
+                     "smlnj-c.tgz"
+                     "054b1nhg5yk2jj01p11k08qzq8zc9jzg4mbgkcmcqaq7axp1rnxm"))
+       ("doc"
+        ,(smlnj-file version
+                     "doc.tgz"
+                     "0s35zrxdj76wzdz7c1i8ij00n6lfll4vjnypsy2j17q1maw7fq8j"))
+       ("asdl"
+        ,(smlnj-file version
+                     "asdl.tgz"
+                     "0mad2df5pmkdsb69gflxma6m6i3gla6hdmjjnkzk76pagpr8zb0m"))))
+    (home-page "http://www.smlnj.org")
+    (synopsis "Standard ML of New Jersey interactive compiler")
+    (description
+      "SML/NJ is an implementation of the Standard ML programming language.
+Standard ML has many features, including type safety, polymorphism, algebraic
+data types with pattern matching, higher-order functions, and a sophisticated
+module system.  It is especially well-suited for writing compilers and other
+language processors.")
+    (license (license:fsf-free
+               "https://www.smlnj.org/license.html"
+               "https://www.gnu.org/licenses/license-list#StandardMLofNJ"))))
diff --git a/gnu/packages/solidity.scm b/gnu/packages/solidity.scm
index 26167ee659..a5b5002ce8 100644
--- a/gnu/packages/solidity.scm
+++ b/gnu/packages/solidity.scm
@@ -76,9 +76,7 @@
                (invoke "./scripts/tests.sh")
                #t)))))
       (inputs
-       `(("boost-static" ,boost-static)
-         ("jsoncpp" ,jsoncpp)
-         ("z3" ,z3)))
+       (list boost-static jsoncpp z3))
       (native-inputs
        `(("python" ,python)
          ("tput" ,ncurses)
diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
index cbc46b32b4..e0927ca97c 100644
--- a/gnu/packages/speech.scm
+++ b/gnu/packages/speech.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
-;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2021 qblade <qblade@protonmail.com>
@@ -110,7 +110,7 @@
                          (find-files out "\\.a$"))
                #t))))))
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (inputs
      `(("alsa" ,alsa-lib)))
     (synopsis "Speech synthesis system")
@@ -165,9 +165,8 @@ building tools.")
                (("/bin/ln") "ln"))
              #t)))))
        (inputs
-        `(("portaudio" ,portaudio)
-          ("pulseaudio" ,pulseaudio)))
-       (native-inputs `(("unzip" ,unzip)))
+        (list portaudio pulseaudio))
+       (native-inputs (list unzip))
        (home-page "http://espeak.sourceforge.net/")
        (synopsis "Software speech synthesizer")
        (description "eSpeak is a software speech synthesizer for English and
@@ -200,13 +199,9 @@ based on human speech recordings.")
        ;; XXX: Some tests require an audio device.
        #:tests? #f))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("which" ,which)))
+     (list autoconf automake libtool which))
     (inputs
-     `(("libcap" ,libcap)
-       ("pcaudiolib" ,pcaudiolib)))
+     (list libcap pcaudiolib))
     (synopsis "Software speech synthesizer")
     (description
      "eSpeak NG is a software speech synthesizer for more than 100 languages.
@@ -228,7 +223,7 @@ synthesis, and the ability to use MBROLA voices.")
                 "09fv4fcpmw9g1j0zml0k5kk1lgjw2spr8gn51llbkaaph6v8d62a"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (synopsis "The MIT Language Modeling toolkit")
     (description "The MIT Language Modeling (MITLM) toolkit is a set of
 tools designed for the efficient estimation of statistical n-gram language
@@ -347,7 +342,8 @@ be used by the sighted.")
                             "/bin/rm")
              (string-append "ECHO_N="
                             (assoc-ref %build-inputs "coreutils")
-                            "/bin/printf \"%s\""))
+                            "/bin/printf \"%s\"")
+             "LINUXAUDIO=alsa")
        #:parallel-build? #f ; not supported
        #:modules ((guix build gnu-build-system)
                   (guix build utils)
@@ -366,6 +362,11 @@ be used by the sighted.")
                               "config/make_system.mak")
                  (("/bin/sh") (which "sh"))))
              #t))
+         (add-after 'unpack-and-patch-speech-tools 'set-fcommon
+           (lambda _
+             (substitute* "../speech_tools/config/rules/defaults.mak"
+               (("\\(CFLAGS\\)") "(CFLAGS) -fcommon")
+               (("\\(CXXFLAGS\\)") "(CXXFLAGS) -fcommon"))))
          (add-after 'unpack 'patch-/bin/sh
            (lambda _
              (substitute* '("config/test_make_rules"
@@ -505,7 +506,8 @@ be used by the sighted.")
          (add-before 'configure 'bootstrap
            (lambda _ (invoke "autoreconf" "-vif"))))))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list alsa-lib
+           ncurses))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -572,12 +574,9 @@ control.")
        (sha256
         (base32 "1v476kpw09ljj8mavasj4hya2w11jwlx7q22rh1lsn9jkkam5i2a"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("espeak-ng" ,espeak-ng)
-       ("libsndfile" ,libsndfile)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib espeak-ng libsndfile pulseaudio))
     (build-system gnu-build-system)
     (native-search-paths
      (list (search-path-specification
@@ -610,13 +609,13 @@ It can also speak English through eSpeak or Festival.")
     (arguments
      `(#:parallel-tests? #f))           ;tests fail otherwise
     (native-inputs
-     `(("bison" ,bison)
-       ("doxygen" ,doxygen)
-       ("perl" ,perl)                   ;for tests
-       ("python" ,python)
-       ("swig" ,swig)))
+     (list bison
+           doxygen
+           perl ;for tests
+           python
+           swig))
     (inputs
-     `(("pulseaudio" ,pulseaudio)))
+     (list pulseaudio))
     (home-page "https://cmusphinx.github.io/")
     (synopsis "Support library required by Pocketsphinx and Sphinxtrain")
     (description "This package contains the basic libraries shared by
@@ -639,15 +638,10 @@ manipulating acoustic feature and audio files.")
         (base32 "1n9yazzdgvpqgnfzsbl96ch9cirayh74jmpjf7svs4i7grabanzg"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("perl" ,perl)                   ;for tests
-       ("python" ,python)
-       ("swig" ,swig)))
+     (list pkg-config perl ;for tests
+           python swig))
     (inputs
-     `(("gstreamer" ,gstreamer)
-       ("libcap" ,libcap)
-       ("pulseaudio" ,pulseaudio)
-       ("sphinxbase" ,sphinxbase)))
+     (list gstreamer libcap pulseaudio sphinxbase))
     (home-page "https://cmusphinx.github.io/")
     (synopsis "Recognizer library written in C")
     (description "PocketSphinx is one of Carnegie Mellon University's
diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm
index e7407e1ba1..3ac5b5e22c 100644
--- a/gnu/packages/sphinx.scm
+++ b/gnu/packages/sphinx.scm
@@ -17,6 +17,7 @@
 ;;; Copyright © 2021 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2021 Hugo Lecomte <hugo.lecomte@inria.fr>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,6 +46,7 @@
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
@@ -56,51 +58,50 @@
 (define-public python-sphinx
   (package
     (name "python-sphinx")
-    (version "4.0.3")
+    (version "4.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Sphinx" version))
        (sha256
         (base32
-         "1f7vnk3g135b2zs9yq3kgrczxa91mhrlfw8243dpxsq8lbk5gwyz"))))
+         "19jq21py7m061v8142y2dbqrbv0adqcdjmharrdy34a432wqs1wl"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _
-             ;; Requires Internet access.
-             (delete-file "tests/test_build_linkcheck.py")
-             (substitute* "tests/test_build_latex.py"
-               (("@pytest.mark.sphinx\\('latex', testroot='images'\\)")
-                "@pytest.mark.skip()"))
-             (invoke "make" "test"))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; Requires Internet access.
+               (delete-file "tests/test_build_linkcheck.py")
+               (substitute* "tests/test_build_latex.py"
+                 (("@pytest.mark.sphinx\\('latex', testroot='images'\\)")
+                  "@pytest.mark.skip()"))
+               (invoke "make" "test")))))))
     (propagated-inputs
-     `(("python-babel" ,python-babel)
-       ("python-docutils" ,python-docutils)
-       ("python-jinja2" ,python-jinja2)
-       ("python-imagesize" ,python-imagesize)
-       ("python-packaging" ,python-packaging)
-       ("python-pygments" ,python-pygments)
-       ("python-requests" ,python-requests)
-       ("python-snowballstemmer" ,python-snowballstemmer)
-       ("python-sphinx-alabaster-theme"
-        ,python-sphinx-alabaster-theme)
-       ("python-sphinxcontrib-applehelp" ,python-sphinxcontrib-applehelp)
-       ("python-sphinxcontrib-devhelp" ,python-sphinxcontrib-devhelp)
-       ("python-sphinxcontrib-htmlhelp" ,python-sphinxcontrib-htmlhelp)
-       ("python-sphinxcontrib-jsmath" ,python-sphinxcontrib-jsmath)
-       ("python-sphinxcontrib-qthelp" ,python-sphinxcontrib-qthelp)
-       ("python-sphinxcontrib-serializinghtml"
-        ,python-sphinxcontrib-serializinghtml)))
+     (list python-babel
+           python-docutils
+           python-jinja2
+           python-imagesize
+           python-packaging
+           python-pygments
+           python-requests
+           python-snowballstemmer
+           python-sphinx-alabaster-theme
+           python-sphinxcontrib-applehelp
+           python-sphinxcontrib-devhelp
+           python-sphinxcontrib-htmlhelp
+           python-sphinxcontrib-jsmath
+           python-sphinxcontrib-qthelp
+           python-sphinxcontrib-serializinghtml))
     (native-inputs
-     `(("graphviz" ,graphviz)
-       ("imagemagick" ,imagemagick)                    ;for "convert"
-       ("python-html5lib" ,python-html5lib)
-       ("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)
-       ("python-pytest" ,python-pytest)))
+     (list graphviz
+           imagemagick ;for "convert"
+           python-html5lib
+           python-mock
+           python-nose
+           python-pytest))
     (home-page "https://www.sphinx-doc.org")
     (synopsis "Python documentation generator")
     (description "Sphinx is a tool that makes it easy to create documentation
@@ -132,27 +133,28 @@ sources.")
                            ;; <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 `(("python2-mock" ,python2-mock)
-                       ("python2-enum34" ,python2-enum34)
-                       ,@(package-native-inputs base)))
+      (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
-       `(("python2-pytz" ,python2-pytz)
-         ("python2-typing" ,python2-typing)
-         ("python2-imagesize" ,python2-imagesize)
-         ("python2-sphinx-alabaster-theme" ,python2-sphinx-alabaster-theme)
-         ("python2-babel" ,python2-babel)
-         ("python2-snowballstemmer" ,python2-snowballstemmer)
-         ("python2-docutils" ,python2-docutils-0.14)
-         ("python2-jinja2" ,python2-jinja2)
-         ("python2-packaging" ,python2-packaging)
-         ("python2-pygments" ,python2-pygments)
-         ("python2-requests" ,python2-requests)
-         ("python2-six" ,python2-six)
-         ("python2-sphinxcontrib-websupport" ,python2-sphinxcontrib-websupport))))))
+       (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)))))
 
 (define-public python-sphinxcontrib-applehelp
   (package
@@ -189,10 +191,7 @@ Apple help books.")
     (arguments
      `(#:tests? #f)) ; XXX: Check requires network access.
     (propagated-inputs
-     `(("python-flit" ,python-flit)
-       ("python-setuptools" ,python-setuptools)
-       ("python-sphinx" ,python-sphinx)
-       ("python-wheel" ,python-wheel)))
+     (list python-flit python-setuptools python-sphinx python-wheel))
     (home-page "https://github.com/choldgraf/sphinx-copybutton")
     (synopsis "Sphinx extension to add \"copy\" buttons to code blocks")
     (description
@@ -233,8 +232,7 @@ to code blocks.")
          "1x9af78vamjjcdrrhiah3wg613jv7gm8yh9vvqfrmf4vam6mimyg"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-docutils" ,python-docutils)
-       ("python-sphinx" ,python-sphinx)))
+     (list python-docutils python-sphinx))
     (home-page "https://github.com/jupyter/sphinxcontrib_github_alt")
     (synopsis "Link to GitHub pages from Sphinx docs")
     (description
@@ -245,13 +243,13 @@ users from Sphinx docs.")
 (define-public python-sphinxcontrib-htmlhelp
   (package
     (name "python-sphinxcontrib-htmlhelp")
-    (version "1.0.3")
+    (version "2.0.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "sphinxcontrib-htmlhelp" version))
               (sha256
                (base32
-                "16v5jdnibwrqjdr5aqchgyzpwy3rgamwhdf4kidv5nxj65zbpxg8"))))
+                "1ckd5xx4ngd6f4prxbc1bbvnafy1gg06j3bxyj5kk7v21lnvpy7m"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))                    ;XXX: circular dependency on Sphinx
@@ -295,7 +293,7 @@ math in HTML via JavaScript.")
     (arguments '(#:tests? #f)) ; No tests.
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     (list python-sphinx))
     (synopsis "News Feed extension for Sphinx")
     (description "Sphinxcontrib-newsfeed is an extension for adding a simple
 Blog, News or Announcements section to a Sphinx website.")
@@ -317,7 +315,7 @@ Blog, News or Announcements section to a Sphinx website.")
      ;; FIXME: Many tests are failing.
      '(#:tests? #f))
     (propagated-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     (list python-sphinx))
     (synopsis "Sphinx extension to include program output")
     (description "A Sphinx extension to literally insert the output of arbitrary
 commands into documents, helping you to keep your command examples up to date.")
@@ -350,13 +348,13 @@ documents.")
 (define-public python-sphinxcontrib-serializinghtml
   (package
     (name "python-sphinxcontrib-serializinghtml")
-    (version "1.1.4")
+    (version "1.1.5")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "sphinxcontrib-serializinghtml" version))
               (sha256
                (base32
-                "1g3pbx0g88zd9xzcrbaypa2k60axrh92vf5j76wsk0p9hv6fr87a"))))
+                "0lk91cl9bi4ynhz971zjs0bsr7jwxx8mx2f40psrx06zvzjnspxa"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))                    ;XXX: circular dependency on Sphinx
@@ -379,7 +377,7 @@ documents.")
                 "1hhaxmqc7wh8gnyw5jaqckliknvk0p21y12wk3bdmncgkaf9ar8f"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     (list python-sphinx))
     (home-page "https://github.com/missinglinkelectronics/sphinxcontrib-svg2pdfconverter")
     (synopsis "Sphinx SVG to PDF converter extension")
     (description "A Sphinx extension to convert SVG images to PDF in case the
@@ -405,10 +403,29 @@ builder does not support SVG images natively (e.g. LaTeX).")
     (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)))
+    (license license:bsd-3)
+    (properties `((python2-variant . ,(delay python2-sphinxcontrib-websupport))))))
 
+;; 1.1.2 is the last version to support Python 2.
 (define-public python2-sphinxcontrib-websupport
-  (package-with-python2 python-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
@@ -439,13 +456,13 @@ integrate Sphinx documents in web templates and to handle searches.")
                         ;; AssertionError.
                         " and not test_embed_links_and_styles"))))))))
     (native-inputs
-     `(("python-joblib" ,python-joblib)
-       ("python-matplotlib" ,python-matplotlib)
-       ("python-numpy" ,python-numpy)
-       ("python-pillow" ,python-pillow)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-sphinx" ,python-sphinx)))
+     (list python-joblib
+           python-matplotlib
+           python-numpy
+           python-pillow
+           python-pytest
+           python-pytest-cov
+           python-sphinx))
     (home-page "https://sphinx-gallery.github.io/stable/index.html")
     (synopsis "Generate an examples gallery automatically")
     (description
@@ -490,8 +507,7 @@ use in your Sphinx docs.")
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; No tests.
     (propagated-inputs
-     `(("python-sphinx" ,python-sphinx)
-       ("python-zope-interface" ,python-zope-interface)))
+     (list python-sphinx python-zope-interface))
     (synopsis "Auto-generate Sphinx API docs from Zope interfaces")
     (description "This package defines an extension for the Sphinx documentation
 system.  The extension allows generation of API documentation by
@@ -502,6 +518,36 @@ introspection of @code{zope.interface} instances in code.")
 (define-public python2-sphinx-repoze-autointerface
   (package-with-python2 python-sphinx-repoze-autointerface))
 
+(define-public python-sphinx-prompt
+  (package
+    (name "python-sphinx-prompt")
+    (version "1.5.0")
+    (source
+     (origin
+       (method git-fetch)               ; no source release in PyPI
+       (uri (git-reference
+             (url "https://github.com/sbrunner/sphinx-prompt")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0x9wmgf04rzivbzp7jv1b7fkhkpi02lpk5w1qf4i7bcgih00ym8a"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest")))))))
+    (native-inputs
+     (list python-pytest python-sphinx))
+    (home-page "https://github.com/sbrunner/sphinx-prompt")
+    (synopsis "Sphinx directive to add unselectable prompt")
+    (description
+     "This package provides a Sphinx directive to add unselectable prompt.")
+    (license license:bsd-3)))
+
 (define-public python-sphinx-alabaster-theme
   (package
     (name "python-sphinx-alabaster-theme")
@@ -514,7 +560,7 @@ introspection of @code{zope.interface} instances in code.")
                 "00nwwjj2d2ym4s2kk217x7jkx1hnczc3fvm8yxbqmsp6b0nxfqd6"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pygments" ,python-pygments)))
+     (list python-pygments))
     (home-page "https://alabaster.readthedocs.io/")
     (synopsis "Configurable sidebar-enabled Sphinx theme")
     (description "Alabaster is a visually (c)lean, responsive, configurable
@@ -536,11 +582,9 @@ theme for the Sphinx documentation system.  It's the default theme of Sphinx.")
         (base32 "05wc8f5hb3jsg2vh2jf7jsyan8d4i09ifrz2c8fp6f7x1zw9iav0"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     (list python-sphinx))
     (native-inputs
-     `(("python-commonmark" ,python-commonmark)
-       ("python-pytest" ,python-pytest)
-       ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)))
+     (list python-commonmark python-pytest python-sphinx-rtd-theme))
     (home-page "https://github.com/ribozz/sphinx-argparse")
     (synopsis "Sphinx extension for documenting argparse commands and options")
     (description
@@ -562,7 +606,7 @@ argparse commands and options")
     ;; FIXME: The 'pypi' release archive does not contain tests.
     (arguments '(#:tests? #f))
     (native-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     (list python-sphinx))
     (home-page "https://bitbucket.org/ecollins/cloud_sptheme")
     (synopsis "'Cloud' theme for Sphinx documenter")
     (description "This package contains the \"Cloud\" theme for Sphinx and some
@@ -585,7 +629,7 @@ related extensions.")
           "1rnkzrrsbnifn3vsb4pfaia3nlvgvw6ndpxp7lzjrh23qcwid34v"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     (list python-sphinx))
     (home-page "https://github.com/guzzle/guzzle_sphinx_theme")
     (synopsis "Sphinx theme used by Guzzle")
     (description "This package provides guzzle_sphinx_theme, a theme for the
@@ -610,7 +654,7 @@ and several other projects.")
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; No tests.
     (propagated-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     (list python-sphinx))
     (home-page "https://github.com/snide/sphinx_rtd_theme/")
     (synopsis "ReadTheDocs.org theme for Sphinx")
     (description "A theme for Sphinx used by ReadTheDocs.org.")
@@ -632,8 +676,7 @@ and several other projects.")
          "055h95fkdld7s49878fqjx1nri1drj1czc184vrb7i60mf2yqg9n"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-docutils" ,python-docutils)
-       ("python-sphinx" ,python-sphinx)))
+     (list python-docutils python-sphinx))
     (home-page "https://github.com/michaeljones/breathe")
     (synopsis "ReStructuredText and Sphinx bridge to Doxygen")
     (description "This package is an extension to reStructuredText and Sphinx
@@ -652,8 +695,7 @@ to be able to read and render the Doxygen xml output.")
         (base32 "1d1q0sanjp4nkfvhsxi75zf3xjyyi8nzxvl3v7l0jy9ld70nwnmj"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-sphinx" ,python-sphinx)
-       ("python-click" ,python-click)))
+     (list python-sphinx python-click))
     (home-page "https://github.com/sphinx-doc/sphinx-intl")
     (synopsis
      "Sphinx utility that makes it easy to translate and to apply translation")
@@ -662,6 +704,36 @@ to be able to read and render the Doxygen xml output.")
 translate and to apply translation to Sphinx generated document.")
     (license license:bsd-2)))
 
+(define-public python-sphinxext-opengraph
+  (package
+    (name "python-sphinxext-opengraph")
+    (version "0.4.2")
+    (source
+     (origin
+       (method git-fetch)               ; no tests in PyPI release
+       (uri (git-reference
+             (url "https://github.com/wpilibsuite/sphinxext-opengraph")
+             (commit (string-append "v"  version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0dka44wri7agcr1jd641hq6j7qlbycligp80ngf32l5asqz1mgzp"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest")))))))
+    (native-inputs
+     (list python-beautifulsoup4 python-pytest python-sphinx))
+    (home-page "https://github.com/wpilibsuite/sphinxext-opengraph")
+    (synopsis "Sphinx Extension to enable OpenGraph support")
+    (description
+     "This package provides a Sphinx Extension to generate OG metadata.")
+    (license license:bsd-3)))
+
 (define-public python-sphinx-autobuild
   (package
     (name "python-sphinx-autobuild")
@@ -691,15 +763,15 @@ translate and to apply translation to Sphinx generated document.")
                (invoke "pytest" "-v"))
              #t)))))
     (propagated-inputs
-     `(("python-argh" ,python-argh)
-       ("python-livereload" ,python-livereload)
-       ("python-pathtools" ,python-pathtools)
-       ("python-port-for" ,python-port-for)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-tornado" ,python-tornado)
-       ("python-watchdog" ,python-watchdog)))
+     (list python-argh
+           python-livereload
+           python-pathtools
+           python-port-for
+           python-pyyaml
+           python-tornado
+           python-watchdog))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://github.com/GaretJax/sphinx-autobuild")
     (synopsis "Rebuild Sphinx documentation when a change is detected")
     (description
@@ -721,14 +793,10 @@ enabled web server.")
          "086v9mg21pvfx0lfqjx2xf36hnzrsripfg345xi59f7xwb9scjr4"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-sphinx" ,python-sphinx)))
+     (list python-setuptools-scm python-sphinx))
     (native-inputs
-     `(("python-dataclasses" ,python-dataclasses)
-       ("python-pytest" ,python-pytest)
-       ("python-sphinx" ,python-sphinx)
-       ("python-sphobjinv" ,python-sphobjinv)
-       ("python-typing-extensions" ,python-typing-extensions)))
+     (list python-dataclasses python-pytest python-sphinx
+           python-sphobjinv python-typing-extensions))
     (home-page "https://pypi.org/project/sphinx-autodoc-typehints/")
     (synopsis "Type hints for the Sphinx autodoc extension")
     (description "This extension allows you to use Python 3 annotations for
@@ -748,12 +816,12 @@ documenting acceptable argument types and return value types of functions.")
             "0j56bxdj08vn3q1804qwb1ywhga1mdg1awgm7i64wfpfwi8df2zm"))))
     (build-system python-build-system)
     (propagated-inputs
-      `(("python-docutils" ,python-docutils)
-        ("python-jinja2" ,python-jinja2)
-        ("python-nbconvert" ,python-nbconvert)
-        ("python-nbformat" ,python-nbformat)
-        ("python-sphinx" ,python-sphinx)
-        ("python-traitlets" ,python-traitlets)))
+      (list python-docutils
+            python-jinja2
+            python-nbconvert
+            python-nbformat
+            python-sphinx
+            python-traitlets))
     (home-page "https://nbsphinx.readthedocs.io/")
     (synopsis "Jupyter Notebook Tools for Sphinx")
     (description "@code{python-nbsphinx} is a Sphinx extension that
@@ -777,11 +845,8 @@ executed during the Sphinx build process.")
          "126lgm54c94ay3fci512ap4l607gak90pbz0fk98syxvj5izrrzx"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-attrs" ,python-attrs)
-       ("python-certifi" ,python-certifi)
-       ("python-fuzzywuzzy" ,python-fuzzywuzzy)
-       ("python-jsonschema" ,python-jsonschema)
-       ("python-levenshtein" ,python-levenshtein)))
+     (list python-attrs python-certifi python-fuzzywuzzy
+           python-jsonschema python-levenshtein))
     (home-page "https://github.com/bskinn/sphobjinv")
     (synopsis "Sphinx cross-reference tool")
     (description "Sphinx objects.inv inspection/manipulation tool.")
@@ -800,12 +865,10 @@ executed during the Sphinx build process.")
          "1wma60787m2451nn4bc4jw7bzqksplplb84wqxm34iaw70499z1p"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-ipython" ,python-ipython)
-       ("python-ipywidgets" ,python-ipywidgets)
-       ("python-nbconvert" ,python-nbconvert)
-       ("python-nbformat" ,python-nbformat)))
+     (list python-ipython python-ipywidgets python-nbconvert
+           python-nbformat))
     (native-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     (list python-sphinx))
     (home-page "https://github.com/jupyter/jupyter-sphinx/")
     (synopsis "Jupyter Sphinx Extensions")
     (description
@@ -828,9 +891,9 @@ widgets, and supports thebelab for live code execution with minimal effort.")
          "06hzim0d3fd72kf30fyjbbm5n8ibyybic0kf62gm79qp50zjwr5w"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (native-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     (list python-sphinx))
     (home-page "https://github.com/sphinx-contrib/autoprogram")
     (synopsis "Documenting CLI programs")
     (description
@@ -853,23 +916,22 @@ automated way to document command-line programs.  It scans
          "055bh3hyh72pafiylvgpsjlk18wm15gg4azc5rjlsww5z475iq1j"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-beautifulsoup4" ,python-beautifulsoup4)))
+     (list python-beautifulsoup4))
     (native-inputs
-     `(("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-docutils" ,python-docutils)
-       ("python-jupyter-sphinx" ,python-jupyter-sphinx)
-       ("python-numpy" ,python-numpy)
-       ("python-numpydoc" ,python-numpydoc)
-       ("python-pandas" ,python-pandas)
-       ("python-plotly" ,python-plotly)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-regressions"
-        ,python-pytest-regressions)
-       ("python-recommonmark" ,python-recommonmark)
-       ("python-sphinx" ,python-sphinx)
-       ("python-xarray" ,python-xarray)
-       ("python-docutils" ,python-docutils)
-       ("python-sphinx" ,python-sphinx)))
+     (list python-beautifulsoup4
+           python-docutils
+           python-jupyter-sphinx
+           python-numpy
+           python-numpydoc
+           python-pandas
+           python-plotly
+           python-pytest
+           python-pytest-regressions
+           python-recommonmark
+           python-sphinx
+           python-xarray
+           python-docutils
+           python-sphinx))
     (home-page "https://github.com/pydata/pydata-sphinx-theme")
     (synopsis "Bootstrap-based Sphinx theme")
     (description
diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm
index b21394ea8a..b0bf2bc939 100644
--- a/gnu/packages/spice.scm
+++ b/gnu/packages/spice.scm
@@ -64,12 +64,9 @@
                 "19jnpzlanq0a1m5lmlcsp50wxf7icxvpvclx7hnf0zxw8azngqd3"))))
     (build-system gnu-build-system)
     (propagated-inputs
-     `(("libusb" ,libusb)))
+     (list libusb))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (synopsis "Tools for sending USB device traffic over a network")
     (description
      "Usbredir is a network protocol for sending USB device traffic over a
@@ -92,11 +89,9 @@ different (virtual) machine than the one to which the USB device is attached.")
                 "06kf0q4l52gzx5p63l8850hff8pmhp7xv1hk8zgx2apbw18y6jd5"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libepoxy" ,libepoxy)
-        ("mesa" ,mesa)
-        ("udev" ,eudev)))
+      (list libepoxy mesa eudev))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (synopsis "Virtual 3D GPU library")
     (description "A virtual 3D GPU library that enables a virtualized operating
 system to use the host GPU to accelerate 3D rendering.")
@@ -147,15 +142,14 @@ which allows users to view a desktop computing environment.")
                 "1drvj8y35gnxbnrxsipwi15yh0vs9ixzv4wslz6r3lra8w3bfa0z"))))
     (build-system gnu-build-system)
     (propagated-inputs
-      `(("gstreamer" ,gstreamer)
-        ("gst-plugins-base" ,gst-plugins-base)
-        ("gst-plugins-good" ,gst-plugins-good)
-        ("spice-protocol" ,spice-protocol)
-
-        ;; These are required by the pkg-config files.
-        ("gtk+" ,gtk+)
-        ("pixman" ,pixman)
-        ("openssl" ,openssl)))
+      (list gstreamer
+            gst-plugins-base
+            gst-plugins-good
+            spice-protocol
+            ;; These are required by the pkg-config files.
+            gtk+
+            pixman
+            openssl))
     (inputs
       `(("glib-networking" ,glib-networking)
         ("gobject-introspection" ,gobject-introspection)
@@ -227,26 +221,23 @@ which allows users to view a desktop computing environment.")
                 "1xd0xffw0g5vvwbq4ksmm3jjfq45f9dw20xpmi82g1fj9f7wy85k"))))
     (build-system gnu-build-system)
     (propagated-inputs
-      `(("openssl" ,openssl)
-        ("pixman" ,pixman)
-        ("spice-protocol" ,spice-protocol)))
+      (list openssl pixman spice-protocol))
     (inputs
-      `(("cyrus-sasl" ,cyrus-sasl)
-        ("glib" ,glib)
-        ("libjpeg-turbo" ,libjpeg-turbo)
-        ("libcacard" ,libcacard)        ; smartcard support
-        ("lz4" ,lz4)
-        ("opus" ,opus)
-        ("orc" ,orc)
-        ("zlib" ,zlib)))
+      (list cyrus-sasl
+            glib
+            libjpeg-turbo
+            libcacard ; smartcard support
+            lz4
+            opus
+            orc
+            zlib))
     (native-inputs
-      `(("pkg-config" ,pkg-config)
-        ("python" ,python)
-        ("spice-gtk" ,spice-gtk)
-
-        ;; These are needed for the server listen tests.
-        ("glib-networking" ,glib-networking)
-        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
+      (list pkg-config
+            python
+            spice-gtk
+            ;; These are needed for the server listen tests.
+            glib-networking
+            gsettings-desktop-schemas))
     (arguments
       `(#:configure-flags
         '("--enable-lz4"
@@ -281,7 +272,9 @@ Internet and from a wide variety of machine architectures.")
                 "spice-vdagent-" version ".tar.bz2"))
               (sha256
                (base32
-                "0n8jlc1pv6mkry161y656b1nk9hhhminjq6nymzmmyjl7k95ymzx"))))
+                "0n8jlc1pv6mkry161y656b1nk9hhhminjq6nymzmmyjl7k95ymzx"))
+              (patches
+               (search-patches "spice-vdagent-glib-2.68.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -313,21 +306,20 @@ Internet and from a wide variety of machine architectures.")
                (("ps -ef")
                 "ps -efww")))))))
     (inputs
-      `(("alsa-lib" ,alsa-lib)
-        ("dbus" ,dbus)
-        ("glib" ,glib)
-        ("gtk+" ,gtk+)
-        ("libdrm" ,libdrm)
-        ("libpciaccess" ,libpciaccess)
-        ("libx11" ,libx11)
-        ("libxext" ,libxext)
-        ("libxfixes" ,libxfixes)
-        ("libxinerama" ,libxinerama)
-        ("libxrandr" ,libxrandr)
-        ("spice-protocol" ,spice-protocol)))
+      (list alsa-lib
+            dbus
+            glib
+            gtk+
+            libdrm
+            libpciaccess
+            libx11
+            libxext
+            libxfixes
+            libxinerama
+            libxrandr
+            spice-protocol))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("procps" ,procps)))             ;tests use 'ps'
+     (list pkg-config procps))             ;tests use 'ps'
     (synopsis "Spice agent for Linux")
     (description "Spice-vdagent enables sharing the clipboard and guest display
 resolution scaling on graphical console window resize.")
@@ -337,29 +329,28 @@ resolution scaling on graphical console window resize.")
 (define-public libcacard
   (package
     (name "libcacard")
-    (version "2.8.0")
+    (version "2.8.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://gitlab.freedesktop.org/spice/libcacard/uploads/"
-                    "9d8f24b131bcbbd7846727ea92952cb5"
+                    "13b249e695a0d9aa7cb501b1a85ebab1"
                     "/libcacard-" version ".tar.xz"))
-              (patches (search-patches "libcacard-unknown-variable.patch"))
               (sha256
                (base32
-                "0azj3rqr2smg0lai24xrn3zr628xmjfrzcggay877zrr64ybj1c0"))))
+                "1rrjlclm6ad63gah1fa4yfwrz4z6vgq2yrybbvzvvdbxrgl4vgzv"))))
     (build-system meson-build-system)
     (propagated-inputs
-     `(("glib" ,glib)                   ; Requires: in the pkg-config file
-       ("nss" ,nss)                     ; Requires.private: in the pkg-config
-       ("pcsc-lite" ,pcsc-lite)))       ; file
+     (list glib ; Requires: in the pkg-config file
+           nss ; Requires.private: in the pkg-config
+           pcsc-lite))       ; file
     (native-inputs
-     `(("openssl" ,openssl)
-       ("nss" ,nss "bin")
-       ("opensc" ,opensc)
-       ("gnutls" ,gnutls)
-       ("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list openssl
+           `(,nss "bin")
+           opensc
+           gnutls
+           pkg-config
+           which))
     (synopsis "Emulate and share smart cards with virtual machines")
     (description
      "The @acronym{CAC,Common Access Card} library can be used to emulate and
@@ -381,11 +372,7 @@ share smart cards from client system to local or remote virtual machines.")
                 "00y9vi69sja4pkrfnvrkwsscm41bqrjzvp8aijb20pvg6ymczhj7"))))
     (build-system gnu-build-system)
     (inputs
-      `(("gtk+" ,gtk+)
-        ("gtk-vnc" ,gtk-vnc)
-        ("libcap" ,libcap)
-        ("libxml2" ,libxml2)
-        ("spice-gtk" ,spice-gtk)))
+      (list gtk+ gtk-vnc libcap libxml2 spice-gtk))
     (native-inputs
       `(("glib:bin" ,glib "bin")
         ("intltool" ,intltool)
diff --git a/gnu/packages/spreadsheet.scm b/gnu/packages/spreadsheet.scm
new file mode 100644
index 0000000000..0016f38aff
--- /dev/null
+++ b/gnu/packages/spreadsheet.scm
@@ -0,0 +1,119 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020, 2021 Ryan Prior <rprior@protonmail.com>
+;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
+;;; Copyright © 2021 Jorge Gomez <jgart@dismail.de>
+;;;
+;;; 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 spreadsheet)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python)
+  #:use-module (guix licenses)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages maths)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages time)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages statistics)
+  #:use-module (gnu packages xml))
+
+(define-public sc-im
+    (package
+      (name "sc-im")
+      (version "0.8.2")
+      (home-page "https://github.com/andmarti1424/sc-im")
+      (source (origin
+                (method git-fetch)
+                (uri
+                  (git-reference
+                    (url home-page)
+                    (commit (string-append "v" version))))
+                (file-name (git-file-name name version))
+                (sha256
+                  (base32
+                    "1nrjnw8sg75i0hkcbvjv7gydjddxjm27d5m1qczpg29fk9991q8z"))))
+      (build-system gnu-build-system)
+      (arguments
+        ;; There are no tests at the moment.
+        ;; https://github.com/andmarti1424/sc-im/issues/537
+        ;; https://github.com/andmarti1424/sc-im/pull/385
+        `(#:tests? #f
+          #:make-flags (list "-C" "src"
+                          (string-append "CC=" ,(cc-for-target))
+                          (string-append "prefix=" %output))
+          #:phases
+            (modify-phases
+               %standard-phases
+                 (delete 'configure))))
+      (inputs
+        (list gnuplot
+              libxls
+              libxlsxwriter
+              libxml2
+              libzip
+              ncurses))
+      (native-inputs
+        (list pkg-config which bison))
+      (synopsis "Spreadsheet program with vim-like keybindings")
+      (description
+ "@code{sc-im} is a highly configurable spreadsheet program
+ providing a vim-like experience.  @code{sc-im} supports @{gnuplot} interaction,
+ functions for sorting and filtering, 256 color support, and much more.")
+      (license bsd-4)))
+
+(define-public visidata
+  (package
+    (name "visidata")
+    (version "2.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "visidata" version))
+       (sha256
+        (base32
+         "1jfhrk0xvzzqfzs0khbig2dc94718qki8zys1f1a9553vjncvmi6"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests? (invoke "pytest"))
+             #t)))))
+    (inputs
+     (list python-dateutil
+           python-requests
+           python-lxml
+           python-openpyxl
+           python-xlrd))
+    (native-inputs
+     (list python-pytest))
+    (synopsis "Terminal spreadsheet multitool for discovering and arranging data")
+    (description
+     "VisiData is an interactive multitool for tabular data.  It combines the
+clarity of a spreadsheet, the efficiency of the terminal, and the power of
+Python, into a lightweight utility which can handle millions of rows.")
+    (home-page "https://www.visidata.org/")
+    (license gpl3)))
diff --git a/gnu/packages/sqlite.scm b/gnu/packages/sqlite.scm
index 934c7c6918..c894f563a8 100644
--- a/gnu/packages/sqlite.scm
+++ b/gnu/packages/sqlite.scm
@@ -70,7 +70,7 @@
              (base32
               "1qxwkfvd185dfcqbakrzikrsw6ffr5jp1gl3dch9dsdyjvmw745x"))))
    (build-system gnu-build-system)
-   (inputs `(("readline" ,readline)))
+   (inputs (list readline))
    (outputs '("out" "static"))
    (arguments
     `(#:configure-flags
@@ -109,18 +109,14 @@ widely deployed SQL database engine in the world.  The source code for SQLite
 is in the public domain.")
    (license license:public-domain)))
 
-(define-public sqlite-3.33
+;; Newer version required for e.g. fossil.
+(define-public sqlite-next
   (package
     (inherit sqlite)
-    (version "3.33.0")
+    (version "3.37.0")
     (source (origin
               (method url-fetch)
-              (uri (sqlite-uri version 2020))
+              (uri (sqlite-uri version 2021))
               (sha256
                (base32
-                "05dvdfaxd552gj5p7k0i72sfam7lykaw1g2pfn52jnppqx42qshh"))))))
-
-;; Column metadata support was added to the regular 'sqlite' package with
-;; commit fad5b1a6d8d9c36bea5785ae4fbc1beb37e644d7.
-(define-public sqlite-with-column-metadata
-  (deprecated-package "sqlite-with-column-metadata" sqlite))
+                "1xvrfh2r5x5pljlvakym3zrhml2dvsr8dd8xsb3nzcylsi8lc6kk"))))))
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 028c3cf7e5..ae64e99948 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
@@ -63,6 +63,7 @@
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages security-token)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages xorg)
@@ -90,7 +91,7 @@
                (base32
                 "1rpysj65j9ls30bf2c5k5hykzzjfknrihs58imp178bx1wqzw4jl"))))
     (inputs
-     `(("readline" ,readline)))
+     (list readline))
     (arguments
      `(#:make-flags
        (list ,(string-append "CC=" (cc-for-target))
@@ -143,9 +144,7 @@ file names.
 
        ;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite.
        #:tests? #f))
-    (inputs `(("zlib" ,zlib)
-              ("libgcrypt" ,libgcrypt)
-              ("mit-krb5" ,mit-krb5)))
+    (inputs (list zlib libgcrypt mit-krb5))
     (synopsis "SSH client library")
     (description
      "libssh is a C library implementing the SSHv2 and SSHv1 protocol for client
@@ -171,8 +170,7 @@ applications.")
    (build-system gnu-build-system)
    ;; The installed libssh2.pc file does not include paths to libgcrypt and
    ;; zlib libraries, so we need to propagate the inputs.
-   (propagated-inputs `(("libgcrypt" ,libgcrypt)
-                        ("zlib" ,zlib)))
+   (propagated-inputs (list libgcrypt zlib))
    (arguments `(#:configure-flags `("--with-libgcrypt")))
    (synopsis "Client-side C library implementing the SSH2 protocol")
    (description
@@ -186,7 +184,7 @@ a server that supports the SSH-2 protocol.")
 (define-public openssh
   (package
    (name "openssh")
-   (version "8.7p1")
+   (version "8.8p1")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://openbsd/OpenSSH/portable/"
@@ -194,15 +192,15 @@ a server that supports the SSH-2 protocol.")
              (patches (search-patches "openssh-hurd.patch"))
              (sha256
               (base32
-               "090yxpi03pxxzb4ppx8g8hdpw7c4nf8p0avr6c7ybsaana5lp8vw"))))
+               "1s8z6f7mi1pwsl79cqai8cr350m5lf2ifcxff57wx6mvm478k425"))))
    (build-system gnu-build-system)
-   (native-inputs `(("groff" ,groff)
-                    ("pkg-config" ,pkg-config)))
+   (native-inputs (list groff pkg-config))
    (inputs `(("libedit" ,libedit)
              ("openssl" ,openssl)
              ,@(if (hurd-target?)
-                 '()
-                 `(("pam" ,linux-pam)))
+                   '()
+                   `(("pam" ,linux-pam)
+                     ("libfido2" ,libfido2)))     ;fails to build on GNU/Hurd
              ("mit-krb5" ,mit-krb5)
              ("zlib" ,zlib)
              ("xauth" ,xauth)))        ; for 'ssh -X' and 'ssh -Y'
@@ -227,7 +225,13 @@ a server that supports the SSH-2 protocol.")
                           ;; Enable PAM support in sshd.
                           ,,@(if (hurd-target?)
                                '()
-                               '("--with-pam"))
+                               '("--with-pam"
+
+                                 ;; Support creation and use of ecdsa-sk,
+                                 ;; ed25519-sk keys.
+                                 "--with-security-key-builtin"))
+
+
 
                           ;; "make install" runs "install -s" by default,
                           ;; which doesn't work for cross-compiled binaries
@@ -244,8 +248,7 @@ a server that supports the SSH-2 protocol.")
            (let ((out (assoc-ref outputs "out")))
              (substitute* "Makefile"
                (("PRIVSEP_PATH=/var/empty")
-                (string-append "PRIVSEP_PATH=" out "/var/empty")))
-             #t)))
+                (string-append "PRIVSEP_PATH=" out "/var/empty"))))))
         (add-before 'check 'patch-tests
          (lambda _
            (substitute* "regress/test-exec.sh"
@@ -255,21 +258,20 @@ a server that supports the SSH-2 protocol.")
            (substitute* (list "Makefile"
                               "regress/Makefile")
              (("^(tests:.*) t-exec(.*)" all pre post)
-              (string-append pre post)))
-           #t))
+              (string-append pre post)))))
         (replace 'install
-         (lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
-           ;; Install without host keys and system configuration files.
-           (apply invoke "make" "install-nosysconf" make-flags)
-           (install-file "contrib/ssh-copy-id"
-                         (string-append (assoc-ref outputs "out")
-                                        "/bin/"))
-           (chmod (string-append (assoc-ref outputs "out")
-                                 "/bin/ssh-copy-id") #o555)
-           (install-file "contrib/ssh-copy-id.1"
-                         (string-append (assoc-ref outputs "out")
-                                        "/share/man/man1/"))
-           #t)))))
+          (lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
+            (let ((out (assoc-ref outputs "out")))
+              ;; Install without host keys and system configuration files.
+              ;; This will install /var/empty to the store, which is needed
+              ;; by the system openssh-service-type.
+              (apply invoke "make" "install-nosysconf" make-flags)
+              (with-directory-excursion "contrib"
+                (chmod "ssh-copy-id" #o555)
+                (install-file "ssh-copy-id"
+                              (string-append out "/bin/"))
+                (install-file "ssh-copy-id.1"
+                              (string-append out "/share/man/man1/")))))))))
    (synopsis "Client and server for the secure shell (ssh) protocol")
    (description
     "The SSH2 protocol implemented in OpenSSH is standardised by the
@@ -363,16 +365,14 @@ Additionally, various channel-specific options can be negotiated.")
                                      (string-append examples "/sssh.scm"))
                         (delete-file-recursively bin)
                         #t))))))
-    (native-inputs `(("autoconf" ,autoconf)
-                     ("automake" ,automake)
-                     ("libtool" ,libtool)
-                     ("texinfo" ,texinfo)
-                     ("pkg-config" ,pkg-config)
-                     ("which" ,which)
-                     ("guile" ,guile-3.0))) ;needed when cross-compiling.
-    (inputs `(("guile" ,guile-3.0)
-              ("libssh" ,libssh)
-              ("libgcrypt" ,libgcrypt)))
+    (native-inputs (list autoconf
+                         automake
+                         libtool
+                         texinfo
+                         pkg-config
+                         which
+                         guile-3.0)) ;needed when cross-compiling.
+    (inputs (list guile-3.0 libssh libgcrypt))
     (synopsis "Guile bindings to libssh")
     (description
      "Guile-SSH is a library that provides access to the SSH protocol for
@@ -388,10 +388,12 @@ libssh library.")
               (inherit (package-source guile-ssh))
               (patches (search-patches "guile-ssh-fix-test-suite.patch"))))
     (native-inputs
-     `(("guile" ,guile-2.0) ;needed when cross-compiling.
-       ,@(alist-delete "guile" (package-native-inputs guile-ssh))))
-    (inputs `(("guile" ,guile-2.0)
-              ,@(alist-delete "guile" (package-inputs guile-ssh))))))
+     (modify-inputs (package-native-inputs guile-ssh)
+       (delete "guile")
+       (prepend guile-2.0 ;needed when cross-compiling.
+                )))
+    (inputs (modify-inputs (package-inputs guile-ssh)
+              (replace "guile" guile-2.0)))))
 
 (define-public guile2.2-ssh
   (package
@@ -401,13 +403,12 @@ libssh library.")
               (inherit (package-source guile-ssh))
               (patches (search-patches "guile-ssh-fix-test-suite.patch"))))
     (native-inputs
-     `(("guile" ,guile-2.2) ;needed when cross-compiling.
-       ,@(alist-delete "guile" (package-native-inputs guile-ssh))))
-    (inputs `(("guile" ,guile-2.2)
-              ,@(alist-delete "guile" (package-inputs guile-ssh))))))
-
-(define-public guile3.0-ssh
-  (deprecated-package "guile3.0-ssh" guile-ssh))
+     (modify-inputs (package-native-inputs guile-ssh)
+       (delete "guile")
+       (prepend guile-2.2 ;needed when cross-compiling.
+                )))
+    (inputs (modify-inputs (package-inputs guile-ssh)
+              (replace "guile" guile-2.2)))))
 
 (define-public corkscrew
   ;; The last 2.0 release hails from 2009.  Use a fork (submitted upstream as
@@ -449,11 +450,9 @@ libssh library.")
                  (install-file "README.md" doc)
                  #t))))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)))
+       (list autoconf automake pkg-config))
       (inputs
-       `(("openssl" ,openssl)))
+       (list openssl))
       (home-page "https://github.com/patpadgett/corkscrew")
       (synopsis "SSH tunneling through HTTP(S) proxies")
       (description
@@ -491,7 +490,7 @@ with optional @acronym{TLS, Transport-Level Security} to protect credentials.")
                (wrap-program (string-append bin "/mosh")
                              `("PATH" ":" prefix (,bin)))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("openssl" ,openssl)
        ("perl" ,perl)
@@ -534,9 +533,7 @@ responsive, especially over Wi-Fi, cellular, and long-distance links.")
      `(#:configure-flags '("--disable-bundled-libtom")
        #:tests? #f))    ; there is no "make check" or anything similar
     (inputs
-     `(("libtomcrypt" ,libtomcrypt)
-       ("libtommath" ,libtommath)
-       ("zlib" ,zlib)))
+     (list libtomcrypt libtommath zlib))
     (synopsis "Small SSH server and client")
     (description "Dropbear is a relatively small SSH server and
 client.  It runs on a variety of POSIX-based platforms.  Dropbear is
@@ -600,28 +597,25 @@ basis for almost any application.")
               (patches (search-patches "lsh-fix-x11-forwarding.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("m4" ,m4)
-       ("guile" ,guile-2.0)
-       ("gperf" ,gperf)
-       ("psmisc" ,psmisc)))                       ; for `killall'
+     (list autoconf
+           automake
+           m4
+           guile-2.0
+           gperf
+           psmisc))                       ; for `killall'
     (inputs
-     `(("nettle" ,nettle-2)
-       ("linux-pam" ,linux-pam)
-
-       ;; 'rl.c' uses the 'CPPFunction' type, which is no longer in
-       ;; Readline 6.3.
-       ("readline" ,readline-6.2)
-
-       ("liboop" ,liboop)
-       ("zlib" ,zlib)
-       ("gmp" ,gmp)
-
-       ;; The server (lshd) invokes xauth when X11 forwarding is requested.
-       ;; This adds 24 MiB (or 27%) to the closure of lsh.
-       ("xauth" ,xauth)
-       ("libxau" ,libxau)))             ;also required for x11-forwarding
+     (list nettle-2
+           linux-pam
+           ;; 'rl.c' uses the 'CPPFunction' type, which is no longer in
+           ;; Readline 6.3.
+           readline-6.2
+           liboop
+           zlib
+           gmp
+           ;; The server (lshd) invokes xauth when X11 forwarding is requested.
+           ;; This adds 24 MiB (or 27%) to the closure of lsh.
+           xauth
+           libxau))             ;also required for x11-forwarding
     (arguments
      '(;; Skip the `configure' test that checks whether /dev/ptmx &
        ;; co. work as expected, because it relies on impurities (for
@@ -726,7 +720,7 @@ authentication}.")
         (base32 "0xqjw8df68f4kzkns5gcah61s5wk0m44qdk2z1d6388w6viwxhsz"))))
     (build-system gnu-build-system)
     (arguments `(#:tests? #f)) ; There is no "make check" or anything similar
-    (inputs `(("openssh" ,openssh)))
+    (inputs (list openssh))
     (synopsis "Automatically restart SSH sessions and tunnels")
     (description "autossh is a program to start a copy of @command{ssh} and
 monitor it, restarting it as necessary should it die or stop passing traffic.")
@@ -781,11 +775,9 @@ monitor it, restarting it as necessary should it die or stop passing traffic.")
                (("which") (which "which")))
              #t)))))
     (inputs
-     `(("openssh" ,openssh)
-       ("mit-krb5" ,mit-krb5)
-       ("perl" ,perl)))
+     (list openssh mit-krb5 perl))
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (home-page "https://github.com/chaos/pdsh")
     (synopsis "Parallel distributed shell")
     (description "Pdsh is a an efficient, multithreaded remote shell client
@@ -807,13 +799,10 @@ shell services and remote host selection.")
          "0lnhh2h1mj79j66ni883s9f3xldnbjb10vh80g24b7m003mm524c"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-cryptography" ,python-cryptography)
-       ("python-pyopenssl" ,python-pyopenssl)
-       ("python-gssapi" ,python-gssapi)
-       ("python-bcrypt" ,python-bcrypt)))
+     (list python-cryptography python-pyopenssl python-gssapi
+           python-bcrypt))
     (native-inputs
-     `(("openssh" ,openssh)
-       ("openssl" ,openssl)))
+     (list openssh openssl))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -836,18 +825,19 @@ framework.")
 (define-public clustershell
   (package
     (name "clustershell")
-    (version "1.8.3")
+    (version "1.8.4")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/cea-hpc/clustershell/releases"
-                           "/download/v" version
-                           "/ClusterShell-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cea-hpc/clustershell")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1qdcgh733szwj9r1gambrgfkizvbjci0bnnkds9a8mnyb3sasnan"))))
+        (base32 "11b87vyamcw4rvgxz74jxwkr9ly0h9ldp2wqsi5wc19p0r06la5j"))))
     (build-system python-build-system)
-    (inputs `(("openssh" ,openssh)))
-    (propagated-inputs `(("python-pyyaml" ,python-pyyaml)))
+    (inputs (list openssh))
+    (propagated-inputs (list python-pyyaml))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-before 'build 'record-openssh-file-name
@@ -856,8 +846,7 @@ framework.")
                         (substitute* "lib/ClusterShell/Worker/Ssh.py"
                           (("info\\(\"ssh_path\"\\) or \"ssh\"")
                            (string-append "info(\"ssh_path\") or \""
-                                          ssh "/bin/ssh\"")))
-                        #t))))))
+                                          ssh "/bin/ssh\"")))))))))
     (home-page "https://cea-hpc.github.io/clustershell/")
     (synopsis "Scalable event-driven Python framework for cluster administration")
     (description
@@ -920,8 +909,7 @@ clients at a time.")
                 "1bcy9flrzbvams5p77swwiygv54ac58ia7hpic1bvg30b3wpvv7b"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-paramiko" ,python-paramiko)
-       ("python-tornado" ,python-tornado)))
+     (list python-paramiko python-tornado))
     (home-page "https://webssh.huashengdun.org/")
     (synopsis "Web application to be used as an SSH client")
     (description "This package provides a web application to be used as an SSH
diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm
index b2b5da96f8..9d254d4b3c 100644
--- a/gnu/packages/sssd.scm
+++ b/gnu/packages/sssd.scm
@@ -2,6 +2,8 @@
 ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2021 Timotej Lazar <timotej.lazar@araneo.si>
+;;; Copyright © 2021 Remco van 't Veer <remco@remworks.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,12 +24,14 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages)
   #:use-module (gnu packages adns)
   #:use-module (gnu packages augeas)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages check)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
@@ -50,6 +54,62 @@
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public adcli
+  (package
+    (name "adcli")
+    (version "0.9.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.freedesktop.org/realmd/adcli.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1mwzd5vakdsssdvs6vljqpp8pw8i97n5lhxvmn9dn9720am7hfv7"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       ;; The net tool is used to update the stored machine key for samba.
+       (list (string-append "--with-samba-data-tool="
+                            (assoc-ref %build-inputs "samba") "/bin/net"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'use-local-docbook
+           ;; Patch Makefile and docs to use local docbook resources.
+           (lambda _
+             (let* ((docbook-xml (assoc-ref %build-inputs "docbook-xml"))
+                    (docbook-xsl (assoc-ref %build-inputs "docbook-xsl"))
+                    (xsldir (string-append docbook-xsl "/xml/xsl/docbook-xsl-"
+                                           ,(package-version docbook-xsl))))
+                    (with-directory-excursion "doc"
+                      (substitute*
+                          '("Makefile.am" "adcli.xml" "adcli-devel.xml" "adcli-docs.xml")
+                        (("http://docbook.sourceforge.net/release/xsl/current(/[^\"]*)" _ path)
+                         (string-append xsldir path))
+                        (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
+                         (string-append docbook-xml "/xml/dtd/docbook/docbookx.dtd")))
+                      (substitute* "Makefile.am"
+                        (("\\$\\(XMLTO\\)" xmlto)
+                         (string-append xmlto " --searchpath " xsldir "/html"))))))))))
+    (native-inputs
+     (list autoconf
+           automake
+           docbook-xml
+           docbook-xsl
+           libtool
+           libxslt
+           util-linux ; For `rev` command used in tests.
+           xmlto))
+    (inputs
+     (list cyrus-sasl mit-krb5 samba openldap))
+    (home-page "https://gitlab.freedesktop.org/realmd/adcli/")
+    (synopsis "Helper library and tools for Active Directory client operations")
+    (description "@command{adcli} is a command‐line tool to join a computer to
+an Active Directory domain.  It can also update the machine password and
+manage user, group and computer accounts for a domain.")
+    (license license:lgpl2.1+)))
+
 (define-public ding-libs
   (package
     (name "ding-libs")
@@ -91,7 +151,8 @@ fundamental object types for C.")
                (base32
                 "1h6hwibaf3xa2w6qpzjiiywmfj6zkgbz4r2isf3gd0xm6vq7n6if"))
               (patches (search-patches "sssd-fix-samba.patch"
-                                       "sssd-system-directories.patch"))))
+                                       "sssd-system-directories.patch"
+                                       "sssd-collision-with-external-nss-symbol.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -137,40 +198,40 @@ fundamental object types for C.")
                (("tcase_add_test\\(tc_utils, resp_str_to_array_test\\);") ""))
              #t)))))
     (inputs
-     `(("augeas" ,augeas)
-       ("bind" ,isc-bind "utils")
-       ("c-ares" ,c-ares)
-       ("curl" ,curl)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("dbus" ,dbus)
-       ("ding-libs" ,ding-libs)
-       ("glib" ,glib)
-       ("gnutls" ,gnutls)
-       ("http-parser" ,http-parser)
-       ("jansson" ,jansson)
-       ("ldb" ,ldb)
-       ("libselinux" ,libselinux)
-       ("libsemanage" ,libsemanage)
-       ("libunistring" ,libunistring)
-       ("linux-pam" ,linux-pam)
-       ("mit-krb5" ,mit-krb5)
-       ("nss" ,nss)
-       ("openldap" ,openldap)
-       ("openssl" ,openssl)
-       ("pcre" ,pcre)
-       ("popt" ,popt)
-       ("samba" ,samba)
-       ("talloc" ,talloc)
-       ("tdb" ,tdb)
-       ("tevent" ,tevent)))
+     (list augeas
+           `(,isc-bind "utils")
+           c-ares
+           curl
+           cyrus-sasl
+           dbus
+           ding-libs
+           glib
+           gnutls
+           http-parser
+           jansson
+           ldb
+           libselinux
+           libsemanage
+           libunistring
+           linux-pam
+           mit-krb5
+           nss
+           openldap
+           openssl
+           pcre
+           popt
+           samba
+           talloc
+           tdb
+           tevent))
     (native-inputs
-     `(("check" ,check-0.14)
-       ("docbook-xsl" ,docbook-xsl)
-       ("docbook-xml" ,docbook-xml)
-       ("libxml2" ,libxml2)             ; for xmllint
-       ("libxslt" ,libxslt)
-       ("pkg-config" ,pkg-config)
-       ("util-linux" ,util-linux "lib"))) ;for uuid.h, reqired for KCM
+     (list check-0.14
+           docbook-xsl
+           docbook-xml
+           libxml2 ; for xmllint
+           libxslt
+           pkg-config
+           `(,util-linux "lib"))) ;for uuid.h, reqired for KCM
     (home-page "https://pagure.io/SSSD/sssd/")
     (synopsis "System security services daemon")
     (description "SSSD is a system daemon.  Its primary function is to provide
diff --git a/gnu/packages/stalonetray.scm b/gnu/packages/stalonetray.scm
index c803fb06f6..57cdc5e2d8 100644
--- a/gnu/packages/stalonetray.scm
+++ b/gnu/packages/stalonetray.scm
@@ -37,7 +37,7 @@
        (sha256
         (base32
          "0k7xnpdb6dvx25d67v0crlr32cdnzykdsi9j889njiididc8lm1n"))))
-    (inputs `(("libx11" ,libx11)))
+    (inputs (list libx11))
     (build-system gnu-build-system)
     (home-page "http://stalonetray.sourceforge.net")
     (synopsis "Standalone freedesktop.org and KDE systray implementation")
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 47276cb95e..c2578c35a9 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
 ;;; Copyright © 2021 Lars-Dominik Braun <lars@6xq.net>
+;;; Copyright © 2021 Frank Pursel <frank.pursel@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -63,10 +64,12 @@
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages java)
+  #:use-module (gnu packages javascript)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages machine-learning)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -74,6 +77,7 @@
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages shells)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages tcl)
@@ -82,11 +86,13 @@
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages uglifyjs)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
-  #:use-module (srfi srfi-1))
+  #:use-module (srfi srfi-1)
+  #:use-module (ice-9 match))
 
 
 (define-public pspp
@@ -103,23 +109,23 @@
         "0lqrash677b09zxdlxp89z6k02y4i23mbqg83956dwl69wc53dan"))))
     (build-system gnu-build-system)
     (inputs
-     `(("cairo" ,cairo)
-       ("gettext" ,gettext-minimal)
-       ("gsl" ,gsl)
-       ("libxml2" ,libxml2)
-       ("pango" ,pango)
-       ("readline" ,readline)
-       ("gtk" ,gtk+)
-       ("gtksourceview" ,gtksourceview-3)
-       ("spread-sheet-widget" ,spread-sheet-widget)
-       ("zlib" ,zlib)))
+     (list cairo
+           gettext-minimal
+           gsl
+           libxml2
+           pango
+           readline
+           gtk+
+           gtksourceview-3
+           spread-sheet-widget
+           zlib))
     (native-inputs
-     `(("autoconf" ,autoconf)           ;for tests
-       ("glib" ,glib "bin")             ;for glib-genmarshal
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-2)             ;for tests
-       ("texinfo" ,texinfo)))
+     (list autoconf ;for tests
+           `(,glib "bin") ;for glib-genmarshal
+           perl
+           pkg-config
+           python-2 ;for tests
+           texinfo))
     (home-page "https://www.gnu.org/software/pspp/")
     (synopsis "Statistical analysis")
     (description
@@ -146,8 +152,7 @@ be output in text, PostScript, PDF or HTML.")
     (build-system gnu-build-system)
     (home-page "http://mcmc-jags.sourceforge.net/")
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("lapack" ,lapack)))
+     (list gfortran lapack))
     (synopsis "Gibbs sampler")
     (description "JAGS is Just Another Gibbs Sampler.  It is a program for
 analysis of Bayesian hierarchical models using Markov Chain Monte Carlo (MCMC)
@@ -188,7 +193,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.1")
+    (version "4.1.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cran/src/base/R-"
@@ -196,7 +201,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0r6kpnxjbvb7gdfg4m1z8zc6xd225vw81wrnf05ps9ajawk06pji"))))
+                "1brqmc7mmb0z94kcs4crgl6v9a6sxhm9fm3y177d81vjkxg24di0"))))
     (build-system gnu-build-system)
     (arguments
      `(#:disallowed-references (,tzdata-for-tests)
@@ -213,8 +218,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
              ;; This ensures that Guix can detect embedded store references;
              ;; see bug #28157 for details.
              (substitute* "src/library/base/makebasedb.R"
-               (("compress = TRUE") "compress = FALSE"))
-             #t))
+               (("compress = TRUE") "compress = FALSE"))))
          (add-before 'configure 'patch-coreutils-paths
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((uname-bin (search-input-file inputs "/bin/uname"))
@@ -222,8 +226,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
                (substitute* "src/scripts/R.sh.in"
                  (("uname") uname-bin))
                (substitute* "src/unix/sys-std.c"
-                 (("rm -Rf ") (string-append rm-bin " -Rf "))))
-             #t))
+                 (("rm -Rf ") (string-append rm-bin " -Rf "))))))
          (add-after 'unpack 'build-reproducibly
            (lambda _
              ;; The documentation contains time stamps to demonstrate
@@ -282,17 +285,17 @@ as.POSIXct(if (\"\" != Sys.getenv(\"SOURCE_DATE_EPOCH\")) {\
              ;; that is suspected to be the culprit.
              (substitute* "src/library/methods/DESCRIPTION.in"
                (("\\(2008\\)\n") "(2008) ")
-               (("  ``Software") "``Software"))
-             #t))
+               (("  ``Software") "``Software")
+               (("Data Analysis:.") "Data Analysis:\n")
+               (("Programming with R") "  Programming with R"))))
          (add-before 'build 'set-locales
            (lambda _
              (setlocale LC_ALL "C")
-             (setenv "LC_ALL" "C")
-             #t))
+             (setenv "LC_ALL" "C")))
          (add-before 'configure 'set-default-pager
           ;; Set default pager to "cat", because otherwise it is "false",
           ;; making "help()" print nothing at all.
-          (lambda _ (setenv "PAGER" "cat") #t))
+          (lambda _ (setenv "PAGER" "cat")))
          (add-before 'check 'set-timezone
            ;; Some tests require the timezone to be set.  However, the
            ;; timezone may not just be "UTC", or else a brittle regression
@@ -400,12 +403,49 @@ available, greatly increasing its breadth and scope.")
     (arguments
      `(#:tests? #f
        ,@(substitute-keyword-arguments (package-arguments r-with-tests)
+           ((#:disallowed-references refs '())
+            (cons perl refs))
            ((#:configure-flags flags)
             ;; Do not build the recommended packages.  The build system creates
             ;; random temporary directories and embeds their names in some
             ;; package files.  We build these packages with the r-build-system
             ;; instead.
-            `(cons "--without-recommended-packages" ,flags)))))))
+            `(cons "--without-recommended-packages" ,flags))
+           ((#:phases phases '%standard-phases)
+            `(modify-phases ,phases
+               (add-after 'install 'remove-extraneous-references
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (let ((out (assoc-ref outputs "out")))
+                     (substitute* (string-append out "/lib/R/etc/Makeconf")
+                       (("^# configure.*")
+                        "# Removed to avoid extraneous references\n"))
+                     (substitute* (string-append out "/lib/R/bin/libtool")
+                       (((string-append
+                          "(-L)?("
+                          (assoc-ref inputs "bzip2")
+                          "|"
+                          (assoc-ref inputs "perl")
+                          "|"
+                          (assoc-ref inputs "texlive")
+                          "|"
+                          (assoc-ref inputs "texlive-bin")
+                          "|"
+                          (assoc-ref inputs "texinfo")
+                          "|"
+                          (assoc-ref inputs "xz")
+                          "|"
+                          (format #false
+                                  "/gnu/store/[^-]+-(~{~a~^|~})-[^/]+"
+                                  '("glibc-utf8-locales"
+                                    "libselinux"
+                                    "libsepol"
+                                    "file"
+                                    "texlive-bin"
+                                    "util-macros"
+                                    "graphite2"))
+                          "|"
+                          "/gnu/store/[^-]+-glibc-[^-]+-static"
+                          ")/lib")) ""))))))))))))
 
 (define-public rmath-standalone
   (package (inherit r-minimal)
@@ -474,7 +514,7 @@ Applied Statistics with S\" (4th edition, 2002) by Venables and Ripley.")
          "0dxyxk59fs90713qisanlvk4p0d3l8n8n7zdd4d5c290naaaw83q"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)))
+     (list r-mass))
     (home-page "http://www.stats.ox.ac.uk/pub/MASS4/")
     (synopsis "R functions for classification")
     (description
@@ -496,7 +536,7 @@ k-nearest neighbour, Learning Vector Quantization and Self-Organizing Maps.")
          "168l653ygkg21fwrqrf7lsqi5p6jzhgmcvhrwv7lznkdzdhag2jw"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/cluster")
     (synopsis "Methods for cluster analysis")
     (description
@@ -558,7 +598,7 @@ for reading and writing some dBase files.")
     (properties `((upstream-name . "KernSmooth")))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/KernSmooth")
     (synopsis "Functions for kernel smoothing")
     (description
@@ -571,13 +611,13 @@ estimation) corresponding to the book: Wand, M.P. and Jones, M.C. (1995)
 (define-public r-lattice
   (package
     (name "r-lattice")
-    (version "0.20-44")
+    (version "0.20-45")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "lattice" version))
               (sha256
                (base32
-                "16yvdklwgjfclayh15axknjwzygx8i7y8zl5mlw8m85dqzihifap"))))
+                "1b87fmyjzbg854vpi03my1p25n3d0bchhwsdm2frblxppn98sf12"))))
     (build-system r-build-system)
     (home-page "http://lattice.r-forge.r-project.org/")
     (synopsis "High-level data visualization system")
@@ -602,7 +642,7 @@ also flexible enough to handle most nonstandard requirements.")
     (properties `((upstream-name . "Matrix")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)))
+     (list r-lattice))
     (home-page "http://Matrix.R-forge.R-project.org/")
     (synopsis "Sparse and dense matrix classes and methods")
     (description
@@ -613,18 +653,18 @@ and operations on them using LAPACK and SuiteSparse.")
 (define-public r-nlme
   (package
     (name "r-nlme")
-    (version "3.1-152")
+    (version "3.1-153")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "nlme" version))
        (sha256
-        (base32 "0pji9vvmjqyk8b7lhxsixnagsrz2hmnwy6ilc2gg5ji1y6qx2rav"))))
+        (base32 "1qw0sq64iybyidj0s8m76z4i1gxb1fn27s29i63fw5hvvy7aj9rx"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)))
+     (list r-lattice))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/nlme")
     (synopsis "Linear and nonlinear mixed effects models")
     (description
@@ -635,17 +675,16 @@ nonlinear mixed-effects models.")
 (define-public r-mgcv
   (package
    (name "r-mgcv")
-   (version "1.8-36")
+   (version "1.8-38")
    (source
     (origin
      (method url-fetch)
      (uri (cran-uri "mgcv" version))
      (sha256
-      (base32 "002n4572sxslz9zfqvs5ys59m8q8wkcc5ks2m0yqs4p7l88xzca2"))))
+      (base32 "1fyx8b0xjyx75mp90v314gayzydkca5y90p76jnwxzfnhxbys4nd"))))
    (build-system r-build-system)
    (propagated-inputs
-    `(("r-matrix" ,r-matrix)
-      ("r-nlme" ,r-nlme)))
+    (list r-matrix r-nlme))
    (home-page "https://cran.r-project.org/web/packages/mgcv")
    (synopsis "Mixed generalised additive model computation")
    (description
@@ -716,17 +755,17 @@ analysis.")
 (define-public r-survival
   (package
     (name "r-survival")
-    (version "3.2-12")
+    (version "3.2-13")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "survival" version))
        (sha256
         (base32
-         "1152zpd961bzwnabkhf6q9jgb72bj68023dsn2dcdmxqdi72mps5"))))
+         "0zrikancm9shixvgng89f1610sphlwljczi0fnjbdqn4l85rrarz"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)))
+     (list r-matrix))
     (home-page "https://github.com/therneau/survival")
     (synopsis "Survival analysis")
     (description
@@ -742,22 +781,22 @@ curves, Cox models, and parametric accelerated failure time models.")
     (build-system trivial-build-system)
     (arguments '(#:builder (begin (mkdir %output) #t)))
     (propagated-inputs
-     `(("r-minimal" ,r-minimal)
-       ("r-boot" ,r-boot)
-       ("r-class" ,r-class)
-       ("r-cluster" ,r-cluster)
-       ("r-codetools" ,r-codetools)
-       ("r-foreign" ,r-foreign)
-       ("r-kernsmooth" ,r-kernsmooth)
-       ("r-lattice" ,r-lattice)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-mgcv" ,r-mgcv)
-       ("r-nlme" ,r-nlme)
-       ("r-nnet" ,r-nnet)
-       ("r-rpart" ,r-rpart)
-       ("r-spatial" ,r-spatial)
-       ("r-survival" ,r-survival)))))
+     (list r-minimal
+           r-boot
+           r-class
+           r-cluster
+           r-codetools
+           r-foreign
+           r-kernsmooth
+           r-lattice
+           r-mass
+           r-matrix
+           r-mgcv
+           r-nlme
+           r-nnet
+           r-rpart
+           r-spatial
+           r-survival))))
 
 (define-public r-bit
   (package
@@ -772,7 +811,7 @@ curves, Cox models, and parametric accelerated failure time models.")
          "0s7isadibxp2wr62r5cpbyh9z31sczzfz4j3rm7gxgjfpqgq8174"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "http://ff.r-forge.r-project.org")
     (synopsis "Class for vectors of 1-bit booleans")
     (description
@@ -795,7 +834,7 @@ binary booleans, @code{TRUE} and @code{FALSE} can be stored with 1 bit only.")
          "0y0m7q1rwam1g88cjx7zyi07mj5dipxd9jkl90f294syx8k6ipr5"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bit" ,r-bit)))
+     (list r-bit))
     (home-page "http://ff.r-forge.r-project.org/")
     (synopsis "S3 class for vectors of 64 bit integers")
     (description
@@ -829,13 +868,13 @@ effects of different types of color-blindness.")
 (define-public r-digest
   (package
     (name "r-digest")
-    (version "0.6.27")
+    (version "0.6.28")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "digest" version))
        (sha256
-        (base32 "0gr503pinailfglpfbzxprqw7w1jla8jr9nl856a4zch498zg1gl"))))
+        (base32 "006vqwfrry84xn51lxlfalzn9yqr1k81s39r0zy251azx5sqqcja"))))
     (build-system r-build-system)
     ;; Vignettes require r-knitr, which requires r-digest, so we have to
     ;; disable them and the tests.
@@ -928,7 +967,7 @@ see package vignette.  To quote Rene Magritte, \"Ceci n'est pas un pipe.\"")
         (base32 "16g1fzisbpqb15yh3pqf3iia4csppva5dnv1z88x9dg263xskwyh"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-colorspace" ,r-colorspace)))
+     (list r-colorspace))
     (home-page "https://cran.r-project.org/web/packages/munsell")
     (synopsis "Munsell colour system")
     (description
@@ -970,7 +1009,7 @@ in which the whole-plots or split-plots or both can be freely exchangeable.")
        (sha256
         (base32 "11sjjdn146w95s1vsfmmgdls082cbnm1slv98xvyjhsl2mpx4mga"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (propagated-inputs (list r-rcpp))
     (home-page "http://had.co.nz/plyr")
     (synopsis "Tools for Splitting, Applying and Combining Data")
     (description
@@ -1032,7 +1071,7 @@ designed by Cynthia Brewer as described at http://colorbrewer2.org")
     (properties `((upstream-name . "sendmailR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)))
+     (list r-base64enc))
     (home-page
      "https://cran.r-project.org/web/packages/sendmailR")
     (synopsis "Send email using R")
@@ -1044,17 +1083,17 @@ solution for sending email, including attachments, from within R.")
 (define-public r-stringi
   (package
     (name "r-stringi")
-    (version "1.7.3")
+    (version "1.7.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "stringi" version))
        (sha256
         (base32
-         "0mhz7dkjdm8ap2zav1pmivhr8s0l6p2f6piij2hy08nwszqk51nr"))))
+         "0r959gzyqkq9683qdfy95g9plwpj3c73n9lhf0a6byybw4scq519"))))
     (build-system r-build-system)
-    (inputs `(("icu4c" ,icu4c)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list icu4c))
+    (native-inputs (list pkg-config))
     (home-page "http://stringi.rexamine.com/")
     (synopsis "Character string processing facilities")
     (description
@@ -1079,9 +1118,7 @@ transliteration, concatenation, date-time formatting and parsing, etc.")
         (base32 "1p9ip7p87gbbg4s6d3d392svvzz2b5dqdq2c8ilgvn4s78nlsq47"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-glue" ,r-glue)
-       ("r-magrittr" ,r-magrittr)
-       ("r-stringi" ,r-stringi)))
+     (list r-glue r-magrittr r-stringi))
     (home-page "https://github.com/hadley/stringr")
     (synopsis "Simple, consistent wrappers for common string operations")
     (description
@@ -1104,9 +1141,7 @@ the input of another.")
         (base32 "1n0jrajpvc8hjkh9z4g8bwq63qy5vy5cgl2pzjardyih4ngcz3fq"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-plyr" ,r-plyr)
-       ("r-rcpp" ,r-rcpp)
-       ("r-stringr" ,r-stringr)))
+     (list r-plyr r-rcpp r-stringr))
     (home-page "https://github.com/hadley/reshape")
     (synopsis "Flexibly reshape data: a reboot of the \"reshape\" package")
     (description
@@ -1126,19 +1161,19 @@ using just two functions: melt and dcast (or acast).")
         (base32 "1si46bf9p09qzs208hqffwcb40305p361whmwhc1pwrsmx7jjxdh"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-digest" ,r-digest)
-       ("r-glue" ,r-glue)
-       ("r-gtable" ,r-gtable)
-       ("r-isoband" ,r-isoband)
-       ("r-mass" ,r-mass)
-       ("r-mgcv" ,r-mgcv)
-       ("r-tibble" ,r-tibble)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)
-       ("r-svglite" ,r-svglite) ; Needed for 'ggsave'
-       ("r-withr" ,r-withr)))
+     (list r-digest
+           r-glue
+           r-gtable
+           r-isoband
+           r-mass
+           r-mgcv
+           r-tibble
+           r-rlang
+           r-scales
+           r-svglite ; Needed for 'ggsave'
+           r-withr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://ggplot2.tidyverse.org")
     (synopsis "An implementation of the grammar of graphics")
     (description
@@ -1162,10 +1197,9 @@ aesthetic attributes.")
                 "0skbj487b6f6pj2iz4yq2b9gbgb39cv5dyzhdl3w7ay1k0s5z9ph"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-mass" ,r-mass)))
+     (list r-ggplot2 r-mass))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/andrie/ggdendro")
     (synopsis "Create Dendrograms and Tree Diagrams Using ggplot2")
     (description "This is a set of tools for dendrograms and tree plots using
@@ -1190,14 +1224,11 @@ agnes cluster diagrams.")
          "1p3ip0qwpg8f63jfx0b8vbac6l20ddid8xvxzkfi6i858pybnawp"))))
     (build-system r-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("cairo" ,cairo)
-       ("freetype2" ,freetype)
-       ("zlib" ,zlib)))
+     (list cairo freetype zlib))
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-systemfonts" ,r-systemfonts)))
+     (list r-rcpp r-systemfonts))
     (home-page "https://cran.r-project.org/web/packages/gdtools")
     (synopsis "Utilities for graphical rendering")
     (description
@@ -1218,13 +1249,11 @@ and to generate base64 encoded string from raster matrix.")
          "19ggknw5322yw7r1bzhw0bqggcrpn0qxddk7kblpqnra2zz2brkn"))))
     (build-system r-build-system)
     (inputs
-     `(("libpng" ,libpng)
-       ("zlib" ,zlib)))
+     (list libpng zlib))
     (propagated-inputs
-     `(("r-cpp11" ,r-cpp11)
-       ("r-systemfonts" ,r-systemfonts)))
+     (list r-cpp11 r-systemfonts))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/hadley/svglite")
     (synopsis "SVG graphics device")
     (description
@@ -1284,7 +1313,7 @@ evaluation (NSE) in R.")
                 "0i0kfyg43nryyka2bjlgz4x75w965224qp36wz1hl7a2lswb6ajp"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/rstats-db/DBI")
     (synopsis "R database interface")
     (description
@@ -1344,7 +1373,7 @@ adapted for other output formats, such as HTML or LaTeX.")
                 "0353aj975mj0yjc91z76bbfy86y7d5cvlqqyfr93cdng14nnd0dx"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://yihui.org/formatr/")
     (synopsis "Format R code automatically")
     (description
@@ -1366,7 +1395,7 @@ There is also a Shiny app as a user interface in this package.")
                 "0kgdv2vf1lz3b5kbal9s83gg6812nw7fvrq0rkyr0v4k1lwi3zxy"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-xfun" ,r-xfun)))
+     (list r-xfun))
     ;; We cannot add knitr to the inputs, because highr depends on xfun, which
     ;; is an input to knitr.
     #;
@@ -1383,13 +1412,13 @@ supported via Andre Simon's highlight package.")
 (define-public r-mime
   (package
     (name "r-mime")
-    (version "0.11")
+    (version "0.12")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "mime" version))
               (sha256
                (base32
-                "1h7fz0rqnp970r9q0d95qcxpxm9mb98rqhcdncx0w2qdkyj2fm11"))))
+                "0j9qbq9jfsp61h2d0xmb87pa2wi8nhb1h2wih7l5drf1sr8i0059"))))
     (build-system r-build-system)
     (home-page "https://github.com/yihui/mime")
     (synopsis "R package to map filenames to MIME types")
@@ -1415,8 +1444,7 @@ data derived from /etc/mime.types in UNIX-type systems.")
     ;; package.
     (arguments `(#:tests? #f))
     (propagated-inputs
-     `(("r-mime" ,r-mime)
-       ("r-xfun" ,r-xfun)))
+     (list r-mime r-xfun))
     (home-page "https://github.com/rstudio/markdown")
     (synopsis "Markdown rendering for R")
     (description
@@ -1446,21 +1474,16 @@ emitter (http://pyyaml.org/wiki/LibYAML) for R.")
 (define-public r-knitr
   (package
     (name "r-knitr")
-    (version "1.33")
+    (version "1.36")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "knitr" version))
               (sha256
                (base32
-                "0289dj7h4wppn4xc4ids7xlrfb46gzd1n9r2wpmfc3c818mk70rg"))))
+                "0hcf5gii0qlvv15f86y6h08qp0hd9lcrykzj0mdfjdfi52sgbkkf"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-evaluate" ,r-evaluate)
-       ("r-highr" ,r-highr)
-       ("r-markdown" ,r-markdown)
-       ("r-stringr" ,r-stringr)
-       ("r-xfun" ,r-xfun)
-       ("r-yaml" ,r-yaml)))
+     (list r-evaluate r-highr r-stringr r-xfun r-yaml))
     (home-page "https://yihui.org/knitr/")
     (synopsis "General-purpose package for dynamic report generation in R")
     (description
@@ -1485,9 +1508,7 @@ generation in R using Literate Programming techniques.")
     (properties `((upstream-name . "knitrBootstrap")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-knitr" ,r-knitr)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-markdown" ,r-markdown)))
+     (list r-knitr r-rmarkdown r-markdown))
     (home-page "https://github.com/jimhester/knitrBootstrap")
     (synopsis "Knitr bootstrap framework")
     (description
@@ -1498,13 +1519,13 @@ from knitr Rmarkdown.")
 (define-public r-microbenchmark
   (package
     (name "r-microbenchmark")
-    (version "1.4-7")
+    (version "1.4.9")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "microbenchmark" version))
               (sha256
                (base32
-                "1xl4m4yl4h2zcjiz8wsa7f3sh55qg2xr3sgpvz18rlix6b3173r6"))))
+                "1lpzpffnjiwnxxl0jhrvyj88fvxqksnpccbpq953xwqf6ypjqga4"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/microbenchmark/")
     (synopsis "Accurate timing functions for R")
@@ -1525,10 +1546,7 @@ the execution time of R expressions.")
                 "02vp1y7zhv22id43j5c0gdcgn9171dyypqp8rqrlc3w5a7n565kv"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-codetools" ,r-codetools)
-       ("r-lobstr" ,r-lobstr)
-       ("r-rcpp" ,r-rcpp)
-       ("r-stringr" ,r-stringr)))
+     (list r-codetools r-lobstr r-rcpp r-stringr))
     (home-page "https://github.com/hadley/pryr")
     (synopsis "Tools for computing on the R language")
     (description
@@ -1548,8 +1566,7 @@ understand the language at a deeper level.")
                 "1bzcv7pmls3bx2w5ccv1pm20wycbfqba1v76k0fjgmjsm6hy76pz"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cachem" ,r-cachem)
-       ("r-rlang" ,r-rlang)))
+     (list r-cachem r-rlang))
     (home-page "https://github.com/hadley/memoise")
     (synopsis "Memoise functions for R")
     (description
@@ -1560,13 +1577,13 @@ you call it again with the same arguments it returns the pre-computed value.")
 (define-public r-crayon
   (package
     (name "r-crayon")
-    (version "1.4.1")
+    (version "1.4.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "crayon" version))
               (sha256
                (base32
-                "1ir963s6zk9l32fw257y54p7898cd7z7yazkn9h6j2cdfhpf9dh8"))))
+                "0mxq87qsvz5znfncrb6yjchzv6iwpn9lr386i02y6xiycizkjd7f"))))
     (build-system r-build-system)
     (home-page "https://github.com/gaborcsardi/crayon")
     (synopsis "Colored terminal output for R")
@@ -1600,36 +1617,36 @@ R packages that praise their users.")
 (define-public r-testthat
   (package
     (name "r-testthat")
-    (version "3.0.4")
+    (version "3.1.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "testthat" version))
               (sha256
                (base32
-                "0iqizv2gpv9fg766qv8hbkmc6c5i9xcfrmq9k5m2550p28zff2w3"))))
+                "11s98q0gm37z1cqzwvdm9pq26v0zbdq9vc5ssl1nsxhsi42v2577"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-brio" ,r-brio)
-       ("r-callr" ,r-callr)
-       ("r-cli" ,r-cli)
-       ("r-crayon" ,r-crayon)
-       ("r-desc" ,r-desc)
-       ("r-digest" ,r-digest)
-       ("r-ellipsis" ,r-ellipsis)
-       ("r-evaluate" ,r-evaluate)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-magrittr" ,r-magrittr)
-       ("r-pkgload" ,r-pkgload)
-       ("r-praise" ,r-praise)
-       ("r-processx" ,r-processx)
-       ("r-ps" ,r-ps)
-       ("r-r6" ,r-r6)
-       ("r-rlang" ,r-rlang)
-       ("r-waldo" ,r-waldo)
-       ("r-withr" ,r-withr)))
+     (list r-brio
+           r-callr
+           r-cli
+           r-crayon
+           r-desc
+           r-digest
+           r-ellipsis
+           r-evaluate
+           r-jsonlite
+           r-lifecycle
+           r-magrittr
+           r-pkgload
+           r-praise
+           r-processx
+           r-ps
+           r-r6
+           r-rlang
+           r-waldo
+           r-withr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/hadley/testthat")
     (synopsis "Unit testing for R")
     (description
@@ -1662,13 +1679,13 @@ defined in different packages.")
 (define-public r-rlang
   (package
     (name "r-rlang")
-    (version "0.4.11")
+    (version "0.4.12")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "rlang" version))
               (sha256
                (base32
-                "1pfm24jjkxzdb5qcbc05dcjxyk69zpfr5jv4xakqh1xh41mr43kl"))))
+                "05cr08smr8dlk10m810rw4qi1yhgnny83rwkxib0l4my71br29ia"))))
     (build-system r-build-system)
     (home-page "http://rlang.tidyverse.org")
     (synopsis "Functions for base types, core R and Tidyverse features")
@@ -1680,26 +1697,26 @@ like tidy evaluation.")
 (define-public r-tibble
   (package
     (name "r-tibble")
-    (version "3.1.3")
+    (version "3.1.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tibble" version))
        (sha256
         (base32
-         "1gpy90hg0bd4an0wqj0xx16a6x37fhc94z1v63y46dpiz231xfks"))))
+         "14l2i6ri3v5y0h8g0ahc4kz0pdqsp5yabxk2w8wavss6y44xjcsv"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ellipsis" ,r-ellipsis)
-       ("r-fansi" ,r-fansi)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-magrittr" ,r-magrittr)
-       ("r-pkgconfig" ,r-pkgconfig)
-       ("r-pillar" ,r-pillar)
-       ("r-rlang" ,r-rlang)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-ellipsis
+           r-fansi
+           r-lifecycle
+           r-magrittr
+           r-pkgconfig
+           r-pillar
+           r-rlang
+           r-vctrs))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/hadley/tibble")
     (synopsis "Simple data frames")
     (description
@@ -1719,19 +1736,19 @@ and printing capabilities than traditional data frames.")
                 "0g8jsxclj9cgm7a2lyazy78sj62rbzw812lsw3fdsbz0pknkmznj"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ellipsis" ,r-ellipsis)
-       ("r-generics" ,r-generics)
-       ("r-glue" ,r-glue)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-magrittr" ,r-magrittr)
-       ("r-pillar" ,r-pillar)
-       ("r-r6" ,r-r6)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyselect" ,r-tidyselect)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-ellipsis
+           r-generics
+           r-glue
+           r-lifecycle
+           r-magrittr
+           r-pillar
+           r-r6
+           r-rlang
+           r-tibble
+           r-tidyselect
+           r-vctrs))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/hadley/dplyr")
     (synopsis "Tools for working with data frames in R")
     (description
@@ -1757,23 +1774,23 @@ database.")
          "025wqpmxdhzblb0pf58m3qh5h6bf5x8qvkf47vyl1cjsp13wz95b"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertthat" ,r-assertthat)
-       ("r-blob" ,r-blob)
-       ("r-dbi" ,r-dbi)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ellipsis" ,r-ellipsis)
-       ("r-glue" ,r-glue)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-magrittr" ,r-magrittr)
-       ("r-purrr" ,r-purrr)
-       ("r-r6" ,r-r6)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyselect" ,r-tidyselect)
-       ("r-vctrs" ,r-vctrs)
-       ("r-withr" ,r-withr)))
+     (list r-assertthat
+           r-blob
+           r-dbi
+           r-dplyr
+           r-ellipsis
+           r-glue
+           r-lifecycle
+           r-magrittr
+           r-purrr
+           r-r6
+           r-rlang
+           r-tibble
+           r-tidyselect
+           r-vctrs
+           r-withr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/tidyverse/dbplyr")
     (synopsis "Dplyr back end for databases")
     (description
@@ -1796,7 +1813,7 @@ features require SQL translation to be provided by the package author.")
          "1f98rpfjmhd92rdc3j004plyfpjailz6j0ycysbac0kgj83haxc2"))))
     (build-system r-build-system)
     (inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/acepack")
     (synopsis "Functions for regression transformations")
     (description
@@ -1839,7 +1856,7 @@ side.")
          "1vcw16qww4v4547w0gfvhqg60l051bsdlxa6zfcgcj9xbxf6dlyr"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)))
+     (list r-lattice))
     (home-page "https://cran.r-project.org/web/packages/locfit")
     (synopsis "Local regression, likelihood and density estimation")
     (description
@@ -1868,19 +1885,18 @@ times.")
 (define-public r-data-table
   (package
     (name "r-data-table")
-    (version "1.14.0")
+    (version "1.14.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "data.table" version))
               (sha256
                (base32
-                "0kgbvap5v2spnkz3dwfm4jh4qcpvbzdn9s8bzfnhzabz9qjdxw8k"))))
+                "0arx5wna0sh0vf5q8rjhh8nqdmnvg2pdpbhljl9l0x4kwm8vjhgp"))))
     (build-system r-build-system)
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://github.com/Rdatatable/data.table/wiki")
     (synopsis "Enhanced version of data.frame R object")
     (description
@@ -1903,7 +1919,7 @@ and fast file reading.")
          "077xfm0gphvhsay75amd9v90zk57kjgrrlgih04fyrbqqblc1gjs"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr))) ; for vignettes
+     (list r-knitr)) ; for vignettes
     (home-page "http://xtable.r-forge.r-project.org/")
     (synopsis "Export R tables to LaTeX or HTML")
     (description
@@ -1913,25 +1929,24 @@ and fast file reading.")
 (define-public python-patsy
   (package
     (name "python-patsy")
-    (version "0.5.1")
+    (version "0.5.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "patsy" version))
               (sha256
                (base32
-                "149rbrdzwns0ay88caf1zsm1r53v1q5np1mrb36na50y432cw5gi"))))
+                "17dn72519gvwifw3i8mzwlslxmxkl8ihzfrxg1iblsk70iwdwlsh"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _ (invoke "nosetests" "-v"))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests? (invoke "pytest" "-vv")))))))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)
-       ("python-six" ,python-six)))
+     (list python-numpy python-scipy python-six))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-pytest))
     (home-page "https://github.com/pydata/patsy")
     (synopsis "Describe statistical models and build design matrices")
     (description
@@ -1976,15 +1991,10 @@ building design matrices.")
                               line)))
             #t)))))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-scipy" ,python-scipy)
-       ("python-pandas" ,python-pandas)
-       ("python-patsy" ,python-patsy)
-       ("python-matplotlib" ,python-matplotlib)))
+     (list python-numpy python-scipy python-pandas python-patsy
+           python-matplotlib))
     (native-inputs
-     `(("python-cython" ,python-cython)
-       ("python-nose" ,python-nose)
-       ("python-sphinx" ,python-sphinx)))
+     (list python-cython python-nose python-sphinx))
     (home-page "http://statsmodels.sourceforge.net/")
     (synopsis "Statistical modeling and econometrics in Python")
     (description
@@ -1996,6 +2006,16 @@ inference for statistical models.")
 (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)
@@ -2016,7 +2036,7 @@ inference for statistical models.")
                 "13z5dwfpnyyhpsbpg4xr9g5c1685jhqj90f4x4qkcykr6kykqba2"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)))
+     (list r-lattice))
     (home-page "https://cran.r-project.org/web/packages/coda")
     (synopsis "This is a package for Output Analysis and Diagnostics for MCMC")
     (description "This package provides functions for summarizing and plotting
@@ -2028,19 +2048,17 @@ chain.")
 (define-public r-ade4
   (package
     (name "r-ade4")
-    (version "1.7-17")
+    (version "1.7-18")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "ade4" version))
         (sha256
           (base32
-            "0s9x29xscgfdk1cdk1hanmkrrgj9vibf5gvwlbx21mhjnf0dzngf"))))
+            "09f5kh2mwygqpnvf53k0r54k0cvaafxm9x4nm819gwv05k2g9dpc"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-pixmap" ,r-pixmap)
-       ("r-sp" ,r-sp)))
+     (list r-mass r-pixmap r-sp))
     (home-page "http://pbil.univ-lyon1.fr/ADE-4")
     (synopsis "Multivariate data analysis and graphical display")
     (description
@@ -2061,11 +2079,9 @@ and environmental data in the framework of Euclidean exploratory methods.")
          "1kx400v62xkd5xal7rzz7jcarz94ac8g1sh4i2dqr78qwgkzj8nz"))))
     (build-system r-build-system)
     (inputs
-     `(("libxml2" ,libxml2)
-       ("zlib" ,zlib)))
+     (list libxml2 zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (home-page "https://github.com/hadley/xml2")
     (synopsis "Parse XML with R")
     (description
@@ -2086,7 +2102,7 @@ files in R.  It is built on top of the libxml2 C library.")
          "1gm3wr8xqpqiby7q1dr3zxim77v0bvvrqi0hlazf5g3gnkrp2zc3"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://github.com/wesleyburr/multitaper/")
     (synopsis "Multitaper spectral analysis tools")
     (description
@@ -2111,8 +2127,7 @@ jackknifed confidence intervals are available for most estimates.")
                 "1cbwwbz8lqx2n33xr4q904whvld22s63rpyy1nn93395l7ssrakr"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-curl" ,r-curl)
-       ("r-xml2" ,r-xml2)))
+     (list r-curl r-xml2))
     (home-page "https://github.com/metacran/rversions")
     (synopsis "Query R versions, including 'r-release' and 'r-oldrel'")
     (description
@@ -2142,14 +2157,14 @@ limited to R.")
 (define-public r-backports
   (package
     (name "r-backports")
-    (version "1.2.1")
+    (version "1.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "backports" version))
        (sha256
         (base32
-         "1mf2nz78l97lbxyagv55bcxrny51ds8g28h307cfa1g3ayylp0x2"))))
+         "0bc14x4gyw4gnvm4hrvg5cmmrq449kfza3l14wdgp642ra8iw8sg"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/backports")
     (synopsis "Reimplementations of functions introduced since R 3.0.0")
@@ -2175,7 +2190,7 @@ R version.")
          "193gkifr9spp0x0rwnjq1spdhjkfkh4mv27iklskcj604075phhd"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-backports" ,r-backports)))
+     (list r-backports))
     (home-page "https://github.com/mllg/checkmate")
     (synopsis "Fast and versatile argument checks")
     (description
@@ -2198,7 +2213,7 @@ worries about execution time overhead.")
     (properties `((upstream-name . "BBmisc")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-checkmate" ,r-checkmate)))
+     (list r-checkmate))
     (home-page "https://github.com/berndbischl/BBmisc")
     (synopsis "Miscellaneous functions for R package development")
     (description
@@ -2219,8 +2234,7 @@ of R packages.")
          "0vfm6kmpmgsamda5p0sl771kbnsscan31l2chzssyw93kwmams7d"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bbmisc" ,r-bbmisc)
-       ("r-checkmate" ,r-checkmate)))
+     (list r-bbmisc r-checkmate))
     (home-page "https://github.com/mllg/fail")
     (synopsis "File abstraction interface layer (FAIL)")
     (description
@@ -2242,16 +2256,16 @@ or source files in a key-value fashion.")
     (properties `((upstream-name . "BatchJobs")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-backports" ,r-backports)
-       ("r-bbmisc" ,r-bbmisc)
-       ("r-brew" ,r-brew)
-       ("r-checkmate" ,r-checkmate)
-       ("r-data-table" ,r-data-table)
-       ("r-dbi" ,r-dbi)
-       ("r-digest" ,r-digest)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-sendmailr" ,r-sendmailr)
-       ("r-stringi" ,r-stringi)))
+     (list r-backports
+           r-bbmisc
+           r-brew
+           r-checkmate
+           r-data-table
+           r-dbi
+           r-digest
+           r-rsqlite
+           r-sendmailr
+           r-stringi))
     (home-page "https://github.com/tudo-r/BatchJobs")
     (synopsis "Batch computing with R")
     (description
@@ -2282,19 +2296,17 @@ module, Java Server Pages, and Python's psp module.")
 (define-public r-desc
   (package
     (name "r-desc")
-    (version "1.3.0")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "desc" version))
        (sha256
         (base32
-         "1sw4vya3l971gpccq4gnjywgbl73bgx8la18l0wy617qv94f905y"))))
+         "0jfnwn1kpiill8v4hmzdk90yz4gk2ha0prr2p0hq36s40v3y8842"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-crayon" ,r-crayon)
-       ("r-r6" ,r-r6)
-       ("r-rprojroot" ,r-rprojroot)))
+     (list r-crayon r-r6 r-rprojroot))
     (home-page "https://github.com/r-pkgs/desc")
     (synopsis "Manipulate DESCRIPTION Files")
     (description
@@ -2329,30 +2341,30 @@ tables, autolinks and strikethrough text.")
 (define-public r-roxygen2
   (package
     (name "r-roxygen2")
-    (version "7.1.1")
+    (version "7.1.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "roxygen2" version))
               (sha256
                (base32
-                "0qc8akwfwmaqsjaza87f5fi0zk6sh3l6j3assbs6chvx0gnmvidx"))))
+                "1zf55wywlpy7mk7zfyi3s9fhhg1m9kvafzj46iqw5cbvnlg3ssdk"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-brew" ,r-brew)
-       ("r-commonmark" ,r-commonmark)
-       ("r-desc" ,r-desc)
-       ("r-digest" ,r-digest)
-       ("r-knitr" ,r-knitr)
-       ("r-pkgload" ,r-pkgload)
-       ("r-purrr" ,r-purrr)
-       ("r-r6" ,r-r6)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rlang" ,r-rlang)
-       ("r-stringi" ,r-stringi)
-       ("r-stringr" ,r-stringr)
-       ("r-xml2" ,r-xml2)))
+     (list r-brew
+           r-commonmark
+           r-cpp11
+           r-desc
+           r-digest
+           r-knitr
+           r-pkgload
+           r-purrr
+           r-r6
+           r-rlang
+           r-stringi
+           r-stringr
+           r-xml2))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/klutometis/roxygen")
     (synopsis "In-source documentation system for R")
     (description
@@ -2363,22 +2375,21 @@ collation, and NAMESPACE files.")
 (define-public r-openssl
   (package
     (name "r-openssl")
-    (version "1.4.4")
+    (version "1.4.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "openssl" version))
        (sha256
         (base32
-         "0x68di44vrqvikr419mgh9wlvbhxs52zda9pb6spikx69m4v83wj"))))
+         "1xy1w0rljzsgvsg91fh9hs6h9rx58mza1vg6rig9ykp9m2ml3hag"))))
     (build-system r-build-system)
     (inputs
-     `(("libressl" ,libressl)))
+     (list libressl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("r-knitr" ,r-knitr)))
+     (list pkg-config r-knitr))
     (propagated-inputs
-     `(("r-askpass" ,r-askpass)))
+     (list r-askpass))
     (home-page "https://github.com/jeroenooms/openssl")
     (synopsis "Toolkit for encryption, signatures and certificates")
     (description
@@ -2406,13 +2417,9 @@ integers.")
                 "1y8y1g1dkgv9jafrk1kj6pzxpw95c0rr9lplblfq2byrs1pfsas6"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-curl" ,r-curl)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-openssl" ,r-openssl)
-       ("r-mime" ,r-mime)
-       ("r-r6" ,r-r6)))
+     (list r-curl r-jsonlite r-openssl r-mime r-r6))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/hadley/httr")
     (synopsis "Tools for working with URLs and HTTP")
     (description
@@ -2425,19 +2432,18 @@ functions make it easy to control additional request components.")
 (define-public r-git2r
   (package
     (name "r-git2r")
-    (version "0.28.0")
+    (version "0.29.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "git2r" version))
               (sha256
                (base32
-                "1wjmbs9cmm16pm3g0rmqp7cxxyh95m5lgx4fx5bpgj6j466i8vff"))))
+                "13nlrhma6kavvhranb43w3003vadfkyrn2f4l3r63iqavj0s3xzq"))))
     (build-system r-build-system)
     (inputs
-     `(("libgit2" ,libgit2)
-       ("zlib" ,zlib)))
+     (list libgit2 zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/ropensci/git2r")
     (synopsis "Access Git repositories with R")
     (description
@@ -2458,7 +2464,7 @@ pure C implementation of the Git core methods.")
                 "12vdfzzjc6mv4h105l8cp108j3hjk0mqmg23m6mqr3jarfymphxa"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/rstudioapi")
     (synopsis "Safely access the RStudio API")
     (description
@@ -2478,28 +2484,28 @@ informative error messages when it's not available.")
                 "01cg2ykg0av6z7bgl41njcxcii8vjj8ipch26xazp4yjai8abw3i"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-callr" ,r-callr)
-       ("r-cli" ,r-cli)
-       ("r-desc" ,r-desc)
-       ("r-ellipsis" ,r-ellipsis)
-       ("r-fs" ,r-fs)
-       ("r-httr" ,r-httr)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-memoise" ,r-memoise)
-       ("r-pkgbuild" ,r-pkgbuild)
-       ("r-pkgload" ,r-pkgload)
-       ("r-rcmdcheck" ,r-rcmdcheck)
-       ("r-remotes" ,r-remotes)
-       ("r-rlang" ,r-rlang)
-       ("r-roxygen2" ,r-roxygen2)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-rversions" ,r-rversions)
-       ("r-sessioninfo" ,r-sessioninfo)
-       ("r-testthat" ,r-testthat)
-       ("r-usethis" ,r-usethis)
-       ("r-withr" ,r-withr)))
+     (list r-callr
+           r-cli
+           r-desc
+           r-ellipsis
+           r-fs
+           r-httr
+           r-lifecycle
+           r-memoise
+           r-pkgbuild
+           r-pkgload
+           r-rcmdcheck
+           r-remotes
+           r-rlang
+           r-roxygen2
+           r-rstudioapi
+           r-rversions
+           r-sessioninfo
+           r-testthat
+           r-usethis
+           r-withr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/hadley/devtools")
     (synopsis "Tools to make developing R packages easier")
     (description "The devtools package is a collection of package development
@@ -2518,7 +2524,7 @@ tools to simplify the devolpment of R packages.")
                 "1j5srffi748yxphwli56lkbh4cga0kmz38dyzganzkw0nx66mya8"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/jimhester/withr")
     (synopsis "Run code with temporarily modified global state")
     (description
@@ -2530,21 +2536,17 @@ were originally a part of the r-devtools package.")
 (define-public r-hms
   (package
     (name "r-hms")
-    (version "1.1.0")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "hms" version))
        (sha256
         (base32
-         "1kmlw5hs2c69qgkkipjxb6j05wdk6jiqrac3y4z9ds63c3r9lng8"))))
+         "0qlh4s1g9rbm6c3s906dhw3xsz28m8fg6cyynlkhvis533dk0pvb"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ellipsis" ,r-ellipsis)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-pkgconfig" ,r-pkgconfig)
-       ("r-rlang" ,r-rlang)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-ellipsis r-lifecycle r-pkgconfig r-rlang r-vctrs))
     (home-page "https://github.com/rstats-db/hms")
     (synopsis "Pretty time of day")
     (description
@@ -2555,28 +2557,28 @@ time-of-day values, based on the @code{difftime} class.")
 (define-public r-readr
   (package
     (name "r-readr")
-    (version "2.0.1")
+    (version "2.1.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "readr" version))
               (sha256
                (base32
-                "0cj5k3ykkhixgdsqm1gnmpc0d8z04l3fhvm2dr5xp7cpmhgsrpfr"))))
+                "03d7y4k9w5vcm7fwlcaw715ff7d953i92jwbp7ynrqcr09kw6zm0"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cli" ,r-cli)
-       ("r-clipr" ,r-clipr)
-       ("r-cpp11" ,r-cpp11)
-       ("r-crayon" ,r-crayon)
-       ("r-hms" ,r-hms)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-tibble" ,r-tibble)
-       ("r-r6" ,r-r6)
-       ("r-rlang" ,r-rlang)
-       ("r-tzdb" ,r-tzdb)
-       ("r-vroom" ,r-vroom)))
+     (list r-cli
+           r-clipr
+           r-cpp11
+           r-crayon
+           r-hms
+           r-lifecycle
+           r-tibble
+           r-r6
+           r-rlang
+           r-tzdb
+           r-vroom))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/hadley/readr")
     (synopsis "Read tabular data")
     (description
@@ -2587,13 +2589,13 @@ disk (or a connection).")
 (define-public r-plotrix
   (package
     (name "r-plotrix")
-    (version "3.8-1")
+    (version "3.8-2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "plotrix" version))
               (sha256
                (base32
-                "0pxfaalwwmnpv19nff0cg6b871m6gjhhmx63fpxm7730z75qh663"))))
+                "07xwq3505qb2yak7pfda22yqwifj6m78f8b5rm0ym74808qrawmv"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/plotrix")
     (synopsis "Various plotting functions")
@@ -2633,10 +2635,7 @@ scaling functions for R.")
     (properties `((upstream-name . "latticeExtra")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-jpeg" ,r-jpeg)
-       ("r-lattice" ,r-lattice)
-       ("r-png" ,r-png)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)))
+     (list r-jpeg r-lattice r-png r-rcolorbrewer))
     (home-page "http://latticeextra.r-forge.r-project.org/")
     (synopsis "Extra graphical utilities based on lattice")
     (description
@@ -2648,17 +2647,17 @@ well as additional utilities such as panel and axis annotation functions.")
 (define-public r-rcpparmadillo
   (package
     (name "r-rcpparmadillo")
-    (version "0.10.6.0.0")
+    (version "0.10.7.3.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "RcppArmadillo" version))
               (sha256
                (base32
-                "1bcx8fk5l5mmwb6cw36ndvld9v3amkz6vyc19059dw0xp7mxx04v"))))
+                "0qk25x8naci76fqcd8jkv8gnba6sj61vkv9yf8498fwff1kvf41p"))))
     (properties `((upstream-name . "RcppArmadillo")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (home-page "https://github.com/RcppCore/RcppArmadillo")
     (synopsis "Rcpp integration for the Armadillo linear algebra library")
     (description
@@ -2704,7 +2703,7 @@ vectors.")
     (properties `((upstream-name . "caTools")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bitops" ,r-bitops)))
+     (list r-bitops))
     (home-page "https://cran.r-project.org/web/packages/caTools")
     (synopsis "Various tools including functions for moving window statistics")
     (description
@@ -2727,7 +2726,7 @@ encoder/decoder, round-off-error-free sum and cumsum, etc.")
          "07wy07yhms8zln9qb0iwx69dq08h4lrdi8kavjcplfxcskq638az"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/krlmlr/rprojroot")
     (synopsis "Finding files in project subdirectories")
     (description
@@ -2740,28 +2739,28 @@ certain criterion, e.g., it contains a certain regular file.")
 (define-public r-rmarkdown
   (package
     (name "r-rmarkdown")
-    (version "2.10")
+    (version "2.11")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "rmarkdown" version))
         (sha256
-          (base32 "1p2cc9ysj906gkl4c6ac7s8njh32p2kcx1ib4gjj3jmfz915k9jk"))))
+          (base32 "0xcpg9d009a71p5i6jczw02qcp907p5d52lp6vclrsp7019jawck"))))
     (properties `((upstream-name . "rmarkdown")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-evaluate" ,r-evaluate)
-       ("r-htmltools" ,r-htmltools)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-knitr" ,r-knitr)
-       ("r-stringr" ,r-stringr)
-       ("r-tinytex" ,r-tinytex)
-       ("r-xfun" ,r-xfun)
-       ("r-yaml" ,r-yaml)
-       ("pandoc" ,pandoc)
-       ("pandoc-citeproc" ,pandoc-citeproc)))
+     (list r-evaluate
+           r-htmltools
+           r-jquerylib
+           r-jsonlite
+           r-knitr
+           r-stringr
+           r-tinytex
+           r-xfun
+           r-yaml
+           pandoc))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://rmarkdown.rstudio.com")
     (synopsis "Convert R Markdown documents into a variety of formats")
     (description
@@ -2801,9 +2800,9 @@ variety of formats.")
     (properties `((upstream-name . "gridExtra")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-gtable" ,r-gtable)))
+     (list r-gtable))
     (native-inputs
-     `(("r-knitr" ,r-knitr))) ;for building vignettes
+     (list r-knitr)) ;for building vignettes
     (home-page "https://github.com/baptiste/gridextra")
     (synopsis "Miscellaneous functions for \"Grid\" graphics")
     (description
@@ -2842,8 +2841,7 @@ that package, other packages are unaffected.")
                 "1yn7f13icaix0apxp4drnciwdn8bx8xmbd129jd7ck4rcly0axj9"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rlang" ,r-rlang)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-rlang r-vctrs))
     (home-page "https://github.com/hadley/blob")
     (synopsis "Simple S3 Class for representing vectors of binary data")
     (description "Raw vectors in R are useful for storing a single binary
@@ -2865,15 +2863,15 @@ a column in data frame.")
     (properties `((upstream-name . "RSQLite")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dbi" ,r-dbi)
-       ("r-memoise" ,r-memoise)
-       ("r-plogr" ,r-plogr)
-       ("r-rcpp" ,r-rcpp)
-       ("r-bit64" ,r-bit64)
-       ("r-blob" ,r-blob)
-       ("r-pkgconfig" ,r-pkgconfig)))
+     (list r-dbi
+           r-memoise
+           r-plogr
+           r-rcpp
+           r-bit64
+           r-blob
+           r-pkgconfig))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/rstats-db/RSQLite")
     (synopsis "SQLite interface for R")
     (description
@@ -2911,7 +2909,7 @@ if (certs != \"\") { .opts = merge.list(.opts, list(cainfo=certs)) }
     (inputs
      `(("libcurl" ,curl)))
     (propagated-inputs
-     `(("r-bitops" ,r-bitops)))
+     (list r-bitops))
     (home-page "http://www.omegahat.net/RCurl")
     (synopsis "General network client interface for R")
     (description
@@ -2928,21 +2926,20 @@ ldap, and also supports cookies, redirects, authentication, etc.")
 (define-public r-xml
   (package
     (name "r-xml")
-    (version "3.99-0.7")
+    (version "3.99-0.8")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "XML" version))
               (sha256
                (base32
-                "024038g1mrzkv7b7fyrzpzpxlch3sifsnaa584g98y3c3g6jbrz0"))))
+                "0l3bsgqw4bicv3sl2bfag7p4rh1y2pcyg0ajr73kkbg85qf6j7q8"))))
     (properties
      `((upstream-name . "XML")))
     (build-system r-build-system)
     (inputs
-     `(("libxml2" ,libxml2)
-       ("zlib" ,zlib)))
+     (list libxml2 zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://www.omegahat.net/RSXML")
     (synopsis "Tools for parsing and generating XML within R")
     (description
@@ -2992,7 +2989,7 @@ plotted and compared with the asymptotic curve.")
     (properties `((upstream-name . "lambda.r")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-formatr" ,r-formatr)))
+     (list r-formatr))
     (home-page "https://cran.r-project.org/web/packages/lambda.r")
     (synopsis "Functional programming extension for R")
     (description
@@ -3037,8 +3034,7 @@ options defined in other packages.")
     (properties `((upstream-name . "futile.logger")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-futile-options" ,r-futile-options)
-       ("r-lambda-r" ,r-lambda-r)))
+     (list r-futile-options r-lambda-r))
     (home-page "https://cran.r-project.org/web/packages/futile.logger")
     (synopsis "Logging utility for R")
     (description
@@ -3071,13 +3067,13 @@ multiple breakpoints are allowed.")
 (define-public r-snow
   (package
     (name "r-snow")
-    (version "0.4-3")
+    (version "0.4-4")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "snow" version))
               (sha256
                (base32
-                "1n3n8pva9s34fvlw32yng0x416lmbv7q1fsd0ywa4kikmxym64l5"))))
+                "1j8kvf3imxijsqkdjz4i9s7qggfxqrpas46y5wz6za92y937yn44"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/snow")
     (synopsis "Support for simple parallel computing in R")
@@ -3102,7 +3098,7 @@ worker processes and collect and return the results on the master.")
     (properties
      `((upstream-name . "SparseM")))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (build-system r-build-system)
     (home-page "http://www.econ.uiuc.edu/~roger/research/sparse/sparse.html")
     (synopsis "Sparse linear algebra")
@@ -3145,10 +3141,9 @@ data.")
          "1qb83b1jvpmk8d6kfibkm5q2hiki0x5gipy758mwa62n56gdcnpv"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-codetools" ,r-codetools)
-       ("r-iterators" ,r-iterators)))
+     (list r-codetools r-iterators))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/foreach")
     (synopsis "Foreach looping construct for R")
     (description
@@ -3176,8 +3171,7 @@ parallel.")
     (properties `((upstream-name . "doParallel")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-foreach" ,r-foreach)
-       ("r-iterators" ,r-iterators)))
+     (list r-foreach r-iterators))
     (home-page "https://cran.r-project.org/web/packages/doParallel")
     (synopsis "Foreach parallel adaptor for the 'parallel' package")
     (description
@@ -3199,8 +3193,7 @@ using the parallel package.")
     (properties `((upstream-name . "doMC")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-foreach" ,r-foreach)
-       ("r-iterators" ,r-iterators)))
+     (list r-foreach r-iterators))
     (home-page "https://cran.r-project.org/web/packages/doMC")
     (synopsis "Foreach parallel adaptor for the 'parallel' package")
     (description
@@ -3209,43 +3202,400 @@ using the multicore functionality of the parallel package.")
     (license license:gpl2+)))
 
 (define-public r-dt
-  (package
-    (name "r-dt")
-    (version "0.18")
-    (source (origin
-              (method url-fetch)
-              (uri (cran-uri "DT" version))
-              (sha256
-               (base32
-                "1vxqmj01504k9639m2cig1s4qflz3dj54h9rgx5qa72fpkvkk411"))))
-    (properties
-     `((upstream-name . "DT")))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-crosstalk" ,r-crosstalk)
-       ("r-htmltools" ,r-htmltools)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-magrittr" ,r-magrittr)
-       ("r-promises" ,r-promises)))
-    (native-inputs
-     `(("r-knitr" ,r-knitr)))
-    (home-page "https://rstudio.github.io/DT")
-    (synopsis "R wrapper of the DataTables JavaScript library")
-    (description
-     "This package allows for data objects in R to be rendered as HTML tables
+  (let ((javascript-sources
+         '(("https://cdn.datatables.net/1.10.20/js/jquery.dataTables.js"
+            "03ln7ys1q1hy3xpsrjxnjpg9hq3lfpqz0firrxsgjzj8fsw20is3"
+            "datatables")
+           ("https://cdn.datatables.net/1.10.20/js/dataTables.bootstrap.js"
+            "16clrnxm7axn6cdimyf3qbskxg10gpn9ld5ls2xdfw5q1qf2i4ml"
+            "datatables")
+           ("https://cdn.datatables.net/1.10.20/js/dataTables.bootstrap4.js"
+            "16v49zqxr1zil19bcx3wdnv95zdpiz2m979aazan7z04ymqb2rzb"
+            "datatables")
+           ("https://cdn.datatables.net/1.10.20/js/dataTables.foundation.js"
+            "1gpjm1pi2pl0hxsn0pg3s3f382y2s7nsr06866vxld6gb8054lld"
+            "datatables")
+           ("https://cdn.datatables.net/1.10.20/js/dataTables.jqueryui.js"
+            "0nxd8jph34vsk8k8whs2yiybrn6nsnwzhri0bxn2k1dzmcvpn24i"
+            "datatables")
+           ("https://cdn.datatables.net/1.10.20/js/dataTables.semanticui.js"
+            "1477f49xyxs4phias789mbspv23w8alxchhl5b5iy0aw6vd35c43"
+            "datatables")
+
+           ("https://cdn.datatables.net/autofill/2.3.4/js/dataTables.autoFill.js"
+            "04i6n7r3512gzfihl5wnhrvm0klnjp41g1z6cny3j803hvmnp8zk"
+            "datatables-extensions/AutoFill")
+           ("https://cdn.datatables.net/autofill/2.3.4/js/autoFill.bootstrap.js"
+            "1zi7iiq63i5qx3p9cyynn6am4idxwj8xaz8mp4n3klm1x68sc0ja"
+            "datatables-extensions/AutoFill")
+           ("https://cdn.datatables.net/autofill/2.3.4/js/autoFill.bootstrap4.js"
+            "1vk2smcz14raf0cz88a65yf36a7mnmbml02q03apg2b8bqy91m7w"
+            "datatables-extensions/AutoFill")
+           ("https://cdn.datatables.net/autofill/2.3.4/js/autoFill.foundation.js"
+            "0sbcib1461pkglk69fzzqi73g4abylah74f264v0f79dc5247yzz"
+            "datatables-extensions/AutoFill")
+           ("https://cdn.datatables.net/autofill/2.3.4/js/autoFill.jqueryui.js"
+            "1dw9vbbchzbd2c7id8na2p1cxac2kgjbzjrvqafra715hr0i4z3z"
+            "datatables-extensions/AutoFill")
+           ("https://cdn.datatables.net/autofill/2.3.4/js/autoFill.semanticui.js"
+            "07ck81y6wpqchq8jfym6gjgc57xwj6vv9h5w9grc1gps6p7q9xnr"
+            "datatables-extensions/AutoFill")
+
+           ("https://cdn.datatables.net/buttons/1.6.1/js/dataTables.buttons.js"
+            "15l9kd9898zm8xf996d5c761rwl55k4w718k9k5fzz2gh91g21g5"
+            "datatables-extensions/Buttons")
+           ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.colVis.js"
+            "1rqlv5pacipl652xgyzsdq1gbfwv52rwl4mr2fx9a3py21yskppk"
+            "datatables-extensions/Buttons")
+           ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.flash.js"
+            "150r2ypxl017kl5agrn17cnyvwpf7x2x7vkqbc1qxif8vclf35kj"
+            "datatables-extensions/Buttons")
+           ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.html5.js"
+            "1d8is99yrh95hycjijzbrbxy1anfslab6krmhj2xbwsmssyn16xh"
+            "datatables-extensions/Buttons")
+           ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.print.js"
+            "1irgspv2zidv6v0ay92152d8cvhz2zyrwb71xk3nw903223vc2gl"
+            "datatables-extensions/Buttons")
+           ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.semanticui.js"
+            "1p02r953ampxlzfzpay227ya6qdzsxz2anjxpnx3q8qs6gv6y2jl"
+            "datatables-extensions/Buttons")
+           ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.foundation.js"
+            "0aykm1sk8rwvxp5r4qnvbb2scx2bln5kh88h36829mcqcdksfc50"
+            "datatables-extensions/Buttons")
+           ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.jqueryui.js"
+            "1im6f6jw3yc3959rw1i3bghvz863kmp3wgfvz661r1r2wjzzfs4d"
+            "datatables-extensions/Buttons")
+           ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.bootstrap.js"
+            "1mzmpabhrk0iag7hb16n8bhghx4cprq39p2vqn3v65mpklajzznc"
+            "datatables-extensions/Buttons")
+           ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.bootstrap4.js"
+            "0hfclipg43wr9p7irrcn9vp5wji8z7gz6y5mclkq88z1mlpwklzf"
+            "datatables-extensions/Buttons")
+           ;; It is not clear what version the bundled file corresponds to.
+           ("https://cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0/jszip.js"
+            "18hpj9vwgki56ijb20l5gwmqa5p1d0xprn57z2mlg3ph6ll0bdkd"
+            "datatables-extensions/Buttons")
+           ("https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/pdfmake.js"
+            "1sfw80az2cgzin5wk7q1p2n9zm66c35cz0m6isdygml81i594wia"
+            "datatables-extensions/Buttons")
+           ("https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/vfs_fonts.js"
+            "1k324s0hw4lfpd71bb1cnv4j5096k8smk64fjdsh81sl0ykizf2w"
+            "datatables-extensions/Buttons")
+
+           ("https://cdn.datatables.net/colreorder/1.5.2/js/dataTables.colReorder.js"
+            "1dalc28km19xzzszsa82hsd9alikrqpzjvf9vzxkccjpf7m2sdqg"
+            "datatables-extensions/ColReorder")
+           ("https://cdn.datatables.net/colreorder/1.5.2/js/colReorder.foundation.js"
+            "0nrddc8swkmsfzji518kh6ks55ykyk9p8r4x5fmf8ckr9fhjkh0s"
+            "datatables-extensions/ColReorder")
+           ("https://cdn.datatables.net/colreorder/1.5.2/js/colReorder.bootstrap.js"
+            "0crgmjwcn817yz6ibjkji6gsickvv2a4las9asyldfcpj2c99x84"
+            "datatables-extensions/ColReorder")
+           ("https://cdn.datatables.net/colreorder/1.5.2/js/colReorder.bootstrap4.js"
+            "065fhw4v2d9rp3ic9zfb1q5d7pfq4f2949rr24hdjbspf19m3ymd"
+            "datatables-extensions/ColReorder")
+           ("https://cdn.datatables.net/colreorder/1.5.2/js/colReorder.semanticui.js"
+            "17kw143ny0nq0yidsffw3cpghvlg2bzlzavfi0ihkamcn26ymxcp"
+            "datatables-extensions/ColReorder")
+           ("https://cdn.datatables.net/colreorder/1.5.2/js/colReorder.jqueryui.js"
+            "1rd8hijz3prg2y36fvqczrpdzixibjy2dxgs2fmgr8wrm8k01rrm"
+            "datatables-extensions/ColReorder")
+
+           ("https://cdn.datatables.net/fixedcolumns/3.3.0/js/dataTables.fixedColumns.js"
+            "0vsqk2fv59n351bdfcbvhmvpq38qwf41j1cn810xz1l1i07cg4hg"
+            "datatables-extensions/FixedColumns")
+           ("https://cdn.datatables.net/fixedcolumns/3.3.0/js/fixedColumns.bootstrap.js"
+            "1j4wvg694l960gk5dg7wghwa3dpgq8mnrcgp78ghm92i08djb1wy"
+            "datatables-extensions/FixedColumns")
+           ("https://cdn.datatables.net/fixedcolumns/3.3.0/js/fixedColumns.bootstrap4.js"
+            "1p79k9bjslyvmp1bdhmg4nm2l9nbfsi4kgw7rx3vjka3n50qy730"
+            "datatables-extensions/FixedColumns")
+           ("https://cdn.datatables.net/fixedcolumns/3.3.0/js/fixedColumns.foundation.js"
+            "0f0xkrsapzgma58f6l63rpn68xid098dxwqqddsyddl0hy0x1z82"
+            "datatables-extensions/FixedColumns")
+           ("https://cdn.datatables.net/fixedcolumns/3.3.0/js/fixedColumns.jqueryui.js"
+            "0lw35c8vkajx75pg4ddik4gyzmjak1jaw3flq850frwgnzsvhahx"
+            "datatables-extensions/FixedColumns")
+           ("https://cdn.datatables.net/fixedcolumns/3.3.0/js/fixedColumns.semanticui.js"
+            "1kqsap9y0d25a7m5zjakipifl5qi2qr72kfj4ap3zxavd8md2wyn"
+            "datatables-extensions/FixedColumns")
+
+           ("https://cdn.datatables.net/fixedheader/3.1.6/js/dataTables.fixedHeader.js"
+            "1ml5ilnm8nirr6rsgmzn75l1k0hcjz3sqk6h1y1gy8cpwpklvqri"
+            "datatables-extensions/FixedHeader")
+           ("https://cdn.datatables.net/fixedheader/3.1.6/js/fixedHeader.bootstrap.js"
+            "1qf3pkb3svpia7g8bwyql7ma3x2g4zj5bp0d14pnv8xpc9h52r93"
+            "datatables-extensions/FixedHeader")
+           ("https://cdn.datatables.net/fixedheader/3.1.6/js/fixedHeader.bootstrap4.js"
+            "19jcvnk7zh4k6fd5si3b743x70qzlkqiw3m10jbc5jzbpz8sj6qd"
+            "datatables-extensions/FixedHeader")
+           ("https://cdn.datatables.net/fixedheader/3.1.6/js/fixedHeader.foundation.js"
+            "0xmpx1r76vykqygksyjaf4d1ql1fid69rqhvk4k857iybqz3gdcv"
+            "datatables-extensions/FixedHeader")
+           ("https://cdn.datatables.net/fixedheader/3.1.6/js/fixedHeader.jqueryui.js"
+            "1lc0g2cag1sj3bqmh7rh5z00pmfv1srxfhwi32y4mgpzhrzpfzxn"
+            "datatables-extensions/FixedHeader")
+           ("https://cdn.datatables.net/fixedheader/3.1.6/js/fixedHeader.semanticui.js"
+            "1v0i6dc68h8l8673fb5970igzkl7as36riv504iyg82glfi7n877"
+            "datatables-extensions/FixedHeader")
+
+           ("https://cdn.datatables.net/keytable/2.5.1/js/dataTables.keyTable.js"
+            "16iib2icxsjh93x5hd42gpsl7bzpcsqb7zjgj0m1s02ls45bdlv5"
+            "datatables-extensions/KeyTable")
+           ("https://cdn.datatables.net/keytable/2.5.1/js/keyTable.bootstrap.js"
+            "0hnhk6am4yl6h6bb7as935k8h2syil9hf8g7nn409yd3ws736xpj"
+            "datatables-extensions/KeyTable")
+           ("https://cdn.datatables.net/keytable/2.5.1/js/keyTable.bootstrap4.js"
+            "0r85mp5yf9hgl5ayzzs46dfbxa231bjlvgb8lqpyzik1m6afa51i"
+            "datatables-extensions/KeyTable")
+           ("https://cdn.datatables.net/keytable/2.5.1/js/keyTable.foundation.js"
+            "11fr14p33lyvs0wfcx228m600i4qcaqb44q3hk723jxcz59k17dw"
+            "datatables-extensions/KeyTable")
+           ("https://cdn.datatables.net/keytable/2.5.1/js/keyTable.jqueryui.js"
+            "0572rxrvwyprdr8l5jkgacj2bkmhmgxjy5vybm65n54g9j19l6bc"
+            "datatables-extensions/KeyTable")
+           ("https://cdn.datatables.net/keytable/2.5.1/js/keyTable.semanticui.js"
+            "157mqn9mhmmf7vas2das4hbpwipk3wshs8n0808q04rbijr0g2bz"
+            "datatables-extensions/KeyTable")
+
+           ("https://cdn.datatables.net/responsive/2.2.3/js/dataTables.responsive.js"
+            "1jnsx4sqf7qjd1gz5ag9hn6n76cwwfms23rzw37lgbd6h54yqzwr"
+            "datatables-extensions/Responsive")
+           ("https://cdn.datatables.net/responsive/2.2.3/js/responsive.foundation.js"
+            "1vzzqpd9l8xv0am42g4cilx9igmq60mgk0hab4ssqvbicrmrgq9z"
+            "datatables-extensions/Responsive")
+           ("https://cdn.datatables.net/responsive/2.2.3/js/responsive.semanticui.js"
+            "1cjiwcf0d07482k08dhn5ffsizshw4hqgz5l58p03pq9g6wc9pvm"
+            "datatables-extensions/Responsive")
+           ("https://cdn.datatables.net/responsive/2.2.3/js/responsive.jqueryui.js"
+            "10nykak2kf4sai64girh26xdmdil29jvw3zja2rpp2qzjg4172z9"
+            "datatables-extensions/Responsive")
+           ("https://cdn.datatables.net/responsive/2.2.3/js/responsive.bootstrap.js"
+            "1xxlh01vmzmfwwlsa611pl2nrl2sx58rp8xmx301bfsylmp2v5b2"
+            "datatables-extensions/Responsive")
+           ("https://cdn.datatables.net/responsive/2.2.3/js/responsive.bootstrap4.js"
+            "1zjh15p7n1038sggaxv1xvcwbkhw2nk1ndx745s6cxiqb69y3i0h"
+            "datatables-extensions/Responsive")
+
+           ("https://cdn.datatables.net/rowgroup/1.1.1/js/dataTables.rowGroup.js"
+            "0s4q7ir2d6q36g29nn9mqk7vrqrdig2mm5zbcv0sn2lixqi29pkj"
+            "datatables-extensions/RowGroup")
+           ("https://cdn.datatables.net/rowgroup/1.1.1/js/rowGroup.bootstrap.js"
+            "1xfdhqgznz9x1v8spvql6b0wbna13h8cbzvkjza14nqsmccxck66"
+            "datatables-extensions/RowGroup")
+           ("https://cdn.datatables.net/rowgroup/1.1.1/js/rowGroup.bootstrap4.js"
+            "1xm53sda4fabwdaglngrj09bpiygkn9mm17grxbykn1jazqqdp62"
+            "datatables-extensions/RowGroup")
+           ("https://cdn.datatables.net/rowgroup/1.1.1/js/rowGroup.foundation.js"
+            "0832i10vils1wv1sm10qvsnd4i2k2xkhskz6i9y2q0axkmk73hcd"
+            "datatables-extensions/RowGroup")
+           ("https://cdn.datatables.net/rowgroup/1.1.1/js/rowGroup.jqueryui.js"
+            "0n53cd294s9mjblkykkqvd9n414bsc26wpcg5spxdscjl6hxh79p"
+            "datatables-extensions/RowGroup")
+           ("https://cdn.datatables.net/rowgroup/1.1.1/js/rowGroup.semanticui.js"
+            "010wls5nf387p21fdc2k952bxq89r5kxkv7j4wbvwf8k2a18cmc9"
+            "datatables-extensions/RowGroup")
+
+           ("https://cdn.datatables.net/rowreorder/1.2.6/js/dataTables.rowReorder.js"
+            "13ymbn3h9755pgb0gmlb9gl54vz9nqnz4mws7g6mlmz53r3sqhmj"
+            "datatables-extensions/RowReorder")
+           ("https://cdn.datatables.net/rowreorder/1.2.6/js/rowReorder.bootstrap.js"
+            "185if2pxgc940rm49hdgln57pc5h9cszlii3bfpdf3pdc1fjhckm"
+            "datatables-extensions/RowReorder")
+           ("https://cdn.datatables.net/rowreorder/1.2.6/js/rowReorder.bootstrap4.js"
+            "14129x4md57i4ff7j18m49jn5fw8r716np84cdrcawlydgjsxp4a"
+            "datatables-extensions/RowReorder")
+           ("https://cdn.datatables.net/rowreorder/1.2.6/js/rowReorder.foundation.js"
+            "0zg94jckymxzda2xjyj9p38y5v61cji55kak1ylq72l6a9sw8sg6"
+            "datatables-extensions/RowReorder")
+           ("https://cdn.datatables.net/rowreorder/1.2.6/js/rowReorder.jqueryui.js"
+            "08gm419xcixgqw0i5yv2mxyyvafhzviibifp6nv129vdxx0a5d8v"
+            "datatables-extensions/RowReorder")
+           ("https://cdn.datatables.net/rowreorder/1.2.6/js/rowReorder.semanticui.js"
+            "1zjrx2rlgw3qannsqa88pcp3i4pc87pwv7rmgfw1dar8namkr9kk"
+            "datatables-extensions/RowReorder")
+
+           ("https://cdn.datatables.net/scroller/2.0.1/js/dataTables.scroller.js"
+            "0zfjjdvwwlsnps24i9l4c97hmway2qs6addks1is5bxl4k1r6d16"
+            "datatables-extensions/Scroller")
+           ("https://cdn.datatables.net/scroller/2.0.1/js/scroller.foundation.js"
+            "04bk6ink8wqay7655v93jvv86m3bn6asrsfb22i99rgxdvm8gn1z"
+            "datatables-extensions/Scroller")
+           ("https://cdn.datatables.net/scroller/2.0.1/js/scroller.bootstrap.js"
+            "19dl40dl8ir21xvs1j7xhm2a4py1m21xbypwn499fg2awj8vaidi"
+            "datatables-extensions/Scroller")
+           ("https://cdn.datatables.net/scroller/2.0.1/js/scroller.bootstrap4.js"
+            "0pbkgncijlafwdmyh4l65dabd18hzjh8r01cad3b9iy8cfif6iwd"
+            "datatables-extensions/Scroller")
+           ("https://cdn.datatables.net/scroller/2.0.1/js/scroller.jqueryui.js"
+            "1md5mpx5in7wzsr38yn801cmv3phm0i0ikdnpd0b1nsna5ccpj14"
+            "datatables-extensions/Scroller")
+           ("https://cdn.datatables.net/scroller/2.0.1/js/scroller.semanticui.js"
+            "1dfbblbzbryjgiv31qfdjnijz19lmyijg12win3y8gsgfd4fp9zz"
+            "datatables-extensions/Scroller")
+
+           ("https://cdn.datatables.net/searchbuilder/1.0.0/js/dataTables.searchBuilder.js"
+            "0n5g0j0yfzqvdpsmwb27bj1rd8zx864fsx2k7b2kpv6mqqavzpqc"
+            "datatables-extensions/SearchBuilder")
+           ("https://cdn.datatables.net/searchbuilder/1.0.0/js/searchBuilder.bootstrap.js"
+            "1gnd8rjcg9c96xayshn9rwinzgmlwzddczjlpfmf2j33npmyka2y"
+            "datatables-extensions/SearchBuilder")
+           ("https://cdn.datatables.net/searchbuilder/1.0.0/js/searchBuilder.bootstrap4.js"
+            "0vdv5mi6zbp2dspmj0lw2vaqxvfadcydlmc6frqv4a68rms7wz05"
+            "datatables-extensions/SearchBuilder")
+           ("https://cdn.datatables.net/searchbuilder/1.0.0/js/searchBuilder.dataTables.js"
+            "0fbzfnaqswb2xq7m1vdzcg7l7qi0wmyz64ml6k4002kp0dm4xnlx"
+            "datatables-extensions/SearchBuilder")
+
+           ("https://cdn.datatables.net/searchpanes/1.1.1/js/dataTables.searchPanes.js"
+            "1s697avk42h24fsaq79d1kkw66dqig7xgpx9bvmhwncv8amkmz6i"
+            "datatables-extensions/SearchPanes")
+           ("https://cdn.datatables.net/searchpanes/1.1.1/js/searchPanes.bootstrap.js"
+            "0n3z4fdx1nsga4l5hmd4s93piv9k0v607xd7q9h2zpq613if7sld"
+            "datatables-extensions/SearchPanes")
+           ("https://cdn.datatables.net/searchpanes/1.1.1/js/searchPanes.bootstrap4.js"
+            "1i1arnvxp57z01wc207jxnw9h8clcish6l96c2gnmachgkaz8lqa"
+            "datatables-extensions/SearchPanes")
+           ("https://cdn.datatables.net/searchpanes/1.1.1/js/searchPanes.dataTables.js"
+            "04zzg7i46igcd6gfvdln5alpgjn7m663yf9bf2f3fk9va4fvis6y"
+            "datatables-extensions/SearchPanes")
+           ("https://cdn.datatables.net/searchpanes/1.1.1/js/searchPanes.foundation.js"
+            "0m78wdajxn1m3j9jn9jfwqf73wwsxrsfw4zf84h5y6saj4rrcz72"
+            "datatables-extensions/SearchPanes")
+           ("https://cdn.datatables.net/searchpanes/1.1.1/js/searchPanes.jqueryui.js"
+            "0zb2x736isb8nxrmd7j8nb78lj8h0h9j3axnbjiybwzzk819xw1m"
+            "datatables-extensions/SearchPanes")
+           ("https://cdn.datatables.net/searchpanes/1.1.1/js/searchPanes.semanticui.js"
+            "1781d0xmx7xz0jly0wsw2zbrdmfc1crahmcdbsfbj5s66kdsnd7c"
+            "datatables-extensions/SearchPanes")
+
+           ("https://cdn.datatables.net/select/1.3.1/js/dataTables.select.js"
+            "0a7bkbz1cizhiq4h417b4rcdr7998pn8q4dlyzx8449xdp0h0n0v"
+            "datatables-extensions/Select")
+           ("https://cdn.datatables.net/select/1.3.1/js/select.bootstrap.js"
+            "0mm5ly3p2iprlfi8ajz548rjqx8lz1sbjj5ysgqmwqg14gw7l9k7"
+            "datatables-extensions/Select")
+           ("https://cdn.datatables.net/select/1.3.1/js/select.bootstrap4.js"
+            "1hv6d9lwgflmxhy7mdfb9rvli2wa2cbkdhqjz64zkf1a1a7wlb5q"
+            "datatables-extensions/Select")
+           ("https://cdn.datatables.net/select/1.3.1/js/select.foundation.js"
+            "1zzygcbngvrqh7m22x0s23k8m5xj5fv1p466pzjs23p94qq24a2r"
+            "datatables-extensions/Select")
+           ("https://cdn.datatables.net/select/1.3.1/js/select.jqueryui.js"
+            "1hv5zlmfifd27hylfqsji09y2hbp3m2hnb7j41418sjrxs63f6x6"
+            "datatables-extensions/Select")
+           ("https://cdn.datatables.net/select/1.3.1/js/select.semanticui.js"
+            "0q6q3vb6pa5nmkxy7zcnjs0bkn4ldw8ykdcfrc04bf1d2hjjaw47"
+            "datatables-extensions/Select"))))
+    (package
+      (name "r-dt")
+      (version "0.20")
+      (source (origin
+                (method url-fetch)
+                (uri (cran-uri "DT" version))
+                (sha256
+                 (base32
+                  "17xs18i439p15agyk7z2xyyrwgrpn5pw09kd3jwxn7qhxi4pyvf6"))
+                (modules '((guix build utils)))
+                (snippet
+                 '(for-each delete-file
+                            (find-files "inst/htmlwidgets/lib" "\\.min\\.js$")))))
+      (properties
+       `((upstream-name . "DT")))
+      (build-system r-build-system)
+      (arguments
+       `(#:modules
+         ((guix build r-build-system)
+          (guix build minify-build-system)
+          (guix build utils)
+          (ice-9 match))
+         #:imported-modules
+         (,@%r-build-system-modules
+          (guix build minify-build-system))
+         #:phases
+         (modify-phases (@ (guix build r-build-system) %standard-phases)
+           (add-after 'unpack 'process-javascript
+             (lambda* (#:key inputs #:allow-other-keys)
+               (with-directory-excursion "inst/htmlwidgets/lib/"
+                 (for-each (match-lambda
+                             ((url hash dir)
+                              (let* ((input (string-append "js:" (basename url)))
+                                     (source (assoc-ref inputs input))
+                                     (target (string-append dir "/js/"
+                                                            (basename url ".js")
+                                                            ".min.js")))
+                                (mkdir-p dir)
+                                (minify source #:target target))))
+                           ',javascript-sources)
+                 (minify (string-append (assoc-ref inputs "datatables-plugins")
+                                        "/features/scrollResize/dataTables.scrollResize.js")
+                         #:target "datatables-plugins/features/scrollResize/source.min.js")
+                 (minify (string-append (assoc-ref inputs "datatables-plugins")
+                                        "/features/searchHighlight/dataTables.searchHighlight.js")
+                         #:target "datatables-plugins/features/searchHighlight/source.min.js")
+                 (minify (assoc-ref inputs "js-nouislider")
+                         #:target "nouislider/jquery.nouislider.min.js")
+
+                 (let ((replace-file (lambda (old new)
+                                       (format #t "replacing ~a with ~a\n" old new)
+                                       (symlink new old))))
+                   (replace-file "selectize/selectize.min.js"
+                                 (string-append (assoc-ref inputs "js-selectize")
+                                                "/share/javascript/selectize.min.js")))))))))
+      (propagated-inputs
+       (list r-crosstalk
+             r-htmltools
+             r-htmlwidgets
+             r-jquerylib
+             r-jsonlite
+             r-magrittr
+             r-promises))
+      (inputs
+       (list js-selectize))
+      (native-inputs
+       `(("r-knitr" ,r-knitr)
+         ("uglifyjs" ,node-uglify-js)
+         ("datatables-plugins"
+          ,(let ((version "1.10.20"))
+             (origin
+               (method git-fetch)
+               (uri (git-reference
+                     (url "https://github.com/DataTables/Plugins.git")
+                     (commit version)))
+               (file-name (git-file-name "datatables-plugins" version))
+               (sha256
+                (base32
+                 "05zni20863ml1711lfllljdfkb3k05h0kpqhkijkbp0bp7q0ak94")))))
+         ("js-nouislider"
+          ,(let ((version "7.0.10"))
+             (origin
+               (method url-fetch)
+               (uri (string-append "https://raw.githubusercontent.com/leongersen/noUiSlider/"
+                                   version "/distribute/jquery.nouislider.js"))
+               (sha256
+                (base32
+                 "1f7vsfcn7wwzngib6j0wpl0psd6qriiaa6kv728ynfn5da73zfxm")))))
+         ,@(map (match-lambda
+                  ((url hash dir)
+                   `(,(string-append "js:" (basename url))
+                     ,(origin (method url-fetch)
+                              (uri url)
+                              (sha256 (base32 hash))))))
+                javascript-sources)))
+      (home-page "https://rstudio.github.io/DT")
+      (synopsis "R wrapper of the DataTables JavaScript library")
+      (description
+       "This package allows for data objects in R to be rendered as HTML tables
 using the JavaScript library @code{DataTables} (typically via R Markdown or
 Shiny).  The @code{DataTables} library has been included in this R package.")
-    ;; The DT package as a whole is distributed under GPLv3.  The DT package
-    ;; inludes other software components under different licenses:
-    ;;
-    ;;   * Expat: jQuery, jquery.highlight.js, DataTables
-    ;;   * ASL2.0: selectize.js
-    ;;   * WTFPL: noUiSlider
-    (license (list license:gpl3
-                   license:expat
-                   license:asl2.0
-                   license:wtfpl2))))
+      ;; The DT package as a whole is distributed under GPLv3.  The DT package
+      ;; inludes other software components under different licenses:
+      ;;
+      ;;   * Expat: jquery.highlight.js, DataTables
+      ;;   * WTFPL: noUiSlider
+      (license (list license:gpl3
+                     license:expat
+                     license:wtfpl2)))))
 
 (define-public r-base64enc
   (package
@@ -3278,7 +3628,7 @@ flexible than the orphaned \"base64\" package.")
          "1h7mzrqdjc41814cf6c93sbyl7nxwvsf3x8apl9rhmydgdlk7qkf"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)))
+     (list r-matrix))
     (home-page "https://cran.r-project.org/web/packages/irlba")
     (synopsis "Methods for eigendecomposition of large matrices")
     (description
@@ -3290,22 +3640,23 @@ analysis of large sparse or dense matrices.")
 (define-public r-glmnet
   (package
    (name "r-glmnet")
-   (version "4.1-2")
+   (version "4.1-3")
    (source
     (origin
      (method url-fetch)
      (uri (cran-uri "glmnet" version))
      (sha256
-      (base32 "1kfd8kfhapx2cxw6qnkbs502c3kya4pd9qmf0mk76cdlq1c2paq6"))))
+      (base32 "0nij8v44b5dvp1vc843sfkl9ds83n6g687m2p37q1rdn82m3bg34"))))
    (build-system r-build-system)
    (native-inputs
-    `(("gfortran" ,gfortran)
-      ("r-knitr" ,r-knitr)))
+    (list gfortran r-knitr))
    (propagated-inputs
-    `(("r-foreach" ,r-foreach)
-      ("r-matrix" ,r-matrix)
-      ("r-shape" ,r-shape)
-      ("r-survival" ,r-survival)))
+    (list r-foreach
+          r-matrix
+          r-rcpp
+          r-rcppeigen
+          r-shape
+          r-survival))
    (home-page "https://www.jstatsoft.org/article/view/v033i01")
    (synopsis "Lasso and elastic-net regularized generalized linear models")
    (description
@@ -3329,13 +3680,13 @@ path-wise fashion.")
          "14ggsd24n5g5rvn0wl4w90ipxzmywqikh28llj89q6kpxwnv4iff"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-assertthat" ,r-assertthat)
-       ("r-codetools" ,r-codetools)
-       ("r-digest" ,r-digest)
-       ("r-registry" ,r-registry)
-       ("r-stringr" ,r-stringr)
-       ("r-withr" ,r-withr)
-       ("r-xtable" ,r-xtable)))
+     (list r-assertthat
+           r-codetools
+           r-digest
+           r-registry
+           r-stringr
+           r-withr
+           r-xtable))
     (home-page "https://renozao.github.io/pkgmaker")
     (synopsis "Package development utilities")
     (description
@@ -3366,17 +3717,17 @@ package registries.")
 (define-public r-rngtools
   (package
     (name "r-rngtools")
-    (version "1.5")
+    (version "1.5.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rngtools" version))
        (sha256
         (base32
-         "0xgmg3qb6insc157as47mcm9sdjdpy9jirh7w06bxb7pfcxqfx42"))))
+         "0kd7x214cqw7hzpmk1iqy1bn7j6x0ady0yz2hsdbclbq9k57d33z"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-digest" ,r-digest)))
+     (list r-digest))
     (home-page "https://renozao.github.io/rngtools")
     (synopsis "Utility functions for working with random number generators")
     (description
@@ -3401,7 +3752,7 @@ the way current RNG settings can be changed.")
     (properties `((upstream-name . "Rtsne")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (home-page "https://github.com/jkrijthe/Rtsne")
     (synopsis "T-distributed stochastic neighbor embedding")
     (description
@@ -3414,18 +3765,17 @@ Stochastic Neighbor Embedding using a Barnes-Hut implementation.")
 (define-public r-e1071
   (package
     (name "r-e1071")
-    (version "1.7-8")
+    (version "1.7-9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "e1071" version))
        (sha256
         (base32
-         "16lw0pr71h00whndkkv9zh2ixm6vc8bkp8m4i5wwhmihd9abdkdb"))))
+         "09i2hmyf1bxansqp24p9n9djlzzarclqs173gjjv3fg0giga3ycv"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-class" ,r-class)
-       ("r-proxy" ,r-proxy)))
+     (list r-class r-proxy))
     (home-page "https://cran.r-project.org/web/packages/e1071")
     (synopsis "Miscellaneous functions for probability theory")
     (description
@@ -3467,10 +3817,7 @@ bigmemory and synchronicity packages.")
          "1kgsk64aifjm3mfj102y3va7x1abypq2zi0cqbnjhl8fqyzp69hx"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-bigmemory-sri" ,r-bigmemory-sri)
-       ("r-rcpp" ,r-rcpp)
-       ("r-uuid" ,r-uuid)))
+     (list r-bh r-bigmemory-sri r-rcpp r-uuid))
     (home-page "http://www.bigmemory.org")
     (synopsis "Boost mutex functionality in R")
     (description "This package provides support for synchronization
@@ -3492,9 +3839,7 @@ message passing.")
          "03pg8mxdc7q0249visjmc8bc3xmwxsfg3i2n6higicj4cfz7zihq"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-bh" ,r-bh)
-       ("r-rcpp" ,r-rcpp)
-       ("r-bigmemory-sri" ,r-bigmemory-sri)))
+     (list r-bh r-rcpp r-bigmemory-sri))
     (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
@@ -3540,7 +3885,7 @@ want to migrate to S4.")
     (properties `((upstream-name . "R.oo")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-r-methodss3" ,r-r-methodss3)))
+     (list r-r-methodss3))
     (home-page "https://github.com/HenrikBengtsson/R.oo")
     (synopsis "R object-oriented programming with or without references")
     (description
@@ -3553,18 +3898,17 @@ maintenance for package developers.")
 (define-public r-r-utils
   (package
     (name "r-r-utils")
-    (version "2.10.1")
+    (version "2.11.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "R.utils" version))
               (sha256
                (base32
-                "1gssnk73nhisc20by9kvfl4byfsmwrk6597na0x40ycck58lyylm"))))
+                "1n7y4dzls7dc8fdkm9zncq4cpiblb2a9vwirwjkf72zpjpwn0a32"))))
     (properties `((upstream-name . "R.utils")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-r-methodss3" ,r-r-methodss3)
-       ("r-r-oo" ,r-r-oo)))
+     (list r-r-methodss3 r-r-oo))
     (home-page "https://github.com/HenrikBengtsson/R.utils")
     (synopsis "Various programming utilities")
     (description
@@ -3590,10 +3934,7 @@ developing R packages.")
          (add-after 'unpack 'set-HOME
            (lambda _ (setenv "HOME" "/tmp"))))))
     (propagated-inputs
-     `(("r-digest" ,r-digest)
-       ("r-r-methodss3" ,r-r-methodss3)
-       ("r-r-oo" ,r-r-oo)
-       ("r-r-utils" ,r-r-utils)))
+     (list r-digest r-r-methodss3 r-r-oo r-r-utils))
     (home-page "https://github.com/HenrikBengtsson/R.cache")
     (synopsis "Light-weight caching of objects and results")
     (description
@@ -3621,11 +3962,7 @@ persistent (on the file system).")
          (add-after 'unpack 'set-HOME
            (lambda _ (setenv "HOME" "/tmp"))))))
     (propagated-inputs
-     `(("r-digest" ,r-digest)
-       ("r-r-cache" ,r-r-cache)
-       ("r-r-methodss3" ,r-r-methodss3)
-       ("r-r-oo" ,r-r-oo)
-       ("r-r-utils" ,r-r-utils)))
+     (list r-digest r-r-cache r-r-methodss3 r-r-oo r-r-utils))
     (home-page "https://github.com/HenrikBengtsson/R.rsp")
     (synopsis "Dynamic generation of scientific reports")
     (description
@@ -3643,16 +3980,16 @@ vignettes.")
 (define-public r-mvtnorm
   (package
     (name "r-mvtnorm")
-    (version "1.1-2")
+    (version "1.1-3")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "mvtnorm" version))
               (sha256
                (base32
-                "05wh7mprf2sim2kxh3d72pdcmml6vbikzxavws1dq6mxwlsy2p7j"))))
+                "0j14q2bkc14v35s5k03sw44zsssrd2qjljlwzj014qxs74hk0kpz"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "http://mvtnorm.R-forge.R-project.org")
     (synopsis "Package for multivariate normal and t-distributions")
     (description "This package can compute multivariate normal and
@@ -3662,13 +3999,13 @@ t-probabilities, quantiles, random deviates and densities.")
 (define-public r-matrixstats
   (package
     (name "r-matrixstats")
-    (version "0.60.0")
+    (version "0.61.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "matrixStats" version))
               (sha256
                (base32
-                "08azjib5pwqs683dpgr3p5gid0silddcq6baqmvmazncrw1r7q0f"))))
+                "16pxsba5i51ifbbgvxln2w6nigbwd3290b2ckgzn5bmib7nc1lyv"))))
     (properties `((upstream-name . "matrixStats")))
     (build-system r-build-system)
     (arguments
@@ -3677,7 +4014,7 @@ t-probabilities, quantiles, random deviates and densities.")
          (add-after 'unpack 'set-HOME
            (lambda _ (setenv "HOME" "/tmp"))))))
     (native-inputs
-     `(("r-r-rsp" ,r-r-rsp))) ;used to build vignettes
+     (list r-r-rsp)) ;used to build vignettes
     (home-page "https://github.com/HenrikBengtsson/matrixStats")
     (synopsis "Methods applying to vectors and matrix rows and columns")
     (description
@@ -3691,20 +4028,18 @@ memory usage.")
 (define-public r-viridis
   (package
     (name "r-viridis")
-    (version "0.6.1")
+    (version "0.6.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "viridis" version))
               (sha256
                (base32
-                "1fyax36ycjiypcnxhrv58pq67qv03vfg4lx822d38jpjly54q128"))))
+                "048kwhbhd49g86cq11fl7vm0whwhjl5gs9xjn040lwcjv78qrdb9"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-viridislite" ,r-viridislite)))
+     (list r-ggplot2 r-gridextra r-viridislite))
     (native-inputs
-     `(("r-knitr" ,r-knitr))) ; for vignettes
+     (list r-knitr)) ; for vignettes
     (home-page "https://github.com/sjmgarnier/viridis")
     (synopsis "Matplotlib default color map")
     (description
@@ -3756,13 +4091,9 @@ more complete @code{viridis} package.")
          "0ss8mq05mwif64cj8zmrfx0ljgy3n0fvyv7f37782shr8rknmsqq"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ellipsis" ,r-ellipsis)
-       ("r-glue" ,r-glue)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-ellipsis r-glue r-purrr r-rlang r-vctrs))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/tidyselect")
     (synopsis "Select from a set of strings")
     (description
@@ -3775,29 +4106,29 @@ selection.")
 (define-public r-tidyr
   (package
     (name "r-tidyr")
-    (version "1.1.3")
+    (version "1.1.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tidyr" version))
        (sha256
         (base32
-         "0cpbrvr759z8p7r9lpkjhj2dcdymsbnaib0rma9b4jb7i3qzmh2a"))))
+         "0h8jfsmn4r7zgfyjmg2qkjd54n0sncq07xjh4mdf2cx4k2z9h30b"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cpp11" ,r-cpp11)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ellipsis" ,r-ellipsis)
-       ("r-magrittr" ,r-magrittr)
-       ("r-glue" ,r-glue)
-       ("r-lifecycle" ,r-lifecycle)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-tidyselect" ,r-tidyselect)
-       ("r-tibble" ,r-tibble)
-       ("r-vctrs" ,r-vctrs)))
+     (list r-cpp11
+           r-dplyr
+           r-ellipsis
+           r-magrittr
+           r-glue
+           r-lifecycle
+           r-purrr
+           r-rlang
+           r-tidyselect
+           r-tibble
+           r-vctrs))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/hadley/tidyr")
     (synopsis "Tidy data with `spread()` and `gather()` functions")
     (description
@@ -3822,10 +4153,9 @@ and tidyr provides no margins or aggregation.")
          "0bbhs5pwxh474w62sq6gqvih7habancxng9wd4f2rgn6lv9zhhb2"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)))
+     (list r-lattice))
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("r-knitr" ,r-knitr))) ; for vignettes
+     (list gfortran r-knitr)) ; for vignettes
     (home-page "https://github.com/edzer/hexbin")
     (synopsis "Hexagonal binning routines")
     (description
@@ -3846,10 +4176,9 @@ It uses and relies on grid graphics and formal (S4) classes and methods.")
          "1cj091rsjdj2xz16qhynyw72gh5cyhznifcfbrbygndfr4xwksr3"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-magrittr" ,r-magrittr)
-       ("r-rlang" ,r-rlang)))
+     (list r-magrittr r-rlang))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/hadley/purrr")
     (synopsis "Functional programming tools")
     (description
@@ -3860,36 +4189,36 @@ features present in other programming languages.")
 (define-public r-plotly
   (package
     (name "r-plotly")
-    (version "4.9.4.1")
+    (version "4.10.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "plotly" version))
               (sha256
                (base32
-                "1q711c0lg0jmzrmcc2fhjy70ms49as7cakdbgbh2ij9s149fa7iq"))))
+                "16iqj7sv49mva6siibsci7iijsbnk7pqvfns9al0k35w9mjmr6dx"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-crosstalk" ,r-crosstalk)
-       ("r-digest" ,r-digest)
-       ("r-data-table" ,r-data-table)
-       ("r-dplyr" ,r-dplyr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-htmltools" ,r-htmltools)
-       ("r-htmlwidgets" ,r-htmlwidgets)
-       ("r-httr" ,r-httr)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-lazyeval" ,r-lazyeval)
-       ("r-magrittr" ,r-magrittr)
-       ("r-promises" ,r-promises)
-       ("r-purrr" ,r-purrr)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-vctrs" ,r-vctrs)
-       ("r-viridislite" ,r-viridislite)))
+     (list r-base64enc
+           r-crosstalk
+           r-digest
+           r-data-table
+           r-dplyr
+           r-ggplot2
+           r-htmltools
+           r-htmlwidgets
+           r-httr
+           r-jsonlite
+           r-lazyeval
+           r-magrittr
+           r-promises
+           r-purrr
+           r-rcolorbrewer
+           r-rlang
+           r-scales
+           r-tibble
+           r-tidyr
+           r-vctrs
+           r-viridislite))
     (home-page "https://plot.ly/r")
     (synopsis "Create interactive web graphics")
     (description
@@ -3955,8 +4284,7 @@ character vector.")
          "16fgi3annn34c3cxi0pxf62mmmmxi21hp0zzlv7bkfsjqy4g4f2x"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rematch" ,r-rematch)
-       ("r-tibble" ,r-tibble)))
+     (list r-rematch r-tibble))
     (home-page "https://github.com/rsheets/cellranger")
     (synopsis "Translate spreadsheet cell ranges to rows and columns")
     (description
@@ -3977,16 +4305,16 @@ character vector.")
          "11q07nxys72wkxx9mawmjyf20gvwvrb7h3gpa73h6lgh2vgrwnv8"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-cellranger" ,r-cellranger)
-       ("r-dplyr" ,r-dplyr)
-       ("r-httr" ,r-httr)
-       ("r-jsonlite" ,r-jsonlite)
-       ("r-purrr" ,r-purrr)
-       ("r-readr" ,r-readr)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-xml2" ,r-xml2)))
+     (list r-cellranger
+           r-dplyr
+           r-httr
+           r-jsonlite
+           r-purrr
+           r-readr
+           r-stringr
+           r-tibble
+           r-tidyr
+           r-xml2))
     (home-page "https://github.com/jennybc/googlesheets")
     (synopsis "Manage Google spreadsheets from R")
     (description "This package provides tools to interact with Google Sheets
@@ -4019,8 +4347,7 @@ from within R.")
                (("-mtune=native") ""))
              #t)))))
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)
-       ("r-matrix" ,r-matrix)))
+     (list r-lattice r-matrix))
     (home-page "https://spams-devel.gforge.inria.fr")
     (synopsis "Toolbox for solving sparse estimation problems")
     (description "SPAMS (SPArse Modeling Software) is an optimization toolbox
@@ -4051,7 +4378,7 @@ following problems:
          "1labh0ycdm2xcjssj8bhnyjvbk44mcdsi0rb2p8rfqa428mrq9cf"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-openssl" ,r-openssl)))
+     (list r-openssl))
     (home-page "https://cran.r-project.org/web/packages/base64")
     (synopsis "Base64 encoder and decoder")
     (description
@@ -4063,34 +4390,34 @@ package instead.")
 (define-public r-hmisc
   (package
     (name "r-hmisc")
-    (version "4.5-0")
+    (version "4.6-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Hmisc" version))
        (sha256
-        (base32 "11qj73zj16p113jpwn2vv06l99kqlcxcmrldbpyi5s7pwing9jnx"))))
+        (base32 "1bd1c8sichyijprfpnqj5g72nmgs9jvi0zyw8v4nsg1kn83fj71c"))))
     (properties `((upstream-name . "Hmisc")))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (propagated-inputs
-     `(("r-base64enc" ,r-base64enc)
-       ("r-cluster" ,r-cluster)
-       ("r-data-table" ,r-data-table)
-       ("r-foreign" ,r-foreign)
-       ("r-formula" ,r-formula)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-gridextra" ,r-gridextra)
-       ("r-gtable" ,r-gtable)
-       ("r-lattice" ,r-lattice)
-       ("r-latticeextra" ,r-latticeextra)
-       ("r-htmltable" ,r-htmltable)
-       ("r-htmltools" ,r-htmltools)
-       ("r-nnet" ,r-nnet)
-       ("r-rpart" ,r-rpart)
-       ("r-survival" ,r-survival)
-       ("r-viridis" ,r-viridis)))
+     (list r-base64enc
+           r-cluster
+           r-data-table
+           r-foreign
+           r-formula
+           r-ggplot2
+           r-gridextra
+           r-gtable
+           r-lattice
+           r-latticeextra
+           r-htmltable
+           r-htmltools
+           r-nnet
+           r-rpart
+           r-survival
+           r-viridis))
     (home-page "http://biostat.mc.vanderbilt.edu/Hmisc")
     (synopsis "Miscellaneous data analysis and graphics functions")
     (description
@@ -4170,14 +4497,14 @@ existing packages provide.")
 (define-public r-sfsmisc
   (package
     (name "r-sfsmisc")
-    (version "1.1-11")
+    (version "1.1-12")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sfsmisc" version))
        (sha256
         (base32
-         "1qm39v2a41rgiv1hxwxl06grgbmjgg3r2ch5df3zsf82rs9fv2n7"))))
+         "10h76pgzcxv1y5pkmba9607lvjrsyq62sq63s2n7ry7z5151h4lv"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/sfsmisc")
     (synopsis "Utilities from \"Seminar fuer Statistik\" ETH Zurich")
@@ -4221,9 +4548,9 @@ tests for whether a value is missing, empty or contains only @code{NA} and
          "0zwdj7lscgxr8r62ii8hbdh4mb7sa9w4f5nv32zzrxdvymcpya2b"))))
     (build-system r-build-system)
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (propagated-inputs
-     `(("r-gtools" ,r-gtools)))
+     (list r-gtools))
     (home-page "https://cran.r-project.org/web/packages/gdata")
     (synopsis "Various R programming tools for data manipulation")
     (description
@@ -4261,11 +4588,9 @@ including:
          "0f8khaymz383w2ksnk80d4kpnvgmdk37pbycpsnl2vabaz11kbpr"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-catools" ,r-catools)
-       ("r-gtools" ,r-gtools)
-       ("r-kernsmooth" ,r-kernsmooth)))
+     (list r-catools r-gtools r-kernsmooth))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/gplots")
     (synopsis "Various R programming tools for plotting data")
     (description
@@ -4303,9 +4628,9 @@ including:
     (properties `((upstream-name . "ROCR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-gplots" ,r-gplots)))
+     (list r-gplots))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://rocr.bioinf.mpi-sb.mpg.de/")
     (synopsis "Visualizing the performance of scoring classifiers")
     (description
@@ -4324,24 +4649,24 @@ mechanism.")
 (define-public r-ztable
   (package
     (name "r-ztable")
-    (version "0.2.2")
+    (version "0.2.3")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "ztable" version))
               (sha256
                (base32
-                "0wxcdb7yp2r6w5iznz1k49npp5sn4jiybfcj30s3198hkcnv0r8y"))))
+                "1ps7ix0hc84s0p0ra6bkjxky3cffs1rvdcagqzj78lbdq22dk5j8"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-flextable" ,r-flextable)
-       ("r-magrittr" ,r-magrittr)
-       ("r-officer" ,r-officer)
-       ("r-rcolorbrewer" ,r-rcolorbrewer)
-       ("r-rstudioapi" ,r-rstudioapi)
-       ("r-scales" ,r-scales)
-       ("r-stringr" ,r-stringr)))
+     (list r-flextable
+           r-magrittr
+           r-officer
+           r-rcolorbrewer
+           r-rstudioapi
+           r-scales
+           r-stringr))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/ztable")
     (synopsis "Zebra-striped tables in LaTeX and HTML formats for R")
     (description
@@ -4422,9 +4747,7 @@ representation of R code.")
                 "0crk29p5vi1r3a988kms4y7r0iqwgwzsikgvh18r9wbzyr98bb5v"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-beeswarm" ,r-beeswarm)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-vipor" ,r-vipor)))
+     (list r-beeswarm r-ggplot2 r-vipor))
     (home-page "https://github.com/eclarke/ggbeeswarm")
     (synopsis "Categorical scatter (violin point) plots")
     (description
@@ -4445,11 +4768,7 @@ data at that region, and avoids over-plotting.")
                 "0rw5f6axyz1pqn6qx9jwm38hjzn8bqs1nfjkvm96z3xnyn61cdbv"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-purrr" ,r-purrr)
-       ("r-scales" ,r-scales)
-       ("r-stringr" ,r-stringr)
-       ("r-tibble" ,r-tibble)))
+     (list r-ggplot2 r-purrr r-scales r-stringr r-tibble))
     (home-page "https://cran.rstudio.com/web/packages/ggthemes")
     (synopsis "Extra themes, scales and geoms for @code{ggplot2}")
     (description "This package provides extra themes and scales for
@@ -4472,7 +4791,7 @@ Wall Street Journal, among others.  This package also provides
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/statmod")
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (synopsis "Statistical modeling")
     (description
      "This package provides a collection of algorithms and functions to aid
@@ -4520,13 +4839,13 @@ approximate, exact searches, fixed radius searches, bd and kb trees.")
          "0fcc8rq745nsghp27dk0lgih90y4zx8hrzcvsn6ih786yv7qxhvl"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-knitr" ,r-knitr)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-dplyr" ,r-dplyr)
-       ("r-readr" ,r-readr)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-magrittr" ,r-magrittr)
-       ("r-stringr" ,r-stringr)))
+     (list r-knitr
+           r-rmarkdown
+           r-dplyr
+           r-readr
+           r-ggplot2
+           r-magrittr
+           r-stringr))
     (home-page "https://mran.microsoft.com/package/fivethirtyeight/")
     (synopsis "Data and code behind the stories at FiveThirtyEight")
     (description "This R package provides access to the code and data sets
@@ -4567,12 +4886,9 @@ Farebrother's algorithm or Liu et al.'s algorithm.")
          "0j7d5vhzdxn1blrsfafx5z8lhq122rp8230hp9czrpsnnhjydp67"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-gtable" ,r-gtable)
-       ("r-rlang" ,r-rlang)
-       ("r-scales" ,r-scales)))
+     (list r-ggplot2 r-gtable r-rlang r-scales))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/wilkelab/cowplot")
     (synopsis "Streamlined plot theme and plot annotations for ggplot2")
     (description
@@ -4594,10 +4910,7 @@ letters, as is often required for scientific publications.")
          "08whic8hmmzi55b7azwj11l2x5r9s5qbyrv7s9jr08156vqkw0zg"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-kernlab" ,r-kernlab)
-       ("r-segmented" ,r-segmented)
-       ("r-survival" ,r-survival)))
+     (list r-mass r-kernlab r-segmented r-survival))
     (home-page "https://cran.r-project.org/web/packages/mixtools")
     (synopsis "Tools for analyzing finite mixture models")
     (description
@@ -4618,7 +4931,7 @@ mixture models.")
          "0blj44wqrx6lmym1m9v6wkz8zxzbjax2zl6swgdczci0ixb5nx34"))))
     (build-system r-build-system)
     (inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://web.stanford.edu/~hastie/Papers/LARS/")
     (synopsis "Least angle regression software")
     (description
@@ -4634,14 +4947,14 @@ regression.")
 (define-public r-fastica
   (package
     (name "r-fastica")
-    (version "1.2-2")
+    (version "1.2-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fastICA" version))
        (sha256
         (base32
-         "1zpijqcipm0aa3rxj0mys06lskqy4dbppjpxr1aby0j16y9ka8ij"))))
+         "0l49cmxm1n4dzrv8q3q3mq4drcjgby4f1dmpwfdb8jxn9ij85vz9"))))
     (properties `((upstream-name . "fastICA")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/fastICA")
@@ -4667,7 +4980,7 @@ perform @dfn{independent component analysis} (ICA) and projection pursuit.")
     (build-system r-build-system)
     (home-page "https://www.stat.berkeley.edu/~breiman/RandomForests/")
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (synopsis "Breiman and Cutler's random forests for classification and regression")
     (description
 "This package provides the Breiman and Cutler's random forests algorithm, based on a
@@ -4727,9 +5040,7 @@ to change in the future.")
          "0jangf89174p0idh9afbicfiln2sz8jxc3bjc6n0j9036dw9n09n"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)
-       ("r-modeltools" ,r-modeltools)
-       ("r-nnet" ,r-nnet)))
+     (list r-lattice r-modeltools r-nnet))
     (home-page "https://cran.r-project.org/web/packages/flexmix")
     (synopsis "Flexible mixture modeling")
     (description
@@ -4743,18 +5054,17 @@ models, generalized linear models and model-based clustering.")
 (define-public r-mclust
   (package
     (name "r-mclust")
-    (version "5.4.7")
+    (version "5.4.8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "mclust" version))
        (sha256
         (base32
-         "08scl72llpinfijiyx14yqvmx8lma9jvh8h92v9ynnzfr9kadxa5"))))
+         "0j79a1nidwxl62x8j97k09qjxladp9irw5z1x1q5gyy6zxskvh8i"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)
-       ("r-knitr" ,r-knitr)))
+     (list gfortran r-knitr))
     (home-page "https://www.stat.washington.edu/mclust/")
     (synopsis "Gaussian mixture modelling for model-based clustering etc.")
     (description
@@ -4777,8 +5087,7 @@ and resampling-based inference.")
          "0hg4d7y1w18jpgvw10z8833bbbcnlkwiasx0wh6iwa2pnnybq8gl"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
-       ("r-mclust" ,r-mclust)))
+     (list r-mass r-mclust))
     (home-page "https://cran.r-project.org/web/packages/prabclus")
     (synopsis "Parametric bootstrap tests for spatial neighborhood clustering")
     (description
@@ -4814,19 +5123,19 @@ can be efficiently implemented directly in the R language.")
 (define-public r-robustbase
   (package
     (name "r-robustbase")
-    (version "0.93-8")
+    (version "0.93-9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "robustbase" version))
        (sha256
         (base32
-         "16fmnk3p32mi70rkx89l1v4pry3gnrpy9jicnlfnk6lg1pwz5j8w"))))
+         "0i9wf4aq8zpn2np6z2rjja21ks9n740dgkiv0qfwdzk3ah3vapyp"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (propagated-inputs
-     `(("r-deoptimr" ,r-deoptimr)))
+     (list r-deoptimr))
     (home-page "http://robustbase.r-forge.r-project.org/")
     (synopsis "Basic robust statistics")
     (description
@@ -4848,7 +5157,7 @@ regression methodology including model selections and multivariate statistics.")
     (properties `((upstream-name . "pcaPP")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mvtnorm" ,r-mvtnorm)))
+     (list r-mvtnorm))
     (home-page "https://cran.r-project.org/web/packages/pcaPP")
     (synopsis "Robust PCA by projection pursuit")
     (description
@@ -4859,22 +5168,19 @@ analysis} (PCA) by projection pursuit.")
 (define-public r-rrcov
   (package
     (name "r-rrcov")
-    (version "1.5-5")
+    (version "1.6-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rrcov" version))
        (sha256
         (base32
-         "0ag6q16ajkqwj28dk9vp4xkvqw26fqqqdxnz38gpszilirahfzqz"))))
+         "0i69gv55c86gkclwhch0jzdfyb20l20mx1nx1xp9qz71nd4klpvr"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-pcapp" ,r-pcapp)
-       ("r-robustbase" ,r-robustbase)))
+     (list r-lattice r-mvtnorm r-pcapp r-robustbase))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/rrcov")
     (synopsis "Scalable robust estimators with high breakdown Point")
     (description
@@ -4896,7 +5202,7 @@ estimation and robust multivariate analysis with high breakdown point.")
     (properties `((upstream-name . "fit.models")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-lattice" ,r-lattice)))
+     (list r-lattice))
     (home-page "https://cran.r-project.org/web/packages/fit.models")
     (synopsis "Compare fitted models")
     (description
@@ -4913,23 +5219,19 @@ generally.")
 (define-public r-robust
   (package
     (name "r-robust")
-    (version "0.5-0.0")
+    (version "0.6-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "robust" version))
        (sha256
         (base32
-         "1ks5scp8bnicl9j1r8yrmz668fjs6ifdmi540zw6d2ck500bbw42"))))
+         "0z8i0qqlsa6vpl457qir3dlsynhjfn2g22436d776vxwyqjx4vs9"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-fit-models" ,r-fit-models)
-       ("r-lattice" ,r-lattice)
-       ("r-mass" ,r-mass)
-       ("r-robustbase" ,r-robustbase)
-       ("r-rrcov" ,r-rrcov)))
+     (list r-fit-models r-lattice r-mass r-robustbase r-rrcov))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/robust")
     (synopsis "Port of the S+ \"Robust Library\"")
     (description
@@ -4972,15 +5274,15 @@ of the points.")
          "0f7sfmpcycr9y7cy5gasyjm2ardxa62kglqms92mcr68jrp01c19"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-class" ,r-class)
-       ("r-cluster" ,r-cluster)
-       ("r-diptest" ,r-diptest)
-       ("r-flexmix" ,r-flexmix)
-       ("r-kernlab" ,r-kernlab)
-       ("r-mass" ,r-mass)
-       ("r-mclust" ,r-mclust)
-       ("r-prabclus" ,r-prabclus)
-       ("r-robustbase" ,r-robustbase)))
+     (list r-class
+           r-cluster
+           r-diptest
+           r-flexmix
+           r-kernlab
+           r-mass
+           r-mclust
+           r-prabclus
+           r-robustbase))
     (home-page "https://cran.r-project.org/web/packages/fpc")
     (synopsis "Flexible procedures for clustering")
     (description
@@ -5004,7 +5306,7 @@ groupings.")
     (properties `((upstream-name . "VGAM")))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://www.stat.auckland.ac.nz/~yee/VGAM")
     (synopsis "Vector generalized linear and additive models")
     (description
@@ -5018,14 +5320,14 @@ VGLMs can be loosely thought of as multivariate generalised linear models.")
 (define-public r-pbapply
   (package
     (name "r-pbapply")
-    (version "1.4-3")
+    (version "1.5-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pbapply" version))
        (sha256
         (base32
-         "08gb6c8p1r9z8wrfidj2dfn6irm43k6f4448d1d6nxmy6msjirlg"))))
+         "0m8a0ygwl98cs0vcha5gs9f7z8whcplwxhravhs9bfp5hvigxzgg"))))
     (build-system r-build-system)
     (home-page "https://github.com/psolymos/pbapply")
     (synopsis "Adding progress bar to apply functions")
@@ -5048,9 +5350,9 @@ showing the progress is useful e.g. bootstrap.")
          "036drja6xz7awja9iwb76x91415p26fb0jmg7y7v0p65m6j978fg"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)))
+     (list r-rcpp))
     (inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "http://optimizer.r-forge.r-project.org")
     (synopsis "Derivative-free optimization algorithms by quadratic approximation")
     (description
@@ -5072,8 +5374,7 @@ based on an interface to Fortran implementations by M. J. D. Powell.")
     (properties `((upstream-name . "RcppEigen")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-matrix" ,r-matrix)))
+     (list r-rcpp r-matrix))
     (home-page "http://eigen.tuxfamily.org")
     (synopsis "Rcpp integration for the Eigen templated linear algebra library")
     (description
@@ -5097,8 +5398,7 @@ decompositions of such matrices, and solutions of linear systems.")
     (properties `((upstream-name . "ModelMetrics")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-data-table" ,r-data-table)))
+     (list r-rcpp r-data-table))
     (home-page "https://cran.r-project.org/web/packages/ModelMetrics")
     (synopsis "Rapid calculation of model metrics")
     (description
@@ -5120,7 +5420,7 @@ metrics for evaluating models.")
     (properties `((upstream-name . "MatrixModels")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-matrix" ,r-matrix)))
+     (list r-matrix))
     (home-page "https://cran.r-project.org/web/packages/MatrixModels")
     (synopsis "Modelling with sparse and dense matrices")
     (description
@@ -5140,12 +5440,9 @@ using modular prediction and response module classes.")
         (base32 "01fnp6ndh7npxj76xlynndacsgmcfr9kgh2waw0clx3mmwlwilbi"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (propagated-inputs
-     `(("r-conquer" ,r-conquer)
-       ("r-matrix" ,r-matrix)
-       ("r-matrixmodels" ,r-matrixmodels)
-       ("r-sparsem" ,r-sparsem)))
+     (list r-conquer r-matrix r-matrixmodels r-sparsem))
     (home-page "https://www.r-project.org")
     (synopsis "Quantile regression")
     (description
@@ -5159,21 +5456,20 @@ expected shortfall risk are also included.")
 (define-public r-nloptr
   (package
     (name "r-nloptr")
-    (version "1.2.2.2")
+    (version "1.2.2.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "nloptr" version))
        (sha256
         (base32
-         "0whkilb85k4wixvr3k7rygfw1rcs1fs9h8c18kz4p3y1k9hsj3p8"))))
+         "1zznk9f2w2g02zqzay21k8xqzfvc6icxfzp6bx2wpd77sm7vf25g"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-knitr" ,r-knitr) ; for building vignettes
-       ("pkg-config" ,pkg-config)
-       ("gfortran" ,gfortran)))
+     (list r-knitr ; for building vignettes
+           pkg-config gfortran))
     (inputs
-     `(("nlopt" ,nlopt)))
+     (list nlopt))
     (home-page "https://cran.r-project.org/web/packages/nloptr")
     (synopsis "R interface to NLopt")
     (description
@@ -5197,17 +5493,17 @@ algorithms.")
          "1i9f8kl2qj48j75dbn1vmwxz1xlbikdr7v2yq542w6dq74z8gyi5"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-boot" ,r-boot)
-       ("r-lattice" ,r-lattice)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-minqa" ,r-minqa)
-       ("r-nloptr" ,r-nloptr)
-       ("r-nlme" ,r-nlme)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcppeigen" ,r-rcppeigen)))
+     (list r-boot
+           r-lattice
+           r-mass
+           r-matrix
+           r-minqa
+           r-nloptr
+           r-nlme
+           r-rcpp
+           r-rcppeigen))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/lme4")
     (synopsis "Linear mixed-effects models using eigen and S4")
     (description
@@ -5230,15 +5526,15 @@ C++ library for numerical linear algebra and RcppEigen glue.")
          "1if7msv9i7jhg1as1f7m81a95dnwhwj3yfs24bqr0f6r0ch4b8xj"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-broom" ,r-broom)
-       ("r-dplyr" ,r-dplyr)
-       ("r-lme4" ,r-lme4)
-       ("r-magrittr" ,r-magrittr)
-       ("r-mass" ,r-mass)
-       ("r-matrix" ,r-matrix)
-       ("r-numderiv" ,r-numderiv)))
+     (list r-broom
+           r-dplyr
+           r-lme4
+           r-magrittr
+           r-mass
+           r-matrix
+           r-numderiv))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://people.math.aau.dk/~sorenh/software/pbkrtest/")
     (synopsis "Methods for linear mixed model comparison")
     (description
@@ -5269,28 +5565,27 @@ Companion to Applied Regression, Third Edition, Sage.")
 (define-public r-car
   (package
     (name "r-car")
-    (version "3.0-11")
+    (version "3.0-12")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "car" version))
        (sha256
-        (base32 "0b2l35656bi75hfvnjhzhlnrnbpjn0vv7nvny8gn65gm0rr94b5k"))))
+        (base32 "00kk8l71508f73kyn21is1mx6kjbrzdq3ls94c5ajhiqmvpsd6dq"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-abind" ,r-abind)
-       ("r-cardata" ,r-cardata)
-       ("r-lme4" ,r-lme4)
-       ("r-maptools" ,r-maptools)
-       ("r-mass" ,r-mass)
-       ("r-mgcv" ,r-mgcv)
-       ("r-nlme" ,r-nlme)
-       ("r-nnet" ,r-nnet)
-       ("r-pbkrtest" ,r-pbkrtest)
-       ("r-quantreg" ,r-quantreg)
-       ("r-rio" ,r-rio)))
+     (list r-abind
+           r-cardata
+           r-lme4
+           r-maptools
+           r-mass
+           r-mgcv
+           r-nlme
+           r-nnet
+           r-pbkrtest
+           r-quantreg))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://r-forge.r-project.org/projects/car/")
     (synopsis "Companion to applied regression")
     (description
@@ -5332,7 +5627,7 @@ even in multithreaded code, typically using OpenMP.")
          "03xsvsg9bqvgl98ywid3h91mmlhax5s6wvmypp3hq91vmc5kvxlp"))))
     (properties `((upstream-name . "tmvnsim")))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page "https://www.r-project.org")
     (synopsis "Truncated multivariate normal simulation")
     (description
@@ -5361,9 +5656,9 @@ normals.")
            "0d7ka4l4fl1wi77r2r81dc91n6cbj2xrb3lsizz5y0ziscva0sjw"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-tmvnsim" ,r-tmvnsim)))
+     (list r-tmvnsim))
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "http://azzalini.stat.unipd.it/SW/Pkg-mnormt")
     (synopsis "Multivariate normal and \"t\" distributions")
     (description
@@ -5406,9 +5701,7 @@ first and second order derivatives.")
          "0sl8qzy9isy5fq8qxh1fg5285jzgy895nbgz8gdq5d0r6zdwrmmb"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mnormt" ,r-mnormt)
-       ("r-numderiv" ,r-numderiv)
-       ("r-quantreg" ,r-quantreg)))
+     (list r-mnormt r-numderiv r-quantreg))
     (home-page "http://azzalini.stat.unipd.it/SN")
     (synopsis "The skew-normal and skew-t distributions")
     (description
@@ -5433,10 +5726,7 @@ multivariate case.")
     (build-system r-build-system)
     ;; These are all suggested packages, not build dependencies.
     (propagated-inputs
-     `(("r-cluster" ,r-cluster)
-       ("r-mclust" ,r-mclust)
-       ("r-mvtnorm" ,r-mvtnorm)
-       ("r-sn" ,r-sn)))
+     (list r-cluster r-mclust r-mvtnorm r-sn))
     (home-page "https://cran.r-project.org/web/packages/tclust")
     (synopsis "Robust trimmed clustering")
     (description
@@ -5458,9 +5748,7 @@ diagnostic tools (@code{ctlcurves} and @code{DiscrFact}).")
          "02idcc6zbdz4wsi1mcwh7qyhmlbwvnzxwkdvvppxw7n2rh54z4v0"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("r-matrix" ,r-matrix)
-       ("r-rcppeigen" ,r-rcppeigen)))
+     (list r-rcpp r-matrix r-rcppeigen))
     (home-page "https://github.com/imbs-hl/ranger")
     (synopsis "Fast implementation of random forests")
     (description
@@ -5502,11 +5790,9 @@ genome-wide association studies can be analyzed efficiently.")
     (properties `((upstream-name . "Cairo")))
     (build-system r-build-system)
     (inputs
-     `(("cairo" ,cairo)
-       ("libxt" ,libxt)
-       ("zlib" ,zlib)))
+     (list cairo libxt zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.rforge.net/Cairo/")
     (synopsis "R graphics device using Cairo graphics library")
     (description
@@ -5527,20 +5813,19 @@ is supported.")
 (define-public r-lubridate
   (package
     (name "r-lubridate")
-    (version "1.7.10")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lubridate" version))
        (sha256
         (base32
-         "1s653d6rnpf9bkynxmbq4fdjdcz7r9ma19aph8f5y9ck70his4hm"))))
+         "199b00cql07gf3rf4hh5ba34amnk0ai40zhx73dq1mpkn7ynxml7"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-generics" ,r-generics)
-       ("r-rcpp" ,r-rcpp)))
+     (list r-generics r-cpp11))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://cran.r-project.org/web/packages/lubridate/")
     (synopsis "Make dealing with dates a little easier")
     (description
@@ -5555,14 +5840,14 @@ easy and fun.")
 (define-public r-fdrtool
   (package
     (name "r-fdrtool")
-    (version "1.2.16")
+    (version "1.2.17")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fdrtool" version))
        (sha256
         (base32
-         "1aap4k1l3a9m43374xq688mqnzkgqx8l021li262r3h1xr4adpp7"))))
+         "1pf554vb902vavgqc4c0kgghywbgcvr3lkkr414bxngavcd60lil"))))
     (build-system r-build-system)
     (home-page "http://strimmerlab.org/software/fdrtool/")
     (synopsis "Estimation of false discovery rates and higher criticism")
@@ -5593,12 +5878,9 @@ and the corresponding decision threshold.")
          "12d2nv2w15085jscgidmjdnr1ryymciflcmal6ldmgp2fkl9dyy4"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-ellipsis" ,r-ellipsis)
-       ("r-magrittr" ,r-magrittr)
-       ("r-tibble" ,r-tibble)
-       ("r-rlang" ,r-rlang)))
+     (list r-ellipsis r-magrittr r-tibble r-rlang))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://forcats.tidyverse.org")
     (synopsis "Tools for working with factors")
     (description "This package provides helpers for reordering factor
@@ -5635,7 +5917,7 @@ manually \"recoding\").")
                   "#define isnan std::isnan"))
                #t)))))
       (propagated-inputs
-       `(("r-rcpp" ,r-rcpp)))
+       (list r-rcpp))
       (home-page "https://bitbucket.org/tanaylab/tgstat/")
       (synopsis "Tanay's group statistical utilities")
       (description
@@ -5661,7 +5943,7 @@ tools.")
            "0xy6c7s7mn1yx191154bwbv1bl424bnvc80syqpl1vdl28ba46rj"))))
       (build-system r-build-system)
       (propagated-inputs
-       `(("r-yaml" ,r-yaml)))
+       (list r-yaml))
       (home-page "https://bitbucket.org/tanaylab/tgconfig/")
       (synopsis "Infrastructure for managing package parameters")
       (description
@@ -5686,7 +5968,7 @@ parameters.")
                   "0qa8liylffpxgdg8xcgjar5dsvczqhn3akd4w35113hnyg1m4xyg"))))
       (build-system r-build-system)
       (propagated-inputs
-       `(("r-png" ,r-png)))
+       (list r-png))
       (home-page "https://github.com/Gibbsdavidl/CatterPlots")
       (synopsis "Scatter plots with cat shaped points")
       (description "Did you ever wish you could make scatter plots with cat
@@ -5748,28 +6030,27 @@ to any arbitrary string.  In this case, it is up to you to set valid values.")
              (invoke "pytest" "-v" "rpy2/tests/"
                      "-k" "not test_vector_complex"))))))
     (propagated-inputs
-     `(("python-cffi" ,python-cffi)
-       ("python-six" ,python-six)
-       ("python-jinja2" ,python-jinja2)
-       ("python-numpy" ,python-numpy)
-       ("python-pandas" ,python-pandas)
-       ("python-pytz" ,python-pytz)
-       ("python-ipython" ,python-ipython)
-       ("python-tzlocal" ,python-tzlocal)))
+     (list python-cffi
+           python-six
+           python-jinja2
+           python-numpy
+           python-pandas
+           python-pytz
+           python-ipython
+           python-tzlocal))
     (inputs
-     `(("readline" ,readline)
-       ("icu4c" ,icu4c)
-       ("pcre" ,pcre)
-       ("r-minimal" ,r-minimal)
-       ("r-survival" ,r-survival)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-rsqlite" ,r-rsqlite)
-       ("r-dplyr" ,r-dplyr)
-       ("r-dbplyr" ,r-dbplyr)
-       ("python-numpy" ,python-numpy)))
+     (list readline
+           icu4c
+           pcre
+           r-minimal
+           r-survival
+           r-ggplot2
+           r-rsqlite
+           r-dplyr
+           r-dbplyr
+           python-numpy))
     (native-inputs
-     `(("zlib" ,zlib)
-       ("python-pytest" ,python-pytest)))
+     (list zlib python-pytest))
     (home-page "https://rpy2.github.io")
     (synopsis "Python interface to the R language")
     (description "rpy2 is a redesign and rewrite of rpy.  It is providing a
@@ -5806,9 +6087,9 @@ functions.")
                  (("Scheff.+-Tukey") "Scheffe-Tukey")))
              #t)))))
     (propagated-inputs
-     `(("java-jtransforms" ,java-jtransforms)))
+     (list java-jtransforms))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "http://jdistlib.sourceforge.net/")
     (synopsis "Java library of statistical distributions")
     (description "JDistlib is the Java Statistical Distribution Library, a
@@ -5882,14 +6163,12 @@ Java package that provides routines for various statistical distributions.")
              (replace 'check
                (lambda _ (invoke "make" "test")))))))
       (native-inputs
-       `(("perl" ,perl)
-         ("r-roxygen2" ,r-roxygen2)
-         ("texinfo" ,texinfo)))
+       (list perl r-roxygen2 texinfo))
       (inputs
        `(("emacs" ,emacs-minimal)
          ("r-minimal" ,r-minimal)))
       (propagated-inputs
-       `(("emacs-julia-mode" ,emacs-julia-mode)))
+       (list emacs-julia-mode))
       (home-page "https://ess.r-project.org/")
       (synopsis "Emacs mode for statistical analysis programs")
       (description
@@ -5913,10 +6192,8 @@ statistical analysis programs such as R, Julia, and JAGS.")
         (base32 "0a4wx73jkngw5nbq1fa4jfhba6bsmyn6vnsf887x3xhb5v3ykhsg"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-ess" ,emacs-ess)
-       ("emacs-poly-noweb" ,emacs-poly-noweb)
-       ("emacs-polymode-markdown" ,emacs-polymode-markdown)
-       ("emacs-polymode" ,emacs-polymode)))
+     (list emacs-ess emacs-poly-noweb emacs-polymode-markdown
+           emacs-polymode))
     (properties '((upstream-name . "poly-R")))
     (home-page "https://github.com/polymode/poly-markdown")
     (synopsis "Polymodes for the R language")
@@ -5940,12 +6217,9 @@ files, including Rmarkdown files.")
         (base32 "00sdmaq0qzp6kyv53fpfi6jf3iv4pd0ap0gmw3mbfip52bbnl55w"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gnu-gettext)
-       ("libtool" ,libtool)))
+     (list autoconf automake gnu-gettext libtool))
     (inputs
-     `(("zlib" ,zlib)))                 ; libz
+     (list zlib))                 ; libz
     (synopsis "Convert SAS, Stata, and SPSS files")
     (description "Command-line tool and C library for reading files from
 popular stats packages like SAS, Stata and SPSS.")
@@ -5966,7 +6240,7 @@ popular stats packages like SAS, Stata and SPSS.")
     (properties `((upstream-name . "QuantPsyc")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-boot" ,r-boot) ("r-mass" ,r-mass)))
+      (list r-boot r-mass))
     (home-page "https://cran.r-project.org/web/packages/QuantPsyc/")
     (synopsis "Quantitative Psychology Tools")
     (description
@@ -5988,8 +6262,8 @@ mediation and estimating power.")
     (properties `((upstream-name . "clubSandwich")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-sandwich" ,r-sandwich)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+     (list r-sandwich))
+    (native-inputs (list r-knitr))
     (home-page "https://github.com/jepusto/clubSandwich")
     (synopsis "Cluster-Robust (Sandwich) Variance Estimators with Small-Sample
 Corrections")
@@ -6026,10 +6300,7 @@ Methods are provided for a variety of fitted models, including @code{lm()} and
     (properties `((upstream-name . "puniform")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-adgoftest" ,r-adgoftest)
-       ("r-metafor" ,r-metafor)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rcpparmadillo" ,r-rcpparmadillo)))
+     (list r-adgoftest r-metafor r-rcpp r-rcpparmadillo))
     (home-page
      "https://github.com/RobbievanAert/puniform")
     (synopsis
@@ -6119,7 +6390,7 @@ or eta squared effect size.")
     (properties `((upstream-name . "kknn")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-igraph" ,r-igraph) ("r-matrix" ,r-matrix)))
+      (list r-igraph r-matrix))
     (home-page "https://github.com/KlausVigo/kknn")
     (synopsis "Weighted k-Nearest Neighbors")
     (description
@@ -6139,7 +6410,7 @@ or eta squared effect size.")
             "12hkdi77vkic05p2vhap025xdcg1n53ywm239v18713pihdlj63l"))))
     (properties `((upstream-name . "logspline")))
     (build-system r-build-system)
-    (native-inputs `(("gfortran" ,gfortran)))
+    (native-inputs (list gfortran))
     (home-page
       "https://cran.r-project.org/web/packages/logspline/")
     (synopsis
@@ -6166,17 +6437,16 @@ interface).  The recommended routine @code{logspline()} uses an algorithm from
     (properties `((upstream-name . "effects")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-cardata" ,r-cardata)
-        ("r-colorspace" ,r-colorspace)
-        ("r-estimability" ,r-estimability)
-        ("r-insight" ,r-insight)
-        ("r-lattice" ,r-lattice)
-        ("r-lme4" ,r-lme4)
-        ("r-nnet" ,r-nnet)
-        ("r-survey" ,r-survey)))
+      (list r-cardata
+            r-colorspace
+            r-estimability
+            r-insight
+            r-lattice
+            r-lme4
+            r-nnet
+            r-survey))
     (native-inputs
-      `(("r-knitr" ,r-knitr)
-        ("r-car", r-car)))
+      (list r-knitr r-car))
     (home-page "https://www.r-project.org")
     (synopsis
       "Effect Displays for Linear, Generalized Linear, and Other Models")
@@ -6199,17 +6469,17 @@ various statistical models with linear predictors.")
     (properties `((upstream-name . "BayesFactor")))
     (build-system r-build-system)
     (propagated-inputs
-      `(("r-coda" ,r-coda)
-        ("r-gtools" ,r-gtools)
-        ("r-hypergeo" ,r-hypergeo)
-        ("r-matrix" ,r-matrix)
-        ("r-matrixmodels" ,r-matrixmodels)
-        ("r-mvtnorm" ,r-mvtnorm)
-        ("r-pbapply" ,r-pbapply)
-        ("r-rcpp" ,r-rcpp)
-        ("r-rcppeigen" ,r-rcppeigen)
-        ("r-stringr" ,r-stringr)))
-    (native-inputs `(("r-knitr" ,r-knitr)))
+      (list r-coda
+            r-gtools
+            r-hypergeo
+            r-matrix
+            r-matrixmodels
+            r-mvtnorm
+            r-pbapply
+            r-rcpp
+            r-rcppeigen
+            r-stringr))
+    (native-inputs (list r-knitr))
     (home-page
       "https://richarddmorey.github.io/BayesFactor/")
     (synopsis
@@ -6232,7 +6502,7 @@ designs, one-way designs, general ANOVA designs, and linear regression.")
                 "01j1h412yfjx5r4dd0w8rhlf55997spgb6zd6pawy19rgw0byp1h"))))
     (build-system r-build-system)
     (native-inputs
-     `(("gfortran" ,gfortran)))
+     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/norm/")
     (synopsis "Analysis of multivariate normal datasets with missing values")
     (description "Multiple imputation of multivariate continuous data under a
@@ -6252,21 +6522,21 @@ normal model.")
                 "0l3l2x85v3srilww483kpgp4zlwixyml257b0cqly8kcpwawlinm"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-dplyr" ,r-dplyr)
-       ("r-norm" ,r-norm)
-       ("r-forcats" ,r-forcats)
-       ("r-ggplot2" ,r-ggplot2)
-       ("r-glue" ,r-glue)
-       ("r-magrittr" ,r-magrittr)
-       ("r-purrr" ,r-purrr)
-       ("r-rlang" ,r-rlang)
-       ("r-tibble" ,r-tibble)
-       ("r-tidyr" ,r-tidyr)
-       ("r-upsetr" ,r-upsetr)
-       ("r-viridis" ,r-viridis)
-       ("r-visdat" ,r-visdat)))
+     (list r-dplyr
+           r-norm
+           r-forcats
+           r-ggplot2
+           r-glue
+           r-magrittr
+           r-purrr
+           r-rlang
+           r-tibble
+           r-tidyr
+           r-upsetr
+           r-viridis
+           r-visdat))
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/njtierney/naniar")
     (synopsis
      "Data structures, summaries, and visualisations for missing data")
@@ -6281,14 +6551,14 @@ deviation from the common work patterns of @code{ggplot2} and tidy data.")
 (define-public r-glinternet
   (package
     (name "r-glinternet")
-    (version "1.0.11")
+    (version "1.0.12")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "glinternet" version))
        (sha256
         (base32
-         "1lqph2hj0h826gcfyk290ahkfalpnrd6jzymm60xi2qxia14lzk5"))))
+         "0aphdscj0s6kqxlkgqkw2d6snrylz6hiis6307pl8ldh7q5cvm33"))))
     (build-system r-build-system)
     (home-page "http://web.stanford.edu/~hastie/Papers/glinternet_jcgs.pdf")
     (synopsis "Learning interactions via hierarchical group-lasso regularization")
@@ -6315,7 +6585,7 @@ Michael Lim & Trevor Hastie (2015)")
             "1w1yhwwrmh95bklacz44wjwynxd8cj3z8b9zvsnzmk18m5a4k0fl"))))
     (properties `((upstream-name . "datasauRus")))
     (build-system r-build-system)
-    (native-inputs `(("r-knitr" ,r-knitr)))
+    (native-inputs (list r-knitr))
     (home-page
       "https://github.com/lockedata/datasauRus")
     (synopsis "Datasets from the Datasaurus Dozen")
@@ -6333,3 +6603,186 @@ original Datasaurus is detailed in \"Same Stats, Different Graphs: Generating
 Datasets with Varied Appearance and Identical Statistics through Simulated
 Annealing\" @url{doi:10.1145/3025453.3025912}.")
     (license license:expat)))
+
+(define-public r-lmom
+  (package
+    (name "r-lmom")
+    (version "2.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (cran-uri "lmom" version))
+        (sha256
+          (base32 "1lnj41gynaar5isyijg5nbll64qdxa12dnqvz7lxhaclqcjskqna"))))
+    (properties `((upstream-name . "lmom")))
+    (build-system r-build-system)
+    (native-inputs (list gfortran))
+    (home-page "https://cran.r-project.org/package=lmom")
+    (synopsis "L-Moments for R")
+    (description
+      "This package provides functions related to L-moments: computation
+of L-moments and trimmed L-moments of distributions and data samples;
+parameter estimation; L-moment ratio diagram; plot vs.  quantiles of an
+extreme-value distribution.")
+    (license license:cpl1.0)))
+
+(define-public r-gld
+  (package
+    (name "r-gld")
+    (version "2.6.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (cran-uri "gld" version))
+        (sha256
+          (base32 "1wrw7i5bq7rb2ahadm57y9fmr697r7lp9ln7ajcd592b0nn60n4i"))))
+    (properties `((upstream-name . "gld")))
+    (build-system r-build-system)
+    (propagated-inputs (list r-e1071 r-lmom))
+    (home-page
+      "https://cran.r-project.org/package=gld")
+    (synopsis
+      "Estimation and Use of the Generalised (Tukey) Lambda Distribution")
+    (description
+      "The generalised lambda distribution, or Tukey lambda distribution,
+provides a wide variety of shapes with one functional form.  This package
+provides random numbers, quantiles, probabilities, densities and
+density quantiles for four different types of the distribution, the FKML
+(Freimer et al 1988), RS (Ramberg and Schmeiser 1974), GPD (van Staden
+and Loots 2009) and FM5 - see documentation for details.  It provides the
+density function, distribution function, and Quantile-Quantile plots.
+It implements a variety of estimation methods for the distribution,
+including diagnostic plots.  Estimation methods include the starship (all
+4 types), method of L-Moments for the GPD and FKML types, and a number
+of methods for only the FKML type.  These include maximum likelihood,
+maximum product of spacings, Titterington's method, Moments, Trimmed
+L-Moments and Distributional Least Absolutes.")
+    (license license:gpl2+)))
+
+(define-public r-exact
+  (package
+    (name "r-exact")
+    (version "3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (cran-uri "Exact" version))
+        (sha256
+          (base32 "0acm01njg3arlzwknv5v1sdsz5ab0bdh04sn1bmf91hcg3li8qd7"))))
+    (properties `((upstream-name . "Exact")))
+    (build-system r-build-system)
+    (propagated-inputs (list r-rootsolve))
+    (home-page "https://cran.r-project.org/package=Exact")
+    (synopsis "Unconditional Exact Test")
+    (description
+      "Performs unconditional exact tests and power calculations for 2x2
+contingency tables.  For comparing two independent proportions, performs
+@url{doi:10.1038/156177a0, Barnard's test (1945)} using the original CSM
+test (@url{doi:10.1093/biomet/34.1-2.123, Barnard (1947)}), using Fisher's
+p-value referred to as @url{doi:10.1111/j.1467-9574.1970.tb00104.x,
+Boschloo's test (1970)}, or using a Z-statistic (@url{doi:10.2307/2981892,
+Suissa and Shuster (1985)}).  For comparing two binary proportions,
+performs unconditional exact test using McNemar's Z-statistic
+(@url{doi:10.1191/0962280203sm312ra, Berger and Sidik (2003)}), using
+McNemar's Z-statistic with continuity correction, or using CSM test.
+Calculates confidence intervals for the difference in proportion.")
+    (license license:gpl2)))
+
+(define-public r-desctools
+  (package
+    (name "r-desctools")
+    (version "0.99.43")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (cran-uri "DescTools" version))
+        (sha256
+          (base32 "1zx4wwry7pph21q37r0r1vgx616pki232ych2wl9z2s2fmclwg4c"))))
+    (properties `((upstream-name . "DescTools")))
+    (build-system r-build-system)
+    (propagated-inputs
+      (list r-bh
+            r-boot
+            r-data-table
+            r-exact
+            r-expm
+            r-gld
+            r-mass
+            r-mvtnorm
+            r-rcpp
+            r-rstudioapi))
+    (native-inputs (list gfortran))
+    (home-page "https://andrisignorell.github.io/DescTools/")
+    (synopsis "Tools for Descriptive Statistics")
+    (description
+      "This package provides a collection of miscellaneous basic statistic
+functions and convenience wrappers for efficiently describing data.
+The author's intention was to create a toolbox, which facilitates the
+(notoriously time consuming) first descriptive tasks in data analysis,
+consisting of calculating descriptive statistics, drawing graphical
+summaries and reporting the results.  The package contains furthermore
+functions to produce documents using MS Word (or PowerPoint) and functions
+to import data from Excel.  Many of the included functions can be found
+scattered in other packages and other sources written partly by Titans
+of R.  The reason for collecting them here, was primarily to have them
+consolidated in ONE instead of dozens of packages (which themselves might
+depend on other packages which are not needed at all), and to provide a
+common and consistent interface as far as function and arguments naming,
+NA handling, recycling rules etc.  are concerned.  Google style guides
+were used as naming rules (in absence of convincing alternatives).
+The BigCamelCase style was consequently applied to functions borrowed
+from contributed R packages as well.")
+    (license license:gpl2+)))
+
+(define-public xlispstat
+  (let ((commit "f1bea6053df658ee48612bf1f63c35de99e2c649")
+        (revision "0"))
+    (package
+      (name "xlispstat")
+      (version (git-version "3.52.23" revision commit))
+      (source (origin
+	        (method git-fetch)
+	        (uri (git-reference
+		      (url "https://github.com/jhbadger/xlispstat.git")
+		      (commit commit)))
+                (file-name (git-file-name name version))
+	        (sha256
+	         (base32
+	          "1p0cmgy19kbkxia139cb5w9dnkp2cdqp5n3baag6cq3prn3n71mf"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:parallel-build? #f   ; Parallel builds are not supported
+         #:configure-flags (list "--with-gcc")
+         #:phases
+         (modify-phases %standard-phases
+           (replace 'check
+             (lambda* (#:key tests? #:allow-other-keys)
+               (when tests?
+                 (with-output-to-file "exit.lsp"
+                   (lambda () (display "(exit)")))
+                 (invoke "./xlisp" "tests/test" "exit")))))))
+      (inputs (list tcsh
+                    libx11
+                    libxmu
+                    libxext
+                    libxpm
+                    libxaw
+                    ncurses
+                    gnuplot))
+      (native-inputs (list pkg-config))
+      (synopsis "Statistical analysis environment with interactive graphics")
+      (description "XLISP-STAT is a statistical environment based on a Lisp
+dialect called XLISP.  To facilitate statistical computations, standard
+functions for addition, logarithms, etc., have been modified to operate on
+lists and arrays of numbers, and a number of basic statistical functions have
+been added.  Many of these functions have been written in Lisp, and additional
+functions can be added easily by a user.  Several basic forms of plots,
+including histograms, scatterplots, rotatable plots and scatterplot matrices
+are provided.  These plots support various forms of interactive highlighting
+operations and can be linked so points highlighted in one plot will be
+highlighted in all linked plots.  Interactions with the plots are controlled
+by the mouse, menus and dialog boxes.  An object-oriented programming system
+is used to allow menus, dialogs, and the response to mouse actions to be
+ customized.")
+      (home-page "http://homepage.divms.uiowa.edu/~luke/xls/xlsinfo/")
+      (license license:expat))))
diff --git a/gnu/packages/stb.scm b/gnu/packages/stb.scm
index 094ece536d..4ee1b4ebd2 100644
--- a/gnu/packages/stb.scm
+++ b/gnu/packages/stb.scm
@@ -75,7 +75,7 @@ the C programming language.")
     (name name)
     (version version)
     (source #f)
-    (inputs `(("stb" ,stb)))
+    (inputs (list stb))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
diff --git a/gnu/packages/stenography.scm b/gnu/packages/stenography.scm
index 979b2c29ef..969395cbcf 100644
--- a/gnu/packages/stenography.scm
+++ b/gnu/packages/stenography.scm
@@ -45,18 +45,16 @@
         (base32 "1b2ys77bkjsdmyg97i7lq3lj45q56bycvsm06d4rs656kxhvc0a3"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-mock python-pytest python-setuptools-scm))
     (inputs
-     `(("python-appdirs" ,python-appdirs)
-       ("python-pyqt" ,python-pyqt)
-       ("python-babel" ,python-babel)
-       ("python-dbus" ,python-dbus)
-       ("python-hidapi" ,python-hidapi)
-       ("python-pyserial" ,python-pyserial)
-       ("python-wxpython" ,python-wxpython)
-       ("python-xlib" ,python-xlib)))
+     (list python-appdirs
+           python-pyqt
+           python-babel
+           python-dbus
+           python-hidapi
+           python-pyserial
+           python-wxpython
+           python-xlib))
     (home-page "https://www.openstenoproject.org/plover/")
     (synopsis "Stenography engine")
     (description
diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm
index 4c2fa21a78..094d7ade74 100644
--- a/gnu/packages/storage.scm
+++ b/gnu/packages/storage.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2017, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,6 +39,7 @@
   #:use-module (gnu packages disk)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages jemalloc)
+  #:use-module (gnu packages icu4c)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages ncurses)
@@ -45,9 +47,11 @@
   #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages sphinx)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
@@ -55,16 +59,19 @@
 (define-public ceph
   (package
     (name "ceph")
-    (version "14.2.16")
+    (version "16.2.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.ceph.com/tarballs/ceph-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0lmdri415hqczc9565s5m5568pnj97ipqxgnw6085kps0flwq5zh"))
+                "104xmc84d4ycdn7f4z09kvzwl1vlywxp3hbfxhgq0kcmgikb4wad"))
               (patches
-               (search-patches "ceph-disable-cpu-optimizations.patch"))
+               (search-patches
+                "ceph-disable-cpu-optimizations.patch"
+                "ceph-boost-compat.patch"
+                "ceph-rocksdb-compat.patch"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -75,9 +82,8 @@
                               ;"src/xxHash"
                               ;"src/zstd"
                               ;"src/civetweb"
-                              ;"src/seastar/fmt"
-                              "src/test/downloads"
                               "src/c-ares"
+                              "src/fmt"
                               "src/googletest"
                               "src/rapidjson"
                               "src/spdk"
@@ -110,7 +116,7 @@
                "-DBUILD_SHARED_LIBS=ON"
                "-DWITH_SYSTEM_ROCKSDB=ON"
                "-DWITH_SYSTEM_BOOST=ON"
-               "-DWITH_PYTHON3=ON"
+
                ;; TODO: Enable these when available in Guix.
                "-DWITH_MGR_DASHBOARD_FRONTEND=OFF"       ;requires node + nodeenv
                "-DWITH_BABELTRACE=OFF"
@@ -121,6 +127,9 @@
                ;; Use jemalloc instead of tcmalloc.
                "-DALLOCATOR=jemalloc"
 
+               ;; Don't install systemd unit files.
+               "-DWITH_SYSTEMD=OFF"
+
                ;; Do not bother building the tests; we are not currently running
                ;; them, and they do not build with system googletest as of 14.2.5.
                "-DWITH_TESTS=OFF"))
@@ -138,15 +147,12 @@
                (substitute* "cmake/modules/Distutils.cmake"
                  ;; Prevent creation of Python eggs.
                  (("setup.py install")
-                  "setup.py install --single-version-externally-managed --root=/"))
-
-               (substitute* (find-files "src/pybind" "^setup\\.py$")
-                 ;; Here we inject an extra line to the `setup.py' of the
+                  "setup.py install --single-version-externally-managed --root=/")
+                 ;; Inject the -rpath linker argument when linking
                  ;; Python C libraries so RUNPATH gets set up correctly.
-                 (("^([[:blank:]]+)extra_compile_args=(.*)$" _ indent args)
-                  (string-append indent "extra_compile_args=" args
-                                 indent "extra_link_args=['-Wl,-rpath="
-                                 lib "/lib'],\n")))
+                 (("LDFLAGS=(.*)\n" _ flags)
+                  (string-append "LDFLAGS=\\\"" flags
+                                 " -Wl,-rpath=" lib "/lib\\\"\n")))
 
                ;; Statically link libcrc32 because it does not get installed,
                ;; yet several libraries end up referring to it.
@@ -156,8 +162,7 @@
 
                (substitute* "udev/50-rbd.rules"
                  (("/usr/bin/ceph-rbdnamer")
-                  (string-append out "/bin/ceph-rbdnamer")))
-               #t)))
+                  (string-append out "/bin/ceph-rbdnamer"))))))
          (add-before 'install 'set-install-environment
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -172,39 +177,35 @@
          (add-after 'install 'wrap-python-scripts
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
-                    (scripts '("ceph" "ceph-mgr" "ceph-volume"))
-                    (prettytable (assoc-ref inputs "python-prettytable"))
-                    (six (assoc-ref inputs "python-six"))
+                    (scripts '("bin/ceph" "bin/cephfs-top" "sbin/ceph-volume"))
+                    (dependencies (map (lambda (input)
+                                         (assoc-ref inputs input))
+                                       '("python-prettytable" "python-pyyaml")))
                     (sitedir (lambda (package)
                                (string-append package
                                               "/lib/python"
                                               ,(version-major+minor
                                                 (package-version python))
                                               "/site-packages")))
-                    (PYTHONPATH (string-append
-                                 (sitedir out) ":"
-                                 (sitedir six) ":"
-                                 (sitedir prettytable))))
+                    (PYTHONPATH (string-join (map sitedir (cons out dependencies))
+                                             ":")))
                (for-each (lambda (executable)
-                           (wrap-program (string-append out "/bin/" executable)
+                           (wrap-program (string-append out "/" executable)
                              `("GUIX_PYTHONPATH" ":" prefix (,PYTHONPATH))))
-                         scripts)
-               #t))))))
+                         scripts)))))))
     (outputs
      '("out" "lib"))
     (native-inputs
-     `(("gperf" ,gperf)
-       ("pkg-config" ,pkg-config)
-       ("python-cython" ,python-cython)
-       ("python-sphinx" ,python-sphinx)
-       ("yasm" ,yasm)))
+     (list gperf pkg-config python-cython python-sphinx yasm))
     (inputs
      `(("boost" ,boost)
        ("curl" ,curl)
        ("cryptsetup" ,cryptsetup)
        ("expat" ,expat)
        ("fcgi" ,fcgi)
+       ("fmt" ,fmt)
        ("fuse" ,fuse)
+       ("icu4c" ,icu4c)
        ("jemalloc" ,jemalloc)
        ("keyutils" ,keyutils)
        ("leveldb" ,leveldb)
@@ -221,12 +222,13 @@
        ("ncurses" ,ncurses)
        ("nss" ,nss)
        ("python-prettytable" ,python-prettytable) ;used by ceph_daemon.py
-       ("python-six" ,python-six)                 ;for ceph-mgr + plugins
-       ("python" ,python-wrapper)
+       ("python-pyyaml" ,python-pyyaml)           ;from python-common/setup.py
+       ("python" ,python)
        ("rapidjson" ,rapidjson)
        ("rdma-core" ,rdma-core)
        ("rocksdb" ,rocksdb)
        ("snappy" ,snappy)
+       ("sqlite" ,sqlite)
        ("udev" ,eudev)
        ("util-linux" ,util-linux)
        ("util-linux:lib" ,util-linux "lib")
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index 4200793021..04803c8fd3 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -9,6 +9,8 @@
 ;;; Copyright © 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
+;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
+;;; Copyright © 2021 Nikolay Korotkiy <sikmir@disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,6 +47,7 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix utils)
@@ -257,10 +260,7 @@ a custom raw video format with a simple container.")
                     output)))
               #t))))))
     (inputs
-     `(("freetype" ,freetype)
-       ("libx11" ,libx11)
-       ("libxft" ,libxft)
-       ("libxinerama" ,libxinerama)))
+     (list freetype libx11 libxft libxinerama))
     (home-page "https://dwm.suckless.org/")
     (synopsis "Dynamic window manager")
     (description
@@ -292,10 +292,7 @@ optimising the environment for the application in use and the task performed.")
        #:phases
        (modify-phases %standard-phases (delete 'configure))))
     (inputs
-     `(("freetype" ,freetype)
-       ("libxft" ,libxft)
-       ("libx11" ,libx11)
-       ("libxinerama" ,libxinerama)))
+     (list freetype libxft libx11 libxinerama))
     (home-page "https://tools.suckless.org/dmenu/")
     (synopsis "Dynamic menu")
     (description
@@ -322,10 +319,8 @@ numbers of user-defined menu items efficiently.")
        (list (string-append "CC=" ,(cc-for-target))
              (string-append "PREFIX=" %output))))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxkbfile" ,libxkbfile)
-       ("alsa-lib" ,alsa-lib)           ; tinyalsa (unpackaged) would suffice
-       ("libmpdclient" ,libmpdclient)))
+     (list libx11 libxkbfile alsa-lib ; tinyalsa (unpackaged) would suffice
+           libmpdclient))
     (home-page "https://git.2f30.org/spoon/")
     (synopsis "Set dwm status")
     (description
@@ -351,10 +346,7 @@ numbers of user-defined menu items efficiently.")
              (string-append "PREFIX=" %output))
        #:phases (modify-phases %standard-phases (delete 'configure))))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxinerama" ,libxinerama)
-       ("libxrandr" ,libxrandr)))
+     (list libx11 libxext libxinerama libxrandr))
     (home-page "https://tools.suckless.org/slock/")
     (synopsis "Simple X session lock")
     (description
@@ -377,22 +369,21 @@ numbers of user-defined menu items efficiently.")
      `(#:tests? #f                      ; no tests
        #:make-flags
        (list (string-append "CC=" ,(cc-for-target))
+             (string-append "TERMINFO="
+                            (assoc-ref %outputs "out")
+                            "/share/terminfo")
              (string-append "PREFIX=" %output))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
-         (add-after 'unpack 'inhibit-terminfo-install
-           (lambda _
-             (substitute* "Makefile"
-               (("\ttic .*") ""))
-             #t)))))
+         (delete 'configure))))
     (inputs
      `(("libx11" ,libx11)
        ("libxft" ,libxft)
        ("fontconfig" ,fontconfig)
        ("freetype" ,freetype)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list ncurses ;provides tic program
+           pkg-config))
     (home-page "https://st.suckless.org/")
     (synopsis "Simple terminal emulator")
     (description
@@ -434,10 +425,10 @@ drawing.")
        ("gcr" ,gcr)
        ("glib-networking" ,glib-networking)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("webkitgtk" ,webkitgtk)
+       ("webkitgtk" ,webkitgtk-with-libsoup2)
        ("xprop" ,xprop)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://surf.suckless.org/")
     (synopsis "Simple web browser")
     (description
@@ -473,7 +464,7 @@ point surf to another URI by setting its XProperties.")
                (string-append "INCS=-I. " (pkg-config "--cflags"))
                (string-append "LIBS=" (pkg-config "--libs") " -lm")))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("libpng" ,libpng)
        ("libx11" ,libx11)
@@ -488,6 +479,36 @@ few minutes.")
     (home-page "https://tools.suckless.org/sent")
     (license license:x11)))
 
+(define-public wmname
+  (package
+    (name "wmname")
+    (version "0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://dl.suckless.org/tools/wmname-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1i82ilhbk36hspc2j0fbpg27wjj7xnvzpv1ppgf6fccina4d36jm"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "PREFIX=" %output))
+       #:phases                         ; no tests
+       (modify-phases %standard-phases
+         (delete 'configure))))         ; no configure script
+    (inputs
+     (list libx11))
+    (home-page "https://tools.suckless.org/x/wmname/")
+    (synopsis "Print or set the window manager name")
+    (description "@command{wmname} prints/sets the window manager name
+property of the root window similar to how @command{hostname} behaves.  It is
+useful for fixing problems with JDK versions and other broken programs
+assuming a reparenting window manager for instance.")
+    (license license:expat)))
+
 (define-public xbattmon
   (package
     (name "xbattmon")
@@ -507,7 +528,7 @@ few minutes.")
        (list (string-append "CC=" ,(cc-for-target))
              (string-append "PREFIX=" %output))))
     (inputs
-     `(("libx11" ,libx11)))
+     (list libx11))
     (home-page "https://git.2f30.org/xbattmon/")
     (synopsis "Simple battery monitor for X")
     (description
@@ -625,8 +646,7 @@ left.")
        (modify-phases %standard-phases
          (delete 'configure))))         ; no configure script
     (inputs
-     `(("cups-minimal" ,cups-minimal)
-       ("zlib" ,zlib)))
+     (list cups-minimal zlib))
     (home-page "https://git.2f30.org/prout/")
     (synopsis "Smaller lp command")
     (description
@@ -662,7 +682,7 @@ cups server to be installed.")
              (substitute* "Makefile"
                (("lcurses") "lncurses")))))))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (home-page "https://git.2f30.org/noice/")
     (synopsis "Small file browser")
     (description
@@ -765,7 +785,7 @@ initially intended to be used on musl-based Linux distributions.
        (modify-phases %standard-phases
          (delete 'configure))))         ; no configure script
     (inputs
-     `(("libpng" ,libpng)))
+     (list libpng))
     (home-page "https://git.2f30.org/colors/")
     (synopsis "Extract colors from pictures")
     (description
@@ -803,7 +823,7 @@ colormap to stdout.")
          (modify-phases %standard-phases
            (delete 'configure))))       ; no configure script
       (inputs
-       `(("gawk" ,gawk)))
+       (list gawk))
       (home-page "https://github.com/cls/libutf")
       (synopsis "Plan 9 compatible UTF-8 library")
       (description
@@ -861,10 +881,7 @@ as -1, to be used instead of U+FFFD.
                  (install-file "lchat.1" man1)
                  #t))))))
       (inputs
-       `(("grep" ,grep)
-         ("ncurses" ,ncurses)
-         ("libutf" ,libutf)
-         ("libbsd" ,libbsd)))
+       (list grep ncurses libutf libbsd))
       (home-page "https://github.com/younix/lchat")
       (synopsis "Line chat is a frontend for the irc client ii from suckless")
       (description
@@ -873,6 +890,38 @@ It is a front end for ii-like chat programs.  It uses @code{tail -f} to get the
 chat output in the background.")
       (license license:isc))))
 
+(define-public snooze
+  (package
+    (name "snooze")
+    (version "0.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/leahneukirchen/snooze")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "02ng3r1gzgpyjia4b60i11dj5bhn3xjsdcbwmxaam6dzb33dmgib"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; There are no tests.
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             ;; Set prefix path to root of package path in store instead
+             ;; of /usr/local.
+             (string-append "PREFIX=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (home-page "https://github.com/leahneukirchen/snooze")
+    (synopsis "Run a command at a particular time")
+    (description
+"@command{snooze} is a tool for waiting until a particular time and then
+running a command.")
+    (license license:cc0)))
+
 (define-public scron
   (package
     (name "scron")
@@ -901,3 +950,70 @@ chat output in the background.")
 Single daemon and configuration file.  Log to stdout or syslog.  No mail
 support.")
     (license license:expat)))
+
+(define-public sfm
+  (package
+    (name "sfm")
+    (version "0.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "git://git.afify.dev/sfm.git")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0g6k884mggryld0k054sjcj6kpkbca9cvr50w98klszym73yw0sp"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ;no check target
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "PREFIX=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))         ;no configure script
+    (home-page "https://github.com/afify/sfm")
+    (synopsis "Simple file manager")
+    (description "sfm is a simple file manager.")
+    (license license:isc)))
+
+(define-public sfeed
+  (package
+    (name "sfeed")
+    (version "1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "git://git.codemadness.org/sfeed")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1b0l6f9aymk54ncc2kxavhg4flcqv7d4mpkpw8ljx7mzg0g4ygyk"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      #:tests? #f                       ;no check target
+      #:make-flags
+      #~(list (string-append "CC=" #$(cc-for-target))
+              (string-append "PREFIX=" #$output))
+      #:phases
+      '(modify-phases %standard-phases
+         (add-after 'unpack 'fix-ncurses
+           (lambda _
+             (substitute* "Makefile"
+               (("-lcurses") "-lncurses"))))
+         (delete 'configure))))         ;no configure script
+    (inputs
+     (list ncurses))
+    (home-page "https://git.codemadness.org/sfeed")
+    (synopsis "RSS and Atom parser")
+    (description
+     "@code{sfeed} converts RSS or Atom feeds from XML to a TAB-separated file.
+There are formatting programs included to convert this TAB-separated format to
+various other formats.  There are also some programs and scripts included to
+import and export OPML and to fetch, filter, merge and order feed items.")
+    (license license:isc)))
diff --git a/gnu/packages/swig.scm b/gnu/packages/swig.scm
index b14bcd6401..1f4bd0922a 100644
--- a/gnu/packages/swig.scm
+++ b/gnu/packages/swig.scm
@@ -45,13 +45,13 @@
               (base32
                "1z06m5zv87mha6hvys1iay810ghc1jngilfby1ms2n4d1mryjfym"))))
     (build-system gnu-build-system)
-    (native-inputs `(("boost" ,boost)
-                     ("pcre" ,pcre "bin")       ;for 'pcre-config'
-                     ;; The following are for tests and examples:
-                     ("guile" ,guile-3.0)
-                     ("perl" ,perl)))
+    (native-inputs (list boost
+                         `(,pcre "bin") ;for 'pcre-config'
+                         ;; The following are for tests and examples:
+                         guile-3.0
+                         perl))
                      ;;("python" ,python-wrapper)
-    (inputs `(("pcre" ,pcre)))
+    (inputs (list pcre))
     (home-page "http://swig.org/")
     (synopsis
      "Interface compiler that connects C/C++ code to higher-level languages")
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index d36e200def..ce815ed5c7 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -179,33 +179,32 @@
        ("qttools" ,qttools)
        ("ruby" ,ruby)))
     (inputs
-     `(("appstream" ,appstream)
-       ("desktop-file-utils" ,desktop-file-utils)
-       ("glib" ,glib)
-       ("kconfig" ,kconfig)
-       ("kcoreaddons" ,kcoreaddons)
-       ("kio" ,kio)
-       ("kjs" ,kjs)
-       ("kwidgetsaddons" ,kwidgetsaddons)
-       ("libcloudproviders" ,libcloudproviders)
-       ("libzip" ,libzip)
-       ("openssl" ,openssl)
-       ("python-nautilus" ,python-nautilus)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtgraphicaleffects" ,qtgraphicaleffects)
-       ("qtkeychain" ,qtkeychain)
-       ("qtquickcontrols2" ,qtquickcontrols2)
-       ("qtsolutions" ,qtsolutions)
-       ("qtsvg" ,qtsvg)
-       ("qtwebchannel" ,qtwebchannel)
-       ("qtwebsockets" ,qtwebsockets)
-       ("qtwebkit" ,qtwebkit)
-       ("sqlite" ,sqlite)
-       ("xdg-utils" ,xdg-utils)
-       ("zlib" ,zlib)))
+     (list appstream
+           desktop-file-utils
+           glib
+           kconfig
+           kcoreaddons
+           kio
+           kjs
+           kwidgetsaddons
+           libcloudproviders
+           libzip
+           openssl
+           qtbase-5
+           qtdeclarative
+           qtgraphicaleffects
+           qtkeychain
+           qtquickcontrols2
+           qtsolutions
+           qtsvg
+           qtwebchannel
+           qtwebsockets
+           qtwebkit
+           sqlite
+           xdg-utils
+           zlib))
     (propagated-inputs
-     `(("qtwebengine" ,qtwebengine)))
+     (list qtwebengine))
     (synopsis "Desktop sync client for Nextcloud")
     (description "Nextcloud-Desktop is a tool to synchronize files from
 Nextcloud Server with your computer.")
@@ -236,9 +235,7 @@ Nextcloud Server with your computer.")
      `(#:tests? #f
        #:configure-flags '("--with-pcre")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (inputs
      `(("c-ares" ,c-ares)
        ("crypto++" ,crypto++)
@@ -286,13 +283,11 @@ distributions.")
                                           "/etc/bash_completion.d"))
              #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ;; For documentation
-       ("asciidoc" ,asciidoc)))
+     (list pkg-config
+           ;; For documentation
+           asciidoc))
     (inputs
-     `(("curl" ,curl)
-       ("glib" ,glib)
-       ("openssl" ,openssl)))
+     (list curl glib openssl))
     (home-page "https://megatools.megous.com/")
     (synopsis "Command line client application for mega.nz")
     (description "Megatools is a collection of programs for accessing the mega.nz service
@@ -311,14 +306,14 @@ See also: megacmd, the official tool set by MEGA.")
 (define-public owncloud-client
   (package
     (name "owncloud-client")
-    (version "2.7.6.3261")
+    (version "2.9.0.5150")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.owncloud.com/desktop/ownCloud/stable/"
                            version "/source/ownCloud-" version ".tar.xz"))
        (sha256
-        (base32 "19jjlhbzhy4v5h1wj5a87ismxq2p7avb2bb4lfbh2rvl01r432vy"))
+        (base32 "0nf68x840p30yng4fh1nlyiqg40z0rkcv0lskpz8dd4pj1iw5jjs"))
        (patches (search-patches "owncloud-disable-updatecheck.patch"))))
     ;; TODO: unbundle qprogessindicator, qlockedfile, qtokenizer and
     ;; qtsingleapplication which have not yet been packaged, but all are
@@ -340,10 +335,16 @@ See also: megacmd, the official tool set by MEGA.")
                (("QCoreApplication::applicationFilePath\\()") "\"owncloud\""))
              #t))
          (delete 'patch-dot-desktop-files))
-       #:configure-flags '("-DUNIT_TESTING=ON"
+       #:configure-flags `("-DUNIT_TESTING=ON"
                            ;; build without qtwebkit, which causes the
                            ;; package to FTBFS while looking for QWebView.
-                           "-DNO_SHIBBOLETH=1")))
+                           "-DNO_SHIBBOLETH=1"
+                           ;; Fix sync-exclude.list problem, see
+                           ;; <https://github.com/owncloud/client/issues/8373>
+                           ;; <https://issues.guix.gnu.org/47672>
+                           ,(string-append "-DSYSCONF_INSTALL_DIR="
+                                           (assoc-ref %outputs "out")
+                                           "/etc"))))
     (native-inputs
      `(("cmocka" ,cmocka)
        ("extra-cmake-modules" ,extra-cmake-modules)
@@ -351,10 +352,7 @@ See also: megacmd, the official tool set by MEGA.")
        ("pkg-config" ,pkg-config)
        ("qtlinguist" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtkeychain" ,qtkeychain)
-       ("sqlite" ,sqlite)
-       ("zlib" ,zlib)))
+     (list qtbase-5 qtkeychain sqlite zlib))
     (home-page "https://owncloud.org")
     (synopsis "Folder synchronization with an ownCloud server")
     (description "The ownCloudSync system lets you always have your latest
@@ -396,8 +394,7 @@ silently and reliably flow across to every other.")
                #t))))
        #:tests? #f)) ; no test target
     (inputs
-     `(("qtbase" ,qtbase-5)
-       ("qtwebkit" ,qtwebkit)))
+     (list qtbase-5 qtwebkit))
     (home-page "https://github.com/sieren/QSyncthingTray")
     (synopsis "Traybar Application for Syncthing")
     (description
@@ -460,7 +457,7 @@ their folder.
                (install-file "../source/doc/manpage/lsyncd.1" man)
                #t))))))
     (native-inputs
-     `(("lua" ,lua-5.2)))
+     (list lua-5.2))
     (home-page "https://github.com/axkibe/lsyncd")
     (synopsis "Synchronize local directories with remote targets")
     (description "Lsyncd watches a local directory trees event monitor
@@ -489,10 +486,9 @@ and does not hamper local file system performance.")
           (base32 "16i1q8f0jmfd43rb8d70l2b383vr5ib4kh7iq3yd345q7xjz9c2j"))))
       (build-system copy-build-system)
       (inputs
-       `(("scsh" ,scsh)))
+       (list scsh))
       (propagated-inputs
-       `(("rsync" ,rsync)
-         ("unison" ,unison)))
+       (list rsync unison))
       (arguments
        `(#:install-plan '(("usync" "bin/usync"))
          #:phases (modify-phases %standard-phases
@@ -526,18 +522,16 @@ written in @command{scsh}.  It makes use of @command{unison} and
               (patches (search-patches "casync-renameat2-declaration.patch"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-sphinx" ,python-sphinx)
-       ("rsync" ,rsync)))                         ;for tests
+     (list pkg-config python-sphinx rsync))                         ;for tests
     (inputs
-     `(("xz" ,xz)                                 ;for liblzma
-       ("zstd" ,zstd "lib")
-       ("curl" ,curl)
-       ("acl" ,acl)
-       ("libselinux" ,libselinux)
-       ("fuse" ,fuse)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (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
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 4deb60bee2..a957d7738b 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -45,7 +45,7 @@
 (define-public syncthing
   (package
     (name "syncthing")
-    (version "1.16.1")
+    (version "1.18.5")
     ; XXX After the go-build-system can use "Go modules", stop using bundled
     ; dependencies for Syncthing.
     (source (origin
@@ -55,7 +55,7 @@
                                   "/syncthing-source-v" version ".tar.gz"))
               (sha256
                (base32
-                "0m5k37sp3px8acs3y9an5wzy1wbcbdvqq74jy0pwzfk4bjbr999j"))))
+                "07yzhc8ilwv9r9cpqdzd1i1mcgi4875xbz9k4dfm5rkazvav8kf6"))))
     (build-system go-build-system)
     ;; The primary Syncthing executable goes to "out", while the auxiliary
     ;; server programs and utility tools go to "utils".  This reduces the size
@@ -65,6 +65,7 @@
      `(#:modules ((srfi srfi-26) ; for cut
                   (guix build utils)
                   (guix build go-build-system))
+       #:go ,go-1.17
        #:import-path "github.com/syncthing/syncthing"
        ;; We don't need to install the source code for end-user applications.
        #:install-source? #f
@@ -183,17 +184,16 @@ Protocol.")
                    `("GI_TYPELIB_PATH" ":" prefix
                      (,(getenv "GI_TYPELIB_PATH"))))))))))
       (inputs
-       `(("gtk+" ,gtk+)
-         ("libappindicator" ,libappindicator)
-         ("libnotify" ,libnotify)
-         ("librsvg" ,librsvg)
-         ("python-bcrypt" ,python-bcrypt)
-         ("python-dateutil" ,python-dateutil)
-         ("python-pycairo" ,python-pycairo)
-         ("python-pygobject" ,python-pygobject)
-         ("python-nautilus" ,python-nautilus)
-         ("psmisc" ,psmisc)
-         ("syncthing" ,syncthing)))
+       (list gtk+
+             libappindicator
+             libnotify
+             librsvg
+             python-bcrypt
+             python-dateutil
+             python-pycairo
+             python-pygobject
+             psmisc
+             syncthing))
       ;; (native-inputs
       ;;  `(("python2-setuptools" ,python2-setuptools)))
       (home-page "https://github.com/syncthing/syncthing-gtk")
@@ -248,8 +248,7 @@ firewall.")
                 "1m1xna1kb78pkmr1lfmvvnpk9j7c4x71j3a7c6vj7zpzc4srpsmf"))))
     (build-system go-build-system)
     (inputs
-     `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
-       ("go-github-com-urfave-cli" ,go-github-com-urfave-cli)))
+     (list go-github-com-pkg-errors go-github-com-urfave-cli))
     (arguments
      `(#:import-path "github.com/AudriusButkevicius/recli"))
     (synopsis "Reflection-based CLI generator")
@@ -412,7 +411,8 @@ processes.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "004cw699yz3pdpawhjhpa0y94c4w479nw1rf39zj6h6027kpwv2j"))))
+                "004cw699yz3pdpawhjhpa0y94c4w479nw1rf39zj6h6027kpwv2j"))
+              (patches (search-patches "go-github-com-golang-snappy-32bit-test.patch"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/golang/snappy"))
@@ -484,9 +484,7 @@ database/sql package.")
                 "1jj4rbdpy87rbl79czg5hs5dyn6xlbnk0bnvyzi71dsxan57nixw"))))
     (build-system go-build-system)
     (propagated-inputs
-     `(("go-github-com-oschwald-maxminddb-golang"
-        ,go-github-com-oschwald-maxminddb-golang)
-       ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+     (list go-github-com-oschwald-maxminddb-golang go-golang-org-x-sys))
     (arguments
      `(#:import-path "github.com/oschwald/geoip2-golang"
        #:tests? #f)) ; Requires some unpackaged software and test data
@@ -511,7 +509,7 @@ GeoLite2 and GeoIP2 databases in Go.")
                 "100wd5qv00pkcm6cb8c4x5gavc9jnn7drh6xrqh85hzci4rils66"))))
     (build-system go-build-system)
     (propagated-inputs
-     `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+     (list go-golang-org-x-sys))
     (arguments
      `(#:import-path "github.com/oschwald/maxminddb-golang"
        #:tests? #f)) ; Requires some unpackaged software and test data
@@ -568,7 +566,7 @@ higher-level API for doing so.")
                                                       (%current-system))))
          #:import-path "github.com/rcrowley/go-metrics"))
       (propagated-inputs
-       `(("go-github-com-stathat-go" ,go-github-com-stathat-go)))
+       (list go-github-com-stathat-go))
       (synopsis "Go port of Coda Hale's Metrics library")
       (description "This package provides a Go implementation of Coda Hale's
 Metrics library.")
@@ -592,7 +590,7 @@ Metrics library.")
     (arguments
      `(#:import-path "github.com/sasha-s/go-deadlock"))
     (propagated-inputs
-     `(("go-github-com-petermattis-goid" ,go-github-com-petermattis-goid)))
+     (list go-github-com-petermattis-goid))
     (synopsis "Deadlock detection in go")
     (description "This package provides tools for detecting deadlocks at
 run-time in Go.")
@@ -616,7 +614,7 @@ run-time in Go.")
                   "0mnkzrz4di13g6ggd54my7bkb9nwk8f5k672dyasn467wsg7bf8f"))))
       (build-system go-build-system)
       (propagated-inputs
-       `(("go-github-com-golang-snappy" ,go-github-com-golang-snappy)))
+       (list go-github-com-golang-snappy))
       (arguments
        `(#:import-path "github.com/syndtr/goleveldb/leveldb"
          #:unpack-path "github.com/syndtr/goleveldb"
@@ -776,7 +774,7 @@ using sh's word-splitting rules.")
       (arguments
        '(#:import-path "github.com/syncthing/notify"))
       (propagated-inputs
-       `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+       (list go-golang-org-x-sys))
       (synopsis "File system event notification library")
       (description "This package provides @code{notify}, a file system event
 notification library in Go.")
@@ -833,8 +831,7 @@ bounds.")
            ;; Source-only package
            (delete 'build))))
       (propagated-inputs
-       `(("go-github-com-golang-protobuf-proto"
-          ,go-github-com-golang-protobuf-proto)))
+       (list go-github-com-golang-protobuf-proto))
       (synopsis "Data model artifacts for Prometheus")
       (description "This package provides data model artifacts for Prometheus.")
       (home-page "https://github.com/prometheus/client_model")
@@ -862,8 +859,7 @@ bounds.")
        '(#:import-path "github.com/matttproud/golang_protobuf_extensions/pbutil"
          #:unpack-path "github.com/matttproud/golang_protobuf_extensions"))
       (propagated-inputs
-       `(("go-github-com-golang-protobuf-proto"
-          ,go-github-com-golang-protobuf-proto)))
+       (list go-github-com-golang-protobuf-proto))
       (synopsis "Streaming Protocol Buffers in Go")
       (description "This package provides various Protocol Buffer
 extensions for the Go language, namely support for record length-delimited
@@ -902,12 +898,9 @@ message streaming.")
            ;; Source-only package
            (delete 'build))))
       (propagated-inputs
-       `(("go-github-com-golang-protobuf-proto"
-          ,go-github-com-golang-protobuf-proto)
-         ("go-github-com-matttproud-golang-protobuf-extensions-pbutil"
-          ,go-github-com-matttproud-golang-protobuf-extensions-pbutil)
-         ("go-github-com-prometheus-client-model"
-          ,go-github-com-prometheus-client-model)))
+       (list go-github-com-golang-protobuf-proto
+             go-github-com-matttproud-golang-protobuf-extensions-pbutil
+             go-github-com-prometheus-client-model))
       (synopsis "Prometheus metrics")
       (description "This package provides tools for reading and writing
 Prometheus metrics.")
@@ -961,16 +954,12 @@ system, kernel, and process metrics from the @file{/proc} pseudo file system.")
            ;; Source-only package
            (delete 'build))))
       (propagated-inputs
-       `(("go-github-com-beorn7-perks-quantile"
-          ,go-github-com-beorn7-perks-quantile)
-         ("go-github-com-golang-protobuf-proto"
-          ,go-github-com-golang-protobuf-proto)
-         ("go-github-com-prometheus-client-model"
-          ,go-github-com-prometheus-client-model)
-         ("go-github-com-prometheus-common"
-          ,go-github-com-prometheus-common)
-         ("go-github-com-prometheus-procfs" ,go-github-com-prometheus-procfs)
-         ("go-github-com-cespare-xxhash" ,go-github-com-cespare-xxhash)))
+       (list go-github-com-beorn7-perks-quantile
+             go-github-com-golang-protobuf-proto
+             go-github-com-prometheus-client-model
+             go-github-com-prometheus-common
+             go-github-com-prometheus-procfs
+             go-github-com-cespare-xxhash))
       (synopsis "HTTP server and client tools for Prometheus")
       (description "This package @code{promhttp} provides HTTP client and
 server tools for Prometheus metrics.")
@@ -1017,7 +1006,7 @@ Go language.")
      '(#:import-path "github.com/go-ldap/ldap/v3"
        #:tests? #f)) ; test suite requires internet access
     (propagated-inputs
-     `(("go-github-com-go-asn1-ber-asn1-ber" ,go-github-com-go-asn1-ber-asn1-ber)))
+     (list go-github-com-go-asn1-ber-asn1-ber))
     (home-page "https://github.com/go-ldap/ldap")
     (synopsis "LDAP v3 functionality for Go")
     (description "This package provides basic LDAP v3 functionality in the Go
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm
index dc577b87f0..0c6d860f72 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 ;;;
@@ -67,7 +67,7 @@
 (define-public cawbird
   (package
     (name "cawbird")
-    (version "1.4.1")
+    (version "1.4.2")
     (source
      (origin
        (method git-fetch)
@@ -76,7 +76,7 @@
              (commit (string-append "v"version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0lmrgcj1ky1vhzynl36k6ba3ws089x4qdrnkjk3lbr334kicx9na"))))
+        (base32 "17575cp5qcgsqf37y3xqg3vr6l2j8bbbkmy2c1l185rxghfacida"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -110,8 +110,7 @@
                (setenv "XDG_DATA_DIRS"
                        (string-append (getenv "XDG_DATA_DIRS")
                                       ":" (assoc-ref outputs "out") "/share"))
-               (invoke "meson" "test"))
-             #t))
+               (invoke "meson" "test"))))
          (add-after 'glib-or-gtk-wrap 'wrap-paths
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -120,8 +119,7 @@
                     (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
                (wrap-program (string-append bin "cawbird")
                  `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
-                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
-             #t)))))
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
@@ -148,7 +146,7 @@
        ("sqlite" ,sqlite)
        ("x11" ,libx11)))
     (propagated-inputs
-     `(("dconf" ,dconf)))
+     (list dconf))
     (synopsis "Client for Twitter")
     (description "Cawbird is a Twitter client built with GTK and Vala.
 It supports all features except non-mention notifications, polls, threads and
@@ -185,9 +183,8 @@ cards.")
                                           (package-version python))
                                         "/site-packages")))
                (wrap-program (string-append bin "giara")
-                 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH") ,lib))
-                 `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))))
-             #t)))))
+                 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH") ,lib))
+                 `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH"))))))))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
@@ -209,9 +206,9 @@ cards.")
        ("python-pycairo" ,python-pycairo)
        ("python-pygobject" ,python-pygobject)
        ("python-requests" ,python-requests)
-       ("webkitgtk" ,webkitgtk)))
+       ("webkitgtk" ,webkitgtk-with-libsoup2)))
     (propagated-inputs
-     `(("dconf" ,dconf)))
+     (list dconf))
     (synopsis "Client for Reddit")
     (description "Giara is a reddit app, built with Python, GTK and Handy.")
     (home-page "https://giara.gabmus.org/")
@@ -220,14 +217,14 @@ cards.")
 (define-public newsboat
   (package
     (name "newsboat")
-    (version "2.24")
+    (version "2.25")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://newsboat.org/releases/" version
                            "/newsboat-" version ".tar.xz"))
        (sha256
-        (base32 "1yvggkb29qykxlvrysb6yyf5piwsvzv0zla8jn2ihmm2rj40chk2"))))
+        (base32 "0zh1lqgsfhz8cmn6ajvcrfbn9iq2ls3adi2g17syzj8xiwvspaj1"))))
     (build-system cargo-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -236,12 +233,12 @@ cards.")
        ;; For building documentation.
        ("asciidoctor" ,ruby-asciidoctor)))
     (inputs
-     `(("curl" ,curl)
-       ("json-c" ,json-c)
-       ("libxml2" ,libxml2)
-       ("ncurses" ,ncurses)
-       ("stfl" ,stfl)
-       ("sqlite" ,sqlite)))
+     (list curl
+           json-c
+           libxml2
+           ncurses
+           stfl
+           sqlite))
     (arguments
      `(#:modules ((guix build cargo-build-system)
                   (guix build utils)
@@ -250,25 +247,25 @@ cards.")
        #:install-source? #f
        #:cargo-inputs
        (("rust-backtrace" ,rust-backtrace-0.3)
-        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-bitflags" ,rust-bitflags-1.3)
         ("rust-chrono" ,rust-chrono-0.4)
         ("rust-clap" ,rust-clap-2)
         ("rust-curl-sys" ,rust-curl-sys-0.4)
         ("rust-cxx" ,rust-cxx-1)
+        ("rust-fastrand" ,rust-fastrand-1)
         ("rust-gettext-rs" ,rust-gettext-rs-0.7)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-natord" ,rust-natord-1)
-        ("rust-nom" ,rust-nom-6)
+        ("rust-nom" ,rust-nom-7)
         ("rust-once-cell" ,rust-once-cell-1)
         ("rust-percent-encoding" ,rust-percent-encoding-2)
-        ("rust-rand" ,rust-rand-0.8)
         ("rust-url" ,rust-url-2)
         ("rust-unicode-width" ,rust-unicode-width-0.1)
         ("rust-xdg" ,rust-xdg-2))
        #:cargo-development-inputs
        (("rust-cxx-build" ,rust-cxx-build-1)
         ("rust-tempfile" ,rust-tempfile-3)
-        ("rust-proptest" ,rust-proptest-0.9)
+        ("rust-proptest" ,rust-proptest-1)
         ("rust-section-testing" ,rust-section-testing-0.0))
        #:phases
        (modify-phases %standard-phases
@@ -326,8 +323,8 @@ file system, and many more features.")
        ;; For building documentation.
        ("asciidoc" ,asciidoc)))
     (inputs
-     `(("json-c" ,json-c-0.13)
-       ,@(alist-delete "json-c" (package-inputs newsboat))))
+     (modify-inputs (package-inputs newsboat)
+       (replace "json-c" json-c-0.13)))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -373,34 +370,34 @@ file system, and many more features.")
                  `("GUIX_PYTHONPATH" ":" prefix (,python-path))))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("intltool" ,intltool)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list autoconf
+           automake
+           gettext-minimal
+           `(,glib "bin")
+           gobject-introspection
+           intltool
+           libtool
+           pkg-config
+           which))
     (inputs
-     `(("glib" ,glib)
-       ("glib-networking" ,glib-networking)
-       ("gnome-keyring" ,gnome-keyring)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gstreamer" ,gstreamer)
-       ("json-glib" ,json-glib)
-       ("libnotify" ,libnotify)
-       ("libpeas" ,libpeas)
-       ("libsecret" ,libsecret)
-       ("libsoup" ,libsoup)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("pango" ,pango)
-       ("python" ,python)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)
-       ("sqlite" ,sqlite)
-       ("webkitgtk" ,webkitgtk)))
+     (list glib
+           glib-networking
+           gnome-keyring
+           gsettings-desktop-schemas
+           gstreamer
+           json-glib
+           libnotify
+           libpeas
+           libsecret
+           libsoup-minimal-2
+           libxml2
+           libxslt
+           pango
+           python
+           python-pycairo
+           python-pygobject
+           sqlite
+           webkitgtk-with-libsoup2))
     (home-page "https://lzone.de/liferea/")
     (synopsis "News reader for GTK/GNOME")
     (description "Liferea is a desktop feed reader/news aggregator that
@@ -427,22 +424,21 @@ a simple interface that makes it easy to organize and browse feeds.")
              (setenv "HOME" (getcwd))
              (setenv "TERM" "linux")
              (setenv "TERMINFO"
-                     (search-input-directory inputs "share/terminfo")))))
+                     (search-input-directory inputs "share/terminfo"))))
+         ;; Loading this as a library requires a controlling terminal, etc.
+         (delete 'sanity-check))
        #:tests? #f)) ; tests fail: _curses.error: nocbreak() returned ERR
     (propagated-inputs
-     `(("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-decorator" ,python-decorator)
-       ("python-kitchen" ,python-kitchen)
-       ("python-requests" ,python-requests)
-       ("python-six" ,python-six)))
+     (list python-beautifulsoup4 python-decorator python-kitchen
+           python-requests python-six))
     (native-inputs
-     `(("ncurses" ,ncurses)
-       ("python-coveralls" ,python-coveralls)
-       ("python-coverage" ,python-coverage)
-       ("python-mock" ,python-mock)
-       ("python-pylint" ,python-pylint)
-       ("python-pytest" ,python-pytest)
-       ("python-vcrpy" ,python-vcrpy)))
+     (list ncurses
+           python-coveralls
+           python-coverage
+           python-mock
+           python-pylint
+           python-pytest
+           python-vcrpy))
     (home-page "https://github.com/michael-lazar/rtv")
     (synopsis "Terminal viewer for Reddit (Reddit Terminal Viewer)")
     (description
@@ -471,18 +467,15 @@ a simple interface that makes it easy to organize and browse feeds.")
              (when tests?
                (invoke "pytest")))))))
     (inputs
-     `(("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-decorator" ,python-decorator)
-       ("python-kitchen" ,python-kitchen)
-       ("python-requests" ,python-requests)
-       ("python-six" ,python-six)))
+     (list python-beautifulsoup4 python-decorator python-kitchen
+           python-requests python-six))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-coveralls" ,python-coveralls)
-       ("python-mock" ,python-mock)
-       ("python-pylint" ,python-pylint)
-       ("python-pytest" ,python-pytest)
-       ("python-vcrpy" ,python-vcrpy)))
+     (list python-coverage
+           python-coveralls
+           python-mock
+           python-pylint
+           python-pytest
+           python-vcrpy))
     (home-page "https://gitlab.com/ajak/tuir")
     (synopsis "Terminal viewer for Reddit (Terminal UI for Reddit)")
     (description
@@ -506,8 +499,7 @@ a simple interface that makes it easy to organize and browse feeds.")
     (arguments
      `(#:python ,python-2.7))
     (inputs
-     `(("python2-feedparser" ,python2-feedparser)
-       ("python2-pytidylib" ,python2-pytidylib)))
+     (list python2-feedparser python2-pytidylib))
     (home-page "https://offog.org/code/rawdog/")
     (synopsis "RSS Aggregator Without Delusions Of Grandeur")
     (description
@@ -557,14 +549,9 @@ formats, including all versions of RSS and Atom.")
                                     (assoc-ref inputs "qttools")
                                     "/bin/lrelease")))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))
+     (list pkg-config qttools))
     (inputs
-     `(("qtwebkit" ,qtwebkit)
-       ("qtbase" ,qtbase-5)
-       ("qtmultimedia" ,qtmultimedia)
-       ("phonon" ,phonon)
-       ("sqlite" ,sqlite)))
+     (list qtwebkit qtbase-5 qtmultimedia phonon sqlite))
     (home-page "https://quiterss.org/")
     (synopsis "RSS/Atom news feeds reader written on Qt/C++")
     (description "QuiteRSS is an RSS/Atom news feeds reader written on Qt/C++
@@ -607,26 +594,26 @@ that aims to be quite fast and comfortable to its user.")
        ("gtk+:bin" ,gtk+ "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("glib" ,glib)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ("hicolor-icon-theme" ,hicolor-icon-theme)
-       ("libhandy" ,libhandy)
-       ("mpv" ,mpv)
-       ("python" ,python)
-       ("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-dateutil" ,python-dateutil)
-       ("python-feedparser" ,python-feedparser)
-       ("python-html5lib" ,python-html5lib)
-       ("python-listparser" ,python-listparser)
-       ("python-lxml" ,python-lxml)
-       ("python-pillow" ,python-pillow)
-       ("python-pygments" ,python-pygments)
-       ("python-pytz" ,python-pytz)
-       ("python-readability" ,python-readability)
-       ("python-requests" ,python-requests)
-       ("webkitgtk" ,webkitgtk)
-       ("python-pygobject" ,python-pygobject)))
+     (list glib
+           gsettings-desktop-schemas
+           gtk+
+           hicolor-icon-theme
+           libhandy
+           mpv
+           python
+           python-beautifulsoup4
+           python-dateutil
+           python-feedparser
+           python-html5lib
+           python-listparser
+           python-lxml
+           python-pillow
+           python-pygments
+           python-pytz
+           python-readability
+           python-requests
+           webkitgtk
+           python-pygobject))
     (home-page "https://gfeeds.gabmus.org/")
     (synopsis "Easy-to-use GTK+ RSS/Atom feed reader")
     (description "Feeds is an RSS/Atom feed reader made with GTK+
diff --git a/gnu/packages/synergy.scm b/gnu/packages/synergy.scm
index b241d29f6a..df109e862b 100644
--- a/gnu/packages/synergy.scm
+++ b/gnu/packages/synergy.scm
@@ -73,7 +73,7 @@
                  (("/usr") out))
                #t))))))
     (native-inputs
-     `(("qttools" ,qttools)))           ; for Qt5LinguistTools
+     (list qttools))           ; for Qt5LinguistTools
     (inputs
      `(("avahi" ,avahi)
        ("python"  ,python-wrapper)
diff --git a/gnu/packages/task-management.scm b/gnu/packages/task-management.scm
index 80ad8163ea..296ddbd969 100644
--- a/gnu/packages/task-management.scm
+++ b/gnu/packages/task-management.scm
@@ -35,6 +35,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -104,7 +105,7 @@ following the Japanese kanban (boarding) style.")
           (base32 "0c8zn7l0xq65wp07h7mxnb5ww56d1443l2vkjvx5sj6wpcchfn0s"))))
       (build-system python-build-system)
       (native-inputs
-       `(("python-cram" ,python-cram)))
+       (list python-cram))
       (synopsis "Command-line todo list manager")
       (description
        "@command{t} is a command-line todo list manager for people that want
@@ -115,18 +116,18 @@ to finish tasks, not organize them.")
 (define-public taskwarrior
   (package
     (name "taskwarrior")
-    (version "2.5.3")
+    (version "2.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "http://taskwarrior.org/download/task-" version ".tar.gz"))
        (sha256 (base32
-                "0fwnxshhlha21hlgg5z1ad01w13zm1hlmncs274y5n8i15gdfhvj"))))
+                "0kq8n2y4srax48yp7shz7ngac0q75dnvdbr9z9f9ldyqncr61ah0"))))
     (build-system cmake-build-system)
     (inputs
-     `(("gnutls" ,gnutls)
-       ("util-linux" ,util-linux "lib")))
+     (list gnutls
+           `(,util-linux "lib")))
     (arguments
      `(#:tests? #f ; No tests implemented.
        #:phases
@@ -143,7 +144,7 @@ and querying data, exposing task data in multiple formats to other tools.")
 (define-public dstask
   (package
     (name "dstask")
-    (version "0.24.1")
+    (version "0.25")
     (source
      (origin
        (method git-fetch)
@@ -152,7 +153,7 @@ and querying data, exposing task data in multiple formats to other tools.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "03rl2wh58xd6a80ji43c7ak3h0ysi3ddg570pn8ry24s7s45zsz2"))))
+        (base32 "1m83zc2zqvpcbjng92jvlnk0biw4krv12wjvjas66jbbk3sjghcy"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/naggie/dstask"
@@ -178,8 +179,7 @@ and querying data, exposing task data in multiple formats to other tools.")
                  (install-file "dstask" bindir)
                  (install-file "dstask-import" bindir)
                  (install-file ".dstask-bash-completions.sh" bash-completion)
-                 (install-file ".dstask-zsh-completions.sh" zsh-completion)))
-             #t)))))
+                 (install-file ".dstask-zsh-completions.sh" zsh-completion))))))))
     (synopsis "CLI-based TODO manager with git-based sync + markdown notes per task")
     (description "dstask is a personal task tracker that uses git for
 synchronization.  It offers a note command to attach a Markdown based note to
@@ -190,7 +190,7 @@ a task.")
 (define-public blanket
   (package
     (name "blanket")
-    (version "0.4.1")
+    (version "0.5.0")
     (source
      (origin
        (method git-fetch)
@@ -199,7 +199,7 @@ a task.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1rk9xxiflj8rf75q56s907xp3jzxc7r88njlmxg07gl6i35mmcmi"))))
+        (base32 "00i821zqfbigxmc709322r16z75qsw4rg23yhv35gza9sl65bzkg"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -225,14 +225,14 @@ a task.")
        ("gtk+:bin" ,gtk+ "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("appstream-glib" ,appstream-glib)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gst-plugins-bad" ,gst-plugins-bad)
-       ("gst-plugins-good" ,gst-plugins-good) ;for ScaleTempo plugin
-       ("gtk+" ,gtk+)
-       ("libhandy" ,libhandy)
-       ("python-gst" ,python-gst)
-       ("python-pygobject" ,python-pygobject)))
+     (list appstream-glib
+           gsettings-desktop-schemas
+           gst-plugins-bad
+           gst-plugins-good ;for ScaleTempo plugin
+           gtk+
+           libhandy
+           python-gst
+           python-pygobject))
     (home-page "https://github.com/rafaelmardojai/blanket")
     (synopsis "Ambient sound and noise player")
     (description
@@ -240,3 +240,53 @@ a task.")
 to with the goal of improving your focus and enhancing your productivity.
 You can also use it to fall asleep in a noisy environment.")
     (license license:gpl3+)))
+
+(define-public todoman
+  (package
+    (name "todoman")
+    (version "4.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "todoman" version))
+        (sha256
+          (base32 "1j2h5cv8wnmw41fpz1ggsgi599qhk184cas9kgd92glj3m4alg6f"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-tests
+           (lambda _
+             (substitute* '("tests/test_cli.py" "tests/test_formatter.py")
+               (("tests\\.helpers") "helpers"))))
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest" "-vv" "tests" "-k"
+                       (string-append
+                        ;; Test expects wrong output string.
+                        "not test_bad_start_date "
+                        ;; Unknown failure
+                        "and not test_default_command_args"))))))))
+    (native-inputs
+      (list python-setuptools-scm
+            python-pytest
+            python-pytest-cov
+            python-freezegun))
+    (propagated-inputs
+      (list python-atomicwrites
+            python-click
+            python-click-log
+            python-dateutil
+            python-humanize
+            python-icalendar
+            python-parsedatetime
+            python-pyxdg
+            python-urwid))
+    (home-page "https://todoman.readthedocs.io/")
+    (synopsis "CalDav-based todo manager")
+    (description "Todoman is a simple, standards-based, cli todo (aka: task)
+manager.  Todos are stored into icalendar files, which means you can sync
+them via CalDAV using, for example, @code{vdirsyncer}.")
+    (license license:isc)))
+
diff --git a/gnu/packages/task-runners.scm b/gnu/packages/task-runners.scm
index 1c1fa69894..60a393267b 100644
--- a/gnu/packages/task-runners.scm
+++ b/gnu/packages/task-runners.scm
@@ -45,7 +45,7 @@
         (base32 "17n11lqhywq4z62w2rakdq80v7mxf83rgln19vj4v4nxpwd2hjjw"))))
     (build-system go-build-system)
     (propagated-inputs
-     `(("go-github-com-tekwizely-go-parsing" ,go-github-com-tekwizely-go-parsing)))
+     (list go-github-com-tekwizely-go-parsing))
     (arguments
      `(#:import-path "github.com/tekwizely/run"))
     (synopsis "Easily manage and invoke small scripts and wrappers")
diff --git a/gnu/packages/tbb.scm b/gnu/packages/tbb.scm
index 2aa31225df..427f281686 100644
--- a/gnu/packages/tbb.scm
+++ b/gnu/packages/tbb.scm
@@ -25,12 +25,13 @@
   #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system gnu)
   #:use-module (gnu packages))
 
 (define-public tbb
   (package
     (name "tbb")
-    (version "2021.3.0")
+    (version "2021.4.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -39,7 +40,7 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1bz039my3ma87f24ngcsqs16f8jlpdgaqg01ab4g60nfqbrz1lkq"))))
+                "0ih727g802j9lvwkqhw021bk1wb7xlvfgd0vl1i6jng4am1wv7vq"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags '("-DTBB_STRICT=OFF"))) ;; Don't fail on warnings
@@ -52,3 +53,80 @@ It uses common C++ templates and coding style to eliminate tedious threading
 implementation work.  It provides parallel loop constructs, asynchronous
 tasks, synchronization primitives, atomic operations, and more.")
     (license asl2.0)))
+
+(define-public tbb-2020
+  (package
+    (name "tbb")
+    (version "2020.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/01org/tbb")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0r9axsdlmacjlcnax4vkzg86nwf8lsx7wbqdi3wnryaxk0xvdcx6"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (substitute* "build/common.inc"
+                    (("export tbb_build_prefix.+$")
+                     "export tbb_build_prefix?=guix\n"))
+
+                  ;; Don't capture the build time and kernel version.
+                  (substitute* "build/version_info_linux.sh"
+                    (("uname -srv") "uname -s")
+                    (("`date -u`") "01 Jan 1970"))
+
+                  (substitute* "build/linux.inc"
+                    (("os_kernel_version:=.*")
+                     "os_kernel_version:=5\n")
+                    (("os_version:=.*")
+                     "os_version:=1\n"))))))
+    (outputs '("out" "doc"))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
+                                         (assoc-ref %outputs "out") "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fail-on-test-errors
+           (lambda _
+             (substitute* "Makefile"
+               (("-\\$\\(MAKE") "$(MAKE"))))
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "build/linux.gcc.inc"
+               (("LIB_LINK_FLAGS =")
+                (string-append "LIB_LINK_FLAGS = -Wl,-rpath="
+                               (assoc-ref outputs "out") "/lib")))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((doc      (string-append
+                               (assoc-ref outputs "doc") "/doc"))
+                    (examples (string-append doc "/examples"))
+                    (lib      (string-append
+                               (assoc-ref outputs "out") "/lib"))
+                    (include  (string-append
+                               (assoc-ref outputs "out") "/include")))
+               (mkdir-p lib)
+               (for-each
+                (lambda (f)
+                  (copy-file f
+                             (string-append lib "/"
+                                            (basename f))))
+                (find-files "build/guix_release" "\\.so"))
+               (copy-recursively "doc" doc)
+               (copy-recursively "examples" examples)
+               (copy-recursively "include" include)))))))
+    (home-page "https://www.threadingbuildingblocks.org")
+    (synopsis "C++ library for parallel programming")
+    (description
+     "Threading Building Blocks (TBB) is a C++ runtime library that abstracts
+the low-level threading details necessary for optimal multi-core performance.
+It uses common C++ templates and coding style to eliminate tedious threading
+implementation work.  It provides parallel loop constructs, asynchronous
+tasks, synchronization primitives, atomic operations, and more.")
+    (license asl2.0)))
diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm
index 5fccfa5da9..f05642a3f9 100644
--- a/gnu/packages/tcl.scm
+++ b/gnu/packages/tcl.scm
@@ -133,9 +133,9 @@
                 (string-append out "/libtmp") (string-append out "/lib")))
              #t)))))
     (native-inputs
-     `(("tcl" ,tcl)))
+     (list tcl))
     (inputs
-     `(("tcllib" ,tcllib)))
+     (list tcllib))
     (home-page "http://incrtcl.sourceforge.net/")
     (synopsis "Object Oriented programming (OOP) extension for Tcl")
     (description
@@ -158,11 +158,11 @@ multiple inheritance and public and private classes and variables.")
         "0d1cp5hggjl93xwc8h1y6adbnrvpkk0ywkd00inz9ndxn21xm9s9"))))
     (build-system gnu-build-system)
     (inputs
-     `(;; TODO: Add these optional dependencies.
-       ;; ("libX11" ,libX11)
-       ;; ("xorgproto" ,xorgproto)
-       ;; ("tk" ,tk)
-       ("tcl" ,tcl)))
+     (list ;; TODO: Add these optional dependencies.
+           ;; ("libX11" ,libX11)
+           ;; ("xorgproto" ,xorgproto)
+           ;; ("tk" ,tk)
+           tcl))
     (arguments
      '(#:configure-flags
        (let ((out (assoc-ref %outputs "out"))
@@ -242,13 +242,12 @@ X11 GUIs.")
 
        ;; The tests require a running X server, so we just skip them.
        #:tests? #f))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs `(("libxft" ,libxft)
               ("fontconfig" ,fontconfig)
               ("tcl" ,tcl)))
     ;; tk.h refers to X11 headers, hence the propagation.
-    (propagated-inputs `(("libx11" ,libx11)
-                         ("libxext" ,libxext)))
+    (propagated-inputs (list libx11 libxext))
 
     (home-page "https://www.tcl.tk/")
     (synopsis "Graphical user interface toolkit for Tcl")
@@ -260,7 +259,7 @@ interfaces (GUIs) in the Tcl language.")
 (define-public perl-tk
   (package
     (name "perl-tk")
-    (version "804.034")
+    (version "804.036")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -268,9 +267,9 @@ interfaces (GUIs) in the Tcl language.")
                    version ".tar.gz"))
              (sha256
               (base32
-               "1qiz55dmw7hm1wgpjdzf2jffwcj0hisr3kf80qi8lli3qx2b39py"))))
+               "0pha40m97fzafjnq8vwkbi5sml6xv8jki6qi60rxrzmxlrqp5aij"))))
     (build-system perl-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs `(("libx11" ,libx11)
               ("libpng" ,libpng)
               ("libjpeg" ,libjpeg-turbo)))
@@ -305,7 +304,7 @@ interfaces (GUIs) in the Tcl language.")
                 "173abxaazdmf210v651708ab6h7xhskvd52krxk6ifam337qgzh1"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("tcl" ,tcl)))
+     (list tcl))
     (native-search-paths
      (list (search-path-specification
             (variable "TCLLIBPATH")
@@ -330,10 +329,9 @@ utility functions and modules all written in high-level Tcl.")
                 "03y0bzgwbh7nnyqkh8n00bbkq2fyblq39s3bdb6mawna0bbn0wwg"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("tcl" ,tcl)))
+     (list tcl))
     (propagated-inputs
-     `(("tcllib" ,tcllib)
-       ("tk" ,tk))) ; for "wish"
+     (list tcllib tk)) ; for "wish"
     (native-search-paths
      (list (search-path-specification
             (variable "TCLLIBPATH")
@@ -376,11 +374,9 @@ modules for Tk, all written in high-level Tcl.  Examples of provided widgets:
               (patches (search-patches "tclxml-3.2-install.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("tcl" ,tcl)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)))
+     (list tcl libxml2 libxslt))
     (propagated-inputs
-     `(("tcllib" ,tcllib))) ; uri
+     (list tcllib)) ; uri
     (native-search-paths
      (list (search-path-specification
             (variable "TCLLIBPATH")
@@ -429,8 +425,7 @@ callback is evaluated.")
                                               (assoc-ref %outputs "out")
                                               "/lib"))))
     (inputs
-     `(("tcl" ,tcl)
-       ("tk" ,tk)))
+     (list tcl tk))
     (home-page "http://tclx.sourceforge.net/")
     (synopsis "System programming extensions for Tcl")
     (description
@@ -459,8 +454,7 @@ debugging tools.")
     (arguments
      `(#:import-path "github.com/nsf/gothic"))
     (propagated-inputs
-     `(("tk" ,tk)
-       ("tcl" ,tcl)))
+     (list tk tcl))
     (home-page "https://github.com/nsf/gothic")
     (synopsis "Tcl/Tk Go bindings")
     (description "Gothic contains Go bindings for Tcl/Tk.  The package contains
diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm
index a1822b3892..1f053c0bd0 100644
--- a/gnu/packages/telegram.scm
+++ b/gnu/packages/telegram.scm
@@ -31,7 +31,6 @@
   #:use-module (gnu packages digest)
   #:use-module (gnu packages fcitx)
   #:use-module (gnu packages fcitx5)
-  #:use-module (gnu packages gcc)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
@@ -130,8 +129,7 @@
                   (copy-recursively libyuv-from libyuv-to))
                 #t)))))
        (native-inputs
-        `(("gcc" ,gcc-9) ; keep in line with telegram-desktop
-          ("perl" ,perl)
+        `(("perl" ,perl)
           ("pkg-config" ,pkg-config)
           ("python" ,python-wrapper)
           ("yasm" ,yasm)))
@@ -260,10 +258,7 @@ Telegram project, for its use in telegram desktop client.")
                    "libcrypto opus alsa libpulse"))
                 #t)))))
        (native-inputs
-        `(("autoconf" ,autoconf)
-          ("automake" ,automake)
-          ("libtool" ,libtool)
-          ("pkg-config" ,pkg-config)))))))
+        (list autoconf automake libtool pkg-config))))))
 
 (define-public telegram-desktop
   (package
@@ -373,7 +368,6 @@ Telegram project, for its use in telegram desktop client.")
             (base32 "1j3ppgfmihcjl22w5jk8jhwif10i9wbycq5zqnssn6pnhnj7di5i"))))
        ("cmake-shared" ,cmake-shared)
        ("extra-cmake-modules" ,extra-cmake-modules)
-       ("gcc" ,gcc-9)
        ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("gtk+:bin" ,gtk+ "bin")
@@ -562,7 +556,7 @@ Telegram project, for its use in telegram desktop client.")
        ("xxhash" ,xxhash)
        ("zlib" ,zlib)))
     (propagated-inputs
-     `(("dconf" ,dconf)))
+     (list dconf))
     (synopsis "Telegram Desktop")
     (description "Telegram desktop is the official desktop version of the
 Telegram instant messenger.")
@@ -682,15 +676,9 @@ formerly a part of telegram-cli, but now being maintained separately.")
                         ("libs" "lib/tgl"))
                       args))))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("pkg-config" ,pkg-config)))
+       (list autoconf automake libtool pkg-config))
       (inputs
-       `(("libevent" ,libevent)
-         ("libgcrypt" ,libgcrypt)
-         ("tl-parser" ,tl-parser)
-         ("zlib" ,zlib)))
+       (list libevent libgcrypt tl-parser zlib))
       (synopsis "Telegram Library")
       (description "TGL is the telegram library for telegram-cli.")
       (home-page "https://github.com/vysheng/tgl")
@@ -766,23 +754,20 @@ formerly a part of telegram-cli, but now being maintained separately.")
                          #:exclude ("tg-server.pub")))
                       args))))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("pkg-config" ,pkg-config)))
+       (list autoconf automake libtool pkg-config))
       (inputs
-       `(("jansson" ,jansson)
-         ("libconfig" ,libconfig)
-         ("libevent" ,libevent)
-         ("libgcrypt" ,libgcrypt)
-         ("lua" ,lua)
-         ("openssl" ,openssl)
-         ("perl" ,perl)
-         ("python" ,python)
-         ("readline" ,readline)
-         ("tgl" ,tgl)
-         ("tl-parser" ,tl-parser)
-         ("zlib" ,zlib)))
+       (list jansson
+             libconfig
+             libevent
+             libgcrypt
+             lua
+             openssl
+             perl
+             python
+             readline
+             tgl
+             tl-parser
+             zlib))
       (synopsis "Telegram Messenger CLI")
       (description "TG is the command-line interface for Telegram Messenger.")
       (home-page "https://github.com/vysheng/tg")
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 3035809225..1cf2fa8edf 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -21,6 +21,7 @@
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
+;;; Copyright © 2021 Demis Balbach <db@minikn.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -88,6 +89,7 @@
   #:use-module (gnu packages bison)
   #:use-module (gnu packages flex)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -95,6 +97,35 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system qt))
 
+(define-public phonesim
+  (package
+    (name "phonesim")
+    (version "1.21")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.kernel.org/pub/scm/network/ofono/phonesim")
+             (commit "a7c844d45b047b2dae5b0877816c346fce4c47b9")))
+       (sha256
+        (base32 "0rc1c2vr03dmi1dr3skj57v77ga9c22g29xs1qiphqms4isby9cq"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "--enable-maintainer-mode"
+             "CC=" ,(cc-for-target))))
+    (native-inputs
+     (list automake autoconf pkg-config))
+    (inputs
+     (list qtbase-5 qtdeclarative))
+    (synopsis "Phone Simulator for modem testing")
+    (description
+     "Phonesim is a modem emulator that oFono uses for development and
+testing.  This allows oFono to be used by any host without requiring special
+GSM (or other) hardware.")
+    (home-page "https://git.kernel.org/pub/scm/network/ofono/phonesim")
+    (license license:gpl2+)))
+
 (define-public libilbc
   (package
     (name "libilbc")
@@ -116,7 +147,7 @@
     (arguments
      `(#:tests? #f))                    ; No target
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Libre iLBC codec")
     (description "LibiLBC is a packaging friendly copy of the iLBC codec from
 the WebRTC project.  It provides a base for distribution packages and can be
@@ -257,7 +288,7 @@ reimplementation.")
             (sha256 (base32
                      "1mv080rvrhyxyhgqiqr8r9jdqhg3xhfawjvfj5zgj47h59nggjba"))))
    (build-system gnu-build-system)
-   (inputs `(("gnutls" ,gnutls)))
+   (inputs (list gnutls))
    (synopsis "Common C++ framework for threaded applications")
    (description "GNU uCommon C++ is meant as a very light-weight C++ library
 to facilitate using C++ design patterns even for very deeply embedded
@@ -278,9 +309,8 @@ support.")
             (sha256 (base32
                      "17ili8l7zqbbkzr1rcy4hlnazkf50mds41wg6n7bfdsx3c7cldgh"))))
    (build-system gnu-build-system)
-   (inputs `(("ucommon" ,ucommon)
-             ("libgcrypt" ,libgcrypt)))
-   (native-inputs `(("pkg-config" ,pkg-config)))
+   (inputs (list ucommon libgcrypt))
+   (native-inputs (list pkg-config))
    (synopsis "Implementation of RTP (real-time transport protocol)")
    (description  "GNU ccRTP is an implementation of RTP, the real-time transport
 protocol from the IETF.  It is suitable both for high capacity servers and
@@ -311,10 +341,9 @@ packet-manipulation library.")
     (arguments
      `(#:tests? #f))                    ; No target
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("ccrtp" ,ccrtp)
-       ("ucommon" ,ucommon)))
+     (list ccrtp ucommon))
     (synopsis "C++ Implementation of ZRTP protocol")
     (description  "GNU ZRTP C++ provides a library that adds ZRTP support to the
 GNU ccRTP stack and serves as library for other RTP stacks
@@ -356,7 +385,7 @@ to initiate and control SIP sessions.")
             (sha256 (base32
                      "17cna8kpc8nk1si419vgr6r42k2lda0rdk50vlxrw8rzg0xp2xrw"))))
    (build-system gnu-build-system)
-   (inputs `(("osip" ,osip)))
+   (inputs (list osip))
    (synopsis "Sip abstraction library")
    (description "EXosip is a library that hides the complexity of using the
 SIP protocol for multimedia session establishment.  This protocol is mainly to
@@ -398,9 +427,7 @@ multiplayer games.")
                   ,(string-append "EXOSIP2_CFLAGS=-I"
                                   (assoc-ref %build-inputs "exosip")
                                   "/include"))))
-   (inputs `(("ucommon" ,ucommon)
-             ("exosip" ,exosip)
-             ("osip" ,osip)))
+   (inputs (list ucommon exosip osip))
    (synopsis "Secure peer-to-peer VoIP server for the SIP protocol")
    (description "GNU SIP Witch is a peer-to-peer Voice-over-IP server that
 uses the SIP protocol.  Calls can be made from behind NAT firewalls and
@@ -414,7 +441,7 @@ internet.")
 (define-public libsrtp
   (package
     (name "libsrtp")
-    (version "2.4.0")
+    (version "2.4.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -423,10 +450,10 @@ internet.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0syl2ywddgqz29h43d6rc7waf3hp2yc14yhnrvdsja2bg8wrv6sb"))))
+                "1gswpjm4jacfxmgglbf8hxi3yzsag4drk4q943p0wkmv21zj8l78"))))
     (native-inputs
-     `(("psmisc" ,psmisc)               ;some tests require 'killall'
-       ("procps" ,procps)))
+     (list psmisc ;some tests require 'killall'
+           procps))
     (build-system gnu-build-system)
     (arguments
      '(#:test-target "runtest"
@@ -468,9 +495,7 @@ supporting cryptographic kernel.")
            "0d269474kk1933c55hx4azw3sak5ycfrxkw6ida0sb2cm00kfich"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)))
+       (list autoconf automake libtool))
       (home-page "https://gitlab.savoirfairelinux.com/sflphone/libiax2")
       (synopsis "Inter-Asterisk-Protocol library")
       (description "LibIAX2 implements the Inter-Asterisk-Protocol for relaying
@@ -499,11 +524,7 @@ Voice-over-IP (VoIP) communications.")
     (build-system gnu-build-system)
     (arguments '(#:tests? #f))  ; no "check" target
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("gmp" ,gmp)
-       ("libogg" ,libogg)
-       ("ncurses" ,ncurses)
-       ("opus" ,opus)))
+     (list alsa-lib gmp libogg ncurses opus))
     (synopsis "Simple VoIP program to create conferences from the terminal")
     (description
      "Seren is a simple VoIP program based on the Opus codec that allows you
@@ -635,24 +656,22 @@ address of one of the participants.")
                          (find-files "release/plugins" "\\.so$"))
                #t))))))
     (inputs
-     `(("avahi" ,avahi)
-       ("boost" ,boost)
-       ("libsndfile" ,libsndfile)
-       ("libxi" ,libxi)
-       ("mesa" ,mesa) ; avoid bundled
-       ("openssl" ,openssl)
-       ("opus" ,opus) ; avoid bundled
-       ("protobuf" ,protobuf)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("speech-dispatcher" ,speech-dispatcher)
-       ("speex" ,speex) ; avoid bundled
-       ("speexdsp" ,speexdsp))) ; avoid bundled
+     (list avahi
+           boost
+           libsndfile/fixed
+           libxi
+           mesa ; avoid bundled
+           openssl
+           opus ; avoid bundled
+           protobuf
+           pulseaudio
+           qtbase-5
+           qtsvg
+           speech-dispatcher
+           speex ; avoid bundled
+           speexdsp)) ; avoid bundled
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("qttools" ,qttools)))
+     (list pkg-config python qttools))
     (synopsis "Low-latency, high quality voice chat software")
     (description
      "Mumble is an low-latency, high quality voice chat
@@ -694,25 +713,23 @@ Mumble consists of two applications for separate usage:
         "-DWITH_G729=On"                ; For G729 Codec Support
         "-DWITH_SPEEX=On")))            ; For Speex Codec Support
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("qttools" ,qttools)))
+     (list bison flex qttools))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("bcg729" ,bcg729)
-       ("zrtpcpp" ,zrtpcpp)
-       ("ccrtp" ,ccrtp)
-       ("file" ,file)
-       ("libilbc" ,libilbc)
-       ("libsndfile" ,libsndfile)
-       ("libxml2" ,libxml2)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtquickcontrols" ,qtquickcontrols)
-       ("readline" ,readline)
-       ("speex" ,speex)
-       ("speexdsp" ,speexdsp)
-       ("ucommon" ,ucommon)))
+     (list alsa-lib
+           bcg729
+           zrtpcpp
+           ccrtp
+           file
+           libilbc
+           libsndfile
+           libxml2
+           qtbase-5
+           qtdeclarative
+           qtquickcontrols
+           readline
+           speex
+           speexdsp
+           ucommon))
     (synopsis "Softphone for voice over IP and instant messaging")
     (description "Twinkle is a softphone for your voice over IP and instant
 messaging communcations using the SIP protocol.  You can use it for direct
@@ -840,20 +857,17 @@ your calls and messages.")
                (("pjnath-test pjmedia-test pjsip-test pjsua-test")
                 "pjmedia-test pjsip-test")))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("bcg729" ,bcg729)
-       ("gnutls" ,gnutls)
-       ("gsm" ,gsm)
-       ("libsamplerate" ,libsamplerate)
-       ("libsrtp" ,libsrtp)
-       ("opus" ,opus)
-       ("portaudio" ,portaudio)
-       ("speex" ,speex)
-       ("speexdsp" ,speexdsp)))
+     (list bcg729
+           gnutls
+           gsm
+           libsamplerate
+           libsrtp
+           opus
+           portaudio
+           speex
+           speexdsp))
     (home-page "https://www.pjsip.org")
     (synopsis "Session Initiation Protocol (SIP) stack")
     (description "PJProject provides an implementation of the Session
@@ -882,10 +896,7 @@ Initiation Protocol (SIP) and a multimedia framework.")
          "122kn3jx6v0kkldlzlpzvlwqxgp6pmzxsjhrhcxw12bx9c08sar5"))))
     (build-system gnu-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("openssl" ,openssl)
-       ("opus" ,opus)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib openssl opus pulseaudio))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index d4464f8f9e..16b33385bc 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -23,10 +23,13 @@
 ;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
+;;; Copyright @ 2020 luhux <luhux@outlook.com>
 ;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
 ;;; Copyright © 2021 Raphaël Mélotte <raphael.melotte@mind.be>
 ;;; Copyright © 2021 ikasero <ahmed@ikasero.com>
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -58,7 +61,7 @@
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
-  #:use-module (gnu packages build-tools)   ;for meson-0.55
+  #:use-module (gnu packages base)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
@@ -100,6 +103,40 @@
   #:use-module (gnu packages xorg)
   #:use-module (srfi srfi-26))
 
+(define-public libptytty
+  (package
+    (name "libptytty")
+    (version "2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/yusiwen/libptytty")
+             (commit "b9694ea18e0dbd78213f55233a430325c13ad63e")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1g8by1m6ya4r47p137mw4ddml40js0zh6mdb9n6ib49ayngv8ak3"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f))                    ; no test suite
+    (home-page "https://github.com/yusiwen/libptytty")
+    (synopsis
+     "Portable, secure PTY/TTY and @file{utmp}/@file{wtmp}/@file{lastlog} handling")
+    (description
+     "Libptytty is a small C/C++ library to manage pseudo-ttys in a uniform way,
+created out of frustration over the many differences of PTY/TTY handling in
+different operating systems.
+
+In addition to mere PTY/TTY management, it supports updating the session
+database at @file{utmp}, and @file{wtmp}/@file{lastlog} for login shells.
+
+It also supports @code{fork}ing after start-up and dropping privileges in the
+calling process.  This reduces the potential attack surface: if the calling
+process were to be compromised by the user starting the program, there would be
+less to gain, as only the helper process is running with privileges (e.g.,
+@code{setuid}/@code{setgid}).")
+    (license license:gpl2+)))
+
 (define-public tilda
   (package
     (name "tilda")
@@ -127,8 +164,7 @@
        ("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("libconfuse" ,libconfuse)
-       ("vte" ,vte)))
+     (list libconfuse vte))
     (synopsis "GTK+-based drop-down terminal")
     (description "Tilda is a terminal emulator similar to normal terminals like
 gnome-terminal (GNOME) or Konsole (KDE), with the difference that it drops down
@@ -178,7 +214,7 @@ configurable through a graphical wizard.")
        ("xdg-utils" ,xdg-utils)
        ("ncurses" ,ncurses)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
 
     ;; FIXME: This should only be located in 'ncurses'.  Nonetheless it is
     ;; provided for usability reasons.  See <https://bugs.gnu.org/22138>.
@@ -198,7 +234,7 @@ insert mode and command mode where keybindings have different functions.")
 (define-public asciinema
   (package
     (name "asciinema")
-    (version "2.0.2")
+    (version "2.1.0")
     (source
      (origin
        (method git-fetch)
@@ -207,25 +243,16 @@ insert mode and command mode where keybindings have different functions.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1a2pysxnp6icyd08mgf66xr6f6j0irnfxdpf3fmzcz31ix7l9kc4"))))
+        (base32 "1alcz018jrrpasrmgs8nw775a6pf62xq2xgs54c4mb396prdqy4x"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'build 'patch-exec-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((ncurses (assoc-ref inputs "ncurses")))
-               (substitute* "asciinema/term.py"
-                 (("'tput'")
-                  (string-append "'" ncurses "/bin/tput'"))))
-             #t))
          (replace 'check
            (lambda _ (invoke "nosetests" "-v"))))))
-    (inputs `(("ncurses" ,ncurses)))
     (native-inputs
      ;; For tests.
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://asciinema.org")
     (synopsis "Terminal session recorder")
     (description
@@ -260,9 +287,8 @@ text-based approach to terminal recording.")
       (arguments
        `(#:configure-flags '("-DBUILD_TESTING=ON")))
       (native-inputs
-       `(("check" ,check)
-         ("libxkbcommon" ,libxkbcommon) ; for xkbcommon-keysyms.h
-         ("pkg-config" ,pkg-config)))
+       (list check libxkbcommon ; for xkbcommon-keysyms.h
+             pkg-config))
       (synopsis "Xterm state machine library")
       (description "TSM is a state machine for DEC VT100-VT520 compatible
 terminal emulators.  It tries to support all common standards while keeping
@@ -316,13 +342,13 @@ compatibility to existing emulators like xterm, gnome-terminal, konsole, etc.")
                           (("sd_booted\\(\\)")
                            "1")))))))
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("libxslt" ,libxslt)                       ;to build the man page
-         ("libxml2" ,libxml2)                       ;for XML_CATALOG_FILES
-         ("docbook-xsl" ,docbook-xsl)))
+       (list pkg-config
+             autoconf
+             automake
+             libtool
+             libxslt ;to build the man page
+             libxml2 ;for XML_CATALOG_FILES
+             docbook-xsl))
       (inputs
        `(("libdrm" ,libdrm)
          ("libtsm" ,libtsm)
@@ -380,10 +406,8 @@ multi-seat support, a replacement for @command{mingetty}, and more.")
              (substitute* "t/40ti-override.c"
                (("vt750") "vt100")))))
        #:test-target "test"))
-    (inputs `(("ncurses" ,ncurses)))
-    (native-inputs `(("libtool" ,libtool)
-                     ("perl-test-harness" ,perl-test-harness)
-                     ("pkg-config" ,pkg-config)))
+    (inputs (list ncurses))
+    (native-inputs (list libtool perl-test-harness pkg-config))
     (synopsis "Keyboard entry processing library for terminal-based programs")
     (description
      "Libtermkey handles all the necessary logic to recognise special keys, UTF-8
@@ -432,6 +456,64 @@ character sets and encodings from around the world.  It can display double-width
 Vietnamese, and bi-directional scripts like Arabic and Hebrew.")
     (license license:bsd-3)))
 
+(define-public mtm
+  (package
+    (name "mtm")
+    (version "1.2.1")
+    (source
+     (origin
+       (uri (git-reference
+             (url "https://github.com/deadpixi/mtm")
+             (commit version)))
+       (method git-fetch)
+       (sha256
+        (base32 "0gibrvah059z37jvn1qs4b6kvd4ivk2mfihmcpgx1vz6yg70zghv"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no tests
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "DESTDIR=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ;no configure script
+         (add-before 'build 'fix-headers
+           (lambda _
+             (substitute* "config.def.h"
+               (("ncursesw/curses.h") "curses.h"))))
+         (replace 'install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               ;; install binary
+               (mkdir-p (string-append out "bin/"))
+               (install-file "mtm" (string-append out "/bin"))
+               ;; install manpage
+               (mkdir-p (string-append out "share/man/man1"))
+               (install-file "mtm.1" (string-append out "/share/man/man1"))
+               ;; install terminfo
+               (mkdir-p (string-append out "share/terminfo"))
+               (invoke (string-append (assoc-ref inputs "ncurses") "/bin/tic")
+                       "-x" "-s" "-o"
+                       (string-append
+                        out "/share/terminfo")
+                       "mtm.ti")))))))
+    (inputs
+     (list ncurses))
+    ;; FIXME: This should only be located in 'ncurses'.  Nonetheless it is
+    ;; provided for usability reasons.  See <https://bugs.gnu.org/22138>.
+    (native-search-paths
+     (list (search-path-specification
+            (variable "TERMINFO_DIRS")
+            (files '("share/terminfo")))))
+    (home-page "https://github.com/deadpixi/mtm")
+    (synopsis "Micro Terminal Multiplexer")
+    (description
+     "This package provides multiplexer for the terminal focused on simplicity,
+compatibility, size and stability.")
+    (license (list license:gpl3+
+                   license:bsd-3))))    ;vtparser.c
+
 (define-public picocom
   (package
     (name "picocom")
@@ -530,8 +612,7 @@ has no notion of what's interesting, but it's very good at that notifying part."
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("libtool" ,libtool)
-       ("perl" ,perl)))
+     (list libtool perl))
     (home-page "https://github.com/mauke/unibilium")
     (synopsis "Terminfo parsing library")
     (description "Unibilium is a basic C terminfo library.  It doesn't depend
@@ -561,8 +642,7 @@ should be thread-safe.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("libtool" ,libtool)
-       ("perl" ,perl)))
+     (list libtool perl))
     (home-page "http://www.leonerd.org.uk/code/libvterm/")
     (synopsis "VT220/xterm/ECMA-48 terminal emulator library")
     (description "Libvterm is an abstract C99 library which implements a VT220
@@ -689,10 +769,7 @@ embedded kernel situations.")
                     #t))))
       (build-system gnu-build-system)
       (inputs
-       `(("qtbase" ,qtbase-5)
-         ("qtdeclarative" ,qtdeclarative)
-         ("qtgraphicaleffects" ,qtgraphicaleffects)
-         ("qtquickcontrols" ,qtquickcontrols)))
+       (list qtbase-5 qtdeclarative qtgraphicaleffects qtquickcontrols))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -747,7 +824,7 @@ eye-candy, customizable, and reasonably lightweight.")
 (define-public foot
   (package
     (name "foot")
-    (version "1.6.3")
+    (version "1.10.3")
     (home-page "https://codeberg.org/dnkl/foot")
     (source (origin
               (method git-fetch)
@@ -755,7 +832,7 @@ eye-candy, customizable, and reasonably lightweight.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0rm7w29wf3gipf69qf7s42qw8857z74gsigrpz9g6vvd1x58f03m"))))
+                "13v6xqaw3xn1x84dn4gnkiimcsllb19mrbvcdj2fnm8klnrys3gs"))))
     (build-system meson-build-system)
     (arguments
      `(;; Using a "release" build is recommended both for performance, and
@@ -764,14 +841,10 @@ eye-candy, customizable, and reasonably lightweight.")
        ;; Enable LTO as recommended by INSTALL.md.
        #:configure-flags '("-Db_lto=true")))
     (native-inputs
-     `(("ncurses" ,ncurses)             ;for 'tic'
-       ("pkg-config" ,pkg-config)
-       ("scdoc" ,scdoc)
-       ("wayland-protocols" ,wayland-protocols)))
+     (list ncurses ;for 'tic'
+           pkg-config scdoc wayland-protocols))
     (inputs
-     `(("fcft" ,fcft)
-       ("libxkbcommon" ,libxkbcommon)
-       ("wayland" ,wayland)))
+     (list fcft libxkbcommon wayland))
     (synopsis "Wayland-native terminal emulator")
     (description
      "@command{foot} is a terminal emulator for systems using the Wayland
@@ -783,7 +856,7 @@ a server/client mode.")
 (define-public sakura
   (package
     (name "sakura")
-    (version "3.8.3")
+    (version "3.8.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://launchpad.net/sakura/trunk/"
@@ -791,7 +864,7 @@ a server/client mode.")
                                   ".tar.bz2"))
               (sha256
                (base32
-                "1r2kpvxx21r407s07m5p5x0dam6x863991nmcv6k5ap873fxqh2h"))))
+                "1d8n32xnj21q2xx13xs2r9cfjaq31mxiyhx6d57x9cwnhwb11xn3"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f))                    ; no check phase
@@ -800,8 +873,7 @@ a server/client mode.")
        ("perl" ,perl)                   ; for pod2man
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("libxft" ,libxft)
-       ("vte" ,vte)))
+     (list libxft vte))
     (home-page "https://launchpad.net/sakura")
     (synopsis "A simple but powerful libvte-based terminal emulator")
     (description "@code{Sakura} is a terminal emulator based on GTK+ and VTE.
@@ -828,8 +900,7 @@ desktop installed to have a decent terminal emulator.")
       (arguments
        '(#:import-path "github.com/nsf/termbox-go"))
       (propagated-inputs
-       `(("go-github.com-mattn-go-runewidth"
-          ,go-github.com-mattn-go-runewidth)))
+       (list go-github.com-mattn-go-runewidth))
       (synopsis "@code{termbox} provides a minimal API for text-based user
 interfaces")
       (description
@@ -856,13 +927,13 @@ programmer to write text-based user interfaces.")
     (arguments
      `(#:import-path "github.com/junegunn/fzf"))
     (inputs
-     `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
-       ("go-github-com-mattn-go-shellwords" ,go-github-com-mattn-go-shellwords)
-       ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
-       ("go-github-com-gdamore-tcell" ,go-github-com-gdamore-tcell)
-       ("go-github-com-saracen-walker" ,go-github-com-saracen-walker)
-       ("go-golang.org-x-sync-errgroup" ,go-golang.org-x-sync-errgroup)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
+     (list go-github.com-mattn-go-runewidth
+           go-github-com-mattn-go-shellwords
+           go-github-com-mattn-go-isatty
+           go-github-com-gdamore-tcell
+           go-github-com-saracen-walker
+           go-golang.org-x-sync-errgroup
+           go-golang-org-x-crypto))
     (home-page "https://github.com/junegunn/fzf")
     (synopsis "Command-line fuzzy-finder")
     (description "This package provides an interactive command-line filter
@@ -876,7 +947,8 @@ usable with any list--including files, command history, processes and more.")
     (arguments
      (ensure-keyword-arguments
       (package-arguments go-github-com-junegunn-fzf)
-      `(#:phases
+      `(#:install-source? #f
+        #:phases
         (modify-phases %standard-phases
           (add-after 'install 'copy-binaries
             (lambda* (#:key outputs #:allow-other-keys)
@@ -886,24 +958,34 @@ usable with any list--including files, command history, processes and more.")
                                 (string-append out "/bin"))))))
           (add-after 'copy-binaries 'wrap-programs
             (lambda* (#:key outputs inputs #:allow-other-keys)
-              (let ((out (assoc-ref outputs "out"))
-                    (ncurses (assoc-ref inputs "ncurses")))
-                (wrap-program (string-append out "/bin/fzf-tmux")
+              (let* ((out (assoc-ref outputs "out"))
+                     (bin (string-append out "/bin"))
+                     (findutils (assoc-ref inputs "findutils"))
+                     (ncurses (assoc-ref inputs "ncurses")))
+                (wrap-program (string-append bin "/fzf")
+                  `("PATH" ":" prefix (,(string-append findutils "/bin"))))
+                (wrap-program (string-append bin "/fzf-tmux")
                   `("PATH" ":" prefix (,(string-append ncurses "/bin")))))))
           (add-after 'install 'install-completions
             (lambda* (#:key outputs #:allow-other-keys)
               (let* ((out (assoc-ref outputs "out"))
                      (bash-completion (string-append out "/etc/bash_completion.d"))
+                     (fish-functions
+                       (string-append out "/share/fish/vendor_functions.d"))
                      (zsh-completion (string-append out "/share/zsh/site-functions")))
                 (with-directory-excursion "src/github.com/junegunn/fzf"
                   (mkdir-p bash-completion)
                   (copy-file "shell/completion.bash"
                              (string-append bash-completion "/fzf"))
+                  (mkdir-p fish-functions)
+                  (copy-file "shell/key-bindings.fish"
+                             (string-append fish-functions "/fzf_key_bindings.fish"))
                   (mkdir-p zsh-completion)
                   (copy-file "shell/completion.zsh"
                              (string-append zsh-completion "/_fzf"))))))))))
     (inputs
      `(,@(package-inputs go-github-com-junegunn-fzf)
+       ("findutils" ,findutils)
        ("ncurses" ,ncurses)))))
 
 (define-public go-github.com-howeyc-gopass
@@ -925,8 +1007,7 @@ usable with any list--including files, command history, processes and more.")
       (arguments
        '(#:import-path "github.com/howeyc/gopass"))
       (propagated-inputs
-       `(("go-golang-org-x-crypto"
-          ,go-golang-org-x-crypto)))
+       (list go-golang-org-x-crypto))
       (synopsis "Retrieve password from a terminal or piped input in Go")
       (description
        "@code{gopass} is a Go package for retrieving a password from user
@@ -956,10 +1037,9 @@ terminal or piped input.")
              (delete-file "tests/test_input_output.py")
              #t)))))
     (propagated-inputs
-     `(("python-wcwidth" ,python-wcwidth)))
+     (list python-wcwidth))
     (native-inputs
-     `(("python-pytest-runner" ,python-pytest-runner)
-       ("python-pytest" ,python-pytest)))
+     (list python-pytest-runner python-pytest))
     (home-page "https://pyte.readthedocs.io/")
     (synopsis "Simple VTXXX-compatible terminal emulator")
     (description "@code{pyte} is an in-memory VTxxx-compatible terminal
@@ -991,8 +1071,7 @@ of VT100 terminal.")
      ;; FIXME: Test suite is unable to detect TTY conditions.
      `(#:tests? #f))
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-six" ,python-six)))
+     (list python-nose python-six))
     (home-page "https://github.com/erikrose/blessings")
     (synopsis "Python module to manage terminal color, styling, and
 positioning")
@@ -1026,12 +1105,9 @@ than a terminal.")
            (lambda _
              (invoke "nosetests" "-v"))))))
     (propagated-inputs
-     `(("python-blessings" ,python-blessings)
-       ("python-cwcwidth" ,python-cwcwidth)))
+     (list python-blessings python-cwcwidth))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pyte" ,python-pyte)
-       ("python-nose" ,python-nose)))
+     (list python-mock python-pyte python-nose))
     (home-page "https://github.com/bpython/curtsies")
     (synopsis "Library for curses-like terminal interaction with colored
 strings")
@@ -1056,14 +1132,9 @@ per-line fullscreen terminal rendering, and keyboard input event reporting.")
          "0x5c31yq7ansmiy20a0qf59wagba9v3pq97mlkxrqxn4n1gcc6vi"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libevent" ,libevent)
-       ("libssh" ,libssh)
-       ("msgpack" ,msgpack)
-       ("ncurses" ,ncurses)))
+     (list libevent libssh msgpack ncurses))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (home-page "https://tmate.io/")
     (synopsis "Terminal sharing application")
     (description "tmate is a terminal sharing application that allows you to
@@ -1210,9 +1281,7 @@ comfortably in a pager or editor.
                (copy-recursively tests "external/googletest"))
              #t)))))
     (inputs
-     `(("gflags" ,gflags)
-       ("libsodium" ,libsodium)
-       ("protobuf" ,protobuf)))
+     (list gflags libsodium protobuf))
     (native-inputs
      `(("googletest" ,(package-source googletest))))
     (home-page "https://mistertea.github.io/EternalTerminal/")
@@ -1226,9 +1295,6 @@ while also supporting native scrolling and @command{tmux} control mode
 (@code{tmux -CC}).")
     (license license:asl2.0)))
 
-(define-public et
-  (deprecated-package "et" eternalterminal))
-
 (define-public wterm
   (package
     (name "wterm")
@@ -1245,7 +1311,7 @@ while also supporting native scrolling and @command{tmux} control mode
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("fontconfig" ,fontconfig)
        ("freetype" ,freetype)
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 5da6d8dbbe..ebb7f86552 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -38,6 +38,7 @@
 
 (define-module (gnu packages tex)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix gexp)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system copy)
@@ -309,7 +310,7 @@ files from LOCATIONS with expected checksum HASH.  CODE is not currently in use.
        ("zlib" ,zlib)
        ("zziplib" ,zziplib)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:modules ((guix build gnu-build-system)
                   (guix build utils)
@@ -729,7 +730,7 @@ to adapt the plain e-TeX source file to work with XeTeX and LuaTeX.")
                              (copy-recursively where (string-append mf where)))
                            (list "base" "misc" "config")))))))))
     (native-inputs
-     `(("texlive-bin" ,texlive-bin)))
+     (list texlive-bin))
     (home-page "https://www.ctan.org/pkg/metafont")
     (synopsis "Metafont base files")
     (description "This package provides the Metafont base files needed to
@@ -814,8 +815,7 @@ build fonts using the Metafont system.")
                                 "fontdoc.sty")))
                    #t)))))))
       (native-inputs
-       `(("texlive-bin" ,texlive-bin)
-         ("texlive-docstrip" ,texlive-docstrip)))
+       (list texlive-bin texlive-docstrip))
       (home-page "https://www.ctan.org/pkg/fontinst")
       (synopsis "Tools for converting and installing fonts for TeX and LaTeX")
       (description "This package provides TeX macros for converting Adobe Font
@@ -909,8 +909,7 @@ documents.")
                    (copy-recursively "pk" pk)
                    #t)))))))
       (native-inputs
-       `(("texlive-bin" ,texlive-bin)
-         ("texlive-metafont" ,texlive-metafont)))
+       (list texlive-bin texlive-metafont))
       (home-page "https://www.ctan.org/pkg/cm")
       (synopsis "Computer Modern fonts for TeX")
       (description "This package provides the Computer Modern fonts by Donald
@@ -1101,8 +1100,7 @@ Computers & Typesetting series.")
                                (find-files "build" "\\.tfm"))
                      #t))))))))
       (native-inputs
-       `(("texlive-bin" ,texlive-bin)
-         ("texlive-metafont" ,texlive-metafont)))
+       (list texlive-bin texlive-metafont))
       (home-page "https://www.ctan.org/pkg/knuth-lib")
       (synopsis "Small library of METAFONT sources")
       (description "This is a collection of core TeX and METAFONT macro files
@@ -1177,9 +1175,7 @@ fonts.")
                          (find-files "." "\\.mf"))
                #t))))))
     (native-inputs
-     `(("texlive-bin" ,texlive-bin)
-       ("texlive-metafont" ,texlive-metafont)
-       ("texlive-cm" ,texlive-cm)))
+     (list texlive-bin texlive-metafont texlive-cm))
     (home-page "https://www.ctan.org/pkg/latex-fonts")
     (synopsis "Collection of fonts used in LaTeX distributions")
     (description "This is a collection of fonts for use with standard LaTeX
@@ -1250,9 +1246,7 @@ symbol fonts.")
                              (find-files "build" "\\.tfm"))
                    #t)))))))
       (native-inputs
-       `(("texlive-bin" ,texlive-bin)
-         ("texlive-metafont" ,texlive-metafont)
-         ("texlive-knuth-lib" ,texlive-knuth-lib)))
+       (list texlive-bin texlive-metafont texlive-knuth-lib))
       (home-page "http://www.ctan.org/pkg/mflogo")
       (synopsis "LaTeX support for Metafont logo fonts")
       (description
@@ -1401,8 +1395,7 @@ Taco Hoekwater.")
                                     (assoc-ref outputs "out")
                                     "/share/texmf-dist/fonts/tfm/public/amsfonts"))))))))
       (native-inputs
-       `(("texlive-updmap.cfg" ,(texlive-updmap.cfg
-                                 (list texlive-fontinst)))))
+       (list (texlive-updmap.cfg (list texlive-fontinst))))
       (home-page "https://www.ctan.org/pkg/amsfonts")
       (synopsis "TeX fonts from the American Mathematical Society")
       (description
@@ -1489,9 +1482,7 @@ output encodings, and features generation of clean UTF-8 patterns.")
                                  "/share/texmf-dist/fonts/tfm/public/etex/"))
                  #t))))))
       (native-inputs
-       `(("texlive-bin" ,texlive-bin)
-         ("texlive-metafont" ,texlive-metafont)
-         ("texlive-cm" ,texlive-cm)))
+       (list texlive-bin texlive-metafont texlive-cm))
       (home-page "https://www.ctan.org/pkg/etex")
       (synopsis "Extended version of TeX")
       (description
@@ -2473,14 +2464,14 @@ T1/EC and UTF-8 encodings.")
                 (string-append out "/share/texmf-dist/tex/luatex/hyph-utf8/")))
              #t)))))
     (native-inputs
-     `(("ruby" ,ruby)
-       ("texlive-bin" ,texlive-bin)
-       ;; The following packages are needed for build "tex.fmt", which we need
-       ;; for a working "tex".
-       ("texlive-tex-plain" ,texlive-tex-plain)
-       ("texlive-cm" ,texlive-cm)
-       ("texlive-knuth-lib" ,texlive-knuth-lib)
-       ("texlive-hyphen-base" ,texlive-hyphen-base)))
+     (list ruby
+           texlive-bin
+           ;; The following packages are needed for build "tex.fmt", which we need
+           ;; for a working "tex".
+           texlive-tex-plain
+           texlive-cm
+           texlive-knuth-lib
+           texlive-hyphen-base))
     (home-page "https://ctan.org/pkg/hyph-utf8")
     (synopsis "Hyphenation patterns expressed in UTF-8")
     (description "Modern native UTF-8 engines such as XeTeX and LuaTeX need
@@ -2524,8 +2515,7 @@ converters, will completely supplant the older patterns.")
                "0l57a0r4gycp94kz6lrxqvh9m57j2shmbr2laf5zjb0qnrisq46d")
               #:trivial? #t))
     (propagated-inputs
-     `(("texlive-hyphen-base" ,texlive-hyphen-base)
-       ("texlive-hyph-utf8" ,texlive-hyph-utf8)))
+     (list texlive-hyphen-base texlive-hyph-utf8))
     (home-page "http://projekte.dante.de/Trennmuster/WebHome")
     (synopsis "Hyphenation patterns for German")
     (description "The package provides experimental hyphenation patterns for
@@ -2581,11 +2571,7 @@ T2A.")
                      (invoke "make" "-f"
                              (string-append cwd "/source/generic/ruhyphen/Makefile"))))))))))
       (native-inputs
-       `(("coreutils" ,coreutils)
-         ("gawk" ,gawk)
-         ("sed" ,sed)
-         ("grep" ,grep)
-         ("perl" ,perl)))
+       (list coreutils gawk sed grep perl))
       (home-page "https://www.ctan.org/pkg/ruhyphen")
       (synopsis "Hyphenation patterns for Russian")
       (description "The package provides a collection of Russian hyphenation
@@ -2801,80 +2787,80 @@ formats.")
             (base32
              "0yjx7nw9mgfgnq1givkzbxh7z7ncw1liaddjgm7n2nwn0aw6xfdg")))))
       (propagated-inputs
-       `(("texlive-dehyph-exptl" ,texlive-dehyph-exptl)
-         ("texlive-etex" ,texlive-etex)
-         ("texlive-hyph-utf8" ,texlive-hyph-utf8)
-         ("texlive-hyphen-base" ,texlive-hyphen-base)
-         ("texlive-hyphen-afrikaans" ,texlive-hyphen-afrikaans)
-         ("texlive-hyphen-ancientgreek" ,texlive-hyphen-ancientgreek)
-         ("texlive-hyphen-armenian" ,texlive-hyphen-armenian)
-         ("texlive-hyphen-basque" ,texlive-hyphen-basque)
-         ("texlive-hyphen-belarusian" ,texlive-hyphen-belarusian)
-         ("texlive-hyphen-bulgarian" ,texlive-hyphen-bulgarian)
-         ("texlive-hyphen-catalan" ,texlive-hyphen-catalan)
-         ("texlive-hyphen-chinese" ,texlive-hyphen-chinese)
-         ("texlive-hyphen-churchslavonic" ,texlive-hyphen-churchslavonic)
-         ("texlive-hyphen-coptic" ,texlive-hyphen-coptic)
-         ("texlive-hyphen-croatian" ,texlive-hyphen-croatian)
-         ("texlive-hyphen-czech" ,texlive-hyphen-czech)
-         ("texlive-hyphen-danish" ,texlive-hyphen-danish)
-         ("texlive-hyphen-dutch" ,texlive-hyphen-dutch)
-         ("texlive-hyphen-english" ,texlive-hyphen-english)
-         ("texlive-hyphen-esperanto" ,texlive-hyphen-esperanto)
-         ("texlive-hyphen-estonian" ,texlive-hyphen-estonian)
-         ("texlive-hyphen-ethiopic" ,texlive-hyphen-ethiopic)
-         ("texlive-hyphen-finnish" ,texlive-hyphen-finnish)
-         ("texlive-hyphen-schoolfinnish" ,texlive-hyphen-schoolfinnish)
-         ("texlive-hyphen-french" ,texlive-hyphen-french)
-         ("texlive-hyphen-friulan" ,texlive-hyphen-friulan)
-         ("texlive-hyphen-galician" ,texlive-hyphen-galician)
-         ("texlive-hyphen-georgian" ,texlive-hyphen-georgian)
-         ("texlive-hyphen-german" ,texlive-hyphen-german)
-         ("texlive-hyphen-greek" ,texlive-hyphen-greek)
-         ("texlive-hyphen-hungarian" ,texlive-hyphen-hungarian)
-         ("texlive-hyphen-icelandic" ,texlive-hyphen-icelandic)
-         ("texlive-hyphen-indic" ,texlive-hyphen-indic)
-         ("texlive-hyphen-indonesian" ,texlive-hyphen-indonesian)
-         ("texlive-hyphen-interlingua" ,texlive-hyphen-interlingua)
-         ("texlive-hyphen-irish" ,texlive-hyphen-irish)
-         ("texlive-hyphen-italian" ,texlive-hyphen-italian)
-         ("texlive-hyphen-kurmanji" ,texlive-hyphen-kurmanji)
-         ("texlive-hyphen-latin" ,texlive-hyphen-latin)
-         ("texlive-hyphen-latvian" ,texlive-hyphen-latvian)
-         ("texlive-hyphen-lithuanian" ,texlive-hyphen-lithuanian)
-         ("texlive-hyphen-macedonian" ,texlive-hyphen-macedonian)
-         ("texlive-hyphen-mongolian" ,texlive-hyphen-mongolian)
-         ("texlive-hyphen-norwegian" ,texlive-hyphen-norwegian)
-         ("texlive-hyphen-occitan" ,texlive-hyphen-occitan)
-         ("texlive-hyphen-pali" ,texlive-hyphen-pali)
-         ("texlive-hyphen-piedmontese" ,texlive-hyphen-piedmontese)
-         ("texlive-hyphen-polish" ,texlive-hyphen-polish)
-         ("texlive-hyphen-portuguese" ,texlive-hyphen-portuguese)
-         ("texlive-hyphen-romanian" ,texlive-hyphen-romanian)
-         ("texlive-hyphen-romansh" ,texlive-hyphen-romansh)
-         ("texlive-hyphen-russian" ,texlive-hyphen-russian)
-         ("texlive-hyphen-sanskrit" ,texlive-hyphen-sanskrit)
-         ("texlive-hyphen-serbian" ,texlive-hyphen-serbian)
-         ("texlive-hyphen-slovak" ,texlive-hyphen-slovak)
-         ("texlive-hyphen-slovenian" ,texlive-hyphen-slovenian)
-         ("texlive-hyphen-spanish" ,texlive-hyphen-spanish)
-         ("texlive-hyphen-swedish" ,texlive-hyphen-swedish)
-         ("texlive-hyphen-thai" ,texlive-hyphen-thai)
-         ("texlive-hyphen-turkish" ,texlive-hyphen-turkish)
-         ("texlive-hyphen-turkmen" ,texlive-hyphen-turkmen)
-         ("texlive-hyphen-ukrainian" ,texlive-hyphen-ukrainian)
-         ("texlive-hyphen-uppersorbian" ,texlive-hyphen-uppersorbian)
-         ("texlive-hyphen-welsh" ,texlive-hyphen-welsh)
-         ("texlive-unicode-data" ,texlive-unicode-data)
-         ("texlive-ukrhyph" ,texlive-ukrhyph)
-         ("texlive-ruhyphen" ,texlive-ruhyphen)
-         ("texlive-latex-l3kernel" ,texlive-latex-l3kernel)
-         ("texlive-latex-l3backend" ,texlive-latex-l3backend)
-         ;; TODO: This dependency isn't needed for LaTeX version 2021-06-01
-         ;; and later. See:
-         ;; https://tug.org/pipermail/tex-live/2021-June/047180.html
-         ("texlive-latex-l3packages" ,texlive-latex-l3packages)
-         ("texlive-latexconfig" ,texlive-latexconfig)))
+       (list texlive-dehyph-exptl
+             texlive-etex
+             texlive-hyph-utf8
+             texlive-hyphen-base
+             texlive-hyphen-afrikaans
+             texlive-hyphen-ancientgreek
+             texlive-hyphen-armenian
+             texlive-hyphen-basque
+             texlive-hyphen-belarusian
+             texlive-hyphen-bulgarian
+             texlive-hyphen-catalan
+             texlive-hyphen-chinese
+             texlive-hyphen-churchslavonic
+             texlive-hyphen-coptic
+             texlive-hyphen-croatian
+             texlive-hyphen-czech
+             texlive-hyphen-danish
+             texlive-hyphen-dutch
+             texlive-hyphen-english
+             texlive-hyphen-esperanto
+             texlive-hyphen-estonian
+             texlive-hyphen-ethiopic
+             texlive-hyphen-finnish
+             texlive-hyphen-schoolfinnish
+             texlive-hyphen-french
+             texlive-hyphen-friulan
+             texlive-hyphen-galician
+             texlive-hyphen-georgian
+             texlive-hyphen-german
+             texlive-hyphen-greek
+             texlive-hyphen-hungarian
+             texlive-hyphen-icelandic
+             texlive-hyphen-indic
+             texlive-hyphen-indonesian
+             texlive-hyphen-interlingua
+             texlive-hyphen-irish
+             texlive-hyphen-italian
+             texlive-hyphen-kurmanji
+             texlive-hyphen-latin
+             texlive-hyphen-latvian
+             texlive-hyphen-lithuanian
+             texlive-hyphen-macedonian
+             texlive-hyphen-mongolian
+             texlive-hyphen-norwegian
+             texlive-hyphen-occitan
+             texlive-hyphen-pali
+             texlive-hyphen-piedmontese
+             texlive-hyphen-polish
+             texlive-hyphen-portuguese
+             texlive-hyphen-romanian
+             texlive-hyphen-romansh
+             texlive-hyphen-russian
+             texlive-hyphen-sanskrit
+             texlive-hyphen-serbian
+             texlive-hyphen-slovak
+             texlive-hyphen-slovenian
+             texlive-hyphen-spanish
+             texlive-hyphen-swedish
+             texlive-hyphen-thai
+             texlive-hyphen-turkish
+             texlive-hyphen-turkmen
+             texlive-hyphen-ukrainian
+             texlive-hyphen-uppersorbian
+             texlive-hyphen-welsh
+             texlive-unicode-data
+             texlive-ukrhyph
+             texlive-ruhyphen
+             texlive-latex-l3kernel
+             texlive-latex-l3backend
+             ;; TODO: This dependency isn't needed for LaTeX version 2021-06-01
+             ;; and later. See:
+             ;; https://tug.org/pipermail/tex-live/2021-June/047180.html
+             texlive-latex-l3packages
+             texlive-latexconfig))
       (home-page "https://www.ctan.org/pkg/latex-base")
       (synopsis "Base sources of LaTeX")
       (description
@@ -3015,7 +3001,7 @@ verbatim source).")
                "0b66fy06safyrd717rfr476g1gz6nqfv1vqvam7ac2yy0g0djb17")
               #:trivial? #t))
     (propagated-inputs
-     `(("texlive-latex-epstopdf-pkg" ,texlive-latex-epstopdf-pkg)))
+     (list texlive-latex-epstopdf-pkg))
     (home-page "https://www.ctan.org/pkg/latex-graphics")
     (synopsis "Color and graphics option files")
     (description
@@ -3055,8 +3041,7 @@ set default \"driver\" options for the color and graphics packages.")
     (build-system texlive-build-system)
     (arguments '(#:tex-directory "latex/graphics"))
     (propagated-inputs
-     `(("texlive-graphics-cfg" ,texlive-graphics-cfg)
-       ("texlive-graphics-def" ,texlive-graphics-def)))
+     (list texlive-graphics-cfg texlive-graphics-def))
     (home-page "https://www.ctan.org/pkg/latex-graphics")
     (synopsis "LaTeX standard graphics bundle")
     (description
@@ -3180,7 +3165,7 @@ tables.")
                        texlive-stmaryrd
                        texlive-wasy)))))
       (native-inputs
-       `(("texlive-tex-ini-files" ,texlive-tex-ini-files)))
+       (list texlive-tex-ini-files))
       (home-page "https://www.ctan.org/pkg/xmltex/")
       (synopsis "Support for parsing XML documents")
       (description "The package provides an implementation of a parser for
@@ -3211,26 +3196,26 @@ XML, using UTF-8 or a suitable 8-bit encoding.")
              (add-after 'unpack 'chdir
                (lambda _ (chdir "source/latex/hyperref") #t))))))
       (propagated-inputs
-       `(("texlive-generic-atbegshi" ,texlive-generic-atbegshi)
-         ("texlive-generic-bitset" ,texlive-generic-bitset)
-         ("texlive-generic-etexcmds" ,texlive-generic-etexcmds)
-         ("texlive-generic-gettitlestring" ,texlive-generic-gettitlestring)
-         ("texlive-generic-iftex" ,texlive-generic-iftex)
-         ("texlive-generic-infwarerr" ,texlive-generic-infwarerr)
-         ("texlive-generic-intcalc" ,texlive-generic-intcalc)
-         ("texlive-generic-kvdefinekeys" ,texlive-generic-kvdefinekeys)
-         ("texlive-generic-kvsetkeys" ,texlive-generic-kvsetkeys)
-         ("texlive-generic-ltxcmds" ,texlive-generic-ltxcmds)
-         ("texlive-generic-pdfescape" ,texlive-generic-pdfescape)
-         ("texlive-latex-auxhook" ,texlive-latex-auxhook)
-         ("texlive-latex-atveryend" ,texlive-latex-atveryend)
-         ("texlive-latex-hycolor" ,texlive-latex-hycolor)
-         ("texlive-latex-kvoptions" ,texlive-latex-kvoptions)
-         ("texlive-latex-letltxmacro" ,texlive-latex-letltxmacro)
-         ("texlive-latex-pdftexcmds" ,texlive-latex-pdftexcmds)
-         ("texlive-latex-refcount" ,texlive-latex-refcount)
-         ("texlive-latex-rerunfilecheck" ,texlive-latex-rerunfilecheck)
-         ("texlive-latex-url" ,texlive-latex-url)))
+       (list texlive-generic-atbegshi
+             texlive-generic-bitset
+             texlive-generic-etexcmds
+             texlive-generic-gettitlestring
+             texlive-generic-iftex
+             texlive-generic-infwarerr
+             texlive-generic-intcalc
+             texlive-generic-kvdefinekeys
+             texlive-generic-kvsetkeys
+             texlive-generic-ltxcmds
+             texlive-generic-pdfescape
+             texlive-latex-auxhook
+             texlive-latex-atveryend
+             texlive-latex-hycolor
+             texlive-latex-kvoptions
+             texlive-latex-letltxmacro
+             texlive-latex-pdftexcmds
+             texlive-latex-refcount
+             texlive-latex-rerunfilecheck
+             texlive-url))
       (home-page "https://www.ctan.org/pkg/hyperref")
       (synopsis "Extensive support for hypertext in LaTeX")
       (description
@@ -3270,7 +3255,7 @@ pdf and HTML backends.  The package is distributed with the @code{backref} and
                (("ifpdf.ins") "ifpdf.dtx"))
              #t)))))
     (propagated-inputs
-     `(("texlive-generic-iftex" ,texlive-generic-iftex)))
+     (list texlive-generic-iftex))
     (home-page "https://www.ctan.org/pkg/oberdiek")
     (synopsis "Bundle of packages submitted by Heiko Oberdiek")
     (description
@@ -3291,11 +3276,9 @@ arrows; record information about document class(es) used; and many more.")
                "1myz0d5bxhxvl4220ikywh921qld8n324kk9kscqbc5iw4063g56")
               #:trivial? #t))
     (propagated-inputs
-     `(("texlive-generic-infwarerr" ,texlive-generic-infwarerr)
-       ("texlive-generic-uniquecounter" ,texlive-generic-uniquecounter)
-       ("texlive-latex-atveryend" ,texlive-latex-atveryend)
-       ("texlive-latex-kvoptions" ,texlive-latex-kvoptions)
-       ("texlive-latex-pdftexcmds" ,texlive-latex-pdftexcmds)))
+     (list texlive-generic-infwarerr texlive-generic-uniquecounter
+           texlive-latex-atveryend texlive-latex-kvoptions
+           texlive-latex-pdftexcmds))
     (home-page "https://www.ctan.org/pkg/rerunfilecheck")
     (synopsis "Checksum based rerun checks on auxiliary files")
     (description
@@ -3401,7 +3384,7 @@ Live distribution.")
        #:tex-format #f
        #:texlive-latex-base #f))
     (native-inputs
-     `(("texlive-docstrip" ,texlive-docstrip)))
+     (list texlive-docstrip))
     (home-page "https://www.ctan.org/pkg/l3kernel")
     (synopsis "LaTeX3 programmers’ interface")
     (description
@@ -3430,7 +3413,7 @@ that the LaTeX3 conventions can be used with regular LaTeX 2e packages.")
        #:tex-format #f
        #:texlive-latex-base #f))
     (native-inputs
-     `(("texlive-docstrip" ,texlive-docstrip)))
+     (list texlive-docstrip))
     (home-page "https://www.ctan.org/pkg/l3backend")
     (synopsis "LaTeX3 backend drivers")
     (description
@@ -3492,15 +3475,15 @@ an independent schedule.")
                (copy-recursively "tex/latex/l3packages/xparse" dest)))))
        ))
     (native-inputs
-     `(("texlive-docstrip" ,texlive-docstrip)))
+     (list texlive-docstrip))
     (propagated-inputs
-     `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)))
+     (list texlive-latex-l3kernel))
     (home-page "https://www.ctan.org/pkg/l3packages")
     (synopsis "High-level LaTeX3 concepts")
     (description
      "This bundle holds prototype implementations of concepts for a LaTeX
 designer interface, to be used with the experimental LaTeX kernel as
-programming tools and kernel sup­port.  Packages provided in this release are:
+programming tools and kernel support.  Packages provided in this release are:
 
 @enumerate
 @item l3keys2e, which makes the facilities of the kernel module l3keys
@@ -3513,6 +3496,23 @@ programming tools and kernel sup­port.  Packages provided in this release are:
 @end enumerate\n")
     (license license:lppl1.3c+)))
 
+(define-public texlive-dvips-l3backend
+  (package
+    (inherit (simple-texlive-package
+              "texlive-dvips-l3backend"
+              (list
+               "/dvips/l3backend/")
+              (base32
+               "1hvj153h1pn93h6n76dv3mg9ai0mcz9q9mysfiqjfpqzijz9ikky")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/l3backend")
+    (synopsis "LaTeX3 backend drivers for dvips")
+    (description
+     "This package forms parts of expl3, and contains the code used to
+interface with backends (drivers) across the expl3 codebase.  The functions
+here are defined for the dvips engine only.")
+    (license license:lppl1.3c+)))
+
 (define-public texlive-fontspec
   (let ((template (simple-texlive-package
                    "texlive-fontspec"
@@ -3532,7 +3532,7 @@ programming tools and kernel sup­port.  Packages provided in this release are:
              (add-after 'unpack 'chdir
                (lambda _ (chdir "source/latex/fontspec/") #t))))))
       (propagated-inputs
-       `(("texlive-latex-l3packages" ,texlive-latex-l3packages)))
+       (list texlive-latex-l3packages))
       (home-page "https://www.ctan.org/pkg/fontspec")
       (synopsis "Advanced font selection in XeLaTeX and LuaLaTeX")
       (description
@@ -3544,6 +3544,73 @@ the l3kernel and xparse bundles from the LaTeX 3 development team.")
 
 (define-deprecated-package texlive-latex-fontspec texlive-fontspec)
 
+(define-public texlive-grffile
+  (let ((template (simple-texlive-package
+                   "texlive-grffile"
+                   (list "/doc/latex/grffile/README.md"
+                         "/source/latex/grffile/grffile.dtx")
+                   (base32
+                    "1ib2n4d52faipvxdvdh4ar1p5j997h7cza26sfyd8z3qdf0naqgx"))))
+    (package
+      (inherit template)
+      (arguments
+       (substitute-keyword-arguments (package-arguments template)
+         ((#:tex-directory _ #t)
+          "latex/grffile")
+         ((#:build-targets _ #t)
+          '(list "grffile.dtx"))
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'unpack 'chdir
+               (lambda _ (chdir "source/latex/grffile/")))))))
+      (home-page "https://www.ctan.org/pkg/grffile")
+      (synopsis "Extended file name support for graphics (legacy package)")
+      (description
+       "The original grffile package extended the file name processing of the
+@code{graphics} package to support a larger range of file names.  The base
+LaTeX code now supports multiple dots and spaces, and this package by default
+is a stub that just loads @code{graphicx}.")
+      (license license:lppl1.3c+))))
+
+(define-public texlive-stringenc
+  (let ((template (simple-texlive-package
+                   "texlive-stringenc"
+                   (list "/doc/latex/stringenc/README.md"
+                         "/source/latex/stringenc/stringenc.dtx")
+                   (base32
+                    "19sfi5jxldxmy79pxmapmgmn3iknf8wjczasvlrrwv0gyycxdzhw"))))
+    (package
+      (inherit template)
+      (outputs '("doc" "out"))
+      (arguments
+       (substitute-keyword-arguments (package-arguments template)
+         ((#:tex-directory _ #t)
+          "generic/stringenc")
+         ((#:build-targets _ #t)
+          '(list "stringenc.dtx"))
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'unpack 'chdir
+               (lambda _ (chdir "source/latex/stringenc/")))
+             (add-after 'copy-files 'clean-up
+               (lambda* (#:key inputs outputs #:allow-other-keys)
+                 (delete-file-recursively
+                  (string-append (assoc-ref outputs "out") "/share/texmf-dist/build"))
+                 (delete-file
+                  (string-append (assoc-ref outputs "out") "/share/texmf-dist/stringenc.dtx"))
+                 (install-file
+                  (string-append (assoc-ref inputs "source") "/source/latex/stringenc/stringenc.dtx")
+                  (string-append (assoc-ref outputs "out") "/share/texmf-dist/source/latex/stringenc/"))
+                 (install-file
+                  (string-append (assoc-ref inputs "source") "/doc/latex/stringenc/README.md")
+                  (string-append (assoc-ref outputs "doc") "/doc/latex/stringenc/"))))))))
+      (home-page "https://www.ctan.org/pkg/stringenc")
+      (synopsis "Converting a string between different encodings")
+      (description
+       "This package provides @code{\\StringEncodingConvert} for converting a
+string between different encodings.  Both LaTeX and plain-TeX are supported.")
+      (license license:lppl1.3c+))))
+
 (define-public texlive-l3build
   (let ((template (simple-texlive-package
                    "texlive-l3build"
@@ -3579,8 +3646,7 @@ the l3kernel and xparse bundles from the LaTeX 3 development team.")
                              (find-files (assoc-ref outputs "out")))
                    #t)))))))
       (inputs
-       `(("coreutils" ,coreutils)
-         ("texlive-bin" ,texlive-bin)))
+       (list coreutils texlive-bin))
       (home-page "https://github.com/latex3/luaotfload")
       (synopsis "Testing and building system for LaTeX")
       (description
@@ -3617,9 +3683,7 @@ releases.  The bundle consists of a Lua script to run the tasks and a
        (modify-phases %standard-phases
          (delete 'configure))))
     (native-inputs
-     `(("texlive-bin" ,texlive-bin)
-       ("unzip" ,unzip)
-       ("zip" ,zip)))
+     (list texlive-bin unzip zip))
     (home-page "https://github.com/lualatex/lualibs")
     (synopsis "Lua modules for general programming (in the (La)TeX world)")
     (description
@@ -3647,7 +3711,7 @@ this bundle for use independent of ConTeXt.")
     (package
       (inherit template)
       (propagated-inputs
-       `(("texlive-luatex-lualibs" ,texlive-luatex-lualibs)))
+       (list texlive-luatex-lualibs))
       (home-page "https://github.com/lualatex/luaotfload")
       (synopsis "OpenType font loader for LuaTeX")
       (description
@@ -3661,6 +3725,71 @@ loading fonts by their proper names instead of file names.")
 
 (define-deprecated-package texlive-luatex-luaotfload texlive-luaotfload)
 
+;; FIXME: This package is a temporary workaround to provide ‘lualatex.fmt’ for
+;; the LuaTeX engine. It is needed because it was discovered too late in the
+;; core-updates-frozen cycle that texlive-latex-base only provides it for
+;; LuaHBTeX. See https://issues.guix.gnu.org/51252.
+(define-public texlive-latex-luatex
+  (package
+    (name "texlive-latex-luatex")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system gnu-build-system)
+    (arguments
+     `(#:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (ice-9 rdelim)
+                  (ice-9 string-fun))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'unpack)
+         (delete 'bootstrap)
+         (delete 'configure)
+         (delete 'check)
+         (replace 'build
+           (lambda* (#:key inputs #:allow-other-keys)
+             (mkdir "web2c")
+             (let ((fmtutil.cnf-in (open-file
+                                    (string-append
+                                     (assoc-ref inputs "texlive-kpathsea")
+                                     "/share/texmf-dist/web2c/fmtutil.cnf")
+                                    "r"))
+                   (fmtutil.cnf-out (open-file "web2c/fmtutil.cnf" "w")))
+
+               ;; Copy ‘lualatex’ format lines to the new fmtutil.cnf, changing
+               ;; the engine from ‘luahbtex’ to ‘luatex’.
+               (do ((line "" (read-line fmtutil.cnf-in 'concat)))
+                   ((eof-object? line))
+                 (when (string-prefix? "lualatex" line)
+                   (display (string-replace-substring line "luahbtex" "luatex")
+                            fmtutil.cnf-out)))
+               (close-port fmtutil.cnf-out)
+               (close-port fmtutil.cnf-in)
+
+               (invoke "fmtutil" "--sys" "--all" "--fmtdir=web2c"
+                       "--cnffile=web2c/fmtutil.cnf")
+
+               ;; Don't risk this file interfering with anything else.
+               (delete-file "web2c/fmtutil.cnf"))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((web2c (string-append %output "/share/texmf-dist/web2c")))
+               (mkdir-p web2c)
+               (copy-recursively "web2c" web2c)))))))
+    (native-inputs
+     (list texlive-bin
+           texlive-babel
+           texlive-cm
+           texlive-fonts-latex
+           texlive-kpathsea
+           texlive-latex-base
+           texlive-lm
+           texlive-tex-ini-files))
+    (home-page (package-home-page texlive-latex-base))
+    (synopsis "LuaLaTeX format files for LuaTeX")
+    (description "This package is necessary to use LaTeX with the LuaTeX engine.")
+    (license (package-license texlive-latex-base))))
+
 (define-public texlive-latex-amsmath
   (package
     (name "texlive-latex-amsmath")
@@ -3754,7 +3883,7 @@ distribution.")
                    (invoke "unzip" "locale.zip" "-d"
                            locale-directory))))))))
       (native-inputs
-       `(("unzip" ,unzip)))
+       (list unzip))
       (home-page "https://www.ctan.org/pkg/babel")
       (synopsis "Multilingual support for Plain TeX or LaTeX")
       (description
@@ -3970,7 +4099,7 @@ language that is written in a Cyrillic alphabet.")
                (lambda _
                  (chdir "source/latex/psnfss") #t))))))
       (native-inputs
-       `(("texlive-cm" ,texlive-cm)))
+       (list texlive-cm))
       (home-page "https://www.ctan.org/pkg/psnfss")
       (synopsis "Font support for common PostScript fonts")
       (description
@@ -4442,6 +4571,31 @@ paragraphs.  The package also enables typesetting with hanging punctuation,
 by making punctuation characters active.")
     (license license:lppl1.3c+)))
 
+(define-public texlive-fira
+  (package
+    (inherit (simple-texlive-package
+              "texlive-fira"
+              (list "doc/fonts/fira/"
+                    "tex/latex/fira/"
+                    "fonts/vf/public/fira/"
+                    "fonts/type1/public/fira/"
+                    "fonts/tfm/public/fira/"
+                    "fonts/opentype/public/fira/"
+                    "fonts/map/dvips/fira/"
+                    "fonts/enc/dvips/fira/")
+              (base32 "1v3688hziqz4jywfysiv19vsdzfkknrf83zfbi7lhiqpgkpsfsm2")
+              #:trivial? #t))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/fonts/fira")
+    (synopsis "Fira fonts with LaTeX support")
+    (description
+     "This package provides LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX support for
+the Fira Sans family of fonts designed by Erik Spiekermann and Ralph du
+Carrois of Carrois Type Design.  Fira Sans is available in eleven weights with
+corresponding italics: light, regular, medium, bold, ...")
+    (license (list license:lppl
+                   license:silofl1.1))))
+
 (define-public texlive-latex-ifplatform
   (package
     (name "texlive-latex-ifplatform")
@@ -4517,9 +4671,8 @@ Unicode option of @code{inputenc} or @code{inputenx}, or by XeLaTeX/LuaLaTeX.")
                "1hph0djbfc8hlwfc41rzlf8l3ccyyvc0n7a0qdrr9881jwd6iv1b")
               #:trivial? #t))
     (propagated-inputs
-     `(("texlive-generic-iftex" ,texlive-generic-iftex)
-       ("texlive-generic-infwarerr" ,texlive-generic-infwarerr)
-       ("texlive-generic-ltxcmds" ,texlive-generic-ltxcmds)))
+     (list texlive-generic-iftex texlive-generic-infwarerr
+           texlive-generic-ltxcmds))
     (home-page "https://www.ctan.org/pkg/pdftexcmds")
     (synopsis "LuaTeX support for pdfTeX utility functions")
     (description
@@ -4562,16 +4715,16 @@ rotated.")
                "12clzcw2cl7g2chr2phgmmiwxw4859cln1gbx1wgp8bl9iw590nc")
               #:trivial? #t))
     (propagated-inputs
-     `(("texlive-latex-bigfoot" ,texlive-latex-bigfoot) ; for suffix
-       ("texlive-filemod" ,texlive-filemod)
-       ("texlive-latex-graphics" ,texlive-latex-graphics)
-       ("texlive-latex-ifplatform" ,texlive-latex-ifplatform)
-       ("texlive-latex-l3kernel" ,texlive-latex-l3kernel) ; for expl3
-       ("texlive-oberdiek" ,texlive-oberdiek)
-       ("texlive-latex-psfrag" ,texlive-latex-psfrag)
-       ("texlive-latex-tools" ,texlive-latex-tools) ; for shellesc
-       ("texlive-latex-trimspaces" ,texlive-latex-trimspaces)
-       ("texlive-latex-xkeyval" ,texlive-latex-xkeyval)))
+     (list texlive-latex-bigfoot ; for suffix
+           texlive-filemod
+           texlive-latex-graphics
+           texlive-latex-ifplatform
+           texlive-latex-l3kernel ; for expl3
+           texlive-oberdiek
+           texlive-latex-psfrag
+           texlive-latex-tools ; for shellesc
+           texlive-latex-trimspaces
+           texlive-latex-xkeyval))
     (home-page "https://www.ctan.org/pkg/pstool")
     (synopsis "Process PostScript graphics within pdfLaTeX documents")
     (description
@@ -4682,7 +4835,7 @@ be changed. ")
                (("pstool.tex") "trimspaces.tex"))
              #t)))))
     (inputs
-     `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
+     (list texlive-latex-filecontents))
     (home-page "https://www.ctan.org/pkg/trimspaces")
     (synopsis "Trim spaces around an argument or within a macro")
     (description
@@ -4933,7 +5086,7 @@ BibLaTeX, and is considered experimental.")
     (build-system texlive-build-system)
     (arguments '(#:tex-directory "latex/geometry"))
     (propagated-inputs
-     `(("texlive-oberdiek" ,texlive-oberdiek))) ;for ifpdf
+     (list texlive-oberdiek)) ;for ifpdf
     (home-page "https://www.ctan.org/pkg/geometry")
     (synopsis "Flexible and complete interface to document dimensions")
     (description
@@ -5435,8 +5588,7 @@ in SGML; use maths minus in text as appropriate; simple Young tableaux.")
                "02i4n2n3j4lg68d3nam08m63kb4irc99wfhyc2z51r02lm1wwmvw")
               #:trivial? #t))
     (propagated-inputs
-     `(("texlive-generic-kvsetkeys" ,texlive-generic-kvsetkeys)
-       ("texlive-generic-ltxcmds" ,texlive-generic-ltxcmds)))
+     (list texlive-generic-kvsetkeys texlive-generic-ltxcmds))
     (home-page "https://www.ctan.org/pkg/kvoptions")
     (synopsis "Key/value format for package options")
     (description
@@ -5505,9 +5657,7 @@ package options.")
                          (find-files "." "\\.mf"))
                #t))))))
     (native-inputs
-     `(("texlive-bin" ,texlive-bin)
-       ("texlive-metafont" ,texlive-metafont)
-       ("texlive-cm" ,texlive-cm)))
+     (list texlive-bin texlive-metafont texlive-cm))
     (home-page "https://www.ctan.org/pkg/ec")
     (synopsis "Computer modern fonts in T1 and TS1 encodings")
     (description
@@ -5719,9 +5869,7 @@ Adobe's basic set.")
                          (find-files "." "\\.mf"))
                #t))))))
     (native-inputs
-     `(("texlive-bin" ,texlive-bin)
-       ("texlive-metafont" ,texlive-metafont)
-       ("texlive-cm" ,texlive-cm)))
+     (list texlive-bin texlive-metafont texlive-cm))
     (home-page "https://www.ctan.org/pkg/rsfs")
     (synopsis "Ralph Smith's Formal Script font")
     (description
@@ -6132,14 +6280,13 @@ TeX metrics (VF and TFM files) and macros for use with LaTeX.")
          (use-modules (guix build utils))
          (let ((target (string-append (assoc-ref %outputs "out")
                                       "/share/texmf-dist/"))
-               (unzip  (string-append (assoc-ref %build-inputs "unzip")
-                                      "/bin/unzip")))
+               (unzip  (search-input-file %build-inputs "/bin/unzip")))
            (invoke unzip (assoc-ref %build-inputs "source"))
            (mkdir-p target)
            (copy-recursively "iwona" target)
            #t))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "http://jmn.pl/en/kurier-i-iwona/")
     (synopsis "Sans-serif typeface for TeX")
     (description "Iwona is a two-element sans-serif typeface. It was created
@@ -6255,22 +6402,21 @@ Simple Young tableaux.
       (propagated-inputs
        ;; Propagate the texlive-updmap.cfg input used by xmltex, which provides the
        ;; required fonts for its use.
-       `(("texlive-xmltex" ,texlive-xmltex)
-         ("texlive-kpathsea" ,texlive-kpathsea))) ;for fmtutil.cnf template
+       (list texlive-xmltex texlive-kpathsea)) ;for fmtutil.cnf template
       (native-inputs
-       `(("texlive-cm" ,texlive-cm)     ;for cmex10 and others
-         ("texlive-fonts-latex" ,texlive-fonts-latex) ;for lasy6
-         ;; The t1cmr.fd file of texlive-latex-base refers to the ecrm font,
-         ;; provided by the jknappen package collection.
-         ("texlive-jknappen" ,texlive-jknappen)
-         ("texlive-generic-ulem" ,texlive-generic-ulem)
-         ("texlive-hyperref" ,texlive-hyperref)
-         ("texlive-latex-colortbl" ,texlive-latex-colortbl)
-         ("texlive-latex-fancyhdr" ,texlive-latex-fancyhdr)
-         ("texlive-latex-graphics" ,texlive-latex-graphics) ;for color.sty
-         ("texlive-latex-tools" ,texlive-latex-tools)       ;for array.sty
-         ("texlive-marvosym" ,texlive-marvosym)
-         ("texlive-tex-ini-files" ,texlive-tex-ini-files))) ;for pdftexconfig
+       (list texlive-cm ;for cmex10 and others
+             texlive-fonts-latex ;for lasy6
+             ;; The t1cmr.fd file of texlive-latex-base refers to the ecrm font,
+             ;; provided by the jknappen package collection.
+             texlive-jknappen
+             texlive-generic-ulem
+             texlive-hyperref
+             texlive-latex-colortbl
+             texlive-latex-fancyhdr
+             texlive-latex-graphics ;for color.sty
+             texlive-latex-tools ;for array.sty
+             texlive-marvosym
+             texlive-tex-ini-files)) ;for pdftexconfig
       (home-page "https://www.ctan.org/pkg/jadetex/")
       (synopsis "TeX macros to produce TeX output using OpenJade")
       (description "JadeTeX is a companion package to the OpenJade DSSSL
@@ -6419,6 +6565,7 @@ now contains a package @code{fix-cm},f which performs the task of
                     "0vw75i52asi5sssp8k9r8dy4ihvqbvmbsl3dini3ls8cky15lz37"))))
     (package
       (inherit template)
+      (outputs '("out" "doc"))
       (arguments
        (substitute-keyword-arguments (package-arguments template)
          ((#:tex-directory _ #t)
@@ -6428,7 +6575,22 @@ now contains a package @code{fix-cm},f which performs the task of
          ((#:phases phases)
           `(modify-phases ,phases
              (add-after 'unpack 'chdir
-               (lambda _ (chdir "source/latex/lh") #t))))))
+               (lambda _ (chdir "source/latex/lh")))
+             (replace 'copy-files
+               (lambda* (#:key inputs outputs #:allow-other-keys)
+                 (let* ((source (assoc-ref inputs "source"))
+                        (doc (string-append (assoc-ref outputs "doc")
+                                           "/share/texmf-dist/doc"))
+                        (target (string-append (assoc-ref outputs "out")
+                                               "/share/texmf-dist"))
+                        (tex (string-append target "/tex/latex/lh/")))
+                   (copy-recursively "build/" tex)
+                   (copy-recursively (string-append source "/fonts/source/lh")
+                                     (string-append target "/fonts/source/lh"))
+                   (copy-recursively (string-append source "/tex/plain/lh")
+                                     (string-append target "/tex/plain/lh"))
+                   (copy-recursively (string-append source "/doc")
+                                     doc))))))))
       (home-page "https://www.ctan.org/pkg/lh")
       (synopsis "Cyrillic fonts that support LaTeX standard encodings")
       (description
@@ -6750,13 +6912,13 @@ e-TeX.")
     ;; TODO: add this missing package:
     ;; dehyph
     (propagated-inputs
-     `(("texlive-cm" ,texlive-cm)
-       ("texlive-etex" ,texlive-etex)
-       ("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib)
-       ("texlive-hyphen-base" ,texlive-hyphen-base)
-       ("texlive-kpathsea" ,texlive-kpathsea)
-       ("texlive-tex-ini-files" ,texlive-tex-ini-files)
-       ("texlive-tex-plain" ,texlive-tex-plain)))
+     (list texlive-cm
+           texlive-etex
+           texlive-knuth-lib
+           texlive-hyphen-base
+           texlive-kpathsea
+           texlive-tex-ini-files
+           texlive-tex-plain))
     (home-page "https://www.ctan.org/pkg/pdftex")
     (synopsis "TeX extension for direct creation of PDF")
     (description
@@ -6941,10 +7103,8 @@ This package contains the complete TeX Live distribution.")
                (("lib64") "lib"))
              #t)))))
     (native-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)
-       ("perl-config-autoconf" ,perl-config-autoconf)
-       ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
-       ("perl-module-build" ,perl-module-build)))
+     (list perl-capture-tiny perl-config-autoconf perl-extutils-libbuilder
+           perl-module-build))
     (home-page "https://metacpan.org/release/Text-BibTeX")
     (synopsis "Interface to read and parse BibTeX files")
     (description "@code{Text::BibTeX} is a Perl library for reading, parsing,
@@ -6984,45 +7144,45 @@ values (strings, macros, or numbers) pasted together.")
                                     "/lib/perl5/site_perl")))))
              #t)))))
     (inputs
-     `(("perl-autovivification" ,perl-autovivification)
-       ("perl-class-accessor" ,perl-class-accessor)
-       ("perl-data-dump" ,perl-data-dump)
-       ("perl-data-compare" ,perl-data-compare)
-       ("perl-data-uniqid" ,perl-data-uniqid)
-       ("perl-datetime-format-builder" ,perl-datetime-format-builder)
-       ("perl-datetime-calendar-julian" ,perl-datetime-calendar-julian)
-       ("perl-file-slurper" ,perl-file-slurper)
-       ("perl-io-string" ,perl-io-string)
-       ("perl-ipc-cmd" ,perl-ipc-cmd)
-       ("perl-ipc-run3" ,perl-ipc-run3)
-       ("perl-list-allutils" ,perl-list-allutils)
-       ("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-mozilla-ca" ,perl-mozilla-ca)
-       ("perl-regexp-common" ,perl-regexp-common)
-       ("perl-log-log4perl" ,perl-log-log4perl)
-       ("perl-parse-recdescent" ,perl-parse-recdescent)
-       ("perl-unicode-collate" ,perl-unicode-collate)
-       ("perl-unicode-normalize" ,perl-unicode-normalize)
-       ("perl-unicode-linebreak" ,perl-unicode-linebreak)
-       ("perl-encode-eucjpascii" ,perl-encode-eucjpascii)
-       ("perl-encode-jis2k" ,perl-encode-jis2k)
-       ("perl-encode-hanextra" ,perl-encode-hanextra)
-       ("perl-xml-libxml" ,perl-xml-libxml)
-       ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)
-       ("perl-xml-libxslt" ,perl-xml-libxslt)
-       ("perl-xml-writer" ,perl-xml-writer)
-       ("perl-sort-key" ,perl-sort-key)
-       ("perl-text-csv" ,perl-text-csv)
-       ("perl-text-csv-xs" ,perl-text-csv-xs)
-       ("perl-text-roman" ,perl-text-roman)
-       ("perl-uri" ,perl-uri)
-       ("perl-text-bibtex" ,perl-text-bibtex)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
-       ("perl-business-isbn" ,perl-business-isbn)
-       ("perl-business-issn" ,perl-business-issn)
-       ("perl-business-ismn" ,perl-business-ismn)
-       ("perl-lingua-translit" ,perl-lingua-translit)))
+     (list perl-autovivification
+           perl-class-accessor
+           perl-data-dump
+           perl-data-compare
+           perl-data-uniqid
+           perl-datetime-format-builder
+           perl-datetime-calendar-julian
+           perl-file-slurper
+           perl-io-string
+           perl-ipc-cmd
+           perl-ipc-run3
+           perl-list-allutils
+           perl-list-moreutils
+           perl-mozilla-ca
+           perl-regexp-common
+           perl-log-log4perl
+           perl-parse-recdescent
+           perl-unicode-collate
+           perl-unicode-normalize
+           perl-unicode-linebreak
+           perl-encode-eucjpascii
+           perl-encode-jis2k
+           perl-encode-hanextra
+           perl-xml-libxml
+           perl-xml-libxml-simple
+           perl-xml-libxslt
+           perl-xml-writer
+           perl-sort-key
+           perl-text-csv
+           perl-text-csv-xs
+           perl-text-roman
+           perl-uri
+           perl-text-bibtex
+           perl-libwww
+           perl-lwp-protocol-https
+           perl-business-isbn
+           perl-business-issn
+           perl-business-ismn
+           perl-lingua-translit))
     (native-inputs
      `(("perl-config-autoconf" ,perl-config-autoconf)
        ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
@@ -7063,7 +7223,7 @@ other things it comes with full Unicode support.")
              ;; build it.
              (invoke "python" "setup.py" "build" "--pdf=False" "install"
                      (string-append "--prefix=" (assoc-ref outputs "out"))))))))
-    (native-inputs `(("texinfo" ,texinfo)))
+    (native-inputs (list texinfo))
     (home-page "https://launchpad.net/rubber")
     (synopsis "Wrapper for LaTeX and friends")
     (description
@@ -7101,13 +7261,9 @@ PDF documents.")
                        (string-append "METAINFODIR=" out "/share/metainfo")
                        "texmaker.pro")))))))
     (inputs
-     `(("poppler-qt5" ,poppler-qt5)
-       ("qtbase" ,qtbase-5)
-       ("qtscript" ,qtscript)
-       ("qtwebkit" ,qtwebkit)
-       ("zlib" ,zlib)))
+     (list poppler-qt5 qtbase-5 qtscript qtwebkit zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://www.xm1math.net/texmaker/")
     (synopsis "LaTeX editor")
     (description "Texmaker is a program that integrates many tools needed to
@@ -7175,47 +7331,44 @@ and Karl Berry.")
                   #t))))
     (build-system qt-build-system)
     (arguments
-     `(#:configure-flags `("-DLYX_USE_QT=QT5"
-                           "-DLYX_EXTERNAL_BOOST=1"
-                           "-DLYX_INSTALL=1"
-                           "-DLYX_RELEASE=1"
-                           "-DLYX_PROGRAM_SUFFIX=OFF"
-                           ,(string-append "-DLYX_INSTALL_PREFIX="
-                                           (assoc-ref %outputs "out")))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-python
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* '("lib/configure.py"
-                            "src/support/ForkedCalls.cpp"
-                            "src/support/Systemcall.cpp"
-                            "src/support/os.cpp"
-                            "src/support/filetools.cpp")
-               (("\"python ")
-                (string-append "\""
-                               (assoc-ref inputs "python")
-                               "/bin/python3 ")))
-             #t))
-         (add-after 'unpack 'add-missing-test-file
-           (lambda _
-             ;; Create missing file that would cause tests to fail.
-             (with-output-to-file "src/tests/check_layout.cmake"
-               (const #t))
-             #t)))))
+     (list #:configure-flags
+           #~(list "-DLYX_USE_QT=QT5"
+                   "-DLYX_EXTERNAL_BOOST=1"
+                   "-DLYX_INSTALL=1"
+                   "-DLYX_RELEASE=1"
+                   "-DLYX_PROGRAM_SUFFIX=OFF"
+                   (string-append "-DLYX_INSTALL_PREFIX=" #$output))
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'patch-python
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (substitute* '("lib/configure.py"
+                                  "src/support/ForkedCalls.cpp"
+                                  "src/support/Systemcall.cpp"
+                                  "src/support/os.cpp"
+                                  "src/support/filetools.cpp")
+                     (("\"python ")
+                      (string-append "\""
+                                     (assoc-ref inputs "python")
+                                     "/bin/python3 ")))))
+               (add-after 'unpack 'add-missing-test-file
+                 (lambda _
+                   ;; Create missing file that would cause tests to fail.
+                   (with-output-to-file "src/tests/check_layout.cmake"
+                     (const #t)))))))
     (inputs
-     `(("boost" ,boost)
-       ("hunspell" ,hunspell)           ; Note: Could also use aspell instead.
-       ("libx11" ,libx11)
-       ("mythes" ,mythes)
-       ("python" ,python)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("zlib" ,zlib)))
+     (list boost
+           hunspell ; Note: Could also use aspell instead.
+           libx11
+           mythes
+           python
+           qtbase-5
+           qtsvg
+           zlib))
     (propagated-inputs
      `(("texlive" ,(texlive-updmap.cfg (list texlive-fonts-ec)))))
     (native-inputs
-     `(("python" ,python)
-       ("pkg-config" ,pkg-config)))
+     (list python pkg-config))
     (home-page "https://www.lyx.org/")
     (synopsis "Document preparation system with GUI")
     (description "LyX is a document preparation system.  It excels at letting
@@ -7356,7 +7509,7 @@ It also ensures compatibility with the @code{media9} and @code{animate} packages
      '(#:tex-directory "latex/needspace"
        #:tex-format "latex"))
     (inputs
-     `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
+     (list texlive-latex-filecontents))
     (home-page "https://www.ctan.org/pkg/needspace")
     (synopsis "Insert pagebreak if not enough space")
     (description
@@ -7382,7 +7535,7 @@ page, a new page will be started.")
      '(#:tex-directory "latex/changepage"
        #:tex-format "latex"))
     (inputs
-     `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
+     (list texlive-latex-filecontents))
     (home-page "https://www.ctan.org/pkg/changepage")
     (synopsis "Margin adjustment and detection of odd/even pages")
     (description
@@ -7496,7 +7649,7 @@ striking out (line through words) and crossing out (/// over words).")
             (base32
              "05zdq7y3am109m5534ahqqp9x5iar3ha68v1r4zkrdly2mijxz2j"))))))
     (propagated-inputs
-     `(("texlive-xcolor" ,texlive-xcolor)))
+     (list texlive-xcolor))
     (arguments
      `(#:modules ((guix build utils))
        #:builder
@@ -7611,7 +7764,7 @@ be used either with LaTeX or with plain TeX.")
                "19grk4p1dh566hgpzhnjyjnrw57hpjijcpr7ci401n9jszcc1xkz")
               #:trivial? #t))
     (propagated-inputs
-     `(("texlive-latex-pdftexcmds" ,texlive-latex-pdftexcmds)))
+     (list texlive-latex-pdftexcmds))
     (home-page "https://www.ctan.org/pkg/bigintcalc")
     (synopsis "Integer calculations on very large numbers")
     (description
@@ -7629,9 +7782,8 @@ integers that can exceed TeX's number limits.")
                "0inj6qpzizvsbxdfsaijnl4iq976kyrnchnm3gc1kc2w389zrn1l")
               #:trivial? #t))
     (propagated-inputs
-     `(("texlive-generic-infwarerr" ,texlive-generic-infwarerr)
-       ("texlive-generic-intcalc" ,texlive-generic-intcalc)
-       ("texlive-generic-bigintcalc" ,texlive-generic-bigintcalc)))
+     (list texlive-generic-infwarerr texlive-generic-intcalc
+           texlive-generic-bigintcalc))
     (home-page "https://www.ctan.org/pkg/bitset")
     (synopsis "Handle bit-vector datatype")
     (description
@@ -7650,8 +7802,7 @@ can be manipulated.")
                "11y6pnlq13bp0ybi7c82g8ds8085zv1zaslgqv3dzhgi3dklpc0c")
               #:trivial? #t))
     (propagated-inputs
-     `(("texlive-generic-infwarerr" ,texlive-generic-infwarerr)
-       ("texlive-generic-iftex" ,texlive-generic-iftex)))
+     (list texlive-generic-infwarerr texlive-generic-iftex))
     (home-page "https://www.ctan.org/pkg/etexcmds")
     (synopsis "Avoid name clashes with e-TeX commands")
     (description
@@ -7818,8 +7969,7 @@ using TeX or e-TeX.")
                "1bjh8vwiqlkmjqndnh4xp116524x4m3hdcyq2s231jiqy8il8dcc")
               #:trivial? #t))
     (propagated-inputs
-     `(("texlive-generic-bigintcalc" ,texlive-generic-bigintcalc)
-       ("texlive-generic-infwarerr" ,texlive-generic-infwarerr)))
+     (list texlive-generic-bigintcalc texlive-generic-infwarerr))
     (home-page "https://www.ctan.org/pkg/uniquecounter")
     (synopsis "Unlimited unique counter")
     (description
@@ -7855,7 +8005,7 @@ values are not limited.")
            (copy-recursively (assoc-ref %build-inputs "source") target)
            #t))))
     (propagated-inputs
-     `(("texlive-generic-listofitems" ,texlive-generic-listofitems)))
+     (list texlive-generic-listofitems))
     (home-page "https://www.ctan.org/pkg/readarray")
     (synopsis "Read, store and recall array-formatted data")
     (description
@@ -7892,7 +8042,7 @@ formatted text.")
            (copy-recursively (assoc-ref %build-inputs "source") target)
            #t))))
     (propagated-inputs
-     `(("texlive-latex-readarray" ,texlive-latex-readarray)))
+     (list texlive-latex-readarray))
     (home-page "https://www.ctan.org/pkg/verbatimbox")
     (synopsis "Deposit verbatim text in a box")
     (description
@@ -8030,7 +8180,7 @@ package, such as @command{natbib} as well).")
               #:trivial? #t))
     ;; This provides charter.map.
     (propagated-inputs
-     `(("texlive-psnfss" ,texlive-psnfss)))
+     (list texlive-psnfss))
     (home-page "https://www.ctan.org/pkg/charter")
     (synopsis "Charter fonts for TeX")
     (description "This package provides a copy of the Charter Type-1 fonts
@@ -8121,12 +8271,12 @@ Support for use with LaTeX is available in @code{freenfss}, part of
     ;; TODO: add these missing packages:
     ;; xetex, luatex, lm-math, manfnt-font, and mptopdf
     (propagated-inputs
-     `(("texlive-amsfonts" ,texlive-amsfonts)
-       ("texlive-lm" ,texlive-lm)
-       ("texlive-pdftex" ,texlive-pdftex)
-       ("texlive-metapost" ,texlive-metapost)
-       ("texlive-fonts-stmaryrd" ,texlive-fonts-stmaryrd)
-       ("texlive-mflogo-font" ,texlive-mflogo-font)))
+     (list texlive-amsfonts
+           texlive-lm
+           texlive-pdftex
+           texlive-metapost
+           texlive-stmaryrd
+           texlive-mflogo-font))
     (home-page "https://www.ctan.org/pkg/context")
     (synopsis "Full featured, parameter driven macro package for TeX")
     (description "ConTeXt is a full featured, parameter driven macro package,
@@ -8150,10 +8300,8 @@ for a wealth of support information.")
                "091n27n4l3iac911bvmpp735ffryyzaq46mkclgn3q9jsvc4ngiv")
               #:trivial? #t))
     (propagated-inputs
-     `(("texlive-hyperref" ,texlive-hyperref)
-       ("texlive-oberdiek" ,texlive-oberdiek)
-       ("texlive-etoolbox" ,texlive-etoolbox)
-       ("texlive-latex-pgf" ,texlive-latex-pgf)))
+     (list texlive-hyperref texlive-oberdiek texlive-etoolbox
+           texlive-latex-pgf))
     (home-page "https://www.ctan.org/pkg/beamer")
     (synopsis "LaTeX class for producing presentations and slides")
     (description "The beamer LaTeX class can be used for producing slides.
@@ -8223,7 +8371,7 @@ the file to which it applies.")
                    (("    .+umaczy") "umaczy"))
                  #t))))))
       (propagated-inputs
-       `(("texlive-pdftex" ,texlive-pdftex)))
+       (list texlive-pdftex))
       (home-page "https://www.ctan.org/pkg/pdfx")
       (synopsis "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX")
       (description
@@ -8312,7 +8460,7 @@ or shading the cells of tables.")
     (package
       (inherit template)
       (propagated-inputs
-       `(("texlive-pstricks" ,texlive-pstricks)))
+       (list texlive-pstricks))
       (home-page "http://www.ctan.org/pkg/pst-text")
       (synopsis "Text and character manipulation in PSTricks")
       (description "Pst-text is a PSTricks based package for plotting text along
@@ -8456,19 +8604,19 @@ are part of the LaTeX required tools distribution, comprising the packages:
                            "xkvutils.tex"))
                #t))))))
     (native-inputs
-     `(("texlive-latex-base" ,texlive-latex-base)
-       ("texlive-cm" ,texlive-cm)
-       ("texlive-lm" ,texlive-lm)
-       ("texlive-url" ,texlive-url)
-       ("texlive-graphics-def" ,texlive-graphics-def)
-       ("texlive-xcolor" ,texlive-xcolor)
-       ("texlive-latex-footmisc" ,texlive-latex-footmisc)
-       ("texlive-latex-listings" ,texlive-latex-listings)
-       ("texlive-generic-iftex" ,texlive-generic-iftex)
-       ("texlive-pstricks" ,texlive-pstricks)
-       ("texlive-pst-text" ,texlive-pst-text)
-       ("texlive-tools" ,texlive-tools)
-       ("texlive-latex-pgf" ,texlive-latex-pgf)))
+     (list texlive-latex-base
+           texlive-cm
+           texlive-lm
+           texlive-url
+           texlive-graphics-def
+           texlive-xcolor
+           texlive-latex-footmisc
+           texlive-latex-listings
+           texlive-generic-iftex
+           texlive-pstricks
+           texlive-pst-text
+           texlive-tools
+           texlive-latex-pgf))
     (home-page "http://www.ctan.org/pkg/xkeyval")
     (synopsis "Extension of the keyval package")
     (description
@@ -8495,9 +8643,9 @@ keys.")
     (build-system texlive-build-system)
     (arguments '(#:tex-directory "latex/standalone"))
     (propagated-inputs
-     `(("texlive-latex-xkeyval" ,texlive-latex-xkeyval)))
+     (list texlive-latex-xkeyval))
     (native-inputs
-     `(("texlive-ydoc" ,texlive-ydoc)))
+     (list texlive-ydoc))
     (home-page "http://www.ctan.org/pkg/standalone")
     (synopsis "Compile TeX pictures stand-alone or as part of a document")
     (description "A class and package is provided which allows TeX pictures or
@@ -8529,8 +8677,7 @@ The behaviour in standalone mode may adjusted using a configuration file
          (add-after 'unpack 'chdir
            (lambda _ (chdir "source/latex/siunitx") #t)))))
     (propagated-inputs
-     `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)
-       ("texlive-latex-l3packages" ,texlive-latex-l3packages)))
+     (list texlive-latex-l3kernel texlive-latex-l3packages))
     (home-page "http://www.ctan.org/pkg/siunitx")
     (synopsis "Comprehensive SI units package")
     (description
@@ -8582,7 +8729,7 @@ to what constitutes a good table in this context.  The package offers
     (package
       (inherit template)
       (propagated-inputs
-       `(("texlive-etoolbox" ,texlive-etoolbox)))
+       (list texlive-etoolbox))
       (home-page "https://www.ctan.org/pkg/csquotes")
       (synopsis "Context sensitive quotation facilities")
       (description "This package provides advanced facilities for inline and
@@ -8608,7 +8755,7 @@ styles as well as the optional active quotes are freely configurable.")
     (package
       (inherit template)
       (propagated-inputs
-       `(("texlive-etoolbox" ,texlive-etoolbox)))
+       (list texlive-etoolbox))
       (home-page "https://www.ctan.org/pkg/logreq")
       (synopsis "Support for automation of the LaTeX workflow")
       (description "The package helps to automate a typical LaTeX
@@ -8640,8 +8787,7 @@ XML file.
     (package
       (inherit template)
       (propagated-inputs
-       `(("texlive-logreq" ,texlive-logreq)
-         ("texlive-url" ,texlive-url)))
+       (list texlive-logreq texlive-url))
       (home-page "https://www.ctan.org/pkg/biblatex")
       (synopsis "Sophisticated bibliographies in LaTeX")
       (description "BibLaTeX is a complete reimplementation of the
@@ -8679,8 +8825,7 @@ section.
     (package
       (inherit template)
       (propagated-inputs
-       `(("texlive-latex-pgf" ,texlive-latex-pgf)
-         ("texlive-latex-xkeyval" ,texlive-latex-xkeyval)))
+       (list texlive-latex-pgf texlive-latex-xkeyval))
       (home-page "http://www.ctan.org/pkg/todonotes")
       (synopsis "Marking things to do in a LaTeX document")
       (description "The @code{todonotes} package lets the user mark
@@ -9202,7 +9347,7 @@ floats merely delays the arrival of the inevitable error message.")
              (add-after 'unpack 'chdir
                (lambda _ (chdir "source/latex/ifmtarg")))))))
       (inputs
-       `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
+       (list texlive-latex-filecontents))
       (home-page "https://www.ctan.org/pkg/ifmtarg")
       (synopsis "If-then-else command for processing potentially empty arguments")
       (description "This package provides a command for the LaTeX programmer for
@@ -9229,7 +9374,7 @@ testing whether an argument is empty.")
              (add-after 'unpack 'chdir
                (lambda _ (chdir "source/latex/pagenote")))))))
       (propagated-inputs
-       `(("texlive-ifmtarg" ,texlive-ifmtarg)))
+       (list texlive-ifmtarg))
       (home-page "https://www.ctan.org/pkg/pagenote")
       (synopsis "Notes at end of document")
       (description "The pagenote package provides tagged notes on a separate
@@ -9257,7 +9402,7 @@ page (also known as ‘end notes’).")
              (add-after 'unpack 'chdir
                (lambda _ (chdir "source/latex/titling")))))))
       (native-inputs
-       `(("texlive-cm" ,texlive-cm)))
+       (list texlive-cm))
       (home-page "https://www.ctan.org/pkg/titling")
       (synopsis "Control typesetting of the \\maketitle command")
       (description "The @code{titling} package provides control over the
@@ -9287,7 +9432,7 @@ a physical page.")
              (add-after 'unpack 'chdir
                (lambda _ (chdir "source/latex/ifoddpage")))))))
       (native-inputs
-       `(("texlive-ydoc" ,texlive-ydoc)))
+       (list texlive-ydoc))
       (home-page "https://www.ctan.org/pkg/ifoddpage")
       (synopsis "Determine if the current page is odd or even")
       (description "This package provides an @code{\\ifoddpage} conditional to
@@ -9317,7 +9462,7 @@ the conditional @code{\\ifoddpageoronside} is provided which is also true in
              (add-after 'unpack 'chdir
                (lambda _ (chdir "source/latex/storebox")))))))
       (native-inputs
-       `(("texlive-ydoc" ,texlive-ydoc)))
+       (list texlive-ydoc))
       (home-page "https://www.ctan.org/pkg/storebox")
       (synopsis "Storing information for reuse")
       (description "The package provides \"store boxes\" whose user interface
@@ -9346,7 +9491,7 @@ DVI is output, store boxes behave the same as save boxes.")
              (add-after 'unpack 'chdir
                (lambda _ (chdir "source/latex/collectbox")))))))
       (native-inputs
-       `(("texlive-ydoc" ,texlive-ydoc)))
+       (list texlive-ydoc))
       (home-page "https://www.ctan.org/pkg/collectbox")
       (synopsis "Collect and process macro arguments as boxes")
       (description "The package provides macros to collect and process a macro
@@ -9405,14 +9550,14 @@ the list of graphics file extensions recognised by package graphics.")
              (add-after 'unpack 'chdir
                (lambda _ (chdir "source/latex/adjustbox")))))))
       (native-inputs
-       `(("texlive-ydoc" ,texlive-ydoc)))
+       (list texlive-ydoc))
       (propagated-inputs
-       `(("texlive-latex-pgf" ,texlive-latex-pgf)
-         ("texlive-latex-varwidth" ,texlive-latex-varwidth)
-         ("texlive-latex-xkeyval" ,texlive-latex-xkeyval)
-         ("texlive-collectbox" ,texlive-collectbox)
-         ("texlive-ifoddpage" ,texlive-ifoddpage)
-         ("texlive-storebox" ,texlive-storebox)))
+       (list texlive-latex-pgf
+             texlive-latex-varwidth
+             texlive-latex-xkeyval
+             texlive-collectbox
+             texlive-ifoddpage
+             texlive-storebox))
       (home-page "https://www.ctan.org/pkg/adjustbox")
       (synopsis "Graphics package-alike macros for “general” boxes")
       (description "The package provides several macros to adjust boxed
@@ -9437,10 +9582,8 @@ provided box macros are @code{\\lapbox}, @code{\\marginbox},
     (package
       (inherit template)
       (propagated-inputs
-       `(("texlive-etoolbox" ,texlive-etoolbox)
-         ("texlive-latex-environ" ,texlive-latex-environ)
-         ("texlive-latex-pgf" ,texlive-latex-pgf)
-         ("texlive-latex-tools" ,texlive-latex-tools)))
+       (list texlive-etoolbox texlive-latex-environ texlive-latex-pgf
+             texlive-latex-tools))
       (home-page "https://www.ctan.org/pkg/tcolorbox")
       (synopsis "Colored boxes, for LaTeX examples and theorems, etc")
       (description "This package provides an environment for colored and
@@ -9469,7 +9612,7 @@ parts.")
     (build-system texlive-build-system)
     (arguments '(#:tex-directory "latex/ebproof"))
     (propagated-inputs
-     `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)))
+     (list texlive-latex-l3kernel))
     (home-page "http://www.ctan.org/pkg/ebproof")
     (synopsis
      "Formal proofs in the style of sequent calculus")
@@ -9481,6 +9624,32 @@ an arbitrary point.  Various options allow complete control over spacing,
 styles of inference rules, placement of labels, etc.")
     (license license:lppl1.3+)))
 
+(define-public texlive-latex-bussproofs
+  (let ((template (simple-texlive-package
+                   "texlive-latex-bussproofs"
+                   (list "/doc/latex/bussproofs/"
+                         "/tex/latex/bussproofs/")
+                   (base32
+                    "1gb8y9g89fqw1kix4d2vb7mj440vlb8hnpsa3jqpk9yicndwcyk6"))))
+    (package
+      (inherit template)
+      (arguments
+       (substitute-keyword-arguments (package-arguments template)
+         ((#:tex-directory _ '())
+          "latex/bussproofs")
+         ((#:build-targets _ '())
+          ''()) ; "bussproofs.sty"
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'unpack 'chdir
+               (lambda _ (chdir "tex/latex/bussproofs")))))))
+      (home-page "https://www.math.ucsd.edu/~sbuss/ResearchWeb/bussproofs/index.html")
+      (synopsis "Formal proofs in the style of sequent calculus")
+      (description
+       "This package provides commands to typeset proof trees in the style of
+sequent calculus and related systems.")
+      (license license:lppl1.3+))))
+
 (define-public texlive-eurosym
   (let ((template (simple-texlive-package
                    "texlive-eurosym"
@@ -9535,6 +9704,71 @@ are valid as arguments for the macros.  The package may be used under
 LaTeX and plain TeX.")
     (license (license:fsf-free "file:/binhex.dtx"))))
 
+(define-public texlive-translator
+  (package
+    (inherit (simple-texlive-package
+              "texlive-translator"
+              (list "doc/latex/translator/"
+                    "tex/latex/translator/")
+              (base32 "13rxdqhvgwc5lz2wsw4jwsb92614wlxsa90rmzxyrc6xjz1jypnk")
+              #:trivial? #t))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/macros/latex/contrib/translator")
+    (synopsis "Easy translation of strings in LaTeX")
+    (description
+     "This LaTeX package provides a flexible mechanism for translating
+individual words into different languages.  For example, it can be used to
+translate a word like \"figure\" into, say, the German word \"Abbildung\".
+Such a translation mechanism is useful when the author of some package would
+like to localize the package such that texts are correctly translated into the
+language preferred by the user.  This package is not intended to be used to
+automatically translate more than a few words.")
+    (license (list license:lppl license:gpl1+))))
+
+(define-public texlive-latex-textpos
+  (package
+    (inherit (simple-texlive-package
+              "texlive-latex-textpos"
+              (list "doc/latex/textpos/"
+                    "tex/latex/textpos/")
+              (base32 "0sqm3pr9jyf9sf432qawscbf50glj58acwcfzyk58ijic2g01hzl")
+              #:trivial? #t))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/textpos")
+    (synopsis "Absolute positioning of text on the LaTeX page")
+    (description
+     "This package facilitates placing boxes at absolute positions on the
+LaTeX page.  There are several reasons why this might be useful, but the main
+one (or at least my motivating one) is to help produce a large-format
+conference poster.
+
+This package provides a single environment, plus a starred variant, which
+contains the text (or graphics, or table, or whatever) which is to be placed
+on the page, and which specifies where it is to be placed.  The environment is
+accompanied by various configuration commands.")
+    (license license:lppl)))
+
+(define-public texlive-xifthen
+  (package
+    (inherit (simple-texlive-package
+              "texlive-xifthen"
+              (list "doc/latex/xifthen/"
+                    "tex/latex/xifthen/")
+              (base32
+               "0b33mlmnxsj5mi06v2w2zgamk51mgv1lxdr1cax8nkpn9g7n9axw")
+              #:trivial? #t))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/xifthen")
+    (synopsis "Extended conditional commands")
+    (description
+     "This package extends the @code{ifthen} package by implementing new
+commands to go within the first argument of @code{\\\\ifthenelse}: to test
+whether a string is void or not, if a command is defined or equivalent to
+another.  The package also enables use of complex expressions as introduced by
+the package @code{calc}, together with the ability of defining new commands to
+handle complex tests.")
+    (license license:lppl)))
+
 (define-public bibtool
   (package
     (name "bibtool")
@@ -9556,7 +9790,7 @@ LaTeX and plain TeX.")
     (arguments
      `(#:test-target "test"))
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "http://www.gerd-neugebauer.de/software/TeX/BibTool/en")
     (synopsis "Tool for manipulating BibTeX databases")
     (description
diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm
index f9c40b3450..13fb92d14a 100644
--- a/gnu/packages/texinfo.scm
+++ b/gnu/packages/texinfo.scm
@@ -69,13 +69,11 @@
                      "env "))
                   #t)))
             %standard-phases)))
-    (inputs `(("ncurses" ,ncurses)
-              ("perl" ,perl)))
+    (inputs (list ncurses perl))
     ;; When cross-compiling, texinfo will build some of its own binaries with
     ;; the native compiler. This means ncurses is needed both in both inputs
     ;; and native-inputs.
-    (native-inputs `(("perl" ,perl)
-                     ("ncurses" ,ncurses)))
+    (native-inputs (list perl ncurses))
 
     (native-search-paths
      ;; This is the variable used by the standalone Info reader.
@@ -118,11 +116,10 @@ is on expressing the content semantically, avoiding physical markup commands.")
               (sha256
                (base32
                 "1rf9ckpqwixj65bw469i634897xwlgkm5i9g2hv3avl6mv7b0a3d"))))
-    (inputs `(("ncurses" ,ncurses)
-              ("xz" ,xz)))
+    (inputs (list ncurses xz))
     (native-inputs
-      `(("automake" ,automake)
-        ,@(package-native-inputs texinfo)))
+      (modify-inputs (package-native-inputs texinfo)
+        (prepend automake)))
     (arguments
      (substitute-keyword-arguments (package-arguments texinfo)
        ((#:phases phases)
@@ -207,7 +204,7 @@ is on expressing the content semantically, avoiding physical markup commands.")
                   (utime "texi2html.pl" 0 0 0 0)
                   #t))))
     (build-system gnu-build-system)
-    (inputs `(("perl" ,perl)))
+    (inputs (list perl))
     (arguments
      ;; Tests fail because of warnings on stderr from Perl 5.22.  Adjusting
      ;; texi2html.pl to avoid the warnings seems non-trivial, so we simply
@@ -273,8 +270,7 @@ Texi2HTML.")
                 (string-append "\"" (which "clear") "\"")))
              #t)))))
     (inputs
-     `(("ncurses" ,ncurses)
-       ("readline" ,readline)))
+     (list ncurses readline))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index d05e1c904a..5a9f5900e0 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -56,12 +56,12 @@
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
-  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages haskell-xyz)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages libbsd)
   #:use-module (gnu packages libreoffice)
   #:use-module (gnu packages llvm)
@@ -76,6 +76,7 @@
   #:use-module (gnu packages qt)
   #:use-module (gnu packages regex)
   #:use-module (gnu packages ruby)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages terminals)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages version-control)
@@ -146,11 +147,7 @@
            (sha256
             (base32 "1jsvg2lg3xqfgi79x08kx94mc34mh62ivca10vsci6fqsk68jbd0"))
            (file-name (git-file-name "vis-test" version))))))
-    (inputs `(("lua" ,lua)
-              ("ncurses" ,ncurses)
-              ("libtermkey" ,libtermkey)
-              ("lua-lpeg" ,lua-lpeg)
-              ("tre" ,tre)))
+    (inputs (list lua ncurses libtermkey lua-lpeg tre))
     (synopsis "Vim-like text editor")
     (description
      "Vis aims to be a modern, legacy free, simple yet efficient vim-like text
@@ -196,10 +193,7 @@ based command language.")
          (add-before 'build 'chdir
            (lambda _ (chdir "src") #t)))))
     (native-inputs
-     `(("gcc", gcc-10) ; See https://github.com/mawww/kakoune/issues/4318
-       ("asciidoc" ,asciidoc)
-       ("pkg-config" ,pkg-config)
-       ("ruby" ,ruby)))
+     (list asciidoc pkg-config ruby))
     (synopsis "Vim-inspired code editor")
     (description
      "Kakoune is a code editor heavily inspired by Vim, as such most of its
@@ -279,12 +273,12 @@ Rust.")
         ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
         ("rust-unicode-width" ,rust-unicode-width-0.1))))
     (inputs
-     `(("clang" ,clang)))
+     (list clang))
     (home-page "https://github.com/justinbarclay/parinfer-rust")
-    (synopsis "Infer parantheses for Clojure, Lisp and Scheme")
+    (synopsis "Infer parentheses for Clojure, Lisp and Scheme")
     (description
      "Parinfer is a plugin for Kakoune, Vim, Neovim and Emacs that infers
-paretheses and indentation.  This library can be called from other editors that
+parentheses and indentation.  This library can be called from other editors that
 can load dynamic libraries.")
     (license license:expat)))
 
@@ -302,7 +296,7 @@ can load dynamic libraries.")
         (base32
          "1pmr598xxxm9j9dl93kq4dv36zyw0q2dh6d7x07hf134y9hhlnj9"))))
     (build-system gnu-build-system)
-    (inputs `(("ncurses" ,ncurses)))
+    (inputs (list ncurses))
     (home-page "http://joe-editor.sourceforge.net/")
     (synopsis "Console screen editor")
     (description
@@ -388,13 +382,12 @@ bindings and many of the powerful features of GNU Emacs.")
                                ":"))))
                         #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("xorg-server" ,xorg-server-for-tests)))
+     (list pkg-config xorg-server-for-tests))
     (inputs
      `(("aspell" ,aspell)
        ("boost" ,boost)
        ("ctags" ,universal-ctags)
-       ("gtkmm" ,gtkmm)
+       ("gtkmm" ,gtkmm-3)
        ("gtksourceviewmm" ,gtksourceviewmm)
        ("libclang" ,clang-11)     ;XXX: must be the same version as Mesas LLVM
        ("libgit2" ,libgit2)))
@@ -422,10 +415,9 @@ systems.")
                 "0b0az2wvqgvam7w0ns1j8xp2llslm1rx6h7zcsy06a7j0yp257cm"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("gtk+" ,gtk+-2)))
+     (list gtk+-2))
     (home-page "http://tarot.freeshell.org/leafpad/")
     (synopsis "GTK+ based text editor")
     (description "Leafpad is a GTK+ text editor that emphasizes simplicity.  As
@@ -451,12 +443,9 @@ compiled, requires few libraries, and starts up quickly. ")
                   "1alyghm2wpakzdfag0g4g8gb1h9l4wdg7mnhq8bk0iq5ryqia16a"))))
       (build-system glib-or-gtk-build-system)
       (native-inputs
-       `(("intltool" ,intltool)
-         ("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)))
+       (list intltool autoconf automake pkg-config))
       (inputs
-       `(("gtk+" ,gtk+)))
+       (list gtk+))
       (home-page "http://tarot.freeshell.org/leafpad/")
       (synopsis "GTK+ 3 based text editor")
       (description "L3afpad is a GTK+ 3 text editor that emphasizes simplicity.  As
@@ -491,7 +480,7 @@ compiled, requires few libraries, and starts up quickly. ")
        #:phases (modify-phases %standard-phases
                   (delete 'configure))))
     (native-inputs
-     `(("nasm" ,nasm)))
+     (list nasm))
     (home-page "https://sites.google.com/site/e3editor/")
     (synopsis "Tiny text editor written in assembly")
     (description
@@ -608,11 +597,9 @@ OpenBSD team.")
                (install-file "config.eg" doc)
                #t))))))
     (native-inputs
-     `(("texinfo" ,texinfo)))
+     (list texinfo))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxv" ,libxv)))
+     (list libx11 libxext libxv))
     (home-page "https://bellard.org/qemacs/")
     (synopsis "Small but powerful text editor")
     (description "QEmacs (for Quick Emacs) is a very small but
@@ -678,18 +665,17 @@ scripts/input/X11/C/Shell/HTML/Dired): 49KB.
                 "19cf55b86yj2b5hdazbyw4iyp6xq155243aiyg4m0vhwh0h79nwh"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("qttools" ,qttools)))           ; for lrelease
+     (list pkg-config qttools))           ; for lrelease
     (inputs
-     `(("hunspell" ,hunspell)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtquickcontrols" ,qtquickcontrols)
-       ("qtsvg" ,qtsvg)
-       ("qtwebchannel" ,qtwebchannel)))
+     (list hunspell
+           qtbase-5
+           qtdeclarative
+           qtmultimedia
+           qtquickcontrols
+           qtsvg
+           qtwebchannel))
     (propagated-inputs                  ; To get native-search-path
-     `(("qtwebengine" ,qtwebengine)))
+     (list qtwebengine))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -722,7 +708,7 @@ environment with Markdown markup.")
 (define-public manuskript
   (package
     (name "manuskript")
-    (version "0.12.0")
+    (version "0.13.1")
     (source
      (origin
        (method git-fetch)
@@ -731,7 +717,7 @@ environment with Markdown markup.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0gfwwnpjslb0g8y3v9ha4sd8in6bpy6bhi4rn4hmfd2vmq2flpbd"))))
+        (base32 "1rj41wimmaq47lwaz0d1iq270klp96xv9dpfdsxi5a2xcdm80jac"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f                      ;no test
@@ -786,11 +772,7 @@ environment with Markdown markup.")
                    #:categories "Office;WordProcessor;"))
                #t))))))
     (inputs
-     `(("pandoc" ,pandoc)
-       ("python-lxml" ,python-lxml)
-       ("python-markdown" ,python-markdown)
-       ("python-pyqt" ,python-pyqt)
-       ("qtsvg" ,qtsvg)))
+     (list pandoc python-lxml python-markdown python-pyqt qtsvg))
     (home-page "http://www.theologeek.ch/manuskript/")
     (synopsis "Tool for writers")
     (description "Manuskript provides a rich environment to help
@@ -859,7 +841,7 @@ in plain text file format.")
            (sha256
             (base32 "1s29p4brmcsc3xsww3gk85dg45f1kk3iykh1air3ij0hymf5dyqy"))))))
     (inputs
-     `(("pcre2" ,pcre2)))
+     (list pcre2))
     (home-page "https://editorconfig.org/")
     (synopsis "EditorConfig core library written in C")
     (description "EditorConfig makes it easy to maintain the correct coding
@@ -872,25 +854,26 @@ editors.")
 (define-public texmacs
   (package
     (name "texmacs")
-    (version "2.1")
+    (version "2.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.texmacs.org/Download/ftp/tmftp/"
                            "source/TeXmacs-" version "-src.tar.gz"))
        (sha256
-        (base32 "1gl6k1bwrk1y7hjyl4xvlqvmk5crl4jvsk8wrfp7ynbdin6n2i48"))))
-    (build-system gnu-build-system)
+        (base32 "0c780vcwppzhb70d3d96md3hra7338d4fv3aj0sm7jx0mj2a334i"))))
+    (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("xdg-utils" ,xdg-utils)))       ;for xdg-icon-resource
+     (list pkg-config xdg-utils))       ;for xdg-icon-resource
     (inputs
-     `(("freetype" ,freetype)
-       ("guile" ,guile-1.8)
-       ("perl" ,perl)
-       ("python" ,python-wrapper)
-       ("qt" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+     (list freetype
+           guile-1.8
+           libjpeg-turbo
+           perl
+           python-wrapper
+           qtbase-5
+           qtsvg
+           sqlite))
     (arguments
      `(#:tests? #f                      ; no check target
        #:phases
@@ -901,13 +884,6 @@ editors.")
                (substitute* "packages/linux/icons.sh"
                  (("/usr/share")
                   (string-append out "/share"))))))
-         (add-after 'install 'install-desktop-file
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; Install desktop file.
-             (let* ((out (assoc-ref outputs "out"))
-                    (apps (string-append out "/share/applications"))
-                    (source "TeXmacs/misc/mime/texmacs.desktop"))
-               (install-file source apps))))
          (add-before 'configure 'gzip-flags
            (lambda _
              (substitute* "Makefile.in"
@@ -925,14 +901,14 @@ Octave.  TeXmacs is completely extensible via Guile.")
 (define-public scintilla
   (package
     (name "scintilla")
-    (version "5.1.1")
+    (version "5.1.4")
     (source
      (origin
        (method url-fetch)
        (uri (let ((v (apply string-append (string-split version #\.))))
               (string-append "https://www.scintilla.org/scintilla" v ".tgz")))
        (sha256
-        (base32 "1d0yjx2wlx4fj5bccxdgfmrr7nzazkw4m08i6h4c0a54sb484yif"))))
+        (base32 "0rd3scfs3dwaj85ds8yrcp1r8z0lifi7qv2464k6n1c995amr0nw"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list "GTK3=1" "CC=gcc" "-Cgtk")
@@ -951,11 +927,10 @@ Octave.  TeXmacs is completely extensible via Guile.")
                (for-each (lambda (f) (install-file f include))
                          (find-files "include/" "."))))))))
     (native-inputs
-     `(("gcc" ,gcc-9)                   ;Code has C++17 requirements
-       ("pkg-config" ,pkg-config)
+     `(("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)))
     (inputs
-     `(("gtk+" ,gtk+)))
+     (list gtk+))
     (home-page "https://www.scintilla.org/")
     (synopsis "Code editor for GTK+")
     (description "Scintilla is a source code editing component for
@@ -971,30 +946,30 @@ and multiple fonts.")
 (define-public geany
   (package
     (name "geany")
-    (version "1.37.1")
+    (version "1.38")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.geany.org/"
                            "geany-" version ".tar.bz2"))
        (sha256
-        (base32 "060sachn33xpx3a609f09y97qq5ky17gvv686zbvrn618ij7bi8q"))))
+        (base32 "0inmmb9wra2w99pfv6p64d66s2zrhafc8drhwmga7gj89mp1gzxb"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("doxygen" ,doxygen)
-       ("glib" ,glib "bin")
-       ("intltool" ,intltool)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("python-docutils" ,python-docutils))) ;for rst2html
+     (list autoconf
+           automake
+           doxygen
+           `(,glib "bin")
+           intltool
+           libtool
+           pkg-config
+           python-docutils)) ;for rst2html
     (inputs
-     `(("gtk+" ,gtk+)
-       ;; FIXME: Geany bundles a 3.X release of Scintilla.  It is not
-       ;; currently possible to replace it with our Scintilla package.
-       ;; ("scintilla" ,scintilla)
-       ))
+     (list gtk+
+           ;; FIXME: Geany bundles a 3.X release of Scintilla.  It is not
+           ;; currently possible to replace it with our Scintilla package.
+           ;; ("scintilla" ,scintilla)
+           ))
     (arguments
      `(#:imported-modules ((guix build glib-or-gtk-build-system)
                            ,@%gnu-build-system-modules)
@@ -1057,7 +1032,7 @@ The basic features of Geany are:
     (native-inputs
      `(("gettext" ,gettext-minimal)))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (home-page "http://www.moria.de/~michael/fe/")
     (synopsis "Small folding editor")
     (description "Fe is a small folding editor.  It folds
@@ -1093,10 +1068,9 @@ card.  It offers:
                 "0sg2f6lxq6cjkpd3dvlxxns82hvq826rjnams5in97pssmknr77g"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)
-       ("texinfo" ,texinfo)))
+     (list perl texinfo))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (arguments
      `(#:tests? #f
        #:make-flags
@@ -1147,7 +1121,7 @@ files.  It was originally developed on the Amiga 3000T.")
        (modify-phases %standard-phases
          (delete 'configure))))         ;no configure script
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (home-page "https://devel.ringlet.net/editors/hexer/")
     (synopsis "Multi buffer editor for binary files with vi-like interface")
     (description "Hexer is a multi-buffer editor for binary files for Unix-like
@@ -1182,11 +1156,8 @@ similar to vi/ex.")
                                (assoc-ref outputs "out")
                                "/share', *path_parts)"))))))))
     (inputs
-     `(("python2-lxml" ,python2-lxml)
-       ("python2-pygtk" ,python2-pygtk)
-       ("python2-simplejson" ,python2-simplejson)
-       ("python2-translate-toolkit" ,python2-translate-toolkit)
-       ("python2-pycurl" ,python2-pycurl)))
+     (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
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index c86cfd7de1..2ab0b05d9b 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -112,8 +112,7 @@ to DOS format and vice versa.")
         (base32 "0m59sd1ca0zw1aydpc3m8sw03nc885knmccqryg7byzmqs585ia6"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("python" ,python)
-       ("python-cython" ,python-cython)))
+     (list python python-cython))
     (home-page "https://github.com/rrthomas/recode")
     (synopsis "Text encoding converter")
     (description "The Recode library converts files between character sets and
@@ -418,7 +417,7 @@ input bits thoroughly but are not suitable for cryptography.")
         (base32 "0dc9fxcdmppbs9s06jvq61zbk552laxps0xyk098gj41697ihd96"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)))
+     (list gettext-minimal))
     (home-page "https://billposer.org/Software/a2b.html")
     (synopsis "Convert between ASCII, hexadecimal and binary representations")
     (description "The two programs are useful for generating test data, for
@@ -476,8 +475,7 @@ useful when it is desired to reformat numbers.
                  (("^iconv ") (string-append iconv "/bin/iconv ")))
              #t))))))
     (inputs
-     `(("ascii2binary" ,ascii2binary)
-       ("libiconv" ,libiconv)))
+     (list ascii2binary libiconv))
     (home-page "https://billposer.org/Software/unidesc.html")
     (synopsis "Find out what is in a Unicode file")
     (description "Useful tools when working with Unicode files when one
@@ -751,15 +749,9 @@ in a portable way.")
              (invoke "autoreconf" "-vif")
              #t)))))
     (inputs
-     `(("ncurses" ,ncurses)
-       ("perl" ,perl)
-       ("readline" ,readline)
-       ("slang" ,slang)))
+     (list ncurses perl readline slang))
     (native-inputs
-     `(("libtool" ,libtool)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list libtool autoconf automake pkg-config))
     (home-page "https://www.lbreyer.com/dbacl.html")
     (synopsis "Bayesian text and email classifier")
     (description
@@ -795,9 +787,7 @@ categories.")
     (build-system gnu-build-system)
     (arguments `(#:tests? #f))  ; FIXME maketest.sh does not work.
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (home-page "https://github.com/williamh/dotconf")
     (synopsis "Configuration file parser library")
     (description
@@ -854,8 +844,8 @@ categories.")
                           (with-directory-excursion
                               (format #f "../drm_tools-~a" ,version)
                             (invoke "sh" "test_all.sh")))))))))
-    (native-inputs `(("which" ,which))) ;for tests
-    (inputs `(("pcre" ,pcre)))
+    (native-inputs (list which)) ;for tests
+    (inputs (list pcre))
     (home-page "http://drmtools.sourceforge.net/")
     (synopsis "Utilities to manipulate text and binary files")
     (description "The drm_tools package contains the following commands:
@@ -930,8 +920,7 @@ Filter, list, or split a tar file.
        #:tests? #f
        #:jar-name "rsyntaxtextarea.jar"))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)))
+     (list java-junit java-hamcrest-core))
     (home-page "https://bobbylight.github.io/RSyntaxTextArea/")
     (synopsis "Syntax highlighting text component for Java Swing")
     (description "RSyntaxTextArea is a syntax highlighting, code folding text
@@ -970,7 +959,7 @@ source code.")
                  (delete-file "bycython.cpp")
                  (invoke "cython" "--cplus" "bycython.pyx")))))))
       (native-inputs
-       `(("python-cython" ,python-cython)))
+       (list python-cython))
       (home-page "https://www.github.com/aflc/editdistance")
       (synopsis "Fast implementation of the edit distance (Levenshtein distance)")
       (description
@@ -1020,8 +1009,7 @@ text.")
                 "06vdikjvpj6qdb41d8wzfnyj44jpnknmlgbhbr1w215420lpb5xj"))))
     (build-system gnu-build-system)
     (inputs
-     `(("unzip" ,unzip)
-       ("perl" ,perl)))
+     (list unzip perl))
     (arguments
      `(#:tests? #f                      ; No tests.
        #:make-flags (list (string-append "BINDIR="
@@ -1133,7 +1121,7 @@ documents into plain text.")
          ;; no configure script
          (delete 'configure))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (home-page "https://github.com/dstosberg/odt2txt/")
     (synopsis "Converter from OpenDocument Text to plain text")
     (description "odt2txt is a command-line tool which extracts the text out
@@ -1268,13 +1256,13 @@ such as ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8, UTF-16 or UTF-32.")
 (define-public python-pandocfilters
   (package
     (name "python-pandocfilters")
-    (version "1.4.3")
+    (version "1.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pandocfilters" version))
        (sha256
-        (base32 "1sq675dg4barb5949xxz4d5gk2ly524hi1p1xgwb3d1l0nsznqxw"))))
+        (base32 "0f3sb8q85dbwliv46cc1yvpy4r00qp4by5x8751kn8vx6c1rarqb"))))
     (build-system python-build-system)
     (home-page "https://github.com/jgm/pandocfilters")
     (synopsis "Python module for writing Pandoc filters")
diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm
index df4b8ac6f5..97de5485ef 100644
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@ -86,7 +86,7 @@ to a file.")
         (base32
          "02kaambsgpjx3zi42j6l11rwms2p35b9hsk4f3kdf979gd3kcqg8"))))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (build-system python-build-system)
     (home-page "https://github.com/wroberts/pytimeparse")
     (synopsis "Time expression parser")
@@ -110,7 +110,7 @@ expressions.")
     ;; repository lacks a setup.py!  How to build from git?
     (arguments '(#:tests? #f))
     (propagated-inputs
-     `(("python-cleo" ,python-cleo)))
+     (list python-cleo))
     (home-page "https://github.com/sdispater/pytzdata")
     (synopsis "Timezone database for Python")
     (description
@@ -159,8 +159,7 @@ saving time.  Almost all of the Olson timezones are supported.")
     ;; lacks a setup.py!
     (arguments '(#:tests? #f))
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-pytzdata" ,python-pytzdata)))
+     (list python-dateutil python-pytzdata))
     (home-page "https://github.com/sdispater/pendulum")
     (synopsis "Alternate API for Python datetimes")
     (description "Pendulum is a drop-in replacement for the standard
@@ -172,14 +171,14 @@ Pendulum instances.")
 (define-public python-dateutil
   (package
     (name "python-dateutil")
-    (version "2.8.1")
+    (version "2.8.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-dateutil" version))
        (sha256
         (base32
-         "0g42w7k5007iv9dam6gnja2ry8ydwirh99mgdll35s12pyfzxsvk"))))
+         "11iy7m4bp2lgfkcl0r6xzf34bvk7ppjmsyn2ygfikbi72v6cl8q1"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -195,11 +194,9 @@ Pendulum instances.")
 
                       (invoke "pytest" "-vv"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-pytest python-pytest-cov python-setuptools-scm))
     (propagated-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://dateutil.readthedocs.io/en/stable/")
     (synopsis "Extensions to the standard datetime module")
     (description
@@ -226,12 +223,9 @@ datetime module, available in Python 2.3+.")
          "0jxqkjks7z9dn222cqgvskp4wr6d92aglinxq7pd2w4mzdc7r09x"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-pyicu" ,python-pyicu)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-nose python-pyicu python-pytest python-pytest-runner))
     (propagated-inputs
-     `(("python-future" ,python-future)))
+     (list python-future))
     (home-page "https://github.com/bear/parsedatetime/")
     (synopsis "Parse human-readable date/time text")
     (description
@@ -260,7 +254,7 @@ datetime module, available in Python 2.3+.")
     ;; Pytz should only be required for Python 2, but the test suite fails
     ;; without it.
     (native-inputs
-     `(("python-pytz" ,python-pytz)))
+     (list python-pytz))
     (home-page "https://github.com/closeio/ciso8601")
     (synopsis
      "Fast ISO8601 date time parser")
@@ -295,9 +289,9 @@ Python datetime objects.")
                (("def test_fail") "def _test_fail"))
              #t)))))
     (propagated-inputs
-     `(("python-pytz" ,python-pytz)))
+     (list python-pytz))
     (native-inputs
-     `(("python-mock" ,python-mock)))
+     (list python-mock))
     (home-page "https://github.com/regebro/tzlocal")
     (synopsis "Local timezone information for Python")
     (description
@@ -320,7 +314,7 @@ under several distributions that's hard or impossible to figure out.")
          "1n7jkz68kk5pwni540pr5zdh99bf6ywydk1p5pdrqisrawylldif"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-six" ,python-six)))
+     (list python-six))
     (home-page "https://github.com/gweis/isodate/")
     (synopsis "Python date parser and formatter")
     (description
@@ -349,7 +343,7 @@ ISO 8601 dates, time and duration.")
                     (lambda _
                       (invoke "pytest" "-vv" "iso8601"))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (home-page "https://bitbucket.org/micktwomey/pyiso8601")
     (synopsis "Module to parse ISO 8601 dates")
     (description
@@ -396,9 +390,9 @@ value (in fractional seconds) of a clock which never goes backwards.")
          "06jv7ar7lpvvk0dixzwdr3wgm0g1lipxs429s2z7knwwa7hwpf41"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pytz" ,python-pytz)))
+     (list python-pytz))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://github.com/kurtraschke/pyRFC3339")
     (synopsis "Python timestamp library")
     (description "Python library for generating and parsing RFC 3339-compliant
@@ -430,15 +424,15 @@ timestamps.")
                        ;; Remove when python-dateutil > 2.8.1.
                        "-k" "not test_parse_tz_name_zzz")))))))
     (native-inputs
-     `(;; For testing
-       ("python-chai" ,python-chai)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-simplejson" ,python-simplejson)))
+     (list ;; For testing
+           python-chai
+           python-pytest
+           python-pytest-cov
+           python-pytest-mock
+           python-pytz
+           python-simplejson))
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-pytz" ,python-pytz)))
+     (list python-dateutil))
     (home-page "https://github.com/arrow-py/arrow")
     (synopsis "Dates and times for Python")
     (description
@@ -450,17 +444,15 @@ datetime type.")
 (define-public python-aniso8601
   (package
     (name "python-aniso8601")
-    (version "1.3.0")
+    (version "9.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "aniso8601" version))
        (sha256
         (base32
-         "1waj54iv3n3lw1fapbz8a93yjgrybgpc86wif5baxdh1arpj9df3"))))
+         "0wxry6riyqajl02mkad8g2q98sx5jr13zndj3fandpzfcxv13qvj"))))
     (build-system python-build-system)
-    (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)))
     (home-page "https://bitbucket.org/nielsenb/aniso8601")
     (synopsis "Python library for parsing ISO 8601 strings")
     (description
@@ -473,6 +465,8 @@ datetime type.")
 (define-public datefudge
   (package
     (name "datefudge")
+    ;; XXX When updating this package, make sure to do something about the
+    ;; archive.org backup URI.
     (version "1.23")
     (source (origin
               ;; Source code is available from
@@ -480,9 +474,17 @@ datetime type.")
               ;; for bootstrapping reasons, we do not rely on 'git-fetch' here
               ;; (since Git -> GnuTLS -> datefudge).
               (method url-fetch)
-              (uri (string-append
-                    "mirror://debian/pool/main/d/datefudge/datefudge_"
-                    version ".tar.xz"))
+              (uri (list
+                     ;; For some reason this tarball was removed from Debian's
+                     ;; servers. Remove this archive.org URL when updating
+                     ;; datefudge, or add the new tarball to archive.org and
+                     ;; update the URL.
+                     (string-append
+                       "https://archive.org/download/datefudge_" version
+                       ".tar_202112/" "datefudge_" version ".tar.xz")
+                     (string-append
+                      "mirror://debian/pool/main/d/datefudge/datefudge_"
+                      version ".tar.xz")))
               (sha256
                (base32
                 "0ifnlb0mc8qc2kb5042pbz0ns6rwcb7201di8wyrsphl0yhnhxiv"))
@@ -503,7 +505,7 @@ datetime type.")
              #t))
          (delete 'configure))))
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "https://salsa.debian.org/debian/datefudge")
     (synopsis "Pretend the system date is different")
     (description
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index c73559cb73..6bf9c05c39 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
+;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,6 +58,7 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages dns)
   #:use-module (gnu packages gawk)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages hurd)
   #:use-module (gnu packages libbsd)
@@ -93,7 +95,7 @@
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--disable-static")))
-    (native-inputs `(("perl" ,perl)))
+    (native-inputs (list perl))
     (home-page "https://www.gnu.org/software/libtasn1/")
     (synopsis "ASN.1 library")
     (description
@@ -116,7 +118,7 @@ specifications.")
         "1fc64g45ykmv73kdndr4zdm4wxhimhrir4rxnygxvwkych5l81w0"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "https://lionet.info/asn1c")
     (synopsis "ASN.1 to C compiler")
     (description "The ASN.1 to C compiler takes ASN.1 module
@@ -143,13 +145,33 @@ in intelligent transportation networks.")
        (base32 "1dn6br4v033d3gp2max9lsr3y4q0nj6iyr1yq3kzi8ym7lal13wa"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(,@(if (hurd-target?)
+             `(("autoconf" ,autoconf)
+               ("automake" ,automake)
+               ("gettext" ,gettext-minimal) ;for autopoint
+               ("libtool" ,libtool))
+             '())
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("libffi" ,libffi)
+       ,@(if (hurd-target?)
+             `(("libbsd" ,libbsd)
+               ("hurd-patch" ,(search-patch "p11-kit-hurd.patch")))
+             '())
        ("libtasn1" ,libtasn1)))
     (arguments
      `(#:configure-flags '("--without-trust-paths")
        #:phases (modify-phases %standard-phases
+                  ,@(if (hurd-target?)
+                        '((add-after 'unpack 'apply-hurd-patch
+                            (lambda* (#:key inputs #:allow-other-keys)
+                              (let ((patch (assoc-ref inputs "hurd-patch")))
+                                (invoke "patch" "-p1" "--batch" "-i"
+                                        patch))))
+                          (replace 'bootstrap
+                            (lambda _
+                              (invoke "autoreconf" "-fiv"))))
+                        '())
                   (add-before 'check 'prepare-tests
                     (lambda _
                       ;; "test-runtime" expects XDG_RUNTIME_DIR to be set up
@@ -159,7 +181,7 @@ in intelligent transportation networks.")
                       (substitute* "Makefile"
                         (("test-runtime\\$\\(EXEEXT\\)") ""))
                       #t)))))
-    (home-page "https://p11-glue.freedesktop.org/p11-kit.html")
+    (home-page "https://p11-glue.github.io/p11-glue/p11-kit.html")
     (synopsis "PKCS#11 library")
     (description
      "p11-kit provides a way to load and enumerate PKCS#11 modules.  It
@@ -169,6 +191,24 @@ coordinating the use of PKCS#11 by different components or libraries
 living in the same process.")
     (license license:bsd-3)))
 
+(define-public p11-kit-next
+  (package
+    (inherit p11-kit)
+    (version "0.24.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/p11-glue/p11-kit/releases/"
+                           "download/" version "/p11-kit-" version ".tar.xz"))
+       (sha256
+        (base32 "11f6saclxsclc1f3lbavzw8kikws4cr3mfd1avly8dgnhh2i9rl1"))))
+    (arguments
+     ;; Use the default certificates so that users such as flatpak find them.
+     ;; See <https://issues.guix.gnu.org/49957>.
+     (substitute-keyword-arguments (package-arguments p11-kit)
+       ((#:configure-flags flags ''())
+        ''("--with-trust-paths=/etc/ssl/certs/ca-certificates.crt"))))))
+
 (define-public gnutls
   (package
     (name "gnutls")
@@ -264,7 +304,7 @@ living in the same process.")
              `(("datefudge" ,datefudge)))         ;tests rely on 'datefudge'
        ("util-linux" ,util-linux)))               ;one test needs 'setsid'
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (propagated-inputs
      ;; These are all in the 'Requires.private' field of gnutls.pc.
      `(("libtasn1" ,libtasn1)
@@ -311,9 +351,6 @@ required structures.")
               ,@(alist-delete "guile"
                               (package-inputs gnutls))))))
 
-(define-public guile3.0-gnutls
-  (deprecated-package "guile3.0-gnutls" gnutls))
-
 (define (target->openssl-target target)
   "Return the value to set CONFIGURE_TARGET_ARCH to when cross-compiling
 OpenSSL for TARGET."
@@ -337,13 +374,15 @@ OpenSSL for TARGET."
         ((string-prefix? "powerpc64" target)
          "linux-ppc64")
         ((string-prefix? "powerpc" target)
-         "linux-ppc")))
+         "linux-ppc")
+        ((string-prefix? "riscv64" target)
+         ;; linux64-riscv64 isn't recognized until 3.0.0.
+         "linux-generic64")))
 
 (define-public openssl
   (package
     (name "openssl")
-    (version "1.1.1k")
-    (replacement openssl-1.1.1l)
+    (version "1.1.1l")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "https://www.openssl.org/source/openssl-"
@@ -356,12 +395,12 @@ OpenSSL for TARGET."
               (patches (search-patches "openssl-1.1-c-rehash-in.patch"))
               (sha256
                (base32
-                "1rdfzcrxy9y38wqdw5942vmdax9hjhgrprzxm42csal7p5shhal9"))))
+                "1lbblxps2fhmz7bqh058iywh5wxfignbfx1s1kz2fj63b5g3wyhb"))))
     (build-system gnu-build-system)
     (outputs '("out"
-               "doc"         ;6.8 MiB of man3 pages and full HTML documentation
-               "static"))    ;6.4 MiB of .a files
-    (native-inputs `(("perl" ,perl)))
+               "doc"        ;6.8 MiB of man3 pages and full HTML documentation
+               "static"))   ;6.4 MiB of .a files
+    (native-inputs (list perl))
     (arguments
      `(#:parallel-tests? #f
        #:test-target "test"
@@ -383,12 +422,13 @@ OpenSSL for TARGET."
                 #~())
          ;; This test seems to be dependant on kernel features.
          ;; https://github.com/openssl/openssl/issues/12242
-         #$@(if (target-arm?)
-              #~((replace 'check
-                   (lambda* (#:key tests? test-target #:allow-other-keys)
-                     (when tests?
-                       (invoke "make" "TESTS=-test_afalg" test-target)))))
-              #~())
+         #$@(if (or (target-arm?)
+                    (target-riscv64?))
+                #~((replace 'check
+                     (lambda* (#:key tests? test-target #:allow-other-keys)
+                       (when tests?
+                         (invoke "make" "TESTS=-test_afalg" test-target)))))
+                #~())
          (replace 'configure
            (lambda* (#:key configure-flags #:allow-other-keys)
              (let* ((out #$output)
@@ -402,7 +442,7 @@ OpenSSL for TARGET."
                 invoke #$@(if (%current-target-system)
                               #~("./Configure")
                               #~("./config"))
-                "shared"    ;build shared libraries
+                "shared"                ;build shared libraries
                 "--libdir=lib"
 
                 ;; The default for this catch-all directory is
@@ -455,12 +495,12 @@ OpenSSL for TARGET."
     (native-search-paths
      (list (search-path-specification
             (variable "SSL_CERT_DIR")
-            (separator #f)                        ;single entry
+            (separator #f)              ;single entry
             (files '("etc/ssl/certs")))
            (search-path-specification
             (variable "SSL_CERT_FILE")
             (file-type 'regular)
-            (separator #f)                        ;single entry
+            (separator #f)              ;single entry
             (files '("etc/ssl/certs/ca-certificates.crt")))))
     (synopsis "SSL/TLS implementation")
     (description
@@ -468,25 +508,6 @@ OpenSSL for TARGET."
     (license license:openssl)
     (home-page "https://www.openssl.org/")))
 
-;; Replacement package to fix multiple CVEs.
-(define openssl-1.1.1l
-  (package
-    (inherit openssl)
-    (version "1.1.1l")
-    (source (origin
-              (method url-fetch)
-              (uri (list (string-append "https://www.openssl.org/source/openssl-"
-                                        version ".tar.gz")
-                         (string-append "ftp://ftp.openssl.org/source/"
-                                        "openssl-" version ".tar.gz")
-                         (string-append "ftp://ftp.openssl.org/source/old/"
-                                        (string-trim-right version char-set:letter)
-                                        "/openssl-" version ".tar.gz")))
-              (patches (search-patches "openssl-1.1-c-rehash-in.patch"))
-              (sha256
-               (base32
-                "1lbblxps2fhmz7bqh058iywh5wxfignbfx1s1kz2fj63b5g3wyhb"))))))
-
 ;; We will not add any new uses of this package. If you add new code that uses
 ;; this package, your change will be reverted!
 ;;
@@ -638,13 +659,13 @@ netcat implementation that supports TLS.")
   (package
     (name "python-acme")
     ;; Remember to update the hash of certbot when updating python-acme.
-    (version "1.17.0")
+    (version "1.18.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "acme" version))
               (sha256
                (base32
-                "03ij1wp7jwvppv70qbjkgdg7w824yh6j4gfb68jj20wicx08xx1a"))))
+                "1bv2swaqmzpcx2nq1nbhrc6b825d5sxkdv0al972sjfcpcqn1q4s"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -661,21 +682,21 @@ netcat implementation that supports TLS.")
                (install-file "docs/_build/man/acme-python.1" man)
                #t))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ;; For documentation
-       ("python-sphinx" ,python-sphinx)
-       ("python-sphinxcontrib-programoutput" ,python-sphinxcontrib-programoutput)
-       ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
-       ("texinfo" ,texinfo)))
+     (list python-pytest
+           ;; For documentation
+           python-sphinx
+           python-sphinxcontrib-programoutput
+           python-sphinx-rtd-theme
+           texinfo))
     (propagated-inputs
-     `(("python-josepy" ,python-josepy)
-       ("python-requests" ,python-requests)
-       ("python-requests-toolbelt" ,python-requests-toolbelt)
-       ("python-pytz" ,python-pytz)
-       ("python-pyrfc3339" ,python-pyrfc3339)
-       ("python-pyasn1" ,python-pyasn1)
-       ("python-cryptography" ,python-cryptography)
-       ("python-pyopenssl" ,python-pyopenssl)))
+     (list python-josepy
+           python-requests
+           python-requests-toolbelt
+           python-pytz
+           python-pyrfc3339
+           python-pyasn1
+           python-cryptography
+           python-pyopenssl))
     (home-page "https://github.com/certbot/certbot")
     (synopsis "ACME protocol implementation in Python")
     (description "ACME protocol implementation in Python")
@@ -692,7 +713,7 @@ netcat implementation that supports TLS.")
               (uri (pypi-uri "certbot" version))
               (sha256
                (base32
-                "0wyipx6q78fmvngf1i6g50s01qpjqh07qlk1b5vyxwgl3080lhgg"))))
+                "0yr8sxfg5zspal04l9lpd9xis6gp8il20bhka54xr9bb4hc6xrgk"))))
     (build-system python-build-system)
     (arguments
      `(,@(substitute-keyword-arguments (package-arguments python-acme)
@@ -709,28 +730,28 @@ netcat implementation that supports TLS.")
                     (install-file "docs/_build/man/certbot.7" man7)
                     #t))))))))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pytest" ,python-pytest)
-       ;; For documentation
-       ("python-sphinx" ,python-sphinx)
-       ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
-       ("python-sphinx-repoze-autointerface" ,python-sphinx-repoze-autointerface)
-       ("python-sphinxcontrib-programoutput" ,python-sphinxcontrib-programoutput)
-       ("texinfo" ,texinfo)))
+     (list python-mock
+           python-pytest
+           ;; For documentation
+           python-sphinx
+           python-sphinx-rtd-theme
+           python-sphinx-repoze-autointerface
+           python-sphinxcontrib-programoutput
+           texinfo))
     (propagated-inputs
-     `(("python-acme" ,python-acme)
-       ("python-cryptography" ,python-cryptography)
-       ("python-zope-interface" ,python-zope-interface)
-       ("python-pyrfc3339" ,python-pyrfc3339)
-       ("python-pyopenssl" ,python-pyopenssl)
-       ("python-configobj" ,python-configobj)
-       ("python-configargparse" ,python-configargparse)
-       ("python-distro" ,python-distro)
-       ("python-zope-component" ,python-zope-component)
-       ("python-parsedatetime" ,python-parsedatetime)
-       ("python-psutil" ,python-psutil)
-       ("python-requests" ,python-requests)
-       ("python-pytz" ,python-pytz)))
+     (list python-acme
+           python-cryptography
+           python-zope-interface
+           python-pyrfc3339
+           python-pyopenssl
+           python-configobj
+           python-configargparse
+           python-distro
+           python-zope-component
+           python-parsedatetime
+           python-psutil
+           python-requests
+           python-pytz))
     (synopsis "Let's Encrypt client by the Electronic Frontier Foundation")
     (description "Certbot automatically receives and installs X.509 certificates
 to enable Transport Layer Security (TLS) on servers.  It interoperates with the
@@ -756,7 +777,7 @@ certificates for free.")
                (base32
                 "1pfgh4h3szcpvqlcimc60pjbk9zwls99x5863sva0wc47i4dl010"))))
     (build-system perl-build-system)
-    (inputs `(("openssl" ,openssl)))
+    (inputs (list openssl))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -791,11 +812,9 @@ servers or clients for more complicated applications.")
           "0djl5i6kibl7862b6ih29q8dhg5zpwzq77q9j8hp6xngshx40ws1"))))
   (build-system perl-build-system)
   (native-inputs
-   `(("perl-crypt-openssl-guess" ,perl-crypt-openssl-guess)))
+   (list perl-crypt-openssl-guess))
   (inputs
-    `(("perl-crypt-openssl-bignum" ,perl-crypt-openssl-bignum)
-      ("perl-crypt-openssl-random" ,perl-crypt-openssl-random)
-      ("openssl" ,openssl)))
+    (list perl-crypt-openssl-bignum perl-crypt-openssl-random openssl))
   (arguments perl-crypt-arguments)
   (home-page
     "https://metacpan.org/release/Crypt-OpenSSL-RSA")
@@ -830,7 +849,7 @@ OpenSSL libraries).")
         (base32
           "1p22znbajq91lbk2k3yg12ig7hy5b4vy8igxwqkmbm4nhgxp4ki3"))))
   (build-system perl-build-system)
-  (inputs `(("openssl" ,openssl)))
+  (inputs (list openssl))
   (arguments perl-crypt-arguments)
   (home-page
     "https://metacpan.org/release/Crypt-OpenSSL-Bignum")
@@ -878,9 +897,9 @@ correct OpenSSL include path.  It is intended for use in your
         (base32 "1x6ffps8q7mnawmcfq740llzy7i10g3319vap0wiw4d33fm6z1zh"))))
   (build-system perl-build-system)
   (native-inputs
-   `(("perl-crypt-openssl-guess" ,perl-crypt-openssl-guess)))
+   (list perl-crypt-openssl-guess))
   (inputs
-   `(("openssl" ,openssl)))
+   (list openssl))
   (arguments perl-crypt-arguments)
   (home-page
     "https://metacpan.org/release/Crypt-OpenSSL-Random")
@@ -918,10 +937,9 @@ number generator")
                #t)))
          (delete 'configure)))) ; no './configure' script
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libbsd" ,libbsd)
-       ("libressl" ,libressl)))
+     (list libbsd libressl))
     (synopsis "Let's Encrypt client by the OpenBSD project")
     (description "acme-client is a Let's Encrypt client implemented in C.  It
 uses a modular design, and attempts to secure itself by dropping privileges and
@@ -970,8 +988,7 @@ then ported to the GNU / Linux environment.")
              (for-each make-file-writable (find-files "."))
              #t)))))
     (native-inputs
-     `(("perl" ,perl)
-       ("python" ,python)))
+     (list perl python))
     (synopsis "Small TLS library")
     (description
      "@code{mbed TLS}, formerly known as PolarSSL, makes it trivially easy
@@ -1067,17 +1084,16 @@ coding footprint.")
                               "sed"))))))
            #t))))
     (inputs
-     `(("bash" ,bash)
-       ("coreutils" ,coreutils)
-       ("curl" ,curl)
-       ("diffutils" ,diffutils)
-       ("gawk" ,gawk)
-       ("grep" ,grep)
-       ("openssl" ,openssl)
-       ("sed" ,sed)))
+     (list bash
+           coreutils
+           curl
+           diffutils
+           gawk
+           grep
+           openssl
+           sed))
     (native-inputs
-     `(("gzip" ,gzip)
-       ("tar" ,tar)))
+     (list gzip tar))
     ;; The following definition is copied from the cURL package to prevent a
     ;; cycle between the curl and tls modules.
     (native-search-paths
@@ -1087,10 +1103,10 @@ coding footprint.")
             (separator #f)
             (files '("etc/ssl/certs/ca-certificates.crt")))))
     (home-page "https://dehydrated.io/")
-    (synopsis "Let's Encrypt/ACME client implemented as a shell script")
-    (description "Dehydrated is a client for signing certificates with an
-ACME-server (currently only provided by Let's Encrypt) implemented as a
-relatively simple Bash script.")
+    (synopsis "ACME client implemented as a shell script")
+    (description "Dehydrated is a client for obtaining certificates from an
+ACME server (such as Let's Encrypt) implemented as a relatively simple Bash
+script.")
     (license license:expat)))
 
 (define-public go-github-com-certifi-gocertifi
@@ -1120,22 +1136,21 @@ derived from Mozilla's collection.")
 (define-public s2n
   (package
     (name "s2n")
-    (version "1.0.10")
+    ; Update only when updating aws-crt-cpp.
+    (version "1.1.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url (string-append "https://github.com/awslabs/" name))
+                    (url "https://github.com/aws/s2n-tls")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0ampvh2n235hhd9nabgjjvja7d5r5kj45q56ass1k8g52a6xg0jq"))))
+                "14dhdddlph36nshdkh0v33718hxjx5vxqxmkw7707393q0qrgipw"))))
     (build-system cmake-build-system)
     (arguments
-     '(#:tests? #f                      ; tests fail to build for static library
-       #:configure-flags
-       '("-DBUILD_TESTING=OFF"
-         "-DBUILD_SHARED_LIBS=ON")))
+     '(#:configure-flags
+       '("-DBUILD_SHARED_LIBS=ON")))
     (propagated-inputs
      `(("openssl" ,openssl)
        ("openssl:static" ,openssl "static")))
@@ -1149,13 +1164,13 @@ As it can be difficult to keep track of which encryption algorithms and
 protocols are best to use, s2n-tls features a simple API to use the latest
 default set of preferences.  Remaining on a specific version for backwards
 compatibility is also supported.")
-    (home-page "https://github.com/awslabs/s2n")
+    (home-page "https://github.com/aws/s2n-tls")
     (license license:asl2.0)))
 
 (define-public wolfssl
   (package
     (name "wolfssl")
-    (version "4.8.0")
+    (version "4.8.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1164,15 +1179,13 @@ compatibility is also supported.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1w9gs9cq2yhj5s3diz3x1l15pgrc1pbm00jccizvcjyibmwyyf2h"))))
+                "0w5pd40j6h4j2f0b7c2n1n979y9qk8aln3ss2gb0jfsid1hrmx5k"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
        '("--enable-reproducible-build")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (synopsis "SSL/TLS implementation")
     (description "The wolfSSL embedded SSL library (formerly CyaSSL) is an
 SSL/TLS library written in ANSI C and targeted for embedded, RTOS, and
@@ -1182,3 +1195,30 @@ and DTLS 1.2, is up to 20 times smaller than OpenSSL, and offers progressive
 ciphers such as ChaCha20, Curve25519, NTRU, and Blake2b.")
     (home-page "https://www.wolfssl.com/")
     (license license:gpl2+))) ; Audit
+
+(define-public aws-lc
+  (let ((commit "d0a5455417d80e68581e197d95720c3fb25e3926")
+        (revision "0"))
+    (package
+      (name "aws-lc")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url (string-append "https://github.com/awslabs/" name))
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1ysj3x1f2lcdvwzyb9x3waykz1j7r21viv5z5vgc0ja9xv7znm9g"))))
+      (build-system cmake-build-system)
+      (arguments
+       '(#:tests? #f ; re-enable but with go and perl dependencies
+         #:configure-flags
+         '("-DBUILD_SHARED_LIBS=ON")))
+      (synopsis "General purpose cryptographic library")
+      (description "AWS libcrypto (aws-lc) contains portable C implementations
+of algorithms needed for TLS and common applications, and includes optimized
+assembly versions for x86 and ARM.")
+      (home-page "https://github.com/awslabs/aws-lc")
+      (license license:asl2.0))))
diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm
index e0aa2b3751..76f80a4da6 100644
--- a/gnu/packages/tmux.scm
+++ b/gnu/packages/tmux.scm
@@ -55,8 +55,7 @@
                "0pyhmipg6vxvxjk7mr410007qk98rh5q0mljvkdaisibz2j565am"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libevent" ,libevent)
-       ("ncurses" ,ncurses)))
+     (list libevent ncurses))
     (home-page "https://github.com/tmux/tmux/wiki")
     (synopsis "Terminal multiplexer")
     (description
@@ -162,10 +161,9 @@ windows.")
         (base32 "068vy92f2668vrjvd3laqvxd48cmna66f2msdmwk2hm9qxklgf51"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("procps" ,procps)))             ;tests need top
+     (list procps))             ;tests need top
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("tmux" ,tmux)))
+     (list python-pytest tmux))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -212,11 +210,9 @@ with live tmux sessions.")
                       (invoke "tmux" "new-session" "-d")
                       (invoke "make" "test"))))))
     (propagated-inputs
-     `(("python-libtmux" ,python-libtmux)))
+     (list python-libtmux))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-sphinx" ,python-sphinx)
-       ("tmux" ,tmux)))
+     (list python-coverage python-sphinx tmux))
     (home-page "https://github.com/edouardklein/daemux")
     (synopsis "Start, stop, restart and check daemons via tmux")
     (description
@@ -240,7 +236,7 @@ them, etc., by attaching to the corresponding pane in tmux.")
                 "09fmnn1q76r1l4cv7clmfr3j9cjmd053kq238d0qj2i486948ivv"))))
     (build-system trivial-build-system)
     (inputs
-     `(("bash" ,bash)))
+     (list bash))
     (arguments
      `(#:modules ((guix build utils))
        #:builder
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index 972160fb8e..c1d5c1479b 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
@@ -57,14 +57,15 @@
 (define-public tor
   (package
     (name "tor")
-    (version "0.4.6.7")
+    (version "0.4.6.9")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://dist.torproject.org/tor-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "16hga7195va8v0x062dc05nbz4sm3dscifcqpl8235dj47hmqrpz"))))
+               "1ad99k4wysxrnlaprv7brxr2nc0h5zdnrh0rma10pqlck2037sf7"))
+             (patches (search-patches "tor-sandbox-i686.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -75,18 +76,28 @@
          (add-before 'check 'skip-practracker
            ;; This is a style linter.  It doesn't get to throw fatal errors.
            (lambda _
-             (setenv "TOR_DISABLE_PRACTRACKER" "set")
-             #t)))))
+             (setenv "TOR_DISABLE_PRACTRACKER" "set")))
+         ,@(if (or (target-aarch64?)
+                   (target-ppc32?))
+             ;; Work around upstream issue relating to sandboxing and glibc-2.33.
+             ;; This is similar to the issue the tor-sandbox-i686 patch fixes
+             ;; but for other architectures.
+             ;; https://gitlab.torproject.org/tpo/core/tor/-/issues/40381
+             ;; https://gitlab.torproject.org/tpo/core/tor/-/merge_requests/446
+             `((add-before 'check 'adjust-test-suite
+                 (lambda _
+                   (substitute* "src/test/test_include.sh"
+                     ((".*Sandbox 1.*") "")))))
+             '()))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)))             ; for tests
+     (list pkg-config python))             ; for tests
     (inputs
-     `(("libevent" ,libevent)
-       ("libseccomp" ,libseccomp)
-       ("openssl" ,openssl)
-       ("xz" ,xz)
-       ("zlib" ,zlib)
-       ("zstd" ,zstd "lib")))
+     (list libevent
+           libseccomp
+           openssl
+           xz
+           zlib
+           `(,zstd "lib")))
     (home-page "https://www.torproject.org/")
     (synopsis "Anonymous network router to improve privacy on the Internet")
     (description
@@ -143,7 +154,7 @@ This package only provides a client to the Tor Network.")))
                 "08inrkap29gikb6sdmb58z43hw4abwrfw7ny40c4xzdkss0vkwdr"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libcap" ,libcap)))
+     (list libcap))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-after 'build 'absolutize
@@ -165,7 +176,7 @@ rejects UDP traffic from the application you're using.")
 (define-public privoxy
   (package
     (name "privoxy")
-    (version "3.0.32")
+    (version "3.0.33")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/ijbswa/Sources/"
@@ -173,7 +184,7 @@ rejects UDP traffic from the application you're using.")
                                  version "-stable-src.tar.gz"))
              (sha256
               (base32
-               "1mzfxwnvnf1jkvfcrsivm6mjwdzjrc3h89qziz0mwi32ih0f87f6"))))
+               "1bhzi2ddv3g1z9h7lhxy7p0wibqg4m5nh46ikldmcqdc1pkh9c84"))))
     (build-system gnu-build-system)
     (arguments
      '(;; The default 'sysconfdir' is $out/etc; change that to
@@ -202,17 +213,11 @@ rejects UDP traffic from the application you're using.")
                ;; non-root users using it as is.
                (substitute* "config"
                  (("^logdir") "#logdir")
-                 (("^logfile") "#logfile")))
-             #t)))))
+                 (("^logfile") "#logfile"))))))))
     (inputs
-     `(("brotli" ,brotli)
-       ("openssl" ,openssl)
-       ("pcre" ,pcre)
-       ("w3m" ,w3m)
-       ("zlib" ,zlib)))
+     (list brotli openssl pcre w3m zlib))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (home-page "https://www.privoxy.org")
     (synopsis "Web proxy with advanced filtering capabilities for enhancing privacy")
     (description
@@ -227,7 +232,7 @@ networks.")
 (define-public onionshare-cli
   (package
     (name "onionshare-cli")
-    (version "2.3.2")
+    (version "2.4")
     (source
       (origin
         (method git-fetch)
@@ -236,26 +241,27 @@ networks.")
               (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "1qk0zvbaws9md1lmi0al1jc8v86l65nf7n3w1s36iwsfzazc6clv"))))
+         (base32 "157ryxm4p1q7b3nj32v9fziw1li6s6s203b7ll80js14cbp6dj9d"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (inputs
      ;; TODO: obfs4proxy
-     `(("python-click" ,python-click)
-       ("python-colorama" ,python-colorama)
-       ("python-eventlet" ,python-eventlet)
-       ("python-flask" ,python-flask)
-       ("python-flask-httpauth" ,python-flask-httpauth)
-       ("python-flask-socketio" ,python-flask-socketio)
-       ("python-psutil" ,python-psutil)
-       ("python-pycryptodome" ,python-pycryptodome)
-       ("python-pysocks" ,python-pysocks)
-       ("python-requests" ,python-requests)
-       ("python-stem" ,python-stem)
-       ("python-unidecode" ,python-unidecode)
-       ("python-urllib3" ,python-urllib3)
-       ("tor" ,tor)))
+     (list python-click
+           python-colorama
+           python-eventlet
+           python-flask
+           python-flask-httpauth
+           python-flask-socketio
+           python-pynacl
+           python-psutil
+           python-pycryptodome
+           python-pysocks
+           python-requests
+           python-stem
+           python-unidecode
+           python-urllib3
+           tor))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -265,18 +271,21 @@ networks.")
                                 "desktop/src/onionshare/gui_common.py")
                (("shutil\\.which\\(\\\"tor\\\"\\)")
                 (string-append "\"" (which "tor") "\"")))
-             #t))
+             (substitute* "cli/tests/test_cli_common.py"
+               (("/usr/share/tor")
+                (string-append (assoc-ref inputs "tor") "/share/tor")))))
          (add-before 'build 'change-directory
-           (lambda _ (chdir "cli") #t))
+           (lambda _ (chdir "cli")))
          (replace 'check
-           (lambda _
-             (setenv "HOME" "/tmp")
-             ;; Greendns is not needed for testing, and if eventlet tries to
-             ;; load it, an OSError is thrown when getprotobyname is called.
-             ;; Thankfully there is an environment variable to disable the
-             ;; greendns import, so use it:
-             (setenv "EVENTLET_NO_GREENDNS" "yes")
-             (invoke "pytest" "-v" "./tests"))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "HOME" "/tmp")
+               ;; Greendns is not needed for testing, and if eventlet tries to
+               ;; load it, an OSError is thrown when getprotobyname is called.
+               ;; Thankfully there is an environment variable to disable the
+               ;; greendns import, so use it:
+               (setenv "EVENTLET_NO_GREENDNS" "yes")
+               (invoke "pytest" "-v" "./tests")))))))
     (home-page "https://onionshare.org/")
     (synopsis "Securely and anonymously share files")
     (description "OnionShare lets you securely and anonymously share files,
@@ -295,7 +304,7 @@ OnionShare.")
       ((#:phases phases)
        `(modify-phases ,phases
          (replace 'change-directory
-           (lambda _ (chdir "desktop/src") #t))
+           (lambda _ (chdir "desktop/src")))
          (add-after 'unpack 'patch-tests
            (lambda _
              ;; Disable tests that require starting servers, which will hang
@@ -335,22 +344,19 @@ OnionShare.")
                              (display line out)
                              (loop))))))))))
          (replace 'check
-           (lambda _
-             ;; Some tests need a writable homedir:
-             (setenv "HOME" "/tmp")
-             ;; Ensure installed modules can be found:
-             (setenv "PYTHONPATH"
-                     (string-append %output "/lib/python"
-                                    ,(version-major+minor (package-version python))
-                                    "/site-packages:"
-                                    (getenv "PYTHONPATH")))
-             ;; Avoid `getprotobyname` issues:
-             (setenv "EVENTLET_NO_GREENDNS" "yes")
-             ;; Make Qt render "offscreen":
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             ;; Must be run from "desktop" dir:
-             (chdir "..")
-             (invoke "./tests/run.sh")))
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               ;; Some tests need a writable homedir:
+               (setenv "HOME" "/tmp")
+               ;; Ensure installed modules can be found:
+               (add-installed-pythonpath inputs outputs)
+               ;; Avoid `getprotobyname` issues:
+               (setenv "EVENTLET_NO_GREENDNS" "yes")
+               ;; Make Qt render "offscreen":
+               (setenv "QT_QPA_PLATFORM" "offscreen")
+               ;; Must be run from "desktop" dir:
+               (with-directory-excursion ".."
+                 (invoke "./tests/run.sh")))))
          (add-after 'install 'install-data
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -358,21 +364,21 @@ OnionShare.")
                (install-file "org.onionshare.OnionShare.svg"
                              (string-append share "/icons/hicolor/scalable/apps"))
                (install-file "org.onionshare.OnionShare.desktop"
-                             (string-append share "/applications"))
-               #t)))))))
+                             (string-append share "/applications")))))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (inputs
      ;; TODO: obfs4proxy
-     `(("onionshare-cli" ,onionshare-cli)
-       ("python-shiboken-2" ,python-shiboken-2)
-       ("python-pyside-2" ,python-pyside-2)
-       ("python-qrcode" ,python-qrcode)
-       ;; The desktop client uses onionshare-cli like a python module.  But
-       ;; propagating onionshare-cli's inputs is not great, since a user would
-       ;; not expect to have those installed when using onionshare-cli as a
-       ;; standalone utility.  So add onionshare-cli's inputs here.
-       ,@(package-inputs onionshare-cli)))
+     (modify-inputs (package-inputs onionshare-cli)
+       (prepend onionshare-cli
+                python-shiboken-2
+                python-pyside-2
+                python-qrcode
+                ;; The desktop client uses onionshare-cli like a python module.  But
+                ;; propagating onionshare-cli's inputs is not great, since a user would
+                ;; not expect to have those installed when using onionshare-cli as a
+                ;; standalone utility.  So add onionshare-cli's inputs here.
+                )))
     (description "OnionShare lets you securely and anonymously share files,
 host websites, and chat with friends using the Tor network.")))
 
@@ -389,7 +395,7 @@ host websites, and chat with friends using the Tor network.")))
          "02rrlllz2ci6i6cs3iddyfns7ang9a54jrlygd2jw1f9s6418ll8"))))
     (build-system python-build-system)
     (inputs
-     `(("python-stem" ,python-stem)))
+     (list python-stem))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -447,12 +453,12 @@ Potential client and exit connections are scrubbed of sensitive information.")
     (native-inputs
      `(("glib:bin" ,glib "bin")))       ; for glib-compile-schemas.
     (inputs
-     `(("python-fire" ,python-fire)
-       ("python-psutil" ,python-psutil)
-       ("python-pygobject" ,python-pygobject)
-       ("python-requests" ,python-requests)
-       ("python-stem" ,python-stem)
-       ("python-termcolor" ,python-termcolor)))
+     (list python-fire
+           python-psutil
+           python-pygobject
+           python-requests
+           python-stem
+           python-termcolor))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/toys.scm b/gnu/packages/toys.scm
index 3306f7e0f6..80928474aa 100644
--- a/gnu/packages/toys.scm
+++ b/gnu/packages/toys.scm
@@ -25,6 +25,7 @@
   #:use-module (gnu packages bison)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -60,10 +61,9 @@
            #t))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("imake" ,imake)))
+     (list imake))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxext" ,libxext)))
+     (list libx11 libxext))
     (arguments
      `(#:tests? #f ; no tests
        #:phases
@@ -112,7 +112,7 @@ mouse pointer around the screen while you work.")
         (base32 "1zrfd71zx2px2xpapg45s8xvi81xii63yl0h60q72j71zh4sif8b"))))
     (build-system gnu-build-system)
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -177,10 +177,9 @@ typing @command{sl} instead of @command{ls}.")
              #t)))
        #:tests? #f))                    ; no test suite
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "https://joeyh.name/code/filters/")
     (synopsis "Various amusing text filters")
     (description
@@ -256,7 +255,7 @@ The GNU project hosts a similar collection of filters, the GNU talkfilters.")
        ("libxt" ,libxt)
        ("libxxml2" ,libxml2)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.ratrabbit.nl/ratrabbit/content/xsnow/introduction")
     (synopsis "Let it snow on the desktop")
     (description "@code{Xsnow} animates snowfall and Santa with reindeer on
@@ -302,7 +301,7 @@ of the Nyan Cat / Poptart Cat animation.")
 (define-public cbonsai
   (package
     (name "cbonsai")
-    (version "1.2.1")
+    (version "1.3.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -311,7 +310,7 @@ of the Nyan Cat / Poptart Cat animation.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "16q02mr5zmnd9bmhnlkvjddcxvk0s8323pvmazmz3ch1ralck1wj"))))
+                "1krsrf7gilmpnba6hjgz8mk32vs55b4i1rxlp7ajrw0v487blljw"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; No test suite
@@ -328,9 +327,9 @@ of the Nyan Cat / Poptart Cat animation.")
                                         ,(package-version this-package))))
                (install-file "README.md" doc)))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config scdoc))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (home-page "https://gitlab.com/jallbrit/cbonsai")
     (synopsis "Grow bonsai trees in a terminal")
     (description "Cbonsai is a bonsai tree generator using ASCII art.  It
diff --git a/gnu/packages/tryton.scm b/gnu/packages/tryton.scm
index 364544c6d9..af8f2f0ab3 100644
--- a/gnu/packages/tryton.scm
+++ b/gnu/packages/tryton.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2021 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,6 +40,19 @@
   #:use-module (guix utils)
   #:use-module (guix build-system python))
 
+(define (guix-trytonpath-search-path version)
+  "Generate a GUIX_TRYTOND_MODULES_PATH search path specification, using
+VERSION.
+
+Do not use PYTHHONPATH not avoid interfering with any different Python package
+installed in the same environments.  Collecting only paths actually containing
+/tryton/modules reduces the number of paths."
+  (search-path-specification (variable "GUIX_TRYTOND_MODULES_PATH")
+                             (files (list (string-append
+                                           "lib/python"
+                                           (version-major+minor version)
+                                           "/site-packages/trytond/modules")))))
+
 (define-public trytond
   (package
     (name "trytond")
@@ -48,23 +62,26 @@
        (method url-fetch)
        (uri (pypi-uri "trytond" version))
        (sha256
-        (base32 "1jp5cadqpwkcnml8r1hj6aak5kc8an2d5ai62p96x77nn0dp3ny4"))))
+        (base32 "1jp5cadqpwkcnml8r1hj6aak5kc8an2d5ai62p96x77nn0dp3ny4"))
+       (patches (search-patches "trytond-add-egg-modules-to-path.patch"
+                                "trytond-add-guix_trytond_path.patch"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-genshi" ,python-genshi)
-       ("python-lxml" ,python-lxml)
-       ("python-magic" ,python-magic)
-       ("python-passlib" ,python-passlib)
-       ("python-polib" ,python-polib)
-       ("python-psycopg2" ,python-psycopg2)
-       ("python-relatorio" ,python-relatorio)
-       ("python-sql" ,python-sql)
-       ("python-werkzeug" ,python-werkzeug)
-       ("python-wrapt" ,python-wrapt)))
-    (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-pillow" ,python-pillow)))
+     (list python-dateutil
+           python-genshi
+           python-lxml
+           python-magic
+           python-passlib
+           python-polib
+           python-psycopg2
+           python-relatorio
+           python-sql
+           python-werkzeug-1.0 ;setup.py requires werkzeug<2
+           python-wrapt))
+    (native-inputs
+     (list python-mock python-pillow))
+    (native-search-paths
+     (list (guix-trytonpath-search-path (package-version python))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -113,12 +130,12 @@ and security.")
      `(("glib-compile-schemas" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)))
     (propagated-inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf+svg)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ("python-dateutil" ,python-dateutil)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)))
+     (list librsvg
+           gsettings-desktop-schemas
+           gtk+
+           python-dateutil
+           python-pycairo
+           python-pygobject))
     (home-page "https://www.tryton.org/")
     (synopsis "Tryton Client")
     (description
@@ -140,7 +157,7 @@ and security.")
     (arguments
      `(#:tests? #f))
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)))
+     (list python-dateutil))
     (home-page "http://www.tryton.org/")
     (synopsis "Library to access a Tryton server as a client")
     (description
@@ -172,7 +189,7 @@ the build system."
 ;;;  Tryton modules - please sort alphabetically
 ;;;
 
-(define %standard-trytond-native-inputs
+(define (%standard-trytond-native-inputs)
   ;; native-inputs required by most of the tryton module for running the test
   `(("python-dateutil" ,python-dateutil)
     ("python-genshi" ,python-genshi)
@@ -183,7 +200,7 @@ the build system."
     ("python-proteus" ,python-proteus)
     ("python-relatorio" ,python-relatorio)
     ("python-sql" ,python-sql)
-    ("python-werkzeug" ,python-werkzeug)
+    ("python-werkzeug" ,python-werkzeug-1.0)
     ("python-wrapt" ,python-wrapt)))
 
 (define-public trytond-account
@@ -198,13 +215,10 @@ the build system."
         (base32 "0j1mn8sd5n8rkwgfvcy9kf8s7s3qxvnilnc72i83ac573zj922xc"))))
     (build-system python-build-system)
     (arguments (tryton-arguments "account"))
-    (native-inputs `(,@%standard-trytond-native-inputs))
+    (native-inputs (%standard-trytond-native-inputs))
     (propagated-inputs
-     `(("python-simpleeval" ,python-simpleeval)
-       ("trytond" ,trytond)
-       ("trytond-company" ,trytond-company)
-       ("trytond-currency" ,trytond-currency)
-       ("trytond-party" ,trytond-party)))
+     (list python-simpleeval trytond trytond-company trytond-currency
+           trytond-party))
     (home-page "https://www.tryton.org/")
     (synopsis "Tryton module for accounting")
     (description
@@ -215,6 +229,359 @@ most of accounting needs.")
 (define-public python-trytond-account
   (deprecated-package "python-trytond-account" trytond-account))
 
+(define-public trytond-account-asset
+  (package
+    (name "trytond-account-asset")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_asset" version))
+       (sha256
+        (base32 "12qf6f4hpxi6c3mx18d07ljbzzr58h0lg8yz95nby3g3mpx2mlaz"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_asset"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-purchase" ,trytond-purchase)))
+    (propagated-inputs
+     (list trytond trytond-account trytond-account-invoice
+           trytond-account-product trytond-product))
+    (home-page "https://docs.tryton.org/projects/modules-account-asset")
+    (synopsis "Tryton module for assets management")
+    (description "The @emph{Account Asset} Tryton module adds the depreciation
+of fixed assets.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-be
+  (package
+    (name "trytond-account-be")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_be" version))
+       (sha256
+        (base32 "1l4zxsh9f3ndsgj3224xv23nr7gbg5kwrydwgv34nlkyxp5557dk"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_be"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account trytond-account-eu))
+    (home-page "https://docs.tryton.org/projects/modules-account-be")
+    (synopsis "Tryton module with Belgian chart of accounts")
+    (description "The @emph{Account BE} Tryton module defines the standard
+chart of account for Belgium.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-cash-rounding
+  (package
+    (name "trytond-account-cash-rounding")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_cash_rounding" version))
+       (sha256
+        (base32 "15xl36929zgfw9rlwaqdqs5l4ijspfx8i060z6884p2nizhh69s5"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_cash_rounding"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-account-invoice" ,trytond-account-invoice)
+       ("trytond-purchase" ,trytond-purchase)
+       ("trytond-sale" ,trytond-sale)))
+    (propagated-inputs
+     (list trytond trytond-account trytond-currency))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-cash-rounding")
+    (synopsis "Tryton module to round cash amount")
+    (description "The @emph{Account Cash Rounding} Tryton module allows cash
+amounts to be rounded using the cash rounding factor of the currency.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-credit-limit
+  (package
+    (name "trytond-account-credit-limit")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_credit_limit" version))
+       (sha256
+        (base32 "1ni4cfydypxrkdj7fc0j4js9ygfkxa22ii5db2p89z2izbg1hxd8"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_credit_limit"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-account-dunning" ,trytond-account-dunning)))
+    (propagated-inputs
+     (list trytond trytond-account trytond-company trytond-party))
+    (home-page "https://docs.tryton.org/projects/modules-account-credit-limit")
+    (synopsis "Tryton module for account credit limit")
+    (description "The @emph{Account Credit Limit} Tryton module for manages
+credit limit of parties.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-de-skr03
+  (package
+    (name "trytond-account-de-skr03")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_de_skr03" version))
+       (sha256
+        (base32 "1dhgspabr2bm0y6qkzh5kz6badhf23arzkw7lra1zsn52r23j9dl"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_de_skr03"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account))
+    (home-page "https://docs.tryton.org/projects/modules-account-de-skr03")
+    (synopsis "Tryton module with German chart of accounts SKR03")
+    (description "This package provides the German SKR03 chart of accounts for
+Tryton.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-deposit
+  (package
+    (name "trytond-account-deposit")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_deposit" version))
+       (sha256
+        (base32 "005yw868wxv8fhp7dlqd2z19hhjlmk4cgqa36axdfjmbwxvh1r6r"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_deposit"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account trytond-account-invoice
+           trytond-company trytond-party))
+    (home-page "https://docs.tryton.org/projects/modules-account-deposit")
+    (synopsis "Tryton module for accounting deposit")
+    (description "The @emph{Account Deposit} Tryton module adds support for
+deposit accounting.
+
+A deposit is an amount paid by the customer prior to the company providing it
+with services or goods.  A wizard on invoice allows to recall prior deposit of
+the party.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-dunning
+  (package
+    (name "trytond-account-dunning")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_dunning" version))
+       (sha256
+        (base32 "0d5wabn5g1gzmllihkdhzqix934184v303pp20927qxpzb2pm3qw"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_dunning"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account trytond-company trytond-party))
+    (home-page "https://docs.tryton.org/projects/modules-account-dunning")
+    (synopsis "Tryton module for account dunning")
+    (description "The @emph{Account Dunning} Tryton module adds dunning for
+receivable move lines.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-dunning-email
+  (package
+    (name "trytond-account-dunning-email")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_dunning_email" version))
+       (sha256
+        (base32 "0sbh2rnziw5fhlbaq4n8q9rwqcgz35rik77dbvhflyyjdxh51vfq"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_dunning_email"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account-dunning trytond-account-dunning-letter
+           trytond-party))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-dunning-email")
+    (synopsis "Tryton module for account dunning email")
+    (description "This package provides a Tryton module for sending dunning
+emails.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-dunning-fee
+  (package
+    (name "trytond-account-dunning-fee")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_dunning_fee" version))
+       (sha256
+        (base32 "1h8qlrdvpyyf36cdss5lv3qp4h4xs6kp3ybh9ci14mhwy0jyni75"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_dunning_fee"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-account-dunning-letter" ,trytond-account-dunning-letter)))
+    (propagated-inputs
+     (list trytond trytond-account-dunning trytond-account-product))
+    (home-page "https://docs.tryton.org/projects/modules-account-dunning-fee")
+    (synopsis "Tryton module for account dunning fee")
+    (description "This package provides a Tryton module for generating
+accounting moves as fees when processing dunning.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-dunning-letter
+  (package
+    (name "trytond-account-dunning-letter")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_dunning_letter" version))
+       (sha256
+        (base32 "0xb0mpf7n8jjgm8sb52q5sb2fjs1ap1gc0p33csdgz2lyh66lh3b"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_dunning_letter"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account trytond-account-dunning
+           trytond-company trytond-party))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-dunning-letter")
+    (synopsis "Tryton module for account dunning letter")
+    (description "This package provides a Tryton module for generating dunning
+letters.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-es
+  (package
+    (name "trytond-account-es")
+    (version "6.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_es" version))
+       (sha256
+        (base32 "19qflzfwbbwz7jxxbah2l8z89m1rwsgvm80w2qsjw93chzabz802"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_es"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-account-asset" ,trytond-account-asset)
+       ("trytond-account-payment-sepa" ,trytond-account-payment-sepa)))
+    (propagated-inputs
+     (list trytond trytond-account trytond-account-eu
+           trytond-account-invoice trytond-party))
+    (home-page "https://docs.tryton.org/projects/modules-account-es")
+    (synopsis "Tryton with Spanish chart of accounts")
+    (description "This package provides the following Spanish charts of
+accounts for Tryton:
+@itemize
+@item Plan General Contable Español 2008
+@item Plan Contable para PYMES 2008
+@end itemize
+
+A wizard allows to generate the following AEAT files:
+
+@itemize
+@item Modelo 111
+@item Modelo 115
+@item Modelo 303
+@end itemize")
+    (license license:gpl3+)))
+
+(define-public trytond-account-eu
+  (package
+    (name "trytond-account-eu")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_eu" version))
+       (sha256
+        (base32 "1x3w7iijkckv20q8lpqb5fnfrvddm130f51mcpnh4hlyx14q1c5i"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_eu"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond
+           trytond-account
+           trytond-account-invoice
+           trytond-company
+           trytond-currency
+           trytond-party))
+    (home-page "https://docs.tryton.org/projects/modules-account-eu")
+    (synopsis "Tryton module for european accounting")
+    (description "This package provides a Tryton module implementing common
+accounting requirements in Europe.  It includes:
+
+@itemize
+@item EC Sales List (ESL)
+@end itemize")
+    (license license:gpl3+)))
+
+(define-public trytond-account-fr
+  (package
+    (name "trytond-account-fr")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_fr" version))
+       (sha256
+        (base32 "1zpzdnd68gsjrz4as019amygdh8yad8wvwrm22dbccwmbbnyvqpg"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_fr"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account trytond-party-siret))
+    (home-page "https://docs.tryton.org/projects/modules-account-fr")
+    (synopsis "Tryton module with French chart of accounts")
+    (description "This package provides the French standard chart of account
+for Tryton.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-fr-chorus
+  (package
+    (name "trytond-account-fr-chorus")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_fr_chorus" version))
+       (sha256
+        (base32 "13z30390zinv6ps0zr3k7mdmxrw2nhr49k248yjk0c0qh9rwifll"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_fr_chorus"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-edocument-uncefact" ,trytond-edocument-uncefact)))
+    (propagated-inputs
+     (list python-requests
+           trytond
+           trytond-account
+           trytond-account-invoice
+           trytond-company
+           trytond-party
+           trytond-party-siret))
+    (home-page "https://docs.tryton.org/projects/modules-account-fr-chorus")
+    (synopsis "Tryton module to communicate with the French Chorus Pro
+portal")
+    (description "This package provides a Tryton module to send invoices
+through the French Chorus Pro portal.
+
+If the party is checked for Chorus Pro, all posted customer invoices are
+queued to be sent.  A cron job will send them every 15 minutes by default,
+using the credential from the accounting configuration.")
+    (license license:gpl3+)))
+
 (define-public trytond-account-invoice
   (package
     (name "trytond-account-invoice")
@@ -227,15 +594,15 @@ most of accounting needs.")
         (base32 "0r8zigb4qmv40kf835x8jd7049nnhk5g7g0aibvfd0y9p28lspnz"))))
     (build-system python-build-system)
     (arguments (tryton-arguments "account_invoice"))
-    (native-inputs `(,@%standard-trytond-native-inputs))
+    (native-inputs (%standard-trytond-native-inputs))
     (propagated-inputs
-     `(("trytond" ,trytond)
-       ("trytond-account" ,trytond-account)
-       ("trytond-account-product" ,trytond-account-product)
-       ("trytond-company" ,trytond-company)
-       ("trytond-currency" ,trytond-currency)
-       ("trytond-party" ,trytond-party)
-       ("trytond-product" ,trytond-product)))
+     (list trytond
+           trytond-account
+           trytond-account-product
+           trytond-company
+           trytond-currency
+           trytond-party
+           trytond-product))
     (home-page "https://www.tryton.org/")
     (synopsis "Tryton module for invoicing")
     (description
@@ -246,6 +613,119 @@ term.")
 (define-public python-trytond-account-invoice
   (deprecated-package "python-trytond-account-invoice" trytond-account-invoice))
 
+(define-public trytond-account-invoice-correction
+  (package
+    (name "trytond-account-invoice-correction")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_invoice_correction" version))
+       (sha256
+        (base32 "152jxsl6v2wclk1wjhykbyvianh47cp2yg575hkx18dfynyp7nmw"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_invoice_correction"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account-invoice))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-invoice-correction")
+    (synopsis "Tryton module to correct invoice")
+    (description "The @emph{Account Invoice Correction} Tryton module adds a
+wizard on invoice which allows select lines for which the unit price must be
+corrected.  A new invoice is created with those lines in double: once with the
+original quantity, once with the inverted quantity.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-invoice-defer
+  (package
+    (name "trytond-account-invoice-defer")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_invoice_defer" version))
+       (sha256
+        (base32 "1ay9cpf6z8j3gamwy52z88qg31s09wkp6k5flv20f9c00hvly452"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_invoice_defer"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account trytond-account-invoice
+           trytond-company))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-invoice-defer")
+    (synopsis "Tryton module to defer expense and revenue")
+    (description "The @emph{Account Invoice Defer} Tryton module allows to
+defer the expense or the revenue of an invoice line over many periods.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-invoice-history
+  (package
+    (name "trytond-account-invoice-history")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_invoice_history" version))
+       (sha256
+        (base32 "0pq1raj6v76vqsb2mk1bfv1vg1ngfk9iiai30rlzj2zcl53phcvj"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_invoice_history"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account-invoice trytond-party))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-invoice-history")
+    (synopsis "Tryton module to historize invoices")
+    (description "The @emph{Account Invoice History} Tryton module activates
+the historization of the invoice and its related fields.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-invoice-line-standalone
+  (package
+    (name "trytond-account-invoice-line-standalone")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_invoice_line_standalone" version))
+       (sha256
+        (base32 "1affxhinyzz1lqfq621f76fixnx523fi7qrxwsqa4f1b6g31651a"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_invoice_line_standalone"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account-invoice))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-invoice-line-standalone")
+    (synopsis "Tryton module to have standalone invoice lines")
+    (description "The @emph{Account Invoice Line Standalone} Tryton module
+allows to create invoice line not linked to an invoice.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-invoice-secondary-unit
+  (package
+    (name "trytond-account-invoice-secondary-unit")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_invoice_secondary_unit" version))
+       (sha256
+        (base32 "0wam7v92ldajpx3529x2cfvczgwv8ayr6hi6bwj8fi736p9x2kbp"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_invoice_secondary_unit"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account-invoice trytond-product))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-invoice-secondary-unit")
+    (synopsis "Tryton module to add a secondary unit on invoice line")
+    (description "The @emph{Account Invoice Secondary Unit} Tryton module adds
+a secondary unit of measure on invoice line.")
+    (license license:gpl3+)))
+
 (define-public trytond-account-invoice-stock
   (package
     (name "trytond-account-invoice-stock")
@@ -258,12 +738,9 @@ term.")
         (base32 "1228n6vsx0rdjsy3idvpyssa3n21nhvz9gqaacwa46c0hp2251bp"))))
     (build-system python-build-system)
     (arguments (tryton-arguments "account_invoice_stock"))
-    (native-inputs `(,@%standard-trytond-native-inputs))
+    (native-inputs (%standard-trytond-native-inputs))
     (propagated-inputs
-     `(("trytond" ,trytond)
-       ("trytond-account-invoice" ,trytond-account-invoice)
-       ("trytond-product" ,trytond-product)
-       ("trytond-stock" ,trytond-stock)))
+     (list trytond trytond-account-invoice trytond-product trytond-stock))
     (home-page "https://www.tryton.org/")
     (synopsis "Tryton module to link stock and invoice")
     (description
@@ -276,6 +753,159 @@ average price of the posted invoice lines that are linked to it.")
   (deprecated-package
    "python-trytond-account-invoice-stock" trytond-account-invoice-stock))
 
+(define-public trytond-account-payment
+  (package
+    (name "trytond-account-payment")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_payment" version))
+       (sha256
+        (base32 "006d78kcml65mxikqp80igln118vkxfs9ah03lq5j9bvnfr6bb2m"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_payment"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-account-invoice" ,trytond-account-invoice)))
+    (propagated-inputs
+     (list trytond trytond-account trytond-company trytond-currency
+           trytond-party))
+    (home-page "https://docs.tryton.org/projects/modules-account-payment")
+    (synopsis "Tryton module for payment")
+    (description "This package provides a Tryton module for generating grouped
+payments for receivable or payable Account Move Lines.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-payment-braintree
+  (package
+    (name "trytond-account-payment-braintree")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_payment_braintree" version))
+       (sha256
+        (base32 "0dgw47q4m5l13bhfl1kdpajh0q94pazdrq9sqzf1vg9mggai2gvi"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_payment_braintree"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list python-braintree trytond trytond-account
+           trytond-account-payment trytond-party))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-payment-braintree")
+    (synopsis "Tryton module for Braintree payment")
+    (description "The @emph{Account Payment Braintree} Tryton module allows
+receipt of payments using Braintree.  It uses the Drop-in UI in a checkout
+form to handle the payment method nonce for card and other supported payment
+methods.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-payment-clearing
+  (package
+    (name "trytond-account-payment-clearing")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_payment_clearing" version))
+       (sha256
+        (base32 "0dvjfgp0lrqn838wchkmhbbg4990xx2jv337rivnis164nw84dn0"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_payment_clearing"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-account-statement" ,trytond-account-statement)
+       ("trytond-account-statement-rule" ,trytond-account-statement-rule)))
+    (propagated-inputs
+     (list trytond trytond-account-payment))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-payment-clearing")
+    (synopsis "Tryton module for payment clearing")
+    (description "The @emph{Account Payment Clearing} Tryton module allows to
+generate account move when a payment is succeeded between the
+receivable/payable account to a clearing account defined on the payment
+journal.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-payment-sepa
+  (package
+    (name "trytond-account-payment-sepa")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_payment_sepa" version))
+       (sha256
+        (base32 "0clnl2lql5q0gh48lad3vw47xajgd3cdj4kbmvdi72jh775p174w"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_payment_sepa"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list python-stdnum
+           trytond
+           trytond-account-payment
+           trytond-bank
+           trytond-company
+           trytond-party))
+    (home-page "https://docs.tryton.org/projects/modules-account-payment-sepa")
+    (synopsis "Tryton module for SEPA payment")
+    (description "The @emph{Account Payment SEPA} Tryton module allows to
+generate SEPA files for a Payment Group.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-payment-sepa-cfonb
+  (package
+    (name "trytond-account-payment-sepa-cfonb")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_payment_sepa_cfonb" version))
+       (sha256
+        (base32 "0ccn5s360w78wqnq86qfyci8wii4n1n3pd9wvwsnbrpmabj1byv1"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_payment_sepa_cfonb"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond
+           trytond-account-payment
+           trytond-account-payment-sepa
+           trytond-bank
+           trytond-company
+           trytond-party))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-payment-sepa-cfonb")
+    (synopsis "Tryton module for CFONB SEPA payment")
+    (description "The @emph{account payment sepa cfonb} Tryton module adds
+CFONB flavors to SEPA messages.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-payment-stripe
+  (package
+    (name "trytond-account-payment-stripe")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_payment_stripe" version))
+       (sha256
+        (base32 "18hr2lrrx9asb0d3cjcpska4bv825yjln9cbqjzg0xbl36z6w3s2"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_payment_stripe"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list python-stripe trytond trytond-account trytond-account-payment
+           trytond-party))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-payment-stripe")
+    (synopsis "Tryton module for Stripe payment")
+    (description "The @emph{Account Payment Stripe} Tryton module for
+receiving payments from Stripe.  It uses Stripe.js and Stripe Elements in a
+checkout form to handle Setup Intent and Payment Intent by card.")
+    (license license:gpl3+)))
+
 (define-public trytond-account-product
   (package
     (name "trytond-account-product")
@@ -288,13 +918,10 @@ average price of the posted invoice lines that are linked to it.")
         (base32 "1z0dn1p22smzb4a9v451224wrpxcw94inl7jxkarc0q088gasn7d"))))
     (build-system python-build-system)
     (arguments (tryton-arguments "account_product"))
-    (native-inputs `(,@%standard-trytond-native-inputs))
+    (native-inputs (%standard-trytond-native-inputs))
     (propagated-inputs
-     `(("trytond" ,trytond)
-       ("trytond-account" ,trytond-account)
-       ("trytond-analytic-account" ,trytond-analytic-account)
-       ("trytond-company" ,trytond-company)
-       ("trytond-product" ,trytond-product)))
+     (list trytond trytond-account trytond-analytic-account
+           trytond-company trytond-product))
     (home-page "https://www.tryton.org/")
     (synopsis "Tryton module to add accounting on product")
     (description
@@ -305,6 +932,292 @@ and category.")
 (define-public python-trytond-account-product
   (deprecated-package "python-trytond-account-product" trytond-account-product))
 
+(define-public trytond-account-statement
+  (package
+    (name "trytond-account-statement")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_statement" version))
+       (sha256
+        (base32 "0nlak4kv2ampb5v2zbsvabnirvdi53h6vr35kp2zmrv4alpjsla0"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_statement"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond
+           trytond-account
+           trytond-account-invoice
+           trytond-bank
+           trytond-company
+           trytond-currency
+           trytond-party))
+    (home-page "https://docs.tryton.org/projects/modules-account-statement")
+    (synopsis "Tryton module with account statements")
+    (description "The @emph{Account Statement} Tryton module allows to book
+statements.  Statement can be used for bank statement, cash daybook etc.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-statement-aeb43
+  (package
+    (name "trytond-account-statement-aeb43")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_statement_aeb43" version))
+       (sha256
+        (base32 "09mkxb9m9167lpca8pb8k4rvnwhsng6b6pmhw9c21w2r4q0hppxv"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_statement_aeb43"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list python-csb43 python-stdnum trytond trytond-account-statement
+           trytond-bank))
+    (home-page
+     "https://docs.tryton.org/projects/trytond-account-statement-aeb43")
+    (synopsis "Tryton module to import AEB43 statements")
+    (description "The @emph{Account Statement AEB43} Tryton module implements
+the import of @emph{Norm 43} files as statement.  @emph{Norm 43} is a standard
+defined by the Spanish banking association.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-statement-coda
+  (package
+    (name "trytond-account-statement-coda")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_statement_coda" version))
+       (sha256
+        (base32 "11gryxh2b2py0h6f89nj2y42cwb8rrxjn0r5jbhrcsfhb2kh1x3w"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_statement_coda"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list python-febelfin-coda trytond trytond-account-statement
+           trytond-bank))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-statement-coda")
+    (synopsis "Tryton module to import CODA statements")
+    (description "The @emph{Account Statement CODA} Tryton module implements
+the import of @emph{CODA} files as statement.  @emph{CODA} is a standard
+defined by Belgian \"febelfin\".")
+    (license license:gpl3+)))
+
+(define-public trytond-account-statement-ofx
+  (package
+    (name "trytond-account-statement-ofx")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_statement_ofx" version))
+       (sha256
+        (base32 "1n24lwp1lfw59xdd7mqaz6ncr5b0bldr2qniqdnkvyaav0h8h5px"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_statement_ofx"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list python-ofxparse trytond trytond-account-statement trytond-bank
+           trytond-party))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-statement-ofx")
+    (synopsis "Tryton module to import OFX statements")
+    (description "The @emph{Account Statement OFX} Tryton module implements
+the import of the @emph{OFX} files as statement.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-statement-rule
+  (package
+    (name "trytond-account-statement-rule")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_statement_rule" version))
+       (sha256
+        (base32 "0kg6lf2wa5scwxggr8p7r7j6jd3a34qv2dcs9w18ra1qvg6p4kmp"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_statement_rule"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond
+           trytond-account
+           trytond-account-invoice
+           trytond-account-statement
+           trytond-company
+           trytond-party))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-statement-rule")
+    (synopsis "Tryton module to automate statement import with rules")
+    (description "The @emph{Account Statement Rule} Tryton module allows rules
+to be defined to complete statement lines from imported files.
+
+When the @emph{Apply Rule} button is clicked on a statement, each rule is
+tested in order against each origin that does not have any lines until one is
+found that matches.  Then the rule found is used to create the statement lines
+linked to the origin.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-stock-anglo-saxon
+  (package
+    (name "trytond-account-stock-anglo-saxon")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_stock_anglo_saxon" version))
+       (sha256
+        (base32 "090a4ykrlk2xpqxqhmpa2jrbjkrvhibm60ilp1n28wisbgv9d3di"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_stock_anglo_saxon"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-purchase" ,trytond-purchase)
+       ("trytond-sale" ,trytond-sale)
+       ("trytond-sale-supply-drop-shipment"
+        ,trytond-sale-supply-drop-shipment)))
+    (propagated-inputs
+     (list trytond
+           trytond-account
+           trytond-account-invoice
+           trytond-account-invoice-stock
+           trytond-account-product
+           trytond-account-stock-continental))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-stock-anglo-saxon")
+    (synopsis "Tryton module for anglo-saxon real-time stock valuation")
+    (description "The @emph{Account Stock Anglo Saxon} Tryton module adds the
+anglo-saxon accounting model for stock valuation.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-stock-continental
+  (package
+    (name "trytond-account-stock-continental")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_stock_continental" version))
+       (sha256
+        (base32 "1i7cyxqs2vxxvg5iyplhai4g8pi0nmh90i5kxqhbnhich6myfr4n"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_stock_continental"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-account-invoice" ,trytond-account-invoice)
+       ("trytond-purchase" ,trytond-purchase)
+       ("trytond-sale" ,trytond-sale)
+       ("trytond-sale-supply-drop-shipment"
+        ,trytond-sale-supply-drop-shipment)))
+    (propagated-inputs
+     (list trytond trytond-account trytond-account-product trytond-stock))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-stock-continental")
+    (synopsis "Tryton module for continental real-time stock valuation")
+    (description "The @emph{Account Stock Continental} Tryton module adds the
+continental accounting model for stock valuation.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-stock-landed-cost
+  (package
+    (name "trytond-account-stock-landed-cost")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_stock_landed_cost" version))
+       (sha256
+        (base32 "1p5xgd76585i55zcwvsi2gqhl0br9gbw398ap7m0cvadxfa6nxch"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_stock_landed_cost"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account trytond-account-invoice
+           trytond-product trytond-stock))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-stock-landed-cost")
+    (synopsis "Tryton module for landed cost")
+    (description "The @emph{Account Stock Landed Cost} Tryton module allows to
+allocate landed cost on Supplier Shipments after their reception.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-stock-landed-cost-weight
+  (package
+    (name "trytond-account-stock-landed-cost-weight")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_stock_landed_cost_weight" version))
+       (sha256
+        (base32 "10i0ww3k2cgdg227lv6h8ag2j6rm07maylbh3n0grwxfy8dbq34m"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_stock_landed_cost_weight"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account-stock-landed-cost trytond-product
+           trytond-product-measurements trytond-stock-shipment-measurements))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-stock-landed-cost-weight")
+    (synopsis "Tryton module for landed cost per weight")
+    (description "The @emph{Account Stock Landed Cost Weight} Tryton module
+adds an allocation method based on weight of each line.  The Weight is taken
+from the Product Measurements")
+    (license license:gpl3+)))
+
+(define-public trytond-account-tax-cash
+  (package
+    (name "trytond-account-tax-cash")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_tax_cash" version))
+       (sha256
+        (base32 "1di8brrj4jpx99i0553whyh2fddayvwq06dwdshb3iibgv4357cr"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_tax_cash"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account trytond-account-invoice trytond-party))
+    (home-page "https://docs.tryton.org/projects/modules-account-tax-cash")
+    (synopsis "Tryton module to support tax report on cash basis")
+    (description "The @emph{Account Tax Cash} Tryton module allows to make tax
+report on cash basis.")
+    (license license:gpl3+)))
+
+(define-public trytond-account-tax-rule-country
+  (package
+    (name "trytond-account-tax-rule-country")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account_tax_rule_country" version))
+       (sha256
+        (base32 "0gy2zp023d2wqcivaiw5db5d8f4wrpqdnd6jywjhpkvqk4ay6i27"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "account_tax_rule_country"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-account-invoice" ,trytond-account-invoice)
+       ("trytond-purchase" ,trytond-purchase)
+       ("trytond-sale" ,trytond-sale)
+       ("trytond-stock" ,trytond-stock)))
+    (propagated-inputs
+     (list trytond trytond-account trytond-country))
+    (home-page
+     "https://docs.tryton.org/projects/modules-account-tax-rule-country")
+    (synopsis "Tryton module to add countries on tax rules")
+    (description "The @emph{Account Tax Rule Country} Tryton module extends
+the tax rule to add origin and destination countries and subdivisions as
+criteria.")
+    (license license:gpl3+)))
+
 (define-public trytond-analytic-account
   (package
     (name "trytond-analytic-account")
@@ -317,13 +1230,10 @@ and category.")
         (base32 "09j9xz41n5hk3j7w63xbw1asd3p00prqvl652qcm9x1nrlmqiw3r"))))
     (build-system python-build-system)
     (arguments (tryton-arguments "analytic_account"))
-    (native-inputs `(,@%standard-trytond-native-inputs))
+    (native-inputs (%standard-trytond-native-inputs))
     (propagated-inputs
-     `(("trytond" ,trytond)
-       ("trytond-account" ,trytond-account)
-       ("trytond-company" ,trytond-company)
-       ("trytond-currency" ,trytond-currency)
-       ("trytond-party" ,trytond-party)))
+     (list trytond trytond-account trytond-company trytond-currency
+           trytond-party))
     (home-page "https://www.tryton.org/")
     (synopsis "Tryton module for analytic accounting")
     (description
@@ -335,6 +1245,304 @@ required to analyse accounting using multiple different axes.")
   (deprecated-package
    "python-trytond-analytic-account" trytond-analytic-account))
 
+(define-public trytond-analytic-invoice
+  (package
+    (name "trytond-analytic-invoice")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_analytic_invoice" version))
+       (sha256
+        (base32 "151vwcn5sgpqma9kjxbznx4v4wlhfc97dcyb432brxnswf5glcir"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "analytic_invoice"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-account-asset" ,trytond-account-asset)))
+    (propagated-inputs
+     (list trytond trytond-account-invoice trytond-analytic-account))
+    (home-page "https://docs.tryton.org/projects/modules-analytic-invoice")
+    (synopsis "Tryton module to add analytic accounting on invoice")
+    (description "The @emph{Analytic Invoice} Tryton module allows to set
+analytic accounts on invoice line.")
+    (license license:gpl3+)))
+
+(define-public trytond-analytic-purchase
+  (package
+    (name "trytond-analytic-purchase")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_analytic_purchase" version))
+       (sha256
+        (base32 "1yx3w3p98y11qw99jy02kal9393y6jpxazsfcznsffgigw2vl3y6"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "analytic_purchase"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-analytic-account trytond-analytic-invoice
+           trytond-purchase))
+    (home-page "https://docs.tryton.org/projects/modules-analytic-purchase")
+    (synopsis "Tryton module to add analytic accounting on purchase")
+    (description "The @emph{Analytic Purchase} Tryton module allows to set
+analytic accounts on purchase line.")
+    (license license:gpl3+)))
+
+(define-public trytond-analytic-sale
+  (package
+    (name "trytond-analytic-sale")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_analytic_sale" version))
+       (sha256
+        (base32 "07l97jmg67468pihymfcjagqbbfdcmry3654f24zbmnljxy2qm1x"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "analytic_sale"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-analytic-account trytond-analytic-invoice
+           trytond-sale))
+    (home-page "https://docs.tryton.org/projects/modules-analytic-sale")
+    (synopsis "Tryton module to add analytic accounting on sale")
+    (description "The @emph{Analytic Sale} Tryton module allows to set
+analytic accounts on sale line.")
+    (license license:gpl3+)))
+
+(define-public trytond-attendance
+  (package
+    (name "trytond-attendance")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_attendance" version))
+       (sha256
+        (base32 "1kwbxblpwjw9sv9axfp29vqgdkwkzf0c0vw8qx1fx8mfwv1hba5c"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "attendance"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-timesheet" ,trytond-timesheet)))
+    (propagated-inputs
+     (list trytond trytond-company))
+    (home-page "https://docs.tryton.org/projects/modules-attendance")
+    (synopsis "Tryton module for recording employee attendance")
+    (description "The @emph{Attendance} Tryton module allows you to track the
+entry and exit time of employees.  The module also comes with a sheet that
+shows for each employee the total duration per day in the company and the
+detail of the time of entrance and exit")
+    (license license:gpl3+)))
+
+(define-public trytond-authentication-sms
+  (package
+    (name "trytond-authentication-sms")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_authentication_sms" version))
+       (sha256
+        (base32 "1g46mimgjkz2lvh90p2ffmkfgwl7w03iqnvqlcghwpxk5vyxw3sj"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "authentication_sms"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond))
+    (home-page "https://docs.tryton.org/projects/modules-authentication-sms")
+    (synopsis "Tryton module to authenticate users via SMS")
+    (description "The @emph{Authentication SMS} Tryton module allows users to
+authenticate via SMS.  It adds a new authentication method sms, which can be
+used in the list of authentications in the session section of the
+configuration file.")
+    (license license:gpl3+)))
+
+(define-public trytond-bank
+  (package
+    (name "trytond-bank")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_bank" version))
+       (sha256
+        (base32 "0qwgp2s88n4hcqqxg1g34lmmvq5spdlkm978gzn6s96kmmzang0c"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "bank"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list python-stdnum trytond trytond-currency trytond-party))
+    (home-page "https://docs.tryton.org/projects/modules-bank")
+    (synopsis "Tryton module with banks")
+    (description "The @emph{Bank} Tryton module defines the concept of bank
+and account.")
+    (license license:gpl3+)))
+
+(define-public trytond-carrier
+  (package
+    (name "trytond-carrier")
+    (version "6.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_carrier" version))
+       (sha256
+        (base32 "0kp08jb5f86bzfyn99qs4k1047svdrkhz3jxv3jw46vrpc2s0c1y"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "carrier"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-country trytond-party trytond-product))
+    (home-page "https://docs.tryton.org/projects/modules-carrier")
+    (synopsis "Tryton module with carriers")
+    (description "The @emph{Carrier} Tryton module defines the concept
+of carrier.")
+    (license license:gpl3+)))
+
+(define-public trytond-carrier-percentage
+  (package
+    (name "trytond-carrier-percentage")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_carrier_percentage" version))
+       (sha256
+        (base32 "0glgjf733qliqxbr1sykxn2rlphagnpixhkg84my7bv6cxfmvkh6"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "carrier_percentage"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-purchase-shipment-cost" ,trytond-purchase-shipment-cost)
+       ("trytond-sale-shipment-cost" ,trytond-sale-shipment-cost)))
+    (propagated-inputs
+     (list trytond trytond-carrier trytond-currency))
+    (home-page "https://docs.tryton.org/projects/modules-carrier-percentage")
+    (synopsis "Tryton module to add cost method based on percentage")
+    (description "The @emph{Carrier Percentage} Tryton module adds a cost
+method \"on percentage\" on carrier.")
+    (license license:gpl3+)))
+
+(define-public trytond-carrier-subdivision
+  (package
+    (name "trytond-carrier-subdivision")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_carrier_subdivision" version))
+       (sha256
+        (base32 "1mmbz541yywdgm16ij2xfvm50xad24plmqdb739ssg6jj0skmji4"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "carrier_subdivision"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-sale-shipment-cost" ,trytond-sale-shipment-cost)))
+    (propagated-inputs
+     (list trytond trytond-carrier))
+    (home-page "https://docs.tryton.org/projects/modules-carrier-subdivision")
+    (synopsis "Tryton module that allows carriers selection to be restricted
+by subdivision")
+    (description "The @emph{Carrier Subdivision} Tryton module extends the
+carrier selection pattern with
+
+@itemize
+@item the warehouse Subdivision,
+@item the customer Subdivision,
+@item a regular expression to match against warehouse postal code and
+@item A regular expression to match against customer postal code.
+@end itemize
+
+These can be used to restrict the usage of a carrier to a specific subdivision
+or a specific postal code.")
+    (license license:gpl3+)))
+
+(define-public trytond-carrier-weight
+  (package
+    (name "trytond-carrier-weight")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_carrier_weight" version))
+       (sha256
+        (base32 "0l2gg4syym7jk0vjqnw7invh0gngrfmg9zmmvc1k6110aryr77yi"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "carrier_weight"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-purchase-shipment-cost" ,trytond-purchase-shipment-cost)
+       ("trytond-sale-shipment-cost" ,trytond-sale-shipment-cost)))
+    (propagated-inputs
+     (list trytond
+           trytond-carrier
+           trytond-company
+           trytond-currency
+           trytond-product
+           trytond-product-measurements))
+    (home-page "https://docs.tryton.org/projects/modules-carrier-weight")
+    (synopsis "Tryton module to add cost method based on weight")
+    (description "The @emph{Carrier Weight} Tryton module adds a cost method
+\"on weight\" on carrier.  The price is computed by finding the line for which
+the weight is greater or equal but smaller than the next line.")
+    (license license:gpl3+)))
+
+(define-public trytond-commission
+  (package
+    (name "trytond-commission")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_commission" version))
+       (sha256
+        (base32 "0a5grn6gvvwn0prr5fpgyj4kz283w08a8svmv3b4a4c5pchik3hv"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "commission"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-sale" ,trytond-sale)))
+    (propagated-inputs
+     (list python-simpleeval
+           trytond
+           trytond-account
+           trytond-account-invoice
+           trytond-account-product
+           trytond-party
+           trytond-product))
+    (home-page "https://docs.tryton.org/projects/modules-commission")
+    (synopsis "Tryton module for commission")
+    (description "The @emph{Commission} Tryton module allows to manageq
+commission for sale's agents.  A commission move is created when posting the
+invoice, following the agent's commission plan.")
+    (license license:gpl3+)))
+
+(define-public trytond-commission-waiting
+  (package
+    (name "trytond-commission-waiting")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_commission_waiting" version))
+       (sha256
+        (base32 "113wzwjip8virdh9bnh14vl29wb3w7a32skk5yibja819s19ycdn"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "commission_waiting"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account trytond-account-invoice
+           trytond-commission))
+    (home-page "https://docs.tryton.org/projects/modules-commission-waiting")
+    (synopsis "Tryton module for commission waiting")
+    (description "The @emph{Commission Waiting} Tryton module allows to
+generate account move for each commission between the expense/revenue account
+to a waiting account defined on the agent.")
+    (license license:gpl3+)))
+
 (define-public trytond-company
   (package
     (name "trytond-company")
@@ -347,11 +1555,9 @@ required to analyse accounting using multiple different axes.")
         (base32 "1q4qdyg32dn00pn3pj2yjl3jhxaqpv7a1cv5s5c95cpy5p46p02n"))))
     (build-system python-build-system)
     (arguments (tryton-arguments "company"))
-    (native-inputs `(,@%standard-trytond-native-inputs))
+    (native-inputs (%standard-trytond-native-inputs))
     (propagated-inputs
-     `(("trytond" ,trytond)
-       ("trytond-currency" ,trytond-currency)
-       ("trytond-party" ,trytond-party)))
+     (list trytond trytond-currency trytond-party))
     (home-page "https://www.tryton.org/")
     (synopsis "Tryton module with companies and employees")
     (description
@@ -362,6 +1568,32 @@ company and employee and extend the user model.")
 (define-public python-trytond-company
   (deprecated-package "python-trytond-company" trytond-company))
 
+(define-public trytond-company-work-time
+  (package
+    (name "trytond-company-work-time")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_company_work_time" version))
+       (sha256
+        (base32 "0aasp12l66zcys9w3qc4ysi2krd5c9x3xxaxvr29j7zl7nz05bwx"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "company_work_time"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-company))
+    (home-page "https://docs.tryton.org/projects/modules-company-work-time")
+    (synopsis "Tryton module to add work time on company")
+    (description "The @emph{Company Work Time} Tryton module adds work time
+management.
+
+The Company Work Time module adds 4 new fields (Hours per Work Day, Hours per
+Work Week, Hours per Work Month, Hours per Work Year) on the company form that
+allow to define how much hours are spent by an employee in a day, a week, a
+month and a year of work.")
+    (license license:gpl3+)))
+
 (define-public trytond-country
   (package
     (name "trytond-country")
@@ -375,10 +1607,9 @@ company and employee and extend the user model.")
     (build-system python-build-system)
     ;; Doctest contains one test that requires internet access.
     (arguments (tryton-arguments "country" "--no-doctest"))
-    (native-inputs `(,@%standard-trytond-native-inputs))
+    (native-inputs (%standard-trytond-native-inputs))
     (propagated-inputs
-     `(("python-pycountry" ,python-pycountry)
-       ("trytond" ,trytond)))
+     (list python-pycountry trytond))
     (home-page "http://www.tryton.org/")
     (synopsis "Tryton module with countries")
     (description
@@ -402,12 +1633,11 @@ company and employee and extend the user model.")
     ;; Doctest 'scenario_currency_rate_update.rst' fails.
     (arguments (tryton-arguments "currency" "--no-doctest"))
     (native-inputs
-     `(,@%standard-trytond-native-inputs
+     `(,@(%standard-trytond-native-inputs)
        ("python-forex-python" ,python-forex-python)
        ("python-pycountry" ,python-pycountry)))
     (propagated-inputs
-     `(("python-sql" ,python-sql)
-       ("trytond" ,trytond)))
+     (list python-sql trytond))
     (home-page "https://www.tryton.org/")
     (synopsis "Tryton module with currencies")
     (description
@@ -418,6 +1648,257 @@ currency and rate.")
 (define-public python-trytond-currency
   (deprecated-package "python-trytond-currency" trytond-currency))
 
+(define-public trytond-customs
+  (package
+    (name "trytond-customs")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_customs" version))
+       (sha256
+        (base32 "1qilj1b9zr35z15313xbvgklf87dgxddvkcnymklwp9n7vs7hrz5"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "customs"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list python-simpleeval trytond trytond-country trytond-currency
+           trytond-product))
+    (home-page "https://docs.tryton.org/projects/modules-customs")
+    (synopsis "Tryton module for customs")
+    (description "The @emph{Customs} Tryton module allows to define customs
+duty based on the tariff code.")
+    (license license:gpl3+)))
+
+(define-public trytond-dashboard
+  (package
+    (name "trytond-dashboard")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_dashboard" version))
+       (sha256
+        (base32 "1drqiks8r7y58wz0skfa39v9yqx9fi5x0ymrrjd87wybw9q3kv46"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "dashboard"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond))
+    (home-page "https://docs.tryton.org/projects/modules-dashboard")
+    (synopsis "Tryton module for dashboard")
+    (description "The @emph{Dashboard} Tryton module allows users to
+configure their dashboard.")
+    (license license:gpl3+)))
+
+(define-public trytond-edocument-uncefact
+  (package
+    (name "trytond-edocument-uncefact")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_edocument_uncefact" version))
+       (sha256
+        (base32 "0b5qhkirfkrh5g1d7m42f7niiz86favf352i403fdi4j532sl3i2"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "edocument_uncefact"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("python-lxml" ,python-lxml)
+       ("trytond-account-invoice" ,trytond-account-invoice)))
+    (propagated-inputs
+     (list trytond trytond-edocument-unece))
+    (home-page "https://docs.tryton.org/projects/modules-edocument-uncefact")
+    (synopsis "Tryton module for electronic document UN/CEFACT")
+    (description "The @emph{Edocument UN/CEFACT} Tryton module implements
+electronic document from UN/CEFACT.  Supported formats are:
+
+@itemize
+@item Cross-Industry-Invoice (16B-CII)
+@end itemize")
+    (license license:gpl3+)))
+
+(define-public trytond-edocument-unece
+  (package
+    (name "trytond-edocument-unece")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_edocument_unece" version))
+       (sha256
+        (base32 "1ri3gjvk0h0sljbgh7h2j0rbr3953p3k21l8x6rhrnh1q2rqgi70"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "edocument_unece"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account trytond-product))
+    (home-page "https://docs.tryton.org/projects/modules-edocument-unece")
+    (synopsis "Tryton module for electronic document UNECE codes")
+    (description "The @emph{Edocument UNECE} Tryton module adds several codes
+from the UNECE.  Supported formats are:
+
+@itemize
+@item Recommendation N°. 20 Codes for
+      Units of Measure Used in International Trade
+@item 5153  Duty or tax or fee type name code
+@item 5305  Duty or tax or fee category code
+@end itemize")
+    (license license:gpl3+)))
+
+(define-public trytond-incoterm
+  (package
+    (name "trytond-incoterm")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_incoterm" version))
+       (sha256
+        (base32 "09x53kqi7dvmr4kcri2b3f0lxyv99pi731vhk6581f3vy2bby97s"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "incoterm"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-account" ,trytond-account)
+       ("trytond-account-invoice" ,trytond-account-invoice)
+       ("trytond-account-invoice-stock" ,trytond-account-invoice-stock)
+       ("trytond-carrier" ,trytond-carrier)
+       ("trytond-purchase" ,trytond-purchase)
+       ("trytond-purchase-request-quotation"
+        ,trytond-purchase-request-quotation)
+       ("trytond-sale" ,trytond-sale)
+       ("trytond-sale-invoice-grouping" ,trytond-sale-invoice-grouping)
+       ("trytond-sale-opportunity" ,trytond-sale-opportunity)
+       ("trytond-sale-shipment-cost" ,trytond-sale-shipment-cost)
+       ("trytond-stock" ,trytond-stock)))
+    (propagated-inputs
+     (list trytond trytond-company trytond-party))
+    (home-page "https://docs.tryton.org/projects/modules-incoterm")
+    (synopsis "Tryton module for incoterms")
+    (description "The @emph{Incoterm} Tryton module is used to manage the
+Incoterms on sales, purchases and shipments.  The module contains the Incoterm
+versions of 2010 and 2020.")
+    (license license:gpl3+)))
+
+(define-public trytond-ldap-authentication
+  (package
+    (name "trytond-ldap-authentication")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_ldap_authentication" version))
+       (sha256
+        (base32 "1iylbpp66qjff1mkp0w3a703pracpcv3bv25i2bafkmcjiv9b4jl"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "ldap_authentication"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list python-ldap3 trytond))
+    (home-page "https://docs.tryton.org/projects/modules-ldap-authentication")
+    (synopsis "Tryton module to authenticate users through LDAP")
+    (description "The @emph{LDAP Authentication} Tryton module allows to
+authenticate users via a LDAP server.")
+    (license license:gpl3+)))
+
+(define-public trytond-marketing
+  (package
+    (name "trytond-marketing")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_marketing" version))
+       (sha256
+        (base32 "0mh85sx5xj06zjmf9fhcislkwlp7k54fz14k3ia1xxpw5f953y3c"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "marketing"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond))
+    (home-page "https://docs.tryton.org/projects/modules-marketing")
+    (synopsis "Tryton module to group marketing features")
+    (description "The @emph{Marketing} Tryton module defines the
+fundamentals for marketing modules.")
+    (license license:gpl3+)))
+
+(define-public trytond-marketing-automation
+  (package
+    (name "trytond-marketing-automation")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_marketing_automation" version))
+       (sha256
+        (base32 "0c2bjkxkpkjqm5zqk0r0gcxm1cxgixm6xxhh16j46vy7d4zssgsp"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "marketing_automation"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-party" ,trytond-party)))
+    (propagated-inputs
+     (list trytond trytond-marketing trytond-web-shortener))
+    (home-page "https://docs.tryton.org/projects/modules-marketing-automation")
+    (synopsis "Tryton module to plan, coordinate and manage marketing
+campaigns")
+    (description "The @emph{Marketing Automation} Tryton module allows
+marketing actions to be automated.  It is based on scenarios and activities
+that are executed on selected records.")
+    (license license:gpl3+)))
+
+(define-public trytond-marketing-email
+  (package
+    (name "trytond-marketing-email")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_marketing_email" version))
+       (sha256
+        (base32 "07zh1pni4kpm6bsgyizz0a5k64nyxc9laxxaih9py7d24p9pgvky"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "marketing_email"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-marketing trytond-party trytond-web-shortener
+           trytond-web-user))
+    (home-page "https://docs.tryton.org/projects/modules-marketing-email")
+    (synopsis "Tryton module to manage marketing mailing lists")
+    (description "This package provides a Tryton module for managing marketing
+mailing lists.")
+    (license license:gpl3+)))
+
+(define-public trytond-notification-email
+  (package
+    (name "trytond-notification-email")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_notification_email" version))
+       (sha256
+        (base32 "12hi2p400b15vsmq2a4yifxppc08zdf5l64svv987mxxqv6403ma"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "notification_email"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-commission" ,trytond-commission)
+       ("trytond-company" ,trytond-company)
+       ("trytond-party" ,trytond-party)
+       ("trytond-web-user" ,trytond-web-user)))
+    (propagated-inputs
+     (list trytond))
+    (home-page "https://docs.tryton.org/projects/modules-notification-email")
+    (synopsis "Tryton module for sending email notifications")
+    (description "The @emph{Notification Email} Tryton module allows to define
+email templates which will be sent to a list of recipients when a trigger is
+fired on a record event.  Extra reports from the same record can be attached
+to the email.")
+    (license license:gpl3+)))
+
 (define-public trytond-party
   (package
     (name "trytond-party")
@@ -431,11 +1912,9 @@ currency and rate.")
     (build-system python-build-system)
     ;; Doctest 'scenario_party_phone_number.rst' fails.
     (arguments (tryton-arguments "party" "--no-doctest"))
-    (native-inputs `(,@%standard-trytond-native-inputs))
+    (native-inputs (%standard-trytond-native-inputs))
     (propagated-inputs
-     `(("python-stdnum" ,python-stdnum)
-       ("trytond" ,trytond)
-       ("trytond-country" ,trytond-country)))
+     (list python-stdnum trytond trytond-country))
     (home-page "https://www.tryton.org/")
     (synopsis "Tryton module for parties and addresses")
     (description
@@ -446,6 +1925,71 @@ addresses.")
 (define-public python-trytond-party
   (deprecated-package "python-trytond-party" trytond-party))
 
+(define-public trytond-party-avatar
+  (package
+    (name "trytond-party-avatar")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_party_avatar" version))
+       (sha256
+        (base32 "1g0f4522bfw2ycr05yq9k570amwcfxf9sza89lhhpzg0kxx0mpq2"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "party_avatar"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-company" ,trytond-company)))
+    (propagated-inputs
+     (list trytond trytond-party))
+    (home-page "https://docs.tryton.org/projects/modules-party-avatar")
+    (synopsis "Tryton module that adds avatars to parties")
+    (description "The @emph{Party Avatar} Tryton module adds an avatar to each
+party.")
+    (license license:gpl3+)))
+
+(define-public trytond-party-relationship
+  (package
+    (name "trytond-party-relationship")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_party_relationship" version))
+       (sha256
+        (base32 "03lkjmhinxm75schfn596vyg8459fx2spdyh372ikra3zdp8pg75"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "party_relationship"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-party))
+    (home-page "https://docs.tryton.org/projects/modules-party-relationship")
+    (synopsis "Party Relationship module for Tryton")
+    (description "The @emph{Party Relationship} Tryton module allows to define
+different types of relations between parties.")
+    (license license:gpl3+)))
+
+(define-public trytond-party-siret
+  (package
+    (name "trytond-party-siret")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_party_siret" version))
+       (sha256
+        (base32 "1xmfjiqn7wzwja34abrxn3bj39z0799pdxd8bcz7l5dxrnqxwc38"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "party_siret"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-party))
+    (home-page "https://docs.tryton.org/projects/modules-party-siret")
+    (synopsis "Tryton module to add SIRET/SIREN on parties")
+    (description "The @emph{Party SIRET} Tryton module adds the French company
+identification numbers SIREN and SIRET on party and address.")
+    (license license:gpl3+)))
+
 (define-public trytond-product
   (package
     (name "trytond-product")
@@ -458,11 +2002,9 @@ addresses.")
         (base32 "1xvvqxkvzyqy6fn2sj5h3zj0g17igzwx6s18sxkdz72vqz6kpv0l"))))
     (build-system python-build-system)
     (arguments (tryton-arguments "product"))
-    (native-inputs `(,@%standard-trytond-native-inputs))
+    (native-inputs (%standard-trytond-native-inputs))
     (propagated-inputs
-     `(("python-stdnum" ,python-stdnum)
-       ("trytond" ,trytond)
-       ("trytond-company" ,trytond-company)))
+     (list python-stdnum trytond trytond-company))
     (home-page "https://www.tryton.org/")
     (synopsis "Tryton module with products")
     (description
@@ -473,6 +2015,517 @@ Template and Product.")
 (define-public python-trytond-product
   (deprecated-package "python-trytond-product" trytond-product))
 
+(define-public trytond-product-attribute
+  (package
+    (name "trytond-product-attribute")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_product_attribute" version))
+       (sha256
+        (base32 "0brvwvm3q2ik4vjb9cwd6jxddrmpp2vcafw8k675gy0xbbp1ddik"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "product_attribute"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-product))
+    (home-page "https://docs.tryton.org/projects/modules-product-attribute")
+    (synopsis "Tryton module with product attributes")
+    (description "The @emph{Product Attribute} Tryton module defines the
+models `Attribute` and `Attribute Set` for products.")
+    (license license:gpl3+)))
+
+(define-public trytond-product-classification
+  (package
+    (name "trytond-product-classification")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_product_classification" version))
+       (sha256
+        (base32 "1sq42siqq8w6dd8jnqnkzy3npaf9g2nrdzazkl6nw5dysvpsz8cr"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "product_classification"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-product))
+    (home-page
+     "https://docs.tryton.org/projects/modules-product-classification")
+    (synopsis "Tryton module to implement product classification")
+    (description "The @emph{Product Classification} Tryton module defines the
+tools for other modules to create classifications of products.  It adds a
+reference field classification to the product template.")
+    (license license:gpl3+)))
+
+(define-public trytond-product-classification-taxonomic
+  (package
+    (name "trytond-product-classification-taxonomic")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_product_classification_taxonomic" version))
+       (sha256
+        (base32 "1pkk0z4bl1pz2yxs46b18fj35zwa80dnbickjg1ad66n9yrmifk6"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "product_classification_taxonomic"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-product-classification))
+    (home-page
+     "https://docs.tryton.org/projects/modules-product-classification-taxonomic")
+    (synopsis "Tryton module to implement product classification taxonomic")
+    (description "The @emph{Product Classification Taxonomic} Tryton module
+adds the taxonomic classification to the products.")
+    (license license:gpl3+)))
+
+(define-public trytond-product-cost-fifo
+  (package
+    (name "trytond-product-cost-fifo")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_product_cost_fifo" version))
+       (sha256
+        (base32 "1zksnawvnbf1l2hkyxw4m85ysjy6i8kbx103sz4p9a9bgvjn3ai6"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "product_cost_fifo"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-product trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-product-cost-fifo")
+    (synopsis "Tryton module to add FIFO cost method")
+    (description "The @emph{Product Cost FIFO} Tryton module add a
+first-in-first-out option in the `Cost Method` field of the product form.")
+    (license license:gpl3+)))
+
+(define-public trytond-product-cost-history
+  (package
+    (name "trytond-product-cost-history")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_product_cost_history" version))
+       (sha256
+        (base32 "01cxx1lmcxwangk3q8lhbkd97w208qxpk96mqxv2hgds77xr42cj"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "product_cost_history"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-product trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-product-cost-history")
+    (synopsis "Tryton module to historize product cost")
+    (description "The @emph{Product Cost History} Tryton module adds a `Cost
+History` relate on the product form, showing the cost price evolution of the
+product.  The history is based on the cost price stored on the incoming stock
+moves for goods and assets and based on the history table for service.  When a
+historic cost price is needed, the value is taken from this history for goods
+and assets.")
+    (license license:gpl3+)))
+
+(define-public trytond-product-cost-warehouse
+  (package
+    (name "trytond-product-cost-warehouse")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_product_cost_warehouse" version))
+       (sha256
+        (base32 "12fcnmcx4m5wyw1hi3k175iiis5m18fcs72b04y14km583s6jcfr"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "product_cost_warehouse"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-account-stock-continental" ,trytond-account-stock-continental)
+       ("trytond-product-cost-fifo" ,trytond-product-cost-fifo)
+       ("trytond-product-cost-history" ,trytond-product-cost-history)))
+    (propagated-inputs
+     (list trytond trytond-company trytond-product trytond-stock))
+    (home-page
+     "https://docs.tryton.org/projects/modules-product-cost-warehouse")
+    (synopsis "Tryton module to compute product cost per warehouse")
+    (description "The @emph{Product Cost Warehouse} Trython module allows the
+cost price of products to be calculated separately for each warehouse.")
+    (license license:gpl3+)))
+
+(define-public trytond-product-kit
+  (package
+    (name "trytond-product-kit")
+    (version "6.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_product_kit" version))
+       (sha256
+        (base32 "1xr1vd66lrnzj16ycbw5xnz4ai44ml77akhsvxvihf09zdz09yd7"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "product_kit"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-account-invoice" ,trytond-account-invoice)
+       ("trytond-account-invoice-stock" ,trytond-account-invoice-stock)
+       ("trytond-company" ,trytond-company)
+       ("trytond-purchase" ,trytond-purchase)
+       ("trytond-sale" ,trytond-sale)
+       ("trytond-stock" ,trytond-stock)))
+    (propagated-inputs
+     (list trytond trytond-product))
+    (home-page "https://docs.tryton.org/projects/modules-product-kit")
+    (synopsis "Tryton module to manage product kits and components")
+    (description "The @emph{Product Kit} Tryton Module adds kits and
+components to products.  This enables a defined set of products to be sold or
+purchased using a single line.")
+    (license license:gpl3+)))
+
+(define-public trytond-product-measurements
+  (package
+    (name "trytond-product-measurements")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_product_measurements" version))
+       (sha256
+        (base32 "0za3p0wxh2kb6f49455pggnpmy0vfiwj95j5c3l63x8q5yp8vdjl"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "product_measurements"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-product))
+    (home-page "https://docs.tryton.org/projects/modules-product-measurements")
+    (synopsis "Tryton module to add measurements to product")
+    (description "The @emph{Product Measurements} Tryton module adds this
+following measurements to Product:")
+    (license license:gpl3+)))
+
+(define-public trytond-product-price-list
+  (package
+    (name "trytond-product-price-list")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_product_price_list" version))
+       (sha256
+        (base32 "1csr2g7wx89kykhm76dyrjn0nicvjmc4razqfqpj9rhdpwppdgr6"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "product_price_list"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list python-simpleeval trytond trytond-company trytond-product))
+    (home-page "https://docs.tryton.org/projects/modules-product-price-list")
+    (synopsis "Tryton module with price list")
+    (description "The @emph{Product Price List} Tryton module provides formula
+to compute prices per product or category.")
+    (license license:gpl3+)))
+
+(define-public trytond-product-price-list-dates
+  (package
+    (name "trytond-product-price-list-dates")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_product_price_list_dates" version))
+       (sha256
+        (base32 "0p1n4qivj9gfhdy0357n53wswyi14rnanc2bkayiv3zfr7qkf2m1"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "product_price_list_dates"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-sale-price-list" ,trytond-sale-price-list)))
+    (propagated-inputs
+     (list trytond trytond-product-price-list))
+    (home-page
+     "https://docs.tryton.org/projects/modules-product-price-list-dates")
+    (synopsis "Tryton module to add dates on price list")
+    (description "The @emph{Product Price List Dates} Tryton module adds start
+date and end date conditions to the price list lines.")
+    (license license:gpl3+)))
+
+(define-public trytond-product-price-list-parent
+  (package
+    (name "trytond-product-price-list-parent")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_product_price_list_parent" version))
+       (sha256
+        (base32 "15jdw9qj2fffml9x4vdlzp3iz5gs2l597hpf5y5p887mmx9aa8cn"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "product_price_list_parent"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-product-price-list))
+    (home-page
+     "https://docs.tryton.org/projects/modules-product-price-list-parent")
+    (synopsis "Tryton module to use price from another price list")
+    (description "The @emph{Product Price List Parent} Tryton module adds a
+parent to the price list and the keyword `parent_unit_price` for the formula
+which contains the unit price computed by the parent price list.")
+    (license license:gpl3+)))
+
+(define-public trytond-production
+  (package
+    (name "trytond-production")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_production" version))
+       (sha256
+        (base32 "0ys1wg52bs3i7yjrrkm9ycn07xz7fsb2pqc4a2bj44691pvrclpk"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "production"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-company trytond-product trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-production")
+    (synopsis "Tryton module for production")
+    (description "The @emph{Production} Tryton module defines basics
+for production management: Bill of material and production order.")
+    (license license:gpl3+)))
+
+(define-public trytond-production-outsourcing
+  (package
+    (name "trytond-production-outsourcing")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_production_outsourcing" version))
+       (sha256
+        (base32 "08pp80d4jfw7qmhvds60i63pb2nad489xwkf2ybbzdkrzhcgrrjk"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "production_outsourcing"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-product trytond-production
+           trytond-production-routing trytond-purchase))
+    (home-page
+     "https://docs.tryton.org/projects/modules-production-outsourcing")
+    (synopsis "Tryton module to outsource production")
+    (description "The @emph{Production Outsourcing} Tryton module allows to
+outsource production order per routing.  When such outsourced production is
+set to @code{waiting}, a purchase order is created and its cost is added to
+the production.")
+    (license license:gpl3+)))
+
+(define-public trytond-production-routing
+  (package
+    (name "trytond-production-routing")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_production_routing" version))
+       (sha256
+        (base32 "0qypqsf36lf02wrbv7pwhg2vv7004g7c6vxd1z2aiwj58g8q7894"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "production_routing"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-stock-supply-production" ,trytond-stock-supply-production)))
+    (propagated-inputs
+     (list trytond trytond-production))
+    (home-page "https://docs.tryton.org/projects/modules-production-routing")
+    (synopsis "Tryton module for production routing")
+    (description "The @emph{Production Routing} Tryton module defines the
+routings for production: Routing, Step and Operation.")
+    (license license:gpl3+)))
+
+(define-public trytond-production-split
+  (package
+    (name "trytond-production-split")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_production_split" version))
+       (sha256
+        (base32 "0jl2jnm0lwybwjw2w4nb7ih2s3z7lp00l6zm5vsx4phcvfvzcxgi"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "production_split"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-production))
+    (home-page "https://docs.tryton.org/projects/modules-production-split")
+    (synopsis "Tryton module to split production")
+    (description "The @emph{Production Split} Tryton module adds on the
+production a wizard that allows to split it.  The production is split into
+productions of Quantity.  If a count is set, it will be split only this number
+of times.  On occasion there can be a production with the remaining
+quantity.")
+    (license license:gpl3+)))
+
+(define-public trytond-production-work
+  (package
+    (name "trytond-production-work")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_production_work" version))
+       (sha256
+        (base32 "01a09snawlr224s5aqhrdkal14qry4hlfsglnsk09yzbw6fx196b"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "production_work"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond
+           trytond-company
+           trytond-product
+           trytond-production
+           trytond-production-routing
+           trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-production-work")
+    (synopsis "Tryton module for production work")
+    (description "The @emph{Production Work} Tryton module allows to manage
+work order for each production.  It also adds in the production cost for the
+work cost.")
+    (license license:gpl3+)))
+
+(define-public trytond-production-work-timesheet
+  (package
+    (name "trytond-production-work-timesheet")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_production_work_timesheet" version))
+       (sha256
+        (base32 "1r7k25wddd381g0p5pj3m8jqvbg8g6ss0ifnhhjya3b6x0d41jz9"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "production_work_timesheet"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-production-routing trytond-production-work
+           trytond-timesheet))
+    (home-page
+     "https://docs.tryton.org/projects/modules-production-work-timesheet")
+    (synopsis "Tryton module for timesheet on production work")
+    (description "The @emph{Production Work Timesheet} Tryton module allows to
+enter timesheet for production works.")
+    (license license:gpl3+)))
+
+(define-public trytond-project
+  (package
+    (name "trytond-project")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_project" version))
+       (sha256
+        (base32 "1xlqzg07csr9a89jjgmk5n4d9dd2s3qahg2x8arf3vqqnrqw1g0f"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "project"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-company trytond-company-work-time
+           trytond-party trytond-timesheet))
+    (home-page "https://docs.tryton.org/projects/modules-project")
+    (synopsis "Tryton module with projects")
+    (description "The @emph{Project} Tryton module provides the concepts of
+project and task and the basis for simple project management.")
+    (license license:gpl3+)))
+
+(define-public trytond-project-invoice
+  (package
+    (name "trytond-project-invoice")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_project_invoice" version))
+       (sha256
+        (base32 "0wxgpsn5kwfz4f51icmc0p7r615lpr286ifwyz0xnd6rrh0glvmw"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "project_invoice"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond
+           trytond-account
+           trytond-account-invoice
+           trytond-account-product
+           trytond-product
+           trytond-project
+           trytond-project-revenue
+           trytond-timesheet))
+    (home-page "https://docs.tryton.org/projects/modules-project-invoice")
+    (synopsis "Tryton module to invoice projects")
+    (description "The @emph{Project Invoice} Tryton module adds invoice
+methods on projects.  The methods are:
+@itemize
+@item Manual: Tryton doesn’t create any invoice.
+@item On Effort: The invoices are created based on the Effort hours
+      for all children works with 100% progress.
+@item On Progress: The invoices are create proportionally to the Progress
+      of the Effort hours of each children work.
+@item On Timesheet: The invoices are created based on the timesheets
+      encoded on all children works.
+@end itemize")
+    (license license:gpl3+)))
+
+(define-public trytond-project-plan
+  (package
+    (name "trytond-project-plan")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_project_plan" version))
+       (sha256
+        (base32 "0yanvfmg4nmbc322h6w9m7asv4bm95y2wksi4rrvlbs84njgvhnq"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "project_plan"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-company trytond-project trytond-timesheet))
+    (home-page "https://docs.tryton.org/projects/modules-project-plan")
+    (synopsis "Tryton module to add planning capabilities on projects")
+    (description "The @emph{Project Plan} Tryton module adds planning features
+on top of the Project module.")
+    (license license:gpl3+)))
+
+(define-public trytond-project-revenue
+  (package
+    (name "trytond-project-revenue")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_project_revenue" version))
+       (sha256
+        (base32 "0gji7kpq4l1smxvj6dqdpcyp2ml4ywfhagf6xm813y71mrlfvmka"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "project_revenue"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-purchase" ,trytond-purchase)))
+    (propagated-inputs
+     (list trytond
+           trytond-company
+           trytond-product
+           trytond-project
+           trytond-timesheet
+           trytond-timesheet-cost))
+    (home-page "https://docs.tryton.org/projects/modules-project-revenue")
+    (synopsis "Tryton module to add revenue on project")
+    (description "The @emph{Project Revenue} Tryton module computes revenue
+and cost per task and project.  The revenue uses the list price of the
+product.  If the product's unit of measure is time based, the revenue is
+computed as the product of the price and the hours of effort otherwise the
+price is considered as fixed.  The cost is computed by summing the cost of all
+the linked time sheets and the linked purchase lines.")
+    (license license:gpl3+)))
+
 (define-public trytond-purchase
   (package
     (name "trytond-purchase")
@@ -485,18 +2538,18 @@ Template and Product.")
         (base32 "12drjw30ik3alckn6xrny4814vzi3ysh17wgiawiy9319yahsvay"))))
     (build-system python-build-system)
     (arguments (tryton-arguments "purchase"))
-    (native-inputs `(,@%standard-trytond-native-inputs))
+    (native-inputs (%standard-trytond-native-inputs))
     (propagated-inputs
-     `(("trytond" ,trytond)
-       ("trytond-account" ,trytond-account)
-       ("trytond-account-invoice" ,trytond-account-invoice)
-       ("trytond-account-invoice-stock" ,trytond-account-invoice-stock)
-       ("trytond-account-product" ,trytond-account-product)
-       ("trytond-company" ,trytond-company)
-       ("trytond-currency" ,trytond-currency)
-       ("trytond-party" ,trytond-party)
-       ("trytond-product" ,trytond-product)
-       ("trytond-stock" ,trytond-stock)))
+     (list trytond
+           trytond-account
+           trytond-account-invoice
+           trytond-account-invoice-stock
+           trytond-account-product
+           trytond-company
+           trytond-currency
+           trytond-party
+           trytond-product
+           trytond-stock))
     (home-page "https://www.tryton.org/")
     (synopsis "Tryton module for purchase")
     (description
@@ -506,6 +2559,110 @@ Template and Product.")
 (define-public python-trytond-purchase
   (deprecated-package "python-trytond-purchase" trytond-purchase))
 
+(define-public trytond-purchase-amendment
+  (package
+    (name "trytond-purchase-amendment")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_purchase_amendment" version))
+       (sha256
+        (base32 "0bgk5ib7y1nzdrfx00g9qr2lxmjkascvh1caps21r12czz0iz5fx"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "purchase_amendment"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account-invoice trytond-purchase
+           trytond-purchase-history trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-purchase-amendment")
+    (synopsis "Tryton module to amend purchases")
+    (description "The @emph{Purchase Amendment} Tryton module allows you to
+change purchases that are being processed and keep track of the changes.  An
+amendment is composed of action lines which can:
+
+@itemize
+@item recompute taxes (if the supplier tax rules or product taxes have
+      changed),
+@item change the payment term,
+@item change the party and the address,
+@item change the warehouse, or
+@item change a purchase line: (product, quantity and unit of measure,
+      unit price or description).
+@end itemize")
+    (license license:gpl3+)))
+
+(define-public trytond-purchase-history
+  (package
+    (name "trytond-purchase-history")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_purchase_history" version))
+       (sha256
+        (base32 "18mb1vqmf9c934jp2qjwj4mi0sx99m8005vxc42mjj1f5qkxxsgg"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "purchase_history"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-purchase))
+    (home-page "https://docs.tryton.org/projects/modules-purchase-history")
+    (synopsis "Tryton module to historize purchases")
+    (description "The @emph{Purchase History} Tryton module activates the
+historization of the purchase and adds a revision counter which increases each
+time the purchase is reset to draft.")
+    (license license:gpl3+)))
+
+(define-public trytond-purchase-invoice-line-standalone
+  (package
+    (name "trytond-purchase-invoice-line-standalone")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_purchase_invoice_line_standalone" version))
+       (sha256
+        (base32 "1qwa8a1vxalvb6r3d1w5wwpa9kx7w8c879x1zb4wwc9nqpdji8v0"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "purchase_invoice_line_standalone"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account-invoice-line-standalone
+           trytond-purchase))
+    (home-page
+     "https://docs.tryton.org/projects/modules-purchase-invoice-line-standalone")
+    (synopsis "Tryton module for standalone invoice line from purchase")
+    (description "The @emph{Purchase Invoice Line Standalone} Tryton module
+makes purchase to generate invoice lines instead of invoices.")
+    (license license:gpl3+)))
+
+(define-public trytond-purchase-price-list
+  (package
+    (name "trytond-purchase-price-list")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_purchase_price_list" version))
+       (sha256
+        (base32 "0y54b677dy1jpmclgxvbzs2zsypzkyvmdbx1i58j16hs24l8h0c8"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "purchase_price_list"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond
+           trytond-account
+           trytond-company
+           trytond-party
+           trytond-product-price-list
+           trytond-purchase))
+    (home-page "https://docs.tryton.org/projects/modules-purchase-price-list")
+    (synopsis "Tryton module to add price list on purchase")
+    (description "The @emph{Purchase Price List} Tryton Module allows price
+lists to be defined for suppliers.")
+    (license license:gpl3+)))
+
 (define-public trytond-purchase-request
   (package
     (name "trytond-purchase-request")
@@ -519,11 +2676,9 @@ Template and Product.")
     (build-system python-build-system)
     ;; Doctest 'scenario_purchase_request.rst' fails.
     (arguments (tryton-arguments "purchase_request" "--no-doctest"))
-    (native-inputs `(,@%standard-trytond-native-inputs))
+    (native-inputs (%standard-trytond-native-inputs))
     (propagated-inputs
-     `(("trytond" ,trytond)
-       ("trytond-product" ,trytond-product)
-       ("trytond-purchase" ,trytond-purchase)))
+     (list trytond trytond-product trytond-purchase))
     (home-page "https://www.tryton.org/")
     (synopsis "Tryton module for purchase requests")
     (description
@@ -536,6 +2691,790 @@ generated by other process from Tryton.")
   (deprecated-package
    "python-trytond-purchase-request" trytond-purchase-request))
 
+(define-public trytond-purchase-request-quotation
+  (package
+    (name "trytond-purchase-request-quotation")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_purchase_request_quotation" version))
+       (sha256
+        (base32 "12r34fawdsvxhaygs5nlnmx2a51x6yn0vgayj4qy083f4lv0mwml"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "purchase_request_quotation"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-purchase-requisition" ,trytond-purchase-requisition)))
+    (propagated-inputs
+     (list trytond
+           trytond-company
+           trytond-currency
+           trytond-party
+           trytond-product
+           trytond-purchase-request))
+    (home-page
+     "https://docs.tryton.org/projects/modules-purchase-request-quotation")
+    (synopsis "Tryton module for purchase request quotation")
+    (description "The @emph{Purchase Request Quotation} Tryton module allows
+users to ask quotations from selected purchase requests to different
+suppliers.  Each request will collect quotation information from the
+supplier.")
+    (license license:gpl3+)))
+
+(define-public trytond-purchase-requisition
+  (package
+    (name "trytond-purchase-requisition")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_purchase_requisition" version))
+       (sha256
+        (base32 "0hiz4q4cq7zz6xxl6bkk0vn71hc2wgasnhda5h41cmi69jphhzzk"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "purchase_requisition"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond
+           trytond-company
+           trytond-currency
+           trytond-party
+           trytond-product
+           trytond-purchase
+           trytond-purchase-request))
+    (home-page "https://docs.tryton.org/projects/modules-purchase-requisition")
+    (synopsis "Tryton module to enter requests for product
+supply (requisition)")
+    (description "The @emph{Purchase Requisition} Tryton module allows users
+to create their requests for product supply (purchase requisitions).  Those
+requisitions will be approved or rejected by the approval group, whoich
+typically is the purchasing department.  On approval, purchase requests will
+be created.")
+    (license license:gpl3+)))
+
+(define-public trytond-purchase-secondary-unit
+  (package
+    (name "trytond-purchase-secondary-unit")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_purchase_secondary_unit" version))
+       (sha256
+        (base32 "0vyvdrshlikp9m3gxn1yyi15qxgih0cccxndr9d257fap9nilip5"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "purchase_secondary_unit"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-account-invoice-secondary-unit"
+        ,trytond-account-invoice-secondary-unit)
+       ("trytond-stock-secondary-unit" ,trytond-stock-secondary-unit)))
+    (propagated-inputs
+     (list trytond trytond-account-invoice trytond-product
+           trytond-purchase trytond-stock))
+    (home-page
+     "https://docs.tryton.org/projects/modules-purchase-secondary-unit")
+    (synopsis "Tryton module to add a secondary unit on purchase line")
+    (description "The @emph{Purchase Secondary Unit} Tryton module adds a
+secondary unit of measure on purchase lines.
+
+The secondary quantity and unit price are kept synchronized with the quantity
+and unit price.  The secondary unit is defined on the product supplier or on
+the product with its factor against the purchase unit.")
+    (license license:gpl3+)))
+
+(define-public trytond-purchase-shipment-cost
+  (package
+    (name "trytond-purchase-shipment-cost")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_purchase_shipment_cost" version))
+       (sha256
+        (base32 "0n54mkw8fbhyxn8sxrkn97bkx2c1j7bngsc7isc3md5c3kyi50nf"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "purchase_shipment_cost"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-account-invoice-stock" ,trytond-account-invoice-stock)
+       ("trytond-account-stock-anglo-saxon" ,trytond-account-stock-anglo-saxon)
+       ("trytond-account-stock-continental" ,trytond-account-stock-continental)
+       ("trytond-purchase" ,trytond-purchase)))
+    (propagated-inputs
+     (list trytond trytond-carrier trytond-currency trytond-product
+           trytond-stock))
+    (home-page
+     "https://docs.tryton.org/projects/modules-purchase-shipment-cost")
+    (synopsis "Tryton module for purchase shipment costs")
+    (description "The @emph{Purchase Shipment Cost} Tryton module adds
+shipment costs to Supplier Shipment.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale
+  (package
+    (name "trytond-sale")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale" version))
+       (sha256
+        (base32 "0wk5lhj74vl7zs4l3x176iwfqr3jnq37xhiksgnajsrjrl54bgfg"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond
+           trytond-account
+           trytond-account-invoice
+           trytond-account-invoice-stock
+           trytond-account-product
+           trytond-company
+           trytond-country
+           trytond-currency
+           trytond-party
+           trytond-product
+           trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-sale")
+    (synopsis "Tryton module for sale")
+    (description "The @emph{Sale} Tryton module helps organise and manage
+sales made by the company.  It adds the concept of a sale to Tryton and allows
+it to be tracked through its states from draft to done.  It also oversees the
+creation of customer shipments and invoices for the sales, and allows reports
+to be generated that contain aggregated sales figures.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-advance-payment
+  (package
+    (name "trytond-sale-advance-payment")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_advance_payment" version))
+       (sha256
+        (base32 "1h7jjh0ddfhk8b2rlmizlv5x31k14zz0xccm846kc4idvcsaqcy4"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_advance_payment"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-sale-supply" ,trytond-sale-supply)))
+    (propagated-inputs
+     (list python-simpleeval trytond trytond-account
+           trytond-account-invoice trytond-sale))
+    (home-page
+     "https://docs.tryton.org/projects/modules-sale-advance-payment")
+    (synopsis "Tryton module for sale advance payment")
+    (description "The @emph{Sale Advance Payment} Tryton module adds support
+for advance payment management on the sale.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-amendment
+  (package
+    (name "trytond-sale-amendment")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_amendment" version))
+       (sha256
+        (base32 "1vkcyfp30hng2vj1h1pvwrlvp9b59pkzzlmgnj6gvs867l8f2zva"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_amendment"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account-invoice trytond-sale
+           trytond-sale-history trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-sale-amendment")
+    (synopsis "Tryton module to amend sales")
+    (description "The @emph{Sale Amendment} Tryton module allows you to change
+sales that are being processed and keep track of the changes.  An amendment is
+composed of action lines which can:")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-complaint
+  (package
+    (name "trytond-sale-complaint")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_complaint" version))
+       (sha256
+        (base32 "0wbs7kawrzz39z0jw34ygdb85qja49xfb75ahbwgqd185wf3jvgz"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_complaint"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account-invoice trytond-company trytond-party
+           trytond-sale))
+    (home-page "https://docs.tryton.org/projects/modules-sale-complaint")
+    (synopsis "Tryton module for sale complaints")
+    (description "The @emph{Sale Complaint} Tryton module defines the
+@code{Complaint} model.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-credit-limit
+  (package
+    (name "trytond-sale-credit-limit")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_credit_limit" version))
+       (sha256
+        (base32 "1qj4lg5gjsqg27sv6l5afb3rgw46y008ywy6742w9ab6misy57dh"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_credit_limit"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond
+           trytond-account-credit-limit
+           trytond-account-invoice
+           trytond-company
+           trytond-currency
+           trytond-sale))
+    (home-page "https://docs.tryton.org/projects/modules-sale-credit-limit")
+    (synopsis "Tryton module for sale credit limit")
+    (description "The @emph{Sale Credit Limit} Tryton module adds confirmed
+sale but not yet invoiced to the credit amount of the party and check the
+credit limit of the party when confirming a sale.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-discount
+  (package
+    (name "trytond-sale-discount")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_discount" version))
+       (sha256
+        (base32 "0ss976dcx6k2z2gdbhcgdp6d561b2vwwgf83xdl2pc28q2d3rmh6"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_discount"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-product trytond-sale))
+    (home-page "https://docs.tryton.org/projects/modules-sale-discount")
+    (synopsis "Tryton module that manages discount on sale")
+    (description "The @emph{Sale Discount} Tryton module adds discount on sale
+line.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-extra
+  (package
+    (name "trytond-sale-extra")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_extra" version))
+       (sha256
+        (base32 "0n6fxv573bszhfw1ik16y9754jfp6r2rrliprm6iv7v5ld3r1yqi"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_extra"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond
+           trytond-company
+           trytond-product
+           trytond-product-price-list
+           trytond-sale
+           trytond-sale-price-list))
+    (home-page "https://docs.tryton.org/projects/modules-sale-extra")
+    (synopsis "Tryton module for sale extra")
+    (description "The @emph{Sale Extra} Tryton module allows to add extra line
+on sale based on criteria.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-gift-card
+  (package
+    (name "trytond-sale-gift-card")
+    (version "6.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_gift_card" version))
+       (sha256
+        (base32 "0bbcgm7xs5hmn3axz62jkarhl9v43nk9mk9zldlf9qrfqy89fd80"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_gift_card"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond
+           trytond-account
+           trytond-account-invoice
+           trytond-company
+           trytond-product
+           trytond-sale
+           trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-sale-gift-card")
+    (synopsis "Tryton module to manage gift cards")
+    (description "The @emph{Sale Gift Card} Tryton module manages the selling
+and redeeming of gift cards.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-history
+  (package
+    (name "trytond-sale-history")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_history" version))
+       (sha256
+        (base32 "1pp5lmmpiqakcmwxv392v1miiisbb0yl55gjb618ngx6ayrd0vdv"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_history"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-sale))
+    (home-page "https://docs.tryton.org/projects/modules-sale-history")
+    (synopsis "Tryton module to historize sales")
+    (description "The @emph{Sale History} Tryton module activates the
+historization of the sale and adds a revision counter which increases each
+time the sale is reset to draft.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-invoice-grouping
+  (package
+    (name "trytond-sale-invoice-grouping")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_invoice_grouping" version))
+       (sha256
+        (base32 "1h8lcm8dg3i6644c50d9y1lca9x7k8l6cvwzkabvzixm54mflqsx"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_invoice_grouping"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account-invoice trytond-party trytond-sale))
+    (home-page
+     "https://docs.tryton.org/projects/modules-sale-invoice-grouping")
+    (synopsis "Tryton module to group sale invoices")
+    (description "The @emph{Sale Invoice Grouping} Tryton module adds an
+option to define how invoice lines generated from sales will be grouped.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-opportunity
+  (package
+    (name "trytond-sale-opportunity")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_opportunity" version))
+       (sha256
+        (base32 "0rvj73382h2ha6jqhini0fzpn40w190qij1r7k2fa0c9ls15rrp5"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_opportunity"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond
+           trytond-account
+           trytond-account-invoice
+           trytond-company
+           trytond-currency
+           trytond-party
+           trytond-product
+           trytond-sale
+           trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-sale-opportunity")
+    (synopsis "Tryton module with leads and opportunities")
+    (description "The @emph{Sale Opportunity} Tryton module defines the
+lead/opportunity model.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-payment
+  (package
+    (name "trytond-sale-payment")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_payment" version))
+       (sha256
+        (base32 "0i38766m9a0arhwybsqgk11zmmr982mmcsn0fswq695gb0zlwl0f"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_payment"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-account-payment-clearing" ,trytond-account-payment-clearing)))
+    (propagated-inputs
+     (list trytond trytond-account-invoice trytond-account-payment
+           trytond-sale))
+    (home-page "https://docs.tryton.org/projects/modules-sale-payment")
+    (synopsis "Tryton module that manage payments on sale")
+    (description "The @emph{Sale Payment} Tryton module extends Sale to allow
+payments prior to the creation of any invoice.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-price-list
+  (package
+    (name "trytond-sale-price-list")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_price_list" version))
+       (sha256
+        (base32 "0xg0i12a7billpdv13arvc3j5jsbn9gzis8snkl84315ayz3irq4"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_price_list"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-company trytond-party
+           trytond-product-price-list trytond-sale))
+    (home-page "https://docs.tryton.org/projects/modules-sale-price-list")
+    (synopsis "Tryton module to add price list on sale")
+    (description "The @emph{Sale Price List} Tryton module adds support for
+price list on sale.  A price list can be set per party or as default.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-product-customer
+  (package
+    (name "trytond-sale-product-customer")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_product_customer" version))
+       (sha256
+        (base32 "0yys6mc52v62v51wkg3wngmz9jhqb2lq9v5jvb93j0yh5ah07a4v"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_product_customer"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-sale-amendment" ,trytond-sale-amendment)))
+    (propagated-inputs
+     (list trytond trytond-product trytond-sale))
+    (home-page
+     "https://docs.tryton.org/projects/modules-sale-product-customer")
+    (synopsis "Tryton module to manage customer product on sale")
+    (description "The @emph{Sale Product_Customer} Tryton module defines
+customer's names and codes for products or variants.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-promotion
+  (package
+    (name "trytond-sale-promotion")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_promotion" version))
+       (sha256
+        (base32 "1bvk14sjlqrlg2wakihrcbz8vl40hr6isbc3ijdsv5g1khl3j74i"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_promotion"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list python-simpleeval
+           trytond
+           trytond-company
+           trytond-product
+           trytond-product-price-list
+           trytond-sale
+           trytond-sale-price-list))
+    (home-page "https://docs.tryton.org/projects/modules-sale-promotion")
+    (synopsis "Tryton module for sale promotion")
+    (description "The @emph{Sale Promotion} module allows to apply promotions
+on sale based on criteria.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-promotion-coupon
+  (package
+    (name "trytond-sale-promotion-coupon")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_promotion_coupon" version))
+       (sha256
+        (base32 "1hkbsamsf6swx05ij2yh7b3nvmcnlvf9xbz9r7hfs6blx2jkxs3p"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_promotion_coupon"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-sale trytond-sale-promotion))
+    (home-page
+     "https://docs.tryton.org/projects/modules-sale-promotion-coupon")
+    (synopsis "Tryton module for sale promotion coupon")
+    (description "The @emph{Sale Promotion Coupon} Tryton module adds coupon
+to the promotions.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-secondary-unit
+  (package
+    (name "trytond-sale-secondary-unit")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_secondary_unit" version))
+       (sha256
+        (base32 "0w7jw6ih4ypwqy83r5qrpclp3yalsrvnz65z2kn5yqaj95b4dpy8"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_secondary_unit"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-account-invoice-secondary-unit"
+        ,trytond-account-invoice-secondary-unit)
+       ("trytond-sale-product-customer" ,trytond-sale-product-customer)
+       ("trytond-stock-secondary-unit" ,trytond-stock-secondary-unit)))
+    (propagated-inputs
+     (list trytond trytond-account-invoice trytond-product trytond-sale
+           trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-sale-secondary-unit")
+    (synopsis "Tryton module to add a secondary unit on sale line")
+    (description "The @emph{Sale Secondary Unit} Tryton module adds a
+secondary unit of measure on sale lines.  The secondary quantity and unit
+price are kept synchronized with the quantity and unit price.  The secondary
+unit is defined on the product with its factor against the sale unit.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-shipment-cost
+  (package
+    (name "trytond-sale-shipment-cost")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_shipment_cost" version))
+       (sha256
+        (base32 "1h1qhp90f8mzx2px48fa8xsgwhbf2gkg8q94vghy696a3hh1xzxb"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_shipment_cost"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-sale-promotion" ,trytond-sale-promotion)
+       ("trytond-stock-shipment-cost" ,trytond-stock-shipment-cost)))
+    (propagated-inputs
+     (list trytond
+           trytond-account-invoice
+           trytond-carrier
+           trytond-currency
+           trytond-product
+           trytond-sale
+           trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-sale-shipment-cost")
+    (synopsis "Tryton module for sale shipment cost")
+    (description "The @emph{Sale Shipment Cost} Tryton module adds shipment
+cost for sale.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-shipment-grouping
+  (package
+    (name "trytond-sale-shipment-grouping")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_shipment_grouping" version))
+       (sha256
+        (base32 "0n1h50j6c4za7a16pgn916cqjxxrd2qs16hb2h42wsp5p2bkfww2"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_shipment_grouping"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-party trytond-sale trytond-stock))
+    (home-page
+     "https://docs.tryton.org/projects/modules-sale-shipment-grouping")
+    (synopsis "Tryton module to group sale stock moves")
+    (description "The @emph{Sale Shipment Grouping} module adds an option to
+define how stock moves generated from sales will be grouped.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-shipment-tolerance
+  (package
+    (name "trytond-sale-shipment-tolerance")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_shipment_tolerance" version))
+       (sha256
+        (base32 "0zigl695hyw7zyk86y1ng6mnvd9v8dbk05c5n6q14yvh4gz3ri5l"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_shipment_tolerance"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-sale trytond-stock))
+    (home-page
+     "https://docs.tryton.org/projects/modules-sale-shipment-tolerance")
+    (synopsis "Tryton module to define tolerance for sale shipment")
+    (description "The @emph{Sale Shipment Tolerance} module adds under and
+over shipment tolerance on the sale.  If the quantity of a sale line is under
+shipped but inside the tolerance percentage, then the line will be considered
+as fully shipped and no back-order will be created.  If the quantity of a sale
+line is over shipped more than the tolerance percentage, then a warning is
+raised.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-stock-quantity
+  (package
+    (name "trytond-sale-stock-quantity")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_stock_quantity" version))
+       (sha256
+        (base32 "0xi79nmizly3hfc1ppcid622nvby50524jflisfvmjb651ixpfl8"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_stock_quantity"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-stock-supply" ,trytond-stock-supply)))
+    (propagated-inputs
+     (list trytond trytond-product trytond-sale trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-sale-stock-quantity")
+    (synopsis "Tryton module to add stock warning on sale")
+    (description "The @emph{Sale Stock Quantity} Tryton module checks the
+stock quantity of the products when quoting a sale.  The check will warn the
+user if the forecast quantity at the sale date (and further dates until next
+supply) is lower than the quantity sold by considering other sales and the
+stock forecasts.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-subscription
+  (package
+    (name "trytond-sale-subscription")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_subscription" version))
+       (sha256
+        (base32 "092ljl0ywybwchp4qfki752nclqc6hkx2h99cd1h3g998jv3l72x"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_subscription"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond
+           trytond-account
+           trytond-account-invoice
+           trytond-company
+           trytond-currency
+           trytond-product
+           trytond-sale))
+    (home-page "https://docs.tryton.org/projects/modules-sale-subscription")
+    (synopsis "Tryton module for subscription")
+    (description "The @emph{Sale Subscription} module defines subscription,
+services and recurrence rule models.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-subscription-asset
+  (package
+    (name "trytond-sale-subscription-asset")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_subscription_asset" version))
+       (sha256
+        (base32 "1j160sqfvzqv0ah85w2bsc4fixrxhzjq0lbin2bgasmdm3yqfqdj"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_subscription_asset"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-sale-subscription trytond-stock-lot))
+    (home-page
+     "https://docs.tryton.org/projects/modules-sale-subscription-asset")
+    (synopsis "Tryton module to handle asset in the sale subscriptions")
+    (description "The @emph{Sale Subscription Asset} Tryton module adds the
+notion of asset to the sale subscription module.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-supply
+  (package
+    (name "trytond-sale-supply")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_supply" version))
+       (sha256
+        (base32 "0lk4pj2fr1q603wnia96i7fzym8pncpvy0hg41q4dkr380nm3qzs"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_supply"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-purchase trytond-purchase-request trytond-sale
+           trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-sale-supply")
+    (synopsis "Tryton module for sale supply")
+    (description "The @emph{Sale Supply} Tryton module adds a \"supply on sale
+option\" to purchasable products.  If checked, it will generate a purchase
+request for each sale line of this product regardless of the stock levels.
+Once the purchased products are received they are assigned on the customer
+shipments.  If the purchase is cancelled the sale goes back to the default
+supply method.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-supply-drop-shipment
+  (package
+    (name "trytond-sale-supply-drop-shipment")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_supply_drop_shipment" version))
+       (sha256
+        (base32 "0gm2m5zm7vrm1vb34svqby7h91ka3mhln3367zmwr17yfyqf68dk"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_supply_drop_shipment"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond
+           trytond-company
+           trytond-product
+           trytond-purchase
+           trytond-purchase-request
+           trytond-sale
+           trytond-sale-supply
+           trytond-stock))
+    (home-page
+     "https://docs.tryton.org/projects/modules-sale-supply-drop-shipment")
+    (synopsis "Tryton module for sale supply drop shipment")
+    (description "The @emph{Sale Supply Drop Shipment} Tryton module adds a
+drop shipment option on product supplier if \"supply on request\" is checked.
+When checked, the purchase request and the linked purchase have the address of
+customer as Delivery Address; at the confirmation of the purchase a drop
+shipment is created and linked to both the purchase and the sale.")
+    (license license:gpl3+)))
+
+(define-public trytond-sale-supply-production
+  (package
+    (name "trytond-sale-supply-production")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_sale_supply_production" version))
+       (sha256
+        (base32 "03v702r4sfmql5yv6414gi2y72psvr3zq3xmx049w5nsywc2585v"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "sale_supply_production"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-production trytond-sale-supply))
+    (home-page
+     "https://docs.tryton.org/projects/modules-sale-supply-production")
+    (synopsis "Tryton module to supply sales from production")
+    (description "The @emph{Sale Supply Production} Tryton module adds a
+\"supply on sale\" option to producible products.  If checked, it will
+generate a production request for each sale line of this product regardless of
+the stock levels.  Once the products are produced they are assigned to the
+customer shipments.  If the production request is cancelled, the sale goes
+back to the default supply method.")
+    (license license:gpl3+)))
+
 (define-public trytond-stock
   (package
     (name "trytond-stock")
@@ -548,14 +3487,14 @@ generated by other process from Tryton.")
         (base32 "1v6pvkwj6vhjqbz2zn0609kb7kx4g0dsn1xhvax4z2dqigh7ywpx"))))
     (build-system python-build-system)
     (arguments (tryton-arguments "stock"))
-    (native-inputs `(,@%standard-trytond-native-inputs))
+    (native-inputs (%standard-trytond-native-inputs))
     (propagated-inputs
-     `(("python-simpleeval" ,python-simpleeval)
-       ("trytond" ,trytond)
-       ("trytond-company" ,trytond-company)
-       ("trytond-currency" ,trytond-currency)
-       ("trytond-party" ,trytond-party)
-       ("trytond-product" ,trytond-product)))
+     (list python-simpleeval
+           trytond
+           trytond-company
+           trytond-currency
+           trytond-party
+           trytond-product))
     (home-page "https://www.tryton.org/")
     (synopsis "Tryton module for stock and inventory")
     (description
@@ -568,6 +3507,150 @@ inventory to control and update stock levels.")
 (define-public python-trytond-stock
   (deprecated-package "python-trytond-stock" trytond-stock))
 
+(define-public trytond-stock-assign-manual
+  (package
+    (name "trytond-stock-assign-manual")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_assign_manual" version))
+       (sha256
+        (base32 "0106x21ncxiyd4jsbdapmf6gfix6infjf59807j2lqmrblb3z25f"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_assign_manual"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-production" ,trytond-production)))
+    (propagated-inputs
+     (list trytond trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-stock-assign-manual")
+    (synopsis "Tryton module to assign manually stock move")
+    (description "The @emph{Stock Assign Manual} Tryton module adds a wizard
+on shipments and production that allows you to decide from which precise
+location to pick products.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-consignment
+  (package
+    (name "trytond-stock-consignment")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_consignment" version))
+       (sha256
+        (base32 "0c2wa0d8msam77nd4c79f71jaznsprnlvv1jqrmkl1qf3lvgq4a2"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_consignment"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-stock-supply" ,trytond-stock-supply)))
+    (propagated-inputs
+     (list trytond
+           trytond-account-invoice
+           trytond-account-invoice-line-standalone
+           trytond-account-invoice-stock
+           trytond-product
+           trytond-purchase
+           trytond-sale
+           trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-stock-consignment")
+    (synopsis "Tryton module to manage consignment stock")
+    (description "The @emph{Stock Consignment} Tryton module allow to manage
+consignment stock from supplier or at customer warehouse.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-forecast
+  (package
+    (name "trytond-stock-forecast")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_forecast" version))
+       (sha256
+        (base32 "1l3ks2jbz95qqbv9jsvakrxgazyq1kkk3fspwvrg1d10rv6xmb58"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_forecast"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-company trytond-product trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-stock-forecast")
+    (synopsis "Tryton module with stock forecasts")
+    (description "The @emph{Stock Forecast} Tryton module provide a simple way
+to create stock moves toward customers with a date in the future.  This allows
+other stock mechanisms to anticipate customer demand.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-inventory-location
+  (package
+    (name "trytond-stock-inventory-location")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_inventory_location" version))
+       (sha256
+        (base32 "0mvgday5qhmx89xikklr2ad2xa7zxkiysxa2bqsf76imvx4801q6"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_inventory_location"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-company trytond-product trytond-stock))
+    (home-page
+     "https://docs.tryton.org/projects/modules-stock-inventory-location")
+    (synopsis "Tryton module to create inventories by locations")
+    (description "The @emph{Stock Inventory Location} Tryton module adds a new
+wizard \"Create Inventories\" under the \"Inventories\" sub-menu.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-location-move
+  (package
+    (name "trytond-stock-location-move")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_location_move" version))
+       (sha256
+        (base32 "1mljb97abwcmsl3zmz20b2kfa8wm9q405kr1lag7j5587j2b2h6f"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_location_move"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-stock-supply" ,trytond-stock-supply)))
+    (propagated-inputs
+     (list trytond trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-stock-location-move")
+    (synopsis "Tryton module to move storage locations")
+    (description "The @emph{Stock Location} move Tryton module allows to
+define some Locations as movable
+(like palette).")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-location-sequence
+  (package
+    (name "trytond-stock-location-sequence")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_location_sequence" version))
+       (sha256
+        (base32 "0lpvgk5s7v30c0hicqc2m6apv8gzd1d6229yv1lrp2g62yp9pa9f"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_location_sequence"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-stock))
+    (home-page
+     "https://docs.tryton.org/projects/modules-stock-location-sequence")
+    (synopsis "Tryton module to add sequence on location")
+    (description "The @emph{Stock Location Sequence} Tryton module adds
+ordering to location.")
+    (license license:gpl3+)))
+
 (define-public trytond-stock-lot
   (package
     (name "trytond-stock-lot")
@@ -580,11 +3663,9 @@ inventory to control and update stock levels.")
         (base32 "18cwrvnrzjk1wb765gr6hp3plpdpwz1a7cwimjhxi47iw7w5c84g"))))
     (build-system python-build-system)
     (arguments (tryton-arguments "stock_lot"))
-    (native-inputs `(,@%standard-trytond-native-inputs))
+    (native-inputs (%standard-trytond-native-inputs))
     (propagated-inputs
-     `(("trytond" ,trytond)
-       ("trytond-product" ,trytond-product)
-       ("trytond-stock" ,trytond-stock)))
+     (list trytond trytond-product trytond-stock))
     (home-page "https://www.tryton.org/")
     (synopsis "Tryton module for lot of products")
     (description
@@ -594,6 +3675,297 @@ inventory to control and update stock levels.")
 (define-public python-trytond-stock-lot
   (deprecated-package "python-trytond-stock-lot" trytond-stock-lot))
 
+(define-public trytond-stock-lot-sled
+  (package
+    (name "trytond-stock-lot-sled")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_lot_sled" version))
+       (sha256
+        (base32 "1x8sjhgbakqbgfhrrl7b1b0961riqibs6q6lmgmyrvjyrxx0hpig"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_lot_sled"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-product trytond-stock trytond-stock-lot))
+    (home-page "https://docs.tryton.org/projects/modules-stock-lot-sled")
+    (synopsis "Tryton module for shelf life expiration date of product lots")
+    (description "The @emph{Stock Lot Sled} Tryton module adds the \"Shelf
+Live Expiration Date\" anf \"Expiration Date\" on \"lot of products\".  When
+the shelf life of a lot expires in less than the configured shelf life delay,
+it is no more used to compute the forecast quantity of the stock.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-lot-unit
+  (package
+    (name "trytond-stock-lot-unit")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_lot_unit" version))
+       (sha256
+        (base32 "1acvrj9af83gmfcp7kgyi37kv3v5910rh1q73scd37xbv7h8dyrm"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_lot_unit"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-production" ,trytond-production)))
+    (propagated-inputs
+     (list trytond trytond-product trytond-stock trytond-stock-lot))
+    (home-page "https://docs.tryton.org/projects/modules-stock-lot-unit")
+    (synopsis "Tryton module to define unit on stock lot")
+    (description "The @emph{Stock Lot Unit} Tryton module allows to define a
+unit and quantity on stock lot.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-package
+  (package
+    (name "trytond-stock-package")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_package" version))
+       (sha256
+        (base32 "1jbpl141wyc19v27bcyqsph8p2zf9yqprm55yl642mvwq55bshq8"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_package"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-company trytond-product trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-stock-package")
+    (synopsis "Tryton module for stock packaging")
+    (description "The @emph{Stock Package} Tryton module allows to store
+packaging information about customer and supplier return shipments.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-package-shipping
+  (package
+    (name "trytond-stock-package-shipping")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_package_shipping" version))
+       (sha256
+        (base32 "09j7v64wmpiw1bh9byjq4shsd5474rq0mfx7wwak8hn0v5ni7imn"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_package_shipping"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond
+           trytond-carrier
+           trytond-product
+           trytond-product-measurements
+           trytond-sale-shipment-cost
+           trytond-stock
+           trytond-stock-package
+           trytond-stock-shipment-measurements))
+    (home-page
+     "https://docs.tryton.org/projects/modules-stock-package-shipping")
+    (synopsis "Tryton base module for interacting with shipping services")
+    (description "This Tryton module is the Fundamental module required to
+interact with shipping service providers.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-package-shipping-ups
+  (package
+    (name "trytond-stock-package-shipping-ups")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_package_shipping_ups" version))
+       (sha256
+        (base32 "1dw6amd1kvpsldk14m656c0hpazf1ljzz2zri00nqq11d9x8xab5"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_package_shipping_ups"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list python-requests
+           trytond
+           trytond-party
+           trytond-product
+           trytond-stock
+           trytond-stock-package
+           trytond-stock-package-shipping
+           trytond-stock-shipment-measurements))
+    (home-page
+     "https://docs.tryton.org/projects/modules-stock-package-shipping-ups")
+    (synopsis "UPS connector for the Tryton application plateform")
+    (description "The @emph{Stock Package Shipping UPS} Tryton module allows
+you to generate the UPS labels per package using the UPS webservices.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-product-location
+  (package
+    (name "trytond-stock-product-location")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_product_location" version))
+       (sha256
+        (base32 "1r0a9pkyjh1n0xhax583v80fawnszxaf9q8r3851325an2rmndx8"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_product_location"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-production" ,trytond-production)))
+    (propagated-inputs
+     (list trytond trytond-product trytond-stock))
+    (home-page
+     "https://docs.tryton.org/projects/modules-stock-product-location")
+    (synopsis "Tryton module to add default location on product")
+    (description "The @emph{Stock Product Location} Tryton module adds on the
+product form a list of preferred location by warehouse.  This list is used
+when a supplier shipment is received: the auto-generated Inventory Moves will
+use as default destination the preferred locations associated to the current
+warehouse.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-quantity-early-planning
+  (package
+    (name "trytond-stock-quantity-early-planning")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_quantity_early_planning" version))
+       (sha256
+        (base32 "05djbhz82wjkgvfvlzkhzi94nfg0cif3jfmh1jv0zixzfv87chqs"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_quantity_early_planning"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-production" ,trytond-production)))
+    (propagated-inputs
+     (list trytond trytond-company trytond-stock))
+    (home-page
+     "https://docs.tryton.org/projects/modules-stock-quantity-early-planning")
+    (synopsis "Tryton module to plan earlier shipments and productions")
+    (description "The @emph{Stock Quantity Early Planning} Tryton module helps
+reducing stock level by proposing to consume earlier.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-quantity-issue
+  (package
+    (name "trytond-stock-quantity-issue")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_quantity_issue" version))
+       (sha256
+        (base32 "1fk250l09l2q4jcx1vh9nkkpn419ng993bkp2bmk6dpk7xs1qv0v"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_quantity_issue"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-production" ,trytond-production)))
+    (propagated-inputs
+     (list trytond trytond-company trytond-product trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-stock-quantity-issue")
+    (synopsis "Tryton module to manage quantity issue with stock")
+    (description "The @emph{Stock Quantity Issue} Tryton module helps to solve
+stock quantity issues.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-secondary-unit
+  (package
+    (name "trytond-stock-secondary-unit")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_secondary_unit" version))
+       (sha256
+        (base32 "0s4nryiirdbndm2sz5aqpk2mzw9zxah92gmh6433sj5zyc6a22if"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_secondary_unit"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-product trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-stock-secondary-unit")
+    (synopsis "Tryton module to add a secondary unit on stock move")
+    (description "The @emph{Stock Secondary Unit} Tryton module adds a
+secondary unit of measure on the stock move.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-shipment-cost
+  (package
+    (name "trytond-stock-shipment-cost")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_shipment_cost" version))
+       (sha256
+        (base32 "13c940pz5ivqj9qk6b5nbid2xfkjnnijjmbz1bn7ic7ydfpiqy8j"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_shipment_cost"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-product trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-stock-shipment-cost")
+    (synopsis "Tryton module for stock shipment cost")
+    (description "The @emph{Stock Shipment Cost} Tryton Module adds a shipment
+cost on the outgoing moves which is calculated from the carrier purchase
+price.  This cost is added to the product margin reports.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-shipment-measurements
+  (package
+    (name "trytond-stock-shipment-measurements")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_shipment_measurements" version))
+       (sha256
+        (base32 "1h9ijs7yc0013w7cwa4i7ny3dndbgycxxpkai7qw0ygqf9ajmh8c"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_shipment_measurements"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-stock-package" ,trytond-stock-package)))
+    (propagated-inputs
+     (list trytond trytond-product trytond-product-measurements
+           trytond-stock))
+    (home-page
+     "https://docs.tryton.org/projects/modules-stock-shipment-measurements")
+    (synopsis "Tryton module to add measurements to shipment")
+    (description "The @emph{Stock Shipment Measurements} Tryton module adds
+weight and volume on shipments and packages.  They are computed using the
+measurement and the quantity of their moves.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-split
+  (package
+    (name "trytond-stock-split")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_split" version))
+       (sha256
+        (base32 "0ynvmmdxgzgg6mn8ckhl7jr9ircq4bpwsl0xpzk83r6mhlvlrxpm"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_split"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-stock))
+    (home-page "https://docs.tryton.org/projects/modules-stock-split")
+    (synopsis "Tryton module to split stock move")
+    (description "The @emph{Stock Split} Tryton module adds on the stock move
+a wizard that allows to split them.  The move is split into moves of Quantity.
+If Counts is set, it will be split only this number of times.  On occasion
+there can be a move with the remaining quantity.")
+    (license license:gpl3+)))
+
 (define-public trytond-stock-supply
   (package
     (name "trytond-stock-supply")
@@ -606,15 +3978,15 @@ inventory to control and update stock levels.")
         (base32 "1p5l3yjjy6l25kk9xnhbl691l3v8gfg9fhc87jc6qszhxlqxk730"))))
     (build-system python-build-system)
     (arguments (tryton-arguments "stock_supply"))
-    (native-inputs `(,@%standard-trytond-native-inputs))
+    (native-inputs (%standard-trytond-native-inputs))
     (propagated-inputs
-     `(("trytond" ,trytond)
-       ("trytond-account" ,trytond-account)
-       ("trytond-party" ,trytond-party)
-       ("trytond-product" ,trytond-product)
-       ("trytond-purchase" ,trytond-purchase)
-       ("trytond-purchase-request" ,trytond-purchase-request)
-       ("trytond-stock" ,trytond-stock)))
+     (list trytond
+           trytond-account
+           trytond-party
+           trytond-product
+           trytond-purchase
+           trytond-purchase-request
+           trytond-stock))
     (home-page "https://www.tryton.org/")
     (synopsis "Tryton module for stock supply")
     (description
@@ -624,3 +3996,268 @@ mechanisms and introduces the concepts of order point.")
 
 (define-public python-trytond-stock-supply
   (deprecated-package "python-trytond-stock-supply" trytond-stock-supply))
+
+(define-public trytond-stock-supply-day
+  (package
+    (name "trytond-stock-supply-day")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_supply_day" version))
+       (sha256
+        (base32 "1b6q2zk0qnsxdhlqgsnb49prgn6sgqlpr84vy31a2p83mwiz0fqr"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_supply_day"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-purchase))
+    (home-page "https://docs.tryton.org/projects/modules-stock-supply-day")
+    (synopsis "Tryton module to add supply weekdays")
+    (description "The @emph{Stock Supply Day} Tryton module adds a Week Days
+list on the Product Supplier form.  This allow to restrict the supply week
+days for each supplier on each product.  If no days are defined for a supplier
+a supplying may happens at any day of the week.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-supply-forecast
+  (package
+    (name "trytond-stock-supply-forecast")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_supply_forecast" version))
+       (sha256
+        (base32 "0i5dc9ddd6mfx3zjlcq16isw52b8qy7igaj2lv8jqvkdrc19yfha"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_supply_forecast"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-stock-forecast trytond-stock-supply))
+    (home-page
+     "https://docs.tryton.org/projects/modules-stock-supply-forecast")
+    (synopsis "Tryton module to add forecast to supply computation")
+    (description "The @emph{Stock Supply Forecast} Tryton module takes
+forecast into account to compute purchase requests.")
+    (license license:gpl3+)))
+
+(define-public trytond-stock-supply-production
+  (package
+    (name "trytond-stock-supply-production")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_stock_supply_production" version))
+       (sha256
+        (base32 "1qyvj61hwn3xgjqagnr7d28qkiniw5fp0b5vmn9wii9grf7p4m8d"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "stock_supply_production"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-product trytond-production trytond-stock
+           trytond-stock-supply))
+    (home-page
+     "https://docs.tryton.org/projects/modules-stock-supply-production")
+    (synopsis "Tryton module for stock supply of production")
+    (description "The @emph{Stock Supply Production} module adds automatic
+supply mechanisms via production request.")
+    (license license:gpl3+)))
+
+(define-public trytond-timesheet
+  (package
+    (name "trytond-timesheet")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_timesheet" version))
+       (sha256
+        (base32 "0airh5jvcdjbkb71p684dr5qgsnpam2hhmq6gswclgnx3nd1lz6a"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "timesheet"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-company trytond-company-work-time))
+    (home-page "https://docs.tryton.org/projects/modules-timesheet")
+    (synopsis "Tryton module with timesheets")
+    (description "The @emph{Timesheet} Tryton module allows to track the time
+spent by employees on various works.  This module also comes with several
+reports that show the time spent by employees on works following various time
+periods.")
+    (license license:gpl3+)))
+
+(define-public trytond-timesheet-cost
+  (package
+    (name "trytond-timesheet-cost")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_timesheet_cost" version))
+       (sha256
+        (base32 "0pjsdgad2plbx8k6mh6mpa6qbz6lp30nnpv7ydyz0gsgb6jz7li6"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "timesheet_cost"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-company trytond-party trytond-timesheet))
+    (home-page "https://docs.tryton.org/projects/modules-timesheet-cost")
+    (synopsis "Tryton module to add cost on timesheet")
+    (description "The @emph{Timesheet Cost} Tryton module adds cost price per
+employee.")
+    (license license:gpl3+)))
+
+(define-public trytond-user-role
+  (package
+    (name "trytond-user-role")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_user_role" version))
+       (sha256
+        (base32 "11sjz46kagrpig5n05pp52yph4z0l1zm140q9wsagjcmzkx7s6gf"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "user_role"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond))
+    (home-page "https://docs.tryton.org/projects/modules-user-role")
+    (synopsis "Tryton module to manage roles on users")
+    (description "This package provides a Tryton module for assigning roles to
+user instead of groups.  A Role is defined by a set of groups.  When a role is
+added to a user, it overrides the existing groups.  A role can be added to a
+user for a period of time only.")
+    (license license:gpl3+)))
+
+(define-public trytond-web-shop
+  (package
+    (name "trytond-web-shop")
+    (version "6.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_web_shop" version))
+       (sha256
+        (base32 "0gnq9hyx4x681hcmqsm2d6rga7chbaf2r2k2nmnkjq6izg5ivas2"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "web_shop"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-product-attribute" ,trytond-product-attribute)))
+    (propagated-inputs
+     (list trytond
+           trytond-account
+           trytond-company
+           trytond-currency
+           trytond-product
+           trytond-sale
+           trytond-stock
+           trytond-web-user))
+    (home-page "https://docs.tryton.org/projects/modules-web-shop")
+    (synopsis "Tryton module that provides a common base for webshops")
+    (description "The @emph{Web Shop} Tryton module facilitates storing
+configuration of an online web shop.")
+    (license license:gpl3+)))
+
+(define-public trytond-web-shop-vue-storefront
+  (package
+    (name "trytond-web-shop-vue-storefront")
+    (version "6.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_web_shop_vue_storefront" version))
+       (sha256
+        (base32 "0hccvk5i2qrczvbm66mnp8vcgr9zbnwqmbqmavqlkk7r7bqa1gch"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "web_shop_vue_storefront"))
+    (native-inputs
+     `(,@(%standard-trytond-native-inputs)
+       ("trytond-carrier" ,trytond-carrier)
+       ("trytond-product-attribute" ,trytond-product-attribute)
+       ("trytond-sale-promotion-coupon" ,trytond-sale-promotion-coupon)
+       ("trytond-sale-shipment-cost" ,trytond-sale-shipment-cost)))
+    (propagated-inputs
+     (list python-elasticsearch
+           python-stdnum
+           trytond
+           trytond-party
+           trytond-product
+           trytond-sale
+           trytond-web-shop
+           trytond-web-user))
+    (home-page
+     "https://docs.tryton.org/projects/modules-web-shop-vue-storefront")
+    (synopsis "Tryton module to integrate with Vue Storefront")
+    (description "This Tryton module provides the back-end to integrate with
+Vue Storefront 1.x.")
+    (license license:gpl3+)))
+
+(define-public trytond-web-shop-vue-storefront-stripe
+  (package
+    (name "trytond-web-shop-vue-storefront-stripe")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_web_shop_vue_storefront_stripe" version))
+       (sha256
+        (base32 "0j4yv9q0f39bkyqlcn7kpnlqi9wc4qfjs8zic69za6xw2c86zgzm"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "web_shop_vue_storefront_stripe"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-account-payment-stripe trytond-sale-payment
+           trytond-web-shop trytond-web-shop-vue-storefront))
+    (home-page
+     "https://docs.tryton.org/projects/modules-web-shop-vue-storefront-stripe")
+    (synopsis "Tryton module to support Stripe payment with Vue Storefront")
+    (description "The @emph{Web Shop Vue Storefront Stripe} Tryton module
+provides support of Stripe payment for Vue Storefront integration.")
+    (license license:gpl3+)))
+
+(define-public trytond-web-shortener
+  (package
+    (name "trytond-web-shortener")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_web_shortener" version))
+       (sha256
+        (base32 "0vxwnsy7xzxawn7fmm6ykdrhih6ahrwwx6fzd6kz7qbwh4nmqcpk"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "web_shortener"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond))
+    (home-page "https://docs.tryton.org/projects/modules-web-shortener")
+    (synopsis "Tryton module to plug a URL to an action")
+    (description "The @emph{Web Shortener} Tryton module allows URLs to be
+shortened.  It also counts the number of times the URL is accessed and
+optionally triggers action.")
+    (license license:gpl3+)))
+
+(define-public trytond-web-user
+  (package
+    (name "trytond-web-user")
+    (version "6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_web_user" version))
+       (sha256
+        (base32 "1k07d1kcfm2hwwqcyy8k5mjbhhgrnji0hadn487zsx1zp50r6rds"))))
+    (build-system python-build-system)
+    (arguments (tryton-arguments "web_user"))
+    (native-inputs (%standard-trytond-native-inputs))
+    (propagated-inputs
+     (list trytond trytond-party))
+    (home-page "https://docs.tryton.org/projects/modules-web-user")
+    (synopsis "Tryton module to manage Web users")
+    (description "The @emph{Web User} Tryton module provides facilities to
+manage external user accessing from the web.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/tv.scm b/gnu/packages/tv.scm
index 88df5c90bf..3927aca776 100644
--- a/gnu/packages/tv.scm
+++ b/gnu/packages/tv.scm
@@ -54,20 +54,20 @@
                 "<sys/stat.h>\n#include <sys/sysmacros.h>"))
              #t)))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxt" ,libxt)
-       ("libxtst" ,libxtst)
-       ("libxinerama" ,libxinerama)
-       ("libxv" ,libxv)
-       ("libxxf86vm" ,libxxf86vm)
-       ("libpng" ,libpng)
-       ("libxml2" ,libxml2)
-       ("freetype" ,freetype)
-       ("zlib" ,zlib)))
+     (list alsa-lib
+           libx11
+           libxext
+           libxt
+           libxtst
+           libxinerama
+           libxv
+           libxxf86vm
+           libpng
+           libxml2
+           freetype
+           zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://tvtime.sourceforge.net")
     (synopsis "Television viewer")
     (description
diff --git a/gnu/packages/uglifyjs.scm b/gnu/packages/uglifyjs.scm
index 275553bb60..b65d52b8df 100644
--- a/gnu/packages/uglifyjs.scm
+++ b/gnu/packages/uglifyjs.scm
@@ -37,8 +37,7 @@
         (base32 "0q1f91xwwm829cl5v727d4qkxy4yh7wri3pgl89f0m3a4y1n7hi4"))))
     (build-system node-build-system)
     (native-inputs
-     `(("node-acorn" ,node-acorn)
-       ("node-semver" ,node-semver)))
+     (list node-acorn node-semver))
     (home-page "https://lisperator.net/uglifyjs/")
     (synopsis "JavaScript parser / mangler / compressor / beautifier toolkit")
     (description "UglifyJS is a JavaScript compressor/minifier written in
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index 2ecfebd379..806fe05fb6 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm
index cc20ca3e21..22d3f88cd0 100644
--- a/gnu/packages/upnp.scm
+++ b/gnu/packages/upnp.scm
@@ -63,7 +63,7 @@
      ;; the configure phase.
      `(#:make-flags
        (list
-        (string-append "SH=" (assoc-ref %build-inputs "bash") "/bin/sh")
+        (string-append "SH=" (search-input-file %build-inputs "/bin/sh"))
         (string-append "INSTALLPREFIX=" (assoc-ref %outputs "out"))
         ,(string-append "CC=" (cc-for-target))
 
@@ -96,16 +96,16 @@ over IRC, instant messaging, network games, and most server software.")
 (define-public libupnp
   (package
     (name "libupnp")
-    (version "1.14.7")
+    (version "1.14.12")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://github.com/pupnp/pupnp/releases/download"
                           "/release-" version "/libupnp-" version".tar.bz2"))
       (sha256
-       (base32 "093wmhk7rdmg2ixyam4hpxa43g25555jgb3i4y7223mwhr5aqrkv"))))
+       (base32 "1b5mnn01cx840paggxrajg63gqzmw8mi4p14jhi9r4qyvam80709"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (build-system gnu-build-system)
     (arguments
      ;; The tests require a network device capable of multicasting which is
diff --git a/gnu/packages/usb-modeswitch.scm b/gnu/packages/usb-modeswitch.scm
index 2ca4da5e3c..2092e4cdaf 100644
--- a/gnu/packages/usb-modeswitch.scm
+++ b/gnu/packages/usb-modeswitch.scm
@@ -44,8 +44,7 @@
                (base32
                 "1ygahl3r26r38ai8yyblq9nhf3v5i6n6r6672p5wf88wg5h9n0rz"))))
     (build-system trivial-build-system)
-    (native-inputs `(("tar" ,tar)
-                     ("bzip2" ,bzip2)))
+    (native-inputs (list tar bzip2))
     (arguments
      `(#:modules ((guix build utils))
        #:builder
@@ -87,10 +86,8 @@ file for use with USB_ModeSwitch.")
               (sha256
                (base32
                 "0d7s8p92r36danjd15y1zaznf6rbk17kxyg9367nabz56vhxk5ai"))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("libusb" ,libusb)
-              ("jimtcl" ,jimtcl)
-              ("usb-modeswitch-data" ,usb-modeswitch-data)))
+    (native-inputs (list pkg-config))
+    (inputs (list libusb jimtcl usb-modeswitch-data))
     (outputs '("out" "dispatcher"))
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/packages/uucp.scm b/gnu/packages/uucp.scm
index 120417dea1..e10de59aa2 100644
--- a/gnu/packages/uucp.scm
+++ b/gnu/packages/uucp.scm
@@ -142,19 +142,18 @@ between computers.")
          (add-after 'install 'remove-go-references
            (assoc-ref go:%standard-phases 'remove-go-references)))))
     (inputs
-     `(("go-github-com-davecgh-go-xdr" ,go-github-com-davecgh-go-xdr)
-       ("go-github-com-dustin-go-humanize" ,go-github-com-dustin-go-humanize)
-       ("go-github-com-flynn-noise" ,go-github-com-flynn-noise)
-       ("go-github-com-gorhill-cronexpr" ,go-github-com-gorhill-cronexpr)
-       ("go-github-com-hjson-hjson-go" ,go-github-com-hjson-hjson-go)
-       ("go-github-com-klauspost-compress" ,go-github-com-klauspost-compress)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
-       ("go-golang-org-x-net" ,go-golang-org-x-net)
-       ("go-golang-org-x-term" ,go-golang-org-x-term)
-       ("go-lukechampine-com-blake3" ,go-lukechampine-com-blake3)))
+     (list go-github-com-davecgh-go-xdr
+           go-github-com-dustin-go-humanize
+           go-github-com-flynn-noise
+           go-github-com-gorhill-cronexpr
+           go-github-com-hjson-hjson-go
+           go-github-com-klauspost-compress
+           go-golang-org-x-crypto
+           go-golang-org-x-net
+           go-golang-org-x-term
+           go-lukechampine-com-blake3))
     (native-inputs
-     `(("go" ,go)
-       ("texinfo" ,texinfo)))
+     (list go texinfo))
     (home-page "http://www.nncpgo.org/")
     (synopsis "Store and forward utilities")
     (description "NNCP (Node to Node copy) is a collection of utilities
diff --git a/gnu/packages/valgrind.scm b/gnu/packages/valgrind.scm
index e90142b6a7..e044541282 100644
--- a/gnu/packages/valgrind.scm
+++ b/gnu/packages/valgrind.scm
@@ -74,7 +74,7 @@
                (rename-file orig dest)
                #t))))))
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "https://www.valgrind.org/")
     (synopsis "Debugging and profiling tool suite")
     (description
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index f2ea8ddb18..8044370dfb 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2014, 2016, 2019 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014, 2016, 2019, 2021 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2015, 2018, 2020, 2021 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2015, 2017, 2018, 2020 Ricardo Wurmus <rekado@elephly.net>
@@ -40,6 +40,9 @@
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;; Copyright © 2021 François J. <francois-oss@avalenn.eu>
 ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -111,6 +114,7 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
+  #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
@@ -170,6 +174,43 @@ 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")
+    (version "3.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://launchpad.net/brz/"
+                           (version-major+minor version) "/" version
+                           "/+download/breezy-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0p6q545xpmxa6fgvkjglfpqpybg33817vhw0a82az8i83bmnicp0"))))
+    (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-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
+    (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
+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 git-cross-configure-flags
   '("ac_cv_fread_reads_directories=yes"
     "ac_cv_snprintf_returns_bogus=no"
@@ -178,14 +219,14 @@ as well as the classic centralized workflow.")
 (define-public git
   (package
    (name "git")
-   (version "2.33.0")
+   (version "2.34.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://kernel.org/software/scm/git/git-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "0kqcs8nj5h7rh3q86pw5777awq7gn77lgxk88ynjl1rfz2snlg5z"))))
+              "07s1c9lzlm4kpbb5lmxy0869phg7037pv4faz5hlqyb5csrbjv7x"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("native-perl" ,perl)
@@ -205,7 +246,7 @@ as well as the classic centralized workflow.")
                 version ".tar.xz"))
           (sha256
            (base32
-            "0cdwqhj6yx3rlzvvfh0jamzjva9svd8kxmb5kqsp8nz47yz8mlyn"))))
+            "0wic95h0i1bm66hxnc38pfj31n74lvk2xb8lx6kcfpzg2wszmsj7"))))
       ;; For subtree documentation.
       ("asciidoc" ,asciidoc)
       ("docbook-xsl" ,docbook-xsl)
@@ -611,11 +652,23 @@ everything from small to very large projects with speed and efficiency.")
        ("native-perl" ,perl)
        ("gettext" ,gettext-minimal)))
     (inputs
-     `(("curl" ,curl)                             ;for HTTP(S) access
-       ("expat" ,expat)                           ;for 'git push' over HTTP(S)
-       ("openssl" ,openssl)
-       ("perl" ,perl)
-       ("zlib" ,zlib)))))
+     (list curl ;for HTTP(S) access
+           expat ;for 'git push' over HTTP(S)
+           openssl
+           perl
+           zlib))))
+
+(define-public git-minimal/fixed
+  ;; Version that rarely changes, depended on by Graphene/GTK+.
+  (package/inherit git-minimal
+    (version "2.33.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kernel.org/software/scm/git/git-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "0bqz401dyp8wnjj3k5ahrniwk4dalndysqazzwdvv25hqbkacm70"))))))
 
 (define-public git2cl
   (let ((commit "1d74d4c0d933fc69ed5cec838c73502584dead05"))
@@ -633,7 +686,7 @@ everything from small to very large projects with speed and efficiency.")
                   "0wnnbm2sjvfj0qrksj89jlnl69miwl0vk3wrrvgvpclgys3na2g1"))))
       (build-system copy-build-system)
       (inputs
-       `(("perl" ,perl)))
+       (list perl))
       (arguments
        `(#:install-plan '(("git2cl" "bin/git2cl"))))
       (home-page "https://savannah.nongnu.org/projects/git2cl")
@@ -734,19 +787,20 @@ to GitHub contributions calendar.")
 (define-public libgit2
   (package
     (name "libgit2")
-    (version "1.1.0")
+    (version "1.3.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/libgit2/libgit2/"
-                                  "releases/download/v" version
-                                  "/libgit2-" version ".tar.gz"))
+              ;; Since v1.1.1, release artifacts are no longer offered (see:
+              ;; https://github.com/libgit2/libgit2/discussions/5932#discussioncomment-1682729).
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/libgit2/libgit2")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1fjdglkh04qv3b4alg621pxa689i0wlf8m7nf2755zawjr2zhwxd"))
-              (patches (search-patches "libgit2-mtime-0.patch"))
-              (snippet '(begin
-                          (delete-file-recursively "deps") #t))
-              (modules '((guix build utils)))))
+                "0vgpb2175a5dhqiy1iwywwppahgqhi340i8bsvafjpvkw284vazd"))
+              (modules '((guix build utils)))
+              (snippet '(delete-file-recursively "deps"))))
     (build-system cmake-build-system)
     (outputs '("out" "debug"))
     (arguments
@@ -757,8 +811,10 @@ to GitHub contributions calendar.")
              ,@(if (%current-target-system)
                    `((string-append
                       "-DPKG_CONFIG_EXECUTABLE="
-                      (assoc-ref %build-inputs "pkg-config")
-                      "/bin/" ,(%current-target-system) "-pkg-config"))
+                      (search-input-file
+                       %build-inputs
+                       (string-append "/bin/" ,(%current-target-system)
+                                      "-pkg-config"))))
                    '()))
        #:phases
        (modify-phases %standard-phases
@@ -768,8 +824,7 @@ to GitHub contributions calendar.")
                (("#!/bin/sh") (string-append "#!" (which "sh"))))
              (substitute* "tests/clar/fs.h"
                (("/bin/cp") (which "cp"))
-               (("/bin/rm") (which "rm")))
-             #t))
+               (("/bin/rm") (which "rm")))))
          ;; Run checks more verbosely, unless we are cross-compiling.
          (replace 'check
            (lambda* (#:key (tests? #t) #:allow-other-keys)
@@ -778,16 +833,12 @@ to GitHub contributions calendar.")
                  ;; Tests may be disabled if cross-compiling.
                  (format #t "Test suite not run.~%")))))))
     (inputs
-     `(("libssh2" ,libssh2)
-       ("http-parser" ,http-parser)))
+     (list libssh2 http-parser))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)))
+     (list pkg-config python))
     (propagated-inputs
      ;; These libraries are in 'Requires.private' in libgit2.pc.
-     `(("openssl" ,openssl)
-       ("pcre2" ,pcre2)
-       ("zlib" ,zlib)))
+     (list openssl pcre2 zlib))
     (home-page "https://libgit2.org/")
     (synopsis "Library providing Git core methods")
     (description
@@ -797,23 +848,23 @@ write native speed custom Git applications in any language with bindings.")
     ;; GPLv2 with linking exception
     (license license:gpl2)))
 
-(define-public libgit2-0.28
+(define-public libgit2-1.1
   (package
     (inherit libgit2)
-    (version "0.28.5")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "https://github.com/libgit2/libgit2/releases/"
-                            "download/v" version
-                            "/libgit2-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0hjgpqjjmkciw1i8jqkx9q2vhdc4fc99qajhrj2bq8ziwsp6hyrb"))
-        (patches (search-patches "libgit2-mtime-0.patch"))
-        (modules '((guix build utils)))
-        (snippet '(begin
-                    (delete-file-recursively "deps") #t))))))
+    (name "libgit2")
+    (version "1.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/libgit2/libgit2/"
+                                  "releases/download/v" version
+                                  "/libgit2-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1fjdglkh04qv3b4alg621pxa689i0wlf8m7nf2755zawjr2zhwxd"))
+              (patches (search-patches "libgit2-mtime-0.patch"))
+              (snippet '(begin
+                          (delete-file-recursively "deps") #t))
+              (modules '((guix build utils)))))))
 
 (define-public git-crypt
   (package
@@ -830,11 +881,9 @@ write native speed custom Git applications in any language with bindings.")
         (base32 "1ba5s0fvmd9hhnfhfsjrm40v0qpxfnwc8vmm55m0k4dryzkzx66q"))))
     (build-system gnu-build-system)
     (inputs
-     `(("git" ,git)
-       ("openssl" ,openssl)))
+     (list git openssl))
     (native-inputs
-     `(("docbook-xsl" ,docbook-xsl)
-       ("libxslt" ,libxslt)))
+     (list docbook-xsl libxslt))
     (arguments
      `(#:tests? #f ; No tests.
        #:phases
@@ -873,16 +922,16 @@ to lock down your entire repository.")
 (define-public git-remote-gcrypt
   (package
    (name "git-remote-gcrypt")
-   (version "1.3")
+   (version "1.4")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://git.spwhitton.name/git-remote-gcrypt")
                    (commit version)))
-             (file-name (string-append name "-" version "-checkout"))
+             (file-name (git-file-name name version))
              (sha256
               (base32
-               "0n8fzvr6y0pxrbvkywlky2bd8jvi0ayp4n9hwi84l1ldmv4a40dh"))))
+               "1x5ca1fi0hyn5w5mnz230x27bqr8j78adnzmlc7cbhzr13q36y5q"))))
    (build-system trivial-build-system)
    (arguments
     `(#:modules ((guix build utils))
@@ -892,8 +941,7 @@ to lock down your entire repository.")
                          (output (assoc-ref %outputs "out"))
                          (bindir (string-append output "/bin")))
                     (install-file (string-append source "/git-remote-gcrypt")
-                                  bindir)
-                    #t))))
+                                  bindir)))))
    (home-page "https://spwhitton.name/tech/code/git-remote-gcrypt/")
    (synopsis "Whole remote repository encryption")
    (description "git-remote-gcrypt is a Git remote helper to push and pull from
@@ -994,10 +1042,7 @@ collaboration using typical untrusted file hosts or services.")
              #t)))))
     (native-inputs
      ;; For building manpage.
-     `(("asciidoc" ,asciidoc)
-       ("gzip" ,gzip)
-       ("bzip2" ,bzip2)
-       ("xz" ,xz)))
+     (list asciidoc gzip bzip2 xz))
     (inputs
      `(;; Building cgit requires a Git source tree.
        ("git-source"
@@ -1048,8 +1093,7 @@ a built-in cache to decrease server I/O pressure.")
                 (search-input-file inputs
                                    "/sbin/sendmail"))))))))
     (inputs
-     `(("git" ,git)
-       ("sendmail" ,sendmail)))
+     (list git sendmail))
     (home-page "https://github.com/git-multimail/git-multimail")
     (synopsis "Send notification emails for Git pushes")
     (description
@@ -1140,10 +1184,9 @@ default) of the repository.")
                       (setenv "TRAVIS" "1")
                       (invoke "nosetests" "-v"))))))
     (propagated-inputs
-     `(("python-smmap" ,python-smmap)))
+     (list python-smmap))
     (native-inputs
-     `(("git" ,git)
-       ("python-nose" ,python-nose)))
+     (list git python-nose))
     (home-page "https://github.com/gitpython-developers/gitdb")
     (synopsis "Python implementation of the Git object database")
     (description
@@ -1156,13 +1199,13 @@ allowing to handle large objects with a small memory footprint.")
 (define-public python-gitpython
   (package
     (name "python-gitpython")
-    (version "3.1.0")
+    (version "3.1.24")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "GitPython" version))
               (sha256
                (base32
-                "1jzllsy9lwc9yibccgv7h9naxisazx2n3zmpy21c8n5xhysw69p4"))))
+                "1rarp97cpjnhi106k2yhb7kygdyflmlgq0icxv3ggzl4wvszv0yz"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f ;XXX: Tests can only be run within the GitPython repository.
@@ -1173,15 +1216,13 @@ allowing to handle large objects with a small memory footprint.")
                         (("git_exec_name = \"git\"")
                          (string-append "git_exec_name = \""
                                         (assoc-ref inputs "git")
-                                        "/bin/git\"")))
-                      #t)))))
+                                        "/bin/git\""))))))))
     (inputs
-     `(("git" ,git)))
+     (list git))
     (propagated-inputs
-     `(("python-gitdb" ,python-gitdb)))
+     (list python-gitdb python-typing-extensions))
     (native-inputs
-     `(("python-ddt" ,python-ddt)
-       ("python-nose" ,python-nose)))
+     (list python-ddt python-nose))
     (home-page "https://github.com/gitpython-developers/GitPython")
     (synopsis "Python library for interacting with Git repositories")
     (description
@@ -1248,7 +1289,7 @@ will work.")
                (base32
                 "13q4mnrxr03wz2dkhzy73j384g299m4d545cnhxcaznvdwfany4h"))))
     (build-system gnu-build-system)
-    (inputs `(("shflags" ,shflags)))
+    (inputs (list shflags))
     (arguments
      '(#:tests? #f                    ; no tests
        #:make-flags (list (string-append "prefix="
@@ -1291,9 +1332,9 @@ lot easier.")
         (base32 "1jp74qsgw3f9c8xgaaqvmhfh4ar3n1ns5ncm8glvqyywlxldxi0n"))))
     (build-system python-build-system)
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (inputs
-     `(("git" ,git)))
+     (list git))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1343,13 +1384,9 @@ manipulate them in various ways.")
         (base32 "1gx5nbqyprgy6picns5hxky3lyzkqfq3xhm614f0wcdi58xrsdh0"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (inputs
-     `(("git" ,git)
-       ("perl" ,perl)
-       ("perl-test-harness" ,perl-test-harness)
-       ("perl-shell-command" ,perl-shell-command)
-       ("perl-test-most" ,perl-test-most)))
+     (list git perl perl-test-harness perl-shell-command perl-test-most))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -1508,15 +1545,11 @@ also walk each side of a merge and test those changes individually.")
                                   (list out coreutils findutils git))))
                         #t))))))
     (inputs
-     `(("perl" ,perl)
-       ("coreutils" ,coreutils)
-       ("findutils" ,findutils)
-       ("inetutils" ,inetutils)))
+     (list perl coreutils findutils inetutils))
     ;; git and openssh are propagated because trying to patch the source via
     ;; regexp matching is too brittle and prone to false positives.
     (propagated-inputs
-     `(("git" ,git)
-       ("openssh" ,openssh)))
+     (list git openssh))
     (home-page "https://gitolite.com")
     (synopsis "Git access control layer")
     (description
@@ -1575,18 +1608,15 @@ control to Git repositories.")
                  `("GUILE_LOAD_PATH" ":" prefix (,mods))
                  `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,objs)))))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("guile" ,guile-3.0)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake guile-3.0 pkg-config))
     (inputs
-     `(("guile" ,guile-3.0)
-       ("guile-commonmark" ,guile-commonmark)
-       ("guile-fibers" ,guile-fibers)
-       ("guile-gcrypt" ,guile-gcrypt)
-       ("guile-git" ,guile-git)
-       ("guile-syntax-highlight" ,guile-syntax-highlight-for-gitile)
-       ("gnutls" ,gnutls)))
+     (list guile-3.0
+           guile-commonmark
+           guile-fibers
+           guile-gcrypt
+           guile-git
+           guile-syntax-highlight-for-gitile
+           gnutls))
     (home-page "https://git.lepiller.eu/gitile")
     (synopsis "Simple Git forge written in Guile")
     (description "Gitile is a Git forge written in Guile that lets you
@@ -1665,12 +1695,12 @@ visualize your public Git repositories on a web interface.")
        ("which" ,which)))
     ;; Propagate because pre-commit is also used as a module.
     (propagated-inputs
-     `(("python-cfgv" ,python-cfgv)
-       ("python-identify" ,python-identify)
-       ("python-nodeenv" ,python-nodeenv)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-toml" ,python-toml)
-       ("python-virtualenv" ,python-virtualenv)))
+     (list python-cfgv
+           python-identify
+           python-nodeenv
+           python-pyyaml
+           python-toml
+           python-virtualenv))
     (home-page "https://pre-commit.com/")
     (synopsis "Framework for managing and maintaining pre-commit hooks")
     (description
@@ -1751,18 +1781,16 @@ execution of any hook written in any language before every commit.")
                          ;; output by default.  Prevent timeouts due to silence.
                          "-v"))))))))
     (native-inputs
-     `(("python-docutils", python-docutils)
-       ;; The following inputs are only needed to run the tests.
-       ("python-nose" ,python-nose)
-       ("unzip" ,unzip)
-       ("which" ,which)))
+     (list python-docutils
+           ;; The following inputs are only needed to run the tests.
+           python-nose unzip which))
     (inputs
-     `(("python" ,python)))
+     (list python))
     ;; Find third-party extensions.
     (native-search-paths
      (list (search-path-specification
             (variable "HGEXTENSIONPATH")
-            (files '("lib/python3.8/site-packages/hgext3rd")))))
+            (files '("lib/python3.9/site-packages/hgext3rd")))))
     (home-page "https://www.mercurial-scm.org/")
     (synopsis "Decentralized version control system")
     (description
@@ -1790,7 +1818,7 @@ interface.")
      ;; Tests need mercurial source code.
      '(#:tests? #f))
     (propagated-inputs
-      `(("mercurial" ,mercurial)))
+      (list mercurial))
     (home-page "https://www.mercurial-scm.org/doc/evolution/")
     (synopsis "Flexible evolution of Mercurial history")
     (description "Evolve is a Mercurial extension for faster and safer mutable
@@ -1844,10 +1872,9 @@ history.  It implements the changeset evolution concept for Mercurial.")
                                              (assoc-ref %build-inputs "python"))
                                             "/site-packages/hgext3rd/commitsigs.py")))))
       (native-inputs
-       `(("python" ,python)))
+       (list python))
       (inputs
-       `(("gnupg" ,gnupg)
-         ("openssl" ,openssl)))
+       (list gnupg openssl))
       (home-page "https://foss.heptapod.net/mercurial/commitsigs")
       (synopsis "Automatic signing of changeset hashes")
       (description "This package provides a Mercurial extension for signing
@@ -1869,12 +1896,9 @@ can be used for signing.")
                "0y46dbhiblcvg8k41bdydr3fivghwk73z040ki5825d24ynf67ng"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list perl pkg-config))
     (inputs
-     `(("libxml2" ,libxml2)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list libxml2 openssl zlib))
     (arguments
      `(;; FIXME: Add tests once reverse address lookup is fixed in glibc, see
        ;; https://sourceware.org/bugzilla/show_bug.cgi?id=16475
@@ -1968,9 +1992,9 @@ following features:
                                         "-Wl,-rpath="
                                         out "/lib")))))))))
     (native-inputs
-      `(("pkg-config" ,pkg-config)
-        ;; For the Perl bindings.
-        ("swig" ,swig)))
+      (list pkg-config
+            ;; For the Perl bindings.
+            swig))
     (inputs
       `(("apr" ,apr)
         ("apr-util" ,apr-util)
@@ -2004,7 +2028,15 @@ projects, from individuals to large-scale enterprise operations.")
                "1if5pa4iip2p70gljm54nggfdnsfjxa4cqz8fpj07lvsijary39s"))
              (patches (search-patches "rcs-5.10.0-no-stdin.patch"))))
     (build-system gnu-build-system)
-    (native-inputs `(("ed" ,ed)))
+    (arguments `(#:phases
+                 (modify-phases %standard-phases
+                   (add-after 'install 'install-rcsfreeze
+                     (lambda* (#:key outputs #:allow-other-keys)
+                       (chmod "src/rcsfreeze" #o755)
+                       (install-file
+                         "src/rcsfreeze"
+                         (string-append (assoc-ref outputs "out") "/bin")))))))
+    (native-inputs (list ed))
     (home-page "https://www.gnu.org/software/rcs/")
     (synopsis "Per-file local revision control system")
     (description
@@ -2015,6 +2047,27 @@ administration files, for example, which are often inherently local to one
 machine.")
     (license license:gpl3+)))
 
+(define-public rcs-blame
+  (package
+    (name "rcs-blame")
+    (version "1.3.1-20210207")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "https://invisible-mirror.net/archives/rcs-blame/blame-"
+                   version ".tgz"))
+             (sha256
+              (base32
+               "1j0brsvdx3hlbwchddafh8r2xmxv5vg4ahpd68v4bb9xhcq6pcih"))))
+    (build-system gnu-build-system)
+    (home-page "https://invisible-island.net/rcs-blame/rcs-blame.html")
+    (synopsis "Display the last modification for each line in an RCS file")
+    (description
+     "@code{blame} outputs an annotated revision from each RCS file.  An
+annotated RCS file describes the revision and date in which each line was
+added to the file, and the author of each line.")
+    (license license:gpl2+)))
+
 (define-public cvs
   (package
     (name "cvs")
@@ -2033,8 +2086,7 @@ machine.")
      ;; XXX: The test suite looks flawed, and the package is obsolete anyway.
      '(#:tests? #f
        #:configure-flags (list "--with-external-zlib")))
-    (inputs `(("zlib" ,zlib)
-              ("nano" ,nano)))                    ; the default editor
+    (inputs (list zlib nano))                    ; the default editor
     (home-page "http://cvs.nongnu.org")
     (synopsis "Historical centralized version control system")
     (description
@@ -2067,10 +2119,9 @@ RCS, PRCS, and Aegis packages.")
      `(("git" ,git)
        ("python" ,python-wrapper)))
     (native-inputs
-     `(("asciidoc" ,asciidoc)
-       ;; These are needed for the tests.
-       ("cvs" ,cvs)
-       ("rcs" ,rcs)))
+     (list asciidoc
+           ;; These are needed for the tests.
+           cvs rcs))
     (home-page "http://www.catb.org/esr/cvs-fast-export/")
     (synopsis "Export an RCS or CVS history as a fast-import stream")
     (description "This program analyzes a collection of RCS files in a CVS
@@ -2096,10 +2147,10 @@ masters from remote CVS hosts.")
               (base32
                "0am6axxdvkm2vwgg0gjrd930yv4dlsdbf0rdv0zh5bhy1ir64rph"))))
     (build-system gnu-build-system)
-    (inputs `(("perl" ,perl)))
+    (inputs (list perl))
     (native-inputs
-     `(("emacs" ,emacs-minimal)     ; for `ctags'
-       ("inetutils" ,inetutils)))   ; for `hostname', used in the tests
+     (list emacs-minimal ; for `ctags'
+           inetutils))   ; for `hostname', used in the tests
     (home-page "https://www.gnu.org/software/vc-dwim/")
     (synopsis "Version-control-agnostic ChangeLog diff and commit tool")
     (description
@@ -2166,8 +2217,7 @@ reviewing large, complex patch files.")
                (substitute* "tests/Makefile"
                  (("test-delta ") ""))))))))
     ;; These are needed for the tests
-    (native-inputs `(("git" ,git)
-                     ("cvs" ,cvs)))
+    (native-inputs (list git cvs))
     (home-page "https://www.gnu.org/software/cssc/")
     (synopsis "File-based version control like SCCS")
     (description  "GNU CSSC provides a replacement for the legacy Unix source
@@ -2202,16 +2252,16 @@ accessed and migrated on modern systems.")
        ("zlib" ,zlib)
        ("gettext" ,gettext-minimal)))
     (native-inputs
-     `(("bison" ,bison)
-       ("groff" ,groff)
-       ("perl" ,perl)
-       ;; Various tests require the following:
-       ("cvs" ,cvs)
-       ("flex" ,flex)
-       ("cook" ,cook)
-       ("subversion" ,subversion)
-       ("rcs" ,rcs)
-       ("ed" ,ed)))
+     (list bison
+           groff
+           perl
+           ;; Various tests require the following:
+           cvs
+           flex
+           cook
+           subversion
+           rcs
+           ed))
     (arguments
      `(#:configure-flags (list "--with-no-aegis-configured"
                                "--sharedstatedir=/var/com/aegis"
@@ -2323,18 +2373,17 @@ any project with more than one developer, is one of Aegis's major functions.")
      `(("python" ,python-wrapper)
        ("tzdata" ,tzdata)))
     (native-inputs
-     `( ;; For building documentation.
-       ("asciidoc" ,asciidoc)
-       ("docbook-xml" ,docbook-xml)
-       ("docbook-xsl" ,docbook-xsl)
-       ("libxml2" ,libxml2)
-       ("xmlto" ,xmlto)
-
-       ;; For tests.
-       ("cvs" ,cvs)
-       ("git" ,git)
-       ("mercurial" ,mercurial)
-       ("subversion" ,subversion)))
+     (list ;; For building documentation.
+           asciidoc
+           docbook-xml
+           docbook-xsl
+           libxml2
+           xmlto
+           ;; For tests.
+           cvs
+           git
+           mercurial
+           subversion))
     (home-page "http://www.catb.org/~esr/reposurgeon/")
     (synopsis "Edit version-control repository history")
     (description "Reposurgeon enables risky operations that version-control
@@ -2362,11 +2411,9 @@ from Subversion to any supported Distributed Version Control System (DVCS).")
                 "19va4jn46s0vjv9f337g3ad6hy1f285ynl27i9gkd9l70b9q90n4"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("asciidoc" ,asciidoc)
-       ("xmlto" ,xmlto)))
+     (list asciidoc xmlto))
     (inputs
-     `(("ncurses" ,ncurses)
-       ("readline" ,readline)))
+     (list ncurses readline))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2397,8 +2444,7 @@ output of the @code{git} command.")
        (sha256
         (base32 "1x1cbn2b27h5r0ah5xc06fkalfdci2ngrgd4wibxjw0h88h0nvgq"))))
     (build-system gnu-build-system)
-    (native-inputs `(("autoconf" ,autoconf)
-                     ("automake" ,automake)))
+    (native-inputs (list autoconf automake))
     (home-page "https://github.com/0-wiz-0/findnewest/releases")
     (synopsis "Print the modification time of the latest file")
     (description
@@ -2438,14 +2484,14 @@ modification time.")
                            "perl-uri" "perl-try-tiny"))))
                #t))))))
     (inputs
-     `(("perl" ,perl)
-       ("perl-encode-locale" ,perl-encode-locale)
-       ("perl-html-parser" ,perl-html-parser)
-       ("perl-http-date" ,perl-http-date)
-       ("perl-http-message" ,perl-http-message)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-try-tiny" ,perl-try-tiny)
-       ("perl-uri" ,perl-uri)))
+     (list perl
+           perl-encode-locale
+           perl-html-parser
+           perl-http-date
+           perl-http-message
+           perl-libwww
+           perl-try-tiny
+           perl-uri))
     (home-page "https://myrepos.branchable.com/")
     (synopsis "Multiple repository management tool")
     (description
@@ -2458,7 +2504,7 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
 (define-public grokmirror
   (package
     (name "grokmirror")
-    (version "2.0.8")
+    (version "2.0.11")
     (source
      (origin
        (method git-fetch)
@@ -2468,7 +2514,7 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
              (commit (string-append "v" version))))
        (file-name (string-append name "-" version "-checkout"))
        (sha256
-        (base32 "0zfiwjw02df3mzpawp9jx61iwp0nhcf6y03cs8022l0hkvc7blbr"))))
+        (base32 "0c6nnfzzyl247r1dcjnsyx16d34nyra9ikjjhi0xzlrbiwnb0w32"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f                      ; no test suite
@@ -2480,11 +2526,9 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
                                         "/man/man1/")))
                (mkdir-p man)
                (for-each (lambda (file) (install-file file man))
-                         (find-files "." "\\.1$")))
-             #t)))))
+                         (find-files "." "\\.1$"))))))))
     (propagated-inputs
-     `(("python-packaging" ,python-packaging)
-       ("python-requests" ,python-requests)))
+     (list python-packaging python-requests))
     (home-page
      "https://git.kernel.org/pub/scm/utils/grokmirror/grokmirror.git")
     (synopsis "Framework to smartly mirror git repositories")
@@ -2514,9 +2558,7 @@ based on a manifest file published by servers.")
     (build-system python-build-system)
     (arguments '(#:tests? #f))          ; No tests.
     (inputs
-     `(("python-dkimpy" ,python-dkimpy)
-       ("python-dnspython" ,python-dnspython)
-       ("python-requests" ,python-requests)))
+     (list python-dkimpy python-dnspython python-requests))
     (home-page "https://git.kernel.org/pub/scm/utils/b4/b4.git")
     (synopsis "Tool for working with patches in public-inbox archives")
     (description
@@ -2552,10 +2594,8 @@ Features include:
        #:builder
        (begin
          (use-modules (guix build utils))
-         (let ((bash (string-append (assoc-ref %build-inputs "bash")
-                                    "/bin/bash"))
-               (rclone (string-append (assoc-ref %build-inputs "rclone")
-                                      "/bin/rclone")))
+         (let ((bash (search-input-file %build-inputs "/bin/bash"))
+               (rclone (search-input-file %build-inputs "/bin/rclone")))
            (copy-file (string-append (assoc-ref %build-inputs "source")
                                      "/git-annex-remote-rclone")
                       "git-annex-remote-rclone")
@@ -2566,8 +2606,7 @@ Features include:
                          (string-append %output "/bin"))
            #t))))
     (inputs
-     `(("bash" ,bash)
-       ("rclone" ,rclone)))
+     (list bash rclone))
     (home-page "https://github.com/DanielDent/git-annex-remote-rclone")
     (synopsis "Use rclone-supported cloud storage providers with git-annex")
     (description "This wrapper around rclone makes any destination supported
@@ -2577,28 +2616,27 @@ by rclone usable with git-annex.")
 (define-public fossil
   (package
     (name "fossil")
-    (version "2.14")
+    (version "2.17")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-              "https://www.fossil-scm.org/index.html/uv/"
-              "fossil-src-" version ".tar.gz"))
+             "https://www.fossil-scm.org/home/tarball/"
+             "f48180f2ff3169651a725396d4f7d667c99a92873b9c3df7eee2f144be7a0721"
+             "/fossil-src-" version ".tar.gz"))
        (sha256
-        (base32 "1fazl117ph5z7xg7h6w7i32sf7rsa67499rg2llsxn3d34hckl5q"))
+        (base32 "1gvx6xzrw1a8snlq9qmr6099r44ifghg0h0fw4jazqmmyxriqzsw"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            (delete-file-recursively "compat") #t))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("tcl" ,tcl)                     ;for configuration only
-       ("which" ,which)                 ;for tests only
-       ("ed" ,ed)))                     ;ditto
+     (list tcl                          ;for configuration only
+           which                        ;for tests only
+           ed))                         ;ditto
     (inputs
-     `(("openssl" ,openssl)
-       ("zlib" ,zlib)
-       ("sqlite" ,sqlite)))
+     (list openssl zlib sqlite-next))   ;SQLite 3.37 or later
     (arguments
      `(#:configure-flags (list "--with-openssl=auto"
                                "--disable-internal-sqlite")
@@ -2607,8 +2645,7 @@ by rclone usable with git-annex.")
                   (add-after 'patch-source-shebangs 'patch-sh
                     (lambda _
                       (substitute* '("auto.def")
-                        (("/bin/sh") (which "sh")))
-                      #t))
+                        (("/bin/sh") (which "sh")))))
                   (replace 'configure
                     (lambda* (#:key outputs (configure-flags '())
                               #:allow-other-keys)
@@ -2618,13 +2655,11 @@ by rclone usable with git-annex.")
                              "./configure"
                              (string-append "--prefix="
                                             (assoc-ref outputs "out"))
-                             configure-flags)
-                      #t))
+                             configure-flags)))
                   (add-before 'check 'test-setup
                     (lambda _
                       (setenv "USER" "guix")
-                      (setenv "TZ" "UTC")
-                      #t)))))
+                      (setenv "TZ" "UTC"))))))
     (home-page "https://fossil-scm.org")
     (synopsis "Software configuration management system")
     (description
@@ -2637,25 +2672,27 @@ a built-in wiki, built-in file browsing, built-in tickets system, etc.")
 (define-public stagit
   (package
     (name "stagit")
-    (version "0.7.2")
+    (version "1.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://dl.2f30.org/releases/"
-                                  name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "git://git.codemadness.org/stagit")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1m3s9g1z9szbjrhm8sic91xh6f2bfpi56rskdkqd5wc4wdycpyi5"))))
+                "0j2242vx5pbwdv79gcjxdbrwii48qphr8gk1lk7szj2irxdql171"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; No tests
-       #:make-flags (list "CC=gcc"
+       #:make-flags (list (string-append "CC=" ,(cc-for-target))
                           (string-append "PREFIX=" %output))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)))) ; No configure script
     (inputs
-     `(("libgit2" ,libgit2)))
-    (home-page "https://2f30.org/")
+     (list libgit2))
+    (home-page "https://git.codemadness.org/stagit/")
     (synopsis "Static git page generator")
     (description "Stagit creates static pages for git repositories, the results can
 be served with a HTTP file server of your choice.")
@@ -2680,17 +2717,17 @@ be served with a HTTP file server of your choice.")
                             (assoc-ref %build-inputs "boost")
                             "/lib"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("boost"     ,boost)
-       ("ftgl"      ,ftgl)
-       ("glew"      ,glew)
-       ("glm"       ,glm)
-       ("glu"       ,glu)
-       ("libpng"    ,libpng)
-       ("mesa"      ,mesa)
-       ("pcre"      ,pcre)
-       ("sdl-union" ,(sdl-union (list sdl2 sdl2-image)))))
+     (list boost
+           ftgl
+           glew
+           glm
+           glu
+           libpng
+           mesa
+           pcre
+           (sdl-union (list sdl2 sdl2-image))))
     (home-page "https://gource.io/")
     (synopsis "3D visualisation tool for source control repositories")
     (description "@code{gource} provides a software version control
@@ -2734,8 +2771,7 @@ specific files and directories.")
              (invoke "./srctest"))))))
     (native-inputs
      ;; For testing.
-     `(("git" ,git)
-       ("perl" ,perl)))
+     (list git perl))
     (inputs
      `(("python" ,python-wrapper)
        ("rcs" ,rcs)))
@@ -2876,16 +2912,16 @@ interrupted, published, and collaborated on while in progress.")
                (invoke "make" "man"))
              #t))
          (add-after 'install 'install-man-pages
-           (lambda _
+           (lambda* (#:key outputs #:allow-other-keys)
              (with-directory-excursion "src/github.com/git-lfs/git-lfs/man"
-               (let ((out (assoc-ref %outputs "out")))
+               (let ((out (assoc-ref outputs "out")))
                  (for-each
                    (lambda (manpage)
                      (install-file manpage (string-append out "/share/man/man1")))
                    (find-files "." "^git-lfs.*\\.1$"))))
              #t)))))
     ;; make `ronn` available during build for man page generation
-    (native-inputs `(("ronn-ng" ,ronn-ng)))
+    (native-inputs (list ronn-ng))
     (home-page "https://git-lfs.github.com/")
     (synopsis "Git extension for versioning large files")
     (description
@@ -2909,7 +2945,7 @@ file contents on a remote server.")
         (base32 "11n46bngvca5wbdbfcxzjhjbfdbad7sgf7h9gf956cb1q8swsdm0"))))
     (build-system copy-build-system)
     (inputs
-     `(("xdg-utils" ,xdg-utils)))
+     (list xdg-utils))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2975,7 +3011,7 @@ guessing the URL pattern from the @code{origin} remote.")
 
        #:test-target "test"))
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (synopsis "Historical distributed version-control system")
     (description
      "GNU Arch, aka. @code{tla}, was one of the first free distributed
@@ -2988,7 +3024,7 @@ for historians.")
 (define-public diff-so-fancy
   (package
     (name "diff-so-fancy")
-    (version "1.3.0")
+    (version "1.4.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2997,10 +3033,9 @@ for historians.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0aavxahzha2mms4vdwysk79pa6wzswpfwgsq2hwaxnaf66maahfl"))))
+                "11vkq5njjlvjipic7db44ga875n61drszw1qrdzwxmmfmnz425zz"))))
     (inputs
-     `(("perl" ,perl)
-       ("ncurses" ,ncurses)))
+     (list perl ncurses))
     (build-system copy-build-system)
     (arguments
      '(#:phases
@@ -3010,8 +3045,7 @@ for historians.")
              (let ((lib (string-append (assoc-ref outputs "out") "/lib")))
                (substitute* "diff-so-fancy"
                  (("use lib.*$")
-                  (string-append "use lib '" lib "';\n")))
-               #t)))
+                  (string-append "use lib '" lib "';\n"))))))
          (add-after 'install 'symlink-executable
            (lambda* (#:key outputs inputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
@@ -3019,8 +3053,7 @@ for historians.")
                    (perl (assoc-ref inputs "perl")))
                (wrap-program (string-append out "/bin/diff-so-fancy")
                  `("PATH" ":" prefix (,(string-append ncurses "/bin")
-                                      ,(string-append perl "/bin"))))
-               #t))))
+                                      ,(string-append perl "/bin"))))))))
        #:install-plan
        '(("lib" "lib")
          ("diff-so-fancy" "bin/"))))
@@ -3103,10 +3136,10 @@ defects faster.")
                   "1k03zgcbhl91cgyh4k7ywyjp00y63q4bqbimncqh5b3lni8l8j5l"))))
       (build-system python-build-system)
       (native-inputs
-       `(("git" ,git) ;for tests
-         ("python-pytest" ,python-pytest)))
+       (list git ;for tests
+             python-pytest))
       (propagated-inputs
-       `(("python-pyyaml" ,python-pyyaml)))
+       (list python-pyyaml))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -3219,7 +3252,7 @@ using the remote repository URL's host and path.")
        '(("git-filter-repo" "libexec/git-core/")
          ("Documentation/man1/" "share/man/man1")
          ("/" "" #:include ()))))
-    (inputs `(("python" ,python)))                ;for the shebang
+    (inputs (list python))                ;for the shebang
     (home-page "https://github.com/newren/git-filter-repo")
     (synopsis "Quickly rewrite Git repository history")
     (description
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index bc6924341e..1fd58b2325 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -4,15 +4,14 @@
 ;;; Copyright © 2014, 2015, 2016, 2018, 2020 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2015 Andy Patterson <ajpatter@uwaterloo.ca>
-;;; Copyright © 2015, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016 Andy Patterson <ajpatter@uwaterloo.ca>
+;;; Copyright © 2015, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016 Dmitry Nikolaev <cameltheman@gmail.com>
-;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2016, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net>
+;;; Copyright © 2016, 2018, 2019, 2020, 2021 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2017 Feng Shu <tumashu@163.com>
 ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -23,7 +22,7 @@
 ;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018 Brendan Tildesley <mail@brendan.scot>
@@ -54,6 +53,10 @@
 ;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
 ;;; Copyright © 2021 Thiago Jung Bauermann <bauermann@kolabnow.com>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2021 Robin Templeton <robin@terpri.org>
+;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
+;;; Copyright © 2021 Pradana Aumars <paumars@courrier.dev>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -78,6 +81,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 svn-download)
   #:use-module (guix hg-download)
@@ -100,8 +104,10 @@
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
@@ -143,6 +149,7 @@
   #:use-module (gnu packages man)
   #:use-module (gnu packages markup)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages music)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
@@ -206,7 +213,7 @@
     (arguments
      `(#:configure-flags
        (list
-        "CFLAGS=-fcommon"
+        "CFLAGS=-O2 -g -fcommon"
         ;; XXX: Broken API.
         ;; Undeclared variables 'sys_nerr' and 'sys_errlist'.
         ;; "--enable-libv4l2"
@@ -312,7 +319,7 @@ video and audio streams from a DVD.")
     (arguments
      `(#:tests? #f)) ; Test script is stand-alone
     (native-inputs
-     `(("yasm" ,yasm)))
+     (list yasm))
     (synopsis "SVT HEVC encoder")
     (description "Scalable Video Technology (SVT) is a software-based video
 coding technology that is highly optimized for Intel's Xeon processors.  Using
@@ -391,14 +398,12 @@ video decode, encode and filtering on Intel's Gen graphics hardware platforms.")
                 (string-append doc "/share/gtk-doc"))
                #t))))))
     (native-inputs
-     `(("dash" ,dash)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("pkg-config" ,pkg-config)))
+     (list dash gtk-doc/stable pkg-config))
     (inputs
      `(("glew" ,glew)
        ("opengl" ,mesa)))
     (propagated-inputs
-     `(("orc" ,orc)))
+     (list orc))
     (synopsis "Dirac video codec")
     (description "Schroedinger is a project implementing the Dirac video codec in
 ANSI C code.  It is meant to be highly optimized and portable.  It is developed
@@ -429,30 +434,73 @@ as a joint effort between the BBC and Fluendo.")
         (search-patches "libquicktime-ffmpeg.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list gettext-minimal doxygen pkg-config))
     (inputs
-     `(("alsa" ,alsa-lib)
-       ("ffmpeg" ,ffmpeg)
-       ("gtk+-2" ,gtk+-2)
-       ("lame" ,lame)
-       ("libdv" ,libdv)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libvorbis" ,libvorbis)
-       ("opengl" ,mesa)
-       ("schroedinger" ,schroedinger)
-       ("x11" ,libx11)
-       ("x264" ,libx264)
-       ("xaw" ,libxaw)
-       ("xv" ,libxv)))
+     (list alsa-lib
+           ffmpeg
+           gtk+-2
+           lame
+           libdv
+           libjpeg-turbo
+           libpng
+           libvorbis
+           mesa
+           schroedinger
+           libx11
+           libx264
+           libxaw
+           libxv))
     (synopsis "Quick Time Library")
     (description "The goal of this project is to enhance the quicktime4linux
 library.")
     (home-page "http://libquicktime.sourceforge.net/")
     (license license:lgpl2.1+)))
 
+(define-public mjpg-streamer
+  (package
+    (name "mjpg-streamer")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jacksonliam/mjpg-streamer")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0w81pg228154blzbzr590xwhcll9baxyqxl6wxrgqsi9cd7pzq23"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (with-directory-excursion "mjpg-streamer-experimental/www"
+                    (for-each delete-file-recursively
+                              '("cambozola.jar"
+                                "JQuerySpinBtn.css"
+                                "JQuerySpinBtn.js"
+                                "jquery.js"
+                                "jquery.rotate.js"
+                                "jquery.ui.core.min.js"
+                                "jquery.ui.custom.css"
+                                "jquery.ui.tabs.min.js"
+                                "jquery.ui.widget.min.js")))))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:tests? #f                                ; no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda* _
+             (chdir "mjpg-streamer-experimental"))))))
+    (inputs (list libjpeg-turbo))
+    (synopsis "Stream JPEG over IP network")
+    (description "Command line application that copies JPEG frames from one or
+more input plugins to multiple output plugins.  It can be used to stream JPEG
+files over an IP-based network from a webcam to various types of viewers such
+as Chrome, Firefox, Cambozola, VLC, mplayer, and other software capable of
+receiving MJPG streams.")
+    (home-page "https://github.com/jacksonliam/mjpg-streamer")
+    (license license:gpl2+)))
+
 (define-public mjpegtools
   (package
     (name "mjpegtools")
@@ -467,11 +515,7 @@ library.")
         (base32 "0kvhxr5hkabj9v7ah2rzkbirndfqdijd9hp8v52c1z6bxddf019w"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gtk+-2" ,gtk+-2)
-       ("libdv" ,libdv)
-       ("libpng" ,libpng)
-       ("libquicktime" ,libquicktime)
-       ("sdl" ,sdl)))
+     (list gtk+-2 libdv libpng libquicktime sdl))
     (synopsis "Tools for handling MPEG")
     (description "Mjpeg tools is a suite of programs which support video capture,
 editing, playback, and compression to MPEG of MJPEG video.  Edit, play and
@@ -525,10 +569,7 @@ and mmsh protocols.")
                (("is != NULL") "is.good()"))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
      `(("ffmpeg" ,ffmpeg-2.8)
        ("jpeg" ,libjpeg-turbo)
@@ -603,13 +644,9 @@ other software.")
        #:configure-flags
        (list "--with-sdl2")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("linux-headers" ,linux-libre-headers)
-       ("sdl2" ,sdl2)))
+     `(("sdl2" ,sdl2)))
     (synopsis "Touchscreen access library")
     (description "TSLib is a cross-platform library that provides access to
 touchscreen devices and the ability to apply filters to their input events.")
@@ -654,9 +691,9 @@ touchscreen devices and the ability to apply filters to their input events.")
              (mkdir-p (string-append out "/bin"))
              #t))))))
   (native-inputs
-   `(("nasm" ,nasm)))
+   (list nasm))
   (inputs
-   `(("liba52" ,liba52)))
+   (list liba52))
   (synopsis "Advanced MPEG editing and manipulation library")
   (description "Libmpeg3 decodes MP2, MP3, AC3, MPEG-1 video, MPEG-2 video,
 and DVD footage in a single library.  It supports many esoteric features like
@@ -681,7 +718,7 @@ stream decoding")
      `(("config" ,config)
        ("makeinfo" ,texinfo)))
     (inputs
-     `(("ncurses" ,ncurses)))
+     (list ncurses))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -717,7 +754,7 @@ old-fashioned output methods with powerful ascii-art renderer.")
 (define-public celluloid
   (package
     (name "celluloid")
-    (version "0.21")
+    (version "0.22")
     (source
      (origin
        (method url-fetch)
@@ -725,15 +762,12 @@ old-fashioned output methods with powerful ascii-art renderer.")
                            "/releases/download/v" version
                            "/celluloid-" version ".tar.xz"))
        (sha256
-        (base32 "1dvyf21iv9hrgv99szc24386vkacmhidm5b4d31hqqjs3b6di692"))))
+        (base32 "18g596ja8g0fy79pmxqdlzqzb0f9xq69ik4bah8g2ppipfvxbpjz"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libepoxy" ,libepoxy)
-       ("mpv" ,mpv)))
+     (list gtk libepoxy mpv))
     (home-page "https://github.com/celluloid-player/celluloid")
     (synopsis "GTK+ frontend for the mpv media player")
     (description "Celluloid is a simple GTK+ frontend for the mpv media player.
@@ -762,9 +796,7 @@ mpv's powerful playback capabilities.")
     (build-system gnu-build-system)
     ;; XXX We need to run ./bootstrap because of the build system fixes above.
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (arguments `(#:configure-flags '("--enable-shared")
                  #:phases
                  (modify-phases %standard-phases
@@ -782,7 +814,7 @@ television and DVD.  It is also known as AC-3.")
 (define-public libaom
   (package
     (name "libaom")
-    (version "3.1.2")
+    (version "3.2.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -791,12 +823,10 @@ television and DVD.  It is also known as AC-3.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1c7yrhb56qj5c3lz54n1f9cbrvdr32g2yrrdiiy72sib8ycq9hz2"))))
+                "0fmnbzpl481i7kchx4hbvb507r5pfgyrzfrlrs7jk3bicycm75qv"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python))) ; to detect the version
+     (list perl pkg-config python)) ; to detect the version
     (arguments
      `(#:tests? #f                      ; downloads many video clips
        #:configure-flags
@@ -835,12 +865,12 @@ shared library and encoder and decoder command-line executables.")
                (base32
                 "1m3i322n2fwgrvbs1yck7g5md1dbg22bhq5xdqmjpz5m7j4jxqny"))))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxv" ,libxv)
-       ("libsm" ,libsm)
-       ("libice" ,libice)
-       ("sdl" ,sdl)))
+     (list libx11
+           libxext
+           libxv
+           libsm
+           libice
+           sdl))
     (build-system gnu-build-system)
     (home-page "http://libmpeg2.sourceforge.net/")
     (synopsis "MPEG1 and MPEG2 video decoder library")
@@ -868,8 +898,7 @@ shared library and encoder and decoder command-line executables.")
                   "1i6v9h3xx9pi0zmlj3anwwjxqa63sbhy9crrif8dphipwfn9hyg5"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("nasm" ,nasm)))
+       (list pkg-config nasm))
       ;; TODO: Add gpac input
       (arguments
        `(#:tests? #f                    ;no check target
@@ -928,24 +957,24 @@ H.264 (MPEG-4 AVC) video streams.")
     (build-system gnu-build-system)
     (outputs '("out" "gui")) ; "mkvtoolnix-gui" brings the closure size from ~300 MB to 1.5+ GB.
     (inputs
-     `(("boost" ,boost)
-       ("bzip2" ,bzip2)
-       ("cmark" ,cmark)
-       ("libebml" ,libebml)
-       ("file" ,file)
-       ("flac" ,flac)
-       ("fmt" ,fmt)
-       ("libdvdread" ,libdvdread)
-       ("libmatroska" ,libmatroska)
-       ("libogg" ,libogg)
-       ("libvorbis" ,libvorbis)
-       ("lzo" ,lzo)
-       ("pcre2" ,pcre2)
-       ("pugixml" ,pugixml)
-       ("qtbase" ,qtbase-5)
-       ("qtmultimedia" ,qtmultimedia)
-       ("utfcpp" ,utfcpp)
-       ("zlib" ,zlib)))
+     (list boost
+           bzip2
+           cmark
+           libebml
+           file
+           flac
+           fmt
+           libdvdread
+           libmatroska
+           libogg
+           libvorbis
+           lzo
+           pcre2
+           pugixml
+           qtbase-5
+           qtmultimedia
+           utfcpp
+           zlib))
     (native-inputs
      `(("docbook-xsl" ,docbook-xsl)
        ("gettext" ,gettext-minimal)
@@ -1029,7 +1058,7 @@ H.264 (MPEG-4 AVC) video streams.")
 (define-public pipe-viewer
   (package
     (name "pipe-viewer")
-    (version "0.1.4")
+    (version "0.1.7")
     (source
      (origin
        (method git-fetch)
@@ -1039,7 +1068,7 @@ H.264 (MPEG-4 AVC) video streams.")
          (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0d8b3gcr9dndw8qlwfrm0wgp4vjmn8fwd151kmzz7kkw57f5jfch"))))
+        (base32 "1fh8b77vchpsar88dszsz5h1gzd4jz0v902igp2880vnpvacmfi9"))))
     (build-system perl-build-system)
     (arguments
      `(#:imported-modules
@@ -1061,7 +1090,10 @@ H.264 (MPEG-4 AVC) video streams.")
              (substitute* (find-files "lib" "\\.pm$")
                (("\"youtube-dl\"")
                 (format #f "\"~a/bin/youtube-dl\""
-                        (assoc-ref inputs "youtube-dl"))))
+                        (assoc-ref inputs "youtube-dl")))
+               (("\"yt-dlp\"")
+                (format #f "\"~a/bin/yt-dlp\""
+                        (assoc-ref inputs "yt-dlp"))))
              (substitute* (find-files "bin" ".*-viewer$")
                (("'ffmpeg'")
                 (format #f "'~a/bin/ffmpeg'"
@@ -1074,7 +1106,10 @@ H.264 (MPEG-4 AVC) video streams.")
                         (assoc-ref inputs "xdg-utils")))
                (("'youtube-dl'")
                 (format #f "'~a/bin/youtube-dl'"
-                        (assoc-ref inputs "youtube-dl"))))))
+                        (assoc-ref inputs "youtube-dl")))
+               (("'yt-dlp'")
+                (format #f "'~a/bin/yt-dlp'"
+                        (assoc-ref inputs "yt-dlp"))))))
          (add-after 'install 'install-xdg
            (lambda args
              (apply (assoc-ref copy:%standard-phases 'install)
@@ -1096,40 +1131,39 @@ H.264 (MPEG-4 AVC) video streams.")
                      `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib)))
                 (find-files bin-dir))))))))
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-simple" ,perl-test-simple)))
+     (list perl-module-build perl-test-pod perl-test-simple))
     (inputs
-     `(("perl-data-dump" ,perl-data-dump)
-       ("perl-digest-md5" ,perl-digest-md5)
-       ("perl-encode" ,perl-encode)
-       ("ffmpeg" ,ffmpeg)
-       ("perl-file-path" ,perl-file-path)
-       ("perl-file-sharedir" ,perl-file-sharedir)
-       ("perl-getopt-long" ,perl-getopt-long)
-       ("perl-gtk3" ,perl-gtk3)
-       ("perl-http-message" ,perl-http-message)
-       ("perl-json" ,perl-json)
-       ("perl-json-xs" ,perl-json-xs)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
-       ("perl-lwp-useragent-cached" ,perl-lwp-useragent-cached)
-       ("perl-memoize" ,perl-memoize)
-       ("perl-mime-base64" ,perl-mime-base64)
-       ("perl-pathtools" ,perl-pathtools)
-       ("perl-scalar-list-utils" ,perl-scalar-list-utils)
-       ("perl-storable" ,perl-storable)
-       ("perl-term-ansicolor" ,perl-term-ansicolor)
-       ("perl-term-readline-gnu" ,perl-term-readline-gnu)
-       ("perl-text-parsewords" ,perl-text-parsewords)
-       ("perl-text-tabs+wrap" ,perl-text-tabs+wrap)
-       ("perl-unicode-linebreak" ,perl-unicode-linebreak)
-       ("perl-uri-escape" ,perl-uri-escape)
-       ("wget" ,wget)
-       ("xdg-utils" ,xdg-utils)
-       ("youtube-dl" ,youtube-dl)))
+     (list perl-data-dump
+           perl-digest-md5
+           perl-encode
+           ffmpeg
+           perl-file-path
+           perl-file-sharedir
+           perl-getopt-long
+           perl-gtk3
+           perl-http-message
+           perl-json
+           perl-json-xs
+           perl-libwww
+           perl-lwp-protocol-https
+           perl-lwp-useragent-cached
+           perl-memoize
+           perl-mime-base64
+           perl-pathtools
+           perl-scalar-list-utils
+           perl-storable
+           perl-term-ansicolor
+           perl-term-readline-gnu
+           perl-text-parsewords
+           perl-text-tabs+wrap
+           perl-unicode-linebreak
+           perl-uri-escape
+           wget
+           xdg-utils
+           youtube-dl
+           yt-dlp))
     (propagated-inputs
-     `(("dconf" ,dconf)))
+     (list dconf))
     (home-page "https://github.com/trizen/pipe-viewer")
     (synopsis "CLI+GUI YouTube Client")
     (description "Pipe-Viewer is a lightweight application for searching and
@@ -1256,8 +1290,7 @@ designed to encode video or images into an H.265 / HEVC encoded bitstream.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("nasm" ,nasm)))
+     (list pkg-config nasm))
     (propagated-inputs
      `(("freetype" ,freetype)
        ("fribidi" ,fribidi)
@@ -1285,15 +1318,15 @@ ASS/SSA (Advanced Substation Alpha/SubStation Alpha) subtitle format.")
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
-     `(("freeglut" ,freeglut)
-       ("ftgl" ,ftgl)
-       ("imlib2" ,imlib2)
-       ("libx11" ,libx11)
-       ("mesa" ,mesa)
-       ("ncurses" ,ncurses)
-       ("zlib" ,zlib)))
+     (list freeglut
+           ftgl
+           imlib2
+           libx11
+           mesa
+           ncurses
+           zlib))
     (home-page "http://caca.zoy.org/wiki/libcaca")
     (synopsis "Colour ASCII-art library")
     (description "libcaca is a graphics library that outputs text instead of
@@ -1316,9 +1349,7 @@ canvas operations.")
                 "0sjz0s0nrv7jcpvh1i432x3jza0y5yycmzw84cfncb2qby0i62rs"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (home-page "https://www.videolan.org/developers/libdca.html")
     (synopsis "DTS Coherent Acoustics decoder")
     (description "libdca is a library for decoding DTS Coherent Acoustics
@@ -1338,8 +1369,8 @@ streams.")
                (base32
                 "1fl96f2xh2slkv1i1ix7kqk576a0ak1d33cylm0mbhm96d0761d3"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("libxv" ,libxv)))
+    (native-inputs (list pkg-config))
+    (inputs (list libxv))
     (home-page "http://libdv.sourceforge.net/")
     (synopsis "DV video (IEC 61834 and SMPTE 314M) codec")
     (description "The Quasar DV codec (libdv) is a software codec for DV
@@ -1362,7 +1393,7 @@ SMPTE 314M.")
         (base32 "06h81sxyz2riic0gpzik6ffcnq32wrqphi8c6k55glcdymiimyfs"))))
     (build-system cmake-build-system)
     (inputs
-     `(("libebml" ,libebml)))
+     (list libebml))
     (arguments
      `(#:configure-flags
        (list "-DBUILD_SHARED_LIBS=YES")
@@ -1378,27 +1409,64 @@ support in old parsers.
 libebml is a C++ library to read and write EBML files.")
     (license license:lgpl2.1)))
 
+(define-public libplacebo
+  (package
+    (name "libplacebo")
+    (version "4.157.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://code.videolan.org/videolan/libplacebo")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "08kqsd29h8wm0vz7698wh2mdgpwv6anqc5n7d1spnnamwyfwc64h"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:configure-flags
+       `("-Dopengl=enabled"
+         ,(string-append "-Dvulkan-registry="
+                         (assoc-ref %build-inputs "vulkan-headers")
+                         "/share/vulkan/registry/vk.xml"))))
+    (native-inputs
+     (list python-mako pkg-config))
+    (inputs
+     (list lcms
+           libepoxy
+           mesa
+           shaderc
+           vulkan-headers
+           vulkan-loader))
+    (home-page "https://code.videolan.org/videolan/libplacebo")
+    (synopsis "GPU-accelerated image/video processing library")
+    (description "libplacebo is, in a nutshell, the core rendering algorithms
+and ideas of mpv rewritten as an independent library.  As of today, libplacebo
+contains a large assortment of video processing shaders, focusing on both
+quality and performance.")
+    (license license:lgpl2.1+)))
+
 (define-public libva
   (package
     (name "libva")
-    (version "2.10.0")
+    (version "2.13.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/intel/libva/releases/download/"
                            version "/libva-" version ".tar.bz2"))
        (sha256
-        (base32 "0dh2zjn6wi74ga75r6pbrrj8hjm213zyxvn9bv78z0fra1dy70gs"))))
+        (base32 "0q6l193x9whd80sjd5mx8cb7c0fcljb19nhfpla5h49nkzrq7lzs"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libdrm" ,libdrm)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxfixes" ,libxfixes)
-       ("mesa" ,mesa)
-       ("wayland" ,wayland)))
+     (list libdrm
+           libx11
+           libxext
+           libxfixes
+           mesa
+           wayland))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1446,13 +1514,9 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
        (list "--enable-wayland"
              "--enable-x11")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libdrm" ,libdrm)
-       ("libva" ,libva)
-       ("libx11" ,libx11)
-       ("mesa" ,mesa)
-       ("wayland" ,wayland)))
+     (list libdrm libva libx11 mesa wayland))
     (home-page "https://01.org/linuxmedia/vaapi")
     (synopsis "Collection of testing utilities for VA-API")
     (description
@@ -1466,14 +1530,14 @@ operate properly.")
 (define-public ffmpeg
   (package
     (name "ffmpeg")
-    (version "4.4")
+    (version "4.4.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "02fr8mvf2agwmyb9q2bmh9p09gpz3xxmpcbbbj8iydz57hc0mc86"))))
+               "00hfwd8ld6jnd26pl9f0wcd2mag4zacxxgqgabsja2xkkagavnza"))))
     (build-system gnu-build-system)
     (inputs
      `(("dav1d" ,dav1d)
@@ -1516,12 +1580,12 @@ operate properly.")
        ("xvid" ,xvid)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("bc" ,bc)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)
-       ("speex" ,speex)
-       ("yasm" ,yasm)))
+     (list bc
+           perl
+           pkg-config
+           texinfo
+           speex
+           yasm))
     (arguments
      `(#:test-target "fate"
        #:configure-flags
@@ -1657,28 +1721,17 @@ convert and stream audio and video.  It includes the libavcodec
 audio/video codec library.")
     (license license:gpl2+)))
 
-(define-public ffmpeg-4.3
-  (package/inherit ffmpeg
-    (version "4.3.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
-                                  version ".tar.xz"))
-              (sha256
-               (base32
-                "1nyd9jlcy0pqnwzi29a7sg50hq37vb0g3f9l16y3q8yh3m7ydr26"))))))
-
 (define-public ffmpeg-3.4
   (package
     (inherit ffmpeg)
-    (version "3.4.7")
+    (version "3.4.9")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1j7mdk9szrljgv4sdx69bm1pnbb3cldbdxbkr42jbdi9zn11gl7g"))))
+               "0d8nkd9c85rkjlgsq1hidmykkrksi883ygqzhhj6wh4nqflv8vs9"))))
     (arguments
      (substitute-keyword-arguments (package-arguments ffmpeg)
        ((#:modules modules %gnu-build-system-modules)
@@ -1691,21 +1744,20 @@ audio/video codec library.")
                  "--enable-libaom"
                  "--enable-librav1e"
                  "--enable-libsrt")))))
-    (inputs (fold alist-delete
-                  (package-inputs ffmpeg)
-                  '("dav1d" "libaom" "rav1e" "srt")))))
+    (inputs (modify-inputs (package-inputs ffmpeg)
+              (delete "dav1d" "libaom" "rav1e" "srt")))))
 
 (define-public ffmpeg-2.8
   (package
     (inherit ffmpeg)
-    (version "2.8.16")
+    (version "2.8.18")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "14n0xg22yz1r4apif2idm91s3avcmkz4sl8gyj5763gcy415k2bb"))))
+                "0k6dq7b8rpjvdl5ncf1135qwc36x0x9va8v83aggvbfhy5d97vwn"))))
     (arguments
      `(#:tests? #f               ; XXX: Enable them later, if required
        #:configure-flags
@@ -1741,9 +1793,8 @@ audio/video codec library.")
                (format #t "setting LD_LIBRARY_PATH to ~s~%" path)
                (setenv "LD_LIBRARY_PATH" path)
                #t))))))
-    (inputs (fold alist-delete
-                  (package-inputs ffmpeg)
-                  '("dav1d" "libaom" "rav1e" "srt")))))
+    (inputs (modify-inputs (package-inputs ffmpeg)
+              (delete "dav1d" "libaom" "rav1e" "srt")))))
 
 (define-public ffmpeg-for-stepmania
   (hidden-package
@@ -1788,12 +1839,9 @@ audio/video codec library.")
                 "1bakbr714j7yxdal1f5iq0gcl4cxggbbgj227ihdh5kvygqlwich"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("ffmpeg" ,ffmpeg)
-       ("libjpeg-turbo" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("gvfs" ,gvfs)))
+     (list ffmpeg libjpeg-turbo libpng gvfs))
     (arguments
      `(#:configure-flags (list "-DENABLE_GIO=ON" "-DENABLE_THUMBNAILER=ON")))
     (home-page "https://github.com/dirkvdb/ffmpegthumbnailer")
@@ -1969,8 +2017,7 @@ streaming protocols.")
     (build-system gnu-build-system)
     ;; FIXME: Add additional inputs once available.
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("yasm" ,yasm)))
+     (list pkg-config yasm))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("cdparanoia" ,cdparanoia)
@@ -2051,7 +2098,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
 (define-public mpv
   (package
     (name "mpv")
-    (version "0.33.1")
+    (version "0.34.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2059,13 +2106,11 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
-               (base32
-                "06rw1f55zcsj78ql8w70j9ljp2qb1pv594xj7q9cmq7i92a7hq45"))))
+               (base32 "0kqckrgvpx42gdmnc644lpwbimwf1am256xd670w2b8sbrjv3bm9"))))
     (build-system waf-build-system)
     (native-inputs
-     `(("perl" ,perl) ; for zsh completion file
-       ("pkg-config" ,pkg-config)
-       ("python-docutils" ,python-docutils)))
+     (list perl ; for zsh completion file
+           pkg-config python-docutils))
     ;; Missing features: libguess, V4L2
     (inputs
      `(("alsa-lib" ,alsa-lib)
@@ -2104,19 +2149,17 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
        ("wayland" ,wayland)
        ("wayland-protocols" ,wayland-protocols)
        ("libxkbcommon" ,libxkbcommon)
-       ("youtube-dl" ,youtube-dl)
+       ("yt-dlp" ,yt-dlp)
        ("zlib" ,zlib)))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
-         (add-after
-          'unpack 'patch-paths
-          (lambda* (#:key inputs #:allow-other-keys)
-            (let ((ytdl (assoc-ref inputs "youtube-dl")))
-              (substitute* "player/lua/ytdl_hook.lua"
-                (("\"youtube-dl\",")
-                 (string-append "\"" ytdl "/bin/youtube-dl\",")))
-              #t)))
+         (add-after 'unpack 'patch-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((ytdl (assoc-ref inputs "yt-dlp")))
+               (substitute* "player/lua/ytdl_hook.lua"
+                 (("\"yt-dlp\",")
+                  (string-append "\"" ytdl "/bin/yt-dlp\","))))))
          (add-before 'configure 'build-reproducibly
            (lambda _
              ;; Somewhere in the build system library dependencies are enumerated
@@ -2145,13 +2188,67 @@ fork of mplayer2 and MPlayer.  It shares some features with the former
 projects while introducing many more.")
     (license license:gpl2+)))
 
+(define-public smplayer
+  (package
+    (name "smplayer")
+    (version "21.10.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/smplayer/SMPlayer/" version
+                    "/smplayer-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "12nvcl0cfix1xay9hfi7856vg4lpv8y5b0a22212bsjbvl5g22rc"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list qttools))
+    (inputs
+     (list bash-minimal qtbase-5 zlib mpv))
+    (arguments
+     (list #:tests? #false              ; no tests
+           #:make-flags #~(list (string-append "PREFIX=" #$output)
+                                (string-append "CC=" #+(cc-for-target))
+                                ;; A KLUDGE to turn off invoking lrelease on the
+                                ;; project for now, because it fails consistently
+                                ;; with "WARNING: Could not find qmake spec
+                                ;; 'default'". See below.
+                                "LRELEASE=true")
+           #:phases
+           #~(modify-phases %standard-phases
+               (delete 'configure)
+               ;; Due to the above, we must run lrelease separately on each .ts file
+               ;; (as opposed to running `lrelease-pro smplayer.pro` for the entire
+               ;; project, as the Makefile does normally without the above kludge).
+               (add-after 'build 'compile-ts-files
+                 (lambda _
+                   (for-each (lambda (file)
+                               (invoke "lrelease" file))
+                             (find-files "./" "\\.ts$"))))
+               (add-after 'install 'wrap-executable
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (let* ((out (assoc-ref outputs "out"))
+                          (mpv (assoc-ref inputs "mpv")))
+                     (wrap-program (string-append out "/bin/smplayer")
+                       `("PATH" ":" prefix
+                         ,(list (string-append mpv "/bin"))))))))))
+    (home-page "https://www.smplayer.info")
+    (synopsis "Complete front-end for MPlayer, a media player")
+    (description "SMPlayer is a graphical user interface (GUI) for
+MPlayer, which is capable of playing almost all known video and audio
+formats.  Apart from providing access for the most common and useful
+options of MPlayer, SMPlayer adds other interesting features like the
+possibility to play Youtube videos, download subtitles, remember
+the last played position, etc.")
+    (license license:gpl2+)))
+
 (define-public gnome-mpv
   (deprecated-package "gnome-mpv" celluloid))
 
 (define-public mpv-mpris
   (package
     (name "mpv-mpris")
-    (version "0.5")
+    (version "0.6")
     (source
       (origin
         (method git-fetch)
@@ -2160,8 +2257,7 @@ projects while introducing many more.")
                (commit version)))
         (file-name (git-file-name name version))
         (sha256
-         (base32
-          "07p6li5z38pkfd40029ag2jqx917vyl3ng5p2i4v5a0af14slcnk"))))
+         (base32 "03gldk149i2108w3ylyfmci77kdq4whdzfavh7hjviwyj534101r"))))
     (build-system copy-build-system)
     (arguments
      '(#:install-plan
@@ -2173,10 +2269,9 @@ projects while introducing many more.")
              (setenv "CC" (which "gcc"))
              (invoke "make"))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("mpv" ,mpv)))
+     (list glib mpv))
     (home-page "https://github.com/hoyon/mpv-mpris")
     (synopsis "MPRIS plugin for mpv")
     (description "This package provides an @dfn{MPRIS} (Media Player Remote
@@ -2225,8 +2320,7 @@ To load this plugin, specify the following option when starting mpv:
        ;; custom directory, but there seems to be no tarball with all files.
        #:tests? #f))
     (native-inputs
-     `(("perl" ,perl)
-       ("yasm" ,yasm)))
+     (list perl yasm))
     (synopsis "VP8/VP9 video codec")
     (description "libvpx is a codec for the VP8/VP9 video compression format.")
     (license license:bsd-3)
@@ -2308,9 +2402,9 @@ To load this plugin, specify the following option when starting mpv:
                                    (string-append zsh "/_youtube-dl"))
                         #t))))))
     (native-inputs
-     `(("zip" ,zip)))
+     (list zip))
     (inputs
-     `(("ffmpeg" ,ffmpeg)))
+     (list ffmpeg))
     (synopsis "Download videos from YouTube.com and other sites")
     (description
      "Youtube-dl is a small command-line program to download videos from
@@ -2318,6 +2412,74 @@ YouTube.com and many more sites.")
     (home-page "https://yt-dl.org")
     (license license:public-domain)))
 
+(define-public yt-dlp
+  (package/inherit youtube-dl
+    (name "yt-dlp")
+    (version "2021.10.22")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/yt-dlp/yt-dlp/"
+                                  "releases/download/"
+                                  version "/yt-dlp.tar.gz"))
+              (sha256
+               (base32
+                "0xh4cwmvx49pxn8x07wj2dy8ynj6xg8977l5493vv0l8zc27wp87"))
+              (snippet
+               '(begin
+                  ;; Delete the pre-generated files, except for the man page
+                  ;; which requires 'pandoc' to build.
+                  (for-each delete-file '("yt-dlp"
+                                          ;;pandoc is needed to generate
+                                          ;;"yt-dlp.1"
+                                          "completions/bash/yt-dlp"
+                                          "completions/fish/yt-dlp.fish"
+                                          "completions/zsh/_yt-dlp"))
+                  #t))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments youtube-dl)
+       ((#:tests? _) #t)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           ;; See the comment for the corresponding phase in youtube-dl.
+           (replace 'default-to-the-ffmpeg-input
+             (lambda _
+               (substitute* "yt_dlp/postprocessor/ffmpeg.py"
+                 (("\\.get_param\\('ffmpeg_location'\\)" match)
+                  (format #f "~a or '~a'" match (which "ffmpeg"))))
+               #t))
+           (replace 'build-generated-files
+             (lambda _
+               ;; Avoid the yt-dlp.1 target, which requires pandoc.
+               (invoke "make" "PYTHON=python" "yt-dlp" "completions")))
+           (replace 'fix-the-data-directories
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((prefix (assoc-ref outputs "out")))
+                 (substitute* "setup.py"
+                   (("'etc/")
+                    (string-append "'" prefix "/etc/"))
+                   (("'share/")
+                    (string-append "'" prefix "/share/"))))
+               #t))
+           (delete 'install-completion)
+           (replace 'check
+             (lambda* (#:key tests? #:allow-other-keys)
+               (when tests?
+                 (invoke "pytest" "-k" "not download"))))))))
+    (inputs
+     `(("python-mutagen" ,python-mutagen)
+       ("python-pycryptodomex" ,python-pycryptodomex)
+       ("python-websockets" ,python-websockets)
+       ,@(package-inputs youtube-dl)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ,@(package-native-inputs youtube-dl)))
+    (description
+     "yt-dlp is a small command-line program to download videos from
+YouTube.com and many more sites.  It is a fork of youtube-dl with a
+focus on adding new features while keeping up-to-date with the
+original project.")
+    (home-page "https://github.com/yt-dlp/yt-dlp")))
+
 (define-public youtube-dl-gui
   (package
     (name "youtube-dl-gui")
@@ -2403,11 +2565,9 @@ YouTube.com and many more sites.")
                      Categories=AudioVideo;Audio;Video;Network~%")))
                #t))))))
     (native-inputs
-     `(("gettext-minimal" ,gettext-minimal)))
+     (list gettext-minimal))
     (inputs
-     `(("python2-twodict" ,python2-twodict)
-       ("python2-wxpython" ,python2-wxpython)
-       ("youtube-dl" ,youtube-dl)))
+     (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}")
@@ -2420,7 +2580,7 @@ other site that youtube-dl supports.")
 (define-public you-get
   (package
     (name "you-get")
-    (version "0.4.1500")
+    (version "0.4.1555")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2429,10 +2589,10 @@ other site that youtube-dl supports.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "02wkmq6bjg9iz0kccsgs192aiky99l2jnw1xs6zjhvjvq7jyvf7s"))))
+                "0gn86i6nfsw395r9a3i88nv2g08s5bgjps7w4qawb9gvk4h7zqap"))))
     (build-system python-build-system)
     (inputs
-     `(("ffmpeg" ,ffmpeg)))             ; for multi-part and >=1080p videos
+     (list ffmpeg))             ; for multi-part and >=1080p videos
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2445,8 +2605,7 @@ other site that youtube-dl supports.")
                  ;; Don't blindly replace all occurrences of ‘'ffmpeg'’: the
                  ;; same string is also used when sniffing ffmpeg's output.
                  (("(FFMPEG == |\\()'ffmpeg'" _ prefix)
-                  (string-append prefix "'" ffmpeg "'")))
-               #t))))
+                  (string-append prefix "'" ffmpeg "'")))))))
        #:tests? #f))                    ; XXX some tests need Internet access
     (synopsis "Download videos, audio, or images from Web sites")
     (description
@@ -2470,24 +2629,23 @@ audio, images) from the Web.  It can use either mpv or vlc for playback.")
                 "0xdybiihd66b79rbsawjhxs9snm78gld5ziz3gnp8vdcw0bshwz7"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (inputs
-     `(("perl-data-dump" ,perl-data-dump)
-       ("perl-file-sharedir" ,perl-file-sharedir)
-       ("perl-gtk2" ,perl-gtk2)
-       ("perl-json" ,perl-json)
-       ("perl-json-xs" ,perl-json-xs)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
-       ("perl-lwp-useragent-cached" ,perl-lwp-useragent-cached)
-       ("perl-memoize" ,perl-memoize)
-       ("perl-mozilla-ca" ,perl-mozilla-ca)
-       ("perl-term-readline-gnu" ,perl-term-readline-gnu)
-       ("perl-unicode-linebreak" ,perl-unicode-linebreak)
-       ("xdg-utils" ,xdg-utils)
-
-       ;; Some videos play without youtube-dl, but others silently fail to.
-       ("youtube-dl" ,youtube-dl)))
+     (list perl-data-dump
+           perl-file-sharedir
+           perl-gtk2
+           perl-json
+           perl-json-xs
+           perl-libwww
+           perl-lwp-protocol-https
+           perl-lwp-useragent-cached
+           perl-memoize
+           perl-mozilla-ca
+           perl-term-readline-gnu
+           perl-unicode-linebreak
+           xdg-utils
+           ;; Some videos play without youtube-dl, but others silently fail to.
+           youtube-dl))
     (arguments
      `(#:modules ((guix build perl-build-system)
                   (guix build utils)
@@ -2579,7 +2737,7 @@ Both command-line and GTK2 interface are available.")
                  (("\"libbdplus\"")
                   (string-append "\"" libbdplus "/lib/libbdplus\"")))
                #t))))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
      `(("fontconfig" ,fontconfig)
        ("freetype" ,freetype)
@@ -2609,9 +2767,9 @@ players, like VLC or MPlayer.")
     (arguments
      `(#:configure-flags '("--with-libdvdcss=yes")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
-     `(("libdvdcss" ,libdvdcss)))
+     (list libdvdcss))
     (home-page "http://dvdnav.mplayerhq.hu/")
     (synopsis "Library for reading video DVDs")
     (description
@@ -2636,13 +2794,9 @@ installed).")
          "1drfc47hikfzc9d7hjk34rw10iqw01d2vwmn91pv73ppx4nsj81h"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libdvdread" ,libdvdread)
-       ("libpng" ,libpng)
-       ("imagemagick" ,imagemagick)
-       ("libxml2" ,libxml2)
-       ("freetype" ,freetype)))
+     (list libdvdread libpng imagemagick libxml2 freetype))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Generates a DVD-Video movie from a MPEG-2 stream")
     (description "@command{dvdauthor} will generate a DVD-Video movie from a
 MPEG-2 stream containing VOB packets.")
@@ -2663,9 +2817,9 @@ MPEG-2 stream containing VOB packets.")
                 "0cv7j8irsv1n2dadlnhr6i1b8pann2ah6xpxic41f04my6ba6rp5"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libdvdread" ,libdvdread)))
+     (list libdvdread))
     (home-page "http://dvdnav.mplayerhq.hu/")
     (synopsis "Library for video DVD navigation features")
     (description
@@ -2732,9 +2886,9 @@ device without having to bother about the decryption.")
                  `("GUILE_LOAD_PATH" ":" prefix (,site))
                  `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,compiled)))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("guile" ,guile-3.0)))
+     (list guile-3.0))
     (synopsis "SubRip to WebVTT subtitle converter")
     (description "srt2vtt converts SubRip formatted subtitles to WebVTT format
 for use with HTML5 video.")
@@ -2895,11 +3049,7 @@ capabilities.")
        ("pkg-config" ,pkg-config)
        ("yasm" ,yasm)))
     (inputs
-     `(("ffmpeg" ,ffmpeg)
-       ("libass" ,libass)
-       ("python" ,python)
-       ("tesseract-ocr" ,tesseract-ocr)
-       ("zimg" ,zimg)))
+     (list ffmpeg libass python tesseract-ocr zimg))
     (home-page "http://www.vapoursynth.com/")
     (synopsis "Video processing framework")
     (description "VapourSynth is a C++ library and Python module for video
@@ -2925,7 +3075,7 @@ format changes.")
                (base32
                 "1xyg3amgg27zf7188kss7y248s0xhh1vv8rrk0j9bcsd5nasxsmf"))))
     (build-system gnu-build-system)
-    (native-inputs `(("yasm" ,yasm)))
+    (native-inputs (list yasm))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -2958,19 +3108,17 @@ and custom quantization matrices.")
     (build-system python-build-system)
     (home-page "https://github.com/streamlink/streamlink")
     (native-inputs
-     `(("python-freezegun" ,python-freezegun)
-       ("python-pytest" ,python-pytest)
-       ("python-mock" ,python-mock)
-       ("python-requests-mock" ,python-requests-mock)))
+     (list python-freezegun python-pytest python-mock
+           python-requests-mock))
     (propagated-inputs
-     `(("python-pysocks" ,python-pysocks)
-       ("python-websocket-client" ,python-websocket-client)
-       ("python-iso3166" ,python-iso3166)
-       ("python-iso639" ,python-iso639)
-       ("python-isodate" ,python-isodate)
-       ("python-pycryptodome" ,python-pycryptodome)
-       ("python-requests" ,python-requests)
-       ("python-urllib3" ,python-urllib3)))
+     (list python-pysocks
+           python-websocket-client
+           python-iso3166
+           python-iso639
+           python-isodate
+           python-pycryptodome
+           python-requests
+           python-urllib3))
     (synopsis "Extract streams from various services")
     (description "Streamlink is command-line utility that extracts streams
 from sites like Twitch.tv and pipes them into a video player of choice.")
@@ -3013,8 +3161,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
                                             "/bin"))
                #t)))))
       (inputs
-       `(("python-requests" ,python-requests)
-         ("streamlink" ,streamlink)))
+       (list python-requests streamlink))
       (home-page "https://github.com/BasioMeusPuga/twitchy")
       (synopsis "Command-line interface for Twitch.tv")
       (description
@@ -3024,7 +3171,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
 (define-public mlt
   (package
     (name "mlt")
-    (version "7.0.1")
+    (version "7.2.0")
     (source
      (origin
        (method git-fetch)
@@ -3033,7 +3180,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "13c5miph9jjbz69dhy0zvbkk5zbb05dr3vraaci0d5fdbrlhyscf"))))
+        (base32 "17d4gs46ca3n0qg6z69hl6mmllnqj2id8ccrv8fyz8c5zm55ghqm"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ;requires "Kwalify"
@@ -3046,31 +3193,31 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
                       "-Wl,-rpath="
                       (assoc-ref outputs "out") "/lib")))))))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("alsa-plugins" ,alsa-plugins "pulseaudio")
-       ("ffmpeg" ,ffmpeg)
-       ("fftw" ,fftw)
-       ("frei0r-plugins" ,frei0r-plugins)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("gtk+" ,gtk+)
-       ("libxml2" ,libxml2)
-       ("jack" ,jack-1)
-       ("ladspa" ,ladspa)
-       ("libebur128" ,libebur128)
-       ("libexif" ,libexif)
-       ("libvorbis" ,libvorbis)
-       ("rubberband" ,rubberband)
-       ("libsamplerate" ,libsamplerate)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("rtaudio" ,rtaudio)
-       ("sdl2" ,sdl2)
-       ("sdl2-image" ,sdl2-image)
-       ("sox" ,sox)
-       ("vidstab" ,vidstab)))
+     (list alsa-lib
+           `(,alsa-plugins "pulseaudio")
+           ffmpeg
+           fftw
+           frei0r-plugins
+           gdk-pixbuf
+           gtk+
+           libxml2
+           jack-1
+           ladspa
+           libebur128
+           libexif
+           libvorbis
+           rubberband
+           libsamplerate
+           pulseaudio
+           qtbase-5
+           qtsvg
+           rtaudio
+           sdl2
+           sdl2-image
+           sox
+           vidstab))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.mltframework.org/")
     (synopsis "Author, manage, and run multitrack audio/video compositions")
     (description
@@ -3105,8 +3252,8 @@ tools, XML authoring components, and an extensible plug-in based API.")
                             "/lib/glib-2.0/include"))
        ,@(package-arguments mlt)))
     (inputs
-     `(("gtk+", gtk+-2)
-       ,@(alist-delete "gtk+" (package-inputs mlt))))))
+     (modify-inputs (package-inputs mlt)
+       (replace "gtk+" gtk+-2)))))
 
 (define-public v4l-utils
   (package
@@ -3155,8 +3302,7 @@ tools, XML authoring components, and an extensible plug-in based API.")
                (rmdir (string-append out "/share/applications"))
                #t))))))
     (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list perl pkg-config))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("glu" ,glu)
@@ -3214,8 +3360,7 @@ be used for realtime video capture via Linux-specific APIs.")
             (separator #f)                         ;single entry
             (files '("share/obs/obs-plugins")))))
     (native-inputs
-     `(("cmocka" ,cmocka)
-       ("pkg-config" ,pkg-config)))
+     (list cmocka pkg-config))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("curl" ,curl)
@@ -3272,8 +3417,7 @@ and JACK.")
      `(#:tests? #f
        #:configure-flags
        (list "-DGLOBAL_INSTALLATION=ON" "-DUSE_CMAKE_LIBDIR=ON")))
-    (inputs `(("obs" ,obs)
-              ("fftw" ,fftw)))
+    (inputs (list obs fftw))
     (home-page "https://github.com/univrsal/spectralizer")
     (synopsis "OBS plugin for audio visualization")
     (description "This OBS plugins allows you to vizualize MPD and internal
@@ -3308,8 +3452,7 @@ OBS audio sources.")
                (("PERMISSIONS") ")"))
              #t)))))
     (inputs
-     `(("obs" ,obs)
-       ("qtbase" ,qtbase-5)))
+     (list obs qtbase-5))
     (home-page "https://github.com/Palakis/obs-websocket")
     (synopsis "OBS plugin for remote control via WebSockets")
     (description "This OBS plugin allows you to establish a WebSocket channel
@@ -3333,12 +3476,10 @@ programs on your current machine or on other machines.")
           "1faiq2gdb7qis3m1hilm4pz8lkmkab75vzm608dbiazahhybf96p"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs `() )
-    (inputs `(("obs" ,obs)
-              ("libx11" ,libx11 "out")
-              ("wayland" ,wayland)
-              ("wayland-protocols" ,wayland-protocols)))
+    (inputs (list obs
+                  `(,libx11 "out") wayland wayland-protocols))
     (home-page "https://hg.sr.ht/~scoopta/wlrobs")
     (synopsis "OBS plugin for Wayland (wlroots) screen capture")
     (description
@@ -3362,11 +3503,9 @@ Wayland compositors.")
           "1hc4mcrbr1yhfiy4zfd8wc2iiqbp90z6jswap0jia20vmyk5lqld"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libx11" ,libx11 "out")
-       ("libxext" ,libxext)
-       ("xorgproto" ,xorgproto)))
+     (list `(,libx11 "out") libxext xorgproto))
     (home-page "https://wiki.freedesktop.org/www/Software/VDPAU/")
     (synopsis "Video Decode and Presentation API")
     (description "VDPAU is the Video Decode and Presentation API for UNIX.  It
@@ -3396,12 +3535,9 @@ present in modern GPUs.")
            (lambda _
              (invoke "autoreconf" "-fiv"))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libx11" ,libx11)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libx11 pkg-config))
     (propagated-inputs
-     `(("libvdpau" ,libvdpau)))
+     (list libvdpau))
     (home-page "https://wiki.freedesktop.org/www/Software/VDPAU/")
     (synopsis "Tool to query the capabilities of a VDPAU implementation")
     (description "Vdpauinfo is a tool to query the capabilities of a VDPAU
@@ -3429,11 +3565,9 @@ implementation.")
     (arguments
      '(#:tests? #f)) ; Tests require a running X11 server, with VA-API support.
     (native-inputs
-     `(("libvdpau" ,libvdpau)
-       ("pkg-config" ,pkg-config)))
+     (list libvdpau pkg-config))
     (inputs
-     `(("libva" ,libva)
-       ("mesa" ,mesa)))
+     (list libva mesa))
     (home-page "https://github.com/i-rinat/libvdpau-va-gl")
     (synopsis "VDPAU driver with VA-API/OpenGL backend")
     (description
@@ -3447,27 +3581,28 @@ scaling and VA-API (if available) to accelerate video decoding.")
 (define-public recordmydesktop
   (package
     (name "recordmydesktop")
-    (version "0.3.8.1")
+    (version "0.4.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://sourceforge/" name "/" name "/"
-                                  version "/recordmydesktop-" version ".tar.gz"))
+              (uri (string-append "https://github.com/Enselic/"
+                                  name "/releases/download/v" version
+                                  "/recordmydesktop-" version ".tar.gz"))
               (sha256
                (base32
-                "133kkl5j0r877d41bzj7kj0vf3xm8x80yyx2n8nqxrva304f58ik"))))
+                "17kjgmkl45zma64a5dg1hyvnjkzk4vl8milgi6ic7hlsbmywpig7"))))
     (build-system gnu-build-system)
-    (inputs `(("popt" ,popt)
-              ("zlib" ,zlib)
-              ("libx11" ,libx11)
-              ("libice" ,libice)
-              ("libsm" ,libsm)
-              ("libxfixes" ,libxfixes)
-              ("libxdamage" ,libxdamage)
-              ("libxext" ,libxext)
-              ("alsa-lib" ,alsa-lib)
-              ("libvorbis" ,libvorbis)
-              ("libtheora" ,libtheora)))
-    (home-page "http://recordmydesktop.sourceforge.net/")
+    (inputs (list popt
+                  zlib
+                  libx11
+                  libice
+                  libsm
+                  libxfixes
+                  libxdamage
+                  libxext
+                  alsa-lib
+                  libvorbis
+                  libtheora))
+    (home-page "https://enselic.github.io/recordmydesktop/")
     (synopsis "Desktop session video recorder")
     (description
      "recordMyDesktop is a command-line tool that captures the activity in
@@ -3494,16 +3629,16 @@ making @dfn{screencasts}.")
     ;; README.md, the program builds and functions properly without them.
     ;; As a result, they are omitted. Please add them back if problems appear.
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("ffmpeg" ,ffmpeg)
-       ("glu" ,glu)
-       ("jack" ,jack-1)
-       ("libxi" ,libxi)
-       ("libxinerama" ,libxinerama)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtx11extras" ,qtx11extras)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+     (list alsa-lib
+           ffmpeg
+           glu
+           jack-1
+           libxi
+           libxinerama
+           pulseaudio
+           qtbase-5
+           qtx11extras))
+    (native-inputs (list pkg-config))
     (arguments
      `(#:configure-flags
        (list "-DWITH_QT5=TRUE")
@@ -3539,8 +3674,7 @@ Other features include a live preview and live streaming.")
      ;; GCC 7.  Also, 'configure' does CXXFLAGS=$CFLAGS, hence this hack.
      '(#:configure-flags '("CFLAGS=-O2 -g -std=c++03")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (inputs
      `(("sdl" ,sdl2)))
     (home-page "https://icculus.org/smpeg/")
@@ -3571,7 +3705,7 @@ and MPEG system streams.")
                (base32
                 "0jfi085rf3fa5xsn0vd3nqf32my8ph9c6a9445y7a8lrlz4dms64"))))
     (inputs
-     `(("sdl" ,sdl)))))
+     (list sdl))))
 
 (define-public libbdplus
   (package
@@ -3585,7 +3719,7 @@ and MPEG system streams.")
        (sha256
         (base32 "02n87lysqn4kg2qk7d1ffrp96c44zkdlxdj0n16hbgrlrpiwlcd6"))))
     (inputs
-     `(("libgcrypt" ,libgcrypt)))
+     (list libgcrypt))
     (build-system gnu-build-system)
     (home-page "https://www.videolan.org/developers/libbdplus.html")
     (synopsis "Library for decrypting certain Blu-Ray discs")
@@ -3605,10 +3739,9 @@ specifications.")
        (sha256
         (base32 "11skjqjlldmbjkyxdcz4fmcn6y4p95r1xagbcnjy4ndnzf0l723d"))))
     (inputs
-     `(("libgcrypt" ,libgcrypt)))
+     (list libgcrypt))
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
+     (list bison flex))
     (build-system gnu-build-system)
     (home-page "https://www.videolan.org/developers/libaacs.html")
     (synopsis "Library for decrypting certain Blu-Ray discs")
@@ -3636,10 +3769,13 @@ Content System specification.")
      ;; test suite results differ depending on the country and also introduce
      ;; non-determinism in the tests.
      ;; https://github.com/mps-youtube/mps-youtube/issues/556
-     `(#:tests? #f))
+     '(#:tests? #f
+       #:phases (modify-phases %standard-phases
+                  ;; Loading this as a library will create cache directories,
+                  ;; etc; which fails in the build container.
+                  (delete 'sanity-check))))
     (propagated-inputs
-     `(("python-pafy" ,python-pafy)
-       ("python-pygobject" ,python-pygobject))) ; For mpris2 support
+     (list python-pafy python-pygobject)) ; For mpris2 support
     (home-page "https://github.com/mps-youtube/mps-youtube")
     (synopsis "Terminal based YouTube player and downloader")
     (description
@@ -3654,7 +3790,7 @@ supported players in addition to this package.")
 (define-public handbrake
   (package
     (name "handbrake")
-    (version "1.3.3")
+    (version "1.4.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/HandBrake/HandBrake/"
@@ -3662,7 +3798,7 @@ supported players in addition to this package.")
                                   "HandBrake-" version "-source.tar.bz2"))
               (sha256
                (base32
-                "11bzhyp052bmng5119x74xvdj5632smx6qsk537ygda8bzckg2i1"))
+                "0qgvdpnjjvh9937cr0yry1lkz5fj6x9pz32fx7s80c9fvjvq33lb"))
               (modules '((guix build utils)))
               (snippet
                ;; Remove "contrib" and source not necessary for
@@ -3675,8 +3811,7 @@ supported players in addition to this package.")
                     ;; (ffmpeg, libvpx, libdvdread, libdvdnav, and libbluray),
                     ;; which would lead to fetching and building of these
                     ;; libraries.  Use our own instead.
-                    (("MODULES \\+= contrib") "# MODULES += contrib"))
-                  #t))))
+                    (("MODULES \\+= contrib") "# MODULES += contrib"))))))
     (build-system  glib-or-gtk-build-system)
     (native-inputs
      `(("automake" ,automake)           ; GUI subpackage must be bootstrapped
@@ -3703,6 +3838,7 @@ supported players in addition to this package.")
        ("libdvdnav" ,libdvdnav)
        ("libdvdread" ,libdvdread)
        ("libgudev" ,libgudev)
+       ("libjpeg-turbo" ,libjpeg-turbo)
        ("libmpeg2" ,libmpeg2)
        ("libnotify" ,libnotify)
        ("libnuma" ,numactl)
@@ -3716,6 +3852,7 @@ supported players in addition to this package.")
        ("libx264" ,libx264)
        ("speex" ,speex)
        ("x265" ,x265)
+       ("zimg" ,zimg)
        ("zlib" ,zlib)))
     (arguments
      `(#:tests? #f             ;tests require Ruby and claim to be unsupported
@@ -3740,8 +3877,7 @@ supported players in addition to this package.")
          (add-before 'configure 'patch-SHELL
            (lambda _
              (substitute* "gtk/po/Makefile.in.in"
-               (("SHELL = /bin/sh") "SHELL = @SHELL@"))
-             #t))
+               (("SHELL = /bin/sh") "SHELL = @SHELL@"))))
          (add-before 'configure 'relax-reqs
            (lambda _
              (substitute* "make/configure.py"
@@ -3751,8 +3887,7 @@ supported players in addition to this package.")
                ;; and ninja are only needed for contrib/libdav1d, and nasm
                ;; only for libvpx
                (("((cmake|meson|ninja|nasm) *=.*abort=)True" _ &)
-                (string-append & "False")))
-             #t))
+                (string-append & "False")))))
          (replace 'configure
            (lambda* (#:key outputs configure-flags #:allow-other-keys)
              ;; 'configure' is not an autoconf-generated script, and
@@ -3763,7 +3898,7 @@ supported players in addition to this package.")
                       (string-append "--prefix=" out)
                       (or configure-flags '())))))
          (add-after 'configure 'chdir-build
-           (lambda _ (chdir "./build") #t)))))
+           (lambda _ (chdir "./build"))))))
     (home-page "https://handbrake.fr")
     (synopsis "Video transcoder")
     (description
@@ -3788,14 +3923,9 @@ of modern, widely supported codecs.")
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("libdrm" ,libdrm)
-       ("libva" ,libva)
-       ("libx11" ,libx11)))
+     (list libdrm libva libx11))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -3837,8 +3967,7 @@ post-processing of video formats like MPEG2, H.264/AVC, and VC-1.")
                 "0ffav46pz3sbj92nipd62z03fibyqgclfq9w8lgr80s6za6zdk5s"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("nasm" ,nasm)
-       ("python" ,python)))
+     (list nasm python))
     (arguments
      '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
                           "CC=gcc")
@@ -3877,7 +4006,10 @@ post-processing of video formats like MPEG2, H.264/AVC, and VC-1.")
     (outputs '("out"
                "static")) ; 3.7MiB .a file
     (arguments
-     `(#:phases
+     `(;; Build as C++2003 to avoid C++11 "narrowing conversion" errors.
+       #:configure-flags '("CXXFLAGS=-O2 -g -std=c++03")
+
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'remove-dates
            (lambda _
@@ -3900,8 +4032,7 @@ post-processing of video formats like MPEG2, H.264/AVC, and VC-1.")
                          (find-files lib "\\.a$"))
                #t))))))
     (native-inputs
-     `(("help2man" ,help2man)
-       ("dejagnu" ,dejagnu)))
+     (list help2man dejagnu))
     (home-page "https://code.google.com/archive/p/mp4v2/")
     (synopsis "API to create and modify mp4 files")
     (description
@@ -3926,15 +4057,10 @@ practically any type of media.")
                 "1jm4mk539wf3crgpcddgwdixshwdzm37mkb5441lifhcz2mykdsn"))))
     ;; TODO add a Big Buck Bunny webm for tests.
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (propagated-inputs
-     `(("zlib" ,zlib)
-       ("tinyxml2" ,tinyxml2)
-       ("curl" ,curl) ; In Requires.private of libmediainfo.pc.
-       ("libzen" ,libzen)))
+     (list zlib tinyxml2 curl ; In Requires.private of libmediainfo.pc.
+           libzen))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ; see above TODO
@@ -3989,12 +4115,9 @@ MPEG-2, MPEG-4, DVD (VOB)...
                (base32
                 "07h2a1lbw5ak6c9bcn8qydchl0wpgk945rf9sfcqjyv05h5wll6y"))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("libmediainfo" ,libmediainfo)))
+     (list libmediainfo))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ; lacks tests
@@ -4045,7 +4168,7 @@ many codecs and formats supported by libmediainfo.")
                (install-file "AtomicParsley" bin))
              #t)))))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (synopsis "Metadata editor for MPEG-4 files")
     (description "AtomicParsley is a lightweight command line program for
 reading, parsing and setting metadata into MPEG-4 files, in particular,
@@ -4085,7 +4208,7 @@ iTunes-style metadata.")
                       (invoke "./genMakefiles"
                               "linux-with-shared-libraries"))))))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (home-page "http://www.live555.com/liveMedia/")
     (synopsis "Set of C++ libraries for multimedia streaming")
     (description "This code forms a set of C++ libraries for multimedia
@@ -4136,11 +4259,11 @@ and ITU-T H.222.0.")
      '(#:configure-flags
        (list "--enable-avresample")))
     (inputs
-     `(("zlib" ,zlib)))
+     (list zlib))
     (propagated-inputs
-     `(("ffmpeg" ,ffmpeg)))
+     (list ffmpeg))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Cross-platform wrapper around ffmpeg/libav")
     (description
       "FFMpegSource is a wrapper library around ffmpeg/libav that allows
@@ -4191,21 +4314,19 @@ programmers to access a standard API to open and decompress media files.")
                     "#include <boost/gil.hpp>"))
                  #t)))))
     (inputs
-     `(("boost" ,boost)
-       ("ffms2" ,ffms2)
-       ("fftw" ,fftw)
-       ("hunspell" ,hunspell)
-       ("mesa" ,mesa)
-       ("libass" ,libass)
-       ("alsa-lib" ,alsa-lib)
-       ("pulseaudio" ,pulseaudio)
-       ("libx11" ,libx11)
-       ("freetype" ,freetype)
-       ("wxwidgets-gtk2" ,wxwidgets-gtk2)))
+     (list boost
+           ffms2
+           fftw
+           hunspell
+           mesa
+           libass
+           alsa-lib
+           pulseaudio
+           libx11
+           freetype
+           wxwidgets-gtk2))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("desktop-file-utils" ,desktop-file-utils)
-       ("pkg-config" ,pkg-config)))
+     (list intltool desktop-file-utils pkg-config))
     (home-page "http://www.aegisub.org/")
     (synopsis "Subtitle engine")
     (description
@@ -4233,31 +4354,32 @@ tools for styling them, including a built-in real-time video preview.")
               (url "https://gitlab.gnome.org/GNOME/pitivi.git")
               (commit %version)))
         (file-name (git-file-name name version))
+        (patches (search-patches "pitivi-fix-build-with-meson-0.60.patch"))
         (sha256
          (base32 "08x2fs2bak1fbmkvjijgx1dsawispv91bpv5j5gkqbv5dfgf7wah"))))
      (build-system meson-build-system)
      (inputs
-      `(("glib" ,glib)
-        ("gst-editing-services" ,gst-editing-services)
-        ("gstreamer" ,gstreamer)
-        ("gst-plugins-base" ,gst-plugins-base)
-        ("gst-plugins-good" ,gst-plugins-good)
-        ("gst-plugins-bad"
-         ,(gst-plugins/selection gst-plugins-bad
-                                 #:plugins '("debugutils" "transcoder")
-                                 #:configure-flags '("-Dintrospection=enabled")))
-        ("gst-libav" ,gst-libav)
-        ("gsound" ,gsound)
-        ("gtk+" ,gtk+)
-        ("gdk-pixbuf+svg" ,gdk-pixbuf+svg)
-        ("libpeas" ,libpeas)
-        ("libnotify" ,libnotify)
-        ("pango" ,pango)
-        ("python-gst" ,python-gst)
-        ("python-numpy" ,python-numpy)
-        ("python-matplotlib" ,python-matplotlib)
-        ("python-pycairo" ,python-pycairo)
-        ("python-pygobject" ,python-pygobject)))
+      (list glib
+            gst-editing-services
+            gstreamer
+            gst-plugins-base
+            gst-plugins-good
+            (gst-plugins/selection gst-plugins-bad #:plugins
+                                   '("debugutils" "transcode")
+                                   #:configure-flags
+                                   '("-Dintrospection=enabled"))
+            gst-libav
+            gsound
+            gtk+
+            librsvg
+            libpeas
+            libnotify
+            pango
+            python-gst
+            python-numpy
+            python-matplotlib
+            python-pycairo
+            python-pygobject))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
@@ -4265,6 +4387,9 @@ tools for styling them, including a built-in real-time video preview.")
        ("pkg-config" ,pkg-config)))
      (arguments
       `(#:glib-or-gtk? #t
+        ;; Pitivi is not yet compatible with Meson 0.60:
+        ;; https://gitlab.gnome.org/GNOME/pitivi/-/issues/2593
+        #:meson ,meson-0.59
         #:phases
         (modify-phases %standard-phases
           (add-after 'glib-or-gtk-wrap 'wrap-other-dependencies
@@ -4304,8 +4429,7 @@ to newbies and professionals alike.")
     (arguments
      '(#:configure-flags '("LIBS=-lm")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("doxygen" ,doxygen)))
+     (list pkg-config doxygen))
     (home-page "http://gmerlin.sourceforge.net")
     (synopsis "Low level library for multimedia API building")
     (description
@@ -4347,10 +4471,9 @@ alpha blending etc).")
              #t)))))
     ;; TODO: opencv for additional face detection filters.
     (inputs
-     `(("gavl" ,gavl)
-       ("cairo" ,cairo)))
+     (list gavl cairo))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.dyne.org/software/frei0r/")
     (synopsis "Minimalistic plugin API for video effects")
     (description
@@ -4445,7 +4568,7 @@ changed.  Or in other words, it can detect motion.")
                        (install-file (string-append source "/subdl") bin)
                        (patch-shebang (string-append bin "/subdl")
                                       (list (string-append python "/bin")))))))
-      (inputs `(("python" ,python)))
+      (inputs (list python))
       (synopsis "Command-line tool for downloading subtitles from opensubtitles.org")
       (description "Subdl is a command-line tool for downloading subtitles from
 opensubtitles.org.  By default, it will search for English subtitles, display
@@ -4482,7 +4605,7 @@ save it to the appropriate filename.")
                (invoke "./configure" (string-append "--prefix=" out)
                        "--disable-static")))))))
     (native-inputs
-     `(("which" ,which)))
+     (list which))
     (home-page "https://l-smash.github.io/l-smash/")
     (synopsis "MP4 multiplexer and demultiplexer library")
     (description
@@ -4547,7 +4670,7 @@ create smoother and stable videos.")
 (define-public libopenshot
   (package
     (name "libopenshot")
-    (version "0.2.5")
+    (version "0.2.7")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4556,11 +4679,11 @@ create smoother and stable videos.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1mxjkgjmjzgf628y3rscc6rqf55hxgjpmvwxlncfk1216i5xskwp"))
+                "0i9bsn8gklm1mvj60l3d3xrxdgy8svpxjfqcwsr308j5zjn30pv8"))
               (modules '((guix build utils)))
               (snippet '(begin
                           ;; Allow overriding of the python installation dir
-                          (substitute* "src/bindings/python/CMakeLists.txt"
+                          (substitute* "bindings/python/CMakeLists.txt"
                             (("(SET\\(PYTHON_MODULE_PATH.*)\\)" _ set)
                              (string-append set " CACHE PATH "
                                             "\"Python bindings directory\")")))
@@ -4572,17 +4695,17 @@ create smoother and stable videos.")
        ("python" ,python)
        ("swig" ,swig)
        ("unittest++" ,unittest-cpp)))
+    (inputs
+     (list alsa-lib zlib))
     (propagated-inputs                  ;all referenced in installed headers
-     `(("cppzmq" ,cppzmq)
-       ;; libopenshot doesn't yet build with ffmpeg 4.4 (see:
-       ;; https://github.com/OpenShot/libopenshot/issues/676).
-       ("ffmpeg" ,ffmpeg-4.3)
-       ("imagemagick" ,imagemagick)
-       ("jsoncpp" ,jsoncpp)
-       ("libopenshot-audio" ,libopenshot-audio)
-       ("qtbase" ,qtbase-5)
-       ("qtmultimedia" ,qtmultimedia)
-       ("zeromq" ,zeromq)))
+     (list cppzmq
+           ffmpeg
+           imagemagick
+           jsoncpp
+           libopenshot-audio
+           qtbase-5
+           qtmultimedia
+           zeromq))
     (arguments
      `(#:configure-flags
        (list (string-append "-DPYTHON_MODULE_PATH:PATH=" %output "/lib/python"
@@ -4610,7 +4733,7 @@ API.  It includes bindings for Python, Ruby, and other languages.")
 (define-public openshot
   (package
     (name "openshot")
-    (version "2.5.1")
+    (version "2.6.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4619,7 +4742,7 @@ API.  It includes bindings for Python, Ruby, and other languages.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0qc5i0ay6j2wab1whl41sjb71cj02pg6y79drf7asrprq8b2rmfq"))
+                "0pa8iwl217503bjlqg2zlrw5lxyq5hvxrf5apxrh3843hj1w1myv"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -4627,14 +4750,14 @@ API.  It includes bindings for Python, Ruby, and other languages.")
            (delete-file-recursively "src/images/fonts") #t))))
     (build-system python-build-system)
     (inputs
-     `(("ffmpeg" ,ffmpeg)
-       ("font-dejavu" ,font-dejavu)
-       ("libopenshot" ,libopenshot)
-       ("python" ,python)
-       ("python-pyqt" ,python-pyqt)
-       ("python-pyzmq" ,python-pyzmq)
-       ("python-requests" ,python-requests)
-       ("qtsvg" ,qtsvg)))
+     (list ffmpeg
+           font-dejavu
+           libopenshot
+           python
+           python-pyqt
+           python-pyzmq
+           python-requests
+           qtsvg))
     (arguments
      `(#:modules ((guix build python-build-system)
                   (guix build qt-utils)
@@ -4644,9 +4767,10 @@ API.  It includes bindings for Python, Ruby, and other languages.")
        #:phases (modify-phases %standard-phases
                   (delete 'build)       ;install phase does all the work
                   (replace 'check
-                    (lambda _
-                      (setenv "QT_QPA_PLATFORM" "offscreen")
-                      (invoke "python" "src/tests/query_tests.py")))
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (setenv "QT_QPA_PLATFORM" "offscreen")
+                        (invoke "python" "src/tests/query_tests.py"))))
                   (add-after 'unpack 'patch-font-location
                     (lambda* (#:key inputs #:allow-other-keys)
                       (let ((font (assoc-ref inputs "font-dejavu")))
@@ -4655,6 +4779,12 @@ API.  It includes bindings for Python, Ruby, and other languages.")
                           (("fonts") "share/fonts/truetype")
                           (("[A-Za-z_-]+.ttf") "DejaVuSans.ttf")))
                       #t))
+                  ;; https://github.com/OpenShot/openshot-qt/issues/4502
+                  (add-before 'ensure-no-mtimes-pre-1980 'fix-symbolic-link
+                    (lambda _
+                      (delete-file "images/Humanity/actions/custom/razor_line_with_razor.png")
+                      (symlink "../../../../src/timeline/media/images/razor_line_with_razor.png"
+                               "images/Humanity/actions/custom/razor_line_with_razor.png")))
                   (add-before 'install 'set-tmp-home
                     (lambda _
                       ;; src/classes/info.py "needs" to create several
@@ -4677,7 +4807,7 @@ transitions, and effects and then export your film to many common formats.")
 (define-public shotcut
   (package
     (name "shotcut")
-    (version "21.08.29")
+    (version "21.10.31")
     (source
      (origin
        (method git-fetch)
@@ -4686,7 +4816,7 @@ transitions, and effects and then export your film to many common formats.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0lj3ini0fymvcwxk8l1l8ms5519n5n87gdvh0yfhilwp0zqyqkc6"))))
+        (base32 "0jgv6wl65gf6c4nmfica8k9vbgn3w3594d1phx1mb7zjvyy9y97k"))))
     (build-system qt-build-system)
     (arguments
      `(#:tests? #f ;there are no tests
@@ -4721,26 +4851,26 @@ transitions, and effects and then export your film to many common formats.")
        ("python" ,python-wrapper)
        ("qttools" ,qttools)))
     (inputs
-     `(("ffmpeg" ,ffmpeg)
-       ("frei0r-plugins" ,frei0r-plugins)
-       ("jack" ,jack-1)
-       ("ladspa" ,ladspa)
-       ("lame" ,lame)
-       ("libvpx" ,libvpx)
-       ("libx264" ,libx264)
-       ("mlt" ,mlt)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtgraphicaleffects" ,qtgraphicaleffects)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtquickcontrols" ,qtquickcontrols)
-       ("qtquickcontrols2" ,qtquickcontrols2)
-       ("qtsvg" ,qtsvg)
-       ("qtwebkit" ,qtwebkit)
-       ("qtwebsockets" ,qtwebsockets)
-       ("qtx11extras" ,qtx11extras)
-       ("sdl2" ,sdl2)))
+     (list ffmpeg
+           frei0r-plugins
+           jack-1
+           ladspa
+           lame
+           libvpx
+           libx264
+           mlt
+           pulseaudio
+           qtbase-5
+           qtdeclarative
+           qtgraphicaleffects
+           qtmultimedia
+           qtquickcontrols
+           qtquickcontrols2
+           qtsvg
+           qtwebkit
+           qtwebsockets
+           qtx11extras
+           sdl2))
     (home-page "https://www.shotcut.org/")
     (synopsis "Video editor built on the MLT framework")
     (description
@@ -4763,7 +4893,7 @@ and audio capture, network stream playback, and many more.")
         (sha256
          (base32 "0bkps488h9s15ylvkm4fmfywgrpbw570glawpnv6khpq9n223dzl"))))
     (build-system meson-build-system)
-    (native-inputs `(("nasm" ,nasm)))
+    (native-inputs (list nasm))
     (home-page "https://code.videolan.org/videolan/dav1d")
     (synopsis "AV1 decoder")
     (description "dav1d is a new AV1 cross-platform decoder, and focused on
@@ -4787,12 +4917,8 @@ speed and correctness.")
           (base32
            "01qbcgfl3g9kfwn1jf1z9pdj3bvf5lmg71d1vwkcllc2az24bjqp"))))
       (build-system meson-build-system)
-      (native-inputs `(("libdrm" ,libdrm)
-                       ("pkg-config" ,pkg-config)))
-      (inputs `(("ffmpeg" ,ffmpeg)
-                ("pulseaudio" ,pulseaudio)
-                ("wayland" ,wayland)
-                ("wayland-protocols" ,wayland-protocols)))
+      (native-inputs (list libdrm pkg-config))
+      (inputs (list ffmpeg pulseaudio wayland wayland-protocols))
       (home-page "https://github.com/atomnuker/wlstream")
       (synopsis "Screen capture tool for Wayland sessions")
       (description "Wlstream is a screen capture tool for recording audio and
@@ -4817,22 +4943,29 @@ video from a Wayland session.")
      `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("python-pygobject" ,python-pygobject)
-       ("gtk+" ,gtk+)
-       ("python-pycairo" ,python-pycairo) ; Required or else clicking on a subtitle line fails.
-       ("python-chardet" ,python-chardet) ; Optional: Character encoding detection.
-       ("gtkspell3" ,gtkspell3)           ; Optional: Inline spell-checking.
-       ("iso-codes" ,iso-codes)           ; Optional: Translations.
-       ("gstreamer" ,gstreamer)
-       ("gst-libav" ,gst-libav)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gst-plugins-good" ,gst-plugins-good)
-       ("gst-plugins-bad" ,gst-plugins-bad)
-       ("gst-plugins-ugly" ,gst-plugins-ugly)))
+     (list python-pygobject
+           gtk+
+           python-pycairo ; Required or else clicking on a subtitle line fails.
+           python-chardet ; Optional: Character encoding detection.
+           gtkspell3 ; Optional: Inline spell-checking.
+           iso-codes ; Optional: Translations.
+           gstreamer
+           gst-libav
+           gst-plugins-base
+           gst-plugins-good
+           gst-plugins-bad
+           gst-plugins-ugly))
     (arguments
      `(#:tests? #f                      ; Tests seem to require networking.
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'disable-builtin-byte-compilation
+           (lambda _
+             ;; The setup.py script attempts to compile bytecode and fails.
+             ;; We compile bytecode in a separate phase, so just disable it.
+             (substitute* "setup.py"
+               (("distutils\\.util\\.byte_compile\\(.*")
+                ""))))
          ;; gaupol's setup.py script does not support one of the Python build
          ;; system's default flags, "--single-version-externally-managed".
          (replace 'install
@@ -4847,8 +4980,7 @@ video from a Wayland session.")
                    (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
                (wrap-program (string-append out "/bin/gaupol")
                  `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
-                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
-             #t))
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))))
          (add-after 'unpack 'patch-data-dir
            ;; Fix some path variables that setup.py seems to garble.
            (lambda* (#:key outputs #:allow-other-keys)
@@ -4857,8 +4989,7 @@ video from a Wayland session.")
                  (("DATA_DIR = \\{!r\\}\"\\.format\\(data_dir\\)")
                   (string-append "DATA_DIR = '" out "/share/gaupol'\""))
                  (("LOCALE_DIR = \\{!r\\}\"\\.format\\(locale_dir\\)")
-                  (string-append "LOCALE_DIR = '" out "/share/locale'\"")))
-               #t))))))
+                  (string-append "LOCALE_DIR = '" out "/share/locale'\"")))))))))
     (synopsis "Editor for text-based subtitles")
     (description
      "Gaupol supports multiple subtitle file formats and provides means of
@@ -4900,7 +5031,7 @@ to convenience of translating and batch processing of multiple documents.")
                #t)))))
       (native-inputs
        ;; For tests.
-       `(("sdl2" ,sdl2)))
+       (list sdl2))
       (home-page "https://github.com/FNA-XNA/Theorafile")
       (synopsis "Ogg Theora Video Decoder Library")
       (description "Theorafile is a library for quickly and easily decoding Ogg
@@ -4921,8 +5052,7 @@ Theora videos.  Theorafile was written to be used for FNA's VideoPlayer.")
         (base32 "1rl3h7waqja8blmbpmwy01q9fgr5r0c32b8dy3pbf59bp3xmd37g"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libdvdcss" ,libdvdcss)
-       ("libdvdread" ,libdvdread)))
+     (list libdvdcss libdvdread))
     (home-page "http://dvdbackup.sourceforge.net")
     (synopsis "DVD video ripper")
     (description
@@ -4960,7 +5090,7 @@ transcode or reformat the videos in any way, producing perfect backups.")
                (copy-recursively "../source/Docs" doc)
                #t))))))
     (native-inputs
-     `(("yasm" ,yasm)))
+     (list yasm))
     (synopsis "AV1 video codec")
     (description "SVT-AV1 is an AV1 codec implementation.  The encoder is a
 work-in-progress, aiming to support video-on-demand and live streaming
@@ -4995,7 +5125,7 @@ applications.  It only supports Intel-compatible CPUs (x86).")
                (copy-recursively "../source/Docs" doc)
                #t))))))
     (native-inputs
-     `(("yasm" ,yasm)))
+     (list yasm))
     (home-page "https://github.com/OpenVisualCloud/SVT-VP9")
     (synopsis "VP9 video encoder")
     (description "SVT-VP9 is a VP9 video encoder implementation.  It is focused
@@ -5014,6 +5144,8 @@ on supporting video-on-demand and live encoding on Intel Xeon processors.")
        (sha256
         (base32 "1zkgnj2sfvckix360wwk1v5s43g69snm45m0drnzyv7hgf5g7q1q"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("CFLAGS=-O2 -g -fcommon")))
     (synopsis "Scan ATSC/DVB-C/DVB-S/DVB-T channels")
     (description
      "This is a small command line utility used to perform frequency scans for
@@ -5130,7 +5262,8 @@ for cases where libaom (the reference encoder) is too slow.")
     (build-system meson-build-system)
     (arguments '(#:glib-or-gtk? #t))
     (inputs
-     `(("gtk+" ,gtk+)))
+     `(("gtk+" ,gtk+)
+       ("python" ,python-wrapper)))
     (native-inputs
      `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
        ("gettext" ,gettext-minimal)
@@ -5164,13 +5297,9 @@ can also directly record to WebM or MP4 if you prefer.")
                 "1cw6kpcbl33wh95pvy32xrsrm6kkk1awccr3phyh885xjs3b3iim"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("ffmpeg" ,ffmpeg)
-       ("pulseaudio" ,pulseaudio)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
-       ("libx264" ,libx264)))
+     (list ffmpeg pulseaudio wayland wayland-protocols libx264))
     (home-page "https://github.com/ammen99/wf-recorder")
     (synopsis "Screen recorder for wlroots-based compositors")
     (description
@@ -5195,18 +5324,17 @@ wlroots-based compositors.  More specifically, those that support
      ;; There are no tests and "make check" would fail on an intltool error.
      '(#:tests? #f))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("eudev" ,eudev)
-       ("libusb" ,libusb)
-       ("v4l-utils" ,v4l-utils)                   ;libv4l2
-       ("ffmpeg" ,ffmpeg)                         ;libavcodec, libavutil
-       ("sdl2" ,sdl2)
-       ("gsl" ,gsl)
-       ("portaudio" ,portaudio)
-       ("alsa-lib" ,alsa-lib)))
+     (list gtk+
+           eudev
+           libusb
+           v4l-utils ;libv4l2
+           ffmpeg ;libavcodec, libavutil
+           sdl2
+           gsl
+           portaudio
+           alsa-lib))
     (home-page "http://guvcview.sourceforge.net/")
     (synopsis "Control your webcam and capture videos and images")
     (description
@@ -5260,9 +5388,7 @@ brightness, contrast, and frame rate.")
                    prefix (,(string-append perllib ":" (getenv "PERL5LIB")))))
                #t))))))
     (inputs
-     `(("perl-mojolicious" ,perl-mojolicious)
-       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
-       ("perl-xml-libxml" ,perl-xml-libxml)))
+     (list perl-mojolicious perl-lwp-protocol-https perl-xml-libxml))
     (home-page "https://github.com/get-iplayer/get_iplayer")
     (synopsis "Download or stream available BBC iPlayer TV and radio programmes")
     (description "@code{get_iplayer} lists, searches and records BBC iPlayer
@@ -5288,8 +5414,7 @@ BBC iPlayer output.")
                 "1spx81p5wf59ksl3r3gvf78d77sh7gj8a6lw773iv67bphfivmn8"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libvorbis" ,libvorbis)
-       ("libdvdread" ,libdvdread)))
+     (list libvorbis libdvdread))
     (synopsis "Information, extraction or creation for OGG media streams")
     (description
      "These tools allow information about (@code{ogminfo}) or extraction from
@@ -5316,7 +5441,7 @@ includes @code{dvdxchap} tool for extracting chapter information from DVD.")
      `(#:tests? #f ; Cannot figure out how to run the unit tests
        #:configure-flags '("-DENABLE_RE2C=ON")))
     (native-inputs
-     `(("re2c" ,re2c)))
+     (list re2c))
     (synopsis "CEA608 / CEA708 closed-caption codec")
     (description "Libcaption creates and parses closed-caption data,
 providing an encoder / decoder for the EIA608 and CEA708 closed-caption
@@ -5334,3 +5459,45 @@ information) NALUs (Network Abstraction Layer Unit) for inclusion into an h.264
 elementary stream are provided.")
     (home-page "https://github.com/szatmary/libcaption")
     (license license:expat)))
+
+(define-public video-contact-sheet
+  (package
+   (name "video-contact-sheet")
+   (version "1.13.4")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "http://p.outlyer.net/vcs/files/vcs-" version
+				".tar.gz"))
+            (sha256
+             (base32
+              "0jsl93r0rnybjcipqbww5hwsr9ln6kz1qnf32qfxdvhfw52n27fw"))))
+   (build-system gnu-build-system)
+   (arguments
+     (list
+       #:make-flags
+       #~(list (string-append "prefix=" #$output))
+       #:phases
+       '(modify-phases %standard-phases
+          (delete 'configure)
+          (delete 'build)
+          (delete 'check)
+          (add-after 'install 'wrap-program
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let ((vcs (string-append (assoc-ref outputs "out") "/bin/vcs"))
+                    (ffmpeg (assoc-ref inputs "ffmpeg"))
+                    (imagemagick (assoc-ref inputs "imagemagick")))
+                (wrap-program vcs
+                  `("PATH" ":" prefix
+                    ,(map (lambda (dir)
+                            (string-append dir "/bin"))
+                          (list ffmpeg imagemagick))))))))))
+   (inputs
+     (list bash-minimal ffmpeg imagemagick))
+   (synopsis "Create contact sheets (preview images) from videos")
+   (description "@acronym{VCS, Video Contact Sheet} is a Bash script meant to
+create video contact sheets (previews) of videos.  Any video supported by
+MPlayer and FFmpeg can be used.  A note of warning: Unlike most similar tools
+VCS, by default, makes screenshots the same size as the video, see the manual
+for details on how to change this.")
+   (home-page "http://p.outlyer.net/vcs/")
+   (license license:lgpl2.1+)))
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 4cc8b4a75f..642384adfc 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2020, 2021 Jack Hill <jackhill@jackhill.us>
 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
 ;;; Copyright © 2021 Tissevert <tissevert+guix@marvid.fr>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -43,6 +44,7 @@
   #:use-module (gnu packages attr)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages code)
   #:use-module (gnu packages enlightenment)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gawk)
@@ -73,7 +75,7 @@
 (define-public vim
   (package
     (name "vim")
-    (version "8.2.2689")
+    (version "8.2.3487")
     (source (origin
              (method git-fetch)
              (uri (git-reference
@@ -82,7 +84,7 @@
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "0l0hkr8cw7fdsfc5zzcxx3q1wmv9k3hrgalvffq0l69lviqdgh0p"))))
+               "1s09jvr1vv9zjk352vbfidfy5fidbf83kz2vk0kk6zv24j1yck24"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -98,6 +100,7 @@
              (substitute* '("src/testdir/Makefile"
                             "src/testdir/test_normal.vim"
                             "src/testdir/test_popupwin.vim"
+                            "src/testdir/test_shell.vim"
                             "src/testdir/test_system.vim"
                             "src/testdir/test_terminal.vim"
                             "src/testdir/test_terminal2.vim")
@@ -153,10 +156,7 @@
                           (string-append vimdir "/vimrc"))
                #t))))))
     (inputs
-     `(("gawk" ,gawk)
-       ("ncurses" ,ncurses)
-       ("perl" ,perl)
-       ("tcsh" ,tcsh)))                 ; For runtime/tools/vim32
+     (list gawk ncurses perl tcsh))                 ; For runtime/tools/vim32
     (native-inputs
      `(("libtool" ,libtool)
        ("guix.vim" ,(search-auxiliary-file "guix.vim"))
@@ -244,9 +244,8 @@ with the editor vim.")))
                      (zero? (system (string-append xorg-server "/bin/Xvfb "
                                                     display " &")))))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("xorg-server" ,xorg-server-for-tests)
-       ,@(package-native-inputs vim)))
+     (modify-inputs (package-native-inputs vim)
+       (prepend pkg-config xorg-server-for-tests)))
     (inputs
      `(("acl" ,acl)
        ("atk" ,atk)
@@ -389,32 +388,32 @@ trouble using them, because you do not have to remember each snippet name.")
     (license license:expat))))
 
 (define-public vim-scheme
-  (let ((commit "93827987c10f2d5dc519166a761f219204926d5f")
-        (revision "1"))
+  (let ((commit "e22fc8e199ef52f2efacd08e71c3add90d83b375")
+        (revision "3"))
     (package
       (name "vim-scheme")
-      (version (string-append "0.0.0-" revision "." (string-take commit 7)))
+      (version (git-version "0.0.0" revision commit))
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "http://git.foldling.org/vim-scheme.git")
+               (url "https://git.foldling.org/vim-scheme.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
-           "1ynjr1109dxgj0lz261gmzz3wf5ap1m6j6hnvl3lcyv66a4y8pjv"))))
+           "04h946vr4f8wxap3wzqs69y2v8n50g2zbk22jsg2kxr4c01z5cbw"))))
       (build-system copy-build-system)
       (arguments
        '(#:install-plan
-         '(("after" "share/vim/vimfiles/")
-           ("ftplugin" "share/vim/vimfiles/")
+         '(("ftplugin" "share/vim/vimfiles/")
+           ("indent" "share/vim/vimfiles/")
            ("syntax" "share/vim/vimfiles/"))))
       (synopsis "Scheme syntax for Vim")
       (description
        "@code{vim-scheme} provides Scheme support for Vim (R7RS and CHICKEN).")
       (home-page "https://foldling.org/git/vim-scheme.git/")
-      (license license:public-domain))))
+      (license license:unlicense))))
 
 (define-public vim-luna
   (let ((commit "633619953dcf8577168e255230f96b05f28d6371")
@@ -473,7 +472,7 @@ trouble using them, because you do not have to remember each snippet name.")
 (define-public vim-fugitive
   (package
     (name "vim-fugitive")
-    (version "3.3")
+    (version "3.6")
     (source
       (origin
         (method git-fetch)
@@ -482,14 +481,14 @@ trouble using them, because you do not have to remember each snippet name.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32
-          "1ybmy2dk9zsmd3kyyj40qn20gzgd16n5p77sjxp8bspx3zb7km5y"))))
+         (base32 "17c3wzqkbzbf0nmlxpgk90yyv3d09209fqxqysand8bzb1cbfwzn"))))
     (build-system copy-build-system)
     (arguments
      '(#:install-plan
        '(("autoload" "share/vim/vimfiles/")
          ("doc" "share/vim/vimfiles/")
          ("ftdetect" "share/vim/vimfiles/")
+         ("ftplugin" "share/vim/vimfiles/")
          ("plugin" "share/vim/vimfiles/")
          ("syntax" "share/vim/vimfiles/"))))
     (home-page "https://github.com/tpope/vim-fugitive")
@@ -780,11 +779,9 @@ refactor Vim in order to:
          (add-before 'build 'set-home
            (lambda _ (setenv "HOME" "/tmp"))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("efl" ,efl)
-       ("msgpack" ,msgpack)
-       ("neovim" ,neovim)))
+     (list efl msgpack neovim))
     (home-page "https://github.com/jeanguyomarch/eovim/")
     (synopsis "EFL GUI for Neovim")
     (description "Graphical Neovim interface based on the @acronym{EFL, Enlightenment
@@ -795,7 +792,7 @@ and support for fonts with ligatures.")
 (define-public vifm
   (package
     (name "vifm")
-    (version "0.11")
+    (version "0.12")
     (source
       (origin
         (method url-fetch)
@@ -806,7 +803,7 @@ and support for fonts with ligatures.")
                               "vifm-" version ".tar.bz2")))
         (sha256
          (base32
-          "0rqyd424y0g5b5basw2ybb60r9gar4f40d1xgzr3c2dsy4jpwvyh"))))
+          "1h5j4y704nciyzg3aaav8sl3r5h9mpwq8f28cj65nnxk6a7n3a9k"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-build-timestamp")
@@ -836,11 +833,9 @@ and support for fonts with ligatures.")
                 (delete-file-recursively (string-append vifm "/vim")))
               #t)))))
     (native-inputs
-     `(("groff" ,groff))) ; for the documentation
+     (list groff)) ; for the documentation
     (inputs
-     `(("libx11" ,libx11)
-       ("ncurses" ,ncurses)
-       ("perl" ,perl)))
+     (list libx11 ncurses perl))
     (home-page "https://vifm.info/")
     (synopsis "Flexible vi-like file manager using ncurses")
     (description "Vifm is a file manager providing a @command{vi}-like usage
@@ -885,8 +880,7 @@ With the package comes a plugin to use vifm as a vim file selector.")
                 "13qgwkqbx012j5spis1aw8rb120rw0zphgjy1j58irax8r6j1ikb"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-greenlet" ,python-greenlet)
-       ("python-msgpack" ,python-msgpack)))
+     (list python-greenlet python-msgpack))
     (arguments
      `(#:tests? #f))
     (home-page "https://github.com/neovim/pynvim")
@@ -1065,3 +1059,287 @@ your code every time you make a change.  @code{Vim-slime} is an attempt at
 getting some of these features into Vim.  It works with any REPL and isn't tied
 to Lisp.")
       (license license:expat))))
+
+(define-public vim-paredit
+  ;; The last tagged version is from August 2013.
+  (let ((commit "97d51d099523b37bb35cbcf3564cbfb46e66e4ec")
+        (revision "1"))
+    (package
+      (name "vim-paredit")
+      (version (git-version "0.9.11" revision commit))
+      (source
+        (origin
+          (method git-fetch)
+          (uri (git-reference
+                 (url "https://github.com/kovisoft/paredit")
+                 (commit commit)))
+          (file-name (git-file-name name version))
+          (sha256
+           (base32 "07d5s20r0ssd7rir45vy0fqlci44gha1a81rcilgar227f3nw328"))))
+      (build-system copy-build-system)
+      (arguments
+       '(#:install-plan
+         '(("doc" "share/vim/vimfiles/")
+           ("plugin" "share/vim/vimfiles/"))))
+      (home-page "https://github.com/kovisoft/paredit")
+      (synopsis "Vim plugin for structured editing of Lisp S-expressions")
+      (description
+       "Paredit performs structured editing of Lisp S-expressions in Vim.
+@code{Paredit.vim} is similar to @code{paredit.el} for Emacs.")
+      ;; License listed in plugin/paredit.vim.
+      (license license:public-domain))))
+
+(define-public vim-surround
+  (package
+    (name "vim-surround")
+    (version "2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/tpope/vim-surround")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1b0bd5m5lv1p4d299mrwjfs2gk0zqwyaqdaid9hs9yqlxnr8s5nf"))))
+    (build-system copy-build-system)
+    (arguments
+     '(#:install-plan
+       '(("doc" "share/vim/vimfiles/")
+         ("plugin" "share/vim/vimfiles/"))))
+    (home-page "https://github.com/tpope/vim-surround")
+    (synopsis "Vim plugin for easy quoting and parenthesizing")
+    (description
+     "Surround.vim is all about \"surroundings\": parentheses, brackets,
+quotes, XML tags, and more.  The plugin provides mappings to easily delete,
+change and add such surroundings in pairs.")
+    (license license:vim)))
+
+(define-public vim-ctrlp
+  (package
+    (name "vim-ctrlp")
+    (version "1.81")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/ctrlpvim/ctrlp.vim")
+              (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0n68hg59h4rjn0ziqbsh5pr03l3kr98zk54659ny6vq107af1w96"))))
+    (build-system copy-build-system)
+    (arguments
+     '(#:install-plan
+       '(("autoload" "share/vim/vimfiles/")
+         ("doc" "share/vim/vimfiles/")
+         ("plugin" "share/vim/vimfiles/"))))
+    (home-page "https://ctrlpvim.github.io/ctrlp.vim/")
+    (synopsis "Fuzzy file, buffer, mru, tag, etc. finder for Vim")
+    (description
+     "CtrlP features:
+@itemize
+@item Written in pure Vimscript for MacVim, gVim and Vim 7.0+.
+@item Full support for Vim's regexp as search patterns.
+@item Built-in @acronym{Most Recently Used, MRU} files monitoring and search.
+@item Built-in project's root finder.
+@item Open multiple files at once.
+@item Create new files and directories.
+@item Execute Ex commands on an opening file (jump to a line, to a string or do
+anything).
+@item Optional cross-session caching and history allow for fast initialization.
+@item Mappings and usage conform to Vim's conventions.
+@end itemize")
+    (license license:vim)))
+
+(define-public vim-mucomplete
+  (package
+    (name "vim-mucomplete")
+    (version "1.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/lifepillar/vim-mucomplete")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "054g80n09mmxxlh8xaic29bn8bgn3clvv732rymljdyvbj1mlhwd"))))
+    (build-system copy-build-system)
+    (arguments
+     '(#:install-plan
+       '(("autoload" "share/vim/vimfiles/")
+         ("doc" "share/vim/vimfiles/")
+         ("plugin" "share/vim/vimfiles/"))))
+    (home-page "https://github.com/lifepillar/vim-mucomplete")
+    (synopsis "MUcomplete is a minimalist autocompletion plugin for Vim")
+    (description
+     "MUcomplete is an implementation of chained (fallback) completion,
+whereby several completion methods are attempted one after another until a
+result is returned.")
+    (license license:expat)))
+
+(define-public vim-gitgutter
+  (let ((commit "256702dd1432894b3607d3de6cd660863b331818")
+        (revision "1"))
+    (package
+      (name "vim-gitgutter")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+                (url "https://github.com/airblade/vim-gitgutter")
+                (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0zpa7cs59a8sq0k3frlf9flpf30jcn239yrpmv40r7nqvxzglbpl"))))
+      (build-system copy-build-system)
+      (arguments
+       '(#:install-plan
+         '(("autoload" "share/vim/vimfiles/")
+           ("doc" "share/vim/vimfiles/")
+           ("plugin" "share/vim/vimfiles/"))))
+      (synopsis "Vim plugin which shows a git diff in the sign column")
+      (description
+       "A Vim plugin which shows a git diff in the sign column.  It shows which
+lines have been added, modified, or removed.  You can also preview, stage, and
+undo individual hunks; and stage partial hunks.  The plugin also provides a hunk
+text object.  The signs are always up to date and the plugin never saves your
+buffer.")
+      (home-page "https://github.com/airblade/vim-gitgutter")
+      (license license:expat))))
+
+(define-public vim-characterize
+  (package
+    (name "vim-characterize")
+    (version "1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/tpope/vim-characterize")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0ppsbsd696ih40d9f76mdl9sd9y7p2pvm65qmvq4b2zhkv4xbpxz"))))
+    (build-system copy-build-system)
+    (arguments
+     '(#:install-plan
+       '(("autoload" "share/vim/vimfiles/")
+         ("doc" "share/vim/vimfiles/")
+         ("plugin" "share/vim/vimfiles/"))))
+    (home-page "https://github.com/tpope/vim-characterize")
+    (synopsis "Vim plugin for showing Unicode character metadata")
+    (description
+     "In Vim, pressing @code{ga} on a character reveals its representation in
+decimal, octal, and hex.  Characterize.vim modernizes this with the following
+additions:
+@itemize
+@item Unicode character names: @code{U+00A9 COPYRIGHT SYMBOL}
+@item Vim digraphs (type after @code{<C-K>} to insert the character):
+@code{Co}, @code{cO}
+@item Emoji codes: @code{:copyright:}
+@item HTML entities: @code{&copy;}
+@end itemize")
+    (license license:vim)))
+
+(define-public vim-tagbar
+  (package
+    (name "vim-tagbar")
+    (version "3.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/preservim/tagbar")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1fqfs8msmr6d4kpvxqp14sdjvp5fj52q5w5kz71myzcd4kqzmirp"))))
+    (build-system copy-build-system)
+    (arguments
+     '(#:install-plan
+       '(("autoload" "share/vim/vimfiles/")
+         ("doc" "share/vim/vimfiles/")
+         ("plugin" "share/vim/vimfiles/")
+         ("syntax" "share/vim/vimfiles/"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'link-univerisal-ctags
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((ctags (assoc-ref inputs "universal-ctags")))
+               (substitute* "autoload/tagbar.vim"
+                 (("(.*)universal-ctags']" all leader)
+                  (string-append all "\n"
+                                 leader ctags "/bin/ctags']")))))))))
+    (inputs
+     (list universal-ctags))
+    (home-page "https://github.com/preservim/tagbar")
+    (synopsis "Vim plugin that displays tags in a window, ordered by scope")
+    (description
+     "Tagbar is a Vim plugin that provides an easy way to browse the tags of
+the current file and get an overview of its structure.  It does this by creating
+a sidebar that displays the ctags-generated tags of the current file, ordered
+by their scope.  This means that for example methods in C++ are displayed under
+the class they are defined in.")
+    (license license:vim)))
+
+(define-public vim-nerdtree
+  (package
+    (name "vim-nerdtree")
+    (version "6.10.16")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/preservim/nerdtree")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1si8qla86ng8cffbmfrk9gss0i3912yw0f1ph4bsiq0kk837lccp"))))
+    (build-system copy-build-system)
+    (arguments
+     '(#:install-plan
+       '(("autoload" "share/vim/vimfiles/")
+         ("doc" "share/vim/vimfiles/")
+         ("lib" "share/vim/vimfiles/")
+         ("nerdtree_plugin" "share/vim/vimfiles/")
+         ("plugin" "share/vim/vimfiles/")
+         ("syntax" "share/vim/vimfiles/"))))
+    (home-page "https://github.com/preservim/nerdtree")
+    (synopsis "Tree explorer plugin for Vim")
+    (description
+     "The NERDTree is a file system explorer for the Vim editor.  Using this
+plugin, users can visually browse complex directory hierarchies, quickly open
+files for reading or editing, and perform basic file system operations.")
+    (license license:wtfpl2)))
+
+(define-public vim-nerdcommenter
+  (let ((commit "a65465d321f2f8a74b2ffa540b9b87563f7e12e8")
+        (revision "1"))
+    (package
+      (name "vim-nerdcommenter")
+      (version (git-version "2.5.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+                (url "https://github.com/preservim/nerdcommenter")
+                (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "00ir65iv8jfbgzjmj7332fmydh0qhabbhx8zbvd3j6pgfxqpaafw"))))
+      (build-system copy-build-system)
+      (arguments
+       '(#:install-plan
+         '(("autoload" "share/vim/vimfiles/")
+           ("doc" "share/vim/vimfiles/")
+           ("plugin" "share/vim/vimfiles/"))))
+      (home-page "https://github.com/preservim/nerdcommenter")
+      (synopsis "Vim plugin for easy commenting of code")
+      (description
+       "NERD commenter is a Vim plugin that provides many different commenting
+operations and styles which are invoked via key mappings and a menu.  These
+operations are available for most filetypes.")
+      (license license:cc0))))
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 8e6c9ed636..839b12d040 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -14,12 +14,16 @@
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020, 2021 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020, 2021 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>
 ;;; Copyright © 2021 Dion Mendel <guix@dm9.info>
+;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com>
+;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -49,6 +53,7 @@
   #:use-module (gnu packages bison)
   #:use-module (gnu packages build-tools)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages cluster)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cross-base)
@@ -102,6 +107,7 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages rsync)
   #:use-module (gnu packages selinux)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages sphinx)
@@ -143,7 +149,7 @@
 (define-public qemu
   (package
     (name "qemu")
-    (version "6.0.0")
+    (version "6.1.0")
     (source
      (origin
        (method url-fetch)
@@ -151,11 +157,10 @@
                            version ".tar.xz"))
        (sha256
         (base32
-         "1f9hz8rf12jm8baa7kda34yl4hyl0xh0c4ap03krfjx23i3img47"))
+         "15iw7982g6vc4jy1l9kk1z9sl5bm1bdbwr74y7nvwjs1nffhig7f"))
        (patches (search-patches "qemu-CVE-2021-20203.patch"
-                                "qemu-meson-compat.patch"
-                                "qemu-sphinx-compat.patch"
-                                "qemu-build-info-manual.patch"))
+                                "qemu-build-info-manual.patch"
+                                "qemu-fix-agent-paths.patch"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -169,7 +174,7 @@
      `(#:tests? ,(or (%current-target-system)
                      (not (string=? "i686-linux" (%current-system))))
        #:configure-flags
-       (let ((gcc (string-append (assoc-ref %build-inputs "gcc") "/bin/gcc"))
+       (let ((gcc (search-input-file %build-inputs "/bin/gcc"))
              (out (assoc-ref %outputs "out")))
          (list (string-append "--cc=" gcc)
                ;; Some architectures insist on using HOST_CC.
@@ -208,18 +213,17 @@
                ((".*'test-char':.*" all)
                 (string-append "# " all)))))
          (add-after 'patch-source-shebangs 'patch-embedded-shebangs
-           (lambda _
+           (lambda* (#:key native-inputs inputs #:allow-other-keys)
              ;; Ensure the executables created by these source files reference
              ;; /bin/sh from the store so they work inside the build container.
              (substitute* '("block/cloop.c" "migration/exec.c"
-                            "net/tap.c" "tests/qtest/libqtest.c")
-               (("/bin/sh") (which "sh")))
-             (substitute* "Makefile"
-               (("SHELL = /usr/bin/env bash -o pipefail")
-                "SHELL = bash -o pipefail"))
-             (substitute* "tests/qemu-iotests/check"
+                            "net/tap.c" "tests/qtest/libqtest.c"
+                            "tests/qtest/vhost-user-blk-test.c")
+               (("/bin/sh") (search-input-file inputs "/bin/sh")))
+             (substitute* "tests/qemu-iotests/testenv.py"
                (("#!/usr/bin/env python3")
-                (string-append "#!" (which "python3"))))))
+                (string-append "#!" (search-input-file (or native-inputs inputs)
+                                                       "/bin/python3"))))))
          (add-before 'configure 'fix-optionrom-makefile
            (lambda _
              ;; Work around the inability of the rules defined in this
@@ -301,49 +305,50 @@ exec smbd $@")))
                (mkdir-p qemu-doc)
                (rename-file (string-append out "/share/doc/qemu")
                             (string-append qemu-doc "/html"))))))))
-    (inputs                             ; TODO: Add optional inputs.
-     `(("alsa-lib" ,alsa-lib)
-       ("attr" ,attr)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libaio" ,libaio)
-       ("libattr" ,attr)
-       ("libcacard" ,libcacard)  ; smartcard support
-       ("libcap-ng" ,libcap-ng)  ; virtfs support requires libcap-ng & libattr
-       ("libdrm" ,libdrm)
-       ("libepoxy" ,libepoxy)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libseccomp" ,libseccomp)
-       ("libusb" ,libusb)               ;USB pass-through support
-       ("mesa" ,mesa)
-       ("ncurses" ,ncurses)
-       ;; ("pciutils" ,pciutils)
-       ("pixman" ,pixman)
-       ("pulseaudio" ,pulseaudio)
-       ("sdl2" ,sdl2)
-       ("spice" ,spice)
-       ("usbredir" ,usbredir)
-       ("util-linux" ,util-linux)
-       ("vde2" ,vde2)
-       ("virglrenderer" ,virglrenderer)
-       ("zlib" ,zlib)))
-    (native-inputs `(("gettext" ,gettext-minimal)
-                     ("glib:bin" ,glib "bin") ; gtester, etc.
-                     ("perl" ,perl)
-                     ("flex" ,flex)
-                     ("bison" ,bison)
-                     ("meson" ,meson)
-                     ("ninja" ,ninja)
-                     ("pkg-config" ,pkg-config)
-                     ("python-wrapper" ,python-wrapper)
-                     ("python-sphinx" ,python-sphinx)
-                     ("texinfo" ,texinfo)
-                     ;; The following static libraries are required to build
-                     ;; the static output of QEMU.
-                     ("glib:static" ,glib "static")
-                     ("pcre:static" ,pcre "static")
-                     ("zlib:static" ,zlib "static")))
+    (inputs
+     (list alsa-lib
+           bash-minimal
+           glib
+           gtk+
+           libaio
+           libcacard                    ;smartcard support
+           attr libcap-ng               ;VirtFS support
+           libdrm
+           libepoxy
+           libjpeg-turbo
+           libpng
+           libseccomp
+           libusb                       ;USB pass-through support
+           mesa
+           ncurses
+           ;; ("pciutils" ,pciutils)
+           pixman
+           pulseaudio
+           sdl2
+           spice
+           usbredir
+           util-linux
+           vde2
+           virglrenderer
+           zlib))
+    (native-inputs
+     (list gettext-minimal
+           `(,glib "bin")               ;gtester, etc.
+           perl
+           flex
+           bison
+           meson
+           ninja
+           pkg-config
+           python-wrapper
+           python-sphinx
+           python-sphinx-rtd-theme
+           texinfo
+           ;; The following static libraries are required to build
+           ;; the static output of QEMU.
+           `(,glib "static")
+           `(,pcre "static")
+           `(,zlib "static")))
     (home-page "https://www.qemu.org")
     (synopsis "Machine emulator and virtualizer")
     (description
@@ -415,12 +420,22 @@ server and embedded PowerPC, and S390 guests.")
            (delete 'install-user-static)))))
 
     ;; Remove dependencies on optional libraries, notably GUI libraries.
-    (native-inputs (fold alist-delete (package-native-inputs qemu)
-                         '("gettext" "glib:static" "pcre:static" "zlib:static")))
-    (inputs (fold alist-delete (package-inputs qemu)
-                  '("libusb" "mesa" "sdl2" "spice" "virglrenderer" "gtk+"
-                    "usbredir" "libdrm" "libepoxy" "pulseaudio" "vde2"
-                    "libcacard")))))
+    (native-inputs (modify-inputs (package-native-inputs qemu)
+                     (delete "gettext" "glib:static" "pcre:static"
+                             "zlib:static")))
+    (inputs (modify-inputs (package-inputs qemu)
+              (delete "libusb"
+                      "mesa"
+                      "sdl2"
+                      "spice"
+                      "virglrenderer"
+                      "gtk+"
+                      "usbredir"
+                      "libdrm"
+                      "libepoxy"
+                      "pulseaudio"
+                      "vde2"
+                      "libcacard")))))
 
 (define (system->qemu-target system)
   (cond
@@ -433,25 +448,88 @@ server and embedded PowerPC, and S390 guests.")
                                     ((arch kernel) arch)
                                     (_ system))))))
 
+(define-public libx86emu
+  (package
+    (name "libx86emu")
+    (version "3.5")
+    (home-page "https://github.com/wfeldt/libx86emu")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url home-page)
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "11nj3y7maz9ch15b1c2b69gd8d7mpaha377zpdbvfsmg5w9zz93l"))
+       (modules
+        '((guix build utils)))
+       (snippet
+        `(begin
+           ;; Remove git2log program file.
+           (delete-file "git2log")
+           ;; Remove variables that depends on git2log.
+           (substitute* "Makefile"
+             (("GIT2LOG.*=.*$") "")
+             (("GITDEPS.*=.*$") "")
+             (("BRANCH.*=.*$") ""))))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (include (string-append out "/include"))
+                    (lib (string-append out "/lib")))
+               ;; Correct the values of version and install directories.
+               (substitute* "Makefile"
+                 (("VERSION.*=.*$")
+                  (string-append "VERSION := "
+                                 ,version "\n"))
+                 (("PREFIX.*=.*$")
+                  (string-append "PREFIX := " out "\n"))
+                 (("MAJOR_VERSION.*=.*$")
+                  (string-append "MAJOR_VERSION := "
+                                 ,(version-major version) "\n"))
+                 (("LIBDIR.*=.*$")
+                  (string-append "LIBDIR = " lib "\n"))
+                 (("/usr/include") include)))))
+         (delete 'configure))))         ; no configure script
+    (native-inputs
+     (list nasm perl))
+    (synopsis "Library for x86 emulation")
+    (description "Libx86emu is a small library to emulate x86 instructions.  The
+focus here is not a complete emulation but to cover enough for typical
+firmware blobs.  You can
+@enumerate
+@item intercept any memory access or directly map real memory ranges
+@item intercept any i/o access, map real i/o ports, or block any real i/o
+@item intercept any interrupt
+@item add a hook to run after each instruction
+@item recognize a special x86 instruction that can trigger logging
+@item use integrated logging
+@end enumerate")
+    (license (license:x11-style "file://LICENSE"))))
+
 (define-public ganeti
   (package
     (name "ganeti")
-    ;; Note: we use a pre-release for Python 3 compatibility as well as many
-    ;; other fixes.
-    (version "3.0.0beta1-24-g024cc9fa2")
+    (version "3.0.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/ganeti/ganeti")
                     (commit (string-append "v" version))))
               (sha256
-               (base32 "1ll34qd2mifni3bhg7cnir3xfnkafig8ch33qndqwrsby0y5ssia"))
+               (base32 "1i7gx0sdx9316fnldbv738s0ihym1370nhc1chk0biandkl8vvq0"))
               (file-name (git-file-name name version))
               (patches (search-patches "ganeti-shepherd-support.patch"
                                        "ganeti-shepherd-master-failover.patch"
-                                       "ganeti-deterministic-manual.patch"
-                                       "ganeti-drbd-compat.patch"
-                                       "ganeti-os-disk-size.patch"
+                                       "ganeti-sphinx-compat.patch"
+                                       "ganeti-haskell-compat.patch"
                                        "ganeti-haskell-pythondir.patch"
                                        "ganeti-disable-version-symlinks.patch"))))
     (build-system gnu-build-system)
@@ -461,6 +539,10 @@ server and embedded PowerPC, and S390 guests.")
                            (guix build python-build-system))
        #:modules (,@%gnu-build-system-modules
                   ((guix build haskell-build-system) #:prefix haskell:)
+                  ((guix build python-build-system) #:select (site-packages))
+                  (srfi srfi-1)
+                  (srfi srfi-26)
+                  (ice-9 match)
                   (ice-9 rdelim))
 
        ;; The default test target includes a lot of checks that are only really
@@ -499,6 +581,14 @@ server and embedded PowerPC, and S390 guests.")
                             ,(system->qemu-target (%current-system))))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-version-constraints
+           (lambda _
+             ;; Loosen version constraints for compatibility with Stackage 18.10.
+             (substitute* "cabal/ganeti.template.cabal"
+               (("(.*base64-bytestring.*) < 1\\.1" _ match)
+                (string-append match " < 1.2"))
+               (("(.*QuickCheck.*) < 2\\.14" _ match)
+                (string-append match " < 2.15")))))
          (add-after 'unpack 'create-vcs-version
            (lambda _
              ;; If we are building from a git checkout, we need to create a
@@ -600,7 +690,9 @@ server and embedded PowerPC, and S390 guests.")
                 ""))))
          (add-after 'build 'build-bash-completions
            (lambda _
-             (invoke "python" "-m" "./autotools/build-bash-completion")))
+             (setenv "PYTHONPATH" ".")
+             (invoke "./autotools/build-bash-completion")
+             (unsetenv "PYTHONPATH")))
          (add-before 'check 'pre-check
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Set TZDIR so that time zones are found.
@@ -634,7 +726,7 @@ server and embedded PowerPC, and S390 guests.")
                     (compdir (string-append out "/etc/bash_completion.d")))
                (mkdir-p compdir)
                (copy-file "doc/examples/bash_completion"
-                             (string-append compdir "/ganeti"))
+                          (string-append compdir "/ganeti"))
                ;; The one file contains completions for many different
                ;; executables.  Create symlinks for found completions.
                (with-directory-excursion compdir
@@ -653,18 +745,20 @@ server and embedded PowerPC, and S390 guests.")
                                       ;; Note that 'burnin' is listed with the
                                       ;; absolute file name, which is why we
                                       ;; run everything through 'basename'.
-                                      (cons (basename (car (reverse (string-split
-                                                                     line #\ ))))
-                                            progs))
+                                      (match (string-split line #\ )
+                                        ((commands ... prog)
+                                         (cons (basename prog) progs))))
                                 (loop (read-line port) progs)))))))))))
          ;; Wrap all executables with GUIX_PYTHONPATH.  We can't borrow
          ;; the phase from python-build-system because we also need to wrap
          ;; the scripts in $out/lib/ganeti such as "node-daemon-setup".
          (add-after 'install 'wrap
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (sbin (string-append out "/sbin"))
-                    (lib (string-append out "/lib")))
+                    (lib (string-append out "/lib"))
+                    (PYTHONPATH (string-append (site-packages inputs outputs)
+                                               ":" (getenv "GUIX_PYTHONPATH"))))
                (define (shell-script? file)
                  (call-with-ascii-input-file file
                    (lambda (port)
@@ -674,7 +768,7 @@ server and embedded PowerPC, and S390 guests.")
                             (or (string-contains shebang "/bin/bash")
                                 (string-contains shebang "/bin/sh")))))))
 
-               (define (wrap? file)
+               (define* (wrap? file #:rest _)
                  ;; Do not wrap shell scripts because some are meant to be
                  ;; sourced, which breaks if they are wrapped.  We do wrap
                  ;; the Haskell executables because some call out to Python
@@ -686,10 +780,10 @@ server and embedded PowerPC, and S390 guests.")
                (for-each (lambda (file)
                            (wrap-program file
                              `("GUIX_PYTHONPATH" ":" prefix
-                               (,(getenv "GUIX_PYTHONPATH")))))
-                         (filter wrap?
-                                 (append (find-files (string-append lib "/ganeti"))
-                                         (find-files sbin))))))))))
+                               (,PYTHONPATH))))
+                         (append-map (cut find-files <> wrap?)
+                                     (list (string-append lib "/ganeti")
+                                           sbin)))))))))
     (native-inputs
      `(("haskell" ,ghc)
        ("cabal" ,cabal-install)
@@ -789,8 +883,7 @@ commodity hardware.")
     (arguments
      '(#:configure-flags '("--sysconfdir=/etc" "--localstatedir=/var")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (inputs
      `(("util-linux" ,util-linux)
        ("qemu-img" ,qemu-minimal)))
@@ -881,8 +974,7 @@ Guix to build virtual machines.")
                                  "variants.list"))
                       #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (inputs
      `(("debianutils" ,debianutils)
        ("debootstrap" ,debootstrap)
@@ -898,7 +990,7 @@ Debian or a derivative using @command{debootstrap}.")
 (define-public libosinfo
   (package
     (name "libosinfo")
-    (version "1.7.1")
+    (version "1.9.0")
     (source
      (origin
        (method url-fetch)
@@ -906,7 +998,7 @@ Debian or a derivative using @command{debootstrap}.")
                            version ".tar.xz"))
        (sha256
         (base32
-         "1s97sv24bybggjx6hgqba2qdqz3ivfpd4cmkh4zm5y59sim109mv"))))
+         "0nd360c9ampw8hb6xh5g45q858df2r4jj9q88bcl6gzgaj0l3wxl"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -921,10 +1013,9 @@ Debian or a derivative using @command{debootstrap}.")
              (substitute* "osinfo/osinfo_loader.c"
                (("path = DATA_DIR.*")
                 (string-append "path = \"" (assoc-ref inputs "osinfo-db")
-                               "/share/osinfo\";")))
-             #t)))))
+                               "/share/osinfo\";"))))))))
     (inputs
-     `(("libsoup" ,libsoup)
+     `(("libsoup" ,libsoup-minimal-2)
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
        ("osinfo-db" ,osinfo-db)))
@@ -965,7 +1056,7 @@ all common programming languages.  Vala bindings are also provided.")
 (define-public lxc
   (package
     (name "lxc")
-    (version "4.0.6")
+    (version "4.0.10")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -973,16 +1064,12 @@ all common programming languages.  Vala bindings are also provided.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0qz4l7mlhq7hx53q606qgvkyzyr01glsw290v8ppzvxn1fydlrci"))))
+                "1sgsic9dzj3wv2k5bx2vhcgappivhp1glkqfc2yrgr6jas052351"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("docbook2x" ,docbook2x)))
+     (list pkg-config docbook2x))
     (inputs
-     `(("gnutls" ,gnutls)
-       ("libcap" ,libcap)
-       ("libseccomp" ,libseccomp)
-       ("libselinux" ,libselinux)))
+     (list gnutls libcap libseccomp libselinux))
     (arguments
      `(#:configure-flags
        (list (string-append "--docdir=" (assoc-ref %outputs "out")
@@ -1013,7 +1100,7 @@ manage system or application containers.")
 (define-public lxcfs
   (package
     (name "lxcfs")
-    (version "4.0.8")
+    (version "4.0.9")
     (home-page "https://github.com/lxc/lxcfs")
     (source (origin
               (method git-fetch)
@@ -1022,16 +1109,13 @@ manage system or application containers.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1f74wy88si2ia035pcvciq5821kc8jcb75w1f8vhbp0cd29rqdpi"))))
+                "0zx58lair8hwi4bxm5h7i8n1j5fcdgw5cr6f4wk9qhks0sr5dip5"))))
     (arguments
      '(#:configure-flags '("--localstatedir=/var")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (inputs
-     `(("fuse" ,fuse)))
+     (list fuse))
     (build-system gnu-build-system)
     (synopsis "FUSE-based file system for LXC")
     (description "LXCFS is a small FUSE file system written with the intention
@@ -1039,17 +1123,127 @@ of making Linux containers feel more like a virtual machine.
 It started as a side project of LXC but can be used by any run-time.")
     (license license:lgpl2.1+)))
 
+(define-public lxd
+  (package
+    (name "lxd")
+    (version "4.17")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/lxc/lxd/releases/download/"
+                    "lxd-" version "/lxd-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1kzmgyg5kw3zw9qa6jabld6rmb53b6yy69h7y9znsdlf74jllljl"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/lxc/lxd"
+       #:tests? #f ;; tests fail due to missing /var, cgroups, etc.
+       #:modules ((guix build go-build-system)
+                  (guix build union)
+                  (guix build utils)
+                  (srfi srfi-1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unpack-dist
+           (lambda* (#:key import-path #:allow-other-keys)
+             (with-directory-excursion (string-append "src/" import-path)
+               ;; remove the link back to the top level
+               (delete-file (string-append "_dist/src/" import-path))
+               ;; move all the deps into the src directory
+               (copy-recursively "_dist/src" "../../.."))
+             #t))
+         (replace 'build
+           (lambda* (#:key import-path #:allow-other-keys)
+             (with-directory-excursion (string-append "src/" import-path)
+               (invoke "make" "build" "CC=gcc" "TAG_SQLITE3=libsqlite3")
+               #t)))
+         (replace 'check
+           (lambda* (#:key tests? import-path #:allow-other-keys)
+             (when tests?
+               (with-directory-excursion (string-append "src/" import-path)
+                 (invoke "make" "check" "CC=gcc" "TAG_SQLITE3=libsqlite3")))
+             #t))
+         (replace 'install
+           (lambda* (#:key inputs outputs import-path #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin-dir
+                     (string-append out "/bin/"))
+                    (doc-dir
+                     (string-append out "/share/doc/lxd-" ,version))
+                    (completions-dir
+                     (string-append out "/share/bash-completion/completions")))
+               (with-directory-excursion (string-append "src/" import-path)
+                 ;; wrap lxd with runtime dependencies
+                 (wrap-program (string-append bin-dir "lxd")
+                   `("PATH" ":" prefix
+                     ,(fold (lambda (input paths)
+                              (let* ((in (assoc-ref inputs input))
+                                     (bin (string-append in "/bin"))
+                                     (sbin (string-append in "/sbin")))
+                                (append (filter file-exists?
+                                                (list bin sbin)) paths)))
+                            '()
+                            '("bash" "acl" "rsync" "tar" "xz" "btrfs-progs"
+                              "gzip" "dnsmasq" "squashfs-tools" "iproute2"
+                              "criu" "iptables"))))
+                 ;; remove unwanted binaries
+                 (for-each (lambda (prog)
+                             (delete-file (string-append bin-dir prog)))
+                           '("deps" "macaroon-identity" "generate"))
+                 ;; install documentation
+                 (for-each (lambda (file)
+                             (install-file file doc-dir))
+                           (find-files "doc"))
+                 ;; install bash completion
+                 (rename-file "scripts/bash/lxd-client" "scripts/bash/lxd")
+                 (install-file "scripts/bash/lxd" completions-dir)))
+             #t)))))
+    (native-inputs
+     (list ;; test dependencies:
+           ;; ("go-github-com-rogpeppe-godeps" ,go-github-com-rogpeppe-godeps)
+           ;; ("go-github-com-tsenart-deadcode" ,go-github-com-tsenart-deadcode)
+           ;; ("go-golang-org-x-lint" ,go-golang-org-x-lint)
+           pkg-config))
+    (inputs
+     `(("acl" ,acl)
+       ("eudev" ,eudev)
+       ("libdqlite" ,libdqlite)
+       ("libraft" ,libraft)
+       ("libcap" ,libcap)
+       ("lxc" ,lxc)
+       ;; runtime dependencies:
+       ("bash" ,bash-minimal)
+       ("rsync" ,rsync)
+       ("tar" ,tar)
+       ("xz" ,xz)
+       ("btrfs-progs" ,btrfs-progs)
+       ("gzip" ,gzip)
+       ("dnsmasq" ,dnsmasq)
+       ("squashfs-tools" ,squashfs-tools)
+       ("iproute2" ,iproute)
+       ("criu" ,criu)
+       ("iptables" ,iptables)))
+    (synopsis "Daemon based on liblxc offering a REST API to manage containers")
+    (home-page "https://linuxcontainers.org/lxd/")
+    (description "LXD is a next generation system container manager.  It
+offers a user experience similar to virtual machines but using Linux
+containers instead.  It's image based with pre-made images available for a
+wide number of Linux distributions and is built around a very powerful, yet
+pretty simple, REST API.")
+    (license license:asl2.0)))
+
 (define-public libvirt
   (package
     (name "libvirt")
-    (version "7.5.0")
+    (version "7.9.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://libvirt.org/sources/libvirt-"
                            version ".tar.xz"))
        (sha256
-        (base32 "15987ihnsjvcgi11dzcf1k3zp1si2d4wcxj0r0i30brc0d4pn44h"))
+        (base32 "131fyxb05rrcr9ih4mhhjyw3cgsxh5l12vj4y109q9vlynsz5742"))
        (patches (search-patches "libvirt-add-install-prefix.patch"))))
     (build-system meson-build-system)
     (arguments
@@ -1143,22 +1337,17 @@ to integrate other virtualization mechanisms if needed.")
                (base32
                 "1gdcvqz88qkp402zra9csc6391f2xki1270x683n6ixakl3gf8w4"))))
     (build-system meson-build-system)
+    (arguments
+     `(#:meson ,meson-0.59))          ;KeyError: 'install_dir' with meson 0.60
     (inputs
-     `(("openssl" ,openssl)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("lvm2" ,lvm2)                   ; for libdevmapper
-       ("libyajl" ,libyajl)))
+     (list openssl cyrus-sasl lvm2 ; for libdevmapper
+           libyajl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("glib" ,glib "bin")
-       ("vala" ,vala)))
+     (list pkg-config intltool
+           `(,glib "bin") vala))
     (propagated-inputs
      ;; ‘Required:’ by the installed .pc files.
-     `(("glib" ,glib)
-       ("libvirt" ,libvirt)
-       ("libxml2" ,libxml2)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list glib libvirt libxml2 gobject-introspection))
     (home-page "https://libvirt.org")
     (synopsis "GLib wrapper around libvirt")
     (description "libvirt-glib wraps the libvirt library to provide a
@@ -1176,14 +1365,14 @@ three libraries:
 (define-public python-libvirt
   (package
     (name "python-libvirt")
-    (version "7.3.0")
+    (version "7.9.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://libvirt.org/sources/python/libvirt-python-"
                            version ".tar.gz"))
        (sha256
-        (base32 "15pn8610ybf03xff3vbz3apz2ph42k2kh6k19r020l9nvc6jcv37"))))
+        (base32 "0nakisj2ady5a41k4zc95k0kp749f4ppmxgr91b1h1dzbzxcydc5"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1198,12 +1387,11 @@ three libraries:
                (setenv "LIBVIRT_API_COVERAGE" "whynot")
                (invoke "python" "setup.py" "test")))))))
     (inputs
-     `(("libvirt" ,libvirt)))
+     (list libvirt))
     (propagated-inputs
-     `(("python-lxml" ,python-lxml)))
+     (list python-lxml))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-pytest" ,python-pytest)))
+     (list pkg-config python-pytest))
     (home-page "https://libvirt.org")
     (synopsis "Python bindings to libvirt")
     (description "This package provides Python bindings to the libvirt
@@ -1284,23 +1472,23 @@ virtualization library.")
          (add-after 'wrap 'glib-or-gtk-wrap
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
     (inputs
-     `(("dconf" ,dconf)
-       ("gtk+" ,gtk+)
-       ("gtk-vnc" ,gtk-vnc)
-       ("gtksourceview" ,gtksourceview)
-       ("libvirt" ,libvirt)
-       ("libvirt-glib" ,libvirt-glib)
-       ("libosinfo" ,libosinfo)
-       ("vte" ,vte)
-       ("python-libvirt" ,python-libvirt)
-       ("python-requests" ,python-requests)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)
-       ("python-libxml2" ,python-libxml2)
-       ("spice-gtk" ,spice-gtk)))
+     (list dconf
+           gtk+
+           gtk-vnc
+           gtksourceview
+           libvirt
+           libvirt-glib
+           libosinfo
+           vte
+           python-libvirt
+           python-requests
+           python-pycairo
+           python-pygobject
+           python-libxml2
+           spice-gtk))
     ;; virt-manager searches for qemu-img or kvm-img in the PATH.
     (propagated-inputs
-     `(("qemu" ,qemu)))
+     (list qemu))
     (native-inputs
      `(("glib" ,glib "bin")             ; glib-compile-schemas
        ("gobject-introspection" ,gobject-introspection)
@@ -1328,14 +1516,16 @@ domains, their live performance and resource utilization statistics.")
 (define-public criu
   (package
     (name "criu")
-    (version "3.15")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://download.openvz.org/criu/criu-"
-                                  version ".tar.bz2"))
-              (sha256
-               (base32
-                "09d0j24x0cyc7wkgi7cnxqgfjk7kbdlm79zxpj8d356sa3rw2z24"))))
+    (version "3.16.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/checkpoint-restore/criu")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1riw15197fnrs254jl7wks9x8bdml76kf1vnqkkgyypr13dnq55g"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -1344,20 +1534,17 @@ domains, their live performance and resource utilization statistics.")
        (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
              (string-append "LIBDIR=" (assoc-ref %outputs "out")
                             "/lib")
-             (string-append "ASCIIDOC=" (assoc-ref %build-inputs "asciidoc")
-                            "/bin/asciidoc")
-             (string-append "XMLTO=" (assoc-ref %build-inputs "xmlto")
-                            "/bin/xmlto"))
+             (string-append "ASCIIDOC="
+                            (search-input-file %build-inputs
+                                               "/bin/asciidoc"))
+             (string-append "PYTHON=python3")
+             (string-append "XMLTO="
+                            (search-input-file %build-inputs
+                                               "/bin/xmlto")))
        #:phases
        (modify-phases %standard-phases
-         (replace 'configure
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; The includes for libnl are located in a sub-directory.
-             (setenv "C_INCLUDE_PATH"
-                     (string-append
-                      (search-input-directory inputs "/include/libnl3")
-                      ":" (or (getenv "C_INCLUDE_PATH") "")))))
-         (add-after 'configure 'fix-documentation
+         (delete 'configure)            ; no configure script
+         (add-after 'unpack 'fix-documentation
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (substitute* "Documentation/Makefile"
                (("-m custom.xsl")
@@ -1366,19 +1553,12 @@ domains, their live performance and resource utilization statistics.")
                  (assoc-ref inputs "docbook-xsl") "/xml/xsl/"
                  ,(package-name docbook-xsl) "-"
                  ,(package-version docbook-xsl)
-                 "/manpages/docbook.xsl")))
-             #t))
+                 "/manpages/docbook.xsl")))))
          (add-after 'unpack 'hardcode-variables
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Hardcode arm version detection
              (substitute* "Makefile"
-               (("ARMV.*:=.*") "ARMV := 7\n"))
-             ;; We are currently using python-2
-             (substitute* "crit/Makefile"
-               (("\\$\\(PYTHON\\)") "python2"))
-             (substitute* "lib/Makefile"
-               (("\\$\\(PYTHON\\)")
-                (search-input-file inputs "/bin/python")))))
+               (("ARMV.*:=.*") "ARMV := 7\n"))))
          (add-before 'build 'fix-symlink
            (lambda* (#:key inputs #:allow-other-keys)
              ;; The file 'images/google/protobuf/descriptor.proto' points to
@@ -1389,26 +1569,27 @@ domains, their live performance and resource utilization statistics.")
                              inputs
                              (string-append "include/" file))))
                (delete-file target)
-               (symlink source target)
-               #t)))
+               (symlink source target))))
          (add-after 'install 'wrap
            (lambda* (#:key inputs outputs #:allow-other-keys)
              ;; Make sure 'crit' runs with the correct PYTHONPATH.
-             (let* ((out (assoc-ref outputs "out"))
-                    (path (string-append out
-                                         "/lib/python"
-                                         (string-take (string-take-right
-                                                       (assoc-ref inputs "python") 5) 3)
-                                         "/site-packages:"
-                                         (or (getenv "GUIX_PYTHONPATH") ""))))
+             (let* ((out  (assoc-ref outputs "out"))
+                    (site (string-append out "/lib/python"
+                                         ,(version-major+minor
+                                           (package-version python))
+                                         "/site-packages"))
+                    (path (getenv "GUIX_PYTHONPATH")))
                (wrap-program (string-append out "/bin/crit")
-                 `("GUIX_PYTHONPATH" ":" prefix (,path))))
-             #t)))))
+                 `("GUIX_PYTHONPATH" ":" prefix (,site ,path))))))
+         (add-after 'install 'delete-static-libraries
+           ;; Not building/installing these at all doesn't seem to be supported.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (for-each delete-file (find-files out "\\.a$"))))))))
     (inputs
      `(("protobuf" ,protobuf)
-       ("python" ,python-2)
-       ("python2-protobuf" ,python2-protobuf)
-       ("python2-ipaddr" ,python2-ipaddr)
+       ("python" ,python)
+       ("python-protobuf" ,python-protobuf)
        ("iproute" ,iproute)
        ("libaio" ,libaio)
        ("libcap" ,libcap)
@@ -1417,13 +1598,13 @@ domains, their live performance and resource utilization statistics.")
        ("libbsd" ,libbsd)
        ("nftables" ,nftables)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("perl" ,perl)
-       ("protobuf-c" ,protobuf-c)
-       ("asciidoc" ,asciidoc)
-       ("xmlto" ,xmlto)
-       ("docbook-xml" ,docbook-xml)
-       ("docbook-xsl" ,docbook-xsl)))
+     (list pkg-config
+           perl
+           protobuf-c
+           asciidoc
+           xmlto
+           docbook-xml
+           docbook-xsl))
     (home-page "https://criu.org")
     (synopsis "Checkpoint and restore in user space")
     (description "Using this tool, you can freeze a running application (or
@@ -1491,9 +1672,7 @@ Machine Protocol.")
                ("sdl2-ttf" ,sdl2-ttf)
                ("spice-protocol" ,spice-protocol)
                ("wayland" ,wayland)))
-     (native-inputs `(("libconfig" ,libconfig)
-                      ("nettle" ,nettle)
-                      ("pkg-config" ,pkg-config)))
+     (native-inputs (list libconfig nettle pkg-config))
      (arguments
       `(#:tests? #f ;; No tests are available.
         #:make-flags '("CC=gcc")
@@ -1566,7 +1745,7 @@ monitor/GPU.")
      `(("go-md2man" ,go-github-com-go-md2man)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("libseccomp" ,libseccomp)))
+     (list libseccomp))
     (synopsis "Open container initiative runtime")
     (home-page "https://opencontainers.org/")
     (description
@@ -1638,17 +1817,16 @@ Open Container Initiative (OCI) image layout and its tagged images.")
                 "0n22sdif437ddg5ch0ipwim3fg0n6ihc9bfi52qkhy3r1grz04hs"))))
     (build-system go-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("go-github-com-go-md2man" ,go-github-com-go-md2man)))
+     (list pkg-config go-github-com-go-md2man))
     (inputs
-     `(("btrfs-progs" ,btrfs-progs)
-       ("eudev" ,eudev)
-       ("libassuan" ,libassuan)
-       ("libselinux" ,libselinux)
-       ("libostree" ,libostree)
-       ("lvm2" ,lvm2)
-       ("glib" ,glib)
-       ("gpgme" ,gpgme)))
+     (list btrfs-progs
+           eudev
+           libassuan
+           libselinux
+           libostree
+           lvm2
+           glib
+           gpgme))
     (arguments
      '(#:import-path "github.com/containers/skopeo"
        #:install-source? #f
@@ -1759,7 +1937,7 @@ virtual machines.")
              (delete-file-recursively (string-append (assoc-ref outputs "out") "/tmp"))
              #t)))))
     (inputs
-     `(("libcap" ,libcap)))
+     (list libcap))
     (native-inputs
      `(("python" ,python-wrapper)
        ("util-linux" ,util-linux)))
@@ -1788,7 +1966,7 @@ by default and can be made read-only.")
     (arguments
      `(#:tests? #f))                    ; no tests exist
     (inputs
-     `(("libxrandr" ,libxrandr)))
+     (list libxrandr))
     (home-page "http://bochs.sourceforge.net/")
     (synopsis "Emulator for x86 PC")
     (description
@@ -1802,11 +1980,11 @@ DOS or Microsoft Windows.")
 (define-public xen
   (package
     (name "xen")
-    (version "4.14.1")
+    (version "4.14.1")               ; please update the mini-os input as well
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "git://xenbits.xenproject.org/xen.git")
+                    (url "https://xenbits.xen.org/git-http/xen.git")
                     (commit (string-append "RELEASE-" version))))
               (file-name (git-file-name name version))
               (sha256
@@ -1978,11 +2156,13 @@ override CC = " (assoc-ref inputs "cross-gcc") "/bin/i686-linux-gnu-gcc"))
        ,(origin
          (method git-fetch)
          (uri (git-reference
-               (url "http://xenbits.xen.org/git-http/mini-os.git")
-               (commit (string-append "xen-RELEASE-" version))))
+               (url "https://xenbits.xen.org/git-http/mini-os.git")
+               ;; This corresponds to (string-append "xen-RELEASE-" version))
+               ;; at time of packaging, but upstream has unfortunately modified
+               ;; existing tags in the past.
+               (commit "0b4b7897e08b967a09bed2028a79fabff82342dd")))
          (sha256
-          (base32
-           "1i8pcl19n60i2m9vlg79q3nknpj209c9ic5x10wxaicx45kc107f"))
+          (base32 "1i8pcl19n60i2m9vlg79q3nknpj209c9ic5x10wxaicx45kc107f"))
          (file-name "mini-os-git-checkout")))
        ("perl" ,perl)
        ; TODO: markdown
@@ -2005,7 +2185,7 @@ which is a hypervisor.")
 (define-public osinfo-db-tools
   (package
     (name "osinfo-db-tools")
-    (version "1.8.0")
+    (version "1.9.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://releases.pagure.org/libosinfo/osinfo-db-tools-"
@@ -2013,23 +2193,19 @@ which is a hypervisor.")
 
               (sha256
                (base32
-                "038q3gzdbkfkhpicj0755mw1q4gbvn57pslpw8n2dp3lds9im0g9"))))
+                "1h23a8nzdxjyvw44dwh903563n3b1z5skx8g0b1p1v5cif3iqpr5"))))
     (build-system meson-build-system)
     (inputs
-     `(("libsoup" ,libsoup)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("json-glib" ,json-glib)
-       ("libarchive" ,libarchive)))
+     (list libsoup-minimal-2 libxml2 libxslt json-glib libarchive))
     (native-inputs
-     `(("perl" ,perl)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)
-       ;; Tests
-       ("python" ,python)
-       ("pytest" ,python-pytest)
-       ("requests" ,python-requests)))
+     (list perl
+           gobject-introspection
+           gettext-minimal
+           pkg-config
+           ;; Tests
+           python
+           python-pytest
+           python-requests))
     (home-page "https://gitlab.com/libosinfo/osinfo-db-tools")
     (synopsis "Tools for managing the osinfo database")
     (description "This package contains a set of tools to assist
@@ -2039,14 +2215,14 @@ administrators and developers in managing the database.")
 (define-public osinfo-db
   (package
     (name "osinfo-db")
-    (version "20210809")
+    (version "20211216")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://releases.pagure.org/libosinfo/osinfo-db-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "16gas6ahxwim1vdjlc4p1gm6q5gfy25h82ngykcm94x69sl6qsan"))))
+                "10hhpciqk4lzsj66zkdvghd1i5zh6hg1fn9as4qhwcr1wnqfgv09"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -2060,11 +2236,9 @@ administrators and developers in managing the database.")
                  (string-append (assoc-ref %build-inputs "osinfo-db-tools")
                                 "/bin/osinfo-db-import")))
            (mkdir-p osinfo-dir)
-           (invoke osinfo-db-import "--dir" osinfo-dir source)
-           #t))))
+           (invoke osinfo-db-import "--dir" osinfo-dir source)))))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("osinfo-db-tools" ,osinfo-db-tools)))
+     (list intltool osinfo-db-tools))
     (home-page "https://gitlab.com/libosinfo/osinfo-db")
     (synopsis "Database of information about operating systems")
     (description "Osinfo-db provides the database files for use with the
@@ -2094,20 +2268,16 @@ use with virtualization provisioning tools")
                          ">="))
                       #t)))))
     (propagated-inputs
-     `(("python-beautifultable" ,python-beautifultable)
-       ("python-click" ,python-click)
-       ("python-importlib-resources"
-        ,python-importlib-resources)
-       ("python-lark-parser" ,python-lark-parser)
-       ("python-marshmallow" ,python-marshmallow)
-       ("python-progressbar2" ,python-progressbar2)
-       ("python-requests" ,python-requests)
-       ("python-toml" ,python-toml)))
+     (list python-beautifultable
+           python-click
+           python-importlib-resources
+           python-lark-parser
+           python-marshmallow
+           python-progressbar2
+           python-requests
+           python-toml))
     (native-inputs
-     `(("python-black" ,python-black)
-       ("python-mypy" ,python-mypy)
-       ("python-pyhamcrest" ,python-pyhamcrest)
-       ("python-twine" ,python-twine)))
+     (list python-black python-mypy python-pyhamcrest python-twine))
     (home-page
      "https://github.com/ALSchwalm/transient")
     (synopsis
diff --git a/gnu/packages/visidata.scm b/gnu/packages/visidata.scm
deleted file mode 100644
index a1b16e5ca6..0000000000
--- a/gnu/packages/visidata.scm
+++ /dev/null
@@ -1,64 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages visidata)
-  #:use-module (gnu packages check)
-  #:use-module (gnu packages time)
-  #:use-module (gnu packages python-web)
-  #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages xml)
-  #:use-module (guix build-system python)
-  #:use-module (guix build utils)
-  #:use-module (guix download)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix packages))
-
-(define-public visidata
-  (package
-    (name "visidata")
-    (version "2.5")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "visidata" version))
-       (sha256
-        (base32
-         "19fbjr9j91pcazcz0bqx3qrasmr8xdsb13haf5lfbpyxj23f7f1j"))))
-    (build-system python-build-system)
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests? (invoke "pytest"))
-             #t)))))
-    (inputs
-     `(("dateutil" ,python-dateutil)
-       ("requests" ,python-requests)
-       ("lxml" ,python-lxml)
-       ("openpyxl" ,python-openpyxl)
-       ("xlrd" ,python-xlrd)))
-    (native-inputs
-     `(("pytest" ,python-pytest)))
-    (synopsis "Terminal spreadsheet multitool for discovering and arranging data")
-    (description
-     "VisiData is an interactive multitool for tabular data.  It combines the
-clarity of a spreadsheet, the efficiency of the terminal, and the power of
-Python, into a lightweight utility which can handle millions of rows.")
-    (home-page "https://www.visidata.org/")
-    (license license:gpl3)))
diff --git a/gnu/packages/vlang.scm b/gnu/packages/vlang.scm
index e0b2e7bcfc..108e09d450 100644
--- a/gnu/packages/vlang.scm
+++ b/gnu/packages/vlang.scm
@@ -102,7 +102,7 @@
               (copy-file "v.mod" vmod))
             #t)))))
    (inputs
-    `(("glib" ,glib)))
+    (list glib))
    (native-inputs
     `(("vc"
        ;; Versions are not consistently tagged, but the matching commit will
@@ -134,7 +134,3 @@
     "V is a systems programming language.  It provides memory safety and thread
 safety guarantees with minimal abstraction.")
    (license license:expat)))
-
-(define-public v
-  ;; We used to provide 'vlang' under the name 'v'.
-  (deprecated-package "v" vlang))
diff --git a/gnu/packages/vnc.scm b/gnu/packages/vnc.scm
index 4c2b13c93c..64c89f00b9 100644
--- a/gnu/packages/vnc.scm
+++ b/gnu/packages/vnc.scm
@@ -61,7 +61,7 @@
 (define-public remmina
   (package
     (name "remmina")
-    (version "1.4.20")
+    (version "1.4.22")
     (source
      (origin
        (method git-fetch)
@@ -71,7 +71,7 @@
          (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0apm4lqcmqskdp2fjxl8dbg3686cm4w0b5806fqj7w43hdmd8w4v"))))
+        (base32 "1f8qqr20ccj3fvf587syilabk389afc7ax9xxpr55swqi4qgk9vy"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; No target
@@ -102,51 +102,50 @@
                         (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
                     (wrap-program file
                       `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))
-                '("remmina" "remmina-file-wrapper")))
-             #t)))))
+                '("remmina" "remmina-file-wrapper"))))))))
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk+:bin" ,gtk+ "bin")
-       ("intl" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list gettext-minimal
+           `(,glib "bin")
+           gobject-introspection
+           `(,gtk+ "bin")
+           intltool
+           pkg-config))
     (inputs
-     `(("app-indicator" ,libappindicator)
-       ("atk" ,atk)
-       ("avahi" ,avahi)
-       ("cairo" ,cairo)
-       ("cups" ,cups)
-       ("ffmpeg" ,ffmpeg)
-       ("freerdp" ,freerdp)             ; for rdp plugin
-       ("gcrypt" ,libgcrypt)
-       ("gdk-pixbuf" ,gdk-pixbuf+svg)
-       ("glib" ,glib)
-       ("gnome-keyring" ,gnome-keyring)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ("harfbuzz" ,harfbuzz)
-       ("json-glib" ,json-glib)
-       ("libsecret" ,libsecret)         ; for secret plugin
-       ("libsoup" ,libsoup)
-       ("libssh" ,libssh)               ; for ssh plugin
-       ("libvnc" ,libvnc)               ; for vnc plugin
-       ("openssl" ,openssl)
-       ("pango" ,pango)
-       ("pcre2" ,pcre2)                 ; for exec plugin
-       ("shared-mime-info" ,shared-mime-info)
-       ("sodium" ,libsodium)
-       ("spice-client-gtk" ,spice-gtk)  ; for spice plugin
-       ("telepathy" ,telepathy-glib)
-       ("vte" ,vte)                     ; for st plugin
-       ("wayland" ,wayland)
-       ("webkitgtk" ,webkitgtk)         ; for www plugin
-       ("x11" ,libx11)
-       ("xext" ,libxext)                ; for xdmcp plugin
-       ("xdg-utils" ,xdg-utils)
-       ("xkbfile" ,libxkbfile)))        ; for nx plugin
+     (list libappindicator
+           atk
+           avahi
+           cairo
+           cups
+           ffmpeg
+           freerdp                      ; for rdp plugin
+           libgcrypt
+           librsvg
+           glib
+           gnome-keyring
+           gsettings-desktop-schemas
+           gtk+
+           harfbuzz
+           json-glib
+           libsecret                    ; for secret plugin
+           libsoup-minimal-2
+           libssh                       ; for ssh plugin
+           libvnc                       ; for vnc plugin
+           openssl
+           pango
+           pcre2                        ; for exec plugin
+           shared-mime-info
+           libsodium
+           spice-gtk                    ; for spice plugin
+           telepathy-glib
+           vte                          ; for st plugin
+           wayland
+           webkitgtk                    ; for www plugin
+           libx11
+           libxext                      ; for xdmcp plugin
+           xdg-utils
+           libxkbfile))                 ; for nx plugin
     (propagated-inputs
-     `(("dconf" ,dconf)))
+     (list dconf))
     (home-page "https://remmina.org/")
     (synopsis "Remote Desktop Client")
     (description "Remmina is a client to use other desktops remotely.
@@ -176,21 +175,19 @@ RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC network protocols are supported.")
                       (with-directory-excursion "vncviewer"
                         (invoke "make" "install")))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("gettext-minimal" ,gettext-minimal)
-       ("automake" ,automake)))
+     (list autoconf gettext-minimal automake))
     (inputs
-     `(("zlib" ,zlib)
-       ("gnutls" ,gnutls)
-       ("libjpeg-turbo" ,libjpeg-turbo)
-       ("fltk" ,fltk)
-       ("linux-pam" ,linux-pam)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxtst" ,libxtst)
-       ("libxrandr" ,libxrandr)
-       ("libxdamage" ,libxdamage)
-       ("pixman" ,pixman)))
+     (list zlib
+           gnutls
+           libjpeg-turbo
+           fltk
+           linux-pam
+           libx11
+           libxext
+           libxtst
+           libxrandr
+           libxdamage
+           pixman))
     (home-page "https://tigervnc.org/")
     (synopsis "High-performance, platform-neutral
 implementation of VNC (client)")
@@ -228,13 +225,11 @@ application which is needed to connect to VNC servers.")
        ,@(package-inputs tigervnc-client)
        ,@(package-native-inputs xorg-server)))
     (inputs
-     `(("perl" ,perl)
-       ("coreutils" ,coreutils)
-       ("xauth" ,xauth)
-       ,@(package-inputs xorg-server)))
+     (modify-inputs (package-inputs xorg-server)
+       (prepend perl coreutils xauth)))
     (propagated-inputs
-     `(("xauth" ,xauth)
-       ,@(package-propagated-inputs xorg-server)))
+     (modify-inputs (package-propagated-inputs xorg-server)
+       (prepend xauth)))
     (arguments
      (substitute-keyword-arguments
          (package-arguments xorg-server)
@@ -363,7 +358,7 @@ where the server is installed.")))
                          "gcc -I"))
                       #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("gnutls" ,gnutls)
        ("libgcrypt" ,libgcrypt)
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 852d0038c7..4ad555ef1b 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -240,7 +240,7 @@
          (add-after 'python-wrap 'qt-wrap
            (assoc-ref qt:%standard-phases 'qt-wrap)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("iproute" ,iproute)
        ("iptables" ,iptables)
@@ -254,19 +254,13 @@
        ("qtquickcontrols" ,qtquickcontrols)
        ("qtquickcontrols2" ,qtquickcontrols2)))
     (propagated-inputs
-     `(("go-0xacab-org-leap-shapeshifter"
-        ,go-0xacab-org-leap-shapeshifter)
-       ("go-github-com-apparentlymart-go-openvpn-mgmt"
-        ,go-github-com-apparentlymart-go-openvpn-mgmt)
-       ("go-github-com-emersion-go-autostart"
-        ,go-github-com-emersion-go-autostart)
-       ("go-github-com-keybase-go-ps"
-        ,go-github-com-keybase-go-ps)
-       ("go-github-com-rakyll-statik"
-        ,go-github-com-rakyll-statik)
-       ("go-github-com-sevlyar-go-daemon"
-        ,go-github-com-sevlyar-go-daemon)
-       ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+     (list go-0xacab-org-leap-shapeshifter
+           go-github-com-apparentlymart-go-openvpn-mgmt
+           go-github-com-emersion-go-autostart
+           go-github-com-keybase-go-ps
+           go-github-com-rakyll-statik
+           go-github-com-sevlyar-go-daemon
+           go-golang-org-x-sys))
     (synopsis "Generic VPN client by LEAP")
     (description "Bitmask, by @acronym{LEAP, LEAP Encryption Access Project},
 is an application to provide easy and secure encrypted communication with a
@@ -289,9 +283,8 @@ Networks and The Calyx Institute, where the former is default.")
                 "1cz8n75ksl0l908zc5l3rnfm1hv7130s2w8710799fr5sxrdbszi"))))
     (build-system gnu-build-system)
     (home-page "http://software.schmorp.de/pkg/gvpe.html")
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("openssl" ,openssl)
-              ("zlib" ,zlib)))
+    (native-inputs (list pkg-config))
+    (inputs (list openssl zlib))
     (synopsis "Secure VPN among multiple nodes over an untrusted network")
     (description
      "The GNU Virtual Private Ethernet creates a virtual network
@@ -303,14 +296,14 @@ endpoints.")
 (define-public strongswan
   (package
     (name "strongswan")
-    (version "5.9.3")
+    (version "5.9.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.strongswan.org/strongswan-"
                            version ".tar.bz2"))
        (sha256
-        (base32 "1xy6c9c7bq5a5jmm04r9f9iqn39yrr1dkq81jhvpxsd4l1ban9ck"))))
+        (base32 "063mi0kdlpd7r7s3py35yf80hvrv3nrdfvxpyn7ns25gqajg3za5"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -328,8 +321,7 @@ endpoints.")
              (substitute* "src/libstrongswan/tests/suites/test_process.c"
                (("/bin/sh") (which "sh"))
                (("/bin/echo") (which "echo"))
-               (("cat") (which "cat")))
-             #t))
+               (("cat") (which "cat")))))
          (add-before 'check 'set-up-test-environment
            (lambda* (#:key inputs #:allow-other-keys)
              (setenv "TZDIR"
@@ -385,18 +377,16 @@ endpoints.")
         ;; Use libcap by default.
         "--with-capabilities=libcap")))
     (inputs
-     `(("coreutils" ,coreutils)
-       ("curl" ,curl)
-       ("gmp" ,gmp)
-       ("libcap" ,libcap)
-       ("libgcrypt" ,libgcrypt)
-       ("libsoup" ,libsoup)
-       ("linux-pam" ,linux-pam)
-       ("openssl" ,openssl)))
+     (list coreutils
+           curl
+           gmp
+           libcap
+           libgcrypt
+           libsoup
+           linux-pam
+           openssl))
     (native-inputs
-     `(("coreutils" ,coreutils)
-       ("pkg-config" ,pkg-config)
-       ("tzdata" ,tzdata-for-tests)))
+     (list coreutils pkg-config tzdata-for-tests))
     (synopsis "IKEv1/v2 keying daemon")
     (description "StrongSwan is an IPsec implementation originally based upon
 the FreeS/WAN project.  It contains support for IKEv1, IKEv2, MOBIKE, IPv6,
@@ -417,7 +407,7 @@ NAT-T and more.")
            ;; src/libstrongswan/plugins/pkcs11/pkcs11.h
            (license:non-copyleft
             "file://src/libstrongswan/plugins/pkcs11/pkcs11.h"
-            "pkcs11 contains a unknown permissive license. View the specific
+            "pkcs11 contains an unknown permissive license. View the specific
 file for more details.")
            ;; These files are not included in the
            ;; build, they are disabled through
@@ -442,9 +432,7 @@ file for more details.")
             (sha256 (base32
                      "1128860lis89g1s21hqxvap2nq426c9j4bvgghncc1zj0ays7kj6"))))
    (build-system gnu-build-system)
-   (inputs `(("libgcrypt" ,libgcrypt)
-             ("perl" ,perl)
-             ("vpnc-scripts" ,vpnc-scripts)))
+   (inputs (list libgcrypt perl vpnc-scripts))
    (arguments
     `(#:tests? #f ; there is no check target
       #:phases
@@ -489,13 +477,13 @@ Only \"Universal TUN/TAP device driver support\" is needed in the kernel.")
                  (base32
                   "1pmi4n58q81pmn9arvfixhvv6vkkf3rpwac3hwnwyl882q5q0ccx"))))
       (build-system gnu-build-system)
-      (inputs `(("guile" ,guile-3.0) ; for the wrapper scripts
-                ("coreutils" ,coreutils)
-                ("grep" ,grep)
-                ("iproute2" ,iproute)    ; for ‘ip’
-                ("net-tools" ,net-tools) ; for ‘ifconfig’, ‘route’
-                ("sed" ,sed)
-                ("which" ,which)))
+      (inputs (list guile-3.0 ; for the wrapper scripts
+                    coreutils
+                    grep
+                    iproute ; for ‘ip’
+                    net-tools ; for ‘ifconfig’, ‘route’
+                    sed
+                    which))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -582,10 +570,9 @@ the entire VPN in a network namespace accessible only through SSH.")
                 "03323nnhb4y9nzwva04mq7xg03dvdrgp689g89f69jqc261skcqx"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (inputs
-     `(("libevent" ,libevent)))
+     (list libevent))
     (home-page "https://github.com/cernekee/ocproxy")
     (synopsis "OpenConnect proxy")
     (description
@@ -607,12 +594,9 @@ the user specifically asks to proxy, so the @dfn{VPN} interface no longer
              (base32 "1cdsx4nsrwawbsisfkldfc9i4qn60g03vxb13nzppr2br9p4rrih"))))
    (build-system gnu-build-system)
    (propagated-inputs
-    `(("libxml2" ,libxml2)
-      ("gnutls" ,gnutls)
-      ("zlib" ,zlib)))
+    (list libxml2 gnutls zlib))
    (inputs
-    `(("lz4" ,lz4)
-      ("vpnc-scripts" ,vpnc-scripts)))
+    (list lz4 vpnc-scripts))
    (native-inputs
     `(("gettext" ,gettext-minimal)
       ("pkg-config" ,pkg-config)))
@@ -668,23 +652,22 @@ and probably others.")
                  `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))
                #t))))))
     (inputs
-     `(("openconnect" ,openconnect)
-       ("python-attrs" ,python-attrs)
-       ("python-colorama" ,python-colorama)
-       ("python-keyring" ,python-keyring)
-       ("python-lxml" ,python-lxml)
-       ("python-prompt-toolkit" ,python-prompt-toolkit)
-       ("python-requests" ,python-requests)
-       ("python-pyqt" ,python-pyqt)
-       ("python-pyqtwebengine" ,python-pyqtwebengine)
-       ("python-pysocks" ,python-pysocks)
-       ("python-pyxdg" ,python-pyxdg)
-       ("python-structlog" ,python-structlog)
-       ("python-toml" ,python-toml)
-       ("qtwebengine" ,qtwebengine)))
+     (list openconnect
+           python-attrs
+           python-colorama
+           python-keyring
+           python-lxml
+           python-prompt-toolkit
+           python-requests
+           python-pyqt
+           python-pyqtwebengine
+           python-pysocks
+           python-pyxdg
+           python-structlog
+           python-toml
+           qtwebengine))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-pytest python-setuptools-scm))
     (home-page "https://github.com/vlaci/openconnect-sso")
     (synopsis "OpenConnect wrapper script supporting Azure AD (SAMLv2)")
     (description
@@ -707,12 +690,9 @@ and probably others.")
                 "1qsfgpxg553s8rc9cyrc4k96z0pislxsdxb9wyhp8fdprkak2mw2"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("autotools" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
-     `(("openssl" ,openssl)
-       ("ppp" ,ppp)))
+     (list openssl ppp))
     (home-page "https://github.com/adrienverge/openfortivpn")
     (synopsis "Client for PPP+SSL VPN tunnel services")
     (description "Openfortivpn is a client for PPP+SSL VPN tunnel services.  It
@@ -723,7 +703,7 @@ this process.  It is compatible with Fortinet VPNs.")
 (define-public openvpn
   (package
     (name "openvpn")
-    (version "2.5.3")
+    (version "2.5.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -731,17 +711,14 @@ this process.  It is compatible with Fortinet VPNs.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "0zlski66mw10klmwvg445z051mld7xjng4iyl4f9b883qr1rjspv"))))
+                "0fq0nvgpbyvdxc8vwka51whgm3kkvjb3c9xarpv3h211l2gxd6qi"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--enable-iproute2=yes")))
     (native-inputs
-     `(("iproute2" ,iproute)))
+     (list iproute))
     (inputs
-     `(("lz4" ,lz4)
-       ("lzo" ,lzo)
-       ("openssl" ,openssl)
-       ("linux-pam" ,linux-pam)))
+     (list lz4 lzo openssl linux-pam))
     (home-page "https://openvpn.net/")
     (synopsis "Virtual private network daemon")
     (description
@@ -793,18 +770,18 @@ traversing network address translators (@dfn{NAT}s) and firewalls.")
                                           "which")))))
              #t)))))
     (native-inputs
-     `(("python-docopt" ,python-docopt)))
+     (list python-docopt))
     (inputs
-     `(("dialog" ,dialog)
-       ("iproute2" ,iproute)
-       ("iptables" ,iptables)
-       ("ncurses" ,ncurses)
-       ("openvpn" ,openvpn)
-       ("procps" ,procps)
-       ("python-jinja2" ,python-jinja2)
-       ("python-pythondialog" ,python-pythondialog)
-       ("python-requests" ,python-requests)
-       ("which" ,which)))
+     (list dialog
+           iproute
+           iptables
+           ncurses
+           openvpn
+           procps
+           python-jinja2
+           python-pythondialog
+           python-requests
+           which))
     (synopsis "Command-line client for ProtonVPN")
     (description
      "This is the official command-line interface for ProtonVPN, a secure
@@ -830,9 +807,7 @@ VPN.  The gratis tier offers unlimited bandwidth for up to 10 devices.")
      '(#:configure-flags
        '("--sysconfdir=/etc"
          "--localstatedir=/var")))
-    (inputs `(("zlib" ,zlib)
-              ("lzo" ,lzo)
-              ("openssl" ,openssl)))
+    (inputs (list zlib lzo openssl))
     (home-page "https://tinc-vpn.org")
     (synopsis "Virtual Private Network (VPN) daemon")
     (description
@@ -863,12 +838,12 @@ private network between hosts on the internet.")
                (("/bin/sh") "sh"))
              #t)))))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)
-       ;; For tests only.
-       ("python-flake8" ,python-flake8)
-       ("python-mock" ,python-mock)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list python-setuptools-scm
+           ;; For tests only.
+           python-flake8
+           python-mock
+           python-pytest-cov
+           python-pytest-runner))
     (home-page "https://github.com/sshuttle/sshuttle")
     (synopsis "VPN that transparently forwards connections over SSH")
     (description "sshuttle creates an encrypted virtual private network (VPN)
@@ -902,14 +877,10 @@ DNS domain name queries.")
                (("/bin/sh") (which "sh")))
              #t)))))
     (inputs
-     `(("python-argcomplete" ,python-argcomplete)
-       ("python-prettytable" ,python-prettytable)
-       ("python-pyyaml" ,python-pyyaml)))
+     (list python-argcomplete python-prettytable python-pyyaml))
     ;; For tests only.
     (native-inputs
-     `(("python-fixtures" ,python-fixtures)
-       ("python-pbr" ,python-pbr)
-       ("python-testtools" ,python-testtools)))
+     (list python-fixtures python-pbr python-testtools))
     (home-page "https://github.com/albertodonato/sshoot")
     (synopsis "sshuttle VPN session manager")
     (description "sshoot provides a command-line interface to manage multiple
@@ -934,11 +905,9 @@ with configuration options for most of @command{sshuttle}’s features.")
     (arguments
      '(#:tests? #f))                    ; no tests
     (inputs
-     `(("nspr" ,nspr)
-       ("nss" ,nss)
-       ("openssl" ,openssl)))
+     (list nspr nss openssl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/ambrop72/badvpn")
     (synopsis "Peer-to-peer virtual private network (VPN)")
     (description "@code{BadVPN} is a collection of virtual private
@@ -1019,7 +988,7 @@ WireGuard was added to Linux 5.6.")
 (define-public wireguard-tools
   (package
     (name "wireguard-tools")
-    (version "1.0.20210424")
+    (version "1.0.20210914")
     (source
      (origin
        (method git-fetch)
@@ -1028,7 +997,7 @@ WireGuard was added to Linux 5.6.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "12v0ykaz7phv1gqin35wf6ndgb9819vai17ynjxssq00xwcbsq43"))))
+        (base32 "1nafrb2naif0z7z3vijnlyp81z89ywzlagc64k4sqa3ayzn95sm0"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -1046,28 +1015,28 @@ WireGuard was added to Linux 5.6.")
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
-         ;; No configure script
-         (delete 'configure)
+         (delete 'configure)            ; no configure script
          (add-after 'install 'install-contrib-docs
            (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (copy-recursively "contrib/"
-                                 (string-append out "/share/doc/wireguard-tools"))
-               #t)))
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (string-append out "/share/doc/wireguard-tools")))
+               (copy-recursively "contrib/" doc))))
          (add-after 'install 'wrap-wg-quick
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (inputs-sbin (map (lambda (input)
-                                        (string-append (assoc-ref inputs input) "/sbin"))
-                                      (list "resolvconf" "iproute" "procps"
-                                            "iptables")))
-                   (coreutils (string-append (assoc-ref inputs "coreutils")
-                                             "/bin")))
+                                        (string-append (assoc-ref inputs input)
+                                                       "/sbin"))
+                                      (list "iproute"
+                                            "iptables"
+                                            "procps"
+                                            "resolvconf")))
+                    (coreutils (string-append (assoc-ref inputs "coreutils")
+                                              "/bin")))
                (wrap-program (string-append out "/bin/wg-quick")
                  #:sh (search-input-file inputs "bin/bash")
                  `("PATH" ":" prefix ,(append inputs-sbin
-                                              (list coreutils))))
-               #t))))))
+                                              (list coreutils))))))))))
     (inputs
      `(("resolvconf" ,openresolv)
        ("coreutils" ,coreutils)
@@ -1089,9 +1058,6 @@ public keys and can roam across IP addresses.")
      (list license:lgpl2.1+    ; src/netlink.h & contrib/embeddable-wg-library
            license:gpl2))))    ; everything else
 
-(define-public wireguard
-  (deprecated-package "wireguard" wireguard-tools))
-
 (define-public xl2tpd
   (package
     (name "xl2tpd")
@@ -1117,12 +1083,10 @@ public keys and can roam across IP addresses.")
                         (("/usr/sbin/pppd")
                          (search-input-file inputs "/sbin/pppd")))
                       (setenv "KERNELSRC"
-                              (assoc-ref inputs "linux-libre-headers"))
+                              (assoc-ref inputs "kernel-headers"))
                       #t)))
        #:tests? #f))                    ; no tests provided
-    (inputs `(("libpcap" ,libpcap)
-              ("linux-libre-headers" ,linux-libre-headers)
-              ("ppp" ,ppp)))
+    (inputs (list libpcap ppp))
     (home-page "https://www.xelerance.com/software/xl2tpd/")
     (synopsis "Layer 2 Tunnelling Protocol Daemon (RFC 2661)")
     (description
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index ac91f8451c..f5c619a2b2 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +25,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix gexp)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
@@ -91,9 +93,8 @@ and for the GLSL.std.450 extended instruction set.
                                (string-append
                                 "-DSPIRV-Headers_SOURCE_DIR="
                                 (assoc-ref %build-inputs "spirv-headers")))))
-    (inputs `(("spirv-headers" ,spirv-headers)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("python" ,python)))
+    (inputs (list spirv-headers))
+    (native-inputs (list pkg-config python))
     (home-page "https://github.com/KhronosGroup/SPIRV-Tools")
     (synopsis "API and commands for processing SPIR-V modules")
     (description
@@ -136,10 +137,8 @@ parser,disassembler, validator, and optimizer for SPIR-V.")
                 (string-append (assoc-ref inputs "spirv-tools") "/bin")))
              #t)))))
     (inputs
-     `(("glslang" ,glslang)
-       ("spirv-headers" ,spirv-headers)
-       ("spirv-tools" ,spirv-tools)))
-    (native-inputs `(("python" ,python)))
+     (list glslang spirv-headers spirv-tools))
+    (native-inputs (list python))
     (home-page "https://github.com/KhronosGroup/SPIRV-Cross")
     (synopsis "Parser for and converter of SPIR-V to other shader languages")
     (description
@@ -168,8 +167,7 @@ SPIR-V, aiming to emit GLSL or MSL that looks like human-written code.")
      '(#:tests? #f                      ;FIXME: requires bundled SPIRV-Tools
        #:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)))
+     (list pkg-config python))
     (home-page "https://github.com/KhronosGroup/glslang")
     (synopsis "OpenGL and OpenGL ES shader front end and validator")
     (description
@@ -222,7 +220,14 @@ interpretation of the specifications for these languages.")
          "15gx9ab6w1sjq9hkpbas7z2f8f47j6mlln6p3w26qmydjj8gfjjv"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:phases (modify-phases %standard-phases
+     `(#:configure-flags
+       ,#~(list
+           (string-append "-DVULKAN_HEADERS_INSTALL_DIR="
+                          #$(this-package-input "vulkan-headers"))
+           (string-append "-DCMAKE_INSTALL_INCLUDEDIR="
+                          #$(this-package-input "vulkan-headers")
+                          "/include"))
+       #:phases (modify-phases %standard-phases
                   (add-after 'unpack 'unpack-googletest
                     (lambda* (#:key inputs #:allow-other-keys)
                       (let ((gtest (assoc-ref inputs "googletest:source")))
@@ -243,8 +248,9 @@ interpretation of the specifications for these languages.")
        ("libxrandr" ,libxrandr)
        ("pkg-config" ,pkg-config)
        ("python" ,python)
-       ("vulkan-headers" ,vulkan-headers)
        ("wayland" ,wayland)))
+    (inputs
+     (list vulkan-headers))
     (home-page
      "https://github.com/KhronosGroup/Vulkan-Loader")
     (synopsis "Khronos official ICD loader and validation layers for Vulkan")
@@ -276,14 +282,9 @@ and the ICD.")
          "129wzk7xj3vn3c8b4p7fzkd0npl58118s2i1d88gsfnlix54nagq"))))
     (build-system cmake-build-system)
     (inputs
-     `(("glslang" ,glslang)
-       ("libxrandr" ,libxrandr)
-       ("vulkan-loader" ,vulkan-loader)
-       ("wayland" ,wayland)))
+     (list glslang libxrandr vulkan-loader wayland))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("vulkan-headers" ,vulkan-headers)))
+     (list pkg-config python vulkan-headers))
     (arguments
      `(#:tests? #f                      ;no tests
        #:configure-flags (list (string-append "-DGLSLANG_INSTALL_DIR="
@@ -344,12 +345,9 @@ API.")
                          ,(package-version glslang))))
              #t)))))
     (inputs
-     `(("glslang" ,glslang)
-       ("python" ,python)
-       ("spirv-headers" ,spirv-headers)
-       ("spirv-tools" ,spirv-tools)))
+     (list glslang python spirv-headers spirv-tools))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/google/shaderc")
     (synopsis "Tools for shader compilation")
     (description "Shaderc is a collection of tools, libraries, and tests for
@@ -390,16 +388,16 @@ shader compilation.")
         ("libtool" ,libtool)
         ("pkg-config" ,pkg-config)))
      (inputs
-      `(("libx11" ,libx11)
-        ("libxcb" ,libxcb)
-        ("spirv-headers" ,spirv-headers)
-        ("spirv-tools" ,spirv-tools)
-        ("vulkan-headers" ,vulkan-headers)
-        ("vulkan-loader" ,vulkan-loader)
-        ("wine-minimal" ,wine-minimal) ; Needed for 'widl'.
-        ("xcb-util" ,xcb-util)
-        ("xcb-util-keysyms" ,xcb-util-keysyms)
-        ("xcb-util-wm" ,xcb-util-wm)))
+      (list libx11
+            libxcb
+            spirv-headers
+            spirv-tools
+            vulkan-headers
+            vulkan-loader
+            wine-minimal ; Needed for 'widl'.
+            xcb-util
+            xcb-util-keysyms
+            xcb-util-wm))
      (home-page "https://source.winehq.org/git/vkd3d.git/")
      (synopsis "Direct3D 12 to Vulkan translation library")
      (description "vkd3d is a library for translating Direct3D 12 to Vulkan.")
diff --git a/gnu/packages/w3m.scm b/gnu/packages/w3m.scm
index a14ca02e84..5239cd43a0 100644
--- a/gnu/packages/w3m.scm
+++ b/gnu/packages/w3m.scm
@@ -66,13 +66,13 @@
                                     "scripts/dirlist.cgi.in")
                        (("@PERL@") (which "perl"))))))))
     (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
-       ("imlib2" ,imlib2)
-       ("libgc" ,libgc)
-       ("libx11" ,libx11)
-       ("ncurses" ,ncurses)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list gdk-pixbuf
+           imlib2
+           libgc
+           libx11
+           ncurses
+           openssl
+           zlib))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("perl" ,perl)
diff --git a/gnu/packages/wdiff.scm b/gnu/packages/wdiff.scm
index 20fc0bc06f..ec0769447f 100644
--- a/gnu/packages/wdiff.scm
+++ b/gnu/packages/wdiff.scm
@@ -47,9 +47,9 @@
                         (("#! /bin/sh")
                          (string-append "#!" (which "sh")))))))))
     (native-inputs
-     `(("which" ,which)
-       ;; For some reason wdiff.info gets rebuilt.
-       ("texinfo" ,texinfo)))
+     (list which
+           ;; For some reason wdiff.info gets rebuilt.
+           texinfo))
     (home-page "https://www.gnu.org/software/wdiff/")
     (synopsis "Word difference finder")
     (description
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index cda9dee32f..6807cb1be3 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -51,6 +51,8 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages backup)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
@@ -59,6 +61,7 @@
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages fribidi)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -72,6 +75,7 @@
   #:use-module (gnu packages libunistring)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lisp)
+  #:use-module (gnu packages lisp-check)
   #:use-module (gnu packages lisp-xyz)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages man)
@@ -83,6 +87,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #: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 qt)
@@ -123,10 +128,12 @@
            (assoc-ref glib-or-gtk:%standard-phases
                       'glib-or-gtk-wrap)))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")
+     `(("desktop-file-utils" ,desktop-file-utils) ;for tests
+       ("glib:bin" ,glib "bin")
        ("gtk+:bin" ,gtk+ "bin")
        ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("which" ,which))) ;for tests
     (inputs
      `(("adwaita-icon-theme" ,adwaita-icon-theme)
        ("gcr" ,gcr)
@@ -137,10 +144,9 @@
        ("json-glib" ,json-glib)
        ("libarchive" ,libarchive)
        ("libpeas" ,libpeas)
-       ("libsoup" ,libsoup)
        ("sqlite" ,sqlite)
        ("vala" ,vala)
-       ("webkitgtk" ,webkitgtk)))
+       ("webkitgtk" ,webkitgtk-with-libsoup2)))
     (synopsis "Lightweight graphical web browser")
     (description "@code{Midori} is a lightweight, Webkit-based web browser.
 It features integration with GTK+3, configurable web search engine, bookmark
@@ -151,21 +157,21 @@ management, extensions such as advertisement blocker and colorful tabs.")
 (define-public links
   (package
     (name "links")
-    (version "2.23")
+    (version "2.25")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://links.twibright.com/download/"
                                   "links-" version ".tar.bz2"))
               (sha256
                (base32
-                "0idcwryfbf6ds5x2fx1k21m459qz5mrz3hw4a6ziiz91yl1d4q36"))))
+                "0b6x97xi8i4pag2scba02c0h95cm3sia58q99zppk0lfd448bmrd"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
-             ;; The tarball uses a very old version of autconf. It doesn't
+             ;; The tarball uses a very old version of autoconf. It doesn't
              ;; understand extra flags like `--enable-fast-install', so
              ;; we need to invoke it with just what it understands.
              (let ((out (assoc-ref outputs "out")))
@@ -176,10 +182,8 @@ management, extensions such as advertisement blocker and colorful tabs.")
                (setenv "CONFIG_SHELL" (which "bash"))
                (invoke "./configure"
                        (string-append "--prefix=" out)
-                       "--enable-graphics")
-               #t))))))
-    (native-inputs `(("linux-libre-headers" ,linux-libre-headers)
-                     ("pkg-config" ,pkg-config)))
+                       "--enable-graphics")))))))
+    (native-inputs (list pkg-config))
     (inputs `(("gpm" ,gpm)
               ("libevent" ,libevent)
               ("libjpeg" ,libjpeg-turbo)
@@ -221,10 +225,10 @@ features including, tables, builtin image display, bookmarks, SSL and more.")
        ("glib-networking" ,glib-networking)
        ("lua5.1-filesystem" ,lua5.1-filesystem)
        ("luajit" ,luajit)
-       ("webkitgtk" ,webkitgtk)
+       ("webkitgtk" ,webkitgtk-with-libsoup2)
        ("sqlite" ,sqlite)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:make-flags
@@ -283,16 +287,15 @@ and the GTK+ toolkit.")
                (base32
                 "06jhv8ibfw1xkf8d8zrnkc2aw4d462s77hlp6f6xa6k8awzxvmkg"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("perl" ,perl)))
-    (inputs `(("ncurses" ,ncurses)
-              ("libidn" ,libidn)
-              ("openssl" ,openssl)
-              ("libgcrypt" ,libgcrypt)
-              ("unzip" ,unzip)
-              ("zlib" ,zlib)
-              ("gzip" ,gzip)
-              ("bzip2" ,bzip2)))
+    (native-inputs (list pkg-config perl))
+    (inputs (list ncurses
+                  libidn
+                  openssl
+                  libgcrypt
+                  unzip
+                  zlib
+                  gzip
+                  bzip2))
     (arguments
      `(#:configure-flags
        (let ((openssl (assoc-ref %build-inputs "openssl")))
@@ -440,13 +443,13 @@ access.")
                 (base32
                  "1kvkxkisi3czldnb43ig60l55pi4a3m2a4ixp7krhpf9fc5wp294")))))))
       (inputs
-       `(("cmark" ,cmark)
-         ("font-google-noto" ,font-google-noto)
-         ("font-openmoji" ,font-openmoji)
-         ("openssl" ,openssl)
-         ("qtbase" ,qtbase-5)
-         ("qtmultimedia" ,qtmultimedia)
-         ("qtsvg" ,qtsvg)))
+       (list cmark
+             font-google-noto
+             font-openmoji
+             openssl
+             qtbase-5
+             qtmultimedia
+             qtsvg))
       (home-page "https://kristall.random-projects.net")
       (synopsis "Small-internet graphical client")
       (description "Graphical small-internet client with with many features
@@ -460,7 +463,7 @@ interface.")
 (define-public qutebrowser
   (package
     (name "qutebrowser")
-    (version "2.3.1")
+    (version "2.4.0")
     (source
      (origin
        (method url-fetch)
@@ -468,26 +471,27 @@ interface.")
                            "qutebrowser/releases/download/v" version "/"
                            "qutebrowser-" version ".tar.gz"))
        (sha256
-        (base32 "05n64mw9lzzxpxr7lhakbkm9ir3x8p0rwk6vbbg01aqg5iaanyj0"))))
+        (base32 "1v4jhlmgfm8v9sbf7i3xg1vjh6dy8y2gpckk0mizkazb2jxrmkgj"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-attrs" ,python-attrs))) ; for tests
+     (list python-attrs)) ; for tests
     (inputs
-     `(("python-colorama" ,python-colorama)
-       ("python-cssutils" ,python-cssutils)
-       ("python-importlib-resources" ,python-importlib-resources)
-       ("python-jinja2" ,python-jinja2)
-       ("python-markupsafe" ,python-markupsafe)
-       ("python-pygments" ,python-pygments)
-       ("python-pypeg2" ,python-pypeg2)
-       ("python-pyyaml" ,python-pyyaml)
-       ;; FIXME: python-pyqtwebengine needs to come before python-pyqt so
-       ;; that it's __init__.py is used first.
-       ("python-pyqtwebengine" ,python-pyqtwebengine)
-       ("python-pyqt" ,python-pyqt)
-       ;; While qtwebengine is provided by python-pyqtwebengine, it's
-       ;; included here so we can wrap QTWEBENGINEPROCESS_PATH.
-       ("qtwebengine" ,qtwebengine)))
+     (list bash-minimal
+           python-colorama
+           python-cssutils
+           python-jinja2
+           python-markupsafe
+           python-pygments
+           python-pynacl
+           python-pypeg2
+           python-pyyaml
+           ;; FIXME: python-pyqtwebengine needs to come before python-pyqt so
+           ;; that it's __init__.py is used first.
+           python-pyqtwebengine
+           python-pyqt
+           ;; While qtwebengine is provided by python-pyqtwebengine, it's
+           ;; included here so we can wrap QTWEBENGINEPROCESS_PATH.
+           qtwebengine))
     (arguments
      `(;; FIXME: With the existance of qtwebengine, tests can now run.  But
        ;; they are still disabled because test phase hangs.  It's not readily
@@ -495,10 +499,14 @@ interface.")
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-systemdir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "qutebrowser/utils/standarddir.py"
+                 (("/usr/share") (string-append out "/share"))))))
          (add-before 'check 'set-env-offscreen
            (lambda _
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             #t))
+             (setenv "QT_QPA_PLATFORM" "offscreen")))
          (add-after 'install 'install-more
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -519,8 +527,13 @@ interface.")
                (substitute* "misc/org.qutebrowser.qutebrowser.desktop"
                  (("Exec=qutebrowser")
                   (string-append "Exec=" out "/bin/qutebrowser")))
-               (install-file "misc/org.qutebrowser.qutebrowser.desktop" app)
-               #t)))
+               (install-file "misc/org.qutebrowser.qutebrowser.desktop" app))))
+         (add-after 'install 'install-userscripts
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out     (assoc-ref outputs "out"))
+                    (scripts (string-append out "/share/qutebrowser/userscripts")))
+               (mkdir-p scripts)
+               (copy-recursively "misc/userscripts" scripts))))
          (add-after 'wrap 'wrap-qt-process-path
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -529,8 +542,7 @@ interface.")
                                       (assoc-ref inputs "qtwebengine")
                                       "/lib/qt5/libexec/QtWebEngineProcess")))
                (wrap-program bin
-                 `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))
-               #t))))))
+                 `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))))))))
     (home-page "https://qutebrowser.org/")
     (synopsis "Minimal, keyboard-focused, vim-like web browser")
     (description "qutebrowser is a keyboard-focused browser with a minimal
@@ -562,9 +574,9 @@ GUI.  It is based on PyQt5 and QtWebEngine.")
     (inputs
      `(("glib-networking" ,glib-networking)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("webkitgtk" ,webkitgtk)))
+       ("webkitgtk" ,webkitgtk-with-libsoup2)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://fanglingsu.github.io/vimb/")
     (synopsis "Fast and lightweight Vim-like web browser")
     (description "Vimb is a fast and lightweight vim like web browser based on
@@ -576,22 +588,20 @@ driven and does not detract you from your daily work.")
 (define-public nyxt
   (package
     (name "nyxt")
-    (version "2.1.1")
+    (version "2.2.3")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             ;; TODO: Mirror seems to hang, let's fallback to GitHub for now.
-             ;; (url "https://source.atlas.engineer/public/nyxt")
              (url "https://github.com/atlas-engineer/nyxt")
              (commit version)))
        (sha256
         (base32
-         "0kzm05swhyb197cjfd3iglf60b997sx7v95yxzyq483jxqbcxm0r"))
+         "1v1szbj44pwxh3k70fvg78xjfkab29dqnlafa722sppdyqd06cqp"))
        (file-name (git-file-name "nyxt" version))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags (list "nyxt" "NYXT_INTERNAL_QUICKLISP=false"
+     `(#:make-flags (list "nyxt" "NYXT_SUBMODULES=false"
                           (string-append "DESTDIR=" (assoc-ref %outputs "out"))
                           "PREFIX=")
        #:strip-binaries? #f             ; Stripping breaks SBCL binaries.
@@ -636,31 +646,36 @@ driven and does not detract you from your daily work.")
     (inputs
      `(("alexandria" ,sbcl-alexandria)
        ("bordeaux-threads" ,sbcl-bordeaux-threads)
+       ("cl-base64" ,sbcl-cl-base64)
        ("cl-calispel" ,sbcl-calispel)
        ("cl-containers" ,sbcl-cl-containers)
        ("cl-css" ,sbcl-cl-css)
        ("cl-custom-hash-table" ,sbcl-custom-hash-table)
        ("cl-html-diff" ,sbcl-cl-html-diff)
        ("cl-json" ,sbcl-cl-json)
-       ("cl-markup" ,sbcl-cl-markup)
        ("cl-ppcre" ,sbcl-cl-ppcre)
        ("cl-prevalence" ,sbcl-cl-prevalence)
+       ("cl-qrencode" ,sbcl-cl-qrencode)
        ("closer-mop" ,sbcl-closer-mop)
        ("cluffer" ,sbcl-cluffer)
        ("dexador" ,sbcl-dexador)
        ("enchant" ,sbcl-enchant)
+       ("flexi-streams" ,cl-flexi-streams)
        ("fset" ,sbcl-fset)
        ("hu.dwim.defclass-star" ,sbcl-hu.dwim.defclass-star)
        ("iolib" ,sbcl-iolib)
        ("local-time" ,sbcl-local-time)
        ("log4cl" ,sbcl-log4cl)
+       ("lparallel" ,sbcl-lparallel)
        ("mk-string-metrics" ,sbcl-mk-string-metrics)
        ("moptilities" ,sbcl-moptilities)
        ("named-readtables" ,sbcl-named-readtables)
        ("parenscript" ,sbcl-parenscript)
        ("plump" ,sbcl-plump)
+       ("clss" ,sbcl-clss)
        ("quri" ,sbcl-quri)
        ("serapeum" ,sbcl-serapeum)
+       ("spinneret" ,sbcl-spinneret)
        ("str" ,sbcl-cl-str)
        ("swank" ,sbcl-slime-swank)
        ("trivia" ,sbcl-trivia)
@@ -681,21 +696,15 @@ driven and does not detract you from your daily work.")
        ("gobject-introspection" ,gobject-introspection)))
     (synopsis "Extensible web-browser in Common Lisp")
     (home-page "https://nyxt.atlas.engineer")
-    (description "Nyxt is a keyboard-oriented, extensible web browser designed
-for power users.  Conceptually inspired by Emacs and Vim, it has familiar
-key-bindings (Emacs, vi, CUA), and is fully configurable in Common Lisp.")
+    (description "Nyxt is a keyboard-oriented, extensible web-browser designed
+for power users.  The application has familiar Emacs and VI key-bindings and
+is fully configurable and extensible in Common Lisp.")
     (license license:bsd-3)))
 
-(define-public next
-  (deprecated-package "next" nyxt))
-
-(define-public sbcl-next
-  (deprecated-package "sbcl-next" nyxt))
-
 (define-public lagrange
   (package
     (name "lagrange")
-    (version "1.5.2")
+    (version "1.9.2")
     (source
      (origin
        (method url-fetch)
@@ -703,20 +712,29 @@ key-bindings (Emacs, vi, CUA), and is fully configurable in Common Lisp.")
         (string-append "https://git.skyjake.fi/skyjake/lagrange/releases/"
                        "download/v" version "/lagrange-" version ".tar.gz"))
        (sha256
-        (base32 "0gqaipgs16kw711ijhshmbhhvlyjvh37wxdz059p4vvjhfrxbr1v"))))
+        (base32 "1j4r2c6f9fqc22f14fjh28s324kfbb9ahf08nv0xlazy1y5g7f6d"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; TODO: unbundle fonts.
+           (delete-file-recursively "lib/fribidi")
+           (delete-file-recursively "lib/harfbuzz")))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #false                  ;no tests
        #:configure-flags (list "-DTFDN_ENABLE_SSE41=OFF")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config zip))
     (inputs
-     `(("libunistring" ,libunistring)
-       ("mpg123" ,mpg123)
-       ("openssl" ,openssl)
-       ("pcre" ,pcre)
-       ("sdl2" ,sdl2)
-       ("zlib" ,zlib)))
+     (list fribidi
+           harfbuzz
+           libunistring
+           libwebp
+           mpg123
+           openssl
+           pcre
+           sdl2
+           zlib))
     (home-page "https://gmi.skyjake.fi/lagrange/")
     (synopsis "Graphical Gemini client")
     (description
@@ -724,6 +742,8 @@ key-bindings (Emacs, vi, CUA), and is fully configurable in Common Lisp.")
 modern conveniences familiar from web browsers, such as smooth scrolling,
 inline image viewing, multiple tabs, visual themes, Unicode fonts, bookmarks,
 history, and page outlines.")
+    (properties
+     '((release-monitoring-url . "https://git.skyjake.fi/gemini/lagrange/releases")))
     (license license:bsd-2)))
 
 (define-public gmni
@@ -746,10 +766,9 @@ history, and page outlines.")
        `(#:tests? #f ; no check target
          #:make-flags (list (string-append "CC=" ,(cc-for-target)))))
       (inputs
-       `(("openssl" ,openssl)))
+       (list openssl))
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("scdoc" ,scdoc)))
+       (list pkg-config scdoc))
       (home-page "https://sr.ht/~sircmpwn/gmni")
       (synopsis "Minimalist command line Gemini client")
       (description "The gmni package includes:
@@ -808,7 +827,7 @@ http, and https via third-party applications.")
 (define-public tinmop
   (package
     (name "tinmop")
-    (version "0.8.3")
+    (version "0.9.2")
     (source
      (origin
        (method git-fetch)
@@ -817,13 +836,17 @@ http, and https via third-party applications.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "117p1wxi5swmqw429qrswxz2zvp1dcaw2145gk6zxlgwln48qxl8"))))
+        (base32 "1cgx2g2kryfmcwqzzjzcpbdc6zzj10xc52gz0cj2dx5ylc0yg7k3"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("curl" ,curl)
+     `(("automake" ,automake)
+       ("autoreconf" ,autoconf)
        ("gettext" ,gnu-gettext)
-       ("gnupg" ,gnupg)
-       ("sbcl" ,sbcl)))
+       ("mandoc" , mandoc)
+       ("nano" ,nano)
+       ("openssl" ,openssl)
+       ("sbcl" ,sbcl)
+       ("xdg-utils" ,xdg-utils)))
     (inputs
      `(("access" ,sbcl-access)
        ("alexandria" ,sbcl-alexandria)
@@ -846,8 +869,6 @@ http, and https via third-party applications.")
        ("local-time" ,sbcl-local-time)
        ("log4cl" ,sbcl-log4cl)
        ("marshal" ,sbcl-marshal)
-       ("nano" ,nano)
-       ("openssl" ,openssl)
        ("osicat" ,sbcl-osicat)
        ("parse-number" ,sbcl-parse-number)
        ("percent-encoding" ,sbcl-percent-encoding)
@@ -855,8 +876,7 @@ http, and https via third-party applications.")
        ("sxql-composer" ,sbcl-sxql-composer)
        ("tooter" ,sbcl-tooter)
        ("unix-opts" ,sbcl-unix-opts)
-       ("usocket" ,sbcl-usocket)
-       ("xdg-utils" ,xdg-utils)))
+       ("usocket" ,sbcl-usocket)))
     (arguments
      `(#:tests? #f
        #:strip-binaries? #f
@@ -866,11 +886,24 @@ http, and https via third-party applications.")
            (lambda _
              (setenv "HOME" "/tmp")
              #t))
+         (add-after 'unpack 'fix-configure.ac
+           (lambda _
+              (delete-file "configure")
+              (substitute* "configure.ac"
+                (("AC_PATH_PROG.+CURL")
+                 "dnl")
+                (("AC_PATH_PROGS.+GIT")
+                 "dnl")
+                (("AC_PATH_PROG.+GPG")
+                 "dnl"))
+               #t))
          (add-after 'configure 'fix-asdf
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "Makefile.in"
                (("LISP_COMPILER) ")
-                "LISP_COMPILER) --eval \"(require 'asdf)\" --eval \"(push \\\"$$(pwd)/\\\" asdf:*central-registry*)\"  "))
+                (string-concatenate
+                 '("LISP_COMPILER) --eval \"(require 'asdf)\" "
+                   "--eval \"(push \\\"$$(pwd)/\\\" asdf:*central-registry*)\"  "))))
              #t)))))
     (synopsis "Gemini and pleroma client with a terminal interface")
     (description
@@ -882,14 +915,14 @@ interface.")
 (define-public telescope
   (package
     (name "telescope")
-    (version "0.5.1")
+    (version "0.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/omar-polo/telescope/releases/download/"
                            version "/telescope-" version ".tar.gz"))
        (sha256
-        (base32 "1fgv7gg2lwrjcihq6mkraqm10a6a7h430ikrjpcwfcpv1gvj8ckz"))))
+        (base32 "1hm9gi6yz62h8yh2br85bgycr2xaf5lr7z4gl0p25g7d7qb53ixd"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ;no tests
@@ -897,18 +930,44 @@ interface.")
      `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("libevent"  ,libevent)
-       ("libressl"  ,libressl)
-       ("ncurses"   ,ncurses)))
+     (list libevent libressl ncurses))
     (home-page "https://git.omarpolo.com/telescope/about/")
     (synopsis "Gemini client with a terminal interface")
     (description "Telescope is a w3m-like browser for Gemini.")
     (license license:x11)))
 
+(define-public leo
+  ;; PyPi only provides a wheel.
+  (let ((commit "88cc10a87afe2ec86be06e6ea2bcd099f5360b74")
+        (version "1.0.4")
+        (revision "1"))
+    (package
+      (name "leo")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/xyzshantaram/leo")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0jp4v4jw82qqynqqs7x35g5yvm1sd48cvbqh7j2r1ixw1z6ldhc4"))))
+      (build-system python-build-system)
+      (home-page "https://github.com/xyzshantaram/leo")
+      (synopsis "Gemini client written in Python")
+      (description
+       "@command{leo} is a gemini client written in Python with no external
+dependencies that fully implements the Gemini spec.  A list of URLs can be
+saved to a file for further viewing in another window.")
+      (license license:expat))))
+
 (define-public av-98
   (package
     (name "av-98")
     (version "1.0.1")
+    (properties
+     '((upstream-name . "AV-98")))
     (source
      (origin
        (method url-fetch)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index fe7ebd5e1b..fff7e48ba3 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -40,7 +40,7 @@
 ;;; Copyright © 2019, 2020 Florian Pelz <pelzflorian@pelzflorian.de>
 ;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020, 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2018, 2019, 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2020, 2021 Paul Garlick <pgarlick@tourbillion-technology.com>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
@@ -53,6 +53,7 @@
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
 ;;; Copyright © 2021 Jack Hill <jackhill@jackhill.us>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -242,8 +243,7 @@
                           "postcollector")))
              #t)))))
     (inputs
-     `(("http-parser" ,http-parser)
-       ("qtbase" ,qtbase-5)))
+     (list http-parser qtbase-5))
     (home-page "https://github.com/azadkuh/qhttp/")
     (synopsis "Qt-based HTTP Library")
     (description
@@ -254,20 +254,17 @@
 (define-public httpd
   (package
     (name "httpd")
-    (version "2.4.48")
+    (version "2.4.51")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://apache/httpd/httpd-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "0v4npxnvih5mlxx6dywwhhfs8xvgcckc0hxzwk3hi0g8nbkjdj0v"))))
+               "1x1qp10pfh33x1b56liwsjl0jamjm5lkk7j3lj87c1ygzs0ivq10"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pcre" ,pcre "bin")))       ;for 'pcre-config'
-    (inputs `(("apr" ,apr)
-              ("apr-util" ,apr-util)
-              ("openssl" ,openssl)
-              ("perl" ,perl))) ; needed to run bin/apxs
+    (native-inputs (list `(,pcre "bin")))       ;for 'pcre-config'
+    (inputs (list apr apr-util openssl perl)) ; needed to run bin/apxs
     (arguments
      `(#:test-target "test"
        #:configure-flags (list "--enable-rewrite"
@@ -350,9 +347,9 @@ Interface} specification.")
        #:cargo-development-inputs
        (("rust-assert-cmd" ,rust-assert-cmd-1))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (home-page "https://github.com/Y2Z/monolith")
     (synopsis "Command line tool for saving web pages as a single HTML file")
     (description
@@ -370,24 +367,20 @@ the same, being completely separated from the Internet.")
 (define-public nginx
   (package
     (name "nginx")
+    ;; Please update the nginx-documentation package together with this one!
     ;; Track the ‘mainline’ branch.  Upstream considers it more reliable than
     ;; ’stable’ and recommends that “in general you deploy the NGINX mainline
     ;; branch at all times” (https://www.nginx.com/blog/nginx-1-6-1-7-released/)
-    ;; Please update the nginx-documentation package together with this one!
-    (version "1.21.2")
+    (version "1.21.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://nginx.org/download/nginx-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "11ail85iw6mg8fxd2qnxhcghi0frjk5r70cfar83dms61rb1qxri"))))
+                "1ziv3xargxhxycd5hp6r3r5mww54nvvydiywcpsamg3i9r3jzxyi"))))
     (build-system gnu-build-system)
-    (inputs `(("libxml2" ,libxml2)
-              ("libxslt" ,libxslt)
-              ("openssl" ,openssl)
-              ("pcre" ,pcre)
-              ("zlib" ,zlib)))
+    (inputs (list libxml2 libxslt openssl pcre zlib))
     (arguments
      `(#:tests? #f                      ; no test target
        #:phases
@@ -476,9 +469,9 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
 
 (define-public nginx-documentation
   ;; This documentation should be relevant for the current nginx package.
-  (let ((version "1.21.2")
-        (revision 2764)
-        (changeset "bc9c5d11b67c"))
+  (let ((version "1.21.4")
+        (revision 2791)
+        (changeset "9385526a9b2d"))
     (package
       (name "nginx-documentation")
       (version (simple-format #f "~A-~A-~A" version revision changeset))
@@ -490,7 +483,7 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
                (file-name (string-append name "-" version))
                (sha256
                 (base32
-                 "05n72q9vqxx37dyw3yl7jssmpqkw3rwxa2y3m6s0c0ih0z2bx58n"))))
+                 "07v5vpwg2k4y1asbygmrvsk61l1vbdb2pyllc5k4hcjykg9avfza"))))
       (build-system gnu-build-system)
       (arguments
        '(#:tests? #f                    ; no test suite
@@ -518,9 +511,7 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
                  (copy-recursively "libxslt" output)
                  #t))))))
       (native-inputs
-       `(("libxml2" ,libxml2)
-         ("libxslt" ,libxslt)
-         ("nginx-xslscript" ,nginx-xslscript)))
+       (list libxml2 libxslt nginx-xslscript))
       (home-page "https://nginx.org")
       (synopsis "Documentation for the nginx web server")
       (description
@@ -809,7 +800,7 @@ programming language.")))
                  ;; 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")
-                         ;; This packages's LICENSE file would be
+                         ;; 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.
@@ -883,9 +874,8 @@ stream.  Remote control of the module is possible over HTTP.")
        ("pcre:bin" ,pcre "bin")
        ("zlib" ,zlib)))
     (native-inputs
-     `(("perl" ,perl) ; for tests
-       ("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list perl ; for tests
+           pkg-config which))
     (home-page "https://www.lighttpd.net/")
     (synopsis "Lightweight HTTP and reverse proxy server")
     (description
@@ -913,9 +903,7 @@ CGI, authentication, output compression, URL rewriting and many more.")
     ;; Parallel building is not supported.
     (arguments `(#:parallel-build? #f))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     ;; This is an archived fork of the original home page, www.fastcgi.com.
     (home-page "https://fastcgi-archives.github.io/")
     (synopsis "Language-independent, high-performant extension to CGI")
@@ -952,11 +940,9 @@ APIs.")
                ((" -Werror") ""))
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
-     `(("fcgi" ,fcgi)))
+     (list fcgi))
     (home-page "https://nginx.localdomain.pl/wiki/FcgiWrap")
     (synopsis "Simple server for running CGI applications over FastCGI")
     (description "Fcgiwrap is a simple server for running CGI applications
@@ -977,17 +963,15 @@ servers that may need it).")
         (base32 "1y1kn4929k299fbf6sw9lxcsdlq9fvq777p6yrzk591rr9xhkx8h"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-libwww" ,perl-libwww)
-       ("perl-module-build-tiny" ,perl-module-build-tiny)
-       ("perl-test-requires" ,perl-test-requires)))
+     (list perl-libwww perl-module-build-tiny perl-test-requires))
     (propagated-inputs
-     `(("perl-data-dump" ,perl-data-dump)
-       ("perl-http-date" ,perl-http-date)
-       ("perl-http-message" ,perl-http-message)
-       ("perl-http-parser-xs" ,perl-http-parser-xs)
-       ("perl-net-server" ,perl-net-server)
-       ("perl-plack" ,perl-plack)
-       ("perl-test-tcp" ,perl-test-tcp)))
+     (list perl-data-dump
+           perl-http-date
+           perl-http-message
+           perl-http-parser-xs
+           perl-net-server
+           perl-plack
+           perl-test-tcp))
     (home-page "https://metacpan.org/release/Starman")
     (synopsis "PSGI/Plack web server")
     (description "Starman is a PSGI perl web server that has unique features
@@ -1011,13 +995,12 @@ and UNIX socket support.")
     (arguments
      `(#:configure-flags
        (list  "--disable-plugin"         ;NPAPI plugins are obsolete nowadays.
-             (string-append "BIN_BASH=" (assoc-ref %build-inputs "bash")
-                            "/bin/bash")
+              (string-append "BIN_BASH="
+                             (search-input-file %build-inputs "/bin/bash"))
              (string-append "--with-jdk-home=" (assoc-ref %build-inputs "jdk")))))
     (outputs '("out" "doc"))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("zip" ,zip)))
+     (list pkg-config zip))
     (inputs
      `(("gtk+" ,gtk+)
        ("jdk" ,icedtea "jdk")))
@@ -1056,7 +1039,7 @@ data.")
 (define-public json-c
   (package
     (name "json-c")
-    (version "0.14")
+    (version "0.15")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -1064,8 +1047,7 @@ data.")
                    version ".tar.gz"))
              (sha256
               (base32
-               "0w381krr99q5a2rypx4g437fa7gzgl82i64sgnrs6g5jr44dwxxk"))
-              (patches (search-patches "json-c-CVE-2020-12762.patch"))))
+               "1im484iz08j3gmzpw07v16brwq46pxxj65i996kkp2vivcfhmn5q"))))
     (build-system cmake-build-system)
     (home-page "https://github.com/json-c/json-c/wiki")
     (synopsis "JSON implementation in C")
@@ -1188,7 +1170,7 @@ project)
          (add-before 'check 'render-offscreen
            (lambda _ (setenv "QT_QPA_PLATFORM" "offscreen") #t)))))
     (inputs
-     `(("qtbase" ,qtbase-5)))
+     (list qtbase-5))
     (home-page "http://qjson.sourceforge.net")
     (synopsis "Library that maps JSON data to QVariant objects")
     (description "QJson is a Qt-based library that maps JSON data to
@@ -1212,8 +1194,7 @@ instances, while JSON's objects will be mapped to @code{QVariantMap}.")
                 "1b2jdqs526ac635yb2whm049spcsk7almnnr6r5b4yqhq922anw3"))))
     (build-system gnu-build-system)
     (inputs
-     `(("qca" ,qca)
-       ("qtbase" ,qtbase-5)))
+     (list qca qtbase-5))
     (arguments
      '(#:tests? #f                      ;FIXME: some tests are failing
        #:phases
@@ -1351,9 +1332,7 @@ efficiently.  It gives the application developer no more than 4 methods.")
                (invoke (string-append (assoc-ref outputs "out") "/bin/ktImportText")
                        "ec.tsv")))))))
    (inputs
-    `(("curl" ,curl)
-      ("make" ,gnu-make)
-      ("perl" ,perl)))
+    (list curl gnu-make perl))
    (home-page "https://github.com/marbl/Krona/wiki")
    (synopsis "Hierarchical data exploration with zoomable HTML5 pie charts")
    (description
@@ -1453,9 +1432,8 @@ parser written in ANSI C and a small validating JSON generator.")
      ;; doesn't use 'add_test', and it's unclear how to run the test suite.
      '(#:tests? #f))
 
-    (native-inputs `(("perl" ,perl)))             ; to build the HTML doc
-    (inputs `(("zlib" ,zlib)
-              ("openssl" ,openssl)))
+    (native-inputs (list perl))             ; to build the HTML doc
+    (inputs (list zlib openssl))
     (synopsis "WebSockets library written in C")
     (description
      "Libwebsockets is a library that allows C programs to establish client
@@ -1525,8 +1503,7 @@ other systems that want to manipulate WebAssembly files.")
         (base32 "1ww4fhl8qf12hkv6jaild8zzsygdspxm1gqpk2f63gv1xfi31wpm"))
        (patches (search-patches "websocketpp-fix-for-cmake-3.15.patch"))))
     (build-system cmake-build-system)
-    (inputs `(("boost" ,boost)
-              ("openssl" ,openssl)))
+    (inputs (list boost openssl))
     (arguments '(#:configure-flags '("-DBUILD_TESTS=ON")
                  #:phases
                  (modify-phases %standard-phases
@@ -1562,12 +1539,12 @@ high performance.")
      ;; Parallel builds don't reliably succeed.
      `(#:parallel-build? #f))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("cunit" ,cunit)                 ; for tests
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("python-sphinx" ,python-sphinx)))
+     (list autoconf
+           automake
+           cunit ; for tests
+           libtool
+           pkg-config
+           python-sphinx))
     (home-page "https://tatsuhiro-t.github.io/wslay/")
     (synopsis "C WebSocket library")
     (description "@code{Wslay} is an event-based C library for the WebSocket
@@ -1596,8 +1573,7 @@ perform the opening handshake in HTTP.")
        ;; For tests.
        ("python" ,python-wrapper)))
     (inputs
-     `(("libidn2" ,libidn2)
-       ("libunistring" ,libunistring)))
+     (list libidn2 libunistring))
     (home-page "https://github.com/rockdaboot/libpsl")
     (synopsis "C library for the Publix Suffix List")
     (description
@@ -1644,9 +1620,7 @@ UTS#46.")
                       (setenv "AUTOMAKE" "automake --foreign")
                       (invoke "autoreconf" "-vfi"))))))
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("libtool" ,libtool)))
+     (list automake autoconf libtool))
     (synopsis "HTML validator and tidier")
     (description "HTML Tidy is a command-line tool and C library that can be
 used to validate and fix HTML data.")
@@ -1728,7 +1702,7 @@ and other data, for distribution on the web.")
              ;; (setenv "XML_DEBUG_CATALOG" "1")
              #t)))))
     (native-inputs
-     `(("perl" ,perl)))                 ; for tests
+     (list perl))                 ; for tests
     (home-page "https://tinyproxy.github.io/")
     (synopsis "Light-weight HTTP/HTTPS proxy daemon")
     (description "Tinyproxy is a light-weight HTTP/HTTPS proxy
@@ -1751,7 +1725,7 @@ unavailable.")
        (sha256
         (base32
          "05g09sg9qkkhnc2mxldm1w1xkxzs2ylybkjzs28w8ydbjc3pand2"))))
-    (native-inputs `(("texinfo" ,texinfo)))
+    (native-inputs (list texinfo))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -1789,10 +1763,9 @@ of people.")
      `(#:tests? #f)) ; FIXME: 2 out of 6 tests fail with "ImportError: No module
      ; named 'stubout'". The tests can be run by replacing the check phase with
      ; the command "python setup.py nosetests --verbosity=3".
-    (native-inputs `(; Required for tests:
-                     ("python-mox3" ,python-mox3)
-                     ("python-nose" ,python-nose)))
-    (propagated-inputs `(("python-numpy" ,python-numpy)))
+    (native-inputs (list ; Required for tests:
+                         python-mox3 python-nose))
+    (propagated-inputs (list python-numpy))
     (home-page "https://github.com/novnc/websockify")
     (synopsis "WebSockets support for any application/server")
     (description "Websockify translates WebSockets traffic to normal socket
@@ -1817,7 +1790,7 @@ directions.")
     (arguments
      `(#:configure-flags '("--with-gnutls")
        #:tests? #f))                         ; no test target
-    (native-inputs `(("flex" ,flex)))
+    (native-inputs (list flex))
     (inputs `(("gnutls" ,gnutls)
               ("libcrypt" ,libgcrypt)))
     (home-page "https://www.gedanken.org.uk/software/wwwoffle/")
@@ -1842,10 +1815,9 @@ changes, and much more.")
                 "07w1aq8y8wld43wmbk2q8134p3bfkp2vma78mmsfgw2jn1bh3xhd"))))
     (build-system gnu-build-system)
     (arguments '(#:configure-flags '("--enable-nss")))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (propagated-inputs
-     `(("curl" ,curl)
-       ("nss" ,nss)))
+     (list curl nss))
     (home-page "https://sourceforge.net/projects/liboauth")
     (synopsis "C library implementing the OAuth API")
     (description
@@ -1889,14 +1861,14 @@ parse media stream properties.")
        (sha256
         (base32 "00x9gbmzc5cns0gnfag0hsphcr3cb33vbbb9s7ppvvd6bxz2z1mm"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
-     `(("curl" ,curl)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("libquvi-scripts" ,libquvi-scripts)
-       ("lua" ,lua-5.1)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list curl
+           cyrus-sasl
+           libquvi-scripts
+           lua-5.1
+           openssl
+           zlib))
     (arguments
      ;; Lua provides no .pc file, so add CFLAGS/LIBS manually.
      '(#:configure-flags
@@ -1923,10 +1895,9 @@ URLs and extracting their actual media files.")
        (sha256
         (base32 "09lhl6dv5zpryasx7yjslfrcdcqlsbwapvd5lg7w6sm5x5n3k8ci"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
-     `(("curl" ,curl)
-       ("libquvi" ,libquvi)))
+     (list curl libquvi))
     (home-page "http://quvi.sourceforge.net/")
     (synopsis "Media stream URL parser")
     (description "quvi is a command-line-tool suite to extract media files
@@ -1947,13 +1918,11 @@ from streaming URLs.  It is a command-line wrapper for the libquvi library.")
         (base32 "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l"))))
     (build-system scons-build-system)
     (propagated-inputs
-     `(("apr" ,apr)
-       ("apr-util" ,apr-util)
-       ("openssl" ,openssl)))
+     (list apr apr-util openssl))
     (inputs
-     `(;; TODO: Fix build with gss.
-       ;;("gss" ,gss)
-       ("zlib" ,zlib)))
+     (list ;; TODO: Fix build with gss.
+           ;;("gss" ,gss)
+           zlib))
     (arguments
      `(#:scons-flags (list (string-append "APR=" (assoc-ref %build-inputs "apr"))
                            (string-append "APU=" (assoc-ref %build-inputs "apr-util"))
@@ -2034,9 +2003,7 @@ minimum to provide high performance operation.")
              (setenv "LIBSASS_VERSION" ,version)
              #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (home-page "https://sass-lang.com/libsass")
     (synopsis "SASS Compiler, implemented as a C/C++ library")
     (description
@@ -2087,7 +2054,7 @@ stylesheets, you'll need to use another program that uses this library,
              (setenv "SASSC_VERSION" ,version)
              #t)))))
     (inputs
-     `(("libsass" ,libsass)))
+     (list libsass))
     (synopsis "CSS pre-processor")
     (description "SassC is a compiler written in C for the CSS pre-processor
 language known as SASS.")
@@ -2101,21 +2068,16 @@ language known as SASS.")
     (inherit sassc)
     (name "sassc")
     (inputs
-     `(("libsass" ,
-        (package
-          (inherit libsass)
-          (name "libsass")
-          (version "3.5.5")
-          (source
-           (origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://github.com/sass/libsass")
-                   (commit version)))
-             (file-name (git-file-name name version))
-             (sha256
-              (base32
-               "0830pjcvhzxh6yixj82x5k5r1xnadjqzi16kp53213icbly0r9ma"))))))))
+     (list (package (inherit libsass)
+                    (name "libsass")
+                    (version "3.5.5")
+                    (source (origin (method git-fetch)
+                                    (uri (git-reference (url
+                                                             "https://github.com/sass/libsass")
+                                                        (commit version)))
+                                    (file-name (git-file-name name version))
+                                    (sha256 (base32
+                                                    "0830pjcvhzxh6yixj82x5k5r1xnadjqzi16kp53213icbly0r9ma")))))))
     (properties '((hidden? . #t)))))
 
 
@@ -2132,13 +2094,10 @@ language known as SASS.")
         (base32 "05xcl7j65vakx7x79jqjikyw0nzf60bc2w6hhc0q5sklxq1ral4l"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-http-message" ,perl-http-message)
-       ("perl-module-build-tiny" ,perl-module-build-tiny)
-       ("perl-test-mocktime" ,perl-test-mocktime)
-       ("perl-try-tiny" ,perl-try-tiny)
-       ("perl-uri" ,perl-uri)))
+     (list perl-http-message perl-module-build-tiny perl-test-mocktime
+           perl-try-tiny perl-uri))
     (propagated-inputs
-     `(("perl-posix-strftime-compiler" ,perl-posix-strftime-compiler)))
+     (list perl-posix-strftime-compiler))
     (arguments `(#:tests? #f))          ; TODO: Timezone test failures
     (home-page "https://metacpan.org/release/Apache-LogFormat-Compiler")
     (synopsis "Compile a log format string to perl-code")
@@ -2167,8 +2126,7 @@ to perl-code, for faster generation of access_log lines.")
            ;; versions of perl-authen-sasl.
            (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1") #t)))))
     (propagated-inputs
-     `(("perl-digest-hmac" ,perl-digest-hmac)
-       ("perl-gssapi" ,perl-gssapi)))
+     (list perl-digest-hmac perl-gssapi))
     (home-page "https://metacpan.org/release/Authen-SASL")
     (synopsis "SASL authentication framework")
     (description "Authen::SASL provides an SASL authentication framework.")
@@ -2189,12 +2147,9 @@ to perl-code, for faster generation of access_log lines.")
          "0j1rrld13cjk7ks92b5hv3xw4rfm2lvmksb4rlzd8mx0a0wj0rc5"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-http-request-ascgi" ,perl-http-request-ascgi)
-       ("perl-module-install" ,perl-module-install)))
+     (list perl-http-request-ascgi perl-module-install))
     (propagated-inputs
-     `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-data-visitor" ,perl-data-visitor)
-       ("perl-mro-compat" ,perl-mro-compat)))
+     (list perl-catalyst-runtime perl-data-visitor perl-mro-compat))
     (home-page "https://metacpan.org/release/Catalyst-Action-RenderView")
     (synopsis "Sensible default Catalyst action")
     (description "This Catalyst action implements a sensible default end
@@ -2214,20 +2169,19 @@ action, which will forward to the first available view.")
                 "086bykggzalbjfk0islac4b48g9s2ypj7y81d6ns1lq0aax1py6c"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-requires" ,perl-test-requires)
-       ("perl-module-install" ,perl-module-install)))
+     (list perl-test-requires perl-module-install))
     (propagated-inputs
-     `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-class-inspector" ,perl-class-inspector)
-       ("perl-config-general" ,perl-config-general)
-       ("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-moose" ,perl-moose)
-       ("perl-mro-compat" ,perl-mro-compat)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)
-       ("perl-params-validate" ,perl-params-validate)
-       ("perl-uri-find" ,perl-uri-find)
-       ("perl-xml-simple" ,perl-xml-simple)))
+     (list perl-catalyst-runtime
+           perl-class-inspector
+           perl-config-general
+           perl-cpanel-json-xs
+           perl-libwww
+           perl-moose
+           perl-mro-compat
+           perl-namespace-autoclean
+           perl-params-validate
+           perl-uri-find
+           perl-xml-simple))
     (home-page "https://metacpan.org/release/Catalyst-Action-REST")
     (synopsis "Automated REST Method Dispatching")
     (description "This Action handles doing automatic method dispatching for
@@ -2252,19 +2206,12 @@ regular method.")
          "0i5ja7690fs9nhxcij6lw51j804sm8s06m5mvk1n8pi8jljrymvw"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-catalyst-plugin-authorization-roles"
-        ,perl-catalyst-plugin-authorization-roles)
-       ("perl-catalyst-plugin-session-state-cookie"
-        ,perl-catalyst-plugin-session-state-cookie)
-       ("perl-dbd-sqlite" ,perl-dbd-sqlite)
-       ("perl-module-install" ,perl-module-install)
-       ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)))
+     (list perl-catalyst-plugin-authorization-roles
+           perl-catalyst-plugin-session-state-cookie perl-dbd-sqlite
+           perl-module-install perl-test-www-mechanize-catalyst))
     (propagated-inputs
-     `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-catalyst-plugin-authentication"
-        ,perl-catalyst-plugin-authentication)
-       ("perl-dbix-class" ,perl-dbix-class)
-       ("perl-catalyst-model-dbic-schema" ,perl-catalyst-model-dbic-schema)))
+     (list perl-catalyst-runtime perl-catalyst-plugin-authentication
+           perl-dbix-class perl-catalyst-model-dbic-schema))
     (home-page
      "https://metacpan.org/release/Catalyst-Authentication-Store-DBIx-Class")
     (synopsis "Storage class for Catalyst authentication using DBIx::Class")
@@ -2288,10 +2235,9 @@ DBIx::Class.")
          "0wfj4vnn2cvk6jh62amwlg050p37fcwdgrn9amcz24z6w4qgjqvz"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)))
+     (list perl-module-install))
     (propagated-inputs
-     `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-moose" ,perl-moose)))
+     (list perl-catalyst-runtime perl-moose))
     (home-page
      "https://metacpan.org/release/Catalyst-Component-InstancePerContext")
     (synopsis "Create only one instance of Moose component per context")
@@ -2312,24 +2258,23 @@ instance of a component on each request.")
         (base32 "1r8arq7sw37d0mjyfzkc3pg1a9plgydqbscryc8qpvba4swpljls"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-test-fatal))
     (propagated-inputs
-     `(("perl-catalyst-action-renderview" ,perl-catalyst-action-renderview)
-       ("perl-catalyst-plugin-configloader" ,perl-catalyst-plugin-configloader)
-       ("perl-catalyst-plugin-static-simple" ,perl-catalyst-plugin-static-simple)
-       ("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-config-general" ,perl-config-general)
-       ("perl-file-changenotify" ,perl-file-changenotify)
-       ("perl-file-copy-recursive" ,perl-file-copy-recursive)
-       ("perl-file-sharedir" ,perl-file-sharedir)
-       ("perl-module-install" ,perl-module-install)
-       ("perl-moose" ,perl-moose)
-       ("perl-moosex-emulate-class-accessor-fast"
-        ,perl-moosex-emulate-class-accessor-fast)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)
-       ("perl-namespace-clean" ,perl-namespace-clean)
-       ("perl-path-class" ,perl-path-class)
-       ("perl-template-toolkit" ,perl-template-toolkit)))
+     (list perl-catalyst-action-renderview
+           perl-catalyst-plugin-configloader
+           perl-catalyst-plugin-static-simple
+           perl-catalyst-runtime
+           perl-config-general
+           perl-file-changenotify
+           perl-file-copy-recursive
+           perl-file-sharedir
+           perl-module-install
+           perl-moose
+           perl-moosex-emulate-class-accessor-fast
+           perl-namespace-autoclean
+           perl-namespace-clean
+           perl-path-class
+           perl-template-toolkit))
     (home-page "https://metacpan.org/release/Catalyst-Devel")
     (synopsis "Catalyst Development Tools")
     (description "The Catalyst-Devel distribution includes a variety of
@@ -2354,12 +2299,10 @@ modules.")
          "06jq1lmpq88rmp9zik5gqczg234xac0hiyc3l698iif7zsgcyb80"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build) ;needs Module::Build >= 0.4004
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)
-       ("perl-catalyst-runtime" ,perl-catalyst-runtime)))
+     (list perl-module-build ;needs Module::Build >= 0.4004
+           perl-namespace-autoclean perl-catalyst-runtime))
     (propagated-inputs
-     `(("perl-moose" ,perl-moose)
-       ("perl-text-simpletable" ,perl-text-simpletable)))
+     (list perl-moose perl-text-simpletable))
     (home-page "https://metacpan.org/release/Catalyst-DispatchType-Regex")
     (synopsis "Regex DispatchType for Catalyst")
     (description "Dispatch type managing path-matching behaviour using
@@ -2385,31 +2328,28 @@ when the dispatch type is first seen in your application.")
           "1spfjcjc0b9dv3k2gbanqj1m1cqzyxb32p76dhdwizzpbvpi3a96"))))
   (build-system perl-build-system)
   (native-inputs
-   `(("perl-dbd-sqlite" ,perl-dbd-sqlite)
-     ("perl-module-install" ,perl-module-install)
-     ("perl-test-exception" ,perl-test-exception)
-     ("perl-test-requires" ,perl-test-requires)))
+   (list perl-dbd-sqlite perl-module-install perl-test-exception
+         perl-test-requires))
   (propagated-inputs
-   `(("perl-carp-clan" ,perl-carp-clan)
-     ("perl-catalyst-component-instancepercontext"
-      ,perl-catalyst-component-instancepercontext)
-     ("perl-catalyst-runtime" ,perl-catalyst-runtime)
-     ("perl-catalystx-component-traits" ,perl-catalystx-component-traits)
-     ("perl-dbix-class" ,perl-dbix-class)
-     ("perl-dbix-class-cursor-cached" ,perl-dbix-class-cursor-cached)
-     ("perl-dbix-class-schema-loader" ,perl-dbix-class-schema-loader)
-     ("perl-hash-merge" ,perl-hash-merge)
-     ("perl-list-moreutils" ,perl-list-moreutils)
-     ("perl-module-runtime" ,perl-module-runtime)
-     ("perl-moose" ,perl-moose)
-     ("perl-moosex-markasmethods" ,perl-moosex-markasmethods)
-     ("perl-moosex-nonmoose" ,perl-moosex-nonmoose)
-     ("perl-moosex-types" ,perl-moosex-types)
-     ("perl-moosex-types-loadableclass" ,perl-moosex-types-loadableclass)
-     ("perl-namespace-autoclean" ,perl-namespace-autoclean)
-     ("perl-namespace-clean" ,perl-namespace-clean)
-     ("perl-tie-ixhash" ,perl-tie-ixhash)
-     ("perl-try-tiny" ,perl-try-tiny)))
+   (list perl-carp-clan
+         perl-catalyst-component-instancepercontext
+         perl-catalyst-runtime
+         perl-catalystx-component-traits
+         perl-dbix-class
+         perl-dbix-class-cursor-cached
+         perl-dbix-class-schema-loader
+         perl-hash-merge
+         perl-list-moreutils
+         perl-module-runtime
+         perl-moose
+         perl-moosex-markasmethods
+         perl-moosex-nonmoose
+         perl-moosex-types
+         perl-moosex-types-loadableclass
+         perl-namespace-autoclean
+         perl-namespace-clean
+         perl-tie-ixhash
+         perl-try-tiny))
   (home-page "https://metacpan.org/release/Catalyst-Model-DBIC-Schema")
   (synopsis "DBIx::Class::Schema Model Class")
   (description "This is a Catalyst Model for DBIx::Class::Schema-based
@@ -2430,10 +2370,8 @@ Models.")
          "0811rj45q4v2y8wka3wb9d5m4vbyhcmkvddf2wz4x69awzjbhgc7"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-datetime" ,perl-datetime)
-       ("perl-moose" ,perl-moose)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
+     (list perl-catalyst-runtime perl-datetime perl-moose
+           perl-namespace-autoclean))
     (home-page "https://metacpan.org/release/Catalyst-Plugin-AccessLog")
     (synopsis "Request logging from within Catalyst")
     (description "This Catalyst plugin enables you to create \"access logs\"
@@ -2456,19 +2394,18 @@ for you.  It will work even with Catalyst debug logging turned off.")
          "0v6hb4r1wv3djrnqvnjcn3xx1scgqzx8nyjdg9lfc1ybvamrl0rn"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)))
+     (list perl-module-install))
     (propagated-inputs
-     `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
-       ("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-class-inspector" ,perl-class-inspector)
-       ("perl-moose" ,perl-moose)
-       ("perl-moosex-emulate-class-accessor-fast"
-        ,perl-moosex-emulate-class-accessor-fast)
-       ("perl-mro-compat" ,perl-mro-compat)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)
-       ("perl-string-rewriteprefix" ,perl-string-rewriteprefix)
-       ("perl-test-exception" ,perl-test-exception)
-       ("perl-try-tiny" ,perl-try-tiny)))
+     (list perl-catalyst-plugin-session
+           perl-catalyst-runtime
+           perl-class-inspector
+           perl-moose
+           perl-moosex-emulate-class-accessor-fast
+           perl-mro-compat
+           perl-namespace-autoclean
+           perl-string-rewriteprefix
+           perl-test-exception
+           perl-try-tiny))
     (home-page "https://metacpan.org/release/Catalyst-Plugin-Authentication")
     (synopsis "Infrastructure plugin for the Catalyst authentication framework")
     (description "The authentication plugin provides generic user support for
@@ -2492,14 +2429,10 @@ system authorises them to do).")
          "0l83lkwmq0lngwh8b1rv3r719pn8w1gdbyhjqm74rnd0wbjl8h7f"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)
-       ("perl-test-exception" ,perl-test-exception)))
+     (list perl-module-install perl-test-exception))
     (propagated-inputs
-     `(("perl-catalyst-plugin-authentication"
-        ,perl-catalyst-plugin-authentication)
-       ("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-set-object" ,perl-set-object)
-       ("perl-universal-isa" ,perl-universal-isa)))
+     (list perl-catalyst-plugin-authentication perl-catalyst-runtime
+           perl-set-object perl-universal-isa))
     (home-page
      "https://metacpan.org/release/Catalyst-Plugin-Authorization-Roles")
     (synopsis "Role-based authorization for Catalyst")
@@ -2521,10 +2454,8 @@ authorization for Catalyst based on Catalyst::Plugin::Authentication.")
          "0llyj3v5nx9cx46jdbbvxf1lc9s9cxq5ml22xmx3wkb201r5qgaa"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
-       ("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-gd-securityimage" ,perl-gd-securityimage)
-       ("perl-http-date" ,perl-http-date)))
+     (list perl-catalyst-plugin-session perl-catalyst-runtime
+           perl-gd-securityimage perl-http-date))
     (home-page "https://metacpan.org/release/Catalyst-Plugin-Captcha")
     (synopsis "Captchas for Catalyst")
     (description "This plugin creates and validates Captcha images for
@@ -2545,13 +2476,10 @@ Catalyst.")
         (base32 "0w8r3bbxqnlykvra6sx3sh3wh8ylkj914xg5ql6nw11ddy56jaly"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-path-class" ,perl-path-class)
-       ("perl-module-install" ,perl-module-install)))
+     (list perl-path-class perl-module-install))
     (propagated-inputs
-     `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-config-any" ,perl-config-any)
-       ("perl-data-visitor" ,perl-data-visitor)
-       ("perl-mro-compat" ,perl-mro-compat)))
+     (list perl-catalyst-runtime perl-config-any perl-data-visitor
+           perl-mro-compat))
     (home-page "https://metacpan.org/release/Catalyst-Plugin-ConfigLoader")
     (synopsis "Load config files of various types")
     (description "This module will attempt to load find and load configuration
@@ -2572,18 +2500,15 @@ formats.")
         (base32 "0a451997zc2vjx7rvndgx1ldbrpic8sfbddyvncynh0zr8bhlqc5"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)
-       ("perl-test-deep" ,perl-test-deep)
-       ("perl-test-exception" ,perl-test-exception)))
+     (list perl-module-install perl-test-deep perl-test-exception))
     (propagated-inputs
-     `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-moose" ,perl-moose)
-       ("perl-moosex-emulate-class-accessor-fast"
-        ,perl-moosex-emulate-class-accessor-fast)
-       ("perl-mro-compat" ,perl-mro-compat)
-       ("perl-namespace-clean" ,perl-namespace-clean)
-       ("perl-object-signature" ,perl-object-signature)
-       ("perl-test-www-mechanize-psgi" ,perl-test-www-mechanize-psgi)))
+     (list perl-catalyst-runtime
+           perl-moose
+           perl-moosex-emulate-class-accessor-fast
+           perl-mro-compat
+           perl-namespace-clean
+           perl-object-signature
+           perl-test-www-mechanize-psgi))
     (home-page "https://metacpan.org/release/Catalyst-Plugin-Session")
     (synopsis "Catalyst generic session plugin")
     (description "This plugin links the two pieces required for session
@@ -2605,13 +2530,10 @@ management in web applications together: the state, and the store.")
          "1rvxbfnpf9x2pc2zgpazlcgdlr2dijmxgmcs0m5nazs0w6xikssb"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)))
+     (list perl-module-install))
     (propagated-inputs
-     `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
-       ("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-moose" ,perl-moose)
-       ("perl-mro-compat" ,perl-mro-compat)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
+     (list perl-catalyst-plugin-session perl-catalyst-runtime perl-moose
+           perl-mro-compat perl-namespace-autoclean))
     (home-page
      "https://metacpan.org/release/Catalyst-Plugin-Session-State-Cookie")
     (synopsis "Maintain session IDs using cookies")
@@ -2636,13 +2558,12 @@ cookie mechanism.")
          "0x3j6zv3wr41jlwr6yb2jpmcx019ibyn11y8653ffnwhpzbpzsxs"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-cache-fastmmap" ,perl-cache-fastmmap)
-       ("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
-       ("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-moosex-emulate-class-accessor-fast"
-        ,perl-moosex-emulate-class-accessor-fast)
-       ("perl-mro-compat" ,perl-mro-compat)
-       ("perl-path-class" ,perl-path-class)))
+     (list perl-cache-fastmmap
+           perl-catalyst-plugin-session
+           perl-catalyst-runtime
+           perl-moosex-emulate-class-accessor-fast
+           perl-mro-compat
+           perl-path-class))
     (home-page
      "https://metacpan.org/release/Catalyst-Plugin-Session-Store-FastMmap")
     (synopsis "FastMmap session storage backend")
@@ -2665,11 +2586,9 @@ memory interprocess cache.  It is based on Cache::FastMmap.")
          "1b2ksz74cpigxqzf63rddar3vfmnbpwpdcbs11v0ml89pb8ar79j"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)))
+     (list perl-module-install))
     (propagated-inputs
-     `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-devel-stacktrace" ,perl-devel-stacktrace)
-       ("perl-mro-compat" ,perl-mro-compat)))
+     (list perl-catalyst-runtime perl-devel-stacktrace perl-mro-compat))
     (home-page "https://metacpan.org/release/Catalyst-Plugin-StackTrace")
     (synopsis "Stack trace on the Catalyst debug screen")
     (description "This plugin enhances the standard Catalyst debug screen by
@@ -2692,13 +2611,10 @@ number, file name, and code context surrounding the line number.")
          "0m4l627p2fvzr4i6sgdxhdvsx4wpa6qmaibsbxlg5x5yjs7k7drn"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)))
+     (list perl-module-install))
     (propagated-inputs
-     `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-mime-types" ,perl-mime-types)
-       ("perl-moose" ,perl-moose)
-       ("perl-moosex-types" ,perl-moosex-types)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
+     (list perl-catalyst-runtime perl-mime-types perl-moose
+           perl-moosex-types perl-namespace-autoclean))
     (home-page "https://metacpan.org/release/Catalyst-Plugin-Static-Simple")
     (synopsis "Simple serving of static pages")
     (description "The Static::Simple plugin is designed to make serving static
@@ -2724,45 +2640,40 @@ MIME type directly to the browser, without being processed through Catalyst.")
          "001yk1i0xwn4v308qx15nvnp6v9qfdigdlvz1rgw5zpnq7kwnq1a"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-test-fatal))
     (propagated-inputs
-     `(("perl-cgi-simple" ,perl-cgi-simple)
-       ("perl-cgi-struct" ,perl-cgi-struct)
-       ("perl-class-c3-adopt-next" ,perl-class-c3-adopt-next)
-       ("perl-class-date" ,perl-class-date)
-       ("perl-class-load" ,perl-class-load)
-       ("perl-data-dump" ,perl-data-dump)
-       ("perl-http-body" ,perl-http-body)
-       ("perl-http-message" ,perl-http-message)
-       ("perl-json-maybexs" ,perl-json-maybexs)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-module-pluggable" ,perl-module-pluggable)
-       ("perl-moose" ,perl-moose)
-       ("perl-moosex-emulate-class-accessor-fast"
-        ,perl-moosex-emulate-class-accessor-fast)
-       ("perl-moosex-getopt" ,perl-moosex-getopt)
-       ("perl-moosex-methodattributes" ,perl-moosex-methodattributes)
-       ("perl-namespace-clean" ,perl-namespace-clean)
-       ("perl-path-class" ,perl-path-class)
-       ("perl-perlio-utf8-strict" ,perl-perlio-utf8_strict)
-       ("perl-plack" ,perl-plack)
-       ("perl-plack-middleware-fixmissingbodyinredirect"
-        ,perl-plack-middleware-fixmissingbodyinredirect)
-       ("perl-plack-middleware-methodoverride"
-        ,perl-plack-middleware-methodoverride)
-       ("perl-plack-middleware-removeredundantbody"
-        ,perl-plack-middleware-removeredundantbody)
-       ("perl-plack-middleware-reverseproxy"
-        ,perl-plack-middleware-reverseproxy)
-       ("perl-plack-test-externalserver" ,perl-plack-test-externalserver)
-       ("perl-safe-isa" ,perl-safe-isa)
-       ("perl-string-rewriteprefix" ,perl-string-rewriteprefix)
-       ("perl-text-simpletable" ,perl-text-simpletable)
-       ("perl-tree-simple" ,perl-tree-simple)
-       ("perl-tree-simple-visitorfactory" ,perl-tree-simple-visitorfactory)
-       ("perl-try-tiny" ,perl-try-tiny)
-       ("perl-uri" ,perl-uri)
-       ("perl-uri-ws" ,perl-uri-ws)))
+     (list perl-cgi-simple
+           perl-cgi-struct
+           perl-class-c3-adopt-next
+           perl-class-date
+           perl-class-load
+           perl-data-dump
+           perl-http-body
+           perl-http-message
+           perl-json-maybexs
+           perl-libwww
+           perl-module-pluggable
+           perl-moose
+           perl-moosex-emulate-class-accessor-fast
+           perl-moosex-getopt
+           perl-moosex-methodattributes
+           perl-namespace-clean
+           perl-path-class
+           perl-perlio-utf8_strict
+           perl-plack
+           perl-plack-middleware-fixmissingbodyinredirect
+           perl-plack-middleware-methodoverride
+           perl-plack-middleware-removeredundantbody
+           perl-plack-middleware-reverseproxy
+           perl-plack-test-externalserver
+           perl-safe-isa
+           perl-string-rewriteprefix
+           perl-text-simpletable
+           perl-tree-simple
+           perl-tree-simple-visitorfactory
+           perl-try-tiny
+           perl-uri
+           perl-uri-ws))
     (home-page "https://metacpan.org/release/Catalyst-Runtime")
     (synopsis "The Catalyst Framework Runtime")
     (description "Catalyst is a modern framework for making web applications.
@@ -2786,14 +2697,10 @@ run an application on the web, either by doing them itself, or by letting you
          "02kir63d5cs2ipj3fn1qlmmx3gqi1xqzrxfr4pv5vjhjgsm0zgx7"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-catalystx-roleapplicator" ,perl-catalystx-roleapplicator)
-       ("perl-http-message" ,perl-http-message)
-       ("perl-module-install" ,perl-module-install)))
+     (list perl-catalyst-runtime perl-catalystx-roleapplicator
+           perl-http-message perl-module-install))
     (propagated-inputs
-     `(("perl-moose" ,perl-moose)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)
-       ("perl-uri" ,perl-uri)))
+     (list perl-moose perl-namespace-autoclean perl-uri))
     (home-page
      "https://metacpan.org/release/Catalyst-TraitFor-Request-ProxyBase")
     (synopsis "Replace request base with value passed by HTTP proxy")
@@ -2817,12 +2724,12 @@ replaced with the contents of the X-Request-Base header.")
          "1qgq6y9iwfbhbkbgpw9czang2ami6z8jk1zlagrzdisy4igqzkvs"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-module-install" ,perl-module-install)
-       ("perl-test-simple" ,perl-test-simple)
-       ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)
-       ("perl-text-csv" ,perl-text-csv)
-       ("perl-xml-simple" ,perl-xml-simple)))
+     (list perl-catalyst-runtime
+           perl-module-install
+           perl-test-simple
+           perl-test-www-mechanize-catalyst
+           perl-text-csv
+           perl-xml-simple))
     (home-page "https://metacpan.org/release/Catalyst-View-Download")
     (synopsis "Download data in many formats")
     (description "The purpose of this module is to provide a method for
@@ -2844,12 +2751,9 @@ table based report in a variety of formats (CSV, HTML, etc.).")
          "1v4xkzazs743sc7cd1kxkbi99cf00a4dadyyancckcbpi9p3znn5"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)
-       ("perl-yaml" ,perl-yaml)))
+     (list perl-module-install perl-yaml))
     (inputs
-     `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-json-maybexs" ,perl-json-maybexs)
-       ("perl-mro-compat" ,perl-mro-compat)))
+     (list perl-catalyst-runtime perl-json-maybexs perl-mro-compat))
     (home-page "https://metacpan.org/release/Catalyst-View-JSON")
     (synopsis "Catalyst JSON view")
     (description "Catalyst::View::JSON is a Catalyst View handler that returns
@@ -2869,13 +2773,13 @@ stash data in JSON format.")
       (base32 "0jzgpkgq5pwq82zlb0nykdyk40dfpsyn9ilz91d0wpixgi9i5pr8"))))
   (build-system perl-build-system)
   (propagated-inputs
-   `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-     ("perl-class-accessor" ,perl-class-accessor)
-     ("perl-data-dump" ,perl-data-dump)
-     ("perl-mro-compat" ,perl-mro-compat)
-     ("perl-path-class" ,perl-path-class)
-     ("perl-template-timer" ,perl-template-timer)
-     ("perl-template-toolkit" ,perl-template-toolkit)))
+   (list perl-catalyst-runtime
+         perl-class-accessor
+         perl-data-dump
+         perl-mro-compat
+         perl-path-class
+         perl-template-timer
+         perl-template-toolkit))
   (home-page "https://metacpan.org/release/Catalyst-View-TT")
   (synopsis "Template View Class")
   (description "This module is a Catalyst view class for the Template
@@ -2896,16 +2800,14 @@ Toolkit.")
          "0iq4ci8m6g2c4g01fvdl568y7pjz28f3widk986v3pyhr7ll8j88"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-moose" ,perl-moose)
-       ("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-moosex-methodattributes" ,perl-moosex-methodattributes)))
+     (list perl-moose perl-catalyst-runtime perl-moosex-methodattributes))
     (propagated-inputs
-     `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-class-load" ,perl-class-load)
-       ("perl-moose" ,perl-moose)
-       ("perl-moosex-traits-pluggable" ,perl-moosex-traits-pluggable)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)
-       ("perl-list-moreutils" ,perl-list-moreutils)))
+     (list perl-catalyst-runtime
+           perl-class-load
+           perl-moose
+           perl-moosex-traits-pluggable
+           perl-namespace-autoclean
+           perl-list-moreutils))
     (home-page "https://metacpan.org/release/CatalystX-Component-Traits")
     (synopsis "Trait Loading and Resolution for Catalyst Components")
     (description "Adds a \"COMPONENT\" in Catalyst::Component method to your
@@ -2929,9 +2831,7 @@ MooseX::Traits::Pluggable.")
          "0vwaapxn8g5hs2xp63c4dwv9jmapmji4272fakssvgc9frklg3p2"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-moose" ,perl-moose)
-       ("perl-moosex-relatedclassroles" ,perl-moosex-relatedclassroles)))
+     (list perl-catalyst-runtime perl-moose perl-moosex-relatedclassroles))
     (home-page "https://metacpan.org/release/CatalystX-RoleApplicator")
     (synopsis "Apply roles to Catalyst classes")
     (description "CatalystX::RoleApplicator applies roles to Catalyst
@@ -2953,13 +2853,10 @@ application classes.")
          "08jvibq4v8xjj0c3cr93h0w8w0c88ajwjn37xjy7ygxl9krlffp6"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)
-       ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)))
+     (list perl-module-install perl-test-www-mechanize-catalyst))
     (propagated-inputs
-     `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-moose" ,perl-moose)
-       ("perl-namespace-autoclean" ,perl-namespace-autoclean)
-       ("starman" ,starman)))
+     (list perl-catalyst-runtime perl-moose perl-namespace-autoclean
+           starman))
     (home-page "https://metacpan.org/release/CatalystX-Script-Server-Starman")
     (synopsis "Catalyst development server with Starman")
     (description "This module provides a Catalyst extension to replace the
@@ -2979,11 +2876,9 @@ development server with Starman.")
         (base32 "1bxrpxv95js8yinicminxdg41xvd85haj2gvlywg3zqdb66smqy8"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-deep" ,perl-test-deep)
-       ("perl-test-nowarnings" ,perl-test-nowarnings)
-       ("perl-test-warn" ,perl-test-warn)))
+     (list perl-test-deep perl-test-nowarnings perl-test-warn))
     (propagated-inputs
-     `(("perl-html-parser" ,perl-html-parser)))
+     (list perl-html-parser))
     (home-page "https://metacpan.org/release/CGI")
     (synopsis "Handle Common Gateway Interface requests and responses")
     (description "CGI.pm is a stable, complete and mature solution for
@@ -3007,7 +2902,7 @@ headers.")
         (base32
          "163ixq9kninqq094z2rnkg9pv3bcmvjphlww4vksfrzhq3h9pjdf"))))
     (build-system perl-build-system)
-    (inputs `(("perl-cgi" ,perl-cgi)))
+    (inputs (list perl-cgi))
     (home-page
      "https://metacpan.org/release/CGI-FormBuilder")
     (synopsis
@@ -3033,8 +2928,8 @@ form-based applications.")
          "1xsl2pz1jrh127pq0b01yffnj4mnp9nvkp88h5mndrscq9hn8xa6"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
-    (inputs `(("perl-cgi" ,perl-cgi)))
+     (list perl-module-build))
+    (inputs (list perl-cgi))
     (home-page
      "https://metacpan.org/release/CGI-Session")
     (synopsis
@@ -3057,10 +2952,8 @@ HTTP requests.")
         (base32 "13c7iwnnavky10ab87pi8jc1kqph03s0rhvj7myn7szhbfisc4gn"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-io-stringy" ,perl-io-stringy) ; for IO::Scalar
-       ("perl-module-build" ,perl-module-build)
-       ("perl-test-exception" ,perl-test-exception)
-       ("perl-test-nowarnings" ,perl-test-nowarnings)))
+     (list perl-io-stringy ; for IO::Scalar
+           perl-module-build perl-test-exception perl-test-nowarnings))
     (home-page "https://metacpan.org/release/CGI-Simple")
     (synopsis "CGI interface that is CGI.pm compliant")
     (description "CGI::Simple provides a relatively lightweight drop in
@@ -3082,7 +2975,7 @@ parameter parsing, file upload, cookie handling and header generation.")
          "0v4xq2qpryr7i6jngw1wpn8yr2kiib10yxp4aih90vfdznkqsgfi"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-deep" ,perl-test-deep)))
+     (list perl-test-deep))
     (home-page "https://metacpan.org/release/CGI-Struct")
     (synopsis "Build structures from CGI data")
     (description "This is a module for building structured data from CGI
@@ -3103,10 +2996,9 @@ inputs, in a manner reminiscent of how PHP does.")
          "0h6qqdg1yzqkdxp7hqlp0qa7d1y64nilgimxs79dys2ryjfpcknh"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-datetime" ,perl-datetime)
-       ("perl-http-date" ,perl-http-date)))
+     (list perl-datetime perl-http-date))
     (home-page "https://metacpan.org/release/DateTime-Format-HTTP")
     (synopsis "Date conversion routines")
     (description "This module provides functions that deal with the date
@@ -3127,7 +3019,7 @@ formats used by the HTTP protocol.")
          "060jzf45dlwysw5wsm7av1wvpl06xgk415kwwpvv89r6wda3md5d"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-libwww" ,perl-libwww)))
+     (list perl-libwww))
     (home-page "https://metacpan.org/release/Digest-MD5-File")
     (synopsis "MD5 sums for files and urls")
     (description "Digest::MD5::File is a Perl extension for getting MD5 sums
@@ -3180,10 +3072,7 @@ with Encode::decode(locale => $string).")
          (add-after 'unpack 'set-env
            (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1"))))))
     (inputs
-     `(("perl-class-errorhandler" ,perl-class-errorhandler)
-       ("perl-html-parser" ,perl-html-parser)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-uri" ,perl-uri)))
+     (list perl-class-errorhandler perl-html-parser perl-libwww perl-uri))
     (home-page "https://metacpan.org/release/Feed-Find")
     (synopsis "Syndication feed auto-discovery")
     (description "@code{Feed::Find} implements feed auto-discovery for finding
@@ -3205,7 +3094,7 @@ RSS 0.91, RSS 1.0, RSS 2.0, Atom.")
                "0vmzw1mhv580flzkla80gvwfpficnhlbqr1dnlf9x50bw7n18k62"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-http-date" ,perl-http-date)))
+     (list perl-http-date))
     (license license:perl-license)
     (synopsis "Perl directory listing parser")
     (description
@@ -3228,17 +3117,17 @@ which can be used to parse directory listings.")
                 "perl-finance-quote-unuse-mozilla-ca.patch"))))
    (build-system perl-build-system)
    (propagated-inputs
-    `(("perl-cgi" ,perl-cgi)
-      ("perl-datetime" ,perl-datetime)
-      ("perl-html-parser" ,perl-html-parser)
-      ("perl-html-tableextract" ,perl-html-tableextract)
-      ("perl-html-tree" ,perl-html-tree)
-      ("perl-http-cookies" ,perl-http-cookies)
-      ("perl-http-message" ,perl-http-message)
-      ("perl-json" ,perl-json)
-      ("perl-libwww" ,perl-libwww)
-      ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
-      ("perl-uri" ,perl-uri)))
+    (list perl-cgi
+          perl-datetime
+          perl-html-parser
+          perl-html-tableextract
+          perl-html-tree
+          perl-http-cookies
+          perl-http-message
+          perl-json
+          perl-libwww
+          perl-lwp-protocol-https
+          perl-uri))
    (home-page "https://metacpan.org/release/Finance-Quote")
    (synopsis "Stock and mutual fund quotes")
    (description
@@ -3283,7 +3172,7 @@ described in RFC 2744.")
          "0axknss8c368r5i082yhkfj8mq0w4nglfrpcxcayyzzj13qimvzk"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-html-tree" ,perl-html-tree)))
+     (list perl-html-tree))
     (home-page "https://metacpan.org/release/HTML-Element-Extended")
     (synopsis "Manipulate tables of HTML::Element")
     (description
@@ -3304,11 +3193,8 @@ composed of HTML::Element style components.")
         (base32 "14i4ldyvdvhdhvfhh9kiq6z853q2f84biq8vcpv1k5w2r80wdiin"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-html-parser" ,perl-html-parser)
-       ("perl-html-tagset" ,perl-html-tagset)
-       ("perl-http-message" ,perl-http-message)
-       ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
-       ("perl-uri" ,perl-uri)))
+     (list perl-html-parser perl-html-tagset perl-http-message
+           perl-lwp-mediatypes perl-uri))
     (home-page "https://metacpan.org/release/HTML-Form")
     (synopsis "Perl class representing an HTML form element")
     (description "Objects of the HTML::Form class represents a single HTML
@@ -3331,14 +3217,14 @@ composed of HTML::Element style components.")
          "06p7w4zd42b2yh541mlzyqj40lwmvvn3fyqi8big4mf34la7m2jm"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-cpan-meta" ,perl-test-cpan-meta)
-       ("perl-test-differences" ,perl-test-differences)
-       ("perl-test-eol" ,perl-test-eol)
-       ("perl-test-memory-cycle" ,perl-test-memory-cycle)
-       ("perl-test-notabs" ,perl-test-notabs)))
+     (list perl-module-build
+           perl-test-cpan-meta
+           perl-test-differences
+           perl-test-eol
+           perl-test-memory-cycle
+           perl-test-notabs))
     (inputs
-     `(("perl-html-parser" ,perl-html-parser)))
+     (list perl-html-parser))
     (home-page
      "https://metacpan.org/release/HTML-Scrubber")
     (synopsis
@@ -3360,9 +3246,7 @@ composed of HTML::Element style components.")
         (base32 "0lk02xpfxcg7ij4dvpsa4wjlzhmiizj0jfr3rwmdpbj69nvc93br"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-html-parser" ,perl-html-parser)
-       ("perl-html-tagset" ,perl-html-tagset)
-       ("perl-libwww" ,perl-libwww)))
+     (list perl-html-parser perl-html-tagset perl-libwww))
     (home-page "https://metacpan.org/release/HTML-Lint")
     (synopsis "Check for HTML errors in a string or file")
     (description "HTML::Lint is a pure-Perl HTML parser and checker for
@@ -3383,8 +3267,7 @@ syntactic legitmacy.")
          "01jimmss3q68a89696wmclvqwb2ybz6xgabpnbp6mm6jcni82z8a"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-html-element-extended" ,perl-html-element-extended)
-       ("perl-html-parser" ,perl-html-parser)))
+     (list perl-html-element-extended perl-html-parser))
     (home-page "https://metacpan.org/release/HTML-TableExtract")
     (synopsis "Extract contents from HTML tables")
     (description
@@ -3406,12 +3289,9 @@ in tables within an HTML document, either as text or encoded element trees.")
          "1gyvm4qlwm9y6hczkpnrdfl303ggbybr0nqxdjw09hii8yw4sdzh"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-module-build perl-test-fatal))
     (propagated-inputs
-     `(("perl-html-parser" ,perl-html-parser)
-       ("perl-html-tagset" ,perl-html-tagset)
-       ("perl-libwww" ,perl-libwww)))
+     (list perl-html-parser perl-html-tagset perl-libwww))
     (home-page "https://metacpan.org/release/HTML-Tree")
     (synopsis "Work with HTML in a DOM-like tree structure")
     (description "This distribution contains a suite of modules for
@@ -3432,8 +3312,7 @@ representing, creating, and extracting information from HTML syntax trees.")
                "12v05ywlnsi9lc17z32k9jxx3sj1viy7y1wpl7n4az76v7hwfa7c"))))
     (build-system perl-build-system)
     (inputs
-     `(("perl-html-tagset" ,perl-html-tagset)
-       ("perl-http-message" ,perl-http-message)))
+     (list perl-html-tagset perl-http-message))
     (license license:perl-license)
     (synopsis "Perl HTML parser class")
     (description
@@ -3476,7 +3355,7 @@ kinds of HTML parsing operations.")
                 "17qjw8swj2q4b1ic285pndgrkmvpsqw0j68nhqzpk1daydhsyiv5"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-cgi" ,perl-cgi)))
+     (list perl-cgi))
     (home-page "https://metacpan.org/release/HTML-Template")
     (synopsis "HTML-like templates")
     (description
@@ -3503,10 +3382,9 @@ you to separate design from the data.")
          "15vj488i62mdp4ps9k77h39prj70i7anb6b0j8nm7l9vbdc2q3gw"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-deep" ,perl-test-deep)))
+     (list perl-test-deep))
     (propagated-inputs
-     `(("perl-file-temp" ,perl-file-temp)
-       ("perl-http-message" ,perl-http-message))) ;For HTTP::Headers
+     (list perl-file-temp perl-http-message)) ;For HTTP::Headers
     (home-page "https://metacpan.org/release/HTTP-Body")
     (synopsis "HTTP Body Parser")
     (description "HTTP::Body parses chunks of HTTP POST data and supports
@@ -3527,13 +3405,9 @@ and multipart/form-data.")
         (base32 "0jk0ps4i67dhhhwaxwwa9nkv3n6n5w44xlnwyzvk59735pwvyjh0"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-deep" ,perl-test-deep)
-       ("perl-test-requires" ,perl-test-requires)
-       ("perl-time-mock" ,perl-time-mock)
-       ("perl-uri" ,perl-uri)))
+     (list perl-test-deep perl-test-requires perl-time-mock perl-uri))
     (inputs
-     `(("perl-time-local" ,perl-time-local)
-       ("perl-http-date" ,perl-http-date)))
+     (list perl-time-local perl-http-date))
     (home-page "https://metacpan.org/release/HTTP-CookieJar")
     (synopsis "Minimalist HTTP user agent cookie jar")
     (description "This module implements a minimalist HTTP user agent cookie
@@ -3554,7 +3428,7 @@ jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>.")
                "13rnz3233vbsfariya4njiyfaj6k94j6bvlyh3dmfmh24hpqgx77"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-http-message" ,perl-http-message)))
+     (list perl-http-message))
     (license license:perl-license)
     (synopsis "Perl HTTP cookie jars")
     (description
@@ -3577,8 +3451,7 @@ object knows about.")
                "1hmd2isrkilf0q0nkxms1q64kikjmcw9imbvrjgky6kh89vqdza3"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-http-message" ,perl-http-message)
-       ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)))
+     (list perl-http-message perl-lwp-mediatypes))
     (license license:perl-license)
     (synopsis "Perl simple http server class")
     (description
@@ -3621,7 +3494,7 @@ used by the HTTP protocol (and then some more).")
        (base32
         "0z77nflj8zdcfg70kc93glq5kmd6qxn2nf7h70x4xhfg25wkvr1q"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-cgi" ,perl-cgi)))
+    (native-inputs (list perl-cgi))
     (home-page "https://metacpan.org/release/HTTP-Lite")
     (synopsis "Lightweight HTTP implementation")
     (description "@code{HTTP::Lite} is a stand-alone lightweight
@@ -3650,13 +3523,10 @@ processing of request data as it arrives.")
                "04lih0fn89jpyk74c4aq1rzq18h8v4zd3x0lik2r9dl8sdqd2q6h"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-try-tiny" ,perl-try-tiny)))
+     (list perl-try-tiny))
     (propagated-inputs
-     `(("perl-encode-locale" ,perl-encode-locale)
-       ("perl-http-date" ,perl-http-date)
-       ("perl-io-html" ,perl-io-html)
-       ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
-       ("perl-uri" ,perl-uri)))
+     (list perl-encode-locale perl-http-date perl-io-html
+           perl-lwp-mediatypes perl-uri))
     (license license:perl-license)
     (synopsis "Perl HTTP style message")
     (description
@@ -3677,7 +3547,7 @@ processing of request data as it arrives.")
                "05p053vjs5g91v5cmjnny7a3xzddz5k7vnjw81wfh01ilqg9qwhw"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-http-message" ,perl-http-message)))
+     (list perl-http-message))
     (license license:perl-license)
     (synopsis "Perl http content negotiation")
     (description
@@ -3703,8 +3573,7 @@ fields in the request.")
          "0idwq3jk595xil65lmxz128ha7s3r2n5zknisddpgwnqrghs3igq"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-http-message" ,perl-http-message)
-       ("perl-uri" ,perl-uri)))
+     (list perl-http-message perl-uri))
     (home-page "https://metacpan.org/release/HTTP-Parser")
     (synopsis "Parse HTTP/1.1 requests")
     (description "This is an HTTP request parser.  It takes chunks of text as
@@ -3727,7 +3596,7 @@ supported.")
          "02d84xq1mm53c7jl33qyb7v5w4372vydp74z6qj0vc96wcrnhkkr"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)))
+     (list perl-module-install))
     (home-page "https://metacpan.org/release/HTTP-Parser-XS")
     (synopsis "Fast HTTP request parser")
     (description "HTTP::Parser::XS is a fast, primitive HTTP request/response
@@ -3748,8 +3617,7 @@ parser.")
          "1smwmiarwcgq7vjdblnb6ldi2x1s5sk5p15p7xvm5byiqq3znnwl"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-class-accessor" ,perl-class-accessor)
-       ("perl-http-message" ,perl-http-message)))
+     (list perl-class-accessor perl-http-message))
     (home-page "https://metacpan.org/release/HTTP-Request-AsCGI")
     (synopsis "Set up a CGI environment from an HTTP::Request")
     (description "This module provides a convenient way to set up a CGI
@@ -3770,7 +3638,7 @@ environment from an HTTP::Request.")
          "0k6bg7k6mjixfzxdkkdrhqvaqmdhjszx0zsk8g0bimiby6j9z4yq"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-cgi" ,perl-cgi)))
+     (list perl-cgi))
     (arguments
      ;; See the discussion of a related tests issue at
      ;; https://lists.gnu.org/archive/html/guix-devel/2015-01/msg00346.html
@@ -3805,11 +3673,8 @@ http-based UI to your existing tools.")
          "11wkxxqj3ff84rgj9q2gzkdgscwp3fzj205846k9ycqinlpsmgfx"))))
     (build-system perl-build-system)
     (inputs
-     `(("perl-http-cookiejar" ,perl-http-cookiejar)
-       ("perl-io-socket-ip" ,perl-io-socket-ip)
-       ("perl-io-socket-ssl" ,perl-io-socket-ssl)
-       ("perl-mozilla-ca" ,perl-mozilla-ca)
-       ("perl-net-ssleay" ,perl-net-ssleay)))
+     (list perl-http-cookiejar perl-io-socket-ip perl-io-socket-ssl
+           perl-mozilla-ca perl-net-ssleay))
     (home-page "https://metacpan.org/release/HTTP-Tiny")
     (synopsis "HTTP/1.1 client")
     (description "This is a very simple HTTP/1.1 client, designed for doing
@@ -3833,8 +3698,7 @@ It supports proxies and redirection.  It also correctly resumes after EINTR.")
          "199sa722amvwhq0czjfb7psj3hbqmvni5vxkrm579r5943pg0rax"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-file-which" ,perl-file-which)
-       ("perl-ipc-run3" ,perl-ipc-run3)))
+     (list perl-file-which perl-ipc-run3))
     (home-page "https://metacpan.org/release/HTTP-Tinyish")
     (synopsis "@code{HTTP::Tiny} compatible HTTP client wrappers")
     (description
@@ -3877,7 +3741,7 @@ algorithm specified in section 8.2.2.1 of the draft standard.")
        (sha256
         (base32 "0ihlpxrkq1xrvhnq52nhghanskic718ch8kpp642afgq72i4b6l4"))))
     (build-system perl-build-system)
-    (native-inputs `(("perl-module-build" ,perl-module-build)))
+    (native-inputs (list perl-module-build))
     (home-page "https://metacpan.org/release/IO-Socket-IP")
     (synopsis "Family-neutral IP socket supporting both IPv4 and IPv6")
     (description "This module provides a protocol-independent way to use IPv4
@@ -3897,9 +3761,9 @@ and IPv6 sockets, intended as a replacement for IO::Socket::INET.")
                 "1ycgzg1l7p07y5wc0vzgnj122vm51p5aqpi4s56pp0piaq0gq824"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-net-ssleay" ,perl-net-ssleay)
-       ;; for IDN support
-       ("perl-uri" ,perl-uri)))
+     (list perl-net-ssleay
+           ;; for IDN support
+           perl-uri))
     (synopsis "Nearly transparent SSL encapsulation for IO::Socket::INET")
     (description
      "IO::Socket::SSL makes using SSL/TLS much easier by wrapping the
@@ -3924,22 +3788,20 @@ select or poll.")
                "0869hn711d6fd6yil8p88wij6p1zdrbnycy7p9p176q39ajd7l61"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-needs" ,perl-test-needs)
-       ("perl-test-requiresinternet" ,perl-test-requiresinternet)))
+     (list perl-test-fatal perl-test-needs perl-test-requiresinternet))
     (propagated-inputs
-     `(("perl-encode-locale" ,perl-encode-locale)
-       ("perl-file-listing" ,perl-file-listing)
-       ("perl-html-parser" ,perl-html-parser)
-       ("perl-http-cookies" ,perl-http-cookies)
-       ("perl-http-daemon" ,perl-http-daemon)
-       ("perl-http-date" ,perl-http-date)
-       ("perl-http-message" ,perl-http-message)
-       ("perl-http-negotiate" ,perl-http-negotiate)
-       ("perl-net-http" ,perl-net-http)
-       ("perl-try-tiny" ,perl-try-tiny)
-       ("perl-uri" ,perl-uri)
-       ("perl-www-robotrules" ,perl-www-robotrules)))
+     (list perl-encode-locale
+           perl-file-listing
+           perl-html-parser
+           perl-http-cookies
+           perl-http-daemon
+           perl-http-date
+           perl-http-message
+           perl-http-negotiate
+           perl-net-http
+           perl-try-tiny
+           perl-uri
+           perl-www-robotrules))
     (license license:perl-license)
     (synopsis "Perl modules for the WWW")
     (description
@@ -3966,10 +3828,9 @@ help you implement simple HTTP servers.")
          "176f6vbk1018i0y7xj9d406ndbjgwzan2j9nihxnsahzg2vr2vz2"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-libwww" ,perl-libwww)
-       ("perl-uri" ,perl-uri)))
+     (list perl-libwww perl-uri))
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)))
+     (list perl-module-install))
     (home-page "https://metacpan.org/release/LWP-Online")
     (synopsis "Checks whether your process has access to the web")
     (description "This module attempts to answer, as accurately as it can, one
@@ -3994,7 +3855,7 @@ not have DNS.  We might not have a network card at all!")
                "1n8rg6csv3dsvymg06cmxipimr6cb1g9r903ghm1qsmiv89cl6wg"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-fatal" ,perl-test-fatal)))
+     (list perl-test-fatal))
     (license license:perl-license)
     (synopsis "Perl module to guess the media type for a file or a URL")
     (description
@@ -4018,12 +3879,9 @@ exists it is used instead.")
     (build-system perl-build-system)
     (native-inputs
      ;; For tests.
-     `(("perl-test-requiresinternet" ,perl-test-requiresinternet)))
+     (list perl-test-requiresinternet))
     (propagated-inputs
-     `(("perl-io-socket-ssl" ,perl-io-socket-ssl)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-mozilla-ca" ,perl-mozilla-ca)
-       ("perl-net-http" ,perl-net-http)))
+     (list perl-io-socket-ssl perl-libwww perl-mozilla-ca perl-net-http))
     (home-page "https://metacpan.org/release/LWP-Protocol-https")
     (synopsis "HTTPS support for LWP::UserAgent")
     (description "The LWP::Protocol::https module provides support for using
@@ -4044,7 +3902,7 @@ https schemed URLs with LWP.")
          "1hw7wy7f82kl61xjwkgmhv1ixgg56dhgfr45wxn6ahc0qys5mkix"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-libwww" ,perl-libwww)))
+     (list perl-libwww))
     (home-page "https://metacpan.org/release/LWP-UserAgent-Cached")
     (synopsis "Simple caching for LWP::UserAgent")
     (description "LWP::UserAgent::Cached is an LWP::UserAgent subclass with
@@ -4066,7 +3924,7 @@ instead of making an HTTP request.")
          "0lyvbpjng7yfvyha9rp2y2c6liz5hhplmd2grc8jlsfkih7dbn06"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-libwww" ,perl-libwww)))
+     (list perl-libwww))
     (home-page "https://metacpan.org/release/LWP-UserAgent-Determined")
     (synopsis "Virtual browser that retries errors")
     (description "LWP::UserAgent::Determined works just like LWP::UserAgent,
@@ -4090,10 +3948,10 @@ and retry a few times.")
         "0gfhw3jbs25yya2dryv8xvyn9myngcfcmsybj7gkq62fnznil16c"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-libwww" ,perl-libwww)
-       ;; Users should instead make sure SSL_ca_path is set properly.
-       ;; ("perl-mozilla-ca" ,perl-mozilla-ca)
-       ("perl-net-dns" ,perl-net-dns)))
+     (list perl-libwww
+           ;; Users should instead make sure SSL_ca_path is set properly.
+           ;; ("perl-mozilla-ca" ,perl-mozilla-ca)
+           perl-net-dns))
     (home-page "https://metacpan.org/release/LWPx-ParanoidAgent")
     (synopsis "Security enhanced subclass of LWP::UserAgent")
     (description "@code{LWPx::ParanoidAgent} is a class subclassing
@@ -4120,28 +3978,26 @@ is limited to http and https.")
                  "perl-net-amazon-s3-moose-warning.patch"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-libwww" ,perl-libwww)
-       ("perl-test-exception" ,perl-test-exception)))
+     (list perl-libwww perl-test-exception))
     (propagated-inputs
-     `(("perl-data-stream-bulk" ,perl-data-stream-bulk)
-       ("perl-datetime-format-http" ,perl-datetime-format-http)
-       ("perl-digest-hmac" ,perl-digest-hmac)
-       ("perl-digest-md5-file" ,perl-digest-md5-file)
-       ("perl-file-find-rule" ,perl-file-find-rule)
-       ("perl-http-date" ,perl-http-date)
-       ("perl-http-message" ,perl-http-message)
-       ("perl-lwp-useragent-determined" ,perl-lwp-useragent-determined)
-       ("perl-mime-types" ,perl-mime-types)
-       ("perl-moose" ,perl-moose)
-       ("perl-moosex-strictconstructor" ,perl-moosex-strictconstructor)
-       ("perl-moosex-types-datetime-morecoercions"
-        ,perl-moosex-types-datetime-morecoercions)
-       ("perl-path-class" ,perl-path-class)
-       ("perl-regexp-common" ,perl-regexp-common)
-       ("perl-term-encoding" ,perl-term-encoding)
-       ("perl-term-progressbar-simple" ,perl-term-progressbar-simple)
-       ("perl-uri" ,perl-uri)
-       ("perl-xml-libxml" ,perl-xml-libxml)))
+     (list perl-data-stream-bulk
+           perl-datetime-format-http
+           perl-digest-hmac
+           perl-digest-md5-file
+           perl-file-find-rule
+           perl-http-date
+           perl-http-message
+           perl-lwp-useragent-determined
+           perl-mime-types
+           perl-moose
+           perl-moosex-strictconstructor
+           perl-moosex-types-datetime-morecoercions
+           perl-path-class
+           perl-regexp-common
+           perl-term-encoding
+           perl-term-progressbar-simple
+           perl-uri
+           perl-xml-libxml))
     (home-page "https://metacpan.org/release/Net-Amazon-S3")
     (synopsis "Perl interface to Amazon S3")
     (description "This module provides a Perlish interface to Amazon S3.")
@@ -4161,8 +4017,7 @@ is limited to http and https.")
                "1i7fk6q1iaxzgf82mjd5hg77hvy7dbb79488cijg16dyfrds6nip"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-io-socket-ssl" ,perl-io-socket-ssl)
-       ("perl-uri" ,perl-uri)))
+     (list perl-io-socket-ssl perl-uri))
     (license license:perl-license)
     (synopsis "Perl low-level HTTP connection (client)")
     (description
@@ -4213,7 +4068,7 @@ or to multiple server ports.")
          "001a6dcfahf7kkyirqkc8jd4fh4fkal7n7vm9c4dblqrvmdc8abv"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-io-socket-ssl" ,perl-io-socket-ssl)))
+     (list perl-io-socket-ssl))
     (home-page "https://metacpan.org/release/Net-SMTP-SSL")
     (synopsis "SSL support for Net::SMTP")
     (description "SSL support for Net::SMTP.")
@@ -4233,22 +4088,21 @@ or to multiple server ports.")
          "081jg0xddzpg2anmqi9i6d7vs6c8z7k557bf8xl6vgb3h95pin5w"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-requires" ,perl-test-requires)
-       ("perl-file-sharedir-install" ,perl-file-sharedir-install)))
+     (list perl-test-requires perl-file-sharedir-install))
     (propagated-inputs
-     `(("perl-apache-logformat-compiler" ,perl-apache-logformat-compiler)
-       ("perl-devel-stacktrace" ,perl-devel-stacktrace)
-       ("perl-devel-stacktrace-ashtml" ,perl-devel-stacktrace-ashtml)
-       ("perl-file-sharedir" ,perl-file-sharedir)
-       ("perl-hash-multivalue" ,perl-hash-multivalue)
-       ("perl-http-body" ,perl-http-body)
-       ("perl-http-message" ,perl-http-message)
-       ("perl-http-tiny" ,perl-http-tiny)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-stream-buffered" ,perl-stream-buffered)
-       ("perl-test-tcp" ,perl-test-tcp)
-       ("perl-try-tiny" ,perl-try-tiny)
-       ("perl-uri" ,perl-uri)))
+     (list perl-apache-logformat-compiler
+           perl-devel-stacktrace
+           perl-devel-stacktrace-ashtml
+           perl-file-sharedir
+           perl-hash-multivalue
+           perl-http-body
+           perl-http-message
+           perl-http-tiny
+           perl-libwww
+           perl-stream-buffered
+           perl-test-tcp
+           perl-try-tiny
+           perl-uri))
     (home-page "https://metacpan.org/release/Plack")
     (synopsis "Perl Superglue for Web frameworks and servers (PSGI toolkit)")
     (description "Plack is a set of tools for using the PSGI stack.  It
@@ -4272,10 +4126,9 @@ WSGI.")
          "0xf2visi16hgwgyp9q0cjr10ikbn474hjia5mj8mb2scvbkrbni8"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)
-       ("perl-test-requires" ,perl-test-requires)))
+     (list perl-module-install perl-test-requires))
     (propagated-inputs
-     `(("perl-plack" ,perl-plack)))
+     (list perl-plack))
     (home-page "https://metacpan.org/release/Plack-Middleware-Deflater")
     (synopsis "Compress response body with Gzip or Deflate")
     (description
@@ -4301,9 +4154,8 @@ servers.")
          "14dkrmccq7a5vpymx5dv8032gfcvhsw2i6v5sh3c4ym5ymlx08kc"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-html-parser" ,perl-html-parser) ;for HTML::Entities
-       ("perl-http-message" ,perl-http-message)
-       ("perl-plack" ,perl-plack)))     ;for Plack::Test
+     (list perl-html-parser ;for HTML::Entities
+           perl-http-message perl-plack))     ;for Plack::Test
     (home-page
      "https://metacpan.org/release/Plack-Middleware-FixMissingBodyInRedirect")
     (synopsis "Plack::Middleware which sets body for redirect response")
@@ -4325,9 +4177,9 @@ already set.")
         (base32 "1wdmmav3rbhv49zpw311zrxxqmg1fz3f3q9src0ypgs8zcp5myyv"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-plack" ,perl-plack)))
+     (list perl-plack))
     (home-page "https://metacpan.org/release/Plack-Middleware-MethodOverride")
     (synopsis "Override REST methods to Plack apps via POST")
     (description "This middleware allows for POST requests that pretend to be
@@ -4350,7 +4202,7 @@ can say what method it actually meant.")
         (base32 "0zh83001rn5aqwpc1pn3di2h3ibzlf2dvkmkv05hnadpss9mzm40"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-plack" ,perl-plack)))
+     (list perl-plack))
     (home-page
      "https://metacpan.org/release/Plack-Middleware-RemoveRedundantBody")
     (synopsis "Plack::Middleware which removes body for HTTP response")
@@ -4372,9 +4224,9 @@ required.")
         (base32 "0a512n62pnk5ayj3zdzyj50iy1qi8nwh6ygks2h7nrh7gp9k2jc7"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)))
+     (list perl-module-install))
     (propagated-inputs
-     `(("perl-plack" ,perl-plack)))
+     (list perl-plack))
     (home-page "https://metacpan.org/release/Plack-Middleware-ReverseProxy")
     (synopsis "Supports app to run as a reverse proxy backend")
     (description "Plack::Middleware::ReverseProxy resets some HTTP headers,
@@ -4395,7 +4247,7 @@ and stop fake requests using @code{enable_if} directive in your app.psgi.")
         (base32 "1l1yj1l25679x7cbpd27ii7s1f1ajpkspif9xqnl21hczrbmrbsv"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-plack" ,perl-plack)))
+     (list perl-plack))
     (home-page "https://metacpan.org/release/Plack-Test-ExternalServer")
     (synopsis "Run HTTP tests on external live servers")
     (description "This module allows your to run your Plack::Test tests
@@ -4416,7 +4268,7 @@ either mocked HTTP or a locally spawned server.")
         (base32 "0mvv9rqwrwlcfh8qrs0s47p85rhlnw15d4gbpyi802bddp0c6lry"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-test-sharedfork" ,perl-test-sharedfork)))
+     (list perl-test-sharedfork))
     (arguments `(#:tests? #f))          ;related to signaling in t/05_sigint.t
     (home-page "https://metacpan.org/release/Test-TCP")
     (synopsis "Testing TCP programs")
@@ -4436,13 +4288,13 @@ either mocked HTTP or a locally spawned server.")
         (base32 "1jsywlbxhqw39ij7s8vmgff5vys58vlfaq27072awacnxc65aal4"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-carp-assert-more" ,perl-carp-assert-more)
-       ("perl-html-form" ,perl-html-form)
-       ("perl-html-lint" ,perl-html-lint)
-       ("perl-http-server-simple" ,perl-http-server-simple)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-test-longstring" ,perl-test-longstring)
-       ("perl-www-mechanize" ,perl-www-mechanize)))
+     (list perl-carp-assert-more
+           perl-html-form
+           perl-html-lint
+           perl-http-server-simple
+           perl-libwww
+           perl-test-longstring
+           perl-www-mechanize))
     (home-page "https://metacpan.org/release/Test-WWW-Mechanize")
     (synopsis "Testing-specific WWW::Mechanize subclass")
     (description "Test::WWW::Mechanize is a subclass of the Perl module
@@ -4462,21 +4314,20 @@ WWW::Mechanize that incorporates features for web application testing.")
         (base32 "1cdc2q16vs6fb335pzaislz2rx1ph9acaxyp7v5hv9xbwwddwfqq"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
-       ("perl-catalyst-plugin-session-state-cookie"
-        ,perl-catalyst-plugin-session-state-cookie)
-       ("perl-module-install" ,perl-module-install)
-       ("perl-test-exception" ,perl-test-exception)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-utf8" ,perl-test-utf8)))
+     (list perl-catalyst-plugin-session
+           perl-catalyst-plugin-session-state-cookie
+           perl-module-install
+           perl-test-exception
+           perl-test-pod
+           perl-test-utf8))
     (propagated-inputs
-     `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
-       ("perl-class-load" ,perl-class-load)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-moose" ,perl-moose)
-       ("perl-namespace-clean" ,perl-namespace-clean)
-       ("perl-test-www-mechanize" ,perl-test-www-mechanize)
-       ("perl-www-mechanize" ,perl-www-mechanize)))
+     (list perl-catalyst-runtime
+           perl-class-load
+           perl-libwww
+           perl-moose
+           perl-namespace-clean
+           perl-test-www-mechanize
+           perl-www-mechanize))
     (home-page "https://metacpan.org/release/Test-WWW-Mechanize-Catalyst")
     (synopsis "Test::WWW::Mechanize for Catalyst")
     (description "The Test::WWW::Mechanize::Catalyst module meshes the
@@ -4498,10 +4349,9 @@ testing of Catalyst applications without needing to start up a web server.")
          "0fsh2i05kf1kfavv2r9kmnjl7qlyqrd11ikc0qcqzzxsqzzjkg9r"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-pod" ,perl-test-pod)))
+     (list perl-test-pod))
     (propagated-inputs
-     `(("perl-plack" ,perl-plack)
-       ("perl-test-www-mechanize" ,perl-test-www-mechanize)))
+     (list perl-plack perl-test-www-mechanize))
     (home-page "https://metacpan.org/release/Test-WWW-Mechanize-PSGI")
     (synopsis "Test PSGI programs using WWW::Mechanize")
     (description "PSGI is a specification to decouple web server environments
@@ -4525,7 +4375,7 @@ applications.")
     (build-system perl-build-system)
     (native-inputs
      ;; For tests.
-     `(("perl-test-needs" ,perl-test-needs)))
+     (list perl-test-needs))
     (license license:perl-license)
     (synopsis "Perl Uniform Resource Identifiers (absolute and relative)")
     (description
@@ -4537,21 +4387,19 @@ and updated by RFC 2732.")
 (define-public perl-uri-fetch
   (package
     (name "perl-uri-fetch")
-    (version "0.13")
+    (version "0.15")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
                                   "URI-Fetch-" version ".tar.gz"))
               (sha256
                (base32
-                "0rw6xiqm70s218aii9id3hf8j3pz6n22xnwd8v9m1ff2bnh63c0d"))))
+                "0355rnw3xbgfwy9fgs6zrjmrsychzmwpkc9jcd9mrbkd9kr3k7rp"))))
     (build-system perl-build-system)
     (arguments
      `(#:tests? #f)) ; Tests require internet connection to succeed
     (inputs
-     `(("perl-class-errorhandler" ,perl-class-errorhandler)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-uri" ,perl-uri)))
+     (list perl-class-errorhandler perl-libwww perl-uri))
     (home-page "https://metacpan.org/release/URI-Fetch")
     (synopsis "Smart URI fetching/caching")
     (description "@code{URI::Fetch} is a smart client for fetching HTTP pages,
@@ -4573,9 +4421,9 @@ and time-saving way.")
          "1mk3jv8x0mcq3ajrn9garnxd0jc7sw4pkwqi88r5apqvlljs84z2"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-uri" ,perl-uri)))
+     (list perl-uri))
     (home-page "https://metacpan.org/release/URI-Find")
     (synopsis "Find URIs in arbitrary text")
     (description "This module finds URIs and URLs (according to what URI.pm
@@ -4598,7 +4446,7 @@ URI::Find::Schemeless.  For a command-line interface, urifind is provided.")
          "1vs1wm80sq685944g1l4a0fxcbccc00c0f9648yabdmcf90hwsvf"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-uri" ,perl-uri)))
+     (list perl-uri))
     (home-page "https://metacpan.org/release/URI-ws")
     (synopsis "WebSocket support for URI package")
     (description "With this module, the URI package provides the same set of
@@ -4618,12 +4466,10 @@ methods for WebSocket URIs as it does for HTTP URIs.")
                 "1phibcmam2hklrddzj79l43va1gcqpyszbw21ynxq53ynmhjvbk8"))))
     (build-system perl-build-system)
     (inputs
-     `(("perl-uri" ,perl-uri)))
+     (list perl-uri))
     (native-inputs
-     `(("perl-test-pod-coverage" ,perl-test-pod-coverage)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-module-install" ,perl-module-install)
-       ("perl-json" ,perl-json)))
+     (list perl-test-pod-coverage perl-test-pod perl-module-install
+           perl-json))
     (home-page "https://metacpan.org/release/URI-Template")
     (synopsis "Object for handling URI templates")
     (description "This perl module provides a wrapper around URI templates as described in
@@ -4656,8 +4502,8 @@ RFC 6570.")
                                               (getenv "PERL5LIB")))
                        #t)))))
     (native-inputs
-     `(("perl-module-install" ,perl-module-install)))
-    (inputs `(("curl" ,curl)))
+     (list perl-module-install))
+    (inputs (list curl))
     (synopsis "Perl extension interface for libcurl")
     (description
      "This is a Perl extension interface for the libcurl file downloading
@@ -4678,20 +4524,17 @@ library.")
         (base32 "0cb14m1vhaf0mgn2fqwi5hm72xhfi77hpq2g57swgy0w83x7m27b"))))
     (build-system perl-build-system)
     (native-inputs                      ;only for tests
-     `(("perl-cgi" ,perl-cgi)
-       ("perl-test-deep" ,perl-test-deep)
-       ("perl-test-fatal" ,perl-test-fatal)
-       ("perl-test-output" ,perl-test-output)
-       ("perl-test-warnings" ,perl-test-warnings)))
+     (list perl-cgi perl-test-deep perl-test-fatal perl-test-output
+           perl-test-warnings))
     (propagated-inputs
-     `(("perl-html-form" ,perl-html-form)
-       ("perl-html-parser" ,perl-html-parser)
-       ("perl-html-tree" ,perl-html-tree)
-       ("perl-http-message" ,perl-http-message)
-       ("perl-http-server-simple" ,perl-http-server-simple)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-test-warn" ,perl-test-warn)
-       ("perl-uri" ,perl-uri)))
+     (list perl-html-form
+           perl-html-parser
+           perl-html-tree
+           perl-http-message
+           perl-http-server-simple
+           perl-libwww
+           perl-test-warn
+           perl-uri))
     (home-page "https://metacpan.org/release/WWW-Mechanize")
     (synopsis "Web browsing in a Perl object")
     (description "WWW::Mechanize is a Perl module for stateful programmatic
@@ -4711,24 +4554,24 @@ web browsing, used for automating interaction with websites.")
                 "1yxplx1q1qk2fvnzqrbk01lz26fy1lyhay51a3ky7q3jgh9p01rb"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-class-errorhandler" ,perl-class-errorhandler)
-       ("perl-datetime" ,perl-datetime)
-       ("perl-datetime-format-mail" ,perl-datetime-format-mail)
-       ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
-       ("perl-feed-find" ,perl-feed-find)
-       ("perl-module-install" ,perl-module-install)
-       ("perl-module-pluggable" ,perl-module-pluggable)
-       ("perl-uri-fetch" ,perl-uri-fetch)
-       ("perl-test-simple" ,perl-test-simple)
-       ("perl-xml-atom" ,perl-xml-atom)
-       ("perl-xml-rss" ,perl-xml-rss)))
+     (list perl-class-errorhandler
+           perl-datetime
+           perl-datetime-format-mail
+           perl-datetime-format-w3cdtf
+           perl-feed-find
+           perl-module-install
+           perl-module-pluggable
+           perl-uri-fetch
+           perl-test-simple
+           perl-xml-atom
+           perl-xml-rss))
     (inputs
-     `(("perl-data-page" ,perl-data-page)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-uri" ,perl-uri)
-       ("perl-uri-template" ,perl-uri-template)
-       ("perl-xml-feed" ,perl-xml-feed)
-       ("perl-xml-libxml" ,perl-xml-libxml)))
+     (list perl-data-page
+           perl-libwww
+           perl-uri
+           perl-uri-template
+           perl-xml-feed
+           perl-xml-libxml))
     (home-page "https://metacpan.org/release/WWW-OpenSearch")
     (synopsis "Search A9 OpenSearch compatible engines")
     (description
@@ -4750,7 +4593,7 @@ http://opensearch.a9.com} compatible search engines.")
                "07m50dp5n5jxv3m93i55qvnd67a6g7cvbvlik115kmc8lbkh5da6"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-uri" ,perl-uri)))
+     (list perl-uri))
     (license license:perl-license)
     (synopsis "Perl database of robots.txt-derived permissions")
     (description
@@ -4774,7 +4617,7 @@ their web site.")
          "0qcnkyjjfj5gg5rhd1j4zzlqx5h34bma18zwgj68q95b0l543q2w"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-sgmllib3k" ,python-sgmllib3k)))
+     (list python-sgmllib3k))
     (arguments
      '(#:tests? #f))
     (home-page
@@ -4883,16 +4726,16 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
                  #t)))
            (delete 'strip))))           ; As the .go files aren't compatible
       (inputs
-       `(("guix" ,guix)
-         ("guile-fibers" ,guile-fibers)
-         ("guile-json" ,guile-json-4)
-         ("guile-email" ,guile-email)
-         ("guile-prometheus" ,guile-prometheus)
-         ("guile-squee" ,guile-squee)
-         ("ephemeralpg" ,ephemeralpg)
-         ("util-linux" ,util-linux)
-         ("postgresql" ,postgresql-13)
-         ("sqitch" ,sqitch)))
+       (list guix
+             guile-fibers
+             guile-json-4
+             guile-email
+             guile-prometheus
+             guile-squee
+             ephemeralpg
+             util-linux
+             postgresql-13
+             sqitch))
       (native-inputs
        `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
          ("autoconf" ,autoconf)
@@ -4927,9 +4770,7 @@ PostgreSQL database.")
      `(#:tests? #f))         ;tests require bundling googletest sources
     ;; The release tarball lacks the generated files.
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (home-page "https://github.com/google/gumbo-parser")
     (synopsis "HTML5 parsing library")
     (description
@@ -4995,14 +4836,14 @@ embedded_plugins =
      `(("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)))
     (inputs
-     `(("jansson" ,jansson)
-       ("libxml2" ,libxml2)
-       ("libyaml" ,libyaml)
-       ("openssl" ,openssl)
-       ("pcre" ,pcre)
-       ("zlib" ,zlib)
-       ;; For plugins.
-       ("python" ,python)))
+     (list jansson
+           libxml2
+           libyaml
+           openssl
+           pcre
+           zlib
+           ;; For plugins.
+           python))
     (home-page "https://uwsgi-docs.readthedocs.org/")
     (synopsis "Application container server")
     (description
@@ -5030,12 +4871,12 @@ It uses the uwsgi protocol for all the networking/interprocess communications.")
            (delete-file-recursively "modules")
            #t))))
     (inputs
-     `(("oniguruma" ,oniguruma)))
+     (list oniguruma))
     (native-inputs
-     `(;; TODO fix gems to generate documentation
-       ;;("ruby" ,ruby)
-       ;;("bundler" ,bundler)
-       ("valgrind" ,valgrind)))
+     (list ;; TODO fix gems to generate documentation
+           ;;("ruby" ,ruby)
+           ;;("bundler" ,bundler)
+           valgrind))
     (build-system gnu-build-system)
     (home-page "https://stedolan.github.io/jq/")
     (synopsis "Command-line JSON processor")
@@ -5087,13 +4928,11 @@ fast and flexible way of exploring HTML from the terminal.")
         (base32 "0bqizz69hxk8rn4z57asz1d45vizl1rj6i5k3rzxn2x3qcik514h"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ;; For check phase.
-       ("glib-networking" ,glib-networking)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("pkg-config" ,pkg-config)))
+     (list gobject-introspection
+           ;; For check phase.
+           glib-networking gsettings-desktop-schemas pkg-config))
     (inputs
-     `(("libsoup" ,libsoup)))
+     `(("libsoup" ,libsoup-minimal-2)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -5197,9 +5036,7 @@ libraries.")
          "1n2794y2l0c8nv8z2pxwfnbn882987ifmxjv60zdxkhcndhswarj"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("netsurf-buildsystem" ,netsurf-buildsystem)
-       ("pkg-config" ,pkg-config)
-       ("perl" ,perl)))                 ;for test harness
+     (list netsurf-buildsystem pkg-config perl))                 ;for test harness
     (arguments netsurf-buildsystem-arguments)
     (home-page "https://www.netsurf-browser.org/projects/libparserutils/")
     (synopsis "Parser building library")
@@ -5223,13 +5060,13 @@ C.  It is developed as part of the NetSurf project.")
        (patches (search-patches "hubbub-sort-entities.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("netsurf-buildsystem" ,netsurf-buildsystem)
-       ("pkg-config" ,pkg-config)
-       ("doxygen" ,doxygen)
-       ("json-c" ,json-c-0.12)      ; check whether json-c-0.12 can be removed
-       ("perl" ,perl)))
+     (list netsurf-buildsystem
+           pkg-config
+           doxygen
+           json-c-0.12 ; check whether json-c-0.12 can be removed
+           perl))
     (propagated-inputs
-     `(("libparserutils" ,libparserutils))) ;for libhubbub.pc
+     (list libparserutils)) ;for libhubbub.pc
     (arguments netsurf-buildsystem-arguments)
     (home-page "https://www.netsurf-browser.org/projects/hubbub/")
     (synopsis "HTML5 compliant parsing library")
@@ -5340,18 +5177,18 @@ NetSurf project.")
        ("perl-yaml-tiny" ,perl-yaml-tiny)
        ("po4a" ,po4a)))
     (propagated-inputs
-     `(("perl-cgi-formbuilder" ,perl-cgi-formbuilder)
-       ("perl-cgi-session" ,perl-cgi-session)
-       ("perl-html-parser" ,perl-html-parser)
-       ("perl-html-scrubber" ,perl-html-scrubber)
-       ("perl-html-template" ,perl-html-template)
-       ("perl-json" ,perl-json)
-       ("perl-mail-sendmail" ,perl-mail-sendmail)
-       ("perl-text-markdown-discount" ,perl-text-markdown-discount)
-       ("perl-timedate" ,perl-timedate)
-       ("perl-uri" ,perl-uri)
-       ("perl-xml-simple" ,perl-xml-simple)
-       ("perl-yaml-libyaml" ,perl-yaml-libyaml)))
+     (list perl-cgi-formbuilder
+           perl-cgi-session
+           perl-html-parser
+           perl-html-scrubber
+           perl-html-template
+           perl-json
+           perl-mail-sendmail
+           perl-text-markdown-discount
+           perl-timedate
+           perl-uri
+           perl-xml-simple
+           perl-yaml-libyaml))
     (home-page "https://ikiwiki.info/")
     (synopsis "Wiki compiler, capable of generating HTML")
     (description
@@ -5374,9 +5211,7 @@ commenting.")
          "0p0c2q9lsj4vs97aa7vjllfhw33zv3dpysdkjblzhib6dpfs2alv"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("netsurf-buildsystem" ,netsurf-buildsystem)
-       ("pkg-config" ,pkg-config)
-       ("check" ,check-0.14)))          ;for tests
+     (list netsurf-buildsystem pkg-config check-0.14))          ;for tests
     (arguments netsurf-buildsystem-arguments)
     (home-page "https://www.netsurf-browser.org/projects/libwapcaplet/")
     (synopsis "String internment library")
@@ -5406,12 +5241,9 @@ developed as part of the Netsurf project.")
              (("css_unit unit;") "css_unit unit = CSS_UNIT_PX;"))))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("netsurf-buildsystem" ,netsurf-buildsystem)
-       ("pkg-config" ,pkg-config)
-       ("perl" ,perl)))
+     (list netsurf-buildsystem pkg-config perl))
     (propagated-inputs                  ;needed for libcss.pc
-     `(("libparserutils" ,libparserutils)
-       ("libwapcaplet" ,libwapcaplet)))
+     (list libparserutils libwapcaplet))
     (arguments netsurf-buildsystem-arguments)
     (home-page "https://www.netsurf-browser.org/projects/libcss/")
     (synopsis "CSS parser and selection library")
@@ -5434,18 +5266,17 @@ written in C.  It is developed as part of the NetSurf project.")
          "0jpg5hx3y0mdxk5szd47dyijqimd2321brbqk2620pp5f4j0gvlq"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("netsurf-buildsystem" ,netsurf-buildsystem)
-       ("pkg-config" ,pkg-config)
-       ("perl" ,perl)                   ;for test harness
-       ("perl-libxml" ,perl-libxml)
-       ("perl-switch" ,perl-switch)
-       ("perl-xml-xpath" ,perl-xml-xpath)))
+     (list netsurf-buildsystem
+           pkg-config
+           perl ;for test harness
+           perl-libxml
+           perl-switch
+           perl-xml-xpath))
     (inputs
-     `(("libparserutils" ,libparserutils)
-       ("libwapcaplet" ,libwapcaplet)))
+     (list libparserutils libwapcaplet))
     (propagated-inputs
-     `(("expat" ,expat)                 ;needed for headers and linking
-       ("hubbub" ,hubbub)))             ;for libdom.pc
+     (list expat ;needed for headers and linking
+           hubbub))             ;for libdom.pc
     (arguments
      `(#:tests? #f                 ;TODO: re-enable. tests take a looong time.
        ,@netsurf-buildsystem-arguments))
@@ -5470,13 +5301,11 @@ developed as part of the NetSurf project.")
          "10bpkmvfpydj74im3r6kqm9vnvgib6afy0alx71q5n0w5yawy39c"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("netsurf-buildsystem" ,netsurf-buildsystem)
-       ("pkg-config" ,pkg-config)
-       ("gperf" ,gperf-3.0)))
+     (list netsurf-buildsystem pkg-config gperf-3.0))
     (inputs
-     `(("libwapcaplet" ,libwapcaplet)))
+     (list libwapcaplet))
     (propagated-inputs
-     `(("libdom" ,libdom)))             ;for libsvgtiny.pc
+     (list libdom))             ;for libsvgtiny.pc
     (arguments netsurf-buildsystem-arguments)
     (home-page "https://www.netsurf-browser.org/projects/libsvgtiny/")
     (synopsis "Library for parsing SVG files")
@@ -5501,7 +5330,7 @@ project.")
          "0krjg69a2amxjsahdgm3wmy9ngnyr3gfs2a1zhdlbvb0z1jr7i3r"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("netsurf-buildsystem" ,netsurf-buildsystem)))
+     (list netsurf-buildsystem))
     (arguments netsurf-buildsystem-arguments)
     (home-page "https://www.netsurf-browser.org/projects/libnsbmp/")
     (synopsis "Decoding library for BMP and ICO files")
@@ -5524,7 +5353,7 @@ written in C.  It is developed as part of the NetSurf project.")
          "0jwshypgmx16xlsbx3d8njk8a5khazlplca5mxd3rdbhrlsabbly"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("netsurf-buildsystem" ,netsurf-buildsystem)))
+     (list netsurf-buildsystem))
     (arguments netsurf-buildsystem-arguments)
     (home-page "https://www.netsurf-browser.org/projects/libnsgif/")
     (synopsis "Decoding library for GIF files")
@@ -5547,11 +5376,11 @@ C.  It is developed as part of the NetSurf project.")
          "1l2k0kdv9iv18svhv360vszjavhl4g09cp8a8yb719pgsylxr67w"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("netsurf-buildsystem" ,netsurf-buildsystem)
-       ("pkg-config" ,pkg-config)
-       ("check" ,check)                 ; For tests
-       ("bison" ,bison)
-       ("flex" ,flex)))
+     (list netsurf-buildsystem
+           pkg-config
+           check ; For tests
+           bison
+           flex))
     (arguments netsurf-buildsystem-arguments)
     (home-page "https://www.netsurf-browser.org/")
     (synopsis "Logging library")
@@ -5575,7 +5404,7 @@ client applications.  It is developed as part of the NetSurf project.")
          "1w5fyy2i60a3v3if3iqcn9sy9sycx6966rcx53v85gja6hb6a33r"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("netsurf-buildsystem" ,netsurf-buildsystem)))
+     (list netsurf-buildsystem))
     (arguments netsurf-buildsystem-arguments)
     (home-page "https://www.netsurf-browser.org/")
     (synopsis "Utility library for NetSurf")
@@ -5598,7 +5427,7 @@ developed as part of the NetSurf project.")
          "02q28n5i6fwqcz1nn167rb71k1q95mx38mfah6zi1lvqrc2q5ifk"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("netsurf-buildsystem" ,netsurf-buildsystem)))
+     (list netsurf-buildsystem))
     (arguments netsurf-buildsystem-arguments)
     (home-page "https://www.netsurf-browser.org/")
     (synopsis "Library to generate a static Public Suffix List")
@@ -5621,9 +5450,7 @@ Public Suffix List.  It is developed as part of the NetSurf project.")
          "1cqwgwca49jvmijwiyaab2bwxicgxdrnlpinf8kp3nha02nm73ad"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("netsurf-buildsystem" ,netsurf-buildsystem)
-       ("bison" ,bison)
-       ("flex" ,flex)))
+     (list netsurf-buildsystem bison flex))
     (arguments
      (substitute-keyword-arguments netsurf-buildsystem-arguments
        ((#:make-flags flags)
@@ -5653,14 +5480,14 @@ w3c webidl files and a binding configuration file.")
                                 "netsurf-message-timestamp.patch"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("netsurf-buildsystem" ,netsurf-buildsystem)
-       ("nsgenbind" ,nsgenbind)
-       ("libidn" ,libidn)               ;only for tests
-       ("check" ,check)
-       ("perl" ,perl)
-       ("perl-html-parser" ,perl-html-parser)
-       ("pkg-config" ,pkg-config)
-       ("xxd" ,xxd)))
+     (list netsurf-buildsystem
+           nsgenbind
+           libidn ;only for tests
+           check
+           perl
+           perl-html-parser
+           pkg-config
+           xxd))
     (inputs
      `(("curl" ,curl)
        ("gtk+" ,gtk+)
@@ -5791,10 +5618,7 @@ handling many of the web standards in use today.")
                (with-directory-excursion man
                  (invoke "gzip" "elvi.1sr"))))))))
     (inputs
-     `(("perl" ,perl)
-       ("perl-www-opensearch" ,perl-www-opensearch)
-       ("perl-html-parser" ,perl-html-parser)
-       ("perl-libwww" ,perl-libwww)))
+     (list perl perl-www-opensearch perl-html-parser perl-libwww))
     (synopsis "Unix command line interface to the www")
     (description "Surfraw (Shell Users' Revolutionary Front Rage Against the Web)
 provides a unix command line interface to a variety of popular www search engines
@@ -5805,28 +5629,29 @@ and similar services.")
 (define-public darkhttpd
   (package
     (name "darkhttpd")
-    (version "1.12")
+    (version "1.13")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://unix4lyfe.org/darkhttpd/darkhttpd-"
-                           version ".tar.bz2"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emikulic/darkhttpd")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0185wlyx4iqiwfigp1zvql14zw7gxfacncii3d15yaxk4av1f155"))))
+        (base32 "0w11xq160q9yyffv4mw9ncp1n0dl50d9plmwxb0yijaaxls9i4sk"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags '("CC=gcc")
+     `(#:make-flags
+       (list (string-append "CC=" ,(cc-for-target)))
        #:tests? #f ; No test suite
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
+         (delete 'configure)            ; no configure script
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (install-file "darkhttpd"
                            (string-append (assoc-ref outputs "out")
-                                          "/bin"))
-             #t)))))
+                                          "/bin")))))))
     (synopsis "Simple static web server")
     (description "darkhttpd is a simple static web server.  It is
 standalone and does not need inetd or ucspi-tcp.  It does not need any
@@ -5837,27 +5662,25 @@ config files---you only have to specify the www root.")
 (define-public goaccess
   (package
     (name "goaccess")
-    (version "1.5.1")
+    (version "1.5.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://tar.goaccess.io/goaccess-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "03wp75n1krv8g643q00gcv1ikmzwwh8jjqmph0wxww1bwrw7whc8"))
+                "12hwmd9cn7yy7vj92110skjaslpxkn05msb9wj228qmjjf9jzkm0"))
               (modules '((guix build utils)))
               (snippet '(begin
                           (substitute* "src/error.h"
                             (("__DATE__") "\"1970-01-01\"")
-                            (("__TIME__") "\"00:00:00\""))
-                          #t))))
+                            (("__TIME__") "\"00:00:00\""))))))
     (build-system gnu-build-system)
     (inputs
      ;; TODO: Add dependency on geoip-tools.
-     `(("glib" ,glib)
-       ("ncurses" ,ncurses)))
+     (list glib ncurses))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://goaccess.io")
     (synopsis "Analyze Web server logs in real time")
     (description
@@ -5870,14 +5693,14 @@ on the fly.")
 (define-public hitch
   (package
     (name "hitch")
-    (version "1.7.0")
+    (version "1.7.2")
     (home-page "https://hitch-tls.org/")
     (source (origin
               (method url-fetch)
               (uri (string-append home-page "source/hitch-" version ".tar.gz"))
               (sha256
                (base32
-                "1i75giwyr66ip8xsvk3gg5xdbxnmcabgxz8dqi06c58mw7qzhzn9"))))
+                "118p3a8wjvr0yhldpd1zm7d2cmgaw4vmyz9ib8m64z18qsz5rmnw"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -5909,10 +5732,10 @@ on the fly.")
        ("curl" ,curl)
        ("egrep" ,grep)
        ("lsof" ,lsof)
+       ("procps" ,procps)
        ("python" ,python)))
     (inputs
-     `(("libev" ,libev)
-       ("openssl" ,openssl)))
+     (list libev openssl))
     (synopsis "Scalable TLS proxy")
     (description
      "Hitch is a performant TLS proxy based on @code{libev}.  It terminates
@@ -5962,21 +5785,21 @@ tools like SSH (Secure Shell) to reach the outside world.")
 (define-public stunnel
   (package
   (name "stunnel")
-  (version "5.59")
+  (version "5.60")
   (source
     (origin
       (method url-fetch)
       (uri (string-append "https://www.stunnel.org/downloads/stunnel-"
                           version ".tar.gz"))
       (sha256
-       (base32 "17yf2n47j5hw2y9527mrkx3j7q9jk5vvg46m3hgp1wg8dggpcxqk"))))
+       (base32 "0zbqiydyz9dvfg3axh18a42v6j3xvnwjbd03kgm1z1i12mdpcpf4"))))
   (build-system gnu-build-system)
   (native-inputs
    ;; For tests.
    `(("iproute" ,iproute)
      ("netcat" ,netcat)
      ("procps" ,procps)))
-  (inputs `(("openssl" ,openssl)))
+  (inputs (list openssl))
   (arguments
    `(#:configure-flags
      (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")))
@@ -5989,16 +5812,19 @@ tools like SSH (Secure Shell) to reach the outside world.")
                               "doc/Makefile.in"
                               "tools/Makefile.in")
              (("/doc/stunnel")
-              (string-append "/doc/" ,name "-" ,version)))
-           #t))
+              (string-append "/doc/" ,name "-" ,version)))))
        (add-before 'check 'patch-tests
          (lambda _
            (substitute* "tests/make_test"
              (("/bin/sh ")
               (string-append (which "sh") " ")))
-           ;; test requires networking
-           (delete-file "tests/recipes/055_socket_closed")
-           #t)))))
+           ;; This test requires networking.
+           (delete-file "tests/recipes/055_socket_closed")))
+       (add-after 'install 'prune-documentation
+         (lambda* (#:key outputs #:allow-other-keys)
+           (let* ((out (assoc-ref outputs "out"))
+                  (doc (string-append out "/share/doc/" ,name "-" ,version)))
+             (for-each delete-file (find-files doc "^INSTALL"))))))))
   (home-page "https://www.stunnel.org")
   (synopsis "TLS proxy for clients or servers")
   (description "Stunnel is a proxy designed to add TLS encryption
@@ -6012,13 +5838,13 @@ deployments.")
   (package
     (name "varnish")
     (home-page "https://varnish-cache.org/")
-    (version "7.0.0")
+    (version "7.0.1")
     (source (origin
               (method url-fetch)
               (uri (string-append home-page "_downloads/varnish-" version ".tgz"))
               (sha256
                (base32
-                "11z0pa618lh925ih67wmp1gqk7i46l486j4spjy71g1n3w5mqylc"))))
+                "0q265fzarz5530g8lasvfpgks8z1kq1yh7rn88bn2qfly3pmpry4"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")
@@ -6069,13 +5895,13 @@ deployments.")
        ("python-sphinx" ,python-sphinx)
        ("rst2man" ,python-docutils)))
     (inputs
-     `(("bash-minimal" ,bash-minimal)
-       ("coreutils" ,coreutils)
-       ("jemalloc" ,jemalloc)
-       ("ncurses" ,ncurses)
-       ("pcre2" ,pcre2)
-       ("python" ,python)
-       ("readline" ,readline)))
+     (list bash-minimal
+           coreutils
+           jemalloc
+           ncurses
+           pcre2
+           python
+           readline))
     (synopsis "Web application accelerator")
     (description
      "Varnish is a high-performance HTTP accelerator.  It acts as a caching
@@ -6101,18 +5927,15 @@ configuration language.")
                 "0qq5g6bbd1a1ml1wk8jj9z39a899jzqbf7aizr3pvyz0f4kz8mis"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-
-       ;; For bootstrapping.
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-
-       ;; For generating manuals.
-       ("rst2man" ,python-docutils)))
+     (list pkg-config
+           ;; For bootstrapping.
+           autoconf
+           automake
+           libtool
+           ;; For generating manuals.
+           python-docutils))
     (inputs
-     `(("python" ,python)
-       ("varnish" ,varnish)))
+     (list python varnish))
     (synopsis "Collection of Varnish modules")
     (description
      "This package provides a collection of modules (@dfn{vmods}) for the Varnish
@@ -6139,10 +5962,7 @@ additional capabilities.")
      `(#:configure-flags '("--with-loadavg")
        #:tests? #f))                    ; no tests
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool pkg-config))
     (home-page "https://github.com/openSUSE/xinetd")
     (synopsis "Internet services daemon")
     (description "@code{xinetd}, a more secure replacement for @code{inetd},
@@ -6155,7 +5975,7 @@ used to start services with both privileged and non-privileged port numbers.")
 (define-public tidy-html
   (package
     (name "tidy-html")
-    (version "5.7.28")
+    (version "5.8.0")
     (source
      (origin
        (method git-fetch)
@@ -6165,7 +5985,7 @@ used to start services with both privileged and non-privileged port numbers.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "01k5sqwgcsr26i8031v1yr2r8qcy9a5w7sj800660haszgfbjz2f"))))
+         "1vd50q6xqxvidaclinsm89p6r0494wj72j1gpk32vkkhhx15cddz"))))
     (build-system cmake-build-system)
     (outputs '("out"
                "static"))               ; 1.3MiB of .a files
@@ -6188,7 +6008,7 @@ used to start services with both privileged and non-privileged port numbers.")
                          (find-files lib "\\.a$"))
                #t))))))
     (native-inputs
-     `(("libxslt" ,libxslt)))
+     (list libxslt))
     (home-page "http://www.html-tidy.org/")
     (synopsis "HTML Tidy with HTML5 support")
     (description
@@ -6249,11 +6069,8 @@ functions of Tidy.")
                  `("PATH" ":" prefix (,mbed)))))))))
     (inputs
      ;; TODO: package "hiawatha-monitor", an optional dependency of "hiawatha".
-     `(("libxslt" ,libxslt)
-       ("libxml2" ,libxml2)
-       ("mbedtls-apache" ,mbedtls-for-hiawatha)
-       ("nghttp2" ,nghttp2 "lib")
-       ("zlib" ,zlib)))
+     (list libxslt libxml2 mbedtls-for-hiawatha
+           `(,nghttp2 "lib") zlib))
     (home-page "https://www.hiawatha-webserver.org")
     (synopsis "Webserver with focus on security")
     (description
@@ -6275,11 +6092,8 @@ exploit attempts.")
          "1dc92lnk846hpilslrqnr63x55cxll4qx88gif8fm521gv9cbyvr"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-decorator" ,python-decorator)
-       ("python-flask" ,python-flask)
-       ("python-itsdangerous" ,python-itsdangerous)
-       ("python-markupsafe" ,python-markupsafe)
-       ("python-six" ,python-six)))
+     (list python-decorator python-flask python-itsdangerous
+           python-markupsafe python-six))
     (home-page "https://github.com/Runscope/httpbin")
     (synopsis "HTTP request and response service")
     (description "Testing an HTTP Library can become difficult sometimes.
@@ -6301,9 +6115,7 @@ JSON-encoded.")
          "1y0v2v7xpzpyd4djwp7ad8ifnlxp8r1y6dfbxg5ckzvllkgridn5"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-six" ,python-six)
-       ("python-httpbin" ,python-httpbin)
-       ("python-pytest" ,python-pytest)))
+     (list python-six python-httpbin python-pytest))
     (home-page
      "https://github.com/kevin1024/pytest-httpbin")
     (synopsis
@@ -6387,13 +6199,13 @@ message stream (in a web server that is per connection).")
 (define-public python-httpretty
   (package
     (name "python-httpretty")
-    (version "1.0.5")
+    (version "1.1.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "httpretty" version))
        (sha256
-        (base32 "1dg0nfl7i9kjnq98ww98x2afzav4mpgiwzvjc43ily1x9my94g75"))))
+        (base32 "0s1vjdaf3pk2xd0hvi5f7p3jm2rgwpbc734jdp9r50m1smfhxpi0"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f  ; Tests require network access.
@@ -6402,16 +6214,15 @@ message stream (in a web server that is per connection).")
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
-               (invoke "nosetests"))
-             #t)))))
+               (invoke "nosetests")))))))
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-eventlet" ,python-eventlet)
-       ("python-nose" ,python-nose)
-       ("python-rednose" ,python-rednose)
-       ("python-requests" ,python-requests)
-       ("python-sure" ,python-sure)
-       ("python-tornado" ,python-tornado)))
+     (list python-coverage
+           python-eventlet
+           python-nose
+           python-rednose
+           python-requests
+           python-sure
+           python-tornado))
     (home-page "https://httpretty.readthedocs.io")
     (synopsis "HTTP client mock for Python")
     (description "@code{httpretty} is a helper for faking web requests,
@@ -6480,17 +6291,15 @@ command-line arguments or read from stdin.")
                       "not test_get_item_with_kwargs"
                       " and not test_ia")))))))
     (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("python-jsonpatch" ,python-jsonpatch-0.4)
-       ("python-docopt" ,python-docopt)
-       ("python-clint" ,python-clint)
-       ("python-six" ,python-six)
-       ("python-schema" ,python-schema-0.5)
-       ("python-backports-csv" ,python-backports-csv)))
+     (list python-requests
+           python-jsonpatch-0.4
+           python-docopt
+           python-clint
+           python-six
+           python-schema-0.5
+           python-backports-csv))
     (native-inputs
-     `(("python-pytest" ,python-pytest)
-       ("python-pytest-capturelog" ,python-pytest-capturelog)
-       ("python-responses" ,python-responses)))
+     (list python-pytest python-pytest-capturelog python-responses))
     (home-page "https://github.com/jjjake/internetarchive")
     (synopsis "Command-line interface to archive.org")
     (description "@code{ia} is a command-line tool for using
@@ -6512,12 +6321,12 @@ internetarchive python module for programmatic access to archive.org.")
            "0zlkzqnpz7a4iavsq5vaz0nf5nr7qm5znpg1vlpz6rwnx6hikjdb"))))
       (build-system python-build-system)
       (propagated-inputs
-       `(("python-docopt" ,python-docopt)
-         ("python-pygments" ,python-pygments)
-         ("python-requests" ,python-requests)
-         ("python-nose" ,python-nose)
-         ("python-lxml" ,python-lxml)
-         ("python-pyaml" ,python-pyaml)))
+       (list python-docopt
+             python-pygments
+             python-requests
+             python-nose
+             python-lxml
+             python-pyaml))
       (inputs
        `(("test-clf"
           ,(origin
@@ -6604,10 +6413,8 @@ Instagram and YouTube.")
          "1j97dc9a4yhpscwadhv5dxp7036pnrxiaky18l8ddr3pvxdjvkxs"))))
     (build-system python-build-system)
     (inputs
-     `(("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-dnspython" ,python-dnspython)
-       ("python-pyxdg" ,python-pyxdg)
-       ("python-requests" ,python-requests)))
+     (list python-beautifulsoup4 python-dnspython python-pyxdg
+           python-requests))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("python-pytest" ,python-pytest)
@@ -6659,14 +6466,14 @@ file links.")
         ("rust-percent-encoding" ,rust-percent-encoding-2)
         ("rust-url" ,rust-url-2))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("atk" ,atk)
-       ("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("gtk+" ,gtk+)
-       ("libressl" ,libressl)
-       ("pango" ,pango)))
+     (list atk
+           cairo
+           gdk-pixbuf
+           gtk+
+           libressl
+           pango))
     (home-page "https://git.sr.ht/~julienxx/castor")
     (synopsis "Graphical client for plain-text protocols")
     (description
@@ -6714,8 +6521,7 @@ encoder/decoder based on the draft-12 specification for UBJSON.")
                   #t))))
     (build-system ant-build-system)
     (inputs
-     `(("java-commons-daemon" ,java-commons-daemon)
-       ("java-ecj" ,java-ecj)))
+     (list java-commons-daemon java-ecj))
     (arguments
      `(#:build-target "deploy"
        #:tests? #f; requires downloading some files.
@@ -7213,8 +7019,7 @@ infrastructure")))
        #:source-dir "jetty-util-ajax/src/main/java"
        #:tests? #f)); require junit 5
     (inputs
-     `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)
-       ("java-javaee-servletapi" ,java-javaee-servletapi)))))
+     (list java-eclipse-jetty-util java-javaee-servletapi))))
 
 (define-public java-eclipse-jetty-servlet
   (package
@@ -7289,10 +7094,10 @@ container.")))
              (chdir "jetty-xml")
              #t)))))
     (inputs
-     `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)))
+     (list java-eclipse-jetty-util))
     (native-inputs
-     `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
-       ,@(package-native-inputs java-eclipse-jetty-util)))))
+     (modify-inputs (package-native-inputs java-eclipse-jetty-util)
+       (prepend java-eclipse-jetty-io)))))
 
 (define-public java-eclipse-jetty-xml-9.2
   (package
@@ -7335,14 +7140,14 @@ container.")))
              (chdir "jetty-webapp")
              #t)))))
     (inputs
-     `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)
-       ("java-eclipse-jetty-http" ,java-eclipse-jetty-http)
-       ("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
-       ("java-eclipse-jetty-server" ,java-eclipse-jetty-server)
-       ("java-eclipse-jetty-servlet" ,java-eclipse-jetty-servlet)
-       ("java-eclipse-jetty-security" ,java-eclipse-jetty-security)
-       ("java-eclipse-jetty-xml" ,java-eclipse-jetty-xml)
-       ("java-javaee-servletapi" ,java-javaee-servletapi)))))
+     (list java-eclipse-jetty-util
+           java-eclipse-jetty-http
+           java-eclipse-jetty-io
+           java-eclipse-jetty-server
+           java-eclipse-jetty-servlet
+           java-eclipse-jetty-security
+           java-eclipse-jetty-xml
+           java-javaee-servletapi))))
 
 (define-public java-eclipse-jetty-webapp-9.2
   (package
@@ -7403,9 +7208,7 @@ container.")))
                    (find-files "." ".*.properties"))))
              #t)))))
     (native-inputs
-     `(("java-junit" ,java-junit)
-       ("java-hamcrest-core" ,java-hamcrest-core)
-       ("java-gson" ,java-gson)))
+     (list java-junit java-hamcrest-core java-gson))
     (home-page "https://jsoup.org")
     (synopsis "HTML parser")
     (description "Jsoup is a Java library for working with real-world HTML.  It
@@ -7434,7 +7237,7 @@ best of DOM, CSS, and jQuery-like methods.")
        ;; Tests all fail with InstantiationException from mockito
        #:tests? #f))
     (propagated-inputs
-     `(("java-commons-codec" ,java-commons-codec)))
+     (list java-commons-codec))
     (home-page "https://github.com/mttkay/signpost")
     (synopsis "Lightweight client-side OAuth library for Java")
     (description "Signpost is the easy and intuitive solution for signing
@@ -7496,10 +7299,9 @@ based on this library, allowing Perl programmers to easily validate HTML.")
                  "-L" (assoc-ref inputs "tidyp") "/lib")))
              #t)))))
     (inputs
-     `(("perl-libwww" ,perl-libwww)
-       ("tidyp" ,tidyp)))
+     (list perl-libwww tidyp))
     (native-inputs
-     `(("perl-test-exception" ,perl-test-exception)))
+     (list perl-test-exception))
     (home-page "https://metacpan.org/release/HTML-Tidy")
     (synopsis "(X)HTML validation in a Perl object")
     (description "@code{HTML::Tidy} is an HTML checker in a handy dandy
@@ -7603,12 +7405,9 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.")
     (outputs (list "out"
                    "lib"))              ; only libnghttp2
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-
-       ;; Required by tests.
-       ("cunit" ,cunit)
-       ("python" ,python)
-       ("tzdata" ,tzdata-for-tests)))
+     (list pkg-config
+           ;; Required by tests.
+           cunit python tzdata-for-tests))
     (inputs
      ;; Required to build the tools (i.e. without ‘--enable-lib-only’).
      `(("c-ares" ,c-ares)
@@ -7627,7 +7426,10 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.")
              "--enable-app"             ; build all the tools
              "--enable-hpack-tools"     ; ...all the tools
              "--disable-examples"
-             "--disable-static")        ; don't bother building .a files
+             "--disable-static"         ; don't bother building .a files
+             ,@(if (%current-target-system)
+                   '("--disable-python-bindings")
+                   '()))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'break-circular-reference
@@ -7676,7 +7478,7 @@ compressed JSON header blocks.
 (define-public hpcguix-web
   (package
     (name "hpcguix-web")
-    (version "0.1.0")
+    (version "0.2.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -7685,7 +7487,7 @@ compressed JSON header blocks.
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "02lz5k1hhkwfz3nr3lsd69icsz6n0q82z047d3svi09qpxw6y0cj"))))
+                "1l856d1vr63ns1sp9fm6v97p71mx00769k6lwzqzppsb9clksnwp"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((guix build gnu-build-system)
@@ -7709,9 +7511,10 @@ compressed JSON header blocks.
                     (git      (assoc-ref inputs "guile-git"))
                     (bs       (assoc-ref inputs "guile-bytestructures"))
                     (json     (assoc-ref inputs "guile-json"))
+                    (zlib     (assoc-ref inputs "guile-zlib"))
                     (guile-cm (assoc-ref inputs
                                          "guile-commonmark"))
-                    (deps (list guile gcrypt git bs guile-cm guix json))
+                    (deps (list guile gcrypt git bs zlib guile-cm guix json))
                     (effective
                      (read-line
                       (open-pipe* OPEN_READ
@@ -7736,15 +7539,15 @@ compressed JSON header blocks.
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
        ("uglify-js" ,uglify-js)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))))
     (inputs
      `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
        ("guix" ,guix)
-       ("bash-minimal" ,bash-minimal)))           ;for 'wrap-program'
-    (propagated-inputs
-     `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
+       ("guile-zlib" ,guile-zlib)
        ("guile-commonmark" ,guile-commonmark)
-       ("guile-json" ,guile-json-4)))
+       ("guile-json" ,guile-json-4)
+       ("bash-minimal" ,bash-minimal)))
     (home-page "https://github.com/UMCUGenetics/hpcguix-web")
     (synopsis "Web interface for cluster deployments of Guix")
     (description "Hpcguix-web provides a web interface to the list of packages
@@ -7765,8 +7568,7 @@ instructions on how to use Guix in a shared HPC environment.")
                 "09a0gm67nml86qby1k1gh7rdxamnrnzwr6l9r5iiq94favjs0xrl"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libressl" ,libressl)
-       ("zlib" ,zlib)))
+     (list libressl zlib))
     (home-page "https://www.httrack.com/")
     (synopsis "Easy-to-use offline browser utility")
     (description "HTTrack allows you to download a World Wide Web site from
@@ -7784,23 +7586,20 @@ HTTrack is fully configurable, and has an integrated help system.")
 (define-public buku
   (package
     (name "buku")
-    (version "4.5")
+    (version "4.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "buku" version))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1bk3h2ya34a5livyf6p7kawh50ikbix5szsq2rkb8cp5bwrzsj5i"))))
+        (base32 "1n4d1mkjyvzdxbyq067p1p9skb3iwx0msd86nzr224dlqrfh9675"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))                    ;FIXME: many tests need network access
     (inputs
-     `(("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-certifi" ,python-certifi)
-       ("python-cryptography" ,python-cryptography)
-       ("python-html5lib" ,python-html5lib)
-       ("python-urllib3" ,python-urllib3)))
+     (list python-beautifulsoup4 python-certifi python-cryptography
+           python-html5lib python-urllib3))
     (home-page "https://github.com/jarun/buku")
     (synopsis "Bookmark manager")
     (description
@@ -7854,8 +7653,7 @@ Anonip can also be uses as a Python module in your own Python application.")
          "0kckcwvqklavd855np9aq5js6mg84isrlwchr504yigwma0sm7hm"))))
     (build-system go-build-system)
     (propagated-inputs
-     `(("go-github-com-robfig-cron" ,go-github-com-robfig-cron)
-       ("go-golang-org-x-time" ,go-golang-org-x-time)))
+     (list go-github-com-robfig-cron go-golang-org-x-time))
     (arguments
      `(#:import-path "github.com/tsileo/poussetaches"))
     (home-page "https://github.com/tsileo/poussetaches")
@@ -7926,7 +7724,7 @@ of the DOM tree
            (lambda _
              (chdir "Build"))))))
     (inputs
-     `(("freetype" ,freetype)))
+     (list freetype))
     (home-page "https://github.com/libRocket/libRocket") ; http://librocket.com/ is down.
     (synopsis "HTML/CSS user interface library")
     (description "libRocket is a C++ user interface package based on the HTML
@@ -7945,39 +7743,35 @@ solution for any project's interface needs:
     (license license:expat)))
 
 (define-public gmnisrv
-  (let ((commit "32854b79c73b278bf33eb5123abf1c36abdc7c01")
-        (revision "2"))
-    (package
-      (name "gmnisrv")
-      (version (git-version "0" revision commit))
-      (home-page "https://git.sr.ht/~sircmpwn/gmnisrv")
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url home-page)
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "0lbb3ablwkdcgm1cjr1hikr55y8gpl420nh8b8g9wn4abhm2xgr9"))
-                (file-name (git-file-name name version))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:tests? #f ; no check target
-         #:configure-flags (list "--sysconfdir=/etc"
-                                 (string-append "--with-mimedb="
-                                                (assoc-ref %build-inputs "mailcap")
-                                                "/etc/mime.types"))
-         #:make-flags (list (string-append "CC=" ,(cc-for-target)))))
-      (inputs
-       `(("mailcap" ,mailcap)
-         ("openssl" ,openssl)))
-      (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("scdoc" ,scdoc)))
-      (synopsis "Simple Gemini protocol server")
-      (description "gmnisrv is a simple Gemini protocol server written in C.")
-      (license (list license:gpl3+
-                     license:bsd-3))))) ;; for ini.c and ini.h
+  (package
+    (name "gmnisrv")
+    (version "1.0")
+    (home-page "https://git.sr.ht/~sircmpwn/gmnisrv")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit version)))
+       (sha256
+        (base32 "115r1dw9k08r2nvygy8ll21qvsc5kmzi5jcqm7g7r8q8hifxglap"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ;no check target
+       #:configure-flags (list "--sysconfdir=/etc"
+                               (string-append "--with-mimedb="
+                                              (assoc-ref %build-inputs "mailcap")
+                                              "/etc/mime.types"))
+       #:make-flags (list (string-append "CC=" ,(cc-for-target)))))
+    (inputs
+     (list mailcap openssl))
+    (native-inputs
+     (list pkg-config scdoc))
+    (synopsis "Simple Gemini protocol server")
+    (description "gmnisrv is a simple Gemini protocol server written in C.")
+    (license (list license:gpl3+
+                   license:bsd-3)))) ;; for ini.c and ini.h
 
 (define-public libzim
   (package
@@ -8003,8 +7797,7 @@ solution for any project's interface needs:
        ("xapian" ,xapian)
        ("zstd" ,zstd "lib")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("googletest" ,googletest)))
+     (list pkg-config googletest))
     (home-page "https://wiki.openzim.org/wiki/Main_Page")
     (synopsis "Reference implementation of the ZIM specification")
     (description "The openZIM project proposes offline storage solutions for
@@ -8041,15 +7834,15 @@ for ZIM files.")
                                "/bin/aria2c\"")))
              #t)))))
     (inputs
-     `(("aria2" ,aria2)
-       ("curl" ,curl)
-       ("icu4c" ,icu4c)
-       ("libmicrohttpd" ,libmicrohttpd)
-       ("libzim" ,libzim)
-       ("pugixml" ,pugixml)
-       ("xapian" ,xapian)
-       ("zlib" ,zlib)
-       ("zstd" ,zstd "lib")))
+     (list aria2
+           curl
+           icu4c
+           libmicrohttpd
+           libzim
+           pugixml
+           xapian
+           zlib
+           `(,zstd "lib")))
     (native-inputs
      `(("mustache" ,(origin
                       (method git-fetch)
@@ -8112,19 +7905,19 @@ It contains the code shared by all Kiwix ports.")
                  `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))
                #t))))))
     (inputs
-     `(("curl" ,curl)
-       ("icu4c" ,icu4c)
-       ("kiwix-lib" ,kiwix-lib)
-       ("libmicrohttpd" ,libmicrohttpd)
-       ("libzim" ,libzim)
-       ("pugixml" ,pugixml)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtwebchannel" ,qtwebchannel)
-       ("qtwebengine" ,qtwebengine)
-       ("xapian" ,xapian)
-       ("zlib" ,zlib)
-       ("zstd" ,zstd "lib")))
+     (list curl
+           icu4c
+           kiwix-lib
+           libmicrohttpd
+           libzim
+           pugixml
+           qtbase-5
+           qtdeclarative
+           qtwebchannel
+           qtwebengine
+           xapian
+           zlib
+           `(,zstd "lib")))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qmake" ,qtbase-5)))
@@ -8134,6 +7927,42 @@ It contains the code shared by all Kiwix ports.")
 offline (such as Wikipedia), without any access to Internet.")
     (license license:gpl3)))
 
+(define-public kiwix-tools
+  (package
+    (name "kiwix-tools")
+    (version "3.1.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://download.kiwix.org/release/"
+                                  "kiwix-tools/kiwix-tools-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1npf9ddhpkmx97gxmvmwmi8a69md8kh2szimd9rpg6ggd4big03a"))))
+    (build-system meson-build-system)
+    (inputs
+     (list curl
+           icu4c
+           kiwix-lib
+           libmicrohttpd
+           libzim
+           pugixml
+           xapian
+           zlib
+           `(,zstd "lib")))
+    (native-inputs
+     (list pkg-config))
+    (home-page "https://wiki.kiwix.org/wiki/Software")
+    (synopsis "Kiwix command line tools")
+    (description "The Kiwix tools are a collection of Kiwix-related command line
+tools:
+@itemize
+@item kiwix-manage: Manage XML based library of ZIM files
+@item kiwix-read: Read ZIM file content
+@item kiwix-search: Fulltext search in ZIM files
+@item kiwix-serve: HTTP daemon serving ZIM files
+@end itemize\n")
+    (license license:gpl3+)))
+
 (define-public uriparser
   (let ((commit "25dddb16cf044a7df27884e7ad3911baaaca3d7c")
         (revision "1"))
@@ -8150,9 +7979,7 @@ offline (such as Wikipedia), without any access to Internet.")
                  (base32
                   "1ffzia679axcsccx2fxjpxhb0i5xc42zxn446x6c1170w6v69qf6"))))
       (build-system cmake-build-system)
-      (native-inputs `(("gtest" ,googletest)
-                       ("doxygen" ,doxygen)
-                       ("graphviz" ,graphviz)))
+      (native-inputs (list googletest doxygen graphviz))
       (synopsis "Strictly RFC 3986 compliant URI parsing and handling library")
       (description "uriparser is a strictly RFC 3986 compliant URI parsing and
 handling library written in C89 (\"ANSI C\").  uriparser is fast and supports
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 6b94c108ba..65ad122f9c 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -2,10 +2,11 @@
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015–2021 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,6 +28,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix utils)
+  #:use-module (guix build utils)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
@@ -40,6 +42,7 @@
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -51,6 +54,7 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages libreoffice)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -82,9 +86,9 @@
      `(("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)))
     (inputs
-     `(("mesa" ,mesa)))
+     (list mesa))
     (propagated-inputs
-     `(("libxkbcommon" ,libxkbcommon)))
+     (list libxkbcommon))
     (synopsis "General-purpose library for WPE")
     (description "LibWPE is general-purpose library specifically developed for
 the WPE-flavored port of WebKit.")
@@ -106,12 +110,9 @@ the WPE-flavored port of WebKit.")
     (arguments
      `(#:tests? #f))                    ;no tests
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("libwpe" ,libwpe)
-       ("mesa" ,mesa)
-       ("wayland" ,wayland)))
+     (list glib libwpe mesa wayland))
     (home-page "https://wpewebkit.org/")
     (synopsis "Wayland WPE backend")
     (description
@@ -226,20 +227,20 @@ acceleration in mind, leveraging common 3D graphics APIs for best performance.")
 (define-public webkitgtk
   (package
     (name "webkitgtk")
-    (version "2.32.3")
+    (version "2.34.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.webkitgtk.org/releases/"
                                   "webkitgtk-" version ".tar.xz"))
               (sha256
                (base32
-                "1g1clppby019bng43ry50xd2dvzfzgrd9yv2xx6gwkk5mksrdx61"))
+                "1vix0w24m7mq82rzxrk8xvcrkli44gimzs282xs29q2xf0b16g24"))
               (patches (search-patches "webkitgtk-share-store.patch"
                                        "webkitgtk-bind-all-fonts.patch"))))
     (build-system cmake-build-system)
-    (outputs '("out" "doc"))
+    (outputs '("out" "doc" "debug"))
     (arguments
-     '(#:tests? #f ; no tests
+     `(#:tests? #f ; no tests
        #:build-type "Release" ; turn off debugging symbols to save space
        #:configure-flags (list
                           "-DPORT=GTK"
@@ -251,7 +252,6 @@ acceleration in mind, leveraging common 3D graphics APIs for best performance.")
                           (string-append ; uses lib64 by default
                            "-DLIB_INSTALL_DIR="
                            (assoc-ref %outputs "out") "/lib")
-
                           ;; XXX Adding GStreamer GL support would apparently
                           ;; require adding gst-plugins-bad to the inputs,
                           ;; which might entail a security risk as a result of
@@ -272,8 +272,7 @@ acceleration in mind, leveraging common 3D graphics APIs for best performance.")
              (let ((store-directory (%store-directory)))
                (substitute*
                    "Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp"
-                 (("@storedir@") store-directory))
-               #t)))
+                 (("@storedir@") store-directory)))))
          (add-after 'unpack 'patch-gtk-doc-scan
            (lambda* (#:key inputs #:allow-other-keys)
              (for-each (lambda (file)
@@ -281,23 +280,27 @@ acceleration in mind, leveraging common 3D graphics APIs for best performance.")
                            (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
                             (string-append (assoc-ref inputs "docbook-xml")
                                            "/xml/dtd/docbook/docbookx.dtd"))))
-                       (find-files "Source" "\\.sgml$"))
-             #t))
+                       (find-files "Source" "\\.sgml$"))))
          (add-after 'unpack 'embed-absolute-wpebackend-reference
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((wpebackend-fdo (assoc-ref inputs "wpebackend-fdo")))
                (substitute* "Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp"
                  (("libWPEBackend-fdo-([\\.0-9]+)\\.so" all version)
-                  (string-append wpebackend-fdo "/lib/" all)))
-               #t)))
+                  (string-append wpebackend-fdo "/lib/" all))))))
+         ,@(if (target-x86-64?)
+               '()
+               '((add-after 'unpack 'disable-sse2
+                   (lambda _
+                     (substitute* "Source/cmake/WebKitCompilerFlags.cmake"
+                       (("WTF_CPU_X86 AND NOT CMAKE_CROSSCOMPILING")
+                        "FALSE"))))))
          (add-after 'install 'move-doc-files
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
                    (doc (assoc-ref outputs "doc")))
                (mkdir-p (string-append doc "/share"))
                (rename-file (string-append out "/share/gtk-doc")
-                            (string-append doc "/share/gtk-doc"))
-               #t))))))
+                            (string-append doc "/share/gtk-doc"))))))))
     (native-inputs
      `(("bison" ,bison)
        ("gettext" ,gettext-minimal)
@@ -311,8 +314,7 @@ acceleration in mind, leveraging common 3D graphics APIs for best performance.")
        ("docbook-xml" ,docbook-xml) ; For documentation generation
        ("ruby" ,ruby)))
     (propagated-inputs
-     `(("gtk+" ,gtk+)
-       ("libsoup" ,libsoup)))
+     (list gtk+ libsoup))
     (inputs
      `(("at-spi2-core" ,at-spi2-core)
        ("bubblewrap" ,bubblewrap)
@@ -323,6 +325,7 @@ acceleration in mind, leveraging common 3D graphics APIs for best performance.")
        ("harfbuzz" ,harfbuzz)
        ("hyphen" ,hyphen)
        ("icu4c" ,icu4c)
+       ("lcms" ,lcms)
        ("libgcrypt" ,libgcrypt)
        ("libjpeg" ,libjpeg-turbo)
        ("libnotify" ,libnotify)
@@ -354,3 +357,18 @@ HTML/CSS applications to full-fledged web browsers.")
                    license:lgpl2.1+
                    license:bsd-2
                    license:bsd-3))))
+
+;;; Required by gnome-online-accounts; as webkitgtk 2.34 propagates libsoup 3,
+;;; which causes the build to fail.
+;;; Also required by e.g. emacs-next-pgtk,  emacs-xwidgets, and some other
+;;; Gnome packages for webkit2gtk-4.0. See also the upstream tracker for
+;;; libsoup 3: https://gitlab.gnome.org/GNOME/libsoup/-/issues/218
+(define-public webkitgtk-with-libsoup2
+  (package/inherit webkitgtk
+    (name "webkitgtk-with-libsoup2")
+    (arguments (substitute-keyword-arguments (package-arguments webkitgtk)
+                 ((#:configure-flags flags)
+                  `(cons "-DUSE_SOUP2=ON" ,flags))))
+    (propagated-inputs
+     (alist-replace "libsoup" (list libsoup-minimal-2)
+                    (package-propagated-inputs webkitgtk)))))
diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm
index 58b3330293..d794bd7bad 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 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2020, 2021 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>
@@ -56,16 +56,14 @@
         "1bchzkacjsc5c0x01ngaana9fs5j12wfw1c8qxps1yp68x9vx6yv"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gnutls" ,gnutls)
-       ("libidn2" ,libidn2)
-       ("libpsl" ,libpsl)))
+     (list gnutls libidn2 libpsl))
     (native-inputs
-     `(("lzip" ,lzip)
-       ("pkg-config" ,pkg-config)
-       ("perl" ,perl)
-       ("python" ,python)               ;for testenv suite
-       ("perl-http-daemon" ,perl-http-daemon)
-       ("perl-io-socket-ssl" ,perl-io-socket-ssl)))
+     (list lzip
+           pkg-config
+           perl
+           python ;for testenv suite
+           perl-http-daemon
+           perl-io-socket-ssl))
     (home-page "https://www.gnu.org/software/wget/")
     (synopsis "Non-interactive command-line utility for downloading files")
     (description
@@ -127,8 +125,7 @@ in downloaded documents to relative links.")
                #t))))
        #:tests? #f))                    ; no test target
     (inputs
-     `(("wget" ,wget)
-       ("xclip" ,xclip)))
+     (list wget xclip))
     (home-page "https://wgetpaste.zlin.dk/")
     (synopsis "Script that automates pasting to a number of pastebin services")
     (description
@@ -139,14 +136,14 @@ online pastebin services.")
 (define-public wget2
   (package
    (name "wget2")
-   (version "1.99.2")
+   (version "2.0.0")
    (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://gnu/wget/wget2-" version ".tar.gz"))
        (sha256
         (base32
-         "0qv55f4bablrlhc8bnic8g3mkk1kq44c4cphrk5jmv92z9aqzi6b"))))
+         "0i0m4k6w9smsr2m5mj05zvl1fb110izyl2qqrk0yqlxnmfhgpqjg"))))
    (build-system gnu-build-system)
    (arguments
     `(#:phases
@@ -171,7 +168,7 @@ online pastebin services.")
       ("zlib" ,zlib)))
    ;; TODO: Add libbrotlidec, libnghttp2.
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    (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
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index d77d1070e1..15cad14219 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -43,7 +43,6 @@
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
@@ -222,8 +221,8 @@ integrate Windows applications into your desktop.")
   (package
     (inherit wine)
     (name "wine64")
-    (inputs `(("wine" ,wine)
-              ,@(package-inputs wine)))
+    (inputs (modify-inputs (package-inputs wine)
+              (prepend wine)))
     (arguments
      `(#:make-flags
        (list "SHELL=bash"
@@ -325,8 +324,8 @@ integrate Windows applications into your desktop.")
   (package
     (inherit wine)
     (name "wine-minimal")
-    (native-inputs (fold alist-delete (package-native-inputs wine)
-               '("gettext" "perl" "pkg-config")))
+    (native-inputs (modify-inputs (package-native-inputs wine)
+                     (delete "gettext" "perl" "pkg-config")))
     (inputs `())
     (arguments
      `(#:validate-runpath? #f
@@ -364,8 +363,7 @@ integrate Windows applications into your desktop.")
         (base32 "0d5m9pvafr0iw99ny7rgzfmw7zw45q5wfcw68zj88mvzs47xkgms"))))
     (build-system trivial-build-system)
     (native-inputs
-     `(("bash" ,bash)
-       ("coreutils" ,coreutils)))
+     (list bash coreutils))
     (arguments
      `(#:modules ((guix build utils))
        #:builder
@@ -413,15 +411,15 @@ integrate Windows applications into your desktop.")
          (file-name (string-append name "-" wine-version ".tar.xz"))
          (sha256
           (base32 "1bc4zmqpdqs1ncz3qisp8a313pqzi5a31gq1s99ivb60vk325rcr")))))
-    (inputs `(("autoconf" ,autoconf)    ; for autoreconf
-              ("ffmpeg" ,ffmpeg)
-              ("gtk+" ,gtk+)
-              ("libva" ,libva)
-              ("mesa" ,mesa)
-              ("python" ,python)
-              ("util-linux" ,util-linux) ; for hexdump
-              ("wine-staging-patchset-data" ,wine-staging-patchset-data)
-              ,@(package-inputs wine)))
+    (inputs (modify-inputs (package-inputs wine)
+              (prepend autoconf ; for autoreconf
+                       ffmpeg
+                       gtk+
+                       libva
+                       mesa
+                       python
+                       util-linux ; for hexdump
+                       wine-staging-patchset-data)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -490,8 +488,8 @@ integrated into the main branch.")
   (package
     (inherit wine-staging)
     (name "wine64-staging")
-    (inputs `(("wine-staging" ,wine-staging)
-              ,@(package-inputs wine-staging)))
+    (inputs (modify-inputs (package-inputs wine-staging)
+              (prepend wine-staging)))
     (arguments
      `(#:make-flags
        (list "SHELL=bash"
@@ -609,10 +607,7 @@ version)")
                                (string-append (assoc-ref %build-inputs "source")
                                               "/build-wine32.txt"))))
     (native-inputs
-     ;; Since 1.5 dxvk needs gcc-8.1.  See
-     ;; https://github.com/doitsujin/dxvk/issues/1292#issuecomment-567067373.
-     `(("gcc" ,gcc-9)
-       ("glslang" ,glslang)))
+     `(("glslang" ,glslang)))
     (inputs
      `(("wine" ,wine-staging)))
     (synopsis "Vulkan-based D3D9, D3D10 and D3D11 implementation for Wine")
diff --git a/gnu/packages/wireservice.scm b/gnu/packages/wireservice.scm
index b704111db0..f0dcce717c 100644
--- a/gnu/packages/wireservice.scm
+++ b/gnu/packages/wireservice.scm
@@ -209,15 +209,11 @@ for xls and xlsx files support to all @code{agate.Table} instances.")))
                 "1ffmbzk4rxnl1yhqfl58v7kvl5m9cbvjm8v7xp4mvr00sgs91lvv"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-psycopg2" ,python-psycopg2) ; to test PostgreSQL support
-       ("python-sphinx" ,python-sphinx)
-       ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)))
+     (list python-psycopg2 ; to test PostgreSQL support
+           python-sphinx python-sphinx-rtd-theme))
     (inputs
-     `(("python-agate-dbf" ,python-agate-dbf)
-       ("python-agate-excel" ,python-agate-excel)
-       ("python-agate-sql" ,python-agate-sql)
-       ("python-six" ,python-six)
-       ("python-text-unidecode" ,python-text-unidecode)))
+     (list python-agate-dbf python-agate-excel python-agate-sql
+           python-six python-text-unidecode))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 1986fbb60c..c6881154fe 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -46,6 +46,8 @@
 ;;; Copyright © 2021 qblade <qblade@protonmail.com>
 ;;; Copyright © 2021 lasnesne <lasnesne@lagunposprasihopre.org>
 ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
+;;; Copyright © 2021 Disseminate Dissent <disseminatedissent@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -81,8 +83,9 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
-  #:use-module (gnu packages build-tools) ;for meson-0.55
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages calendar)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages datastructures)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
@@ -90,7 +93,6 @@
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages fribidi)
   #:use-module (gnu packages gawk)
-  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gperf)
@@ -101,7 +103,9 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages libevent)
+  #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages lisp-check)
   #:use-module (gnu packages lisp-xyz)
   #:use-module (gnu packages logging)
   #:use-module (gnu packages lua)
@@ -115,12 +119,15 @@
   #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-crypto)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages suckless)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages textutils)
+  #:use-module (gnu packages time)
   #:use-module (gnu packages video)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
@@ -142,12 +149,12 @@
         (base32 "0qlv7b4c2mmjfd65y100d11x8iqyg5f6lfiws3cgmpjidhdygnxc"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libxcb" ,libxcb)
-       ("libxinerama" ,libxinerama)
-       ("sxhkd" ,sxhkd)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-keysyms" ,xcb-util-keysyms)
-       ("xcb-util-wm" ,xcb-util-wm)))
+     (list libxcb
+           libxinerama
+           sxhkd
+           xcb-util
+           xcb-util-keysyms
+           xcb-util-wm))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -176,21 +183,19 @@ the leaves of a full binary tree.")
        (file-name (string-append "herbstluftwm-" version ".tar.gz"))))
     (build-system cmake-build-system)
     (inputs
-     `(("dzen"        ,dzen)
-       ("dmenu"       ,dmenu)
-       ("glib"        ,glib)
-       ("glibmm"      ,glibmm)
-       ("xterm"       ,xterm)
-       ("xsetroot"    ,xsetroot)
-       ("libx11"      ,libx11)
-       ("libxext"     ,libxext)
-       ("libxinerama" ,libxinerama)
-       ("libxrandr"   ,libxrandr)
-       ("libxft"      ,libxft)))
+     (list dzen
+           dmenu
+           glib
+           glibmm
+           xterm
+           xsetroot
+           libx11
+           libxext
+           libxinerama
+           libxrandr
+           libxft))
     (native-inputs
-     `(("asciidoc"   ,asciidoc)
-       ("pkg-config" ,pkg-config)
-       ("python"     ,python)))
+     (list asciidoc pkg-config python))
     (arguments
      '(#:tests? #f
        #:configure-flags
@@ -259,19 +264,17 @@ or musca).
        #:out-of-source? #t
        #:tests? #f)) ; no test suite
     (inputs
-     `(("openlibm" ,openlibm)
-       ("libconfuse" ,libconfuse)
-       ("libyajl" ,libyajl)
-       ("alsa-lib" ,alsa-lib)
-       ("pulseaudio" ,pulseaudio)
-       ("libnl" ,libnl)
-       ("libcap" ,libcap)
-       ("asciidoc" ,asciidoc)))
+     (list openlibm
+           libconfuse
+           libyajl
+           alsa-lib
+           pulseaudio
+           libnl
+           libcap
+           asciidoc))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("docbook-xsl" ,docbook-xsl)
-       ("libxml2" ,libxml2)             ;for XML_CATALOG_FILES
-       ("xmlto" ,xmlto)))
+     (list pkg-config docbook-xsl libxml2 ;for XML_CATALOG_FILES
+           xmlto))
     (home-page "https://i3wm.org/i3status/")
     (synopsis "Status bar for i3bar, dzen2, xmobar or similar programs")
     (description "i3status is a small program for generating a status bar for
@@ -316,30 +319,30 @@ commands would.")
                  (("Exec=i3-with-shmlog") (string-append "Exec=" i3-with-shmlog)))
                #t))))))
     (inputs
-     `(("libxcb" ,libxcb)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-cursor" ,xcb-util-cursor)
-       ("xcb-util-keysyms" ,xcb-util-keysyms)
-       ("xcb-util-wm" ,xcb-util-wm)
-       ("xcb-util-xrm" ,xcb-util-xrm)
-       ("libxkbcommon" ,libxkbcommon)
-       ("libev" ,libev)
-       ("libyajl" ,libyajl)
-       ("xmlto" ,xmlto)
-       ("perl-pod-simple" ,perl-pod-simple)
-       ("libx11" ,libx11)
-       ("pcre" ,pcre)
-       ("startup-notification" ,startup-notification)
-       ("pango" ,pango)
-       ("cairo" ,cairo)))
+     (list libxcb
+           xcb-util
+           xcb-util-cursor
+           xcb-util-keysyms
+           xcb-util-wm
+           xcb-util-xrm
+           libxkbcommon
+           libev
+           libyajl
+           xmlto
+           perl-pod-simple
+           libx11
+           pcre
+           startup-notification
+           pango
+           cairo))
     (native-inputs
-     `(("which" ,which)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("asciidoc" ,asciidoc)
-       ;; For building the documentation.
-       ("libxml2" ,libxml2)
-       ("docbook-xsl" ,docbook-xsl)))
+     (list which
+           perl
+           pkg-config
+           asciidoc
+           ;; For building the documentation.
+           libxml2
+           docbook-xsl))
     (home-page "https://i3wm.org/")
     (synopsis "Tiling window manager")
     (description "i3 is a tiling X11 window manager that dynamically manages
@@ -395,16 +398,16 @@ from many programming languages.")
                 "02szjsaz7rqrdkd0r2nwgwa85c4hwfrcskxw7ryk695kmjcfhzv3"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("cairo" ,cairo)
-       ("libev" ,libev)
-       ("linux-pam" ,linux-pam)
-       ("libxcb" ,libxcb)
-       ("libxkbcommon" ,libxkbcommon)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-image" ,xcb-util-image)
-       ("xcb-util-xrm" ,xcb-util-xrm)))
+     (list cairo
+           libev
+           linux-pam
+           libxcb
+           libxkbcommon
+           xcb-util
+           xcb-util-image
+           xcb-util-xrm))
     (home-page "https://i3wm.org/i3lock/")
     (synopsis "Lightweight screen locker")
     (description
@@ -428,19 +431,17 @@ Despite the name it should work with any X11 window manager.")
                 "1bd5nrlga5g1sz1f64gnc3dqy8yfrr4q1ss59krymbpxa1hhf55c"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("automake" ,automake)
-       ("autoconf" ,autoconf)))
+     (list pkg-config automake autoconf))
     (inputs
-     `(("cairo" ,cairo)
-       ("mesa" ,mesa)
-       ("libev" ,libev)
-       ("linux-pam" ,linux-pam)
-       ("libxcb" ,libxcb)
-       ("libxkbcommon" ,libxkbcommon)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-image" ,xcb-util-image)
-       ("xcb-util-xrm" ,xcb-util-xrm)))
+     (list cairo
+           mesa
+           libev
+           linux-pam
+           libxcb
+           libxkbcommon
+           xcb-util
+           xcb-util-image
+           xcb-util-xrm))
     (home-page "https://github.com/karulont/i3lock-blur")
     (synopsis "Lightweight screen locker with transparent blurring background")
     (description
@@ -464,9 +465,7 @@ manager.")
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (home-page "https://github.com/vivien/i3blocks")
     (synopsis "Minimalist scheduler for status bar scripts")
     (description "i3blocks executes your command lines and generates a
@@ -488,8 +487,7 @@ i3status.")
                 "0qvd9bq16jyy7v3ma82qcnvz9j503bw0mh7h55gkjf7ir62ck0jk"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-anyevent" ,perl-anyevent)
-       ("perl-json-xs" ,perl-json-xs)))
+     (list perl-anyevent perl-json-xs))
     (home-page "https://metacpan.org/release/AnyEvent-I3")
     (synopsis
      "Communicate with the i3 window manager through perl")
@@ -530,7 +528,7 @@ You can then subscribe to events or send messages and receive their replies.")
                         ;; Avoid unspecified return value.
                         #t))))))
     (propagated-inputs
-     `(("i3-wm" ,i3-wm)))
+     (list i3-wm))
     (home-page "https://github.com/ziberna/i3-py")
     (synopsis "Python interface to the i3 window manager")
     (description "This package allows you to interact from a Python program
@@ -542,6 +540,58 @@ subscribe to events.")
 (define-public python2-i3-py
   (package-with-python2 python-i3-py))
 
+(define-public qtile
+  (package
+    (name "qtile")
+    (version "0.18.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "qtile" version))
+        (sha256
+          (base32 "14hb26xkza7brvkd4276j60mxd3zsas72ih6y0cq3j060izm1865"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f ; Tests require Xvfb and writable temp/cache space
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "libqtile/pangocffi.py"
+               (("^gobject = ffi.dlopen.*")
+                 (string-append "gobject = ffi.dlopen(\""
+                  (assoc-ref inputs "glib") "/lib/libgobject-2.0.so.0\")\n"))
+                (("^pango = ffi.dlopen.*")
+                 (string-append "pango = ffi.dlopen(\""
+                  (assoc-ref inputs "pango") "/lib/libpango-1.0.so.0\")\n"))
+                (("^pangocairo = ffi.dlopen.*")
+                 (string-append "pangocairo = ffi.dlopen(\""
+                  (assoc-ref inputs "pango") "/lib/libpangocairo-1.0.so.0\")\n"))))))))
+    (inputs
+      (list glib pango pulseaudio))
+    (propagated-inputs
+      (list python-cairocffi
+            python-cffi
+            python-dateutil
+            python-dbus-next
+            python-iwlib
+            python-keyring
+            python-mpd2
+            python-pyxdg
+            python-xcffib))
+    (native-inputs
+      (list pkg-config
+            python-flake8
+            python-pep8-naming
+            python-psutil
+            python-pytest-cov
+            python-setuptools-scm))
+    (home-page "http://qtile.org")
+    (synopsis "Hackable tiling window manager written and configured in Python")
+    (description "Qtile is simple, small, and extensible.  It's easy to write
+your own layouts, widgets, and built-in commands.")
+    (license license:expat)))
+
 (define-public quickswitch-i3
   (let ((commit "ed692b1e8f43b95bd907ced26238ce8ccb2ed28f")
         (revision "1")) ; Guix package revision
@@ -576,8 +626,7 @@ subscribe to events.")
                           ;; Avoid unspecified return value.
                           #t))))))
       (inputs
-       `(("python-i3-py" ,python-i3-py)
-         ("dmenu" ,dmenu)))
+       (list python-i3-py dmenu))
       (home-page "https://github.com/proxypoke/quickswitch-for-i3")
       (synopsis "Quickly change to and locate windows in the i3 window manager")
       (description
@@ -613,9 +662,7 @@ prompt.")
        ("xcb-util-image" ,xcb-util-image)
        ("xcb-util-xrm" ,xcb-util-xrm)))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (home-page "https://github.com/PandorasFox/i3lock-color")
     (synopsis "Screen locker with color configuration support")
     (description
@@ -677,10 +724,7 @@ Features include:
                (copy-recursively "icons" icons)
                #t))))))
     (inputs
-     `(("imagemagick" ,imagemagick)
-       ("wmctrl" ,wmctrl)
-       ("i3lock" ,i3lock)
-       ("gawk" ,gawk)))
+     (list imagemagick wmctrl i3lock gawk))
     (home-page "https://github.com/meskarune/i3lock-fancy")
     (synopsis "Screen locker with screenshot function")
     (description
@@ -707,14 +751,17 @@ desktop environment.")
               (patches (search-patches "xmonad-dynamic-linking.patch"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
-       ("ghc-quickcheck"            ,ghc-quickcheck)
-       ("ghc-semigroups"            ,ghc-semigroups)
-       ("ghc-setlocale"             ,ghc-setlocale)
-       ("ghc-utf8-string"           ,ghc-utf8-string)
-       ("ghc-x11"                   ,ghc-x11)))
+     (list ghc-extensible-exceptions
+           ghc-data-default
+           ghc-quickcheck
+           ghc-semigroups
+           ghc-setlocale
+           ghc-utf8-string
+           ghc-x11))
     (arguments
-     `(#:phases
+     `(#:cabal-revision
+       ("1" "0yqh96qqphllr0zyz5j93cij5w2qvf39xxnrb52pz0qz3pywz9wd")
+       #:phases
        (modify-phases %standard-phases
          (add-after
           'install 'install-xsession
@@ -745,36 +792,36 @@ tiled on several screens.")
 (define-public xmobar
   (package
     (name "xmobar")
-    (version "0.34")
+    (version "0.39")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://hackage/package/xmobar/"
+              (uri (string-append "https://hackage.haskell.org/package/xmobar/"
                                   "xmobar-" version ".tar.gz"))
               (sha256
                (base32
-                "0x09xbz7y9ay0046j1xpr9jjk5jqivqi06vm3q6mhcrgc4y922rx"))))
+                "1k1n3ff0ikdmfq0mi8r2vpqg1iq6hsw1drvxps6k98rvvn87pws6"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hspec" ,ghc-hspec)
-       ("hspec-discover" ,hspec-discover)))
+     (list ghc-hspec hspec-discover))
     (inputs
-     `(("ghc-alsa-core" ,ghc-alsa-core)
-       ("ghc-alsa-mixer" ,ghc-alsa-mixer)
-       ("ghc-dbus" ,ghc-dbus)
-       ("ghc-hinotify" ,ghc-hinotify)
-       ("ghc-http" ,ghc-http)
-       ("ghc-http-conduit" ,ghc-http-conduit)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-iwlib" ,ghc-iwlib)
-       ("ghc-libmpd" ,ghc-libmpd)
-       ("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-parsec-numbers" ,ghc-parsec-numbers)
-       ("ghc-regex-compat" ,ghc-regex-compat)
-       ("ghc-temporary" ,ghc-temporary)
-       ("ghc-timezone-olson" ,ghc-timezone-olson)
-       ("ghc-x11" ,ghc-x11)
-       ("ghc-x11-xft" ,ghc-x11-xft)
-       ("libxpm" ,libxpm)))
+     (list ghc-alsa-core
+           ghc-alsa-mixer
+           ghc-dbus
+           ghc-hinotify
+           ghc-http
+           ghc-http-conduit
+           ghc-http-types
+           ghc-iwlib
+           ghc-libmpd
+           ghc-netlink
+           ghc-old-locale
+           ghc-parsec-numbers
+           ghc-regex-compat
+           ghc-temporary
+           ghc-timezone-olson
+           ghc-x11
+           ghc-x11-xft
+           libxpm))
     (arguments
      `(#:configure-flags (list "--flags=all_extensions")
        #:phases
@@ -806,8 +853,7 @@ Haskell, no knowledge of the language is required to install and use it.")
         (base32 "04djfyjab3c5y9z9x8zd0xcx0jyy35zq7cl9ddr4ppf6k5ky6iky"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-strict" ,ghc-strict)
-       ("ghc-xdg-basedir" ,ghc-xdg-basedir)))
+     (list ghc-strict ghc-xdg-basedir))
     (home-page "http://dmwit.com/yeganesh/")
     (synopsis "Small wrapper around dmenu")
     (description "@code{yeganesh} is a small wrapper around demnu.  Like
@@ -828,15 +874,18 @@ particular, it displays commonly-chosen options before uncommon ones.")
        (sha256
         (base32 "1pddgkvnbww28wykncc7j0yb0lv15bk7xnnhdcbrwkxzw66w6wmd"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:cabal-revision
+       ("1" "0vimkby2gq6sgzxzbvz67caba609xqlv2ii2gi8a1cjrnn6ib011")))
     (propagated-inputs
-     `(("ghc-old-time" ,ghc-old-time)
-       ("ghc-random" ,ghc-random)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
-       ("ghc-semigroups" ,ghc-semigroups)
-       ("ghc-x11" ,ghc-x11)
-       ("ghc-x11-xft" ,ghc-x11-xft)
-       ("xmonad" ,xmonad)))
+     (list ghc-old-time
+           ghc-random
+           ghc-utf8-string
+           ghc-extensible-exceptions
+           ghc-semigroups
+           ghc-x11
+           ghc-x11-xft
+           xmonad))
     (home-page "https://xmonad.org")
     (synopsis "Third party extensions for xmonad")
     (description
@@ -859,9 +908,7 @@ tiling window manager for X.")
        (patches (search-patches "evilwm-lost-focus-bug.patch"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxrandr" ,libxrandr)))
+     (list libx11 libxext libxrandr))
     (arguments
      `(#:modules ((srfi srfi-26)
                   (guix build utils)
@@ -926,18 +973,18 @@ drags, snap-to-border support, and virtual desktops.")
                      Type=Application~%" ,name ,synopsis out)))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("freetype" ,freetype)
-       ("fribidi" ,fribidi)
-       ("imlib2" ,imlib2)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxft" ,libxft)
-       ("libxinerama" ,libxinerama)
-       ("libxpm"  ,libxpm)
-       ("libxrandr" ,libxrandr)
-       ("libxrender" ,libxrender)))
+     (list freetype
+           fribidi
+           imlib2
+           libx11
+           libxext
+           libxft
+           libxinerama
+           libxpm
+           libxrandr
+           libxrender))
     (description "Fluxbox is a window manager.  It is light on resources
 and easy to handle yet full of features to make an easy and fast desktop
 experience.")
@@ -947,7 +994,7 @@ experience.")
 (define-public fnott
   (package
     (name "fnott")
-    (version "1.1.0")
+    (version "1.1.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -956,21 +1003,16 @@ experience.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1xaz13iry3fdjhqk9xzg29kbv7hqj8dzzqxr5mhrj8f2m013jdc3"))))
+                "0vkwyci4z4jj2aczxkrmj0861j5jczjr8isasa7gml93nlvyw7gv"))))
     (build-system meson-build-system)
     (arguments `(#:build-type "release"))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("wayland-protocols" ,wayland-protocols)
-       ("tllist" ,tllist)
-       ("gcc" ,gcc-10)     ;TODO: Remove when the default compiler is > GCC 7.
-       ("scdoc" ,scdoc)))
+     (list pkg-config
+           wayland-protocols
+           tllist
+           scdoc))
     (inputs
-     `(("wlroots" ,wlroots)
-       ("wayland" ,wayland)
-       ("fcft" ,fcft)
-       ("dbus" ,dbus)
-       ("libpng" ,libpng)))
+     (list wlroots wayland fcft dbus libpng))
     (home-page "https://codeberg.org/dnkl/fnott")
     (synopsis "Keyboard driven and lightweight Wayland notification daemon")
     (description "Fnott is a keyboard driven and lightweight notification daemon
@@ -1003,41 +1045,42 @@ for wlroots-based Wayland compositors.")
                "\"~c\"")))
            #t))
        (patches
-        (search-patches "awesome-reproducible-png.patch"))))
+        (search-patches "awesome-reproducible-png.patch"
+                        "awesome-4.3-fno-common.patch"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("asciidoc" ,asciidoc)
-       ("docbook-xsl" ,docbook-xsl)
-       ("doxygen" ,doxygen)
-       ("gperf" ,gperf)
-       ("imagemagick" ,imagemagick)
-       ("libxml2" ,libxml2)             ;for XML_CATALOG_FILES
-       ("lua-ldoc" ,lua-ldoc)
-       ("pkg-config" ,pkg-config)
-       ("xmlto" ,xmlto)))
+     (list asciidoc
+           docbook-xsl
+           doxygen
+           gperf
+           imagemagick
+           libxml2 ;for XML_CATALOG_FILES
+           lua-ldoc
+           pkg-config
+           xmlto))
     (inputs
-     `(("cairo" ,cairo)
-       ("dbus" ,dbus)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
-       ("gobject-introspection" ,gobject-introspection)
-       ("imlib2" ,imlib2)
-       ("libev" ,libev)
-       ("libxcb" ,libxcb)
-       ("libxcursor" ,libxcursor)
-       ("libxdg-basedir" ,libxdg-basedir)
-       ("libxkbcommon" ,libxkbcommon)
-       ("lua" ,lua)
-       ("lua-lgi" ,lua-lgi)
-       ("pango" ,pango)
-       ("startup-notification" ,startup-notification)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-cursor" ,xcb-util-cursor)
-       ("xcb-util-image" ,xcb-util-image)
-       ("xcb-util-keysyms" ,xcb-util-keysyms)
-       ("xcb-util-renderutil" ,xcb-util-renderutil)
-       ("xcb-util-xrm" ,xcb-util-xrm)
-       ("xcb-util-wm" ,xcb-util-wm)))
+     (list cairo
+           dbus
+           gdk-pixbuf
+           glib
+           gobject-introspection
+           imlib2
+           libev
+           libxcb
+           libxcursor
+           libxdg-basedir
+           libxkbcommon
+           lua
+           lua-lgi
+           pango
+           startup-notification
+           xcb-util
+           xcb-util-cursor
+           xcb-util-image
+           xcb-util-keysyms
+           xcb-util-renderutil
+           xcb-util-xrm
+           xcb-util-wm))
     (arguments
      `(#:modules ((guix build cmake-build-system)
                   (guix build utils)
@@ -1085,7 +1128,8 @@ for wlroots-based Wayland compositors.")
                (setenv "LD_LIBRARY_PATH" cairo)
                (setenv "LUA_PATH" (string-append "?.lua;" lua-path))
                (setenv "LUA_CPATH" lua-cpath)
-               #t)))
+               (setenv "HOME" (getcwd))
+               (setenv "XDG_CACHE_HOME" (getcwd)))))
          (replace 'check
            (lambda _
              ;; There aren't any tests, so just make sure the binary
@@ -1122,17 +1166,17 @@ dynamic and extensible using the Lua programming language.")
 (define-public menumaker
   (package
     (name "menumaker")
-    (version "0.99.12")
+    (version "0.99.13")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/menumaker/"
                            "menumaker-" version ".tar.gz"))
        (sha256
-        (base32 "034v5204bsgkzzk6zfa5ia63q95gln47f7hwf96yvad5hrhmd8z3"))))
+        (base32 "0hbn8bid43725njqcfklvan3n4hwpfx8nq8xkkdwkmpd37kfq594"))))
     (build-system gnu-build-system)
     (inputs
-     `(("python" ,python)))
+     (list python))
     (synopsis "Heuristics-driven menu generator")
     (description
      "MenuMaker is a menu generation utility for a number of X window
@@ -1170,12 +1214,9 @@ all of them.  Currently supported window managers include:
          "0h52hj3ay8mfhwvmfxbxlfyq74hifdk8wxgxp7fr4iy6189hg7w7"))))
     (build-system gnu-build-system)
     (inputs
-     `(("python-2" ,python-2)
-       ("gtk+-2" ,gtk+-2)))
+     (list python-2 gtk+-2))
     (native-inputs
-     `(("python2-pygtk" ,python2-pygtk)
-       ("gtk-doc" ,gtk-doc)
-       ("pkg-config" ,pkg-config)))
+     (list python2-pygtk gtk-doc pkg-config))
     (synopsis "Library for registering global keyboard shortcuts")
     (description
      "Keybinder is a library for registering global keyboard shortcuts.
@@ -1199,11 +1240,9 @@ Keybinder works with GTK-based applications using the X Window System.")
          "0830ihwnalw59pp1xzrp37dn58n8vwb8zasnm4a1h81v3x7dxqz6"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gtk+" ,gtk+)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list gtk+ gobject-introspection))
     (native-inputs
-     `(("gtk-doc" ,gtk-doc)
-       ("pkg-config" ,pkg-config)))
+     (list gtk-doc pkg-config))
     (synopsis "Library for registering global keyboard shortcuts, Gtk3 version")
     (description
      "Keybinder is a library for registering global keyboard shortcuts.
@@ -1260,8 +1299,7 @@ Keybinder works with GTK-based applications using the X Window System.")
        ("xcb-util-wm" ,xcb-util-wm)
        ("xcb-util-keysyms" ,xcb-util-keysyms)))
     (native-inputs
-     `(("libxt" ,libxt)
-       ("pkg-config" ,pkg-config)))
+     (list libxt pkg-config))
     (synopsis "Minimalistic automatic tiling window manager")
     (description
      "Spectrwm is a small dynamic tiling and reparenting window manager for X11.
@@ -1321,12 +1359,9 @@ It is inspired by Xmonad and dwm.  Its major features include:
                            output)))
                #t))))))
     (inputs
-     `(("libxft" ,libxft)
-       ("libxrandr" ,libxrandr)
-       ("libxinerama" ,libxinerama)))
+     (list libxft libxrandr libxinerama))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("bison" ,bison)))
+     (list pkg-config bison))
     (home-page "https://github.com/leahneukirchen/cwm")
     (synopsis "OpenBSD fork of the calmwm window manager")
     (description "Cwm is a stacking window manager for X11.  It is an OpenBSD
@@ -1336,7 +1371,7 @@ project derived from the original Calm Window Manager.")
 (define-public dwl
   (package
     (name "dwl")
-    (version "0.2")
+    (version "0.2.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1345,7 +1380,7 @@ project derived from the original Calm Window Manager.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0r5hsxpckkrq1y7bjfq58rlc5xy45z499rg628q3nh289978ail1"))))
+                "0js8xjc2rx1ml6s58s90jrak5n7vh3kj5na2j4yy3qy0cb501xcm"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -1357,9 +1392,9 @@ project derived from the original Calm Window Manager.")
        (modify-phases %standard-phases
          (delete 'configure))))         ; no configure
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("wlroots" ,wlroots)))
+     (list wlroots))
     (home-page "https://github.com/djpohly/dwl")
     (synopsis "Dynamic window manager for Wayland")
     (description
@@ -1386,12 +1421,9 @@ limited size and a few external dependencies.  It is configurable via
                 "0zc3fl1mbhq0iyndy4ysmy8vv5c7xwf54rbgamzfhfvsgdq160pl"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gtk+" ,gtk+-2)
-       ("gtkmm" ,gtkmm-2)
-       ("glib" ,glib)
-       ("glibmm" ,glibmm)))
+     (list gtk+-2 gtkmm-2 glib glibmm))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://projects.l3ib.org/nitrogen/")
     (synopsis "Background browser and setter for X windows")
     (description
@@ -1415,34 +1447,34 @@ its size
 (define-public polybar
   (package
     (name "polybar")
-    (version "3.5.5")
+    (version "3.5.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/polybar/polybar/releases/"
                            "download/" version "/polybar-" version ".tar.gz"))
        (sha256
-        (base32 "1c8br9972x1qw7l2shj9aqzv0gsx58fdh3r0f1z5i1bqdwxmsqky"))))
+        (base32 "1nr386jdlm8qkbdf23w7lyvbfhr362s90f957fawnyi1finhw8bk"))))
     (build-system cmake-build-system)
     (arguments
      ;; Test is disabled because it requires downloading googletest from the
      ;; Internet.
      '(#:tests? #f))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("cairo" ,cairo)
-       ("i3-wm" ,i3-wm)
-       ("jsoncpp" ,jsoncpp)
-       ("libmpdclient" ,libmpdclient)
-       ("libnl" ,libnl)
-       ("libxcb" ,libxcb)
-       ("pulseaudio" ,pulseaudio)
-       ("xcb-proto" ,xcb-proto)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-cursor" ,xcb-util-cursor)
-       ("xcb-util-image" ,xcb-util-image)
-       ("xcb-util-wm" ,xcb-util-wm)
-       ("xcb-util-xrm" ,xcb-util-xrm)))
+     (list alsa-lib
+           cairo
+           i3-wm
+           jsoncpp
+           libmpdclient
+           libnl
+           libxcb
+           pulseaudio
+           xcb-proto
+           xcb-util
+           xcb-util-cursor
+           xcb-util-image
+           xcb-util-wm
+           xcb-util-xrm))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("python-sphinx" ,python-sphinx) ; for the manual
@@ -1460,7 +1492,7 @@ functionality to display information about the most commonly used services.")
 (define-public wlroots
   (package
     (name "wlroots")
-    (version "0.13.0")
+    (version "0.14.1")
     (source
      (origin
        (method git-fetch)
@@ -1469,11 +1501,10 @@ functionality to display information about the most commonly used services.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "01plhbnsp5yg18arz0v8fr0pr9l4w4pdzwkg9px486qdvb3s1vgy"))))
+        (base32 "1sshp3lvlkl1i670kxhwsb4xzxl8raz6769kqvgmxzcb63ns9ay1"))))
     (build-system meson-build-system)
     (arguments
-     `(#:configure-flags '("-Dlogind-provider=elogind")
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-before 'configure 'hardcode-paths
            (lambda* (#:key inputs #:allow-other-keys)
@@ -1483,20 +1514,20 @@ functionality to display information about the most commonly used services.")
                                             "/bin/Xwayland")))
              #t)))))
     (propagated-inputs
-     `(;; As required by wlroots.pc.
-       ("elogind" ,elogind)
-       ("eudev" ,eudev)
-       ("libinput" ,libinput)
-       ("libxkbcommon" ,libxkbcommon)
-       ("mesa" ,mesa)
-       ("pixman" ,pixman)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
-       ("xcb-util-errors" ,xcb-util-errors)
-       ("xcb-util-wm" ,xcb-util-wm)
-       ("xorg-server-xwayland" ,xorg-server-xwayland)))
+     (list ;; As required by wlroots.pc.
+           eudev
+           libinput
+           libxkbcommon
+           mesa
+           pixman
+           seatd
+           wayland
+           wayland-protocols
+           xcb-util-errors
+           xcb-util-wm
+           xorg-server-xwayland))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/swaywm/wlroots")
     (synopsis "Pluggable, composable, unopinionated modules for building a
 Wayland compositor")
@@ -1507,7 +1538,7 @@ modules for building a Wayland compositor.")
 (define-public sway
   (package
     (name "sway")
-    (version "1.6")
+    (version "1.6.1")
     (source
      (origin
        (method git-fetch)
@@ -1516,7 +1547,7 @@ modules for building a Wayland compositor.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0vnplva11yafhbijrk68wy7pw0psn9jm0caaymswq1s951xsn1c8"))))
+        (base32 "0j4sdbsrlvky1agacc0pcz9bwmaxjmrapjnzscbd2i0cria2fc5j"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -1534,23 +1565,19 @@ modules for building a Wayland compositor.")
                 (string-append "'" (assoc-ref inputs "scdoc")
                                "/bin/scdoc'")))
              #t)))))
-    (inputs `(("cairo" ,cairo)
-              ("elogind" ,elogind)
-              ("gdk-pixbuf" ,gdk-pixbuf)
-              ("json-c" ,json-c)
-              ("libevdev" ,libevdev)
-              ("libinput" ,libinput)
-              ("libxkbcommon" ,libxkbcommon)
-              ("pango" ,pango)
-              ("swaybg" ,swaybg)
-              ("wayland" ,wayland)
-              ("wlroots" ,wlroots)))
+    (inputs (list cairo
+                  elogind
+                  gdk-pixbuf
+                  json-c
+                  libevdev
+                  libinput
+                  libxkbcommon
+                  pango
+                  swaybg
+                  wayland
+                  wlroots))
     (native-inputs
-     `(("linux-pam" ,linux-pam)
-       ("mesa" ,mesa)
-       ("pkg-config" ,pkg-config)
-       ("scdoc" ,scdoc)
-       ("wayland-protocols" ,wayland-protocols)))
+     (list linux-pam mesa pkg-config scdoc wayland-protocols))
     (home-page "https://github.com/swaywm/sway")
     (synopsis "Wayland compositor compatible with i3")
     (description "Sway is a i3-compatible Wayland compositor.")
@@ -1572,11 +1599,8 @@ modules for building a Wayland compositor.")
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags '("-Dlogind-provider=elogind")))
-    (inputs `(("elogind" ,elogind)
-              ("wayland" ,wayland)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("scdoc" ,scdoc)
-                     ("wayland-protocols" ,wayland-protocols)))
+    (inputs (list elogind wayland))
+    (native-inputs (list pkg-config scdoc wayland-protocols))
     (home-page "https://github.com/swaywm/swayidle")
     (synopsis "Idle management daemon for Wayland compositors")
     (description "Swayidle is a idle management daemon for Wayland compositors.")
@@ -1596,20 +1620,47 @@ modules for building a Wayland compositor.")
        (sha256
         (base32 "0r95p4w11dwm5ra614vddz83r8j7z6gd120z2vcchy7m9b0f15kf"))))
     (build-system meson-build-system)
-    (inputs `(("cairo" ,cairo)
-              ("gdk-pixbuf" ,gdk-pixbuf)
-              ("libxkbcommon" ,libxkbcommon)
-              ;("linux-pam" ,linux-pam) ; FIXME: Doesn't work.
-              ("wayland" ,wayland)))
-    (native-inputs `(("pango" ,pango)
-                     ("pkg-config" ,pkg-config)
-                     ("scdoc" ,scdoc)
-                     ("wayland-protocols" ,wayland-protocols)))
+    (inputs (list cairo gdk-pixbuf libxkbcommon
+                  ;("linux-pam" ,linux-pam) ; FIXME: Doesn't work.
+                  wayland))
+    (native-inputs (list pango pkg-config scdoc wayland-protocols))
     (home-page "https://github.com/swaywm/sway")
     (synopsis "Screen locking utility for Wayland compositors")
     (description "Swaylock is a screen locking utility for Wayland compositors.")
     (license license:expat))) ; MIT license
 
+(define-public swaylock-effects
+  ;; Latest release is from November 2020, but doesn't support disabling SSE.
+  (let ((commit "5cb9579faaf5662b111f5722311b701eff1c1d00")
+        (revision "1"))
+    (package
+      (inherit swaylock)
+      (name "swaylock-effects")
+      (version (git-version "1.6-3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/mortie/swaylock-effects")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "036dkhfqgk7g9vbr5pxgrs66h5fz0rwdsc67i1w51aa9v01r35ca"))))
+      (arguments
+       `(#:configure-flags '("-Dsse=false")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-meson
+             (lambda _
+               (substitute* "meson.build"
+                 (("'-mtune=native',") "")))))))
+      (synopsis "Screen locking utility for Wayland compositors with effects")
+      (description "@code{Swaylock-effects} is a fork of swaylock with additional
+features, such as the ability to take a screenshot as the background image,
+display a clock or apply image manipulation techniques to the background image.")
+      (home-page "https://github.com/mortie/swaylock-effects"))))
+
 (define-public swaybg
   (package
     (name "swaybg")
@@ -1624,12 +1675,8 @@ modules for building a Wayland compositor.")
        (sha256
         (base32 "1lmqz5bmig90gq2m7lwf02d2g7z4hzf8fhqz78c8vk92c6p4xwbc"))))
     (build-system meson-build-system)
-    (inputs `(("cairo" ,cairo)
-              ("gdk-pixbuf" ,gdk-pixbuf)
-              ("wayland" ,wayland)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("scdoc" ,scdoc)
-                     ("wayland-protocols" ,wayland-protocols)))
+    (inputs (list cairo gdk-pixbuf wayland))
+    (native-inputs (list pkg-config scdoc wayland-protocols))
     (home-page "https://github.com/swaywm/sway")
     (synopsis "Screen wallpaper utility for Wayland compositors")
     (description "Swaybg is a wallpaper utility for Wayland compositors.")
@@ -1638,7 +1685,7 @@ modules for building a Wayland compositor.")
 (define-public waybar
   (package
     (name "waybar")
-    (version "0.9.7")
+    (version "0.9.8")
     (source
      (origin
        (method git-fetch)
@@ -1647,25 +1694,23 @@ modules for building a Wayland compositor.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "17cn4d3dx92v40jd9vl41smp8hh3gf5chd1j2f7l1lrpfpnllg5x"))))
+        (base32 "109a49f064ma5js2d7maribmfalswbmmhq2fraa7hfz5pf2jxs2w"))))
     (build-system meson-build-system)
-    (inputs `(("date" ,date)
-              ("fmt" ,fmt)
-              ("gtk-layer-shell" ,gtk-layer-shell)
-              ("gtkmm" ,gtkmm)
-              ("jsoncpp" ,jsoncpp)
-              ("libdbusmenu" ,libdbusmenu)
-              ("libinput" ,libinput)
-              ("libmpdclent" ,libmpdclient)
-              ("libnl" ,libnl)
-              ("pulseaudio" ,pulseaudio)
-              ("spdlog" ,spdlog)
-              ("wayland" ,wayland)))
+    (inputs (list date
+                  fmt
+                  gtk-layer-shell
+                  gtkmm-3
+                  jsoncpp
+                  libdbusmenu
+                  libinput
+                  libmpdclient
+                  libnl
+                  libxml2
+                  pulseaudio
+                  spdlog
+                  wayland))
     (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("pkg-config" ,pkg-config)
-       ("scdoc" ,scdoc)
-       ("wayland-protocols" ,wayland-protocols)))
+     (list `(,glib "bin") pkg-config scdoc wayland-protocols))
     (home-page "https://github.com/Alexays/Waybar")
     (synopsis "Wayland bar for Sway and Wlroots based compositors")
     (description "Waybar is a highly customisable Wayland bar for Sway and
@@ -1686,8 +1731,8 @@ Wlroots based compositors.")
        (sha256
         (base32 "10c8zzp78s5bw34vvjhilipa28bsdx3jbyhnxgp8f8kawh3cvgsc"))))
     (build-system meson-build-system)
-    (inputs `(("wayland" ,wayland)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list wayland))
+    (native-inputs (list pkg-config))
     (home-page "https://github.com/emersion/wlr-randr")
     (synopsis "Utility to manage Wayland compositor outputs")
     (description "wlr-randr is a utility to manage outputs of a Wayland compositor.")
@@ -1707,14 +1752,8 @@ Wlroots based compositors.")
        (sha256
         (base32 "0hwvibpnrximb628w9dsfjpi30b5jy7nfkm4d94z5vhp78p43vxh"))))
     (build-system meson-build-system)
-    (inputs `(("cairo" ,cairo)
-              ("elogind" ,elogind)
-              ("gdk-pixbuf" ,gdk-pixbuf)
-              ("pango" ,pango)
-              ("wayland" ,wayland)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("scdoc" ,scdoc)
-                     ("wayland-protocols" ,wayland-protocols)))
+    (inputs (list cairo elogind gdk-pixbuf pango wayland))
+    (native-inputs (list pkg-config scdoc wayland-protocols))
     (home-page "https://wayland.emersion.fr/mako")
     (synopsis "Lightweight Wayland notification daemon")
     (description "Mako is a lightweight notification daemon for Wayland
@@ -1735,9 +1774,8 @@ compositors that support the layer-shell protocol.")
        (sha256
         (base32 "0nbpgm8qnn7ljsg9vgs35kl8l4rrk542vdcbx8wrn9r909ld3x92"))))
     (build-system meson-build-system)
-    (inputs `(("wayland" ,wayland)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("scdoc" ,scdoc)))
+    (inputs (list wayland))
+    (native-inputs (list pkg-config scdoc))
     (home-page "https://wayland.emersion.fr/kanshi")
     (synopsis "Hotswappable output profiles for Wayland")
     (description "Kanshi allows you to define output profiles that are
@@ -1880,9 +1918,7 @@ productive, customizable lisp based systems.")
     (inherit stumpwm-contrib)
     (name "stumpish")
     (inputs
-     `(("bash" ,bash)
-       ("rlwrap" ,rlwrap)
-       ("xprop" ,xprop)))
+     (list bash rlwrap xprop))
     (build-system trivial-build-system)
     (arguments
      '(#:modules ((guix build utils))
@@ -1892,12 +1928,9 @@ productive, customizable lisp based systems.")
          (copy-recursively (assoc-ref %build-inputs "source") ".")
          (chdir "util/stumpish")
          (substitute* "stumpish"
-           (("rlwrap") (string-append (assoc-ref %build-inputs "rlwrap")
-                                      "/bin/rlwrap"))
-           (("xprop") (string-append (assoc-ref %build-inputs "xprop")
-                                      "/bin/xprop"))
-           (("/bin/sh") (string-append (assoc-ref %build-inputs "bash")
-                                       "/bin/bash")))
+           (("rlwrap") (search-input-file %build-inputs "/bin/rlwrap"))
+           (("xprop") (search-input-file %build-inputs "/bin/xprop"))
+           (("/bin/sh") (search-input-file %build-inputs "/bin/bash")))
          (install-file "stumpish" (string-append %output "/bin")))))
     (home-page "https://github.com/stumpwm/stumpwm-contrib")
     (synopsis "StumpWM interactive shell")
@@ -2198,9 +2231,9 @@ PNG files.")
          (modify-phases %standard-phases
            (delete 'configure))))
       (inputs
-       `(("libxcb" ,libxcb)))
+       (list libxcb))
       (native-inputs
-       `(("perl" ,perl)))
+       (list perl))
       (home-page "https://github.com/LemonBoy/bar")
       (synopsis "Featherweight status bar")
       (description
@@ -2227,10 +2260,8 @@ wasting your precious memory.")
                  (base32
                   "0588g37h18lv50h7w8vfbwhvc3iajh7sdr53848spaif99nh3mh4"))))
       (inputs
-       `(("freetype" ,freetype)
-         ("libxft" ,libxft)
-         ("libx11" ,libx11)
-         ,@(package-inputs lemonbar)))
+       (modify-inputs (package-inputs lemonbar)
+         (prepend freetype libxft libx11)))
       (arguments
        (substitute-keyword-arguments (package-arguments lemonbar)
          ((#:make-flags make-flags)
@@ -2271,7 +2302,7 @@ support, for easier unicode usage.")))))
                 "0wnsfxvh4v02r2jjyh2n6jfkbj2dna2hlm6anl4b36lwji749k2k"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)))
+     (list libx11))
     (arguments
      `(#:tests? #f ;no test suite
        #:make-flags
@@ -2301,11 +2332,7 @@ button is pressed on the root window.")
                 "0qgxkrv9jnnnf3px7zh0paf8xsr4bcpf0f2nq9zy012m214223hs"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("libxinerama" ,libxinerama)
-       ("libxft" ,libxft)
-       ("freetype" ,freetype)
-       ("imlib2" ,imlib2)))
+     (list libx11 libxinerama libxft freetype imlib2))
     (arguments
      `(#:tests? #f ;no test suite
        #:make-flags
@@ -2357,15 +2384,15 @@ selected to stdout.  It can be controlled both via mouse and via keyboard.")
                #t))))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("libxft" ,libxft)
-       ("libxpm" ,libxpm)
-       ("libpng" ,libpng)
-       ("freetype" ,freetype)
-       ("imlib2" ,imlib2)
-       ("sed" ,sed)))
+     (list libx11
+           libxft
+           libxpm
+           libpng
+           freetype
+           imlib2
+           sed))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:tests? #f)) ;no test suite
     (home-page "https://sourceforge.net/projects/idesk/")
@@ -2391,10 +2418,7 @@ start-up.")
                 "1jxms4md2mwfjgm2pgg3vakpp33800jbn9hnl0j4jyfc9f1ckbsv"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("libxft" ,libxft)
-       ("libxinerama" ,libxinerama)
-       ("imlib2" ,imlib2)))
+     (list libx11 libxft libxinerama imlib2))
     (arguments
      `(#:make-flags
        (list (string-append "CC=" ,(cc-for-target))
@@ -2415,7 +2439,7 @@ shows a notification for the user on the screen.")
 (define-public cagebreak
   (package
     (name "cagebreak")
-    (version "1.6.0")
+    (version "1.8.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2424,15 +2448,13 @@ shows a notification for the user on the screen.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "02gxmypfj75amdd8lwdkkk7imw7lwmghpyk8h9asljy9aq6ymdqp"))))
+                "0296mnzk7qd0zvnhw716jvpp7madjsar373ixx4qcff0m0jwfrxm"))))
     (build-system meson-build-system)
     (arguments '(#:configure-flags '("-Dxwayland=true")))
     (native-inputs
-     `(("pandoc" ,pandoc)
-       ("pkg-config" ,pkg-config)))
+     (list pandoc pkg-config))
     (inputs
-     `(("pango" ,pango)
-       ("wlroots" ,wlroots)))
+     (list libevdev pango wlroots))
     (home-page "https://github.com/project-repo/cagebreak")
     (synopsis "Tiling wayland compositor inspired by ratpoison")
     (description
@@ -2456,10 +2478,7 @@ for wayland conceptually based on the X11 window manager
         (base32
          "1h52ldxankyhbbm1qbqz1f2q0j03c1b4mig7343bs3mc6fpm18gf"))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("libtool" ,libtool)))
+     (list autoconf automake pkg-config libtool))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f)) ;; no tests
@@ -2472,19 +2491,17 @@ read and write, and compatible with JSON.")
 (define-public hikari
   (package
     (name "hikari")
-    (version "2.2.3")
+    (version "2.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hikari.acmelabs.space/releases/"
                            "hikari-" version ".tar.gz"))
        (sha256
-        (base32 "1d023cphzi15k434n60l1rp5awxmdijvsxfrm59fmsvd5rjxh9q7"))))
+        (base32 "1jvy21irh6s7czff2hk63spswqibjcjhrpsgmrki5bii9ddi73wy"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("bmake" ,bmake)
-       ("pkg-config" ,pkg-config)
-       ("wayland-protocols" ,wayland-protocols)))
+     (list bmake pkg-config wayland-protocols))
     (inputs
      `(("cairo" ,cairo)
        ("libinput" ,libinput)
@@ -2520,6 +2537,75 @@ read and write, and compatible with JSON.")
 capabilities.  It is heavily inspired by the Calm Window manager(cwm).")
     (license license:bsd-2)))
 
+(define-public devour
+  (package
+    (name "devour")
+    (version "12")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/salman-abedin/devour")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1qq5l6d0fn8azg7sj7a4m2jsmhlpswl5793clcxs1p34vy4wb2lp"))))
+    (build-system gnu-build-system)
+    (inputs
+     (list libx11))
+    (arguments
+     `(#:tests? #f                      ;no tests
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))           ;no configure script
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "BIN_DIR=" %output "/bin"))))
+    (home-page "https://github.com/salman-abedin/devour")
+    (synopsis "X11 window swallower")
+    (description
+     "@command{devour} hides your current window before launching an external
+program and unhides it after quitting.")
+    (license license:gpl2)))
+
+(define-public trayer-srg
+  (package
+    (name "trayer-srg")
+    (version "1.1.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sargon/trayer-srg")
+             (commit (string-append "trayer-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1mvhwaqa9bng9wh3jg3b7y8gl7nprbydmhg963xg0r076jyzv0cg"))))
+    (native-inputs
+     (list libxmu pkg-config))
+    (inputs
+     (list libx11 gdk-pixbuf gtk+-2))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; There are no tests.
+       #:make-flags
+       (let ((out (assoc-ref %outputs "out")))
+         (list (string-append "CC=" ,(cc-for-target))
+               (string-append "PREFIX=" %output)))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key configure-flags #:allow-other-keys)
+             (apply invoke "./configure" configure-flags))))))
+    (home-page "https://github.com/sargon/trayer-srg")
+    (synopsis "Minimal GTK based system tray")
+    (description
+     "@command{trayer} is small program designed to provide systray
+functionality present in GNOME/KDE desktop enviroments for window managers
+which do not support it.")
+    (license license:expat)))
+
 (define-public wlogout
   (package
     (name "wlogout")
@@ -2535,11 +2621,9 @@ capabilities.  It is heavily inspired by the Calm Window manager(cwm).")
                 "1swhzkqkzli59c89pvrakfvicd00x7ga860c3x2pbb4y3xziqfvi"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("scdoc" ,scdoc)))
+     (list pkg-config scdoc))
     (inputs
-     `(("gtk-layer-shell" ,gtk-layer-shell)
-       ("gtk+" ,gtk+)))
+     (list gtk-layer-shell gtk+))
     (arguments
      '(#:tests? #f
        #:phases
diff --git a/gnu/packages/wordnet.scm b/gnu/packages/wordnet.scm
index 03dadd431e..f46cc27b76 100644
--- a/gnu/packages/wordnet.scm
+++ b/gnu/packages/wordnet.scm
@@ -86,8 +86,7 @@
     (outputs '("out"
                "tk"))                             ; for the Tcl/Tk GUI
 
-    (inputs `(("tk" ,tk)
-              ("tcl" ,tcl)))
+    (inputs (list tk tcl))
     (home-page "https://wordnet.princeton.edu/")
     (synopsis "Lexical database for the English language")
     (description
diff --git a/gnu/packages/wv.scm b/gnu/packages/wv.scm
index a8c0d3cbaf..1fdcf0ac2b 100644
--- a/gnu/packages/wv.scm
+++ b/gnu/packages/wv.scm
@@ -43,14 +43,9 @@
         (base32 "17f16lkdv1c3amaz2hagiicih59ynpp4786k1m2qa1sw68xhswsc"))))
     (build-system gnu-build-system)
     (inputs
-      `(("glib" ,glib)
-        ("libgsf" ,libgsf)
-        ("libjpeg" ,libjpeg-turbo)
-        ("libpng" ,libpng)
-        ("zlib" ,zlib)))
+      (list glib libgsf libjpeg-turbo libpng zlib))
     (native-inputs
-      `(("glib" ,glib "bin")
-        ("pkg-config" ,pkg-config)))
+      (list `(,glib "bin") pkg-config))
     (synopsis "Microsoft Word conversion library and utilities")
     (description
      "wv converts files written by Word 2000, 97, 95, and 6 (known internally as
diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm
index 475b5efe15..17765327bc 100644
--- a/gnu/packages/wxwidgets.scm
+++ b/gnu/packages/wxwidgets.scm
@@ -79,7 +79,7 @@
        ("shared-mime-info" ,shared-mime-info)
        ("xdg-utils" ,xdg-utils)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:configure-flags
        '("--with-regex" "--with-libmspack"
@@ -173,9 +173,8 @@ and many other languages.")
               (sha256
                (base32
                 "14kl1rsngm70v3mbyv1mal15iz2b18k97avjx8jn7s81znha1c7f"))))
-           (inputs `(("gstreamer" ,gstreamer)
-                     ("gst-plugins-base" ,gst-plugins-base)
-                     ,@(package-inputs wxwidgets)))
+           (inputs (modify-inputs (package-inputs wxwidgets)
+                     (prepend gstreamer gst-plugins-base)))
            (arguments
             (substitute-keyword-arguments (package-arguments wxwidgets)
               ((#:configure-flags flags)
@@ -231,15 +230,11 @@ and many other languages.")
                (("'build']") "'build_py', '--use_syswx']"))
              #t)))))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("wxwidgets" ,wxwidgets)))
+     (list gtk+ wxwidgets))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-waf" ,python-waf)))
+     (list pkg-config python-waf))
     (propagated-inputs
-     `(("python-numpy" ,python-numpy)
-       ("python-pillow" ,python-pillow)
-       ("python-six" ,python-six)))
+     (list python-numpy python-pillow python-six))
     (home-page "https://wxpython.org/")
     (synopsis "Cross platform GUI toolkit for Python")
     (description "wxPython is a cross-platform GUI toolkit for the Python
@@ -312,8 +307,8 @@ provide a 100% native look and feel for the application.")
                (close-pipe port))
              #t)))))
     (native-inputs
-     `(("mesa" ,mesa) ; for glcanvas
-       ("pkg-config" ,pkg-config)))
+     (list mesa ; for glcanvas
+           pkg-config))
     (inputs
      `(("gtk+" ,gtk+-2) ; for wxPython/src/helpers.cpp
        ("wxwidgets" ,wxwidgets-gtk2)))
@@ -335,15 +330,12 @@ provide a 100% native look and feel for the application.")
         (base32 "0agmmwg0zlsw1idygvqjpj1nk41akzlbdha0hsdk1k8ckz6niq8d"))))
     (build-system glib-or-gtk-build-system)
     (inputs
-     `(("wxwidgets" ,wxwidgets-3.1)
-       ("cairo" ,cairo)
-       ("ffmpeg" ,ffmpeg)))
+     (list wxwidgets-3.1 cairo ffmpeg))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
      ;; In Requires.private of libwxsvg.pc.
-     `(("libexif" ,libexif)
-       ("pango" ,pango)))
+     (list libexif pango))
     (synopsis "C++ library to create, manipulate and render SVG files")
     (description "wxSVG is a C++ library to create, manipulate and render
 @dfn{Scalable Vector Graphics} (SVG) files with the wxWidgets toolkit.")
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 391231f483..61d2fc1b74 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -11,9 +11,8 @@
 ;;; Copyright © 2015 Florian Paul Schmidt <mista.tapas@gmx.net>
 ;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016, 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2016 Petter <petter@mykolab.ch>
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
@@ -28,7 +27,7 @@
 ;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
 ;;; Copyright © 2019 Kyle Andrews <kyle.c.andrews@gmail.com>
 ;;; Copyright © 2019, 2020 Josh Holland <josh@inv.alid.pw>
-;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2019, 2021 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2020 David Wilson <david@daviwil.com>
 ;;; Copyright © 2020 Ivan Vilata i Balaguer <ivan@selidor.net>
@@ -52,6 +51,7 @@
 ;;; Copyright © 2021 Nikita Domnitskii <nikita@domnitskii.me>
 ;;; Copyright © 2021 ikasero <ahmed@ikasero.com>
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -70,6 +70,7 @@
 
 (define-module (gnu packages xdisorg)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
@@ -85,6 +86,7 @@
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -103,6 +105,7 @@
   #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages libbsd)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages m4)
@@ -116,6 +119,7 @@
   #:use-module (gnu packages qt)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages tcl)
+  #:use-module (gnu packages terminals)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages)
@@ -138,9 +142,7 @@
         (base32 "0f5070k2bwarghl1vq886pl52xck1x5p7x3qhlfchsc2y3dcqms9"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libxcb" ,libxcb)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-wm" ,xcb-util-wm)))
+     (list libxcb xcb-util xcb-util-wm))
     (arguments
      `(#:tests? #f                      ;no test suite
        #:make-flags (list (string-append "CC=" ,(cc-for-target))
@@ -225,10 +227,9 @@ program.")
         (base32 "0msw9b1hdy3gbq9w5d04mfizhyirz1c648x84mlcbzl8salm7vpg"))))
     (build-system python-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("xrandr" ,xrandr)
-       ("libxcb" ,libxcb)))
+     (list xrandr libxcb))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -264,7 +265,7 @@ used to further tweak the behaviour of the different profiles.")
 (define-public bemenu
   (package
     (name "bemenu")
-    (version "0.6.2")
+    (version "0.6.4")
     (source
      (origin
        (method git-fetch)
@@ -273,7 +274,7 @@ used to further tweak the behaviour of the different profiles.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "13y4y3i03vdx3zkh4lm67xmigzycf8fxg4fdr5s4x2brr3ya46fv"))))
+        (base32 "18vplvnymgc6576sdh84lm5rlwyb9d038plqpjs638hzskf4q577"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f
@@ -284,7 +285,7 @@ used to further tweak the behaviour of the different profiles.")
                           (string-append "PREFIX=" (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure))))
+         (delete 'configure))))         ; no configure script
     (inputs
      `(("cairo" ,cairo)
        ("libx11" ,libx11)
@@ -295,8 +296,7 @@ used to further tweak the behaviour of the different profiles.")
        ("wayland" ,wayland)
        ("wayland-protocols" ,wayland-protocols)))
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen pkg-config))
     (home-page "https://github.com/Cloudef/bemenu")
     (synopsis "Dynamic menu library and client program inspired by dmenu")
     (description
@@ -324,10 +324,7 @@ with X11 or Wayland, or in a text terminal with ncurses.")
    `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release")
      #:tests? #f)) ; Test suite is a rather manual process.
   (inputs
-   `(("qtbase" ,qtbase-5)
-     ("qtscript" ,qtscript)
-     ("qtsvg" ,qtsvg)
-     ("qtx11extras" ,qtx11extras)))
+   (list qtbase-5 qtscript qtsvg qtx11extras))
   (synopsis "Clipboard manager with advanced features")
   (description "CopyQ is clipboard manager with editing and scripting
 features.  CopyQ monitors system clipboard and saves its content in customized
@@ -351,11 +348,8 @@ application.")
     (arguments
      `(#:tests? #f))                    ;tests need /dev/uinput
     (inputs
-     `(("python-appdirs" ,python-appdirs)
-       ("python-evdev" ,python-evdev)
-       ("python-inotify-simple" ,python-inotify-simple)
-       ("python-xlib" ,python-xlib)
-       ("python-six" ,python-six)))
+     (list python-appdirs python-evdev python-inotify-simple python-xlib
+           python-six))
     (home-page "https://github.com/mooz/xkeysnail")
     (synopsis "Keyboard remapping tool for the X11 environment")
     (description
@@ -382,8 +376,7 @@ layers (evdev and uinput), making remapping work in almost all the places.")
     (arguments
      `(#:tests? #f))                    ;no test target
     (inputs
-     `(("libx11" ,libx11)
-       ("libxkbfile" ,libxkbfile)))
+     (list libx11 libxkbfile))
     (home-page "https://github.com/grwlf/xkb-switch")
     (synopsis "Switch your X keyboard layouts from the command line")
     (description
@@ -409,10 +402,8 @@ state.")
     (arguments
      '(#:tests? #f))                              ;there is no test suite
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
-    (inputs `(("libxmu" ,libxmu)
-              ("libxt" ,libxt)))
+     (list autoconf automake))
+    (inputs (list libxmu libxt))
     (home-page "https://github.com/astrand/xclip")
     (synopsis "Command line interface to X11 clipboard")
     (description "Xclip is a command line interface to the X11 clipboard.  It
@@ -433,16 +424,14 @@ avoiding password prompts when X11 forwarding has already been setup.")
                "0ysynzzgzd9jdrh1321r4bgw8wd5zljrlyn5y1a31g39xacf02bv"))))
     (build-system meson-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("libxcb" ,libxcb)
-       ("libxml2" ,libxml2)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
-       ("xkeyboard-config" ,xkeyboard-config)))
+     (list libx11
+           libxcb
+           libxml2
+           wayland
+           wayland-protocols
+           xkeyboard-config))
     (native-inputs
-     `(("bison" ,bison)
-       ("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list bison doxygen pkg-config))
     (arguments
      `(#:configure-flags
        (list (string-append "-Dxkb-config-root="
@@ -486,15 +475,11 @@ X11 (yet).")
            (lambda _
              (invoke "autoreconf" "-vfi"))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-
-       ;; For bootstrapping from git.
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list pkg-config
+           ;; For bootstrapping from git.
+           autoconf automake libtool))
     (inputs
-     `(("libxtst" ,libxtst)
-       ("libx11" ,libx11)))
+     (list libxtst libx11))
     (home-page "https://www.yoctoproject.org/tools-resources/projects/matchbox")
     (synopsis "X virtual keyboard library")
     (description
@@ -527,13 +512,13 @@ X11 (yet).")
                (setenv "LDFLAGS" (string-append "-Wl,-rpath=" out "/lib"))
                (setenv "CC" "gcc")
                #t))))))
-    (native-inputs `(("perl" ,perl))) ; for pod2man
-    (inputs `(("libx11" ,libx11)
-              ("libxext" ,libxext)
-              ("libxi" ,libxi)
-              ("libxinerama" ,libxinerama)
-              ("libxtst" ,libxtst)
-              ("libxkbcommon" ,libxkbcommon)))
+    (native-inputs (list perl)) ; for pod2man
+    (inputs (list libx11
+                  libxext
+                  libxi
+                  libxinerama
+                  libxtst
+                  libxkbcommon))
     (home-page "https://www.semicomplete.com/projects/xdotool/")
     (synopsis "Fake keyboard/mouse input, window management, and more")
     (description "Xdotool lets you simulate keyboard input and mouse activity,
@@ -567,9 +552,7 @@ between desktops, and change the number of desktops.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (inputs
-     `(("libxcb" ,libxcb)
-       ("xcb-util-wm" ,xcb-util-wm)
-       ("xcb-util" ,xcb-util)))
+     (list libxcb xcb-util-wm xcb-util))
     (home-page "https://github.com/baskerville/xdo")
     (synopsis "Small X utility to perform elementary actions on windows")
     (description
@@ -590,12 +573,9 @@ options are given, the action applies to the focused window.")
         (base32 "0lq5j7fryx1wn998jq6h3icz1h6pqrsbs3adskjzjyhn5l6yrg2p"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxext" ,libxext)
-        ("libxmu" ,libxmu)
-        ("libxrender" ,libxrender)
-        ("libxt" ,libxt)))
+      (list libxext libxmu libxrender libxt))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/")    ; no dedicated Xeyes page exists
     (synopsis "Follow-the-mouse X demo")
     (description "Xeyes is a demo program for x.org.  It shows eyes
@@ -627,10 +607,9 @@ following the mouse.")
         "--enable-timers"
         "--enable-gnuplot")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libpng" ,libpng)
-       ("zlib" ,zlib)))
+     (list libpng zlib))
     (synopsis "Low-level pixel manipulation library")
     (description "Pixman is a low-level software library for pixel
 manipulation, providing features such as image compositing and trapezoid
@@ -668,9 +647,9 @@ rasterisation.")
                       (when tests?
                         (invoke "meson" "test" "--timeout-multiplier" "5")))))))
     (propagated-inputs
-     `(("libpciaccess" ,libpciaccess)))
+     (list libpciaccess))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://dri.freedesktop.org/wiki/")
     (synopsis "Direct rendering userspace library")
     (description "The Direct Rendering Infrastructure, also known as the DRI,
@@ -722,10 +701,9 @@ tracking.")
         (base32
          "0jmyryrpqb35y9hd5sgxqy2z0r1snw7d3ljw0jak0n0cjdz1yf9w"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
-     `(("libx11" ,libx11)
-       ("xcb-util" ,xcb-util)))
+     (list libx11 xcb-util))
     (home-page "https://www.freedesktop.org/wiki/Software/startup-notification/")
     (synopsis "Application startup notification and feedback library")
     (description
@@ -755,11 +733,9 @@ System style license, and has no special dependencies.")
                             (assoc-ref %outputs "out")
                             "/share/man"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxmu" ,libxmu)
-       ("glib" ,glib)))
+     (list libx11 libxmu glib))
     (home-page "http://tomas.styblo.name/wmctrl/")
     (synopsis "Command-line tool to control X window managers")
     (description
@@ -772,7 +748,7 @@ move windows, switch between desktops, etc.).")
 (define-public scrot
   (package
     (name "scrot")
-    (version "1.6")
+    (version "1.7")
     (source
      (origin
        (method git-fetch)
@@ -782,20 +758,18 @@ move windows, switch between desktops, etc.).")
          (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1qanx2xx9m5l995csqzfcm1ks2nhk90zga1wzbkjjl75ga4iik2h"))))
+        (base32 "0rls08mpalx4xp5ysmg7m5lgx9q8g8m8q40m47f11mqa84z88nd1"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("autoconf-archive" ,autoconf-archive)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf autoconf-archive automake pkg-config))
     (inputs
-     `(("giblib" ,giblib)
-       ("imlib2" ,imlib2)
-       ("libx11" ,libx11)
-       ("libxcomposite" ,libxcomposite)
-       ("libxext" ,libxext)
-       ("libXfixes" ,libxfixes)))
+     (list giblib
+           imlib2
+           libbsd
+           libx11
+           libxcomposite
+           libxext
+           libxfixes))
     (home-page "https://github.com/resurrecting-open-source-projects/scrot")
     (synopsis "Command-line screen capture utility for X Window System")
     (description
@@ -809,7 +783,7 @@ of the screen selected by mouse.")
 (define-public slop
   (package
     (name "slop")
-    (version "7.5")
+    (version "7.6")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -818,17 +792,17 @@ of the screen selected by mouse.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1k8xxb4rj2fylr4vj16yvsf73cyywliz9cy78pl4ibmi03jhg837"))))
+                "1xaka98vka5kh3wmby68ifwi6rp0985dj13fgs96bw8a1z3m1l1d"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f)) ; no "check" target
     (inputs
-     `(("glew" ,glew)
-       ("glm" ,glm)
-       ("icu4c" ,icu4c)
-       ("libxext" ,libxext)
-       ("libxrender" ,libxrender)
-       ("mesa" ,mesa)))
+     (list glew
+           glm
+           icu4c
+           libxext
+           libxrender
+           mesa))
     (home-page "https://github.com/naelstrof/slop")
     (synopsis "Select a region and print its bounds to stdout")
     (description
@@ -902,7 +876,7 @@ include cursor in the resulting image.")
                (invoke "make" "install" "install.man"
                        (string-append "BINDIR=" bin)
                        (string-append "MANDIR=" man1))))))))
-    (inputs `(("libx11" ,libx11)))
+    (inputs (list libx11))
     (home-page "http://ftp.x.org/contrib/utilities/")
     (synopsis "Hide idle mouse cursor")
     (description
@@ -940,13 +914,9 @@ things less distracting.")
                  (modify-phases %standard-phases
                    (delete 'configure))))
     (inputs
-     `(("libx11" ,libx11)
-       ("libev" ,libev)
-       ("libxfixes" ,libxfixes)
-       ("libxi" ,libxi)))
+     (list libx11 libev libxfixes libxi))
     (native-inputs
-     `(("asciidoc" ,asciidoc)
-       ("pkg-config" ,pkg-config)))
+     (list asciidoc pkg-config))
     (home-page "https://github.com/Airblader/unclutter-xfixes")
     (synopsis "Hide idle mouse cursor")
     (description
@@ -981,12 +951,9 @@ things less distracting.")
          "03azv5wpg65h40ip2kk1kdh58vix4vy1r9bihgsq59jx2rhjr3zf"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libpng" ,libpng)
-       ("libx11" ,libx11)
-       ("libxi" ,libxi)
-       ("libxtst" ,libxtst)))
+     (list libpng libx11 libxi libxtst))
     (native-inputs
-     `(("xorgproto" ,xorgproto)))
+     (list xorgproto))
     (synopsis "Tools to automate tasks in X such as detecting on screen images")
     (description
      "Xautomation can control X from the command line for scripts, and
@@ -1020,10 +987,7 @@ to find buttons, etc, on the screen to click on.")
        #:phases (modify-phases %standard-phases
                   (delete 'configure)))) ; no configure script
     (inputs
-     `(("libx11" ,libx11)
-       ("libxfixes" ,libxfixes)
-       ("libxi" ,libxi)
-       ("libxt" ,libxt)))
+     (list libx11 libxfixes libxi libxt))
     (synopsis "Banish the mouse cursor")
     (description
      "@command{xbanish} hides the mouse cursor when you start typing, and
@@ -1081,10 +1045,7 @@ X Window System.")
      '(#:configure-flags
        (list (string-append "--mandir=" %output "/share/man"))))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxt" ,libxt)
-       ("libxext" ,libxext)
-       ("libxinerama" ,libxinerama)))
+     (list libx11 libxt libxext libxinerama))
     (home-page "https://sourceforge.net/projects/libxosd/")
     (synopsis "X On Screen Display")
     (description
@@ -1105,12 +1066,9 @@ transparent text on your screen.")
         (base32 "080pwz8pvqqq068lavzz48dl350iszpdswjd86bjk6zra5h5d10q"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("scdoc" ,scdoc)))
+     (list pkg-config scdoc))
     (inputs
-     `(("libseccomp" ,libseccomp)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+     (list libseccomp wayland wayland-protocols))
     (home-page "https://github.com/francma/wob")
     (synopsis "Lightweight overlay bar for Wayland")
     (description
@@ -1152,11 +1110,9 @@ backlight, progress, or anything bar for Wayland.")
                   (format #f "\"~a/bin/~a\"" out command)))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("guile" ,guile-2.2)
-       ("libx11" ,libx11)
-       ("tk" ,tk)))
+     (list guile-2.2 libx11 tk))
     (home-page "https://www.nongnu.org/xbindkeys/")
     (synopsis "Associate a combination of keys with a shell command")
     (description
@@ -1185,11 +1141,7 @@ Guile will work for XBindKeys.")
         (base32 "1winwzdy9yxvxnrv8gqpigl9y0c2px27mnms62bdilp4x6llrs9r"))))
     (build-system gnu-build-system)
     (inputs
-     `(("asciidoc" ,asciidoc)
-       ("libxcb" ,libxcb)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-keysyms" ,xcb-util-keysyms)
-       ("xcb-util-wm" ,xcb-util-wm)))
+     (list asciidoc libxcb xcb-util xcb-util-keysyms xcb-util-wm))
     (arguments
      `(#:phases (modify-phases %standard-phases (delete 'configure))
        #:tests? #f  ; no check target
@@ -1208,14 +1160,14 @@ compact configuration syntax.")
 (define-public rxvt-unicode
   (package
     (name "rxvt-unicode")
-    (version "9.26")
+    (version "9.30")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://dist.schmorp.de/rxvt-unicode/Attic/"
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "12y9p32q0v7n7rhjla0j2g9d5rj2dmwk20c9yhlssaaxlawiccb4"))))
+                "0badnkjsn3zps24r5iggj8k5v4f00npc77wqg92pcn1q5z8r677y"))))
     (build-system gnu-build-system)
     (arguments
      ;; This sets the destination when installing the necessary terminal
@@ -1243,8 +1195,7 @@ compact configuration syntax.")
                            TryExec=~@*~a/bin/urxvt~@
                            Icon=~@
                            Type=Application~%"
-                           output)))
-               #t)))
+                           output))))))
          (add-after 'install 'install-desktop-urxvtc
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((output (assoc-ref outputs "out"))
@@ -1261,16 +1212,15 @@ compact configuration syntax.")
                            TryExec=~@*~a/bin/urxvtc~@
                            Icon=~@
                            Type=Application~%"
-                           output)))
-               #t))))))
+                           output)))))))))
     (inputs
-     `(("libXft" ,libxft)
+     `(("libptytty" ,libptytty)
+       ("libXft" ,libxft)
        ("libX11" ,libx11)
        ("libXt" ,libxt)))
     (native-inputs
-     `(("ncurses" ,ncurses)         ;trigger the installation of terminfo data
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list ncurses ;trigger the installation of terminfo data
+           perl pkg-config))
     ;; FIXME: This should only be located in 'ncurses'.  Nonetheless it is
     ;; provided for usability reasons.  See <https://bugs.gnu.org/22138>.
     (native-search-paths
@@ -1309,10 +1259,9 @@ within a single process.")
                           "MANDIR=/share/man/man1"
                           ,(string-append "CC=" (cc-for-target)))))
     (inputs
-     `(("libxtst" ,libxtst)
-       ("libx11" ,libx11)))
+     (list libxtst libx11))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/alols/xcape")
     (synopsis "Use a modifier key in X.org as another key")
     (description
@@ -1337,18 +1286,15 @@ Escape key when Left Control is pressed and released on its own.")
     (arguments
      `(#:configure-flags '("--disable-static")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ;; For tests.
-       ("python" ,python)))
+     (list pkg-config
+           ;; For tests.
+           python))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libgudev" ,libgudev)
-       ("eudev" ,eudev)
-       ("libxml2" ,libxml2)))
+     (list gtk+ libgudev eudev libxml2))
     (propagated-inputs
      ;; libwacom includes header files that include GLib, and libinput uses
      ;; those header files.
-     `(("glib" ,glib)))
+     (list glib))
     (home-page "https://linuxwacom.github.io/")
     (synopsis "Helper library for Wacom tablet settings")
     (description
@@ -1381,13 +1327,9 @@ Wacom tablet applet.")
                             "/share/X11/xorg.conf.d"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("xorg-server" ,xorg-server)
-       ("libxrandr" ,libxrandr)
-       ("libxinerama" ,libxinerama)
-       ("libxi" ,libxi)
-       ("eudev" ,eudev)))
+     (list xorg-server libxrandr libxinerama libxi eudev))
     (home-page "https://linuxwacom.github.io/")
     (synopsis "Wacom input driver for X")
     (description
@@ -1452,20 +1394,18 @@ the X.Org X Server version 1.7 and later (X11R7.5 or later).")
                #t))))))
     (outputs '("out" "gtk"))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("libdrm" ,libdrm)
-       ("libx11" ,libx11)
-       ("libxcb" ,libxcb)
-       ("libxxf86vm" ,libxxf86vm)
-       ("glib" ,glib)                   ;for Geoclue2 support
-
-       ;; To build the GTK3 GUI, we need these.
-       ("gtk+" ,gtk+)
-       ("python" ,python)
-       ("python-pygobject" ,python-pygobject)
-       ("python-pyxdg" ,python-pyxdg)))
+     (list libdrm
+           libx11
+           libxcb
+           libxxf86vm
+           glib ;for Geoclue2 support
+           ;; To build the GTK3 GUI, we need these.
+           gtk+
+           python
+           python-pygobject
+           python-pyxdg))
     (home-page "https://github.com/jonls/redshift")
     (synopsis "Adjust the color temperature of your screen")
     (description
@@ -1512,18 +1452,14 @@ color temperature should be set to match the lamps in your room.")
                             (("^_") ""))
                           #t))))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("pkg-config" ,pkg-config)
-         ("intltool" ,intltool)))
+       (list autoconf automake libtool pkg-config intltool))
       (inputs
-       `(("libdrm" ,libdrm)
-         ("libx11" ,libx11)
-         ("libxcb" ,libxcb)
-         ("libxxf86vm" ,libxxf86vm)
-         ("glib" ,glib)                 ; for Geoclue2 support
-         ("wayland" ,wayland)))
+       (list libdrm
+             libx11
+             libxcb
+             libxxf86vm
+             glib ; for Geoclue2 support
+             wayland))
       (home-page "https://github.com/minus7/redshift")
       (synopsis "Adjust the color temperature of your screen (with Wayland support)")
       (description
@@ -1619,8 +1555,7 @@ less if you are working in front of the screen at night.")
                                          (assoc-ref %outputs "out")
                                          "/lib/X11/app-defaults"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
      `(("libx11" ,libx11)
        ("libxext" ,libxext)
@@ -1678,13 +1613,9 @@ demos.  It also acts as a nice screen locker.")
                             (delete 'configure)
                             (delete 'check))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxscrnsaver" ,libxscrnsaver)
-       ("dbus" ,dbus)))
+     (list glib libx11 libxext libxscrnsaver dbus))
     (synopsis "Forward freedesktop.org Idle Inhibition Service calls to Xss")
     (description "xssproxy implements the @code{org.freedesktop.ScreenSaver}
 D-Bus interface described in the Idle Inhibition Service Draft by the
@@ -1718,11 +1649,9 @@ Saver extension) library.")
            (replace 'bootstrap
              (lambda _
                (invoke "autoreconf" "-vfi"))))))
-      (native-inputs `(("autoconf" ,autoconf)
-                       ("automake" ,automake)
-                       ("libtool" ,libtool)))
+      (native-inputs (list autoconf automake libtool))
       (inputs
-       `(("libxt" ,libxt)))
+       (list libxt))
       (home-page "http://www.vergenet.net/~conrad/software/xsel/")
       (synopsis "Manipulate X selection")
       (description
@@ -1749,7 +1678,7 @@ but can also follow a growing file, display contents, delete entries and more.")
                 "1h09wd2qcg08rj5hcakvdh9q01hkrj8vxly94ax3ch2x06lm0zq8"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)))
+     (list libx11))
     (home-page "https://github.com/alezost/xdpyprobe")
     (synopsis "Probe X server for connectivity")
     (description
@@ -1760,7 +1689,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
 (define-public rofi
   (package
     (name "rofi")
-    (version "1.7.0")
+    (version "1.7.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/davatorium/rofi/"
@@ -1768,27 +1697,27 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
                                   version "/rofi-" version ".tar.xz"))
               (sha256
                (base32
-                "1929q3dks8fqd3pfkzs0ba06gwzhlgcrfar9fpga43f3byrrbfxa"))))
+                "1kfp9ylynz8xgw11aa5k7b4iyq9z8zkqas1mpvs8wpzvnfr09ymd"))))
     (build-system gnu-build-system)
-    (inputs
-     `(("pango" ,pango)
-       ("cairo" ,cairo)
-       ("glib" ,glib)
-       ("startup-notification" ,startup-notification)
-       ("libjpeg" ,libjpeg-turbo)
-       ("librsvg" ,librsvg)
-       ("libxkbcommon" ,libxkbcommon)
-       ("libxcb" ,libxcb)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-cursor" ,xcb-util-cursor)
-       ("xcb-util-xrm" ,xcb-util-xrm)
-       ("xcb-util-wm" ,xcb-util-wm)))
     (native-inputs
-     `(("bison" ,bison)
-       ("check" ,check)
-       ("flex" ,flex)
-       ("glib:bin" ,glib "bin")
-       ("pkg-config" ,pkg-config)))
+     (list bison
+           check
+           flex
+           `(,glib "bin")
+           pkg-config))
+    (inputs
+     (list cairo
+           glib
+           libjpeg-turbo
+           librsvg
+           libxcb
+           libxkbcommon
+           pango
+           startup-notification
+           xcb-util
+           xcb-util-cursor
+           xcb-util-wm
+           xcb-util-xrm))
     (arguments
      `(#:parallel-tests? #f             ; fails in some circumstances
        #:phases
@@ -1798,8 +1727,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
              (substitute* '("test/helper-expand.c")
                (("~root") "/root")
                (("~") "")
-               (("g_get_home_dir \\(\\)") "\"/\""))
-             #t)))))
+               (("g_get_home_dir \\(\\)") "\"/\"")))))))
     (home-page "https://github.com/davatorium/rofi")
     (synopsis "Application launcher")
     (description "Rofi is a minimalist application launcher.  It memorizes which
@@ -1830,15 +1758,15 @@ by name.")
                (("/etc") "${CMAKE_INSTALL_PREFIX}/etc"))
              #t)))))
     (inputs
-     `(("gtk+" ,gtk+-2)
-       ("imlib2" ,imlib2)
-       ("librsvg" ,librsvg)
-       ("libxcomposite" ,libxcomposite)
-       ("libxdamage" ,libxdamage)
-       ("libxft" ,libxft)
-       ("libxinerama" ,libxinerama)
-       ("libxrandr" ,libxrandr)
-       ("startup-notification" ,startup-notification)))
+     (list gtk+-2
+           imlib2
+           librsvg
+           libxcomposite
+           libxdamage
+           libxft
+           libxinerama
+           libxrandr
+           startup-notification))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
@@ -1894,11 +1822,8 @@ actions, a built-in clock, a battery monitor and a system tray.")
               (substitute* "Makefile" (("include config.mk") ""))
               #t)))))
      (inputs
-      `(("libx11"      ,libx11)
-        ("libxft"      ,libxft)
-        ("libxpm"      ,libxpm)
-        ("libxinerama" ,libxinerama)))
-     (native-inputs `(("pkg-config" ,pkg-config)))
+      (list libx11 libxft libxpm libxinerama))
+     (native-inputs (list pkg-config))
      (synopsis "General purpose messaging, notification and menuing program for X11")
      (description "Dzen is a general purpose messaging, notification and menuing
 program for X11.  It was designed to be fast, tiny and scriptable in any language.")
@@ -1925,7 +1850,7 @@ program for X11.  It was designed to be fast, tiny and scriptable in any languag
               ("fontconfig" ,fontconfig)
               ("libxft" ,libxft)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -1965,12 +1890,9 @@ minimalistic tiling window managers such as herbstluftwm and bspwm.")
                   #t))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("m4" ,m4)
-       ("libx11" ,libx11))) ; for tests
+     (list pkg-config m4 libx11)) ; for tests
     (inputs
-     `(("libxcb" ,libxcb)
-       ("xcb-util" ,xcb-util)))
+     (list libxcb xcb-util))
     (home-page "https://github.com/Airblader/xcb-util-xrm")
     (synopsis "XCB utility functions for the X resource manager")
     (description
@@ -2016,10 +1938,7 @@ XCB util-xrm module provides the following libraries:
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f))                    ; no test suite
-    (inputs `(("libx11" ,libx11)
-              ("libxext" ,libxext)
-              ("libxrandr" ,libxrandr)
-              ("libxxf86vm" ,libxxf86vm)))
+    (inputs (list libx11 libxext libxrandr libxxf86vm))
     (synopsis "Tiny monitor calibration loader for XFree86 (or X.org)")
     (description "xcalib is a tiny tool to load the content of vcgt-Tags in ICC
 profiles to the video card's gamma ramp.  It does work with most video card
@@ -2044,12 +1963,8 @@ invert colors on a specific display/screen.")
     (arguments '(#:configure-flags `("--enable-sound"
                                      "--enable-wave"
                                      "--enable-alsa")))
-    (native-inputs `(("autoconf" ,autoconf)
-                     ("automake" ,automake)
-                     ("pkg-config" ,pkg-config)
-                     ("perl" ,perl)))
-    (inputs `(("libx11" ,libx11)
-              ("alsa-lib" ,alsa-lib)))
+    (native-inputs (list autoconf automake pkg-config perl))
+    (inputs (list libx11 alsa-lib))
     (synopsis "Daemon that performs an action every time the X11 bell is rung")
     (description "nxbelld is a tiny utility to aid people who either don't
 like the default PC speaker beep, or use a sound driver that doesn't have
@@ -2073,11 +1988,9 @@ or playing a PCM encoded WAVE file.")
                 "18jd3k3pvlm5x1adyqw63z2b3f4ixh9mfvz9asvnskk3fm8jgw0i"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("imake" ,imake)))
+     (list imake))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxscrnsaver" ,libxscrnsaver)))
+     (list libx11 libxext libxscrnsaver))
     (arguments
      `(#:tests? #f
        #:phases
@@ -2126,7 +2039,7 @@ a user-configurable period of time.")
     (inputs `(("gtk3" ,gtk+)
               ("gdk" ,gdk-pixbuf)
               ("pango" ,pango)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (arguments
      ;; The default configure puts the 'sm' binary in games/ instead of bin/ -
      ;; this fixes it:
@@ -2158,11 +2071,9 @@ commandline).")
                  (base32
                   "10hx7k7ga8g08akwz8qrsvj8iqr5nd4siiva6sjx789jvf0sak7r"))))
       (build-system cmake-build-system)
-      (inputs `(("glib" ,glib)
-                ("xcb-util" ,xcb-util)))
+      (inputs (list glib xcb-util))
       (native-inputs
-       `(("python-docutils" ,python-docutils)
-         ("pkg-config" ,pkg-config)))
+       (list python-docutils pkg-config))
       (arguments
        `(#:tests? #f))
       (synopsis "Use external screen locker on events")
@@ -2190,8 +2101,7 @@ before the system goes to sleep.")
     (arguments
      '(#:tests? #f)) ; Not clear how to make tests pass.
     (inputs
-     `(("xclip" ,xclip)
-       ("xsel" ,xsel)))
+     (list xclip xsel))
     (home-page "https://github.com/asweigart/pyperclip")
     (synopsis "Python clipboard module")
     (description
@@ -2215,7 +2125,7 @@ the X11 clipboard")
                 "1w49fayhwzn5rx0z1q2lrvm7z8jrd34lgb89p853a024bixc3cf2"))))
     (build-system gnu-build-system)
     (inputs
-     `(("xorg-server" ,xorg-server)))
+     (list xorg-server))
     (home-page "https://github.com/rg3/numlockx")
     (synopsis "Turns on the numlock key in X11")
     (description "@command{numlockx} is a tiny program that lets you turn on
@@ -2253,7 +2163,7 @@ to automatically turn it on on login.")
                (copy-file "xrandr-invert-colors.bin"
                           (string-append bin "/xrandr-invert-colors"))))))))
     (inputs
-     `(("libxrandr" ,libxrandr)))
+     (list libxrandr))
     (home-page "https://github.com/zoltanp/xrandr-invert-colors")
     (synopsis "Invert display colors")
     (description "This package provides a small utility for inverting the
@@ -2304,10 +2214,10 @@ colors on all monitors attached to an XRandR-capable X11 display server.")
                             (string-append out "/bin/sctd"))
                #t))))))
     (inputs
-     `(("coreutils" ,coreutils) ; sctd uses "date", "printf" and "sleep"
-       ("inetutils" ,inetutils) ; sctd uses "logger"
-       ("libxrandr" ,libxrandr)
-       ("sed" ,sed))) ; sctd uses "sed"
+     (list coreutils ; sctd uses "date", "printf" and "sleep"
+           inetutils ; sctd uses "logger"
+           libxrandr
+           sed)) ; sctd uses "sed"
     (home-page "https://www.umaxx.net")
     (synopsis "Set the color temperature of the screen")
     (description "@code{sct} is a lightweight utility to set the color
@@ -2317,14 +2227,14 @@ temperature of the screen.")
 (define-public xsecurelock
   (package
     (name "xsecurelock")
-    (version "1.6.0")
+    (version "1.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://github.com/google/xsecurelock/releases"
                     "/download/v" version "/xsecurelock-" version ".tar.gz"))
               (sha256
-               (base32 "070gknyv0s5hz9hkc6v73m2v7ssyjwgl93b5hd4glayfqxqjbmdp"))))
+               (base32 "0s2q69g1xhvs18q2jhcval5vpa9j0kkrdv02r176vvxvdms7hhc7"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -2332,8 +2242,7 @@ temperature of the screen.")
          "--with-xkb"
          "--with-default-authproto-module=/run/setuid-programs/authproto_pam")))
     (native-inputs
-     `(("pandoc" ,pandoc)
-       ("pkg-config" ,pkg-config)))
+     (list pandoc pkg-config))
     (inputs
      `(("fontconfig" ,fontconfig)
        ("libX11" ,libx11)
@@ -2387,18 +2296,58 @@ binary to setuid-binaries:
                 (string-append "\"" (assoc-ref inputs "xdg-utils")
                                "/bin/xdg-mime\""))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("coreutils" ,coreutils)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
-       ("xdg-utils" ,xdg-utils)))
+     (list coreutils wayland wayland-protocols xdg-utils))
     (home-page "https://github.com/bugaevc/wl-clipboard")
     (synopsis "Command-line copy/paste utilities for Wayland")
     (description "Wl-clipboard is a set of command-line copy/paste utilities for
 Wayland.")
     (license license:gpl3+)))
 
+(define-public wl-clipboard-x11
+  (package
+    (name "wl-clipboard-x11")
+    (version "5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/brunelli/wl-clipboard-x11")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1y7jv7rps0sdzmm859wn2l8q4pg2x35smcrm7mbfxn5vrga0bslb"))))
+    (build-system copy-build-system)
+    (arguments
+     `(#:install-plan
+       '(("src/" "bin/")
+         ("man/" "man/man1"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-binary
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out          (assoc-ref outputs "out"))
+                   (wl-clipboard (assoc-ref inputs "wl-clipboard")))
+               (wrap-program (string-append out "/bin/wl-clipboard-x11")
+                `("PATH" prefix (,(string-append wl-clipboard "/bin")))))
+             #t))
+         (add-after 'wrap-binary 'symlink-utilities
+           ;; As seen in the Makefile.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
+               (symlink "wl-clipboard-x11" (string-append bin "xclip"))
+               (symlink "wl-clipboard-x11" (string-append bin "xsel")))
+             #t)))))
+    (inputs
+     (list bash-minimal wl-clipboard))
+    (home-page "https://github.com/brunelli/wl-clipboard-x11")
+    (synopsis "Use wl-clipboard as a drop-in replacement to X11 clipboard tools")
+    (description "This package provides a wrapper script around
+@code{x11-clipboard} to use it as a clipboard on X11 also.  It also contains
+helper scripts for @code{xclip} and @code{xsel} to assist with the transition.")
+    (license license:gpl3+)))
+
 (define-public autocutsel
   (package
     (name "autocutsel")
@@ -2414,8 +2363,7 @@ Wayland.")
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f)) ; no "check" target
-    (native-inputs `(("libx11" ,libx11)
-                     ("libxaw" ,libxaw)))
+    (native-inputs (list libx11 libxaw))
     (home-page "https://www.nongnu.org/autocutsel/")
     (synopsis "Automated X11 clipboard and cutbuffer synchronization")
     (description "@code{autocutsel} tracks changes in the server's cutbuffer
@@ -2427,7 +2375,7 @@ The cutbuffer and clipboard selection are always synchronized.")
 (define-public jgmenu
   (package
     (name "jgmenu")
-    (version "4.3.0")
+    (version "4.4.0")
     (source
      (origin
        (method git-fetch)
@@ -2436,20 +2384,18 @@ The cutbuffer and clipboard selection are always synchronized.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "13y4ra2hjfqbn2vxyyn4ar5iqklbabyfwksbryc2gzxspw1vz4zq"))))
+        (base32 "08dyygclayyipa0p2qsxqa3fsfyflkrkhpi25dkc3ybkicvynk24"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("cppcheck" ,cppcheck)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list cppcheck perl pkg-config))
     (inputs
-     `(("cairo" ,cairo)
-       ("glib" ,glib)
-       ("librsvg" ,librsvg)
-       ("libx11" ,libx11)
-       ("libxml2" ,libxml2)
-       ("libxrandr" ,libxrandr)
-       ("pango" ,pango)))
+     (list cairo
+           glib
+           librsvg
+           libx11
+           libxml2
+           libxrandr
+           pango))
     (arguments
      `(#:test-target "test"
        #:phases
@@ -2482,16 +2428,14 @@ can optionally use some appearance settings from XSettings, tint2 and GTK.")
         (base32 "1rsv42cl0s149sbpdxz9yqqjip3si95jv3dglwzrcm7pjfg7519v"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
-     `(("libjpeg-turbo" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libxpm" ,libxpm)
-       ("pixman" ,pixman)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-image" ,xcb-util-image)))
+     (list libjpeg-turbo
+           libpng
+           libxpm
+           pixman
+           xcb-util
+           xcb-util-image))
     (home-page "https://github.com/stoeckmann/xwallpaper")
     (synopsis "Wallpaper setting utility for X")
     (description
@@ -2525,8 +2469,7 @@ backgrounds.")
                (install-file "README" doc)
                #t))))))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxinerama" ,libxinerama)))
+     (list libx11 libxinerama))
     (home-page "https://www.lcdf.org/~eddietwo/xwrits/")
     (synopsis "Reminds you to take wrist breaks")
     (description "Xwrits reminds you to take wrist breaks for prevention or
@@ -2552,7 +2495,7 @@ Xwrits hides itself until you should take another break.")
         (base32 "14gnkz18dipsa2v24f4nm9syxaa7g21iqjm7y65jn849ka2jr1h8"))))
     (build-system scons-build-system)
     (inputs
-     `(("libx11" ,libx11)))
+     (list libx11))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("googletest" ,googletest)
@@ -2718,13 +2661,13 @@ tools to complement clipnotify.")
                (invoke "tests/test-clipmenu")
                #t)))))
       (inputs
-       `(("clipnotify" ,clipnotify)
-         ("coreutils-minimal" ,coreutils-minimal)
-         ("gawk" ,gawk)
-         ("guile" ,guile-3.0) ; for wrap-script
-         ("util-linux" ,util-linux)
-         ("xdotool" ,xdotool)
-         ("xsel" ,xsel)))
+       (list clipnotify
+             coreutils-minimal
+             gawk
+             guile-3.0 ; for wrap-script
+             util-linux
+             xdotool
+             xsel))
       (home-page "https://github.com/cdown/clipmenu")
       (synopsis "Simple clipboard manager using dmenu or rofi and xsel")
       (description "Start @command{clipmenud}, then run @command{clipmenu} to
@@ -2753,14 +2696,10 @@ After selection, the clip is put onto the PRIMARY and CLIPBOARD X selections.")
          "0qkq75grbd4wkx4nlvswgavpijk9ad0pzqyj89a0ayjsbsn36pqy"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("glib" ,glib "bin")
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake
+           `(,glib "bin") pkg-config))
     (inputs
-     `(("dbus-glib" ,dbus-glib)
-       ("glib" ,glib)
-       ("libx11" ,libx11)))
+     (list dbus-glib glib libx11))
     (home-page "https://github.com/qnikst/kbdd")
     (synopsis "Per-window keyboard layout switching daemon for X")
     (description "@command{kbdd} is a simple keyboard layout switching
@@ -2789,7 +2728,7 @@ create layout indicator widgets.")
                 "1gxpgifzy0hnpd0ymw3r32amzr32z3bgb90ldjzl438p6h1q0i26"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("catch2" ,catch-framework2)))
+     (list catch-framework2))
     (arguments
      `(#:configure-flags '("-DWITH_GIT_CATCH=off")
        #:phases
@@ -2827,7 +2766,7 @@ using @command{dmenu}.")
     (arguments
      `(#:glib-or-gtk? #t))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("gtk3" ,gtk+)
        ("wayland" ,wayland)))
@@ -2859,9 +2798,9 @@ such as sway, similar to @command{rofi}.")
          (delete 'configure))
        #:tests? #f))
     (inputs
-     `(("python" ,python)))
+     (list python))
     (native-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     (list python-sphinx))
     (home-page "https://github.com/jceb/dex")
     (synopsis "Execute DesktopEntry files")
     (description
@@ -2872,7 +2811,7 @@ and execute @file{.desktop} files of the Application type.")
 (define-public sx
   (package
     (name "sx")
-    (version "2.1.6")
+    (version "2.1.7")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2881,7 +2820,7 @@ and execute @file{.desktop} files of the Application type.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0p24ghp1ygvyc2hv81byhxax7491yhcc5priq5ldv07nzl7akagc"))))
+                "0xv15m30nhcknasqiybj5wwf7l91q4a4jf6xind8x5x00c6br6nl"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no tests
@@ -2890,10 +2829,14 @@ and execute @file{.desktop} files of the Application type.")
          (list (string-append "PREFIX=" out)))
        #:phases
        (modify-phases %standard-phases
-         ;; no configure script
-         (delete 'configure))))
-    (propagated-inputs
-     `(("xauth" ,xauth)))
+         (add-after 'unpack 'refer-to-xauth
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "sx"
+               (("\\bxauth\\b" command)
+                (string-append (assoc-ref inputs "xauth") "/bin/" command)))))
+         (delete 'configure))))         ; no configure script
+    (inputs
+     (list xauth))
     (home-page "https://github.com/Earnestly/sx")
     (synopsis "Start an xorg server")
     (description
@@ -2930,11 +2873,9 @@ and execute @file{.desktop} files of the Application type.")
              (let ((out (assoc-ref outputs "out")))
                (mkdir-p (string-append out "/bin"))))))))
     (inputs
-     `(("libx11" ,libx11)
-       ("imlib2" ,imlib2)
-       ("libxinerama" ,libxinerama)))
+     (list libx11 imlib2 libxinerama))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Imlib2-based wallpaper changer")
     (description
      "The @command{hsetroot} command composes wallpapers for X.
@@ -2967,12 +2908,9 @@ This package is the fork of hsetroot by Hyriand.")
                             (string-append "PREFIX = " out "\n")))
                          #true))))))
     (propagated-inputs
-     `(("wmctrl" ,wmctrl)
-       ("xdotool" ,xdotool)
-       ("xprop" ,xprop)))
+     (list wmctrl xdotool xprop))
     (native-inputs
-     `(("pandoc" ,pandoc)
-       ("perl" ,perl)))
+     (list pandoc perl))
     (synopsis "Run-or-raise application switcher for any X11 desktop")
     (description
      "Bind a key for any given application that will launch the application,
@@ -2995,9 +2933,7 @@ if there's more than one.")
         (base32 "199mlm127zk1lr8nrq22n68l2l8cjwc4cgwd67rg1i6497n2y0xc"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("perl" ,perl)
-       ("perl-tk" ,perl-tk)))
+     (list libx11 perl perl-tk))
     (arguments
      `(#:tests? #f                      ; There are none.
        #:make-flags
@@ -3052,10 +2988,9 @@ MouseKeys-acceleration management.")
          "0hhsddh3rs066rbsjksr8kcwg8lvglbvs67dq0r5wx5c1xcwb51w"))))
     (build-system meson-build-system)
     (inputs
-     `(("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+     (list wayland wayland-protocols))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Day/night gamma adjustments for Wayland compositors")
     (home-page "https://sr.ht/~kennylevinsen/wlsunset/")
     (description
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index b613362b31..4a27f26ee5 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -93,9 +93,8 @@
                 "0g86ywkx0ghzhhn96k88p67bbzlm1aqckly85izp07w80l1934ja"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
-    (inputs `(("gtk+" ,gtk+-2)))
+     (list pkg-config intltool))
+    (inputs (list gtk+-2))
     (home-page "https://www.xfce.org/")
     (synopsis "GTK+ theme engine for Xfce")
     (description
@@ -116,11 +115,8 @@
                 "10svnpc8ggasym1pfgh24bfr0ndqs6lc7v1wmpsizj0zbms8snb0"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gobject-introspection" ,gobject-introspection)
-       ("intltool" ,intltool)
-       ("vala" ,vala)))
-    (propagated-inputs `(("glib" ,glib))) ; required by libxfce4util-1.0.pc
+     (list pkg-config gobject-introspection intltool vala))
+    (propagated-inputs (list glib)) ; required by libxfce4util-1.0.pc
     (home-page "https://www.xfce.org/")
     (synopsis "Basic utility library for Xfce")
     (description
@@ -176,9 +172,9 @@ Xfce Desktop Environment.")
        ("dbus" ,dbus)))
     (propagated-inputs
      ;; libxfconf-0.pc refers to all these.
-     `(("glib" ,glib)))
+     (list glib))
     (inputs
-     `(("libxfce4util" ,libxfce4util)))
+     (list libxfce4util))
     (home-page "https://www.xfce.org/")
     (synopsis "Configuration storage and query system for Xfce")
     (description
@@ -189,7 +185,7 @@ storage system.")
 (define-public libxfce4ui
   (package
     (name "libxfce4ui")
-    (version "4.16.0")
+    (version "4.16.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -197,23 +193,19 @@ storage system.")
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "1anfj3n28abv9kbcpybs7q3k5g3c3d0r4xf4hyfqms2b9zlwj1lb"))))
+                "1xl52pjh7xi67qpv8800xrizf28r0bh1jm21va6hggznbap4csfr"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
        (list "--with-vendor-info=GNU Guix")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("gobject-introspection" ,gobject-introspection)))
+     (list pkg-config intltool gobject-introspection))
     (propagated-inputs
      `(("gtk+-3" ,gtk+)    ; required by libxfce4ui-2.pc
        ;; libxfce4kbd-private-3.pc refers to all these.
        ("libxfce4util" ,libxfce4util)
        ("xfconf" ,xfconf)))
-    (inputs `(("libsm" ,libsm)
-              ("libice" ,libice)
-              ("startup-notification" ,startup-notification)))
+    (inputs (list libsm libice startup-notification))
     (home-page "https://www.xfce.org/")
     (synopsis "Widgets library for Xfce")
     (description
@@ -224,7 +216,7 @@ to share commonly used Xfce widgets among the Xfce applications.")
 (define-public catfish
   (package
     (name "catfish")
-    (version "4.16.1")
+    (version "4.16.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/apps/"
@@ -232,7 +224,7 @@ to share commonly used Xfce widgets among the Xfce applications.")
                                   "/catfish-" version ".tar.bz2"))
               (sha256
                (base32
-                "0md6ypirr97ch7x8qliwzixzwj6zzd68ivb2dzj90hm2lcn7wc8h"))))
+                "1nng7mklrfihgppyxldpssdscl1dzb5z6hyx10akk089s5i9mag9"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -259,19 +251,12 @@ to share commonly used Xfce widgets among the Xfce applications.")
                  `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))
        #:tests? #f))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python-distutils-extra" ,python-distutils-extra)
-       ("intltool" ,intltool)))
+     (list pkg-config python-distutils-extra intltool))
     (inputs
-     `(("which" ,which)
-       ("xfconf" ,xfconf)
-       ("xdg-utils" ,xdg-utils)))
+     (list which xfconf xdg-utils))
     (propagated-inputs
-     `(("gtk+" ,gtk+)
-       ("python-dbus" ,python-dbus)
-       ("python-pexpect" ,python-pexpect)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)))
+     (list gtk+ python-dbus python-pexpect python-pycairo
+           python-pygobject))
     (home-page "https://docs.xfce.org/apps/catfish/start")
     (synopsis "File searching tool for Xfce")
     (description
@@ -305,9 +290,7 @@ it to your needs by using several command line options.")
              (for-each make-file-writable (find-files "."))
              #t)))))
     (native-inputs
-     `(("gtk+" ,gtk+)
-       ("optipng" ,optipng)
-       ("pkg-config" ,pkg-config)))
+     (list gtk+ optipng pkg-config))
     (home-page "https://shimmerproject.org/")
     (synopsis "Elementary icons extended and maintained for Xfce")
     (description "This is a fork of the upstream elementary project.  This icon
@@ -318,7 +301,7 @@ upstream occasionally.")
 (define-public exo
   (package
     (name "exo")
-    (version "4.16.2")
+    (version "4.16.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -326,17 +309,15 @@ upstream occasionally.")
                                   "exo-" version ".tar.bz2"))
               (sha256
                (base32
-                "17cybaml221jnw99aig3zajg2kbnn87p5sycj68wpwgvd99zb2af"))))
+                "1rpsp37n5l3qxinv37rz5l4rvja7yaf8hqsy81jhlgz27wygybbj"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (propagated-inputs
      ;; exo-2.pc refers to all these.
-     `(("gtk+-3" ,gtk+)
-       ("libxfce4util" ,libxfce4util)))
+     (list gtk+ libxfce4util))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)))
+     (list libxfce4ui))
     (home-page "https://www.xfce.org/")
     (synopsis "Extension library for Xfce")
     (description
@@ -360,13 +341,10 @@ development.")
                 "07fjsgdjqxbcm84ga3cl495782k381k6mwksyrks3zf1l8klk4c4"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list `(,glib "bin") gobject-introspection intltool pkg-config))
     (propagated-inputs
-     `(("gtk+-3" ,gtk+)                 ; required by garcon-gtk3-1.pc
-       ("libxfce4ui" ,libxfce4ui)))     ; required by garcon-gtk3-1.pc
+     (list gtk+ ; required by garcon-gtk3-1.pc
+           libxfce4ui))     ; required by garcon-gtk3-1.pc
     (home-page "https://www.xfce.org/")
     (synopsis "Implementation of the freedesktop.org menu specification")
     (description
@@ -390,23 +368,22 @@ merging features essential for loading menus modified with menu editors.")
                 "0rmga1l7da0pjrs6jlyq1nfn513r543v7cchshrif1341knpy2wv"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("glib:bin" ,glib "bin")         ; need glib-genmarshal
-       ("dbus-glib" ,dbus-glib)))       ; need dbus-binding-tool
+     (list pkg-config intltool
+           `(,glib "bin") ; need glib-genmarshal
+           dbus-glib))       ; need dbus-binding-tool
     (propagated-inputs
-     `(("glib" ,glib)))                 ; required by tumbler-1.pc
+     (list glib))                 ; required by tumbler-1.pc
     (inputs
-     `(("dbus" ,dbus)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("cairo" ,cairo) ;; Needed for pdf thumbnails (poppler-glibc.pc)
-       ("freetype" ,freetype)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libgsf" ,libgsf)
-       ("poppler" ,poppler)
-       ;; FIXME Provide gstreamer and gstreamer-tag to get video thumbnails
-       ;; ("gstreamer" ,gstreamer)
-       ))
+     (list dbus
+           gdk-pixbuf
+           cairo ;; Needed for pdf thumbnails (poppler-glibc.pc)
+           freetype
+           libjpeg-turbo
+           libgsf
+           poppler
+           ;; FIXME Provide gstreamer and gstreamer-tag to get video thumbnails
+           ;; ("gstreamer" ,gstreamer)
+           ))
     (home-page "https://www.xfce.org/")
     (synopsis "D-Bus service for applications to request thumbnails")
     (description
@@ -477,13 +454,8 @@ applications menu, workspace switcher and more.")
                (base32
                 "08n2cig9r2lccwvmk6v9vjiz0xqcp6x30m5b3q702v0m6ylg4z8h"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("intltool" ,intltool)))
-    (inputs `(("glib" ,glib)
-              ("gtk+" ,gtk+)
-              ("libxfce4util" ,libxfce4util)
-              ("libxfce4ui" ,libxfce4ui)
-              ("xfce4-panel" ,xfce4-panel)))
+    (native-inputs (list pkg-config intltool))
+    (inputs (list glib gtk+ libxfce4util libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-battery-plugin")
     (synopsis "Battery monitor panel plugin for Xfce4")
@@ -507,13 +479,9 @@ applications menu, workspace switcher and more.")
                 "1f4rjdvyplfkrdqg9179chzxx18k3lx29674j28piccgyvk5z2mb"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("exo" ,exo)
-       ("libxfce4ui" ,libxfce4ui)
-       ("libxtst" ,libxtst)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list exo libxfce4ui libxtst xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin")
     (synopsis "Clipboard manager for Xfce")
@@ -552,16 +520,9 @@ matching them against regular expressions.")
                                     (or (getenv "C_INCLUDE_PATH") "")))
              #t)))))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("dbus-glib" ,dbus-glib)
-       ("dbus" ,dbus)))
+     (list intltool pkg-config dbus-glib dbus))
     (inputs
-     `(("exo" ,exo)
-       ("libnotify" ,libnotify)
-       ("libxfce4ui" ,libxfce4ui)
-       ("pulseaudio" ,pulseaudio)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list exo libnotify libxfce4ui pulseaudio xfce4-panel))
     (home-page "https://git.xfce.org/panel-plugins/xfce4-pulseaudio-plugin/")
     (synopsis "PulseAudio panel plugin for Xfce")
     (description
@@ -574,7 +535,7 @@ keys for controlling the audio volume.")
 (define-public xfce4-whiskermenu-plugin
   (package
     (name "xfce4-whiskermenu-plugin")
-    (version "2.5.2")
+    (version "2.6.1")
     (source
      (origin
        (method url-fetch)
@@ -582,11 +543,10 @@ keys for controlling the audio volume.")
                            "xfce4-whiskermenu-plugin/" (version-major+minor version) "/"
                            "xfce4-whiskermenu-plugin-" version ".tar.bz2"))
        (sha256
-        (base32 "05f53ycbszvw23g76pbdszfnqfk4f8w4imwfgljj140wzl50gxx6"))))
+        (base32 "0wpcc9i505mh6vphg27ph43dw4n3z59mwy39416yzmw325q04kl5"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
      `(("xfce4-panel" ,xfce4-panel)
        ("garcon" ,garcon)
@@ -629,16 +589,15 @@ applications, and includes a search bar to search for applications.")
                 "0rvrz464y7ji989zvi2v85kg47444nqsdq9rv6k8dkbkdwzy2jxv"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("garcon" ,garcon)
-       ("librsvg" ,librsvg)
-       ("libwnck" ,libwnck)
-       ("libx11" ,libx11)
-       ("libxfce4ui" ,libxfce4ui)
-       ("libxklavier" ,libxklavier)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list garcon
+           (librsvg-for-system)
+           libwnck
+           libx11
+           libxfce4ui
+           libxklavier
+           xfce4-panel))
     (home-page "https://git.xfce.org/panel-plugins/xfce4-xkb-plugin/")
     (synopsis "XKB layout switching panel plug-in for Xfce")
     (description
@@ -668,12 +627,9 @@ per window.")
                 "1v77h5634n49idci2jiw0k7jjk0vzpsvgyx2fkp18l39jayykqxz"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("garcon" ,garcon)
-       ("gtk+" ,gtk+)
-       ("libxfce4ui" ,libxfce4ui)))
+     (list garcon gtk+ libxfce4ui))
     (home-page "https://www.xfce.org/")
     (synopsis "Xfce application finder")
     (description
@@ -717,16 +673,15 @@ your system in categories, so you can quickly find and launch them.")
                (substitute* "scripts/xflock4"
                  (("xset") (string-append xset "/bin/xset")))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("iceauth" ,iceauth)
-       ("upower" ,upower)
-       ("polkit" ,polkit)
-       ("libsm" ,libsm)
-       ("libwnck" ,libwnck)
-       ("libxfce4ui" ,libxfce4ui)
-       ("xset" ,xset)))
+     (list iceauth
+           upower
+           polkit
+           libsm
+           libwnck
+           libxfce4ui
+           xset))
     (home-page "https://www.xfce.org/")
     (synopsis "Xfce session manager")
     (description
@@ -753,24 +708,23 @@ allows you to shut down the computer from Xfce.")
                            "--enable-sound-settings"
                            "--enable-xrandr")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("exo" ,exo)
-       ("garcon" ,garcon)
-       ("libnotify" ,libnotify)
-       ("libxcursor" ,libxcursor)
-       ("libxi" ,libxi)
-       ("libxklavier" ,libxklavier)
-       ("libxrandr" ,libxrandr)
-       ("libxfce4ui" ,libxfce4ui)
-       ("upower" ,upower) ;; TODO needs upower-glib
-       ("python" ,python) ;; for xfce4-compose-mail
-       ("xf86-input-libinput" ,xf86-input-libinput)))
+     (list exo
+           garcon
+           libnotify
+           libxcursor
+           libxi
+           libxklavier
+           libxrandr
+           libxfce4ui
+           upower ;; TODO needs upower-glib
+           python ;; for xfce4-compose-mail
+           xf86-input-libinput))
     (propagated-inputs
      ;; Some operations, such as changing icon themes, require these schemas
      ;; to be in the search path.
-     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
+     (list gsettings-desktop-schemas))
     (home-page "https://www.xfce.org/")
     (synopsis "Xfce settings manager")
     (description
@@ -781,7 +735,7 @@ like appearance, display, keyboard and mouse settings.")
 (define-public thunar
   (package
     (name "thunar")
-    (version "4.16.8")                            ;stable version = even minor
+    (version "4.16.10")                           ;stable version = even minor
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -789,22 +743,21 @@ like appearance, display, keyboard and mouse settings.")
                                   "thunar-" version ".tar.bz2"))
               (sha256
                (base32
-                "159ircj0mahx54fqsr3l3ynk690zlpc6ar5pnyhhpk90s8la5303"))))
+                "14lwi4ax0wj77980kkfhdf18b97339b17y8qc8gl2365mgswh1gi"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("exo" ,exo)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gvfs" ,gvfs)
-       ("libexif" ,libexif)
-       ("libgudev" ,libgudev)
-       ("libnotify" ,libnotify)
-       ("libxfce4ui" ,libxfce4ui)
-       ("pcre" ,pcre)
-       ("xfce4-panel" ,xfce4-panel)
-       ("startup-notification" ,startup-notification)))
+     (list exo
+           gobject-introspection
+           gvfs
+           libexif
+           libgudev
+           libnotify
+           libxfce4ui
+           pcre
+           xfce4-panel
+           startup-notification))
     (home-page "https://www.xfce.org/")
     (synopsis "Xfce file manager")
     (description
@@ -826,13 +779,9 @@ fast.")
         (base32 "0zaliahfz9ci2md7g6w9mb7z5azi5n56gihbnwyzvds2n8cygh6j"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("exo" ,exo)
-       ("libgudev" ,libgudev)
-       ("libnotify" ,libnotify)
-       ("libxfce4ui" ,libxfce4ui)))
+     (list exo libgudev libnotify libxfce4ui))
     (home-page "https://www.xfce.org/")
     (synopsis "Removable media manager for Thunar")
     (description
@@ -857,15 +806,14 @@ and import the new pictures from your camera.")
                 "133ip28v6j3x4l413d81ixsisf32sa0xzd54n0nn8g6p9fh4rcmm"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("libdrm" ,libdrm)
-       ("libwnck" ,libwnck)
-       ("libxcomposite" ,libxcomposite)
-       ("libxdamage" ,libxdamage)
-       ("libxfce4ui" ,libxfce4ui)
-       ("libxrandr" ,libxrandr)))
+     (list libdrm
+           libwnck
+           libxcomposite
+           libxdamage
+           libxfce4ui
+           libxrandr))
     (home-page "https://www.xfce.org/")
     (synopsis "Xfce window manager")
     (description
@@ -915,19 +863,16 @@ on the screen.")
 
        #:disallowed-references (,inkscape ,imagemagick)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-
-       ;; For our own ‘prepare-background-image’ phase.
-       ("inkscape" ,inkscape)
-       ("imagemagick" ,imagemagick)))
+     (list pkg-config intltool
+           ;; For our own ‘prepare-background-image’ phase.
+           inkscape imagemagick))
     (inputs
-     `(("exo" ,exo)
-       ("garcon" ,garcon)
-       ("libnotify" ,libnotify)
-       ("libwnck" ,libwnck)
-       ("libxfce4ui" ,libxfce4ui)
-       ("thunar" ,thunar)))
+     (list exo
+           garcon
+           libnotify
+           libwnck
+           libxfce4ui
+           thunar))
     (home-page "https://www.xfce.org/")
     (synopsis "Xfce desktop manager")
     (description
@@ -950,11 +895,9 @@ devices and folders.")
                 "1irxyg5vp6vyd9vxdqav6jhchfkmhlqq511386h644p0k30kfcvs"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("vte" ,vte)))
+     (list libxfce4ui vte))
     (home-page "https://www.xfce.org/")
     (synopsis "Xfce terminal emulator")
     (description
@@ -1028,7 +971,7 @@ on your desktop.")
        ("xfce4-xkb-plugin"        ,xfce4-xkb-plugin)))
     (propagated-inputs
      ;; Default font that applications such as IceCat require.
-     `(("font-dejavu"             ,font-dejavu)))
+     (list font-dejavu))
     (native-search-paths
      ;; For finding panel plugins.
      (package-native-search-paths xfce4-panel))
@@ -1053,14 +996,9 @@ system resources, while still being visually appealing and user friendly.")
                 "1wrvqiifaxsgcn1kh4vm2hwxi9lgm6mw4zrfld2zl0mm05y5i77b"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("libxrandr" ,libxrandr)
-       ("gtk+" ,gtk+)
-       ("upower" ,upower)
-       ("libnotify" ,libnotify)
-       ("libxfce4ui" ,libxfce4ui)))
+     (list libxrandr gtk+ upower libnotify libxfce4ui))
     (home-page "https://www.xfce.org/")
     (synopsis "Xfce Power Manager")
     (description
@@ -1076,7 +1014,7 @@ inhibit interface which allows applications to prevent automatic sleep.")
 (define-public ristretto
   (package
     (name "ristretto")
-    (version "0.11.0")
+    (version "0.12.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/apps/ristretto/"
@@ -1084,18 +1022,12 @@ inhibit interface which allows applications to prevent automatic sleep.")
                                   "ristretto-" version ".tar.bz2"))
               (sha256
                (base32
-                "08w8nw6cl8kpvjnp7dxgpqlmi3s73amhrb7l0sbzmjy82ba30zl7"))))
+                "1vnpzyb966pfbn7md0q26kl972iqwfywg4lfg3jahrl4l6f3z18k"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("desktop-file-utils" ,desktop-file-utils)
-       ("pkg-config" ,pkg-config)))
+     (list intltool desktop-file-utils pkg-config))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libexif" ,libexif)
-       ("libxfce4ui" ,libxfce4ui)
-       ("librsvg" ,librsvg)
-       ("tumbler" ,tumbler)))
+     (list gtk+ libexif libxfce4ui tumbler))
     (home-page "https://docs.xfce.org/apps/ristretto/start")
     (synopsis "Fast and lightweight picture-viewer")
     (description
@@ -1119,15 +1051,14 @@ the desktop wallpaper.")
                 "1ya81si7xhqqbbc9lfcjg2i1pi1qdfw1pnjry7kf95f1w50244nd"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libwnck" ,libwnck)
-       ("libxmu" ,libxmu)
-       ("gtk+" ,gtk+)
-       ;; FIXME: Remove libxext and libxt when libxmu propagates them.
-       ("libxext" ,libxext)
-       ("libxt" ,libxt)))
+     (list libwnck
+           libxmu
+           gtk+
+           ;; FIXME: Remove libxext and libxt when libxmu propagates them.
+           libxext
+           libxt))
     (home-page "https://goodies.xfce.org/projects/applications/xfce4-taskmanager")
     (synopsis "Easy to use task manager")
     (description
@@ -1157,14 +1088,9 @@ memory usage graphically, and it can display processes as a tree.")
              #t)))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("gtk+" ,gtk+-2)
-       ("libical" ,libical)
-       ("libnotify" ,libnotify)
-       ("popt" ,popt)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list gtk+-2 libical libnotify popt xfce4-panel))
     (home-page "https://www.xfce.org/projects/")
     (synopsis "Simple calendar application with reminders")
     (description
@@ -1189,12 +1115,9 @@ several different time zones.")
                 "0ib5s7kjbr9sy8nh89nfcc4w6qplacnk4s92iycijy2wcv389aqr"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("libnotify" ,libnotify)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui libnotify xfce4-panel))
     (home-page "https://goodies.xfce.org/projects/applications/xfce4-notifyd")
     (synopsis "Show notification bubbles on Xfce")
     (description
@@ -1220,19 +1143,18 @@ sending standard messages over D-Bus using the
                 "09q3s2rkpf0ljzq6bv4hl9byvaggjq7lchfw5zaircwv5q9nwhc3"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("exo" ,exo)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gst-plugins-good" ,gst-plugins-good)
-       ("gst-plugins-ugly" ,gst-plugins-ugly)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libburn" ,libburn)
-       ("libisofs" ,libisofs)
-       ("libxfce4ui" ,libxfce4ui)))
+     (list exo
+           gstreamer
+           gst-plugins-base
+           gst-plugins-good
+           gst-plugins-ugly
+           glib
+           gtk+
+           libburn
+           libisofs
+           libxfce4ui))
     (home-page "https://goodies.xfce.org/projects/applications/xfburn")
     (synopsis "GTK+ based CD, DVD and Blu-ray burning application")
     (description
@@ -1245,7 +1167,7 @@ of data to either CD/DVD/BD.")
 (define-public mousepad
   (package
     (name "mousepad")
-    (version "0.5.6")
+    (version "0.5.8")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/apps/mousepad/"
@@ -1253,7 +1175,7 @@ of data to either CD/DVD/BD.")
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "03rmjraxb6a3w7gknmf6mdzkfc0m8shs1vkb2chvv28xn1irhma2"))))
+                "08d7qfisdq59phbm0nbjr667av7l4qnpl5x565pybqnmvz7vn7lj"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '(;; Use the GSettings keyfile backend rather than
@@ -1268,16 +1190,13 @@ of data to either CD/DVD/BD.")
               (wrap-program (string-append out "/bin/mousepad")
                 ;; For language-specs.
                 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
-                                                              "/share")))))
-             #t)))))
+                                                              "/share"))))))))))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("glib" ,glib "bin") ; for glib-compile-schemas.
-       ("pkg-config" ,pkg-config)))
+     (list intltool
+           `(,glib "bin") ; for glib-compile-schemas.
+           pkg-config))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("gtksourceview" ,gtksourceview-3)
-       ("xfconf" ,xfconf)))
+     (list gtk+ gtksourceview xfconf))
     (home-page "https://git.xfce.org/apps/mousepad/")
     (synopsis "Simple text editor for Xfce")
     (description
@@ -1300,14 +1219,10 @@ of data to either CD/DVD/BD.")
               "196swmc4amab8xcwv4q9p8b43fzzi9xagg20gnyjvf5x7yssxj1k"))))
    (build-system gnu-build-system)
    (native-inputs
-    `(("pkg-config" ,pkg-config)
-      ("intltool" ,intltool)
-      ("glib:bin" ,glib "bin")))        ; glib-genmarshal
+    (list pkg-config intltool
+          `(,glib "bin")))        ; glib-genmarshal
    (inputs
-    `(("exo" ,exo)
-      ("libsoup" ,libsoup)
-      ("libxfce4ui" ,libxfce4ui)
-      ("xfce4-panel" ,xfce4-panel)))
+    (list exo libsoup-minimal-2 libxfce4ui xfce4-panel))
    (home-page "https://goodies.xfce.org/projects/applications/xfce4-screenshooter")
    (synopsis "Xfce's application to take screenshots")
    (description
@@ -1378,14 +1293,9 @@ A plugin for the Xfce panel is also available.")
                 "1q639iwwj7q2plgz0wdgdbi5wkgaq177ca9rnnlrnbdmid5z5fqk"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("xfconf" ,xfconf)
-       ("libnotify" ,libnotify)
-       ("pulseaudio" ,pulseaudio)
-       ("keybinder-3.0" ,keybinder-3.0)
-       ("gtk+" ,gtk+)))
+     (list xfconf libnotify pulseaudio keybinder-3.0 gtk+))
     (home-page "https://goodies.xfce.org/projects/applications/xfce4-volumed")
     (synopsis "XFCE volume keys daemon")
     (description
@@ -1396,7 +1306,7 @@ A plugin for the Xfce panel is also available.")
 (define-public xfce4-cpugraph-plugin
   (package
    (name "xfce4-cpugraph-plugin")
-   (version "1.2.3")
+   (version "1.2.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1405,14 +1315,12 @@ A plugin for the Xfce panel is also available.")
                                   "/xfce4-cpugraph-plugin-" version ".tar.bz2"))
               (sha256
                (base32
-                "13302psv0fzg2dsgadr8j6mb06k1bsa4zw6hxmb644vqlvcwq37v"))))
+                "1c51qf93lr6kr2g4nil21rj1h3h5kp3k50n9hcxvcy9wz3bxpxn2"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-cpugraph-plugin")
     (synopsis "Display CPU load as a graph in the Xfce panel")
@@ -1441,11 +1349,9 @@ core or CPU.")
                 "1iaszzkagl1mb0cdafrvlfjnjklhhs9y90517par34sjiqbq1dsd"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-eyes-plugin")
     (synopsis "Display a pair of eyes for the Xfce panel")
@@ -1468,12 +1374,9 @@ watch your every step.")
                 "09b9k0n5xm115k44x74w4ad0xqklilyfh0hglsps7zj97pd7a5a3"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("gtk+-2" ,gtk+-2)
-       ("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list gtk+-2 libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-equake-plugin")
     (synopsis "Earthquake monitor for the Xfce panel")
@@ -1497,11 +1400,9 @@ each time a new earthquake occurs.")
                 "0h15mxq5lawlxyr6h1vxc60rkf0rpmnv81l0f52mrswww9dz3xp9"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-datetime-plugin")
     (synopsis "Display date and time inside the Xfce panel")
@@ -1524,11 +1425,9 @@ and a calendar appears when you left-click on it.")
                 "10fsb9pyr2cr9dj1k3n96dq6g02g61g5y4z4jzfvskpgqc1nl0g4"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-calculator-plugin")
     (synopsis "Calculator for the Xfce panel")
@@ -1552,11 +1451,9 @@ precedence rules, and the following functions and common constants.")
                 "17kzy156xqnbk4apskg005p7r09q7zb8crifad5mbawc7ysihll1"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-cpufreq-plugin")
     (synopsis "Xfce panel plugin for displaying CPU frequency")
@@ -1579,11 +1476,9 @@ governor and frequencies supported and used by your system.")
                 "0n8wsnjvzw98z8r0f0zr8n2gicjz6hhislp86xrjh0r4xcnymcbk"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-diskperf-plugin")
     (synopsis "Display disk performance in the Xfce panel")
@@ -1606,12 +1501,9 @@ performance (bytes transferred per second).")
                 "0a72kqsjjh45swimqlpyrahdnplp0383v0i4phr4n6g8c1ixyry7"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)
-       ("gtk+-2" ,gtk+-2)))
+     (list libxfce4ui xfce4-panel gtk+-2))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-embed-plugin")
     (synopsis "Embed arbitrary applications inside the Xfce panel")
@@ -1641,11 +1533,9 @@ this very convenient.")
                 "01a1an5z4kpgi68lk98q7wga7sx676fcbnrsd5cpq4d736ifdn37"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-fsguard-plugin")
     (synopsis "Xfce panel plugin to monitor free disk space")
@@ -1671,11 +1561,9 @@ be clicked to open the chosen mount point.")
                 "0d81npcqnmkw2qaqa8c6igh9j5r4ivgb15zcjwxjkyhrzz89y4dj"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-genmon-plugin")
     (synopsis "Generic program output monitor for the Xfce panel")
@@ -1702,13 +1590,9 @@ button and a personalized tooltip.")
                 "0bmykjhd3gs1737fl3zn5gg6f3vlncak2xqz89zv5018znz1xy90"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("gtk+-2" ,gtk+-2)
-       ("libxfce4ui" ,libxfce4ui)
-       ("exo" ,exo)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list gtk+-2 libxfce4ui exo xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-mailwatch-plugin")
     (synopsis "Mail watch plugin for the Xfce panel")
@@ -1740,11 +1624,9 @@ multi-mailbox mail watcher.  Currently, the protocols supported are:
                 "0q3pysdp85b3c7g3b59y3c69g4nw6bvbf518lnri4lxrnsvpizpf"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui xfce4-panel))
     (home-page "https://goodies.xfce.org/projects/panel-plugins/xfce4-mpc-plugin")
     (synopsis "Music Player Daemon plugin for the Xfce panel")
     (description "This is a simple client plugin for Music Player Daemon.
@@ -1783,11 +1665,9 @@ right-click menu
                 "1hlfnlxwwx0hkm82mcz777f3i22x6bh6k3gzl0yjnm4yj9adjk2q"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-mount-plugin")
     (synopsis "Mount/unmount plugin for the Xfce panel")
@@ -1812,11 +1692,9 @@ mounted or when unmounting fails.")
                 "036pvhfv1iynvj75va0xl8hpvnfckabyqm9jv56pb40p2072cxkc"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-netload-plugin")
     (synopsis "Netload plugin for the Xfce Panel")
@@ -1839,14 +1717,9 @@ interfaces of your choice in the panel.")
                 "1chac4ki70axgvkmhw94m0srsv0pwiwqrqbh8di0y9n90fgj24gj"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("desktop-file-utils" ,desktop-file-utils)
-       ("pkg-config" ,pkg-config)))
+     (list intltool desktop-file-utils pkg-config))
     (inputs
-     `(("gtk+-2" ,gtk+-2)
-       ("exo" ,exo)
-       ("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list gtk+-2 exo libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-places-plugin")
     (synopsis "Gnome-like Places menu for the Xfce panel")
@@ -1881,11 +1754,9 @@ opens up a menu with the following:
                 "1lyd64qc9w6qnpqjb5xk0mjq4l7riv6z7l9aws28clalb8prw9ra"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-smartbookmark-plugin")
     (synopsis "Perform custom searches in your browser from the Xfce panel")
@@ -1909,13 +1780,10 @@ favorite search engine or bug tracker right from the Xfce panel.")
                 "1d2n56g12dhnjznrq7xvr6d3brpp0lmm080xmgjb7ybc1yygpxrc"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("glib:bin" ,glib "bin")))
+     (list intltool pkg-config
+           `(,glib "bin")))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("libdbusmenu" ,libdbusmenu)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui libdbusmenu xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-statusnotifier-plugin")
     (synopsis "Xfce panel plugin for status notifier items")
@@ -1941,11 +1809,9 @@ freedesktop.org specification.")
                 "1q840298jzdqlhc9lw49q32xzdhnbzcgvv69qq5slkc704s5w6vw"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-stopwatch-plugin")
     (synopsis "Stopwatch plugin for the Xfce panel")
@@ -1967,12 +1833,9 @@ freedesktop.org specification.")
                 "0lknh5l30qs5c69wwjcblbyhczvdbxs59fqkb8mpqbfm05w01lan"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libgtop" ,libgtop)
-       ("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libgtop libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-systemload-plugin")
     (synopsis "System load display plugin for the Xfce panel")
@@ -1996,12 +1859,9 @@ swap space and the system uptime in the Xfce4 panel.")
                 "1m42kmi0x3xb0lzj2nd7q2r5y5r2viqcvxfpbg1aafzzjjkfpn1x"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list gtk+ libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-time-out-plugin")
     (synopsis "Xfce panel plugin that encourages periodical breaks")
@@ -2026,11 +1886,9 @@ time.")
                 "1qr4m3n2l3rvsizsr3h7fyfajszfalqm7rhvjx2yjj8r3f8x4ljb"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-timer-plugin")
     (synopsis "Simple countdown and alarm plugin for the Xfce panel")
@@ -2054,11 +1912,9 @@ period.")
                 "09gqp0jb5ccjh7ny798n5cy9skdx3hpis4kgvjpl4vidnrg5xnpb"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-verve-plugin")
     (synopsis "Command line for the Xfce panel")
@@ -2088,11 +1944,9 @@ for the Xfce panel.  It supports several features, such as:
                 "07a8nmc60in48licjj0gmwm77vb8divh1lb7jnib35n5a1ka6ypa"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("libxfce4ui" ,libxfce4ui)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list libxfce4ui xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-wavelan-plugin")
     (synopsis "Show stats from WLAN interface in Xfce panel")
@@ -2115,14 +1969,9 @@ lan interface (signal state, signal quality, network name (SSID)).")
                 "1z2k24d599mxf5gqa35i3xmc3gk2yvqs80hxxpyw06yma6ljw973"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libsoup" ,libsoup)
-       ("libxfce4ui" ,libxfce4ui)
-       ("libxml2" ,libxml2)
-       ("xfce4-panel" ,xfce4-panel)))
+     (list gtk+ libsoup-minimal-2 libxfce4ui libxml2 xfce4-panel))
     (home-page
      "https://goodies.xfce.org/projects/panel-plugins/xfce4-weather-plugin")
     (synopsis "Show information about local weather in the Xfce panel")
@@ -2130,3 +1979,28 @@ lan interface (signal state, signal quality, network name (SSID)).")
 local weather in the panel, using forecast data provided by the
 @uref{https://met.no, Norwegian Meteorological Institute}.")
     (license gpl2+)))
+
+(define-public xfce4-dev-tools
+  (package
+    (name "xfce4-dev-tools")
+    (version "4.17.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://archive.xfce.org/src/xfce/"
+                                  "xfce4-dev-tools/" (version-major+minor version) "/"
+                                  "xfce4-dev-tools-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1iwkqj96x2s7fk4srg1pymvsiwb2rn6vvhy6hrmnc3hl1vqw2d6k"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list glib))
+    (home-page "https://docs.xfce.org/xfce/xfce4-dev-tools/")
+    (synopsis "Xfce developer tools")
+    (description
+     "The Xfce development tools are a collection of tools and macros for Xfce
+developers and people that want to build Xfce from Git In addition it contains
+the Xfce developer's handbook.")
+    (license gpl2+)))
diff --git a/gnu/packages/xfig.scm b/gnu/packages/xfig.scm
index c3d02619b4..9004c79e22 100644
--- a/gnu/packages/xfig.scm
+++ b/gnu/packages/xfig.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,6 +26,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages image)
   #:use-module (gnu packages compression))
@@ -32,7 +34,7 @@
 (define-public xfig
   (package
     (name "xfig")
-    (version "3.2.7a")
+    (version "3.2.8b")
     (source
      (origin
        (method url-fetch)
@@ -40,11 +42,11 @@
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "096zgp0bqnxhgxbrv2jjylrjz3pr4da0xxznlk2z7ffxr5pri2fa"))))
+         "0fndgbm1mkqb1sn2v2kj3nx9mxj70jbp31y2bjvzcmmkry0q3k5j"))))
     (build-system gnu-build-system)
     (native-inputs
      ;; For tests.
-     `(("desktop-file-utils" ,desktop-file-utils)))
+     (list desktop-file-utils ghostscript))
     (inputs
      `(("libxaw3d" ,libxaw3d)
        ("libjpeg" ,libjpeg-turbo)
@@ -86,8 +88,7 @@ selected in various ways.  For text, 35 fonts are available.")
          "0i3p7qmg2w8qrad3pn42b0miwarql7yy0gpd49b1bpal6bqsiicf"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("imake" ,imake)
-       ("makedepend" ,makedepend)))
+     (list imake makedepend))
     (inputs
      `(("xfig"    ,xfig)
        ("libjpeg" ,libjpeg-turbo)
diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index 0bc744734e..ccd99de7c6 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -85,7 +86,7 @@ periodic timestamps for seeking.")
              (base32
               "0jwmf87x5sdis64rbv0l87mdpah1rbilkkxszipbzg128f9w8g5k"))))
    (build-system gnu-build-system)
-   (propagated-inputs `(("libogg" ,libogg)))
+   (propagated-inputs (list libogg))
    (arguments `(#:configure-flags '("LDFLAGS=-lm"
                                     "--disable-static")
                 #:parallel-tests? #f))
@@ -115,9 +116,9 @@ polyphonic) audio and music at fixed and variable bitrates from 16 to
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")))
-    (inputs `(("libvorbis" ,libvorbis)))
+    (inputs (list libvorbis))
     ;; The .pc files refer to libogg.
-    (propagated-inputs `(("libogg" ,libogg)))
+    (propagated-inputs (list libogg))
     (synopsis "Library implementing the Theora video format")
     (description
      "The libtheora library implements the ogg theora video format,
@@ -142,10 +143,9 @@ compressed video format.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libogg" ,libogg)
-       ("speexdsp" ,speexdsp)))
+     (list libogg speexdsp))
     (home-page "https://gnu.org/software/speex")
     (synopsis "Library for patent-free audio compression format")
     (description
@@ -203,13 +203,9 @@ work from the @code{speex} codec.")
     ;; "out" would include only the ALSA back-end, while "pulse" would
     ;; contain 'lib/ao/plugins-4/libpulse.*'.
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("pulseaudio" ,pulseaudio)))
+     (list alsa-lib pulseaudio))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list pkg-config autoconf automake libtool))
     (synopsis "Cross platform audio library")
     (description
      "Libao is a cross-platform audio library that allows programs to
@@ -254,7 +250,7 @@ It currently supports:
    (arguments
     `(#:parallel-tests? #f))
    ;; FIXME: configure also looks for xmms, input could be added once it exists
-   (propagated-inputs `(("libogg" ,libogg))) ; required by flac.pc
+   (propagated-inputs (list libogg)) ; required by flac.pc
    (synopsis "Free lossless audio codec")
    (description
 "FLAC stands for Free Lossless Audio Codec, an audio format that is lossless,
@@ -275,14 +271,9 @@ meaning that audio is compressed in FLAC without any loss in quality.")
              (base32
               "0s3vr2nxfxlf1k75iqpp4l78yf4gil3f0v778kvlngbchvaq23n4"))))
    (build-system gnu-build-system)
-   (native-inputs `(("doxygen" ,doxygen)
-                    ("bison" ,bison)
-                    ("pkg-config" ,pkg-config)))
+   (native-inputs (list doxygen bison pkg-config))
    ;; FIXME: Add optional input liboggz
-   (inputs `(("libogg" ,libogg)
-             ("libpng" ,libpng)
-             ("python" ,python-wrapper)
-             ("zlib" ,zlib)))
+   (inputs (list libogg libpng python-wrapper zlib))
    (synopsis "Karaoke and text codec for embedding in ogg")
    (description
     "Kate is an overlay codec, originally designed for karaoke and text,
@@ -311,14 +302,14 @@ Kate stream.")
              (base32
               "1c7h4ivgfdyygz2hyh6nfibxlkz8kdk868a576qkkjgj5gn78xyv"))))
    (build-system gnu-build-system)
-   (inputs `(("ao" ,ao)
-             ("curl" ,curl)
-             ("flac" ,flac)
-             ("libkate" ,libkate)
-             ("libogg" ,libogg)
-             ("libvorbis" ,libvorbis)
-             ("speex" ,speex)))
-   (native-inputs `(("pkg-config" ,pkg-config)))
+   (inputs (list ao
+                 curl
+                 flac
+                 libkate
+                 libogg
+                 libvorbis
+                 speex))
+   (native-inputs (list pkg-config))
    (synopsis "Ogg vorbis tools")
    (description
     "Ogg vorbis is a non-proprietary, patent-and-royalty-free,
@@ -380,11 +371,9 @@ incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.")
                                               (assoc-ref %build-inputs "opus")
                                               "/include/opus"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libopusenc" ,libopusenc)
-       ("opusfile" ,opusfile)
-       ("flac" ,flac)))
+     (list libopusenc opusfile flac))
     (synopsis
      "Command line utilities to encode, inspect, and decode .opus files")
     (description "Opus is a royalty-free, highly versatile audio codec.
@@ -407,14 +396,21 @@ decoding .opus files.")
                 "02smwc5ah8nb3a67mnkjzqmrzk43j356hgj2a97s9midq40qd38i"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--disable-static")))
+     '(#:configure-flags '("--disable-static")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-multistream
+           ;; Opus include directory should be passed explicitly:
+           ;; https://github.com/xiph/opusfile/issues/10 however,
+           ;; opus_multistream.h still can't be found by the compiler.
+           (lambda _
+             (substitute* "include/opusfile.h"
+               (("opus_multistream\\.h") "opus/opus_multistream.h")))))))
     ;; Required by opusfile.pc and opusurl.pc.
     (propagated-inputs
-     `(("libogg" ,libogg)
-       ("openssl" ,openssl)
-       ("opus" ,opus)))
+     (list libogg openssl opus))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Versatile audio codec")
     (description
      "The opusfile library provides seeking, decode, and playback of Opus
@@ -436,9 +432,9 @@ windows systems.")
                 "1ffb0vhlymlsq70pxsjj0ksz77yfm2x0a1x8q50kxmnkm1hxp642"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
-     `(("opus" ,opus)))
+     (list opus))
     (synopsis "Library for encoding Opus audio files and streams ")
     (description "The libopusenc libraries provide a high-level API for
 encoding Opus files and streams.")
@@ -459,16 +455,16 @@ encoding Opus files and streams.")
                 "0i2d9rhav0x6js2qhjf5iy6j2a7f0d11ail0lfv40hb1kygrgda9"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libxslt" ,libxslt)
-       ("libxml2" ,libxml2)
-       ("openssl" ,openssl)
-       ("curl" ,curl)
-       ("libogg" ,libogg)
-       ("libvorbis" ,libvorbis)
-       ("libtheora" ,libtheora)
-       ("speex" ,speex)))
+     (list libxslt
+           libxml2
+           openssl
+           curl
+           libogg
+           libvorbis
+           libtheora
+           speex))
     (synopsis "Streaming media server")
     (description "Icecast is a streaming media server which currently supports
 Ogg (Vorbis and Theora), Opus, WebM and MP3 audio streams.  It can be used to
@@ -491,12 +487,10 @@ things in between.")
                 "1438da40y73y9068saxrbmm27qq6xqmmzsziwgmr8fb7i9k6irfr"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
      ;; shout.pc refers to all these.
-     `(("libtheora" ,libtheora)
-       ("libvorbis" ,libvorbis)
-       ("speex"     ,speex)))
+     (list libtheora libvorbis speex))
     (home-page "https://icecast.org/")
     (synopsis "Audio streaming library for icecast encoders")
     (description
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 3b0ab90574..bc76a95c59 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -103,12 +103,9 @@
     (arguments
      `(#:glib-or-gtk? #t))
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("pkg-config" ,pkg-config)))
+     (list gobject-introspection gtk-doc/stable pkg-config))
     (inputs
-     `(("appstream-glib" ,appstream-glib)
-       ("glib" ,glib)))
+     (list appstream-glib glib))
     (synopsis "Library to help create and query binary XML blobs")
     (description "Libxmlb library takes XML source, and converts it to a
 structured binary representation with a deduplicated string table; where the
@@ -223,9 +220,9 @@ hierarchical form with variable field lengths.")
                           (("^old_library='libxml2.a'") "old_library=''"))))))))
     (home-page "http://www.xmlsoft.org/")
     (synopsis "C parser for XML")
-    (inputs `(("xz" ,xz)))
-    (propagated-inputs `(("zlib" ,zlib))) ; libxml2.la says '-lz'.
-    (native-inputs `(("perl" ,perl)))
+    (inputs (list xz))
+    (propagated-inputs (list zlib)) ; libxml2.la says '-lz'.
+    (native-inputs (list perl))
     ;; $XML_CATALOG_FILES lists 'catalog.xml' files found in under the 'xml'
     ;; sub-directory of any given package.
     (native-search-paths (list (search-path-specification
@@ -284,9 +281,9 @@ to output XPath results with a null delimiter.")))
        (modify-phases %standard-phases
          (delete 'configure))))         ; no configure script
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     (list python-pytest))
     (inputs
-     `(("minizip" ,minizip)))
+     (list minizip))
     (home-page "https://github.com/jmcnamara/libxlsxwriter")
     (synopsis "C library for creating Excel XLSX files")
     (description
@@ -361,7 +358,7 @@ formulas and hyperlinks to multiple worksheets in an Excel 2007+ XLSX file.")
               ("zlib" ,zlib)
               ("xz" ,xz)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (description
      "Libxslt is an XSLT C library developed for the GNOME project.  It is
 based on libxml for XML parsing, tree manipulation and XPath support.")
@@ -435,9 +432,9 @@ based on libxml for XML parsing, tree manipulation and XPath support.")
                  (format #t "test suite not run~%"))
              #t)))))
     (inputs
-     `(("opensp" ,opensp)))
+     (list opensp))
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "http://openjade.sourceforge.net/")
     (synopsis "ISO/IEC 10179:1996 standard DSSSL language implementation")
     (description "OpenJade is an implementation of Document Style Semantics
@@ -463,10 +460,7 @@ MIF, SGML2SGML, and FOT.")
          "0jlsg64pmy6ka5q5gy851nnyfgjzvhyxc576bhns3vi2x5ng07mh"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-graph" ,perl-graph)
-       ("perl-parse-yapp" ,perl-parse-yapp)
-       ("perl-xml-parser" ,perl-xml-parser)
-       ("perl-xml-writer" ,perl-xml-writer)))
+     (list perl-graph perl-parse-yapp perl-xml-parser perl-xml-writer))
     (home-page "https://metacpan.org/release/Graph-ReadWrite")
     (synopsis "Modules for reading and writing directed graphs")
     (description "This is a collection of perl classes for reading and writing
@@ -502,18 +496,16 @@ the @code{Graph} class and write it out in a specific file format.")
              #t)))))
     (native-inputs
      ;; TODO package: perl-datetime-format-atom
-     `(("perl-html-tagset" ,perl-html-tagset)
-       ("perl-module-build-tiny" ,perl-module-build-tiny)
-       ("perl-module-install" ,perl-module-install)))
+     (list perl-html-tagset perl-module-build-tiny perl-module-install))
     (propagated-inputs
-     `(("perl-class-data-inheritable" ,perl-class-data-inheritable)
-       ("perl-datetime" ,perl-datetime)
-       ("perl-datetime-timezone" ,perl-datetime-timezone)
-       ("perl-digest-sha1" ,perl-digest-sha1)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-uri" ,perl-uri)
-       ("perl-xml-libxml" ,perl-xml-libxml)
-       ("perl-xml-xpath" ,perl-xml-xpath)))
+     (list perl-class-data-inheritable
+           perl-datetime
+           perl-datetime-timezone
+           perl-digest-sha1
+           perl-libwww
+           perl-uri
+           perl-xml-libxml
+           perl-xml-xpath))
     (home-page "https://metacpan.org/release/XML-Atom")
     (synopsis "Atom feed and API implementation")
     (description
@@ -534,10 +526,9 @@ the @code{Graph} class and write it out in a specific file format.")
                 "0l5xmw2hd95ypppz3lyvp4sn02ccsikzjwacli3ydxfdz1bbh4d7"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)))
+     (list perl-module-build))
     (propagated-inputs
-     `(("perl-test-differences" ,perl-test-differences)
-       ("perl-xml-tokeparser" ,perl-xml-tokeparser)))
+     (list perl-test-differences perl-xml-tokeparser))
     (home-page "https://metacpan.org/release/XML-Descent")
     (synopsis "Recursive descent XML parsing")
     (description
@@ -566,7 +557,7 @@ parsers for it.  @code{XML::Descent} allows such parsers to be created.")
                  (let ((expat (assoc-ref %build-inputs "expat")))
                    (list (string-append "EXPATLIBPATH=" expat "/lib")
                          (string-append "EXPATINCPATH=" expat "/include")))))
-    (inputs `(("expat" ,expat)))
+    (inputs (list expat))
     (license license:perl-license)
     (synopsis "Perl bindings to the Expat XML parsing library")
     (description
@@ -592,7 +583,7 @@ given at XML::Parser creation time.")
                (base32
                 "1hnpwb3lh6cbgwvjjgqzcp6jm4mp612qn6ili38adc9nhkwv8fc5"))))
     (build-system perl-build-system)
-    (propagated-inputs `(("perl-xml-parser" ,perl-xml-parser)))
+    (propagated-inputs (list perl-xml-parser))
     (home-page "https://metacpan.org/release/XML-TokeParser")
     (synopsis "Simplified interface to XML::Parser")
     (description
@@ -617,7 +608,7 @@ corresponding to an @code{XML::Parser} event.")
                "1jy9af0ljyzj7wakqli0437zb2vrbplqj4xhab7bfj2xgfdhawa5"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-xml-parser" ,perl-xml-parser)))
+     (list perl-xml-parser))
     (license license:perl-license)
     (synopsis "Perl modules for working with XML")
     (description
@@ -641,10 +632,9 @@ combination with @code{XML::Parser}, PerlSAX, @code{XML::DOM},
          "1ks69xymv6zkj7hvaymjvb78ch81abri7kg4zrwxhdfsqb8a9g7h"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
-       ("perl-xml-sax" ,perl-xml-sax)))
+     (list perl-xml-namespacesupport perl-xml-sax))
     (inputs
-     `(("libxml2" ,libxml2)))
+     (list libxml2))
     (home-page "https://metacpan.org/release/XML-LibXML")
     (synopsis "Perl interface to libxml2")
     (description "This module implements a Perl interface to the libxml2
@@ -666,8 +656,7 @@ XML parser and the high performance DOM implementation.")
                 "19k50d80i9dipsl6ln0f4awv9wmdg0xm3d16z8mngmvh9c8ci66d"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
-       ("perl-xml-libxml" ,perl-xml-libxml)))
+     (list perl-file-slurp-tiny perl-xml-libxml))
     (home-page "https://metacpan.org/release/XML-LibXML-Simple")
     (synopsis "XML::LibXML based XML::Simple clone")
     (description
@@ -689,9 +678,9 @@ XML parser and the high performance DOM implementation.")
          "0wyl8klgr65j8y8fzgwz9jlvfjwvxazna8j3dg9gksd2v973fpia"))))
     (build-system perl-build-system)
     (inputs
-     `(("libxslt" ,libxslt)))
+     (list libxslt))
     (propagated-inputs
-     `(("perl-xml-libxml" ,perl-xml-libxml)))
+     (list perl-xml-libxml))
     (home-page "https://metacpan.org/release/XML-LibXSLT")
     (synopsis "Perl bindings to GNOME libxslt library")
     (description "This Perl module is an interface to the GNOME project's
@@ -732,19 +721,13 @@ checks.")
                 "0klb8ghd405pdkmn25lp3i4j2lfydz8w581sk51p3zy788s0c9yk"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-test-manifest" ,perl-test-manifest)
-       ("perl-test-differences" ,perl-test-differences)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+     (list perl-module-build perl-test-manifest perl-test-differences
+           perl-test-pod perl-test-pod-coverage))
     ;; XXX: The test which uses this modules does not run, even when it is included
     ;; it is ignored. ("perl-test-trailingspace" ,perl-test-trailingspace)
     (inputs
-     `(("perl-datetime" ,perl-datetime)
-       ("perl-datetime-format-mail" ,perl-datetime-format-mail)
-       ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
-       ("perl-html-parser" ,perl-html-parser)
-       ("perl-xml-parser" ,perl-xml-parser)))
+     (list perl-datetime perl-datetime-format-mail
+           perl-datetime-format-w3cdtf perl-html-parser perl-xml-parser))
     (home-page "https://metacpan.org/release/XML-RSS")
     (synopsis "Creates and updates RSS files")
     (description
@@ -767,8 +750,7 @@ that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and
         (base32 "0am13vnv8qsjafr5ljakwnkhlwpk15sga02z8mxsg9is0j3w61j5"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
-       ("perl-xml-sax-base" ,perl-xml-sax-base)))
+     (list perl-xml-namespacesupport perl-xml-sax-base))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-before
@@ -824,8 +806,7 @@ callback.")
                "1y6vh328zrh085d40852v4ij2l4g0amxykswxd1nfhd2pspds7sk"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-xml-parser" ,perl-xml-parser)
-       ("perl-xml-sax" ,perl-xml-sax)))
+     (list perl-xml-parser perl-xml-sax))
     (license license:perl-license)
     (synopsis "Perl module for easy reading/writing of XML files")
     (description
@@ -848,7 +829,7 @@ parser modules).")
                "0m7wj00a2kik7wj0azhs1zagwazqh3hlz4255n75q21nc04r06fz"))))
     (build-system perl-build-system)
     (inputs
-     `(("perl-xml-parser" ,perl-xml-parser)))
+     (list perl-xml-parser))
     (license license:perl-license)
     (synopsis "Perl regular expressions for XML tokens")
     (description
@@ -871,10 +852,7 @@ EntityRef, CharRef, Reference, Name, NmToken, and AttValue.")
                "0phpkc4li43m2g44hdcvyxzy9pymqwlqhh5hwp2xc0cv8l5lp8lb"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-libwww" ,perl-libwww)
-       ("perl-libxml" ,perl-libxml)
-       ("perl-xml-parser" ,perl-xml-parser)
-       ("perl-xml-regexp" ,perl-xml-regexp)))
+     (list perl-libwww perl-libxml perl-xml-parser perl-xml-regexp))
     (license license:perl-license)
     (synopsis
      "Perl module for building DOM Level 1 compliant document structures")
@@ -899,8 +877,7 @@ that conforms to the API of the Document Object Model.")
                 "1drzwziwi96rfkh48qpw4l225mcbk8ppl2157nj92cslcpwwdk75"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-log-report" ,perl-log-report)
-       ("perl-test-deep" ,perl-test-deep)))
+     (list perl-log-report perl-test-deep))
     (home-page "https://metacpan.org/release/XML-Compile-Tester")
     (synopsis "XML::Compile related regression testing")
     (description
@@ -922,12 +899,12 @@ This module provide functions which simplify writing tests for
                 "0psr5pwsk2biz2bfkigmx04v2rfhs6ybwcfmcrrg7gvh9bpp222b"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-log-report" ,perl-log-report)
-       ("perl-xml-compile-tester" ,perl-xml-compile-tester)
-       ("perl-xml-libxml" ,perl-xml-libxml)
-       ("perl-scalar-list-utils" ,perl-scalar-list-utils)
-       ("perl-test-deep" ,perl-test-deep)
-       ("perl-types-serialiser" ,perl-types-serialiser)))
+     (list perl-log-report
+           perl-xml-compile-tester
+           perl-xml-libxml
+           perl-scalar-list-utils
+           perl-test-deep
+           perl-types-serialiser))
     (home-page "https://metacpan.org/release/XML-Compile")
     (synopsis "Compilation-based XML processing")
     (description
@@ -949,10 +926,8 @@ a schema.")
                 "181qf1s7ymgi7saph3cf9p6dbxkxyh1ja23na4dchhi8v5mi66sr"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-log-report" ,perl-log-report)
-       ("perl-xml-compile" ,perl-xml-compile)
-       ("perl-xml-compile-tester" ,perl-xml-compile-tester)
-       ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)))
+     (list perl-log-report perl-xml-compile perl-xml-compile-tester
+           perl-xml-libxml-simple))
     (home-page "https://metacpan.org/release/XML-Compile-Cache")
     (synopsis "Cache compiled XML translators")
     (description
@@ -972,12 +947,12 @@ a schema.")
                 "0pkcph562l2ij7rlwlvm58v6y062qsbydfpaz2qnph2ixqy0xfd1"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
-       ("perl-libwww" ,perl-libwww)
-       ("perl-log-report" ,perl-log-report)
-       ("perl-xml-compile" ,perl-xml-compile)
-       ("perl-xml-compile-cache" ,perl-xml-compile-cache)
-       ("perl-xml-compile-tester" ,perl-xml-compile-tester)))
+     (list perl-file-slurp-tiny
+           perl-libwww
+           perl-log-report
+           perl-xml-compile
+           perl-xml-compile-cache
+           perl-xml-compile-tester))
     (home-page "https://metacpan.org/release/XML-Compile-SOAP")
     (synopsis "Base-class for SOAP implementations")
     (description
@@ -1000,10 +975,8 @@ used.")
                 "09ayl442hzvn97q4ghn5rz4r82dm9w3l69hixhb29h9xq9ysi7ba"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-log-report" ,perl-log-report)
-       ("perl-xml-compile" ,perl-xml-compile)
-       ("perl-xml-compile-cache" ,perl-xml-compile-cache)
-       ("perl-xml-compile-soap" ,perl-xml-compile-soap)))
+     (list perl-log-report perl-xml-compile perl-xml-compile-cache
+           perl-xml-compile-soap))
     (home-page "https://metacpan.org/release/XML-Compile-WSDL11")
     (synopsis "Create SOAP messages defined by WSDL 1.1")
     (description
@@ -1026,25 +999,23 @@ server, collect the answer, and finally decoding the XML to Perl.")
                 "04frqhikmyq0i9ldraisbvppyjhqg6gz83l2rqpmp4f2h9n9k2lw"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-uri" ,perl-uri)
-       ("perl-class-data-inheritable" ,perl-class-data-inheritable)))
+     (list perl-module-build perl-uri perl-class-data-inheritable))
     (propagated-inputs
-     `(("perl-class-errorhandler" ,perl-class-errorhandler)
-       ("perl-datetime" ,perl-datetime)
-       ("perl-datetime-format-flexible" ,perl-datetime-format-flexible)
-       ("perl-datetime-format-iso8601" ,perl-datetime-format-iso8601)
-       ("perl-datetime-format-mail" ,perl-datetime-format-mail)
-       ("perl-datetime-format-natural" ,perl-datetime-format-natural)
-       ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
-       ("perl-feed-find" ,perl-feed-find)
-       ("perl-html-parser" ,perl-html-parser)
-       ("perl-libwww-perl" ,perl-libwww)
-       ("perl-module-pluggable" ,perl-module-pluggable)
-       ("perl-uri-fetch" ,perl-uri-fetch)
-       ("perl-xml-atom" ,perl-xml-atom)
-       ("perl-xml-libxml" ,perl-xml-libxml)
-       ("perl-xml-rss" ,perl-xml-rss)))
+     (list perl-class-errorhandler
+           perl-datetime
+           perl-datetime-format-flexible
+           perl-datetime-format-iso8601
+           perl-datetime-format-mail
+           perl-datetime-format-natural
+           perl-datetime-format-w3cdtf
+           perl-feed-find
+           perl-html-parser
+           perl-libwww
+           perl-module-pluggable
+           perl-uri-fetch
+           perl-xml-atom
+           perl-xml-libxml
+           perl-xml-rss))
     (home-page "https://metacpan.org/release/XML-Feed")
     (synopsis "XML Syndication Feed Support")
     (description "@code{XML::Feed} is a syndication feed parser for both RSS and
@@ -1066,9 +1037,9 @@ RSS 0.91, RSS 1.0, RSS 2.0, Atom")
                 "03yxj7w5a43ibbpiqsvb3lswj2b71dydsx4rs2fw0p8n0l3i3j8w"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-path-tiny" ,perl-path-tiny)))
+     (list perl-path-tiny))
     (propagated-inputs
-     `(("perl-xml-parser" ,perl-xml-parser)))
+     (list perl-xml-parser))
     (home-page "https://metacpan.org/release/XML-XPath")
     (synopsis "Parse and evaluate XPath statements")
     (description
@@ -1093,7 +1064,7 @@ the form of functions.")
      `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")
        #:tests? #f))                    ; no tests
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://pugixml.org")
     (synopsis "Light-weight, simple and fast XML parser for C++ with XPath support")
     (description
@@ -1153,11 +1124,11 @@ code for classes that correspond to data structures defined by XMLSchema.")
                                                          "util-linux")
                                               "/bin/getopt"))))
     (native-inputs
-     `(("util-linux" ,util-linux)))
+     (list util-linux))
     (inputs
-     `(("util-linux" ,util-linux)                 ; for 'getopt'
-       ("libxml2" ,libxml2)                       ; for 'xmllint'
-       ("libxslt" ,libxslt)))                     ; for 'xsltproc'
+     (list util-linux ; for 'getopt'
+           libxml2 ; for 'xmllint'
+           libxslt))                     ; for 'xsltproc'
     (home-page "http://cyberelk.net/tim/software/xmlto/")
     (synopsis "Front-end to an XSL toolchain")
     (description
@@ -1179,14 +1150,11 @@ XSL-T processor.  It also performs any necessary post-processing.")
                 "0hy0nwz57n9r5wwab9xa66gzwlwvzs54nhlfn3jh8q13acl710z3"))))
     (build-system gnu-build-system)
     (propagated-inputs                  ; according to xmlsec1.pc
-     `(("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)))
+     (list libxml2 libxslt))
     (inputs
-     `(("gnutls" ,gnutls)
-       ("libgcrypt" ,libgcrypt)
-       ("libltdl" ,libltdl)))
+     (list gnutls libgcrypt libltdl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.aleksey.com/xmlsec/")
     (synopsis "XML Security Library")
     (description
@@ -1223,7 +1191,7 @@ Libxml2).")
 (define-public minixml
   (package
     (name "minixml")
-    (version "3.2")
+    (version "3.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/michaelrsweet/mxml/"
@@ -1231,7 +1199,7 @@ Libxml2).")
                                   "/mxml-" version ".tar.gz"))
               (sha256
                (base32
-                "0x698ayv00vrjg0yfm20lakpgl7m02x1fk2n09wygwk4973gd55q"))))
+                "1n1xzvhnsjsgsqaq1rg9zilwf0b2rydsadbxzy64z3lydwv7dybw"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -1369,8 +1337,7 @@ C++ programming language.")
              (symlink "xml" (string-append bin "/xmlstarlet"))
              #t))))))
    (inputs
-    `(("libxslt" ,libxslt)
-      ("libxml2" ,libxml2)))
+    (list libxslt libxml2))
    (home-page "http://xmlstar.sourceforge.net/")
    (synopsis "Command line XML toolkit")
    (description "XMLStarlet is a set of command line utilities which can be
@@ -1527,7 +1494,7 @@ spreadsheet.")
            '()
            '(#:configure-flags '("--disable-sse2")))))
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (home-page "https://xerces.apache.org/xerces-c/")
     (synopsis "Validating XML parser library for C++")
     (description "Xerces-C++ is a validating XML parser written in a portable
@@ -1551,10 +1518,7 @@ SAX2 APIs.")
        (sha256
         (base32 "0jr6ggzhd8aakdvppcl8scy9j9jafg82zbzr4ih996sz8lrj90fn"))))
     (native-inputs
-     `(("expat" ,expat)
-       ("make" ,gnu-make)
-       ("minizip" ,minizip)
-       ("which" ,which)))
+     (list expat gnu-make minizip which))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1593,7 +1557,7 @@ Excel(TM) since version 2007.")
        (modify-phases %standard-phases
          (replace 'install (install-jars "jar")))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     (list unzip))
     (home-page "http://simple.sourceforge.net/")
     (synopsis "XML serialization framework for Java")
     (description "Simple is a high performance XML serialization and
@@ -1664,7 +1628,7 @@ by @code{Tree::XPathEngine}.")
          "0p5785c1dsk6kdp505vapb5h54k8krrz8699hpgm9igf7dni5llg"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-xml-sax-base" ,perl-xml-sax-base)))
+     (list perl-xml-sax-base))
     (home-page "https://metacpan.org/release/XML-Filter-BufferText")
     (synopsis "Filter to put all characters() in one event")
     (description "This is a very simple filter.  One common cause of
@@ -1688,10 +1652,8 @@ characters into a single event.")
                 "1w1cd1ybxdvhmnxdlkywi3x5ka3g4md42kyynksjc09vyizd0q9x"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-libxml" ,perl-libxml)
-       ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
-       ("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
-       ("perl-xml-sax-base" ,perl-xml-sax-base)))
+     (list perl-libxml perl-xml-filter-buffertext
+           perl-xml-namespacesupport perl-xml-sax-base))
     (home-page "https://metacpan.org/release/XML-SAX-Writer")
     (synopsis "SAX2 XML Writer")
     (description
@@ -1713,7 +1675,7 @@ characters into a single event.")
          "11d45a1sz862va9rry3p2m77pwvq3kpsvgwhc5ramh9mbszbnk77"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-libxml" ,perl-libxml)))
+     (list perl-libxml))
     (home-page "https://metacpan.org/release/XML-Handler-YAWriter")
     (synopsis "Yet another Perl SAX XML Writer")
     (description "YAWriter implements Yet Another @code{XML::Handler::Writer}.
@@ -1733,22 +1695,22 @@ It provides a flexible escaping technique and pretty printing.")
                 "1bc0hrz4jp6199hi29sdxmb9gyy45whla9hd19yqfasgq8k5ixzy"))))
     (build-system perl-build-system)
     (inputs
-     `(("expat" ,expat)))
+     (list expat))
     (propagated-inputs
-     `(("perl-html-tidy" ,perl-html-tidy)
-       ("perl-html-tree" ,perl-html-tree)
-       ("perl-io-captureoutput" ,perl-io-captureoutput)
-       ("perl-io-string" ,perl-io-string)
-       ("perl-io-stringy" ,perl-io-stringy)
-       ("perl-libxml" ,perl-libxml)
-       ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
-       ("perl-xml-handler-yawriter" ,perl-xml-handler-yawriter)
-       ("perl-xml-parser" ,perl-xml-parser)
-       ("perl-xml-sax-writer" ,perl-xml-sax-writer)
-       ("perl-xml-simple" ,perl-xml-simple)
-       ("perl-xml-xpathengine" ,perl-xml-xpathengine)
-       ("perl-test-pod" ,perl-test-pod)
-       ("perl-tree-xpathengine" ,perl-tree-xpathengine)))
+     (list perl-html-tidy
+           perl-html-tree
+           perl-io-captureoutput
+           perl-io-string
+           perl-io-stringy
+           perl-libxml
+           perl-xml-filter-buffertext
+           perl-xml-handler-yawriter
+           perl-xml-parser
+           perl-xml-sax-writer
+           perl-xml-simple
+           perl-xml-xpathengine
+           perl-test-pod
+           perl-tree-xpathengine))
     (home-page "https://metacpan.org/release/XML-Twig")
     (synopsis "Perl module for processing huge XML documents in tree mode")
     (description "@code{XML::Twig} is an XML transformation module.  Its
@@ -1818,7 +1780,7 @@ the Xerces-J XML parser and Xalan-J XSLT processor and specifies these APIs:
      `(#:jar-name (string-append "xml-resolver.jar")
        #:tests? #f)); no tests
     (inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "http://xerces.apache.org/xml-commons/")
     (synopsis "Catalog-based entity and URI resolution")
     (description "The resolver class implements the full semantics of OASIS Technical
@@ -1878,9 +1840,7 @@ with XPath too.")
     (inherit java-jaxen-bootstrap)
     (name "java-jaxen")
     (inputs
-     `(("java-jdom" ,java-jdom)
-       ("java-xom" ,java-xom)
-       ("java-dom4j" ,java-dom4j)))))
+     (list java-jdom java-xom java-dom4j))))
 
 (define-public java-xom
   (package
@@ -1918,11 +1878,8 @@ with XPath too.")
              (delete-file "src/nu/xom/tools/XHTMLJavaDoc.java")
              #t)))))
     (inputs
-     `(("java-jdom" ,java-jdom)
-       ("java-junit" ,java-junit)
-       ("java-classpathx-servletapi" ,java-classpathx-servletapi)
-       ("java-jaxen-bootstrap" ,java-jaxen-bootstrap)
-       ("java-xerces" ,java-xerces)))
+     (list java-jdom java-junit java-classpathx-servletapi
+           java-jaxen-bootstrap java-xerces))
     (home-page "https://xom.nu/")
     (synopsis "XML Object Model")
     (description "XOM is a new XML Object Model for processing XML with Java 
@@ -1948,7 +1905,7 @@ that strives for correctness and simplicity.")
        #:jar-name "xsdlib.jar"
        #:jdk ,icedtea-8))
     (inputs
-     `(("java-xerces" ,java-xerces)))
+     (list java-xerces))
     (home-page (string-append "https://web.archive.org/web/20161127144537/"
                               "https://msv.java.net//"))
     (synopsis "Sun Multi-Schema Validator")
@@ -2140,8 +2097,7 @@ public boolean removeAttributeByName(String name, String name2) {\n
        ("java-xpp3" ,java-xpp3)
        ("java-xsdlib" ,java-xsdlib)))
     (native-inputs
-     `(("java-testng" ,java-testng)
-       ("java-xerces" ,java-xerces)))
+     (list java-testng java-xerces))
     (home-page "https://dom4j.github.io/")
     (synopsis "Flexible XML framework for Java")
     (description "Dom4j is a flexible XML framework for Java.  DOM4J works
@@ -2182,9 +2138,9 @@ low memory footprint.")
              (copy-recursively "src/main/resources" "build/classes")
              #t)))))
     (inputs
-     `(("java-xpp3" ,java-xpp3)))
+     (list java-xpp3))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "http://kxml.org")
     (synopsis "XML pull parser")
     (description "kXML is a small XML pull parser, specially designed for
@@ -2247,7 +2203,7 @@ and from a Java application.  It provides a standard pull parser interface.")
                             "**/BadgerFishDOMTest.java"
                             "**/MappedDOMTest.java")))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://github.com/codehaus/jettison")
     (synopsis "StAX implementation for JSON")
     (description "Jettison is a Java library for converting XML to JSON and
@@ -2351,9 +2307,9 @@ and back again.")
              (copy-recursively "src/main/resources" "build/classes")
              #t)))))
     (propagated-inputs
-     `(("java-xmlpull-api-v1" ,java-xmlpull-api-v1)))
+     (list java-xmlpull-api-v1))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     (list java-junit))
     (home-page "https://github.com/x-stream/mxparser")
     (synopsis "Streaming pull XML parser forked from @code{java-xpp3}")
     (description "Xml Pull Parser (in short XPP) is a streaming pull XML
@@ -2381,10 +2337,10 @@ changes of the Plexus fork. It is an implementation of the XMLPULL V1 API
                "18zwbj6i2hpcn5riiyp8i6rml0sfv60dd7phw1x8g4r4lj2bbxf9"))))
     (build-system gnu-build-system)
     (inputs
-     `(("curl" ,curl)))
+     (list curl))
     (native-inputs
-     `(;; For tools, if ever needed.
-       ("perl" ,perl)))
+     (list ;; For tools, if ever needed.
+           perl))
     (arguments
      `(#:make-flags ; Add $libdir to the RUNPATH of all the executables.
        (list (string-append "LDFLAGS_PERSONAL=-Wl,-rpath=" %output "/lib"))
@@ -2545,8 +2501,7 @@ because lxml.etree already has its own implementation of XPath 1.0.")
                     (lambda _
                       (invoke "make" "test"))))))
     (inputs
-     `(("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)))
+     (list libxml2 libxslt))
     (home-page "https://lxml.de/")
     (synopsis "Python XML processing library")
     (description
@@ -2585,9 +2540,9 @@ libxml2 and libxslt.")
                          "-k" "not test_export_remote__issue_187")
                  (format #t "test suite not run~%")))))))
     (native-inputs
-     `(("python-lxml" ,python-lxml)))   ;for tests
+     (list python-lxml))   ;for tests
     (propagated-inputs
-     `(("python-elementpath" ,python-elementpath)))
+     (list python-elementpath))
     (home-page "https://github.com/sissaschool/xmlschema")
     (synopsis "XML Schema validator and data conversion library")
     (description
@@ -2611,8 +2566,7 @@ XML data to JSON and other formats.")
          "08cadlb9vsb4pmzc99lz3a2lx6qcfazyvgk10pcqijvyxlwcdn2h"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-nose" ,python-nose)))
+     (list python-coverage python-nose))
     (home-page "https://github.com/martinblech/xmltodict")
     (synopsis "Work with XML like you are working with JSON")
     (description "This package provides a Python library to convert XML to
diff --git a/gnu/packages/xnee.scm b/gnu/packages/xnee.scm
index 5cd20cbef1..26c33c754f 100644
--- a/gnu/packages/xnee.scm
+++ b/gnu/packages/xnee.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -38,15 +38,17 @@
               (base32
                "04n2lac0vgpv8zsn7nmb50hf3qb56pmj90dmwnivg09gyrf1x92j"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("CFLAGS=-O2 -g -fcommon")))
     (inputs
-     `(("gtk+" ,gtk+-2)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxi" ,libxi)
-       ("libxtst" ,libxtst)
-       ("xorgproto" ,xorgproto)))
+     (list gtk+-2
+           libx11
+           libxext
+           libxi
+           libxtst
+           xorgproto))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.gnu.org/software/xnee/")
     (synopsis "Record, replay and distribute user actions under X11")
     (description
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 235ff184f9..9a854bcbf8 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -21,10 +21,10 @@
 ;;; Copyright © 2019 nee <nee@cock.li>
 ;;; Copyright © 2019 Yoshinori Arai <kumagusu08@gmail.com>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
 ;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Jean-Baptiste Note <jean-baptiste.note@m4x.org>
 ;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
@@ -49,11 +49,14 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages xorg)
+  #:use-module (guix gexp)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (guix utils)
@@ -67,6 +70,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
@@ -85,6 +89,7 @@
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages pciutils)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
@@ -148,31 +153,29 @@
        (base32 "00m7l90ws72k1qm101sd2rx92ckd50cszyng5d4dd77jncbf9lmq"))))
     (build-system gnu-build-system)
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-      `(("xorg-cf-files" ,xorg-cf-files)
-        ("xorgproto" ,xorgproto)))
+     (list xorg-cf-files xorgproto))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'install-data
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((cf-files (assoc-ref inputs "xorg-cf-files"))
-                   (out (assoc-ref outputs "out"))
-                   (unpack (assoc-ref %standard-phases 'unpack))
-                   (patch-source-shebangs
-                    (assoc-ref %standard-phases 'patch-source-shebangs)))
-               (mkdir "xorg-cf-files")
-               (with-directory-excursion "xorg-cf-files"
-                 (apply unpack (list #:source cf-files))
-                 (apply patch-source-shebangs (list #:source cf-files))
-                 (substitute* '("mingw.cf" "Imake.tmpl" "nto.cf" "os2.cf"
-                                "linux.cf" "Amoeba.cf" "cygwin.cf")
-                   (("/bin/sh") (which "bash")))
-                 (invoke "./configure"
-                         (string-append "SHELL=" (which "bash"))
-                         (string-append "--prefix=" out))
-                 (invoke "make" "install"))))))))
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'install 'install-data
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (let ((out (assoc-ref outputs "out"))
+                         (unpack (assoc-ref %standard-phases 'unpack))
+                         (patch-source-shebangs
+                          (assoc-ref %standard-phases 'patch-source-shebangs)))
+                     (mkdir "xorg-cf-files")
+                     (with-directory-excursion "xorg-cf-files"
+                       (unpack #:source #$xorg-cf-files)
+                       (patch-source-shebangs #:source #$xorg-cf-files)
+                       (substitute* '("mingw.cf" "Imake.tmpl" "nto.cf" "os2.cf"
+                                      "linux.cf" "Amoeba.cf" "cygwin.cf")
+                         (("/bin/sh") (which "bash")))
+                       (invoke "./configure"
+                               (string-append "SHELL=" (which "bash"))
+                               (string-append "--prefix=" out))
+                       (invoke "make" "install"))))))))
     (home-page "https://www.x.org/")
     (synopsis "Source code configuration and build system")
     (description
@@ -199,9 +202,9 @@ autotools system.")
                 "0pdngiy8zdhsiqx2am75yfcl36l7kd7d7nl0rss8shcdvsqgmx29"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("xorgproto" ,xorgproto)))
+     (list xorgproto))
     (home-page "https://www.x.org/")
     (synopsis "Symlink directory into tree")
     (description "Create a shadow directory of symbolic links to another
@@ -224,9 +227,9 @@ directory tree.")
             "18hiscgljrz10zjcws25bis32nyrg3hzgmiq6scrh7izqmgz0kab"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxfont" ,libxfont2)))
+      (list libxfont2))
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Convert X font from BDF to PCF")
     (description
@@ -238,18 +241,18 @@ which can be read by any architecture.")
 (define-public xorgproto
   (package
     (name "xorgproto")
-    (version "2021.4")
+    (version "2021.5")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://xorg/individual/proto/"
+              (uri (string-append "ftp://ftp.freedesktop.org/pub/xorg//individual/proto/"
                                   "xorgproto-" version ".tar.bz2"))
               (sha256
                (base32
-                "1gwz8lhvczjinndrq2jb0swfvhk7p65rprkwiqwlp132041mfl8g"))))
+                "05d0kib351qmnlfimaznaw0220fr0ym7fx2gn9h2jqxxilxncbxa"))))
     (build-system gnu-build-system)
     (propagated-inputs
      ;; To get util-macros in (almost?) all package inputs.
-     `(("util-macros" ,util-macros)))
+     (list util-macros))
     (home-page "https://cgit.freedesktop.org/xorg/proto/xorgproto")
     (synopsis "Xorg protocol headers")
     (description
@@ -272,7 +275,7 @@ the core protocol and (many) extensions for the X Window System.")
           (base32
             "07hvfm84scz8zjw14riiln2v4w03jlhp756ypwhq27g48jmic8a6"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg BigReqsProto protocol headers")
     (description
@@ -297,9 +300,9 @@ requests that exceed 262140 bytes in length.")
             "1z0crmf669hirw4s7972mmp8xig80kfndja9h559haqbpvq5k4q4"))))
     (build-system gnu-build-system)
     (inputs
-      `(("xorgproto" ,xorgproto)))
+      (list xorgproto))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg CompositeProto protocol headers")
     (description
@@ -323,7 +326,7 @@ the damage protocol.")
           (base32
             "0nzwr5pv9hg7c21n995pdiv0zqhs91yz3r8rn3aska4ykcp12z2w"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg DamageProto protocol headers")
     (description
@@ -347,7 +350,7 @@ the damage protocol.")
           (base32
             "02b5x9dkgajizm8dqyx2w6hmqx3v25l67mgf35nj6sz0lgk52877"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg DMXProto protocol headers")
     (description
@@ -429,11 +432,9 @@ provided.")
        (list (string-append "--with-appdefaultdir="
                             %output ,%app-defaults-dir))))
     (inputs
-     `(("libxaw" ,libxaw)
-       ("libxmu" ,libxmu)
-       ("libxt" ,libxt)))
+     (list libxaw libxmu libxt))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Tool to browse and edit X Toolkit resource specifications")
     (description
@@ -462,9 +463,9 @@ Resources file.")
           (base32 "0caafx0yqqnqyvbalxhh3mb0r9v36xmcy5zjhygb2i508dhy35mx"))))
     (build-system gnu-build-system)
     (inputs
-      `(("mkfontscale" ,mkfontscale)))
+      (list mkfontscale))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg font encoding files")
     (description "Xorg font encoding files.")
@@ -499,11 +500,9 @@ Resources file.")
              "0m60f5bd0caambrk8ksknb5dks7wzsg7g7xaf0j21jxmx8rq9h5j"))
     (build-system gnu-build-system)
     (inputs
-      `(("bdftopcf" ,bdftopcf)
-        ("font-util" ,font-util)
-        ("mkfontdir" ,mkfontdir)))
+      (list bdftopcf font-util mkfontdir))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (arguments
       `(#:configure-flags (list
         ;; install fonts into subdirectory of package output instead of
@@ -524,11 +523,9 @@ Resources file.")
              "02advcv9lyxpvrjv8bjh1b797lzg6jvhipclz49z8r8y98g4l0n6"))
     (build-system gnu-build-system)
     (inputs
-      `(("bdftopcf" ,bdftopcf)
-        ("font-util" ,font-util)
-        ("mkfontdir" ,mkfontdir)))
+      (list bdftopcf font-util mkfontdir))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (arguments
       `(#:configure-flags (list
         (string-append "--with-fontrootdir=" %output "/share/fonts/X11"))))
@@ -552,7 +549,7 @@ Resources file.")
              name version
              "0xjjjindczv3g7m1597l0x19zz75xy70wh5garghz61fpzl1l4gk"))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (add-after
@@ -587,10 +584,9 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
              "1x246dfnxnmflzf0qzy62k8jdpkb6jkgspcjgbk8jcq9lw99npah"))
     (build-system gnu-build-system)
     (inputs
-      `(("mkfontdir" ,mkfontdir)
-        ("bdftopcf" ,bdftopcf)))
+      (list mkfontdir bdftopcf))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg arabic-misc font")
     (description "Xorg arabic-misc font.")
@@ -617,10 +613,9 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
              "0ai1v4n61k8j9x2a1knvfbl2xjxk3xxmqaq3p9vpqrspc69k31kf"))
     (build-system gnu-build-system)
     (inputs
-      `(("mkfontdir" ,mkfontdir)
-        ("bdftopcf" ,bdftopcf)))
+      (list mkfontdir bdftopcf))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg cronyx-cyrillic font")
     (description "Xorg cronyx-cyrillic font.")
@@ -643,10 +638,9 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
              "0yzza0l4zwyy7accr1s8ab7fjqkpwggqydbm2vc19scdby5xz7g1"))
     (build-system gnu-build-system)
     (inputs
-      `(("mkfontdir" ,mkfontdir)
-        ("bdftopcf" ,bdftopcf)))
+      (list mkfontdir bdftopcf))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg dec-misc font")
     (description "Xorg dec-misc font.")
@@ -665,10 +659,9 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
              "0rx8q02rkx673a7skkpnvfkg28i8gmqzgf25s9yi0lar915sn92q"))
     (build-system gnu-build-system)
     (inputs
-      `(("mkfontdir" ,mkfontdir)
-        ("bdftopcf" ,bdftopcf)))
+      (list mkfontdir bdftopcf))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg isas-misc font")
     (description "Xorg isas-misc font.")
@@ -688,10 +681,9 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
              "1dldxlh54zq1yzfnrh83j5vm0k4ijprrs5yl18gm3n9j1z0q2cws"))
     (build-system gnu-build-system)
     (inputs
-      `(("mkfontdir" ,mkfontdir)
-        ("bdftopcf" ,bdftopcf)))
+      (list mkfontdir bdftopcf))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg micro-misc font")
     (description "Xorg micro-misc font.")
@@ -707,10 +699,9 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
              "0q2ybxs8wvylvw95j6x9i800rismsmx4b587alwbfqiw6biy63z4"))
     (build-system gnu-build-system)
     (inputs
-      `(("mkfontdir" ,mkfontdir)
-        ("bdftopcf" ,bdftopcf)))
+      (list mkfontdir bdftopcf))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg misc-cyrillic fonts")
     (description "Xorg misc-cyrillic fonts.")
@@ -726,10 +717,9 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
              "1q2azkdwc4x3kh53xclwpf9q654k70lhiyns1cjq594wvxnhz339"))
     (build-system gnu-build-system)
     (inputs
-      `(("mkfontdir" ,mkfontdir)
-        ("mkfontscale" ,mkfontscale)))
+      (list mkfontdir mkfontscale))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg misc-ethiopic fonts")
     (description "Xorg misc-ethiopic fonts.")
@@ -749,11 +739,9 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
              "150pq6n8n984fah34n3k133kggn9v0c5k07igv29sxp1wi07krxq"))
     (build-system gnu-build-system)
     (inputs
-      `(("mkfontdir" ,mkfontdir)
-        ("font-util" ,font-util)
-        ("bdftopcf" ,bdftopcf)))
+      (list mkfontdir font-util bdftopcf))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
       `(#:configure-flags (list
         (string-append "--with-fontrootdir=" %output "/share/fonts/X11"))))
@@ -772,10 +760,9 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
              "13qghgr1zzpv64m0p42195k1kc77pksiv059fdvijz1n6kdplpxx"))
     (build-system gnu-build-system)
     (inputs
-      `(("mkfontdir" ,mkfontdir)
-        ("bdftopcf" ,bdftopcf)))
+      (list mkfontdir bdftopcf))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg mutt-misc fonts")
     (description "Xorg mutt-misc fonts.")
@@ -791,11 +778,9 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
              "0nkym3n48b4v36y4s927bbkjnsmicajarnf6vlp7wxp0as304i74"))
     (build-system gnu-build-system)
     (inputs
-      `(("mkfontdir" ,mkfontdir)
-        ("font-util" ,font-util)
-        ("bdftopcf" ,bdftopcf)))
+      (list mkfontdir font-util bdftopcf))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (arguments
       `(#:configure-flags (list
         (string-append "--with-fontrootdir=" %output "/share/fonts/X11"))))
@@ -814,10 +799,9 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
              "0yayf1qlv7irf58nngddz2f1q04qkpr5jwp4aja2j5gyvzl32hl2"))
     (build-system gnu-build-system)
     (inputs
-      `(("mkfontdir" ,mkfontdir)
-        ("bdftopcf" ,bdftopcf)))
+      (list mkfontdir bdftopcf))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg screen-cyrillic fonts")
     (description "Xorg screen-cyrillic fonts.")
@@ -833,10 +817,9 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
              "1xfgcx4gsgik5mkgkca31fj3w72jw9iw76qyrajrsz1lp8ka6hr0"))
     (build-system gnu-build-system)
     (inputs
-      `(("mkfontdir" ,mkfontdir)
-        ("bdftopcf" ,bdftopcf)))
+      (list mkfontdir bdftopcf))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg sony-misc fonts")
     (description "Xorg sony-misc fonts.")
@@ -852,10 +835,9 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
              "1q6jcqrffg9q5f5raivzwx9ffvf7r11g6g0b125na1bhpz5ly7s8"))
     (build-system gnu-build-system)
     (inputs
-      `(("mkfontdir" ,mkfontdir)
-        ("bdftopcf" ,bdftopcf)))
+      (list mkfontdir bdftopcf))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg sun-misc fonts")
     (description "Xorg sun-misc fonts.")
@@ -876,7 +858,7 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
         (sha256
           (base32 "10i2a8b3d1h3w7klsqf31iz7zbd6l8wglil54fkhdb1385281n1s"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg font utilities")
     (description
@@ -893,10 +875,9 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
              "181n1bgq8vxfxqicmy1jpm1hnr6gwn1kdhl6hr4frjigs1ikpldb"))
     (build-system gnu-build-system)
     (inputs
-      `(("mkfontdir" ,mkfontdir)
-        ("bdftopcf" ,bdftopcf)))
+      (list mkfontdir bdftopcf))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg winitzki-cyrillic font")
     (description "Xorg winitzki-cyrillic font.")
@@ -912,10 +893,9 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
              "0jp3zc0qfdaqfkgzrb44vi9vi0a8ygb35wp082yz7rvvxhmg9sya"))
     (build-system gnu-build-system)
     (inputs
-      `(("mkfontdir" ,mkfontdir)
-        ("mkfontscale" ,mkfontscale)))
+      (list mkfontdir mkfontscale))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg xfree86-type1 font")
     (description "Xorg xfree86-type1 font.")
@@ -937,7 +917,7 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
           (base32
             "1f2sdsd74y34nnaf4m1zlcbhyv8xb6irnisc99f84c4ivnq4d415"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg FontsProto protocol headers")
     (description
@@ -961,7 +941,7 @@ the fonts protocol.")
           (base32
             "0h5ykmcddwid5qj6sbrszgkcypwn3mslvswxpgy2n2iixnyr9amd"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg GLProto protocol headers")
     (description
@@ -986,9 +966,9 @@ rendering commands to the X server.")
             "1ik0mdidmyvy48hn8p2hwvf3535rf3m96hhf0mvcqrbj44x23vp6"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libice" ,libice)))
+      (list libice))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "ICE authority file utility")
     (description
@@ -1014,7 +994,7 @@ authentication records.")
           (base32
             "07gk7v006zqn3dcfh16l06gnccy7xnqywf3vl9c209ikazsnlfl9"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg InputProto protocol headers")
     (description
@@ -1038,7 +1018,7 @@ devices management such as graphic tablets.")
           (base32
             "0mxqj1pzhjpz9495vrjnpi10kv2n1s4vs7di0sh3yvipfq5j30pq"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg KBProto protocol headers")
     (description
@@ -1069,11 +1049,9 @@ of new capabilities and controls for text keyboards.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (inputs
-      `(("xorgproto" ,xorgproto)
-        ("libxext" ,libxext)
-        ("libx11" ,libx11)))
+      (list xorgproto libxext libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg DMX library")
     (description
@@ -1096,8 +1074,8 @@ of new capabilities and controls for text keyboards.")
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")))
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("xorgproto" ,xorgproto)))
+    (native-inputs (list pkg-config))
+    (inputs (list xorgproto))
     (home-page "https://www.x.org/")
     (synopsis "Xorg shared memory fences library")
     (description
@@ -1126,10 +1104,9 @@ synchronization between the X server and direct-rendering clients.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (inputs
-      `(("zlib" ,zlib)
-        ("xorgproto" ,xorgproto)))
+      (list zlib xorgproto))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://gitlab.freedesktop.org/xorg/lib/libfontenc")
     (synopsis "Xorg font encoding library")
     (description "Xorg font encoding library.")
@@ -1151,10 +1128,9 @@ synchronization between the X server and direct-rendering clients.")
           (base32 "03xxyvpfa3rhqcld4p2chkil482jn9cp80hj17jdybcv2hkkgqf8"))))
     (build-system gnu-build-system)
     (inputs
-      `(("xtrans" ,xtrans)
-        ("xorgproto" ,xorgproto)))
+      (list xtrans xorgproto))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Font Service client library")
     (description
@@ -1200,10 +1176,9 @@ themselves.")
                   (string-append "-L" zlib "/lib -lz")))
                #t))))))
     (inputs
-     `(("zlib" ,zlib)
-       ("pciutils" ,pciutils)))                   ;for 'pci.ids.gz'
+     (list zlib pciutils))                   ;for 'pci.ids.gz'
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg PCI access library")
     (description "Xorg Generic PCI access library.")
@@ -1225,7 +1200,7 @@ themselves.")
           (base32
             "0cz7s9w8lqgzinicd4g36rjg08zhsbyngh0w68c3np8nlc8mkl74"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Library with pthread stubs")
     (description
@@ -1255,12 +1230,12 @@ hit when running single-threaded.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (propagated-inputs
-      `(("libice" ,libice))) ; SMlib.h includes ICElib.h
+      (list libice)) ; SMlib.h includes ICElib.h
     (inputs
       `(("xtrans" ,xtrans)
         ("libuuid" ,util-linux "lib")))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Session Management library")
     (description "Xorg Session Management library.")
@@ -1283,11 +1258,9 @@ hit when running single-threaded.")
             "1p0flwb67xawyv6yhri9w17m1i4lji5qnd0gq8v1vsfb8zw7rw15"))))
     (build-system gnu-build-system)
     (inputs
-      `(("xorgproto" ,xorgproto)
-        ("libxext" ,libxext)
-        ("libx11" ,libx11)))
+      (list xorgproto libxext libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg WindowsWM library")
     (description
@@ -1317,11 +1290,9 @@ with the Cygwin XWin server when running X11 in a rootless mode.")
      '(#:configure-flags '("--disable-static")))
     (propagated-inputs
      ;; xcomposite.pc refers to all these.
-      `(("xorgproto" ,xorgproto)
-        ("libxfixes" ,libxfixes)
-        ("libx11" ,libx11)))
+      (list xorgproto libxfixes libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Composite library")
     (description
@@ -1347,10 +1318,9 @@ with the Cygwin XWin server when running X11 in a rootless mode.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (inputs
-      `(("libbsd" ,libbsd)
-        ("xorgproto" ,xorgproto)))
+      (list libbsd xorgproto))
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Display Manager Control Protocol library")
     (description "Xorg Display Manager Control Protocol library.")
@@ -1380,10 +1350,9 @@ with the Cygwin XWin server when running X11 in a rootless mode.")
         ("freetype" ,freetype)
         ("fontconfig" ,fontconfig)))
     (inputs
-      `(("libx11" ,libx11)
-        ("xorgproto" ,xorgproto)))
+      (list libx11 xorgproto))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg FreeType library")
     (description
@@ -1398,22 +1367,23 @@ configuration files.")
     (name "libxkbfile")
     (version "1.1.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append
-               "mirror://xorg/individual/lib/libxkbfile-"
-               version
-               ".tar.bz2"))
-        (sha256
-          (base32
-            "1irq9crvscd3yb8sr802dhvvfr35jdy1n2yz094xplmd42mbv3bm"))))
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://xorg/individual/lib/libxkbfile-"
+             version
+             ".tar.bz2"))
+       (sha256
+        (base32
+         "1irq9crvscd3yb8sr802dhvvfr35jdy1n2yz094xplmd42mbv3bm"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")))
-    (inputs
-      `(("libx11" ,libx11)))
+    (propagated-inputs
+     ;; Required in xkbfile.pc.
+     (list libx11 kbproto))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XKB file handling library")
     (description "Xorg XKB file handling library.")
@@ -1438,11 +1408,9 @@ configuration files.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (inputs
-      `(("libxt" ,libxt)
-        ("xorgproto" ,xorgproto)
-        ("libxext" ,libxext)))
+      (list libxt xorgproto libxext))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Xmu library")
     (description
@@ -1472,9 +1440,7 @@ treat it as part of their software base when porting.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (inputs
-      `(("libxt" ,libxt)
-        ("xorgproto" ,xorgproto)
-        ("libxext" ,libxext)))
+      (list libxt xorgproto libxext))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
@@ -1502,11 +1468,9 @@ treat it as part of their software base when porting.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (inputs
-      `(("xorgproto" ,xorgproto)
-        ("libxext" ,libxext)
-        ("libx11" ,libx11)))
+      (list xorgproto libxext libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Resource extension library")
     (description "X Resource extension library.")
@@ -1531,11 +1495,9 @@ treat it as part of their software base when porting.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (propagated-inputs
-      `(("libx11" ,libx11)
-        ("libxext" ,libxext)
-        ("xorgproto" ,xorgproto)))
+      (list libx11 libxext xorgproto))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Screen Saver library")
     (description "X11 Screen Saver extension client library.")
@@ -1557,12 +1519,11 @@ treat it as part of their software base when porting.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (propagated-inputs
-     `(("xorgproto" ,xorgproto)))
+     (list xorgproto))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxext" ,libxext)))
+     (list libx11 libxext))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XFree86-DGA library")
     (description "Client library for the XFree86-DGA extension.")
@@ -1588,9 +1549,9 @@ treat it as part of their software base when porting.")
         (patches (search-patches "luit-posix.patch"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libfontenc" ,libfontenc)))
+      (list libfontenc))
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Convert terminal I/O from legacy encodings to UTF-8")
     (description
@@ -1617,8 +1578,8 @@ input from UTF-8 into the locale's encoding.")
             "072h9nzh8s5vqfz35dli4fba36fnr219asjrb7p89n8ph0paan6m"))))
     (build-system gnu-build-system)
     (inputs
-      `(("xorgproto" ,xorgproto)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+      (list xorgproto))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg makedepend utility")
     (description
@@ -1641,12 +1602,9 @@ input from UTF-8 into the locale's encoding.")
           (base32 "1ixsnsm2mn0zy9ksdid0lj6irnhvasfik9mz8bbrs5sajzmra16a"))))
     (build-system gnu-build-system)
     (inputs
-      `(("zlib" ,zlib)
-        ("xorgproto" ,xorgproto)
-        ("freetype" ,freetype)
-        ("libfontenc" ,libfontenc)))
+      (list zlib xorgproto freetype libfontenc))
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Create an index of scalable font files for X server")
     (description
@@ -1696,7 +1654,7 @@ mechanism than copying the contents of the source pixmap.")
           (base32
             "06liap8n4s25sgp27d371cc7yg9a08dxcr3pmdjp761vyin3360j"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg PrintProto protocol headers")
     (description
@@ -1720,7 +1678,7 @@ network-transparent printing system.")
           (base32
             "0s4496z61y5q45q20gldwpf788b9nsa8hb13gnck1mwwwwrmarsc"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg RandRProto protocol headers")
     (description
@@ -1746,7 +1704,7 @@ window of a screen.")
           (base32
             "0w3kgr1zabwf79bpc28dcnj0fpni6r53rpi82ngjbalj5s6m8xx7"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg RecordProto protocol headers")
     (description
@@ -1770,7 +1728,7 @@ of user actions in the X Window System.")
           (base32
             "0dr5xw6s0qmqg0q5pdkb4jkdhaja0vbfqla79qh5j1xjj9dmlwq6"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg RenderProto protocol headers")
     (description
@@ -1794,7 +1752,7 @@ as the foundation of a new rendering model within the X Window System.")
           (base32
             "0638iyfiiyjw1hg3139pai0j6m65gkskrvd9684zgc6ydcx00riw"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg ResourceProto protocol headers")
     (description
@@ -1818,7 +1776,7 @@ query the X server about its usage of various resources.")
           (base32
             "0rfdbfwd35d761xkfifcscx56q0n56043ixlmv70r4v4l66hmdwb"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg ScrnSaverProto protocol headers")
     (description
@@ -1840,9 +1798,9 @@ features and to query screensaver info on specific windows.")
         (base32 "0crczl25zynkrslmm8sjaxszhrh4i33m7h5fg4wfdb3k8aarxjyz"))))
     (build-system gnu-build-system)
     (inputs
-      `(("xorgproto" ,xorgproto)))
+      (list xorgproto))
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Register X sessions in system utmp/utmpx databases")
     (description
@@ -1868,11 +1826,9 @@ used with other display managers such as gdm or kdm.")
             "1xdrxs65v7d0rw1yaz0vsz55w4hxym99216p085ya9978j379wlg"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxkbfile" ,libxkbfile)
-        ("xkeyboard-config" ,xkeyboard-config)
-        ("libx11" ,libx11)))
+      (list libxkbfile xkeyboard-config libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (arguments
      `(#:configure-flags
        (list (string-append "--with-xkb-config-root="
@@ -1903,10 +1859,9 @@ listed on the command line.")
             "0rkjyzmsdqmlrkx8gy2j4q6iksk58hcc92xzdprkf8kml9ar3wbc"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxt" ,libxt)
-        ("libxmu" ,libxmu)))
+      (list libxt libxmu))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Session Manager Proxy")
     (description
@@ -1930,7 +1885,7 @@ management to participate in an X11R6 session.")
           (base32
             "0w8ryfqylprz37zj9grl4jzdsqq67ibfwq5raj7vm1i7kmp2x08g"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1972,7 +1927,7 @@ generate new versions of their configure scripts with autoconf.")
           (base32
             "00m7rh3pwmsld4d5fpii3xfk5ciqn17kkk38gfpzrrh8zn4ki067"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg VideoProto protocol headers")
     (description
@@ -1996,7 +1951,7 @@ mainly to rescale video playback in the video controller hardware.")
           (base32
             "0syjxgy4m8l94qrm03nvn5k6bkxc8knnlld1gbllym97nvnv0ny0"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg WindowsWMProto protocol headers")
     (description
@@ -2023,12 +1978,9 @@ server.")
             "0d3wh6z6znwhfdiv0zaggfj0xgish98xa10yy76b9517zj7hnzhw"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libx11" ,libx11)
-        ("libxft" ,libxft)
-        ("libxmu" ,libxmu)
-        ("libxrender" ,libxrender)))
+      (list libx11 libxft libxmu libxrender))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "X server performance benchmarker")
     (description
@@ -2049,13 +2001,9 @@ server.")
         (base32 "032klzzw8r09z36x1272ssd79bcisz8j5p8gbdy111fiknvx27bd"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libxmu" ,libxmu)
-       ("libxext" ,libxext)
-       ("libxau" ,libxau)
-       ("libx11" ,libx11)))
+     (list libxmu libxext libxau libx11))
     (native-inputs
-     `(("cmdtest" ,cmdtest)
-       ("pkg-config" ,pkg-config)))
+     (list cmdtest pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "X authority file utility")
     (description
@@ -2080,10 +2028,9 @@ information used in connecting to the X server.")
             "1plssg0s3pbslg6rfzxp9sx8ryvn8l32zyvc8zp9zsbsfwjg69rs"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libxcb" ,libxcb)
-       ("xcb-util" ,xcb-util)))
+     (list libxcb xcb-util))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Control display backlight")
     (description
@@ -2109,7 +2056,7 @@ the same way.")
           (base32
             "1vh73sc13s7w5r6gnc6irca56s7998bja7wgdivkfn8jccawgw5r"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "X bitmaps")
     (description
@@ -2140,9 +2087,9 @@ legacy X clients.")
                                        ,%app-defaults-dir "\n")))
                      #t)))))
     (inputs
-     `(("libxaw" ,libxaw)))
+     (list libxaw))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Hand calculator for the X Window system")
     (description "Xcalc is a scientific calculator desktop accessory that can
@@ -2203,7 +2150,7 @@ generators in individual language bindings.")
           (base32
             "1pyjv45wivnwap2wvsbrzdvjc5ql8bakkbkrvcv6q9bjjf33ccmi"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XCMiscProto protocol headers")
     (description
@@ -2228,9 +2175,9 @@ to query the server for available resource IDs.")
             "1ik7gzlp2igz183x70883000ygp99r20x3aah6xhaslbpdhm6n75"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libx11" ,libx11)))
+      (list libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Device Color Characterization utility")
     (description
@@ -2257,10 +2204,9 @@ X11 Inter-Client Communication Conventions Manual (ICCCM).")
             "16a96li0s0ggg60v7f6ywxmsrmxdfizcw55ccv7sp4qjfisca7pf"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxcursor" ,libxcursor)
-        ("xcursorgen" ,xcursorgen)))
+      (list libxcursor xcursorgen))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (arguments
      `(#:configure-flags
        (list (string-append "--with-cursordir="
@@ -2273,64 +2219,56 @@ X11 Inter-Client Communication Conventions Manual (ICCCM).")
 X server: @code{handhelds}, @code{redglass} and @code{whiteglass}.")
     (license license:x11)))
 
-
 (define-public hackneyed-x11-cursors
-  ;; The current release 0.8 suffers from non-deterministic build problems.
-  (let ((revision "1")
-        (commit "9423cef2e2e5ff6b1d65d61f7108c97bc7f5fdfb"))
-    (package
-      (name "hackneyed-x11-cursors")
-      (version (git-version "0.8.1" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://gitlab.com/Enthymeme/hackneyed-x11-cursors.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0f637i76sdwz3nm1g1iynamq6j0i6k3c70fpl0fmd0dlynm8ga96"))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:tests? #f                    ;no test suite
-         #:make-flags (list (string-append "PREFIX=" %output))
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (add-before 'build 'set-inkscape-environment-variable
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let ((inkscape (search-input-file inputs "/bin/inkscape")))
-                 (setenv "INKSCAPE" inkscape)
-                 #t)))
-           (add-before 'build 'placate-inkscape-warnings
-             (lambda _
-               (setenv "HOME" (getcwd))
-               #t))
-           (add-after 'build 'generate-black-cursors
-             (lambda* (#:key make-flags parallel-build #:allow-other-keys)
-               (let ((build (assoc-ref %standard-phases 'build))
-                     (make-flags/extended
-                      `(,@make-flags
-                        "THEME_NAME=Hackneyed-Dark"
-                        "COMMON_SOURCE=theme/common-dark.svg"
-                        "RSVG_SOURCE=theme/right-handed-dark.svg"
-                        "LSVG_SOURCE=theme/left-handed-dark.svg")))
-                 (build #:make-flags make-flags/extended
-                        #:parallel-build parallel-build))))
-           (add-after 'install 'install-black-cursors
-             (lambda* (#:key make-flags #:allow-other-keys)
-               (apply invoke `("make" "install" ,@make-flags
-                               "THEME_NAME=Hackneyed-Dark")))))))
-      (native-inputs `(("imagemagick" ,imagemagick)
-                       ("inkscape" ,inkscape)
-                       ("xcursorgen" ,xcursorgen)))
-      (home-page "https://gitlab.com/Enthymeme/hackneyed-x11-cursors")
-      (synopsis "Classic cursor theme for X11")
-      (description "Hackneyed is a scalable cursor theme mildly resembling old
+  (package
+    (name "hackneyed-x11-cursors")
+    (version "0.8.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/Enthymeme/hackneyed-x11-cursors.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1mjwbny4rid9dzz6xfb8l5rkwki41sfhdp970cf3w2pi9kyg1njs"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ;no test suite
+       #:make-flags (list (string-append "PREFIX=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'set-inkscape-environment-variable
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((inkscape (search-input-file inputs "/bin/inkscape")))
+               (setenv "INKSCAPE" inkscape))))
+         (add-before 'build 'placate-inkscape-warnings
+           (lambda _
+             (setenv "HOME" (getcwd))))
+         (add-after 'build 'generate-black-cursors
+           (lambda* (#:key make-flags parallel-build #:allow-other-keys)
+             (let ((build (assoc-ref %standard-phases 'build))
+                   (make-flags/extended
+                    `(,@make-flags
+                      "THEME_NAME=Hackneyed-Dark"
+                      "COMMON_SOURCE=theme/common-dark.svg"
+                      "RSVG_SOURCE=theme/right-handed-dark.svg"
+                      "LSVG_SOURCE=theme/left-handed-dark.svg")))
+               (build #:make-flags make-flags/extended
+                      #:parallel-build parallel-build))))
+         (add-after 'install 'install-black-cursors
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke `("make" "install" ,@make-flags
+                             "THEME_NAME=Hackneyed-Dark")))))))
+    (native-inputs (list imagemagick inkscape xcursorgen))
+    (home-page "https://gitlab.com/Enthymeme/hackneyed-x11-cursors")
+    (synopsis "Classic cursor theme for X11")
+    (description "Hackneyed is a scalable cursor theme mildly resembling old
 Windows 3.x cursors.  The cursors are available in white and black colors.  A
 left-handed version of the cursors is also included.")
-      (license license:x11))))
+    (license license:x11)))
 
 (define-public xcursorgen
   (package
@@ -2348,10 +2286,9 @@ left-handed version of the cursors is also included.")
             "0ggbv084cavp52hjgcz3vdj0g018axs0m23c03lpc5sgn92gidim"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxcursor" ,libxcursor)
-        ("libpng" ,libpng)))
+      (list libxcursor libpng))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Create an X cursor file from PNG images")
     (description
@@ -2375,18 +2312,18 @@ left-handed version of the cursors is also included.")
             "0ldgrj4w2fa8jng4b3f3biaj0wyn8zvya88pnk70d7k12pcqw8rh"))))
     (build-system gnu-build-system)
     (inputs
-      `(("xorgproto" ,xorgproto)
-        ("libx11" ,libx11)
-        ("libxxf86vm" ,libxxf86vm)
-        ("libxxf86dga" ,libxxf86dga)
-        ("libxtst" ,libxtst)
-        ("libxrender" ,libxrender)
-        ("libxinerama" ,libxinerama)
-        ("libxi" ,libxi)
-        ("libxcomposite" ,libxcomposite)
-        ("libdmx" ,libdmx)))
-    (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list xorgproto
+            libx11
+            libxxf86vm
+            libxxf86dga
+            libxtst
+            libxrender
+            libxinerama
+            libxi
+            libxcomposite
+            libdmx))
+    (native-inputs
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg display information utility")
     (description
@@ -2414,10 +2351,9 @@ available.")
             "0lcx8h3zd11m4w8wf7dyp89826d437iz78cyrix436bqx31x5k6r"))))
     (build-system gnu-build-system)
     (inputs
-      `(("mesa" ,mesa)
-        ("libx11" ,libx11)))
+      (list mesa libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Query DRI configuration information")
     (description
@@ -2441,13 +2377,11 @@ DRI (Direct Rendering Infrastructure) drivers.")
           (base32
             "1ql592pdhddhkipkrsxn929y9l2nn02a5fh2z3dx47kmzs5y006p"))))
     (build-system gnu-build-system)
+    (arguments `(#:configure-flags ',(malloc0-flags)))
     (inputs
-      `(("libxrender" ,libxrender)
-        ("libxrandr" ,libxrandr)
-        ("xorgproto" ,xorgproto)
-        ("libx11" ,libx11)))
+      (list libxrender libxrandr xorgproto libx11))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://gitlab.freedesktop.org/xorg/app/xev")
     (synopsis "Print contents of X events")
     (description
@@ -2476,7 +2410,7 @@ usage.")
           (base32
             "1c2vma9gqgc2v06rfxdiqgwhxmzk2cbmknwf1ng3m76vr0xb5x7k"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XExtProto protocol headers")
     (description
@@ -2490,7 +2424,7 @@ XC-APPGROUP, XTEST.")
 (define-public libevdev
   (package
     (name "libevdev")
-    (version "1.9.1")
+    (version "1.11.0")
     (source
      (origin
        (method url-fetch)
@@ -2498,11 +2432,11 @@ XC-APPGROUP, XTEST.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1jvsphdrs1i54ccjcn6ll26jy42am7h28lbsvwa6pmxgqm43qq7m"))))
+         "1l628xblk36vh7aqia1fw6hh62af7va0pd70h28112l5i4afmx33"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--disable-static")))
-    (native-inputs `(("python" ,python)))
+    (native-inputs (list python))
     (home-page "https://www.freedesktop.org/wiki/Software/libevdev/")
     (synopsis "Wrapper library for evdev devices")
     (description
@@ -2535,7 +2469,7 @@ devices, thus making direct access unnecessary.")
         ("libevdev" ,libevdev)
         ("mtdev" ,mtdev)
         ("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (arguments
      `(#:configure-flags
        (list (string-append "--with-sdkdir="
@@ -2567,7 +2501,7 @@ including most mice, keyboards, tablets and touchscreens.")
        (list (string-append "--with-sdkdir="
                             %output "/include/xorg"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("libinput" ,libinput-minimal)
        ("xorg-server" ,xorg-server)))
@@ -2595,8 +2529,8 @@ provide all features that libinput supports it does little beyond.")
           (base32
             "1awfq496d082brgjbr60lhm6jvr9537rflwxqdfqwfzjy3n6jxly"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (arguments
      `(#:configure-flags
        (list (string-append "--with-sdkdir="
@@ -2625,8 +2559,8 @@ It is used to control the pointer with a joystick device.")
           (base32
             "12032yg412kyvnmc5fha1in7mpi651d8sa1bk4138s2j2zr01jgp"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Keyboard input driver for X server")
     (description
@@ -2649,8 +2583,8 @@ It is used to control the pointer with a joystick device.")
           (base32
             "1iawr1wyl2qch1mqszcs0s84i92mh4xxprflnycbw1adc18b7v4k"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (arguments
      `(#:configure-flags
        (list (string-append "--with-sdkdir="
@@ -2681,12 +2615,8 @@ as USB mice.")
           (base32
             "0xhm03qywwfgkpfl904d08lx00y28m1b6lqmks5nxizixwk3by3s"))))
     (build-system gnu-build-system)
-    (inputs `(("libx11" ,libx11)
-              ("libxi" ,libxi)
-              ("libevdev" ,libevdev)
-              ("mtdev" ,mtdev)
-              ("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list libx11 libxi libevdev mtdev xorg-server))
+    (native-inputs (list pkg-config))
     (arguments
      `(#:configure-flags
        (list (string-append "--with-sdkdir="
@@ -2717,8 +2647,8 @@ as USB mice.")
           (base32
             "171k8b8s42s3w73l7ln9jqwk88w4l7r1km2blx1vy898c854yvpr"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Void (null) input driver for X server")
     (description
@@ -2737,8 +2667,8 @@ as USB mice.")
        (sha256
         (base32 "125dq85n46yqmnmr2hknxwcqicwlvz2b2phf0m963fpg9l1j6y30"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "AMD Radeon video driver for X server")
     (description
@@ -2762,8 +2692,8 @@ X server.")
            "07p5vdsj2ckxb6wh02s61akcv4qfg6s1d5ld3jn3lfaayd3f1466"))
         (patches (search-patches "xf86-video-ark-remove-mibstore.patch"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Ark Logic video driver for X server")
     (description
@@ -2784,8 +2714,8 @@ X server.")
                (base32
                 "1pm2cy81ma7ldsw0yfk28b33h9z2hcj5rccrxhfxfgvxsiavrnqy"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (synopsis "ASpeed Technologies video driver for X server")
     (description
      "xf86-video-ast is an ASpeed Technologies video driver for the Xorg
@@ -2809,14 +2739,9 @@ X server.")
          (sha256
           (base32 "1n49wx0v13jh8vv17sxgrmmpi1mk3n2wph07jfmxmzqahpcn4lkn"))))
       (build-system gnu-build-system)
-      (inputs `(("mesa" ,mesa)
-                ("xorgproto" ,xorgproto)
-                ("xorg-server" ,xorg-server)))
+      (inputs (list mesa xorgproto xorg-server))
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)))
+       (list pkg-config autoconf automake libtool))
       (home-page "https://www.x.org/wiki/")
       (synopsis "ATI Radeon video driver for X server")
       (description
@@ -2840,8 +2765,8 @@ X server.")
           (base32
             "1asifc6ld2g9kap15vfhvsvyl69lj7pw3d9ra9mi4najllh7pj7d"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Cirrus Logic video driver for X server")
     (description
@@ -2861,8 +2786,8 @@ X server.")
        (sha256
         (base32 "1fcm9vwgv8wnffbvkzddk4yxrh3kc0np6w65wj8k88q7jf3bn4ip"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Dummy video driver for X server")
     (description
@@ -2885,8 +2810,8 @@ X server.")
           (base32
             "16a66zr0l1lmssa07i3rzy07djxnb45c17ks8c71h8l06xgxihyw"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Framebuffer device video driver for X server")
     (description
@@ -2920,10 +2845,7 @@ framebuffer device.")
          ("xorg-server" ,xorg-server)
          ("zlib" ,zlib)))
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)))
+       (list pkg-config autoconf automake libtool))
        ;; This driver is only supported on ARM systems.
       (supported-systems '("armhf-linux" "aarch64-linux"))
       (arguments
@@ -2957,8 +2879,8 @@ It supports a variety of Adreno graphics chipsets.")
        (sha256
         (base32 "0r2dz0agg0k5wrqdbicji6mh6svzyl0xgqk76hpcfdlzn2zx15zl"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (supported-systems
      ;; This driver is only supported on i686 systems.
      (filter (lambda (system) (string-prefix? "i686-" system))
@@ -3015,9 +2937,8 @@ compositing.  Both support Xv overlay and dynamic rotation with XRandR.")
           (base32
            "1lkpspvrvrp9s539bhfdjfh4andaqyk63l6zjn8m3km95smk6a45"))))
     (build-system gnu-build-system)
-    (inputs `(("xorgproto" ,xorgproto)
-              ("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorgproto xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "GLINT/Permedia video driver for X server")
     (description
@@ -3041,8 +2962,8 @@ X server.")
           (base32
            "1snhpv1igrhifcls3r498kjd14ml6x2xvih7zk9xlsd1ymmhlb4g"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "I128 video driver for X server")
     (description
@@ -3075,10 +2996,7 @@ X server.")
                 ("libxfont" ,libxfont2)
                 ("xorg-server" ,xorg-server)))
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)))
+       (list pkg-config autoconf automake libtool))
       (supported-systems
        ;; This driver is only supported on Intel systems.
        (filter (lambda (system) (or (string-prefix? "i686-" system)
@@ -3108,13 +3026,12 @@ It supports a variety of Intel graphics chipsets.")
         (sha256
           (base32
            "171wg8r6py1l138s58rlapin3rlpwsg9spmvhc7l68mm3g3hf1vs"))
-        (patches (search-patches "xf86-video-mach64-glibc-2.20.patch"))))
+        (patches (search-patches "xf86-video-mach64-glibc-2.20.patch"
+                                 "xf86-video-mach64-bool-to-boolean.patch"))))
     (build-system gnu-build-system)
-    (inputs `(("mesa" ,mesa)
-              ("xorgproto" ,xorgproto)
-              ("xorg-server" ,xorg-server)))
+    (inputs (list mesa xorgproto xorg-server))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Mach64 video driver for X server")
     (description
@@ -3141,10 +3058,8 @@ the same level of support for generic VGA or 8514/A adapters.")
           (base32
            "0yaxpgyyj9398nzzr5vnsfxcis76z46p9814yzj8179yl7hld296"))))
     (build-system gnu-build-system)
-    (inputs `(("mesa" ,mesa)
-              ("xorgproto" ,xorgproto)
-              ("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list mesa xorgproto xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Matrox video driver for X server")
     (description
@@ -3166,9 +3081,8 @@ the same level of support for generic VGA or 8514/A adapters.")
           (base32
             "0r4h673kw8fl7afc30anwbjlbhp82mg15fvaxf470xg7z983k0wk"))))
     (build-system gnu-build-system)
-    (inputs `(("xorgproto" ,xorgproto)
-              ("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorgproto xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "NeoMagic video driver for X server")
     (description
@@ -3218,8 +3132,8 @@ the same level of support for generic VGA or 8514/A adapters.")
           (base32
            "0bdk3pc5y0n7p53q4gc2ff7bw16hy5hwdjjxkm5j3s7hdyg6960z"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "NVIDIA video driver for X server")
     (description
@@ -3240,10 +3154,11 @@ supported, and the RENDER extension is not accelerated by this driver.")
        (uri (string-append "mirror://xorg/individual/driver/xf86-video-nouveau-"
                            version ".tar.bz2"))
        (sha256
-        (base32 "0sqm1jwjg15sp8v7039y2hsbhph8gpjd2bdzcqqiij2mgbi254s9"))))
+        (base32 "0sqm1jwjg15sp8v7039y2hsbhph8gpjd2bdzcqqiij2mgbi254s9"))
+       (patches (search-patches "xf86-video-nouveau-fixup-ABI.patch"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://nouveau.freedesktop.org")
     (synopsis "NVIDIA video driver for X server")
     (description
@@ -3266,14 +3181,14 @@ graphics cards.")
          (base32
           "0x9gq3hw6k661k82ikd1y2kkk4dmgv310xr5q59dwn4k6z37aafs"))))
     (build-system gnu-build-system)
-    (inputs `(("libx11" ,libx11)
-              ("libxext" ,libxext)
-              ("libxvmc" ,libxvmc)
-              ("mesa" ,mesa)
-              ("xorgproto" ,xorgproto)
-              ("xorg-server" ,xorg-server)))
+    (inputs (list libx11
+                  libxext
+                  libxvmc
+                  mesa
+                  xorgproto
+                  xorg-server))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Openchrome video driver for X server")
     (description
@@ -3294,15 +3209,14 @@ UniChrome Pro and Chrome9 integrated graphics processors.")
                 "xf86-video-qxl-" version ".tar.bz2"))
               (sha256
                (base32
-                "14jc24znnahhmz4kqalafmllsg8awlz0y6gpgdpk5ih38ph851mi"))))
+                "14jc24znnahhmz4kqalafmllsg8awlz0y6gpgdpk5ih38ph851mi"))
+              (patches (search-patches
+                        "xf86-video-qxl-fix-build.patch"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxfont" ,libxfont2)
-        ("spice-protocol" ,spice-protocol)
-        ("xorg-server" ,xorg-server)
-        ("xorgproto" ,xorgproto)))
+      (list libxfont2 spice-protocol xorg-server xorgproto))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (synopsis "Qxl video driver for X server")
     (description "xf86-video-qxl is a video driver for the Xorg X server.
 This driver is intended for the spice qxl virtio device.")
@@ -3321,11 +3235,9 @@ This driver is intended for the spice qxl virtio device.")
                (base32
                 "0mz0v5mqmmbncr2drd5zvia1fb7frz2xqwflhhqbnaxx5j48c740"))))
     (build-system gnu-build-system)
-    (inputs `(("mesa" ,mesa)
-              ("xorgproto" ,xorgproto)
-              ("xorg-server" ,xorg-server)))
+    (inputs (list mesa xorgproto xorg-server))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "ATI Rage 128 video driver for X server")
     (description
@@ -3349,10 +3261,8 @@ This driver is intended for ATI Rage 128 based cards.")
           (base32
            "11pcrsdpdrwk0mrgv83s5nsx8a9i4lhmivnal3fjbrvi3zdw94rc"))))
     (build-system gnu-build-system)
-    (inputs `(("mesa" ,mesa)
-              ("xorgproto" ,xorgproto)
-              ("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list mesa xorgproto xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Savage video driver for X server")
     (description
@@ -3376,8 +3286,8 @@ This driver is intended for ATI Rage 128 based cards.")
            "1g2r6gxqrmjdff95d42msxdw6vmkg2zn5sqv0rxd420iwy8wdwyh"))
         (patches (search-patches "xf86-video-siliconmotion-fix-ftbfs.patch"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Silicon Motion video driver for X server")
     (description
@@ -3401,11 +3311,9 @@ Xorg X server.")
          (base32
           "0nrs6cjldlhakx5987fiiggjrlzilsbdc7l9pz22x1iwslbkz78i"))))
     (build-system gnu-build-system)
-    (inputs `(("mesa" ,mesa)
-              ("xorgproto" ,xorgproto)
-              ("xorg-server" ,xorg-server)))
+    (inputs (list mesa xorgproto xorg-server))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Sis video driver for X server")
     (description
@@ -3429,8 +3337,8 @@ This driver supports SiS chipsets of 300/315/330/340 series.")
           (base32
             "04fgwgk02m4nimlv67rrg1wnyahgymrn6rb2cjj1l8bmzkii4glr"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "GX/TurboGX video driver for X server")
     (description
@@ -3453,8 +3361,8 @@ This driver supports SiS chipsets of 300/315/330/340 series.")
           (base32
             "07z3ngifwg2d4jgq8pms47n5lr2yn0ai72g86xxjnb3k20n5ym7s"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "SUNFFB video driver for X server")
     (description
@@ -3477,10 +3385,8 @@ This driver supports SiS chipsets of 300/315/330/340 series.")
           (base32
            "0qc5wzwf1n65si9rc37bh224pzahh7gp67vfimbxs0b9yvhq0i9g"))))
     (build-system gnu-build-system)
-    (inputs `(("mesa" ,mesa)
-              ("xorgproto" ,xorgproto)
-              ("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list mesa xorgproto xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "3Dfx video driver for X server")
     (description
@@ -3504,9 +3410,8 @@ This driver supports SiS chipsets of 300/315/330/340 series.")
            "0cb161lvdgi6qnf1sfz722qn38q7kgakcvj7b45ba3i0020828r0"))
         (patches (search-patches "xf86-video-tga-remove-mibstore.patch"))))
     (build-system gnu-build-system)
-    (inputs `(("xorgproto" ,xorgproto)
-              ("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorgproto xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "TGA video driver for X server")
     (description
@@ -3530,9 +3435,8 @@ X server.")
           (base32
            "0gxcar434kx813fxdpb93126lhmkl3ikabaljhcj5qn3fkcijlcy"))))
     (build-system gnu-build-system)
-    (inputs `(("xorgproto" ,xorgproto)
-              ("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorgproto xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Trident video driver for X server")
     (description
@@ -3559,8 +3463,8 @@ X server.")
           (base32
             "0nf6ai74c60xk96kgr8q9mx6lrxm5id3765ws4d801irqzrj85hz"))))
     (build-system gnu-build-system)
-    (inputs `(("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "VESA video driver for X server")
     (description
@@ -3683,14 +3587,13 @@ server driver works.")
            "0v06qhm059klq40m2yx4wypzb7h53aaassbjfmm6clcyclj1k5s7"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("llvm" ,llvm)
-       ("mesa" ,mesa)                   ; for xatracker
-       ("xorg-server" ,xorg-server)))
+     (list libx11
+           libxext
+           llvm
+           mesa ; for xatracker
+           xorg-server))
     (native-inputs
-     `(("eudev" ,eudev)
-       ("pkg-config" ,pkg-config)))
+     (list eudev pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "VMware SVGA video driver for X server")
     (description
@@ -3715,9 +3618,8 @@ server driver works.")
         (patches
          (search-patches "xf86-video-voodoo-pcitag.patch"))))
     (build-system gnu-build-system)
-    (inputs `(("xorgproto" ,xorgproto)
-              ("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs (list xorgproto xorg-server))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Voodoo/Voodoo2 video driver for X server")
     (description
@@ -3838,10 +3740,9 @@ configuring modelines and gamma.")
             "1lr2nb1fhg5fk2fchqxdxyl739602ggwhmgl2wiv5c8qbidw7w8f"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxxf86vm" ,libxxf86vm)
-        ("libx11" ,libx11)))
+      (list libxxf86vm libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Alter a monitor's gamma correction")
     (description
@@ -3866,11 +3767,9 @@ monitor via the X video mode extension.")
             "15n3mnd4i5kh4z32qv11580qjgvnng0wry2y753ljrqkkrbkrp52"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxmu" ,libxmu)
-        ("libxau" ,libxau)
-        ("libx11" ,libx11)))
+      (list libxmu libxau libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://gitlab.freedesktop.org/xorg/app/xhost")
     (synopsis "Xorg server access control utility")
     (description
@@ -3894,7 +3793,7 @@ allowed to make connections to the X server.")
           (base32
             "0ns8abd27x7gbp4r44z3wc5k9zqxxj8zjnazqpcyr4n17nxp8xcp"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XineramaProto protocol headers")
     (description
@@ -3925,15 +3824,15 @@ alternative implementations like XRandR or TwinView.")
             "1vb6xdd1xmk5f7pwc5zcbxfray5sf1vbnscqwf2yl8lv7gfq38im"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxrender" ,libxrender)
-        ("libxrandr" ,libxrandr)
-        ("libxinerama" ,libxinerama)
-        ("libxext" ,libxext)
-        ("libxi" ,libxi)
-        ("libx11" ,libx11)
-        ("xorgproto" ,xorgproto)))
+      (list libxrender
+            libxrandr
+            libxinerama
+            libxext
+            libxi
+            libx11
+            xorgproto))
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Configure input devices for X server")
     (description
@@ -3955,11 +3854,9 @@ alternative implementations like XRandR or TwinView.")
          "0pmhshqinwqh5rip670l3szjpywky67hv232ql6gvdj489n0hlb8"))))
     (build-system gnu-build-system)
     (inputs
-     `(("xorgproto" ,xorgproto)
-       ("libxkbfile" ,libxkbfile)
-       ("libx11" ,libx11)))
+     (list xorgproto libxkbfile libx11))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Compile XKB keyboard description")
     (description
@@ -4010,10 +3907,9 @@ make keyboards more accessible to people with physical impairments.")
             "0sprjx8i86ljk0l7ldzbz2xlk8916z5zh78cafjv8k1a63js4c14"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxkbfile" ,libxkbfile)
-        ("libx11" ,libx11)))
+      (list libxkbfile libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "XKB event daemon demo")
     (description
@@ -4034,11 +3930,9 @@ requested commands if they occur.")
           (base32 "1yi3232g25hhp241irncd8znv3090k2gm0yjcdnz08h89y1zwn2v"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("libxkbfile" ,libxkbfile)
-        ("xorgproto" ,xorgproto)))
+     (list libx11 libxkbfile xorgproto))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Visualise an XKB keyboard layout description")
     (description
@@ -4064,11 +3958,9 @@ one from a running X server.")
             "0c412isxl65wplhl7nsk12vxlri29lk48g3p52hbrs3m0awqm8fj"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxt" ,libxt)
-        ("libxaw" ,libxaw)
-        ("xorgproto" ,xorgproto)))
+      (list libxt libxaw xorgproto))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "XKB utilities")
     (description
@@ -4086,21 +3978,20 @@ extension to the X11 protocol.  It includes:
 (define-public xkeyboard-config
   (package
     (name "xkeyboard-config")
-    (version "2.33")
+    (version "2.34")
     (source
       (origin
         (method url-fetch)
         (uri (string-append
-              "mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-"
+              "ftp://ftp.freedesktop.org/pub/xorg//individual/data/xkeyboard-config/xkeyboard-config-"
               version
               ".tar.bz2"))
         (sha256
           (base32
-            "1g6kn7l0mixw50kgn7d97gwv1990c5rczr2x776q3xywss8dfzv5"))))
+            "1kmq2ykwmh10sd6155gml4jhdxmvsll6xdg7zw86czpfhrvd48dk"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libx11" ,libx11)
-        ("xkbcomp-intermediate" ,xkbcomp-intermediate)))
+      (list libx11 xkbcomp-intermediate))
     (native-inputs
       `(("gettext" ,gettext-minimal)
         ("perl" ,perl)
@@ -4132,10 +4023,9 @@ can be combined together using the @code{rules} component of this database.")
             "0szzd9nzn0ybkhnfyizb876irwnjsnb78rcaxx6prb71jmmbpw65"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxmu" ,libxmu)
-        ("libx11" ,libx11)))
+      (list libxmu libx11))
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Kill a client by its X resource")
     (description
@@ -4161,9 +4051,9 @@ programs that have displayed undesired windows on a user's screen.")
             "10m3a046jvaw5ywx4y65kl84lsxqan70gww1g1r7cf96ijaqz1jp"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxcb" ,libxcb)))
+      (list libxcb))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://gitlab.freedesktop.org/xorg/app/xlsatoms")
     (synopsis "List interned X server atoms")
     (description
@@ -4187,9 +4077,9 @@ programs that have displayed undesired windows on a user's screen.")
             "1h8931sn34mcip6vpi4v7hdmr1r58gkbw4s2p97w98kykks2lgvp"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxcb" ,libxcb)))
+      (list libxcb))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "List client applications running on a display")
     (description
@@ -4214,10 +4104,9 @@ running on X server.")
          "0s6kxgv78chkwsqmhw929f4pf91gq63f4yvixxnan1h00cx0pf49"))))
     (build-system gnu-build-system)
     (inputs
-     `(("xorgproto" ,xorgproto)
-       ("libx11" ,libx11)))
+     (list xorgproto libx11))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "List fonts available from an X server")
     (description
@@ -4243,12 +4132,9 @@ protocol.")
        (list (string-append "--with-appdefaultdir="
                             %output ,%app-defaults-dir))))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxaw" ,libxaw)
-       ("libxmu" ,libxmu)
-       ("libxt" ,libxt)))
+     (list libx11 libxaw libxmu libxt))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Browse and select X font names")
     (description
@@ -4310,10 +4196,9 @@ containing one glyph per cell.")
             "0z28331i2pm16x671fa9qwsfqdmr6a43bzwmp0dm17a3sx0hjgs7"))))
     (build-system gnu-build-system)
     (inputs
-      `(("xorgproto" ,xorgproto)
-        ("libx11" ,libx11)))
+      (list xorgproto libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://gitlab.freedesktop.org/xorg/app/xmodmap")
     (synopsis "Modify keymaps and button mappings on X server")
     (description
@@ -4344,7 +4229,7 @@ tastes.")
           (base32
             "0k5pffyi5bx8dmfn033cyhgd3gf6viqj3x769fqixifwhbgy2777"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg SGML documentation tools")
     (description
@@ -4373,11 +4258,9 @@ refers to the included common xorg.css stylesheet.")
             "07qy9lwjvxighcmg6qvjkgagad3wwvidrfx0jz85lgynz3qy0dmr"))))
     (build-system gnu-build-system)
     (inputs
-      `(("xorgproto" ,xorgproto)
-        ("libxmu" ,libxmu)
-        ("libx11" ,libx11)))
+      (list xorgproto libxmu libx11))
     (native-inputs
-        `(("pkg-config" ,pkg-config)))
+        (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Print an X window dump from xwd")
     (description
@@ -4400,10 +4283,9 @@ it for output on various types of printers.")
          "18ckr8g1z50zkc01hprkpm1npwbq32yqib4b3l98c95z2q1yv4lv"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("xorgproto" ,xorgproto)))
+     (list libx11 xorgproto))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Display X server properties")
     (description
@@ -4427,12 +4309,9 @@ an X server.")
             "0ql75s1n3dm2m3g1ilb9l6hqh15r0v709bgghpwazy3jknpnvivv"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxrender" ,libxrender)
-        ("libxrandr" ,libxrandr)
-        ("xorgproto" ,xorgproto)
-        ("libx11" ,libx11)))
+      (list libxrender libxrandr xorgproto libx11))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Command line interface to X RandR extension")
     (description
@@ -4454,10 +4333,9 @@ and Reflect (RandR) extension.")
           (base32 "1d78prd8sfszq2rwwlb32ksph4fymf988lp75aj8iysg44f06pag"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxmu" ,libxmu)
-        ("libx11" ,libx11)))
+      (list libxmu libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://gitlab.freedesktop.org/xorg/app/xrdb")
     (synopsis "X server resource database utility")
     (description
@@ -4485,9 +4363,9 @@ file.")
             "0lv3rlshh7s0z3aqx5ahnnf8cl082m934bk7gv881mz8nydznz98"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libx11" ,libx11)))
+      (list libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Refresh all or part of an X screen")
     (description
@@ -4513,12 +4391,9 @@ up your screen.")
             "0my987wjvra7l92ry6q44ky383yg3phzxhdbn3lqhapm1ll9bzg4"))))
     (build-system gnu-build-system)
     (inputs
-      `(("xorgproto" ,xorgproto)
-        ("libxmu" ,libxmu)
-        ("libxext" ,libxext)
-        ("libx11" ,libx11)))
+      (list xorgproto libxmu libxext libx11))
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "User preference utility for X server")
     (description
@@ -4542,11 +4417,9 @@ up your screen.")
             "0z21mqvmdl6rl63q77479wgkfygnll57liza1i3va7sr4fx45i0h"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxmu" ,libxmu)
-        ("libxcursor" ,libxcursor)
-        ("xbitmaps" ,xbitmaps)))
+      (list libxmu libxcursor xbitmaps))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Root window parameter setting utility for X server")
     (description
@@ -4570,7 +4443,7 @@ a display running X server.")
           (base32
             "0wyp0yc6gi72hwc3kjmvm3vkj9p6s407cb6dxx37jh9wb68l8z1p"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Network Transport layer library")
     (description
@@ -4597,11 +4470,9 @@ libICE, the X font server, and related components.")
             "0gz7fvxavqlrqynpfbrm2nc9yx8h0ksnbnv34fj7n1q6cq6j4lq3"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxext" ,libxext)
-        ("libxv" ,libxv)
-        ("libx11" ,libx11)))
+      (list libxext libxv libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://gitlab.freedesktop.org/xorg/app/xvinfo")
     (synopsis "Print out X-Video extension adaptor information")
     (description
@@ -4624,11 +4495,9 @@ extension.")
           (base32 "06q36fh55r62ms0igfxsanrn6gv8lh794q1bw9xzw51p2qs2papv"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxt" ,libxt)
-        ("libxkbfile" ,libxkbfile)
-        ("xorgproto" ,xorgproto)))
+      (list libxt libxkbfile xorgproto))
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Dump current contents of X window or screen to file")
     (description
@@ -4657,10 +4526,9 @@ dump and twice when the dump is completed.")
             "03h8clirhw5ki1xxp18xbf5vynm7r0dwspsgfin6cxn4vx0m8h3s"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libx11" ,libx11)
-        ("xorgproto" ,xorgproto)))
+      (list libx11 xorgproto))
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Window information utility for X server")
     (description
@@ -4685,10 +4553,9 @@ Various information is displayed depending on which options are selected.")
             "1a8hdgy40smvblnh3s9f0vkqckl68nmivx7d48zk34m8z18p16cr"))))
     (build-system gnu-build-system)
     (inputs
-      `(("xorgproto" ,xorgproto)
-        ("libx11" ,libx11)))
+      (list xorgproto libx11))
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Display an X window dump from xwd")
     (description
@@ -4712,9 +4579,9 @@ formatted dump file, such as produced by xwd.")
             "1c76zcjs39ljil6f6jpx1x17c8fnvwazz7zvl3vbjfcrlmm7rjmv"))))
     (build-system gnu-build-system)
     (inputs
-     `(("xorgproto" ,xorgproto)))
+     (list xorgproto))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "X color name database")
     (description
@@ -4739,9 +4606,9 @@ formatted dump file, such as produced by xwd.")
             "1ki4wiq2iivx5g4w5ckzbjbap759kfqd72yg18m3zpbb4hqkybxs"))))
     (build-system gnu-build-system)
     (propagated-inputs
-      `(("xorgproto" ,xorgproto)))
+      (list xorgproto))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg FixesProto protocol headers")
     (description
@@ -4768,11 +4635,9 @@ cannot be adequately worked around on the client side of the wire.")
     (build-system gnu-build-system)
     (propagated-inputs
       ;; These are all in the Requires or Requires.private field of xdamage.pc
-      `(("libxfixes" ,libxfixes)
-        ("xorgproto" ,xorgproto)
-        ("libx11" ,libx11)))
+      (list libxfixes xorgproto libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Damage Extension library")
     (description "Xorg library for the XDamage extension.")
@@ -4803,12 +4668,11 @@ cannot be adequately worked around on the client side of the wire.")
                             "/share/man")
              ,@(malloc0-flags))))
     (propagated-inputs
-      `(("xorgproto" ,xorgproto)))
+      (list xorgproto))
     (inputs
-      `(("libxau" ,libxau)
-        ("libx11" ,libx11)))
+      (list libxau libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Common extensions library")
     (description
@@ -4834,12 +4698,11 @@ cannot be adequately worked around on the client side of the wire.")
     (arguments
      `(#:configure-flags '("--disable-static" ,@(malloc0-flags))))
     (propagated-inputs
-      `(("xorgproto" ,xorgproto)))
+      (list xorgproto))
     (inputs
-      `(("libxext" ,libxext)
-        ("libx11" ,libx11)))
+      (list libxext libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Xinerama protocol library")
     (description "API for Xinerama extension to X11 protocol.")
@@ -4862,12 +4725,11 @@ cannot be adequately worked around on the client side of the wire.")
             "0mwc2jwmq03b1m9ihax5c6gw2ln8rc70zz4fsj3kb7440nchqdkz"))))
     (build-system gnu-build-system)
     (propagated-inputs
-      `(("printproto" ,printproto)))
+      (list printproto))
     (inputs
-      `(("libx11" ,libx11)
-        ("libxext" ,libxext)))
+      (list libx11 libxext))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Print Client library")
     (description "Xorg Print Client library.")
@@ -4893,11 +4755,11 @@ cannot be adequately worked around on the client side of the wire.")
      `(#:configure-flags
        (list "--disable-static" ,@(malloc0-flags))))
     (propagated-inputs
-      `(("xorgproto" ,xorgproto)))
+      (list xorgproto))
     (inputs
-      `(("libx11" ,libx11)))
+      (list libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Render Extension library")
     (description "Library for the Render Extension to the X11 protocol.")
@@ -4921,12 +4783,11 @@ cannot be adequately worked around on the client side of the wire.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (propagated-inputs
-     `(("libxi" ,libxi)
-       ("xorgproto" ,xorgproto)))
+     (list libxi xorgproto))
     (inputs
-      `(("libx11" ,libx11)))
+      (list libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg library for Xtest and Record extensions")
     (description
@@ -4958,14 +4819,13 @@ protocol and arbitrary X extension protocol.")
             "125hn06bd3d8y97hm2pbf5j55gg4r2hpd3ifad651i4sr7m16v6j"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--disable-static")))
+     `(#:configure-flags '(,@(malloc0-flags) "--disable-static")))
     (propagated-inputs
-     `(("xorgproto" ,xorgproto)))
+     (list xorgproto))
     (inputs
-      `(("libxext" ,libxext)
-        ("libx11" ,libx11)))
+      (list libxext libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XVideo Extension library")
     (description "Library for the X Video Extension to the X11 protocol.")
@@ -5010,10 +4870,9 @@ protocol and arbitrary X extension protocol.")
                  (,(dirname
                     (search-input-file inputs "/bin/mkfontscale"))))))))))
     (inputs
-      `(("mkfontscale" ,mkfontscale)))
+      (list mkfontscale))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("automake" ,automake))) ;For up to date 'config.guess' and 'config.sub'.
+     (list pkg-config automake)) ;For up to date 'config.guess' and 'config.sub'.
     (home-page "https://www.x.org/wiki/")
     (synopsis "Create an index of X font files in a directory")
     (description
@@ -5038,9 +4897,9 @@ script around the mkfontscale program.")
             "0ivpxz0rx2a7nahkpkhfgymz7j0pwzaqvyqpdgw9afmxl1yp9yf6"))))
     (build-system gnu-build-system)
     (propagated-inputs
-      `(("util-macros" ,util-macros))) ; to get util-macros in (almost?) all package inputs
+      (list util-macros)) ; to get util-macros in (almost?) all package inputs
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg X11Proto protocol headers")
     (description
@@ -5073,12 +4932,11 @@ common definitions and porting layer.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (propagated-inputs
-      `(("xorgproto" ,xorgproto)))
+      (list xorgproto))
     (inputs
-      `(("libbsd" ,libbsd)
-        ("xtrans" ,xtrans)))
+      (list libbsd xtrans))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Inter-Client Exchange library")
     (description "Xorg Inter-Client Exchange library.")
@@ -5103,9 +4961,9 @@ common definitions and porting layer.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (propagated-inputs
-      `(("xorgproto" ,xorgproto)))
+      (list xorgproto))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Authorization library")
     (description
@@ -5131,11 +4989,11 @@ an X Window System display.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (propagated-inputs
-      `(("xorgproto" ,xorgproto)))
+      (list xorgproto))
     (inputs
-      `(("libx11" ,libx11)))
+      (list libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Fixes Extension library")
     (description "Library for the XFixes Extension to the X11 protocol.")
@@ -5159,14 +5017,11 @@ an X Window System display.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (propagated-inputs
-      `(("freetype" ,freetype)
-        ("libfontenc" ,libfontenc)
-        ("xorgproto" ,xorgproto)))
+      (list freetype libfontenc xorgproto))
     (inputs
-      `(("zlib" ,zlib)
-        ("xtrans" ,xtrans)))
+      (list zlib xtrans))
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Font handling library")
     (description
@@ -5213,12 +5068,9 @@ new API's in libXft, or the legacy API's in libX11.")
                                               "/share/man")
                                ,@(malloc0-flags))))
     (propagated-inputs
-      `(("xorgproto" ,xorgproto)
-        ("libx11" ,libx11)
-        ("libxext" ,libxext)
-        ("libxfixes" ,libxfixes)))
+      (list xorgproto libx11 libxext libxfixes))
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Input Extension library")
     (description "Library for the XInput Extension to the X11 protocol.")
@@ -5243,12 +5095,9 @@ new API's in libXft, or the legacy API's in libX11.")
      `(#:configure-flags '("--disable-static" ,@(malloc0-flags))))
     (propagated-inputs
       ;; In accordance with xrandr.pc.
-      `(("libx11" ,libx11)
-        ("libxext" ,libxext)
-        ("libxrender" ,libxrender)
-        ("xorgproto" ,xorgproto)))
+      (list libx11 libxext libxrender xorgproto))
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Resize and Rotate Extension library")
     (description
@@ -5271,15 +5120,13 @@ new API's in libXft, or the legacy API's in libX11.")
             "1kbdjsvkm5l7axv7g477qj18sab2wnqhliy6197syzizgfbsfgbb"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--disable-static")))
+     `(#:configure-flags '(,@(malloc0-flags) "--disable-static")))
     (propagated-inputs
-      `(("libxv" ,libxv)))
+      (list libxv))
     (inputs
-      `(("xorgproto" ,xorgproto)
-        ("libxext" ,libxext)
-        ("libx11" ,libx11)))
+      (list xorgproto libxext libx11))
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XvMC library")
     (description "Xorg XvMC library.")
@@ -5303,12 +5150,11 @@ new API's in libXft, or the legacy API's in libX11.")
     (arguments
      `(#:configure-flags '("--disable-static" ,@(malloc0-flags))))
     (propagated-inputs
-      `(("libxext" ,libxext)
-        ("xorgproto" ,xorgproto)))
+      (list libxext xorgproto))
     (inputs
-      `(("libx11" ,libx11)))
+      (list libx11))
     (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XF86 Video Mode Extension library")
     (description
@@ -5334,12 +5180,9 @@ protocol.")
     (build-system gnu-build-system)
     (outputs '("out" "doc"))                      ;5.5 MiB of man pages
     (propagated-inputs
-      `(("libpthread-stubs" ,libpthread-stubs)
-        ("libxau" ,libxau)
-        ("libxdmcp" ,libxdmcp)))
+      (list libpthread-stubs libxau libxdmcp))
     (inputs
-      `(("xcb-proto" ,xcb-proto)
-        ("libxslt" ,libxslt)))
+      (list xcb-proto libxslt))
     (native-inputs
       `(("pkg-config" ,pkg-config)
         ("python" ,python-minimal-wrapper)))
@@ -5367,78 +5210,97 @@ over Xlib, including:
 - easy extension implementation: interfaces auto-generated from XML-XCB.")
     (license license:x11)))
 
+(define-public libxcvt
+  (package
+    (name "libxcvt")
+    (version "0.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.x.org/releases/individual"
+                                  "/lib/libxcvt-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0acc7vrj5kfb19zvyl7f29rnsvx383dvwc19k70r8prm1lccxsr7"))))
+    (build-system meson-build-system)
+    (home-page "https://gitlab.freedesktop.org/xorg/lib/libxcvt")
+    (synopsis "VESA Coordinated Video Timings (CVT) library")
+    (description "@code{libxcvt} is a library providing a standalone version
+of the X server implementation of the VESA Coordinated Video Timings (CVT)
+standard timing modelines generator.  @code{libxcvt} also provides a
+standalone version of the command line tool @command{cvt} copied from the Xorg
+implementation and is meant to be a direct replacement to the version provided
+by the Xorg server.")
+    (license license:x11)))
 
 (define-public xorg-server
   (package
     (name "xorg-server")
-    (version "1.20.11")
+    (version "21.1.1")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "mirror://xorg/individual/xserver/"
-                            "xorg-server-" version ".tar.bz2"))
-        (sha256
-         (base32
-          "0jacqgin8kcyy8fyv0lhgb4if8g9hp60rm3ih3s1mgps7xp7jk4i"))
-        (patches
-         (list
-          ;; See:
-          ;;   https://lists.fedoraproject.org/archives/list/devel@lists.
-          ;;      fedoraproject.org/message/JU655YB7AM4OOEQ4MOMCRHJTYJ76VFOK/
-          (origin
-            (method url-fetch)
-            (uri (string-append
-                  "http://pkgs.fedoraproject.org/cgit/rpms/xorg-x11-server.git"
-                  "/plain/06_use-intel-only-on-pre-gen4.diff"))
-            (sha256
-             (base32
-              "0mm70y058r8s9y9jiv7q2myv0ycnaw3iqzm7d274410s0ik38w7q"))
-            (file-name "xorg-server-use-intel-only-on-pre-gen4.diff"))))))
+     (origin
+       (method url-fetch)
+
+       (uri (string-append "https://xorg.freedesktop.org/archive/individual"
+                           "/xserver/xorg-server-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0md7dqsc5qb30gym06c4zc2cjsdc5ps8nywk1bkcpix05kppybkq"))
+       (patches
+        (list
+         ;; See:
+         ;;   https://lists.fedoraproject.org/archives/list/devel@lists.
+         ;;      fedoraproject.org/message/JU655YB7AM4OOEQ4MOMCRHJTYJ76VFOK/
+         (origin
+           (method url-fetch)
+           (uri (string-append
+                 "http://pkgs.fedoraproject.org/cgit/rpms/xorg-x11-server.git"
+                 "/plain/06_use-intel-only-on-pre-gen4.diff"))
+           (sha256
+            (base32
+             "0mm70y058r8s9y9jiv7q2myv0ycnaw3iqzm7d274410s0ik38w7q"))
+           (file-name "xorg-server-use-intel-only-on-pre-gen4.diff"))))))
     (build-system gnu-build-system)
     (propagated-inputs
-      `(("libpciaccess" ,libpciaccess)
-        ("mesa" ,mesa)
-        ("pixman" ,pixman)
-        ("xorgproto" ,xorgproto)))
+     ;; The following libraries are required by xorg-server.pc.
+     (list libpciaccess libxcvt mesa pixman xorgproto))
     (inputs
-      `(("udev" ,eudev)
-        ("dbus" ,dbus)
-        ("libdmx" ,libdmx)
-        ("libepoxy" ,libepoxy)
-        ("libgcrypt" ,libgcrypt)
-        ("libxau" ,libxau)
-        ("libxaw" ,libxaw)
-        ("libxdmcp" ,libxdmcp)
-        ("libxfixes" ,libxfixes)
-        ("libxfont2" ,libxfont2)
-        ("libxkbfile" ,libxkbfile)
-        ("libxrender" ,libxrender)
-        ("libxres" ,libxres)
-        ("libxshmfence" ,libxshmfence)
-        ("libxt" ,libxt)
-        ("libxv" ,libxv)
-        ("xkbcomp" ,xkbcomp)
-        ("xkeyboard-config" ,xkeyboard-config)
-        ("xtrans" ,xtrans)
-        ("zlib" ,zlib)
-        ;; Inputs for Xephyr
-        ("xcb-util" ,xcb-util)
-        ("xcb-util-image" ,xcb-util-image)
-        ("xcb-util-keysyms" ,xcb-util-keysyms)
-        ("xcb-util-renderutil" ,xcb-util-renderutil)
-        ("xcb-util-wm" ,xcb-util-wm)))
+     `(("udev" ,eudev)
+       ("dbus" ,dbus)
+       ("libdmx" ,libdmx)
+       ("libepoxy" ,libepoxy)
+       ("libgcrypt" ,libgcrypt)
+       ("libxau" ,libxau)
+       ("libxaw" ,libxaw)
+       ("libxdmcp" ,libxdmcp)
+       ("libxfixes" ,libxfixes)
+       ("libxfont2" ,libxfont2)
+       ("libxkbfile" ,libxkbfile)
+       ("libxrender" ,libxrender)
+       ("libxres" ,libxres)
+       ("libxshmfence" ,libxshmfence)
+       ("libxt" ,libxt)
+       ("libxv" ,libxv)
+       ("xkbcomp" ,xkbcomp)
+       ("xkeyboard-config" ,xkeyboard-config)
+       ("xtrans" ,xtrans)
+       ("zlib" ,zlib)
+       ;; Inputs for Xephyr
+       ("xcb-util" ,xcb-util)
+       ("xcb-util-image" ,xcb-util-image)
+       ("xcb-util-keysyms" ,xcb-util-keysyms)
+       ("xcb-util-renderutil" ,xcb-util-renderutil)
+       ("xcb-util-wm" ,xcb-util-wm)))
     (native-inputs
      `(("python" ,python-wrapper)
        ("pkg-config" ,pkg-config)))
     (arguments
-     `(#:parallel-tests? #f
-       #:configure-flags
+     `(#:configure-flags
        (list (string-append "--with-xkb-path="
                             (assoc-ref %build-inputs "xkeyboard-config")
                             "/share/X11/xkb")
              (string-append "--with-xkb-output="
                             "/tmp") ; FIXME: This is a bit doubtful; where should
-                                    ; the compiled keyboard maps go?
+                                        ; the compiled keyboard maps go?
              (string-append "--with-xkb-bin-directory="
                             (assoc-ref %build-inputs "xkbcomp")
                             "/bin")
@@ -5447,6 +5309,9 @@ over Xlib, including:
              ;; It's not used anyway, so set it to empty.
              "--with-default-font-path="
 
+             ;; Enable the X security extensions (ssh -X).
+             "--enable-xcsecurity"
+
              ;; The default is to use "uname -srm", which captures the kernel
              ;; version and makes builds non-reproducible.
              "--with-os-name=GNU"
@@ -5457,7 +5322,6 @@ over Xlib, including:
              ;; For sddm.
              "--enable-kdrive"
              "--enable-xephyr")
-
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'pre-configure
@@ -5476,9 +5340,7 @@ over Xlib, including:
                (("^BUILD_DATE=.*$")
                 "BUILD_DATE=19700101\n")
                (("^BUILD_TIME=.*$")
-                "BUILD_TIME=000001\n"))
-
-             #t)))))
+                "BUILD_TIME=000001\n")))))))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg implementation of the X Window System")
     (description
@@ -5499,47 +5361,147 @@ draggable titlebars and borders.")
 (define-public xorg-server-for-tests
   (hidden-package
    (package
-     (inherit xorg-server)
-     (version "1.20.10")
-     (source
-       (origin
-         (method url-fetch)
-         (uri (string-append "mirror://xorg/individual/xserver/"
-                             "xorg-server-" version ".tar.bz2"))
-         (sha256
-          (base32
-           "16bwrf0ag41l7jbrllbix8z6avc5yimga7ihvq4ch3a5hb020x4p"))
-         (patches
-          (list
-           ;; See:
-           ;;   https://lists.fedoraproject.org/archives/list/devel@lists.
-           ;;      fedoraproject.org/message/JU655YB7AM4OOEQ4MOMCRHJTYJ76VFOK/
-           (origin
-             (method url-fetch)
-             (uri (string-append
-                   "http://pkgs.fedoraproject.org/cgit/rpms/xorg-x11-server.git"
-                   "/plain/06_use-intel-only-on-pre-gen4.diff"))
-             (sha256
-              (base32
-               "0mm70y058r8s9y9jiv7q2myv0ycnaw3iqzm7d274410s0ik38w7q"))
-             (file-name "xorg-server-use-intel-only-on-pre-gen4.diff")))))))))
+     (inherit xorg-server))))
+
+(define-public eglexternalplatform
+  (package
+    (name "eglexternalplatform")
+    (version "1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/NVIDIA/eglexternalplatform")
+         (commit version)))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "0lr5s2xa1zn220ghmbsiwgmx77l156wk54c7hybia0xpr9yr2nhb"))))
+    (build-system copy-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-pkgconfig
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "eglexternalplatform.pc"
+               (("/usr")
+                (assoc-ref outputs "out")))))
+         (add-after 'install 'revise
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (mkdir-p (string-append out "/include/EGL"))
+               (rename-file
+                (string-append out "/interface")
+                (string-append out "/include/EGL"))
+               (mkdir-p (string-append out "/share/pkgconfig"))
+               (rename-file
+                (string-append out "/eglexternalplatform.pc")
+                (string-append out "/share/pkgconfig/eglexternalplatform.pc"))
+               (for-each delete-file-recursively
+                         (list
+                          (string-append out "/samples")
+                          (string-append out "/COPYING")
+                          (string-append out "/README.md")))))))))
+    (synopsis "EGL External Platform interface")
+    (description "EGLExternalPlatform is an specification of the EGL External
+Platform interface for writing EGL platforms and their interactions with modern
+window systems on top of existing low-level EGL platform implementations.  This
+keeps window system implementation specifics out of EGL drivers by using
+application-facing EGL functions.")
+    (home-page "https://github.com/NVIDIA/eglexternalplatform")
+    (license license:expat)))
+
+(define-public egl-wayland
+  (package
+    (name "egl-wayland")
+    (version "1.1.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/NVIDIA/egl-wayland")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1iz86cpc4v7izckrcslllnw0vvvgsxg1sr65yb8s9d0f8xa8djdd"))))
+    (build-system meson-build-system)
+    (native-inputs
+     (list libglvnd ;needed for headers
+           mesa-headers pkg-config))
+    (inputs
+     (list mesa wayland wayland-protocols))
+    (propagated-inputs
+     (list eglexternalplatform))
+    (synopsis "EGLStream-based Wayland external platform")
+    (description "EGL-Wayland is an implementation of a EGL External Platform
+library to add client-side Wayland support to EGL on top of EGLDevice and
+EGLStream families of extensions.")
+    (home-page "https://github.com/NVIDIA/egl-wayland")
+    (license license:expat)))
 
 (define-public xorg-server-xwayland
-  (package/inherit xorg-server
+  (package
     (name "xorg-server-xwayland")
-    (inputs
-     `(("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
-       ,@(package-inputs xorg-server)))
+    (version "21.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://xorg.freedesktop.org/archive/individual"
+                           "/xserver/xwayland-" version ".tar.xz"))
+       (sha256
+        (base32
+         "18pqvg76grbsyxa3mm3j06i1l8cwb28nbn2gcnqpsk7x75zpbhpb"))))
+    (inputs (list font-dejavu
+                  dbus
+                  egl-wayland
+                  eudev
+                  libfontenc
+                  libdrm
+                  libepoxy
+                  libgcrypt
+                  libtirpc
+                  libxfont2
+                  libxkbfile
+                  pixman
+                  wayland
+                  wayland-protocols
+                  xkbcomp
+                  xkeyboard-config
+                  xorgproto
+                  xtrans))
+    (native-inputs (list pkg-config))
+    (build-system meson-build-system)
     (arguments
-     (substitute-keyword-arguments (package-arguments xorg-server)
-       ((#:configure-flags flags)
-        `(cons* "--enable-xwayland" "--disable-xorg"
-                "--disable-docs"    "--disable-devel-docs"
-                "--disable-xvfb"    "--disable-xnest"
-                "--disable-xquartz" "--disable-xwin"
-                ,flags))))
-    (synopsis "Xorg server with wayland backend")))
+     `(#:configure-flags
+       (list "-Dxwayland_eglstream=true"
+             (string-append "-Dxkb_dir="
+                            (assoc-ref %build-inputs "xkeyboard-config")
+                            "/share/X11/xkb")
+             (string-append "-Dxkb_bin_dir="
+                            (assoc-ref %build-inputs "xkbcomp") "/bin")
+             ;; The build system insist on providing a default font path; give
+             ;; that of dejavu, the same used for our fontconfig package.
+             (string-append "-Ddefault_font_path="
+                            (assoc-ref %build-inputs "font-dejavu")
+                            "/share/fonts")
+             "-Dxkb_output_dir=/tmp"
+             (format #f "-Dbuilder_string=\"Build ID: ~a ~a\"" ,name ,version)
+             "-Dxcsecurity=true"
+             "-Ddri3=true"
+             "-Dglamor=true"
+             ;; For the log file, etc.
+             "--localstatedir=/var")
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'patch-/bin/sh
+                    (lambda _
+                      (substitute* (find-files "." "\\.c$")
+                        (("/bin/sh") (which "sh"))))))))
+    (synopsis "Xorg server with Wayland backend")
+    (description "Xwayland is an X server for running X clients under
+Wayland.")
+    (home-page "https://www.x.org/wiki/")
+    (license license:x11)))
 
 
 ;; packages of height 4 in the propagated-inputs tree
@@ -5567,13 +5529,11 @@ draggable titlebars and borders.")
              "--disable-static"
              ,@(malloc0-flags))))
     (propagated-inputs
-      `(("xorgproto" ,xorgproto)
-        ("libxcb" ,libxcb)))
+      (list xorgproto libxcb))
     (inputs
-      `(("xtrans" ,xtrans)))
+      (list xtrans))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("xorgproto" ,xorgproto)))
+     (list pkg-config xorgproto))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Core X11 protocol client library")
     (description "Xorg Core X11 protocol client library.")
@@ -5586,34 +5546,28 @@ draggable titlebars and borders.")
     (name "libxcursor")
     (version "1.2.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append
-               "mirror://xorg/individual/lib/libXcursor-"
-               version
-               ".tar.bz2"))
-        (sha256
-          (base32
-            "10l7c9fm0jmpkm9ab9dz8r6m1pr87vvgqjnbx1psz50h4pwfklrs"))))
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://xorg/individual/lib/libXcursor-"
+             version
+             ".tar.bz2"))
+       (sha256
+        (base32
+         "10l7c9fm0jmpkm9ab9dz8r6m1pr87vvgqjnbx1psz50h4pwfklrs"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")))
     (propagated-inputs
-      `(("libx11" ,libx11)
-        ("libxrender" ,libxrender)
-        ("libxfixes" ,libxfixes)
-        ("xorgproto" ,xorgproto)))
-    (native-inputs
-      `(("pkg-config" ,pkg-config)))
-;; TODO: add XCURSOR_PATH=.../share/icons to profile search paths, so
-;; libXcursor finds cursors installed into a profile.  If we solve bugs
-;; <http://bugs.gnu.org/20255> and <http://bugs.gnu.org/22138>, we can fix
-;; this with a search-path as follows:
-;;
-;;    (native-search-paths
-;;     (list (search-path-specification
-;;            (variable "XCURSOR_PATH")
-;;            (files '("share/icons")))))
+     (list libx11 libxrender libxfixes xorgproto))
+    (native-inputs
+     (list pkg-config))
+    ;; FIXME: The search path below won't be very effective until the bugs
+    ;; <http://bugs.gnu.org/20255> and <http://bugs.gnu.org/22138> are solved.
+    (native-search-paths
+     (list (search-path-specification
+            (variable "XCURSOR_PATH")
+            (files '("share/icons")))))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Cursor management library")
     (description "Xorg Cursor management library.")
@@ -5645,13 +5599,11 @@ draggable titlebars and borders.")
              "--disable-static"
              ,@(malloc0-flags))))
     (propagated-inputs
-      `(("libx11" ,libx11)
-        ("libice" ,libice)
-        ("libsm" ,libsm)))
+      (list libx11 libice libsm))
     (inputs
-      `(("libx11" ,libx11)))
+      (list libx11))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XToolkit Intrinsics library")
     (description "Xorg XToolkit Intrinsics library.")
@@ -5676,14 +5628,11 @@ draggable titlebars and borders.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (propagated-inputs
-      `(("libxext" ,libxext)
-        ("libxmu" ,libxmu)
-        ("libxpm" ,libxpm)
-        ("libxt" ,libxt)))
+      (list libxext libxmu libxpm libxt))
     (inputs
-      `(("xorgproto" ,xorgproto)))
+      (list xorgproto))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Xaw library")
     (description
@@ -5705,13 +5654,9 @@ Intrinsics (Xt) Library.")
          "1iv8kdb18n9vk3is5fyh6l40ipq9mkgx8ppj86byf464vr1ais7l"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libxt" ,libxt)
-       ("libxmu" ,libxmu)
-       ("libxext" ,libxext)
-       ("xorgproto" ,xorgproto)))
+     (list libxt libxmu libxext xorgproto))
     (native-inputs
-     `(("bison" ,bison)
-       ("pkg-config" ,pkg-config)))
+     (list bison pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Tab Window Manager for the X Window System")
     (description "Twm is a window manager for the X Window System.
@@ -5735,9 +5680,9 @@ keyboard focus, and user-specified key and pointer button bindings.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (propagated-inputs
-     `(("libxcb" ,libxcb)))
+     (list libxcb))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://cgit.freedesktop.org/xcb/util/")
     (synopsis "Core XCB utility functions")
     (description
@@ -5773,13 +5718,11 @@ The XCB util module provides the following libraries:
     (arguments
      '(#:configure-flags '("--disable-static")))
     (native-inputs
-     `(("m4" ,m4)
-       ("pkg-config" ,pkg-config)))
+     (list m4 pkg-config))
     (inputs
-     `(("libxcb" ,libxcb)))
+     (list libxcb))
     (propagated-inputs
-     `(("xcb-util-renderutil" ,xcb-util-renderutil)
-       ("xcb-util-image" ,xcb-util-image)))
+     (list xcb-util-renderutil xcb-util-image))
     (home-page "https://cgit.freedesktop.org/xcb/util-cursor/")
     (synopsis "Port of libxcursor")
     (description "XCB-util-cursor is a port of libxcursor.")
@@ -5808,10 +5751,9 @@ The XCB util module provides the following libraries:
      (build-system gnu-build-system)
      (outputs '("out"))
      (inputs
-      `(("util-macros" ,util-macros)
-        ("xcb-proto" ,xcb-proto)))
+      (list util-macros xcb-proto))
      (propagated-inputs
-      `(("libxcb" ,libxcb)))
+      (list libxcb))
      (native-inputs
       `(("autoconf" ,autoconf)
         ("automake" ,automake)
@@ -5857,11 +5799,11 @@ numbers.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (propagated-inputs
-     `(("libxcb" ,libxcb)))
+     (list libxcb))
     (inputs
-     `(("xcb-util" ,xcb-util)))
+     (list xcb-util))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://cgit.freedesktop.org/xcb/util-image/")
     (synopsis "XCB port of Xlib's XImage and XShmImage")
     (description
@@ -5893,9 +5835,9 @@ The XCB util-image module provides the following library:
     (arguments
      '(#:configure-flags '("--disable-static")))
     (propagated-inputs
-     `(("libxcb" ,libxcb)))
+     (list libxcb))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://cgit.freedesktop.org/xcb/util-keysyms/")
     (synopsis "Standard X constants and conversion to/from keycodes")
     (description
@@ -5927,9 +5869,9 @@ The XCB util-keysyms module provides the following library:
     (arguments
      '(#:configure-flags '("--disable-static")))
     (propagated-inputs
-     `(("libxcb" ,libxcb)))
+     (list libxcb))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://cgit.freedesktop.org/xcb/util-renderutil/")
     (synopsis "Convenience functions for the Render extension")
     (description
@@ -5961,10 +5903,9 @@ The XCB util-renderutil module provides the following library:
     (arguments
      '(#:configure-flags '("--disable-static")))
     (propagated-inputs
-     `(("libxcb" ,libxcb)))
+     (list libxcb))
     (native-inputs
-     `(("m4" ,m4)
-       ("pkg-config" ,pkg-config)))
+     (list m4 pkg-config))
     (home-page "https://cgit.freedesktop.org/xcb/util-wm/")
     (synopsis "Client and window-manager helpers for ICCCM and EWMH")
     (description
@@ -5995,12 +5936,11 @@ The XCB util-wm module provides the following libraries:
                 "1fdbakx59vyh474skjydj1bbglpby3y03nl7mxn0z9v8gdhqz6yy"))))
     (build-system gnu-build-system)
     (inputs
-     `(("xorgproto" ,xorgproto)
-       ("libx11" ,libx11)))
+     (list xorgproto libx11))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (propagated-inputs
-     `(("xauth" ,xauth)))
+     (list xauth))
     (home-page "https://www.x.org/")
     (synopsis "Commands to start the X Window server")
     (description
@@ -6028,13 +5968,11 @@ user-friendly mechanism to start the X server.")
             "0i653s8g25cc0mimkwid9366bqkbyhdyjhckx7bw77j20hzrkfid"))))
     (build-system gnu-build-system)
     (propagated-inputs
-      `(("libxext" ,libxext)
-        ("libxmu" ,libxmu)
-        ("libxt" ,libxt)))
+      (list libxext libxmu libxt))
     (inputs
-     `(("libx11" ,libx11)))
+     (list libx11))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Xaw3d library")
     (description
@@ -6059,14 +5997,14 @@ Intrinsics (Xt) Library.")
        (list (string-append "--with-appdefaultdir="
                             %output ,%app-defaults-dir))))
     (inputs
-     `(("libxmu" ,libxmu)
-       ("libx11" ,libx11)
-       ("libxaw" ,libxaw)
-       ("libxrender" ,libxrender)
-       ("libxft" ,libxft)
-       ("libxkbfile" ,libxkbfile)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list libxmu
+           libx11
+           libxaw
+           libxrender
+           libxft
+           libxkbfile))
+    (native-inputs
+     (list pkg-config))
     (home-page "https://gitlab.freedesktop.org/xorg/app/xclock")
     (synopsis "Analog / digital clock for X")
     (description "The xclock program displays the time in analog or digital
@@ -6093,9 +6031,9 @@ form.")
        (list (string-append "--with-appdefaultdir="
                             %output ,%app-defaults-dir))))
     (inputs
-     `(("libxaw" ,libxaw)))
+     (list libxaw))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Display or capture a magnified part of a X11 screen")
     (description "Xmag displays and captures a magnified snapshot of a portion
@@ -6122,9 +6060,9 @@ of an X11 screen.")
        (list (string-append "--with-appdefaultdir="
                             %output ,%app-defaults-dir))))
     (inputs
-     `(("libxaw" ,libxaw)))
+     (list libxaw))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Displays a message or query in a window")
     (description
@@ -6136,7 +6074,7 @@ to answer a question.  Xmessage can also exit after a specified time.")
 (define-public xterm
   (package
     (name "xterm")
-    (version "368")
+    (version "370")
     (source
      (origin
        (method url-fetch)
@@ -6146,7 +6084,7 @@ to answer a question.  Xmessage can also exit after a specified time.")
              (string-append "ftp://ftp.invisible-island.net/xterm/"
                             "xterm-" version ".tgz")))
        (sha256
-        (base32 "04p7db3j3n5dk1vvlas4231rh6jgr4qi6ppvpbq9xd5n62cidx9g"))))
+        (base32 "10lc72spa69n9d7zg9nwhgwz70qzidp5i17jgw3lq3qg1a25sg4n"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts"
@@ -6166,7 +6104,7 @@ to answer a question.  Xmessage can also exit after a specified time.")
                  (("=xterm")
                   (string-append "=" out "/bin/xterm")))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("luit" ,luit)
        ("libXft" ,libxft)
@@ -6225,24 +6163,18 @@ programs that cannot use the window system directly.")
        ;; Tests require a running X11 server.
        #:tests? #f))
     (native-inputs
-     `(("perl-extutils-depends" ,perl-extutils-depends)
-       ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)
-       ("perl-module-install" ,perl-module-install)
-       ("perl-test-deep" ,perl-test-deep)
-       ("perl-test-exception" ,perl-test-exception)))
+     (list perl-extutils-depends perl-extutils-pkgconfig
+           perl-module-install perl-test-deep perl-test-exception))
     (propagated-inputs
-     `(("perl-data-dump" ,perl-data-dump)
-       ("perl-mouse" ,perl-mouse)
-       ("perl-mousex-nativetraits" ,perl-mousex-nativetraits)
-       ("perl-try-tiny" ,perl-try-tiny)
-       ("perl-xml-descent" ,perl-xml-descent)
-       ("perl-xml-simple" ,perl-xml-simple)
-       ("perl-xs-object-magic" ,perl-xs-object-magic)))
+     (list perl-data-dump
+           perl-mouse
+           perl-mousex-nativetraits
+           perl-try-tiny
+           perl-xml-descent
+           perl-xml-simple
+           perl-xs-object-magic))
     (inputs
-     `(("libxcb" ,libxcb)
-       ("xcb-proto" ,xcb-proto)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-wm" ,xcb-util-wm)))
+     (list libxcb xcb-proto xcb-util xcb-util-wm))
     (home-page "https://metacpan.org/release/X11-XCB")
     (synopsis "Perl bindings for libxcb")
     (description
@@ -6292,10 +6224,9 @@ perl programs to display windows and graphics on X11 servers.")
         (base32 "1x3kvic52jgp2mvd5wzrqrprqi82cdk8l4075v8b33ksvj9mjqiw"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-encode-hanextra" ,perl-encode-hanextra)
-       ("perl-module-util" ,perl-module-util)))
+     (list perl-encode-hanextra perl-module-util))
     (propagated-inputs
-     `(("perl-x11-protocol" ,perl-x11-protocol)))
+     (list perl-x11-protocol))
     (home-page "https://metacpan.org/release/X11-Protocol-Other")
     (synopsis "Miscellaneous helpers for @code{X11::Protocol} connections")
     (description
@@ -6321,16 +6252,14 @@ Conventions Manual) and some of the @dfn{EWMH}
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list pkg-config autoconf automake))
     (inputs
-     `(("libX11" ,libx11)
-       ("libXext" ,libxext)
-       ("libXcomposite" ,libxcomposite)
-       ("libXfixes" ,libxfixes)
-       ("libXdamage" ,libxdamage)
-       ("libXrender" ,libxrender)))
+     (list libx11
+           libxext
+           libxcomposite
+           libxfixes
+           libxdamage
+           libxrender))
     (synopsis "X Compositing manager using RENDER")
     (description "xcompmgr is a sample compositing manager for X servers
 supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE extensions.  It enables
@@ -6342,14 +6271,14 @@ basic eye-candy effects.")
 (define-public xpra
   (package
     (name "xpra")
-    (version "4.2.1")
+    (version "4.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.xpra.org/src/xpra-"
                            version ".tar.gz"))
        (sha256
-        (base32 "0gqdcw5cfk919jk8g0g4xjxbsvr5j9gskn8q3cmrz388pvfvm8x7"))
+        (base32 "1h9fxarhp6f90fbjrpbkjbfwb86js2gbfl6asqa5hbl1aprrwaxg"))
        (patches (search-patches "xpra-4.2-systemd-run.patch"))))
     (build-system python-build-system)
     ;; see also http://xpra.org/trac/wiki/Dependencies
@@ -6388,9 +6317,7 @@ basic eye-candy effects.")
               ("dbus" ,dbus)               ; For dbus-launch command.
               ("python-lz4" ,python-lz4) ; Faster compression than zlib.
               ("python-netifaces" ,python-netifaces)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("pandoc" ,pandoc)
-                     ("python-cython" ,python-cython)))
+    (native-inputs (list pkg-config pandoc python-cython))
     (arguments
      `(#:configure-flags '("--without-Xdummy"
 						   "--without-Xdummy_wrapper"
@@ -6482,11 +6409,7 @@ X11 servers, Windows, or macOS.")
          "1p7sl0js47ja4glmax93ci59h02ipqw3wxkh4f1qgaz5qjy9nn9l"))))
     (build-system gnu-build-system)
     (inputs
-     `(("anthy" ,anthy)
-       ("libedit" ,libedit)
-       ("libxft" ,libxft)
-       ("m17n-lib" ,m17n-lib)
-       ("ncurses" ,ncurses)))
+     (list anthy libedit libxft m17n-lib ncurses))
     (native-inputs
      `(("emacs" ,emacs-minimal)
        ("intltool" ,intltool)
@@ -6553,6 +6476,10 @@ and embedded platforms.")
      `(("gtk" ,gtk+)
        ("gtk" ,gtk+-2)
        ,@(package-inputs uim)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments uim)
+       ((#:configure-flags configure-flags)
+        (append configure-flags (list "CFLAGS=-O2 -g -fcommon")))))
     (synopsis "Multilingual input method framework (GTK+ support)")))
 
 (define-public uim-qt
@@ -6566,7 +6493,8 @@ and embedded platforms.")
      (substitute-keyword-arguments (package-arguments uim)
        ((#:configure-flags configure-flags)
         (append configure-flags (list "--with-qt5-immodule"
-                                      "--with-qt5")))))
+                                      "--with-qt5"
+                                      "CPPFLAGS=-fcommon")))))
     (synopsis "Multilingual input method framework (Qt support)")))
 
 (define-public keynav
@@ -6585,15 +6513,15 @@ and embedded platforms.")
          "1gizjhji3yspxxxvb90js3z1bv18rbf5phxg8rciixpj3cccff8z"))))
     (build-system gnu-build-system)
     (inputs
-     `(("cairo" ,cairo)
-       ("glib" ,glib)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxinerama" ,libxinerama)
-       ("libxtst" ,libxtst)
-       ("xdotool" ,xdotool)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list cairo
+           glib
+           libx11
+           libxext
+           libxinerama
+           libxtst
+           xdotool))
+    (native-inputs
+     (list pkg-config))
     (arguments
      `(#:tests? #f ;No tests.
        #:phases
@@ -6646,10 +6574,8 @@ mouse click.  You can do everything mouse can do with a keyboard.")
                 "0rya202y87dwl35jnmq8hs3arzdrv5z4vf1xmi0py4rnmhdpszaw"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (inputs `(("libxcomposite" ,libxcomposite)
-              ("libxdamage" ,libxdamage)
-              ("libxrender" ,libxrender)))
+     (list pkg-config))
+    (inputs (list libxcomposite libxdamage libxrender))
     (synopsis "Set the transparency of X11 windows")
     (description "@command{transset} is a simple program for X servers
 supporting the XFIXES, DAMAGE, and COMPOSITE extensions.  It lets the
@@ -6657,9 +6583,6 @@ user set the transparency on a window.")
     (home-page "https://gitlab.freedesktop.org/xorg/app/transset")
     (license license:x11)))
 
-(define-public transset-df
-  (deprecated-package "transset-df" transset))
-
 (define-public bdfresize
   (package
     (name "bdfresize")
@@ -6695,9 +6618,7 @@ user set the transparency on a window.")
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list pkg-config autoconf automake))
     (synopsis "Resize fonts in the BDF format")
     (description
      "This package provides @command{bdfresize}, a command to magnify or
@@ -6709,7 +6630,7 @@ output.")
 (define-public console-setup
   (package
     (name "console-setup")
-    (version "1.203")
+    (version "1.205")
     (source
      (origin
        (method git-fetch)
@@ -6717,7 +6638,7 @@ output.")
              (url "https://salsa.debian.org/installer-team/console-setup.git")
              (commit version)))
        (sha256
-        (base32 "1bavb8h4j1za2h7mxr109imicjmh7fp4099lvzfgavhjr3l3vsab"))
+        (base32 "0sf560s14firyvzpgww79ydzc6p3jvjkbvsi8zsr5m3hr833w0ba"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
@@ -6756,13 +6677,13 @@ output.")
                                                  "bash")
                                       "/bin/bash"))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("bdftopcf" ,bdftopcf)
-       ("bdfresize" ,bdfresize)
-       ("sharutils" ,sharutils)         ; for 'uuencode'
-       ("perl" ,perl)))
+     (list pkg-config
+           bdftopcf
+           bdfresize
+           sharutils ; for 'uuencode'
+           perl))
     (inputs
-     `(("perl" ,perl)))                 ; used by 'ckbcomp'
+     (list perl))                 ; used by 'ckbcomp'
     (synopsis "Set up the Linux console font and keyboard")
     (description
      "console-setup provides the console with the same keyboard
@@ -6799,10 +6720,9 @@ Thai).")
         (base32 "0858wn2p14bxpv9lvaz2bz1rk6zk0g8zgxf8iy595m8fqv4q2fya"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libpng" ,libpng)
-       ("libxcursor" ,libxcursor)))
+     (list libpng libxcursor))
     (synopsis "Decode X cursors")
     (description
      "xcur2png is a program decomposes an X cursor into a set of PNG images and
@@ -6843,7 +6763,7 @@ changed.")
                (base32
                 "16jqparb33lfq4cvd9l3jgd7fq86fk9gv2ixc8vgqibid6cnhi0x"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("glib" ,glib)
        ("gettext" ,gettext-minimal)
@@ -6920,11 +6840,10 @@ box, and a calendar.  It uses GTK+, and will match your desktop theme.")
                (install-file "xvfb-run" bin)
                (install-file "xvfb-run.1" man)))))))
     (inputs
-     `(("util-linux" ,util-linux)       ; for getopt
-       ("xauth" ,xauth)
-       ("xorg-server" ,xorg-server)))
+     (list util-linux ; for getopt
+           xauth xorg-server))
     (native-inputs
-     `(("xterm" ,xterm)))               ; for the test
+     (list xterm))               ; for the test
     ;; This script is not part of the upstream xorg-server.  It is provided only
     ;; as a patch added to Debian's package.
     (home-page "https://packages.debian.org/sid/xorg-server-source")
@@ -6963,9 +6882,7 @@ the server and cleaning up before returning the exit status of the command.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (inputs
-     `(("imlib2" ,imlib2)
-       ("libx11" ,libx11)
-       ("libxinerama" ,libxinerama)))
+     (list imlib2 libx11 libxinerama))
     (home-page "https://github.com/ttzhou/setroot")
     (synopsis "Simple X background setter inspired by imlibsetroot and feh")
     (description "Setroot is a lightweight X background setter with feh's
diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
new file mode 100644
index 0000000000..ea0ec89b0b
--- /dev/null
+++ b/gnu/packages/zig.scm
@@ -0,0 +1,104 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
+;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
+;;;
+;;; 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 zig)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system cmake)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages llvm))
+
+(define-public zig
+  (package
+    (name "zig")
+    (version "0.8.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ziglang/zig.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "147qx7xgj0r353wh5ragzn6kmm1vrf31i8038z3zqwjnqqgqxi6c"))
+       (patches
+        (search-patches
+         "zig-disable-libc-note-test.patch"
+         "zig-use-system-paths.patch"))))
+    (build-system cmake-build-system)
+    (inputs
+     (list clang-12 ; Clang propagates llvm.
+           lld))
+    ;; Zig compiles fine with GCC, but also needs native LLVM libraries.
+    (native-inputs
+     (list llvm-12))
+    (arguments
+     `(#:configure-flags
+       (list ,@(if (%current-target-system)
+                   (string-append "-DZIG_TARGET_TRIPLE="
+                                  (%current-target-system))
+                   '()))
+       #:out-of-source? #f ; for tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'configure 'set-cache-dir
+           (lambda _
+             ;; Set cache dir, otherwise Zig looks for `$HOME/.cache'.
+             (setenv "ZIG_GLOBAL_CACHE_DIR"
+                     (string-append (getcwd) "/zig-cache"))))
+         (delete 'check)
+         (add-after 'install 'check
+           (lambda* (#:key outputs tests? #:allow-other-keys)
+             (when tests?
+               (invoke (string-append (assoc-ref outputs "out") "/bin/zig")
+                       ;; Testing the standard library takes >7.5GB RAM, and
+                       ;; will fail if it is OOM-killed.  The 'test-toolchain'
+                       ;; target skips standard library and doc tests.
+                       "build" "test-toolchain"
+                       ;; Stage 2 is experimental, not what we run with `zig',
+                       ;; and stage 2 tests require a lot of RAM.
+                       "-Dskip-stage2-tests"
+                       ;; Non-native tests try to link and execute non-native
+                       ;; binaries.
+                       "-Dskip-non-native")))))))
+    (native-search-paths
+     (list
+      (search-path-specification
+       (variable "C_INCLUDE_PATH")
+       (files '("include")))
+      (search-path-specification
+       (variable "CPLUS_INCLUDE_PATH")
+       (files '("include/c++" "include")))
+      (search-path-specification
+       (variable "LIBRARY_PATH")
+       (files '("lib" "lib64")))))
+    (synopsis "General purpose programming language and toolchain")
+    (description "Zig is a general-purpose programming language and
+toolchain.  Among other features it provides
+@itemize
+@item an Optional type instead of null pointers,
+@item manual memory management,
+@item generic data structures and functions,
+@item compile-time reflection and compile-time code execution,
+@item integration with C using zig as a C compiler, and
+@item concurrency via async functions.
+@end itemize")
+    (home-page "https://github.com/ziglang/zig")
+    (license license:expat)))
diff --git a/gnu/packages/zile.scm b/gnu/packages/zile.scm
index bb9270968c..4d4805c7be 100644
--- a/gnu/packages/zile.scm
+++ b/gnu/packages/zile.scm
@@ -121,8 +121,8 @@ default Emacs configuration, but it carries a much lighter feature set.")
                   "0wlli8hqal9ikmbl3a49kyhzyf164jk6mdbir3bclq2gxszs532d"))
                 (file-name (string-append name "-" version "-checkout"))))
       (inputs
-       `(("guile" ,guile-2.0)
-         ,@(package-inputs zile)))
+       (modify-inputs (package-inputs zile)
+         (prepend guile-2.0)))
       (native-inputs
        `(("m4" ,m4)                               ;for 'bootstrap'
          ("autoconf" ,autoconf)
diff --git a/gnu/packages/zwave.scm b/gnu/packages/zwave.scm
index 2019ec32df..4d8286e334 100644
--- a/gnu/packages/zwave.scm
+++ b/gnu/packages/zwave.scm
@@ -74,12 +74,9 @@
        ;; the device XML database and it's not entirely clear what to get from
        ;; them.
        #:tests? #f))
-    (native-inputs `(("which" ,which)
-                     ("pkg-config" ,pkg-config)
-                     ("perl" ,perl)               ;for tests
-                     ("perl-xml-simple" ,perl-xml-simple)))
-    (inputs `(("hidapi" ,hidapi)
-              ("eudev" ,eudev)))
+    (native-inputs (list which pkg-config perl ;for tests
+                         perl-xml-simple))
+    (inputs (list hidapi eudev))
     (home-page "http://www.openzwave.net/")
     (synopsis "Access Z-Wave devices from C++ programs")
     (description
diff --git a/gnu/platform.scm b/gnu/platform.scm
new file mode 100644
index 0000000000..bb6519c71a
--- /dev/null
+++ b/gnu/platform.scm
@@ -0,0 +1,38 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Mathieu Othacehe <othacehe@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 platform)
+  #:use-module (guix records)
+  #:export (platform
+            platform?
+            platform-target
+            platform-system
+            platform-linux-architecture))
+
+
+;;;
+;;; Platform record.
+;;;
+
+;; Description of a platform supported by the GNU system.
+(define-record-type* <platform> platform make-platform
+  platform?
+  (target             platform-target)               ;"x86_64-linux-gnu"
+  (system             platform-system)               ;"x86_64-linux"
+  (linux-architecture platform-linux-architecture    ;"amd64"
+                      (default #f)))
diff --git a/gnu/platforms/arm.scm b/gnu/platforms/arm.scm
new file mode 100644
index 0000000000..1e61741a35
--- /dev/null
+++ b/gnu/platforms/arm.scm
@@ -0,0 +1,36 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Mathieu Othacehe <othacehe@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 platforms arm)
+  #:use-module (gnu platform)
+  #:use-module (gnu packages linux)
+  #:use-module (guix records)
+  #:export (armv7-linux
+            aarch64-linux))
+
+(define armv7-linux
+  (platform
+   (target "arm-linux-gnueabihf")
+   (system "armhf-linux")
+   (linux-architecture "arm")))
+
+(define aarch64-linux
+  (platform
+   (target "aarch64-linux-gnu")
+   (system "aarch64-linux")
+   (linux-architecture "arm64")))
diff --git a/gnu/platforms/hurd.scm b/gnu/platforms/hurd.scm
new file mode 100644
index 0000000000..0e5c58fd08
--- /dev/null
+++ b/gnu/platforms/hurd.scm
@@ -0,0 +1,28 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Mathieu Othacehe <othacehe@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 platforms hurd)
+  #:use-module (gnu platform)
+  #:use-module (gnu packages linux)
+  #:use-module (guix records)
+  #:export (hurd))
+
+(define hurd
+  (platform
+   (target "i586-pc-gnu")
+   (system "i586-gnu")))
diff --git a/gnu/services.scm b/gnu/services.scm
index 1655218f2d..68fa4ebb63 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -319,7 +319,13 @@ the resulting list of services.  Each clause must have the form:
 
 where TYPE is a service type, such as 'guix-service-type', and VARIABLE is an
 identifier that is bound within BODY to the value of the service of that
-TYPE.  Consider this example:
+TYPE.
+
+Clauses can also remove services of a given type:
+
+  (delete TYPE)
+
+Consider this example:
 
   (modify-services %base-services
     (guix-service-type config =>
diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm
index 763a4434e4..043517262f 100644
--- a/gnu/services/admin.scm
+++ b/gnu/services/admin.scm
@@ -149,7 +149,7 @@ for ROTATION."
 (define-record-type* <rottlog-configuration>
   rottlog-configuration make-rottlog-configuration
   rottlog-configuration?
-  (rottlog            rottlog-rottlog             ;package
+  (rottlog            rottlog-rottlog             ;file-like
                       (default rottlog))
   (rc-file            rottlog-rc-file             ;file-like
                       (default (file-append rottlog "/etc/rc")))
diff --git a/gnu/services/auditd.scm b/gnu/services/auditd.scm
index cffc226ec9..abde811f51 100644
--- a/gnu/services/auditd.scm
+++ b/gnu/services/auditd.scm
@@ -46,7 +46,7 @@ ignore\ndisk_error_action = syslog\n"))
 (define-record-type* <auditd-configuration>
   auditd-configuration make-auditd-configuration
   auditd-configuration?
-  (audit                   auditd-configuration-audit                          ; package
+  (audit                   auditd-configuration-audit                          ; file-like
                            (default audit))
   (configuration-directory auditd-configuration-configuration-directory))      ; file-like
 
diff --git a/gnu/services/authentication.scm b/gnu/services/authentication.scm
index d7efc48cd0..cb0ef6d85a 100644
--- a/gnu/services/authentication.scm
+++ b/gnu/services/authentication.scm
@@ -45,7 +45,7 @@
             nslcd-service-type))
 
 (define-configuration fprintd-configuration
-  (fprintd      (package fprintd)
+  (fprintd      (file-like fprintd)
                 "The fprintd package"))
 
 (define (fprintd-dbus-service config)
@@ -213,7 +213,7 @@
 
 (define-configuration nslcd-configuration
   (nss-pam-ldapd
-   (package nss-pam-ldapd)
+   (file-like nss-pam-ldapd)
    "The NSS-PAM-LDAPD package to use.")
 
   ;; Runtime options
diff --git a/gnu/services/avahi.scm b/gnu/services/avahi.scm
index 2dcf1d9c1b..3b8d0512c7 100644
--- a/gnu/services/avahi.scm
+++ b/gnu/services/avahi.scm
@@ -52,7 +52,7 @@
 (define-record-type* <avahi-configuration>
   avahi-configuration make-avahi-configuration
   avahi-configuration?
-  (avahi             avahi-configuration-avahi    ;<package>
+  (avahi             avahi-configuration-avahi    ;file-like
                      (default avahi))
   (debug?            avahi-configuration-debug?   ;Boolean
                      (default #f))
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 50865055fe..5f93483dda 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -35,6 +35,8 @@
 (define-module (gnu services base)
   #:use-module (guix store)
   #:use-module (guix deprecation)
+  #:autoload   (guix diagnostics) (warning)
+  #:autoload   (guix i18n) (G_)
   #:use-module (gnu services)
   #:use-module (gnu services admin)
   #:use-module (gnu services shepherd)
@@ -53,16 +55,21 @@
   #:use-module (gnu packages bash)
   #:use-module ((gnu packages base)
                 #:select (coreutils glibc glibc-utf8-locales))
+  #:autoload   (gnu packages guile-xyz) (guile-netlink)
+  #:autoload   (gnu packages hurd) (hurd)
   #:use-module (gnu packages package-management)
   #:use-module ((gnu packages gnupg) #:select (guile-gcrypt))
   #:use-module (gnu packages linux)
   #:use-module (gnu packages terminals)
   #:use-module ((gnu build file-systems)
-                #:select (mount-flags->bit-mask))
+                #:select (mount-flags->bit-mask
+                          swap-space->flags-bit-mask))
   #:use-module (guix gexp)
   #:use-module (guix records)
   #:use-module (guix modules)
   #:use-module ((guix self) #:select (make-config.scm))
+  #:use-module (guix diagnostics)
+  #:use-module (guix i18n)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match)
@@ -80,17 +87,38 @@
             virtual-terminal-service-type
 
             static-networking
-
             static-networking?
-            static-networking-interface
-            static-networking-ip
-            static-networking-netmask
-            static-networking-gateway
+            static-networking-addresses
+            static-networking-links
+            static-networking-routes
             static-networking-requirement
 
+            network-address
+            network-address?
+            network-address-device
+            network-address-value
+            network-address-ipv6?
+
+            network-link
+            network-link?
+            network-link-name
+            network-link-type
+            network-link-arguments
+
+            network-route
+            network-route?
+            network-route-destination
+            network-route-source
+            network-route-device
+            network-route-ipv6?
+            network-route-gateway
+
             static-networking-service
             static-networking-service-type
 
+            %loopback-static-networking
+            %qemu-static-networking
+
             udev-configuration
             udev-configuration?
             udev-configuration-rules
@@ -557,7 +585,7 @@ down.")))
 (define-record-type* <rngd-configuration>
   rngd-configuration make-rngd-configuration
   rngd-configuration?
-  (rng-tools rngd-configuration-rng-tools)        ;package
+  (rng-tools rngd-configuration-rng-tools)        ;file-like
   (device    rngd-configuration-device))          ;string
 
 (define rngd-service-type
@@ -772,7 +800,7 @@ the message of the day, among other things."
 (define-record-type* <agetty-configuration>
   agetty-configuration make-agetty-configuration
   agetty-configuration?
-  (agetty           agetty-configuration-agetty   ;<package>
+  (agetty           agetty-configuration-agetty   ;file-like
                     (default util-linux))
   (tty              agetty-configuration-tty)     ;string | #f
   (term             agetty-term                   ;string | #f
@@ -1040,7 +1068,7 @@ the tty to run, among other things."
 (define-record-type* <mingetty-configuration>
   mingetty-configuration make-mingetty-configuration
   mingetty-configuration?
-  (mingetty         mingetty-configuration-mingetty ;<package>
+  (mingetty         mingetty-configuration-mingetty ;file-like
                     (default mingetty))
   (tty              mingetty-configuration-tty)     ;string
   (auto-login       mingetty-auto-login             ;string | #f
@@ -1112,9 +1140,9 @@ the tty to run, among other things."
   ;; TODO: See nscd.conf in glibc for other options to add.
   (caches     nscd-configuration-caches           ;list of <nscd-cache>
               (default %nscd-default-caches))
-  (name-services nscd-configuration-name-services ;list of <packages>
+  (name-services nscd-configuration-name-services ;list of file-like
                  (default '()))
-  (glibc      nscd-configuration-glibc            ;<package>
+  (glibc      nscd-configuration-glibc            ;file-like
               (default glibc)))
 
 (define-record-type* <nscd-cache> nscd-cache make-nscd-cache
@@ -1513,7 +1541,7 @@ archive' public keys, with GUIX."
 (define-record-type* <guix-configuration>
   guix-configuration make-guix-configuration
   guix-configuration?
-  (guix             guix-configuration-guix       ;<package>
+  (guix             guix-configuration-guix       ;file-like
                     (default guix))
   (build-group      guix-configuration-build-group ;string
                     (default "guixbuild"))
@@ -1766,7 +1794,7 @@ proxy of 'guix-daemon'...~%")
 (define-record-type* <guix-publish-configuration>
   guix-publish-configuration make-guix-publish-configuration
   guix-publish-configuration?
-  (guix    guix-publish-configuration-guix        ;package
+  (guix    guix-publish-configuration-guix        ;file-like
            (default guix))
   (port    guix-publish-configuration-port        ;number
            (default 80))
@@ -1921,9 +1949,9 @@ command that allows you to share pre-built binaries with others over HTTP.")))
 (define-record-type* <udev-configuration>
   udev-configuration make-udev-configuration
   udev-configuration?
-  (udev   udev-configuration-udev                 ;<package>
+  (udev   udev-configuration-udev                 ;file-like
           (default eudev))
-  (rules  udev-configuration-rules                ;list of <package>
+  (rules  udev-configuration-rules                ;list of file-like
           (default '())))
 
 (define (udev-rules-union packages)
@@ -2146,62 +2174,98 @@ instance."
                               udev-service-type udev-extension))))))
     (service type #f)))
 
+(define (swap-space->shepherd-service-name space)
+  (let ((target (swap-space-target space)))
+    (symbol-append 'swap-
+                   (string->symbol
+                    (cond ((uuid? target)
+                           (uuid->string target))
+                          ((file-system-label? target)
+                           (file-system-label->string target))
+                          (else
+                           target))))))
+
+; TODO Remove after deprecation
+(define (swap-deprecated->shepherd-service-name sdep)
+  (symbol-append 'swap-
+                 (string->symbol
+                  (cond ((uuid? sdep)
+                         (string-take (uuid->string sdep) 6))
+                        ((file-system-label? sdep)
+                         (file-system-label->string sdep))
+                        (else
+                         sdep)))))
+
+(define swap->shepherd-service-name
+  (match-lambda ((? swap-space? space)
+                 (swap-space->shepherd-service-name space))
+                (sdep
+                 (swap-deprecated->shepherd-service-name sdep))))
+
 (define swap-service-type
   (shepherd-service-type
    'swap
-   (lambda (device)
-     (define requirement
-       (if (and (string? device)
-                (string-prefix? "/dev/mapper/" device))
-           (list (symbol-append 'device-mapping-
-                                (string->symbol (basename device))))
-           '()))
-
-     (define (device-lookup device)
+   (lambda (swap)
+     (define requirements
+       (cond ((swap-space? swap)
+              (map dependency->shepherd-service-name
+                   (swap-space-dependencies swap)))
+             ; TODO Remove after deprecation
+             ((and (string? swap) (string-prefix? "/dev/mapper/" swap))
+              (list (symbol-append 'device-mapping-
+                                   (string->symbol (basename swap)))))
+             (else
+              '())))
+
+     (define device-lookup
        ;; The generic 'find-partition' procedures could return a partition
        ;; that's not swap space, but that's unlikely.
-       (cond ((uuid? device)
-              #~(find-partition-by-uuid #$(uuid-bytevector device)))
-             ((file-system-label? device)
+       (cond ((swap-space? swap)
+              (let ((target (swap-space-target swap)))
+                (cond ((uuid? target)
+                       #~(find-partition-by-uuid #$(uuid-bytevector target)))
+                      ((file-system-label? target)
+                       #~(find-partition-by-label
+                          #$(file-system-label->string target)))
+                      (else
+                       target))))
+             ; TODO Remove after deprecation
+             ((uuid? swap)
+              #~(find-partition-by-uuid #$(uuid-bytevector swap)))
+             ((file-system-label? swap)
               #~(find-partition-by-label
-                 #$(file-system-label->string device)))
+                 #$(file-system-label->string swap)))
              (else
-              device)))
-
-     (define service-name
-       (symbol-append 'swap-
-                      (string->symbol
-                       (cond ((uuid? device)
-                              (string-take (uuid->string device) 6))
-                             ((file-system-label? device)
-                              (file-system-label->string device))
-                             (else
-                              device)))))
+              swap)))
 
      (with-imported-modules (source-module-closure '((gnu build file-systems)))
        (shepherd-service
-        (provision (list service-name))
-        (requirement `(udev ,@requirement))
-        (documentation "Enable the given swap device.")
+        (provision (list (swap->shepherd-service-name swap)))
+        (requirement `(udev ,@requirements))
+        (documentation "Enable the given swap space.")
         (modules `((gnu build file-systems)
                    ,@%default-modules))
         (start #~(lambda ()
-                   (let ((device #$(device-lookup device)))
+                   (let ((device #$device-lookup))
                      (and device
                           (begin
-                            (restart-on-EINTR (swapon device))
+                            (restart-on-EINTR (swapon device
+                                                      #$(if (swap-space? swap)
+                                                            (swap-space->flags-bit-mask
+                                                             swap)
+                                                            0)))
                             #t)))))
         (stop #~(lambda _
-                  (let ((device #$(device-lookup device)))
+                  (let ((device #$device-lookup))
                     (when device
                       (restart-on-EINTR (swapoff device)))
                     #f)))
         (respawn? #f))))
    (description "Turn on the virtual memory swap area.")))
 
-(define (swap-service device)
-  "Return a service that uses @var{device} as a swap device."
-  (service swap-service-type device))
+(define (swap-service swap)
+  "Return a service that uses @var{swap} as a swap space."
+  (service swap-service-type swap))
 
 (define %default-gpm-options
   ;; Default options for GPM.
@@ -2209,7 +2273,7 @@ instance."
 
 (define-record-type* <gpm-configuration>
   gpm-configuration make-gpm-configuration gpm-configuration?
-  (gpm      gpm-configuration-gpm                 ;package
+  (gpm      gpm-configuration-gpm                 ;file-like
             (default gpm))
   (options  gpm-configuration-options             ;list of strings
             (default %default-gpm-options)))
@@ -2315,72 +2379,267 @@ notably to select, copy, and paste text.  The default options use the
    (description "Start the @command{kmscon} virtual terminal emulator for the
 Linux @dfn{kernel mode setting} (KMS).")))
 
+
+;;;
+;;; Static networking.
+;;;
+
+(define (ipv6-address? str)
+  "Return true if STR denotes an IPv6 address."
+  (false-if-exception (->bool (inet-pton AF_INET6 str))))
+
 (define-record-type* <static-networking>
   static-networking make-static-networking
   static-networking?
-  (interface static-networking-interface)
-  (ip static-networking-ip)
-  (netmask static-networking-netmask
-           (default #f))
-  (gateway static-networking-gateway              ;FIXME: doesn't belong here
-           (default #f))
+  (addresses static-networking-addresses)         ;list of <network-address>
+  (links     static-networking-links (default '())) ;list of <network-link>
+  (routes    static-networking-routes (default '())) ;list of <network-routes>
   (provision static-networking-provision
-             (default #f))
+             (default '(networking)))
   (requirement static-networking-requirement
-               (default '()))
+               (default '(udev)))
   (name-servers static-networking-name-servers    ;FIXME: doesn't belong here
                 (default '())))
 
-(define static-networking-shepherd-service
+(define-record-type* <network-address>
+  network-address make-network-address
+  network-address?
+  (device    network-address-device)              ;string--e.g., "en01"
+  (value     network-address-value)               ;string--CIDR notation
+  (ipv6?     network-address-ipv6?                ;Boolean
+             (thunked)
+             (default
+               (ipv6-address? (cidr->ip (network-address-value this-record))))))
+
+(define-record-type* <network-link>
+  network-link make-network-link
+  network-link?
+  (name      network-link-name)                   ;string--e.g, "v0p0"
+  (type      network-link-type)                   ;symbol--e.g.,'veth
+  (arguments network-link-arguments))             ;list
+
+(define-record-type* <network-route>
+  network-route make-network-route
+  network-route?
+  (destination network-route-destination)
+  (source      network-route-source (default #f))
+  (device      network-route-device (default #f))
+  (ipv6?       network-route-ipv6? (thunked)
+               (default
+                 (or (ipv6-address? (network-route-destination this-record))
+                     (and=> (network-route-gateway this-record)
+                            ipv6-address?))))
+  (gateway     network-route-gateway (default #f)))
+
+(define* (cidr->netmask str #:optional (family AF_INET))
+  "Given @var{str}, a string in CIDR notation (e.g., \"1.2.3.4/24\"), return
+the netmask as a string like \"255.255.255.0\"."
+  (match (string-split str #\/)
+    ((ip (= string->number bits))
+     (let ((mask (ash (- (expt 2 bits) 1)
+                      (- (if (= family AF_INET6) 128 32)
+                         bits))))
+       (inet-ntop family mask)))
+    (_ #f)))
+
+(define (cidr->ip str)
+  "Strip the netmask bit of @var{str}, a CIDR-notation IP/netmask address."
+  (match (string-split str #\/)
+    ((or (ip _) (ip))
+     ip)))
+
+(define* (ip+netmask->cidr ip netmask #:optional (family AF_INET))
+  "Return the CIDR notation (a string) for @var{ip} and @var{netmask}, two
+@var{family} address strings, where @var{family} is @code{AF_INET} or
+@code{AF_INET6}."
+  (let* ((netmask (inet-pton family netmask))
+         (bits    (logcount netmask)))
+    (string-append ip "/" (number->string bits))))
+
+(define (static-networking->hurd-pfinet-options config)
+  "Return command-line options for the Hurd's pfinet translator corresponding
+to CONFIG."
+  (unless (null? (static-networking-links config))
+    ;; XXX: Presumably this is not supported, or perhaps could be approximated
+    ;; by running separate pfinet instances in some cases?
+    (warning (G_ "network links are currently ignored on GNU/Hurd~%")))
+
+  (match (static-networking-addresses config)
+    ((and addresses (first _ ...))
+     `("--ipv6" "/servers/socket/26"
+       "--interface" ,(network-address-device first)
+       ,@(append-map (lambda (address)
+                       `(,(if (network-address-ipv6? address)
+                              "--address6"
+                              "--address")
+                         ,(cidr->ip (network-address-value address))
+                         ,@(match (cidr->netmask (network-address-value address)
+                                                 (if (network-address-ipv6? address)
+                                                     AF_INET6
+                                                     AF_INET))
+                             (#f '())
+                             (mask (list "--netmask" mask)))))
+                     addresses)
+       ,@(append-map (lambda (route)
+                       (match route
+                         (($ <network-route> "default" #f device _ gateway)
+                          (if (network-route-ipv6? route)
+                              `("--gateway6" ,gateway)
+                              `("--gateway" ,gateway)))
+                         (($ <network-route> destination)
+                          (warning (G_ "ignoring network route for '~a'~%")
+                                   destination)
+                          '())))
+                     (static-networking-routes config))))))
+
+(define (network-set-up/hurd config)
+  "Set up networking for the Hurd."
+  ;; The Hurd implements SIOCGIFADDR and other old-style ioctls, but the only
+  ;; way to set up IPv6 is by starting pfinet with the right options.
+  (if (equal? (static-networking-provision config) '(loopback))
+      (scheme-file "set-up-pflocal" #~(begin 'nothing-to-do! #t))
+      (scheme-file "set-up-pfinet"
+                   (with-imported-modules '((guix build utils))
+                     #~(begin
+                         (use-modules (guix build utils)
+                                      (ice-9 format))
+
+                         ;; TODO: Do that without forking.
+                         (let ((options '#$(static-networking->hurd-pfinet-options
+                                            config)))
+                           (format #t "starting '~a~{ ~s~}'~%"
+                                   #$(file-append hurd "/hurd/pfinet")
+                                   options)
+                           (apply invoke #$(file-append hurd "/bin/settrans") "-fac"
+                                  "/servers/socket/2"
+                                  #$(file-append hurd "/hurd/pfinet")
+                                  options)))))))
+
+(define (network-tear-down/hurd config)
+  (scheme-file "tear-down-pfinet"
+               (with-imported-modules '((guix build utils))
+                 #~(begin
+                     (use-modules (guix build utils))
+
+                     ;; Forcefully terminate pfinet.  XXX: In theory this
+                     ;; should just undo the addresses and routes of CONFIG;
+                     ;; this could be done using ioctls like SIOCDELRT, but
+                     ;; these are IPv4-only; another option would be to use
+                     ;; fsysopts but that seems to crash pfinet.
+                     (invoke #$(file-append hurd "/bin/settrans") "-fg"
+                             "/servers/socket/2")
+                     #f))))
+
+(define network-set-up/linux
+  (match-lambda
+    (($ <static-networking> addresses links routes)
+     (scheme-file "set-up-network"
+                  (with-extensions (list guile-netlink)
+                    #~(begin
+                        (use-modules (ip addr) (ip link) (ip route))
+
+                        #$@(map (lambda (address)
+                                  #~(begin
+                                      (addr-add #$(network-address-device address)
+                                                #$(network-address-value address)
+                                                #:ipv6?
+                                                #$(network-address-ipv6? address))
+                                      ;; FIXME: loopback?
+                                      (link-set #$(network-address-device address)
+                                                #:up #t)))
+                                addresses)
+                        #$@(map (match-lambda
+                                  (($ <network-link> name type arguments)
+                                   #~(link-add #$name #$type
+                                               #:type-args '#$arguments)))
+                                links)
+                        #$@(map (lambda (route)
+                                  #~(route-add #$(network-route-destination route)
+                                               #:device
+                                               #$(network-route-device route)
+                                               #:ipv6?
+                                               #$(network-route-ipv6? route)
+                                               #:via
+                                               #$(network-route-gateway route)
+                                               #:src
+                                               #$(network-route-source route)))
+                                routes)
+                        #t))))))
+
+(define network-tear-down/linux
   (match-lambda
-    (($ <static-networking> interface ip netmask gateway provision
-                            requirement name-servers)
+    (($ <static-networking> addresses links routes)
+     (scheme-file "tear-down-network"
+                  (with-extensions (list guile-netlink)
+                    #~(begin
+                        (use-modules (ip addr) (ip link) (ip route)
+                                     (netlink error)
+                                     (srfi srfi-34))
+
+                        (define-syntax-rule (false-if-netlink-error exp)
+                          (guard (c ((netlink-error? c) #f))
+                            exp))
+
+                        ;; Wrap calls in 'false-if-netlink-error' so this
+                        ;; script goes as far as possible undoing the effects
+                        ;; of "set-up-network".
+
+                        #$@(map (lambda (route)
+                                  #~(false-if-netlink-error
+                                     (route-del #$(network-route-destination route)
+                                                #:device
+                                                #$(network-route-device route)
+                                                #:ipv6?
+                                                #$(network-route-ipv6? route)
+                                                #:via
+                                                #$(network-route-gateway route)
+                                                #:src
+                                                #$(network-route-source route))))
+                                routes)
+                        #$@(map (match-lambda
+                                  (($ <network-link> name type arguments)
+                                   #~(false-if-netlink-error
+                                      (link-del #$name))))
+                                links)
+                        #$@(map (lambda (address)
+                                  #~(false-if-netlink-error
+                                     (addr-del #$(network-address-device
+                                                  address)
+                                               #$(network-address-value address)
+                                               #:ipv6?
+                                               #$(network-address-ipv6? address))))
+                                addresses)
+                        #f))))))
+
+(define (static-networking-shepherd-service config)
+  (match config
+    (($ <static-networking> addresses links routes
+                            provision requirement name-servers)
      (let ((loopback? (and provision (memq 'loopback provision))))
        (shepherd-service
 
         (documentation
          "Bring up the networking interface using a static IP address.")
         (requirement requirement)
-        (provision (or provision
-                       (list (symbol-append 'networking-
-                                            (string->symbol interface)))))
+        (provision provision)
 
         (start #~(lambda _
                    ;; Return #t if successfully started.
-                   (let* ((addr     (inet-pton AF_INET #$ip))
-                          (sockaddr (make-socket-address AF_INET addr 0))
-                          (mask     (and #$netmask
-                                         (inet-pton AF_INET #$netmask)))
-                          (maskaddr (and mask
-                                         (make-socket-address AF_INET
-                                                              mask 0)))
-                          (gateway  (and #$gateway
-                                         (inet-pton AF_INET #$gateway)))
-                          (gatewayaddr (and gateway
-                                            (make-socket-address AF_INET
-                                                                 gateway 0))))
-                     (configure-network-interface #$interface sockaddr
-                                                  (logior IFF_UP
-                                                          #$(if loopback?
-                                                                #~IFF_LOOPBACK
-                                                                0))
-                                                  #:netmask maskaddr)
-                     (when gateway
-                       (let ((sock (socket AF_INET SOCK_DGRAM 0)))
-                         (add-network-route/gateway sock gatewayaddr)
-                         (close-port sock))))))
+                   (load #$(let-system (system target)
+                             (if (string-contains (or target system) "-linux")
+                                 (network-set-up/linux config)
+                                 (network-set-up/hurd config))))))
         (stop #~(lambda _
                   ;; Return #f is successfully stopped.
-                  (let ((sock (socket AF_INET SOCK_STREAM 0)))
-                    (when #$gateway
-                      (delete-network-route sock
-                                            (make-socket-address
-                                             AF_INET INADDR_ANY 0)))
-                    (set-network-interface-flags sock #$interface 0)
-                    (close-port sock)
-                    #f)))
+                  (load #$(let-system (system target)
+                            (if (string-contains (or target system) "-linux")
+                                (network-tear-down/linux config)
+                                (network-tear-down/hurd config))))))
         (respawn? #f))))))
 
+(define (static-networking-shepherd-services networks)
+  (map static-networking-shepherd-service networks))
+
 (define (static-networking-etc-files interfaces)
   "Return a /etc/resolv.conf entry for INTERFACES or the empty list."
   (match (delete-duplicates
@@ -2399,30 +2658,6 @@ Linux @dfn{kernel mode setting} (KMS).")))
 # Generated by 'static-networking-service'.\n"
                                       content))))))))
 
-(define (static-networking-shepherd-services interfaces)
-  "Return the list of Shepherd services to bring up INTERFACES, a list of
-<static-networking> objects."
-  (define (loopback? service)
-    (memq 'loopback (shepherd-service-provision service)))
-
-  (let ((services (map static-networking-shepherd-service interfaces)))
-    (match (remove loopback? services)
-      (()
-       ;; There's no interface other than 'loopback', so we assume that the
-       ;; 'networking' service will be provided by dhclient or similar.
-       services)
-      ((non-loopback ...)
-       ;; Assume we're providing all the interfaces, and thus, provide a
-       ;; 'networking' service.
-       (cons (shepherd-service
-              (provision '(networking))
-              (requirement (append-map shepherd-service-provision
-                                       services))
-              (start #~(const #t))
-              (stop #~(const #f))
-              (documentation "Bring up all the networking interfaces."))
-             services)))))
-
 (define static-networking-service-type
   ;; The service type for statically-defined network interfaces.
   (service-type (name 'static-networking)
@@ -2440,12 +2675,13 @@ with the given IP address, gateway, netmask, and so on.  The value for
 services of this type is a list of @code{static-networking} objects, one per
 network interface.")))
 
-(define* (static-networking-service interface ip
-                                    #:key
-                                    netmask gateway provision
-                                    ;; Most interfaces require udev to be usable.
-                                    (requirement '(udev))
-                                    (name-servers '()))
+(define-deprecated (static-networking-service interface ip
+                                              #:key
+                                              netmask gateway provision
+                                              ;; Most interfaces require udev to be usable.
+                                              (requirement '(udev))
+                                              (name-servers '()))
+  static-networking-service-type
   "Return a service that starts @var{interface} with address @var{ip}.  If
 @var{netmask} is true, use it as the network mask.  If @var{gateway} is true,
 it must be a string specifying the default network gateway.
@@ -2456,11 +2692,47 @@ interface of interest.  Behind the scenes what it does is extend
 to handle."
   (simple-service 'static-network-interface
                   static-networking-service-type
-                  (list (static-networking (interface interface) (ip ip)
-                                           (netmask netmask) (gateway gateway)
-                                           (provision provision)
-                                           (requirement requirement)
-                                           (name-servers name-servers)))))
+                  (list (static-networking
+                         (addresses
+                          (list (network-address
+                                 (device interface)
+                                 (value (if netmask
+                                            (ip+netmask->cidr ip netmask)
+                                            ip))
+                                 (ipv6? #f))))
+                         (routes
+                          (if gateway
+                              (list (network-route
+                                     (destination "default")
+                                     (gateway gateway)
+                                     (ipv6? #f)))
+                              '()))
+                         (requirement requirement)
+                         (provision (or provision '(networking)))
+                         (name-servers name-servers)))))
+
+(define %loopback-static-networking
+  ;; The loopback device.
+  (static-networking
+   (addresses (list (network-address
+                     (device "lo")
+                     (value "127.0.0.1"))))
+   (requirement '())
+   (provision '(loopback))))
+
+(define %qemu-static-networking
+  ;; Networking configuration for QEMU's user-mode network stack (info "(QEMU)
+  ;; Using the user mode network stack").
+  (static-networking
+   (addresses (list (network-address
+                     (device "eth0")
+                     (value "10.0.2.15/24"))))
+   (routes (list (network-route
+                  (destination "default")
+                  (gateway "10.0.2.2"))))
+   (requirement '())
+   (provision '(networking))
+   (name-servers '("10.0.2.3"))))
 
 
 (define %base-services
@@ -2492,10 +2764,7 @@ to handle."
                                          (tty "tty6")))
 
         (service static-networking-service-type
-                 (list (static-networking (interface "lo")
-                                          (ip "127.0.0.1")
-                                          (requirement '())
-                                          (provision '(loopback)))))
+                 (list %loopback-static-networking))
         (syslog-service)
         (service urandom-seed-service-type)
         (service guix-service-type)
diff --git a/gnu/services/cgit.scm b/gnu/services/cgit.scm
index 94ca9e281a..bfc89a40a4 100644
--- a/gnu/services/cgit.scm
+++ b/gnu/services/cgit.scm
@@ -319,7 +319,7 @@ after this option will inherit the current section name.")
 ;; <repository-cgit-configuration>, <nginx-server-configuration>, <package>.
 (define-configuration cgit-configuration
   (package
-   (package cgit)
+   (file-like cgit)
    "The CGIT package.")
   (nginx
    (nginx-server-configuration-list (list %cgit-configuration-nginx))
@@ -673,7 +673,7 @@ for cgit to allow access to that repository.")
 
 (define-configuration opaque-cgit-configuration
   (cgit
-   (package cgit)
+   (file-like cgit)
    "The cgit package.")
   (cgitrc
    (string (configuration-missing-field 'opaque-cgit-configuration 'cgitrc))
diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm
index df3d3b6f9b..0de350a4df 100644
--- a/gnu/services/configuration.scm
+++ b/gnu/services/configuration.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,10 +26,12 @@
   #:use-module (guix records)
   #:use-module (guix gexp)
   #:use-module ((guix utils) #:select (source-properties->location))
-  #:use-module ((guix diagnostics) #:select (location-file))
+  #:use-module ((guix diagnostics) #:select (formatted-message location-file))
   #:use-module ((guix modules) #:select (file-name->module-name))
+  #:use-module (guix i18n)
   #:autoload   (texinfo) (texi-fragment->stexi)
   #:autoload   (texinfo serialize) (stexi->texi)
+  #:use-module (ice-9 curried-definitions)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-34)
@@ -56,7 +59,20 @@
             generate-documentation
             configuration->documentation
             empty-serializer
-            serialize-package))
+            serialize-package
+
+            filter-configuration-fields
+
+            interpose
+            list-of
+
+            list-of-strings?
+            alist?
+            serialize-file-like
+            text-config?
+            serialize-text-config
+            generic-serialize-alist-entry
+            generic-serialize-alist))
 
 ;;; Commentary:
 ;;;
@@ -323,3 +339,79 @@ Texinfo documentation of its fields."
                                                   '-fields))))
     (display (generate-documentation `((,configuration-symbol ,fields-getter))
                                      configuration-symbol))))
+
+(define* (filter-configuration-fields configuration-fields fields
+                                      #:optional negate?)
+  "Retrieve the fields listed in FIELDS from CONFIGURATION-FIELDS.
+If NEGATE? is @code{#t}, retrieve all fields except FIELDS."
+  (filter (lambda (field)
+            (let ((member? (member (configuration-field-name field) fields)))
+              (if (not negate?) member? (not member?))))
+          configuration-fields))
+
+
+(define* (interpose ls  #:optional (delimiter "\n") (grammar 'infix))
+  "Same as @code{string-join}, but without join and string, returns an
+DELIMITER interposed LS.  Support 'infix and 'suffix GRAMMAR values."
+  (when (not (member grammar '(infix suffix)))
+    (raise
+     (formatted-message
+      (G_ "The GRAMMAR value must be 'infix or 'suffix, but ~a provided.")
+      grammar)))
+  (fold-right (lambda (e acc)
+                (cons e
+                      (if (and (null? acc) (eq? grammar 'infix))
+                          acc
+                          (cons delimiter acc))))
+              '() ls))
+
+(define (list-of pred?)
+  "Return a procedure that takes a list and check if all the elements of
+the list result in @code{#t} when applying PRED? on them."
+    (lambda (x)
+      (if (list? x)
+          (every pred? x)
+          #f)))
+
+
+(define list-of-strings?
+  (list-of string?))
+
+(define alist? list?)
+
+(define serialize-file-like empty-serializer)
+
+(define (text-config? config)
+  (list-of file-like?))
+(define (serialize-text-config field-name val)
+  #~(string-append
+     #$@(interpose
+         (map
+          (lambda (e)
+            #~(begin
+                (use-modules (ice-9 rdelim))
+                (with-fluids ((%default-port-encoding "UTF-8"))
+                  (with-input-from-file #$e read-string))))
+          val)
+         "\n" 'suffix)))
+
+(define ((generic-serialize-alist-entry serialize-field) entry)
+  "Apply the SERIALIZE-FIELD procedure on the field and value of ENTRY."
+  (match entry
+    ((field . val) (serialize-field field val))))
+
+(define (generic-serialize-alist combine serialize-field fields)
+  "Generate a configuration from an association list FIELDS.
+
+SERIALIZE-FIELD is a procedure that takes two arguments, it will be
+applied on the fields and values of FIELDS using the
+@code{generic-serialize-alist-entry} procedure.
+
+COMBINE is a procedure that takes one or more arguments and combines
+all the alist entries into one value, @code{string-append} or
+@code{append} are usually good candidates for this.
+
+See the @code{serialize-alist} procedure in `@code{(gnu home services
+version-control}' for an example usage.)}"
+  (apply combine
+         (map (generic-serialize-alist-entry serialize-field) fields)))
diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm
index 83e63fe79c..96f28a9670 100644
--- a/gnu/services/cuirass.scm
+++ b/gnu/services/cuirass.scm
@@ -58,7 +58,7 @@
 ;;;; Code:
 
 (define %cuirass-default-database
-  "dbname=cuirass host=/tmp")
+  "dbname=cuirass")
 
 (define-record-type* <cuirass-remote-server-configuration>
   cuirass-remote-server-configuration make-cuirass-remote-server-configuration
@@ -85,7 +85,7 @@
 (define-record-type* <cuirass-configuration>
   cuirass-configuration make-cuirass-configuration
   cuirass-configuration?
-  (cuirass          cuirass-configuration-cuirass ;package
+  (cuirass          cuirass-configuration-cuirass ;file-like
                     (default cuirass))
   (log-file         cuirass-configuration-log-file ;string
                     (default "/var/log/cuirass.log"))
@@ -327,7 +327,7 @@
 (define-record-type* <cuirass-remote-worker-configuration>
   cuirass-remote-worker-configuration make-cuirass-remote-worker-configuration
   cuirass-remote-worker-configuration?
-  (cuirass          cuirass-remote-worker-configuration-cuirass ;package
+  (cuirass          cuirass-remote-worker-configuration-cuirass ;file-like
                     (default cuirass))
   (workers          cuirass-remote-worker-workers ;int
                     (default 1))
diff --git a/gnu/services/cups.scm b/gnu/services/cups.scm
index 3caa954579..2e86845e51 100644
--- a/gnu/services/cups.scm
+++ b/gnu/services/cups.scm
@@ -485,13 +485,13 @@ programs.")
     (serialize-space-separated-string-list field-name vars)))
 
 (define (package-list? val)
-  (and (list? val) (and-map package? val)))
+  (and (list? val) (and-map file-like? val)))
 (define (serialize-package-list field-name val)
   #f)
 
 (define-configuration cups-configuration
   (cups
-   (package cups)
+   (file-like cups)
    "The CUPS package.")
   (extensions
    (package-list (list brlaser cups-filters epson-inkjet-printer-escpr
@@ -705,7 +705,7 @@ in seconds.  Set to 0 to disable cancellation of \"stuck\" jobs.")
    "Specifies the maximum size of the log files before they are rotated, in
 bytes.  The value 0 disables log rotation.")
   (multiple-operation-timeout
-   (non-negative-integer 300)
+   (non-negative-integer 900)
    "Specifies the maximum amount of time to allow between files in a multiple
 file print job, in seconds.")
   (page-log-format
@@ -850,7 +850,7 @@ protocol version to TLS v1.1.")
    "Specifies whether the scheduler requires clients to strictly adhere to the
 IPP specifications.")
   (timeout
-   (non-negative-integer 300)
+   (non-negative-integer 900)
    "Specifies the HTTP request timeout, in seconds.")
   (web-interface?
    (boolean #f)
diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm
index eba88cdb68..39225a4bd6 100644
--- a/gnu/services/databases.scm
+++ b/gnu/services/databases.scm
@@ -116,7 +116,7 @@ host	all	all	::1/128 	md5"))
   (ident-file        postgresql-config-file-ident-file
                      (default %default-postgres-ident))
   (socket-directory  postgresql-config-file-socket-directory
-                     (default #false))
+                     (default "/var/run/postgresql"))
   (extra-config      postgresql-config-file-extra-config
                      (default '())))
 
@@ -164,7 +164,7 @@ host	all	all	::1/128 	md5"))
 (define-record-type* <postgresql-configuration>
   postgresql-configuration make-postgresql-configuration
   postgresql-configuration?
-  (postgresql         postgresql-configuration-postgresql) ;<package>
+  (postgresql         postgresql-configuration-postgresql) ;file-like
   (port               postgresql-configuration-port
                       (default 5432))
   (locale             postgresql-configuration-locale
@@ -364,7 +364,7 @@ and stores the database cluster in @var{data-directory}."
   postgresql-role-configuration make-postgresql-role-configuration
   postgresql-role-configuration?
   (host             postgresql-role-configuration-host ;string
-                    (default "/tmp"))
+                    (default "/var/run/postgresql"))
   (log              postgresql-role-configuration-log ;string
                     (default "/var/log/postgresql_roles.log"))
   (roles            postgresql-role-configuration-roles
@@ -448,7 +448,7 @@ created after the PostgreSQL database is started.")))
 (define-record-type* <memcached-configuration>
   memcached-configuration make-memcached-configuration
   memcached-configuration?
-  (memcached          memcached-configuration-memcached ;<package>
+  (memcached          memcached-configuration-memcached ;file-like
                       (default memcached))
   (interfaces         memcached-configuration-interfaces
                       (default '("0.0.0.0")))
@@ -693,7 +693,7 @@ FLUSH PRIVILEGES;
 (define-record-type* <redis-configuration>
   redis-configuration make-redis-configuration
   redis-configuration?
-  (redis             redis-configuration-redis ;<package>
+  (redis             redis-configuration-redis ;file-like
                      (default redis))
   (bind              redis-configuration-bind
                      (default "127.0.0.1"))
diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm
index e7b3dac166..85a4c3ec9a 100644
--- a/gnu/services/dbus.scm
+++ b/gnu/services/dbus.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
@@ -50,7 +50,7 @@
 (define-record-type* <dbus-configuration>
   dbus-configuration make-dbus-configuration
   dbus-configuration?
-  (dbus      dbus-configuration-dbus              ;<package>
+  (dbus      dbus-configuration-dbus              ;file-like
              (default dbus))
   (services  dbus-configuration-services          ;list of <package>
              (default '())))
@@ -300,11 +300,20 @@ tuples, are all set as environment variables when the bus daemon launches it."
 (define-record-type* <polkit-configuration>
   polkit-configuration make-polkit-configuration
   polkit-configuration?
-  (polkit   polkit-configuration-polkit           ;<package>
-            (default polkit))
-  (actions  polkit-configuration-actions          ;list of <package>
+  (polkit   polkit-configuration-polkit           ;file-like
+            (default %default-polkit))
+  (actions  polkit-configuration-actions          ;list of file-like
             (default '())))
 
+(define %default-polkit
+  ;; The default polkit package.
+  (let-system (system target)
+    ;; Since mozjs depends on Rust, which is currently x86_64-only, use
+    ;; polkit-duktape on other systems.
+    (if (string-prefix? "x86_64-" (or target system))
+        polkit-mozjs
+        polkit-duktape)))
+
 (define %polkit-accounts
   (list (user-group (name "polkitd") (system? #t))
         (user-account
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 64d0e85301..c6761ca784 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
@@ -40,6 +40,7 @@
   #:use-module (gnu services sound)
   #:use-module ((gnu system file-systems)
                 #:select (%elogind-file-systems file-system))
+  #:autoload   (gnu services sddm) (sddm-service-type)
   #:use-module (gnu system)
   #:use-module (gnu system setuid)
   #:use-module (gnu system shadow)
@@ -1021,7 +1022,7 @@ rules."
                         (use-modules (guix build utils))
                         (let ((directory "/tmp/.X11-unix"))
                           (mkdir-p directory)
-                          (chmod directory #o777))))))
+                          (chmod directory #o1777))))))
 
 ;;;
 ;;; Enlightenment desktop service.
@@ -1187,9 +1188,17 @@ or setting its password with passwd.")))
 ;;; The default set of desktop services.
 ;;;
 
-(define %desktop-services
+(define* (desktop-services-for-system #:optional
+                                      (system (or (%current-target-system)
+                                                  (%current-system))))
   ;; List of services typically useful for a "desktop" use case.
-  (cons* (service gdm-service-type)
+
+  ;; Since GDM depends on Rust (gdm -> gnome-shell -> gjs -> mozjs -> rust)
+  ;; and Rust is currently unavailable on non-x86_64 platforms, default to
+  ;; SDDM there (FIXME).
+  (cons* (if (string-prefix? "x86_64" system)
+             (service gdm-service-type)
+             (service sddm-service-type))
 
          ;; Screen lockers are a pretty useful thing and these are small.
          (screen-locker-service slock)
@@ -1248,4 +1257,7 @@ or setting its password with passwd.")))
 
          %base-services))
 
+(define-syntax %desktop-services
+  (identifier-syntax (desktop-services-for-system)))
+
 ;;; desktop.scm ends here
diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
index aeb2bfdc86..9b8603cc95 100644
--- a/gnu/services/dns.scm
+++ b/gnu/services/dns.scm
@@ -185,8 +185,6 @@
                      (default '()))
   (semantic-checks?  knot-zone-configuration-semantic-checks?
                      (default #f))
-  (disable-any?      knot-zone-configuration-disable-any?
-                     (default #f))
   (zonefile-sync     knot-zone-configuration-zonefile-sync
                      (default 0))
   (zonefile-load     knot-zone-configuration-zonefile-load
@@ -310,8 +308,8 @@
       (error-out "remote id must be a non empty string."))))
 
 (define (verify-knot-configuration config)
-  (unless (package? (knot-configuration-knot config))
-    (error-out "knot configuration field must be a package."))
+  (unless (file-like? (knot-configuration-knot config))
+    (error-out "knot configuration field must be a file-like object."))
   (unless (string? (knot-configuration-run-directory config))
     (error-out "run-directory must be a string."))
   (unless (list? (knot-configuration-includes config))
@@ -509,7 +507,6 @@
                 (notify (list #$@(knot-zone-configuration-notify zone)))
                 (acl (list #$@(knot-zone-configuration-acl zone)))
                 (semantic-checks? #$(knot-zone-configuration-semantic-checks? zone))
-                (disable-any? #$(knot-zone-configuration-disable-any? zone))
                 (zonefile-sync #$(knot-zone-configuration-zonefile-sync zone))
                 (zonefile-load '#$(knot-zone-configuration-zonefile-load zone))
                 (journal-content #$(knot-zone-configuration-journal-content zone))
@@ -541,7 +538,6 @@
                       #$(format-string-list
                           (knot-zone-configuration-acl zone))))
             (format #t "      semantic-checks: ~a\n" (if semantic-checks? "on" "off"))
-            (format #t "      disable-any: ~a\n" (if disable-any? "on" "off"))
             (if zonefile-sync
               (format #t "      zonefile-sync: ~a\n" zonefile-sync))
             (if zonefile-load
@@ -736,7 +732,7 @@ cache.size = 100 * MB
   dnsmasq-configuration make-dnsmasq-configuration
   dnsmasq-configuration?
   (package          dnsmasq-configuration-package
-                    (default dnsmasq))  ;package
+                    (default dnsmasq))  ;file-like
   (no-hosts?        dnsmasq-configuration-no-hosts?
                     (default #f))       ;boolean
   (port             dnsmasq-configuration-port
@@ -909,7 +905,7 @@ cache.size = 100 * MB
 
 (define-configuration ddclient-configuration
   (ddclient
-   (package ddclient)
+   (file-like ddclient)
    "The ddclient package.")
   (daemon
    (integer 300)
diff --git a/gnu/services/docker.scm b/gnu/services/docker.scm
index ef551480aa..846ebe8334 100644
--- a/gnu/services/docker.scm
+++ b/gnu/services/docker.scm
@@ -41,16 +41,16 @@
 
 (define-configuration docker-configuration
   (docker
-   (package docker)
+   (file-like docker)
    "Docker daemon package.")
   (docker-cli
-   (package docker-cli)
+   (file-like docker-cli)
    "Docker client package.")
   (containerd
-   (package containerd)
+   (file-like containerd)
    "containerd package.")
   (proxy
-   (package docker-libnetwork-cmd-proxy)
+   (file-like docker-libnetwork-cmd-proxy)
    "The proxy package to support inter-container and outside-container
 loop-back communications.")
   (enable-proxy?
@@ -62,6 +62,9 @@ loop-back communications.")
   (enable-iptables?
    (boolean #t)
    "Enable addition of iptables rules (enabled by default).")
+  (environment-variables
+   (list '())
+   "Environment variables to set for dockerd")
   (no-serialization))
 
 (define %docker-accounts
@@ -102,6 +105,7 @@ loop-back communications.")
   (let* ((docker (docker-configuration-docker config))
          (enable-proxy? (docker-configuration-enable-proxy? config))
          (enable-iptables? (docker-configuration-enable-iptables? config))
+         (environment-variables (docker-configuration-environment-variables config))
          (proxy (docker-configuration-proxy config))
          (debug? (docker-configuration-debug? config)))
     (shepherd-service
@@ -132,6 +136,8 @@ loop-back communications.")
                            (if #$enable-iptables?
                                "--iptables"
                                "--iptables=false"))
+                     #:environment-variables
+                     (list #$@environment-variables)
                      #:pid-file "/var/run/docker.pid"
                      #:log-file "/var/log/docker.log"))
            (stop #~(make-kill-destructor)))))
diff --git a/gnu/services/file-sharing.scm b/gnu/services/file-sharing.scm
index 72cd6478d6..e3d681b08f 100644
--- a/gnu/services/file-sharing.scm
+++ b/gnu/services/file-sharing.scm
@@ -259,7 +259,7 @@ type generated and used by Transmission clients, suitable for passing to the
 (define-configuration transmission-daemon-configuration
   ;; Settings internal to this service definition.
   (transmission
-   (package transmission)
+   (file-like transmission)
    "The Transmission package to use.")
   (stop-wait-period
    (non-negative-integer 10)
diff --git a/gnu/services/ganeti.scm b/gnu/services/ganeti.scm
index 0a34ea6a5e..85adbd7362 100644
--- a/gnu/services/ganeti.scm
+++ b/gnu/services/ganeti.scm
@@ -190,7 +190,7 @@
 (define-record-type* <ganeti-noded-configuration>
   ganeti-noded-configuration make-ganeti-noded-configuration
   ganeti-noded-configuration?
-  (ganeti      ganeti-noded-configuration-ganeti        ;<package>
+  (ganeti      ganeti-noded-configuration-ganeti        ;file-like
                (default ganeti))
   (port        ganeti-noded-configuration-port          ;integer
                (default 1811))
@@ -256,7 +256,7 @@ for the node functions in the Ganeti system.")))
 (define-record-type* <ganeti-confd-configuration>
   ganeti-confd-configuration make-ganeti-confd-configuration
   ganeti-confd-configuration?
-  (ganeti      ganeti-confd-configuration-ganeti        ;<package>
+  (ganeti      ganeti-confd-configuration-ganeti        ;file-like
                (default ganeti))
   (port        ganeti-confd-configuration-port          ;integer
                (default 1814))
@@ -298,7 +298,7 @@ related to the configuration of a Ganeti cluster.")))
 (define-record-type* <ganeti-wconfd-configuration>
   ganeti-wconfd-configuration make-ganeti-wconfd-configuration
   ganeti-wconfd-configuration?
-  (ganeti      ganeti-wconfd-configuration-ganeti       ;<package>
+  (ganeti      ganeti-wconfd-configuration-ganeti       ;file-like
                (default ganeti))
   (no-voting?  ganeti-wconfd-configuration-no-voting?   ;Boolean
                (default #f))
@@ -389,7 +389,7 @@ appropriate requests to this daemon.")))
 (define-record-type* <ganeti-luxid-configuration>
   ganeti-luxid-configuration make-ganeti-luxid-configuration
   ganeti-luxid-configuration?
-  (ganeti      ganeti-luxid-configuration-ganeti        ;<package>
+  (ganeti      ganeti-luxid-configuration-ganeti        ;file-like
                (default ganeti))
   (no-voting?  ganeti-luxid-configuration-no-voting?    ;Boolean
                (default #f))
@@ -436,7 +436,7 @@ be submitted via this daemon and it schedules and starts them.")))
 (define-record-type* <ganeti-rapi-configuration>
   ganeti-rapi-configuration make-ganeti-rapi-configuration
   ganeti-rapi-configuration?
-  (ganeti      ganeti-rapi-configuration-ganeti         ;<package>
+  (ganeti      ganeti-rapi-configuration-ganeti         ;file-like
                (default ganeti))
   (require-authentication?
    ganeti-rapi-configuration-require-authentication?    ;Boolean
@@ -509,7 +509,7 @@ for Ganeti clusters.")))
 (define-record-type* <ganeti-kvmd-configuration>
   ganeti-kvmd-configuration make-ganeti-kvmd-configuration
   ganeti-kvmd-configuration?
-  (ganeti      ganeti-kvmd-configuration-ganeti         ;<package>
+  (ganeti      ganeti-kvmd-configuration-ganeti         ;file-like
                (default ganeti))
   (debug?      ganeti-kvmd-configuration-debug?         ;Boolean
                (default #f)))
@@ -555,7 +555,7 @@ communicated to Ganeti via a special file in the file system.")))
 (define-record-type* <ganeti-mond-configuration>
   ganeti-mond-configuration make-ganeti-mond-configuration
   ganeti-mond-configuration?
-  (ganeti      ganeti-mond-configuration-ganeti         ;<package>
+  (ganeti      ganeti-mond-configuration-ganeti         ;file-like
                (default ganeti))
   (port        ganeti-mond-configuration-port           ;integer
                (default 1815))
@@ -596,7 +596,7 @@ provide the collected information through a HTTP interface.")))
 (define-record-type* <ganeti-metad-configuration>
   ganeti-metad-configuration make-ganeti-metad-configuration
   ganeti-metad-configuration?
-  (ganeti      ganeti-metad-configuration-ganeti        ;<package>
+  (ganeti      ganeti-metad-configuration-ganeti        ;file-like
                (default ganeti))
   (port        ganeti-metad-configuration-port          ;integer
                (default 80))
@@ -612,7 +612,11 @@ provide the collected information through a HTTP interface.")))
             (documentation "Run the Ganeti metadata daemon.")
             (provision '(ganeti-metad))
             (requirement '(user-processes networking))
+
+            ;; This service is started on demand.
+            (auto-start? #f)
             (respawn? #f)
+
             (start #~(make-forkexec-constructor
                       (list #$(file-append ganeti "/sbin/ganeti-metad")
                             #$(string-append "--port=" (number->string port))
@@ -638,7 +642,7 @@ information to OS install scripts or instances.")))
 (define-record-type* <ganeti-watcher-configuration>
   ganeti-watcher-configuration make-ganeti-watcher-configuration
   ganeti-watcher-configuration?
-  (ganeti        ganeti-watcher-configuration-ganeti        ;<package>
+  (ganeti        ganeti-watcher-configuration-ganeti        ;file-like
                  (default ganeti))
   (schedule      ganeti-watcher-configuration-schedule      ;list | string
                  (default '(next-second-from
@@ -701,7 +705,7 @@ is declared offline by known master candidates.")))
 (define-record-type* <ganeti-cleaner-configuration>
   ganeti-cleaner-configuration make-ganeti-cleaner-configuration
   ganeti-cleaner-configuration?
-  (ganeti          ganeti-cleaner-configuration-ganeti          ;<package>
+  (ganeti          ganeti-cleaner-configuration-ganeti          ;file-like
                    (default ganeti))
   (master-schedule ganeti-cleaner-configuration-master-schedule ;list | string
                    ;; Run the master cleaner at 01:45 every day.
diff --git a/gnu/services/getmail.scm b/gnu/services/getmail.scm
index 933d820bc5..ce124f6b11 100644
--- a/gnu/services/getmail.scm
+++ b/gnu/services/getmail.scm
@@ -246,7 +246,7 @@ lines.")
    (symbol "unset")
    "A symbol to identify the getmail service.")
   (package
-   (package getmail)
+   (file-like getmail)
    "The getmail package to use.")
   (user
    (string "getmail")
diff --git a/gnu/services/hurd.scm b/gnu/services/hurd.scm
index 61d92b4bda..5cf37adeaf 100644
--- a/gnu/services/hurd.scm
+++ b/gnu/services/hurd.scm
@@ -42,7 +42,7 @@
 (define-record-type* <hurd-console-configuration>
   hurd-console-configuration make-hurd-console-configuration
   hurd-console-configuration?
-  (hurd   hurd-console-configuration-hurd ;package
+  (hurd   hurd-console-configuration-hurd ;file-like
           (default hurd)))
 
 (define (hurd-console-shepherd-service config)
@@ -80,7 +80,7 @@
 (define-record-type* <hurd-getty-configuration>
   hurd-getty-configuration make-hurd-getty-configuration
   hurd-getty-configuration?
-  (hurd       hurd-getty-configuration-hurd  ;<package>
+  (hurd       hurd-getty-configuration-hurd  ;file-like
               (default hurd))
   (tty        hurd-getty-configuration-tty)  ;string
   (baud-rate  hurd-getty-configuration-baud-rate
diff --git a/gnu/services/lirc.scm b/gnu/services/lirc.scm
index e95f54280d..1f5adcdd5f 100644
--- a/gnu/services/lirc.scm
+++ b/gnu/services/lirc.scm
@@ -38,7 +38,7 @@
 (define-record-type* <lirc-configuration>
   lirc-configuration make-lirc-configuration
   lirc-configuation?
-  (lirc          lirc-configuration-lirc          ;<package>
+  (lirc          lirc-configuration-lirc          ;file-like
                  (default lirc))
   (device        lirc-configuration-device)       ;string
   (driver        lirc-configuration-driver)       ;string
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index 72dc123f41..4ad6ddb534 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -498,7 +498,7 @@ as @code{#t}.)")
 
 (define-configuration dovecot-configuration
   (dovecot
-   (package dovecot)
+   (file-like dovecot)
    "The dovecot package.")
 
   (listen
@@ -1472,7 +1472,7 @@ greyed out, instead of only later giving \"not selectable\" popup error.
 
 (define-configuration opaque-dovecot-configuration
   (dovecot
-   (package dovecot)
+   (file-like dovecot)
    "The dovecot package.")
 
   (string
@@ -1764,7 +1764,7 @@ match from local for any action outbound
 (define-record-type* <exim-configuration> exim-configuration
   make-exim-configuration
   exim-configuration?
-  (package       exim-configuration-package ;<package>
+  (package       exim-configuration-package ;file-like
                  (default exim))
   (config-file   exim-configuration-config-file ;file-like
                  (default #f)))
diff --git a/gnu/services/mcron.scm b/gnu/services/mcron.scm
index 0e675607f3..23760ebda4 100644
--- a/gnu/services/mcron.scm
+++ b/gnu/services/mcron.scm
@@ -51,7 +51,7 @@
 (define-record-type* <mcron-configuration> mcron-configuration
   make-mcron-configuration
   mcron-configuration?
-  (mcron             mcron-configuration-mcron    ;package
+  (mcron             mcron-configuration-mcron    ;file-like
                      (default mcron))
   (jobs              mcron-configuration-jobs     ;list of <mcron-job>
                      (default '())))
diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm
index 0fcb7faf89..6ed55453db 100644
--- a/gnu/services/messaging.scm
+++ b/gnu/services/messaging.scm
@@ -333,7 +333,7 @@ can create such a file with:
 
   (define-all-configurations prosody-configuration
     (prosody
-     (package prosody)
+     (file-like prosody)
      "The Prosody package."
      global)
 
@@ -623,7 +623,7 @@ See also @url{https://prosody.im/doc/modules/mod_muc}."
 
 (define-configuration opaque-prosody-configuration
   (prosody
-   (package prosody)
+   (file-like prosody)
    "The prosody package.")
 
   (prosody.cfg.lua
diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm
index 5123a8c441..f15450eed5 100644
--- a/gnu/services/monitoring.scm
+++ b/gnu/services/monitoring.scm
@@ -247,7 +247,7 @@ Prometheus.")
 
 (define-configuration zabbix-server-configuration
   (zabbix-server
-   (package zabbix-server)
+   (file-like zabbix-server)
    "The zabbix-server package.")
   (user
    (string "zabbix")
@@ -385,7 +385,7 @@ configuration file."))
 
 (define-configuration zabbix-agent-configuration
   (zabbix-agent
-   (package zabbix-agentd)
+   (file-like zabbix-agentd)
    "The zabbix-agent package.")
   (user
    (string "zabbix")
@@ -529,7 +529,7 @@ fastcgi_param PHP_VALUE \"post_max_size = 16M
 (define-configuration zabbix-front-end-configuration
   ;; TODO: Specify zabbix front-end package.
   ;; (zabbix-
-  ;;  (package zabbix-front-end)
+  ;;  (file-like zabbix-front-end)
   ;;  "The zabbix-front-end package.")
   (nginx
    (nginx-server-configuration-list
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 7e310b70ec..77841a18d4 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -311,7 +311,7 @@ Protocol (DHCP) client, on all the non-loopback network interfaces.")))
 (define-record-type* <dhcpd-configuration>
   dhcpd-configuration make-dhcpd-configuration
   dhcpd-configuration?
-  (package   dhcpd-configuration-package ;<package>
+  (package   dhcpd-configuration-package ;file-like
              (default isc-dhcp))
   (config-file   dhcpd-configuration-config-file ;file-like
                  (default #f))
@@ -743,7 +743,7 @@ demand.")))
 ;;; can evaluate: (configuration->documentation 'opendht-configuration)
 (define-configuration/no-serialization opendht-configuration
   (opendht
-   (package opendht)
+   (file-like opendht)
    "The @code{opendht} package to use.")
   (peer-discovery?
    (boolean #false)
@@ -1149,7 +1149,7 @@ and @command{wicd-curses} user interfaces."
                    (default network-manager))
   (dns network-manager-configuration-dns
        (default "default"))
-  (vpn-plugins network-manager-configuration-vpn-plugins ;list of <package>
+  (vpn-plugins network-manager-configuration-vpn-plugins ;list of file-like
                (default '())))
 
 (define network-manager-activation
@@ -1452,7 +1452,7 @@ whatever the thing is supposed to do).")))
 (define-record-type* <wpa-supplicant-configuration>
   wpa-supplicant-configuration make-wpa-supplicant-configuration
   wpa-supplicant-configuration?
-  (wpa-supplicant     wpa-supplicant-configuration-wpa-supplicant ;<package>
+  (wpa-supplicant     wpa-supplicant-configuration-wpa-supplicant ;file-like
                       (default wpa-supplicant))
   (requirement        wpa-supplicant-configuration-requirement    ;list of symbols
                       (default '(user-processes loopback syslogd)))
@@ -2124,7 +2124,7 @@ of the IPFS peer-to-peer storage network.")))
 (define-record-type* <keepalived-configuration>
   keepalived-configuration make-keepalived-configuration
   keepalived-configuration?
-  (keepalived  keepalived-configuration-keepalived  ;<package>
+  (keepalived  keepalived-configuration-keepalived  ;file-like
                (default keepalived))
   (config-file keepalived-configuration-config-file ;file-like
                (default #f)))
diff --git a/gnu/services/nix.scm b/gnu/services/nix.scm
index 619e3cae54..df04a85c22 100644
--- a/gnu/services/nix.scm
+++ b/gnu/services/nix.scm
@@ -50,7 +50,7 @@
 (define-record-type* <nix-configuration>
   nix-configuration make-nix-configuration
   nix-configuration?
-  (package             nix-configuration-package ;package
+  (package             nix-configuration-package ;file-like
                        (default nix))
   (sandbox             nix-configuration-sandbox ;boolean
                        (default #t))
diff --git a/gnu/services/pm.scm b/gnu/services/pm.scm
index 256c6a7fa7..d91f2b69ce 100644
--- a/gnu/services/pm.scm
+++ b/gnu/services/pm.scm
@@ -84,7 +84,7 @@
 
 (define-configuration tlp-configuration
   (tlp
-   (package tlp)
+   (file-like tlp)
    "The TLP package.")
 
   (tlp-enable?
@@ -421,7 +421,7 @@ shutdown on system startup."))
   thermald-configuration?
   (ignore-cpuid-check? thermald-ignore-cpuid-check?    ;boolean
                        (default #f))
-  (thermald            thermald-thermald               ;package
+  (thermald            thermald-thermald               ;file-like
                        (default thermald)))
 
 (define (thermald-shepherd-service config)
diff --git a/gnu/services/rsync.scm b/gnu/services/rsync.scm
index 6c117bbda4..6e27edde25 100644
--- a/gnu/services/rsync.scm
+++ b/gnu/services/rsync.scm
@@ -43,8 +43,10 @@
   rsync-configuration
   make-rsync-configuration
   rsync-configuration?
-  (package       rsync-configuration-package              ; package
+  (package       rsync-configuration-package              ; file-like
                  (default rsync))
+  (address       rsync-configuration-address              ; string | #f
+                 (default #f))
   (port-number   rsync-configuration-port-number          ; integer
                  (default 873))
   (pid-file      rsync-configuration-pid-file             ; string
@@ -110,7 +112,7 @@
 (define rsync-config-file
   ;; Return the rsync configuration file corresponding to CONFIG.
   (match-lambda
-    (($ <rsync-configuration> package port-number pid-file lock-file log-file
+    (($ <rsync-configuration> package address port-number pid-file lock-file log-file
                               use-chroot? share-path share-comment read-only?
                               timeout user group uid gid)
      (if (not (string=? user "root"))
@@ -132,6 +134,7 @@
       "pid file = " pid-file "\n"
       "lock file = " lock-file "\n"
       "log file = " log-file "\n"
+      (if address (string-append "address = " address "\n") "")
       "port = " (number->string port-number) "\n"
       "use chroot = " (if use-chroot? "true" "false") "\n"
       (if uid (string-append "uid = " uid "\n") "")
diff --git a/gnu/services/science.scm b/gnu/services/science.scm
index 6f7ac91154..1414789de9 100644
--- a/gnu/services/science.scm
+++ b/gnu/services/science.scm
@@ -35,7 +35,7 @@
   rshiny-configuration
   make-rshiny-configuration
   rshiny-configuration?
-  (package          rshiny-configuration-package    ; package
+  (package          rshiny-configuration-package    ; file-like
                     (default r-shiny))
   (binary           rshiny-configuration-binary     ; string
                     (default "rshiny")))
diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm
index 7277273686..b44dbf9d9f 100644
--- a/gnu/services/shepherd.scm
+++ b/gnu/services/shepherd.scm
@@ -88,7 +88,7 @@
   shepherd-configuration make-shepherd-configuration
   shepherd-configuration?
   (shepherd shepherd-configuration-shepherd
-            (default shepherd)) ; package
+            (default shepherd)) ; file-like
   (services shepherd-configuration-services
             (default '()))) ; list of <shepherd-service>
 
diff --git a/gnu/services/sound.scm b/gnu/services/sound.scm
index bdf819b422..1217223a0c 100644
--- a/gnu/services/sound.scm
+++ b/gnu/services/sound.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -55,7 +55,7 @@
 
 (define-record-type* <alsa-configuration>
   alsa-configuration make-alsa-configuration alsa-configuration?
-  (alsa-plugins alsa-configuration-alsa-plugins ;<package>
+  (alsa-plugins alsa-configuration-alsa-plugins ;file-like
                 (default alsa-plugins))
   (pulseaudio?   alsa-configuration-pulseaudio? ;boolean
                  (default #t))
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index a018052eeb..97f74a00f7 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -39,6 +39,7 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match)
+  #:use-module (ice-9 vlist)
   #:export (lsh-configuration
             lsh-configuration?
             lsh-service
@@ -282,7 +283,7 @@ The other options should be self-descriptive."
 (define-record-type* <openssh-configuration>
   openssh-configuration make-openssh-configuration
   openssh-configuration?
-  ;; <package>
+  ;; file-like object
   (openssh               openssh-configuration-openssh
                          (default openssh))
   ;; string
@@ -535,7 +536,15 @@ of user-name/file-like tuples."
   (openssh-configuration
    (inherit config)
    (authorized-keys
-    (append (openssh-authorized-keys config) keys))))
+    (match (openssh-authorized-keys config)
+      (((users _ ...) ...)
+       ;; Build a user/key-list mapping.
+       (let ((user-keys (alist->vhash (openssh-authorized-keys config))))
+         ;; Coalesce the key lists associated with each user.
+         (map (lambda (user)
+                `(,user
+                  ,@(concatenate (vhash-fold* cons '() user user-keys))))
+              users)))))))
 
 (define openssh-service-type
   (service-type (name 'openssh)
@@ -754,7 +763,7 @@ object."
 (define-record-type* <webssh-configuration>
   webssh-configuration make-webssh-configuration
   webssh-configuration?
-  (package     webssh-configuration-package     ;package
+  (package     webssh-configuration-package     ;file-like
                (default webssh))
   (user-name   webssh-configuration-user-name   ;string
                (default "webssh"))
diff --git a/gnu/services/syncthing.scm b/gnu/services/syncthing.scm
index 12ebe7c107..7c3d5b027d 100644
--- a/gnu/services/syncthing.scm
+++ b/gnu/services/syncthing.scm
@@ -37,7 +37,7 @@
 (define-record-type* <syncthing-configuration>
   syncthing-configuration make-syncthing-configuration
   syncthing-configuration?
-  (syncthing syncthing-configuration-syncthing ;<package>
+  (syncthing syncthing-configuration-syncthing ;file-like
              (default syncthing))
   (arguments syncthing-configuration-arguments ;list of strings
              (default '()))
diff --git a/gnu/services/telephony.scm b/gnu/services/telephony.scm
index fd90840324..7c83f13b2a 100644
--- a/gnu/services/telephony.scm
+++ b/gnu/services/telephony.scm
@@ -227,13 +227,13 @@ SET-ACCOUNT-DETAILS."
 
 (define-configuration/no-serialization jami-configuration
   (jamid
-   (package libring)
+   (file-like libring)
    "The Jami daemon package to use.")
   (dbus
-   (package dbus)
+   (file-like dbus)
    "The D-Bus package to use to start the required D-Bus session.")
   (nss-certs
-   (package nss-certs)
+   (file-like nss-certs)
    "The nss-certs package to use to provide TLS certificates.")
   (enable-logging?
    (boolean #t)
@@ -755,7 +755,7 @@ normal user D-Bus session bus.")))
 (define-record-type* <murmur-configuration> murmur-configuration
   make-murmur-configuration
   murmur-configuration?
-  (package               murmur-configuration-package ;<package>
+  (package               murmur-configuration-package ;file-like
                          (default mumble))
   (user                  murmur-configuration-user
                          (default "murmur"))
diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm
index 3315e80c6f..defbd65c36 100644
--- a/gnu/services/version-control.scm
+++ b/gnu/services/version-control.scm
@@ -91,7 +91,7 @@
   git-daemon-configuration
   make-git-daemon-configuration
   git-daemon-configuration?
-  (package          git-daemon-configuration-package        ;package
+  (package          git-daemon-configuration-package        ;file-like
                     (default git))
   (export-all?      git-daemon-configuration-export-all     ;boolean
                     (default #f))
@@ -197,7 +197,7 @@ access to exported repositories under @file{/srv/git}."
   git-http-configuration
   make-git-http-configuration
   git-http-configuration?
-  (package          git-http-configuration-package        ;package
+  (package          git-http-configuration-package        ;file-like
                     (default git))
   (git-root         git-http-configuration-git-root       ;string
                     (default "/srv/git"))
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index bca5f56b87..66ae1a1565 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2017 Ryan Moe <ryan.moe@gmail.com>
 ;;; Copyright © 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2021 Timotej Lazar <timotej.lazar@araneo.si>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -82,7 +83,11 @@
 
             qemu-binfmt-configuration
             qemu-binfmt-configuration?
-            qemu-binfmt-service-type))
+            qemu-binfmt-service-type
+
+            qemu-guest-agent-configuration
+            qemu-guest-agent-configuration?
+            qemu-guest-agent-service-type))
 
 (define (uglify-field-name field-name)
   (let ((str (symbol->string field-name)))
@@ -129,10 +134,10 @@
 
 (define-configuration libvirt-configuration
   (libvirt
-   (package libvirt)
+   (file-like libvirt)
    "Libvirt package.")
   (qemu
-   (package qemu)
+   (file-like qemu)
    "Qemu package.")
 
   (listen-tls?
@@ -849,26 +854,88 @@ functionality of the kernel Linux.")))
 
 
 ;;;
+;;; QEMU guest agent service.
+;;;
+
+(define-configuration qemu-guest-agent-configuration
+  (qemu
+   (file-like qemu-minimal)
+   "QEMU package.")
+  (device
+   (string "")
+   "Path to device or socket used to communicate with the host.  If not
+specified, the QEMU default path is used."))
+
+(define qemu-guest-agent-shepherd-service
+  (match-lambda
+    (($ <qemu-guest-agent-configuration> qemu device)
+     (list
+      (shepherd-service
+       (provision '(qemu-guest-agent))
+       (documentation "Run the QEMU guest agent.")
+       (start #~(make-forkexec-constructor
+                 `(,(string-append #$qemu "/bin/qemu-ga") "--daemon"
+                   "--pidfile=/var/run/qemu-ga.pid"
+                   "--statedir=/var/run"
+                   ,@(if #$device
+                         (list (string-append "--path=" #$device))
+                         '()))
+                 #:pid-file "/var/run/qemu-ga.pid"
+                 #:log-file "/var/log/qemu-ga.log"))
+       (stop #~(make-kill-destructor)))))))
+
+(define qemu-guest-agent-service-type
+  (service-type
+   (name 'qemu-guest-agent)
+   (extensions
+    (list (service-extension shepherd-root-service-type
+                             qemu-guest-agent-shepherd-service)))
+   (default-value (qemu-guest-agent-configuration))
+   (description "Run the QEMU guest agent.")))
+
+
+;;;
 ;;; Secrets for guest VMs.
 ;;;
 
-(define (secret-service-activation port)
-  "Return an activation snippet that fetches sensitive material at local PORT,
+(define (secret-service-shepherd-services port)
+  "Return a Shepherd service that fetches sensitive material at local PORT,
 over TCP.  Reboot upon failure."
-  (with-imported-modules '((gnu build secret-service)
-                           (guix build utils))
-    #~(begin
-        (use-modules (gnu build secret-service))
-        (let ((sent (secret-service-receive-secrets #$port)))
-          (unless sent
-            (sleep 3)
-            (reboot))))))
+  ;; This is a Shepherd service, rather than an activation snippet, to make
+  ;; sure it is started once 'networking' is up so it can accept incoming
+  ;; connections.
+  (list
+   (shepherd-service
+    (documentation "Fetch secrets from the host at startup time.")
+    (provision '(secret-service-client))
+    (requirement '(loopback networking))
+    (modules '((gnu build secret-service)
+               (guix build utils)))
+    (start (with-imported-modules '((gnu build secret-service)
+                                    (guix build utils))
+             #~(lambda ()
+                 ;; Since shepherd's output port goes to /dev/log, write this
+                 ;; message to stderr so it's visible on the Mach console.
+                 (format (current-error-port)
+                         "receiving secrets from the host...~%")
+                 (force-output (current-error-port))
+
+                 (let ((sent (secret-service-receive-secrets #$port)))
+                   (unless sent
+                     (sleep 3)
+                     (reboot))))))
+    (stop #~(const #f)))))
 
 (define secret-service-type
   (service-type
    (name 'secret-service)
-   (extensions (list (service-extension activation-service-type
-                                        secret-service-activation)))
+   (extensions (list (service-extension shepherd-root-service-type
+                                        secret-service-shepherd-services)
+
+                     ;; Make every Shepherd service depend on
+                     ;; 'secret-service-client'.
+                     (service-extension user-processes-service-type
+                                        (const '(secret-service-client)))))
    (description
     "This service fetches secret key and other sensitive material over TCP at
 boot time.  This service is meant to be used by virtual machines (VMs) that
@@ -928,7 +995,7 @@ that will be listening to receive secret keys on port 1004, TCP."
   hurd-vm-configuration?
   (os          hurd-vm-configuration-os                 ;<operating-system>
                (default %hurd-vm-operating-system))
-  (qemu        hurd-vm-configuration-qemu               ;<package>
+  (qemu        hurd-vm-configuration-qemu               ;file-like
                (default qemu-minimal))
   (image       hurd-vm-configuration-image              ;string
                (thunked)
diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scm
index df84905eb3..6004e41d8d 100644
--- a/gnu/services/vpn.scm
+++ b/gnu/services/vpn.scm
@@ -302,7 +302,7 @@ client.  Each file is named after the name of the client."
 (define-split-configuration openvpn-client-configuration
   openvpn-server-configuration
   ((openvpn
-    (package openvpn)
+    (file-like openvpn)
     "The OpenVPN package.")
 
    (pid-file
@@ -561,7 +561,7 @@ is truncated and rewritten every minute.")
 (define-record-type* <strongswan-configuration>
   strongswan-configuration make-strongswan-configuration
   strongswan-configuration?
-  (strongswan      strongswan-configuration-strongswan ;<package>
+  (strongswan      strongswan-configuration-strongswan ;file-like
                    (default strongswan))
   (ipsec-conf      strongswan-configuration-ipsec-conf ;string|#f
                    (default #f))
@@ -704,7 +704,7 @@ strongSwan.")))
 (define-record-type* <wireguard-configuration>
   wireguard-configuration make-wireguard-configuration
   wireguard-configuration?
-  (wireguard          wireguard-configuration-wireguard ;<package>
+  (wireguard          wireguard-configuration-wireguard ;file-like
                       (default wireguard-tools))
   (interface          wireguard-configuration-interface ;string
                       (default "wg0"))
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index 6a093cf4e4..e5cc6343b5 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -3,11 +3,10 @@
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2016, 2017, 2018 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2017, 2018, 2019 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2017 nee <nee-git@hidamari.blue>
 ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
-;;; Copyright © 2017, 2018, 2019 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2019, 2020 Florian Pelz <pelzflorian@pelzflorian.de>
 ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
@@ -536,7 +535,7 @@
 (define-record-type* <nginx-configuration>
   nginx-configuration make-nginx-configuration
   nginx-configuration?
-  (nginx         nginx-configuration-nginx          ;<package>
+  (nginx         nginx-configuration-nginx          ;file-like
                  (default nginx))
   (log-directory nginx-configuration-log-directory  ;string
                  (default "/var/log/nginx"))
@@ -553,9 +552,9 @@
   (modules nginx-configuration-modules (default '()))
   (global-directives nginx-configuration-global-directives
                      (default '((events . ()))))
-  (lua-package-path nginx-lua-package-path ;list of <package>
+  (lua-package-path nginx-lua-package-path ;list of file-like
                     (default #f))
-  (lua-package-cpath nginx-lua-package-cpath ;list of <package>
+  (lua-package-cpath nginx-lua-package-cpath ;list of file-like
                      (default #f))
   (extra-content nginx-configuration-extra-content
                  (default ""))
@@ -804,7 +803,7 @@ of index files."
 (define-record-type* <fcgiwrap-configuration> fcgiwrap-configuration
   make-fcgiwrap-configuration
   fcgiwrap-configuration?
-  (package       fcgiwrap-configuration-package ;<package>
+  (package       fcgiwrap-configuration-package ;file-like
                  (default fcgiwrap))
   (socket        fcgiwrap-configuration-socket
                  (default "tcp:127.0.0.1:9000"))
@@ -873,7 +872,7 @@ of index files."
 (define-record-type* <php-fpm-configuration> php-fpm-configuration
   make-php-fpm-configuration
   php-fpm-configuration?
-  (php              php-fpm-configuration-php ;<package>
+  (php              php-fpm-configuration-php ;file-like
                     (default php))
   (socket           php-fpm-configuration-socket
                     (default (string-append "/var/run/php"
@@ -1108,10 +1107,12 @@ a webserver.")
   hpcguix-web-configuration make-hpcguix-web-configuration
   hpcguix-web-configuration?
 
-  (package  hpcguix-web-package (default hpcguix-web)) ;<package>
+  (package  hpcguix-web-package (default hpcguix-web)) ;file-like
 
   ;; Specs is gexp of hpcguix-web configuration file
-  (specs    hpcguix-web-configuration-specs))
+  (specs    hpcguix-web-configuration-specs)
+  (address  hpcguix-web-configuration-address (default "127.0.0.1"))
+  (port     hpcguix-web-configuration-port (default 5000)))
 
 (define %hpcguix-web-accounts
   (list (user-group
@@ -1164,6 +1165,12 @@ a webserver.")
        (requirement   '(networking))
        (start #~(make-forkexec-constructor
                  (list #$(file-append hpcguix-web "/bin/hpcguix-web")
+                       (string-append "--listen="
+                                      #$(hpcguix-web-configuration-address
+                                         config))
+                       "-p"
+                       #$(number->string
+                          (hpcguix-web-configuration-port config))
                        (string-append "--config="
                                       #$(scheme-file "hpcguix-web.scm" specs)))
                  #:user "hpcguix-web"
@@ -1341,7 +1348,7 @@ files.")
 (define-record-type* <varnish-configuration>
   varnish-configuration make-varnish-configuration
   varnish-configuration?
-  (package             varnish-configuration-package          ;<package>
+  (package             varnish-configuration-package          ;file-like
                        (default varnish))
   (name                varnish-configuration-name             ;string
                        (default "default"))
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index d5c5316d3f..82a7d25602 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2020 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -48,6 +49,7 @@
   #:use-module (gnu packages admin)
   #:use-module (gnu packages bash)
   #:use-module (gnu system shadow)
+  #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system trivial)
   #:use-module (guix gexp)
   #:use-module (guix store)
@@ -161,7 +163,7 @@
 (define-record-type* <xorg-configuration>
   xorg-configuration make-xorg-configuration
   xorg-configuration?
-  (modules          xorg-configuration-modules    ;list of packages
+  (modules          xorg-configuration-modules    ;list of file-like
                     (thunked)
                     ; filter out modules not supported on current system
                     (default (filter
@@ -179,7 +181,7 @@
                     (default #f))
   (extra-config     xorg-configuration-extra-config ;list of strings
                     (default '()))
-  (server           xorg-configuration-server     ;package
+  (server           xorg-configuration-server     ;file-like
                     (default xorg-server))
   (server-arguments xorg-configuration-server-arguments ;list of strings
                     (default %default-xorg-server-arguments)))
@@ -869,6 +871,24 @@ the GNOME desktop environment.")
        (apply execl (string-append #$dbus "/bin/dbus-daemon")
               (program-arguments)))))
 
+;; Wrapper script for Wayland sessions, similar to Xsession.
+;;
+;; See `xinitrc`.  By default, it launches the specified session through a
+;; login shell.  With the default Guix configuration, this should source
+;; /etc/profile, setting up the Guix profile environment variables.  However,
+;; gdm launches its own graphical session through the same method, so we need
+;; to ignore this case, since `gdm` doesn't have a login shell.
+(define gdm-wayland-session-wrapper
+  (program-file
+   "gdm-wayland-session-wrapper"
+   #~((let* ((user (getpw (getuid)))
+	    (name (passwd:name user))
+	    (shell (passwd:shell user))
+	    (args (cdr (command-line))))
+        (if (string=? name "gdm")
+	    (apply execl (cons (car args) args))
+	    (execl shell shell "--login" "-c" (string-join args)))))))
+
 (define-record-type* <gdm-configuration>
   gdm-configuration make-gdm-configuration
   gdm-configuration?
@@ -879,11 +899,14 @@ the GNOME desktop environment.")
   (debug? gdm-configuration-debug? (default #f))
   (default-user gdm-configuration-default-user (default #f))
   (gnome-shell-assets gdm-configuration-gnome-shell-assets
-                      (default (list adwaita-icon-theme font-cantarell)))
+                      (default (list adwaita-icon-theme font-abattis-cantarell)))
   (xorg-configuration gdm-configuration-xorg
                       (default (xorg-configuration)))
   (x-session gdm-configuration-x-session
-             (default (xinitrc))))
+             (default (xinitrc)))
+  (wayland? gdm-configuration-wayland? (default #f))
+  (wayland-session gdm-configuration-wayland-session
+                   (default gdm-wayland-session-wrapper)))
 
 (define (gdm-configuration-file config)
   (mixed-text-file "gdm-custom.conf"
@@ -909,8 +932,9 @@ the GNOME desktop environment.")
                    ;; See also
                    ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=39281>.
                    "InitialSetupEnable=false\n"
-                   ;; Enable me once X is working.
-                   "WaylandEnable=false\n"
+                   "WaylandEnable=" (if (gdm-configuration-wayland? config)
+                                        "true"
+                                        "false") "\n"
                    "\n"
                    "[debug]\n"
                    "Enable=" (if (gdm-configuration-debug? config)
@@ -976,7 +1000,17 @@ the GNOME desktop environment.")
                                   ;; can depend on GNOME Shell directly.
                                   (cons #$gnome-shell
                                         '#$(gdm-configuration-gnome-shell-assets
-                                            config)))))))))
+                                            config)))))
+                           ;; Add XCURSOR_PATH so that mutter can find its
+                           ;; cursors.  gdm doesn't login so doesn't source
+                           ;; the corresponding line in /etc/profile.
+                           "XCURSOR_PATH=/run/current-system/profile/share/icons"
+                           (string-append
+                            "GDK_PIXBUF_MODULE_FILE="
+                            #$gnome-shell "/" #$%gdk-pixbuf-loaders-cache-file)
+                           (string-append
+                            "GDM_WAYLAND_SESSION="
+                            #$(gdm-configuration-wayland-session config))))))
          (stop #~(make-kill-destructor))
          (respawn? #t))))
 
diff --git a/gnu/system.scm b/gnu/system.scm
index 2b919d8b4a..088c62ddde 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -170,6 +170,7 @@
             %setuid-programs
             %sudoers-specification
             %base-packages
+            %base-packages-artwork
             %base-packages-interactive
             %base-packages-linux
             %base-packages-networking
@@ -233,8 +234,10 @@
   (mapped-devices operating-system-mapped-devices ; list of <mapped-device>
                   (default '()))
   (file-systems operating-system-file-systems)    ; list of fs
-  (swap-devices operating-system-swap-devices     ; list of strings
-                (default '()))
+  (swap-devices operating-system-swap-devices     ; list of string | <swap-space>
+                (default '())
+                (delayed)
+                (sanitize warn-swap-devices-change))
 
   (users operating-system-users                   ; list of user accounts
          (default %base-user-accounts))
@@ -264,6 +267,7 @@
                       (default (operating-system-default-essential-services
                                 this-operating-system)))
   (services operating-system-user-services        ; list of services
+            (thunked)                     ;allow for system-dependent services
             (default %base-services))
 
   (pam-services operating-system-pam-services     ; list of PAM services
@@ -583,9 +587,41 @@ mapped-device '~a' may not be mounted by the bootloader.~%")
   (map device-mapping-service
        (operating-system-user-mapped-devices os)))
 
+(define-syntax-rule (warn-swap-devices-change value)
+  (%warn-swap-devices-change value (current-source-location)))
+
+(define (%warn-swap-devices-change value location)
+  (map (lambda (x)
+         (unless (swap-space? x)
+           (warning
+            (source-properties->location
+             location)
+            (G_ "List elements of the field 'swap-devices' should \
+now use the <swap-space> record, as the old method is deprecated. \
+See \"(guix) operating-system Reference\" for more details.~%")))
+         x) value))
+
 (define (swap-services os)
   "Return the list of swap services for OS."
-  (map swap-service (operating-system-swap-devices os)))
+  (define early-userspace-file-systems
+    (filter file-system-needed-for-boot?
+            (operating-system-file-systems os)))
+
+  (define early-userspace-mapped-devices
+    (operating-system-boot-mapped-devices os))
+
+  (define (filter-deps swap)
+    (if (swap-space? swap)
+        (swap-space
+         (inherit swap)
+         (dependencies (remove (lambda (dep)
+                                 (or (member dep early-userspace-mapped-devices)
+                                     (member dep early-userspace-file-systems)))
+                               (swap-space-dependencies swap))))
+        swap))
+
+  (map (compose swap-service filter-deps)
+       (operating-system-swap-devices os)))
 
 (define* (system-linux-image-file-name #:optional
                                        (target (or (%current-target-system)
@@ -755,6 +791,10 @@ of PROVENANCE-SERVICE-TYPE to its services."
   (list ath9k-htc-firmware
         openfwwf-firmware))
 
+(define %base-packages-artwork
+  ;; Default set of artwork packages.
+  (list guix-icons))
+
 (define %base-packages-utils
   ;; Default set of  utilities packages.
  (cons* procps psmisc which
@@ -809,12 +849,14 @@ of PROVENANCE-SERVICE-TYPE to its services."
         dosfstools
         btrfs-progs
         f2fs-tools
-        jfsutils))
+        jfsutils
+        xfsprogs))
 
 (define %base-packages
   ;; Default set of packages globally visible.  It should include anything
   ;; required for basic administrator tasks.
   (append (list e2fsprogs)
+          %base-packages-artwork
           %base-packages-interactive
           %base-packages-linux
           %base-packages-networking
@@ -846,6 +888,19 @@ syntactically correct."
                                "--check" "--file" #$file)
                        (copy-file #$file #$output)))))
 
+(define (os-release)
+  (plain-file "os-release"
+              "\
+NAME=\"Guix System\"
+ID=guix
+PRETTY_NAME=\"Guix System\"
+LOGO=guix-icon
+HOME_URL=\"https://guix.gnu.org\"
+DOCUMENTATION_URL=\"https://guix.gnu.org/en/manual\"
+SUPPORT_URL=\"https://guix.gnu.org/en/help\"
+BUG_REPORT_URL=\"https://lists.gnu.org/mailman/listinfo/bug-guix\"
+"))
+
 (define* (operating-system-etc-service os)
   "Return a <service> that builds a directory containing the static part of
 the /etc directory."
@@ -951,7 +1006,8 @@ then
   source /run/current-system/profile/etc/profile.d/bash_completion.sh
 fi\n")))
     (etc-service
-     `(("services" ,(file-append net-base "/etc/services"))
+     `(("os-release" ,#~#$(os-release))
+       ("services" ,(file-append net-base "/etc/services"))
        ("protocols" ,(file-append net-base "/etc/protocols"))
        ("rpc" ,(file-append net-base "/etc/rpc"))
        ("login.defs" ,#~#$login.defs)
@@ -1072,16 +1128,17 @@ use 'plain-file' instead~%")
     ;; TODO: Remove when glibc@2.23 is long gone.
     ("GUIX_LOCPATH" . "/run/current-system/locale")))
 
-(define-syntax-rule (ensure-setuid-program-list lst)
-  "Ensure LST is a list of <setuid-program> records and warn otherwise."
-  (%ensure-setuid-program-list lst (current-source-location)))
+;; Ensure LST is a list of <setuid-program> records and warn otherwise.
+(define-with-syntax-properties (ensure-setuid-program-list (lst properties))
+  (%ensure-setuid-program-list lst properties))
 
-(define (%ensure-setuid-program-list lst location)
+;; We want to be able to use defines, so define a procedure.
+(define (%ensure-setuid-program-list lst properties)
   (define warned? #f)
 
   (define (warn-once)
     (unless warned?
-      (warning (source-properties->location location)
+      (warning (source-properties->location properties)
                (G_ "representing setuid programs with file-like objects is \
 deprecated; use 'setuid-program' instead~%"))
       (set! warned? #t)))
diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl
index c928008c92..6df53844b1 100644
--- a/gnu/system/examples/desktop.tmpl
+++ b/gnu/system/examples/desktop.tmpl
@@ -1,6 +1,6 @@
 ;; This is an operating system configuration template
 ;; for a "desktop" setup with GNOME and Xfce where the
-;; root partition is encrypted with LUKS.
+;; root partition is encrypted with LUKS, and a swap file.
 
 (use-modules (gnu) (gnu system nss))
 (use-service-modules desktop xorg)
@@ -42,6 +42,11 @@
                          (type "vfat")))
                  %base-file-systems))
 
+  ;; Specify a swap file for the system, which resides on the
+  ;; root file system.
+  (swap-devices (list (swap-space
+                       (target "/swapfile"))))
+
   ;; Create user `bob' with `alice' as its initial password.
   (users (cons (user-account
                 (name "bob")
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index b9eda80958..e1d1fb72cc 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -1,8 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Google LLC
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,7 +30,8 @@
   #:use-module (srfi srfi-35)
   #:use-module (srfi srfi-9 gnu)
   #:use-module (guix records)
-  #:use-module ((guix diagnostics) #:select (&fix-hint))
+  #:use-module ((guix diagnostics)
+                #:select (source-properties->location leave &fix-hint))
   #:use-module (guix i18n)
   #:use-module (gnu system uuid)
   #:re-export (uuid                               ;backward compatibility
@@ -51,6 +53,8 @@
             file-system-mount?
             file-system-mount-may-fail?
             file-system-check?
+            file-system-skip-check-if-clean?
+            file-system-repair
             file-system-create-mount-point?
             file-system-dependencies
             file-system-location
@@ -93,7 +97,14 @@
 
             %store-mapping
             %network-configuration-files
-            %network-file-mappings))
+            %network-file-mappings
+
+            swap-space
+            swap-space?
+            swap-space-target
+            swap-space-dependencies
+            swap-space-priority
+            swap-space-discard?))
 
 ;;; Commentary:
 ;;;
@@ -104,6 +115,45 @@
 ;;;
 ;;; Code:
 
+(eval-when (expand load eval)
+  (define invalid-file-system-flags
+    ;; Note: Keep in sync with 'mount-flags->bit-mask'.
+    (let ((known-flags '(read-only
+                         bind-mount no-suid no-dev no-exec
+                         no-atime strict-atime lazy-time)))
+      (lambda (flags)
+        "Return the subset of FLAGS that is invalid."
+        (remove (cut memq <> known-flags) flags))))
+
+  (define (%validate-file-system-flags flags location)
+    "Raise an error if FLAGS contains invalid mount flags; otherwise return
+FLAGS."
+    (match (invalid-file-system-flags flags)
+      (() flags)
+      (invalid
+       (leave (source-properties->location location)
+              (N_ "invalid file system mount flag:~{ ~s~}~%"
+                  "invalid file system mount flags:~{ ~s~}~%"
+                  (length invalid))
+              invalid)))))
+
+(define-syntax validate-file-system-flags
+  (lambda (s)
+    "Validate the given file system mount flags, raising an error if invalid
+flags are found."
+    (syntax-case s (quote)
+      ((_ (quote (symbols ...)))                  ;validate at expansion time
+       (begin
+         (%validate-file-system-flags (syntax->datum #'(symbols ...))
+                                      (syntax-source s))
+         #'(quote (symbols ...))))
+      ((_ flags)
+       #`(%validate-file-system-flags flags
+                                      '#,(datum->syntax s (syntax-source s))))
+      (id
+       (identifier? #'id)
+       #'%validate-file-system-flags))))
+
 ;; File system declaration.
 (define-record-type* <file-system> %file-system
   make-file-system
@@ -112,7 +162,8 @@
   (mount-point      file-system-mount-point)      ; string
   (type             file-system-type)             ; string
   (flags            file-system-flags             ; list of symbols
-                    (default '()))
+                    (default '())
+                    (sanitize validate-file-system-flags))
   (options          file-system-options           ; string or #f
                     (default #f))
   (mount?           file-system-mount?            ; Boolean
@@ -123,6 +174,10 @@
                     (default #f))
   (check?           file-system-check?            ; Boolean
                     (default #t))
+  (skip-check-if-clean? file-system-skip-check-if-clean? ; Boolean
+                        (default #t))
+  (repair           file-system-repair            ; symbol or #f
+                    (default 'preen))
   (create-mount-point? file-system-create-mount-point? ; Boolean
                        (default #f))
   (dependencies     file-system-dependencies      ; list of <file-system>
@@ -318,19 +373,22 @@ store--e.g., if FS is the root file system."
 initrd code."
   (match fs
     (($ <file-system> device mount-point type flags options mount?
-                      mount-may-fail? needed-for-boot? check?)
+                      mount-may-fail? needed-for-boot?
+                      check? skip-check-if-clean? repair)
      ;; Note: Add new fields towards the end for compatibility.
      (list (cond ((uuid? device)
                   `(uuid ,(uuid-type device) ,(uuid-bytevector device)))
                  ((file-system-label? device)
                   `(file-system-label ,(file-system-label->string device)))
                  (else device))
-           mount-point type flags options mount-may-fail? check?))))
+           mount-point type flags options mount-may-fail?
+           check? skip-check-if-clean? repair))))
 
 (define (spec->file-system sexp)
   "Deserialize SEXP, a list, to the corresponding <file-system> object."
   (match sexp
-    ((device mount-point type flags options mount-may-fail? check?
+    ((device mount-point type flags options mount-may-fail?
+             check? skip-check-if-clean? repair
              _ ...)                               ;placeholder for new fields
      (file-system
        (device (match device
@@ -343,7 +401,9 @@ initrd code."
        (mount-point mount-point) (type type)
        (flags flags) (options options)
        (mount-may-fail? mount-may-fail?)
-       (check? check?)))))
+       (check? check?)
+       (skip-check-if-clean? skip-check-if-clean?)
+       (repair repair)))))
 
 (define (specification->file-system-mapping spec writable?)
   "Read the SPEC and return the corresponding <file-system-mapping>.  SPEC is
@@ -659,4 +719,19 @@ subvolume name is unknown."))
                   (G_ "Use the @code{subvol} Btrfs file system option."))))))))
 
 
+;;;
+;;; Swap space
+;;;
+
+(define-record-type* <swap-space> swap-space make-swap-space
+  swap-space?
+  this-swap-space
+  (target swap-space-target)
+  (dependencies swap-space-dependencies
+                (default '()))
+  (priority swap-space-priority
+            (default #f))
+  (discard? swap-space-discard?
+           (default #f)))
+
 ;;; file-systems.scm ends here
diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm
index e976494d74..2acc7b7e11 100644
--- a/gnu/system/hurd.scm
+++ b/gnu/system/hurd.scm
@@ -34,6 +34,7 @@
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages hurd)
   #:use-module (gnu packages less)
+  #:use-module (gnu packages texinfo)
   #:use-module (gnu services)
   #:use-module (gnu services base)
   #:use-module (gnu services hurd)
@@ -67,7 +68,8 @@
   (list hurd bash coreutils file findutils grep sed
         diffutils patch gawk tar gzip bzip2 xz lzip
         guile-3.0-latest guile-colorized guile-readline
-        net-base inetutils less shadow shepherd sudo which))
+        net-base inetutils less shadow shepherd sudo which
+        info-reader))
 
 (define %base-services/hurd
   (list (service hurd-console-service-type
@@ -77,11 +79,13 @@
         (service hurd-getty-service-type (hurd-getty-configuration
                                           (tty "tty2")))
         (service static-networking-service-type
-                 (list (static-networking (interface "lo")
-                                          (ip "127.0.0.1")
-                                          (requirement '())
-                                          (provision '(loopback networking))
-                                          (name-servers '("10.0.2.3")))))
+                 (list %loopback-static-networking
+
+                       ;; QEMU user-mode networking.  To get "eth0", you need
+                       ;; QEMU to emulate a device for which Mach has an
+                       ;; in-kernel driver, for instance with:
+                       ;; --device rtl8139,netdev=net0 --netdev user,id=net0
+                       %qemu-static-networking))
         (syslog-service)
         (service guix-service-type
                  (guix-configuration
diff --git a/gnu/system/image.scm b/gnu/system/image.scm
index 1012fa6158..4b6aaf2e32 100644
--- a/gnu/system/image.scm
+++ b/gnu/system/image.scm
@@ -31,6 +31,7 @@
   #:use-module (gnu bootloader)
   #:use-module (gnu bootloader grub)
   #:use-module (gnu image)
+  #:use-module (gnu platform)
   #:use-module (gnu services)
   #:use-module (gnu services base)
   #:use-module (gnu system)
@@ -66,16 +67,14 @@
 
             efi-disk-image
             iso9660-image
-            arm32-disk-image
-            arm64-disk-image
+            raw-with-offset-disk-image
 
             image-with-os
             efi-raw-image-type
             qcow2-image-type
             iso-image-type
             uncompressed-iso-image-type
-            arm32-image-type
-            arm64-image-type
+            raw-with-offset-image-type
 
             image-with-label
             system-image
@@ -128,10 +127,9 @@
            (label "GUIX_IMAGE")
            (flags '(boot)))))))
 
-(define* (arm32-disk-image #:optional (offset root-offset))
+(define* (raw-with-offset-disk-image #:optional (offset root-offset))
   (image
    (format 'disk-image)
-   (target "arm-linux-gnueabihf")
    (partitions
     (list (partition
            (inherit root-partition)
@@ -140,11 +138,6 @@
    ;; fails.
    (volatile-root? #f)))
 
-(define* (arm64-disk-image #:optional (offset root-offset))
-  (image
-   (inherit (arm32-disk-image offset))
-   (target "aarch64-linux-gnu")))
-
 
 ;;;
 ;;; Images types.
@@ -186,15 +179,10 @@ set to the given OS."
                   (compression? #f))
                  <>))))
 
-(define arm32-image-type
+(define raw-with-offset-image-type
   (image-type
-   (name 'arm32-raw)
-   (constructor (cut image-with-os (arm32-disk-image) <>))))
-
-(define arm64-image-type
-  (image-type
-   (name 'arm64-raw)
-   (constructor (cut image-with-os (arm64-disk-image) <>))))
+   (name 'raw-with-offset)
+   (constructor (cut image-with-os (raw-with-offset-disk-image) <>))))
 
 
 ;;
@@ -310,6 +298,14 @@ used in the image."
          ((member 'esp flags) "0xEF")
          (else "0x83"))))
 
+    (define (partition->gpt-type partition)
+      ;; Return the genimage GPT partition type code corresponding to PARTITION.
+      ;; See https://github.com/pengutronix/genimage/blob/master/README.rst
+      (let ((flags (partition-flags partition)))
+        (cond
+          ((member 'esp flags) "U")
+          (else "L"))))
+
     (define (partition-image partition)
       ;; Return as a file-like object, an image of the given PARTITION.  A
       ;; directory, filled by calling the PARTITION initializer procedure, is
@@ -359,26 +355,44 @@ used in the image."
                        #:local-build? #f
                        #:options `(#:references-graphs ,inputs))))
 
-    (define (partition->config partition)
+    (define (gpt-image? image)
+      (eq? 'gpt (image-partition-table-type image)))
+
+    (define (partition-type-values image partition)
+      (if (gpt-image? image)
+          (values "partition-type-uuid" (partition->gpt-type partition))
+          (values "partition-type" (partition->dos-type partition))))
+
+    (define (partition->config image partition)
       ;; Return the genimage partition configuration for PARTITION.
-      (let ((label (partition-label partition))
-            (dos-type (partition->dos-type partition))
-            (image (partition-image partition))
-            (offset (partition-offset partition)))
-        #~(format #f "~/partition ~a {
-~/~/partition-type = ~a
-~/~/image = \"~a\"
-~/~/offset = \"~a\"
-~/}"
-                  #$label
-                  #$dos-type
-                  #$image
-                  #$offset)))
+      (let-values (((partition-type-attribute partition-type-value)
+                    (partition-type-values image partition)))
+        (let ((label (partition-label partition))
+              (image (partition-image partition))
+              (offset (partition-offset partition)))
+          #~(format #f "~/partition ~a {
+  ~/~/~a = ~a
+  ~/~/image = \"~a\"
+  ~/~/offset = \"~a\"
+  ~/}"
+                    #$label
+                    #$partition-type-attribute
+                    #$partition-type-value
+                    #$image
+                    #$offset))))
+
+    (define (genimage-type-options image-type image)
+      (cond
+        ((equal? image-type "hdimage")
+         (format #f "~%~/~/gpt = ~a~%~/"
+                 (if (gpt-image? image) "true" "false")))
+        (else "")))
 
     (let* ((format (image-format image))
            (image-type (format->image-type format))
+           (image-type-options (genimage-type-options image-type image))
            (partitions (image-partitions image))
-           (partitions-config (map partition->config partitions))
+           (partitions-config (map (cut partition->config image <>) partitions))
            (builder
             #~(begin
                 (let ((format (@ (ice-9 format) format)))
@@ -387,9 +401,10 @@ used in the image."
                       (format port
                               "\
 image ~a {
-~/~a {}
+~/~a {~a}
 ~{~a~^~%~}
-}~%" #$genimage-name #$image-type (list #$@partitions-config))))))))
+}~%" #$genimage-name #$image-type #$image-type-options
+ (list #$@partitions-config))))))))
       (computed-file "genimage.cfg" builder)))
 
   (let* ((image-name (image-name image))
@@ -615,7 +630,30 @@ it can be used for bootloading."
   "Return the derivation of IMAGE.  It can be a raw disk-image or an ISO9660
 image, depending on IMAGE format."
   (define substitutable? (image-substitutable? image))
-  (define target (image-target image))
+  (define platform (image-platform image))
+
+  ;; The image platform definition may provide the appropriate "system"
+  ;; architecture for the image.  If we are already running on this system,
+  ;; the image can be built natively.  If we are running on a different
+  ;; system, then we need to cross-compile, using the "target" provided by the
+  ;; image definition.
+  (define system (and=> platform platform-system))
+  (define target (cond
+                  ;; No defined platform, let's use the user defined
+                  ;; system/target parameters.
+                  ((not platform)
+                   (%current-target-system))
+                  ;; The current system is the same as the platform system, no
+                  ;; need to cross-compile.
+                  ((and system
+                        (string=? system (%current-system)))
+                   #f)
+                  ;; If there is a user defined target let's override the
+                  ;; platform target. Otherwise, we can cross-compile to the
+                  ;; platform target.
+                  (else
+                   (or (%current-target-system)
+                       (and=> platform platform-target)))))
 
   (with-parameters ((%current-target-system target))
     (let* ((os (operating-system-for-image image))
diff --git a/gnu/system/images/hurd.scm b/gnu/system/images/hurd.scm
index fc2dbe3209..4c38c46a89 100644
--- a/gnu/system/images/hurd.scm
+++ b/gnu/system/images/hurd.scm
@@ -23,6 +23,7 @@
   #:use-module (gnu bootloader grub)
   #:use-module (gnu image)
   #:use-module (gnu packages ssh)
+  #:use-module (gnu platforms hurd)
   #:use-module (gnu services)
   #:use-module (gnu services ssh)
   #:use-module (gnu system)
@@ -75,7 +76,7 @@
 (define hurd-disk-image
   (image
    (format 'disk-image)
-   (target "i586-pc-gnu")
+   (platform hurd)
    (partitions
     (list (partition
            (size 'guess)
@@ -103,13 +104,15 @@
 (define hurd-barebones-disk-image
   (image
    (inherit
-    (os->image hurd-barebones-os #:type hurd-image-type))
+    (os+platform->image hurd-barebones-os hurd
+                        #:type hurd-image-type))
    (name 'hurd-barebones-disk-image)))
 
 (define hurd-barebones-qcow2-image
   (image
    (inherit
-    (os->image hurd-barebones-os #:type hurd-qcow2-image-type))
+    (os+platform->image hurd-barebones-os hurd
+                        #:type hurd-qcow2-image-type))
    (name 'hurd-barebones.qcow2)))
 
 ;; Return the default image.
diff --git a/gnu/system/images/novena.scm b/gnu/system/images/novena.scm
index 63227af509..3ce62fbf3b 100644
--- a/gnu/system/images/novena.scm
+++ b/gnu/system/images/novena.scm
@@ -22,6 +22,7 @@
   #:use-module (gnu bootloader u-boot)
   #:use-module (gnu image)
   #:use-module (gnu packages linux)
+  #:use-module (gnu platforms arm)
   #:use-module (gnu services)
   #:use-module (gnu services base)
   #:use-module (gnu system)
@@ -52,12 +53,13 @@
 (define novena-image-type
   (image-type
    (name 'novena-raw)
-   (constructor (cut image-with-os (arm32-disk-image) <>))))
+   (constructor (cut image-with-os (raw-with-offset-disk-image) <>))))
 
 (define novena-barebones-raw-image
   (image
    (inherit
-    (os->image novena-barebones-os #:type novena-image-type))
+    (os+platform->image novena-barebones-os armv7-linux
+                        #:type novena-image-type))
    (name 'novena-barebones-raw-image)))
 
 ;; Return the default image.
diff --git a/gnu/system/images/pine64.scm b/gnu/system/images/pine64.scm
index 808c71295f..aaec458766 100644
--- a/gnu/system/images/pine64.scm
+++ b/gnu/system/images/pine64.scm
@@ -21,6 +21,7 @@
   #:use-module (gnu bootloader u-boot)
   #:use-module (gnu image)
   #:use-module (gnu packages linux)
+  #:use-module (gnu platforms arm)
   #:use-module (gnu services)
   #:use-module (gnu services base)
   #:use-module (gnu system)
@@ -57,12 +58,13 @@
 (define pine64-image-type
   (image-type
    (name 'pine64-raw)
-   (constructor (cut image-with-os (arm64-disk-image) <>))))
+   (constructor (cut image-with-os (raw-with-offset-disk-image) <>))))
 
 (define pine64-barebones-raw-image
   (image
    (inherit
-    (os->image pine64-barebones-os #:type pine64-image-type))
+    (os+platform->image pine64-barebones-os aarch64-linux
+                        #:type pine64-image-type))
    (name 'pine64-barebones-raw-image)))
 
 ;; Return the default image.
diff --git a/gnu/system/images/pinebook-pro.scm b/gnu/system/images/pinebook-pro.scm
index b6b844cef6..1bfac7a8bb 100644
--- a/gnu/system/images/pinebook-pro.scm
+++ b/gnu/system/images/pinebook-pro.scm
@@ -21,6 +21,7 @@
   #:use-module (gnu bootloader u-boot)
   #:use-module (gnu image)
   #:use-module (gnu packages linux)
+  #:use-module (gnu platforms arm)
   #:use-module (gnu services)
   #:use-module (gnu services base)
   #:use-module (gnu system)
@@ -58,13 +59,14 @@
   (image-type
    (name 'pinebook-pro-raw)
    (constructor (cut image-with-os
-                     (arm64-disk-image (* 9 (expt 2 20))) ;9MiB
+                     (raw-with-offset-disk-image (* 9 (expt 2 20))) ;9MiB
                      <>))))
 
 (define pinebook-pro-barebones-raw-image
   (image
    (inherit
-    (os->image pinebook-pro-barebones-os #:type pinebook-pro-image-type))
+    (os+platform->image pinebook-pro-barebones-os aarch64-linux
+                        #:type pinebook-pro-image-type))
    (name 'pinebook-pro-barebones-raw-image)))
 
 ;; Return the default image.
diff --git a/gnu/system/images/rock64.scm b/gnu/system/images/rock64.scm
index 68d3742adc..d25d55e528 100644
--- a/gnu/system/images/rock64.scm
+++ b/gnu/system/images/rock64.scm
@@ -21,6 +21,7 @@
   #:use-module (gnu bootloader u-boot)
   #:use-module (gnu image)
   #:use-module (gnu packages linux)
+  #:use-module (gnu platforms arm)
   #:use-module (gnu services)
   #:use-module (gnu services base)
   #:use-module (gnu services networking)
@@ -53,12 +54,15 @@
 (define rock64-image-type
   (image-type
    (name 'rock64-raw)
-   (constructor (cut image-with-os (arm64-disk-image (expt 2 24)) <>))))
+   (constructor (cut image-with-os
+                     (raw-with-offset-disk-image (expt 2 24))
+                     <>))))
 
 (define rock64-barebones-raw-image
   (image
    (inherit
-    (os->image rock64-barebones-os #:type rock64-image-type))
+    (os+platform->image rock64-barebones-os aarch64-linux
+                        #:type rock64-image-type))
    (name 'rock64-barebones-raw-image)))
 
 rock64-barebones-raw-image
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 7b394184ad..073d7df1db 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -408,10 +408,7 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m
 
           ;; Loopback device, needed by OpenSSH notably.
           (service static-networking-service-type
-                   (list (static-networking (interface "lo")
-                                            (ip "127.0.0.1")
-                                            (requirement '())
-                                            (provision '(loopback)))))
+                   (list %loopback-static-networking))
 
           (service wpa-supplicant-service-type)
           (dbus-service)
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 8c245b8445..ed94c1de89 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -210,6 +210,16 @@ upon error."
              (open source targets)))
          mapped-devices))
 
+  (define file-system-scan-commands
+    ;; File systems like btrfs need help to assemble multi-device file systems
+    ;; but do not use manually-specified <mapped-devices>.
+    (let ((file-system-types (map file-system-type file-systems)))
+      (if (member "btrfs" file-system-types)
+          ;; Ignore errors: if the system manages to boot anyway, the better.
+          #~((system* (string-append #$btrfs-progs/static "/bin/btrfs")
+                      "device" "scan"))
+          #~())))
+
   (define kodir
     (flat-linux-module-directory linux linux-modules))
 
@@ -245,7 +255,8 @@ upon error."
                         (map spec->file-system
                              '#$(map file-system->spec file-systems))
                         #:pre-mount (lambda ()
-                                      (and #$@device-mapping-commands))
+                                      (and #$@device-mapping-commands
+                                           #$@file-system-scan-commands))
                         #:linux-modules '#$linux-modules
                         #:linux-module-directory '#$kodir
                         #:keymap-file #+(and=> keyboard-layout
@@ -269,7 +280,7 @@ FILE-SYSTEMS."
           (list fatfsck/static)
           '())
     ,@(if (find (file-system-type-predicate "bcachefs") file-systems)
-          (list bcachefs-tools/static)
+          (list bcachefs/static)
           '())
     ,@(if (find (file-system-type-predicate "btrfs") file-systems)
           (list btrfs-progs/static)
@@ -277,8 +288,14 @@ FILE-SYSTEMS."
     ,@(if (find (file-system-type-predicate "jfs") file-systems)
           (list jfs_fsck/static)
           '())
+    ,@(if (find (file-system-type-predicate "ntfs") file-systems)
+          (list ntfsfix/static)
+          '())
     ,@(if (find (file-system-type-predicate "f2fs") file-systems)
           (list f2fs-fsck/static)
+          '())
+    ,@(if (find (file-system-type-predicate "xfs") file-systems)
+          (list xfs_repair/static)
           '())))
 
 (define-syntax vhash                              ;TODO: factorize
@@ -311,6 +328,7 @@ FILE-SYSTEMS."
                     ("iso9660" => '("isofs"))
                     ("jfs" => '("jfs"))
                     ("f2fs" => '("f2fs" "crc32_generic"))
+                    ("xfs" => '("xfs"))
                     (else '())))
 
 (define (file-system-modules file-systems)
@@ -334,7 +352,8 @@ FILE-SYSTEMS."
     "dm-crypt" "xts" "serpent_generic" "wp512" ;for encrypted root partitions
     "nls_iso8859-1"                            ;for `mkfs.fat`, et.al
     ,@(if (string-match "^(x86_64|i[3-6]86)-" system)
-          '("pata_acpi" "pata_atiixp"    ;for ATA controllers
+          '("framebuffer_coreboot" "simplefb" ;for display during early boot
+            "pata_acpi" "pata_atiixp"    ;for ATA controllers
             "isci")                      ;for SAS controllers like Intel C602
           '())
 
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm
index 518dbc4fe8..96a381d5fe 100644
--- a/gnu/system/mapped-devices.scm
+++ b/gnu/system/mapped-devices.scm
@@ -192,7 +192,8 @@ option of @command{guix system}.\n")
   "Return a gexp that maps SOURCE to TARGET as a LUKS device, using
 'cryptsetup'."
   (with-imported-modules (source-module-closure
-                          '((gnu build file-systems)))
+                          '((gnu build file-systems)
+                            (guix build utils))) ;; For mkdir-p
     (match targets
       ((target)
        #~(let ((source #$(if (uuid? source)
@@ -201,7 +202,12 @@ option of @command{guix system}.\n")
            ;; XXX: 'use-modules' should be at the top level.
            (use-modules (rnrs bytevectors) ;bytevector?
                         ((gnu build file-systems)
-                         #:select (find-partition-by-luks-uuid)))
+                         #:select (find-partition-by-luks-uuid))
+                        ((guix build utils) #:select (mkdir-p)))
+
+           ;; Create '/run/cryptsetup/' if it does not exist, as device locking
+           ;; is mandatory for LUKS2.
+           (mkdir-p "/run/cryptsetup/")
 
            ;; Use 'cryptsetup-static', not 'cryptsetup', to avoid pulling the
            ;; whole world inside the initrd (for when we're in an initrd).
diff --git a/gnu/system/uuid.scm b/gnu/system/uuid.scm
index f4c4be6e2b..a95dc1b7d1 100644
--- a/gnu/system/uuid.scm
+++ b/gnu/system/uuid.scm
@@ -47,6 +47,7 @@
             string->fat-uuid
             string->jfs-uuid
             string->ntfs-uuid
+            string->xfs-uuid
             iso9660-uuid->string
 
             ;; XXX: For lack of a better place.
@@ -239,7 +240,9 @@ ISO9660 UUID representation."
 (define string->ext4-uuid string->dce-uuid)
 (define string->bcachefs-uuid string->dce-uuid)
 (define string->btrfs-uuid string->dce-uuid)
+(define string->f2fs-uuid string->dce-uuid)
 (define string->jfs-uuid string->dce-uuid)
+(define string->xfs-uuid string->dce-uuid)
 
 (define-syntax vhashq
   (syntax-rules (=>)
@@ -253,14 +256,16 @@ ISO9660 UUID representation."
 
 (define %uuid-parsers
   (vhashq
-   ('dce 'ext2 'ext3 'ext4 'bcachefs 'btrfs 'jfs 'luks => string->dce-uuid)
+   ('dce 'ext2 'ext3 'ext4 'bcachefs 'btrfs 'f2fs 'jfs 'xfs 'luks
+         => string->dce-uuid)
    ('fat32 'fat16 'fat => string->fat-uuid)
    ('ntfs => string->ntfs-uuid)
    ('iso9660 => string->iso9660-uuid)))
 
 (define %uuid-printers
   (vhashq
-   ('dce 'ext2 'ext3 'ext4 'bcachefs 'btrfs 'jfs 'luks => dce-uuid->string)
+   ('dce 'ext2 'ext3 'ext4 'bcachefs 'btrfs 'f2fs 'jfs 'xfs 'luks
+         => dce-uuid->string)
    ('iso9660 => iso9660-uuid->string)
    ('fat32 'fat16 'fat => fat-uuid->string)
    ('ntfs => ntfs-uuid->string)))
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 72b2656ccb..2487539b61 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -712,7 +712,6 @@ with '-virtfs' options for the host file systems listed in SHARED-FS."
      "-device" "virtio-rng-pci,rng=guix-vm-rng"
 
      #$@(map virtfs-option shared-fs)
-     "-vga std"
      (format #f "-drive file=~a,if=virtio,cache=writeback,werror=report,readonly=on"
              #$image)))
 
@@ -754,6 +753,8 @@ it is mostly useful when FULL-BOOT?  is true."
     (define qemu-exec
       #~(list #+(file-append qemu "/bin/"
                              (qemu-command (or target system)))
+              ;; Tells qemu to use the terminal it was started in for IO.
+              #$@(if graphic? '() #~("-nographic"))
               #$@(if full-boot?
                      #~()
                      #~("-kernel" #$(operating-system-kernel-file os)
@@ -786,7 +787,7 @@ it is mostly useful when FULL-BOOT?  is true."
   virtual-machine?
   (operating-system virtual-machine-operating-system) ;<operating-system>
   (qemu             virtual-machine-qemu              ;<package>
-                    (default qemu))
+                    (default qemu-minimal))
   (graphic?         virtual-machine-graphic?      ;Boolean
                     (default #f))
   (memory-size      virtual-machine-memory-size   ;integer (MiB)
diff --git a/gnu/tests/audio.scm b/gnu/tests/audio.scm
index 7bf7d4ef14..8aa6d1e818 100644
--- a/gnu/tests/audio.scm
+++ b/gnu/tests/audio.scm
@@ -48,9 +48,7 @@
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "mpd")
 
           (test-assert "service is running"
@@ -70,8 +68,7 @@
              '(system* #$(file-append mpd-mpc "/bin/mpc"))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
   (gexp->derivation "mpd-test" test))
 
 (define %test-mpd
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index 9429a10b75..38d4317e52 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -87,6 +87,7 @@ Otherwise assume that there is no password for root."
           (use-modules (gnu build marionette)
                        (guix build syscalls)
                        (srfi srfi-1)
+                       (srfi srfi-19)
                        (srfi srfi-26)
                        (srfi srfi-64)
                        (ice-9 match))
@@ -94,9 +95,7 @@ Otherwise assume that there is no password for root."
           (define marionette
             (make-marionette #$command))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "basic")
 
           #$(and initialization
@@ -198,6 +197,16 @@ info --version")
                      (pk 'services services)
                      '(root #$@(operating-system-shepherd-service-names os)))))
 
+          (test-equal "libc honors /etc/localtime"
+            -7200          ;CEST = GMT+2
+            ;; Assume OS is configured to have a CEST timezone.
+            (let* ((sept-2021 (time-second
+                               (date->time-utc
+                                (make-date 0 0 00 12 01 09 2021 7200)))))
+              (marionette-eval
+               `(tm:gmtoff (localtime ,sept-2021))
+               marionette)))
+
           (test-equal "/var/log/messages is not world-readable"
             #o640                                ;<https://bugs.gnu.org/40405>
             (begin
@@ -486,10 +495,11 @@ info --version")
 
           (test-assert "screendump"
             (begin
-              (marionette-control (string-append "screendump " #$output
-                                                 "/tty1.ppm")
-                                  marionette)
-              (file-exists? "tty1.ppm")))
+              (let ((capture
+                     (string-append #$output "/tty1.ppm")))
+                (marionette-control
+                 (string-append "screendump " capture) marionette)
+                (file-exists? capture))))
 
           (test-assert "screen text"
             (let ((text (marionette-screen-text marionette
@@ -505,8 +515,7 @@ info --version")
                                      "root@"
                                      #$(operating-system-host-name os))))))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation name test))
 
@@ -642,9 +651,7 @@ in a loop.  See <http://bugs.gnu.org/26931>.")
           (define marionette
             (make-marionette (list #$(virtual-machine os))))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "cleanup")
 
           (test-assert "dirty service worked"
@@ -657,8 +664,7 @@ in a loop.  See <http://bugs.gnu.org/26931>.")
                                 (scandir "/tmp"))
                              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "cleanup" test))
 
@@ -713,9 +719,7 @@ non-ASCII names from /tmp.")
           (define marionette
             (make-marionette (list #$(virtual-machine os))))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "mcron")
 
           (test-assert "service running"
@@ -752,8 +756,7 @@ non-ASCII names from /tmp.")
                                 result)
                              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation name test))
 
@@ -824,6 +827,7 @@ non-ASCII names from /tmp.")
           (mkdir #$output)
           (chdir #$output)
 
+          (test-runner-current (system-test-runner))
           (test-begin "avahi")
 
           (test-assert "nscd PID file is created"
@@ -902,8 +906,7 @@ non-ASCII names from /tmp.")
                     (= (hostent:addrtype result) AF_INET)))))
 
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "nss-mdns" test))
 
diff --git a/gnu/tests/ci.scm b/gnu/tests/ci.scm
index a8b39fcd01..5294514c66 100644
--- a/gnu/tests/ci.scm
+++ b/gnu/tests/ci.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017, 2018, 2019, 2020, 2021 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
@@ -70,9 +70,7 @@ HTTP-PORT."
             ;; port 8080 in the host.
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "laminar")
 
           (test-assert "service running"
@@ -116,8 +114,7 @@ HTTP-PORT."
              #:times 10
              #:delay 5))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "laminar-test" test))
 
diff --git a/gnu/tests/cups.scm b/gnu/tests/cups.scm
index 4e922e5023..4c7d78b7c8 100644
--- a/gnu/tests/cups.scm
+++ b/gnu/tests/cups.scm
@@ -54,9 +54,7 @@
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "cups")
 
           ;; Wait for the web interface to become ready.
@@ -80,8 +78,7 @@
                             #:decode-body? #t)))
               (response-code response)))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "cups-test" test))
 
diff --git a/gnu/tests/databases.scm b/gnu/tests/databases.scm
index c8d11e10c0..a20de1a8c7 100644
--- a/gnu/tests/databases.scm
+++ b/gnu/tests/databases.scm
@@ -61,9 +61,7 @@
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "memcached")
 
           ;; Wait for memcached to be up and running.
@@ -115,8 +113,7 @@
              '(file-exists? "/var/log/memcached")
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "memcached-test" test))
 
@@ -179,9 +176,7 @@
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "postgresql")
 
           (test-assert "service running"
@@ -233,16 +228,14 @@
                 (let* ((port (open-pipe*
                               OPEN_READ
                               #$(file-append postgresql "/bin/psql")
-                              "-tAh" "/tmp"
-                              "-c" "SELECT 1 FROM pg_database WHERE
+                              "-tA" "-c" "SELECT 1 FROM pg_database WHERE
  datname='root'"))
                        (output (get-string-all port)))
                   (close-pipe port)
                   (string-contains output "1")))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "postgresql-test" test))
 
@@ -283,9 +276,7 @@
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "mysql")
 
           (test-assert "service running"
@@ -341,8 +332,7 @@
                   output))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "mysql-test" test))
 
diff --git a/gnu/tests/desktop.scm b/gnu/tests/desktop.scm
index 6aa22fd49b..57069c0ede 100644
--- a/gnu/tests/desktop.scm
+++ b/gnu/tests/desktop.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -43,9 +43,7 @@
           (define marionette
             (make-marionette '(#$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "elogind")
 
           ;; Log in as root on tty1, and check what 'loginctl' returns.
@@ -83,8 +81,7 @@
                       (guest-file "/root/seats")
                       (guest-file "/root/users")))))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "elogind" test))
 
diff --git a/gnu/tests/dict.scm b/gnu/tests/dict.scm
index c50e3cd6da..4d9702360c 100644
--- a/gnu/tests/dict.scm
+++ b/gnu/tests/dict.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -79,9 +79,7 @@
           (define %dico-socket
             (socket PF_INET SOCK_STREAM 0))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "dicod")
 
           ;; Wait for the service to be started.
@@ -117,8 +115,7 @@
                      (string-contains result "hello")
                      result))))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "dicod" test))
 
diff --git a/gnu/tests/docker.scm b/gnu/tests/docker.scm
index 92611b0a8d..bc119988b7 100644
--- a/gnu/tests/docker.scm
+++ b/gnu/tests/docker.scm
@@ -76,9 +76,7 @@ inside %DOCKER-OS."
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "docker")
 
           (test-assert "service running"
@@ -143,8 +141,7 @@ inside %DOCKER-OS."
                         (string->number response4))))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "docker-test" test))
 
@@ -221,9 +218,7 @@ inside %DOCKER-OS."
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "docker")
 
           (test-assert "service running"
@@ -288,8 +283,7 @@ inside %DOCKER-OS."
                          "status" "guix-daemon")))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "docker-system-test" test))
 
diff --git a/gnu/tests/file-sharing.scm b/gnu/tests/file-sharing.scm
index 9a8ee6a593..d1343e2eba 100644
--- a/gnu/tests/file-sharing.scm
+++ b/gnu/tests/file-sharing.scm
@@ -91,9 +91,7 @@
                       (port-forwardings
                        `((9091 . ,%transmission-daemon-rpc-port)))))))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "transmission-daemon")
 
           ;; Make sure the "transmission" user and group have been created.
@@ -259,8 +257,7 @@
                                   "--auth" auth-string
                                   "--session-info"))))))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "transmission-daemon-test" test))
 
diff --git a/gnu/tests/ganeti.scm b/gnu/tests/ganeti.scm
index b64a332dde..f647e9554c 100644
--- a/gnu/tests/ganeti.scm
+++ b/gnu/tests/ganeti.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020 Marius Bakke <marius@gnu.org>.
+;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -52,18 +52,15 @@
     (hosts-file (plain-file "hosts" (format #f "
 127.0.0.1       localhost
 ::1             localhost
-10.0.2.2        gnt1.example.com gnt1
+10.0.2.15       gnt1.example.com gnt1
 192.168.254.254 ganeti.example.com
 ")))
 
     (packages (append (list ganeti-instance-debootstrap ganeti-instance-guix)
                       %base-packages))
     (services
-     (append (list (static-networking-service "eth0" "10.0.2.2"
-                                              #:netmask "255.255.255.0"
-                                              #:gateway "10.0.2.1"
-                                              #:name-servers '("10.0.2.1"))
-
+     (append (list (service static-networking-service-type
+                            (list %qemu-static-networking))
                    (service openssh-service-type
                             (openssh-configuration
                              (permit-root-login 'prohibit-password)))
@@ -83,8 +80,7 @@
                           (master-netdev "eth0")
                           (hvparams '())
                           (extra-packages '())
-                          (rapi-port 5080)
-                          (noded-port 1811))
+                          (rapi-port 5080))
   "Run tests in %GANETI-OS."
   (define os
     (marionette-operating-system
@@ -96,7 +92,6 @@
                           (guix combinators))))
 
   (define %forwarded-rapi-port 5080)
-  (define %forwarded-noded-port 1811)
 
   (define vm
     (virtual-machine
@@ -104,22 +99,20 @@
      ;; Some of the daemons are fairly memory-hungry.
      (memory-size 512)
      ;; Forward HTTP ports so we can access them from the "outside".
-     (port-forwardings `((,%forwarded-rapi-port . ,rapi-port)
-                         (,%forwarded-noded-port . ,noded-port)))))
+     (port-forwardings `((,%forwarded-rapi-port . ,rapi-port)))))
 
   (define test
     (with-imported-modules '((gnu build marionette))
       #~(begin
           (use-modules (srfi srfi-11) (srfi srfi-64)
                        (web uri) (web client) (web response)
+                       (ice-9 iconv)
                        (gnu build marionette))
 
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "ganeti")
 
           ;; Ganeti uses the Shepherd to start/stop daemons, so make sure
@@ -213,18 +206,19 @@
                          "watcher" "continue"))
              marionette))
 
-          ;; Try accessing the RAPI.  This causes an expected failure:
-          ;;   https://github.com/ganeti/ganeti/issues/1502
-          ;; Run it anyway for easy testing of potential fixes.
+          ;; Try accessing the RAPI.
           (test-equal "http-get RAPI version"
-            '(200 "2")
+            '(200 "2\n")
             (let-values
                 (((response text)
                   (http-get #$(simple-format
                                #f "http://localhost:~A/version"
                                %forwarded-rapi-port)
-                            #:decode-body? #t)))
-              (list (response-code response) text)))
+                            #:decode-body? #f)))
+              (list (response-code response)
+                    ;; The API response lacks a content-type, so
+                    ;; (http-client) won't decode it for us.
+                    (bytevector->string text "UTF-8"))))
 
           (test-equal "gnt-os list"
             "debootstrap+default\nguix+default\n"
@@ -248,8 +242,7 @@
                          "destroy" "--yes-do-it"))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 1)))))
+          (test-end))))
 
   (gexp->derivation (string-append "ganeti-" hypervisor "-test") test))
 
diff --git a/gnu/tests/guix.scm b/gnu/tests/guix.scm
index af7d8f0b21..69cac7c1aa 100644
--- a/gnu/tests/guix.scm
+++ b/gnu/tests/guix.scm
@@ -74,9 +74,7 @@
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "guix-build-coordinator")
 
           (test-assert "service running"
@@ -99,8 +97,7 @@
                             #:decode-body? #t)))
               (response-code response)))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "guix-build-coordinator-test" test))
 
@@ -199,9 +196,7 @@ host	all	all	::1/128 	trust"))))))
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "guix-data-service")
 
           (test-assert "service running"
@@ -235,8 +230,7 @@ host	all	all	::1/128 	trust"))))))
                             #:decode-body? #t)))
               (response-code response)))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "guix-data-service-test" test))
 
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index 130a4f76b0..9602efebe7 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017, 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
@@ -72,6 +72,7 @@
             %test-btrfs-raid-root-os
             %test-jfs-root-os
             %test-f2fs-root-os
+            %test-xfs-root-os
             %test-lvm-separate-home-os
 
             %test-gui-installed-os
@@ -354,7 +355,7 @@ IMAGE, a disk image.  The QEMU VM has access to MEMORY-SIZE MiB of RAM."
                 (format #t "creating writable image from '~a'...~%" image)
                 (unless (zero? (system* #+(file-append qemu-minimal
                                                        "/bin/qemu-img")
-                                        "create" "-f" "qcow2"
+                                        "create" "-f" "qcow2" "-F" "qcow2"
                                         "-o"
                                         (string-append "backing_file=" image)
                                         "disk.img"))
@@ -924,7 +925,7 @@ reboot\n")
 
   (operating-system
     (host-name "bootroot")
-    (timezone "Europe/Madrid")
+    (timezone "Europe/Paris")
     (locale "en_US.UTF-8")
 
     (bootloader (bootloader-configuration
@@ -1167,7 +1168,7 @@ RAID-0 (stripe) root partition.")
 
   (operating-system
     (host-name "hurd")
-    (timezone "America/Montreal")
+    (timezone "Europe/Paris")
     (locale "en_US.UTF-8")
     (bootloader (bootloader-configuration
                  (bootloader grub-bootloader)
@@ -1396,6 +1397,79 @@ build (current-guix) and then store a couple of full system images.")
 
 
 ;;;
+;;; XFS root file system.
+;;;
+
+(define-os-with-source (%xfs-root-os %xfs-root-os-source)
+  ;; The OS we want to install.
+  (use-modules (gnu) (gnu tests) (srfi srfi-1))
+
+  (operating-system
+    (host-name "liberigilo")
+    (timezone "Europe/Paris")
+    (locale "en_US.UTF-8")
+
+    (bootloader (bootloader-configuration
+                 (bootloader grub-bootloader)
+                 (targets (list "/dev/vdb"))))
+    (kernel-arguments '("console=ttyS0"))
+    (file-systems (cons (file-system
+                          (device (file-system-label "my-root"))
+                          (mount-point "/")
+                          (type "xfs"))
+                        %base-file-systems))
+    (users (cons (user-account
+                  (name "charlie")
+                  (group "users")
+                  (supplementary-groups '("wheel" "audio" "video")))
+                 %base-user-accounts))
+    (services (cons (service marionette-service-type
+                             (marionette-configuration
+                              (imported-modules '((gnu services herd)
+                                                  (guix combinators)))))
+                    %base-services))))
+
+(define %xfs-root-installation-script
+  ;; Shell script of a simple installation.
+  "\
+. /etc/profile
+set -e -x
+guix --version
+
+export GUIX_BUILD_OPTIONS=--no-grafts
+ls -l /run/current-system/gc-roots
+parted --script /dev/vdb mklabel gpt \\
+  mkpart primary ext2 1M 3M \\
+  mkpart primary ext2 3M 2G \\
+  set 1 boot on \\
+  set 1 bios_grub on
+mkfs.xfs -L my-root -q /dev/vdb2
+mount /dev/vdb2 /mnt
+herd start cow-store /mnt
+mkdir /mnt/etc
+cp /etc/target-config.scm /mnt/etc/config.scm
+guix system build /mnt/etc/config.scm
+guix system init /mnt/etc/config.scm /mnt --no-substitutes
+sync
+reboot\n")
+
+(define %test-xfs-root-os
+  (system-test
+   (name "xfs-root-os")
+   (description
+    "Test basic functionality of an OS installed like one would do by hand.
+This test is expensive in terms of CPU and storage usage since we need to
+build (current-guix) and then store a couple of full system images.")
+   (value
+    (mlet* %store-monad ((image   (run-install %xfs-root-os
+                                               %xfs-root-os-source
+                                               #:script
+                                               %xfs-root-installation-script))
+                         (command (qemu-command/writable-image image)))
+      (run-basic-test %xfs-root-os command "xfs-root-os")))))
+
+
+;;;
 ;;; Installation through the graphical interface.
 ;;;
 
@@ -1605,9 +1679,12 @@ build (current-guix) and then store a couple of full system images.")
     ;; encryption support.  The installer produces a UUID for the partition;
     ;; this "UUID" is explicitly set in 'gui-test-program' to the value shown
     ;; below.
-    (swap-devices (if encrypted?
-                      '()
-                      (list (uuid "11111111-2222-3333-4444-123456789abc"))))
+    (swap-devices
+     (if encrypted?
+         '()
+         (list
+          (swap-space
+           (target (uuid "11111111-2222-3333-4444-123456789abc"))))))
     (services (cons (service dhcp-client-service-type)
                     (operating-system-user-services %minimal-os-on-vda)))))
 
diff --git a/gnu/tests/ldap.scm b/gnu/tests/ldap.scm
index 197c1bfb28..d5403b3539 100644
--- a/gnu/tests/ldap.scm
+++ b/gnu/tests/ldap.scm
@@ -69,9 +69,7 @@
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "ldap")
 
           ;; Set up LDAP directory server
@@ -148,8 +146,7 @@ suffix = dc=example,dc=com")))
                               #$(file-append coreutils "/bin/true")))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "ldap-test" test))
 
diff --git a/gnu/tests/linux-modules.scm b/gnu/tests/linux-modules.scm
index fc8945b77f..69cb013267 100644
--- a/gnu/tests/linux-modules.scm
+++ b/gnu/tests/linux-modules.scm
@@ -76,23 +76,26 @@ that MODULES are actually loaded."
     (marionette-operating-system
      base-os
      #:imported-modules '((guix combinators))))
+
   (define vm (virtual-machine os))
+
   (define (test script)
     (with-imported-modules '((gnu build marionette))
       #~(begin
           (use-modules (gnu build marionette)
                        (srfi srfi-64))
+
           (define marionette
             (make-marionette (list #$vm)))
-          (mkdir #$output)
-          (chdir #$output)
+
+          (test-runner-current (system-test-runner #$output))
           (test-begin "loadable-kernel-modules")
           (test-assert "script successfully evaluated"
             (marionette-eval
              '(primitive-load #$script)
              marionette))
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
+
   (gexp->derivation "loadable-kernel-modules"
                     (test (modules-loaded?-program os module-names))))
 
diff --git a/gnu/tests/mail.scm b/gnu/tests/mail.scm
index eb8952b33a..f13751b72f 100644
--- a/gnu/tests/mail.scm
+++ b/gnu/tests/mail.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
-;;; Copyright © 2017, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2019 Christopher Baines <mail@cbaines.net>
@@ -85,9 +85,7 @@ match from any for local action inbound
                   code
                   (read-reply-code port))))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "opensmptd")
 
           (test-assert "service is running"
@@ -157,8 +155,7 @@ match from any for local action inbound
                          (sleep 1) (wait (- n 1))))))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "opensmtpd-test" test))
 
@@ -230,9 +227,7 @@ acl_check_data:
           (define smtp (socket AF_INET SOCK_STREAM 0))
           (define addr (make-socket-address AF_INET INADDR_LOOPBACK 1025))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "exim")
 
           (test-assert "service is running"
@@ -285,8 +280,7 @@ acl_check_data:
                                  (lambda (x) (not (string-prefix? "." x))))))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "exim-test" test))
 
@@ -338,9 +332,7 @@ acl_check_data:
           (define message "From: test@example.com\n\
 Subject: Hello Nice to meet you!")
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "dovecot")
 
           ;; Wait for dovecot to be up and running.
@@ -399,8 +391,7 @@ Subject: Hello Nice to meet you!")
                        get-string-all)))))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "dovecot-test" test))
 
@@ -489,9 +480,7 @@ Subject: Hello Nice to meet you!")
           (define message "From: test@example.com\n\
 Subject: Hello Nice to meet you!")
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "getmail")
 
           ;; Wait for dovecot to be up and running.
@@ -577,8 +566,7 @@ Subject: Hello Nice to meet you!")
               marionette)
              message))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "getmail-test" test))
 
diff --git a/gnu/tests/messaging.scm b/gnu/tests/messaging.scm
index 176e3d08cb..202a1c2f73 100644
--- a/gnu/tests/messaging.scm
+++ b/gnu/tests/messaging.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -98,9 +98,7 @@
                     (else
                      (error "file didn't show up" file)))))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "xmpp")
 
           ;; Wait for XMPP service to be up and running.
@@ -128,8 +126,7 @@
               (system* freetalk-bin "-s" #$script.ft)
               (host-wait-for-file #$witness)))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation name test))
 
@@ -191,9 +188,7 @@
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "bitlbee")
 
           (test-assert "service started"
@@ -231,8 +226,7 @@
               (->bool (string-contains (pk 'message (read-line sock))
                                        "BitlBee"))))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "bitlbee-test" test))
 
@@ -264,9 +258,7 @@
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "quassel")
 
           (test-assert "service started"
@@ -281,8 +273,7 @@
               '(file-exists? "/var/lib/quassel/quasselCert.pem")
               marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "quassel-test" test))
 
diff --git a/gnu/tests/monitoring.scm b/gnu/tests/monitoring.scm
index 8630f5818c..ae0a8e0845 100644
--- a/gnu/tests/monitoring.scm
+++ b/gnu/tests/monitoring.scm
@@ -63,9 +63,7 @@
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin #$name)
 
           (test-assert "prometheus-node-exporter running"
@@ -87,8 +85,7 @@
                             (http-get "http://localhost:8080")))
                 (response-code response))))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation (string-append name "-test") test))
 
@@ -165,9 +162,7 @@ cat ~a | sudo -u zabbix psql zabbix;
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin #$name)
 
           ;; XXX: Shepherd reads the config file *before* binding its control
@@ -296,9 +291,7 @@ zabbix||{}
             (test-url "/")
             (test-url "/does-not-exist" 404))
 
-          (test-end)
-
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation (string-append name "-test") test))
 
diff --git a/gnu/tests/networking.scm b/gnu/tests/networking.scm
index 453e63f52d..3f3f653b8a 100644
--- a/gnu/tests/networking.scm
+++ b/gnu/tests/networking.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -37,8 +38,96 @@
   #:use-module (gnu packages guile)
   #:use-module (gnu services shepherd)
   #:use-module (ice-9 match)
-  #:export (%test-inetd %test-openvswitch %test-dhcpd %test-tor %test-iptables
-                        %test-ipfs))
+  #:export (%test-static-networking
+            %test-inetd
+            %test-openvswitch
+            %test-dhcpd
+            %test-tor
+            %test-iptables
+            %test-ipfs))
+
+
+;;;
+;;; Static networking.
+;;;
+
+(define (run-static-networking-test vm)
+  (define test
+    (with-imported-modules '((gnu build marionette)
+                             (guix build syscalls))
+      #~(begin
+          (use-modules (gnu build marionette)
+                       (guix build syscalls)
+                       (srfi srfi-64))
+
+          (define marionette
+            (make-marionette
+             '(#$vm "-nic" "user,model=virtio-net-pci")))
+
+          (test-runner-current (system-test-runner #$output))
+          (test-begin "static-networking")
+
+          (test-assert "service is up"
+            (marionette-eval
+             '(begin
+                (use-modules (gnu services herd))
+                (start-service 'networking))
+             marionette))
+
+          (test-assert "network interfaces"
+            (marionette-eval
+             '(begin
+                (use-modules (guix build syscalls))
+                (network-interface-names))
+             marionette))
+
+          (test-equal "address of eth0"
+            "10.0.2.15"
+            (marionette-eval
+             '(let* ((sock (socket AF_INET SOCK_STREAM 0))
+                     (addr (network-interface-address sock "eth0")))
+                (close-port sock)
+                (inet-ntop (sockaddr:fam addr) (sockaddr:addr addr)))
+             marionette))
+
+          (test-equal "netmask of eth0"
+            "255.255.255.0"
+            (marionette-eval
+             '(let* ((sock (socket AF_INET SOCK_STREAM 0))
+                     (mask (network-interface-netmask sock "eth0")))
+                (close-port sock)
+                (inet-ntop (sockaddr:fam mask) (sockaddr:addr mask)))
+             marionette))
+
+          (test-equal "eth0 is up"
+            IFF_UP
+            (marionette-eval
+             '(let* ((sock  (socket AF_INET SOCK_STREAM 0))
+                     (flags (network-interface-flags sock "eth0")))
+                (logand flags IFF_UP))
+             marionette))
+
+          (test-end))))
+
+  (gexp->derivation "static-networking" test))
+
+(define %test-static-networking
+  (system-test
+   (name "static-networking")
+   (description "Test the 'static-networking' service.")
+   (value
+    (let ((os (marionette-operating-system
+               (simple-operating-system
+                (service static-networking-service-type
+                         (list %qemu-static-networking)))
+               #:imported-modules '((gnu services herd)
+                                    (guix combinators)))))
+      (run-static-networking-test (virtual-machine os))))))
+
+
+;;;
+;;; Inetd.
+;;;
 
 (define %inetd-os
   ;; Operating system with 2 inetd services.
@@ -104,9 +193,7 @@ port 7, and a dict service on port 2628."
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "inetd")
 
           ;; Make sure the PID file is created.
@@ -137,8 +224,7 @@ port 7, and a dict service on port 2628."
                 (close dict)
                 response)))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "inetd-test" test))
 
@@ -180,9 +266,13 @@ port 7, and a dict service on port 2628."
 (define %openvswitch-os
   (operating-system
     (inherit (simple-operating-system
-              (static-networking-service "ovs0" "10.1.1.1"
-                                         #:netmask "255.255.255.252"
-                                         #:requirement '(openvswitch-configuration))
+              (simple-service 'openswitch-networking
+                              static-networking-service-type
+                              (list (static-networking
+                                     (addresses (list (network-address
+                                                       (value "10.1.1.1/24")
+                                                       (device "ovs0"))))
+                                     (requirement '(openvswitch-configuration)))))
               (service openvswitch-service-type)
               openvswitch-configuration-service))
     ;; Ensure the interface name does not change depending on the driver.
@@ -191,12 +281,15 @@ port 7, and a dict service on port 2628."
 (define (run-openvswitch-test)
   (define os
     (marionette-operating-system %openvswitch-os
-                                 #:imported-modules '((gnu services herd))))
+                                 #:imported-modules '((gnu services herd)
+                                                      (guix build syscalls))))
 
   (define test
-    (with-imported-modules '((gnu build marionette))
+    (with-imported-modules '((gnu build marionette)
+                             (guix build syscalls))
       #~(begin
           (use-modules (gnu build marionette)
+                       (guix build syscalls)
                        (ice-9 popen)
                        (ice-9 rdelim)
                        (srfi srfi-64))
@@ -204,9 +297,7 @@ port 7, and a dict service on port 2628."
           (define marionette
             (make-marionette (list #$(virtual-machine os))))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "openvswitch")
 
           ;; Make sure the bridge is created.
@@ -239,13 +330,24 @@ port 7, and a dict service on port 2628."
                              (srfi srfi-1))
                 (live-service-running
                  (find (lambda (live)
-                         (memq 'networking-ovs0
+                         (memq 'networking
                                (live-service-provision live)))
                        (current-services))))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-equal "ovs0 is up"
+            IFF_UP
+            (marionette-eval
+             '(begin
+                (use-modules (guix build syscalls))
+
+                (let* ((sock  (socket AF_INET SOCK_STREAM 0))
+                       (flags (network-interface-flags sock "ovs0")))
+                  (close-port sock)
+                  (logand flags IFF_UP)))
+             marionette))
+
+          (test-end))))
 
   (gexp->derivation "openvswitch-test" test))
 
@@ -282,10 +384,15 @@ subnet 192.168.1.0 netmask 255.255.255.0 {
 
 (define %dhcpd-os
   (simple-operating-system
-   (static-networking-service "ens3" "192.168.1.4"
-                              #:netmask "255.255.255.0"
-                              #:gateway "192.168.1.1"
-                              #:name-servers '("192.168.1.2" "192.168.1.3"))
+   (service static-networking-service-type
+            (list (static-networking
+                   (addresses (list (network-address
+                                     (value "192.168.1.4/24")
+                                     (device "ens3"))))
+                   (routes (list (network-route
+                                  (destination "default")
+                                  (gateway "192.168.1.1"))))
+                   (name-servers '("192.168.1.2" "192.168.1.3")))))
    (service dhcpd-service-type dhcpd-v4-configuration)))
 
 (define (run-dhcpd-test)
@@ -304,9 +411,7 @@ subnet 192.168.1.0 netmask 255.255.255.0 {
           (define marionette
             (make-marionette (list #$(virtual-machine os))))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "dhcpd")
 
           (test-assert "pid file exists"
@@ -339,8 +444,7 @@ subnet 192.168.1.0 netmask 255.255.255.0 {
                        (current-services))))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "dhcpd-test" test))
 
@@ -399,9 +503,7 @@ subnet 192.168.1.0 netmask 255.255.255.0 {
                        (current-services))))
              marionette))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "tor")
 
           ;; Test the usual Tor service.
@@ -433,8 +535,7 @@ subnet 192.168.1.0 netmask 255.255.255.0 {
               (wait-for-unix-socket "/var/run/tor/socks-sock"
                                     marionette/unix-socks-socket)))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "tor-test" test))
 
@@ -526,9 +627,7 @@ COMMIT
                            (loop (read-line in)))))))))
              marionette))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "iptables")
 
           (test-equal "iptables-save dumps the same rules that were loaded"
@@ -557,8 +656,7 @@ COMMIT
           ;;      marionette)
           ;;     (wait-for-tcp-port inetd-echo-port marionette #:timeout 5)))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "iptables" test))
 
@@ -622,9 +720,7 @@ COMMIT
              marionette))
 
           (marionette-eval '(use-modules (guix ipfs)) marionette)
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "ipfs")
 
           ;; Test the IPFS service.
@@ -644,8 +740,7 @@ COMMIT
             test-bv
             (read-contents (add-data test-bv)))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
   (gexp->derivation "ipfs-test" test))
 
 (define %test-ipfs
diff --git a/gnu/tests/nfs.scm b/gnu/tests/nfs.scm
index a0c091eadb..7b7dd8c360 100644
--- a/gnu/tests/nfs.scm
+++ b/gnu/tests/nfs.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -92,9 +92,7 @@
                        (error "Socket didn't show up: " ,file))))
              marionette))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "rpc-daemon")
 
           ;; Wait for the rpcbind daemon to be up and running.
@@ -130,8 +128,7 @@
              '(zero? (system* "rpcinfo" "-p"))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation name test))
 
@@ -198,9 +195,7 @@
           (define marionette
             (make-marionette (list #$(virtual-machine os))))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "nfs-daemon")
           (marionette-eval
            '(begin
@@ -252,8 +247,7 @@
                                      "nfs-server:/" "/remote" "-v"))
                      (file-exists? "/remote/hello")))
              marionette))
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "nfs-server-test" test))
 
@@ -310,9 +304,7 @@ directories can be mounted.")
           (use-modules (gnu build marionette)
                        (srfi srfi-64))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "start-nfs-boot-test")
 
           ;;; Start up NFS server host.
@@ -401,8 +393,7 @@ directories can be mounted.")
               (call-with-input-file "/export/mounts" display))
            server-marionette)
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "nfs-root-fs-test" test))
 
diff --git a/gnu/tests/package-management.scm b/gnu/tests/package-management.scm
index 087eaf923e..fe897944d0 100644
--- a/gnu/tests/package-management.scm
+++ b/gnu/tests/package-management.scm
@@ -60,9 +60,7 @@
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin #$name)
 
           ;; XXX: Shepherd reads the config file *before* binding its control
@@ -105,9 +103,7 @@ derivation {
                                 "guix-test.nix")))
              marionette))
 
-	  (test-end)
-
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+	  (test-end))))
 
   (gexp->derivation (string-append name "-test") test))
 
diff --git a/gnu/tests/reconfigure.scm b/gnu/tests/reconfigure.scm
index 001b5d185a..2fd7c6854d 100644
--- a/gnu/tests/reconfigure.scm
+++ b/gnu/tests/reconfigure.scm
@@ -79,9 +79,7 @@ generation of the system profile."
                           entries)))
              marionette))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "switch-to-system")
 
           (let ((generations-prior (system-generations marionette)))
@@ -112,8 +110,7 @@ generation of the system profile."
                                  "jakob")
                marionette)))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "switch-to-system" (test (switch-system-program os))))
 
@@ -153,9 +150,7 @@ Shepherd (PID 1) by unloading obsolete services and loading new services."
                 (map live-service-canonical-name (current-services)))
              marionette))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "upgrade-services")
 
           (let ((services-prior (running-services marionette)))
@@ -176,8 +171,7 @@ Shepherd (PID 1) by unloading obsolete services and loading new services."
             (test-assert "script stopped obsolete service"
               (not (memq 'dummy (running-services marionette)))))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation
    "upgrade-services"
@@ -220,9 +214,7 @@ bootloader's configuration file."
                      (second (string-split (match:substring parameter) #\=)))
                    (list-matches "system=[^ ]*" grub-cfg))))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "install-bootloader")
 
           (test-assert "no prior menu entry for system generation"
@@ -236,8 +228,7 @@ bootloader's configuration file."
           (test-assert "menu entry created for system generation"
             (member #$os (generations-in-grub-cfg marionette)))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (let* ((bootloader ((compose bootloader-configuration-bootloader
                                operating-system-bootloader)
diff --git a/gnu/tests/rsync.scm b/gnu/tests/rsync.scm
index 24e60d9d9d..91f2b41cec 100644
--- a/gnu/tests/rsync.scm
+++ b/gnu/tests/rsync.scm
@@ -54,9 +54,7 @@ PORT."
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "rsync")
 
           ;; Wait for rsync to be up and running.
@@ -106,8 +104,7 @@ PORT."
                     (read-line port))))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "rsync-test" test))
 
diff --git a/gnu/tests/security-token.scm b/gnu/tests/security-token.scm
index 1169a4b9fd..07270c0bfd 100644
--- a/gnu/tests/security-token.scm
+++ b/gnu/tests/security-token.scm
@@ -44,9 +44,7 @@
           (define marionette
             (make-marionette (list #$(virtual-machine os))))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "pcscd")
 
           (test-assert "pcscd is alive"
@@ -59,8 +57,7 @@
                        (current-services))))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "pcscd" test))
 
diff --git a/gnu/tests/singularity.scm b/gnu/tests/singularity.scm
index 1fc2773a00..f4b9776b48 100644
--- a/gnu/tests/singularity.scm
+++ b/gnu/tests/singularity.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -72,9 +72,7 @@
           (define marionette
             (make-marionette (list #$(virtual-machine os))))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "singularity")
 
           (test-assert "singularity exec /bin/guile (as root)"
@@ -126,8 +124,7 @@
                         "--debug" "run" #$image "-c" "(use-modules (json))"))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "singularity-test" test))
 
diff --git a/gnu/tests/ssh.scm b/gnu/tests/ssh.scm
index 10438ad22a..791ff7b73f 100644
--- a/gnu/tests/ssh.scm
+++ b/gnu/tests/ssh.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;;
@@ -108,9 +108,7 @@ root with an empty password."
                         ('denied
                          (loop rest)))))))))
 
-            (mkdir #$output)
-            (chdir #$output)
-
+            (test-runner-current (system-test-runner #$output))
             (test-begin "ssh-daemon")
 
             ;; Wait for sshd to be up and running.
@@ -209,8 +207,7 @@ root with an empty password."
                    (channel-request-exec channel "path-witness")
                    (zero? (channel-get-exit-status channel))))))
 
-            (test-end)
-            (exit (= (test-runner-fail-count (test-runner-current)) 0))))))
+            (test-end)))))
 
   (gexp->derivation name test))
 
diff --git a/gnu/tests/telephony.scm b/gnu/tests/telephony.scm
index aeb6500c47..998bdbccf9 100644
--- a/gnu/tests/telephony.scm
+++ b/gnu/tests/telephony.scm
@@ -138,9 +138,7 @@ accounts provisioning feature of the service."
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "jami")
 
           (test-assert "service is running"
@@ -341,8 +339,7 @@ accounts provisioning feature of the service."
                              account-details)))))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation (if provisioning?
                         "jami-provisioning-test"
diff --git a/gnu/tests/version-control.scm b/gnu/tests/version-control.scm
index a7cde1f163..fd3dba88ba 100644
--- a/gnu/tests/version-control.scm
+++ b/gnu/tests/version-control.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2018 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
 ;;;
@@ -132,9 +132,7 @@ HTTP-PORT."
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "cgit")
 
           ;; XXX: Shepherd reads the config file *before* binding its control
@@ -210,8 +208,7 @@ HTTP-PORT."
             (test-url "/test/tree/does-not-exist" 404)
             (test-url "/does-not-exist" 404))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "cgit-test" test))
 
@@ -270,9 +267,7 @@ HTTP-PORT."
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "git-http")
 
           ;; Wait for nginx to be up and running.
@@ -302,8 +297,7 @@ HTTP-PORT."
               (call-with-input-file "/tmp/clone/README"
                 get-string-all)))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "git-http" test))
 
@@ -367,9 +361,7 @@ HTTP-PORT."
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "gitolite")
 
           ;; Wait for sshd to be up and running.
@@ -410,8 +402,7 @@ HTTP-PORT."
             (test-assert "pushing, and the associated hooks"
               (invoke #$(file-append git "/bin/git") "push")))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "gitolite" test))
 
@@ -458,7 +449,8 @@ HTTP-PORT."
   (define vm
     (virtual-machine
      (operating-system os)
-     (port-forwardings `((8081 . ,http-port)))))
+     (port-forwardings `((8081 . ,http-port)))
+     (memory-size 1024)))
 
   (define test
     (with-imported-modules '((gnu build marionette))
@@ -472,9 +464,7 @@ HTTP-PORT."
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "gitile")
 
           ;; XXX: Shepherd reads the config file *before* binding its control
@@ -540,8 +530,7 @@ HTTP-PORT."
             (test-url "/test/tree/-/does-not-exist" 404)
             (test-url "/does-not-exist" 404))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "gitile-test" test))
 
diff --git a/gnu/tests/virtualization.scm b/gnu/tests/virtualization.scm
index 9f9d3a5e26..628cd0549b 100644
--- a/gnu/tests/virtualization.scm
+++ b/gnu/tests/virtualization.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
-;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;;
@@ -73,9 +73,7 @@
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "libvirt")
 
           (test-assert "service running"
@@ -107,8 +105,7 @@
                          "-c" "qemu:///system" "connect"))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "libvirt-test" test))
 
@@ -193,9 +190,7 @@
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "childhurd")
 
           (test-assert "service running"
@@ -250,8 +245,7 @@
                  (open-input-pipe #$run-uname-over-ssh)))
              marionette))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "childhurd-test" test))
 
diff --git a/gnu/tests/web.scm b/gnu/tests/web.scm
index 518c9c1ff3..4e8eceaa2b 100644
--- a/gnu/tests/web.scm
+++ b/gnu/tests/web.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2020-2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017, 2019 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
@@ -113,9 +113,7 @@ HTTP-PORT."
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin #$name)
 
           (test-assert #$(string-append name " service running")
@@ -150,8 +148,7 @@ HTTP-PORT."
                       marionette)))
                  '())
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation (string-append name "-test") test))
 
@@ -309,9 +306,7 @@ HTTP-PORT, along with php-fpm."
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "php-fpm")
 
           (test-assert "php-fpm running"
@@ -350,9 +345,7 @@ HTTP-PORT, along with php-fpm."
                   (and matches
                        (match:substring matches 0))))))
 
-          (test-end)
-
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "php-fpm-test" test))
 
@@ -394,9 +387,7 @@ HTTP-PORT, along with php-fpm."
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin #$name)
 
           (test-assert "hpcguix-web running"
@@ -422,8 +413,7 @@ HTTP-PORT, along with php-fpm."
                #:times 10
                #:delay 5)))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation (string-append name "-test") test))
 
@@ -438,7 +428,8 @@ HTTP-PORT, along with php-fpm."
    (service dhcp-client-service-type)
    (service hpcguix-web-service-type
             (hpcguix-web-configuration
-             (specs %hpcguix-web-specs)))))
+             (specs %hpcguix-web-specs)
+             (address "0.0.0.0")))))
 
 (define %test-hpcguix-web
   (system-test
@@ -486,9 +477,7 @@ HTTP-PORT."
             ;; port 8080 in the host.
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "tailon")
 
           (test-assert "service running"
@@ -512,8 +501,7 @@ HTTP-PORT."
              #:times 10
              #:delay 5))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "tailon-test" test))
 
@@ -576,7 +564,7 @@ HTTP-PORT."
                (listen '("8080"))))))
    (service postgresql-service-type
             (postgresql-configuration
-             (postgresql postgresql-10)))
+             (postgresql postgresql)))
    (service patchwork-service-type
             (patchwork-configuration
              (patchwork patchwork)
@@ -630,9 +618,7 @@ HTTP-PORT."
           (define marionette
             (make-marionette (list #$vm)))
 
-          (mkdir #$output)
-          (chdir #$output)
-
+          (test-runner-current (system-test-runner #$output))
           (test-begin "patchwork")
 
           (test-assert "patchwork-postgresql-user-and-service started"
@@ -667,8 +653,7 @@ HTTP-PORT."
              #:times 10
              #:delay 5))
 
-          (test-end)
-          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+          (test-end))))
 
   (gexp->derivation "patchwork-test" test))